@weapp-vite/web 1.3.37 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +144 -5
- package/dist/_virtual/_rolldown/runtime.mjs +19 -1
- package/dist/compiler/wxml/attributes.mjs +1 -1
- package/dist/compiler/wxml/attributes.mjs.map +1 -1
- package/dist/compiler/wxml/compile.mjs +6 -3
- package/dist/compiler/wxml/compile.mjs.map +1 -1
- package/dist/compiler/wxml/interpolation.mjs +1 -2
- package/dist/compiler/wxml/interpolation.mjs.map +1 -1
- package/dist/compiler/wxml/navigation.mjs +5 -7
- package/dist/compiler/wxml/navigation.mjs.map +1 -1
- package/dist/compiler/wxml/parser.mjs +5 -5
- package/dist/compiler/wxml/parser.mjs.map +1 -1
- package/dist/compiler/wxml/renderer.mjs +13 -12
- package/dist/compiler/wxml/renderer.mjs.map +1 -1
- package/dist/compiler/wxml/specialNodes.mjs +6 -1
- package/dist/compiler/wxml/specialNodes.mjs.map +1 -1
- package/dist/compiler/wxml/types.d.mts +12 -0
- package/dist/compiler/wxs.mjs +5 -5
- package/dist/compiler/wxs.mjs.map +1 -1
- package/dist/css/wxss.d.mts +1 -0
- package/dist/css/wxss.mjs +110 -9
- package/dist/css/wxss.mjs.map +1 -1
- package/dist/index.d.mts +29 -6
- package/dist/index.mjs +197 -4
- package/dist/index.mjs.map +1 -0
- package/dist/plugin/assets.d.mts +7 -0
- package/dist/plugin/assets.mjs +122 -0
- package/dist/plugin/assets.mjs.map +1 -0
- package/dist/plugin/constants.mjs +10 -1
- package/dist/plugin/constants.mjs.map +1 -1
- package/dist/plugin/dependencyScan.mjs +41 -0
- package/dist/plugin/dependencyScan.mjs.map +1 -0
- package/dist/plugin/entry.mjs +55 -6
- package/dist/plugin/entry.mjs.map +1 -1
- package/dist/plugin/files.mjs +1 -1
- package/dist/plugin/files.mjs.map +1 -1
- package/dist/plugin/index.d.mts +37 -3
- package/dist/plugin/index.mjs +240 -73
- package/dist/plugin/index.mjs.map +1 -1
- package/dist/plugin/layout.mjs +24 -0
- package/dist/plugin/layout.mjs.map +1 -0
- package/dist/plugin/path.mjs +4 -1
- package/dist/plugin/path.mjs.map +1 -1
- package/dist/plugin/register.mjs +45 -33
- package/dist/plugin/register.mjs.map +1 -1
- package/dist/plugin/scan.mjs +206 -94
- package/dist/plugin/scan.mjs.map +1 -1
- package/dist/plugin/scanSfc.mjs +65 -0
- package/dist/plugin/scanSfc.mjs.map +1 -0
- package/dist/plugin/state.mjs +3 -2
- package/dist/plugin/state.mjs.map +1 -1
- package/dist/plugin/styleModule.mjs +52 -0
- package/dist/plugin/styleModule.mjs.map +1 -0
- package/dist/plugin/types.d.mts +37 -1
- package/dist/plugin/vueSfc.mjs +149 -0
- package/dist/plugin/vueSfc.mjs.map +1 -0
- package/dist/runtime/appShell/container.mjs +25 -0
- package/dist/runtime/appShell/container.mjs.map +1 -0
- package/dist/runtime/appShell/tabBar/index.mjs +192 -0
- package/dist/runtime/appShell/tabBar/index.mjs.map +1 -0
- package/dist/runtime/appShell/tabBar/style.mjs +127 -0
- package/dist/runtime/appShell/tabBar/style.mjs.map +1 -0
- package/dist/runtime/button/helpers.mjs +1 -58
- package/dist/runtime/button/helpers.mjs.map +1 -1
- package/dist/runtime/button/index.d.mts +4 -5
- package/dist/runtime/button/index.mjs +6 -28
- package/dist/runtime/button/index.mjs.map +1 -1
- package/dist/runtime/button/style.mjs +53 -28
- package/dist/runtime/button/style.mjs.map +1 -1
- package/dist/runtime/component/behavior.mjs +26 -2
- package/dist/runtime/component/behavior.mjs.map +1 -1
- package/dist/runtime/component/element.mjs +107 -31
- package/dist/runtime/component/element.mjs.map +1 -1
- package/dist/runtime/component/observers.mjs +36 -0
- package/dist/runtime/component/observers.mjs.map +1 -0
- package/dist/runtime/component/publicInstance.mjs +48 -0
- package/dist/runtime/component/publicInstance.mjs.map +1 -0
- package/dist/runtime/component/relations.mjs +35 -0
- package/dist/runtime/component/relations.mjs.map +1 -0
- package/dist/runtime/component/slots.mjs +24 -0
- package/dist/runtime/component/slots.mjs.map +1 -0
- package/dist/runtime/component/state.mjs +13 -3
- package/dist/runtime/component/state.mjs.map +1 -1
- package/dist/runtime/component/types.d.mts +29 -4
- package/dist/runtime/component/virtualHost.mjs +83 -0
- package/dist/runtime/component/virtualHost.mjs.map +1 -0
- package/dist/runtime/host/index.d.mts +13 -0
- package/dist/runtime/host/index.mjs +47 -0
- package/dist/runtime/host/index.mjs.map +1 -0
- package/dist/runtime/host/types.d.mts +28 -0
- package/dist/runtime/hostGlobals.d.mts +9 -0
- package/dist/runtime/hostGlobals.mjs +39 -0
- package/dist/runtime/hostGlobals.mjs.map +1 -0
- package/dist/runtime/index.d.mts +21 -3
- package/dist/runtime/index.mjs +26 -4
- package/dist/runtime/index.mjs.map +1 -0
- package/dist/runtime/legacyTemplate/dom.mjs +3 -3
- package/dist/runtime/legacyTemplate/dom.mjs.map +1 -1
- package/dist/runtime/legacyTemplate/expression.mjs +9 -9
- package/dist/runtime/legacyTemplate/expression.mjs.map +1 -1
- package/dist/runtime/legacyTemplate/index.mjs +6 -6
- package/dist/runtime/legacyTemplate/index.mjs.map +1 -1
- package/dist/runtime/nativeComponents/canvas/index.mjs +53 -0
- package/dist/runtime/nativeComponents/canvas/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/checkbox.mjs +137 -0
- package/dist/runtime/nativeComponents/checkbox.mjs.map +1 -0
- package/dist/runtime/nativeComponents/cover/index.mjs +23 -0
- package/dist/runtime/nativeComponents/cover/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/form.d.mts +7 -0
- package/dist/runtime/nativeComponents/form.mjs +50 -0
- package/dist/runtime/nativeComponents/form.mjs.map +1 -0
- package/dist/runtime/nativeComponents/formControl.mjs +61 -0
- package/dist/runtime/nativeComponents/formControl.mjs.map +1 -0
- package/dist/runtime/nativeComponents/helpers.mjs +25 -0
- package/dist/runtime/nativeComponents/helpers.mjs.map +1 -0
- package/dist/runtime/nativeComponents/icon/helpers.mjs +42 -0
- package/dist/runtime/nativeComponents/icon/helpers.mjs.map +1 -0
- package/dist/runtime/nativeComponents/icon/index.mjs +45 -0
- package/dist/runtime/nativeComponents/icon/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/icon/style.mjs +176 -0
- package/dist/runtime/nativeComponents/icon/style.mjs.map +1 -0
- package/dist/runtime/nativeComponents/image.d.mts +8 -0
- package/dist/runtime/nativeComponents/image.mjs +121 -0
- package/dist/runtime/nativeComponents/image.mjs.map +1 -0
- package/dist/runtime/nativeComponents/index.d.mts +11 -0
- package/dist/runtime/nativeComponents/index.mjs +83 -0
- package/dist/runtime/nativeComponents/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/input.d.mts +8 -0
- package/dist/runtime/nativeComponents/input.mjs +131 -0
- package/dist/runtime/nativeComponents/input.mjs.map +1 -0
- package/dist/runtime/nativeComponents/label.mjs +36 -0
- package/dist/runtime/nativeComponents/label.mjs.map +1 -0
- package/dist/runtime/nativeComponents/mediaRegistry.mjs +47 -0
- package/dist/runtime/nativeComponents/mediaRegistry.mjs.map +1 -0
- package/dist/runtime/nativeComponents/movable/helpers.mjs +23 -0
- package/dist/runtime/nativeComponents/movable/helpers.mjs.map +1 -0
- package/dist/runtime/nativeComponents/movable/index.mjs +117 -0
- package/dist/runtime/nativeComponents/movable/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/navigator.mjs +200 -0
- package/dist/runtime/nativeComponents/navigator.mjs.map +1 -0
- package/dist/runtime/nativeComponents/picker/editors.mjs +74 -0
- package/dist/runtime/nativeComponents/picker/editors.mjs.map +1 -0
- package/dist/runtime/nativeComponents/picker/helpers.mjs +57 -0
- package/dist/runtime/nativeComponents/picker/helpers.mjs.map +1 -0
- package/dist/runtime/nativeComponents/picker/index.mjs +210 -0
- package/dist/runtime/nativeComponents/picker/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/picker/style.mjs +71 -0
- package/dist/runtime/nativeComponents/picker/style.mjs.map +1 -0
- package/dist/runtime/nativeComponents/pickerView/column.mjs +134 -0
- package/dist/runtime/nativeComponents/pickerView/column.mjs.map +1 -0
- package/dist/runtime/nativeComponents/pickerView/helpers.mjs +17 -0
- package/dist/runtime/nativeComponents/pickerView/helpers.mjs.map +1 -0
- package/dist/runtime/nativeComponents/pickerView/index.mjs +128 -0
- package/dist/runtime/nativeComponents/pickerView/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/pickerView/style.mjs +58 -0
- package/dist/runtime/nativeComponents/pickerView/style.mjs.map +1 -0
- package/dist/runtime/nativeComponents/primitives.mjs +16 -0
- package/dist/runtime/nativeComponents/primitives.mjs.map +1 -0
- package/dist/runtime/nativeComponents/progress/helpers.mjs +29 -0
- package/dist/runtime/nativeComponents/progress/helpers.mjs.map +1 -0
- package/dist/runtime/nativeComponents/progress/index.mjs +130 -0
- package/dist/runtime/nativeComponents/progress/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/progress/style.mjs +40 -0
- package/dist/runtime/nativeComponents/progress/style.mjs.map +1 -0
- package/dist/runtime/nativeComponents/radio.mjs +147 -0
- package/dist/runtime/nativeComponents/radio.mjs.map +1 -0
- package/dist/runtime/nativeComponents/richText/helpers.mjs +230 -0
- package/dist/runtime/nativeComponents/richText/helpers.mjs.map +1 -0
- package/dist/runtime/nativeComponents/richText/index.mjs +74 -0
- package/dist/runtime/nativeComponents/richText/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/scrollView.d.mts +15 -0
- package/dist/runtime/nativeComponents/scrollView.mjs +79 -0
- package/dist/runtime/nativeComponents/scrollView.mjs.map +1 -0
- package/dist/runtime/nativeComponents/slider/helpers.mjs +28 -0
- package/dist/runtime/nativeComponents/slider/helpers.mjs.map +1 -0
- package/dist/runtime/nativeComponents/slider/index.mjs +120 -0
- package/dist/runtime/nativeComponents/slider/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/slider/style.mjs +60 -0
- package/dist/runtime/nativeComponents/slider/style.mjs.map +1 -0
- package/dist/runtime/nativeComponents/style.mjs +41 -0
- package/dist/runtime/nativeComponents/style.mjs.map +1 -0
- package/dist/runtime/nativeComponents/swiper/helpers.mjs +52 -0
- package/dist/runtime/nativeComponents/swiper/helpers.mjs.map +1 -0
- package/dist/runtime/nativeComponents/swiper/index.mjs +235 -0
- package/dist/runtime/nativeComponents/swiper/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/swiper/item.mjs +14 -0
- package/dist/runtime/nativeComponents/swiper/item.mjs.map +1 -0
- package/dist/runtime/nativeComponents/swiper/style.mjs +20 -0
- package/dist/runtime/nativeComponents/swiper/style.mjs.map +1 -0
- package/dist/runtime/nativeComponents/switch.d.mts +7 -0
- package/dist/runtime/nativeComponents/switch.mjs +132 -0
- package/dist/runtime/nativeComponents/switch.mjs.map +1 -0
- package/dist/runtime/nativeComponents/textarea.d.mts +9 -0
- package/dist/runtime/nativeComponents/textarea.mjs +144 -0
- package/dist/runtime/nativeComponents/textarea.mjs.map +1 -0
- package/dist/runtime/nativeComponents/video/helpers.d.mts +12 -0
- package/dist/runtime/nativeComponents/video/helpers.mjs +21 -0
- package/dist/runtime/nativeComponents/video/helpers.mjs.map +1 -0
- package/dist/runtime/nativeComponents/video/index.mjs +124 -0
- package/dist/runtime/nativeComponents/video/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/video/style.mjs +14 -0
- package/dist/runtime/nativeComponents/video/style.mjs.map +1 -0
- package/dist/runtime/navigationBar/index.mjs +1 -3
- package/dist/runtime/navigationBar/index.mjs.map +1 -1
- package/dist/runtime/pageLayout.d.mts +9 -0
- package/dist/runtime/pageLayout.mjs +16 -0
- package/dist/runtime/pageLayout.mjs.map +1 -0
- package/dist/runtime/polyfill/animation.mjs +120 -0
- package/dist/runtime/polyfill/animation.mjs.map +1 -0
- package/dist/runtime/polyfill/appState.mjs +1 -1
- package/dist/runtime/polyfill/appState.mjs.map +1 -1
- package/dist/runtime/polyfill/async.d.mts +7 -0
- package/dist/runtime/polyfill/async.mjs.map +1 -1
- package/dist/runtime/polyfill/canvasContext.mjs +41 -0
- package/dist/runtime/polyfill/canvasContext.mjs.map +1 -1
- package/dist/runtime/polyfill/device.mjs +1 -1
- package/dist/runtime/polyfill/device.mjs.map +1 -1
- package/dist/runtime/polyfill/deviceAuthSystemApi.mjs +8 -2
- package/dist/runtime/polyfill/deviceAuthSystemApi.mjs.map +1 -1
- package/dist/runtime/polyfill/eventBus.mjs +56 -0
- package/dist/runtime/polyfill/eventBus.mjs.map +1 -0
- package/dist/runtime/polyfill/fileSystemManager.mjs +5 -2
- package/dist/runtime/polyfill/fileSystemManager.mjs.map +1 -1
- package/dist/runtime/polyfill/files.mjs +10 -10
- package/dist/runtime/polyfill/files.mjs.map +1 -1
- package/dist/runtime/polyfill/font.mjs +32 -0
- package/dist/runtime/polyfill/font.mjs.map +1 -0
- package/dist/runtime/polyfill/index.d.mts +2 -2
- package/dist/runtime/polyfill/index.mjs +49 -45
- package/dist/runtime/polyfill/index.mjs.map +1 -1
- package/dist/runtime/polyfill/interaction.mjs +7 -6
- package/dist/runtime/polyfill/interaction.mjs.map +1 -1
- package/dist/runtime/polyfill/interactionApi.mjs +3 -2
- package/dist/runtime/polyfill/interactionApi.mjs.map +1 -1
- package/dist/runtime/polyfill/intersectionObserver.mjs +106 -0
- package/dist/runtime/polyfill/intersectionObserver.mjs.map +1 -0
- package/dist/runtime/polyfill/locale.mjs +14 -0
- package/dist/runtime/polyfill/locale.mjs.map +1 -0
- package/dist/runtime/polyfill/locationApi.mjs +7 -4
- package/dist/runtime/polyfill/locationApi.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaActions.mjs +2 -2
- package/dist/runtime/polyfill/mediaActions.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/file.mjs +1 -1
- package/dist/runtime/polyfill/mediaApi/info.mjs +6 -4
- package/dist/runtime/polyfill/mediaApi/info.mjs.map +1 -1
- package/dist/runtime/polyfill/menuApi.mjs +38 -4
- package/dist/runtime/polyfill/menuApi.mjs.map +1 -1
- package/dist/runtime/polyfill/navigationBarRuntime.mjs +6 -1
- package/dist/runtime/polyfill/navigationBarRuntime.mjs.map +1 -1
- package/dist/runtime/polyfill/network/request.mjs +2 -2
- package/dist/runtime/polyfill/network/request.mjs.map +1 -1
- package/dist/runtime/polyfill/platformApi.mjs +1 -1
- package/dist/runtime/polyfill/routeRuntime/appLifecycle.mjs +88 -0
- package/dist/runtime/polyfill/routeRuntime/appLifecycle.mjs.map +1 -0
- package/dist/runtime/polyfill/routeRuntime/dom.mjs +44 -15
- package/dist/runtime/polyfill/routeRuntime/dom.mjs.map +1 -1
- package/dist/runtime/polyfill/routeRuntime/history.d.mts +30 -0
- package/dist/runtime/polyfill/routeRuntime/history.mjs +148 -0
- package/dist/runtime/polyfill/routeRuntime/history.mjs.map +1 -0
- package/dist/runtime/polyfill/routeRuntime/lifecycle.mjs +39 -8
- package/dist/runtime/polyfill/routeRuntime/lifecycle.mjs.map +1 -1
- package/dist/runtime/polyfill/routeRuntime/options.d.mts +11 -1
- package/dist/runtime/polyfill/routeRuntime/options.mjs +0 -1
- package/dist/runtime/polyfill/routeRuntime/options.mjs.map +1 -1
- package/dist/runtime/polyfill/routeRuntime/result.mjs +12 -0
- package/dist/runtime/polyfill/routeRuntime/result.mjs.map +1 -0
- package/dist/runtime/polyfill/routeRuntime/scroll.mjs +39 -0
- package/dist/runtime/polyfill/routeRuntime/scroll.mjs.map +1 -0
- package/dist/runtime/polyfill/routeRuntime/stack.mjs +122 -0
- package/dist/runtime/polyfill/routeRuntime/stack.mjs.map +1 -0
- package/dist/runtime/polyfill/routeRuntime.d.mts +26 -17
- package/dist/runtime/polyfill/routeRuntime.mjs +121 -96
- package/dist/runtime/polyfill/routeRuntime.mjs.map +1 -1
- package/dist/runtime/polyfill/runtimeDataApi.mjs +8 -3
- package/dist/runtime/polyfill/runtimeDataApi.mjs.map +1 -1
- package/dist/runtime/polyfill/runtimeOps.mjs +10 -6
- package/dist/runtime/polyfill/runtimeOps.mjs.map +1 -1
- package/dist/runtime/polyfill/selectorQuery.mjs +70 -14
- package/dist/runtime/polyfill/selectorQuery.mjs.map +1 -1
- package/dist/runtime/polyfill/storage.mjs +5 -2
- package/dist/runtime/polyfill/storage.mjs.map +1 -1
- package/dist/runtime/polyfill/system.mjs +30 -3
- package/dist/runtime/polyfill/system.mjs.map +1 -1
- package/dist/runtime/polyfill/types/locationRuntime.d.mts +1 -4
- package/dist/runtime/polyfill/types/platformRuntime.d.mts +9 -0
- package/dist/runtime/polyfill/types/systemAuth.d.mts +20 -9
- package/dist/runtime/polyfill/types/tabBarRuntime.d.mts +25 -0
- package/dist/runtime/polyfill/ui.mjs +2 -6
- package/dist/runtime/polyfill/ui.mjs.map +1 -1
- package/dist/runtime/polyfill/uiMediaApi.d.mts +11 -10
- package/dist/runtime/polyfill/uiMediaApi.mjs +26 -2
- package/dist/runtime/polyfill/uiMediaApi.mjs.map +1 -1
- package/dist/runtime/polyfill/videoContext.mjs +4 -0
- package/dist/runtime/polyfill/videoContext.mjs.map +1 -1
- package/dist/runtime/polyfill/vkSession.mjs +4 -14
- package/dist/runtime/polyfill/vkSession.mjs.map +1 -1
- package/dist/runtime/polyfill.d.mts +2 -2
- package/dist/runtime/renderContext.mjs +1 -1
- package/dist/runtime/renderContext.mjs.map +1 -1
- package/dist/runtime/rpx.mjs +17 -8
- package/dist/runtime/rpx.mjs.map +1 -1
- package/dist/runtime/seo/index.d.mts +31 -0
- package/dist/runtime/seo/index.mjs +94 -0
- package/dist/runtime/seo/index.mjs.map +1 -0
- package/dist/runtime/viewport/index.d.mts +12 -0
- package/dist/runtime/viewport/index.mjs +44 -0
- package/dist/runtime/viewport/index.mjs.map +1 -0
- package/dist/runtime/viewport/style.mjs +62 -0
- package/dist/runtime/viewport/style.mjs.map +1 -0
- package/dist/runtime/viewport/types.d.mts +14 -0
- package/dist/runtime/wevu.d.mts +20 -0
- package/dist/runtime/wevu.mjs +73 -0
- package/dist/runtime/wevu.mjs.map +1 -0
- package/dist/shared/nativeComponents.mjs +401 -0
- package/dist/shared/nativeComponents.mjs.map +1 -0
- package/dist/shared/tabBar.d.mts +19 -0
- package/dist/shared/tabBar.mjs +37 -0
- package/dist/shared/tabBar.mjs.map +1 -0
- package/dist/shared/wxml.mjs +3 -20
- package/dist/shared/wxml.mjs.map +1 -1
- package/package.json +13 -5
|
@@ -0,0 +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,3 +1,5 @@
|
|
|
1
|
+
import { WEVU_PAGE_LAYOUT_NAME_KEY, WEVU_PAGE_LAYOUT_PROPS_KEY, WEVU_PAGE_LAYOUT_SETTER_KEY } from "@weapp-core/constants";
|
|
2
|
+
|
|
1
3
|
//#region src/runtime/polyfill/routeRuntime/lifecycle.ts
|
|
2
4
|
const ROUTE_META_SYMBOL = Symbol("@weapp-vite/web:route-meta");
|
|
3
5
|
const PAGE_STATE_SYMBOL = Symbol("@weapp-vite/web:page-state");
|
|
@@ -6,7 +8,10 @@ function getRouteMeta(instance) {
|
|
|
6
8
|
}
|
|
7
9
|
function getPageState(instance) {
|
|
8
10
|
const target = instance;
|
|
9
|
-
target[PAGE_STATE_SYMBOL] ??= {
|
|
11
|
+
target[PAGE_STATE_SYMBOL] ??= {
|
|
12
|
+
loaded: false,
|
|
13
|
+
visible: false
|
|
14
|
+
};
|
|
10
15
|
return target[PAGE_STATE_SYMBOL];
|
|
11
16
|
}
|
|
12
17
|
function walkElementsDeep(root, collector) {
|
|
@@ -30,7 +35,23 @@ function dispatchPageLifetimeToComponents(page, type) {
|
|
|
30
35
|
}
|
|
31
36
|
}
|
|
32
37
|
function attachRouteMeta(element, meta) {
|
|
33
|
-
|
|
38
|
+
const carrier = element;
|
|
39
|
+
carrier[ROUTE_META_SYMBOL] = meta;
|
|
40
|
+
carrier.route = meta.id;
|
|
41
|
+
}
|
|
42
|
+
function hidePageInstance(instance, record) {
|
|
43
|
+
const state = getPageState(instance);
|
|
44
|
+
if (!state.visible) return;
|
|
45
|
+
dispatchPageLifetimeToComponents(instance, "hide");
|
|
46
|
+
record.hooks.onHide?.call(instance);
|
|
47
|
+
state.visible = false;
|
|
48
|
+
}
|
|
49
|
+
function showPageInstance(instance, record) {
|
|
50
|
+
const state = getPageState(instance);
|
|
51
|
+
if (state.visible || !state.loaded) return;
|
|
52
|
+
record.hooks.onShow?.call(instance);
|
|
53
|
+
dispatchPageLifetimeToComponents(instance, "show");
|
|
54
|
+
state.visible = true;
|
|
34
55
|
}
|
|
35
56
|
function augmentPageComponentOptions(component, record) {
|
|
36
57
|
const lifetimes = component.lifetimes ?? {};
|
|
@@ -44,6 +65,13 @@ function augmentPageComponentOptions(component, record) {
|
|
|
44
65
|
...lifetimes,
|
|
45
66
|
created() {
|
|
46
67
|
originalCreated?.call(this);
|
|
68
|
+
const target = this;
|
|
69
|
+
target[WEVU_PAGE_LAYOUT_SETTER_KEY] = (layout, props) => {
|
|
70
|
+
target.setData?.({
|
|
71
|
+
[WEVU_PAGE_LAYOUT_NAME_KEY]: layout === false ? "__wv_no_layout" : layout,
|
|
72
|
+
[WEVU_PAGE_LAYOUT_PROPS_KEY]: layout === false ? {} : props ?? {}
|
|
73
|
+
});
|
|
74
|
+
};
|
|
47
75
|
getPageState(this);
|
|
48
76
|
record.instances.add(this);
|
|
49
77
|
},
|
|
@@ -56,22 +84,25 @@ function augmentPageComponentOptions(component, record) {
|
|
|
56
84
|
record.hooks.onLoad?.call(this, meta?.query ?? {});
|
|
57
85
|
state.loaded = true;
|
|
58
86
|
}
|
|
59
|
-
|
|
87
|
+
if (meta?.entry.active !== false) {
|
|
88
|
+
record.hooks.onShow?.call(this);
|
|
89
|
+
state.visible = true;
|
|
90
|
+
}
|
|
60
91
|
},
|
|
61
92
|
ready() {
|
|
62
93
|
originalReady?.call(this);
|
|
63
94
|
record.hooks.onReady?.call(this);
|
|
64
|
-
dispatchPageLifetimeToComponents(this, "show");
|
|
95
|
+
if (getPageState(this).visible) dispatchPageLifetimeToComponents(this, "show");
|
|
65
96
|
},
|
|
66
97
|
detached() {
|
|
67
98
|
originalDetached?.call(this);
|
|
68
99
|
const meta = getRouteMeta(this);
|
|
69
100
|
if (meta?.entry) meta.entry.instance = void 0;
|
|
70
|
-
dispatchPageLifetimeToComponents(this, "hide");
|
|
71
|
-
record.hooks.onHide?.call(this);
|
|
72
|
-
record.hooks.onUnload?.call(this);
|
|
73
101
|
const state = getPageState(this);
|
|
102
|
+
hidePageInstance(this, record);
|
|
103
|
+
if (state.loaded) record.hooks.onUnload?.call(this);
|
|
74
104
|
state.loaded = false;
|
|
105
|
+
state.visible = false;
|
|
75
106
|
record.instances.delete(this);
|
|
76
107
|
}
|
|
77
108
|
}
|
|
@@ -79,5 +110,5 @@ function augmentPageComponentOptions(component, record) {
|
|
|
79
110
|
}
|
|
80
111
|
|
|
81
112
|
//#endregion
|
|
82
|
-
export { attachRouteMeta, augmentPageComponentOptions, dispatchPageLifetimeToComponents };
|
|
113
|
+
export { attachRouteMeta, augmentPageComponentOptions, dispatchPageLifetimeToComponents, hidePageInstance, showPageInstance };
|
|
83
114
|
//# sourceMappingURL=lifecycle.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/lifecycle.ts"],"sourcesContent":["import type { ComponentOptions, ComponentPublicInstance } from '../../component'\nimport type { PageRecord, RouteMeta } from './options'\n\nconst ROUTE_META_SYMBOL = Symbol('@weapp-vite/web:route-meta')\nconst PAGE_STATE_SYMBOL = Symbol('@weapp-vite/web:page-state')\n\ninterface RouteMetaCarrier {\n [ROUTE_META_SYMBOL]?: RouteMeta\n}\n\ninterface PageInstanceState {\n loaded: boolean\n}\n\ninterface PageStateCarrier {\n [PAGE_STATE_SYMBOL]?: PageInstanceState\n}\n\ntype ComponentPageLifetimeType = 'show' | 'hide' | 'resize'\n\ninterface PageLifetimeAwareComponent extends HTMLElement {\n __weappInvokePageLifetime?: (type: ComponentPageLifetimeType) => void\n renderRoot?: ShadowRoot | HTMLElement\n}\n\nfunction getRouteMeta(instance: ComponentPublicInstance): RouteMeta | undefined {\n return (instance as RouteMetaCarrier)[ROUTE_META_SYMBOL]\n}\n\nfunction getPageState(instance: ComponentPublicInstance): PageInstanceState {\n const target = instance as PageStateCarrier\n target[PAGE_STATE_SYMBOL] ??= { loaded: false }\n return target[PAGE_STATE_SYMBOL]!\n}\n\nfunction walkElementsDeep(root: ParentNode, collector: Set<HTMLElement>) {\n const nodes = Array.from((root as ParentNode & { childNodes?: ArrayLike<unknown> }).childNodes ?? [])\n for (const node of nodes) {\n if (!(node instanceof HTMLElement)) {\n continue\n }\n collector.add(node)\n walkElementsDeep(node, collector)\n if (node.shadowRoot) {\n walkElementsDeep(node.shadowRoot, collector)\n }\n }\n}\n\nexport function dispatchPageLifetimeToComponents(\n page: ComponentPublicInstance,\n type: ComponentPageLifetimeType,\n) {\n const host = page as ComponentPublicInstance & {\n renderRoot?: ShadowRoot | HTMLElement\n shadowRoot?: ShadowRoot | null\n }\n const root = host.renderRoot ?? host.shadowRoot ?? host\n if (!root || typeof root.querySelectorAll !== 'function') {\n return\n }\n const elements = new Set<HTMLElement>()\n walkElementsDeep(root, elements)\n for (const element of elements) {\n const component = element as PageLifetimeAwareComponent\n if (typeof component.__weappInvokePageLifetime === 'function') {\n component.__weappInvokePageLifetime(type)\n }\n }\n}\n\nexport function attachRouteMeta(\n element: HTMLElement & ComponentPublicInstance,\n meta: RouteMeta,\n) {\n
|
|
1
|
+
{"version":3,"file":"lifecycle.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/lifecycle.ts"],"sourcesContent":["import type { ComponentOptions, ComponentPublicInstance } from '../../component'\nimport type { PageRecord, RouteMeta } from './options'\nimport { WEVU_PAGE_LAYOUT_NAME_KEY, WEVU_PAGE_LAYOUT_PROPS_KEY, WEVU_PAGE_LAYOUT_SETTER_KEY } from '@weapp-core/constants'\n\nconst ROUTE_META_SYMBOL = Symbol('@weapp-vite/web:route-meta')\nconst PAGE_STATE_SYMBOL = Symbol('@weapp-vite/web:page-state')\n\ninterface RouteMetaCarrier {\n [ROUTE_META_SYMBOL]?: RouteMeta\n route?: string\n}\n\ninterface PageInstanceState {\n loaded: boolean\n visible: boolean\n}\n\ninterface PageStateCarrier {\n [PAGE_STATE_SYMBOL]?: PageInstanceState\n}\n\ntype ComponentPageLifetimeType = 'show' | 'hide' | 'resize'\n\ninterface PageLifetimeAwareComponent extends HTMLElement {\n __weappInvokePageLifetime?: (type: ComponentPageLifetimeType) => void\n renderRoot?: ShadowRoot | HTMLElement\n}\n\nfunction getRouteMeta(instance: ComponentPublicInstance): RouteMeta | undefined {\n return (instance as RouteMetaCarrier)[ROUTE_META_SYMBOL]\n}\n\nfunction getPageState(instance: ComponentPublicInstance): PageInstanceState {\n const target = instance as PageStateCarrier\n target[PAGE_STATE_SYMBOL] ??= { loaded: false, visible: false }\n return target[PAGE_STATE_SYMBOL]!\n}\n\nfunction walkElementsDeep(root: ParentNode, collector: Set<HTMLElement>) {\n const nodes = Array.from((root as ParentNode & { childNodes?: ArrayLike<unknown> }).childNodes ?? [])\n for (const node of nodes) {\n if (!(node instanceof HTMLElement)) {\n continue\n }\n collector.add(node)\n walkElementsDeep(node, collector)\n if (node.shadowRoot) {\n walkElementsDeep(node.shadowRoot, collector)\n }\n }\n}\n\nexport function dispatchPageLifetimeToComponents(\n page: ComponentPublicInstance,\n type: ComponentPageLifetimeType,\n) {\n const host = page as ComponentPublicInstance & {\n renderRoot?: ShadowRoot | HTMLElement\n shadowRoot?: ShadowRoot | null\n }\n const root = host.renderRoot ?? host.shadowRoot ?? host\n if (!root || typeof root.querySelectorAll !== 'function') {\n return\n }\n const elements = new Set<HTMLElement>()\n walkElementsDeep(root, elements)\n for (const element of elements) {\n const component = element as PageLifetimeAwareComponent\n if (typeof component.__weappInvokePageLifetime === 'function') {\n component.__weappInvokePageLifetime(type)\n }\n }\n}\n\nexport function attachRouteMeta(\n element: HTMLElement & ComponentPublicInstance,\n meta: RouteMeta,\n) {\n const carrier = element as RouteMetaCarrier\n carrier[ROUTE_META_SYMBOL] = meta\n carrier.route = meta.id\n}\n\nexport function hidePageInstance(instance: ComponentPublicInstance, record: PageRecord) {\n const state = getPageState(instance)\n if (!state.visible) {\n return\n }\n dispatchPageLifetimeToComponents(instance, 'hide')\n record.hooks.onHide?.call(instance)\n state.visible = false\n}\n\nexport function showPageInstance(instance: ComponentPublicInstance, record: PageRecord) {\n const state = getPageState(instance)\n if (state.visible || !state.loaded) {\n return\n }\n record.hooks.onShow?.call(instance)\n dispatchPageLifetimeToComponents(instance, 'show')\n state.visible = true\n}\n\nexport function augmentPageComponentOptions(component: ComponentOptions, record: PageRecord) {\n const lifetimes = component.lifetimes ?? {}\n const originalCreated = lifetimes?.created\n const originalAttached = lifetimes?.attached\n const originalReady = lifetimes?.ready\n const originalDetached = lifetimes?.detached\n\n const enhanced: ComponentOptions = {\n ...component,\n lifetimes: {\n ...lifetimes,\n created(this: ComponentPublicInstance) {\n originalCreated?.call(this)\n const target = this as ComponentPublicInstance & Record<string, any>\n target[WEVU_PAGE_LAYOUT_SETTER_KEY] = (layout: string | false, props?: Record<string, any>) => {\n target.setData?.({\n [WEVU_PAGE_LAYOUT_NAME_KEY]: layout === false ? '__wv_no_layout' : layout,\n [WEVU_PAGE_LAYOUT_PROPS_KEY]: layout === false ? {} : (props ?? {}),\n })\n }\n getPageState(this)\n record.instances.add(this)\n },\n attached(this: ComponentPublicInstance) {\n originalAttached?.call(this)\n const meta = getRouteMeta(this)\n if (meta?.entry) {\n meta.entry.instance = this\n }\n const state = getPageState(this)\n if (!state.loaded) {\n record.hooks.onLoad?.call(this, meta?.query ?? {})\n state.loaded = true\n }\n if (meta?.entry.active !== false) {\n record.hooks.onShow?.call(this)\n state.visible = true\n }\n },\n ready(this: ComponentPublicInstance) {\n originalReady?.call(this)\n record.hooks.onReady?.call(this)\n if (getPageState(this).visible) {\n dispatchPageLifetimeToComponents(this, 'show')\n }\n },\n detached(this: ComponentPublicInstance) {\n originalDetached?.call(this)\n const meta = getRouteMeta(this)\n if (meta?.entry) {\n meta.entry.instance = undefined\n }\n const state = getPageState(this)\n hidePageInstance(this, record)\n if (state.loaded) {\n record.hooks.onUnload?.call(this)\n }\n state.loaded = false\n state.visible = false\n record.instances.delete(this)\n },\n },\n }\n\n return enhanced\n}\n"],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { NavigationBarConfig } from "../../../compiler/wxml/types.mjs";
|
|
1
2
|
import { TemplateRenderer } from "../../template.mjs";
|
|
2
3
|
import { ComponentOptions, ComponentPublicInstance } from "../../component/types.mjs";
|
|
3
4
|
import "../../component/index.mjs";
|
|
5
|
+
import { MiniProgramAsyncOptions, MiniProgramBaseResult } from "../types/base.mjs";
|
|
4
6
|
//#region src/runtime/polyfill/routeRuntime/options.d.ts
|
|
5
7
|
interface RegisterMeta {
|
|
6
8
|
id: string;
|
|
7
9
|
template?: TemplateRenderer;
|
|
8
10
|
style?: string;
|
|
11
|
+
navigationBar?: NavigationBarConfig;
|
|
9
12
|
}
|
|
10
13
|
interface PageHooks {
|
|
11
14
|
onLoad?: (this: ComponentPublicInstance, query: Record<string, string>) => void;
|
|
@@ -17,6 +20,7 @@ interface PageHooks {
|
|
|
17
20
|
interface AppLifecycleHooks {
|
|
18
21
|
onLaunch?: (this: AppRuntime, options: AppLaunchOptions) => void;
|
|
19
22
|
onShow?: (this: AppRuntime, options: AppLaunchOptions) => void;
|
|
23
|
+
onHide?: (this: AppRuntime) => void;
|
|
20
24
|
}
|
|
21
25
|
type AppRuntime = Record<string, unknown> & Partial<AppLifecycleHooks> & {
|
|
22
26
|
globalData?: Record<string, unknown>;
|
|
@@ -27,8 +31,14 @@ interface AppLaunchOptions {
|
|
|
27
31
|
query: Record<string, string>;
|
|
28
32
|
referrerInfo: Record<string, unknown>;
|
|
29
33
|
}
|
|
34
|
+
interface RouteOptions extends MiniProgramAsyncOptions<MiniProgramBaseResult> {
|
|
35
|
+
url: string;
|
|
36
|
+
}
|
|
37
|
+
interface NavigateBackOptions extends MiniProgramAsyncOptions<MiniProgramBaseResult> {
|
|
38
|
+
delta?: number;
|
|
39
|
+
}
|
|
30
40
|
type PageRawOptions = ComponentOptions & PageHooks & Record<string, unknown>;
|
|
31
41
|
type ComponentRawOptions = ComponentOptions & Record<string, unknown>;
|
|
32
42
|
//#endregion
|
|
33
|
-
export { AppLaunchOptions, AppRuntime, ComponentRawOptions, PageHooks, PageRawOptions, RegisterMeta };
|
|
43
|
+
export { AppLaunchOptions, AppRuntime, ComponentRawOptions, NavigateBackOptions, PageHooks, PageRawOptions, RegisterMeta, RouteOptions };
|
|
34
44
|
//# sourceMappingURL=options.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/options.ts"],"sourcesContent":["import type { ComponentOptions, ComponentPublicInstance } from '../../component'\nimport type { TemplateRenderer } from '../../template'\n\nexport interface RegisterMeta {\n id: string\n template?: TemplateRenderer\n style?: string\n}\n\nexport interface PageHooks {\n onLoad?: (this: ComponentPublicInstance, query: Record<string, string>) => void\n onReady?: (this: ComponentPublicInstance) => void\n onShow?: (this: ComponentPublicInstance) => void\n onHide?: (this: ComponentPublicInstance) => void\n onUnload?: (this: ComponentPublicInstance) => void\n}\n\nexport interface PageRecord {\n tag: string\n hooks: PageHooks\n instances: Set<ComponentPublicInstance>\n}\n\nexport interface ComponentRecord {\n tag: string\n}\n\nexport interface PageStackEntry {\n id: string\n query: Record<string, string>\n instance?: ComponentPublicInstance\n}\n\nexport interface RouteMeta {\n id: string\n query: Record<string, string>\n entry: PageStackEntry\n}\n\ninterface AppLifecycleHooks {\n onLaunch?: (this: AppRuntime, options: AppLaunchOptions) => void\n onShow?: (this: AppRuntime, options: AppLaunchOptions) => void\n}\n\nexport type AppRuntime = Record<string, unknown> & Partial<AppLifecycleHooks> & {\n globalData?: Record<string, unknown>\n}\n\nexport interface AppLaunchOptions {\n path: string\n scene: number\n query: Record<string, string>\n referrerInfo: Record<string, unknown>\n}\n\ntype MethodHandler = (this: ComponentPublicInstance, ...args: unknown[]) => unknown\n\nexport type PageRawOptions = ComponentOptions & PageHooks & Record<string, unknown>\nexport type ComponentRawOptions = ComponentOptions & Record<string, unknown>\n\nconst PAGE_LIFECYCLE_KEYS = new Set(['onLoad', 'onReady', 'onShow', 'onHide', 'onUnload'])\nconst RESERVED_PAGE_METHOD_KEYS = new Set([\n 'data',\n 'methods',\n 'lifetimes',\n 'properties',\n 'behaviors',\n 'options',\n 'observers',\n 'mixins',\n ...PAGE_LIFECYCLE_KEYS,\n])\nconst RESERVED_COMPONENT_METHOD_KEYS = new Set([\n 'data',\n 'methods',\n 'lifetimes',\n 'pageLifetimes',\n 'properties',\n 'behaviors',\n 'options',\n 'observers',\n 'mixins',\n])\n\nfunction cloneLifetimes(source
|
|
1
|
+
{"version":3,"file":"options.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/options.ts"],"sourcesContent":["import type { NavigationBarConfig } from '../../../compiler/wxml'\nimport type { ComponentOptions, ComponentPublicInstance } from '../../component'\nimport type { TemplateRenderer } from '../../template'\nimport type { MiniProgramAsyncOptions, MiniProgramBaseResult } from '../types'\n\nexport interface RegisterMeta {\n id: string\n template?: TemplateRenderer\n style?: string\n navigationBar?: NavigationBarConfig\n}\n\nexport interface PageHooks {\n onLoad?: (this: ComponentPublicInstance, query: Record<string, string>) => void\n onReady?: (this: ComponentPublicInstance) => void\n onShow?: (this: ComponentPublicInstance) => void\n onHide?: (this: ComponentPublicInstance) => void\n onUnload?: (this: ComponentPublicInstance) => void\n}\n\nexport interface PageRecord {\n tag: string\n hooks: PageHooks\n instances: Set<ComponentPublicInstance>\n navigationBar?: NavigationBarConfig\n}\n\nexport interface ComponentRecord {\n tag: string\n}\n\nexport interface PageStackEntry {\n id: string\n query: Record<string, string>\n active: boolean\n element?: HTMLElement & ComponentPublicInstance\n instance?: ComponentPublicInstance\n scrollTop?: number\n}\n\nexport interface RouteMeta {\n id: string\n query: Record<string, string>\n entry: PageStackEntry\n}\n\ninterface AppLifecycleHooks {\n onLaunch?: (this: AppRuntime, options: AppLaunchOptions) => void\n onShow?: (this: AppRuntime, options: AppLaunchOptions) => void\n onHide?: (this: AppRuntime) => void\n}\n\nexport type AppRuntime = Record<string, unknown> & Partial<AppLifecycleHooks> & {\n globalData?: Record<string, unknown>\n}\n\nexport interface AppLaunchOptions {\n path: string\n scene: number\n query: Record<string, string>\n referrerInfo: Record<string, unknown>\n}\n\nexport interface RouteOptions extends MiniProgramAsyncOptions<MiniProgramBaseResult> {\n url: string\n}\n\nexport interface NavigateBackOptions extends MiniProgramAsyncOptions<MiniProgramBaseResult> {\n delta?: number\n}\n\ntype MethodHandler = (this: ComponentPublicInstance, ...args: unknown[]) => unknown\n\nexport type PageRawOptions = ComponentOptions & PageHooks & Record<string, unknown>\nexport type ComponentRawOptions = ComponentOptions & Record<string, unknown>\n\nconst PAGE_LIFECYCLE_KEYS = new Set(['onLoad', 'onReady', 'onShow', 'onHide', 'onUnload'])\nconst RESERVED_PAGE_METHOD_KEYS = new Set([\n 'data',\n 'methods',\n 'lifetimes',\n 'properties',\n 'behaviors',\n 'options',\n 'observers',\n 'mixins',\n ...PAGE_LIFECYCLE_KEYS,\n])\nconst RESERVED_COMPONENT_METHOD_KEYS = new Set([\n 'data',\n 'methods',\n 'lifetimes',\n 'pageLifetimes',\n 'properties',\n 'behaviors',\n 'options',\n 'observers',\n 'mixins',\n])\n\nfunction cloneLifetimes(source: NonNullable<ComponentOptions['lifetimes']>): ComponentOptions['lifetimes'] {\n return {\n ...source,\n }\n}\n\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n}\n\nfunction isMethodHandler(value: unknown): value is MethodHandler {\n return typeof value === 'function'\n}\n\nfunction normalizeMethodBag(\n source: Record<string, unknown> | undefined,\n reserved: Set<string>,\n) {\n const methods: Record<string, MethodHandler> = {}\n const sourceMethods = isRecord(source?.methods) ? source?.methods : undefined\n\n if (sourceMethods) {\n for (const [key, value] of Object.entries(sourceMethods)) {\n if (isMethodHandler(value)) {\n methods[key] = value\n }\n }\n }\n\n if (source) {\n for (const [key, value] of Object.entries(source)) {\n if (reserved.has(key)) {\n continue\n }\n if (isMethodHandler(value) && methods[key] === undefined) {\n methods[key] = value\n }\n }\n }\n return methods\n}\n\nexport function normalizePageOptions(raw: PageRawOptions | undefined): { component: ComponentOptions, hooks: PageHooks } {\n const component = { ...(raw ?? {}) } as ComponentOptions\n component.methods = normalizeMethodBag(raw as Record<string, unknown> | undefined, RESERVED_PAGE_METHOD_KEYS) as ComponentOptions['methods']\n if (raw?.lifetimes) {\n component.lifetimes = cloneLifetimes(raw.lifetimes)\n }\n const hooks: PageHooks = {}\n if (typeof raw?.onLoad === 'function') {\n hooks.onLoad = raw.onLoad as PageHooks['onLoad']\n }\n if (typeof raw?.onReady === 'function') {\n hooks.onReady = raw.onReady as PageHooks['onReady']\n }\n if (typeof raw?.onShow === 'function') {\n hooks.onShow = raw.onShow as PageHooks['onShow']\n }\n if (typeof raw?.onHide === 'function') {\n hooks.onHide = raw.onHide as PageHooks['onHide']\n }\n if (typeof raw?.onUnload === 'function') {\n hooks.onUnload = raw.onUnload as PageHooks['onUnload']\n }\n return { component, hooks }\n}\n\nexport function normalizeComponentOptions(raw: ComponentRawOptions | undefined): ComponentOptions {\n const component = { ...(raw ?? {}) } as ComponentOptions\n component.methods = normalizeMethodBag(raw as Record<string, unknown> | undefined, RESERVED_COMPONENT_METHOD_KEYS) as ComponentOptions['methods']\n if (raw?.lifetimes) {\n component.lifetimes = cloneLifetimes(raw.lifetimes)\n }\n return component\n}\n"],"mappings":";AA6EA,MAAM,4CAA4B,IAAI,IAAI;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,mBAAG,IAV2B,IAAI;EAAC;EAAU;EAAW;EAAU;EAAU;CAAU,CAUjE;AACvB,CAAC;AACD,MAAM,iDAAiC,IAAI,IAAI;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,SAAS,eAAe,QAAmF;CACzG,OAAO,EACL,GAAG,OACL;AACF;AAEA,SAAgB,SAAS,OAAkD;CACzE,OAAO,OAAO,UAAU,YAAY,UAAU;AAChD;AAEA,SAAS,gBAAgB,OAAwC;CAC/D,OAAO,OAAO,UAAU;AAC1B;AAEA,SAAS,mBACP,QACA,UACA;CACA,MAAM,UAAyC,CAAC;CAChD,MAAM,gBAAgB,SAAS,QAAQ,OAAO,IAAI,QAAQ,UAAU;CAEpE,IAAI,eACF;OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,aAAa,GACrD,IAAI,gBAAgB,KAAK,GACvB,QAAQ,OAAO;CAEnB;CAGF,IAAI,QACF,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,GAAG;EACjD,IAAI,SAAS,IAAI,GAAG,GAClB;EAEF,IAAI,gBAAgB,KAAK,KAAK,QAAQ,SAAS,QAC7C,QAAQ,OAAO;CAEnB;CAEF,OAAO;AACT;AAEA,SAAgB,qBAAqB,KAAoF;CACvH,MAAM,YAAY,EAAE,GAAI,OAAO,CAAC,EAAG;CACnC,UAAU,UAAU,mBAAmB,KAA4C,yBAAyB;CAC5G,IAAI,KAAK,WACP,UAAU,YAAY,eAAe,IAAI,SAAS;CAEpD,MAAM,QAAmB,CAAC;CAC1B,IAAI,OAAO,KAAK,WAAW,YACzB,MAAM,SAAS,IAAI;CAErB,IAAI,OAAO,KAAK,YAAY,YAC1B,MAAM,UAAU,IAAI;CAEtB,IAAI,OAAO,KAAK,WAAW,YACzB,MAAM,SAAS,IAAI;CAErB,IAAI,OAAO,KAAK,WAAW,YACzB,MAAM,SAAS,IAAI;CAErB,IAAI,OAAO,KAAK,aAAa,YAC3B,MAAM,WAAW,IAAI;CAEvB,OAAO;EAAE;EAAW;CAAM;AAC5B;AAEA,SAAgB,0BAA0B,KAAwD;CAChG,MAAM,YAAY,EAAE,GAAI,OAAO,CAAC,EAAG;CACnC,UAAU,UAAU,mBAAmB,KAA4C,8BAA8B;CACjH,IAAI,KAAK,WACP,UAAU,YAAY,eAAe,IAAI,SAAS;CAEpD,OAAO;AACT"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { callMiniProgramAsyncFailure, callMiniProgramAsyncSuccess } from "../async.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/runtime/polyfill/routeRuntime/result.ts
|
|
4
|
+
function resolveRouteAction(action, options, succeeded, failureReason = "page not found") {
|
|
5
|
+
if (succeeded) return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: `${action}:ok` }));
|
|
6
|
+
const failure = callMiniProgramAsyncFailure(options, `${action}:fail ${failureReason}`);
|
|
7
|
+
return Promise.reject(failure);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { resolveRouteAction };
|
|
12
|
+
//# sourceMappingURL=result.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/result.ts"],"sourcesContent":["import type { MiniProgramAsyncOptions, MiniProgramBaseResult } from '../types'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from '../async'\n\nexport function resolveRouteAction(\n action: string,\n options: MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n succeeded: boolean,\n failureReason = 'page not found',\n) {\n if (succeeded) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: `${action}:ok`,\n }))\n }\n const failure = callMiniProgramAsyncFailure(options, `${action}:fail ${failureReason}`)\n return Promise.reject(failure)\n}\n"],"mappings":";;;AAMA,SAAgB,mBACd,QACA,SACA,WACA,gBAAgB,kBAChB;CACA,IAAI,WACF,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAC1D,QAAQ,GAAG,OAAO,KACpB,CAAC,CAAC;CAEJ,MAAM,UAAU,4BAA4B,SAAS,GAAG,OAAO,QAAQ,eAAe;CACtF,OAAO,QAAQ,OAAO,OAAO;AAC/B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getAppContainer } from "../../appShell/container.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/runtime/polyfill/routeRuntime/scroll.ts
|
|
4
|
+
let activeEntry;
|
|
5
|
+
let boundContainer;
|
|
6
|
+
let scrollHandler;
|
|
7
|
+
function getPageContainer() {
|
|
8
|
+
return getAppContainer();
|
|
9
|
+
}
|
|
10
|
+
function captureEntryScrollPosition(entry) {
|
|
11
|
+
if (!entry.active) return;
|
|
12
|
+
const container = getPageContainer();
|
|
13
|
+
if (container) entry.scrollTop = container.scrollTop;
|
|
14
|
+
}
|
|
15
|
+
function restoreEntryScrollPosition(entry) {
|
|
16
|
+
const container = getPageContainer();
|
|
17
|
+
if (container) container.scrollTop = entry.scrollTop ?? 0;
|
|
18
|
+
}
|
|
19
|
+
function setEntryScrollOwner(entry, active) {
|
|
20
|
+
if (active) {
|
|
21
|
+
activeEntry = entry;
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (activeEntry === entry) activeEntry = void 0;
|
|
25
|
+
}
|
|
26
|
+
function recordActiveEntryScrollPosition() {
|
|
27
|
+
if (activeEntry) captureEntryScrollPosition(activeEntry);
|
|
28
|
+
}
|
|
29
|
+
function bindPageScrollOwner(container) {
|
|
30
|
+
if (boundContainer === container) return;
|
|
31
|
+
if (boundContainer && scrollHandler) boundContainer.removeEventListener("scroll", scrollHandler);
|
|
32
|
+
boundContainer = container;
|
|
33
|
+
scrollHandler = recordActiveEntryScrollPosition;
|
|
34
|
+
container.addEventListener("scroll", scrollHandler, { passive: true });
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { bindPageScrollOwner, captureEntryScrollPosition, getPageContainer, recordActiveEntryScrollPosition, restoreEntryScrollPosition, setEntryScrollOwner };
|
|
39
|
+
//# sourceMappingURL=scroll.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/scroll.ts"],"sourcesContent":["import type { PageStackEntry } from './options'\nimport { getAppContainer } from '../../appShell/container'\n\ntype ScrollContainer = HTMLElement & Pick<EventTarget, 'addEventListener' | 'removeEventListener'>\n\nlet activeEntry: PageStackEntry | undefined\nlet boundContainer: ScrollContainer | undefined\nlet scrollHandler: (() => void) | undefined\n\nexport function getPageContainer() {\n return getAppContainer()\n}\n\nexport function captureEntryScrollPosition(entry: PageStackEntry) {\n if (!entry.active) {\n return\n }\n const container = getPageContainer()\n if (container) {\n entry.scrollTop = container.scrollTop\n }\n}\n\nexport function restoreEntryScrollPosition(entry: PageStackEntry) {\n const container = getPageContainer()\n if (container) {\n container.scrollTop = entry.scrollTop ?? 0\n }\n}\n\nexport function setEntryScrollOwner(entry: PageStackEntry, active: boolean) {\n if (active) {\n activeEntry = entry\n return\n }\n if (activeEntry === entry) {\n activeEntry = undefined\n }\n}\n\nexport function recordActiveEntryScrollPosition() {\n if (activeEntry) {\n captureEntryScrollPosition(activeEntry)\n }\n}\n\nexport function bindPageScrollOwner(container: ScrollContainer) {\n if (boundContainer === container) {\n return\n }\n if (boundContainer && scrollHandler) {\n boundContainer.removeEventListener('scroll', scrollHandler)\n }\n boundContainer = container\n scrollHandler = recordActiveEntryScrollPosition\n container.addEventListener('scroll', scrollHandler, { passive: true })\n}\n\nexport function disposePageScrollOwner() {\n if (boundContainer && scrollHandler) {\n boundContainer.removeEventListener('scroll', scrollHandler)\n }\n activeEntry = undefined\n boundContainer = undefined\n scrollHandler = undefined\n}\n"],"mappings":";;;AAKA,IAAI;AACJ,IAAI;AACJ,IAAI;AAEJ,SAAgB,mBAAmB;CACjC,OAAO,gBAAgB;AACzB;AAEA,SAAgB,2BAA2B,OAAuB;CAChE,IAAI,CAAC,MAAM,QACT;CAEF,MAAM,YAAY,iBAAiB;CACnC,IAAI,WACF,MAAM,YAAY,UAAU;AAEhC;AAEA,SAAgB,2BAA2B,OAAuB;CAChE,MAAM,YAAY,iBAAiB;CACnC,IAAI,WACF,UAAU,YAAY,MAAM,aAAa;AAE7C;AAEA,SAAgB,oBAAoB,OAAuB,QAAiB;CAC1E,IAAI,QAAQ;EACV,cAAc;EACd;CACF;CACA,IAAI,gBAAgB,OAClB,cAAc;AAElB;AAEA,SAAgB,kCAAkC;CAChD,IAAI,aACF,2BAA2B,WAAW;AAE1C;AAEA,SAAgB,oBAAoB,WAA4B;CAC9D,IAAI,mBAAmB,WACrB;CAEF,IAAI,kBAAkB,eACpB,eAAe,oBAAoB,UAAU,aAAa;CAE5D,iBAAiB;CACjB,gBAAgB;CAChB,UAAU,iBAAiB,UAAU,eAAe,EAAE,SAAS,KAAK,CAAC;AACvE"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { hidePageInstance, showPageInstance } from "./lifecycle.mjs";
|
|
2
|
+
import { captureEntryScrollPosition, restoreEntryScrollPosition } from "./scroll.mjs";
|
|
3
|
+
import { mountEntryToDom, setEntryActiveInDom, unmountEntryFromDom } from "./dom.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/runtime/polyfill/routeRuntime/stack.ts
|
|
6
|
+
var PageStackRuntime = class {
|
|
7
|
+
pageRegistry;
|
|
8
|
+
onBeforeMount;
|
|
9
|
+
entries = [];
|
|
10
|
+
#tabEntries = /* @__PURE__ */ new Map();
|
|
11
|
+
#tabPageIds = /* @__PURE__ */ new Set();
|
|
12
|
+
constructor(pageRegistry, onBeforeMount) {
|
|
13
|
+
this.pageRegistry = pageRegistry;
|
|
14
|
+
this.onBeforeMount = onBeforeMount;
|
|
15
|
+
}
|
|
16
|
+
configureTabPages(ids) {
|
|
17
|
+
this.#tabPageIds = new Set(ids);
|
|
18
|
+
for (const [id, entry] of this.#tabEntries) {
|
|
19
|
+
if (this.#tabPageIds.has(id)) continue;
|
|
20
|
+
this.#tabEntries.delete(id);
|
|
21
|
+
this.#destroy(entry);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
push(id, query) {
|
|
25
|
+
if (!this.pageRegistry.has(id)) return false;
|
|
26
|
+
this.#hide(this.entries[this.entries.length - 1]);
|
|
27
|
+
const entry = {
|
|
28
|
+
id,
|
|
29
|
+
query,
|
|
30
|
+
active: true
|
|
31
|
+
};
|
|
32
|
+
this.entries.push(entry);
|
|
33
|
+
this.#mount(entry);
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
replace(id, query) {
|
|
37
|
+
if (!this.pageRegistry.has(id)) return false;
|
|
38
|
+
const entry = {
|
|
39
|
+
id,
|
|
40
|
+
query,
|
|
41
|
+
active: true
|
|
42
|
+
};
|
|
43
|
+
if (this.entries.length) {
|
|
44
|
+
const current = this.entries[this.entries.length - 1];
|
|
45
|
+
this.entries[this.entries.length - 1] = entry;
|
|
46
|
+
this.#destroy(current);
|
|
47
|
+
} else this.entries.push(entry);
|
|
48
|
+
this.#mount(entry);
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
relaunch(id, query) {
|
|
52
|
+
if (!this.pageRegistry.has(id)) return false;
|
|
53
|
+
const previousEntries = this.entries.splice(0);
|
|
54
|
+
for (const entry of previousEntries.reverse()) this.#destroy(entry);
|
|
55
|
+
for (const entry of this.#tabEntries.values()) this.#destroy(entry);
|
|
56
|
+
this.#tabEntries.clear();
|
|
57
|
+
return this.push(id, query);
|
|
58
|
+
}
|
|
59
|
+
switchTab(id, query) {
|
|
60
|
+
if (!this.#tabPageIds.has(id) || !this.pageRegistry.has(id)) return false;
|
|
61
|
+
const previousEntries = this.entries.splice(0);
|
|
62
|
+
let target = previousEntries.find((entry) => entry.id === id) ?? this.#tabEntries.get(id);
|
|
63
|
+
for (const entry of previousEntries.reverse()) {
|
|
64
|
+
if (entry === target) continue;
|
|
65
|
+
if (this.#tabPageIds.has(entry.id)) {
|
|
66
|
+
this.#hide(entry);
|
|
67
|
+
this.#tabEntries.set(entry.id, entry);
|
|
68
|
+
} else this.#destroy(entry);
|
|
69
|
+
}
|
|
70
|
+
if (target) {
|
|
71
|
+
this.#tabEntries.delete(id);
|
|
72
|
+
target.query = query;
|
|
73
|
+
this.entries.push(target);
|
|
74
|
+
this.#show(target);
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
target = {
|
|
78
|
+
id,
|
|
79
|
+
query,
|
|
80
|
+
active: true
|
|
81
|
+
};
|
|
82
|
+
this.entries.push(target);
|
|
83
|
+
this.#mount(target);
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
back(delta = 1) {
|
|
87
|
+
if (this.entries.length <= 1) return false;
|
|
88
|
+
const normalizedDelta = Math.max(1, delta);
|
|
89
|
+
const targetIndex = Math.max(0, this.entries.length - 1 - normalizedDelta);
|
|
90
|
+
const removed = this.entries.splice(targetIndex + 1);
|
|
91
|
+
for (const entry of removed.reverse()) this.#destroy(entry);
|
|
92
|
+
this.#show(this.entries[targetIndex]);
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
#mount(entry) {
|
|
96
|
+
mountEntryToDom(entry, this.pageRegistry, this.onBeforeMount);
|
|
97
|
+
}
|
|
98
|
+
#record(entry) {
|
|
99
|
+
return this.pageRegistry.get(entry.id);
|
|
100
|
+
}
|
|
101
|
+
#hide(entry) {
|
|
102
|
+
if (!entry) return;
|
|
103
|
+
captureEntryScrollPosition(entry);
|
|
104
|
+
setEntryActiveInDom(entry, false);
|
|
105
|
+
const record = this.#record(entry);
|
|
106
|
+
if (entry.instance && record) hidePageInstance(entry.instance, record);
|
|
107
|
+
}
|
|
108
|
+
#show(entry) {
|
|
109
|
+
setEntryActiveInDom(entry, true);
|
|
110
|
+
restoreEntryScrollPosition(entry);
|
|
111
|
+
const record = this.#record(entry);
|
|
112
|
+
if (entry.instance && record) showPageInstance(entry.instance, record);
|
|
113
|
+
}
|
|
114
|
+
#destroy(entry) {
|
|
115
|
+
unmountEntryFromDom(entry);
|
|
116
|
+
entry.active = false;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
//#endregion
|
|
121
|
+
export { PageStackRuntime };
|
|
122
|
+
//# sourceMappingURL=stack.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack.mjs","names":["#tabEntries","#tabPageIds","#destroy","#hide","#mount","#show","#record"],"sources":["../../../../src/runtime/polyfill/routeRuntime/stack.ts"],"sourcesContent":["import type { PageRecord, PageStackEntry } from './options'\nimport {\n mountEntryToDom,\n setEntryActiveInDom,\n unmountEntryFromDom,\n} from './dom'\nimport { hidePageInstance, showPageInstance } from './lifecycle'\nimport { captureEntryScrollPosition, restoreEntryScrollPosition } from './scroll'\n\nexport class PageStackRuntime {\n readonly entries: PageStackEntry[] = []\n readonly #tabEntries = new Map<string, PageStackEntry>()\n #tabPageIds = new Set<string>()\n\n constructor(\n private readonly pageRegistry: Map<string, PageRecord>,\n private readonly onBeforeMount: (entry: PageStackEntry) => void,\n ) {}\n\n configureTabPages(ids: Iterable<string>) {\n this.#tabPageIds = new Set(ids)\n for (const [id, entry] of this.#tabEntries) {\n if (this.#tabPageIds.has(id)) {\n continue\n }\n this.#tabEntries.delete(id)\n this.#destroy(entry)\n }\n }\n\n push(id: string, query: Record<string, string>) {\n if (!this.pageRegistry.has(id)) {\n return false\n }\n this.#hide(this.entries[this.entries.length - 1])\n const entry: PageStackEntry = { id, query, active: true }\n this.entries.push(entry)\n this.#mount(entry)\n return true\n }\n\n replace(id: string, query: Record<string, string>) {\n if (!this.pageRegistry.has(id)) {\n return false\n }\n const entry: PageStackEntry = { id, query, active: true }\n if (this.entries.length) {\n const current = this.entries[this.entries.length - 1]!\n this.entries[this.entries.length - 1] = entry\n this.#destroy(current)\n }\n else {\n this.entries.push(entry)\n }\n this.#mount(entry)\n return true\n }\n\n relaunch(id: string, query: Record<string, string>) {\n if (!this.pageRegistry.has(id)) {\n return false\n }\n const previousEntries = this.entries.splice(0)\n for (const entry of previousEntries.reverse()) {\n this.#destroy(entry)\n }\n for (const entry of this.#tabEntries.values()) {\n this.#destroy(entry)\n }\n this.#tabEntries.clear()\n return this.push(id, query)\n }\n\n switchTab(id: string, query: Record<string, string>) {\n if (!this.#tabPageIds.has(id) || !this.pageRegistry.has(id)) {\n return false\n }\n\n const previousEntries = this.entries.splice(0)\n let target = previousEntries.find(entry => entry.id === id) ?? this.#tabEntries.get(id)\n for (const entry of previousEntries.reverse()) {\n if (entry === target) {\n continue\n }\n if (this.#tabPageIds.has(entry.id)) {\n this.#hide(entry)\n this.#tabEntries.set(entry.id, entry)\n }\n else {\n this.#destroy(entry)\n }\n }\n\n if (target) {\n this.#tabEntries.delete(id)\n target.query = query\n this.entries.push(target)\n this.#show(target)\n return true\n }\n\n target = { id, query, active: true }\n this.entries.push(target)\n this.#mount(target)\n return true\n }\n\n back(delta = 1) {\n if (this.entries.length <= 1) {\n return false\n }\n const normalizedDelta = Math.max(1, delta)\n const targetIndex = Math.max(0, this.entries.length - 1 - normalizedDelta)\n const removed = this.entries.splice(targetIndex + 1)\n for (const entry of removed.reverse()) {\n this.#destroy(entry)\n }\n this.#show(this.entries[targetIndex]!)\n return true\n }\n\n #mount(entry: PageStackEntry) {\n mountEntryToDom(entry, this.pageRegistry, this.onBeforeMount)\n }\n\n #record(entry: PageStackEntry) {\n return this.pageRegistry.get(entry.id)\n }\n\n #hide(entry: PageStackEntry | undefined) {\n if (!entry) {\n return\n }\n captureEntryScrollPosition(entry)\n setEntryActiveInDom(entry, false)\n const record = this.#record(entry)\n if (entry.instance && record) {\n hidePageInstance(entry.instance, record)\n }\n }\n\n #show(entry: PageStackEntry) {\n setEntryActiveInDom(entry, true)\n restoreEntryScrollPosition(entry)\n const record = this.#record(entry)\n if (entry.instance && record) {\n showPageInstance(entry.instance, record)\n }\n }\n\n #destroy(entry: PageStackEntry) {\n unmountEntryFromDom(entry)\n entry.active = false\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { ButtonFormConfig } from "../button/index.mjs";
|
|
2
1
|
import "../component/index.mjs";
|
|
2
|
+
import { AppLaunchOptions, AppRuntime, ComponentRawOptions, NavigateBackOptions, PageRawOptions, RegisterMeta, RouteOptions } from "./routeRuntime/options.mjs";
|
|
3
|
+
import { WebRoutingConfig } from "./routeRuntime/history.mjs";
|
|
4
|
+
import { WebResourceHintsConfig, WebRuntimeSeoConfig as WebSeoConfig } from "../seo/index.mjs";
|
|
5
|
+
import { WebTabBarConfig } from "../../shared/tabBar.mjs";
|
|
6
|
+
import { ButtonFormConfig } from "../button/index.mjs";
|
|
3
7
|
import { NavigationBarMetrics } from "../navigationBar/index.mjs";
|
|
4
|
-
import {
|
|
8
|
+
import { WebViewportConfig } from "../viewport/types.mjs";
|
|
5
9
|
//#region src/runtime/polyfill/routeRuntime.d.ts
|
|
6
10
|
declare function initializePageRoutes(ids: string[], options?: {
|
|
7
11
|
rpx?: {
|
|
@@ -10,32 +14,37 @@ declare function initializePageRoutes(ids: string[], options?: {
|
|
|
10
14
|
};
|
|
11
15
|
navigationBar?: NavigationBarMetrics;
|
|
12
16
|
form?: ButtonFormConfig;
|
|
17
|
+
tabBar?: WebTabBarConfig;
|
|
13
18
|
runtime?: {
|
|
14
19
|
executionMode?: 'compat' | 'safe' | 'strict';
|
|
15
20
|
warnings?: {
|
|
16
21
|
level?: 'off' | 'warn' | 'error';
|
|
17
22
|
dedupe?: boolean;
|
|
18
23
|
};
|
|
24
|
+
viewport?: WebViewportConfig;
|
|
25
|
+
routing?: WebRoutingConfig;
|
|
26
|
+
seo?: WebSeoConfig;
|
|
27
|
+
resourceHints?: WebResourceHintsConfig;
|
|
19
28
|
};
|
|
20
29
|
}): void;
|
|
21
30
|
declare function registerPage<T extends PageRawOptions | undefined>(options: T, meta: RegisterMeta): T;
|
|
22
31
|
declare function registerComponent<T extends ComponentRawOptions | undefined>(options: T, meta: RegisterMeta): T;
|
|
23
32
|
declare function registerApp<T extends AppRuntime | undefined>(options: T, _meta?: RegisterMeta): T;
|
|
24
|
-
declare function navigateTo(options: {
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
declare function redirectTo(options: {
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
declare function reLaunch(options: {
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
declare function switchTab(options: {
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
declare function navigateBack(options?: {
|
|
37
|
-
|
|
38
|
-
}
|
|
33
|
+
declare function navigateTo(options: RouteOptions): Promise<{
|
|
34
|
+
errMsg: string;
|
|
35
|
+
}>;
|
|
36
|
+
declare function redirectTo(options: RouteOptions): Promise<{
|
|
37
|
+
errMsg: string;
|
|
38
|
+
}>;
|
|
39
|
+
declare function reLaunch(options: RouteOptions): Promise<{
|
|
40
|
+
errMsg: string;
|
|
41
|
+
}>;
|
|
42
|
+
declare function switchTab(options: RouteOptions): Promise<{
|
|
43
|
+
errMsg: string;
|
|
44
|
+
}>;
|
|
45
|
+
declare function navigateBack(options?: NavigateBackOptions): Promise<{
|
|
46
|
+
errMsg: string;
|
|
47
|
+
}>;
|
|
39
48
|
declare function getLaunchOptionsSync(): AppLaunchOptions;
|
|
40
49
|
declare function getEnterOptionsSync(): AppLaunchOptions;
|
|
41
50
|
//#endregion
|