@weapp-vite/web 1.3.37 → 1.4.1
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 +16 -12
- package/dist/compiler/wxml/renderer.mjs.map +1 -1
- package/dist/compiler/wxml/specialNodes.mjs +8 -2
- 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 +24 -6
- package/dist/index.mjs +21 -4
- 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 +244 -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 +6 -2
- 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 +211 -92
- 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 +150 -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 +36 -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/deviceApi.mjs +6 -3
- package/dist/runtime/polyfill/deviceApi.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 +33 -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 +9 -5
- 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 +11 -6
- 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 +3 -2
- package/dist/runtime/polyfill/mediaApi/file.mjs.map +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/mediaApi/picker.mjs +16 -8
- package/dist/runtime/polyfill/mediaApi/picker.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/preview.mjs +4 -2
- package/dist/runtime/polyfill/mediaApi/preview.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/process.mjs +4 -2
- package/dist/runtime/polyfill/mediaApi/process.mjs.map +1 -1
- package/dist/runtime/polyfill/menuApi.mjs +39 -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 +3 -2
- package/dist/runtime/polyfill/platformApi.mjs.map +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/storageAsync.mjs +4 -2
- package/dist/runtime/polyfill/storageAsync.mjs.map +1 -1
- package/dist/runtime/polyfill/system.mjs +31 -4
- package/dist/runtime/polyfill/system.mjs.map +1 -1
- package/dist/runtime/polyfill/systemApi.mjs +2 -1
- package/dist/runtime/polyfill/systemApi.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 +14 -6
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
import { emitRuntimeWarning } from "../warning.mjs";
|
|
2
2
|
import { callMiniProgramAsyncFailure, callMiniProgramAsyncSuccess } from "./async.mjs";
|
|
3
|
+
import { getAppInstance, getCurrentPagesInternal, getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab } from "./routeRuntime.mjs";
|
|
4
|
+
import { WEB_USER_DATA_PATH } from "./files.mjs";
|
|
5
|
+
import { clearStorage, clearStorageSync, createCanvasContext, createIntersectionObserver, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getFileSystemManager, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, hideKeyboard, loadSubPackage, navigateToMiniProgram, nextTick, pageScrollTo, preloadSubpackage, removeStorage, removeStorageSync, request, runtimeDataApi_exports, setStorage, setStorageSync, startPullDownRefresh, stopPullDownRefresh, uploadFile } from "./runtimeDataApi.mjs";
|
|
6
|
+
import { createAnimation } from "./animation.mjs";
|
|
3
7
|
import { setBackgroundColorBridge, setBackgroundTextStyleBridge } from "./background.mjs";
|
|
4
8
|
import { createCloudBridge } from "./cloud.mjs";
|
|
5
|
-
import { WEB_USER_DATA_PATH } from "./files.mjs";
|
|
6
9
|
import { canIUseBridge } from "./runtimeCapabilityApi.mjs";
|
|
7
|
-
import { authorize, checkSession, deviceAuthSystemApi_exports, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getDeviceInfo, getFuzzyLocation, getLocation, getMenuButtonBoundingClientRect, getNetworkType, getSetting, getSystemInfo, getSystemInfoSync, getSystemSetting, getUserInfo, getUserProfile, getWindowInfo, login, offNetworkStatusChange, offWindowResize, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openSetting, vibrateShort } from "./deviceAuthSystemApi.mjs";
|
|
10
|
+
import { authorize, checkSession, deviceAuthSystemApi_exports, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getDeviceInfo, getFuzzyLocation, getLocation, getMenuButtonBoundingClientRect, getNetworkType, getSetting, getSystemInfo, getSystemInfoSync, getSystemSetting, getUserInfo, getUserProfile, getWindowInfo, login, offNetworkStatusChange, offWindowResize, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openSetting, rpx2px, upx2px, vibrateShort } from "./deviceAuthSystemApi.mjs";
|
|
11
|
+
import { $emit, $off, $on, $once, eventBus_exports } from "./eventBus.mjs";
|
|
12
|
+
import { loadFontFace } from "./font.mjs";
|
|
13
|
+
import { getLocale } from "./locale.mjs";
|
|
8
14
|
import { createNavigationBarRuntimeBridge } from "./navigationBarRuntime.mjs";
|
|
9
15
|
import { createInterstitialAdBridge, createRewardedVideoAdBridge, getExtConfigBridge, getExtConfigSyncBridge, getLogManagerBridge, getUpdateManagerBridge, reportAnalyticsBridge } from "./platformApi.mjs";
|
|
10
|
-
import {
|
|
11
|
-
import { 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 } from "./runtimeDataApi.mjs";
|
|
12
|
-
import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideLoading, hideTabBar, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showToast, uiMediaApi_exports, updateShareMenu } from "./uiMediaApi.mjs";
|
|
16
|
+
import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideLoading, hideTabBar, hideTabBarRedDot, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, removeTabBarBadge, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, uiMediaApi_exports, updateShareMenu } from "./uiMediaApi.mjs";
|
|
13
17
|
import { getDefaultMiniProgramRuntimeGlobalKey, getMiniProgramRuntimeGlobalKeys } from "@weapp-core/shared";
|
|
14
18
|
|
|
15
19
|
//#region src/runtime/polyfill/index.ts
|
|
16
20
|
const MINI_PROGRAM_GLOBAL_KEYS = getMiniProgramRuntimeGlobalKeys();
|
|
17
21
|
const DEFAULT_MINI_PROGRAM_GLOBAL_KEY = getDefaultMiniProgramRuntimeGlobalKey();
|
|
18
|
-
const globalTarget =
|
|
22
|
+
const globalTarget = globalThis;
|
|
19
23
|
function resolveMiniProgramBridge() {
|
|
20
24
|
for (const runtimeGlobalKey of MINI_PROGRAM_GLOBAL_KEYS) {
|
|
21
25
|
const candidate = globalTarget[runtimeGlobalKey];
|
|
22
26
|
if (candidate && typeof candidate === "object") return candidate;
|
|
23
27
|
}
|
|
24
|
-
const fallback = globalTarget[DEFAULT_MINI_PROGRAM_GLOBAL_KEY];
|
|
25
|
-
if (fallback && typeof fallback === "object") return fallback;
|
|
26
28
|
}
|
|
27
29
|
const navigationBarRuntimeBridge = createNavigationBarRuntimeBridge(() => getCurrentPagesInternal(), emitRuntimeWarning);
|
|
28
30
|
function setNavigationBarTitle(options) {
|
|
@@ -68,43 +70,45 @@ function getLogManager(options) {
|
|
|
68
70
|
function reportAnalytics(eventName, data) {
|
|
69
71
|
reportAnalyticsBridge(eventName, data);
|
|
70
72
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
73
|
+
const miniProgramBridge = globalTarget[DEFAULT_MINI_PROGRAM_GLOBAL_KEY] ?? {};
|
|
74
|
+
Object.assign(miniProgramBridge, {
|
|
75
|
+
navigateTo,
|
|
76
|
+
navigateBack,
|
|
77
|
+
redirectTo,
|
|
78
|
+
switchTab,
|
|
79
|
+
reLaunch,
|
|
80
|
+
getLaunchOptionsSync,
|
|
81
|
+
getEnterOptionsSync,
|
|
82
|
+
...runtimeDataApi_exports,
|
|
83
|
+
setNavigationBarTitle,
|
|
84
|
+
setNavigationBarColor,
|
|
85
|
+
setBackgroundColor,
|
|
86
|
+
setBackgroundTextStyle,
|
|
87
|
+
showNavigationBarLoading,
|
|
88
|
+
hideNavigationBarLoading,
|
|
89
|
+
...uiMediaApi_exports,
|
|
90
|
+
...deviceAuthSystemApi_exports,
|
|
91
|
+
...eventBus_exports,
|
|
92
|
+
loadFontFace,
|
|
93
|
+
getLocale,
|
|
94
|
+
createAnimation,
|
|
95
|
+
createRewardedVideoAd,
|
|
96
|
+
createInterstitialAd,
|
|
97
|
+
getExtConfigSync,
|
|
98
|
+
getExtConfig,
|
|
99
|
+
getUpdateManager,
|
|
100
|
+
getLogManager,
|
|
101
|
+
reportAnalytics,
|
|
102
|
+
canIUse,
|
|
103
|
+
cloud: cloudBridge
|
|
104
|
+
});
|
|
105
|
+
const miniProgramEnv = miniProgramBridge.env ?? {};
|
|
106
|
+
if (typeof miniProgramEnv.USER_DATA_PATH !== "string" || !miniProgramEnv.USER_DATA_PATH.trim()) miniProgramEnv.USER_DATA_PATH = WEB_USER_DATA_PATH;
|
|
107
|
+
miniProgramBridge.env = miniProgramEnv;
|
|
108
|
+
for (const runtimeGlobalKey of MINI_PROGRAM_GLOBAL_KEYS) globalTarget[runtimeGlobalKey] = miniProgramBridge;
|
|
109
|
+
if (typeof globalTarget.getApp !== "function") globalTarget.getApp = getAppInstance;
|
|
110
|
+
if (typeof globalTarget.getCurrentPages !== "function") globalTarget.getCurrentPages = getCurrentPagesInternal;
|
|
107
111
|
|
|
108
112
|
//#endregion
|
|
109
|
-
export { authorize, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, createCanvasContext, createInterstitialAd, createRewardedVideoAd, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, initializePageRoutes, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offNetworkStatusChange, offWindowResize, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, removeStorage, removeStorageSync, reportAnalytics, request, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setClipboardData, setNavigationBarColor, setNavigationBarTitle, setStorage, setStorageSync, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, updateShareMenu, uploadFile, vibrateShort };
|
|
113
|
+
export { $emit, $off, $on, $once, authorize, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, createCanvasContext, createIntersectionObserver, createInterstitialAd, createRewardedVideoAd, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offNetworkStatusChange, offWindowResize, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, removeStorage, removeStorageSync, removeTabBarBadge, reportAnalytics, request, requestPayment, requestSubscribeMessage, rpx2px, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setClipboardData, setNavigationBarColor, setNavigationBarTitle, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, updateShareMenu, uploadFile, upx2px, vibrateShort };
|
|
110
114
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["runtimeDataApi","uiMediaApi","deviceAuthSystemApi"],"sources":["../../../src/runtime/polyfill/index.ts"],"sourcesContent":["import type {\n AdBaseOptions,\n CloudBridge,\n GetExtConfigOptions,\n InterstitialAd,\n LogManager,\n LogManagerOptions,\n MiniProgramAsyncOptions,\n MiniProgramBaseResult,\n RewardedVideoAd,\n SetBackgroundColorOptions,\n SetBackgroundTextStyleOptions,\n UpdateManager,\n} from './types'\nimport { getDefaultMiniProgramRuntimeGlobalKey, getMiniProgramRuntimeGlobalKeys } from '@weapp-core/shared'\nimport { emitRuntimeWarning } from '../warning'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n setBackgroundColorBridge,\n setBackgroundTextStyleBridge,\n} from './background'\nimport { createCloudBridge } from './cloud'\nimport * as deviceAuthSystemApi from './deviceAuthSystemApi'\nimport { WEB_USER_DATA_PATH } from './files'\nimport { createNavigationBarRuntimeBridge } from './navigationBarRuntime'\nimport {\n createInterstitialAdBridge,\n createRewardedVideoAdBridge,\n getExtConfigBridge,\n getExtConfigSyncBridge,\n getLogManagerBridge,\n getUpdateManagerBridge,\n reportAnalyticsBridge,\n} from './platformApi'\nimport {\n getAppInstance,\n getCurrentPagesInternal,\n getEnterOptionsSync,\n getLaunchOptionsSync,\n navigateBack,\n navigateTo,\n redirectTo,\n reLaunch,\n switchTab,\n} from './routeRuntime'\nimport {\n canIUseBridge,\n} from './runtimeCapabilityApi'\nimport * as runtimeDataApi from './runtimeDataApi'\nimport * as uiMediaApi from './uiMediaApi'\n\nexport * from './deviceAuthSystemApi'\n\nexport {\n getEnterOptionsSync,\n getLaunchOptionsSync,\n initializePageRoutes,\n navigateBack,\n navigateTo,\n redirectTo,\n registerApp,\n registerComponent,\n registerPage,\n reLaunch,\n switchTab,\n} from './routeRuntime'\n\nexport * from './runtimeDataApi'\nexport * from './uiMediaApi'\n\nconst MINI_PROGRAM_GLOBAL_KEYS = getMiniProgramRuntimeGlobalKeys()\nconst DEFAULT_MINI_PROGRAM_GLOBAL_KEY = getDefaultMiniProgramRuntimeGlobalKey()\nconst globalTarget =
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["runtimeDataApi","uiMediaApi","deviceAuthSystemApi","eventBusApi"],"sources":["../../../src/runtime/polyfill/index.ts"],"sourcesContent":["import type {\n AdBaseOptions,\n CloudBridge,\n GetExtConfigOptions,\n InterstitialAd,\n LogManager,\n LogManagerOptions,\n MiniProgramAsyncOptions,\n MiniProgramBaseResult,\n RewardedVideoAd,\n SetBackgroundColorOptions,\n SetBackgroundTextStyleOptions,\n UpdateManager,\n} from './types'\nimport { getDefaultMiniProgramRuntimeGlobalKey, getMiniProgramRuntimeGlobalKeys } from '@weapp-core/shared'\nimport { emitRuntimeWarning } from '../warning'\nimport { createAnimation } from './animation'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n setBackgroundColorBridge,\n setBackgroundTextStyleBridge,\n} from './background'\nimport { createCloudBridge } from './cloud'\nimport * as deviceAuthSystemApi from './deviceAuthSystemApi'\nimport * as eventBusApi from './eventBus'\nimport { WEB_USER_DATA_PATH } from './files'\nimport { loadFontFace } from './font'\nimport { getLocale } from './locale'\nimport { createNavigationBarRuntimeBridge } from './navigationBarRuntime'\nimport {\n createInterstitialAdBridge,\n createRewardedVideoAdBridge,\n getExtConfigBridge,\n getExtConfigSyncBridge,\n getLogManagerBridge,\n getUpdateManagerBridge,\n reportAnalyticsBridge,\n} from './platformApi'\nimport {\n getAppInstance,\n getCurrentPagesInternal,\n getEnterOptionsSync,\n getLaunchOptionsSync,\n navigateBack,\n navigateTo,\n redirectTo,\n reLaunch,\n switchTab,\n} from './routeRuntime'\nimport {\n canIUseBridge,\n} from './runtimeCapabilityApi'\nimport * as runtimeDataApi from './runtimeDataApi'\nimport * as uiMediaApi from './uiMediaApi'\n\nexport { createAnimation } from './animation'\nexport * from './deviceAuthSystemApi'\nexport * from './eventBus'\nexport { loadFontFace } from './font'\nexport { getLocale } from './locale'\n\nexport {\n getEnterOptionsSync,\n getLaunchOptionsSync,\n initializePageRoutes,\n navigateBack,\n navigateTo,\n redirectTo,\n registerApp,\n registerComponent,\n registerPage,\n reLaunch,\n switchTab,\n} from './routeRuntime'\n\nexport * from './runtimeDataApi'\nexport * from './uiMediaApi'\n\nconst MINI_PROGRAM_GLOBAL_KEYS = getMiniProgramRuntimeGlobalKeys()\nconst DEFAULT_MINI_PROGRAM_GLOBAL_KEY = getDefaultMiniProgramRuntimeGlobalKey()\nconst globalTarget = globalThis as Record<string, unknown>\n\nfunction resolveMiniProgramBridge() {\n for (const runtimeGlobalKey of MINI_PROGRAM_GLOBAL_KEYS) {\n const candidate = globalTarget[runtimeGlobalKey]\n if (candidate && typeof candidate === 'object') {\n return candidate as Record<string, unknown>\n }\n }\n return undefined\n}\n\nconst navigationBarRuntimeBridge = createNavigationBarRuntimeBridge(\n () => getCurrentPagesInternal() as Array<HTMLElement & { renderRoot?: ShadowRoot | HTMLElement }>,\n emitRuntimeWarning,\n)\n\nexport function setNavigationBarTitle(options: { title: string }) {\n return navigationBarRuntimeBridge.setNavigationBarTitle(options)\n}\n\nexport function setNavigationBarColor(options: {\n frontColor?: string\n backgroundColor?: string\n animation?: { duration?: number, timingFunction?: string }\n}) {\n return navigationBarRuntimeBridge.setNavigationBarColor(options)\n}\n\nexport function showNavigationBarLoading() {\n return navigationBarRuntimeBridge.showNavigationBarLoading()\n}\n\nexport function hideNavigationBarLoading() {\n return navigationBarRuntimeBridge.hideNavigationBarLoading()\n}\n\nexport function setBackgroundColor(options?: SetBackgroundColorOptions) {\n return setBackgroundColorBridge(options)\n}\n\nexport function setBackgroundTextStyle(options?: SetBackgroundTextStyleOptions) {\n return setBackgroundTextStyleBridge(options)\n}\n\nexport function canIUse(schema: string) {\n return canIUseBridge(resolveMiniProgramBridge(), schema)\n}\n\nconst cloudBridge: CloudBridge = createCloudBridge(\n (options, result) => callMiniProgramAsyncSuccess(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n result as MiniProgramBaseResult,\n ),\n (options, errMsg) => callMiniProgramAsyncFailure(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n errMsg,\n ),\n) as CloudBridge\n\nexport function createRewardedVideoAd(options?: AdBaseOptions): RewardedVideoAd {\n return createRewardedVideoAdBridge(options)\n}\n\nexport function createInterstitialAd(options?: AdBaseOptions): InterstitialAd {\n return createInterstitialAdBridge(options)\n}\n\nexport function getExtConfigSync() {\n return getExtConfigSyncBridge()\n}\n\nexport function getExtConfig(options?: GetExtConfigOptions) {\n return getExtConfigBridge(options)\n}\n\nexport function getUpdateManager(): UpdateManager {\n return getUpdateManagerBridge()\n}\n\nexport function getLogManager(options?: LogManagerOptions): LogManager {\n return getLogManagerBridge(options)\n}\n\nexport function reportAnalytics(eventName: string, data?: Record<string, unknown>) {\n reportAnalyticsBridge(eventName, data)\n}\n\nconst miniProgramBridge = (globalTarget[DEFAULT_MINI_PROGRAM_GLOBAL_KEY] as Record<string, unknown> | undefined) ?? {}\nObject.assign(miniProgramBridge, {\n navigateTo,\n navigateBack,\n redirectTo,\n switchTab,\n reLaunch,\n getLaunchOptionsSync,\n getEnterOptionsSync,\n ...runtimeDataApi,\n setNavigationBarTitle,\n setNavigationBarColor,\n setBackgroundColor,\n setBackgroundTextStyle,\n showNavigationBarLoading,\n hideNavigationBarLoading,\n ...uiMediaApi,\n ...deviceAuthSystemApi,\n ...eventBusApi,\n loadFontFace,\n getLocale,\n createAnimation,\n createRewardedVideoAd,\n createInterstitialAd,\n getExtConfigSync,\n getExtConfig,\n getUpdateManager,\n getLogManager,\n reportAnalytics,\n canIUse,\n cloud: cloudBridge,\n})\nconst miniProgramEnv = (miniProgramBridge.env as Record<string, unknown> | undefined) ?? {}\nif (typeof miniProgramEnv.USER_DATA_PATH !== 'string' || !miniProgramEnv.USER_DATA_PATH.trim()) {\n miniProgramEnv.USER_DATA_PATH = WEB_USER_DATA_PATH\n}\nminiProgramBridge.env = miniProgramEnv\nfor (const runtimeGlobalKey of MINI_PROGRAM_GLOBAL_KEYS) {\n globalTarget[runtimeGlobalKey] = miniProgramBridge\n}\nif (typeof globalTarget.getApp !== 'function') {\n globalTarget.getApp = getAppInstance\n}\nif (typeof globalTarget.getCurrentPages !== 'function') {\n globalTarget.getCurrentPages = getCurrentPagesInternal\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAiFA,MAAM,2BAA2B,gCAAgC;AACjE,MAAM,kCAAkC,sCAAsC;AAC9E,MAAM,eAAe;AAErB,SAAS,2BAA2B;CAClC,KAAK,MAAM,oBAAoB,0BAA0B;EACvD,MAAM,YAAY,aAAa;EAC/B,IAAI,aAAa,OAAO,cAAc,UACpC,OAAO;CAEX;AAEF;AAEA,MAAM,6BAA6B,uCAC3B,wBAAwB,GAC9B,kBACF;AAEA,SAAgB,sBAAsB,SAA4B;CAChE,OAAO,2BAA2B,sBAAsB,OAAO;AACjE;AAEA,SAAgB,sBAAsB,SAInC;CACD,OAAO,2BAA2B,sBAAsB,OAAO;AACjE;AAEA,SAAgB,2BAA2B;CACzC,OAAO,2BAA2B,yBAAyB;AAC7D;AAEA,SAAgB,2BAA2B;CACzC,OAAO,2BAA2B,yBAAyB;AAC7D;AAEA,SAAgB,mBAAmB,SAAqC;CACtE,OAAO,yBAAyB,OAAO;AACzC;AAEA,SAAgB,uBAAuB,SAAyC;CAC9E,OAAO,6BAA6B,OAAO;AAC7C;AAEA,SAAgB,QAAQ,QAAgB;CACtC,OAAO,cAAc,yBAAyB,GAAG,MAAM;AACzD;AAEA,MAAM,cAA2B,mBAC9B,SAAS,WAAW,4BACnB,SACA,MACF,IACC,SAAS,WAAW,4BACnB,SACA,MACF,CACF;AAEA,SAAgB,sBAAsB,SAA0C;CAC9E,OAAO,4BAA4B,OAAO;AAC5C;AAEA,SAAgB,qBAAqB,SAAyC;CAC5E,OAAO,2BAA2B,OAAO;AAC3C;AAEA,SAAgB,mBAAmB;CACjC,OAAO,uBAAuB;AAChC;AAEA,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,mBAAkC;CAChD,OAAO,uBAAuB;AAChC;AAEA,SAAgB,cAAc,SAAyC;CACrE,OAAO,oBAAoB,OAAO;AACpC;AAEA,SAAgB,gBAAgB,WAAmB,MAAgC;CACjF,sBAAsB,WAAW,IAAI;AACvC;AAEA,MAAM,oBAAqB,aAAa,oCAA4E,CAAC;AACrH,OAAO,OAAO,mBAAmB;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAAGA;CACH;CACA;CACA;CACA;CACA;CACA;CACA,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,OAAO;AACT,CAAC;AACD,MAAM,iBAAkB,kBAAkB,OAA+C,CAAC;AAC1F,IAAI,OAAO,eAAe,mBAAmB,YAAY,CAAC,eAAe,eAAe,KAAK,GAC3F,eAAe,iBAAiB;AAElC,kBAAkB,MAAM;AACxB,KAAK,MAAM,oBAAoB,0BAC7B,aAAa,oBAAoB;AAEnC,IAAI,OAAO,aAAa,WAAW,YACjC,aAAa,SAAS;AAExB,IAAI,OAAO,aAAa,oBAAoB,YAC1C,aAAa,kBAAkB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getRuntimeClipboard } from "../host/index.mjs";
|
|
1
2
|
import { WEAPP_VITE_WEB_SCAN_CODE_RESULT_KEY } from "@weapp-core/constants";
|
|
2
3
|
|
|
3
4
|
//#region src/runtime/polyfill/interaction.ts
|
|
@@ -9,9 +10,9 @@ function resolveScanCodeResult(prompt) {
|
|
|
9
10
|
return String(rawResult?.result ?? "");
|
|
10
11
|
}
|
|
11
12
|
async function writeClipboardData(data) {
|
|
12
|
-
const
|
|
13
|
-
if (
|
|
14
|
-
await
|
|
13
|
+
const clipboard = getRuntimeClipboard();
|
|
14
|
+
if (clipboard && typeof clipboard.writeText === "function") {
|
|
15
|
+
await clipboard.writeText(data);
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
18
|
if (typeof document === "undefined" || !document.body) throw new Error("Clipboard API is unavailable in current environment.");
|
|
@@ -28,9 +29,9 @@ async function writeClipboardData(data) {
|
|
|
28
29
|
if (!copied) throw new Error("document.execCommand(\"copy\") returned false.");
|
|
29
30
|
}
|
|
30
31
|
async function readClipboardData() {
|
|
31
|
-
const
|
|
32
|
-
if (!
|
|
33
|
-
return
|
|
32
|
+
const clipboard = getRuntimeClipboard();
|
|
33
|
+
if (!clipboard || typeof clipboard.readText !== "function") throw new Error("Clipboard API is unavailable in current environment.");
|
|
34
|
+
return clipboard.readText();
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.mjs","names":["runtimeGlobal"],"sources":["../../../src/runtime/polyfill/interaction.ts"],"sourcesContent":["import { WEAPP_VITE_WEB_SCAN_CODE_RESULT_KEY } from '@weapp-core/constants'\n\nexport function resolveScanCodeResult(prompt?: (message: string, defaultValue: string) => unknown) {\n const runtimeGlobal = globalThis as Record<string, unknown>\n let rawResult: unknown = runtimeGlobal[WEAPP_VITE_WEB_SCAN_CODE_RESULT_KEY]\n if (rawResult == null && typeof prompt === 'function') {\n rawResult = prompt('请输入二维码/条码内容', '')\n }\n if (rawResult == null) {\n return null\n }\n if (typeof rawResult === 'string') {\n return rawResult\n }\n return String((rawResult as { result?: unknown })?.result ?? '')\n}\n\nexport async function writeClipboardData(data: string) {\n const
|
|
1
|
+
{"version":3,"file":"interaction.mjs","names":["runtimeGlobal"],"sources":["../../../src/runtime/polyfill/interaction.ts"],"sourcesContent":["import { WEAPP_VITE_WEB_SCAN_CODE_RESULT_KEY } from '@weapp-core/constants'\nimport { getRuntimeClipboard } from '../host'\n\nexport function resolveScanCodeResult(prompt?: (message: string, defaultValue: string) => unknown) {\n const runtimeGlobal = globalThis as Record<string, unknown>\n let rawResult: unknown = runtimeGlobal[WEAPP_VITE_WEB_SCAN_CODE_RESULT_KEY]\n if (rawResult == null && typeof prompt === 'function') {\n rawResult = prompt('请输入二维码/条码内容', '')\n }\n if (rawResult == null) {\n return null\n }\n if (typeof rawResult === 'string') {\n return rawResult\n }\n return String((rawResult as { result?: unknown })?.result ?? '')\n}\n\nexport async function writeClipboardData(data: string) {\n const clipboard = getRuntimeClipboard()\n if (clipboard && typeof clipboard.writeText === 'function') {\n await clipboard.writeText(data)\n return\n }\n\n if (typeof document === 'undefined' || !document.body) {\n throw new Error('Clipboard API is unavailable in current environment.')\n }\n\n const execCommand = (document as Document & { execCommand?: (command: string) => boolean }).execCommand\n if (typeof execCommand !== 'function') {\n throw new TypeError('Clipboard API is unavailable in current environment.')\n }\n\n const textarea = document.createElement('textarea') as HTMLTextAreaElement\n textarea.value = data\n textarea.setAttribute('readonly', 'true')\n textarea.setAttribute('style', 'position: fixed; top: -9999px; left: -9999px; opacity: 0;')\n document.body.append(textarea)\n textarea.select?.()\n const copied = execCommand.call(document, 'copy')\n if (textarea.parentNode) {\n textarea.parentNode.removeChild(textarea)\n }\n if (!copied) {\n throw new Error('document.execCommand(\"copy\") returned false.')\n }\n}\n\nexport async function readClipboardData() {\n const clipboard = getRuntimeClipboard()\n if (!clipboard || typeof clipboard.readText !== 'function') {\n throw new Error('Clipboard API is unavailable in current environment.')\n }\n return clipboard.readText()\n}\n"],"mappings":";;;;AAGA,SAAgB,sBAAsB,QAA6D;CAEjG,IAAI,YAAqBA,WAAc;CACvC,IAAI,aAAa,QAAQ,OAAO,WAAW,YACzC,YAAY,OAAO,eAAe,EAAE;CAEtC,IAAI,aAAa,MACf,OAAO;CAET,IAAI,OAAO,cAAc,UACvB,OAAO;CAET,OAAO,OAAQ,WAAoC,UAAU,EAAE;AACjE;AAEA,eAAsB,mBAAmB,MAAc;CACrD,MAAM,YAAY,oBAAoB;CACtC,IAAI,aAAa,OAAO,UAAU,cAAc,YAAY;EAC1D,MAAM,UAAU,UAAU,IAAI;EAC9B;CACF;CAEA,IAAI,OAAO,aAAa,eAAe,CAAC,SAAS,MAC/C,MAAM,IAAI,MAAM,sDAAsD;CAGxE,MAAM,cAAe,SAAuE;CAC5F,IAAI,OAAO,gBAAgB,YACzB,MAAM,IAAI,UAAU,sDAAsD;CAG5E,MAAM,WAAW,SAAS,cAAc,UAAU;CAClD,SAAS,QAAQ;CACjB,SAAS,aAAa,YAAY,MAAM;CACxC,SAAS,aAAa,SAAS,2DAA2D;CAC1F,SAAS,KAAK,OAAO,QAAQ;CAC7B,SAAS,SAAS;CAClB,MAAM,SAAS,YAAY,KAAK,UAAU,MAAM;CAChD,IAAI,SAAS,YACX,SAAS,WAAW,YAAY,QAAQ;CAE1C,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,gDAA8C;AAElE;AAEA,eAAsB,oBAAoB;CACxC,MAAM,YAAY,oBAAoB;CACtC,IAAI,CAAC,aAAa,OAAO,UAAU,aAAa,YAC9C,MAAM,IAAI,MAAM,sDAAsD;CAExE,OAAO,UAAU,SAAS;AAC5B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { openRuntimeUrl } from "../host/index.mjs";
|
|
1
2
|
import { callMiniProgramAsyncFailure, callMiniProgramAsyncSuccess } from "./async.mjs";
|
|
2
3
|
import { getGlobalDialogHandlers } from "./ui.mjs";
|
|
3
4
|
import { readClipboardData, resolveScanCodeResult, writeClipboardData } from "./interaction.mjs";
|
|
@@ -5,8 +6,8 @@ import { readClipboardData, resolveScanCodeResult, writeClipboardData } from "./
|
|
|
5
6
|
//#region src/runtime/polyfill/interactionApi.ts
|
|
6
7
|
function openCustomerServiceChatBridge(options) {
|
|
7
8
|
const url = options?.url?.trim() ?? "";
|
|
8
|
-
if (url
|
|
9
|
-
|
|
9
|
+
if (url) try {
|
|
10
|
+
openRuntimeUrl(url, "_blank", "noopener,noreferrer");
|
|
10
11
|
} catch {}
|
|
11
12
|
return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: "openCustomerServiceChat:ok" }));
|
|
12
13
|
}
|
|
@@ -32,19 +33,22 @@ async function setClipboardDataBridge(options) {
|
|
|
32
33
|
try {
|
|
33
34
|
await writeClipboardData(data);
|
|
34
35
|
} catch (error) {
|
|
35
|
-
const
|
|
36
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
37
|
+
const failure = callMiniProgramAsyncFailure(options, `setClipboardData:fail ${message}`);
|
|
36
38
|
return Promise.reject(failure);
|
|
37
39
|
}
|
|
38
40
|
return callMiniProgramAsyncSuccess(options, { errMsg: "setClipboardData:ok" });
|
|
39
41
|
}
|
|
40
42
|
async function getClipboardDataBridge(options) {
|
|
41
43
|
try {
|
|
44
|
+
const data = await readClipboardData();
|
|
42
45
|
return callMiniProgramAsyncSuccess(options, {
|
|
43
46
|
errMsg: "getClipboardData:ok",
|
|
44
|
-
data
|
|
47
|
+
data
|
|
45
48
|
});
|
|
46
49
|
} catch (error) {
|
|
47
|
-
const
|
|
50
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
51
|
+
const failure = callMiniProgramAsyncFailure(options, `getClipboardData:fail ${message}`);
|
|
48
52
|
return Promise.reject(failure);
|
|
49
53
|
}
|
|
50
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactionApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/interactionApi.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n readClipboardData,\n resolveScanCodeResult,\n writeClipboardData,\n} from './interaction'\nimport { getGlobalDialogHandlers } from './ui'\n\nexport function openCustomerServiceChatBridge(options?: any) {\n const url = options?.url?.trim() ?? ''\n if (url
|
|
1
|
+
{"version":3,"file":"interactionApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/interactionApi.ts"],"sourcesContent":["import { openRuntimeUrl } from '../host'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n readClipboardData,\n resolveScanCodeResult,\n writeClipboardData,\n} from './interaction'\nimport { getGlobalDialogHandlers } from './ui'\n\nexport function openCustomerServiceChatBridge(options?: any) {\n const url = options?.url?.trim() ?? ''\n if (url) {\n try {\n openRuntimeUrl(url, '_blank', 'noopener,noreferrer')\n }\n catch {\n // ignore browser popup restrictions\n }\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'openCustomerServiceChat:ok' }))\n}\n\nexport function scanCodeBridge(options?: any) {\n const { prompt } = getGlobalDialogHandlers()\n const resultText = resolveScanCodeResult(prompt)\n if (resultText == null) {\n const failure = callMiniProgramAsyncFailure(options, 'scanCode:fail cancel')\n return Promise.reject(failure)\n }\n const result = callMiniProgramAsyncSuccess(options, {\n errMsg: 'scanCode:ok',\n result: resultText,\n scanType: 'QR_CODE',\n charSet: 'utf-8',\n path: resultText,\n rawData: resultText,\n })\n return Promise.resolve(result)\n}\n\nexport async function setClipboardDataBridge(options?: any) {\n const data = String(options?.data ?? '')\n try {\n await writeClipboardData(data)\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `setClipboardData:fail ${message}`)\n return Promise.reject(failure)\n }\n return callMiniProgramAsyncSuccess(options, { errMsg: 'setClipboardData:ok' })\n}\n\nexport async function getClipboardDataBridge(options?: any) {\n try {\n const data = await readClipboardData()\n return callMiniProgramAsyncSuccess(options, { errMsg: 'getClipboardData:ok', data })\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `getClipboardData:fail ${message}`)\n return Promise.reject(failure)\n }\n}\n"],"mappings":";;;;;;AAYA,SAAgB,8BAA8B,SAAe;CAC3D,MAAM,MAAM,SAAS,KAAK,KAAK,KAAK;CACpC,IAAI,KACF,IAAI;EACF,eAAe,KAAK,UAAU,qBAAqB;CACrD,QACM,CAEN;CAEF,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,6BAA6B,CAAC,CAAC;AACvG;AAEA,SAAgB,eAAe,SAAe;CAC5C,MAAM,EAAE,WAAW,wBAAwB;CAC3C,MAAM,aAAa,sBAAsB,MAAM;CAC/C,IAAI,cAAc,MAAM;EACtB,MAAM,UAAU,4BAA4B,SAAS,sBAAsB;EAC3E,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,MAAM,SAAS,4BAA4B,SAAS;EAClD,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,SAAS;EACT,MAAM;EACN,SAAS;CACX,CAAC;CACD,OAAO,QAAQ,QAAQ,MAAM;AAC/B;AAEA,eAAsB,uBAAuB,SAAe;CAC1D,MAAM,OAAO,OAAO,SAAS,QAAQ,EAAE;CACvC,IAAI;EACF,MAAM,mBAAmB,IAAI;CAC/B,SACO,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACrE,MAAM,UAAU,4BAA4B,SAAS,yBAAyB,SAAS;EACvF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,4BAA4B,SAAS,EAAE,QAAQ,sBAAsB,CAAC;AAC/E;AAEA,eAAsB,uBAAuB,SAAe;CAC1D,IAAI;EACF,MAAM,OAAO,MAAM,kBAAkB;EACrC,OAAO,4BAA4B,SAAS;GAAE,QAAQ;GAAuB;EAAK,CAAC;CACrF,SACO,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACrE,MAAM,UAAU,4BAA4B,SAAS,yBAAyB,SAAS;EACvF,OAAO,QAAQ,OAAO,OAAO;CAC/B;AACF"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { resolveSelectorTargets } from "./selectorQuery.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/runtime/polyfill/intersectionObserver.ts
|
|
4
|
+
function isObservableElement(value) {
|
|
5
|
+
return Boolean(value && typeof value === "object" && typeof value.getBoundingClientRect === "function");
|
|
6
|
+
}
|
|
7
|
+
function normalizeNumber(value, fallback = 0) {
|
|
8
|
+
return typeof value === "number" && Number.isFinite(value) ? value : fallback;
|
|
9
|
+
}
|
|
10
|
+
function normalizeMargins(margins = {}) {
|
|
11
|
+
return {
|
|
12
|
+
left: normalizeNumber(margins.left),
|
|
13
|
+
right: normalizeNumber(margins.right),
|
|
14
|
+
top: normalizeNumber(margins.top),
|
|
15
|
+
bottom: normalizeNumber(margins.bottom)
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function toRootMargin(margins) {
|
|
19
|
+
const normalized = normalizeMargins(margins);
|
|
20
|
+
return `${normalized.top}px ${normalized.right}px ${normalized.bottom}px ${normalized.left}px`;
|
|
21
|
+
}
|
|
22
|
+
function toRect(value) {
|
|
23
|
+
if (!value) return null;
|
|
24
|
+
return {
|
|
25
|
+
left: value.left,
|
|
26
|
+
right: value.right,
|
|
27
|
+
top: value.top,
|
|
28
|
+
bottom: value.bottom,
|
|
29
|
+
width: value.width,
|
|
30
|
+
height: value.height
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function mapIntersectionEntry(entry) {
|
|
34
|
+
const target = entry.target;
|
|
35
|
+
return {
|
|
36
|
+
id: target.id ?? target.getAttribute?.("id") ?? "",
|
|
37
|
+
dataset: { ...target.dataset ?? {} },
|
|
38
|
+
intersectionRatio: entry.intersectionRatio,
|
|
39
|
+
intersectionRect: toRect(entry.intersectionRect),
|
|
40
|
+
boundingClientRect: toRect(entry.boundingClientRect),
|
|
41
|
+
relativeRect: toRect(entry.rootBounds),
|
|
42
|
+
time: entry.time
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function createIntersectionObserverBridge(scope, options = {}) {
|
|
46
|
+
let relativeSelector;
|
|
47
|
+
let relativeMargins = {};
|
|
48
|
+
let viewportRelative = true;
|
|
49
|
+
const observers = /* @__PURE__ */ new Set();
|
|
50
|
+
const api = {
|
|
51
|
+
relativeTo(selector, margins = {}) {
|
|
52
|
+
relativeSelector = selector;
|
|
53
|
+
relativeMargins = margins;
|
|
54
|
+
viewportRelative = false;
|
|
55
|
+
return api;
|
|
56
|
+
},
|
|
57
|
+
relativeToViewport(margins = {}) {
|
|
58
|
+
relativeSelector = void 0;
|
|
59
|
+
relativeMargins = margins;
|
|
60
|
+
viewportRelative = true;
|
|
61
|
+
return api;
|
|
62
|
+
},
|
|
63
|
+
observe(selector, callback) {
|
|
64
|
+
const targets = resolveSelectorTargets(scope, selector, Boolean(options.observeAll)).filter(isObservableElement);
|
|
65
|
+
const relativeTarget = viewportRelative || !relativeSelector ? null : resolveSelectorTargets(scope, relativeSelector, false)[0];
|
|
66
|
+
const root = isObservableElement(relativeTarget) ? relativeTarget : null;
|
|
67
|
+
const thresholds = Array.isArray(options.thresholds) && options.thresholds.length > 0 ? options.thresholds.map((value) => normalizeNumber(value)).filter((value) => value >= 0 && value <= 1) : [normalizeNumber(options.initialRatio)];
|
|
68
|
+
if (typeof IntersectionObserver !== "function") {
|
|
69
|
+
queueMicrotask(() => {
|
|
70
|
+
for (const target of targets) {
|
|
71
|
+
const rect = target.getBoundingClientRect();
|
|
72
|
+
callback({
|
|
73
|
+
id: target.id,
|
|
74
|
+
dataset: { ...target.dataset ?? {} },
|
|
75
|
+
intersectionRatio: 1,
|
|
76
|
+
intersectionRect: toRect(rect),
|
|
77
|
+
boundingClientRect: toRect(rect),
|
|
78
|
+
relativeRect: null,
|
|
79
|
+
time: Date.now()
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
return api;
|
|
84
|
+
}
|
|
85
|
+
const observer = new IntersectionObserver((entries) => {
|
|
86
|
+
for (const entry of entries) callback(mapIntersectionEntry(entry));
|
|
87
|
+
}, {
|
|
88
|
+
root,
|
|
89
|
+
rootMargin: toRootMargin(relativeMargins),
|
|
90
|
+
threshold: thresholds.length > 0 ? thresholds : [0]
|
|
91
|
+
});
|
|
92
|
+
observers.add(observer);
|
|
93
|
+
for (const target of targets) observer.observe(target);
|
|
94
|
+
return api;
|
|
95
|
+
},
|
|
96
|
+
disconnect() {
|
|
97
|
+
for (const observer of observers) observer.disconnect();
|
|
98
|
+
observers.clear();
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
return api;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
//#endregion
|
|
105
|
+
export { createIntersectionObserverBridge };
|
|
106
|
+
//# sourceMappingURL=intersectionObserver.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intersectionObserver.mjs","names":[],"sources":["../../../src/runtime/polyfill/intersectionObserver.ts"],"sourcesContent":["import { resolveSelectorTargets } from './selectorQuery'\n\nexport interface IntersectionMargins {\n left?: number\n right?: number\n top?: number\n bottom?: number\n}\n\nexport interface MiniProgramIntersectionObserverOptions {\n initialRatio?: number\n observeAll?: boolean\n thresholds?: number[]\n}\n\ntype MiniProgramIntersectionCallback = (result: Record<string, any>) => void\n\nexport interface MiniProgramIntersectionObserver {\n relativeTo: (selector: string, margins?: IntersectionMargins) => MiniProgramIntersectionObserver\n relativeToViewport: (margins?: IntersectionMargins) => MiniProgramIntersectionObserver\n observe: (selector: string, callback: MiniProgramIntersectionCallback) => MiniProgramIntersectionObserver\n disconnect: () => void\n}\n\nfunction isObservableElement(value: unknown): value is Element {\n return Boolean(value && typeof value === 'object' && typeof (value as Element).getBoundingClientRect === 'function')\n}\n\nfunction normalizeNumber(value: unknown, fallback = 0) {\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback\n}\n\nfunction normalizeMargins(margins: IntersectionMargins = {}) {\n return {\n left: normalizeNumber(margins.left),\n right: normalizeNumber(margins.right),\n top: normalizeNumber(margins.top),\n bottom: normalizeNumber(margins.bottom),\n }\n}\n\nfunction toRootMargin(margins: IntersectionMargins) {\n const normalized = normalizeMargins(margins)\n return `${normalized.top}px ${normalized.right}px ${normalized.bottom}px ${normalized.left}px`\n}\n\nfunction toRect(value: DOMRectReadOnly | null) {\n if (!value) {\n return null\n }\n return {\n left: value.left,\n right: value.right,\n top: value.top,\n bottom: value.bottom,\n width: value.width,\n height: value.height,\n }\n}\n\nfunction mapIntersectionEntry(entry: IntersectionObserverEntry) {\n const target = entry.target as HTMLElement & { getAttribute?: (name: string) => string | null }\n return {\n id: target.id ?? target.getAttribute?.('id') ?? '',\n dataset: { ...(target.dataset ?? {}) },\n intersectionRatio: entry.intersectionRatio,\n intersectionRect: toRect(entry.intersectionRect),\n boundingClientRect: toRect(entry.boundingClientRect),\n relativeRect: toRect(entry.rootBounds),\n time: entry.time,\n }\n}\n\nexport function createIntersectionObserverBridge(\n scope?: unknown,\n options: MiniProgramIntersectionObserverOptions = {},\n): MiniProgramIntersectionObserver {\n let relativeSelector: string | undefined\n let relativeMargins: IntersectionMargins = {}\n let viewportRelative = true\n const observers = new Set<IntersectionObserver>()\n\n const api = {\n relativeTo(selector: string, margins: IntersectionMargins = {}) {\n relativeSelector = selector\n relativeMargins = margins\n viewportRelative = false\n return api\n },\n relativeToViewport(margins: IntersectionMargins = {}) {\n relativeSelector = undefined\n relativeMargins = margins\n viewportRelative = true\n return api\n },\n observe(selector: string, callback: MiniProgramIntersectionCallback) {\n const targets = resolveSelectorTargets(scope, selector, Boolean(options.observeAll))\n .filter(isObservableElement)\n const relativeTarget = viewportRelative || !relativeSelector\n ? null\n : resolveSelectorTargets(scope, relativeSelector, false)[0]\n const root = isObservableElement(relativeTarget) ? relativeTarget : null\n const thresholds = Array.isArray(options.thresholds) && options.thresholds.length > 0\n ? options.thresholds.map(value => normalizeNumber(value)).filter(value => value >= 0 && value <= 1)\n : [normalizeNumber(options.initialRatio)]\n\n if (typeof IntersectionObserver !== 'function') {\n queueMicrotask(() => {\n for (const target of targets) {\n const rect = target.getBoundingClientRect()\n callback({\n id: (target as HTMLElement).id,\n dataset: { ...((target as HTMLElement).dataset ?? {}) },\n intersectionRatio: 1,\n intersectionRect: toRect(rect),\n boundingClientRect: toRect(rect),\n relativeRect: null,\n time: Date.now(),\n })\n }\n })\n return api\n }\n\n const observer = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n callback(mapIntersectionEntry(entry))\n }\n }, {\n root,\n rootMargin: toRootMargin(relativeMargins),\n threshold: thresholds.length > 0 ? thresholds : [0],\n })\n observers.add(observer)\n for (const target of targets) {\n observer.observe(target)\n }\n return api\n },\n disconnect() {\n for (const observer of observers) {\n observer.disconnect()\n }\n observers.clear()\n },\n }\n\n return api\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/runtime/polyfill/locale.ts
|
|
2
|
+
function normalizeLocale(locale) {
|
|
3
|
+
const normalized = locale.trim().replace("_", "-").toLowerCase();
|
|
4
|
+
if (normalized === "zh-tw" || normalized === "zh-hk" || normalized === "zh-mo" || normalized.startsWith("zh-hant")) return "zh-Hant";
|
|
5
|
+
if (normalized.startsWith("zh")) return "zh-Hans";
|
|
6
|
+
return normalized.split("-")[0] || "en";
|
|
7
|
+
}
|
|
8
|
+
function getLocale() {
|
|
9
|
+
return normalizeLocale((typeof navigator === "undefined" ? void 0 : navigator)?.language ?? "en");
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { getLocale };
|
|
14
|
+
//# sourceMappingURL=locale.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.mjs","names":[],"sources":["../../../src/runtime/polyfill/locale.ts"],"sourcesContent":["function normalizeLocale(locale: string): string {\n const normalized = locale.trim().replace('_', '-').toLowerCase()\n if (normalized === 'zh-tw' || normalized === 'zh-hk' || normalized === 'zh-mo' || normalized.startsWith('zh-hant')) {\n return 'zh-Hant'\n }\n if (normalized.startsWith('zh')) {\n return 'zh-Hans'\n }\n return normalized.split('-')[0] || 'en'\n}\n\nexport function getLocale(): string {\n const runtimeNavigator = typeof navigator === 'undefined' ? undefined : navigator\n return normalizeLocale(runtimeNavigator?.language ?? 'en')\n}\n"],"mappings":";AAAA,SAAS,gBAAgB,QAAwB;CAC/C,MAAM,aAAa,OAAO,KAAK,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,YAAY;CAC/D,IAAI,eAAe,WAAW,eAAe,WAAW,eAAe,WAAW,WAAW,WAAW,SAAS,GAC/G,OAAO;CAET,IAAI,WAAW,WAAW,IAAI,GAC5B,OAAO;CAET,OAAO,WAAW,MAAM,GAAG,CAAC,CAAC,MAAM;AACrC;AAEA,SAAgB,YAAoB;CAElC,OAAO,iBADkB,OAAO,cAAc,cAAc,SAAY,UACjC,EAAE,YAAY,IAAI;AAC3D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { openRuntimeUrl } from "../host/index.mjs";
|
|
1
2
|
import { callMiniProgramAsyncFailure, callMiniProgramAsyncSuccess } from "./async.mjs";
|
|
2
3
|
import { normalizeFuzzyCoordinate, normalizeGeoNumber, parseChooseAddressPromptInput, parseChooseLocationPromptInput, readCurrentLocation, readPresetChooseAddress, readPresetChooseLocation, readPresetFuzzyLocation } from "./location.mjs";
|
|
3
4
|
import { openTargetInNewWindow } from "./mediaActions.mjs";
|
|
@@ -10,8 +11,8 @@ function makePhoneCallBridge(options) {
|
|
|
10
11
|
const failure = callMiniProgramAsyncFailure(options, "makePhoneCall:fail invalid phoneNumber");
|
|
11
12
|
return Promise.reject(failure);
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
try {
|
|
15
|
+
openRuntimeUrl(`tel:${encodeURIComponent(phoneNumber)}`, "_self");
|
|
15
16
|
} catch {}
|
|
16
17
|
return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: "makePhoneCall:ok" }));
|
|
17
18
|
}
|
|
@@ -78,7 +79,8 @@ function openLocationBridge(options) {
|
|
|
78
79
|
return Promise.reject(failure);
|
|
79
80
|
}
|
|
80
81
|
const query = `${latitude},${longitude}`;
|
|
81
|
-
|
|
82
|
+
const target = `https://maps.google.com/?q=${encodeURIComponent(query)}`;
|
|
83
|
+
openTargetInNewWindow(target);
|
|
82
84
|
return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: "openLocation:ok" }));
|
|
83
85
|
}
|
|
84
86
|
function getLocationBridge(options) {
|
|
@@ -87,11 +89,13 @@ function getLocationBridge(options) {
|
|
|
87
89
|
errMsg: "getLocation:ok",
|
|
88
90
|
...location
|
|
89
91
|
})).catch((error) => {
|
|
90
|
-
const
|
|
92
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
93
|
+
const failure = callMiniProgramAsyncFailure(options, `getLocation:fail ${message}`);
|
|
91
94
|
return Promise.reject(failure);
|
|
92
95
|
});
|
|
93
96
|
} catch (error) {
|
|
94
|
-
const
|
|
97
|
+
const message = error.message;
|
|
98
|
+
const failure = callMiniProgramAsyncFailure(options, `getLocation:fail ${message}`);
|
|
95
99
|
return Promise.reject(failure);
|
|
96
100
|
}
|
|
97
101
|
}
|
|
@@ -110,7 +114,8 @@ async function getFuzzyLocationBridge(options) {
|
|
|
110
114
|
accuracy: Math.max(1e3, normalizeGeoNumber(location.accuracy, 1e3))
|
|
111
115
|
});
|
|
112
116
|
} catch (error) {
|
|
113
|
-
const
|
|
117
|
+
const message = error.errMsg;
|
|
118
|
+
const failure = callMiniProgramAsyncFailure(options, `getFuzzyLocation:fail ${message}`);
|
|
114
119
|
return Promise.reject(failure);
|
|
115
120
|
}
|
|
116
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locationApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/locationApi.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n normalizeFuzzyCoordinate,\n normalizeGeoNumber,\n parseChooseAddressPromptInput,\n parseChooseLocationPromptInput,\n readCurrentLocation,\n readPresetChooseAddress,\n readPresetChooseLocation,\n readPresetFuzzyLocation,\n} from './location'\nimport { openTargetInNewWindow } from './mediaActions'\nimport { getGlobalDialogHandlers } from './ui'\n\nexport function makePhoneCallBridge(options?: any) {\n const phoneNumber = typeof options?.phoneNumber === 'string' ? options.phoneNumber.trim() : ''\n if (!phoneNumber) {\n const failure = callMiniProgramAsyncFailure(options, 'makePhoneCall:fail invalid phoneNumber')\n return Promise.reject(failure)\n }\n
|
|
1
|
+
{"version":3,"file":"locationApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/locationApi.ts"],"sourcesContent":["import { openRuntimeUrl } from '../host'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n normalizeFuzzyCoordinate,\n normalizeGeoNumber,\n parseChooseAddressPromptInput,\n parseChooseLocationPromptInput,\n readCurrentLocation,\n readPresetChooseAddress,\n readPresetChooseLocation,\n readPresetFuzzyLocation,\n} from './location'\nimport { openTargetInNewWindow } from './mediaActions'\nimport { getGlobalDialogHandlers } from './ui'\n\nexport function makePhoneCallBridge(options?: any) {\n const phoneNumber = typeof options?.phoneNumber === 'string' ? options.phoneNumber.trim() : ''\n if (!phoneNumber) {\n const failure = callMiniProgramAsyncFailure(options, 'makePhoneCall:fail invalid phoneNumber')\n return Promise.reject(failure)\n }\n try {\n openRuntimeUrl(`tel:${encodeURIComponent(phoneNumber)}`, '_self')\n }\n catch {\n // ignore browser restrictions and keep API-level success semantics\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'makePhoneCall:ok' }))\n}\n\nexport function chooseAddressBridge(options?: any) {\n const preset = readPresetChooseAddress()\n if (preset) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'chooseAddress:ok',\n ...preset,\n }))\n }\n const { prompt } = getGlobalDialogHandlers()\n if (typeof prompt === 'function') {\n const input = prompt('请输入地址(格式:省,市,区,详细地址,姓名,电话)', '')\n if (input == null) {\n const failure = callMiniProgramAsyncFailure(options, 'chooseAddress:fail cancel')\n return Promise.reject(failure)\n }\n const parsed = parseChooseAddressPromptInput(input)\n if (!parsed) {\n const failure = callMiniProgramAsyncFailure(options, 'chooseAddress:fail invalid input')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'chooseAddress:ok',\n ...parsed,\n }))\n }\n const failure = callMiniProgramAsyncFailure(options, 'chooseAddress:fail address picker is unavailable')\n return Promise.reject(failure)\n}\n\nexport function chooseLocationBridge(options?: any) {\n const preset = readPresetChooseLocation()\n if (preset) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'chooseLocation:ok',\n ...preset,\n }))\n }\n const { prompt } = getGlobalDialogHandlers()\n if (typeof prompt === 'function') {\n const input = prompt('请输入坐标(格式:latitude,longitude)', '')\n if (input == null) {\n const failure = callMiniProgramAsyncFailure(options, 'chooseLocation:fail cancel')\n return Promise.reject(failure)\n }\n const parsed = parseChooseLocationPromptInput(input)\n if (!parsed) {\n const failure = callMiniProgramAsyncFailure(options, 'chooseLocation:fail invalid latitude/longitude')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'chooseLocation:ok',\n name: '',\n address: '',\n latitude: parsed.latitude,\n longitude: parsed.longitude,\n }))\n }\n const failure = callMiniProgramAsyncFailure(options, 'chooseLocation:fail location picker is unavailable')\n return Promise.reject(failure)\n}\n\nexport function openLocationBridge(options?: any) {\n const latitude = options?.latitude\n const longitude = options?.longitude\n if (typeof latitude !== 'number' || Number.isNaN(latitude) || typeof longitude !== 'number' || Number.isNaN(longitude)) {\n const failure = callMiniProgramAsyncFailure(options, 'openLocation:fail invalid latitude/longitude')\n return Promise.reject(failure)\n }\n const query = `${latitude},${longitude}`\n const target = `https://maps.google.com/?q=${encodeURIComponent(query)}`\n openTargetInNewWindow(target)\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'openLocation:ok' }))\n}\n\nexport function getLocationBridge(options?: any) {\n try {\n return readCurrentLocation(options)\n .then(location => callMiniProgramAsyncSuccess(options, {\n errMsg: 'getLocation:ok',\n ...location,\n }))\n .catch((error) => {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `getLocation:fail ${message}`)\n return Promise.reject(failure)\n })\n }\n catch (error) {\n const message = (error as Error).message\n const failure = callMiniProgramAsyncFailure(options, `getLocation:fail ${message}`)\n return Promise.reject(failure)\n }\n}\n\nexport async function getFuzzyLocationBridge(options?: any) {\n const preset = readPresetFuzzyLocation()\n if (preset) {\n return callMiniProgramAsyncSuccess(options, {\n errMsg: 'getFuzzyLocation:ok',\n ...preset,\n })\n }\n try {\n const location = await getLocationBridge()\n return callMiniProgramAsyncSuccess(options, {\n errMsg: 'getFuzzyLocation:ok',\n latitude: normalizeFuzzyCoordinate(location.latitude),\n longitude: normalizeFuzzyCoordinate(location.longitude),\n accuracy: Math.max(1000, normalizeGeoNumber(location.accuracy, 1000)),\n })\n }\n catch (error) {\n const message = (error as { errMsg: string }).errMsg\n const failure = callMiniProgramAsyncFailure(options, `getFuzzyLocation:fail ${message}`)\n return Promise.reject(failure)\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { openRuntimeUrl } from "../host/index.mjs";
|
|
1
2
|
import { WEAPP_VITE_WEB_OPEN_VIDEO_EDITOR_KEY } from "@weapp-core/constants";
|
|
2
3
|
|
|
3
4
|
//#region src/runtime/polyfill/mediaActions.ts
|
|
4
5
|
function openTargetInNewWindow(target) {
|
|
5
|
-
if (typeof window === "undefined" || typeof window.open !== "function") return;
|
|
6
6
|
try {
|
|
7
|
-
|
|
7
|
+
openRuntimeUrl(target, "_blank", "noopener,noreferrer");
|
|
8
8
|
} catch {}
|
|
9
9
|
}
|
|
10
10
|
function normalizePreviewMediaSources(sources) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaActions.mjs","names":["runtimeGlobal"],"sources":["../../../src/runtime/polyfill/mediaActions.ts"],"sourcesContent":["import { WEAPP_VITE_WEB_OPEN_VIDEO_EDITOR_KEY } from '@weapp-core/constants'\n\ninterface PreviewMediaSourceRecord {\n url: string\n type: 'image' | 'video'\n poster: string\n}\n\nexport function openTargetInNewWindow(target: string) {\n
|
|
1
|
+
{"version":3,"file":"mediaActions.mjs","names":["runtimeGlobal"],"sources":["../../../src/runtime/polyfill/mediaActions.ts"],"sourcesContent":["import { WEAPP_VITE_WEB_OPEN_VIDEO_EDITOR_KEY } from '@weapp-core/constants'\nimport { openRuntimeUrl } from '../host'\n\ninterface PreviewMediaSourceRecord {\n url: string\n type: 'image' | 'video'\n poster: string\n}\n\nexport function openTargetInNewWindow(target: string) {\n try {\n openRuntimeUrl(target, '_blank', 'noopener,noreferrer')\n }\n catch {\n // ignore browser popup restrictions and keep API-level success semantics\n }\n}\n\nexport function normalizePreviewMediaSources(sources: unknown): PreviewMediaSourceRecord[] {\n if (!Array.isArray(sources)) {\n return []\n }\n return sources\n .map((source) => {\n if (!source || typeof source !== 'object') {\n return null\n }\n const sourceRecord = source as Record<string, unknown>\n const url = typeof sourceRecord.url === 'string' ? sourceRecord.url.trim() : ''\n if (!url) {\n return null\n }\n return {\n url,\n type: sourceRecord.type === 'video' ? 'video' : 'image',\n poster: typeof sourceRecord.poster === 'string' ? sourceRecord.poster : '',\n }\n })\n .filter((item): item is PreviewMediaSourceRecord => Boolean(item))\n}\n\nexport function readOpenVideoEditorPreset(src: string) {\n const runtimeGlobal = globalThis as Record<string, unknown>\n const preset = runtimeGlobal[WEAPP_VITE_WEB_OPEN_VIDEO_EDITOR_KEY]\n if (typeof preset === 'function') {\n const value = (preset as (value: string) => unknown)(src)\n return typeof value === 'string' && value.trim() ? value.trim() : ''\n }\n if (typeof preset === 'string' && preset.trim()) {\n return preset.trim()\n }\n if (preset && typeof preset === 'object') {\n const value = (preset as Record<string, unknown>)[src]\n return typeof value === 'string' && value.trim() ? value.trim() : ''\n }\n return ''\n}\n\nexport function triggerDownload(filePath: string, fileName = '') {\n if (typeof document === 'undefined' || !document.body) {\n return\n }\n try {\n const link = document.createElement('a')\n link.setAttribute('href', filePath)\n link.setAttribute('download', fileName)\n link.setAttribute('style', 'display:none')\n document.body.append(link)\n link.click?.()\n if (link.parentNode) {\n link.parentNode.removeChild(link)\n }\n }\n catch {\n // keep API-level success semantics for browser restrictions\n }\n}\n"],"mappings":";;;;AASA,SAAgB,sBAAsB,QAAgB;CACpD,IAAI;EACF,eAAe,QAAQ,UAAU,qBAAqB;CACxD,QACM,CAEN;AACF;AAEA,SAAgB,6BAA6B,SAA8C;CACzF,IAAI,CAAC,MAAM,QAAQ,OAAO,GACxB,OAAO,CAAC;CAEV,OAAO,QACJ,KAAK,WAAW;EACf,IAAI,CAAC,UAAU,OAAO,WAAW,UAC/B,OAAO;EAET,MAAM,eAAe;EACrB,MAAM,MAAM,OAAO,aAAa,QAAQ,WAAW,aAAa,IAAI,KAAK,IAAI;EAC7E,IAAI,CAAC,KACH,OAAO;EAET,OAAO;GACL;GACA,MAAM,aAAa,SAAS,UAAU,UAAU;GAChD,QAAQ,OAAO,aAAa,WAAW,WAAW,aAAa,SAAS;EAC1E;CACF,CAAC,CAAC,CACD,QAAQ,SAA2C,QAAQ,IAAI,CAAC;AACrE;AAEA,SAAgB,0BAA0B,KAAa;CAErD,MAAM,SAASA,WAAc;CAC7B,IAAI,OAAO,WAAW,YAAY;EAChC,MAAM,QAAS,OAAsC,GAAG;EACxD,OAAO,OAAO,UAAU,YAAY,MAAM,KAAK,IAAI,MAAM,KAAK,IAAI;CACpE;CACA,IAAI,OAAO,WAAW,YAAY,OAAO,KAAK,GAC5C,OAAO,OAAO,KAAK;CAErB,IAAI,UAAU,OAAO,WAAW,UAAU;EACxC,MAAM,QAAS,OAAmC;EAClD,OAAO,OAAO,UAAU,YAAY,MAAM,KAAK,IAAI,MAAM,KAAK,IAAI;CACpE;CACA,OAAO;AACT;AAEA,SAAgB,gBAAgB,UAAkB,WAAW,IAAI;CAC/D,IAAI,OAAO,aAAa,eAAe,CAAC,SAAS,MAC/C;CAEF,IAAI;EACF,MAAM,OAAO,SAAS,cAAc,GAAG;EACvC,KAAK,aAAa,QAAQ,QAAQ;EAClC,KAAK,aAAa,YAAY,QAAQ;EACtC,KAAK,aAAa,SAAS,cAAc;EACzC,SAAS,KAAK,OAAO,IAAI;EACzB,KAAK,QAAQ;EACb,IAAI,KAAK,YACP,KAAK,WAAW,YAAY,IAAI;CAEpC,QACM,CAEN;AACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { callMiniProgramAsyncFailure, callMiniProgramAsyncSuccess } from "../async.mjs";
|
|
2
|
-
import { openTargetInNewWindow, triggerDownload } from "../mediaActions.mjs";
|
|
3
2
|
import { normalizeFilePath, resolveOpenDocumentUrl, resolveSaveFilePath, saveMemoryFile } from "../files.mjs";
|
|
3
|
+
import { openTargetInNewWindow, triggerDownload } from "../mediaActions.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/runtime/polyfill/mediaApi/file.ts
|
|
6
6
|
function saveImageToPhotosAlbumBridge(options) {
|
|
@@ -40,7 +40,8 @@ function saveFileToDiskBridge(options) {
|
|
|
40
40
|
const failure = callMiniProgramAsyncFailure(options, "saveFileToDisk:fail invalid filePath");
|
|
41
41
|
return Promise.reject(failure);
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
const fileName = typeof options?.fileName === "string" ? options.fileName.trim() : "";
|
|
44
|
+
triggerDownload(filePath, fileName);
|
|
44
45
|
return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: "saveFileToDisk:ok" }));
|
|
45
46
|
}
|
|
46
47
|
function openDocumentBridge(options) {
|