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