@tarojs/plugin-platform-harmony-ets 3.7.0-alpha.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +160 -0
- package/dist/apis/apis.ts +15 -0
- package/dist/apis/base/index.ts +5 -0
- package/dist/apis/base/system.ts +77 -0
- package/dist/apis/device/accelerometer.ts +76 -0
- package/dist/apis/device/battery.ts +24 -0
- package/dist/apis/device/clipboard.ts +70 -0
- package/dist/apis/device/index.ts +9 -0
- package/dist/apis/device/keyboard.ts +62 -0
- package/dist/apis/device/memory.ts +4 -0
- package/dist/apis/device/network.ts +72 -0
- package/dist/apis/device/phone.ts +43 -0
- package/dist/apis/device/screen.ts +79 -0
- package/dist/apis/device/vibrate.ts +24 -0
- package/dist/apis/files/index.ts +135 -0
- package/dist/apis/files/manager.ts +941 -0
- package/dist/apis/framework/index.ts +32 -0
- package/dist/apis/index.ts +124 -0
- package/dist/apis/location/index.ts +133 -0
- package/dist/apis/media/common.ts +74 -0
- package/dist/apis/media/image.ts +122 -0
- package/dist/apis/media/index.ts +3 -0
- package/dist/apis/media/video.ts +86 -0
- package/dist/apis/navigate/index.ts +8 -0
- package/dist/apis/network/downloadFile.ts +113 -0
- package/dist/apis/network/index.ts +4 -0
- package/dist/apis/network/request.ts +113 -0
- package/dist/apis/network/uploadFile.ts +158 -0
- package/dist/apis/network/webSocket.ts +130 -0
- package/dist/apis/open-api/index.ts +7 -0
- package/dist/apis/open-api/user-info/index.ts +85 -0
- package/dist/apis/page/index.ts +92 -0
- package/dist/apis/route/index.ts +138 -0
- package/dist/apis/storage/index.ts +133 -0
- package/dist/apis/tabbar/index.ts +147 -0
- package/dist/apis/ui/animation.ts +222 -0
- package/dist/apis/ui/background.ts +35 -0
- package/dist/apis/ui/index.ts +14 -0
- package/dist/apis/ui/interaction/index.ts +195 -0
- package/dist/apis/ui/navigation-bar/index.ts +33 -0
- package/dist/apis/ui/pull-down-refresh.ts +41 -0
- package/dist/apis/utils/handler.ts +116 -0
- package/dist/apis/utils/index.ts +85 -0
- package/dist/apis/utils/types.ts +12 -0
- package/dist/apis/utils/validate.ts +87 -0
- package/dist/apis/wxml/IntersectionObserver.ts +119 -0
- package/dist/apis/wxml/index.ts +12 -0
- package/dist/apis/wxml/nodesRef.ts +56 -0
- package/dist/apis/wxml/selectorQuery.ts +287 -0
- package/dist/components/components-react.js +51 -0
- package/dist/components/components-react.js.map +1 -0
- package/dist/components-harmony/button/index.css +109 -0
- package/dist/components-harmony/button/index.hml +31 -0
- package/dist/components-harmony/button/index.js +105 -0
- package/dist/components-harmony/camera/index.hml +6 -0
- package/dist/components-harmony/camera/index.js +12 -0
- package/dist/components-harmony/checkbox/index.hml +11 -0
- package/dist/components-harmony/checkbox/index.js +60 -0
- package/dist/components-harmony/checkbox-group/index.hml +3 -0
- package/dist/components-harmony/checkbox-group/index.js +22 -0
- package/dist/components-harmony/cover-image/index.css +4 -0
- package/dist/components-harmony/cover-image/index.hml +9 -0
- package/dist/components-harmony/cover-image/index.js +15 -0
- package/dist/components-harmony/form/index.hml +10 -0
- package/dist/components-harmony/form/index.js +11 -0
- package/dist/components-harmony/icon/index.css +27 -0
- package/dist/components-harmony/icon/index.hml +54 -0
- package/dist/components-harmony/icon/index.js +17 -0
- package/dist/components-harmony/image/index.css +5 -0
- package/dist/components-harmony/image/index.hml +11 -0
- package/dist/components-harmony/image/index.js +28 -0
- package/dist/components-harmony/input/index.hml +21 -0
- package/dist/components-harmony/input/index.js +98 -0
- package/dist/components-harmony/label/index.hml +3 -0
- package/dist/components-harmony/label/index.js +6 -0
- package/dist/components-harmony/navbar/index.css +56 -0
- package/dist/components-harmony/navbar/index.hml +9 -0
- package/dist/components-harmony/navbar/index.js +30 -0
- package/dist/components-harmony/navigator/index.css +8 -0
- package/dist/components-harmony/navigator/index.hml +9 -0
- package/dist/components-harmony/navigator/index.js +104 -0
- package/dist/components-harmony/picker/index.hml +25 -0
- package/dist/components-harmony/picker/index.js +132 -0
- package/dist/components-harmony/picker-view/index.hml +23 -0
- package/dist/components-harmony/picker-view/index.js +161 -0
- package/dist/components-harmony/picker-view-column/index.hml +3 -0
- package/dist/components-harmony/picker-view-column/index.js +3 -0
- package/dist/components-harmony/progress/index.css +4 -0
- package/dist/components-harmony/progress/index.hml +28 -0
- package/dist/components-harmony/progress/index.js +23 -0
- package/dist/components-harmony/radio/index.hml +11 -0
- package/dist/components-harmony/radio/index.js +41 -0
- package/dist/components-harmony/radio-group/index.hml +3 -0
- package/dist/components-harmony/radio-group/index.js +11 -0
- package/dist/components-harmony/rich-text/index.hml +5 -0
- package/dist/components-harmony/rich-text/index.js +16 -0
- package/dist/components-harmony/scroll-view/index.css +5 -0
- package/dist/components-harmony/scroll-view/index.hml +12 -0
- package/dist/components-harmony/scroll-view/index.js +65 -0
- package/dist/components-harmony/slider/index.hml +16 -0
- package/dist/components-harmony/slider/index.js +53 -0
- package/dist/components-harmony/swiper/index.css +3 -0
- package/dist/components-harmony/swiper/index.hml +14 -0
- package/dist/components-harmony/swiper/index.js +19 -0
- package/dist/components-harmony/switch/index.hml +7 -0
- package/dist/components-harmony/switch/index.js +16 -0
- package/dist/components-harmony/tabbar/index.css +7 -0
- package/dist/components-harmony/tabbar/index.hml +26 -0
- package/dist/components-harmony/tabbar/index.js +42 -0
- package/dist/components-harmony/textarea/index.hml +24 -0
- package/dist/components-harmony/textarea/index.js +92 -0
- package/dist/components-harmony/utils/index.js +41 -0
- package/dist/components-harmony/video/index.hml +7 -0
- package/dist/components-harmony/video/index.js +73 -0
- package/dist/components-harmony/web-view/index.hml +8 -0
- package/dist/components-harmony/web-view/index.js +22 -0
- package/dist/components-harmony-ets/base.ets +63 -0
- package/dist/components-harmony-ets/button.ets +119 -0
- package/dist/components-harmony-ets/checkbox.ets +219 -0
- package/dist/components-harmony-ets/element.ets +223 -0
- package/dist/components-harmony-ets/form.ets +149 -0
- package/dist/components-harmony-ets/icon.ets +84 -0
- package/dist/components-harmony-ets/image.ets +85 -0
- package/dist/components-harmony-ets/index.ts +49 -0
- package/dist/components-harmony-ets/innerHtml.ets +79 -0
- package/dist/components-harmony-ets/input.ets +195 -0
- package/dist/components-harmony-ets/label.ets +111 -0
- package/dist/components-harmony-ets/picker.ets +370 -0
- package/dist/components-harmony-ets/radio.ets +225 -0
- package/dist/components-harmony-ets/richText.ets +97 -0
- package/dist/components-harmony-ets/scrollView.ets +199 -0
- package/dist/components-harmony-ets/slider.ets +159 -0
- package/dist/components-harmony-ets/swiper.ets +204 -0
- package/dist/components-harmony-ets/switch.ets +113 -0
- package/dist/components-harmony-ets/text.ets +97 -0
- package/dist/components-harmony-ets/textArea.ets +169 -0
- package/dist/components-harmony-ets/utils/AttributeManager.ets +250 -0
- package/dist/components-harmony-ets/utils/DynamicCenter.ts +48 -0
- package/dist/components-harmony-ets/utils/constant/event.ets +25 -0
- package/dist/components-harmony-ets/utils/constant/icon.ts +19 -0
- package/dist/components-harmony-ets/utils/constant/style.ets +88 -0
- package/dist/components-harmony-ets/utils/events.ts +24 -0
- package/dist/components-harmony-ets/utils/flexManager.ets +107 -0
- package/dist/components-harmony-ets/utils/helper.ets +99 -0
- package/dist/components-harmony-ets/utils/htmlParser/HarmonyHTMLParser.ts +103 -0
- package/dist/components-harmony-ets/utils/htmlParser/index.ts +56 -0
- package/dist/components-harmony-ets/utils/index.ts +83 -0
- package/dist/components-harmony-ets/utils/styles.ets +91 -0
- package/dist/components-harmony-ets/video.ets +161 -0
- package/dist/components-harmony-ets/view.ets +79 -0
- package/dist/index.js +1183 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime-ets/bom/document.ts +38 -0
- package/dist/runtime-ets/bom/getComputedStyle.ts +5 -0
- package/dist/runtime-ets/bom/navigator.ts +21 -0
- package/dist/runtime-ets/bom/raf.ts +37 -0
- package/dist/runtime-ets/bom/window.ts +44 -0
- package/dist/runtime-ets/constant.ts +29 -0
- package/dist/runtime-ets/current.ts +16 -0
- package/dist/runtime-ets/dom/class-list.ts +117 -0
- package/dist/runtime-ets/dom/comment.ts +10 -0
- package/dist/runtime-ets/dom/cssStyleDeclaration.ts +105 -0
- package/dist/runtime-ets/dom/document.ts +108 -0
- package/dist/runtime-ets/dom/element.ts +457 -0
- package/dist/runtime-ets/dom/event.ts +164 -0
- package/dist/runtime-ets/dom/eventTarget.ts +98 -0
- package/dist/runtime-ets/dom/node.ts +215 -0
- package/dist/runtime-ets/dom/stylesheet/index.ts +687 -0
- package/dist/runtime-ets/dom/stylesheet/type.ts +136 -0
- package/dist/runtime-ets/dom/stylesheet/util.ts +134 -0
- package/dist/runtime-ets/dom/text.ts +19 -0
- package/dist/runtime-ets/index.ts +19 -0
- package/dist/runtime-ets/interface/event.ts +9 -0
- package/dist/runtime-ets/interface/index.ts +1 -0
- package/dist/runtime-ets/utils/bind.ts +35 -0
- package/dist/runtime-ets/utils/index.ts +135 -0
- package/dist/runtime-ets/utils/info.ts +128 -0
- package/dist/runtime-framework/react/app.ts +256 -0
- package/dist/runtime-framework/react/connect.ts +24 -0
- package/dist/runtime-framework/react/constant.ts +5 -0
- package/dist/runtime-framework/react/hooks.ts +101 -0
- package/dist/runtime-framework/react/index.ts +16 -0
- package/dist/runtime-framework/react/page.ts +263 -0
- package/dist/runtime-framework/react/utils/index.ts +25 -0
- package/dist/runtime-framework/react/utils/is.ts +46 -0
- package/dist/runtime-framework/solid/README.md +99 -0
- package/dist/runtime-framework/solid/app.ts +200 -0
- package/dist/runtime-framework/solid/connect.ts +11 -0
- package/dist/runtime-framework/solid/contant.ts +5 -0
- package/dist/runtime-framework/solid/hooks.ts +88 -0
- package/dist/runtime-framework/solid/index.ts +10 -0
- package/dist/runtime-framework/solid/page.ts +202 -0
- package/dist/runtime-framework/solid/reconciler/h.ts +132 -0
- package/dist/runtime-framework/solid/reconciler/index.ts +3 -0
- package/dist/runtime-framework/solid/reconciler/props.ts +151 -0
- package/dist/runtime-framework/solid/reconciler/render.ts +61 -0
- package/dist/runtime-framework/solid/reconciler/use.ts +8 -0
- package/dist/runtime-framework/solid/utils/index.ts +49 -0
- package/dist/runtime-framework/solid/utils/is.ts +46 -0
- package/dist/runtime-utils.js +4149 -0
- package/dist/runtime-utils.js.map +1 -0
- package/dist/runtime.js +4150 -0
- package/dist/runtime.js.map +1 -0
- package/dist/template/container.js +7 -0
- package/index.js +4 -0
- package/package.json +54 -0
- package/types/api.d.ts +4 -0
- package/types/component.d.ts +4 -0
- package/types/harmony.d.ts +11 -0
- package/types/runtime.d.ts +15 -0
- package/types/taro.d.ts +7 -0
- package/types/webpack-sources.d.ts +108 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-utils.js","sources":["../src/apis/utils/handler.ts","../src/apis/utils/validate.ts","../src/apis/utils/index.ts","../src/apis/base/system.ts","../src/apis/base/index.ts","../src/apis/device/accelerometer.ts","../src/apis/device/battery.ts","../src/apis/device/clipboard.ts","../src/apis/device/keyboard.ts","../src/apis/device/memory.ts","../src/apis/device/network.ts","../src/apis/device/phone.ts","../src/apis/device/screen.ts","../src/apis/device/vibrate.ts","../src/apis/files/manager.ts","../src/apis/files/index.ts","../src/apis/framework/index.ts","../src/apis/location/index.ts","../src/apis/media/common.ts","../src/apis/media/image.ts","../src/apis/media/video.ts","../src/apis/navigate/index.ts","../src/apis/network/downloadFile.ts","../src/apis/network/request.ts","../src/apis/network/uploadFile.ts","../src/apis/network/webSocket.ts","../src/apis/open-api/user-info/index.ts","../src/apis/open-api/index.ts","../src/apis/page/index.ts","../src/apis/route/index.ts","../src/apis/storage/index.ts","../src/apis/tabbar/index.ts","../src/apis/ui/animation.ts","../src/apis/ui/background.ts","../src/apis/ui/interaction/index.ts","../src/apis/ui/navigation-bar/index.ts","../src/apis/ui/pull-down-refresh.ts","../src/apis/ui/index.ts","../src/apis/wxml/IntersectionObserver.ts","../src/apis/wxml/nodesRef.ts","../src/apis/wxml/selectorQuery.ts","../src/apis/wxml/index.ts","../src/apis/index.ts","../src/components/index.ts","../src/runtime-utils.ts"],"sourcesContent":["import { isFunction } from '@tarojs/shared'\n\nexport interface ICallbackResult {\n /** 错误信息 */\n errMsg: string\n}\ntype TFunc = (...args: any[]) => any\n\ntype TCallback<T = Partial<ICallbackResult>> = (res: T) => Promise<void> | void\ninterface IMethodParam<T = Partial<ICallbackResult>> {\n name: string\n success?: TCallback<T & ICallbackResult>\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<ICallbackResult>> {\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<ICallbackResult> = {}, promise: IMockPromise = {}): Promise<T & U & ICallbackResult> {\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 & ICallbackResult>)\n }\n\n fail<U = Record<string, unknown>> (res: Partial<T> & Partial<ICallbackResult> = {}, promise: IMockPromise = {}): Promise<T & U & ICallbackResult> {\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 & ICallbackResult>)\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 }\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","import { isArray, isNull, isObject, isString } from '@tarojs/shared'\n\ntype JSTypes = 'string' | 'number' | 'boolean' | 'undefined' | 'null' | 'bigint' | 'symbol' | 'array' | 'object' | 'function'\n\ntype NormalParamSchema = string[]\ntype ObjectParamSchema = Record<string, string>\n\ntype Schema = NormalParamSchema | ObjectParamSchema\n\ninterface ValidateParams {\n <T>(name: string, params: any, schema: Schema): asserts params is T\n}\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\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: string): string {\n if (!isString(string)) return string\n string = string.replace(/^./, match => match.toUpperCase())\n return string\n}\n\nfunction getType (param: string): JSTypes {\n if (isNull(param)) {\n return 'null'\n } else if (isArray(param)) {\n return 'array'\n } else {\n return typeof param\n }\n}\n\nexport function assertType (target: any, type: string, methodName: string, paramName?: string) {\n const correct = upperCaseFirstLetter(type)\n if (correct !== upperCaseFirstLetter(getType(target))) {\n const err = getParameterError({ name: methodName, para: paramName, correct, wrong: target })\n throw new Error(err)\n }\n}\n\n/**\n * 用于校验方法的参数类型\n * @param name 方法名称\n * @param params [array|object] 当前参数\n * @param schema [array|object] 参数类型规范\n * @example\n * ```js\n * // 例子一:\n * validateParams(methodA, [key], [string])\n * // 例子二:\n * validateParams(methodB, { key: 123 }, { key: number })\n * ```\n * @todo 校验可选参数\n */\nexport const validateParams: ValidateParams = function (name, params, schema) {\n if (isArray(schema) && isString(schema[0])) {\n schema.forEach((correctType, index) => assertType(params[index], correctType, name, `[${index}]`))\n } else if (isObject(schema)) {\n const optionsSchema = schema\n\n assertType(params, 'object', name)\n for (const key in optionsSchema) {\n assertType(params[key], optionsSchema[key], name, key)\n }\n }\n}\n","import { eventCenter } from '@tarojs/runtime/dist/runtime.esm'\n\nimport { ICallbackResult, MethodHandler } from './handler'\n\nimport type { FunctionType, IAsyncParams } from './types'\n\nexport * from './validate'\nexport { noop } from '@tarojs/shared'\n\nexport function object2String (obj) {\n let str = ''\n for (const item in obj) {\n str = str + item + ':' + obj[item] + ' \\n'\n }\n return str\n}\n\nexport function temporarilyNotSupport (name: string, recommended?: string) {\n return (option = {}, ...args) => {\n const { success, fail, complete } = option as any\n const handle = new MethodHandler({ name, success, fail, complete })\n let errMsg = '暂时不支持 API'\n if (recommended) {\n errMsg += `, 请使用 ${recommended}`\n }\n 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 permanentlyNotSupport (name = '') {\n return (option = {}, ...args: any[]) => {\n const { success, fail, complete } = option as any\n const handle = new MethodHandler<ICallbackResult>({ name, success, fail, complete })\n const errMsg = '不支持 API'\n 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\n/** @deprecated */\nexport function callCallbackSuccess<T extends FunctionType> (res, options?: IAsyncParams<T>) {\n options?.success?.(res)\n options?.complete?.(res)\n}\n\n/** @deprecated */\nexport function callCallbackFail<T extends FunctionType> (res, options?: IAsyncParams<T>) {\n options?.fail?.(res)\n options?.complete?.(res)\n}\n\n/** @deprecated */\nexport function callAsyncSuccess<T extends FunctionType> (resolve, res, options?: IAsyncParams<T>) {\n options?.success?.(res)\n options?.complete?.(res)\n resolve(res)\n}\n\n/** @deprecated */\nexport function callAsyncFail<T extends FunctionType> (reject, res, options?: IAsyncParams<T>) {\n options?.fail?.(res)\n options?.complete?.(res)\n reject(res)\n}\n","// 设备信息,从 API Version 6 开始支持\nimport deviceInfo from '@ohos.deviceInfo'\n// 显示设备属性,从 API Version 7 开始支持\nimport _display from '@ohos.display'\n// 从 API Version 7 开始支持\nimport i18n from '@ohos.i18n'\n// 设备信息 从API Version 6开始,该接口不再维护,推荐使用新接口'@ohos.deviceInfo'进行设备信息查询\nimport deviceMethod from '@system.device'\n\nimport { callAsyncFail, callAsyncSuccess } from '../utils'\n\nimport type Taro from '@tarojs/api'\n\nconst display = _display.getDefaultDisplaySync()\n\nlet device\n\ndeviceMethod.getInfo({\n success: data => {\n device = data\n }\n})\n\n/* 同步版本 */\nexport const getSystemInfoSync: typeof Taro.getSystemInfoSync = function () {\n const res: any = {}\n res.SDKVersion = deviceInfo && deviceInfo.sdkApiVersion // 客户端基础库版本 string\n res.albumAuthorized = false // 允许使用相册的开关(仅 iOS 有效) boolean\n res.benchmarkLevel = null // 设备性能等级 number\n res.bluetoothEnabled = null // 蓝牙的系统开关 boolean\n res.brand = deviceInfo && deviceInfo.brand // 设备品牌 string\n res.cameraAuthorized = null // 允许使用摄像头的开关 boolean\n res.enableDebug = null // 是否已打开调试 boolean\n res.fontSizeSetting = null // 用户字体大小(单位px) number\n res.language = i18n && i18n.getSystemLanguage && i18n.getSystemLanguage() // string\n res.locationAuthorized = null // 定位的开关 boolean\n res.locationEnabled = null // 地理位置的系统开关 boolean\n res.microphoneAuthorized = null // 麦克风的开关 boolean\n res.model = deviceInfo && deviceInfo.deviceType // 设备型号 string\n res.notificationAuthorized = null // 通知的开关 boolean\n res.notificationAlertAuthorized = false // 通知带有提醒的开关(仅 iOS 有效) boolean\n res.notificationBadgeAuthorized = false // 通知带有标记的开关(仅 iOS 有效) boolean\n res.notificationSoundAuthorized = false // 通知带有声音的开关(仅 iOS 有效)boolean\n res.phoneCalendarAuthorized = null // 使用日历的开关 boolean\n res.wifiEnabled = false // Wi-Fi 的系统开关 boolean\n res.pixelRatio = null // 设备像素比,number\n res.platform = 'android' // 客户端平台 string\n res.safeArea = null // 在竖屏正方向下的安全区域 General.SafeAreaResult\n res.screenHeight = display && display.height // 屏幕高度,单位px number\n res.screenWidth = display && display.width // 屏幕宽度,单位px number\n res.statusBarHeight = null // 状态栏的高度,单位px number\n res.system = deviceInfo && deviceInfo.osFullName // 操作系统及版本 string\n res.theme = null // 系统当前主题,取值为light或dark 'light' | 'dark'\n res.windowWidth = device && device.windowWidth // 可使用窗口宽度,单位px number\n res.windowHeight = device && device.windowHeight // 可使用窗口高度,单位px number\n res.version = deviceInfo && deviceInfo.displayVersion // 版本号 string\n\n return res\n}\n/* 异步版本 */\nexport const getSystemInfo: typeof Taro.getSystemInfo = function (options) {\n let res = {}\n return new Promise((resolve, reject) => {\n try {\n res = getSystemInfoSync()\n callAsyncSuccess(resolve, res, options)\n } catch (error) {\n res = {\n errMsg: `getSystemInfo:fail ${error && error.toString && error.toString()}`,\n error: error\n }\n callAsyncFail(reject, res, options)\n }\n })\n}\n\nglobalThis.getSystemInfoSync = getSystemInfoSync\n","import { temporarilyNotSupport } from '../utils'\n\nexport const getUpdateManager = temporarilyNotSupport('getUpdateManager')\n\nexport * from './system'\n","import sensor from '@ohos.sensor'\r\nimport Taro from '@tarojs/taro'\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 sensor.off(sensor.SensorType.SENSOR_TYPE_ID_ACCELEROMETER, devicemotionListener)\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 * 1000 * 1000,\r\n frequency: 50\r\n },\r\n ui: {\r\n interval: 60 * 1000 * 1000,\r\n frequency: 16.67\r\n },\r\n normal: {\r\n interval: 200 * 1000 * 1000,\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 const intervalObj = INTERVAL_MAP[interval]\r\n if (devicemotionListener) {\r\n stopAccelerometer()\r\n }\r\n sensor.on(sensor.SensorType.SENSOR_TYPE_ID_ACCELEROMETER, (data) => {\r\n callbackManager.trigger({\r\n x: data?.x || 0,\r\n y: data?.y || 0,\r\n z: data?.z || 0\r\n })\r\n }, {\r\n interval: intervalObj.interval,\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 batteryInfo, { BatteryChargeState } from '@ohos.batteryInfo'\n\nimport { MethodHandler } from '../utils/handler'\n\nimport type Taro from '@tarojs/api'\n\n// 电量\n\nexport const getBatteryInfoSync: typeof Taro.getBatteryInfoSync = () => ({\n // @ts-ignore\n isCharging: [BatteryChargeState.ENABLE, BatteryChargeState.FULL].includes(batteryInfo.chargingStatus),\n level: batteryInfo.batterySOC\n})\n\nexport const getBatteryInfo: typeof Taro.getBatteryInfo = async ({ success, fail, complete } = {}) => {\n const handle = new MethodHandler({ name: 'getBatteryInfo', success, fail, complete })\n try {\n return handle.success(getBatteryInfoSync())\n } catch (error) {\n return handle.fail({\n errMsg: error?.message || error\n })\n }\n}\n","// 从 API Version 6 开始支持\r\nimport pasteboard from '@ohos.pasteboard'\r\nimport { isString } from '@tarojs/shared'\r\n\r\nimport { callAsyncFail, getParameterError, object2String } from '../utils'\r\nimport { MethodHandler } from '../utils/handler'\r\n\r\nimport type Taro from '@tarojs/api'\r\n\r\n/**\r\n * 设置系统剪贴板的内容\r\n */\r\nexport const setClipboardData: typeof Taro.setClipboardData = function (options) {\r\n const { data, success, fail, complete } = options\r\n const handle = new MethodHandler<{ data: string }>({ name: 'setClipboardData', success, fail, complete })\r\n let res = {}\r\n\r\n if (!isString(data)) {\r\n return handle.fail({\r\n errMsg: getParameterError({\r\n para: 'data',\r\n correct: 'String',\r\n wrong: data\r\n })\r\n })\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const systemPasteboard = pasteboard.getSystemPasteboard()\r\n const pasteData = pasteboard.createPlainTextData(data)\r\n\r\n systemPasteboard.setPasteData(pasteData, (error, data) => { // callback形式调用异步接口\r\n if (error) {\r\n console.error('Failed to set PasteData. Cause: ' + JSON.stringify(error))\r\n res = {\r\n errMsg: 'setClipboardData:fail,error: ' + object2String(error),\r\n error: error\r\n }\r\n callAsyncFail(reject, res, options)\r\n } else {\r\n return handle.success({\r\n data,\r\n }, { resolve, reject })\r\n }\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * 获取系统剪贴板的内容\r\n */\r\nexport const getClipboardData: typeof Taro.getClipboardData = function (options) {\r\n const { success, fail, complete } = options || {}\r\n const handle = new MethodHandler({ name: 'getClipboardData', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n const systemPasteboard = pasteboard.getSystemPasteboard()\r\n systemPasteboard.getPasteData((error, pasteData) => { // callback 形式调用异步接口\r\n if (error) {\r\n console.error('Failed to obtain PasteData. Cause: ' + JSON.stringify(error))\r\n return handle.fail({\r\n errMsg: object2String(error),\r\n }, { resolve, reject })\r\n } else {\r\n return handle.success({\r\n data: pasteData.getPrimaryText(),\r\n }, { resolve, reject })\r\n }\r\n })\r\n })\r\n}\r\n","import inputMethodEngine from '@ohos.inputMethodEngine'\nimport { Current, window } from '@tarojs/runtime'\nimport Taro from '@tarojs/taro'\n\nimport { temporarilyNotSupport } from '../utils'\nimport { CallbackManager, MethodHandler } from '../utils/handler'\n\nconst callbackManager = new CallbackManager()\n\nconst resizeListener = (height) => {\n callbackManager.trigger({\n height,\n })\n}\n\nlet topWindow: ReturnType<typeof window.__ohos.getLastWindow>\n\nexport const onKeyboardHeightChange: typeof Taro.onKeyboardHeightChange = callback => {\n callbackManager.add(callback)\n if (callbackManager.count() === 1) {\n (Current as any).contextPromise\n .then(context => {\n const win = window.__ohos.getLastWindow(context)\n win.then(mainWindow => {\n topWindow = mainWindow\n topWindow.on('keyboardHeightChange', resizeListener)\n })\n })\n }\n}\n\nexport const offKeyboardHeightChange: typeof Taro.offKeyboardHeightChange = callback => {\n callbackManager.remove(callback)\n if (callbackManager.count() === 0) {\n topWindow?.off('keyboardHeightChange', resizeListener)\n }\n}\n\n// @ts-ignore\nlet keyboardController: inputMethodEngine.KeyboardController\ninputMethodEngine.getInputMethodAbility()\n // FIXME 当前事件无效,等待鸿蒙方面沟通\n .on('inputStart', (kbController) => {\n keyboardController = kbController\n })\n\nexport const hideKeyboard: typeof Taro.hideKeyboard = function (options) {\n const { success, fail, complete } = options || {}\n const handle = new MethodHandler({ name: 'hideKeyboard', success, fail, complete })\n return new Promise((resolve, reject) => {\n keyboardController?.hide((err) => {\n if (err) {\n return handle.fail({\n errMsg: err,\n }, { resolve, reject })\n }\n return handle.success({}, { resolve, reject })\n })\n })\n}\n\nexport const getSelectedTextRange = /* @__PURE__ */ temporarilyNotSupport('getSelectedTextRange')\n","import { temporarilyNotSupport } from '../utils'\n\nexport const onMemoryWarning = temporarilyNotSupport('onMemoryWarning')\nexport const offMemoryWarning = temporarilyNotSupport('offMemoryWarning')\n","// 网络状态,从API Version 7 开始,该接口不再维护,推荐使用新接口'@ohos.telephony.observer'\n// 但是新接口 @ohos.telephony.observer 没有network.getType。而且网络状态枚举值不清楚\nimport network from '@system.network'\nimport Taro from '@tarojs/taro'\n\nimport { temporarilyNotSupport } from '../utils'\nimport { CallbackManager, MethodHandler } from '../utils/handler'\n\nexport const getNetworkType: typeof Taro.getNetworkType = (options = {}) => {\n const { success, fail, complete } = options\n const handle = new MethodHandler<Taro.getNetworkType.SuccessCallbackResult & { code: unknown, metered: boolean }>({ name: 'getNetworkType', success, fail, complete })\n\n return new Promise((resolve, reject) => {\n network.getType({\n success: function (data) {\n return handle.success({\n networkType: data.type || 'unknown',\n metered: data.metered\n }, { resolve, reject })\n },\n fail: function (data, code) {\n return handle.fail({\n errMsg: data || '',\n code\n }, { resolve, reject })\n },\n })\n })\n}\n\nconst networkStatusManager = new CallbackManager()\n\nconst networkStatusListener = async (data, code = 0) => {\n if (code > 0) {\n return networkStatusManager.trigger({ isConnected: false, networkType: 'none' })\n }\n const networkType = data.type || 'unknown'\n const isConnected = networkType !== 'none'\n const metered = !!data.metered\n const obj = { isConnected, networkType, metered }\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 if (networkStatusManager.count() === 1) {\n network.subscribe({\n success: networkStatusListener,\n fail: networkStatusListener,\n })\n }\n}\n\nexport const offNetworkWeakChange = /* @__PURE__ */ temporarilyNotSupport('offNetworkWeakChange')\n\nexport const offNetworkStatusChange: typeof Taro.offNetworkStatusChange = callback => {\n networkStatusManager.remove(callback)\n if (networkStatusManager.count() === 0) {\n network.unsubscribe()\n }\n}\n\nexport const getLocalIPAddress = /* @__PURE__ */ temporarilyNotSupport('getLocalIPAddress')\n","// 从 API Version 7 开始支持。\nimport call from '@ohos.telephony.call'\nimport { isString } from '@tarojs/shared'\nimport Taro from '@tarojs/taro'\n\nimport { getParameterError, object2String, 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 (!isString(phoneNumber)) {\n return handle.fail({\n errMsg: getParameterError({\n para: 'phoneNumber',\n correct: 'String',\n wrong: phoneNumber\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n call.makeCall(phoneNumber, err => {\n if (err) {\n console.error('Failed to makePhoneCall. Cause: ' + JSON.stringify(err))\n return handle.fail({\n errMsg: object2String(err)\n }, { resolve, reject })\n } else {\n return handle.success({}, { resolve, reject })\n }\n })\n })\n}\n","// 从API Version 7 开始,该接口不再维护,推荐使用新接口'@ohos.brightness'\n// 但是 新接口 @ohos.brightness 没有 getValue\nimport brightness from '@system.brightness'\nimport { isNumber } from '@tarojs/shared'\nimport Taro from '@tarojs/taro'\n\nimport { getParameterError, shouldBeObject, temporarilyNotSupport } from '../utils'\nimport { MethodHandler } from '../utils/handler'\n\n// 屏幕\nexport const setVisualEffectOnCapture = /* @__PURE__ */ temporarilyNotSupport('setVisualEffectOnCapture')\n\nexport const setScreenBrightness: typeof Taro.setScreenBrightness = function (options) {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `setScreenBrightness:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { value, success, fail, complete } = options\n const handle = new MethodHandler<{ code: unknown }>({ name: 'setScreenBrightness', success, fail, complete })\n\n if (!isNumber(value)) {\n return handle.fail({\n errMsg: getParameterError({\n para: 'value',\n correct: 'Number',\n wrong: value\n })\n })\n }\n\n return new Promise((resolve, reject) => {\n brightness.setValue({\n // FIXME 不生效\n value: value >= 0 && value <= 1 ? value * 255 : value,\n success: function () {\n return handle.success({}, { resolve, reject })\n },\n fail: function (data, code) {\n return handle.fail({\n errMsg: data || '',\n code\n }, { resolve, reject })\n }\n })\n })\n}\n\nexport const setKeepScreenOn = /* @__PURE__ */ temporarilyNotSupport('setKeepScreenOn')\nexport const onUserCaptureScreen = /* @__PURE__ */ temporarilyNotSupport('onUserCaptureScreen')\nexport const offUserCaptureScreen = /* @__PURE__ */ temporarilyNotSupport('offUserCaptureScreen')\n\nexport const getScreenBrightness: typeof Taro.getScreenBrightness = function (options) {\n const { success, fail, complete } = options || {}\n const handle = new MethodHandler<Taro.getScreenBrightness.SuccessCallbackOption & { code: unknown }>({ name: 'getScreenBrightness', success, fail, complete })\n\n return new Promise((resolve, reject) => {\n brightness.getValue({\n success: function (data) {\n return handle.success({\n value: data.value\n }, { resolve, reject })\n },\n fail: function (data, code) {\n return handle.fail({\n errMsg: data || '',\n code\n }, { resolve, reject })\n }\n })\n })\n}\n\nexport const onScreenRecordingStateChanged = /* @__PURE__ */ temporarilyNotSupport('onScreenRecordingStateChanged')\nexport const offScreenRecordingStateChanged = /* @__PURE__ */ temporarilyNotSupport('offScreenRecordingStateChanged')\nexport const getScreenRecordingState = /* @__PURE__ */ temporarilyNotSupport('getScreenRecordingState')\n","import vibrator from '@ohos.vibrator'\n\nimport { callAsyncFail, callAsyncSuccess } from '../utils'\nimport { IAsyncParams } from '../utils/types'\n\nconst VIBRATOR_LONG_TIME = 400\nconst VIBRATOR_SHORT_TIME = 15\n\nfunction vibrateBaseGenerator (time: number) {\n return (options: IAsyncParams) => {\n return new Promise((resolve, reject) => {\n vibrator.vibrate(time).then(() => {\n const res = { errMsg: 'vibrateShort:ok' }\n callAsyncSuccess(resolve, res, options)\n }, (error) => {\n const res = { errMsg: 'vibrateShort:fail' + error }\n callAsyncFail(reject, res, options)\n })\n })\n }\n}\n\nexport const vibrateLong = vibrateBaseGenerator(VIBRATOR_LONG_TIME)\nexport const vibrateShort = vibrateBaseGenerator(VIBRATOR_SHORT_TIME)\n","/**\n * HarmonyOS 文档:\n * https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001168366687\n *\n * WX 文档:\n * https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.html\n *\n * Taro.js 文档\n * https://taro-docs.jd.com/taro/docs/apis/files/FileSystemManager\n *\n * HarmonyOS 不支持接口:\n * readCompressedFile\n * readCompressedFileSync\n * readdirSync\n * readZipEntry\n *\n * HarmonyOS 差异性接口:\n * readFile:encoding 仅支持 utf-8\n * readFileSync:encoding 仅支持 utf-8\n * write:encoding 仅支持 utf-8\n * writeSync:encoding 仅支持 utf-8\n * rmdirSync:recursive 参数无效(即不支持递归删除)\n * statSync:recursive 参数无效(即不支持递归获取目录下的每个文件的 Stats 信息)\n * getSavedFileList:返回值 fileList 中的每一项不包含 createTime 属性\n */\n\nimport fileio from '@ohos.fileio'\nimport zlib from '@ohos.zlib'\nimport app from '@system.app'\nimport file from '@system.file'\nimport { isNumber, isString } from '@tarojs/shared'\nimport Taro from '@tarojs/taro'\n\nimport { callCallbackFail, callCallbackSuccess, temporarilyNotSupport, validateParams } from '../utils'\n\nconst rootDataPath = `/data/data/${app.getInfo()?.appID || 'app'}`\nconst rootSavedFilePath = `${rootDataPath}/files`\n\nconst pathSchema = {\n path: 'String'\n}\n\nconst copyFileSchema = {\n srcPath: 'String',\n destPath: 'String'\n}\n\nconst filePathSchema = {\n filePath: 'String'\n}\n\nconst dirPathSchema = {\n dirPath: 'String'\n}\n\nconst readSchema = {\n fd: 'String',\n arrayBuffer: 'Object'\n}\n\nconst writeSchema = {\n fd: 'String',\n data: 'String'\n}\n\nconst renameSchema = {\n newPath: 'String',\n oldPath: 'String'\n}\n\nconst fdSchema = {\n fd: 'String'\n}\n\nconst saveFileSchema = {\n tempFilePath: 'String'\n}\n\nconst unzipSchema = {\n targetPath: 'String',\n zipFilePath: 'String'\n}\ninterface ReadOption {\n offset?: number\n length?: number\n position?: number\n}\n\ninterface WriteOption extends ReadOption {\n encoding: 'utf-8'\n}\n\ninterface ReadFileOption {\n position?: number\n length?: number\n encoding: 'utf-8'\n}\ninterface ReadResult {\n bytesRead: number\n arrayBuffer: ArrayBuffer\n}\n\ninterface WriteResult {\n bytesWritten: number\n}\n\ninterface StatWithFdResult {\n stats: Taro.Stats | null\n error: Taro.FileSystemManager.StatFailCallbackResult | null\n}\n\ninterface GetDirFilesResult {\n files: string[]\n dirs: string[]\n}\n\nfunction convertFilePathToUri (filePath: string): string {\n let uri = filePath.replace(/\\/+/g, '/').replace(rootDataPath, 'internal:').replace('internal:/files', 'internal:/app')\n uri = /\\/$/.test(uri) ? uri : `${uri}/`\n return uri.replace(/\\//g, '//')\n}\n\nfunction convertUriToFilePath (uri: string): string {\n return uri.replace(/\\/+/g, '/').replace('internal:/app', 'internal:/files').replace('internal:', rootDataPath)\n}\n\nfunction convertDataToString (data: string | ArrayBuffer): string {\n if (isString(data)) {\n return data\n }\n return String.fromCharCode.apply(null, new Uint8Array(data))\n}\n\nfunction convertReadOption (option: Taro.FileSystemManager.ReadOption | Taro.FileSystemManager.ReadSyncOption): ReadOption {\n const result: ReadOption = {}\n const { offset, length, position } = option\n if (isNumber(offset)) {\n result.offset = offset\n }\n if (isNumber(length)) {\n result.length = length\n }\n if (isNumber(position)) {\n result.position = position\n }\n return result\n}\n\nfunction convertWriteOption (option: Taro.FileSystemManager.WriteOption | Taro.FileSystemManager.WriteSyncOption): WriteOption {\n const result: WriteOption = {\n encoding: 'utf-8'\n }\n const { offset, length, position } = option\n if (isNumber(offset)) {\n result.offset = offset\n }\n if (isNumber(length)) {\n result.length = length\n }\n if (isNumber(position)) {\n result.position = position\n }\n return result\n}\n\nfunction convertReadFileOption (option: Taro.FileSystemManager.ReadFileOption): ReadFileOption {\n const result: ReadFileOption = {\n encoding: 'utf-8'\n }\n const { position, length } = option\n if (isNumber(position)) {\n result.position = position\n }\n if (isNumber(length)) {\n result.length = length\n }\n return result\n}\n\nfunction convertFd (fd: string): number {\n return parseInt(fd, 10)\n}\n\n/**\n * HarmonyOS flag 详情参见:\n * https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001168366687#section1153565865716\n */\nfunction convertOpenFlag (flag?: keyof Taro.FileSystemManager.flag): number {\n if (typeof flag === 'string') {\n switch (flag) {\n case 'a':\n return 0o1 | 0o100 | 0o2000\n case 'ax':\n return 0o1 | 0o100 | 0o2000 | 0o200\n case 'a+':\n return 0o2 | 0o100 | 0o2000\n case 'ax+':\n return 0o2 | 0o100 | 0o2000 | 0o200\n case 'as':\n return 0o1 | 0o100 | 0o2000 | 0o4010000\n case 'as+':\n return 0o2 | 0o100 | 0o2000 | 0o4010000\n case 'r':\n return 0o0\n case 'r+':\n return 0o2\n case 'w':\n return 0o1 | 0o100 | 0o1000\n case 'wx':\n return 0o1 | 0o100 | 0o200\n case 'w+':\n return 0o2 | 0o100 | 0o1000\n case 'wx+':\n return 0o2 | 0o100 | 0o200\n default:\n return 0o0\n }\n } else {\n return 0o0\n }\n}\n\nexport function validateSavedFilePath (savedFilePath: string) {\n if (savedFilePath.indexOf(rootSavedFilePath) !== 0) {\n throw new Error(`The filePath should in ${rootSavedFilePath}`)\n }\n}\n\nfunction parseSavedFilePath (srcPath: string, savedFilePath: string | undefined) : string {\n if (isString(savedFilePath) && savedFilePath.length > 0) {\n validateSavedFilePath(savedFilePath)\n return savedFilePath\n }\n return `${rootSavedFilePath}/${srcPath.split('/').pop()}`\n}\n\nfunction isFileExist (filePath: string): boolean {\n try {\n accessSync(filePath)\n return true\n } catch (_) {\n return false\n }\n}\n\nfunction getDirFiles (dirPath: string): Promise<GetDirFilesResult> {\n return new Promise((resolve, reject) => {\n file.list({\n uri: convertFilePathToUri(dirPath),\n success: ({ fileList }) => {\n resolve({\n files: fileList.filter(({ type }) => type.toLowerCase() === 'file').map(({ uri }) => convertUriToFilePath(uri)),\n dirs: fileList.filter(({ type }) => type.toLowerCase() === 'dir').map(({ uri }) => convertUriToFilePath(uri))\n })\n },\n fail: (error) => {\n reject(new Error(error))\n }\n })\n })\n}\n\nconst readCompressedFile = temporarilyNotSupport('readCompressedFile')\n\nfunction readCompressedFileSync (_: Taro.FileSystemManager.readCompressedFileSync.Option): ArrayBuffer {\n temporarilyNotSupport('readCompressedFileSync')(_)\n return new ArrayBuffer(0)\n}\n\nfunction readdirSync (_: string): string[] {\n temporarilyNotSupport('readdirSync')(_)\n return []\n}\n\nconst readZipEntry = temporarilyNotSupport('readZipEntry')\n\nfunction access (option: Taro.FileSystemManager.AccessOption) {\n try {\n validateParams('access', option, pathSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n fileio.access(option.path, (error) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n } else {\n callCallbackSuccess(undefined, option)\n }\n })\n}\n\nfunction accessSync (path: string) {\n fileio.accessSync(path)\n}\n\nfunction mkdir (option: Taro.FileSystemManager.MkdirOption) {\n try {\n validateParams('mkdir', option, dirPathSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n file.mkdir({\n uri: convertFilePathToUri(option.dirPath),\n recursive: option.recursive,\n success: () => callCallbackSuccess(undefined, option),\n fail: (error, code) => {\n const res = { errMsg: `mkdir invoke failed, code: ${code}, error: ${error}` }\n callCallbackFail(res, option)\n }\n })\n}\n\nfunction mkdirSync (dirPath: string, recursive?: boolean) {\n if (recursive === true) {\n const pathParts = dirPath.split('/')\n for (let index = 0; index < pathParts.length; index++) {\n const filePath = pathParts.slice(0, index + 1).join('/')\n if (filePath.length === 0 || isFileExist(filePath)) {\n continue\n }\n fileio.mkdirSync(filePath)\n }\n } else {\n fileio.mkdirSync(dirPath)\n }\n}\n\nfunction rmdir (option: Taro.FileSystemManager.RmdirOption) {\n try {\n validateParams('rmdir', option, dirPathSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n file.rmdir({\n uri: convertFilePathToUri(option.dirPath),\n recursive: option.recursive,\n success: () => callCallbackSuccess(undefined, option),\n fail: (error, code) => {\n const res = { errMsg: `rmdir invoke failed, code: ${code}, error: ${error}` }\n callCallbackFail(res, option)\n }\n })\n}\n\nfunction rmdirSync (dirPath: string, recursive?: boolean) {\n if (recursive === true) {\n temporarilyNotSupport('rmdirSync recursive')(dirPath)\n } else {\n fileio.rmdirSync(dirPath)\n }\n}\n\nfunction readdir (option: Taro.FileSystemManager.ReaddirOption) {\n try {\n validateParams('readdir', option, dirPathSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n\n getDirFiles(option.dirPath).then(({ files, dirs }) => {\n callCallbackSuccess({ files: [...files, ...dirs] }, option)\n }).catch((error) => {\n const res = { errMsg: error.message }\n callCallbackFail(res, option)\n })\n}\n\nfunction copyFile (option: Taro.FileSystemManager.CopyFileOption) {\n try {\n validateParams('copyFile', option, copyFileSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n fileio.copyFile(option.srcPath, option.destPath, 0, (error) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n } else {\n callCallbackSuccess(undefined, option)\n }\n })\n}\n\nfunction copyFileSync (srcPath: string, destPath: string) {\n fileio.copyFileSync(srcPath, destPath, 0)\n}\n\nfunction open (option: Taro.FileSystemManager.OpenOption) {\n try {\n validateParams('open', option, filePathSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n // 由于 HarmonyOS 异步方法 fileio.open 在【文件不存在则创建】模式下依旧抛出 No such file or directory 异常,\n // 为保证接口的可用性,此处降级使用 fileio.openSync 方法。\n const openPromise = new Promise((resolve, reject) => {\n try {\n const fd = fileio.openSync(option.filePath, convertOpenFlag(option.flag), 0o666)\n resolve({ fd: fd.toString() })\n } catch (error) {\n reject(new Error(error.message ? error.message : error))\n }\n })\n openPromise.then((res) => callCallbackSuccess(res, option))\n .catch((error) => callCallbackFail({ errMsg: error.message }, option))\n}\n\nfunction openSync (option: Taro.FileSystemManager.OpenSyncOption): string {\n validateParams('openSync', option, filePathSchema)\n return fileio.openSync(option.filePath, convertOpenFlag(option.flag), 0o666).toString()\n}\n\nfunction read (option: Taro.FileSystemManager.ReadOption) {\n try {\n validateParams('read', option, readSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n\n fileio.read(convertFd(option.fd), option.arrayBuffer, convertReadOption(option), (error, readOut) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n } else {\n callCallbackSuccess({ bytesRead: readOut.bytesRead, arrayBuffer: readOut.buffer }, option)\n }\n })\n}\n\nfunction readSync (option: Taro.FileSystemManager.ReadSyncOption): ReadResult {\n validateParams('readSync', option, readSchema)\n return {\n bytesRead: fileio.readSync(convertFd(option.fd), option.arrayBuffer, convertReadOption(option)),\n arrayBuffer: option.arrayBuffer\n }\n}\n\n/**\n * HarmonyOS encoding 目前仅支持 utf-8,详情参见:\n * https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001168366687#section17477155374810\n */\nfunction readFile (option: Taro.FileSystemManager.ReadFileOption) {\n try {\n validateParams('readFile', option, filePathSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n\n fileio.readText(option.filePath, convertReadFileOption(option), (error, data) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n } else {\n callCallbackSuccess({ data }, option)\n }\n })\n}\n\n/**\n * HarmonyOS encoding 目前仅支持 utf-8,详情参见:\n * https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001168366687#section4147155065718\n */\nfunction readFileSync (filePath: string, encoding?: keyof Taro.FileSystemManager.Encoding, position?: number, length?: number): string | ArrayBuffer {\n return fileio.readTextSync(filePath, convertReadFileOption({ filePath, encoding, length, position }))\n}\n\n/**\n * HarmonyOS encoding 目前仅支持 utf-8,详情参见:\n * https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001168366687#section140547195118\n */\nfunction write (option: Taro.FileSystemManager.WriteOption) {\n const data = convertDataToString(option.data)\n try {\n validateParams('write', { ...option, data }, writeSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n fileio.write(convertFd(option.fd), data, convertWriteOption(option), (error, bytesWritten) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n } else {\n callCallbackSuccess({ bytesWritten }, option)\n }\n })\n}\n\n/**\n * HarmonyOS encoding 目前仅支持 utf-8,详情参见:\n * https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001168366687#section144923345218\n */\nfunction writeSync (option: Taro.FileSystemManager.WriteSyncOption): WriteResult {\n const data = convertDataToString(option.data)\n validateParams('writeSync', { ...option, data }, writeSchema)\n return {\n bytesWritten: fileio.writeSync(convertFd(option.fd), data, convertWriteOption(option))\n }\n}\n\nfunction writeFileWithFlag (option: Taro.FileSystemManager.WriteFileOption, flag: keyof Taro.FileSystemManager.flag) {\n open({\n flag,\n filePath: option.filePath,\n success: ({ fd }) => {\n const writePromise = new Promise((resolve) => {\n write({\n fd,\n data: option.data,\n success: (res) => resolve({\n error: null,\n res\n }),\n fail: (res) => resolve({\n error: res,\n res: null\n })\n })\n })\n writePromise.then(({ error, res }) => {\n close({\n fd,\n success: () => {\n if (error === null) {\n callCallbackSuccess(res, option)\n } else {\n callCallbackFail(error, option)\n }\n },\n fail: (res) => callCallbackFail(res, option)\n })\n })\n },\n fail: (res) => callCallbackFail(res, option)\n })\n}\n\nfunction writeFile (option: Taro.FileSystemManager.WriteFileOption) {\n writeFileWithFlag(option, 'w')\n}\n\nfunction writeFileSyncWithFlag (filePath: string, data: string | ArrayBuffer, flag: keyof Taro.FileSystemManager.flag) {\n const fd = openSync({ filePath, flag })\n writeSync({ fd, data })\n closeSync({ fd })\n}\n\nfunction writeFileSync (filePath: string, data: string | ArrayBuffer) {\n writeFileSyncWithFlag(filePath, data, 'w')\n}\n\nfunction appendFile (option: Taro.FileSystemManager.AppendFileOption) {\n writeFileWithFlag(option, 'a')\n}\n\nfunction appendFileSync (filePath: string, data: string | ArrayBuffer) {\n writeFileSyncWithFlag(filePath, data, 'a')\n}\n\nfunction rename (option: Taro.FileSystemManager.RenameOption) {\n try {\n validateParams('rename', option, renameSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n fileio.rename(option.oldPath, option.newPath, (error) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n } else {\n callCallbackSuccess(undefined, option)\n }\n })\n}\n\nfunction renameSync (oldPath: string, newPath: string) {\n fileio.renameSync(oldPath, newPath)\n}\n\nfunction unlink (option: Taro.FileSystemManager.UnlinkOption) {\n try {\n validateParams('unlink', option, filePathSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n\n fileio.unlink(option.filePath, (error) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n } else {\n callCallbackSuccess(undefined, option)\n }\n })\n}\n\nfunction unlinkSync (filePath: string) {\n fileio.unlinkSync(filePath)\n}\n\nfunction fstat (option: Taro.FileSystemManager.FstatOption) {\n try {\n validateParams('fstat', option, fdSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n fileio.fstat(convertFd(option.fd), (error, stats) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n } else {\n const res = {\n mode: stats.mode.toString(),\n size: stats.size,\n lastAccessedTime: stats.atime,\n lastModifiedTime: stats.mtime,\n isDirectory: () => stats.isDirectory(),\n isFile: () => stats.isFile()\n }\n callCallbackSuccess({ stats: res }, option)\n }\n })\n}\n\nfunction fstatSync (option: Taro.FileSystemManager.FstatSyncOption): Taro.Stats {\n validateParams('fstatSync', option, fdSchema)\n const stats = fileio.fstatSync(convertFd(option.fd))\n return {\n mode: stats.mode.toString(),\n size: stats.size,\n lastAccessedTime: stats.atime,\n lastModifiedTime: stats.mtime,\n isDirectory: () => stats.isDirectory(),\n isFile: () => stats.isFile()\n }\n}\n\nfunction statWithFd (fd: string): Promise<StatWithFdResult> {\n return new Promise((resolve) => {\n fstat({\n fd,\n success: ({ stats }) => resolve({\n stats,\n error: null\n }),\n fail: (error) => resolve({\n error,\n stats: null\n })\n })\n })\n}\n\nfunction statWithPath (path: string): Promise<Taro.Stats> {\n return new Promise((resolve, reject) => {\n open({\n filePath: path,\n flag: 'r',\n success: ({ fd }) => {\n statWithFd(fd).then(({ error, stats }) => {\n close({\n fd,\n success: () => {\n if (error === null) {\n resolve(stats!)\n } else {\n reject(error)\n }\n },\n fail: (error) => reject(error)\n })\n })\n },\n fail: (error) => reject(error)\n })\n })\n}\n\nasync function statWithRecursive (rootPath: string): Promise<Record<string, Taro.Stats>> {\n let result: Record<string, Taro.Stats> = {}\n const { files, dirs } = await getDirFiles(rootPath)\n for (const dir of dirs) {\n result[dir] = await statWithPath(dir)\n result = {\n ...result,\n ...(await statWithRecursive(dir))\n }\n }\n for (const file of files) {\n result[file] = await statWithPath(file)\n }\n return result\n}\n\nfunction stat (option: Taro.FileSystemManager.StatOption) {\n try {\n validateParams('fstat', option, pathSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n\n const statPromise = option.recursive === true ? statWithRecursive(option.path) : statWithPath(option.path)\n statPromise.then((stats) => {\n callCallbackSuccess({ stats }, option)\n }).catch((error) => {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n })\n}\n\nfunction statSync (path: string, recursive?: boolean): Taro.Stats | any {\n if (recursive === true) {\n return temporarilyNotSupport('statSync recursive')(path)\n }\n const fd = openSync({ filePath: path, flag: 'r' })\n const stats = fstatSync({ fd })\n closeSync({ fd })\n return stats\n}\n\nfunction getFileInfo (option: Taro.FileSystemManager.getFileInfoOption) {\n statWithPath(option.filePath).then((stats) => {\n callCallbackSuccess({ size: stats.size }, option)\n }).catch((error) => {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n })\n}\n\nfunction getSavedFileList (option: Taro.FileSystemManager.getSavedFileListOption) {\n statWithRecursive(rootSavedFilePath).then((stats) => {\n const fileList = Object.keys(stats).map((filePath) => {\n const file = stats[filePath]\n if (file.isFile()) {\n return {\n filePath,\n size: file.size\n }\n }\n return null\n }).filter((file) => file !== null)\n callCallbackSuccess({ fileList }, option)\n }).catch((error) => {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n })\n}\n\nfunction ftruncate (option: Taro.FileSystemManager.FtruncateOption) {\n try {\n validateParams('ftruncate', option, fdSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n\n fileio.ftruncate(convertFd(option.fd), option.length ?? 0, (error) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n } else {\n callCallbackSuccess(undefined, option)\n }\n })\n}\n\nfunction ftruncateSync (option: Taro.FileSystemManager.FtruncateSyncOption) {\n validateParams('ftruncateSync', option, fdSchema)\n fileio.ftruncateSync(convertFd(option.fd), option.length ?? 0)\n}\n\nfunction truncate (option: Taro.FileSystemManager.TruncateOption) {\n try {\n validateParams('truncate', option, filePathSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n\n fileio.truncate(option.filePath, option.length ?? 0, (error) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n } else {\n callCallbackSuccess(undefined, option)\n }\n })\n}\n\nfunction truncateSync (option: Taro.FileSystemManager.TruncateSyncOption) {\n validateParams('truncateSync', option, filePathSchema)\n fileio.truncateSync(option.filePath, option.length ?? 0)\n}\n\nfunction close (option: Taro.FileSystemManager.CloseOption) {\n try {\n validateParams('close', option, fdSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n fileio.close(convertFd(option.fd), (error) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n } else {\n callCallbackSuccess(undefined, option)\n }\n })\n}\n\nfunction closeSync (option: Taro.FileSystemManager.CloseSyncOption) {\n validateParams('closeSync', option, fdSchema)\n fileio.closeSync(convertFd(option.fd))\n}\n\nfunction saveFile (option: Taro.FileSystemManager.SaveFileOption) {\n try {\n validateParams('saveFile', option, saveFileSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n\n try {\n const savedFilePath = parseSavedFilePath(option.tempFilePath, option.filePath)\n rename({\n oldPath: option.tempFilePath,\n newPath: savedFilePath,\n success: () => {\n callCallbackSuccess({ savedFilePath }, option)\n },\n fail: (res) => {\n callCallbackFail(res, option)\n }\n })\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n}\n\nfunction saveFileSync (tempFilePath: string, filePath?: string): string {\n const savedFilePath = parseSavedFilePath(tempFilePath, filePath)\n renameSync(tempFilePath, savedFilePath)\n return savedFilePath\n}\n\nfunction removeSavedFile (option: Taro.FileSystemManager.RemoveSavedFileOption) {\n try {\n validateParams('removeSavedFile', option, filePathSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n try {\n validateSavedFilePath(option.filePath)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n unlink(option)\n}\n\nfunction unzip (option: Taro.FileSystemManager.UnzipOption) {\n try {\n validateParams('unzip', option, unzipSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callCallbackFail(res, option)\n }\n zlib.unzipFile(option.zipFilePath, option.targetPath).then(() => {\n callCallbackSuccess(undefined, option)\n }).catch(error => {\n const res = { errMsg: error.message ? error.message : error }\n callCallbackFail(res, option)\n })\n}\n\nexport function getFileSystemManager (): Taro.FileSystemManager {\n return {\n access,\n accessSync,\n appendFile,\n appendFileSync,\n close,\n closeSync,\n copyFile,\n copyFileSync,\n fstat,\n fstatSync,\n ftruncate,\n ftruncateSync,\n getFileInfo,\n getSavedFileList,\n mkdir,\n mkdirSync,\n open,\n openSync,\n read,\n readCompressedFile,\n readCompressedFileSync,\n readdir,\n readdirSync,\n readFile,\n readFileSync,\n readSync,\n readZipEntry,\n removeSavedFile,\n rename,\n renameSync,\n rmdir,\n rmdirSync,\n saveFile,\n saveFileSync,\n stat,\n statSync,\n truncate,\n truncateSync,\n unlink,\n unlinkSync,\n unzip,\n write,\n writeFile,\n writeFileSync,\n writeSync\n }\n}\n","/**\n * HarmonyOS 文档:\n * https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001168366687\n *\n * WX 文档:\n * https://developers.weixin.qq.com/miniprogram/dev/api/file/wx.saveFileToDisk.html\n *\n * Taro.js 文档\n * https://taro-docs.jd.com/taro/docs/apis/files/saveFileToDisk\n *\n * HarmonyOS 不支持接口:\n * saveFileToDisk\n *\n * HarmonyOS 差异性接口:\n * openDocument:showMenu、type 选项无效\n * getSavedFileList:返回值 fileList 中的每一项不包含 createTime 属性\n * getSavedFileInfo:返回值不包含 createTime 属性\n */\n\nimport document from '@ohos.document'\nimport fileio from '@ohos.fileio'\nimport Taro from '@tarojs/taro'\n\nimport { callAsyncFail, callAsyncSuccess, temporarilyNotSupport, validateParams } from '../utils'\nimport { getFileSystemManager, validateSavedFilePath } from './manager'\n\nconst filePathSchema = {\n filePath: 'String'\n}\n\nexport const saveFileToDisk = temporarilyNotSupport('saveFileToDisk')\n\n/**\n * HarmonyOS 不支持 showMenu 选项,并且 type 目前仅支持 *,详情参见:\n * https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-document-0000001168936589#section9616125953711\n */\nexport function openDocument (option: Taro.openDocument.Option): Promise<any> {\n return new Promise((resolve, reject) => {\n try {\n validateParams('access', option, filePathSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, option)\n }\n document.show(option.filePath, '*', (error) => {\n if (error) {\n const res = { errMsg: error.message ? error.message : error }\n return callAsyncFail(reject, res, option)\n } else {\n callAsyncSuccess(resolve, undefined, option)\n }\n })\n })\n}\n\nexport function saveFile (option: Taro.saveFile.Option): Promise<any> {\n return new Promise((resolve, reject) => {\n const fileSystemManager = getFileSystemManager()\n fileSystemManager.saveFile({\n tempFilePath: option.tempFilePath,\n filePath: option.filePath,\n success: (res) => {\n callAsyncSuccess(resolve, res, option)\n },\n fail: (res) => {\n callAsyncFail(reject, res, option)\n }\n })\n })\n}\n\nexport function removeSavedFile (option: Taro.removeSavedFile.Option): Promise<any> {\n return new Promise((resolve, reject) => {\n const fileSystemManager = getFileSystemManager()\n fileSystemManager.removeSavedFile({\n filePath: option.filePath,\n success: (res) => {\n callAsyncSuccess(resolve, res, option)\n },\n fail: (res) => {\n callAsyncFail(reject, res, option)\n }\n })\n })\n}\n\nexport function getFileInfo (option: Taro.getFileInfo.Option): Promise<Taro.getFileInfo.SuccessCallbackResult | Taro.getFileInfo.FailCallbackResult> {\n return new Promise((resolve, reject) => {\n const fileSystemManager = getFileSystemManager()\n fileSystemManager.getFileInfo({\n filePath: option.filePath,\n success: ({ size }) => {\n fileio.hash(option.filePath, option.digestAlgorithm ?? 'md5').then((digest) => {\n callAsyncSuccess(resolve, { size, digest }, option)\n }).catch((error) => {\n const res = { errMsg: error.message ? error.message : error }\n callAsyncFail(reject, res, option)\n })\n },\n fail: (res) => {\n callAsyncFail(reject, res, option)\n }\n })\n })\n}\n\nexport function getSavedFileList (option?: Taro.getSavedFileList.Option): Promise<Taro.getSavedFileList.SuccessCallbackResult> {\n return new Promise((resolve, reject) => {\n const fileSystemManager = getFileSystemManager()\n fileSystemManager.getSavedFileList({\n success: (res) => callAsyncSuccess(resolve, res, option),\n fail: (res) => callAsyncFail(reject, res, option)\n })\n })\n}\n\nexport function getSavedFileInfo (option: Taro.getSavedFileInfo.Option): Promise<Taro.getSavedFileInfo.SuccessCallbackResult> {\n return new Promise((resolve, reject) => {\n try {\n validateParams('getSavedFileInfo', option, filePathSchema)\n validateSavedFilePath(option.filePath)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, option)\n }\n const fileSystemManager = getFileSystemManager()\n fileSystemManager.getFileInfo({\n filePath: option.filePath,\n success: ({ size }) => callAsyncSuccess(resolve, { size }, option),\n fail: (res) => callAsyncFail(reject, res, option)\n })\n })\n}\n\nexport { getFileSystemManager }\n","import { Current } from '@tarojs/runtime'\n\nimport { temporarilyNotSupport } from '../utils'\n\nexport const ENV_TYPE = {\n WEAPP: 'WEAPP',\n SWAN: 'SWAN',\n ALIPAY: 'ALIPAY',\n TT: 'TT',\n QQ: 'QQ',\n JD: 'JD',\n WEB: 'WEB',\n RN: 'RN',\n HARMONY: 'HARMONY',\n QUICKAPP: 'QUICKAPP'\n}\n\nexport function getEnv () {\n return ENV_TYPE.HARMONY\n}\n\nexport const getCurrentInstance = () => Current\n\nexport const nextTick = (cb: (...args: any[]) => any, ctx?: Record<string, any>) => {\n setTimeout(function () {\n ctx ? cb.call(ctx) : cb()\n }, 1)\n}\n\nexport const requirePlugin = temporarilyNotSupport('requirePlugin')\n\nexport { eventCenter, Events, History } from '@tarojs/runtime/dist/runtime.esm'\n","// HarmonyOS 文档: https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-geolocation-0000001199568865#section13752433138\n// WX 文档: https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.onLocationChange.html\n// ✅ wx.offLocationChange\n// ✅ wx.getLocation\n// ✅ wx.onLocationChange\n\n// 不支持实现\n// ❌ wx.startLocationUpdateBackground\n// ❌ wx.onLocationChangeError\n// ❌ wx.offLocationChangeError\n// ❌ wx.openLocation 地图相关\n// ❌ wx.choosePoi 地图相关\n// ❌ wx.chooseLocation 地图相关\n// ❌ wx.stopLocationUpdate\n// ❌ wx.startLocationUpdate\n\nimport geoLocationManager from '@ohos.geoLocationManager'\nimport Taro from '@tarojs/taro'\n\nimport { callAsyncFail, callAsyncSuccess, validateParams } from '../utils'\n\ninterface IGetOHOSGeolocationParams {\n type?: string\n altitude?: boolean\n isHighAccuracy?: boolean\n highAccuracyExpireTime?: number\n priority?: number // 数值为固定几种\n scenario?: number // 数值为固定几种\n maxAccuracy?: number // 表示精度信息,单位是米。\n timeoutMs?: number\n}\n\ninterface ILocationRequest {\n priority?: number\n scenario?: number // 勘误:注意 Harmony OS 这个参数是必填\n timeInterval?: number\n distanceInterval?: number\n maxAccuracy?: number\n}\n\ninterface ILocationSuccessDataOHOS {\n latitude: number\n longitude: number\n altitude: number\n accuracy: number\n speed: number\n timeStamp: number\n direction: number\n timeSinceBoot: number\n additions: Array<string>\n additionSize: number\n}\n\ninterface ILocationSuccessOHOS {\n code: number\n data: ILocationSuccessDataOHOS\n}\n\nfunction formatLocation (location: ILocationSuccessDataOHOS) {\n const locationWX = {\n latitude: location.latitude,\n longitude: location.longitude,\n altitude: location.altitude,\n accuracy: location.accuracy,\n speed: location.speed,\n verticalAccuracy: 0, // OHOS 不支持返回此参数,直接设置为默认值\n horizontalAccuracy: 0 // OHOS 不支持返回此参数,直接设置为默认值\n }\n return locationWX\n}\n// TODO:增加参数校验\n// const getLocationSchema = {\n// type: 'String',\n// altitude: 'Boolean',\n// ishighAccuracy: 'Boolean',\n// highAccuracyExpireTime: 'number'\n// }\n\nexport const getLocation: typeof Taro.getLocation = function (options = {}) {\n return new Promise((resolve, reject) => {\n /**\n * ohos 有 priority, scenario, maxAccuracy, timeoutMs\n * wx 有 type, altitude, isHighAccuracy, highAccuracyExpireTime\n * 二者参数不一致\n */\n const { type, altitude, isHighAccuracy, highAccuracyExpireTime } = options\n const params: IGetOHOSGeolocationParams = {\n type,\n altitude,\n isHighAccuracy,\n highAccuracyExpireTime\n }\n try {\n return geoLocationManager.getCurrentLocation(params).then((location: ILocationSuccessOHOS) => {\n if (location.code !== 0) {\n callAsyncFail(reject, location, options)\n } else {\n const locationWX = formatLocation(location.data)\n callAsyncSuccess(resolve, locationWX, options)\n }\n }).catch(error => {\n callAsyncFail(reject, error, options)\n })\n } catch (error) {\n callAsyncFail(reject, error, options)\n }\n })\n}\n\nexport const onLocationChange: typeof Taro.onLocationChange = function (callback) {\n validateParams('onLocationChange', [callback], ['Function'])\n const requestInfo: ILocationRequest = {}\n geoLocationManager.on('locationChange', requestInfo, (location: ILocationSuccessDataOHOS) => {\n if (location) {\n const locationWX = formatLocation(location)\n callback(locationWX)\n }\n })\n}\n\nexport const offLocationChange: typeof Taro.offLocationChangeError = function (callback) {\n validateParams('offLocationChange', [callback], ['Function'])\n geoLocationManager.off('locationChange', (location: ILocationSuccessOHOS) => {\n const status = {\n errCode: 200,\n errMsg: location ? 'offLocationChange is off' : 'offLocationChange err'\n }\n\n if (callback) {\n callback(status)\n }\n })\n}\n","// HarmonyOS 文档链接:https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-media-0000001103383404\n// WX 文档链接:https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.previewMedia.html\n// ✅ wx.previewMedia(Object object)\n// ✅ wx.chooseMedia\n\nimport mediaLibrary from '@ohos.multimedia.mediaLibrary'\nimport Taro from '@tarojs/taro'\n\nimport { callAsyncFail, callAsyncSuccess, validateParams } from '../utils'\n\ninterface IPreviewImagesOptionsOHOS {\n images: Array<string>\n index: number\n}\n\ninterface IChooseMediaOptionsOHOS {\n type: string\n count: number\n}\n\nconst previewMediaSchema = {\n sources: 'Array'\n}\n\n// TODO: 扩展支持预览video\nexport const previewMedia: typeof Taro.previewMedia = function (options) {\n return new Promise((resolve, reject) => {\n try {\n validateParams('previewMedia', options, previewMediaSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n const { sources, current } = options\n const urls: Array<string> = []\n for (const s of sources) {\n if (s.type === 'image') {\n urls.push(s.url)\n }\n }\n const previewImageOptions: IPreviewImagesOptionsOHOS = {\n images: urls,\n index: current || 0\n }\n mediaLibrary.getMediaLibrary().startImagePreview(previewImageOptions.images, previewImageOptions.index).then((value) => {\n callAsyncSuccess(resolve, value, options)\n }).catch((error) => {\n callAsyncFail(reject, error, options)\n })\n })\n}\n\nexport const chooseMedia: typeof Taro.chooseMedia = function (options) {\n return new Promise((resolve, reject) => {\n try {\n validateParams('chooseMedia', [options], ['Object'])\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n const { count = 9, mediaType = ['image'] } = options\n // HarmonyOS不支持image和video同时选择\n // TODO: 不支持视频拍摄,无现成组件,后续需要封装\n const mediaSelectOptions: IChooseMediaOptionsOHOS = {\n count,\n type: mediaType[0]\n }\n mediaLibrary.getMediaLibrary().startMediaSelect(mediaSelectOptions).then((value) => {\n callAsyncSuccess(resolve, value, options)\n }).catch((error) => {\n callAsyncFail(reject, error, options)\n })\n })\n}\n","// HarmonyOS 图片模块首批接口从API version 7开始支持。\n// HarmonyOS 文档链接:https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-image-0000001122977382\n// WX 文档链接:https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.saveImageToPhotosAlbum.html\n\n// ✅ wx.getImageInfo(Object object) API7以上支持\n// ✅ wx.compressImage(Object object) API7以上支持\n// ✅ wx.chooseImage(Object object)\n// ❌ wx.chooseMessageFile(Object object) HarmonyOS不支持\n// ❌ wx.saveImageToPhotosAlbum(Object object) api 9+ HarmonyOS不支持\n// ❌ wx.previewImage(Object object) api 9+ HarmonyOS不支持\n\nimport picker from '@ohos.file.picker'\nimport image from '@ohos.multimedia.image'\nimport { isNull } from '@tarojs/shared'\nimport Taro from '@tarojs/taro'\n\nimport { callAsyncFail, callAsyncSuccess, temporarilyNotSupport, validateParams } from '../utils'\n\ninterface IPackingOptionOHOS {\n format: string\n quality: number\n}\n\nconst getImageInfoSchema = {\n url: 'String'\n}\n\nconst compressImageSchema = {\n url: 'String'\n}\n\nconst chooseImageSchema = {\n count: 'Number'\n}\n\nconst photoSelectOptions = new picker.PhotoSelectOptions()\n\nexport const getImageInfo: typeof Taro.getImageInfo = function (options) {\n return new Promise((resolve, reject) => {\n try {\n validateParams('getImageInfo', options, getImageInfoSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n const { src } = options\n // FIX: 调试发现在版本api7中 source 为 undefined, 需鸿蒙侧确认\n const source = image.createImageSource(src)\n if (isNull(source)) {\n const createImageSourceError = { errMsg: 'getImageInfo fail: createImageSource has failed.' }\n callAsyncFail(reject, createImageSourceError, options)\n return\n }\n source.getImageInfo().then((value) => {\n callAsyncSuccess(resolve, value, options)\n }).catch((error) => {\n callAsyncFail(reject, error, options)\n })\n })\n}\n\nexport const compressImage: typeof Taro.compressImage = function (options) {\n return new Promise((resolve, reject) => {\n try {\n validateParams('compressImage', options, compressImageSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n const { src, quality = 80 } = options\n\n const source = image.createImageSource(src)\n if (isNull(source)) {\n const createImageSourceError = { errMsg: 'compressImage fail: createImageSource has failed.' }\n callAsyncFail(reject, createImageSourceError, options)\n return\n }\n\n const packer = image.createImagePacker(src)\n if (isNull(packer)) {\n const createImagePackerError = { errMsg: 'compressImage fail: createImagePacker has failed.' }\n callAsyncFail(reject, createImagePackerError, options)\n }\n\n const packingOptionsOHOS: IPackingOptionOHOS = {\n // TODO:需要获取文件名后缀\n format: 'image/jpeg',\n quality: quality\n }\n packer.packing(source, packingOptionsOHOS).then((value) => {\n callAsyncSuccess(resolve, value, options)\n }).catch((error) => {\n callAsyncFail(reject, error, options)\n })\n })\n}\n\nexport const chooseImage: typeof Taro.chooseImage = function (options) {\n return new Promise((resolve, reject) => {\n try {\n validateParams('chooseImage', options, chooseImageSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n\n const { count = 9 } = options\n const photoViewPicker = new picker.PhotoViewPicker()\n\n photoSelectOptions.maxSelectNumber = count // 选择媒体文件的最大数目\n photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE // 过滤选择媒体文件类型为IMAGE\n\n photoViewPicker.select(photoSelectOptions).then((photoSelectResult) => {\n callAsyncSuccess(resolve, { tempFilePaths: photoSelectResult.photoUris })\n }).catch((error) => {\n callAsyncFail(reject, error, options)\n })\n })\n}\n\nexport const previewImage = temporarilyNotSupport('previewImage')\nexport const saveImageToPhotosAlbum = temporarilyNotSupport('saveImageToPhotosAlbum')\n","// HarmonyOS 文档链接:https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-media-0000001103383404\n// WX 文档链接:https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseVideo.html\n// ✅ wx.saveVideoToPhotosAlbum\n// ❌ wx.openVideoEditor\n// ❌ wx.getVideoInfo\n// ❌ wx.createVideoContext\n// ❌ wx.compressVideo\n// ✅ wx.chooseVideo\n// VideoContext\n// ❌ VideoContext.exitBackgroundPlayback\n// ❌ VideoContext.exitFullScreen\n// ❌ VideoContext.exitPictureInPicture\n// ❌ VideoContext.hideStatusBar\n// ❌ VideoContext.pause\n// ❌ VideoContext.play\n// ❌ VideoContext.playbackRate\n// ❌ VideoContext.requestBackgroundPlayback\n// ❌ VideoContext.requestFullScreen\n// ❌ VideoContext.seek\n// ❌ VideoContext.sendDanmu\n// ❌ VideoContext.showStatusBar\n// ❌ VideoContext.stop\n\nimport mediaLibrary from '@ohos.multimedia.mediaLibrary'\nimport Taro from '@tarojs/taro'\n\nimport { callAsyncFail, callAsyncSuccess, validateParams } from '../utils'\n\ninterface IChooseVideoOptionOHOS {\n type: string\n count: number\n}\n\ninterface ISaveVideoToPhotosAlbumOptionsOHOS {\n src: string\n mimeType: string\n relativePath?: string\n}\n\nconst saveVideoToPhotosAlbumSchema = {\n filePath: 'String'\n}\n\n// TODO: 1.返回属性补全\n// TODO: 2.只支持从相册选择,补充摄像头拍摄功能,需要HarmonyOS提供选择组件\nexport const chooseVideo: typeof Taro.chooseVideo = function (options = {}) {\n return new Promise((resolve, reject) => {\n try {\n validateParams('chooseVideo', [options], ['Object'])\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n const chooseVideoOptionsOHOS: IChooseVideoOptionOHOS = {\n type: 'video',\n count: 1\n }\n mediaLibrary.getMediaLibrary().startMediaSelect(chooseVideoOptionsOHOS).then((value) => {\n callAsyncSuccess(resolve, { tempFilePaths: value })\n }).catch((error) => {\n callAsyncFail(reject, error, options)\n })\n })\n}\n\nexport const saveVideoToPhotosAlbum: typeof Taro.saveVideoToPhotosAlbum = function (options) {\n return new Promise((resolve, reject) => {\n try {\n validateParams('saveVideoToPhotosAlbum', options, saveVideoToPhotosAlbumSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n const { filePath } = options\n const saveVideoToPhotosAlbumOptions: ISaveVideoToPhotosAlbumOptionsOHOS = {\n src: filePath,\n // TODO:需要获取文件名后缀,'video/mp4'、'video/3gpp'等\n mimeType: 'video/mp4'\n }\n mediaLibrary.getMediaLibrary().storeMediaAsset(saveVideoToPhotosAlbumOptions).then((value) => {\n callAsyncSuccess(resolve, value, options)\n }).catch((error) => {\n callAsyncFail(reject, error, options)\n })\n })\n}\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","// HarmonyOS 文档链接:https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-request-0000001123753962#section455311474372\n// WX 文档链接:https://developers.weixin.qq.com/miniprogram/dev/api/network/download/wx.downloadFile.html\n// ✅ wx.downloadFile (BETA)7+,因为使用了 query 和 on('complete')\n// ✅ DownloadTask.abort\n// ✅ DownloadTask.offProgressUpdate\n// ✅ DownloadTask.onProgressUpdate\n// ❌ DownloadTask.onHeadersReceived 此接口 ohos 不支持\n// ❌ DownloadTask.offHeadersReceived 此接口 ohos 不支持\n\nimport request from '@ohos.request'\nimport Taro, { DownloadTask } from '@tarojs/taro'\n\nimport { callAsyncFail, callAsyncSuccess, validateParams } from '../utils'\n\ninterface IDownloadConfigOHOS {\n url: string\n header?: any\n filePath?: string\n enableMetered?: boolean // ohos参数\n enableRoaming?: boolean // ohos参数\n description?: string // ohos参数\n networkType?: number // ohos参数\n title?: string // ohos参数\n}\n\nconst downloadFileSchema = {\n url: 'String'\n}\n\nexport const downloadFile: typeof Taro.downloadFile = function (options) {\n let downloadTask: any = {}\n\n const downloadTaskWX: any = new Promise((resolve, reject) => {\n const { url, header, filePath } = options\n\n try {\n validateParams('downloadFile', options, downloadFileSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n\n const ohosParams: IDownloadConfigOHOS = {\n url\n }\n if (header) ohosParams.header = header\n if (filePath) ohosParams.filePath = filePath\n\n request.download(ohosParams).then((dataDownload:any) => {\n downloadTask = dataDownload\n\n // TODO: 建议鸿蒙优化 complete 回调接口。\n // ohos 的 complete 回调不返回任何下载信息,需要调用 query 查询后,在 complete 和 fail 中调用回调返回\n downloadTask.query().then(dataQuery => {\n downloadTask.on('complete', () => {\n dataQuery.status = dataQuery.statusCode\n callAsyncSuccess(resolve, dataQuery, options)\n })\n downloadTask.on('fail', (err) => {\n const res = {\n errMsg: err\n }\n callAsyncFail(reject, res, options)\n })\n }).catch((err) => {\n callAsyncFail(reject, err, options)\n })\n }).catch((err) => {\n callAsyncFail(reject, err, options)\n })\n })\n downloadTaskWX.abort = function () {\n downloadTask.remove((err: any, data: any) => {\n if (err) {\n return err\n }\n return data\n })\n }\n downloadTaskWX.offProgressUpdate = function offProgressUpdate (callback: DownloadTask.OnProgressUpdateCallback) {\n validateParams('offProgressUpdate', [callback], ['Function'])\n downloadTask.off('progress', (receivedSize: number, totalSize: number) => {\n const totalBytesWritten: number = receivedSize * 1024\n const totalBytesExpectedToWrite: number = totalSize * 1024\n // TODO: 进度应该保留几位小数?暂时保留6位\n const progress: number = +(receivedSize / totalSize).toFixed(6)\n const progressParams = {\n totalBytesWritten,\n totalBytesExpectedToWrite,\n progress,\n errMsg: 'Cancel progress listening is done.'\n }\n callback(progressParams)\n })\n }\n // wx 单位是 Bytes,ohos 单位是 KBytes\n downloadTaskWX.onProgressUpdate = function (callback: DownloadTask.OnProgressUpdateCallback) {\n validateParams('onProgressUpdate', [callback], ['Function'])\n downloadTask.on('progress', (receivedSize: number, totalSize: number) => {\n const totalBytesWritten: number = receivedSize * 1024\n const totalBytesExpectedToWrite: number = totalSize * 1024\n // TODO: 进度应该保留几位小数?暂时保留6位\n const progress: number = +(receivedSize / totalSize).toFixed(6)\n const progressParams: DownloadTask.OnProgressUpdateCallbackResult = {\n totalBytesWritten,\n totalBytesExpectedToWrite,\n progress\n }\n callback(progressParams)\n })\n }\n return downloadTaskWX\n}\n","// HarmonyOS 文档链接:https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-net-http-0000001168304341\n// WX 文档链接:https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html\n// ✅ wx.request\n// ✅ RequestTask.abort\n// ✅ RequestTask.offHeadersReceived\n// ✅ RequestTask.onHeadersReceived\n\nimport http from '@ohos.net.http'\nimport { isString, isUndefined } from '@tarojs/shared'\nimport Taro from '@tarojs/taro'\n\nimport { callAsyncFail, callAsyncSuccess, validateParams } from '../utils'\n\nconst METHOD: string [] = ['OPTIONS', 'GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'TRACE', 'CONNECT']\n\ninterface IRequestResultOHOS {\n result: string | any\n responseCode: number\n header\n}\n\ninterface IRequestParamsOHOS {\n method?: string\n header?: any\n extraData?: any | string\n readTimeout?: number\n connectTimeout?: number\n}\n\nconst requestSchema = {\n url: 'String'\n}\n\nexport const request: typeof Taro.request = function (options) {\n let httpRequestOhos: ReturnType<typeof http.createHttp>\n\n const requestTask: any = new Promise((resolve, reject) => {\n try {\n httpRequestOhos = http.createHttp()\n } catch (error) {\n const res = { errMsg: error }\n return callAsyncFail(reject, res, options)\n }\n\n const { url, method, header = {}, timeout, dataType, data } = options\n\n try {\n validateParams('send', options, requestSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n\n const keyOfContentType = Object.keys(header).find(item => item.toLowerCase() === 'content-type')\n\n if (!keyOfContentType) {\n header['Content-Type'] = 'application/json'\n }\n\n // 检查 Header 是否有 Referer\n if (isUndefined(header.Referer)) {\n const error = { errMsg: 'request fail parameter error: the header doesn‘t support Referer property' }\n callAsyncFail(reject, error, options)\n }\n\n // 检查 method 是否正确\n if (method) {\n if (!METHOD.includes(method)) {\n const error = { errMsg: `request fail parameter error: the method value should be one of the ${METHOD.join(',')}` }\n callAsyncFail(reject, error, options)\n }\n }\n\n const requestParamsOHOS: IRequestParamsOHOS = {\n method,\n header,\n extraData: data as IRequestParamsOHOS['extraData'],\n readTimeout: timeout,\n connectTimeout: timeout\n }\n\n httpRequestOhos.request(url, requestParamsOHOS).then((requestData: IRequestResultOHOS) => {\n const reswx = {\n data: dataType === 'json' && isString(requestData.result) ? JSON.parse(requestData.result) : requestData.result,\n statusCode: requestData.responseCode,\n header: requestData.header\n }\n callAsyncSuccess(resolve, reswx, options)\n }).catch(error => {\n callAsyncFail(reject, error, options)\n })\n })\n\n requestTask.abort = function () {\n httpRequestOhos.destroy()\n }\n\n requestTask.onHeadersReceived = function (callback) {\n validateParams('onHeadersReceived', [callback], ['Function'])\n httpRequestOhos.on('headerReceive', (err, res) => {\n callback(!err ? res : err)\n })\n }\n\n requestTask.offHeadersReceived = function (callback) {\n validateParams('offHeadersReceived', [callback], ['Function'])\n httpRequestOhos.off('headerReceive', (err, res) => {\n callback(!err ? res : err)\n })\n }\n\n return requestTask\n}\n","// HarmonyOS 文档链接:https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-request-0000001123753962#section455311474372\n// WX 文档链接:https://developers.weixin.qq.com/miniprogram/dev/api/network/upload/wx.uploadFile.html\n// ✅ wx.uploadFile\n// ✅ UploadTask.abort\n// ✅ UploadTask.offHeadersReceived (BETA)7+\n// ✅ UploadTask.offProgressUpdate\n// ✅ UploadTask.onHeadersReceived(BETA)7+\n// ✅ UploadTask.onProgressUpdate\n\nimport request from '@ohos.request'\nimport { isUndefined } from '@tarojs/shared'\nimport Taro, { UploadTask } from '@tarojs/taro'\n\nimport { callAsyncFail, callAsyncSuccess, validateParams } from '../utils'\n\ninterface IOHOSFileType {\n filename?: string\n name?: string\n url: string // 支持“dataability”和“internal”两种协议类型,但“internal”仅支持临时目录。详见官方文档\n type?: string\n}\n\ninterface IRequestDataOHOS {\n name?: string\n value?: string\n}\n\ninterface IUploadFileParamsOHOS {\n url: string // 资源地址\n header?: any\n method?: string // POST、PUT。缺省为POST\n files?: Array<IOHOSFileType> // 请使用 multipart/form-data提交。官方文档提供的demo未传此参数,应该是文档错了。\n data?: Array<IRequestDataOHOS>\n}\n\nconst uploadSchema = {\n url: 'String'\n // filePath: 'String',\n // name: 'String'\n}\n\n// wx 只支持 HTTP POST 请求,OHOS 支持 POST 和 PUT 请求\n// OHOS 不支持 wx 的 timeout,但是支持 file 文件列表上传,wx 是单文件上传\nexport const uploadFile: typeof Taro.uploadFile = function (options) {\n let uploadTask: any = {}\n\n const UploadTaskWX: any = new Promise((resolve, reject) => {\n let timer\n const { url, filePath, name, header, formData, timeout } = options\n\n try {\n validateParams('uploadFile', options, uploadSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n\n const file: IOHOSFileType = {\n url: filePath,\n name\n }\n const files: Array<IOHOSFileType> = [file]\n const ohosParams: IUploadFileParamsOHOS = {\n url,\n files,\n method: 'POST',\n header\n }\n\n if (formData) {\n const rData: Array<IRequestDataOHOS> = []\n Object.keys(formData).forEach((key: string) => {\n const rDataEle: IRequestDataOHOS = {\n name: key,\n value: formData[key]\n }\n rData.push(rDataEle)\n })\n ohosParams.data = rData\n }\n if (!isUndefined(timeout)) {\n timer = setTimeout(() => {\n const err: {errMsg: string} = {\n errMsg: 'uploadFile request timeout, please try again later.'\n }\n callAsyncFail(reject, err, options)\n }, timeout)\n }\n\n request.upload(ohosParams).then((dataUpload) => {\n if (timer) {\n clearTimeout(timer)\n }\n uploadTask = dataUpload\n callAsyncSuccess(resolve, UploadTaskWX, options)\n }).catch((err) => {\n if (timer) {\n clearTimeout(timer)\n }\n callAsyncFail(reject, err, options)\n })\n })\n\n UploadTaskWX.abort = function () {\n uploadTask.remove((err: any, result: any) => {\n if (err || result) {\n return err || result\n }\n return result\n })\n }\n UploadTaskWX.onHeadersReceived = function (callback: (params) => void) {\n validateParams('onHeadersReceived', [callback], ['Function'])\n uploadTask.on('headerReceive', (headers: any) => {\n callback(headers)\n })\n }\n UploadTaskWX.offHeadersReceived = function (callback: (params) => void) {\n validateParams('offHeadersReceived', [callback], ['Function'])\n uploadTask.off('headerReceive', (headers: any) => {\n callback(headers)\n })\n }\n // wx 单位是 Bytes,ohos 单位是 KBytes\n UploadTaskWX.onProgressUpdate = function (callback: UploadTask.OnProgressUpdateCallback) {\n validateParams('onProgressUpdate', [callback], ['Function'])\n uploadTask.on('progress', (uploadSize: number, totalSize: number) => {\n const totalBytesSent: number = uploadSize * 1024\n const totalBytesExpectedToSend: number = totalSize * 1024\n // TODO: 进度应该保留几位小数?暂时保留6位\n const progress: number = +(uploadSize / totalSize).toFixed(6)\n const progressParams: UploadTask.OnProgressUpdateCallbackResult = {\n totalBytesSent,\n totalBytesExpectedToSend,\n progress\n }\n callback(progressParams)\n })\n }\n UploadTaskWX.offProgressUpdate = function (callback: UploadTask.OnProgressUpdateCallback) {\n validateParams('offProgressUpdate', [callback], ['Function'])\n uploadTask.off('progress', (uploadSize: number, totalSize: number) => {\n const totalBytesSent: number = uploadSize * 1024\n const totalBytesExpectedToSend: number = totalSize * 1024\n // TODO: 进度应该保留几位小数?暂时保留6位\n const progress: number = +(uploadSize / totalSize).toFixed(6)\n const progressParams = {\n totalBytesSent,\n totalBytesExpectedToSend,\n progress,\n errMsg: 'Cancel progress listening is done.'\n }\n callback(progressParams)\n })\n }\n\n return UploadTaskWX\n}\n","// OpenHarmony 不支持全局操作 WebSocket\n// HarmonyOS 文档链接:https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-net-websocket-0000001168304641\n// WX 文档链接:https://developers.weixin.qq.com/miniprogram/dev/api/network/websocket/wx.sendSocketMessage.html\n// ✅ wx.connectSocket\n// ✅ SocketTask\n// ✅ SocketTask.close\n// ✅ SocketTask.onClose\n// ✅ SocketTask.onError\n// ✅ SocketTask.onMessage\n// ✅ SocketTask.onOpen\n// ✅ SocketTask.send\n\n// ❌ wx.sendSocketMessage\n// ❌ wx.onSocketOpen\n// ❌ wx.onSocketMessage\n// ❌ wx.onSocketError\n// ❌ wx.onSocketClose\n// ❌ wx.closeSocket\n\nimport webSocket from '@ohos.net.webSocket'\nimport Taro from '@tarojs/taro'\n\nimport { callAsyncFail, callAsyncSuccess, validateParams } from '../utils'\nimport { IAsyncParams } from '../utils/types'\n\ninterface ISendSocketOptions extends IAsyncParams {\n data: string\n}\n\nconst connectSocketSchema = {\n url: 'String'\n}\n\n// const closetSocketSchema = {\n// code: 'Number',\n// reason: 'String'\n// }\n\nconst sendSocketSchema = {\n data: 'String'\n}\n\nexport const connectSocket: typeof Taro.connectSocket = function (options) {\n let ws\n const SocketTaskWX: any = new Promise((resolve, reject) => {\n ws = webSocket.createWebSocket()\n\n const { url, header } = options\n\n try {\n validateParams('uploadFile', options, connectSocketSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n\n const result = {\n errMsg: 'websocket connect success'\n }\n ws.connect(url, { header }).then((value) => {\n callAsyncSuccess(resolve, value, options)\n }).catch((err) => {\n result.errMsg = 'websocket connect fail'\n callAsyncFail(reject, err, options)\n })\n })\n\n SocketTaskWX.close = function (closeOptions) {\n return new Promise((resolve, reject) => {\n // TODO: 检验非必须参数\n // try {\n // validateParams('close', options, closeSocketSchema)\n // } catch (error) {\n // const res = { errMsg: error.message }\n // return callAsyncFail(reject, res, options)\n // }\n\n ws.close(closeOptions).then(value => {\n callAsyncSuccess(resolve, value, closeOptions)\n }, error => {\n callAsyncFail(reject, error, closeOptions)\n })\n })\n }\n SocketTaskWX.onClose = function (onCloseCallback) {\n validateParams('onClose', [onCloseCallback], ['Function'])\n ws.on('close', (err, value) => {\n onCloseCallback(!err ? value : err)\n })\n }\n SocketTaskWX.onError = function (onErrorCallback) {\n validateParams('onError', [onErrorCallback], ['Function'])\n ws.on('error', (err) => {\n onErrorCallback(err)\n })\n }\n SocketTaskWX.onMessage = function (onMessageCallback?: any) {\n validateParams('onMessage', [onMessageCallback], ['Function'])\n ws.on('onMessage', (err, value) => {\n onMessageCallback(!err ? value : err)\n })\n }\n SocketTaskWX.onOpen = function (onOpenCallback) {\n validateParams('onOpen', [onOpenCallback], ['Function'])\n ws.on('open', (err, value) => {\n // TODO:返回数据字段完全不一样,无法兼容,暂不处理\n // wx:{header, profile}, ohos:{err, value:{status, message}}\n onOpenCallback(!err ? value : err)\n })\n }\n SocketTaskWX.send = function (sendOptions: ISendSocketOptions) {\n return new Promise((resolve, reject) => {\n const { data } = sendOptions\n try {\n validateParams('send', sendOptions, sendSocketSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n\n ws.send(data).then(value => {\n callAsyncSuccess(resolve, value, sendOptions)\n }, error => {\n callAsyncFail(reject, error, sendOptions)\n })\n })\n }\n\n return SocketTaskWX\n}\n","/**\n * 用户相关API, Harmony ACE API 6\n *\n * 1. 华为账号场景介绍文档 @see https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/harmonyos-js-login-0000001151310900\n * 2. 华为账号API参考 @see https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/harmonyos-js-overview-0000001063532145\n */\n\n// import hmsJSAccount from '@hmscore/hms-jsb-account'\nimport { temporarilyNotSupport } from '../../utils'\n\n/**\n * 通过Scope数组获取已登录的对应帐号信息(依赖login行为)\n * @param options\n */\nexport const getUserInfo = temporarilyNotSupport('getUserInfo')\n// export function getUserInfo (options) {\n// const { success, fail, complete } = options\n// const res: Record<string, any> = {}\n\n// // const result = hmsJSAccount.HuaweiIdAuthManager.getAuthResultWithScopes([hmsJSAccount.PROFILE])\n// const result = null\n\n// if (result) {\n// res.data = { userInfo: generateUserInfo(result) }\n// isFunction(success) && success(res)\n// } else {\n// res.errorMsg = 'getUserInfo result data is null'\n// isFunction(fail) && fail(res)\n// }\n// isFunction(complete) && complete(res)\n// }\n\n/**\n * 获取用户信息\n */\nexport const getUserProfile = temporarilyNotSupport('getUserProfile')\n// export const getUserProfile = (_options) => {\n// return new Promise((resolve, reject) => {\n// const res: Record<string, any> = {}\n// hmsJSAccount.HuaweiIdAuthManager.addAuthScopes([hmsJSAccount.PROFILE])\n// .then(result => {\n// if (result) {\n// res.data = { userInfo: generateUserInfo(result) }\n// callAsyncSuccess(resolve, res, options)\n// } else {\n// res.errorMsg = 'getUserProfile result data is null'\n// callAsyncFail(reject, res, options)\n// }\n// })\n// .catch(error => {\n// callAsyncFail(reject, error, options)\n// })\n// })\n// }\n\n/**\n * 提前向用户发起授权请求\n */\nexport const authorize = temporarilyNotSupport('authorize')\n\n/**\n * 获取用户的当前设置\n */\nexport const getSetting = temporarilyNotSupport('getSetting')\n\n/**\n * 调起客户端小程序设置界面\n */\nexport const openSetting = temporarilyNotSupport('openSetting')\n\n// function generateUserInfo (hmsAuthInfo) {\n// const userInfo = {\n// nickName: String,\n// avatarUrl: String,\n// gender: Number,\n// country: String\n// }\n// if (hmsAuthInfo) {\n// userInfo.nickName = hmsAuthInfo.displayName\n// userInfo.avatarUrl = hmsAuthInfo.photoUriString\n// userInfo.gender = hmsAuthInfo.gender\n// userInfo.country = hmsAuthInfo.country\n// }\n// return userInfo\n// }\n","import { temporarilyNotSupport } from '../utils'\n\nexport const login = temporarilyNotSupport('login')\nexport const getAccountInfoSync = temporarilyNotSupport('getAccountInfoSync')\nexport const requestSubscribeMessage = temporarilyNotSupport('requestSubscribeMessage')\n\nexport * from './user-info'\n","// @ts-nocheck\n/**\n * 鸿蒙SDK API Version 6\n * 将页面滚动到目标位置\n * - 支持选择器(只支持id选择器和 class 选择器,暂不支持子选择器、后代选择器、跨自定义组件选择器、多选择器并集)\n * - 滚动距离\n * 文档地址 https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-framework-syntax-js-0000000000611432\n */\nimport { AREA_CHANGE_EVENT_NAME, Current, findChildNodeWithDFS, getPageScrollerOrNode, setNodeEventCallbackAndTriggerComponentUpdate } from '@tarojs/runtime'\nimport { pxTransformHelper } from '@tarojs/taro'\n\nimport { callAsyncFail, callAsyncSuccess } from '../utils'\n\nimport type Taro from '@tarojs/api'\n\n// TODO\nexport const getCurrentPages = () => []\n\nexport const pageScrollTo: typeof Taro.pageScrollTo = (options) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n const taro = (Current as any).taro\n const page = taro.getCurrentInstance().page\n const res = { errMsg: 'pageScrollTo:ok' }\n const error = { errMsg: 'pageScrollTo:fail' }\n const { scrollTop, selector = '', duration = 300, offsetTop = 0 } = options\n\n if (scrollTop && selector) {\n console.warn('\"scrollTop\" 或 \"selector\" 建议只设一个值,全部设置会忽略selector')\n }\n\n let scrollValue = -1\n let scroller = page.scroller\n const currentPageNode = getPageScrollerOrNode(page.node, page)\n\n if (scrollTop || typeof scrollTop === 'number') {\n scrollValue = scrollTop\n } else if (selector) {\n const node = findChildNodeWithDFS(currentPageNode, selector)\n\n if (!node || !node._instance) return\n\n const instance = node._instance\n const id = node?._nid\n\n // 获取 areaInfo,需要先调用 setNodeEventCallbackAndTriggerComponentUpdate 更新一次组件并获取组件信息\n await setNodeEventCallbackAndTriggerComponentUpdate(node, AREA_CHANGE_EVENT_NAME, null, true)\n\n const { areaInfo } = instance?.nodeInfoMap?.[id] || {}\n\n let parent = node?.parentNode\n while (!!parent && parent !== currentPageNode) {\n if (parent?._instance?.scroller) {\n scroller = parent._instance.scroller\n break\n }\n parent = parent?.parentNode\n }\n\n scroller = getPageScrollerOrNode(scroller, page)\n\n const { yOffset } = scroller.currentOffset()\n\n if (areaInfo) {\n scrollValue = areaInfo.globalPosition.y + yOffset + pxTransformHelper(offsetTop, 'px', true)\n }\n }\n const { xOffset } = scroller.currentOffset()\n\n if (scrollValue === -1) {\n return callAsyncFail(reject, { errMsg: 'pageScrollTo:fail, 请检查传入的 scrollTop 或 selector 是否合法' }, options)\n }\n\n try {\n scroller.scrollTo({\n xOffset,\n yOffset: scrollValue,\n animation: {\n duration: duration,\n // @ts-ignore\n curve: Curve.Linear\n }\n })\n\n setTimeout(() => {\n callAsyncSuccess(resolve, res, options)\n }, duration)\n } catch (_) {\n callAsyncFail(reject, error, options)\n }\n })\n}\n","import router from '@ohos.router'\n// eslint-disable-next-line import/no-duplicates\nimport { window } from '@tarojs/runtime'\n// eslint-disable-next-line import/no-duplicates\nimport { eventCenter } from '@tarojs/runtime/dist/runtime.esm'\nimport { queryToJson } from '@tarojs/shared'\n\nimport { callAsyncFail, callAsyncSuccess } from '../utils'\nimport { IAsyncParams } from '../utils/types'\n\nimport type 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\neventCenter.once('__taroRouterLaunch', initLaunchOptions)\n\nconst TARO_TABBAR_PAGE_PATH = 'taro_tabbar'\nfunction isTabPage (url: string): boolean {\n return window.__taroAppConfig.tabBar?.list?.some(item => item.pagePath === url)\n}\n\nfunction parseURL (raw = ''): [string, Record<string, unknown>] {\n const [urlStr, queryStr = ''] = raw.split('?')\n const query: Record<string, unknown> = queryToJson(queryStr)\n let url = urlStr.replace(/^\\//, '')\n if (isTabPage(url)) {\n query.$page = url\n url = TARO_TABBAR_PAGE_PATH\n }\n return [url, query]\n}\n\n// 生命周期\nexport const getLaunchOptionsSync = () => launchOptions\nexport const getEnterOptionsSync = () => launchOptions\n\nconst getRouterFunc = (method): typeof Taro.navigateTo => {\n const methodName = method === 'navigateTo' ? 'pushUrl' : 'replaceUrl'\n\n return function (options) {\n const [url, params = {}] = parseURL(options.url)\n\n return new Promise((resolve, reject) => {\n router[methodName]({\n url,\n params\n }, (error) => {\n const res: { code?: number, errMsg: string } = { errMsg: `${method}:ok` }\n if (error) {\n const { code, message } = error\n res.code = code\n res.errMsg = `${method}:failed, ${message}`\n callAsyncFail(reject, res, options)\n\n return\n }\n\n callAsyncSuccess(resolve, res, options)\n })\n })\n }\n}\n\nexport const navigateTo = getRouterFunc('navigateTo')\nexport const redirectTo = getRouterFunc('redirectTo')\n\ninterface INavigateBackParams extends IAsyncParams {\n url?: string\n}\nexport function navigateBack (options: INavigateBackParams): Promise<any> {\n return new Promise(resolve => {\n if (!options?.url) {\n router.back()\n } else {\n const [url] = parseURL(options.url)\n router.back({ url })\n }\n\n const res = { errMsg: 'navigateBack:ok' }\n callAsyncSuccess(resolve, res, options)\n })\n}\n\nexport const reLaunch: typeof Taro.reLaunch = (options) => {\n return new Promise(resolve => {\n redirectTo({ url: options.url })\n router.clear()\n const res = { errMsg: 'reLaunch:ok' }\n callAsyncSuccess(resolve, res, options)\n })\n}\n\nexport const switchTab: typeof Taro.switchTab = (options) => {\n return new Promise((resolve, reject) => {\n const stack = AppStorage.prop('__TARO_PAGE_STACK').get()\n const [url, params] = parseURL(options.url)\n\n if (url !== TARO_TABBAR_PAGE_PATH) {\n const res = { errMsg: 'switchTab:failed' }\n callAsyncFail(reject, res, options)\n return\n }\n\n if (stack[stack.length - 1]?.path === url) {\n // Note: 当前为 Tab 页时,触发 switch 事件\n eventCenter.trigger('__taroSwitchTab', { url, params })\n router.getLength() > 1 && router.clear()\n } else if (stack.some(item => item.path === url)) {\n // Note: 寻找路由栈中的 Tab 页,如果找到,则使用 navigateBack\n router.back({ url, params })\n router.getLength() > 1 && router.clear()\n } else {\n // Note: 未找到页面时,使用 reLaunch\n reLaunch({ url: options.url })\n }\n\n const res = { errMsg: 'switchTab:ok' }\n callAsyncSuccess(resolve, res, options)\n })\n}\n\nexport const getLength = () => {\n return router.getLength()\n}\n\nexport const getState = () => {\n return router.getState()\n}\n","/**\n * 从API Version 6开始,该模块不再维护,可以使用模块@ohos.data.storage。在API Version 9后,推荐使用新模块@ohos.data.preferences。\n * https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-data-preferences-0000001427745052-V3\n*/\nimport bundleManager from '@ohos.bundle.bundleManager'\nimport dataPreferences from '@ohos.data.preferences'\nimport hilog from '@ohos.hilog'\nimport { Current } from '@tarojs/runtime'\n\nimport { callAsyncFail, callAsyncSuccess, temporarilyNotSupport, validateParams } from '../utils'\n\nimport type { IAsyncParams } from '../utils/types'\n\ninterface IGetStorageParams extends IAsyncParams {\n key: string\n}\ninterface ISetStorageParams extends IAsyncParams {\n key: string\n data: number | string | boolean\n}\n\ninterface IRemoveStorageParams extends IAsyncParams {\n key: string\n}\n\nconst preferencesPromise = (Current as any).contextPromise\n .then((context) => {\n return bundleManager\n .getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)\n .then(data => {\n return dataPreferences\n .getPreferences(context, `${data.appInfo.uid}Store`)\n })\n })\n .catch((error) => {\n hilog.error(0x0000, 'TaroFailedTag', 'Failed to load the storage. Cause: %{public}s', error.code ? JSON.stringify(error) : error.message || error)\n })\n\nasync function getItem (key: string): Promise<{ result: boolean, data?: number | string | boolean }> {\n try {\n const preferences = await preferencesPromise\n const item = await preferences.get(key, null)\n\n return { result: true, data: item }\n } catch (error) {\n return { result: false }\n }\n}\n\nconst storageSchema = {\n key: 'String'\n}\n\nexport function getStorage (options: IGetStorageParams) {\n return new Promise((resolve, reject) => {\n try {\n validateParams('getStorage', options, storageSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n getItem(options.key).then(({ result, data }) => {\n const res: Record<string, any> = { errMsg: 'getStorage:ok' }\n \n if (result) {\n res.data = data\n callAsyncSuccess(resolve, res, options)\n } else {\n res.errMsg = 'getStorage:fail data not found'\n callAsyncFail(reject, res, options)\n }\n })\n })\n}\n\nexport function setStorage (options: ISetStorageParams) {\n return new Promise((resolve, reject) => {\n try {\n validateParams('setStorage', options, storageSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n\n const { key, data } = options\n const res = { errMsg: 'setStorage:ok' }\n\n preferencesPromise.then(async (preferences) => {\n await preferences.put(key, data)\n await preferences.flush()\n\n callAsyncSuccess(resolve, res, options)\n })\n })\n}\n\nexport function removeStorage (options: IRemoveStorageParams) {\n return new Promise((resolve, reject) => {\n try {\n validateParams('removeStorage', options, storageSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n\n const { key } = options\n\n preferencesPromise.then(async (preferences) => {\n await preferences.delete(key)\n await preferences.flush()\n\n const res = { errMsg: 'removeStorage:ok' }\n callAsyncSuccess(resolve, res, options)\n })\n })\n}\n\nexport function clearStorage (options: IAsyncParams) {\n return new Promise(resolve => {\n preferencesPromise.then(async (preferences) => {\n await preferences.clear()\n await preferences.flush()\n\n const res = { errMsg: 'clearStorage:ok' }\n callAsyncSuccess(resolve, res, options)\n })\n })\n}\n\nexport const getStorageSync = temporarilyNotSupport('getStorageSync', 'getStorage')\nexport const setStorageSync = temporarilyNotSupport('setStorageSync', 'setStorage')\nexport const clearStorageSync = temporarilyNotSupport('clearStorageSync', 'clearStorage')\nexport const removeStorageSync = temporarilyNotSupport('removeStorageSync', 'removeStorage')\n","// eslint-disable-next-line import/no-duplicates\nimport { Current } from '@tarojs/runtime'\n// eslint-disable-next-line import/no-duplicates\nimport { eventCenter } from '@tarojs/runtime/dist/runtime.esm'\n\nimport { callAsyncFail, callAsyncSuccess } from '../utils'\n\nimport type Taro from '@tarojs/api'\n\ninterface ShowTabBar {\n type: 'show'\n fn: typeof Taro.showTabBar\n}\n\ninterface HideTabBar {\n type: 'hide'\n fn: typeof Taro.hideTabBar\n}\n\ntype ToggleAPIs = ShowTabBar | HideTabBar\n\nconst toggleTabBar = function<T extends ToggleAPIs['type']> (type: T): Extract<ToggleAPIs, {type: T}>['fn'] {\n return function (options) {\n return new Promise((resolve, reject) => {\n const taro = (Current as any).taro\n const page = taro.getCurrentInstance().page\n const currentData = page._data?.taroTabBar || page.tabBar\n const res = { errMsg: `${type}TabBar:ok` }\n const error = { errMsg: `${type}TabBar:fail not TabBar page` }\n\n if (!currentData) {\n callAsyncFail(reject, error, options)\n } else {\n const isShow = type === 'show'\n const event = isShow ? '__taroShowTabBar' : '__taroHideTabBar'\n eventCenter.trigger(event, {\n animation: options?.animation,\n })\n page.$set?.('isShowTaroTabBar', isShow)\n callAsyncSuccess(resolve, res, options)\n }\n })\n }\n}\n\nexport const showTabBar = toggleTabBar('show')\n\nexport const hideTabBar = toggleTabBar('hide')\n\nexport const setTabBarStyle: typeof Taro.setTabBarStyle = function (options = {}) {\n return new Promise((resolve, reject) => {\n const taro = (Current as any).taro\n const page = taro.getCurrentInstance().page\n const currentData = page._data?.taroTabBar || page.tabBar\n const res = { errMsg: 'setTabBarStyle:ok' }\n const error = { errMsg: 'setTabBarStyle:fail not TabBar page' }\n\n if (!currentData) {\n callAsyncFail(reject, error, options)\n } else {\n const data = Object.assign({}, currentData)\n\n if (options.color) data.color = options.color\n if (options.selectedColor) data.selectedColor = options.selectedColor\n if (options.backgroundColor) data.backgroundColor = options.backgroundColor\n if (options.borderStyle) data.borderStyle = options.borderStyle\n\n eventCenter.trigger('__taroSetTabBarStyle', options)\n page.$set?.('taroTabBar', data)\n callAsyncSuccess(resolve, res, options)\n }\n })\n}\n\nexport const setTabBarItem: typeof Taro.setTabBarItem = function (options) {\n return new Promise((resolve, reject) => {\n const taro = (Current as any).taro\n const page = taro.getCurrentInstance().page\n const currentData = page._data?.taroTabBar || page.tabBar\n const res = { errMsg: 'setTabBarItem:ok' }\n const error = { errMsg: 'setTabBarItem:fail not TabBar page' }\n\n if (!currentData) {\n callAsyncFail(reject, error, options)\n } else {\n const index = options.index\n const item = Object.assign({}, currentData.list[index])\n\n if (options.text) item.text = options.text\n if (options.iconPath) item.iconPath = options.iconPath\n if (options.selectedIconPath) item.selectedIconPath = options.selectedIconPath\n\n const list = [\n ...currentData.list.slice(0, index),\n item,\n ...currentData.list.slice(index + 1)\n ]\n const data = Object.assign({}, currentData, { list })\n\n eventCenter.trigger('__taroSetTabBarItem', options)\n page.$set?.('taroTabBar', data)\n callAsyncSuccess(resolve, res, options)\n }\n })\n}\n\nexport function showTabBarRedDot (options) {\n const res = { errMsg: 'showTabBarRedDot:ok' }\n return new Promise((resolve) => {\n eventCenter.trigger('__taroShowTabBarRedDotHandler', {\n index: options?.index || 0,\n })\n callAsyncSuccess(resolve, res, options)\n })\n}\n\nexport function hideTabBarRedDot (options) {\n const res = { errMsg: 'hideTabBarRedDot:ok' }\n return new Promise((resolve) => {\n eventCenter.trigger('__taroHideTabBarRedDotHandler', {\n index: options?.index || 0,\n })\n callAsyncSuccess(resolve, res, options)\n })\n}\n\nexport function setTabBarBadge (options) {\n const res = { errMsg: 'setTabBarBadge:ok' }\n return new Promise((resolve) => {\n const text = options?.text || ''\n eventCenter.trigger('__taroSetTabBarBadge', {\n index: options?.index || 0,\n text: text.replace(/[\\u0391-\\uFFE5]/g, 'aa').length > 4 ? '...' : text,\n })\n callAsyncSuccess(resolve, res, options)\n })\n}\n\nexport function removeTabBarBadge (options) {\n const res = { errMsg: 'removeTabBarBadge:ok' }\n return new Promise((resolve) => {\n eventCenter.trigger('__taroRemoveTabBarBadge', {\n index: options?.index || 0,\n })\n callAsyncSuccess(resolve, res, options)\n })\n}\n","import matrix4 from '@ohos.matrix4'\n\nimport { temporarilyNotSupport } from '../utils'\n\nimport type Taro from '@tarojs/api'\n\ninterface IAnimationAttr {\n duration: number\n delay: number\n timingFunction: string\n transformOrigin: string\n}\n\ntype TStep = {\n delay: number\n duration: number\n timingFunction: string\n transformOrigin: string\n rule: TRule\n}\n\ntype TRule = Record<string, any>\n\nexport class Animation implements Taro.Animation {\n\n unit: string\n DEFAULT: IAnimationAttr\n\n // 组合动画\n steps: TStep[] = []\n // 属性组合\n rule: TRule = {}\n\n constructor({\n duration = 400,\n delay = 0,\n timingFunction = 'linear',\n transformOrigin = '50% 50% 0',\n unit = 'px'\n }: Taro.createAnimation.Option = {}) {\n this.unit = unit\n this.setDefault(duration, delay, timingFunction, transformOrigin)\n }\n\n // 设置默认值\n setDefault (duration, delay, timingFunction, transformOrigin) {\n this.DEFAULT = { duration, delay, timingFunction, transformOrigin }\n }\n\n export (): { actions: any[] } {\n const actions = this.steps.slice()\n this.steps = []\n this.rule = {}\n return {\n actions\n }\n }\n\n step (arg: Partial<IAnimationAttr> = {}): Taro.Animation {\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 this.steps.push({\n duration,\n delay,\n timingFunction,\n transformOrigin,\n rule: Object.assign({}, this.rule)\n })\n return this\n }\n\n matrix (a: number, b: number, c: number, d: number, tx: number, ty: number): Taro.Animation {\n this.rule.transform = matrix4.init([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): Taro.Animation {\n this.rule.transform = matrix4.init([a1, b1, c1, d1, a2, b2, c2, d2, a3, b3, c3, d3, a4, b4, c4, d4])\n return this\n }\n\n rotate (angle: number): Taro.Animation {\n this.rule.rotate = { x: 0, y: 0, z: 1, angle }\n return this\n }\n\n rotate3d (x: number, y?: number | undefined, z?: number | undefined, angle?: number | undefined): Taro.Animation {\n this.rule.rotate = { x, y, z, angle }\n return this\n }\n\n rotateX (angle: number): Taro.Animation {\n this.rule.rotate = { x: 1, y: 0, z: 0, angle }\n return this\n }\n\n rotateY (angle: number): Taro.Animation {\n this.rule.rotate = { x: 0, y: 1, z: 0, angle }\n return this\n }\n\n rotateZ (angle: number): Taro.Animation {\n this.rule.rotate = { x: 0, y: 0, z: 1, angle }\n return this\n }\n\n scale (sx: number, sy?: number | undefined): Taro.Animation {\n this.rule.scale = { x: sx, y: sy }\n return this\n }\n\n scale3d (sx: number, sy: number, sz: number): Taro.Animation {\n this.rule.scale = { x: sx, y: sy, z: sz }\n return this\n }\n\n scaleX (scale: number): Taro.Animation {\n this.rule.scale = { x: scale }\n return this\n }\n\n scaleY (scale: number): Taro.Animation {\n this.rule.scale = { y: scale }\n return this\n }\n\n scaleZ (scale: number): Taro.Animation {\n this.rule.scale = { z: scale }\n return this\n }\n\n skew (ax: number, ay: number): Taro.Animation {\n this.rule.skew = { x: ax, y: ay }\n return this\n }\n\n skewX (angle: number): Taro.Animation {\n this.rule.skew = { x: angle }\n return this\n }\n\n skewY (angle: number): Taro.Animation {\n this.rule.skew = { y: angle }\n return this\n }\n\n translate (tx?: number | undefined, ty?: number | undefined): Taro.Animation {\n this.rule.translate = { x: tx, y: ty }\n return this\n }\n\n translate3d (tx?: number | undefined, ty?: number | undefined, tz?: number | undefined): Taro.Animation {\n this.rule.translate = { x: tx, y: ty, z: tz }\n return this\n }\n\n translateX (translation: number): Taro.Animation {\n this.rule.translate = { x: translation }\n return this\n }\n\n translateY (translation: number): Taro.Animation {\n this.rule.translate = { y: translation }\n return this\n }\n\n translateZ (translation: number): Taro.Animation {\n this.rule.translate = { z: translation }\n return this\n }\n\n opacity (value: number): Taro.Animation {\n this.rule.opacity = value\n return this\n }\n\n backgroundColor (value: string): Taro.Animation {\n this.rule.backgroundColor = value\n return this\n }\n\n width (value: string | number): Taro.Animation {\n this.rule.size = {\n ...this.rule.size,\n width: value\n }\n return this\n }\n\n height (value: string | number): Taro.Animation {\n this.rule.size = {\n ...this.rule.size,\n height: value\n }\n return this\n }\n\n left (value: string | number): Taro.Animation {\n temporarilyNotSupport('animation.left:' + value)(value)\n return this\n }\n\n right (value: string | number): Taro.Animation {\n temporarilyNotSupport('animation.right:' + value)(value)\n return this\n }\n\n top (value: string | number): Taro.Animation {\n temporarilyNotSupport('animation.top:' + value)(value)\n return this\n }\n\n bottom (value: string | number): Taro.Animation {\n temporarilyNotSupport('animation.bottom:' + value)(value)\n return this\n }\n}\n","// import window from '@ohos.window'\n// import { Current } from '@tarojs/runtime'\nimport { eventCenter } from '@tarojs/runtime/dist/runtime.esm'\n\nimport { MethodHandler } from '../utils/handler'\n\n// import { callAsyncFail, callAsyncSuccess } from '../utils'\n\n\n// const windowClassPromise = (Current as any).contextPromise\n// .then(context => {\n// return window.getTopWindow(context)\n// })\n\nexport function setBackgroundColor(options: Taro.setBackgroundColor.Option) {\n const { success, fail, complete } = options || {}\n const handle = new MethodHandler({ name: 'setBackgroundColor', success, fail, complete })\n\n return new Promise((resolve, reject) => {\n eventCenter.trigger('__taroPageStyle', {\n backgroundColor: options.backgroundColor || options.backgroundColorTop || options.backgroundColorBottom,\n })\n\n return handle.success({}, { resolve, reject })\n // windowClassPromise.then(windowClass => {\n // windowClass.setBackgroundColor(color).then(() => {\n // const res = { errMsg: 'setBackgroundColor:ok' }\n // callAsyncSuccess(resolve, res, options)\n // }, (error) => {\n // const res = { errMsg: 'setBackgroundColor:fail' + error }\n // callAsyncFail(reject, res, options)\n // })\n // })\n })\n}\n","import prompt from '@ohos.prompt'\n\nimport { callAsyncFail, callAsyncSuccess, temporarilyNotSupport, validateParams } from '../../utils'\n\nconst resCallback = (res) => {\n return { errMsg: `${res}:ok` }\n}\n\nconst showToastSchema = {\n title: 'String',\n duration: 'Number',\n bottom: 'String'\n}\n\nexport function showToast (options) {\n return new Promise((resolve, reject) => {\n const _default = {\n title: '',\n duration: 1500,\n bottom: '50%'\n }\n\n options = { ..._default, ...options }\n\n try {\n validateParams<any>('showToast', options, showToastSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n\n prompt.showToast({\n message: options.title,\n duration: options.duration,\n bottom: options.bottom\n })\n callAsyncSuccess(resolve, resCallback('showToast'), options)\n })\n}\n\nexport function showModal (options) {\n const _default = {\n title: '',\n content: '',\n showCancel: true,\n cancelText: '取消',\n cancelColor: '#000000',\n confirmText: '确定',\n confirmColor: '#3CC51F'\n }\n\n options = { ..._default, ...options }\n\n const {\n title, content, cancelText, confirmText,\n cancelColor, confirmColor, showCancel\n } = options\n\n const buttons: any = []\n\n if (cancelText !== '' && showCancel) {\n buttons.push({\n text: cancelText,\n color: cancelColor\n })\n }\n\n if (confirmText !== '') {\n buttons.push({\n text: confirmText,\n color: confirmColor\n })\n }\n\n return new Promise(resolve => {\n const modalOptions = {\n title,\n message: content,\n buttons: buttons,\n success: (data) => {\n if (data.index === 1 || !showCancel) {\n callAsyncSuccess(\n resolve,\n {\n ...resCallback('showModal'),\n confirm: true,\n cancel: false,\n content: null\n },\n options\n )\n } else {\n callAsyncSuccess(\n resolve,\n {\n ...resCallback('showModal'),\n confirm: false,\n cancel: true\n },\n options\n )\n }\n },\n // 鸿蒙没有失败方法,只有取消\n cancel: (_) => {\n callAsyncSuccess(\n resolve,\n {\n ...resCallback('showModal'),\n confirm: false,\n cancel: true\n },\n options\n )\n }\n }\n\n prompt.showDialog(modalOptions)\n })\n}\n\nconst showActionSheetSchema = {\n title: 'String',\n itemList: 'Array'\n}\n\nexport function showActionSheet (options) {\n return new Promise((resolve, reject) => {\n const _default = {\n title: '',\n itemList: [],\n itemColor: '#000000'\n }\n\n options = { ..._default, ...options }\n\n try {\n validateParams<any>('showActionSheet', options, showActionSheetSchema)\n } catch (error) {\n const res = { errMsg: error.message }\n return callAsyncFail(reject, res, options)\n }\n\n const { title, itemList, itemColor } = options\n\n const buttons = itemList.map(res => {\n return {\n text: res,\n color: itemColor\n }\n })\n\n const actionSheetOptions = {\n title,\n buttons,\n success: (data) => {\n callAsyncSuccess(\n resolve,\n {\n ...data,\n ...resCallback('showActionSheet')\n },\n options\n )\n },\n // 取消方法,并非失败\n fail: (data) => {\n callAsyncFail(\n reject,\n {\n ...data,\n errMsg: data.errMsg.replace('showActionMenu', 'showActionSheet')\n },\n options\n )\n }\n }\n\n prompt.showActionMenu(actionSheetOptions)\n })\n}\n\nexport function hideToast (options) {\n return new Promise(resolve => {\n prompt.showToast({\n message: '关闭中',\n duration: 10,\n bottom: '9999px'\n })\n callAsyncSuccess(resolve, resCallback('hideToast'), options)\n })\n}\n\nexport const showLoading = temporarilyNotSupport('showLoading')\nexport const hideLoading = temporarilyNotSupport('hideLoading')\n","import { Current } from '@tarojs/runtime'\n\nimport { callAsyncSuccess, temporarilyNotSupport } from '../../utils'\n\nimport type Taro from '@tarojs/api'\n\nexport const setNavigationBarTitle: typeof Taro.setNavigationBarTitle = function (options) {\n return new Promise(resolve => {\n const taro = (Current as any).taro\n const page = taro.getCurrentInstance().page\n const res = { errMsg: 'setNavigationBarTitle:ok' }\n\n page.$set?.('taroNavBar.title', options.title)\n callAsyncSuccess(resolve, res, options)\n })\n}\n\nexport const setNavigationBarColor: typeof Taro.setNavigationBarColor = function (options) {\n return new Promise(resolve => {\n const taro = (Current as any).taro\n const page = taro.getCurrentInstance().page\n const { frontColor, backgroundColor } = options\n const res = { errMsg: 'setNavigationBarColor:ok' }\n\n page.$set?.('taroNavBar.textStyle', frontColor)\n page.$set?.('taroNavBar.background', backgroundColor)\n callAsyncSuccess(resolve, res, options)\n })\n}\n\nexport const showNavigationBarLoading = temporarilyNotSupport('showNavigationBarLoading')\nexport const hideNavigationBarLoading = temporarilyNotSupport('hideNavigationBarLoading')\nexport const hideHomeButton = temporarilyNotSupport('hideHomeButton')\n","import { Current } from '@tarojs/runtime'\n\nimport { callAsyncSuccess } from '../utils'\n\nimport type Taro from '@tarojs/api'\n\nexport const startPullDownRefresh: typeof Taro.startPullDownRefresh = function (options) {\n return new Promise(resolve => {\n const taro = (Current as any).taro\n const page = taro.getCurrentInstance().page\n\n if (page.isRefreshing instanceof Array) {\n const index = page.tabBarCurrentIndex || 0\n page.isRefreshing[index] = true\n } else {\n page.isRefreshing = true\n }\n\n const res = { errMsg: 'startPullDownRefresh:ok' }\n page.$set?.('isRefreshing', true)\n callAsyncSuccess(resolve, res, options)\n })\n}\n\nexport const stopPullDownRefresh: typeof Taro.stopPullDownRefresh = function (options) {\n return new Promise(resolve => {\n const taro = (Current as any).taro\n const page = taro.getCurrentInstance().page\n\n if (page.isRefreshing instanceof Array) {\n const index = page.tabBarCurrentIndex || 0\n page.isRefreshing[index] = false\n } else {\n page.isRefreshing = false\n }\n\n const res = { errMsg: 'stopPullDownRefresh:ok' }\n page.$set?.('isRefreshing', false)\n callAsyncSuccess(resolve, res, options)\n })\n}\n","import { temporarilyNotSupport } from '../utils'\nimport { Animation } from './animation'\n\nimport type Taro from '@tarojs/api'\n\nexport const createAnimation = (option: Taro.createAnimation.Option) => {\n return new Animation(option)\n}\nexport const getMenuButtonBoundingClientRect = temporarilyNotSupport('getMenuButtonBoundingClientRect')\n\nexport * from './background'\nexport * from './interaction'\nexport * from './navigation-bar'\nexport * from './pull-down-refresh'\n","import Taro from '@tarojs/api'\n// @ts-ignore\nimport { Current, disconnectEvent, findChildNodeWithDFS, getPageScrollerOrNode, setNodeEventCallbackAndTriggerComponentUpdate, TaroElement, VISIBLE_CHANGE_EVENT_NAME } from '@tarojs/runtime'\n\nimport { temporarilyNotSupport } from '../utils'\n\nexport class IntersectionObserver implements Taro.IntersectionObserver {\n // 自定义组件实例\n private _component: any\n // 监听的nodes\n private _observerNodes: TaroElement[] | TaroElement | null\n // 选项\n private _options = {\n thresholds: [0],\n initialRatio: 0,\n observeAll: false\n }\n\n constructor(component: any, options: Taro.createIntersectionObserver.Option = {}) {\n const taro = (Current as any).taro\n const page = taro.getCurrentInstance().page\n const currentPage = getPageScrollerOrNode(page.node, page)\n this._component = component || currentPage\n Object.assign(this._options, options)\n }\n\n public disconnect (): void {\n if (this._observerNodes) {\n if (this._observerNodes instanceof Array) {\n this._observerNodes.forEach((n: TaroElement & any) => {\n disconnectEvent(n, VISIBLE_CHANGE_EVENT_NAME)\n if (n._instance) {\n // @ts-ignore\n n._instance?.nodeInfoMap?.[n._nid]?.thresholds = null\n }\n })\n } else {\n disconnectEvent(this._observerNodes, VISIBLE_CHANGE_EVENT_NAME)\n // @ts-ignore\n if (this._observerNodes._instance) {\n // @ts-ignore\n this._observerNodes._instance?.nodeInfoMap?.[this._observerNodes._nid]?.thresholds = null\n }\n }\n }\n }\n\n public observe (targetSelector: string, callback: Taro.IntersectionObserver.ObserveCallback): void {\n const { observeAll, thresholds } = this._options\n const node = findChildNodeWithDFS(this._component, targetSelector, observeAll)\n this._observerNodes = node\n\n\n if (node) {\n if (node instanceof Array) {\n node.forEach(n => {\n // @ts-ignore\n n.awaitAppear.then(() => {\n // @ts-ignore\n n._instance?.nodeInfoMap?.[n._nid]?.thresholds = thresholds\n\n setNodeEventCallbackAndTriggerComponentUpdate(n, VISIBLE_CHANGE_EVENT_NAME, (isVisible: boolean, currentRatio: number) => {\n callback(this.handleResult(isVisible, currentRatio))\n })\n })\n })\n } else {\n // @ts-ignore\n node.awaitAppear.then(() => {\n // @ts-ignore\n node._instance?.nodeInfoMap?.[node._nid]?.thresholds = thresholds\n\n setNodeEventCallbackAndTriggerComponentUpdate(node, VISIBLE_CHANGE_EVENT_NAME, (isVisible: boolean, currentRatio: number) => {\n callback(this.handleResult(isVisible, currentRatio))\n })\n })\n }\n }\n }\n\n public relativeTo (): Taro.IntersectionObserver {\n temporarilyNotSupport('relativeTo')()\n return this\n }\n\n public relativeToViewport (): Taro.IntersectionObserver {\n temporarilyNotSupport('relativeToViewport')()\n return this\n }\n\n // @ts-ignore\n private handleResult (isVisible: boolean, currentRatio: number): Taro.IntersectionObserver.ObserveCallbackResult {\n const result = {\n intersectionRatio: currentRatio,\n // TODO 未做,等待能拿到element的info信息\n boundingClientRect: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n height: 0,\n width: 0\n },\n // TODO 未做,等待能拿到element和监听_component的info信息做运算\n intersectionRect: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n height: 0,\n width: 0\n },\n // TODO 未做,等待能拿到element和监听_component的info信息做运算\n relativeRect: { left: 0, right: 0, top: 0, bottom: 0 },\n time: new Date().getTime()\n }\n return result\n }\n}\n","import Taro from '@tarojs/api'\n\nimport { SelectorQuery } from './selectorQuery'\n\nexport class NodesRef implements Taro.NodesRef {\n _component?: any\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?: Taro.NodesRef.NodeCallback) {\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?: Taro.NodesRef.BoundingClientRectCallback) {\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: Taro.NodesRef.Fields, cb?: Taro.NodesRef.FieldsCallback) {\n const { _selector, _component, _single, _selectorQuery } = this\n const { id, dataset, rect, size, scrollOffset, properties = [], computedStyle = [] } = fields\n _selectorQuery._push(_selector, _component, _single, {\n id,\n dataset,\n rect,\n size,\n scrollOffset,\n properties,\n computedStyle\n }, cb)\n return _selectorQuery\n }\n}\n","import { AREA_CHANGE_EVENT_NAME, Current, getPageScrollerOrNode, setNodeEventCallbackAndTriggerComponentUpdate } from '@tarojs/runtime'\n\nimport { NodesRef } from './nodesRef'\n\nimport type Taro from '@tarojs/api'\n\ninterface ISelectorQueryQueue {\n component: any\n selector: string\n single: boolean\n fields\n}\n\ntype TSelectorQueryQueueCallback = (res: ISelectorQueryQueue) => void\n\nlet arr: any = []\n\n// 深度搜索 rootDom 下的所有节点,存放在 arr 中\nfunction traversalDFSDom (rootDom) {\n if (!rootDom) return\n arr.push(rootDom)\n\n if (rootDom.childNodes.length === 0) return\n for (let i = 0; i < rootDom.childNodes.length; i++) {\n traversalDFSDom(rootDom.childNodes[i])\n }\n}\n\n// 从 arr 中寻找所有符合 selector 的节点\nfunction parseHandler (selector, selectAll) {\n const domList: any = []\n if (arr.length === 0) return null\n\n let selectedId, clsList\n switch (selector.charAt(0)) {\n case '#': // id selector\n selectedId = selector.substring(1)\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].id === selectedId) {\n domList.push(arr[i])\n if (!selectAll) {\n break\n }\n }\n }\n break\n case '.':\n clsList = selector.split('.').filter((item) => item !== '')\n if (clsList.length === 0) break\n\n for (let i = 0; i < arr.length; i++) {\n for (let j = 0; j < clsList.length; j++) {\n if (arr[i].className?.includes(clsList[j])) {\n domList.push(arr[i])\n if (!selectAll) {\n break\n }\n }\n }\n }\n break\n default:\n console.warn('unSupport selector')\n break\n }\n if (selectAll) {\n return domList\n } else if (domList.length > 0) {\n return [domList[0]]\n }\n return []\n}\n\n// 从 TaroNode 里找到对应的 fields 内容\nfunction filter (fields, dom) {\n if (!dom) return null\n const {\n id,\n // dataset,\n rect,\n size,\n scrollOffset,\n properties = [],\n computedStyle = [],\n nodeCanvasType,\n node,\n context\n } = fields\n const res: any = {}\n\n if (nodeCanvasType && node) { // Node节点获取处理\n const typeName = dom.nodeName\n res.node = {\n id: dom.id,\n $taroElement: dom\n }\n if (/^canvas/i.test(typeName)) {\n // harmony todo canvas attr type\n const canvasType = dom._attrs.type || ''\n res.nodeCanvasType = canvasType\n if (/^(2d|webgl)/i.test(canvasType) && dom) {\n res.node = dom\n } else {\n res.node = null\n }\n } else {\n // TODO https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html\n // if (/^taro-scroll-view-core/i.test(tagName))\n res.nodeCanvasType = ''\n res.node = dom\n }\n return res\n }\n if (context) {\n // TODO: 暂未实现获取 context\n // const typeName = dom.type\n // if (/^video/i.test(typeName)) {\n // return { context: dom }\n // } else if (/^canvas/i.test(typeName)) {\n // const type = dom.type || '2d'\n // // harmony todo canvas context\n // const ctx = dom?.getContext(type)\n // return { context: ctx }\n // } else if (/^taro-live-player-core/i.test(typeName)) {\n // console.error('暂时不支持通过 NodesRef.context 获取 LivePlayerContext')\n // } else if (/^taro-editor-core/i.test(typeName)) {\n // console.error('暂时不支持通过 NodesRef.context 获取 EditorContext')\n // } else if (/^taro-map-core/i.test(typeName)) {\n // console.error('暂时不支持通过 NodesRef.context 获取 MapContext')\n // }\n }\n if (id) res.id = dom.id\n\n // TODO harmony dataset\n // if (dataset) res.dataset = Object.assign({}, dom.dataset)\n\n if (rect || size) {\n const id = dom?._nid\n const { areaInfo } = dom?._instance?.nodeInfoMap?.[id] || {}\n\n if (areaInfo) {\n if (rect) {\n res.top = vp2px(areaInfo.globalPosition.y)\n res.left = vp2px(areaInfo.globalPosition.x)\n res.right = vp2px(areaInfo.globalPosition.x + areaInfo.width)\n res.bottom = vp2px(areaInfo.globalPosition.y + areaInfo.height)\n }\n\n if (size) {\n res.width = vp2px(areaInfo.width)\n res.height = vp2px(areaInfo.height)\n }\n }\n }\n if (scrollOffset) {\n const scroller = dom._instance.scroller\n\n if (scroller) {\n const { xOffset, yOffset } = scroller.currentOffset()\n\n res.scrollLeft = vp2px(xOffset)\n res.scrollTop = vp2px(yOffset)\n }\n }\n if (properties.length) {\n properties.forEach(prop => {\n const attrs = dom._attrs\n if (attrs[prop]) res[prop] = attrs[prop]\n })\n }\n if (computedStyle.length) {\n const styles = dom._st\n computedStyle.forEach(key => {\n const value = styles[key]\n if (value) res[key] = value\n })\n }\n return res\n}\n\nfunction querySelector (selector, selectAll) {\n if (typeof selector === 'string') {\n return parseHandler(selector, selectAll)\n }\n return null\n}\n\nfunction queryBat (queue, cb) {\n const result: any = []\n const taro = (Current as any).taro\n const page = taro.getCurrentInstance().page\n const element = getPageScrollerOrNode(page.node, page)\n\n if (element == null) return null\n\n arr = []\n traversalDFSDom(element)\n queue.forEach(item => {\n const { selector, single, fields } = item\n const nodeList = querySelector(selector, !single)\n\n result.push(nodeList.map(dom => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async resolve => {\n await setNodeEventCallbackAndTriggerComponentUpdate(dom, AREA_CHANGE_EVENT_NAME, null, true)\n\n resolve(filter(fields, dom))\n })\n }))\n })\n\n Promise.all(result.map(item => {\n return Promise.all(item)\n })).then(data => {\n cb(data)\n })\n}\n\nexport class SelectorQuery implements Taro.SelectorQuery {\n _queue: ISelectorQueryQueue[]\n _queueCb: (TSelectorQueryQueueCallback | null)[]\n _component?: any\n\n constructor () {\n this._queue = []\n this._queueCb = []\n // this._component\n }\n\n /**\n * 设置选择器的选取范围\n * @param component 指定组件\n * @return selectQuery 返回查询对象\n */\n in = (_: any) => {\n this._component = null\n console.warn('暂不支持 in 操作')\n // this._component = component\n return this\n }\n\n /**\n * 在当前页面下选择第一个匹配选择器selector的节点\n * @param selector\n * @return nodesRef 返回一个NodesRef 对象实例,可以用于获取节点信息\n */\n select (selector: string) {\n return new NodesRef(selector, this, true)\n }\n\n /**\n * 在当前页面下选择匹配选择器selector的所有节点\n * @param selector\n */\n selectAll (selector: string) {\n return new NodesRef(selector, this, false)\n }\n\n /**\n * 选择显示区域。可用于获取显示区域的尺寸、滚动位置等信息\n */\n selectViewport () {\n return new NodesRef('.taro_page', this, true)\n }\n\n exec (cb?: (...args: any[]) => any) {\n queryBat(this._queue, res => {\n const _queueCb = this._queueCb\n res.forEach((item, index) => {\n const cb = _queueCb[index]\n typeof cb === 'function' && cb.call(this, item)\n })\n typeof cb === 'function' && cb.call(this, res)\n })\n return this as any\n }\n\n _push (selector, component, single, fields, callback: Taro.NodesRef.FieldsCallback | 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/taro'\n\nimport { IntersectionObserver } from './IntersectionObserver'\nimport { SelectorQuery } from './selectorQuery'\n\nexport const createSelectorQuery = () => {\n return new SelectorQuery()\n}\n\nexport const createIntersectionObserver: typeof Taro.createIntersectionObserver = (component, options) => {\n return new IntersectionObserver(component, options)\n}\n","import _display from '@ohos.display'\nimport { Current, hooks } from '@tarojs/runtime'\nimport { isFunction, PLATFORM_TYPE } from '@tarojs/shared'\n\nimport * as apis from './apis'\nimport { permanentlyNotSupport } from './utils'\n\nconst taro = Object.assign({}, apis)\n\nconst requirePlugin = /* @__PURE__ */ permanentlyNotSupport('requirePlugin')\nexport function initNativeApi (taro) {\n (Current as any).taro = taro\n taro.requirePlugin = requirePlugin\n taro.getApp = getApp\n taro.pxTransform = pxTransform\n taro.initPxTransform = initPxTransform\n taro.canIUseWebp = canIUseWebp\n taro.getAppInfo = getAppInfo\n\n if (hooks.isExist('initNativeApi')) {\n hooks.call('initNativeApi', taro)\n }\n}\n\nconst defaultDesignWidth = 750\nconst defaultDesignRatio: Record<string | number, number> = {\n 640: 2.34 / 2,\n 750: 1,\n 828: 1.81 / 2\n}\nconst defaultBaseFontSize = 20\nconst defaultUnitPrecision = 5\nconst defaultTargetUnit = 'vp'\n\nexport function getApp () {\n return Current.app\n}\n\nexport function initPxTransform ({\n designWidth = defaultDesignWidth,\n deviceRatio = defaultDesignRatio,\n baseFontSize = defaultBaseFontSize,\n unitPrecision = defaultUnitPrecision,\n targetUnit = defaultTargetUnit\n}) {\n const taro = (Current as any).taro\n\n if (taro) {\n taro.config ||= {}\n const config = taro.config\n config.designWidth = designWidth\n config.deviceRatio = deviceRatio\n config.baseFontSize = baseFontSize\n config.targetUnit = targetUnit\n config.unitPrecision = unitPrecision\n }\n}\n\nconst display = _display.getDefaultDisplaySync()\n\nlet designWidthFunc: (input: number) => number\nfunction getRatio (value: number) {\n const config = (Current as any).taro?.config || {}\n if (!isFunction(designWidthFunc)) {\n designWidthFunc = isFunction(config.designWidth)\n ? config.designWidth\n : () => config.designWidth\n }\n const designWidth = designWidthFunc(value) || defaultDesignWidth\n const deviceRatio = config.deviceRatio || defaultDesignRatio\n if (!(designWidth in deviceRatio)) {\n throw new Error(`deviceRatio 配置中不存在 ${designWidth} 的设置!`)\n }\n return Math.min(display.width, display.height) / designWidth / deviceRatio[designWidth]\n}\n\n// Note: 设置为 style 单位时会自动完成设计稿转换,设计开发者调用 API 时也许抹平差异,例如 pageScrollTo[option.offsetTop]\nexport function pxTransformHelper (size: number, unit?: string, isNumber = false): number | string {\n const config = (Current as any).taro?.config || {}\n const targetUnit = unit || config.targetUnit || defaultTargetUnit\n\n const ratio = getRatio(size)\n let val = size * ratio\n\n switch (targetUnit) {\n case 'vp':\n // Note: 在应用创建前调用无效\n val = px2vp(val)\n break\n default:\n }\n return isNumber ? val : val + targetUnit\n}\n\nexport function pxTransform (size: number): number {\n const config = (Current as any).taro?.config || {}\n const targetUnit = config.targetUnit || defaultTargetUnit\n\n let val = size\n switch (targetUnit) {\n case 'vp':\n val = px2vp(size)\n break\n default:\n // NOTE: 鸿蒙环境下 style 会自动完成设计稿转换,无需在方法内二次调整\n }\n return val + config.targetUnit\n}\n\nexport function canIUseWebp () {\n return true\n}\n\nexport function getAppInfo () {\n const config = (Current as any).taro?.config\n return {\n platform: process.env.TARO_PLATFORM || PLATFORM_TYPE.HARMONY,\n taroVersion: process.env.TARO_VERSION || 'unknown',\n designWidth: config?.designWidth,\n }\n}\n\nexport * from './apis'\nexport default taro\n","import { singleQuote } from '@tarojs/shared'\n\nexport const components = {\n Checkbox: {\n 'group-id': '',\n cn: ''\n },\n Span: {},\n Tabs: {\n index: '0',\n vertical: 'false',\n bindchange: ''\n },\n TabBar: {\n mode: singleQuote('scrollable')\n },\n TabContent: {\n scrollable: 'true'\n },\n List: {\n scrollpage: 'false',\n cachedcount: '0',\n scrollbar: 'off',\n scrolleffect: singleQuote('spring'),\n indexer: 'false',\n indexercircle: '',\n indexermulti: 'false',\n indexerbubble: 'true',\n divider: 'false',\n shapemode: singleQuote('default'),\n itemscale: 'true',\n itemcenter: 'false',\n updateeffect: 'false',\n chainanimation: 'false',\n scrollvibrate: 'true',\n initialindex: '0',\n initialoffset: '0',\n selected: '',\n bindindexerchange: '',\n bindscroll: '',\n bindscrollbottom: '',\n bindscrolltop: '',\n bindscrollend: '',\n bindscrolltouchup: '',\n bindrequestitem: ''\n },\n ListItem: {\n type: singleQuote('default'),\n primary: 'false',\n section: '',\n sticky: singleQuote('none'),\n stickyradius: singleQuote('1000px'),\n clickeffect: 'true',\n bindsticky: ''\n },\n Switch: {\n showtext: 'false',\n texton: singleQuote('On'),\n textoff: singleQuote('Off')\n },\n Textarea: {\n headericon: '',\n showcounter: 'false',\n menuoptions: '[]',\n softkeyboardenabled: 'true',\n bindtranslate: '',\n bindshare: '',\n bindsearch: '',\n bindoptionselect: '',\n bindselectchange: ''\n },\n Progress: {\n 'active-color': singleQuote('#09BB07'),\n 'background-color': singleQuote('#EBEBEB'),\n type: singleQuote('horizontal'),\n 'font-size': singleQuote('25px'),\n secondarypercent: '0',\n clockwise: 'true'\n },\n Slider: {\n showsteps: 'false',\n showtips: 'false'\n },\n Input: {\n 'placeholder-color': singleQuote('#99000000')\n },\n Video: {\n speed: '1',\n bindloadedmetadata: '',\n bindprogress: '',\n bindtap: ''\n },\n Image: {\n alt: ''\n },\n Radio: {\n 'group-id': ''\n },\n Picker: {\n selected: '',\n hours: '',\n containsecond: 'false',\n vibrate: 'true',\n lunar: 'false',\n lunarswitch: 'false'\n },\n PickerView: {\n mode: '',\n range: '',\n selected: '',\n hours: '',\n indicatorprefix: '',\n indicatorsuffix: '',\n containsecond: 'false',\n vibrate: 'true',\n lunar: 'false',\n lunarswitch: 'false',\n bindcolumnchange: '',\n cn: ''\n }\n}\n","import { internalComponents, isArray } from '@tarojs/shared'\n\nimport { initNativeApi } from './apis'\n\ndeclare const getApp: any\n\nexport { initNativeApi }\nexport * from './components'\n\nconst BUBBLE_EVENTS = new Set([\n 'touchStart',\n 'touchMove',\n 'touchEnd',\n 'touchCancel',\n 'click',\n 'longTap'\n])\n\nexport const hostConfig = {\n initNativeApi,\n modifyTaroEvent (event, node) {\n const comps = Object.keys(internalComponents).map(c => c.toLowerCase())\n const tagName = node.tagName.toLowerCase()\n if (event.type === 'click' && comps.includes(tagName)) {\n event.type = 'tap'\n }\n\n // getters & setters\n const { mpEvent } = event\n // Note: Harmony ACE API 8 开发板该方法不存在\n const getOwnPropertyDescriptors = typeof Object.getOwnPropertyDescriptors === 'function' ? Object.getOwnPropertyDescriptors : (arg = {}) => ({ ...arg })\n // eslint-disable-next-line no-proto\n const mpEventDescs = { ...(getOwnPropertyDescriptors(mpEvent) || {}), ...(getOwnPropertyDescriptors(mpEvent.__proto__) || {}) }\n const descs = {}\n for (const key in mpEventDescs) {\n const item = mpEventDescs[key]\n if ((item.get || item.set) && key !== 'type') {\n descs[key] = item\n }\n }\n Object.defineProperties(event, descs)\n },\n getPathIndex (indexOfNode) {\n return indexOfNode\n },\n getSpecialNodes () {\n return []\n },\n getMiniLifecycle (config) {\n config.app[0] = 'onCreate'\n config.page[0] = 'onInit'\n config.page[1] = 'onDestroy'\n config.page[5] = [\n 'onActive',\n 'onInactive',\n 'onBackPress',\n 'onNewRequest',\n 'onStartContinuation',\n 'onSaveData',\n 'onRestoreData',\n 'onCompleteContinuation',\n 'onPullDownRefresh'\n ]\n return config\n },\n modifyPageObject (config) {\n const originOnInit = config.onInit\n config.onInit = function () {\n // 对接小程序规范的 setData 到 harmony 规范的 $set\n this.setData = function (normalUpdate: Record<string, any>, cb) {\n Object.keys(normalUpdate).forEach(path => {\n this.$set(path, normalUpdate[path])\n })\n cb()\n }\n\n // 处理路由参数\n const options = {}\n Object.keys(this._data).forEach(key => {\n if (!/^root\\b/.test(key) && !/^\\$i18n\\b/.test(key)) {\n options[key] = this._data[key]\n }\n })\n\n // 调用 onInit\n originOnInit.call(this, options)\n\n // 手动记录路由堆栈\n const app = getApp()\n const pagePath = this.$taroPath.split('?')[0]\n if (!app.pageStack) {\n app.pageStack = []\n }\n app.pageStack.push(pagePath)\n\n // 根据 page.config 初始化 navbar\n const appConfig = app.config\n const pageConfig = this.config\n const window = Object.assign({}, appConfig.window, pageConfig)\n\n this.$set('taroNavBar', {\n background: window.navigationBarBackgroundColor || '#000000',\n textStyle: window.navigationBarTextStyle || 'white',\n title: window.navigationBarTitleText || '',\n style: window.navigationStyle || 'default'\n })\n\n // 初始化下拉刷新组件\n this.$set('enablePullDownRefresh', Boolean(window.enablePullDownRefresh))\n this.$set('isRefreshing', false)\n\n // 根据 app.config 初始化 tabbar\n if (appConfig.tabBar) {\n const list = appConfig.tabBar.list\n for (const idx in list) {\n const item = list[idx]\n if (item.pagePath === pagePath) {\n this.$set('selected', idx)\n this.$set('isShowTaroTabBar', true)\n this.$set('taroTabBar', appConfig.tabBar)\n break\n }\n }\n }\n }\n\n const originOnPullDownRefresh = config.onPullDownRefresh\n config.onPullDownRefresh = function (e) {\n this.$set('isRefreshing', e.refreshing)\n\n // 调用 onPullDownRefresh\n originOnPullDownRefresh.call(this)\n }\n\n const originOnDestroy = config.onDestroy\n config.onDestroy = function () {\n // 页面销毁时 执行路由堆栈 出栈\n const app = getApp()\n if (isArray(app.pageStack)) {\n // 不能用 pop,因为 onInit 会比 onDestroy 先触发,考虑一种情况:\n // current stack: [A, B], action: redirectTo C\n // [C onInit], push C, stack: [A, B, C]\n // [B onDestroy], pop C, stack: [A, B]\n // 可见 pop 会导致路由栈错误,上述例子中正确的路由栈应该是 [A, C],而不是 [A, B]\n const pagePath = this.$taroPath.split('?')[0]\n const stack: string[] = app.pageStack\n const len = stack.length\n let targetIdx = -1\n for (let i = 0; i < len; i++) {\n if (stack[i] === pagePath) targetIdx = i\n }\n targetIdx >= 0 && stack.splice(targetIdx, 1)\n }\n\n // 调用 OnDestroy\n originOnDestroy.call(this)\n }\n config.data = { root: { cn: [] } }\n },\n isBubbleEvents (eventName) {\n return BUBBLE_EVENTS.has(eventName)\n }\n}\n"],"names":["callbackManager","filePathSchema","getFileInfo","getSavedFileList","saveFile","removeSavedFile","requirePlugin","request","getApp"],"mappings":"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"}
|