@mybricks/taro-core 0.0.2 → 0.1.2
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/dist/index.cjs.js +3497 -1450
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +3438 -1439
- package/dist/index.esm.js.map +1 -1
- package/package.json +13 -5
- package/dist/index.d.ts +0 -692
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/mybricks/constant.js","../src/mybricks/log.js","../src/mybricks/Subject.js","../src/mybricks/createReactiveInputHandler.js","../../../src/utils/hooks.ts","../../../src/utils/useContext.ts","../src/mybricks/utils.js","../src/mybricks/createJSHandle.js","../src/mybricks/variables.js","../src/mybricks/index.js","../../../src/utils/pageRouter.ts","../../../src/utils/ComContext.tsx","../../../src/utils/slots.tsx","../../../src/utils/with.tsx","../../../src/utils/PopupRenderer.tsx","../../../src/utils/popupRouter.ts","../../../src/comlib/_ShowToast.ts","../../../src/comlib/_ScanQrcode.ts","../../../src/comlib/_SetStorage.ts","../../../src/comlib/_GetStorage.ts","../../../src/comlib/_RemoveStorage.ts","../../../src/comlib/_GetLocation.ts","../../../src/comlib/_Vibrate.ts","../../../src/comlib/_CallPhone.ts","../../../src/comlib/_OpenCamera.ts","../../../src/comlib/_OpenUrl.ts","../../../src/comlib/_Share.ts","../../../src/comlib/_GetSystemInfo.ts","../../../src/comlib/_AesEncode.ts","../../../src/comlib/_Modal.ts","../../../src/comlib/_Format.ts","../../../src/comlib/_ChooseFile.ts","../../../src/comlib/_ChooseMedia.ts","../../../src/comlib/_Connector.ts","../../../src/comlib/_ConnectorGlobalHeaders.ts","../../../src/comlib/_BackTo.ts","../../../src/comlib/_Router.ts","../../../src/comlib/_OpenPetalMap.ts","../../../src/comlib/_TextToSpeech.ts","../../../src/comlib/_TimerDebounce.ts","../../../src/comlib/_TimerDelay.ts","../../../src/comlib/_TimerThrottle.ts","../../../index.ts"],"sourcesContent":["export const SUBJECT_NEXT = Symbol(\"SUBJECT_NEXT\")\nexport const SUBJECT_VALUE = Symbol(\"SUBJECT_VALUE\")\nexport const SUBJECT_SUBSCRIBE = Symbol(\"SUBJECT_SUBSCRIBE\")\nexport const SUBJECT_UNSUBSCRIBE = Symbol(\"SUBJECT_UNSUBSCRIBE\")\nexport const SUBJECT_EMPTY = Symbol(\"SUBJECT_EMPTY\")\nexport const SUBJECT_SETVALUE = Symbol(\"SUBJECT_SETVALUE\")\nexport const VARS_MARK = Symbol(\"VARS_MARK\")\nexport const BASECONTROLLER_MARK = Symbol(\"BASECONTROLLER_MARK\")\nexport const MYBRICKS_DESCRIPTOR = Symbol(\"MYBRICKS_DESCRIPTOR\")\nexport const EXE_TITLE_MAP = {\n output: \"输出\",\n input: \"输入\"\n}\nexport const CONTROLLER_CONTEXT = Symbol(\"CONTROLLER_CONTEXT\")\nexport const EXCUTE_TYPE_KEY = Symbol(\"EXCUTE_TYPE_KEY\")\nexport const EXCUTE_TYPE_VALUE = {\n DATACHANGED: Symbol('DATACHANGED')\n}\n\n","export const log = (...args) => {\n // console.log(\"[MyBricks]\", ...args)\n}\n\nexport const logger = {\n info: log,\n warn: log,\n error: log,\n}\n\n","import { log } from \"./log\"\nimport {\n SUBJECT_NEXT,\n SUBJECT_VALUE,\n SUBJECT_EMPTY,\n SUBJECT_SETVALUE,\n SUBJECT_SUBSCRIBE,\n SUBJECT_UNSUBSCRIBE\n} from \"./constant\"\n\n/** 数据流 */\nexport class Subject {\n _values = []\n _observers = new Set()\n _log = undefined\n _empty = true;\n\n constructor(params = {}) {\n this._log = params.log\n return new Proxy(this, {\n get(target, prop) {\n if (prop in target) {\n return target[prop];\n }\n\n const subjectNext = new SubjectNext(prop)\n\n target[SUBJECT_SUBSCRIBE]((value, extra) => {\n subjectNext[SUBJECT_NEXT](value, extra)\n })\n\n return subjectNext\n }\n })\n }\n\n get [SUBJECT_VALUE]() {\n return this._values[0]\n }\n\n get [SUBJECT_EMPTY]() {\n return this._empty;\n }\n\n [SUBJECT_SETVALUE](value) {\n this._values[0] = value;\n this._empty = false;\n }\n\n [SUBJECT_NEXT](value, extra) {\n log(this._log, JSON.stringify(value))\n this._values[0] = value\n this._empty = false\n this._observers.forEach((observer) => observer(value, extra))\n }\n\n [SUBJECT_SUBSCRIBE](observer) {\n if (this._values.length) {\n observer(this._values[0])\n }\n this._observers.add(observer)\n }\n\n [SUBJECT_UNSUBSCRIBE](observer) {\n this._observers.delete(observer)\n }\n}\n\nfunction getValueNextByPath(params) {\n const { value, path } = params\n let current = value\n for (const key of path) {\n if (current === null || current === undefined) {\n return undefined\n }\n current = current[key]\n }\n return current\n}\n\nclass SubjectNext extends Subject {\n _path = []\n\n constructor(path) {\n super()\n\n this._path.push(path)\n\n return new Proxy(this, {\n get(target, prop) {\n if (prop in target) {\n return target[prop];\n }\n\n target._path.push(prop)\n\n return target;\n }\n })\n }\n\n [SUBJECT_NEXT](value, extra) {\n this._values[0] = value\n this._empty = false\n const nextValue = getValueNextByPath({ value, path: this._path })\n this._observers.forEach((observer) => observer(nextValue, extra))\n }\n\n [SUBJECT_SUBSCRIBE](observer) {\n if (this._values.length) {\n observer(getValueNextByPath({ value: this._values[0], path: this._path }))\n }\n this._observers.add(observer)\n }\n}\n","import { EXE_TITLE_MAP, SUBJECT_NEXT, SUBJECT_SUBSCRIBE } from \"./constant\"\nimport { Subject } from \"./Subject\"\n\n/** 组件的输入 */\nexport const createReactiveInputHandler = (params) => {\n const { input, value, rels, title } = params;\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n input(value, new Proxy({}, {\n get(_, key) {\n return (value) => {\n (rels[key] ||\n (rels[key] = new Subject({ log: `${EXE_TITLE_MAP[\"output\"]} ${title} | ${key}` })))[SUBJECT_NEXT](value)\n }\n }\n }))\n })\n } else {\n input(value, new Proxy({},\n {\n get(_, key) {\n return (value) => {\n (rels[key] ||\n (rels[key] = new Subject({ log: `${EXE_TITLE_MAP[\"output\"]} ${title} | ${key}` })))[SUBJECT_NEXT](value)\n }\n }\n }\n ))\n }\n\n return new Proxy({},\n {\n get(_, key) {\n return rels[key] || (rels[key] = new Subject({ log: `${EXE_TITLE_MAP[\"output\"]} ${title} | ${key}` }))\n }\n }\n )\n}\n\n","import { useState, useRef, useMemo } from 'react';\nimport { createReactiveInputHandler } from '../mybricks/createReactiveInputHandler';\n\n/**\n * 深度代理,支持自动路径初始化和响应式更新(鸿蒙化处理方案)\n */\nexport function deepProxy(target: any, onSet?: () => void): any {\n if (target === null || typeof target !== 'object' || target.__isProxy) {\n return target;\n }\n\n return new Proxy(target, {\n get(obj, prop) {\n if (prop === '__isProxy') return true;\n if (prop === 'toJSON') return () => obj;\n\n let value = (obj as any)[prop];\n\n // 只代理已存在的对象属性,不自动创建空对象\n // 避免访问不存在的属性(如 disabled)时污染原始数据\n if (typeof value === 'object' && value !== null && !value.__isProxy) {\n (obj as any)[prop] = deepProxy(value, onSet);\n }\n\n return (obj as any)[prop];\n },\n set(obj, prop, value) {\n const result = Reflect.set(obj, prop, value);\n if (onSet) onSet();\n return result;\n }\n });\n}\n\nexport function useModel(rawData: any) {\n const [, forceUpdate] = useState({});\n const dataRef = useRef(rawData || {});\n\n return useMemo(() => {\n return deepProxy(dataRef.current, () => forceUpdate({}));\n }, []);\n}\n\nexport function useBindInputs(scope: any, id: string, initialHandlers?: Record<string, any>) {\n const handlersRef = useRef<Record<string, any>>({ ...initialHandlers });\n\n // 同步最新的 initialHandlers\n if (initialHandlers) {\n Object.assign(handlersRef.current, initialHandlers);\n }\n\n return useMemo(() => {\n const proxy = new Proxy({}, {\n get: (_target, pin: string) => {\n return (arg: any, ...args: any[]) => {\n if (typeof arg === 'function') {\n // 组件注册回调\n handlersRef.current[pin] = arg;\n } else {\n // 逻辑流触发输入\n const handler = handlersRef.current[pin];\n\n if (typeof handler === 'function') {\n if (pin === '_setData') {\n return handler(arg, ...args);\n }\n // 构造 createReactiveInputHandler 需要的参数\n return createReactiveInputHandler({\n input: handler,\n value: arg,\n rels: {}, // 这里可以扩展 output 关联\n title: id\n });\n }\n }\n };\n }\n });\n\n // 将代理对象挂载到作用域,供外部 comRefs.current.id.pin() 调用\n if (scope && scope.current) {\n scope.current[id] = proxy;\n }\n return proxy;\n }, [scope, id]);\n}\n\nexport function useBindEvents(props: any, context?: { id: string, name: string, parentSlot?: any }) {\n return useMemo(() => {\n const _events: Record<string, any> = {};\n\n // 预处理已存在的事件\n Object.keys(props).forEach(key => {\n // 兼容:MyBricks 输出 pin 既可能是 onChange,也可能是 changeTab 这种非 on 前缀\n if (typeof props[key] === 'function') {\n const handler = props[key];\n const wrapped = (originalValue: any) => {\n // 鸿蒙/render-web 规范:如果是在插槽中触发事件,且存在父级协议,则自动封装元数据\n // 这解决了 FormContainer 等组件识别子项的需求\n // 注意:不要仅凭 parentSlot 存在就封装,否则会影响 Tabs2/changeTab 这类事件直接给 JS 计算组件传参\n // 仅在父级 slot 使用 itemWrap 协议时才需要这层元数据\n const value = context?.parentSlot?.params?.itemWrap ? {\n id: context.id,\n name: context.name,\n value: originalValue\n } : originalValue;\n \n return handler(value);\n };\n wrapped.getConnections = () => [{ id: 'default' }];\n _events[key] = wrapped;\n }\n });\n\n return new Proxy(_events, {\n get(target, key: string) {\n // 对 onXXX 事件(不少组件 runtime 直接 outputs[\"onChange\"](...))提供兜底函数,避免未连线时报错\n if (typeof key === 'string' && key.startsWith('on')) {\n if ((target as any)[key]) {\n return (target as any)[key];\n }\n // 对未连接的事件返回兜底函数\n const emptyFn: any = () => { };\n emptyFn.getConnections = () => [];\n return emptyFn;\n }\n return (target as any)[key];\n }\n });\n }, [props, context]);\n}\n\n\n","import { useRef, useState, useMemo } from 'react'\nimport { deepProxy } from './hooks'\n\nexport interface ComContextStore {\n comRefs: any;\n $vars: any;\n $fxs: any;\n appContext: any; \n popupState: {\n visible: boolean;\n name: string;\n value: any;\n controller: any;\n };\n setPopupState: (state: any) => void;\n}\n\nexport function useAppCreateContext(id: string): ComContextStore {\n // 约定:场景级 inputs 统一挂载到 $inputs,避免与组件 runtime 的 inputs 命名冲突\n // 同时可避免 `Cannot set property 'open' of undefined`\n // 注册表拆分:\n // - comRefs: 组件实例/inputs/outputs 注册表(可 scoped)\n // - $vars/$fxs: 逻辑能力注册表(仅页面级,全作用域共享)\n const comRefs = useRef<any>(deepProxy({ $inputs: {}, $outputs: {} }));\n const $vars = useRef<any>({});\n const $fxs = useRef<any>({});\n const [popupState, setPopupState] = useState({\n visible: false,\n name: '',\n value: null,\n controller: null\n });\n\n const appContext = useRef({\n canvas: {\n id, // 使用 data 中的 id\n },\n runtime: {\n debug: false,\n },\n edit: false,\n isH5: false,\n isDesigner: false,\n isPreview: false,\n isRelease: false,\n isDebug: false,\n isLocal: false,\n isTest: false,\n tabBar: [],\n useTabBar: false,\n }).current;\n\n return useMemo(() => ({\n comRefs,\n $vars,\n $fxs,\n appContext,\n popupState,\n setPopupState\n }), [popupState]);\n}\n","export const safeSetByPath = (params) => {\n const { data, path, value } = params;\n const nextIndex = path.length - 1;\n let current = data;\n let errorFlag = false;\n for (let i = 0; i < nextIndex; i++) {\n try {\n current = current[path[i]];\n } catch (error) {\n errorFlag = true;\n break;\n }\n }\n\n if (!errorFlag) {\n current[path[nextIndex]] = value;\n }\n}\n\nexport const safeGetByPath = (params) => {\n const { data, path } = params;\n let current = data;\n let errorFlag = false;\n for (let i = 0; i < path.length; i++) {\n try {\n current = current[path[i]];\n } catch (error) {\n errorFlag = true;\n break;\n }\n }\n\n if (!errorFlag) {\n return current;\n }\n\n return undefined;\n}\n\nexport const isObject = (value) => {\n return value && typeof value === \"object\";\n}\n\n","import { EXE_TITLE_MAP, SUBJECT_NEXT, SUBJECT_SUBSCRIBE } from \"./constant\"\nimport { Subject } from \"./Subject\"\nimport { log, logger } from \"./log\"\nimport { createReactiveInputHandler } from \"./createReactiveInputHandler\"\n\n/** utils */\n/**\n * 判断是否js多输入\n */\nexport const validateJsMultipleInputs = (input) => {\n return input.match(/\\./); // input.xxx 为多输入模式\n}\n\n// JS\nexport const createJSHandle = (fn, options) => {\n let controller\n\n const { props, appContext } = options\n\n const inputs = new Proxy({}, {\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n ownKeys() {\n return props.inputs\n },\n get() {\n return (input) => {\n // 约定只有一个输入\n controller = input\n }\n }\n })\n\n const rels = {}\n\n const outputs = new Proxy({}, {\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n ownKeys() {\n return props.outputs\n },\n get(_, key) {\n return (value) => {\n (rels[key] ||\n (rels[key] = new Subject({ log: `${EXE_TITLE_MAP[\"output\"]} ${props.title} | ${key}` })))[SUBJECT_NEXT](value)\n }\n }\n })\n\n fn({\n data: props.data,\n inputs,\n outputs,\n logger,\n env: appContext?.env\n })\n\n const isJsMultipleInputs = props.inputs[0]\n ? validateJsMultipleInputs(props.inputs[0])\n : false;\n\n const exeOutputs = new Proxy(\n {},\n {\n get(_, key) {\n return rels[key] || (rels[key] = new Subject({ log: `${EXE_TITLE_MAP[\"output\"]} ${props.title} | ${key}` }))\n },\n },\n )\n\n const exe = (...args) => {\n if (args.length) {\n // 调用输入\n if (isJsMultipleInputs) {\n // 多输入模式\n const length = args.length;\n let valueAry = {};\n args.forEach((value, index) => {\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n log(`${EXE_TITLE_MAP[\"input\"]} ${props.title} | ${props.inputs[index]}`, JSON.stringify(value));\n valueAry[props.inputs[index]] = value\n if (Object.keys(valueAry).length === length) {\n createReactiveInputHandler({\n input: controller,\n value: valueAry,\n rels,\n title: props.title\n })\n // 触发输入后清除\n valueAry = {}\n }\n })\n } else {\n log(`${EXE_TITLE_MAP[\"input\"]} ${props.title} | ${props.inputs[index]}`, JSON.stringify(value));\n valueAry[props.inputs[index]] = value\n\n if (Object.keys(valueAry).length === length) {\n createReactiveInputHandler({\n input: controller,\n value: valueAry,\n rels,\n title: props.title\n })\n // 触发输入后清除\n valueAry = {}\n }\n }\n })\n } else {\n // 非多输入\n const value = args[0]\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n log(`${EXE_TITLE_MAP[\"input\"]} ${props.title} | ${props.inputs[0]}`, JSON.stringify(value));\n createReactiveInputHandler({\n input: controller,\n value,\n rels,\n title: props.title\n })\n })\n } else {\n log(`${EXE_TITLE_MAP[\"input\"]} ${props.title} | ${props.inputs[0]}`, JSON.stringify(value));\n createReactiveInputHandler({\n input: controller,\n value,\n rels,\n title: props.title\n })\n }\n }\n }\n\n return exeOutputs;\n }\n\n return exe;\n}\n\n","import { Subject } from \"./Subject\"\nimport { context } from \"./context\"\nimport { safeSetByPath, safeGetByPath } from \"./utils\"\nimport { SUBJECT_NEXT, SUBJECT_SUBSCRIBE, SUBJECT_VALUE, SUBJECT_EMPTY, SUBJECT_SETVALUE } from \"./constant\"\n\n/** 创建变量 */\nexport const createVariable = (...args) => {\n const hasDefaultValue = args.length > 0\n const initValue = args[0]\n const value = new Subject()\n if (hasDefaultValue) {\n value[SUBJECT_NEXT](initValue)\n }\n const ref = {\n value,\n callBacksMap: new Map(),\n\n // 注册change后,设置一个subject,用于触发change\n changeValues: new Set(),\n // change到上述subject的映射\n changeValuesMap: new Map(),\n }\n\n const variable = {\n /** 读取 */\n get(value, path) {\n const nextValue = new Subject()\n const next = () => {\n nextValue[SUBJECT_NEXT](path ? safeGetByPath({\n data: ref.value[SUBJECT_VALUE],\n path: path.split(\".\")\n }) : ref.value[SUBJECT_VALUE])\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE](() => {\n next()\n })\n } else {\n next()\n }\n return nextValue\n },\n /** 赋值 */\n set(value, path) {\n const nextValue = new Subject()\n const next = (value, extra) => {\n if (path) {\n const isEmpty = ref.value[SUBJECT_EMPTY]\n if (isEmpty) {\n ref.value[SUBJECT_SETVALUE]({})\n }\n safeSetByPath({\n data: ref.value[SUBJECT_VALUE],\n path: path.split(\".\"),\n value: value\n })\n\n value = ref.value[SUBJECT_VALUE]\n }\n\n ref.value[SUBJECT_NEXT](value, extra)\n ref.changeValues.forEach((changeValue) => {\n changeValue[SUBJECT_NEXT](value, extra)\n })\n nextValue[SUBJECT_NEXT](value, extra)\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value, extra) => {\n next(value, extra)\n })\n } else {\n next(value)\n }\n return nextValue\n },\n /** 重置 */\n reset(value) {\n const nextValue = new Subject()\n const next = () => {\n ref.value[SUBJECT_NEXT](initValue)\n ref.changeValues.forEach((changeValue) => {\n changeValue[SUBJECT_NEXT](initValue)\n })\n nextValue[SUBJECT_NEXT](initValue)\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE](() => {\n next()\n })\n } else {\n next()\n }\n return nextValue\n },\n /** 值变更监听 */\n changed() {\n const changeValue = new Subject();\n ref.changeValues.add(changeValue);\n\n const result = {\n destroy() {\n ref.changeValues.delete(changeValue)\n },\n [SUBJECT_SUBSCRIBE](next) {\n changeValue[SUBJECT_SUBSCRIBE](next)\n }\n }\n\n if (context.apiRun) {\n if (!context.apiRunVariablesSubject[context.apiRun]) {\n context.apiRunVariablesSubject[context.apiRun] = [result]\n } else {\n context.apiRunVariablesSubject[context.apiRun].push(result)\n }\n }\n\n return result\n },\n bind(callBack) {\n if (!ref.callBacksMap.has(\"\")) {\n ref.callBacksMap.set(\"\", new Set())\n }\n const callBacks = ref.callBacksMap.get(\"\")\n callBacks.add(callBack)\n // 默认触发一次\n callBack(ref.value[SUBJECT_VALUE])\n },\n ext() {\n return {\n setValue(value) {\n variable.set(value)\n },\n getValue() {\n return ref.value[SUBJECT_VALUE]\n }\n }\n },\n registerChange(change) {\n const changeValue = new Subject()\n // 默认执行,进行初始化动作\n change(changeValue)\n\n ref.changeValues.add(changeValue)\n ref.changeValuesMap.set(change, changeValue)\n\n if (!ref.value[SUBJECT_EMPTY]) {\n // 有值就默认执行\n changeValue[SUBJECT_NEXT](ref.value[SUBJECT_VALUE])\n }\n },\n unregisterChange(change) {\n const changeValue = ref.changeValuesMap.get(change)\n ref.changeValues.delete(changeValue)\n ref.changeValuesMap.delete(change)\n },\n // 内置的赋值操作\n setTrue() {\n return variable.set(true)\n },\n setFalse() {\n return variable.set(false)\n },\n setAryAdd(value) {\n const nextValue = new Subject()\n\n if (Array.isArray(ref.value[SUBJECT_VALUE])) {\n const next = (value) => {\n const arrayValue = ref.value[SUBJECT_VALUE].concat(value)\n ref.value[SUBJECT_NEXT](arrayValue)\n ref.changeValues.forEach((changeValue) => {\n changeValue[SUBJECT_NEXT](value)\n })\n nextValue[SUBJECT_NEXT](arrayValue)\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n next(value)\n })\n } else {\n next(value)\n }\n }\n\n return nextValue\n }\n }\n\n return new Proxy({}, {\n get(_, key) {\n return variable[key]\n }\n })\n}\n\n/** 创建变量map */\nexport const createVars = (vars) => {\n return new Proxy(vars, {\n get(target, key) {\n const value = target[key]\n if (value) {\n return value.get()[SUBJECT_VALUE]\n }\n return value\n }\n })\n}\n\n","import {\n SUBJECT_NEXT,\n SUBJECT_VALUE,\n SUBJECT_SUBSCRIBE,\n VARS_MARK,\n BASECONTROLLER_MARK,\n EXE_TITLE_MAP,\n CONTROLLER_CONTEXT,\n EXCUTE_TYPE_KEY,\n EXCUTE_TYPE_VALUE\n} from \"./constant\"\nimport { log } from \"./log\"\nimport { Subject } from \"./Subject\"\nimport { context } from \"./context\"\nimport { safeSetByPath, isObject } from \"./utils\"\nimport { createReactiveInputHandler } from \"./createReactiveInputHandler\"\n\n/** 合并数据流 */\nexport const merge = (...subjects) => {\n const merge = new Subject()\n\n subjects.forEach((subject) => {\n if (subject?.[SUBJECT_SUBSCRIBE]) {\n subject[SUBJECT_SUBSCRIBE]((value) => {\n merge[SUBJECT_NEXT](value)\n })\n } else {\n merge[SUBJECT_NEXT](subject)\n }\n })\n\n return merge\n}\n\n\n// UI\nexport const createInputsHandle = (params, init = false) => {\n if (init) {\n /** 注册的输入 */\n const _inputEvents = {}\n /** 输入未完成注册,写入todo列表 */\n const _inputEventsTodo = {}\n /** 组件基础信息 */\n const _comInfo = {}\n /** 全局 */\n const controllerContext = {\n initStyles: {},\n initData: {},\n dataChangedSubjects: {},\n // 唯一标记\n mark: {}\n }\n\n const proxy = new Proxy({}, {\n get(_, key) {\n // 内置关键字\n if (key === \"_inputEvents\") {\n return _inputEvents;\n } else if (key === \"_inputEventsTodo\") {\n return _inputEventsTodo\n } else if (key === \"_comInfo\") {\n return _comInfo\n } else if (key === CONTROLLER_CONTEXT) {\n return controllerContext\n } else if (key === \"_setStyle\") {\n return (value0, value1) => {\n const next = (value) => {\n if (Object.prototype.toString.call(value) === \"[object Object]\") {\n Object.entries(value).forEach(([selector, nextStyle]) => {\n if (!controllerContext.styles) {\n const { initStyles } = controllerContext\n if (!initStyles[selector]) {\n initStyles[selector] = nextStyle\n } else {\n const initStyle = initStyles[selector]\n Object.entries(nextStyle).forEach(([key, value]) => {\n initStyle[key] = value\n })\n }\n return\n }\n const { style } = controllerContext.styles.getStyle(selector)\n const updators = controllerContext.styles.getUpdators(selector)\n\n Object.entries(nextStyle).forEach(([key, value]) => {\n style[key] = value\n })\n\n if (updators) {\n updators.forEach((updator) => {\n updator(selector, style)\n })\n }\n })\n }\n }\n\n if (typeof value0 === \"string\" && value1) {\n if (value1?.[SUBJECT_SUBSCRIBE]) {\n value1[SUBJECT_SUBSCRIBE]((value) => {\n next({\n [value0]: value\n })\n })\n } else {\n next({\n [value0]: value1\n })\n }\n } else {\n if (value0?.[SUBJECT_SUBSCRIBE]) {\n value0[SUBJECT_SUBSCRIBE]((value) => {\n next(value)\n })\n } else {\n next(value0)\n }\n }\n }\n } else if (key === \"_setData\") {\n return (...args) => {\n if (args.length === 2) {\n const [path, value] = args\n\n const next = (params) => {\n const { path, value } = params\n if (!controllerContext.data) {\n const { initData } = controllerContext\n initData[path] = value\n return\n }\n\n safeSetByPath({\n data: controllerContext.data,\n path: path.split(\".\"),\n value: {\n value,\n [EXCUTE_TYPE_KEY]: EXCUTE_TYPE_VALUE.DATACHANGED\n }\n })\n }\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value, extra) => {\n if (extra?.[EXCUTE_TYPE_KEY] === EXCUTE_TYPE_VALUE.DATACHANGED && extra?.controllerMark === controllerContext.mark) {\n // 数据流来自「EXCUTE_TYPE_VALUE.DATACHANGED」且来自自身,不再继续执行,避免死循环\n return\n }\n next({ value, path })\n })\n } else {\n next({ value, path })\n }\n }\n }\n } else if (key === \"_dataChanged\") {\n return (path) => {\n const subject = new Subject();\n controllerContext.dataChangedSubjects[path] = subject;\n\n return subject;\n }\n }\n\n return (value) => {\n if (!_inputEvents[key]) {\n // 组件未完成输入注册\n if (!_inputEventsTodo[key]) {\n _inputEventsTodo[key] = []\n }\n\n const rels = {}\n\n _inputEventsTodo[key].push({\n value,\n rels,\n });\n\n return new Proxy({}, {\n get(_, key) {\n return rels[key] || (rels[key] = new Subject())\n }\n })\n }\n\n return createReactiveInputHandler({\n input(value, proxy) {\n log(`${EXE_TITLE_MAP[\"input\"]} ${_comInfo.title} | ${key}`, JSON.stringify(value))\n return _inputEvents[key](value, proxy)\n },\n title: _comInfo.title,\n value,\n rels: {}\n })\n }\n }\n })\n\n return proxy;\n } else {\n if (!params.controller[CONTROLLER_CONTEXT].inputs) {\n const { controller, title, styles } = params\n const { _inputEvents, _comInfo, _inputEventsTodo, [CONTROLLER_CONTEXT]: controllerContext } = controller\n _comInfo.title = title;\n controllerContext.initModifier = {\n visibility: styles?.root?.display === \"none\" ? Visibility.None : Visibility.Visible\n }\n\n const createVisibilityHandler = (visibilityState) => {\n return (value) => {\n const setVisibility = () => {\n if (!controllerContext.modifier?.attribute) {\n controllerContext.initModifier.visibility = visibilityState\n } else {\n controllerContext.modifier.attribute?.visibility(visibilityState)\n }\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE](setVisibility);\n } else {\n setVisibility()\n }\n };\n };\n\n // 内置显示隐藏逻辑\n _inputEvents.show = createVisibilityHandler(Visibility.Visible)\n _inputEvents.hide = createVisibilityHandler(Visibility.None)\n _inputEvents.showOrHide = (value) => {\n const setVisibility = (value) => {\n if (!controllerContext.modifier?.attribute) {\n controllerContext.initModifier.visibility = !!value ? Visibility.Visible : Visibility.None\n } else {\n controllerContext.modifier.attribute?.visibility(!!value ? Visibility.Visible : Visibility.None)\n }\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE](setVisibility)\n } else {\n setVisibility(value)\n }\n }\n // 处理显示隐藏todo项\n [\"show\", \"hide\", \"showOrHide\"].forEach((key) => {\n const todo = _inputEventsTodo[key]\n if (todo) {\n Reflect.deleteProperty(_inputEventsTodo, key)\n\n todo.forEach(({ value }) => {\n _inputEvents[key](value)\n })\n }\n })\n\n const proxy = new Proxy(controller, {\n get(_, key) {\n return (input) => {\n if (!_inputEvents[key]) {\n // 第一次注册,处理TODO\n if (_inputEventsTodo[key]) {\n _inputEventsTodo[key].forEach(({ value, rels }) => {\n createReactiveInputHandler({\n input(value, proxy) {\n log(`${EXE_TITLE_MAP[\"input\"]} ${title} | ${key}`, JSON.stringify(value))\n return input(value, proxy)\n },\n title,\n value,\n rels\n })\n })\n Reflect.deleteProperty(_inputEventsTodo, key)\n }\n }\n\n _inputEvents[key] = input\n }\n }\n })\n\n params.controller[CONTROLLER_CONTEXT].inputs = proxy;\n }\n\n return params.controller[CONTROLLER_CONTEXT].inputs\n }\n}\n\n// 事件\nexport const createEventsHandle = (params) => {\n if (!params.controller[CONTROLLER_CONTEXT].outputs) {\n params.controller[CONTROLLER_CONTEXT].outputs = new Proxy(params.events || {}, {\n get(target, key) {\n const event = params.controller[CONTROLLER_CONTEXT].appContext?.comEvent?.[params.uid]?.[key]\n if (event) {\n const { getVar, getOutput, getInput } = params.controller[CONTROLLER_CONTEXT]\n return (value) => {\n event(value, {\n getVar,\n getOutput,\n getInput\n })\n }\n }\n\n return target[key] || (() => {\n })\n }\n })\n }\n\n return params.controller[CONTROLLER_CONTEXT].outputs\n}\n\n// 场景打开、输出\nexport const pageController = () => {\n return new Proxy({\n commit: new Subject(),\n cancel: new Subject(),\n apply: new Subject(),\n close: new Subject(),\n }, {\n get(target, key) {\n return target[key]\n }\n })\n}\n\nexport class Page {\n appRouter\n\n constructor(appRouter) {\n this.appRouter = appRouter\n }\n\n /** 获取当前页面入参 */\n getParams(name) {\n const params = this.appRouter.getParams(name)\n const subject = new Subject()\n subject[SUBJECT_NEXT](params?.value)\n return subject\n }\n\n /** 打开 */\n open(name, value) {\n const controller = pageController()\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n this.appRouter.push(name, { value, controller })\n })\n } else {\n this.appRouter.push(name, { value, controller })\n }\n\n return controller\n }\n\n /** 打开 */\n replace(name, value) {\n const controller = pageController()\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n this.appRouter.replace(name, { value, controller })\n })\n } else {\n this.appRouter.replace(name, { value, controller })\n }\n\n return controller\n }\n\n /** 确定 */\n commit(name, value) {\n const params = this.appRouter.getParams(name)\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.commit[SUBJECT_NEXT](value)\n }, 100)\n })\n } else {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.commit[SUBJECT_NEXT](value)\n }, 100)\n }\n }\n\n /** 取消 */\n cancel(name, value) {\n const params = this.appRouter.getParams(name)\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.cancel[SUBJECT_NEXT](value)\n }, 100)\n })\n } else {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.cancel[SUBJECT_NEXT](value)\n }, 100)\n }\n }\n\n /** 应用,不关闭 */\n apply(name, value) {\n const params = this.appRouter.getParams(name)\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n params.controller.apply[SUBJECT_NEXT](value)\n })\n } else {\n params.controller.apply[SUBJECT_NEXT](value)\n }\n }\n\n /** 关闭 */\n close(name, value) {\n const params = this.appRouter.getParams(name)\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.close[SUBJECT_NEXT](value)\n }, 100)\n })\n } else {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.close[SUBJECT_NEXT](value)\n }, 100)\n }\n }\n}\n\n// api\nexport const emit = (fn, value) => {\n const subject = new Subject()\n\n if (!fn) {\n return subject\n }\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n const res = fn(value)\n\n if (res instanceof Promise) {\n res.then((value) => {\n subject[SUBJECT_NEXT](value)\n })\n } else {\n subject[SUBJECT_NEXT](res)\n }\n })\n } else {\n const res = fn(value)\n\n if (res instanceof Promise) {\n res.then((value) => {\n subject[SUBJECT_NEXT](value)\n })\n } else {\n subject[SUBJECT_NEXT](res)\n }\n }\n\n return subject;\n}\n\n/** 创建fx */\nexport const createFx = (fx) => {\n return (value, ...args) => {\n const outputs = {}\n\n const proxy = new Proxy({}, {\n get(_, key) {\n return outputs[key] || (outputs[key] = new Subject())\n }\n })\n\n const next = (value) => {\n const res = fx(value, ...args)\n if (res) {\n Object.entries(res).forEach(([key, value]) => {\n if (!outputs[key]) {\n outputs[key] = new Subject()\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n outputs[key][SUBJECT_NEXT](value)\n })\n } else {\n outputs[key][SUBJECT_NEXT](value)\n }\n })\n }\n }\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n next(value)\n })\n } else {\n next(value)\n }\n\n return proxy\n }\n}\n\n/** 创建插槽IO */\nexport const createSlotsIO = (params) => {\n if (!params.controller[CONTROLLER_CONTEXT].slotsIO) {\n const slotsIOMap = {}\n params.controller[CONTROLLER_CONTEXT].slotsIO = new Proxy({}, {\n get(_, key) {\n if (!slotsIOMap[key]) {\n const inputsMap = {}\n slotsIOMap[key] = {\n inputs: new Proxy({}, {\n get(_, key) {\n if (!inputsMap[key]) {\n inputsMap[key] = new Subject()\n }\n\n const next = (value) => {\n inputsMap[key][SUBJECT_NEXT](value)\n }\n\n next[SUBJECT_SUBSCRIBE] = (next) => {\n inputsMap[key][SUBJECT_SUBSCRIBE](next)\n }\n\n return next\n }\n }),\n outputs: new Proxy({}, {\n get(_, key) {\n return (next) => {\n return (value) => {\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n next(value)\n })\n } else {\n next(value)\n }\n }\n }\n }\n })\n }\n }\n\n return slotsIOMap[key]\n }\n })\n }\n\n return params.controller[CONTROLLER_CONTEXT].slotsIO\n}\n\n/**\n * 模块\n * [TODO] 暂时无法在多处使用关联输出项\n */\nexport const createModuleInputsHandle = () => {\n const inputsMap = {}\n const outputsMap = {}\n\n return new Proxy({}, {\n get(_, key) {\n if (key === \"outputs\") {\n return new Proxy({}, {\n get(_, key) {\n if (!outputsMap[key]) {\n outputsMap[key] = new Subject()\n }\n return (value) => {\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n outputsMap[key][SUBJECT_NEXT](value)\n });\n } else {\n outputsMap[key][SUBJECT_NEXT](value)\n }\n }\n }\n })\n }\n\n if (!inputsMap[key]) {\n inputsMap[key] = new Subject()\n }\n\n const next = (value) => {\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n inputsMap[key][SUBJECT_NEXT](value)\n });\n } else {\n inputsMap[key][SUBJECT_NEXT](value)\n }\n\n return new Proxy({}, {\n get(_, key) {\n return outputsMap[key] || (outputsMap[key] = new Subject())\n }\n })\n }\n\n return new Proxy(next, {\n get(_, proxyKey) {\n if (proxyKey === \"subscribe\" || proxyKey === SUBJECT_SUBSCRIBE) {\n return (next) => {\n inputsMap[key][SUBJECT_SUBSCRIBE](next)\n }\n } else if (proxyKey === \"value\" || proxyKey === SUBJECT_VALUE) {\n return inputsMap[key][SUBJECT_VALUE]\n }\n }\n })\n }\n })\n}\n\nclass Styles {\n styles = {}\n map = new Map()\n\n constructor(styles) {\n this.styles = styles\n }\n\n getStyle(selector) {\n let style = this.styles[selector]\n if (!style) {\n this.styles[selector] = {}\n style = this.styles[selector]\n }\n return {\n selector,\n style,\n setUpdator: (updator, uid) => {\n if (!this.map.has(selector)) {\n this.map.set(selector, new Map())\n }\n const selectorMap = this.map.get(selector)\n selectorMap.set(uid, updator)\n },\n ...style\n }\n }\n\n getUpdators(selector) {\n return this.map.get(selector)\n }\n}\n\n/**\n * 组件样式\n */\nexport const createStyles = (params) => {\n if (!params.controller[CONTROLLER_CONTEXT].styles) {\n const initStyles = params.controller[CONTROLLER_CONTEXT].initStyles\n const { styles, parentSlot } = params;\n Object.entries(initStyles).forEach(([selector, initStyle]) => {\n if (!styles[selector]) {\n styles[selector] = initStyle\n } else {\n const style = styles[selector]\n Object.entries(initStyle).forEach(([key, value]) => {\n style[key] = value\n })\n }\n })\n if (parentSlot?.itemWrap) {\n const { root, ...other } = styles\n params.controller[CONTROLLER_CONTEXT].styles = new Styles(other)\n } else {\n params.controller[CONTROLLER_CONTEXT].styles = new Styles(styles)\n }\n }\n\n return new Proxy({}, {\n ownKeys() {\n return Object.keys(params.styles)\n },\n getOwnPropertyDescriptor(k) {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n get(_, key) {\n return params.controller[CONTROLLER_CONTEXT].styles.getStyle(key)\n }\n })\n}\n\n/**\n * @returns {any}\n */\nexport const transformApi = (api) => {\n return (value, cb) => {\n const id = `${Math.random()}_${new Date().getTime()}`\n const outputs = {}\n const dispose = () => {\n\n }\n const proxy = new Proxy(dispose, {\n get(_, key) {\n return outputs[key] || (outputs[key] = new Subject())\n }\n })\n let isDispose = false;\n\n context.apiRun = id;\n\n const res = api(value)\n\n context.apiRun = null;\n\n if (res) {\n Object.entries(res).forEach(([key, value]) => {\n if (!outputs[key]) {\n outputs[key] = new Subject()\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n if (isDispose) {\n return\n }\n isDispose = true\n outputs[key][SUBJECT_NEXT](value)\n cb?.[key]?.(value)\n context.apiRunVariablesSubject[id]?.forEach((subject) => {\n subject.destroy()\n })\n })\n } else {\n if (isDispose) {\n return\n }\n isDispose = true\n outputs[key][SUBJECT_NEXT](value)\n cb?.[key]?.(value)\n context.apiRunVariablesSubject[id]?.forEach((subject) => {\n subject.destroy()\n })\n }\n })\n }\n\n return proxy\n }\n}\n\nexport const transformBus = (bus) => {\n return (newBus) => {\n Object.entries(newBus).forEach(([key, newBus]) => {\n bus[key] = (value) => {\n const outputs = {}\n\n const callBack = new Proxy({}, {\n get(_, key) {\n return (value) => {\n const output = outputs[key] || (outputs[key] = new Subject())\n output[SUBJECT_NEXT](value)\n }\n }\n })\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n newBus(value, callBack)\n })\n } else {\n newBus(value, callBack)\n }\n\n return new Proxy({}, {\n get(_, key) {\n return outputs[key] || (outputs[key] = new Subject())\n }\n })\n };\n })\n }\n}\n\nexport const createBus = (bus) => {\n return () => {\n return new Proxy({}, {\n get() {\n return new Subject()\n }\n })\n }\n}\n\nexport const join = (lastSubject, nextSubject) => {\n const subject = new Subject();\n const next = () => {\n if (nextSubject?.[SUBJECT_SUBSCRIBE]) {\n subject[SUBJECT_NEXT](nextSubject[SUBJECT_VALUE]);\n } else {\n subject[SUBJECT_NEXT](nextSubject);\n }\n }\n\n if (lastSubject?.[SUBJECT_SUBSCRIBE]) {\n lastSubject[SUBJECT_SUBSCRIBE](() => {\n next()\n });\n } else {\n next()\n }\n\n return subject;\n};\n\nexport const createModifier = (params, Modifier) => {\n if (!params.controller[CONTROLLER_CONTEXT].modifier) {\n params.controller[CONTROLLER_CONTEXT].modifier = new Modifier(params.controller[CONTROLLER_CONTEXT].initModifier);\n }\n return params.controller[CONTROLLER_CONTEXT].modifier\n}\n\nconst DATA_PROXY = Symbol(\"DATA_PROXY\");\nconst dataProxy = (params) => {\n const { data, path, config } = params;\n return new Proxy(data, {\n get(target, key, receiver) {\n if (key === DATA_PROXY) {\n return true;\n }\n const value = Reflect.get(target, key, receiver);\n if (typeof key !== \"string\" || target.hasOwnProperty(key)) {\n return value\n }\n if (isObject(value)) {\n if (value[DATA_PROXY]) {\n return value;\n }\n\n return dataProxy({\n data: value,\n path: path ? `${path}.${key}` : key,\n config\n });\n }\n return value;\n },\n set(target, key, value, receiver) {\n if (typeof key !== \"string\" || target.hasOwnProperty(key)) {\n Reflect.set(target, key, value, receiver);\n } else {\n if (!value?.[EXCUTE_TYPE_KEY]) {\n Reflect.set(target, key, value, receiver);\n // 目前只有「EXCUTE_TYPE_VALUE.DATACHANGED」,所以判断有「EXCUTE_TYPE_KEY」就行\n config?.set?.({\n value,\n path: path ? `${path}.${key}` : key,\n });\n } else {\n Reflect.set(target, key, value.value, receiver);\n }\n }\n return true;\n },\n });\n}\n\nexport const createData = (params, Data) => {\n if (!params.controller[CONTROLLER_CONTEXT].data) {\n const { initData, dataChangedSubjects, mark } = params.controller[CONTROLLER_CONTEXT]\n const nextData = Object.assign({}, params.data)\n Object.entries(initData).forEach(([path, value]) => {\n safeSetByPath({\n data: nextData,\n path: path.split(\".\"),\n value\n })\n })\n\n const data = new Data(nextData)\n const observeData = dataProxy({\n data,\n path: \"\",\n config: {\n set(params) {\n const dataChangedSubject = dataChangedSubjects[params.path];\n if (dataChangedSubject) {\n dataChangedSubject[SUBJECT_NEXT](params.value, {\n [EXCUTE_TYPE_KEY]: EXCUTE_TYPE_VALUE.DATACHANGED,\n controllerMark: mark,\n })\n }\n }\n }\n })\n\n params.controller[CONTROLLER_CONTEXT].data = observeData\n }\n\n return params.controller[CONTROLLER_CONTEXT].data\n}\n\nexport class Vars {\n [VARS_MARK] = true\n}\n\nexport class BaseController {\n [BASECONTROLLER_MARK] = true\n}\n\nexport * from \"./MyBricksDescriptor\"\n\nexport * from \"./createModuleEventsHandle\"\n\nexport * from \"./createJSHandle\"\n\nexport * from \"./Subject\"\n\nexport * from \"./createEnv\"\n\nexport * from \"./variables\"\n\nexport * from \"./event\"\n\n","// @ts-ignore 运行时由宿主项目提供 @tarojs/taro\nimport Taro from '@tarojs/taro';\nimport { Page } from '../mybricks';\n\n/**\n * Taro 路由驱动 (纯粹版)\n * 只负责处理真正的 Taro 页面跳转\n */\nclass TaroRouter {\n private paramsBackup: Record<string, any> = {};\n\n getParams(name: string) {\n const instance = Taro.getCurrentInstance();\n let params = instance.router?.params || {};\n \n // 备份参数,解决某些生命周期下 Taro 获取不到 params 的问题\n if (!params.data && this.paramsBackup[name]) {\n params = { data: this.paramsBackup[name] };\n }\n\n return { value: params };\n }\n\n push(name: string, { value }: any) {\n const url = `/pages/${name}/index`;\n const dataStr = value ? encodeURIComponent(JSON.stringify(value)) : '';\n \n if (dataStr) {\n this.paramsBackup[name] = dataStr;\n }\n\n Taro.navigateTo({\n url: `${url}${dataStr ? `?data=${dataStr}` : ''}`\n });\n }\n\n replace(name: string, { value }: any) {\n const url = `/pages/${name}/index`;\n const dataStr = value ? encodeURIComponent(JSON.stringify(value)) : '';\n \n if (dataStr) {\n this.paramsBackup[name] = dataStr;\n }\n\n Taro.redirectTo({\n url: `${url}${dataStr ? `?data=${dataStr}` : ''}`\n });\n }\n\n pop() {\n Taro.navigateBack();\n }\n}\n\nexport const router = new TaroRouter();\nexport const pageRouter = new Page(router);\n","import { createContext, useContext } from 'react'\nimport type { ComContextStore } from './useContext'\nexport { pageRouter } from './pageRouter'\n\nconst ComContext = createContext<ComContextStore | undefined>(undefined)\nconst SlotContext = createContext<any>(null)\n\nexport function useAppContext(): ComContextStore {\n const context = useContext(ComContext)\n if (!context) {\n throw new Error('useAppContext must be used within a ComContext.Provider')\n }\n return context\n}\n\nexport function useParentSlot<T = any>(): T | null {\n return useContext(SlotContext)\n}\n\nexport const SlotProvider = SlotContext.Provider\n\nexport default ComContext\n","import React, { useMemo, useRef } from \"react\";\nimport ComContext, { SlotProvider, useAppContext, useParentSlot } from \"./ComContext\";\nimport { createReactiveInputHandler } from \"../mybricks/createReactiveInputHandler\";\n\ntype AnyRecord = Record<string, any>;\n\ntype SlotState = {\n inputs: any;\n outputs: any;\n _inputs: any;\n /** scopeId -> scoped comRefs(每个 scope 一套,避免列表多实例覆盖) */\n _scopedComRefs?: Record<string, any>;\n _render?: any;\n render: (params?: any) => any;\n};\n\nfunction SlotParamsBridge(props: {\n state: SlotState;\n params: any;\n render?: any;\n children?: React.ReactNode;\n}) {\n const parentSlot = useParentSlot<any>();\n const mergedParams =\n props.params?.inputValues === undefined && parentSlot?.params?.inputValues\n ? { ...(props.params || {}), inputValues: parentSlot.params.inputValues }\n : props.params;\n\n const SlotComp = props.render;\n const content = SlotComp ? <SlotComp {...(mergedParams || {})} /> : props.children ?? null;\n\n return <SlotProvider value={{ ...props.state, params: mergedParams }}>{content}</SlotProvider>;\n}\n\nfunction createChannelProxy(title: string) {\n const handlersMap: Record<string, any> = {};\n return new Proxy(\n {},\n {\n get: (_t, pin: string) => {\n return (arg: any) => {\n if (typeof arg === \"function\") {\n handlersMap[pin] = arg;\n return;\n }\n const handler = handlersMap[pin];\n if (typeof handler === \"function\") {\n return createReactiveInputHandler({\n input: handler,\n value: arg,\n rels: {},\n title,\n });\n }\n };\n },\n },\n );\n}\n\n/**\n * 参考鸿蒙的 createSlotsIO:\n * - 确保每个 slot 都具备 inputs / outputs / _inputs 三套通道,避免 runtime 访问时报 undefined\n * - render 时通过 SlotProvider 注入 parentSlot(slot 内子组件可 useParentSlot 获取)\n */\nexport function useEnhancedSlots(rawSlots: any, id: string) {\n const slotStoreRef = useRef<Record<string, SlotState>>({});\n\n return useMemo(() => {\n if (!rawSlots) return {};\n const nextSlots: AnyRecord = {};\n\n Object.entries(rawSlots).forEach(([slotKey, slotDef]: any) => {\n const state =\n slotStoreRef.current[slotKey] ||\n (slotStoreRef.current[slotKey] = {\n inputs: createChannelProxy(`${id}.${slotKey}.inputs`),\n outputs: createChannelProxy(`${id}.${slotKey}.outputs`),\n _inputs: createChannelProxy(`${id}.${slotKey}._inputs`),\n _scopedComRefs: {},\n _render: undefined,\n render: (params?: any) => {\n const r = state._render;\n // 只有存在 key 或 index 时才认为是“多实例作用域插槽”,需要实例隔离\n const rawScope = params?.key ?? params?.inputValues?.index ?? params?.inputValues?.itemData?.id;\n \n if (rawScope === undefined || rawScope === null) {\n return (\n <SlotParamsBridge state={state} params={params} render={r} />\n );\n }\n\n const scopeId = `${id}.${slotKey}::${String(rawScope)}`;\n const scopedComRefs =\n (state._scopedComRefs![scopeId] ||= { current: { $inputs: {}, $outputs: {} } });\n return (\n <SlotProvider value={{ ...state, params }}>\n <ScopedComContextProvider comRefs={scopedComRefs} scopeId={scopeId}>\n <SlotParamsBridge state={state} params={params} render={r} />\n </ScopedComContextProvider>\n </SlotProvider>\n );\n },\n });\n\n state._render = slotDef?.render;\n nextSlots[slotKey] = {\n ...(slotDef || {}),\n render: state.render,\n inputs: state.inputs,\n outputs: state.outputs,\n _inputs: state._inputs,\n };\n });\n\n return nextSlots;\n }, [rawSlots, id]);\n}\n\nexport function ScopedComContextProvider(props: {\n comRefs?: any;\n scopeId: string;\n children: React.ReactNode;\n}) {\n const parent = useAppContext();\n const value = useMemo(() => {\n // $outputs 与 $inputs 一样:在 scoped 下应当隔离(由 scopedComRefs.current.$outputs 提供)\n // 如果没有显式传 comRefs,则沿用父级的,但依然带上新的 scopeId\n return {\n ...parent,\n comRefs: props.comRefs || parent.comRefs,\n $scopeId: props.scopeId,\n } as any;\n }, [parent, props.comRefs, props.scopeId]);\n\n return <ComContext.Provider value={value}>{props.children}</ComContext.Provider>;\n}\n\n/** parentSlot 解析:props 优先,其次用 SlotProvider 注入的 context */\nexport function useResolvedParentSlot(parentSlotProp: any) {\n const parentSlotFromCtx = useParentSlot();\n return parentSlotProp ?? parentSlotFromCtx;\n}\n","import React, { useState, useEffect } from 'react';\n// @ts-ignore 运行时由宿主项目提供 @tarojs/components\nimport { View } from '@tarojs/components';\nimport { useModel, useBindInputs, useBindEvents, subscribePopupRouter, closeActivePopupRouter } from './index';\nimport { useAppCreateContext } from './useContext';\nimport ComContext, { useAppContext } from './ComContext';\nimport { useEnhancedSlots, useResolvedParentSlot } from './slots';\n// @ts-ignore 运行时由宿主项目提供 @tarojs/taro\nimport { useTabItemTap } from '@tarojs/taro';\n\ninterface WithComProps {\n component: React.ComponentType<any>;\n intputRef?: any;\n id?: string;\n data?: any;\n className?: string;\n style?: any;\n [key: string]: any;\n}\n\nexport const WithCom: React.FC<WithComProps> = (props) => {\n const { component: Component, id = '', data, className, style, ...rest } = props;\n const { comRefs, appContext } = useAppContext();\n const env = appContext; //TODO: 需要根据实际情况修改\n\n const isPopup = (Component as any).isPopup;\n const [show, setShow] = useState(true);\n const [dynamicStyle, setDynamicStyle] = useState({});\n\n\n //数据模型\n const _data = useModel(data || {});\n\n // 内置通用能力\n const handlers = {\n _setStyle: (style: any) => {\n setDynamicStyle((prev) => ({ ...prev, ...style }));\n },\n _setData: (path: string, value: any) => {\n const paths = path.split('.');\n let current = _data;\n for (let i = 0; i < paths.length - 1; i++) {\n if (!current[paths[i]]) current[paths[i]] = {};\n current = current[paths[i]];\n }\n current[paths[paths.length - 1]] = value;\n }\n };\n\n if (!isPopup) {\n Object.assign(handlers, {\n show: () => setShow(true),\n hide: () => setShow(false),\n showOrHide: () => setShow((prev) => !prev),\n });\n }\n\n // 绑定输入,传入初始 handlers\n const inputProxy = useBindInputs(comRefs, id, handlers);\n\n const { slots: rawSlots, parentSlot: parentSlotProp, ...restProps } = rest as any;\n const parentSlot = useResolvedParentSlot(parentSlotProp);\n\n // 绑定事件,带上上下文(用于事件流自动封装 id/name)\n const eventProxy = useBindEvents(restProps, { \n id, \n name: props.name || id, \n parentSlot \n });\n\n // 注册 outputs 到注册表(按组件 id)\n if (comRefs?.current?.$outputs) {\n comRefs.current.$outputs[id] = eventProxy;\n }\n\n // 鸿蒙规范:确保 comRefs 中挂载的是最新的 inputProxy\n comRefs.current[id] = inputProxy;\n\n const enhancedSlots = useEnhancedSlots(rawSlots, id);\n\n const jsx = (\n <Component\n {...restProps}\n inputs={inputProxy}\n outputs={eventProxy}\n slots={enhancedSlots}\n parentSlot={parentSlot}\n data={_data}\n env={env}\n id={id}\n style={style}\n />\n );\n\n // 鸿蒙化处理:支持 itemWrap 协议\n if (parentSlot?.params?.itemWrap) {\n return parentSlot.params.itemWrap({\n id,\n name: props.name || id,\n jsx,\n def: (Component as any).def,\n inputs: inputProxy,\n outputs: eventProxy,\n style\n });\n }\n\n return (\n show || isPopup ? (\n <View className={className} style={{ ...style, ...dynamicStyle }} >\n {jsx}\n </View>\n ) : null\n );\n};\n\nexport const WithWrapper = (id: string, Component: React.ComponentType<any>) => {\n return function WrappedComponent(props: any) {\n const contextStore = useAppCreateContext(id);\n const { setPopupState } = contextStore;\n const isPopup = (Component as any).isPopup;\n\n // 通过发布订阅模式解耦弹窗状态变化\n useEffect(() => {\n return subscribePopupRouter((state) => setPopupState(state));\n }, [setPopupState]);\n\n // 点击 TabBar 时自动关闭弹窗(自定义 TabBar 或原生 TabBar 点击均会触发)\n useTabItemTap(() => {\n if (isPopup) return;\n closeActivePopupRouter();\n });\n\n return (\n <ComContext.Provider value={contextStore}>\n <Component {...props} />\n </ComContext.Provider>\n );\n };\n};\n","import React from 'react';\nimport { View } from '@tarojs/components';\nimport { useAppContext } from './ComContext';\n\ninterface PopupRendererProps {\n popupMap: Record<string, any>;\n}\n\nexport const PopupRenderer: React.FC<PopupRendererProps> = ({ popupMap }) => {\n const { popupState } = useAppContext();\n\n const ActivePopup = popupState.visible && popupMap[popupState.name] \n ? popupMap[popupState.name] \n : null;\n\n if (!ActivePopup) return <View></View>;\n\n return (\n <View \n className=\"global-popup-container\" \n style={{ \n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 999999,\n pointerEvents: 'auto',\n }}\n >\n <View style={{ width: '100%', height: '100%' }}>\n <ActivePopup />\n </View>\n </View>\n );\n};\n\n","import { Page } from '../mybricks';\n\n/**\n * 弹窗状态管理(解耦版)\n * 弹窗在 Taro 中被视为组件,不走路由栈\n */\nclass PopupStore {\n private activePopup: any = null;\n private listeners: Set<(state: any) => void> = new Set();\n\n /** 订阅弹窗状态变化 */\n subscribe(listener: (state: any) => void) {\n this.listeners.add(listener);\n // 返回取消订阅函数\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n private notify() {\n this.listeners.forEach((l) =>\n l(\n this.activePopup || {\n visible: false,\n name: '',\n value: null,\n controller: null,\n },\n ),\n );\n }\n\n /** 获取弹窗参数 */\n getParams(name: string) {\n if (this.activePopup && this.activePopup.name === name) {\n return {\n value: this.activePopup.value,\n controller: this.activePopup.controller,\n };\n }\n return { value: null };\n }\n\n /** 获取当前激活的弹窗名称 */\n getActiveName(): string | undefined {\n return this.activePopup?.name;\n }\n\n /** 打开弹窗 */\n push(name: string, { value, controller }: any) {\n this.activePopup = { visible: true, name, value, controller };\n this.notify();\n }\n\n /** 行为同 push */\n replace(name: string, params: any) {\n this.push(name, params);\n }\n\n /** 关闭弹窗 */\n pop() {\n this.activePopup = null;\n this.notify();\n }\n}\n\nconst popupStore = new PopupStore();\n\n/**\n * 订阅弹窗状态变化(统一入口,避免外部依赖内部实现细节)\n */\nexport const subscribePopupRouter = (listener: (state: any) => void) => {\n return popupStore.subscribe(listener);\n};\n\n/** 弹窗控制器(命名与文件名保持一致) */\nexport const popupRouter = new Page(popupStore);\n\n/**\n * 关闭当前激活的弹窗(用于 TabBar 点击等场景)\n * 不需要知道弹窗 id\n */\nexport const closeActivePopupRouter = () => {\n const name = popupStore.getActiveName();\n if (!name) return;\n // 走 Page.close,保证 close/commit/cancel 等控制器语义保持一致\n popupRouter.close(name);\n};\n\n\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n dynamic?: boolean;\n title?: string;\n duration?: number;\n mask?: boolean;\n asynchronous?: boolean;\n icon?: 'success' | 'error' | 'loading' | 'none';\n image?: string;\n};\n\nexport interface Inputs {\n showToast?: (fn: (config: DataType | string, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n afterShowToast: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.showToast?.((val: DataType | string) => {\n try {\n // 构建 Toast 配置\n const toastConfig: any = {\n title: typeof val === 'string' ? val : val?.title || data.title || '',\n duration: Number(typeof val === 'object' && val?.duration ? val.duration : data.duration || 1000),\n mask: typeof val === 'object' && val?.mask !== undefined ? val.mask : data.mask || false,\n };\n\n // 图标配置\n if (typeof val === 'object' && val?.icon) {\n toastConfig.icon = val.icon;\n } else if (data.icon) {\n toastConfig.icon = data.icon;\n }\n\n // 图片配置\n if (typeof val === 'object' && val?.image) {\n toastConfig.image = val.image;\n } else if (data.image) {\n toastConfig.image = data.image;\n }\n\n Taro.showToast(toastConfig);\n\n // 处理输出回调\n const triggerOutput = () => outputs.afterShowToast(val);\n\n if (data.asynchronous) {\n setTimeout(triggerOutput, toastConfig.duration);\n } else {\n triggerOutput();\n }\n } catch (error) {\n console.error('显示 Toast 失败:', error);\n }\n });\n};\n\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n onlyFromCamera?: boolean;\n scanType?: ('barCode' | 'qrCode' | 'datamatrix' | 'pdf417')[];\n};\n\nexport interface Inputs {\n scan?: (fn: (val: DataType | any, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.scan?.((val: DataType | any) => {\n try {\n const scanConfig = {\n onlyFromCamera: val?.onlyFromCamera ?? data.onlyFromCamera ?? false,\n scanType: val?.scanType ?? data.scanType ?? ['barCode', 'qrCode'],\n success: (res: any) => {\n outputs.onSuccess(res.result || res);\n },\n fail: (err: any) => {\n outputs.onFail(err.errMsg || '扫码失败');\n },\n };\n\n Taro.scanCode(scanConfig);\n } catch (error: any) {\n console.error('扫码失败:', error);\n outputs.onFail(error?.message || '扫码失败');\n }\n });\n};\n\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n key?: string;\n value?: any;\n sync?: boolean;\n};\n\nexport interface Inputs {\n setStorage?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.setStorage?.((val: DataType) => {\n try {\n const key = val?.key || data.key;\n const value = val?.value !== undefined ? val.value : data.value;\n const useSync = val?.sync !== undefined ? val.sync : data.sync || false;\n\n if (!key) {\n outputs.onFail('存储 key 不能为空');\n return;\n }\n\n const result = { key, value };\n\n if (useSync) {\n Taro.setStorageSync(key, value);\n outputs.onSuccess(result);\n } else {\n Taro.setStorage({\n key,\n data: value,\n success: () => outputs.onSuccess(result),\n fail: (err) => outputs.onFail(err.errMsg || '写入本地缓存失败'),\n });\n }\n } catch (error: any) {\n console.error('写入本地缓存失败:', error);\n outputs.onFail(error?.message || '写入本地缓存失败');\n }\n });\n};\n\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n key?: string;\n sync?: boolean;\n};\n\nexport interface Inputs {\n getStorage?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.getStorage?.((val: DataType) => {\n try {\n const key = val?.key || data.key;\n const useSync = val?.sync !== undefined ? val.sync : data.sync || false;\n\n if (!key) {\n outputs.onFail('存储 key 不能为空');\n return;\n }\n\n if (useSync) {\n try {\n const value = Taro.getStorageSync(key);\n outputs.onSuccess({ key, value });\n } catch (error: any) {\n outputs.onFail(error?.message || '读取本地缓存失败');\n }\n } else {\n Taro.getStorage({\n key,\n success: (res) => outputs.onSuccess({ key, value: res.data }),\n fail: (err) => outputs.onFail(err.errMsg || '读取本地缓存失败'),\n });\n }\n } catch (error: any) {\n console.error('读取本地缓存失败:', error);\n outputs.onFail(error?.message || '读取本地缓存失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n key?: string;\n sync?: boolean;\n};\n\nexport interface Inputs {\n removeStorage?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.removeStorage?.((val: DataType) => {\n try {\n const key = val?.key || data.key;\n const useSync = val?.sync !== undefined ? val.sync : data.sync || false;\n\n if (!key) {\n outputs.onFail('存储 key 不能为空');\n return;\n }\n\n if (useSync) {\n try {\n Taro.removeStorageSync(key);\n outputs.onSuccess({ key });\n } catch (error: any) {\n outputs.onFail(error?.message || '移除本地缓存失败');\n }\n } else {\n Taro.removeStorage({\n key,\n success: () => outputs.onSuccess({ key }),\n fail: (err) => outputs.onFail(err.errMsg || '移除本地缓存失败'),\n });\n }\n } catch (error: any) {\n console.error('移除本地缓存失败:', error);\n outputs.onFail(error?.message || '移除本地缓存失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n type?: 'wgs84' | 'gcj02';\n altitude?: boolean;\n timeout?: number;\n};\n\nexport interface Inputs {\n getLocation?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.getLocation?.((val: DataType) => {\n try {\n const locationConfig = {\n type: val?.type || data.type || 'wgs84',\n altitude: val?.altitude !== undefined ? val.altitude : data.altitude || false,\n timeout: val?.timeout || data.timeout || 30000,\n success: (res: any) => {\n outputs.onSuccess(res);\n },\n fail: (err: any) => {\n outputs.onFail(err.errMsg || '获取地理位置失败');\n },\n };\n\n Taro.getLocation(locationConfig);\n } catch (error: any) {\n console.error('获取地理位置失败:', error);\n outputs.onFail(error?.message || '获取地理位置失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n type?: 'short' | 'long';\n duration?: number;\n};\n\nexport interface Inputs {\n vibrate?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.vibrate?.((val: DataType) => {\n try {\n const type = val?.type || data.type || 'short';\n\n if (type === 'long') {\n Taro.vibrateLong({\n success: () => outputs.onSuccess('长振动成功'),\n fail: (err) => outputs.onFail(err.errMsg || '长振动失败'),\n });\n } else {\n Taro.vibrateShort({\n success: () => outputs.onSuccess('短振动成功'),\n fail: (err) => outputs.onFail(err.errMsg || '短振动失败'),\n });\n }\n } catch (error: any) {\n console.error('设备振动失败:', error);\n outputs.onFail(error?.message || '设备振动失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n phoneNumber?: string;\n};\n\nexport interface Inputs {\n callPhone?: (fn: (config: DataType | string, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.callPhone?.((val: DataType | string) => {\n try {\n const phoneNumber = typeof val === 'string' ? val : val?.phoneNumber || data.phoneNumber;\n\n if (!phoneNumber) {\n outputs.onFail('电话号码不能为空');\n return;\n }\n\n Taro.makePhoneCall({\n phoneNumber,\n success: () => outputs.onSuccess({ phoneNumber }),\n fail: (err) => outputs.onFail(err.errMsg || '拨打电话失败'),\n });\n } catch (error: any) {\n console.error('拨打电话失败:', error);\n outputs.onFail(error?.message || '拨打电话失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n camera?: 'back' | 'front';\n flash?: 'auto' | 'on' | 'off';\n quality?: 'high' | 'normal' | 'low';\n};\n\nexport interface Inputs {\n openCamera?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.openCamera?.((val: DataType) => {\n try {\n const config = {\n camera: val?.camera || data.camera || 'back',\n flash: val?.flash || data.flash || 'auto',\n quality: val?.quality || data.quality || 'normal',\n };\n\n // Taro没有直接的打开相机API,我们可以:\n // 1. 使用chooseImage并设置sourceType为camera\n // 2. 或者提示用户使用系统相机\n\n Taro.chooseImage({\n count: 1,\n sourceType: ['camera'],\n success: (res) => {\n outputs.onSuccess({\n type: 'camera',\n tempFilePath: res.tempFilePaths[0],\n tempFile: res.tempFiles[0],\n config,\n });\n },\n fail: (err) => {\n if (err.errMsg?.includes('cancel')) {\n outputs.onFail('用户取消拍照');\n } else {\n outputs.onFail(err.errMsg || '打开相机失败');\n }\n },\n });\n } catch (error: any) {\n console.error('打开相机失败:', error);\n outputs.onFail(error?.message || '打开相机失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n url?: string;\n target?: '_blank' | '_self';\n};\n\nexport interface Inputs {\n openUrl?: (fn: (config: DataType | string, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.openUrl?.((val: DataType | string) => {\n try {\n const url = typeof val === 'string' ? val : val?.url || data.url;\n\n if (!url) {\n outputs.onFail('URL 地址不能为空');\n return;\n }\n\n // 检查是否为有效的 URL\n if (!/^https?:\\/\\//.test(url)) {\n outputs.onFail('URL 格式不正确,请以 http:// 或 https:// 开头');\n return;\n }\n\n Taro.navigateTo({\n url: `/pages/webview/index?url=${encodeURIComponent(url)}`,\n success: () => outputs.onSuccess({ url }),\n fail: (err) => outputs.onFail(err.errMsg || '打开链接失败'),\n });\n } catch (error: any) {\n console.error('打开链接失败:', error);\n outputs.onFail(error?.message || '打开链接失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n title?: string;\n path?: string;\n imageUrl?: string;\n};\n\nexport interface Inputs {\n share?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n onCancel: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.share?.((val: DataType) => {\n try {\n const shareData = {\n title: val?.title || data.title || '分享',\n path: val?.path || data.path || '/pages/index/index',\n imageUrl: val?.imageUrl || data.imageUrl,\n };\n\n Taro.showShareMenu({\n withShareTicket: true,\n success: () => outputs.onSuccess(shareData),\n fail: (err) => outputs.onFail(err.errMsg || '分享失败'),\n });\n } catch (error: any) {\n console.error('分享失败:', error);\n outputs.onFail(error?.message || '分享失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n sync?: boolean;\n};\n\nexport interface Inputs {\n getSystemInfo?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.getSystemInfo?.((val: DataType) => {\n try {\n const useSync = val?.sync !== undefined ? val.sync : data.sync || false;\n\n if (useSync) {\n try {\n const systemInfo = Taro.getSystemInfoSync();\n outputs.onSuccess(systemInfo);\n } catch (error: any) {\n outputs.onFail(error?.message || '获取系统信息失败');\n }\n } else {\n Taro.getSystemInfo({\n success: (res) => outputs.onSuccess(res),\n fail: (err) => outputs.onFail(err.errMsg || '获取系统信息失败'),\n });\n }\n } catch (error: any) {\n console.error('获取系统信息失败:', error);\n outputs.onFail(error?.message || '获取系统信息失败');\n }\n });\n};\n","import CryptoJS from 'crypto-js';\n\nexport type DataType = {\n key?: string;\n iv?: string;\n mode?: 'CBC' | 'ECB' | 'CFB' | 'OFB' | 'CTR';\n padding?: 'Pkcs7' | 'Iso97971' | 'AnsiX923' | 'Iso10126' | 'ZeroPadding' | 'NoPadding';\n};\n\nexport interface Inputs {\n encrypt?: (fn: (config: DataType & { text: string }, relOutputs?: any) => void) => void;\n decrypt?: (fn: (config: DataType & { encryptedText: string }, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onEncryptSuccess: (value?: any) => void;\n onDecryptSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n // 模式映射\n const modeMap: Record<string, any> = {\n CBC: CryptoJS.mode.CBC,\n ECB: CryptoJS.mode.ECB,\n CFB: CryptoJS.mode.CFB,\n OFB: CryptoJS.mode.OFB,\n CTR: CryptoJS.mode.CTR,\n };\n\n // 填充方式映射\n const paddingMap: Record<string, any> = {\n Pkcs7: CryptoJS.pad.Pkcs7,\n Iso97971: CryptoJS.pad.Iso97971,\n AnsiX923: CryptoJS.pad.AnsiX923,\n Iso10126: CryptoJS.pad.Iso10126,\n ZeroPadding: CryptoJS.pad.ZeroPadding,\n NoPadding: CryptoJS.pad.NoPadding,\n };\n\n inputs.encrypt?.((val: DataType & { text: string }) => {\n try {\n const text = val.text || '';\n const key = val.key || data.key || 'defaultKey1234567890123456';\n const iv = val.iv || data.iv;\n const mode = modeMap[val.mode || data.mode || 'CBC'];\n const padding = paddingMap[val.padding || data.padding || 'Pkcs7'];\n\n if (!text) {\n outputs.onFail('待加密文本不能为空');\n return;\n }\n\n const keyBytes = CryptoJS.enc.Utf8.parse(key);\n const ivBytes = iv ? CryptoJS.enc.Utf8.parse(iv) : undefined;\n\n const encrypted = CryptoJS.AES.encrypt(text, keyBytes, {\n mode,\n padding,\n iv: ivBytes,\n });\n\n outputs.onEncryptSuccess({\n encryptedText: encrypted.toString(),\n originalText: text,\n });\n } catch (error: any) {\n console.error('AES加密失败:', error);\n outputs.onFail(error?.message || 'AES加密失败');\n }\n });\n\n inputs.decrypt?.((val: DataType & { encryptedText: string }) => {\n try {\n const encryptedText = val.encryptedText || '';\n const key = val.key || data.key || 'defaultKey1234567890123456';\n const iv = val.iv || data.iv;\n const mode = modeMap[val.mode || data.mode || 'CBC'];\n const padding = paddingMap[val.padding || data.padding || 'Pkcs7'];\n\n if (!encryptedText) {\n outputs.onFail('待解密文本不能为空');\n return;\n }\n\n const keyBytes = CryptoJS.enc.Utf8.parse(key);\n const ivBytes = iv ? CryptoJS.enc.Utf8.parse(iv) : undefined;\n\n const decrypted = CryptoJS.AES.decrypt(encryptedText, keyBytes, {\n mode,\n padding,\n iv: ivBytes,\n });\n\n const decryptedText = decrypted.toString(CryptoJS.enc.Utf8);\n\n if (!decryptedText) {\n outputs.onFail('解密失败,可能密钥或参数不正确');\n return;\n }\n\n outputs.onDecryptSuccess({\n decryptedText,\n encryptedText,\n });\n } catch (error: any) {\n console.error('AES解密失败:', error);\n outputs.onFail(error?.message || 'AES解密失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n dynamic?: boolean;\n title?: string;\n content?: string;\n /** 微信/部分端支持,可编辑输入框 */\n editable?: boolean;\n showCancel?: boolean;\n cancelText?: string;\n cancelColor?: string;\n confirmText?: string;\n confirmColor?: string;\n};\n\nexport interface Inputs {\n /** 显示模态对话框 */\n show?: (fn: (config?: DataType | string, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onConfirm: (value?: any) => void;\n onCancel: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.show?.(async (val?: DataType | string) => {\n try {\n const cfg: DataType =\n typeof val === 'string'\n ? { content: val }\n : (val || {});\n\n const modalConfig: any = {\n title: cfg.title ?? data.title ?? '',\n content: cfg.content ?? data.content ?? '',\n showCancel: cfg.showCancel ?? data.showCancel ?? true,\n cancelText: cfg.cancelText ?? data.cancelText ?? '取消',\n cancelColor: cfg.cancelColor ?? data.cancelColor,\n confirmText: cfg.confirmText ?? data.confirmText ?? '确认',\n confirmColor: cfg.confirmColor ?? data.confirmColor,\n };\n\n // editable 不是所有端都支持,按存在即传\n if (cfg.editable !== undefined) modalConfig.editable = cfg.editable;\n else if (data.editable !== undefined) modalConfig.editable = data.editable;\n\n const res: any = await (Taro as any).showModal(modalConfig);\n if (res?.confirm) outputs.onConfirm?.(res);\n else outputs.onCancel?.(res);\n } catch (error: any) {\n console.error('显示 Modal 失败:', error);\n outputs.onCancel?.(error);\n }\n });\n};\n\n\n","export type DataType = {\n input?: any;\n format?: 'json' | 'string' | 'number' | 'boolean' | 'date' | 'base64' | 'urlEncode' | 'urlDecode';\n options?: {\n dateFormat?: string; // 日期格式,如 'YYYY-MM-DD HH:mm:ss'\n precision?: number; // 数字精度\n radix?: number; // 进制转换的基数\n };\n};\n\nexport interface Inputs {\n format?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.format?.((val: DataType) => {\n try {\n const input = val?.input !== undefined ? val.input : data.input;\n const format = val?.format || data.format || 'string';\n const options = val?.options || data.options || {};\n\n if (input === undefined || input === null) {\n outputs.onFail('输入值不能为空');\n return;\n }\n\n let result: any;\n\n switch (format) {\n case 'json':\n if (typeof input === 'string') {\n try {\n result = JSON.parse(input);\n } catch (error) {\n outputs.onFail('JSON解析失败');\n return;\n }\n } else {\n result = JSON.stringify(input, null, 2);\n }\n break;\n\n case 'string':\n result = String(input);\n break;\n\n case 'number':\n const num = Number(input);\n if (isNaN(num)) {\n outputs.onFail('无法转换为有效数字');\n return;\n }\n result = options.precision !== undefined ? Number(num.toFixed(options.precision)) : num;\n break;\n\n case 'boolean':\n result = Boolean(input);\n break;\n\n case 'date':\n const date = new Date(input);\n if (isNaN(date.getTime())) {\n outputs.onFail('无效的日期格式');\n return;\n }\n if (options.dateFormat) {\n // 简单的日期格式化\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n const seconds = String(date.getSeconds()).padStart(2, '0');\n\n result = options.dateFormat\n .replace('YYYY', year.toString())\n .replace('MM', month)\n .replace('DD', day)\n .replace('HH', hours)\n .replace('mm', minutes)\n .replace('ss', seconds);\n } else {\n result = date.toISOString();\n }\n break;\n\n case 'base64':\n if (typeof input === 'string') {\n try {\n // 尝试解码Base64\n result = decodeURIComponent(escape(atob(input)));\n } catch {\n // 如果解码失败,则编码为Base64\n result = btoa(unescape(encodeURIComponent(input)));\n }\n } else {\n outputs.onFail('Base64转换需要字符串输入');\n return;\n }\n break;\n\n case 'urlEncode':\n result = encodeURIComponent(String(input));\n break;\n\n case 'urlDecode':\n try {\n result = decodeURIComponent(String(input));\n } catch (error) {\n outputs.onFail('URL解码失败');\n return;\n }\n break;\n\n default:\n outputs.onFail(`不支持的格式类型: ${format}`);\n return;\n }\n\n outputs.onSuccess({\n input,\n output: result,\n format,\n options,\n });\n } catch (error: any) {\n console.error('格式化失败:', error);\n outputs.onFail(error?.message || '格式化失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n accept?: string; // 文件类型,如 'image/*', 'video/*', 'audio/*', '.pdf,.doc,.docx'\n multiple?: boolean; // 是否支持多选\n capture?: 'camera' | 'album' | 'both'; // 拍摄来源\n compressed?: boolean; // 是否压缩\n maxDuration?: number; // 视频最大时长(秒)\n camera?: 'back' | 'front'; // 摄像头方向\n};\n\nexport interface Inputs {\n chooseFile?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.chooseFile?.((val: DataType) => {\n try {\n const config = {\n accept: val?.accept || data.accept || 'image/*',\n multiple: val?.multiple !== undefined ? val.multiple : data.multiple || false,\n capture: val?.capture || data.capture,\n compressed: val?.compressed !== undefined ? val.compressed : data.compressed,\n maxDuration: val?.maxDuration || data.maxDuration,\n camera: val?.camera || data.camera,\n };\n\n // 根据文件类型选择不同的API\n if (config.accept?.startsWith('image/')) {\n // 选择图片\n Taro.chooseImage({\n count: config.multiple ? 9 : 1,\n sourceType: config.capture === 'album' ? ['album'] : config.capture === 'camera' ? ['camera'] : ['album', 'camera'],\n success: (res) => {\n outputs.onSuccess({\n type: 'image',\n files: res.tempFiles,\n tempFilePaths: res.tempFilePaths,\n });\n },\n fail: (err) => outputs.onFail(err.errMsg || '选择图片失败'),\n });\n } else if (config.accept?.startsWith('video/')) {\n // 选择视频\n Taro.chooseVideo({\n sourceType: config.capture === 'album' ? ['album'] : config.capture === 'camera' ? ['camera'] : ['album', 'camera'],\n compressed: config.compressed,\n maxDuration: config.maxDuration,\n camera: config.camera,\n success: (res) => {\n outputs.onSuccess({\n type: 'video',\n file: res,\n });\n },\n fail: (err) => outputs.onFail(err.errMsg || '选择视频失败'),\n });\n } else if (config.accept?.startsWith('audio/')) {\n // 选择音频(小程序暂不支持直接选择音频文件,这里返回提示)\n outputs.onFail('小程序暂不支持直接选择音频文件');\n } else {\n // 其他文件类型,使用文件选择器(如果支持)\n if (Taro.chooseMessageFile) {\n Taro.chooseMessageFile({\n count: config.multiple ? 10 : 1,\n type: 'file',\n success: (res) => {\n outputs.onSuccess({\n type: 'file',\n files: res.tempFiles,\n });\n },\n fail: (err) => outputs.onFail(err.errMsg || '选择文件失败'),\n });\n } else {\n outputs.onFail('当前环境不支持文件选择');\n }\n }\n } catch (error: any) {\n console.error('文件选择失败:', error);\n outputs.onFail(error?.message || '文件选择失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n mediaType?: ('image' | 'video')[];\n sourceType?: ('album' | 'camera')[];\n count?: number;\n sizeType?: ('original' | 'compressed')[];\n maxDuration?: number;\n camera?: 'back' | 'front';\n};\n\nexport interface Inputs {\n chooseMedia?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.chooseMedia?.((val: DataType) => {\n try {\n const config = {\n mediaType: val?.mediaType || data.mediaType || ['image', 'video'],\n sourceType: val?.sourceType || data.sourceType || ['album', 'camera'],\n count: val?.count || data.count || 9,\n sizeType: val?.sizeType || data.sizeType || ['original', 'compressed'],\n maxDuration: val?.maxDuration || data.maxDuration || 10,\n camera: val?.camera || data.camera,\n };\n\n Taro.chooseMedia({\n ...config,\n success: (res) => {\n outputs.onSuccess({\n type: res.type,\n tempFiles: res.tempFiles,\n tempFilePaths: res.tempFilePaths || res.tempFiles?.map(file => file.tempFilePath),\n });\n },\n fail: (err) => {\n outputs.onFail(err.errMsg || '选择媒体失败');\n },\n });\n } catch (error: any) {\n console.error('选择媒体失败:', error);\n outputs.onFail(error?.message || '选择媒体失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';\n url?: string;\n headers?: Record<string, string>;\n data?: any;\n timeout?: number;\n dataType?: 'json' | 'text' | 'base64';\n responseType?: 'text' | 'arraybuffer';\n};\n\nexport interface Inputs {\n request?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.request?.((val: DataType) => {\n try {\n const config = {\n method: val?.method || data.method || 'GET',\n url: val?.url || data.url,\n header: val?.headers || data.headers || {},\n data: val?.data || data.data,\n timeout: val?.timeout || data.timeout,\n dataType: val?.dataType || data.dataType || 'json',\n responseType: val?.responseType || data.responseType || 'text',\n };\n\n if (!config.url) {\n outputs.onFail('请求URL不能为空');\n return;\n }\n\n // 检查URL格式\n if (!/^https?:\\/\\//.test(config.url)) {\n outputs.onFail('URL格式不正确,请以http://或https://开头');\n return;\n }\n\n Taro.request({\n ...config,\n success: (res) => {\n if (res.statusCode >= 200 && res.statusCode < 300) {\n outputs.onSuccess({\n data: res.data,\n statusCode: res.statusCode,\n header: res.header,\n });\n } else {\n outputs.onFail({\n message: `请求失败: ${res.statusCode}`,\n statusCode: res.statusCode,\n data: res.data,\n });\n }\n },\n fail: (err) => {\n outputs.onFail({\n message: err.errMsg || '网络请求失败',\n error: err,\n });\n },\n });\n } catch (error: any) {\n console.error('网络请求失败:', error);\n outputs.onFail({\n message: error?.message || '网络请求失败',\n error,\n });\n }\n });\n};\n","export type DataType = {\n headers?: Record<string, string>;\n};\n\nexport interface Inputs {\n setGlobalHeaders?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n getGlobalHeaders?: (fn: (config: {}, relOutputs?: any) => void) => void;\n clearGlobalHeaders?: (fn: (config: {}, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\n// 全局请求头存储\nlet globalHeaders: Record<string, string> = {};\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.setGlobalHeaders?.((val: DataType) => {\n try {\n const headers = val?.headers || data.headers || {};\n\n if (Object.keys(headers).length === 0) {\n outputs.onFail('请求头不能为空');\n return;\n }\n\n // 合并到全局请求头\n globalHeaders = { ...globalHeaders, ...headers };\n\n outputs.onSuccess({\n globalHeaders: { ...globalHeaders },\n addedHeaders: headers,\n });\n } catch (error: any) {\n console.error('设置全局请求头失败:', error);\n outputs.onFail(error?.message || '设置全局请求头失败');\n }\n });\n\n inputs.getGlobalHeaders?.(() => {\n try {\n outputs.onSuccess({\n globalHeaders: { ...globalHeaders },\n });\n } catch (error: any) {\n console.error('获取全局请求头失败:', error);\n outputs.onFail(error?.message || '获取全局请求头失败');\n }\n });\n\n inputs.clearGlobalHeaders?.(() => {\n try {\n const oldHeaders = { ...globalHeaders };\n globalHeaders = {};\n\n outputs.onSuccess({\n clearedHeaders: oldHeaders,\n globalHeaders: {},\n });\n } catch (error: any) {\n console.error('清除全局请求头失败:', error);\n outputs.onFail(error?.message || '清除全局请求头失败');\n }\n });\n};\n\n// 导出一个工具函数,用于在其他组件中获取全局请求头\nexport const getGlobalHeaders = (): Record<string, string> => {\n return { ...globalHeaders };\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n delta?: number;\n animation?: boolean;\n};\n\nexport interface Inputs {\n back?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.back?.((val: DataType) => {\n try {\n const delta = val?.delta ?? data.delta ?? 1;\n const animation = val?.animation !== undefined ? val.animation : data.animation ?? true;\n\n // 获取当前页面栈信息\n const pages = Taro.getCurrentPages();\n const currentIndex = pages.length - 1;\n\n if (currentIndex === 0) {\n // 如果是首页,返回失败\n outputs.onFail('已经是首页,无法返回');\n return;\n }\n\n if (delta > currentIndex) {\n // 如果返回层数超过页面栈深度,返回失败\n outputs.onFail(`页面栈深度不足,无法返回${delta}层`);\n return;\n }\n\n if (delta === 1) {\n // 返回上一页\n Taro.navigateBack({\n delta: 1,\n animation,\n success: () => outputs.onSuccess({ delta: 1 }),\n fail: (err) => outputs.onFail(err.errMsg || '返回失败'),\n });\n } else {\n // 多层返回,需要先获取目标页面信息\n const targetPage = pages[currentIndex - delta];\n if (targetPage) {\n Taro.navigateBack({\n delta,\n animation,\n success: () => outputs.onSuccess({ delta, targetPage: targetPage.route }),\n fail: (err) => outputs.onFail(err.errMsg || '返回失败'),\n });\n } else {\n outputs.onFail('目标页面不存在');\n }\n }\n } catch (error: any) {\n console.error('返回操作失败:', error);\n outputs.onFail(error?.message || '返回操作失败');\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n path?: string;\n params?: Record<string, any>;\n type?: 'navigateTo' | 'redirectTo' | 'switchTab' | 'reLaunch' | 'navigateBack';\n delta?: number;\n};\n\nexport interface Inputs {\n navigate?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.navigate?.((val: DataType) => {\n try {\n const type = val?.type || data.type || 'navigateTo';\n const path = val?.path || data.path;\n const params = val?.params || data.params || {};\n const delta = val?.delta || data.delta || 1;\n\n if (!path && type !== 'navigateBack') {\n outputs.onFail('路由路径不能为空');\n return;\n }\n\n // 构建完整的URL\n let url = path;\n if (params && Object.keys(params).length > 0) {\n const queryString = Object.entries(params)\n .map(([key, value]) => `${key}=${encodeURIComponent(String(value))}`)\n .join('&');\n url += (url.includes('?') ? '&' : '?') + queryString;\n }\n\n switch (type) {\n case 'navigateTo':\n Taro.navigateTo({\n url,\n success: () => outputs.onSuccess({ type, path: url, params }),\n fail: (err) => outputs.onFail(err.errMsg || '页面跳转失败'),\n });\n break;\n\n case 'redirectTo':\n Taro.redirectTo({\n url,\n success: () => outputs.onSuccess({ type, path: url, params }),\n fail: (err) => outputs.onFail(err.errMsg || '页面重定向失败'),\n });\n break;\n\n case 'switchTab':\n Taro.switchTab({\n url,\n success: () => outputs.onSuccess({ type, path: url, params }),\n fail: (err) => outputs.onFail(err.errMsg || '切换Tab失败'),\n });\n break;\n\n case 'reLaunch':\n Taro.reLaunch({\n url,\n success: () => outputs.onSuccess({ type, path: url, params }),\n fail: (err) => outputs.onFail(err.errMsg || '重启应用失败'),\n });\n break;\n\n case 'navigateBack':\n Taro.navigateBack({\n delta,\n success: () => outputs.onSuccess({ type, delta }),\n fail: (err) => outputs.onFail(err.errMsg || '返回失败'),\n });\n break;\n\n default:\n outputs.onFail(`不支持的路由类型: ${type}`);\n }\n } catch (error: any) {\n console.error('路由跳转失败:', error);\n outputs.onFail(error?.message || '路由跳转失败');\n }\n });\n};\n","export type DataType = {\n latitude?: number;\n longitude?: number;\n scale?: number;\n markers?: Array<{\n id: string;\n latitude: number;\n longitude: number;\n title?: string;\n iconPath?: string;\n }>;\n showLocation?: boolean;\n};\n\nexport interface Inputs {\n openMap?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.openMap?.((val: DataType) => {\n try {\n const config = {\n latitude: val?.latitude || data.latitude || 39.9093,\n longitude: val?.longitude || data.longitude || 116.3974,\n scale: val?.scale || data.scale || 16,\n markers: val?.markers || data.markers || [],\n showLocation: val?.showLocation !== undefined ? val.showLocation : data.showLocation || true,\n };\n\n // 小程序环境下,使用Taro的地图组件\n // 这里可以导航到地图页面或直接显示地图\n outputs.onSuccess({\n type: 'map',\n config,\n message: '地图配置已准备就绪,请在页面中使用Map组件显示',\n });\n } catch (error: any) {\n console.error('打开地图失败:', error);\n outputs.onFail(error?.message || '打开地图失败');\n }\n });\n};\n","export type DataType = {\n text?: string;\n lang?: string; // 语言,如 'zh-CN', 'en-US'\n rate?: number; // 语速,0.1-10\n pitch?: number; // 音调,0-2\n volume?: number; // 音量,0-1\n};\n\nexport interface Inputs {\n speak?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n stop?: (fn: (config: {}, relOutputs?: any) => void) => void;\n pause?: (fn: (config: {}, relOutputs?: any) => void) => void;\n resume?: (fn: (config: {}, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onStart: (value?: any) => void;\n onEnd: (value?: any) => void;\n onError: (value?: any) => void;\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\n// 检查浏览器是否支持Web Speech API\nconst speechSupported = typeof window !== 'undefined' && 'speechSynthesis' in window;\nlet currentUtterance: SpeechSynthesisUtterance | null = null;\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n if (!speechSupported) {\n console.warn('当前环境不支持语音合成功能');\n }\n\n inputs.speak?.((val: DataType) => {\n try {\n const text = val?.text || data.text;\n const lang = val?.lang || data.lang || 'zh-CN';\n const rate = val?.rate || data.rate || 1;\n const pitch = val?.pitch || data.pitch || 1;\n const volume = val?.volume || data.volume || 1;\n\n if (!text) {\n outputs.onFail('待合成的文本不能为空');\n return;\n }\n\n if (!speechSupported) {\n outputs.onFail('当前环境不支持语音合成功能');\n return;\n }\n\n // 如果有正在播放的语音,先停止\n if (currentUtterance && window.speechSynthesis.speaking) {\n window.speechSynthesis.cancel();\n }\n\n currentUtterance = new SpeechSynthesisUtterance(text);\n currentUtterance.lang = lang;\n currentUtterance.rate = Math.max(0.1, Math.min(10, rate));\n currentUtterance.pitch = Math.max(0, Math.min(2, pitch));\n currentUtterance.volume = Math.max(0, Math.min(1, volume));\n\n currentUtterance.onstart = () => {\n outputs.onStart({ text, lang, rate, pitch, volume });\n };\n\n currentUtterance.onend = () => {\n outputs.onEnd({ text, lang, rate, pitch, volume });\n currentUtterance = null;\n };\n\n currentUtterance.onerror = (event) => {\n outputs.onError({\n error: event.error,\n text,\n message: '语音合成失败',\n });\n currentUtterance = null;\n };\n\n window.speechSynthesis.speak(currentUtterance);\n outputs.onSuccess({ text, lang, rate, pitch, volume });\n } catch (error: any) {\n console.error('语音合成失败:', error);\n outputs.onFail(error?.message || '语音合成失败');\n }\n });\n\n inputs.stop?.(() => {\n try {\n if (speechSupported && currentUtterance) {\n window.speechSynthesis.cancel();\n currentUtterance = null;\n outputs.onSuccess('已停止语音播放');\n } else {\n outputs.onFail('没有正在播放的语音');\n }\n } catch (error: any) {\n console.error('停止语音失败:', error);\n outputs.onFail(error?.message || '停止语音失败');\n }\n });\n\n inputs.pause?.(() => {\n try {\n if (speechSupported && window.speechSynthesis.pause) {\n window.speechSynthesis.pause();\n outputs.onSuccess('已暂停语音播放');\n } else {\n outputs.onFail('当前环境不支持暂停功能');\n }\n } catch (error: any) {\n console.error('暂停语音失败:', error);\n outputs.onFail(error?.message || '暂停语音失败');\n }\n });\n\n inputs.resume?.(() => {\n try {\n if (speechSupported && window.speechSynthesis.resume) {\n window.speechSynthesis.resume();\n outputs.onSuccess('已恢复语音播放');\n } else {\n outputs.onFail('当前环境不支持恢复功能');\n }\n } catch (error: any) {\n console.error('恢复语音失败:', error);\n outputs.onFail(error?.message || '恢复语音失败');\n }\n });\n};\n","export type DataType = {\n delay?: number; // 防抖延迟时间(毫秒)\n leading?: boolean; // 是否在开始时执行\n trailing?: boolean; // 是否在结束时执行\n};\n\nexport interface Inputs {\n debounce?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onExecute: (value?: any) => void;\n onComplete: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\n// 防抖函数实现\nfunction debounce(func: Function, delay: number, options: { leading?: boolean; trailing?: boolean } = {}) {\n let timeoutId: any = null;\n let lastExecTime = 0;\n const { leading = false, trailing = true } = options;\n\n return function (...args: any[]) {\n const currentTime = Date.now();\n\n if (!timeoutId && leading) {\n func.apply(null, args);\n lastExecTime = currentTime;\n }\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n timeoutId = setTimeout(() => {\n if (trailing && (!leading || currentTime - lastExecTime >= delay)) {\n func.apply(null, args);\n }\n timeoutId = null;\n }, delay);\n };\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n let debouncedFn: Function | null = null;\n\n inputs.debounce?.((val: DataType) => {\n try {\n const delay = val?.delay || data.delay || 300;\n const leading = val?.leading !== undefined ? val.leading : data.leading || false;\n const trailing = val?.trailing !== undefined ? val.trailing : data.trailing || true;\n\n if (!debouncedFn) {\n debouncedFn = debounce(\n () => {\n outputs.onExecute({ delay, leading, trailing, timestamp: Date.now() });\n },\n delay,\n { leading, trailing }\n );\n }\n\n // 执行防抖函数\n debouncedFn();\n\n outputs.onComplete({ delay, leading, trailing });\n } catch (error: any) {\n console.error('防抖执行失败:', error);\n }\n });\n};\n","export type DataType = {\n delay?: number; // 延迟时间(毫秒)\n};\n\nexport interface Inputs {\n delay?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n cancel?: (fn: (config: {}, relOutputs?: any) => void) => void;\n /**\n * 兼容老协议:直接传入任意 payload,延迟后从 outputs.trigger 原样输出\n *(生成器里常见 inputs:[\"trigger\"], outputs:[\"trigger\"])\n */\n trigger?: (fn: (payload: any, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onStart: (value?: any) => void;\n onExecute: (value?: any) => void;\n onCancel: (value?: any) => void;\n /** 兼容老协议 */\n trigger?: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n let timeoutId: any = null;\n const inputPins = new Set(Object.keys(inputs as any));\n const outputPins = new Set(Object.keys(outputs as any));\n const hasIn = (pin: string) => inputPins.has(pin);\n const hasOut = (pin: string) => outputPins.has(pin);\n\n const clear = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n\n // 兼容:inputs.trigger(payload) -> 延迟后 outputs.trigger(payload)\n if (hasIn(\"trigger\")) inputs.trigger?.((payload: any) => {\n try {\n // 允许 payload 自带 delay 覆盖;否则用 data.delay;再否则 1000\n const delay = payload?.delay || data.delay || 1000;\n\n clear();\n\n outputs.onStart?.({ delay, timestamp: Date.now() });\n\n timeoutId = setTimeout(() => {\n if (hasOut(\"trigger\")) outputs.trigger?.(payload);\n outputs.onExecute?.({ delay, timestamp: Date.now() });\n timeoutId = null;\n }, delay);\n } catch (error: any) {\n console.error('延迟执行失败:', error);\n clear();\n }\n });\n\n if (hasIn(\"delay\")) inputs.delay?.((val: DataType) => {\n try {\n const delay = val?.delay || data.delay || 1000;\n\n clear();\n\n outputs.onStart({ delay, timestamp: Date.now() });\n\n timeoutId = setTimeout(() => {\n outputs.onExecute({ delay, timestamp: Date.now() });\n timeoutId = null;\n }, delay);\n } catch (error: any) {\n console.error('延迟执行失败:', error);\n clear();\n }\n });\n\n if (hasIn(\"cancel\")) inputs.cancel?.(() => {\n try {\n if (timeoutId) {\n clear();\n outputs.onCancel('延迟任务已取消');\n } else {\n outputs.onCancel('没有正在执行的延迟任务');\n }\n } catch (error: any) {\n console.error('取消延迟失败:', error);\n }\n });\n};\n","export type DataType = {\n interval?: number; // 节流间隔时间(毫秒)\n leading?: boolean; // 是否在开始时执行\n trailing?: boolean; // 是否在结束时执行\n};\n\nexport interface Inputs {\n throttle?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onExecute: (value?: any) => void;\n onSkip: (value?: any) => void;\n onComplete: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\n// 节流函数实现\nfunction throttle(func: Function, delay: number, options: { leading?: boolean; trailing?: boolean } = {}) {\n let timeoutId: any = null;\n let lastExecTime = 0;\n const { leading = true, trailing = true } = options;\n\n return function (...args: any[]) {\n const currentTime = Date.now();\n\n if (currentTime - lastExecTime > delay) {\n if (leading) {\n func.apply(null, args);\n lastExecTime = currentTime;\n }\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n } else if (trailing && !timeoutId) {\n timeoutId = setTimeout(() => {\n func.apply(null, args);\n lastExecTime = Date.now();\n timeoutId = null;\n }, delay - (currentTime - lastExecTime));\n }\n };\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n let throttledFn: Function | null = null;\n\n inputs.throttle?.((val: DataType) => {\n try {\n const interval = val?.interval || data.interval || 1000;\n const leading = val?.leading !== undefined ? val.leading : data.leading || true;\n const trailing = val?.trailing !== undefined ? val.trailing : data.trailing || true;\n\n if (!throttledFn) {\n throttledFn = throttle(\n () => {\n outputs.onExecute({ interval, leading, trailing, timestamp: Date.now() });\n },\n interval,\n { leading, trailing }\n );\n }\n\n // 执行节流函数\n throttledFn();\n\n outputs.onComplete({ interval, leading, trailing });\n } catch (error: any) {\n console.error('节流执行失败:', error);\n }\n });\n};\n","export * from './src/utils/index';\nexport * from './src/comlib/index';\nexport * from './src/utils/slots';\nexport { WithCom, WithWrapper } from './src/utils/with';\nexport { PopupRenderer } from './src/utils/PopupRenderer';\nexport { pageRouter, router } from './src/utils/pageRouter';\nexport { popupRouter, subscribePopupRouter, closeActivePopupRouter } from './src/utils/popupRouter';\nexport { useAppContext, SlotProvider } from './src/utils/ComContext';\nexport { useAppCreateContext } from './src/utils/useContext';\nexport { createVariable, createFx, merge, createJSHandle } from './src/mybricks';\nexport { SUBJECT_SUBSCRIBE, SUBJECT_VALUE } from './src/mybricks/constant';\nconsole.log('12')"],"names":["useState","useRef","useMemo","createContext","useContext","_jsx","View","useEffect","useTabItemTap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../../src/runtime.ts","../src/mybricks/constant.js","../src/mybricks/log.js","../src/mybricks/Subject.js","../src/mybricks/createReactiveInputHandler.js","../src/mybricks/utils.js","../src/mybricks/createJSHandle.js","../src/mybricks/variables.js","../src/mybricks/index.js","../../../src/utils/pageRouter.ts","../../../src/utils/ComContext.tsx","../../../src/utils/pool.ts","../../../src/utils/comRefResolver.ts","../../../src/utils/hooks.ts","../../../src/utils/event.ts","../../../src/utils/tabbar.ts","../../../src/utils/useContext.ts","../../../src/utils/slots.tsx","../../../src/utils/with.tsx","../../../src/utils/PopupRenderer.tsx","../../../src/utils/popupRouter.ts","../../../src/comlib/_Connector.ts","../../../src/comlib/_ConnectorGlobalHeaders.ts","../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js","../../../src/tools/data-format.ts","../../../src/tools/core/type.ts","../../../src/comlib/_Format.ts","../../../src/comlib/_TimerDelay.ts","../../../src/comlib/_SetStorage.ts","../../../src/comlib/_GetStorage.ts","../../../src/comlib/_Open.ts","../../../src/comlib/_Goto.ts","../../../src/comlib/_BackTo.ts","../../../src/comlib/_GetRouter.ts","../../../src/comlib/_ShowToast.ts","../../../src/comlib/_HideToast.ts","../../../src/comlib/_ShowLoading.ts","../../../src/comlib/_HideLoading.ts","../../../src/comlib/_Modal.ts","../../../src/comlib/_ShowActionSheet.ts","../../../src/comlib/_SetClipboardData.ts","../../../src/tools/env.ts","../../../src/tools/oss.ts","../../../src/comlib/_UploadFile.ts","../../../src/comlib/_Login.ts","../../../src/comlib/_GenerateScheme.ts","../../../src/comlib/_SetNavigationBarTitle.ts","../../../src/comlib/_ScanQrcode.ts","../../../src/comlib/_ChooseMedia.ts","../../../src/comlib/_ChooseMessageFile.ts","../../../src/comlib/_OpenCamera.ts","../../../src/comlib/_CallPhone.ts","../../../src/comlib/_GetLocation.ts","../../../src/comlib/_ChooseLocation.ts","../../../src/comlib/_GetAddress.ts","../../../src/comlib/_GetDrivePath.ts","../../../src/comlib/_ChooseAddress.ts","../../../src/comlib/_OpenLocation.ts","../../../src/comlib/_PreviewImage.ts","../../../src/comlib/_SaveImageToPhotosAlbum.ts","../../../src/comlib/_SaveVideoToPhotosAlbum.ts","../../../src/comlib/_Poster.ts","../../../src/comlib/_RequestSubscribeMessage.ts","../../../src/comlib/_SetTabbarBadge.ts","../../../src/comlib/_RemoveTabBarBadge.ts","../../../src/comlib/_WxPay.ts","../../../src/comlib/_OpenChannelsActivity.ts","../../../src/comlib/_OpenChannelsUserProfile.ts","../../../src/comlib/_GetWeRunData.ts","../../../src/comlib/_StartFacialRecognitionVerify.ts","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isObject.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_freeGlobal.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_root.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/now.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_trimmedEndIndex.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseTrim.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Symbol.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getRawTag.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_objectToString.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseGetTag.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isObjectLike.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isSymbol.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/toNumber.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/debounce.js","../../../src/comlib/_TimerDebounce.ts","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/throttle.js","../../../src/comlib/_TimerThrottle.ts","../../../src/comlib/_AesEncode.ts","../../../src/comlib/_AesDecode.ts","../../../src/comlib/_OpenDocument.ts"],"sourcesContent":["export interface CoreRuntimeConfig {\n /** HTTP 请求函数 */\n request?: (connector: any, params: any, config?: any, appContext?: any) => Promise<any>;\n /** 项目根配置 */\n rootConfig?: {\n status?: {\n defaultCallServiceHost?: string;\n };\n };\n /** TabBar 配置 */\n tabBarConfig?: {\n tabBar?: {\n list?: Array<{ pagePath: string; [key: string]: any }>;\n };\n };\n}\n\nlet _config: CoreRuntimeConfig = {};\n\nexport function configureCoreRuntime(config: CoreRuntimeConfig) {\n _config = { ..._config, ...config };\n}\n\nexport function getCoreRuntime(): CoreRuntimeConfig {\n return _config;\n}\n","export const SUBJECT_NEXT = Symbol(\"SUBJECT_NEXT\")\nexport const SUBJECT_VALUE = Symbol(\"SUBJECT_VALUE\")\nexport const SUBJECT_SUBSCRIBE = Symbol(\"SUBJECT_SUBSCRIBE\")\nexport const SUBJECT_UNSUBSCRIBE = Symbol(\"SUBJECT_UNSUBSCRIBE\")\nexport const SUBJECT_EMPTY = Symbol(\"SUBJECT_EMPTY\")\nexport const SUBJECT_SETVALUE = Symbol(\"SUBJECT_SETVALUE\")\nexport const VARS_MARK = Symbol(\"VARS_MARK\")\nexport const BASECONTROLLER_MARK = Symbol(\"BASECONTROLLER_MARK\")\nexport const MYBRICKS_DESCRIPTOR = Symbol(\"MYBRICKS_DESCRIPTOR\")\nexport const EXE_TITLE_MAP = {\n output: \"输出\",\n input: \"输入\"\n}\nexport const CONTROLLER_CONTEXT = Symbol(\"CONTROLLER_CONTEXT\")\nexport const EXCUTE_TYPE_KEY = Symbol(\"EXCUTE_TYPE_KEY\")\nexport const EXCUTE_TYPE_VALUE = {\n DATACHANGED: Symbol('DATACHANGED')\n}\n\n","export const log = (...args) => {\n // console.log(\"[MyBricks]\", ...args)\n}\n\nexport const logger = {\n info: log,\n warn: log,\n error: log,\n}\n\n","import { log } from \"./log\"\nimport {\n SUBJECT_NEXT,\n SUBJECT_VALUE,\n SUBJECT_EMPTY,\n SUBJECT_SETVALUE,\n SUBJECT_SUBSCRIBE,\n SUBJECT_UNSUBSCRIBE\n} from \"./constant\"\n\n/** 数据流 */\nexport class Subject {\n _values = []\n _observers = new Set()\n _log = undefined\n _empty = true;\n\n constructor(params = {}) {\n this._log = params.log\n this._subjectNextCache = {}\n return new Proxy(this, {\n get(target, prop) {\n if (prop in target) {\n return target[prop];\n }\n\n // 缓存 SubjectNext,避免重复访问同一属性时创建新实例和新订阅\n if (!target._subjectNextCache[prop]) {\n const subjectNext = new SubjectNext(prop)\n\n target[SUBJECT_SUBSCRIBE]((value, extra) => {\n subjectNext[SUBJECT_NEXT](value, extra)\n })\n\n target._subjectNextCache[prop] = subjectNext\n }\n\n return target._subjectNextCache[prop]\n }\n })\n }\n\n get [SUBJECT_VALUE]() {\n return this._values[0]\n }\n\n get [SUBJECT_EMPTY]() {\n return this._empty;\n }\n\n [SUBJECT_SETVALUE](value) {\n this._values[0] = value;\n this._empty = false;\n }\n\n [SUBJECT_NEXT](value, extra) {\n log(this._log, JSON.stringify(value))\n this._values[0] = value\n this._empty = false\n this._observers.forEach((observer) => observer(value, extra))\n }\n\n [SUBJECT_SUBSCRIBE](observer) {\n if (this._values.length) {\n observer(this._values[0])\n }\n this._observers.add(observer)\n }\n\n [SUBJECT_UNSUBSCRIBE](observer) {\n this._observers.delete(observer)\n }\n}\n\nfunction getValueNextByPath(params) {\n const { value, path } = params\n let current = value\n for (const key of path) {\n if (current === null || current === undefined) {\n return undefined\n }\n current = current[key]\n }\n return current\n}\n\nclass SubjectNext extends Subject {\n _path = []\n\n constructor(path) {\n super()\n\n this._path.push(path)\n\n return new Proxy(this, {\n get(target, prop) {\n if (prop in target) {\n return target[prop];\n }\n\n target._path.push(prop)\n\n return target;\n }\n })\n }\n\n [SUBJECT_NEXT](value, extra) {\n this._values[0] = value\n this._empty = false\n const nextValue = getValueNextByPath({ value, path: this._path })\n this._observers.forEach((observer) => observer(nextValue, extra))\n }\n\n [SUBJECT_SUBSCRIBE](observer) {\n if (this._values.length) {\n observer(getValueNextByPath({ value: this._values[0], path: this._path }))\n }\n this._observers.add(observer)\n }\n}\n","import { EXE_TITLE_MAP, SUBJECT_NEXT, SUBJECT_SUBSCRIBE } from \"./constant\"\nimport { Subject } from \"./Subject\"\n\n/** 组件的输入 */\nexport const createReactiveInputHandler = (params) => {\n const { input, value, rels, title } = params;\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n input(value, new Proxy({}, {\n get(_, key) {\n return (value) => {\n (rels[key] ||\n (rels[key] = new Subject({ log: `${EXE_TITLE_MAP[\"output\"]} ${title} | ${key}` })))[SUBJECT_NEXT](value)\n }\n }\n }))\n })\n } else {\n input(value, new Proxy({},\n {\n get(_, key) {\n return (value) => {\n (rels[key] ||\n (rels[key] = new Subject({ log: `${EXE_TITLE_MAP[\"output\"]} ${title} | ${key}` })))[SUBJECT_NEXT](value)\n }\n }\n }\n ))\n }\n\n return new Proxy({},\n {\n get(_, key) {\n return rels[key] || (rels[key] = new Subject({ log: `${EXE_TITLE_MAP[\"output\"]} ${title} | ${key}` }))\n }\n }\n )\n}\n\n","export const safeSetByPath = (params) => {\n const { data, path, value } = params;\n const nextIndex = path.length - 1;\n let current = data;\n let errorFlag = false;\n for (let i = 0; i < nextIndex; i++) {\n try {\n current = current[path[i]];\n } catch (error) {\n errorFlag = true;\n break;\n }\n }\n\n if (!errorFlag) {\n current[path[nextIndex]] = value;\n }\n}\n\nexport const safeGetByPath = (params) => {\n const { data, path } = params;\n let current = data;\n let errorFlag = false;\n for (let i = 0; i < path.length; i++) {\n try {\n current = current[path[i]];\n } catch (error) {\n errorFlag = true;\n break;\n }\n }\n\n if (!errorFlag) {\n return current;\n }\n\n return undefined;\n}\n\nexport const isObject = (value) => {\n return value && typeof value === \"object\";\n}\n\n","import { EXE_TITLE_MAP, SUBJECT_NEXT, SUBJECT_SUBSCRIBE } from \"./constant\"\nimport { Subject } from \"./Subject\"\nimport { log, logger } from \"./log\"\nimport { createReactiveInputHandler } from \"./createReactiveInputHandler\"\n\n/** utils */\n/**\n * 判断是否js多输入\n */\nexport const validateJsMultipleInputs = (input) => {\n return input.match(/\\./); // input.xxx 为多输入模式\n}\n\n// 全局缓存,用于防抖/节流等需要保持状态的组件\nconst handleCache = new Map();\n\n/** 尝试从缓存获取 exe,命中时重置输出 Subject 状态 */\nconst getFromCache = (handleKey) => {\n if (!handleKey || !handleCache.has(handleKey)) return null;\n const cached = handleCache.get(handleKey);\n if (cached._rels) {\n Object.values(cached._rels).forEach((subject) => {\n subject._observers?.clear?.();\n subject._values = [];\n subject._empty = true;\n });\n }\n return cached;\n}\n\n/** 将 exe 存入缓存 */\nconst setToCache = (handleKey, exe, rels, needsCache) => {\n exe._rels = rels;\n if (handleKey && needsCache) {\n handleCache.set(handleKey, exe);\n }\n}\n\n// JS\nexport const createJSHandle = (fn, options, handleKey) => {\n const { props, appContext } = options\n\n const cached = getFromCache(handleKey);\n if (cached) return cached;\n\n const needsCache = fn.__useCache === true\n\n let controller\n\n const inputs = new Proxy({}, {\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n ownKeys() {\n return props.inputs\n },\n get() {\n return (input) => {\n // 约定只有一个输入\n controller = input\n }\n }\n })\n\n const rels = {}\n\n const outputs = new Proxy({}, {\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n ownKeys() {\n return props.outputs\n },\n get(_, key) {\n return (value) => {\n (rels[key] ||\n (rels[key] = new Subject({ log: `${EXE_TITLE_MAP[\"output\"]} ${props.title} | ${key}` })))[SUBJECT_NEXT](value)\n }\n }\n })\n\n fn({\n data: props.data,\n inputs,\n outputs,\n logger,\n env: appContext?.env,\n appContext,\n })\n\n const isJsMultipleInputs = props.inputs[0]\n ? validateJsMultipleInputs(props.inputs[0])\n : false;\n\n // 缓存 exeOutputs 的属性访问结果,避免每次访问 .trigger 等属性时创建新的 SubjectNext\n const exeOutputsCache = {}\n const exeOutputs = new Proxy(\n {},\n {\n get(_, key) {\n if (!exeOutputsCache[key]) {\n const subject = rels[key] || (rels[key] = new Subject({ log: `${EXE_TITLE_MAP[\"output\"]} ${props.title} | ${key}` }))\n exeOutputsCache[key] = subject\n }\n return exeOutputsCache[key]\n },\n },\n )\n\n // 记录已订阅的 Subject,避免重复订阅\n const subscribedSubjects = new Set()\n\n const exe = (...args) => {\n if (args.length) {\n // 调用输入\n if (isJsMultipleInputs) {\n // 多输入模式\n const length = args.length;\n let valueAry = {};\n args.forEach((value, index) => {\n if (value?.[SUBJECT_SUBSCRIBE]) {\n // 如果已经订阅过这个 Subject,跳过\n if (subscribedSubjects.has(value)) {\n return\n }\n subscribedSubjects.add(value)\n value[SUBJECT_SUBSCRIBE]((value) => {\n log(`${EXE_TITLE_MAP[\"input\"]} ${props.title} | ${props.inputs[index]}`, JSON.stringify(value));\n valueAry[props.inputs[index]] = value\n if (Object.keys(valueAry).length === length) {\n createReactiveInputHandler({\n input: controller,\n value: valueAry,\n rels,\n title: props.title\n })\n // 触发输入后清除\n valueAry = {}\n }\n })\n } else {\n log(`${EXE_TITLE_MAP[\"input\"]} ${props.title} | ${props.inputs[index]}`, JSON.stringify(value));\n valueAry[props.inputs[index]] = value\n\n if (Object.keys(valueAry).length === length) {\n createReactiveInputHandler({\n input: controller,\n value: valueAry,\n rels,\n title: props.title\n })\n // 触发输入后清除\n valueAry = {}\n }\n }\n })\n } else {\n // 非多输入\n const value = args[0]\n if (value?.[SUBJECT_SUBSCRIBE]) {\n // 如果已经订阅过这个 Subject,跳过\n if (subscribedSubjects.has(value)) {\n return exeOutputs\n }\n subscribedSubjects.add(value)\n value[SUBJECT_SUBSCRIBE]((value) => {\n log(`${EXE_TITLE_MAP[\"input\"]} ${props.title} | ${props.inputs[0]}`, JSON.stringify(value));\n createReactiveInputHandler({\n input: controller,\n value,\n rels,\n title: props.title\n })\n })\n } else {\n log(`${EXE_TITLE_MAP[\"input\"]} ${props.title} | ${props.inputs[0]}`, JSON.stringify(value));\n createReactiveInputHandler({\n input: controller,\n value,\n rels,\n title: props.title\n })\n }\n }\n }\n\n return exeOutputs;\n }\n\n setToCache(handleKey, exe, rels, needsCache);\n\n return exe;\n}\n\n","import { Subject } from \"./Subject\"\nimport { context } from \"./context\"\nimport { safeSetByPath, safeGetByPath } from \"./utils\"\nimport { SUBJECT_NEXT, SUBJECT_SUBSCRIBE, SUBJECT_VALUE, SUBJECT_EMPTY, SUBJECT_SETVALUE } from \"./constant\"\n\n/** 创建变量 */\nexport const createVariable = (...args) => {\n const hasDefaultValue = args.length > 0\n const initValue = args[0]\n const value = new Subject()\n if (hasDefaultValue) {\n value[SUBJECT_NEXT](initValue)\n }\n const ref = {\n value,\n callBacksMap: new Map(),\n\n // 注册change后,设置一个subject,用于触发change\n changeValues: new Set(),\n // change到上述subject的映射\n changeValuesMap: new Map(),\n }\n\n const variable = {\n /** 读取 */\n get(value, path) {\n const nextValue = new Subject()\n const next = () => {\n nextValue[SUBJECT_NEXT](path ? safeGetByPath({\n data: ref.value[SUBJECT_VALUE],\n path: path.split(\".\")\n }) : ref.value[SUBJECT_VALUE])\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE](() => {\n next()\n })\n } else {\n next()\n }\n return nextValue\n },\n /** 赋值 */\n set(value, path) {\n const nextValue = new Subject()\n const next = (value, extra) => {\n if (path) {\n const isEmpty = ref.value[SUBJECT_EMPTY]\n if (isEmpty) {\n ref.value[SUBJECT_SETVALUE]({})\n }\n safeSetByPath({\n data: ref.value[SUBJECT_VALUE],\n path: path.split(\".\"),\n value: value\n })\n\n value = ref.value[SUBJECT_VALUE]\n }\n\n ref.value[SUBJECT_NEXT](value, extra)\n ref.changeValues.forEach((changeValue) => {\n changeValue[SUBJECT_NEXT](value, extra)\n })\n nextValue[SUBJECT_NEXT](value, extra)\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value, extra) => {\n next(value, extra)\n })\n } else {\n next(value)\n }\n return nextValue\n },\n /** 重置 */\n reset(value) {\n const nextValue = new Subject()\n const next = () => {\n ref.value[SUBJECT_NEXT](initValue)\n ref.changeValues.forEach((changeValue) => {\n changeValue[SUBJECT_NEXT](initValue)\n })\n nextValue[SUBJECT_NEXT](initValue)\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE](() => {\n next()\n })\n } else {\n next()\n }\n return nextValue\n },\n /** 值变更监听 */\n changed() {\n const changeValue = new Subject();\n ref.changeValues.add(changeValue);\n\n const result = {\n destroy() {\n ref.changeValues.delete(changeValue)\n },\n [SUBJECT_SUBSCRIBE](next) {\n changeValue[SUBJECT_SUBSCRIBE](next)\n }\n }\n\n if (context.apiRun) {\n if (!context.apiRunVariablesSubject[context.apiRun]) {\n context.apiRunVariablesSubject[context.apiRun] = [result]\n } else {\n context.apiRunVariablesSubject[context.apiRun].push(result)\n }\n }\n\n return result\n },\n bind(callBack) {\n if (!ref.callBacksMap.has(\"\")) {\n ref.callBacksMap.set(\"\", new Set())\n }\n const callBacks = ref.callBacksMap.get(\"\")\n callBacks.add(callBack)\n // 默认触发一次\n callBack(ref.value[SUBJECT_VALUE])\n },\n ext() {\n return {\n setValue(value) {\n variable.set(value)\n },\n getValue() {\n return ref.value[SUBJECT_VALUE]\n }\n }\n },\n registerChange(change) {\n const changeValue = new Subject()\n // 默认执行,进行初始化动作\n change(changeValue)\n\n ref.changeValues.add(changeValue)\n ref.changeValuesMap.set(change, changeValue)\n\n if (!ref.value[SUBJECT_EMPTY]) {\n // 有值就默认执行\n changeValue[SUBJECT_NEXT](ref.value[SUBJECT_VALUE])\n }\n },\n unregisterChange(change) {\n const changeValue = ref.changeValuesMap.get(change)\n ref.changeValues.delete(changeValue)\n ref.changeValuesMap.delete(change)\n },\n // 内置的赋值操作\n setTrue() {\n return variable.set(true)\n },\n setFalse() {\n return variable.set(false)\n },\n setAryAdd(value) {\n const nextValue = new Subject()\n\n if (Array.isArray(ref.value[SUBJECT_VALUE])) {\n const next = (value) => {\n const arrayValue = ref.value[SUBJECT_VALUE].concat(value)\n ref.value[SUBJECT_NEXT](arrayValue)\n ref.changeValues.forEach((changeValue) => {\n changeValue[SUBJECT_NEXT](value)\n })\n nextValue[SUBJECT_NEXT](arrayValue)\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n next(value)\n })\n } else {\n next(value)\n }\n }\n\n return nextValue\n }\n }\n\n return new Proxy({}, {\n get(_, key) {\n return variable[key]\n }\n })\n}\n\n/** 创建变量map */\nexport const createVars = (vars) => {\n return new Proxy(vars, {\n get(target, key) {\n const value = target[key]\n if (value) {\n return value.get()[SUBJECT_VALUE]\n }\n return value\n }\n })\n}\n\n","import {\n SUBJECT_NEXT,\n SUBJECT_VALUE,\n SUBJECT_SUBSCRIBE,\n VARS_MARK,\n BASECONTROLLER_MARK,\n EXE_TITLE_MAP,\n CONTROLLER_CONTEXT,\n EXCUTE_TYPE_KEY,\n EXCUTE_TYPE_VALUE\n} from \"./constant\"\nimport { log } from \"./log\"\nimport { Subject } from \"./Subject\"\nimport { context } from \"./context\"\nimport { safeSetByPath, isObject } from \"./utils\"\nimport { createReactiveInputHandler } from \"./createReactiveInputHandler\"\n\n/** 合并数据流 */\nexport const merge = (...subjects) => {\n const merge = new Subject()\n\n subjects.forEach((subject) => {\n if (subject?.[SUBJECT_SUBSCRIBE]) {\n subject[SUBJECT_SUBSCRIBE]((value) => {\n merge[SUBJECT_NEXT](value)\n })\n } else {\n merge[SUBJECT_NEXT](subject)\n }\n })\n\n return merge\n}\n\n\n// UI\nexport const createInputsHandle = (params, init = false) => {\n if (init) {\n /** 注册的输入 */\n const _inputEvents = {}\n /** 输入未完成注册,写入todo列表 */\n const _inputEventsTodo = {}\n /** 组件基础信息 */\n const _comInfo = {}\n /** 全局 */\n const controllerContext = {\n initStyles: {},\n initData: {},\n dataChangedSubjects: {},\n // 唯一标记\n mark: {}\n }\n\n const proxy = new Proxy({}, {\n get(_, key) {\n // 内置关键字\n if (key === \"_inputEvents\") {\n return _inputEvents;\n } else if (key === \"_inputEventsTodo\") {\n return _inputEventsTodo\n } else if (key === \"_comInfo\") {\n return _comInfo\n } else if (key === CONTROLLER_CONTEXT) {\n return controllerContext\n } else if (key === \"_setStyle\") {\n return (value0, value1) => {\n const next = (value) => {\n if (Object.prototype.toString.call(value) === \"[object Object]\") {\n Object.entries(value).forEach(([selector, nextStyle]) => {\n if (!controllerContext.styles) {\n const { initStyles } = controllerContext\n if (!initStyles[selector]) {\n initStyles[selector] = nextStyle\n } else {\n const initStyle = initStyles[selector]\n Object.entries(nextStyle).forEach(([key, value]) => {\n initStyle[key] = value\n })\n }\n return\n }\n const { style } = controllerContext.styles.getStyle(selector)\n const updators = controllerContext.styles.getUpdators(selector)\n\n Object.entries(nextStyle).forEach(([key, value]) => {\n style[key] = value\n })\n\n if (updators) {\n updators.forEach((updator) => {\n updator(selector, style)\n })\n }\n })\n }\n }\n\n if (typeof value0 === \"string\" && value1) {\n if (value1?.[SUBJECT_SUBSCRIBE]) {\n value1[SUBJECT_SUBSCRIBE]((value) => {\n next({\n [value0]: value\n })\n })\n } else {\n next({\n [value0]: value1\n })\n }\n } else {\n if (value0?.[SUBJECT_SUBSCRIBE]) {\n value0[SUBJECT_SUBSCRIBE]((value) => {\n next(value)\n })\n } else {\n next(value0)\n }\n }\n }\n } else if (key === \"_setData\") {\n return (...args) => {\n if (args.length === 2) {\n const [path, value] = args\n\n const next = (params) => {\n const { path, value } = params\n if (!controllerContext.data) {\n const { initData } = controllerContext\n initData[path] = value\n return\n }\n\n safeSetByPath({\n data: controllerContext.data,\n path: path.split(\".\"),\n value: {\n value,\n [EXCUTE_TYPE_KEY]: EXCUTE_TYPE_VALUE.DATACHANGED\n }\n })\n }\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value, extra) => {\n if (extra?.[EXCUTE_TYPE_KEY] === EXCUTE_TYPE_VALUE.DATACHANGED && extra?.controllerMark === controllerContext.mark) {\n // 数据流来自「EXCUTE_TYPE_VALUE.DATACHANGED」且来自自身,不再继续执行,避免死循环\n return\n }\n next({ value, path })\n })\n } else {\n next({ value, path })\n }\n }\n }\n } else if (key === \"_dataChanged\") {\n return (path) => {\n const subject = new Subject();\n controllerContext.dataChangedSubjects[path] = subject;\n\n return subject;\n }\n }\n\n return (value) => {\n if (!_inputEvents[key]) {\n // 组件未完成输入注册\n if (!_inputEventsTodo[key]) {\n _inputEventsTodo[key] = []\n }\n\n const rels = {}\n\n _inputEventsTodo[key].push({\n value,\n rels,\n });\n\n return new Proxy({}, {\n get(_, key) {\n return rels[key] || (rels[key] = new Subject())\n }\n })\n }\n\n return createReactiveInputHandler({\n input(value, proxy) {\n log(`${EXE_TITLE_MAP[\"input\"]} ${_comInfo.title} | ${key}`, JSON.stringify(value))\n return _inputEvents[key](value, proxy)\n },\n title: _comInfo.title,\n value,\n rels: {}\n })\n }\n }\n })\n\n return proxy;\n } else {\n if (!params.controller[CONTROLLER_CONTEXT].inputs) {\n const { controller, title, styles } = params\n const { _inputEvents, _comInfo, _inputEventsTodo, [CONTROLLER_CONTEXT]: controllerContext } = controller\n _comInfo.title = title;\n controllerContext.initModifier = {\n visibility: styles?.root?.display === \"none\" ? Visibility.None : Visibility.Visible\n }\n\n const createVisibilityHandler = (visibilityState) => {\n return (value) => {\n const setVisibility = () => {\n if (!controllerContext.modifier?.attribute) {\n controllerContext.initModifier.visibility = visibilityState\n } else {\n controllerContext.modifier.attribute?.visibility(visibilityState)\n }\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE](setVisibility);\n } else {\n setVisibility()\n }\n };\n };\n\n // 内置显示隐藏逻辑\n _inputEvents.show = createVisibilityHandler(Visibility.Visible)\n _inputEvents.hide = createVisibilityHandler(Visibility.None)\n _inputEvents.showOrHide = (value) => {\n const setVisibility = (value) => {\n if (!controllerContext.modifier?.attribute) {\n controllerContext.initModifier.visibility = !!value ? Visibility.Visible : Visibility.None\n } else {\n controllerContext.modifier.attribute?.visibility(!!value ? Visibility.Visible : Visibility.None)\n }\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE](setVisibility)\n } else {\n setVisibility(value)\n }\n }\n // 处理显示隐藏todo项\n [\"show\", \"hide\", \"showOrHide\"].forEach((key) => {\n const todo = _inputEventsTodo[key]\n if (todo) {\n Reflect.deleteProperty(_inputEventsTodo, key)\n\n todo.forEach(({ value }) => {\n _inputEvents[key](value)\n })\n }\n })\n\n const proxy = new Proxy(controller, {\n get(_, key) {\n return (input) => {\n if (!_inputEvents[key]) {\n // 第一次注册,处理TODO\n if (_inputEventsTodo[key]) {\n _inputEventsTodo[key].forEach(({ value, rels }) => {\n createReactiveInputHandler({\n input(value, proxy) {\n log(`${EXE_TITLE_MAP[\"input\"]} ${title} | ${key}`, JSON.stringify(value))\n return input(value, proxy)\n },\n title,\n value,\n rels\n })\n })\n Reflect.deleteProperty(_inputEventsTodo, key)\n }\n }\n\n _inputEvents[key] = input\n }\n }\n })\n\n params.controller[CONTROLLER_CONTEXT].inputs = proxy;\n }\n\n return params.controller[CONTROLLER_CONTEXT].inputs\n }\n}\n\n// 事件\nexport const createEventsHandle = (params) => {\n if (!params.controller[CONTROLLER_CONTEXT].outputs) {\n params.controller[CONTROLLER_CONTEXT].outputs = new Proxy(params.events || {}, {\n get(target, key) {\n const event = params.controller[CONTROLLER_CONTEXT].appContext?.comEvent?.[params.uid]?.[key]\n if (event) {\n const { getVar, getOutput, getInput } = params.controller[CONTROLLER_CONTEXT]\n return (value) => {\n event(value, {\n getVar,\n getOutput,\n getInput\n })\n }\n }\n\n return target[key] || (() => {\n })\n }\n })\n }\n\n return params.controller[CONTROLLER_CONTEXT].outputs\n}\n\n// 场景打开、输出\nexport const pageController = () => {\n return new Proxy({\n commit: new Subject(),\n cancel: new Subject(),\n apply: new Subject(),\n close: new Subject(),\n }, {\n get(target, key) {\n return target[key]\n }\n })\n}\n\nexport class Page {\n appRouter\n\n constructor(appRouter) {\n this.appRouter = appRouter\n }\n\n /** 获取当前页面入参 */\n getParams(name) {\n const params = this.appRouter.getParams(name)\n const subject = new Subject()\n subject[SUBJECT_NEXT](params?.value)\n return subject\n }\n\n /** 打开 */\n open(name, value) {\n const controller = pageController()\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n this.appRouter.push(name, { value, controller })\n })\n } else {\n this.appRouter.push(name, { value, controller })\n }\n\n return controller\n }\n\n /** 打开 */\n replace(name, value) {\n const controller = pageController()\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n this.appRouter.replace(name, { value, controller })\n })\n } else {\n this.appRouter.replace(name, { value, controller })\n }\n\n return controller\n }\n\n /** 确定 */\n commit(name, value) {\n const params = this.appRouter.getParams(name)\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.commit[SUBJECT_NEXT](value)\n }, 100)\n })\n } else {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.commit[SUBJECT_NEXT](value)\n }, 100)\n }\n }\n\n /** 取消 */\n cancel(name, value) {\n const params = this.appRouter.getParams(name)\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.cancel[SUBJECT_NEXT](value)\n }, 100)\n })\n } else {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.cancel[SUBJECT_NEXT](value)\n }, 100)\n }\n }\n\n /** 应用,不关闭 */\n apply(name, value) {\n const params = this.appRouter.getParams(name)\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n params.controller.apply[SUBJECT_NEXT](value)\n })\n } else {\n params.controller.apply[SUBJECT_NEXT](value)\n }\n }\n\n /** 关闭 */\n close(name, value) {\n const params = this.appRouter.getParams(name)\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.close[SUBJECT_NEXT](value)\n }, 100)\n })\n } else {\n this.appRouter.pop()\n setTimeout(() => {\n params.controller.close[SUBJECT_NEXT](value)\n }, 100)\n }\n }\n}\n\n// api\nexport const emit = (fn, value) => {\n const subject = new Subject()\n\n if (!fn) {\n return subject\n }\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n const res = fn(value)\n\n if (res instanceof Promise) {\n res.then((value) => {\n subject[SUBJECT_NEXT](value)\n })\n } else {\n subject[SUBJECT_NEXT](res)\n }\n })\n } else {\n const res = fn(value)\n\n if (res instanceof Promise) {\n res.then((value) => {\n subject[SUBJECT_NEXT](value)\n })\n } else {\n subject[SUBJECT_NEXT](res)\n }\n }\n\n return subject;\n}\n\n/** 创建fx */\nexport const createFx = (fx) => {\n return (value, ...args) => {\n const outputs = {}\n\n const proxy = new Proxy({}, {\n get(_, key) {\n return outputs[key] || (outputs[key] = new Subject())\n }\n })\n\n const next = (value) => {\n const res = fx(value, ...args)\n if (res) {\n Object.entries(res).forEach(([key, value]) => {\n if (!outputs[key]) {\n outputs[key] = new Subject()\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n outputs[key][SUBJECT_NEXT](value)\n })\n } else {\n outputs[key][SUBJECT_NEXT](value)\n }\n })\n }\n }\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n next(value)\n })\n } else {\n next(value)\n }\n\n return proxy\n }\n}\n\n/** 创建插槽IO */\nexport const createSlotsIO = (params) => {\n if (!params.controller[CONTROLLER_CONTEXT].slotsIO) {\n const slotsIOMap = {}\n params.controller[CONTROLLER_CONTEXT].slotsIO = new Proxy({}, {\n get(_, key) {\n if (!slotsIOMap[key]) {\n const inputsMap = {}\n slotsIOMap[key] = {\n inputs: new Proxy({}, {\n get(_, key) {\n if (!inputsMap[key]) {\n inputsMap[key] = new Subject()\n }\n\n const next = (value) => {\n inputsMap[key][SUBJECT_NEXT](value)\n }\n\n next[SUBJECT_SUBSCRIBE] = (next) => {\n inputsMap[key][SUBJECT_SUBSCRIBE](next)\n }\n\n return next\n }\n }),\n outputs: new Proxy({}, {\n get(_, key) {\n return (next) => {\n return (value) => {\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n next(value)\n })\n } else {\n next(value)\n }\n }\n }\n }\n })\n }\n }\n\n return slotsIOMap[key]\n }\n })\n }\n\n return params.controller[CONTROLLER_CONTEXT].slotsIO\n}\n\n/**\n * 模块\n * [TODO] 暂时无法在多处使用关联输出项\n */\nexport const createModuleInputsHandle = () => {\n const inputsMap = {}\n const outputsMap = {}\n\n return new Proxy({}, {\n get(_, key) {\n if (key === \"outputs\") {\n return new Proxy({}, {\n get(_, key) {\n if (!outputsMap[key]) {\n outputsMap[key] = new Subject()\n }\n return (value) => {\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n outputsMap[key][SUBJECT_NEXT](value)\n });\n } else {\n outputsMap[key][SUBJECT_NEXT](value)\n }\n }\n }\n })\n }\n\n if (!inputsMap[key]) {\n inputsMap[key] = new Subject()\n }\n\n const next = (value) => {\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n inputsMap[key][SUBJECT_NEXT](value)\n });\n } else {\n inputsMap[key][SUBJECT_NEXT](value)\n }\n\n return new Proxy({}, {\n get(_, key) {\n return outputsMap[key] || (outputsMap[key] = new Subject())\n }\n })\n }\n\n return new Proxy(next, {\n get(_, proxyKey) {\n if (proxyKey === \"subscribe\" || proxyKey === SUBJECT_SUBSCRIBE) {\n return (next) => {\n inputsMap[key][SUBJECT_SUBSCRIBE](next)\n }\n } else if (proxyKey === \"value\" || proxyKey === SUBJECT_VALUE) {\n return inputsMap[key][SUBJECT_VALUE]\n }\n }\n })\n }\n })\n}\n\nclass Styles {\n styles = {}\n map = new Map()\n\n constructor(styles) {\n this.styles = styles\n }\n\n getStyle(selector) {\n let style = this.styles[selector]\n if (!style) {\n this.styles[selector] = {}\n style = this.styles[selector]\n }\n return {\n selector,\n style,\n setUpdator: (updator, uid) => {\n if (!this.map.has(selector)) {\n this.map.set(selector, new Map())\n }\n const selectorMap = this.map.get(selector)\n selectorMap.set(uid, updator)\n },\n ...style\n }\n }\n\n getUpdators(selector) {\n return this.map.get(selector)\n }\n}\n\n/**\n * 组件样式\n */\nexport const createStyles = (params) => {\n if (!params.controller[CONTROLLER_CONTEXT].styles) {\n const initStyles = params.controller[CONTROLLER_CONTEXT].initStyles\n const { styles, parentSlot } = params;\n Object.entries(initStyles).forEach(([selector, initStyle]) => {\n if (!styles[selector]) {\n styles[selector] = initStyle\n } else {\n const style = styles[selector]\n Object.entries(initStyle).forEach(([key, value]) => {\n style[key] = value\n })\n }\n })\n if (parentSlot?.itemWrap) {\n const { root, ...other } = styles\n params.controller[CONTROLLER_CONTEXT].styles = new Styles(other)\n } else {\n params.controller[CONTROLLER_CONTEXT].styles = new Styles(styles)\n }\n }\n\n return new Proxy({}, {\n ownKeys() {\n return Object.keys(params.styles)\n },\n getOwnPropertyDescriptor(k) {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n get(_, key) {\n return params.controller[CONTROLLER_CONTEXT].styles.getStyle(key)\n }\n })\n}\n\n/**\n * @returns {any}\n */\nexport const transformApi = (api) => {\n return (value, cb) => {\n const id = `${Math.random()}_${new Date().getTime()}`\n const outputs = {}\n const dispose = () => {\n\n }\n const proxy = new Proxy(dispose, {\n get(_, key) {\n return outputs[key] || (outputs[key] = new Subject())\n }\n })\n let isDispose = false;\n\n context.apiRun = id;\n\n const res = api(value)\n\n context.apiRun = null;\n\n if (res) {\n Object.entries(res).forEach(([key, value]) => {\n if (!outputs[key]) {\n outputs[key] = new Subject()\n }\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n if (isDispose) {\n return\n }\n isDispose = true\n outputs[key][SUBJECT_NEXT](value)\n cb?.[key]?.(value)\n context.apiRunVariablesSubject[id]?.forEach((subject) => {\n subject.destroy()\n })\n })\n } else {\n if (isDispose) {\n return\n }\n isDispose = true\n outputs[key][SUBJECT_NEXT](value)\n cb?.[key]?.(value)\n context.apiRunVariablesSubject[id]?.forEach((subject) => {\n subject.destroy()\n })\n }\n })\n }\n\n return proxy\n }\n}\n\nexport const transformBus = (bus) => {\n return (newBus) => {\n Object.entries(newBus).forEach(([key, newBus]) => {\n bus[key] = (value) => {\n const outputs = {}\n\n const callBack = new Proxy({}, {\n get(_, key) {\n return (value) => {\n const output = outputs[key] || (outputs[key] = new Subject())\n output[SUBJECT_NEXT](value)\n }\n }\n })\n\n if (value?.[SUBJECT_SUBSCRIBE]) {\n value[SUBJECT_SUBSCRIBE]((value) => {\n newBus(value, callBack)\n })\n } else {\n newBus(value, callBack)\n }\n\n return new Proxy({}, {\n get(_, key) {\n return outputs[key] || (outputs[key] = new Subject())\n }\n })\n };\n })\n }\n}\n\nexport const createBus = (bus) => {\n return () => {\n return new Proxy({}, {\n get() {\n return new Subject()\n }\n })\n }\n}\n\nexport const join = (lastSubject, nextSubject) => {\n const subject = new Subject();\n const next = () => {\n if (nextSubject?.[SUBJECT_SUBSCRIBE]) {\n subject[SUBJECT_NEXT](nextSubject[SUBJECT_VALUE]);\n } else {\n subject[SUBJECT_NEXT](nextSubject);\n }\n }\n\n if (lastSubject?.[SUBJECT_SUBSCRIBE]) {\n lastSubject[SUBJECT_SUBSCRIBE](() => {\n next()\n });\n } else {\n next()\n }\n\n return subject;\n};\n\nexport const createModifier = (params, Modifier) => {\n if (!params.controller[CONTROLLER_CONTEXT].modifier) {\n params.controller[CONTROLLER_CONTEXT].modifier = new Modifier(params.controller[CONTROLLER_CONTEXT].initModifier);\n }\n return params.controller[CONTROLLER_CONTEXT].modifier\n}\n\nconst DATA_PROXY = Symbol(\"DATA_PROXY\");\nconst dataProxy = (params) => {\n const { data, path, config } = params;\n return new Proxy(data, {\n get(target, key, receiver) {\n if (key === DATA_PROXY) {\n return true;\n }\n const value = Reflect.get(target, key, receiver);\n if (typeof key !== \"string\" || target.hasOwnProperty(key)) {\n return value\n }\n if (isObject(value)) {\n if (value[DATA_PROXY]) {\n return value;\n }\n\n return dataProxy({\n data: value,\n path: path ? `${path}.${key}` : key,\n config\n });\n }\n return value;\n },\n set(target, key, value, receiver) {\n if (typeof key !== \"string\" || target.hasOwnProperty(key)) {\n Reflect.set(target, key, value, receiver);\n } else {\n if (!value?.[EXCUTE_TYPE_KEY]) {\n Reflect.set(target, key, value, receiver);\n // 目前只有「EXCUTE_TYPE_VALUE.DATACHANGED」,所以判断有「EXCUTE_TYPE_KEY」就行\n config?.set?.({\n value,\n path: path ? `${path}.${key}` : key,\n });\n } else {\n Reflect.set(target, key, value.value, receiver);\n }\n }\n return true;\n },\n });\n}\n\nexport const createData = (params, Data) => {\n if (!params.controller[CONTROLLER_CONTEXT].data) {\n const { initData, dataChangedSubjects, mark } = params.controller[CONTROLLER_CONTEXT]\n const nextData = Object.assign({}, params.data)\n Object.entries(initData).forEach(([path, value]) => {\n safeSetByPath({\n data: nextData,\n path: path.split(\".\"),\n value\n })\n })\n\n const data = new Data(nextData)\n const observeData = dataProxy({\n data,\n path: \"\",\n config: {\n set(params) {\n const dataChangedSubject = dataChangedSubjects[params.path];\n if (dataChangedSubject) {\n dataChangedSubject[SUBJECT_NEXT](params.value, {\n [EXCUTE_TYPE_KEY]: EXCUTE_TYPE_VALUE.DATACHANGED,\n controllerMark: mark,\n })\n }\n }\n }\n })\n\n params.controller[CONTROLLER_CONTEXT].data = observeData\n }\n\n return params.controller[CONTROLLER_CONTEXT].data\n}\n\nexport class Vars {\n [VARS_MARK] = true\n}\n\nexport class BaseController {\n [BASECONTROLLER_MARK] = true\n}\n\nexport * from \"./MyBricksDescriptor\"\n\nexport * from \"./createModuleEventsHandle\"\n\nexport * from \"./createJSHandle\"\n\nexport * from \"./Subject\"\n\nexport * from \"./createEnv\"\n\nexport * from \"./variables\"\n\nexport * from \"./event\"\n\n","// @ts-ignore 运行时由宿主项目提供 @tarojs/taro\nimport Taro from \"@tarojs/taro\";\nimport { getCoreRuntime } from '../runtime'\nimport { Page } from \"../mybricks\";\n\n/**\n * Taro 路由驱动 (纯粹版)\n * 只负责处理真正的 Taro 页面跳转\n */\nclass TaroRouter {\n private paramsBackup: Record<string, any> = {};\n\n getParams(name: string) {\n const instance = Taro.getCurrentInstance();\n const inputParams: any = instance.router?.params || {};\n\n // 直接页面\"打开\",会有data包裹参数\n // 使用“跳转到”逻辑组件,会直接传递参数\n // TODO: 没有特殊字段和结构可以判断,现只能尽量加条件来判断\n let params =\n Object.keys(inputParams).length === 2 &&\n inputParams.data &&\n typeof inputParams.data === \"string\"\n ? inputParams\n : {\n data:\n Object.keys(inputParams).length > 1\n ? JSON.stringify({ ...inputParams, $taroTimestamp: undefined })\n : undefined,\n $taroTimestamp: inputParams.$taroTimestamp,\n };\n\n // 备份参数,解决某些生命周期下 Taro 获取不到 params 的问题\n if (!params.data && this.paramsBackup[name]) {\n params = { data: this.paramsBackup[name] };\n }\n\n // 解析真实参数\n const paramsDataStr = params.data\n ? decodeURIComponent(params.data)\n : undefined;\n let paramsData;\n try {\n paramsData = paramsDataStr ? JSON.parse(paramsDataStr) : undefined;\n } catch (error) {\n paramsData = paramsDataStr;\n }\n\n return { value: paramsData };\n }\n\n push(name: string, { value }: any) {\n const path = `pages/${name}/index`;\n const navigateType = this.isTabBarPage(path) ? \"switchTab\" : \"navigateTo\";\n this.navigate(navigateType, name, { value });\n }\n\n replace(name: string, { value }: any) {\n const path = `pages/${name}/index`;\n const navigateType = this.isTabBarPage(path) ? \"switchTab\" : \"redirectTo\";\n this.navigate(navigateType, name, { value });\n }\n\n navigate(\n type: \"navigateTo\" | \"redirectTo\" | \"switchTab\",\n name: string,\n { value }: any,\n ) {\n const url = `/pages/${name}/index`;\n const dataStr = value ? encodeURIComponent(JSON.stringify(value)) : \"\";\n\n if (dataStr) {\n this.paramsBackup[name] = dataStr;\n }\n\n Taro[type]({\n url: `${url}${dataStr ? `?data=${dataStr}` : \"\"}`,\n });\n }\n\n pop() {\n Taro.navigateBack();\n }\n\n /**\n * 判断是否为标签栏页面\n * @param pagePath 页面路径\n * @returns 是否为标签栏页面\n */\n isTabBarPage(pagePath: string) {\n const { tabBarConfig } = getCoreRuntime();\n return tabBarConfig?.tabBar?.list?.some(\n (item) => item.pagePath === pagePath,\n );\n }\n}\n\nexport const router = new TaroRouter();\nexport const pageRouter = new Page(router);\n","import { createContext, useContext } from 'react'\nimport type { ComContextStore } from './useContext'\nexport { pageRouter } from './pageRouter'\n\nconst ComContext = createContext<ComContextStore | undefined>(undefined)\nconst SlotContext = createContext<any>(null)\n\nexport function useAppContext(): ComContextStore {\n const context = useContext(ComContext)\n if (!context) {\n throw new Error('useAppContext must be used within a ComContext.Provider')\n }\n return context\n}\n\nexport function useParentSlot<T = any>(): T | null {\n return useContext(SlotContext)\n}\n\nexport const SlotProvider = SlotContext.Provider\n\nexport default ComContext\n","/**\n * 待执行指令池\n * 结构:Map<组件ID, Map<索引, Record<方法名, 参数数组>>>\n */\nexport class TodoPool {\n private pool = new Map<string, Map<number, Record<string, any[]>>>();\n\n /** 存:记录待执行指令 */\n push(id: string, index: number, method: string, args: any[]) {\n if (!this.pool.has(id)) {\n this.pool.set(id, new Map());\n }\n const instances = this.pool.get(id)!;\n if (!instances.has(index)) {\n instances.set(index, {});\n }\n instances.get(index)![method] = args;\n }\n\n /** 取:获取并物理删除指令 */\n pop(id: string, index: number, method: string): any[] | undefined {\n const instances = this.pool.get(id);\n if (!instances) return undefined;\n\n const todo = instances.get(index);\n if (todo && todo[method]) {\n const args = todo[method];\n delete todo[method];\n\n // 自动清理:如果当前索引下没指令了,删掉索引容器\n if (Object.keys(todo).length === 0) {\n instances.delete(index);\n }\n // 如果当前组件下没索引了,删掉整个 ID\n if (instances.size === 0) {\n this.pool.delete(id);\n }\n return args;\n }\n return undefined;\n }\n}\n","import { TodoPool } from './pool';\n\n/**\n * 组件引用解析器\n *\n * 职责单一:管理组件引用的查找、创建和注册\n *\n * 核心机制:\n * 1. 查找真实引用时,优先本地,再查父级\n * 2. 未找到时创建影子对象,影子对象调用时会动态查找真实引用\n * 3. 注册真实引用时,向上渗透到父级\n */\nexport class ComRefResolver {\n constructor(\n private registry: Record<string, any>,\n private parent?: ComRefResolver,\n private todoPool?: TodoPool,\n private scopeIndex: number = 0\n ) {}\n\n /**\n * 获取组件引用\n * @returns 真实引用或影子对象\n */\n get(id: string): any {\n // 1. 优先检查本地是否有真实引用\n if (this.registry[id] && !this.registry[id].__isShadow) {\n return this.registry[id];\n }\n\n // 2. 检查父级是否有真实引用\n const parentRef = this.parent?.findRealRef(id);\n if (parentRef) {\n return parentRef;\n }\n\n // 3. 如果已有影子对象,直接返回\n if (this.registry[id]?.__isShadow) {\n return this.registry[id];\n }\n\n // 4. 创建影子对象\n return this.createShadowProxy(id);\n }\n\n /**\n * 注册真实引用\n */\n set(id: string, ref: any): void {\n this.registry[id] = ref;\n // 向上渗透到父级\n this.parent?.set(id, ref);\n }\n\n /**\n * 删除引用\n */\n delete(id: string): void {\n delete this.registry[id];\n this.parent?.delete(id);\n }\n\n /**\n * 查找真实引用(仅用于父级链查找)\n */\n findRealRef(id: string): any | null {\n const local = this.registry[id];\n if (local && !local.__isShadow) {\n return local;\n }\n return this.parent?.findRealRef(id) ?? null;\n }\n\n /**\n * 创建影子对象\n * 关键:影子对象的方法被调用时,会动态查找真实引用\n */\n private createShadowProxy(id: string): any {\n const resolver = this;\n const registry = this.registry;\n const todoPool = this.todoPool;\n const scopeIndex = this.scopeIndex;\n\n const shadow = new Proxy({ __isShadow: true }, {\n get(_, method: string) {\n if (method === '__isShadow') return true;\n\n return (...args: any[]) => {\n // 动态检查是否已有真实引用\n // 注意:这里直接检查 registry[id],因为真实引用注册时会覆盖它\n const realRef = registry[id];\n if (realRef && !realRef.__isShadow) {\n if (typeof realRef[method] === 'function') {\n return realRef[method](...args);\n }\n return;\n }\n\n // 未找到真实引用,缓冲到 TodoPool\n if (todoPool instanceof TodoPool) {\n todoPool.push(id, scopeIndex, method, args);\n }\n };\n }\n });\n\n // 存储影子对象\n this.registry[id] = shadow;\n return shadow;\n }\n}\n","import React from 'react';\nimport { useState, useRef, useMemo, useEffect } from 'react';\nimport { createReactiveInputHandler } from '../mybricks/createReactiveInputHandler';\nimport { useAppContext, useParentSlot } from './ComContext';\nimport { TodoPool } from './pool';\nimport { ComRefResolver } from './comRefResolver';\n\n/** 深度代理:支持响应式更新 */\nexport function deepProxy(target: any, onSet?: () => void): any {\n if (target === null || typeof target !== 'object' || target.__isProxy) return target;\n\n return new Proxy(target, {\n get(obj, prop) {\n if (prop === '__isProxy') return true;\n if (prop === 'toJSON') return () => obj;\n\n const value = obj[prop];\n if (typeof value === 'object' && value !== null && !value.__isProxy) {\n obj[prop] = deepProxy(value, onSet);\n }\n return obj[prop];\n },\n set(obj, prop, value) {\n const result = Reflect.set(obj, prop, value);\n onSet?.();\n return result;\n }\n });\n}\n\n/** 状态 Hook:提供响应式数据能力 */\nexport function useModel(rawData: any) {\n const [, forceUpdate] = useState({});\n const dataRef = useRef(rawData || {});\n\n return useMemo(() => deepProxy(dataRef.current, () => forceUpdate({})), []);\n}\n\n/**\n * 组件引用代理:\n * 1. 自动缓冲:访问未渲染组件时返回影子对象,缓冲后续指令\n * 2. 引用渗透:子作用域注册的真实引用自动同步至父级\n * 3. 自动同步清理:卸载时从作用域链中彻底移除,防止僵尸引用\n *\n * 使用 ComRefResolver 统一处理引用解析逻辑\n */\nexport function proxyRefs(target: any, parentComRefs?: any, todoPool?: TodoPool): any {\n // 创建解析器,链接父级解析器\n const parentResolver = parentComRefs?.current?.__resolver as ComRefResolver | undefined;\n const scopeIndex = target.$index ?? 0;\n const resolver = new ComRefResolver(target, parentResolver, todoPool, scopeIndex);\n\n // 存储解析器引用,供子级使用\n target.__resolver = resolver;\n\n return new Proxy(target, {\n get(obj, prop) {\n if (prop === '__isProxy') return true;\n if (prop === '__resolver') return resolver;\n if (prop === 'toJSON') return () => obj;\n\n // u_ 开头的组件引用,统一由解析器处理\n if (typeof prop === 'string' && prop.startsWith('u_')) {\n return resolver.get(prop);\n }\n return obj[prop];\n },\n\n set(obj, prop, value) {\n const result = Reflect.set(obj, prop, value);\n\n // 真实引用注册时,同步到解析器\n const isRealRef = typeof prop === 'string'\n && !prop.startsWith('$')\n && value?.__isShadow !== true;\n\n if (isRealRef && typeof prop === 'string' && prop.startsWith('u_')) {\n resolver.set(prop, value);\n } else if (isRealRef && parentComRefs?.current) {\n // 非 u_ 开头的属性,保持原有的父级渗透逻辑\n try { parentComRefs.current[prop] = value; } catch {}\n }\n return result;\n },\n\n deleteProperty(obj, prop) {\n const result = Reflect.deleteProperty(obj, prop);\n\n if (typeof prop === 'string' && prop.startsWith('u_')) {\n resolver.delete(prop);\n } else if (typeof prop === 'string' && !prop.startsWith('$') && parentComRefs?.current) {\n try { delete parentComRefs.current[prop]; } catch {}\n }\n return result;\n }\n });\n}\n\n/**\n * 组件输入绑定 Hook:\n * 1. 注册输入执行器\n * 2. 自动重放缓冲指令(精准索引匹配)\n * 3. 生命周期自动化:卸载时自动注销引用渗透路径\n */\nexport function useBindInputs(scope: any, id: string, initialHandlers?: Record<string, any>) {\n const handlersRef = useRef<Record<string, any>>({ ...initialHandlers });\n const { todoPool } = useAppContext();\n const parentSlot = useParentSlot();\n const index = parentSlot?.params?.inputValues?.index ?? 0;\n\n useEffect(() => {\n return () => {\n if (scope?.current) {\n delete scope.current[id];\n }\n };\n }, [scope, id]);\n\n return useMemo(() => {\n const proxy = new Proxy({}, {\n get: (target, pin: string) => {\n if (pin === '__isShadow') return false;\n if (pin === '__isLazyProxy') return false;\n if (pin === 'toJSON') return () => target;\n\n return (arg: any, ...args: any[]) => {\n if (typeof arg === 'function') {\n handlersRef.current[pin] = arg;\n\n // 处理指令重放\n const pendingArgs = todoPool?.pop(id, index, pin);\n if (pendingArgs) {\n if (pin === '_setData') {\n arg(...pendingArgs);\n } else {\n createReactiveInputHandler({ input: arg, value: pendingArgs[0], rels: {}, title: id });\n }\n }\n } else {\n const handler = handlersRef.current[pin];\n if (typeof handler === 'function') {\n return pin === '_setData'\n ? handler(arg, ...args)\n : createReactiveInputHandler({ input: handler, value: arg, rels: {}, title: id });\n }\n }\n };\n }\n });\n\n if (scope?.current) scope.current[id] = proxy;\n if (initialHandlers) {\n Object.keys(initialHandlers).forEach(pin => (proxy as any)[pin](initialHandlers[pin]));\n }\n\n return proxy;\n }, [scope, id, todoPool, index]);\n}\n\n/** 内置通用能力 Hook:_setStyle / _setData / show / hide / showOrHide */\nexport function useBuiltinHandlers(opts: {\n data: any;\n setDynamicStyle: React.Dispatch<React.SetStateAction<Record<string, any>>>;\n setShow: React.Dispatch<React.SetStateAction<boolean>>;\n isPopup: boolean;\n}) {\n const { data, setDynamicStyle, setShow, isPopup } = opts;\n return useMemo(() => {\n const handlers: Record<string, any> = {\n _setStyle: (style: any) => {\n setDynamicStyle((prev) => ({ ...prev, ...style }));\n },\n _setData: (path: string, value: any) => {\n const paths = path.split('.');\n let current = data;\n for (let i = 0; i < paths.length - 1; i++) {\n if (!current[paths[i]]) current[paths[i]] = {};\n current = current[paths[i]];\n }\n current[paths[paths.length - 1]] = value;\n }\n };\n if (!isPopup) {\n Object.assign(handlers, {\n show: () => setShow(true),\n hide: () => setShow(false),\n showOrHide: () => setShow((prev) => !prev),\n });\n }\n return handlers;\n }, [data, setDynamicStyle, setShow, isPopup]);\n}\n\n/**\n * 组件输出绑定 Hook(与 useBindInputs 对称)\n * - 从 props 提取事件函数,创建 eventProxy\n * - 合并 slot outputs,注册到 comRefs.current.$outputs[id]\n */\nexport function useBindOutputs(\n comRefs: any,\n id: string,\n props: any,\n enhancedSlots: any,\n context?: { id: string; name: string; parentSlot?: any }\n) {\n const eventProxy = useMemo(() => {\n const events: Record<string, any> = {};\n Object.keys(props).forEach(key => {\n if (typeof props[key] === 'function') {\n const handler = props[key];\n const wrapped = (original: any) => handler(original);\n wrapped.getConnections = () => [{ id: 'default' }];\n events[key] = wrapped;\n }\n });\n return new Proxy(events, {\n get(target, key: string) {\n if (typeof key === 'string' && key.startsWith('on')) {\n if (target[key]) return target[key];\n const fn: any = () => {};\n fn.getConnections = () => [];\n return fn;\n }\n return target[key];\n }\n });\n }, [props, context]);\n\n if (comRefs?.current?.$outputs) {\n const slotOutputsList = Object.values(enhancedSlots || {})\n .map((slot: any) => slot?.outputs)\n .filter(Boolean);\n\n if (slotOutputsList.length > 0) {\n comRefs.current.$outputs[id] = new Proxy({}, {\n get(_, prop: string) {\n for (const outputs of slotOutputsList) {\n const fn = outputs[prop];\n if (fn) return fn;\n }\n return eventProxy[prop];\n }\n });\n } else {\n comRefs.current.$outputs[id] = eventProxy;\n }\n }\n\n return eventProxy;\n}\n","type EventName = 'rootScroll' | string;\n\nexport class EventEmitter {\n\n private eventsCache = {};\n\n constructor() {\n \n }\n\n addEventListner = (evtName: EventName, listner) => {\n \tif (!this.eventsCache[evtName]) {\n\t\t\tthis.eventsCache[evtName] = new Set([listner])\n \t\treturn;\n \t}\n\t\tthis.eventsCache[evtName].add(listner)\n }\n\n removeEventListner = (evtName: EventName, listner) => {\n \tif (this.eventsCache[evtName]) {\n \t\tthis.eventsCache[evtName].delete(listner);\n \t}\n }\n\n dispatch = (evtName: EventName, detail) => {\n \tif (!this.eventsCache[evtName]) {\n \t\t// console.warn(`no listner on this ${evtName}`);\n \t\treturn;\n \t}\n\n \tlet hasPreventDefault = false;\n\n \t(this.eventsCache[evtName] ?? []).forEach(listner => listner(detail));\n\n \treturn hasPreventDefault;\n }\n}","import { EventEmitter } from './event'\n\nconst isDefine = (val) => val !== undefined && val !== null && val !== ''\n\nclass TabbarInstance {\n list: any = []\n\n eventEmitter = new EventEmitter()\n\n setTabBarBadge = ({ index, text }) => new Promise((resolve, reject) => {\n if (isDefine(index)) {\n this.list[index].active = true\n this.list[index].activeText = text\n\n console.log('change', this.list)\n this.eventEmitter.dispatch('change', this.list)\n }\n \n })\n\n hideTabBarRedDot = ({ index }) => new Promise((resolve, reject) => {\n if (isDefine(index)) {\n this.list[index].active = false\n this.list[index].activeText = 0\n\n this.eventEmitter.dispatch('change', this.list)\n }\n })\n\n removeTabBarBadge = this.hideTabBarRedDot\n\n initWithLength = len => {\n this.list = new Array(len).fill(t => null).map(() => ({ active: false, activeText: '' }))\n }\n}\n\nexport const tabbarIns = new TabbarInstance()","import { useRef, useState, useMemo } from 'react'\n// @ts-ignore\nimport * as Taro from '@tarojs/taro'\nimport { tabbarIns } from \"./tabbar\"\nimport { getCoreRuntime } from '../runtime'\nimport { proxyRefs } from './hooks'\nimport { TodoPool } from './pool'\n\nexport interface ComContextStore {\n comRefs: any;\n $vars: any;\n $fxs: any;\n appContext: any; \n popupState: {\n visible: boolean;\n name: string;\n value: any;\n controller: any;\n };\n setPopupState: (state: any) => void;\n todoPool: TodoPool;\n}\n\nexport function useAppCreateContext(id: string): ComContextStore {\n const { request, rootConfig } = getCoreRuntime();\n const todoPool = useMemo(() => new TodoPool(), []);\n const comRefs = useRef<any>(proxyRefs({ $inputs: {}, $outputs: {} }, undefined, todoPool));\n const $vars = useRef<any>({});\n const $fxs = useRef<any>({});\n\n const [popupState, setPopupState] = useState({\n visible: false,\n name: '',\n value: null,\n controller: null\n });\n\n const appContext = useRef({\n canvas: {\n id,\n },\n runtime: {\n debug: false,\n },\n env: {\n runtime: true,\n request: request\n ? (connector: any, params: any, config: any) => request(connector, params, config, { $vars })\n : () => Promise.reject('request 未配置'),\n tabbar: tabbarIns,\n uploadFile: (params: any) => {\n let header = {};\n let mybricksGlobalHeaders = Taro.getStorageSync(\n \"_MYBRICKS_GLOBAL_HEADERS_\"\n );\n if (mybricksGlobalHeaders) {\n header = {\n ...mybricksGlobalHeaders,\n ...header,\n };\n }\n\n /**\n * 如果 url 不以 http 开头,添加默认域名\n */\n if (\n !/^(http|https):\\/\\/.*/.test(params.url) &&\n rootConfig?.status?.defaultCallServiceHost\n ) {\n params.url = `${rootConfig?.status?.defaultCallServiceHost}${params.url}`;\n }\n\n const { success, fail, ...rest } = params\n Taro.uploadFile({\n ...rest,\n success: (res: any) => success?.(res),\n fail: (err: any) => fail?.(err),\n })\n },\n },\n rootScroll: {},\n edit: false,\n isH5: false,\n isDesigner: false,\n isPreview: false,\n isRelease: false,\n isDebug: false,\n isLocal: false,\n isTest: false,\n tabBar: [],\n useTabBar: false,\n }).current;\n\n return useMemo(() => ({\n comRefs,\n $vars,\n $fxs,\n todoPool,\n appContext,\n popupState,\n setPopupState\n }), [popupState]);\n}\n","import React, { useMemo, useRef, useState } from \"react\";\nimport ComContext, { SlotProvider, useAppContext, useParentSlot } from \"./ComContext\";\nimport { createReactiveInputHandler } from \"../mybricks/createReactiveInputHandler\";\nimport { proxyRefs } from \"./hooks\";\nimport { TodoPool } from \"./pool\";\n\ntype AnyRecord = Record<string, any>;\n\n/** Channel Proxy 类型 */\ntype ChannelProxy = Record<string, (arg: any) => any>;\n\n/** Slot 渲染函数类型 */\ntype SlotRenderFunction = React.ComponentType<{\n inputValues?: Record<string, any>;\n [key: string]: any;\n}>;\n\ntype SlotState = {\n inputs: ChannelProxy;\n outputs: ChannelProxy;\n _inputs: ChannelProxy;\n /** scopeId -> scoped comRefs(每个 scope 一套,避免列表多实例覆盖) */\n _scopedComRefs: Record<string, any>;\n _render?: SlotRenderFunction;\n /** 存储 inputValues,当 inputs 被调用时更新 */\n _inputValues: Record<string, any>;\n /** 缓存上次合并结果,避免引用变化导致 useEffect 死循环 */\n _lastMergedParams?: any;\n render: (params?: any) => React.ReactNode;\n};\n\n/** 浅比较两个对象的第一层 key-value */\nfunction shallowEqual(a: any, b: any): boolean {\n if (a === b) return true;\n if (!a || !b) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n return keysA.every(key => a[key] === b[key]);\n}\n\n/**\n * 合并 slot 参数\n * 只有当有实际的 inputValues 时才合并,否则保持 undefined 以便从父级继承\n */\nfunction mergeSlotParams(\n stateInputValues: Record<string, any> | undefined,\n params?: any\n): any {\n const hasStateInputValues = stateInputValues && Object.keys(stateInputValues).length > 0;\n const hasParamsInputValues = params?.inputValues && Object.keys(params.inputValues).length > 0;\n\n if (!hasStateInputValues && !hasParamsInputValues) {\n return params || {};\n }\n\n return {\n ...(params || {}),\n inputValues: {\n ...(stateInputValues || {}),\n ...(params?.inputValues || {}),\n },\n };\n}\n\n/**\n * 生成作用域 ID\n */\nfunction createScopeId(id: string, slotKey: string, rawScope: any): string {\n return `${id}.${slotKey}::${String(rawScope)}`;\n}\n\n/**\n * 创建一个具有\"向上渗透\"和\"隔离 Todo 池\"能力的 comRefs 对象\n */\nfunction createPenetratingComRefs(parentComRefs: any, todoPool?: TodoPool, index: number = 0) {\n const localTarget = { $inputs: {}, $outputs: {}, $index: index };\n return { current: proxyRefs(localTarget, parentComRefs, todoPool) };\n}\n\nfunction SlotParamsBridge(props: {\n state: SlotState;\n params: any;\n render?: any;\n children?: React.ReactNode;\n}) {\n const parentSlot = useParentSlot<any>();\n const mergedParams =\n props.params?.inputValues === undefined && parentSlot?.params?.inputValues\n ? { ...(props.params || {}), inputValues: parentSlot.params.inputValues }\n : props.params;\n\n const SlotComp = props.render;\n const content = SlotComp ? <SlotComp {...(mergedParams || {})} /> : props.children ?? null;\n\n return <SlotProvider value={{ ...props.state, params: mergedParams }}>{content}</SlotProvider>;\n}\n\nfunction createChannelProxy(title: string, onInputCall?: (pin: string, value: any) => void) {\n const handlersMap: Record<string, any> = {};\n return new Proxy(\n {},\n {\n get: (_t, pin: string) => {\n return (arg: any) => {\n if (typeof arg === \"function\") {\n handlersMap[pin] = arg;\n return;\n }\n // 通知外部有输入调用(用于 scope 插槽的 inputValues 更新)\n onInputCall?.(pin, arg);\n const handler = handlersMap[pin];\n if (typeof handler === \"function\") {\n return createReactiveInputHandler({\n input: handler,\n value: arg,\n rels: {},\n title,\n });\n }\n };\n },\n },\n );\n}\n\nexport function useEnhancedSlots(rawSlots: any, id: string) {\n const { comRefs: parentComRefs, todoPool } = useAppContext();\n const slotStoreRef = useRef<Record<string, SlotState>>({});\n // 用于触发重渲染的状态\n const [, forceUpdate] = useState({});\n\n return useMemo(() => {\n if (!rawSlots) return {};\n const nextSlots: AnyRecord = {};\n\n Object.entries(rawSlots).forEach(([slotKey, slotDef]: any) => {\n // 创建输入回调,当 inputs 被调用时更新 inputValues 并触发重渲染\n const onInputCall = (pin: string, value: any) => {\n const state = slotStoreRef.current[slotKey];\n if (state) {\n if (!state._inputValues) state._inputValues = {};\n state._inputValues[pin] = value;\n // 触发重渲染\n forceUpdate({});\n }\n };\n\n const state =\n slotStoreRef.current[slotKey] ||\n (slotStoreRef.current[slotKey] = {\n inputs: createChannelProxy(`${id}.${slotKey}.inputs`, onInputCall),\n outputs: createChannelProxy(`${id}.${slotKey}.outputs`),\n _inputs: createChannelProxy(`${id}.${slotKey}._inputs`),\n _scopedComRefs: {},\n _inputValues: {},\n _render: undefined,\n render: (params?: any) => {\n const r = state._render;\n const mergedParams = mergeSlotParams(state._inputValues, params);\n\n // 浅比较 inputValues,内容不变时复用上次引用,避免 useEffect 死循环\n if (\n state._lastMergedParams &&\n shallowEqual(mergedParams?.inputValues, state._lastMergedParams?.inputValues)\n ) {\n // 内容没变,复用旧引用\n } else {\n state._lastMergedParams = mergedParams;\n }\n const stableParams = state._lastMergedParams;\n\n // 只有存在 key 或 index 时才认为是\"多实例作用域插槽\",需要实例隔离\n const rawScope = stableParams?.inputValues?.index ?? params?.key;\n if (rawScope === undefined || rawScope === null) {\n return (\n <SlotParamsBridge state={state} params={stableParams} render={r} />\n );\n }\n\n const scopeId = createScopeId(id, slotKey, rawScope);\n const index = stableParams?.inputValues?.index ?? 0;\n const scopedComRefs =\n (state._scopedComRefs[scopeId] ||= createPenetratingComRefs(parentComRefs, todoPool, index));\n\n return (\n <ScopedComContextProvider comRefs={scopedComRefs} scopeId={scopeId}>\n <SlotParamsBridge state={state} params={stableParams} render={r} />\n </ScopedComContextProvider>\n );\n },\n });\n\n state._render = slotDef?.render;\n nextSlots[slotKey] = {\n ...(slotDef || {}),\n render: state.render,\n inputs: state.inputs,\n outputs: state.outputs,\n _inputs: state._inputs,\n };\n });\n\n return nextSlots;\n }, [rawSlots, id, parentComRefs, todoPool]);\n}\n\nexport function ScopedComContextProvider(props: {\n comRefs?: any;\n scopeId: string;\n children: React.ReactNode;\n}) {\n const parent = useAppContext();\n const value = useMemo(() => {\n return {\n ...parent,\n comRefs: props.comRefs || parent.comRefs,\n $scopeId: props.scopeId,\n } as any;\n }, [parent, props.comRefs, props.scopeId]);\n\n return <ComContext.Provider value={value}>{props.children}</ComContext.Provider>;\n}\n\n/** parentSlot 解析:props 优先,其次用 SlotProvider 注入的 context */\nexport function useResolvedParentSlot(parentSlotProp: any) {\n const parentSlotFromCtx = useParentSlot();\n return parentSlotProp ?? parentSlotFromCtx;\n}\n","import React, { useState, useEffect } from 'react';\n// @ts-ignore 运行时由宿主项目提供 @tarojs/components\nimport { View } from '@tarojs/components';\nimport { useModel, useBindInputs, useBuiltinHandlers, useBindOutputs, subscribePopupRouter, closeActivePopupRouter } from './index';\nimport { useAppCreateContext } from './useContext';\nimport ComContext, { useAppContext } from './ComContext';\nimport { useEnhancedSlots, useResolvedParentSlot } from './slots';\n// @ts-ignore 运行时由宿主项目提供 @tarojs/taro\nimport { useTabItemTap } from '@tarojs/taro';\n\ninterface WithComProps {\n component: React.ComponentType<any>;\n intputRef?: any;\n id?: string;\n data?: any;\n className?: string;\n style?: any;\n [key: string]: any;\n}\n\nexport const WithCom: React.FC<WithComProps> = (props) => {\n const { component: Component, id = '', data, className, style, ...rest } = props;\n const { comRefs, appContext } = useAppContext();\n const env = appContext; //TODO: 需要根据实际情况修改\n\n const isPopup = (Component as any).isPopup;\n const [show, setShow] = useState(true);\n const [dynamicStyle, setDynamicStyle] = useState({});\n\n\n //数据模型\n const _data = useModel(data || {});\n\n const { slots: rawSlots, parentSlot: parentSlotProp, ...restProps } = rest as any;\n const parentSlot = useResolvedParentSlot(parentSlotProp);\n const enhancedSlots = useEnhancedSlots(rawSlots, id);\n\n // ---- inputs ----\n const handlers = useBuiltinHandlers({ data: _data, setDynamicStyle, setShow, isPopup });\n const inputProxy = useBindInputs(comRefs, id, handlers);\n\n // ---- outputs ----\n const outputProxy = useBindOutputs(comRefs, id, restProps, enhancedSlots, {\n id, name: props.name || id, parentSlot\n });\n\n // ---- render ----\n const jsx = (\n <Component\n {...restProps}\n inputs={inputProxy}\n outputs={outputProxy}\n slots={enhancedSlots}\n parentSlot={parentSlot}\n data={_data}\n env={env}\n id={id}\n style={style}\n />\n );\n\n if (parentSlot?.params?.itemWrap) {\n return parentSlot.params.itemWrap({\n id, name: props.name || id, jsx,\n def: (Component as any).def,\n inputs: inputProxy, outputs: outputProxy, style\n });\n }\n\n return (\n show || isPopup ? (\n <View id={id} className={className} style={{ ...style, ...dynamicStyle }}>\n {jsx}\n {props.children}\n </View>\n ) : null\n );\n};\n\nexport const WithWrapper = (id: string, Component: React.ComponentType<any>) => {\n return function WrappedComponent(props: any) {\n const contextStore = useAppCreateContext(id);\n const { setPopupState } = contextStore;\n const isPopup = (Component as any).isPopup;\n\n // 通过发布订阅模式解耦弹窗状态变化\n useEffect(() => {\n return subscribePopupRouter((state) => setPopupState(state));\n }, [setPopupState]);\n\n // 点击 TabBar 时自动关闭弹窗(自定义 TabBar 或原生 TabBar 点击均会触发)\n useTabItemTap(() => {\n if (isPopup) return;\n closeActivePopupRouter();\n });\n\n return (\n <ComContext.Provider value={contextStore}>\n <Component {...props} />\n </ComContext.Provider>\n );\n };\n};\n","import React from 'react';\nimport { View } from '@tarojs/components';\nimport { useAppContext } from './ComContext';\n\ninterface PopupRendererProps {\n popupMap: Record<string, any>;\n}\n\nexport const PopupRenderer: React.FC<PopupRendererProps> = ({ popupMap }) => {\n const { popupState } = useAppContext();\n\n const ActivePopup = popupState.visible && popupMap[popupState.name] \n ? popupMap[popupState.name] \n : null;\n\n if (!ActivePopup) return <View></View>;\n\n return (\n <View \n className=\"global-popup-container\" \n style={{ \n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 999999,\n pointerEvents: 'auto',\n }}\n >\n <View style={{ width: '100%', height: '100%' }}>\n <ActivePopup />\n </View>\n </View>\n );\n};\n\n","import { Page } from '../mybricks';\n\n/**\n * 弹窗状态管理(解耦版)\n * 弹窗在 Taro 中被视为组件,不走路由栈\n */\nclass PopupStore {\n private activePopup: any = null;\n private listeners: Set<(state: any) => void> = new Set();\n\n /** 订阅弹窗状态变化 */\n subscribe(listener: (state: any) => void) {\n this.listeners.add(listener);\n // 返回取消订阅函数\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n private notify() {\n this.listeners.forEach((l) =>\n l(\n this.activePopup || {\n visible: false,\n name: '',\n value: null,\n controller: null,\n },\n ),\n );\n }\n\n /** 获取弹窗参数 */\n getParams(name: string) {\n if (this.activePopup && this.activePopup.name === name) {\n return {\n value: this.activePopup.value,\n controller: this.activePopup.controller,\n };\n }\n return { value: null };\n }\n\n /** 获取当前激活的弹窗名称 */\n getActiveName(): string | undefined {\n return this.activePopup?.name;\n }\n\n /** 打开弹窗 */\n push(name: string, { value, controller }: any) {\n this.activePopup = { visible: true, name, value, controller };\n this.notify();\n }\n\n /** 行为同 push */\n replace(name: string, params: any) {\n this.push(name, params);\n }\n\n /** 关闭弹窗 */\n pop() {\n this.activePopup = null;\n this.notify();\n }\n}\n\nconst popupStore = new PopupStore();\n\n/**\n * 订阅弹窗状态变化(统一入口,避免外部依赖内部实现细节)\n */\nexport const subscribePopupRouter = (listener: (state: any) => void) => {\n return popupStore.subscribe(listener);\n};\n\n/** 弹窗控制器(命名与文件名保持一致) */\nexport const popupRouter = new Page(popupStore);\n\n/**\n * 关闭当前激活的弹窗(用于 TabBar 点击等场景)\n * 不需要知道弹窗 id\n */\nexport const closeActivePopupRouter = () => {\n const name = popupStore.getActiveName();\n if (!name) return;\n // 走 Page.close,保证 close/commit/cancel 等控制器语义保持一致\n popupRouter.close(name);\n};\n\n\n","function callCon({ env, data, inputs, outputs, onError }, params = {}) {\n if (data.connector || data.dynamicConfig) {\n try {\n let finnalConnector = {\n ...(data.connector || {}),\n outputSchema: data.outputSchema,\n };\n\n if (data.dynamicConfig) {\n finnalConnector = data.dynamicConfig;\n }\n\n if (data.timeout) {\n finnalConnector.timeout = data.timeout;\n }\n\n env\n .request(finnalConnector, params, {\n ...(data.connectorConfig || {}),\n outputSchema: finnalConnector?.outputSchema,\n isMultipleOutputs: true,\n })\n .then((val) => {\n outputs[val?.__OUTPUT_ID__ ?? \"then\"](\n val?.__ORIGIN_RESPONSE__ ?? val\n );\n })\n .catch((err) => {\n outputs[\"catch\"](err);\n });\n } catch (ex) {\n console.error(ex);\n\n outputs[\"catch\"](`执行错误 ${ex.message || ex}`);\n //onError(ex.message)\n }\n } else {\n outputs[\"catch\"](`没有选择接口`);\n }\n}\n\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null) return false;\n\n let proto = Object.getPrototypeOf(value);\n if (proto === null) return true; // 没有原型的对象也视为普通对象\n\n // 检查对象是否是由Object构造函数创建的\n return proto === Object.prototype;\n}\n\nexport default function ({ env, data, inputs, outputs, onError }) {\n if (!env.runtime) {\n return;\n }\n\n if (data.immediate) {\n callCon({ env, data, outputs });\n } else {\n inputs[\"call\"]((params) => {\n // 如果 params 不是 对象,则转换为空对象\n if (!isPlainObject(params)) {\n params = {};\n }\n\n callCon({ env, data, outputs, onError }, params);\n });\n }\n}\n","import * as Taro from \"@tarojs/taro\";\n\nexport type DataType = {\n dynamic?: boolean;\n header?: Record<string, string>;\n};\n\nexport interface Inputs {\n call?: (fn: (config: DataType[\"header\"], relOutputs?: any) => void) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n\n inputs.call?.((obj, outputRels) => {\n try {\n if (data.dynamic == true || data.dynamic == void 0) {\n if (typeof obj === \"object\" && obj !== null && !Array.isArray(obj)) {\n Taro.setStorageSync(\"_MYBRICKS_GLOBAL_HEADERS_\", obj);\n outputRels[\"then\"](obj);\n }\n } else {\n if (\n typeof data.header === \"object\" &&\n data.header !== null &&\n !Array.isArray(data.header)\n ) {\n Taro.setStorageSync(\"_MYBRICKS_GLOBAL_HEADERS_\", data.header);\n outputRels[\"then\"](data.header);\n }\n }\n } catch (error: any) {\n console.error(\"设置全局请求头失败:\", error);\n }\n });\n};\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","\n\n\nexport enum FormatType {\n NONE = 'NONE',\n KEYMAP = 'KEYMAP',\n TIME_TEMPLATE = 'TIME_TEMPLATE',\n TIME_CUSTOM = 'TIME_CUSTOM',\n // PRICE_CUSTOM = 'PRICE_CUSTOM'\n}\n\nconst builtInFormatters = {\n [FormatType.NONE]: {\n label: '保持原值',\n name: FormatType.NONE,\n },\n [FormatType.KEYMAP]: {\n label: '枚举映射',\n name: FormatType.KEYMAP,\n genEditor() {\n return {\n type: 'map'\n }\n },\n },\n [FormatType.TIME_TEMPLATE]: {\n label: '时间戳转化',\n name: FormatType.TIME_TEMPLATE,\n genEditor(options) {\n return {\n type: 'select',\n description: '待转换数据格式为字符串或数字型时间戳',\n options: {\n options: [\n {\n label: '年-月-日 时:分:秒',\n value: 'YYYY-MM-DD HH:mm:ss'\n },\n {\n label: '月-日 时:分:秒',\n value: 'MM-DD HH:mm:ss'\n },\n {\n label: '年-月-日',\n value: 'YYYY-MM-DD'\n },\n {\n label: '月-日',\n value: 'MM-DD'\n },\n {\n label: '时:分:秒',\n value: 'HH:mm:ss'\n }\n ],\n ...options\n }\n };\n },\n },\n [FormatType.TIME_CUSTOM]: {\n label: '自定义时间戳转化',\n name: FormatType.TIME_CUSTOM,\n genEditor(options) {\n return {\n type: 'text',\n description: '待转换数据格式为字符串或数字型时间戳',\n options: {\n placeholder: 'YYYY-MM-DD HH:mm:ss',\n ...options\n }\n };\n },\n }\n}\n\nconst createFormatterSelector = (formatters, accessor) => {\n return {\n title: '格式化类型',\n type: 'select',\n options: formatters.map((item) => ({\n label: item.label,\n value: item.name\n })),\n value: {\n get(info) {\n let data = accessor?.get(info) || {}\n return data?.formatterName || FormatType.NONE\n },\n set(info, v) {\n const data = accessor?.get(info) || {}\n // 设置当前格式化方法\n data.formatterName = v\n accessor.set(info, data)\n }\n }\n }\n}\n\n\nexport const createDataFormatEditor = ({ title, value, formatters }) => {\n\n const editors = (formatters ?? []).map(item => {\n const findFormatter = builtInFormatters[item.formatter];\n\n const name = item.formatter;\n const accessor = value;\n const defaultValue = item.defaultValue;\n\n if (!findFormatter?.genEditor) {\n return null\n }\n \n return {\n title: '格式化参数配置',\n ifVisible(info) {\n const data = value.get(info)\n return data?.formatterName === name;\n },\n value: {\n get(info) {\n // 获取到存储在组件上当前格式器的数据\n const values = accessor?.get(info)?.values || {}\n if (typeof values?.[name] === 'undefined') {\n values[name] = defaultValue\n }\n return values[name]\n },\n set(info, value) {\n const data = accessor?.get(info) || {};\n if (!data.values) {\n data.values = {};\n }\n const values = data.values\n // 设置当前格式器的数据\n values[name] = value\n\n console.warn('name', name)\n // 设置当前格式化方法\n accessor.set(info, data)\n }\n },\n ...findFormatter?.genEditor(item.options ?? {}),\n };\n }).filter(t => !!t)\n\n return {\n title,\n items: [\n {\n title: '空值处理',\n type: 'Switch',\n description: '开启后,可将输入值为undefined、null、空字符串转换成预期值',\n value: {\n get(info) {\n const values = value?.get(info) || {}\n return values?.['voidHandle'] || false;\n },\n set(info, switchValue: boolean) {\n const values = value?.get(info) || {}\n values['voidHandle'] = switchValue\n value.set(info, values)\n }\n }\n },\n {\n title: '空值替代字符',\n type: 'Text',\n description: '将空值用配置的字符替代',\n ifVisible(info) {\n const values = value?.get(info) || {}\n return values?.['voidHandle'] || false;\n },\n value: {\n get(info) {\n const values = value?.get(info) || {}\n if (typeof values?.['voidTo'] === 'undefined') {\n values['voidTo'] = '';\n }\n return values?.['voidTo'];\n },\n set(info, textValue: string) {\n const values = value?.get(info) || {}\n values['voidTo'] = textValue\n value.set(info, values)\n }\n }\n },\n createFormatterSelector((formatters ?? []).map(item => builtInFormatters[item.formatter]), value),\n ...editors,\n ]\n }\n}","type IsType = (value: any) => boolean\n\nfunction isType(type: string): IsType {\n return value => Object.prototype.toString.call(value) === `[object ${type}]`\n}\n\n/**\n * 判断是否是未定义\n * @param value 入参cd\n * @returns true/false,undefined、null返回true\n */\nexport function isUndef(value: unknown): value is undefined | null {\n return value === undefined || value === null\n}\n\n/**\n * 判断是否为空 undefined、null、空字符串返回true\n * @param value 入参\n */\nexport function isEmpty(value: unknown): value is undefined | null | '' {\n return value === undefined || value === null || value === ''\n}\n\n/**\n * 判断是否为Number类型\n * @param value 入参\n */\nexport function isNumber(value: unknown): value is number {\n return isType('Number')(value)\n}\n\n/**\n * 判断是否为String类型\n * @param value 入参\n */\nexport function isString(value: unknown): value is string {\n return isType('String')(value)\n}\n\n/**\n * 判断是否为Error类型\n * @param value 入参\n */\nexport function isError(value: unknown): value is Error {\n return isType('Error')(value)\n}\n\n/**\n * 判断是否为Array类型\n * @param value 入参\n */\nexport function isArray(value: unknown): value is unknown[] {\n return isType('Array')(value)\n}\n\n/**\n * 判断是否为Function类型,async function为true\n * @param value 入参\n */\nexport function isFunction(value: unknown): value is Function {\n return typeof value === 'function'\n}\n\n/**\n * 判断是否为Date类型\n * @param value 入参\n */\nexport function isDate(value: unknown): value is Date {\n return isType('Date')(value)\n}\n\n/**\n * 判断是否为Boolean 类型\n * @param value 入参\n */\nexport function isBoolean(value: unknown): value is boolean {\n return isType('Boolean')(value)\n}\n\n/**\n * 判断是否为严格Object类型\n * @param value 入参\n */\nexport function isObject(value: unknown): value is Object {\n return isType('Object')(value)\n}\n\n/**\n * 判断是否为泛object,不包括null\n * @param value 入参\n */\nexport function isWideObject(value: unknown): boolean {\n return value !== null && typeof value === 'object'\n}\n\n/**\n * 是否为FormData实例 不支持FormData时返回false\n * @param value - 入参\n */\nexport function isFormData(value: unknown): value is FormData {\n return typeof FormData !== 'undefined' && value instanceof FormData\n}\n\n/**\n * 是否为URLSearchParams实例 不支持URLSearchParams时返回false\n * @param value - 入参\n */\nexport function isURLSearchParams(value: unknown): value is URLSearchParams {\n return (\n typeof URLSearchParams !== 'undefined' &&\n value instanceof URLSearchParams\n )\n}\n","import dayjs from \"dayjs\";\nimport { FormatType } from \"../tools/data-format\";\nimport { isUndef, isString, isNumber, isDate } from \"../tools/core\";\n\nexport type DataType = {\n formatData: {\n voidHandle: boolean;\n voidTo: string;\n formatterName: keyof typeof FormatType;\n values: Record<keyof typeof FormatType, any>;\n };\n};\n\nexport interface Inputs {\n call?: (fn: (config: any) => void) => void;\n}\n\nexport interface Outputs {\n success: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nconst transfromData = (value, formatType, config) => {\n let result = value;\n if (formatType === FormatType.NONE) {\n return result;\n }\n\n if (formatType === FormatType.KEYMAP) {\n return config?.[result] ?? result;\n }\n\n if (\n formatType === FormatType.TIME_TEMPLATE ||\n formatType === FormatType.TIME_CUSTOM\n ) {\n return dayjs(value).format(config);\n }\n\n return result;\n};\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs?.[\"call\"]?.((inputValue) => {\n let resValue = inputValue;\n\n const { formatterName, values } = data.formatData ?? {};\n\n if (isUndef(inputValue) && data?.formatData?.voidHandle) {\n resValue = data?.formatData?.voidTo;\n outputs[\"success\"](resValue);\n return;\n }\n\n if (!isString(inputValue) && !isNumber(inputValue) && !isDate(inputValue)) {\n outputs[\"success\"](resValue);\n return;\n }\n\n resValue = transfromData(\n inputValue,\n formatterName,\n values?.[formatterName],\n );\n outputs[\"success\"](resValue);\n return;\n });\n};\n","export type DataType = {\n delay?: number; // 延迟时间(毫秒)\n};\n\nexport interface Inputs {\n delay?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n cancel?: (fn: (config: {}, relOutputs?: any) => void) => void;\n /**\n * 兼容老协议:直接传入任意 payload,延迟后从 outputs.trigger 原样输出\n *(生成器里常见 inputs:[\"trigger\"], outputs:[\"trigger\"])\n */\n trigger?: (fn: (payload: any, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onStart: (value?: any) => void;\n onExecute: (value?: any) => void;\n onCancel: (value?: any) => void;\n /** 兼容老协议 */\n trigger?: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n let timeoutId: any = null;\n const inputPins = new Set(Object.keys(inputs as any));\n const outputPins = new Set(Object.keys(outputs as any));\n const hasIn = (pin: string) => inputPins.has(pin);\n const hasOut = (pin: string) => outputPins.has(pin);\n\n const clear = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n\n // 兼容:inputs.trigger(payload) -> 延迟后 outputs.trigger(payload)\n if (hasIn(\"trigger\")) inputs.trigger?.((payload: any) => {\n try {\n // 允许 payload 自带 delay 覆盖;否则用 data.delay;再否则 1000\n const delay = payload?.delay || data.delay || 1000;\n\n clear();\n\n outputs.onStart?.({ delay, timestamp: Date.now() });\n\n timeoutId = setTimeout(() => {\n if (hasOut(\"trigger\")) outputs.trigger?.(payload);\n outputs.onExecute?.({ delay, timestamp: Date.now() });\n timeoutId = null;\n }, delay);\n } catch (error: any) {\n console.error('延迟执行失败:', error);\n clear();\n }\n });\n\n if (hasIn(\"delay\")) inputs.delay?.((val: DataType) => {\n try {\n const delay = val?.delay || data.delay || 1000;\n\n clear();\n\n outputs.onStart({ delay, timestamp: Date.now() });\n\n timeoutId = setTimeout(() => {\n outputs.onExecute({ delay, timestamp: Date.now() });\n timeoutId = null;\n }, delay);\n } catch (error: any) {\n console.error('延迟执行失败:', error);\n clear();\n }\n });\n\n if (hasIn(\"cancel\")) inputs.cancel?.(() => {\n try {\n if (timeoutId) {\n clear();\n outputs.onCancel('延迟任务已取消');\n } else {\n outputs.onCancel('没有正在执行的延迟任务');\n }\n } catch (error: any) {\n console.error('取消延迟失败:', error);\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {};\n\nexport interface Inputs {\n setStorage?: (fn: (config: any, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.setStorage?.((props: any) => {\n try {\n Object.keys(props).forEach((key) => {\n Taro.setStorageSync(key, props[key]);\n });\n\n outputs[\"onSuccess\"](props);\n } catch (e) {\n outputs[\"onFail\"](props);\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {\n key?: string;\n useDynamicKey?: boolean;\n};\n\nexport interface Inputs {\n getStorage?: (fn: (key: string, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onComplete: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.getStorage?.((key) => {\n let myKey = data.useDynamicKey ? key : data.key;\n\n if (!myKey || typeof myKey !== \"string\") {\n outputs[\"onComplete\"](null);\n return;\n }\n\n try {\n let value = Taro.getStorageSync(myKey);\n outputs[\"onComplete\"](value);\n } catch (e) {\n outputs[\"onComplete\"](null);\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\nimport { isObject } from \"../tools/core\";\n\nexport enum ExtLinkype {\n miniapp_open = \"miniapp_open\",\n parent_open = \"parent_open\",\n parent_back = \"parent_back\",\n web_open = \"web_open\",\n}\n\nexport enum OpenType {\n navigate = \"navigate\",\n redirect = \"redirect\",\n relaunch = \"relaunch\",\n}\n\nexport type DataType = {\n url?: string;\n dynamic?: boolean;\n type: ExtLinkype;\n openType: OpenType;\n};\n\nexport type ValType = {\n url?: string;\n} & Record<string, any>;\n\nexport interface Inputs {\n open?: (fn: (config: ValType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nconst runtimeEnv = () => {\n const isH5 =\n Taro.getEnv() === Taro.ENV_TYPE.WEB || Taro.getEnv() === \"Unknown\";\n if (isH5) {\n if (window.__wxjs_environment === \"miniprogram\") {\n return \"IN_WEAPP\";\n }\n if (/(MicroMessenger)/i.test(navigator.userAgent)) {\n return \"IN_WEIXIN\";\n }\n return Taro.ENV_TYPE.WEB;\n } else {\n return Taro.getEnv();\n }\n};\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs?.[\"open\"]?.((value) => {\n const validValue = isObject(value) ? value : {};\n const finalUrl = validValue?.url ?? data.url;\n\n const _env = runtimeEnv();\n switch (true) {\n case data.type === ExtLinkype.parent_open: {\n const params = {\n url: finalUrl,\n success: () => {\n outputs[\"onSuccess\"]();\n },\n fail: () => {\n outputs[\"onFail\"]();\n },\n };\n if (_env === \"IN_WEAPP\" && wx?.miniProgram) {\n if (data.openType === OpenType.redirect) {\n wx.miniProgram?.redirectTo?.(params);\n } else {\n wx.miniProgram?.navigateTo?.(params);\n }\n }\n break;\n }\n case data.type === ExtLinkype.parent_back: {\n if (_env === \"IN_WEAPP\" && wx?.miniProgram?.navigateBack) {\n wx.miniProgram.navigateBack({\n success: () => {\n outputs[\"onSuccess\"]();\n },\n fail: () => {\n outputs[\"onFail\"]();\n },\n });\n }\n break;\n }\n case data.type === ExtLinkype.web_open: {\n // H5环境下\n if (\n (Taro.getEnv() === Taro.ENV_TYPE.WEB ||\n Taro.getEnv() === \"Unknown\") &&\n finalUrl\n ) {\n if (data.openType === OpenType.redirect) {\n window.location.href = finalUrl;\n outputs[\"onSuccess\"]();\n } else {\n // 微信小程序内不支持 window.open\n window.open(finalUrl);\n outputs[\"onSuccess\"]();\n }\n }\n break;\n }\n\n case data.type === ExtLinkype.miniapp_open: {\n Taro.navigateToMiniProgram({\n ...validValue,\n success(e) {\n outputs[\"onSuccess\"](e);\n },\n fail(e) {\n outputs[\"onFail\"](e);\n },\n });\n\n // if (_env === \"IN_WEIXIN\") {\n // Taro.navigateToMiniProgram({\n // ...validValue,\n // success(e) {\n // outputs[\"onSuccess\"](e);\n // },\n // fail(e) {\n // outputs[\"onFail\"](e);\n // },\n // });\n // }\n break;\n }\n default:\n break;\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {\n action?: \"redirectTo\" | \"navigateTo\" | \"reLaunch\";\n};\n\nexport interface Inputs {\n goto?: (fn: (config: string, relOutputs?: any) => void) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n\n inputs.goto?.((val) => {\n try {\n if (data.action === \"redirectTo\") {\n Taro.redirectTo({\n url: val,\n });\n } else if (data.action === \"navigateTo\") {\n Taro.navigateTo({\n url: val,\n });\n } else if (data.action === \"reLaunch\") {\n Taro.reLaunch({\n url: val,\n });\n }\n } catch (error: any) {\n console.error(\"路由跳转失败:\", error);\n }\n });\n};\n","import Taro from '@tarojs/taro';\n\nexport type DataType = {\n delta?: number;\n animation?: boolean;\n};\n\nexport interface Inputs {\n back?: (fn: (config: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.back?.((val: DataType) => {\n try {\n const delta = val?.delta ?? data.delta ?? 1;\n const animation = val?.animation !== undefined ? val.animation : data.animation ?? true;\n\n // 获取当前页面栈信息\n const pages = Taro.getCurrentPages();\n const currentIndex = pages.length - 1;\n\n if (currentIndex === 0) {\n // 如果是首页,返回失败\n outputs.onFail('已经是首页,无法返回');\n return;\n }\n\n if (delta > currentIndex) {\n // 如果返回层数超过页面栈深度,返回失败\n outputs.onFail(`页面栈深度不足,无法返回${delta}层`);\n return;\n }\n\n if (delta === 1) {\n // 返回上一页\n Taro.navigateBack({\n delta: 1,\n animation,\n success: () => outputs.onSuccess({ delta: 1 }),\n fail: (err) => outputs.onFail(err.errMsg || '返回失败'),\n });\n } else {\n // 多层返回,需要先获取目标页面信息\n const targetPage = pages[currentIndex - delta];\n if (targetPage) {\n Taro.navigateBack({\n delta,\n animation,\n success: () => outputs.onSuccess({ delta, targetPage: targetPage.route }),\n fail: (err) => outputs.onFail(err.errMsg || '返回失败'),\n });\n } else {\n outputs.onFail('目标页面不存在');\n }\n }\n } catch (error: any) {\n console.error('返回操作失败:', error);\n outputs.onFail(error?.message || '返回操作失败');\n }\n });\n};\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {}\n\nexport interface Inputs {\n call?: (fn: (config: DataType, relOutputs?: any) => void) => void\n}\n\nexport interface Outputs {\n onComplete: (value?: any) => void\n}\n\ninterface IOContext {\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.call?.(() => {\n try {\n let router = Taro.getCurrentInstance()?.router\n\n let path = router?.path || ''\n let query = router?.params || {}\n let scene = Taro.getEnterOptionsSync().scene || 0\n outputs['onComplete']({ path, query, scene })\n } catch (error: any) {\n console.error('获取路由信息失败:', error)\n }\n })\n}\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {\n dynamic?: boolean;\n title?: string;\n duration?: number;\n mask?: boolean;\n asynchronous?: boolean;\n icon?: \"success\" | \"error\" | \"loading\" | \"none\";\n};\n\nexport interface Inputs {\n showToast?: (\n fn: (config: DataType | string, relOutputs?: any) => void,\n ) => void;\n}\n\nexport interface Outputs {\n afterShowToast: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.showToast?.((val: DataType | string) => {\n try {\n /** 动态输入 */\n if (data?.dynamic) {\n Taro.showToast({\n ...(typeof val === \"string\"\n ? {\n title: val ?? \"\",\n duration: 1000,\n }\n : {\n ...val,\n title: val.title ?? \"\",\n duration: !val.duration\n ? 1000\n : typeof val.duration === \"string\"\n ? Number(val.duration)\n : val.duration,\n }),\n complete: () => {\n if (data.asynchronous) {\n setTimeout(() => {\n outputs[\"afterShowToast\"]();\n }, data?.duration); //提示结束后触发\n } else {\n outputs[\"afterShowToast\"](val);\n }\n },\n });\n } else {\n /** 非动态输入 */\n Taro.showToast({\n ...data,\n title: data.title ?? \"\",\n complete: () => {\n if (data.asynchronous) {\n setTimeout(() => {\n outputs[\"afterShowToast\"]();\n }, data?.duration); //提示结束后触发\n } else {\n outputs[\"afterShowToast\"](val);\n }\n },\n });\n }\n } catch (error) {\n console.error(\"显示 Toast 失败:\", error);\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {\n};\n\nexport interface Inputs {\n hideToast?: (\n fn: (config: any, relOutputs?: any) => void,\n ) => void;\n}\n\nexport interface Outputs {\n afterHideToast: (value?: any) => void;\n}\n\ninterface IOContext {\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.hideToast?.((val) => {\n Taro.hideToast({\n noConflict: true,\n complete: () => {\n outputs[\"afterHideToast\"](val);\n },\n });\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {\n title?: string;\n mask?: boolean;\n};\n\nexport interface Inputs {\n showLoading?: (fn: (config: any, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n afterShowLoading: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.showLoading?.((val) => {\n Taro.showLoading({\n ...data,\n complete: () => {\n outputs[\"afterShowLoading\"](val);\n },\n });\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {};\n\nexport interface Inputs {\n hideLoading?: (fn: (config: any, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n afterHideLoading: (value?: any) => void;\n}\n\ninterface IOContext {\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.hideLoading?.((val) => {\n Taro.hideLoading({\n noConflict: true,\n complete: (e) => {\n outputs[\"afterHideLoading\"](val);\n },\n });\n });\n};\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {\n dynamic?: boolean\n title?: string\n content?: string\n /** 微信/部分端支持,可编辑输入框 */\n // editable?: boolean;\n showCancel?: boolean\n cancelText?: string\n cancelColor?: string\n confirmText?: string\n confirmColor?: string\n}\n\nexport interface Inputs {\n /** 显示模态对话框 */\n show?: (fn: (config?: DataType, relOutputs?: any) => void) => void\n}\n\nexport interface Outputs {\n onConfirm: (value?: any) => void\n onCancel: (value?: any) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.show?.(async (val) => {\n try {\n let param = {\n ...data,\n success: (res: any) => {\n if (res.confirm) {\n // if (data.editable) {\n // outputs[\"onConfirm\"](res.content);\n // } else {\n outputs['onConfirm'](val)\n // }\n } else {\n outputs['onCancel'](val)\n }\n },\n }\n\n if (data?.dynamic && val) {\n //开启了动态输入\n param.content = val.content ?? ''\n param.title = val.title ?? ''\n } else {\n if (data.content) {\n param.content = data.content.replace(/\\n/g, '\\r\\n')\n }\n }\n\n Taro.showModal(param)\n } catch (error: any) {\n console.error('显示 Modal 失败:', error)\n }\n })\n}\n","import Taro from \"@tarojs/taro\";\n\nexport type Item = {\n label: string;\n value?: any;\n};\n\nexport type SelectItem = Item & {\n index?: number;\n};\n\nexport type DataType = {\n itemList?: Item[];\n};\n\nexport interface Inputs {\n showActionSheet?: (fn: (config?: DataType, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSelect: (value?: SelectItem) => void;\n onCancel: () => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.showActionSheet?.(async (val) => {\n let itemList: Item[] = data.itemList || [];\n try {\n if (Array.isArray(val)) {\n itemList = val;\n }\n\n Taro.showActionSheet({\n itemList: itemList.map((item) => item.label).slice(0, 6),\n })\n .then((res: any) => {\n // 点击按钮\n outputs[\"onSelect\"]({\n index: res.tapIndex,\n label: itemList[res.tapIndex].label,\n value: itemList[res.tapIndex].value,\n });\n })\n .catch(() => {\n // 点击取消\n outputs[\"onCancel\"]();\n });\n } catch (error: any) {\n console.error(\"显示 ActionSheet 失败:\", error);\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {\n text: string;\n};\n\nexport interface Inputs {\n /** 显示模态对话框 */\n setClipboardData?: (fn: (config?: string, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.setClipboardData?.(async (val) => {\n let copyText = data.text;\n\n if (val) {\n copyText = val;\n }\n\n // 非字符串尝试转换\n if (typeof copyText !== \"string\") {\n try {\n copyText = JSON.stringify(copyText);\n } catch (error) {\n outputs[\"onFail\"](\"请输入字符串\");\n }\n }\n\n Taro.setClipboardData({\n data: copyText,\n success: () => {\n outputs[\"onSuccess\"](copyText);\n },\n fail: (err: any) => {\n outputs[\"onFail\"](err);\n },\n });\n });\n};\n","import * as Taro from \"@tarojs/taro\";\n\n/**\n * 环境相关方法\n */\n\n/* 判断是否为 edit 态 */\nexport function isEdit(env): Boolean {\n if (env?.edit) {\n return true;\n } else {\n return false;\n }\n}\n\n/* 判断是否在设计器中运行 */\nexport function isDesigner(env): Boolean {\n if (env?.edit || env?.runtime?.debug) {\n return true;\n } else {\n return !!window?.mybricks;\n }\n}\n\nexport function isH5() {\n return Taro.getEnv() === Taro.ENV_TYPE.WEB || Taro.getEnv() === \"Unknown\";\n}\n","import CryptoJS from 'crypto-js'\nimport * as Taro from '@tarojs/taro'\nimport { isH5 } from './env'\n\ninterface UploadOssHelperOptions {\n accessKeyId: string\n accessKeySecret: string\n timeout?: number\n maxSize?: number\n}\n\ninterface UploadOssParams {\n OSSAccessKeyId: string\n policy: string\n signature: string\n}\n\nclass UploadOssHelper {\n private accessKeyId: string\n private accessKeySecret: string\n private timeout: number\n private maxSize: number\n\n constructor(options: UploadOssHelperOptions) {\n this.accessKeyId = options.accessKeyId\n this.accessKeySecret = options.accessKeySecret\n this.timeout = options.timeout || 1\n this.maxSize = options.maxSize || 10\n }\n\n createUploadParams(): UploadOssParams {\n const policy = this.getPolicyBase64()\n const signature = this.sign(policy)\n return {\n OSSAccessKeyId: this.accessKeyId,\n policy,\n signature,\n }\n }\n\n private getPolicyBase64(): string {\n const date = new Date()\n date.setHours(date.getHours() + this.timeout)\n const policyText = {\n expiration: date.toISOString(),\n conditions: [['content-length-range', 0, this.maxSize * 1024 * 1024]],\n }\n const policy = JSON.stringify(policyText)\n\n if (isH5()) {\n return btoa(unescape(encodeURIComponent(policy)))\n } else {\n const policyBuffer = new Uint8Array(\n policy.split('').map((char) => char.charCodeAt(0))\n ).buffer\n return Taro.arrayBufferToBase64(policyBuffer)\n }\n }\n\n private sign(policy: string): string {\n return CryptoJS.HmacSHA1(policy, this.accessKeySecret).toString(CryptoJS.enc.Base64)\n }\n}\n\nexport default UploadOssHelper\n","import UploadOssHelper from '../tools/oss'\n\nexport type DataType = {\n mode?: 'custom' | 'quick';\n platform?: 'oss';\n custom?: {\n url: string;\n name: string;\n };\n oss?: {\n accessKeyId: string;\n accessKeySecret: string;\n host: string;\n };\n};\n\nexport interface Inputs {\n upload?: (fn: (config: any, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\nexport default function ({ env, data, inputs, outputs }: { env: any; data: DataType; inputs: Inputs; outputs: Outputs }) {\n if (!env.runtime) {\n return;\n }\n\n inputs[\"upload\"]?.((value: any) => {\n /** 自定义上传 */\n if (data.mode === \"custom\") {\n let params: any = {\n withCredentials: false,\n url: data.custom!.url,\n filePath: value.filePath,\n name: data.custom!.name,\n formData: {\n ...(value.formData || {}),\n },\n };\n\n if (typeof value.fileName === \"string\") {\n params.fileName = value.fileName;\n }\n\n env.uploadFile({\n ...params,\n success(res: any) {\n let resData = res.data;\n if (resData) {\n try {\n resData = JSON.parse(resData);\n } catch (err) {}\n }\n outputs[\"onSuccess\"](resData);\n },\n fail(err: any) {\n outputs[\"onFail\"](err);\n },\n });\n return;\n }\n\n /** 阿里云 OSS 上传 */\n if (data.mode === \"quick\" && data.platform === \"oss\") {\n const ossHelper = new UploadOssHelper({\n accessKeyId: data.oss!.accessKeyId,\n accessKeySecret: data.oss!.accessKeySecret,\n });\n\n const ossParams = ossHelper.createUploadParams();\n\n env.uploadFile({\n withCredentials: false,\n url: data.oss!.host,\n filePath: value.filePath,\n name: \"file\",\n formData: {\n ...(value.formData || {}),\n policy: ossParams.policy,\n OSSAccessKeyId: ossParams.OSSAccessKeyId,\n signature: ossParams.signature,\n },\n success(res: any) {\n if (res.statusCode === 204) {\n outputs[\"onSuccess\"](`${data.oss!.host}/${value.formData.key}`);\n } else {\n outputs[\"onFail\"](res);\n }\n },\n fail(err: any) {\n outputs[\"onFail\"](err);\n },\n });\n return;\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {\n timeout?: number;\n};\n\nexport interface Inputs {\n call?: (fn: () => void) => void;\n}\n\nexport interface Outputs {\n success: (value?: any) => void;\n fail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.call?.(() => {\n try {\n let params = {};\n\n if (!!data.timeout) {\n params[\"timeout\"] = data.timeout;\n }\n\n Taro.login({\n ...params,\n success: (res) => {\n if (res.code) {\n outputs[\"success\"]({\n code: res.code,\n });\n } else {\n outputs[\"fail\"]({\n ...res,\n });\n }\n },\n fail: (res) => {\n outputs[\"fail\"]({\n ...res,\n });\n },\n });\n } catch (error) {\n console.error(\"获取登录凭证失败:\", error);\n }\n });\n};\n","export type DataType = {};\n\nexport interface Inputs {\n generate?: (fn: (config: any, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {};\n\nexport interface Inputs {\n setTitle?: (fn: (config: string) => void) => void;\n}\n\nexport interface Outputs {\n complete: (value?: string) => void;\n}\n\ninterface IOContext {\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.setTitle?.((value: string) => {\n try {\n if (value && typeof value === \"string\") {\n Taro.setNavigationBarTitle({\n title: value,\n success: () => {\n outputs.complete(value);\n },\n fail: (err: any) => {\n console.error(\"设置标题失败:\", err);\n },\n });\n }\n } catch (error: any) {\n console.error(\"设置标题失败:\", error);\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {\n onlyFromCamera?: boolean;\n};\n\nexport interface Inputs {\n scan?: (fn: () => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n data: DataType;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.scan?.(() => {\n try {\n Taro.scanCode({\n onlyFromCamera: data.onlyFromCamera,\n success: ({ result, scanType }) => {\n if (result) {\n outputs[\"onSuccess\"]?.({ result, scanType });\n } else {\n outputs[\"onFail\"]?.({});\n }\n },\n fail: ({ errMsg }) => {\n outputs[\"onFail\"]?.({ errMsg });\n },\n });\n } catch (error: any) {\n console.error(\"扫码失败:\", error);\n outputs.onFail(error?.message || \"扫码失败\");\n }\n });\n};\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {\n mediaType?: ('image' | 'video')[]\n sourceType?: ('album' | 'camera')[]\n count?: number\n sizeType?: ('original' | 'compressed')[]\n maxDuration?: number\n camera?: 'back' | 'front'\n}\n\nexport interface Inputs {\n chooseMedia?: (fn: () => void) => void\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void\n onFail: (value?: any) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.chooseMedia?.(() => {\n try {\n let params = {\n count: data.count,\n mediaType: data.mediaType,\n sourceType: data.sourceType,\n maxDuration: data.maxDuration,\n sizeType: data.sizeType,\n camera: data.camera,\n }\n\n console.log('params', params)\n\n Taro.chooseMedia({\n ...params,\n success(res: any) {\n outputs['onSuccess'](res)\n },\n fail(err: any) {\n outputs['onFail'](err)\n },\n })\n } catch (error: any) {\n console.error('选择媒体失败:', error)\n outputs.onFail(error?.message || '选择媒体失败')\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {\n SelectType?: 'all' | 'video' | 'image' | 'file' // 选择的文件类型\n SelectCount?: number // 选择的文件数量\n}\n\nexport interface Inputs {\n chooseFile?: (fn: () => void) => void\n}\n\nexport interface Outputs {\n onComplete: (value?: any) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.chooseFile?.(() => {\n try {\n Taro.chooseMessageFile({\n count: data.SelectCount,\n type: data.SelectType,\n success: function (res: any) {\n outputs['onComplete']({\n ...res,\n })\n },\n })\n } catch (error: any) {\n console.error('文件选择失败:', error)\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {\n selectMethodConfig?: 'both' | 'camera' | 'album' // 照片选取方式\n photoCount?: number // 选择的照片数量\n}\n\nexport interface Inputs {\n takePhotos?: (fn: () => void) => void\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void\n onFail: (value?: any) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.takePhotos?.(() => {\n try {\n Taro.chooseImage({\n count: data.photoCount, // 默认9\n sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有\n sourceType: data.selectMethodConfig, // 可以指定来源是相册还是相机,默认二者都有,在H5浏览器端支持使用 `user` 和 `environment`分别指定为前后摄像头\n success: function (res: any) {\n // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片\n // var tempFilePaths = res.tempFilePaths;\n // outputs[\"onSuccess\"]?.(tempFilePaths);\n outputs['onSuccess']?.(res)\n },\n fail: ({ errMsg }: any) => {\n outputs['onFail']?.({ errMsg })\n },\n })\n } catch (error: any) {\n console.error('打开相机失败:', error)\n outputs.onFail(error?.message || '打开相机失败')\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {}\n\nexport interface Inputs {\n callPhone?: (fn: (config: string, relOutputs?: any) => void) => void\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void\n onFail: (value?: any) => void\n}\n\ninterface IOContext {\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.callPhone?.((val: string) => {\n try {\n const phoneNumber = String(val)\n\n if (!phoneNumber) {\n outputs.onFail?.('电话号码不能为空')\n return\n }\n\n Taro.makePhoneCall({\n phoneNumber,\n success: () => outputs.onSuccess?.(true),\n fail: ({ errMsg }: any) => outputs.onFail?.({ errMsg }),\n })\n } catch (error: any) {\n console.error('拨打电话失败:', error)\n outputs.onFail?.({\n errMsg: error?.message || '拨打电话失败',\n })\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {\n isHighAccuracy?: boolean\n}\n\nexport interface Inputs {\n getLocation?: (fn: () => void) => void\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void\n onFail: (value?: any) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.getLocation?.(() => {\n try {\n Taro.getLocation({\n type: 'gcj02', //返回可以用于 Taro.openLocation的经纬度\n isHighAccuracy: data?.isHighAccuracy ?? false,\n success: function ({ latitude, longitude }: any) {\n outputs['onSuccess']?.({ latitude, longitude })\n },\n fail: ({ errMsg }: any) => {\n outputs['onFail']?.({ errMsg })\n },\n })\n } catch (error: any) {\n console.error('获取地理位置失败:', error)\n outputs.onFail?.({\n errMsg: error?.message || '获取地理位置失败',\n })\n }\n })\n}\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {};\n\nexport type ValType = {\n latitude?: number;\n longitude?: number;\n};\n\nexport interface Inputs {\n open?: (fn: (val: ValType) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.open?.((val) => {\n try {\n Taro.chooseLocation({\n latitude: val?.latitude,\n longitude: val?.longitude,\n success: (res: any) => {\n outputs[\"onSuccess\"]?.({\n name: res.name,\n address: res.address,\n latitude: res.latitude,\n longitude: res.longitude,\n });\n },\n fail: (err: any) => {\n outputs[\"onFail\"]?.(err);\n },\n });\n } catch (error: any) {\n console.error(\"地图选点失败:\", error);\n outputs.onFail(error?.message || \"地图选点失败\");\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {};\n\nexport type ValType = {\n latitude?: number;\n longitude?: number;\n};\n\nexport interface Inputs {\n open?: (fn: (val: ValType) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\nexport interface Env {\n apiKey?: string;\n}\n\ninterface IOContext {\n env: Env;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const env: Env = context.env;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.open?.((val) => {\n try {\n if (!val?.longitude || !val?.latitude) {\n outputs[\"onFail\"]?.({ errMsg: \"不合法的经纬度信息\" });\n return;\n }\n const url = `https://apis.map.qq.com/ws/geocoder/v1/?key=${env?.apiKey ?? \"WDOBZ-7WZWL-NFJPE-EKBHS-PBEEK-U4FA5\"}&location=${val?.latitude},${val?.longitude}&get_poi=0`;\n Taro.request({\n url,\n success: (res: any) => {\n if (res.statusCode === 200 && res.data.status === 0) {\n const { result } = res.data ?? {};\n outputs[\"onSuccess\"]?.({\n name: result?.formatted_addresses?.recommend,\n address: result?.address,\n longitude: val.longitude,\n latitude: val.latitude,\n ...(result?.address_component ?? {}),\n });\n } else {\n outputs[\"onFail\"]?.({\n errMsg: res.data?.message ?? res.errMsg ?? \"网络错误\",\n });\n }\n },\n fail: ({ errMsg }: any) => {\n outputs[\"onFail\"]?.({ errMsg });\n },\n });\n } catch (error: any) {\n console.error(\"地图选点失败:\", error);\n outputs.onFail(error?.message || \"地图选点失败\");\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {\n width: number;\n color: string;\n dottedLine: boolean;\n arrowLine: boolean;\n borderColor: string;\n borderWidth: number;\n autofit: boolean;\n start: {\n icon: string;\n width: number;\n height: number;\n };\n end: {\n icon: string;\n width: number;\n height: number;\n };\n};\n\nexport type ValType = {\n from: {\n latitude?: number;\n longitude?: number;\n };\n to: {\n latitude?: number;\n longitude?: number;\n };\n};\n\nexport interface Inputs {\n getWithPos?: (fn: (val: ValType) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\nexport interface Env {\n apiKey?: string;\n}\n\ninterface IOContext {\n data: DataType;\n env: Env;\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const env: Env = context.env;\n const data: DataType = context.data;\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.getWithPos?.((val) => {\n try {\n if (!val?.from || !val?.to) {\n outputs[\"onFail\"]?.({ errMsg: \"不合法的起点和终点\" });\n return;\n }\n\n const url = `https://apis.map.qq.com/ws/direction/v1/driving/?key=${\n env?.apiKey ?? \"WDOBZ-7WZWL-NFJPE-EKBHS-PBEEK-U4FA5\"\n }&from=${val?.from?.latitude},${val?.from?.longitude}&to=${\n val?.to?.latitude\n },${val?.to?.longitude}&policy=TRIP,AVOID_HIGHWAY,NAV_POINT_FIRST`;\n Taro.request({\n url,\n success: (res: any) => {\n if (res.statusCode === 200 && res.data.status === 0) {\n const { result } = res.data ?? {};\n if (Array.isArray(result.routes)) {\n const polylines = result.routes.map((route: any) => {\n let points = [] as { latitude: number; longitude: number }[];\n /** 解压坐标 */\n for (var i = 2; i < route.polyline.length; i++) {\n route.polyline[i] =\n route.polyline[i - 2] + route.polyline[i] / 1000000;\n }\n\n for (let i = 0; i < route.polyline.length / 2; i++) {\n points[i] = {\n latitude: route.polyline[i * 2],\n longitude: route.polyline[i * 2 + 1],\n };\n }\n return {\n points,\n width: data.width,\n color: data.color,\n dottedLine: data.dottedLine,\n arrowLine: data.arrowLine,\n borderColor: data.borderColor,\n borderWidth: data.borderWidth,\n\n distance: route.distance,\n duration: route.duration,\n };\n });\n\n const markers = [\n {\n id: 0,\n width: data.start?.width,\n height: data.start?.height,\n iconPath: data.start?.icon,\n latitude: val.from?.latitude,\n longitude: val.from?.longitude,\n },\n {\n id: 1,\n width: data.end?.width,\n height: data.end?.height,\n iconPath: data.end?.icon,\n latitude: val.to?.latitude,\n longitude: val.to?.longitude,\n },\n ];\n\n outputs[\"onSuccess\"]?.({\n markers,\n polylines,\n autofit: data.autofit,\n });\n }\n } else {\n outputs[\"onFail\"]?.({\n errMsg: res.data?.message ?? res.errMsg ?? \"网络错误\",\n });\n }\n },\n fail: ({ errMsg }: any) => {\n outputs[\"onFail\"]?.({ errMsg });\n },\n });\n } catch (error: any) {\n console.error(\"路线规划失败:\", error);\n outputs.onFail({\n errMsg: error?.message || \"路线规划失败\",\n });\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {};\n\nexport interface Inputs {\n chooseAddress?: (fn: () => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.chooseAddress?.(() => {\n try {\n Taro.chooseAddress({\n success(res: any) {\n outputs[\"onSuccess\"](res);\n },\n fail(err: any) {\n outputs[\"onFail\"](err);\n },\n });\n } catch (error: any) {\n console.error(\"获取收货地址失败:\", error);\n outputs.onFail({\n errMsg: error?.message || \"获取收货地址失败\",\n });\n }\n });\n};\n","import Taro from \"@tarojs/taro\";\n\nexport type DataType = {};\n\nexport type ValType = {\n latitude: number;\n longitude: number;\n address?: string;\n name?: string;\n scale?: number;\n};\n\nexport interface Inputs {\n open?: (fn: (val: ValType) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n inputs: Inputs;\n outputs: Outputs;\n}\n\nconst getNumber = (target: string | number) => {\n const _result = typeof target === \"number\" ? target : parseFloat(target);\n return isNaN(_result) ? 0 : _result;\n};\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs;\n const outputs: Outputs = context.outputs;\n\n inputs.open?.((val) => {\n try {\n Taro.openLocation({\n latitude: getNumber(val?.latitude),\n longitude: getNumber(val?.longitude),\n address: val?.address,\n name: val?.name,\n scale: val?.scale ?? 10,\n success: () => {\n outputs[\"onSuccess\"]?.(true);\n },\n fail: ({ errMsg }: any) => {\n outputs[\"onFail\"]?.({ errMsg });\n },\n });\n } catch (error: any) {\n console.error(\"获取收货地址失败:\", error);\n outputs.onFail({\n errMsg: error?.message || \"获取收货地址失败\",\n });\n }\n });\n};\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {}\n\nexport type ValType = {\n urls: string[]\n current?: number\n}\n\nexport interface Inputs {\n call?: (fn: (val: ValType) => void) => void\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void\n onFail: (value?: any) => void\n}\n\ninterface IOContext {\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.call?.((val) => {\n try {\n let params = {\n urls: val.urls,\n current: val.urls?.[0],\n }\n\n if (val.current) {\n params['current'] = val.urls?.[val.current ?? 0]\n }\n\n Taro.previewImage({\n ...params,\n success: () => {\n outputs['onSuccess']()\n },\n fail: (error: any) => {\n outputs['onFail'](error)\n },\n })\n } catch (error: any) {\n console.error('预览图片失败:', error)\n outputs.onFail({\n errMsg: error?.message || '预览图片失败',\n })\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {}\n\nexport type ValType = string\n\nexport interface Inputs {\n call?: (fn: (val: ValType) => void) => void\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void\n onFail: (value?: any) => void\n}\n\ninterface IOContext {\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.call?.((imagePath) => {\n try {\n // 判断是否为远程图片地址\n const isRemoteImage =\n imagePath.startsWith('http://') || imagePath.startsWith('https://')\n\n const saveImage = (filePath: string) => {\n Taro.saveImageToPhotosAlbum({\n filePath,\n success: (res: any) => {\n Taro.showToast({\n title: '保存成功',\n icon: 'none',\n duration: 1000,\n })\n\n outputs['onSuccess'](res)\n },\n fail: (res: any) => {\n switch (res.errno) {\n // 用户未授权,需要引导用户授权\n case 103: // 用户拒绝了授权\n Taro.showModal({\n title: '提示',\n content: '请先授权保存图片到相册',\n showCancel: true,\n confirmText: '去授权',\n cancelText: '取消',\n success: (res: any) => {\n if (res.confirm) {\n Taro.openSetting({\n success: (res: any) => {\n if (res.authSetting['scope.writePhotosAlbum']) {\n // 用户已授权,重新尝试保存图片\n Taro.saveImageToPhotosAlbum({\n filePath,\n success: (res: any) => {\n Taro.showToast({\n title: '保存成功',\n icon: 'none',\n duration: 1000,\n })\n\n outputs['onSuccess'](res)\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n } else {\n outputs['onFail']()\n }\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n } else {\n outputs['onFail']()\n }\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n break\n\n default:\n outputs['onFail'](res)\n break\n }\n },\n })\n }\n\n if (isRemoteImage) {\n // 远程图片地址,先下载图片\n Taro.downloadFile({\n url: imagePath,\n success: (res: any) => {\n if (res.statusCode === 200) {\n saveImage(res.tempFilePath)\n } else {\n outputs['onFail'](res)\n }\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n } else {\n // 本地图片地址,直接保存\n saveImage(imagePath)\n }\n } catch (error: any) {\n console.error('保存图片到系统相册失败:', error)\n outputs.onFail({\n errMsg: error?.message || '保存图片到系统相册失败',\n })\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {}\n\nexport type ValType = string\n\nexport interface Inputs {\n call?: (fn: (val: ValType) => void) => void\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void\n onFail: (value?: any) => void\n}\n\ninterface IOContext {\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.call?.((imagePath) => {\n try {\n // 判断是否为远程图片地址\n const isRemoteImage =\n imagePath.startsWith('http://') || imagePath.startsWith('https://')\n\n const saveVideo = (filePath: string) => {\n Taro.saveVideoToPhotosAlbum({\n filePath,\n success: (res: any) => {\n Taro.showToast({\n title: '保存成功',\n icon: 'none',\n duration: 1000,\n })\n\n outputs['onSuccess'](res)\n },\n fail: (res: any) => {\n switch (res.errno) {\n // 用户未授权,需要引导用户授权\n case 103: // 用户拒绝了授权\n Taro.showModal({\n title: '提示',\n content: '请先授权保存视频到相册',\n showCancel: true,\n confirmText: '去授权',\n cancelText: '取消',\n success: (res: any) => {\n if (res.confirm) {\n Taro.openSetting({\n success: (res: any) => {\n if (res.authSetting['scope.writePhotosAlbum']) {\n // 用户已授权,重新尝试保存图片\n Taro.saveVideoToPhotosAlbum({\n filePath,\n success: (res: any) => {\n Taro.showToast({\n title: '保存成功',\n icon: 'none',\n duration: 1000,\n })\n\n outputs['onSuccess'](res)\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n } else {\n outputs['onFail']()\n }\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n } else {\n outputs['onFail']()\n }\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n break\n\n default:\n outputs['onFail'](res)\n break\n }\n },\n })\n }\n\n if (isRemoteImage) {\n // 远程图片地址,先下载图片\n Taro.downloadFile({\n url: imagePath,\n success: (res: any) => {\n if (res.statusCode === 200) {\n saveVideo(res.tempFilePath)\n } else {\n outputs['onFail'](res)\n }\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n } else {\n // 本地图片地址,直接保存\n saveVideo(imagePath)\n }\n } catch (error: any) {\n console.error('保存视频到系统相册失败:', error)\n outputs.onFail({\n errMsg: error?.message || '保存视频到系统相册失败',\n })\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {\n canvasWidth: number\n canvasHeight: number\n}\n\nexport type ElementType = {\n // 绘制类型,支持的值:text, image, shape\n type: string\n // 绘制的左上角 X 坐标值\n x: number\n // 绘制的左上角 Y 坐标值\n y: number\n // 绘制的宽度。(如果是文本类型,宽度达到width 会自动换行)\n width: number\n // 绘制的高度。(如果是文本类型,超过高度会显示省略号)\n height: number\n // 文字颜色(仅文本类型时生效)\n color: string\n // 文字字号(仅文本类型时生效)\n fontSize: number\n // 文字粗细,(仅文本类型时生效)\n fontWeight: string\n // 行高(仅文本类型时生效)\n lineHeight: number\n // 文字对齐方式,支持的值:left, right, center(仅文本类型时生效)\n textAlign: string\n // 绘制的内容(文本类型时为文本内容,图片类型时为图片 URL 地址)\n content: string\n // 角大小(仅图片,形状类型时生效)\n borderRadius: number\n // 边框宽度(仅图片,形状类型时生效)\n borderWidth: number\n // 边框颜色(仅图片,形状类型时生效)\n borderColor: string\n // 颜色(仅形状类型时生效)\n backgroundColor: string\n //\n imageObj?: string\n}\n\nexport type ValType = ElementType[]\n\nexport interface Inputs {\n call?: (fn: (val: ValType) => void) => void\n}\n\nexport interface Outputs {\n success: (value?: any) => void\n fail: (value?: any) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.call?.(async (val) => {\n try {\n let elements = val\n\n // 创建离屏 2D canvas 实例\n let canvas = Taro.createOffscreenCanvas({\n type: '2d',\n width: data.canvasWidth,\n height: data.canvasHeight,\n })\n\n // 获取 context\n const context = canvas.getContext('2d')\n\n // 预加载所有图片\n for (let i = 0; i < elements.length; i++) {\n let element = elements[i]\n if (element.type === 'image') {\n const image = canvas.createImage()\n await new Promise((resolve) => {\n image.onload = resolve\n image.src = element.content\n })\n elements[i].imageObj = image\n }\n }\n\n // 把元素画到离屏 canvas 上\n for (let i = 0; i < elements.length; i++) {\n let element = elements[i]\n\n switch (element.type) {\n case 'text':\n await drawText(context, element)\n break\n case 'image':\n await drawImage(context, element)\n break\n case 'shape':\n await drawShape(context, element)\n break\n default:\n break\n }\n }\n\n // 获取离屏 canvas 的内容\n const base64 = context.canvas.toDataURL('image/png')\n outputs['success'](base64)\n\n /**\n * 绘制形状\n *\n * x: 0\n * y: 0\n * width: 375\n * height: 30\n * borderRadius: 50\n * borderWidth: 2\n * borderColor: \"#000000\"\n * backgroundColor: \"#000000\"\n *\n */\n async function drawShape(context: any, element: ElementType) {\n const {\n x = 0,\n y = 0,\n width,\n height,\n borderRadius = 0,\n borderWidth = 0,\n borderColor,\n backgroundColor,\n } = element\n\n // 调整绘制路径的位置,确保边框不会超出 width 和 height 的范围\n const halfBorderWidth = borderWidth / 2\n const adjustedX = x + halfBorderWidth\n const adjustedY = y + halfBorderWidth\n const adjustedWidth = width - borderWidth\n const adjustedHeight = height - borderWidth\n\n // 限制 borderRadius 的最大值\n const maxBorderRadius = Math.min(adjustedWidth, adjustedHeight) / 2\n const effectiveBorderRadius = Math.min(borderRadius, maxBorderRadius)\n\n // 绘制圆角矩形边框\n context.save()\n context.beginPath()\n context.moveTo(adjustedX + effectiveBorderRadius, adjustedY)\n context.arcTo(\n adjustedX + adjustedWidth,\n adjustedY,\n adjustedX + adjustedWidth,\n adjustedY + adjustedHeight,\n effectiveBorderRadius,\n )\n context.arcTo(\n adjustedX + adjustedWidth,\n adjustedY + adjustedHeight,\n adjustedX,\n adjustedY + adjustedHeight,\n effectiveBorderRadius,\n )\n context.arcTo(\n adjustedX,\n adjustedY + adjustedHeight,\n adjustedX,\n adjustedY,\n effectiveBorderRadius,\n )\n context.arcTo(\n adjustedX,\n adjustedY,\n adjustedX + adjustedWidth,\n adjustedY,\n effectiveBorderRadius,\n )\n context.closePath()\n\n // 设置边框样式\n context.lineWidth = borderWidth\n context.strokeStyle = borderColor\n context.stroke()\n\n // 设置背景颜色\n context.fillStyle = backgroundColor\n context.fill()\n\n // 恢复裁剪区域\n context.restore()\n }\n\n /**\n * 绘制图片\n *\n * x: 0\n * y: 30\n * width: 375\n * height: 30\n * borderRadius: 50\n * borderWidth: 2\n * borderColor: \"#000000\"\n * imageObj: Image\n *\n */\n async function drawImage(context: any, element: ElementType) {\n const {\n x = 0,\n y = 0,\n width,\n height,\n borderRadius = 0,\n borderWidth = 0,\n borderColor,\n imageObj,\n } = element\n\n // 调整绘制路径的位置,确保边框不会超出 width 和 height 的范围\n const halfBorderWidth = borderWidth / 2\n const adjustedX = x + halfBorderWidth\n const adjustedY = y + halfBorderWidth\n const adjustedWidth = width - borderWidth\n const adjustedHeight = height - borderWidth\n\n // 限制 borderRadius 的最大值\n const maxBorderRadius = Math.min(adjustedWidth, adjustedHeight) / 2\n const effectiveBorderRadius = Math.min(borderRadius, maxBorderRadius)\n\n // 绘制圆角矩形边框\n context.save()\n context.beginPath()\n context.moveTo(adjustedX + effectiveBorderRadius, adjustedY)\n context.arcTo(\n adjustedX + adjustedWidth,\n adjustedY,\n adjustedX + adjustedWidth,\n adjustedY + adjustedHeight,\n effectiveBorderRadius,\n )\n context.arcTo(\n adjustedX + adjustedWidth,\n adjustedY + adjustedHeight,\n adjustedX,\n adjustedY + adjustedHeight,\n effectiveBorderRadius,\n )\n context.arcTo(\n adjustedX,\n adjustedY + adjustedHeight,\n adjustedX,\n adjustedY,\n effectiveBorderRadius,\n )\n context.arcTo(\n adjustedX,\n adjustedY,\n adjustedX + adjustedWidth,\n adjustedY,\n effectiveBorderRadius,\n )\n context.closePath()\n\n // 设置边框样式\n if (borderWidth > 0) {\n context.lineWidth = borderWidth\n context.strokeStyle = borderColor\n context.stroke()\n }\n\n // 裁剪到圆角矩形区域\n context.clip()\n\n // 绘制图片\n context.drawImage(\n imageObj,\n adjustedX,\n adjustedY,\n adjustedWidth,\n adjustedHeight,\n )\n\n // 恢复裁剪区域\n context.restore()\n }\n\n /**\n * 绘制文本\n *\n * x: 0\n * y: 30\n * width: 375\n * height: 30\n * color: #000000\n * fontSize: 30\n * fontWeight: normal | bold\n * lineHeight: 30\n * textAlign: center | left | right\n * content: \"Hello World\"\n *\n */\n async function drawText(context: any, element: ElementType) {\n let {\n x = 0,\n y = 0,\n width = 999999999,\n height = 999999999,\n color = '#000000',\n fontSize = 12,\n fontWeight = 'normal',\n lineHeight,\n textAlign = 'left',\n content = '',\n } = element\n\n // 设置字体\n context.font = `${fontWeight} ${fontSize}px system-ui`\n context.fillStyle = color\n context.textBaseline = 'bottom'\n\n // 计算行高\n lineHeight = lineHeight || fontSize\n\n // 文本最大行数\n const maxLines = Math.floor(height / lineHeight) // 向下取整\n\n // 文本的行数\n const lines = [] as string[]\n let line = ''\n\n // 拆分文本\n for (let i = 0; i < content.length; i++) {\n let char = content[i]\n\n if (context.measureText(line + char).width > width) {\n lines.push(line)\n line = char\n } else {\n line += char\n }\n }\n lines.push(line)\n\n // 绘制文本\n for (let i = 0; i < Math.min(lines.length, maxLines); i++) {\n let line = lines[i]\n let textX = x\n\n // 如果是最后一行,且超过了 width,就显示省略号\n if (i === maxLines - 1 && i < lines.length - 1) {\n while (context.measureText(line + '...').width > width) {\n line = line.slice(0, -1)\n }\n line += '...'\n }\n\n switch (textAlign) {\n case 'left':\n textX = x\n break\n case 'center':\n textX = x + (width - context.measureText(line).width) / 2\n break\n case 'right':\n textX = x + width - context.measureText(line).width\n break\n default:\n break\n }\n\n context.fillText(line, textX, y + lineHeight * (i + 1))\n }\n }\n } catch (error: any) {\n console.error('图片绘制失败:', error)\n outputs.fail({\n errMsg: error?.message || '图片绘制失败',\n })\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {\n tmplId: string\n}\n\nexport interface Inputs {\n requestSubscribeMessage?: (fn: () => void) => void\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void\n onFail: (value?: any) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.requestSubscribeMessage?.(() => {\n const { tmplId } = data\n\n // tmplId 为模板 ID,必填\n if (!tmplId) {\n outputs['onFail']({\n tmplId: data.tmplId,\n errMsg: '模板ID不能为空',\n })\n return\n }\n try {\n // 通过 Taro.requestSubscribeMessage 接口订阅消息\n Taro.requestSubscribeMessage({\n tmplIds: [tmplId],\n success: (res: any) => {\n if (res.errMsg === 'requestSubscribeMessage:ok') {\n outputs['onSuccess'](res)\n } else {\n outputs['onFail'](res)\n }\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n } catch (error: any) {\n console.error('订阅消息失败:', error)\n outputs.onFail({\n errMsg: error?.message || '订阅消息失败',\n })\n }\n })\n}\n","import { isUndef } from '../tools/core'\n\nexport type DataType = {\n index: number\n text: string\n}\n\nexport interface Inputs {\n show?: (fn: (config: DataType, relOutputs?: any) => void) => void\n}\n\nexport interface Outputs {\n success: (value?: any) => void\n}\n\nexport interface Env {\n tabbar?: {\n setTabBarBadge: (params: { index: number; text: string }) => Promise<void>\n }\n}\n\ninterface IOContext {\n env: Env\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const env: Env = context.env\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.show?.((val) => {\n let params = { index: data.index, text: data.text }\n if (!isUndef(val?.index) && !isUndef(val?.text)) {\n params = val\n }\n env?.tabbar\n ?.setTabBarBadge?.({\n index: parseFloat(params.index + '') - 1,\n text: params.text,\n })\n .then(() => {\n outputs['success']?.(val)\n })\n })\n}\n","import { isUndef } from '../tools/core'\n\nexport type DataType = {\n index: number\n}\n\nexport interface Inputs {\n delete?: (fn: (config: DataType, relOutputs?: any) => void) => void\n}\n\nexport interface Outputs {\n success: (value?: any) => void\n}\n\nexport interface Env {\n tabbar?: {\n removeTabBarBadge: (params: { index: number }) => Promise<void>\n }\n}\n\ninterface IOContext {\n env: Env\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const env: Env = context.env\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.delete?.((val) => {\n let params = { index: data.index }\n if (!isUndef(val?.index)) {\n params = val\n }\n env?.tabbar\n ?.removeTabBarBadge?.({ index: parseFloat(params.index + '') - 1 })\n .then(() => {\n outputs['success']?.(val)\n })\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {}\n\nexport type ValType = {\n nonce_str?: string\n nonceStr?: string\n timestamp?: string\n timeStamp?: string\n pay_sign?: string\n paySign?: string\n prepay_id?: string\n}\n\nexport interface Inputs {\n wx_requestPayment_body?: (fn: (val: ValType) => void) => void\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void\n onFail: (value?: any) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.wx_requestPayment_body?.((val) => {\n const signType = 'RSA' //签名算法\n try {\n Taro.requestPayment({\n nonceStr: val.nonce_str ?? val.nonceStr, //兼容之前的下划线参数\n timeStamp: val.timestamp ?? val.timeStamp,\n signType,\n paySign: val.pay_sign ?? val.paySign,\n package: `prepay_id=${val.prepay_id}`,\n success: (res: any) => {\n outputs['onSuccess'](res)\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n } catch (error: any) {\n console.error('微信支付弹窗失败:', error)\n outputs.onFail({\n errMsg: error?.message || '微信支付弹窗失败',\n })\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {}\n\nexport type ValType = {\n finderUserName: string\n feedId: string\n}\n\nexport interface Inputs {\n openChannelsActivity?: (fn: (val: ValType) => void) => void\n}\n\nexport interface Outputs {\n openChannelsActivitySuccess: (value?: any) => void\n openChannelsActivityFail: (value?: any) => void\n}\n\ninterface IOContext {\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.openChannelsActivity?.((val) => {\n try {\n Taro.openChannelsActivity({\n finderUserName: val.finderUserName,\n feedId: val.feedId,\n success: function (res: any) {\n console.log('接口调用成功', res)\n outputs['openChannelsActivitySuccess']?.(res)\n },\n fail: function (err: any) {\n console.error('接口调用失败', err)\n outputs['openChannelsActivityFail']?.(err)\n },\n })\n } catch (error: any) {\n console.error('打开视频号失败:', error)\n outputs.openChannelsActivityFail({\n errMsg: error?.message || '打开视频号失败',\n })\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {}\n\nexport type ValType = {\n finderUserName: string\n}\n\nexport interface Inputs {\n openChannelsUserProfile?: (fn: (val: ValType) => void) => void\n}\n\nexport interface Outputs {\n openChannelsUserProfileSuccess: (value?: any) => void\n openChannelsUserProfileFail: (value?: any) => void\n}\n\ninterface IOContext {\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.openChannelsUserProfile?.((val) => {\n try {\n Taro.openChannelsUserProfile({\n finderUserName: val.finderUserName,\n success: function (res: any) {\n outputs['openChannelsUserProfileSuccess']?.(res)\n },\n fail: function (err: any) {\n outputs['openChannelsUserProfileFail']?.(err)\n },\n })\n } catch (error: any) {\n console.error('打开视频号主页失败:', error)\n outputs.openChannelsUserProfileFail({\n errMsg: error?.message || '打开视频号主页失败',\n })\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {}\n\nexport interface Inputs {\n call?: (fn: () => void) => void\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void\n onFail: (value?: any) => void\n}\n\ninterface IOContext {\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.call?.(() => {\n try {\n Taro.getWeRunData({\n success: (res: any) => {\n outputs['onSuccess']({\n encryptedData: res.encryptedData,\n iv: res.iv,\n })\n },\n fail: (res: any) => {\n switch (res.err_code) {\n // 用户未授权,需要引导用户授权\n case '-12006':\n case -12006:\n Taro.showModal({\n title: '提示',\n content: '请先授权获取微信运动数据',\n showCancel: true,\n confirmText: '去授权',\n cancelText: '取消',\n success: (res: any) => {\n if (res.confirm) {\n Taro.openSetting({\n success: (res: any) => {\n if (res.authSetting['scope.werun']) {\n Taro.getWeRunData({\n success: (res: any) => {\n outputs['onSuccess']({\n encryptedData: res.encryptedData,\n iv: res.iv,\n })\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n } else {\n outputs['onFail'](res)\n }\n },\n })\n } else {\n outputs['onFail']()\n }\n },\n })\n break\n\n default:\n outputs['onFail'](res)\n break\n }\n },\n })\n } catch (error: any) {\n console.error('获取运动步数失败:', error)\n outputs.onFail({\n errMsg: error?.message || '获取运动步数失败',\n })\n }\n })\n}\n","export type DataType = {};\n\nexport interface Inputs {\n generate?: (fn: (config: any, relOutputs?: any) => void) => void;\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void;\n onFail: (value?: any) => void;\n}\n\ninterface IOContext {\n inputs: Inputs;\n outputs: Outputs;\n}\n\nexport default (context: IOContext) => {\n};\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","import debounce from 'lodash/debounce'\n\nexport type DataType = {\n delay?: number // 防抖延迟时间(毫秒)\n isleading?: boolean // 是否在开始时执行\n}\n\nexport interface Inputs {\n trigger?: (fn: (config: any, relOutputs?: any) => void) => void\n}\n\nexport interface Outputs {\n trigger: (value?: any) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n // 防抖\n const debounceOutput = debounce(\n (val: any) => {\n outputs['trigger'](val)\n },\n data.delay,\n data.isleading ? { leading: true } : void 0,\n )\n\n inputs.trigger?.((val) => {\n try {\n debounceOutput(val)\n } catch (error: any) {\n console.error('防抖执行失败:', error)\n }\n })\n}\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","import throttle from 'lodash/throttle'\n\nexport type DataType = {\n delay?: number // 节流间隔时间(毫秒)\n leading?: boolean // 是否在开始时执行\n trailing?: boolean // 是否在结束时执行\n}\n\nexport interface Inputs {\n trigger?: (fn: (config: any, relOutputs?: any) => void) => void\n}\n\nexport interface Outputs {\n trigger: (value?: any) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nconst handler = (context: IOContext) => {\n const data: DataType = context.data\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n // 节流\n const throttleOutput = throttle(\n (val: any) => {\n outputs?.trigger?.(val)\n },\n data.delay,\n { leading: data.leading, trailing: data.trailing },\n )\n\n inputs.trigger?.((val: any) => {\n try {\n throttleOutput(val)\n } catch (error: any) {\n console.error('节流执行失败:', error)\n }\n })\n}\n\n;(handler as any).__useCache = true\nexport default handler\n","import CryptoJS from 'crypto-js'\n\nexport type DataType = {\n key?: string\n iv?: string\n}\n\nexport interface Inputs {\n call?: (fn: (config: string) => void) => void\n}\n\nexport interface Outputs {\n result: (value?: string) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.call?.((val) => {\n try {\n if (!val || !data.key || !data.iv) {\n outputs['result']('')\n return\n }\n\n // 密钥修复:超长截取/不足补0\n const fixedKey = CryptoJS.enc.Utf8.parse(\n data.key.padEnd(32, '0').slice(0, 32),\n )\n const fixedIv = CryptoJS.enc.Utf8.parse(\n data.iv.padEnd(16, '0').slice(0, 16),\n )\n\n // AES 加密\n const encrypted = CryptoJS.AES.encrypt(val, fixedKey, {\n iv: fixedIv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7,\n })\n\n // 输出 Base64 编码的加密结果\n const encryptedBase64 = encrypted.ciphertext.toString(CryptoJS.enc.Base64)\n\n // 输出加密结果\n outputs['result'](encryptedBase64)\n } catch (error: any) {\n console.error('AES加密失败:', error)\n }\n })\n}\n","import CryptoJS from 'crypto-js'\n\nexport type DataType = {\n key?: string\n iv?: string\n}\n\nexport interface Inputs {\n call?: (fn: (config: string) => void) => void\n}\n\nexport interface Outputs {\n result: (value?: string) => void\n}\n\ninterface IOContext {\n data: DataType\n inputs: Inputs\n outputs: Outputs\n}\n\nexport default (context: IOContext) => {\n const data: DataType = context.data\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.call?.((val) => {\n try {\n //\n if (!val || !data.key || !data.iv) {\n outputs['result']('')\n return\n }\n\n // 密钥修复:超长截取/不足补0\n const fixedKey = CryptoJS.enc.Utf8.parse(\n data.key.padEnd(32, '0').slice(0, 32),\n )\n const fixedIv = CryptoJS.enc.Utf8.parse(\n data.iv.padEnd(16, '0').slice(0, 16),\n )\n\n // AES 解密\n const decrypted = CryptoJS.AES.decrypt(val, fixedKey, {\n iv: fixedIv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7,\n })\n\n // 输出解密后的结果\n const decryptedText = decrypted.toString(CryptoJS.enc.Utf8)\n\n // 输出解密结果\n outputs['result'](decryptedText)\n } catch (error: any) {\n console.error('AES加密失败:', error)\n }\n })\n}\n","import Taro from '@tarojs/taro'\n\nexport type DataType = {}\n\nexport interface Inputs {\n url?: (fn: (path: string) => void) => void\n}\n\nexport interface Outputs {\n onSuccess: (value?: any) => void\n onFail: (value?: any) => void\n}\n\ninterface IOContext {\n inputs: Inputs\n outputs: Outputs\n}\n\nconst parseFileInfo = (url: string) => {\n try {\n // 解码URL中的中文字符\n const decodedUrl = decodeURIComponent(url)\n\n // 获取URL的最后一部分作为文件名\n const fileName = decodedUrl.split('/').pop()\n\n // 获取文件扩展名\n const fileExtension = fileName?.split('.')?.pop()?.toLowerCase()\n\n return {\n fileName: fileName, // 完整文件名\n extension: fileExtension, // 文件扩展名\n }\n } catch (error) {\n console.error('URL解析失败:', error)\n return null\n }\n}\n\nexport default (context: IOContext) => {\n const inputs: Inputs = context.inputs\n const outputs: Outputs = context.outputs\n\n inputs.url?.((path) => {\n try {\n // 判断是否为远程文件地址\n const isRemoteImage =\n path.startsWith('http://') || path.startsWith('https://')\n const fileInfo = parseFileInfo(path)\n\n const openDocument = (filePath: string) => {\n Taro.openDocument({\n filePath,\n showMenu: true,\n success: (res: any) => {\n outputs['onSuccess'](res)\n },\n fail: (res: any) => {\n console.error(res)\n outputs['onFail'](res)\n },\n })\n }\n\n if (isRemoteImage) {\n // 远程地址,先下载\n Taro.downloadFile({\n url: path,\n filePath: `${Taro.env.USER_DATA_PATH}/${fileInfo?.fileName}`,\n success: (res: any) => {\n if (res.statusCode === 200) {\n openDocument(res.filePath)\n } else {\n outputs['onFail'](res)\n }\n },\n fail: (err: any) => {\n outputs['onFail'](err)\n },\n })\n } else {\n // 本地地址,直接打开文件预览\n openDocument(path)\n }\n } catch (error: any) {\n console.error('打开文档失败:', error)\n outputs.onFail?.({\n errMsg: error?.message || '打开文档失败',\n })\n }\n })\n}\n"],"names":["createContext","useContext","useState","useRef","useMemo","useEffect","Taro","_jsx","_jsxs","View","useTabItemTap","this","isObject","freeGlobal","global","require$$0","root","now","trimmedEndIndex","baseTrim","Symbol","objectProto","nativeObjectToString","symToStringTag","getRawTag","objectToString","require$$1","require$$2","baseGetTag","isObjectLike","isSymbol","toNumber","FUNC_ERROR_TEXT","debounce","throttle"],"mappings":"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AAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,C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,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI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","x_google_ignoreList":[23,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85]}
|