@mybricks/taro-core 0.1.2 → 0.1.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.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":["Taro","_jsx","jsx","_jsxs","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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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,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,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I,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,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAI,IAAI,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAE,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;;;;;;ACGv/N,IAAY,UAMX;AAND,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;;AAE7B,CAAC,EANW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;CAQI;AACxB,IAAA,CAAC,UAAU,CAAC,IAAI,GAAG;AACjB,QACA,IAAI,EAAE,UAAU,CAAC,IAAI;AACtB,KAAA;AACD,IAAA,CAAC,UAAU,CAAC,MAAM,GAAG;AACnB,QACA,IAAI,EAAE,UAAU,CAAC,MAMlB,CAAA;AACD,IAAA,CAAC,UAAU,CAAC,aAAa,GAAG;AAC1B,QACA,IAAI,EAAE,UAAU,CAAC,aAgClB,CAAA;AACD,IAAA,CAAC,UAAU,CAAC,WAAW,GAAG;AACxB,QACA,IAAI,EAAE,UAAU,CAAC,WAWlB;;;ACvEH,SAAS,MAAM,CAAC,IAAY,EAAA;AACxB,IAAA,OAAO,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA,QAAA,EAAW,IAAI,GAAG;AAChF;AAEA;;;;AAIG;AACG,SAAU,OAAO,CAAC,KAAc,EAAA;AAClC,IAAA,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;AAChD;AAUA;;;AAGG;AACG,SAAU,QAAQ,CAAC,KAAc,EAAA;AACnC,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AAClC;AAEA;;;AAGG;AACG,SAAU,QAAQ,CAAC,KAAc,EAAA;AACnC,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AAClC;AA0BA;;;AAGG;AACG,SAAU,MAAM,CAAC,KAAc,EAAA;AACjC,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;AAChC;AAUA;;;AAGG;AACG,SAAUC,UAAQ,CAAC,KAAc,EAAA;AACnC,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AAClC;;AC1DA,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,KAAI;;IAClD,IAAI,MAAM,GAAG,KAAK;AAClB,IAAA,IAAI,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE;AAClC,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE;QACpC,OAAO,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAG,MAAM,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,MAAM;IACnC;AAEA,IAAA,IACE,UAAU,KAAK,UAAU,CAAC,aAAa;AACvC,QAAA,UAAU,KAAK,UAAU,CAAC,WAAW,EACrC;QACA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IACpC;AAEA,IAAA,OAAO,MAAM;AACf,CAAC;AAED,cAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAG,MAAM,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,CAAC,UAAU,KAAI;;QAChC,IAAI,QAAQ,GAAG,UAAU;AAEzB,QAAA,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;AAEvD,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,KAAI,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJ,IAAI,CAAE,UAAU,0CAAE,UAAU,CAAA,EAAE;YACvD,QAAQ,GAAG,CAAA,EAAA,GAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM;AACnC,YAAA,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;YAC5B;QACF;AAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACzE,YAAA,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;YAC5B;QACF;AAEA,QAAA,QAAQ,GAAG,aAAa,CACtB,UAAU,EACV,aAAa,EACb,MAAM,KAAA,IAAA,IAAN,MAAM,uBAAN,MAAM,CAAG,aAAa,CAAC,CACxB;AACD,QAAA,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;QAC5B;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AChDD,kBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;IAExC,IAAI,SAAS,GAAQ,IAAI;AACzB,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;AACrD,IAAA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAc,CAAC,CAAC;AACvD,IAAA,MAAM,KAAK,GAAG,CAAC,GAAW,KAAK,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AACjD,IAAA,MAAM,MAAM,GAAG,CAAC,GAAW,KAAK,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;IAEnD,MAAM,KAAK,GAAG,MAAK;QACjB,IAAI,SAAS,EAAE;YACb,YAAY,CAAC,SAAS,CAAC;YACvB,SAAS,GAAG,IAAI;QAClB;AACF,IAAA,CAAC;;IAGD,IAAI,KAAK,CAAC,SAAS,CAAC;AAAE,QAAA,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,uDAAG,CAAC,OAAY,KAAI;;AACtD,YAAA,IAAI;;AAEF,gBAAA,MAAM,KAAK,GAAG,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,KAAK,KAAI,IAAI,CAAC,KAAK,IAAI,IAAI;AAElD,gBAAA,KAAK,EAAE;AAEP,gBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAEnD,gBAAA,SAAS,GAAG,UAAU,CAAC,MAAK;;oBAC1B,IAAI,MAAM,CAAC,SAAS,CAAC;AAAE,wBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,OAAO,CAAC;AACjD,oBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBACrD,SAAS,GAAG,IAAI;gBAClB,CAAC,EAAE,KAAK,CAAC;YACX;YAAE,OAAO,KAAU,EAAE;AACnB,gBAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;AAC/B,gBAAA,KAAK,EAAE;YACT;AACF,QAAA,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,CAAC;AAAE,QAAA,CAAA,EAAA,GAAA,MAAM,CAAC,KAAK,uDAAG,CAAC,GAAa,KAAI;AACnD,YAAA,IAAI;AACF,gBAAA,MAAM,KAAK,GAAG,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,KAAK,KAAI,IAAI,CAAC,KAAK,IAAI,IAAI;AAE9C,gBAAA,KAAK,EAAE;AAEP,gBAAA,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAEjD,gBAAA,SAAS,GAAG,UAAU,CAAC,MAAK;AAC1B,oBAAA,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBACnD,SAAS,GAAG,IAAI;gBAClB,CAAC,EAAE,KAAK,CAAC;YACX;YAAE,OAAO,KAAU,EAAE;AACnB,gBAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;AAC/B,gBAAA,KAAK,EAAE;YACT;AACF,QAAA,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC,QAAQ,CAAC;AAAE,QAAA,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,MAAK;AACxC,YAAA,IAAI;gBACF,IAAI,SAAS,EAAE;AACb,oBAAA,KAAK,EAAE;AACP,oBAAA,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC7B;qBAAO;AACL,oBAAA,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACjC;YACF;YAAE,OAAO,KAAU,EAAE;AACnB,gBAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;YACjC;AACF,QAAA,CAAC,CAAC;AACJ,CAAC;;AC/ED,kBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,UAAU,uDAAG,CAAC,KAAU,KAAI;AACjC,QAAA,IAAI;YACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBACjCL,aAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AACtC,YAAA,CAAC,CAAC;AAEF,YAAA,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;QAC7B;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;QAC1B;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACZD,kBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,UAAU,uDAAG,CAAC,GAAG,KAAI;AAC1B,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG;QAE/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAA,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;YAC3B;QACF;AAEA,QAAA,IAAI;YACF,IAAI,KAAK,GAAGA,aAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AACtC,YAAA,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;QAC9B;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;QAC7B;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACtCD,IAAY,UAKX;AALD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EALW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;AAOtB,IAAY,QAIX;AAJD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAJW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;AAgCpB,MAAM,UAAU,GAAG,MAAK;AACtB,IAAA,MAAM,IAAI,GACRA,aAAI,CAAC,MAAM,EAAE,KAAKA,aAAI,CAAC,QAAQ,CAAC,GAAG,IAAIA,aAAI,CAAC,MAAM,EAAE,KAAK,SAAS;IACpE,IAAI,IAAI,EAAE;AACR,QAAA,IAAI,MAAM,CAAC,kBAAkB,KAAK,aAAa,EAAE;AAC/C,YAAA,OAAO,UAAU;QACnB;QACA,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AACjD,YAAA,OAAO,WAAW;QACpB;AACA,QAAA,OAAOA,aAAI,CAAC,QAAQ,CAAC,GAAG;IAC1B;SAAO;AACL,QAAA,OAAOA,aAAI,CAAC,MAAM,EAAE;IACtB;AACF,CAAC;AAED,YAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAG,MAAM,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,CAAC,KAAK,KAAI;;AAC3B,QAAA,MAAM,UAAU,GAAGK,UAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AAC/C,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,UAAU,aAAV,UAAU,KAAA,MAAA,GAAA,MAAA,GAAV,UAAU,CAAE,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI,CAAC,GAAG;AAE5C,QAAA,MAAM,IAAI,GAAG,UAAU,EAAE;QACzB,QAAQ,IAAI;YACV,KAAK,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,WAAW,EAAE;AACzC,gBAAA,MAAM,MAAM,GAAG;AACb,oBAAA,GAAG,EAAE,QAAQ;oBACb,OAAO,EAAE,MAAK;AACZ,wBAAA,OAAO,CAAC,WAAW,CAAC,EAAE;oBACxB,CAAC;oBACD,IAAI,EAAE,MAAK;AACT,wBAAA,OAAO,CAAC,QAAQ,CAAC,EAAE;oBACrB,CAAC;iBACF;AACD,gBAAA,IAAI,IAAI,KAAK,UAAU,KAAI,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,MAAA,GAAA,MAAA,GAAF,EAAE,CAAE,WAAW,CAAA,EAAE;oBAC1C,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE;wBACvC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,EAAE,CAAC,WAAW,0CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG,MAAM,CAAC;oBACtC;yBAAO;wBACL,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,EAAE,CAAC,WAAW,0CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG,MAAM,CAAC;oBACtC;gBACF;gBACA;YACF;YACA,KAAK,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,WAAW,EAAE;AACzC,gBAAA,IAAI,IAAI,KAAK,UAAU,KAAI,CAAA,EAAA,GAAA,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,MAAA,GAAA,MAAA,GAAF,EAAE,CAAE,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,YAAY,CAAA,EAAE;AACxD,oBAAA,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC;wBAC1B,OAAO,EAAE,MAAK;AACZ,4BAAA,OAAO,CAAC,WAAW,CAAC,EAAE;wBACxB,CAAC;wBACD,IAAI,EAAE,MAAK;AACT,4BAAA,OAAO,CAAC,QAAQ,CAAC,EAAE;wBACrB,CAAC;AACF,qBAAA,CAAC;gBACJ;gBACA;YACF;YACA,KAAK,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,EAAE;;gBAEtC,IACE,CAACL,aAAI,CAAC,MAAM,EAAE,KAAKA,aAAI,CAAC,QAAQ,CAAC,GAAG;AAClC,oBAAAA,aAAI,CAAC,MAAM,EAAE,KAAK,SAAS;AAC7B,oBAAA,QAAQ,EACR;oBACA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE;AACvC,wBAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ;AAC/B,wBAAA,OAAO,CAAC,WAAW,CAAC,EAAE;oBACxB;yBAAO;;AAEL,wBAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrB,wBAAA,OAAO,CAAC,WAAW,CAAC,EAAE;oBACxB;gBACF;gBACA;YACF;YAEA,KAAK,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY,EAAE;gBAC1CA,aAAI,CAAC,qBAAqB,CAAC;AACzB,oBAAA,GAAG,UAAU;AACb,oBAAA,OAAO,CAAC,CAAC,EAAA;AACP,wBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACzB,CAAC;AACD,oBAAA,IAAI,CAAC,CAAC,EAAA;AACJ,wBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACtB,CAAC;AACF,iBAAA,CAAC;;;;;;;;;;;;gBAaF;YACF;;AAIJ,IAAA,CAAC,CAAC;AACJ,CAAC;;ACrID,YAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AAErC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,uDAAG,CAAC,GAAG,KAAI;AACpB,QAAA,IAAI;AACF,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;gBAChCA,aAAI,CAAC,UAAU,CAAC;AACd,oBAAA,GAAG,EAAE,GAAG;AACT,iBAAA,CAAC;YACJ;AAAO,iBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;gBACvCA,aAAI,CAAC,UAAU,CAAC;AACd,oBAAA,GAAG,EAAE,GAAG;AACT,iBAAA,CAAC;YACJ;AAAO,iBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;gBACrCA,aAAI,CAAC,QAAQ,CAAC;AACZ,oBAAA,GAAG,EAAE,GAAG;AACT,iBAAA,CAAC;YACJ;QACF;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;QACjC;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AChBD,cAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,uDAAG,CAAC,GAAa,KAAI;;AAC9B,QAAA,IAAI;AACF,YAAA,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC;YAC3C,MAAM,SAAS,GAAG,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,SAAS,MAAK,SAAS,GAAG,GAAG,CAAC,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI;;AAGvF,YAAA,MAAM,KAAK,GAAGA,aAAI,CAAC,eAAe,EAAE;AACpC,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AAErC,YAAA,IAAI,YAAY,KAAK,CAAC,EAAE;;AAEtB,gBAAA,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC5B;YACF;AAEA,YAAA,IAAI,KAAK,GAAG,YAAY,EAAE;;AAExB,gBAAA,OAAO,CAAC,MAAM,CAAC,eAAe,KAAK,CAAA,CAAA,CAAG,CAAC;gBACvC;YACF;AAEA,YAAA,IAAI,KAAK,KAAK,CAAC,EAAE;;gBAEfA,aAAI,CAAC,YAAY,CAAC;AAChB,oBAAA,KAAK,EAAE,CAAC;oBACR,SAAS;AACT,oBAAA,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAC9C,oBAAA,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC;AACpD,iBAAA,CAAC;YACJ;iBAAO;;gBAEL,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC9C,IAAI,UAAU,EAAE;oBACdA,aAAI,CAAC,YAAY,CAAC;wBAChB,KAAK;wBACL,SAAS;AACT,wBAAA,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;AACzE,wBAAA,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC;AACpD,qBAAA,CAAC;gBACJ;qBAAO;AACL,oBAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC3B;YACF;QACF;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;AAC/B,YAAA,OAAO,CAAC,MAAM,CAAC,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,OAAO,KAAI,QAAQ,CAAC;QAC5C;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AC1DD,iBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,MAAK;;AACjB,QAAA,IAAI;YACF,IAAI,MAAM,GAAG,CAAA,EAAA,GAAAA,aAAI,CAAC,kBAAkB,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM;AAE9C,YAAA,IAAI,IAAI,GAAG,CAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,KAAI,EAAE;AAC7B,YAAA,IAAI,KAAK,GAAG,CAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,MAAM,KAAI,EAAE;YAChC,IAAI,KAAK,GAAGA,aAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,IAAI,CAAC;AACjD,YAAA,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC/C;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;QACnC;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACND,iBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,uDAAG,CAAC,GAAsB,KAAI;;AAC5C,QAAA,IAAI;;YAEF,IAAI,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,OAAO,EAAE;gBACjBA,aAAI,CAAC,SAAS,CAAC;AACb,oBAAA,IAAI,OAAO,GAAG,KAAK;AACjB,0BAAE;AACE,4BAAA,KAAK,EAAE,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAH,GAAG,GAAI,EAAE;AAChB,4BAAA,QAAQ,EAAE,IAAI;AACf;AACH,0BAAE;AACE,4BAAA,GAAG,GAAG;AACN,4BAAA,KAAK,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,KAAK,mCAAI,EAAE;AACtB,4BAAA,QAAQ,EAAE,CAAC,GAAG,CAAC;AACb,kCAAE;AACF,kCAAE,OAAO,GAAG,CAAC,QAAQ,KAAK;AACxB,sCAAE,MAAM,CAAC,GAAG,CAAC,QAAQ;sCACnB,GAAG,CAAC,QAAQ;yBACnB,CAAC;oBACN,QAAQ,EAAE,MAAK;AACb,wBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;4BACrB,UAAU,CAAC,MAAK;AACd,gCAAA,OAAO,CAAC,gBAAgB,CAAC,EAAE;4BAC7B,CAAC,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,QAAQ,CAAC,CAAC;wBACrB;6BAAO;AACL,4BAAA,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC;wBAChC;oBACF,CAAC;AACF,iBAAA,CAAC;YACJ;iBAAO;;gBAELA,aAAI,CAAC,SAAS,CAAC;AACb,oBAAA,GAAG,IAAI;AACP,oBAAA,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,mCAAI,EAAE;oBACvB,QAAQ,EAAE,MAAK;AACb,wBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;4BACrB,UAAU,CAAC,MAAK;AACd,gCAAA,OAAO,CAAC,gBAAgB,CAAC,EAAE;4BAC7B,CAAC,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,QAAQ,CAAC,CAAC;wBACrB;6BAAO;AACL,4BAAA,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC;wBAChC;oBACF,CAAC;AACF,iBAAA,CAAC;YACJ;QACF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC;QACtC;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AC7DD,iBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,uDAAG,CAAC,GAAG,KAAI;QACzBA,aAAI,CAAC,SAAS,CAAC;AACb,YAAA,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,MAAK;AACb,gBAAA,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC;YAChC,CAAC;AACF,SAAA,CAAC;AACJ,IAAA,CAAC,CAAC;AACJ,CAAC;;ACXD,mBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,WAAW,uDAAG,CAAC,GAAG,KAAI;QAC3BA,aAAI,CAAC,WAAW,CAAC;AACf,YAAA,GAAG,IAAI;YACP,QAAQ,EAAE,MAAK;AACb,gBAAA,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC;YAClC,CAAC;AACF,SAAA,CAAC;AACJ,IAAA,CAAC,CAAC;AACJ,CAAC;;ACjBD,mBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,WAAW,uDAAG,CAAC,GAAG,KAAI;QAC3BA,aAAI,CAAC,WAAW,CAAC;AACf,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,QAAQ,EAAE,CAAC,CAAC,KAAI;AACd,gBAAA,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC;YAClC,CAAC;AACF,SAAA,CAAC;AACJ,IAAA,CAAC,CAAC;AACJ,CAAC;;ACED,aAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;IAExC,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,OAAO,GAAG,KAAI;;AAC1B,QAAA,IAAI;AACF,YAAA,IAAI,KAAK,GAAG;AACV,gBAAA,GAAG,IAAI;AACP,gBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,oBAAA,IAAI,GAAG,CAAC,OAAO,EAAE;;;;AAIf,wBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;;oBAE3B;yBAAO;AACL,wBAAA,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC;oBAC1B;gBACF,CAAC;aACF;YAED,IAAI,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,OAAO,KAAI,GAAG,EAAE;;gBAExB,KAAK,CAAC,OAAO,GAAG,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;gBACjC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAA,GAAA,GAAG,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;YAC/B;iBAAO;AACL,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,oBAAA,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;gBACrD;YACF;AAEA,YAAAA,aAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACvB;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC;QACtC;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACtCD,uBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;IAExC,CAAA,EAAA,GAAA,MAAM,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,OAAO,GAAG,KAAI;AACrC,QAAA,IAAI,QAAQ,GAAW,IAAI,CAAC,QAAQ,IAAI,EAAE;AAC1C,QAAA,IAAI;AACF,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACtB,QAAQ,GAAG,GAAG;YAChB;YAEAA,aAAI,CAAC,eAAe,CAAC;gBACnB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACzD;AACE,iBAAA,IAAI,CAAC,CAAC,GAAQ,KAAI;;gBAEjB,OAAO,CAAC,UAAU,CAAC,CAAC;oBAClB,KAAK,EAAE,GAAG,CAAC,QAAQ;oBACnB,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK;oBACnC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK;AACpC,iBAAA,CAAC;AACJ,YAAA,CAAC;iBACA,KAAK,CAAC,MAAK;;AAEV,gBAAA,OAAO,CAAC,UAAU,CAAC,EAAE;AACvB,YAAA,CAAC,CAAC;QACN;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;QAC5C;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACvCD,wBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;IAExC,CAAA,EAAA,GAAA,MAAM,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,OAAO,GAAG,KAAI;AACtC,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI;QAExB,IAAI,GAAG,EAAE;YACP,QAAQ,GAAG,GAAG;QAChB;;AAGA,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,YAAA,IAAI;AACF,gBAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACrC;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;YAC7B;QACF;QAEAA,aAAI,CAAC,gBAAgB,CAAC;AACpB,YAAA,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,MAAK;AACZ,gBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC;YAChC,CAAC;AACD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC;AACF,SAAA,CAAC;AACJ,IAAA,CAAC,CAAC;AACJ,CAAC;;SC7Be,IAAI,GAAA;AAClB,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,SAAS;AAC3E;;ACTA,MAAM,eAAe,CAAA;AAMnB,IAAA,WAAA,CAAY,OAA+B,EAAA;AACzC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;AACtC,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE;IACtC;IAEA,kBAAkB,GAAA;AAChB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,WAAW;YAChC,MAAM;YACN,SAAS;SACV;IACH;IAEQ,eAAe,GAAA;AACrB,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;AAC7C,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAA,UAAU,EAAE,CAAC,CAAC,sBAAsB,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;SACtE;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;QAEzC,IAAI,IAAI,EAAE,EAAE;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD;aAAO;AACL,YAAA,MAAM,YAAY,GAAG,IAAI,UAAU,CACjC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACnD,CAAC,MAAM;AACR,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC;QAC/C;IACF;AAEQ,IAAA,IAAI,CAAC,MAAc,EAAA;AACzB,QAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;IACtF;AACD;;ACrCa,oBAAA,EAAW,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAkE,EAAA;;AACrH,IAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QAChB;IACF;IAEA,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,uDAAG,CAAC,KAAU,KAAI;;AAEhC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1B,YAAA,IAAI,MAAM,GAAQ;AAChB,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,GAAG,EAAE,IAAI,CAAC,MAAO,CAAC,GAAG;gBACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ;AACxB,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAO,CAAC,IAAI;AACvB,gBAAA,QAAQ,EAAE;AACR,oBAAA,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;AAC1B,iBAAA;aACF;AAED,YAAA,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACtC,gBAAA,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;YAClC;YAEA,GAAG,CAAC,UAAU,CAAC;AACb,gBAAA,GAAG,MAAM;AACT,gBAAA,OAAO,CAAC,GAAQ,EAAA;AACd,oBAAA,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI;oBACtB,IAAI,OAAO,EAAE;AACX,wBAAA,IAAI;AACF,4BAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;wBAC/B;AAAE,wBAAA,OAAO,GAAG,EAAE,EAAC;oBACjB;AACA,oBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;gBAC/B,CAAC;AACD,gBAAA,IAAI,CAAC,GAAQ,EAAA;AACX,oBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gBACxB,CAAC;AACF,aAAA,CAAC;YACF;QACF;;AAGA,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpD,YAAA,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;AACpC,gBAAA,WAAW,EAAE,IAAI,CAAC,GAAI,CAAC,WAAW;AAClC,gBAAA,eAAe,EAAE,IAAI,CAAC,GAAI,CAAC,eAAe;AAC3C,aAAA,CAAC;AAEF,YAAA,MAAM,SAAS,GAAG,SAAS,CAAC,kBAAkB,EAAE;YAEhD,GAAG,CAAC,UAAU,CAAC;AACb,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,GAAG,EAAE,IAAI,CAAC,GAAI,CAAC,IAAI;gBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;AACxB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,QAAQ,EAAE;AACR,oBAAA,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;oBACzB,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,cAAc,EAAE,SAAS,CAAC,cAAc;oBACxC,SAAS,EAAE,SAAS,CAAC,SAAS;AAC/B,iBAAA;AACD,gBAAA,OAAO,CAAC,GAAQ,EAAA;AACd,oBAAA,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;AAC1B,wBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA,EAAG,IAAI,CAAC,GAAI,CAAC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAA,CAAE,CAAC;oBACjE;yBAAO;AACL,wBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;oBACxB;gBACF,CAAC;AACD,gBAAA,IAAI,CAAC,GAAQ,EAAA;AACX,oBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gBACxB,CAAC;AACF,aAAA,CAAC;YACF;QACF;AACF,IAAA,CAAC,CAAC;AACJ;;AC9EA,aAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,MAAK;AACjB,QAAA,IAAI;YACF,IAAI,MAAM,GAAG,EAAE;AAEf,YAAA,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;AAClB,gBAAA,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO;YAClC;YAEAA,aAAI,CAAC,KAAK,CAAC;AACT,gBAAA,GAAG,MAAM;AACT,gBAAA,OAAO,EAAE,CAAC,GAAG,KAAI;AACf,oBAAA,IAAI,GAAG,CAAC,IAAI,EAAE;wBACZ,OAAO,CAAC,SAAS,CAAC,CAAC;4BACjB,IAAI,EAAE,GAAG,CAAC,IAAI;AACf,yBAAA,CAAC;oBACJ;yBAAO;wBACL,OAAO,CAAC,MAAM,CAAC,CAAC;AACd,4BAAA,GAAG,GAAG;AACP,yBAAA,CAAC;oBACJ;gBACF,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,GAAG,KAAI;oBACZ,OAAO,CAAC,MAAM,CAAC,CAAC;AACd,wBAAA,GAAG,GAAG;AACP,qBAAA,CAAC;gBACJ,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;QACnC;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACzCD,sBAAe,CAAC,OAAkB,KAAI;AACtC,CAAC;;ACAD,6BAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,uDAAG,CAAC,KAAa,KAAI;AAClC,QAAA,IAAI;AACF,YAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBACtCA,aAAI,CAAC,qBAAqB,CAAC;AACzB,oBAAA,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,MAAK;AACZ,wBAAA,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACzB,CAAC;AACD,oBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wBAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;oBAC/B,CAAC;AACF,iBAAA,CAAC;YACJ;QACF;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;QACjC;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACjBD,kBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,MAAK;AACjB,QAAA,IAAI;YACFA,aAAI,CAAC,QAAQ,CAAC;gBACZ,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAI;;oBAChC,IAAI,MAAM,EAAE;wBACV,CAAA,EAAA,GAAA,OAAO,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;oBAC9C;yBAAO;AACL,wBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,EAAE,CAAC;oBACzB;gBACF,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAI;;oBACnB,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,wDAAG,EAAE,MAAM,EAAE,CAAC;gBACjC,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;AAC7B,YAAA,OAAO,CAAC,MAAM,CAAC,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,OAAO,KAAI,MAAM,CAAC;QAC1C;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACpBD,mBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,MAAK;AACxB,QAAA,IAAI;AACF,YAAA,IAAI,MAAM,GAAG;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;AAED,YAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;YAE7BA,aAAI,CAAC,WAAW,CAAC;AACf,gBAAA,GAAG,MAAM;AACT,gBAAA,OAAO,CAAC,GAAQ,EAAA;AACd,oBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;gBAC3B,CAAC;AACD,gBAAA,IAAI,CAAC,GAAQ,EAAA;AACX,oBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gBACxB,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;AAC/B,YAAA,OAAO,CAAC,MAAM,CAAC,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,OAAO,KAAI,QAAQ,CAAC;QAC5C;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACrCD,yBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,MAAK;AACvB,QAAA,IAAI;YACFA,aAAI,CAAC,iBAAiB,CAAC;gBACrB,KAAK,EAAE,IAAI,CAAC,WAAW;gBACvB,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,OAAO,EAAE,UAAU,GAAQ,EAAA;oBACzB,OAAO,CAAC,YAAY,CAAC,CAAC;AACpB,wBAAA,GAAG,GAAG;AACP,qBAAA,CAAC;gBACJ,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;QACjC;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACnBD,kBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,MAAK;AACvB,QAAA,IAAI;YACFA,aAAI,CAAC,WAAW,CAAC;AACf,gBAAA,KAAK,EAAE,IAAI,CAAC,UAAU;AACtB,gBAAA,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;AACpC,gBAAA,UAAU,EAAE,IAAI,CAAC,kBAAkB;gBACnC,OAAO,EAAE,UAAU,GAAQ,EAAA;;;;;AAIzB,oBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,GAAG,CAAC;gBAC7B,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,EAAE,MAAM,EAAO,KAAI;;oBACxB,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,wDAAG,EAAE,MAAM,EAAE,CAAC;gBACjC,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;AAC/B,YAAA,OAAO,CAAC,MAAM,CAAC,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,OAAO,KAAI,QAAQ,CAAC;QAC5C;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AC9BD,iBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,uDAAG,CAAC,GAAW,KAAI;;AACjC,QAAA,IAAI;AACF,YAAA,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC;YAE/B,IAAI,CAAC,WAAW,EAAE;AAChB,gBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,UAAU,CAAC;gBAC5B;YACF;YAEAA,aAAI,CAAC,aAAa,CAAC;gBACjB,WAAW;AACX,gBAAA,OAAO,EAAE,MAAK,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,IAAI,CAAC,CAAA,CAAA,CAAA;AACxC,gBAAA,IAAI,EAAE,CAAC,EAAE,MAAM,EAAO,KAAI,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,MAAA,OAAO,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,EAAE,MAAM,EAAE,CAAC,CAAA,CAAA,CAAA;AACxD,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;YAC/B,CAAA,EAAA,GAAA,OAAO,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG;gBACf,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,QAAQ;AACnC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACtBD,mBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,MAAK;;AACxB,QAAA,IAAI;YACFA,aAAI,CAAC,WAAW,CAAC;gBACf,IAAI,EAAE,OAAO;gBACb,cAAc,EAAE,CAAA,EAAA,GAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK;AAC7C,gBAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAO,EAAA;;oBAC7C,CAAA,EAAA,GAAA,OAAO,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;gBACjD,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,EAAE,MAAM,EAAO,KAAI;;oBACxB,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,wDAAG,EAAE,MAAM,EAAE,CAAC;gBACjC,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;YACjC,CAAA,EAAA,GAAA,OAAO,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG;gBACf,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,UAAU;AACrC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACtBD,sBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,uDAAG,CAAC,GAAG,KAAI;AACpB,QAAA,IAAI;YACFA,aAAI,CAAC,cAAc,CAAC;AAClB,gBAAA,QAAQ,EAAE,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,QAAQ;AACvB,gBAAA,SAAS,EAAE,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,SAAS;AACzB,gBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;;AACpB,oBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG;wBACrB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,SAAS,EAAE,GAAG,CAAC,SAAS;AACzB,qBAAA,CAAC;gBACJ,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;;AACjB,oBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,GAAG,CAAC;gBAC1B,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;AAC/B,YAAA,OAAO,CAAC,MAAM,CAAC,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,OAAO,KAAI,QAAQ,CAAC;QAC5C;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACrBD,kBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,GAAG,GAAQ,OAAO,CAAC,GAAG;AAC5B,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,uDAAG,CAAC,GAAG,KAAI;;AACpB,QAAA,IAAI;YACF,IAAI,EAAC,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,SAAS,CAAA,IAAI,EAAC,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,QAAQ,CAAA,EAAE;gBACrC,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;gBAC5C;YACF;AACA,YAAA,MAAM,GAAG,GAAG,CAAA,4CAAA,EAA+C,CAAA,EAAA,GAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,qCAAqC,CAAA,UAAA,EAAa,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,QAAQ,CAAA,CAAA,EAAI,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,SAAS,YAAY;YACvKA,aAAI,CAAC,OAAO,CAAC;gBACX,GAAG;AACH,gBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;;AACpB,oBAAA,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;wBACnD,MAAM,EAAE,MAAM,EAAE,GAAG,CAAA,EAAA,GAAA,GAAG,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;AACjC,wBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG;4BACrB,IAAI,EAAE,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS;AAC5C,4BAAA,OAAO,EAAE,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,OAAO;4BACxB,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;4BACtB,IAAI,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AACrC,yBAAA,CAAC;oBACJ;yBAAO;AACL,wBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG;AAClB,4BAAA,MAAM,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,GAAG,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,GAAG,CAAC,MAAM,mCAAI,MAAM;AAClD,yBAAA,CAAC;oBACJ;gBACF,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,EAAE,MAAM,EAAO,KAAI;;oBACxB,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,wDAAG,EAAE,MAAM,EAAE,CAAC;gBACjC,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;AAC/B,YAAA,OAAO,CAAC,MAAM,CAAC,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,OAAO,KAAI,QAAQ,CAAC;QAC5C;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACdD,oBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,GAAG,GAAQ,OAAO,CAAC,GAAG;AAC5B,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,UAAU,uDAAG,CAAC,GAAG,KAAI;;AAC1B,QAAA,IAAI;YACF,IAAI,EAAC,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,IAAI,CAAA,IAAI,EAAC,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,EAAE,CAAA,EAAE;gBAC1B,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;gBAC5C;YACF;YAEA,MAAM,GAAG,GAAG,CAAA,qDAAA,EACV,CAAA,EAAA,GAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,qCACjB,CAAA,MAAA,EAAS,CAAA,EAAA,GAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAA,CAAA,EAAI,CAAA,EAAA,GAAA,GAAG,KAAA,IAAA,IAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAA,IAAA,EAClD,CAAA,EAAA,GAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QACX,CAAA,CAAA,EAAI,CAAA,EAAA,GAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAA,0CAAA,CAA4C;YAClEA,aAAI,CAAC,OAAO,CAAC;gBACX,GAAG;AACH,gBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;;AACpB,oBAAA,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;wBACnD,MAAM,EAAE,MAAM,EAAE,GAAG,CAAA,EAAA,GAAA,GAAG,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;wBACjC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;4BAChC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,KAAI;gCACjD,IAAI,MAAM,GAAG,EAA+C;;AAE5D,gCAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,oCAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACf,wCAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO;gCACvD;AAEA,gCAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oCAClD,MAAM,CAAC,CAAC,CAAC,GAAG;wCACV,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;wCAC/B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;qCACrC;gCACH;gCACA,OAAO;oCACL,MAAM;oCACN,KAAK,EAAE,IAAI,CAAC,KAAK;oCACjB,KAAK,EAAE,IAAI,CAAC,KAAK;oCACjB,UAAU,EAAE,IAAI,CAAC,UAAU;oCAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;oCACzB,WAAW,EAAE,IAAI,CAAC,WAAW;oCAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;oCAE7B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oCACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;iCACzB;AACH,4BAAA,CAAC,CAAC;AAEF,4BAAA,MAAM,OAAO,GAAG;AACd,gCAAA;AACE,oCAAA,EAAE,EAAE,CAAC;AACL,oCAAA,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,0CAAE,KAAK;AACxB,oCAAA,MAAM,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,0CAAE,MAAM;AAC1B,oCAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,0CAAE,IAAI;AAC1B,oCAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,IAAI,0CAAE,QAAQ;AAC5B,oCAAA,SAAS,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,IAAI,0CAAE,SAAS;AAC/B,iCAAA;AACD,gCAAA;AACE,oCAAA,EAAE,EAAE,CAAC;AACL,oCAAA,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,0CAAE,KAAK;AACtB,oCAAA,MAAM,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,0CAAE,MAAM;AACxB,oCAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,0CAAE,IAAI;AACxB,oCAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,EAAE,0CAAE,QAAQ;AAC1B,oCAAA,SAAS,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,EAAE,0CAAE,SAAS;AAC7B,iCAAA;6BACF;AAED,4BAAA,CAAA,EAAA,GAAA,OAAO,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG;gCACrB,OAAO;gCACP,SAAS;gCACT,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,6BAAA,CAAC;wBACJ;oBACF;yBAAO;AACL,wBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG;AAClB,4BAAA,MAAM,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,GAAG,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,GAAG,CAAC,MAAM,mCAAI,MAAM;AAClD,yBAAA,CAAC;oBACJ;gBACF,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,EAAE,MAAM,EAAO,KAAI;;oBACxB,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,wDAAG,EAAE,MAAM,EAAE,CAAC;gBACjC,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC;gBACb,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,QAAQ;AACnC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACjID,qBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,MAAK;AAC1B,QAAA,IAAI;YACFA,aAAI,CAAC,aAAa,CAAC;AACjB,gBAAA,OAAO,CAAC,GAAQ,EAAA;AACd,oBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;gBAC3B,CAAC;AACD,gBAAA,IAAI,CAAC,GAAQ,EAAA;AACX,oBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gBACxB,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC;gBACb,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,UAAU;AACrC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACbD,MAAM,SAAS,GAAG,CAAC,MAAuB,KAAI;AAC5C,IAAA,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AACxE,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO;AACrC,CAAC;AAED,oBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,uDAAG,CAAC,GAAG,KAAI;;AACpB,QAAA,IAAI;YACFA,aAAI,CAAC,YAAY,CAAC;gBAChB,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,QAAQ,CAAC;gBAClC,SAAS,EAAE,SAAS,CAAC,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,SAAS,CAAC;AACpC,gBAAA,OAAO,EAAE,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,OAAO;AACrB,gBAAA,IAAI,EAAE,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,IAAI;gBACf,KAAK,EAAE,CAAA,EAAA,GAAA,GAAG,KAAA,IAAA,IAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;gBACvB,OAAO,EAAE,MAAK;;AACZ,oBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,IAAI,CAAC;gBAC9B,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,EAAE,MAAM,EAAO,KAAI;;oBACxB,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,CAAC,wDAAG,EAAE,MAAM,EAAE,CAAC;gBACjC,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC;gBACb,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,UAAU;AACrC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AClCD,oBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,uDAAG,CAAC,GAAG,KAAI;;AACpB,QAAA,IAAI;AACF,YAAA,IAAI,MAAM,GAAG;gBACX,IAAI,EAAE,GAAG,CAAC,IAAI;AACd,gBAAA,OAAO,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAC,CAAC;aACvB;AAED,YAAA,IAAI,GAAG,CAAC,OAAO,EAAE;AACf,gBAAA,MAAM,CAAC,SAAS,CAAC,GAAG,CAAA,EAAA,GAAA,GAAG,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC,CAAC;YAClD;YAEAA,aAAI,CAAC,YAAY,CAAC;AAChB,gBAAA,GAAG,MAAM;gBACT,OAAO,EAAE,MAAK;AACZ,oBAAA,OAAO,CAAC,WAAW,CAAC,EAAE;gBACxB,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,KAAU,KAAI;AACnB,oBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;gBAC1B,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC;gBACb,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,QAAQ;AACnC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AClCD,8BAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,uDAAG,CAAC,SAAS,KAAI;AAC1B,QAAA,IAAI;;AAEF,YAAA,MAAM,aAAa,GACjB,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;AAErE,YAAA,MAAM,SAAS,GAAG,CAAC,QAAgB,KAAI;gBACrCA,aAAI,CAAC,sBAAsB,CAAC;oBAC1B,QAAQ;AACR,oBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;wBACpBA,aAAI,CAAC,SAAS,CAAC;AACb,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,IAAI,EAAE,MAAM;AACZ,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA,CAAC;AAEF,wBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;oBAC3B,CAAC;AACD,oBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wBAAA,QAAQ,GAAG,CAAC,KAAK;;4BAEf,KAAK,GAAG;gCACNA,aAAI,CAAC,SAAS,CAAC;AACb,oCAAA,KAAK,EAAE,IAAI;AACX,oCAAA,OAAO,EAAE,aAAa;AACtB,oCAAA,UAAU,EAAE,IAAI;AAChB,oCAAA,WAAW,EAAE,KAAK;AAClB,oCAAA,UAAU,EAAE,IAAI;AAChB,oCAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,wCAAA,IAAI,GAAG,CAAC,OAAO,EAAE;4CACfA,aAAI,CAAC,WAAW,CAAC;AACf,gDAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,oDAAA,IAAI,GAAG,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE;;wDAE7CA,aAAI,CAAC,sBAAsB,CAAC;4DAC1B,QAAQ;AACR,4DAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;gEACpBA,aAAI,CAAC,SAAS,CAAC;AACb,oEAAA,KAAK,EAAE,MAAM;AACb,oEAAA,IAAI,EAAE,MAAM;AACZ,oEAAA,QAAQ,EAAE,IAAI;AACf,iEAAA,CAAC;AAEF,gEAAA,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;4DAC3B,CAAC;AACD,4DAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gEAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;4DACxB,CAAC;AACF,yDAAA,CAAC;oDACJ;yDAAO;AACL,wDAAA,OAAO,CAAC,QAAQ,CAAC,EAAE;oDACrB;gDACF,CAAC;AACD,gDAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oDAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gDACxB,CAAC;AACF,6CAAA,CAAC;wCACJ;6CAAO;AACL,4CAAA,OAAO,CAAC,QAAQ,CAAC,EAAE;wCACrB;oCACF,CAAC;AACD,oCAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wCAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;oCACxB,CAAC;AACF,iCAAA,CAAC;gCACF;AAEF,4BAAA;AACE,gCAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gCACtB;;oBAEN,CAAC;AACF,iBAAA,CAAC;AACJ,YAAA,CAAC;YAED,IAAI,aAAa,EAAE;;gBAEjBA,aAAI,CAAC,YAAY,CAAC;AAChB,oBAAA,GAAG,EAAE,SAAS;AACd,oBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,wBAAA,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;AAC1B,4BAAA,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;wBAC7B;6BAAO;AACL,4BAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;wBACxB;oBACF,CAAC;AACD,oBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;oBACxB,CAAC;AACF,iBAAA,CAAC;YACJ;iBAAO;;gBAEL,SAAS,CAAC,SAAS,CAAC;YACtB;QACF;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC;gBACb,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,aAAa;AACxC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACzGD,8BAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,uDAAG,CAAC,SAAS,KAAI;AAC1B,QAAA,IAAI;;AAEF,YAAA,MAAM,aAAa,GACjB,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;AAErE,YAAA,MAAM,SAAS,GAAG,CAAC,QAAgB,KAAI;gBACrCA,aAAI,CAAC,sBAAsB,CAAC;oBAC1B,QAAQ;AACR,oBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;wBACpBA,aAAI,CAAC,SAAS,CAAC;AACb,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,IAAI,EAAE,MAAM;AACZ,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA,CAAC;AAEF,wBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;oBAC3B,CAAC;AACD,oBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wBAAA,QAAQ,GAAG,CAAC,KAAK;;4BAEf,KAAK,GAAG;gCACNA,aAAI,CAAC,SAAS,CAAC;AACb,oCAAA,KAAK,EAAE,IAAI;AACX,oCAAA,OAAO,EAAE,aAAa;AACtB,oCAAA,UAAU,EAAE,IAAI;AAChB,oCAAA,WAAW,EAAE,KAAK;AAClB,oCAAA,UAAU,EAAE,IAAI;AAChB,oCAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,wCAAA,IAAI,GAAG,CAAC,OAAO,EAAE;4CACfA,aAAI,CAAC,WAAW,CAAC;AACf,gDAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,oDAAA,IAAI,GAAG,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE;;wDAE7CA,aAAI,CAAC,sBAAsB,CAAC;4DAC1B,QAAQ;AACR,4DAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;gEACpBA,aAAI,CAAC,SAAS,CAAC;AACb,oEAAA,KAAK,EAAE,MAAM;AACb,oEAAA,IAAI,EAAE,MAAM;AACZ,oEAAA,QAAQ,EAAE,IAAI;AACf,iEAAA,CAAC;AAEF,gEAAA,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;4DAC3B,CAAC;AACD,4DAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gEAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;4DACxB,CAAC;AACF,yDAAA,CAAC;oDACJ;yDAAO;AACL,wDAAA,OAAO,CAAC,QAAQ,CAAC,EAAE;oDACrB;gDACF,CAAC;AACD,gDAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oDAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gDACxB,CAAC;AACF,6CAAA,CAAC;wCACJ;6CAAO;AACL,4CAAA,OAAO,CAAC,QAAQ,CAAC,EAAE;wCACrB;oCACF,CAAC;AACD,oCAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wCAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;oCACxB,CAAC;AACF,iCAAA,CAAC;gCACF;AAEF,4BAAA;AACE,gCAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gCACtB;;oBAEN,CAAC;AACF,iBAAA,CAAC;AACJ,YAAA,CAAC;YAED,IAAI,aAAa,EAAE;;gBAEjBA,aAAI,CAAC,YAAY,CAAC;AAChB,oBAAA,GAAG,EAAE,SAAS;AACd,oBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,wBAAA,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;AAC1B,4BAAA,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;wBAC7B;6BAAO;AACL,4BAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;wBACxB;oBACF,CAAC;AACD,oBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;oBACxB,CAAC;AACF,iBAAA,CAAC;YACJ;iBAAO;;gBAEL,SAAS,CAAC,SAAS,CAAC;YACtB;QACF;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC;gBACb,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,aAAa;AACxC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AClED,cAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;IAExC,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,OAAO,GAAG,KAAI;AAC1B,QAAA,IAAI;YACF,IAAI,QAAQ,GAAG,GAAG;;AAGlB,YAAA,IAAI,MAAM,GAAGA,aAAI,CAAC,qBAAqB,CAAC;AACtC,gBAAA,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI,CAAC,WAAW;gBACvB,MAAM,EAAE,IAAI,CAAC,YAAY;AAC1B,aAAA,CAAC;;YAGF,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;;AAGvC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,gBAAA,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;AACzB,gBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;AAC5B,oBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE;AAClC,oBAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC5B,wBAAA,KAAK,CAAC,MAAM,GAAG,OAAO;AACtB,wBAAA,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO;AAC7B,oBAAA,CAAC,CAAC;AACF,oBAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK;gBAC9B;YACF;;AAGA,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,gBAAA,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;AAEzB,gBAAA,QAAQ,OAAO,CAAC,IAAI;AAClB,oBAAA,KAAK,MAAM;AACT,wBAAA,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;wBAChC;AACF,oBAAA,KAAK,OAAO;AACV,wBAAA,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;wBACjC;AACF,oBAAA,KAAK,OAAO;AACV,wBAAA,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;wBACjC;AACF,oBAAA;wBACE;;YAEN;;YAGA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;AACpD,YAAA,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;AAE1B;;;;;;;;;;;;AAYG;AACH,YAAA,eAAe,SAAS,CAAC,OAAY,EAAE,OAAoB,EAAA;gBACzD,MAAM,EACJ,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,EACL,KAAK,EACL,MAAM,EACN,YAAY,GAAG,CAAC,EAChB,WAAW,GAAG,CAAC,EACf,WAAW,EACX,eAAe,GAChB,GAAG,OAAO;;AAGX,gBAAA,MAAM,eAAe,GAAG,WAAW,GAAG,CAAC;AACvC,gBAAA,MAAM,SAAS,GAAG,CAAC,GAAG,eAAe;AACrC,gBAAA,MAAM,SAAS,GAAG,CAAC,GAAG,eAAe;AACrC,gBAAA,MAAM,aAAa,GAAG,KAAK,GAAG,WAAW;AACzC,gBAAA,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW;;AAG3C,gBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC;gBACnE,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC;;gBAGrE,OAAO,CAAC,IAAI,EAAE;gBACd,OAAO,CAAC,SAAS,EAAE;gBACnB,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,qBAAqB,EAAE,SAAS,CAAC;AAC5D,gBAAA,OAAO,CAAC,KAAK,CACX,SAAS,GAAG,aAAa,EACzB,SAAS,EACT,SAAS,GAAG,aAAa,EACzB,SAAS,GAAG,cAAc,EAC1B,qBAAqB,CACtB;AACD,gBAAA,OAAO,CAAC,KAAK,CACX,SAAS,GAAG,aAAa,EACzB,SAAS,GAAG,cAAc,EAC1B,SAAS,EACT,SAAS,GAAG,cAAc,EAC1B,qBAAqB,CACtB;AACD,gBAAA,OAAO,CAAC,KAAK,CACX,SAAS,EACT,SAAS,GAAG,cAAc,EAC1B,SAAS,EACT,SAAS,EACT,qBAAqB,CACtB;AACD,gBAAA,OAAO,CAAC,KAAK,CACX,SAAS,EACT,SAAS,EACT,SAAS,GAAG,aAAa,EACzB,SAAS,EACT,qBAAqB,CACtB;gBACD,OAAO,CAAC,SAAS,EAAE;;AAGnB,gBAAA,OAAO,CAAC,SAAS,GAAG,WAAW;AAC/B,gBAAA,OAAO,CAAC,WAAW,GAAG,WAAW;gBACjC,OAAO,CAAC,MAAM,EAAE;;AAGhB,gBAAA,OAAO,CAAC,SAAS,GAAG,eAAe;gBACnC,OAAO,CAAC,IAAI,EAAE;;gBAGd,OAAO,CAAC,OAAO,EAAE;YACnB;AAEA;;;;;;;;;;;;AAYG;AACH,YAAA,eAAe,SAAS,CAAC,OAAY,EAAE,OAAoB,EAAA;gBACzD,MAAM,EACJ,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,EACL,KAAK,EACL,MAAM,EACN,YAAY,GAAG,CAAC,EAChB,WAAW,GAAG,CAAC,EACf,WAAW,EACX,QAAQ,GACT,GAAG,OAAO;;AAGX,gBAAA,MAAM,eAAe,GAAG,WAAW,GAAG,CAAC;AACvC,gBAAA,MAAM,SAAS,GAAG,CAAC,GAAG,eAAe;AACrC,gBAAA,MAAM,SAAS,GAAG,CAAC,GAAG,eAAe;AACrC,gBAAA,MAAM,aAAa,GAAG,KAAK,GAAG,WAAW;AACzC,gBAAA,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW;;AAG3C,gBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC;gBACnE,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC;;gBAGrE,OAAO,CAAC,IAAI,EAAE;gBACd,OAAO,CAAC,SAAS,EAAE;gBACnB,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,qBAAqB,EAAE,SAAS,CAAC;AAC5D,gBAAA,OAAO,CAAC,KAAK,CACX,SAAS,GAAG,aAAa,EACzB,SAAS,EACT,SAAS,GAAG,aAAa,EACzB,SAAS,GAAG,cAAc,EAC1B,qBAAqB,CACtB;AACD,gBAAA,OAAO,CAAC,KAAK,CACX,SAAS,GAAG,aAAa,EACzB,SAAS,GAAG,cAAc,EAC1B,SAAS,EACT,SAAS,GAAG,cAAc,EAC1B,qBAAqB,CACtB;AACD,gBAAA,OAAO,CAAC,KAAK,CACX,SAAS,EACT,SAAS,GAAG,cAAc,EAC1B,SAAS,EACT,SAAS,EACT,qBAAqB,CACtB;AACD,gBAAA,OAAO,CAAC,KAAK,CACX,SAAS,EACT,SAAS,EACT,SAAS,GAAG,aAAa,EACzB,SAAS,EACT,qBAAqB,CACtB;gBACD,OAAO,CAAC,SAAS,EAAE;;AAGnB,gBAAA,IAAI,WAAW,GAAG,CAAC,EAAE;AACnB,oBAAA,OAAO,CAAC,SAAS,GAAG,WAAW;AAC/B,oBAAA,OAAO,CAAC,WAAW,GAAG,WAAW;oBACjC,OAAO,CAAC,MAAM,EAAE;gBAClB;;gBAGA,OAAO,CAAC,IAAI,EAAE;;AAGd,gBAAA,OAAO,CAAC,SAAS,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,CACf;;gBAGD,OAAO,CAAC,OAAO,EAAE;YACnB;AAEA;;;;;;;;;;;;;;AAcG;AACH,YAAA,eAAe,QAAQ,CAAC,OAAY,EAAE,OAAoB,EAAA;AACxD,gBAAA,IAAI,EACF,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,EACL,KAAK,GAAG,SAAS,EACjB,MAAM,GAAG,SAAS,EAClB,KAAK,GAAG,SAAS,EACjB,QAAQ,GAAG,EAAE,EACb,UAAU,GAAG,QAAQ,EACrB,UAAU,EACV,SAAS,GAAG,MAAM,EAClB,OAAO,GAAG,EAAE,GACb,GAAG,OAAO;;gBAGX,OAAO,CAAC,IAAI,GAAG,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,QAAQ,cAAc;AACtD,gBAAA,OAAO,CAAC,SAAS,GAAG,KAAK;AACzB,gBAAA,OAAO,CAAC,YAAY,GAAG,QAAQ;;AAG/B,gBAAA,UAAU,GAAG,UAAU,IAAI,QAAQ;;AAGnC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAA;;gBAGhD,MAAM,KAAK,GAAG,EAAc;gBAC5B,IAAI,IAAI,GAAG,EAAE;;AAGb,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,oBAAA,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;AAErB,oBAAA,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE;AAClD,wBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;wBAChB,IAAI,GAAG,IAAI;oBACb;yBAAO;wBACL,IAAI,IAAI,IAAI;oBACd;gBACF;AACA,gBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;gBAGhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;AACzD,oBAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;oBACnB,IAAI,KAAK,GAAG,CAAC;;AAGb,oBAAA,IAAI,CAAC,KAAK,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,wBAAA,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE;4BACtD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC1B;wBACA,IAAI,IAAI,KAAK;oBACf;oBAEA,QAAQ,SAAS;AACf,wBAAA,KAAK,MAAM;4BACT,KAAK,GAAG,CAAC;4BACT;AACF,wBAAA,KAAK,QAAQ;AACX,4BAAA,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC;4BACzD;AACF,wBAAA,KAAK,OAAO;AACV,4BAAA,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK;4BACnD;AACF,wBAAA;4BACE;;AAGJ,oBAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzD;YACF;QACF;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,QAAQ;AACnC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AC3WD,+BAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,uBAAuB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,MAAK;AACpC,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;;QAGvB,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,MAAM,EAAE,UAAU;AACnB,aAAA,CAAC;YACF;QACF;AACA,QAAA,IAAI;;YAEFA,aAAI,CAAC,uBAAuB,CAAC;gBAC3B,OAAO,EAAE,CAAC,MAAM,CAAC;AACjB,gBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,oBAAA,IAAI,GAAG,CAAC,MAAM,KAAK,4BAA4B,EAAE;AAC/C,wBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;oBAC3B;yBAAO;AACL,wBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;oBACxB;gBACF,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gBACxB,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC;gBACb,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,QAAQ;AACnC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AC/BD,sBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,GAAG,GAAQ,OAAO,CAAC,GAAG;AAC5B,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,uDAAG,CAAC,GAAG,KAAI;;AACpB,QAAA,IAAI,MAAM,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QACnD,IAAI,CAAC,OAAO,CAAC,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,MAAA,GAAA,MAAA,GAAH,GAAG,CAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,MAAA,GAAA,MAAA,GAAH,GAAG,CAAE,IAAI,CAAC,EAAE;YAC/C,MAAM,GAAG,GAAG;QACd;QACA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,MAAA,GAAA,MAAA,GAAH,GAAG,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CACP,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG;YACjB,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC;YACxC,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAA,CACA,IAAI,CAAC,MAAK;;AACT,YAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,GAAG,CAAC;AAC3B,QAAA,CAAC,CAAC;AACN,IAAA,CAAC,CAAC;AACJ,CAAC;;ACrBD,yBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,GAAG,GAAQ,OAAO,CAAC,GAAG;AAC5B,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,uDAAG,CAAC,GAAG,KAAI;;QACtB,IAAI,MAAM,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,MAAA,GAAA,MAAA,GAAH,GAAG,CAAE,KAAK,CAAC,EAAE;YACxB,MAAM,GAAG,GAAG;QACd;AACA,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,MAAA,GAAA,MAAA,GAAH,GAAG,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CACP,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAA,CACjE,IAAI,CAAC,MAAK;;AACT,YAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,GAAG,CAAC;AAC3B,QAAA,CAAC,CAAC;AACN,IAAA,CAAC,CAAC;AACJ,CAAC;;ACfD,aAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,sBAAsB,uDAAG,CAAC,GAAG,KAAI;;AACtC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAA;AACtB,QAAA,IAAI;YACFA,aAAI,CAAC,cAAc,CAAC;gBAClB,QAAQ,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,SAAS,mCAAI,GAAG,CAAC,QAAQ;gBACvC,SAAS,EAAE,MAAA,GAAG,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,GAAG,CAAC,SAAS;gBACzC,QAAQ;gBACR,OAAO,EAAE,MAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,GAAG,CAAC,OAAO;AACpC,gBAAA,OAAO,EAAE,CAAA,UAAA,EAAa,GAAG,CAAC,SAAS,CAAA,CAAE;AACrC,gBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,oBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;gBAC3B,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gBACxB,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC;gBACb,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,UAAU;AACrC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACjCD,4BAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,oBAAoB,uDAAG,CAAC,GAAG,KAAI;AACpC,QAAA,IAAI;YACFA,aAAI,CAAC,oBAAoB,CAAC;gBACxB,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,UAAU,GAAQ,EAAA;;AACzB,oBAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC1B,oBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,6BAA6B,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,GAAG,CAAC;gBAC/C,CAAC;gBACD,IAAI,EAAE,UAAU,GAAQ,EAAA;;AACtB,oBAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC5B,oBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,0BAA0B,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,GAAG,CAAC;gBAC5C,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;YAChC,OAAO,CAAC,wBAAwB,CAAC;gBAC/B,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,SAAS;AACpC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AC1BD,+BAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,uBAAuB,uDAAG,CAAC,GAAG,KAAI;AACvC,QAAA,IAAI;YACFA,aAAI,CAAC,uBAAuB,CAAC;gBAC3B,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,OAAO,EAAE,UAAU,GAAQ,EAAA;;AACzB,oBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,gCAAgC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,GAAG,CAAC;gBAClD,CAAC;gBACD,IAAI,EAAE,UAAU,GAAQ,EAAA;;AACtB,oBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,6BAA6B,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,GAAG,CAAC;gBAC/C,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC;YAClC,OAAO,CAAC,2BAA2B,CAAC;gBAClC,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,WAAW;AACtC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AC1BD,oBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAG,MAAK;AACjB,QAAA,IAAI;YACFA,aAAI,CAAC,YAAY,CAAC;AAChB,gBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;oBACpB,OAAO,CAAC,WAAW,CAAC,CAAC;wBACnB,aAAa,EAAE,GAAG,CAAC,aAAa;wBAChC,EAAE,EAAE,GAAG,CAAC,EAAE;AACX,qBAAA,CAAC;gBACJ,CAAC;AACD,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,QAAQ,GAAG,CAAC,QAAQ;;AAElB,wBAAA,KAAK,QAAQ;AACb,wBAAA,KAAK,CAAC,KAAK;4BACTA,aAAI,CAAC,SAAS,CAAC;AACb,gCAAA,KAAK,EAAE,IAAI;AACX,gCAAA,OAAO,EAAE,cAAc;AACvB,gCAAA,UAAU,EAAE,IAAI;AAChB,gCAAA,WAAW,EAAE,KAAK;AAClB,gCAAA,UAAU,EAAE,IAAI;AAChB,gCAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,oCAAA,IAAI,GAAG,CAAC,OAAO,EAAE;wCACfA,aAAI,CAAC,WAAW,CAAC;AACf,4CAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,gDAAA,IAAI,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;oDAClCA,aAAI,CAAC,YAAY,CAAC;AAChB,wDAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;4DACpB,OAAO,CAAC,WAAW,CAAC,CAAC;gEACnB,aAAa,EAAE,GAAG,CAAC,aAAa;gEAChC,EAAE,EAAE,GAAG,CAAC,EAAE;AACX,6DAAA,CAAC;wDACJ,CAAC;AACD,wDAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,4DAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;wDACxB,CAAC;AACF,qDAAA,CAAC;gDACJ;qDAAO;AACL,oDAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gDACxB;4CACF,CAAC;AACF,yCAAA,CAAC;oCACJ;yCAAO;AACL,wCAAA,OAAO,CAAC,QAAQ,CAAC,EAAE;oCACrB;gCACF,CAAC;AACF,6BAAA,CAAC;4BACF;AAEF,wBAAA;AACE,4BAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;4BACtB;;gBAEN,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC;gBACb,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,UAAU;AACrC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACnED,oCAAe,CAAC,OAAkB,KAAI;AACtC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACQD,SAASK,UAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,IAAI,IAAI,GAAG,OAAO,KAAK;AACzB,EAAE,OAAO,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,CAAC;AAClE;;AAEA,IAAA,UAAc,GAAGA,UAAQ;;;;AC7BzB,IAAIC,YAAU,GAAG,OAAOC,cAAM,IAAI,QAAQ,IAAIA,cAAM,IAAIA,cAAM,CAAC,MAAM,KAAK,MAAM,IAAIA,cAAM;;AAE1F,IAAA,WAAc,GAAGD,YAAU;;ACH3B,IAAI,UAAU,GAAGE,WAAwB;;AAEzC;AACA,IAAI,QAAQ,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI;;AAEhF;AACA,IAAIC,MAAI,GAAG,UAAU,IAAI,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE;;AAE9D,IAAA,KAAc,GAAGA,MAAI;;ACRrB,IAAIA,MAAI,GAAGD,KAAkB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,KAAG,GAAG,WAAW;AACrB,EAAE,OAAOD,MAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACxB,CAAC;;AAED,IAAA,KAAc,GAAGC,KAAG;;;;ACrBpB,IAAI,YAAY,GAAG,IAAI;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAe,CAAC,MAAM,EAAE;AACjC,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM;;AAE3B,EAAE,OAAO,KAAK,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA;AAC7D,EAAE,OAAO,KAAK;AACd;;AAEA,IAAA,gBAAc,GAAGA,iBAAe;;AClBhC,IAAI,eAAe,GAAGH,gBAA6B;;AAEnD;AACA,IAAI,WAAW,GAAG,MAAM;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,UAAQ,CAAC,MAAM,EAAE;AAC1B,EAAE,OAAO;AACT,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;AAC1E,MAAM,MAAM;AACZ;;AAEA,IAAA,SAAc,GAAGA,UAAQ;;AClBzB,IAAI,IAAI,GAAGJ,KAAkB;;AAE7B;AACA,IAAIK,QAAM,GAAG,IAAI,CAAC,MAAM;;AAExB,IAAA,OAAc,GAAGA,QAAM;;ACLvB,IAAIA,QAAM,GAAGL,OAAoB;;AAEjC;AACA,IAAIM,aAAW,GAAG,MAAM,CAAC,SAAS;;AAElC;AACA,IAAI,cAAc,GAAGA,aAAW,CAAC,cAAc;;AAE/C;AACA;AACA;AACA;AACA;AACA,IAAIC,sBAAoB,GAAGD,aAAW,CAAC,QAAQ;;AAE/C;AACA,IAAIE,gBAAc,GAAGH,QAAM,GAAGA,QAAM,CAAC,WAAW,GAAG,SAAS;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,WAAS,CAAC,KAAK,EAAE;AAC1B,EAAE,IAAI,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAED,gBAAc,CAAC;AACxD,MAAM,GAAG,GAAG,KAAK,CAACA,gBAAc,CAAC;;AAEjC,EAAE,IAAI;AACN,IAAI,KAAK,CAACA,gBAAc,CAAC,GAAG,SAAS;AACrC,IAAI,IAAI,QAAQ,GAAG,IAAI;AACvB,EAAA,CAAG,CAAC,OAAO,CAAC,EAAE,CAAA;;AAEd,EAAE,IAAI,MAAM,GAAGD,sBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/C,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,KAAK,CAACC,gBAAc,CAAC,GAAG,GAAG;AACjC,IAAA,CAAK,MAAM;AACX,MAAM,OAAO,KAAK,CAACA,gBAAc,CAAC;AAClC,IAAA;AACA,EAAA;AACA,EAAE,OAAO,MAAM;AACf;;AAEA,IAAA,UAAc,GAAGC,WAAS;;;;AC5C1B,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS;;AAElC;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,GAAG,WAAW,CAAC,QAAQ;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAc,CAAC,KAAK,EAAE;AAC/B,EAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC;;AAEA,IAAA,eAAc,GAAGA,gBAAc;;ACrB/B,IAAIL,QAAM,GAAGL,OAAoB;AACjC,IAAI,SAAS,GAAGW,UAAuB;AACvC,IAAI,cAAc,GAAGC,eAA4B;;AAEjD;AACA,IAAI,OAAO,GAAG,eAAe;AAC7B,IAAI,YAAY,GAAG,oBAAoB;;AAEvC;AACA,IAAI,cAAc,GAAGP,QAAM,GAAGA,QAAM,CAAC,WAAW,GAAG,SAAS;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASQ,YAAU,CAAC,KAAK,EAAE;AAC3B,EAAE,IAAI,KAAK,IAAI,IAAI,EAAE;AACrB,IAAI,OAAO,KAAK,KAAK,SAAS,GAAG,YAAY,GAAG,OAAO;AACvD,EAAA;AACA,EAAE,OAAO,CAAC,cAAc,IAAI,cAAc,IAAI,MAAM,CAAC,KAAK,CAAC;AAC3D,MAAM,SAAS,CAAC,KAAK;AACrB,MAAM,cAAc,CAAC,KAAK,CAAC;AAC3B;;AAEA,IAAA,WAAc,GAAGA,YAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;ACH3B,SAASC,cAAY,CAAC,KAAK,EAAE;AAC7B,EAAE,OAAO,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,QAAQ;AAClD;;AAEA,IAAA,cAAc,GAAGA,cAAY;;AC5B7B,IAAI,UAAU,GAAGd,WAAwB;AACzC,IAAI,YAAY,GAAGW,cAAyB;;AAE5C;AACA,IAAI,SAAS,GAAG,iBAAiB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,UAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,OAAO,OAAO,KAAK,IAAI,QAAQ;AACjC,KAAK,YAAY,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;AAC3D;;AAEA,IAAA,UAAc,GAAGA,UAAQ;;AC5BzB,IAAI,QAAQ,GAAGf,SAAsB;AACrC,IAAIH,UAAQ,GAAGc,UAAqB;AACpC,IAAI,QAAQ,GAAGC,UAAqB;;AAEpC;AACA,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;;AAEf;AACA,IAAI,UAAU,GAAG,oBAAoB;;AAErC;AACA,IAAI,UAAU,GAAG,YAAY;;AAE7B;AACA,IAAI,SAAS,GAAG,aAAa;;AAE7B;AACA,IAAI,YAAY,GAAG,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,UAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;AAChC,IAAI,OAAO,KAAK;AAChB,EAAA;AACA,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvB,IAAI,OAAO,GAAG;AACd,EAAA;AACA,EAAE,IAAInB,UAAQ,CAAC,KAAK,CAAC,EAAE;AACvB,IAAI,IAAI,KAAK,GAAG,OAAO,KAAK,CAAC,OAAO,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK;AAC5E,IAAI,KAAK,GAAGA,UAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK;AAClD,EAAA;AACA,EAAE,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;AAChC,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK;AACvC,EAAA;AACA,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AACzB,EAAE,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACvC,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC;AACnD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;AAC7C;;AAEA,IAAA,UAAc,GAAGmB,UAAQ;;AC/DzB,IAAInB,UAAQ,GAAGG,UAAqB;AACpC,IAAI,GAAG,GAAGW,KAAgB;AAC1B,IAAI,QAAQ,GAAGC,UAAqB;;AAEpC;AACA,IAAIK,iBAAe,GAAG,qBAAqB;;AAE3C;AACA,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG;AACxB,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,EAAE,IAAI,QAAQ;AACd,MAAM,QAAQ;AACd,MAAM,OAAO;AACb,MAAM,MAAM;AACZ,MAAM,OAAO;AACb,MAAM,YAAY;AAClB,MAAM,cAAc,GAAG,CAAC;AACxB,MAAM,OAAO,GAAG,KAAK;AACrB,MAAM,MAAM,GAAG,KAAK;AACpB,MAAM,QAAQ,GAAG,IAAI;;AAErB,EAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;AACjC,IAAI,MAAM,IAAI,SAAS,CAACD,iBAAe,CAAC;AACxC,EAAA;AACA,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,EAAE,IAAIpB,UAAQ,CAAC,OAAO,CAAC,EAAE;AACzB,IAAI,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO;AAC/B,IAAI,MAAM,GAAG,SAAS,IAAI,OAAO;AACjC,IAAI,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,OAAO;AAChF,IAAI,QAAQ,GAAG,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ;AACpE,EAAA;;AAEA,EAAE,SAAS,UAAU,CAAC,IAAI,EAAE;AAC5B,IAAI,IAAI,IAAI,GAAG,QAAQ;AACvB,QAAQ,OAAO,GAAG,QAAQ;;AAE1B,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS;AACnC,IAAI,cAAc,GAAG,IAAI;AACzB,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACtC,IAAI,OAAO,MAAM;AACjB,EAAA;;AAEA,EAAE,SAAS,WAAW,CAAC,IAAI,EAAE;AAC7B;AACA,IAAI,cAAc,GAAG,IAAI;AACzB;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC;AAC5C;AACA,IAAI,OAAO,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM;AAC9C,EAAA;;AAEA,EAAE,SAAS,aAAa,CAAC,IAAI,EAAE;AAC/B,IAAI,IAAI,iBAAiB,GAAG,IAAI,GAAG,YAAY;AAC/C,QAAQ,mBAAmB,GAAG,IAAI,GAAG,cAAc;AACnD,QAAQ,WAAW,GAAG,IAAI,GAAG,iBAAiB;;AAE9C,IAAI,OAAO;AACX,QAAQ,SAAS,CAAC,WAAW,EAAE,OAAO,GAAG,mBAAmB;AAC5D,QAAQ,WAAW;AACnB,EAAA;;AAEA,EAAE,SAAS,YAAY,CAAC,IAAI,EAAE;AAC9B,IAAI,IAAI,iBAAiB,GAAG,IAAI,GAAG,YAAY;AAC/C,QAAQ,mBAAmB,GAAG,IAAI,GAAG,cAAc;;AAEnD;AACA;AACA;AACA,IAAI,QAAQ,YAAY,KAAK,SAAS,KAAK,iBAAiB,IAAI,IAAI,CAAC;AACrE,OAAO,iBAAiB,GAAG,CAAC,CAAC,KAAK,MAAM,IAAI,mBAAmB,IAAI,OAAO,CAAC;AAC3E,EAAA;;AAEA,EAAE,SAAS,YAAY,GAAG;AAC1B,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE;AACpB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;AAC5B,MAAM,OAAO,YAAY,CAAC,IAAI,CAAC;AAC/B,IAAA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3D,EAAA;;AAEA,EAAE,SAAS,YAAY,CAAC,IAAI,EAAE;AAC9B,IAAI,OAAO,GAAG,SAAS;;AAEvB;AACA;AACA,IAAI,IAAI,QAAQ,IAAI,QAAQ,EAAE;AAC9B,MAAM,OAAO,UAAU,CAAC,IAAI,CAAC;AAC7B,IAAA;AACA,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS;AACnC,IAAI,OAAO,MAAM;AACjB,EAAA;;AAEA,EAAE,SAAS,MAAM,GAAG;AACpB,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,MAAM,YAAY,CAAC,OAAO,CAAC;AAC3B,IAAA;AACA,IAAI,cAAc,GAAG,CAAC;AACtB,IAAI,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS;AAC5D,EAAA;;AAEA,EAAE,SAAS,KAAK,GAAG;AACnB,IAAI,OAAO,OAAO,KAAK,SAAS,GAAG,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC;AAC/D,EAAA;;AAEA,EAAE,SAAS,SAAS,GAAG;AACvB,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE;AACpB,QAAQ,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC;;AAEvC,IAAI,QAAQ,GAAG,SAAS;AACxB,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,YAAY,GAAG,IAAI;;AAEvB,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,OAAO,KAAK,SAAS,EAAE;AACjC,QAAQ,OAAO,WAAW,CAAC,YAAY,CAAC;AACxC,MAAA;AACA,MAAM,IAAI,MAAM,EAAE;AAClB;AACA,QAAQ,YAAY,CAAC,OAAO,CAAC;AAC7B,QAAQ,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC;AAChD,QAAQ,OAAO,UAAU,CAAC,YAAY,CAAC;AACvC,MAAA;AACA,IAAA;AACA,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC;AAC9C,IAAA;AACA,IAAI,OAAO,MAAM;AACjB,EAAA;AACA,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM;AAC3B,EAAE,SAAS,CAAC,KAAK,GAAG,KAAK;AACzB,EAAE,OAAO,SAAS;AAClB;;AAEA,IAAA,UAAc,GAAGqB,UAAQ;;;;ACzKzB,qBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;;AAGxC,IAAA,MAAM,cAAc,GAAGA,UAAQ,CAC7B,CAAC,GAAQ,KAAI;AACX,QAAA,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;IACzB,CAAC,EACD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAC5C;AAED,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,uDAAG,CAAC,GAAG,KAAI;AACvB,QAAA,IAAI;YACF,cAAc,CAAC,GAAG,CAAC;QACrB;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;QACjC;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;AC1CD,IAAI,QAAQ,GAAGlB,UAAqB;AACpC,IAAI,QAAQ,GAAGW,UAAqB;;AAEpC;AACA,IAAI,eAAe,GAAG,qBAAqB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,EAAE,IAAI,OAAO,GAAG,IAAI;AACpB,MAAM,QAAQ,GAAG,IAAI;;AAErB,EAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;AACjC,IAAI,MAAM,IAAI,SAAS,CAAC,eAAe,CAAC;AACxC,EAAA;AACA,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;AACzB,IAAI,OAAO,GAAG,SAAS,IAAI,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO;AAChE,IAAI,QAAQ,GAAG,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ;AACpE,EAAA;AACA,EAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;AAC9B,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,UAAU,EAAE;AAChB,GAAG,CAAC;AACJ;;AAEA,IAAA,UAAc,GAAG,QAAQ;;;;AC9CzB,MAAM,OAAO,GAAG,CAAC,OAAkB,KAAI;;AACrC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;;AAGxC,IAAA,MAAM,cAAc,GAAGQ,UAAQ,CAC7B,CAAC,GAAQ,KAAI;;QACX,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG,GAAG,CAAC;AACzB,IAAA,CAAC,EACD,IAAI,CAAC,KAAK,EACV,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CACnD;AAED,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,uDAAG,CAAC,GAAQ,KAAI;AAC5B,QAAA,IAAI;YACF,cAAc,CAAC,GAAG,CAAC;QACrB;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;QACjC;AACF,IAAA,CAAC,CAAC;AACJ;AAEE,OAAe,CAAC,UAAU,GAAG,IAAI;;ACxBnC,iBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,uDAAG,CAAC,GAAG,KAAI;AACpB,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AACjC,gBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACrB;YACF;;AAGA,YAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CACtC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACtC;AACD,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACrC;;YAGD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE;AACpD,gBAAA,EAAE,EAAE,OAAO;AACX,gBAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG;AACvB,gBAAA,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK;AAC5B,aAAA,CAAC;;AAGF,YAAA,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;;AAG1E,YAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC;QACpC;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;QAClC;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACpCD,iBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI;AACnC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,uDAAG,CAAC,GAAG,KAAI;AACpB,QAAA,IAAI;;AAEF,YAAA,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AACjC,gBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACrB;YACF;;AAGA,YAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CACtC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACtC;AACD,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACrC;;YAGD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE;AACpD,gBAAA,EAAE,EAAE,OAAO;AACX,gBAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG;AACvB,gBAAA,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK;AAC5B,aAAA,CAAC;;AAGF,YAAA,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;;AAG3D,YAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;QAClC;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;QAClC;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACxCD,MAAM,aAAa,GAAG,CAAC,GAAW,KAAI;;AACpC,IAAA,IAAI;;AAEF,QAAA,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC;;QAG1C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;;QAG5C,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,EAAE;QAEhE,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,aAAa;SACzB;IACH;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;AAChC,QAAA,OAAO,IAAI;IACb;AACF,CAAC;AAED,oBAAe,CAAC,OAAkB,KAAI;;AACpC,IAAA,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM;AACrC,IAAA,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO;AAExC,IAAA,CAAA,EAAA,GAAA,MAAM,CAAC,GAAG,uDAAG,CAAC,IAAI,KAAI;;AACpB,QAAA,IAAI;;AAEF,YAAA,MAAM,aAAa,GACjB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AAC3D,YAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC;AAEpC,YAAA,MAAM,YAAY,GAAG,CAAC,QAAgB,KAAI;gBACxC3B,aAAI,CAAC,YAAY,CAAC;oBAChB,QAAQ;AACR,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,wBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;oBAC3B,CAAC;AACD,oBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAClB,wBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;oBACxB,CAAC;AACF,iBAAA,CAAC;AACJ,YAAA,CAAC;YAED,IAAI,aAAa,EAAE;;gBAEjBA,aAAI,CAAC,YAAY,CAAC;AAChB,oBAAA,GAAG,EAAE,IAAI;AACT,oBAAA,QAAQ,EAAE,CAAA,EAAGA,aAAI,CAAC,GAAG,CAAC,cAAc,CAAA,CAAA,EAAI,QAAQ,aAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,QAAQ,CAAA,CAAE;AAC5D,oBAAA,OAAO,EAAE,CAAC,GAAQ,KAAI;AACpB,wBAAA,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;AAC1B,4BAAA,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;wBAC5B;6BAAO;AACL,4BAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;wBACxB;oBACF,CAAC;AACD,oBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;oBACxB,CAAC;AACF,iBAAA,CAAC;YACJ;iBAAO;;gBAEL,YAAY,CAAC,IAAI,CAAC;YACpB;QACF;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;YAC/B,CAAA,EAAA,GAAA,OAAO,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAG;gBACf,MAAM,EAAE,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,QAAQ;AACnC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;;;","x_google_ignoreList":[23,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85]}
1
+ {"version":3,"file":"index.esm.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 set(id: string, ref: any): void {\n this.registry[id] = ref;\n this.parent?.set(id, ref);\n }\n\n /** 删除引用 */\n delete(id: string): void {\n delete this.registry[id];\n this.parent?.delete(id);\n }\n\n /** 在本地查找真实引用(不创建影子) */\n findRealRef(id: string): any | undefined {\n if (this.registry[id] && !this.registry[id].__isShadow) {\n return this.registry[id];\n }\n return this.parent?.findRealRef(id);\n }\n\n /**\n * 创建影子代理对象\n * 调用时动态检查真实引用,未找到则缓冲到 TodoPool\n */\n private createShadowProxy(id: string): any {\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 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 // 优先从 scope(comRefs)获取 $index,与 proxyRefs 的 scopeIndex 保持一致\n // 避免条件容器 slot 继承了循环列表的 index 导致 push/pop 不匹配\n const index = scope?.current?.$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) {\n scope.current[id] = proxy;\n }\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: (val: any) => setShow(!!val),\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 moduleOutputs: Record<string, Function>;\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, parentComRefs?: any, moduleId?: string, moduleOutputs?: Record<string, Function>): ComContextStore {\n const { request, rootConfig } = getCoreRuntime();\n const todoPool = useMemo(() => new TodoPool(), []);\n\n const comRefs = useRef<any>(proxyRefs({ $inputs: {}, $outputs: {} }, undefined, todoPool));\n\n // 模块场景:把 $inputs 注册到页面 comRefs 上,使页面调用能找到 handler\n useMemo(() => {\n if (parentComRefs?.current && moduleId) {\n parentComRefs.current[moduleId] = comRefs.current.$inputs;\n }\n }, []);\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 const moduleOutputsRef = useRef<Record<string, Function>>(moduleOutputs || {});\n\n return useMemo(() => ({\n comRefs,\n $vars,\n $fxs,\n todoPool,\n appContext,\n moduleOutputs: moduleOutputsRef.current,\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 { controller, onEvents, parentComRefs, moduleId, ...restProps } = props;\n const contextStore = useAppCreateContext(id, parentComRefs, moduleId, onEvents);\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 {...restProps} />\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":["Taro","_jsx","jsx","_jsxs","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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AS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SA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","x_google_ignoreList":[23,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85]}