@tarojs/taro-h5 4.0.1 → 4.0.3-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/api/base/index.js +1 -1
  2. package/dist/api/base/index.js.map +1 -1
  3. package/dist/api/base/system.js +2 -2
  4. package/dist/api/base/system.js.map +1 -1
  5. package/dist/api/base/weapp/app-event.js +2 -2
  6. package/dist/api/base/weapp/app-event.js.map +1 -1
  7. package/dist/api/canvas/CanvasContext.d.ts +1 -1
  8. package/dist/api/canvas/CanvasContext.js.map +1 -1
  9. package/dist/api/canvas/canvasGetImageData.js.map +1 -1
  10. package/dist/api/canvas/canvasPutImageData.js.map +1 -1
  11. package/dist/api/canvas/canvasToTempFilePath.js.map +1 -1
  12. package/dist/api/device/accelerometer.js.map +1 -1
  13. package/dist/api/device/battery.js +1 -1
  14. package/dist/api/device/battery.js.map +1 -1
  15. package/dist/api/device/calendar.js.map +1 -1
  16. package/dist/api/device/clipboard.js +2 -2
  17. package/dist/api/device/clipboard.js.map +1 -1
  18. package/dist/api/device/compass.js.map +1 -1
  19. package/dist/api/device/motion.js.map +1 -1
  20. package/dist/api/device/network.js.map +1 -1
  21. package/dist/api/device/phone.js.map +1 -1
  22. package/dist/api/device/sms.js.map +1 -1
  23. package/dist/api/device/vibrate.js.map +1 -1
  24. package/dist/api/location/chooseLocation.js +2 -2
  25. package/dist/api/location/chooseLocation.js.map +1 -1
  26. package/dist/api/location/getLocation.js +1 -1
  27. package/dist/api/location/getLocation.js.map +1 -1
  28. package/dist/api/location/locationChange.js.map +1 -1
  29. package/dist/api/location/style.scss.js +1 -1
  30. package/dist/api/media/audio/InnerAudioContext.js.map +1 -1
  31. package/dist/api/media/background-audio/BackgroundAudioManager.d.ts +1 -1
  32. package/dist/api/media/background-audio/BackgroundAudioManager.js.map +1 -1
  33. package/dist/api/media/image/chooseImage.js.map +1 -1
  34. package/dist/api/media/image/getImageInfo.js.map +1 -1
  35. package/dist/api/media/image/previewImage.js.map +1 -1
  36. package/dist/api/media/image/saveImageToPhotosAlbum.js.map +1 -1
  37. package/dist/api/media/video/chooseMedia.js +3 -3
  38. package/dist/api/media/video/chooseMedia.js.map +1 -1
  39. package/dist/api/media/video/chooseVideo.js.map +1 -1
  40. package/dist/api/media/video/getVideoInfo.js.map +1 -1
  41. package/dist/api/media/video/saveVideoToPhotosAlbum.js.map +1 -1
  42. package/dist/api/network/request/index.js.map +1 -1
  43. package/dist/api/network/upload.js.map +1 -1
  44. package/dist/api/network/utils.js +4 -4
  45. package/dist/api/network/utils.js.map +1 -1
  46. package/dist/api/network/websocket/index.js.map +1 -1
  47. package/dist/api/network/websocket/socketTask.js.map +1 -1
  48. package/dist/api/storage/index.js.map +1 -1
  49. package/dist/api/taro.js +1 -0
  50. package/dist/api/taro.js.map +1 -1
  51. package/dist/api/ui/animation/index.js.map +1 -1
  52. package/dist/api/ui/fonts.js.map +1 -1
  53. package/dist/api/ui/interaction/actionSheet.js.map +1 -1
  54. package/dist/api/ui/interaction/index.js +2 -2
  55. package/dist/api/ui/interaction/index.js.map +1 -1
  56. package/dist/api/ui/interaction/modal.js.map +1 -1
  57. package/dist/api/ui/interaction/toast.js.map +1 -1
  58. package/dist/api/ui/navigation-bar/index.js.map +1 -1
  59. package/dist/api/ui/scroll/index.js.map +1 -1
  60. package/dist/api/ui/tab-bar.js.map +1 -1
  61. package/dist/api/ui/window.js.map +1 -1
  62. package/dist/api/wxml/IntersectionObserver.js.map +1 -1
  63. package/dist/api/wxml/MediaQueryObserver.js.map +1 -1
  64. package/dist/api/wxml/selectorQuery.js.map +1 -1
  65. package/dist/index.cjs.d.ts +1 -1
  66. package/dist/index.cjs.js +17 -16
  67. package/dist/index.cjs.js.map +1 -1
  68. package/dist/index.esm.d.ts +1 -1
  69. package/dist/index.esm.js +20 -19
  70. package/dist/index.esm.js.map +1 -1
  71. package/dist/utils/animation.js.map +1 -1
  72. package/dist/utils/handler.js.map +1 -1
  73. package/dist/utils/index.js.map +1 -1
  74. package/package.json +19 -28
  75. /package/dist/node_modules/.pnpm/{registry.npmjs.org_style-inject@0.3.0 → style-inject@0.3.0}/node_modules/style-inject/dist/style-inject.es.js +0 -0
  76. /package/dist/node_modules/.pnpm/{registry.npmjs.org_style-inject@0.3.0 → style-inject@0.3.0}/node_modules/style-inject/dist/style-inject.es.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/utils/handler.ts","../src/utils/animation.ts","../src/utils/helper.ts","../src/utils/valid.ts","../src/utils/index.ts","../src/api/ad/index.ts","../src/api/ai/facial.ts","../src/api/ai/inference.ts","../src/api/ai/visual.ts","../src/api/alipay/index.ts","../src/api/base/crypto.ts","../src/api/base/debug.ts","../src/api/base/performance.ts","../src/api/base/system.ts","../src/api/base/update.ts","../src/api/base/weapp/app-event.ts","../src/api/base/weapp/life-cycle.ts","../src/api/base/index.ts","../src/api/canvas/CanvasContext.ts","../src/api/canvas/createCanvasContext.ts","../src/api/canvas/canvasToTempFilePath.ts","../src/api/canvas/canvasPutImageData.ts","../src/api/canvas/canvasGetImageData.ts","../src/api/canvas/index.ts","../src/api/cloud/index.ts","../src/api/data-analysis/index.ts","../src/api/device/accelerometer.ts","../src/api/device/accessibility.ts","../src/api/device/battery.ts","../src/api/device/bluetooth.ts","../src/api/device/bluetooth-ble.ts","../src/api/device/bluetooth-peripheral.ts","../src/api/device/calendar.ts","../src/api/storage/background-fetch.ts","../src/api/storage/cache-manager.ts","../src/api/storage/index.ts","../src/api/ui/interaction/actionSheet.ts","../src/api/ui/interaction/modal.ts","../src/api/ui/interaction/toast.ts","../src/api/ui/interaction/index.ts","../src/api/device/clipboard.ts","../src/api/device/compass.ts","../src/api/device/contact.ts","../src/api/device/crypto.ts","../src/api/device/gyroscope.ts","../src/api/device/iBeacon.ts","../src/api/device/keyboard.ts","../src/api/device/memory.ts","../src/api/device/motion.ts","../src/api/device/network.ts","../src/api/device/nfc.ts","../src/api/device/phone.ts","../src/api/device/scan.ts","../src/api/device/screen.ts","../src/api/device/sms.ts","../src/api/device/vibrate.ts","../src/api/device/wifi.ts","../src/api/ext/index.ts","../src/api/files/index.ts","../src/api/framework/index.ts","../src/api/location/utils.ts","../src/api/location/getLocation.ts","../src/api/location/chooseLocation.ts","../src/api/location/locationChange.ts","../src/api/location/index.ts","../src/api/media/audio/InnerAudioContext.ts","../src/api/media/audio/index.ts","../src/api/media/background-audio/BackgroundAudioManager.ts","../src/api/media/background-audio/index.ts","../src/api/media/camera.ts","../src/api/media/image/saveImageToPhotosAlbum.ts","../src/api/media/image/getImageInfo.ts","../src/api/media/image/previewImage.ts","../src/api/ui/animation/index.ts","../src/api/ui/background.ts","../src/api/ui/custom-component.ts","../src/api/ui/fonts.ts","../src/api/ui/menu.ts","../src/api/ui/navigation-bar/index.ts","../src/api/ui/pull-down-refresh.ts","../src/api/ui/scroll/index.ts","../src/api/ui/sticky.ts","../src/api/ui/tab-bar.ts","../src/api/ui/window.ts","../src/api/media/video/chooseMedia.ts","../src/api/media/image/chooseImage.ts","../src/api/media/image/index.ts","../src/api/media/live.ts","../src/api/media/map.ts","../src/api/media/media-recorder.ts","../src/api/media/recorder.ts","../src/api/media/video/saveVideoToPhotosAlbum.ts","../src/api/media/video/getVideoInfo.ts","../src/api/media/video/chooseVideo.ts","../src/api/media/video/index.ts","../src/api/media/video-decoder.ts","../src/api/media/video-processing.ts","../src/api/media/voip.ts","../src/api/navigate/index.ts","../src/api/network/utils.ts","../src/api/network/download.ts","../src/api/network/mdns.ts","../src/api/network/request/index.ts","../src/api/network/tcp.ts","../src/api/network/udp.ts","../src/api/network/upload.ts","../src/api/network/websocket/socketTask.ts","../src/api/network/websocket/index.ts","../src/api/open-api/account.ts","../src/api/open-api/address.ts","../src/api/open-api/authorize.ts","../src/api/open-api/card.ts","../src/api/open-api/channels-live.ts","../src/api/open-api/customer-service.ts","../src/api/open-api/device-voip.ts","../src/api/open-api/facial.ts","../src/api/open-api/favorites.ts","../src/api/open-api/group.ts","../src/api/open-api/invoice.ts","../src/api/open-api/license-plate.ts","../src/api/open-api/login.ts","../src/api/open-api/my-miniprogram.ts","../src/api/open-api/privacy.ts","../src/api/open-api/red-package.ts","../src/api/open-api/settings.ts","../src/api/open-api/soter.ts","../src/api/open-api/subscribe-message.ts","../src/api/open-api/user-info.ts","../src/api/open-api/werun.ts","../src/api/payment/index.ts","../src/api/qq/index.ts","../src/api/route/index.ts","../src/api/share/index.ts","../src/api/swan/index.ts","../src/api/worker/index.ts","../src/api/wxml/IntersectionObserver.ts","../src/api/wxml/MediaQueryObserver.ts","../src/api/wxml/nodesRef.ts","../src/api/wxml/selectorQuery.ts","../src/api/wxml/index.ts","../src/api/taro.ts"],"sourcesContent":["import { isFunction } from '@tarojs/shared'\n\ntype TCallback<T = Partial<TaroGeneral.CallbackResult>> = (res: T) => Promise<void> | void\ninterface IMethodParam<T = Partial<TaroGeneral.CallbackResult>> {\n name: string\n success?: TCallback<T & TaroGeneral.CallbackResult>\n fail?: TCallback\n complete?: TCallback\n}\ninterface IMockPromise {\n resolve?: typeof Promise.resolve | TFunc\n reject?: typeof Promise.reject | TFunc\n}\n\nexport class MethodHandler<T = Partial<TaroGeneral.CallbackResult>> {\n methodName: string\n\n protected __success?: TCallback<T>\n protected __fail?: TCallback\n protected __complete?: TCallback\n\n protected isHandlerError = false\n\n constructor ({ name, success, fail, complete }: IMethodParam<T>) {\n this.methodName = name\n this.__success = success\n this.__fail = fail\n this.__complete = complete\n\n this.isHandlerError = isFunction(this.__complete) || isFunction(this.__fail)\n }\n\n success<U = Record<string, unknown>> (res: Partial<T> & Partial<TaroGeneral.CallbackResult> = {}, promise: IMockPromise = {}): Promise<T & U & TaroGeneral.CallbackResult> {\n if (!res.errMsg) {\n res.errMsg = `${this.methodName}:ok`\n }\n isFunction(this.__success) && this.__success(res as T)\n isFunction(this.__complete) && this.__complete(res)\n\n const { resolve = Promise.resolve.bind(Promise) } = promise\n return resolve(res as Required<T & U & TaroGeneral.CallbackResult>)\n }\n\n fail<U = Record<string, unknown>> (res: Partial<T> & Partial<TaroGeneral.CallbackResult> = {}, promise: IMockPromise = {}): Promise<T & U & TaroGeneral.CallbackResult> {\n if (!res.errMsg) {\n res.errMsg = `${this.methodName}:fail`\n } else {\n res.errMsg = `${this.methodName}:fail ${res.errMsg}`\n }\n isFunction(this.__fail) && this.__fail(res)\n isFunction(this.__complete) && this.__complete(res)\n\n const {\n resolve = Promise.resolve.bind(Promise),\n reject = Promise.reject.bind(Promise)\n } = promise\n return this.isHandlerError\n ? resolve(res as Required<T & U & TaroGeneral.CallbackResult>)\n : reject(res)\n }\n}\n\ntype TCallbackManagerFunc<T extends unknown[] = unknown[]> = (...arr: T) => void\ninterface ICallbackManagerOption<T extends unknown[] = unknown[]> {\n callback?: TCallbackManagerFunc<T>\n ctx?: any\n [key: string]: unknown\n}\ntype TCallbackManagerUnit<T extends unknown[] = unknown[]> = (TCallbackManagerFunc<T> | ICallbackManagerOption<T>)\n\nexport class CallbackManager<T extends unknown[] = unknown[]> {\n callbacks: TCallbackManagerUnit<T>[] = []\n\n /** 添加回调 */\n add = (opt?: TCallbackManagerUnit<T>) => {\n if (opt) this.callbacks.push(opt)\n }\n\n /** 移除回调 */\n remove = (opt?: TCallbackManagerUnit<T>) => {\n if (opt) {\n let pos = -1\n this.callbacks.forEach((callback, k) => {\n if (callback === opt) {\n pos = k\n }\n })\n if (pos > -1) {\n this.callbacks.splice(pos, 1)\n }\n } else {\n // Note: 参数为空,则取消所有的事件监听\n this.callbacks = []\n }\n }\n\n /** 获取回调函数数量 */\n count = () => {\n return this.callbacks.length\n }\n\n /** 触发回调 */\n trigger = (...args: T) => {\n this.callbacks.forEach(opt => {\n if (isFunction(opt)) {\n opt(...args)\n } else {\n const { callback, ctx } = opt\n isFunction(callback) && callback.call(ctx, ...args)\n }\n })\n }\n\n /** 清空所有回调 */\n clear = () => {\n this.callbacks = []\n }\n}\n","/**\n * ease-in-out的函数\n * @param t 0-1的数字\n */\nexport const easeInOut = (t: number) => (t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1)\n\nexport const getTimingFunc = (easeFunc, frameCnt) => {\n return x => {\n if (frameCnt <= 1) {\n return easeFunc(1)\n }\n const t = x / (frameCnt - 1)\n return easeFunc(t)\n }\n}\n","export function createDownload (url = '', download = '') {\n const link = document.createElement('a')\n link.style.display = 'none'\n link.href = url\n link.download = download\n\n // Note: 需要注意,该方案不能监听用户取消或禁止下载等操作,亦不能获取下载成功或失败状态\n link.click()\n}\n","const VALID_COLOR_REG = /^#[0-9a-fA-F]{6}$/\nexport const isValidColor = (color: string) => {\n return VALID_COLOR_REG.test(color)\n}\n","/* eslint-disable prefer-promise-reject-errors */\nimport Taro from '@tarojs/api'\nimport { Current, getCurrentPage, getHomePage, hooks } from '@tarojs/runtime'\nimport { isFunction } from '@tarojs/shared'\n\nimport { MethodHandler } from './handler'\n\nimport type { TaroElement } from '@tarojs/runtime'\n\nexport function shouldBeObject (target: unknown) {\n if (target && typeof target === 'object') return { flag: true }\n return {\n flag: false,\n msg: getParameterError({\n correct: 'Object',\n wrong: target\n })\n }\n}\n\nexport function findDOM (inst?): TaroElement | HTMLElement | undefined {\n if (inst && hooks.isExist('getDOMNode')) {\n return hooks.call('getDOMNode', inst)\n }\n\n const page = Current.page\n const path = page?.path\n const msg = '没有找到已经加载了的页面,请在页面加载完成后使用此 API。'\n if (path == null) {\n throw new Error(msg)\n }\n\n const el = document.getElementById(path)\n if (el == null) {\n throw new Error('在已加载页面中没有找到对应的容器元素。')\n }\n\n return el\n}\n\ninterface IParameterErrorParam {\n name?: string\n para?: string\n correct?: string\n wrong?: unknown\n level?: 'warn' | 'error' | 'log' | 'info' | 'debug'\n}\nexport function getParameterError ({ name = '', para, correct, wrong, level = 'error' }: IParameterErrorParam) {\n const parameter = para ? `parameter.${para}` : 'parameter'\n const errorType = upperCaseFirstLetter(wrong === null ? 'Null' : typeof wrong)\n return `${name ? `${name}:fail ` : ''}parameter ${level}: ${parameter} should be ${correct} instead of ${errorType}`\n}\n\nexport function upperCaseFirstLetter (string) {\n if (typeof string !== 'string') return string\n string = string.replace(/^./, match => match.toUpperCase())\n return string\n}\n\nexport function inlineStyle (style) {\n let res = ''\n for (const attr in style) res += `${attr}: ${style[attr]};`\n if (res.indexOf('display: flex;') >= 0) res += 'display: -webkit-box;display: -webkit-flex;'\n res = res.replace(/transform:(.+?);/g, (s, $1) => `${s}-webkit-transform:${$1};`)\n res = res.replace(/flex-direction:(.+?);/g, (s, $1) => `${s}-webkit-flex-direction:${$1};`)\n return res\n}\n\nexport function setTransform (el, val) {\n el.style.webkitTransform = val\n el.style.transform = val\n}\n\nexport function serializeParams (params) {\n if (!params) {\n return ''\n }\n return Object.keys(params)\n .map(key => (\n `${encodeURIComponent(key)}=${typeof (params[key]) === 'object'\n ? encodeURIComponent(JSON.stringify(params[key]))\n : encodeURIComponent(params[key])}`))\n .join('&')\n}\n\nexport function temporarilyNotSupport (name = '') {\n return (option = {}, ...args) => {\n const { success, fail, complete } = option as any\n const handle = new MethodHandler({ name, success, fail, complete })\n const errMsg = '暂时不支持 API'\n Taro.eventCenter.trigger('__taroNotSupport', {\n name,\n args: [option, ...args],\n type: 'method',\n category: 'temporarily',\n })\n if (process.env.NODE_ENV === 'production') {\n console.warn(errMsg)\n return handle.success({ errMsg })\n } else {\n return handle.fail({ errMsg })\n }\n }\n}\n\nexport function weixinCorpSupport (name: string) {\n return (option = {}, ...args) => {\n const { success, fail, complete } = option as any\n const handle = new MethodHandler({ name, success, fail, complete })\n const errMsg = 'h5 端当前仅在微信公众号 JS-SDK 环境下支持此 API'\n Taro.eventCenter.trigger('__taroNotSupport', {\n name,\n args: [option, ...args],\n type: 'method',\n category: 'weixin_corp',\n })\n if (process.env.NODE_ENV === 'production') {\n console.warn(errMsg)\n return handle.success({ errMsg })\n } else {\n return handle.fail({ errMsg })\n }\n }\n}\n\nexport function permanentlyNotSupport (name = '') {\n return (option = {}, ...args: any[]) => {\n const { success, fail, complete } = option as any\n const handle = new MethodHandler({ name, success, fail, complete })\n const errMsg = '不支持 API'\n Taro.eventCenter.trigger('__taroNotSupport', {\n name,\n args: [option, ...args],\n type: 'method',\n category: 'permanently',\n })\n if (process.env.NODE_ENV === 'production') {\n console.warn(errMsg)\n return handle.success({ errMsg })\n } else {\n return handle.fail({ errMsg })\n }\n }\n}\n\ninterface IProcessOpenApi<TOptions = Record<string, unknown>, TResult extends TaroGeneral.CallbackResult = any> {\n name: string\n defaultOptions?: TOptions\n standardMethod?: (opts: TOptions) => Promise<TResult>\n formatOptions?: (opts: TOptions) => TOptions\n formatResult?: (res: TResult) => TResult\n}\n\nexport function processOpenApi<TOptions = Record<string, unknown>, TResult extends TaroGeneral.CallbackResult = any> ({\n name,\n defaultOptions,\n standardMethod,\n formatOptions = options => options,\n formatResult = res => res\n}: IProcessOpenApi<TOptions, TResult>) {\n const notSupported = weixinCorpSupport(name)\n return (options: Partial<TOptions> = {}, ...args: any[]): Promise<TResult> => {\n // @ts-ignore\n const targetApi = window?.wx?.[name]\n const opts = formatOptions(Object.assign({}, defaultOptions, options))\n if (isFunction(targetApi)) {\n return new Promise<TResult>((resolve, reject) => {\n ['fail', 'success', 'complete'].forEach(k => {\n opts[k] = preRef => {\n const res = formatResult(preRef)\n options[k] && options[k](res)\n if (k === 'success') {\n resolve(res)\n } else if (k === 'fail') {\n reject(res)\n }\n }\n return targetApi(opts)\n })\n })\n } else if (isFunction(standardMethod)) {\n return standardMethod(opts)\n } else {\n return notSupported(options, ...args) as Promise<TResult>\n }\n }\n}\n\n/**\n * 获取当前页面路径\n * @returns\n */\nexport function getCurrentPath (): string {\n const appConfig = (window as any).__taroAppConfig || {}\n const routePath = getCurrentPage(appConfig.router?.mode, appConfig.router?.basename)\n const homePath = getHomePage(appConfig.routes?.[0]?.path, appConfig.router?.basename, appConfig.router?.customRoutes, appConfig.entryPagePath)\n\n /**\n * createPageConfig 时根据 stack 的长度来设置 stamp 以保证页面 path 的唯一,此函数是在 createPageConfig 之前调用,预先设置 stamp=1\n * url 上没有指定应用的启动页面时使用 homePath\n */\n return `${routePath === '/' ? homePath : routePath}?stamp=1`\n}\n\nexport * from './animation'\nexport * from './helper'\nexport * from './valid'\n","import { temporarilyNotSupport } from '../../utils'\n\n// 广告\nexport const createRewardedVideoAd = /* @__PURE__ */ temporarilyNotSupport('createRewardedVideoAd')\nexport const createInterstitialAd = /* @__PURE__ */ temporarilyNotSupport('createInterstitialAd')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 人脸识别\nexport const stopFaceDetect = /* @__PURE__ */ temporarilyNotSupport('stopFaceDetect')\nexport const initFaceDetect = /* @__PURE__ */ temporarilyNotSupport('initFaceDetect')\nexport const faceDetect = /* @__PURE__ */ temporarilyNotSupport('faceDetect')\n","import { temporarilyNotSupport } from '../../utils'\n\n// AI推理\nexport const getInferenceEnvInfo = /* @__PURE__ */ temporarilyNotSupport('getInferenceEnvInfo')\nexport const createInferenceSession = /* @__PURE__ */ temporarilyNotSupport('createInferenceSession')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 判断支持版本\nexport const isVKSupport = /* @__PURE__ */ temporarilyNotSupport('isVKSupport')\n\n// 视觉算法\nexport const createVKSession = /* @__PURE__ */ temporarilyNotSupport('createVKSession')\n","import { temporarilyNotSupport } from '../../utils'\n\n// AliPay\nexport const getOpenUserInfo = /* @__PURE__ */ temporarilyNotSupport('getOpenUserInfo')\nexport const tradePay = /* @__PURE__ */ temporarilyNotSupport('tradePay')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 加密\nexport const getUserCryptoManager = /* @__PURE__ */ temporarilyNotSupport('getUserCryptoManager')\n","import { temporarilyNotSupport } from '../../utils'\n\nexport const setEnableDebug = /* @__PURE__ */ temporarilyNotSupport('setEnableDebug')\nexport const getRealtimeLogManager = /* @__PURE__ */ temporarilyNotSupport('getRealtimeLogManager')\nexport const getLogManager = /* @__PURE__ */ temporarilyNotSupport('getLogManager')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 性能\nexport const reportPerformance = /* @__PURE__ */ temporarilyNotSupport('reportPerformance')\nexport const getPerformance = /* @__PURE__ */ temporarilyNotSupport('getPerformance')\nexport const preloadWebview = /* @__PURE__ */ temporarilyNotSupport('preloadWebview')\nexport const preloadSkylineView = /* @__PURE__ */ temporarilyNotSupport('preloadSkylineView')\nexport const preloadAssets = /* @__PURE__ */ temporarilyNotSupport('preloadAssets')\n","import Taro from '@tarojs/api'\nimport platform from 'platform'\n\nimport { temporarilyNotSupport } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\n/** 跳转系统蓝牙设置页 */\nexport const openSystemBluetoothSetting = /* @__PURE__ */ temporarilyNotSupport('openSystemBluetoothSetting')\n\n/** 跳转系统微信授权管理页 */\nexport const openAppAuthorizeSetting = /* @__PURE__ */ temporarilyNotSupport('openAppAuthorizeSetting')\n\n/** 获取窗口信息 */\nexport const getWindowInfo: typeof Taro.getWindowInfo = () => {\n const info: ReturnType<typeof Taro.getWindowInfo> = {\n /** 设备像素比 */\n pixelRatio: window.devicePixelRatio,\n /** 屏幕宽度,单位px */\n screenWidth: window.screen.width,\n /** 屏幕高度,单位px */\n screenHeight: window.screen.height,\n /** 可使用窗口宽度,单位px */\n windowWidth: document.documentElement.clientWidth,\n /** 可使用窗口高度,单位px */\n windowHeight: document.documentElement.clientHeight,\n /** 状态栏的高度,单位px */\n statusBarHeight: NaN,\n /** 在竖屏正方向下的安全区域 */\n safeArea: {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0\n }\n }\n\n return info\n}\n\n/** 获取设备设置 */\nexport const getSystemSetting: typeof Taro.getSystemSetting = () => {\n const isLandscape = window.screen.width >= window.screen.height\n const info: ReturnType<typeof Taro.getSystemSetting> = {\n /** 蓝牙的系统开关 */\n bluetoothEnabled: false,\n /** 地理位置的系统开关 */\n locationEnabled: false,\n /** Wi-Fi 的系统开关 */\n wifiEnabled: false,\n /** 设备方向 */\n deviceOrientation: isLandscape ? 'landscape' : 'portrait'\n }\n\n return info\n}\n\n/** 获取设备设置 */\nexport const getDeviceInfo: typeof Taro.getDeviceInfo = () => {\n const info: ReturnType<typeof Taro.getDeviceInfo> = {\n /** 应用二进制接口类型(仅 Android 支持) */\n abi: '',\n /** 设备二进制接口类型(仅 Android 支持) */\n deviceAbi: '',\n /** 设备性能等级(仅Android小游戏)。取值为:-2 或 0(该设备无法运行小游戏),-1(性能未知),>=1(设备性能值,该值越高,设备性能越好,目前最高不到50) */\n benchmarkLevel: -1,\n /** 设备品牌 */\n brand: platform.manufacturer || 'unknown',\n /** 设备型号 */\n model: platform.product || 'unknown',\n /** 操作系统及版本 */\n system: platform.os?.toString() || 'unknown',\n /** 客户端平台 */\n platform: platform.os?.family || 'unknown',\n /** 设备二进制接口类型(仅 Android 支持) */\n CPUType: '',\n }\n\n return info\n}\n\n/** 获取微信APP基础信息 */\nexport const getAppBaseInfo: typeof Taro.getAppBaseInfo = () => {\n let isDarkMode = false\n if (window.matchMedia?.('(prefers-color-scheme: dark)').matches) {\n isDarkMode = true\n }\n\n const info: ReturnType<typeof Taro.getAppBaseInfo> = {\n /** 客户端基础库版本 */\n SDKVersion: '',\n /** 是否已打开调试。可通过右上角菜单或 [Taro.setEnableDebug](/docs/apis/base/debug/setEnableDebug) 打开调试。 */\n enableDebug: process.env.NODE_ENV !== 'production',\n /** 当前小程序运行的宿主环境 */\n // host: { appId: '' },\n /** 微信设置的语言 */\n language: navigator.language,\n /** 微信版本号 */\n version: '',\n /** 系统当前主题,取值为light或dark,全局配置\"darkmode\":true时才能获取,否则为 undefined (不支持小游戏) */\n theme: isDarkMode ? 'dark' : 'light'\n }\n\n return info\n}\n\n/** 获取微信APP授权设置 */\nexport const getAppAuthorizeSetting: typeof Taro.getAppAuthorizeSetting = () => {\n const info: ReturnType<typeof Taro.getAppAuthorizeSetting> = {\n /** 允许微信使用相册的开关(仅 iOS 有效) */\n albumAuthorized: 'not determined',\n /** 允许微信使用蓝牙的开关(仅 iOS 有效) */\n bluetoothAuthorized: 'not determined',\n /** 允许微信使用摄像头的开关 */\n cameraAuthorized: 'not determined',\n /** 允许微信使用定位的开关 */\n locationAuthorized: 'not determined',\n /** 定位准确度。true 表示模糊定位,false 表示精确定位(仅 iOS 有效) */\n locationReducedAccuracy: false,\n /** 允许微信使用麦克风的开关 */\n microphoneAuthorized: 'not determined',\n /** 允许微信通知的开关 */\n notificationAuthorized: 'not determined',\n /** 允许微信通知带有提醒的开关(仅 iOS 有效) */\n notificationAlertAuthorized: 'not determined',\n /** 允许微信通知带有标记的开关(仅 iOS 有效) */\n notificationBadgeAuthorized: 'not determined',\n /** 允许微信通知带有声音的开关(仅 iOS 有效) */\n notificationSoundAuthorized: 'not determined',\n /** 允许微信使用日历的开关 */\n phoneCalendarAuthorized: 'not determined'\n }\n\n return info\n}\n\n/** 获取设备设置 */\nexport const getSystemInfoSync: typeof Taro.getSystemInfoSync = () => {\n const windowInfo = getWindowInfo()\n const systemSetting = getSystemSetting()\n const deviceInfo: Taro.getDeviceInfo.Result = getDeviceInfo()\n const appBaseInfo = getAppBaseInfo()\n const appAuthorizeSetting = getAppAuthorizeSetting()\n delete deviceInfo.abi\n\n const info: ReturnType<typeof Taro.getSystemInfoSync> = {\n ...windowInfo,\n ...systemSetting,\n ...deviceInfo,\n ...appBaseInfo,\n /** 用户字体大小(单位px)。以微信客户端「我-设置-通用-字体大小」中的设置为准 */\n fontSizeSetting: NaN,\n /** 允许微信使用相册的开关(仅 iOS 有效) */\n albumAuthorized: appAuthorizeSetting.albumAuthorized === 'authorized',\n /** 允许微信使用摄像头的开关 */\n cameraAuthorized: appAuthorizeSetting.cameraAuthorized === 'authorized',\n /** 允许微信使用定位的开关 */\n locationAuthorized: appAuthorizeSetting.locationAuthorized === 'authorized',\n /** 允许微信使用麦克风的开关 */\n microphoneAuthorized: appAuthorizeSetting.microphoneAuthorized === 'authorized',\n /** 允许微信通知的开关 */\n notificationAuthorized: appAuthorizeSetting.notificationAuthorized === 'authorized',\n /** 允许微信通知带有提醒的开关(仅 iOS 有效) */\n notificationAlertAuthorized: appAuthorizeSetting.notificationAlertAuthorized === 'authorized',\n /** 允许微信通知带有标记的开关(仅 iOS 有效) */\n notificationBadgeAuthorized: appAuthorizeSetting.notificationBadgeAuthorized === 'authorized',\n /** 允许微信通知带有声音的开关(仅 iOS 有效) */\n notificationSoundAuthorized: appAuthorizeSetting.notificationSoundAuthorized === 'authorized',\n /** 允许微信使用日历的开关 */\n phoneCalendarAuthorized: appAuthorizeSetting.phoneCalendarAuthorized === 'authorized',\n /** `true` 表示模糊定位,`false` 表示精确定位,仅 iOS 支持 */\n locationReducedAccuracy: appAuthorizeSetting.locationReducedAccuracy,\n /** 小程序当前运行环境 */\n environment: ''\n }\n\n return info\n}\n\n/** 获取系统信息 */\nexport const getSystemInfoAsync: typeof Taro.getSystemInfoAsync = async (options = {}) => {\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'getSystemInfoAsync', success, fail, complete })\n\n try {\n const info = await getSystemInfoSync()\n return handle.success(info)\n } catch (error) {\n return handle.fail({\n errMsg: error\n })\n }\n}\n\n/** 获取系统信息 */\nexport const getSystemInfo: typeof Taro.getSystemInfo = async (options = {}) => {\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'getSystemInfo', success, fail, complete })\n\n try {\n const info = await getSystemInfoSync()\n return handle.success(info)\n } catch (error) {\n return handle.fail({\n errMsg: error\n })\n }\n}\n\nexport const getSkylineInfoSync = /* @__PURE__ */ temporarilyNotSupport('getSkylineInfoSync')\n\nexport const getSkylineInfo = /* @__PURE__ */ temporarilyNotSupport('getSkylineInfo')\n\nexport const getRendererUserAgent = /* @__PURE__ */ temporarilyNotSupport('getRendererUserAgent')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 更新\nexport const updateWeChatApp = /* @__PURE__ */ temporarilyNotSupport('updateWeChatApp')\nexport const getUpdateManager = /* @__PURE__ */ temporarilyNotSupport('getUpdateManager')\n","import Taro from '@tarojs/api'\nimport isNil from 'lodash-es/isNil'\nimport { parse } from 'query-string'\n\nimport { temporarilyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nconst unhandledRejectionCallbackManager = new CallbackManager<[Taro.onUnhandledRejection.Result]>()\nconst themeChangeCallbackManager = new CallbackManager<[Taro.onThemeChange.Result]>()\nconst pageNotFoundCallbackManager = new CallbackManager<[Taro.onPageNotFound.Result]>()\nconst errorCallbackManager = new CallbackManager<Parameters<Taro.onError.Callback>>()\nconst appShowCallbackManager = new CallbackManager<[Taro.onAppShow.CallbackResult]>()\nconst appHideCallbackManager = new CallbackManager<[Taro.onAppShow.CallbackResult]>()\n\nconst unhandledRejectionListener = (res: PromiseRejectionEvent) => {\n unhandledRejectionCallbackManager.trigger(res)\n}\n\nlet themeMatchMedia: MediaQueryList | null = null\nconst themeChangeListener = (res: MediaQueryListEvent) => {\n themeChangeCallbackManager.trigger({\n theme: res.matches ? 'dark' : 'light'\n })\n}\n\nconst pageNotFoundListener = (res: Taro.onPageNotFound.Result) => {\n pageNotFoundCallbackManager.trigger(res)\n}\n\nconst errorListener = (res: ErrorEvent) => {\n // @ts-ignore\n errorCallbackManager.trigger(res.stack || res.message || res)\n}\n\nconst getApp = () => {\n const path = Taro.Current.page?.path\n return {\n /** 小程序切前台的路径 */\n path: path?.substring(0, path.indexOf('?')) || '',\n /** 小程序切前台的 query 参数 */\n query: parse(location.search),\n /** 来源信息。 */\n referrerInfo: {},\n /** 小程序切前台的[场景值](https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/scene.html) */\n scene: 0,\n /** shareTicket,详见[获取更多转发信息](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html) */\n shareTicket: ''\n }\n}\n\nconst appShowListener = () => {\n if (document.visibilityState !== 'hidden') {\n appShowCallbackManager.trigger(getApp())\n }\n}\n\nconst appHideListener = () => {\n if (document.visibilityState === 'hidden') {\n appHideCallbackManager.trigger(getApp())\n }\n}\n\n// 应用级事件\nexport const onUnhandledRejection: typeof Taro.onUnhandledRejection = callback => {\n unhandledRejectionCallbackManager.add(callback)\n if (unhandledRejectionCallbackManager.count() === 1) {\n window.addEventListener('unhandledrejection', unhandledRejectionListener)\n }\n}\n\nexport const onThemeChange: typeof Taro.onThemeChange = callback => {\n themeChangeCallbackManager.add(callback)\n if (themeChangeCallbackManager.count() === 1) {\n if (isNil(themeMatchMedia)) {\n themeMatchMedia = window.matchMedia('(prefers-color-scheme: light)')\n }\n themeMatchMedia.addEventListener('change', themeChangeListener)\n }\n}\n\nexport const onPageNotFound: typeof Taro.onPageNotFound = callback => {\n pageNotFoundCallbackManager.add(callback)\n if (pageNotFoundCallbackManager.count() === 1) {\n Taro.eventCenter.on('__taroRouterNotFound', pageNotFoundListener)\n }\n}\n\nexport const onLazyLoadError = /* @__PURE__ */ temporarilyNotSupport('onLazyLoadError')\n\nexport const onError: typeof Taro.onError = callback => {\n errorCallbackManager.add(callback)\n if (errorCallbackManager.count() === 1) {\n window.addEventListener('error', errorListener)\n }\n}\n\nexport const onAudioInterruptionEnd = /* @__PURE__ */ temporarilyNotSupport('onAudioInterruptionEnd')\nexport const onAudioInterruptionBegin = /* @__PURE__ */ temporarilyNotSupport('onAudioInterruptionBegin')\n\nexport const onAppShow: typeof Taro.onAppShow = callback => {\n appShowCallbackManager.add(callback)\n if (appShowCallbackManager.count() === 1) {\n window.addEventListener('visibilitychange', appShowListener)\n }\n}\n\nexport const onAppHide: typeof Taro.onAppHide = callback => {\n appHideCallbackManager.add(callback)\n if (appHideCallbackManager.count() === 1) {\n window.addEventListener('visibilitychange', appHideListener)\n }\n}\n\nexport const offUnhandledRejection: typeof Taro.offUnhandledRejection = callback => {\n unhandledRejectionCallbackManager.remove(callback)\n if (unhandledRejectionCallbackManager.count() === 0) {\n window.removeEventListener('unhandledrejection', unhandledRejectionListener)\n }\n}\n\nexport const offThemeChange: typeof Taro.offThemeChange = callback => {\n themeChangeCallbackManager.remove(callback)\n if (themeChangeCallbackManager.count() === 0) {\n if (isNil(themeMatchMedia)) {\n themeMatchMedia = window.matchMedia('(prefers-color-scheme: light)')\n }\n themeMatchMedia.removeEventListener('change', themeChangeListener)\n themeMatchMedia = null\n }\n}\n\nexport const offPageNotFound: typeof Taro.offPageNotFound = callback => {\n pageNotFoundCallbackManager.remove(callback)\n if (pageNotFoundCallbackManager.count() === 0) {\n Taro.eventCenter.off('__taroRouterNotFound', pageNotFoundListener)\n }\n}\n\nexport const offLazyLoadError = /* @__PURE__ */ temporarilyNotSupport('offLazyLoadError')\n\nexport const offError: typeof Taro.offError = callback => {\n errorCallbackManager.remove(callback)\n if (errorCallbackManager.count() === 0) {\n window.removeEventListener('error', errorListener)\n }\n}\n\nexport const offAudioInterruptionEnd = /* @__PURE__ */ temporarilyNotSupport('offAudioInterruptionEnd')\nexport const offAudioInterruptionBegin = /* @__PURE__ */ temporarilyNotSupport('offAudioInterruptionBegin')\n\nexport const offAppShow: typeof Taro.offAppShow = callback => {\n appShowCallbackManager.remove(callback)\n if (appShowCallbackManager.count() === 0) {\n window.removeEventListener('visibilitychange', appShowListener)\n }\n}\n\nexport const offAppHide: typeof Taro.offAppHide = callback => {\n appHideCallbackManager.remove(callback)\n if (appHideCallbackManager.count() === 0) {\n window.removeEventListener('visibilitychange', appHideListener)\n }\n}\n","import Taro from '@tarojs/api'\n\nconst launchOptions: Taro.getLaunchOptionsSync.LaunchOptions = {\n path: '',\n query: {},\n scene: 0,\n shareTicket: '',\n referrerInfo: {}\n}\n\nfunction initLaunchOptions (options = {}) {\n Object.assign(launchOptions, options)\n}\n\nTaro.eventCenter.once('__taroRouterLaunch', initLaunchOptions)\n\n// 生命周期\nexport const getLaunchOptionsSync: typeof Taro.getLaunchOptionsSync = () => launchOptions\nexport const getEnterOptionsSync: typeof Taro.getEnterOptionsSync = () => launchOptions\n","import { fromByteArray, toByteArray } from 'base64-js'\n\nexport const env = {\n FRAMEWORK: process.env.FRAMEWORK,\n TARO_ENV: process.env.TARO_ENV,\n TARO_PLATFORM: process.env.TARO_PLATFORM,\n TARO_VERSION: process.env.TARO_VERSION,\n}\n\n// Note: 该方法由 taro-plugin-platform-h5 实现\n// export const canIUse = /* @__PURE__ */ temporarilyNotSupport('canIUse')\n\nexport function arrayBufferToBase64 (arrayBuffer: ArrayBuffer) {\n return fromByteArray(arrayBuffer as Uint8Array)\n}\n\nexport function base64ToArrayBuffer (base64: string) {\n return toByteArray(base64).buffer\n}\n\nexport * from './crypto'\nexport * from './debug'\nexport * from './performance'\nexport * from './system'\nexport * from './update'\nexport * from './weapp/app-event'\nexport * from './weapp/life-cycle'\n","import Taro, { CanvasGradient } from '@tarojs/api'\n\ninterface IAction {\n func: (...arr: any[]) => void\n args: any[]\n}\n\nconst TextBaseLineMap: Record<keyof Taro.CanvasContext.TextBaseline, CanvasTextBaseline> = {\n top: 'top',\n bottom: 'bottom',\n middle: 'middle',\n normal: 'alphabetic',\n hanging: 'hanging',\n alphabetic: 'alphabetic',\n ideographic: 'ideographic'\n}\n\nexport class CanvasContext implements Taro.CanvasContext {\n __raw__: CanvasRenderingContext2D\n actions: IAction[] = []\n\n constructor (canvas, ctx) {\n this.canvas = canvas\n this.ctx = ctx\n }\n\n set ctx (e: CanvasRenderingContext2D) {\n this.__raw__ = e\n }\n\n get ctx () {\n return this.__raw__ || {}\n }\n\n canvas: HTMLCanvasElement\n\n protected emptyActions () {\n this.actions.length = 0\n }\n\n protected enqueueActions (func: IAction['func'], ...args) {\n this.actions.push({\n func,\n args\n })\n }\n\n set fillStyle (e) { this.enqueueActions(() => { this.ctx.fillStyle = e }) }\n get fillStyle () { return this.ctx.fillStyle as string }\n set font (e) { this.ctx.font = e }\n get font () { return this.ctx.font }\n set globalAlpha (e) { this.enqueueActions(() => { this.ctx.globalAlpha = e }) }\n get globalAlpha () { return this.ctx.globalAlpha }\n set globalCompositeOperation (e) { this.enqueueActions(() => { this.ctx.globalCompositeOperation = e }) }\n get globalCompositeOperation () { return this.ctx.globalCompositeOperation }\n set lineCap (e) { this.enqueueActions(() => { this.ctx.lineCap = e }) }\n get lineCap () { return this.ctx.lineCap }\n set lineDashOffset (e) { this.enqueueActions(() => { this.ctx.lineDashOffset = e }) }\n get lineDashOffset () { return this.ctx.lineDashOffset }\n set lineJoin (e) { this.enqueueActions(() => { this.ctx.lineJoin = e }) }\n get lineJoin () { return this.ctx.lineJoin }\n set lineWidth (e) { this.enqueueActions(() => { this.ctx.lineWidth = e }) }\n get lineWidth () { return this.ctx.lineWidth }\n set miterLimit (e) { this.enqueueActions(() => { this.ctx.miterLimit = e }) }\n get miterLimit () { return this.ctx.miterLimit }\n set shadowBlur (e) { this.enqueueActions(() => { this.ctx.shadowBlur = e }) }\n get shadowBlur () { return this.ctx.shadowBlur }\n set shadowColor (e) { this.enqueueActions(() => { this.ctx.shadowColor = e }) }\n get shadowColor () { return this.ctx.shadowColor }\n set shadowOffsetX (e) { this.enqueueActions(() => { this.ctx.shadowOffsetX = e }) }\n get shadowOffsetX () { return this.ctx.shadowOffsetX }\n set shadowOffsetY (e) { this.enqueueActions(() => { this.ctx.shadowOffsetY = e }) }\n get shadowOffsetY () { return this.ctx.shadowOffsetY }\n set strokeStyle (e) { this.enqueueActions(() => { this.ctx.strokeStyle = e }) }\n get strokeStyle () { return this.ctx.strokeStyle as string }\n /** 小程序文档中不包括 ↓↓↓ */\n set textAlign (e) { this.ctx.textAlign = e }\n get textAlign () { return this.ctx.textAlign }\n set textBaseline (e) { this.ctx.textBaseline = e }\n get textBaseline () { return this.ctx.textBaseline }\n set direction (e) { this.ctx.direction = e }\n get direction () { return this.ctx.direction }\n set imageSmoothingEnabled (e) { this.enqueueActions(() => { this.ctx.imageSmoothingEnabled = e }) }\n get imageSmoothingEnabled () { return this.ctx.imageSmoothingEnabled }\n set imageSmoothingQuality (e) { this.enqueueActions(() => { this.ctx.imageSmoothingQuality = e }) }\n get imageSmoothingQuality () { return this.ctx.imageSmoothingQuality }\n set filter (e) { this.enqueueActions(() => { this.ctx.filter = e }) }\n get filter () { return this.ctx.filter }\n /** 小程序文档中不包括 ↑↑↑ */\n\n arc (...args) { return this.enqueueActions(this.ctx.arc, ...args) }\n arcTo (...args) { return this.enqueueActions(this.ctx.arcTo, ...args) }\n beginPath (...args) { return this.enqueueActions(this.ctx.beginPath, ...args) }\n bezierCurveTo (...args) { return this.enqueueActions(this.ctx.bezierCurveTo, ...args) }\n clearRect (...args) { return this.enqueueActions(this.ctx.clearRect, ...args) }\n clip (...args) { return this.enqueueActions(this.ctx.clip, ...args) }\n closePath (...args) { return this.enqueueActions(this.ctx.closePath, ...args) }\n\n createPattern (imageResource: string, repetition: keyof Taro.CanvasContext.Repetition): CanvasPattern | null | Promise<CanvasPattern | null> {\n // 需要转换为 Image\n if (typeof imageResource === 'string') {\n const img = new Image()\n img.src = imageResource\n return new Promise<CanvasPattern | null>((resolve, reject) => {\n img.onload = () => {\n resolve(this.ctx.createPattern(img, repetition))\n }\n img.onerror = reject\n })\n }\n\n return this.ctx.createPattern(imageResource, repetition)\n }\n\n /**\n * 将之前在绘图上下文中的描述(路径、变形、样式)画到 canvas 中。\n * @todo 每次 draw 都会读取 width 和 height\n */\n async draw (reserve?: boolean, callback?: (...args: any[]) => any): Promise<void> {\n try {\n if (!reserve) {\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height)\n }\n\n // 部分 action 是异步的\n for (const { func, args } of this.actions) {\n await func.apply(this.ctx, args)\n }\n\n this.emptyActions()\n callback && callback()\n } catch (e) {\n /* eslint-disable no-throw-literal */\n throw {\n errMsg: e.message\n }\n }\n }\n\n drawImage (imageResource: string, ...extra: any[]): void {\n type TExtra = [number, number]\n this.enqueueActions(() => {\n // 需要转换为 Image\n if (typeof imageResource === 'string') {\n const img = new Image()\n img.src = imageResource\n return new Promise<void>((resolve, reject) => {\n img.onload = () => {\n this.ctx.drawImage(img, ...extra as TExtra)\n resolve()\n }\n img.onerror = reject\n })\n }\n\n this.ctx.drawImage(imageResource, ...extra as TExtra)\n })\n }\n\n fill (...args) { return this.enqueueActions(this.ctx.fill, ...args) }\n fillRect (...args) { return this.enqueueActions(this.ctx.fillRect, ...args) }\n fillText (...args) { return this.enqueueActions(this.ctx.fillText, ...args) }\n lineTo (...args) { return this.enqueueActions(this.ctx.lineTo, ...args) }\n moveTo (...args) { return this.enqueueActions(this.ctx.moveTo, ...args) }\n quadraticCurveTo (...args) { return this.enqueueActions(this.ctx.quadraticCurveTo, ...args) }\n rect (...args) { return this.enqueueActions(this.ctx.rect, ...args) }\n // @ts-ignore\n reset () { return this.ctx.reset() }\n restore () { return this.ctx.restore() }\n rotate (...args) { return this.enqueueActions(this.ctx.rotate, ...args) }\n save () { return this.ctx.save() }\n scale (...args) { return this.enqueueActions(this.ctx.scale, ...args) }\n\n setFillStyle (color: string | CanvasGradient): void {\n this.enqueueActions(() => { this.ctx.fillStyle = color })\n }\n\n setFontSize (fontSize: number): void {\n const arr = this.font.split(/\\s/)\n const idx = arr.findIndex(e => /^\\d+px$/.test(e))\n if (idx !== -1) {\n arr[idx] = `${fontSize}px`\n this.font = arr.join(' ')\n }\n }\n\n setGlobalAlpha (alpha: number): void {\n this.globalAlpha = alpha\n }\n\n setLineCap (lineCap: keyof Taro.CanvasContext.LineCap): void {\n this.lineCap = lineCap\n }\n\n setLineDash (pattern: number[], offset: number): void {\n this.enqueueActions(() => {\n this.ctx.setLineDash(pattern)\n this.ctx.lineDashOffset = offset\n })\n }\n\n setLineJoin (lineJoin: keyof Taro.CanvasContext.LineJoin): void {\n this.lineJoin = lineJoin\n }\n\n setLineWidth (lineWidth: number): void {\n this.lineWidth = lineWidth\n }\n\n setMiterLimit (miterLimit: number): void {\n this.miterLimit = miterLimit\n }\n\n setShadow (offsetX: number, offsetY: number, blur: number, color: string): void {\n this.enqueueActions(() => {\n this.ctx.shadowOffsetX = offsetX\n this.ctx.shadowOffsetY = offsetY\n this.ctx.shadowColor = color\n this.ctx.shadowBlur = blur\n })\n }\n\n setStrokeStyle (color: string | CanvasGradient): void {\n this.enqueueActions(() => { this.ctx.strokeStyle = color })\n }\n\n setTextAlign (align: keyof Taro.CanvasContext.Align): void {\n this.textAlign = align\n }\n\n setTextBaseline (textBaseline: keyof Taro.CanvasContext.TextBaseline): void {\n this.textBaseline = TextBaseLineMap[textBaseline] || 'alphabetic'\n }\n\n setTransform (...args) { return this.enqueueActions(this.ctx.setTransform, ...args) }\n stroke (...args) { return this.enqueueActions(this.ctx.stroke, ...args) }\n strokeRect (...args) { return this.enqueueActions(this.ctx.strokeRect, ...args) }\n strokeText (...args) { return this.enqueueActions(this.ctx.strokeText, ...args) }\n transform (...args) { return this.enqueueActions(this.ctx.transform, ...args) }\n translate (...args) { return this.enqueueActions(this.ctx.translate, ...args) }\n\n measureText (text: string): TextMetrics {\n return this.ctx.measureText(text)\n }\n\n createCircularGradient (x: number, y: number, r: number): CanvasGradient {\n const radialGradient = this.ctx.createRadialGradient(x, y, 0, x, y, r)\n\n return radialGradient\n }\n\n createLinearGradient (x0: number, y0: number, x1: number, y1: number): CanvasGradient {\n return this.ctx.createLinearGradient(x0, y0, x1, y1)\n }\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { findDOM } from '../../utils'\r\nimport { CanvasContext } from './CanvasContext'\r\n\r\n/**\r\n * 创建 canvas 的绘图上下文 CanvasContext 对象\r\n */\r\nexport const createCanvasContext: typeof Taro.createCanvasContext = (canvasId, inst) => {\r\n const el = findDOM(inst) as HTMLElement\r\n const canvas = el?.querySelector(`canvas[canvas-id=\"${canvasId}\"]`) as HTMLCanvasElement\r\n const ctx = canvas?.getContext('2d') as CanvasRenderingContext2D\r\n const context = new CanvasContext(canvas, ctx)\r\n if (!ctx) return context\r\n context.canvas = canvas\r\n context.ctx = ctx\r\n\r\n return context\r\n}\r\n","import Taro from '@tarojs/api'\n\nimport { findDOM } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\n/**\n * 把当前画布指定区域的内容导出生成指定大小的图片。在 draw() 回调里调用该方法才能保证图片导出成功。\n * @todo 暂未支持尺寸相关功能\n */\nexport const canvasToTempFilePath: typeof Taro.canvasToTempFilePath = ({ canvasId, fileType, quality, success, fail, complete }, inst) => {\n const handle = new MethodHandler({ name: 'canvasToTempFilePath', success, fail, complete })\n const el = findDOM(inst) as HTMLElement\n const canvas = el?.querySelector(`canvas[canvas-id=\"${canvasId}\"]`) as HTMLCanvasElement\n\n try {\n const dataURL = canvas?.toDataURL(`image/${(fileType === 'jpg' ? 'jpeg' : fileType) || 'png'}`, quality)\n return handle.success({\n tempFilePath: dataURL\n })\n } catch (e) {\n return handle.fail({\n errMsg: e.message\n })\n }\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { findDOM } from '../../utils'\r\nimport { MethodHandler } from '../../utils/handler'\r\n\r\n/**\r\n * 将像素数据绘制到画布。在自定义组件下,第二个参数传入自定义组件实例 this,以操作组件内 <canvas> 组件\r\n * @todo 暂未支持尺寸相关功能\r\n */\r\nexport const canvasPutImageData: typeof Taro.canvasPutImageData = ({ canvasId, data, x, y, success, fail, complete }, inst) => {\r\n const handle = new MethodHandler({ name: 'canvasPutImageData', success, fail, complete })\r\n const el = findDOM(inst) as HTMLElement\r\n const canvas = el?.querySelector(`canvas[canvas-id=\"${canvasId}\"]`) as HTMLCanvasElement\r\n\r\n try {\r\n const ctx = canvas.getContext('2d')\r\n // TODO Uint8ClampedArray => ImageData\r\n ctx?.putImageData(data as unknown as ImageData, x, y)\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({\r\n errMsg: e.message\r\n })\r\n }\r\n}\r\n","import Taro from '@tarojs/api'\r\n\r\nimport { findDOM } from '../../utils'\r\nimport { MethodHandler } from '../../utils/handler'\r\n\r\n/**\r\n * 获取 canvas 区域隐含的像素数据。\r\n */\r\nexport const canvasGetImageData: typeof Taro.canvasGetImageData = ({ canvasId, success, fail, complete, x, y, width, height }, inst) => {\r\n const handle = new MethodHandler({ name: 'canvasGetImageData', success, fail, complete })\r\n const el = findDOM(inst) as HTMLElement\r\n const canvas = el?.querySelector(`canvas[canvas-id=\"${canvasId}\"]`) as HTMLCanvasElement\r\n\r\n try {\r\n const ctx = canvas?.getContext('2d')\r\n // TODO ImageData => Uint8ClampedArray\r\n const data = ctx?.getImageData(x, y, width, height) as unknown as Uint8ClampedArray\r\n return handle.success({\r\n width,\r\n height,\r\n data\r\n })\r\n } catch (e) {\r\n return handle.fail({\r\n errMsg: e.message\r\n })\r\n }\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\r\n\r\n// 画布\r\n\r\n/** 创建离屏 canvas 实例 */\r\nexport const createOffscreenCanvas = /* @__PURE__ */ temporarilyNotSupport('createOffscreenCanvas')\r\n\r\n/** 创建 canvas 的绘图上下文 CanvasContext 对象 */\r\nexport * from './createCanvasContext'\r\n\r\n/** 把当前画布指定区域的内容导出生成指定大小的图片 */\r\nexport * from './canvasToTempFilePath'\r\n\r\n/** 将像素数据绘制到画布 */\r\nexport * from './canvasPutImageData'\r\n\r\n/** 获取 canvas 区域隐含的像素数据 */\r\nexport * from './canvasGetImageData'\r\n","import Taro from '@tarojs/api'\n\nimport { temporarilyNotSupport } from '../../utils'\n\nexport class cloud implements Taro.cloud {\n Cloud: new (options: Taro.cloud.IOptions) => Taro.Cloud\n\n init = temporarilyNotSupport('cloud.init')\n\n CloudID = temporarilyNotSupport('cloud.CloudID')\n\n // @ts-ignore\n callFunction = temporarilyNotSupport('cloud.callFunction')\n\n // @ts-ignore\n uploadFile = temporarilyNotSupport('cloud.uploadFile')\n\n // @ts-ignore\n downloadFile = temporarilyNotSupport('cloud.downloadFile')\n\n // @ts-ignore\n getTempFileURL = temporarilyNotSupport('cloud.getTempFileURL')\n\n // @ts-ignore\n deleteFile = temporarilyNotSupport('cloud.deleteFile')\n\n // @ts-ignore\n database = temporarilyNotSupport('cloud.database')\n\n // @ts-ignore\n callContainer = temporarilyNotSupport('cloud.callContainer')\n}\n","import { temporarilyNotSupport } from '../../utils'\n\nexport const reportMonitor = /* @__PURE__ */ temporarilyNotSupport('reportMonitor')\nexport const reportAnalytics = /* @__PURE__ */ temporarilyNotSupport('reportAnalytics')\nexport const reportEvent = /* @__PURE__ */ temporarilyNotSupport('reportEvent')\nexport const getExptInfoSync = /* @__PURE__ */ temporarilyNotSupport('getExptInfoSync')\n","import Taro from '@tarojs/api'\r\nimport throttle from 'lodash-es/throttle'\r\n\r\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\r\n\r\nconst callbackManager = new CallbackManager()\r\nlet devicemotionListener\r\n\r\n/**\r\n * 停止监听加速度数据。\r\n */\r\nexport const stopAccelerometer: typeof Taro.stopAccelerometer = ({ success, fail, complete } = {}) => {\r\n const res: Partial<TaroGeneral.CallbackResult> = {}\r\n const handle = new MethodHandler({ name: 'stopAccelerometer', success, fail, complete })\r\n try {\r\n window.removeEventListener('devicemotion', devicemotionListener, true)\r\n return handle.success(res)\r\n } catch (e) {\r\n res.errMsg = e.message\r\n return handle.fail(res)\r\n }\r\n}\r\n\r\nconst INTERVAL_MAP = {\r\n game: {\r\n interval: 20,\r\n frequency: 50\r\n },\r\n ui: {\r\n interval: 60,\r\n frequency: 16.67\r\n },\r\n normal: {\r\n interval: 200,\r\n frequency: 5\r\n }\r\n}\r\n\r\n/**\r\n * 开始监听加速度数据。\r\n */\r\nexport const startAccelerometer: typeof Taro.startAccelerometer = ({ interval = 'normal', success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'startAccelerometer', success, fail, complete })\r\n try {\r\n if (window.DeviceMotionEvent) {\r\n const intervalObj = INTERVAL_MAP[interval]\r\n if (devicemotionListener) {\r\n stopAccelerometer()\r\n }\r\n devicemotionListener = throttle((evt: DeviceMotionEvent) => {\r\n callbackManager.trigger({\r\n x: evt.acceleration?.x || 0,\r\n y: evt.acceleration?.y || 0,\r\n z: evt.acceleration?.z || 0\r\n })\r\n }, intervalObj.interval)\r\n window.addEventListener('devicemotion', devicemotionListener, true)\r\n } else {\r\n throw new Error('accelerometer is not supported')\r\n }\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 监听加速度数据事件。频率根据 Taro.startAccelerometer() 的 interval 参数。可使用 Taro.stopAccelerometer() 停止监听。\r\n */\r\nexport const onAccelerometerChange: typeof Taro.onAccelerometerChange = callback => {\r\n callbackManager.add(callback)\r\n}\r\n\r\n/**\r\n * 取消监听加速度数据事件,参数为空,则取消所有的事件监听\r\n */\r\nexport const offAccelerometerChange: typeof Taro.offAccelerometerChange = callback => {\r\n callbackManager.remove(callback)\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// 无障碍\nexport const checkIsOpenAccessibility = /* @__PURE__ */ temporarilyNotSupport('checkIsOpenAccessibility')\n","import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\n// 电量\n\n// Note: 浏览器标准下不支持,其他实现方案不准确,不建议开发者使用\nexport const getBatteryInfoSync = /* @__PURE__ */ permanentlyNotSupport('getBatteryInfoSync')\n\nexport const getBatteryInfo: typeof Taro.getBatteryInfo = async ({ success, fail, complete } = {}) => {\n const handle = new MethodHandler({ name: 'getBatteryInfo', success, fail, complete })\n try {\n // @ts-ignore\n const battery = await navigator.getBattery?.()\n return handle.success({\n isCharging: battery.charging,\n level: Number(battery.level || 0) * 100\n })\n } catch (error) {\n return handle.fail({\n errMsg: error?.message || error\n })\n }\n}\n","import { temporarilyNotSupport } from '../../utils'\n\n// 蓝牙-通用\nexport const stopBluetoothDevicesDiscovery = /* @__PURE__ */ temporarilyNotSupport('stopBluetoothDevicesDiscovery')\nexport const startBluetoothDevicesDiscovery = /* @__PURE__ */ temporarilyNotSupport('startBluetoothDevicesDiscovery')\nexport const openBluetoothAdapter = /* @__PURE__ */ temporarilyNotSupport('openBluetoothAdapter')\nexport const onBluetoothDeviceFound = /* @__PURE__ */ temporarilyNotSupport('onBluetoothDeviceFound')\nexport const onBluetoothAdapterStateChange = /* @__PURE__ */ temporarilyNotSupport('onBluetoothAdapterStateChange')\nexport const offBluetoothDeviceFound = /* @__PURE__ */ temporarilyNotSupport('offBluetoothDeviceFound')\nexport const offBluetoothAdapterStateChange = /* @__PURE__ */ temporarilyNotSupport('offBluetoothAdapterStateChange')\nexport const makeBluetoothPair = /* @__PURE__ */ temporarilyNotSupport('makeBluetoothPair')\nexport const isBluetoothDevicePaired = /* @__PURE__ */ temporarilyNotSupport('isBluetoothDevicePaired')\nexport const getConnectedBluetoothDevices = /* @__PURE__ */ temporarilyNotSupport('getConnectedBluetoothDevices')\nexport const getBluetoothDevices = /* @__PURE__ */ temporarilyNotSupport('getBluetoothDevices')\nexport const getBluetoothAdapterState = /* @__PURE__ */ temporarilyNotSupport('getBluetoothAdapterState')\nexport const closeBluetoothAdapter = /* @__PURE__ */ temporarilyNotSupport('closeBluetoothAdapter')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 蓝牙-低功耗中心设备\nexport const writeBLECharacteristicValue = /* @__PURE__ */ temporarilyNotSupport('writeBLECharacteristicValue')\nexport const setBLEMTU = /* @__PURE__ */ temporarilyNotSupport('setBLEMTU')\nexport const readBLECharacteristicValue = /* @__PURE__ */ temporarilyNotSupport('readBLECharacteristicValue')\nexport const onBLEMTUChange = /* @__PURE__ */ temporarilyNotSupport('onBLEMTUChange')\nexport const onBLEConnectionStateChange = /* @__PURE__ */ temporarilyNotSupport('onBLEConnectionStateChange')\nexport const onBLECharacteristicValueChange = /* @__PURE__ */ temporarilyNotSupport('onBLECharacteristicValueChange')\nexport const offBLEMTUChange = /* @__PURE__ */ temporarilyNotSupport('offBLEMTUChange')\nexport const offBLEConnectionStateChange = /* @__PURE__ */ temporarilyNotSupport('offBLEConnectionStateChange')\nexport const offBLECharacteristicValueChange = /* @__PURE__ */ temporarilyNotSupport('offBLECharacteristicValueChange')\nexport const notifyBLECharacteristicValueChange = /* @__PURE__ */ temporarilyNotSupport('notifyBLECharacteristicValueChange')\nexport const getBLEMTU = /* @__PURE__ */ temporarilyNotSupport('getBLEMTU')\nexport const getBLEDeviceServices = /* @__PURE__ */ temporarilyNotSupport('getBLEDeviceServices')\nexport const getBLEDeviceRSSI = /* @__PURE__ */ temporarilyNotSupport('getBLEDeviceRSSI')\nexport const getBLEDeviceCharacteristics = /* @__PURE__ */ temporarilyNotSupport('getBLEDeviceCharacteristics')\nexport const createBLEConnection = /* @__PURE__ */ temporarilyNotSupport('createBLEConnection')\nexport const closeBLEConnection = /* @__PURE__ */ temporarilyNotSupport('closeBLEConnection')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 蓝牙-低功耗外围设备\nexport const onBLEPeripheralConnectionStateChanged = /* @__PURE__ */ temporarilyNotSupport('onBLEPeripheralConnectionStateChanged')\nexport const offBLEPeripheralConnectionStateChanged = /* @__PURE__ */ temporarilyNotSupport('offBLEPeripheralConnectionStateChanged')\nexport const createBLEPeripheralServer = /* @__PURE__ */ temporarilyNotSupport('createBLEPeripheralServer')\n","import Taro from '@tarojs/api'\nimport * as ics from 'ics'\n\nimport { createDownload, getParameterError, shouldBeObject } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\nimport type { DateArray } from 'ics'\n\n// 日历\nexport const addPhoneRepeatCalendar: typeof Taro.addPhoneRepeatCalendar = (options) => {\n const methodName = 'addPhoneRepeatCalendar'\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n title,\n startTime = new Date().getTime(),\n allDay = false,\n description = '',\n location = '',\n endTime,\n alarm = true,\n alarmOffset = 0,\n repeatInterval = 'month',\n repeatEndTime,\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n if (typeof title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: title\n })\n })\n }\n\n const start = new Date(startTime)\n const end = new Date(endTime || startTime)\n if (!endTime && allDay) {\n end.setDate(end.getDate() + 1)\n }\n\n const interval = 1000 * 60 * 60 * 24\n let days = 1\n let repeat = 1\n if (repeatEndTime) {\n const repeatEnd = new Date(repeatEndTime)\n if (repeatEnd < start) {\n return handle.fail({\n errMsg: 'repeatEndTime must be greater than startTime'\n })\n }\n switch (repeatInterval) {\n case 'week':\n days = 7\n break\n case 'month':\n days = 30\n break\n case 'year':\n days = 365\n break\n default:\n }\n repeat = Math.ceil((repeatEnd.getTime() - start.getTime()) / (interval * days))\n }\n const { error, value } = ics.createEvent({\n title,\n start: parseTime2Array(start, allDay),\n description,\n location,\n end: parseTime2Array(end, allDay),\n alarms: alarm ? [{\n action: 'display',\n description,\n trigger: {\n before: true,\n seconds: alarmOffset,\n },\n duration: {\n days,\n },\n repeat,\n }] : [],\n })\n if (error || !value) {\n return handle.fail({\n errMsg: error?.message\n })\n }\n const url = URL.createObjectURL(new Blob([value]))\n createDownload(url, `${title}.ics`)\n return handle.success()\n}\n\nexport const addPhoneCalendar: typeof Taro.addPhoneCalendar = (options) => {\n const methodName = 'addPhoneCalendar'\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n title,\n startTime = new Date().getTime(),\n allDay = false,\n description = '',\n location = '',\n endTime,\n alarm = true,\n alarmOffset = 0,\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n if (typeof title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: title\n })\n })\n }\n\n const start = new Date(startTime)\n const end = new Date(endTime || startTime)\n if (!endTime && allDay) {\n end.setDate(end.getDate() + 1)\n }\n const { error, value } = ics.createEvent({\n title,\n start: parseTime2Array(start, allDay),\n description,\n location,\n end: parseTime2Array(end, allDay),\n alarms: alarm ? [{\n action: 'display',\n description,\n trigger: {\n before: true,\n seconds: alarmOffset,\n },\n }] : [],\n })\n if (error || !value) {\n return handle.fail({\n errMsg: error?.message\n })\n }\n const url = URL.createObjectURL(new Blob([value]))\n createDownload(url, `${title}.ics`)\n return handle.success()\n}\n\nfunction parseTime2Array (time: Date, allDay = false): DateArray {\n const t = new Date(time)\n const timeArr: DateArray = [\n t.getFullYear(),\n t.getMonth() + 1,\n t.getDate(),\n ]\n if (!allDay) {\n timeArr.push(t.getHours(), t.getMinutes())\n }\n return timeArr\n}\n","import { temporarilyNotSupport } from '../../utils'\n\n// 周期性更新\nexport const setBackgroundFetchToken = /* @__PURE__ */ temporarilyNotSupport('setBackgroundFetchToken')\nexport const onBackgroundFetchData = /* @__PURE__ */ temporarilyNotSupport('onBackgroundFetchData')\nexport const getBackgroundFetchToken = /* @__PURE__ */ temporarilyNotSupport('getBackgroundFetchToken')\nexport const getBackgroundFetchData = /* @__PURE__ */ temporarilyNotSupport('getBackgroundFetchData')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 周期性更新\nexport const createCacheManager = /* @__PURE__ */ temporarilyNotSupport('createCacheManager')\n","import Taro from '@tarojs/api'\n\nimport { getParameterError, shouldBeObject, temporarilyNotSupport } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\nfunction getItem (key) {\n let item\n try {\n item = JSON.parse(localStorage.getItem(key) || '')\n } catch (e) {} // eslint-disable-line no-empty\n\n // 只返回使用 Taro.setStorage API 存储的数据\n if (item && typeof item === 'object' && item.hasOwnProperty('data')) {\n return { result: true, data: item.data }\n } else {\n return { result: false }\n }\n}\n\n// 数据缓存\nexport const setStorageSync: typeof Taro.setStorageSync = (key, data = '') => {\n if (typeof key !== 'string') {\n console.error(getParameterError({\n name: 'setStorage',\n correct: 'String',\n wrong: key\n }))\n return\n }\n\n const type = typeof data\n let obj = {}\n\n if (type === 'symbol') {\n obj = { data: '' }\n } else {\n obj = { data }\n }\n localStorage.setItem(key, JSON.stringify(obj))\n}\n\nexport const setStorage: typeof Taro.setStorage = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `setStorage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { key, data, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'setStorage', success, fail, complete })\n\n if (typeof key !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'key',\n correct: 'String',\n wrong: key\n })\n })\n }\n\n setStorageSync(key, data)\n return handle.success()\n}\n\nexport const revokeBufferURL = /* @__PURE__ */ temporarilyNotSupport('revokeBufferURL')\n\nexport const removeStorageSync: typeof Taro.removeStorageSync = (key: string) => {\n if (typeof key !== 'string') {\n console.error(getParameterError({\n name: 'removeStorage',\n correct: 'String',\n wrong: key\n }))\n return\n }\n\n localStorage.removeItem(key)\n}\n\nexport const removeStorage: typeof Taro.removeStorage = (options: Taro.removeStorage.Option) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `removeStorage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n const { key, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'removeStorage', success, fail, complete })\n\n if (typeof key !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'key',\n correct: 'String',\n wrong: key\n })\n })\n }\n\n removeStorageSync(key)\n return handle.success()\n}\n\nexport const getStorageSync: typeof Taro.getStorageSync = (key) => {\n if (typeof key !== 'string') {\n console.error(getParameterError({\n name: 'getStorageSync',\n correct: 'String',\n wrong: key\n }))\n return\n }\n\n const res = getItem(key)\n if (res.result) return res.data\n\n return ''\n}\n\nexport const getStorageInfoSync: typeof Taro.getStorageInfoSync = () => {\n const res: Taro.getStorageInfoSync.Option = {\n keys: Object.keys(localStorage),\n limitSize: NaN,\n currentSize: NaN\n }\n return res\n}\n\nexport const getStorageInfo: typeof Taro.getStorageInfo = ({ success, fail, complete } = {}) => {\n const handle = new MethodHandler<Taro.getStorageInfo.SuccessCallbackOption>({ name: 'getStorageInfo', success, fail, complete })\n return handle.success(getStorageInfoSync())\n}\n\nexport const getStorage: typeof Taro.getStorage = <T>(options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `getStorage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { key, success, fail, complete } = options\n const handle = new MethodHandler<Taro.getStorage.SuccessCallbackResult<T>>({ name: 'getStorage', success, fail, complete })\n\n if (typeof key !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'key',\n correct: 'String',\n wrong: key\n })\n })\n }\n\n const { result, data } = getItem(key)\n if (result) {\n return handle.success({ data })\n } else {\n return handle.fail({\n errMsg: 'data not found'\n })\n }\n}\n\nexport const createBufferURL = /* @__PURE__ */ temporarilyNotSupport('createBufferURL')\n\nexport const clearStorageSync: typeof Taro.clearStorageSync = () => {\n localStorage.clear()\n}\n\nexport const clearStorage: typeof Taro.clearStorage = ({ success, fail, complete } = {}) => {\n const handle = new MethodHandler({ name: 'clearStorage', success, fail, complete })\n clearStorageSync()\n return handle.success()\n}\n\nexport const batchSetStorageSync = /* @__PURE__ */ temporarilyNotSupport('batchSetStorageSync')\nexport const batchSetStorage = /* @__PURE__ */ temporarilyNotSupport('batchSetStorage')\nexport const batchGetStorageSync = /* @__PURE__ */ temporarilyNotSupport('batchGetStorageSync')\nexport const batchGetStorage = /* @__PURE__ */ temporarilyNotSupport('batchGetStorage')\n\nexport * from './background-fetch'\nexport * from './cache-manager'","import { inlineStyle, setTransform } from '../../../utils'\n\nconst noop = function () {}\n\nexport default class ActionSheet {\n options = {\n alertText: '',\n itemList: [],\n itemColor: '#000000',\n success: noop,\n fail: noop,\n complete: noop,\n }\n\n style = {\n maskStyle: {\n position: 'fixed',\n 'z-index': '1000',\n top: '0',\n right: '0',\n left: '0',\n bottom: '0',\n background: 'rgba(0,0,0,0.6)',\n },\n actionSheetStyle: {\n 'z-index': '4999',\n position: 'fixed',\n left: '0',\n bottom: '0',\n '-webkit-transform': 'translate(0, 100%)',\n transform: 'translate(0, 100%)',\n width: '100%',\n 'line-height': '1.6',\n background: '#EFEFF4',\n '-webkit-transition': '-webkit-transform .3s',\n transition: 'transform .3s',\n 'border-radius': '15px 15px 0 0',\n },\n menuStyle: {\n 'background-color': '#FCFCFD',\n 'border-radius': '15px 15px 0 0',\n },\n cellStyle: {\n position: 'relative',\n padding: '10px 0',\n 'text-align': 'center',\n 'font-size': '18px',\n },\n titleStyle: {\n position: 'relative',\n padding: '10px 0',\n 'text-align': 'center',\n 'font-size': '16px',\n color: 'rgba(0,0,0,0.8)',\n display: 'none',\n },\n cancelStyle: {\n 'margin-top': '6px',\n padding: '10px 0',\n 'text-align': 'center',\n 'font-size': '18px',\n color: '#000000',\n 'background-color': '#FCFCFD',\n },\n }\n\n lastConfig = {}\n el: HTMLDivElement\n mask: HTMLDivElement\n actionSheet: HTMLDivElement\n menu: HTMLDivElement\n cells: HTMLDivElement[]\n title: HTMLDivElement\n cancel: HTMLDivElement\n hideOpacityTimer: ReturnType<typeof setTimeout>\n hideDisplayTimer: ReturnType<typeof setTimeout>\n\n create (options = {}) {\n return new Promise<string | number>((resolve) => {\n // style\n const { maskStyle, actionSheetStyle, menuStyle, cellStyle, titleStyle, cancelStyle } = this.style\n\n // configuration\n const config = {\n ...this.options,\n ...options,\n }\n\n this.lastConfig = config\n\n // wrapper\n this.el = document.createElement('div')\n this.el.className = 'taro__actionSheet'\n this.el.style.opacity = '0'\n this.el.style.transition = 'opacity 0.2s linear'\n\n // mask\n this.mask = document.createElement('div')\n this.mask.setAttribute('style', inlineStyle(maskStyle))\n\n // actionSheet\n this.actionSheet = document.createElement('div')\n this.actionSheet.setAttribute('style', inlineStyle(actionSheetStyle))\n\n // menu\n this.menu = document.createElement('div')\n this.menu.setAttribute(\n 'style',\n inlineStyle({\n ...menuStyle,\n color: config.itemColor,\n })\n )\n\n // cells\n this.cells = config.itemList.map((item, index) => {\n const cell: HTMLDivElement = document.createElement('div')\n cell.className = 'taro-actionsheet__cell'\n cell.setAttribute('style', inlineStyle(cellStyle))\n cell.textContent = item\n cell.dataset.tapIndex = `${index}`\n cell.onclick = (e) => {\n this.hide()\n const target = e.currentTarget as HTMLDivElement\n const index = Number(target?.dataset.tapIndex) || 0\n resolve(index)\n }\n return cell\n })\n\n // title\n this.title = document.createElement('div')\n this.title.setAttribute('style', inlineStyle(titleStyle))\n this.title.className = 'taro-actionsheet__cell'\n this.title.textContent = config.alertText\n this.title.style.display = config.alertText ? 'block' : 'none'\n\n // cancel\n this.cancel = document.createElement('div')\n this.cancel.setAttribute('style', inlineStyle(cancelStyle))\n this.cancel.textContent = '取消'\n\n // result\n this.menu.appendChild(this.title)\n this.cells.forEach((item) => this.menu.appendChild(item))\n this.actionSheet.appendChild(this.menu)\n this.actionSheet.appendChild(this.cancel)\n this.el.appendChild(this.mask)\n this.el.appendChild(this.actionSheet)\n\n // callbacks\n const cb = () => {\n this.hide()\n resolve('cancel')\n }\n this.mask.onclick = cb\n this.cancel.onclick = cb\n\n // show immediately\n document.body.appendChild(this.el)\n setTimeout(() => {\n this.el.style.opacity = '1'\n setTransform(this.actionSheet, 'translate(0, 0)')\n }, 0)\n })\n }\n\n show (options = {}) {\n return new Promise<string | number>((resolve) => {\n const config = {\n ...this.options,\n ...options,\n }\n\n this.lastConfig = config\n\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n // itemColor\n if (config.itemColor) this.menu.style.color = config.itemColor\n\n // cells\n const { cellStyle } = this.style\n\n config.itemList.forEach((item, index) => {\n let cell: HTMLDivElement\n if (this.cells[index]) {\n // assign new content\n cell = this.cells[index]\n } else {\n // create new cell\n cell = document.createElement('div')\n cell.className = 'taro-actionsheet__cell'\n cell.setAttribute('style', inlineStyle(cellStyle))\n cell.dataset.tapIndex = `${index}`\n this.cells.push(cell)\n this.menu.appendChild(cell)\n }\n cell.textContent = item\n cell.onclick = (e) => {\n this.hide()\n const target = e.currentTarget as HTMLDivElement\n const index = Number(target?.dataset.tapIndex) || 0\n resolve(index)\n }\n })\n const cellsLen = this.cells.length\n const itemListLen = config.itemList.length\n if (cellsLen > itemListLen) {\n for (let i = itemListLen; i < cellsLen; i++) {\n this.menu.removeChild(this.cells[i])\n }\n this.cells.splice(itemListLen)\n }\n this.title.textContent = config.alertText\n this.title.style.display = config.alertText ? 'block' : 'none'\n\n // callbacks\n const cb = () => {\n this.hide()\n resolve('cancel')\n }\n this.mask.onclick = cb\n this.cancel.onclick = cb\n\n // show\n this.el.style.display = 'block'\n setTimeout(() => {\n this.el.style.opacity = '1'\n setTransform(this.actionSheet, 'translate(0, 0)')\n }, 0)\n })\n }\n\n hide () {\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n this.hideOpacityTimer = setTimeout(() => {\n this.el.style.opacity = '0'\n setTransform(this.actionSheet, 'translate(0, 100%)')\n this.hideDisplayTimer = setTimeout(() => {\n this.el.style.display = 'none'\n }, 200)\n }, 0)\n }\n}\n","import { Current } from '@tarojs/runtime'\n\nimport { getCurrentPath, inlineStyle } from '../../../utils'\n\nexport default class Modal {\n options = {\n title: '',\n content: '',\n showCancel: true,\n cancelText: '取消',\n cancelColor: '#000000',\n confirmText: '确定',\n confirmColor: '#3CC51F'\n }\n\n style = {\n maskStyle: {\n position: 'fixed',\n 'z-index': '1000',\n top: '0',\n right: '0',\n left: '0',\n bottom: '0',\n background: 'rgba(0,0,0,0.6)'\n },\n modalStyle: {\n 'z-index': '4999',\n position: 'fixed',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: '80%',\n 'max-width': '300px',\n 'border-radius': '3px',\n 'text-align': 'center',\n 'line-height': '1.6',\n overflow: 'hidden',\n background: '#FFFFFF'\n },\n titleStyle: {\n padding: '20px 24px 9px',\n 'font-size': '18px'\n },\n textStyle: {\n padding: '0 24px 12px',\n 'min-height': '40px',\n 'font-size': '15px',\n 'line-height': '1.3',\n color: '#808080',\n 'word-wrap': 'break-word',\n 'word-break': 'break-all',\n },\n footStyle: {\n position: 'relative',\n 'line-height': '48px',\n 'font-size': '18px',\n display: 'flex'\n },\n btnStyle: {\n position: 'relative',\n '-webkit-box-flex': '1',\n '-webkit-flex': '1',\n flex: '1'\n }\n }\n\n currentPath: string | null\n el: HTMLDivElement\n title: HTMLDivElement\n text: HTMLDivElement\n cancel: HTMLDivElement\n confirm: HTMLDivElement\n hideOpacityTimer: ReturnType<typeof setTimeout>\n hideDisplayTimer: ReturnType<typeof setTimeout>\n\n create (options = {}) {\n return new Promise<string>((resolve) => {\n // style\n const { maskStyle, modalStyle, titleStyle, textStyle, footStyle, btnStyle } = this.style\n\n // configuration\n const config = {\n ...this.options,\n ...options\n }\n\n // wrapper\n this.el = document.createElement('div')\n this.el.className = 'taro__modal'\n this.el.style.opacity = '0'\n this.el.style.transition = 'opacity 0.2s linear'\n\n const eventHandler = (e) => {\n e.stopPropagation()\n e.preventDefault()\n }\n // mask\n const mask = document.createElement('div')\n mask.className = 'taro-modal__mask'\n mask.setAttribute('style', inlineStyle(maskStyle))\n mask.ontouchmove = eventHandler\n // modal\n const modal = document.createElement('div')\n modal.className = 'taro-modal__content'\n modal.setAttribute('style', inlineStyle(modalStyle))\n modal.ontouchmove = eventHandler\n\n // title\n const titleCSS = config.title ? titleStyle : {\n ...titleStyle,\n display: 'none'\n }\n this.title = document.createElement('div')\n\n this.title.className = 'taro-modal__title'\n this.title.setAttribute('style', inlineStyle(titleCSS))\n this.title.textContent = config.title\n\n // text\n const textCSS = config.title ? textStyle : {\n ...textStyle,\n padding: '40px 20px 26px',\n color: '#353535'\n }\n this.text = document.createElement('div')\n this.text.className = 'taro-modal__text'\n this.text.setAttribute('style', inlineStyle(textCSS))\n this.text.textContent = config.content\n\n // foot\n const foot = document.createElement('div')\n foot.className = 'taro-modal__foot'\n foot.setAttribute('style', inlineStyle(footStyle))\n\n // cancel button\n const cancelCSS = {\n ...btnStyle,\n color: config.cancelColor,\n display: config.showCancel ? 'block' : 'none'\n }\n this.cancel = document.createElement('div')\n this.cancel.className = 'taro-model__btn taro-model__cancel'\n this.cancel.setAttribute('style', inlineStyle(cancelCSS))\n this.cancel.textContent = config.cancelText\n this.cancel.onclick = () => {\n this.hide()\n resolve('cancel')\n }\n\n // confirm button\n this.confirm = document.createElement('div')\n this.confirm.className = 'taro-model__btn taro-model__confirm'\n this.confirm.setAttribute('style', inlineStyle(btnStyle))\n this.confirm.style.color = config.confirmColor\n this.confirm.textContent = config.confirmText\n this.confirm.onclick = () => {\n this.hide()\n resolve('confirm')\n }\n\n // result\n foot.appendChild(this.cancel)\n foot.appendChild(this.confirm)\n modal.appendChild(this.title)\n modal.appendChild(this.text)\n modal.appendChild(foot)\n this.el.appendChild(mask)\n this.el.appendChild(modal)\n\n // show immediately\n document.body.appendChild(this.el)\n setTimeout(() => { this.el.style.opacity = '1' }, 0)\n\n // Current.page不存在时说明路由还未挂载,此时需根据url来分配将要渲染的页面path\n this.currentPath = Current.page?.path ?? getCurrentPath()\n })\n }\n\n show (options = {}) {\n return new Promise<string>((resolve) => {\n const config = {\n ...this.options,\n ...options\n }\n\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n // title & text\n const { textStyle } = this.style\n\n if (config.title) {\n this.title.textContent = config.title\n // none => block\n this.title.style.display = 'block'\n this.text.setAttribute('style', inlineStyle(textStyle))\n } else {\n this.title.textContent = ''\n // block => none\n this.title.style.display = 'none'\n const textCSS = {\n ...textStyle,\n padding: '40px 20px 26px',\n color: '#353535'\n }\n this.text.setAttribute('style', inlineStyle(textCSS))\n }\n\n this.text.textContent = config.content || ''\n\n // showCancel\n this.cancel.style.display = config.showCancel ? 'block' : 'none'\n\n // cancelText\n this.cancel.textContent = config.cancelText || ''\n\n // cancelColor\n this.cancel.style.color = config.cancelColor || ''\n\n // confirmText\n this.confirm.textContent = config.confirmText || ''\n\n // confirmColor\n this.confirm.style.color = config.confirmColor || ''\n\n // cbs\n this.cancel.onclick = () => {\n this.hide()\n resolve('cancel')\n }\n this.confirm.onclick = () => {\n this.hide()\n resolve('confirm')\n }\n\n // show\n this.el.style.display = 'block'\n setTimeout(() => { this.el.style.opacity = '1' }, 0)\n\n // Current.page不存在时说明路由还未挂载,此时需根据url来分配将要渲染的页面path\n this.currentPath = Current.page?.path ?? getCurrentPath()\n })\n }\n\n hide () {\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n this.currentPath = null\n\n this.hideOpacityTimer = setTimeout(() => {\n this.el.style.opacity = '0'\n this.hideDisplayTimer = setTimeout(() => { this.el.style.display = 'none' }, 200)\n }, 0)\n }\n}\n","import { Current } from '@tarojs/runtime'\n\nimport { getCurrentPath, inlineStyle } from '../../../utils'\n\nexport default class Toast {\n options = {\n title: '',\n icon: 'none',\n image: '',\n duration: 1500,\n mask: false\n }\n\n style = {\n maskStyle: {\n position: 'fixed',\n 'z-index': '1000',\n top: '0',\n right: '0',\n left: '0',\n bottom: '0'\n },\n toastStyle: {\n 'z-index': '5000',\n 'box-sizing': 'border-box',\n display: 'flex',\n 'flex-direction': 'column',\n 'justify-content': 'center',\n '-webkit-justify-content': 'center',\n position: 'fixed',\n top: '50%',\n left: '50%',\n 'min-width': '120px',\n 'max-width': '200px',\n 'min-height': '120px',\n padding: '15px',\n transform: 'translate(-50%, -50%)',\n 'border-radius': '5px',\n 'text-align': 'center',\n 'line-height': '1.6',\n color: '#FFFFFF',\n background: 'rgba(17, 17, 17, 0.7)'\n },\n successStyle: {\n margin: '6px auto',\n width: '38px',\n height: '38px',\n background: 'transparent url(data:image/svg+xml;base64,PHN2ZyB0PSIxNjM5NTQ4OTYzMjA0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQzNDgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cGF0aCBkPSJNMjE5Ljk1MiA1MTIuNTc2bDIxMC40MzIgMjEwLjQzMi00NS4yNDggNDUuMjU2LTIxMC40MzItMjEwLjQzMnoiIHAtaWQ9IjQzNDkiIGZpbGw9IiNmZmZmZmYiPjwvcGF0aD48cGF0aCBkPSJNNzk5LjY3MiAyNjIuMjY0bDQ1LjI1NiA0NS4yNTYtNDYwLjQ2NCA0NjAuNDY0LTQ1LjI1Ni00NS4yNTZ6IiBwLWlkPSI0MzUwIiBmaWxsPSIjZmZmZmZmIj48L3BhdGg+PC9zdmc+) no-repeat',\n 'background-size': '100%'\n },\n errrorStyle: {\n margin: '6px auto',\n width: '38px',\n height: '38px',\n background: 'transparent url(data:image/svg+xml;base64,PHN2ZyB0PSIxNjM5NTUxMDU1MTgzIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE0MDc2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNTggNjQgNjQgMjY0LjU4IDY0IDUxMnMyMDAuNTggNDQ4IDQ0OCA0NDggNDQ4LTIwMC41OCA0NDgtNDQ4Uzc1OS40MiA2NCA1MTIgNjR6IG0wIDc1MmEzNiAzNiAwIDEgMSAzNi0zNiAzNiAzNiAwIDAgMS0zNiAzNnogbTUxLjgzLTU1MS45NUw1NDggNjM2YTM2IDM2IDAgMCAxLTcyIDBsLTE1LjgzLTM3MS45NWMtMC4xLTEuMzMtMC4xNy0yLjY4LTAuMTctNC4wNWE1MiA1MiAwIDAgMSAxMDQgMGMwIDEuMzctMC4wNyAyLjcyLTAuMTcgNC4wNXoiIHAtaWQ9IjE0MDc3IiBmaWxsPSIjZmZmZmZmIj48L3BhdGg+PC9zdmc+) no-repeat',\n 'background-size': '100%'\n },\n loadingStyle: {\n margin: '6px auto',\n width: '38px',\n height: '38px',\n '-webkit-animation': 'taroLoading 1s steps(12, end) infinite',\n animation: 'taroLoading 1s steps(12, end) infinite',\n background: 'transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat',\n 'background-size': '100%'\n },\n imageStyle: {\n margin: '6px auto',\n width: '40px',\n height: '40px',\n background: 'transparent no-repeat',\n 'background-size': '100%'\n },\n textStyle: {\n margin: '0',\n 'font-size': '16px'\n }\n }\n\n currentPath: string | null\n el: HTMLDivElement\n mask: HTMLDivElement\n icon: HTMLParagraphElement\n toast: HTMLDivElement\n title: HTMLParagraphElement\n type: any\n hideOpacityTimer: ReturnType<typeof setTimeout>\n hideDisplayTimer: ReturnType<typeof setTimeout>\n\n create (options = {}, _type: 'loading' | 'toast' = 'toast') {\n // style\n const { maskStyle, toastStyle, successStyle, errrorStyle, loadingStyle, imageStyle, textStyle } = this.style\n\n // configuration\n const config = {\n ...this.options,\n ...options,\n _type\n }\n\n // wrapper\n this.el = document.createElement('div')\n this.el.className = 'taro__toast'\n this.el.style.opacity = '0'\n this.el.style.transition = 'opacity 0.1s linear'\n this.el.ontouchmove = (e) => {\n e.stopPropagation()\n e.preventDefault()\n }\n\n // mask\n this.mask = document.createElement('div')\n this.mask.setAttribute('style', inlineStyle(maskStyle))\n this.mask.style.display = config.mask ? 'block' : 'none'\n\n // icon\n this.icon = document.createElement('p')\n if (config.image) {\n this.icon.setAttribute('style', inlineStyle({\n ...imageStyle,\n 'background-image': `url(${config.image})`\n }))\n } else {\n const iconStyle = config.icon === 'loading' ? loadingStyle : config.icon === 'error' ? errrorStyle : successStyle\n this.icon.setAttribute('style', inlineStyle({\n ...iconStyle,\n ...(config.icon === 'none' ? { display: 'none' } : {})\n }))\n }\n\n // toast\n this.toast = document.createElement('div')\n this.toast.setAttribute('style', inlineStyle({\n ...toastStyle,\n ...(config.icon === 'none' ? {\n 'min-height': '0',\n padding: '10px 15px'\n } : {})\n }))\n\n // title\n this.title = document.createElement('p')\n this.title.setAttribute('style', inlineStyle(textStyle))\n this.title.textContent = config.title\n\n // result\n this.toast.appendChild(this.icon)\n this.toast.appendChild(this.title)\n this.el.appendChild(this.mask)\n this.el.appendChild(this.toast)\n\n // show immediately\n document.body.appendChild(this.el)\n setTimeout(() => { this.el.style.opacity = '1' }, 0)\n this.type = config._type\n\n // disappear after duration\n config.duration >= 0 && this.hide(config.duration, this.type)\n\n // Current.page不存在时说明路由还未挂载,此时需根据url来分配将要渲染的页面path\n this.currentPath = Current.page?.path ?? getCurrentPath()\n\n return ''\n }\n\n show (options = {}, _type: 'loading' | 'toast' = 'toast') {\n const config = {\n ...this.options,\n ...options,\n _type\n }\n\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n // title\n this.title.textContent = config.title || ''\n\n // mask\n this.mask.style.display = config.mask ? 'block' : 'none'\n\n // image\n const { toastStyle, successStyle, errrorStyle, loadingStyle, imageStyle } = this.style\n if (config.image) {\n this.icon.setAttribute('style', inlineStyle({\n ...imageStyle,\n 'background-image': `url(${config.image})`\n }))\n } else {\n if (!config.image && config.icon) {\n const iconStyle = config.icon === 'loading' ? loadingStyle : config.icon === 'error' ? errrorStyle : successStyle\n this.icon.setAttribute('style', inlineStyle({\n ...iconStyle,\n ...(config.icon === 'none' ? { display: 'none' } : {})\n }))\n }\n }\n\n // toast\n this.toast.setAttribute('style', inlineStyle({\n ...toastStyle,\n ...(config.icon === 'none' ? {\n 'min-height': '0',\n padding: '10px 15px'\n } : {})\n }))\n\n // show\n this.el.style.display = 'block'\n setTimeout(() => { this.el.style.opacity = '1' }, 0)\n this.type = config._type\n\n // disappear after duration\n config.duration >= 0 && this.hide(config.duration, this.type)\n\n // Current.page不存在时说明路由还未挂载,此时需根据url来分配将要渲染的页面path\n this.currentPath = Current.page?.path ?? getCurrentPath()\n\n return ''\n }\n\n hide (duration = 0, type = '') {\n if (type && type !== this.type) return\n\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n this.currentPath = null\n\n this.hideOpacityTimer = setTimeout(() => {\n this.el.style.opacity = '0'\n this.hideDisplayTimer = setTimeout(() => { this.el.style.display = 'none' }, 100)\n }, duration)\n }\n}\n","import Taro from '@tarojs/api'\nimport { Current } from '@tarojs/runtime'\n\nimport { getParameterError, temporarilyNotSupport } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\nimport ActionSheet from './actionSheet'\nimport Modal from './modal'\nimport Toast from './toast'\n\n// 交互\n\nlet status = 'default'\n\n// inject necessary style\nfunction init (doc) {\n if (status === 'ready') return\n\n const taroStyle = doc.createElement('style')\n taroStyle.textContent =\n '@font-face{font-weight:normal;font-style:normal;font-family:\"taro\";src:url(\"data:application/x-font-ttf;charset=utf-8;base64, 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\") format(\"truetype\");}@-webkit-keyframes taroLoading{0%{-webkit-transform:rotate3d(0, 0, 1, 0deg);}100%{-webkit-transform:rotate3d(0, 0, 1, 360deg);transform:rotate3d(0, 0, 1, 360deg);}}@keyframes taroLoading{0%{-webkit-transform:rotate3d(0, 0, 1, 0deg);}100%{-webkit-transform:rotate3d(0, 0, 1, 360deg);transform:rotate3d(0, 0, 1, 360deg);}}.taro-modal__foot:after {content: \"\";position: absolute;left: 0;top: 0;right: 0;height: 1px;border-top: 1px solid #D5D5D6;color: #D5D5D6;-webkit-transform-origin: 0 0;transform-origin: 0 0;-webkit-transform: scaleY(0.5);transform: scaleY(0.5);} .taro-model__btn:active {background-color: #EEEEEE}.taro-model__btn:not(:first-child):after {content: \"\";position: absolute;left: 0;top: 0;width: 1px;bottom: 0;border-left: 1px solid #D5D5D6;color: #D5D5D6;-webkit-transform-origin: 0 0;transform-origin: 0 0;-webkit-transform: scaleX(0.5);transform: scaleX(0.5);}.taro-actionsheet__cell:not(:last-child):after {content: \"\";position: absolute;left: 0;bottom: 0;right: 0;height: 1px;border-top: 1px solid #e5e5e5;color: #e5e5e5;-webkit-transform-origin: 0 0;transform-origin: 0 0;-webkit-transform: scaleY(0.5);transform: scaleY(0.5);}'\n doc.querySelector('head').appendChild(taroStyle)\n\n status = 'ready'\n}\n\nconst toast = new Toast()\nconst modal = new Modal()\nconst actionSheet = new ActionSheet()\n\nconst showToast: typeof Taro.showToast = (options = { title: '' }) => {\n init(document)\n options = Object.assign({\n title: '',\n icon: 'success',\n image: '',\n duration: 1500,\n mask: false\n }, options)\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'showToast', success, fail, complete })\n\n if (typeof options.title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: options.title\n })\n })\n }\n\n if (typeof options.duration !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'duration',\n correct: 'Number',\n wrong: options.duration\n })\n })\n }\n\n if (options.image && typeof options.image !== 'string') options.image = ''\n\n options.mask = !!options.mask\n\n let errMsg = ''\n if (!toast.el) {\n errMsg = toast.create(options, 'toast')\n } else {\n errMsg = toast.show(options, 'toast')\n }\n return handle.success({ errMsg })\n}\n\nconst hideToast: typeof Taro.hideToast = ({ noConflict = false, success, fail, complete } = {}) => {\n const handle = new MethodHandler({ name: 'hideToast', success, fail, complete })\n if (!toast.el) return handle.success()\n toast.hide(0, noConflict ? 'toast' : '')\n return handle.success()\n}\n\nconst showLoading: typeof Taro.showLoading = (options = { title: '' }) => {\n init(document)\n options = Object.assign({\n title: '',\n mask: false\n }, options)\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'showLoading', success, fail, complete })\n\n const config = {\n icon: 'loading',\n image: '',\n duration: -1\n }\n\n options = Object.assign({}, options, config)\n\n if (typeof options.title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: options.title\n })\n })\n }\n\n options.mask = !!options.mask\n\n let errMsg = ''\n if (!toast.el) {\n errMsg = toast.create(options, 'loading')\n } else {\n errMsg = toast.show(options, 'loading')\n }\n return handle.success({ errMsg })\n}\n\nconst hideLoading: typeof Taro.hideLoading = ({ noConflict = false, success, fail, complete } = {}) => {\n const handle = new MethodHandler({ name: 'hideLoading', success, fail, complete })\n if (!toast.el) return handle.success()\n toast.hide(0, noConflict ? 'loading' : '')\n return handle.success()\n}\n\nconst showModal: typeof Taro.showModal = async (options = {}) => {\n init(document)\n options = Object.assign({\n title: '',\n content: '',\n showCancel: true,\n cancelText: '取消',\n cancelColor: '#000000',\n confirmText: '确定',\n confirmColor: '#3CC51F'\n }, options)\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'showModal', success, fail, complete })\n\n if (typeof options.title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: options.title\n })\n })\n }\n\n if (typeof options.content !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'content',\n correct: 'String',\n wrong: options.content\n })\n })\n }\n\n if (typeof options.cancelText !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'cancelText',\n correct: 'String',\n wrong: options.cancelText\n })\n })\n }\n\n if (options.cancelText.replace(/[\\u0391-\\uFFE5]/g, 'aa').length > 8) {\n return handle.fail({\n errMsg: 'cancelText length should not larger then 4 Chinese characters'\n })\n }\n\n if (typeof options.confirmText !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'confirmText',\n correct: 'String',\n wrong: options.confirmText\n })\n })\n }\n\n if (options.confirmText.replace(/[\\u0391-\\uFFE5]/g, 'aa').length > 8) {\n return handle.fail({\n errMsg: 'confirmText length should not larger then 4 Chinese characters'\n })\n }\n\n if (typeof options.cancelColor !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'cancelColor',\n correct: 'String',\n wrong: options.cancelColor\n })\n })\n }\n\n if (typeof options.confirmColor !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'confirmColor',\n correct: 'String',\n wrong: options.confirmColor\n })\n })\n }\n\n options.showCancel = !!options.showCancel\n\n let result = ''\n if (!modal.el) {\n result = await modal.create(options)\n } else {\n result = await modal.show(options)\n }\n const res = { cancel: !1, confirm: !1 }\n res[result] = !0\n return handle.success(res)\n}\n\nfunction hideModal () {\n if (!modal.el) return\n modal.hide()\n}\n\nconst showActionSheet = async (\n options: Taro.showActionSheet.Option = { itemList: [] },\n methodName = 'showActionSheet'\n): Promise<Taro.showActionSheet.SuccessCallbackResult> => {\n init(document)\n options = Object.assign({\n itemColor: '#000000',\n itemList: []\n }, options)\n const { success, fail, complete } = options\n const handle = new MethodHandler<Taro.showActionSheet.SuccessCallbackResult>({ name: methodName, success, fail, complete })\n\n // list item String\n if (!Array.isArray(options.itemList)) {\n return handle.fail({\n errMsg: getParameterError({\n para: 'itemList',\n correct: 'Array',\n wrong: options.itemList\n })\n })\n }\n\n if (options.itemList.length < 1) {\n return handle.fail({ errMsg: 'parameter error: parameter.itemList should have at least 1 item' })\n }\n\n if (options.itemList.length > 6) {\n return handle.fail({ errMsg: 'parameter error: parameter.itemList should not be large than 6' })\n }\n\n for (let i = 0; i < options.itemList.length; i++) {\n if (typeof options.itemList[i] !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: `itemList[${i}]`,\n correct: 'String',\n wrong: options.itemList[i]\n })\n })\n }\n }\n\n if (typeof options.itemColor !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'itemColor',\n correct: 'String',\n wrong: options.itemColor\n })\n })\n }\n\n let result: number | string = ''\n if (!actionSheet.el) {\n result = await actionSheet.create(options)\n } else {\n result = await actionSheet.show(options)\n }\n\n if (typeof result === 'string') {\n return handle.fail(({ errMsg: result }))\n } else {\n return handle.success(({ tapIndex: result }))\n }\n}\n\nTaro.eventCenter.on('__afterTaroRouterChange', () => {\n if (toast.currentPath && toast.currentPath !== Current.page?.path) {\n hideToast()\n hideLoading()\n }\n\n if (modal.currentPath && modal.currentPath !== Current.page?.path) {\n hideModal()\n }\n})\n\nconst enableAlertBeforeUnload = /* @__PURE__ */ temporarilyNotSupport('enableAlertBeforeUnload')\nconst disableAlertBeforeUnload = /* @__PURE__ */ temporarilyNotSupport('disableAlertBeforeUnload')\n\nexport { disableAlertBeforeUnload, enableAlertBeforeUnload, hideLoading, hideToast, showActionSheet, showLoading, showModal, showToast }\n","/**\r\n * 剪贴板部分的api参考了Chameleon项目的实现:\r\n *\r\n * setClipboardData: https://github.com/chameleon-team/chameleon-api/tree/master/src/interfaces/setClipBoardData\r\n * getClipboardData: https://github.com/chameleon-team/chameleon-api/tree/master/src/interfaces/getClipBoardData\r\n */\r\n\r\nimport Taro from '@tarojs/api'\r\nimport { isFunction } from '@tarojs/shared'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\nimport { getStorageSync, setStorage, setStorageSync } from '../storage/index'\r\nimport { showToast } from '../ui/interaction'\r\n\r\nconst CLIPBOARD_STORAGE_NAME = 'taro_clipboard'\r\n\r\ndocument.addEventListener('copy', () => {\r\n setStorage({\r\n key: CLIPBOARD_STORAGE_NAME,\r\n data: window.getSelection()?.toString()\r\n }).catch(e => {\r\n console.error(e)\r\n })\r\n})\r\n\r\n/**\r\n * 设置系统剪贴板的内容\r\n */\r\nexport const setClipboardData: typeof Taro.setClipboardData = async ({ data, success, fail, complete }) => {\r\n const handle = new MethodHandler({ name: 'setClipboardData', success, fail, complete })\r\n try {\r\n setStorageSync(CLIPBOARD_STORAGE_NAME, data)\r\n /**\r\n * 已于 iPhone 6s Plus iOS 13.1.3 上的 Safari 测试通过\r\n * iOS < 10 的系统可能无法使用编程方式访问剪贴板,参考:\r\n * https://stackoverflow.com/questions/34045777/copy-to-clipboard-using-javascript-in-ios/34046084\r\n */\r\n if (isFunction(document.execCommand)) {\r\n const textarea = document.createElement('textarea')\r\n textarea.readOnly = true\r\n textarea.value = data\r\n textarea.style.position = 'absolute'\r\n textarea.style.width = '100px'\r\n textarea.style.left = '-10000px'\r\n document.body.appendChild(textarea)\r\n textarea.select()\r\n textarea.setSelectionRange(0, textarea.value.length)\r\n document.execCommand('copy')\r\n document.body.removeChild(textarea)\r\n } else {\r\n throw new Error('Unsupported Function: \\'document.execCommand\\'.')\r\n }\r\n showToast({\r\n title: '内容已复制',\r\n icon: 'none',\r\n duration: 1500\r\n })\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 获取系统剪贴板的内容\r\n */\r\nexport const getClipboardData: typeof Taro.getClipboardData = async ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler<Taro.getClipboardData.SuccessCallbackOption>({ name: 'getClipboardData', success, fail, complete })\r\n try {\r\n const data: string = getStorageSync(CLIPBOARD_STORAGE_NAME)\r\n return handle.success({ data })\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n","import Taro from '@tarojs/api'\r\nimport throttle from 'lodash-es/throttle'\r\n\r\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\r\nimport { getDeviceInfo } from '../base/system'\r\n\r\nconst callbackManager = new CallbackManager()\r\nlet compassListener\r\n\r\n/**\r\n * Note: 按系统类型获取对应绝对 orientation 事件名,因为安卓系统中直接监听 deviceorientation 事件得到的不是绝对 orientation\r\n */\r\nconst deviceorientationEventName = ['absolutedeviceorientation', 'deviceorientationabsolute', 'deviceorientation'].find(item => {\r\n if ('on' + item in window) {\r\n return item\r\n }\r\n}) || ''\r\n\r\n/**\r\n * 停止监听罗盘数据\r\n */\r\nexport const stopCompass: typeof Taro.stopCompass = ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'stopCompass', success, fail, complete })\r\n try {\r\n window.removeEventListener(deviceorientationEventName, compassListener, true)\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\nlet CompassChangeTrigger = false\r\n/**\r\n * 开始监听罗盘数据\r\n */\r\nexport const startCompass: typeof Taro.startCompass = ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'startCompass', success, fail, complete })\r\n try {\r\n if (deviceorientationEventName !== '') {\r\n if (compassListener) {\r\n stopCompass()\r\n }\r\n compassListener = throttle((evt: DeviceOrientationEvent) => {\r\n const isAndroid = getDeviceInfo().system === 'AndroidOS'\r\n if (isAndroid && !evt.absolute && !CompassChangeTrigger) {\r\n CompassChangeTrigger = true\r\n console.warn('Warning: In \\'onCompassChange\\', your browser is not supported to get the orientation relative to the earth, the orientation data will be related to the initial orientation of the device .')\r\n }\r\n const alpha = evt.alpha || 0\r\n /**\r\n * 由于平台差异,accuracy 在 iOS/Android 的值不同。\r\n * - iOS:accuracy 是一个 number 类型的值,表示相对于磁北极的偏差。0 表示设备指向磁北,90 表示指向东,180 表示指向南,依此类推。\r\n * - Android:accuracy 是一个 string 类型的枚举值。\r\n */\r\n const accuracy = isAndroid ? evt.absolute ? 'high' : 'medium' : alpha\r\n callbackManager.trigger({\r\n direction: 360 - alpha,\r\n accuracy: accuracy\r\n } as unknown as Parameters<typeof Taro.onCompassChange>[number])\r\n }, 5000)\r\n window.addEventListener(deviceorientationEventName, compassListener, true)\r\n } else {\r\n throw new Error('compass is not supported')\r\n }\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 监听罗盘数据变化事件。频率:5 次/秒,接口调用后会自动开始监听,可使用 wx.stopCompass 停止监听。\r\n */\r\nexport const onCompassChange: typeof Taro.onCompassChange = callback => {\r\n callbackManager.add(callback)\r\n}\r\n\r\n/**\r\n * 取消监听罗盘数据变化事件,参数为空,则取消所有的事件监听。\r\n */\r\nexport const offCompassChange: typeof Taro.offCompassChange = callback => {\r\n callbackManager.remove(callback)\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// 联系人\nexport const chooseContact = /* @__PURE__ */ temporarilyNotSupport('chooseContact')\nexport const addPhoneContact = /* @__PURE__ */ temporarilyNotSupport('addPhoneContact')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 加密\nexport const getRandomValues = /* @__PURE__ */ temporarilyNotSupport('getRandomValues')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 陀螺仪\nexport const stopGyroscope = /* @__PURE__ */ temporarilyNotSupport('stopGyroscope')\nexport const startGyroscope = /* @__PURE__ */ temporarilyNotSupport('startGyroscope')\nexport const onGyroscopeChange = /* @__PURE__ */ temporarilyNotSupport('onGyroscopeChange')\nexport const offGyroscopeChange = /* @__PURE__ */ temporarilyNotSupport('offGyroscopeChange')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 蓝牙-信标(Beacon)\nexport const stopBeaconDiscovery = /* @__PURE__ */ temporarilyNotSupport('stopBeaconDiscovery')\nexport const startBeaconDiscovery = /* @__PURE__ */ temporarilyNotSupport('startBeaconDiscovery')\nexport const onBeaconUpdate = /* @__PURE__ */ temporarilyNotSupport('onBeaconUpdate')\nexport const onBeaconServiceChange = /* @__PURE__ */ temporarilyNotSupport('onBeaconServiceChange')\nexport const offBeaconUpdate = /* @__PURE__ */ temporarilyNotSupport('offBeaconUpdate')\nexport const offBeaconServiceChange = /* @__PURE__ */ temporarilyNotSupport('offBeaconServiceChange')\nexport const getBeacons = /* @__PURE__ */ temporarilyNotSupport('getBeacons')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 键盘\nexport const onKeyboardHeightChange = /* @__PURE__ */ temporarilyNotSupport('onKeyboardHeightChange')\nexport const offKeyboardHeightChange = /* @__PURE__ */ temporarilyNotSupport('offKeyboardHeightChange')\nexport const hideKeyboard = /* @__PURE__ */ temporarilyNotSupport('hideKeyboard')\nexport const getSelectedTextRange = /* @__PURE__ */ temporarilyNotSupport('getSelectedTextRange')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 内存\nexport const onMemoryWarning = /* @__PURE__ */ temporarilyNotSupport('onMemoryWarning')\nexport const offMemoryWarning = /* @__PURE__ */ temporarilyNotSupport('offMemoryWarning')\n","import Taro from '@tarojs/api'\r\nimport throttle from 'lodash-es/throttle'\r\n\r\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\r\n\r\nconst callbackManager = new CallbackManager()\r\nlet deviceMotionListener\r\n\r\nconst INTERVAL_MAP = {\r\n game: {\r\n interval: 20,\r\n frequency: 50\r\n },\r\n ui: {\r\n interval: 60,\r\n frequency: 16.67\r\n },\r\n normal: {\r\n interval: 200,\r\n frequency: 5\r\n }\r\n}\r\n\r\n/**\r\n * 停止监听设备方向的变化。\r\n */\r\nexport const stopDeviceMotionListening: typeof Taro.stopDeviceMotionListening = ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'stopDeviceMotionListening', success, fail, complete })\r\n try {\r\n window.removeEventListener('deviceorientation', deviceMotionListener, true)\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 开始监听设备方向的变化。\r\n */\r\nexport const startDeviceMotionListening: typeof Taro.startDeviceMotionListening = ({ interval = 'normal', success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'startDeviceMotionListening', success, fail, complete })\r\n try {\r\n const intervalObj = INTERVAL_MAP[interval]\r\n if (window.DeviceOrientationEvent) {\r\n if (deviceMotionListener) {\r\n stopDeviceMotionListening()\r\n }\r\n deviceMotionListener = throttle((evt: DeviceOrientationEvent) => {\r\n callbackManager.trigger({\r\n alpha: evt.alpha,\r\n beta: evt.beta,\r\n gamma: evt.gamma\r\n })\r\n }, intervalObj.interval)\r\n window.addEventListener('deviceorientation', deviceMotionListener, true)\r\n } else {\r\n throw new Error('deviceMotion is not supported')\r\n }\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 监听设备方向变化事件。\r\n */\r\nexport const onDeviceMotionChange: typeof Taro.onDeviceMotionChange = callback => {\r\n callbackManager.add(callback)\r\n}\r\n\r\n/**\r\n * 取消监听设备方向变化事件,参数为空,则取消所有的事件监听。\r\n */\r\nexport const offDeviceMotionChange: typeof Taro.offDeviceMotionChange = callback => {\r\n callbackManager.remove(callback)\r\n}\r\n","import Taro from '@tarojs/api'\n\nimport { temporarilyNotSupport } from '../../utils'\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\n\nfunction getConnection () {\n // @ts-ignore\n return navigator.connection || navigator.mozConnection || navigator.webkitConnection || navigator.msConnection\n}\n\nexport const getNetworkType: typeof Taro.getNetworkType = (options = {}) => {\n const connection = getConnection()\n const { success, fail, complete } = options\n const handle = new MethodHandler<Taro.getNetworkType.SuccessCallbackResult>({ name: 'getNetworkType', success, fail, complete })\n\n let networkType: keyof Taro.getNetworkType.NetworkType = 'unknown'\n // 浏览器不支持获取网络状态\n if (!connection) {\n return handle.success({ networkType })\n }\n\n // Supports only the navigator.connection.type value which doesn't match the latest spec.\n // https://www.davidbcalhoun.com/2010/using-navigator-connection-android/\n if (!isNaN(Number(connection.type))) {\n switch (connection.type) {\n // @ts-ignore\n case connection.WIFI:\n networkType = 'wifi'\n break\n // @ts-ignore\n case connection.CELL_3G:\n networkType = '3g'\n break\n // @ts-ignore\n case connection.CELL_2G:\n networkType = '2g'\n break\n default:\n // ETHERNET, UNKNOWN\n networkType = 'unknown'\n }\n } else if (connection.type) {\n // @ts-ignore\n networkType = connection.type // Only supports the type value.\n // @ts-ignore\n } else if (connection.effectiveType) {\n // @ts-ignore\n networkType = connection.effectiveType\n }\n\n return handle.success({ networkType })\n}\n\nconst networkStatusManager = new CallbackManager()\nconst networkStatusListener = async () => {\n const { networkType } = await getNetworkType()\n const isConnected = networkType !== 'none'\n const obj = { isConnected, networkType }\n networkStatusManager.trigger(obj)\n}\n\n/**\n * 在最近的八次网络请求中, 出现下列三个现象之一则判定弱网。\n * - 出现三次以上连接超时\n * - 出现三次 rtt 超过 400\n * - 出现三次以上的丢包\n * > 弱网事件通知规则是: 弱网状态变化时立即通知, 状态不变时 30s 内最多通知一次。\n */\nexport const onNetworkWeakChange = /* @__PURE__ */ temporarilyNotSupport('onNetworkWeakChange')\n\nexport const onNetworkStatusChange: typeof Taro.onNetworkStatusChange = callback => {\n networkStatusManager.add(callback)\n const connection = getConnection()\n if (connection && networkStatusManager.count() === 1) {\n connection.addEventListener('change', networkStatusListener)\n }\n}\n\nexport const offNetworkWeakChange = /* @__PURE__ */ temporarilyNotSupport('offNetworkWeakChange')\n\nexport const offNetworkStatusChange: typeof Taro.offNetworkStatusChange = callback => {\n networkStatusManager.remove(callback)\n\n const connection = getConnection()\n if (connection && networkStatusManager.count() === 0) {\n connection.removeEventListener('change', networkStatusListener)\n }\n}\n\nexport const getLocalIPAddress = /* @__PURE__ */ temporarilyNotSupport('getLocalIPAddress')\n","import { temporarilyNotSupport } from '../../utils'\n\n// NFC\nexport const stopHCE = /* @__PURE__ */ temporarilyNotSupport('stopHCE')\nexport const startHCE = /* @__PURE__ */ temporarilyNotSupport('startHCE')\nexport const sendHCEMessage = /* @__PURE__ */ temporarilyNotSupport('sendHCEMessage')\nexport const onHCEMessage = /* @__PURE__ */ temporarilyNotSupport('onHCEMessage')\nexport const offHCEMessage = /* @__PURE__ */ temporarilyNotSupport('offHCEMessage')\nexport const getNFCAdapter = /* @__PURE__ */ temporarilyNotSupport('getNFCAdapter')\nexport const getHCEState = /* @__PURE__ */ temporarilyNotSupport('getHCEState')\n","import Taro from '@tarojs/api'\n\nimport { getParameterError, shouldBeObject } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\nexport const makePhoneCall: typeof Taro.makePhoneCall = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `makePhoneCall:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { phoneNumber, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'makePhoneCall', success, fail, complete })\n\n if (typeof phoneNumber !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'phoneNumber',\n correct: 'String',\n wrong: phoneNumber\n })\n })\n }\n\n window.location.href = `tel:${phoneNumber}`\n\n return handle.success()\n}\n","import { processOpenApi } from '../../utils'\n\n// 扫码\nexport const scanCode = /* @__PURE__ */ processOpenApi({\n name: 'scanQRCode',\n defaultOptions: { needResult: 1 },\n formatResult: res => ({\n errMsg: res.errMsg === 'scanQRCode:ok' ? 'scanCode:ok' : res.errMsg,\n result: res.resultStr\n })\n})\n","import { temporarilyNotSupport } from '../../utils'\n\n// 屏幕\nexport const setVisualEffectOnCapture = /* @__PURE__ */ temporarilyNotSupport('setVisualEffectOnCapture')\nexport const setScreenBrightness = /* @__PURE__ */ temporarilyNotSupport('setScreenBrightness')\nexport const setKeepScreenOn = /* @__PURE__ */ temporarilyNotSupport('setKeepScreenOn')\nexport const onUserCaptureScreen = /* @__PURE__ */ temporarilyNotSupport('onUserCaptureScreen')\nexport const offUserCaptureScreen = /* @__PURE__ */ temporarilyNotSupport('offUserCaptureScreen')\nexport const getScreenBrightness = /* @__PURE__ */ temporarilyNotSupport('getScreenBrightness')\nexport const onScreenRecordingStateChanged = /* @__PURE__ */ temporarilyNotSupport('onScreenRecordingStateChanged')\nexport const offScreenRecordingStateChanged = /* @__PURE__ */ temporarilyNotSupport('offScreenRecordingStateChanged')\nexport const getScreenRecordingState = /* @__PURE__ */ temporarilyNotSupport('getScreenRecordingState')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 短信\nexport const sendSms = /* @__PURE__ */ temporarilyNotSupport('sendSms')","import Taro from '@tarojs/api'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\n\r\nconst vibrator = function vibrator (mm: number | number[]) {\r\n try {\r\n return window.navigator.vibrate(mm)\r\n } catch (e) {\r\n console.warn('当前浏览器不支持 vibrate。')\r\n }\r\n}\r\n\r\n/**\r\n * 使手机发生较短时间的振动(15 ms)。仅在 iPhone 7 / 7 Plus 以上及 Android 机型生效\r\n */\r\nexport const vibrateShort: typeof Taro.vibrateShort = ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'vibrateShort', success, fail, complete })\r\n if (vibrator(15)) {\r\n return handle.success()\r\n } else {\r\n return handle.fail({ errMsg: 'style is not support' })\r\n }\r\n}\r\n\r\n/**\r\n * 使手机发生较长时间的振动(400 ms)\r\n */\r\nexport const vibrateLong: typeof Taro.vibrateLong = ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'vibrateLong', success, fail, complete })\r\n if (vibrator(400)) {\r\n return handle.success()\r\n } else {\r\n return handle.fail({ errMsg: 'style is not support' })\r\n }\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// Wi-Fi\nexport const stopWifi = /* @__PURE__ */ temporarilyNotSupport('stopWifi')\nexport const startWifi = /* @__PURE__ */ temporarilyNotSupport('startWifi')\nexport const setWifiList = /* @__PURE__ */ temporarilyNotSupport('setWifiList')\nexport const onWifiConnectedWithPartialInfo = /* @__PURE__ */ temporarilyNotSupport('onWifiConnectedWithPartialInfo')\nexport const onWifiConnected = /* @__PURE__ */ temporarilyNotSupport('onWifiConnected')\nexport const onGetWifiList = /* @__PURE__ */ temporarilyNotSupport('onGetWifiList')\nexport const offWifiConnectedWithPartialInfo = /* @__PURE__ */ temporarilyNotSupport('offWifiConnectedWithPartialInfo')\nexport const offWifiConnected = /* @__PURE__ */ temporarilyNotSupport('offWifiConnected')\nexport const offGetWifiList = /* @__PURE__ */ temporarilyNotSupport('offGetWifiList')\nexport const getWifiList = /* @__PURE__ */ temporarilyNotSupport('getWifiList')\nexport const getConnectedWifi = /* @__PURE__ */ temporarilyNotSupport('getConnectedWifi')\nexport const connectWifi = /* @__PURE__ */ temporarilyNotSupport('connectWifi')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 第三方平台\nexport const getExtConfigSync = /* @__PURE__ */ temporarilyNotSupport('getExtConfigSync')\nexport const getExtConfig = /* @__PURE__ */ temporarilyNotSupport('getExtConfig')\n","import { temporarilyNotSupport } from '../../utils'\r\n\r\n// 文件\r\nexport const saveFileToDisk = /* @__PURE__ */ temporarilyNotSupport('saveFileToDisk')\r\nexport const saveFile = /* @__PURE__ */ temporarilyNotSupport('saveFile')\r\nexport const removeSavedFile = /* @__PURE__ */ temporarilyNotSupport('removeSavedFile')\r\nexport const openDocument = /* @__PURE__ */ temporarilyNotSupport('openDocument')\r\nexport const getSavedFileList = /* @__PURE__ */ temporarilyNotSupport('getSavedFileList')\r\nexport const getSavedFileInfo = /* @__PURE__ */ temporarilyNotSupport('getSavedFileInfo')\r\nexport const getFileSystemManager = /* @__PURE__ */ temporarilyNotSupport('getFileSystemManager')\r\nexport const getFileInfo = /* @__PURE__ */ temporarilyNotSupport('getFileInfo')\r\n","import Taro from '@tarojs/api'\n\nexport const getApp: typeof Taro.getApp = function <T extends Taro.App = TaroGeneral.IAnyObject> () {\n return Taro.getCurrentInstance().app as unknown as T\n}\n\nexport { getCurrentPages } from '@tarojs/router'\n\n// 自定义组件\nexport const getCurrentInstance = Taro.getCurrentInstance\n","export const isGeolocationSupported = (): boolean => !!navigator.geolocation\n","import Taro from '@tarojs/api'\n\nimport { processOpenApi, shouldBeObject } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\nimport { isGeolocationSupported } from './utils'\n\nconst getLocationByW3CApi: (options: Taro.getLocation.Option) => Promise<Taro.getLocation.SuccessCallbackResult> = (options: Taro.getLocation.Option): Promise<Taro.getLocation.SuccessCallbackResult> => {\n // 断言 options 必须是 Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `getLocation:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n // 解构回调函数\n const { success, fail, complete } = options\n\n const handle = new MethodHandler({ name: 'getLocation', success, fail, complete })\n\n // const defaultMaximumAge = 5 * 1000\n\n const positionOptions: PositionOptions = {\n enableHighAccuracy: options.isHighAccuracy || (options.altitude != null), // 海拔定位需要高精度\n // maximumAge: defaultMaximumAge, // 允许取多久以内的缓存位置\n timeout: options.highAccuracyExpireTime // 高精度定位超时时间\n }\n\n // Web端API实现暂时仅支持GPS坐标系\n if (options.type?.toUpperCase() !== 'WGS84') {\n return handle.fail({\n errMsg: 'This coordinate system type is not temporarily supported'\n })\n }\n\n // 判断当前浏览器是否支持位置API\n if (!isGeolocationSupported()) {\n return handle.fail({\n errMsg: 'The current browser does not support this feature'\n })\n }\n\n // 开始获取位置\n return new Promise<Taro.getLocation.SuccessCallbackResult>(\n (resolve, reject) => {\n navigator.geolocation.getCurrentPosition(\n (position) => {\n const result: Taro.getLocation.SuccessCallbackResult = {\n /** 位置的精确度 */\n accuracy: position.coords.accuracy,\n /** 高度,单位 m */\n altitude: position.coords.altitude!,\n /** 水平精度,单位 m */\n horizontalAccuracy: position.coords.accuracy,\n /** 纬度,范围为 -90~90,负数表示南纬 */\n latitude: position.coords.latitude,\n /** 经度,范围为 -180~180,负数表示西经 */\n longitude: position.coords.longitude,\n /** 速度,单位 m/s */\n speed: position.coords.speed!,\n /** 垂直精度,单位 m(Android 无法获取,返回 0) */\n verticalAccuracy: position.coords.altitudeAccuracy || 0,\n /** 调用结果,自动补充 */\n errMsg: ''\n }\n handle.success(result, { resolve, reject })\n },\n (error) => {\n handle.fail({ errMsg: error.message }, { resolve, reject })\n },\n positionOptions\n )\n }\n )\n}\n\nexport const getLocation = /* @__PURE__ */ processOpenApi({\n name: 'getLocation',\n standardMethod: getLocationByW3CApi\n})\n","import './style.scss'\r\n\r\nimport Taro from '@tarojs/api'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\n\r\nlet container: HTMLDivElement | null = null\r\nfunction createLocationChooser (handler, key = LOCATION_APIKEY, mapOpt: Taro.chooseLocation.Option['mapOpts'] = {}) {\r\n const { latitude, longitude, ...opts } = mapOpt\r\n const query = {\r\n key,\r\n type: 1,\r\n coord: mapOpt.coord ?? [latitude, longitude].every(e => Number(e) >= 0) ? `${latitude},${longitude}` : undefined,\r\n referer: 'myapp',\r\n ...opts\r\n }\r\n if (!container) {\r\n const html = `\r\n<div class='taro_choose_location'>\r\n <div class='taro_choose_location_bar'>\r\n <div class='taro_choose_location_back'></div>\r\n <p class='taro_choose_location_title'>位置</p>\r\n <button class='taro_choose_location_submit'>完成</button>\r\n </div>\r\n <iframe class='taro_choose_location_frame' frameborder='0' src=\"https://apis.map.qq.com/tools/locpicker?${stringify(query, { arrayFormat: 'comma', skipNull: true })}\" />\r\n</div>\r\n`\r\n container = document.createElement('div')\r\n container.innerHTML = html\r\n }\r\n const main: HTMLDivElement = container.querySelector('.taro_choose_location') as HTMLDivElement\r\n\r\n function show () {\r\n setTimeout(() => {\r\n main.style.top = '0'\r\n })\r\n }\r\n\r\n function hide () {\r\n main.style.top = '100%'\r\n }\r\n\r\n function back () {\r\n hide()\r\n handler({ errMsg: 'cancel' })\r\n }\r\n\r\n function submit () {\r\n hide()\r\n handler()\r\n }\r\n\r\n function remove () {\r\n container?.remove()\r\n container = null\r\n window.removeEventListener('popstate', back)\r\n }\r\n\r\n container.querySelector('.taro_choose_location_back')?.addEventListener('click', back)\r\n container.querySelector('.taro_choose_location_submit')?.addEventListener('click', submit)\r\n\r\n window.addEventListener('popstate', back)\r\n\r\n return {\r\n show,\r\n remove,\r\n container,\r\n }\r\n}\r\n\r\n/**\r\n * 打开地图选择位置。\r\n */\r\nexport const chooseLocation: typeof Taro.chooseLocation = ({ success, fail, complete, mapOpts } = {}) => {\r\n const handle = new MethodHandler({ name: 'chooseLocation', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n const chooseLocation: Partial<Taro.chooseLocation.SuccessCallbackResult> = {}\r\n if (typeof LOCATION_APIKEY === 'undefined') {\r\n console.warn('chooseLocation api 依赖腾讯地图定位api,需要在 defineConstants 中配置 LOCATION_APIKEY')\r\n return handle.fail({\r\n errMsg: 'LOCATION_APIKEY needed'\r\n }, { resolve, reject })\r\n }\r\n\r\n const key = LOCATION_APIKEY\r\n\r\n const onMessage = event => {\r\n // 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息\r\n const loc = event.data\r\n\r\n // 防止其他应用也会向该页面 post 信息,需判断 module 是否为'locationPicker'\r\n if (!loc || loc.module !== 'locationPicker') return\r\n\r\n chooseLocation.name = loc.poiname\r\n chooseLocation.address = loc.poiaddress\r\n chooseLocation.latitude = loc.latlng.lat\r\n chooseLocation.longitude = loc.latlng.lng\r\n }\r\n\r\n const chooser = createLocationChooser(res => {\r\n window.removeEventListener('message', onMessage, false)\r\n setTimeout(() => {\r\n chooser.remove()\r\n }, 300)\r\n if (res) {\r\n return handle.fail(res, { resolve, reject })\r\n } else {\r\n if (chooseLocation.latitude && chooseLocation.longitude) {\r\n return handle.success(chooseLocation, { resolve, reject })\r\n } else {\r\n return handle.fail({}, { resolve, reject })\r\n }\r\n }\r\n }, key, mapOpts)\r\n\r\n document.body.appendChild(chooser.container)\r\n\r\n window.addEventListener('message', onMessage, false)\r\n chooser.show()\r\n })\r\n}\r\n","import { processOpenApi, shouldBeObject } from '../../utils'\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\nimport { isGeolocationSupported } from './utils'\n\nconst _successCbManager = new CallbackManager()\nconst _errorCbManager = new CallbackManager()\nlet _watchID = -1\n\nexport function onLocationChange (callback: Taro.onLocationChange.Callback): void {\n _successCbManager.add(callback)\n}\n\nexport function offLocationChange (callback: Taro.onLocationChange.Callback): void {\n if (callback && typeof callback === 'function') {\n _successCbManager.remove(callback)\n } else if (callback === undefined) {\n _successCbManager.clear()\n } else {\n console.warn('offLocationChange failed')\n }\n}\n\nexport function onLocationChangeError (callback: Taro.onLocationChange.Callback): void {\n _errorCbManager.add(callback)\n}\n\nexport function offLocationChangeError (callback: Taro.onLocationChange.Callback): void {\n if (callback && typeof callback === 'function') {\n _errorCbManager.remove(callback)\n } else if (callback === undefined) {\n _errorCbManager.clear()\n } else {\n console.warn('offLocationChangeError failed')\n }\n}\n\n/**\n * 开始监听位置信息\n * @param opts\n * @returns\n */\nfunction startLocationUpdateByW3CApi (opts: Taro.startLocationUpdate.Option): Promise<TaroGeneral.CallbackResult> {\n// 断言 options 必须是 Object\n const isObject = shouldBeObject(opts)\n if (!isObject.flag) {\n const res = { errMsg: `startLocationUpdate:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { success, fail, complete } = opts\n const handle = new MethodHandler({ name: 'startLocationUpdate', success, fail, complete })\n\n // 判断当前浏览器是否支持位置API\n if (!isGeolocationSupported()) {\n return handle.fail({\n errMsg: 'The current browser does not support this feature'\n })\n }\n\n try {\n if (_watchID > -1) {\n console.error('startLocationUpdate:fail')\n return handle.fail()\n } else {\n _watchID = navigator.geolocation.watchPosition(({ coords }) => {\n const { latitude, longitude, altitude, accuracy, speed } = coords\n _successCbManager.trigger({\n accuracy,\n altitude,\n horizontalAccuracy: 0,\n verticalAccuracy: 0,\n latitude,\n longitude,\n speed,\n })\n }, err => {\n _errorCbManager.trigger({\n errMsg: 'Watch Position error',\n err\n })\n }, {\n timeout: 10,\n maximumAge: 0,\n enableHighAccuracy: true,\n })\n return handle.success()\n }\n } catch (error) {\n return handle.fail()\n }\n}\n\n/**\n * 停止监听位置信息\n * @param opts\n * @returns\n */\nfunction stopLocationUpdateByW3CApi (opts: Taro.stopLocationUpdate.Option): Promise<TaroGeneral.CallbackResult> {\n const isObject = shouldBeObject(opts)\n if (!isObject.flag) {\n const res = { errMsg: `stopLocationUpdate:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { success, fail, complete } = opts\n const handle = new MethodHandler({ name: 'stopLocationUpdate', success, fail, complete })\n\n // 判断当前浏览器是否支持位置API\n if (!isGeolocationSupported()) {\n return handle.fail({\n errMsg: 'The current browser does not support this feature'\n })\n }\n\n try {\n navigator.geolocation.clearWatch(_watchID)\n _watchID = -1\n return handle.success()\n } catch (error) {\n return handle.fail()\n }\n}\n\nexport const stopLocationUpdate = /* @__PURE__ */ processOpenApi({\n name: 'stopLocationUpdate',\n standardMethod: stopLocationUpdateByW3CApi\n})\n\nexport const startLocationUpdate = /* @__PURE__ */ processOpenApi({\n name: 'startLocationUpdate',\n standardMethod: startLocationUpdateByW3CApi\n})\n","import { processOpenApi, temporarilyNotSupport } from '../../utils/index'\r\n\r\nexport const startLocationUpdateBackground = /* @__PURE__ */ temporarilyNotSupport('startLocationUpdateBackground')\r\n\r\nexport const openLocation = /* @__PURE__ */ processOpenApi({\r\n name: 'openLocation',\r\n defaultOptions: { scale: 18 }\r\n})\r\n\r\nexport { getLocation } from './getLocation'\r\n\r\nexport const choosePoi = /* @__PURE__ */ temporarilyNotSupport('choosePoi')\r\nexport const getFuzzyLocation = /* @__PURE__ */ temporarilyNotSupport('getFuzzyLocation')\r\n\r\nexport { chooseLocation } from './chooseLocation'\r\nexport { offLocationChange, offLocationChangeError, onLocationChange, onLocationChangeError, startLocationUpdate, stopLocationUpdate } from './locationChange'\r\n","import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class InnerAudioContext implements Taro.InnerAudioContext {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n __isFirstPlay = true\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n this.Instance.onerror = this.errorStack.trigger\n\n Taro.eventCenter.on('__taroRouterChange', () => { this.stop() })\n this.onPlay(() => {\n if (this.__isFirstPlay) {\n this.__isFirstPlay = false\n this.seek(this.startTime)\n }\n })\n }\n\n set autoplay (e) { this.setProperty('autoplay', e) }\n get autoplay () { return this.Instance?.autoplay || false }\n get buffered () {\n const { currentTime = 0, buffered: timeRange } = this.Instance || {}\n if (timeRange) {\n for (let i = 0; i < timeRange.length; i++) {\n if (timeRange.start(i) <= currentTime && timeRange.end(i) >= currentTime) {\n return timeRange.end(i)\n }\n }\n }\n return 0\n }\n\n get currentTime () { return this.Instance?.currentTime || 0 }\n set currentTime (e) { this.seek(e) }\n get duration () { return this.Instance?.duration || 0 }\n set loop (e) { this.setProperty('loop', e) }\n get loop () { return this.Instance?.loop || false }\n get paused () { return this.Instance?.paused ?? true }\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set volume (e) { this.setProperty('volume', e) }\n get volume () { return this.Instance?.volume || 0 }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n set obeyMuteSwitch (_e) { permanentlyNotSupport('InnerAudioContext.obeyMuteSwitch')() }\n get obeyMuteSwitch () { return true }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n /**\n * @TODO destroy得并不干净\n */\n destroy = () => {\n this.stop()\n if (this.Instance) {\n this.Instance = undefined\n }\n }\n\n onCanplay = (callback: Taro.InnerAudioContext.OnCanplayCallback = () => {}) => this.Instance?.addEventListener('canplay', callback as any)\n onPlay = (callback: Taro.InnerAudioContext.OnPlayCallback = () => {}) => this.Instance?.addEventListener('play', callback as any)\n onPause = (callback: Taro.InnerAudioContext.OnPauseCallback = () => {}) => this.Instance?.addEventListener('pause', callback as any)\n onStop = (callback: Taro.InnerAudioContext.OnStopCallback = () => {}) => this.stopStack.add(callback)\n onEnded = (callback: Taro.InnerAudioContext.OnEndedCallback = () => {}) => this.Instance?.addEventListener('ended', callback as any)\n onTimeUpdate = (callback: Taro.InnerAudioContext.OnTimeUpdateCallback = () => {}) => this.Instance?.addEventListener('timeupdate', callback as any)\n onError = (callback: Taro.InnerAudioContext.OnErrorCallback) => this.errorStack.add(callback)\n onWaiting = (callback: Taro.InnerAudioContext.OnWaitingCallback = () => {}) => this.Instance?.addEventListener('waiting', callback as any)\n onSeeking = (callback: Taro.InnerAudioContext.OnSeekingCallback = () => {}) => this.Instance?.addEventListener('seeking', callback as any)\n onSeeked = (callback: Taro.InnerAudioContext.OnSeekedCallback = () => {}) => this.Instance?.addEventListener('seeked', callback as any)\n offCanplay = (callback: Taro.InnerAudioContext.OnCanplayCallback = () => {}) => this.Instance?.removeEventListener('canplay', callback as any)\n offPlay = (callback: Taro.InnerAudioContext.OnPlayCallback = () => {}) => this.Instance?.removeEventListener('play', callback as any)\n offPause = (callback: Taro.InnerAudioContext.OnPauseCallback = () => {}) => this.Instance?.removeEventListener('pause', callback as any)\n offStop = (callback: Taro.InnerAudioContext.OnStopCallback = () => {}) => this.stopStack.remove(callback)\n offEnded = (callback: Taro.InnerAudioContext.OnEndedCallback = () => {}) => this.Instance?.removeEventListener('ended', callback as any)\n offTimeUpdate = (callback: Taro.InnerAudioContext.OnTimeUpdateCallback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback as any)\n offError = (callback: Taro.InnerAudioContext.OnErrorCallback = () => {}) => this.errorStack.remove(callback)\n offWaiting = (callback: Taro.InnerAudioContext.OnWaitingCallback = () => {}) => this.Instance?.removeEventListener('waiting', callback as any)\n offSeeking = (callback: Taro.InnerAudioContext.OnSeekingCallback = () => {}) => this.Instance?.removeEventListener('seeking', callback as any)\n offSeeked = (callback: Taro.InnerAudioContext.OnSeekedCallback = () => {}) => this.Instance?.removeEventListener('seeked', callback as any)\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { temporarilyNotSupport } from '../../../utils'\r\nimport { InnerAudioContext } from './InnerAudioContext'\r\n\r\n// 音频\r\n\r\nexport const stopVoice = /* @__PURE__ */ temporarilyNotSupport('stopVoice')\r\nexport const setInnerAudioOption = /* @__PURE__ */ temporarilyNotSupport('setInnerAudioOption')\r\nexport const playVoice = /* @__PURE__ */ temporarilyNotSupport('playVoice')\r\nexport const pauseVoice = /* @__PURE__ */ temporarilyNotSupport('pauseVoice')\r\nexport const getAvailableAudioSources = /* @__PURE__ */ temporarilyNotSupport('getAvailableAudioSources')\r\nexport const createWebAudioContext = /* @__PURE__ */ temporarilyNotSupport('createWebAudioContext')\r\nexport const createMediaAudioPlayer = /* @__PURE__ */ temporarilyNotSupport('createMediaAudioPlayer')\r\n\r\n/**\r\n * 创建内部 audio 上下文 InnerAudioContext 对象。\r\n */\r\nexport const createInnerAudioContext: typeof Taro.createInnerAudioContext = () => new InnerAudioContext()\r\n\r\nexport const createAudioContext = /* @__PURE__ */ temporarilyNotSupport('createAudioContext')\r\n","import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class BackgroundAudioManager implements Taro.BackgroundAudioManager {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n this.Instance.onerror = this.errorStack.trigger\n this.Instance.autoplay = true\n this.onPlay(() => {\n if (this.currentTime !== this.startTime) {\n this.seek(this.startTime)\n }\n })\n }\n\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set title (e) { this.dataset('title', e) }\n get title () { return this.Instance?.dataset.title || '' }\n set epname (e) { this.dataset('epname', e) }\n get epname () { return this.Instance?.dataset.epname || '' }\n set singer (e) { this.dataset('singer', e) }\n get singer () { return this.Instance?.dataset.singer || '' }\n set coverImgUrl (e) { this.dataset('coverImgUrl', e) }\n get coverImgUrl () { return this.Instance?.dataset.coverImgUrl || '' }\n set webUrl (e) { this.dataset('webUrl', e) }\n get webUrl () { return this.Instance?.dataset.webUrl || '' }\n set protocol (e) { this.dataset('protocol', e) }\n get protocol () { return this.Instance?.dataset.protocol || '' }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n get duration () { return this.Instance?.duration || 0 }\n get currentTime () { return this.Instance?.currentTime || 0 }\n get paused () { return this.Instance?.paused || false }\n get buffered () {\n const { currentTime = 0, buffered: timeRange } = this.Instance || {}\n if (timeRange) {\n for (let i = 0; i < timeRange.length; i++) {\n if (timeRange.start(i) <= currentTime && timeRange.end(i) >= currentTime) {\n return timeRange.end(i)\n }\n }\n }\n return 0\n }\n\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n private dataset (key: string, value: string) {\n if (this.Instance) {\n this.Instance.dataset[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n onCanplay = (callback = () => {}) => this.Instance?.addEventListener('canplay', callback)\n onWaiting = (callback = () => {}) => this.Instance?.addEventListener('waiting', callback)\n onError = (callback?: ((res: Taro.InnerAudioContext.onErrorDetail) => void)) => this.errorStack.add(callback)\n onPlay = (callback = () => {}) => this.Instance?.addEventListener('play', callback)\n onPause = (callback = () => {}) => this.Instance?.addEventListener('pause', callback)\n onSeeking = (callback = () => {}) => this.Instance?.addEventListener('seeking', callback)\n onSeeked = (callback = () => {}) => this.Instance?.addEventListener('seeked', callback)\n\n onEnded = (callback = () => {}) => this.Instance?.addEventListener('ended', callback)\n onStop = (callback = () => {}) => this.stopStack.add(callback)\n onTimeUpdate = (callback = () => {}) => this.Instance?.addEventListener('timeupdate', callback)\n onPrev = permanentlyNotSupport('BackgroundAudioManager.onPrev')\n onNext = permanentlyNotSupport('BackgroundAudioManager.onNext')\n\n offCanplay = (callback = () => {}) => this.Instance?.removeEventListener('canplay', callback)\n offWaiting = (callback = () => {}) => this.Instance?.removeEventListener('waiting', callback)\n offError = (callback = () => {}) => this.errorStack.remove(callback)\n offPlay = (callback = () => {}) => this.Instance?.removeEventListener('play', callback)\n offPause = (callback = () => {}) => this.Instance?.removeEventListener('pause', callback)\n offSeeking = (callback = () => {}) => this.Instance?.removeEventListener('seeking', callback)\n offSeeked = (callback = () => {}) => this.Instance?.removeEventListener('seeked', callback)\n\n offEnded = (callback = () => {}) => this.Instance?.removeEventListener('ended', callback)\n offStop = (callback = () => {}) => this.stopStack.remove(callback)\n offTimeUpdate = (callback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback)\n offPrev = permanentlyNotSupport('BackgroundAudioManager.offPrev')\n offNext = permanentlyNotSupport('BackgroundAudioManager.offNext')\n}\n","import { temporarilyNotSupport } from '../../../utils'\nimport { BackgroundAudioManager } from './BackgroundAudioManager'\n\n// 背景音频\nexport const stopBackgroundAudio = /* @__PURE__ */ temporarilyNotSupport('stopBackgroundAudio')\nexport const seekBackgroundAudio = /* @__PURE__ */ temporarilyNotSupport('seekBackgroundAudio')\nexport const playBackgroundAudio = /* @__PURE__ */ temporarilyNotSupport('playBackgroundAudio')\nexport const pauseBackgroundAudio = /* @__PURE__ */ temporarilyNotSupport('pauseBackgroundAudio')\nexport const onBackgroundAudioStop = /* @__PURE__ */ temporarilyNotSupport('onBackgroundAudioStop')\nexport const onBackgroundAudioPlay = /* @__PURE__ */ temporarilyNotSupport('onBackgroundAudioPlay')\nexport const onBackgroundAudioPause = /* @__PURE__ */ temporarilyNotSupport('onBackgroundAudioPause')\nexport const getBackgroundAudioPlayerState = /* @__PURE__ */ temporarilyNotSupport('getBackgroundAudioPlayerState')\n\n/**\n * 获取全局唯一的背景音频管理器\n */\nexport const getBackgroundAudioManager = () => new BackgroundAudioManager()\n","import { temporarilyNotSupport } from '../../utils'\n\n// 相机\nexport const createCameraContext = /* @__PURE__ */ temporarilyNotSupport('createCameraContext')\n","import Taro from '@tarojs/api'\n\nimport { createDownload, getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\nexport const saveImageToPhotosAlbum: typeof Taro.saveImageToPhotosAlbum = (options) => {\n const methodName = 'saveImageToPhotosAlbum'\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n filePath,\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n if (typeof filePath !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'filePath',\n correct: 'String',\n wrong: filePath\n })\n })\n }\n\n createDownload(filePath)\n return handle.success()\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { shouldBeObject } from '../../../utils'\r\nimport { MethodHandler } from '../../../utils/handler'\r\n\r\n/**\r\n * 获取图片信息。网络图片需先配置download域名才能生效。\r\n */\r\nexport const getImageInfo: typeof Taro.getImageInfo = (options) => {\r\n // options must be an Object\r\n const isObject = shouldBeObject(options)\r\n if (!isObject.flag) {\r\n const res = { errMsg: `getImageInfo:fail ${isObject.msg}` }\r\n console.error(res.errMsg)\r\n return Promise.reject(res)\r\n }\r\n\r\n const getBase64Image = (image: HTMLImageElement) => {\r\n try {\r\n const canvas = document.createElement('canvas')\r\n canvas.width = image.width\r\n canvas.height = image.height\r\n const ctx = canvas.getContext('2d')\r\n ctx?.drawImage(image, 0, 0, image.width, image.height)\r\n return canvas.toDataURL('image/png')\r\n } catch (e) {\r\n console.error('getImageInfo:get base64 fail', e)\r\n }\r\n }\r\n\r\n const { src, success, fail, complete } = options\r\n const handle = new MethodHandler({ name: 'getImageInfo', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n const image = new Image()\r\n image.crossOrigin = ''\r\n image.onload = () => {\r\n handle.success({\r\n width: image.naturalWidth,\r\n height: image.naturalHeight,\r\n path: getBase64Image(image) || src\r\n }, { resolve, reject })\r\n }\r\n image.onerror = (e: any) => {\r\n handle.fail({\r\n errMsg: e.message\r\n }, { resolve, reject })\r\n }\r\n image.src = src\r\n })\r\n}\r\n","import Taro from '@tarojs/api'\nimport { SwiperProps } from '@tarojs/components'\nimport {\n defineCustomElementTaroSwiperCore,\n defineCustomElementTaroSwiperItemCore,\n} from '@tarojs/components/dist/components'\nimport { eventCenter } from '@tarojs/runtime'\nimport { isFunction } from '@tarojs/shared'\n\nimport { shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n/**\n * previewImage api基于开源的React组件[react-wx-images-viewer](https://github.com/react-ld/react-wx-images-viewer)开发,感谢!\n */\n\n/**\n * 在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。\n */\nexport const previewImage: typeof Taro.previewImage = async (options) => {\n // TODO 改为通过 window.__taroAppConfig 获取配置的 Swiper 插件创建节点\n defineCustomElementTaroSwiperCore()\n defineCustomElementTaroSwiperItemCore()\n\n function loadImage (url: string, loadFail: typeof fail): Promise<Node> {\n return new Promise((resolve) => {\n const item = document.createElement('taro-swiper-item-core')\n item.style.cssText = 'display:flex;align-items:start;justify-content:center;overflow-y:scroll;'\n const image = new Image()\n image.style.maxWidth = '100%'\n image.src = url\n const div = document.createElement('div')\n div.classList.add('swiper-zoom-container')\n div.style.cssText = 'display:flex;align-items:center;justify-content:center;max-width:100%;min-height:100%;'\n div.appendChild(image)\n item.appendChild(div)\n // Note: 等待图片加载完后返回,会导致轮播被卡住\n resolve(item)\n if (isFunction(loadFail)) {\n image.addEventListener('error', (err) => {\n loadFail({ errMsg: err.message })\n })\n }\n })\n }\n\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `previewImage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { urls = [], current = '', success, fail, complete } = options\n const handle = new MethodHandler({ name: 'previewImage', success, fail, complete })\n const container = document.createElement('div')\n const removeHandler = () => {\n eventCenter.off('__taroRouterChange', removeHandler)\n container.remove()\n }\n // 路由改变后应该关闭预览框\n eventCenter.on('__taroRouterChange', removeHandler)\n\n container.classList.add('preview-image')\n container.style.cssText =\n 'position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:#111;'\n container.addEventListener('click', removeHandler)\n\n const swiper: HTMLElement & Omit<SwiperProps, 'style' | 'children'> = document.createElement('taro-swiper-core')\n // @ts-ignore\n swiper.full = true\n // @ts-ignore\n swiper.zoom = true\n\n let children: Node[] = []\n try {\n children = await Promise.all(urls.map((e) => loadImage(e, fail)))\n } catch (error) {\n return handle.fail({\n errMsg: error,\n })\n }\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i]\n swiper.appendChild(child)\n }\n\n const currentIndex = typeof current === 'number' ? current : urls.indexOf(current)\n\n swiper.current = currentIndex\n\n container.appendChild(swiper)\n document.body.appendChild(container)\n\n return handle.success()\n}\n","import Taro from '@tarojs/api'\n\n/**\n * H5 下的 styleSheet 操作\n * @author leeenx\n */\nclass StyleSheet {\n constructor () {\n this.$style = document.createElement('style')\n }\n\n $style?: HTMLStyleElement | null = null\n sheet?: CSSStyleSheet | null = null\n\n appendStyleSheet = () => {\n if (this.$style) {\n const head = document.getElementsByTagName('head')[0]\n this.$style.setAttribute('type', 'text/css')\n this.$style.setAttribute('data-type', 'Taro')\n head.appendChild(this.$style)\n this.sheet = this.$style.sheet\n }\n if (this.sheet && !('insertRule' in this.sheet)) {\n console.warn('当前浏览器不支持 stylesheet.insertRule 接口')\n }\n }\n\n // 添加样式命令\n add = (cssText, index = 0) => {\n if (this.sheet === null) {\n // $style 未插入到 DOM\n this.appendStyleSheet()\n }\n this.sheet?.insertRule(cssText, index)\n }\n}\n\nconst styleSheet = new StyleSheet()\n\n// 监听事件\nlet TRANSITION_END = 'transitionend'\nlet TRANSFORM = 'transform'\n\nconst $detect = document.createElement('div')\n$detect.style.cssText = '-webkit-animation-name:webkit;-moz-animation-name:moz;-ms-animation-name:ms;animation-name:standard;'\nif ($detect.style['animation-name'] === 'standard') {\n // 支持标准写法\n TRANSITION_END = 'transitionend'\n TRANSFORM = 'transform'\n} else if ($detect.style['-webkit-animation-name'] === 'webkit') {\n // webkit 前缀\n TRANSITION_END = 'webkitTransitionEnd'\n TRANSFORM = '-webkit-transform'\n} else if ($detect.style['-moz-animation-name'] === 'moz') {\n // moz 前缀\n TRANSITION_END = 'mozTransitionEnd'\n TRANSFORM = '-moz-transform'\n} else if ($detect.style['-ms-animation-name'] === 'ms') {\n // ms 前缀\n TRANSITION_END = 'msTransitionEnd'\n TRANSFORM = '-ms-transform'\n}\n\nlet animId = 0\n\ninterface IAnimationAttr {\n duration: number\n delay: number\n timingFunction: string\n transformOrigin: string\n}\n\ninterface IRule {\n key: string\n rule: string\n}\n\ninterface ITransform {\n key: string\n transform: string\n}\n\nclass Animation implements Taro.Animation {\n unit: string\n id: number\n DEFAULT: IAnimationAttr\n\n constructor (\n {\n duration = 400,\n delay = 0,\n timingFunction = 'linear',\n transformOrigin = '50% 50% 0',\n unit = 'px'\n }: Taro.createAnimation.Option = {}\n ) {\n // 默认值\n this.setDefault(duration, delay, timingFunction, transformOrigin)\n this.unit = unit\n // atom 环境下,animation 属性不会显示,所以要改成 data-animation\n let animAttr = 'animation'\n // 动画 id\n this.id = ++animId\n // 监听事件\n document.body.addEventListener(TRANSITION_END, (e: TransitionEvent) => {\n const target = e.target as HTMLElement\n if (target.getAttribute(animAttr) === null) {\n animAttr = 'data-animation'\n }\n const animData = target.getAttribute(animAttr)\n // 没有动画存在\n if (animData === null) return\n const [animName, animPath] = animData.split('__')\n if (animName === `taro-h5-poly-fill/${this.id}/create-animation`) {\n const [animIndex, __stepIndex = 0] = animPath.split('--')\n const stepIndex = Number(__stepIndex)\n // 动画总的关键帧\n const animStepsCount = this.animationMap[`${animName}__${animIndex}`]\n const animStepsMaxIndex = animStepsCount - 1\n if (stepIndex < animStepsMaxIndex) {\n // 播放下一个关键帧(因为 nerv 和 react 有差异所以 animation & data-animation 都需要写)\n target.setAttribute(animAttr, `${animName}__${animIndex}--${stepIndex + 1}`)\n if (animAttr === 'data-animation') {\n // Nerv 环境,animation & data-animation 双重保险\n target.setAttribute('animation', `${animName}__${animIndex}--${stepIndex + 1}`)\n }\n }\n }\n })\n }\n\n transformUnit (...args) {\n const ret: string[] = []\n args.forEach(each => {\n ret.push(isNaN(each) ? each : `${each}${this.unit}`)\n })\n return ret\n }\n\n // 设置默认值\n setDefault (duration, delay, timingFunction, transformOrigin) {\n this.DEFAULT = { duration, delay, timingFunction, transformOrigin }\n }\n\n // 属性组合\n rules: IRule[] = []\n // transform 对象\n transform: ITransform[] = []\n // 组合动画\n steps: string[] = []\n // 动画 map ----- 永久保留\n animationMap = {}\n // animationMap 的长度\n animationMapCount = 0\n // 历史动画\n historyAnimations: ITransform[] = []\n // 历史规则\n historyRules: IRule[] = []\n\n matrix (a: number, b: number, c: number, d: number, tx: number, ty: number) {\n this.transform.push({ key: 'matrix', transform: `matrix(${a}, ${b}, ${c}, ${d}, ${tx}, ${ty})` })\n return this\n }\n\n matrix3d (a1: number, b1: number, c1: number, d1: number, a2: number, b2: number, c2: number, d2: number, a3: number, b3: number, c3: number, d3: number, a4: number, b4: number, c4: number, d4: number) {\n this.transform.push({\n key: 'matrix3d',\n transform: `matrix3d(${a1}, ${b1}, ${c1}, ${d1}, ${a2}, ${b2}, ${c2}, ${d2}, ${a3}, ${b3}, ${c3}, ${d3}, ${a4}, ${b4}, ${c4}, ${d4})`,\n })\n return this\n }\n\n rotate (angle: number) {\n this.transform.push({ key: 'rotate', transform: `rotate(${angle}deg)` })\n return this\n }\n\n rotate3d (x: number, y?: number, z?: number, angle?: number) {\n if (typeof y !== 'number') {\n this.transform.push({ key: 'rotate3d', transform: `rotate3d(${x})` })\n } else {\n this.transform.push({ key: 'rotate3d', transform: `rotate3d(${x}, ${y || 0}, ${z || 0}, ${angle || 0}deg)` })\n }\n return this\n }\n\n rotateX (angle) {\n this.transform.push({ key: 'rotateX', transform: `rotateX(${angle}deg)` })\n return this\n }\n\n rotateY (angle) {\n this.transform.push({ key: 'rotateY', transform: `rotateY(${angle}deg)` })\n return this\n }\n\n rotateZ (angle) {\n this.transform.push({ key: 'rotateZ', transform: `rotateZ(${angle}deg)` })\n return this\n }\n\n scale (x: number, y?: number) {\n const scaleY = (typeof y !== 'undefined' && y !== null) ? y : x\n this.transform.push({ key: 'scale', transform: `scale(${x}, ${scaleY})` })\n return this\n }\n\n scale3d (x, y, z) {\n this.transform.push({ key: 'scale3d', transform: `scale3d(${x}, ${y}, ${z})` })\n return this\n }\n\n scaleX (scale) {\n this.transform.push({ key: 'scaleX', transform: `scaleX(${scale})` })\n return this\n }\n\n scaleY (scale) {\n this.transform.push({ key: 'scaleY', transform: `scaleY(${scale})` })\n return this\n }\n\n scaleZ (scale) {\n this.transform.push({ key: 'scaleZ', transform: `scaleZ(${scale})` })\n return this\n }\n\n skew (x, y) {\n this.transform.push({ key: 'skew', transform: `skew(${x}deg, ${y}deg)` })\n return this\n }\n\n skewX (angle) {\n this.transform.push({ key: 'skewX', transform: `skewX(${angle}deg)` })\n return this\n }\n\n skewY (angle) {\n this.transform.push({ key: 'skewY', transform: `skewY(${angle}deg)` })\n return this\n }\n\n translate (x, y) {\n [x, y] = this.transformUnit(x, y)\n this.transform.push({ key: 'translate', transform: `translate(${x}, ${y})` })\n return this\n }\n\n translate3d (x, y, z) {\n [x, y, z] = this.transformUnit(x, y, z)\n this.transform.push({ key: 'translate3d', transform: `translate3d(${x}, ${y}, ${z})` })\n return this\n }\n\n translateX (translate) {\n [translate] = this.transformUnit(translate)\n this.transform.push({ key: 'translateX', transform: `translateX(${translate})` })\n return this\n }\n\n translateY (translate) {\n [translate] = this.transformUnit(translate)\n this.transform.push({ key: 'translateY', transform: `translateY(${translate})` })\n return this\n }\n\n translateZ (translate) {\n [translate] = this.transformUnit(translate)\n this.transform.push({ key: 'translateZ', transform: `translateZ(${translate})` })\n return this\n }\n\n opacity (value) {\n this.rules.push({ key: 'opacity', rule: `opacity: ${value}` })\n return this\n }\n\n backgroundColor (value) {\n this.rules.push({ key: 'backgroundColor', rule: `background-color: ${value}` })\n return this\n }\n\n width (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'width', rule: `width: ${value}` })\n return this\n }\n\n height (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'height', rule: `height: ${value}` })\n return this\n }\n\n top (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'top', rule: `top: ${value}` })\n return this\n }\n\n right (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'right', rule: `right: ${value}` })\n return this\n }\n\n bottom (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'bottom', rule: `bottom: ${value}` })\n return this\n }\n\n left (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'left', rule: `left: ${value}` })\n return this\n }\n\n // 关键帧载入\n step (arg: Partial<IAnimationAttr> = {}) {\n const { DEFAULT } = this\n const {\n duration = DEFAULT.duration,\n delay = DEFAULT.delay,\n timingFunction = DEFAULT.timingFunction,\n transformOrigin = DEFAULT.transformOrigin,\n } = arg\n // 生成一条 transition 动画\n\n this.transform.map((t0) => {\n const index = this.historyAnimations.findIndex((t1) => t1.key === t0.key)\n if (index === -1) {\n this.historyAnimations.push(t0)\n } else {\n this.historyAnimations[index] = t0\n }\n })\n const transforms = this.historyAnimations.map((t) => t.transform)\n const transformSequence = transforms.length > 0 ? `${TRANSFORM}:${transforms.join(' ')}!important` : ''\n\n this.rules.map((r0) => {\n const index = this.historyRules.findIndex((r1) => r1.key === r0.key)\n if (index === -1) {\n this.historyRules.push(r0)\n } else {\n this.historyRules[index] = r0\n }\n })\n const rules = this.historyRules.map((t) => t.rule)\n const ruleSequence = rules.length > 0 ? rules.map((rule) => `${rule}!important`).join(';') : ''\n\n this.steps.push(\n [\n ruleSequence,\n transformSequence,\n `${TRANSFORM}-origin: ${transformOrigin}`,\n `transition: all ${duration}ms ${timingFunction} ${delay}ms`,\n ]\n .filter((item) => item !== '')\n .join(';')\n )\n // 清空 rules 和 transform\n this.rules = []\n this.transform = []\n return this as Taro.Animation\n }\n\n // 创建底层数据\n createAnimationData () {\n const animIndex = `taro-h5-poly-fill/${this.id}/create-animation__${this.animationMapCount++}`\n // 记录动画分几个 step\n this.animationMap[animIndex] = this.steps.length\n // 吐出 step\n this.steps.forEach((step, index) => {\n const selector =\n index === 0\n ? `[animation=\"${animIndex}\"], [data-animation=\"${animIndex}\"]`\n : `[animation=\"${animIndex}--${index}\"], [data-animation=\"${animIndex}--${index}\"]`\n styleSheet.add(`${selector} { ${step} }`)\n })\n\n // 清空 steps\n this.steps = []\n return animIndex\n }\n\n // 动画数据产出\n export () {\n return this.createAnimationData() as unknown as ReturnType<Taro.Animation['export']>\n }\n}\n\n// h5 的 createAnimation\nexport const createAnimation: typeof Taro.createAnimation = (option) => {\n return new Animation(option)\n}\n","import { temporarilyNotSupport } from '../../utils'\n\n// 背景\nexport const setBackgroundTextStyle = /* @__PURE__ */ temporarilyNotSupport('setBackgroundTextStyle')\nexport const setBackgroundColor = /* @__PURE__ */ temporarilyNotSupport('setBackgroundColor')\n","import Taro from '@tarojs/api'\n\n// 自定义组件\nexport const nextTick = Taro.nextTick\n","import Taro from '@tarojs/api'\n\nimport { MethodHandler } from '../../utils/handler'\n\n// 字体\nexport const loadFontFace: typeof Taro.loadFontFace = async options => {\n options = Object.assign({ global: false }, options)\n const { success, fail, complete, family, source, desc = {} } = options\n const handle = new MethodHandler({ name: 'loadFontFace', success, fail, complete })\n // @ts-ignore\n const fonts = document.fonts\n if (fonts) {\n // @ts-ignore\n const fontFace = new FontFace(family, source, desc)\n try {\n await fontFace.load()\n fonts.add(fontFace)\n return handle.success({ status: 'loaded' })\n } catch (error) {\n return handle.fail({\n status: 'error',\n errMsg: error.message || error,\n })\n }\n } else {\n const style = document.createElement('style')\n let innerText = `font-family:\"${\n family\n }\";src:${\n source\n };font-style:${\n desc.style || 'normal'\n };font-weight:${\n desc.weight || 'normal'\n };font-variant:${\n desc.variant || 'normal'\n };`\n\n if (desc.ascentOverride) {\n innerText += `ascent-override:${desc.ascentOverride};`\n }\n if (desc.descentOverride) {\n innerText += `descent-override:${desc.descentOverride};`\n }\n if (desc.featureSettings) {\n innerText += `font-feature-settings:${desc.featureSettings};`\n }\n if (desc.lineGapOverride) {\n innerText += `line-gap-override:${desc.lineGapOverride};`\n }\n if (desc.stretch) {\n innerText += `font-stretch:${desc.stretch};`\n }\n if (desc.unicodeRange) {\n innerText += `unicode-range:${desc.unicodeRange};`\n }\n if (desc.variationSettings) {\n innerText += `font-variation-settings:${desc.variationSettings};`\n }\n\n style.innerText = `@font-face{${innerText}}`\n document.head.appendChild(style)\n return handle.success({ status: 'loaded' })\n }\n}\n","import { temporarilyNotSupport } from '../../utils'\n\n// 菜单\nexport const getMenuButtonBoundingClientRect = /* @__PURE__ */ temporarilyNotSupport('getMenuButtonBoundingClientRect')\n","import Taro from '@tarojs/api'\nimport { setNavigationBarLoading, setNavigationBarStyle, setTitle } from '@tarojs/router'\n\nimport { getParameterError, shouldBeObject, temporarilyNotSupport } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n// 导航栏\n/**\n * 展示导航栏 loading 状态\n*/\nexport function showNavigationBarLoading (options: Taro.showNavigationBarLoading.Option = {}) {\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'showNavigationBarLoading', success, fail, complete })\n setNavigationBarLoading(true)\n return handle.success()\n}\n\nexport function setNavigationBarTitle (options?: Taro.setNavigationBarTitle.Option) {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `setNavigationBarTitle:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { title, success, fail, complete } = options as Exclude<typeof options, undefined>\n const handle = new MethodHandler({ name: 'setNavigationBarTitle', success, fail, complete })\n\n if (!title || typeof title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: title\n })\n })\n }\n\n setTitle(title)\n\n return handle.success()\n}\n\n/**\n * 设置页面导航条颜色\n */\nexport const setNavigationBarColor: typeof Taro.setNavigationBarColor = (options) => {\n const { backgroundColor, frontColor, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'setNavigationBarColor', success, fail, complete })\n const meta = document.createElement('meta')\n meta.setAttribute('name', 'theme-color')\n meta.setAttribute('content', backgroundColor)\n document.head.appendChild(meta)\n setNavigationBarStyle({ frontColor, backgroundColor })\n return handle.success()\n}\n\n/**\n * 隐藏导航栏 loading 状态\n*/\nexport function hideNavigationBarLoading (options: Taro.hideNavigationBarLoading.Option = {}) {\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'hideNavigationBarLoading', success, fail, complete })\n setNavigationBarLoading(false)\n return handle.success()\n}\n\nexport const hideHomeButton = /* @__PURE__ */ temporarilyNotSupport('hideHomeButton')\n","import Taro from '@tarojs/api'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\n/**\r\n * 开始下拉刷新。调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。\r\n */\r\nexport const startPullDownRefresh: typeof Taro.startPullDownRefresh = function ({ success, fail, complete } = {}) {\r\n const handle = new MethodHandler({ name: 'startPullDownRefresh', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n Taro.eventCenter.trigger('__taroStartPullDownRefresh', {\r\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\r\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * 停止当前页面下拉刷新。\r\n */\r\nexport const stopPullDownRefresh: typeof Taro.stopPullDownRefresh = function ({ success, fail, complete } = {}) {\r\n const handle = new MethodHandler({ name: 'stopPullDownRefresh', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n Taro.eventCenter.trigger('__taroStopPullDownRefresh', {\r\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\r\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\r\n })\r\n })\r\n}\r\n","import Taro from '@tarojs/api'\r\nimport { Current } from '@tarojs/runtime'\r\n\r\nimport { easeInOut, getTimingFunc } from '../../../utils'\r\nimport { MethodHandler } from '../../../utils/handler'\r\n\r\nlet timer: ReturnType<typeof setTimeout>\r\nconst FRAME_DURATION = 17\r\n\r\n/**\r\n * 将页面滚动到目标位置\r\n */\r\nexport const pageScrollTo: typeof Taro.pageScrollTo = ({ scrollTop, selector = '', offsetTop = 0, duration = 300, success, fail, complete }) => {\r\n let scrollFunc\r\n const handle = new MethodHandler({ name: 'pageScrollTo', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n try {\r\n if (scrollTop === undefined && !selector) {\r\n return handle.fail({\r\n errMsg: 'scrollTop\" 或 \"selector\" 需要其之一'\r\n }, { resolve, reject })\r\n }\r\n\r\n const usingWindowScroll = (window as any).__taroAppConfig?.usingWindowScroll\r\n const id = Current.page?.path?.replace(/([^a-z0-9\\u00a0-\\uffff_-])/ig, '\\\\$1')\r\n const el: HTMLDivElement | null = (id\r\n ? document.querySelector(`.taro_page#${id}`)\r\n : document.querySelector('.taro_page') ||\r\n document.querySelector('.taro_router')) as HTMLDivElement\r\n\r\n if (!scrollFunc) {\r\n if (usingWindowScroll) {\r\n scrollFunc = pos => {\r\n if (pos === undefined) {\r\n return window.pageYOffset\r\n } else {\r\n window.scrollTo(0, pos)\r\n }\r\n }\r\n } else {\r\n scrollFunc = pos => {\r\n if (pos === undefined) {\r\n return el.scrollTop\r\n } else {\r\n el.scrollTop = pos\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (scrollTop && selector) {\r\n console.warn('\"scrollTop\" 或 \"selector\" 建议只设一个值,全部设置会忽略selector')\r\n }\r\n const from = scrollFunc()\r\n let to: number\r\n if (selector) {\r\n const el = document.querySelector(selector) as HTMLElement\r\n to = (el?.offsetTop || 0) + offsetTop\r\n } else {\r\n to = typeof scrollTop === 'number' ? scrollTop : 0\r\n }\r\n const delta = to - from\r\n\r\n const frameCnt = duration / FRAME_DURATION\r\n const easeFunc = getTimingFunc(easeInOut, frameCnt)\r\n\r\n const scroll = (frame = 0) => {\r\n const dest = from + delta * easeFunc(frame)\r\n scrollFunc(dest)\r\n if (frame < frameCnt) {\r\n timer && clearTimeout(timer)\r\n timer = setTimeout(() => {\r\n scroll(frame + 1)\r\n }, FRAME_DURATION)\r\n } else {\r\n return handle.success({}, { resolve, reject })\r\n }\r\n }\r\n scroll()\r\n } catch (e) {\r\n return handle.fail({\r\n errMsg: e.message\r\n }, { resolve, reject })\r\n }\r\n })\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// 置顶\nexport const setTopBarText = /* @__PURE__ */ temporarilyNotSupport('setTopBarText')\n","import Taro, { AppConfig } from '@tarojs/api'\n\nimport { getParameterError, isValidColor, shouldBeObject } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\nlet tabConf\n\nexport function initTabBarApis (config: AppConfig = {}) {\n tabConf = config.tabBar\n}\n\n/**\n * 显示 tabBar 某一项的右上角的红点\n */\nexport const showTabBarRedDot: typeof Taro.showTabBarRedDot = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `showTabBarRedDot:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n index,\n success,\n fail,\n complete\n } = options\n const handle = new MethodHandler({ name: 'showTabBarRedDot', success, fail, complete })\n\n if (typeof index !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'index',\n correct: 'Number',\n wrong: index\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroShowTabBarRedDotHandler', {\n index,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 显示 tabBar\n */\nexport const showTabBar: typeof Taro.showTabBar = (options = {}) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `showTabBar:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { animation, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'showTabBar', success, fail, complete })\n\n if (options.hasOwnProperty('animation') && typeof animation !== 'boolean') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'animation',\n correct: 'Boolean',\n wrong: animation\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroShowTabBar', {\n animation,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 动态设置 tabBar 的整体样式\n */\nexport const setTabBarStyle: typeof Taro.setTabBarStyle = (options = {}) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `setTabBarStyle:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { color, selectedColor, backgroundColor, borderStyle, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'setTabBarStyle', success, fail, complete })\n\n let errMsg\n if (color && !isValidColor(color)) {\n errMsg = 'color'\n } else if (selectedColor && !isValidColor(selectedColor)) {\n errMsg = 'selectedColor'\n } else if (backgroundColor && !isValidColor(backgroundColor)) {\n errMsg = 'backgroundColor'\n } else if (borderStyle && !/^(black|white)$/.test(borderStyle)) {\n errMsg = 'borderStyle'\n }\n\n if (errMsg) {\n return handle.fail({ errMsg: `invalid ${errMsg}` })\n }\n\n if (!tabConf) {\n return handle.fail()\n }\n\n const obj: Taro.setTabBarStyle.Option = {}\n if (color) obj.color = color\n if (selectedColor) obj.selectedColor = selectedColor\n if (backgroundColor) obj.backgroundColor = backgroundColor\n if (borderStyle) obj.borderStyle = borderStyle\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroSetTabBarStyle', {\n color,\n selectedColor,\n backgroundColor,\n borderStyle,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 动态设置 tabBar 某一项的内容\n */\nexport const setTabBarItem: typeof Taro.setTabBarItem = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `setTabBarItem:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n index,\n text,\n iconPath,\n selectedIconPath,\n success,\n fail,\n complete\n } = options\n const handle = new MethodHandler({ name: 'setTabBarItem', success, fail, complete })\n\n if (typeof index !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'index',\n correct: 'Number',\n wrong: index\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroSetTabBarItem', {\n index,\n text,\n iconPath,\n selectedIconPath,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 为 tabBar 某一项的右上角添加文本\n */\nexport const setTabBarBadge: typeof Taro.setTabBarBadge = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `setTabBarBadge:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { index, text, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'setTabBarBadge', success, fail, complete })\n\n if (typeof index !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'index',\n correct: 'Number',\n wrong: index\n })\n })\n }\n\n if (typeof text !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'text',\n correct: 'String',\n wrong: text\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroSetTabBarBadge', {\n index,\n text: text.replace(/[\\u0391-\\uFFE5]/g, 'aa').length > 4 ? '...' : text,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 移除 tabBar 某一项右上角的文本\n */\nexport const removeTabBarBadge: typeof Taro.removeTabBarBadge = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `removeTabBarBadge:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { index, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'removeTabBarBadge', success, fail, complete })\n\n if (typeof index !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'index',\n correct: 'Number',\n wrong: index\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroRemoveTabBarBadge', {\n index,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 隐藏 tabBar 某一项的右上角的红点\n */\nexport const hideTabBarRedDot: typeof Taro.hideTabBarRedDot = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `hideTabBarRedDot:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { index, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'hideTabBarRedDot', success, fail, complete })\n\n if (typeof index !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'index',\n correct: 'Number',\n wrong: index\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroHideTabBarRedDotHandler', {\n index,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 隐藏 tabBar\n */\nexport const hideTabBar: typeof Taro.hideTabBar = (options = {}) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `hideTabBar:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { animation, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'hideTabBar', success, fail, complete })\n\n if (options.hasOwnProperty('animation') && typeof animation !== 'boolean') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'animation',\n correct: 'Boolean',\n wrong: animation\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroHideTabBar', {\n animation,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { temporarilyNotSupport } from '../../utils'\r\nimport { CallbackManager } from '../../utils/handler'\r\n\r\nconst callbackManager = new CallbackManager()\r\n\r\nconst resizeListener = () => {\r\n callbackManager.trigger({\r\n windowWidth: window.screen.width,\r\n windowHeight: window.screen.height\r\n })\r\n}\r\n\r\n/**\r\n * 设置窗口大小,该接口仅适用于 PC 平台,使用细则请参见指南\r\n */\r\nexport const setWindowSize = /* @__PURE__ */ temporarilyNotSupport('setWindowSize')\r\n\r\n/**\r\n * 监听窗口尺寸变化事件\r\n */\r\nexport const onWindowResize: typeof Taro.onWindowResize = callback => {\r\n callbackManager.add(callback)\r\n if (callbackManager.count() === 1) {\r\n window.addEventListener('resize', resizeListener)\r\n }\r\n}\r\n\r\n/**\r\n * 取消监听窗口尺寸变化事件\r\n */\r\nexport const offWindowResize: typeof Taro.offWindowResize = callback => {\r\n callbackManager.remove(callback)\r\n if (callbackManager.count() === 0) {\r\n window.removeEventListener('resize', resizeListener)\r\n }\r\n}\r\n\r\nexport const checkIsPictureInPictureActive = /* @__PURE__ */ temporarilyNotSupport('checkIsPictureInPictureActive')\r\n","import Taro from '@tarojs/api'\nimport { isMobile } from 'is-mobile'\n\nimport { showActionSheet } from '../../../api/ui'\nimport { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n/**\n * 拍摄或从手机相册中选择图片或视频。\n */\nexport const chooseMedia = async function (\n options: Taro.chooseMedia.Option,\n methodName = 'chooseMedia',\n): Promise<Taro.chooseMedia.SuccessCallbackResult> {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n count = 9,\n mediaId = 'taroChooseMedia',\n mediaType = ['image', 'video'],\n sourceType = ['album', 'camera'],\n // sizeType = ['original', 'compressed'], // TODO 考虑通过 ffmpeg 支持压缩\n // maxDuration = 10, // TODO 考虑通过 ffmpeg 剪裁视频\n camera = 'back',\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n const withImage = mediaType.length < 1 || mediaType.indexOf('image') > -1\n const withVideo = mediaType.length < 1 || mediaType.indexOf('video') > -1\n const res: Partial<Taro.chooseMedia.SuccessCallbackResult> = {\n tempFiles: [],\n type: withImage && withVideo ? 'mix' : withImage ? 'image' : 'video',\n }\n\n if (count && typeof count !== 'number') {\n res.errMsg = getParameterError({\n para: 'count',\n correct: 'Number',\n wrong: count\n })\n return handle.fail(res)\n }\n\n let el = document.getElementById(mediaId)\n if (!el) {\n el = document.createElement('input')\n el.setAttribute('type', 'file')\n el.setAttribute('id', mediaId)\n el.setAttribute('style', 'position: fixed; top: -4000px; left: -3000px; z-index: -300;')\n }\n\n if (count > 1) {\n el.setAttribute('multiple', 'multiple')\n } else {\n el.removeAttribute('multiple')\n }\n\n // Note: Input 仅在移动端支持 capture 属性,可以使用 getUserMedia 替代(暂不考虑)\n if (isMobile()) {\n if (sourceType.length > 1 || sourceType.length < 1) {\n try {\n const { tapIndex } = await showActionSheet({\n itemList: ['拍摄', '从相册选择'],\n }, methodName)\n sourceType.splice(0, sourceType.length, tapIndex === 0 ? 'camera' : 'album')\n } catch (e) {\n return handle.fail({\n errMsg: e.errMsg?.replace('^.*:fail ', '')\n })\n }\n }\n }\n if (sourceType.includes('camera')) {\n el.setAttribute('capture', camera === 'front' ? 'user' : 'environment')\n } else {\n el.removeAttribute('capture')\n }\n\n if (res.type === 'image') {\n el.setAttribute('accept', 'image/*')\n } else if (res.type === 'video') {\n el.setAttribute('accept', 'video/*')\n } else {\n el.setAttribute('accept', 'image/*, video/*')\n }\n return new Promise<Taro.chooseMedia.SuccessCallbackResult>((resolve, reject) => {\n if (!el) return\n document.body.appendChild(el)\n el.onchange = async function (e) {\n const target = e.target as HTMLInputElement\n if (target) {\n const files = target.files || []\n const arr = [...files]\n await Promise.all(\n arr.map(async item => {\n try {\n res.tempFiles?.push(await loadMedia(item))\n } catch (error) {\n console.error(error)\n }\n })\n )\n }\n handle.success(res, { resolve, reject })\n target.value = ''\n }\n el.onabort = () => handle.fail({ errMsg: 'abort' }, { resolve, reject })\n el.oncancel = () => handle.fail({ errMsg: 'cancel' }, { resolve, reject })\n el.onerror = e => handle.fail({ errMsg: e.toString() }, { resolve, reject })\n el.click()\n }).finally(() => {\n if (!el) return\n document.body.removeChild(el)\n })\n\n function loadMedia (file: File): Promise<Taro.chooseMedia.ChooseMedia> {\n const dataUrl = URL.createObjectURL(file)\n const res = {\n tempFilePath: dataUrl,\n size: file.size,\n duration: 0,\n height: 0,\n width: 0,\n thumbTempFilePath: '',\n fileType: file.type,\n originalFileObj: file\n }\n\n if (/^video\\//.test(res.fileType)) {\n // Video\n const video = document.createElement('video')\n const reader = new FileReader()\n video.crossOrigin = 'Anonymous'\n video.preload = 'metadata'\n video.src = res.tempFilePath\n\n return new Promise((resolve, reject) => {\n // 对齐旧版本实现\n reader.onload = (event) => {\n res.tempFilePath = event.target?.result as string\n }\n reader.onerror = e => reject(e)\n reader.readAsDataURL(res.originalFileObj)\n\n video.onloadedmetadata = () => {\n res.duration = video.duration\n res.height = video.videoHeight\n res.width = video.videoWidth\n }\n video.oncanplay = () => {\n res.thumbTempFilePath = getThumbTempFilePath(video, res.height, res.width, 0.8)\n resolve(res)\n }\n video.onerror = e => reject(e)\n })\n } else {\n // Image\n const img = new Image()\n /** 允许图片和 canvas 跨源使用\n * https://developer.mozilla.org/zh-CN/docs/Web/HTML/CORS_enabled_image\n */\n img.crossOrigin = 'Anonymous'\n img.src = res.tempFilePath\n\n return new Promise((resolve, reject) => {\n if (img.complete) {\n res.height = img.height\n res.width = img.width\n res.thumbTempFilePath = getThumbTempFilePath(img, res.height, res.width, 0.8)\n resolve(res)\n } else {\n img.onload = () => {\n res.height = img.height\n res.width = img.width\n res.thumbTempFilePath = getThumbTempFilePath(img, res.height, res.width, 0.8)\n resolve(res)\n }\n img.onerror = e => reject(e)\n }\n })\n }\n }\n\n function getThumbTempFilePath (el: CanvasImageSource, height = 0, width = height, quality = 0.8) {\n const max = 256\n const canvas = document.createElement('canvas')\n if (height > max || width > max) {\n const radio = height / width\n if (radio > 1) {\n height = max\n width = height / radio\n } else {\n width = max\n height = width * radio\n }\n }\n canvas.height = height\n canvas.width = width\n\n const ctx = canvas.getContext('2d')\n ctx?.drawImage(el, 0, 0, canvas.width, canvas.height)\n return canvas.toDataURL('image/jpeg', quality)\n }\n}\n","import Taro from '@tarojs/api'\n\nimport { shouldBeObject } from '../../../utils'\nimport { chooseMedia } from '../video/chooseMedia'\n\n/**\n * 从本地相册选择图片或使用相机拍照。\n * @deprecated 请使用 chooseMedia 接口\n */\nexport const chooseImage: typeof Taro.chooseImage = function (options) {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `chooseImage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n let camera = 'back'\n const {\n sourceType = ['album', 'camera'],\n success,\n complete,\n fail,\n ...args\n } = options\n if (sourceType.includes('camera') && sourceType.indexOf('user') > -1) {\n camera = 'front'\n }\n\n function parseRes (res: Taro.chooseMedia.SuccessCallbackResult): Taro.chooseImage.SuccessCallbackResult {\n const { tempFiles = [], errMsg } = res\n return {\n tempFilePaths: tempFiles.map(item => item.tempFilePath),\n tempFiles: tempFiles.map(item => ({\n path: item.tempFilePath,\n size: item.size,\n type: item.fileType,\n originalFileObj: item.originalFileObj,\n })),\n errMsg,\n }\n }\n\n return chooseMedia({\n mediaId: 'taroChooseImage',\n ...args,\n sourceType: sourceType as Taro.chooseMedia.Option['sourceType'],\n mediaType: ['image'],\n camera,\n success: (res) => {\n const param = parseRes(res)\n success?.(param)\n complete?.(param)\n },\n fail: (err) => {\n fail?.(err)\n complete?.(err)\n },\n }, 'chooseImage').then(parseRes)\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { permanentlyNotSupport, temporarilyNotSupport } from '../../../utils'\r\n\r\n// 图片\r\nexport * from './saveImageToPhotosAlbum'\r\nexport const previewMedia: typeof Taro.previewMedia = /* @__PURE__ */ temporarilyNotSupport('previewMedia')\r\n\r\nexport * from './getImageInfo'\r\nexport * from './previewImage'\r\n\r\nexport const compressImage = /* @__PURE__ */ temporarilyNotSupport('compressImage')\r\nexport const chooseMessageFile = /* @__PURE__ */ permanentlyNotSupport('chooseMessageFile')\r\n\r\nexport * from './chooseImage'\r\n\r\nexport const editImage = /* @__PURE__ */ temporarilyNotSupport('editImage')\r\nexport const cropImage = /* @__PURE__ */ temporarilyNotSupport('cropImage')\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// 实时音视频\nexport const createLivePusherContext = /* @__PURE__ */ temporarilyNotSupport('createLivePusherContext')\nexport const createLivePlayerContext = /* @__PURE__ */ temporarilyNotSupport('createLivePlayerContext')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 地图\nexport const createMapContext = /* @__PURE__ */ temporarilyNotSupport('createMapContext')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 画面录制器\nexport const createMediaRecorder = /* @__PURE__ */ temporarilyNotSupport('createMediaRecorder')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 录音\nexport const stopRecord = /* @__PURE__ */ temporarilyNotSupport('stopRecord')\nexport const startRecord = /* @__PURE__ */ temporarilyNotSupport('startRecord')\nexport const getRecorderManager = /* @__PURE__ */ temporarilyNotSupport('getRecorderManager')\n","import Taro from '@tarojs/api'\n\nimport { createDownload, getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\nexport const saveVideoToPhotosAlbum: typeof Taro.saveVideoToPhotosAlbum = (options) => {\n const methodName = 'saveVideoToPhotosAlbum'\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n filePath,\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n if (typeof filePath !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'filePath',\n correct: 'String',\n wrong: filePath\n })\n })\n }\n\n createDownload(filePath)\n return handle.success()\n}\n","import 'whatwg-fetch'\n\nimport Taro from '@tarojs/api'\n\nimport { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\nexport const getVideoInfo: typeof Taro.getVideoInfo = async function (options) {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `getVideoInfo:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n const res: Partial<Taro.getVideoInfo.SuccessCallbackResult> = {\n orientation: 'up',\n type: '',\n duration: 0,\n size: 0,\n height: 0,\n width: 0,\n fps: 30,\n bitrate: 0,\n }\n const {\n src,\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: 'getVideoInfo', success, fail, complete })\n\n if (typeof src !== 'string') {\n res.errMsg = getParameterError({\n para: 'src',\n correct: 'String',\n wrong: src\n })\n return handle.fail(res)\n }\n\n const video = document.createElement('video')\n video.crossOrigin = 'Anonymous'\n video.preload = 'metadata'\n video.src = src\n\n return new Promise((resolve, reject) => {\n video.onloadedmetadata = () => {\n res.duration = video.duration\n res.height = video.videoHeight\n res.width = video.videoWidth\n\n fetch(src)\n .then(async e => {\n const blob = await e.blob()\n res.type = blob.type\n res.size = blob.size\n res.bitrate = blob.size / video.duration\n\n handle.success(res, { resolve, reject })\n })\n .catch(e => {\n handle.fail({\n errMsg: e.toString()\n }, { resolve, reject })\n })\n }\n })\n}\n","import Taro from '@tarojs/api'\n\nimport { shouldBeObject } from '../../../utils'\nimport { chooseMedia } from './chooseMedia'\n\n/**\n * 拍摄视频或从手机相册中选视频。\n * @deprecated 请使用 chooseMedia 接口\n */\nexport const chooseVideo: typeof Taro.chooseVideo = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `chooseVideo:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n sourceType = ['album', 'camera'],\n // TODO 考虑通过 ffmpeg 支持压缩\n // compressed = true,\n maxDuration = 60,\n camera = 'back',\n success,\n fail,\n complete,\n } = options\n\n function parseRes (res: Taro.chooseMedia.SuccessCallbackResult): Taro.chooseVideo.SuccessCallbackResult {\n const { tempFiles = [], errMsg } = res\n const [video] = tempFiles\n return { ...video, errMsg }\n }\n\n return chooseMedia({\n mediaId: 'taroChooseVideo',\n sourceType,\n mediaType: ['video'],\n maxDuration,\n camera,\n success: (res) => {\n const param = parseRes(res)\n success?.(param)\n complete?.(param)\n },\n fail: (err) => {\n fail?.(err)\n complete?.(err)\n },\n }, 'chooseVideo').then(parseRes)\n}\n","import Taro from '@tarojs/api'\n\nimport { findDOM, temporarilyNotSupport } from '../../../utils'\n\n// 视频\nexport * from './saveVideoToPhotosAlbum'\n\nexport const openVideoEditor = /* @__PURE__ */ temporarilyNotSupport('openVideoEditor')\n\nexport * from './getVideoInfo'\n\n/**\n * 创建 video 上下文 VideoContext 对象。\n */\nexport const createVideoContext: typeof Taro.createVideoContext = (id, inst) => {\n const el = findDOM(inst) as HTMLVideoElement\n // TODO HTMLVideoElement to VideoContext\n return el?.querySelector(`taro-video-core[id=${id}]`) as unknown as Taro.VideoContext\n}\n\nexport const compressVideo = /* @__PURE__ */ temporarilyNotSupport('compressVideo')\n\nexport * from './chooseMedia'\nexport * from './chooseVideo'\n","import { temporarilyNotSupport } from '../../utils'\n\n// 视频解码器\nexport const createVideoDecoder = /* @__PURE__ */ temporarilyNotSupport('createVideoDecoder')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 音视频合成\nexport const createMediaContainer = /* @__PURE__ */ temporarilyNotSupport('createMediaContainer')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 实时语音\nexport const updateVoIPChatMuteConfig = /* @__PURE__ */ temporarilyNotSupport('updateVoIPChatMuteConfig')\nexport const subscribeVoIPVideoMembers = /* @__PURE__ */ temporarilyNotSupport('subscribeVoIPVideoMembers')\nexport const setEnable1v1Chat = /* @__PURE__ */ temporarilyNotSupport('setEnable1v1Chat')\nexport const onVoIPVideoMembersChanged = /* @__PURE__ */ temporarilyNotSupport('onVoIPVideoMembersChanged')\nexport const onVoIPChatStateChanged = /* @__PURE__ */ temporarilyNotSupport('onVoIPChatStateChanged')\nexport const onVoIPChatSpeakersChanged = /* @__PURE__ */ temporarilyNotSupport('onVoIPChatSpeakersChanged')\nexport const onVoIPChatMembersChanged = /* @__PURE__ */ temporarilyNotSupport('onVoIPChatMembersChanged')\nexport const onVoIPChatInterrupted = /* @__PURE__ */ temporarilyNotSupport('onVoIPChatInterrupted')\nexport const offVoIPChatSpeakersChanged = /* @__PURE__ */ temporarilyNotSupport('offVoIPChatSpeakersChanged')\nexport const offVoIPVideoMembersChanged = /* @__PURE__ */ temporarilyNotSupport('offVoIPVideoMembersChanged')\nexport const offVoIPChatStateChanged = /* @__PURE__ */ temporarilyNotSupport('offVoIPChatStateChanged')\nexport const offVoIPChatMembersChanged = /* @__PURE__ */ temporarilyNotSupport('offVoIPChatMembersChanged')\nexport const offVoIPChatInterrupted = /* @__PURE__ */ temporarilyNotSupport('offVoIPChatInterrupted')\nexport const joinVoIPChat = /* @__PURE__ */ temporarilyNotSupport('joinVoIPChat')\nexport const join1v1Chat = /* @__PURE__ */ temporarilyNotSupport('join1v1Chat')\nexport const exitVoIPChat = /* @__PURE__ */ temporarilyNotSupport('exitVoIPChat')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 跳转\nexport const openEmbeddedMiniProgram = /* @__PURE__ */ temporarilyNotSupport('openEmbeddedMiniProgram')\nexport const navigateToMiniProgram = /* @__PURE__ */ temporarilyNotSupport('navigateToMiniProgram')\nexport const navigateBackMiniProgram = /* @__PURE__ */ temporarilyNotSupport('navigateBackMiniProgram')\nexport const exitMiniProgram = /* @__PURE__ */ temporarilyNotSupport('exitMiniProgram')\nexport const openBusinessView = /* @__PURE__ */ temporarilyNotSupport('openBusinessView')\n","/**\r\n * HTTP Response Header 事件回调函数的参数\r\n * @typedef {Object} HeadersReceivedParam\r\n * @property {Object} header 开发者服务器返回的 HTTP Response Header\r\n */\r\n\r\n/**\r\n * HTTP Response Header 事件的回调函数\r\n * @callback HeadersReceivedCallback\r\n * @param {HeadersReceivedParam} res 参数\r\n */\r\n\r\n/**\r\n * 进度变化回调函数的参数\r\n * @typedef {Object} ProgressUpdateParam\r\n * @property {number} progress 进度百分比\r\n * @property {number} [totalBytesWritten] 已经下载的数据长度,单位 Bytes\r\n * @property {number} [totalBytesSent] 已经上传的数据长度,单位 Bytes\r\n * @property {number} [totalBytesExpectedToWrite] 预期需要下载的数据总长度,单位 Bytes\r\n * @property {number} [totalBytesExpectedToSend] 预期需要上传的数据总长度,单位 Bytes\r\n */\r\n\r\n/**\r\n * 进度变化事件的回调函数\r\n * @callback ProgressUpdateCallback\r\n * @param {ProgressUpdateParam} res 参数\r\n */\r\n\r\nexport const NETWORK_TIMEOUT = 60000\r\n\r\nexport const XHR_STATS = {\r\n UNSENT: 0, // Client has been created. open() not called yet.\r\n OPENED: 1, // open() has been called.\r\n HEADERS_RECEIVED: 2, // send() has been called, and headers and status are available.\r\n LOADING: 3, // Downloading; responseText holds partial data.\r\n DONE: 4 // The operation is complete.\r\n}\r\n\r\n/**\r\n * 设置xhr的header\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} header\r\n */\r\nexport const setHeader = (xhr, header) => {\r\n let headerKey\r\n for (headerKey in header) {\r\n xhr.setRequestHeader(headerKey, header[headerKey])\r\n }\r\n}\r\n\r\n/**\r\n * 将 blob url 转化为文件\r\n * @param {string} url 要转换的 blob url\r\n * @returns {Promise<File>}\r\n */\r\nexport const convertObjectUrlToBlob = url => {\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest()\r\n xhr.open('GET', url, true)\r\n xhr.responseType = 'blob'\r\n xhr.withCredentials = true\r\n xhr.onload = function () {\r\n if (this.status === 200) {\r\n resolve(this.response)\r\n } else {\r\n /* eslint-disable prefer-promise-reject-errors */\r\n reject({ status: this.status })\r\n }\r\n }\r\n xhr.send()\r\n })\r\n}\r\n","import Taro from '@tarojs/api'\r\n\r\nimport { CallbackManager } from '../../utils/handler'\r\nimport { NETWORK_TIMEOUT, setHeader, XHR_STATS } from './utils'\r\n\r\nconst createDownloadTask = ({ url, header, withCredentials = true, timeout, success, error }): Taro.DownloadTask => {\r\n let timeoutInter: ReturnType<typeof setTimeout>\r\n const apiName = 'downloadFile'\r\n const xhr = new XMLHttpRequest()\r\n const callbackManager = {\r\n headersReceived: new CallbackManager(),\r\n progressUpdate: new CallbackManager()\r\n }\r\n\r\n xhr.open('GET', url, true)\r\n xhr.withCredentials = !!withCredentials\r\n xhr.responseType = 'blob'\r\n setHeader(xhr, header)\r\n\r\n xhr.onprogress = e => {\r\n const { loaded, total } = e\r\n callbackManager.progressUpdate.trigger({\r\n progress: Math.round(loaded / total * 100),\r\n totalBytesWritten: loaded,\r\n totalBytesExpectedToWrite: total\r\n })\r\n }\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState !== XHR_STATS.HEADERS_RECEIVED) return\r\n callbackManager.headersReceived.trigger({\r\n header: xhr.getAllResponseHeaders()\r\n })\r\n }\r\n\r\n xhr.onload = () => {\r\n const response = xhr.response\r\n const status = xhr.status\r\n success({\r\n errMsg: `${apiName}:ok`,\r\n statusCode: status,\r\n tempFilePath: window.URL.createObjectURL(response)\r\n })\r\n }\r\n\r\n xhr.onabort = () => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail abort`\r\n })\r\n }\r\n\r\n xhr.onerror = (e: ProgressEvent<EventTarget> & { message?: string }) => {\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n }\r\n\r\n /**\r\n * 中断任务\r\n */\r\n const abort = () => {\r\n xhr.abort()\r\n }\r\n\r\n const send = () => {\r\n xhr.send()\r\n timeoutInter = setTimeout(() => {\r\n xhr.onabort = null\r\n xhr.onload = null\r\n xhr.onprogress = null\r\n xhr.onreadystatechange = null\r\n xhr.onerror = null\r\n abort()\r\n error({\r\n errMsg: `${apiName}:fail timeout`\r\n })\r\n }, timeout || NETWORK_TIMEOUT)\r\n }\r\n\r\n send()\r\n\r\n /**\r\n * 监听 HTTP Response Header 事件。会比请求完成事件更早\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onHeadersReceived = callbackManager.headersReceived.add\r\n /**\r\n * 取消监听 HTTP Response Header 事件\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offHeadersReceived = callbackManager.headersReceived.remove\r\n\r\n /**\r\n * 监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onProgressUpdate = callbackManager.progressUpdate.add\r\n /**\r\n * 取消监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offProgressUpdate = callbackManager.progressUpdate.remove\r\n\r\n return {\r\n abort,\r\n onHeadersReceived,\r\n offHeadersReceived,\r\n onProgressUpdate,\r\n offProgressUpdate\r\n }\r\n}\r\n\r\n/**\r\n * 下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径。使用前请注意阅读相关说明。\r\n * 注意:请在服务端响应的 header 中指定合理的 Content-Type 字段,以保证客户端正确处理文件类型。\r\n */\r\nexport const downloadFile: typeof Taro.downloadFile = ({ url, header, withCredentials, timeout, success, fail, complete }) => {\r\n let task!: Taro.DownloadTask\r\n const result: ReturnType<typeof Taro.downloadFile> = new Promise((resolve, reject) => {\r\n task = createDownloadTask({\r\n url,\r\n header,\r\n withCredentials,\r\n timeout,\r\n success: res => {\r\n success && success(res)\r\n complete && complete(res)\r\n resolve(res)\r\n },\r\n error: res => {\r\n fail && fail(res)\r\n complete && complete(res)\r\n reject(res)\r\n }\r\n })\r\n }) as any\r\n\r\n result.headersReceive = task.onHeadersReceived.bind(task)\r\n result.progress = task.onProgressUpdate.bind(task)\r\n\r\n const properties = {}\r\n Object.keys(task).forEach(key => {\r\n properties[key] = {\r\n get () {\r\n return typeof task[key] === 'function' ? task[key].bind(task) : task[key]\r\n }\r\n }\r\n })\r\n return Object.defineProperties(result, properties)\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// mDNS\nexport const stopLocalServiceDiscovery = /* @__PURE__ */ temporarilyNotSupport('stopLocalServiceDiscovery')\nexport const startLocalServiceDiscovery = /* @__PURE__ */ temporarilyNotSupport('startLocalServiceDiscovery')\nexport const onLocalServiceResolveFail = /* @__PURE__ */ temporarilyNotSupport('onLocalServiceResolveFail')\nexport const onLocalServiceLost = /* @__PURE__ */ temporarilyNotSupport('onLocalServiceLost')\nexport const onLocalServiceFound = /* @__PURE__ */ temporarilyNotSupport('onLocalServiceFound')\nexport const onLocalServiceDiscoveryStop = /* @__PURE__ */ temporarilyNotSupport('onLocalServiceDiscoveryStop')\nexport const offLocalServiceResolveFail = /* @__PURE__ */ temporarilyNotSupport('offLocalServiceResolveFail')\nexport const offLocalServiceLost = /* @__PURE__ */ temporarilyNotSupport('offLocalServiceLost')\nexport const offLocalServiceFound = /* @__PURE__ */ temporarilyNotSupport('offLocalServiceFound')\nexport const offLocalServiceDiscoveryStop = /* @__PURE__ */ temporarilyNotSupport('offLocalServiceDiscoveryStop')\n","import 'whatwg-fetch'\nimport 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'\n\nimport Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\nimport jsonpRetry from 'jsonp-retry'\n\nimport { serializeParams } from '../../../utils'\nimport { NETWORK_TIMEOUT } from '../utils'\n\ninterface RequestTask<T> extends Promise<T> {\n abort?: (cb?: any) => void\n}\n\n// @ts-ignore\nconst { Link } = Taro\n\nfunction generateRequestUrlWithParams (url = '', params?: unknown) {\n params = typeof params === 'string' ? params : serializeParams(params)\n if (params) {\n url += (~url.indexOf('?') ? '&' : '?') + params\n }\n url = url.replace('?&', '?')\n return url\n}\n\nfunction _request (options: Partial<Taro.request.Option> = {}) {\n const { success, complete, fail } = options\n const params: RequestInit = {}\n const res: any = {}\n let {\n cache = 'default',\n credentials,\n data, dataType,\n header = {},\n jsonp,\n method = 'GET',\n mode,\n responseType,\n signal,\n timeout,\n url = '',\n ...opts\n } = options\n if (typeof timeout !== 'number') {\n timeout = NETWORK_TIMEOUT\n }\n Object.assign(params, opts)\n if (jsonp) {\n // @ts-ignore\n params.params = data\n params.cache = opts.jsonpCache\n // @ts-ignore\n params.timeout = timeout\n if (typeof jsonp === 'string') {\n // @ts-ignore\n params.name = jsonp\n }\n // Note: https://github.com/luckyadam/jsonp-retry\n return jsonpRetry(url, params)\n .then(data => {\n res.statusCode = 200\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n return Promise.reject(err)\n })\n }\n params.method = method\n const methodUpper = params.method.toUpperCase()\n params.cache = cache\n if (methodUpper === 'GET' || methodUpper === 'HEAD') {\n url = generateRequestUrlWithParams(url, data)\n } else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(data)) >= 0) {\n const keyOfContentType = Object.keys(header).find(item => item.toLowerCase() === 'content-type')\n if (!keyOfContentType) {\n header['Content-Type'] = 'application/json'\n }\n const contentType = header[keyOfContentType || 'Content-Type']\n\n if (contentType.indexOf('application/json') >= 0) {\n params.body = JSON.stringify(data)\n } else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {\n params.body = serializeParams(data)\n } else {\n params.body = data\n }\n } else {\n params.body = data\n }\n if (header) {\n params.headers = header\n }\n if (mode) {\n params.mode = mode\n }\n let timeoutTimer: ReturnType<typeof setTimeout> | null = null\n let controller: AbortController | null = null\n if (signal) {\n params.signal = signal\n } else {\n controller = new window.AbortController()\n params.signal = controller.signal\n timeoutTimer = setTimeout(function () {\n if (controller) controller.abort()\n }, timeout)\n }\n params.credentials = credentials\n const p: RequestTask<any> = fetch(url, params)\n .then(response => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n if (controller) {\n controller = null\n }\n if (!response) {\n const errorResponse = { ok: false }\n throw errorResponse\n }\n res.statusCode = response.status\n res.header = {}\n for (const key of response.headers.keys()) {\n res.header[key] = response.headers.get(key)\n }\n if (responseType === 'arraybuffer') {\n return response.arrayBuffer()\n }\n if (res.statusCode !== 204) {\n if (dataType === 'json' || typeof dataType === 'undefined') {\n return response.json().catch(() => {\n return null\n })\n }\n }\n if (responseType === 'text' || dataType === 'text') {\n return response.text()\n }\n return Promise.resolve(null)\n })\n .then(data => {\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n if (controller) {\n controller = null\n }\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n err.statusCode = res.statusCode\n err.errMsg = err.message\n return Promise.reject(err)\n })\n if (!p.abort && controller) {\n p.abort = cb => {\n if (controller) {\n cb && cb()\n controller.abort()\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n }\n }\n }\n return p\n}\n\nfunction taroInterceptor (chain) {\n return _request(chain.requestParams)\n}\n\nconst link = new Link(taroInterceptor)\n\nexport const request = (<T extends Partial<Taro.request.Option> = TaroGeneral.IAnyObject>(...args: [string | T, T]) => {\n const [url = '', options = {} as T] = args\n if (typeof url === 'string') {\n options.url = url\n } else {\n Object.assign(options, url)\n }\n return link.request(options)\n}) as typeof Taro.request\nexport const addInterceptor = link.addInterceptor.bind(link)\nexport const cleanInterceptors = link.cleanInterceptors.bind(link)\n","import { temporarilyNotSupport } from '../../utils'\n\n// TCP 通信\nexport const createTCPSocket = /* @__PURE__ */ temporarilyNotSupport('createTCPSocket')\n","import { temporarilyNotSupport } from '../../utils'\n\n// UDP 通信\nexport const createUDPSocket = /* @__PURE__ */ temporarilyNotSupport('createUDPSocket')\n","import Taro from '@tarojs/api'\r\n\r\nimport { CallbackManager } from '../../utils/handler'\r\nimport {\r\n convertObjectUrlToBlob,\r\n NETWORK_TIMEOUT,\r\n setHeader,\r\n XHR_STATS\r\n} from './utils'\r\n\r\nconst createUploadTask = ({ url, filePath, formData = {}, name, header, timeout, fileName, withCredentials = true, success, error }): Taro.UploadTask => {\r\n let timeoutInter: ReturnType<typeof setTimeout>\r\n let formKey\r\n const apiName = 'uploadFile'\r\n const xhr = new XMLHttpRequest()\r\n const form = new FormData()\r\n const callbackManager = {\r\n headersReceived: new CallbackManager(),\r\n progressUpdate: new CallbackManager()\r\n }\r\n\r\n xhr.open('POST', url)\r\n xhr.withCredentials = !!withCredentials\r\n setHeader(xhr, header)\r\n\r\n for (formKey in formData) {\r\n form.append(formKey, formData[formKey])\r\n }\r\n\r\n xhr.upload.onprogress = e => {\r\n const { loaded, total } = e\r\n callbackManager.progressUpdate.trigger({\r\n progress: Math.round(loaded / total * 100),\r\n totalBytesSent: loaded,\r\n totalBytesExpectedToSend: total\r\n })\r\n }\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState !== XHR_STATS.HEADERS_RECEIVED) return\r\n callbackManager.headersReceived.trigger({\r\n header: xhr.getAllResponseHeaders()\r\n })\r\n }\r\n\r\n xhr.onload = () => {\r\n const status = xhr.status\r\n clearTimeout(timeoutInter)\r\n success({\r\n errMsg: `${apiName}:ok`,\r\n statusCode: status,\r\n data: xhr.responseText || xhr.response\r\n })\r\n }\r\n\r\n xhr.onabort = () => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail abort`\r\n })\r\n }\r\n\r\n xhr.onerror = (e: ProgressEvent<EventTarget> & { message?: string }) => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n }\r\n\r\n /**\r\n * 中断任务\r\n */\r\n const abort = () => {\r\n clearTimeout(timeoutInter)\r\n xhr.abort()\r\n }\r\n\r\n const send = () => {\r\n xhr.send(form)\r\n timeoutInter = setTimeout(() => {\r\n xhr.onabort = null\r\n xhr.onload = null\r\n xhr.upload.onprogress = null\r\n xhr.onreadystatechange = null\r\n xhr.onerror = null\r\n abort()\r\n error({\r\n errMsg: `${apiName}:fail timeout`\r\n })\r\n }, timeout || NETWORK_TIMEOUT)\r\n }\r\n\r\n convertObjectUrlToBlob(filePath)\r\n .then((fileObj: string | (Blob & { name?: string })) => {\r\n if (!fileName) {\r\n fileName = typeof fileObj !== 'string' && fileObj.name\r\n }\r\n form.append(name, fileObj as Blob, fileName || `file-${Date.now()}`)\r\n send()\r\n })\r\n .catch(e => {\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n })\r\n\r\n /**\r\n * 监听 HTTP Response Header 事件。会比请求完成事件更早\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onHeadersReceived = callbackManager.headersReceived.add\r\n /**\r\n * 取消监听 HTTP Response Header 事件\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offHeadersReceived = callbackManager.headersReceived.remove\r\n\r\n /**\r\n * 监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onProgressUpdate = callbackManager.progressUpdate.add\r\n /**\r\n * 取消监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offProgressUpdate = callbackManager.progressUpdate.remove\r\n\r\n return {\r\n abort,\r\n onHeadersReceived,\r\n offHeadersReceived,\r\n onProgressUpdate,\r\n offProgressUpdate\r\n }\r\n}\r\n\r\n/**\r\n * 将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data。使用前请注意阅读相关说明。\r\n */\r\nexport const uploadFile: typeof Taro.uploadFile = ({ url, filePath, name, header, formData, timeout, fileName, withCredentials, success, fail, complete }) => {\r\n let task!: Taro.UploadTask\r\n const result: ReturnType<typeof Taro.uploadFile> = new Promise((resolve, reject) => {\r\n task = createUploadTask({\r\n url,\r\n header,\r\n name,\r\n filePath,\r\n formData,\r\n timeout,\r\n fileName,\r\n withCredentials,\r\n success: res => {\r\n success && success(res)\r\n complete && complete(res)\r\n resolve(res)\r\n },\r\n error: res => {\r\n fail && fail(res)\r\n complete && complete(res)\r\n reject(res)\r\n }\r\n })\r\n }) as any\r\n\r\n result.headersReceive = task.onHeadersReceived.bind(task)\r\n result.progress = task.onProgressUpdate.bind(task)\r\n\r\n const properties = {}\r\n Object.keys(task).forEach(key => {\r\n properties[key] = {\r\n get () {\r\n return typeof task[key] === 'function' ? task[key].bind(task) : task[key]\r\n }\r\n }\r\n })\r\n return Object.defineProperties(result, properties)\r\n}\r\n","import Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\n\nexport class SocketTask {\n ws: WebSocket\n CONNECTING: number\n OPEN: number\n CLOSING: number\n CLOSED: number\n closeDetail: { code: any, reason: any }\n _destroyWhenClose?: () => void\n\n constructor (url, protocols) {\n if (protocols && protocols.length) {\n this.ws = new WebSocket(url, protocols)\n } else {\n this.ws = new WebSocket(url)\n }\n this.CONNECTING = 0\n this.OPEN = 1\n this.CLOSING = 2\n this.CLOSED = 3\n }\n\n get readyState () {\n return this.ws.readyState\n }\n\n send (opts: Partial<Taro.SocketTask.SendOption> = {}) {\n if (typeof opts !== 'object' || !opts) opts = {}\n\n const { data = '', success, fail, complete } = opts\n\n if (this.readyState !== 1) {\n const res = { errMsg: 'SocketTask.send:fail SocketTask.readState is not OPEN' }\n console.error(res.errMsg)\n isFunction(fail) && fail(res)\n isFunction(complete) && complete(res)\n return Promise.reject(res)\n }\n\n this.ws.send(data)\n\n const res = { errMsg: 'sendSocketMessage:ok' }\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return Promise.resolve(res)\n }\n\n close (opts: Partial<Taro.SocketTask.CloseOption> = {}) {\n if (typeof opts !== 'object' || !opts) opts = {}\n\n const {\n code = 1000,\n reason = 'server complete,close',\n success,\n complete\n } = opts\n\n this.closeDetail = { code, reason }\n // 主动断开时需要重置链接数\n this._destroyWhenClose && this._destroyWhenClose()\n this.ws.close()\n\n const res = { errMsg: 'closeSocket:ok' }\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return Promise.resolve(res)\n }\n\n onOpen (func) {\n this.ws.onopen = func\n }\n\n onMessage (func) {\n this.ws.onmessage = func\n }\n\n onClose (func) {\n this.ws.onclose = () => {\n // 若服务器方断掉也需要重置链接数\n this._destroyWhenClose && this._destroyWhenClose()\n func(this.closeDetail || { code: 1006, reason: 'abnormal closure' })\n }\n }\n\n onError (func) {\n this.ws.onerror = func\n }\n}\n","import { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\nimport { SocketTask } from './socketTask'\n\nlet socketTasks: SocketTask[] = []\nlet socketsCounter = 1\n\nexport function sendSocketMessage () {\n console.warn('Deprecated.Please use socketTask.send instead.')\n}\n\nexport function onSocketOpen () {\n console.warn('Deprecated.Please use socketTask.onOpen instead.')\n}\n\nexport function onSocketMessage () {\n console.warn('Deprecated.Please use socketTask.onMessage instead.')\n}\n\nexport function onSocketError () {\n console.warn('Deprecated.Please use socketTask.onError instead.')\n}\n\nexport function onSocketClose () {\n console.warn('Deprecated.Please use socketTask.onClose instead.')\n}\n\nexport function connectSocket (options?: Taro.connectSocket.Option) {\n const name = 'connectSocket'\n\n return new Promise((resolve, reject) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${name}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return reject(res)\n }\n const { url, protocols, success, fail, complete } = options as Exclude<typeof options, undefined>\n const handle = new MethodHandler<{\n socketTaskId?: number\n }>({ name, success, fail, complete })\n\n // options.url must be String\n if (typeof url !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'url',\n correct: 'String',\n wrong: url\n })\n }, { resolve, reject })\n }\n\n // options.url must be invalid\n if (!url.startsWith('ws://') && !url.startsWith('wss://')) {\n return handle.fail({\n errMsg: `request:fail invalid url \"${url}\"`\n }, { resolve, reject })\n }\n\n // protocols must be array\n const _protocols = Array.isArray(protocols) ? protocols : null\n\n // 2 connection at most\n if (socketTasks.length >= 5) {\n return handle.fail({\n errMsg: '同时最多发起 5 个 socket 请求,更多请参考文档。'\n }, { resolve, reject })\n }\n\n const task = new SocketTask(url, _protocols)\n task._destroyWhenClose = function () {\n socketTasks = socketTasks.filter(socketTask => socketTask !== this)\n }\n socketTasks.push(task)\n\n handle.success({\n socketTaskId: socketsCounter++\n })\n\n return resolve(task)\n })\n}\n\nexport function closeSocket () {\n console.warn('Deprecated.Please use socketTask.close instead.')\n}\n\nexport { SocketTask }\n","import { temporarilyNotSupport } from '../../utils'\n\n// 帐号信息\nexport const getAccountInfoSync = /* @__PURE__ */ temporarilyNotSupport('getAccountInfoSync')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 收货地址\nexport const chooseAddress = /* @__PURE__ */ temporarilyNotSupport('chooseAddress')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 授权\nexport const authorizeForMiniProgram = /* @__PURE__ */ temporarilyNotSupport('authorizeForMiniProgram')\nexport const authorize = /* @__PURE__ */ temporarilyNotSupport('authorize')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 卡券\nexport const openCard = /* @__PURE__ */ temporarilyNotSupport('openCard')\nexport const addCard = /* @__PURE__ */ temporarilyNotSupport('addCard')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 视频号\nexport const reserveChannelsLive = /* @__PURE__ */ temporarilyNotSupport('reserveChannelsLive')\nexport const openChannelsUserProfile = /* @__PURE__ */ temporarilyNotSupport('openChannelsUserProfile')\nexport const openChannelsLive = /* @__PURE__ */ temporarilyNotSupport('openChannelsLive')\nexport const openChannelsEvent = /* @__PURE__ */ temporarilyNotSupport('openChannelsEvent')\nexport const openChannelsActivity = /* @__PURE__ */ temporarilyNotSupport('openChannelsActivity')\nexport const getChannelsShareKey = /* @__PURE__ */ temporarilyNotSupport('getChannelsShareKey')\nexport const getChannelsLiveNoticeInfo = /* @__PURE__ */ temporarilyNotSupport('getChannelsLiveNoticeInfo')\nexport const getChannelsLiveInfo = /* @__PURE__ */ temporarilyNotSupport('getChannelsLiveInfo')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 微信客服\nexport const openCustomerServiceChat = /* @__PURE__ */ temporarilyNotSupport('openCustomerServiceChat')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 设备(组)音视频通话\nexport const requestDeviceVoIP = /* @__PURE__ */ temporarilyNotSupport('requestDeviceVoIP')\nexport const getDeviceVoIPList = /* @__PURE__ */ temporarilyNotSupport('getDeviceVoIPList')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 过往接口\nexport const checkIsSupportFacialRecognition = /* @__PURE__ */ temporarilyNotSupport('checkIsSupportFacialRecognition')\nexport const startFacialRecognitionVerify = /* @__PURE__ */ temporarilyNotSupport('startFacialRecognitionVerify')\nexport const startFacialRecognitionVerifyAndUploadVideo = /* @__PURE__ */ temporarilyNotSupport('startFacialRecognitionVerifyAndUploadVideo')\nexport const faceVerifyForPay = /* @__PURE__ */ temporarilyNotSupport('faceVerifyForPay')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 收藏\nexport const addVideoToFavorites = /* @__PURE__ */ temporarilyNotSupport('addVideoToFavorites')\nexport const addFileToFavorites = /* @__PURE__ */ temporarilyNotSupport('addFileToFavorites')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 微信群\nexport const getGroupEnterInfo = /* @__PURE__ */ temporarilyNotSupport('getGroupEnterInfo')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 发票\nexport const chooseInvoiceTitle = /* @__PURE__ */ temporarilyNotSupport('chooseInvoiceTitle')\nexport const chooseInvoice = /* @__PURE__ */ temporarilyNotSupport('chooseInvoice')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 车牌\nexport const chooseLicensePlate = /* @__PURE__ */ temporarilyNotSupport('chooseLicensePlate')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 帐号信息\nexport const pluginLogin = /* @__PURE__ */ temporarilyNotSupport('pluginLogin')\nexport const login = /* @__PURE__ */ temporarilyNotSupport('login')\nexport const checkSession = /* @__PURE__ */ temporarilyNotSupport('checkSession')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 我的小程序\nexport const checkIsAddedToMyMiniProgram = /* @__PURE__ */ temporarilyNotSupport('checkIsAddedToMyMiniProgram')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 隐私信息授权\nexport const requirePrivacyAuthorize = /* @__PURE__ */ temporarilyNotSupport('requirePrivacyAuthorize')\nexport const openPrivacyContract = /* @__PURE__ */ temporarilyNotSupport('openPrivacyContract')\nexport const onNeedPrivacyAuthorization = /* @__PURE__ */ temporarilyNotSupport('onNeedPrivacyAuthorization')\nexport const getPrivacySetting = /* @__PURE__ */ temporarilyNotSupport('getPrivacySetting')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 微信红包\nexport const showRedPackage = /* @__PURE__ */ temporarilyNotSupport('showRedPackage')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 设置\nexport const openSetting = /* @__PURE__ */ temporarilyNotSupport('openSetting')\nexport const getSetting = /* @__PURE__ */ temporarilyNotSupport('getSetting')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 生物认证\nexport const startSoterAuthentication = /* @__PURE__ */ temporarilyNotSupport('startSoterAuthentication')\nexport const checkIsSupportSoterAuthentication = /* @__PURE__ */ temporarilyNotSupport('checkIsSupportSoterAuthentication')\nexport const checkIsSoterEnrolledInDevice = /* @__PURE__ */ temporarilyNotSupport('checkIsSoterEnrolledInDevice')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 订阅消息\nexport const requestSubscribeMessage = /* @__PURE__ */ temporarilyNotSupport('requestSubscribeMessage')\n// 订阅设备消息\nexport const requestSubscribeDeviceMessage = /* @__PURE__ */ temporarilyNotSupport('requestSubscribeDeviceMessage')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 用户信息\nexport const getUserProfile = /* @__PURE__ */ temporarilyNotSupport('getUserProfile')\nexport const getUserInfo = /* @__PURE__ */ temporarilyNotSupport('getUserInfo')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 微信运动\nexport const shareToWeRun = /* @__PURE__ */ temporarilyNotSupport('shareToWeRun')\nexport const getWeRunData = /* @__PURE__ */ temporarilyNotSupport('getWeRunData')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 支付\nexport const requestPayment = /* @__PURE__ */ temporarilyNotSupport('requestPayment')\nexport const requestPluginPayment = /* @__PURE__ */ temporarilyNotSupport('requestPluginPayment')\nexport const requestOrderPayment = /* @__PURE__ */ temporarilyNotSupport('requestOrderPayment')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 打开手Q说说发表界面\nexport const openQzonePublish = /* @__PURE__ */ temporarilyNotSupport('openQzonePublish')\nexport const getQQRunData = /* @__PURE__ */ temporarilyNotSupport('getQQRunData')\nexport const setOfficialDress = /* @__PURE__ */ temporarilyNotSupport('setOfficialDress')\nexport const setCustomDress = /* @__PURE__ */ temporarilyNotSupport('setCustomDress')\nexport const updateQQApp = /* @__PURE__ */ temporarilyNotSupport('updateQQApp')\nexport const addRecentColorSign = /* @__PURE__ */ temporarilyNotSupport('addRecentColorSign')\nexport const getGuildInfo = /* @__PURE__ */ temporarilyNotSupport('getGuildInfo')\nexport const applyAddToMyApps = /* @__PURE__ */ temporarilyNotSupport('applyAddToMyApps')\nexport const isAddedToMyApps = /* @__PURE__ */ temporarilyNotSupport('isAddedToMyApps')\n","// 路由\nexport {\n navigateBack,\n navigateTo,\n redirectTo,\n reLaunch,\n switchTab\n} from '@tarojs/router'\n\n// FIXME 方法导出类型未对齐,后续修复\n","import { permanentlyNotSupport, temporarilyNotSupport } from '../../utils'\n\n// 转发\n\n/** 更新转发属性 */\nexport const updateShareMenu = /* @__PURE__ */ temporarilyNotSupport('updateShareMenu')\n\n/** 显示当前页面的转发按钮 */\nexport const showShareMenu = /* @__PURE__ */ temporarilyNotSupport('showShareMenu')\n\n/** 打开分享图片弹窗,可以将图片发送给朋友、收藏或下载 */\nexport const showShareImageMenu = /* @__PURE__ */ temporarilyNotSupport('showShareImageMenu')\n\n/** 转发视频到聊天 */\nexport const shareVideoMessage = /* @__PURE__ */ temporarilyNotSupport('shareVideoMessage')\n\n/** 转发文件到聊天 */\nexport const shareFileMessage = /* @__PURE__ */ temporarilyNotSupport('shareFileMessage')\n\n/** 监听用户点击右上角菜单的「复制链接」按钮时触发的事件 */\nexport const onCopyUrl = /* @__PURE__ */ temporarilyNotSupport('onCopyUrl')\n\n/** 移除用户点击右上角菜单的「复制链接」按钮时触发的事件的监听函数 */\nexport const offCopyUrl = /* @__PURE__ */ temporarilyNotSupport('offCopyUrl')\n\n/** 隐藏当前页面的转发按钮 */\nexport const hideShareMenu = /* @__PURE__ */ temporarilyNotSupport('hideShareMenu')\n\n/** 获取转发详细信息 */\nexport const getShareInfo = /* @__PURE__ */ temporarilyNotSupport('getShareInfo')\n\n/** 验证私密消息。 */\nexport const authPrivateMessage = /* @__PURE__ */ permanentlyNotSupport('authPrivateMessage')\n","import { temporarilyNotSupport } from '../../utils'\n\nexport const setPageInfo = /* @__PURE__ */ temporarilyNotSupport('setPageInfo')\n\n// 百度小程序 AI 相关\nexport const ocrIdCard = /* @__PURE__ */ temporarilyNotSupport('ocrIdCard')\nexport const ocrBankCard = /* @__PURE__ */ temporarilyNotSupport('ocrBankCard')\nexport const ocrDrivingLicense = /* @__PURE__ */ temporarilyNotSupport('ocrDrivingLicense')\nexport const ocrVehicleLicense = /* @__PURE__ */ temporarilyNotSupport('ocrVehicleLicense')\nexport const textReview = /* @__PURE__ */ temporarilyNotSupport('textReview')\nexport const textToAudio = /* @__PURE__ */ temporarilyNotSupport('textToAudio')\nexport const imageAudit = /* @__PURE__ */ temporarilyNotSupport('imageAudit')\nexport const advancedGeneralIdentify = /* @__PURE__ */ temporarilyNotSupport('advancedGeneralIdentify')\nexport const objectDetectIdentify = /* @__PURE__ */ temporarilyNotSupport('objectDetectIdentify')\nexport const carClassify = /* @__PURE__ */ temporarilyNotSupport('carClassify')\nexport const dishClassify = /* @__PURE__ */ temporarilyNotSupport('dishClassify')\nexport const logoClassify = /* @__PURE__ */ temporarilyNotSupport('logoClassify')\nexport const animalClassify = /* @__PURE__ */ temporarilyNotSupport('animalClassify')\nexport const plantClassify = /* @__PURE__ */ temporarilyNotSupport('plantClassify')\n\n// 用户信息\nexport const getSwanId = /* @__PURE__ */ temporarilyNotSupport('getSwanId')\n\n// 百度收银台支付\nexport const requestPolymerPayment = /* @__PURE__ */ temporarilyNotSupport('requestPolymerPayment')\n\n// 打开小程序\nexport const navigateToSmartGameProgram = /* @__PURE__ */ temporarilyNotSupport('navigateToSmartGameProgram')\nexport const navigateToSmartProgram = /* @__PURE__ */ temporarilyNotSupport('navigateToSmartProgram')\nexport const navigateBackSmartProgram = /* @__PURE__ */ temporarilyNotSupport('navigateBackSmartProgram')\nexport const preloadSubPackage = /* @__PURE__ */ temporarilyNotSupport('preloadSubPackage')\n","import { temporarilyNotSupport } from '../../utils'\n\n// Worker\nexport const createWorker = /* @__PURE__ */ temporarilyNotSupport('createWorker')\n","import Taro from '@tarojs/api'\n\nimport { findDOM } from '../../utils'\n\ntype TElement = Document | HTMLElement | Element\n\ntype TListener = {\n element: Element\n callback: Taro.IntersectionObserver.ObserveCallback\n}\n\nexport class TaroH5IntersectionObserver implements Taro.IntersectionObserver {\n // 自定义组件实例\n private _component: TaroGeneral.IAnyObject\n // 选项\n private _options = {\n thresholds: [0],\n initialRatio: 0,\n observeAll: false\n }\n\n // Observer实例\n private _observerInst: IntersectionObserver\n // 监控中的选择器\n private _listeners: TListener[] = []\n // 参照区域\n private _root: Element | null\n // 用来扩展(或收缩)参照节点布局区域的边界\n private _rootMargin: Taro.IntersectionObserver.RelativeToViewportMargins = {}\n // 是否已初始化\n private _isInited = false\n\n // selector 的容器节点\n protected get container () {\n const container: TElement = (\n this._component !== null\n ? (findDOM(this._component) as HTMLElement || document)\n : document\n )\n return container\n }\n\n constructor (component: TaroGeneral.IAnyObject, options: Taro.createIntersectionObserver.Option = {}) {\n this._component = component\n Object.assign(this._options, options)\n }\n\n private createInst () {\n // 去除原本的实例\n this.disconnect()\n\n const { left = 0, top = 0, bottom = 0, right = 0 } = this._rootMargin\n return new IntersectionObserver(entries => {\n entries.forEach(entry => {\n const _callback = this._getCallbackByElement(entry.target)\n const result = {\n boundingClientRect: entry.boundingClientRect,\n intersectionRatio: entry.intersectionRatio,\n intersectionRect: entry.intersectionRect,\n relativeRect: entry.rootBounds || { left: 0, right: 0, top: 0, bottom: 0 },\n // 使用时间戳而不是entry.time,跟微信小程序一致\n time: Date.now(),\n }\n // web端会默认首次触发\n if (!this._isInited && this._options.initialRatio <= Math.min.apply(Math, this._options.thresholds)) {\n // 初始的相交比例,如果调用时检测到的相交比例与这个值不相等且达到阈值,则会触发一次监听器的回调函数。\n return\n }\n _callback && _callback.call(this, result)\n })\n this._isInited = true\n }, {\n root: this._root,\n rootMargin: [`${top}px`, `${right}px`, `${bottom}px`, `${left}px`].join(' '),\n threshold: this._options.thresholds\n })\n }\n\n public disconnect (): void {\n if (this._observerInst) {\n let listener\n while ((listener = this._listeners.pop())) {\n this._observerInst.unobserve(listener.element)\n }\n this._observerInst.disconnect()\n }\n }\n\n public observe (targetSelector: string, callback: Taro.IntersectionObserver.ObserveCallback): void {\n // 同wx小程序效果一致,每个实例监听一个Selector\n if (this._listeners.length) return\n // 监听前没有设置关联的节点\n if (!this._observerInst) {\n console.warn('Intersection observer will be ignored because no relative nodes are found.')\n return\n }\n\n const nodeList = this._options.observeAll\n ? this.container.querySelectorAll(targetSelector)\n : [this.container.querySelector(targetSelector)]\n\n Taro.nextTick(() => {\n nodeList.forEach(element => {\n if (!element) return\n this._observerInst.observe(element)\n this._listeners.push({ element, callback })\n })\n })\n }\n\n public relativeTo (selector: string, margins?: Taro.IntersectionObserver.RelativeToMargins | undefined): Taro.IntersectionObserver {\n // 已设置observe监听后,重新关联节点\n if (this._listeners.length) {\n console.error('Relative nodes cannot be added after \"observe\" call in IntersectionObserver')\n return this\n }\n this._root = this.container.querySelector(selector) || null\n if (margins) {\n this._rootMargin = margins\n }\n this._observerInst = this.createInst()\n return this\n }\n\n public relativeToViewport (margins?: Taro.IntersectionObserver.RelativeToViewportMargins | undefined): Taro.IntersectionObserver {\n return this.relativeTo('.taro_page', margins)\n }\n\n private _getCallbackByElement (element: Element) {\n const listener = this._listeners.find(listener => listener.element === element)\n return listener ? listener.callback : null\n }\n}\n","\nimport Taro from '@tarojs/api'\nimport { isFunction, toKebabCase } from '@tarojs/shared'\n\nfunction generateMediaQueryStr (descriptor: Taro.MediaQueryObserver.descriptor) {\n const mediaQueryArr: string[] = []\n const descriptorMenu = ['width', 'minWidth', 'maxWidth', 'height', 'minHeight', 'maxHeight', 'orientation']\n for (const item of descriptorMenu) {\n if (\n item !== 'orientation' &&\n descriptor[item] &&\n Number(descriptor[item]) >= 0\n ) {\n mediaQueryArr.push(`(${(toKebabCase(item))}: ${Number(descriptor[item])}px)`)\n }\n if (item === 'orientation' && descriptor[item]) {\n mediaQueryArr.push(`(${toKebabCase(item)}: ${descriptor[item]})`)\n }\n }\n return mediaQueryArr.join(' and ')\n}\n\n\nexport class MediaQueryObserver implements Taro.MediaQueryObserver {\n private _mediaQueryObserver: MediaQueryList\n private _listener: (ev: MediaQueryListEvent) => void\n\n // 监听页面媒体查询变化情况\n public observe (descriptor: Taro.MediaQueryObserver.descriptor, callback: Taro.MediaQueryObserver.observeCallback): void {\n if (isFunction(callback)) {\n // 创建媒体查询对象\n this._mediaQueryObserver = window.matchMedia(generateMediaQueryStr(descriptor))\n // 监听器\n this._listener = (ev: MediaQueryListEvent) => {\n callback({ matches: ev.matches })\n }\n callback({ matches: this._mediaQueryObserver.matches })\n // 兼容旧浏览器中 MediaQueryList 尚未继承于 EventTarget 导致不存在 'addEventListener'\n if ('addEventListener' in this._mediaQueryObserver) {\n this._mediaQueryObserver.addEventListener('change', this._listener)\n } else {\n // @ts-ignore\n this._mediaQueryObserver.addListener(this._listener)\n }\n }\n }\n\n // 停止监听,销毁媒体查询对象\n public disconnect (): void {\n if (this._mediaQueryObserver && this._listener) {\n // 兼容旧浏览器中 MediaQueryList 尚未继承于 EventTarget 导致不存在 'removeEventListener'\n if ('removeEventListener' in this._mediaQueryObserver) {\n this._mediaQueryObserver.removeEventListener('change', this._listener)\n } else {\n // @ts-ignore\n this._mediaQueryObserver.removeListener(this._listener)\n }\n }\n }\n}\n","import Taro from '@tarojs/api'\n\nimport { SelectorQuery } from './selectorQuery'\n\nexport class NodesRef implements Taro.NodesRef {\n _component?: TaroGeneral.IAnyObject\n _selector: string\n _selectorQuery: SelectorQuery\n _single: boolean\n\n constructor (selector: string, querySelectorQuery: SelectorQuery, single: boolean) {\n this._component = querySelectorQuery._component\n this._selector = selector\n this._selectorQuery = querySelectorQuery\n this._single = single\n }\n\n context (cb) {\n const { _selector, _component, _single, _selectorQuery } = this\n _selectorQuery._push(_selector, _component, _single, { context: !0 }, cb)\n return _selectorQuery\n }\n\n node (cb) {\n const { _selector, _component, _single, _selectorQuery } = this\n _selectorQuery._push(_selector, _component, _single, { nodeCanvasType: !0, node: !0 }, cb)\n return _selectorQuery\n }\n\n boundingClientRect (cb) {\n const { _selector, _component, _single, _selectorQuery } = this\n _selectorQuery._push(_selector, _component, _single, { id: !0, dataset: !0, rect: !0, size: !0 }, cb)\n return _selectorQuery\n }\n\n scrollOffset (cb) {\n const { _selector, _component, _single, _selectorQuery } = this\n _selectorQuery._push(_selector, _component, _single, { id: !0, dataset: !0, scrollOffset: !0 }, cb)\n return _selectorQuery\n }\n\n fields (fields, cb) {\n const { _selector, _component, _single, _selectorQuery } = this\n const { id, dataset, rect, size, scrollOffset, context, node, properties = [], computedStyle = [] } = fields\n\n _selectorQuery._push(\n _selector,\n _component,\n _single,\n {\n id,\n dataset,\n rect,\n size,\n scrollOffset,\n context,\n node,\n nodeCanvasType: node,\n properties,\n computedStyle,\n },\n cb\n )\n\n return _selectorQuery\n }\n}\n","import Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\n\nimport { findDOM } from '../../utils'\nimport { CanvasContext } from '../canvas/CanvasContext'\nimport { NodesRef } from './nodesRef'\n\ntype TElement = Document | HTMLElement | Element\n\ninterface ISelectorQueryQueue {\n component: TaroGeneral.IAnyObject\n selector: string\n single: boolean\n fields\n}\n\ntype TSelectorQueryQueueCallback = (res: ISelectorQueryQueue) => void\n\nfunction filter (fields, dom?: HTMLElement, selector?: string) {\n if (!dom) return null\n\n const isViewport = selector === '.taro_page'\n const { id, dataset, rect, size, scrollOffset, properties = [], computedStyle = [], nodeCanvasType, node, context } = fields\n const res: any = {}\n\n if (nodeCanvasType && node) {\n const tagName = dom.tagName\n res.node = {\n id: dom.id,\n $taroElement: dom\n }\n if (/^taro-canvas-core/i.test(tagName)) {\n const type = (dom as any).type! || ''\n res.nodeCanvasType = type\n const canvas = dom.getElementsByTagName('canvas')[0]\n if (/^(2d|webgl)/i.test(type) && canvas) {\n res.node = canvas\n } else {\n res.node = null\n }\n } else if (/^taro-scroll-view-core/i.test(tagName)) {\n // Note https://developers.weixin.qq.com/miniprogram/dev/api/ui/scroll/ScrollViewContext.html\n res.nodeCanvasType = ''\n res.node = dom\n dom.scrollTo = (dom as any).mpScrollToMethod\n dom.scrollIntoView = (dom as any).mpScrollIntoViewMethod\n } else {\n res.nodeCanvasType = ''\n res.node = dom\n }\n return res\n }\n if (context) {\n const tagName = dom.tagName\n if (/^taro-video-core/i.test(tagName)) {\n // TODO HTMLVideoElement to VideoContext\n return { context: dom as unknown as Taro.VideoContext }\n } else if (/^taro-canvas-core/i.test(tagName)) {\n const type = (dom as any).type! || '2d'\n const canvas = dom?.querySelector('canvas') as HTMLCanvasElement\n const ctx = canvas?.getContext(type) as CanvasRenderingContext2D\n return { context: new CanvasContext(canvas, ctx) }\n } else if (/^taro-live-player-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 LivePlayerContext')\n } else if (/^taro-editor-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 EditorContext')\n } else if (/^taro-map-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 MapContext')\n }\n return\n }\n if (id) res.id = dom.id\n if (dataset) res.dataset = Object.assign({}, dom.dataset)\n if (rect || size) {\n const { left, right, top, bottom, width, height } = dom.getBoundingClientRect()\n if (rect) {\n if (!isViewport) {\n res.left = left\n res.right = right\n res.top = top\n res.bottom = bottom\n } else {\n res.left = 0\n res.right = 0\n res.top = 0\n res.bottom = 0\n }\n }\n if (size) {\n if (!isViewport) {\n res.width = width\n res.height = height\n } else {\n res.width = dom.clientWidth\n res.height = dom.clientHeight\n }\n }\n }\n if (scrollOffset) {\n res.scrollLeft = dom.scrollLeft\n res.scrollTop = dom.scrollTop\n }\n if (properties.length) {\n properties.forEach(prop => {\n const attr = dom.getAttribute(prop)\n if (attr) res[prop] = attr\n })\n }\n if (computedStyle.length) {\n const styles = window.getComputedStyle(dom)\n computedStyle.forEach(key => {\n const value = styles.getPropertyValue(key) || styles[key]\n if (value) res[key] = value\n })\n }\n\n return res\n}\n\n/**\n * WXML节点信息API\n * @return {Object} SelectorQuery 对象实例\n */\nfunction queryBat (queue: ISelectorQueryQueue[], cb: (...args: any[]) => any): void {\n const result: any[] = []\n\n queue.forEach(item => {\n const { selector, single, fields, component } = item\n // selector 的容器节点\n /* eslint-disable */\n const container: TElement = (\n component !== null ?\n (findDOM(component) as HTMLElement || document) :\n document\n )\n /* eslint-enable */\n\n // 特殊处理 ---- 选自己\n let selectSelf = false\n if (container !== document) {\n const $nodeList = container.parentNode?.querySelectorAll(selector)\n if ($nodeList) {\n for (let i = 0, len = $nodeList.length; i < len; ++i) {\n if (container === $nodeList[i]) {\n selectSelf = true\n break\n }\n }\n }\n }\n\n if (single) {\n const el = selectSelf === true ? container : container.querySelector(selector)\n result.push(filter(fields, el as HTMLElement, selector))\n } else {\n const $children = container.querySelectorAll(selector)\n const children: TElement[] = []\n selectSelf === true && children.push(container)\n for (let i = 0, len = $children.length; i < len; ++i) {\n children.push($children[i])\n }\n result.push(children.map(dom => filter(fields, dom as HTMLElement)))\n }\n })\n cb(result)\n}\n\nexport class SelectorQuery implements Taro.SelectorQuery {\n _defaultWebviewId: string | null\n _webviewId: string | null\n _queue: ISelectorQueryQueue[]\n _queueCb: (TSelectorQueryQueueCallback | null)[]\n _component?: TaroGeneral.IAnyObject\n\n constructor () {\n this._defaultWebviewId = null\n this._webviewId = null\n this._queue = []\n this._queueCb = []\n this._component\n }\n\n in (component: TaroGeneral.IAnyObject) {\n this._component = component\n return this\n }\n\n select (selector: string) {\n // 小程序里跨自定义组件的后代选择器 '>>>' 在 h5 替换为普通后代选择器 '>'\n if (typeof selector === 'string') selector = selector.replace('>>>', '>')\n return new NodesRef(selector, this, true)\n }\n\n selectAll (selector: string) {\n // 小程序里跨自定义组件的后代选择器 '>>>' 在 h5 替换为普通后代选择器 '>'\n if (typeof selector === 'string') selector = selector.replace('>>>', '>')\n return new NodesRef(selector, this, false)\n }\n\n selectViewport () {\n return new NodesRef('.taro_page', this, true)\n }\n\n exec (cb) {\n Taro.nextTick(() => {\n queryBat(this._queue, res => {\n const _queueCb = this._queueCb\n res.forEach((item, index) => {\n const cb = _queueCb[index]\n isFunction(cb) && cb.call(this, item)\n })\n isFunction(cb) && cb.call(this, res)\n })\n })\n return this as unknown as Taro.NodesRef\n }\n\n _push (selector: string, component, single, fields, callback: TSelectorQueryQueueCallback | null = null) {\n this._queue.push({\n component,\n selector,\n single,\n fields\n })\n this._queueCb.push(callback)\n }\n}\n","import Taro from '@tarojs/api'\n\nimport { TaroH5IntersectionObserver } from './IntersectionObserver'\nimport { MediaQueryObserver } from './MediaQueryObserver'\nimport { NodesRef } from './nodesRef'\nimport { SelectorQuery } from './selectorQuery'\n\nexport const createSelectorQuery: typeof Taro.createSelectorQuery = () => {\n return new SelectorQuery()\n}\n\nexport const createIntersectionObserver: typeof Taro.createIntersectionObserver = (component, options) => {\n return new TaroH5IntersectionObserver(component, options)\n}\n\nexport const createMediaQueryObserver: typeof Taro.createMediaQueryObserver = () => {\n return new MediaQueryObserver()\n}\n\nexport { NodesRef }\n","import Taro from '@tarojs/api'\nimport { history } from '@tarojs/router'\nimport { isFunction, PLATFORM_TYPE } from '@tarojs/shared'\n\nimport { getApp, getCurrentInstance, getCurrentPages, navigateBack, navigateTo, nextTick, redirectTo, reLaunch, switchTab } from '../api'\nimport { permanentlyNotSupport } from '../utils'\n\nconst {\n Behavior,\n getEnv,\n ENV_TYPE,\n Link,\n interceptors,\n interceptorify,\n Current,\n options,\n eventCenter,\n Events,\n preload\n} = Taro as any\n\nconst taro: typeof Taro = {\n // @ts-ignore\n Behavior,\n getEnv,\n ENV_TYPE,\n Link,\n interceptors,\n interceptorify,\n Current,\n getCurrentInstance,\n options,\n nextTick,\n eventCenter,\n Events,\n preload,\n history,\n navigateBack,\n navigateTo,\n reLaunch,\n redirectTo,\n getCurrentPages,\n switchTab\n}\n\nconst requirePlugin = /* @__PURE__ */ permanentlyNotSupport('requirePlugin')\n\nfunction getConfig (): Record<string, any> {\n if (this?.pxTransformConfig) return this.pxTransformConfig\n return ((taro as any).config ||= {})\n}\n\nconst defaultDesignWidth = 750\nconst defaultDesignRatio: TaroGeneral.TDeviceRatio = {\n 640: 2.34 / 2,\n 750: 1,\n 828: 1.81 / 2\n}\nconst defaultBaseFontSize = 20\nconst defaultUnitPrecision = 5\nconst defaultTargetUnit = 'rem'\n\nconst initPxTransform = function ({\n designWidth = defaultDesignWidth,\n deviceRatio = defaultDesignRatio,\n baseFontSize = defaultBaseFontSize,\n unitPrecision = defaultUnitPrecision,\n targetUnit = defaultTargetUnit\n}) {\n const config = getConfig.call(this)\n config.designWidth = designWidth\n config.deviceRatio = deviceRatio\n config.baseFontSize = baseFontSize\n config.targetUnit = targetUnit\n config.unitPrecision = unitPrecision\n}\n\nconst pxTransform = function (size = 0) {\n const config = getConfig.call(this)\n const baseFontSize = config.baseFontSize || defaultBaseFontSize\n const deviceRatio = config.deviceRatio || defaultDesignRatio\n const designWidth = ((input = 0) => isFunction(config.designWidth)\n ? config.designWidth(input)\n : config.designWidth)(size)\n if (!(designWidth in config.deviceRatio)) {\n throw new Error(`deviceRatio 配置中不存在 ${designWidth} 的设置!`)\n }\n const targetUnit = config.targetUnit || defaultTargetUnit\n const unitPrecision = config.unitPrecision || defaultUnitPrecision\n const formatSize = ~~size\n let rootValue = 1 / deviceRatio[designWidth]\n switch (targetUnit) {\n case 'vw':\n rootValue = designWidth / 100\n break\n case 'px':\n rootValue *= 2\n break\n default:\n // rem\n rootValue *= baseFontSize * 2\n }\n let val: number | string = formatSize / rootValue\n if (unitPrecision >= 0 && unitPrecision <= 100) {\n // Number(val): 0.50000 => 0.5\n val = Number(val.toFixed(unitPrecision))\n }\n return val + targetUnit\n}\n\nconst canIUseWebp = function () {\n const canvas = document.createElement('canvas')\n return canvas.toDataURL('image/webp').indexOf('data:image/webp') === 0\n}\n\nconst getAppInfo = function () {\n const config = getConfig.call(this)\n return {\n platform: process.env.TARO_PLATFORM || PLATFORM_TYPE.WEB,\n taroVersion: process.env.TARO_VERSION || 'unknown',\n designWidth: config.designWidth,\n }\n}\n\ntaro.requirePlugin = requirePlugin\ntaro.getApp = getApp\ntaro.pxTransform = pxTransform\ntaro.initPxTransform = initPxTransform\ntaro.canIUseWebp = canIUseWebp\n\nexport default taro\n\nexport {\n Behavior,\n canIUseWebp,\n Current,\n ENV_TYPE,\n eventCenter,\n Events,\n getAppInfo,\n getEnv,\n history,\n initPxTransform,\n interceptorify,\n interceptors,\n Link,\n options,\n preload,\n pxTransform,\n requirePlugin\n}\n"],"names":["Current","getApp","callbackManager","INTERVAL_MAP","eventCenter","Link"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/utils/handler.ts","../src/utils/animation.ts","../src/utils/helper.ts","../src/utils/valid.ts","../src/utils/index.ts","../src/api/ad/index.ts","../src/api/ai/facial.ts","../src/api/ai/inference.ts","../src/api/ai/visual.ts","../src/api/alipay/index.ts","../src/api/base/crypto.ts","../src/api/base/debug.ts","../src/api/base/performance.ts","../src/api/base/system.ts","../src/api/base/update.ts","../src/api/base/weapp/app-event.ts","../src/api/base/weapp/life-cycle.ts","../src/api/base/index.ts","../src/api/canvas/CanvasContext.ts","../src/api/canvas/createCanvasContext.ts","../src/api/canvas/canvasToTempFilePath.ts","../src/api/canvas/canvasPutImageData.ts","../src/api/canvas/canvasGetImageData.ts","../src/api/canvas/index.ts","../src/api/cloud/index.ts","../src/api/data-analysis/index.ts","../src/api/device/accelerometer.ts","../src/api/device/accessibility.ts","../src/api/device/battery.ts","../src/api/device/bluetooth.ts","../src/api/device/bluetooth-ble.ts","../src/api/device/bluetooth-peripheral.ts","../src/api/device/calendar.ts","../src/api/storage/background-fetch.ts","../src/api/storage/cache-manager.ts","../src/api/storage/index.ts","../src/api/ui/interaction/actionSheet.ts","../src/api/ui/interaction/modal.ts","../src/api/ui/interaction/toast.ts","../src/api/ui/interaction/index.ts","../src/api/device/clipboard.ts","../src/api/device/compass.ts","../src/api/device/contact.ts","../src/api/device/crypto.ts","../src/api/device/gyroscope.ts","../src/api/device/iBeacon.ts","../src/api/device/keyboard.ts","../src/api/device/memory.ts","../src/api/device/motion.ts","../src/api/device/network.ts","../src/api/device/nfc.ts","../src/api/device/phone.ts","../src/api/device/scan.ts","../src/api/device/screen.ts","../src/api/device/sms.ts","../src/api/device/vibrate.ts","../src/api/device/wifi.ts","../src/api/ext/index.ts","../src/api/files/index.ts","../src/api/framework/index.ts","../src/api/location/utils.ts","../src/api/location/getLocation.ts","../src/api/location/chooseLocation.ts","../src/api/location/locationChange.ts","../src/api/location/index.ts","../src/api/media/audio/InnerAudioContext.ts","../src/api/media/audio/index.ts","../src/api/media/background-audio/BackgroundAudioManager.ts","../src/api/media/background-audio/index.ts","../src/api/media/camera.ts","../src/api/media/image/saveImageToPhotosAlbum.ts","../src/api/media/image/getImageInfo.ts","../src/api/media/image/previewImage.ts","../src/api/ui/animation/index.ts","../src/api/ui/background.ts","../src/api/ui/custom-component.ts","../src/api/ui/fonts.ts","../src/api/ui/menu.ts","../src/api/ui/navigation-bar/index.ts","../src/api/ui/pull-down-refresh.ts","../src/api/ui/scroll/index.ts","../src/api/ui/sticky.ts","../src/api/ui/tab-bar.ts","../src/api/ui/window.ts","../src/api/media/video/chooseMedia.ts","../src/api/media/image/chooseImage.ts","../src/api/media/image/index.ts","../src/api/media/live.ts","../src/api/media/map.ts","../src/api/media/media-recorder.ts","../src/api/media/recorder.ts","../src/api/media/video/saveVideoToPhotosAlbum.ts","../src/api/media/video/getVideoInfo.ts","../src/api/media/video/chooseVideo.ts","../src/api/media/video/index.ts","../src/api/media/video-decoder.ts","../src/api/media/video-processing.ts","../src/api/media/voip.ts","../src/api/navigate/index.ts","../src/api/network/utils.ts","../src/api/network/download.ts","../src/api/network/mdns.ts","../src/api/network/request/index.ts","../src/api/network/tcp.ts","../src/api/network/udp.ts","../src/api/network/upload.ts","../src/api/network/websocket/socketTask.ts","../src/api/network/websocket/index.ts","../src/api/open-api/account.ts","../src/api/open-api/address.ts","../src/api/open-api/authorize.ts","../src/api/open-api/card.ts","../src/api/open-api/channels-live.ts","../src/api/open-api/customer-service.ts","../src/api/open-api/device-voip.ts","../src/api/open-api/facial.ts","../src/api/open-api/favorites.ts","../src/api/open-api/group.ts","../src/api/open-api/invoice.ts","../src/api/open-api/license-plate.ts","../src/api/open-api/login.ts","../src/api/open-api/my-miniprogram.ts","../src/api/open-api/privacy.ts","../src/api/open-api/red-package.ts","../src/api/open-api/settings.ts","../src/api/open-api/soter.ts","../src/api/open-api/subscribe-message.ts","../src/api/open-api/user-info.ts","../src/api/open-api/werun.ts","../src/api/payment/index.ts","../src/api/qq/index.ts","../src/api/route/index.ts","../src/api/share/index.ts","../src/api/swan/index.ts","../src/api/worker/index.ts","../src/api/wxml/IntersectionObserver.ts","../src/api/wxml/MediaQueryObserver.ts","../src/api/wxml/nodesRef.ts","../src/api/wxml/selectorQuery.ts","../src/api/wxml/index.ts","../src/api/taro.ts"],"sourcesContent":["import { isFunction } from '@tarojs/shared'\n\ntype TCallback<T = Partial<TaroGeneral.CallbackResult>> = (res: T) => Promise<void> | void\ninterface IMethodParam<T = Partial<TaroGeneral.CallbackResult>> {\n name: string\n success?: TCallback<T & TaroGeneral.CallbackResult>\n fail?: TCallback\n complete?: TCallback\n}\ninterface IMockPromise {\n resolve?: typeof Promise.resolve | TFunc\n reject?: typeof Promise.reject | TFunc\n}\n\nexport class MethodHandler<T = Partial<TaroGeneral.CallbackResult>> {\n methodName: string\n\n protected __success?: TCallback<T>\n protected __fail?: TCallback\n protected __complete?: TCallback\n\n protected isHandlerError = false\n\n constructor ({ name, success, fail, complete }: IMethodParam<T>) {\n this.methodName = name\n this.__success = success\n this.__fail = fail\n this.__complete = complete\n\n this.isHandlerError = isFunction(this.__complete) || isFunction(this.__fail)\n }\n\n success<U = Record<string, unknown>> (res: Partial<T> & Partial<TaroGeneral.CallbackResult> = {}, promise: IMockPromise = {}): Promise<T & U & TaroGeneral.CallbackResult> {\n if (!res.errMsg) {\n res.errMsg = `${this.methodName}:ok`\n }\n isFunction(this.__success) && this.__success(res as T)\n isFunction(this.__complete) && this.__complete(res)\n\n const { resolve = Promise.resolve.bind(Promise) } = promise\n return resolve(res as Required<T & U & TaroGeneral.CallbackResult>)\n }\n\n fail<U = Record<string, unknown>> (res: Partial<T> & Partial<TaroGeneral.CallbackResult> = {}, promise: IMockPromise = {}): Promise<T & U & TaroGeneral.CallbackResult> {\n if (!res.errMsg) {\n res.errMsg = `${this.methodName}:fail`\n } else {\n res.errMsg = `${this.methodName}:fail ${res.errMsg}`\n }\n isFunction(this.__fail) && this.__fail(res)\n isFunction(this.__complete) && this.__complete(res)\n\n const {\n resolve = Promise.resolve.bind(Promise),\n reject = Promise.reject.bind(Promise)\n } = promise\n return this.isHandlerError\n ? resolve(res as Required<T & U & TaroGeneral.CallbackResult>)\n : reject(res)\n }\n}\n\ntype TCallbackManagerFunc<T extends unknown[] = unknown[]> = (...arr: T) => void\ninterface ICallbackManagerOption<T extends unknown[] = unknown[]> {\n callback?: TCallbackManagerFunc<T>\n ctx?: any\n [key: string]: unknown\n}\ntype TCallbackManagerUnit<T extends unknown[] = unknown[]> = (TCallbackManagerFunc<T> | ICallbackManagerOption<T>)\n\nexport class CallbackManager<T extends unknown[] = unknown[]> {\n callbacks: TCallbackManagerUnit<T>[] = []\n\n /** 添加回调 */\n add = (opt?: TCallbackManagerUnit<T>) => {\n if (opt) this.callbacks.push(opt)\n }\n\n /** 移除回调 */\n remove = (opt?: TCallbackManagerUnit<T>) => {\n if (opt) {\n let pos = -1\n this.callbacks.forEach((callback, k) => {\n if (callback === opt) {\n pos = k\n }\n })\n if (pos > -1) {\n this.callbacks.splice(pos, 1)\n }\n } else {\n // Note: 参数为空,则取消所有的事件监听\n this.callbacks = []\n }\n }\n\n /** 获取回调函数数量 */\n count = () => {\n return this.callbacks.length\n }\n\n /** 触发回调 */\n trigger = (...args: T) => {\n this.callbacks.forEach(opt => {\n if (isFunction(opt)) {\n opt(...args)\n } else {\n const { callback, ctx } = opt\n isFunction(callback) && callback.call(ctx, ...args)\n }\n })\n }\n\n /** 清空所有回调 */\n clear = () => {\n this.callbacks = []\n }\n}\n","/**\n * ease-in-out的函数\n * @param t 0-1的数字\n */\nexport const easeInOut = (t: number) => (t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1)\n\nexport const getTimingFunc = (easeFunc, frameCnt) => {\n return x => {\n if (frameCnt <= 1) {\n return easeFunc(1)\n }\n const t = x / (frameCnt - 1)\n return easeFunc(t)\n }\n}\n","export function createDownload (url = '', download = '') {\n const link = document.createElement('a')\n link.style.display = 'none'\n link.href = url\n link.download = download\n\n // Note: 需要注意,该方案不能监听用户取消或禁止下载等操作,亦不能获取下载成功或失败状态\n link.click()\n}\n","const VALID_COLOR_REG = /^#[0-9a-fA-F]{6}$/\nexport const isValidColor = (color: string) => {\n return VALID_COLOR_REG.test(color)\n}\n","/* eslint-disable prefer-promise-reject-errors */\nimport Taro from '@tarojs/api'\nimport { Current, getCurrentPage, getHomePage, hooks } from '@tarojs/runtime'\nimport { isFunction } from '@tarojs/shared'\n\nimport { MethodHandler } from './handler'\n\nimport type { TaroElement } from '@tarojs/runtime'\n\nexport function shouldBeObject (target: unknown) {\n if (target && typeof target === 'object') return { flag: true }\n return {\n flag: false,\n msg: getParameterError({\n correct: 'Object',\n wrong: target\n })\n }\n}\n\nexport function findDOM (inst?): TaroElement | HTMLElement | undefined {\n if (inst && hooks.isExist('getDOMNode')) {\n return hooks.call('getDOMNode', inst)\n }\n\n const page = Current.page\n const path = page?.path\n const msg = '没有找到已经加载了的页面,请在页面加载完成后使用此 API。'\n if (path == null) {\n throw new Error(msg)\n }\n\n const el = document.getElementById(path)\n if (el == null) {\n throw new Error('在已加载页面中没有找到对应的容器元素。')\n }\n\n return el\n}\n\ninterface IParameterErrorParam {\n name?: string\n para?: string\n correct?: string\n wrong?: unknown\n level?: 'warn' | 'error' | 'log' | 'info' | 'debug'\n}\nexport function getParameterError ({ name = '', para, correct, wrong, level = 'error' }: IParameterErrorParam) {\n const parameter = para ? `parameter.${para}` : 'parameter'\n const errorType = upperCaseFirstLetter(wrong === null ? 'Null' : typeof wrong)\n return `${name ? `${name}:fail ` : ''}parameter ${level}: ${parameter} should be ${correct} instead of ${errorType}`\n}\n\nexport function upperCaseFirstLetter (string) {\n if (typeof string !== 'string') return string\n string = string.replace(/^./, match => match.toUpperCase())\n return string\n}\n\nexport function inlineStyle (style) {\n let res = ''\n for (const attr in style) res += `${attr}: ${style[attr]};`\n if (res.indexOf('display: flex;') >= 0) res += 'display: -webkit-box;display: -webkit-flex;'\n res = res.replace(/transform:(.+?);/g, (s, $1) => `${s}-webkit-transform:${$1};`)\n res = res.replace(/flex-direction:(.+?);/g, (s, $1) => `${s}-webkit-flex-direction:${$1};`)\n return res\n}\n\nexport function setTransform (el, val) {\n el.style.webkitTransform = val\n el.style.transform = val\n}\n\nexport function serializeParams (params) {\n if (!params) {\n return ''\n }\n return Object.keys(params)\n .map(key => (\n `${encodeURIComponent(key)}=${typeof (params[key]) === 'object'\n ? encodeURIComponent(JSON.stringify(params[key]))\n : encodeURIComponent(params[key])}`))\n .join('&')\n}\n\nexport function temporarilyNotSupport (name = '') {\n return (option = {}, ...args) => {\n const { success, fail, complete } = option as any\n const handle = new MethodHandler({ name, success, fail, complete })\n const errMsg = '暂时不支持 API'\n Taro.eventCenter.trigger('__taroNotSupport', {\n name,\n args: [option, ...args],\n type: 'method',\n category: 'temporarily',\n })\n if (process.env.NODE_ENV === 'production') {\n console.warn(errMsg)\n return handle.success({ errMsg })\n } else {\n return handle.fail({ errMsg })\n }\n }\n}\n\nexport function weixinCorpSupport (name: string) {\n return (option = {}, ...args) => {\n const { success, fail, complete } = option as any\n const handle = new MethodHandler({ name, success, fail, complete })\n const errMsg = 'h5 端当前仅在微信公众号 JS-SDK 环境下支持此 API'\n Taro.eventCenter.trigger('__taroNotSupport', {\n name,\n args: [option, ...args],\n type: 'method',\n category: 'weixin_corp',\n })\n if (process.env.NODE_ENV === 'production') {\n console.warn(errMsg)\n return handle.success({ errMsg })\n } else {\n return handle.fail({ errMsg })\n }\n }\n}\n\nexport function permanentlyNotSupport (name = '') {\n return (option = {}, ...args: any[]) => {\n const { success, fail, complete } = option as any\n const handle = new MethodHandler({ name, success, fail, complete })\n const errMsg = '不支持 API'\n Taro.eventCenter.trigger('__taroNotSupport', {\n name,\n args: [option, ...args],\n type: 'method',\n category: 'permanently',\n })\n if (process.env.NODE_ENV === 'production') {\n console.warn(errMsg)\n return handle.success({ errMsg })\n } else {\n return handle.fail({ errMsg })\n }\n }\n}\n\ninterface IProcessOpenApi<TOptions = Record<string, unknown>, TResult extends TaroGeneral.CallbackResult = any> {\n name: string\n defaultOptions?: TOptions\n standardMethod?: (opts: TOptions) => Promise<TResult>\n formatOptions?: (opts: TOptions) => TOptions\n formatResult?: (res: TResult) => TResult\n}\n\nexport function processOpenApi<TOptions = Record<string, unknown>, TResult extends TaroGeneral.CallbackResult = any> ({\n name,\n defaultOptions,\n standardMethod,\n formatOptions = options => options,\n formatResult = res => res\n}: IProcessOpenApi<TOptions, TResult>) {\n const notSupported = weixinCorpSupport(name)\n return (options: Partial<TOptions> = {}, ...args: any[]): Promise<TResult> => {\n // @ts-ignore\n const targetApi = window?.wx?.[name]\n const opts = formatOptions(Object.assign({}, defaultOptions, options))\n if (isFunction(targetApi)) {\n return new Promise<TResult>((resolve, reject) => {\n ['fail', 'success', 'complete'].forEach(k => {\n opts[k] = preRef => {\n const res = formatResult(preRef)\n options[k] && options[k](res)\n if (k === 'success') {\n resolve(res)\n } else if (k === 'fail') {\n reject(res)\n }\n }\n return targetApi(opts)\n })\n })\n } else if (isFunction(standardMethod)) {\n return standardMethod(opts)\n } else {\n return notSupported(options, ...args) as Promise<TResult>\n }\n }\n}\n\n/**\n * 获取当前页面路径\n * @returns\n */\nexport function getCurrentPath (): string {\n const appConfig = (window as any).__taroAppConfig || {}\n const routePath = getCurrentPage(appConfig.router?.mode, appConfig.router?.basename)\n const homePath = getHomePage(appConfig.routes?.[0]?.path, appConfig.router?.basename, appConfig.router?.customRoutes, appConfig.entryPagePath)\n\n /**\n * createPageConfig 时根据 stack 的长度来设置 stamp 以保证页面 path 的唯一,此函数是在 createPageConfig 之前调用,预先设置 stamp=1\n * url 上没有指定应用的启动页面时使用 homePath\n */\n return `${routePath === '/' ? homePath : routePath}?stamp=1`\n}\n\nexport * from './animation'\nexport * from './helper'\nexport * from './valid'\n","import { temporarilyNotSupport } from '../../utils'\n\n// 广告\nexport const createRewardedVideoAd = /* @__PURE__ */ temporarilyNotSupport('createRewardedVideoAd')\nexport const createInterstitialAd = /* @__PURE__ */ temporarilyNotSupport('createInterstitialAd')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 人脸识别\nexport const stopFaceDetect = /* @__PURE__ */ temporarilyNotSupport('stopFaceDetect')\nexport const initFaceDetect = /* @__PURE__ */ temporarilyNotSupport('initFaceDetect')\nexport const faceDetect = /* @__PURE__ */ temporarilyNotSupport('faceDetect')\n","import { temporarilyNotSupport } from '../../utils'\n\n// AI推理\nexport const getInferenceEnvInfo = /* @__PURE__ */ temporarilyNotSupport('getInferenceEnvInfo')\nexport const createInferenceSession = /* @__PURE__ */ temporarilyNotSupport('createInferenceSession')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 判断支持版本\nexport const isVKSupport = /* @__PURE__ */ temporarilyNotSupport('isVKSupport')\n\n// 视觉算法\nexport const createVKSession = /* @__PURE__ */ temporarilyNotSupport('createVKSession')\n","import { temporarilyNotSupport } from '../../utils'\n\n// AliPay\nexport const getOpenUserInfo = /* @__PURE__ */ temporarilyNotSupport('getOpenUserInfo')\nexport const tradePay = /* @__PURE__ */ temporarilyNotSupport('tradePay')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 加密\nexport const getUserCryptoManager = /* @__PURE__ */ temporarilyNotSupport('getUserCryptoManager')\n","import { temporarilyNotSupport } from '../../utils'\n\nexport const setEnableDebug = /* @__PURE__ */ temporarilyNotSupport('setEnableDebug')\nexport const getRealtimeLogManager = /* @__PURE__ */ temporarilyNotSupport('getRealtimeLogManager')\nexport const getLogManager = /* @__PURE__ */ temporarilyNotSupport('getLogManager')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 性能\nexport const reportPerformance = /* @__PURE__ */ temporarilyNotSupport('reportPerformance')\nexport const getPerformance = /* @__PURE__ */ temporarilyNotSupport('getPerformance')\nexport const preloadWebview = /* @__PURE__ */ temporarilyNotSupport('preloadWebview')\nexport const preloadSkylineView = /* @__PURE__ */ temporarilyNotSupport('preloadSkylineView')\nexport const preloadAssets = /* @__PURE__ */ temporarilyNotSupport('preloadAssets')\n","import Taro from '@tarojs/api'\nimport platform from 'platform'\n\nimport { temporarilyNotSupport } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\n/** 跳转系统蓝牙设置页 */\nexport const openSystemBluetoothSetting = /* @__PURE__ */ temporarilyNotSupport('openSystemBluetoothSetting')\n\n/** 跳转系统微信授权管理页 */\nexport const openAppAuthorizeSetting = /* @__PURE__ */ temporarilyNotSupport('openAppAuthorizeSetting')\n\n/** 获取窗口信息 */\nexport const getWindowInfo: typeof Taro.getWindowInfo = () => {\n const info: ReturnType<typeof Taro.getWindowInfo> = {\n /** 设备像素比 */\n pixelRatio: window.devicePixelRatio,\n /** 屏幕宽度,单位px */\n screenWidth: window.screen.width,\n /** 屏幕高度,单位px */\n screenHeight: window.screen.height,\n /** 可使用窗口宽度,单位px */\n windowWidth: document.documentElement.clientWidth,\n /** 可使用窗口高度,单位px */\n windowHeight: document.documentElement.clientHeight,\n /** 状态栏的高度,单位px */\n statusBarHeight: NaN,\n /** 在竖屏正方向下的安全区域 */\n safeArea: {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0\n }\n }\n\n return info\n}\n\n/** 获取设备设置 */\nexport const getSystemSetting: typeof Taro.getSystemSetting = () => {\n const isLandscape = window.screen.width >= window.screen.height\n const info: ReturnType<typeof Taro.getSystemSetting> = {\n /** 蓝牙的系统开关 */\n bluetoothEnabled: false,\n /** 地理位置的系统开关 */\n locationEnabled: false,\n /** Wi-Fi 的系统开关 */\n wifiEnabled: false,\n /** 设备方向 */\n deviceOrientation: isLandscape ? 'landscape' : 'portrait'\n }\n\n return info\n}\n\n/** 获取设备设置 */\nexport const getDeviceInfo: typeof Taro.getDeviceInfo = () => {\n const info: ReturnType<typeof Taro.getDeviceInfo> = {\n /** 应用二进制接口类型(仅 Android 支持) */\n abi: '',\n /** 设备二进制接口类型(仅 Android 支持) */\n deviceAbi: '',\n /** 设备性能等级(仅Android小游戏)。取值为:-2 或 0(该设备无法运行小游戏),-1(性能未知),>=1(设备性能值,该值越高,设备性能越好,目前最高不到50) */\n benchmarkLevel: -1,\n /** 设备品牌 */\n brand: platform.manufacturer || 'unknown',\n /** 设备型号 */\n model: platform.product || 'unknown',\n /** 操作系统及版本 */\n system: platform.os?.toString() || 'unknown',\n /** 客户端平台 */\n platform: platform.os?.family || 'unknown',\n /** 设备二进制接口类型(仅 Android 支持) */\n CPUType: '',\n }\n\n return info\n}\n\n/** 获取微信APP基础信息 */\nexport const getAppBaseInfo: typeof Taro.getAppBaseInfo = () => {\n let isDarkMode = false\n if (window.matchMedia?.('(prefers-color-scheme: dark)').matches) {\n isDarkMode = true\n }\n\n const info: ReturnType<typeof Taro.getAppBaseInfo> = {\n /** 客户端基础库版本 */\n SDKVersion: '',\n /** 是否已打开调试。可通过右上角菜单或 [Taro.setEnableDebug](/docs/apis/base/debug/setEnableDebug) 打开调试。 */\n enableDebug: process.env.NODE_ENV !== 'production',\n /** 当前小程序运行的宿主环境 */\n // host: { appId: '' },\n /** 微信设置的语言 */\n language: navigator.language,\n /** 微信版本号 */\n version: '',\n /** 系统当前主题,取值为light或dark,全局配置\"darkmode\":true时才能获取,否则为 undefined (不支持小游戏) */\n theme: isDarkMode ? 'dark' : 'light'\n }\n\n return info\n}\n\n/** 获取微信APP授权设置 */\nexport const getAppAuthorizeSetting: typeof Taro.getAppAuthorizeSetting = () => {\n const info: ReturnType<typeof Taro.getAppAuthorizeSetting> = {\n /** 允许微信使用相册的开关(仅 iOS 有效) */\n albumAuthorized: 'not determined',\n /** 允许微信使用蓝牙的开关(仅 iOS 有效) */\n bluetoothAuthorized: 'not determined',\n /** 允许微信使用摄像头的开关 */\n cameraAuthorized: 'not determined',\n /** 允许微信使用定位的开关 */\n locationAuthorized: 'not determined',\n /** 定位准确度。true 表示模糊定位,false 表示精确定位(仅 iOS 有效) */\n locationReducedAccuracy: false,\n /** 允许微信使用麦克风的开关 */\n microphoneAuthorized: 'not determined',\n /** 允许微信通知的开关 */\n notificationAuthorized: 'not determined',\n /** 允许微信通知带有提醒的开关(仅 iOS 有效) */\n notificationAlertAuthorized: 'not determined',\n /** 允许微信通知带有标记的开关(仅 iOS 有效) */\n notificationBadgeAuthorized: 'not determined',\n /** 允许微信通知带有声音的开关(仅 iOS 有效) */\n notificationSoundAuthorized: 'not determined',\n /** 允许微信使用日历的开关 */\n phoneCalendarAuthorized: 'not determined'\n }\n\n return info\n}\n\n/** 获取设备设置 */\nexport const getSystemInfoSync: typeof Taro.getSystemInfoSync = () => {\n const windowInfo = getWindowInfo()\n const systemSetting = getSystemSetting()\n const deviceInfo: Taro.getDeviceInfo.Result = getDeviceInfo()\n const appBaseInfo = getAppBaseInfo()\n const appAuthorizeSetting = getAppAuthorizeSetting()\n delete deviceInfo.abi\n\n const info: ReturnType<typeof Taro.getSystemInfoSync> = {\n ...windowInfo,\n ...systemSetting,\n ...deviceInfo,\n ...appBaseInfo,\n /** 用户字体大小(单位px)。以微信客户端「我-设置-通用-字体大小」中的设置为准 */\n fontSizeSetting: NaN,\n /** 允许微信使用相册的开关(仅 iOS 有效) */\n albumAuthorized: appAuthorizeSetting.albumAuthorized === 'authorized',\n /** 允许微信使用摄像头的开关 */\n cameraAuthorized: appAuthorizeSetting.cameraAuthorized === 'authorized',\n /** 允许微信使用定位的开关 */\n locationAuthorized: appAuthorizeSetting.locationAuthorized === 'authorized',\n /** 允许微信使用麦克风的开关 */\n microphoneAuthorized: appAuthorizeSetting.microphoneAuthorized === 'authorized',\n /** 允许微信通知的开关 */\n notificationAuthorized: appAuthorizeSetting.notificationAuthorized === 'authorized',\n /** 允许微信通知带有提醒的开关(仅 iOS 有效) */\n notificationAlertAuthorized: appAuthorizeSetting.notificationAlertAuthorized === 'authorized',\n /** 允许微信通知带有标记的开关(仅 iOS 有效) */\n notificationBadgeAuthorized: appAuthorizeSetting.notificationBadgeAuthorized === 'authorized',\n /** 允许微信通知带有声音的开关(仅 iOS 有效) */\n notificationSoundAuthorized: appAuthorizeSetting.notificationSoundAuthorized === 'authorized',\n /** 允许微信使用日历的开关 */\n phoneCalendarAuthorized: appAuthorizeSetting.phoneCalendarAuthorized === 'authorized',\n /** `true` 表示模糊定位,`false` 表示精确定位,仅 iOS 支持 */\n locationReducedAccuracy: appAuthorizeSetting.locationReducedAccuracy,\n /** 小程序当前运行环境 */\n environment: ''\n }\n\n return info\n}\n\n/** 获取系统信息 */\nexport const getSystemInfoAsync: typeof Taro.getSystemInfoAsync = async (options = {}) => {\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'getSystemInfoAsync', success, fail, complete })\n\n try {\n const info = await getSystemInfoSync()\n return handle.success(info)\n } catch (error) {\n return handle.fail({\n errMsg: error\n })\n }\n}\n\n/** 获取系统信息 */\nexport const getSystemInfo: typeof Taro.getSystemInfo = async (options = {}) => {\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'getSystemInfo', success, fail, complete })\n\n try {\n const info = await getSystemInfoSync()\n return handle.success(info)\n } catch (error) {\n return handle.fail({\n errMsg: error\n })\n }\n}\n\nexport const getSkylineInfoSync = /* @__PURE__ */ temporarilyNotSupport('getSkylineInfoSync')\n\nexport const getSkylineInfo = /* @__PURE__ */ temporarilyNotSupport('getSkylineInfo')\n\nexport const getRendererUserAgent = /* @__PURE__ */ temporarilyNotSupport('getRendererUserAgent')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 更新\nexport const updateWeChatApp = /* @__PURE__ */ temporarilyNotSupport('updateWeChatApp')\nexport const getUpdateManager = /* @__PURE__ */ temporarilyNotSupport('getUpdateManager')\n","import Taro from '@tarojs/api'\nimport isNil from 'lodash-es/isNil'\nimport queryString from 'query-string'\n\nimport { temporarilyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nconst unhandledRejectionCallbackManager = new CallbackManager<[Taro.onUnhandledRejection.Result]>()\nconst themeChangeCallbackManager = new CallbackManager<[Taro.onThemeChange.Result]>()\nconst pageNotFoundCallbackManager = new CallbackManager<[Taro.onPageNotFound.Result]>()\nconst errorCallbackManager = new CallbackManager<Parameters<Taro.onError.Callback>>()\nconst appShowCallbackManager = new CallbackManager<[Taro.onAppShow.CallbackResult]>()\nconst appHideCallbackManager = new CallbackManager<[Taro.onAppShow.CallbackResult]>()\n\nconst unhandledRejectionListener = (res: PromiseRejectionEvent) => {\n unhandledRejectionCallbackManager.trigger(res)\n}\n\nlet themeMatchMedia: MediaQueryList | null = null\nconst themeChangeListener = (res: MediaQueryListEvent) => {\n themeChangeCallbackManager.trigger({\n theme: res.matches ? 'dark' : 'light'\n })\n}\n\nconst pageNotFoundListener = (res: Taro.onPageNotFound.Result) => {\n pageNotFoundCallbackManager.trigger(res)\n}\n\nconst errorListener = (res: ErrorEvent) => {\n // @ts-ignore\n errorCallbackManager.trigger(res.stack || res.message || res)\n}\n\nconst getApp = () => {\n const path = Taro.Current.page?.path\n return {\n /** 小程序切前台的路径 */\n path: path?.substring(0, path.indexOf('?')) || '',\n /** 小程序切前台的 query 参数 */\n query: queryString.parse(location.search),\n /** 来源信息。 */\n referrerInfo: {},\n /** 小程序切前台的[场景值](https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/scene.html) */\n scene: 0,\n /** shareTicket,详见[获取更多转发信息](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html) */\n shareTicket: ''\n }\n}\n\nconst appShowListener = () => {\n if (document.visibilityState !== 'hidden') {\n appShowCallbackManager.trigger(getApp())\n }\n}\n\nconst appHideListener = () => {\n if (document.visibilityState === 'hidden') {\n appHideCallbackManager.trigger(getApp())\n }\n}\n\n// 应用级事件\nexport const onUnhandledRejection: typeof Taro.onUnhandledRejection = callback => {\n unhandledRejectionCallbackManager.add(callback)\n if (unhandledRejectionCallbackManager.count() === 1) {\n window.addEventListener('unhandledrejection', unhandledRejectionListener)\n }\n}\n\nexport const onThemeChange: typeof Taro.onThemeChange = callback => {\n themeChangeCallbackManager.add(callback)\n if (themeChangeCallbackManager.count() === 1) {\n if (isNil(themeMatchMedia)) {\n themeMatchMedia = window.matchMedia('(prefers-color-scheme: light)')\n }\n themeMatchMedia!.addEventListener('change', themeChangeListener)\n }\n}\n\nexport const onPageNotFound: typeof Taro.onPageNotFound = callback => {\n pageNotFoundCallbackManager.add(callback)\n if (pageNotFoundCallbackManager.count() === 1) {\n Taro.eventCenter.on('__taroRouterNotFound', pageNotFoundListener)\n }\n}\n\nexport const onLazyLoadError = /* @__PURE__ */ temporarilyNotSupport('onLazyLoadError')\n\nexport const onError: typeof Taro.onError = callback => {\n errorCallbackManager.add(callback)\n if (errorCallbackManager.count() === 1) {\n window.addEventListener('error', errorListener)\n }\n}\n\nexport const onAudioInterruptionEnd = /* @__PURE__ */ temporarilyNotSupport('onAudioInterruptionEnd')\nexport const onAudioInterruptionBegin = /* @__PURE__ */ temporarilyNotSupport('onAudioInterruptionBegin')\n\nexport const onAppShow: typeof Taro.onAppShow = callback => {\n appShowCallbackManager.add(callback)\n if (appShowCallbackManager.count() === 1) {\n window.addEventListener('visibilitychange', appShowListener)\n }\n}\n\nexport const onAppHide: typeof Taro.onAppHide = callback => {\n appHideCallbackManager.add(callback)\n if (appHideCallbackManager.count() === 1) {\n window.addEventListener('visibilitychange', appHideListener)\n }\n}\n\nexport const offUnhandledRejection: typeof Taro.offUnhandledRejection = callback => {\n unhandledRejectionCallbackManager.remove(callback)\n if (unhandledRejectionCallbackManager.count() === 0) {\n window.removeEventListener('unhandledrejection', unhandledRejectionListener)\n }\n}\n\nexport const offThemeChange: typeof Taro.offThemeChange = callback => {\n themeChangeCallbackManager.remove(callback)\n if (themeChangeCallbackManager.count() === 0) {\n if (isNil(themeMatchMedia)) {\n themeMatchMedia = window.matchMedia('(prefers-color-scheme: light)')\n }\n themeMatchMedia!.removeEventListener('change', themeChangeListener)\n themeMatchMedia = null\n }\n}\n\nexport const offPageNotFound: typeof Taro.offPageNotFound = callback => {\n pageNotFoundCallbackManager.remove(callback)\n if (pageNotFoundCallbackManager.count() === 0) {\n Taro.eventCenter.off('__taroRouterNotFound', pageNotFoundListener)\n }\n}\n\nexport const offLazyLoadError = /* @__PURE__ */ temporarilyNotSupport('offLazyLoadError')\n\nexport const offError: typeof Taro.offError = callback => {\n errorCallbackManager.remove(callback)\n if (errorCallbackManager.count() === 0) {\n window.removeEventListener('error', errorListener)\n }\n}\n\nexport const offAudioInterruptionEnd = /* @__PURE__ */ temporarilyNotSupport('offAudioInterruptionEnd')\nexport const offAudioInterruptionBegin = /* @__PURE__ */ temporarilyNotSupport('offAudioInterruptionBegin')\n\nexport const offAppShow: typeof Taro.offAppShow = callback => {\n appShowCallbackManager.remove(callback)\n if (appShowCallbackManager.count() === 0) {\n window.removeEventListener('visibilitychange', appShowListener)\n }\n}\n\nexport const offAppHide: typeof Taro.offAppHide = callback => {\n appHideCallbackManager.remove(callback)\n if (appHideCallbackManager.count() === 0) {\n window.removeEventListener('visibilitychange', appHideListener)\n }\n}\n","import Taro from '@tarojs/api'\n\nconst launchOptions: Taro.getLaunchOptionsSync.LaunchOptions = {\n path: '',\n query: {},\n scene: 0,\n shareTicket: '',\n referrerInfo: {}\n}\n\nfunction initLaunchOptions (options = {}) {\n Object.assign(launchOptions, options)\n}\n\nTaro.eventCenter.once('__taroRouterLaunch', initLaunchOptions)\n\n// 生命周期\nexport const getLaunchOptionsSync: typeof Taro.getLaunchOptionsSync = () => launchOptions\nexport const getEnterOptionsSync: typeof Taro.getEnterOptionsSync = () => launchOptions\n","import { fromByteArray, toByteArray } from 'base64-js'\n\nexport const env = {\n FRAMEWORK: process.env.FRAMEWORK,\n TARO_ENV: process.env.TARO_ENV,\n TARO_PLATFORM: process.env.TARO_PLATFORM,\n TARO_VERSION: process.env.TARO_VERSION,\n}\n\n// Note: 该方法由 taro-plugin-platform-h5 实现\n// export const canIUse = /* @__PURE__ */ temporarilyNotSupport('canIUse')\n\nexport function arrayBufferToBase64 (arrayBuffer: ArrayBuffer) {\n return fromByteArray(arrayBuffer as Uint8Array)\n}\n\nexport function base64ToArrayBuffer (base64: string) {\n return toByteArray(base64).buffer\n}\n\nexport * from './crypto'\nexport * from './debug'\nexport * from './performance'\nexport * from './system'\nexport * from './update'\nexport * from './weapp/app-event'\nexport * from './weapp/life-cycle'\n","import Taro, { CanvasGradient } from '@tarojs/api'\n\ninterface IAction {\n func: (...arr: any[]) => void\n args: any[]\n}\n\nconst TextBaseLineMap: Record<keyof Taro.CanvasContext.TextBaseline, CanvasTextBaseline> = {\n top: 'top',\n bottom: 'bottom',\n middle: 'middle',\n normal: 'alphabetic',\n hanging: 'hanging',\n alphabetic: 'alphabetic',\n ideographic: 'ideographic'\n}\n\nexport class CanvasContext implements Taro.CanvasContext {\n __raw__: CanvasRenderingContext2D\n actions: IAction[] = []\n\n constructor (canvas, ctx) {\n this.canvas = canvas\n this.ctx = ctx\n }\n\n set ctx (e: CanvasRenderingContext2D) {\n this.__raw__ = e\n }\n\n get ctx () {\n return this.__raw__ || {}\n }\n\n canvas: HTMLCanvasElement\n\n protected emptyActions () {\n this.actions.length = 0\n }\n\n protected enqueueActions (func: IAction['func'], ...args) {\n this.actions.push({\n func,\n args\n })\n }\n\n set fillStyle (e) { this.enqueueActions(() => { this.ctx.fillStyle = e }) }\n get fillStyle () { return this.ctx.fillStyle as string }\n set font (e) { this.ctx.font = e }\n get font () { return this.ctx.font }\n set globalAlpha (e) { this.enqueueActions(() => { this.ctx.globalAlpha = e }) }\n get globalAlpha () { return this.ctx.globalAlpha }\n set globalCompositeOperation (e) { this.enqueueActions(() => { this.ctx.globalCompositeOperation = e }) }\n get globalCompositeOperation () { return this.ctx.globalCompositeOperation }\n set lineCap (e) { this.enqueueActions(() => { this.ctx.lineCap = e }) }\n get lineCap () { return this.ctx.lineCap }\n set lineDashOffset (e) { this.enqueueActions(() => { this.ctx.lineDashOffset = e }) }\n get lineDashOffset () { return this.ctx.lineDashOffset }\n set lineJoin (e) { this.enqueueActions(() => { this.ctx.lineJoin = e }) }\n get lineJoin () { return this.ctx.lineJoin }\n set lineWidth (e) { this.enqueueActions(() => { this.ctx.lineWidth = e }) }\n get lineWidth () { return this.ctx.lineWidth }\n set miterLimit (e) { this.enqueueActions(() => { this.ctx.miterLimit = e }) }\n get miterLimit () { return this.ctx.miterLimit }\n set shadowBlur (e) { this.enqueueActions(() => { this.ctx.shadowBlur = e }) }\n get shadowBlur () { return this.ctx.shadowBlur }\n set shadowColor (e) { this.enqueueActions(() => { this.ctx.shadowColor = e }) }\n get shadowColor () { return this.ctx.shadowColor }\n set shadowOffsetX (e) { this.enqueueActions(() => { this.ctx.shadowOffsetX = e }) }\n get shadowOffsetX () { return this.ctx.shadowOffsetX }\n set shadowOffsetY (e) { this.enqueueActions(() => { this.ctx.shadowOffsetY = e }) }\n get shadowOffsetY () { return this.ctx.shadowOffsetY }\n set strokeStyle (e) { this.enqueueActions(() => { this.ctx.strokeStyle = e }) }\n get strokeStyle () { return this.ctx.strokeStyle as string }\n /** 小程序文档中不包括 ↓↓↓ */\n set textAlign (e) { this.ctx.textAlign = e }\n get textAlign () { return this.ctx.textAlign }\n set textBaseline (e) { this.ctx.textBaseline = e }\n get textBaseline () { return this.ctx.textBaseline }\n set direction (e) { this.ctx.direction = e }\n get direction () { return this.ctx.direction }\n set imageSmoothingEnabled (e) { this.enqueueActions(() => { this.ctx.imageSmoothingEnabled = e }) }\n get imageSmoothingEnabled () { return this.ctx.imageSmoothingEnabled }\n set imageSmoothingQuality (e) { this.enqueueActions(() => { this.ctx.imageSmoothingQuality = e }) }\n get imageSmoothingQuality () { return this.ctx.imageSmoothingQuality }\n set filter (e) { this.enqueueActions(() => { this.ctx.filter = e }) }\n get filter () { return this.ctx.filter }\n /** 小程序文档中不包括 ↑↑↑ */\n\n arc (...args) { return this.enqueueActions(this.ctx.arc, ...args) }\n arcTo (...args) { return this.enqueueActions(this.ctx.arcTo, ...args) }\n beginPath (...args) { return this.enqueueActions(this.ctx.beginPath, ...args) }\n bezierCurveTo (...args) { return this.enqueueActions(this.ctx.bezierCurveTo, ...args) }\n clearRect (...args) { return this.enqueueActions(this.ctx.clearRect, ...args) }\n clip (...args) { return this.enqueueActions(this.ctx.clip, ...args) }\n closePath (...args) { return this.enqueueActions(this.ctx.closePath, ...args) }\n\n createPattern (imageResource: string, repetition: keyof Taro.CanvasContext.Repetition): CanvasPattern | null | Promise<CanvasPattern | null> {\n // 需要转换为 Image\n if (typeof imageResource === 'string') {\n const img = new Image()\n img.src = imageResource\n return new Promise<CanvasPattern | null>((resolve, reject) => {\n img.onload = () => {\n resolve(this.ctx.createPattern(img, repetition))\n }\n img.onerror = reject\n })\n }\n\n return this.ctx.createPattern(imageResource, repetition)\n }\n\n /**\n * 将之前在绘图上下文中的描述(路径、变形、样式)画到 canvas 中。\n * @todo 每次 draw 都会读取 width 和 height\n */\n async draw (reserve?: boolean, callback?: (...args: any[]) => any): Promise<void> {\n try {\n if (!reserve) {\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height)\n }\n\n // 部分 action 是异步的\n for (const { func, args } of this.actions) {\n await func.apply(this.ctx, args)\n }\n\n this.emptyActions()\n callback && callback()\n } catch (e) {\n /* eslint-disable no-throw-literal */\n throw {\n errMsg: e.message\n }\n }\n }\n\n drawImage (imageResource: string, ...extra: any[]): void {\n type TExtra = [number, number]\n this.enqueueActions(() => {\n // 需要转换为 Image\n if (typeof imageResource === 'string') {\n const img = new Image()\n img.src = imageResource\n return new Promise<void>((resolve, reject) => {\n img.onload = () => {\n this.ctx.drawImage(img, ...extra as TExtra)\n resolve()\n }\n img.onerror = reject\n })\n }\n\n this.ctx.drawImage(imageResource, ...extra as TExtra)\n })\n }\n\n fill (...args) { return this.enqueueActions(this.ctx.fill, ...args) }\n fillRect (...args) { return this.enqueueActions(this.ctx.fillRect, ...args) }\n fillText (...args) { return this.enqueueActions(this.ctx.fillText, ...args) }\n lineTo (...args) { return this.enqueueActions(this.ctx.lineTo, ...args) }\n moveTo (...args) { return this.enqueueActions(this.ctx.moveTo, ...args) }\n quadraticCurveTo (...args) { return this.enqueueActions(this.ctx.quadraticCurveTo, ...args) }\n rect (...args) { return this.enqueueActions(this.ctx.rect, ...args) }\n // @ts-ignore\n reset () { return this.ctx.reset() }\n restore () { return this.ctx.restore() }\n rotate (...args) { return this.enqueueActions(this.ctx.rotate, ...args) }\n save () { return this.ctx.save() }\n scale (...args) { return this.enqueueActions(this.ctx.scale, ...args) }\n\n setFillStyle (color: string | CanvasGradient): void {\n this.enqueueActions(() => { this.ctx.fillStyle = color })\n }\n\n setFontSize (fontSize: number): void {\n const arr = this.font.split(/\\s/)\n const idx = arr.findIndex(e => /^\\d+px$/.test(e))\n if (idx !== -1) {\n arr[idx] = `${fontSize}px`\n this.font = arr.join(' ')\n }\n }\n\n setGlobalAlpha (alpha: number): void {\n this.globalAlpha = alpha\n }\n\n setLineCap (lineCap: keyof Taro.CanvasContext.LineCap): void {\n this.lineCap = lineCap\n }\n\n setLineDash (pattern: number[], offset: number): void {\n this.enqueueActions(() => {\n this.ctx.setLineDash(pattern)\n this.ctx.lineDashOffset = offset\n })\n }\n\n setLineJoin (lineJoin: keyof Taro.CanvasContext.LineJoin): void {\n this.lineJoin = lineJoin\n }\n\n setLineWidth (lineWidth: number): void {\n this.lineWidth = lineWidth\n }\n\n setMiterLimit (miterLimit: number): void {\n this.miterLimit = miterLimit\n }\n\n setShadow (offsetX: number, offsetY: number, blur: number, color: string): void {\n this.enqueueActions(() => {\n this.ctx.shadowOffsetX = offsetX\n this.ctx.shadowOffsetY = offsetY\n this.ctx.shadowColor = color\n this.ctx.shadowBlur = blur\n })\n }\n\n setStrokeStyle (color: string | CanvasGradient): void {\n this.enqueueActions(() => { this.ctx.strokeStyle = color })\n }\n\n setTextAlign (align: keyof Taro.CanvasContext.Align): void {\n this.textAlign = align\n }\n\n setTextBaseline (textBaseline: keyof Taro.CanvasContext.TextBaseline): void {\n this.textBaseline = TextBaseLineMap[textBaseline] || 'alphabetic'\n }\n\n setTransform (...args) { return this.enqueueActions(this.ctx.setTransform, ...args) }\n stroke (...args) { return this.enqueueActions(this.ctx.stroke, ...args) }\n strokeRect (...args) { return this.enqueueActions(this.ctx.strokeRect, ...args) }\n strokeText (...args) { return this.enqueueActions(this.ctx.strokeText, ...args) }\n transform (...args) { return this.enqueueActions(this.ctx.transform, ...args) }\n translate (...args) { return this.enqueueActions(this.ctx.translate, ...args) }\n\n measureText (text: string): TextMetrics {\n return this.ctx.measureText(text)\n }\n\n createCircularGradient (x: number, y: number, r: number): CanvasGradient {\n const radialGradient = this.ctx.createRadialGradient(x, y, 0, x, y, r)\n\n return radialGradient\n }\n\n createLinearGradient (x0: number, y0: number, x1: number, y1: number): CanvasGradient {\n return this.ctx.createLinearGradient(x0, y0, x1, y1)\n }\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { findDOM } from '../../utils'\r\nimport { CanvasContext } from './CanvasContext'\r\n\r\n/**\r\n * 创建 canvas 的绘图上下文 CanvasContext 对象\r\n */\r\nexport const createCanvasContext: typeof Taro.createCanvasContext = (canvasId, inst) => {\r\n const el = findDOM(inst) as HTMLElement\r\n const canvas = el?.querySelector(`canvas[canvas-id=\"${canvasId}\"]`) as HTMLCanvasElement\r\n const ctx = canvas?.getContext('2d') as CanvasRenderingContext2D\r\n const context = new CanvasContext(canvas, ctx)\r\n if (!ctx) return context\r\n context.canvas = canvas\r\n context.ctx = ctx\r\n\r\n return context\r\n}\r\n","import Taro from '@tarojs/api'\n\nimport { findDOM } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\n/**\n * 把当前画布指定区域的内容导出生成指定大小的图片。在 draw() 回调里调用该方法才能保证图片导出成功。\n * @todo 暂未支持尺寸相关功能\n */\nexport const canvasToTempFilePath: typeof Taro.canvasToTempFilePath = ({ canvasId, fileType, quality, success, fail, complete }, inst) => {\n const handle = new MethodHandler({ name: 'canvasToTempFilePath', success, fail, complete })\n const el = findDOM(inst) as HTMLElement\n const canvas = el?.querySelector(`canvas[canvas-id=\"${canvasId}\"]`) as HTMLCanvasElement\n\n try {\n const dataURL = canvas?.toDataURL(`image/${(fileType === 'jpg' ? 'jpeg' : fileType) || 'png'}`, quality)\n return handle.success({\n tempFilePath: dataURL\n })\n } catch (e) {\n return handle.fail({\n errMsg: e.message\n })\n }\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { findDOM } from '../../utils'\r\nimport { MethodHandler } from '../../utils/handler'\r\n\r\n/**\r\n * 将像素数据绘制到画布。在自定义组件下,第二个参数传入自定义组件实例 this,以操作组件内 <canvas> 组件\r\n * @todo 暂未支持尺寸相关功能\r\n */\r\nexport const canvasPutImageData: typeof Taro.canvasPutImageData = ({ canvasId, data, x, y, success, fail, complete }, inst) => {\r\n const handle = new MethodHandler({ name: 'canvasPutImageData', success, fail, complete })\r\n const el = findDOM(inst) as HTMLElement\r\n const canvas = el?.querySelector(`canvas[canvas-id=\"${canvasId}\"]`) as HTMLCanvasElement\r\n\r\n try {\r\n const ctx = canvas.getContext('2d')\r\n // TODO Uint8ClampedArray => ImageData\r\n ctx?.putImageData(data as unknown as ImageData, x, y)\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({\r\n errMsg: e.message\r\n })\r\n }\r\n}\r\n","import Taro from '@tarojs/api'\r\n\r\nimport { findDOM } from '../../utils'\r\nimport { MethodHandler } from '../../utils/handler'\r\n\r\n/**\r\n * 获取 canvas 区域隐含的像素数据。\r\n */\r\nexport const canvasGetImageData: typeof Taro.canvasGetImageData = ({ canvasId, success, fail, complete, x, y, width, height }, inst) => {\r\n const handle = new MethodHandler({ name: 'canvasGetImageData', success, fail, complete })\r\n const el = findDOM(inst) as HTMLElement\r\n const canvas = el?.querySelector(`canvas[canvas-id=\"${canvasId}\"]`) as HTMLCanvasElement\r\n\r\n try {\r\n const ctx = canvas?.getContext('2d')\r\n // TODO ImageData => Uint8ClampedArray\r\n const data = ctx?.getImageData(x, y, width, height) as unknown as Uint8ClampedArray\r\n return handle.success({\r\n width,\r\n height,\r\n data\r\n })\r\n } catch (e) {\r\n return handle.fail({\r\n errMsg: e.message\r\n })\r\n }\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\r\n\r\n// 画布\r\n\r\n/** 创建离屏 canvas 实例 */\r\nexport const createOffscreenCanvas = /* @__PURE__ */ temporarilyNotSupport('createOffscreenCanvas')\r\n\r\n/** 创建 canvas 的绘图上下文 CanvasContext 对象 */\r\nexport * from './createCanvasContext'\r\n\r\n/** 把当前画布指定区域的内容导出生成指定大小的图片 */\r\nexport * from './canvasToTempFilePath'\r\n\r\n/** 将像素数据绘制到画布 */\r\nexport * from './canvasPutImageData'\r\n\r\n/** 获取 canvas 区域隐含的像素数据 */\r\nexport * from './canvasGetImageData'\r\n","import Taro from '@tarojs/api'\n\nimport { temporarilyNotSupport } from '../../utils'\n\nexport class cloud implements Taro.cloud {\n Cloud: new (options: Taro.cloud.IOptions) => Taro.Cloud\n\n init = temporarilyNotSupport('cloud.init')\n\n CloudID = temporarilyNotSupport('cloud.CloudID')\n\n // @ts-ignore\n callFunction = temporarilyNotSupport('cloud.callFunction')\n\n // @ts-ignore\n uploadFile = temporarilyNotSupport('cloud.uploadFile')\n\n // @ts-ignore\n downloadFile = temporarilyNotSupport('cloud.downloadFile')\n\n // @ts-ignore\n getTempFileURL = temporarilyNotSupport('cloud.getTempFileURL')\n\n // @ts-ignore\n deleteFile = temporarilyNotSupport('cloud.deleteFile')\n\n // @ts-ignore\n database = temporarilyNotSupport('cloud.database')\n\n // @ts-ignore\n callContainer = temporarilyNotSupport('cloud.callContainer')\n}\n","import { temporarilyNotSupport } from '../../utils'\n\nexport const reportMonitor = /* @__PURE__ */ temporarilyNotSupport('reportMonitor')\nexport const reportAnalytics = /* @__PURE__ */ temporarilyNotSupport('reportAnalytics')\nexport const reportEvent = /* @__PURE__ */ temporarilyNotSupport('reportEvent')\nexport const getExptInfoSync = /* @__PURE__ */ temporarilyNotSupport('getExptInfoSync')\n","import Taro from '@tarojs/api'\r\nimport throttle from 'lodash-es/throttle'\r\n\r\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\r\n\r\nconst callbackManager = new CallbackManager()\r\nlet devicemotionListener\r\n\r\n/**\r\n * 停止监听加速度数据。\r\n */\r\nexport const stopAccelerometer: typeof Taro.stopAccelerometer = ({ success, fail, complete } = {}) => {\r\n const res: Partial<TaroGeneral.CallbackResult> = {}\r\n const handle = new MethodHandler({ name: 'stopAccelerometer', success, fail, complete })\r\n try {\r\n window.removeEventListener('devicemotion', devicemotionListener, true)\r\n return handle.success(res)\r\n } catch (e) {\r\n res.errMsg = e.message\r\n return handle.fail(res)\r\n }\r\n}\r\n\r\nconst INTERVAL_MAP = {\r\n game: {\r\n interval: 20,\r\n frequency: 50\r\n },\r\n ui: {\r\n interval: 60,\r\n frequency: 16.67\r\n },\r\n normal: {\r\n interval: 200,\r\n frequency: 5\r\n }\r\n}\r\n\r\n/**\r\n * 开始监听加速度数据。\r\n */\r\nexport const startAccelerometer: typeof Taro.startAccelerometer = ({ interval = 'normal', success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'startAccelerometer', success, fail, complete })\r\n try {\r\n if (window.DeviceMotionEvent) {\r\n const intervalObj = INTERVAL_MAP[interval]\r\n if (devicemotionListener) {\r\n stopAccelerometer()\r\n }\r\n devicemotionListener = throttle((evt: DeviceMotionEvent) => {\r\n callbackManager.trigger({\r\n x: evt.acceleration?.x || 0,\r\n y: evt.acceleration?.y || 0,\r\n z: evt.acceleration?.z || 0\r\n })\r\n }, intervalObj.interval)\r\n window.addEventListener('devicemotion', devicemotionListener, true)\r\n } else {\r\n throw new Error('accelerometer is not supported')\r\n }\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 监听加速度数据事件。频率根据 Taro.startAccelerometer() 的 interval 参数。可使用 Taro.stopAccelerometer() 停止监听。\r\n */\r\nexport const onAccelerometerChange: typeof Taro.onAccelerometerChange = callback => {\r\n callbackManager.add(callback)\r\n}\r\n\r\n/**\r\n * 取消监听加速度数据事件,参数为空,则取消所有的事件监听\r\n */\r\nexport const offAccelerometerChange: typeof Taro.offAccelerometerChange = callback => {\r\n callbackManager.remove(callback)\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// 无障碍\nexport const checkIsOpenAccessibility = /* @__PURE__ */ temporarilyNotSupport('checkIsOpenAccessibility')\n","import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\n// 电量\n\n// Note: 浏览器标准下不支持,其他实现方案不准确,不建议开发者使用\nexport const getBatteryInfoSync = /* @__PURE__ */ permanentlyNotSupport('getBatteryInfoSync')\n\nexport const getBatteryInfo: typeof Taro.getBatteryInfo = async ({ success, fail, complete } = {}) => {\n const handle = new MethodHandler({ name: 'getBatteryInfo', success, fail, complete })\n try {\n // @ts-ignore\n const battery = await navigator.getBattery?.()\n return handle.success({\n isCharging: battery.charging,\n level: Number(battery.level || 0) * 100\n })\n } catch (error) {\n return handle.fail({\n errMsg: error?.message || error\n })\n }\n}\n","import { temporarilyNotSupport } from '../../utils'\n\n// 蓝牙-通用\nexport const stopBluetoothDevicesDiscovery = /* @__PURE__ */ temporarilyNotSupport('stopBluetoothDevicesDiscovery')\nexport const startBluetoothDevicesDiscovery = /* @__PURE__ */ temporarilyNotSupport('startBluetoothDevicesDiscovery')\nexport const openBluetoothAdapter = /* @__PURE__ */ temporarilyNotSupport('openBluetoothAdapter')\nexport const onBluetoothDeviceFound = /* @__PURE__ */ temporarilyNotSupport('onBluetoothDeviceFound')\nexport const onBluetoothAdapterStateChange = /* @__PURE__ */ temporarilyNotSupport('onBluetoothAdapterStateChange')\nexport const offBluetoothDeviceFound = /* @__PURE__ */ temporarilyNotSupport('offBluetoothDeviceFound')\nexport const offBluetoothAdapterStateChange = /* @__PURE__ */ temporarilyNotSupport('offBluetoothAdapterStateChange')\nexport const makeBluetoothPair = /* @__PURE__ */ temporarilyNotSupport('makeBluetoothPair')\nexport const isBluetoothDevicePaired = /* @__PURE__ */ temporarilyNotSupport('isBluetoothDevicePaired')\nexport const getConnectedBluetoothDevices = /* @__PURE__ */ temporarilyNotSupport('getConnectedBluetoothDevices')\nexport const getBluetoothDevices = /* @__PURE__ */ temporarilyNotSupport('getBluetoothDevices')\nexport const getBluetoothAdapterState = /* @__PURE__ */ temporarilyNotSupport('getBluetoothAdapterState')\nexport const closeBluetoothAdapter = /* @__PURE__ */ temporarilyNotSupport('closeBluetoothAdapter')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 蓝牙-低功耗中心设备\nexport const writeBLECharacteristicValue = /* @__PURE__ */ temporarilyNotSupport('writeBLECharacteristicValue')\nexport const setBLEMTU = /* @__PURE__ */ temporarilyNotSupport('setBLEMTU')\nexport const readBLECharacteristicValue = /* @__PURE__ */ temporarilyNotSupport('readBLECharacteristicValue')\nexport const onBLEMTUChange = /* @__PURE__ */ temporarilyNotSupport('onBLEMTUChange')\nexport const onBLEConnectionStateChange = /* @__PURE__ */ temporarilyNotSupport('onBLEConnectionStateChange')\nexport const onBLECharacteristicValueChange = /* @__PURE__ */ temporarilyNotSupport('onBLECharacteristicValueChange')\nexport const offBLEMTUChange = /* @__PURE__ */ temporarilyNotSupport('offBLEMTUChange')\nexport const offBLEConnectionStateChange = /* @__PURE__ */ temporarilyNotSupport('offBLEConnectionStateChange')\nexport const offBLECharacteristicValueChange = /* @__PURE__ */ temporarilyNotSupport('offBLECharacteristicValueChange')\nexport const notifyBLECharacteristicValueChange = /* @__PURE__ */ temporarilyNotSupport('notifyBLECharacteristicValueChange')\nexport const getBLEMTU = /* @__PURE__ */ temporarilyNotSupport('getBLEMTU')\nexport const getBLEDeviceServices = /* @__PURE__ */ temporarilyNotSupport('getBLEDeviceServices')\nexport const getBLEDeviceRSSI = /* @__PURE__ */ temporarilyNotSupport('getBLEDeviceRSSI')\nexport const getBLEDeviceCharacteristics = /* @__PURE__ */ temporarilyNotSupport('getBLEDeviceCharacteristics')\nexport const createBLEConnection = /* @__PURE__ */ temporarilyNotSupport('createBLEConnection')\nexport const closeBLEConnection = /* @__PURE__ */ temporarilyNotSupport('closeBLEConnection')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 蓝牙-低功耗外围设备\nexport const onBLEPeripheralConnectionStateChanged = /* @__PURE__ */ temporarilyNotSupport('onBLEPeripheralConnectionStateChanged')\nexport const offBLEPeripheralConnectionStateChanged = /* @__PURE__ */ temporarilyNotSupport('offBLEPeripheralConnectionStateChanged')\nexport const createBLEPeripheralServer = /* @__PURE__ */ temporarilyNotSupport('createBLEPeripheralServer')\n","import Taro from '@tarojs/api'\nimport * as ics from 'ics'\n\nimport { createDownload, getParameterError, shouldBeObject } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\nimport type { DateArray } from 'ics'\n\n// 日历\nexport const addPhoneRepeatCalendar: typeof Taro.addPhoneRepeatCalendar = (options) => {\n const methodName = 'addPhoneRepeatCalendar'\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n title,\n startTime = new Date().getTime(),\n allDay = false,\n description = '',\n location = '',\n endTime,\n alarm = true,\n alarmOffset = 0,\n repeatInterval = 'month',\n repeatEndTime,\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n if (typeof title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: title\n })\n })\n }\n\n const start = new Date(startTime)\n const end = new Date(endTime || startTime)\n if (!endTime && allDay) {\n end.setDate(end.getDate() + 1)\n }\n\n const interval = 1000 * 60 * 60 * 24\n let days = 1\n let repeat = 1\n if (repeatEndTime) {\n const repeatEnd = new Date(repeatEndTime)\n if (repeatEnd < start) {\n return handle.fail({\n errMsg: 'repeatEndTime must be greater than startTime'\n })\n }\n switch (repeatInterval) {\n case 'week':\n days = 7\n break\n case 'month':\n days = 30\n break\n case 'year':\n days = 365\n break\n default:\n }\n repeat = Math.ceil((repeatEnd.getTime() - start.getTime()) / (interval * days))\n }\n const { error, value } = ics.createEvent({\n title,\n start: parseTime2Array(start, allDay),\n description,\n location,\n end: parseTime2Array(end, allDay),\n alarms: alarm ? [{\n action: 'display',\n description,\n trigger: {\n before: true,\n seconds: alarmOffset,\n },\n duration: {\n days,\n },\n repeat,\n }] : [],\n })\n if (error || !value) {\n return handle.fail({\n errMsg: error?.message\n })\n }\n const url = URL.createObjectURL(new Blob([value]))\n createDownload(url, `${title}.ics`)\n return handle.success()\n}\n\nexport const addPhoneCalendar: typeof Taro.addPhoneCalendar = (options) => {\n const methodName = 'addPhoneCalendar'\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n title,\n startTime = new Date().getTime(),\n allDay = false,\n description = '',\n location = '',\n endTime,\n alarm = true,\n alarmOffset = 0,\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n if (typeof title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: title\n })\n })\n }\n\n const start = new Date(startTime)\n const end = new Date(endTime || startTime)\n if (!endTime && allDay) {\n end.setDate(end.getDate() + 1)\n }\n const { error, value } = ics.createEvent({\n title,\n start: parseTime2Array(start, allDay),\n description,\n location,\n end: parseTime2Array(end, allDay),\n alarms: alarm ? [{\n action: 'display',\n description,\n trigger: {\n before: true,\n seconds: alarmOffset,\n },\n }] : [],\n })\n if (error || !value) {\n return handle.fail({\n errMsg: error?.message\n })\n }\n const url = URL.createObjectURL(new Blob([value]))\n createDownload(url, `${title}.ics`)\n return handle.success()\n}\n\nfunction parseTime2Array (time: Date, allDay = false): DateArray {\n const t = new Date(time)\n const timeArr: DateArray = [\n t.getFullYear(),\n t.getMonth() + 1,\n t.getDate(),\n ]\n if (!allDay) {\n timeArr.push(t.getHours(), t.getMinutes())\n }\n return timeArr\n}\n","import { temporarilyNotSupport } from '../../utils'\n\n// 周期性更新\nexport const setBackgroundFetchToken = /* @__PURE__ */ temporarilyNotSupport('setBackgroundFetchToken')\nexport const onBackgroundFetchData = /* @__PURE__ */ temporarilyNotSupport('onBackgroundFetchData')\nexport const getBackgroundFetchToken = /* @__PURE__ */ temporarilyNotSupport('getBackgroundFetchToken')\nexport const getBackgroundFetchData = /* @__PURE__ */ temporarilyNotSupport('getBackgroundFetchData')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 周期性更新\nexport const createCacheManager = /* @__PURE__ */ temporarilyNotSupport('createCacheManager')\n","import Taro from '@tarojs/api'\n\nimport { getParameterError, shouldBeObject, temporarilyNotSupport } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\nfunction getItem (key) {\n let item\n try {\n item = JSON.parse(localStorage.getItem(key) || '')\n } catch (e) {} // eslint-disable-line no-empty\n\n // 只返回使用 Taro.setStorage API 存储的数据\n if (item && typeof item === 'object' && item.hasOwnProperty('data')) {\n return { result: true, data: item.data }\n } else {\n return { result: false }\n }\n}\n\n// 数据缓存\nexport const setStorageSync: typeof Taro.setStorageSync = (key, data = '') => {\n if (typeof key !== 'string') {\n console.error(getParameterError({\n name: 'setStorage',\n correct: 'String',\n wrong: key\n }))\n return\n }\n\n const type = typeof data\n let obj = {}\n\n if (type === 'symbol') {\n obj = { data: '' }\n } else {\n obj = { data }\n }\n localStorage.setItem(key, JSON.stringify(obj))\n}\n\nexport const setStorage: typeof Taro.setStorage = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `setStorage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { key, data, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'setStorage', success, fail, complete })\n\n if (typeof key !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'key',\n correct: 'String',\n wrong: key\n })\n })\n }\n\n setStorageSync(key, data)\n return handle.success()\n}\n\nexport const revokeBufferURL = /* @__PURE__ */ temporarilyNotSupport('revokeBufferURL')\n\nexport const removeStorageSync: typeof Taro.removeStorageSync = (key: string) => {\n if (typeof key !== 'string') {\n console.error(getParameterError({\n name: 'removeStorage',\n correct: 'String',\n wrong: key\n }))\n return\n }\n\n localStorage.removeItem(key)\n}\n\nexport const removeStorage: typeof Taro.removeStorage = (options: Taro.removeStorage.Option) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `removeStorage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n const { key, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'removeStorage', success, fail, complete })\n\n if (typeof key !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'key',\n correct: 'String',\n wrong: key\n })\n })\n }\n\n removeStorageSync(key)\n return handle.success()\n}\n\nexport const getStorageSync: typeof Taro.getStorageSync = (key) => {\n if (typeof key !== 'string') {\n console.error(getParameterError({\n name: 'getStorageSync',\n correct: 'String',\n wrong: key\n }))\n return\n }\n\n const res = getItem(key)\n if (res.result) return res.data\n\n return ''\n}\n\nexport const getStorageInfoSync: typeof Taro.getStorageInfoSync = () => {\n const res: Taro.getStorageInfoSync.Option = {\n keys: Object.keys(localStorage),\n limitSize: NaN,\n currentSize: NaN\n }\n return res\n}\n\nexport const getStorageInfo: typeof Taro.getStorageInfo = ({ success, fail, complete } = {}) => {\n const handle = new MethodHandler<Taro.getStorageInfo.SuccessCallbackOption>({ name: 'getStorageInfo', success, fail, complete })\n return handle.success(getStorageInfoSync())\n}\n\nexport const getStorage: typeof Taro.getStorage = <T>(options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `getStorage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { key, success, fail, complete } = options\n const handle = new MethodHandler<Taro.getStorage.SuccessCallbackResult<T>>({ name: 'getStorage', success, fail, complete })\n\n if (typeof key !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'key',\n correct: 'String',\n wrong: key\n })\n })\n }\n\n const { result, data } = getItem(key)\n if (result) {\n return handle.success({ data })\n } else {\n return handle.fail({\n errMsg: 'data not found'\n })\n }\n}\n\nexport const createBufferURL = /* @__PURE__ */ temporarilyNotSupport('createBufferURL')\n\nexport const clearStorageSync: typeof Taro.clearStorageSync = () => {\n localStorage.clear()\n}\n\nexport const clearStorage: typeof Taro.clearStorage = ({ success, fail, complete } = {}) => {\n const handle = new MethodHandler({ name: 'clearStorage', success, fail, complete })\n clearStorageSync()\n return handle.success()\n}\n\nexport const batchSetStorageSync = /* @__PURE__ */ temporarilyNotSupport('batchSetStorageSync')\nexport const batchSetStorage = /* @__PURE__ */ temporarilyNotSupport('batchSetStorage')\nexport const batchGetStorageSync = /* @__PURE__ */ temporarilyNotSupport('batchGetStorageSync')\nexport const batchGetStorage = /* @__PURE__ */ temporarilyNotSupport('batchGetStorage')\n\nexport * from './background-fetch'\nexport * from './cache-manager'\n","import { inlineStyle, setTransform } from '../../../utils'\n\nconst noop = function () {}\n\nexport default class ActionSheet {\n options = {\n alertText: '',\n itemList: [],\n itemColor: '#000000',\n success: noop,\n fail: noop,\n complete: noop,\n }\n\n style = {\n maskStyle: {\n position: 'fixed',\n 'z-index': '1000',\n top: '0',\n right: '0',\n left: '0',\n bottom: '0',\n background: 'rgba(0,0,0,0.6)',\n },\n actionSheetStyle: {\n 'z-index': '4999',\n position: 'fixed',\n left: '0',\n bottom: '0',\n '-webkit-transform': 'translate(0, 100%)',\n transform: 'translate(0, 100%)',\n width: '100%',\n 'line-height': '1.6',\n background: '#EFEFF4',\n '-webkit-transition': '-webkit-transform .3s',\n transition: 'transform .3s',\n 'border-radius': '15px 15px 0 0',\n },\n menuStyle: {\n 'background-color': '#FCFCFD',\n 'border-radius': '15px 15px 0 0',\n },\n cellStyle: {\n position: 'relative',\n padding: '10px 0',\n 'text-align': 'center',\n 'font-size': '18px',\n },\n titleStyle: {\n position: 'relative',\n padding: '10px 0',\n 'text-align': 'center',\n 'font-size': '16px',\n color: 'rgba(0,0,0,0.8)',\n display: 'none',\n },\n cancelStyle: {\n 'margin-top': '6px',\n padding: '10px 0',\n 'text-align': 'center',\n 'font-size': '18px',\n color: '#000000',\n 'background-color': '#FCFCFD',\n },\n }\n\n lastConfig = {}\n el: HTMLDivElement\n mask: HTMLDivElement\n actionSheet: HTMLDivElement\n menu: HTMLDivElement\n cells: HTMLDivElement[]\n title: HTMLDivElement\n cancel: HTMLDivElement\n hideOpacityTimer: ReturnType<typeof setTimeout>\n hideDisplayTimer: ReturnType<typeof setTimeout>\n\n create (options = {}) {\n return new Promise<string | number>((resolve) => {\n // style\n const { maskStyle, actionSheetStyle, menuStyle, cellStyle, titleStyle, cancelStyle } = this.style\n\n // configuration\n const config = {\n ...this.options,\n ...options,\n }\n\n this.lastConfig = config\n\n // wrapper\n this.el = document.createElement('div')\n this.el.className = 'taro__actionSheet'\n this.el.style.opacity = '0'\n this.el.style.transition = 'opacity 0.2s linear'\n\n // mask\n this.mask = document.createElement('div')\n this.mask.setAttribute('style', inlineStyle(maskStyle))\n\n // actionSheet\n this.actionSheet = document.createElement('div')\n this.actionSheet.setAttribute('style', inlineStyle(actionSheetStyle))\n\n // menu\n this.menu = document.createElement('div')\n this.menu.setAttribute(\n 'style',\n inlineStyle({\n ...menuStyle,\n color: config.itemColor,\n })\n )\n\n // cells\n this.cells = config.itemList.map((item, index) => {\n const cell: HTMLDivElement = document.createElement('div')\n cell.className = 'taro-actionsheet__cell'\n cell.setAttribute('style', inlineStyle(cellStyle))\n cell.textContent = item\n cell.dataset.tapIndex = `${index}`\n cell.onclick = (e) => {\n this.hide()\n const target = e.currentTarget as HTMLDivElement\n const index = Number(target?.dataset.tapIndex) || 0\n resolve(index)\n }\n return cell\n })\n\n // title\n this.title = document.createElement('div')\n this.title.setAttribute('style', inlineStyle(titleStyle))\n this.title.className = 'taro-actionsheet__cell'\n this.title.textContent = config.alertText\n this.title.style.display = config.alertText ? 'block' : 'none'\n\n // cancel\n this.cancel = document.createElement('div')\n this.cancel.setAttribute('style', inlineStyle(cancelStyle))\n this.cancel.textContent = '取消'\n\n // result\n this.menu.appendChild(this.title)\n this.cells.forEach((item) => this.menu.appendChild(item))\n this.actionSheet.appendChild(this.menu)\n this.actionSheet.appendChild(this.cancel)\n this.el.appendChild(this.mask)\n this.el.appendChild(this.actionSheet)\n\n // callbacks\n const cb = () => {\n this.hide()\n resolve('cancel')\n }\n this.mask.onclick = cb\n this.cancel.onclick = cb\n\n // show immediately\n document.body.appendChild(this.el)\n setTimeout(() => {\n this.el.style.opacity = '1'\n setTransform(this.actionSheet, 'translate(0, 0)')\n }, 0)\n })\n }\n\n show (options = {}) {\n return new Promise<string | number>((resolve) => {\n const config = {\n ...this.options,\n ...options,\n }\n\n this.lastConfig = config\n\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n // itemColor\n if (config.itemColor) this.menu.style.color = config.itemColor\n\n // cells\n const { cellStyle } = this.style\n\n config.itemList.forEach((item, index) => {\n let cell: HTMLDivElement\n if (this.cells[index]) {\n // assign new content\n cell = this.cells[index]\n } else {\n // create new cell\n cell = document.createElement('div')\n cell.className = 'taro-actionsheet__cell'\n cell.setAttribute('style', inlineStyle(cellStyle))\n cell.dataset.tapIndex = `${index}`\n this.cells.push(cell)\n this.menu.appendChild(cell)\n }\n cell.textContent = item\n cell.onclick = (e) => {\n this.hide()\n const target = e.currentTarget as HTMLDivElement\n const index = Number(target?.dataset.tapIndex) || 0\n resolve(index)\n }\n })\n const cellsLen = this.cells.length\n const itemListLen = config.itemList.length\n if (cellsLen > itemListLen) {\n for (let i = itemListLen; i < cellsLen; i++) {\n this.menu.removeChild(this.cells[i])\n }\n this.cells.splice(itemListLen)\n }\n this.title.textContent = config.alertText\n this.title.style.display = config.alertText ? 'block' : 'none'\n\n // callbacks\n const cb = () => {\n this.hide()\n resolve('cancel')\n }\n this.mask.onclick = cb\n this.cancel.onclick = cb\n\n // show\n this.el.style.display = 'block'\n setTimeout(() => {\n this.el.style.opacity = '1'\n setTransform(this.actionSheet, 'translate(0, 0)')\n }, 0)\n })\n }\n\n hide () {\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n this.hideOpacityTimer = setTimeout(() => {\n this.el.style.opacity = '0'\n setTransform(this.actionSheet, 'translate(0, 100%)')\n this.hideDisplayTimer = setTimeout(() => {\n this.el.style.display = 'none'\n }, 200)\n }, 0)\n }\n}\n","import { Current } from '@tarojs/runtime'\n\nimport { getCurrentPath, inlineStyle } from '../../../utils'\n\nexport default class Modal {\n options = {\n title: '',\n content: '',\n showCancel: true,\n cancelText: '取消',\n cancelColor: '#000000',\n confirmText: '确定',\n confirmColor: '#3CC51F'\n }\n\n style = {\n maskStyle: {\n position: 'fixed',\n 'z-index': '1000',\n top: '0',\n right: '0',\n left: '0',\n bottom: '0',\n background: 'rgba(0,0,0,0.6)'\n },\n modalStyle: {\n 'z-index': '4999',\n position: 'fixed',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: '80%',\n 'max-width': '300px',\n 'border-radius': '3px',\n 'text-align': 'center',\n 'line-height': '1.6',\n overflow: 'hidden',\n background: '#FFFFFF'\n },\n titleStyle: {\n padding: '20px 24px 9px',\n 'font-size': '18px'\n },\n textStyle: {\n padding: '0 24px 12px',\n 'min-height': '40px',\n 'font-size': '15px',\n 'line-height': '1.3',\n color: '#808080',\n 'word-wrap': 'break-word',\n 'word-break': 'break-all',\n },\n footStyle: {\n position: 'relative',\n 'line-height': '48px',\n 'font-size': '18px',\n display: 'flex'\n },\n btnStyle: {\n position: 'relative',\n '-webkit-box-flex': '1',\n '-webkit-flex': '1',\n flex: '1'\n }\n }\n\n currentPath: string | null\n el: HTMLDivElement\n title: HTMLDivElement\n text: HTMLDivElement\n cancel: HTMLDivElement\n confirm: HTMLDivElement\n hideOpacityTimer: ReturnType<typeof setTimeout>\n hideDisplayTimer: ReturnType<typeof setTimeout>\n\n create (options = {}) {\n return new Promise<string>((resolve) => {\n // style\n const { maskStyle, modalStyle, titleStyle, textStyle, footStyle, btnStyle } = this.style\n\n // configuration\n const config = {\n ...this.options,\n ...options\n }\n\n // wrapper\n this.el = document.createElement('div')\n this.el.className = 'taro__modal'\n this.el.style.opacity = '0'\n this.el.style.transition = 'opacity 0.2s linear'\n\n const eventHandler = (e) => {\n e.stopPropagation()\n e.preventDefault()\n }\n // mask\n const mask = document.createElement('div')\n mask.className = 'taro-modal__mask'\n mask.setAttribute('style', inlineStyle(maskStyle))\n mask.ontouchmove = eventHandler\n // modal\n const modal = document.createElement('div')\n modal.className = 'taro-modal__content'\n modal.setAttribute('style', inlineStyle(modalStyle))\n modal.ontouchmove = eventHandler\n\n // title\n const titleCSS = config.title ? titleStyle : {\n ...titleStyle,\n display: 'none'\n }\n this.title = document.createElement('div')\n\n this.title.className = 'taro-modal__title'\n this.title.setAttribute('style', inlineStyle(titleCSS))\n this.title.textContent = config.title\n\n // text\n const textCSS = config.title ? textStyle : {\n ...textStyle,\n padding: '40px 20px 26px',\n color: '#353535'\n }\n this.text = document.createElement('div')\n this.text.className = 'taro-modal__text'\n this.text.setAttribute('style', inlineStyle(textCSS))\n this.text.textContent = config.content\n\n // foot\n const foot = document.createElement('div')\n foot.className = 'taro-modal__foot'\n foot.setAttribute('style', inlineStyle(footStyle))\n\n // cancel button\n const cancelCSS = {\n ...btnStyle,\n color: config.cancelColor,\n display: config.showCancel ? 'block' : 'none'\n }\n this.cancel = document.createElement('div')\n this.cancel.className = 'taro-model__btn taro-model__cancel'\n this.cancel.setAttribute('style', inlineStyle(cancelCSS))\n this.cancel.textContent = config.cancelText\n this.cancel.onclick = () => {\n this.hide()\n resolve('cancel')\n }\n\n // confirm button\n this.confirm = document.createElement('div')\n this.confirm.className = 'taro-model__btn taro-model__confirm'\n this.confirm.setAttribute('style', inlineStyle(btnStyle))\n this.confirm.style.color = config.confirmColor\n this.confirm.textContent = config.confirmText\n this.confirm.onclick = () => {\n this.hide()\n resolve('confirm')\n }\n\n // result\n foot.appendChild(this.cancel)\n foot.appendChild(this.confirm)\n modal.appendChild(this.title)\n modal.appendChild(this.text)\n modal.appendChild(foot)\n this.el.appendChild(mask)\n this.el.appendChild(modal)\n\n // show immediately\n document.body.appendChild(this.el)\n setTimeout(() => { this.el.style.opacity = '1' }, 0)\n\n // Current.page不存在时说明路由还未挂载,此时需根据url来分配将要渲染的页面path\n this.currentPath = Current.page?.path ?? getCurrentPath()\n })\n }\n\n show (options = {}) {\n return new Promise<string>((resolve) => {\n const config = {\n ...this.options,\n ...options\n }\n\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n // title & text\n const { textStyle } = this.style\n\n if (config.title) {\n this.title.textContent = config.title\n // none => block\n this.title.style.display = 'block'\n this.text.setAttribute('style', inlineStyle(textStyle))\n } else {\n this.title.textContent = ''\n // block => none\n this.title.style.display = 'none'\n const textCSS = {\n ...textStyle,\n padding: '40px 20px 26px',\n color: '#353535'\n }\n this.text.setAttribute('style', inlineStyle(textCSS))\n }\n\n this.text.textContent = config.content || ''\n\n // showCancel\n this.cancel.style.display = config.showCancel ? 'block' : 'none'\n\n // cancelText\n this.cancel.textContent = config.cancelText || ''\n\n // cancelColor\n this.cancel.style.color = config.cancelColor || ''\n\n // confirmText\n this.confirm.textContent = config.confirmText || ''\n\n // confirmColor\n this.confirm.style.color = config.confirmColor || ''\n\n // cbs\n this.cancel.onclick = () => {\n this.hide()\n resolve('cancel')\n }\n this.confirm.onclick = () => {\n this.hide()\n resolve('confirm')\n }\n\n // show\n this.el.style.display = 'block'\n setTimeout(() => { this.el.style.opacity = '1' }, 0)\n\n // Current.page不存在时说明路由还未挂载,此时需根据url来分配将要渲染的页面path\n this.currentPath = Current.page?.path ?? getCurrentPath()\n })\n }\n\n hide () {\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n this.currentPath = null\n\n this.hideOpacityTimer = setTimeout(() => {\n this.el.style.opacity = '0'\n this.hideDisplayTimer = setTimeout(() => { this.el.style.display = 'none' }, 200)\n }, 0)\n }\n}\n","import { Current } from '@tarojs/runtime'\n\nimport { getCurrentPath, inlineStyle } from '../../../utils'\n\nexport default class Toast {\n options = {\n title: '',\n icon: 'none',\n image: '',\n duration: 1500,\n mask: false\n }\n\n style = {\n maskStyle: {\n position: 'fixed',\n 'z-index': '1000',\n top: '0',\n right: '0',\n left: '0',\n bottom: '0'\n },\n toastStyle: {\n 'z-index': '5000',\n 'box-sizing': 'border-box',\n display: 'flex',\n 'flex-direction': 'column',\n 'justify-content': 'center',\n '-webkit-justify-content': 'center',\n position: 'fixed',\n top: '50%',\n left: '50%',\n 'min-width': '120px',\n 'max-width': '200px',\n 'min-height': '120px',\n padding: '15px',\n transform: 'translate(-50%, -50%)',\n 'border-radius': '5px',\n 'text-align': 'center',\n 'line-height': '1.6',\n color: '#FFFFFF',\n background: 'rgba(17, 17, 17, 0.7)'\n },\n successStyle: {\n margin: '6px auto',\n width: '38px',\n height: '38px',\n background: 'transparent url(data:image/svg+xml;base64,PHN2ZyB0PSIxNjM5NTQ4OTYzMjA0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQzNDgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cGF0aCBkPSJNMjE5Ljk1MiA1MTIuNTc2bDIxMC40MzIgMjEwLjQzMi00NS4yNDggNDUuMjU2LTIxMC40MzItMjEwLjQzMnoiIHAtaWQ9IjQzNDkiIGZpbGw9IiNmZmZmZmYiPjwvcGF0aD48cGF0aCBkPSJNNzk5LjY3MiAyNjIuMjY0bDQ1LjI1NiA0NS4yNTYtNDYwLjQ2NCA0NjAuNDY0LTQ1LjI1Ni00NS4yNTZ6IiBwLWlkPSI0MzUwIiBmaWxsPSIjZmZmZmZmIj48L3BhdGg+PC9zdmc+) no-repeat',\n 'background-size': '100%'\n },\n errrorStyle: {\n margin: '6px auto',\n width: '38px',\n height: '38px',\n background: 'transparent url(data:image/svg+xml;base64,PHN2ZyB0PSIxNjM5NTUxMDU1MTgzIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE0MDc2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNTggNjQgNjQgMjY0LjU4IDY0IDUxMnMyMDAuNTggNDQ4IDQ0OCA0NDggNDQ4LTIwMC41OCA0NDgtNDQ4Uzc1OS40MiA2NCA1MTIgNjR6IG0wIDc1MmEzNiAzNiAwIDEgMSAzNi0zNiAzNiAzNiAwIDAgMS0zNiAzNnogbTUxLjgzLTU1MS45NUw1NDggNjM2YTM2IDM2IDAgMCAxLTcyIDBsLTE1LjgzLTM3MS45NWMtMC4xLTEuMzMtMC4xNy0yLjY4LTAuMTctNC4wNWE1MiA1MiAwIDAgMSAxMDQgMGMwIDEuMzctMC4wNyAyLjcyLTAuMTcgNC4wNXoiIHAtaWQ9IjE0MDc3IiBmaWxsPSIjZmZmZmZmIj48L3BhdGg+PC9zdmc+) no-repeat',\n 'background-size': '100%'\n },\n loadingStyle: {\n margin: '6px auto',\n width: '38px',\n height: '38px',\n '-webkit-animation': 'taroLoading 1s steps(12, end) infinite',\n animation: 'taroLoading 1s steps(12, end) infinite',\n background: 'transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat',\n 'background-size': '100%'\n },\n imageStyle: {\n margin: '6px auto',\n width: '40px',\n height: '40px',\n background: 'transparent no-repeat',\n 'background-size': '100%'\n },\n textStyle: {\n margin: '0',\n 'font-size': '16px'\n }\n }\n\n currentPath: string | null\n el: HTMLDivElement\n mask: HTMLDivElement\n icon: HTMLParagraphElement\n toast: HTMLDivElement\n title: HTMLParagraphElement\n type: any\n hideOpacityTimer: ReturnType<typeof setTimeout>\n hideDisplayTimer: ReturnType<typeof setTimeout>\n\n create (options = {}, _type: 'loading' | 'toast' = 'toast') {\n // style\n const { maskStyle, toastStyle, successStyle, errrorStyle, loadingStyle, imageStyle, textStyle } = this.style\n\n // configuration\n const config = {\n ...this.options,\n ...options,\n _type\n }\n\n // wrapper\n this.el = document.createElement('div')\n this.el.className = 'taro__toast'\n this.el.style.opacity = '0'\n this.el.style.transition = 'opacity 0.1s linear'\n this.el.ontouchmove = (e) => {\n e.stopPropagation()\n e.preventDefault()\n }\n\n // mask\n this.mask = document.createElement('div')\n this.mask.setAttribute('style', inlineStyle(maskStyle))\n this.mask.style.display = config.mask ? 'block' : 'none'\n\n // icon\n this.icon = document.createElement('p')\n if (config.image) {\n this.icon.setAttribute('style', inlineStyle({\n ...imageStyle,\n 'background-image': `url(${config.image})`\n }))\n } else {\n const iconStyle = config.icon === 'loading' ? loadingStyle : config.icon === 'error' ? errrorStyle : successStyle\n this.icon.setAttribute('style', inlineStyle({\n ...iconStyle,\n ...(config.icon === 'none' ? { display: 'none' } : {})\n }))\n }\n\n // toast\n this.toast = document.createElement('div')\n this.toast.setAttribute('style', inlineStyle({\n ...toastStyle,\n ...(config.icon === 'none' ? {\n 'min-height': '0',\n padding: '10px 15px'\n } : {})\n }))\n\n // title\n this.title = document.createElement('p')\n this.title.setAttribute('style', inlineStyle(textStyle))\n this.title.textContent = config.title\n\n // result\n this.toast.appendChild(this.icon)\n this.toast.appendChild(this.title)\n this.el.appendChild(this.mask)\n this.el.appendChild(this.toast)\n\n // show immediately\n document.body.appendChild(this.el)\n setTimeout(() => { this.el.style.opacity = '1' }, 0)\n this.type = config._type\n\n // disappear after duration\n config.duration >= 0 && this.hide(config.duration, this.type)\n\n // Current.page不存在时说明路由还未挂载,此时需根据url来分配将要渲染的页面path\n this.currentPath = Current.page?.path ?? getCurrentPath()\n\n return ''\n }\n\n show (options = {}, _type: 'loading' | 'toast' = 'toast') {\n const config = {\n ...this.options,\n ...options,\n _type\n }\n\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n // title\n this.title.textContent = config.title || ''\n\n // mask\n this.mask.style.display = config.mask ? 'block' : 'none'\n\n // image\n const { toastStyle, successStyle, errrorStyle, loadingStyle, imageStyle } = this.style\n if (config.image) {\n this.icon.setAttribute('style', inlineStyle({\n ...imageStyle,\n 'background-image': `url(${config.image})`\n }))\n } else {\n if (!config.image && config.icon) {\n const iconStyle = config.icon === 'loading' ? loadingStyle : config.icon === 'error' ? errrorStyle : successStyle\n this.icon.setAttribute('style', inlineStyle({\n ...iconStyle,\n ...(config.icon === 'none' ? { display: 'none' } : {})\n }))\n }\n }\n\n // toast\n this.toast.setAttribute('style', inlineStyle({\n ...toastStyle,\n ...(config.icon === 'none' ? {\n 'min-height': '0',\n padding: '10px 15px'\n } : {})\n }))\n\n // show\n this.el.style.display = 'block'\n setTimeout(() => { this.el.style.opacity = '1' }, 0)\n this.type = config._type\n\n // disappear after duration\n config.duration >= 0 && this.hide(config.duration, this.type)\n\n // Current.page不存在时说明路由还未挂载,此时需根据url来分配将要渲染的页面path\n this.currentPath = Current.page?.path ?? getCurrentPath()\n\n return ''\n }\n\n hide (duration = 0, type = '') {\n if (type && type !== this.type) return\n\n if (this.hideOpacityTimer) clearTimeout(this.hideOpacityTimer)\n if (this.hideDisplayTimer) clearTimeout(this.hideDisplayTimer)\n\n this.currentPath = null\n\n this.hideOpacityTimer = setTimeout(() => {\n this.el.style.opacity = '0'\n this.hideDisplayTimer = setTimeout(() => { this.el.style.display = 'none' }, 100)\n }, duration)\n }\n}\n","import Taro from '@tarojs/api'\nimport { Current } from '@tarojs/runtime'\n\nimport { getParameterError, temporarilyNotSupport } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\nimport ActionSheet from './actionSheet'\nimport Modal from './modal'\nimport Toast from './toast'\n\n// 交互\n\nlet status = 'default'\n\n// inject necessary style\nfunction init (doc) {\n if (status === 'ready') return\n\n const taroStyle = doc.createElement('style')\n taroStyle.textContent =\n '@font-face{font-weight:normal;font-style:normal;font-family:\"taro\";src:url(\"data:application/x-font-ttf;charset=utf-8;base64, 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\") format(\"truetype\");}@-webkit-keyframes taroLoading{0%{-webkit-transform:rotate3d(0, 0, 1, 0deg);}100%{-webkit-transform:rotate3d(0, 0, 1, 360deg);transform:rotate3d(0, 0, 1, 360deg);}}@keyframes taroLoading{0%{-webkit-transform:rotate3d(0, 0, 1, 0deg);}100%{-webkit-transform:rotate3d(0, 0, 1, 360deg);transform:rotate3d(0, 0, 1, 360deg);}}.taro-modal__foot:after {content: \"\";position: absolute;left: 0;top: 0;right: 0;height: 1px;border-top: 1px solid #D5D5D6;color: #D5D5D6;-webkit-transform-origin: 0 0;transform-origin: 0 0;-webkit-transform: scaleY(0.5);transform: scaleY(0.5);} .taro-model__btn:active {background-color: #EEEEEE}.taro-model__btn:not(:first-child):after {content: \"\";position: absolute;left: 0;top: 0;width: 1px;bottom: 0;border-left: 1px solid #D5D5D6;color: #D5D5D6;-webkit-transform-origin: 0 0;transform-origin: 0 0;-webkit-transform: scaleX(0.5);transform: scaleX(0.5);}.taro-actionsheet__cell:not(:last-child):after {content: \"\";position: absolute;left: 0;bottom: 0;right: 0;height: 1px;border-top: 1px solid #e5e5e5;color: #e5e5e5;-webkit-transform-origin: 0 0;transform-origin: 0 0;-webkit-transform: scaleY(0.5);transform: scaleY(0.5);}'\n doc.querySelector('head').appendChild(taroStyle)\n\n status = 'ready'\n}\n\nconst toast = new Toast()\nconst modal = new Modal()\nconst actionSheet = new ActionSheet()\n\nconst showToast: typeof Taro.showToast = (options = { title: '' }) => {\n init(document)\n options = Object.assign({\n title: '',\n icon: 'success',\n image: '',\n duration: 1500,\n mask: false\n }, options)\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'showToast', success, fail, complete })\n\n if (typeof options.title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: options.title\n })\n })\n }\n\n if (typeof options.duration !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'duration',\n correct: 'Number',\n wrong: options.duration\n })\n })\n }\n\n if (options.image && typeof options.image !== 'string') options.image = ''\n\n options.mask = !!options.mask\n\n let errMsg = ''\n if (!toast.el) {\n errMsg = toast.create(options, 'toast')\n } else {\n errMsg = toast.show(options, 'toast')\n }\n return handle.success({ errMsg })\n}\n\nconst hideToast: typeof Taro.hideToast = ({ noConflict = false, success, fail, complete } = {}) => {\n const handle = new MethodHandler({ name: 'hideToast', success, fail, complete })\n if (!toast.el) return handle.success()\n toast.hide(0, noConflict ? 'toast' : '')\n return handle.success()\n}\n\nconst showLoading: typeof Taro.showLoading = (options = { title: '' }) => {\n init(document)\n options = Object.assign({\n title: '',\n mask: false\n }, options)\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'showLoading', success, fail, complete })\n\n const config = {\n icon: 'loading',\n image: '',\n duration: -1\n }\n\n options = Object.assign({}, options, config)\n\n if (typeof options.title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: options.title\n })\n })\n }\n\n options.mask = !!options.mask\n\n let errMsg = ''\n if (!toast.el) {\n errMsg = toast.create(options, 'loading')\n } else {\n errMsg = toast.show(options, 'loading')\n }\n return handle.success({ errMsg })\n}\n\nconst hideLoading: typeof Taro.hideLoading = ({ noConflict = false, success, fail, complete } = {}) => {\n const handle = new MethodHandler({ name: 'hideLoading', success, fail, complete })\n if (!toast.el) return handle.success()\n toast.hide(0, noConflict ? 'loading' : '')\n return handle.success()\n}\n\nconst showModal: typeof Taro.showModal = async (options = {}) => {\n init(document)\n options = Object.assign({\n title: '',\n content: '',\n showCancel: true,\n cancelText: '取消',\n cancelColor: '#000000',\n confirmText: '确定',\n confirmColor: '#3CC51F'\n }, options)\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'showModal', success, fail, complete })\n\n if (typeof options.title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: options.title\n })\n })\n }\n\n if (typeof options.content !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'content',\n correct: 'String',\n wrong: options.content\n })\n })\n }\n\n if (typeof options.cancelText !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'cancelText',\n correct: 'String',\n wrong: options.cancelText\n })\n })\n }\n\n if (options.cancelText.replace(/[\\u0391-\\uFFE5]/g, 'aa').length > 8) {\n return handle.fail({\n errMsg: 'cancelText length should not larger then 4 Chinese characters'\n })\n }\n\n if (typeof options.confirmText !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'confirmText',\n correct: 'String',\n wrong: options.confirmText\n })\n })\n }\n\n if (options.confirmText.replace(/[\\u0391-\\uFFE5]/g, 'aa').length > 8) {\n return handle.fail({\n errMsg: 'confirmText length should not larger then 4 Chinese characters'\n })\n }\n\n if (typeof options.cancelColor !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'cancelColor',\n correct: 'String',\n wrong: options.cancelColor\n })\n })\n }\n\n if (typeof options.confirmColor !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'confirmColor',\n correct: 'String',\n wrong: options.confirmColor\n })\n })\n }\n\n options.showCancel = !!options.showCancel\n\n let result = ''\n if (!modal.el) {\n result = await modal.create(options)\n } else {\n result = await modal.show(options)\n }\n const res = { cancel: !1, confirm: !1 }\n res[result] = !0\n return handle.success(res)\n}\n\nfunction hideModal () {\n if (!modal.el) return\n modal.hide()\n}\n\nconst showActionSheet = async (\n options: Taro.showActionSheet.Option = { itemList: [] },\n methodName = 'showActionSheet'\n): Promise<Taro.showActionSheet.SuccessCallbackResult> => {\n init(document)\n options = Object.assign({\n itemColor: '#000000',\n itemList: []\n }, options)\n const { success, fail, complete } = options\n const handle = new MethodHandler<Taro.showActionSheet.SuccessCallbackResult>({ name: methodName, success, fail, complete })\n\n // list item String\n if (!Array.isArray(options.itemList)) {\n return handle.fail({\n errMsg: getParameterError({\n para: 'itemList',\n correct: 'Array',\n wrong: options.itemList\n })\n })\n }\n\n if (options.itemList.length < 1) {\n return handle.fail({ errMsg: 'parameter error: parameter.itemList should have at least 1 item' })\n }\n\n if (options.itemList.length > 6) {\n return handle.fail({ errMsg: 'parameter error: parameter.itemList should not be large than 6' })\n }\n\n for (let i = 0; i < options.itemList.length; i++) {\n if (typeof options.itemList[i] !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: `itemList[${i}]`,\n correct: 'String',\n wrong: options.itemList[i]\n })\n })\n }\n }\n\n if (typeof options.itemColor !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'itemColor',\n correct: 'String',\n wrong: options.itemColor\n })\n })\n }\n\n let result: number | string = ''\n if (!actionSheet.el) {\n result = await actionSheet.create(options)\n } else {\n result = await actionSheet.show(options)\n }\n\n if (typeof result === 'string') {\n return handle.fail(({ errMsg: result }))\n } else {\n return handle.success(({ tapIndex: result }))\n }\n}\n\nTaro.eventCenter.on('__afterTaroRouterChange', () => {\n if (toast.currentPath && toast.currentPath !== Current.page?.path) {\n hideToast()\n hideLoading()\n }\n\n if (modal.currentPath && modal.currentPath !== Current.page?.path) {\n hideModal()\n }\n})\n\nconst enableAlertBeforeUnload = /* @__PURE__ */ temporarilyNotSupport('enableAlertBeforeUnload')\nconst disableAlertBeforeUnload = /* @__PURE__ */ temporarilyNotSupport('disableAlertBeforeUnload')\n\nexport { disableAlertBeforeUnload, enableAlertBeforeUnload, hideLoading, hideToast, showActionSheet, showLoading, showModal, showToast }\n","/**\r\n * 剪贴板部分的api参考了Chameleon项目的实现:\r\n *\r\n * setClipboardData: https://github.com/chameleon-team/chameleon-api/tree/master/src/interfaces/setClipBoardData\r\n * getClipboardData: https://github.com/chameleon-team/chameleon-api/tree/master/src/interfaces/getClipBoardData\r\n */\r\n\r\nimport Taro from '@tarojs/api'\r\nimport { isFunction } from '@tarojs/shared'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\nimport { getStorageSync, setStorage, setStorageSync } from '../storage/index'\r\nimport { showToast } from '../ui/interaction'\r\n\r\nconst CLIPBOARD_STORAGE_NAME = 'taro_clipboard'\r\n\r\ndocument.addEventListener('copy', () => {\r\n setStorage({\r\n key: CLIPBOARD_STORAGE_NAME,\r\n data: window.getSelection()?.toString()\r\n }).catch(e => {\r\n console.error(e)\r\n })\r\n})\r\n\r\n/**\r\n * 设置系统剪贴板的内容\r\n */\r\nexport const setClipboardData: typeof Taro.setClipboardData = async ({ data, success, fail, complete }) => {\r\n const handle = new MethodHandler({ name: 'setClipboardData', success, fail, complete })\r\n try {\r\n setStorageSync(CLIPBOARD_STORAGE_NAME, data)\r\n /**\r\n * 已于 iPhone 6s Plus iOS 13.1.3 上的 Safari 测试通过\r\n * iOS < 10 的系统可能无法使用编程方式访问剪贴板,参考:\r\n * https://stackoverflow.com/questions/34045777/copy-to-clipboard-using-javascript-in-ios/34046084\r\n */\r\n if (isFunction(document.execCommand)) {\r\n const textarea = document.createElement('textarea')\r\n textarea.readOnly = true\r\n textarea.value = data\r\n textarea.style.position = 'absolute'\r\n textarea.style.width = '100px'\r\n textarea.style.left = '-10000px'\r\n document.body.appendChild(textarea)\r\n textarea.select()\r\n textarea.setSelectionRange(0, textarea.value.length)\r\n document.execCommand('copy')\r\n document.body.removeChild(textarea)\r\n } else {\r\n throw new Error('Unsupported Function: \\'document.execCommand\\'.')\r\n }\r\n showToast({\r\n title: '内容已复制',\r\n icon: 'none',\r\n duration: 1500\r\n })\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 获取系统剪贴板的内容\r\n */\r\nexport const getClipboardData: typeof Taro.getClipboardData = async ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler<Taro.getClipboardData.SuccessCallbackOption>({ name: 'getClipboardData', success, fail, complete })\r\n try {\r\n const data: string = getStorageSync(CLIPBOARD_STORAGE_NAME)\r\n return handle.success({ data })\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n","import Taro from '@tarojs/api'\r\nimport throttle from 'lodash-es/throttle'\r\n\r\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\r\nimport { getDeviceInfo } from '../base/system'\r\n\r\nconst callbackManager = new CallbackManager()\r\nlet compassListener\r\n\r\n/**\r\n * Note: 按系统类型获取对应绝对 orientation 事件名,因为安卓系统中直接监听 deviceorientation 事件得到的不是绝对 orientation\r\n */\r\nconst deviceorientationEventName = ['absolutedeviceorientation', 'deviceorientationabsolute', 'deviceorientation'].find(item => {\r\n if ('on' + item in window) {\r\n return item\r\n }\r\n}) || ''\r\n\r\n/**\r\n * 停止监听罗盘数据\r\n */\r\nexport const stopCompass: typeof Taro.stopCompass = ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'stopCompass', success, fail, complete })\r\n try {\r\n window.removeEventListener(deviceorientationEventName, compassListener, true)\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\nlet CompassChangeTrigger = false\r\n/**\r\n * 开始监听罗盘数据\r\n */\r\nexport const startCompass: typeof Taro.startCompass = ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'startCompass', success, fail, complete })\r\n try {\r\n if (deviceorientationEventName !== '') {\r\n if (compassListener) {\r\n stopCompass()\r\n }\r\n compassListener = throttle((evt: DeviceOrientationEvent) => {\r\n const isAndroid = getDeviceInfo().system === 'AndroidOS'\r\n if (isAndroid && !evt.absolute && !CompassChangeTrigger) {\r\n CompassChangeTrigger = true\r\n console.warn('Warning: In \\'onCompassChange\\', your browser is not supported to get the orientation relative to the earth, the orientation data will be related to the initial orientation of the device .')\r\n }\r\n const alpha = evt.alpha || 0\r\n /**\r\n * 由于平台差异,accuracy 在 iOS/Android 的值不同。\r\n * - iOS:accuracy 是一个 number 类型的值,表示相对于磁北极的偏差。0 表示设备指向磁北,90 表示指向东,180 表示指向南,依此类推。\r\n * - Android:accuracy 是一个 string 类型的枚举值。\r\n */\r\n const accuracy = isAndroid ? evt.absolute ? 'high' : 'medium' : alpha\r\n callbackManager.trigger({\r\n direction: 360 - alpha,\r\n accuracy: accuracy\r\n } as unknown as Parameters<typeof Taro.onCompassChange>[number])\r\n }, 5000)\r\n window.addEventListener(deviceorientationEventName, compassListener, true)\r\n } else {\r\n throw new Error('compass is not supported')\r\n }\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 监听罗盘数据变化事件。频率:5 次/秒,接口调用后会自动开始监听,可使用 wx.stopCompass 停止监听。\r\n */\r\nexport const onCompassChange: typeof Taro.onCompassChange = callback => {\r\n callbackManager.add(callback)\r\n}\r\n\r\n/**\r\n * 取消监听罗盘数据变化事件,参数为空,则取消所有的事件监听。\r\n */\r\nexport const offCompassChange: typeof Taro.offCompassChange = callback => {\r\n callbackManager.remove(callback)\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// 联系人\nexport const chooseContact = /* @__PURE__ */ temporarilyNotSupport('chooseContact')\nexport const addPhoneContact = /* @__PURE__ */ temporarilyNotSupport('addPhoneContact')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 加密\nexport const getRandomValues = /* @__PURE__ */ temporarilyNotSupport('getRandomValues')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 陀螺仪\nexport const stopGyroscope = /* @__PURE__ */ temporarilyNotSupport('stopGyroscope')\nexport const startGyroscope = /* @__PURE__ */ temporarilyNotSupport('startGyroscope')\nexport const onGyroscopeChange = /* @__PURE__ */ temporarilyNotSupport('onGyroscopeChange')\nexport const offGyroscopeChange = /* @__PURE__ */ temporarilyNotSupport('offGyroscopeChange')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 蓝牙-信标(Beacon)\nexport const stopBeaconDiscovery = /* @__PURE__ */ temporarilyNotSupport('stopBeaconDiscovery')\nexport const startBeaconDiscovery = /* @__PURE__ */ temporarilyNotSupport('startBeaconDiscovery')\nexport const onBeaconUpdate = /* @__PURE__ */ temporarilyNotSupport('onBeaconUpdate')\nexport const onBeaconServiceChange = /* @__PURE__ */ temporarilyNotSupport('onBeaconServiceChange')\nexport const offBeaconUpdate = /* @__PURE__ */ temporarilyNotSupport('offBeaconUpdate')\nexport const offBeaconServiceChange = /* @__PURE__ */ temporarilyNotSupport('offBeaconServiceChange')\nexport const getBeacons = /* @__PURE__ */ temporarilyNotSupport('getBeacons')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 键盘\nexport const onKeyboardHeightChange = /* @__PURE__ */ temporarilyNotSupport('onKeyboardHeightChange')\nexport const offKeyboardHeightChange = /* @__PURE__ */ temporarilyNotSupport('offKeyboardHeightChange')\nexport const hideKeyboard = /* @__PURE__ */ temporarilyNotSupport('hideKeyboard')\nexport const getSelectedTextRange = /* @__PURE__ */ temporarilyNotSupport('getSelectedTextRange')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 内存\nexport const onMemoryWarning = /* @__PURE__ */ temporarilyNotSupport('onMemoryWarning')\nexport const offMemoryWarning = /* @__PURE__ */ temporarilyNotSupport('offMemoryWarning')\n","import Taro from '@tarojs/api'\r\nimport throttle from 'lodash-es/throttle'\r\n\r\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\r\n\r\nconst callbackManager = new CallbackManager()\r\nlet deviceMotionListener\r\n\r\nconst INTERVAL_MAP = {\r\n game: {\r\n interval: 20,\r\n frequency: 50\r\n },\r\n ui: {\r\n interval: 60,\r\n frequency: 16.67\r\n },\r\n normal: {\r\n interval: 200,\r\n frequency: 5\r\n }\r\n}\r\n\r\n/**\r\n * 停止监听设备方向的变化。\r\n */\r\nexport const stopDeviceMotionListening: typeof Taro.stopDeviceMotionListening = ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'stopDeviceMotionListening', success, fail, complete })\r\n try {\r\n window.removeEventListener('deviceorientation', deviceMotionListener, true)\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 开始监听设备方向的变化。\r\n */\r\nexport const startDeviceMotionListening: typeof Taro.startDeviceMotionListening = ({ interval = 'normal', success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'startDeviceMotionListening', success, fail, complete })\r\n try {\r\n const intervalObj = INTERVAL_MAP[interval]\r\n if (window.DeviceOrientationEvent) {\r\n if (deviceMotionListener) {\r\n stopDeviceMotionListening()\r\n }\r\n deviceMotionListener = throttle((evt: DeviceOrientationEvent) => {\r\n callbackManager.trigger({\r\n alpha: evt.alpha,\r\n beta: evt.beta,\r\n gamma: evt.gamma\r\n })\r\n }, intervalObj.interval)\r\n window.addEventListener('deviceorientation', deviceMotionListener, true)\r\n } else {\r\n throw new Error('deviceMotion is not supported')\r\n }\r\n return handle.success()\r\n } catch (e) {\r\n return handle.fail({ errMsg: e.message })\r\n }\r\n}\r\n\r\n/**\r\n * 监听设备方向变化事件。\r\n */\r\nexport const onDeviceMotionChange: typeof Taro.onDeviceMotionChange = callback => {\r\n callbackManager.add(callback)\r\n}\r\n\r\n/**\r\n * 取消监听设备方向变化事件,参数为空,则取消所有的事件监听。\r\n */\r\nexport const offDeviceMotionChange: typeof Taro.offDeviceMotionChange = callback => {\r\n callbackManager.remove(callback)\r\n}\r\n","import Taro from '@tarojs/api'\n\nimport { temporarilyNotSupport } from '../../utils'\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\n\nfunction getConnection () {\n // @ts-ignore\n return navigator.connection || navigator.mozConnection || navigator.webkitConnection || navigator.msConnection\n}\n\nexport const getNetworkType: typeof Taro.getNetworkType = (options = {}) => {\n const connection = getConnection()\n const { success, fail, complete } = options\n const handle = new MethodHandler<Taro.getNetworkType.SuccessCallbackResult>({ name: 'getNetworkType', success, fail, complete })\n\n let networkType: keyof Taro.getNetworkType.NetworkType = 'unknown'\n // 浏览器不支持获取网络状态\n if (!connection) {\n return handle.success({ networkType })\n }\n\n // Supports only the navigator.connection.type value which doesn't match the latest spec.\n // https://www.davidbcalhoun.com/2010/using-navigator-connection-android/\n if (!isNaN(Number(connection.type))) {\n switch (connection.type) {\n // @ts-ignore\n case connection.WIFI:\n networkType = 'wifi'\n break\n // @ts-ignore\n case connection.CELL_3G:\n networkType = '3g'\n break\n // @ts-ignore\n case connection.CELL_2G:\n networkType = '2g'\n break\n default:\n // ETHERNET, UNKNOWN\n networkType = 'unknown'\n }\n } else if (connection.type) {\n // @ts-ignore\n networkType = connection.type // Only supports the type value.\n // @ts-ignore\n } else if (connection.effectiveType) {\n // @ts-ignore\n networkType = connection.effectiveType\n }\n\n return handle.success({ networkType })\n}\n\nconst networkStatusManager = new CallbackManager()\nconst networkStatusListener = async () => {\n const { networkType } = await getNetworkType()\n const isConnected = networkType !== 'none'\n const obj = { isConnected, networkType }\n networkStatusManager.trigger(obj)\n}\n\n/**\n * 在最近的八次网络请求中, 出现下列三个现象之一则判定弱网。\n * - 出现三次以上连接超时\n * - 出现三次 rtt 超过 400\n * - 出现三次以上的丢包\n * > 弱网事件通知规则是: 弱网状态变化时立即通知, 状态不变时 30s 内最多通知一次。\n */\nexport const onNetworkWeakChange = /* @__PURE__ */ temporarilyNotSupport('onNetworkWeakChange')\n\nexport const onNetworkStatusChange: typeof Taro.onNetworkStatusChange = callback => {\n networkStatusManager.add(callback)\n const connection = getConnection()\n if (connection && networkStatusManager.count() === 1) {\n connection.addEventListener('change', networkStatusListener)\n }\n}\n\nexport const offNetworkWeakChange = /* @__PURE__ */ temporarilyNotSupport('offNetworkWeakChange')\n\nexport const offNetworkStatusChange: typeof Taro.offNetworkStatusChange = callback => {\n networkStatusManager.remove(callback)\n\n const connection = getConnection()\n if (connection && networkStatusManager.count() === 0) {\n connection.removeEventListener('change', networkStatusListener)\n }\n}\n\nexport const getLocalIPAddress = /* @__PURE__ */ temporarilyNotSupport('getLocalIPAddress')\n","import { temporarilyNotSupport } from '../../utils'\n\n// NFC\nexport const stopHCE = /* @__PURE__ */ temporarilyNotSupport('stopHCE')\nexport const startHCE = /* @__PURE__ */ temporarilyNotSupport('startHCE')\nexport const sendHCEMessage = /* @__PURE__ */ temporarilyNotSupport('sendHCEMessage')\nexport const onHCEMessage = /* @__PURE__ */ temporarilyNotSupport('onHCEMessage')\nexport const offHCEMessage = /* @__PURE__ */ temporarilyNotSupport('offHCEMessage')\nexport const getNFCAdapter = /* @__PURE__ */ temporarilyNotSupport('getNFCAdapter')\nexport const getHCEState = /* @__PURE__ */ temporarilyNotSupport('getHCEState')\n","import Taro from '@tarojs/api'\n\nimport { getParameterError, shouldBeObject } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\nexport const makePhoneCall: typeof Taro.makePhoneCall = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `makePhoneCall:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { phoneNumber, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'makePhoneCall', success, fail, complete })\n\n if (typeof phoneNumber !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'phoneNumber',\n correct: 'String',\n wrong: phoneNumber\n })\n })\n }\n\n window.location.href = `tel:${phoneNumber}`\n\n return handle.success()\n}\n","import { processOpenApi } from '../../utils'\n\n// 扫码\nexport const scanCode = /* @__PURE__ */ processOpenApi({\n name: 'scanQRCode',\n defaultOptions: { needResult: 1 },\n formatResult: res => ({\n errMsg: res.errMsg === 'scanQRCode:ok' ? 'scanCode:ok' : res.errMsg,\n result: res.resultStr\n })\n})\n","import { temporarilyNotSupport } from '../../utils'\n\n// 屏幕\nexport const setVisualEffectOnCapture = /* @__PURE__ */ temporarilyNotSupport('setVisualEffectOnCapture')\nexport const setScreenBrightness = /* @__PURE__ */ temporarilyNotSupport('setScreenBrightness')\nexport const setKeepScreenOn = /* @__PURE__ */ temporarilyNotSupport('setKeepScreenOn')\nexport const onUserCaptureScreen = /* @__PURE__ */ temporarilyNotSupport('onUserCaptureScreen')\nexport const offUserCaptureScreen = /* @__PURE__ */ temporarilyNotSupport('offUserCaptureScreen')\nexport const getScreenBrightness = /* @__PURE__ */ temporarilyNotSupport('getScreenBrightness')\nexport const onScreenRecordingStateChanged = /* @__PURE__ */ temporarilyNotSupport('onScreenRecordingStateChanged')\nexport const offScreenRecordingStateChanged = /* @__PURE__ */ temporarilyNotSupport('offScreenRecordingStateChanged')\nexport const getScreenRecordingState = /* @__PURE__ */ temporarilyNotSupport('getScreenRecordingState')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 短信\nexport const sendSms = /* @__PURE__ */ temporarilyNotSupport('sendSms')\n","import Taro from '@tarojs/api'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\n\r\nconst vibrator = function vibrator (mm: number | number[]) {\r\n try {\r\n return window.navigator.vibrate(mm)\r\n } catch (e) {\r\n console.warn('当前浏览器不支持 vibrate。')\r\n }\r\n}\r\n\r\n/**\r\n * 使手机发生较短时间的振动(15 ms)。仅在 iPhone 7 / 7 Plus 以上及 Android 机型生效\r\n */\r\nexport const vibrateShort: typeof Taro.vibrateShort = ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'vibrateShort', success, fail, complete })\r\n if (vibrator(15)) {\r\n return handle.success()\r\n } else {\r\n return handle.fail({ errMsg: 'style is not support' })\r\n }\r\n}\r\n\r\n/**\r\n * 使手机发生较长时间的振动(400 ms)\r\n */\r\nexport const vibrateLong: typeof Taro.vibrateLong = ({ success, fail, complete } = {}) => {\r\n const handle = new MethodHandler({ name: 'vibrateLong', success, fail, complete })\r\n if (vibrator(400)) {\r\n return handle.success()\r\n } else {\r\n return handle.fail({ errMsg: 'style is not support' })\r\n }\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// Wi-Fi\nexport const stopWifi = /* @__PURE__ */ temporarilyNotSupport('stopWifi')\nexport const startWifi = /* @__PURE__ */ temporarilyNotSupport('startWifi')\nexport const setWifiList = /* @__PURE__ */ temporarilyNotSupport('setWifiList')\nexport const onWifiConnectedWithPartialInfo = /* @__PURE__ */ temporarilyNotSupport('onWifiConnectedWithPartialInfo')\nexport const onWifiConnected = /* @__PURE__ */ temporarilyNotSupport('onWifiConnected')\nexport const onGetWifiList = /* @__PURE__ */ temporarilyNotSupport('onGetWifiList')\nexport const offWifiConnectedWithPartialInfo = /* @__PURE__ */ temporarilyNotSupport('offWifiConnectedWithPartialInfo')\nexport const offWifiConnected = /* @__PURE__ */ temporarilyNotSupport('offWifiConnected')\nexport const offGetWifiList = /* @__PURE__ */ temporarilyNotSupport('offGetWifiList')\nexport const getWifiList = /* @__PURE__ */ temporarilyNotSupport('getWifiList')\nexport const getConnectedWifi = /* @__PURE__ */ temporarilyNotSupport('getConnectedWifi')\nexport const connectWifi = /* @__PURE__ */ temporarilyNotSupport('connectWifi')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 第三方平台\nexport const getExtConfigSync = /* @__PURE__ */ temporarilyNotSupport('getExtConfigSync')\nexport const getExtConfig = /* @__PURE__ */ temporarilyNotSupport('getExtConfig')\n","import { temporarilyNotSupport } from '../../utils'\r\n\r\n// 文件\r\nexport const saveFileToDisk = /* @__PURE__ */ temporarilyNotSupport('saveFileToDisk')\r\nexport const saveFile = /* @__PURE__ */ temporarilyNotSupport('saveFile')\r\nexport const removeSavedFile = /* @__PURE__ */ temporarilyNotSupport('removeSavedFile')\r\nexport const openDocument = /* @__PURE__ */ temporarilyNotSupport('openDocument')\r\nexport const getSavedFileList = /* @__PURE__ */ temporarilyNotSupport('getSavedFileList')\r\nexport const getSavedFileInfo = /* @__PURE__ */ temporarilyNotSupport('getSavedFileInfo')\r\nexport const getFileSystemManager = /* @__PURE__ */ temporarilyNotSupport('getFileSystemManager')\r\nexport const getFileInfo = /* @__PURE__ */ temporarilyNotSupport('getFileInfo')\r\n","import Taro from '@tarojs/api'\n\nexport const getApp: typeof Taro.getApp = function <T extends Taro.App = TaroGeneral.IAnyObject> () {\n return Taro.getCurrentInstance().app as unknown as T\n}\n\nexport { getCurrentPages } from '@tarojs/router'\n\n// 自定义组件\nexport const getCurrentInstance = Taro.getCurrentInstance\n","export const isGeolocationSupported = (): boolean => !!navigator.geolocation\n","import Taro from '@tarojs/api'\n\nimport { processOpenApi, shouldBeObject } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\nimport { isGeolocationSupported } from './utils'\n\nconst getLocationByW3CApi: (options: Taro.getLocation.Option) => Promise<Taro.getLocation.SuccessCallbackResult> = (options: Taro.getLocation.Option): Promise<Taro.getLocation.SuccessCallbackResult> => {\n // 断言 options 必须是 Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `getLocation:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n // 解构回调函数\n const { success, fail, complete } = options\n\n const handle = new MethodHandler({ name: 'getLocation', success, fail, complete })\n\n // const defaultMaximumAge = 5 * 1000\n\n const positionOptions: PositionOptions = {\n enableHighAccuracy: options.isHighAccuracy || (options.altitude != null), // 海拔定位需要高精度\n // maximumAge: defaultMaximumAge, // 允许取多久以内的缓存位置\n timeout: options.highAccuracyExpireTime // 高精度定位超时时间\n }\n\n // Web端API实现暂时仅支持GPS坐标系\n if (options.type?.toUpperCase() !== 'WGS84') {\n return handle.fail({\n errMsg: 'This coordinate system type is not temporarily supported'\n })\n }\n\n // 判断当前浏览器是否支持位置API\n if (!isGeolocationSupported()) {\n return handle.fail({\n errMsg: 'The current browser does not support this feature'\n })\n }\n\n // 开始获取位置\n return new Promise<Taro.getLocation.SuccessCallbackResult>(\n (resolve, reject) => {\n navigator.geolocation.getCurrentPosition(\n (position) => {\n const result: Taro.getLocation.SuccessCallbackResult = {\n /** 位置的精确度 */\n accuracy: position.coords.accuracy,\n /** 高度,单位 m */\n altitude: position.coords.altitude!,\n /** 水平精度,单位 m */\n horizontalAccuracy: position.coords.accuracy,\n /** 纬度,范围为 -90~90,负数表示南纬 */\n latitude: position.coords.latitude,\n /** 经度,范围为 -180~180,负数表示西经 */\n longitude: position.coords.longitude,\n /** 速度,单位 m/s */\n speed: position.coords.speed!,\n /** 垂直精度,单位 m(Android 无法获取,返回 0) */\n verticalAccuracy: position.coords.altitudeAccuracy || 0,\n /** 调用结果,自动补充 */\n errMsg: ''\n }\n handle.success(result, { resolve, reject })\n },\n (error) => {\n handle.fail({ errMsg: error.message }, { resolve, reject })\n },\n positionOptions\n )\n }\n )\n}\n\nexport const getLocation = /* @__PURE__ */ processOpenApi({\n name: 'getLocation',\n standardMethod: getLocationByW3CApi\n})\n","import './style.scss'\r\n\r\nimport Taro from '@tarojs/api'\r\nimport queryString from 'query-string'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\n\r\nlet container: HTMLDivElement | null = null\r\nfunction createLocationChooser (handler, key = LOCATION_APIKEY, mapOpt: Taro.chooseLocation.Option['mapOpts'] = {}) {\r\n const { latitude, longitude, ...opts } = mapOpt\r\n const query = {\r\n key,\r\n type: 1,\r\n coord: mapOpt.coord ?? [latitude, longitude].every(e => Number(e) >= 0) ? `${latitude},${longitude}` : undefined,\r\n referer: 'myapp',\r\n ...opts\r\n }\r\n if (!container) {\r\n const html = `\r\n<div class='taro_choose_location'>\r\n <div class='taro_choose_location_bar'>\r\n <div class='taro_choose_location_back'></div>\r\n <p class='taro_choose_location_title'>位置</p>\r\n <button class='taro_choose_location_submit'>完成</button>\r\n </div>\r\n <iframe class='taro_choose_location_frame' frameborder='0' src=\"https://apis.map.qq.com/tools/locpicker?${queryString.stringify(query, { arrayFormat: 'comma', skipNull: true })}\" />\r\n</div>\r\n`\r\n container = document.createElement('div')\r\n container.innerHTML = html\r\n }\r\n const main: HTMLDivElement = container.querySelector('.taro_choose_location') as HTMLDivElement\r\n\r\n function show () {\r\n setTimeout(() => {\r\n main.style.top = '0'\r\n })\r\n }\r\n\r\n function hide () {\r\n main.style.top = '100%'\r\n }\r\n\r\n function back () {\r\n hide()\r\n handler({ errMsg: 'cancel' })\r\n }\r\n\r\n function submit () {\r\n hide()\r\n handler()\r\n }\r\n\r\n function remove () {\r\n container?.remove()\r\n container = null\r\n window.removeEventListener('popstate', back)\r\n }\r\n\r\n container.querySelector('.taro_choose_location_back')?.addEventListener('click', back)\r\n container.querySelector('.taro_choose_location_submit')?.addEventListener('click', submit)\r\n\r\n window.addEventListener('popstate', back)\r\n\r\n return {\r\n show,\r\n remove,\r\n container,\r\n }\r\n}\r\n\r\n/**\r\n * 打开地图选择位置。\r\n */\r\nexport const chooseLocation: typeof Taro.chooseLocation = ({ success, fail, complete, mapOpts } = {}) => {\r\n const handle = new MethodHandler({ name: 'chooseLocation', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n const chooseLocation: Partial<Taro.chooseLocation.SuccessCallbackResult> = {}\r\n if (typeof LOCATION_APIKEY === 'undefined') {\r\n console.warn('chooseLocation api 依赖腾讯地图定位api,需要在 defineConstants 中配置 LOCATION_APIKEY')\r\n return handle.fail({\r\n errMsg: 'LOCATION_APIKEY needed'\r\n }, { resolve, reject })\r\n }\r\n\r\n const key = LOCATION_APIKEY\r\n\r\n const onMessage = event => {\r\n // 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息\r\n const loc = event.data\r\n\r\n // 防止其他应用也会向该页面 post 信息,需判断 module 是否为'locationPicker'\r\n if (!loc || loc.module !== 'locationPicker') return\r\n\r\n chooseLocation.name = loc.poiname\r\n chooseLocation.address = loc.poiaddress\r\n chooseLocation.latitude = loc.latlng.lat\r\n chooseLocation.longitude = loc.latlng.lng\r\n }\r\n\r\n const chooser = createLocationChooser(res => {\r\n window.removeEventListener('message', onMessage, false)\r\n setTimeout(() => {\r\n chooser.remove()\r\n }, 300)\r\n if (res) {\r\n return handle.fail(res, { resolve, reject })\r\n } else {\r\n if (chooseLocation.latitude && chooseLocation.longitude) {\r\n return handle.success(chooseLocation, { resolve, reject })\r\n } else {\r\n return handle.fail({}, { resolve, reject })\r\n }\r\n }\r\n }, key, mapOpts)\r\n\r\n document.body.appendChild(chooser.container)\r\n\r\n window.addEventListener('message', onMessage, false)\r\n chooser.show()\r\n })\r\n}\r\n","import { processOpenApi, shouldBeObject } from '../../utils'\nimport { CallbackManager, MethodHandler } from '../../utils/handler'\nimport { isGeolocationSupported } from './utils'\n\nconst _successCbManager = new CallbackManager()\nconst _errorCbManager = new CallbackManager()\nlet _watchID = -1\n\nexport function onLocationChange (callback: Taro.onLocationChange.Callback): void {\n _successCbManager.add(callback)\n}\n\nexport function offLocationChange (callback: Taro.onLocationChange.Callback): void {\n if (callback && typeof callback === 'function') {\n _successCbManager.remove(callback)\n } else if (callback === undefined) {\n _successCbManager.clear()\n } else {\n console.warn('offLocationChange failed')\n }\n}\n\nexport function onLocationChangeError (callback: Taro.onLocationChange.Callback): void {\n _errorCbManager.add(callback)\n}\n\nexport function offLocationChangeError (callback: Taro.onLocationChange.Callback): void {\n if (callback && typeof callback === 'function') {\n _errorCbManager.remove(callback)\n } else if (callback === undefined) {\n _errorCbManager.clear()\n } else {\n console.warn('offLocationChangeError failed')\n }\n}\n\n/**\n * 开始监听位置信息\n * @param opts\n * @returns\n */\nfunction startLocationUpdateByW3CApi (opts: Taro.startLocationUpdate.Option): Promise<TaroGeneral.CallbackResult> {\n// 断言 options 必须是 Object\n const isObject = shouldBeObject(opts)\n if (!isObject.flag) {\n const res = { errMsg: `startLocationUpdate:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { success, fail, complete } = opts\n const handle = new MethodHandler({ name: 'startLocationUpdate', success, fail, complete })\n\n // 判断当前浏览器是否支持位置API\n if (!isGeolocationSupported()) {\n return handle.fail({\n errMsg: 'The current browser does not support this feature'\n })\n }\n\n try {\n if (_watchID > -1) {\n console.error('startLocationUpdate:fail')\n return handle.fail()\n } else {\n _watchID = navigator.geolocation.watchPosition(({ coords }) => {\n const { latitude, longitude, altitude, accuracy, speed } = coords\n _successCbManager.trigger({\n accuracy,\n altitude,\n horizontalAccuracy: 0,\n verticalAccuracy: 0,\n latitude,\n longitude,\n speed,\n })\n }, err => {\n _errorCbManager.trigger({\n errMsg: 'Watch Position error',\n err\n })\n }, {\n timeout: 10,\n maximumAge: 0,\n enableHighAccuracy: true,\n })\n return handle.success()\n }\n } catch (error) {\n return handle.fail()\n }\n}\n\n/**\n * 停止监听位置信息\n * @param opts\n * @returns\n */\nfunction stopLocationUpdateByW3CApi (opts: Taro.stopLocationUpdate.Option): Promise<TaroGeneral.CallbackResult> {\n const isObject = shouldBeObject(opts)\n if (!isObject.flag) {\n const res = { errMsg: `stopLocationUpdate:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { success, fail, complete } = opts\n const handle = new MethodHandler({ name: 'stopLocationUpdate', success, fail, complete })\n\n // 判断当前浏览器是否支持位置API\n if (!isGeolocationSupported()) {\n return handle.fail({\n errMsg: 'The current browser does not support this feature'\n })\n }\n\n try {\n navigator.geolocation.clearWatch(_watchID)\n _watchID = -1\n return handle.success()\n } catch (error) {\n return handle.fail()\n }\n}\n\nexport const stopLocationUpdate = /* @__PURE__ */ processOpenApi({\n name: 'stopLocationUpdate',\n standardMethod: stopLocationUpdateByW3CApi\n})\n\nexport const startLocationUpdate = /* @__PURE__ */ processOpenApi({\n name: 'startLocationUpdate',\n standardMethod: startLocationUpdateByW3CApi\n})\n","import { processOpenApi, temporarilyNotSupport } from '../../utils/index'\r\n\r\nexport const startLocationUpdateBackground = /* @__PURE__ */ temporarilyNotSupport('startLocationUpdateBackground')\r\n\r\nexport const openLocation = /* @__PURE__ */ processOpenApi({\r\n name: 'openLocation',\r\n defaultOptions: { scale: 18 }\r\n})\r\n\r\nexport { getLocation } from './getLocation'\r\n\r\nexport const choosePoi = /* @__PURE__ */ temporarilyNotSupport('choosePoi')\r\nexport const getFuzzyLocation = /* @__PURE__ */ temporarilyNotSupport('getFuzzyLocation')\r\n\r\nexport { chooseLocation } from './chooseLocation'\r\nexport { offLocationChange, offLocationChangeError, onLocationChange, onLocationChangeError, startLocationUpdate, stopLocationUpdate } from './locationChange'\r\n","import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class InnerAudioContext implements Taro.InnerAudioContext {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n __isFirstPlay = true\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n this.Instance.onerror = this.errorStack.trigger\n\n Taro.eventCenter.on('__taroRouterChange', () => { this.stop() })\n this.onPlay(() => {\n if (this.__isFirstPlay) {\n this.__isFirstPlay = false\n this.seek(this.startTime)\n }\n })\n }\n\n set autoplay (e) { this.setProperty('autoplay', e) }\n get autoplay () { return this.Instance?.autoplay || false }\n get buffered () {\n const { currentTime = 0, buffered: timeRange } = this.Instance || {}\n if (timeRange) {\n for (let i = 0; i < timeRange.length; i++) {\n if (timeRange.start(i) <= currentTime && timeRange.end(i) >= currentTime) {\n return timeRange.end(i)\n }\n }\n }\n return 0\n }\n\n get currentTime () { return this.Instance?.currentTime || 0 }\n set currentTime (e) { this.seek(e) }\n get duration () { return this.Instance?.duration || 0 }\n set loop (e) { this.setProperty('loop', e) }\n get loop () { return this.Instance?.loop || false }\n get paused () { return this.Instance?.paused ?? true }\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set volume (e) { this.setProperty('volume', e) }\n get volume () { return this.Instance?.volume || 0 }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n set obeyMuteSwitch (_e) { permanentlyNotSupport('InnerAudioContext.obeyMuteSwitch')() }\n get obeyMuteSwitch () { return true }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n /**\n * @TODO destroy得并不干净\n */\n destroy = () => {\n this.stop()\n if (this.Instance) {\n this.Instance = undefined\n }\n }\n\n onCanplay = (callback: Taro.InnerAudioContext.OnCanplayCallback = () => {}) => this.Instance?.addEventListener('canplay', callback as any)\n onPlay = (callback: Taro.InnerAudioContext.OnPlayCallback = () => {}) => this.Instance?.addEventListener('play', callback as any)\n onPause = (callback: Taro.InnerAudioContext.OnPauseCallback = () => {}) => this.Instance?.addEventListener('pause', callback as any)\n onStop = (callback: Taro.InnerAudioContext.OnStopCallback = () => {}) => this.stopStack.add(callback)\n onEnded = (callback: Taro.InnerAudioContext.OnEndedCallback = () => {}) => this.Instance?.addEventListener('ended', callback as any)\n onTimeUpdate = (callback: Taro.InnerAudioContext.OnTimeUpdateCallback = () => {}) => this.Instance?.addEventListener('timeupdate', callback as any)\n onError = (callback: Taro.InnerAudioContext.OnErrorCallback) => this.errorStack.add(callback)\n onWaiting = (callback: Taro.InnerAudioContext.OnWaitingCallback = () => {}) => this.Instance?.addEventListener('waiting', callback as any)\n onSeeking = (callback: Taro.InnerAudioContext.OnSeekingCallback = () => {}) => this.Instance?.addEventListener('seeking', callback as any)\n onSeeked = (callback: Taro.InnerAudioContext.OnSeekedCallback = () => {}) => this.Instance?.addEventListener('seeked', callback as any)\n offCanplay = (callback: Taro.InnerAudioContext.OnCanplayCallback = () => {}) => this.Instance?.removeEventListener('canplay', callback as any)\n offPlay = (callback: Taro.InnerAudioContext.OnPlayCallback = () => {}) => this.Instance?.removeEventListener('play', callback as any)\n offPause = (callback: Taro.InnerAudioContext.OnPauseCallback = () => {}) => this.Instance?.removeEventListener('pause', callback as any)\n offStop = (callback: Taro.InnerAudioContext.OnStopCallback = () => {}) => this.stopStack.remove(callback)\n offEnded = (callback: Taro.InnerAudioContext.OnEndedCallback = () => {}) => this.Instance?.removeEventListener('ended', callback as any)\n offTimeUpdate = (callback: Taro.InnerAudioContext.OnTimeUpdateCallback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback as any)\n offError = (callback: Taro.InnerAudioContext.OnErrorCallback = () => {}) => this.errorStack.remove(callback)\n offWaiting = (callback: Taro.InnerAudioContext.OnWaitingCallback = () => {}) => this.Instance?.removeEventListener('waiting', callback as any)\n offSeeking = (callback: Taro.InnerAudioContext.OnSeekingCallback = () => {}) => this.Instance?.removeEventListener('seeking', callback as any)\n offSeeked = (callback: Taro.InnerAudioContext.OnSeekedCallback = () => {}) => this.Instance?.removeEventListener('seeked', callback as any)\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { temporarilyNotSupport } from '../../../utils'\r\nimport { InnerAudioContext } from './InnerAudioContext'\r\n\r\n// 音频\r\n\r\nexport const stopVoice = /* @__PURE__ */ temporarilyNotSupport('stopVoice')\r\nexport const setInnerAudioOption = /* @__PURE__ */ temporarilyNotSupport('setInnerAudioOption')\r\nexport const playVoice = /* @__PURE__ */ temporarilyNotSupport('playVoice')\r\nexport const pauseVoice = /* @__PURE__ */ temporarilyNotSupport('pauseVoice')\r\nexport const getAvailableAudioSources = /* @__PURE__ */ temporarilyNotSupport('getAvailableAudioSources')\r\nexport const createWebAudioContext = /* @__PURE__ */ temporarilyNotSupport('createWebAudioContext')\r\nexport const createMediaAudioPlayer = /* @__PURE__ */ temporarilyNotSupport('createMediaAudioPlayer')\r\n\r\n/**\r\n * 创建内部 audio 上下文 InnerAudioContext 对象。\r\n */\r\nexport const createInnerAudioContext: typeof Taro.createInnerAudioContext = () => new InnerAudioContext()\r\n\r\nexport const createAudioContext = /* @__PURE__ */ temporarilyNotSupport('createAudioContext')\r\n","import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class BackgroundAudioManager implements Taro.BackgroundAudioManager {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n this.Instance.onerror = this.errorStack.trigger\n this.Instance.autoplay = true\n this.onPlay(() => {\n if (this.currentTime !== this.startTime) {\n this.seek(this.startTime)\n }\n })\n }\n\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set title (e) { this.dataset('title', e) }\n get title () { return this.Instance?.dataset.title || '' }\n set epname (e) { this.dataset('epname', e) }\n get epname () { return this.Instance?.dataset.epname || '' }\n set singer (e) { this.dataset('singer', e) }\n get singer () { return this.Instance?.dataset.singer || '' }\n set coverImgUrl (e) { this.dataset('coverImgUrl', e) }\n get coverImgUrl () { return this.Instance?.dataset.coverImgUrl || '' }\n set webUrl (e) { this.dataset('webUrl', e) }\n get webUrl () { return this.Instance?.dataset.webUrl || '' }\n set protocol (e) { this.dataset('protocol', e) }\n get protocol () { return this.Instance?.dataset.protocol || '' }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n get duration () { return this.Instance?.duration || 0 }\n get currentTime () { return this.Instance?.currentTime || 0 }\n get paused () { return this.Instance?.paused || false }\n get buffered () {\n const { currentTime = 0, buffered: timeRange } = this.Instance || {}\n if (timeRange) {\n for (let i = 0; i < timeRange.length; i++) {\n if (timeRange.start(i) <= currentTime && timeRange.end(i) >= currentTime) {\n return timeRange.end(i)\n }\n }\n }\n return 0\n }\n\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n private dataset (key: string, value: string) {\n if (this.Instance) {\n this.Instance.dataset[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n onCanplay = (callback = () => {}) => this.Instance?.addEventListener('canplay', callback)\n onWaiting = (callback = () => {}) => this.Instance?.addEventListener('waiting', callback)\n onError = (callback?: ((res: Taro.InnerAudioContext.onErrorDetail) => void)) => this.errorStack.add(callback)\n onPlay = (callback = () => {}) => this.Instance?.addEventListener('play', callback)\n onPause = (callback = () => {}) => this.Instance?.addEventListener('pause', callback)\n onSeeking = (callback = () => {}) => this.Instance?.addEventListener('seeking', callback)\n onSeeked = (callback = () => {}) => this.Instance?.addEventListener('seeked', callback)\n\n onEnded = (callback = () => {}) => this.Instance?.addEventListener('ended', callback)\n onStop = (callback = () => {}) => this.stopStack.add(callback)\n onTimeUpdate = (callback = () => {}) => this.Instance?.addEventListener('timeupdate', callback)\n onPrev = permanentlyNotSupport('BackgroundAudioManager.onPrev')\n onNext = permanentlyNotSupport('BackgroundAudioManager.onNext')\n\n offCanplay = (callback = () => {}) => this.Instance?.removeEventListener('canplay', callback)\n offWaiting = (callback = () => {}) => this.Instance?.removeEventListener('waiting', callback)\n offError = (callback = () => {}) => this.errorStack.remove(callback)\n offPlay = (callback = () => {}) => this.Instance?.removeEventListener('play', callback)\n offPause = (callback = () => {}) => this.Instance?.removeEventListener('pause', callback)\n offSeeking = (callback = () => {}) => this.Instance?.removeEventListener('seeking', callback)\n offSeeked = (callback = () => {}) => this.Instance?.removeEventListener('seeked', callback)\n\n offEnded = (callback = () => {}) => this.Instance?.removeEventListener('ended', callback)\n offStop = (callback = () => {}) => this.stopStack.remove(callback)\n offTimeUpdate = (callback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback)\n offPrev = permanentlyNotSupport('BackgroundAudioManager.offPrev')\n offNext = permanentlyNotSupport('BackgroundAudioManager.offNext')\n}\n","import { temporarilyNotSupport } from '../../../utils'\nimport { BackgroundAudioManager } from './BackgroundAudioManager'\n\n// 背景音频\nexport const stopBackgroundAudio = /* @__PURE__ */ temporarilyNotSupport('stopBackgroundAudio')\nexport const seekBackgroundAudio = /* @__PURE__ */ temporarilyNotSupport('seekBackgroundAudio')\nexport const playBackgroundAudio = /* @__PURE__ */ temporarilyNotSupport('playBackgroundAudio')\nexport const pauseBackgroundAudio = /* @__PURE__ */ temporarilyNotSupport('pauseBackgroundAudio')\nexport const onBackgroundAudioStop = /* @__PURE__ */ temporarilyNotSupport('onBackgroundAudioStop')\nexport const onBackgroundAudioPlay = /* @__PURE__ */ temporarilyNotSupport('onBackgroundAudioPlay')\nexport const onBackgroundAudioPause = /* @__PURE__ */ temporarilyNotSupport('onBackgroundAudioPause')\nexport const getBackgroundAudioPlayerState = /* @__PURE__ */ temporarilyNotSupport('getBackgroundAudioPlayerState')\n\n/**\n * 获取全局唯一的背景音频管理器\n */\nexport const getBackgroundAudioManager = () => new BackgroundAudioManager()\n","import { temporarilyNotSupport } from '../../utils'\n\n// 相机\nexport const createCameraContext = /* @__PURE__ */ temporarilyNotSupport('createCameraContext')\n","import Taro from '@tarojs/api'\n\nimport { createDownload, getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\nexport const saveImageToPhotosAlbum: typeof Taro.saveImageToPhotosAlbum = (options) => {\n const methodName = 'saveImageToPhotosAlbum'\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n filePath,\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n if (typeof filePath !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'filePath',\n correct: 'String',\n wrong: filePath\n })\n })\n }\n\n createDownload(filePath)\n return handle.success()\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { shouldBeObject } from '../../../utils'\r\nimport { MethodHandler } from '../../../utils/handler'\r\n\r\n/**\r\n * 获取图片信息。网络图片需先配置download域名才能生效。\r\n */\r\nexport const getImageInfo: typeof Taro.getImageInfo = (options) => {\r\n // options must be an Object\r\n const isObject = shouldBeObject(options)\r\n if (!isObject.flag) {\r\n const res = { errMsg: `getImageInfo:fail ${isObject.msg}` }\r\n console.error(res.errMsg)\r\n return Promise.reject(res)\r\n }\r\n\r\n const getBase64Image = (image: HTMLImageElement) => {\r\n try {\r\n const canvas = document.createElement('canvas')\r\n canvas.width = image.width\r\n canvas.height = image.height\r\n const ctx = canvas.getContext('2d')\r\n ctx?.drawImage(image, 0, 0, image.width, image.height)\r\n return canvas.toDataURL('image/png')\r\n } catch (e) {\r\n console.error('getImageInfo:get base64 fail', e)\r\n }\r\n }\r\n\r\n const { src, success, fail, complete } = options\r\n const handle = new MethodHandler({ name: 'getImageInfo', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n const image = new Image()\r\n image.crossOrigin = ''\r\n image.onload = () => {\r\n handle.success({\r\n width: image.naturalWidth,\r\n height: image.naturalHeight,\r\n path: getBase64Image(image) || src\r\n }, { resolve, reject })\r\n }\r\n image.onerror = (e: any) => {\r\n handle.fail({\r\n errMsg: e.message\r\n }, { resolve, reject })\r\n }\r\n image.src = src\r\n })\r\n}\r\n","import Taro from '@tarojs/api'\nimport { SwiperProps } from '@tarojs/components'\nimport {\n defineCustomElementTaroSwiperCore,\n defineCustomElementTaroSwiperItemCore,\n} from '@tarojs/components/dist/components'\nimport { eventCenter } from '@tarojs/runtime'\nimport { isFunction } from '@tarojs/shared'\n\nimport { shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n/**\n * previewImage api基于开源的React组件[react-wx-images-viewer](https://github.com/react-ld/react-wx-images-viewer)开发,感谢!\n */\n\n/**\n * 在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。\n */\nexport const previewImage: typeof Taro.previewImage = async (options) => {\n // TODO 改为通过 window.__taroAppConfig 获取配置的 Swiper 插件创建节点\n defineCustomElementTaroSwiperCore()\n defineCustomElementTaroSwiperItemCore()\n\n function loadImage (url: string, loadFail: typeof fail): Promise<Node> {\n return new Promise((resolve) => {\n const item = document.createElement('taro-swiper-item-core')\n item.style.cssText = 'display:flex;align-items:start;justify-content:center;overflow-y:scroll;'\n const image = new Image()\n image.style.maxWidth = '100%'\n image.src = url\n const div = document.createElement('div')\n div.classList.add('swiper-zoom-container')\n div.style.cssText = 'display:flex;align-items:center;justify-content:center;max-width:100%;min-height:100%;'\n div.appendChild(image)\n item.appendChild(div)\n // Note: 等待图片加载完后返回,会导致轮播被卡住\n resolve(item)\n if (isFunction(loadFail)) {\n image.addEventListener('error', (err) => {\n loadFail({ errMsg: err.message })\n })\n }\n })\n }\n\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `previewImage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { urls = [], current = '', success, fail, complete } = options\n const handle = new MethodHandler({ name: 'previewImage', success, fail, complete })\n const container = document.createElement('div')\n const removeHandler = () => {\n eventCenter.off('__taroRouterChange', removeHandler)\n container.remove()\n }\n // 路由改变后应该关闭预览框\n eventCenter.on('__taroRouterChange', removeHandler)\n\n container.classList.add('preview-image')\n container.style.cssText =\n 'position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:#111;'\n container.addEventListener('click', removeHandler)\n\n const swiper: HTMLElement & Omit<SwiperProps, 'style' | 'children'> = document.createElement('taro-swiper-core')\n // @ts-ignore\n swiper.full = true\n // @ts-ignore\n swiper.zoom = true\n\n let children: Node[] = []\n try {\n children = await Promise.all(urls.map((e) => loadImage(e, fail)))\n } catch (error) {\n return handle.fail({\n errMsg: error,\n })\n }\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i]\n swiper.appendChild(child)\n }\n\n const currentIndex = typeof current === 'number' ? current : urls.indexOf(current)\n\n swiper.current = currentIndex\n\n container.appendChild(swiper)\n document.body.appendChild(container)\n\n return handle.success()\n}\n","import Taro from '@tarojs/api'\n\n/**\n * H5 下的 styleSheet 操作\n * @author leeenx\n */\nclass StyleSheet {\n constructor () {\n this.$style = document.createElement('style')\n }\n\n $style?: HTMLStyleElement | null = null\n sheet?: CSSStyleSheet | null = null\n\n appendStyleSheet = () => {\n if (this.$style) {\n const head = document.getElementsByTagName('head')[0]\n this.$style.setAttribute('type', 'text/css')\n this.$style.setAttribute('data-type', 'Taro')\n head.appendChild(this.$style)\n this.sheet = this.$style.sheet\n }\n if (this.sheet && !('insertRule' in this.sheet)) {\n console.warn('当前浏览器不支持 stylesheet.insertRule 接口')\n }\n }\n\n // 添加样式命令\n add = (cssText, index = 0) => {\n if (this.sheet === null) {\n // $style 未插入到 DOM\n this.appendStyleSheet()\n }\n this.sheet?.insertRule(cssText, index)\n }\n}\n\nconst styleSheet = new StyleSheet()\n\n// 监听事件\nlet TRANSITION_END = 'transitionend'\nlet TRANSFORM = 'transform'\n\nconst $detect = document.createElement('div')\n$detect.style.cssText = '-webkit-animation-name:webkit;-moz-animation-name:moz;-ms-animation-name:ms;animation-name:standard;'\nif ($detect.style['animation-name'] === 'standard') {\n // 支持标准写法\n TRANSITION_END = 'transitionend'\n TRANSFORM = 'transform'\n} else if ($detect.style['-webkit-animation-name'] === 'webkit') {\n // webkit 前缀\n TRANSITION_END = 'webkitTransitionEnd'\n TRANSFORM = '-webkit-transform'\n} else if ($detect.style['-moz-animation-name'] === 'moz') {\n // moz 前缀\n TRANSITION_END = 'mozTransitionEnd'\n TRANSFORM = '-moz-transform'\n} else if ($detect.style['-ms-animation-name'] === 'ms') {\n // ms 前缀\n TRANSITION_END = 'msTransitionEnd'\n TRANSFORM = '-ms-transform'\n}\n\nlet animId = 0\n\ninterface IAnimationAttr {\n duration: number\n delay: number\n timingFunction: string\n transformOrigin: string\n}\n\ninterface IRule {\n key: string\n rule: string\n}\n\ninterface ITransform {\n key: string\n transform: string\n}\n\nclass Animation implements Taro.Animation {\n unit: string\n id: number\n DEFAULT: IAnimationAttr\n\n constructor (\n {\n duration = 400,\n delay = 0,\n timingFunction = 'linear',\n transformOrigin = '50% 50% 0',\n unit = 'px'\n }: Taro.createAnimation.Option = {}\n ) {\n // 默认值\n this.setDefault(duration, delay, timingFunction, transformOrigin)\n this.unit = unit\n // atom 环境下,animation 属性不会显示,所以要改成 data-animation\n let animAttr = 'animation'\n // 动画 id\n this.id = ++animId\n // 监听事件\n document.body.addEventListener(TRANSITION_END, (e: TransitionEvent) => {\n const target = e.target as HTMLElement\n if (target.getAttribute(animAttr) === null) {\n animAttr = 'data-animation'\n }\n const animData = target.getAttribute(animAttr)\n // 没有动画存在\n if (animData === null) return\n const [animName, animPath] = animData.split('__')\n if (animName === `taro-h5-poly-fill/${this.id}/create-animation`) {\n const [animIndex, __stepIndex = 0] = animPath.split('--')\n const stepIndex = Number(__stepIndex)\n // 动画总的关键帧\n const animStepsCount = this.animationMap[`${animName}__${animIndex}`]\n const animStepsMaxIndex = animStepsCount - 1\n if (stepIndex < animStepsMaxIndex) {\n // 播放下一个关键帧(因为 nerv 和 react 有差异所以 animation & data-animation 都需要写)\n target.setAttribute(animAttr, `${animName}__${animIndex}--${stepIndex + 1}`)\n if (animAttr === 'data-animation') {\n // Nerv 环境,animation & data-animation 双重保险\n target.setAttribute('animation', `${animName}__${animIndex}--${stepIndex + 1}`)\n }\n }\n }\n })\n }\n\n transformUnit (...args) {\n const ret: string[] = []\n args.forEach(each => {\n ret.push(isNaN(each) ? each : `${each}${this.unit}`)\n })\n return ret\n }\n\n // 设置默认值\n setDefault (duration, delay, timingFunction, transformOrigin) {\n this.DEFAULT = { duration, delay, timingFunction, transformOrigin }\n }\n\n // 属性组合\n rules: IRule[] = []\n // transform 对象\n transform: ITransform[] = []\n // 组合动画\n steps: string[] = []\n // 动画 map ----- 永久保留\n animationMap = {}\n // animationMap 的长度\n animationMapCount = 0\n // 历史动画\n historyAnimations: ITransform[] = []\n // 历史规则\n historyRules: IRule[] = []\n\n matrix (a: number, b: number, c: number, d: number, tx: number, ty: number) {\n this.transform.push({ key: 'matrix', transform: `matrix(${a}, ${b}, ${c}, ${d}, ${tx}, ${ty})` })\n return this\n }\n\n matrix3d (a1: number, b1: number, c1: number, d1: number, a2: number, b2: number, c2: number, d2: number, a3: number, b3: number, c3: number, d3: number, a4: number, b4: number, c4: number, d4: number) {\n this.transform.push({\n key: 'matrix3d',\n transform: `matrix3d(${a1}, ${b1}, ${c1}, ${d1}, ${a2}, ${b2}, ${c2}, ${d2}, ${a3}, ${b3}, ${c3}, ${d3}, ${a4}, ${b4}, ${c4}, ${d4})`,\n })\n return this\n }\n\n rotate (angle: number) {\n this.transform.push({ key: 'rotate', transform: `rotate(${angle}deg)` })\n return this\n }\n\n rotate3d (x: number, y?: number, z?: number, angle?: number) {\n if (typeof y !== 'number') {\n this.transform.push({ key: 'rotate3d', transform: `rotate3d(${x})` })\n } else {\n this.transform.push({ key: 'rotate3d', transform: `rotate3d(${x}, ${y || 0}, ${z || 0}, ${angle || 0}deg)` })\n }\n return this\n }\n\n rotateX (angle) {\n this.transform.push({ key: 'rotateX', transform: `rotateX(${angle}deg)` })\n return this\n }\n\n rotateY (angle) {\n this.transform.push({ key: 'rotateY', transform: `rotateY(${angle}deg)` })\n return this\n }\n\n rotateZ (angle) {\n this.transform.push({ key: 'rotateZ', transform: `rotateZ(${angle}deg)` })\n return this\n }\n\n scale (x: number, y?: number) {\n const scaleY = (typeof y !== 'undefined' && y !== null) ? y : x\n this.transform.push({ key: 'scale', transform: `scale(${x}, ${scaleY})` })\n return this\n }\n\n scale3d (x, y, z) {\n this.transform.push({ key: 'scale3d', transform: `scale3d(${x}, ${y}, ${z})` })\n return this\n }\n\n scaleX (scale) {\n this.transform.push({ key: 'scaleX', transform: `scaleX(${scale})` })\n return this\n }\n\n scaleY (scale) {\n this.transform.push({ key: 'scaleY', transform: `scaleY(${scale})` })\n return this\n }\n\n scaleZ (scale) {\n this.transform.push({ key: 'scaleZ', transform: `scaleZ(${scale})` })\n return this\n }\n\n skew (x, y) {\n this.transform.push({ key: 'skew', transform: `skew(${x}deg, ${y}deg)` })\n return this\n }\n\n skewX (angle) {\n this.transform.push({ key: 'skewX', transform: `skewX(${angle}deg)` })\n return this\n }\n\n skewY (angle) {\n this.transform.push({ key: 'skewY', transform: `skewY(${angle}deg)` })\n return this\n }\n\n translate (x, y) {\n [x, y] = this.transformUnit(x, y)\n this.transform.push({ key: 'translate', transform: `translate(${x}, ${y})` })\n return this\n }\n\n translate3d (x, y, z) {\n [x, y, z] = this.transformUnit(x, y, z)\n this.transform.push({ key: 'translate3d', transform: `translate3d(${x}, ${y}, ${z})` })\n return this\n }\n\n translateX (translate) {\n [translate] = this.transformUnit(translate)\n this.transform.push({ key: 'translateX', transform: `translateX(${translate})` })\n return this\n }\n\n translateY (translate) {\n [translate] = this.transformUnit(translate)\n this.transform.push({ key: 'translateY', transform: `translateY(${translate})` })\n return this\n }\n\n translateZ (translate) {\n [translate] = this.transformUnit(translate)\n this.transform.push({ key: 'translateZ', transform: `translateZ(${translate})` })\n return this\n }\n\n opacity (value) {\n this.rules.push({ key: 'opacity', rule: `opacity: ${value}` })\n return this\n }\n\n backgroundColor (value) {\n this.rules.push({ key: 'backgroundColor', rule: `background-color: ${value}` })\n return this\n }\n\n width (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'width', rule: `width: ${value}` })\n return this\n }\n\n height (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'height', rule: `height: ${value}` })\n return this\n }\n\n top (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'top', rule: `top: ${value}` })\n return this\n }\n\n right (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'right', rule: `right: ${value}` })\n return this\n }\n\n bottom (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'bottom', rule: `bottom: ${value}` })\n return this\n }\n\n left (value) {\n [value] = this.transformUnit(value)\n this.rules.push({ key: 'left', rule: `left: ${value}` })\n return this\n }\n\n // 关键帧载入\n step (arg: Partial<IAnimationAttr> = {}) {\n const { DEFAULT } = this\n const {\n duration = DEFAULT.duration,\n delay = DEFAULT.delay,\n timingFunction = DEFAULT.timingFunction,\n transformOrigin = DEFAULT.transformOrigin,\n } = arg\n // 生成一条 transition 动画\n\n this.transform.map((t0) => {\n const index = this.historyAnimations.findIndex((t1) => t1.key === t0.key)\n if (index === -1) {\n this.historyAnimations.push(t0)\n } else {\n this.historyAnimations[index] = t0\n }\n })\n const transforms = this.historyAnimations.map((t) => t.transform)\n const transformSequence = transforms.length > 0 ? `${TRANSFORM}:${transforms.join(' ')}!important` : ''\n\n this.rules.map((r0) => {\n const index = this.historyRules.findIndex((r1) => r1.key === r0.key)\n if (index === -1) {\n this.historyRules.push(r0)\n } else {\n this.historyRules[index] = r0\n }\n })\n const rules = this.historyRules.map((t) => t.rule)\n const ruleSequence = rules.length > 0 ? rules.map((rule) => `${rule}!important`).join(';') : ''\n\n this.steps.push(\n [\n ruleSequence,\n transformSequence,\n `${TRANSFORM}-origin: ${transformOrigin}`,\n `transition: all ${duration}ms ${timingFunction} ${delay}ms`,\n ]\n .filter((item) => item !== '')\n .join(';')\n )\n // 清空 rules 和 transform\n this.rules = []\n this.transform = []\n return this as Taro.Animation\n }\n\n // 创建底层数据\n createAnimationData () {\n const animIndex = `taro-h5-poly-fill/${this.id}/create-animation__${this.animationMapCount++}`\n // 记录动画分几个 step\n this.animationMap[animIndex] = this.steps.length\n // 吐出 step\n this.steps.forEach((step, index) => {\n const selector =\n index === 0\n ? `[animation=\"${animIndex}\"], [data-animation=\"${animIndex}\"]`\n : `[animation=\"${animIndex}--${index}\"], [data-animation=\"${animIndex}--${index}\"]`\n styleSheet.add(`${selector} { ${step} }`)\n })\n\n // 清空 steps\n this.steps = []\n return animIndex\n }\n\n // 动画数据产出\n export () {\n return this.createAnimationData() as unknown as ReturnType<Taro.Animation['export']>\n }\n}\n\n// h5 的 createAnimation\nexport const createAnimation: typeof Taro.createAnimation = (option) => {\n return new Animation(option)\n}\n","import { temporarilyNotSupport } from '../../utils'\n\n// 背景\nexport const setBackgroundTextStyle = /* @__PURE__ */ temporarilyNotSupport('setBackgroundTextStyle')\nexport const setBackgroundColor = /* @__PURE__ */ temporarilyNotSupport('setBackgroundColor')\n","import Taro from '@tarojs/api'\n\n// 自定义组件\nexport const nextTick = Taro.nextTick\n","import Taro from '@tarojs/api'\n\nimport { MethodHandler } from '../../utils/handler'\n\n// 字体\nexport const loadFontFace: typeof Taro.loadFontFace = async options => {\n options = Object.assign({ global: false }, options)\n const { success, fail, complete, family, source, desc = {} } = options\n const handle = new MethodHandler({ name: 'loadFontFace', success, fail, complete })\n // @ts-ignore\n const fonts = document.fonts\n if (fonts) {\n // @ts-ignore\n const fontFace = new FontFace(family, source, desc)\n try {\n await fontFace.load()\n fonts.add(fontFace)\n return handle.success({ status: 'loaded' })\n } catch (error) {\n return handle.fail({\n status: 'error',\n errMsg: error.message || error,\n })\n }\n } else {\n const style = document.createElement('style')\n let innerText = `font-family:\"${\n family\n }\";src:${\n source\n };font-style:${\n desc.style || 'normal'\n };font-weight:${\n desc.weight || 'normal'\n };font-variant:${\n desc.variant || 'normal'\n };`\n\n if (desc.ascentOverride) {\n innerText += `ascent-override:${desc.ascentOverride};`\n }\n if (desc.descentOverride) {\n innerText += `descent-override:${desc.descentOverride};`\n }\n if (desc.featureSettings) {\n innerText += `font-feature-settings:${desc.featureSettings};`\n }\n if (desc.lineGapOverride) {\n innerText += `line-gap-override:${desc.lineGapOverride};`\n }\n if (desc.stretch) {\n innerText += `font-stretch:${desc.stretch};`\n }\n if (desc.unicodeRange) {\n innerText += `unicode-range:${desc.unicodeRange};`\n }\n if (desc.variationSettings) {\n innerText += `font-variation-settings:${desc.variationSettings};`\n }\n\n style.innerText = `@font-face{${innerText}}`\n document.head.appendChild(style)\n return handle.success({ status: 'loaded' })\n }\n}\n","import { temporarilyNotSupport } from '../../utils'\n\n// 菜单\nexport const getMenuButtonBoundingClientRect = /* @__PURE__ */ temporarilyNotSupport('getMenuButtonBoundingClientRect')\n","import Taro from '@tarojs/api'\nimport { setNavigationBarLoading, setNavigationBarStyle, setTitle } from '@tarojs/router'\n\nimport { getParameterError, shouldBeObject, temporarilyNotSupport } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n// 导航栏\n/**\n * 展示导航栏 loading 状态\n*/\nexport function showNavigationBarLoading (options: Taro.showNavigationBarLoading.Option = {}) {\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'showNavigationBarLoading', success, fail, complete })\n setNavigationBarLoading(true)\n return handle.success()\n}\n\nexport function setNavigationBarTitle (options?: Taro.setNavigationBarTitle.Option) {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `setNavigationBarTitle:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { title, success, fail, complete } = options as Exclude<typeof options, undefined>\n const handle = new MethodHandler({ name: 'setNavigationBarTitle', success, fail, complete })\n\n if (!title || typeof title !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'title',\n correct: 'String',\n wrong: title\n })\n })\n }\n\n setTitle(title)\n\n return handle.success()\n}\n\n/**\n * 设置页面导航条颜色\n */\nexport const setNavigationBarColor: typeof Taro.setNavigationBarColor = (options) => {\n const { backgroundColor, frontColor, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'setNavigationBarColor', success, fail, complete })\n const meta = document.createElement('meta')\n meta.setAttribute('name', 'theme-color')\n meta.setAttribute('content', backgroundColor)\n document.head.appendChild(meta)\n setNavigationBarStyle({ frontColor, backgroundColor })\n return handle.success()\n}\n\n/**\n * 隐藏导航栏 loading 状态\n*/\nexport function hideNavigationBarLoading (options: Taro.hideNavigationBarLoading.Option = {}) {\n const { success, fail, complete } = options\n const handle = new MethodHandler({ name: 'hideNavigationBarLoading', success, fail, complete })\n setNavigationBarLoading(false)\n return handle.success()\n}\n\nexport const hideHomeButton = /* @__PURE__ */ temporarilyNotSupport('hideHomeButton')\n","import Taro from '@tarojs/api'\r\n\r\nimport { MethodHandler } from '../../utils/handler'\r\n/**\r\n * 开始下拉刷新。调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。\r\n */\r\nexport const startPullDownRefresh: typeof Taro.startPullDownRefresh = function ({ success, fail, complete } = {}) {\r\n const handle = new MethodHandler({ name: 'startPullDownRefresh', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n Taro.eventCenter.trigger('__taroStartPullDownRefresh', {\r\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\r\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * 停止当前页面下拉刷新。\r\n */\r\nexport const stopPullDownRefresh: typeof Taro.stopPullDownRefresh = function ({ success, fail, complete } = {}) {\r\n const handle = new MethodHandler({ name: 'stopPullDownRefresh', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n Taro.eventCenter.trigger('__taroStopPullDownRefresh', {\r\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\r\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\r\n })\r\n })\r\n}\r\n","import Taro from '@tarojs/api'\r\nimport { Current } from '@tarojs/runtime'\r\n\r\nimport { easeInOut, getTimingFunc } from '../../../utils'\r\nimport { MethodHandler } from '../../../utils/handler'\r\n\r\nlet timer: ReturnType<typeof setTimeout>\r\nconst FRAME_DURATION = 17\r\n\r\n/**\r\n * 将页面滚动到目标位置\r\n */\r\nexport const pageScrollTo: typeof Taro.pageScrollTo = ({ scrollTop, selector = '', offsetTop = 0, duration = 300, success, fail, complete }) => {\r\n let scrollFunc\r\n const handle = new MethodHandler({ name: 'pageScrollTo', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n try {\r\n if (scrollTop === undefined && !selector) {\r\n return handle.fail({\r\n errMsg: 'scrollTop\" 或 \"selector\" 需要其之一'\r\n }, { resolve, reject })\r\n }\r\n\r\n const usingWindowScroll = (window as any).__taroAppConfig?.usingWindowScroll\r\n const id = Current.page?.path?.replace(/([^a-z0-9\\u00a0-\\uffff_-])/ig, '\\\\$1')\r\n const el: HTMLDivElement | null = (id\r\n ? document.querySelector(`.taro_page#${id}`)\r\n : document.querySelector('.taro_page') ||\r\n document.querySelector('.taro_router')) as HTMLDivElement\r\n\r\n if (!scrollFunc) {\r\n if (usingWindowScroll) {\r\n scrollFunc = pos => {\r\n if (pos === undefined) {\r\n return window.pageYOffset\r\n } else {\r\n window.scrollTo(0, pos)\r\n }\r\n }\r\n } else {\r\n scrollFunc = pos => {\r\n if (pos === undefined) {\r\n return el.scrollTop\r\n } else {\r\n el.scrollTop = pos\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (scrollTop && selector) {\r\n console.warn('\"scrollTop\" 或 \"selector\" 建议只设一个值,全部设置会忽略selector')\r\n }\r\n const from = scrollFunc()\r\n let to: number\r\n if (selector) {\r\n const el = document.querySelector(selector) as HTMLElement\r\n to = (el?.offsetTop || 0) + offsetTop\r\n } else {\r\n to = typeof scrollTop === 'number' ? scrollTop : 0\r\n }\r\n const delta = to - from\r\n\r\n const frameCnt = duration / FRAME_DURATION\r\n const easeFunc = getTimingFunc(easeInOut, frameCnt)\r\n\r\n const scroll = (frame = 0) => {\r\n const dest = from + delta * easeFunc(frame)\r\n scrollFunc(dest)\r\n if (frame < frameCnt) {\r\n timer && clearTimeout(timer)\r\n timer = setTimeout(() => {\r\n scroll(frame + 1)\r\n }, FRAME_DURATION)\r\n } else {\r\n return handle.success({}, { resolve, reject })\r\n }\r\n }\r\n scroll()\r\n } catch (e) {\r\n return handle.fail({\r\n errMsg: e.message\r\n }, { resolve, reject })\r\n }\r\n })\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// 置顶\nexport const setTopBarText = /* @__PURE__ */ temporarilyNotSupport('setTopBarText')\n","import Taro, { AppConfig } from '@tarojs/api'\n\nimport { getParameterError, isValidColor, shouldBeObject } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\nlet tabConf\n\nexport function initTabBarApis (config: AppConfig = {}) {\n tabConf = config.tabBar\n}\n\n/**\n * 显示 tabBar 某一项的右上角的红点\n */\nexport const showTabBarRedDot: typeof Taro.showTabBarRedDot = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `showTabBarRedDot:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n index,\n success,\n fail,\n complete\n } = options\n const handle = new MethodHandler({ name: 'showTabBarRedDot', success, fail, complete })\n\n if (typeof index !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'index',\n correct: 'Number',\n wrong: index\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroShowTabBarRedDotHandler', {\n index,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 显示 tabBar\n */\nexport const showTabBar: typeof Taro.showTabBar = (options = {}) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `showTabBar:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { animation, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'showTabBar', success, fail, complete })\n\n if (options.hasOwnProperty('animation') && typeof animation !== 'boolean') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'animation',\n correct: 'Boolean',\n wrong: animation\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroShowTabBar', {\n animation,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 动态设置 tabBar 的整体样式\n */\nexport const setTabBarStyle: typeof Taro.setTabBarStyle = (options = {}) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `setTabBarStyle:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { color, selectedColor, backgroundColor, borderStyle, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'setTabBarStyle', success, fail, complete })\n\n let errMsg\n if (color && !isValidColor(color)) {\n errMsg = 'color'\n } else if (selectedColor && !isValidColor(selectedColor)) {\n errMsg = 'selectedColor'\n } else if (backgroundColor && !isValidColor(backgroundColor)) {\n errMsg = 'backgroundColor'\n } else if (borderStyle && !/^(black|white)$/.test(borderStyle)) {\n errMsg = 'borderStyle'\n }\n\n if (errMsg) {\n return handle.fail({ errMsg: `invalid ${errMsg}` })\n }\n\n if (!tabConf) {\n return handle.fail()\n }\n\n const obj: Taro.setTabBarStyle.Option = {}\n if (color) obj.color = color\n if (selectedColor) obj.selectedColor = selectedColor\n if (backgroundColor) obj.backgroundColor = backgroundColor\n if (borderStyle) obj.borderStyle = borderStyle\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroSetTabBarStyle', {\n color,\n selectedColor,\n backgroundColor,\n borderStyle,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 动态设置 tabBar 某一项的内容\n */\nexport const setTabBarItem: typeof Taro.setTabBarItem = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `setTabBarItem:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n index,\n text,\n iconPath,\n selectedIconPath,\n success,\n fail,\n complete\n } = options\n const handle = new MethodHandler({ name: 'setTabBarItem', success, fail, complete })\n\n if (typeof index !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'index',\n correct: 'Number',\n wrong: index\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroSetTabBarItem', {\n index,\n text,\n iconPath,\n selectedIconPath,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 为 tabBar 某一项的右上角添加文本\n */\nexport const setTabBarBadge: typeof Taro.setTabBarBadge = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `setTabBarBadge:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { index, text, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'setTabBarBadge', success, fail, complete })\n\n if (typeof index !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'index',\n correct: 'Number',\n wrong: index\n })\n })\n }\n\n if (typeof text !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'text',\n correct: 'String',\n wrong: text\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroSetTabBarBadge', {\n index,\n text: text.replace(/[\\u0391-\\uFFE5]/g, 'aa').length > 4 ? '...' : text,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 移除 tabBar 某一项右上角的文本\n */\nexport const removeTabBarBadge: typeof Taro.removeTabBarBadge = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `removeTabBarBadge:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { index, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'removeTabBarBadge', success, fail, complete })\n\n if (typeof index !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'index',\n correct: 'Number',\n wrong: index\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroRemoveTabBarBadge', {\n index,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 隐藏 tabBar 某一项的右上角的红点\n */\nexport const hideTabBarRedDot: typeof Taro.hideTabBarRedDot = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `hideTabBarRedDot:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { index, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'hideTabBarRedDot', success, fail, complete })\n\n if (typeof index !== 'number') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'index',\n correct: 'Number',\n wrong: index\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroHideTabBarRedDotHandler', {\n index,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n\n/**\n * 隐藏 tabBar\n */\nexport const hideTabBar: typeof Taro.hideTabBar = (options = {}) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `hideTabBar:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { animation, success, fail, complete } = options\n const handle = new MethodHandler({ name: 'hideTabBar', success, fail, complete })\n\n if (options.hasOwnProperty('animation') && typeof animation !== 'boolean') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'animation',\n correct: 'Boolean',\n wrong: animation\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n Taro.eventCenter.trigger('__taroHideTabBar', {\n animation,\n successHandler: (res = {}) => handle.success(res, { resolve, reject }),\n errorHandler: (res = {}) => handle.fail(res, { resolve, reject })\n })\n })\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { temporarilyNotSupport } from '../../utils'\r\nimport { CallbackManager } from '../../utils/handler'\r\n\r\nconst callbackManager = new CallbackManager()\r\n\r\nconst resizeListener = () => {\r\n callbackManager.trigger({\r\n windowWidth: window.screen.width,\r\n windowHeight: window.screen.height\r\n })\r\n}\r\n\r\n/**\r\n * 设置窗口大小,该接口仅适用于 PC 平台,使用细则请参见指南\r\n */\r\nexport const setWindowSize = /* @__PURE__ */ temporarilyNotSupport('setWindowSize')\r\n\r\n/**\r\n * 监听窗口尺寸变化事件\r\n */\r\nexport const onWindowResize: typeof Taro.onWindowResize = callback => {\r\n callbackManager.add(callback)\r\n if (callbackManager.count() === 1) {\r\n window.addEventListener('resize', resizeListener)\r\n }\r\n}\r\n\r\n/**\r\n * 取消监听窗口尺寸变化事件\r\n */\r\nexport const offWindowResize: typeof Taro.offWindowResize = callback => {\r\n callbackManager.remove(callback)\r\n if (callbackManager.count() === 0) {\r\n window.removeEventListener('resize', resizeListener)\r\n }\r\n}\r\n\r\nexport const checkIsPictureInPictureActive = /* @__PURE__ */ temporarilyNotSupport('checkIsPictureInPictureActive')\r\n","import Taro from '@tarojs/api'\nimport { isMobile } from 'is-mobile'\n\nimport { showActionSheet } from '../../../api/ui'\nimport { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n/**\n * 拍摄或从手机相册中选择图片或视频。\n */\nexport const chooseMedia = async function (\n options: Taro.chooseMedia.Option,\n methodName = 'chooseMedia',\n): Promise<Taro.chooseMedia.SuccessCallbackResult> {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n count = 9,\n mediaId = 'taroChooseMedia',\n mediaType = ['image', 'video'],\n sourceType = ['album', 'camera'],\n // sizeType = ['original', 'compressed'], // TODO 考虑通过 ffmpeg 支持压缩\n // maxDuration = 10, // TODO 考虑通过 ffmpeg 剪裁视频\n camera = 'back',\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n const withImage = mediaType.length < 1 || mediaType.indexOf('image') > -1\n const withVideo = mediaType.length < 1 || mediaType.indexOf('video') > -1\n const res: Partial<Taro.chooseMedia.SuccessCallbackResult> = {\n tempFiles: [],\n type: withImage && withVideo ? 'mix' : withImage ? 'image' : 'video',\n }\n\n if (count && typeof count !== 'number') {\n res.errMsg = getParameterError({\n para: 'count',\n correct: 'Number',\n wrong: count\n })\n return handle.fail(res)\n }\n\n let el = document.getElementById(mediaId)\n if (!el) {\n el = document.createElement('input')\n el.setAttribute('type', 'file')\n el.setAttribute('id', mediaId)\n el.setAttribute('style', 'position: fixed; top: -4000px; left: -3000px; z-index: -300;')\n }\n\n if (count > 1) {\n el.setAttribute('multiple', 'multiple')\n } else {\n el.removeAttribute('multiple')\n }\n\n // Note: Input 仅在移动端支持 capture 属性,可以使用 getUserMedia 替代(暂不考虑)\n if (isMobile()) {\n if (sourceType.length > 1 || sourceType.length < 1) {\n try {\n const { tapIndex } = await showActionSheet({\n itemList: ['拍摄', '从相册选择'],\n }, methodName)\n sourceType.splice(0, sourceType.length, tapIndex === 0 ? 'camera' : 'album')\n } catch (e) {\n return handle.fail({\n errMsg: e.errMsg?.replace('^.*:fail ', '')\n })\n }\n }\n }\n if (sourceType.includes('camera')) {\n el.setAttribute('capture', camera === 'front' ? 'user' : 'environment')\n } else {\n el.removeAttribute('capture')\n }\n\n if (res.type === 'image') {\n el.setAttribute('accept', 'image/*')\n } else if (res.type === 'video') {\n el.setAttribute('accept', 'video/*')\n } else {\n el.setAttribute('accept', 'image/*, video/*')\n }\n return new Promise<Taro.chooseMedia.SuccessCallbackResult>((resolve, reject) => {\n if (!el) return\n document.body.appendChild(el)\n el.onchange = async function (e) {\n const target = e.target as HTMLInputElement\n if (target) {\n const files = target.files || []\n const arr = [...files]\n await Promise.all(\n arr.map(async item => {\n try {\n res.tempFiles?.push(await loadMedia(item))\n } catch (error) {\n console.error(error)\n }\n })\n )\n }\n handle.success(res, { resolve, reject })\n target.value = ''\n }\n el.onabort = () => handle.fail({ errMsg: 'abort' }, { resolve, reject })\n el.oncancel = () => handle.fail({ errMsg: 'cancel' }, { resolve, reject })\n el.onerror = e => handle.fail({ errMsg: e.toString() }, { resolve, reject })\n el.click()\n }).finally(() => {\n if (!el) return\n document.body.removeChild(el)\n })\n\n function loadMedia (file: File): Promise<Taro.chooseMedia.ChooseMedia> {\n const dataUrl = URL.createObjectURL(file)\n const res = {\n tempFilePath: dataUrl,\n size: file.size,\n duration: 0,\n height: 0,\n width: 0,\n thumbTempFilePath: '',\n fileType: file.type,\n originalFileObj: file\n }\n\n if (/^video\\//.test(res.fileType)) {\n // Video\n const video = document.createElement('video')\n const reader = new FileReader()\n video.crossOrigin = 'Anonymous'\n video.preload = 'metadata'\n video.src = res.tempFilePath\n\n return new Promise((resolve, reject) => {\n // 对齐旧版本实现\n reader.onload = (event) => {\n res.tempFilePath = event.target?.result as string\n }\n reader.onerror = e => reject(e)\n reader.readAsDataURL(res.originalFileObj)\n\n video.onloadedmetadata = () => {\n res.duration = video.duration\n res.height = video.videoHeight\n res.width = video.videoWidth\n }\n video.oncanplay = () => {\n res.thumbTempFilePath = getThumbTempFilePath(video, res.height, res.width, 0.8)\n resolve(res)\n }\n video.onerror = e => reject(e)\n })\n } else {\n // Image\n const img = new Image()\n /** 允许图片和 canvas 跨源使用\n * https://developer.mozilla.org/zh-CN/docs/Web/HTML/CORS_enabled_image\n */\n img.crossOrigin = 'Anonymous'\n img.src = res.tempFilePath\n\n return new Promise((resolve, reject) => {\n if (img.complete) {\n res.height = img.height\n res.width = img.width\n res.thumbTempFilePath = getThumbTempFilePath(img, res.height, res.width, 0.8)\n resolve(res)\n } else {\n img.onload = () => {\n res.height = img.height\n res.width = img.width\n res.thumbTempFilePath = getThumbTempFilePath(img, res.height, res.width, 0.8)\n resolve(res)\n }\n img.onerror = e => reject(e)\n }\n })\n }\n }\n\n function getThumbTempFilePath (el: CanvasImageSource, height = 0, width = height, quality = 0.8) {\n const max = 256\n const canvas = document.createElement('canvas')\n if (height > max || width > max) {\n const radio = height / width\n if (radio > 1) {\n height = max\n width = height / radio\n } else {\n width = max\n height = width * radio\n }\n }\n canvas.height = height\n canvas.width = width\n\n const ctx = canvas.getContext('2d')\n ctx?.drawImage(el, 0, 0, canvas.width, canvas.height)\n return canvas.toDataURL('image/jpeg', quality)\n }\n}\n","import Taro from '@tarojs/api'\n\nimport { shouldBeObject } from '../../../utils'\nimport { chooseMedia } from '../video/chooseMedia'\n\n/**\n * 从本地相册选择图片或使用相机拍照。\n * @deprecated 请使用 chooseMedia 接口\n */\nexport const chooseImage: typeof Taro.chooseImage = function (options) {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `chooseImage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n let camera = 'back'\n const {\n sourceType = ['album', 'camera'],\n success,\n complete,\n fail,\n ...args\n } = options\n if (sourceType.includes('camera') && sourceType.indexOf('user') > -1) {\n camera = 'front'\n }\n\n function parseRes (res: Taro.chooseMedia.SuccessCallbackResult): Taro.chooseImage.SuccessCallbackResult {\n const { tempFiles = [], errMsg } = res\n return {\n tempFilePaths: tempFiles.map(item => item.tempFilePath),\n tempFiles: tempFiles.map(item => ({\n path: item.tempFilePath,\n size: item.size,\n type: item.fileType,\n originalFileObj: item.originalFileObj,\n })),\n errMsg,\n }\n }\n\n return chooseMedia({\n mediaId: 'taroChooseImage',\n ...args,\n sourceType: sourceType as Taro.chooseMedia.Option['sourceType'],\n mediaType: ['image'],\n camera,\n success: (res) => {\n const param = parseRes(res)\n success?.(param)\n complete?.(param)\n },\n fail: (err) => {\n fail?.(err)\n complete?.(err)\n },\n }, 'chooseImage').then(parseRes)\n}\n","import Taro from '@tarojs/api'\r\n\r\nimport { permanentlyNotSupport, temporarilyNotSupport } from '../../../utils'\r\n\r\n// 图片\r\nexport * from './saveImageToPhotosAlbum'\r\nexport const previewMedia: typeof Taro.previewMedia = /* @__PURE__ */ temporarilyNotSupport('previewMedia')\r\n\r\nexport * from './getImageInfo'\r\nexport * from './previewImage'\r\n\r\nexport const compressImage = /* @__PURE__ */ temporarilyNotSupport('compressImage')\r\nexport const chooseMessageFile = /* @__PURE__ */ permanentlyNotSupport('chooseMessageFile')\r\n\r\nexport * from './chooseImage'\r\n\r\nexport const editImage = /* @__PURE__ */ temporarilyNotSupport('editImage')\r\nexport const cropImage = /* @__PURE__ */ temporarilyNotSupport('cropImage')\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// 实时音视频\nexport const createLivePusherContext = /* @__PURE__ */ temporarilyNotSupport('createLivePusherContext')\nexport const createLivePlayerContext = /* @__PURE__ */ temporarilyNotSupport('createLivePlayerContext')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 地图\nexport const createMapContext = /* @__PURE__ */ temporarilyNotSupport('createMapContext')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 画面录制器\nexport const createMediaRecorder = /* @__PURE__ */ temporarilyNotSupport('createMediaRecorder')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 录音\nexport const stopRecord = /* @__PURE__ */ temporarilyNotSupport('stopRecord')\nexport const startRecord = /* @__PURE__ */ temporarilyNotSupport('startRecord')\nexport const getRecorderManager = /* @__PURE__ */ temporarilyNotSupport('getRecorderManager')\n","import Taro from '@tarojs/api'\n\nimport { createDownload, getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\nexport const saveVideoToPhotosAlbum: typeof Taro.saveVideoToPhotosAlbum = (options) => {\n const methodName = 'saveVideoToPhotosAlbum'\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n filePath,\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n if (typeof filePath !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'filePath',\n correct: 'String',\n wrong: filePath\n })\n })\n }\n\n createDownload(filePath)\n return handle.success()\n}\n","import 'whatwg-fetch'\n\nimport Taro from '@tarojs/api'\n\nimport { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\nexport const getVideoInfo: typeof Taro.getVideoInfo = async function (options) {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `getVideoInfo:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n const res: Partial<Taro.getVideoInfo.SuccessCallbackResult> = {\n orientation: 'up',\n type: '',\n duration: 0,\n size: 0,\n height: 0,\n width: 0,\n fps: 30,\n bitrate: 0,\n }\n const {\n src,\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: 'getVideoInfo', success, fail, complete })\n\n if (typeof src !== 'string') {\n res.errMsg = getParameterError({\n para: 'src',\n correct: 'String',\n wrong: src\n })\n return handle.fail(res)\n }\n\n const video = document.createElement('video')\n video.crossOrigin = 'Anonymous'\n video.preload = 'metadata'\n video.src = src\n\n return new Promise((resolve, reject) => {\n video.onloadedmetadata = () => {\n res.duration = video.duration\n res.height = video.videoHeight\n res.width = video.videoWidth\n\n fetch(src)\n .then(async e => {\n const blob = await e.blob()\n res.type = blob.type\n res.size = blob.size\n res.bitrate = blob.size / video.duration\n\n handle.success(res, { resolve, reject })\n })\n .catch(e => {\n handle.fail({\n errMsg: e.toString()\n }, { resolve, reject })\n })\n }\n })\n}\n","import Taro from '@tarojs/api'\n\nimport { shouldBeObject } from '../../../utils'\nimport { chooseMedia } from './chooseMedia'\n\n/**\n * 拍摄视频或从手机相册中选视频。\n * @deprecated 请使用 chooseMedia 接口\n */\nexport const chooseVideo: typeof Taro.chooseVideo = (options) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `chooseVideo:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n sourceType = ['album', 'camera'],\n // TODO 考虑通过 ffmpeg 支持压缩\n // compressed = true,\n maxDuration = 60,\n camera = 'back',\n success,\n fail,\n complete,\n } = options\n\n function parseRes (res: Taro.chooseMedia.SuccessCallbackResult): Taro.chooseVideo.SuccessCallbackResult {\n const { tempFiles = [], errMsg } = res\n const [video] = tempFiles\n return { ...video, errMsg }\n }\n\n return chooseMedia({\n mediaId: 'taroChooseVideo',\n sourceType,\n mediaType: ['video'],\n maxDuration,\n camera,\n success: (res) => {\n const param = parseRes(res)\n success?.(param)\n complete?.(param)\n },\n fail: (err) => {\n fail?.(err)\n complete?.(err)\n },\n }, 'chooseVideo').then(parseRes)\n}\n","import Taro from '@tarojs/api'\n\nimport { findDOM, temporarilyNotSupport } from '../../../utils'\n\n// 视频\nexport * from './saveVideoToPhotosAlbum'\n\nexport const openVideoEditor = /* @__PURE__ */ temporarilyNotSupport('openVideoEditor')\n\nexport * from './getVideoInfo'\n\n/**\n * 创建 video 上下文 VideoContext 对象。\n */\nexport const createVideoContext: typeof Taro.createVideoContext = (id, inst) => {\n const el = findDOM(inst) as HTMLVideoElement\n // TODO HTMLVideoElement to VideoContext\n return el?.querySelector(`taro-video-core[id=${id}]`) as unknown as Taro.VideoContext\n}\n\nexport const compressVideo = /* @__PURE__ */ temporarilyNotSupport('compressVideo')\n\nexport * from './chooseMedia'\nexport * from './chooseVideo'\n","import { temporarilyNotSupport } from '../../utils'\n\n// 视频解码器\nexport const createVideoDecoder = /* @__PURE__ */ temporarilyNotSupport('createVideoDecoder')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 音视频合成\nexport const createMediaContainer = /* @__PURE__ */ temporarilyNotSupport('createMediaContainer')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 实时语音\nexport const updateVoIPChatMuteConfig = /* @__PURE__ */ temporarilyNotSupport('updateVoIPChatMuteConfig')\nexport const subscribeVoIPVideoMembers = /* @__PURE__ */ temporarilyNotSupport('subscribeVoIPVideoMembers')\nexport const setEnable1v1Chat = /* @__PURE__ */ temporarilyNotSupport('setEnable1v1Chat')\nexport const onVoIPVideoMembersChanged = /* @__PURE__ */ temporarilyNotSupport('onVoIPVideoMembersChanged')\nexport const onVoIPChatStateChanged = /* @__PURE__ */ temporarilyNotSupport('onVoIPChatStateChanged')\nexport const onVoIPChatSpeakersChanged = /* @__PURE__ */ temporarilyNotSupport('onVoIPChatSpeakersChanged')\nexport const onVoIPChatMembersChanged = /* @__PURE__ */ temporarilyNotSupport('onVoIPChatMembersChanged')\nexport const onVoIPChatInterrupted = /* @__PURE__ */ temporarilyNotSupport('onVoIPChatInterrupted')\nexport const offVoIPChatSpeakersChanged = /* @__PURE__ */ temporarilyNotSupport('offVoIPChatSpeakersChanged')\nexport const offVoIPVideoMembersChanged = /* @__PURE__ */ temporarilyNotSupport('offVoIPVideoMembersChanged')\nexport const offVoIPChatStateChanged = /* @__PURE__ */ temporarilyNotSupport('offVoIPChatStateChanged')\nexport const offVoIPChatMembersChanged = /* @__PURE__ */ temporarilyNotSupport('offVoIPChatMembersChanged')\nexport const offVoIPChatInterrupted = /* @__PURE__ */ temporarilyNotSupport('offVoIPChatInterrupted')\nexport const joinVoIPChat = /* @__PURE__ */ temporarilyNotSupport('joinVoIPChat')\nexport const join1v1Chat = /* @__PURE__ */ temporarilyNotSupport('join1v1Chat')\nexport const exitVoIPChat = /* @__PURE__ */ temporarilyNotSupport('exitVoIPChat')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 跳转\nexport const openEmbeddedMiniProgram = /* @__PURE__ */ temporarilyNotSupport('openEmbeddedMiniProgram')\nexport const navigateToMiniProgram = /* @__PURE__ */ temporarilyNotSupport('navigateToMiniProgram')\nexport const navigateBackMiniProgram = /* @__PURE__ */ temporarilyNotSupport('navigateBackMiniProgram')\nexport const exitMiniProgram = /* @__PURE__ */ temporarilyNotSupport('exitMiniProgram')\nexport const openBusinessView = /* @__PURE__ */ temporarilyNotSupport('openBusinessView')\n","/**\r\n * HTTP Response Header 事件回调函数的参数\r\n * @typedef {Object} HeadersReceivedParam\r\n * @property {Object} header 开发者服务器返回的 HTTP Response Header\r\n */\r\n\r\n/**\r\n * HTTP Response Header 事件的回调函数\r\n * @callback HeadersReceivedCallback\r\n * @param {HeadersReceivedParam} res 参数\r\n */\r\n\r\n/**\r\n * 进度变化回调函数的参数\r\n * @typedef {Object} ProgressUpdateParam\r\n * @property {number} progress 进度百分比\r\n * @property {number} [totalBytesWritten] 已经下载的数据长度,单位 Bytes\r\n * @property {number} [totalBytesSent] 已经上传的数据长度,单位 Bytes\r\n * @property {number} [totalBytesExpectedToWrite] 预期需要下载的数据总长度,单位 Bytes\r\n * @property {number} [totalBytesExpectedToSend] 预期需要上传的数据总长度,单位 Bytes\r\n */\r\n\r\n/**\r\n * 进度变化事件的回调函数\r\n * @callback ProgressUpdateCallback\r\n * @param {ProgressUpdateParam} res 参数\r\n */\r\n\r\nexport const NETWORK_TIMEOUT = 60000\r\n\r\nexport const XHR_STATS = {\r\n UNSENT: 0, // Client has been created. open() not called yet.\r\n OPENED: 1, // open() has been called.\r\n HEADERS_RECEIVED: 2, // send() has been called, and headers and status are available.\r\n LOADING: 3, // Downloading; responseText holds partial data.\r\n DONE: 4 // The operation is complete.\r\n}\r\n\r\n/**\r\n * 设置xhr的header\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} header\r\n */\r\nexport const setHeader = (xhr, header) => {\r\n let headerKey\r\n for (headerKey in header) {\r\n xhr.setRequestHeader(headerKey, header[headerKey])\r\n }\r\n}\r\n\r\n/**\r\n * 将 blob url 转化为文件\r\n * @param {string} url 要转换的 blob url\r\n * @returns {Promise<File>}\r\n */\r\nexport const convertObjectUrlToBlob = url => {\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest()\r\n xhr.open('GET', url, true)\r\n xhr.responseType = 'blob'\r\n xhr.withCredentials = true\r\n xhr.onload = function () {\r\n if (this.status === 200) {\r\n resolve(this.response)\r\n } else {\r\n /* eslint-disable prefer-promise-reject-errors */\r\n reject({ status: this.status })\r\n }\r\n }\r\n xhr.send()\r\n })\r\n}\r\n","import Taro from '@tarojs/api'\r\n\r\nimport { CallbackManager } from '../../utils/handler'\r\nimport { NETWORK_TIMEOUT, setHeader, XHR_STATS } from './utils'\r\n\r\nconst createDownloadTask = ({ url, header, withCredentials = true, timeout, success, error }): Taro.DownloadTask => {\r\n let timeoutInter: ReturnType<typeof setTimeout>\r\n const apiName = 'downloadFile'\r\n const xhr = new XMLHttpRequest()\r\n const callbackManager = {\r\n headersReceived: new CallbackManager(),\r\n progressUpdate: new CallbackManager()\r\n }\r\n\r\n xhr.open('GET', url, true)\r\n xhr.withCredentials = !!withCredentials\r\n xhr.responseType = 'blob'\r\n setHeader(xhr, header)\r\n\r\n xhr.onprogress = e => {\r\n const { loaded, total } = e\r\n callbackManager.progressUpdate.trigger({\r\n progress: Math.round(loaded / total * 100),\r\n totalBytesWritten: loaded,\r\n totalBytesExpectedToWrite: total\r\n })\r\n }\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState !== XHR_STATS.HEADERS_RECEIVED) return\r\n callbackManager.headersReceived.trigger({\r\n header: xhr.getAllResponseHeaders()\r\n })\r\n }\r\n\r\n xhr.onload = () => {\r\n const response = xhr.response\r\n const status = xhr.status\r\n success({\r\n errMsg: `${apiName}:ok`,\r\n statusCode: status,\r\n tempFilePath: window.URL.createObjectURL(response)\r\n })\r\n }\r\n\r\n xhr.onabort = () => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail abort`\r\n })\r\n }\r\n\r\n xhr.onerror = (e: ProgressEvent<EventTarget> & { message?: string }) => {\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n }\r\n\r\n /**\r\n * 中断任务\r\n */\r\n const abort = () => {\r\n xhr.abort()\r\n }\r\n\r\n const send = () => {\r\n xhr.send()\r\n timeoutInter = setTimeout(() => {\r\n xhr.onabort = null\r\n xhr.onload = null\r\n xhr.onprogress = null\r\n xhr.onreadystatechange = null\r\n xhr.onerror = null\r\n abort()\r\n error({\r\n errMsg: `${apiName}:fail timeout`\r\n })\r\n }, timeout || NETWORK_TIMEOUT)\r\n }\r\n\r\n send()\r\n\r\n /**\r\n * 监听 HTTP Response Header 事件。会比请求完成事件更早\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onHeadersReceived = callbackManager.headersReceived.add\r\n /**\r\n * 取消监听 HTTP Response Header 事件\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offHeadersReceived = callbackManager.headersReceived.remove\r\n\r\n /**\r\n * 监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onProgressUpdate = callbackManager.progressUpdate.add\r\n /**\r\n * 取消监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offProgressUpdate = callbackManager.progressUpdate.remove\r\n\r\n return {\r\n abort,\r\n onHeadersReceived,\r\n offHeadersReceived,\r\n onProgressUpdate,\r\n offProgressUpdate\r\n }\r\n}\r\n\r\n/**\r\n * 下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径。使用前请注意阅读相关说明。\r\n * 注意:请在服务端响应的 header 中指定合理的 Content-Type 字段,以保证客户端正确处理文件类型。\r\n */\r\nexport const downloadFile: typeof Taro.downloadFile = ({ url, header, withCredentials, timeout, success, fail, complete }) => {\r\n let task!: Taro.DownloadTask\r\n const result: ReturnType<typeof Taro.downloadFile> = new Promise((resolve, reject) => {\r\n task = createDownloadTask({\r\n url,\r\n header,\r\n withCredentials,\r\n timeout,\r\n success: res => {\r\n success && success(res)\r\n complete && complete(res)\r\n resolve(res)\r\n },\r\n error: res => {\r\n fail && fail(res)\r\n complete && complete(res)\r\n reject(res)\r\n }\r\n })\r\n }) as any\r\n\r\n result.headersReceive = task.onHeadersReceived.bind(task)\r\n result.progress = task.onProgressUpdate.bind(task)\r\n\r\n const properties = {}\r\n Object.keys(task).forEach(key => {\r\n properties[key] = {\r\n get () {\r\n return typeof task[key] === 'function' ? task[key].bind(task) : task[key]\r\n }\r\n }\r\n })\r\n return Object.defineProperties(result, properties)\r\n}\r\n","import { temporarilyNotSupport } from '../../utils'\n\n// mDNS\nexport const stopLocalServiceDiscovery = /* @__PURE__ */ temporarilyNotSupport('stopLocalServiceDiscovery')\nexport const startLocalServiceDiscovery = /* @__PURE__ */ temporarilyNotSupport('startLocalServiceDiscovery')\nexport const onLocalServiceResolveFail = /* @__PURE__ */ temporarilyNotSupport('onLocalServiceResolveFail')\nexport const onLocalServiceLost = /* @__PURE__ */ temporarilyNotSupport('onLocalServiceLost')\nexport const onLocalServiceFound = /* @__PURE__ */ temporarilyNotSupport('onLocalServiceFound')\nexport const onLocalServiceDiscoveryStop = /* @__PURE__ */ temporarilyNotSupport('onLocalServiceDiscoveryStop')\nexport const offLocalServiceResolveFail = /* @__PURE__ */ temporarilyNotSupport('offLocalServiceResolveFail')\nexport const offLocalServiceLost = /* @__PURE__ */ temporarilyNotSupport('offLocalServiceLost')\nexport const offLocalServiceFound = /* @__PURE__ */ temporarilyNotSupport('offLocalServiceFound')\nexport const offLocalServiceDiscoveryStop = /* @__PURE__ */ temporarilyNotSupport('offLocalServiceDiscoveryStop')\n","import 'whatwg-fetch'\nimport 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'\n\nimport Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\nimport jsonpRetry from 'jsonp-retry'\n\nimport { serializeParams } from '../../../utils'\nimport { NETWORK_TIMEOUT } from '../utils'\n\ninterface RequestTask<T> extends Promise<T> {\n abort?: (cb?: any) => void\n}\n\n// @ts-ignore\nconst { Link } = Taro\n\nfunction generateRequestUrlWithParams (url = '', params?: unknown) {\n params = typeof params === 'string' ? params : serializeParams(params)\n if (params) {\n url += (~url.indexOf('?') ? '&' : '?') + params\n }\n url = url.replace('?&', '?')\n return url\n}\n\nfunction _request (options: Partial<Taro.request.Option> = {}) {\n const { success, complete, fail } = options\n const params: RequestInit = {}\n const res: any = {}\n let {\n cache = 'default',\n credentials,\n data, dataType,\n header = {},\n jsonp,\n method = 'GET',\n mode,\n responseType,\n signal,\n timeout,\n url = '',\n ...opts\n } = options\n if (typeof timeout !== 'number') {\n timeout = NETWORK_TIMEOUT\n }\n Object.assign(params, opts)\n if (jsonp) {\n // @ts-ignore\n params.params = data\n params.cache = opts.jsonpCache\n // @ts-ignore\n params.timeout = timeout\n if (typeof jsonp === 'string') {\n // @ts-ignore\n params.name = jsonp\n }\n // Note: https://github.com/luckyadam/jsonp-retry\n return jsonpRetry(url, params)\n .then(data => {\n res.statusCode = 200\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n return Promise.reject(err)\n })\n }\n params.method = method\n const methodUpper = params.method.toUpperCase()\n params.cache = cache\n if (methodUpper === 'GET' || methodUpper === 'HEAD') {\n url = generateRequestUrlWithParams(url, data)\n } else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(data)) >= 0) {\n const keyOfContentType = Object.keys(header).find(item => item.toLowerCase() === 'content-type')\n if (!keyOfContentType) {\n header['Content-Type'] = 'application/json'\n }\n const contentType = header[keyOfContentType || 'Content-Type']\n\n if (contentType.indexOf('application/json') >= 0) {\n params.body = JSON.stringify(data)\n } else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {\n params.body = serializeParams(data)\n } else {\n params.body = data\n }\n } else {\n params.body = data\n }\n if (header) {\n params.headers = header\n }\n if (mode) {\n params.mode = mode\n }\n let timeoutTimer: ReturnType<typeof setTimeout> | null = null\n let controller: AbortController | null = null\n if (signal) {\n params.signal = signal\n } else {\n controller = new window.AbortController()\n params.signal = controller.signal\n timeoutTimer = setTimeout(function () {\n if (controller) controller.abort()\n }, timeout)\n }\n params.credentials = credentials\n const p: RequestTask<any> = fetch(url, params)\n .then(response => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n if (controller) {\n controller = null\n }\n if (!response) {\n const errorResponse = { ok: false }\n throw errorResponse\n }\n res.statusCode = response.status\n res.header = {}\n for (const key of response.headers.keys()) {\n res.header[key] = response.headers.get(key)\n }\n if (responseType === 'arraybuffer') {\n return response.arrayBuffer()\n }\n if (res.statusCode !== 204) {\n if (dataType === 'json' || typeof dataType === 'undefined') {\n return response.json().catch(() => {\n return null\n })\n }\n }\n if (responseType === 'text' || dataType === 'text') {\n return response.text()\n }\n return Promise.resolve(null)\n })\n .then(data => {\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n if (controller) {\n controller = null\n }\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n err.statusCode = res.statusCode\n err.errMsg = err.message\n return Promise.reject(err)\n })\n if (!p.abort && controller) {\n p.abort = cb => {\n if (controller) {\n cb && cb()\n controller.abort()\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n }\n }\n }\n return p\n}\n\nfunction taroInterceptor (chain) {\n return _request(chain.requestParams)\n}\n\nconst link = new Link(taroInterceptor)\n\nexport const request = (<T extends Partial<Taro.request.Option> = TaroGeneral.IAnyObject>(...args: [string | T, T]) => {\n const [url = '', options = {} as T] = args\n if (typeof url === 'string') {\n options.url = url\n } else {\n Object.assign(options, url)\n }\n return link.request(options)\n}) as typeof Taro.request\nexport const addInterceptor = link.addInterceptor.bind(link)\nexport const cleanInterceptors = link.cleanInterceptors.bind(link)\n","import { temporarilyNotSupport } from '../../utils'\n\n// TCP 通信\nexport const createTCPSocket = /* @__PURE__ */ temporarilyNotSupport('createTCPSocket')\n","import { temporarilyNotSupport } from '../../utils'\n\n// UDP 通信\nexport const createUDPSocket = /* @__PURE__ */ temporarilyNotSupport('createUDPSocket')\n","import Taro from '@tarojs/api'\r\n\r\nimport { CallbackManager } from '../../utils/handler'\r\nimport {\r\n convertObjectUrlToBlob,\r\n NETWORK_TIMEOUT,\r\n setHeader,\r\n XHR_STATS\r\n} from './utils'\r\n\r\nconst createUploadTask = ({ url, filePath, formData = {}, name, header, timeout, fileName, withCredentials = true, success, error }): Taro.UploadTask => {\r\n let timeoutInter: ReturnType<typeof setTimeout>\r\n let formKey\r\n const apiName = 'uploadFile'\r\n const xhr = new XMLHttpRequest()\r\n const form = new FormData()\r\n const callbackManager = {\r\n headersReceived: new CallbackManager(),\r\n progressUpdate: new CallbackManager()\r\n }\r\n\r\n xhr.open('POST', url)\r\n xhr.withCredentials = !!withCredentials\r\n setHeader(xhr, header)\r\n\r\n for (formKey in formData) {\r\n form.append(formKey, formData[formKey])\r\n }\r\n\r\n xhr.upload.onprogress = e => {\r\n const { loaded, total } = e\r\n callbackManager.progressUpdate.trigger({\r\n progress: Math.round(loaded / total * 100),\r\n totalBytesSent: loaded,\r\n totalBytesExpectedToSend: total\r\n })\r\n }\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState !== XHR_STATS.HEADERS_RECEIVED) return\r\n callbackManager.headersReceived.trigger({\r\n header: xhr.getAllResponseHeaders()\r\n })\r\n }\r\n\r\n xhr.onload = () => {\r\n const status = xhr.status\r\n clearTimeout(timeoutInter)\r\n success({\r\n errMsg: `${apiName}:ok`,\r\n statusCode: status,\r\n data: xhr.responseText || xhr.response\r\n })\r\n }\r\n\r\n xhr.onabort = () => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail abort`\r\n })\r\n }\r\n\r\n xhr.onerror = (e: ProgressEvent<EventTarget> & { message?: string }) => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n }\r\n\r\n /**\r\n * 中断任务\r\n */\r\n const abort = () => {\r\n clearTimeout(timeoutInter)\r\n xhr.abort()\r\n }\r\n\r\n const send = () => {\r\n xhr.send(form)\r\n timeoutInter = setTimeout(() => {\r\n xhr.onabort = null\r\n xhr.onload = null\r\n xhr.upload.onprogress = null\r\n xhr.onreadystatechange = null\r\n xhr.onerror = null\r\n abort()\r\n error({\r\n errMsg: `${apiName}:fail timeout`\r\n })\r\n }, timeout || NETWORK_TIMEOUT)\r\n }\r\n\r\n convertObjectUrlToBlob(filePath)\r\n .then((fileObj: string | (Blob & { name?: string })) => {\r\n if (!fileName) {\r\n fileName = typeof fileObj !== 'string' && fileObj.name\r\n }\r\n form.append(name, fileObj as Blob, fileName || `file-${Date.now()}`)\r\n send()\r\n })\r\n .catch(e => {\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n })\r\n\r\n /**\r\n * 监听 HTTP Response Header 事件。会比请求完成事件更早\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onHeadersReceived = callbackManager.headersReceived.add\r\n /**\r\n * 取消监听 HTTP Response Header 事件\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offHeadersReceived = callbackManager.headersReceived.remove\r\n\r\n /**\r\n * 监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onProgressUpdate = callbackManager.progressUpdate.add\r\n /**\r\n * 取消监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offProgressUpdate = callbackManager.progressUpdate.remove\r\n\r\n return {\r\n abort,\r\n onHeadersReceived,\r\n offHeadersReceived,\r\n onProgressUpdate,\r\n offProgressUpdate\r\n }\r\n}\r\n\r\n/**\r\n * 将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data。使用前请注意阅读相关说明。\r\n */\r\nexport const uploadFile: typeof Taro.uploadFile = ({ url, filePath, name, header, formData, timeout, fileName, withCredentials, success, fail, complete }) => {\r\n let task!: Taro.UploadTask\r\n const result: ReturnType<typeof Taro.uploadFile> = new Promise((resolve, reject) => {\r\n task = createUploadTask({\r\n url,\r\n header,\r\n name,\r\n filePath,\r\n formData,\r\n timeout,\r\n fileName,\r\n withCredentials,\r\n success: res => {\r\n success && success(res)\r\n complete && complete(res)\r\n resolve(res)\r\n },\r\n error: res => {\r\n fail && fail(res)\r\n complete && complete(res)\r\n reject(res)\r\n }\r\n })\r\n }) as any\r\n\r\n result.headersReceive = task.onHeadersReceived.bind(task)\r\n result.progress = task.onProgressUpdate.bind(task)\r\n\r\n const properties = {}\r\n Object.keys(task).forEach(key => {\r\n properties[key] = {\r\n get () {\r\n return typeof task[key] === 'function' ? task[key].bind(task) : task[key]\r\n }\r\n }\r\n })\r\n return Object.defineProperties(result, properties)\r\n}\r\n","import Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\n\nexport class SocketTask {\n ws: WebSocket\n CONNECTING: number\n OPEN: number\n CLOSING: number\n CLOSED: number\n closeDetail: { code: any, reason: any }\n _destroyWhenClose?: () => void\n\n constructor (url, protocols) {\n if (protocols && protocols.length) {\n this.ws = new WebSocket(url, protocols)\n } else {\n this.ws = new WebSocket(url)\n }\n this.CONNECTING = 0\n this.OPEN = 1\n this.CLOSING = 2\n this.CLOSED = 3\n }\n\n get readyState () {\n return this.ws.readyState\n }\n\n send (opts: Partial<Taro.SocketTask.SendOption> = {}) {\n if (typeof opts !== 'object' || !opts) opts = {}\n\n const { data = '', success, fail, complete } = opts\n\n if (this.readyState !== 1) {\n const res = { errMsg: 'SocketTask.send:fail SocketTask.readState is not OPEN' }\n console.error(res.errMsg)\n isFunction(fail) && fail(res)\n isFunction(complete) && complete(res)\n return Promise.reject(res)\n }\n\n this.ws.send(data)\n\n const res = { errMsg: 'sendSocketMessage:ok' }\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return Promise.resolve(res)\n }\n\n close (opts: Partial<Taro.SocketTask.CloseOption> = {}) {\n if (typeof opts !== 'object' || !opts) opts = {}\n\n const {\n code = 1000,\n reason = 'server complete,close',\n success,\n complete\n } = opts\n\n this.closeDetail = { code, reason }\n // 主动断开时需要重置链接数\n this._destroyWhenClose && this._destroyWhenClose()\n this.ws.close()\n\n const res = { errMsg: 'closeSocket:ok' }\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return Promise.resolve(res)\n }\n\n onOpen (func) {\n this.ws.onopen = func\n }\n\n onMessage (func) {\n this.ws.onmessage = func\n }\n\n onClose (func) {\n this.ws.onclose = () => {\n // 若服务器方断掉也需要重置链接数\n this._destroyWhenClose && this._destroyWhenClose()\n func(this.closeDetail || { code: 1006, reason: 'abnormal closure' })\n }\n }\n\n onError (func) {\n this.ws.onerror = func\n }\n}\n","import { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\nimport { SocketTask } from './socketTask'\n\nlet socketTasks: SocketTask[] = []\nlet socketsCounter = 1\n\nexport function sendSocketMessage () {\n console.warn('Deprecated.Please use socketTask.send instead.')\n}\n\nexport function onSocketOpen () {\n console.warn('Deprecated.Please use socketTask.onOpen instead.')\n}\n\nexport function onSocketMessage () {\n console.warn('Deprecated.Please use socketTask.onMessage instead.')\n}\n\nexport function onSocketError () {\n console.warn('Deprecated.Please use socketTask.onError instead.')\n}\n\nexport function onSocketClose () {\n console.warn('Deprecated.Please use socketTask.onClose instead.')\n}\n\nexport function connectSocket (options?: Taro.connectSocket.Option) {\n const name = 'connectSocket'\n\n return new Promise((resolve, reject) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${name}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return reject(res)\n }\n const { url, protocols, success, fail, complete } = options as Exclude<typeof options, undefined>\n const handle = new MethodHandler<{\n socketTaskId?: number\n }>({ name, success, fail, complete })\n\n // options.url must be String\n if (typeof url !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'url',\n correct: 'String',\n wrong: url\n })\n }, { resolve, reject })\n }\n\n // options.url must be invalid\n if (!url.startsWith('ws://') && !url.startsWith('wss://')) {\n return handle.fail({\n errMsg: `request:fail invalid url \"${url}\"`\n }, { resolve, reject })\n }\n\n // protocols must be array\n const _protocols = Array.isArray(protocols) ? protocols : null\n\n // 2 connection at most\n if (socketTasks.length >= 5) {\n return handle.fail({\n errMsg: '同时最多发起 5 个 socket 请求,更多请参考文档。'\n }, { resolve, reject })\n }\n\n const task = new SocketTask(url, _protocols)\n task._destroyWhenClose = function () {\n socketTasks = socketTasks.filter(socketTask => socketTask !== this)\n }\n socketTasks.push(task)\n\n handle.success({\n socketTaskId: socketsCounter++\n })\n\n return resolve(task)\n })\n}\n\nexport function closeSocket () {\n console.warn('Deprecated.Please use socketTask.close instead.')\n}\n\nexport { SocketTask }\n","import { temporarilyNotSupport } from '../../utils'\n\n// 帐号信息\nexport const getAccountInfoSync = /* @__PURE__ */ temporarilyNotSupport('getAccountInfoSync')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 收货地址\nexport const chooseAddress = /* @__PURE__ */ temporarilyNotSupport('chooseAddress')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 授权\nexport const authorizeForMiniProgram = /* @__PURE__ */ temporarilyNotSupport('authorizeForMiniProgram')\nexport const authorize = /* @__PURE__ */ temporarilyNotSupport('authorize')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 卡券\nexport const openCard = /* @__PURE__ */ temporarilyNotSupport('openCard')\nexport const addCard = /* @__PURE__ */ temporarilyNotSupport('addCard')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 视频号\nexport const reserveChannelsLive = /* @__PURE__ */ temporarilyNotSupport('reserveChannelsLive')\nexport const openChannelsUserProfile = /* @__PURE__ */ temporarilyNotSupport('openChannelsUserProfile')\nexport const openChannelsLive = /* @__PURE__ */ temporarilyNotSupport('openChannelsLive')\nexport const openChannelsEvent = /* @__PURE__ */ temporarilyNotSupport('openChannelsEvent')\nexport const openChannelsActivity = /* @__PURE__ */ temporarilyNotSupport('openChannelsActivity')\nexport const getChannelsShareKey = /* @__PURE__ */ temporarilyNotSupport('getChannelsShareKey')\nexport const getChannelsLiveNoticeInfo = /* @__PURE__ */ temporarilyNotSupport('getChannelsLiveNoticeInfo')\nexport const getChannelsLiveInfo = /* @__PURE__ */ temporarilyNotSupport('getChannelsLiveInfo')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 微信客服\nexport const openCustomerServiceChat = /* @__PURE__ */ temporarilyNotSupport('openCustomerServiceChat')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 设备(组)音视频通话\nexport const requestDeviceVoIP = /* @__PURE__ */ temporarilyNotSupport('requestDeviceVoIP')\nexport const getDeviceVoIPList = /* @__PURE__ */ temporarilyNotSupport('getDeviceVoIPList')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 过往接口\nexport const checkIsSupportFacialRecognition = /* @__PURE__ */ temporarilyNotSupport('checkIsSupportFacialRecognition')\nexport const startFacialRecognitionVerify = /* @__PURE__ */ temporarilyNotSupport('startFacialRecognitionVerify')\nexport const startFacialRecognitionVerifyAndUploadVideo = /* @__PURE__ */ temporarilyNotSupport('startFacialRecognitionVerifyAndUploadVideo')\nexport const faceVerifyForPay = /* @__PURE__ */ temporarilyNotSupport('faceVerifyForPay')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 收藏\nexport const addVideoToFavorites = /* @__PURE__ */ temporarilyNotSupport('addVideoToFavorites')\nexport const addFileToFavorites = /* @__PURE__ */ temporarilyNotSupport('addFileToFavorites')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 微信群\nexport const getGroupEnterInfo = /* @__PURE__ */ temporarilyNotSupport('getGroupEnterInfo')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 发票\nexport const chooseInvoiceTitle = /* @__PURE__ */ temporarilyNotSupport('chooseInvoiceTitle')\nexport const chooseInvoice = /* @__PURE__ */ temporarilyNotSupport('chooseInvoice')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 车牌\nexport const chooseLicensePlate = /* @__PURE__ */ temporarilyNotSupport('chooseLicensePlate')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 帐号信息\nexport const pluginLogin = /* @__PURE__ */ temporarilyNotSupport('pluginLogin')\nexport const login = /* @__PURE__ */ temporarilyNotSupport('login')\nexport const checkSession = /* @__PURE__ */ temporarilyNotSupport('checkSession')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 我的小程序\nexport const checkIsAddedToMyMiniProgram = /* @__PURE__ */ temporarilyNotSupport('checkIsAddedToMyMiniProgram')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 隐私信息授权\nexport const requirePrivacyAuthorize = /* @__PURE__ */ temporarilyNotSupport('requirePrivacyAuthorize')\nexport const openPrivacyContract = /* @__PURE__ */ temporarilyNotSupport('openPrivacyContract')\nexport const onNeedPrivacyAuthorization = /* @__PURE__ */ temporarilyNotSupport('onNeedPrivacyAuthorization')\nexport const getPrivacySetting = /* @__PURE__ */ temporarilyNotSupport('getPrivacySetting')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 微信红包\nexport const showRedPackage = /* @__PURE__ */ temporarilyNotSupport('showRedPackage')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 设置\nexport const openSetting = /* @__PURE__ */ temporarilyNotSupport('openSetting')\nexport const getSetting = /* @__PURE__ */ temporarilyNotSupport('getSetting')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 生物认证\nexport const startSoterAuthentication = /* @__PURE__ */ temporarilyNotSupport('startSoterAuthentication')\nexport const checkIsSupportSoterAuthentication = /* @__PURE__ */ temporarilyNotSupport('checkIsSupportSoterAuthentication')\nexport const checkIsSoterEnrolledInDevice = /* @__PURE__ */ temporarilyNotSupport('checkIsSoterEnrolledInDevice')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 订阅消息\nexport const requestSubscribeMessage = /* @__PURE__ */ temporarilyNotSupport('requestSubscribeMessage')\n// 订阅设备消息\nexport const requestSubscribeDeviceMessage = /* @__PURE__ */ temporarilyNotSupport('requestSubscribeDeviceMessage')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 用户信息\nexport const getUserProfile = /* @__PURE__ */ temporarilyNotSupport('getUserProfile')\nexport const getUserInfo = /* @__PURE__ */ temporarilyNotSupport('getUserInfo')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 微信运动\nexport const shareToWeRun = /* @__PURE__ */ temporarilyNotSupport('shareToWeRun')\nexport const getWeRunData = /* @__PURE__ */ temporarilyNotSupport('getWeRunData')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 支付\nexport const requestPayment = /* @__PURE__ */ temporarilyNotSupport('requestPayment')\nexport const requestPluginPayment = /* @__PURE__ */ temporarilyNotSupport('requestPluginPayment')\nexport const requestOrderPayment = /* @__PURE__ */ temporarilyNotSupport('requestOrderPayment')\n","import { temporarilyNotSupport } from '../../utils'\n\n// 打开手Q说说发表界面\nexport const openQzonePublish = /* @__PURE__ */ temporarilyNotSupport('openQzonePublish')\nexport const getQQRunData = /* @__PURE__ */ temporarilyNotSupport('getQQRunData')\nexport const setOfficialDress = /* @__PURE__ */ temporarilyNotSupport('setOfficialDress')\nexport const setCustomDress = /* @__PURE__ */ temporarilyNotSupport('setCustomDress')\nexport const updateQQApp = /* @__PURE__ */ temporarilyNotSupport('updateQQApp')\nexport const addRecentColorSign = /* @__PURE__ */ temporarilyNotSupport('addRecentColorSign')\nexport const getGuildInfo = /* @__PURE__ */ temporarilyNotSupport('getGuildInfo')\nexport const applyAddToMyApps = /* @__PURE__ */ temporarilyNotSupport('applyAddToMyApps')\nexport const isAddedToMyApps = /* @__PURE__ */ temporarilyNotSupport('isAddedToMyApps')\n","// 路由\nexport {\n navigateBack,\n navigateTo,\n redirectTo,\n reLaunch,\n switchTab\n} from '@tarojs/router'\n\n// FIXME 方法导出类型未对齐,后续修复\n","import { permanentlyNotSupport, temporarilyNotSupport } from '../../utils'\n\n// 转发\n\n/** 更新转发属性 */\nexport const updateShareMenu = /* @__PURE__ */ temporarilyNotSupport('updateShareMenu')\n\n/** 显示当前页面的转发按钮 */\nexport const showShareMenu = /* @__PURE__ */ temporarilyNotSupport('showShareMenu')\n\n/** 打开分享图片弹窗,可以将图片发送给朋友、收藏或下载 */\nexport const showShareImageMenu = /* @__PURE__ */ temporarilyNotSupport('showShareImageMenu')\n\n/** 转发视频到聊天 */\nexport const shareVideoMessage = /* @__PURE__ */ temporarilyNotSupport('shareVideoMessage')\n\n/** 转发文件到聊天 */\nexport const shareFileMessage = /* @__PURE__ */ temporarilyNotSupport('shareFileMessage')\n\n/** 监听用户点击右上角菜单的「复制链接」按钮时触发的事件 */\nexport const onCopyUrl = /* @__PURE__ */ temporarilyNotSupport('onCopyUrl')\n\n/** 移除用户点击右上角菜单的「复制链接」按钮时触发的事件的监听函数 */\nexport const offCopyUrl = /* @__PURE__ */ temporarilyNotSupport('offCopyUrl')\n\n/** 隐藏当前页面的转发按钮 */\nexport const hideShareMenu = /* @__PURE__ */ temporarilyNotSupport('hideShareMenu')\n\n/** 获取转发详细信息 */\nexport const getShareInfo = /* @__PURE__ */ temporarilyNotSupport('getShareInfo')\n\n/** 验证私密消息。 */\nexport const authPrivateMessage = /* @__PURE__ */ permanentlyNotSupport('authPrivateMessage')\n","import { temporarilyNotSupport } from '../../utils'\n\nexport const setPageInfo = /* @__PURE__ */ temporarilyNotSupport('setPageInfo')\n\n// 百度小程序 AI 相关\nexport const ocrIdCard = /* @__PURE__ */ temporarilyNotSupport('ocrIdCard')\nexport const ocrBankCard = /* @__PURE__ */ temporarilyNotSupport('ocrBankCard')\nexport const ocrDrivingLicense = /* @__PURE__ */ temporarilyNotSupport('ocrDrivingLicense')\nexport const ocrVehicleLicense = /* @__PURE__ */ temporarilyNotSupport('ocrVehicleLicense')\nexport const textReview = /* @__PURE__ */ temporarilyNotSupport('textReview')\nexport const textToAudio = /* @__PURE__ */ temporarilyNotSupport('textToAudio')\nexport const imageAudit = /* @__PURE__ */ temporarilyNotSupport('imageAudit')\nexport const advancedGeneralIdentify = /* @__PURE__ */ temporarilyNotSupport('advancedGeneralIdentify')\nexport const objectDetectIdentify = /* @__PURE__ */ temporarilyNotSupport('objectDetectIdentify')\nexport const carClassify = /* @__PURE__ */ temporarilyNotSupport('carClassify')\nexport const dishClassify = /* @__PURE__ */ temporarilyNotSupport('dishClassify')\nexport const logoClassify = /* @__PURE__ */ temporarilyNotSupport('logoClassify')\nexport const animalClassify = /* @__PURE__ */ temporarilyNotSupport('animalClassify')\nexport const plantClassify = /* @__PURE__ */ temporarilyNotSupport('plantClassify')\n\n// 用户信息\nexport const getSwanId = /* @__PURE__ */ temporarilyNotSupport('getSwanId')\n\n// 百度收银台支付\nexport const requestPolymerPayment = /* @__PURE__ */ temporarilyNotSupport('requestPolymerPayment')\n\n// 打开小程序\nexport const navigateToSmartGameProgram = /* @__PURE__ */ temporarilyNotSupport('navigateToSmartGameProgram')\nexport const navigateToSmartProgram = /* @__PURE__ */ temporarilyNotSupport('navigateToSmartProgram')\nexport const navigateBackSmartProgram = /* @__PURE__ */ temporarilyNotSupport('navigateBackSmartProgram')\nexport const preloadSubPackage = /* @__PURE__ */ temporarilyNotSupport('preloadSubPackage')\n","import { temporarilyNotSupport } from '../../utils'\n\n// Worker\nexport const createWorker = /* @__PURE__ */ temporarilyNotSupport('createWorker')\n","import Taro from '@tarojs/api'\n\nimport { findDOM } from '../../utils'\n\ntype TElement = Document | HTMLElement | Element\n\ntype TListener = {\n element: Element\n callback: Taro.IntersectionObserver.ObserveCallback\n}\n\nexport class TaroH5IntersectionObserver implements Taro.IntersectionObserver {\n // 自定义组件实例\n private _component: TaroGeneral.IAnyObject\n // 选项\n private _options = {\n thresholds: [0],\n initialRatio: 0,\n observeAll: false\n }\n\n // Observer实例\n private _observerInst: IntersectionObserver\n // 监控中的选择器\n private _listeners: TListener[] = []\n // 参照区域\n private _root: Element | null\n // 用来扩展(或收缩)参照节点布局区域的边界\n private _rootMargin: Taro.IntersectionObserver.RelativeToViewportMargins = {}\n // 是否已初始化\n private _isInited = false\n\n // selector 的容器节点\n protected get container () {\n const container: TElement = (\n this._component !== null\n ? (findDOM(this._component) as HTMLElement || document)\n : document\n )\n return container\n }\n\n constructor (component: TaroGeneral.IAnyObject, options: Taro.createIntersectionObserver.Option = {}) {\n this._component = component\n Object.assign(this._options, options)\n }\n\n private createInst () {\n // 去除原本的实例\n this.disconnect()\n\n const { left = 0, top = 0, bottom = 0, right = 0 } = this._rootMargin\n return new IntersectionObserver(entries => {\n entries.forEach(entry => {\n const _callback = this._getCallbackByElement(entry.target)\n const result = {\n boundingClientRect: entry.boundingClientRect,\n intersectionRatio: entry.intersectionRatio,\n intersectionRect: entry.intersectionRect,\n relativeRect: entry.rootBounds || { left: 0, right: 0, top: 0, bottom: 0 },\n // 使用时间戳而不是entry.time,跟微信小程序一致\n time: Date.now(),\n }\n // web端会默认首次触发\n if (!this._isInited && this._options.initialRatio <= Math.min.apply(Math, this._options.thresholds)) {\n // 初始的相交比例,如果调用时检测到的相交比例与这个值不相等且达到阈值,则会触发一次监听器的回调函数。\n return\n }\n _callback && _callback.call(this, result)\n })\n this._isInited = true\n }, {\n root: this._root,\n rootMargin: [`${top}px`, `${right}px`, `${bottom}px`, `${left}px`].join(' '),\n threshold: this._options.thresholds\n })\n }\n\n public disconnect (): void {\n if (this._observerInst) {\n let listener\n while ((listener = this._listeners.pop())) {\n this._observerInst.unobserve(listener.element)\n }\n this._observerInst.disconnect()\n }\n }\n\n public observe (targetSelector: string, callback: Taro.IntersectionObserver.ObserveCallback): void {\n // 同wx小程序效果一致,每个实例监听一个Selector\n if (this._listeners.length) return\n // 监听前没有设置关联的节点\n if (!this._observerInst) {\n console.warn('Intersection observer will be ignored because no relative nodes are found.')\n return\n }\n\n const nodeList = this._options.observeAll\n ? this.container.querySelectorAll(targetSelector)\n : [this.container.querySelector(targetSelector)]\n\n Taro.nextTick(() => {\n nodeList.forEach(element => {\n if (!element) return\n this._observerInst.observe(element)\n this._listeners.push({ element, callback })\n })\n })\n }\n\n public relativeTo (selector: string, margins?: Taro.IntersectionObserver.RelativeToMargins | undefined): Taro.IntersectionObserver {\n // 已设置observe监听后,重新关联节点\n if (this._listeners.length) {\n console.error('Relative nodes cannot be added after \"observe\" call in IntersectionObserver')\n return this\n }\n this._root = this.container.querySelector(selector) || null\n if (margins) {\n this._rootMargin = margins\n }\n this._observerInst = this.createInst()\n return this\n }\n\n public relativeToViewport (margins?: Taro.IntersectionObserver.RelativeToViewportMargins | undefined): Taro.IntersectionObserver {\n return this.relativeTo('.taro_page', margins)\n }\n\n private _getCallbackByElement (element: Element) {\n const listener = this._listeners.find(listener => listener.element === element)\n return listener ? listener.callback : null\n }\n}\n","\nimport Taro from '@tarojs/api'\nimport { isFunction, toKebabCase } from '@tarojs/shared'\n\nfunction generateMediaQueryStr (descriptor: Taro.MediaQueryObserver.descriptor) {\n const mediaQueryArr: string[] = []\n const descriptorMenu = ['width', 'minWidth', 'maxWidth', 'height', 'minHeight', 'maxHeight', 'orientation']\n for (const item of descriptorMenu) {\n if (\n item !== 'orientation' &&\n descriptor[item] &&\n Number(descriptor[item]) >= 0\n ) {\n mediaQueryArr.push(`(${(toKebabCase(item))}: ${Number(descriptor[item])}px)`)\n }\n if (item === 'orientation' && descriptor[item]) {\n mediaQueryArr.push(`(${toKebabCase(item)}: ${descriptor[item]})`)\n }\n }\n return mediaQueryArr.join(' and ')\n}\n\nexport class MediaQueryObserver implements Taro.MediaQueryObserver {\n private _mediaQueryObserver: MediaQueryList\n private _listener: (ev: MediaQueryListEvent) => void\n\n // 监听页面媒体查询变化情况\n public observe (descriptor: Taro.MediaQueryObserver.descriptor, callback: Taro.MediaQueryObserver.observeCallback): void {\n if (isFunction(callback)) {\n // 创建媒体查询对象\n this._mediaQueryObserver = window.matchMedia(generateMediaQueryStr(descriptor))\n // 监听器\n this._listener = (ev: MediaQueryListEvent) => {\n callback({ matches: ev.matches })\n }\n callback({ matches: this._mediaQueryObserver.matches })\n // 兼容旧浏览器中 MediaQueryList 尚未继承于 EventTarget 导致不存在 'addEventListener'\n if ('addEventListener' in this._mediaQueryObserver) {\n this._mediaQueryObserver.addEventListener('change', this._listener)\n } else {\n // @ts-ignore\n this._mediaQueryObserver.addListener(this._listener)\n }\n }\n }\n\n // 停止监听,销毁媒体查询对象\n public disconnect (): void {\n if (this._mediaQueryObserver && this._listener) {\n // 兼容旧浏览器中 MediaQueryList 尚未继承于 EventTarget 导致不存在 'removeEventListener'\n if ('removeEventListener' in this._mediaQueryObserver) {\n this._mediaQueryObserver.removeEventListener('change', this._listener)\n } else {\n // @ts-ignore\n this._mediaQueryObserver.removeListener(this._listener)\n }\n }\n }\n}\n","import Taro from '@tarojs/api'\n\nimport { SelectorQuery } from './selectorQuery'\n\nexport class NodesRef implements Taro.NodesRef {\n _component?: TaroGeneral.IAnyObject\n _selector: string\n _selectorQuery: SelectorQuery\n _single: boolean\n\n constructor (selector: string, querySelectorQuery: SelectorQuery, single: boolean) {\n this._component = querySelectorQuery._component\n this._selector = selector\n this._selectorQuery = querySelectorQuery\n this._single = single\n }\n\n context (cb) {\n const { _selector, _component, _single, _selectorQuery } = this\n _selectorQuery._push(_selector, _component, _single, { context: !0 }, cb)\n return _selectorQuery\n }\n\n node (cb) {\n const { _selector, _component, _single, _selectorQuery } = this\n _selectorQuery._push(_selector, _component, _single, { nodeCanvasType: !0, node: !0 }, cb)\n return _selectorQuery\n }\n\n boundingClientRect (cb) {\n const { _selector, _component, _single, _selectorQuery } = this\n _selectorQuery._push(_selector, _component, _single, { id: !0, dataset: !0, rect: !0, size: !0 }, cb)\n return _selectorQuery\n }\n\n scrollOffset (cb) {\n const { _selector, _component, _single, _selectorQuery } = this\n _selectorQuery._push(_selector, _component, _single, { id: !0, dataset: !0, scrollOffset: !0 }, cb)\n return _selectorQuery\n }\n\n fields (fields, cb) {\n const { _selector, _component, _single, _selectorQuery } = this\n const { id, dataset, rect, size, scrollOffset, context, node, properties = [], computedStyle = [] } = fields\n\n _selectorQuery._push(\n _selector,\n _component,\n _single,\n {\n id,\n dataset,\n rect,\n size,\n scrollOffset,\n context,\n node,\n nodeCanvasType: node,\n properties,\n computedStyle,\n },\n cb\n )\n\n return _selectorQuery\n }\n}\n","import Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\n\nimport { findDOM } from '../../utils'\nimport { CanvasContext } from '../canvas/CanvasContext'\nimport { NodesRef } from './nodesRef'\n\ntype TElement = Document | HTMLElement | Element\n\ninterface ISelectorQueryQueue {\n component: TaroGeneral.IAnyObject\n selector: string\n single: boolean\n fields\n}\n\ntype TSelectorQueryQueueCallback = (res: ISelectorQueryQueue) => void\n\nfunction filter (fields, dom?: HTMLElement, selector?: string) {\n if (!dom) return null\n\n const isViewport = selector === '.taro_page'\n const { id, dataset, rect, size, scrollOffset, properties = [], computedStyle = [], nodeCanvasType, node, context } = fields\n const res: any = {}\n\n if (nodeCanvasType && node) {\n const tagName = dom.tagName\n res.node = {\n id: dom.id,\n $taroElement: dom\n }\n if (/^taro-canvas-core/i.test(tagName)) {\n const type = (dom as any).type! || ''\n res.nodeCanvasType = type\n const canvas = dom.getElementsByTagName('canvas')[0]\n if (/^(2d|webgl)/i.test(type) && canvas) {\n res.node = canvas\n } else {\n res.node = null\n }\n } else if (/^taro-scroll-view-core/i.test(tagName)) {\n // Note https://developers.weixin.qq.com/miniprogram/dev/api/ui/scroll/ScrollViewContext.html\n res.nodeCanvasType = ''\n res.node = dom\n dom.scrollTo = (dom as any).mpScrollToMethod\n dom.scrollIntoView = (dom as any).mpScrollIntoViewMethod\n } else {\n res.nodeCanvasType = ''\n res.node = dom\n }\n return res\n }\n if (context) {\n const tagName = dom.tagName\n if (/^taro-video-core/i.test(tagName)) {\n // TODO HTMLVideoElement to VideoContext\n return { context: dom as unknown as Taro.VideoContext }\n } else if (/^taro-canvas-core/i.test(tagName)) {\n const type = (dom as any).type! || '2d'\n const canvas = dom?.querySelector('canvas') as HTMLCanvasElement\n const ctx = canvas?.getContext(type) as CanvasRenderingContext2D\n return { context: new CanvasContext(canvas, ctx) }\n } else if (/^taro-live-player-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 LivePlayerContext')\n } else if (/^taro-editor-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 EditorContext')\n } else if (/^taro-map-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 MapContext')\n }\n return\n }\n if (id) res.id = dom.id\n if (dataset) res.dataset = Object.assign({}, dom.dataset)\n if (rect || size) {\n const { left, right, top, bottom, width, height } = dom.getBoundingClientRect()\n if (rect) {\n if (!isViewport) {\n res.left = left\n res.right = right\n res.top = top\n res.bottom = bottom\n } else {\n res.left = 0\n res.right = 0\n res.top = 0\n res.bottom = 0\n }\n }\n if (size) {\n if (!isViewport) {\n res.width = width\n res.height = height\n } else {\n res.width = dom.clientWidth\n res.height = dom.clientHeight\n }\n }\n }\n if (scrollOffset) {\n res.scrollLeft = dom.scrollLeft\n res.scrollTop = dom.scrollTop\n }\n if (properties.length) {\n properties.forEach(prop => {\n const attr = dom.getAttribute(prop)\n if (attr) res[prop] = attr\n })\n }\n if (computedStyle.length) {\n const styles = window.getComputedStyle(dom)\n computedStyle.forEach(key => {\n const value = styles.getPropertyValue(key) || styles[key]\n if (value) res[key] = value\n })\n }\n\n return res\n}\n\n/**\n * WXML节点信息API\n * @return {Object} SelectorQuery 对象实例\n */\nfunction queryBat (queue: ISelectorQueryQueue[], cb: (...args: any[]) => any): void {\n const result: any[] = []\n\n queue.forEach(item => {\n const { selector, single, fields, component } = item\n // selector 的容器节点\n /* eslint-disable */\n const container: TElement = (\n component !== null ?\n (findDOM(component) as HTMLElement || document) :\n document\n )\n /* eslint-enable */\n\n // 特殊处理 ---- 选自己\n let selectSelf = false\n if (container !== document) {\n const $nodeList = container.parentNode?.querySelectorAll(selector)\n if ($nodeList) {\n for (let i = 0, len = $nodeList.length; i < len; ++i) {\n if (container === $nodeList[i]) {\n selectSelf = true\n break\n }\n }\n }\n }\n\n if (single) {\n const el = selectSelf === true ? container : container.querySelector(selector)\n result.push(filter(fields, el as HTMLElement, selector))\n } else {\n const $children = container.querySelectorAll(selector)\n const children: TElement[] = []\n selectSelf === true && children.push(container)\n for (let i = 0, len = $children.length; i < len; ++i) {\n children.push($children[i])\n }\n result.push(children.map(dom => filter(fields, dom as HTMLElement)))\n }\n })\n cb(result)\n}\n\nexport class SelectorQuery implements Taro.SelectorQuery {\n _defaultWebviewId: string | null\n _webviewId: string | null\n _queue: ISelectorQueryQueue[]\n _queueCb: (TSelectorQueryQueueCallback | null)[]\n _component?: TaroGeneral.IAnyObject\n\n constructor () {\n this._defaultWebviewId = null\n this._webviewId = null\n this._queue = []\n this._queueCb = []\n this._component\n }\n\n in (component: TaroGeneral.IAnyObject) {\n this._component = component\n return this\n }\n\n select (selector: string) {\n // 小程序里跨自定义组件的后代选择器 '>>>' 在 h5 替换为普通后代选择器 '>'\n if (typeof selector === 'string') selector = selector.replace('>>>', '>')\n return new NodesRef(selector, this, true)\n }\n\n selectAll (selector: string) {\n // 小程序里跨自定义组件的后代选择器 '>>>' 在 h5 替换为普通后代选择器 '>'\n if (typeof selector === 'string') selector = selector.replace('>>>', '>')\n return new NodesRef(selector, this, false)\n }\n\n selectViewport () {\n return new NodesRef('.taro_page', this, true)\n }\n\n exec (cb) {\n Taro.nextTick(() => {\n queryBat(this._queue, res => {\n const _queueCb = this._queueCb\n res.forEach((item, index) => {\n const cb = _queueCb[index]\n isFunction(cb) && cb.call(this, item)\n })\n isFunction(cb) && cb.call(this, res)\n })\n })\n return this as unknown as Taro.NodesRef\n }\n\n _push (selector: string, component, single, fields, callback: TSelectorQueryQueueCallback | null = null) {\n this._queue.push({\n component,\n selector,\n single,\n fields\n })\n this._queueCb.push(callback)\n }\n}\n","import Taro from '@tarojs/api'\n\nimport { TaroH5IntersectionObserver } from './IntersectionObserver'\nimport { MediaQueryObserver } from './MediaQueryObserver'\nimport { NodesRef } from './nodesRef'\nimport { SelectorQuery } from './selectorQuery'\n\nexport const createSelectorQuery: typeof Taro.createSelectorQuery = () => {\n return new SelectorQuery()\n}\n\nexport const createIntersectionObserver: typeof Taro.createIntersectionObserver = (component, options) => {\n return new TaroH5IntersectionObserver(component, options)\n}\n\nexport const createMediaQueryObserver: typeof Taro.createMediaQueryObserver = () => {\n return new MediaQueryObserver()\n}\n\nexport { NodesRef }\n","import Taro from '@tarojs/api'\nimport { history } from '@tarojs/router'\nimport { isFunction, PLATFORM_TYPE } from '@tarojs/shared'\n\nimport { getApp, getCurrentInstance, getCurrentPages, navigateBack, navigateTo, nextTick, redirectTo, reLaunch, switchTab } from '../api'\nimport { permanentlyNotSupport } from '../utils'\n\nconst {\n Behavior,\n getEnv,\n ENV_TYPE,\n Link,\n interceptors,\n interceptorify,\n Current,\n options,\n eventCenter,\n Events,\n preload\n} = Taro as any\n\nconst taro: typeof Taro = {\n // @ts-ignore\n Behavior,\n getEnv,\n ENV_TYPE,\n Link,\n interceptors,\n interceptorify,\n Current,\n getCurrentInstance,\n options,\n nextTick,\n eventCenter,\n Events,\n preload,\n history,\n navigateBack,\n navigateTo,\n reLaunch,\n redirectTo,\n getCurrentPages,\n switchTab\n}\n\nconst requirePlugin = /* @__PURE__ */ permanentlyNotSupport('requirePlugin')\n\nfunction getConfig (): Record<string, any> {\n if (this?.pxTransformConfig) return this.pxTransformConfig\n return ((taro as any).config ||= {})\n}\n\nconst defaultDesignWidth = 750\nconst defaultDesignRatio: TaroGeneral.TDeviceRatio = {\n 640: 2.34 / 2,\n 750: 1,\n 828: 1.81 / 2\n}\nconst defaultBaseFontSize = 20\nconst defaultUnitPrecision = 5\nconst defaultTargetUnit = 'rem'\n\nconst initPxTransform = function ({\n designWidth = defaultDesignWidth,\n deviceRatio = defaultDesignRatio,\n baseFontSize = defaultBaseFontSize,\n unitPrecision = defaultUnitPrecision,\n targetUnit = defaultTargetUnit\n}) {\n const config = getConfig.call(this)\n config.designWidth = designWidth\n config.deviceRatio = deviceRatio\n config.baseFontSize = baseFontSize\n config.targetUnit = targetUnit\n config.unitPrecision = unitPrecision\n}\n\nconst pxTransform = function (size = 0) {\n const config = getConfig.call(this)\n const baseFontSize = config.baseFontSize || defaultBaseFontSize\n const deviceRatio = config.deviceRatio || defaultDesignRatio\n const designWidth = ((input = 0) => isFunction(config.designWidth)\n ? config.designWidth(input)\n : config.designWidth)(size)\n if (!(designWidth in config.deviceRatio)) {\n throw new Error(`deviceRatio 配置中不存在 ${designWidth} 的设置!`)\n }\n const targetUnit = config.targetUnit || defaultTargetUnit\n const unitPrecision = config.unitPrecision || defaultUnitPrecision\n const formatSize = ~~size\n let rootValue = 1 / deviceRatio[designWidth]\n switch (targetUnit) {\n case 'vw':\n rootValue = designWidth / 100\n break\n case 'px':\n rootValue *= 2\n break\n default:\n // rem\n rootValue *= baseFontSize * 2\n }\n let val: number | string = formatSize / rootValue\n if (unitPrecision >= 0 && unitPrecision <= 100) {\n // Number(val): 0.50000 => 0.5\n val = Number(val.toFixed(unitPrecision))\n }\n return val + targetUnit\n}\n\nconst canIUseWebp = function () {\n const canvas = document.createElement('canvas')\n return canvas.toDataURL('image/webp').indexOf('data:image/webp') === 0\n}\n\nconst getAppInfo = function () {\n const config = getConfig.call(this)\n return {\n platform: process.env.TARO_PLATFORM || PLATFORM_TYPE.WEB,\n taroVersion: process.env.TARO_VERSION || 'unknown',\n designWidth: config.designWidth,\n }\n}\n\ntaro.requirePlugin = requirePlugin\ntaro.getApp = getApp\ntaro.pxTransform = pxTransform\ntaro.initPxTransform = initPxTransform\ntaro.canIUseWebp = canIUseWebp\ntaro.getAppInfo = getAppInfo\n\nexport default taro\n\nexport {\n Behavior,\n canIUseWebp,\n Current,\n ENV_TYPE,\n eventCenter,\n Events,\n getAppInfo,\n getEnv,\n history,\n initPxTransform,\n interceptorify,\n interceptors,\n Link,\n options,\n preload,\n pxTransform,\n requirePlugin\n}\n"],"names":["Current","getApp","callbackManager","INTERVAL_MAP","eventCenter","Link"],"mappings":"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"}