@ibiz-template/runtime 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +69 -2
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/engine/md-view.engine.d.ts +2 -0
- package/out/engine/md-view.engine.d.ts.map +1 -1
- package/out/engine/md-view.engine.js +3 -2
- package/out/interface/controller/controller/control/i-calendar-exp-bar.controller.d.ts +15 -0
- package/out/interface/controller/controller/control/i-calendar-exp-bar.controller.d.ts.map +1 -0
- package/out/interface/controller/controller/control/i-calendar-exp-bar.controller.js +1 -0
- package/out/interface/controller/controller/control/i-calendar.controller.d.ts +24 -0
- package/out/interface/controller/controller/control/i-calendar.controller.d.ts.map +1 -0
- package/out/interface/controller/controller/control/i-calendar.controller.js +1 -0
- package/out/interface/controller/controller/control/i-tree-exp-bar.controller.d.ts +1 -1
- package/out/interface/controller/controller/control/i-tree-exp-bar.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/index.d.ts +2 -0
- package/out/interface/controller/controller/control/index.d.ts.map +1 -1
- package/out/interface/controller/controller/control/index.js +2 -0
- package/out/interface/controller/event/control/i-calendar-exp-bar.event.d.ts +11 -0
- package/out/interface/controller/event/control/i-calendar-exp-bar.event.d.ts.map +1 -0
- package/out/interface/controller/event/control/i-calendar-exp-bar.event.js +1 -0
- package/out/interface/controller/event/control/i-calendar.event.d.ts +11 -0
- package/out/interface/controller/event/control/i-calendar.event.d.ts.map +1 -0
- package/out/interface/controller/event/control/i-calendar.event.js +1 -0
- package/out/interface/controller/event/control/i-tree.event.d.ts +19 -1
- package/out/interface/controller/event/control/i-tree.event.d.ts.map +1 -1
- package/out/interface/controller/event/control/index.d.ts +2 -0
- package/out/interface/controller/event/control/index.d.ts.map +1 -1
- package/out/interface/controller/event/control/index.js +2 -0
- package/out/interface/controller/event/view/i-calendar-exp-view.event.d.ts +11 -0
- package/out/interface/controller/event/view/i-calendar-exp-view.event.d.ts.map +1 -0
- package/out/interface/controller/event/view/i-calendar-exp-view.event.js +1 -0
- package/out/interface/controller/event/view/i-calendar-view.event.d.ts +12 -0
- package/out/interface/controller/event/view/i-calendar-view.event.d.ts.map +1 -0
- package/out/interface/controller/event/view/i-calendar-view.event.js +1 -0
- package/out/interface/controller/event/view/index.d.ts +2 -0
- package/out/interface/controller/event/view/index.d.ts.map +1 -1
- package/out/interface/controller/event/view/index.js +2 -0
- package/out/interface/controller/state/control/i-calendar-exp-bar.state.d.ts +11 -0
- package/out/interface/controller/state/control/i-calendar-exp-bar.state.d.ts.map +1 -0
- package/out/interface/controller/state/control/i-calendar-exp-bar.state.js +1 -0
- package/out/interface/controller/state/control/i-calendar.state.d.ts +162 -0
- package/out/interface/controller/state/control/i-calendar.state.d.ts.map +1 -0
- package/out/interface/controller/state/control/i-calendar.state.js +1 -0
- package/out/interface/controller/state/control/i-tree.state.d.ts +9 -2
- package/out/interface/controller/state/control/i-tree.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/index.d.ts +2 -0
- package/out/interface/controller/state/control/index.d.ts.map +1 -1
- package/out/interface/controller/state/control/index.js +2 -0
- package/out/interface/controller/state/view/i-calendar-exp-view.state.d.ts +11 -0
- package/out/interface/controller/state/view/i-calendar-exp-view.state.d.ts.map +1 -0
- package/out/interface/controller/state/view/i-calendar-exp-view.state.js +1 -0
- package/out/interface/controller/state/view/i-calendar-view.state.d.ts +11 -0
- package/out/interface/controller/state/view/i-calendar-view.state.d.ts.map +1 -0
- package/out/interface/controller/state/view/i-calendar-view.state.js +1 -0
- package/out/interface/controller/state/view/index.d.ts +2 -0
- package/out/interface/controller/state/view/index.d.ts.map +1 -1
- package/out/interface/controller/state/view/index.js +2 -0
- package/out/service/vo/calendar-item-data/calendar-item-data.d.ts +30 -0
- package/out/service/vo/calendar-item-data/calendar-item-data.d.ts.map +1 -0
- package/out/service/vo/calendar-item-data/calendar-item-data.js +76 -0
- package/out/service/vo/calendar-item-data/index.d.ts +2 -0
- package/out/service/vo/calendar-item-data/index.d.ts.map +1 -0
- package/out/service/vo/calendar-item-data/index.js +1 -0
- package/out/service/vo/index.d.ts +1 -0
- package/out/service/vo/index.d.ts.map +1 -1
- package/out/service/vo/index.js +1 -0
- package/package.json +6 -6
- package/src/engine/md-view.engine.ts +5 -2
- package/src/interface/controller/controller/control/i-calendar-exp-bar.controller.ts +19 -0
- package/src/interface/controller/controller/control/i-calendar.controller.ts +25 -0
- package/src/interface/controller/controller/control/i-tree-exp-bar.controller.ts +5 -1
- package/src/interface/controller/controller/control/index.ts +2 -0
- package/src/interface/controller/event/control/i-calendar-exp-bar.event.ts +10 -0
- package/src/interface/controller/event/control/i-calendar.event.ts +11 -0
- package/src/interface/controller/event/control/i-tree.event.ts +14 -1
- package/src/interface/controller/event/control/index.ts +2 -0
- package/src/interface/controller/event/view/i-calendar-exp-view.event.ts +11 -0
- package/src/interface/controller/event/view/i-calendar-view.event.ts +12 -0
- package/src/interface/controller/event/view/index.ts +2 -0
- package/src/interface/controller/state/control/i-calendar-exp-bar.state.ts +10 -0
- package/src/interface/controller/state/control/i-calendar.state.ts +172 -0
- package/src/interface/controller/state/control/i-tree.state.ts +10 -2
- package/src/interface/controller/state/control/index.ts +2 -0
- package/src/interface/controller/state/view/i-calendar-exp-view.state.ts +10 -0
- package/src/interface/controller/state/view/i-calendar-view.state.ts +10 -0
- package/src/interface/controller/state/view/index.ts +2 -0
- package/src/service/vo/calendar-item-data/calendar-item-data.ts +94 -0
- package/src/service/vo/calendar-item-data/index.ts +1 -0
- package/src/service/vo/index.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.system.min.js","sources":["index.esm.js"],"sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\nvar require_path_browserify = __commonJS({\n \"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\"(exports, module) {\n \"use strict\";\n function assertPath(path2) {\n if (typeof path2 !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path2));\n }\n }\n function normalizeStringPosix(path2, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path2.length; ++i) {\n if (i < path2.length)\n code = path2.charCodeAt(i);\n else if (code === 47)\n break;\n else\n code = 47;\n if (code === 47) {\n if (lastSlash === i - 1 || dots === 1) {\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += \"/..\";\n else\n res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += \"/\" + path2.slice(lastSlash + 1, i);\n else\n res = path2.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n }\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n }\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path2;\n if (i >= 0)\n path2 = arguments[i];\n else {\n if (cwd === void 0)\n cwd = process.cwd();\n path2 = cwd;\n }\n assertPath(path2);\n if (path2.length === 0) {\n continue;\n }\n resolvedPath = path2 + \"/\" + resolvedPath;\n resolvedAbsolute = path2.charCodeAt(0) === 47;\n }\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return \"/\" + resolvedPath;\n else\n return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path2) {\n assertPath(path2);\n if (path2.length === 0)\n return \".\";\n var isAbsolute = path2.charCodeAt(0) === 47;\n var trailingSeparator = path2.charCodeAt(path2.length - 1) === 47;\n path2 = normalizeStringPosix(path2, !isAbsolute);\n if (path2.length === 0 && !isAbsolute)\n path2 = \".\";\n if (path2.length > 0 && trailingSeparator)\n path2 += \"/\";\n if (isAbsolute)\n return \"/\" + path2;\n return path2;\n },\n isAbsolute: function isAbsolute(path2) {\n assertPath(path2);\n return path2.length > 0 && path2.charCodeAt(0) === 47;\n },\n join: function join() {\n if (arguments.length === 0)\n return \".\";\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === void 0)\n joined = arg;\n else\n joined += \"/\" + arg;\n }\n }\n if (joined === void 0)\n return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to)\n return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to)\n return \"\";\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47) {\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47) {\n lastCommonSep = i;\n } else if (i === 0) {\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47)\n lastCommonSep = i;\n }\n var out = \"\";\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47) {\n if (out.length === 0)\n out += \"..\";\n else\n out += \"/..\";\n }\n }\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47)\n ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path2) {\n return path2;\n },\n dirname: function dirname(path2) {\n assertPath(path2);\n if (path2.length === 0)\n return \".\";\n var code = path2.charCodeAt(0);\n var hasRoot = code === 47;\n var end = -1;\n var matchedSlash = true;\n for (var i = path2.length - 1; i >= 1; --i) {\n code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n matchedSlash = false;\n }\n }\n if (end === -1)\n return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1)\n return \"//\";\n return path2.slice(0, end);\n },\n basename: function basename(path2, ext) {\n if (ext !== void 0 && typeof ext !== \"string\")\n throw new TypeError('\"ext\" argument must be a string');\n assertPath(path2);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n if (ext !== void 0 && ext.length > 0 && ext.length <= path2.length) {\n if (ext.length === path2.length && ext === path2)\n return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path2.length - 1; i >= 0; --i) {\n var code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n end = i;\n }\n } else {\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end)\n end = firstNonSlashEnd;\n else if (end === -1)\n end = path2.length;\n return path2.slice(start, end);\n } else {\n for (i = path2.length - 1; i >= 0; --i) {\n if (path2.charCodeAt(i) === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1)\n return \"\";\n return path2.slice(start, end);\n }\n },\n extname: function extname(path2) {\n assertPath(path2);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var preDotState = 0;\n for (var i = path2.length - 1; i >= 0; --i) {\n var code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n return path2.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format(\"/\", pathObject);\n },\n parse: function parse(path2) {\n assertPath(path2);\n var ret = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n if (path2.length === 0)\n return ret;\n var code = path2.charCodeAt(0);\n var isAbsolute = code === 47;\n var start;\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path2.length - 1;\n var preDotState = 0;\n for (; i >= start; --i) {\n code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute)\n ret.base = ret.name = path2.slice(1, end);\n else\n ret.base = ret.name = path2.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path2.slice(1, startDot);\n ret.base = path2.slice(1, end);\n } else {\n ret.name = path2.slice(startPart, startDot);\n ret.base = path2.slice(startPart, end);\n }\n ret.ext = path2.slice(startDot, end);\n }\n if (startPart > 0)\n ret.dir = path2.slice(0, startPart - 1);\n else if (isAbsolute)\n ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n module.exports = posix;\n }\n});\n\n// src/config/global-config.ts\nvar GlobalConfig = class {\n constructor() {\n // 全局视图配置\n this.view = {\n enableDataInfoBar: true\n };\n // 全局表格配置\n this.grid = {\n editShowMode: \"cell\",\n editSaveMode: \"cell-blur\"\n };\n // 全局菜单配置\n this.appMenu = {\n enableEcho: false\n };\n // 全局代码表配置\n this.codeList = {\n timeout: 60 * 60 * 1e3\n };\n }\n};\n\n// src/register/register-center.ts\nvar RegisterCenter = class {\n constructor() {\n /**\n * 已注册的适配器Map\n * @author lxm\n * @date 2023-05-06 09:55:33\n * @protected\n * @type {Map<string, NewProvider>}\n */\n this.providers = /* @__PURE__ */ new Map();\n }\n /**\n * 注册适配器\n * @author lxm\n * @date 2023-05-06 09:55:55\n * @param {string} key 唯一标识\n * @param {NewProvider} newProvider 创建适配器实例的回调\n */\n register(key, newProvider) {\n this.providers.set(key, newProvider);\n }\n /**\n * 注销适配器\n * @author lxm\n * @date 2023-05-06 09:56:19\n * @param {string} key\n */\n unRegister(key) {\n this.providers.delete(key);\n }\n /**\n * 获取适配器的实例\n * @author lxm\n * @date 2023-05-06 09:56:34\n * @param {string} key 唯一标识\n * @param {...Parameters<NewProvider>} args 回调参数\n * @return {*} {(IProvider | undefined)}\n */\n get(key, ...args) {\n const func = this.providers.get(key);\n if (func) {\n return func(...args);\n }\n }\n};\n\n// src/command/app/app-func/app-func.ts\nimport { ModelError as ModelError4, RuntimeError as RuntimeError5 } from \"@ibiz-template/core\";\n\n// src/utils/nav-params/nav-params.ts\nimport { isEmpty } from \"lodash-es\";\nimport { isNilOrEmpty, notNilEmpty } from \"qx-util\";\nfunction convertNavData(naviDatas, ...origins) {\n if (!naviDatas || isEmpty(naviDatas)) {\n return {};\n }\n if (Object.prototype.toString.call(naviDatas) === \"[object Array]\") {\n return convertNavDataByArray(naviDatas, ...origins);\n }\n if (Object.prototype.toString.call(naviDatas) === \"[object Object]\") {\n return convertNavDataByObject(naviDatas, ...origins);\n }\n return {};\n}\nfunction convertNavDataByArray(naviDatas, ...origins) {\n const result = {};\n for (const naviData of naviDatas) {\n if (notNilEmpty(naviData.value) && !naviData.rawValue) {\n const findOrigin = origins.find((item) => {\n if (isNilOrEmpty(item)) {\n return false;\n }\n return (\n // proxy数据判断是否能拿到值\n item[naviData.value] || // 上下文等判断是否有这个属性,如果有且值为空,则赋该空值\n Object.prototype.hasOwnProperty.call(item, naviData.value)\n );\n });\n if (findOrigin) {\n result[naviData.key.toLowerCase()] = findOrigin[naviData.value];\n }\n } else {\n result[naviData.key.toLowerCase()] = naviData.value || null;\n }\n }\n return result;\n}\nfunction convertNavDataByObject(naviData, ...origins) {\n const result = {};\n const reg2 = /^%(.+)%$/;\n for (const key in naviData) {\n if (notNilEmpty(naviData[key]) && reg2.test(naviData[key])) {\n const valueKey = naviData[key].substring(1, naviData[key].length - 1);\n const findOrigin = origins.find((item) => {\n return Object.prototype.hasOwnProperty.call(item, valueKey);\n });\n if (findOrigin) {\n result[key.toLowerCase()] = findOrigin[valueKey];\n }\n } else {\n result[key.toLowerCase()] = naviData[key] || null;\n }\n }\n return result;\n}\nfunction convertObjectToNavParams(naviData) {\n const result = [];\n const reg2 = /^%(.+)%$/;\n for (const key in naviData) {\n let rawValue = true;\n let value = naviData[key];\n if (notNilEmpty(naviData[key]) && reg2.test(naviData[key])) {\n rawValue = false;\n value = naviData[key].substring(1, naviData[key].length - 1);\n }\n result.push({\n key: key.toLowerCase(),\n rawValue,\n value\n });\n }\n return result;\n}\nfunction formatMultiData(navParams, dataArr) {\n const result = {};\n if (!navParams) {\n return result;\n }\n const naviArr = Array.isArray(navParams) ? navParams : convertObjectToNavParams(navParams);\n const data1 = dataArr[0];\n naviArr.forEach((naviParam) => {\n const { rawValue, value } = naviParam;\n if (!rawValue && value && Object.prototype.hasOwnProperty.call(data1, value)) {\n result[value] = dataArr.map((item) => item[value]).join(\";\");\n }\n });\n return result;\n}\n\n// src/utils/nav-params/calc-nav-params.ts\nfunction calcNavParams(model, originParams) {\n const { deName, navFilter, pickupDEFName, navContexts, navParams } = model;\n const { context, params, data, derValue } = originParams;\n const resultContext = {};\n const resultParams = {};\n const deSrfkey = derValue || data.srfkey;\n if (deSrfkey) {\n if (deName) {\n resultContext[deName] = deSrfkey;\n }\n if (navFilter) {\n resultParams[navFilter] = deSrfkey;\n }\n if (pickupDEFName) {\n resultParams[\"n_\".concat(pickupDEFName.toLowerCase(), \"_eq\")] = deSrfkey;\n }\n }\n const tempContext = convertNavData(navContexts, context, params, data);\n const tempParams = convertNavData(navParams, context, params, data);\n Object.assign(resultContext, tempContext);\n Object.assign(resultParams, tempParams);\n return {\n resultContext,\n resultParams\n };\n}\n\n// src/utils/open-redirect-view/open-redirect-view.ts\nimport { RuntimeError, RuntimeModelError } from \"@ibiz-template/core\";\nimport { isNilOrEmpty as isNilOrEmpty2, notNilEmpty as notNilEmpty2 } from \"qx-util\";\nimport qs from \"qs\";\n\n// src/model/utils/util.ts\nfunction findModelChild(models, id) {\n if (models) {\n const model = models.find((item) => item.id === id);\n if (model) {\n return model;\n }\n }\n return null;\n}\nfunction getControl(view, key) {\n var _a, _b;\n let controls = view.controls || [];\n if ((_b = (_a = view.viewLayoutPanel) == null ? void 0 : _a.controls) == null ? void 0 : _b.length) {\n controls = controls.concat(view.viewLayoutPanel.controls);\n }\n return controls.find((item) => {\n return item.name === key || item.codeName === key || item.id === key;\n });\n}\nfunction getAppViewRef(view, key) {\n var _a, _b;\n let appViewRefs = view.appViewRefs || [];\n if ((_b = (_a = view.viewLayoutPanel) == null ? void 0 : _a.appViewRefs) == null ? void 0 : _b.length) {\n appViewRefs = appViewRefs.concat(view.viewLayoutPanel.appViewRefs);\n }\n return appViewRefs.find((item) => {\n return item.name === key || item.id === key;\n });\n}\nfunction parseUserParams(userParams) {\n const navigateContexts = {};\n const navigateParams = {};\n const other = {};\n for (const key in userParams) {\n if (Object.prototype.hasOwnProperty.call(userParams, key)) {\n const param = userParams[key];\n if (key.indexOf(\".\") !== -1) {\n const splitArr = key.split(\".\");\n switch (splitArr[0]) {\n case \"SRFNAVPARAM\":\n Object.assign(navigateContexts, { [splitArr[1]]: param });\n break;\n case \"SRFNAVCTX\":\n Object.assign(navigateParams, { [splitArr[1]]: param });\n break;\n default:\n Object.assign(other, { key: param });\n break;\n }\n }\n }\n }\n return { navigateContexts, navigateParams, other };\n}\n\n// src/model/layout/layout.ts\nfunction calcLayoutHeightWidth(layoutPos) {\n const { width, height, widthMode, heightMode } = layoutPos;\n const result = { width: \"\", height: \"\" };\n if (widthMode === \"FULL\") {\n result.width = \"100%\";\n } else if (width && width > 0) {\n if (width > 0 && width <= 1) {\n result.width = \"\".concat(width * 100, \"%\");\n } else if (widthMode === \"PERCENTAGE\") {\n result.width = \"\".concat(width, \"%\");\n } else {\n result.width = \"\".concat(width, \"px\");\n }\n }\n if (heightMode === \"FULL\") {\n result.height = \"100%\";\n } else if (height && height > 0) {\n if (height > 0 && height <= 1) {\n result.height = \"\".concat(height * 100, \"%\");\n } else if (heightMode === \"PERCENTAGE\") {\n result.height = \"\".concat(height, \"%\");\n } else {\n result.height = \"\".concat(height, \"px\");\n }\n }\n return result;\n}\nfunction calcContentAlignStyle(layoutPos) {\n const { valignSelf, halignSelf } = layoutPos;\n const result = {};\n if (valignSelf || halignSelf) {\n Object.assign(result, { display: \"flex\" });\n switch (valignSelf) {\n case \"TOP\":\n Object.assign(result, { \"align-items\": \"flex-start\" });\n break;\n case \"MIDDLE\":\n Object.assign(result, { \"align-items\": \"center\" });\n break;\n case \"BOTTOM\":\n Object.assign(result, { \"align-items\": \"flex-end\" });\n break;\n default:\n break;\n }\n switch (halignSelf) {\n case \"LEFT\":\n Object.assign(result, { \"justify-content\": \"flex-start\" });\n break;\n case \"CENTER\":\n Object.assign(result, { \"justify-content\": \"center\" });\n break;\n case \"RIGHT\":\n Object.assign(result, { \"justify-content\": \"flex-end\" });\n break;\n case \"JUSTIFY\":\n Object.assign(result, { \"justify-content\": \"space-between\" });\n break;\n default:\n break;\n }\n }\n return result;\n}\nfunction calcGridLayoutPos(layoutPos) {\n const {\n layout,\n colXS,\n colXSOffset,\n colSM,\n colSMOffset,\n colMD,\n colMDOffset,\n colLG,\n colLGOffset\n } = layoutPos;\n const calcActualValues = (span, offset) => {\n const multiplier = layout === \"TABLE_24COL\" ? 1 : 2;\n const spanDefault = layout === \"TABLE_24COL\" ? 24 : 12;\n const _span = (!span || span === -1 ? spanDefault : span) * multiplier;\n const _offset = !offset || offset === -1 ? void 0 : offset;\n return {\n span: _span,\n offset: _offset\n };\n };\n return {\n xs: calcActualValues(colXS, colXSOffset),\n sm: calcActualValues(colSM, colSMOffset),\n md: calcActualValues(colMD, colMDOffset),\n lg: calcActualValues(colLG, colLGOffset)\n };\n}\nfunction calcDynaClass(expression, data) {\n return ScriptFactory.execScriptFn({ data }, expression, {\n singleRowReturn: true\n });\n}\n\n// src/model/main-state/main-state.ts\nfunction matchMainState(appDataEntity, data) {\n const { mainStateAppDEFieldIds, demainStates } = appDataEntity;\n if (mainStateAppDEFieldIds && demainStates) {\n const values = [];\n mainStateAppDEFieldIds.forEach((field) => {\n values.push(data[field]);\n });\n return demainStates.find((item) => {\n const { stateValue, state2Value, state3Value } = item;\n let result = true;\n const stateValues = [stateValue, state2Value, state3Value];\n for (let i = 0; i < values.length; i++) {\n if (\"\".concat(values[i]) !== \"\".concat(stateValues[i])) {\n result = false;\n break;\n }\n }\n return result;\n });\n }\n}\nfunction calcMainStateOPPrivsStrs(mainState, appDataEntity) {\n const app = ibiz.hub.getApp().model;\n const { demainStateOPPrivs, opprivAllowMode } = mainState;\n const mainStateOPPrivIds = (demainStateOPPrivs == null ? void 0 : demainStateOPPrivs.map((item) => item.name)) || [];\n let opprivs = [];\n if (opprivAllowMode) {\n opprivs = mainStateOPPrivIds;\n } else {\n const allOPPrivs = [...app.deopprivs, ...appDataEntity.deopprivs];\n opprivs = allOPPrivs.filter((item) => !mainStateOPPrivIds.includes(item.name)).map((item) => item.name);\n }\n return opprivs;\n}\n\n// src/model/data-entity/data-entity.ts\nimport { isNotNil } from \"ramda\";\nfunction calcDeCodeNameById(id) {\n const arr = id.split(\".\");\n return arr.pop();\n}\nfunction hasDeCodeName(params, entityId) {\n const codeName = calcDeCodeNameById(entityId);\n return isNotNil(params[codeName]);\n}\nasync function getDeACMode(appDEACModeId, entityId, srfappid) {\n var _a;\n const appDataEntity = await ibiz.hub.getAppDataEntity(entityId, srfappid);\n const deACMode = (_a = appDataEntity.appDEACModes) == null ? void 0 : _a.find((mode) => {\n return mode.id === appDEACModeId;\n });\n return deACMode;\n}\nfunction findDELogic(appDELogicId, entity) {\n var _a;\n return (_a = entity.appDELogics) == null ? void 0 : _a.find((item) => item.id === appDELogicId);\n}\nfunction filterFieldLogics(entity, type) {\n var _a, _b;\n const resultIds = [];\n (_a = entity.appDEFields) == null ? void 0 : _a.forEach((field) => {\n if (type === \"compute\" && field.computeAppDEFLogicId) {\n resultIds.push(field.computeAppDEFLogicId);\n } else if (type === \"change\" && field.onChangeAppDEFLogicId) {\n resultIds.push(field.onChangeAppDEFLogicId);\n } else if (type === \"default\" && field.defaultValueAppDEFLogicId) {\n resultIds.push(field.defaultValueAppDEFLogicId);\n }\n });\n return ((_b = entity.appDELogics) == null ? void 0 : _b.filter((item) => resultIds.includes(item.id))) || [];\n}\nfunction findFieldById(entity, fieldId) {\n var _a;\n return (_a = entity.appDEFields) == null ? void 0 : _a.find((item) => item.id === fieldId);\n}\n\n// src/model/ui-action/ui-action.ts\nasync function getUIActionById(id) {\n const [, , appId] = id.split(\"@\");\n const app = ibiz.hub.getApp(appId);\n return app.getUIAction(id);\n}\n\n// src/model/tree/tree-node.ts\nfunction getRootNode(tree) {\n return tree.detreeNodes.find((node) => node.rootNode);\n}\nfunction getTreeNode(tree, id) {\n return tree.detreeNodes.find((node) => node.id === id);\n}\n\n// src/model/tree/tree-node-rs.ts\nfunction isNodeRsShow(searchMode, hasQuery) {\n return searchMode === 3 || (hasQuery ? searchMode === 1 : searchMode === 2);\n}\nfunction getChildNodeRSs(tree, args) {\n const parentId = args.parentId || getRootNode(tree).id;\n return tree.detreeNodeRSs.filter((nodeRs) => {\n return nodeRs.parentDETreeNodeId === parentId && isNodeRsShow(nodeRs.searchMode, args.hasQuery);\n });\n}\n\n// src/model/grid/column.ts\nfunction findEditItem(grid, codeName) {\n var _a;\n return (_a = grid.degridEditItems) == null ? void 0 : _a.find((item) => {\n return item.codeName === codeName;\n });\n}\n\n// src/model/form/form-detail.ts\nfunction findChildFormDetails(parent) {\n let childDetails;\n switch (parent.detailType) {\n case \"TABPANEL\":\n childDetails = parent.deformTabPages;\n break;\n case \"FORMPAGE\":\n case \"TABPAGE\":\n case \"GROUPPANEL\":\n childDetails = parent.deformDetails;\n break;\n default:\n break;\n }\n return childDetails || [];\n}\n\n// src/model/view/view.ts\nfunction getControlsByView(view) {\n const { viewLayoutPanel } = view;\n const controls = view.controls || [];\n if (viewLayoutPanel) {\n controls.push(...viewLayoutPanel.controls || []);\n }\n return controls;\n}\nfunction getViewLogics(view) {\n const { viewLayoutPanel } = view;\n const viewLogics = view.appViewLogics || [];\n if (viewLayoutPanel) {\n viewLogics.push(...viewLayoutPanel.appViewLogics || []);\n }\n return viewLogics;\n}\nfunction getViewEngines(view) {\n const { viewLayoutPanel } = view;\n const appViewEngines = view.appViewEngines || [];\n if (viewLayoutPanel) {\n appViewEngines.push(...viewLayoutPanel.appViewEngines || []);\n }\n return appViewEngines;\n}\n\n// src/utils/open-redirect-view/open-redirect-view.ts\nasync function openRedirectView(appView, context, params = {}, data = []) {\n return openDERedirectView(\n appView,\n context,\n params,\n data\n );\n}\nasync function toLocalOpenWFRedirectView(context, linkUrl) {\n const i = linkUrl.lastIndexOf(\"?\");\n const queryStr = decodeURIComponent(\n linkUrl.substring(i + 1, linkUrl.length)\n );\n const params = qs.parse(queryStr, { delimiter: \";\" });\n const deName = params.srfdename || \"\";\n if (!deName) {\n throw new RuntimeError(\"\\u91CD\\u5B9A\\u5411\\u53C2\\u6570\\u7F3A\\u5C11\\u5B9E\\u4F53\\u540D\\u79F0\");\n }\n const app = ibiz.hub.getApp(context.srfappid);\n const deCodeName = app.deName2DeCodeName.get(deName.toUpperCase());\n if (!deCodeName) {\n throw new RuntimeError(\"\\u672A\\u627E\\u5230\\u6307\\u5B9A\\u5B9E\\u4F53\\u7684codeName: \".concat(deName));\n }\n params[deCodeName.toLowerCase()] = params[deName.toLowerCase()];\n const deRdViewCodeName = \"\".concat(deCodeName).concat(ibiz.env.isMob ? \"Mob\" : \"\", \"RedirectView\");\n const deRdView = await ibiz.hub.getAppView(deRdViewCodeName);\n delete params.srfdename;\n if (params.srfwf !== \"undo\") {\n const tags = params.processDefinitionKey.split(\"-\");\n const wfTag = tags[3];\n const wf = wfTag.substring(0, wfTag.lastIndexOf(\"v\"));\n const wfVersion = wfTag.substring(wfTag.lastIndexOf(\"v\"));\n params.wf = wf;\n params.wfVersion = wfVersion;\n }\n if (params.srfprocessinstanceid) {\n context.srfprocessinstanceid = params.srfprocessinstanceid;\n delete params.srfprocessinstanceid;\n }\n await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n deRdView.id,\n context,\n params\n );\n}\nasync function openDERedirectView(appView, context, params = {}, data = []) {\n const navContext = appView.appViewNavContexts || [];\n const navContextData = convertNavData(navContext, context, params);\n context = Object.assign(context.clone(), navContextData);\n const navParams = appView.appViewNavParams || [];\n const navParamsData = convertNavData(navParams, context, params);\n Object.assign(params, navParamsData);\n const entityId = appView.appDataEntityId;\n const key = calcDeCodeNameById(entityId);\n let curData = data[0] || {};\n context[key] = curData[key] || context[key] || params[key];\n const actionId = appView.getDataAppDEActionId;\n const app = ibiz.hub.getApp(appView.appId);\n const service = await app.deService.getService(entityId);\n ibiz.loading.showRedirect();\n try {\n const res = await service.exec(actionId || \"get\", context, params);\n if (res.ok) {\n curData = res.data;\n let linkUrl = curData.linkurl;\n if (linkUrl) {\n if (context.srfprocessinstanceid) {\n linkUrl += \";srfprocessinstanceid=\".concat(context.srfprocessinstanceid);\n }\n if (ibiz.env.dev && linkUrl.indexOf(\"appredirectview?\") !== -1) {\n linkUrl = linkUrl.slice(linkUrl.indexOf(\"appredirectview?\"));\n }\n if (linkUrl.startsWith(\"http://\") || linkUrl.startsWith(\"https://\")) {\n return new Promise((resolve) => {\n const newWindow = window.open(linkUrl, \"_blank\");\n if (newWindow) {\n newWindow.callback = () => {\n resolve({ ok: true, data: [] });\n };\n }\n });\n }\n if (linkUrl.startsWith(\"appredirectview?\")) {\n await toLocalOpenWFRedirectView(context, linkUrl);\n return { ok: true, data: [] };\n }\n return { ok: false, data: [] };\n }\n }\n } finally {\n ibiz.loading.hideRedirect();\n }\n const entity = await ibiz.hub.getAppDataEntity(entityId, appView.appId);\n const rdTag = await calcDERdTag(entity, appView, params, curData);\n const rdTagItems = rdTag.split(\":\");\n const wfRdTag = rdTagItems.length === 2 ? rdTag : rdTagItems.slice(0, 2).join(\":\");\n const deRdTag = \"\".concat(entity.name.toUpperCase(), \":\").concat(rdTag);\n const allRefViews = appView.redirectAppViewRefs;\n const refView = allRefViews == null ? void 0 : allRefViews.find((view) => {\n return view.name === deRdTag || view.name === rdTag || view.name === wfRdTag;\n });\n if (refView) {\n const viewId = refView.refAppViewId;\n if (viewId) {\n const result = await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n viewId,\n context,\n params,\n { data: [curData] }\n );\n if (result) {\n return result;\n }\n } else {\n throw new RuntimeModelError(refView, \"\\u672A\\u914D\\u7F6E\\u5B9E\\u9645\\u5F15\\u7528\\u89C6\\u56FE\");\n }\n } else {\n ibiz.log.error(\n \"\\u91CD\\u5B9A\\u5411\\u89C6\\u56FE\\u5F15\\u7528\\u6709\\uFF1A\",\n allRefViews == null ? void 0 : allRefViews.map(({ refAppViewId, name, realTitle }) => ({\n viewId: refAppViewId,\n tag: name,\n title: realTitle\n }))\n );\n throw new RuntimeModelError(\n appView,\n \"\\u672A\\u627E\\u5230\\u91CD\\u5B9A\\u5411\\u6807\\u8BC6[\".concat(rdTag, \"]\\u6216[\").concat(deRdTag, \"]\\u6216\\u5DE5\\u4F5C\\u6D41[\").concat(wfRdTag, \"]\\u5BF9\\u5E94\\u89C6\\u56FE\")\n );\n }\n return { ok: true, data: [] };\n}\nasync function calcDERdTag(entity, rdView, params, data) {\n let rdTag = \"\";\n const defView = \"\".concat(ibiz.env.isMob ? \"MOB\" : \"\", \"EDITVIEW\");\n const srfWf = params.srfwf;\n if (notNilEmpty2(srfWf)) {\n if (notNilEmpty2(params.wf)) {\n return \"\".concat(defView, \":\").concat(srfWf.toUpperCase(), \":\").concat(params.wf.toUpperCase());\n }\n return \"\".concat(defView, \":\").concat(srfWf.toUpperCase());\n }\n let typeValue = \"\";\n const typeFieldId = rdView.typeAppDEFieldId;\n if (typeFieldId) {\n const { codeName } = findFieldById(entity, typeFieldId);\n const value = data[codeName.toLowerCase()];\n if (notNilEmpty2(value)) {\n typeValue = value;\n }\n }\n if (isNilOrEmpty2(typeValue)) {\n if (entity.indexTypeAppDEFieldId) {\n const { codeName } = findFieldById(entity, entity.indexTypeAppDEFieldId);\n typeValue = data[codeName.toLowerCase()];\n }\n }\n if (isNilOrEmpty2(typeValue)) {\n if (entity.formTypeAppDEFieldId) {\n const { codeName } = findFieldById(entity, entity.formTypeAppDEFieldId);\n typeValue = data[codeName.toLowerCase()];\n }\n }\n if (notNilEmpty2(typeValue)) {\n rdTag = \"\".concat(defView, \":\").concat(typeValue.toUpperCase());\n } else {\n rdTag = \"\".concat(defView);\n }\n return rdTag;\n}\n\n// src/utils/verify/verify.ts\nimport { RuntimeError as RuntimeError2 } from \"@ibiz-template/core\";\nimport { isNilOrEmpty as isNilOrEmpty3, notNilEmpty as notNilEmpty3 } from \"qx-util\";\nimport { isNil } from \"ramda\";\nfunction testCond(value, op, value2) {\n if (Object.is(op, \"IN\")) {\n return contains(value, value2);\n }\n if (Object.is(op, \"NOTIN\")) {\n return !contains(value, value2);\n }\n switch (op) {\n case \"EQ\":\n return \"\".concat(value) === \"\".concat(value2);\n case \"NOTEQ\":\n return \"\".concat(value) !== \"\".concat(value2);\n case \"LT\":\n return compare(value, value2) < 0;\n case \"LTANDEQ\":\n return compare(value, value2) <= 0;\n case \"GT\":\n return compare(value, value2) > 0;\n case \"GTANDEQ\":\n return compare(value, value2) >= 0;\n case \"ISNULL\":\n return isNilOrEmpty3(value);\n case \"ISNOTNULL\":\n return notNilEmpty3(value);\n case \"TESTNULL\":\n return isNil(value);\n case \"IN\":\n return contains(value, value2);\n case \"NOTIN\":\n return !contains(value, value2);\n case \"LIKE\":\n return strContain(value, value2);\n case \"LEFTLIKE\":\n return strContain(value, value2, \"start\");\n case \"RIGHTLIKE\":\n return strContain(value, value2, \"end\");\n default:\n throw new RuntimeError2(\"\\u503C\\u64CD\\u4F5C\\uFF1A\".concat(op, \"\\uFF0C\\u6682\\u672A\\u652F\\u6301\"));\n }\n}\nfunction compare(value, value2) {\n const number1 = Number(value);\n const number2 = Number(value2);\n if (!Number.isNaN(number1) && !Number.isNaN(number2)) {\n return compareNumber(number1, number2);\n }\n const date1 = new Date(value).getTime();\n const date2 = new Date(value2).getTime();\n if (!Number.isNaN(date1) && !Number.isNaN(date2)) {\n return compareNumber(date1, date2);\n }\n throw new RuntimeError2(\"\".concat(value, \" \\u548C \").concat(value2, \" \\u65E0\\u6CD5\\u6BD4\\u8F83\\u5927\\u5C0F\"));\n}\nfunction compareNumber(value, value2) {\n if (Number.isNaN(value)) {\n value = 0;\n }\n if (Number.isNaN(value2)) {\n value2 = 0;\n }\n if (value > value2) {\n return 1;\n }\n if (value < value2) {\n return -1;\n }\n return 0;\n}\nfunction contains(value, value2) {\n if (!value2 || typeof value2 !== \"string\") {\n throw new RuntimeError2(\"\\u8303\\u56F4\\u6BD4\\u8F83\\u7684\\u6761\\u4EF6\\u503C\\u4E0D\\u5B58\\u6216\\u8005\\u4E0D\\u662F\\u5B57\\u7B26\\u4E32\");\n }\n if (value) {\n const arr = value2.split(\",\");\n return arr.includes(\"\".concat(value));\n }\n return false;\n}\nfunction strContain(value, value2, mode) {\n if (!value || !value2) {\n return false;\n }\n const val = \"\".concat(value).toUpperCase();\n const val2 = \"\".concat(value2).toUpperCase();\n const index = val.indexOf(val2);\n switch (mode) {\n case \"start\":\n return index === 0;\n case \"end\":\n return index + val2.length === val.length;\n default:\n return index !== -1;\n }\n}\n\n// src/utils/verify/de-rule-verify.ts\nimport { RuntimeError as RuntimeError3 } from \"@ibiz-template/core\";\nimport { isNilOrEmpty as isNilOrEmpty4 } from \"qx-util\";\nimport { isEmpty as isEmpty2, isNil as isNil2 } from \"ramda\";\n\n// src/utils/script/script-function.ts\nimport { mergeRight } from \"ramda\";\nvar DefaultOptions = {\n /** 是否是单行脚本,并把表达式结果return */\n singleRowReturn: false\n};\nvar ScriptFunction = class {\n constructor(argKeys, scriptCode, options = DefaultOptions) {\n this.argKeys = [];\n this.options = options;\n const code = this.formatCode(scriptCode, options);\n this.calcArgKeys(argKeys, options);\n this.scriptFn = new Function(...this.argKeys, code);\n }\n /**\n * 格式化脚本\n * @author lxm\n * @date 2023-07-25 11:02:33\n * @protected\n * @param {string} scriptCode\n * @param {IScriptFunctionOpts} options\n * @return {*} {string}\n */\n formatCode(scriptCode, options) {\n let code = scriptCode;\n if (options.singleRowReturn) {\n code = \"return (\".concat(code, \")\");\n }\n return code;\n }\n /**\n * 计算参数名称集合\n * @author lxm\n * @date 2023-07-25 11:42:37\n * @protected\n * @param {string[]} argKeys\n * @param {IScriptFunctionOpts} options\n */\n calcArgKeys(argKeys, options) {\n const keys = options.presetParams ? Object.keys(options.presetParams) : [];\n keys.push(...argKeys);\n keys.push(\"document\", \"el\", \"selector\");\n this.argKeys = Array.from(new Set(keys));\n }\n /**\n * 转换参数,把exec的对象参数转换成数组\n * @author lxm\n * @date 2023-07-25 11:22:03\n * @protected\n * @param {IParams} params\n * @return {*} {any[]}\n */\n convertArgs(params) {\n const { presetParams } = this.options;\n const _params = presetParams ? mergeRight(presetParams, params) : params;\n _params.document = document;\n _params.selector = (className) => {\n return document.getElementsByClassName(className);\n };\n const result = [];\n this.argKeys.forEach((key) => {\n result.push(_params[key]);\n });\n return result;\n }\n /**\n * 执行脚本代码\n * @author lxm\n * @date 2023-07-25 11:21:44\n * @param {IParams} params\n * @return {*}\n */\n exec(params) {\n const scriptArgs = this.convertArgs(params);\n return this.scriptFn(...scriptArgs);\n }\n};\n\n// src/utils/script/script-factory.ts\nvar ScriptFactory = class {\n /**\n * 创建脚本方法\n * @author lxm\n * @date 2023-07-25 11:47:48\n * @param {string[]} argKeys 参数列表\n * @param {string} scriptCode 脚本代码\n * @param {IScriptFunctionOpts} options 选项\n * @return {*} {ScriptFunction}\n */\n static createScriptFn(argKeys, scriptCode, options) {\n return new ScriptFunction(argKeys, scriptCode, options);\n }\n /**\n * 直接创建并执行脚本\n * @author lxm\n * @date 2023-07-25 02:21:28\n * @static\n * @param {IParams} args 脚本参数\n * @param {string} scriptCode 脚本代码\n * @param {IScriptFunctionOpts} options 选项\n * @return {*}\n */\n static execScriptFn(args, scriptCode, options) {\n return this.createScriptFn(Object.keys(args), scriptCode, options).exec(\n args\n );\n }\n};\n\n// src/utils/verify/de-rule-verify.ts\nfunction isGroupCondition(condition) {\n return condition.condType === \"GROUP\";\n}\nfunction isSimpleCondition(condition) {\n return condition.condType === \"SIMPLE\";\n}\nfunction isValueRange2Condition(condition) {\n return condition.condType === \"VALUERANGE2\";\n}\nfunction isRegExCondition(condition) {\n return condition.condType === \"REGEX\";\n}\nfunction isStringLengthCondition(condition) {\n return condition.condType === \"STRINGLENGTH\";\n}\nfunction isSysValueRuleCondition(condition) {\n return condition.condType === \"SYSVALUERULE\";\n}\nfunction verifyDeRules(name, data, condition) {\n const flag = { isPast: true, infoMessage: condition.ruleInfo };\n if (isGroupCondition(condition)) {\n const childRules = condition.conds;\n if (childRules && childRules.length > 0) {\n flag.isPast = logicForEach(\n childRules,\n (item) => {\n const { isPast, infoMessage } = verifyDeRules(name, data, item);\n flag.infoMessage = infoMessage;\n return isPast;\n },\n condition.condOp,\n !!condition.notMode\n );\n if (!flag.isPast && (condition.condOp === \"AND\" && condition.notMode || condition.condOp === \"OR\" && !condition.notMode)) {\n flag.infoMessage = condition.ruleInfo;\n }\n }\n } else {\n name = condition == null ? void 0 : condition.defname.toLowerCase();\n try {\n if (isSimpleCondition(condition)) {\n flag.isPast = !checkFieldSimpleRule(\n data[name],\n condition.condOp,\n condition.paramValue,\n condition.ruleInfo,\n condition.paramType,\n data,\n condition.keyCond\n );\n } else if (isValueRange2Condition(condition)) {\n flag.isPast = !checkFieldValueRangeRule(\n data[name],\n condition.minValue,\n condition.includeMinValue,\n condition.maxValue,\n condition.includeMaxValue,\n condition.ruleInfo,\n condition.keyCond\n );\n } else if (isRegExCondition(condition)) {\n flag.isPast = !checkFieldRegExRule(\n data[name],\n condition.regExCode,\n condition.ruleInfo,\n condition.keyCond\n );\n } else if (isStringLengthCondition(condition)) {\n flag.isPast = !checkFieldStringLengthRule(\n data[name],\n condition.minValue,\n condition.includeMinValue,\n condition.maxValue,\n condition.includeMaxValue,\n condition.ruleInfo,\n condition.keyCond\n );\n } else if (isSysValueRuleCondition(condition) && (condition == null ? void 0 : condition.sysValueRule)) {\n const { ruleType, regExCode, scriptCode, ruleInfo } = condition.sysValueRule;\n flag.infoMessage = condition.ruleInfo || ruleInfo;\n if (ruleType === \"REG\") {\n flag.isPast = !checkFieldRegExRule(\n data[name],\n regExCode,\n flag.infoMessage,\n condition.keyCond\n );\n } else if (ruleType === \"SCRIPT\") {\n const { isPast, infoMessage } = checkFieldScriptRule(\n data[name],\n data,\n scriptCode,\n flag.infoMessage,\n condition.keyCond\n );\n flag.isPast = isPast;\n flag.infoMessage = infoMessage || flag.infoMessage;\n }\n }\n } catch (error) {\n flag.isPast = false;\n }\n flag.isPast = condition.notMode ? !flag.isPast : flag.isPast;\n }\n return flag;\n}\nfunction logicForEach(array, callback, operateTag = \"AND\", isReverse = false) {\n if (!((array == null ? void 0 : array.length) > 0)) {\n return false;\n }\n let result = operateTag === \"AND\";\n for (let i = 0, len = array.length; i < len; i++) {\n const temp = callback(array[i], i);\n if (operateTag === \"AND\") {\n if (!temp) {\n result = false;\n break;\n }\n } else if (operateTag === \"OR\") {\n if (temp) {\n result = true;\n break;\n }\n }\n }\n return isReverse ? !result : result;\n}\nfunction checkFieldSimpleRule(value, op, value2, errorInfo, paramType, form, primaryModel) {\n if (Object.is(paramType, \"CURTIME\")) {\n value2 = \"\".concat(/* @__PURE__ */ new Date());\n }\n if (Object.is(paramType, \"ENTITYFIELD\")) {\n value2 = value2 ? value2.toLowerCase() : \"\";\n const _value2Field = form[value2] ? form[value2] : value2;\n value2 = _value2Field;\n }\n if (isNil2(errorInfo) || isEmpty2(errorInfo)) {\n errorInfo = \"\\u5185\\u5BB9\\u5FC5\\u987B\\u7B26\\u5408\\u503C\\u89C4\\u5219\";\n }\n const result = testCond(value, op, value2);\n if (!result) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n }\n return !result;\n}\nfunction checkFieldStringLengthRule(viewValue, minLength, indexOfMin, maxLength, indexOfMax, errorInfo, primaryModel) {\n if (isNilOrEmpty4(errorInfo)) {\n errorInfo = \"\\u5185\\u5BB9\\u957F\\u5EA6\\u5FC5\\u987B\\u7B26\\u5408\\u8303\\u56F4\\u89C4\\u5219\";\n }\n const judge = isNilOrEmpty4(viewValue);\n if (judge) {\n if (primaryModel) {\n throw new RuntimeError3(\"\\u503C\\u4E3A\\u7A7A\");\n }\n errorInfo = \"\\u503C\\u4E3A\\u7A7A\";\n return true;\n }\n const viewValueLength = viewValue.length;\n if (minLength !== null) {\n if (indexOfMin) {\n if (viewValueLength < minLength) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n } else if (viewValueLength <= minLength) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n }\n if (maxLength !== null) {\n if (indexOfMax) {\n if (viewValueLength > maxLength) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n } else if (viewValueLength >= maxLength) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n }\n errorInfo = \"\";\n return false;\n}\nfunction checkFieldRegExRule(viewValue, strReg, errorInfo, primaryModel) {\n if (isNilOrEmpty4(errorInfo)) {\n errorInfo = \"\\u503C\\u5FC5\\u987B\\u7B26\\u5408\\u6B63\\u5219\\u89C4\\u5219\";\n }\n const judge = isNilOrEmpty4(viewValue);\n if (judge) {\n if (primaryModel) {\n throw new RuntimeError3(\"\\u503C\\u4E3A\\u7A7A\");\n }\n errorInfo = \"\\u503C\\u4E3A\\u7A7A\";\n return true;\n }\n const regExp = new RegExp(strReg);\n if (!regExp.test(viewValue)) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n errorInfo = \"\";\n return false;\n}\nfunction checkFieldValueRangeRule(viewValue, minNumber, indexOfMin, maxNumber, indexOfMax, errorInfo, primaryModel) {\n if (isNilOrEmpty4(errorInfo)) {\n errorInfo = \"\\u503C\\u5FC5\\u987B\\u7B26\\u5408\\u503C\\u8303\\u56F4\\u89C4\\u5219\";\n }\n const isEmptyVal = isNilOrEmpty4(viewValue);\n if (isEmptyVal) {\n if (primaryModel) {\n throw new RuntimeError3(\"\\u503C\\u4E3A\\u7A7A\");\n }\n errorInfo = \"\\u503C\\u4E3A\\u7A7A\";\n return true;\n }\n const valueFormat = checkFieldRegExRule(\n viewValue,\n /^-?\\d*\\.?\\d+$/,\n \"\",\n primaryModel\n );\n if (valueFormat) {\n return true;\n }\n const data = Number.parseFloat(viewValue);\n if (minNumber !== null) {\n if (indexOfMin) {\n if (data < minNumber) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n } else if (data <= minNumber) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n }\n if (maxNumber != null) {\n if (indexOfMax) {\n if (data > maxNumber) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n } else if (data >= maxNumber) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n }\n errorInfo = \"\";\n return false;\n}\nfunction checkFieldScriptRule(value, data, scriptCode, errorInfo, primaryModel) {\n if (isNilOrEmpty4(errorInfo)) {\n errorInfo = \"\\u503C\\u5FC5\\u987B\\u7B26\\u5408\\u811A\\u672C\\u89C4\\u5219\";\n }\n const source = data;\n let selfError = \"\";\n let resultBoolean = true;\n const callback = (error) => {\n resultBoolean = false;\n if ((error == null ? void 0 : error.length) > 0) {\n error.forEach((item) => {\n if (item == null ? void 0 : item.message) {\n selfError += item.message;\n }\n });\n } else if (error == null ? void 0 : error.message) {\n selfError = error.message;\n }\n };\n try {\n const result = ScriptFactory.execScriptFn(\n { value, data: source },\n scriptCode\n );\n if (typeof result === \"boolean\") {\n resultBoolean = result;\n }\n } catch (error) {\n ibiz.log.error(error);\n callback(error);\n }\n errorInfo = \"\";\n if (!resultBoolean && primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return { isPast: resultBoolean, infoMessage: selfError || errorInfo };\n}\n\n// src/utils/verify/form-dynamic-logic.ts\nimport { ModelError, RuntimeModelError as RuntimeModelError2 } from \"@ibiz-template/core\";\nfunction isGroupLogic(logic) {\n return logic.logicType === \"GROUP\";\n}\nfunction isSingleLogic(logic) {\n return logic.logicType === \"SINGLE\";\n}\nfunction verifyFormGroupLogic(data, logic) {\n if (isGroupLogic(logic)) {\n const children = logic.defdlogics;\n if (!children || children.length === 0) {\n throw new RuntimeModelError2(logic, \"\\u53D1\\u73B0\\u7A7A\\u903B\\u8F91\\u7EC4\\uFF0C\\u903B\\u8F91\\u65E0\\u6CD5\\u6B63\\u5E38\\u6267\\u884C\\uFF01\");\n }\n let result = true;\n if (logic.groupOP === \"AND\") {\n const falseItem = children.find((childLogic) => {\n return !verifyFormGroupLogic(data, childLogic);\n });\n result = falseItem === void 0;\n } else if (logic.groupOP === \"OR\") {\n const trueItem = logic.defdlogics.find(\n (childLogic) => {\n return verifyFormGroupLogic(data, childLogic);\n }\n );\n result = trueItem !== void 0;\n }\n return logic.notMode ? !result : result;\n }\n if (isSingleLogic(logic)) {\n return testCond(\n data[logic.defdname.toLowerCase()],\n logic.condOP,\n logic.value\n );\n }\n throw new ModelError(logic, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u7C7B\\u578B\".concat(logic.logicType));\n}\n\n// src/utils/verify/panel-dynamic-logic.ts\nimport { ModelError as ModelError2, RuntimeModelError as RuntimeModelError3 } from \"@ibiz-template/core\";\nfunction isGroupLogic2(logic) {\n return logic.logicType === \"GROUP\";\n}\nfunction isSingleLogic2(logic) {\n return logic.logicType === \"SINGLE\";\n}\nfunction verifyPanelGroupLogic(data, logic) {\n if (isGroupLogic2(logic)) {\n const children = logic.panelItemLogics;\n if (!children || children.length === 0) {\n throw new RuntimeModelError3(logic, \"\\u53D1\\u73B0\\u7A7A\\u903B\\u8F91\\u7EC4\\uFF0C\\u903B\\u8F91\\u65E0\\u6CD5\\u6B63\\u5E38\\u6267\\u884C\\uFF01\");\n }\n let result = true;\n if (logic.groupOP === \"AND\") {\n const falseItem = children.find((childLogic) => {\n return !verifyPanelGroupLogic(data, childLogic);\n });\n result = falseItem === void 0;\n } else if (logic.groupOP === \"OR\") {\n const trueItem = logic.panelItemLogics.find(\n (childLogic) => {\n return verifyPanelGroupLogic(data, childLogic);\n }\n );\n result = trueItem !== void 0;\n }\n return logic.notMode ? !result : result;\n }\n if (isSingleLogic2(logic)) {\n return testCond(\n data[logic.dstModelField.toLowerCase()],\n logic.condOp,\n logic.value\n );\n }\n throw new ModelError2(logic, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u7C7B\\u578B\".concat(logic.logicType));\n}\n\n// src/utils/layout-panel-util/layout-panel-util.ts\nimport { clone } from \"ramda\";\nvar LayoutPanelUtil = class {\n constructor() {\n /**\n * 默认布局缓存\n *\n * @author chitanda\n * @date 2023-04-27 20:04:50\n * @protected\n * @type {Map<string, IViewLayoutPanel>}\n */\n this.cache = /* @__PURE__ */ new Map();\n }\n /**\n * 注册\n *\n * @author chitanda\n * @date 2023-04-27 20:04:04\n * @param {string} tag\n * @param {IViewLayoutPanel} model\n */\n register(tag, model) {\n this.cache.set(tag, model);\n }\n /**\n * 获取\n * @author lxm\n * @date 2023-07-31 02:48:37\n * @param {string} tag\n * @return {*} {(IViewLayoutPanel | undefined)}\n */\n get(tag) {\n return this.cache.get(tag);\n }\n /**\n * 填充默认布局模型\n *\n * @author chitanda\n * @date 2023-04-27 20:04:16\n * @param {IAppView} viewModel\n * @return {*} {IAppView}\n */\n fill(viewModel) {\n const { viewLayoutPanel } = viewModel;\n if (!viewLayoutPanel || viewLayoutPanel.useDefaultLayout === true) {\n const tag = this.calcLayoutTag(viewModel);\n if (this.cache.has(tag)) {\n const layout = clone(this.cache.get(tag));\n viewModel.viewLayoutPanel = layout;\n if (viewModel.appCounterRefs) {\n layout.appCounterRefs = viewModel.appCounterRefs;\n delete viewModel.appCounterRefs;\n }\n if (viewModel.appViewEngines) {\n layout.appViewEngines = viewModel.appViewEngines;\n delete viewModel.appViewEngines;\n }\n if (viewModel.appViewLogics) {\n layout.appViewLogics = viewModel.appViewLogics;\n delete viewModel.appViewLogics;\n }\n if (viewModel.appViewRefs) {\n layout.appViewRefs = viewModel.appViewRefs;\n delete viewModel.appViewRefs;\n }\n if (viewModel.controls) {\n layout.controls = viewModel.controls;\n delete viewModel.controls;\n }\n }\n }\n return viewModel;\n }\n /**\n * 计算布局面板标识\n *\n * @author chitanda\n * @date 2023-07-10 17:07:38\n * @protected\n * @param {IAppView} viewModel\n * @return {*} {string}\n */\n calcLayoutTag(viewModel) {\n const { viewType, viewStyle } = viewModel;\n switch (viewType) {\n case \"APPINDEXVIEW\":\n return this.calcIndexViewLayoutTag(viewModel);\n default:\n return \"\".concat(viewType, \"_\").concat(viewStyle);\n }\n }\n /**\n * 特殊计算首页布局面板标识,匹配多种配置模式下的布局面板呈现\n *\n * @author chitanda\n * @date 2023-07-10 17:07:06\n * @protected\n * @param {IAppIndexView} viewModel\n * @return {*} {string}\n */\n calcIndexViewLayoutTag(viewModel) {\n const { viewType, viewStyle, blankMode, mainMenuAlign } = viewModel;\n let exTag = \"\";\n if (blankMode) {\n exTag = \"BLANK_MODE\";\n } else if (mainMenuAlign) {\n exTag = mainMenuAlign.toUpperCase();\n }\n if (exTag !== \"\") {\n return \"\".concat(viewType, \"_\").concat(viewStyle, \"_\").concat(exTag);\n }\n return \"\".concat(viewType, \"_\").concat(viewStyle);\n }\n};\n\n// src/utils/wf-helper/wf-helper.ts\nfunction getWFContext(data) {\n const tempContext = {};\n if (data.param09) {\n tempContext.srfprocessinstanceid = data.param09;\n }\n return tempContext;\n}\nfunction getWFSubmitViewId(view, link) {\n var _a;\n const { type, sequenceFlowView, sequenceFlowMobView } = link;\n const appViewRefs = ((_a = view.viewLayoutPanel) == null ? void 0 : _a.appViewRefs) || view.appViewRefs;\n const key = type ? \"WFUTILACTION@\".concat(type.toUpperCase()) : \"WFACTION@\".concat(ibiz.env.isMob ? sequenceFlowMobView : sequenceFlowView);\n const submitViewRef = appViewRefs.find((viewRef) => {\n return viewRef.name === key;\n });\n return submitViewRef == null ? void 0 : submitViewRef.refAppViewId;\n}\n\n// src/utils/modal/modal.ts\nimport { AsyncSeriesHook } from \"qx-util\";\n\n// src/constant/control-type.ts\nvar ControlType = /* @__PURE__ */ ((ControlType2) => {\n ControlType2[\"APP_MENU\"] = \"APPMENU\";\n ControlType2[\"GRID\"] = \"GRID\";\n ControlType2[\"FORM\"] = \"FORM\";\n ControlType2[\"SEARCHFORM\"] = \"SEARCHFORM\";\n ControlType2[\"TOOLBAR\"] = \"TOOLBAR\";\n ControlType2[\"DRBAR\"] = \"DRBAR\";\n ControlType2[\"VIEWPANEL\"] = \"VIEWPANEL\";\n ControlType2[\"PICKUP_VIEW_PANEL\"] = \"PICKUPVIEWPANEL\";\n ControlType2[\"DATAVIEW\"] = \"DATAVIEW\";\n ControlType2[\"TREEGRID\"] = \"TREEGRID\";\n ControlType2[\"WF_EXPBAR\"] = \"WFEXPBAR\";\n ControlType2[\"TREEVIEW\"] = \"TREEVIEW\";\n ControlType2[\"TREE_EXP_BAR\"] = \"TREEEXPBAR\";\n ControlType2[\"TAB_VIEWPANEL\"] = \"TABVIEWPANEL\";\n ControlType2[\"DRTAB\"] = \"DRTAB\";\n ControlType2[\"CHART\"] = \"CHART\";\n ControlType2[\"REPORT_PANEL\"] = \"REPORTPANEL\";\n ControlType2[\"LIST\"] = \"LIST\";\n ControlType2[\"MOB_MDCTRL\"] = \"MOBMDCTRL\";\n ControlType2[\"MULTI_EDIT_VIEWPANEL\"] = \"MULTIEDITVIEWPANEL\";\n ControlType2[\"WIZARD_PANEL\"] = \"WIZARDPANEL\";\n ControlType2[\"UPDATE_PANEL\"] = \"UPDATEPANEL\";\n ControlType2[\"SEARCHBAR\"] = \"SEARCHBAR\";\n ControlType2[\"DASHBOARD\"] = \"DASHBOARD\";\n ControlType2[\"CALENDAR\"] = \"CALENDAR\";\n ControlType2[\"PANEL\"] = \"PANEL\";\n ControlType2[\"VIEW_LAYOUT_PANEL\"] = \"VIEWLAYOUTPANEL\";\n ControlType2[\"MAP\"] = \"MAP\";\n ControlType2[\"GANTT\"] = \"GANTT\";\n ControlType2[\"TREE_GRIDEX\"] = \"TREEGRIDEX\";\n ControlType2[\"KANBAN\"] = \"KANBAN\";\n ControlType2[\"CALENDAR_EXPBAR\"] = \"CALENDAREXPBAR\";\n ControlType2[\"CHART_EXPBAR\"] = \"CHARTEXPBAR\";\n ControlType2[\"DATA_VIEW_EXPBAR\"] = \"DATAVIEWEXPBAR\";\n ControlType2[\"GANTT_EXPBAR\"] = \"GANTTEXPBAR\";\n ControlType2[\"GRID_EXPBAR\"] = \"GRIDEXPBAR\";\n ControlType2[\"LIST_EXPBAR\"] = \"LISTEXPBAR\";\n ControlType2[\"MAP_EXPBAR\"] = \"MAPEXPBAR\";\n ControlType2[\"STATE_WIZARD_PANEL\"] = \"STATEWIZARDPANEL\";\n ControlType2[\"TAB_EXP_PANEL\"] = \"TABEXPPANEL\";\n ControlType2[\"CUSTOM\"] = \"CUSTOM\";\n ControlType2[\"CAPTIONBAR\"] = \"CAPTIONBAR\";\n return ControlType2;\n})(ControlType || {});\n\n// src/constant/view-type.ts\nvar ViewType = /* @__PURE__ */ ((ViewType2) => {\n ViewType2[\"APP_INDEX_VIEW\"] = \"APPINDEXVIEW\";\n ViewType2[\"DE_GRID_VIEW\"] = \"DEGRIDVIEW\";\n ViewType2[\"DE_EDIT_VIEW\"] = \"DEEDITVIEW\";\n ViewType2[\"APP_DATA_UPLOAD_VIEW\"] = \"APPDATAUPLOADVIEW\";\n ViewType2[\"APP_ERROR_VIEW\"] = \"APPERRORVIEW\";\n ViewType2[\"APP_FILE_UPLOAD_VIEW\"] = \"APPFILEUPLOADVIEW\";\n ViewType2[\"APP_FUN_PICKUP_VIEW\"] = \"APPFUNCPICKUPVIEW\";\n ViewType2[\"APP_LOGIN_VIEW\"] = \"APPLOGINVIEW\";\n ViewType2[\"APP_LOGOUT_VIEW\"] = \"APPLOGOUTVIEW\";\n ViewType2[\"APP_PANEL_VIEW\"] = \"APPPANELVIEW\";\n ViewType2[\"APP_PIC_UPLOAD_VIEW\"] = \"APPPICUPLOADVIEW\";\n ViewType2[\"APP_PORTAL_VIEW\"] = \"APPPORTALVIEW\";\n ViewType2[\"APP_REDIRECT_VIEW\"] = \"APPREDIRECTVIEW\";\n ViewType2[\"APP_START_VIEW\"] = \"APPSTARTVIEW\";\n ViewType2[\"APP_WELCOME_VIEW\"] = \"APPWELCOMEVIEW\";\n ViewType2[\"APP_WF_ADD_STEP_AFTER_VIEW\"] = \"APPWFADDSTEPAFTERVIEW\";\n ViewType2[\"APP_WF_ADD_STEP_BEFORE_VIEW\"] = \"APPWFADDSTEPBEFOREVIEW\";\n ViewType2[\"APP_WF_REDIRECT_VIEW\"] = \"APPWFREDIRECTVIEW\";\n ViewType2[\"APP_WF_SENDBAC_VIEW\"] = \"APPWFSENDBACKVIEW\";\n ViewType2[\"APP_WF_STEP_ACTOR_VIEW\"] = \"APPWFSTEPACTORVIEW\";\n ViewType2[\"APP_WF_STEP_DATA_VIEW\"] = \"APPWFSTEPDATAVIEW\";\n ViewType2[\"APP_WF_STEP_TRACE_VIEW\"] = \"APPWFSTEPTRACEVIEW\";\n ViewType2[\"APP_WF_SUPPLY_INFO_VIEW\"] = \"APPWFSUPPLYINFOVIEW\";\n ViewType2[\"APP_WF_TAKE_ADVICE_VIEW\"] = \"APPWFTAKEADVICEVIEW\";\n ViewType2[\"DE_CALENDAR_EXP_VIEW\"] = \"DECALENDAREXPVIEW\";\n ViewType2[\"DE_CALENDAR_VIEW\"] = \"DECALENDARVIEW\";\n ViewType2[\"DE_CHART_EXP_VIEW\"] = \"DECHARTEXPVIEW\";\n ViewType2[\"DE_CHART_VIEW\"] = \"DECHARTVIEW\";\n ViewType2[\"DE_CHART_VIEW9\"] = \"DECHARTVIEW9\";\n ViewType2[\"DE_CUSTOM_VIEW\"] = \"DECUSTOMVIEW\";\n ViewType2[\"DE_DATA_VIEW\"] = \"DEDATAVIEW\";\n ViewType2[\"DE_DATA_VIEW9\"] = \"DEDATAVIEW9\";\n ViewType2[\"DE_DATAVIEW_EXP_VIEW\"] = \"DEDATAVIEWEXPVIEW\";\n ViewType2[\"DE_EDIT_VIEW2\"] = \"DEEDITVIEW2\";\n ViewType2[\"DE_EDIT_VIEW3\"] = \"DEEDITVIEW3\";\n ViewType2[\"DE_EDIT_VIEW4\"] = \"DEEDITVIEW4\";\n ViewType2[\"DE_EDIT_VIEW9\"] = \"DEEDITVIEW9\";\n ViewType2[\"DE_FORM_PICKUP_DATA_VIEW\"] = \"DEFORMPICKUPDATAVIEW\";\n ViewType2[\"DE_GANTT_EXP_VIEW\"] = \"DEGANTTEXPVIEW\";\n ViewType2[\"DE_GANTT_VIEW\"] = \"DEGANTTVIEW\";\n ViewType2[\"DE_GANTT_VIEW9\"] = \"DEGANTTVIEW9\";\n ViewType2[\"DE_GRID_EXP_VIEW\"] = \"DEGRIDEXPVIEW\";\n ViewType2[\"DE_GRID_VIEW2\"] = \"DEGRIDVIEW2\";\n ViewType2[\"DE_GRID_VIEW4\"] = \"DEGRIDVIEW4\";\n ViewType2[\"DE_GRID_VIEW8\"] = \"DEGRIDVIEW8\";\n ViewType2[\"DE_GRID_VIEW9\"] = \"DEGRIDVIEW9\";\n ViewType2[\"DE_HTML_VIEW\"] = \"DEHTMLVIEW\";\n ViewType2[\"DE_INDEX_PICKUP_DATA_VIEW\"] = \"DEINDEXPICKUPDATAVIEW\";\n ViewType2[\"DE_INDEX_VIEW\"] = \"DEINDEXVIEW\";\n ViewType2[\"DE_KANBAN_VIEW\"] = \"DEKANBANVIEW\";\n ViewType2[\"DE_KANBAN_VIEW9\"] = \"DEKANBANVIEW9\";\n ViewType2[\"DE_LIST_EXP_VIEW\"] = \"DELISTEXPVIEW\";\n ViewType2[\"DE_LIST_VIEW\"] = \"DELISTVIEW\";\n ViewType2[\"DE_LIST_VIEW9\"] = \"DELISTVIEW9\";\n ViewType2[\"DE_MAP_EXP_VIEW\"] = \"DEMAPEXPVIEW\";\n ViewType2[\"DE_MAP_VIEW\"] = \"DEMAPVIEW\";\n ViewType2[\"DE_MAP_VIEW9\"] = \"DEMAPVIEW9\";\n ViewType2[\"DE_MD_CUSTOM_VIEW\"] = \"DEMDCUSTOMVIEW\";\n ViewType2[\"DE_MEDITVIEW9\"] = \"DEMEDITVIEW9\";\n ViewType2[\"DE_MOB_CALENDAR_EXP_VIEW\"] = \"DEMOBCALENDAREXPVIEW\";\n ViewType2[\"DE_MOB_CALENDAR_VIEW\"] = \"DEMOBCALENDARVIEW\";\n ViewType2[\"DE_MOB_CALENDAR_VIEW9\"] = \"DEMOBCALENDARVIEW9\";\n ViewType2[\"DE_MOB_CHART_EXP_VIEW\"] = \"DEMOBCHARTEXPVIEW\";\n ViewType2[\"DE_MO_BCHART_VIEW\"] = \"DEMOBCHARTVIEW\";\n ViewType2[\"D_EMOB_CHART_VIEW9\"] = \"DEMOBCHARTVIEW9\";\n ViewType2[\"DE_MOB_CUSTOM_VIEW\"] = \"DEMOBCUSTOMVIEW\";\n ViewType2[\"DE_MOB_DATA_VIEW\"] = \"DEMOBDATAVIEW\";\n ViewType2[\"DE_MOB_DATA_VIEW_EXP_VIEW\"] = \"DEMOBDATAVIEWEXPVIEW\";\n ViewType2[\"DE_MOB_EDIT_VIEW\"] = \"DEMOBEDITVIEW\";\n ViewType2[\"DE_MOB_EDIT_VIEW3\"] = \"DEMOBEDITVIEW3\";\n ViewType2[\"DE_MOB_EDITVIEW9\"] = \"DEMOBEDITVIEW9\";\n ViewType2[\"DE_MOB_FORM_PICKUP_MDVIEW\"] = \"DEMOBFORMPICKUPMDVIEW\";\n ViewType2[\"DE_MOB_GANTT_EXP_VIEW\"] = \"DEMOBGANTTEXPVIEW\";\n ViewType2[\"DE_MOB_GANTT_VIEW\"] = \"DEMOBGANTTVIEW\";\n ViewType2[\"DE_MOB_GANTT_VIEW9\"] = \"DEMOBGANTTVIEW9\";\n ViewType2[\"DE_MOB_HTML_VIEW\"] = \"DEMOBHTMLVIEW\";\n ViewType2[\"DE_MOB_INDEX_PICKUP_MDVIEW\"] = \"DEMOBINDEXPICKUPMDVIEW\";\n ViewType2[\"DE_MOB_LIST_EXP_VIEW\"] = \"DEMOBLISTEXPVIEW\";\n ViewType2[\"DE_MOB_LIST_VIEW\"] = \"DEMOBLISTVIEW\";\n ViewType2[\"DE_MOB_MAP_VIEW\"] = \"DEMOBMAPVIEW\";\n ViewType2[\"DE_MOB_MAP_VIEW9\"] = \"DEMOBMAPVIEW9\";\n ViewType2[\"DE_MOB_MDVIEW\"] = \"DEMOBMDVIEW\";\n ViewType2[\"DE_MOB_MDVIEW9\"] = \"DEMOBMDVIEW9\";\n ViewType2[\"DE_MOB_MEDIT_VIEW9\"] = \"DEMOBMEDITVIEW9\";\n ViewType2[\"DE_MOB_MPICKUP_VIEW\"] = \"DEMOBMPICKUPVIEW\";\n ViewType2[\"DE_MOB_OPT_VIEW\"] = \"DEMOBOPTVIEW\";\n ViewType2[\"DE_MOB_PANEL_VIEW\"] = \"DEMOBPANELVIEW\";\n ViewType2[\"DE_MOB_PANEL_VIEW9\"] = \"DEMOBPANELVIEW9\";\n ViewType2[\"DE_MOB_PICKUP_LIST_VIEW\"] = \"DEMOBPICKUPLISTVIEW\";\n ViewType2[\"DE_MOB_PICKUP_MDVIEW\"] = \"DEMOBPICKUPMDVIEW\";\n ViewType2[\"DE_MOB_PICKUP_TREE_VIEW\"] = \"DEMOBPICKUPTREEVIEW\";\n ViewType2[\"DE_MOB_PICKUP_VIEW\"] = \"DEMOBPICKUPVIEW\";\n ViewType2[\"DE_MOB_PORTAL_VIEW\"] = \"DEMOBPORTALVIEW\";\n ViewType2[\"DE_MOB_PORTAL_VIEW9\"] = \"DEMOBPORTALVIEW9\";\n ViewType2[\"DE_MOB_REDIRECT_VIEW\"] = \"DEMOBREDIRECTVIEW\";\n ViewType2[\"DE_MOB_REPORT_VIEW\"] = \"DEMOBREPORTVIEW\";\n ViewType2[\"DE_MOB_TAB_EXP_VIEW\"] = \"DEMOBTABEXPVIEW\";\n ViewType2[\"DE_MOB_TAB_EXP_VIEW9\"] = \"DEMOBTABEXPVIEW9\";\n ViewType2[\"DE_MOB_TAB_SEARCH_VIEW\"] = \"DEMOBTABSEARCHVIEW\";\n ViewType2[\"DE_MOB_TAB_SEARCH_VIEW9\"] = \"DEMOBTABSEARCHVIEW9\";\n ViewType2[\"DE_MOB_TREE_EXP_VIEW\"] = \"DEMOBTREEEXPVIEW\";\n ViewType2[\"DEMOBTREEEXPVIEW9\"] = \"DEMOBTREEEXPVIEW9\";\n ViewType2[\"DE_MOB_TREE_VIEW\"] = \"DEMOBTREEVIEW\";\n ViewType2[\"DE_MOB_WFACTION_VIEW\"] = \"DEMOBWFACTIONVIEW\";\n ViewType2[\"DE_MOB_WF_DATA_REDIRECT_VIEW\"] = \"DEMOBWFDATAREDIRECTVIEW\";\n ViewType2[\"DE_MOB_WF_DYNAACTIO_NVIEW\"] = \"DEMOBWFDYNAACTIONVIEW\";\n ViewType2[\"DE_MOB_WFDYNA_EDIT_VIEW\"] = \"DEMOBWFDYNAEDITVIEW\";\n ViewType2[\"DE_MOB_WF_DYNA_EDIT_VIEW3\"] = \"DEMOBWFDYNAEDITVIEW3\";\n ViewType2[\"DE_MOB_WF_DYNA_EXP_MDVIEW\"] = \"DEMOBWFDYNAEXPMDVIEW\";\n ViewType2[\"DE_MO_BWF_DYNA_START_VIEW\"] = \"DEMOBWFDYNASTARTVIEW\";\n ViewType2[\"DE_MOB_WF_EDIT_VIEW\"] = \"DEMOBWFEDITVIEW\";\n ViewType2[\"DE_MOB_WF_EDIT_VIEW3\"] = \"DEMOBWFEDITVIEW3\";\n ViewType2[\"DE_MOB_WF_MDVIEW\"] = \"DEMOBWFMDVIEW\";\n ViewType2[\"DE_MOB_WF_PROXY_RESULT_VIEW\"] = \"DEMOBWFPROXYRESULTVIEW\";\n ViewType2[\"DE_MOB_WF_PROXY_START_VIEW\"] = \"DEMOBWFPROXYSTARTVIEW\";\n ViewType2[\"DE_MOB_WF_START_VIEW\"] = \"DEMOBWFSTARTVIEW\";\n ViewType2[\"DE_MOB_WIZARD_VIEW\"] = \"DEMOBWIZARDVIEW\";\n ViewType2[\"DE_MPICKUP_VIEW\"] = \"DEMPICKUPVIEW\";\n ViewType2[\"DE_MPICKUP_VIEW2\"] = \"DEMPICKUPVIEW2\";\n ViewType2[\"DE_OPT_VIEW\"] = \"DEOPTVIEW\";\n ViewType2[\"DE_PANEL_VIEW\"] = \"DEPANELVIEW\";\n ViewType2[\"DE_PANEL_VIEW9\"] = \"DEPANELVIEW9\";\n ViewType2[\"DE_PICKUP_DATA_VIEW\"] = \"DEPICKUPDATAVIEW\";\n ViewType2[\"DE_PICKUP_GRID_VIEW\"] = \"DEPICKUPGRIDVIEW\";\n ViewType2[\"DE_PICKUP_TREE_VIEW\"] = \"DEPICKUPTREEVIEW\";\n ViewType2[\"DE_PICKUP_VIEW\"] = \"DEPICKUPVIEW\";\n ViewType2[\"DE_PICKUP_VIEW2\"] = \"DEPICKUPVIEW2\";\n ViewType2[\"DE_PICK_UP_VIEW3\"] = \"DEPICKUPVIEW3\";\n ViewType2[\"DE_PORTAL_VIEW\"] = \"DEPORTALVIEW\";\n ViewType2[\"DE_PORTAL_VIEW9\"] = \"DEPORTALVIEW9\";\n ViewType2[\"DE_REDIRECT_VIEW\"] = \"DEREDIRECTVIEW\";\n ViewType2[\"DE_REPORT_VIEW\"] = \"DEREPORTVIEW\";\n ViewType2[\"DE_TAB_EXP_VIEW\"] = \"DETABEXPVIEW\";\n ViewType2[\"DE_TAB_EXP_VIEW9\"] = \"DETABEXPVIEW9\";\n ViewType2[\"DE_TAB_SEARCH_VIEW\"] = \"DETABSEARCHVIEW\";\n ViewType2[\"DE_TAB_SEARCH_VIEW9\"] = \"DETABSEARCHVIEW9\";\n ViewType2[\"DE_TREE_EXP_VIEW\"] = \"DETREEEXPVIEW\";\n ViewType2[\"DE_TREE_EXP_VIEW2\"] = \"DETREEEXPVIEW2\";\n ViewType2[\"DE_TREE_EXP_VIEW3\"] = \"DETREEEXPVIEW3\";\n ViewType2[\"DE_TREE_GRID_EXVIEW\"] = \"DETREEGRIDEXVIEW\";\n ViewType2[\"DE_TREE_GRID_EXVIEW9\"] = \"DETREEGRIDEXVIEW9\";\n ViewType2[\"DE_TREE_GRID_VIEW\"] = \"DETREEGRIDVIEW\";\n ViewType2[\"DE_TREE_GRID_VIEW9\"] = \"DETREEGRIDVIEW9\";\n ViewType2[\"DE_TREE_VIEW\"] = \"DETREEVIEW\";\n ViewType2[\"DE_TREE_VIEW9\"] = \"DETREEVIEW9\";\n ViewType2[\"DE_WF_ACTION_VIEW\"] = \"DEWFACTIONVIEW\";\n ViewType2[\"DE_WF_DATA_REDIRECT_VIEW\"] = \"DEWFDATAREDIRECTVIEW\";\n ViewType2[\"DE_WF_DYNA_ACTION_VIEW\"] = \"DEWFDYNAACTIONVIEW\";\n ViewType2[\"DE_WF_DYNA_EDIT_VIEW\"] = \"DEWFDYNAEDITVIEW\";\n ViewType2[\"DE_WF_DYNA_EDIT_VIEW3\"] = \"DEWFDYNAEDITVIEW3\";\n ViewType2[\"DE_WF_DYNA_EXP_GRID_VIEW\"] = \"DEWFDYNAEXPGRIDVIEW\";\n ViewType2[\"DE_WF_DYNA_START_VIEW\"] = \"DEWFDYNASTARTVIEW\";\n ViewType2[\"DE_WF_EDIT_PROXY_DATA_VIEW\"] = \"DEWFEDITPROXYDATAVIEW\";\n ViewType2[\"DE_WF_EDIT_VIEW\"] = \"DEWFEDITVIEW\";\n ViewType2[\"DE_WF_EDIT_VIEW2\"] = \"DEWFEDITVIEW2\";\n ViewType2[\"DE_WF_EDIT_VIEW3\"] = \"DEWFEDITVIEW3\";\n ViewType2[\"DE_WF_EDIT_VIEW9\"] = \"DEWFEDITVIEW9\";\n ViewType2[\"DE_WF_EXP_VIEW\"] = \"DEWFEXPVIEW\";\n ViewType2[\"DE_WF_GRID_VIEW\"] = \"DEWFGRIDVIEW\";\n ViewType2[\"DE_WF_PROXY_DATA_VIEW\"] = \"DEWFPROXYDATAVIEW\";\n ViewType2[\"DE_WF_PROXY_RESULT_VIEW\"] = \"DEWFPROXYRESULTVIEW\";\n ViewType2[\"DE_WF_PROXY_START_VIEW\"] = \"DEWFPROXYSTARTVIEW\";\n ViewType2[\"DE_WF_START_VIEW\"] = \"DEWFSTARTVIEW\";\n ViewType2[\"DE_WIZARD_VIEW\"] = \"DEWIZARDVIEW\";\n return ViewType2;\n})(ViewType || {});\n\n// src/constant/view-mode.ts\nvar ViewMode = /* @__PURE__ */ ((ViewMode2) => {\n ViewMode2[\"ROUTE\"] = \"ROUTE\";\n ViewMode2[\"MODAL\"] = \"MODAL\";\n ViewMode2[\"DRAWER\"] = \"DRAWER\";\n ViewMode2[\"EMBED\"] = \"EMBED\";\n ViewMode2[\"POPOVER\"] = \"POPOVER\";\n return ViewMode2;\n})(ViewMode || {});\n\n// src/constant/sys-uiaction-tag.ts\nvar SysUIActionTag = /* @__PURE__ */ ((SysUIActionTag2) => {\n SysUIActionTag2[\"NEW\"] = \"New\";\n SysUIActionTag2[\"EDIT\"] = \"Edit\";\n SysUIActionTag2[\"REFRESH\"] = \"Refresh\";\n SysUIActionTag2[\"EXIT\"] = \"Exit\";\n SysUIActionTag2[\"SAVE_AND_EXIT\"] = \"SaveAndExit\";\n SysUIActionTag2[\"SAVE_AND_NEW\"] = \"SaveAndNew\";\n SysUIActionTag2[\"SAVE\"] = \"Save\";\n SysUIActionTag2[\"SAVE_ROW\"] = \"SaveRow\";\n SysUIActionTag2[\"REMOVE\"] = \"Remove\";\n SysUIActionTag2[\"REMOVE_AND_EXIT\"] = \"RemoveAndExit\";\n SysUIActionTag2[\"NEW_ROW\"] = \"NewRow\";\n SysUIActionTag2[\"TOGGLE_FILTER\"] = \"ToggleFilter\";\n SysUIActionTag2[\"IMPORT\"] = \"Import\";\n SysUIActionTag2[\"EXPORT_EXCEL\"] = \"ExportExcel\";\n SysUIActionTag2[\"SAVE_AND_START\"] = \"SaveAndStart\";\n SysUIActionTag2[\"VIEW_WF_STEP\"] = \"ViewWFStep\";\n SysUIActionTag2[\"NO\"] = \"No\";\n SysUIActionTag2[\"YES\"] = \"Yes\";\n SysUIActionTag2[\"CANCEL\"] = \"Cancel\";\n SysUIActionTag2[\"OK\"] = \"Ok\";\n SysUIActionTag2[\"SEARCH\"] = \"Search\";\n SysUIActionTag2[\"FINISH\"] = \"Finish\";\n SysUIActionTag2[\"NEXT_STEP\"] = \"NextStep\";\n SysUIActionTag2[\"PREV_STEP\"] = \"PrevStep\";\n SysUIActionTag2[\"ADD_SELECTION\"] = \"AddSelection\";\n SysUIActionTag2[\"REMOVE_SELECTION\"] = \"RemoveSelection\";\n SysUIActionTag2[\"REMOVE_ALL\"] = \"RemoveAll\";\n SysUIActionTag2[\"ADD_ALL\"] = \"AddAll\";\n SysUIActionTag2[\"LOGOUT\"] = \"Logout\";\n SysUIActionTag2[\"LOGIN\"] = \"Login\";\n SysUIActionTag2[\"CANCEL_CHANGES\"] = \"CancelChanges\";\n SysUIActionTag2[\"COPY\"] = \"Copy\";\n SysUIActionTag2[\"VIEW\"] = \"View\";\n SysUIActionTag2[\"TOGGLE_ROW_EDIT\"] = \"ToggleRowEdit\";\n SysUIActionTag2[\"LOAD_MORE\"] = \"LoadMore\";\n return SysUIActionTag2;\n})(SysUIActionTag || {});\n\n// src/constant/studio-event.ts\nvar StudioViewEvents = class {\n};\n/**\n * 视图加载\n */\nStudioViewEvents.onViewMounted = \"onMounted\";\n/**\n * 视图销毁\n */\nStudioViewEvents.onViewDestroyed = \"onDestroyed\";\nvar StudioPanelEvents = class {\n};\n/**\n * 点击事件\n */\nStudioPanelEvents.onClick = \"onClick\";\n/**\n * 值变更事件\n */\nStudioPanelEvents.onChange = \"onChange\";\n/**\n * 输入事件\n */\nStudioPanelEvents.onEnter = \"onEnter\";\n/**\n * 离开事件\n */\nStudioPanelEvents.onLeave = \"onLeave\";\nvar StudioControlEvents = class {\n};\n/**\n * 加载之前\n */\nStudioControlEvents.onBeforeLoad = \"onBeforeLoad\";\n/**\n * 加载成功\n */\nStudioControlEvents.onLoadSuccess = \"onLoadSuccess\";\n/**\n * 加载失败\n */\nStudioControlEvents.onLoadError = \"onLoadError\";\n/**\n * 加载草稿之前\n */\nStudioControlEvents.onBeforeLoadDraft = \"onBeforeLoadDraft\";\n/**\n * 加载草稿成功\n */\nStudioControlEvents.onLoadDraftSuccess = \"onLoadDraftSuccess\";\n/**\n * 加载草稿失败\n */\nStudioControlEvents.onLoadDraftError = \"onLoadDraftError\";\n/**\n * 保存之前\n */\nStudioControlEvents.onBeforeSave = \"onBeforeSave\";\n/**\n * 保存成功\n */\nStudioControlEvents.onSaveSuccess = \"onSaveSuccess\";\n/**\n * 保存失败\n */\nStudioControlEvents.onSaveError = \"onSaveError\";\n/**\n * 删除之前\n */\nStudioControlEvents.onBeforeRemove = \"onBeforeRemove\";\n/**\n * 删除成功\n */\nStudioControlEvents.onRemoveSuccess = \"onRemoveSuccess\";\n/**\n * 删除失败\n */\nStudioControlEvents.onRemoveError = \"onRemoveError\";\n/**\n * 原生默认工具栏的点击事件名称\n */\nStudioControlEvents.CLICK = \"onClick\";\n\n// src/utils/modal/modal.ts\nvar Modal = class {\n constructor(opts) {\n this.mode = \"EMBED\" /* EMBED */;\n this.viewUsage = 4;\n this.hooks = {\n shouldDismiss: new AsyncSeriesHook(),\n beforeDismiss: new AsyncSeriesHook()\n };\n /**\n * 外部注入的模态等组件实际的关闭操作\n * @author lxm\n * @date 2023-05-12 07:06:56\n */\n this._dismiss = (data) => {\n ibiz.log.error(\"\\u5916\\u90E8\\u5173\\u95ED\\u80FD\\u529B\\u672A\\u6CE8\\u518C\", data);\n };\n if (opts.mode) {\n this.mode = opts.mode;\n }\n if (opts.routeDepth) {\n this.routeDepth = opts.routeDepth;\n }\n if (opts.viewUsage) {\n this.viewUsage = opts.viewUsage;\n }\n if (opts.dismiss) {\n this._dismiss = opts.dismiss;\n }\n }\n /**\n * 注入模态等组件实际的关闭操作\n * @author lxm\n * @date 2023-07-18 03:05:22\n * @param {(data: IModalData) => void} dismiss\n */\n injectDismiss(dismiss) {\n this._dismiss = dismiss;\n }\n async dismiss(data = { ok: false, data: [] }) {\n const context = { allowClose: true };\n await this.hooks.shouldDismiss.call(context);\n if (!context.allowClose) {\n ibiz.log.debug(\"shouldDismiss\\u7ED3\\u679C\\u4E3Afalse,\\u5173\\u95ED\\u4E2D\\u65AD\\u3002\");\n return false;\n }\n await this.hooks.beforeDismiss.call(data);\n this._dismiss(data);\n this.destroy();\n return true;\n }\n /**\n * 执行完一次关闭后就会调销毁\n * @author lxm\n * @date 2023-07-18 03:32:26\n * @protected\n */\n destroy() {\n this.hooks.shouldDismiss.clear();\n this.hooks.beforeDismiss.clear();\n }\n};\n\n// src/utils/value-rule/value-rule.ts\nfunction filterValueRules(vrs, name) {\n return vrs.filter((vr) => {\n const { checkMode } = vr;\n const belongName = vr.deformItemName || vr.degridEditItemName;\n return checkMode !== 2 && belongName === name;\n });\n}\n\n// src/command/app/open-app-view/open-app-view.ts\nimport { ModelError as ModelError3, RuntimeError as RuntimeError4 } from \"@ibiz-template/core\";\nvar _OpenAppViewCommand = class _OpenAppViewCommand {\n constructor() {\n ibiz.commands.register(_OpenAppViewCommand.TAG, this.exec.bind(this));\n }\n /**\n * xhr模式打开\n *\n * @author chitanda\n * @date 2022-08-25 23:08:08\n * @param {string} appViewId\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n * @param {IData} [_opts={}]\n * @return {*} {(Promise<IModalData | void>)}\n */\n async exec(appViewId, context, params = {}, opts = {}) {\n const appView = await ibiz.hub.config.view.get(appViewId);\n if (!appView) {\n throw new RuntimeError4(\"\\u5E94\\u7528\\u89C6\\u56FE[\".concat(appViewId, \"]\\u4E0D\\u5B58\\u5728\"));\n }\n if (context.srfkey && appView.appDataEntityId) {\n const deName = calcDeCodeNameById(appView.appDataEntityId);\n context[deName] = context.srfkey;\n context.srfkey = void 0;\n }\n if (appView.redirectView) {\n const fullViewModel = await ibiz.hub.getAppView(appViewId);\n return openRedirectView(\n fullViewModel,\n context,\n params,\n opts.data\n );\n }\n const { openMode = \"INDEXVIEWTAB\" } = appView;\n switch (opts.openMode || openMode) {\n case \"INDEXVIEWTAB\":\n if (opts.noWaitRoute) {\n this.openIndexViewTab(appView, context, params);\n return;\n }\n return this.openIndexViewTab(appView, context, params);\n case \"POPUP\":\n throw new ModelError3(appView, \"\\u672A\\u652F\\u6301\\u7684\\u89C6\\u56FE\\u6253\\u5F00\\u6A21\\u5F0F: POPUP\");\n case \"POPUPMODAL\":\n return this.openModal(appView, context, params);\n case \"POPUPAPP\":\n throw new ModelError3(appView, \"\\u672A\\u652F\\u6301\\u7684\\u89C6\\u56FE\\u6253\\u5F00\\u6A21\\u5F0F: POPUPAPP\");\n case \"POPOVER\":\n return this.openPopover(appView, opts.event, context, params);\n case \"DRAWER_LEFT\":\n case \"DRAWER_RIGHT\":\n case \"DRAWER_TOP\":\n case \"DRAWER_BOTTOM\":\n return this.openDrawer(appView, context, params);\n case \"USER\":\n return this.openUserCustom(appView, context, params);\n default:\n return this.openIndexViewTab(appView, context, params);\n }\n }\n /**\n * 首页导航模式打开\n *\n * @author chitanda\n * @date 2022-07-25 20:07:43\n * @protected\n * @param {IViewConfig} appView\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n */\n openIndexViewTab(appView, context, params = {}) {\n return ibiz.openView.root(appView, context, params);\n }\n /**\n * 模态窗口打开\n *\n * @author chitanda\n * @date 2022-07-25 20:07:55\n * @protected\n * @param {IViewConfig} appView\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n * @return {*} {Promise<IModalData>}\n */\n async openModal(appView, context, params = {}) {\n return ibiz.openView.modal(appView, context, params);\n }\n /**\n * 气泡模式打开\n *\n * @author chitanda\n * @date 2022-07-25 20:07:17\n * @protected\n * @param {IViewConfig} appView\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n * @return {*} {Promise<IModalData>}\n */\n async openPopover(appView, event, context, params = {}) {\n return ibiz.openView.popover(appView, event, context, params);\n }\n /**\n * 抽屉模式打开\n *\n * @author chitanda\n * @date 2022-07-25 20:07:08\n * @protected\n * @param {IViewConfig} appView\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n * @return {*} {Promise<void>}\n */\n async openDrawer(appView, context, params = {}) {\n return ibiz.openView.drawer(appView, context, params);\n }\n /**\n * 用户自定义\n *\n * @author chitanda\n * @date 2022-07-25 20:07:41\n * @protected\n * @param {IViewConfig} appView\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n * @return {*} {Promise<void>}\n */\n async openUserCustom(appView, context, params = {}) {\n return ibiz.openView.custom(appView, context, params);\n }\n};\n_OpenAppViewCommand.TAG = \"ibiz.app-view.open\";\nvar OpenAppViewCommand = _OpenAppViewCommand;\n\n// src/command/app/app-func/app-func.ts\nvar _AppFuncCommand = class _AppFuncCommand {\n constructor() {\n ibiz.commands.register(_AppFuncCommand.TAG, this.exec.bind(this));\n }\n /**\n * 执行应用功能\n *\n * @author chitanda\n * @date 2022-07-25 17:07:35\n * @param {IAppFunc} appFunc 应用功能模型\n * @param {IContext} [context] 执行上下文\n * @param {IParams} [params={}] 参数\n * @param {IData} [opts={}] 额外参数,与具体执行对象规划好的额外参数。如需要给飘窗使用的 event 事件对象.\n * @return {*} {Promise<void>}\n */\n async exec(appFuncId, context, params = {}, opts = {}) {\n const appFunc = ibiz.hub.getApp(context.srfappid).getAppFunc(appFuncId);\n if (!appFunc) {\n throw new RuntimeError5(\"\\u627E\\u4E0D\\u5230\\u53EB\".concat(appFuncId, \"\\u7684\\u5E94\\u7528\\u529F\\u80FD\"));\n }\n const { navigateContexts, navigateParams, appFuncType } = appFunc;\n const _context = context.clone();\n Object.assign(_context, convertNavData(navigateContexts, context, params));\n const _params = convertNavData(navigateParams, context, params);\n switch (appFuncType) {\n case \"APPVIEW\":\n return this.openAppView(appFunc, _context, _params, opts);\n case \"OPENHTMLPAGE\":\n return this.openHtmlPage(appFunc);\n case \"PDTAPPFUNC\":\n return this.openPdAppFunc(appFunc, _context, _params);\n case \"JAVASCRIPT\":\n return this.executeJavaScript(appFunc, _context, _params);\n case \"CUSTOM\":\n return this.custom(appFunc, _context, _params);\n default:\n throw new ModelError4(appFunc, \"\\u672A\\u652F\\u6301\\u7684\\u5E94\\u7528\\u529F\\u80FD\\u7C7B\\u578B: \".concat(appFuncType));\n }\n }\n /**\n * 打开应用视图\n *\n * @author chitanda\n * @date 2022-07-25 18:07:49\n * @protected\n * @param {IAppFunc} appFunc\n * @param {IContext} [context]\n * @param {IParams} [params]\n * @return {*} {Promise<void>}\n */\n async openAppView(appFunc, context, params, opts) {\n if (!appFunc.appViewId) {\n throw new RuntimeError5(\"\\u5E94\\u7528\\u89C6\\u56FE[\".concat(appFunc.appViewId, \"]\\u4E0D\\u5B58\\u5728\"));\n }\n return ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n appFunc.appViewId,\n context,\n params,\n opts\n );\n }\n /**\n * 打开HTML页面\n *\n * @author chitanda\n * @date 2022-07-25 18:07:56\n * @protected\n * @param {IAppFunc} appFunc\n */\n openHtmlPage(appFunc) {\n const url = appFunc.htmlPageUrl;\n window.open(url, \"_blank\");\n }\n /**\n * 应用预置功能\n *\n * @author chitanda\n * @date 2022-07-25 18:07:22\n * @protected\n * @param {IAppFunc} appFunc\n * @param {IContext} [context]\n * @param {IParams} [params]\n */\n openPdAppFunc(appFunc, context, params) {\n ibiz.log.warn(\"openPdAppFunc\", appFunc, context, params);\n throw new RuntimeError5(\"\\u672A\\u5B9E\\u73B0\");\n }\n /**\n * 执行 JavaScript 脚本\n *\n * @author chitanda\n * @date 2022-07-25 18:07:09\n * @protected\n * @param {IAppFunc} appFunc\n * @param {IContext} [context]\n * @param {IParams} [params]\n */\n executeJavaScript(appFunc, context, params) {\n ibiz.log.warn(\"executeJavaScript\", appFunc, context, params);\n throw new RuntimeError5(\"\\u672A\\u5B9E\\u73B0\");\n }\n /**\n * 自定义应用功能\n *\n * @author chitanda\n * @date 2022-07-25 18:07:51\n * @protected\n * @param {IAppFunc} appFunc\n * @param {IContext} [context]\n * @param {IParams} [params]\n */\n custom(appFunc, context, params) {\n ibiz.log.warn(\"custom\", appFunc, context, params);\n throw new RuntimeError5(\"\\u672A\\u5B9E\\u73B0\");\n }\n};\n/**\n * 指令标识\n *\n * @author chitanda\n * @date 2022-07-25 17:07:20\n * @see 具体实现 {@link AppFuncCommand.exec}\n * @static\n */\n_AppFuncCommand.TAG = \"ibiz.app-func.exec\";\nvar AppFuncCommand = _AppFuncCommand;\n\n// src/command/index.ts\nfunction installCommand() {\n new AppFuncCommand();\n new OpenAppViewCommand();\n}\n\n// src/service/utils/app-counter/app-counter.ts\nimport { IBizContext, RuntimeModelError as RuntimeModelError4 } from \"@ibiz-template/core\";\nimport { notNilEmpty as notNilEmpty4, QXEvent } from \"qx-util\";\nimport { clone as clone2 } from \"ramda\";\nvar AppCounter = class {\n /**\n * Creates an instance of AppCounter.\n *\n * @author chitanda\n * @date 2022-10-26 20:10:55\n * @param {IAppCounter} model 应用计数器模型\n */\n constructor(model) {\n this.model = model;\n this.destroyed = false;\n this.context = IBizContext.create();\n this.params = {};\n this.evt = new QXEvent();\n /**\n * 计数器数据\n *\n * @author chitanda\n * @date 2022-10-26 19:10:08\n * @protected\n * @type {IData}\n */\n this.data = {};\n }\n /**\n * 计数器是否已经销毁\n *\n * @author chitanda\n * @date 2022-10-26 20:10:55\n * @protected\n * @type {boolean}\n */\n get isDestroyed() {\n return this.destroyed;\n }\n /**\n * 计数器初始化\n *\n * @author chitanda\n * @date 2022-10-26 19:10:24\n * @param {IParams} [context]\n * @param {IParams} [params]\n */\n async init(context, params) {\n this.setParams(context, params);\n this.appDataEntityId = this.model.appDataEntityId;\n const action = this.model.getAppDEActionId;\n if (!action) {\n throw new RuntimeModelError4(this.model, \"\\u672A\\u627E\\u5230\\u83B7\\u53D6\\u8BA1\\u6570\\u5668\\u884C\\u4E3A!\");\n }\n this.action = action;\n this.interval();\n await this.load();\n }\n /**\n * 设置上下文以及查询参数\n *\n * @author chitanda\n * @date 2022-10-26 19:10:58\n * @protected\n * @param {IParams} [context]\n * @param {IParams} [params]\n */\n setParams(context, params) {\n if (context) {\n this.context = clone2(context);\n }\n if (params) {\n this.params = clone2(params);\n }\n }\n /**\n * 计数器定时刷新\n *\n * @author chitanda\n * @date 2022-10-26 18:10:13\n * @protected\n */\n interval() {\n this.destroyInterval();\n this.intervalTimer = setInterval(() => {\n if (this.evt.getSize(\"change\") > 0) {\n this.load();\n }\n }, this.model.timer || 6e3);\n }\n /**\n * 销毁定时器自动刷新\n *\n * @author chitanda\n * @date 2022-10-26 18:10:31\n * @protected\n */\n destroyInterval() {\n if (this.intervalTimer) {\n clearInterval(this.intervalTimer);\n this.intervalTimer = null;\n }\n }\n /**\n * 加载计数器\n *\n * @author chitanda\n * @date 2022-10-26 19:10:38\n * @protected\n * @return {*} {Promise<IData>}\n */\n async load() {\n const app = ibiz.hub.getApp(this.context.srfappid);\n const res = await app.deService.exec(\n this.appDataEntityId,\n this.action,\n this.context,\n this.params\n );\n if (res.ok) {\n this.data = res.data;\n this.evt.emit(\"change\", this.data);\n }\n return this.data;\n }\n /**\n * 计数器刷新\n *\n * @author chitanda\n * @date 2022-10-26 19:10:46\n * @param {IParams} [context]\n * @param {IParams} [params]\n * @return {*} {Promise<IData>}\n */\n refresh(context, params) {\n this.setParams(context, params);\n return this.load();\n }\n /**\n * 计数器数据变更事件监听\n *\n * @author chitanda\n * @date 2022-10-26 20:10:13\n * @param {(data: IData) => void} fn\n * @param {boolean} [immediate=true] 当有计时器数据时,立即触发一次回调\n */\n onChange(fn, immediate = true) {\n this.evt.on(\"change\", fn);\n if (immediate && notNilEmpty4(this.data)) {\n fn(this.data);\n }\n }\n /**\n * 取消计数器数据变更监听\n *\n * @author chitanda\n * @date 2022-10-26 20:10:13\n * @param {(data: IData) => void} fn\n */\n offChange(fn) {\n this.evt.off(\"change\", fn);\n }\n /**\n * 根据计数器标识,获取计数器数值\n *\n * @author chitanda\n * @date 2022-10-26 20:10:08\n * @param {string} tag\n * @return {*} {number}\n */\n getCounter(tag) {\n return this.data[tag.toLowerCase()] || 0;\n }\n /**\n * 销毁计数器\n *\n * @author chitanda\n * @date 2022-10-26 18:10:31\n */\n destroy() {\n this.destroyed = true;\n this.context.destroy();\n this.destroyInterval();\n this.evt.reset();\n }\n};\n\n// src/service/utils/de-dq-cond/ps-de-dq-cond-engine.ts\nimport { isEmpty as isEmpty3 } from \"ramda\";\n\n// src/service/utils/de-dq-cond/ps-model-cond-engine-base.ts\nvar PSModelCondEngineBase = class {\n constructor() {\n /**\n * 根分组条件\n *\n * @private\n * @type {(PSModelGroupCondBase | null)}\n * @memberof PSModelCondEngineBase\n */\n this.psModelGroupCondBase = null;\n }\n /**\n * 解析条件\n *\n * @param {IData[]} obj\n * @memberof PSModelCondEngineBase\n */\n parse(obj) {\n if (obj instanceof Array) {\n const psModelGroupCondBase = this.createPSModelGroupCond();\n psModelGroupCondBase.parse(obj);\n this.psModelGroupCondBase = psModelGroupCondBase;\n }\n }\n /**\n * 测试项\n *\n * @protected\n * @param {string} strCondOp\n * @param {*} objValue\n * @param {*} objCondValue\n * @return {*} {boolean}\n * @memberof PSModelCondEngineBase\n */\n testSingleCond(strCondOp, objValue, objCondValue) {\n try {\n if (\"ISNULL\" /* CONDOP_ISNULL */ === strCondOp) {\n return objValue == null;\n }\n if (\"ISNOTNULL\" /* CONDOP_ISNOTNULL */ === strCondOp) {\n return objValue != null;\n }\n if (\"EQ\" /* CONDOP_EQ */ === strCondOp || \"ABSEQ\" /* CONDOP_ABSEQ */ === strCondOp || \"GT\" /* CONDOP_GT */ === strCondOp || \"GTANDEQ\" /* CONDOP_GTANDEQ */ === strCondOp || \"LT\" /* CONDOP_LT */ === strCondOp || \"LTANDEQ\" /* CONDOP_LTANDEQ */ === strCondOp || \"NOTEQ\" /* CONDOP_NOTEQ */ === strCondOp) {\n let nRet = -1;\n if (objValue == objCondValue) {\n nRet = 0;\n } else if (objValue > objCondValue) {\n nRet = 1;\n }\n if (\"EQ\" /* CONDOP_EQ */ === strCondOp || \"ABSEQ\" /* CONDOP_ABSEQ */ === strCondOp) {\n return nRet === 0;\n }\n if (\"GT\" /* CONDOP_GT */ === strCondOp) {\n return nRet > 0;\n }\n if (\"GTANDEQ\" /* CONDOP_GTANDEQ */ === strCondOp) {\n return nRet >= 0;\n }\n if (\"LT\" /* CONDOP_LT */ === strCondOp) {\n return nRet < 0;\n }\n if (\"LTANDEQ\" /* CONDOP_LTANDEQ */ === strCondOp) {\n return nRet <= 0;\n }\n if (\"NOTEQ\" /* CONDOP_NOTEQ */ === strCondOp) {\n return nRet !== 0;\n }\n }\n if (\"LIKE\" /* CONDOP_LIKE */ === strCondOp) {\n if (objValue != null && objCondValue != null) {\n return objValue.toString().toUpperCase().indexOf(objCondValue.toString().toUpperCase()) !== -1;\n }\n return false;\n }\n if (\"LEFTLIKE\" /* CONDOP_LEFTLIKE */ === strCondOp) {\n if (objValue != null && objCondValue != null) {\n return objValue.toString().toUpperCase().indexOf(objCondValue.toString().toUpperCase()) === 0;\n }\n return false;\n }\n } catch (err) {\n ibiz.log.error(err);\n }\n return false;\n }\n /**\n * 获取根分组条件\n *\n * @return {*} {PSModelGroupCondBase}\n * @memberof PSModelCondEngineBase\n */\n getPSModelGroupCondBase() {\n return this.psModelGroupCondBase;\n }\n};\n\n// src/service/utils/de-dq-cond/ps-model-group-cond-base.ts\nimport { RuntimeError as RuntimeError6 } from \"@ibiz-template/core\";\n\n// src/service/utils/de-dq-cond/ps-model-cond-base.ts\nvar PSModelCondBase = class {\n constructor() {\n this.strCondOp = null;\n }\n getCondOp() {\n return this.strCondOp;\n }\n setCondOp(strCondOp) {\n this.strCondOp = strCondOp;\n }\n};\n\n// src/service/utils/de-dq-cond/ps-model-single-cond-base.ts\nvar PSModelSingleCondBase = class extends PSModelCondBase {\n /**\n * 编译条件\n *\n * @author chitanda\n * @date 2022-08-17 23:08:35\n * @param {unknown[]} arr\n */\n parse(arr) {\n const nCount = arr.length;\n let bOpStart = true;\n let bParamStart = false;\n let bValueStart = false;\n for (let i = 0; i < nCount; i++) {\n if (bOpStart) {\n const strText = arr[i];\n this.setCondOp(strText);\n bOpStart = false;\n bParamStart = true;\n continue;\n }\n if (bParamStart) {\n const strText = arr[i];\n this.setParam(strText);\n bParamStart = false;\n bValueStart = true;\n continue;\n }\n if (bValueStart) {\n const obj = arr[i];\n if (obj instanceof Object && !(obj instanceof Array)) {\n const data = obj;\n if (data.type != null) {\n this.setValueType(data.type.toString());\n }\n if (data.value != null) {\n this.setValue(data.value.toString());\n }\n } else {\n this.setValue(obj);\n }\n break;\n }\n }\n }\n getValueType() {\n return this.strValueType;\n }\n setValueType(strValueType) {\n this.strValueType = strValueType;\n }\n getValue() {\n return this.strValue;\n }\n setValue(strValue) {\n this.strValue = strValue;\n }\n getParamType() {\n return this.strParamType;\n }\n setParamType(strParamType) {\n this.strParamType = strParamType;\n }\n getParam() {\n return this.strParam;\n }\n setParam(strParam) {\n this.strParam = strParam;\n }\n};\n\n// src/service/utils/de-dq-cond/ps-model-group-cond-base.ts\nvar PSModelGroupCondBase = class _PSModelGroupCondBase extends PSModelCondBase {\n constructor() {\n super(...arguments);\n /**\n * 子条件项\n *\n * @private\n * @type {PSModelCondBase[]}\n * @memberof PSModelGroupCondBase\n */\n this.childCondList = [];\n /**\n * 是否取反\n *\n * @private\n * @memberof PSModelGroupCondBase\n */\n this.bNotMode = false;\n }\n /**\n * 解析分组条件\n *\n * @param {unknown[]} arr\n * @memberof PSModelGroupCondBase\n */\n parse(arr) {\n const nCount = arr.length;\n let bNotStart = true;\n let bOpStart = true;\n let bCondStart = false;\n for (let i = 0; i < nCount; i++) {\n if (bNotStart && bOpStart) {\n const strText = arr[i];\n if (strText === \"!\") {\n this.setNotMode(true);\n bNotStart = false;\n continue;\n }\n }\n if (bOpStart) {\n const strText = arr[i];\n this.setCondOp(strText);\n bOpStart = false;\n bNotStart = false;\n bCondStart = true;\n continue;\n }\n if (bCondStart) {\n const list = arr[i];\n if (list instanceof Array) {\n list.forEach((item) => {\n if (item.length > 0) {\n const strText = item[0].toString();\n if (strText === \"!\" || \"OR\" /* CONDOP_OR */ === strText || \"AND\" /* CONDOP_AND */ === strText) {\n const child = new _PSModelGroupCondBase();\n child.parse(item);\n this.childCondList.push(child);\n } else {\n const child = new PSModelSingleCondBase();\n child.parse(item);\n this.childCondList.push(child);\n }\n }\n });\n } else {\n throw new RuntimeError6(\"\\u503C\\u5FC5\\u987B\\u4E3A\\u6570\\u7EC4\");\n }\n }\n }\n }\n setNotMode(bNotMode) {\n this.bNotMode = bNotMode;\n }\n isNotMode() {\n return this.bNotMode;\n }\n getChildPSModelCondBases() {\n return this.childCondList;\n }\n};\n\n// src/service/utils/de-dq-cond/ps-model-group-cond.ts\nvar PSDEDQGroupCond = class extends PSModelGroupCondBase {\n};\n\n// src/service/utils/de-dq-cond/ps-model-single-cond.ts\nvar PSDEDQSingleCond = class extends PSModelSingleCondBase {\n};\n\n// src/service/utils/de-dq-cond/ps-de-dq-cond-engine.ts\nvar _PSDEDQCondEngine = class _PSDEDQCondEngine extends PSModelCondEngineBase {\n /**\n * 测试\n *\n * @param {IData} data 检测的数据\n * @param {SearchFilter} filter 过滤条件\n * @return {*} {boolean}\n * @memberof PSDEDQCondEngine\n */\n test(data, filter) {\n return this.testCond(this.getPSModelGroupCondBase(), data, filter);\n }\n /**\n * 查询条件判断\n *\n * @author chitanda\n * @date 2022-08-17 23:08:11\n * @protected\n * @param {PSModelCondBase} cond\n * @param {IData} data\n * @param {SearchFilter} filter\n * @return {*} {boolean}\n */\n testCond(cond, data, filter) {\n if (cond instanceof PSModelGroupCondBase) {\n const list = cond.getChildPSModelCondBases();\n if (list == null || isEmpty3(list)) {\n return !cond.isNotMode();\n }\n const bAnd = \"AND\" /* CONDOP_AND */ === cond.getCondOp();\n let bRet = bAnd;\n for (let i = 0; i < list.length; i++) {\n const childCond = list[i];\n if (this.testCond(childCond, data, filter)) {\n if (!bAnd) {\n bRet = true;\n break;\n }\n } else if (bAnd) {\n bRet = false;\n break;\n }\n }\n if (cond.isNotMode()) {\n return !bRet;\n }\n return bRet;\n }\n if (cond instanceof PSModelSingleCondBase) {\n if (isEmpty3(cond.getParam())) {\n ibiz.log.warn(\"\\u6CA1\\u6709\\u6307\\u5B9A\\u5C5E\\u6027\\u540D\\u79F0\", cond);\n }\n const objValue = data[cond.getParam().toLowerCase()];\n let objCondValue = null;\n const valType = cond.getValueType();\n const val = cond.getValue();\n if (valType != null && !isEmpty3(valType)) {\n if (isEmpty3(val)) {\n ibiz.log.warn(\"\\u6CA1\\u6709\\u6307\\u5B9A\\u4E0A\\u4E0B\\u6587\\u53C2\\u6570\\u540D\\u79F0\");\n }\n if (_PSDEDQCondEngine.PARAMTYPE_WEBCONTEXT === valType) {\n objCondValue = filter.data[val.toLowerCase()];\n } else if (_PSDEDQCondEngine.PARAMTYPE_DATACONTEXT === valType) {\n objCondValue = filter.getValue(val.toLowerCase());\n }\n } else {\n objCondValue = cond.getValue();\n }\n return this.testSingleCond(cond.getCondOp(), objValue, objCondValue);\n }\n ibiz.log.warn(\"\\u65E0\\u6CD5\\u8BC6\\u522B\\u7684\\u6761\\u4EF6\\u5BF9\\u8C61\", cond);\n return false;\n }\n createPSModelSingleCond() {\n return new PSDEDQSingleCond();\n }\n createPSModelGroupCond() {\n return new PSDEDQGroupCond();\n }\n};\n/**\n * 数据上下文\n *\n * @static\n * @memberof PSDEDQCondEngine\n */\n_PSDEDQCondEngine.PARAMTYPE_DATACONTEXT = \"DATACONTEXT\";\n/**\n * 网页请求上下文\n *\n * @static\n * @memberof PSDEDQCondEngine\n */\n_PSDEDQCondEngine.PARAMTYPE_WEBCONTEXT = \"WEBCONTEXT\";\nvar PSDEDQCondEngine = _PSDEDQCondEngine;\n\n// src/service/utils/de-dq-cond-util/de-dq-cond-util.ts\nimport { ModelError as ModelError5 } from \"@ibiz-template/core\";\nvar DEDQCondUtil = class {\n /**\n * 根据数据查询获取查询\n *\n * @author chitanda\n * @date 2022-08-25 17:08:04\n * @static\n * @param {IAppDEDataSet} dataSet\n * @return {*} {PSDEDQCondEngine}\n */\n static getCond(dataSet) {\n if (this.map.has(dataSet)) {\n return this.map.get(dataSet);\n }\n const groups = dataSet.dedqgroupConditions;\n if (groups) {\n const cond = new PSDEDQCondEngine();\n cond.parse([\"OR\", this.calcCond(groups)]);\n this.map.set(dataSet, cond);\n return cond;\n }\n return null;\n }\n /**\n * 计算查询条件\n *\n * @author chitanda\n * @date 2022-08-25 17:08:39\n * @protected\n * @static\n * @param {IDEDQCondition[]} items\n * @return {*} {unknown[]}\n */\n static calcCond(items) {\n const arr = [];\n items.forEach((item) => {\n const condArr = [];\n if (item.condType === \"GROUP\") {\n const cond = item;\n if (cond.notMode) {\n condArr.push(\"!\");\n }\n condArr.push(item.condOp);\n const children = cond.dedqconditions;\n if (children) {\n const child = this.calcCond(children);\n condArr.push(child);\n }\n } else if (item.condType === \"SINGLE\") {\n const cond = item;\n condArr.push(cond.fieldName);\n if (cond.condValue) {\n } else {\n condArr.push(\"\");\n }\n } else {\n throw new ModelError5(item, \"\\u6682\\u672A\\u652F\\u6301\\u7684\\u67E5\\u8BE2\\u6761\\u4EF6\\u7C7B\\u578B: \".concat(item.condType));\n }\n arr.push(condArr);\n });\n return arr;\n }\n};\n/**\n * 查询条件缓存\n *\n * @author chitanda\n * @date 2022-08-25 17:08:57\n * @protected\n * @static\n * @type {WeakMap<IAppDEDataSet, PSDEDQCondEngine>}\n */\nDEDQCondUtil.map = /* @__PURE__ */ new WeakMap();\n\n// src/service/utils/dynamic-code-list/dynamic-code-list.ts\nimport { ModelError as ModelError6, RuntimeModelError as RuntimeModelError5 } from \"@ibiz-template/core\";\nimport { isNil as isNil3 } from \"ramda\";\nvar DynamicCodeListCache = class {\n constructor(codeList) {\n /**\n * 缓存的map,key是context和params合成的字符串\n *\n * @author lxm\n * @date 2022-08-26 14:08:19\n * @protected\n */\n this.cache = /* @__PURE__ */ new Map();\n /**\n * 是否是预定义类型\n *\n * @author lxm\n * @date 2022-10-20 10:10:48\n * @protected\n * @type {boolean}\n */\n this.isPredefined = false;\n this.codeList = codeList;\n }\n /**\n * 初始化\n *\n * @author lxm\n * @date 2022-08-26 14:08:28\n * @returns {*} {Promise<void>}\n */\n async init() {\n const fn = async () => {\n const { predefinedType } = this.codeList;\n if (predefinedType) {\n this.isPredefined = true;\n if (![\"OPERATOR\", \"RUNTIME\"].includes(predefinedType)) {\n throw new ModelError6(\n this.codeList,\n \"\\u9884\\u5B9A\\u4E49\\u7C7B\\u578B\".concat(predefinedType, \"\\u6682\\u4E0D\\u652F\\u6301\")\n );\n }\n return;\n }\n this.initPromise = void 0;\n };\n this.initPromise = fn();\n return this.initPromise;\n }\n /**\n * 把数据转换成代码项\n *\n * @author lxm\n * @date 2022-08-26 15:08:24\n * @param {IData} data\n * @returns {*}\n */\n convertData(data) {\n const result = {};\n const { valueAppDEFieldId, textAppDEFieldId } = this.codeList;\n const value = valueAppDEFieldId ? data[valueAppDEFieldId] : data.srfkey;\n result.id = value;\n result.value = value;\n result.text = textAppDEFieldId ? data[textAppDEFieldId] : data.srfmajortext;\n return Object.freeze(result);\n }\n /**\n * 加载服务获取数据,返回代码项\n *\n * @author lxm\n * @date 2022-08-26 14:08:08\n * @protected\n * @param {IParams} [context={}]\n * @param {IParams} [params={}]\n * @returns {*} {Promise<CodeListItem[]>}\n */\n async load(context = {}, params = {}) {\n const app = ibiz.hub.getApp(context.srfappid);\n if (this.isPredefined) {\n if (!params.size) {\n params.size = 1e4;\n }\n const res2 = await app.net.get(\n \"/dictionaries/codelist/\".concat(this.codeList.codeName),\n params\n );\n return Object.freeze(res2.data.items);\n }\n const { appDataEntityId, appDEDataSetId } = this.codeList;\n if (!appDataEntityId) {\n throw new RuntimeModelError5(this.codeList, \"\\u672A\\u914D\\u7F6E\\u5E94\\u7528\\u5B9E\\u4F53\");\n }\n if (!appDEDataSetId) {\n throw new RuntimeModelError5(this.codeList, \"\\u672A\\u914D\\u7F6E\\u6570\\u636E\\u96C6\");\n }\n const res = await app.deService.exec(\n appDataEntityId,\n appDEDataSetId,\n context,\n {},\n params\n );\n let resultItems = [];\n if (res.data.length) {\n resultItems = res.data.map((item) => {\n return this.convertData(item);\n });\n }\n return resultItems;\n }\n /**\n * 获取动态的代码项\n *\n * @author lxm\n * @date 2022-08-26 14:08:44\n * @param {IParams} [context={}]\n * @param {IParams} [params={}]\n * @returns {*} {Promise<IData[]>}\n */\n async get(context = {}, params = {}) {\n if (this.initPromise) {\n await this.initPromise;\n }\n if (!this.codeList.enableCache) {\n return this.load(context, params);\n }\n const key = JSON.stringify(context) + JSON.stringify(params);\n if (this.cache.has(key)) {\n const cacheData2 = this.cache.get(key);\n if (cacheData2.expirationTime > (/* @__PURE__ */ new Date()).getTime()) {\n return cacheData2.promise ? cacheData2.promise : cacheData2.items;\n }\n this.cache.delete(key);\n }\n const promise = this.load(context, params);\n const { cacheTimeout } = this.codeList;\n const waitTime = cacheTimeout === -1 || isNil3(cacheTimeout) ? ibiz.config.codeList.timeout : this.codeList.cacheTimeout;\n const cacheData = {\n expirationTime: (/* @__PURE__ */ new Date()).getTime() + waitTime,\n promise\n };\n this.cache.set(key, cacheData);\n const result = await promise;\n cacheData.items = result;\n delete cacheData.promise;\n return result;\n }\n};\n\n// src/service/utils/de-cache/de-cache.ts\nimport { where, equals, clone as clone3, isNil as isNil5, isEmpty as isEmpty5 } from \"ramda\";\nimport { createUUID } from \"qx-util\";\n\n// src/service/utils/service-exist-util/service-exist-util.ts\nimport { RuntimeError as RuntimeError7 } from \"@ibiz-template/core\";\nimport { isEmpty as isEmpty4, isNil as isNil4 } from \"ramda\";\nfunction isExistSrfKey(funcName, entity) {\n if (entity != null) {\n const { srfkey } = entity;\n if (!isNil4(srfkey) && !isEmpty4(srfkey)) {\n return true;\n }\n }\n throw new RuntimeError7(\"\\u6267\\u884C\\u300C\".concat(funcName, \"\\u300D\\u4E0D\\u5B58\\u5728\\u300Csrfkey\\u300D\\u65E0\\u6CD5\\u5904\\u7406\"));\n}\nfunction isExistSessionId(funcName, context) {\n const { srfsessionid } = context;\n if (!isNil4(srfsessionid) && !isEmpty4(srfsessionid)) {\n return true;\n }\n throw new RuntimeError7(\"\\u6267\\u884C\\u300C\".concat(funcName, \"\\u300D\\u4E0D\\u5B58\\u5728\\u300Csrfsessionid\\u300D\\u65E0\\u6CD5\\u5904\\u7406\"));\n}\n\n// src/service/utils/de-cache/de-cache.ts\nvar DECache = class {\n constructor() {\n /**\n * 数据缓存\n *\n * @author chitanda\n * @date 2022-08-17 23:08:08\n * @type {Map<string, Map<string, IDataEntity>>}\n */\n this.cacheMap = /* @__PURE__ */ new Map();\n }\n /**\n * 强制设置数据,忽略其他逻辑\n *\n * @author chitanda\n * @date 2022-05-10 17:05:45\n * @param {IParams} context\n * @param {IDataEntity} entity\n */\n forceAdd(context, entity) {\n const map = this.getCacheByTag(context);\n const data = map.get(entity.srfkey);\n if (data) {\n data.assign(entity);\n ibiz.log.warn(\"forceAdd\", entity.srfkey, entity);\n }\n }\n /**\n * 强制更新数据,非合并,忽略其他逻辑\n *\n * @author chitanda\n * @date 2022-05-10 17:05:27\n * @param {IParams} context\n * @param {IDataEntity} entity\n */\n forceUpdate(context, entity) {\n const map = this.getCacheByTag(context);\n map.set(entity.srfkey, clone3(entity));\n ibiz.log.warn(\"forceUpdate\", entity.srfkey, entity);\n }\n /**\n * 强制删除数据,忽略其他逻辑\n *\n * @author chitanda\n * @date 2022-05-10 17:05:08\n * @param {IParams} context\n * @param {string} srfKey\n */\n forceDelete(context, srfKey) {\n const map = this.getCacheByTag(context);\n map.delete(srfKey);\n ibiz.log.warn(\"forceDelete\", srfKey);\n }\n /**\n * 新增数据\n *\n * @param {*} context\n * @param {IDataEntity} entity\n * @return {*} {boolean}\n * @memberof EntityCache\n */\n add(context, entity) {\n try {\n isExistSessionId(\"add\", context);\n if (isNil5(entity.srfkey) || isEmpty5(entity.srfkey)) {\n entity.srfkey = createUUID();\n }\n entity.srftempdate = (/* @__PURE__ */ new Date()).getTime();\n const map = this.getCacheByTag(context);\n map.set(entity.srfkey, clone3(entity));\n ibiz.log.warn(\"add\", entity.srfkey, entity);\n return entity;\n } catch (err) {\n ibiz.log.error(err);\n return null;\n }\n }\n /**\n * 查找数据\n *\n * @param {*} context\n * @param {string} srfKey\n * @return {*} {IDataEntity}\n * @memberof EntityCache\n */\n get(context, srfKey) {\n try {\n isExistSessionId(\"get\", context);\n const map = this.getCacheByTag(context);\n const data = map.get(srfKey);\n ibiz.log.warn(\"get\", srfKey, data);\n return clone3(data);\n } catch (err) {\n ibiz.log.error(err);\n return null;\n }\n }\n /**\n * 更新数据\n *\n * @param {IParams} context\n * @param {IDataEntity} entity\n * @return {*} {IDataEntity}\n * @memberof EntityCache\n */\n update(context, entity) {\n try {\n isExistSessionId(\"update\", context);\n isExistSrfKey(\"update\", entity);\n entity.srftempdate = (/* @__PURE__ */ new Date()).getTime();\n const map = this.getCacheByTag(context);\n const data = map.get(entity.srfkey);\n if (data) {\n data.assign(entity);\n map.set(entity.srfkey, data);\n ibiz.log.warn(\"update\", entity.srfkey, entity);\n return clone3(data);\n }\n throw new Error(\"\\u6570\\u636E\\u4E0D\\u5B58\\u5728\\uFF0C\\u65E0\\u6CD5\\u66F4\\u65B0!\");\n } catch (err) {\n ibiz.log.error(err);\n return null;\n }\n }\n /**\n * 删除数据\n *\n * @param {IParams} context\n * @param {string} srfKey\n * @return {*} {(IDataEntity | null)}\n * @memberof EntityCache\n */\n delete(context, srfKey) {\n try {\n isExistSessionId(\"delete\", context);\n const map = this.getCacheByTag(context);\n const key = srfKey;\n if (map.has(key)) {\n const data = map.get(key);\n data.srftempdate = (/* @__PURE__ */ new Date()).getTime();\n map.delete(key);\n ibiz.log.warn(\"delete\", key);\n return data;\n }\n return null;\n } catch (err) {\n ibiz.log.error(err);\n return null;\n }\n }\n /**\n * 批量创建临时数据\n *\n * @author chitanda\n * @date 2022-03-23 11:03:52\n * @param {IParams} context\n * @param {IDataEntity[]} entities\n * @return {*} {IDataEntity[]}\n */\n createBatch(context, entities) {\n try {\n isExistSessionId(\"add\", context);\n const map = this.getCacheByTag(context);\n for (let i = 0; i < entities.length; i++) {\n const entity = entities[i];\n if (isNil5(entity.srfkey) || isEmpty5(entity.srfkey)) {\n entity.srfkey = createUUID();\n }\n entity.srftempdate = (/* @__PURE__ */ new Date()).getTime();\n const data = clone3(entity);\n map.set(entity.srfkey, data);\n entities[i] = data;\n ibiz.log.warn(\"add\", entity.srfkey, entity);\n }\n return entities;\n } catch (err) {\n ibiz.log.error(err);\n }\n return [];\n }\n /**\n * 批量更新数据\n *\n * @author chitanda\n * @date 2022-03-23 10:03:17\n * @param {IParams} context\n * @param {IDataEntity[]} entities\n * @return {*} {IDataEntity[]}\n */\n updateBatch(context, entities) {\n try {\n isExistSessionId(\"update\", context);\n const map = this.getCacheByTag(context);\n for (let i = 0; i < entities.length; i++) {\n const entity = entities[i];\n isExistSrfKey(\"update\", entity);\n entity.srftempdate = (/* @__PURE__ */ new Date()).getTime();\n const data = map.get(entity.srfkey);\n if (data) {\n data.assign(entity);\n map.set(entity.srfkey, data);\n ibiz.log.warn(\"update\", entity.srfkey, entity);\n entities[i] = clone3(data);\n } else {\n throw new Error(\n \"\\u6570\\u636E[\".concat(entity.srfdename, \"-\").concat(entity.srfmajortext, \"(\").concat(entity.srfkey, \")]\\u4E0D\\u5B58\\u5728\\uFF0C\\u65E0\\u6CD5\\u66F4\\u65B0!\")\n );\n }\n }\n return entities;\n } catch (err) {\n ibiz.log.error(err);\n return null;\n }\n }\n /**\n * 批量删除数据\n *\n * @author chitanda\n * @date 2022-03-23 10:03:40\n * @param {IParams} context 上下文\n * @param {string[]} srfKeys 需要删除的数据主键\n * @return {*} {string[]} 未能删除的数据主键\n */\n deleteBatch(context, srfKeys) {\n try {\n isExistSessionId(\"delete\", context);\n } catch (err) {\n ibiz.log.error(err);\n return srfKeys;\n }\n const map = this.getCacheByTag(context);\n const notRemoveKeys = [];\n for (let i = 0; i < srfKeys.length; i++) {\n const key = srfKeys[i];\n if (!map.has(key)) {\n notRemoveKeys.push(key);\n }\n }\n if (notRemoveKeys.length > 0) {\n throw new Error(\n \"\\u672A\\u627E\\u5230\\u4EE5\\u4E0B\\u6570\\u636E\\u300C\".concat(notRemoveKeys.join(\"\\u3001\"), \"\\u300D\\uFF0C\\u65E0\\u6CD5\\u5220\\u9664!\")\n );\n }\n for (let i = 0; i < srfKeys.length; i++) {\n const key = srfKeys[i];\n map.delete(key);\n ibiz.log.warn(\"delete\", key);\n }\n return [];\n }\n /**\n * 检查数据是否已经存在\n *\n * @author chitanda\n * @date 2022-08-17 23:08:06\n * @param {IParams} context\n * @param {string} srfkey\n * @return {*} {boolean}\n */\n checkData(context, srfkey) {\n const list = this.getList(context);\n const i = list.findIndex((item) => item.srfkey === srfkey);\n return i !== -1;\n }\n /**\n * 根据条件查找数据,未设置条件默认返回全部\n *\n * @author chitanda\n * @date 2022-08-17 23:08:56\n * @param {IParams} context\n * @return {*} {IDataEntity[]}\n */\n getList(context) {\n try {\n isExistSessionId(\"getList\", context);\n const map = this.getCacheByTag(context);\n if (!map) {\n return [];\n }\n const values = map.values();\n return Array.from(values);\n } catch (err) {\n ibiz.log.error(err);\n return [];\n }\n }\n /**\n * 根据条件生成查询\n *\n * @author chitanda\n * @date 2022-08-17 23:08:33\n * @param {IParams} [params={}]\n * @return {*} {<U>(testObj: U) => boolean}\n */\n generatePred(params = {}) {\n const data = {};\n if (params.srfkey) {\n data.srfkey = equals(params.srfkey);\n }\n delete params.srfkey;\n for (const key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) {\n const val = params[key];\n data[key] = equals(val);\n }\n }\n return where(data);\n }\n /**\n * 清除缓存\n *\n * @author chitanda\n * @date 2022-08-17 23:08:54\n * @param {IParams} context\n */\n clear(context) {\n const tag = context.srfsessionid;\n if (this.cacheMap.size > 0) {\n this.cacheMap.delete(tag);\n }\n }\n /**\n * 根据标识获取map组\n *\n * @author chitanda\n * @date 2022-08-17 23:08:47\n * @private\n * @param {IParams} context\n * @return {*} {Map<string, IDataEntity>}\n */\n getCacheByTag(context) {\n const tag = context.srfsessionid;\n if (!this.cacheMap.has(tag)) {\n this.cacheMap.set(tag, /* @__PURE__ */ new Map());\n }\n return this.cacheMap.get(tag);\n }\n};\n\n// src/service/utils/res-path/res-path.ts\nvar reg = new RegExp(\"(?<=\\\\$\\\\{)(.*?)(?=\\\\})\", \"g\");\nfunction getMatchResPath(context, entity) {\n const pathItems = entity.requestPaths || [];\n const items = pathItems.map((str) => {\n return {\n path: str,\n keys: str.match(reg) || []\n };\n });\n const filterItems = items.filter((item) => {\n const { keys } = item;\n if (keys.length === 0) {\n return true;\n }\n return keys.every((key, index) => {\n if (index === keys.length - 1) {\n return true;\n }\n return context[key] != null;\n });\n }).sort((a, b) => b.keys.length - a.keys.length);\n if (filterItems.length > 0) {\n return filterItems[0];\n }\n return void 0;\n}\nfunction calcResPath(context, entity) {\n const item = getMatchResPath(context, entity);\n if (item) {\n if (item.keys.length > 0) {\n let { path: path2 } = item;\n item.keys.forEach((key, index) => {\n if (index === item.keys.length - 1) {\n path2 = path2.replace(new RegExp(\"/[^/]+/\\\\$\\\\{\".concat(key, \"\\\\}\")), \"\");\n } else {\n path2 = path2.replace(\"${\".concat(key, \"}\"), context[key]);\n }\n });\n return path2;\n }\n return item.path;\n }\n return \"\";\n}\n\n// src/service/utils/route-context/route-context.ts\nvar excludeViewTypes = [\n \"DEGRIDVIEW\" /* DE_GRID_VIEW */,\n \"DEGRIDEXPVIEW\" /* DE_GRID_EXP_VIEW */,\n \"DELISTVIEW\" /* DE_LIST_VIEW */,\n \"DELISTEXPVIEW\" /* DE_LIST_EXP_VIEW */,\n \"DEDATAVIEW\" /* DE_DATA_VIEW */,\n \"DEDATAVIEWEXPVIEW\" /* DE_DATAVIEW_EXP_VIEW */,\n \"DECALENDARVIEW\" /* DE_CALENDAR_VIEW */,\n \"DECALENDAREXPVIEW\" /* DE_CALENDAR_EXP_VIEW */,\n \"DECHARTVIEW\" /* DE_CHART_VIEW */,\n \"DECHARTEXPVIEW\" /* DE_CHART_EXP_VIEW */,\n \"DEKANBANVIEW\" /* DE_KANBAN_VIEW */\n];\nfunction calcRouteContext(_appView) {\n let paths = [];\n paths = paths.sort((a, b) => b.length - a.length);\n const [pathArr] = paths;\n if (pathArr) {\n const obj = {};\n pathArr.forEach(([key, val]) => {\n obj[key] = val;\n });\n return obj;\n }\n return {};\n}\n\n// src/service/utils/search-filter/search-filter.ts\nimport { isEmpty as isEmpty6, isNil as isNil6 } from \"ramda\";\nvar SearchFilter = class {\n /**\n * Creates an instance of SearchFilter.\n *\n * @param {*} context\n * @param {*} [data]\n * @memberof SearchFilter\n */\n constructor(context, data) {\n /**\n * 分页\n *\n * @type {number}\n * @memberof SearchFilter\n */\n this.page = 0;\n /**\n * 分页数据量\n *\n * @type {number}\n * @memberof SearchFilter\n */\n this.size = 1e3;\n /**\n * 数据\n *\n * @author chitanda\n * @date 2022-08-17 22:08:00\n * @type {IData}\n */\n this.data = {};\n /**\n * 排序属性\n *\n * @type {string}\n * @memberof SearchFilter\n */\n this.sortField = \"srfordervalue\";\n /**\n * 排序模式\n *\n * @type {('ASC' | 'DESC')}\n * @memberof SearchFilter\n */\n this.sortMode = \"ASC\";\n this.context = context;\n if (data) {\n if (!isNil6(data.page) && !isEmpty6(data.page)) {\n this.page = data.page;\n }\n if (!isNil6(data.size) && !isEmpty6(data.size)) {\n this.size = data.size;\n }\n if (!isNil6(data.query) && !isEmpty6(data.query)) {\n this.query = data.query;\n }\n if (!isNil6(data.sort) && !isEmpty6(data.sort)) {\n const arr = data.sort.split(\",\");\n if (arr.length >= 1) {\n [this.sortField] = arr;\n }\n if (arr.length >= 2) {\n this.sortMode = arr[1].toUpperCase();\n }\n }\n if (!isNil6(data.srfparentkey) && !isEmpty6(data.srfparentkey)) {\n this.srfparentkey = data.srfparentkey;\n }\n if (!isNil6(data.srfparentdename) && !isEmpty6(data.srfparentdename)) {\n this.srfparentdename = data.srfparentdename;\n }\n this.data = { ...data };\n delete this.data.page;\n delete this.data.size;\n delete this.data.query;\n delete this.data.sort;\n delete this.data.srfparentkey;\n delete this.data.srfparentdename;\n }\n }\n /**\n * 获取条件值\n *\n * @author chitanda\n * @date 2022-08-17 22:08:11\n * @param {string} key\n * @return {*} {unknown}\n */\n getValue(key) {\n if (this.data[key]) {\n return this.data[key];\n }\n return this.context[key];\n }\n};\n\n// src/service/service/code-list/code-list.service.ts\nimport { RuntimeError as RuntimeError8 } from \"@ibiz-template/core\";\nvar CodeListService = class {\n constructor(appModel) {\n this.appModel = appModel;\n /**\n * 所有代码表缓存\n *\n * @author lxm\n * @date 2022-08-25 20:08:16\n */\n this.allCodeLists = /* @__PURE__ */ new Map();\n /**\n * 代码表项数据缓存\n *\n * @author lxm\n * @date 2022-08-25 21:08:12\n * @protected\n * @type {Map<string, CodeListItem[]>}\n */\n this.cache = /* @__PURE__ */ new Map();\n }\n /**\n * 获取静态代码表\n *\n * @author chitanda\n * @date 2022-08-25 15:08:11\n * @param {string} _tag\n * @return {*} {CodeListItem[]}\n */\n getStatic(codeList) {\n const codeName = codeList.codeName;\n if (this.cache.has(codeName)) {\n return this.cache.get(codeName);\n }\n const items = codeList.codeItems;\n let result = [];\n if (items == null ? void 0 : items.length) {\n result = this.formatStaticItems(items, codeList.codeItemValueNumber);\n }\n this.cache.set(codeName, Object.freeze(result));\n return result;\n }\n /**\n * 设置代码表模型\n *\n * @author lxm\n * @date 2023-5-23 19:38:51\n * @protected\n * @param {IAppCodeList} codeList\n * @returns {*}\n */\n setCodeList(codeList) {\n const { id, codeName } = codeList;\n this.allCodeLists.set(id, codeList);\n this.allCodeLists.set(codeName, codeList);\n }\n /**\n * 获取代码表模型\n *\n * @author lxm\n * @date 2023-5-23 19:38:51\n * @protected\n * @param {string} tag\n * @returns {*}\n */\n getCodeList(tag) {\n return this.allCodeLists.get(tag);\n }\n /**\n * 格式化代码表\n *\n * @author lxm\n * @date 2022-08-25 21:08:03\n * @protected\n * @param {ICodeItem[]} codeItems\n * @param {boolean} isValueNumber\n * @returns {*}\n */\n formatStaticItems(codeItems, isValueNumber) {\n return codeItems.map((codeItem) => {\n var _a;\n const _codeItem = {\n text: codeItem.text,\n value: isValueNumber ? Number(codeItem.value) : codeItem.value,\n color: codeItem.color,\n id: codeItem.codeName\n };\n if ((_a = codeItem.codeItems) == null ? void 0 : _a.length) {\n _codeItem.children = this.formatStaticItems(\n codeItem.codeItems,\n isValueNumber\n );\n }\n return Object.freeze(_codeItem);\n });\n }\n /**\n * 获取动态代码表\n *\n * @author lxm\n * @date 2022-08-25 21:08:06\n * @protected\n * @param {IAppCodeList} codeList\n * @returns {*} {IData[]}\n */\n async getDynamicCodeList(codeList, context = {}, params = {}) {\n let dynamicCache;\n const codeName = codeList.codeName;\n if (this.cache.has(codeName)) {\n dynamicCache = this.cache.get(codeName);\n } else {\n dynamicCache = new DynamicCodeListCache(codeList);\n this.cache.set(codeName, dynamicCache);\n await dynamicCache.init();\n }\n return dynamicCache.get(context, params);\n }\n /**\n * 获取代码表\n *\n * @author chitanda\n * @date 2022-08-25 15:08:45\n * @param {string} tag\n * @param {IParams} [context]\n * @param {IParams} [params]\n * @return {*} {Promise<CodeListItem[]>}\n */\n async get(tag, context, params) {\n const codeList = this.allCodeLists.get(tag);\n if (!codeList) {\n throw new RuntimeError8(\"\\u627E\\u4E0D\\u5230\".concat(tag, \"\\u4EE3\\u7801\\u8868\"));\n }\n if (codeList.codeListType === \"STATIC\") {\n return this.getStatic(codeList);\n }\n if (codeList.codeListType === \"DYNAMIC\") {\n return this.getDynamicCodeList(codeList, context, params);\n }\n return [];\n }\n};\n\n// src/service/service/counter/counter.service.ts\nimport { RuntimeModelError as RuntimeModelError6 } from \"@ibiz-template/core\";\nvar CounterService = class {\n /**\n * 获取计数器\n *\n * @author chitanda\n * @date 2022-10-26 19:10:18\n * @param {IAppCounter} model\n * @return {*} {Promise<AppCounter>}\n */\n static async getCounter(model, context, params) {\n const id = model.id;\n if (this.counterMap.has(id)) {\n const counter2 = this.counterMap.get(id);\n if (counter2.isDestroyed === false) {\n return counter2;\n }\n this.counterMap.delete(id);\n }\n const counter = new AppCounter(model);\n await counter.init(context, params);\n this.counterMap.set(id, counter);\n return counter;\n }\n /**\n * 根据计数器引用获取计数器实例\n *\n * @author chitanda\n * @date 2022-10-26 20:10:20\n * @static\n * @param {IAppCounterRef} model\n * @param {IParams} context\n * @param {IParams} params\n * @return {*} {Promise<AppCounter>}\n */\n static async getCounterByRef(model, context, params) {\n const { appCounter } = model;\n if (!appCounter) {\n throw new RuntimeModelError6(model, \"\\u672A\\u914D\\u7F6E\\u5E94\\u7528\\u8BA1\\u6570\\u5668!\");\n }\n return this.getCounter(appCounter, context, params);\n }\n};\n/**\n * 计数器组,应用级计数器缓存,不存在重复\n *\n * @author chitanda\n * @date 2022-10-26 19:10:54\n * @protected\n * @static\n * @type {Map<string, AppCounter>}\n */\nCounterService.counterMap = /* @__PURE__ */ new Map();\n\n// src/service/service/entity/de.service.ts\nimport { ModelError as ModelError15, RuntimeError as RuntimeError11 } from \"@ibiz-template/core\";\n\n// src/service/service/work-flow/work-flow.service.ts\nimport { RuntimeError as RuntimeError9 } from \"@ibiz-template/core\";\nvar WorkFlowService = class {\n /**\n * Creates an instance of WorkFlowService.\n * @author lxm\n * @date 2022-09-29 11:09:54\n * @param {IAppDataEntity} model 应用实体\n */\n constructor(model) {\n this.model = model;\n /**\n * 常规基础路径\n *\n * @author lxm\n * @date 2022-09-29 14:09:16\n * @private\n * @type {string}\n */\n this.commonBaseUrl = \"\";\n this.app = ibiz.hub.getApp(model.appId);\n const appContext = ibiz.appData.context;\n this.commonBaseUrl = \"/wfcore/\".concat(appContext.srfsystemid, \"-app-\").concat(this.app.model.codeName.toLowerCase(), \"/\").concat(this.model.name.toLowerCase());\n }\n /**\n * 获取基础路径\n *\n * @author lxm\n * @date 2022-09-29 14:09:40\n * @private\n * @returns {*}\n */\n getBaseUrl() {\n return this.commonBaseUrl;\n }\n /**\n * 获取activeData\n *\n * @private\n * @param {IData} data\n * @param {IParams} context\n * @returns {*}\n * @memberof WorkFlowService\n */\n getActiveData(data, context) {\n if (context.srfprocessinstanceid) {\n data.srfprocessinstanceid = context.srfprocessinstanceid;\n }\n return data;\n }\n /**\n * 根据当前步骤和任务获取工作流步骤数据(如:流程表单等)\n *\n * @author lxm\n * @date 2022-09-29 14:09:45\n * @param {IParams} context\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async getWFStep(context) {\n const { processDefinitionKey, taskDefinitionKey } = context;\n return this.app.net.get(\n \"\".concat(this.getBaseUrl(), \"/process-definitions/\").concat(processDefinitionKey, \"/usertasks/\").concat(taskDefinitionKey)\n );\n }\n /**\n * 根据业务主键和当前步骤获取操作路径\n *\n * @author lxm\n * @date 2022-09-29 14:09:52\n * @param {IParams} context 路径参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async getWFLink(context, data) {\n const deKeyValue = context[this.model.codeName.toLowerCase()];\n const { taskDefinitionKey } = context;\n return this.app.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(deKeyValue, \"/usertasks/\").concat(taskDefinitionKey, \"/ways\"),\n { activedata: this.getActiveData(data, context) }\n );\n }\n /**\n * 根据业务主键获取工作流程进度\n *\n * @author lxm\n * @date 2022-09-29 14:09:45\n * @param {IParams} context\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async getWFHistory(context) {\n const deKeyValue = context[this.model.codeName.toLowerCase()];\n return this.app.net.get(\n \"\".concat(this.getBaseUrl(), \"/\").concat(deKeyValue, \"/process-instances/alls/history\")\n );\n }\n /**\n * 根据业务主键获取工作流流程图片\n *\n * @author lxm\n * @date 2022-10-27 16:10:13\n * @param {IParams} context\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async getWFProcessDiagram(context) {\n const deKeyValue = context[this.model.codeName.toLowerCase()];\n return this.app.net.request(\n \"\".concat(this.getBaseUrl(), \"/\").concat(deKeyValue, \"/process-instances/alls/processdiagram\"),\n {\n method: \"post\",\n data: {},\n responseType: \"blob\"\n }\n );\n }\n /**\n * 获取标准工作流版本信息\n *\n * @author lxm\n * @date 2022-09-29 14:09:45\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async getWFVersion() {\n return this.app.net.get(\"\".concat(this.getBaseUrl(), \"/process-definitions2\"));\n }\n /**\n * 启动工作流\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfStart(context, params, data) {\n return this.app.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/process-instances\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 提交工作流\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfSubmit(context, params, data) {\n return this.app.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 工作流撤销\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfWithdraw(context, params, data) {\n return this.app.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId, \"/withdraw\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 转办\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfReassign(context, params, data) {\n return ibiz.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId, \"/transfer\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 前加签\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfAddStepBefore(context, params, data) {\n return ibiz.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId, \"/beforesign\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 回退\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfSendBack(context, params, data) {\n return ibiz.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId, \"/sendback\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 抄送\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfSendCopy(context, params, data) {\n return ibiz.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId, \"/sendcopy\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 调用工作流接口\n *\n * @author lxm\n * @date 2022-09-30 17:09:38\n * @param {string} methodName 接口名称\n * @param {IParams} context 路径参数\n * @param {IParams} [params={}] 查询参数\n * @param {IData} [data={}] 主数据数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async exec(methodName, context, params = {}, data = {}) {\n switch (methodName) {\n case \"wfstart\":\n return this.wfStart(context, params, data);\n case \"wfsubmit\":\n return this.wfSubmit(context, params, data);\n case \"reassign\":\n return this.wfReassign(context, params, data);\n case \"addstepbefore\":\n return this.wfAddStepBefore(context, params, data);\n case \"sendback\":\n return this.wfSendBack(context, params, data);\n case \"sendcopy\":\n return this.wfSendCopy(context, params, data);\n default: {\n throw new RuntimeError9(\"\\u300C\".concat(methodName, \"\\u300D\\u672A\\u5B9E\\u73B0\"));\n }\n }\n }\n};\n\n// src/service/service/file/file.service.ts\nvar FileService = class {\n /**\n * Creates an instance of FileService.\n * @author lxm\n * @date 2022-11-25 13:11:49\n * @param {IAppDataEntity} model 应用实体\n */\n constructor(model) {\n this.model = model;\n }\n /**\n * 后台导出数据,返回文件流\n *\n * @author lxm\n * @date 2022-11-25 14:11:53\n * @param {IDEDataExport} dataExport 导出模型\n * @param {string} fetchAction 查询方法\n * @param {IParams} context 上下文\n * @param {IParams} params 请求参数\n * @returns {*} {Promise<IHttpResponse<Blob>>}\n */\n exportData(dataExport, fetchAction, context, params) {\n const resPath = calcResPath(context, this.model);\n const exportUrl = \"\".concat(resPath, \"/\").concat(this.model.codeName2.toLowerCase(), \"/exportdata/\").concat(fetchAction.toLowerCase(), \"/?srfexporttag=\").concat(dataExport.codeName);\n return ibiz.net.request(exportUrl, {\n method: \"post\",\n data: params,\n responseType: \"blob\"\n });\n }\n};\n\n// src/service/service/entity/method/de-action.ts\nimport {\n HttpResponse as HttpResponse3,\n RuntimeModelError as RuntimeModelError18\n} from \"@ibiz-template/core\";\n\n// src/service/service/entity/method/method.ts\nimport { RuntimeModelError as RuntimeModelError7 } from \"@ibiz-template/core\";\n\n// src/service/app-data-entity/app-data-entity.ts\nimport { clone as clone4 } from \"ramda\";\n\n// src/service/constant/srfuf.ts\nvar Srfuf = /* @__PURE__ */ ((Srfuf2) => {\n Srfuf2[Srfuf2[\"CREATE\"] = 0] = \"CREATE\";\n Srfuf2[Srfuf2[\"UPDATE\"] = 1] = \"UPDATE\";\n return Srfuf2;\n})(Srfuf || {});\n\n// src/service/app-data-entity/app-data-entity.ts\nvar AppDataEntity = class _AppDataEntity {\n get srfuf() {\n return this.srfkey ? 1 /* UPDATE */ : 0 /* CREATE */;\n }\n /**\n * Creates an instance of AppDataEntity.\n *\n * @author chitanda\n * @date 2022-10-11 21:10:21\n * @param {IAppDataEntity} entity\n * @param {(IData | AppDataEntity)} data\n */\n constructor(entity, data) {\n let _srfkey;\n Object.defineProperty(this, \"_entity\", {\n enumerable: false,\n configurable: true,\n value: entity\n });\n Object.defineProperty(this, \"_data\", {\n enumerable: false,\n configurable: true,\n value: data instanceof _AppDataEntity ? clone4(data._data) : clone4(data)\n });\n Object.defineProperty(this, \"srfdeid\", {\n get() {\n return entity.id;\n }\n });\n Object.defineProperty(this, \"srfdecodename\", {\n get() {\n return entity.codeName;\n }\n });\n const keyAppField = findModelChild(\n entity.appDEFields || [],\n entity.keyAppDEFieldId\n );\n if (keyAppField) {\n const key = keyAppField.codeName.toLowerCase();\n Object.defineProperty(this, \"srfkeyfile\", {\n get() {\n return key;\n }\n });\n Object.defineProperty(this, \"srfkey\", {\n set(val) {\n _srfkey = val;\n this._data[key] = val;\n },\n get() {\n return this._data[key] || _srfkey;\n }\n });\n } else {\n ibiz.log.warn(\"\\u5B9E\\u4F53[\".concat(entity.codeName, \"]\\u672A\\u914D\\u7F6E\\u4E3B\\u952E\\u5B57\\u6BB5\"));\n }\n const majorAppField = findModelChild(\n entity.appDEFields || [],\n entity.majorAppDEFieldId\n );\n if (majorAppField) {\n const major = majorAppField.codeName.toLowerCase();\n Object.defineProperty(this, \"srfmajorfile\", {\n get() {\n return major;\n }\n });\n Object.defineProperty(this, \"srfmajortext\", {\n set(val) {\n this._data[major] = val;\n },\n get() {\n return this._data[major];\n }\n });\n } else {\n ibiz.log.warn(\"\\u5B9E\\u4F53[\".concat(entity.codeName, \"]\\u672A\\u914D\\u7F6E\\u4E3B\\u6587\\u672C\\u5B57\\u6BB5\"));\n }\n this.defineProperties();\n }\n /**\n * 代理实际数据\n *\n * @author chitanda\n * @date 2022-10-11 22:10:55\n * @protected\n */\n defineProperties() {\n var _a;\n const { _data } = this;\n const properties = {};\n const keys = Object.keys(_data);\n keys.forEach((key) => {\n properties[key] = {\n enumerable: true,\n set(val) {\n _data[key] = val;\n },\n get() {\n return _data[key];\n }\n };\n });\n (_a = this._entity.appDEFields) == null ? void 0 : _a.forEach((field) => {\n const key = field.codeName.toLowerCase();\n if (!keys.includes(key)) {\n properties[key] = {\n enumerable: true,\n set(val) {\n _data[key] = val;\n },\n get() {\n return _data[key];\n }\n };\n }\n });\n Object.defineProperties(this, properties);\n }\n /**\n * 克隆数据\n *\n * @author chitanda\n * @date 2022-10-11 00:10:15\n * @return {*} {AppDataEntity}\n */\n clone() {\n return new _AppDataEntity(this._entity, this._data);\n }\n /**\n * 合并参数\n *\n * @author chitanda\n * @date 2022-10-19 11:10:25\n * @param {(IData | AppDataEntity)} data\n * @return {*} {AppDataEntity}\n */\n assign(data) {\n if (data instanceof _AppDataEntity) {\n Object.assign(this._data, data._data);\n } else {\n Object.assign(this._data, data);\n }\n return this;\n }\n};\n\n// src/service/dto/method.dto.ts\nimport { isNilOrEmpty as isNilOrEmpty5 } from \"qx-util\";\nimport { ModelError as ModelError7 } from \"@ibiz-template/core\";\nvar MethodDto = class _MethodDto {\n constructor(entity, dto) {\n this.entity = entity;\n this.dto = dto;\n this.dtoMap = /* @__PURE__ */ new Map();\n if (dto) {\n this.app = ibiz.hub.getApp(entity.appId);\n this.fields = dto.appDEMethodDTOFields || [];\n } else {\n this.fields = [];\n }\n }\n get isLocalMode() {\n return this.entity.storageMode === 1 || this.entity.storageMode === 4;\n }\n /**\n * 请求参数组合 DTO\n *\n * @author chitanda\n * @date 2022-10-10 23:10:33\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {Promise<IData>}\n */\n async get(context, data) {\n const params = {};\n for (let i = 0; i < this.fields.length; i++) {\n const field = this.fields[i];\n const key = field.codeName.toLowerCase();\n switch (field.type) {\n case \"SIMPLE\": {\n const val = data[key];\n if (isNilOrEmpty5(val)) {\n params[key] = null;\n } else {\n params[key] = val;\n }\n break;\n }\n case \"DTOS\": {\n const dto = await this.getFieldDto(field);\n const service = await this.app.deService.getService(\n field.refAppDataEntityId\n );\n const items = service.local.getList(context);\n if (items) {\n const arr = [];\n for (let j = 0; j < items.length; j++) {\n arr.push(await dto.get(context, items[j]));\n }\n params[key] = arr;\n }\n break;\n }\n default:\n throw new ModelError7(\n field,\n \"\\u672A\\u652F\\u6301\\u7684\\u5E94\\u7528\\u5B9E\\u4F53\\u65B9\\u6CD5\\u8F93\\u5165\\u5C5E\\u6027\\u7C7B\\u578B: \".concat(field.type)\n );\n }\n }\n return params;\n }\n /**\n * 设置本地 DTO 存储\n *\n * @author chitanda\n * @date 2022-10-10 23:10:50\n * @param {IParams} context\n * @param {IData[]} data\n * @return {*} {Promise<AppDataEntity[]>}\n */\n async sets(context, data) {\n const service = await this.app.deService.getService(this.entity.id);\n service.local.clear(context);\n return Promise.all(\n data.map(async (datum) => {\n const all = this.fields.filter((field) => field.type === \"DTOS\").map(async (field) => {\n const key = field.codeName.toLowerCase();\n const dto = await this.getFieldDto(field);\n const items = datum[key];\n if (items) {\n await dto.sets(context, items);\n }\n });\n for (let i = 0; i < all.length; i++) {\n await all[i];\n }\n const entityData = new AppDataEntity(this.entity, datum);\n if (this.isLocalMode) {\n await service.local.add(context, entityData);\n }\n return entityData;\n })\n );\n }\n /**\n * 获取子属性 DTO\n *\n * @author chitanda\n * @date 2022-10-17 16:10:47\n * @protected\n * @param {IAppDEMethodDTOField} field\n * @return {*} {Promise<MethodDto>}\n */\n async getFieldDto(field) {\n if (this.dtoMap.has(field.codeName)) {\n return this.dtoMap.get(field.codeName);\n }\n const entity = await ibiz.hub.getAppDataEntity(\n field.refAppDataEntityId,\n this.entity.appId\n );\n const methodDto = findModelChild(\n entity.appDEMethodDTOs || [],\n field.refAppDEMethodDTOId\n );\n const dto = new _MethodDto(entity, methodDto);\n this.dtoMap.set(field.codeName, dto);\n return dto;\n }\n};\n\n// src/service/service/entity/method/method-input.ts\nvar MethodInput = class {\n /**\n * Creates an instance of MethodInput.\n *\n * @author chitanda\n * @date 2022-10-11 17:10:59\n * @param {IAppDataEntity} entity\n * @param {IAppDEMethodInput} [input]\n */\n constructor(entity, input) {\n this.entity = entity;\n this.input = input;\n if (input) {\n const methodDto = findModelChild(\n entity.appDEMethodDTOs || [],\n input.appDEMethodDTOId\n );\n if (methodDto) {\n this.dto = new MethodDto(entity, methodDto);\n }\n }\n }\n /**\n * 处理请求发送参数\n *\n * @author chitanda\n * @date 2022-10-11 14:10:22\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {Promise<IData>}\n */\n async handle(context, data) {\n if (this.dto) {\n return this.dto.get(context, data);\n }\n return data;\n }\n};\n\n// src/service/service/entity/method/method-renturn.ts\nvar MethodReturn = class {\n /**\n * Creates an instance of MethodReturn.\n *\n * @author chitanda\n * @date 2022-10-11 17:10:47\n * @param {IAppDataEntity} entity\n * @param {IAppDEMethodReturn} [output]\n */\n constructor(entity, output) {\n this.entity = entity;\n this.output = output;\n if (output) {\n const methodDto = findModelChild(\n entity.appDEMethodDTOs || [],\n output.appDEMethodDTOId\n );\n if (methodDto) {\n this.dto = new MethodDto(entity, methodDto);\n }\n }\n }\n /**\n * 处理请求返回参数\n *\n * @author chitanda\n * @date 2022-10-19 21:10:06\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {Promise<IDataEntity>}\n */\n async handle(context, data) {\n if (this.dto) {\n const items = await this.dto.sets(context, [data]);\n return items[0];\n }\n return new AppDataEntity(this.entity, data);\n }\n};\n\n// src/service/service/entity/method/method.ts\nvar Method = class {\n /**\n * Creates an instance of Method.\n *\n * @author chitanda\n * @date 2022-10-10 14:10:19\n * @param {IAppDataEntity} entity\n * @param {IAppDEMethod} method\n * @param {ServicePathItem[][]} paths\n */\n constructor(entity, method) {\n this.entity = entity;\n this.method = method;\n this.app = ibiz.hub.getApp(entity.appId);\n this.input = new MethodInput(entity, method.appDEMethodInput);\n this.result = new MethodReturn(entity, method.appDEMethodReturn);\n }\n /**\n * 是否为本地模式\n *\n * @author chitanda\n * @date 2023-04-19 16:04:46\n * @readonly\n * @protected\n * @type {boolean}\n */\n get isLocalMode() {\n return this.entity.storageMode === 1 || this.entity.storageMode === 4;\n }\n /**\n * 发送请求\n *\n * @author chitanda\n * @date 2022-10-10 17:10:44\n * @protected\n * @param {string} path\n * @param {IParams} context\n * @param {IData} data\n * @param {IParams} params\n * @return {*} {Promise<HttpResponse<any>>}\n */\n async request(path2, context, data, params) {\n const { actionType, requestMethod } = this.method;\n if (actionType === \"REMOTE\") {\n const methodName = this.method.codeName.toLowerCase();\n let res = null;\n switch (requestMethod) {\n case \"POST\":\n res = await this.app.net.post(\"\".concat(path2, \"/\").concat(methodName), data, params);\n break;\n case \"GET\":\n res = await this.app.net.get(\"\".concat(path2, \"/\").concat(methodName), data, params);\n break;\n case \"PUT\":\n res = await this.app.net.put(\"\".concat(path2, \"/\").concat(methodName), data, params);\n break;\n case \"DELETE\":\n res = await this.app.net.delete(\n \"\".concat(path2, \"/\").concat(methodName),\n data,\n params\n );\n break;\n default:\n if (requestMethod) {\n throw new RuntimeModelError7(\n this.method,\n \"\\u672A\\u652F\\u6301\\u7684\\u8BF7\\u6C42\\u65B9\\u5F0F: \".concat(requestMethod)\n );\n } else {\n throw new RuntimeModelError7(this.method, \"\\u672A\\u914D\\u7F6E\\u8BF7\\u6C42\\u65B9\\u5F0F\");\n }\n }\n return res;\n }\n throw new RuntimeModelError7(this.method, \"\\u672A\\u652F\\u6301\\u7684\\u884C\\u4E3A\\u7C7B\\u578B[\".concat(actionType, \"]\"));\n }\n /**\n * 根据上下文计算当前请求路径\n *\n * @author chitanda\n * @date 2022-08-24 18:08:46\n * @protected\n * @param {IParams} context\n * @return {*} {string} 拼接结果说明: /祖父实体/祖父实体主键/爷爷实体/爷爷实体主键/父实体/父实体主键/当前实体\n */\n calcPath(context) {\n const curPath = \"/\".concat(this.entity.codeName2.toLowerCase());\n const resPath = calcResPath(context, this.entity);\n return resPath + curPath;\n }\n /**\n * 获取当前实体服务\n *\n * @author chitanda\n * @date 2022-10-11 21:10:12\n * @protected\n * @return {*} {Promise<IAppDEService>}\n */\n async getService() {\n if (!this.service) {\n this.service = await this.app.deService.getService(this.entity.id);\n }\n return this.service;\n }\n /**\n * 创建实体\n *\n * @author chitanda\n * @date 2022-10-11 22:10:05\n * @protected\n * @param {(IData | IDataEntity)} data\n * @return {*} {IDataEntity}\n */\n createEntity(data) {\n return new AppDataEntity(this.entity, data);\n }\n};\n\n// src/de-logic/index.ts\nimport { HttpError as HttpError2, HttpResponse as HttpResponse2, RuntimeError as RuntimeError10 } from \"@ibiz-template/core\";\n\n// src/de-logic/de-logic.ts\nimport { ModelError as ModelError13, RuntimeModelError as RuntimeModelError17 } from \"@ibiz-template/core\";\n\n// src/de-logic/de-logic-context.ts\nvar DELogicContext = class {\n /**\n * Creates an instance of DELogicContext.\n * @author lxm\n * @date 2023-03-24 09:15:14\n * @param {Map<string, DELogicParam>} deLogicParams 实体逻辑参数集合\n * @param {IParams} context 上下文\n * @param {IData} data 数据对象\n * @param {IParams} viewParams 视图参数\n */\n constructor(deLogicParams, context, data, viewParams) {\n this.deLogicParams = deLogicParams;\n this.context = context;\n this.data = data;\n this.viewParams = viewParams;\n /**\n * 实体逻辑参数\n *\n * @description 实体逻辑参数初始化时设置\n * @author lxm\n * @date 2023-02-08 17:02:38\n * @type {Record<string, any>}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.params = {};\n /**\n * UI逻辑执行返回值\n *\n * @author lxm\n * @date 2023-02-09 21:02:40\n * @type {unknown}\n */\n this.result = null;\n /**\n * 是否存在结束节点\n *\n * @author lxm\n * @date 2023-03-16 12:08:58\n * @type {boolean}\n */\n this.isEndNode = false;\n /**\n * 默认参数节点\n *\n * @author lxm\n * @date 2023-03-16 12:11:14\n * @type {string}\n */\n this.defaultParamName = \"Default\";\n }\n /**\n * 重置实体逻辑参数\n * @author lxm\n * @date 2023-03-24 09:18:02\n * @param {string} name\n */\n resetParam(name) {\n var _a;\n (_a = this.deLogicParams.get(name)) == null ? void 0 : _a.calc(this);\n }\n /**\n * 重新建立变量\n * @author lxm\n * @date 2023-03-24 09:20:24\n * @param {string} name\n */\n renewParam(name) {\n var _a;\n (_a = this.deLogicParams.get(name)) == null ? void 0 : _a.renew(this);\n }\n};\n\n// src/de-logic/de-logic-node/de-action-node/de-action-node.ts\nimport { RuntimeModelError as RuntimeModelError10 } from \"@ibiz-template/core\";\n\n// src/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.ts\nimport { RuntimeModelError as RuntimeModelError9 } from \"@ibiz-template/core\";\n\n// src/de-logic/de-logic-link/de-logic-link-cond/de-logic-link-cond.ts\nvar DELogicLinkCond = class {\n};\n\n// src/de-logic/de-logic-link/de-logic-link-single-cond/de-logic-link-single-cond.ts\nimport { ModelError as ModelError8, RuntimeModelError as RuntimeModelError8 } from \"@ibiz-template/core\";\nvar DELogicLinkSingleCond = class extends DELogicLinkCond {\n constructor(model) {\n super();\n this.model = model;\n this.srcParam = model.srcLogicParamId;\n this.dstParam = model.dstLogicParamId;\n }\n get dstField() {\n return this.model.dstFieldName.toLowerCase();\n }\n get op() {\n return this.model.condOP;\n }\n /**\n * 条件值类型\n * @author lxm\n * @date 2023-06-14 03:35:39\n * @readonly\n */\n get type() {\n return this.model.paramType;\n }\n /**\n * 条件值\n * @author lxm\n * @date 2023-06-14 03:36:45\n * @readonly\n */\n get value() {\n return this.model.paramValue;\n }\n /**\n * 执行逻辑检测\n *\n * @author lxm\n * @date 2023-02-15 18:02:05\n * @param {DELogicContext} ctx\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {boolean}\n */\n test(ctx, context, data) {\n const dst = ctx.params[this.dstParam];\n switch (this.type) {\n case \"ENTITYFIELD\": {\n if (!this.value) {\n throw new RuntimeModelError8(\n this.model,\n \"\\u5F53\\u524D\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u6570\\u636E\\u5BF9\\u8C61\\u5C5E\\u6027],\\u7F3A\\u5C11\\u914D\\u7F6E\\u6761\\u4EF6\\u503C\"\n );\n }\n const value = data[this.value] != null ? data[this.value] : context[this.value];\n return testCond(dst[this.dstField], this.op, value);\n }\n case \"SRCENTITYFIELD\": {\n if (!this.value) {\n throw new RuntimeModelError8(\n this.model,\n \"\\u5F53\\u524D\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u6E90\\u6570\\u636E\\u5BF9\\u8C61\\u5C5E\\u6027],\\u7F3A\\u5C11\\u914D\\u7F6E\\u6761\\u4EF6\\u503C\"\n );\n }\n const src = ctx.params[this.srcParam];\n return testCond(dst[this.dstField], this.op, src[this.value]);\n }\n case \"CURTIME\":\n throw new ModelError8(this.model, \"\\u6682\\u672A\\u652F\\u6301\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u5F53\\u524D\\u65F6\\u95F4]\");\n default:\n return testCond(dst[this.dstField], this.op, this.value);\n }\n }\n};\n\n// src/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.ts\nvar DELogicLinkGroupCond = class _DELogicLinkGroupCond extends DELogicLinkCond {\n constructor(model) {\n super();\n this.model = model;\n const conds = model.conds || [];\n this.conds = conds.map((cond) => {\n return cond.logicType === \"SINGLE\" ? new DELogicLinkSingleCond(cond) : new _DELogicLinkGroupCond(cond);\n });\n }\n /**\n * 操作标识\n *\n * @author lxm\n * @date 2023-02-15 17:02:04\n * @readonly\n * @protected\n * @type {('AND' | 'OR')}\n */\n get op() {\n return this.model.groupOP;\n }\n /**\n * 结果是否取反值\n *\n * @author lxm\n * @date 2023-02-15 17:02:10\n * @readonly\n * @protected\n * @type {boolean}\n */\n get notMode() {\n return this.model.notMode === true;\n }\n /**\n * 条件判断\n *\n * @author lxm\n * @date 2023-02-15 17:02:19\n * @param {DELogicContext} ctx\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {boolean}\n */\n test(ctx, context, data) {\n let bol = true;\n if (this.conds.length === 0) {\n throw new RuntimeModelError9(this.model, \"\\u754C\\u9762\\u8FDE\\u63A5\\u6761\\u4EF6\\u903B\\u8F91\\u7EC4\\u672A\\u914D\\u7F6E\\u903B\\u8F91\\u9879\");\n }\n for (let i = 0; i < this.conds.length; i++) {\n const cond = this.conds[i];\n const judge = cond.test(ctx, context, data);\n if (this.op === \"AND\" && judge === false) {\n bol = false;\n break;\n }\n if (this.op === \"OR\" && judge === true) {\n bol = true;\n break;\n }\n }\n return this.notMode ? !bol : bol;\n }\n};\n\n// src/de-logic/de-logic-link/de-logic-link.ts\nvar DELogicLink = class {\n /**\n * Creates an instance of DELogicLink.\n *\n * @author lxm\n * @date 2023-02-08 16:02:19\n * @param {DELogicLinkModel} model\n */\n constructor(model) {\n this.model = model;\n /**\n * 源节点\n *\n * @author lxm\n * @date 2023-02-08 21:02:53\n * @type {DELogicNode}\n */\n this.srcNode = null;\n /**\n * 目标节点\n *\n * @author lxm\n * @date 2023-02-08 21:02:59\n * @type {DELogicNode}\n */\n this.dstNode = null;\n /**\n * 连接条件组\n *\n * @author lxm\n * @date 2023-02-15 17:02:49\n * @type {(DELogicLinkGroupCond | null)}\n */\n this.groupCond = null;\n const cond = this.model.delogicLinkGroupCond;\n if (cond) {\n this.groupCond = new DELogicLinkGroupCond(cond);\n }\n }\n /**\n * 执行连接\n *\n * @author lxm\n * @date 2023-02-08 22:02:18\n * @param {DELogicContext} ctx\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {Promise<boolean>} 是否连接成功\n */\n async exec(ctx) {\n const { defaultLink } = this.model;\n if (defaultLink || !this.groupCond) {\n return true;\n }\n return this.groupCond.test(ctx, ctx.context, ctx.data || {});\n }\n};\n\n// src/de-logic/de-logic-node/de-logic-node.ts\nvar DELogicNode = class {\n /**\n * Creates an instance of DELogicNode.\n *\n * @author lxm\n * @date 2023-02-08 16:02:19\n * @param {DELogicNodeModel} model\n */\n constructor(model) {\n this.model = model;\n var _a;\n this.links = (_a = model.links || []) == null ? void 0 : _a.map((link) => new DELogicLink(link));\n }\n};\n\n// src/de-logic/de-logic-node/de-action-node/de-action-node.ts\nvar DEActionNode = class extends DELogicNode {\n async exec(ctx) {\n const {\n dstAppDataEntityId,\n dstAppDEActionId,\n dstDELogicParamId,\n retDELogicParamId\n } = this.model;\n if (!dstAppDataEntityId) {\n throw new RuntimeModelError10(this.model, \"\\u672A\\u6307\\u5B9A\\u5E94\\u7528\\u5B9E\\u4F53\");\n }\n if (!dstAppDEActionId) {\n throw new RuntimeModelError10(this.model, \"\\u672A\\u6307\\u5B9A\\u5B9E\\u4F53\\u884C\\u4E3A\");\n }\n const requestData = ctx.params[dstDELogicParamId];\n const app = ibiz.hub.getApp(ctx.context.srfappid);\n const res = await app.deService.exec(\n dstAppDataEntityId,\n dstAppDEActionId,\n ctx.context,\n requestData,\n ctx.viewParams\n );\n if (res.ok) {\n ctx.params[retDELogicParamId] = res.data;\n }\n }\n};\n\n// src/de-logic/de-logic-node/start-node/start-node.ts\nvar StartNode = class extends DELogicNode {\n async exec(_ctx) {\n }\n};\n\n// src/de-logic/de-logic-node/end-node/end-node.ts\nimport { ModelError as ModelError9 } from \"@ibiz-template/core\";\nvar EndNode = class extends DELogicNode {\n async exec(ctx) {\n ctx.isEndNode = true;\n const { returnParamId, returnType, rawValue } = this.model;\n switch (returnType) {\n case \"NONEVALUE\":\n ctx.result = void 0;\n break;\n case \"NULLVALUE\":\n ctx.result = null;\n break;\n case \"SRCVALUE\":\n ctx.result = rawValue;\n break;\n case \"LOGICPARAM\":\n ctx.result = ctx.params[returnParamId];\n break;\n case \"LOGICPARAMFIELD\":\n case \"BREAK\":\n default:\n throw new ModelError9(\n this.model,\n \"\\u6682\\u672A\\u652F\\u6301\\u7684\\u7ED3\\u675F\\u8282\\u70B9\\u8FD4\\u56DE\\u503C\\u7C7B\\u578B: \".concat(returnType)\n );\n }\n }\n};\n\n// src/de-logic/de-logic-node/prepare-param-node/prepare-param-node.ts\nimport { ModelError as ModelError11 } from \"@ibiz-template/core\";\nimport { clone as clone6 } from \"ramda\";\n\n// src/de-logic/utils/handle-src-val.ts\nimport { ModelError as ModelError10 } from \"@ibiz-template/core\";\nimport { clone as clone5 } from \"ramda\";\nfunction handleSrcVal(ctx, srcValParams) {\n const { srcDELogicParamId, srcValueType, srcFieldName, srcValue } = srcValParams;\n if (!srcValParams.srcValueType) {\n srcValParams.srcValueType = \"SRCDLPARAM\";\n }\n let value;\n switch (srcValueType) {\n case \"SRCDLPARAM\":\n value = ctx.params[srcDELogicParamId];\n break;\n case \"NULLVALUE\":\n return null;\n case \"NONEVALUE\":\n return void 0;\n case \"SRCVALUE\":\n return srcValue;\n case \"VIEWPARAM\":\n value = ctx.viewParams;\n break;\n case \"APPDATA\":\n value = ctx.context;\n break;\n case \"ENVPARAM\":\n value = clone5(ibiz.env);\n break;\n default:\n throw new ModelError10(srcValParams, \"\\u6682\\u672A\\u652F\\u6301\\u6E90\\u503C\\u7C7B\\u578B\".concat(srcValueType));\n }\n const srcField = srcFieldName == null ? void 0 : srcFieldName.toLowerCase();\n if (value && srcField) {\n value = value[srcField];\n }\n return value;\n}\n\n// src/de-logic/de-logic-node/prepare-param-node/prepare-param-node.ts\nvar PrepareParamNode = class extends DELogicNode {\n async exec(ctx) {\n const nodeParams = this.model.delogicNodeParams;\n if (nodeParams == null ? void 0 : nodeParams.length) {\n await Promise.all(\n nodeParams.map((nodeParam) => {\n switch (nodeParam.paramAction) {\n case \"SETPARAMVALUE\":\n return this.setParamValue(nodeParam, ctx);\n case \"RESETPARAM\":\n return this.resetParam(nodeParam, ctx);\n case \"COPYPARAM\":\n return this.copyParam(nodeParam, ctx);\n case \"BINDPARAM\":\n return this.bindParam(nodeParam, ctx);\n case \"RENEWPARAM\":\n return this.renewParam(nodeParam, ctx);\n case \"APPENDPARAM\":\n return this.appendParam(nodeParam, ctx);\n case \"SORTPARAM\":\n return this.sortParam(nodeParam, ctx);\n default:\n throw new ModelError11(\n nodeParam,\n \"\\u6682\\u672A\\u652F\\u6301\\u903B\\u8F91\\u5904\\u7406\\u53C2\\u6570\\u64CD\\u4F5C\".concat(nodeParam.paramAction)\n );\n }\n })\n );\n }\n }\n /**\n * 拷贝变量\n * @author lxm\n * @date 2023-03-24 09:50:02\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n * @return {*} {*}\n */\n copyParam(nodeParam, ctx) {\n const { dstDELogicParamId } = nodeParam;\n const srcVal = handleSrcVal(ctx, nodeParam);\n ctx.params[dstDELogicParamId] = clone6(srcVal);\n }\n /**\n * 绑定参数\n * @author lxm\n * @date 2023-06-13 05:43:43\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n bindParam(nodeParam, ctx) {\n const srcVal = handleSrcVal(ctx, nodeParam);\n ctx.params[nodeParam.dstDELogicParamId] = srcVal;\n }\n /**\n * 设置变量\n * @author lxm\n * @date 2023-03-17 03:34:02\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n setParamValue(nodeParam, ctx) {\n const { dstFieldName, dstDELogicParamId } = nodeParam;\n const dstField = dstFieldName == null ? void 0 : dstFieldName.toLowerCase();\n const srcVal = handleSrcVal(ctx, nodeParam);\n if (dstField) {\n ctx.params[dstDELogicParamId][dstField] = srcVal;\n } else {\n ctx.params[dstDELogicParamId] = srcVal;\n }\n }\n /**\n * 重置变量\n * @author lxm\n * @date 2023-03-24 09:46:57\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n resetParam(nodeParam, ctx) {\n const { dstDELogicParamId } = nodeParam;\n ctx.resetParam(dstDELogicParamId);\n }\n /**\n * 重新建立变量\n * @author lxm\n * @date 2023-03-24 09:46:47\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n renewParam(nodeParam, ctx) {\n const { dstDELogicParamId } = nodeParam;\n ctx.renewParam(dstDELogicParamId);\n }\n /**\n * 附加到数组变量\n * @author lxm\n * @date 2023-03-24 09:46:47\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n appendParam(nodeParam, ctx) {\n const { dstDELogicParamId, dstIndex, srcIndex, srcSize } = nodeParam;\n const srcVal = handleSrcVal(ctx, nodeParam);\n const insertIndex = dstIndex || 0;\n const _srcIndex = srcIndex || 0;\n const _srcSize = srcSize || srcVal.length;\n ctx.params[dstDELogicParamId].splice(\n insertIndex,\n 0,\n ...srcVal.slice(_srcIndex, _srcSize)\n );\n }\n /**\n * 排序数组变量\n * @author lxm\n * @date 2023-03-24 10:23:01\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n sortParam(nodeParam, ctx) {\n const { dstDELogicParamId, dstFieldName, dstSortDir } = nodeParam;\n const key = dstFieldName.toLowerCase();\n const arr = ctx.params[dstDELogicParamId];\n arr.sort((a, b) => {\n return dstSortDir === \"ASC\" ? a[key] - b[key] : b[key] - a[key];\n });\n }\n};\n\n// src/de-logic/de-logic-node/data-set-node/data-set-node.ts\nvar DataSetNode = class extends DELogicNode {\n async exec(ctx) {\n const {\n dstAppDEDataSetId,\n dstAppDataEntityId,\n dstDELogicParamId,\n retDELogicParamId\n } = this.model;\n const requestData = ctx.params[dstDELogicParamId];\n const app = ibiz.hub.getApp(ctx.context.srfappid);\n const res = await app.deService.exec(\n dstAppDataEntityId,\n dstAppDEDataSetId,\n ctx.context,\n requestData,\n ctx.viewParams\n );\n if (res.ok) {\n ctx.params[retDELogicParamId] = res.data;\n }\n }\n};\n\n// src/de-logic/de-logic-node/bind-param-node/bind-param-node.ts\nimport { RuntimeModelError as RuntimeModelError11 } from \"@ibiz-template/core\";\nvar BindParamNode = class extends DELogicNode {\n async exec(ctx) {\n const { dstDELogicParamId, srcDELogicParamId } = this.model;\n if (!dstDELogicParamId || !srcDELogicParamId) {\n throw new RuntimeModelError11(\n this.model,\n \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u6216\\u8005\\u6E90\\u53C2\\u6570\\u5BF9\\u8C61\\u914D\\u7F6E\"\n );\n }\n const srcVal = handleSrcVal(ctx, this.model);\n ctx.params[dstDELogicParamId] = srcVal;\n }\n};\n\n// src/de-logic/de-logic-node/reset-param-node/reset-param-node.ts\nimport { RuntimeModelError as RuntimeModelError12 } from \"@ibiz-template/core\";\nvar ResetParamNode = class extends DELogicNode {\n async exec(ctx) {\n const { dstDELogicParamId } = this.model;\n if (!dstDELogicParamId) {\n throw new RuntimeModelError12(this.model, \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u914D\\u7F6E\");\n }\n ctx.resetParam(dstDELogicParamId);\n }\n};\n\n// src/de-logic/de-logic-node/renew-param-node/renew-param-node.ts\nimport { RuntimeModelError as RuntimeModelError13 } from \"@ibiz-template/core\";\nvar RenewParamNode = class extends DELogicNode {\n async exec(ctx) {\n const { dstDELogicParamId } = this.model;\n if (!dstDELogicParamId) {\n throw new RuntimeModelError13(this.model, \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u914D\\u7F6E\");\n }\n ctx.renewParam(dstDELogicParamId);\n }\n};\n\n// src/de-logic/de-logic-node/copy-param-node/copy-param-node.ts\nimport { RuntimeModelError as RuntimeModelError14 } from \"@ibiz-template/core\";\nimport { clone as clone7 } from \"ramda\";\nvar CopyParamNode = class extends DELogicNode {\n async exec(ctx) {\n const { dstDELogicParamId, srcDELogicParamId } = this.model;\n if (!dstDELogicParamId || !srcDELogicParamId) {\n throw new RuntimeModelError14(\n this.model,\n \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u6216\\u8005\\u6E90\\u53C2\\u6570\\u5BF9\\u8C61\\u914D\\u7F6E\"\n );\n }\n const srcVal = handleSrcVal(ctx, this.model);\n ctx.params[dstDELogicParamId] = clone7(srcVal);\n }\n};\n\n// src/de-logic/de-logic-node/sort-param-node/sort-param-node.ts\nimport { RuntimeModelError as RuntimeModelError15 } from \"@ibiz-template/core\";\nvar SortParamNode = class extends DELogicNode {\n async exec(ctx) {\n const { dstDELogicParamId, dstSortDir, dstFieldName } = this.model;\n if (!dstDELogicParamId || !dstFieldName) {\n throw new RuntimeModelError15(this.model, \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u6216\\u76EE\\u6807\\u5C5E\\u6027\\u914D\\u7F6E\");\n }\n const key = dstFieldName.toLowerCase();\n const arr = ctx.params[dstDELogicParamId];\n arr.sort((a, b) => {\n return dstSortDir === \"ASC\" ? a[key] - b[key] : b[key] - a[key];\n });\n }\n};\n\n// src/de-logic/de-logic-node/append-param-node/append-param-node.ts\nimport { RuntimeModelError as RuntimeModelError16 } from \"@ibiz-template/core\";\nvar AppendParamNode = class extends DELogicNode {\n async exec(ctx) {\n const {\n dstDELogicParamId,\n srcDELogicParamId,\n dstIndex,\n srcIndex,\n srcSize\n } = this.model;\n if (!dstDELogicParamId || !srcDELogicParamId) {\n throw new RuntimeModelError16(\n this.model,\n \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u6216\\u8005\\u6E90\\u53C2\\u6570\\u5BF9\\u8C61\\u914D\\u7F6E\"\n );\n }\n const srcVal = handleSrcVal(ctx, this.model);\n const insertIndex = dstIndex || 0;\n const _srcIndex = srcIndex || 0;\n const _srcSize = srcSize || srcVal.length;\n ctx.params[dstDELogicParamId].splice(\n insertIndex,\n 0,\n ...srcVal.slice(_srcIndex, _srcSize)\n );\n }\n};\n\n// src/de-logic/de-logic-node/throw-exception-node/throw-exception-node.ts\nimport { HttpError } from \"@ibiz-template/core\";\nvar ThrowExceptionNode = class extends DELogicNode {\n async exec(_ctx) {\n const { errorCode, errorInfo } = this.model;\n throw new HttpError({\n response: {\n status: errorCode,\n statusText: errorInfo\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n });\n }\n};\n\n// src/de-logic/de-logic-param/de-logic-param.ts\nimport { ModelError as ModelError12 } from \"@ibiz-template/core\";\nimport { clone as clone8 } from \"ramda\";\nvar DELogicParam = class {\n /**\n * Creates an instance of DELogicParam.\n *\n * @author lxm\n * @date 2023-02-08 16:02:22\n * @param {DELogicParamModel} model\n */\n constructor(model) {\n this.model = model;\n }\n /**\n * 向界面逻辑中计算基础参数\n *\n * @author lxm\n * @date 2023-02-08 20:02:33\n * @param {DELogicContext} ctx\n * @param {IParams} context\n * @param {IData} data\n * @param {IParams} [opt]\n */\n calc(ctx) {\n const tag = this.model.id;\n const m = this.model;\n if (m.default) {\n ctx.params[tag] = ctx.data || {};\n } else if (m.appGlobalParam) {\n ctx.params[tag] = clone8(ibiz.env);\n } else if (m.entityListParam) {\n ctx.params[tag] = [];\n } else if (m.entityPageParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u5206\\u9875\\u67E5\\u8BE2\\u7ED3\\u679C\");\n } else if (m.entityParam) {\n ctx.params[tag] = {};\n } else if (m.lastReturnParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u4E0A\\u6B21\\u8C03\\u7528\\u8FD4\\u56DE\");\n } else if (m.appContextParam) {\n ctx.params[tag] = ctx.context;\n } else if (m.simpleListParam) {\n ctx.params[tag] = [];\n } else if (m.simpleParam) {\n ctx.params[tag] = {};\n } else if (m.cloneParam) {\n ctx.params[tag] = clone8(ctx.data || {});\n } else if (m.envParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u7CFB\\u7EDF\\u73AF\\u5883\\u53D8\\u91CF\");\n } else if (m.fileListParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u6587\\u4EF6\\u5BF9\\u8C61\\u5217\\u8868\\u53D8\\u91CF\");\n } else if (m.fileParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u6587\\u4EF6\\u5BF9\\u8C61\\u53D8\\u91CF\");\n } else if (m.filterParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u8FC7\\u6EE4\\u5668\\u5BF9\\u8C61\\u53D8\\u91CF\");\n } else if (m.lastParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u6700\\u540E\\u6570\\u636E\\u53D8\\u91CF\");\n } else if (m.originEntity) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u539F\\u59CB\\u6570\\u636E\\u5BF9\\u8C61\");\n } else if (m.sessionParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u64CD\\u4F5C\\u4F1A\\u8BDD\\u53D8\\u91CF\");\n }\n }\n /**\n * 重新建立变量\n * @author lxm\n * @date 2023-03-24 09:20:42\n * @param {DELogicContext} ctx\n */\n renew(ctx) {\n const tag = this.model.id;\n const m = this.model;\n if (m.entityListParam || m.simpleListParam || m.entityPageParam) {\n ctx.params[tag] = [];\n } else if (m.simpleParam || m.entityParam) {\n ctx.params[tag] = {};\n } else {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B\\u91CD\\u65B0\\u5EFA\\u7ACB\\u53D8\\u91CF\");\n }\n }\n};\n\n// src/de-logic/de-logic.ts\nvar DELogic = class {\n /**\n * Creates an instance of DELogic.\n * @author lxm\n * @date 2023-02-08 17:02:26\n * @param {IAppDELogic} model\n */\n constructor(model) {\n this.model = model;\n /**\n * 所有节点实例\n *\n * @author lxm\n * @date 2023-02-08 21:02:38\n * @protected\n * @type {Map<string, DELogicNode>}\n */\n this.nodes = /* @__PURE__ */ new Map();\n /**\n * 所有参数实例\n *\n * @author lxm\n * @date 2023-02-08 21:02:25\n * @protected\n * @type {Map<string, DELogicParam>}\n */\n this.params = /* @__PURE__ */ new Map();\n var _a, _b;\n if (!((_a = model.delogicNodes) == null ? void 0 : _a.length)) {\n throw new RuntimeModelError17(model, \"\\u5B9E\\u4F53\\u903B\\u8F91\\u6CA1\\u6709\\u914D\\u7F6E\\u903B\\u8F91\\u8282\\u70B9\");\n }\n model.delogicNodes.forEach((node) => {\n const { logicNodeType } = node;\n let logicNode;\n switch (logicNodeType) {\n case \"BEGIN\":\n logicNode = new StartNode(node);\n break;\n case \"END\":\n logicNode = new EndNode(node);\n break;\n case \"DEACTION\":\n logicNode = new DEActionNode(node);\n break;\n case \"PREPAREPARAM\":\n logicNode = new PrepareParamNode(node);\n break;\n case \"DEDATASET\":\n logicNode = new DataSetNode(node);\n break;\n case \"THROWEXCEPTION\":\n logicNode = new ThrowExceptionNode(node);\n break;\n case \"BINDPARAM\":\n logicNode = new BindParamNode(node);\n break;\n case \"RESETPARAM\":\n logicNode = new ResetParamNode(node);\n break;\n case \"COPYPARAM\":\n logicNode = new CopyParamNode(node);\n break;\n case \"RENEWPARAM\":\n logicNode = new RenewParamNode(node);\n break;\n case \"APPENDPARAM\":\n logicNode = new AppendParamNode(node);\n break;\n case \"SORTPARAM\":\n logicNode = new SortParamNode(node);\n break;\n default:\n throw new ModelError13(node, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8282\\u70B9\\u7C7B\\u578B: \".concat(logicNodeType));\n }\n this.nodes.set(node.id, logicNode);\n });\n (_b = model.delogicParams) == null ? void 0 : _b.forEach((param) => {\n this.params.set(param.id, new DELogicParam(param));\n });\n this.nodes.forEach((node) => {\n node.links.forEach((link) => {\n link.srcNode = node;\n if (this.nodes.has(link.model.thenId)) {\n link.dstNode = this.nodes.get(link.model.thenId);\n }\n });\n });\n }\n /**\n * 初始化当前环境的逻辑参数的实例\n *\n * @author lxm\n * @date 2023-02-08 21:02:58\n * @protected\n * @param {DELogicContext} ctx\n * @param {IParams} context\n * @param {IData} data\n * @param {IParams} [opt]\n */\n initLogicParams(ctx) {\n this.params.forEach((param) => {\n if (param.model.default) {\n ctx.defaultParamName = param.model.id;\n }\n param.calc(ctx);\n });\n }\n /**\n * 执行逻辑\n *\n * @author lxm\n * @date 2023-02-08 21:02:09\n * @param {IParams} context\n * @param {IData} data\n * @param {IParams} [opt]\n * @return {*} {Promise<IData>}\n */\n async exec(context, data, params) {\n const ctx = new DELogicContext(this.params, context, data, params);\n this.initLogicParams(ctx);\n const { startDELogicNodeId } = this.model;\n if (startDELogicNodeId && this.nodes.has(startDELogicNodeId)) {\n const start = this.nodes.get(startDELogicNodeId);\n await this.deepExec(start, ctx);\n } else {\n throw new RuntimeModelError17(this.model, \"\\u672A\\u8BBE\\u7F6E\\u8D77\\u59CB\\u8282\\u70B9\");\n }\n if (ctx.isEndNode) {\n return ctx.result;\n }\n if (ctx.params[ctx.defaultParamName]) {\n return ctx.params[ctx.defaultParamName];\n }\n return null;\n }\n /**\n * 开始根据连线递归执行逻辑\n *\n * @author lxm\n * @date 2023-06-13 08:29:36\n * @protected\n * @param {DELogicNode} node 逻辑节点\n * @param {DELogicContext} ctx 逻辑上下文\n * @return {*} {Promise<void>}\n */\n async deepExec(node, ctx) {\n await node.exec(ctx);\n const { links } = node;\n for (let index = 0; index < links.length; index++) {\n const link = links[index];\n const bol = await link.exec(ctx);\n if (bol && link.dstNode) {\n await this.deepExec(link.dstNode, ctx);\n if (node.model.parallelOutput === false) {\n break;\n }\n }\n }\n }\n};\n\n// src/de-logic/index.ts\nvar deLogicMap = /* @__PURE__ */ new Map();\nasync function findDeLogic(deDELogicId, dataEntityId, appId) {\n const appDataEntity = await ibiz.hub.getAppDataEntity(dataEntityId, appId);\n return findDELogic(deDELogicId, appDataEntity);\n}\nasync function execDELogic(deDELogic, context, data, params) {\n if (!deLogicMap.has(deDELogic)) {\n deLogicMap.set(deDELogic, new DELogic(deDELogic));\n }\n const deLogic = deLogicMap.get(deDELogic);\n return deLogic.exec(context, data, params);\n}\nasync function execDELogicById(deDELogicId, dataEntityId, context, data, params) {\n const deLogic = await findDeLogic(\n deDELogicId,\n dataEntityId,\n context.srfappid\n );\n if (!deLogic) {\n throw new RuntimeError10(\"\".concat(dataEntityId, \"\\u627E\\u4E0D\\u5230\\u5B9E\\u4F53\\u903B\\u8F91\").concat(deDELogicId));\n }\n return execDELogic(deLogic, context, data, params);\n}\nasync function execDELogicAction(deDELogic, context, data, params) {\n try {\n const result = await execDELogic(deDELogic, context, data, params);\n return new HttpResponse2(result);\n } catch (err) {\n if (err instanceof HttpError2) {\n return new HttpResponse2(err, 500);\n }\n throw err;\n }\n}\nasync function execFieldLogics(entity, type, context, data, params) {\n const fieldLogics = filterFieldLogics(entity, type);\n if (fieldLogics.length) {\n const promiseResult = await Promise.all(\n fieldLogics.map((logic) => {\n return execDELogic(logic, context, data, params);\n })\n );\n promiseResult.forEach((value) => {\n Object.assign(data, value);\n });\n }\n}\n\n// src/service/service/entity/method/de-action.ts\nvar DEActionMethod = class extends Method {\n async exec(context, data, params) {\n if (this.method.actionType === \"DELOGIC\") {\n const deLogic = findDELogic(this.method.appDELogicId, this.entity);\n if (!deLogic) {\n throw new RuntimeModelError18(this.method, \"\\u7F3A\\u5C11\\u5B9E\\u4F53\\u5904\\u7406\\u903B\\u8F91\");\n }\n return execDELogicAction(deLogic, context, data, params);\n }\n if (!this.isLocalMode) {\n data = await this.input.handle(context, data);\n }\n if (![\"READ\", \"GETDRAFT\"].includes(this.method.actionMode)) {\n await execFieldLogics(this.entity, \"change\", context, data, params);\n }\n let result;\n switch (this.method.codeName) {\n case \"Create\":\n result = await this.create(context, data, params);\n break;\n case \"Get\":\n result = await this.get(context, params);\n break;\n case \"GetDraft\":\n result = await this.getDraft(context, params);\n break;\n case \"Remove\":\n result = await this.remove(context, params);\n break;\n case \"Update\":\n result = await this.update(context, data, params);\n break;\n case \"CreateTemp\":\n result = await this.createTemp(context, data);\n break;\n case \"GetTemp\":\n result = await this.getTemp(context, data);\n break;\n case \"GetDraftTemp\":\n result = await this.getDraftTemp(context, params);\n break;\n case \"RemoveTemp\":\n result = await this.removeTemp(context, data);\n break;\n case \"UpdateTemp\":\n result = await this.updateTemp(context, data);\n break;\n default: {\n let path2 = this.calcPath(context);\n if (this.method.needResourceKey) {\n path2 = \"\".concat(path2, \"/\").concat(context[this.entity.codeName.toLowerCase()] || data[this.entity.keyAppDEFieldId]);\n }\n const res = await this.request(path2, context, data, params);\n res.data = await this.result.handle(context, res.data);\n result = res;\n }\n }\n await execFieldLogics(this.entity, \"compute\", context, result.data, params);\n return result;\n }\n /**\n * 创建数据\n *\n * @author chitanda\n * @date 2022-08-24 20:08:01\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {Promise<IHttpResponse<IData>>}\n */\n async create(context, data, params) {\n if (this.isLocalMode) {\n return this.createTemp(context, this.createEntity(data));\n }\n const path2 = this.calcPath(context);\n const res = await this.app.net.post(path2, data, params);\n res.data = await this.result.handle(context, res.data);\n return res;\n }\n /**\n * 删除数据\n *\n * @author chitanda\n * @date 2022-08-24 20:08:56\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async remove(context, params) {\n if (this.isLocalMode) {\n return this.removeTemp(context, params);\n }\n const path2 = this.calcPath(context);\n const res = await this.app.net.delete(\n \"\".concat(path2, \"/\").concat(context[this.entity.codeName.toLowerCase()]),\n params\n );\n return res;\n }\n /**\n * 更新数据\n *\n * @author chitanda\n * @date 2022-09-13 19:09:39\n * @param {IParams} context\n * @param {(IData | IDataEntity)} data\n * @param {IParams} [params={}]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async update(context, data, params = {}) {\n if (this.isLocalMode) {\n return this.updateTemp(context, this.createEntity(data));\n }\n const path2 = this.calcPath(context);\n const res = await this.app.net.put(\n \"\".concat(path2, \"/\").concat(context[this.entity.codeName.toLowerCase()]),\n data,\n params\n );\n res.data = await this.result.handle(context, res.data);\n return res;\n }\n /**\n * 获取数据\n *\n * @author chitanda\n * @date 2022-08-24 20:08:07\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async get(context, params = {}) {\n if (this.isLocalMode) {\n return this.getTemp(context, params);\n }\n const path2 = this.calcPath(context);\n const res = await this.app.net.get(\n \"\".concat(path2, \"/\").concat(context[this.entity.codeName.toLowerCase()]),\n params\n );\n res.data = await this.result.handle(context, res.data);\n return res;\n }\n /**\n * 获取默认数据\n *\n * @author chitanda\n * @date 2022-08-24 20:08:26\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IData>>}\n */\n async getDraft(context, params) {\n if (this.isLocalMode) {\n return this.getDraftTemp(context, params);\n }\n const path2 = this.calcPath(context);\n const res = await this.app.net.get(\"\".concat(path2, \"/getdraft\"), params);\n res.data = await this.result.handle(context, res.data);\n return res;\n }\n /**\n * 新建临时数据\n *\n * @author chitanda\n * @date 2022-08-21 17:08:45\n * @param {IParams} context\n * @param {IData} entity\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async createTemp(context, entity) {\n try {\n const s = await this.getService();\n const data = await s.local.add(context, this.createEntity(entity));\n return new HttpResponse3(data);\n } catch (err) {\n return new HttpResponse3(err, 500);\n }\n }\n /**\n * 获取临时数据默认值\n *\n * @author chitanda\n * @date 2022-08-21 17:08:56\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async getDraftTemp(_context, _params) {\n try {\n const data = this.createEntity({});\n if (data) {\n return new HttpResponse3(data);\n }\n return new HttpResponse3(data, 500);\n } catch (err) {\n return new HttpResponse3(err, 500);\n }\n }\n /**\n * 删除临时数据\n *\n * @author chitanda\n * @date 2022-08-21 17:08:11\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async removeTemp(context, params) {\n try {\n let key = null;\n if (params) {\n }\n if (!key && context) {\n key = context[this.entity.codeName.toLowerCase()];\n }\n const s = await this.getService();\n const data = s.local.delete(context, key);\n if (data) {\n return new HttpResponse3(data);\n }\n return new HttpResponse3(data, 500);\n } catch (err) {\n return new HttpResponse3(err, 500);\n }\n }\n /**\n * 更新临时数据\n *\n * @author chitanda\n * @date 2022-08-21 17:08:17\n * @param {IParams} context\n * @param {IData} entity\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async updateTemp(context, entity) {\n try {\n const s = await this.getService();\n const data = s.local.update(context, this.createEntity(entity));\n if (data) {\n return new HttpResponse3(data);\n }\n return new HttpResponse3(data, 500);\n } catch (err) {\n return new HttpResponse3(err, 500);\n }\n }\n /**\n * 获取临时数据\n *\n * @author chitanda\n * @date 2022-08-21 17:08:23\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async getTemp(context, params) {\n try {\n let key = null;\n if (params) {\n }\n if (!key && context) {\n key = context[this.entity.codeName.toLowerCase()];\n }\n const s = await this.getService();\n const data = s.local.get(context, key);\n if (data) {\n return new HttpResponse3(data);\n }\n return new HttpResponse3(data, 500);\n } catch (err) {\n return new HttpResponse3(err, 500);\n }\n }\n /**\n * 批量删除本地数据\n *\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse>}\n */\n async removeBatchTemp(_context, _params) {\n return new HttpResponse3(true);\n }\n};\n\n// src/service/service/entity/method/fetch.ts\nimport {\n HttpResponse as HttpResponse4,\n ModelError as ModelError14,\n RuntimeModelError as RuntimeModelError19\n} from \"@ibiz-template/core\";\nimport { ascSort, descSort } from \"qx-util\";\nimport { clone as clone9, equals as equals2, isEmpty as isEmpty7, isNil as isNil7, where as where2 } from \"ramda\";\nvar FetchMethod = class extends Method {\n async exec(context, data, params) {\n if (this.isLocalMode) {\n const items2 = await this.searchLocal(\n null,\n new SearchFilter(context, data)\n );\n return new HttpResponse4(items2, 200);\n }\n let res;\n switch (this.method.dataSetType) {\n case \"INDEXDE\":\n case \"CODELIST\":\n res = await this.fetchCodeListSet(context, params);\n break;\n case \"REMOTE\":\n {\n const path2 = this.calcPath(context);\n res = await this.request(path2, context, data, params);\n }\n break;\n default:\n throw new ModelError14(\n this.method,\n \"\\u6570\\u636E\\u6765\\u6E90\\u7C7B\\u578B\".concat(this.method.dataSetType, \"\\u6682\\u672A\\u652F\\u6301\")\n );\n }\n const items = res.data || [];\n res.data = items.map((item) => this.createEntity(item));\n if (res.data.length) {\n await Promise.all(\n res.data.map(\n (item) => execFieldLogics(this.entity, \"compute\", context, item, params)\n )\n );\n }\n return res;\n }\n /**\n * 查询本地数据,根据属性\n *\n * @param {IParams} context\n * @param {IParams} params 根据多实体属性查找,例:{ name: '张三', age: 18, parent: null }\n * @return {*} {Promise<IDataEntity[]>}\n */\n async selectLocal(context, params = {}) {\n const service = await this.getService();\n let items = service.local.getList(context);\n items = ascSort(items, \"srfordervalue\");\n const data = {};\n const nullData = {};\n const undefinedData = {};\n const emptyData = {};\n if (params.srfkey) {\n data.srfkey = equals2(params.srfkey);\n delete params.srfkey;\n }\n for (const key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) {\n const val = params[key];\n if (val == null) {\n nullData[key] = equals2(null);\n undefinedData[key] = equals2(void 0);\n emptyData[key] = equals2(\"\");\n } else {\n data[key] = equals2(val);\n }\n }\n }\n if (!isEmpty7(data)) {\n const pred = where2(data);\n const nullPred = where2(nullData);\n const undefinedPred = where2(undefinedData);\n const emptyPred = where2(emptyData);\n items = items.filter((obj) => {\n if (isEmpty7(nullData)) {\n if (pred(obj)) {\n return true;\n }\n } else if (pred(obj) && (nullPred(obj) || undefinedPred(obj) || emptyPred(obj))) {\n return true;\n }\n return false;\n });\n }\n const list = items.map((obj) => obj.clone());\n return list;\n }\n /**\n * 搜索本地数据\n *\n * @protected\n * @param {PSDEDQCondEngine | null} cond 查询实例\n * @param {SearchFilter} filter 过滤对象\n * @param {string[]} [queryParamKeys=this.entity.quickSearchKeys] 当前实体支持快速搜索的属性\n * @return {*} {Promise<IDataEntity[]>}\n */\n async searchLocal(cond, filter, queryParamKeys = this.entity.quickSearchAppDEFieldIds) {\n const service = await this.getService();\n let list = [];\n if (cond) {\n list = service.local.getList(filter.context);\n if (list.length > 0) {\n list = list.filter((obj) => cond.test(obj, filter));\n }\n } else {\n list = await this.selectLocal(filter.context);\n if (list.length > 0) {\n if (filter.query && filter.query !== \"\") {\n if (queryParamKeys) {\n list = list.filter((obj) => {\n const reg2 = new RegExp(filter.query);\n for (let i = 0; i < queryParamKeys.length; i += 1) {\n const key = queryParamKeys[i];\n const val = obj[key];\n if (reg2.test(val)) {\n return true;\n }\n }\n return false;\n });\n }\n }\n }\n }\n if (!isNil7(filter.sortField) && !isEmpty7(filter.sortField)) {\n if (filter.sortMode === \"DESC\") {\n list = descSort(list, filter.sortField);\n } else {\n list = ascSort(list, filter.sortField);\n }\n }\n const { page, size } = filter;\n const start = page * size;\n const end = (page + 1) * size - 1;\n const items = list.slice(start, end).map((item) => clone9(item));\n return items;\n }\n /**\n * 获取代码表数据来源的集合\n * @author lxm\n * @date 2023-08-03 02:55:00\n * @param {IParams} context\n * @param {IParams} params\n * @return {*} {Promise<HttpResponse<IData[]>>}\n */\n async fetchCodeListSet(context, params) {\n const { appCodeListId } = this.method;\n if (!appCodeListId) {\n throw new RuntimeModelError19(this.method, \"\\u6CA1\\u6709\\u6307\\u5B9A\\u6570\\u636E\\u6765\\u6E90\\u4EE3\\u7801\\u8868\");\n }\n const codeItems = await this.app.codeList.get(\n appCodeListId,\n context,\n params\n );\n const { keyAppDEFieldId, majorAppDEFieldId } = this.entity;\n const dataSet = codeItems.map((item) => ({\n [keyAppDEFieldId]: item.value,\n [majorAppDEFieldId]: item.text\n }));\n return new HttpResponse4(dataSet, 200);\n }\n};\n\n// src/service/service/entity/de.service.ts\nvar DEService = class {\n /**\n * Creates an instance of EntityService.\n *\n * @author chitanda\n * @date 2022-08-24 18:08:44\n * @param {IAppDataEntity} model 应用实体模型\n */\n constructor(model) {\n this.model = model;\n /**\n * 请求方法实例\n *\n * @author chitanda\n * @date 2022-10-10 12:10:13\n * @protected\n * @type {Map<string, Method>}\n */\n this.methodMap = /* @__PURE__ */ new Map();\n /**\n * 数据缓存\n *\n * @author chitanda\n * @date 2022-08-18 19:08:40\n * @type {DECache}\n */\n this.local = new DECache();\n this.wf = new WorkFlowService(model);\n this.file = new FileService(model);\n }\n /**\n * 获取实体服务方法实例\n *\n * @author chitanda\n * @date 2022-10-10 14:10:53\n * @protected\n * @param {string} id\n * @return {*} {Method}\n */\n getMethod(id) {\n if (this.methodMap.has(id)) {\n return this.methodMap.get(id);\n }\n const model = findModelChild(this.model.appDEMethods, id);\n let method = null;\n switch (model.methodType) {\n case \"DEACTION\":\n method = new DEActionMethod(this.model, model);\n break;\n case \"FETCH\":\n case \"FETCHTEMP\":\n method = new FetchMethod(this.model, model);\n break;\n default:\n throw new ModelError15(\n model,\n \"\\u672A\\u652F\\u6301\\u7684\\u670D\\u52A1\\u65B9\\u6CD5\\u7C7B\\u578B: \".concat(model.methodType)\n );\n }\n this.methodMap.set(id, method);\n return method;\n }\n /**\n * 执行服务方法\n *\n * @author chitanda\n * @date 2022-09-13 19:09:55\n * @param {string} id 执行服务方法标识\n * @param {IParams} context\n * @param {IData} [params={}] 请求参数\n * @param {IParams} [params2={}] 查询参数\n * @return {*} {Promise<IHttpResponse>}\n */\n exec(id, context, params = {}, params2 = {}) {\n const method = this.getMethod(id);\n if (method) {\n return method.exec(context, params, params2);\n }\n throw new RuntimeError11(\"\".concat(this.model.codeName, \"\\u672A\\u652F\\u6301\\u300C\").concat(id, \"\\u300D\\u65B9\\u6CD5\"));\n }\n};\n\n// src/service/vo/control.vo.ts\nimport { isNil as isNil8 } from \"ramda\";\nvar ControlVO = class _ControlVO {\n /**\n * 是否是新建数据,0为新建\n *\n * @author lxm\n * @date 2022-09-06 22:09:24\n * @type {Srfuf}\n */\n get srfuf() {\n if (isNil8(this.$origin.srfuf)) {\n return this.srfkey ? 1 /* UPDATE */ : 0 /* CREATE */;\n }\n return this.$origin.srfuf;\n }\n /**\n * 主键\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfkey() {\n return this.$origin.srfkey;\n }\n /**\n * 主信息\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfmajortext() {\n return this.$origin.srfmajortext;\n }\n /**\n * 实体模型标识\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfdeid() {\n return this.$origin.srfdeid;\n }\n /**\n * 实体模型代码名称\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfdecodename() {\n return this.$origin.srfdecodename;\n }\n /**\n * 实体主键属性\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfkeyfile() {\n return this.$origin.srfkeyfile;\n }\n /**\n * 实体主信息属性\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfmajorfile() {\n return this.$origin.srfmajorfile;\n }\n /**\n * Creates an instance of ControlVO.\n * @author lxm\n * @date 2022-09-05 15:09:10\n * @param {IData} origin 后台原始数据\n * @param {Map<string, string>} dataUIMap 转换映射map,key为转换后的属性,value为映射字段描述信息\n */\n constructor($origin = {}, $dataUIMap = /* @__PURE__ */ new Map()) {\n Object.defineProperty(this, \"$origin\", {\n enumerable: false,\n configurable: true,\n value: $origin || {}\n });\n Object.defineProperty(this, \"$dataUIMap\", {\n enumerable: false,\n configurable: true,\n value: $dataUIMap || /* @__PURE__ */ new Map()\n });\n this.$dataUIMap.forEach((mapField, key) => {\n const value = mapField.dataKey;\n this.linkProperty(key, value, mapField.isOriginField);\n });\n Object.keys($origin).forEach((value) => {\n if (!Object.prototype.hasOwnProperty.call(this, value)) {\n this.linkProperty(value, value);\n }\n });\n }\n /**\n * 关联实体属性\n *\n * @author lxm\n * @date 2022-10-18 15:10:48\n * @private\n * @param {string} uiKey 界面字段\n * @param {string} dataKey 数据字段\n * @param {boolean} [isOriginField=true] 是否是后台存储字段,是的话存取都在$origin里\n * @returns {*}\n */\n linkProperty(uiKey, dataKey, isOriginField = true) {\n if (uiKey === \"srfuf\") {\n return;\n }\n if (isOriginField || Object.prototype.hasOwnProperty.call(this.$origin, uiKey)) {\n Object.defineProperty(this, uiKey, {\n enumerable: true,\n configurable: true,\n get() {\n return this.$origin[dataKey];\n },\n set(val) {\n this.$origin[dataKey] = val;\n }\n });\n } else {\n Object.defineProperty(this, uiKey, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n }\n }\n /**\n * 获取原始数据\n *\n * @author lxm\n * @date 2022-09-05 15:09:52\n * @returns {*}\n */\n getOrigin() {\n return this.$origin;\n }\n /**\n * 设置原始数据\n *\n * @author lxm\n * @date 2022-10-17 20:10:39\n * @param {IData} data\n */\n setOrigin(data) {\n this.$origin = data instanceof _ControlVO ? data.getOrigin() : data;\n }\n};\n\n// src/service/service/control/control.service.ts\nvar ControlService = class {\n /**\n * Creates an instance of ControlService.\n * @author lxm\n * @date 2022-08-29 18:08:08\n * @param {T} model\n */\n constructor(model) {\n /**\n * UI数据和实体数据的属性名映射\n * key:UI数据属性名\n * value: 映射属性描述信息\n *\n * @author lxm\n * @date 2022-08-31 17:08:35\n */\n this.dataUIMap = /* @__PURE__ */ new Map();\n this.model = model;\n }\n /**\n * 子类不可覆盖或重写此方法,在 init 时需要重写的使用 onInit 方法。\n *\n * @author lxm\n * @date 2022-08-18 22:08:30\n * @returns {*} {Promise<void>}\n */\n async init(context) {\n this.app = ibiz.hub.getApp(context == null ? void 0 : context.srfappid);\n this.initUIDataMap();\n }\n /**\n * 初始化属性映射\n *\n * @author lxm\n * @date 2022-08-31 18:08:37\n */\n initUIDataMap() {\n }\n /**\n * 执行服务方法\n *\n * @author lxm\n * @date 2022-08-31 17:08:41\n * @param {string} methodName 方法名\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 视图参数或数据\n * @returns {*} {Promise<IHttpResponse>}\n */\n async exec(methodName, context, data = {}, params = {}) {\n const res = await this.app.deService.exec(\n this.model.appDataEntityId,\n methodName,\n context,\n data,\n params\n );\n return res;\n }\n /**\n * 处理响应\n *\n * @author lxm\n * @date 2022-08-31 17:08:13\n * @param {IHttpResponse} res\n * @returns {*} {IHttpResponse}\n */\n handleResponse(res) {\n return res;\n }\n /**\n * 实体数据转ui数据\n *\n * @author lxm\n * @date 2022-08-31 17:08:15\n * @param {IData} entityData 实体数据\n * @returns {*} {IData}\n */\n toUIData(entityData) {\n return new ControlVO(entityData, this.dataUIMap);\n }\n};\n\n// src/service/service/control/md-control.service.ts\nimport { RuntimeError as RuntimeError12 } from \"@ibiz-template/core\";\nimport { isArray } from \"qx-util\";\nvar MDControlService = class extends ControlService {\n /**\n * 执行查询多条数据的方法\n *\n * @author lxm\n * @date 2022-08-31 17:08:41\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 视图参数\n * @returns {*} {Promise<IHttpResponse>}\n */\n async fetch(context, params = {}) {\n var _a;\n const fetchAction = ((_a = this.model.fetchControlAction) == null ? void 0 : _a.appDEMethodId) || \"fetchdefault\";\n let res = await this.exec(fetchAction, context, params);\n res = this.handleResponse(res);\n return res;\n }\n /**\n * 执行获取单条数据方法\n *\n * @author lxm\n * @date 2022-08-31 17:08:41\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 视图参数\n * @returns {*} {Promise<IHttpResponse>}\n */\n async get(context, params = {}) {\n var _a;\n const getAction = ((_a = this.model.getControlAction) == null ? void 0 : _a.appDEMethodId) || \"get\";\n let res = await this.exec(getAction, context, void 0, params);\n res = this.handleResponse(res);\n return res;\n }\n /**\n * 执行获取草稿方法\n *\n * @author lxm\n * @date 2022-08-31 17:08:41\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 视图参数\n * @returns {*} {Promise<IHttpResponse>}\n */\n async getDraft(context, params = {}) {\n var _a;\n const getDraftAction = ((_a = this.model.getDraftControlAction) == null ? void 0 : _a.appDEMethodId) || \"getdraft\";\n let res = await this.exec(getDraftAction, context, void 0, params);\n res = this.handleResponse(res);\n return res;\n }\n /**\n * 删除单条数据\n *\n * @author lxm\n * @date 2022-09-07 19:09:48\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 视图参数\n * @returns {*}\n */\n async remove(context, params = {}) {\n var _a;\n const removeAction = ((_a = this.model.removeControlAction) == null ? void 0 : _a.appDEMethodId) || \"remove\";\n const res = await this.exec(removeAction, context, void 0, params);\n return res;\n }\n /**\n * 新建数据\n *\n * @author lxm\n * @date 2022-09-07 19:09:11\n * @param {IParams} context 上下文\n * @param {ControlVO} data 数据\n * @returns {*}\n */\n async create(context, data) {\n var _a;\n const createAction = ((_a = this.model.createControlAction) == null ? void 0 : _a.appDEMethodId) || \"create\";\n let res = await this.exec(createAction, context, data.getOrigin());\n res = this.handleResponse(res);\n return res;\n }\n /**\n * 更新数据\n *\n * @author lxm\n * @date 2022-09-07 19:09:11\n * @param {IParams} context 上下文\n * @param {ControlVO} data 数据\n * @returns {*}\n */\n async update(context, data) {\n var _a;\n const updateAction = ((_a = this.model.updateControlAction) == null ? void 0 : _a.appDEMethodId) || \"update\";\n let res = await this.exec(updateAction, context, data.getOrigin());\n res = this.handleResponse(res);\n return res;\n }\n /**\n * 导出数据\n *\n * @author lxm\n * @date 2022-11-25 14:11:09\n * @param {IPSDEDataExport} dataExport 导出模型\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 请求参数\n * @returns {*} {Promise<IHttpResponse>}\n */\n async exportData(_dataExport, _context, _params = {}) {\n throw new RuntimeError12(\"\\u672A\\u5B9E\\u73B0\");\n }\n /**\n * 处理响应\n *\n * @author lxm\n * @date 2022-08-31 17:08:13\n * @param {IHttpResponse} res\n * @returns {*} {IHttpResponse}\n */\n handleResponse(response) {\n const res = super.handleResponse(response);\n if (res.headers) {\n if (res.headers[\"x-page\"]) {\n res.page = Number(res.headers[\"x-page\"]);\n }\n if (res.headers[\"x-per-page\"]) {\n res.size = Number(res.headers[\"x-per-page\"]);\n }\n if (res.headers[\"x-total\"]) {\n res.total = Number(res.headers[\"x-total\"]);\n }\n }\n if (res.ok) {\n if (isArray(res.data)) {\n res.data = res.data.map((item) => this.toUIData(item));\n } else {\n res.data = this.toUIData(res.data);\n }\n }\n return res;\n }\n};\n\n// src/service/service/authority/authority.service.ts\nimport { RuntimeError as RuntimeError13 } from \"@ibiz-template/core\";\n\n// src/service/service/authority/de-authority.service.ts\nvar DeAuthorityService = class {\n constructor(entityModel) {\n this.entityModel = entityModel;\n }\n /**\n * 通过操作标识计算权限\n * @author lxm\n * @date 2023-05-10 12:33:10\n * @param {string} dataAccessAction 操作标识\n * @param {IData} [data] 实体数据\n * @param {string} [appDeId] 应用实体id\n * @return {*} {Promise<boolean>}\n */\n async calcByDataAccessAction(dataAccessAction, data) {\n if (data.srfopprivs && !data.srfopprivs.includes(dataAccessAction)) {\n return false;\n }\n const mainStateResult = await this.calcByDeMainState(\n dataAccessAction,\n data\n );\n if (!mainStateResult) {\n return false;\n }\n return true;\n }\n /**\n * 通过实体主状态计算权限\n * @author lxm\n * @date 2023-05-10 01:15:43\n * @param {string} dataAccessAction 权限操作标识\n * @param {IData} data 当前数据\n * @param {string} appDeId 应用实体id\n * @return {*} {Promise<boolean>}\n */\n async calcByDeMainState(dataAccessAction, data) {\n let result = true;\n const appDataEntity = this.entityModel;\n if (!appDataEntity.enableDEMainState) {\n ibiz.log.debug(\n \"\".concat(appDataEntity.codeName, \"\\u5B9E\\u4F53\\u4E0D\\u5B58\\u5728\\u6216\\u8005\\u4E3A\\u542F\\u7528\\u4E3B\\u72B6\\u6001\\uFF0C\\u8FD4\\u56DEtrue\")\n );\n return result;\n }\n ibiz.log.debug(\n \"\\u64CD\\u4F5C\\u6807\\u8BC6\".concat(dataAccessAction, \"\\u4E3B\\u72B6\\u6001\\u8BA1\\u7B97\\u5F00\\u59CB\"),\n data,\n appDataEntity\n );\n const match = matchMainState(appDataEntity, data);\n if (match) {\n ibiz.log.debug(\"\\u5339\\u914D\\u4E3B\\u72B6\\u6001\", match);\n const opprivs = calcMainStateOPPrivsStrs(match, appDataEntity);\n ibiz.log.debug(\"\\u5141\\u8BB8\\u7684\\u4E3B\\u72B6\\u6001\\u6743\\u9650\\u96C6\\u5408\", opprivs);\n result = opprivs.includes(dataAccessAction);\n } else {\n ibiz.log.debug(\"\\u6CA1\\u5339\\u914D\\u4E3B\\u72B6\\u6001\\uFF0C\\u8FD4\\u56DEfalse\");\n result = false;\n }\n ibiz.log.debug(\"\\u64CD\\u4F5C\\u6807\\u8BC6\".concat(dataAccessAction, \"\\u6743\\u9650\\u8BA1\\u7B97\\u7ED3\\u675F\\uFF1A\").concat(result));\n return result;\n }\n};\n\n// src/service/service/authority/authority.service.ts\nvar AuthorityService = class {\n constructor(appModel) {\n this.appModel = appModel;\n /**\n * 实体服务缓存\n *\n * @author chitanda\n * @date 2022-08-17 23:08:36\n * @protected\n * @type {Map<string, IAppDEService>}\n */\n this.cache = /* @__PURE__ */ new Map();\n /**\n * 实体服务构造方法缓存\n *\n * @author chitanda\n * @date 2022-08-17 23:08:36\n * @protected\n * @type {Map<string, IAppDEService>}\n */\n this.constructorCache = /* @__PURE__ */ new Map();\n /**\n * 统一资源集合\n *\n * @author lxm\n * @date 2022-10-12 17:10:46\n * @private\n * @type {string[]}\n */\n this.resCodes = [];\n /**\n * 是否启用权限校验\n * @author lxm\n * @date 2022-10-14 19:10:50\n * @private\n * @type {boolean}\n */\n this.enablePermission = false;\n }\n /**\n * 注册服务工厂方法\n *\n * @author chitanda\n * @date 2023-06-14 10:06:21\n * @param {string} id\n * @param {(\n * entityModel: IAppDataEntity,\n * ) => Promise<IAppDeAuthorityService>} constructor\n */\n register(id, constructor) {\n this.constructorCache.set(id, constructor);\n }\n /**\n * 根据实体标识获取实体服务\n *\n * @author chitanda\n * @date 2022-12-23 10:12:24\n * @param {string} id 实体标识\n * @param {IParams} [context] 上下文,用于计算模型所属沙箱环境\n * @return {*} {Promise<IAppDEService>}\n */\n async getService(id) {\n if (!this.cache.has(id)) {\n const entityModel = await ibiz.hub.getAppDataEntity(\n id,\n this.appModel.appId\n );\n if (!entityModel) {\n throw new RuntimeError13(\"\\u672A\\u627E\\u5230\\u5E94\\u7528\\u5B9E\\u4F53[\".concat(id, \"]\"));\n }\n const constructor = this.constructorCache.get(id);\n let service;\n if (constructor) {\n service = await constructor(entityModel);\n } else {\n service = new DeAuthorityService(entityModel);\n }\n this.cache.set(id, service);\n }\n return this.cache.get(id);\n }\n /**\n * 权限服务初始化\n *\n * @author lxm\n * @date 2022-10-13 15:10:44\n * @param {*} [appData=ibiz.appData]\n * @returns {*} {Promise<void>}\n */\n async init(appData = ibiz.appData) {\n if (!appData) {\n throw new RuntimeError13(\"\\u6CA1\\u6709appData\\u6570\\u636E\");\n }\n if (appData.unires) {\n this.resCodes = appData.unires;\n }\n if (appData.enablepermissionvalid === true && ibiz.env.enablePermission) {\n this.enablePermission = true;\n }\n }\n /**\n * 通过统一资源标识计算权限\n * @author lxm\n * @date 2023-05-10 12:29:53\n * @param {string} resCode\n */\n calcByResCode(resCode) {\n return !this.enablePermission || this.resCodes.includes(resCode);\n }\n /**\n * 通过操作标识计算权限\n * @author lxm\n * @date 2023-05-10 12:33:10\n * @param {string} dataAccessAction 操作标识\n * @param {IData} [data] 实体数据\n * @param {string} [appDeId] 应用实体id\n * @return {*} {Promise<boolean>}\n */\n async calcByDataAccessAction(dataAccessAction, data, appDeId) {\n const result = true;\n if (this.enablePermission) {\n const app = await ibiz.hub.getApp(this.appModel.appId);\n const opPriv = await app.getOPPriv(dataAccessAction, appDeId);\n if (this.enablePermission && (opPriv == null ? void 0 : opPriv.mapSysUniResCode) && !this.calcByResCode(opPriv.mapSysUniResCode)) {\n return false;\n }\n }\n if (data && appDeId) {\n const service = await this.getService(appDeId);\n return service.calcByDataAccessAction(dataAccessAction, data);\n }\n return result;\n }\n};\n\n// src/service/service/auth/auth.service.ts\nvar AuthService = class {\n /**\n * v7 uaa 登录\n *\n * @author chitanda\n * @date 2022-07-19 18:07:54\n * @param {string} loginname\n * @param {string} password\n * @return {*} {Promise<IHttpResponse>}\n */\n async v7login(loginname, password) {\n const res = await ibiz.net.post(\n \"/v7/login\",\n { loginname, password },\n {},\n {\n // sass 模式下,注册在 sassMgr 管理平台的应用中心系统标识\n // srfdcsystem: ibiz.env.dcSystem,\n }\n );\n return res;\n }\n /**\n * v7 uaa 登出\n *\n * @author chitanda\n * @date 2022-09-14 18:07:54\n * @return {*} {Promise<IHttpResponse>}\n */\n async v7logout() {\n const res = await ibiz.net.get(\"/v7/logout\", {});\n return res;\n }\n};\n\n// src/service/vo/tree-node-data/tree-node-data.ts\nvar TreeNodeData = class {\n constructor(model, parentNodeData, opts) {\n this.leaf = false;\n this.leaf = opts.leaf === true;\n this.parent = parentNodeData;\n if (this.parent) {\n this.context = { ...this.parent.context };\n }\n if (opts.navContext) {\n this.context = Object.assign(this.context || {}, opts.navContext);\n }\n if (opts.navParams) {\n this.params = { ...opts.navParams };\n }\n this.nodeId = model.id;\n }\n};\n\n// src/service/vo/tree-node-data/tree-code-list-node-data.ts\nvar TreeCodeListNodeData = class extends TreeNodeData {\n constructor(model, parentNodeData, opts) {\n super(model, parentNodeData, opts);\n const { data } = opts;\n this.deData = data;\n this.text = data.text;\n this.value = data.value;\n this.id = parentNodeData ? \"\".concat(parentNodeData.id, \":\").concat(model.id, \"@\").concat(this.value) : model.id + this.value;\n this.id = this.id.toLowerCase();\n if (model.appDataEntityId) {\n const deName = calcDeCodeNameById(model.appDataEntityId);\n this.context = Object.assign(this.context || {}, {\n [deName]: this.value\n });\n }\n this.srfkey = this.value;\n this.srfmajortext = this.text;\n }\n};\n\n// src/service/vo/tree-node-data/tree-data-set-node-data.ts\nvar TreeDataSetNodeData = class extends TreeNodeData {\n constructor(model, parentNodeData, opts) {\n super(model, parentNodeData, opts);\n const { data } = opts;\n this.deData = data;\n this.text = data.srfmajortext;\n this.value = data.srfkey;\n this.id = parentNodeData ? \"\".concat(parentNodeData.id, \":\").concat(model.id, \"@\").concat(data.srfkey) : model.id + data.srfkey;\n this.id = this.id.toLowerCase();\n if (model.appDataEntityId) {\n const deName = calcDeCodeNameById(model.appDataEntityId);\n this.context = Object.assign(this.context || {}, {\n [deName]: data.srfkey\n });\n }\n this.srfkey = this.deData.srfkey;\n this.srfmajortext = this.deData.srfmajortext;\n }\n};\n\n// src/service/vo/tree-node-data/tree-static-node-data.ts\nvar TreeStaticNodeData = class extends TreeNodeData {\n constructor(model, parentNodeData, opts) {\n var _a, _b;\n super(model, parentNodeData, opts);\n const nodeValue = model.nodeValue === \"root\" ? void 0 : model.nodeValue;\n this.id = parentNodeData ? \"\".concat(parentNodeData.id, \":\").concat(model.id) : model.id;\n this.id = this.id.toLowerCase();\n this.text = model.text;\n this.value = nodeValue;\n if (parentNodeData && opts.parentValueLevel) {\n let parent = parentNodeData;\n for (let index = 1; index < opts.parentValueLevel; index++) {\n parent = parent == null ? void 0 : parent.parent;\n }\n if (parent == null ? void 0 : parent.deData) {\n this.deData = parent.deData;\n }\n this.value = nodeValue || (parent == null ? void 0 : parent.value);\n }\n this.srfkey = ((_a = this.deData) == null ? void 0 : _a.srfkey) || this.value;\n this.srfmajortext = ((_b = this.deData) == null ? void 0 : _b.srfmajortext) || this.text;\n }\n};\n\n// src/service/vo/ui-map-field.ts\nimport { isNil as isNil9 } from \"ramda\";\nvar UIMapField = class {\n constructor(uiKey, dataKey, opts = {}) {\n /**\n * 是否存储到origin里面(默认false)\n *\n * @author lxm\n * @date 2022-10-18 14:10:24\n * @type {boolean}\n */\n this.isOriginField = false;\n /**\n * 是否是请求需要的字段(默认true)\n *\n * @author lxm\n * @date 2022-10-18 14:10:44\n * @type {boolean}\n */\n this.isRequestNeed = true;\n this.uiKey = uiKey;\n this.dataKey = dataKey;\n if (!isNil9(opts.isOriginField)) {\n this.isOriginField = opts.isOriginField;\n }\n }\n};\n\n// src/service/de-service-util.ts\nimport { RuntimeError as RuntimeError14 } from \"@ibiz-template/core\";\nvar DEServiceUtil = class {\n /**\n * Creates an instance of DEServiceUtil.\n *\n * @author chitanda\n * @date 2023-04-18 14:04:01\n * @param {IApplication} appModel\n */\n constructor(appModel) {\n this.appModel = appModel;\n /**\n * 实体服务缓存\n *\n * @author chitanda\n * @date 2022-08-17 23:08:36\n * @protected\n * @type {Map<string, IAppDEService>}\n */\n this.cache = /* @__PURE__ */ new Map();\n /**\n * 实体服务构造方法缓存\n * @author lxm\n * @date 2023-05-15 08:37:13\n * @protected\n */\n this.constructorCache = /* @__PURE__ */ new Map();\n }\n /**\n * 注册服务工厂方法\n *\n * @author chitanda\n * @date 2023-06-14 10:06:31\n * @param {string} id\n * @param {(entityModel: IAppDataEntity) => Promise<IAppDEService>} constructor\n */\n register(id, constructor) {\n this.constructorCache.set(id, constructor);\n }\n /**\n * 根据实体标识获取实体服务\n *\n * @author chitanda\n * @date 2022-12-23 10:12:24\n * @param {string} id 实体标识\n * @param {IParams} [context] 上下文,用于计算模型所属沙箱环境\n * @return {*} {Promise<IAppDEService>}\n */\n async getService(id) {\n if (!this.cache.has(id)) {\n const entityModel = await ibiz.hub.getAppDataEntity(\n id,\n this.appModel.appId\n );\n if (!entityModel) {\n throw new RuntimeError14(\"\\u672A\\u627E\\u5230\\u5E94\\u7528\\u5B9E\\u4F53[\".concat(id, \"]\"));\n }\n const constructor = this.constructorCache.get(id);\n let service;\n if (constructor) {\n service = await constructor(entityModel);\n } else {\n service = new DEService(entityModel);\n }\n this.cache.set(id, service);\n }\n return this.cache.get(id);\n }\n /**\n * 清理所有服务, 当前临时域下的所有临时数据缓存\n *\n * @description 根据 srfsessionid 作为临时数据域\n * @author chitanda\n * @date 2022-08-18 14:08:48\n * @param {IParams} context\n */\n clearTempCache(context) {\n this.cache.forEach((service) => {\n service.local.clear(context);\n });\n }\n /**\n * 执行服务方法\n * @author lxm\n * @date 2023-04-26 02:02:43\n * @param {string} appDataEntityId 实体名称\n * @param {string} methodName 方法名\n * @param {IParams} context 上下文\n * @param {(IData | undefined)} [params] 数据\n * @param {(IParams | undefined)} [params2] 视图参数\n * @return {*} {Promise<IHttpResponse<IData>>}\n */\n async exec(appDataEntityId, methodName, context, params, params2) {\n const service = await this.getService(appDataEntityId);\n return service.exec(methodName, context, params, params2);\n }\n};\n\n// src/app-hub.ts\nimport { RuntimeError as RuntimeError16 } from \"@ibiz-template/core\";\n\n// src/application.ts\nimport { Net } from \"@ibiz-template/core\";\nvar Application = class {\n /**\n * Creates an instance of Application.\n *\n * @author chitanda\n * @date 2022-12-22 15:12:26\n * @param {IApplication} model\n */\n constructor(model) {\n this.model = model;\n /**\n * 应用实体名称到应用实体代码名称的映射\n *\n * @author chitanda\n * @date 2023-06-14 17:06:02\n * @type {Map<string, string>}\n */\n this.deName2DeCodeName = /* @__PURE__ */ new Map();\n this.net = new Net({\n baseURL: \"\".concat(ibiz.env.baseUrl, \"/\").concat(model.appId)\n });\n this.deService = new DEServiceUtil(model);\n this.codeList = new CodeListService(model);\n this.authority = new AuthorityService(model);\n }\n /**\n * 当前应用标识\n *\n * @author chitanda\n * @date 2023-04-19 22:04:55\n * @readonly\n * @type {string}\n */\n get appId() {\n return this.model.appId;\n }\n /**\n * 初始化应用\n *\n * @author chitanda\n * @date 2023-04-19 11:04:02\n * @return {*} {Promise<void>}\n */\n async init() {\n await this.authority.init();\n await this.loadAppModelStyle();\n }\n /**\n * 加载应用模型全局样式\n *\n * @author chitanda\n * @date 2023-07-24 20:07:41\n * @protected\n * @return {*} {Promise<void>}\n */\n async loadAppModelStyle() {\n await this.net.get(\"\".concat(ibiz.env.remoteModelUrl, \"/PSSYSAPP.json.css\")).then((res) => {\n const dom = document.createElement(\"style\");\n dom.setAttribute(\"type\", \"text/css\");\n if (res.request && res.request.responseURL) {\n const url = new URL(res.request.responseURL);\n dom.id = url.pathname;\n }\n dom.innerHTML = res.data;\n document.head.appendChild(dom);\n }).catch((err) => {\n ibiz.log.error(\n \"\\u5E94\\u7528[\".concat(this.appId, \"]\\u6A21\\u578B\\u5168\\u5C40\\u6837\\u5F0F\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A\").concat(err.message)\n );\n });\n }\n /**\n * 根据 id 查找应用功能\n *\n * @author chitanda\n * @date 2023-04-20 17:04:24\n * @param {string} id\n * @return {*} {(IAppFunc | null)}\n */\n getAppFunc(id) {\n const items = this.model.appFuncs || [];\n const item = items.find((func) => func.id === id);\n return item || null;\n }\n /**\n * 获取界面行为模型\n * @author lxm\n * @date 2023-04-28 05:44:14\n * @param {string} actionId\n * @param {string} [_appDataEntityId]\n * @return {*}\n */\n async getUIAction(actionId) {\n const [, appDeId] = actionId.split(\"@\");\n if (appDeId) {\n const appDataEntity = await ibiz.hub.getAppDataEntity(\n appDeId,\n this.model.appId\n );\n const find = appDataEntity.appDEUIActions.find((action) => {\n return action.id === actionId;\n });\n if (find) {\n return find;\n }\n }\n return this.model.appDEUIActions.find((action) => {\n return action.id === actionId;\n });\n }\n /**\n * 获取操作标识模型\n * @author lxm\n * @date 2023-05-10 11:24:17\n * @param {string} id\n * @param {string} [appDataEntityId]\n * @return {*} {(Promise<IDEOPPriv | undefined>)}\n */\n async getOPPriv(id, appDataEntityId) {\n var _a, _b;\n let result = (_a = this.model.deopprivs) == null ? void 0 : _a.find((item) => item.name === id);\n if (!result && appDataEntityId) {\n const appDataEntity = await ibiz.hub.getAppDataEntity(\n appDataEntityId,\n this.model.appId\n );\n result = (_b = appDataEntity.deopprivs) == null ? void 0 : _b.find((item) => item.name === id);\n }\n return result;\n }\n /**\n * 查找实体的界面逻辑模型\n * @author lxm\n * @date 2023-06-14 07:20:30\n * @param {string} deUILogicId\n * @param {string} appDataEntityId\n * @return {*} {(Promise<IDEUILogic | undefined>)}\n */\n async getDEUILogic(deUILogicId, appDataEntityId) {\n const appDataEntity = await ibiz.hub.getAppDataEntity(\n appDataEntityId,\n this.model.appId\n );\n return appDataEntity.appDEUILogics.find((logic) => {\n return logic.id === deUILogicId;\n });\n }\n};\n\n// src/hub/convert/app-menu-convert/app-menu-convert.ts\nvar AppMenuConvert = class {\n /**\n * 转化\n *\n * @author chitanda\n * @date 2023-04-19 14:04:46\n * @param {IAppMenu} appMenu\n * @return {*} {IAppMenu}\n */\n parse(appMenu) {\n return appMenu;\n }\n};\n\n// src/hub/convert/convert.ts\nvar Convert = class {\n constructor() {\n /**\n * 应用菜单转换器\n *\n * @author chitanda\n * @date 2023-04-19 14:04:54\n */\n this.appMenu = new AppMenuConvert();\n }\n};\n\n// src/hub/config/app-view-config-service.ts\nimport { RuntimeError as RuntimeError15 } from \"@ibiz-template/core\";\nvar AppViewConfigService = class {\n constructor() {\n /**\n * 视图配置信息集合\n * @author lxm\n * @date 2023-07-03 07:08:33\n */\n this.viewConfigs = /* @__PURE__ */ new Map();\n }\n set(id, viewConfig) {\n this.viewConfigs.set(id, viewConfig);\n }\n async get(key) {\n if (!this.viewConfigs.has(key)) {\n const model = await ibiz.hub.getAppView(key);\n if (!model) {\n throw new RuntimeError15(\"\\u89C6\\u56FE[\".concat(key, \"]\\u4E0D\\u5B58\\u5728\"));\n }\n this.set(model.id, {\n id: model.id,\n codeName: model.codeName,\n openMode: model.openMode,\n width: model.width,\n height: model.height,\n appDataEntityId: model.appDataEntityId,\n redirectView: model.redirectView\n });\n }\n return this.viewConfigs.get(key);\n }\n};\n\n// src/hub/config/app-config-service.ts\nvar AppConfigService = class {\n constructor() {\n this.view = new AppViewConfigService();\n }\n};\n\n// src/app-hub.ts\nvar AppHub = class {\n constructor() {\n /**\n * 多应用模式下,应用模型转换器\n *\n * @author chitanda\n * @date 2023-04-23 15:04:06\n * @type {Convert}\n */\n this.convert = new Convert();\n /**\n * 应用总集\n *\n * @author chitanda\n * @date 2022-12-21 14:12:45\n * @protected\n * @type {Map<string, Application>}\n */\n this.appMap = /* @__PURE__ */ new Map();\n /**\n * 实例化的应用模型\n *\n * @author chitanda\n * @date 2023-04-17 23:04:45\n * @protected\n * @type {Map<string, IApplication>}\n */\n this.apps = /* @__PURE__ */ new Map();\n /**\n * 当前基座下所有的应用视图\n *\n * @author chitanda\n * @date 2023-04-17 11:04:20\n * @protected\n * @type {Map<string, string>} Map<视图 id, 视图所属应用>\n */\n this.view2appMap = /* @__PURE__ */ new Map();\n /**\n * 实例化的应用视图模型\n *\n * @author chitanda\n * @date 2023-04-17 23:04:00\n * @protected\n * @type {Map<string, IAppView>}\n */\n this.views = /* @__PURE__ */ new Map();\n /**\n * 应用实体实例模型\n *\n * @author chitanda\n * @date 2023-04-17 23:04:32\n * @protected\n * @type {Map<string, Map<string, IAppDataEntity>>}\n */\n this.dataEntities = /* @__PURE__ */ new Map();\n /**\n * hub配置信息服务\n * @author lxm\n * @date 2023-07-03 07:12:05\n */\n this.config = new AppConfigService();\n /**\n * 默认首页视图名称\n *\n * @author chitanda\n * @date 2023-04-19 20:04:22\n * @type {string}\n */\n this.defaultAppIndexViewName = \"Index\";\n }\n /**\n * 计算应用视图 标识\n *\n * @author chitanda\n * @date 2023-04-20 18:04:48\n * @protected\n * @param {string} tag\n * @return {*} {string}\n */\n calcAppViewId(tag) {\n let id = \"\";\n if (tag.indexOf(\".\") !== -1) {\n const ids = tag.split(\".\");\n id = ids[ids.length - 1];\n } else {\n id = tag.toLowerCase();\n }\n return id;\n }\n /**\n * 注册模型加载适配器\n *\n * @author chitanda\n * @date 2023-04-17 23:04:14\n * @param {ModelLoaderProvider} provider\n */\n registerModelLoaderProvider(provider) {\n this.modelLoaderProvider = provider;\n }\n /**\n * 注册应用实例模型\n *\n * @author chitanda\n * @date 2023-04-17 23:04:29\n * @param {IApplication} model\n */\n registerApp(model) {\n this.apps.set(model.codeName, model);\n }\n /**\n * 注册应用视图实例模型\n *\n * @author chitanda\n * @date 2023-04-17 23:04:42\n * @param {IAppView} model\n */\n registerAppView(model) {\n this.views.set(model.codeName, model);\n }\n /**\n * 注册应用实体\n *\n * @author chitanda\n * @date 2023-04-17 23:04:24\n * @param {IAppDataEntity} model\n * @param {string} [appId=ibiz.env.appId]\n */\n registerAppDataEntity(model, appId = ibiz.env.appId) {\n if (!this.dataEntities.has(appId)) {\n this.dataEntities.set(appId, /* @__PURE__ */ new Map());\n }\n const map = this.dataEntities.get(appId);\n map.set(model.id, model);\n }\n /**\n * 设置应用视图所属应用\n *\n * @author chitanda\n * @date 2023-04-17 23:04:37\n * @param {string} tag 视图 codeName 或者视图 id\n * @param {string} [appId=ibiz.env.appId]\n */\n setAppView(tag, appId = ibiz.env.appId) {\n const id = this.calcAppViewId(tag);\n this.view2appMap.set(id, appId);\n }\n /**\n * 判断应用视图是否存在\n *\n * @author chitanda\n * @date 2023-04-20 18:04:00\n * @param {string} tag 视图 codeName 或者视图 id\n * @return {*} {boolean}\n */\n hasAppView(tag) {\n const id = this.calcAppViewId(tag);\n return this.view2appMap.has(id);\n }\n /**\n * 根据视图代码名称查找视图\n *\n * @author chitanda\n * @date 2023-04-17 21:04:14\n * @param {string} tag 视图 codeName 或者视图 id\n * @return {*} {Promise<IAppView>}\n */\n async getAppView(tag) {\n const id = this.calcAppViewId(tag);\n const appId = this.view2appMap.get(id) || ibiz.env.appId;\n if (!this.appMap.has(appId)) {\n await this.createApp(appId);\n }\n if (this.views.has(id)) {\n return this.views.get(id);\n }\n if (this.modelLoaderProvider) {\n const appView = await this.modelLoaderProvider.getAppView(appId, id);\n this.registerAppView(appView);\n return appView;\n }\n throw new RuntimeError16(\"\\u89C6\\u56FE[\".concat(id, \"]\\u4E0D\\u5B58\\u5728\"));\n }\n /**\n * 根据应用实体代码名称查找应用视图\n *\n * @author chitanda\n * @date 2023-04-17 23:04:08\n * @param {string} name\n * @param {string} [appId=ibiz.env.appId]\n * @return {*} {Promise<IAppDataEntity>}\n */\n async getAppDataEntity(id, appId = ibiz.env.appId) {\n if (this.dataEntities.has(appId)) {\n const map = this.dataEntities.get(appId);\n if (map.has(id)) {\n return map.get(id);\n }\n }\n if (this.modelLoaderProvider) {\n let entity;\n if (id.indexOf(\".\") !== -1) {\n entity = await this.modelLoaderProvider.getAppDataEntity(appId, id);\n } else {\n entity = await this.modelLoaderProvider.getAppDataEntityByCodeName(\n appId,\n id\n );\n }\n this.registerAppDataEntity(entity, appId);\n return entity;\n }\n throw new RuntimeError16(\"\\u672A\\u627E\\u5230\\u5E94\\u7528\\u5B9E\\u4F53[\".concat(id, \"]\"));\n }\n /**\n * 新建 hub 应用\n *\n * @author chitanda\n * @date 2023-04-17 21:04:11\n * @param {string} id\n * @return {*} {Promise<Application>}\n */\n async createApp(id) {\n if (this.appMap.has(id)) {\n return this.appMap.get(id);\n }\n let appModel;\n if (this.apps.has(id)) {\n appModel = this.apps.get(id);\n } else if (this.modelLoaderProvider) {\n appModel = await this.modelLoaderProvider.getApp(id);\n this.registerApp(appModel);\n } else {\n throw new RuntimeError16(\"\\u672A\\u627E\\u5230\\u5E94\\u7528[\".concat(id, \"]\\u6A21\\u578B\"));\n }\n const app = new Application(appModel);\n this.appMap.set(id, app);\n await app.init();\n return app;\n }\n /**\n * 异步获取应用对象,用于不确定应用是否已经加载的情况\n *\n * @author chitanda\n * @date 2023-04-17 21:04:41\n * @param {string} [key=ibiz.env.appId]\n * @return {*} {Promise<Application>}\n */\n async getAppAsync(key = ibiz.env.appId) {\n return this.createApp(key);\n }\n /**\n * 根据应用 id 或应用模型获取应用实例\n *\n * @author chitanda\n * @date 2023-04-17 22:04:42\n * @param {(string | IApplication)} [app]\n * @return {*} {Application}\n */\n getApp(app) {\n let key = null;\n if (app) {\n if (app instanceof Object) {\n key = app.id;\n } else {\n key = app;\n }\n } else {\n key = ibiz.env.appId;\n }\n return this.appMap.get(key);\n }\n};\n\n// src/engine/engine-factory.ts\nvar EngineFactory = class {\n constructor() {\n /**\n * 视图引擎classMap\n * @author lxm\n * @date 2023-04-25 07:28:36\n * @protected\n */\n this.viewEngines = /* @__PURE__ */ new Map();\n }\n /**\n * 注册视图引擎\n * @author lxm\n * @date 2023-04-25 07:40:23\n * @param {string} key\n * @param {IViewEngine} engine\n */\n register(key, engine) {\n this.viewEngines.set(key, engine);\n }\n /**\n * 注销视图引擎\n * @author lxm\n * @date 2023-04-25 07:40:32\n * @param {string} key\n */\n unRegister(key) {\n this.viewEngines.delete(key);\n }\n /**\n * 获取视图引擎\n * @author lxm\n * @date 2023-05-04 02:26:34\n * @param {IAppView} model\n * @param {IViewController} viewController 视图控制器\n * @return {*} {(ViewEngine | undefined)}\n */\n getEngine(model, ...args) {\n const { engineType, engineCat } = model;\n const key = \"\".concat(engineCat, \"_\").concat(engineType);\n const func = this.viewEngines.get(key);\n if (func) {\n return func(...args);\n }\n ibiz.log.error(\"\\u6CA1\\u6709\".concat(key, \"\\u5BF9\\u5E94\\u7684\\u5F15\\u64CE\"), model);\n }\n};\n\n// src/engine/view-base.engine.ts\nimport { RuntimeError as RuntimeError17 } from \"@ibiz-template/core\";\nvar ViewEngineBase = class {\n /**\n * 构造函数在视图控制器的构造函数逻辑内部执行\n * @author lxm\n * @date 2023-05-06 08:18:28\n * @param {IViewController} view 视图控制器\n */\n constructor(view) {\n this.view = view;\n this.initViewState();\n }\n /**\n * 获取工具栏控制器\n * @author lxm\n * @date 2023-05-22 03:47:43\n * @readonly\n * @protected\n * @type {(IToolbarController | undefined)}\n */\n get toolbar() {\n return this.view.getController(\"toolbar\");\n }\n /**\n * 左工具栏\n * @author lxm\n * @date 2023-06-20 02:36:45\n * @readonly\n * @protected\n * @type {(IToolbarController | undefined)}\n */\n get leftToolbar() {\n return this.view.getController(\"lefttoolbar\");\n }\n /**\n * 右工具栏\n * @author lxm\n * @date 2023-06-20 02:36:45\n * @readonly\n * @protected\n * @type {(IToolbarController | undefined)}\n */\n get rightToolbar() {\n return this.view.getController(\"righttoolbar\");\n }\n /**\n * 右工具栏\n * @author lxm\n * @date 2023-06-20 02:36:45\n * @readonly\n * @protected\n * @type {(IToolbarController | undefined)}\n */\n get footerToolbar() {\n return this.view.getController(\"footertoolbar\");\n }\n /**\n * 获取视图布局面板控制器\n * @author lxm\n * @date 2023-05-22 03:47:43\n * @readonly\n * @protected\n * @type {(IToolbarController | undefined)}\n */\n get viewLayoutPanel() {\n return this.view.layoutPanel;\n }\n async onCreated() {\n const { childNames } = this.view;\n childNames.push(\"captionbar\", \"toolbar\");\n }\n async onMounted() {\n var _a, _b;\n const { model, childNames } = this.view;\n ibiz.log.debug(\"\".concat(model.id, \"\\u7684\\u5B50\\u7EC4\\u4EF6\\uFF1A\").concat(childNames.join(\";\"), \"\\u90FD\\u5DF2mounted\"));\n const showHeader = this.calcViewHeaderVisible();\n if (!showHeader) {\n const controller = (_a = this.viewLayoutPanel) == null ? void 0 : _a.panelItems.view_header;\n if (controller) {\n controller.state.visible = false;\n }\n }\n if (ibiz.env.isMob) {\n const showFooter = this.calcViewFooterVisible();\n if (!showFooter) {\n const controller = (_b = this.viewLayoutPanel) == null ? void 0 : _b.panelItems.view_footer;\n if (controller) {\n controller.state.visible = false;\n }\n }\n }\n }\n async onDestroyed() {\n }\n async call(key, _args) {\n if (key === \"GetData\") {\n return this.getData();\n }\n return void 0;\n }\n /**\n * 初始化视图state\n * @author lxm\n * @date 2023-05-15 06:42:25\n * @protected\n */\n initViewState() {\n }\n /**\n * 获取视图数据部件的数据\n * @author lxm\n * @date 2023-05-08 12:46:19\n * @return {*} {IData[]}\n */\n getData() {\n return [];\n }\n /**\n * 计算视图头部元素的显示与否\n * 所有部件容器名称均为:view_部件名称\n *\n * @author lxm\n * @date 2023-06-06 07:16:26\n * @protected\n */\n calcViewHeaderVisible() {\n var _a, _b, _c, _d;\n let showHeader = false;\n const { model } = this.view;\n if (model.showCaptionBar === false) {\n const controller = (_a = this.viewLayoutPanel) == null ? void 0 : _a.panelItems.view_captionbar;\n if (controller) {\n controller.state.visible = false;\n }\n } else {\n showHeader = true;\n }\n if (ibiz.env.isMob) {\n if (!this.leftToolbar) {\n const controller = (_b = this.viewLayoutPanel) == null ? void 0 : _b.panelItems.lefttoolbar;\n if (controller) {\n controller.state.visible = false;\n }\n } else {\n showHeader = true;\n }\n if (!this.rightToolbar) {\n const controller = (_c = this.viewLayoutPanel) == null ? void 0 : _c.panelItems.righttoolbar;\n if (controller) {\n controller.state.visible = false;\n }\n } else {\n showHeader = true;\n }\n } else if (!this.toolbar) {\n const controller = (_d = this.viewLayoutPanel) == null ? void 0 : _d.panelItems.view_toolbar;\n if (controller) {\n controller.state.visible = false;\n }\n } else {\n showHeader = true;\n }\n return showHeader;\n }\n /**\n * 计算底部的显示与否\n * @author lxm\n * @date 2023-06-20 02:45:17\n * @protected\n * @return {*} {boolean}\n */\n calcViewFooterVisible() {\n let showFooter = false;\n if (this.footerToolbar) {\n showFooter = true;\n }\n return showFooter;\n }\n /**\n * 加载实体数据\n * @author lxm\n * @date 2023-07-13 09:59:08\n * @return {*} {Promise<void>}\n */\n async loadEntityData() {\n const { appDataEntityId } = this.view.model;\n const { evt, context, params } = this.view;\n if (!appDataEntityId) {\n throw new RuntimeError17(\"\\u8BE5\\u89C6\\u56FE\\u6CA1\\u6709\\u5B9E\\u4F53\\uFF0C\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5B9E\\u4F53\\u6570\\u636E\");\n }\n const app = ibiz.hub.getApp(context.srfappid);\n const res = await app.deService.exec(\n appDataEntityId,\n \"get\",\n context,\n params\n );\n const { data } = res;\n if (data) {\n this.view.state.srfactiveviewdata = data;\n evt.emit(\"onDataChange\", { actionType: \"LOAD\", data: [data] });\n if (data.srfkey) {\n evt.emit(\"onViewInfoChange\", { dataInfo: data.srfmajortext || \"\" });\n }\n }\n }\n};\n\n// src/engine/md-view.engine.ts\nimport { RuntimeModelError as RuntimeModelError20 } from \"@ibiz-template/core\";\nvar MDViewEngine = class extends ViewEngineBase {\n /**\n * 多数据部件名称\n * @author lxm\n * @date 2023-06-07 09:17:19\n * @readonly\n * @type {string}\n */\n get xdataControlName() {\n return this.view.model.xdataControlName;\n }\n /**\n * 搜索表单控制器\n * @author lxm\n * @date 2023-05-22 01:56:25\n * @readonly\n */\n get searchForm() {\n return this.view.getController(\"searchform\");\n }\n /**\n * 搜索栏控制器\n * @author lxm\n * @date 2023-05-22 01:56:25\n * @readonly\n */\n get searchBar() {\n return this.view.getController(\"searchbar\");\n }\n /**\n * 数据部件控制器(多数据)\n * @author lxm\n * @date 2023-05-22 01:56:35\n * @readonly\n * @type {IMDControlController}\n */\n get xdataControl() {\n return this.view.getController(\n this.xdataControlName\n );\n }\n async onCreated() {\n await super.onCreated();\n const { childNames } = this.view;\n childNames.push(this.xdataControlName, \"searchform\", \"searchbar\");\n }\n async onMounted() {\n await super.onMounted();\n const { model } = this.view;\n this.xdataControl.evt.on(\"onActive\", async (event) => {\n await this.openData(event);\n });\n this.xdataControl.evt.on(\"onSelectionChange\", async (event) => {\n var _a;\n (_a = this.toolbar) == null ? void 0 : _a.calcButtonState(\n event.data[0],\n this.xdataControl.model.appDataEntityId\n );\n });\n this.xdataControl.evt.on(\"onBeforeLoad\", () => {\n this.xdataControl.state.searchParams = this.getSearchParams();\n });\n this.xdataControl.evt.on(\"onLoadSuccess\", (event) => {\n this.view.evt.emit(\"onDataChange\", { ...event, actionType: \"LOAD\" });\n });\n this.xdataControl.evt.on(\"onRemoveSuccess\", (event) => {\n this.view.evt.emit(\"onDataChange\", { ...event, actionType: \"REMOVE\" });\n });\n this.xdataControl.evt.on(\"onSaveSuccess\", (event) => {\n this.view.evt.emit(\"onDataChange\", { ...event, actionType: \"SAVE\" });\n });\n const controller = this.viewLayoutPanel.panelItems.view_searchform;\n if (controller) {\n const formExists = !!this.searchForm;\n controller.state.keepAlive = formExists;\n controller.state.visible = formExists && !!model.expandSearchForm;\n }\n if (this.searchForm) {\n this.searchForm.evt.on(\"onSearch\", () => {\n this.refresh();\n });\n }\n if (this.searchBar) {\n this.searchBar.evt.on(\"onSearch\", () => {\n this.refresh();\n });\n }\n if (!this.view.state.noLoadDefault && model.loadDefault) {\n this.load();\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key, args) {\n if (key === \"ToggleFilter\" /* TOGGLE_FILTER */) {\n this.toggleFilter();\n return null;\n }\n if (key === \"Edit\" /* EDIT */ || key === \"View\" /* VIEW */) {\n this.openData(args);\n return null;\n }\n if (key === \"New\" /* NEW */) {\n this.newData(args);\n return null;\n }\n if (key === \"Remove\" /* REMOVE */) {\n await this.remove(args);\n return null;\n }\n if (key === \"Import\" /* IMPORT */) {\n await this.importData();\n return null;\n }\n if (key === \"Refresh\" /* REFRESH */) {\n await this.refresh();\n return null;\n }\n if (key === \"ExportExcel\" /* EXPORT_EXCEL */) {\n await this.exportData(args);\n return null;\n }\n if (key === \"Copy\" /* COPY */) {\n this.copy(args);\n return null;\n }\n if (key === \"load\") {\n this.load(args);\n return null;\n }\n return super.call(key, args);\n }\n getData() {\n return this.xdataControl.getData();\n }\n /**\n * 打开编辑数据视图\n *\n * @author lxm\n * @date 2022-09-01 18:09:19\n * @param {IData} data\n * @param {MouseEvent} [event]\n * @returns {*}\n */\n async openData(args) {\n var _a, _b;\n const { data, event } = args;\n const context = this.view.context.clone();\n const deName = ((_a = data[0].srfdecodename) == null ? void 0 : _a.toLowerCase()) || calcDeCodeNameById(this.xdataControl.model.appDataEntityId);\n context[deName.toLowerCase()] = data[0].srfkey;\n const result = await ((_b = this.view.scheduler) == null ? void 0 : _b.triggerCustom(\"opendata\", {\n context,\n params: this.view.params,\n data,\n event,\n view: this.view\n }));\n if (result === -1) {\n ibiz.log.warn(\"\\u89C6\\u56FE[\".concat(this.view.model.codeName, \"]\\uFF0C\\u672A\\u914D\\u7F6E\\u7F16\\u8F91\\u6253\\u5F00\\u89C6\\u56FE\"));\n }\n }\n /**\n * 打开编辑数据视图\n *\n * @author lxm\n * @date 2022-09-01 18:09:19\n * @param {IData} data\n * @param {MouseEvent} [event]\n * @returns {*}\n */\n async newData(args) {\n var _a, _b, _c;\n const { data, event, copyMode } = args;\n const openAppViewLogic = (_b = (_a = this.view.model.viewLayoutPanel) == null ? void 0 : _a.appViewLogics) == null ? void 0 : _b.find(\n (item) => item.id === \"newdata\"\n );\n if (!openAppViewLogic) {\n throw new RuntimeModelError20(this.view.model, \"\\u7F3A\\u5C11newdata\\u7684\\u89C6\\u56FE\\u903B\\u8F91\");\n }\n const context = this.view.context.clone();\n if (copyMode) {\n context.srfcopymode = true;\n }\n const result = await ((_c = this.view.scheduler) == null ? void 0 : _c.triggerCustom(\"newdata\", {\n context,\n params: this.view.params,\n data,\n event,\n view: this.view\n }));\n if (result === -1) {\n throw new RuntimeModelError20(this.view.model, \"\\u7F3A\\u5C11newdata\\u7684\\u89C6\\u56FE\\u903B\\u8F91\");\n }\n }\n /**\n * 视图删除\n *\n * @author lxm\n * @date 2022-08-30 19:08:59\n * @returns {*} {Promise<void>}\n */\n async remove(args) {\n await this.xdataControl.remove(args);\n }\n /**\n * 视图加载\n * @author lxm\n * @date 2023-05-22 03:17:33\n * @return {*} {Promise<void>}\n */\n async load(args = {}) {\n await this.xdataControl.load({ isInitialLoad: true, ...args });\n }\n /**\n * 视图刷新\n * @author lxm\n * @date 2023-05-22 03:17:33\n * @return {*} {Promise<void>}\n */\n async refresh() {\n await this.xdataControl.refresh();\n }\n /**\n * 获取搜索相关的查询参数\n * @author lxm\n * @date 2023-05-22 03:26:04\n * @return {*} {IParams}\n */\n getSearchParams() {\n const params = {};\n if (this.searchForm) {\n const addParams = this.searchForm.getData()[0];\n Object.assign(params, addParams);\n }\n if (this.searchBar) {\n const addParams = {\n query: this.searchBar.state.query\n };\n Object.assign(params, addParams);\n }\n return params;\n }\n /**\n * 导入数据\n * @author lxm\n * @date 2023-05-22 03:28:26\n * @return {*} {Promise<void>}\n */\n async importData() {\n await this.xdataControl.importData();\n }\n /**\n * 导出数据\n * @author lxm\n * @date 2023-05-22 03:29:06\n * @param {{ event: MouseEvent }} args\n * @return {*} {Promise<void>}\n */\n async exportData(args) {\n await this.xdataControl.exportData(args);\n }\n /**\n * 复制数据\n *\n * @author zk\n * @date 2023-06-01 12:06:58\n * @memberof MDViewEngine\n */\n async copy(args) {\n this.newData(Object.assign(args, { copyMode: true }));\n }\n calcViewHeaderVisible() {\n let showHeader = super.calcViewHeaderVisible();\n if (!this.searchBar) {\n const controller = this.viewLayoutPanel.panelItems.view_searchbar;\n if (controller) {\n controller.state.visible = false;\n }\n } else {\n showHeader = true;\n }\n return showHeader;\n }\n /**\n * 切换搜索表单的显示与否\n * @author lxm\n * @date 2023-06-06 09:20:35\n * @protected\n */\n toggleFilter() {\n if (this.searchForm) {\n const searchformContainer = this.viewLayoutPanel.panelItems.view_searchform;\n if (searchformContainer) {\n searchformContainer.state.visible = !searchformContainer.state.visible;\n }\n }\n }\n};\n\n// src/global/global-util/global-util.ts\nvar GlobalUtil = class {\n constructor() {\n /**\n * 布局面板\n *\n * @author chitanda\n * @date 2023-04-27 21:04:46\n */\n this.layoutPanel = new LayoutPanelUtil();\n }\n};\n\n// src/register/helper/control-register.ts\nvar CONTROL_PROVIDER_PREFIX = \"CONTROL\";\nfunction registerControlProvider(key, callback) {\n ibiz.register.register(\"\".concat(CONTROL_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider(key) {\n return ibiz.register.get(\n \"\".concat(CONTROL_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getControlProvider(model) {\n let provider;\n const { controlType, controlStyle } = model;\n if (controlStyle && controlStyle !== \"DEFAULT\") {\n const key = \"\".concat(controlType, \"_\").concat(controlStyle);\n provider = getProvider(key);\n if (!provider) {\n ibiz.log.error(\n \"\\u627E\\u4E0D\\u5230\\u90E8\\u4EF6\\u7C7B\\u578B\\uFF1A[\".concat(controlType, \"]\\u7684\\u90E8\\u4EF6\\u6837\\u5F0F\\uFF1A[\").concat(controlStyle, \"]\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"),\n model\n );\n }\n }\n if (!provider) {\n provider = getProvider(controlType);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u90E8\\u4EF6\\u7C7B\\u578B\".concat(controlType, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/editor-register.ts\nvar EDITOR_PROVIDER_PREFIX = \"EDITOR\";\nfunction registerEditorProvider(key, callback) {\n ibiz.register.register(\"\".concat(EDITOR_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider2(key) {\n return ibiz.register.get(\n \"\".concat(EDITOR_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getEditorProvider(model) {\n let provider;\n const { editorType, editorStyle } = model;\n if (editorStyle && editorStyle !== \"DEFAULT\") {\n const key = \"\".concat(editorType, \"_\").concat(editorStyle);\n provider = getProvider2(key);\n if (!provider) {\n ibiz.log.error(\n \"\\u627E\\u4E0D\\u5230\\u7F16\\u8F91\\u5668\\u7C7B\\u578B\\uFF1A[\".concat(editorType, \"]\\u7684\\u7F16\\u8F91\\u5668\\u6837\\u5F0F\\uFF1A[\").concat(editorStyle, \"]\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"),\n model\n );\n }\n }\n if (!provider) {\n provider = getProvider2(editorType);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u7F16\\u8F91\\u5668\\u7C7B\\u578B\".concat(editorType, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/form-detail-register.ts\nvar FORMDETAIL_PROVIDER_PREFIX = \"FORMDETAIL\";\nfunction registerFormDetailProvider(key, callback) {\n ibiz.register.register(\"\".concat(FORMDETAIL_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider3(key) {\n return ibiz.register.get(\n \"\".concat(FORMDETAIL_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getFormDetailProvider(model) {\n let provider;\n const { detailType } = model;\n if (!provider) {\n provider = getProvider3(detailType);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u8868\\u5355\\u6210\\u5458\\u7C7B\\u578B\".concat(detailType, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/grid-column-register.ts\nvar GRIDCOLUMN_PROVIDER_PREFIX = \"GRIDCOLUMN\";\nfunction registerGridColumnProvider(key, callback) {\n ibiz.register.register(\"\".concat(GRIDCOLUMN_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider4(key) {\n return ibiz.register.get(\n \"\".concat(GRIDCOLUMN_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getGridColumnProvider(model) {\n let provider;\n const { columnType, enableRowEdit } = model;\n const key = enableRowEdit ? \"\".concat(columnType, \"_EDIT\") : columnType;\n if (!provider) {\n provider = getProvider4(key);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u8868\\u683C\\u5217\\u7C7B\\u578B\".concat(key, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/panel-item-register.ts\nvar PANELITEM_PROVIDER_PREFIX = \"PANELITEM\";\nfunction registerPanelItemProvider(key, callback) {\n ibiz.register.register(\n \"\".concat(PANELITEM_PROVIDER_PREFIX, \"_\").concat(key.toUpperCase()),\n callback\n );\n}\nfunction getProvider5(key) {\n return ibiz.register.get(\n \"\".concat(PANELITEM_PROVIDER_PREFIX, \"_\").concat(key.toUpperCase())\n );\n}\nasync function getPanelItemProvider(model) {\n var _a;\n let provider;\n const { itemType } = model;\n if (itemType === \"CONTAINER\") {\n const predefinedType = model.predefinedType || \"DEFAULT\";\n const key = \"CONTAINER_\".concat(predefinedType);\n provider = getProvider5(key);\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u9762\\u677F\\u5BB9\\u5668\\u9884\\u7F6E\\u7C7B\\u578B\\u4E3A\".concat(predefinedType, \"\\u7684\\u9002\\u914D\\u5668\"));\n }\n }\n if (itemType === \"RAWITEM\") {\n const predefinedType = ((_a = model.rawItem) == null ? void 0 : _a.predefinedType) || \"DEFAULT\";\n const key = \"RAWITEM_\".concat(predefinedType);\n provider = getProvider5(key);\n if (!provider) {\n ibiz.log.error(\n \"\\u627E\\u4E0D\\u5230\\u9762\\u677F\\u6210\\u5458\\u76F4\\u63A5\\u5185\\u5BB9\\u9884\\u7F6E\\u7C7B\\u578B\\u4E3A\".concat(predefinedType, \"\\u7684\\u9002\\u914D\\u5668\")\n );\n }\n }\n if (!provider) {\n provider = getProvider5(itemType);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u9762\\u677F\\u6210\\u5458\\u7C7B\\u578B\".concat(itemType, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/ui-action-register.ts\nimport { RuntimeError as RuntimeError18 } from \"@ibiz-template/core\";\nvar UIACTION_PROVIDER_PREFIX = \"UIACTION\";\nfunction registerUIActionProvider(key, callback) {\n ibiz.register.register(\"\".concat(UIACTION_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider6(key) {\n return ibiz.register.get(\n \"\".concat(UIACTION_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getUIActionProvider(model) {\n let provider;\n const { uiactionMode } = model;\n if (!provider) {\n provider = getProvider6(uiactionMode);\n }\n if (!provider) {\n throw new RuntimeError18(\"\\u627E\\u4E0D\\u754C\\u9762\\u884C\\u4E3A\\u6A21\\u5F0F\".concat(uiactionMode, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/view-register.ts\nvar VIEW_PROVIDER_PREFIX = \"VIEW\";\nfunction registerViewProvider(key, callback) {\n ibiz.register.register(\"\".concat(VIEW_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider7(key) {\n return ibiz.register.get(\"\".concat(VIEW_PROVIDER_PREFIX, \"_\").concat(key));\n}\nasync function getViewProvider(model) {\n let provider;\n const { viewType, viewStyle } = model;\n if (viewStyle && viewStyle !== \"DEFAULT\") {\n const key = \"\".concat(viewType, \"_\").concat(viewStyle);\n provider = getProvider7(key);\n if (!provider) {\n ibiz.log.error(\n \"\\u627E\\u4E0D\\u5230\\u89C6\\u56FE\\u7C7B\\u578B\\uFF1A[\".concat(viewType, \"]\\u7684\\u89C6\\u56FE\\u6837\\u5F0F\\uFF1A[\").concat(viewStyle, \"]\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"),\n model\n );\n }\n }\n if (!provider) {\n provider = getProvider7(viewType);\n }\n if (!provider) {\n provider = getProvider7(\"DEFAULT\");\n }\n return provider;\n}\n\n// src/register/helper/portlet-register.ts\nvar PORTLET_PROVIDER_PREFIX = \"PORTLET\";\nfunction registerPortletProvider(key, callback) {\n ibiz.register.register(\"\".concat(PORTLET_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider8(key) {\n return ibiz.register.get(\n \"\".concat(PORTLET_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getPortletProvider(model) {\n let provider;\n const { portletType } = model;\n if (!provider) {\n provider = getProvider8(portletType);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u95E8\\u6237\\u90E8\\u4EF6\\u6210\\u5458\\u7C7B\\u578B\".concat(portletType, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/ui-action/provider/backend-ui-action-provider.ts\nimport { RuntimeModelError as RuntimeModelError28 } from \"@ibiz-template/core\";\nimport { isArray as isArray2 } from \"qx-util\";\n\n// src/ui-action/provider/ui-action-provider-base.ts\nimport { RuntimeModelError as RuntimeModelError27 } from \"@ibiz-template/core\";\n\n// src/ui-logic/index.ts\nimport { RuntimeError as RuntimeError21 } from \"@ibiz-template/core\";\n\n// src/ui-logic/ui-logic.ts\nimport { ModelError as ModelError22, RuntimeModelError as RuntimeModelError26 } from \"@ibiz-template/core\";\n\n// src/ui-logic/ui-logic-context.ts\nvar UILogicContext = class {\n /**\n * Creates an instance of DELogicContext.\n * @author lxm\n * @date 2023-03-24 09:15:14\n * @param {Map<string, DELogicParam>} deLogicParams 实体逻辑参数集合\n * @param {IParams} context 上下文\n * @param {IData} data 数据对象\n * @param {IParams} viewParams 视图参数\n * @param {IParams} [opt] 额外参数\n */\n /**\n * Creates an instance of UILogicContext.\n * @author lxm\n * @date 2023-06-14 07:36:42\n * @param {Map<string, UILogicParam>} deLogicParams 实体逻辑参数集合\n * @param {IUILogicParams} parameters 界面逻辑执行参数\n */\n constructor(deLogicParams, parameters) {\n this.deLogicParams = deLogicParams;\n this.parameters = parameters;\n /**\n * 界面逻辑参数\n *\n * @description 界面逻辑参数初始化时设置\n * @author chitanda\n * @date 2023-02-08 17:02:38\n * @type {Record<string, any>}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.params = {};\n /**\n * UI逻辑执行返回值\n *\n * @author chitanda\n * @date 2023-02-09 21:02:40\n * @type {unknown}\n */\n this.result = null;\n /**\n * 是否存在结束节点\n *\n * @author chitanda\n * @date 2023-03-16 18:03:09\n * @type {boolean}\n */\n this.isEndNode = false;\n /**\n * 默认参数节点\n *\n * @default 'Default'\n * @author chitanda\n * @date 2023-03-16 18:03:39\n * @type {string}\n */\n this.defaultParamName = \"Default\";\n }\n /**\n * 上下文\n */\n get context() {\n return this.parameters.context;\n }\n /**\n * 数据\n */\n get data() {\n return this.parameters.data;\n }\n /**\n * 视图参数\n */\n get viewParams() {\n return this.parameters.params;\n }\n /**\n * 重置实体逻辑参数\n * @author lxm\n * @date 2023-03-24 09:18:02\n * @param {string} name\n */\n resetParam(name) {\n var _a;\n (_a = this.deLogicParams.get(name)) == null ? void 0 : _a.calc(this);\n }\n /**\n * 重新建立变量\n * @author lxm\n * @date 2023-03-24 09:20:24\n * @param {string} name\n */\n renewParam(name) {\n var _a;\n (_a = this.deLogicParams.get(name)) == null ? void 0 : _a.renew(this);\n }\n};\n\n// src/ui-logic/ui-logic-node/de-action-node/de-action-node.ts\nimport { RuntimeModelError as RuntimeModelError23 } from \"@ibiz-template/core\";\n\n// src/ui-logic/ui-logic-link/ui-logic-link.ts\nimport { ModelError as ModelError17 } from \"@ibiz-template/core\";\n\n// src/ui-logic/ui-logic-link/ui-logic-link-group-cond/ui-logic-link-group-cond.ts\nimport { RuntimeModelError as RuntimeModelError22 } from \"@ibiz-template/core\";\n\n// src/ui-logic/ui-logic-link/ui-logic-link-cond/ui-logic-link-cond.ts\nvar UILogicLinkCond = class {\n};\n\n// src/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.ts\nimport { ModelError as ModelError16, RuntimeModelError as RuntimeModelError21 } from \"@ibiz-template/core\";\nvar UILogicLinkSingleCond = class extends UILogicLinkCond {\n constructor(model) {\n super();\n this.model = model;\n this.srcParam = model.srcLogicParamId;\n this.dstParam = model.dstLogicParamId;\n }\n get dstField() {\n return this.model.dstFieldName.toLowerCase();\n }\n get op() {\n return this.model.condOP;\n }\n get type() {\n return this.model.paramType;\n }\n get value() {\n return this.model.paramValue;\n }\n /**\n * 执行逻辑检测\n *\n * @author chitanda\n * @date 2023-02-15 18:02:05\n * @param {UILogicContext} ctx\n * @param {IContext} context\n * @param {IData} data\n * @return {*} {boolean}\n */\n test(ctx, context, data) {\n const dst = ctx.params[this.dstParam];\n switch (this.type) {\n case \"ENTITYFIELD\": {\n if (!this.value) {\n throw new RuntimeModelError21(\n this.model,\n \"\\u5F53\\u524D\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u6570\\u636E\\u5BF9\\u8C61\\u5C5E\\u6027],\\u7F3A\\u5C11\\u914D\\u7F6E\\u6761\\u4EF6\\u503C\"\n );\n }\n const value = data[this.value] != null ? data[this.value] : context[this.value];\n return testCond(dst[this.dstField], this.op, value);\n }\n case \"SRCENTITYFIELD\": {\n if (!this.value) {\n throw new RuntimeModelError21(\n this.model,\n \"\\u5F53\\u524D\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u6E90\\u6570\\u636E\\u5BF9\\u8C61\\u5C5E\\u6027],\\u7F3A\\u5C11\\u914D\\u7F6E\\u6761\\u4EF6\\u503C\"\n );\n }\n const src = ctx.params[this.srcParam];\n return testCond(dst[this.dstField], this.op, src[this.value]);\n }\n case \"CURTIME\":\n throw new ModelError16(this.model, \"\\u6682\\u672A\\u652F\\u6301\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u5F53\\u524D\\u65F6\\u95F4]\");\n default:\n return testCond(dst[this.dstField], this.op, this.value);\n }\n }\n};\n\n// src/ui-logic/ui-logic-link/ui-logic-link-group-cond/ui-logic-link-group-cond.ts\nvar UILogicLinkGroupCond = class _UILogicLinkGroupCond extends UILogicLinkCond {\n constructor(model) {\n super();\n this.model = model;\n const conds = model.deuilogicLinkConds || [];\n this.conds = conds.map((cond) => {\n return cond.logicType === \"SINGLE\" ? new UILogicLinkSingleCond(cond) : new _UILogicLinkGroupCond(cond);\n });\n }\n /**\n * 操作标识\n *\n * @author chitanda\n * @date 2023-02-15 17:02:04\n * @readonly\n * @protected\n * @type {('AND' | 'OR')}\n */\n get op() {\n return this.model.groupOP;\n }\n /**\n * 结果是否取反值\n *\n * @author chitanda\n * @date 2023-02-15 17:02:10\n * @readonly\n * @protected\n * @type {boolean}\n */\n get notMode() {\n return this.model.notMode === true;\n }\n /**\n * 条件判断\n *\n * @author chitanda\n * @date 2023-02-15 17:02:19\n * @param {UILogicContext} ctx\n * @param {IContext} context\n * @param {IData} data\n * @return {*} {boolean}\n */\n test(ctx, context, data) {\n let bol = true;\n if (this.conds.length === 0) {\n throw new RuntimeModelError22(this.model, \"\\u754C\\u9762\\u8FDE\\u63A5\\u6761\\u4EF6\\u903B\\u8F91\\u7EC4\\u672A\\u914D\\u7F6E\\u903B\\u8F91\\u9879\");\n }\n for (let i = 0; i < this.conds.length; i++) {\n const cond = this.conds[i];\n const judge = cond.test(ctx, context, data);\n if (this.op === \"AND\" && judge === false) {\n bol = false;\n break;\n }\n if (this.op === \"OR\" && judge === true) {\n bol = true;\n break;\n }\n }\n return this.notMode ? !bol : bol;\n }\n};\n\n// src/ui-logic/ui-logic-link/ui-logic-link.ts\nvar UILogicLink = class {\n /**\n * Creates an instance of UILogicLink.\n *\n * @author chitanda\n * @date 2023-02-08 16:02:19\n * @param {UILogicLinkModel} model\n */\n constructor(model) {\n this.model = model;\n /**\n * 源节点\n *\n * @author chitanda\n * @date 2023-02-08 21:02:53\n * @type {UILogicNode}\n */\n this.srcNode = null;\n /**\n * 目标节点\n *\n * @author chitanda\n * @date 2023-02-08 21:02:59\n * @type {UILogicNode}\n */\n this.dstNode = null;\n /**\n * 连接条件组\n *\n * @author chitanda\n * @date 2023-02-15 17:02:49\n * @type {(UILogicLinkGroupCond | null)}\n */\n this.groupCond = null;\n const { linkMode, deuilogicLinkGroupCond } = this.model;\n if (linkMode === 0) {\n if (deuilogicLinkGroupCond) {\n this.groupCond = new UILogicLinkGroupCond(deuilogicLinkGroupCond);\n }\n }\n }\n /**\n * 执行连接\n *\n * @author chitanda\n * @date 2023-02-08 22:02:18\n * @param {UILogicContext} ctx\n * @param {IContext} context\n * @param {IData} data\n * @param {IParams} [opt]\n * @return {*} {Promise<boolean>} 是否连接成功\n */\n async exec(ctx) {\n const { linkMode } = this.model;\n const { context, data } = ctx;\n switch (linkMode || 0) {\n case 0: {\n if (this.groupCond) {\n return this.groupCond.test(\n ctx,\n context,\n data && data.length > 0 ? data[0] : {}\n );\n }\n return true;\n }\n case 1:\n return true;\n case 2:\n throw new ModelError17(this.model, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8FDE\\u63A5\\u7C7B\\u578B: \\u5F02\\u6B65\\u7ED3\\u675F\");\n case 3:\n throw new ModelError17(this.model, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8FDE\\u63A5\\u7C7B\\u578B: \\u5F02\\u6B65\\u62D2\\u7EDD\");\n case 9:\n throw new ModelError17(this.model, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8FDE\\u63A5\\u7C7B\\u578B: \\u5F02\\u5E38\\u5904\\u7406\");\n default:\n throw new ModelError17(this.model, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8FDE\\u63A5\\u7C7B\\u578B:\".concat(linkMode));\n }\n }\n};\n\n// src/ui-logic/ui-logic-node/ui-logic-node.ts\nvar UILogicNode = class {\n /**\n * Creates an instance of UILogicNode.\n *\n * @author chitanda\n * @date 2023-02-08 16:02:19\n * @param {UILogicNodeModel} model\n */\n constructor(model) {\n this.model = model;\n this.links = (model.deuilogicLinks || []).map(\n (link) => new UILogicLink(link)\n );\n }\n};\n\n// src/ui-logic/ui-logic-node/de-action-node/de-action-node.ts\nvar DEActionNode2 = class extends UILogicNode {\n async exec(ctx) {\n const {\n dstAppDataEntityId,\n dstAppDEActionId,\n dstDEUILogicParamId,\n retDEUILogicParamId\n } = this.model;\n if (!dstAppDataEntityId) {\n throw new RuntimeModelError23(this.model, \"\\u672A\\u6307\\u5B9A\\u5E94\\u7528\\u5B9E\\u4F53\");\n }\n if (!dstAppDEActionId) {\n throw new RuntimeModelError23(this.model, \"\\u672A\\u6307\\u5B9A\\u5B9E\\u4F53\\u884C\\u4E3A\");\n }\n const requestData = ctx.params[dstDEUILogicParamId];\n const app = ibiz.hub.getApp(ctx.context.srfappid);\n const res = await app.deService.exec(\n dstAppDataEntityId,\n dstAppDEActionId,\n ctx.context,\n requestData,\n ctx.viewParams\n );\n if (res.ok) {\n ctx.params[retDEUILogicParamId] = res.data;\n }\n }\n};\n\n// src/ui-logic/ui-logic-node/de-ui-action-node/de-ui-action-node.ts\nimport { RuntimeModelError as RuntimeModelError24 } from \"@ibiz-template/core\";\nvar DEUIActionNode = class extends UILogicNode {\n async exec(ctx) {\n const { dstAppDEUIActionId, dstDEUILogicParamId } = this.model;\n const { data, parameters } = ctx;\n if (!dstAppDEUIActionId) {\n throw new RuntimeModelError24(this.model, \"\\u672A\\u914D\\u7F6E\\u754C\\u9762\\u884C\\u4E3A\");\n }\n let actionData = [data];\n if (dstDEUILogicParamId) {\n const param = ctx.params[dstDEUILogicParamId];\n if (param instanceof Array) {\n actionData = param;\n } else {\n actionData = [param];\n }\n }\n await UIActionUtil.execAndResolved(dstAppDEUIActionId, {\n ...parameters,\n data: actionData\n });\n }\n};\n\n// src/ui-logic/ui-logic-node/start-node/start-node.ts\nvar StartNode2 = class extends UILogicNode {\n async exec(_ctx) {\n }\n};\n\n// src/ui-logic/ui-logic-node/end-node/end-node.ts\nimport { ModelError as ModelError18 } from \"@ibiz-template/core\";\nvar EndNode2 = class extends UILogicNode {\n async exec(ctx) {\n ctx.isEndNode = true;\n const { returnType, rawValue, returnParamId } = this.model;\n switch (returnType) {\n case \"NONEVALUE\":\n ctx.result = void 0;\n break;\n case \"NULLVALUE\":\n ctx.result = null;\n break;\n case \"SRCVALUE\":\n ctx.result = rawValue;\n break;\n case \"LOGICPARAM\":\n ctx.result = ctx.params[returnParamId];\n break;\n case \"LOGICPARAMFIELD\":\n case \"BREAK\":\n default:\n throw new ModelError18(\n this.model,\n \"\\u6682\\u672A\\u652F\\u6301\\u7684\\u7ED3\\u675F\\u8282\\u70B9\\u8FD4\\u56DE\\u503C\\u7C7B\\u578B: \".concat(returnType)\n );\n }\n }\n};\n\n// src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts\nimport { ModelError as ModelError20 } from \"@ibiz-template/core\";\n\n// src/ui-logic/utils/handle-src-val.ts\nimport { ModelError as ModelError19 } from \"@ibiz-template/core\";\nimport { clone as clone10 } from \"ramda\";\nfunction handleSrcVal2(ctx, srcValParams) {\n const { srcDEUILogicParamId, srcValueType, srcFieldName, srcValue } = srcValParams;\n if (!srcValParams.srcValueType) {\n srcValParams.srcValueType = \"SRCDLPARAM\";\n }\n let value;\n switch (srcValueType) {\n case \"SRCDLPARAM\":\n value = ctx.params[srcDEUILogicParamId];\n break;\n case \"NULLVALUE\":\n return null;\n case \"NONEVALUE\":\n return void 0;\n case \"SRCVALUE\":\n return srcValue;\n case \"VIEWPARAM\":\n value = ctx.viewParams;\n break;\n case \"APPDATA\":\n value = ctx.context;\n break;\n case \"ENVPARAM\":\n value = clone10(ibiz.env);\n break;\n default:\n throw new ModelError19(srcValParams, \"\\u6682\\u672A\\u652F\\u6301\\u6E90\\u503C\\u7C7B\\u578B\".concat(srcValueType));\n }\n const srcField = srcFieldName == null ? void 0 : srcFieldName.toLowerCase();\n if (value && srcField) {\n value = value[srcField];\n }\n return value;\n}\n\n// src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts\nvar PrepareJSParamNode = class extends UILogicNode {\n async exec(ctx) {\n const nodeParams = this.model.deuilogicNodeParams;\n if (nodeParams == null ? void 0 : nodeParams.length) {\n await Promise.all(\n nodeParams.map((nodeParam) => {\n switch (nodeParam.paramAction) {\n case \"SETPARAMVALUE\":\n return this.setParamValue(nodeParam, ctx);\n default:\n throw new ModelError20(\n nodeParam,\n \"\\u6682\\u672A\\u652F\\u6301\\u903B\\u8F91\\u5904\\u7406\\u53C2\\u6570\\u64CD\\u4F5C\".concat(nodeParam.paramAction)\n );\n }\n })\n );\n }\n }\n /**\n * 设置变量\n * @author lxm\n * @date 2023-03-17 03:34:02\n * @protected\n * @param {IPSDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n setParamValue(nodeParam, ctx) {\n const { dstFieldName, dstDEUILogicParamId } = nodeParam;\n const dstField = dstFieldName == null ? void 0 : dstFieldName.toLowerCase();\n const srcVal = handleSrcVal2(ctx, nodeParam);\n if (dstField) {\n ctx.params[dstDEUILogicParamId][dstField] = srcVal;\n } else {\n ctx.params[dstDEUILogicParamId] = srcVal;\n }\n }\n};\n\n// src/ui-logic/ui-logic-node/view-ctrl-invoke-node/view-ctrl-invoke-node.ts\nimport { RuntimeError as RuntimeError19, RuntimeModelError as RuntimeModelError25 } from \"@ibiz-template/core\";\nimport { isFunction } from \"lodash-es\";\nvar ViewCtrlInvokeNode = class extends UILogicNode {\n async exec(ctx) {\n ctx.isEndNode = true;\n const { invokeMethod, invokeCtrlId, invokeParamId } = this.model;\n if (!invokeCtrlId) {\n throw new RuntimeModelError25(this.model, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u754C\\u9762\\u5BF9\\u8C61\");\n }\n if (!invokeParamId) {\n throw new RuntimeModelError25(this.model, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u64CD\\u4F5C\\u53C2\\u6570\");\n }\n if (!invokeMethod) {\n throw new RuntimeModelError25(this.model, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u8C03\\u7528\\u65B9\\u6CD5\");\n }\n const invokeParam = ctx.params[invokeParamId];\n if (!invokeParam) {\n throw new RuntimeError19(\"\\u6CA1\\u6709\\u627E\\u5230\\u64CD\\u4F5C\\u53C2\\u6570\".concat(invokeParamId));\n }\n const invokeCtrl = ctx.params[invokeCtrlId];\n if (!invokeCtrl) {\n throw new RuntimeError19(\"\\u6CA1\\u6709\\u627E\\u5230\\u754C\\u9762\\u5BF9\\u8C61\".concat(invokeCtrlId));\n }\n if (!invokeCtrl[invokeMethod] || !isFunction(invokeCtrl[invokeMethod])) {\n throw new RuntimeError19(\"\\u6CA1\\u6709\\u627E\\u5230\\u8C03\\u7528\\u65B9\\u6CD5\".concat(invokeMethod));\n }\n await invokeCtrl[invokeMethod](invokeParam);\n }\n};\n\n// src/ui-logic/ui-logic-param/ui-logic-param.ts\nimport { ModelError as ModelError21, RuntimeError as RuntimeError20 } from \"@ibiz-template/core\";\nvar UILogicParam = class {\n /**\n * Creates an instance of UILogicParam.\n *\n * @author chitanda\n * @date 2023-02-08 16:02:22\n * @param {UILogicParamModel} model\n */\n constructor(model) {\n this.model = model;\n }\n /**\n * 向界面逻辑中计算基础参数\n *\n * @author chitanda\n * @date 2023-02-08 20:02:33\n * @param {UILogicContext} ctx\n */\n calc(ctx) {\n const tag = this.model.id;\n const m = this.model;\n const { context, viewParams, data, parameters } = ctx;\n const app = ibiz.hub.getApp(context.srfappid);\n if (m.default) {\n ctx.params[tag] = data && data.length > 0 ? data[0] : {};\n } else if (m.activeContainerParam) {\n ctx.params[tag] = parameters.ctrl || parameters.view;\n } else if (m.activeCtrlParam) {\n ctx.params[tag] = parameters.ctrl;\n } else if (m.ctrlParam) {\n const control = parameters.view.getController(m.codeName.toLowerCase());\n if (control) {\n ctx.params[tag] = control;\n } else {\n throw new RuntimeError20(\"\\u6CA1\\u627E\\u5230\".concat(m.codeName, \"\\u6307\\u5B9A\\u90E8\\u4EF6\\u5BF9\\u8C61\"));\n }\n } else if (m.activeViewParam) {\n ctx.params[tag] = parameters.view;\n } else if (m.appGlobalParam) {\n ctx.params[tag] = ibiz.env;\n } else if (m.applicationParam) {\n ctx.params[tag] = app;\n } else if (m.entityListParam) {\n ctx.params[tag] = [];\n } else if (m.entityPageParam) {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u5206\\u9875\\u67E5\\u8BE2\\u7ED3\\u679C\");\n } else if (m.entityParam) {\n ctx.params[tag] = {};\n } else if (m.lastReturnParam) {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u4E0A\\u6B21\\u8C03\\u7528\\u8FD4\\u56DE\");\n } else if (m.navContextParam) {\n ctx.params[tag] = context;\n } else if (m.navViewParamParam) {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u89C6\\u56FE\\u8DEF\\u7531\\u53C2\\u6570\");\n } else if (m.routeViewSessionParam) {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u8DEF\\u7531\\u89C6\\u56FE\\u4F1A\\u8BDD\");\n } else if (m.simpleListParam) {\n ctx.params[tag] = [];\n } else if (m.simpleParam) {\n ctx.params[tag] = {};\n } else if (m.viewNavDataParam) {\n ctx.params[tag] = viewParams;\n } else if (m.viewSessionParam) {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u5F53\\u524D\\u89C6\\u56FE\\u4F1A\\u8BDD\");\n }\n }\n /**\n * 重新建立变量\n * @author lxm\n * @date 2023-03-24 09:20:42\n * @param {DELogicContext} ctx\n */\n renew(ctx) {\n const tag = this.model.id;\n const m = this.model;\n if (m.entityListParam || m.simpleListParam || m.entityPageParam) {\n ctx.params[tag] = [];\n } else if (m.simpleParam || m.entityParam) {\n ctx.params[tag] = {};\n } else {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B\\u91CD\\u65B0\\u5EFA\\u7ACB\\u53D8\\u91CF\");\n }\n }\n};\n\n// src/ui-logic/ui-logic.ts\nvar UILogic = class {\n /**\n * Creates an instance of UILogic.\n * @author chitanda\n * @date 2023-02-08 17:02:26\n * @param {IDEUILogic} model\n */\n constructor(model) {\n this.model = model;\n /**\n * 所有节点实例\n *\n * @author chitanda\n * @date 2023-02-08 21:02:38\n * @protected\n * @type {Map<string, UILogicNode>}\n */\n this.nodes = /* @__PURE__ */ new Map();\n /**\n * 所有参数实例\n *\n * @author chitanda\n * @date 2023-02-08 21:02:25\n * @protected\n * @type {Map<string, UILogicParam>}\n */\n this.params = /* @__PURE__ */ new Map();\n var _a;\n if (!((_a = model.deuilogicNodes) == null ? void 0 : _a.length)) {\n throw new RuntimeModelError26(model, \"\\u754C\\u9762\\u903B\\u8F91\\u6CA1\\u6709\\u914D\\u7F6E\\u903B\\u8F91\\u8282\\u70B9\");\n }\n model.deuilogicNodes.forEach((node) => {\n const { logicNodeType } = node;\n let logicNode;\n switch (logicNodeType) {\n case \"BEGIN\":\n logicNode = new StartNode2(node);\n break;\n case \"END\":\n logicNode = new EndNode2(node);\n break;\n case \"DEACTION\":\n logicNode = new DEActionNode2(node);\n break;\n case \"DEUIACTION\":\n logicNode = new DEUIActionNode(node);\n break;\n case \"PREPAREJSPARAM\":\n logicNode = new PrepareJSParamNode(node);\n break;\n case \"RESETPARAM\":\n case \"COPYPARAM\":\n case \"BINDPARAM\":\n case \"VIEWCTRLINVOKE\":\n logicNode = new ViewCtrlInvokeNode(node);\n break;\n case \"VIEWCTRLFIREEVENT\":\n case \"APPENDPARAM\":\n case \"SORTPARAM\":\n case \"RENEWPARAM\":\n case \"PFPLUGIN\":\n case \"MSGBOX\":\n case \"DEDATASET\":\n case \"DELOGIC\":\n case \"THROWEXCEPTION\":\n case \"DEBUGPARAM\":\n default:\n throw new ModelError22(node, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8282\\u70B9\\u7C7B\\u578B: \".concat(logicNodeType));\n }\n this.nodes.set(node.id, logicNode);\n });\n model.deuilogicParams.forEach((param) => {\n this.params.set(param.id, new UILogicParam(param));\n });\n this.nodes.forEach((node) => {\n node.links.forEach((link) => {\n link.srcNode = node;\n if (this.nodes.has(link.model.dstDEUILogicNodeId)) {\n link.dstNode = this.nodes.get(link.model.dstDEUILogicNodeId);\n }\n });\n });\n }\n /**\n * 初始化逻辑参数\n *\n * @author chitanda\n * @date 2023-02-08 21:02:58\n * @protected\n * @param {UILogicContext} ctx\n * @param {IContext} context\n * @param {IData} data\n * @param {IParams} [opt]\n */\n initLogicParams(ctx) {\n this.params.forEach((param) => {\n if (param.model.default) {\n ctx.defaultParamName = param.model.id;\n }\n param.calc(ctx);\n });\n }\n /**\n * 执行视图逻辑\n *\n * @author chitanda\n * @date 2023-02-08 21:02:09\n * @param {IContext} context\n * @param {IData} data\n * @param {IParams} [opt]\n * @return {*} {Promise<IData>}\n */\n async exec(parameters) {\n const ctx = new UILogicContext(this.params, parameters);\n this.initLogicParams(ctx);\n const { startDEUILogicNodeId } = this.model;\n if (startDEUILogicNodeId && this.nodes.has(startDEUILogicNodeId)) {\n const start = this.nodes.get(startDEUILogicNodeId);\n await this.deepExec(start, ctx);\n } else {\n throw new RuntimeModelError26(this.model, \"\\u672A\\u8BBE\\u7F6E\\u8D77\\u59CB\\u8282\\u70B9\");\n }\n if (ctx.isEndNode) {\n return ctx.result;\n }\n if (ctx.params[ctx.defaultParamName]) {\n return ctx.params[ctx.defaultParamName];\n }\n return null;\n }\n /**\n * 开始根据连线递归执行逻辑\n *\n * @author chitanda\n * @date 2023-02-09 15:02:32\n * @protected\n * @param {UILogicNode} node\n * @param {UILogicContext} ctx\n * @param {IContext} context\n * @param {(IData[] | null)} data\n * @param {IParams} params\n * @param {IParams} [opt]\n * @return {*} {(Promise<IData | null>)}\n */\n async deepExec(node, ctx) {\n await node.exec(ctx);\n const { links } = node;\n for (let index = 0; index < links.length; index++) {\n const link = links[index];\n const bol = await link.exec(ctx);\n if (bol && link.dstNode) {\n await this.deepExec(link.dstNode, ctx);\n if (node.model.parallelOutput === false) {\n break;\n }\n }\n }\n }\n};\n\n// src/ui-logic/index.ts\nvar uiLogicMap = /* @__PURE__ */ new Map();\nasync function execUILogic(deUILogicId, appDataEntityId, parameters) {\n const app = ibiz.hub.getApp(parameters.context.srfappid);\n const deUILogic = await app.getDEUILogic(deUILogicId, appDataEntityId);\n if (!deUILogic) {\n throw new RuntimeError21(\n \"\\u627E\\u4E0D\\u5230\\u5B9E\\u4F53\".concat(appDataEntityId, \"\\u7684\\u754C\\u9762\\u903B\\u8F91\").concat(deUILogicId)\n );\n }\n if (!uiLogicMap.has(deUILogic)) {\n uiLogicMap.set(deUILogic, new UILogic(deUILogic));\n }\n const uiLogic = uiLogicMap.get(deUILogic);\n await uiLogic.exec(parameters);\n return null;\n}\n\n// src/ui-action/uiaction-util.ts\nimport { RuntimeError as RuntimeError22 } from \"@ibiz-template/core\";\nvar UIActionUtil = class {\n /**\n * 执行界面行为\n *\n * @author lxm\n * @date 2023-05-15 07:54:53\n * @static\n * @param {string} actionId 界面行为id\n * @param {IUILogicParams} params 界面行为参数\n * @return {*} {Promise<IUIActionResult>}\n */\n static async exec(actionId, params) {\n const action = await getUIActionById(actionId);\n if (!action) {\n throw new RuntimeError22(\"\\u6CA1\\u627E\\u5230\".concat(actionId, \"\\u7684\\u754C\\u9762\\u884C\\u4E3A\\u6A21\\u578B\"));\n }\n const provider = await getUIActionProvider(action);\n return provider.exec(action, params);\n }\n /**\n * 执行界面行为并处理返回值\n * @author lxm\n * @date 2023-05-15 07:54:36\n * @static\n * @param {string} actionId 界面行为id\n * @param {IUILogicParams} params 界面行为参数\n */\n static async execAndResolved(actionId, params) {\n const result = await this.exec(actionId, params);\n if (result.closeView) {\n params.view.closeView();\n } else if (result.refresh) {\n await params.view.callUIAction(\"Refresh\" /* REFRESH */);\n }\n }\n};\n\n// src/ui-action/provider/ui-action-provider-base.ts\nvar UIActionProviderBase = class {\n /**\n * 界面行为执行入口,处理公共逻辑,子类一般不要重写\n * @author lxm\n * @date 2023-05-08 10:02:10\n * @param {IAppDEUIAction} action\n * @param {IUILogicParams} params\n * @return {*} {Promise<IUIActionResult>}\n */\n async exec(action, args) {\n const { context, params, data } = args;\n const result = {\n refresh: action.reloadData,\n closeView: action.closeEditView\n };\n const { appDEUILogicId, appDataEntityId, uilogicAttachMode } = action;\n if (uilogicAttachMode === \"REPLACE\") {\n if (!appDEUILogicId) {\n throw new RuntimeModelError27(action, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u5B9E\\u4F53\\u754C\\u9762\\u903B\\u8F91\");\n }\n await execUILogic(appDEUILogicId, appDataEntityId, args);\n return result;\n }\n if (!await this.isConfirm(action)) {\n return this.returnError(result);\n }\n const _result = await this.execAction(action, args);\n Object.assign(result, _result);\n if (result.cancel === true) {\n return this.returnError(result);\n }\n const nextResult = await this.doNextAction(action, {\n ...args,\n context: result.nextContext || context,\n data: result.data || data,\n params: result.nextParams || params\n });\n if (nextResult) {\n Object.assign(result, nextResult);\n if (nextResult.cancel === true) {\n return this.returnError(result);\n }\n }\n if (action.uilogicAttachMode === \"AFTER\") {\n if (!appDEUILogicId) {\n throw new RuntimeModelError27(action, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u5B9E\\u4F53\\u754C\\u9762\\u903B\\u8F91\");\n }\n await execUILogic(appDEUILogicId, appDataEntityId, args);\n }\n return result;\n }\n /**\n * 有错误和取消时对result做的处理\n * @author lxm\n * @date 2023-03-15 07:43:21\n * @protected\n * @param {IUIActionResult} result\n * @returns {*} {IUIActionResult}\n * @memberof UIActionHandler\n */\n returnError(result) {\n return Object.assign(result, {\n refresh: false,\n closeView: false\n });\n }\n /**\n * 用户操作确认\n *\n * @author lxm\n * @date 2022-10-25 14:10:55\n * @param {IAppDEUIAction} action 界面行为模型\n * @returns {*} {Promise<boolean>}\n */\n async isConfirm(action) {\n if (action.enableConfirm && action.confirmMsg) {\n return ibiz.modal.confirm({ title: action.confirmMsg });\n }\n return true;\n }\n /**\n * 执行后续界面行为\n *\n * @author lxm\n * @date 2022-10-25 15:10:54\n * @param {IAppDEUIAction} action\n * @param {IContext} context\n * @param {(IData[])} data\n * @param {IParams} params\n * @param {(IData | undefined)} [opts]\n * @returns {*} {Promise<void>}\n */\n async doNextAction(action, params) {\n const nextActionId = action.nextId;\n if (nextActionId) {\n return UIActionUtil.exec(nextActionId, params);\n }\n }\n /**\n * 参数处理(根据数据目标和数据参数,导航参数)\n *\n * @author lxm\n * @date 2022-08-29 17:08:00\n * @protected\n * @static\n * @param {IAppDEUIAction} action 界面行为\n * @param {IContext} context 上下文\n * @param {(IData[])} data 数据集合\n * @param {IParams} params 视图参数\n * @returns {*} {Promise<{\n * resultContext: IContext; 处理后的上下文\n * resultData: IData[]; 处理后的数据集合\n * resultParams: IParams; 处理后的视图参数\n * }>}\n */\n async handleParams(action, context, data, params) {\n let resultData = [];\n const deName = calcDeCodeNameById(action.appDataEntityId);\n switch (action.actionTarget) {\n case \"NONE\":\n resultData = [];\n break;\n case \"SINGLEDATA\":\n resultData = [data[0]];\n break;\n case \"MULTIDATA\":\n resultData = data;\n break;\n case \"MULTIKEY\":\n resultData = deName && data.length > 0 ? data.map((item) => ({ [deName]: item.srfkey || item[deName] })) : [{}];\n break;\n case \"SINGLEKEY\":\n {\n const originData = data[0] || {};\n resultData = deName ? [{ [deName]: originData.srfkey || originData[deName] }] : [{}];\n }\n break;\n default:\n break;\n }\n const resultContext = context.clone();\n const navContexts = [...action.navigateContexts || []];\n if (deName && action.actionTarget !== \"NONE\") {\n const { valueItem, paramItem } = action;\n const key = paramItem || deName;\n const valueKey = valueItem || \"srfkey\";\n navContexts.unshift({\n key,\n value: valueKey,\n rawValue: false\n });\n }\n const isMultiData = [\"MULTIKEY\", \"MULTIDATA\"].includes(action.actionTarget) && data.length > 0;\n const tempContext = convertNavData(\n navContexts,\n context,\n params,\n isMultiData ? formatMultiData(navContexts, data) : data[0] || {}\n );\n Object.assign(resultContext, tempContext);\n const navParams = action.navigateParams;\n const resultParams = convertNavData(\n navParams,\n resultContext,\n params,\n isMultiData ? formatMultiData(navParams, data) : data[0] || {}\n );\n return { resultContext, resultData, resultParams };\n }\n};\n\n// src/ui-action/provider/backend-ui-action-provider.ts\nvar BackendUIActionProvider = class extends UIActionProviderBase {\n async execAction(action, args) {\n const { context, params, data, event } = args;\n const actionResult = {};\n const entityName = action.appDataEntityId;\n const methodName = action.appDEMethodId;\n if (!entityName || !methodName) {\n throw new RuntimeModelError28(action, \"\\u672A\\u914D\\u7F6E\\u5B9E\\u4F53\\u6216\\u5B9E\\u4F53\\u884C\\u4E3A\");\n }\n const { resultContext, resultParams, resultData } = await this.handleParams(\n action,\n context,\n data,\n params\n );\n const tempParams = { ...params, ...resultParams };\n const frontPSAppView = action.frontAppViewId;\n if (frontPSAppView) {\n const res2 = await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n frontPSAppView,\n resultContext,\n resultParams,\n { event }\n );\n if (!(res2 == null ? void 0 : res2.ok)) {\n actionResult.cancel = true;\n return actionResult;\n }\n if ((res2 == null ? void 0 : res2.ok) && res2.data) {\n if (resultData.length === 0) {\n resultData.push({});\n }\n resultData.forEach((item) => {\n item.srfactionparam = res2.data;\n });\n }\n }\n const app = ibiz.hub.getApp(context == null ? void 0 : context.srfappid);\n const _data = resultData.map((item) => {\n var _a;\n return ((_a = item.getOrigin) == null ? void 0 : _a.call(item)) || item || {};\n });\n const isMultiData = [\"MULTIKEY\", \"MULTIDATA\"].includes(\n action.actionTarget\n );\n const res = await app.deService.exec(\n entityName,\n methodName,\n resultContext,\n isMultiData ? _data : _data[0],\n tempParams\n );\n if (res.ok && action.successMsg) {\n ibiz.message.success(action.successMsg);\n }\n Object.assign(actionResult, {\n data: isArray2(res.data) ? res.data : [res.data],\n nextContext: resultContext,\n nextParams: tempParams\n });\n return actionResult;\n }\n};\n\n// src/ui-action/provider/sys-ui-action-provider.ts\nvar SysUIActionProvider = class extends UIActionProviderBase {\n async execAction(action, args) {\n const { view } = args;\n const uIActionTag = action.uiactionTag;\n if (uIActionTag === \"Exit\" /* EXIT */) {\n return { closeView: true };\n }\n const result = await view.callUIAction(uIActionTag, args);\n return result || {};\n }\n};\n\n// src/ui-action/provider/front-ui-action-provider.ts\nimport { StringUtil, RuntimeModelError as RuntimeModelError29, ModelError as ModelError23 } from \"@ibiz-template/core\";\nvar FrontUIActionProvider = class extends UIActionProviderBase {\n async execAction(action, args) {\n const { context, params, data, event, noWaitRoute } = args;\n let actionResult = {};\n switch (action.frontProcessType) {\n case \"OPENHTMLPAGE\": {\n const url = StringUtil.fill(action.htmlPageUrl, context, data == null ? void 0 : data[0]);\n window.open(url, \"_blank\");\n break;\n }\n case \"TOP\":\n case \"WIZARD\": {\n const frontPSAppView = action.frontAppViewId;\n if (!frontPSAppView) {\n throw new RuntimeModelError29(action, \"\\u672A\\u914D\\u7F6E\\u6253\\u5F00\\u89C6\\u56FE\");\n }\n const { resultContext, resultParams } = await this.handleParams(\n action,\n context,\n data,\n params\n );\n const res = await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n frontPSAppView,\n resultContext,\n resultParams,\n { event, noWaitRoute }\n );\n if (!(res == null ? void 0 : res.ok)) {\n actionResult.cancel = true;\n }\n if ((res == null ? void 0 : res.ok) && res.data) {\n actionResult.data = res.data;\n actionResult.nextContext = resultContext;\n actionResult.nextParams = { ...params, ...resultParams };\n }\n break;\n }\n case \"OTHER\":\n actionResult = this.doOther(action, args);\n break;\n default:\n throw new ModelError23(\n action,\n \"\\u672A\\u652F\\u6301\\u7684\\u524D\\u53F0\\u5904\\u7406\\u6A21\\u5F0F[\".concat(action.frontProcessType, \"]\")\n );\n }\n return actionResult;\n }\n /**\n * 处理模式:用户自定义\n * @author lxm\n * @date 2023-07-25 02:39:48\n * @protected\n * @param {IAppDEUIAction} action\n * @param {IUILogicParams} args\n * @return {*}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n doOther(action, args) {\n const { scriptCode } = action;\n const { context, params, data, event } = args;\n if (scriptCode) {\n const result = ScriptFactory.execScriptFn(\n { context, params, data, el: event == null ? void 0 : event.target },\n scriptCode\n );\n return result || {};\n }\n throw new RuntimeModelError29(action, \"\\u81EA\\u5B9A\\u4E49\\u7C7B\\u578B\\u7F3A\\u5C11\\u914D\\u7F6E\\u811A\\u672C\\u4EE3\\u7801\");\n }\n};\n\n// src/ui-action/provider/wf-withdraw-ui-action-provider.ts\nvar WFWithdrawUIActionProvider = class extends UIActionProviderBase {\n async execAction(_action, args) {\n const { view } = args;\n const isWithdraw = await ibiz.modal.confirm({\n title: \"\\u63D0\\u793A\",\n desc: \"\\u662F\\u5426\\u786E\\u8BA4\\u6267\\u884C\\u64A4\\u56DE\\u64CD\\u4F5C\\uFF1F\"\n });\n let isCloseView = false;\n if (isWithdraw && view) {\n await view.call(\"WFWithdraw\", args);\n isCloseView = true;\n }\n return {\n refresh: false,\n closeView: isCloseView\n };\n }\n};\n\n// src/ui-action/provider/index.ts\nfunction presetUIActionProvider() {\n const frontUIActionProvider = new FrontUIActionProvider();\n registerUIActionProvider(\"FRONT\", () => frontUIActionProvider);\n const backendUIActionProvider = new BackendUIActionProvider();\n registerUIActionProvider(\"BACKEND\", () => backendUIActionProvider);\n const sysUIActionProvider = new SysUIActionProvider();\n registerUIActionProvider(\"SYS\", () => sysUIActionProvider);\n const wfWithdrawUIActionProvider = new WFWithdrawUIActionProvider();\n registerUIActionProvider(\n \"DEUIACTION_WFWithdraw\",\n () => wfWithdrawUIActionProvider\n );\n}\n\n// src/logic-scheduler/executor/logic-executor.ts\nimport { RuntimeError as RuntimeError23 } from \"@ibiz-template/core\";\nvar LogicExecutor = class {\n /**\n * @author lxm\n * @date 2023-06-25 07:32:57\n * @param {ISchedulerLogic} logic 逻辑\n */\n constructor(logic, scheduler) {\n this.logic = logic;\n this.scheduler = scheduler;\n this.type = logic.logicType;\n }\n /**\n * 执行逻辑\n * @author lxm\n * @date 2023-06-26 02:55:40\n * @param {IUILogicParams} _executeParams 执行参数\n * @return {*} {*}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n execute(_executeParams) {\n throw new RuntimeError23(\"Method not implemented.\");\n }\n /**\n * 销毁方法\n * @author lxm\n * @date 2023-07-17 11:48:54\n */\n destroy() {\n }\n};\n\n// src/logic-scheduler/executor/logic-executor-factory.ts\nimport { ModelError as ModelError24 } from \"@ibiz-template/core\";\nvar LogicExecutorFactory = class {\n constructor() {\n /**\n * 构造回调方法集合\n * @author lxm\n * @date 2023-06-25 06:53:31\n */\n this.constructorMap = /* @__PURE__ */ new Map();\n }\n /**\n * 注册\n * @author lxm\n * @date 2023-06-25 06:54:17\n * @param {string} key 注册标识\n * @param {(logic: ISchedulerLogic, scheduler: LogicScheduler) => LogicExecutor} callback\n */\n register(key, callback) {\n this.constructorMap.set(key, callback);\n }\n /**\n * 创建执行器实例\n * @author lxm\n * @date 2023-06-25 06:59:51\n * @param {ISchedulerLogic} logic\n * @return {*}\n */\n createExecutor(logic, scheduler) {\n const constructor = this.constructorMap.get(logic.logicType);\n if (!constructor) {\n throw new ModelError24(logic, \"\\u903B\\u8F91\\u7C7B\\u578B \".concat(logic.logicType, \" \\u6682\\u672A\\u652F\\u6301\\uFF01\"));\n }\n return constructor(logic, scheduler);\n }\n};\n\n// src/logic-scheduler/executor/script-executor.ts\nimport { RuntimeError as RuntimeError24 } from \"@ibiz-template/core\";\nvar ScriptExecutor = class extends LogicExecutor {\n constructor() {\n super(...arguments);\n /**\n * 是否单行返回,脚本只是单行的且默认把值返回\n * @author lxm\n * @date 2023-06-25 10:06:32\n * @type {boolean}\n */\n this.isRowReturn = false;\n }\n /**\n * 执行参数转换成脚本执行作用域参数\n * @author lxm\n * @date 2023-06-26 03:29:24\n * @param {IUILogicParams} _executeParams\n * @return {*} {IData[]}\n */\n convertScriptArgs(_executeParams) {\n throw new RuntimeError24(\"\\u672A\\u8BBE\\u7F6E\\u811A\\u672C\\u6267\\u884C\\u53C2\\u6570\\u8F6C\\u6362\\u65B9\\u6CD5\");\n }\n /**\n * 初始化脚本执行器\n * @author lxm\n * @date 2023-06-26 03:27:50\n * @param {string[]} paramKeys 脚本作用域参数键值和顺序\n * @param {(executeParams: IUILogicParams) => IData[]} convertFun 脚本参数转换方法\n */\n init(paramKeys, convertFun) {\n this.convertScriptArgs = convertFun;\n let code = this.logic.scriptCode;\n if (this.isRowReturn) {\n code = \"return (\".concat(code, \")\");\n }\n this.scriptFn = ScriptFactory.createScriptFn(paramKeys, code, {\n singleRowReturn: this.isRowReturn\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n execute(executeParams) {\n const scriptArgs = this.convertScriptArgs(executeParams);\n return this.scriptFn.exec(scriptArgs);\n }\n};\n\n// src/logic-scheduler/executor/app-de-ui-logic-executor.ts\nimport { RuntimeModelError as RuntimeModelError30 } from \"@ibiz-template/core\";\nvar AppDEUILogicExecutor = class extends LogicExecutor {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n execute(executeParams) {\n const { appDEUILogicId, appDataEntityId } = this.logic;\n if (!appDEUILogicId) {\n throw new RuntimeModelError30(this.logic, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u5B9E\\u4F53\\u754C\\u9762\\u903B\\u8F91\");\n }\n execUILogic(appDEUILogicId, appDataEntityId, executeParams);\n }\n};\n\n// src/logic-scheduler/scheduler/logic-scheduler.ts\nimport { mergeLeft } from \"ramda\";\nvar LogicScheduler = class {\n constructor(logics) {\n this.triggers = /* @__PURE__ */ new Map();\n this.executors = /* @__PURE__ */ new Map();\n this.logics = logics;\n logics.forEach((logic) => {\n try {\n const executor = this.createExecutor(logic);\n this.executors.set(logic.id, executor);\n const trigger = this.createTrigger(logic);\n this.triggers.set(logic.id, trigger);\n trigger.bindExecutor(executor);\n } catch (error) {\n ibiz.log.error(error.message);\n }\n });\n }\n /**\n * 销毁方法\n * @author lxm\n * @date 2023-07-17 11:47:51\n */\n destroy() {\n this.triggers.forEach((trigger) => trigger.destroy());\n this.executors.forEach((executor) => executor.destroy());\n }\n /**\n * 获取执行参数,把默认参数和调用参数合并\n * @author lxm\n * @date 2023-06-25 08:28:34\n * @param {IData} args\n * @return {*}\n */\n getExecuteParams(executeParams) {\n let defaultParams = {};\n if (this.defaultParamsCb) {\n defaultParams = this.defaultParamsCb();\n }\n return mergeLeft(executeParams, defaultParams);\n }\n /**\n * 创建触发器实例\n * @author lxm\n * @date 2023-06-26 02:33:35\n * @protected\n * @param {ISchedulerLogic} logic\n * @return {*} {LogicTrigger}\n */\n createTrigger(logic) {\n return ibiz.scheduler.triggerFactory.createTrigger(logic, this);\n }\n /**\n * 创建执行器实例\n * @author lxm\n * @date 2023-06-26 02:33:52\n * @protected\n * @param {ISchedulerLogic} logic\n * @return {*} {LogicExecutor}\n */\n createExecutor(logic) {\n return ibiz.scheduler.executorFactory.createExecutor(logic, this);\n }\n /**\n * 获取匹配的触发器。\n * @author lxm\n * @date 2023-06-26 02:32:24\n * @param {ITriggerMatchParams} matchParams\n * @return {*} {LogicTrigger[]}\n */\n getMatchTriggers(matchParams) {\n const triggers = [];\n this.triggers.forEach((trigger) => {\n if (trigger.match(matchParams)) {\n triggers.push(trigger);\n }\n });\n return triggers;\n }\n /**\n * 找到匹配的触发器并执行对应的执行器,并返回结果。\n * 返回undefined表示没有匹配的触发器。\n * @author lxm\n * @date 2023-06-26 02:30:24\n * @param {ITriggerMatchParams} matchParams 匹配参数\n * @param {Partial<IUILogicParams>} [executeParams={}] 执行参数\n * @return {*} {(any[] | undefined)}\n */\n triggerAndExecute(matchParams, executeParams = {}) {\n const triggers = this.getMatchTriggers(matchParams);\n if (triggers.length > 0) {\n const params = this.getExecuteParams(executeParams);\n const result = triggers.map((trigger) => {\n return trigger.execute(params);\n });\n return result;\n }\n }\n /**\n * 预定义项的动态逻辑\n * @author lxm\n * @date 2023-06-26 02:29:08\n * @protected\n * @param {string} itemName 子项名称\n * @param {('ITEMVISIBLE' | 'ITEMENABLE' | 'ITEMBLANK')} triggerType 预定义逻辑类型\n * @param {Partial<IUILogicParams>} executeParams 执行参数\n * @return {*} {(boolean | undefined)}\n */\n triggerItemDynaLogic(itemName, triggerType, executeParams) {\n const matchParams = { itemName, triggerType };\n const result = this.triggerAndExecute(matchParams, executeParams);\n if (result == null ? void 0 : result.length) {\n return result.pop();\n }\n }\n /**\n * 预定义项显示逻辑\n * @author lxm\n * @date 2023-06-26 02:26:36\n * @param {string} itemName 子项名称\n * @param {Partial<IUILogicParams>} executeParams 执行参数\n * @return {*} {(boolean | undefined)}\n */\n triggerItemVisible(itemName, executeParams) {\n return this.triggerItemDynaLogic(itemName, \"ITEMVISIBLE\", executeParams);\n }\n /**\n * 预定义项启用逻辑\n * @author lxm\n * @date 2023-06-26 02:26:35\n * @param {string} itemName 子项名称\n * @param {Partial<IUILogicParams>} executeParams 执行参数\n * @return {*} {(boolean | undefined)}\n */\n triggerItemEnable(itemName, executeParams) {\n return this.triggerItemDynaLogic(itemName, \"ITEMENABLE\", executeParams);\n }\n /**\n * 预定义项空输入逻辑\n * @author lxm\n * @date 2023-06-26 02:26:33\n * @param {string} itemName 子项名称\n * @param {Partial<IUILogicParams>} executeParams 执行参数\n * @return {*} {(boolean | undefined)}\n */\n triggerItemBlank(itemName, executeParams) {\n return this.triggerItemDynaLogic(itemName, \"ITEMBLANK\", executeParams);\n }\n /**\n * 定时器触发开始启用并计时\n * @author lxm\n * @date 2023-07-17 01:49:14\n */\n startTimerTrigger() {\n const triggers = this.getMatchTriggers({ triggerType: \"TIMER\" });\n triggers.forEach((trigger) => trigger.start());\n }\n /**\n * 执行自定义触发逻辑类型的视图逻辑\n * @author lxm\n * @date 2023-07-17 07:44:12\n * @param {string} id\n * @param {Partial<IUILogicParams>} executeParams\n * @return {*}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n triggerCustom(id, executeParams) {\n const trigger = this.triggers.get(id);\n if (!trigger) {\n return -1;\n }\n const params = this.getExecuteParams(executeParams);\n return trigger.execute(params);\n }\n};\n\n// src/logic-scheduler/scheduler/control-logic-scheduler.ts\nvar ControlLogicScheduler = class extends LogicScheduler {\n constructor(logics) {\n const filterLogics = logics.filter(\n (item) => item.triggerType !== \"APPVIEWENGINE\"\n );\n super(filterLogics);\n }\n};\n\n// src/logic-scheduler/scheduler/view-logic-scheduler.ts\nvar ViewLogicScheduler = class extends LogicScheduler {\n constructor(logics) {\n logics.forEach((logic) => {\n logic.triggerType = logic.logicTrigger;\n });\n super(logics);\n }\n /**\n * 触发视图事件\n * @author lxm\n * @date 2023-06-26 02:26:33\n * @param {string} itemName 子项名称\n * @param {Partial<IUILogicParams>} executeParams 执行参数\n * @return {*} {(boolean | undefined)}\n */\n triggerViewEvent(event) {\n const matchParams = {\n eventName: event.eventName,\n triggerType: \"VIEWEVENT\"\n };\n this.triggerAndExecute(matchParams, event);\n }\n};\n\n// src/logic-scheduler/trigger/logic-trigger-factory.ts\nimport { ModelError as ModelError25 } from \"@ibiz-template/core\";\nvar LogicTriggerFactory = class {\n constructor() {\n /**\n * 构造回调方法集合\n * @author lxm\n * @date 2023-06-25 06:53:31\n */\n this.constructorMap = /* @__PURE__ */ new Map();\n }\n /**\n * 注册\n * @author lxm\n * @date 2023-06-25 06:54:17\n * @param {string} key 注册标识\n * @param {(logic: ISchedulerLogic, scheduler: LogicScheduler) => LogicTrigger} callback\n */\n register(key, callback) {\n this.constructorMap.set(key, callback);\n }\n /**\n * 创建触发器实例\n * @author lxm\n * @date 2023-06-25 06:56:32\n * @param {ISchedulerLogic} logic\n * @return {*}\n */\n createTrigger(logic, scheduler) {\n const constructor = this.constructorMap.get(logic.triggerType);\n if (!constructor) {\n throw new ModelError25(logic, \"\\u89E6\\u53D1\\u5668\\u7C7B\\u578B \".concat(logic.triggerType, \" \\u6682\\u672A\\u652F\\u6301\\uFF01\"));\n }\n return constructor(logic, scheduler);\n }\n};\n\n// src/logic-scheduler/logic-scheduler-center.ts\nvar LogicSchedulerCenter = class {\n constructor() {\n /**\n * 执行器工厂\n * @author lxm\n * @date 2023-06-25 06:41:42\n * @type {LogicExecutorFactory}\n */\n this.executorFactory = new LogicExecutorFactory();\n /**\n * 触发器工厂\n * @author lxm\n * @date 2023-06-25 06:44:12\n * @type {LogicTriggerFactory}\n */\n this.triggerFactory = new LogicTriggerFactory();\n }\n /**\n * 创建视图逻辑调度器实例\n * @author lxm\n * @date 2023-06-25 03:41:43\n * @param {IAppDEViewLogic} logics\n * @return {*} {ViewLogicScheduler}\n */\n createViewScheduler(logics) {\n return new ViewLogicScheduler(logics);\n }\n /**\n * 创建部件逻辑调度器实例\n * @author lxm\n * @date 2023-06-25 03:48:30\n * @param {IControlLogic} logics\n * @return {*} {ControlLogicScheduler}\n */\n createControlScheduler(logics) {\n return new ControlLogicScheduler(logics);\n }\n};\n\n// src/logic-scheduler/trigger/logic-trigger.ts\nimport { RuntimeError as RuntimeError25 } from \"@ibiz-template/core\";\nvar LogicTrigger = class {\n /**\n * @author lxm\n * @date 2023-06-25 07:32:57\n * @param {ISchedulerLogic} logic 逻辑\n */\n constructor(logic, scheduler) {\n this.logic = logic;\n this.scheduler = scheduler;\n this.type = logic.triggerType;\n }\n /**\n * 绑定执行器\n * @author lxm\n * @date 2023-06-25 07:25:13\n * @param {LogicExecutor} executor\n */\n bindExecutor(executor) {\n this.executor = executor;\n }\n /**\n * 匹配触发器,返回true表示该触发器满足触发条件。\n * @author lxm\n * @date 2023-06-25 07:49:00\n * @param {IData} _args\n * @return {*} {boolean}\n */\n match(matchParams) {\n return matchParams.triggerType === this.type;\n }\n /**\n * 执行对应的执行器\n * @author lxm\n * @date 2023-06-26 01:45:42\n * @param {Partial<IUILogicParams>} executeParams\n * @return {*}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n execute(executeParams) {\n if (this.executor) {\n return this.executor.execute(executeParams);\n }\n throw new RuntimeError25(\"\".concat(this.logic.id, \"\\u6CA1\\u6709\\u7ED1\\u5B9Aexecutor\"));\n }\n /**\n * 销毁方法\n * @author lxm\n * @date 2023-07-17 11:48:54\n */\n destroy() {\n this.executor = void 0;\n }\n};\n\n// src/logic-scheduler/trigger/custom-trigger.ts\nvar CustomTrigger = class extends LogicTrigger {\n};\n\n// src/logic-scheduler/trigger/item-dyna-logic-trigger.ts\nimport { RuntimeError as RuntimeError26 } from \"@ibiz-template/core\";\nvar ItemDynaLogicTrigger = class extends LogicTrigger {\n bindExecutor(executor) {\n super.bindExecutor(executor);\n if (this.executor.type !== \"SCRIPT\") {\n throw new RuntimeError26(\n \"\\u9884\\u5B9A\\u4E49\\u903B\\u8F91\\u7C7B\\u578B\".concat(this.type, \"\\u7684\\u89E6\\u53D1\\u5668\\u7C7B\\u578B\\u53EA\\u80FD\\u662F\\u811A\\u672C\")\n );\n }\n this.executor.isRowReturn = true;\n this.executor.init(\n [\"context\", \"viewparams\", \"data\", \"env\"],\n (executeParams) => {\n const { context, params, data } = executeParams;\n return {\n context,\n params,\n data: (data == null ? void 0 : data[0]) || {},\n env: ibiz.env\n };\n }\n );\n }\n match(matchParams) {\n const superResult = super.match(matchParams);\n return superResult && matchParams.itemName === this.logic.itemName;\n }\n execute(executeParams) {\n const result = this.executor.execute(executeParams);\n if (typeof result === \"boolean\") {\n return result;\n }\n throw new RuntimeError26(\"\".concat(this.logic.id, \"\\u903B\\u8F91\\u8FD4\\u56DE\\u503C\\u4E0D\\u662F\\u5E03\\u5C14\\u503C\"));\n }\n};\n\n// src/logic-scheduler/trigger/timer-trigger.ts\nimport { RuntimeError as RuntimeError27 } from \"@ibiz-template/core\";\nvar TimerTrigger = class extends LogicTrigger {\n constructor() {\n super(...arguments);\n this.timer = null;\n }\n start() {\n this.timer = setInterval(() => {\n if (!this.scheduler.defaultParamsCb) {\n throw new RuntimeError27(\"\\u5B9A\\u65F6\\u5668\\u7F3A\\u5C11\\u9ED8\\u8BA4\\u53C2\\u6570\\u56DE\\u8C03\");\n }\n const params = this.scheduler.defaultParamsCb();\n this.executor.execute(params);\n }, this.logic.timer);\n }\n destroy() {\n super.destroy();\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n};\n\n// src/logic-scheduler/executor/app-ui-logic-executor.ts\nimport {\n ModelError as ModelError26,\n RuntimeError as RuntimeError28,\n RuntimeModelError as RuntimeModelError31\n} from \"@ibiz-template/core\";\nimport { notNilEmpty as notNilEmpty5 } from \"qx-util\";\nvar AppUILogicExecutor = class extends LogicExecutor {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n execute(executeParams) {\n if (this.logic.id === \"opendata\" && this.logic.builtinAppUILogic) {\n return this.executeOpenDataAppUILogic(\n this.logic.builtinAppUILogic,\n executeParams\n );\n }\n if (this.logic.id === \"newdata\" && this.logic.builtinAppUILogic) {\n return this.executeNewDataAppUILogic(\n this.logic.builtinAppUILogic,\n executeParams\n );\n }\n }\n /**\n * 执行应用预置界面逻辑opendata\n *\n * @author lxm\n * @date 2022-08-22 14:08:03\n * @export\n * @param {IPSAppUIOpenDataLogic} appUILogic 应用预置界面逻辑opendata模型对象\n * @param {IContext} context 上下文参数\n * @param {(IData | null)} data 数据集合\n * @param {IParams} params 视图参数\n * @param {IData} [opts] 额外参数,event是js原生事件\n */\n async executeOpenDataAppUILogic(appUILogic, parameters) {\n const { context, params, ...rest } = parameters;\n const { data } = parameters;\n if (!(data == null ? void 0 : data[0])) {\n throw new RuntimeError28(\"opendata\\u6CA1\\u6709\\u53EF\\u64CD\\u4F5C\\u6570\\u636E\\uFF01\");\n }\n const openViewRef = appUILogic.openDataAppView;\n if (!openViewRef) {\n throw new RuntimeModelError31(\n appUILogic,\n \"opendata\\u89C6\\u56FE\\u903B\\u8F91\\u6CA1\\u6709\\u914D\\u7F6E\\u9ED8\\u8BA4\\u6253\\u5F00\\u89C6\\u56FE\"\n );\n }\n const openView = openViewRef.refAppViewId;\n if (!openView) {\n throw new RuntimeModelError31(\n appUILogic,\n \"opendata\\u89C6\\u56FE\\u903B\\u8F91\\u7684\\u9ED8\\u8BA4\\u6253\\u5F00\\u89C6\\u56FE\\u6CA1\\u6709\\u5B9E\\u9645\\u5F15\\u7528\\u89C6\\u56FE\"\n );\n }\n const navContexts = openViewRef.navigateContexts || [];\n const tempContext = Object.assign(\n context,\n convertNavData(navContexts, context, params, data[0])\n );\n let tempParams = {};\n const navParams = openViewRef.navigateParams;\n if (notNilEmpty5(navParams)) {\n tempParams = convertNavData(navParams, params, context, data[0]);\n }\n await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n openView,\n tempContext,\n tempParams,\n rest\n );\n }\n /**\n * 执行应用预置界面逻辑newdata\n *\n * @author lxm\n * @date 2022-08-22 14:08:03\n * @export\n * @param {IPSAppUINewDataLogic} appUILogic 应用预置界面逻辑newdata模型对象\n * @param {IContext} context 上下文参数\n * @param {(IData | null)} data 数据集合\n * @param {IParams} params 视图参数\n * @param {IData} [opts] 额外参数,event是js原生事件\n */\n async executeNewDataAppUILogic(appUILogic, parameters) {\n const { context, params, ...rest } = parameters;\n const { data } = parameters;\n const { enableWizardAdd, enableBatchAdd, batchAddOnly, newDataAppView } = appUILogic;\n let newViewRef;\n if (enableWizardAdd) {\n newViewRef = await this.getWizardNewViewRef(appUILogic, parameters);\n if (!newViewRef) {\n return;\n }\n } else if (enableBatchAdd) {\n throw new ModelError26(appUILogic, \"enableBatchAdd\\u6682\\u672A\\u652F\\u6301\");\n } else if (batchAddOnly) {\n throw new ModelError26(appUILogic, \"batchAddOnly\\u6682\\u672A\\u652F\\u6301\");\n } else {\n newViewRef = newDataAppView;\n if (!newViewRef || !newViewRef.refAppViewId) {\n throw new RuntimeModelError31(\n appUILogic,\n \"newdata\\u89C6\\u56FE\\u903B\\u8F91\\u6CA1\\u6709\\u914D\\u7F6E\\u9ED8\\u8BA4\\u65B0\\u5EFA\\u6570\\u636E\\u89C6\\u56FE\"\n );\n }\n }\n let tempContext = {};\n let tempParams = {};\n const _data = (data == null ? void 0 : data[0]) || {};\n const navContexts = newViewRef.navigateContexts;\n if (notNilEmpty5(navContexts)) {\n tempContext = convertNavData(navContexts, context, params, _data);\n }\n tempContext = Object.assign(context, tempContext);\n const navParams = newViewRef.navigateParams;\n if (notNilEmpty5(navParams)) {\n tempParams = convertNavData(navParams, params, context, _data);\n }\n if (context.srfcopymode) {\n _data.srfkey = void 0;\n tempParams = Object.assign(tempParams, _data.$origin);\n }\n await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n newViewRef.refAppViewId,\n tempContext,\n tempParams,\n rest\n );\n }\n /**\n * 获取向导新建视图引用\n * 返回undefined为取消操作\n * 找不到会报错\n * @author lxm\n * @date 2023-08-03 06:37:22\n * @protected\n * @param {IAppUINewDataLogic} appUILogic\n * @param {IUILogicParams} parameters\n * @return {*} {(Promise<IAppUILogicRefViewBase | undefined>)}\n */\n async getWizardNewViewRef(appUILogic, parameters) {\n var _a;\n const { wizardAppView, newDataAppViews } = appUILogic;\n const { context, params, ...rest } = parameters;\n if (!wizardAppView || !wizardAppView.refAppViewId) {\n throw new RuntimeModelError31(appUILogic, \"\\u7F3A\\u5C11\\u9ED8\\u8BA4\\u7D22\\u5F15\\u5B9E\\u4F53\\u9009\\u62E9\\u89C6\\u56FE\");\n }\n const result = await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n wizardAppView.refAppViewId,\n context,\n params,\n { ...rest, openMode: \"POPUPMODAL\" }\n );\n if (!result.ok) {\n return;\n }\n const selectData = (_a = result.data) == null ? void 0 : _a[0];\n if (!selectData) {\n throw new RuntimeError28(\"\\u8BF7\\u9009\\u4E2D\\u4E00\\u6761\\u6570\\u636E\");\n }\n const indexType = selectData.srfkey;\n const findView = newDataAppViews == null ? void 0 : newDataAppViews.find((item) => item.refMode === indexType);\n if (!findView) {\n throw new RuntimeError28(\n \"\\u6CA1\\u6709\\u627E\\u5230\\u4E0E\\u7D22\\u5F15\\u7C7B\\u578B\".concat(indexType, \"\\u76F8\\u5173\\u7684\\u5B9E\\u4F53\\u7684\\u7F16\\u8F91\\u89C6\\u56FE\")\n );\n }\n return findView;\n }\n};\n\n// src/logic-scheduler/trigger/view-event-trigger.ts\nvar ViewEventTrigger = class extends LogicTrigger {\n constructor(logic, scheduler) {\n super(logic, scheduler);\n this.logic = logic;\n this.scheduler = scheduler;\n /**\n * 监听事件名称集合\n * @author lxm\n * @date 2023-07-26 05:48:30\n * @protected\n * @type {string[]}\n */\n this.listenEventNames = [];\n const names = logic.eventNames.split(\",\");\n this.listenEventNames = names.map(\n (name) => StudioViewEvents[name] || name\n );\n }\n match(matchParams) {\n const superResult = super.match(matchParams);\n return superResult && this.listenEventNames.includes(matchParams.eventName);\n }\n};\n\n// src/logic-scheduler/index.ts\nfunction installLogicSchedule() {\n ibiz.scheduler = new LogicSchedulerCenter();\n ibiz.scheduler.triggerFactory.register(\n \"ITEMVISIBLE\",\n (logic, scheduler) => new ItemDynaLogicTrigger(logic, scheduler)\n );\n ibiz.scheduler.triggerFactory.register(\n \"ITEMENABLE\",\n (logic, scheduler) => new ItemDynaLogicTrigger(logic, scheduler)\n );\n ibiz.scheduler.triggerFactory.register(\n \"ITEMBLANK\",\n (logic, scheduler) => new ItemDynaLogicTrigger(logic, scheduler)\n );\n ibiz.scheduler.triggerFactory.register(\n \"TIMER\",\n (logic, scheduler) => new TimerTrigger(logic, scheduler)\n );\n ibiz.scheduler.triggerFactory.register(\n \"CUSTOM\",\n (logic, scheduler) => new CustomTrigger(logic, scheduler)\n );\n ibiz.scheduler.triggerFactory.register(\n \"VIEWEVENT\",\n (logic, scheduler) => new ViewEventTrigger(logic, scheduler)\n );\n ibiz.scheduler.executorFactory.register(\n \"SCRIPT\",\n (logic, scheduler) => new ScriptExecutor(logic, scheduler)\n );\n ibiz.scheduler.executorFactory.register(\n \"APPDEUILOGIC\",\n (logic, scheduler) => new AppDEUILogicExecutor(logic, scheduler)\n );\n ibiz.scheduler.executorFactory.register(\n \"DEUILOGIC\",\n (logic, scheduler) => new AppDEUILogicExecutor(logic, scheduler)\n );\n ibiz.scheduler.executorFactory.register(\n \"APPUILOGIC\",\n (logic, scheduler) => new AppUILogicExecutor(logic, scheduler)\n );\n}\n\n// src/install.ts\nfunction install() {\n const { ibiz: ibiz2 } = window;\n ibiz2.util = new GlobalUtil();\n ibiz2.hub = new AppHub();\n ibiz2.register = new RegisterCenter();\n ibiz2.config = new GlobalConfig();\n ibiz2.auth = new AuthService();\n ibiz2.engine = new EngineFactory();\n installCommand();\n presetUIActionProvider();\n installLogicSchedule();\n}\n\n// src/plugin/plugin-static-resource/plugin-static-resource.ts\nvar import_path_browserify = __toESM(require_path_browserify(), 1);\nvar PluginStaticResource = class {\n /**\n * 插件静态资源工具类.\n *\n * @author chitanda\n * @date 2022-11-03 10:11:41\n * @param {string} mateUrl import.mate.url\n */\n constructor(mateUrl) {\n /**\n * 已经输出过路径的 style 标签\n *\n * @author chitanda\n * @date 2023-03-23 10:03:38\n * @protected\n * @type {Map<string, null>}\n */\n this.styleElementMap = /* @__PURE__ */ new Map();\n this.url = new URL(mateUrl);\n const dir = import_path_browserify.default.dirname(this.url.pathname);\n this.baseDir = dir;\n }\n /**\n * 合并输出静态资源目录\n *\n * @author chitanda\n * @date 2022-11-03 10:11:39\n * @param {string} pathStr\n * @return {*} {string}\n */\n dir(pathStr) {\n return import_path_browserify.default.resolve(this.baseDir, pathStr);\n }\n /**\n * 加载样式静态资源\n *\n * @author chitanda\n * @date 2023-03-23 10:03:49\n * @param {string[]} urls\n * @return {*} {Promise<void>}\n */\n async loadStyle(urls) {\n const all = urls.map((styleUrl) => {\n const url = this.dir(styleUrl);\n if (this.styleElementMap.has(url)) {\n return false;\n }\n this.styleElementMap.set(url, null);\n return new Promise((resolve, reject) => {\n const linkDom = document.createElement(\"link\");\n linkDom.setAttribute(\"type\", \"text/css\");\n linkDom.setAttribute(\"rel\", \"stylesheet\");\n linkDom.setAttribute(\"href\", url);\n linkDom.onload = resolve;\n linkDom.onerror = reject;\n document.head.appendChild(linkDom);\n });\n });\n try {\n await Promise.all(all);\n } catch (error) {\n ibiz.log.error(error);\n }\n }\n};\n\n// src/plugin/remote-plugin-item/remote-plugin-item.ts\nvar RemotePluginItem = class {\n /**\n * Creates an instance of RemotePluginItem.\n *\n * @author chitanda\n * @date 2023-02-02 15:02:13\n * @param {string} tag 插件标识名称\n * @param {string} repo 插件路径\n * @param {RemotePluginConfig} config\n */\n constructor(tag, repo, config) {\n this.tag = tag;\n this.repo = repo;\n this.config = config;\n }\n};\n\n// src/controller/constant/control/form/form-notify.state.ts\nvar FormNotifyState = /* @__PURE__ */ ((FormNotifyState2) => {\n FormNotifyState2[\"LOAD\"] = \"LOAD\";\n FormNotifyState2[\"DRAFT\"] = \"DRAFT\";\n FormNotifyState2[\"SAVE\"] = \"SAVE\";\n return FormNotifyState2;\n})(FormNotifyState || {});\n\n// src/controller/constant/control/grid/grid-notify.state.ts\nvar GridNotifyState = /* @__PURE__ */ ((GridNotifyState2) => {\n GridNotifyState2[\"LOAD\"] = \"LOAD\";\n GridNotifyState2[\"DRAFT\"] = \"DRAFT\";\n GridNotifyState2[\"SAVE\"] = \"SAVE\";\n return GridNotifyState2;\n})(GridNotifyState || {});\n\n// src/controller/constant/control/panel/panel-notify.state.ts\nvar PanelNotifyState = /* @__PURE__ */ ((PanelNotifyState2) => {\n PanelNotifyState2[\"LOAD\"] = \"LOAD\";\n PanelNotifyState2[\"DRAFT\"] = \"DRAFT\";\n PanelNotifyState2[\"SAVE\"] = \"SAVE\";\n return PanelNotifyState2;\n})(PanelNotifyState || {});\n\n// src/controller/common/view/view.controller.ts\nimport { createUUID as createUUID2, notNilEmpty as notNilEmpty6 } from \"qx-util\";\nimport { IBizContext as IBizContext2, RuntimeError as RuntimeError31 } from \"@ibiz-template/core\";\n\n// src/controller/utils/loading/loading.state.ts\nimport { NOOP } from \"@ibiz-template/core\";\n\n// src/controller/utils/counter/counter.ts\nimport { RuntimeError as RuntimeError29 } from \"@ibiz-template/core\";\nvar Counter = class {\n /**\n * Creates an instance of Counter.\n * @author lxm\n * @date 2022-09-19 11:09:57\n * @param {() => void} callback 回调函数,在计数归零的时候被调用\n */\n constructor(callback) {\n this.callback = callback;\n /**\n * 计数\n *\n * @author lxm\n * @date 2022-09-19 11:09:30\n * @type {number}\n */\n this.count = 0;\n /**\n * 计数器状态\n * 调用过一次回调后就会变为使用过的状态,任何操作都不会执行\n *\n * @author lxm\n * @date 2022-09-21 19:09:21\n * @private\n * @type {('Unused' | 'Used')}\n */\n this.state = \"Unused\";\n /**\n * 是否可以重复使用\n *\n * @author lxm\n * @date 2022-09-21 19:09:22\n * @protected\n * @type {boolean}\n */\n this.reusable = true;\n }\n /**\n * 增加计数,返回增加后的计数\n *\n * @author lxm\n * @date 2022-08-18 21:08:22\n */\n increment() {\n if (this.state === \"Used\") {\n return this.count;\n }\n this.count += 1;\n return this.count;\n }\n /**\n * 减少计数,当计数为0时触发回调\n *\n * @author lxm\n * @date 2022-08-18 21:08:22\n */\n decrement(callback2) {\n if (this.state === \"Used\") {\n return;\n }\n if (this.count === 0) {\n throw new RuntimeError29(\"\\u9519\\u8BEF\\u7684\\u8C03\\u7528\\uFF01decrement\\u4E0D\\u80FD\\u5BF9count\\u4E3A0\\u8C03\\u7528\");\n }\n this.count -= 1;\n if (this.count === 0) {\n if (callback2) {\n callback2();\n } else if (this.callback) {\n this.callback();\n }\n if (!this.reusable) {\n this.state = \"Used\";\n }\n }\n }\n /**\n * 销毁方法,解除关联\n *\n * @author lxm\n * @date 2022-09-19 11:09:27\n */\n destroy() {\n this.callback = void 0;\n }\n};\n\n// src/controller/utils/loading/loading.state.ts\nvar LoadingState = class {\n constructor() {\n /**\n * 当前的loading状态,多次loading叠加时,只有所有loading都结束才会变回false。\n *\n * @author lxm\n * @date 2022-09-19 11:09:43\n * @readonly\n * @type {boolean}\n */\n this.isLoading = false;\n /**\n * loading计数器\n *\n * @author lxm\n * @date 2022-09-19 11:09:08\n * @private\n */\n this.counter = new Counter(NOOP);\n }\n /**\n * 开始loading\n *\n * @author lxm\n * @date 2022-09-19 11:09:55\n */\n begin() {\n this.isLoading = true;\n this.counter.increment();\n }\n /**\n * 结束loading\n *\n * @author lxm\n * @date 2022-09-19 11:09:34\n */\n end() {\n this.counter.decrement(() => {\n this.isLoading = false;\n });\n }\n};\n\n// src/controller/ctx/ctx.ts\nimport { QXEvent as QXEvent2 } from \"qx-util\";\n\n// src/controller/ctx/ctx.state.ts\nvar CTXState = class {\n};\n\n// src/controller/ctx/ctx.ts\nvar CTX = class {\n /**\n * Creates an instance of CTX.\n * @author lxm\n * @date 2023-07-06 09:43:47\n * @param {CTX} [parent] 父级上下文环境对象\n */\n constructor(parent) {\n this.parent = parent;\n /**\n * CTX事件\n * @author lxm\n * @date 2023-04-26 07:54:46\n * @protected\n */\n this.evt = new QXEvent2();\n /**\n * 当前视图控制器集合(包含自身视图控制器,部件控制器,和下一层级的视图的控制器)\n * @author lxm\n * @date 2023-03-28 02:25:59\n * @protected\n */\n this.controllersMap = /* @__PURE__ */ new Map();\n this.state = new CTXState();\n }\n /**\n * 初始化上下文环境对象\n * @author lxm\n * @date 2023-03-27 01:54:18\n * @param {V} controller 当前视图的控制器\n * @return {*} {Promise<void>}\n */\n async init(controller) {\n this.view = controller;\n this.registerController(controller.model.name, controller);\n }\n /**\n * 销毁ctx\n * @author lxm\n * @date 2023-03-28 02:29:45\n */\n destroy() {\n this.controllersMap.clear();\n this.view = null;\n this.state = null;\n }\n /**\n * 修改上下文环境状态\n * @author lxm\n * @date 2023-03-27 01:50:38\n * @param {Required<CTXState>} nextState\n * @return {*} {Promise<void>}\n */\n async setState(nextState) {\n Object.assign(this.state, nextState);\n }\n /**\n * 开启视图加载\n * @author lxm\n * @date 2023-03-27 01:59:22\n */\n startLoading() {\n this.view.startLoading();\n }\n /**\n * 关闭视图加载\n * @author lxm\n * @date 2023-03-27 01:59:35\n */\n endLoading() {\n this.view.endLoading();\n }\n /**\n * 注册控制器到上下文里\n * @author lxm\n * @date 2023-03-28 02:26:46\n * @param {string} name\n * @param {IController} c\n */\n registerController(name, c) {\n this.controllersMap.set(name, c);\n this.evt.emit(\"onRegister\", name, c);\n }\n /**\n * 获取指定名称的控制器\n * @author lxm\n * @date 2023-04-25 10:14:42\n * @param {string} name\n * @param {boolean} [traceRoot=false] 是否跨越视图作用域,一路向根上找。\n * @return {*} {(IController | undefined)}\n */\n getController(name, traceRoot = false) {\n if (this.controllersMap.has(name)) {\n return this.controllersMap.get(name);\n }\n if (this.parent && traceRoot) {\n return this.parent.getController(name);\n }\n }\n /**\n * 获取顶级视图,\n * - 模态等打开方式是根ctx的视图\n * - 路由模式是首页下一级的视图,即第二级路由的视图\n * @author lxm\n * @date 2023-07-14 11:59:30\n * @return {*} {IViewController}\n */\n getTopView() {\n if (!this.parent) {\n return this.view;\n }\n if (this.view.modal.routeDepth === 2) {\n return this.view;\n }\n return this.parent.getTopView();\n }\n};\n\n// src/controller/utils/counter/mounted-counter.ts\nvar ActivityCounter = class extends Counter {\n constructor() {\n super(...arguments);\n this.reusable = false;\n /**\n * 登记情况,记录了登记的名称和是否已经出席\n *\n * @author lxm\n * @date 2022-09-21 18:09:27\n * @type {string[]}\n */\n this.registration = /* @__PURE__ */ new Map();\n }\n /**\n * 登记要等待的名称\n *\n * @author lxm\n * @date 2022-09-21 18:09:01\n * @param {string} name\n */\n enroll(name) {\n if (this.state === \"Unused\" && !this.registration.has(name)) {\n this.registration.set(name, false);\n this.increment();\n }\n }\n /**\n * 出席,只有登记了的名称才能出席,当所有登记的名称出席后计数器结束,触发回调\n *\n * @author lxm\n * @date 2022-09-21 18:09:09\n * @param {string} name\n */\n attend(name) {\n if (this.registration.has(name) && this.registration.get(name) === false) {\n this.registration.set(name, true);\n this.decrement();\n }\n }\n};\n\n// src/controller/utils/button-state/ui-action-button.state.ts\nvar UIActionButtonState = class {\n constructor(name, appId, uiActionId) {\n this.disabled = false;\n this.visible = true;\n this.loading = false;\n /**\n * 是否有权限\n */\n this.permitted = true;\n /**\n * 没权限时是否隐藏\n */\n this.noPermissionHidden = true;\n /**\n * 有权限时且没数据时,是否禁用\n */\n this.noDataDisabled = false;\n /**\n * 是否初始化\n */\n this.isInit = false;\n this.name = name;\n this.uiActionId = uiActionId;\n this.appId = appId;\n }\n /**\n * 初始化,没有界面行为id就是普通的buttonState\n * @author lxm\n * @date 2023-05-10 02:16:22\n * @protected\n * @return {*}\n */\n async init() {\n if (!this.uiActionId) {\n this.isInit = true;\n return;\n }\n const uiAction = await getUIActionById(this.uiActionId);\n [, this.appDeName] = this.uiActionId.split(\"@\");\n if (!uiAction) {\n return;\n }\n const {\n dataAccessAction,\n noPrivDisplayMode,\n actionTarget,\n uiactionMode,\n uiactionTag\n } = uiAction;\n this.dataAccessAction = dataAccessAction;\n if (noPrivDisplayMode === 1) {\n this.noPermissionHidden = false;\n } else if (noPrivDisplayMode === 6) {\n this.visible = false;\n }\n if (actionTarget && actionTarget !== \"NONE\" || uiactionMode === \"SYS\" && [\n \"Save\",\n \"SaveAndExit\",\n \"SaveAndNew\",\n \"Edit\",\n \"Remove\",\n \"RemoveAndExit\"\n ].includes(uiactionTag)) {\n this.noDataDisabled = true;\n }\n this.isInit = true;\n }\n /**\n * 计算按钮权限\n * @author lxm\n * @date 2023-05-11 07:46:09\n * @protected\n * @param {IData} [data] 数据\n * @param {string} [appDeId] 数据对应的实体id\n * @return {*}\n */\n async calcPermission(data, appDeId) {\n if (!this.dataAccessAction) {\n return;\n }\n const app = await ibiz.hub.getApp(this.appId);\n if (this.appDeName && appDeId && !appDeId.includes(this.appDeName)) {\n ibiz.log.warn(\n \"\".concat(this.uiActionId, \"\\u754C\\u9762\\u884C\\u4E3A\\u7684\\u5B9E\\u4F53\").concat(this.appDeName, \"\\u548C\\u6570\\u636E\\u7684\\u5B9E\\u4F53\").concat(appDeId, \"\\u4E0D\\u4E00\\u81F4\")\n );\n }\n this.permitted = await app.authority.calcByDataAccessAction(\n this.dataAccessAction,\n data,\n appDeId\n );\n }\n async update(data, appDeId) {\n if (!this.isInit) {\n await this.init();\n }\n await this.calcPermission(data, appDeId);\n if (!this.permitted) {\n this.disabled = true;\n this.visible = !this.noPermissionHidden;\n } else {\n this.visible = true;\n this.disabled = this.noDataDisabled && !data;\n }\n }\n};\n\n// src/controller/utils/button-state/button-container.state.ts\nvar ButtonContainerState = class {\n constructor() {\n Object.defineProperty(this, \"children\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"visible\", {\n enumerable: true,\n configurable: true,\n get: () => {\n if (this.children.length === 0) {\n return false;\n }\n return !!this.children.find((child) => child.visible);\n }\n });\n }\n addState(name, state) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: state\n });\n this.children.push(state);\n }\n setLoading(name) {\n this.children.forEach((child) => {\n if (child.setLoading) {\n child.setLoading(name);\n } else {\n child.loading = !name ? false : child.name === name;\n }\n });\n }\n async update(data, appDeId) {\n await Promise.all(\n this.children.map((child) => {\n return child.update(data, appDeId);\n })\n );\n }\n};\n\n// src/controller/utils/event/qx-event-ex.ts\nimport { clearAll, QXEvent as QXEvent3 } from \"qx-util\";\nvar QXEventEx = class extends QXEvent3 {\n constructor() {\n super(...arguments);\n this.anyEventFns = [];\n }\n /**\n * 监听任意事件,返回值必须是数组,用来返回单次或多次的正常回调的结果。\n * 该返回值数组会在正常事件触发的时候展开合并入正常事件的结果里,模拟多次监听的常规返回。\n * @author lxm\n * @date 2023-03-23 09:50:33\n * @param {(...args: any[]) => Promise<any[]>} fn\n */\n onAll(fn) {\n if (!this.anyEventFns.includes(fn)) {\n this.anyEventFns.push(fn);\n }\n }\n emit(name, ...args) {\n super.emit(name, ...args);\n this.anyEventFns.forEach((fn) => {\n fn(name, ...args);\n });\n }\n async asyncEmit(name, ...args) {\n const resultPromise1 = super.asyncEmit(name, ...args);\n const all = this.anyEventFns.map((fn) => fn(name, ...args));\n const resultPromise2 = Promise.all(all);\n const resultArr1 = await resultPromise1;\n const resultArr2 = await resultPromise2;\n return resultArr1.concat(...resultArr2);\n }\n reset() {\n super.reset();\n clearAll(this.anyEventFns);\n }\n};\n\n// src/controller/utils/event/controller-event.ts\nvar ControllerEvent = class {\n /**\n * Creates an instance of ControllerEvent.\n * @author lxm\n * @date 2023-04-25 09:30:28\n * @param {() => Omit<EventBase, 'eventName'>} getBaseArgs 提供当前控制器环境内的通用的事件参数\n */\n constructor(getBaseArgs) {\n this.getBaseArgs = getBaseArgs;\n /**\n * 事件对象\n *\n * @author lxm\n * @date 2022-08-30 14:08:40\n */\n this.evt = new QXEventEx();\n }\n /**\n * 发送事件,并等待所有监听器执行完毕\n * @author lxm\n * @date 2023-03-30 06:49:12\n * @template K\n * @param name 事件名称\n * @param args 事件参数\n * @return {*} {Promise<void>}\n */\n async emit(name, args) {\n await this.evt.asyncEmit(name, {\n ...this.getBaseArgs(),\n eventName: name,\n // 合并抛出事件时候的输入的参数\n ...args || {}\n });\n }\n /**\n * 订阅指定事件\n * @author lxm\n * @date 2023-03-30 06:46:59\n * @param name 事件名\n * @param fn 事件回调\n */\n on(name, fn) {\n this.evt.on(name, fn);\n }\n /**\n * 订阅任意事件\n * @author lxm\n * @date 2023-03-30 06:48:28\n * @param fn 事件回调\n */\n onAll(fn) {\n this.evt.onAll(fn);\n }\n /**\n * 销毁方法,清空\n *\n * @author lxm\n * @date 2022-08-30 17:08:41\n */\n destroy() {\n this.getBaseArgs = void 0;\n this.evt.reset();\n }\n};\n\n// src/controller/utils/util/util.ts\nimport { isNil as isNil10 } from \"ramda\";\nfunction isValueChange(value, value2) {\n if ((isNil10(value) || value === \"\") && (isNil10(value2) || value2 === \"\")) {\n return false;\n }\n return value !== value2;\n}\nfunction getOriginData(data) {\n let singleData = Array.isArray(data) ? data[0] : data;\n if (singleData && singleData instanceof ControlVO) {\n singleData = singleData.getOrigin();\n }\n return singleData;\n}\n\n// src/controller/utils/value-rule/value-rule.ts\nimport { RuntimeError as RuntimeError30 } from \"@ibiz-template/core\";\nimport { isNilOrEmpty as isNilOrEmpty6 } from \"qx-util\";\nfunction generateRules(itemVRs, name, valueItemName) {\n const rules = [];\n itemVRs.forEach((item) => {\n const { valueRuleType } = item;\n const sysRule = item.sysValueRule;\n const deRule = item.defvalueRule;\n if (valueRuleType === \"SYSVALUERULE\" && sysRule) {\n if (sysRule.ruleType === \"REG\") {\n rules.push({\n pattern: new RegExp(sysRule.regExCode),\n message: sysRule.ruleInfo,\n trigger: \"change blur\"\n });\n } else if (sysRule.ruleType === \"SCRIPT\") {\n rules.push({\n validator: (rule, value, callback, source) => {\n if (!value) {\n return true;\n }\n try {\n ScriptFactory.execScriptFn(\n { rule, value, callback, source },\n sysRule.scriptCode\n );\n } catch (error) {\n console.error(error);\n return false;\n }\n return true;\n },\n trigger: \"change blur\"\n });\n }\n } else if (valueRuleType === \"DEFVALUERULE\" && deRule) {\n const valueName = valueItemName || name;\n rules.push({\n validator: (rule, value, callback, source) => {\n if (isNilOrEmpty6(source[valueName])) {\n return true;\n }\n const { isPast, infoMessage } = verifyDeRules(\n valueName,\n source,\n deRule.groupCond\n );\n if (!isPast) {\n callback(new RuntimeError30(infoMessage || deRule.ruleInfo));\n }\n return true;\n },\n trigger: \"change blur\"\n });\n }\n });\n return rules;\n}\n\n// src/controller/common/base.controller.ts\nvar SELF_KEY = \"__self\";\nvar BaseController = class {\n /**\n * Creates an instance of BaseController.\n * @author lxm\n * @date 2023-04-26 06:46:21\n * @param {CTX} ctx 跨组件上下文环境,内部机制不暴露\n */\n constructor(model, context, params, ctx) {\n this.model = model;\n this.context = context;\n this.params = params;\n this.ctx = ctx;\n this.state = {};\n /**\n * 控制器名称,作为检索控制器的唯一标识\n * @author lxm\n * @date 2023-04-26 08:22:30\n * @type {string}\n */\n this.name = \"\";\n /**\n * 事件触发器\n * @author lxm\n * @date 2023-04-25 09:36:31\n * @type {ControllerEvent}\n */\n this.evt = new ControllerEvent(\n this.getEventArgs.bind(this)\n );\n /**\n * 计算父子加载顺序的计数器\n * @author lxm\n * @date 2023-04-26 06:14:22\n * @type {ActivityCounter}\n */\n this.mountCounter = new ActivityCounter(this.mounted.bind(this));\n /**\n * 子组件的名称,会监听指定子组件的生命周期,影响自身的声明周期。\n * @author lxm\n * @date 2023-04-26 08:10:57\n * @type {string[]}\n */\n this.childNames = [];\n this.name = model.name || model.id;\n this.initState();\n }\n /**\n * 中间层的基类才会使用,用于在内部使用自身的事件,事件类型不是泛型用evt就能正确推导出来。\n * @author lxm\n * @date 2023-05-18 02:48:57\n * @readonly\n * @protected\n */\n get _evt() {\n return this.evt;\n }\n /**\n * 初始化state的属性放,一般情况下只需要把对应的默认值直接赋值给state\n * 如果需要构造特殊class类型的state,可以重写该方法时,\n * 一开就new一个state替换当前的state,然后调用super初始化默认值\n * @author lxm\n * @date 2023-05-18 02:57:00\n * @protected\n */\n initState() {\n this.state.isCreated = false;\n this.state.isMounted = false;\n }\n /**\n * 获取事件的基础参数\n * @author lxm\n * @date 2023-04-25 11:03:44\n * @return {*} {Omit<EventBase, 'eventName'>}\n */\n getEventArgs() {\n return {\n context: this.context,\n params: this.params,\n data: [],\n targetName: this.model.name,\n view: this.ctx.view\n };\n }\n /**\n * 生命周期-创建完成,不推荐子类实现\n * @author lxm\n * @date 2023-04-25 11:08:54\n */\n async created() {\n this.mountCounter.enroll(SELF_KEY);\n await this.onCreated();\n this.state.isCreated = true;\n this.force(() => {\n this.mountSelf();\n });\n ibiz.log.debug(\"\".concat(this.constructor.name, \":\").concat(this.name, \" onCreated\"));\n this._evt.emit(\"onCreated\", void 0);\n }\n /**\n * 生命周期-创建完成,实际执行逻辑,子类重写用这个\n * @author lxm\n * @date 2023-04-25 11:12:02\n */\n async onCreated() {\n this.ctx.evt.on(\"onForecast\", (name) => {\n if (this.childNames.includes(name)) {\n this.mountCounter.enroll(name);\n }\n });\n this.ctx.evt.on(\"onRegister\", (name, c) => {\n if (this.childNames.includes(name)) {\n c.evt.on(\"onMounted\", () => {\n this.mountCounter.attend(name);\n });\n }\n });\n }\n /**\n * 自身挂载方法,默认是设置自身已经挂载的状态,用于计数器计算。\n * 异步方法,可以把异步初始化放这里,执行完后调基类的mountSelf,mounted声明周期就可以在异步之后触发\n * @author lxm\n * @date 2023-04-27 03:34:35\n */\n async mountSelf() {\n const isSelfMounted = this.mountCounter.registration.get(SELF_KEY);\n if (!isSelfMounted) {\n this.mountCounter.attend(SELF_KEY);\n }\n }\n /**\n * 生命周期-加载完成,不推荐子类实现\n * 外部不允许调用,只能被mountCounter触发,保证mounted时机正确,外部调用mountSelf\n *\n * @author lxm\n * @date 2023-04-25 11:08:54\n */\n async mounted() {\n await this.onMounted();\n this.state.isMounted = true;\n ibiz.log.debug(\"\".concat(this.constructor.name, \":\").concat(this.name, \" onMounted\"));\n this._evt.emit(\"onMounted\", void 0);\n }\n /**\n * 生命周期-加载完成,实际执行逻辑,子类重写用这个\n * 放置等自身后需要等待的子组件都加载完成后才会执行的逻辑。\n * @author lxm\n * @date 2023-04-25 11:12:02\n */\n async onMounted() {\n }\n /**\n * 生命周期-销毁完成,不推荐子类实现\n * @author lxm\n * @date 2023-04-25 11:08:54\n */\n async destroyed() {\n await this.onDestroyed();\n ibiz.log.debug(\"\".concat(this.constructor.name, \":\").concat(this.name, \" onDestroyed\"));\n this._evt.emit(\"onDestroyed\", void 0);\n this.evt.destroy();\n }\n /**\n * 生命周期-销毁完成,实际执行逻辑,子类重写用这个\n * @author lxm\n * @date 2023-04-25 11:12:02\n */\n async onDestroyed() {\n }\n /**\n * 强制更新视图(框架级)\n *\n * @author chitanda\n * @param {() => void} [callback] 更新之后,组件渲染完成后的回调\n * @date 2022-07-24 14:07:38\n */\n force(_callback) {\n }\n /**\n * 获取指定名称的控制器\n * @author lxm\n * @date 2023-04-25 10:14:42\n * @param {string} name\n * @param {boolean} [traceRoot=false] 是否跨越视图作用域,一路向根上找。\n * @return {*} {(BaseController | undefined)}\n */\n getController(name, traceRoot = false) {\n return this.ctx.getController(name, traceRoot);\n }\n getTopView() {\n return this.ctx.getTopView();\n }\n /**\n * 当前视图上下文内有新的控制产生时触发回调。\n * @author lxm\n * @date 2023-04-26 07:59:41\n * @param {(name: string, c: IController) => void} cb\n */\n listenNewController(cb) {\n this.ctx.evt.on(\"onRegister\", cb);\n }\n};\n\n// src/controller/common/view/view.controller.ts\nvar ViewController = class extends BaseController {\n /**\n * Creates an instance of ViewController.\n * @author lxm\n * @date 2023-04-20 02:05:33\n * @param {T} model 视图模型\n * @param {IContext} context 上下文\n * @param {IParams} [params] 视图参数\n * @param {CTX} [ctx]\n */\n constructor(model, context, params, ctx) {\n const _model = ibiz.util.layoutPanel.fill(model);\n super(_model, IBizContext2.create({}, context), params || {}, new CTX(ctx));\n this.modal = new Modal({});\n this.providers = {};\n this.engines = [];\n this.slotProps = {};\n this.counters = {};\n /**\n * 视图loading状态控制器\n *\n * @author lxm\n * @date 2022-09-19 14:09:12\n */\n this.viewLoading = new LoadingState();\n /**\n * 视图是否已经关闭\n *\n * @author chitanda\n * @date 2023-07-12 22:07:52\n * @protected\n * @type {boolean}\n */\n this.isCloseView = false;\n this._isActive = true;\n if (ctx) {\n ctx.registerController(this.model.name, this);\n }\n this.ctx.init(this);\n this.initEngines();\n }\n get _evt() {\n return this.evt;\n }\n /**\n * 上层视图控制器\n * @author lxm\n * @date 2023-07-06 09:48:16\n * @readonly\n * @type {(IViewController | undefined)}\n */\n get parentView() {\n var _a;\n return (_a = this.ctx.parent) == null ? void 0 : _a.view;\n }\n get isActive() {\n return this._isActive;\n }\n /**\n * 视图重新激活\n *\n * @author chitanda\n * @date 2023-07-12 17:07:55\n */\n onActivated() {\n this._isActive = true;\n ibiz.log.debug(\"\\u89C6\\u56FE[\".concat(this.model.name, \"](\").concat(this.model.id, \")\\u6FC0\\u6D3B\"));\n }\n /**\n * 视图暂时停用\n *\n * @author chitanda\n * @date 2023-07-12 17:07:06\n */\n onDeactivated() {\n this._isActive = false;\n ibiz.log.debug(\"\\u89C6\\u56FE[\".concat(this.model.name, \"](\").concat(this.model.id, \")\\u6682\\u505C\"));\n }\n /**\n * 初始化引擎\n * @author lxm\n * @date 2023-05-23 06:43:53\n * @protected\n */\n initEngines() {\n const engineModels = getViewEngines(this.model);\n if (engineModels.length) {\n engineModels.forEach((engine) => {\n const ins = ibiz.engine.getEngine(engine, this);\n if (ins) {\n this.engines.push(ins);\n }\n });\n } else {\n const ins = ibiz.engine.getEngine(\n { engineCat: \"VIEW\", engineType: this.model.viewType },\n this\n );\n if (ins) {\n this.engines.push(ins);\n }\n }\n }\n /**\n * 初始化计数器\n * @return {*}\n * @author: zhujiamin\n * @Date: 2023-07-10 14:53:53\n */\n async initCounters() {\n const viewLayoutPanel = this.model.viewLayoutPanel;\n const { appCounterRefs } = viewLayoutPanel;\n if (appCounterRefs && appCounterRefs.length > 0) {\n try {\n await Promise.all(\n appCounterRefs.map(async (counterRef) => {\n const counter = await CounterService.getCounterByRef(\n counterRef,\n this.context\n );\n this.counters[counterRef.id] = counter;\n })\n );\n } catch (error) {\n console.error(error);\n }\n }\n }\n initState() {\n super.initState();\n this.state.isLoading = false;\n this.state.caption = this.model.caption;\n this.state.srfactiveviewdata = null;\n }\n async onCreated() {\n await super.onCreated();\n this.modal.hooks.beforeDismiss.tapPromise(async (modalData) => {\n await this._evt.emit(\"onCloseView\", { ...modalData });\n });\n this._evt.emit(\"onViewInfoChange\", {\n caption: this.model.caption,\n title: this.model.title\n });\n this.handleContextParams();\n const viewLayoutPanel = this.model.viewLayoutPanel;\n this.childNames.push(viewLayoutPanel.name);\n const provider = await getControlProvider(viewLayoutPanel);\n this.providers[viewLayoutPanel.name] = provider;\n const controls = getControlsByView(this.model);\n if (controls) {\n await Promise.all(\n controls.map(async (ctrl) => {\n const ctrlProvider = await getControlProvider(ctrl);\n this.providers[ctrl.name || ctrl.id] = ctrlProvider;\n })\n );\n }\n await this.initCounters();\n const appViewLogics = getViewLogics(this.model);\n if (appViewLogics.length) {\n this.scheduler = ibiz.scheduler.createViewScheduler(appViewLogics);\n this.scheduler.defaultParamsCb = () => {\n return this.getEventArgs();\n };\n this.evt.onAll((_eventName, event) => {\n this.scheduler.triggerViewEvent(event);\n });\n }\n if (this.engines.length) {\n await Promise.all(this.engines.map((engine) => engine.onCreated()));\n }\n }\n async onMounted() {\n var _a;\n await super.onMounted();\n if (this.engines.length) {\n await Promise.all(this.engines.map((engine) => engine.onMounted()));\n }\n (_a = this.scheduler) == null ? void 0 : _a.startTimerTrigger();\n }\n async onDestroyed() {\n await super.onDestroyed();\n if (this.engines.length) {\n await Promise.all(this.engines.map((engine) => engine.onDestroyed()));\n }\n this.ctx.destroy();\n this.context.destroy();\n this.engines = [];\n if (this.scheduler) {\n this.scheduler.destroy();\n }\n ibiz.log.debug(\"\\u89C6\\u56FE[\".concat(this.model.name, \"](\").concat(this.model.id, \")\\u9500\\u6BC1\"));\n }\n /**\n * 处理上下文和导航参数相关的,如自定义导航参数的处理\n *\n * @author lxm\n * @date 2022-09-08 15:09:47\n * @protected\n */\n handleContextParams() {\n this.context.srfappid = this.model.appId;\n if (this.modal.mode === \"ROUTE\" /* ROUTE */) {\n this.context.srfsessionid = createUUID2();\n }\n const navContexts = this.model.appViewNavContexts;\n let context = {};\n if (notNilEmpty6(navContexts)) {\n context = convertNavData(navContexts, this.context, this.params);\n }\n Object.assign(this.context, context);\n const navParams = this.model.appViewNavParams;\n let params = {};\n if (notNilEmpty6(navParams)) {\n params = convertNavData(navParams, this.context, this.params);\n }\n Object.assign(this.params, params);\n if (this.state.isMounted) {\n this.callUIAction(\"Refresh\" /* REFRESH */);\n }\n }\n async call(key, args) {\n let result;\n for (const engine of this.engines) {\n result = await engine.call(key, args);\n if (result !== void 0) {\n break;\n }\n }\n return result;\n }\n async callUIAction(key, args) {\n const result = this.call(key, args);\n if (result === void 0) {\n throw new RuntimeError31(\"\\u6CA1\\u6709\\u5F15\\u64CE\\u652F\\u6301\\u9884\\u7F6E\\u754C\\u9762\\u884C\\u4E3A\".concat(key));\n }\n return result;\n }\n async closeView(modalData = { ok: false, data: [] }) {\n await this.modal.dismiss(modalData);\n }\n startLoading() {\n this.viewLoading.begin();\n this.state.isLoading = this.viewLoading.isLoading;\n }\n endLoading() {\n this.viewLoading.end();\n this.state.isLoading = this.viewLoading.isLoading;\n }\n /**\n * 设置布局面板控制器\n * @author lxm\n * @date 2023-08-01 03:28:04\n * @param {IViewLayoutPanelController} panel\n */\n setLayoutPanel(panel) {\n this.layoutPanel = panel;\n if (this.layoutPanel.state.isMounted) {\n this.mountCounter.attend(this.layoutPanel.model.name);\n } else {\n this.layoutPanel.evt.on(\"onMounted\", () => {\n this.mountCounter.attend(this.layoutPanel.model.name);\n });\n }\n }\n};\n\n// src/controller/common/view/mob-view.controller.ts\nvar MobViewController = class extends ViewController {\n};\n\n// src/controller/common/editor/editor.controller.ts\nvar EditorController = class {\n /**\n * Creates an instance of EditorController.\n * @author lxm\n * @date 2022-08-24 20:08:19\n * @param {T} model\n */\n constructor(model, parent) {\n /**\n * 占位\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 14:33:14\n */\n this.placeHolder = \"\";\n /**\n * 占位\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 14:33:14\n */\n this.editorParams = {};\n this.model = model;\n this.parent = parent;\n this.context = parent.context;\n this.params = parent.params;\n }\n /**\n * 是否只读\n *\n * @author lxm\n * @date 2022-12-12 21:12:51\n * @readonly\n */\n get readonly() {\n return !!this.model.readOnly;\n }\n /**\n * 子类不可覆盖或重写此方法,在 init 时需要重写的使用 onInit 方法。\n *\n * @author lxm\n * @date 2022-08-18 22:08:30\n * @returns {*} {Promise<void>}\n */\n async init() {\n await this.onInit();\n }\n async onInit() {\n if (this.model.placeHolder) {\n this.placeHolder = this.model.placeHolder;\n }\n if (this.model.editorParams) {\n Object.keys(this.model.editorParams).forEach((key) => {\n this.editorParams[key.toLowerCase()] = this.model.editorParams[key];\n });\n }\n }\n /**\n * 公共参数处理,计算上下文和视图参数\n *\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 15:44:14\n */\n handlePublicParams(data, context, params) {\n const { navigateContexts, navigateParams } = this.model;\n let selfContext = {};\n if (navigateContexts && data) {\n selfContext = convertNavData(navigateContexts, context, params, data);\n }\n const _context = Object.assign(context.clone(), selfContext);\n let selfParams = {};\n if (navigateParams && data) {\n selfParams = convertNavData(navigateParams, context, params, data);\n }\n const _params = { ...params, ...selfParams };\n return { context: _context, params: _params };\n }\n /**\n * 字符串转对象、数组对象\n *\n * @author chitanda\n * @date 2023-08-02 17:08:03\n * @param {string} value\n * @return {*} {(IData | IData[] | undefined)}\n */\n toObj(value) {\n if (!value) {\n return void 0;\n }\n const func = new Function(\"return (\".concat(value, \");\"));\n return func();\n }\n /**\n * 字符串布尔转布尔类型\n *\n * @author chitanda\n * @date 2023-08-02 17:08:34\n * @param {string} value\n * @return {*} {boolean}\n */\n toBoolean(value) {\n return Object.is(\"true\", value);\n }\n};\n\n// src/controller/common/editor/code-list-editor.controller.ts\nimport { RuntimeModelError as RuntimeModelError32 } from \"@ibiz-template/core\";\nvar CodeListEditorController = class extends EditorController {\n /**\n * 加载代码表数据\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 15:46:27\n */\n async loadCodeList(data) {\n const { context, params } = this.handlePublicParams(\n data,\n this.context,\n this.params\n );\n if (this.model.appCodeListId) {\n const app = await ibiz.hub.getApp(this.context.srfappid);\n let dataItems = [];\n dataItems = await app.codeList.get(\n this.model.appCodeListId,\n context,\n params\n );\n return dataItems;\n }\n throw new RuntimeModelError32(this.model, \"\\u8BF7\\u914D\\u7F6E\\u4EE3\\u7801\\u8868\");\n }\n};\n\n// src/controller/common/control/control.controller.ts\nvar ControlController = class extends BaseController {\n /**\n * Creates an instance of ControlController.\n *\n * @author chitanda\n * @date 2022-07-24 17:07:58\n * @param {T} model\n * @param {IContext} context\n * @param {IParams} [params={}]\n */\n constructor(model, context, params, ctx) {\n super(model, context, params, ctx);\n /**\n * 子部件适配器\n * @author lxm\n * @date 2023-07-19 04:14:50\n * @type {{ [key: string]: IControlProvider }}\n */\n this.providers = {};\n this.registerToCtx();\n const panelModel = ibiz.util.layoutPanel.get(\n \"\".concat(model.controlType, \"_DEFAULT\")\n );\n if (panelModel) {\n this.controlPanel = panelModel;\n }\n }\n get _evt() {\n return this.evt;\n }\n get view() {\n return this.ctx.view;\n }\n /**\n * 往ctx里注册控制器\n * @author lxm\n * @date 2023-07-31 08:37:17\n * @protected\n */\n registerToCtx() {\n this.ctx.registerController(this.model.name, this);\n }\n /**\n * 获取部件通用的事件参数\n * @author lxm\n * @date 2023-03-26 11:42:21\n * @readonly\n */\n getEventArgs() {\n const result = super.getEventArgs();\n return {\n ...result,\n data: this.getData() || [],\n ctrl: this\n };\n }\n initState() {\n super.initState();\n this.state.isLoading = false;\n }\n async onCreated() {\n var _a;\n await super.onCreated();\n if (this.controlPanel) {\n this.childNames.push(this.controlPanel.name);\n const provider = await getControlProvider(this.controlPanel);\n this.providers[this.controlPanel.name] = provider;\n }\n if ((_a = this.model.controlLogics) == null ? void 0 : _a.length) {\n this.scheduler = ibiz.scheduler.createControlScheduler(\n this.model.controlLogics\n );\n this.scheduler.defaultParamsCb = () => {\n return this.getEventArgs();\n };\n }\n }\n async onDestroyed() {\n await super.onDestroyed();\n if (this.scheduler) {\n this.scheduler.destroy();\n }\n }\n /**\n * 获取部件类型\n * @author lxm\n * @date 2023-03-28 02:23:37\n * @return {*} {string}\n */\n getControlType() {\n return this.model.controlType;\n }\n /**\n * 获取部件数据,非数据部件没有数据\n * @author lxm\n * @date 2023-03-26 11:41:51\n * @return {*} {(IData[] | null)}\n */\n getData() {\n return null;\n }\n /**\n * 开始加载\n *\n * @author chitanda\n * @date 2022-09-21 15:09:18\n * @return {*} {Promise<void>}\n */\n async startLoading() {\n this.state.isLoading = true;\n this.ctx.startLoading();\n }\n /**\n * 加载完毕\n *\n * @author chitanda\n * @date 2022-09-21 15:09:31\n * @return {*} {Promise<void>}\n */\n async endLoading() {\n this.state.isLoading = false;\n this.ctx.endLoading();\n }\n /**\n * 处理数据能力方法通用参数,返回能力执行最终使用的参数\n * @author lxm\n * @date 2023-05-23 03:12:47\n * @protected\n * @param {IDataAbilityParams} [args]\n * @return {*}\n */\n handlerAbilityParams(args) {\n const context = this.context.clone();\n const params = { ...this.params };\n const data = (args == null ? void 0 : args.data) || this.getData() || [];\n return { context, params, data };\n }\n /**\n * 设置布局面板控制器\n * @author lxm\n * @date 2023-08-01 03:28:17\n * @param {IViewLayoutPanelController} panel\n */\n setLayoutPanel(panel) {\n this.layoutPanel = panel;\n if (this.layoutPanel.state.isMounted) {\n this.mountCounter.attend(this.layoutPanel.model.name);\n } else {\n this.layoutPanel.evt.on(\"onMounted\", () => {\n this.mountCounter.attend(this.layoutPanel.model.name);\n });\n }\n }\n};\n\n// src/controller/common/control/md-control.controller.ts\nimport { isElementSame, RuntimeError as RuntimeError32 } from \"@ibiz-template/core\";\nvar MDControlController = class extends ControlController {\n get _evt() {\n return this.evt;\n }\n initState() {\n super.initState();\n this.state.items = [];\n this.state.selectedData = [];\n this.state.searchParams = {};\n this.state.noSort = false;\n this.state.sortQuery = \"\";\n this.state.curPage = 1;\n this.state.size = 20;\n this.state.total = 0;\n this.state.isLoaded = false;\n this.state.singleSelect = true;\n this.state.mdctrlActiveMode = 0;\n this.state.groups = [];\n }\n /**\n * 设置排序\n *\n * @author lxm\n * @date 2022-09-28 13:09:44\n * @param {string} key 排序字段\n * @param {string} order 排序顺序\n */\n setSort(key, order) {\n this.state.sortQuery = \"\".concat(key, \",\").concat(order);\n }\n /**\n * 获取请求过滤参数(整合了视图参数,各种过滤条件,排序,分页)\n * @author lxm\n * @date 2023-05-23 03:20:40\n * @param {IParams} [extraParams] 额外视图参数,附加在最后\n * @return {*} {Promise<IParams>}\n */\n async getFetchParams(extraParams) {\n const { curPage, size, sortQuery, noSort } = this.state;\n const resultParams = {\n ...this.params\n };\n if (size) {\n resultParams.page = curPage - 1;\n resultParams.size = size;\n }\n if (!noSort && sortQuery) {\n resultParams.sort = sortQuery;\n }\n await this._evt.emit(\"onBeforeLoad\", void 0);\n Object.assign(resultParams, {\n ...this.state.searchParams\n });\n if (extraParams) {\n Object.assign(resultParams, extraParams);\n }\n return resultParams;\n }\n /**\n * 部件加载数据行为\n *\n * @author lxm\n * @date 2022-08-19 14:08:50\n */\n async load(args = {}) {\n await this.startLoading();\n try {\n const isInitialLoad = args.isInitialLoad === true;\n const isLoadMore = args.isLoadMore === true;\n if (isInitialLoad) {\n this.state.curPage = 1;\n } else if (isLoadMore) {\n this.state.curPage += 1;\n }\n const { context } = this.handlerAbilityParams(args);\n const params = await this.getFetchParams(args == null ? void 0 : args.params);\n const res = await this.service.fetch(context, params);\n if (typeof res.total === \"number\") {\n this.state.total = res.total;\n }\n if (isLoadMore) {\n this.state.items.push(...res.data);\n } else {\n this.state.items = res.data;\n }\n await this.afterLoad(args, res.data);\n this.state.isLoaded = true;\n await this._evt.emit(\"onLoadSuccess\", {\n isInitialLoad\n });\n } finally {\n await this.endLoading();\n }\n return this.state.items;\n }\n /**\n * 部件加载后处理\n *\n * @author chitanda\n * @date 2023-06-21 15:06:44\n * @param {MDCtrlLoadParams} args 本次请求参数\n * @param {IData[]} items 上游处理的数据(默认是后台数据)\n * @return {*} {Promise<IData[]>} 返回给后续处理的数据\n */\n async afterLoad(args, items) {\n return items;\n }\n /**\n * 部件刷新,走初始加载\n * @author lxm\n * @date 2023-05-23 03:42:41\n */\n async refresh() {\n await this.load({ isInitialLoad: false });\n }\n /**\n * 删除选中的数据\n *\n * @author lxm\n * @date 2022-09-06 19:09:48\n * @returns {*} {Promise<void>}\n */\n async remove(args) {\n const { context, params, data } = this.handlerAbilityParams(args);\n if (!(data == null ? void 0 : data.length)) {\n throw new RuntimeError32(\"\\u672A\\u9009\\u4E2D\\u6570\\u636E\");\n }\n const del = await ibiz.modal.confirm({\n title: \"\\u6570\\u636E\\u5220\\u9664\",\n desc: \"\\u786E\\u8BA4\\u5220\\u9664\\u6570\\u636E\\uFF1F\"\n });\n if (!del) {\n return;\n }\n await this.startLoading();\n try {\n const deName = calcDeCodeNameById(this.model.appDataEntityId);\n await Promise.allSettled(\n data.map(async (item) => {\n if (item.srfuf !== 0 /* CREATE */) {\n const tempContext = context.clone();\n tempContext[deName] = item.srfkey;\n await this.service.remove(tempContext, params);\n }\n this.afterRemove(data);\n })\n );\n ibiz.notification.success({\n desc: \"\\u6570\\u636E[\".concat(data.map((item) => item.srfmajortext).join(\"\\u3001\"), \"]\\u5220\\u9664\\u6210\\u529F!\")\n });\n this.refresh();\n } finally {\n await this.endLoading();\n }\n this.state.selectedData = [];\n await this._evt.emit(\"onRemoveSuccess\", void 0);\n }\n /**\n * 后台删除结束后界面删除逻辑\n *\n * @author lxm\n * @date 2022-09-06 19:09:10\n * @param {IData} data\n */\n afterRemove(data) {\n const index = this.state.items.findIndex(\n (item) => item.srfkey === data.srfkey\n );\n this.state.items.splice(index, 1);\n }\n /**\n * 获取多数据部件的选中数据集合\n *\n * @author lxm\n * @date 2022-08-30 18:08:00\n * @returns {*} {IData[]}\n */\n getData() {\n return this.state.selectedData || [];\n }\n setActive(item) {\n return this._evt.emit(\"onActive\", {\n data: [item]\n });\n }\n setSelection(selection) {\n const { selectedData } = this.state;\n if (!isElementSame(selectedData, selection)) {\n this.state.selectedData = selection;\n this._evt.emit(\"onSelectionChange\", {\n data: selection\n });\n }\n }\n /**\n * 行单击事件\n *\n * @author lxm\n * @date 2022-08-18 22:08:16\n * @param {IData} data 选中的单条数据\n */\n async onRowClick(data) {\n const { selectedData } = this.state;\n const filterArr = selectedData.filter((item) => item.srfkey !== data.srfkey);\n if (filterArr.length === selectedData.length) {\n this.setSelection(\n this.state.singleSelect ? [data] : selectedData.concat([data])\n );\n } else {\n this.setSelection(filterArr);\n }\n if (this.state.mdctrlActiveMode === 1) {\n await this.setActive(data);\n }\n }\n /**\n * 行双击事件\n *\n * @author lxm\n * @date 2022-08-18 22:08:16\n * @param {IData} data 选中的单条数据\n */\n async onDbRowClick(data) {\n if (this.state.mdctrlActiveMode === 2) {\n await this.setActive(data);\n }\n }\n /**\n * 数据导入\n *\n * @author lxm\n * @date 2022-11-08 15:11:54\n * @returns {*} {Promise<void>}\n */\n async importData() {\n }\n /**\n * 数据导出\n *\n * @param {MouseEvent} event 原生js点击事件\n * @returns {*} {Promise<void>}\n * @memberof MDControlController\n */\n async exportData(_args) {\n }\n};\nexport {\n ActivityCounter,\n AppCounter,\n AppDataEntity,\n AppFuncCommand,\n Application,\n AuthService,\n AuthorityService,\n BackendUIActionProvider,\n BaseController,\n ButtonContainerState,\n CONTROL_PROVIDER_PREFIX,\n CTX,\n CTXState,\n CodeListEditorController,\n CodeListService,\n ControlController,\n ControlService,\n ControlType,\n ControlVO,\n ControllerEvent,\n Counter,\n CounterService,\n DECache,\n DEDQCondUtil,\n DEService,\n DEServiceUtil,\n DeAuthorityService,\n DynamicCodeListCache,\n EDITOR_PROVIDER_PREFIX,\n EditorController,\n EngineFactory,\n FORMDETAIL_PROVIDER_PREFIX,\n FormNotifyState,\n FrontUIActionProvider,\n GRIDCOLUMN_PROVIDER_PREFIX,\n GridNotifyState,\n LayoutPanelUtil,\n LoadingState,\n MDControlController,\n MDControlService,\n MDViewEngine,\n MethodDto,\n MobViewController,\n Modal,\n OpenAppViewCommand,\n PANELITEM_PROVIDER_PREFIX,\n PORTLET_PROVIDER_PREFIX,\n PSDEDQCondEngine,\n PanelNotifyState,\n PluginStaticResource,\n QXEventEx,\n RegisterCenter,\n RemotePluginItem,\n ScriptFactory,\n ScriptFunction,\n SearchFilter,\n Srfuf,\n StudioControlEvents,\n StudioPanelEvents,\n StudioViewEvents,\n SysUIActionProvider,\n SysUIActionTag,\n TreeCodeListNodeData,\n TreeDataSetNodeData,\n TreeNodeData,\n TreeStaticNodeData,\n UIACTION_PROVIDER_PREFIX,\n UIActionButtonState,\n UIActionUtil,\n UIMapField,\n VIEW_PROVIDER_PREFIX,\n ViewController,\n ViewEngineBase,\n ViewMode,\n ViewType,\n WFWithdrawUIActionProvider,\n WorkFlowService,\n calcContentAlignStyle,\n calcDeCodeNameById,\n calcDynaClass,\n calcGridLayoutPos,\n calcLayoutHeightWidth,\n calcMainStateOPPrivsStrs,\n calcNavParams,\n calcResPath,\n calcRouteContext,\n compare,\n compareNumber,\n contains,\n convertNavData,\n convertNavDataByArray,\n convertNavDataByObject,\n convertObjectToNavParams,\n execDELogic,\n execDELogicAction,\n execDELogicById,\n execFieldLogics,\n execUILogic,\n filterFieldLogics,\n filterValueRules,\n findChildFormDetails,\n findDELogic,\n findEditItem,\n findFieldById,\n findModelChild,\n formatMultiData,\n generateRules,\n getAppViewRef,\n getChildNodeRSs,\n getControl,\n getControlProvider,\n getControlsByView,\n getDeACMode,\n getEditorProvider,\n getFormDetailProvider,\n getGridColumnProvider,\n getMatchResPath,\n getOriginData,\n getPanelItemProvider,\n getPortletProvider,\n getRootNode,\n getTreeNode,\n getUIActionById,\n getUIActionProvider,\n getViewEngines,\n getViewLogics,\n getViewProvider,\n getWFContext,\n getWFSubmitViewId,\n hasDeCodeName,\n install,\n installCommand,\n isValueChange,\n matchMainState,\n openRedirectView,\n parseUserParams,\n presetUIActionProvider,\n registerControlProvider,\n registerEditorProvider,\n registerFormDetailProvider,\n registerGridColumnProvider,\n registerPanelItemProvider,\n registerPortletProvider,\n registerUIActionProvider,\n registerViewProvider,\n strContain,\n testCond,\n toLocalOpenWFRedirectView,\n verifyDeRules,\n verifyFormGroupLogic,\n verifyPanelGroupLogic\n};\n"],"names":["layoutPos","valignSelf","halignSelf","result","Object","assign","display","expression","data","ScriptFactory","execScriptFn","singleRowReturn","layout","colXS","colXSOffset","colSM","colSMOffset","colMD","colMDOffset","colLG","colLGOffset","calcActualValues","span","offset","xs","sm","md","lg","width","height","widthMode","heightMode","concat","model","originParams","deName","navFilter","pickupDEFName","navContexts","navParams","context","params","derValue","resultContext","resultParams","deSrfkey","srfkey","toLowerCase","tempContext","convertNavData","tempParams","_appView","paths","sort","a","b","length","pathArr","obj","forEach","key","val","async","deDELogicId","dataEntityId","deLogic","appId","appDataEntity","ibiz","hub","getAppDataEntity","findDELogic","findDeLogic","srfappid","RuntimeError10","execDELogic","vrs","name","filter","vr","checkMode","belongName","deformItemName","degridEditItemName","parent","childDetails","detailType","deformTabPages","deformDetails","grid","codeName","_a","degridEditItems","find","item","itemVRs","valueItemName","rules","valueRuleType","sysRule","sysValueRule","deRule","defvalueRule","ruleType","push","pattern","RegExp","regExCode","message","ruleInfo","trigger","validator","rule","value","callback","source","scriptCode","error","console","valueName","isNilOrEmpty6","isPast","infoMessage","verifyDeRules","groupCond","RuntimeError30","view","_b","appViewRefs","viewLayoutPanel","id","tree","args","parentId","getRootNode","detreeNodeRSs","nodeRs","parentDETreeNodeId","searchMode","hasQuery","controls","appDEACModeId","entityId","appDEACModes","mode","provider","editorType","editorStyle","getProvider2","log","register","get","FORMDETAIL_PROVIDER_PREFIX","columnType","enableRowEdit","GRIDCOLUMN_PROVIDER_PREFIX","getProvider4","singleData","Array","isArray","ControlVO","getOrigin","itemType","predefinedType","getProvider5","rawItem","portletType","PORTLET_PROVIDER_PREFIX","detreeNodes","node","viewType","viewStyle","getProvider7","param09","srfprocessinstanceid","link","type","sequenceFlowView","sequenceFlowMobView","toUpperCase","env","isMob","submitViewRef","viewRef","refAppViewId","calcDeCodeNameById","isNotNil","ibiz2","window","util","GlobalUtil","AppHub","RegisterCenter","config","GlobalConfig","auth","AuthService","engine","EngineFactory","installCommand","presetUIActionProvider","scheduler","LogicSchedulerCenter","triggerFactory","logic","ItemDynaLogicTrigger","TimerTrigger","CustomTrigger","ViewEventTrigger","executorFactory","ScriptExecutor","AppDEUILogicExecutor","AppUILogicExecutor","value2","isNil10","userParams","navigateContexts","navigateParams","other","prototype","hasOwnProperty","call","param","indexOf","splitArr","split","CONTROL_PROVIDER_PREFIX","EDITOR_PROVIDER_PREFIX","PANELITEM_PROVIDER_PREFIX","VIEW_PROVIDER_PREFIX","verifyFormGroupLogic","logicType","isGroupLogic","children","defdlogics","RuntimeModelError2","groupOP","childLogic","notMode","isSingleLogic","testCond","defdname","condOP","ModelError","verifyPanelGroupLogic","isGroupLogic2","panelItemLogics","RuntimeModelError3","isSingleLogic2","dstModelField","condOp","ModelError2","cb","mod","__create","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","require_path_browserify","exports","module","assertPath","path2","TypeError","JSON","stringify","normalizeStringPosix","allowAboveRoot","code","res","lastSegmentLength","lastSlash","dots","i","charCodeAt","lastSlashIndex","lastIndexOf","slice","posix","resolve","cwd","resolvedPath","resolvedAbsolute","arguments","process","normalize","isAbsolute","trailingSeparator","join","joined","arg","relative","from","to","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","out","_makeLong","dirname","hasRoot","end","matchedSlash","basename","ext","start","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","format","pathObject","sep","dir","root","base","_format","parse","ret","delimiter","win32","constructor","this","enableDataInfoBar","editShowMode","editSaveMode","appMenu","enableEcho","codeList","timeout","providers","Map","newProvider","set","unRegister","delete","func","naviDatas","origins","isEmpty","toString","convertNavDataByArray","convertNavDataByObject","naviData","notNilEmpty","rawValue","findOrigin","isNilOrEmpty","reg2","test","valueKey","substring","convertObjectToNavParams","formatMultiData","dataArr","naviArr","data1","naviParam","map","findModelChild","models","matchMainState","mainStateAppDEFieldIds","demainStates","values","field","stateValue","state2Value","state3Value","stateValues","calcMainStateOPPrivsStrs","mainState","app","getApp","demainStateOPPrivs","opprivAllowMode","mainStateOPPrivIds","opprivs","deopprivs","includes","pop","appDELogicId","entity","appDELogics","filterFieldLogics","resultIds","appDEFields","computeAppDEFLogicId","onChangeAppDEFLogicId","defaultValueAppDEFLogicId","findFieldById","fieldId","getUIActionById","getUIAction","rootNode","getControlsByView","getViewLogics","viewLogics","appViewLogics","getViewEngines","appViewEngines","openRedirectView","appView","navContext","appViewNavContexts","navContextData","clone","appViewNavParams","navParamsData","appDataEntityId","curData","actionId","getDataAppDEActionId","service","deService","getService","loading","showRedirect","exec","ok","linkUrl","linkurl","dev","startsWith","Promise","newWindow","open","toLocalOpenWFRedirectView","hideRedirect","rdTag","rdView","defView","srfWf","srfwf","notNilEmpty2","wf","typeValue","typeFieldId","typeAppDEFieldId","isNilOrEmpty2","indexTypeAppDEFieldId","formTypeAppDEFieldId","calcDERdTag","rdTagItems","wfRdTag","deRdTag","allRefViews","redirectAppViewRefs","refView","realTitle","viewId","tag","title","RuntimeModelError","commands","execute","OpenAppViewCommand","TAG","openDERedirectView","queryStr","decodeURIComponent","qs","srfdename","RuntimeError","deCodeName","deName2DeCodeName","deRdViewCodeName","deRdView","getAppView","wfTag","processDefinitionKey","wfVersion","op","is","contains","compare","isNilOrEmpty3","notNilEmpty3","isNil","strContain","RuntimeError2","number1","Number","number2","isNaN","compareNumber","date1","Date","getTime","date2","val2","index","DefaultOptions","ScriptFunction","argKeys","options","formatCode","calcArgKeys","scriptFn","Function","keys","presetParams","Set","convertArgs","_params","mergeRight","document","selector","className","getElementsByClassName","scriptArgs","static","createScriptFn","condition","flag","condType","isGroupCondition","childRules","conds","array","operateTag","isReverse","len","temp","logicForEach","defname","isSimpleCondition","errorInfo","paramType","form","primaryModel","isNil2","isEmpty2","RuntimeError3","checkFieldSimpleRule","paramValue","keyCond","isValueRange2Condition","viewValue","minNumber","indexOfMin","maxNumber","indexOfMax","isNilOrEmpty4","checkFieldRegExRule","parseFloat","checkFieldValueRangeRule","minValue","includeMinValue","maxValue","includeMaxValue","isRegExCondition","isStringLengthCondition","minLength","maxLength","viewValueLength","checkFieldStringLengthRule","isSysValueRuleCondition","selfError","resultBoolean","checkFieldScriptRule","strReg","LayoutPanelUtil","cache","fill","viewModel","useDefaultLayout","calcLayoutTag","has","appCounterRefs","calcIndexViewLayoutTag","blankMode","mainMenuAlign","exTag","ControlType","ControlType2","ViewType","ViewType2","ViewMode","ViewMode2","SysUIActionTag","SysUIActionTag2","StudioViewEvents","onViewMounted","onViewDestroyed","StudioPanelEvents","onClick","onChange","onEnter","onLeave","StudioControlEvents","onBeforeLoad","onLoadSuccess","onLoadError","onBeforeLoadDraft","onLoadDraftSuccess","onLoadDraftError","onBeforeSave","onSaveSuccess","onSaveError","onBeforeRemove","onRemoveSuccess","onRemoveError","CLICK","Modal","opts","viewUsage","hooks","shouldDismiss","AsyncSeriesHook","beforeDismiss","_dismiss","routeDepth","dismiss","injectDismiss","allowClose","destroy","debug","clear","_OpenAppViewCommand","bind","appViewId","RuntimeError4","redirectView","openMode","noWaitRoute","openIndexViewTab","ModelError3","openModal","openPopover","event","openDrawer","openUserCustom","openView","modal","popover","drawer","custom","_AppFuncCommand","appFuncId","appFunc","getAppFunc","RuntimeError5","appFuncType","_context","openAppView","openHtmlPage","openPdAppFunc","executeJavaScript","ModelError4","url","htmlPageUrl","warn","AppFuncCommand","AppCounter","destroyed","IBizContext","evt","QXEvent","isDestroyed","setParams","action","getAppDEActionId","RuntimeModelError4","interval","load","clone2","destroyInterval","intervalTimer","setInterval","getSize","timer","clearInterval","emit","refresh","fn","immediate","on","notNilEmpty4","offChange","off","getCounter","reset","PSModelCondEngineBase","psModelGroupCondBase","createPSModelGroupCond","testSingleCond","strCondOp","objValue","objCondValue","nRet","err","getPSModelGroupCondBase","PSModelCondBase","getCondOp","setCondOp","PSModelSingleCondBase","arr","nCount","bOpStart","bParamStart","bValueStart","strText","setParam","setValueType","setValue","getValueType","strValueType","getValue","strValue","getParamType","strParamType","setParamType","getParam","strParam","PSModelGroupCondBase","_PSModelGroupCondBase","super","childCondList","bNotMode","bNotStart","bCondStart","setNotMode","list","RuntimeError6","child","isNotMode","getChildPSModelCondBases","PSDEDQGroupCond","PSDEDQSingleCond","_PSDEDQCondEngine","cond","isEmpty3","bAnd","bRet","childCond","valType","PARAMTYPE_WEBCONTEXT","PARAMTYPE_DATACONTEXT","createPSModelSingleCond","PSDEDQCondEngine","dataSet","groups","dedqgroupConditions","calcCond","items","condArr","dedqconditions","ModelError5","fieldName","condValue","WeakMap","DynamicCodeListCache","isPredefined","initPromise","ModelError6","convertData","valueAppDEFieldId","textAppDEFieldId","text","srfmajortext","freeze","size","res2","net","appDEDataSetId","RuntimeModelError5","resultItems","enableCache","cacheData2","expirationTime","promise","cacheTimeout","waitTime","isNil3","cacheData","isExistSrfKey","funcName","isNil4","isEmpty4","RuntimeError7","isExistSessionId","srfsessionid","DECache","cacheMap","forceAdd","getCacheByTag","forceUpdate","clone3","forceDelete","srfKey","add","isNil5","isEmpty5","createUUID","srftempdate","update","Error","createBatch","entities","updateBatch","deleteBatch","srfKeys","notRemoveKeys","checkData","getList","findIndex","generatePred","equals","where","reg","getMatchResPath","filterItems","requestPaths","str","path","match","every","calcResPath","replace","SearchFilter","page","sortField","sortMode","isNil6","isEmpty6","query","srfparentkey","srfparentdename","CodeListService","appModel","allCodeLists","getStatic","codeItems","formatStaticItems","codeItemValueNumber","setCodeList","getCodeList","isValueNumber","codeItem","_codeItem","color","dynamicCache","init","RuntimeError8","codeListType","getDynamicCodeList","CounterService","counterMap","counter2","counter","appCounter","RuntimeModelError6","WorkFlowService","commonBaseUrl","appContext","appData","srfsystemid","getBaseUrl","getActiveData","taskDefinitionKey","deKeyValue","post","activedata","request","method","responseType","taskId","methodName","wfStart","wfSubmit","wfReassign","wfAddStepBefore","wfSendBack","wfSendCopy","RuntimeError9","Srfuf","Srfuf2","AppDataEntity","_AppDataEntity","srfuf","_srfkey","enumerable","configurable","clone4","_data","keyAppField","keyAppDEFieldId","majorAppField","majorAppDEFieldId","major","defineProperties","properties","_entity","MethodDto","_MethodDto","dto","dtoMap","fields","appDEMethodDTOFields","isLocalMode","storageMode","isNilOrEmpty5","getFieldDto","refAppDataEntityId","local","j","ModelError7","all","datum","sets","entityData","methodDto","appDEMethodDTOs","refAppDEMethodDTOId","Method","input","appDEMethodDTOId","appDEMethodInput","output","appDEMethodReturn","actionType","requestMethod","put","RuntimeModelError7","calcPath","curPath","codeName2","createEntity","DELogicLinkCond","DELogicLinkSingleCond","srcParam","srcLogicParamId","dstParam","dstLogicParamId","dstField","dstFieldName","ctx","dst","RuntimeModelError8","src","ModelError8","DELogicLinkGroupCond","_DELogicLinkGroupCond","bol","RuntimeModelError9","judge","DELogicNode","links","srcNode","dstNode","delogicLinkGroupCond","defaultLink","DEActionNode","dstAppDataEntityId","dstAppDEActionId","dstDELogicParamId","retDELogicParamId","RuntimeModelError10","requestData","viewParams","StartNode","_ctx","EndNode","isEndNode","returnParamId","returnType","ModelError9","handleSrcVal","srcValParams","srcDELogicParamId","srcValueType","srcFieldName","srcValue","clone5","ModelError10","srcField","PrepareParamNode","nodeParams","delogicNodeParams","nodeParam","paramAction","setParamValue","resetParam","copyParam","bindParam","renewParam","appendParam","sortParam","ModelError11","srcVal","clone6","dstIndex","srcIndex","srcSize","insertIndex","_srcIndex","_srcSize","splice","dstSortDir","DataSetNode","dstAppDEDataSetId","BindParamNode","RuntimeModelError11","ResetParamNode","RuntimeModelError12","RenewParamNode","RuntimeModelError13","CopyParamNode","RuntimeModelError14","clone7","SortParamNode","RuntimeModelError15","AppendParamNode","RuntimeModelError16","ThrowExceptionNode","errorCode","HttpError","response","status","statusText","DELogic","nodes","delogicNodes","RuntimeModelError17","logicNodeType","logicNode","ModelError13","delogicParams","calc","m","default","appGlobalParam","clone8","entityListParam","entityPageParam","ModelError12","entityParam","lastReturnParam","appContextParam","simpleListParam","simpleParam","cloneParam","envParam","fileListParam","fileParam","filterParam","lastParam","originEntity","sessionParam","renew","thenId","initLogicParams","defaultParamName","deLogicParams","startDELogicNodeId","deepExec","parallelOutput","deLogicMap","deDELogic","execDELogicAction","HttpResponse2","HttpError2","execFieldLogics","fieldLogics","DEActionMethod","RuntimeModelError18","handle","actionMode","getDraft","remove","createTemp","getTemp","getDraftTemp","removeTemp","updateTemp","needResourceKey","s","HttpResponse3","FetchMethod","items2","searchLocal","HttpResponse4","dataSetType","fetchCodeListSet","ModelError14","ascSort","nullData","undefinedData","emptyData","equals2","isEmpty7","pred","where2","nullPred","undefinedPred","emptyPred","queryParamKeys","quickSearchAppDEFieldIds","selectLocal","isNil7","descSort","clone9","appCodeListId","RuntimeModelError19","DEService","methodMap","file","exportData","dataExport","fetchAction","resPath","exportUrl","getMethod","appDEMethods","methodType","ModelError15","params2","RuntimeError11","_ControlVO","isNil8","$origin","srfdeid","srfdecodename","srfkeyfile","srfmajorfile","$dataUIMap","mapField","dataKey","linkProperty","isOriginField","uiKey","writable","setOrigin","ControlService","dataUIMap","initUIDataMap","handleResponse","toUIData","DeAuthorityService","fetchControlAction","appDEMethodId","getAction","getControlAction","getDraftAction","getDraftControlAction","removeAction","removeControlAction","createAction","createControlAction","updateAction","updateControlAction","_dataExport","RuntimeError12","headers","total","entityModel","dataAccessAction","srfopprivs","calcByDeMainState","enableDEMainState","AuthorityService","constructorCache","resCodes","enablePermission","RuntimeError13","unires","enablepermissionvalid","calcByResCode","resCode","appDeId","opPriv","getOPPriv","mapSysUniResCode","calcByDataAccessAction","loginname","password","TreeNodeData","parentNodeData","leaf","nodeId","DEServiceUtil","deData","nodeValue","parentValueLevel","isRequestNeed","isNil9","RuntimeError14","clearTempCache","Application","Net","baseURL","baseUrl","authority","loadAppModelStyle","remoteModelUrl","then","dom","createElement","setAttribute","responseURL","URL","pathname","innerHTML","head","appendChild","catch","appFuncs","appDEUIActions","deUILogicId","appDEUILogics","convert","appMap","apps","view2appMap","views","dataEntities","viewConfigs","viewConfig","RuntimeError15","defaultAppIndexViewName","calcAppViewId","ids","registerModelLoaderProvider","modelLoaderProvider","registerApp","registerAppView","registerAppDataEntity","setAppView","hasAppView","createApp","RuntimeError16","getAppDataEntityByCodeName","viewEngines","getEngine","engineType","engineCat","ViewEngineBase","initViewState","toolbar","getController","leftToolbar","rightToolbar","footerToolbar","layoutPanel","childNames","calcViewHeaderVisible","controller","panelItems","view_header","state","visible","calcViewFooterVisible","view_footer","_args","getData","_c","_d","showHeader","showCaptionBar","view_captionbar","lefttoolbar","righttoolbar","view_toolbar","showFooter","RuntimeError17","srfactiveviewdata","dataInfo","xdataControlName","searchForm","searchBar","xdataControl","onCreated","onMounted","openData","calcButtonState","searchParams","getSearchParams","view_searchform","formExists","keepAlive","expandSearchForm","noLoadDefault","loadDefault","toggleFilter","newData","importData","copy","triggerCustom","copyMode","RuntimeModelError20","srfcopymode","isInitialLoad","addParams","view_searchbar","searchformContainer","getProvider","getControlProvider","controlType","controlStyle","UIACTION_PROVIDER_PREFIX","registerUIActionProvider","getUIActionProvider","uiactionMode","RuntimeError18","UILogicLinkCond","UILogicLinkSingleCond","RuntimeModelError21","ModelError16","UILogicLinkGroupCond","_UILogicLinkGroupCond","deuilogicLinkConds","RuntimeModelError22","UILogicNode","deuilogicLinks","linkMode","deuilogicLinkGroupCond","ModelError17","DEActionNode2","dstDEUILogicParamId","retDEUILogicParamId","RuntimeModelError23","DEUIActionNode","dstAppDEUIActionId","parameters","RuntimeModelError24","actionData","UIActionUtil","execAndResolved","StartNode2","EndNode2","ModelError18","PrepareJSParamNode","deuilogicNodeParams","ModelError20","srcDEUILogicParamId","clone10","ModelError19","handleSrcVal2","ViewCtrlInvokeNode","invokeMethod","invokeCtrlId","invokeParamId","RuntimeModelError25","invokeParam","RuntimeError19","invokeCtrl","isFunction","UILogic","deuilogicNodes","RuntimeModelError26","ModelError22","deuilogicParams","activeContainerParam","ctrl","activeCtrlParam","ctrlParam","control","RuntimeError20","activeViewParam","applicationParam","ModelError21","navContextParam","navViewParamParam","routeViewSessionParam","viewNavDataParam","viewSessionParam","dstDEUILogicNodeId","startDEUILogicNodeId","uiLogicMap","execUILogic","deUILogic","getDEUILogic","RuntimeError21","uiLogic","RuntimeError22","closeView","callUIAction","UIActionProviderBase","reloadData","closeEditView","appDEUILogicId","uilogicAttachMode","RuntimeModelError27","isConfirm","returnError","_result","execAction","cancel","nextResult","doNextAction","nextContext","nextParams","enableConfirm","confirmMsg","confirm","nextActionId","nextId","resultData","actionTarget","originData","valueItem","paramItem","unshift","isMultiData","BackendUIActionProvider","actionResult","entityName","RuntimeModelError28","handleParams","frontPSAppView","frontAppViewId","srfactionparam","successMsg","success","isArray2","SysUIActionProvider","uIActionTag","uiactionTag","FrontUIActionProvider","frontProcessType","StringUtil","RuntimeModelError29","doOther","ModelError23","el","target","WFWithdrawUIActionProvider","_action","isCloseView","desc","frontUIActionProvider","backendUIActionProvider","sysUIActionProvider","wfWithdrawUIActionProvider","LogicExecutor","_executeParams","RuntimeError23","isRowReturn","convertScriptArgs","RuntimeError24","paramKeys","convertFun","executeParams","RuntimeModelError30","LogicScheduler","logics","triggers","executors","executor","createExecutor","createTrigger","bindExecutor","getExecuteParams","defaultParams","defaultParamsCb","mergeLeft","getMatchTriggers","matchParams","triggerAndExecute","triggerItemDynaLogic","itemName","triggerType","triggerItemVisible","triggerItemEnable","triggerItemBlank","startTimerTrigger","ControlLogicScheduler","ViewLogicScheduler","logicTrigger","triggerViewEvent","eventName","constructorMap","ModelError24","ModelError25","createViewScheduler","createControlScheduler","LogicTrigger","RuntimeError25","RuntimeError26","RuntimeError27","builtinAppUILogic","executeOpenDataAppUILogic","executeNewDataAppUILogic","appUILogic","rest","RuntimeError28","openViewRef","openDataAppView","RuntimeModelError31","notNilEmpty5","enableWizardAdd","enableBatchAdd","batchAddOnly","newDataAppView","newViewRef","getWizardNewViewRef","ModelError26","wizardAppView","newDataAppViews","selectData","indexType","findView","refMode","listenEventNames","names","eventNames","import_path_browserify","isNodeMode","except","__copyProps","__esModule","__toESM","FormNotifyState","mateUrl","styleElementMap","baseDir","pathStr","urls","styleUrl","reject","linkDom","onload","onerror","repo","FormNotifyState2","GridNotifyState","GridNotifyState2","PanelNotifyState","PanelNotifyState2","Counter","count","reusable","increment","decrement","callback2","RuntimeError29","LoadingState","isLoading","NOOP","begin","CTXState","CTX","QXEvent2","controllersMap","registerController","nextState","startLoading","endLoading","c","traceRoot","getTopView","ActivityCounter","registration","enroll","attend","QXEventEx","uiActionId","disabled","permitted","noPermissionHidden","noDataDisabled","isInit","uiAction","appDeName","noPrivDisplayMode","calcPermission","addState","setLoading","QXEvent3","anyEventFns","onAll","resultPromise1","asyncEmit","resultPromise2","resultArr1","resultArr2","clearAll","ControllerEvent","getBaseArgs","SELF_KEY","BaseController","getEventArgs","mountCounter","mounted","initState","_evt","isCreated","isMounted","targetName","force","mountSelf","onDestroyed","_callback","listenNewController","ViewController","IBizContext2","engines","slotProps","counters","viewLoading","_isActive","initEngines","parentView","isActive","onActivated","onDeactivated","engineModels","ins","counterRef","getCounterByRef","caption","tapPromise","modalData","handleContextParams","ctrlProvider","initCounters","_eventName","createUUID2","notNilEmpty6","RuntimeError31","setLayoutPanel","panel","EditorController","placeHolder","editorParams","readonly","readOnly","onInit","handlePublicParams","selfContext","selfParams","toObj","toBoolean","ControlController","dataItems","RuntimeModelError32","registerToCtx","panelModel","controlPanel","controlLogics","getControlType","handlerAbilityParams","selectedData","noSort","sortQuery","curPage","isLoaded","singleSelect","mdctrlActiveMode","setSort","order","extraParams","isLoadMore","getFetchParams","fetch","afterLoad","RuntimeError32","allSettled","afterRemove","notification","setActive","setSelection","selection","isElementSame","filterArr"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.system.min.js","sources":["index.esm.js"],"sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\nvar require_path_browserify = __commonJS({\n \"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\"(exports, module) {\n \"use strict\";\n function assertPath(path2) {\n if (typeof path2 !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path2));\n }\n }\n function normalizeStringPosix(path2, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path2.length; ++i) {\n if (i < path2.length)\n code = path2.charCodeAt(i);\n else if (code === 47)\n break;\n else\n code = 47;\n if (code === 47) {\n if (lastSlash === i - 1 || dots === 1) {\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += \"/..\";\n else\n res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += \"/\" + path2.slice(lastSlash + 1, i);\n else\n res = path2.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n }\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n }\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path2;\n if (i >= 0)\n path2 = arguments[i];\n else {\n if (cwd === void 0)\n cwd = process.cwd();\n path2 = cwd;\n }\n assertPath(path2);\n if (path2.length === 0) {\n continue;\n }\n resolvedPath = path2 + \"/\" + resolvedPath;\n resolvedAbsolute = path2.charCodeAt(0) === 47;\n }\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return \"/\" + resolvedPath;\n else\n return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path2) {\n assertPath(path2);\n if (path2.length === 0)\n return \".\";\n var isAbsolute = path2.charCodeAt(0) === 47;\n var trailingSeparator = path2.charCodeAt(path2.length - 1) === 47;\n path2 = normalizeStringPosix(path2, !isAbsolute);\n if (path2.length === 0 && !isAbsolute)\n path2 = \".\";\n if (path2.length > 0 && trailingSeparator)\n path2 += \"/\";\n if (isAbsolute)\n return \"/\" + path2;\n return path2;\n },\n isAbsolute: function isAbsolute(path2) {\n assertPath(path2);\n return path2.length > 0 && path2.charCodeAt(0) === 47;\n },\n join: function join() {\n if (arguments.length === 0)\n return \".\";\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === void 0)\n joined = arg;\n else\n joined += \"/\" + arg;\n }\n }\n if (joined === void 0)\n return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to)\n return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to)\n return \"\";\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47) {\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47) {\n lastCommonSep = i;\n } else if (i === 0) {\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47)\n lastCommonSep = i;\n }\n var out = \"\";\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47) {\n if (out.length === 0)\n out += \"..\";\n else\n out += \"/..\";\n }\n }\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47)\n ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path2) {\n return path2;\n },\n dirname: function dirname(path2) {\n assertPath(path2);\n if (path2.length === 0)\n return \".\";\n var code = path2.charCodeAt(0);\n var hasRoot = code === 47;\n var end = -1;\n var matchedSlash = true;\n for (var i = path2.length - 1; i >= 1; --i) {\n code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n matchedSlash = false;\n }\n }\n if (end === -1)\n return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1)\n return \"//\";\n return path2.slice(0, end);\n },\n basename: function basename(path2, ext) {\n if (ext !== void 0 && typeof ext !== \"string\")\n throw new TypeError('\"ext\" argument must be a string');\n assertPath(path2);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n if (ext !== void 0 && ext.length > 0 && ext.length <= path2.length) {\n if (ext.length === path2.length && ext === path2)\n return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path2.length - 1; i >= 0; --i) {\n var code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n end = i;\n }\n } else {\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end)\n end = firstNonSlashEnd;\n else if (end === -1)\n end = path2.length;\n return path2.slice(start, end);\n } else {\n for (i = path2.length - 1; i >= 0; --i) {\n if (path2.charCodeAt(i) === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1)\n return \"\";\n return path2.slice(start, end);\n }\n },\n extname: function extname(path2) {\n assertPath(path2);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var preDotState = 0;\n for (var i = path2.length - 1; i >= 0; --i) {\n var code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n return path2.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format(\"/\", pathObject);\n },\n parse: function parse(path2) {\n assertPath(path2);\n var ret = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n if (path2.length === 0)\n return ret;\n var code = path2.charCodeAt(0);\n var isAbsolute = code === 47;\n var start;\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path2.length - 1;\n var preDotState = 0;\n for (; i >= start; --i) {\n code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute)\n ret.base = ret.name = path2.slice(1, end);\n else\n ret.base = ret.name = path2.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path2.slice(1, startDot);\n ret.base = path2.slice(1, end);\n } else {\n ret.name = path2.slice(startPart, startDot);\n ret.base = path2.slice(startPart, end);\n }\n ret.ext = path2.slice(startDot, end);\n }\n if (startPart > 0)\n ret.dir = path2.slice(0, startPart - 1);\n else if (isAbsolute)\n ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n module.exports = posix;\n }\n});\n\n// src/config/global-config.ts\nvar GlobalConfig = class {\n constructor() {\n // 全局视图配置\n this.view = {\n enableDataInfoBar: true\n };\n // 全局表格配置\n this.grid = {\n editShowMode: \"cell\",\n editSaveMode: \"cell-blur\"\n };\n // 全局菜单配置\n this.appMenu = {\n enableEcho: false\n };\n // 全局代码表配置\n this.codeList = {\n timeout: 60 * 60 * 1e3\n };\n }\n};\n\n// src/register/register-center.ts\nvar RegisterCenter = class {\n constructor() {\n /**\n * 已注册的适配器Map\n * @author lxm\n * @date 2023-05-06 09:55:33\n * @protected\n * @type {Map<string, NewProvider>}\n */\n this.providers = /* @__PURE__ */ new Map();\n }\n /**\n * 注册适配器\n * @author lxm\n * @date 2023-05-06 09:55:55\n * @param {string} key 唯一标识\n * @param {NewProvider} newProvider 创建适配器实例的回调\n */\n register(key, newProvider) {\n this.providers.set(key, newProvider);\n }\n /**\n * 注销适配器\n * @author lxm\n * @date 2023-05-06 09:56:19\n * @param {string} key\n */\n unRegister(key) {\n this.providers.delete(key);\n }\n /**\n * 获取适配器的实例\n * @author lxm\n * @date 2023-05-06 09:56:34\n * @param {string} key 唯一标识\n * @param {...Parameters<NewProvider>} args 回调参数\n * @return {*} {(IProvider | undefined)}\n */\n get(key, ...args) {\n const func = this.providers.get(key);\n if (func) {\n return func(...args);\n }\n }\n};\n\n// src/command/app/app-func/app-func.ts\nimport { ModelError as ModelError4, RuntimeError as RuntimeError5 } from \"@ibiz-template/core\";\n\n// src/utils/nav-params/nav-params.ts\nimport { isEmpty } from \"lodash-es\";\nimport { isNilOrEmpty, notNilEmpty } from \"qx-util\";\nfunction convertNavData(naviDatas, ...origins) {\n if (!naviDatas || isEmpty(naviDatas)) {\n return {};\n }\n if (Object.prototype.toString.call(naviDatas) === \"[object Array]\") {\n return convertNavDataByArray(naviDatas, ...origins);\n }\n if (Object.prototype.toString.call(naviDatas) === \"[object Object]\") {\n return convertNavDataByObject(naviDatas, ...origins);\n }\n return {};\n}\nfunction convertNavDataByArray(naviDatas, ...origins) {\n const result = {};\n for (const naviData of naviDatas) {\n if (notNilEmpty(naviData.value) && !naviData.rawValue) {\n const findOrigin = origins.find((item) => {\n if (isNilOrEmpty(item)) {\n return false;\n }\n return (\n // proxy数据判断是否能拿到值\n item[naviData.value] || // 上下文等判断是否有这个属性,如果有且值为空,则赋该空值\n Object.prototype.hasOwnProperty.call(item, naviData.value)\n );\n });\n if (findOrigin) {\n result[naviData.key.toLowerCase()] = findOrigin[naviData.value];\n }\n } else {\n result[naviData.key.toLowerCase()] = naviData.value || null;\n }\n }\n return result;\n}\nfunction convertNavDataByObject(naviData, ...origins) {\n const result = {};\n const reg2 = /^%(.+)%$/;\n for (const key in naviData) {\n if (notNilEmpty(naviData[key]) && reg2.test(naviData[key])) {\n const valueKey = naviData[key].substring(1, naviData[key].length - 1);\n const findOrigin = origins.find((item) => {\n return Object.prototype.hasOwnProperty.call(item, valueKey);\n });\n if (findOrigin) {\n result[key.toLowerCase()] = findOrigin[valueKey];\n }\n } else {\n result[key.toLowerCase()] = naviData[key] || null;\n }\n }\n return result;\n}\nfunction convertObjectToNavParams(naviData) {\n const result = [];\n const reg2 = /^%(.+)%$/;\n for (const key in naviData) {\n let rawValue = true;\n let value = naviData[key];\n if (notNilEmpty(naviData[key]) && reg2.test(naviData[key])) {\n rawValue = false;\n value = naviData[key].substring(1, naviData[key].length - 1);\n }\n result.push({\n key: key.toLowerCase(),\n rawValue,\n value\n });\n }\n return result;\n}\nfunction formatMultiData(navParams, dataArr) {\n const result = {};\n if (!navParams) {\n return result;\n }\n const naviArr = Array.isArray(navParams) ? navParams : convertObjectToNavParams(navParams);\n const data1 = dataArr[0];\n naviArr.forEach((naviParam) => {\n const { rawValue, value } = naviParam;\n if (!rawValue && value && Object.prototype.hasOwnProperty.call(data1, value)) {\n result[value] = dataArr.map((item) => item[value]).join(\";\");\n }\n });\n return result;\n}\n\n// src/utils/nav-params/calc-nav-params.ts\nfunction calcNavParams(model, originParams) {\n const { deName, navFilter, pickupDEFName, navContexts, navParams } = model;\n const { context, params, data, derValue } = originParams;\n const resultContext = {};\n const resultParams = {};\n const deSrfkey = derValue || data.srfkey;\n if (deSrfkey) {\n if (deName) {\n resultContext[deName] = deSrfkey;\n }\n if (navFilter) {\n resultParams[navFilter] = deSrfkey;\n }\n if (pickupDEFName) {\n resultParams[\"n_\".concat(pickupDEFName.toLowerCase(), \"_eq\")] = deSrfkey;\n }\n }\n const tempContext = convertNavData(navContexts, context, params, data);\n const tempParams = convertNavData(navParams, context, params, data);\n Object.assign(resultContext, tempContext);\n Object.assign(resultParams, tempParams);\n return {\n resultContext,\n resultParams\n };\n}\n\n// src/utils/open-redirect-view/open-redirect-view.ts\nimport { RuntimeError, RuntimeModelError } from \"@ibiz-template/core\";\nimport { isNilOrEmpty as isNilOrEmpty2, notNilEmpty as notNilEmpty2 } from \"qx-util\";\nimport qs from \"qs\";\n\n// src/model/utils/util.ts\nfunction findModelChild(models, id) {\n if (models) {\n const model = models.find((item) => item.id === id);\n if (model) {\n return model;\n }\n }\n return null;\n}\nfunction getControl(view, key) {\n var _a, _b;\n let controls = view.controls || [];\n if ((_b = (_a = view.viewLayoutPanel) == null ? void 0 : _a.controls) == null ? void 0 : _b.length) {\n controls = controls.concat(view.viewLayoutPanel.controls);\n }\n return controls.find((item) => {\n return item.name === key || item.codeName === key || item.id === key;\n });\n}\nfunction getAppViewRef(view, key) {\n var _a, _b;\n let appViewRefs = view.appViewRefs || [];\n if ((_b = (_a = view.viewLayoutPanel) == null ? void 0 : _a.appViewRefs) == null ? void 0 : _b.length) {\n appViewRefs = appViewRefs.concat(view.viewLayoutPanel.appViewRefs);\n }\n return appViewRefs.find((item) => {\n return item.name === key || item.id === key;\n });\n}\nfunction parseUserParams(userParams) {\n const navigateContexts = {};\n const navigateParams = {};\n const other = {};\n for (const key in userParams) {\n if (Object.prototype.hasOwnProperty.call(userParams, key)) {\n const param = userParams[key];\n if (key.indexOf(\".\") !== -1) {\n const splitArr = key.split(\".\");\n switch (splitArr[0]) {\n case \"SRFNAVPARAM\":\n Object.assign(navigateContexts, { [splitArr[1]]: param });\n break;\n case \"SRFNAVCTX\":\n Object.assign(navigateParams, { [splitArr[1]]: param });\n break;\n default:\n Object.assign(other, { key: param });\n break;\n }\n }\n }\n }\n return { navigateContexts, navigateParams, other };\n}\n\n// src/model/layout/layout.ts\nfunction calcLayoutHeightWidth(layoutPos) {\n const { width, height, widthMode, heightMode } = layoutPos;\n const result = { width: \"\", height: \"\" };\n if (widthMode === \"FULL\") {\n result.width = \"100%\";\n } else if (width && width > 0) {\n if (width > 0 && width <= 1) {\n result.width = \"\".concat(width * 100, \"%\");\n } else if (widthMode === \"PERCENTAGE\") {\n result.width = \"\".concat(width, \"%\");\n } else {\n result.width = \"\".concat(width, \"px\");\n }\n }\n if (heightMode === \"FULL\") {\n result.height = \"100%\";\n } else if (height && height > 0) {\n if (height > 0 && height <= 1) {\n result.height = \"\".concat(height * 100, \"%\");\n } else if (heightMode === \"PERCENTAGE\") {\n result.height = \"\".concat(height, \"%\");\n } else {\n result.height = \"\".concat(height, \"px\");\n }\n }\n return result;\n}\nfunction calcContentAlignStyle(layoutPos) {\n const { valignSelf, halignSelf } = layoutPos;\n const result = {};\n if (valignSelf || halignSelf) {\n Object.assign(result, { display: \"flex\" });\n switch (valignSelf) {\n case \"TOP\":\n Object.assign(result, { \"align-items\": \"flex-start\" });\n break;\n case \"MIDDLE\":\n Object.assign(result, { \"align-items\": \"center\" });\n break;\n case \"BOTTOM\":\n Object.assign(result, { \"align-items\": \"flex-end\" });\n break;\n default:\n break;\n }\n switch (halignSelf) {\n case \"LEFT\":\n Object.assign(result, { \"justify-content\": \"flex-start\" });\n break;\n case \"CENTER\":\n Object.assign(result, { \"justify-content\": \"center\" });\n break;\n case \"RIGHT\":\n Object.assign(result, { \"justify-content\": \"flex-end\" });\n break;\n case \"JUSTIFY\":\n Object.assign(result, { \"justify-content\": \"space-between\" });\n break;\n default:\n break;\n }\n }\n return result;\n}\nfunction calcGridLayoutPos(layoutPos) {\n const {\n layout,\n colXS,\n colXSOffset,\n colSM,\n colSMOffset,\n colMD,\n colMDOffset,\n colLG,\n colLGOffset\n } = layoutPos;\n const calcActualValues = (span, offset) => {\n const multiplier = layout === \"TABLE_24COL\" ? 1 : 2;\n const spanDefault = layout === \"TABLE_24COL\" ? 24 : 12;\n const _span = (!span || span === -1 ? spanDefault : span) * multiplier;\n const _offset = !offset || offset === -1 ? void 0 : offset;\n return {\n span: _span,\n offset: _offset\n };\n };\n return {\n xs: calcActualValues(colXS, colXSOffset),\n sm: calcActualValues(colSM, colSMOffset),\n md: calcActualValues(colMD, colMDOffset),\n lg: calcActualValues(colLG, colLGOffset)\n };\n}\nfunction calcDynaClass(expression, data) {\n return ScriptFactory.execScriptFn({ data }, expression, {\n singleRowReturn: true\n });\n}\n\n// src/model/main-state/main-state.ts\nfunction matchMainState(appDataEntity, data) {\n const { mainStateAppDEFieldIds, demainStates } = appDataEntity;\n if (mainStateAppDEFieldIds && demainStates) {\n const values = [];\n mainStateAppDEFieldIds.forEach((field) => {\n values.push(data[field]);\n });\n return demainStates.find((item) => {\n const { stateValue, state2Value, state3Value } = item;\n let result = true;\n const stateValues = [stateValue, state2Value, state3Value];\n for (let i = 0; i < values.length; i++) {\n if (\"\".concat(values[i]) !== \"\".concat(stateValues[i])) {\n result = false;\n break;\n }\n }\n return result;\n });\n }\n}\nfunction calcMainStateOPPrivsStrs(mainState, appDataEntity) {\n const app = ibiz.hub.getApp().model;\n const { demainStateOPPrivs, opprivAllowMode } = mainState;\n const mainStateOPPrivIds = (demainStateOPPrivs == null ? void 0 : demainStateOPPrivs.map((item) => item.name)) || [];\n let opprivs = [];\n if (opprivAllowMode) {\n opprivs = mainStateOPPrivIds;\n } else {\n const allOPPrivs = [...app.deopprivs, ...appDataEntity.deopprivs];\n opprivs = allOPPrivs.filter((item) => !mainStateOPPrivIds.includes(item.name)).map((item) => item.name);\n }\n return opprivs;\n}\n\n// src/model/data-entity/data-entity.ts\nimport { isNotNil } from \"ramda\";\nfunction calcDeCodeNameById(id) {\n const arr = id.split(\".\");\n return arr.pop();\n}\nfunction hasDeCodeName(params, entityId) {\n const codeName = calcDeCodeNameById(entityId);\n return isNotNil(params[codeName]);\n}\nasync function getDeACMode(appDEACModeId, entityId, srfappid) {\n var _a;\n const appDataEntity = await ibiz.hub.getAppDataEntity(entityId, srfappid);\n const deACMode = (_a = appDataEntity.appDEACModes) == null ? void 0 : _a.find((mode) => {\n return mode.id === appDEACModeId;\n });\n return deACMode;\n}\nfunction findDELogic(appDELogicId, entity) {\n var _a;\n return (_a = entity.appDELogics) == null ? void 0 : _a.find((item) => item.id === appDELogicId);\n}\nfunction filterFieldLogics(entity, type) {\n var _a, _b;\n const resultIds = [];\n (_a = entity.appDEFields) == null ? void 0 : _a.forEach((field) => {\n if (type === \"compute\" && field.computeAppDEFLogicId) {\n resultIds.push(field.computeAppDEFLogicId);\n } else if (type === \"change\" && field.onChangeAppDEFLogicId) {\n resultIds.push(field.onChangeAppDEFLogicId);\n } else if (type === \"default\" && field.defaultValueAppDEFLogicId) {\n resultIds.push(field.defaultValueAppDEFLogicId);\n }\n });\n return ((_b = entity.appDELogics) == null ? void 0 : _b.filter((item) => resultIds.includes(item.id))) || [];\n}\nfunction findFieldById(entity, fieldId) {\n var _a;\n return (_a = entity.appDEFields) == null ? void 0 : _a.find((item) => item.id === fieldId);\n}\n\n// src/model/ui-action/ui-action.ts\nasync function getUIActionById(id) {\n const [, , appId] = id.split(\"@\");\n const app = ibiz.hub.getApp(appId);\n return app.getUIAction(id);\n}\n\n// src/model/tree/tree-node.ts\nfunction getRootNode(tree) {\n return tree.detreeNodes.find((node) => node.rootNode);\n}\nfunction getTreeNode(tree, id) {\n return tree.detreeNodes.find((node) => node.id === id);\n}\n\n// src/model/tree/tree-node-rs.ts\nfunction isNodeRsShow(searchMode, hasQuery) {\n return searchMode === 3 || (hasQuery ? searchMode === 1 : searchMode === 2);\n}\nfunction getChildNodeRSs(tree, args) {\n const parentId = args.parentId || getRootNode(tree).id;\n return tree.detreeNodeRSs.filter((nodeRs) => {\n return nodeRs.parentDETreeNodeId === parentId && isNodeRsShow(nodeRs.searchMode, args.hasQuery);\n });\n}\n\n// src/model/grid/column.ts\nfunction findEditItem(grid, codeName) {\n var _a;\n return (_a = grid.degridEditItems) == null ? void 0 : _a.find((item) => {\n return item.codeName === codeName;\n });\n}\n\n// src/model/form/form-detail.ts\nfunction findChildFormDetails(parent) {\n let childDetails;\n switch (parent.detailType) {\n case \"TABPANEL\":\n childDetails = parent.deformTabPages;\n break;\n case \"FORMPAGE\":\n case \"TABPAGE\":\n case \"GROUPPANEL\":\n childDetails = parent.deformDetails;\n break;\n default:\n break;\n }\n return childDetails || [];\n}\n\n// src/model/view/view.ts\nfunction getControlsByView(view) {\n const { viewLayoutPanel } = view;\n const controls = view.controls || [];\n if (viewLayoutPanel) {\n controls.push(...viewLayoutPanel.controls || []);\n }\n return controls;\n}\nfunction getViewLogics(view) {\n const { viewLayoutPanel } = view;\n const viewLogics = view.appViewLogics || [];\n if (viewLayoutPanel) {\n viewLogics.push(...viewLayoutPanel.appViewLogics || []);\n }\n return viewLogics;\n}\nfunction getViewEngines(view) {\n const { viewLayoutPanel } = view;\n const appViewEngines = view.appViewEngines || [];\n if (viewLayoutPanel) {\n appViewEngines.push(...viewLayoutPanel.appViewEngines || []);\n }\n return appViewEngines;\n}\n\n// src/utils/open-redirect-view/open-redirect-view.ts\nasync function openRedirectView(appView, context, params = {}, data = []) {\n return openDERedirectView(\n appView,\n context,\n params,\n data\n );\n}\nasync function toLocalOpenWFRedirectView(context, linkUrl) {\n const i = linkUrl.lastIndexOf(\"?\");\n const queryStr = decodeURIComponent(\n linkUrl.substring(i + 1, linkUrl.length)\n );\n const params = qs.parse(queryStr, { delimiter: \";\" });\n const deName = params.srfdename || \"\";\n if (!deName) {\n throw new RuntimeError(\"\\u91CD\\u5B9A\\u5411\\u53C2\\u6570\\u7F3A\\u5C11\\u5B9E\\u4F53\\u540D\\u79F0\");\n }\n const app = ibiz.hub.getApp(context.srfappid);\n const deCodeName = app.deName2DeCodeName.get(deName.toUpperCase());\n if (!deCodeName) {\n throw new RuntimeError(\"\\u672A\\u627E\\u5230\\u6307\\u5B9A\\u5B9E\\u4F53\\u7684codeName: \".concat(deName));\n }\n params[deCodeName.toLowerCase()] = params[deName.toLowerCase()];\n const deRdViewCodeName = \"\".concat(deCodeName).concat(ibiz.env.isMob ? \"Mob\" : \"\", \"RedirectView\");\n const deRdView = await ibiz.hub.getAppView(deRdViewCodeName);\n delete params.srfdename;\n if (params.srfwf !== \"undo\") {\n const tags = params.processDefinitionKey.split(\"-\");\n const wfTag = tags[3];\n const wf = wfTag.substring(0, wfTag.lastIndexOf(\"v\"));\n const wfVersion = wfTag.substring(wfTag.lastIndexOf(\"v\"));\n params.wf = wf;\n params.wfVersion = wfVersion;\n }\n if (params.srfprocessinstanceid) {\n context.srfprocessinstanceid = params.srfprocessinstanceid;\n delete params.srfprocessinstanceid;\n }\n await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n deRdView.id,\n context,\n params\n );\n}\nasync function openDERedirectView(appView, context, params = {}, data = []) {\n const navContext = appView.appViewNavContexts || [];\n const navContextData = convertNavData(navContext, context, params);\n context = Object.assign(context.clone(), navContextData);\n const navParams = appView.appViewNavParams || [];\n const navParamsData = convertNavData(navParams, context, params);\n Object.assign(params, navParamsData);\n const entityId = appView.appDataEntityId;\n const key = calcDeCodeNameById(entityId);\n let curData = data[0] || {};\n context[key] = curData[key] || context[key] || params[key];\n const actionId = appView.getDataAppDEActionId;\n const app = ibiz.hub.getApp(appView.appId);\n const service = await app.deService.getService(entityId);\n ibiz.loading.showRedirect();\n try {\n const res = await service.exec(actionId || \"get\", context, params);\n if (res.ok) {\n curData = res.data;\n let linkUrl = curData.linkurl;\n if (linkUrl) {\n if (context.srfprocessinstanceid) {\n linkUrl += \";srfprocessinstanceid=\".concat(context.srfprocessinstanceid);\n }\n if (ibiz.env.dev && linkUrl.indexOf(\"appredirectview?\") !== -1) {\n linkUrl = linkUrl.slice(linkUrl.indexOf(\"appredirectview?\"));\n }\n if (linkUrl.startsWith(\"http://\") || linkUrl.startsWith(\"https://\")) {\n return new Promise((resolve) => {\n const newWindow = window.open(linkUrl, \"_blank\");\n if (newWindow) {\n newWindow.callback = () => {\n resolve({ ok: true, data: [] });\n };\n }\n });\n }\n if (linkUrl.startsWith(\"appredirectview?\")) {\n await toLocalOpenWFRedirectView(context, linkUrl);\n return { ok: true, data: [] };\n }\n return { ok: false, data: [] };\n }\n }\n } finally {\n ibiz.loading.hideRedirect();\n }\n const entity = await ibiz.hub.getAppDataEntity(entityId, appView.appId);\n const rdTag = await calcDERdTag(entity, appView, params, curData);\n const rdTagItems = rdTag.split(\":\");\n const wfRdTag = rdTagItems.length === 2 ? rdTag : rdTagItems.slice(0, 2).join(\":\");\n const deRdTag = \"\".concat(entity.name.toUpperCase(), \":\").concat(rdTag);\n const allRefViews = appView.redirectAppViewRefs;\n const refView = allRefViews == null ? void 0 : allRefViews.find((view) => {\n return view.name === deRdTag || view.name === rdTag || view.name === wfRdTag;\n });\n if (refView) {\n const viewId = refView.refAppViewId;\n if (viewId) {\n const result = await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n viewId,\n context,\n params,\n { data: [curData] }\n );\n if (result) {\n return result;\n }\n } else {\n throw new RuntimeModelError(refView, \"\\u672A\\u914D\\u7F6E\\u5B9E\\u9645\\u5F15\\u7528\\u89C6\\u56FE\");\n }\n } else {\n ibiz.log.error(\n \"\\u91CD\\u5B9A\\u5411\\u89C6\\u56FE\\u5F15\\u7528\\u6709\\uFF1A\",\n allRefViews == null ? void 0 : allRefViews.map(({ refAppViewId, name, realTitle }) => ({\n viewId: refAppViewId,\n tag: name,\n title: realTitle\n }))\n );\n throw new RuntimeModelError(\n appView,\n \"\\u672A\\u627E\\u5230\\u91CD\\u5B9A\\u5411\\u6807\\u8BC6[\".concat(rdTag, \"]\\u6216[\").concat(deRdTag, \"]\\u6216\\u5DE5\\u4F5C\\u6D41[\").concat(wfRdTag, \"]\\u5BF9\\u5E94\\u89C6\\u56FE\")\n );\n }\n return { ok: true, data: [] };\n}\nasync function calcDERdTag(entity, rdView, params, data) {\n let rdTag = \"\";\n const defView = \"\".concat(ibiz.env.isMob ? \"MOB\" : \"\", \"EDITVIEW\");\n const srfWf = params.srfwf;\n if (notNilEmpty2(srfWf)) {\n if (notNilEmpty2(params.wf)) {\n return \"\".concat(defView, \":\").concat(srfWf.toUpperCase(), \":\").concat(params.wf.toUpperCase());\n }\n return \"\".concat(defView, \":\").concat(srfWf.toUpperCase());\n }\n let typeValue = \"\";\n const typeFieldId = rdView.typeAppDEFieldId;\n if (typeFieldId) {\n const { codeName } = findFieldById(entity, typeFieldId);\n const value = data[codeName.toLowerCase()];\n if (notNilEmpty2(value)) {\n typeValue = value;\n }\n }\n if (isNilOrEmpty2(typeValue)) {\n if (entity.indexTypeAppDEFieldId) {\n const { codeName } = findFieldById(entity, entity.indexTypeAppDEFieldId);\n typeValue = data[codeName.toLowerCase()];\n }\n }\n if (isNilOrEmpty2(typeValue)) {\n if (entity.formTypeAppDEFieldId) {\n const { codeName } = findFieldById(entity, entity.formTypeAppDEFieldId);\n typeValue = data[codeName.toLowerCase()];\n }\n }\n if (notNilEmpty2(typeValue)) {\n rdTag = \"\".concat(defView, \":\").concat(typeValue.toUpperCase());\n } else {\n rdTag = \"\".concat(defView);\n }\n return rdTag;\n}\n\n// src/utils/verify/verify.ts\nimport { RuntimeError as RuntimeError2 } from \"@ibiz-template/core\";\nimport { isNilOrEmpty as isNilOrEmpty3, notNilEmpty as notNilEmpty3 } from \"qx-util\";\nimport { isNil } from \"ramda\";\nfunction testCond(value, op, value2) {\n if (Object.is(op, \"IN\")) {\n return contains(value, value2);\n }\n if (Object.is(op, \"NOTIN\")) {\n return !contains(value, value2);\n }\n switch (op) {\n case \"EQ\":\n return \"\".concat(value) === \"\".concat(value2);\n case \"NOTEQ\":\n return \"\".concat(value) !== \"\".concat(value2);\n case \"LT\":\n return compare(value, value2) < 0;\n case \"LTANDEQ\":\n return compare(value, value2) <= 0;\n case \"GT\":\n return compare(value, value2) > 0;\n case \"GTANDEQ\":\n return compare(value, value2) >= 0;\n case \"ISNULL\":\n return isNilOrEmpty3(value);\n case \"ISNOTNULL\":\n return notNilEmpty3(value);\n case \"TESTNULL\":\n return isNil(value);\n case \"IN\":\n return contains(value, value2);\n case \"NOTIN\":\n return !contains(value, value2);\n case \"LIKE\":\n return strContain(value, value2);\n case \"LEFTLIKE\":\n return strContain(value, value2, \"start\");\n case \"RIGHTLIKE\":\n return strContain(value, value2, \"end\");\n default:\n throw new RuntimeError2(\"\\u503C\\u64CD\\u4F5C\\uFF1A\".concat(op, \"\\uFF0C\\u6682\\u672A\\u652F\\u6301\"));\n }\n}\nfunction compare(value, value2) {\n const number1 = Number(value);\n const number2 = Number(value2);\n if (!Number.isNaN(number1) && !Number.isNaN(number2)) {\n return compareNumber(number1, number2);\n }\n const date1 = new Date(value).getTime();\n const date2 = new Date(value2).getTime();\n if (!Number.isNaN(date1) && !Number.isNaN(date2)) {\n return compareNumber(date1, date2);\n }\n throw new RuntimeError2(\"\".concat(value, \" \\u548C \").concat(value2, \" \\u65E0\\u6CD5\\u6BD4\\u8F83\\u5927\\u5C0F\"));\n}\nfunction compareNumber(value, value2) {\n if (Number.isNaN(value)) {\n value = 0;\n }\n if (Number.isNaN(value2)) {\n value2 = 0;\n }\n if (value > value2) {\n return 1;\n }\n if (value < value2) {\n return -1;\n }\n return 0;\n}\nfunction contains(value, value2) {\n if (!value2 || typeof value2 !== \"string\") {\n throw new RuntimeError2(\"\\u8303\\u56F4\\u6BD4\\u8F83\\u7684\\u6761\\u4EF6\\u503C\\u4E0D\\u5B58\\u6216\\u8005\\u4E0D\\u662F\\u5B57\\u7B26\\u4E32\");\n }\n if (value) {\n const arr = value2.split(\",\");\n return arr.includes(\"\".concat(value));\n }\n return false;\n}\nfunction strContain(value, value2, mode) {\n if (!value || !value2) {\n return false;\n }\n const val = \"\".concat(value).toUpperCase();\n const val2 = \"\".concat(value2).toUpperCase();\n const index = val.indexOf(val2);\n switch (mode) {\n case \"start\":\n return index === 0;\n case \"end\":\n return index + val2.length === val.length;\n default:\n return index !== -1;\n }\n}\n\n// src/utils/verify/de-rule-verify.ts\nimport { RuntimeError as RuntimeError3 } from \"@ibiz-template/core\";\nimport { isNilOrEmpty as isNilOrEmpty4 } from \"qx-util\";\nimport { isEmpty as isEmpty2, isNil as isNil2 } from \"ramda\";\n\n// src/utils/script/script-function.ts\nimport { mergeRight } from \"ramda\";\nvar DefaultOptions = {\n /** 是否是单行脚本,并把表达式结果return */\n singleRowReturn: false\n};\nvar ScriptFunction = class {\n constructor(argKeys, scriptCode, options = DefaultOptions) {\n this.argKeys = [];\n this.options = options;\n const code = this.formatCode(scriptCode, options);\n this.calcArgKeys(argKeys, options);\n this.scriptFn = new Function(...this.argKeys, code);\n }\n /**\n * 格式化脚本\n * @author lxm\n * @date 2023-07-25 11:02:33\n * @protected\n * @param {string} scriptCode\n * @param {IScriptFunctionOpts} options\n * @return {*} {string}\n */\n formatCode(scriptCode, options) {\n let code = scriptCode;\n if (options.singleRowReturn) {\n code = \"return (\".concat(code, \")\");\n }\n return code;\n }\n /**\n * 计算参数名称集合\n * @author lxm\n * @date 2023-07-25 11:42:37\n * @protected\n * @param {string[]} argKeys\n * @param {IScriptFunctionOpts} options\n */\n calcArgKeys(argKeys, options) {\n const keys = options.presetParams ? Object.keys(options.presetParams) : [];\n keys.push(...argKeys);\n keys.push(\"document\", \"el\", \"selector\");\n this.argKeys = Array.from(new Set(keys));\n }\n /**\n * 转换参数,把exec的对象参数转换成数组\n * @author lxm\n * @date 2023-07-25 11:22:03\n * @protected\n * @param {IParams} params\n * @return {*} {any[]}\n */\n convertArgs(params) {\n const { presetParams } = this.options;\n const _params = presetParams ? mergeRight(presetParams, params) : params;\n _params.document = document;\n _params.selector = (className) => {\n return document.getElementsByClassName(className);\n };\n const result = [];\n this.argKeys.forEach((key) => {\n result.push(_params[key]);\n });\n return result;\n }\n /**\n * 执行脚本代码\n * @author lxm\n * @date 2023-07-25 11:21:44\n * @param {IParams} params\n * @return {*}\n */\n exec(params) {\n const scriptArgs = this.convertArgs(params);\n return this.scriptFn(...scriptArgs);\n }\n};\n\n// src/utils/script/script-factory.ts\nvar ScriptFactory = class {\n /**\n * 创建脚本方法\n * @author lxm\n * @date 2023-07-25 11:47:48\n * @param {string[]} argKeys 参数列表\n * @param {string} scriptCode 脚本代码\n * @param {IScriptFunctionOpts} options 选项\n * @return {*} {ScriptFunction}\n */\n static createScriptFn(argKeys, scriptCode, options) {\n return new ScriptFunction(argKeys, scriptCode, options);\n }\n /**\n * 直接创建并执行脚本\n * @author lxm\n * @date 2023-07-25 02:21:28\n * @static\n * @param {IParams} args 脚本参数\n * @param {string} scriptCode 脚本代码\n * @param {IScriptFunctionOpts} options 选项\n * @return {*}\n */\n static execScriptFn(args, scriptCode, options) {\n return this.createScriptFn(Object.keys(args), scriptCode, options).exec(\n args\n );\n }\n};\n\n// src/utils/verify/de-rule-verify.ts\nfunction isGroupCondition(condition) {\n return condition.condType === \"GROUP\";\n}\nfunction isSimpleCondition(condition) {\n return condition.condType === \"SIMPLE\";\n}\nfunction isValueRange2Condition(condition) {\n return condition.condType === \"VALUERANGE2\";\n}\nfunction isRegExCondition(condition) {\n return condition.condType === \"REGEX\";\n}\nfunction isStringLengthCondition(condition) {\n return condition.condType === \"STRINGLENGTH\";\n}\nfunction isSysValueRuleCondition(condition) {\n return condition.condType === \"SYSVALUERULE\";\n}\nfunction verifyDeRules(name, data, condition) {\n const flag = { isPast: true, infoMessage: condition.ruleInfo };\n if (isGroupCondition(condition)) {\n const childRules = condition.conds;\n if (childRules && childRules.length > 0) {\n flag.isPast = logicForEach(\n childRules,\n (item) => {\n const { isPast, infoMessage } = verifyDeRules(name, data, item);\n flag.infoMessage = infoMessage;\n return isPast;\n },\n condition.condOp,\n !!condition.notMode\n );\n if (!flag.isPast && (condition.condOp === \"AND\" && condition.notMode || condition.condOp === \"OR\" && !condition.notMode)) {\n flag.infoMessage = condition.ruleInfo;\n }\n }\n } else {\n name = condition == null ? void 0 : condition.defname.toLowerCase();\n try {\n if (isSimpleCondition(condition)) {\n flag.isPast = !checkFieldSimpleRule(\n data[name],\n condition.condOp,\n condition.paramValue,\n condition.ruleInfo,\n condition.paramType,\n data,\n condition.keyCond\n );\n } else if (isValueRange2Condition(condition)) {\n flag.isPast = !checkFieldValueRangeRule(\n data[name],\n condition.minValue,\n condition.includeMinValue,\n condition.maxValue,\n condition.includeMaxValue,\n condition.ruleInfo,\n condition.keyCond\n );\n } else if (isRegExCondition(condition)) {\n flag.isPast = !checkFieldRegExRule(\n data[name],\n condition.regExCode,\n condition.ruleInfo,\n condition.keyCond\n );\n } else if (isStringLengthCondition(condition)) {\n flag.isPast = !checkFieldStringLengthRule(\n data[name],\n condition.minValue,\n condition.includeMinValue,\n condition.maxValue,\n condition.includeMaxValue,\n condition.ruleInfo,\n condition.keyCond\n );\n } else if (isSysValueRuleCondition(condition) && (condition == null ? void 0 : condition.sysValueRule)) {\n const { ruleType, regExCode, scriptCode, ruleInfo } = condition.sysValueRule;\n flag.infoMessage = condition.ruleInfo || ruleInfo;\n if (ruleType === \"REG\") {\n flag.isPast = !checkFieldRegExRule(\n data[name],\n regExCode,\n flag.infoMessage,\n condition.keyCond\n );\n } else if (ruleType === \"SCRIPT\") {\n const { isPast, infoMessage } = checkFieldScriptRule(\n data[name],\n data,\n scriptCode,\n flag.infoMessage,\n condition.keyCond\n );\n flag.isPast = isPast;\n flag.infoMessage = infoMessage || flag.infoMessage;\n }\n }\n } catch (error) {\n flag.isPast = false;\n }\n flag.isPast = condition.notMode ? !flag.isPast : flag.isPast;\n }\n return flag;\n}\nfunction logicForEach(array, callback, operateTag = \"AND\", isReverse = false) {\n if (!((array == null ? void 0 : array.length) > 0)) {\n return false;\n }\n let result = operateTag === \"AND\";\n for (let i = 0, len = array.length; i < len; i++) {\n const temp = callback(array[i], i);\n if (operateTag === \"AND\") {\n if (!temp) {\n result = false;\n break;\n }\n } else if (operateTag === \"OR\") {\n if (temp) {\n result = true;\n break;\n }\n }\n }\n return isReverse ? !result : result;\n}\nfunction checkFieldSimpleRule(value, op, value2, errorInfo, paramType, form, primaryModel) {\n if (Object.is(paramType, \"CURTIME\")) {\n value2 = \"\".concat(/* @__PURE__ */ new Date());\n }\n if (Object.is(paramType, \"ENTITYFIELD\")) {\n value2 = value2 ? value2.toLowerCase() : \"\";\n const _value2Field = form[value2] ? form[value2] : value2;\n value2 = _value2Field;\n }\n if (isNil2(errorInfo) || isEmpty2(errorInfo)) {\n errorInfo = \"\\u5185\\u5BB9\\u5FC5\\u987B\\u7B26\\u5408\\u503C\\u89C4\\u5219\";\n }\n const result = testCond(value, op, value2);\n if (!result) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n }\n return !result;\n}\nfunction checkFieldStringLengthRule(viewValue, minLength, indexOfMin, maxLength, indexOfMax, errorInfo, primaryModel) {\n if (isNilOrEmpty4(errorInfo)) {\n errorInfo = \"\\u5185\\u5BB9\\u957F\\u5EA6\\u5FC5\\u987B\\u7B26\\u5408\\u8303\\u56F4\\u89C4\\u5219\";\n }\n const judge = isNilOrEmpty4(viewValue);\n if (judge) {\n if (primaryModel) {\n throw new RuntimeError3(\"\\u503C\\u4E3A\\u7A7A\");\n }\n errorInfo = \"\\u503C\\u4E3A\\u7A7A\";\n return true;\n }\n const viewValueLength = viewValue.length;\n if (minLength !== null) {\n if (indexOfMin) {\n if (viewValueLength < minLength) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n } else if (viewValueLength <= minLength) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n }\n if (maxLength !== null) {\n if (indexOfMax) {\n if (viewValueLength > maxLength) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n } else if (viewValueLength >= maxLength) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n }\n errorInfo = \"\";\n return false;\n}\nfunction checkFieldRegExRule(viewValue, strReg, errorInfo, primaryModel) {\n if (isNilOrEmpty4(errorInfo)) {\n errorInfo = \"\\u503C\\u5FC5\\u987B\\u7B26\\u5408\\u6B63\\u5219\\u89C4\\u5219\";\n }\n const judge = isNilOrEmpty4(viewValue);\n if (judge) {\n if (primaryModel) {\n throw new RuntimeError3(\"\\u503C\\u4E3A\\u7A7A\");\n }\n errorInfo = \"\\u503C\\u4E3A\\u7A7A\";\n return true;\n }\n const regExp = new RegExp(strReg);\n if (!regExp.test(viewValue)) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n errorInfo = \"\";\n return false;\n}\nfunction checkFieldValueRangeRule(viewValue, minNumber, indexOfMin, maxNumber, indexOfMax, errorInfo, primaryModel) {\n if (isNilOrEmpty4(errorInfo)) {\n errorInfo = \"\\u503C\\u5FC5\\u987B\\u7B26\\u5408\\u503C\\u8303\\u56F4\\u89C4\\u5219\";\n }\n const isEmptyVal = isNilOrEmpty4(viewValue);\n if (isEmptyVal) {\n if (primaryModel) {\n throw new RuntimeError3(\"\\u503C\\u4E3A\\u7A7A\");\n }\n errorInfo = \"\\u503C\\u4E3A\\u7A7A\";\n return true;\n }\n const valueFormat = checkFieldRegExRule(\n viewValue,\n /^-?\\d*\\.?\\d+$/,\n \"\",\n primaryModel\n );\n if (valueFormat) {\n return true;\n }\n const data = Number.parseFloat(viewValue);\n if (minNumber !== null) {\n if (indexOfMin) {\n if (data < minNumber) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n } else if (data <= minNumber) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n }\n if (maxNumber != null) {\n if (indexOfMax) {\n if (data > maxNumber) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n } else if (data >= maxNumber) {\n if (primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return true;\n }\n }\n errorInfo = \"\";\n return false;\n}\nfunction checkFieldScriptRule(value, data, scriptCode, errorInfo, primaryModel) {\n if (isNilOrEmpty4(errorInfo)) {\n errorInfo = \"\\u503C\\u5FC5\\u987B\\u7B26\\u5408\\u811A\\u672C\\u89C4\\u5219\";\n }\n const source = data;\n let selfError = \"\";\n let resultBoolean = true;\n const callback = (error) => {\n resultBoolean = false;\n if ((error == null ? void 0 : error.length) > 0) {\n error.forEach((item) => {\n if (item == null ? void 0 : item.message) {\n selfError += item.message;\n }\n });\n } else if (error == null ? void 0 : error.message) {\n selfError = error.message;\n }\n };\n try {\n const result = ScriptFactory.execScriptFn(\n { value, data: source },\n scriptCode\n );\n if (typeof result === \"boolean\") {\n resultBoolean = result;\n }\n } catch (error) {\n ibiz.log.error(error);\n callback(error);\n }\n errorInfo = \"\";\n if (!resultBoolean && primaryModel) {\n throw new RuntimeError3(errorInfo);\n }\n return { isPast: resultBoolean, infoMessage: selfError || errorInfo };\n}\n\n// src/utils/verify/form-dynamic-logic.ts\nimport { ModelError, RuntimeModelError as RuntimeModelError2 } from \"@ibiz-template/core\";\nfunction isGroupLogic(logic) {\n return logic.logicType === \"GROUP\";\n}\nfunction isSingleLogic(logic) {\n return logic.logicType === \"SINGLE\";\n}\nfunction verifyFormGroupLogic(data, logic) {\n if (isGroupLogic(logic)) {\n const children = logic.defdlogics;\n if (!children || children.length === 0) {\n throw new RuntimeModelError2(logic, \"\\u53D1\\u73B0\\u7A7A\\u903B\\u8F91\\u7EC4\\uFF0C\\u903B\\u8F91\\u65E0\\u6CD5\\u6B63\\u5E38\\u6267\\u884C\\uFF01\");\n }\n let result = true;\n if (logic.groupOP === \"AND\") {\n const falseItem = children.find((childLogic) => {\n return !verifyFormGroupLogic(data, childLogic);\n });\n result = falseItem === void 0;\n } else if (logic.groupOP === \"OR\") {\n const trueItem = logic.defdlogics.find(\n (childLogic) => {\n return verifyFormGroupLogic(data, childLogic);\n }\n );\n result = trueItem !== void 0;\n }\n return logic.notMode ? !result : result;\n }\n if (isSingleLogic(logic)) {\n return testCond(\n data[logic.defdname.toLowerCase()],\n logic.condOP,\n logic.value\n );\n }\n throw new ModelError(logic, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u7C7B\\u578B\".concat(logic.logicType));\n}\n\n// src/utils/verify/panel-dynamic-logic.ts\nimport { ModelError as ModelError2, RuntimeModelError as RuntimeModelError3 } from \"@ibiz-template/core\";\nfunction isGroupLogic2(logic) {\n return logic.logicType === \"GROUP\";\n}\nfunction isSingleLogic2(logic) {\n return logic.logicType === \"SINGLE\";\n}\nfunction verifyPanelGroupLogic(data, logic) {\n if (isGroupLogic2(logic)) {\n const children = logic.panelItemLogics;\n if (!children || children.length === 0) {\n throw new RuntimeModelError3(logic, \"\\u53D1\\u73B0\\u7A7A\\u903B\\u8F91\\u7EC4\\uFF0C\\u903B\\u8F91\\u65E0\\u6CD5\\u6B63\\u5E38\\u6267\\u884C\\uFF01\");\n }\n let result = true;\n if (logic.groupOP === \"AND\") {\n const falseItem = children.find((childLogic) => {\n return !verifyPanelGroupLogic(data, childLogic);\n });\n result = falseItem === void 0;\n } else if (logic.groupOP === \"OR\") {\n const trueItem = logic.panelItemLogics.find(\n (childLogic) => {\n return verifyPanelGroupLogic(data, childLogic);\n }\n );\n result = trueItem !== void 0;\n }\n return logic.notMode ? !result : result;\n }\n if (isSingleLogic2(logic)) {\n return testCond(\n data[logic.dstModelField.toLowerCase()],\n logic.condOp,\n logic.value\n );\n }\n throw new ModelError2(logic, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u7C7B\\u578B\".concat(logic.logicType));\n}\n\n// src/utils/layout-panel-util/layout-panel-util.ts\nimport { clone } from \"ramda\";\nvar LayoutPanelUtil = class {\n constructor() {\n /**\n * 默认布局缓存\n *\n * @author chitanda\n * @date 2023-04-27 20:04:50\n * @protected\n * @type {Map<string, IViewLayoutPanel>}\n */\n this.cache = /* @__PURE__ */ new Map();\n }\n /**\n * 注册\n *\n * @author chitanda\n * @date 2023-04-27 20:04:04\n * @param {string} tag\n * @param {IViewLayoutPanel} model\n */\n register(tag, model) {\n this.cache.set(tag, model);\n }\n /**\n * 获取\n * @author lxm\n * @date 2023-07-31 02:48:37\n * @param {string} tag\n * @return {*} {(IViewLayoutPanel | undefined)}\n */\n get(tag) {\n return this.cache.get(tag);\n }\n /**\n * 填充默认布局模型\n *\n * @author chitanda\n * @date 2023-04-27 20:04:16\n * @param {IAppView} viewModel\n * @return {*} {IAppView}\n */\n fill(viewModel) {\n const { viewLayoutPanel } = viewModel;\n if (!viewLayoutPanel || viewLayoutPanel.useDefaultLayout === true) {\n const tag = this.calcLayoutTag(viewModel);\n if (this.cache.has(tag)) {\n const layout = clone(this.cache.get(tag));\n viewModel.viewLayoutPanel = layout;\n if (viewModel.appCounterRefs) {\n layout.appCounterRefs = viewModel.appCounterRefs;\n delete viewModel.appCounterRefs;\n }\n if (viewModel.appViewEngines) {\n layout.appViewEngines = viewModel.appViewEngines;\n delete viewModel.appViewEngines;\n }\n if (viewModel.appViewLogics) {\n layout.appViewLogics = viewModel.appViewLogics;\n delete viewModel.appViewLogics;\n }\n if (viewModel.appViewRefs) {\n layout.appViewRefs = viewModel.appViewRefs;\n delete viewModel.appViewRefs;\n }\n if (viewModel.controls) {\n layout.controls = viewModel.controls;\n delete viewModel.controls;\n }\n }\n }\n return viewModel;\n }\n /**\n * 计算布局面板标识\n *\n * @author chitanda\n * @date 2023-07-10 17:07:38\n * @protected\n * @param {IAppView} viewModel\n * @return {*} {string}\n */\n calcLayoutTag(viewModel) {\n const { viewType, viewStyle } = viewModel;\n switch (viewType) {\n case \"APPINDEXVIEW\":\n return this.calcIndexViewLayoutTag(viewModel);\n default:\n return \"\".concat(viewType, \"_\").concat(viewStyle);\n }\n }\n /**\n * 特殊计算首页布局面板标识,匹配多种配置模式下的布局面板呈现\n *\n * @author chitanda\n * @date 2023-07-10 17:07:06\n * @protected\n * @param {IAppIndexView} viewModel\n * @return {*} {string}\n */\n calcIndexViewLayoutTag(viewModel) {\n const { viewType, viewStyle, blankMode, mainMenuAlign } = viewModel;\n let exTag = \"\";\n if (blankMode) {\n exTag = \"BLANK_MODE\";\n } else if (mainMenuAlign) {\n exTag = mainMenuAlign.toUpperCase();\n }\n if (exTag !== \"\") {\n return \"\".concat(viewType, \"_\").concat(viewStyle, \"_\").concat(exTag);\n }\n return \"\".concat(viewType, \"_\").concat(viewStyle);\n }\n};\n\n// src/utils/wf-helper/wf-helper.ts\nfunction getWFContext(data) {\n const tempContext = {};\n if (data.param09) {\n tempContext.srfprocessinstanceid = data.param09;\n }\n return tempContext;\n}\nfunction getWFSubmitViewId(view, link) {\n var _a;\n const { type, sequenceFlowView, sequenceFlowMobView } = link;\n const appViewRefs = ((_a = view.viewLayoutPanel) == null ? void 0 : _a.appViewRefs) || view.appViewRefs;\n const key = type ? \"WFUTILACTION@\".concat(type.toUpperCase()) : \"WFACTION@\".concat(ibiz.env.isMob ? sequenceFlowMobView : sequenceFlowView);\n const submitViewRef = appViewRefs.find((viewRef) => {\n return viewRef.name === key;\n });\n return submitViewRef == null ? void 0 : submitViewRef.refAppViewId;\n}\n\n// src/utils/modal/modal.ts\nimport { AsyncSeriesHook } from \"qx-util\";\n\n// src/constant/control-type.ts\nvar ControlType = /* @__PURE__ */ ((ControlType2) => {\n ControlType2[\"APP_MENU\"] = \"APPMENU\";\n ControlType2[\"GRID\"] = \"GRID\";\n ControlType2[\"FORM\"] = \"FORM\";\n ControlType2[\"SEARCHFORM\"] = \"SEARCHFORM\";\n ControlType2[\"TOOLBAR\"] = \"TOOLBAR\";\n ControlType2[\"DRBAR\"] = \"DRBAR\";\n ControlType2[\"VIEWPANEL\"] = \"VIEWPANEL\";\n ControlType2[\"PICKUP_VIEW_PANEL\"] = \"PICKUPVIEWPANEL\";\n ControlType2[\"DATAVIEW\"] = \"DATAVIEW\";\n ControlType2[\"TREEGRID\"] = \"TREEGRID\";\n ControlType2[\"WF_EXPBAR\"] = \"WFEXPBAR\";\n ControlType2[\"TREEVIEW\"] = \"TREEVIEW\";\n ControlType2[\"TREE_EXP_BAR\"] = \"TREEEXPBAR\";\n ControlType2[\"TAB_VIEWPANEL\"] = \"TABVIEWPANEL\";\n ControlType2[\"DRTAB\"] = \"DRTAB\";\n ControlType2[\"CHART\"] = \"CHART\";\n ControlType2[\"REPORT_PANEL\"] = \"REPORTPANEL\";\n ControlType2[\"LIST\"] = \"LIST\";\n ControlType2[\"MOB_MDCTRL\"] = \"MOBMDCTRL\";\n ControlType2[\"MULTI_EDIT_VIEWPANEL\"] = \"MULTIEDITVIEWPANEL\";\n ControlType2[\"WIZARD_PANEL\"] = \"WIZARDPANEL\";\n ControlType2[\"UPDATE_PANEL\"] = \"UPDATEPANEL\";\n ControlType2[\"SEARCHBAR\"] = \"SEARCHBAR\";\n ControlType2[\"DASHBOARD\"] = \"DASHBOARD\";\n ControlType2[\"CALENDAR\"] = \"CALENDAR\";\n ControlType2[\"PANEL\"] = \"PANEL\";\n ControlType2[\"VIEW_LAYOUT_PANEL\"] = \"VIEWLAYOUTPANEL\";\n ControlType2[\"MAP\"] = \"MAP\";\n ControlType2[\"GANTT\"] = \"GANTT\";\n ControlType2[\"TREE_GRIDEX\"] = \"TREEGRIDEX\";\n ControlType2[\"KANBAN\"] = \"KANBAN\";\n ControlType2[\"CALENDAR_EXPBAR\"] = \"CALENDAREXPBAR\";\n ControlType2[\"CHART_EXPBAR\"] = \"CHARTEXPBAR\";\n ControlType2[\"DATA_VIEW_EXPBAR\"] = \"DATAVIEWEXPBAR\";\n ControlType2[\"GANTT_EXPBAR\"] = \"GANTTEXPBAR\";\n ControlType2[\"GRID_EXPBAR\"] = \"GRIDEXPBAR\";\n ControlType2[\"LIST_EXPBAR\"] = \"LISTEXPBAR\";\n ControlType2[\"MAP_EXPBAR\"] = \"MAPEXPBAR\";\n ControlType2[\"STATE_WIZARD_PANEL\"] = \"STATEWIZARDPANEL\";\n ControlType2[\"TAB_EXP_PANEL\"] = \"TABEXPPANEL\";\n ControlType2[\"CUSTOM\"] = \"CUSTOM\";\n ControlType2[\"CAPTIONBAR\"] = \"CAPTIONBAR\";\n return ControlType2;\n})(ControlType || {});\n\n// src/constant/view-type.ts\nvar ViewType = /* @__PURE__ */ ((ViewType2) => {\n ViewType2[\"APP_INDEX_VIEW\"] = \"APPINDEXVIEW\";\n ViewType2[\"DE_GRID_VIEW\"] = \"DEGRIDVIEW\";\n ViewType2[\"DE_EDIT_VIEW\"] = \"DEEDITVIEW\";\n ViewType2[\"APP_DATA_UPLOAD_VIEW\"] = \"APPDATAUPLOADVIEW\";\n ViewType2[\"APP_ERROR_VIEW\"] = \"APPERRORVIEW\";\n ViewType2[\"APP_FILE_UPLOAD_VIEW\"] = \"APPFILEUPLOADVIEW\";\n ViewType2[\"APP_FUN_PICKUP_VIEW\"] = \"APPFUNCPICKUPVIEW\";\n ViewType2[\"APP_LOGIN_VIEW\"] = \"APPLOGINVIEW\";\n ViewType2[\"APP_LOGOUT_VIEW\"] = \"APPLOGOUTVIEW\";\n ViewType2[\"APP_PANEL_VIEW\"] = \"APPPANELVIEW\";\n ViewType2[\"APP_PIC_UPLOAD_VIEW\"] = \"APPPICUPLOADVIEW\";\n ViewType2[\"APP_PORTAL_VIEW\"] = \"APPPORTALVIEW\";\n ViewType2[\"APP_REDIRECT_VIEW\"] = \"APPREDIRECTVIEW\";\n ViewType2[\"APP_START_VIEW\"] = \"APPSTARTVIEW\";\n ViewType2[\"APP_WELCOME_VIEW\"] = \"APPWELCOMEVIEW\";\n ViewType2[\"APP_WF_ADD_STEP_AFTER_VIEW\"] = \"APPWFADDSTEPAFTERVIEW\";\n ViewType2[\"APP_WF_ADD_STEP_BEFORE_VIEW\"] = \"APPWFADDSTEPBEFOREVIEW\";\n ViewType2[\"APP_WF_REDIRECT_VIEW\"] = \"APPWFREDIRECTVIEW\";\n ViewType2[\"APP_WF_SENDBAC_VIEW\"] = \"APPWFSENDBACKVIEW\";\n ViewType2[\"APP_WF_STEP_ACTOR_VIEW\"] = \"APPWFSTEPACTORVIEW\";\n ViewType2[\"APP_WF_STEP_DATA_VIEW\"] = \"APPWFSTEPDATAVIEW\";\n ViewType2[\"APP_WF_STEP_TRACE_VIEW\"] = \"APPWFSTEPTRACEVIEW\";\n ViewType2[\"APP_WF_SUPPLY_INFO_VIEW\"] = \"APPWFSUPPLYINFOVIEW\";\n ViewType2[\"APP_WF_TAKE_ADVICE_VIEW\"] = \"APPWFTAKEADVICEVIEW\";\n ViewType2[\"DE_CALENDAR_EXP_VIEW\"] = \"DECALENDAREXPVIEW\";\n ViewType2[\"DE_CALENDAR_VIEW\"] = \"DECALENDARVIEW\";\n ViewType2[\"DE_CHART_EXP_VIEW\"] = \"DECHARTEXPVIEW\";\n ViewType2[\"DE_CHART_VIEW\"] = \"DECHARTVIEW\";\n ViewType2[\"DE_CHART_VIEW9\"] = \"DECHARTVIEW9\";\n ViewType2[\"DE_CUSTOM_VIEW\"] = \"DECUSTOMVIEW\";\n ViewType2[\"DE_DATA_VIEW\"] = \"DEDATAVIEW\";\n ViewType2[\"DE_DATA_VIEW9\"] = \"DEDATAVIEW9\";\n ViewType2[\"DE_DATAVIEW_EXP_VIEW\"] = \"DEDATAVIEWEXPVIEW\";\n ViewType2[\"DE_EDIT_VIEW2\"] = \"DEEDITVIEW2\";\n ViewType2[\"DE_EDIT_VIEW3\"] = \"DEEDITVIEW3\";\n ViewType2[\"DE_EDIT_VIEW4\"] = \"DEEDITVIEW4\";\n ViewType2[\"DE_EDIT_VIEW9\"] = \"DEEDITVIEW9\";\n ViewType2[\"DE_FORM_PICKUP_DATA_VIEW\"] = \"DEFORMPICKUPDATAVIEW\";\n ViewType2[\"DE_GANTT_EXP_VIEW\"] = \"DEGANTTEXPVIEW\";\n ViewType2[\"DE_GANTT_VIEW\"] = \"DEGANTTVIEW\";\n ViewType2[\"DE_GANTT_VIEW9\"] = \"DEGANTTVIEW9\";\n ViewType2[\"DE_GRID_EXP_VIEW\"] = \"DEGRIDEXPVIEW\";\n ViewType2[\"DE_GRID_VIEW2\"] = \"DEGRIDVIEW2\";\n ViewType2[\"DE_GRID_VIEW4\"] = \"DEGRIDVIEW4\";\n ViewType2[\"DE_GRID_VIEW8\"] = \"DEGRIDVIEW8\";\n ViewType2[\"DE_GRID_VIEW9\"] = \"DEGRIDVIEW9\";\n ViewType2[\"DE_HTML_VIEW\"] = \"DEHTMLVIEW\";\n ViewType2[\"DE_INDEX_PICKUP_DATA_VIEW\"] = \"DEINDEXPICKUPDATAVIEW\";\n ViewType2[\"DE_INDEX_VIEW\"] = \"DEINDEXVIEW\";\n ViewType2[\"DE_KANBAN_VIEW\"] = \"DEKANBANVIEW\";\n ViewType2[\"DE_KANBAN_VIEW9\"] = \"DEKANBANVIEW9\";\n ViewType2[\"DE_LIST_EXP_VIEW\"] = \"DELISTEXPVIEW\";\n ViewType2[\"DE_LIST_VIEW\"] = \"DELISTVIEW\";\n ViewType2[\"DE_LIST_VIEW9\"] = \"DELISTVIEW9\";\n ViewType2[\"DE_MAP_EXP_VIEW\"] = \"DEMAPEXPVIEW\";\n ViewType2[\"DE_MAP_VIEW\"] = \"DEMAPVIEW\";\n ViewType2[\"DE_MAP_VIEW9\"] = \"DEMAPVIEW9\";\n ViewType2[\"DE_MD_CUSTOM_VIEW\"] = \"DEMDCUSTOMVIEW\";\n ViewType2[\"DE_MEDITVIEW9\"] = \"DEMEDITVIEW9\";\n ViewType2[\"DE_MOB_CALENDAR_EXP_VIEW\"] = \"DEMOBCALENDAREXPVIEW\";\n ViewType2[\"DE_MOB_CALENDAR_VIEW\"] = \"DEMOBCALENDARVIEW\";\n ViewType2[\"DE_MOB_CALENDAR_VIEW9\"] = \"DEMOBCALENDARVIEW9\";\n ViewType2[\"DE_MOB_CHART_EXP_VIEW\"] = \"DEMOBCHARTEXPVIEW\";\n ViewType2[\"DE_MO_BCHART_VIEW\"] = \"DEMOBCHARTVIEW\";\n ViewType2[\"D_EMOB_CHART_VIEW9\"] = \"DEMOBCHARTVIEW9\";\n ViewType2[\"DE_MOB_CUSTOM_VIEW\"] = \"DEMOBCUSTOMVIEW\";\n ViewType2[\"DE_MOB_DATA_VIEW\"] = \"DEMOBDATAVIEW\";\n ViewType2[\"DE_MOB_DATA_VIEW_EXP_VIEW\"] = \"DEMOBDATAVIEWEXPVIEW\";\n ViewType2[\"DE_MOB_EDIT_VIEW\"] = \"DEMOBEDITVIEW\";\n ViewType2[\"DE_MOB_EDIT_VIEW3\"] = \"DEMOBEDITVIEW3\";\n ViewType2[\"DE_MOB_EDITVIEW9\"] = \"DEMOBEDITVIEW9\";\n ViewType2[\"DE_MOB_FORM_PICKUP_MDVIEW\"] = \"DEMOBFORMPICKUPMDVIEW\";\n ViewType2[\"DE_MOB_GANTT_EXP_VIEW\"] = \"DEMOBGANTTEXPVIEW\";\n ViewType2[\"DE_MOB_GANTT_VIEW\"] = \"DEMOBGANTTVIEW\";\n ViewType2[\"DE_MOB_GANTT_VIEW9\"] = \"DEMOBGANTTVIEW9\";\n ViewType2[\"DE_MOB_HTML_VIEW\"] = \"DEMOBHTMLVIEW\";\n ViewType2[\"DE_MOB_INDEX_PICKUP_MDVIEW\"] = \"DEMOBINDEXPICKUPMDVIEW\";\n ViewType2[\"DE_MOB_LIST_EXP_VIEW\"] = \"DEMOBLISTEXPVIEW\";\n ViewType2[\"DE_MOB_LIST_VIEW\"] = \"DEMOBLISTVIEW\";\n ViewType2[\"DE_MOB_MAP_VIEW\"] = \"DEMOBMAPVIEW\";\n ViewType2[\"DE_MOB_MAP_VIEW9\"] = \"DEMOBMAPVIEW9\";\n ViewType2[\"DE_MOB_MDVIEW\"] = \"DEMOBMDVIEW\";\n ViewType2[\"DE_MOB_MDVIEW9\"] = \"DEMOBMDVIEW9\";\n ViewType2[\"DE_MOB_MEDIT_VIEW9\"] = \"DEMOBMEDITVIEW9\";\n ViewType2[\"DE_MOB_MPICKUP_VIEW\"] = \"DEMOBMPICKUPVIEW\";\n ViewType2[\"DE_MOB_OPT_VIEW\"] = \"DEMOBOPTVIEW\";\n ViewType2[\"DE_MOB_PANEL_VIEW\"] = \"DEMOBPANELVIEW\";\n ViewType2[\"DE_MOB_PANEL_VIEW9\"] = \"DEMOBPANELVIEW9\";\n ViewType2[\"DE_MOB_PICKUP_LIST_VIEW\"] = \"DEMOBPICKUPLISTVIEW\";\n ViewType2[\"DE_MOB_PICKUP_MDVIEW\"] = \"DEMOBPICKUPMDVIEW\";\n ViewType2[\"DE_MOB_PICKUP_TREE_VIEW\"] = \"DEMOBPICKUPTREEVIEW\";\n ViewType2[\"DE_MOB_PICKUP_VIEW\"] = \"DEMOBPICKUPVIEW\";\n ViewType2[\"DE_MOB_PORTAL_VIEW\"] = \"DEMOBPORTALVIEW\";\n ViewType2[\"DE_MOB_PORTAL_VIEW9\"] = \"DEMOBPORTALVIEW9\";\n ViewType2[\"DE_MOB_REDIRECT_VIEW\"] = \"DEMOBREDIRECTVIEW\";\n ViewType2[\"DE_MOB_REPORT_VIEW\"] = \"DEMOBREPORTVIEW\";\n ViewType2[\"DE_MOB_TAB_EXP_VIEW\"] = \"DEMOBTABEXPVIEW\";\n ViewType2[\"DE_MOB_TAB_EXP_VIEW9\"] = \"DEMOBTABEXPVIEW9\";\n ViewType2[\"DE_MOB_TAB_SEARCH_VIEW\"] = \"DEMOBTABSEARCHVIEW\";\n ViewType2[\"DE_MOB_TAB_SEARCH_VIEW9\"] = \"DEMOBTABSEARCHVIEW9\";\n ViewType2[\"DE_MOB_TREE_EXP_VIEW\"] = \"DEMOBTREEEXPVIEW\";\n ViewType2[\"DEMOBTREEEXPVIEW9\"] = \"DEMOBTREEEXPVIEW9\";\n ViewType2[\"DE_MOB_TREE_VIEW\"] = \"DEMOBTREEVIEW\";\n ViewType2[\"DE_MOB_WFACTION_VIEW\"] = \"DEMOBWFACTIONVIEW\";\n ViewType2[\"DE_MOB_WF_DATA_REDIRECT_VIEW\"] = \"DEMOBWFDATAREDIRECTVIEW\";\n ViewType2[\"DE_MOB_WF_DYNAACTIO_NVIEW\"] = \"DEMOBWFDYNAACTIONVIEW\";\n ViewType2[\"DE_MOB_WFDYNA_EDIT_VIEW\"] = \"DEMOBWFDYNAEDITVIEW\";\n ViewType2[\"DE_MOB_WF_DYNA_EDIT_VIEW3\"] = \"DEMOBWFDYNAEDITVIEW3\";\n ViewType2[\"DE_MOB_WF_DYNA_EXP_MDVIEW\"] = \"DEMOBWFDYNAEXPMDVIEW\";\n ViewType2[\"DE_MO_BWF_DYNA_START_VIEW\"] = \"DEMOBWFDYNASTARTVIEW\";\n ViewType2[\"DE_MOB_WF_EDIT_VIEW\"] = \"DEMOBWFEDITVIEW\";\n ViewType2[\"DE_MOB_WF_EDIT_VIEW3\"] = \"DEMOBWFEDITVIEW3\";\n ViewType2[\"DE_MOB_WF_MDVIEW\"] = \"DEMOBWFMDVIEW\";\n ViewType2[\"DE_MOB_WF_PROXY_RESULT_VIEW\"] = \"DEMOBWFPROXYRESULTVIEW\";\n ViewType2[\"DE_MOB_WF_PROXY_START_VIEW\"] = \"DEMOBWFPROXYSTARTVIEW\";\n ViewType2[\"DE_MOB_WF_START_VIEW\"] = \"DEMOBWFSTARTVIEW\";\n ViewType2[\"DE_MOB_WIZARD_VIEW\"] = \"DEMOBWIZARDVIEW\";\n ViewType2[\"DE_MPICKUP_VIEW\"] = \"DEMPICKUPVIEW\";\n ViewType2[\"DE_MPICKUP_VIEW2\"] = \"DEMPICKUPVIEW2\";\n ViewType2[\"DE_OPT_VIEW\"] = \"DEOPTVIEW\";\n ViewType2[\"DE_PANEL_VIEW\"] = \"DEPANELVIEW\";\n ViewType2[\"DE_PANEL_VIEW9\"] = \"DEPANELVIEW9\";\n ViewType2[\"DE_PICKUP_DATA_VIEW\"] = \"DEPICKUPDATAVIEW\";\n ViewType2[\"DE_PICKUP_GRID_VIEW\"] = \"DEPICKUPGRIDVIEW\";\n ViewType2[\"DE_PICKUP_TREE_VIEW\"] = \"DEPICKUPTREEVIEW\";\n ViewType2[\"DE_PICKUP_VIEW\"] = \"DEPICKUPVIEW\";\n ViewType2[\"DE_PICKUP_VIEW2\"] = \"DEPICKUPVIEW2\";\n ViewType2[\"DE_PICK_UP_VIEW3\"] = \"DEPICKUPVIEW3\";\n ViewType2[\"DE_PORTAL_VIEW\"] = \"DEPORTALVIEW\";\n ViewType2[\"DE_PORTAL_VIEW9\"] = \"DEPORTALVIEW9\";\n ViewType2[\"DE_REDIRECT_VIEW\"] = \"DEREDIRECTVIEW\";\n ViewType2[\"DE_REPORT_VIEW\"] = \"DEREPORTVIEW\";\n ViewType2[\"DE_TAB_EXP_VIEW\"] = \"DETABEXPVIEW\";\n ViewType2[\"DE_TAB_EXP_VIEW9\"] = \"DETABEXPVIEW9\";\n ViewType2[\"DE_TAB_SEARCH_VIEW\"] = \"DETABSEARCHVIEW\";\n ViewType2[\"DE_TAB_SEARCH_VIEW9\"] = \"DETABSEARCHVIEW9\";\n ViewType2[\"DE_TREE_EXP_VIEW\"] = \"DETREEEXPVIEW\";\n ViewType2[\"DE_TREE_EXP_VIEW2\"] = \"DETREEEXPVIEW2\";\n ViewType2[\"DE_TREE_EXP_VIEW3\"] = \"DETREEEXPVIEW3\";\n ViewType2[\"DE_TREE_GRID_EXVIEW\"] = \"DETREEGRIDEXVIEW\";\n ViewType2[\"DE_TREE_GRID_EXVIEW9\"] = \"DETREEGRIDEXVIEW9\";\n ViewType2[\"DE_TREE_GRID_VIEW\"] = \"DETREEGRIDVIEW\";\n ViewType2[\"DE_TREE_GRID_VIEW9\"] = \"DETREEGRIDVIEW9\";\n ViewType2[\"DE_TREE_VIEW\"] = \"DETREEVIEW\";\n ViewType2[\"DE_TREE_VIEW9\"] = \"DETREEVIEW9\";\n ViewType2[\"DE_WF_ACTION_VIEW\"] = \"DEWFACTIONVIEW\";\n ViewType2[\"DE_WF_DATA_REDIRECT_VIEW\"] = \"DEWFDATAREDIRECTVIEW\";\n ViewType2[\"DE_WF_DYNA_ACTION_VIEW\"] = \"DEWFDYNAACTIONVIEW\";\n ViewType2[\"DE_WF_DYNA_EDIT_VIEW\"] = \"DEWFDYNAEDITVIEW\";\n ViewType2[\"DE_WF_DYNA_EDIT_VIEW3\"] = \"DEWFDYNAEDITVIEW3\";\n ViewType2[\"DE_WF_DYNA_EXP_GRID_VIEW\"] = \"DEWFDYNAEXPGRIDVIEW\";\n ViewType2[\"DE_WF_DYNA_START_VIEW\"] = \"DEWFDYNASTARTVIEW\";\n ViewType2[\"DE_WF_EDIT_PROXY_DATA_VIEW\"] = \"DEWFEDITPROXYDATAVIEW\";\n ViewType2[\"DE_WF_EDIT_VIEW\"] = \"DEWFEDITVIEW\";\n ViewType2[\"DE_WF_EDIT_VIEW2\"] = \"DEWFEDITVIEW2\";\n ViewType2[\"DE_WF_EDIT_VIEW3\"] = \"DEWFEDITVIEW3\";\n ViewType2[\"DE_WF_EDIT_VIEW9\"] = \"DEWFEDITVIEW9\";\n ViewType2[\"DE_WF_EXP_VIEW\"] = \"DEWFEXPVIEW\";\n ViewType2[\"DE_WF_GRID_VIEW\"] = \"DEWFGRIDVIEW\";\n ViewType2[\"DE_WF_PROXY_DATA_VIEW\"] = \"DEWFPROXYDATAVIEW\";\n ViewType2[\"DE_WF_PROXY_RESULT_VIEW\"] = \"DEWFPROXYRESULTVIEW\";\n ViewType2[\"DE_WF_PROXY_START_VIEW\"] = \"DEWFPROXYSTARTVIEW\";\n ViewType2[\"DE_WF_START_VIEW\"] = \"DEWFSTARTVIEW\";\n ViewType2[\"DE_WIZARD_VIEW\"] = \"DEWIZARDVIEW\";\n return ViewType2;\n})(ViewType || {});\n\n// src/constant/view-mode.ts\nvar ViewMode = /* @__PURE__ */ ((ViewMode2) => {\n ViewMode2[\"ROUTE\"] = \"ROUTE\";\n ViewMode2[\"MODAL\"] = \"MODAL\";\n ViewMode2[\"DRAWER\"] = \"DRAWER\";\n ViewMode2[\"EMBED\"] = \"EMBED\";\n ViewMode2[\"POPOVER\"] = \"POPOVER\";\n return ViewMode2;\n})(ViewMode || {});\n\n// src/constant/sys-uiaction-tag.ts\nvar SysUIActionTag = /* @__PURE__ */ ((SysUIActionTag2) => {\n SysUIActionTag2[\"NEW\"] = \"New\";\n SysUIActionTag2[\"EDIT\"] = \"Edit\";\n SysUIActionTag2[\"REFRESH\"] = \"Refresh\";\n SysUIActionTag2[\"EXIT\"] = \"Exit\";\n SysUIActionTag2[\"SAVE_AND_EXIT\"] = \"SaveAndExit\";\n SysUIActionTag2[\"SAVE_AND_NEW\"] = \"SaveAndNew\";\n SysUIActionTag2[\"SAVE\"] = \"Save\";\n SysUIActionTag2[\"SAVE_ROW\"] = \"SaveRow\";\n SysUIActionTag2[\"REMOVE\"] = \"Remove\";\n SysUIActionTag2[\"REMOVE_AND_EXIT\"] = \"RemoveAndExit\";\n SysUIActionTag2[\"NEW_ROW\"] = \"NewRow\";\n SysUIActionTag2[\"TOGGLE_FILTER\"] = \"ToggleFilter\";\n SysUIActionTag2[\"IMPORT\"] = \"Import\";\n SysUIActionTag2[\"EXPORT_EXCEL\"] = \"ExportExcel\";\n SysUIActionTag2[\"SAVE_AND_START\"] = \"SaveAndStart\";\n SysUIActionTag2[\"VIEW_WF_STEP\"] = \"ViewWFStep\";\n SysUIActionTag2[\"NO\"] = \"No\";\n SysUIActionTag2[\"YES\"] = \"Yes\";\n SysUIActionTag2[\"CANCEL\"] = \"Cancel\";\n SysUIActionTag2[\"OK\"] = \"Ok\";\n SysUIActionTag2[\"SEARCH\"] = \"Search\";\n SysUIActionTag2[\"FINISH\"] = \"Finish\";\n SysUIActionTag2[\"NEXT_STEP\"] = \"NextStep\";\n SysUIActionTag2[\"PREV_STEP\"] = \"PrevStep\";\n SysUIActionTag2[\"ADD_SELECTION\"] = \"AddSelection\";\n SysUIActionTag2[\"REMOVE_SELECTION\"] = \"RemoveSelection\";\n SysUIActionTag2[\"REMOVE_ALL\"] = \"RemoveAll\";\n SysUIActionTag2[\"ADD_ALL\"] = \"AddAll\";\n SysUIActionTag2[\"LOGOUT\"] = \"Logout\";\n SysUIActionTag2[\"LOGIN\"] = \"Login\";\n SysUIActionTag2[\"CANCEL_CHANGES\"] = \"CancelChanges\";\n SysUIActionTag2[\"COPY\"] = \"Copy\";\n SysUIActionTag2[\"VIEW\"] = \"View\";\n SysUIActionTag2[\"TOGGLE_ROW_EDIT\"] = \"ToggleRowEdit\";\n SysUIActionTag2[\"LOAD_MORE\"] = \"LoadMore\";\n return SysUIActionTag2;\n})(SysUIActionTag || {});\n\n// src/constant/studio-event.ts\nvar StudioViewEvents = class {\n};\n/**\n * 视图加载\n */\nStudioViewEvents.onViewMounted = \"onMounted\";\n/**\n * 视图销毁\n */\nStudioViewEvents.onViewDestroyed = \"onDestroyed\";\nvar StudioPanelEvents = class {\n};\n/**\n * 点击事件\n */\nStudioPanelEvents.onClick = \"onClick\";\n/**\n * 值变更事件\n */\nStudioPanelEvents.onChange = \"onChange\";\n/**\n * 输入事件\n */\nStudioPanelEvents.onEnter = \"onEnter\";\n/**\n * 离开事件\n */\nStudioPanelEvents.onLeave = \"onLeave\";\nvar StudioControlEvents = class {\n};\n/**\n * 加载之前\n */\nStudioControlEvents.onBeforeLoad = \"onBeforeLoad\";\n/**\n * 加载成功\n */\nStudioControlEvents.onLoadSuccess = \"onLoadSuccess\";\n/**\n * 加载失败\n */\nStudioControlEvents.onLoadError = \"onLoadError\";\n/**\n * 加载草稿之前\n */\nStudioControlEvents.onBeforeLoadDraft = \"onBeforeLoadDraft\";\n/**\n * 加载草稿成功\n */\nStudioControlEvents.onLoadDraftSuccess = \"onLoadDraftSuccess\";\n/**\n * 加载草稿失败\n */\nStudioControlEvents.onLoadDraftError = \"onLoadDraftError\";\n/**\n * 保存之前\n */\nStudioControlEvents.onBeforeSave = \"onBeforeSave\";\n/**\n * 保存成功\n */\nStudioControlEvents.onSaveSuccess = \"onSaveSuccess\";\n/**\n * 保存失败\n */\nStudioControlEvents.onSaveError = \"onSaveError\";\n/**\n * 删除之前\n */\nStudioControlEvents.onBeforeRemove = \"onBeforeRemove\";\n/**\n * 删除成功\n */\nStudioControlEvents.onRemoveSuccess = \"onRemoveSuccess\";\n/**\n * 删除失败\n */\nStudioControlEvents.onRemoveError = \"onRemoveError\";\n/**\n * 原生默认工具栏的点击事件名称\n */\nStudioControlEvents.CLICK = \"onClick\";\n\n// src/utils/modal/modal.ts\nvar Modal = class {\n constructor(opts) {\n this.mode = \"EMBED\" /* EMBED */;\n this.viewUsage = 4;\n this.hooks = {\n shouldDismiss: new AsyncSeriesHook(),\n beforeDismiss: new AsyncSeriesHook()\n };\n /**\n * 外部注入的模态等组件实际的关闭操作\n * @author lxm\n * @date 2023-05-12 07:06:56\n */\n this._dismiss = (data) => {\n ibiz.log.error(\"\\u5916\\u90E8\\u5173\\u95ED\\u80FD\\u529B\\u672A\\u6CE8\\u518C\", data);\n };\n if (opts.mode) {\n this.mode = opts.mode;\n }\n if (opts.routeDepth) {\n this.routeDepth = opts.routeDepth;\n }\n if (opts.viewUsage) {\n this.viewUsage = opts.viewUsage;\n }\n if (opts.dismiss) {\n this._dismiss = opts.dismiss;\n }\n }\n /**\n * 注入模态等组件实际的关闭操作\n * @author lxm\n * @date 2023-07-18 03:05:22\n * @param {(data: IModalData) => void} dismiss\n */\n injectDismiss(dismiss) {\n this._dismiss = dismiss;\n }\n async dismiss(data = { ok: false, data: [] }) {\n const context = { allowClose: true };\n await this.hooks.shouldDismiss.call(context);\n if (!context.allowClose) {\n ibiz.log.debug(\"shouldDismiss\\u7ED3\\u679C\\u4E3Afalse,\\u5173\\u95ED\\u4E2D\\u65AD\\u3002\");\n return false;\n }\n await this.hooks.beforeDismiss.call(data);\n this._dismiss(data);\n this.destroy();\n return true;\n }\n /**\n * 执行完一次关闭后就会调销毁\n * @author lxm\n * @date 2023-07-18 03:32:26\n * @protected\n */\n destroy() {\n this.hooks.shouldDismiss.clear();\n this.hooks.beforeDismiss.clear();\n }\n};\n\n// src/utils/value-rule/value-rule.ts\nfunction filterValueRules(vrs, name) {\n return vrs.filter((vr) => {\n const { checkMode } = vr;\n const belongName = vr.deformItemName || vr.degridEditItemName;\n return checkMode !== 2 && belongName === name;\n });\n}\n\n// src/command/app/open-app-view/open-app-view.ts\nimport { ModelError as ModelError3, RuntimeError as RuntimeError4 } from \"@ibiz-template/core\";\nvar _OpenAppViewCommand = class _OpenAppViewCommand {\n constructor() {\n ibiz.commands.register(_OpenAppViewCommand.TAG, this.exec.bind(this));\n }\n /**\n * xhr模式打开\n *\n * @author chitanda\n * @date 2022-08-25 23:08:08\n * @param {string} appViewId\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n * @param {IData} [_opts={}]\n * @return {*} {(Promise<IModalData | void>)}\n */\n async exec(appViewId, context, params = {}, opts = {}) {\n const appView = await ibiz.hub.config.view.get(appViewId);\n if (!appView) {\n throw new RuntimeError4(\"\\u5E94\\u7528\\u89C6\\u56FE[\".concat(appViewId, \"]\\u4E0D\\u5B58\\u5728\"));\n }\n if (context.srfkey && appView.appDataEntityId) {\n const deName = calcDeCodeNameById(appView.appDataEntityId);\n context[deName] = context.srfkey;\n context.srfkey = void 0;\n }\n if (appView.redirectView) {\n const fullViewModel = await ibiz.hub.getAppView(appViewId);\n return openRedirectView(\n fullViewModel,\n context,\n params,\n opts.data\n );\n }\n const { openMode = \"INDEXVIEWTAB\" } = appView;\n switch (opts.openMode || openMode) {\n case \"INDEXVIEWTAB\":\n if (opts.noWaitRoute) {\n this.openIndexViewTab(appView, context, params);\n return;\n }\n return this.openIndexViewTab(appView, context, params);\n case \"POPUP\":\n throw new ModelError3(appView, \"\\u672A\\u652F\\u6301\\u7684\\u89C6\\u56FE\\u6253\\u5F00\\u6A21\\u5F0F: POPUP\");\n case \"POPUPMODAL\":\n return this.openModal(appView, context, params);\n case \"POPUPAPP\":\n throw new ModelError3(appView, \"\\u672A\\u652F\\u6301\\u7684\\u89C6\\u56FE\\u6253\\u5F00\\u6A21\\u5F0F: POPUPAPP\");\n case \"POPOVER\":\n return this.openPopover(appView, opts.event, context, params);\n case \"DRAWER_LEFT\":\n case \"DRAWER_RIGHT\":\n case \"DRAWER_TOP\":\n case \"DRAWER_BOTTOM\":\n return this.openDrawer(appView, context, params);\n case \"USER\":\n return this.openUserCustom(appView, context, params);\n default:\n return this.openIndexViewTab(appView, context, params);\n }\n }\n /**\n * 首页导航模式打开\n *\n * @author chitanda\n * @date 2022-07-25 20:07:43\n * @protected\n * @param {IViewConfig} appView\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n */\n openIndexViewTab(appView, context, params = {}) {\n return ibiz.openView.root(appView, context, params);\n }\n /**\n * 模态窗口打开\n *\n * @author chitanda\n * @date 2022-07-25 20:07:55\n * @protected\n * @param {IViewConfig} appView\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n * @return {*} {Promise<IModalData>}\n */\n async openModal(appView, context, params = {}) {\n return ibiz.openView.modal(appView, context, params);\n }\n /**\n * 气泡模式打开\n *\n * @author chitanda\n * @date 2022-07-25 20:07:17\n * @protected\n * @param {IViewConfig} appView\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n * @return {*} {Promise<IModalData>}\n */\n async openPopover(appView, event, context, params = {}) {\n return ibiz.openView.popover(appView, event, context, params);\n }\n /**\n * 抽屉模式打开\n *\n * @author chitanda\n * @date 2022-07-25 20:07:08\n * @protected\n * @param {IViewConfig} appView\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n * @return {*} {Promise<void>}\n */\n async openDrawer(appView, context, params = {}) {\n return ibiz.openView.drawer(appView, context, params);\n }\n /**\n * 用户自定义\n *\n * @author chitanda\n * @date 2022-07-25 20:07:41\n * @protected\n * @param {IViewConfig} appView\n * @param {IContext} [context]\n * @param {IParams} [params={}]\n * @return {*} {Promise<void>}\n */\n async openUserCustom(appView, context, params = {}) {\n return ibiz.openView.custom(appView, context, params);\n }\n};\n_OpenAppViewCommand.TAG = \"ibiz.app-view.open\";\nvar OpenAppViewCommand = _OpenAppViewCommand;\n\n// src/command/app/app-func/app-func.ts\nvar _AppFuncCommand = class _AppFuncCommand {\n constructor() {\n ibiz.commands.register(_AppFuncCommand.TAG, this.exec.bind(this));\n }\n /**\n * 执行应用功能\n *\n * @author chitanda\n * @date 2022-07-25 17:07:35\n * @param {IAppFunc} appFunc 应用功能模型\n * @param {IContext} [context] 执行上下文\n * @param {IParams} [params={}] 参数\n * @param {IData} [opts={}] 额外参数,与具体执行对象规划好的额外参数。如需要给飘窗使用的 event 事件对象.\n * @return {*} {Promise<void>}\n */\n async exec(appFuncId, context, params = {}, opts = {}) {\n const appFunc = ibiz.hub.getApp(context.srfappid).getAppFunc(appFuncId);\n if (!appFunc) {\n throw new RuntimeError5(\"\\u627E\\u4E0D\\u5230\\u53EB\".concat(appFuncId, \"\\u7684\\u5E94\\u7528\\u529F\\u80FD\"));\n }\n const { navigateContexts, navigateParams, appFuncType } = appFunc;\n const _context = context.clone();\n Object.assign(_context, convertNavData(navigateContexts, context, params));\n const _params = convertNavData(navigateParams, context, params);\n switch (appFuncType) {\n case \"APPVIEW\":\n return this.openAppView(appFunc, _context, _params, opts);\n case \"OPENHTMLPAGE\":\n return this.openHtmlPage(appFunc);\n case \"PDTAPPFUNC\":\n return this.openPdAppFunc(appFunc, _context, _params);\n case \"JAVASCRIPT\":\n return this.executeJavaScript(appFunc, _context, _params);\n case \"CUSTOM\":\n return this.custom(appFunc, _context, _params);\n default:\n throw new ModelError4(appFunc, \"\\u672A\\u652F\\u6301\\u7684\\u5E94\\u7528\\u529F\\u80FD\\u7C7B\\u578B: \".concat(appFuncType));\n }\n }\n /**\n * 打开应用视图\n *\n * @author chitanda\n * @date 2022-07-25 18:07:49\n * @protected\n * @param {IAppFunc} appFunc\n * @param {IContext} [context]\n * @param {IParams} [params]\n * @return {*} {Promise<void>}\n */\n async openAppView(appFunc, context, params, opts) {\n if (!appFunc.appViewId) {\n throw new RuntimeError5(\"\\u5E94\\u7528\\u89C6\\u56FE[\".concat(appFunc.appViewId, \"]\\u4E0D\\u5B58\\u5728\"));\n }\n return ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n appFunc.appViewId,\n context,\n params,\n opts\n );\n }\n /**\n * 打开HTML页面\n *\n * @author chitanda\n * @date 2022-07-25 18:07:56\n * @protected\n * @param {IAppFunc} appFunc\n */\n openHtmlPage(appFunc) {\n const url = appFunc.htmlPageUrl;\n window.open(url, \"_blank\");\n }\n /**\n * 应用预置功能\n *\n * @author chitanda\n * @date 2022-07-25 18:07:22\n * @protected\n * @param {IAppFunc} appFunc\n * @param {IContext} [context]\n * @param {IParams} [params]\n */\n openPdAppFunc(appFunc, context, params) {\n ibiz.log.warn(\"openPdAppFunc\", appFunc, context, params);\n throw new RuntimeError5(\"\\u672A\\u5B9E\\u73B0\");\n }\n /**\n * 执行 JavaScript 脚本\n *\n * @author chitanda\n * @date 2022-07-25 18:07:09\n * @protected\n * @param {IAppFunc} appFunc\n * @param {IContext} [context]\n * @param {IParams} [params]\n */\n executeJavaScript(appFunc, context, params) {\n ibiz.log.warn(\"executeJavaScript\", appFunc, context, params);\n throw new RuntimeError5(\"\\u672A\\u5B9E\\u73B0\");\n }\n /**\n * 自定义应用功能\n *\n * @author chitanda\n * @date 2022-07-25 18:07:51\n * @protected\n * @param {IAppFunc} appFunc\n * @param {IContext} [context]\n * @param {IParams} [params]\n */\n custom(appFunc, context, params) {\n ibiz.log.warn(\"custom\", appFunc, context, params);\n throw new RuntimeError5(\"\\u672A\\u5B9E\\u73B0\");\n }\n};\n/**\n * 指令标识\n *\n * @author chitanda\n * @date 2022-07-25 17:07:20\n * @see 具体实现 {@link AppFuncCommand.exec}\n * @static\n */\n_AppFuncCommand.TAG = \"ibiz.app-func.exec\";\nvar AppFuncCommand = _AppFuncCommand;\n\n// src/command/index.ts\nfunction installCommand() {\n new AppFuncCommand();\n new OpenAppViewCommand();\n}\n\n// src/service/utils/app-counter/app-counter.ts\nimport { IBizContext, RuntimeModelError as RuntimeModelError4 } from \"@ibiz-template/core\";\nimport { notNilEmpty as notNilEmpty4, QXEvent } from \"qx-util\";\nimport { clone as clone2 } from \"ramda\";\nvar AppCounter = class {\n /**\n * Creates an instance of AppCounter.\n *\n * @author chitanda\n * @date 2022-10-26 20:10:55\n * @param {IAppCounter} model 应用计数器模型\n */\n constructor(model) {\n this.model = model;\n this.destroyed = false;\n this.context = IBizContext.create();\n this.params = {};\n this.evt = new QXEvent();\n /**\n * 计数器数据\n *\n * @author chitanda\n * @date 2022-10-26 19:10:08\n * @protected\n * @type {IData}\n */\n this.data = {};\n }\n /**\n * 计数器是否已经销毁\n *\n * @author chitanda\n * @date 2022-10-26 20:10:55\n * @protected\n * @type {boolean}\n */\n get isDestroyed() {\n return this.destroyed;\n }\n /**\n * 计数器初始化\n *\n * @author chitanda\n * @date 2022-10-26 19:10:24\n * @param {IParams} [context]\n * @param {IParams} [params]\n */\n async init(context, params) {\n this.setParams(context, params);\n this.appDataEntityId = this.model.appDataEntityId;\n const action = this.model.getAppDEActionId;\n if (!action) {\n throw new RuntimeModelError4(this.model, \"\\u672A\\u627E\\u5230\\u83B7\\u53D6\\u8BA1\\u6570\\u5668\\u884C\\u4E3A!\");\n }\n this.action = action;\n this.interval();\n await this.load();\n }\n /**\n * 设置上下文以及查询参数\n *\n * @author chitanda\n * @date 2022-10-26 19:10:58\n * @protected\n * @param {IParams} [context]\n * @param {IParams} [params]\n */\n setParams(context, params) {\n if (context) {\n this.context = clone2(context);\n }\n if (params) {\n this.params = clone2(params);\n }\n }\n /**\n * 计数器定时刷新\n *\n * @author chitanda\n * @date 2022-10-26 18:10:13\n * @protected\n */\n interval() {\n this.destroyInterval();\n this.intervalTimer = setInterval(() => {\n if (this.evt.getSize(\"change\") > 0) {\n this.load();\n }\n }, this.model.timer || 6e3);\n }\n /**\n * 销毁定时器自动刷新\n *\n * @author chitanda\n * @date 2022-10-26 18:10:31\n * @protected\n */\n destroyInterval() {\n if (this.intervalTimer) {\n clearInterval(this.intervalTimer);\n this.intervalTimer = null;\n }\n }\n /**\n * 加载计数器\n *\n * @author chitanda\n * @date 2022-10-26 19:10:38\n * @protected\n * @return {*} {Promise<IData>}\n */\n async load() {\n const app = ibiz.hub.getApp(this.context.srfappid);\n const res = await app.deService.exec(\n this.appDataEntityId,\n this.action,\n this.context,\n this.params\n );\n if (res.ok) {\n this.data = res.data;\n this.evt.emit(\"change\", this.data);\n }\n return this.data;\n }\n /**\n * 计数器刷新\n *\n * @author chitanda\n * @date 2022-10-26 19:10:46\n * @param {IParams} [context]\n * @param {IParams} [params]\n * @return {*} {Promise<IData>}\n */\n refresh(context, params) {\n this.setParams(context, params);\n return this.load();\n }\n /**\n * 计数器数据变更事件监听\n *\n * @author chitanda\n * @date 2022-10-26 20:10:13\n * @param {(data: IData) => void} fn\n * @param {boolean} [immediate=true] 当有计时器数据时,立即触发一次回调\n */\n onChange(fn, immediate = true) {\n this.evt.on(\"change\", fn);\n if (immediate && notNilEmpty4(this.data)) {\n fn(this.data);\n }\n }\n /**\n * 取消计数器数据变更监听\n *\n * @author chitanda\n * @date 2022-10-26 20:10:13\n * @param {(data: IData) => void} fn\n */\n offChange(fn) {\n this.evt.off(\"change\", fn);\n }\n /**\n * 根据计数器标识,获取计数器数值\n *\n * @author chitanda\n * @date 2022-10-26 20:10:08\n * @param {string} tag\n * @return {*} {number}\n */\n getCounter(tag) {\n return this.data[tag.toLowerCase()] || 0;\n }\n /**\n * 销毁计数器\n *\n * @author chitanda\n * @date 2022-10-26 18:10:31\n */\n destroy() {\n this.destroyed = true;\n this.context.destroy();\n this.destroyInterval();\n this.evt.reset();\n }\n};\n\n// src/service/utils/de-dq-cond/ps-de-dq-cond-engine.ts\nimport { isEmpty as isEmpty3 } from \"ramda\";\n\n// src/service/utils/de-dq-cond/ps-model-cond-engine-base.ts\nvar PSModelCondEngineBase = class {\n constructor() {\n /**\n * 根分组条件\n *\n * @private\n * @type {(PSModelGroupCondBase | null)}\n * @memberof PSModelCondEngineBase\n */\n this.psModelGroupCondBase = null;\n }\n /**\n * 解析条件\n *\n * @param {IData[]} obj\n * @memberof PSModelCondEngineBase\n */\n parse(obj) {\n if (obj instanceof Array) {\n const psModelGroupCondBase = this.createPSModelGroupCond();\n psModelGroupCondBase.parse(obj);\n this.psModelGroupCondBase = psModelGroupCondBase;\n }\n }\n /**\n * 测试项\n *\n * @protected\n * @param {string} strCondOp\n * @param {*} objValue\n * @param {*} objCondValue\n * @return {*} {boolean}\n * @memberof PSModelCondEngineBase\n */\n testSingleCond(strCondOp, objValue, objCondValue) {\n try {\n if (\"ISNULL\" /* CONDOP_ISNULL */ === strCondOp) {\n return objValue == null;\n }\n if (\"ISNOTNULL\" /* CONDOP_ISNOTNULL */ === strCondOp) {\n return objValue != null;\n }\n if (\"EQ\" /* CONDOP_EQ */ === strCondOp || \"ABSEQ\" /* CONDOP_ABSEQ */ === strCondOp || \"GT\" /* CONDOP_GT */ === strCondOp || \"GTANDEQ\" /* CONDOP_GTANDEQ */ === strCondOp || \"LT\" /* CONDOP_LT */ === strCondOp || \"LTANDEQ\" /* CONDOP_LTANDEQ */ === strCondOp || \"NOTEQ\" /* CONDOP_NOTEQ */ === strCondOp) {\n let nRet = -1;\n if (objValue == objCondValue) {\n nRet = 0;\n } else if (objValue > objCondValue) {\n nRet = 1;\n }\n if (\"EQ\" /* CONDOP_EQ */ === strCondOp || \"ABSEQ\" /* CONDOP_ABSEQ */ === strCondOp) {\n return nRet === 0;\n }\n if (\"GT\" /* CONDOP_GT */ === strCondOp) {\n return nRet > 0;\n }\n if (\"GTANDEQ\" /* CONDOP_GTANDEQ */ === strCondOp) {\n return nRet >= 0;\n }\n if (\"LT\" /* CONDOP_LT */ === strCondOp) {\n return nRet < 0;\n }\n if (\"LTANDEQ\" /* CONDOP_LTANDEQ */ === strCondOp) {\n return nRet <= 0;\n }\n if (\"NOTEQ\" /* CONDOP_NOTEQ */ === strCondOp) {\n return nRet !== 0;\n }\n }\n if (\"LIKE\" /* CONDOP_LIKE */ === strCondOp) {\n if (objValue != null && objCondValue != null) {\n return objValue.toString().toUpperCase().indexOf(objCondValue.toString().toUpperCase()) !== -1;\n }\n return false;\n }\n if (\"LEFTLIKE\" /* CONDOP_LEFTLIKE */ === strCondOp) {\n if (objValue != null && objCondValue != null) {\n return objValue.toString().toUpperCase().indexOf(objCondValue.toString().toUpperCase()) === 0;\n }\n return false;\n }\n } catch (err) {\n ibiz.log.error(err);\n }\n return false;\n }\n /**\n * 获取根分组条件\n *\n * @return {*} {PSModelGroupCondBase}\n * @memberof PSModelCondEngineBase\n */\n getPSModelGroupCondBase() {\n return this.psModelGroupCondBase;\n }\n};\n\n// src/service/utils/de-dq-cond/ps-model-group-cond-base.ts\nimport { RuntimeError as RuntimeError6 } from \"@ibiz-template/core\";\n\n// src/service/utils/de-dq-cond/ps-model-cond-base.ts\nvar PSModelCondBase = class {\n constructor() {\n this.strCondOp = null;\n }\n getCondOp() {\n return this.strCondOp;\n }\n setCondOp(strCondOp) {\n this.strCondOp = strCondOp;\n }\n};\n\n// src/service/utils/de-dq-cond/ps-model-single-cond-base.ts\nvar PSModelSingleCondBase = class extends PSModelCondBase {\n /**\n * 编译条件\n *\n * @author chitanda\n * @date 2022-08-17 23:08:35\n * @param {unknown[]} arr\n */\n parse(arr) {\n const nCount = arr.length;\n let bOpStart = true;\n let bParamStart = false;\n let bValueStart = false;\n for (let i = 0; i < nCount; i++) {\n if (bOpStart) {\n const strText = arr[i];\n this.setCondOp(strText);\n bOpStart = false;\n bParamStart = true;\n continue;\n }\n if (bParamStart) {\n const strText = arr[i];\n this.setParam(strText);\n bParamStart = false;\n bValueStart = true;\n continue;\n }\n if (bValueStart) {\n const obj = arr[i];\n if (obj instanceof Object && !(obj instanceof Array)) {\n const data = obj;\n if (data.type != null) {\n this.setValueType(data.type.toString());\n }\n if (data.value != null) {\n this.setValue(data.value.toString());\n }\n } else {\n this.setValue(obj);\n }\n break;\n }\n }\n }\n getValueType() {\n return this.strValueType;\n }\n setValueType(strValueType) {\n this.strValueType = strValueType;\n }\n getValue() {\n return this.strValue;\n }\n setValue(strValue) {\n this.strValue = strValue;\n }\n getParamType() {\n return this.strParamType;\n }\n setParamType(strParamType) {\n this.strParamType = strParamType;\n }\n getParam() {\n return this.strParam;\n }\n setParam(strParam) {\n this.strParam = strParam;\n }\n};\n\n// src/service/utils/de-dq-cond/ps-model-group-cond-base.ts\nvar PSModelGroupCondBase = class _PSModelGroupCondBase extends PSModelCondBase {\n constructor() {\n super(...arguments);\n /**\n * 子条件项\n *\n * @private\n * @type {PSModelCondBase[]}\n * @memberof PSModelGroupCondBase\n */\n this.childCondList = [];\n /**\n * 是否取反\n *\n * @private\n * @memberof PSModelGroupCondBase\n */\n this.bNotMode = false;\n }\n /**\n * 解析分组条件\n *\n * @param {unknown[]} arr\n * @memberof PSModelGroupCondBase\n */\n parse(arr) {\n const nCount = arr.length;\n let bNotStart = true;\n let bOpStart = true;\n let bCondStart = false;\n for (let i = 0; i < nCount; i++) {\n if (bNotStart && bOpStart) {\n const strText = arr[i];\n if (strText === \"!\") {\n this.setNotMode(true);\n bNotStart = false;\n continue;\n }\n }\n if (bOpStart) {\n const strText = arr[i];\n this.setCondOp(strText);\n bOpStart = false;\n bNotStart = false;\n bCondStart = true;\n continue;\n }\n if (bCondStart) {\n const list = arr[i];\n if (list instanceof Array) {\n list.forEach((item) => {\n if (item.length > 0) {\n const strText = item[0].toString();\n if (strText === \"!\" || \"OR\" /* CONDOP_OR */ === strText || \"AND\" /* CONDOP_AND */ === strText) {\n const child = new _PSModelGroupCondBase();\n child.parse(item);\n this.childCondList.push(child);\n } else {\n const child = new PSModelSingleCondBase();\n child.parse(item);\n this.childCondList.push(child);\n }\n }\n });\n } else {\n throw new RuntimeError6(\"\\u503C\\u5FC5\\u987B\\u4E3A\\u6570\\u7EC4\");\n }\n }\n }\n }\n setNotMode(bNotMode) {\n this.bNotMode = bNotMode;\n }\n isNotMode() {\n return this.bNotMode;\n }\n getChildPSModelCondBases() {\n return this.childCondList;\n }\n};\n\n// src/service/utils/de-dq-cond/ps-model-group-cond.ts\nvar PSDEDQGroupCond = class extends PSModelGroupCondBase {\n};\n\n// src/service/utils/de-dq-cond/ps-model-single-cond.ts\nvar PSDEDQSingleCond = class extends PSModelSingleCondBase {\n};\n\n// src/service/utils/de-dq-cond/ps-de-dq-cond-engine.ts\nvar _PSDEDQCondEngine = class _PSDEDQCondEngine extends PSModelCondEngineBase {\n /**\n * 测试\n *\n * @param {IData} data 检测的数据\n * @param {SearchFilter} filter 过滤条件\n * @return {*} {boolean}\n * @memberof PSDEDQCondEngine\n */\n test(data, filter) {\n return this.testCond(this.getPSModelGroupCondBase(), data, filter);\n }\n /**\n * 查询条件判断\n *\n * @author chitanda\n * @date 2022-08-17 23:08:11\n * @protected\n * @param {PSModelCondBase} cond\n * @param {IData} data\n * @param {SearchFilter} filter\n * @return {*} {boolean}\n */\n testCond(cond, data, filter) {\n if (cond instanceof PSModelGroupCondBase) {\n const list = cond.getChildPSModelCondBases();\n if (list == null || isEmpty3(list)) {\n return !cond.isNotMode();\n }\n const bAnd = \"AND\" /* CONDOP_AND */ === cond.getCondOp();\n let bRet = bAnd;\n for (let i = 0; i < list.length; i++) {\n const childCond = list[i];\n if (this.testCond(childCond, data, filter)) {\n if (!bAnd) {\n bRet = true;\n break;\n }\n } else if (bAnd) {\n bRet = false;\n break;\n }\n }\n if (cond.isNotMode()) {\n return !bRet;\n }\n return bRet;\n }\n if (cond instanceof PSModelSingleCondBase) {\n if (isEmpty3(cond.getParam())) {\n ibiz.log.warn(\"\\u6CA1\\u6709\\u6307\\u5B9A\\u5C5E\\u6027\\u540D\\u79F0\", cond);\n }\n const objValue = data[cond.getParam().toLowerCase()];\n let objCondValue = null;\n const valType = cond.getValueType();\n const val = cond.getValue();\n if (valType != null && !isEmpty3(valType)) {\n if (isEmpty3(val)) {\n ibiz.log.warn(\"\\u6CA1\\u6709\\u6307\\u5B9A\\u4E0A\\u4E0B\\u6587\\u53C2\\u6570\\u540D\\u79F0\");\n }\n if (_PSDEDQCondEngine.PARAMTYPE_WEBCONTEXT === valType) {\n objCondValue = filter.data[val.toLowerCase()];\n } else if (_PSDEDQCondEngine.PARAMTYPE_DATACONTEXT === valType) {\n objCondValue = filter.getValue(val.toLowerCase());\n }\n } else {\n objCondValue = cond.getValue();\n }\n return this.testSingleCond(cond.getCondOp(), objValue, objCondValue);\n }\n ibiz.log.warn(\"\\u65E0\\u6CD5\\u8BC6\\u522B\\u7684\\u6761\\u4EF6\\u5BF9\\u8C61\", cond);\n return false;\n }\n createPSModelSingleCond() {\n return new PSDEDQSingleCond();\n }\n createPSModelGroupCond() {\n return new PSDEDQGroupCond();\n }\n};\n/**\n * 数据上下文\n *\n * @static\n * @memberof PSDEDQCondEngine\n */\n_PSDEDQCondEngine.PARAMTYPE_DATACONTEXT = \"DATACONTEXT\";\n/**\n * 网页请求上下文\n *\n * @static\n * @memberof PSDEDQCondEngine\n */\n_PSDEDQCondEngine.PARAMTYPE_WEBCONTEXT = \"WEBCONTEXT\";\nvar PSDEDQCondEngine = _PSDEDQCondEngine;\n\n// src/service/utils/de-dq-cond-util/de-dq-cond-util.ts\nimport { ModelError as ModelError5 } from \"@ibiz-template/core\";\nvar DEDQCondUtil = class {\n /**\n * 根据数据查询获取查询\n *\n * @author chitanda\n * @date 2022-08-25 17:08:04\n * @static\n * @param {IAppDEDataSet} dataSet\n * @return {*} {PSDEDQCondEngine}\n */\n static getCond(dataSet) {\n if (this.map.has(dataSet)) {\n return this.map.get(dataSet);\n }\n const groups = dataSet.dedqgroupConditions;\n if (groups) {\n const cond = new PSDEDQCondEngine();\n cond.parse([\"OR\", this.calcCond(groups)]);\n this.map.set(dataSet, cond);\n return cond;\n }\n return null;\n }\n /**\n * 计算查询条件\n *\n * @author chitanda\n * @date 2022-08-25 17:08:39\n * @protected\n * @static\n * @param {IDEDQCondition[]} items\n * @return {*} {unknown[]}\n */\n static calcCond(items) {\n const arr = [];\n items.forEach((item) => {\n const condArr = [];\n if (item.condType === \"GROUP\") {\n const cond = item;\n if (cond.notMode) {\n condArr.push(\"!\");\n }\n condArr.push(item.condOp);\n const children = cond.dedqconditions;\n if (children) {\n const child = this.calcCond(children);\n condArr.push(child);\n }\n } else if (item.condType === \"SINGLE\") {\n const cond = item;\n condArr.push(cond.fieldName);\n if (cond.condValue) {\n } else {\n condArr.push(\"\");\n }\n } else {\n throw new ModelError5(item, \"\\u6682\\u672A\\u652F\\u6301\\u7684\\u67E5\\u8BE2\\u6761\\u4EF6\\u7C7B\\u578B: \".concat(item.condType));\n }\n arr.push(condArr);\n });\n return arr;\n }\n};\n/**\n * 查询条件缓存\n *\n * @author chitanda\n * @date 2022-08-25 17:08:57\n * @protected\n * @static\n * @type {WeakMap<IAppDEDataSet, PSDEDQCondEngine>}\n */\nDEDQCondUtil.map = /* @__PURE__ */ new WeakMap();\n\n// src/service/utils/dynamic-code-list/dynamic-code-list.ts\nimport { ModelError as ModelError6, RuntimeModelError as RuntimeModelError5 } from \"@ibiz-template/core\";\nimport { isNil as isNil3 } from \"ramda\";\nvar DynamicCodeListCache = class {\n constructor(codeList) {\n /**\n * 缓存的map,key是context和params合成的字符串\n *\n * @author lxm\n * @date 2022-08-26 14:08:19\n * @protected\n */\n this.cache = /* @__PURE__ */ new Map();\n /**\n * 是否是预定义类型\n *\n * @author lxm\n * @date 2022-10-20 10:10:48\n * @protected\n * @type {boolean}\n */\n this.isPredefined = false;\n this.codeList = codeList;\n }\n /**\n * 初始化\n *\n * @author lxm\n * @date 2022-08-26 14:08:28\n * @returns {*} {Promise<void>}\n */\n async init() {\n const fn = async () => {\n const { predefinedType } = this.codeList;\n if (predefinedType) {\n this.isPredefined = true;\n if (![\"OPERATOR\", \"RUNTIME\"].includes(predefinedType)) {\n throw new ModelError6(\n this.codeList,\n \"\\u9884\\u5B9A\\u4E49\\u7C7B\\u578B\".concat(predefinedType, \"\\u6682\\u4E0D\\u652F\\u6301\")\n );\n }\n return;\n }\n this.initPromise = void 0;\n };\n this.initPromise = fn();\n return this.initPromise;\n }\n /**\n * 把数据转换成代码项\n *\n * @author lxm\n * @date 2022-08-26 15:08:24\n * @param {IData} data\n * @returns {*}\n */\n convertData(data) {\n const result = {};\n const { valueAppDEFieldId, textAppDEFieldId } = this.codeList;\n const value = valueAppDEFieldId ? data[valueAppDEFieldId] : data.srfkey;\n result.id = value;\n result.value = value;\n result.text = textAppDEFieldId ? data[textAppDEFieldId] : data.srfmajortext;\n return Object.freeze(result);\n }\n /**\n * 加载服务获取数据,返回代码项\n *\n * @author lxm\n * @date 2022-08-26 14:08:08\n * @protected\n * @param {IParams} [context={}]\n * @param {IParams} [params={}]\n * @returns {*} {Promise<CodeListItem[]>}\n */\n async load(context = {}, params = {}) {\n const app = ibiz.hub.getApp(context.srfappid);\n if (this.isPredefined) {\n if (!params.size) {\n params.size = 1e4;\n }\n const res2 = await app.net.get(\n \"/dictionaries/codelist/\".concat(this.codeList.codeName),\n params\n );\n return Object.freeze(res2.data.items);\n }\n const { appDataEntityId, appDEDataSetId } = this.codeList;\n if (!appDataEntityId) {\n throw new RuntimeModelError5(this.codeList, \"\\u672A\\u914D\\u7F6E\\u5E94\\u7528\\u5B9E\\u4F53\");\n }\n if (!appDEDataSetId) {\n throw new RuntimeModelError5(this.codeList, \"\\u672A\\u914D\\u7F6E\\u6570\\u636E\\u96C6\");\n }\n const res = await app.deService.exec(\n appDataEntityId,\n appDEDataSetId,\n context,\n {},\n params\n );\n let resultItems = [];\n if (res.data.length) {\n resultItems = res.data.map((item) => {\n return this.convertData(item);\n });\n }\n return resultItems;\n }\n /**\n * 获取动态的代码项\n *\n * @author lxm\n * @date 2022-08-26 14:08:44\n * @param {IParams} [context={}]\n * @param {IParams} [params={}]\n * @returns {*} {Promise<IData[]>}\n */\n async get(context = {}, params = {}) {\n if (this.initPromise) {\n await this.initPromise;\n }\n if (!this.codeList.enableCache) {\n return this.load(context, params);\n }\n const key = JSON.stringify(context) + JSON.stringify(params);\n if (this.cache.has(key)) {\n const cacheData2 = this.cache.get(key);\n if (cacheData2.expirationTime > (/* @__PURE__ */ new Date()).getTime()) {\n return cacheData2.promise ? cacheData2.promise : cacheData2.items;\n }\n this.cache.delete(key);\n }\n const promise = this.load(context, params);\n const { cacheTimeout } = this.codeList;\n const waitTime = cacheTimeout === -1 || isNil3(cacheTimeout) ? ibiz.config.codeList.timeout : this.codeList.cacheTimeout;\n const cacheData = {\n expirationTime: (/* @__PURE__ */ new Date()).getTime() + waitTime,\n promise\n };\n this.cache.set(key, cacheData);\n const result = await promise;\n cacheData.items = result;\n delete cacheData.promise;\n return result;\n }\n};\n\n// src/service/utils/de-cache/de-cache.ts\nimport { where, equals, clone as clone3, isNil as isNil5, isEmpty as isEmpty5 } from \"ramda\";\nimport { createUUID } from \"qx-util\";\n\n// src/service/utils/service-exist-util/service-exist-util.ts\nimport { RuntimeError as RuntimeError7 } from \"@ibiz-template/core\";\nimport { isEmpty as isEmpty4, isNil as isNil4 } from \"ramda\";\nfunction isExistSrfKey(funcName, entity) {\n if (entity != null) {\n const { srfkey } = entity;\n if (!isNil4(srfkey) && !isEmpty4(srfkey)) {\n return true;\n }\n }\n throw new RuntimeError7(\"\\u6267\\u884C\\u300C\".concat(funcName, \"\\u300D\\u4E0D\\u5B58\\u5728\\u300Csrfkey\\u300D\\u65E0\\u6CD5\\u5904\\u7406\"));\n}\nfunction isExistSessionId(funcName, context) {\n const { srfsessionid } = context;\n if (!isNil4(srfsessionid) && !isEmpty4(srfsessionid)) {\n return true;\n }\n throw new RuntimeError7(\"\\u6267\\u884C\\u300C\".concat(funcName, \"\\u300D\\u4E0D\\u5B58\\u5728\\u300Csrfsessionid\\u300D\\u65E0\\u6CD5\\u5904\\u7406\"));\n}\n\n// src/service/utils/de-cache/de-cache.ts\nvar DECache = class {\n constructor() {\n /**\n * 数据缓存\n *\n * @author chitanda\n * @date 2022-08-17 23:08:08\n * @type {Map<string, Map<string, IDataEntity>>}\n */\n this.cacheMap = /* @__PURE__ */ new Map();\n }\n /**\n * 强制设置数据,忽略其他逻辑\n *\n * @author chitanda\n * @date 2022-05-10 17:05:45\n * @param {IParams} context\n * @param {IDataEntity} entity\n */\n forceAdd(context, entity) {\n const map = this.getCacheByTag(context);\n const data = map.get(entity.srfkey);\n if (data) {\n data.assign(entity);\n ibiz.log.warn(\"forceAdd\", entity.srfkey, entity);\n }\n }\n /**\n * 强制更新数据,非合并,忽略其他逻辑\n *\n * @author chitanda\n * @date 2022-05-10 17:05:27\n * @param {IParams} context\n * @param {IDataEntity} entity\n */\n forceUpdate(context, entity) {\n const map = this.getCacheByTag(context);\n map.set(entity.srfkey, clone3(entity));\n ibiz.log.warn(\"forceUpdate\", entity.srfkey, entity);\n }\n /**\n * 强制删除数据,忽略其他逻辑\n *\n * @author chitanda\n * @date 2022-05-10 17:05:08\n * @param {IParams} context\n * @param {string} srfKey\n */\n forceDelete(context, srfKey) {\n const map = this.getCacheByTag(context);\n map.delete(srfKey);\n ibiz.log.warn(\"forceDelete\", srfKey);\n }\n /**\n * 新增数据\n *\n * @param {*} context\n * @param {IDataEntity} entity\n * @return {*} {boolean}\n * @memberof EntityCache\n */\n add(context, entity) {\n try {\n isExistSessionId(\"add\", context);\n if (isNil5(entity.srfkey) || isEmpty5(entity.srfkey)) {\n entity.srfkey = createUUID();\n }\n entity.srftempdate = (/* @__PURE__ */ new Date()).getTime();\n const map = this.getCacheByTag(context);\n map.set(entity.srfkey, clone3(entity));\n ibiz.log.warn(\"add\", entity.srfkey, entity);\n return entity;\n } catch (err) {\n ibiz.log.error(err);\n return null;\n }\n }\n /**\n * 查找数据\n *\n * @param {*} context\n * @param {string} srfKey\n * @return {*} {IDataEntity}\n * @memberof EntityCache\n */\n get(context, srfKey) {\n try {\n isExistSessionId(\"get\", context);\n const map = this.getCacheByTag(context);\n const data = map.get(srfKey);\n ibiz.log.warn(\"get\", srfKey, data);\n return clone3(data);\n } catch (err) {\n ibiz.log.error(err);\n return null;\n }\n }\n /**\n * 更新数据\n *\n * @param {IParams} context\n * @param {IDataEntity} entity\n * @return {*} {IDataEntity}\n * @memberof EntityCache\n */\n update(context, entity) {\n try {\n isExistSessionId(\"update\", context);\n isExistSrfKey(\"update\", entity);\n entity.srftempdate = (/* @__PURE__ */ new Date()).getTime();\n const map = this.getCacheByTag(context);\n const data = map.get(entity.srfkey);\n if (data) {\n data.assign(entity);\n map.set(entity.srfkey, data);\n ibiz.log.warn(\"update\", entity.srfkey, entity);\n return clone3(data);\n }\n throw new Error(\"\\u6570\\u636E\\u4E0D\\u5B58\\u5728\\uFF0C\\u65E0\\u6CD5\\u66F4\\u65B0!\");\n } catch (err) {\n ibiz.log.error(err);\n return null;\n }\n }\n /**\n * 删除数据\n *\n * @param {IParams} context\n * @param {string} srfKey\n * @return {*} {(IDataEntity | null)}\n * @memberof EntityCache\n */\n delete(context, srfKey) {\n try {\n isExistSessionId(\"delete\", context);\n const map = this.getCacheByTag(context);\n const key = srfKey;\n if (map.has(key)) {\n const data = map.get(key);\n data.srftempdate = (/* @__PURE__ */ new Date()).getTime();\n map.delete(key);\n ibiz.log.warn(\"delete\", key);\n return data;\n }\n return null;\n } catch (err) {\n ibiz.log.error(err);\n return null;\n }\n }\n /**\n * 批量创建临时数据\n *\n * @author chitanda\n * @date 2022-03-23 11:03:52\n * @param {IParams} context\n * @param {IDataEntity[]} entities\n * @return {*} {IDataEntity[]}\n */\n createBatch(context, entities) {\n try {\n isExistSessionId(\"add\", context);\n const map = this.getCacheByTag(context);\n for (let i = 0; i < entities.length; i++) {\n const entity = entities[i];\n if (isNil5(entity.srfkey) || isEmpty5(entity.srfkey)) {\n entity.srfkey = createUUID();\n }\n entity.srftempdate = (/* @__PURE__ */ new Date()).getTime();\n const data = clone3(entity);\n map.set(entity.srfkey, data);\n entities[i] = data;\n ibiz.log.warn(\"add\", entity.srfkey, entity);\n }\n return entities;\n } catch (err) {\n ibiz.log.error(err);\n }\n return [];\n }\n /**\n * 批量更新数据\n *\n * @author chitanda\n * @date 2022-03-23 10:03:17\n * @param {IParams} context\n * @param {IDataEntity[]} entities\n * @return {*} {IDataEntity[]}\n */\n updateBatch(context, entities) {\n try {\n isExistSessionId(\"update\", context);\n const map = this.getCacheByTag(context);\n for (let i = 0; i < entities.length; i++) {\n const entity = entities[i];\n isExistSrfKey(\"update\", entity);\n entity.srftempdate = (/* @__PURE__ */ new Date()).getTime();\n const data = map.get(entity.srfkey);\n if (data) {\n data.assign(entity);\n map.set(entity.srfkey, data);\n ibiz.log.warn(\"update\", entity.srfkey, entity);\n entities[i] = clone3(data);\n } else {\n throw new Error(\n \"\\u6570\\u636E[\".concat(entity.srfdename, \"-\").concat(entity.srfmajortext, \"(\").concat(entity.srfkey, \")]\\u4E0D\\u5B58\\u5728\\uFF0C\\u65E0\\u6CD5\\u66F4\\u65B0!\")\n );\n }\n }\n return entities;\n } catch (err) {\n ibiz.log.error(err);\n return null;\n }\n }\n /**\n * 批量删除数据\n *\n * @author chitanda\n * @date 2022-03-23 10:03:40\n * @param {IParams} context 上下文\n * @param {string[]} srfKeys 需要删除的数据主键\n * @return {*} {string[]} 未能删除的数据主键\n */\n deleteBatch(context, srfKeys) {\n try {\n isExistSessionId(\"delete\", context);\n } catch (err) {\n ibiz.log.error(err);\n return srfKeys;\n }\n const map = this.getCacheByTag(context);\n const notRemoveKeys = [];\n for (let i = 0; i < srfKeys.length; i++) {\n const key = srfKeys[i];\n if (!map.has(key)) {\n notRemoveKeys.push(key);\n }\n }\n if (notRemoveKeys.length > 0) {\n throw new Error(\n \"\\u672A\\u627E\\u5230\\u4EE5\\u4E0B\\u6570\\u636E\\u300C\".concat(notRemoveKeys.join(\"\\u3001\"), \"\\u300D\\uFF0C\\u65E0\\u6CD5\\u5220\\u9664!\")\n );\n }\n for (let i = 0; i < srfKeys.length; i++) {\n const key = srfKeys[i];\n map.delete(key);\n ibiz.log.warn(\"delete\", key);\n }\n return [];\n }\n /**\n * 检查数据是否已经存在\n *\n * @author chitanda\n * @date 2022-08-17 23:08:06\n * @param {IParams} context\n * @param {string} srfkey\n * @return {*} {boolean}\n */\n checkData(context, srfkey) {\n const list = this.getList(context);\n const i = list.findIndex((item) => item.srfkey === srfkey);\n return i !== -1;\n }\n /**\n * 根据条件查找数据,未设置条件默认返回全部\n *\n * @author chitanda\n * @date 2022-08-17 23:08:56\n * @param {IParams} context\n * @return {*} {IDataEntity[]}\n */\n getList(context) {\n try {\n isExistSessionId(\"getList\", context);\n const map = this.getCacheByTag(context);\n if (!map) {\n return [];\n }\n const values = map.values();\n return Array.from(values);\n } catch (err) {\n ibiz.log.error(err);\n return [];\n }\n }\n /**\n * 根据条件生成查询\n *\n * @author chitanda\n * @date 2022-08-17 23:08:33\n * @param {IParams} [params={}]\n * @return {*} {<U>(testObj: U) => boolean}\n */\n generatePred(params = {}) {\n const data = {};\n if (params.srfkey) {\n data.srfkey = equals(params.srfkey);\n }\n delete params.srfkey;\n for (const key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) {\n const val = params[key];\n data[key] = equals(val);\n }\n }\n return where(data);\n }\n /**\n * 清除缓存\n *\n * @author chitanda\n * @date 2022-08-17 23:08:54\n * @param {IParams} context\n */\n clear(context) {\n const tag = context.srfsessionid;\n if (this.cacheMap.size > 0) {\n this.cacheMap.delete(tag);\n }\n }\n /**\n * 根据标识获取map组\n *\n * @author chitanda\n * @date 2022-08-17 23:08:47\n * @private\n * @param {IParams} context\n * @return {*} {Map<string, IDataEntity>}\n */\n getCacheByTag(context) {\n const tag = context.srfsessionid;\n if (!this.cacheMap.has(tag)) {\n this.cacheMap.set(tag, /* @__PURE__ */ new Map());\n }\n return this.cacheMap.get(tag);\n }\n};\n\n// src/service/utils/res-path/res-path.ts\nvar reg = new RegExp(\"(?<=\\\\$\\\\{)(.*?)(?=\\\\})\", \"g\");\nfunction getMatchResPath(context, entity) {\n const pathItems = entity.requestPaths || [];\n const items = pathItems.map((str) => {\n return {\n path: str,\n keys: str.match(reg) || []\n };\n });\n const filterItems = items.filter((item) => {\n const { keys } = item;\n if (keys.length === 0) {\n return true;\n }\n return keys.every((key, index) => {\n if (index === keys.length - 1) {\n return true;\n }\n return context[key] != null;\n });\n }).sort((a, b) => b.keys.length - a.keys.length);\n if (filterItems.length > 0) {\n return filterItems[0];\n }\n return void 0;\n}\nfunction calcResPath(context, entity) {\n const item = getMatchResPath(context, entity);\n if (item) {\n if (item.keys.length > 0) {\n let { path: path2 } = item;\n item.keys.forEach((key, index) => {\n if (index === item.keys.length - 1) {\n path2 = path2.replace(new RegExp(\"/[^/]+/\\\\$\\\\{\".concat(key, \"\\\\}\")), \"\");\n } else {\n path2 = path2.replace(\"${\".concat(key, \"}\"), context[key]);\n }\n });\n return path2;\n }\n return item.path;\n }\n return \"\";\n}\n\n// src/service/utils/route-context/route-context.ts\nvar excludeViewTypes = [\n \"DEGRIDVIEW\" /* DE_GRID_VIEW */,\n \"DEGRIDEXPVIEW\" /* DE_GRID_EXP_VIEW */,\n \"DELISTVIEW\" /* DE_LIST_VIEW */,\n \"DELISTEXPVIEW\" /* DE_LIST_EXP_VIEW */,\n \"DEDATAVIEW\" /* DE_DATA_VIEW */,\n \"DEDATAVIEWEXPVIEW\" /* DE_DATAVIEW_EXP_VIEW */,\n \"DECALENDARVIEW\" /* DE_CALENDAR_VIEW */,\n \"DECALENDAREXPVIEW\" /* DE_CALENDAR_EXP_VIEW */,\n \"DECHARTVIEW\" /* DE_CHART_VIEW */,\n \"DECHARTEXPVIEW\" /* DE_CHART_EXP_VIEW */,\n \"DEKANBANVIEW\" /* DE_KANBAN_VIEW */\n];\nfunction calcRouteContext(_appView) {\n let paths = [];\n paths = paths.sort((a, b) => b.length - a.length);\n const [pathArr] = paths;\n if (pathArr) {\n const obj = {};\n pathArr.forEach(([key, val]) => {\n obj[key] = val;\n });\n return obj;\n }\n return {};\n}\n\n// src/service/utils/search-filter/search-filter.ts\nimport { isEmpty as isEmpty6, isNil as isNil6 } from \"ramda\";\nvar SearchFilter = class {\n /**\n * Creates an instance of SearchFilter.\n *\n * @param {*} context\n * @param {*} [data]\n * @memberof SearchFilter\n */\n constructor(context, data) {\n /**\n * 分页\n *\n * @type {number}\n * @memberof SearchFilter\n */\n this.page = 0;\n /**\n * 分页数据量\n *\n * @type {number}\n * @memberof SearchFilter\n */\n this.size = 1e3;\n /**\n * 数据\n *\n * @author chitanda\n * @date 2022-08-17 22:08:00\n * @type {IData}\n */\n this.data = {};\n /**\n * 排序属性\n *\n * @type {string}\n * @memberof SearchFilter\n */\n this.sortField = \"srfordervalue\";\n /**\n * 排序模式\n *\n * @type {('ASC' | 'DESC')}\n * @memberof SearchFilter\n */\n this.sortMode = \"ASC\";\n this.context = context;\n if (data) {\n if (!isNil6(data.page) && !isEmpty6(data.page)) {\n this.page = data.page;\n }\n if (!isNil6(data.size) && !isEmpty6(data.size)) {\n this.size = data.size;\n }\n if (!isNil6(data.query) && !isEmpty6(data.query)) {\n this.query = data.query;\n }\n if (!isNil6(data.sort) && !isEmpty6(data.sort)) {\n const arr = data.sort.split(\",\");\n if (arr.length >= 1) {\n [this.sortField] = arr;\n }\n if (arr.length >= 2) {\n this.sortMode = arr[1].toUpperCase();\n }\n }\n if (!isNil6(data.srfparentkey) && !isEmpty6(data.srfparentkey)) {\n this.srfparentkey = data.srfparentkey;\n }\n if (!isNil6(data.srfparentdename) && !isEmpty6(data.srfparentdename)) {\n this.srfparentdename = data.srfparentdename;\n }\n this.data = { ...data };\n delete this.data.page;\n delete this.data.size;\n delete this.data.query;\n delete this.data.sort;\n delete this.data.srfparentkey;\n delete this.data.srfparentdename;\n }\n }\n /**\n * 获取条件值\n *\n * @author chitanda\n * @date 2022-08-17 22:08:11\n * @param {string} key\n * @return {*} {unknown}\n */\n getValue(key) {\n if (this.data[key]) {\n return this.data[key];\n }\n return this.context[key];\n }\n};\n\n// src/service/service/code-list/code-list.service.ts\nimport { RuntimeError as RuntimeError8 } from \"@ibiz-template/core\";\nvar CodeListService = class {\n constructor(appModel) {\n this.appModel = appModel;\n /**\n * 所有代码表缓存\n *\n * @author lxm\n * @date 2022-08-25 20:08:16\n */\n this.allCodeLists = /* @__PURE__ */ new Map();\n /**\n * 代码表项数据缓存\n *\n * @author lxm\n * @date 2022-08-25 21:08:12\n * @protected\n * @type {Map<string, CodeListItem[]>}\n */\n this.cache = /* @__PURE__ */ new Map();\n }\n /**\n * 获取静态代码表\n *\n * @author chitanda\n * @date 2022-08-25 15:08:11\n * @param {string} _tag\n * @return {*} {CodeListItem[]}\n */\n getStatic(codeList) {\n const codeName = codeList.codeName;\n if (this.cache.has(codeName)) {\n return this.cache.get(codeName);\n }\n const items = codeList.codeItems;\n let result = [];\n if (items == null ? void 0 : items.length) {\n result = this.formatStaticItems(items, codeList.codeItemValueNumber);\n }\n this.cache.set(codeName, Object.freeze(result));\n return result;\n }\n /**\n * 设置代码表模型\n *\n * @author lxm\n * @date 2023-5-23 19:38:51\n * @protected\n * @param {IAppCodeList} codeList\n * @returns {*}\n */\n setCodeList(codeList) {\n const { id, codeName } = codeList;\n this.allCodeLists.set(id, codeList);\n this.allCodeLists.set(codeName, codeList);\n }\n /**\n * 获取代码表模型\n *\n * @author lxm\n * @date 2023-5-23 19:38:51\n * @protected\n * @param {string} tag\n * @returns {*}\n */\n getCodeList(tag) {\n return this.allCodeLists.get(tag);\n }\n /**\n * 格式化代码表\n *\n * @author lxm\n * @date 2022-08-25 21:08:03\n * @protected\n * @param {ICodeItem[]} codeItems\n * @param {boolean} isValueNumber\n * @returns {*}\n */\n formatStaticItems(codeItems, isValueNumber) {\n return codeItems.map((codeItem) => {\n var _a;\n const _codeItem = {\n text: codeItem.text,\n value: isValueNumber ? Number(codeItem.value) : codeItem.value,\n color: codeItem.color,\n id: codeItem.codeName\n };\n if ((_a = codeItem.codeItems) == null ? void 0 : _a.length) {\n _codeItem.children = this.formatStaticItems(\n codeItem.codeItems,\n isValueNumber\n );\n }\n return Object.freeze(_codeItem);\n });\n }\n /**\n * 获取动态代码表\n *\n * @author lxm\n * @date 2022-08-25 21:08:06\n * @protected\n * @param {IAppCodeList} codeList\n * @returns {*} {IData[]}\n */\n async getDynamicCodeList(codeList, context = {}, params = {}) {\n let dynamicCache;\n const codeName = codeList.codeName;\n if (this.cache.has(codeName)) {\n dynamicCache = this.cache.get(codeName);\n } else {\n dynamicCache = new DynamicCodeListCache(codeList);\n this.cache.set(codeName, dynamicCache);\n await dynamicCache.init();\n }\n return dynamicCache.get(context, params);\n }\n /**\n * 获取代码表\n *\n * @author chitanda\n * @date 2022-08-25 15:08:45\n * @param {string} tag\n * @param {IParams} [context]\n * @param {IParams} [params]\n * @return {*} {Promise<CodeListItem[]>}\n */\n async get(tag, context, params) {\n const codeList = this.allCodeLists.get(tag);\n if (!codeList) {\n throw new RuntimeError8(\"\\u627E\\u4E0D\\u5230\".concat(tag, \"\\u4EE3\\u7801\\u8868\"));\n }\n if (codeList.codeListType === \"STATIC\") {\n return this.getStatic(codeList);\n }\n if (codeList.codeListType === \"DYNAMIC\") {\n return this.getDynamicCodeList(codeList, context, params);\n }\n return [];\n }\n};\n\n// src/service/service/counter/counter.service.ts\nimport { RuntimeModelError as RuntimeModelError6 } from \"@ibiz-template/core\";\nvar CounterService = class {\n /**\n * 获取计数器\n *\n * @author chitanda\n * @date 2022-10-26 19:10:18\n * @param {IAppCounter} model\n * @return {*} {Promise<AppCounter>}\n */\n static async getCounter(model, context, params) {\n const id = model.id;\n if (this.counterMap.has(id)) {\n const counter2 = this.counterMap.get(id);\n if (counter2.isDestroyed === false) {\n return counter2;\n }\n this.counterMap.delete(id);\n }\n const counter = new AppCounter(model);\n await counter.init(context, params);\n this.counterMap.set(id, counter);\n return counter;\n }\n /**\n * 根据计数器引用获取计数器实例\n *\n * @author chitanda\n * @date 2022-10-26 20:10:20\n * @static\n * @param {IAppCounterRef} model\n * @param {IParams} context\n * @param {IParams} params\n * @return {*} {Promise<AppCounter>}\n */\n static async getCounterByRef(model, context, params) {\n const { appCounter } = model;\n if (!appCounter) {\n throw new RuntimeModelError6(model, \"\\u672A\\u914D\\u7F6E\\u5E94\\u7528\\u8BA1\\u6570\\u5668!\");\n }\n return this.getCounter(appCounter, context, params);\n }\n};\n/**\n * 计数器组,应用级计数器缓存,不存在重复\n *\n * @author chitanda\n * @date 2022-10-26 19:10:54\n * @protected\n * @static\n * @type {Map<string, AppCounter>}\n */\nCounterService.counterMap = /* @__PURE__ */ new Map();\n\n// src/service/service/entity/de.service.ts\nimport { ModelError as ModelError15, RuntimeError as RuntimeError11 } from \"@ibiz-template/core\";\n\n// src/service/service/work-flow/work-flow.service.ts\nimport { RuntimeError as RuntimeError9 } from \"@ibiz-template/core\";\nvar WorkFlowService = class {\n /**\n * Creates an instance of WorkFlowService.\n * @author lxm\n * @date 2022-09-29 11:09:54\n * @param {IAppDataEntity} model 应用实体\n */\n constructor(model) {\n this.model = model;\n /**\n * 常规基础路径\n *\n * @author lxm\n * @date 2022-09-29 14:09:16\n * @private\n * @type {string}\n */\n this.commonBaseUrl = \"\";\n this.app = ibiz.hub.getApp(model.appId);\n const appContext = ibiz.appData.context;\n this.commonBaseUrl = \"/wfcore/\".concat(appContext.srfsystemid, \"-app-\").concat(this.app.model.codeName.toLowerCase(), \"/\").concat(this.model.name.toLowerCase());\n }\n /**\n * 获取基础路径\n *\n * @author lxm\n * @date 2022-09-29 14:09:40\n * @private\n * @returns {*}\n */\n getBaseUrl() {\n return this.commonBaseUrl;\n }\n /**\n * 获取activeData\n *\n * @private\n * @param {IData} data\n * @param {IParams} context\n * @returns {*}\n * @memberof WorkFlowService\n */\n getActiveData(data, context) {\n if (context.srfprocessinstanceid) {\n data.srfprocessinstanceid = context.srfprocessinstanceid;\n }\n return data;\n }\n /**\n * 根据当前步骤和任务获取工作流步骤数据(如:流程表单等)\n *\n * @author lxm\n * @date 2022-09-29 14:09:45\n * @param {IParams} context\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async getWFStep(context) {\n const { processDefinitionKey, taskDefinitionKey } = context;\n return this.app.net.get(\n \"\".concat(this.getBaseUrl(), \"/process-definitions/\").concat(processDefinitionKey, \"/usertasks/\").concat(taskDefinitionKey)\n );\n }\n /**\n * 根据业务主键和当前步骤获取操作路径\n *\n * @author lxm\n * @date 2022-09-29 14:09:52\n * @param {IParams} context 路径参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async getWFLink(context, data) {\n const deKeyValue = context[this.model.codeName.toLowerCase()];\n const { taskDefinitionKey } = context;\n return this.app.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(deKeyValue, \"/usertasks/\").concat(taskDefinitionKey, \"/ways\"),\n { activedata: this.getActiveData(data, context) }\n );\n }\n /**\n * 根据业务主键获取工作流程进度\n *\n * @author lxm\n * @date 2022-09-29 14:09:45\n * @param {IParams} context\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async getWFHistory(context) {\n const deKeyValue = context[this.model.codeName.toLowerCase()];\n return this.app.net.get(\n \"\".concat(this.getBaseUrl(), \"/\").concat(deKeyValue, \"/process-instances/alls/history\")\n );\n }\n /**\n * 根据业务主键获取工作流流程图片\n *\n * @author lxm\n * @date 2022-10-27 16:10:13\n * @param {IParams} context\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async getWFProcessDiagram(context) {\n const deKeyValue = context[this.model.codeName.toLowerCase()];\n return this.app.net.request(\n \"\".concat(this.getBaseUrl(), \"/\").concat(deKeyValue, \"/process-instances/alls/processdiagram\"),\n {\n method: \"post\",\n data: {},\n responseType: \"blob\"\n }\n );\n }\n /**\n * 获取标准工作流版本信息\n *\n * @author lxm\n * @date 2022-09-29 14:09:45\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async getWFVersion() {\n return this.app.net.get(\"\".concat(this.getBaseUrl(), \"/process-definitions2\"));\n }\n /**\n * 启动工作流\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfStart(context, params, data) {\n return this.app.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/process-instances\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 提交工作流\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfSubmit(context, params, data) {\n return this.app.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 工作流撤销\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfWithdraw(context, params, data) {\n return this.app.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId, \"/withdraw\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 转办\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfReassign(context, params, data) {\n return ibiz.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId, \"/transfer\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 前加签\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfAddStepBefore(context, params, data) {\n return ibiz.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId, \"/beforesign\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 回退\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfSendBack(context, params, data) {\n return ibiz.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId, \"/sendback\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 抄送\n *\n * @author lxm\n * @date 2022-09-30 17:09:51\n * @param {IParams} context 路径参数\n * @param {IParams} params 请求参数\n * @param {IData} data 数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async wfSendCopy(context, params, data) {\n return ibiz.net.post(\n \"\".concat(this.getBaseUrl(), \"/\").concat(context[this.model.codeName.toLowerCase()], \"/tasks/\").concat(params.taskId, \"/sendcopy\"),\n {\n ...params,\n activedata: this.getActiveData(data, context)\n }\n );\n }\n /**\n * 调用工作流接口\n *\n * @author lxm\n * @date 2022-09-30 17:09:38\n * @param {string} methodName 接口名称\n * @param {IParams} context 路径参数\n * @param {IParams} [params={}] 查询参数\n * @param {IData} [data={}] 主数据数据\n * @returns {*} {Promise<IHttpResponse<IData>>}\n */\n async exec(methodName, context, params = {}, data = {}) {\n switch (methodName) {\n case \"wfstart\":\n return this.wfStart(context, params, data);\n case \"wfsubmit\":\n return this.wfSubmit(context, params, data);\n case \"reassign\":\n return this.wfReassign(context, params, data);\n case \"addstepbefore\":\n return this.wfAddStepBefore(context, params, data);\n case \"sendback\":\n return this.wfSendBack(context, params, data);\n case \"sendcopy\":\n return this.wfSendCopy(context, params, data);\n default: {\n throw new RuntimeError9(\"\\u300C\".concat(methodName, \"\\u300D\\u672A\\u5B9E\\u73B0\"));\n }\n }\n }\n};\n\n// src/service/service/file/file.service.ts\nvar FileService = class {\n /**\n * Creates an instance of FileService.\n * @author lxm\n * @date 2022-11-25 13:11:49\n * @param {IAppDataEntity} model 应用实体\n */\n constructor(model) {\n this.model = model;\n }\n /**\n * 后台导出数据,返回文件流\n *\n * @author lxm\n * @date 2022-11-25 14:11:53\n * @param {IDEDataExport} dataExport 导出模型\n * @param {string} fetchAction 查询方法\n * @param {IParams} context 上下文\n * @param {IParams} params 请求参数\n * @returns {*} {Promise<IHttpResponse<Blob>>}\n */\n exportData(dataExport, fetchAction, context, params) {\n const resPath = calcResPath(context, this.model);\n const exportUrl = \"\".concat(resPath, \"/\").concat(this.model.codeName2.toLowerCase(), \"/exportdata/\").concat(fetchAction.toLowerCase(), \"/?srfexporttag=\").concat(dataExport.codeName);\n return ibiz.net.request(exportUrl, {\n method: \"post\",\n data: params,\n responseType: \"blob\"\n });\n }\n};\n\n// src/service/service/entity/method/de-action.ts\nimport {\n HttpResponse as HttpResponse3,\n RuntimeModelError as RuntimeModelError18\n} from \"@ibiz-template/core\";\n\n// src/service/service/entity/method/method.ts\nimport { RuntimeModelError as RuntimeModelError7 } from \"@ibiz-template/core\";\n\n// src/service/app-data-entity/app-data-entity.ts\nimport { clone as clone4 } from \"ramda\";\n\n// src/service/constant/srfuf.ts\nvar Srfuf = /* @__PURE__ */ ((Srfuf2) => {\n Srfuf2[Srfuf2[\"CREATE\"] = 0] = \"CREATE\";\n Srfuf2[Srfuf2[\"UPDATE\"] = 1] = \"UPDATE\";\n return Srfuf2;\n})(Srfuf || {});\n\n// src/service/app-data-entity/app-data-entity.ts\nvar AppDataEntity = class _AppDataEntity {\n get srfuf() {\n return this.srfkey ? 1 /* UPDATE */ : 0 /* CREATE */;\n }\n /**\n * Creates an instance of AppDataEntity.\n *\n * @author chitanda\n * @date 2022-10-11 21:10:21\n * @param {IAppDataEntity} entity\n * @param {(IData | AppDataEntity)} data\n */\n constructor(entity, data) {\n let _srfkey;\n Object.defineProperty(this, \"_entity\", {\n enumerable: false,\n configurable: true,\n value: entity\n });\n Object.defineProperty(this, \"_data\", {\n enumerable: false,\n configurable: true,\n value: data instanceof _AppDataEntity ? clone4(data._data) : clone4(data)\n });\n Object.defineProperty(this, \"srfdeid\", {\n get() {\n return entity.id;\n }\n });\n Object.defineProperty(this, \"srfdecodename\", {\n get() {\n return entity.codeName;\n }\n });\n const keyAppField = findModelChild(\n entity.appDEFields || [],\n entity.keyAppDEFieldId\n );\n if (keyAppField) {\n const key = keyAppField.codeName.toLowerCase();\n Object.defineProperty(this, \"srfkeyfile\", {\n get() {\n return key;\n }\n });\n Object.defineProperty(this, \"srfkey\", {\n set(val) {\n _srfkey = val;\n this._data[key] = val;\n },\n get() {\n return this._data[key] || _srfkey;\n }\n });\n } else {\n ibiz.log.warn(\"\\u5B9E\\u4F53[\".concat(entity.codeName, \"]\\u672A\\u914D\\u7F6E\\u4E3B\\u952E\\u5B57\\u6BB5\"));\n }\n const majorAppField = findModelChild(\n entity.appDEFields || [],\n entity.majorAppDEFieldId\n );\n if (majorAppField) {\n const major = majorAppField.codeName.toLowerCase();\n Object.defineProperty(this, \"srfmajorfile\", {\n get() {\n return major;\n }\n });\n Object.defineProperty(this, \"srfmajortext\", {\n set(val) {\n this._data[major] = val;\n },\n get() {\n return this._data[major];\n }\n });\n } else {\n ibiz.log.warn(\"\\u5B9E\\u4F53[\".concat(entity.codeName, \"]\\u672A\\u914D\\u7F6E\\u4E3B\\u6587\\u672C\\u5B57\\u6BB5\"));\n }\n this.defineProperties();\n }\n /**\n * 代理实际数据\n *\n * @author chitanda\n * @date 2022-10-11 22:10:55\n * @protected\n */\n defineProperties() {\n var _a;\n const { _data } = this;\n const properties = {};\n const keys = Object.keys(_data);\n keys.forEach((key) => {\n properties[key] = {\n enumerable: true,\n set(val) {\n _data[key] = val;\n },\n get() {\n return _data[key];\n }\n };\n });\n (_a = this._entity.appDEFields) == null ? void 0 : _a.forEach((field) => {\n const key = field.codeName.toLowerCase();\n if (!keys.includes(key)) {\n properties[key] = {\n enumerable: true,\n set(val) {\n _data[key] = val;\n },\n get() {\n return _data[key];\n }\n };\n }\n });\n Object.defineProperties(this, properties);\n }\n /**\n * 克隆数据\n *\n * @author chitanda\n * @date 2022-10-11 00:10:15\n * @return {*} {AppDataEntity}\n */\n clone() {\n return new _AppDataEntity(this._entity, this._data);\n }\n /**\n * 合并参数\n *\n * @author chitanda\n * @date 2022-10-19 11:10:25\n * @param {(IData | AppDataEntity)} data\n * @return {*} {AppDataEntity}\n */\n assign(data) {\n if (data instanceof _AppDataEntity) {\n Object.assign(this._data, data._data);\n } else {\n Object.assign(this._data, data);\n }\n return this;\n }\n};\n\n// src/service/dto/method.dto.ts\nimport { isNilOrEmpty as isNilOrEmpty5 } from \"qx-util\";\nimport { ModelError as ModelError7 } from \"@ibiz-template/core\";\nvar MethodDto = class _MethodDto {\n constructor(entity, dto) {\n this.entity = entity;\n this.dto = dto;\n this.dtoMap = /* @__PURE__ */ new Map();\n if (dto) {\n this.app = ibiz.hub.getApp(entity.appId);\n this.fields = dto.appDEMethodDTOFields || [];\n } else {\n this.fields = [];\n }\n }\n get isLocalMode() {\n return this.entity.storageMode === 1 || this.entity.storageMode === 4;\n }\n /**\n * 请求参数组合 DTO\n *\n * @author chitanda\n * @date 2022-10-10 23:10:33\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {Promise<IData>}\n */\n async get(context, data) {\n const params = {};\n for (let i = 0; i < this.fields.length; i++) {\n const field = this.fields[i];\n const key = field.codeName.toLowerCase();\n switch (field.type) {\n case \"SIMPLE\": {\n const val = data[key];\n if (isNilOrEmpty5(val)) {\n params[key] = null;\n } else {\n params[key] = val;\n }\n break;\n }\n case \"DTOS\": {\n const dto = await this.getFieldDto(field);\n const service = await this.app.deService.getService(\n field.refAppDataEntityId\n );\n const items = service.local.getList(context);\n if (items) {\n const arr = [];\n for (let j = 0; j < items.length; j++) {\n arr.push(await dto.get(context, items[j]));\n }\n params[key] = arr;\n }\n break;\n }\n default:\n throw new ModelError7(\n field,\n \"\\u672A\\u652F\\u6301\\u7684\\u5E94\\u7528\\u5B9E\\u4F53\\u65B9\\u6CD5\\u8F93\\u5165\\u5C5E\\u6027\\u7C7B\\u578B: \".concat(field.type)\n );\n }\n }\n return params;\n }\n /**\n * 设置本地 DTO 存储\n *\n * @author chitanda\n * @date 2022-10-10 23:10:50\n * @param {IParams} context\n * @param {IData[]} data\n * @return {*} {Promise<AppDataEntity[]>}\n */\n async sets(context, data) {\n const service = await this.app.deService.getService(this.entity.id);\n service.local.clear(context);\n return Promise.all(\n data.map(async (datum) => {\n const all = this.fields.filter((field) => field.type === \"DTOS\").map(async (field) => {\n const key = field.codeName.toLowerCase();\n const dto = await this.getFieldDto(field);\n const items = datum[key];\n if (items) {\n await dto.sets(context, items);\n }\n });\n for (let i = 0; i < all.length; i++) {\n await all[i];\n }\n const entityData = new AppDataEntity(this.entity, datum);\n if (this.isLocalMode) {\n await service.local.add(context, entityData);\n }\n return entityData;\n })\n );\n }\n /**\n * 获取子属性 DTO\n *\n * @author chitanda\n * @date 2022-10-17 16:10:47\n * @protected\n * @param {IAppDEMethodDTOField} field\n * @return {*} {Promise<MethodDto>}\n */\n async getFieldDto(field) {\n if (this.dtoMap.has(field.codeName)) {\n return this.dtoMap.get(field.codeName);\n }\n const entity = await ibiz.hub.getAppDataEntity(\n field.refAppDataEntityId,\n this.entity.appId\n );\n const methodDto = findModelChild(\n entity.appDEMethodDTOs || [],\n field.refAppDEMethodDTOId\n );\n const dto = new _MethodDto(entity, methodDto);\n this.dtoMap.set(field.codeName, dto);\n return dto;\n }\n};\n\n// src/service/service/entity/method/method-input.ts\nvar MethodInput = class {\n /**\n * Creates an instance of MethodInput.\n *\n * @author chitanda\n * @date 2022-10-11 17:10:59\n * @param {IAppDataEntity} entity\n * @param {IAppDEMethodInput} [input]\n */\n constructor(entity, input) {\n this.entity = entity;\n this.input = input;\n if (input) {\n const methodDto = findModelChild(\n entity.appDEMethodDTOs || [],\n input.appDEMethodDTOId\n );\n if (methodDto) {\n this.dto = new MethodDto(entity, methodDto);\n }\n }\n }\n /**\n * 处理请求发送参数\n *\n * @author chitanda\n * @date 2022-10-11 14:10:22\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {Promise<IData>}\n */\n async handle(context, data) {\n if (this.dto) {\n return this.dto.get(context, data);\n }\n return data;\n }\n};\n\n// src/service/service/entity/method/method-renturn.ts\nvar MethodReturn = class {\n /**\n * Creates an instance of MethodReturn.\n *\n * @author chitanda\n * @date 2022-10-11 17:10:47\n * @param {IAppDataEntity} entity\n * @param {IAppDEMethodReturn} [output]\n */\n constructor(entity, output) {\n this.entity = entity;\n this.output = output;\n if (output) {\n const methodDto = findModelChild(\n entity.appDEMethodDTOs || [],\n output.appDEMethodDTOId\n );\n if (methodDto) {\n this.dto = new MethodDto(entity, methodDto);\n }\n }\n }\n /**\n * 处理请求返回参数\n *\n * @author chitanda\n * @date 2022-10-19 21:10:06\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {Promise<IDataEntity>}\n */\n async handle(context, data) {\n if (this.dto) {\n const items = await this.dto.sets(context, [data]);\n return items[0];\n }\n return new AppDataEntity(this.entity, data);\n }\n};\n\n// src/service/service/entity/method/method.ts\nvar Method = class {\n /**\n * Creates an instance of Method.\n *\n * @author chitanda\n * @date 2022-10-10 14:10:19\n * @param {IAppDataEntity} entity\n * @param {IAppDEMethod} method\n * @param {ServicePathItem[][]} paths\n */\n constructor(entity, method) {\n this.entity = entity;\n this.method = method;\n this.app = ibiz.hub.getApp(entity.appId);\n this.input = new MethodInput(entity, method.appDEMethodInput);\n this.result = new MethodReturn(entity, method.appDEMethodReturn);\n }\n /**\n * 是否为本地模式\n *\n * @author chitanda\n * @date 2023-04-19 16:04:46\n * @readonly\n * @protected\n * @type {boolean}\n */\n get isLocalMode() {\n return this.entity.storageMode === 1 || this.entity.storageMode === 4;\n }\n /**\n * 发送请求\n *\n * @author chitanda\n * @date 2022-10-10 17:10:44\n * @protected\n * @param {string} path\n * @param {IParams} context\n * @param {IData} data\n * @param {IParams} params\n * @return {*} {Promise<HttpResponse<any>>}\n */\n async request(path2, context, data, params) {\n const { actionType, requestMethod } = this.method;\n if (actionType === \"REMOTE\") {\n const methodName = this.method.codeName.toLowerCase();\n let res = null;\n switch (requestMethod) {\n case \"POST\":\n res = await this.app.net.post(\"\".concat(path2, \"/\").concat(methodName), data, params);\n break;\n case \"GET\":\n res = await this.app.net.get(\"\".concat(path2, \"/\").concat(methodName), data, params);\n break;\n case \"PUT\":\n res = await this.app.net.put(\"\".concat(path2, \"/\").concat(methodName), data, params);\n break;\n case \"DELETE\":\n res = await this.app.net.delete(\n \"\".concat(path2, \"/\").concat(methodName),\n data,\n params\n );\n break;\n default:\n if (requestMethod) {\n throw new RuntimeModelError7(\n this.method,\n \"\\u672A\\u652F\\u6301\\u7684\\u8BF7\\u6C42\\u65B9\\u5F0F: \".concat(requestMethod)\n );\n } else {\n throw new RuntimeModelError7(this.method, \"\\u672A\\u914D\\u7F6E\\u8BF7\\u6C42\\u65B9\\u5F0F\");\n }\n }\n return res;\n }\n throw new RuntimeModelError7(this.method, \"\\u672A\\u652F\\u6301\\u7684\\u884C\\u4E3A\\u7C7B\\u578B[\".concat(actionType, \"]\"));\n }\n /**\n * 根据上下文计算当前请求路径\n *\n * @author chitanda\n * @date 2022-08-24 18:08:46\n * @protected\n * @param {IParams} context\n * @return {*} {string} 拼接结果说明: /祖父实体/祖父实体主键/爷爷实体/爷爷实体主键/父实体/父实体主键/当前实体\n */\n calcPath(context) {\n const curPath = \"/\".concat(this.entity.codeName2.toLowerCase());\n const resPath = calcResPath(context, this.entity);\n return resPath + curPath;\n }\n /**\n * 获取当前实体服务\n *\n * @author chitanda\n * @date 2022-10-11 21:10:12\n * @protected\n * @return {*} {Promise<IAppDEService>}\n */\n async getService() {\n if (!this.service) {\n this.service = await this.app.deService.getService(this.entity.id);\n }\n return this.service;\n }\n /**\n * 创建实体\n *\n * @author chitanda\n * @date 2022-10-11 22:10:05\n * @protected\n * @param {(IData | IDataEntity)} data\n * @return {*} {IDataEntity}\n */\n createEntity(data) {\n return new AppDataEntity(this.entity, data);\n }\n};\n\n// src/de-logic/index.ts\nimport { HttpError as HttpError2, HttpResponse as HttpResponse2, RuntimeError as RuntimeError10 } from \"@ibiz-template/core\";\n\n// src/de-logic/de-logic.ts\nimport { ModelError as ModelError13, RuntimeModelError as RuntimeModelError17 } from \"@ibiz-template/core\";\n\n// src/de-logic/de-logic-context.ts\nvar DELogicContext = class {\n /**\n * Creates an instance of DELogicContext.\n * @author lxm\n * @date 2023-03-24 09:15:14\n * @param {Map<string, DELogicParam>} deLogicParams 实体逻辑参数集合\n * @param {IParams} context 上下文\n * @param {IData} data 数据对象\n * @param {IParams} viewParams 视图参数\n */\n constructor(deLogicParams, context, data, viewParams) {\n this.deLogicParams = deLogicParams;\n this.context = context;\n this.data = data;\n this.viewParams = viewParams;\n /**\n * 实体逻辑参数\n *\n * @description 实体逻辑参数初始化时设置\n * @author lxm\n * @date 2023-02-08 17:02:38\n * @type {Record<string, any>}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.params = {};\n /**\n * UI逻辑执行返回值\n *\n * @author lxm\n * @date 2023-02-09 21:02:40\n * @type {unknown}\n */\n this.result = null;\n /**\n * 是否存在结束节点\n *\n * @author lxm\n * @date 2023-03-16 12:08:58\n * @type {boolean}\n */\n this.isEndNode = false;\n /**\n * 默认参数节点\n *\n * @author lxm\n * @date 2023-03-16 12:11:14\n * @type {string}\n */\n this.defaultParamName = \"Default\";\n }\n /**\n * 重置实体逻辑参数\n * @author lxm\n * @date 2023-03-24 09:18:02\n * @param {string} name\n */\n resetParam(name) {\n var _a;\n (_a = this.deLogicParams.get(name)) == null ? void 0 : _a.calc(this);\n }\n /**\n * 重新建立变量\n * @author lxm\n * @date 2023-03-24 09:20:24\n * @param {string} name\n */\n renewParam(name) {\n var _a;\n (_a = this.deLogicParams.get(name)) == null ? void 0 : _a.renew(this);\n }\n};\n\n// src/de-logic/de-logic-node/de-action-node/de-action-node.ts\nimport { RuntimeModelError as RuntimeModelError10 } from \"@ibiz-template/core\";\n\n// src/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.ts\nimport { RuntimeModelError as RuntimeModelError9 } from \"@ibiz-template/core\";\n\n// src/de-logic/de-logic-link/de-logic-link-cond/de-logic-link-cond.ts\nvar DELogicLinkCond = class {\n};\n\n// src/de-logic/de-logic-link/de-logic-link-single-cond/de-logic-link-single-cond.ts\nimport { ModelError as ModelError8, RuntimeModelError as RuntimeModelError8 } from \"@ibiz-template/core\";\nvar DELogicLinkSingleCond = class extends DELogicLinkCond {\n constructor(model) {\n super();\n this.model = model;\n this.srcParam = model.srcLogicParamId;\n this.dstParam = model.dstLogicParamId;\n }\n get dstField() {\n return this.model.dstFieldName.toLowerCase();\n }\n get op() {\n return this.model.condOP;\n }\n /**\n * 条件值类型\n * @author lxm\n * @date 2023-06-14 03:35:39\n * @readonly\n */\n get type() {\n return this.model.paramType;\n }\n /**\n * 条件值\n * @author lxm\n * @date 2023-06-14 03:36:45\n * @readonly\n */\n get value() {\n return this.model.paramValue;\n }\n /**\n * 执行逻辑检测\n *\n * @author lxm\n * @date 2023-02-15 18:02:05\n * @param {DELogicContext} ctx\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {boolean}\n */\n test(ctx, context, data) {\n const dst = ctx.params[this.dstParam];\n switch (this.type) {\n case \"ENTITYFIELD\": {\n if (!this.value) {\n throw new RuntimeModelError8(\n this.model,\n \"\\u5F53\\u524D\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u6570\\u636E\\u5BF9\\u8C61\\u5C5E\\u6027],\\u7F3A\\u5C11\\u914D\\u7F6E\\u6761\\u4EF6\\u503C\"\n );\n }\n const value = data[this.value] != null ? data[this.value] : context[this.value];\n return testCond(dst[this.dstField], this.op, value);\n }\n case \"SRCENTITYFIELD\": {\n if (!this.value) {\n throw new RuntimeModelError8(\n this.model,\n \"\\u5F53\\u524D\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u6E90\\u6570\\u636E\\u5BF9\\u8C61\\u5C5E\\u6027],\\u7F3A\\u5C11\\u914D\\u7F6E\\u6761\\u4EF6\\u503C\"\n );\n }\n const src = ctx.params[this.srcParam];\n return testCond(dst[this.dstField], this.op, src[this.value]);\n }\n case \"CURTIME\":\n throw new ModelError8(this.model, \"\\u6682\\u672A\\u652F\\u6301\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u5F53\\u524D\\u65F6\\u95F4]\");\n default:\n return testCond(dst[this.dstField], this.op, this.value);\n }\n }\n};\n\n// src/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.ts\nvar DELogicLinkGroupCond = class _DELogicLinkGroupCond extends DELogicLinkCond {\n constructor(model) {\n super();\n this.model = model;\n const conds = model.conds || [];\n this.conds = conds.map((cond) => {\n return cond.logicType === \"SINGLE\" ? new DELogicLinkSingleCond(cond) : new _DELogicLinkGroupCond(cond);\n });\n }\n /**\n * 操作标识\n *\n * @author lxm\n * @date 2023-02-15 17:02:04\n * @readonly\n * @protected\n * @type {('AND' | 'OR')}\n */\n get op() {\n return this.model.groupOP;\n }\n /**\n * 结果是否取反值\n *\n * @author lxm\n * @date 2023-02-15 17:02:10\n * @readonly\n * @protected\n * @type {boolean}\n */\n get notMode() {\n return this.model.notMode === true;\n }\n /**\n * 条件判断\n *\n * @author lxm\n * @date 2023-02-15 17:02:19\n * @param {DELogicContext} ctx\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {boolean}\n */\n test(ctx, context, data) {\n let bol = true;\n if (this.conds.length === 0) {\n throw new RuntimeModelError9(this.model, \"\\u754C\\u9762\\u8FDE\\u63A5\\u6761\\u4EF6\\u903B\\u8F91\\u7EC4\\u672A\\u914D\\u7F6E\\u903B\\u8F91\\u9879\");\n }\n for (let i = 0; i < this.conds.length; i++) {\n const cond = this.conds[i];\n const judge = cond.test(ctx, context, data);\n if (this.op === \"AND\" && judge === false) {\n bol = false;\n break;\n }\n if (this.op === \"OR\" && judge === true) {\n bol = true;\n break;\n }\n }\n return this.notMode ? !bol : bol;\n }\n};\n\n// src/de-logic/de-logic-link/de-logic-link.ts\nvar DELogicLink = class {\n /**\n * Creates an instance of DELogicLink.\n *\n * @author lxm\n * @date 2023-02-08 16:02:19\n * @param {DELogicLinkModel} model\n */\n constructor(model) {\n this.model = model;\n /**\n * 源节点\n *\n * @author lxm\n * @date 2023-02-08 21:02:53\n * @type {DELogicNode}\n */\n this.srcNode = null;\n /**\n * 目标节点\n *\n * @author lxm\n * @date 2023-02-08 21:02:59\n * @type {DELogicNode}\n */\n this.dstNode = null;\n /**\n * 连接条件组\n *\n * @author lxm\n * @date 2023-02-15 17:02:49\n * @type {(DELogicLinkGroupCond | null)}\n */\n this.groupCond = null;\n const cond = this.model.delogicLinkGroupCond;\n if (cond) {\n this.groupCond = new DELogicLinkGroupCond(cond);\n }\n }\n /**\n * 执行连接\n *\n * @author lxm\n * @date 2023-02-08 22:02:18\n * @param {DELogicContext} ctx\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {Promise<boolean>} 是否连接成功\n */\n async exec(ctx) {\n const { defaultLink } = this.model;\n if (defaultLink || !this.groupCond) {\n return true;\n }\n return this.groupCond.test(ctx, ctx.context, ctx.data || {});\n }\n};\n\n// src/de-logic/de-logic-node/de-logic-node.ts\nvar DELogicNode = class {\n /**\n * Creates an instance of DELogicNode.\n *\n * @author lxm\n * @date 2023-02-08 16:02:19\n * @param {DELogicNodeModel} model\n */\n constructor(model) {\n this.model = model;\n var _a;\n this.links = (_a = model.links || []) == null ? void 0 : _a.map((link) => new DELogicLink(link));\n }\n};\n\n// src/de-logic/de-logic-node/de-action-node/de-action-node.ts\nvar DEActionNode = class extends DELogicNode {\n async exec(ctx) {\n const {\n dstAppDataEntityId,\n dstAppDEActionId,\n dstDELogicParamId,\n retDELogicParamId\n } = this.model;\n if (!dstAppDataEntityId) {\n throw new RuntimeModelError10(this.model, \"\\u672A\\u6307\\u5B9A\\u5E94\\u7528\\u5B9E\\u4F53\");\n }\n if (!dstAppDEActionId) {\n throw new RuntimeModelError10(this.model, \"\\u672A\\u6307\\u5B9A\\u5B9E\\u4F53\\u884C\\u4E3A\");\n }\n const requestData = ctx.params[dstDELogicParamId];\n const app = ibiz.hub.getApp(ctx.context.srfappid);\n const res = await app.deService.exec(\n dstAppDataEntityId,\n dstAppDEActionId,\n ctx.context,\n requestData,\n ctx.viewParams\n );\n if (res.ok) {\n ctx.params[retDELogicParamId] = res.data;\n }\n }\n};\n\n// src/de-logic/de-logic-node/start-node/start-node.ts\nvar StartNode = class extends DELogicNode {\n async exec(_ctx) {\n }\n};\n\n// src/de-logic/de-logic-node/end-node/end-node.ts\nimport { ModelError as ModelError9 } from \"@ibiz-template/core\";\nvar EndNode = class extends DELogicNode {\n async exec(ctx) {\n ctx.isEndNode = true;\n const { returnParamId, returnType, rawValue } = this.model;\n switch (returnType) {\n case \"NONEVALUE\":\n ctx.result = void 0;\n break;\n case \"NULLVALUE\":\n ctx.result = null;\n break;\n case \"SRCVALUE\":\n ctx.result = rawValue;\n break;\n case \"LOGICPARAM\":\n ctx.result = ctx.params[returnParamId];\n break;\n case \"LOGICPARAMFIELD\":\n case \"BREAK\":\n default:\n throw new ModelError9(\n this.model,\n \"\\u6682\\u672A\\u652F\\u6301\\u7684\\u7ED3\\u675F\\u8282\\u70B9\\u8FD4\\u56DE\\u503C\\u7C7B\\u578B: \".concat(returnType)\n );\n }\n }\n};\n\n// src/de-logic/de-logic-node/prepare-param-node/prepare-param-node.ts\nimport { ModelError as ModelError11 } from \"@ibiz-template/core\";\nimport { clone as clone6 } from \"ramda\";\n\n// src/de-logic/utils/handle-src-val.ts\nimport { ModelError as ModelError10 } from \"@ibiz-template/core\";\nimport { clone as clone5 } from \"ramda\";\nfunction handleSrcVal(ctx, srcValParams) {\n const { srcDELogicParamId, srcValueType, srcFieldName, srcValue } = srcValParams;\n if (!srcValParams.srcValueType) {\n srcValParams.srcValueType = \"SRCDLPARAM\";\n }\n let value;\n switch (srcValueType) {\n case \"SRCDLPARAM\":\n value = ctx.params[srcDELogicParamId];\n break;\n case \"NULLVALUE\":\n return null;\n case \"NONEVALUE\":\n return void 0;\n case \"SRCVALUE\":\n return srcValue;\n case \"VIEWPARAM\":\n value = ctx.viewParams;\n break;\n case \"APPDATA\":\n value = ctx.context;\n break;\n case \"ENVPARAM\":\n value = clone5(ibiz.env);\n break;\n default:\n throw new ModelError10(srcValParams, \"\\u6682\\u672A\\u652F\\u6301\\u6E90\\u503C\\u7C7B\\u578B\".concat(srcValueType));\n }\n const srcField = srcFieldName == null ? void 0 : srcFieldName.toLowerCase();\n if (value && srcField) {\n value = value[srcField];\n }\n return value;\n}\n\n// src/de-logic/de-logic-node/prepare-param-node/prepare-param-node.ts\nvar PrepareParamNode = class extends DELogicNode {\n async exec(ctx) {\n const nodeParams = this.model.delogicNodeParams;\n if (nodeParams == null ? void 0 : nodeParams.length) {\n await Promise.all(\n nodeParams.map((nodeParam) => {\n switch (nodeParam.paramAction) {\n case \"SETPARAMVALUE\":\n return this.setParamValue(nodeParam, ctx);\n case \"RESETPARAM\":\n return this.resetParam(nodeParam, ctx);\n case \"COPYPARAM\":\n return this.copyParam(nodeParam, ctx);\n case \"BINDPARAM\":\n return this.bindParam(nodeParam, ctx);\n case \"RENEWPARAM\":\n return this.renewParam(nodeParam, ctx);\n case \"APPENDPARAM\":\n return this.appendParam(nodeParam, ctx);\n case \"SORTPARAM\":\n return this.sortParam(nodeParam, ctx);\n default:\n throw new ModelError11(\n nodeParam,\n \"\\u6682\\u672A\\u652F\\u6301\\u903B\\u8F91\\u5904\\u7406\\u53C2\\u6570\\u64CD\\u4F5C\".concat(nodeParam.paramAction)\n );\n }\n })\n );\n }\n }\n /**\n * 拷贝变量\n * @author lxm\n * @date 2023-03-24 09:50:02\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n * @return {*} {*}\n */\n copyParam(nodeParam, ctx) {\n const { dstDELogicParamId } = nodeParam;\n const srcVal = handleSrcVal(ctx, nodeParam);\n ctx.params[dstDELogicParamId] = clone6(srcVal);\n }\n /**\n * 绑定参数\n * @author lxm\n * @date 2023-06-13 05:43:43\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n bindParam(nodeParam, ctx) {\n const srcVal = handleSrcVal(ctx, nodeParam);\n ctx.params[nodeParam.dstDELogicParamId] = srcVal;\n }\n /**\n * 设置变量\n * @author lxm\n * @date 2023-03-17 03:34:02\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n setParamValue(nodeParam, ctx) {\n const { dstFieldName, dstDELogicParamId } = nodeParam;\n const dstField = dstFieldName == null ? void 0 : dstFieldName.toLowerCase();\n const srcVal = handleSrcVal(ctx, nodeParam);\n if (dstField) {\n ctx.params[dstDELogicParamId][dstField] = srcVal;\n } else {\n ctx.params[dstDELogicParamId] = srcVal;\n }\n }\n /**\n * 重置变量\n * @author lxm\n * @date 2023-03-24 09:46:57\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n resetParam(nodeParam, ctx) {\n const { dstDELogicParamId } = nodeParam;\n ctx.resetParam(dstDELogicParamId);\n }\n /**\n * 重新建立变量\n * @author lxm\n * @date 2023-03-24 09:46:47\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n renewParam(nodeParam, ctx) {\n const { dstDELogicParamId } = nodeParam;\n ctx.renewParam(dstDELogicParamId);\n }\n /**\n * 附加到数组变量\n * @author lxm\n * @date 2023-03-24 09:46:47\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n appendParam(nodeParam, ctx) {\n const { dstDELogicParamId, dstIndex, srcIndex, srcSize } = nodeParam;\n const srcVal = handleSrcVal(ctx, nodeParam);\n const insertIndex = dstIndex || 0;\n const _srcIndex = srcIndex || 0;\n const _srcSize = srcSize || srcVal.length;\n ctx.params[dstDELogicParamId].splice(\n insertIndex,\n 0,\n ...srcVal.slice(_srcIndex, _srcSize)\n );\n }\n /**\n * 排序数组变量\n * @author lxm\n * @date 2023-03-24 10:23:01\n * @protected\n * @param {IDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n sortParam(nodeParam, ctx) {\n const { dstDELogicParamId, dstFieldName, dstSortDir } = nodeParam;\n const key = dstFieldName.toLowerCase();\n const arr = ctx.params[dstDELogicParamId];\n arr.sort((a, b) => {\n return dstSortDir === \"ASC\" ? a[key] - b[key] : b[key] - a[key];\n });\n }\n};\n\n// src/de-logic/de-logic-node/data-set-node/data-set-node.ts\nvar DataSetNode = class extends DELogicNode {\n async exec(ctx) {\n const {\n dstAppDEDataSetId,\n dstAppDataEntityId,\n dstDELogicParamId,\n retDELogicParamId\n } = this.model;\n const requestData = ctx.params[dstDELogicParamId];\n const app = ibiz.hub.getApp(ctx.context.srfappid);\n const res = await app.deService.exec(\n dstAppDataEntityId,\n dstAppDEDataSetId,\n ctx.context,\n requestData,\n ctx.viewParams\n );\n if (res.ok) {\n ctx.params[retDELogicParamId] = res.data;\n }\n }\n};\n\n// src/de-logic/de-logic-node/bind-param-node/bind-param-node.ts\nimport { RuntimeModelError as RuntimeModelError11 } from \"@ibiz-template/core\";\nvar BindParamNode = class extends DELogicNode {\n async exec(ctx) {\n const { dstDELogicParamId, srcDELogicParamId } = this.model;\n if (!dstDELogicParamId || !srcDELogicParamId) {\n throw new RuntimeModelError11(\n this.model,\n \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u6216\\u8005\\u6E90\\u53C2\\u6570\\u5BF9\\u8C61\\u914D\\u7F6E\"\n );\n }\n const srcVal = handleSrcVal(ctx, this.model);\n ctx.params[dstDELogicParamId] = srcVal;\n }\n};\n\n// src/de-logic/de-logic-node/reset-param-node/reset-param-node.ts\nimport { RuntimeModelError as RuntimeModelError12 } from \"@ibiz-template/core\";\nvar ResetParamNode = class extends DELogicNode {\n async exec(ctx) {\n const { dstDELogicParamId } = this.model;\n if (!dstDELogicParamId) {\n throw new RuntimeModelError12(this.model, \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u914D\\u7F6E\");\n }\n ctx.resetParam(dstDELogicParamId);\n }\n};\n\n// src/de-logic/de-logic-node/renew-param-node/renew-param-node.ts\nimport { RuntimeModelError as RuntimeModelError13 } from \"@ibiz-template/core\";\nvar RenewParamNode = class extends DELogicNode {\n async exec(ctx) {\n const { dstDELogicParamId } = this.model;\n if (!dstDELogicParamId) {\n throw new RuntimeModelError13(this.model, \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u914D\\u7F6E\");\n }\n ctx.renewParam(dstDELogicParamId);\n }\n};\n\n// src/de-logic/de-logic-node/copy-param-node/copy-param-node.ts\nimport { RuntimeModelError as RuntimeModelError14 } from \"@ibiz-template/core\";\nimport { clone as clone7 } from \"ramda\";\nvar CopyParamNode = class extends DELogicNode {\n async exec(ctx) {\n const { dstDELogicParamId, srcDELogicParamId } = this.model;\n if (!dstDELogicParamId || !srcDELogicParamId) {\n throw new RuntimeModelError14(\n this.model,\n \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u6216\\u8005\\u6E90\\u53C2\\u6570\\u5BF9\\u8C61\\u914D\\u7F6E\"\n );\n }\n const srcVal = handleSrcVal(ctx, this.model);\n ctx.params[dstDELogicParamId] = clone7(srcVal);\n }\n};\n\n// src/de-logic/de-logic-node/sort-param-node/sort-param-node.ts\nimport { RuntimeModelError as RuntimeModelError15 } from \"@ibiz-template/core\";\nvar SortParamNode = class extends DELogicNode {\n async exec(ctx) {\n const { dstDELogicParamId, dstSortDir, dstFieldName } = this.model;\n if (!dstDELogicParamId || !dstFieldName) {\n throw new RuntimeModelError15(this.model, \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u6216\\u76EE\\u6807\\u5C5E\\u6027\\u914D\\u7F6E\");\n }\n const key = dstFieldName.toLowerCase();\n const arr = ctx.params[dstDELogicParamId];\n arr.sort((a, b) => {\n return dstSortDir === \"ASC\" ? a[key] - b[key] : b[key] - a[key];\n });\n }\n};\n\n// src/de-logic/de-logic-node/append-param-node/append-param-node.ts\nimport { RuntimeModelError as RuntimeModelError16 } from \"@ibiz-template/core\";\nvar AppendParamNode = class extends DELogicNode {\n async exec(ctx) {\n const {\n dstDELogicParamId,\n srcDELogicParamId,\n dstIndex,\n srcIndex,\n srcSize\n } = this.model;\n if (!dstDELogicParamId || !srcDELogicParamId) {\n throw new RuntimeModelError16(\n this.model,\n \"\\u7F3A\\u5C11\\u76EE\\u6807\\u53C2\\u6570\\u5BF9\\u8C61\\u6216\\u8005\\u6E90\\u53C2\\u6570\\u5BF9\\u8C61\\u914D\\u7F6E\"\n );\n }\n const srcVal = handleSrcVal(ctx, this.model);\n const insertIndex = dstIndex || 0;\n const _srcIndex = srcIndex || 0;\n const _srcSize = srcSize || srcVal.length;\n ctx.params[dstDELogicParamId].splice(\n insertIndex,\n 0,\n ...srcVal.slice(_srcIndex, _srcSize)\n );\n }\n};\n\n// src/de-logic/de-logic-node/throw-exception-node/throw-exception-node.ts\nimport { HttpError } from \"@ibiz-template/core\";\nvar ThrowExceptionNode = class extends DELogicNode {\n async exec(_ctx) {\n const { errorCode, errorInfo } = this.model;\n throw new HttpError({\n response: {\n status: errorCode,\n statusText: errorInfo\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n });\n }\n};\n\n// src/de-logic/de-logic-param/de-logic-param.ts\nimport { ModelError as ModelError12 } from \"@ibiz-template/core\";\nimport { clone as clone8 } from \"ramda\";\nvar DELogicParam = class {\n /**\n * Creates an instance of DELogicParam.\n *\n * @author lxm\n * @date 2023-02-08 16:02:22\n * @param {DELogicParamModel} model\n */\n constructor(model) {\n this.model = model;\n }\n /**\n * 向界面逻辑中计算基础参数\n *\n * @author lxm\n * @date 2023-02-08 20:02:33\n * @param {DELogicContext} ctx\n * @param {IParams} context\n * @param {IData} data\n * @param {IParams} [opt]\n */\n calc(ctx) {\n const tag = this.model.id;\n const m = this.model;\n if (m.default) {\n ctx.params[tag] = ctx.data || {};\n } else if (m.appGlobalParam) {\n ctx.params[tag] = clone8(ibiz.env);\n } else if (m.entityListParam) {\n ctx.params[tag] = [];\n } else if (m.entityPageParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u5206\\u9875\\u67E5\\u8BE2\\u7ED3\\u679C\");\n } else if (m.entityParam) {\n ctx.params[tag] = {};\n } else if (m.lastReturnParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u4E0A\\u6B21\\u8C03\\u7528\\u8FD4\\u56DE\");\n } else if (m.appContextParam) {\n ctx.params[tag] = ctx.context;\n } else if (m.simpleListParam) {\n ctx.params[tag] = [];\n } else if (m.simpleParam) {\n ctx.params[tag] = {};\n } else if (m.cloneParam) {\n ctx.params[tag] = clone8(ctx.data || {});\n } else if (m.envParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u7CFB\\u7EDF\\u73AF\\u5883\\u53D8\\u91CF\");\n } else if (m.fileListParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u6587\\u4EF6\\u5BF9\\u8C61\\u5217\\u8868\\u53D8\\u91CF\");\n } else if (m.fileParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u6587\\u4EF6\\u5BF9\\u8C61\\u53D8\\u91CF\");\n } else if (m.filterParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u8FC7\\u6EE4\\u5668\\u5BF9\\u8C61\\u53D8\\u91CF\");\n } else if (m.lastParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u6700\\u540E\\u6570\\u636E\\u53D8\\u91CF\");\n } else if (m.originEntity) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u539F\\u59CB\\u6570\\u636E\\u5BF9\\u8C61\");\n } else if (m.sessionParam) {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u64CD\\u4F5C\\u4F1A\\u8BDD\\u53D8\\u91CF\");\n }\n }\n /**\n * 重新建立变量\n * @author lxm\n * @date 2023-03-24 09:20:42\n * @param {DELogicContext} ctx\n */\n renew(ctx) {\n const tag = this.model.id;\n const m = this.model;\n if (m.entityListParam || m.simpleListParam || m.entityPageParam) {\n ctx.params[tag] = [];\n } else if (m.simpleParam || m.entityParam) {\n ctx.params[tag] = {};\n } else {\n throw new ModelError12(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B\\u91CD\\u65B0\\u5EFA\\u7ACB\\u53D8\\u91CF\");\n }\n }\n};\n\n// src/de-logic/de-logic.ts\nvar DELogic = class {\n /**\n * Creates an instance of DELogic.\n * @author lxm\n * @date 2023-02-08 17:02:26\n * @param {IAppDELogic} model\n */\n constructor(model) {\n this.model = model;\n /**\n * 所有节点实例\n *\n * @author lxm\n * @date 2023-02-08 21:02:38\n * @protected\n * @type {Map<string, DELogicNode>}\n */\n this.nodes = /* @__PURE__ */ new Map();\n /**\n * 所有参数实例\n *\n * @author lxm\n * @date 2023-02-08 21:02:25\n * @protected\n * @type {Map<string, DELogicParam>}\n */\n this.params = /* @__PURE__ */ new Map();\n var _a, _b;\n if (!((_a = model.delogicNodes) == null ? void 0 : _a.length)) {\n throw new RuntimeModelError17(model, \"\\u5B9E\\u4F53\\u903B\\u8F91\\u6CA1\\u6709\\u914D\\u7F6E\\u903B\\u8F91\\u8282\\u70B9\");\n }\n model.delogicNodes.forEach((node) => {\n const { logicNodeType } = node;\n let logicNode;\n switch (logicNodeType) {\n case \"BEGIN\":\n logicNode = new StartNode(node);\n break;\n case \"END\":\n logicNode = new EndNode(node);\n break;\n case \"DEACTION\":\n logicNode = new DEActionNode(node);\n break;\n case \"PREPAREPARAM\":\n logicNode = new PrepareParamNode(node);\n break;\n case \"DEDATASET\":\n logicNode = new DataSetNode(node);\n break;\n case \"THROWEXCEPTION\":\n logicNode = new ThrowExceptionNode(node);\n break;\n case \"BINDPARAM\":\n logicNode = new BindParamNode(node);\n break;\n case \"RESETPARAM\":\n logicNode = new ResetParamNode(node);\n break;\n case \"COPYPARAM\":\n logicNode = new CopyParamNode(node);\n break;\n case \"RENEWPARAM\":\n logicNode = new RenewParamNode(node);\n break;\n case \"APPENDPARAM\":\n logicNode = new AppendParamNode(node);\n break;\n case \"SORTPARAM\":\n logicNode = new SortParamNode(node);\n break;\n default:\n throw new ModelError13(node, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8282\\u70B9\\u7C7B\\u578B: \".concat(logicNodeType));\n }\n this.nodes.set(node.id, logicNode);\n });\n (_b = model.delogicParams) == null ? void 0 : _b.forEach((param) => {\n this.params.set(param.id, new DELogicParam(param));\n });\n this.nodes.forEach((node) => {\n node.links.forEach((link) => {\n link.srcNode = node;\n if (this.nodes.has(link.model.thenId)) {\n link.dstNode = this.nodes.get(link.model.thenId);\n }\n });\n });\n }\n /**\n * 初始化当前环境的逻辑参数的实例\n *\n * @author lxm\n * @date 2023-02-08 21:02:58\n * @protected\n * @param {DELogicContext} ctx\n * @param {IParams} context\n * @param {IData} data\n * @param {IParams} [opt]\n */\n initLogicParams(ctx) {\n this.params.forEach((param) => {\n if (param.model.default) {\n ctx.defaultParamName = param.model.id;\n }\n param.calc(ctx);\n });\n }\n /**\n * 执行逻辑\n *\n * @author lxm\n * @date 2023-02-08 21:02:09\n * @param {IParams} context\n * @param {IData} data\n * @param {IParams} [opt]\n * @return {*} {Promise<IData>}\n */\n async exec(context, data, params) {\n const ctx = new DELogicContext(this.params, context, data, params);\n this.initLogicParams(ctx);\n const { startDELogicNodeId } = this.model;\n if (startDELogicNodeId && this.nodes.has(startDELogicNodeId)) {\n const start = this.nodes.get(startDELogicNodeId);\n await this.deepExec(start, ctx);\n } else {\n throw new RuntimeModelError17(this.model, \"\\u672A\\u8BBE\\u7F6E\\u8D77\\u59CB\\u8282\\u70B9\");\n }\n if (ctx.isEndNode) {\n return ctx.result;\n }\n if (ctx.params[ctx.defaultParamName]) {\n return ctx.params[ctx.defaultParamName];\n }\n return null;\n }\n /**\n * 开始根据连线递归执行逻辑\n *\n * @author lxm\n * @date 2023-06-13 08:29:36\n * @protected\n * @param {DELogicNode} node 逻辑节点\n * @param {DELogicContext} ctx 逻辑上下文\n * @return {*} {Promise<void>}\n */\n async deepExec(node, ctx) {\n await node.exec(ctx);\n const { links } = node;\n for (let index = 0; index < links.length; index++) {\n const link = links[index];\n const bol = await link.exec(ctx);\n if (bol && link.dstNode) {\n await this.deepExec(link.dstNode, ctx);\n if (node.model.parallelOutput === false) {\n break;\n }\n }\n }\n }\n};\n\n// src/de-logic/index.ts\nvar deLogicMap = /* @__PURE__ */ new Map();\nasync function findDeLogic(deDELogicId, dataEntityId, appId) {\n const appDataEntity = await ibiz.hub.getAppDataEntity(dataEntityId, appId);\n return findDELogic(deDELogicId, appDataEntity);\n}\nasync function execDELogic(deDELogic, context, data, params) {\n if (!deLogicMap.has(deDELogic)) {\n deLogicMap.set(deDELogic, new DELogic(deDELogic));\n }\n const deLogic = deLogicMap.get(deDELogic);\n return deLogic.exec(context, data, params);\n}\nasync function execDELogicById(deDELogicId, dataEntityId, context, data, params) {\n const deLogic = await findDeLogic(\n deDELogicId,\n dataEntityId,\n context.srfappid\n );\n if (!deLogic) {\n throw new RuntimeError10(\"\".concat(dataEntityId, \"\\u627E\\u4E0D\\u5230\\u5B9E\\u4F53\\u903B\\u8F91\").concat(deDELogicId));\n }\n return execDELogic(deLogic, context, data, params);\n}\nasync function execDELogicAction(deDELogic, context, data, params) {\n try {\n const result = await execDELogic(deDELogic, context, data, params);\n return new HttpResponse2(result);\n } catch (err) {\n if (err instanceof HttpError2) {\n return new HttpResponse2(err, 500);\n }\n throw err;\n }\n}\nasync function execFieldLogics(entity, type, context, data, params) {\n const fieldLogics = filterFieldLogics(entity, type);\n if (fieldLogics.length) {\n const promiseResult = await Promise.all(\n fieldLogics.map((logic) => {\n return execDELogic(logic, context, data, params);\n })\n );\n promiseResult.forEach((value) => {\n Object.assign(data, value);\n });\n }\n}\n\n// src/service/service/entity/method/de-action.ts\nvar DEActionMethod = class extends Method {\n async exec(context, data, params) {\n if (this.method.actionType === \"DELOGIC\") {\n const deLogic = findDELogic(this.method.appDELogicId, this.entity);\n if (!deLogic) {\n throw new RuntimeModelError18(this.method, \"\\u7F3A\\u5C11\\u5B9E\\u4F53\\u5904\\u7406\\u903B\\u8F91\");\n }\n return execDELogicAction(deLogic, context, data, params);\n }\n if (!this.isLocalMode) {\n data = await this.input.handle(context, data);\n }\n if (![\"READ\", \"GETDRAFT\"].includes(this.method.actionMode)) {\n await execFieldLogics(this.entity, \"change\", context, data, params);\n }\n let result;\n switch (this.method.codeName) {\n case \"Create\":\n result = await this.create(context, data, params);\n break;\n case \"Get\":\n result = await this.get(context, params);\n break;\n case \"GetDraft\":\n result = await this.getDraft(context, params);\n break;\n case \"Remove\":\n result = await this.remove(context, params);\n break;\n case \"Update\":\n result = await this.update(context, data, params);\n break;\n case \"CreateTemp\":\n result = await this.createTemp(context, data);\n break;\n case \"GetTemp\":\n result = await this.getTemp(context, data);\n break;\n case \"GetDraftTemp\":\n result = await this.getDraftTemp(context, params);\n break;\n case \"RemoveTemp\":\n result = await this.removeTemp(context, data);\n break;\n case \"UpdateTemp\":\n result = await this.updateTemp(context, data);\n break;\n default: {\n let path2 = this.calcPath(context);\n if (this.method.needResourceKey) {\n path2 = \"\".concat(path2, \"/\").concat(context[this.entity.codeName.toLowerCase()] || data[this.entity.keyAppDEFieldId]);\n }\n const res = await this.request(path2, context, data, params);\n res.data = await this.result.handle(context, res.data);\n result = res;\n }\n }\n await execFieldLogics(this.entity, \"compute\", context, result.data, params);\n return result;\n }\n /**\n * 创建数据\n *\n * @author chitanda\n * @date 2022-08-24 20:08:01\n * @param {IParams} context\n * @param {IData} data\n * @return {*} {Promise<IHttpResponse<IData>>}\n */\n async create(context, data, params) {\n if (this.isLocalMode) {\n return this.createTemp(context, this.createEntity(data));\n }\n const path2 = this.calcPath(context);\n const res = await this.app.net.post(path2, data, params);\n res.data = await this.result.handle(context, res.data);\n return res;\n }\n /**\n * 删除数据\n *\n * @author chitanda\n * @date 2022-08-24 20:08:56\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async remove(context, params) {\n if (this.isLocalMode) {\n return this.removeTemp(context, params);\n }\n const path2 = this.calcPath(context);\n const res = await this.app.net.delete(\n \"\".concat(path2, \"/\").concat(context[this.entity.codeName.toLowerCase()]),\n params\n );\n return res;\n }\n /**\n * 更新数据\n *\n * @author chitanda\n * @date 2022-09-13 19:09:39\n * @param {IParams} context\n * @param {(IData | IDataEntity)} data\n * @param {IParams} [params={}]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async update(context, data, params = {}) {\n if (this.isLocalMode) {\n return this.updateTemp(context, this.createEntity(data));\n }\n const path2 = this.calcPath(context);\n const res = await this.app.net.put(\n \"\".concat(path2, \"/\").concat(context[this.entity.codeName.toLowerCase()]),\n data,\n params\n );\n res.data = await this.result.handle(context, res.data);\n return res;\n }\n /**\n * 获取数据\n *\n * @author chitanda\n * @date 2022-08-24 20:08:07\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async get(context, params = {}) {\n if (this.isLocalMode) {\n return this.getTemp(context, params);\n }\n const path2 = this.calcPath(context);\n const res = await this.app.net.get(\n \"\".concat(path2, \"/\").concat(context[this.entity.codeName.toLowerCase()]),\n params\n );\n res.data = await this.result.handle(context, res.data);\n return res;\n }\n /**\n * 获取默认数据\n *\n * @author chitanda\n * @date 2022-08-24 20:08:26\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IData>>}\n */\n async getDraft(context, params) {\n if (this.isLocalMode) {\n return this.getDraftTemp(context, params);\n }\n const path2 = this.calcPath(context);\n const res = await this.app.net.get(\"\".concat(path2, \"/getdraft\"), params);\n res.data = await this.result.handle(context, res.data);\n return res;\n }\n /**\n * 新建临时数据\n *\n * @author chitanda\n * @date 2022-08-21 17:08:45\n * @param {IParams} context\n * @param {IData} entity\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async createTemp(context, entity) {\n try {\n const s = await this.getService();\n const data = await s.local.add(context, this.createEntity(entity));\n return new HttpResponse3(data);\n } catch (err) {\n return new HttpResponse3(err, 500);\n }\n }\n /**\n * 获取临时数据默认值\n *\n * @author chitanda\n * @date 2022-08-21 17:08:56\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async getDraftTemp(_context, _params) {\n try {\n const data = this.createEntity({});\n if (data) {\n return new HttpResponse3(data);\n }\n return new HttpResponse3(data, 500);\n } catch (err) {\n return new HttpResponse3(err, 500);\n }\n }\n /**\n * 删除临时数据\n *\n * @author chitanda\n * @date 2022-08-21 17:08:11\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async removeTemp(context, params) {\n try {\n let key = null;\n if (params) {\n }\n if (!key && context) {\n key = context[this.entity.codeName.toLowerCase()];\n }\n const s = await this.getService();\n const data = s.local.delete(context, key);\n if (data) {\n return new HttpResponse3(data);\n }\n return new HttpResponse3(data, 500);\n } catch (err) {\n return new HttpResponse3(err, 500);\n }\n }\n /**\n * 更新临时数据\n *\n * @author chitanda\n * @date 2022-08-21 17:08:17\n * @param {IParams} context\n * @param {IData} entity\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async updateTemp(context, entity) {\n try {\n const s = await this.getService();\n const data = s.local.update(context, this.createEntity(entity));\n if (data) {\n return new HttpResponse3(data);\n }\n return new HttpResponse3(data, 500);\n } catch (err) {\n return new HttpResponse3(err, 500);\n }\n }\n /**\n * 获取临时数据\n *\n * @author chitanda\n * @date 2022-08-21 17:08:23\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse<IDataEntity>>}\n */\n async getTemp(context, params) {\n try {\n let key = null;\n if (params) {\n }\n if (!key && context) {\n key = context[this.entity.codeName.toLowerCase()];\n }\n const s = await this.getService();\n const data = s.local.get(context, key);\n if (data) {\n return new HttpResponse3(data);\n }\n return new HttpResponse3(data, 500);\n } catch (err) {\n return new HttpResponse3(err, 500);\n }\n }\n /**\n * 批量删除本地数据\n *\n * @param {IParams} context\n * @param {IParams} [params]\n * @return {*} {Promise<IHttpResponse>}\n */\n async removeBatchTemp(_context, _params) {\n return new HttpResponse3(true);\n }\n};\n\n// src/service/service/entity/method/fetch.ts\nimport {\n HttpResponse as HttpResponse4,\n ModelError as ModelError14,\n RuntimeModelError as RuntimeModelError19\n} from \"@ibiz-template/core\";\nimport { ascSort, descSort } from \"qx-util\";\nimport { clone as clone9, equals as equals2, isEmpty as isEmpty7, isNil as isNil7, where as where2 } from \"ramda\";\nvar FetchMethod = class extends Method {\n async exec(context, data, params) {\n if (this.isLocalMode) {\n const items2 = await this.searchLocal(\n null,\n new SearchFilter(context, data)\n );\n return new HttpResponse4(items2, 200);\n }\n let res;\n switch (this.method.dataSetType) {\n case \"INDEXDE\":\n case \"CODELIST\":\n res = await this.fetchCodeListSet(context, params);\n break;\n case \"REMOTE\":\n {\n const path2 = this.calcPath(context);\n res = await this.request(path2, context, data, params);\n }\n break;\n default:\n throw new ModelError14(\n this.method,\n \"\\u6570\\u636E\\u6765\\u6E90\\u7C7B\\u578B\".concat(this.method.dataSetType, \"\\u6682\\u672A\\u652F\\u6301\")\n );\n }\n const items = res.data || [];\n res.data = items.map((item) => this.createEntity(item));\n if (res.data.length) {\n await Promise.all(\n res.data.map(\n (item) => execFieldLogics(this.entity, \"compute\", context, item, params)\n )\n );\n }\n return res;\n }\n /**\n * 查询本地数据,根据属性\n *\n * @param {IParams} context\n * @param {IParams} params 根据多实体属性查找,例:{ name: '张三', age: 18, parent: null }\n * @return {*} {Promise<IDataEntity[]>}\n */\n async selectLocal(context, params = {}) {\n const service = await this.getService();\n let items = service.local.getList(context);\n items = ascSort(items, \"srfordervalue\");\n const data = {};\n const nullData = {};\n const undefinedData = {};\n const emptyData = {};\n if (params.srfkey) {\n data.srfkey = equals2(params.srfkey);\n delete params.srfkey;\n }\n for (const key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) {\n const val = params[key];\n if (val == null) {\n nullData[key] = equals2(null);\n undefinedData[key] = equals2(void 0);\n emptyData[key] = equals2(\"\");\n } else {\n data[key] = equals2(val);\n }\n }\n }\n if (!isEmpty7(data)) {\n const pred = where2(data);\n const nullPred = where2(nullData);\n const undefinedPred = where2(undefinedData);\n const emptyPred = where2(emptyData);\n items = items.filter((obj) => {\n if (isEmpty7(nullData)) {\n if (pred(obj)) {\n return true;\n }\n } else if (pred(obj) && (nullPred(obj) || undefinedPred(obj) || emptyPred(obj))) {\n return true;\n }\n return false;\n });\n }\n const list = items.map((obj) => obj.clone());\n return list;\n }\n /**\n * 搜索本地数据\n *\n * @protected\n * @param {PSDEDQCondEngine | null} cond 查询实例\n * @param {SearchFilter} filter 过滤对象\n * @param {string[]} [queryParamKeys=this.entity.quickSearchKeys] 当前实体支持快速搜索的属性\n * @return {*} {Promise<IDataEntity[]>}\n */\n async searchLocal(cond, filter, queryParamKeys = this.entity.quickSearchAppDEFieldIds) {\n const service = await this.getService();\n let list = [];\n if (cond) {\n list = service.local.getList(filter.context);\n if (list.length > 0) {\n list = list.filter((obj) => cond.test(obj, filter));\n }\n } else {\n list = await this.selectLocal(filter.context);\n if (list.length > 0) {\n if (filter.query && filter.query !== \"\") {\n if (queryParamKeys) {\n list = list.filter((obj) => {\n const reg2 = new RegExp(filter.query);\n for (let i = 0; i < queryParamKeys.length; i += 1) {\n const key = queryParamKeys[i];\n const val = obj[key];\n if (reg2.test(val)) {\n return true;\n }\n }\n return false;\n });\n }\n }\n }\n }\n if (!isNil7(filter.sortField) && !isEmpty7(filter.sortField)) {\n if (filter.sortMode === \"DESC\") {\n list = descSort(list, filter.sortField);\n } else {\n list = ascSort(list, filter.sortField);\n }\n }\n const { page, size } = filter;\n const start = page * size;\n const end = (page + 1) * size - 1;\n const items = list.slice(start, end).map((item) => clone9(item));\n return items;\n }\n /**\n * 获取代码表数据来源的集合\n * @author lxm\n * @date 2023-08-03 02:55:00\n * @param {IParams} context\n * @param {IParams} params\n * @return {*} {Promise<HttpResponse<IData[]>>}\n */\n async fetchCodeListSet(context, params) {\n const { appCodeListId } = this.method;\n if (!appCodeListId) {\n throw new RuntimeModelError19(this.method, \"\\u6CA1\\u6709\\u6307\\u5B9A\\u6570\\u636E\\u6765\\u6E90\\u4EE3\\u7801\\u8868\");\n }\n const codeItems = await this.app.codeList.get(\n appCodeListId,\n context,\n params\n );\n const { keyAppDEFieldId, majorAppDEFieldId } = this.entity;\n const dataSet = codeItems.map((item) => ({\n [keyAppDEFieldId]: item.value,\n [majorAppDEFieldId]: item.text\n }));\n return new HttpResponse4(dataSet, 200);\n }\n};\n\n// src/service/service/entity/de.service.ts\nvar DEService = class {\n /**\n * Creates an instance of EntityService.\n *\n * @author chitanda\n * @date 2022-08-24 18:08:44\n * @param {IAppDataEntity} model 应用实体模型\n */\n constructor(model) {\n this.model = model;\n /**\n * 请求方法实例\n *\n * @author chitanda\n * @date 2022-10-10 12:10:13\n * @protected\n * @type {Map<string, Method>}\n */\n this.methodMap = /* @__PURE__ */ new Map();\n /**\n * 数据缓存\n *\n * @author chitanda\n * @date 2022-08-18 19:08:40\n * @type {DECache}\n */\n this.local = new DECache();\n this.wf = new WorkFlowService(model);\n this.file = new FileService(model);\n }\n /**\n * 获取实体服务方法实例\n *\n * @author chitanda\n * @date 2022-10-10 14:10:53\n * @protected\n * @param {string} id\n * @return {*} {Method}\n */\n getMethod(id) {\n if (this.methodMap.has(id)) {\n return this.methodMap.get(id);\n }\n const model = findModelChild(this.model.appDEMethods, id);\n let method = null;\n switch (model.methodType) {\n case \"DEACTION\":\n method = new DEActionMethod(this.model, model);\n break;\n case \"FETCH\":\n case \"FETCHTEMP\":\n method = new FetchMethod(this.model, model);\n break;\n default:\n throw new ModelError15(\n model,\n \"\\u672A\\u652F\\u6301\\u7684\\u670D\\u52A1\\u65B9\\u6CD5\\u7C7B\\u578B: \".concat(model.methodType)\n );\n }\n this.methodMap.set(id, method);\n return method;\n }\n /**\n * 执行服务方法\n *\n * @author chitanda\n * @date 2022-09-13 19:09:55\n * @param {string} id 执行服务方法标识\n * @param {IParams} context\n * @param {IData} [params={}] 请求参数\n * @param {IParams} [params2={}] 查询参数\n * @return {*} {Promise<IHttpResponse>}\n */\n exec(id, context, params = {}, params2 = {}) {\n const method = this.getMethod(id);\n if (method) {\n return method.exec(context, params, params2);\n }\n throw new RuntimeError11(\"\".concat(this.model.codeName, \"\\u672A\\u652F\\u6301\\u300C\").concat(id, \"\\u300D\\u65B9\\u6CD5\"));\n }\n};\n\n// src/service/vo/control.vo.ts\nimport { isNil as isNil8 } from \"ramda\";\nvar ControlVO = class _ControlVO {\n /**\n * 是否是新建数据,0为新建\n *\n * @author lxm\n * @date 2022-09-06 22:09:24\n * @type {Srfuf}\n */\n get srfuf() {\n if (isNil8(this.$origin.srfuf)) {\n return this.srfkey ? 1 /* UPDATE */ : 0 /* CREATE */;\n }\n return this.$origin.srfuf;\n }\n /**\n * 主键\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfkey() {\n return this.$origin.srfkey;\n }\n /**\n * 主信息\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfmajortext() {\n return this.$origin.srfmajortext;\n }\n /**\n * 实体模型标识\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfdeid() {\n return this.$origin.srfdeid;\n }\n /**\n * 实体模型代码名称\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfdecodename() {\n return this.$origin.srfdecodename;\n }\n /**\n * 实体主键属性\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfkeyfile() {\n return this.$origin.srfkeyfile;\n }\n /**\n * 实体主信息属性\n *\n * @author lxm\n * @date 2022-09-07 19:09:42\n * @type {string}\n */\n get srfmajorfile() {\n return this.$origin.srfmajorfile;\n }\n /**\n * Creates an instance of ControlVO.\n * @author lxm\n * @date 2022-09-05 15:09:10\n * @param {IData} origin 后台原始数据\n * @param {Map<string, string>} dataUIMap 转换映射map,key为转换后的属性,value为映射字段描述信息\n */\n constructor($origin = {}, $dataUIMap = /* @__PURE__ */ new Map()) {\n Object.defineProperty(this, \"$origin\", {\n enumerable: false,\n configurable: true,\n value: $origin || {}\n });\n Object.defineProperty(this, \"$dataUIMap\", {\n enumerable: false,\n configurable: true,\n value: $dataUIMap || /* @__PURE__ */ new Map()\n });\n this.$dataUIMap.forEach((mapField, key) => {\n const value = mapField.dataKey;\n this.linkProperty(key, value, mapField.isOriginField);\n });\n Object.keys($origin).forEach((value) => {\n if (!Object.prototype.hasOwnProperty.call(this, value)) {\n this.linkProperty(value, value);\n }\n });\n }\n /**\n * 关联实体属性\n *\n * @author lxm\n * @date 2022-10-18 15:10:48\n * @private\n * @param {string} uiKey 界面字段\n * @param {string} dataKey 数据字段\n * @param {boolean} [isOriginField=true] 是否是后台存储字段,是的话存取都在$origin里\n * @returns {*}\n */\n linkProperty(uiKey, dataKey, isOriginField = true) {\n if (uiKey === \"srfuf\") {\n return;\n }\n if (isOriginField || Object.prototype.hasOwnProperty.call(this.$origin, uiKey)) {\n Object.defineProperty(this, uiKey, {\n enumerable: true,\n configurable: true,\n get() {\n return this.$origin[dataKey];\n },\n set(val) {\n this.$origin[dataKey] = val;\n }\n });\n } else {\n Object.defineProperty(this, uiKey, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n }\n }\n /**\n * 获取原始数据\n *\n * @author lxm\n * @date 2022-09-05 15:09:52\n * @returns {*}\n */\n getOrigin() {\n return this.$origin;\n }\n /**\n * 设置原始数据\n *\n * @author lxm\n * @date 2022-10-17 20:10:39\n * @param {IData} data\n */\n setOrigin(data) {\n this.$origin = data instanceof _ControlVO ? data.getOrigin() : data;\n }\n};\n\n// src/service/service/control/control.service.ts\nvar ControlService = class {\n /**\n * Creates an instance of ControlService.\n * @author lxm\n * @date 2022-08-29 18:08:08\n * @param {T} model\n */\n constructor(model) {\n /**\n * UI数据和实体数据的属性名映射\n * key:UI数据属性名\n * value: 映射属性描述信息\n *\n * @author lxm\n * @date 2022-08-31 17:08:35\n */\n this.dataUIMap = /* @__PURE__ */ new Map();\n this.model = model;\n }\n /**\n * 子类不可覆盖或重写此方法,在 init 时需要重写的使用 onInit 方法。\n *\n * @author lxm\n * @date 2022-08-18 22:08:30\n * @returns {*} {Promise<void>}\n */\n async init(context) {\n this.app = ibiz.hub.getApp(context == null ? void 0 : context.srfappid);\n this.initUIDataMap();\n }\n /**\n * 初始化属性映射\n *\n * @author lxm\n * @date 2022-08-31 18:08:37\n */\n initUIDataMap() {\n }\n /**\n * 执行服务方法\n *\n * @author lxm\n * @date 2022-08-31 17:08:41\n * @param {string} methodName 方法名\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 视图参数或数据\n * @returns {*} {Promise<IHttpResponse>}\n */\n async exec(methodName, context, data = {}, params = {}) {\n const res = await this.app.deService.exec(\n this.model.appDataEntityId,\n methodName,\n context,\n data,\n params\n );\n return res;\n }\n /**\n * 处理响应\n *\n * @author lxm\n * @date 2022-08-31 17:08:13\n * @param {IHttpResponse} res\n * @returns {*} {IHttpResponse}\n */\n handleResponse(res) {\n return res;\n }\n /**\n * 实体数据转ui数据\n *\n * @author lxm\n * @date 2022-08-31 17:08:15\n * @param {IData} entityData 实体数据\n * @returns {*} {IData}\n */\n toUIData(entityData) {\n return new ControlVO(entityData, this.dataUIMap);\n }\n};\n\n// src/service/service/control/md-control.service.ts\nimport { RuntimeError as RuntimeError12 } from \"@ibiz-template/core\";\nimport { isArray } from \"qx-util\";\nvar MDControlService = class extends ControlService {\n /**\n * 执行查询多条数据的方法\n *\n * @author lxm\n * @date 2022-08-31 17:08:41\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 视图参数\n * @returns {*} {Promise<IHttpResponse>}\n */\n async fetch(context, params = {}) {\n var _a;\n const fetchAction = ((_a = this.model.fetchControlAction) == null ? void 0 : _a.appDEMethodId) || \"fetchdefault\";\n let res = await this.exec(fetchAction, context, params);\n res = this.handleResponse(res);\n return res;\n }\n /**\n * 执行获取单条数据方法\n *\n * @author lxm\n * @date 2022-08-31 17:08:41\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 视图参数\n * @returns {*} {Promise<IHttpResponse>}\n */\n async get(context, params = {}) {\n var _a;\n const getAction = ((_a = this.model.getControlAction) == null ? void 0 : _a.appDEMethodId) || \"get\";\n let res = await this.exec(getAction, context, void 0, params);\n res = this.handleResponse(res);\n return res;\n }\n /**\n * 执行获取草稿方法\n *\n * @author lxm\n * @date 2022-08-31 17:08:41\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 视图参数\n * @returns {*} {Promise<IHttpResponse>}\n */\n async getDraft(context, params = {}) {\n var _a;\n const getDraftAction = ((_a = this.model.getDraftControlAction) == null ? void 0 : _a.appDEMethodId) || \"getdraft\";\n let res = await this.exec(getDraftAction, context, void 0, params);\n res = this.handleResponse(res);\n return res;\n }\n /**\n * 删除单条数据\n *\n * @author lxm\n * @date 2022-09-07 19:09:48\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 视图参数\n * @returns {*}\n */\n async remove(context, params = {}) {\n var _a;\n const removeAction = ((_a = this.model.removeControlAction) == null ? void 0 : _a.appDEMethodId) || \"remove\";\n const res = await this.exec(removeAction, context, void 0, params);\n return res;\n }\n /**\n * 新建数据\n *\n * @author lxm\n * @date 2022-09-07 19:09:11\n * @param {IParams} context 上下文\n * @param {ControlVO} data 数据\n * @returns {*}\n */\n async create(context, data) {\n var _a;\n const createAction = ((_a = this.model.createControlAction) == null ? void 0 : _a.appDEMethodId) || \"create\";\n let res = await this.exec(createAction, context, data.getOrigin());\n res = this.handleResponse(res);\n return res;\n }\n /**\n * 更新数据\n *\n * @author lxm\n * @date 2022-09-07 19:09:11\n * @param {IParams} context 上下文\n * @param {ControlVO} data 数据\n * @returns {*}\n */\n async update(context, data) {\n var _a;\n const updateAction = ((_a = this.model.updateControlAction) == null ? void 0 : _a.appDEMethodId) || \"update\";\n let res = await this.exec(updateAction, context, data.getOrigin());\n res = this.handleResponse(res);\n return res;\n }\n /**\n * 导出数据\n *\n * @author lxm\n * @date 2022-11-25 14:11:09\n * @param {IPSDEDataExport} dataExport 导出模型\n * @param {IParams} context 上下文\n * @param {IParams} [params={}] 请求参数\n * @returns {*} {Promise<IHttpResponse>}\n */\n async exportData(_dataExport, _context, _params = {}) {\n throw new RuntimeError12(\"\\u672A\\u5B9E\\u73B0\");\n }\n /**\n * 处理响应\n *\n * @author lxm\n * @date 2022-08-31 17:08:13\n * @param {IHttpResponse} res\n * @returns {*} {IHttpResponse}\n */\n handleResponse(response) {\n const res = super.handleResponse(response);\n if (res.headers) {\n if (res.headers[\"x-page\"]) {\n res.page = Number(res.headers[\"x-page\"]);\n }\n if (res.headers[\"x-per-page\"]) {\n res.size = Number(res.headers[\"x-per-page\"]);\n }\n if (res.headers[\"x-total\"]) {\n res.total = Number(res.headers[\"x-total\"]);\n }\n }\n if (res.ok) {\n if (isArray(res.data)) {\n res.data = res.data.map((item) => this.toUIData(item));\n } else {\n res.data = this.toUIData(res.data);\n }\n }\n return res;\n }\n};\n\n// src/service/service/authority/authority.service.ts\nimport { RuntimeError as RuntimeError13 } from \"@ibiz-template/core\";\n\n// src/service/service/authority/de-authority.service.ts\nvar DeAuthorityService = class {\n constructor(entityModel) {\n this.entityModel = entityModel;\n }\n /**\n * 通过操作标识计算权限\n * @author lxm\n * @date 2023-05-10 12:33:10\n * @param {string} dataAccessAction 操作标识\n * @param {IData} [data] 实体数据\n * @param {string} [appDeId] 应用实体id\n * @return {*} {Promise<boolean>}\n */\n async calcByDataAccessAction(dataAccessAction, data) {\n if (data.srfopprivs && !data.srfopprivs.includes(dataAccessAction)) {\n return false;\n }\n const mainStateResult = await this.calcByDeMainState(\n dataAccessAction,\n data\n );\n if (!mainStateResult) {\n return false;\n }\n return true;\n }\n /**\n * 通过实体主状态计算权限\n * @author lxm\n * @date 2023-05-10 01:15:43\n * @param {string} dataAccessAction 权限操作标识\n * @param {IData} data 当前数据\n * @param {string} appDeId 应用实体id\n * @return {*} {Promise<boolean>}\n */\n async calcByDeMainState(dataAccessAction, data) {\n let result = true;\n const appDataEntity = this.entityModel;\n if (!appDataEntity.enableDEMainState) {\n ibiz.log.debug(\n \"\".concat(appDataEntity.codeName, \"\\u5B9E\\u4F53\\u4E0D\\u5B58\\u5728\\u6216\\u8005\\u4E3A\\u542F\\u7528\\u4E3B\\u72B6\\u6001\\uFF0C\\u8FD4\\u56DEtrue\")\n );\n return result;\n }\n ibiz.log.debug(\n \"\\u64CD\\u4F5C\\u6807\\u8BC6\".concat(dataAccessAction, \"\\u4E3B\\u72B6\\u6001\\u8BA1\\u7B97\\u5F00\\u59CB\"),\n data,\n appDataEntity\n );\n const match = matchMainState(appDataEntity, data);\n if (match) {\n ibiz.log.debug(\"\\u5339\\u914D\\u4E3B\\u72B6\\u6001\", match);\n const opprivs = calcMainStateOPPrivsStrs(match, appDataEntity);\n ibiz.log.debug(\"\\u5141\\u8BB8\\u7684\\u4E3B\\u72B6\\u6001\\u6743\\u9650\\u96C6\\u5408\", opprivs);\n result = opprivs.includes(dataAccessAction);\n } else {\n ibiz.log.debug(\"\\u6CA1\\u5339\\u914D\\u4E3B\\u72B6\\u6001\\uFF0C\\u8FD4\\u56DEfalse\");\n result = false;\n }\n ibiz.log.debug(\"\\u64CD\\u4F5C\\u6807\\u8BC6\".concat(dataAccessAction, \"\\u6743\\u9650\\u8BA1\\u7B97\\u7ED3\\u675F\\uFF1A\").concat(result));\n return result;\n }\n};\n\n// src/service/service/authority/authority.service.ts\nvar AuthorityService = class {\n constructor(appModel) {\n this.appModel = appModel;\n /**\n * 实体服务缓存\n *\n * @author chitanda\n * @date 2022-08-17 23:08:36\n * @protected\n * @type {Map<string, IAppDEService>}\n */\n this.cache = /* @__PURE__ */ new Map();\n /**\n * 实体服务构造方法缓存\n *\n * @author chitanda\n * @date 2022-08-17 23:08:36\n * @protected\n * @type {Map<string, IAppDEService>}\n */\n this.constructorCache = /* @__PURE__ */ new Map();\n /**\n * 统一资源集合\n *\n * @author lxm\n * @date 2022-10-12 17:10:46\n * @private\n * @type {string[]}\n */\n this.resCodes = [];\n /**\n * 是否启用权限校验\n * @author lxm\n * @date 2022-10-14 19:10:50\n * @private\n * @type {boolean}\n */\n this.enablePermission = false;\n }\n /**\n * 注册服务工厂方法\n *\n * @author chitanda\n * @date 2023-06-14 10:06:21\n * @param {string} id\n * @param {(\n * entityModel: IAppDataEntity,\n * ) => Promise<IAppDeAuthorityService>} constructor\n */\n register(id, constructor) {\n this.constructorCache.set(id, constructor);\n }\n /**\n * 根据实体标识获取实体服务\n *\n * @author chitanda\n * @date 2022-12-23 10:12:24\n * @param {string} id 实体标识\n * @param {IParams} [context] 上下文,用于计算模型所属沙箱环境\n * @return {*} {Promise<IAppDEService>}\n */\n async getService(id) {\n if (!this.cache.has(id)) {\n const entityModel = await ibiz.hub.getAppDataEntity(\n id,\n this.appModel.appId\n );\n if (!entityModel) {\n throw new RuntimeError13(\"\\u672A\\u627E\\u5230\\u5E94\\u7528\\u5B9E\\u4F53[\".concat(id, \"]\"));\n }\n const constructor = this.constructorCache.get(id);\n let service;\n if (constructor) {\n service = await constructor(entityModel);\n } else {\n service = new DeAuthorityService(entityModel);\n }\n this.cache.set(id, service);\n }\n return this.cache.get(id);\n }\n /**\n * 权限服务初始化\n *\n * @author lxm\n * @date 2022-10-13 15:10:44\n * @param {*} [appData=ibiz.appData]\n * @returns {*} {Promise<void>}\n */\n async init(appData = ibiz.appData) {\n if (!appData) {\n throw new RuntimeError13(\"\\u6CA1\\u6709appData\\u6570\\u636E\");\n }\n if (appData.unires) {\n this.resCodes = appData.unires;\n }\n if (appData.enablepermissionvalid === true && ibiz.env.enablePermission) {\n this.enablePermission = true;\n }\n }\n /**\n * 通过统一资源标识计算权限\n * @author lxm\n * @date 2023-05-10 12:29:53\n * @param {string} resCode\n */\n calcByResCode(resCode) {\n return !this.enablePermission || this.resCodes.includes(resCode);\n }\n /**\n * 通过操作标识计算权限\n * @author lxm\n * @date 2023-05-10 12:33:10\n * @param {string} dataAccessAction 操作标识\n * @param {IData} [data] 实体数据\n * @param {string} [appDeId] 应用实体id\n * @return {*} {Promise<boolean>}\n */\n async calcByDataAccessAction(dataAccessAction, data, appDeId) {\n const result = true;\n if (this.enablePermission) {\n const app = await ibiz.hub.getApp(this.appModel.appId);\n const opPriv = await app.getOPPriv(dataAccessAction, appDeId);\n if (this.enablePermission && (opPriv == null ? void 0 : opPriv.mapSysUniResCode) && !this.calcByResCode(opPriv.mapSysUniResCode)) {\n return false;\n }\n }\n if (data && appDeId) {\n const service = await this.getService(appDeId);\n return service.calcByDataAccessAction(dataAccessAction, data);\n }\n return result;\n }\n};\n\n// src/service/service/auth/auth.service.ts\nvar AuthService = class {\n /**\n * v7 uaa 登录\n *\n * @author chitanda\n * @date 2022-07-19 18:07:54\n * @param {string} loginname\n * @param {string} password\n * @return {*} {Promise<IHttpResponse>}\n */\n async v7login(loginname, password) {\n const res = await ibiz.net.post(\n \"/v7/login\",\n { loginname, password },\n {},\n {\n // sass 模式下,注册在 sassMgr 管理平台的应用中心系统标识\n // srfdcsystem: ibiz.env.dcSystem,\n }\n );\n return res;\n }\n /**\n * v7 uaa 登出\n *\n * @author chitanda\n * @date 2022-09-14 18:07:54\n * @return {*} {Promise<IHttpResponse>}\n */\n async v7logout() {\n const res = await ibiz.net.get(\"/v7/logout\", {});\n return res;\n }\n};\n\n// src/service/vo/tree-node-data/tree-node-data.ts\nvar TreeNodeData = class {\n constructor(model, parentNodeData, opts) {\n this.leaf = false;\n this.leaf = opts.leaf === true;\n this.parent = parentNodeData;\n if (this.parent) {\n this.context = { ...this.parent.context };\n }\n if (opts.navContext) {\n this.context = Object.assign(this.context || {}, opts.navContext);\n }\n if (opts.navParams) {\n this.params = { ...opts.navParams };\n }\n this.nodeId = model.id;\n }\n};\n\n// src/service/vo/tree-node-data/tree-code-list-node-data.ts\nvar TreeCodeListNodeData = class extends TreeNodeData {\n constructor(model, parentNodeData, opts) {\n super(model, parentNodeData, opts);\n const { data } = opts;\n this.deData = data;\n this.text = data.text;\n this.value = data.value;\n this.id = parentNodeData ? \"\".concat(parentNodeData.id, \":\").concat(model.id, \"@\").concat(this.value) : model.id + this.value;\n this.id = this.id.toLowerCase();\n if (model.appDataEntityId) {\n const deName = calcDeCodeNameById(model.appDataEntityId);\n this.context = Object.assign(this.context || {}, {\n [deName]: this.value\n });\n }\n this.srfkey = this.value;\n this.srfmajortext = this.text;\n }\n};\n\n// src/service/vo/tree-node-data/tree-data-set-node-data.ts\nvar TreeDataSetNodeData = class extends TreeNodeData {\n constructor(model, parentNodeData, opts) {\n super(model, parentNodeData, opts);\n const { data } = opts;\n this.deData = data;\n this.text = data.srfmajortext;\n this.value = data.srfkey;\n this.id = parentNodeData ? \"\".concat(parentNodeData.id, \":\").concat(model.id, \"@\").concat(data.srfkey) : model.id + data.srfkey;\n this.id = this.id.toLowerCase();\n if (model.appDataEntityId) {\n const deName = calcDeCodeNameById(model.appDataEntityId);\n this.context = Object.assign(this.context || {}, {\n [deName]: data.srfkey\n });\n }\n this.srfkey = this.deData.srfkey;\n this.srfmajortext = this.deData.srfmajortext;\n }\n};\n\n// src/service/vo/tree-node-data/tree-static-node-data.ts\nvar TreeStaticNodeData = class extends TreeNodeData {\n constructor(model, parentNodeData, opts) {\n var _a, _b;\n super(model, parentNodeData, opts);\n const nodeValue = model.nodeValue === \"root\" ? void 0 : model.nodeValue;\n this.id = parentNodeData ? \"\".concat(parentNodeData.id, \":\").concat(model.id) : model.id;\n this.id = this.id.toLowerCase();\n this.text = model.text;\n this.value = nodeValue;\n if (parentNodeData && opts.parentValueLevel) {\n let parent = parentNodeData;\n for (let index = 1; index < opts.parentValueLevel; index++) {\n parent = parent == null ? void 0 : parent.parent;\n }\n if (parent == null ? void 0 : parent.deData) {\n this.deData = parent.deData;\n }\n this.value = nodeValue || (parent == null ? void 0 : parent.value);\n }\n this.srfkey = ((_a = this.deData) == null ? void 0 : _a.srfkey) || this.value;\n this.srfmajortext = ((_b = this.deData) == null ? void 0 : _b.srfmajortext) || this.text;\n }\n};\n\n// src/service/vo/ui-map-field.ts\nimport { isNil as isNil9 } from \"ramda\";\nvar UIMapField = class {\n constructor(uiKey, dataKey, opts = {}) {\n /**\n * 是否存储到origin里面(默认false)\n *\n * @author lxm\n * @date 2022-10-18 14:10:24\n * @type {boolean}\n */\n this.isOriginField = false;\n /**\n * 是否是请求需要的字段(默认true)\n *\n * @author lxm\n * @date 2022-10-18 14:10:44\n * @type {boolean}\n */\n this.isRequestNeed = true;\n this.uiKey = uiKey;\n this.dataKey = dataKey;\n if (!isNil9(opts.isOriginField)) {\n this.isOriginField = opts.isOriginField;\n }\n }\n};\n\n// src/service/vo/calendar-item-data/calendar-item-data.ts\nvar CalendarItemData = class {\n constructor(model, data) {\n this.model = model;\n this.data = data;\n }\n get deData() {\n return this.data;\n }\n get navId() {\n return \"\".concat(this.itemType, \"@\").concat(this.id);\n }\n get itemType() {\n return this.model.itemType;\n }\n get bkColor() {\n const fieldName = this.model.bkcolorAppDEFieldId;\n return fieldName && this.data[fieldName] ? this.data[fieldName] : this.model.bkcolor;\n }\n get beginTime() {\n const fieldName = this.model.beginTimeAppDEFieldId;\n return fieldName ? this.data[fieldName] : void 0;\n }\n get color() {\n const fieldName = this.model.colorAppDEFieldId;\n return fieldName && this.data[fieldName] ? this.data[fieldName] : this.model.color;\n }\n get content() {\n const fieldName = this.model.contentAppDEFieldId;\n return fieldName ? this.data[fieldName] : void 0;\n }\n get endTime() {\n const fieldName = this.model.endTimeAppDEFieldId;\n return fieldName ? this.data[fieldName] : void 0;\n }\n get icon() {\n const fieldName = this.model.iconAppDEFieldId;\n return fieldName ? this.data[fieldName] : void 0;\n }\n get id() {\n const fieldName = this.model.idAppDEFieldId;\n return fieldName && this.data[fieldName] ? this.data[fieldName] : this.data.srfkey;\n }\n get level() {\n const fieldName = this.model.levelAppDEFieldId;\n return fieldName ? this.data[fieldName] : void 0;\n }\n get tag2() {\n const fieldName = this.model.tag2AppDEFieldId;\n return fieldName ? this.data[fieldName] : void 0;\n }\n get tag() {\n const fieldName = this.model.tagAppDEFieldId;\n return fieldName ? this.data[fieldName] : void 0;\n }\n get text() {\n const fieldName = this.model.textAppDEFieldId;\n return fieldName ? this.data[fieldName] : void 0;\n }\n get tips() {\n const fieldName = this.model.tipsAppDEFieldId;\n return fieldName ? this.data[fieldName] : void 0;\n }\n};\n\n// src/service/de-service-util.ts\nimport { RuntimeError as RuntimeError14 } from \"@ibiz-template/core\";\nvar DEServiceUtil = class {\n /**\n * Creates an instance of DEServiceUtil.\n *\n * @author chitanda\n * @date 2023-04-18 14:04:01\n * @param {IApplication} appModel\n */\n constructor(appModel) {\n this.appModel = appModel;\n /**\n * 实体服务缓存\n *\n * @author chitanda\n * @date 2022-08-17 23:08:36\n * @protected\n * @type {Map<string, IAppDEService>}\n */\n this.cache = /* @__PURE__ */ new Map();\n /**\n * 实体服务构造方法缓存\n * @author lxm\n * @date 2023-05-15 08:37:13\n * @protected\n */\n this.constructorCache = /* @__PURE__ */ new Map();\n }\n /**\n * 注册服务工厂方法\n *\n * @author chitanda\n * @date 2023-06-14 10:06:31\n * @param {string} id\n * @param {(entityModel: IAppDataEntity) => Promise<IAppDEService>} constructor\n */\n register(id, constructor) {\n this.constructorCache.set(id, constructor);\n }\n /**\n * 根据实体标识获取实体服务\n *\n * @author chitanda\n * @date 2022-12-23 10:12:24\n * @param {string} id 实体标识\n * @param {IParams} [context] 上下文,用于计算模型所属沙箱环境\n * @return {*} {Promise<IAppDEService>}\n */\n async getService(id) {\n if (!this.cache.has(id)) {\n const entityModel = await ibiz.hub.getAppDataEntity(\n id,\n this.appModel.appId\n );\n if (!entityModel) {\n throw new RuntimeError14(\"\\u672A\\u627E\\u5230\\u5E94\\u7528\\u5B9E\\u4F53[\".concat(id, \"]\"));\n }\n const constructor = this.constructorCache.get(id);\n let service;\n if (constructor) {\n service = await constructor(entityModel);\n } else {\n service = new DEService(entityModel);\n }\n this.cache.set(id, service);\n }\n return this.cache.get(id);\n }\n /**\n * 清理所有服务, 当前临时域下的所有临时数据缓存\n *\n * @description 根据 srfsessionid 作为临时数据域\n * @author chitanda\n * @date 2022-08-18 14:08:48\n * @param {IParams} context\n */\n clearTempCache(context) {\n this.cache.forEach((service) => {\n service.local.clear(context);\n });\n }\n /**\n * 执行服务方法\n * @author lxm\n * @date 2023-04-26 02:02:43\n * @param {string} appDataEntityId 实体名称\n * @param {string} methodName 方法名\n * @param {IParams} context 上下文\n * @param {(IData | undefined)} [params] 数据\n * @param {(IParams | undefined)} [params2] 视图参数\n * @return {*} {Promise<IHttpResponse<IData>>}\n */\n async exec(appDataEntityId, methodName, context, params, params2) {\n const service = await this.getService(appDataEntityId);\n return service.exec(methodName, context, params, params2);\n }\n};\n\n// src/app-hub.ts\nimport { RuntimeError as RuntimeError16 } from \"@ibiz-template/core\";\n\n// src/application.ts\nimport { Net } from \"@ibiz-template/core\";\nvar Application = class {\n /**\n * Creates an instance of Application.\n *\n * @author chitanda\n * @date 2022-12-22 15:12:26\n * @param {IApplication} model\n */\n constructor(model) {\n this.model = model;\n /**\n * 应用实体名称到应用实体代码名称的映射\n *\n * @author chitanda\n * @date 2023-06-14 17:06:02\n * @type {Map<string, string>}\n */\n this.deName2DeCodeName = /* @__PURE__ */ new Map();\n this.net = new Net({\n baseURL: \"\".concat(ibiz.env.baseUrl, \"/\").concat(model.appId)\n });\n this.deService = new DEServiceUtil(model);\n this.codeList = new CodeListService(model);\n this.authority = new AuthorityService(model);\n }\n /**\n * 当前应用标识\n *\n * @author chitanda\n * @date 2023-04-19 22:04:55\n * @readonly\n * @type {string}\n */\n get appId() {\n return this.model.appId;\n }\n /**\n * 初始化应用\n *\n * @author chitanda\n * @date 2023-04-19 11:04:02\n * @return {*} {Promise<void>}\n */\n async init() {\n await this.authority.init();\n await this.loadAppModelStyle();\n }\n /**\n * 加载应用模型全局样式\n *\n * @author chitanda\n * @date 2023-07-24 20:07:41\n * @protected\n * @return {*} {Promise<void>}\n */\n async loadAppModelStyle() {\n await this.net.get(\"\".concat(ibiz.env.remoteModelUrl, \"/PSSYSAPP.json.css\")).then((res) => {\n const dom = document.createElement(\"style\");\n dom.setAttribute(\"type\", \"text/css\");\n if (res.request && res.request.responseURL) {\n const url = new URL(res.request.responseURL);\n dom.id = url.pathname;\n }\n dom.innerHTML = res.data;\n document.head.appendChild(dom);\n }).catch((err) => {\n ibiz.log.error(\n \"\\u5E94\\u7528[\".concat(this.appId, \"]\\u6A21\\u578B\\u5168\\u5C40\\u6837\\u5F0F\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A\").concat(err.message)\n );\n });\n }\n /**\n * 根据 id 查找应用功能\n *\n * @author chitanda\n * @date 2023-04-20 17:04:24\n * @param {string} id\n * @return {*} {(IAppFunc | null)}\n */\n getAppFunc(id) {\n const items = this.model.appFuncs || [];\n const item = items.find((func) => func.id === id);\n return item || null;\n }\n /**\n * 获取界面行为模型\n * @author lxm\n * @date 2023-04-28 05:44:14\n * @param {string} actionId\n * @param {string} [_appDataEntityId]\n * @return {*}\n */\n async getUIAction(actionId) {\n const [, appDeId] = actionId.split(\"@\");\n if (appDeId) {\n const appDataEntity = await ibiz.hub.getAppDataEntity(\n appDeId,\n this.model.appId\n );\n const find = appDataEntity.appDEUIActions.find((action) => {\n return action.id === actionId;\n });\n if (find) {\n return find;\n }\n }\n return this.model.appDEUIActions.find((action) => {\n return action.id === actionId;\n });\n }\n /**\n * 获取操作标识模型\n * @author lxm\n * @date 2023-05-10 11:24:17\n * @param {string} id\n * @param {string} [appDataEntityId]\n * @return {*} {(Promise<IDEOPPriv | undefined>)}\n */\n async getOPPriv(id, appDataEntityId) {\n var _a, _b;\n let result = (_a = this.model.deopprivs) == null ? void 0 : _a.find((item) => item.name === id);\n if (!result && appDataEntityId) {\n const appDataEntity = await ibiz.hub.getAppDataEntity(\n appDataEntityId,\n this.model.appId\n );\n result = (_b = appDataEntity.deopprivs) == null ? void 0 : _b.find((item) => item.name === id);\n }\n return result;\n }\n /**\n * 查找实体的界面逻辑模型\n * @author lxm\n * @date 2023-06-14 07:20:30\n * @param {string} deUILogicId\n * @param {string} appDataEntityId\n * @return {*} {(Promise<IDEUILogic | undefined>)}\n */\n async getDEUILogic(deUILogicId, appDataEntityId) {\n const appDataEntity = await ibiz.hub.getAppDataEntity(\n appDataEntityId,\n this.model.appId\n );\n return appDataEntity.appDEUILogics.find((logic) => {\n return logic.id === deUILogicId;\n });\n }\n};\n\n// src/hub/convert/app-menu-convert/app-menu-convert.ts\nvar AppMenuConvert = class {\n /**\n * 转化\n *\n * @author chitanda\n * @date 2023-04-19 14:04:46\n * @param {IAppMenu} appMenu\n * @return {*} {IAppMenu}\n */\n parse(appMenu) {\n return appMenu;\n }\n};\n\n// src/hub/convert/convert.ts\nvar Convert = class {\n constructor() {\n /**\n * 应用菜单转换器\n *\n * @author chitanda\n * @date 2023-04-19 14:04:54\n */\n this.appMenu = new AppMenuConvert();\n }\n};\n\n// src/hub/config/app-view-config-service.ts\nimport { RuntimeError as RuntimeError15 } from \"@ibiz-template/core\";\nvar AppViewConfigService = class {\n constructor() {\n /**\n * 视图配置信息集合\n * @author lxm\n * @date 2023-07-03 07:08:33\n */\n this.viewConfigs = /* @__PURE__ */ new Map();\n }\n set(id, viewConfig) {\n this.viewConfigs.set(id, viewConfig);\n }\n async get(key) {\n if (!this.viewConfigs.has(key)) {\n const model = await ibiz.hub.getAppView(key);\n if (!model) {\n throw new RuntimeError15(\"\\u89C6\\u56FE[\".concat(key, \"]\\u4E0D\\u5B58\\u5728\"));\n }\n this.set(model.id, {\n id: model.id,\n codeName: model.codeName,\n openMode: model.openMode,\n width: model.width,\n height: model.height,\n appDataEntityId: model.appDataEntityId,\n redirectView: model.redirectView\n });\n }\n return this.viewConfigs.get(key);\n }\n};\n\n// src/hub/config/app-config-service.ts\nvar AppConfigService = class {\n constructor() {\n this.view = new AppViewConfigService();\n }\n};\n\n// src/app-hub.ts\nvar AppHub = class {\n constructor() {\n /**\n * 多应用模式下,应用模型转换器\n *\n * @author chitanda\n * @date 2023-04-23 15:04:06\n * @type {Convert}\n */\n this.convert = new Convert();\n /**\n * 应用总集\n *\n * @author chitanda\n * @date 2022-12-21 14:12:45\n * @protected\n * @type {Map<string, Application>}\n */\n this.appMap = /* @__PURE__ */ new Map();\n /**\n * 实例化的应用模型\n *\n * @author chitanda\n * @date 2023-04-17 23:04:45\n * @protected\n * @type {Map<string, IApplication>}\n */\n this.apps = /* @__PURE__ */ new Map();\n /**\n * 当前基座下所有的应用视图\n *\n * @author chitanda\n * @date 2023-04-17 11:04:20\n * @protected\n * @type {Map<string, string>} Map<视图 id, 视图所属应用>\n */\n this.view2appMap = /* @__PURE__ */ new Map();\n /**\n * 实例化的应用视图模型\n *\n * @author chitanda\n * @date 2023-04-17 23:04:00\n * @protected\n * @type {Map<string, IAppView>}\n */\n this.views = /* @__PURE__ */ new Map();\n /**\n * 应用实体实例模型\n *\n * @author chitanda\n * @date 2023-04-17 23:04:32\n * @protected\n * @type {Map<string, Map<string, IAppDataEntity>>}\n */\n this.dataEntities = /* @__PURE__ */ new Map();\n /**\n * hub配置信息服务\n * @author lxm\n * @date 2023-07-03 07:12:05\n */\n this.config = new AppConfigService();\n /**\n * 默认首页视图名称\n *\n * @author chitanda\n * @date 2023-04-19 20:04:22\n * @type {string}\n */\n this.defaultAppIndexViewName = \"Index\";\n }\n /**\n * 计算应用视图 标识\n *\n * @author chitanda\n * @date 2023-04-20 18:04:48\n * @protected\n * @param {string} tag\n * @return {*} {string}\n */\n calcAppViewId(tag) {\n let id = \"\";\n if (tag.indexOf(\".\") !== -1) {\n const ids = tag.split(\".\");\n id = ids[ids.length - 1];\n } else {\n id = tag.toLowerCase();\n }\n return id;\n }\n /**\n * 注册模型加载适配器\n *\n * @author chitanda\n * @date 2023-04-17 23:04:14\n * @param {ModelLoaderProvider} provider\n */\n registerModelLoaderProvider(provider) {\n this.modelLoaderProvider = provider;\n }\n /**\n * 注册应用实例模型\n *\n * @author chitanda\n * @date 2023-04-17 23:04:29\n * @param {IApplication} model\n */\n registerApp(model) {\n this.apps.set(model.codeName, model);\n }\n /**\n * 注册应用视图实例模型\n *\n * @author chitanda\n * @date 2023-04-17 23:04:42\n * @param {IAppView} model\n */\n registerAppView(model) {\n this.views.set(model.codeName, model);\n }\n /**\n * 注册应用实体\n *\n * @author chitanda\n * @date 2023-04-17 23:04:24\n * @param {IAppDataEntity} model\n * @param {string} [appId=ibiz.env.appId]\n */\n registerAppDataEntity(model, appId = ibiz.env.appId) {\n if (!this.dataEntities.has(appId)) {\n this.dataEntities.set(appId, /* @__PURE__ */ new Map());\n }\n const map = this.dataEntities.get(appId);\n map.set(model.id, model);\n }\n /**\n * 设置应用视图所属应用\n *\n * @author chitanda\n * @date 2023-04-17 23:04:37\n * @param {string} tag 视图 codeName 或者视图 id\n * @param {string} [appId=ibiz.env.appId]\n */\n setAppView(tag, appId = ibiz.env.appId) {\n const id = this.calcAppViewId(tag);\n this.view2appMap.set(id, appId);\n }\n /**\n * 判断应用视图是否存在\n *\n * @author chitanda\n * @date 2023-04-20 18:04:00\n * @param {string} tag 视图 codeName 或者视图 id\n * @return {*} {boolean}\n */\n hasAppView(tag) {\n const id = this.calcAppViewId(tag);\n return this.view2appMap.has(id);\n }\n /**\n * 根据视图代码名称查找视图\n *\n * @author chitanda\n * @date 2023-04-17 21:04:14\n * @param {string} tag 视图 codeName 或者视图 id\n * @return {*} {Promise<IAppView>}\n */\n async getAppView(tag) {\n const id = this.calcAppViewId(tag);\n const appId = this.view2appMap.get(id) || ibiz.env.appId;\n if (!this.appMap.has(appId)) {\n await this.createApp(appId);\n }\n if (this.views.has(id)) {\n return this.views.get(id);\n }\n if (this.modelLoaderProvider) {\n const appView = await this.modelLoaderProvider.getAppView(appId, id);\n this.registerAppView(appView);\n return appView;\n }\n throw new RuntimeError16(\"\\u89C6\\u56FE[\".concat(id, \"]\\u4E0D\\u5B58\\u5728\"));\n }\n /**\n * 根据应用实体代码名称查找应用视图\n *\n * @author chitanda\n * @date 2023-04-17 23:04:08\n * @param {string} name\n * @param {string} [appId=ibiz.env.appId]\n * @return {*} {Promise<IAppDataEntity>}\n */\n async getAppDataEntity(id, appId = ibiz.env.appId) {\n if (this.dataEntities.has(appId)) {\n const map = this.dataEntities.get(appId);\n if (map.has(id)) {\n return map.get(id);\n }\n }\n if (this.modelLoaderProvider) {\n let entity;\n if (id.indexOf(\".\") !== -1) {\n entity = await this.modelLoaderProvider.getAppDataEntity(appId, id);\n } else {\n entity = await this.modelLoaderProvider.getAppDataEntityByCodeName(\n appId,\n id\n );\n }\n this.registerAppDataEntity(entity, appId);\n return entity;\n }\n throw new RuntimeError16(\"\\u672A\\u627E\\u5230\\u5E94\\u7528\\u5B9E\\u4F53[\".concat(id, \"]\"));\n }\n /**\n * 新建 hub 应用\n *\n * @author chitanda\n * @date 2023-04-17 21:04:11\n * @param {string} id\n * @return {*} {Promise<Application>}\n */\n async createApp(id) {\n if (this.appMap.has(id)) {\n return this.appMap.get(id);\n }\n let appModel;\n if (this.apps.has(id)) {\n appModel = this.apps.get(id);\n } else if (this.modelLoaderProvider) {\n appModel = await this.modelLoaderProvider.getApp(id);\n this.registerApp(appModel);\n } else {\n throw new RuntimeError16(\"\\u672A\\u627E\\u5230\\u5E94\\u7528[\".concat(id, \"]\\u6A21\\u578B\"));\n }\n const app = new Application(appModel);\n this.appMap.set(id, app);\n await app.init();\n return app;\n }\n /**\n * 异步获取应用对象,用于不确定应用是否已经加载的情况\n *\n * @author chitanda\n * @date 2023-04-17 21:04:41\n * @param {string} [key=ibiz.env.appId]\n * @return {*} {Promise<Application>}\n */\n async getAppAsync(key = ibiz.env.appId) {\n return this.createApp(key);\n }\n /**\n * 根据应用 id 或应用模型获取应用实例\n *\n * @author chitanda\n * @date 2023-04-17 22:04:42\n * @param {(string | IApplication)} [app]\n * @return {*} {Application}\n */\n getApp(app) {\n let key = null;\n if (app) {\n if (app instanceof Object) {\n key = app.id;\n } else {\n key = app;\n }\n } else {\n key = ibiz.env.appId;\n }\n return this.appMap.get(key);\n }\n};\n\n// src/engine/engine-factory.ts\nvar EngineFactory = class {\n constructor() {\n /**\n * 视图引擎classMap\n * @author lxm\n * @date 2023-04-25 07:28:36\n * @protected\n */\n this.viewEngines = /* @__PURE__ */ new Map();\n }\n /**\n * 注册视图引擎\n * @author lxm\n * @date 2023-04-25 07:40:23\n * @param {string} key\n * @param {IViewEngine} engine\n */\n register(key, engine) {\n this.viewEngines.set(key, engine);\n }\n /**\n * 注销视图引擎\n * @author lxm\n * @date 2023-04-25 07:40:32\n * @param {string} key\n */\n unRegister(key) {\n this.viewEngines.delete(key);\n }\n /**\n * 获取视图引擎\n * @author lxm\n * @date 2023-05-04 02:26:34\n * @param {IAppView} model\n * @param {IViewController} viewController 视图控制器\n * @return {*} {(ViewEngine | undefined)}\n */\n getEngine(model, ...args) {\n const { engineType, engineCat } = model;\n const key = \"\".concat(engineCat, \"_\").concat(engineType);\n const func = this.viewEngines.get(key);\n if (func) {\n return func(...args);\n }\n ibiz.log.error(\"\\u6CA1\\u6709\".concat(key, \"\\u5BF9\\u5E94\\u7684\\u5F15\\u64CE\"), model);\n }\n};\n\n// src/engine/view-base.engine.ts\nimport { RuntimeError as RuntimeError17 } from \"@ibiz-template/core\";\nvar ViewEngineBase = class {\n /**\n * 构造函数在视图控制器的构造函数逻辑内部执行\n * @author lxm\n * @date 2023-05-06 08:18:28\n * @param {IViewController} view 视图控制器\n */\n constructor(view) {\n this.view = view;\n this.initViewState();\n }\n /**\n * 获取工具栏控制器\n * @author lxm\n * @date 2023-05-22 03:47:43\n * @readonly\n * @protected\n * @type {(IToolbarController | undefined)}\n */\n get toolbar() {\n return this.view.getController(\"toolbar\");\n }\n /**\n * 左工具栏\n * @author lxm\n * @date 2023-06-20 02:36:45\n * @readonly\n * @protected\n * @type {(IToolbarController | undefined)}\n */\n get leftToolbar() {\n return this.view.getController(\"lefttoolbar\");\n }\n /**\n * 右工具栏\n * @author lxm\n * @date 2023-06-20 02:36:45\n * @readonly\n * @protected\n * @type {(IToolbarController | undefined)}\n */\n get rightToolbar() {\n return this.view.getController(\"righttoolbar\");\n }\n /**\n * 右工具栏\n * @author lxm\n * @date 2023-06-20 02:36:45\n * @readonly\n * @protected\n * @type {(IToolbarController | undefined)}\n */\n get footerToolbar() {\n return this.view.getController(\"footertoolbar\");\n }\n /**\n * 获取视图布局面板控制器\n * @author lxm\n * @date 2023-05-22 03:47:43\n * @readonly\n * @protected\n * @type {(IToolbarController | undefined)}\n */\n get viewLayoutPanel() {\n return this.view.layoutPanel;\n }\n async onCreated() {\n const { childNames } = this.view;\n childNames.push(\"captionbar\", \"toolbar\");\n }\n async onMounted() {\n var _a, _b;\n const { model, childNames } = this.view;\n ibiz.log.debug(\"\".concat(model.id, \"\\u7684\\u5B50\\u7EC4\\u4EF6\\uFF1A\").concat(childNames.join(\";\"), \"\\u90FD\\u5DF2mounted\"));\n const showHeader = this.calcViewHeaderVisible();\n if (!showHeader) {\n const controller = (_a = this.viewLayoutPanel) == null ? void 0 : _a.panelItems.view_header;\n if (controller) {\n controller.state.visible = false;\n }\n }\n if (ibiz.env.isMob) {\n const showFooter = this.calcViewFooterVisible();\n if (!showFooter) {\n const controller = (_b = this.viewLayoutPanel) == null ? void 0 : _b.panelItems.view_footer;\n if (controller) {\n controller.state.visible = false;\n }\n }\n }\n }\n async onDestroyed() {\n }\n async call(key, _args) {\n if (key === \"GetData\") {\n return this.getData();\n }\n return void 0;\n }\n /**\n * 初始化视图state\n * @author lxm\n * @date 2023-05-15 06:42:25\n * @protected\n */\n initViewState() {\n }\n /**\n * 获取视图数据部件的数据\n * @author lxm\n * @date 2023-05-08 12:46:19\n * @return {*} {IData[]}\n */\n getData() {\n return [];\n }\n /**\n * 计算视图头部元素的显示与否\n * 所有部件容器名称均为:view_部件名称\n *\n * @author lxm\n * @date 2023-06-06 07:16:26\n * @protected\n */\n calcViewHeaderVisible() {\n var _a, _b, _c, _d;\n let showHeader = false;\n const { model } = this.view;\n if (model.showCaptionBar === false) {\n const controller = (_a = this.viewLayoutPanel) == null ? void 0 : _a.panelItems.view_captionbar;\n if (controller) {\n controller.state.visible = false;\n }\n } else {\n showHeader = true;\n }\n if (ibiz.env.isMob) {\n if (!this.leftToolbar) {\n const controller = (_b = this.viewLayoutPanel) == null ? void 0 : _b.panelItems.lefttoolbar;\n if (controller) {\n controller.state.visible = false;\n }\n } else {\n showHeader = true;\n }\n if (!this.rightToolbar) {\n const controller = (_c = this.viewLayoutPanel) == null ? void 0 : _c.panelItems.righttoolbar;\n if (controller) {\n controller.state.visible = false;\n }\n } else {\n showHeader = true;\n }\n } else if (!this.toolbar) {\n const controller = (_d = this.viewLayoutPanel) == null ? void 0 : _d.panelItems.view_toolbar;\n if (controller) {\n controller.state.visible = false;\n }\n } else {\n showHeader = true;\n }\n return showHeader;\n }\n /**\n * 计算底部的显示与否\n * @author lxm\n * @date 2023-06-20 02:45:17\n * @protected\n * @return {*} {boolean}\n */\n calcViewFooterVisible() {\n let showFooter = false;\n if (this.footerToolbar) {\n showFooter = true;\n }\n return showFooter;\n }\n /**\n * 加载实体数据\n * @author lxm\n * @date 2023-07-13 09:59:08\n * @return {*} {Promise<void>}\n */\n async loadEntityData() {\n const { appDataEntityId } = this.view.model;\n const { evt, context, params } = this.view;\n if (!appDataEntityId) {\n throw new RuntimeError17(\"\\u8BE5\\u89C6\\u56FE\\u6CA1\\u6709\\u5B9E\\u4F53\\uFF0C\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5B9E\\u4F53\\u6570\\u636E\");\n }\n const app = ibiz.hub.getApp(context.srfappid);\n const res = await app.deService.exec(\n appDataEntityId,\n \"get\",\n context,\n params\n );\n const { data } = res;\n if (data) {\n this.view.state.srfactiveviewdata = data;\n evt.emit(\"onDataChange\", { actionType: \"LOAD\", data: [data] });\n if (data.srfkey) {\n evt.emit(\"onViewInfoChange\", { dataInfo: data.srfmajortext || \"\" });\n }\n }\n }\n};\n\n// src/engine/md-view.engine.ts\nimport { RuntimeModelError as RuntimeModelError20 } from \"@ibiz-template/core\";\nvar MDViewEngine = class extends ViewEngineBase {\n /**\n * 多数据部件名称\n * @author lxm\n * @date 2023-06-07 09:17:19\n * @readonly\n * @type {string}\n */\n get xdataControlName() {\n return this.view.model.xdataControlName;\n }\n /**\n * 搜索表单控制器\n * @author lxm\n * @date 2023-05-22 01:56:25\n * @readonly\n */\n get searchForm() {\n return this.view.getController(\"searchform\");\n }\n /**\n * 搜索栏控制器\n * @author lxm\n * @date 2023-05-22 01:56:25\n * @readonly\n */\n get searchBar() {\n return this.view.getController(\"searchbar\");\n }\n /**\n * 数据部件控制器(多数据)\n * @author lxm\n * @date 2023-05-22 01:56:35\n * @readonly\n * @type {IMDControlController}\n */\n get xdataControl() {\n return this.view.getController(\n this.xdataControlName\n );\n }\n async onCreated() {\n await super.onCreated();\n const { childNames } = this.view;\n childNames.push(this.xdataControlName, \"searchform\", \"searchbar\");\n }\n async onMounted() {\n await super.onMounted();\n const { model } = this.view;\n this.xdataControl.evt.on(\"onActive\", async (event) => {\n await this.openData(event);\n });\n this.xdataControl.evt.on(\"onSelectionChange\", async (event) => {\n var _a;\n (_a = this.toolbar) == null ? void 0 : _a.calcButtonState(\n event.data[0],\n this.xdataControl.model.appDataEntityId\n );\n });\n this.xdataControl.evt.on(\"onBeforeLoad\", () => {\n this.xdataControl.state.searchParams = this.getSearchParams();\n });\n this.xdataControl.evt.on(\"onLoadSuccess\", (event) => {\n this.view.evt.emit(\"onDataChange\", { ...event, actionType: \"LOAD\" });\n });\n this.xdataControl.evt.on(\"onRemoveSuccess\", (event) => {\n this.view.evt.emit(\"onDataChange\", { ...event, actionType: \"REMOVE\" });\n });\n this.xdataControl.evt.on(\"onSaveSuccess\", (event) => {\n this.view.evt.emit(\"onDataChange\", { ...event, actionType: \"SAVE\" });\n });\n const controller = this.viewLayoutPanel.panelItems.view_searchform;\n if (controller) {\n const formExists = !!this.searchForm;\n controller.state.keepAlive = formExists;\n controller.state.visible = formExists && !!model.expandSearchForm;\n }\n if (this.searchForm) {\n this.searchForm.evt.on(\"onSearch\", () => {\n this.refresh();\n });\n }\n if (this.searchBar) {\n this.searchBar.evt.on(\"onSearch\", () => {\n this.refresh();\n });\n }\n if (!this.view.state.noLoadDefault && model.loadDefault) {\n this.load();\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key, args) {\n if (key === \"ToggleFilter\" /* TOGGLE_FILTER */) {\n this.toggleFilter();\n return null;\n }\n if (key === \"Edit\" /* EDIT */ || key === \"View\" /* VIEW */) {\n this.openData(args);\n return null;\n }\n if (key === \"New\" /* NEW */) {\n this.newData(args);\n return null;\n }\n if (key === \"Remove\" /* REMOVE */) {\n await this.remove(args);\n return null;\n }\n if (key === \"Import\" /* IMPORT */) {\n await this.importData();\n return null;\n }\n if (key === \"Refresh\" /* REFRESH */) {\n await this.refresh();\n return null;\n }\n if (key === \"ExportExcel\" /* EXPORT_EXCEL */) {\n await this.exportData(args);\n return null;\n }\n if (key === \"Copy\" /* COPY */) {\n this.copy(args);\n return null;\n }\n if (key === \"load\") {\n this.load(args);\n return null;\n }\n return super.call(key, args);\n }\n getData() {\n return this.xdataControl.getData();\n }\n /**\n * 打开编辑数据视图\n *\n * @author lxm\n * @date 2022-09-01 18:09:19\n * @param {IData} data\n * @param {MouseEvent} [event]\n * @returns {*}\n */\n async openData(args) {\n var _a, _b;\n const { data, event } = args;\n const context = (args.context || this.view.context).clone();\n const params = args.params || this.view.params;\n const deName = ((_a = data[0].srfdecodename) == null ? void 0 : _a.toLowerCase()) || calcDeCodeNameById(this.xdataControl.model.appDataEntityId);\n context[deName.toLowerCase()] = data[0].srfkey;\n const result = await ((_b = this.view.scheduler) == null ? void 0 : _b.triggerCustom(\"opendata\", {\n context,\n params,\n data,\n event,\n view: this.view\n }));\n if (result === -1) {\n ibiz.log.warn(\"\\u89C6\\u56FE[\".concat(this.view.model.codeName, \"]\\uFF0C\\u672A\\u914D\\u7F6E\\u7F16\\u8F91\\u6253\\u5F00\\u89C6\\u56FE\"));\n }\n }\n /**\n * 打开编辑数据视图\n *\n * @author lxm\n * @date 2022-09-01 18:09:19\n * @param {IData} data\n * @param {MouseEvent} [event]\n * @returns {*}\n */\n async newData(args) {\n var _a, _b, _c;\n const { data, event, copyMode } = args;\n const openAppViewLogic = (_b = (_a = this.view.model.viewLayoutPanel) == null ? void 0 : _a.appViewLogics) == null ? void 0 : _b.find(\n (item) => item.id === \"newdata\"\n );\n if (!openAppViewLogic) {\n throw new RuntimeModelError20(this.view.model, \"\\u7F3A\\u5C11newdata\\u7684\\u89C6\\u56FE\\u903B\\u8F91\");\n }\n const context = this.view.context.clone();\n if (copyMode) {\n context.srfcopymode = true;\n }\n const result = await ((_c = this.view.scheduler) == null ? void 0 : _c.triggerCustom(\"newdata\", {\n context,\n params: this.view.params,\n data,\n event,\n view: this.view\n }));\n if (result === -1) {\n throw new RuntimeModelError20(this.view.model, \"\\u7F3A\\u5C11newdata\\u7684\\u89C6\\u56FE\\u903B\\u8F91\");\n }\n }\n /**\n * 视图删除\n *\n * @author lxm\n * @date 2022-08-30 19:08:59\n * @returns {*} {Promise<void>}\n */\n async remove(args) {\n await this.xdataControl.remove(args);\n }\n /**\n * 视图加载\n * @author lxm\n * @date 2023-05-22 03:17:33\n * @return {*} {Promise<void>}\n */\n async load(args = {}) {\n await this.xdataControl.load({ isInitialLoad: true, ...args });\n }\n /**\n * 视图刷新\n * @author lxm\n * @date 2023-05-22 03:17:33\n * @return {*} {Promise<void>}\n */\n async refresh() {\n await this.xdataControl.refresh();\n }\n /**\n * 获取搜索相关的查询参数\n * @author lxm\n * @date 2023-05-22 03:26:04\n * @return {*} {IParams}\n */\n getSearchParams() {\n const params = {};\n if (this.searchForm) {\n const addParams = this.searchForm.getData()[0];\n Object.assign(params, addParams);\n }\n if (this.searchBar) {\n const addParams = {\n query: this.searchBar.state.query\n };\n Object.assign(params, addParams);\n }\n return params;\n }\n /**\n * 导入数据\n * @author lxm\n * @date 2023-05-22 03:28:26\n * @return {*} {Promise<void>}\n */\n async importData() {\n await this.xdataControl.importData();\n }\n /**\n * 导出数据\n * @author lxm\n * @date 2023-05-22 03:29:06\n * @param {{ event: MouseEvent }} args\n * @return {*} {Promise<void>}\n */\n async exportData(args) {\n await this.xdataControl.exportData(args);\n }\n /**\n * 复制数据\n *\n * @author zk\n * @date 2023-06-01 12:06:58\n * @memberof MDViewEngine\n */\n async copy(args) {\n this.newData(Object.assign(args, { copyMode: true }));\n }\n calcViewHeaderVisible() {\n let showHeader = super.calcViewHeaderVisible();\n if (!this.searchBar) {\n const controller = this.viewLayoutPanel.panelItems.view_searchbar;\n if (controller) {\n controller.state.visible = false;\n }\n } else {\n showHeader = true;\n }\n return showHeader;\n }\n /**\n * 切换搜索表单的显示与否\n * @author lxm\n * @date 2023-06-06 09:20:35\n * @protected\n */\n toggleFilter() {\n if (this.searchForm) {\n const searchformContainer = this.viewLayoutPanel.panelItems.view_searchform;\n if (searchformContainer) {\n searchformContainer.state.visible = !searchformContainer.state.visible;\n }\n }\n }\n};\n\n// src/global/global-util/global-util.ts\nvar GlobalUtil = class {\n constructor() {\n /**\n * 布局面板\n *\n * @author chitanda\n * @date 2023-04-27 21:04:46\n */\n this.layoutPanel = new LayoutPanelUtil();\n }\n};\n\n// src/register/helper/control-register.ts\nvar CONTROL_PROVIDER_PREFIX = \"CONTROL\";\nfunction registerControlProvider(key, callback) {\n ibiz.register.register(\"\".concat(CONTROL_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider(key) {\n return ibiz.register.get(\n \"\".concat(CONTROL_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getControlProvider(model) {\n let provider;\n const { controlType, controlStyle } = model;\n if (controlStyle && controlStyle !== \"DEFAULT\") {\n const key = \"\".concat(controlType, \"_\").concat(controlStyle);\n provider = getProvider(key);\n if (!provider) {\n ibiz.log.error(\n \"\\u627E\\u4E0D\\u5230\\u90E8\\u4EF6\\u7C7B\\u578B\\uFF1A[\".concat(controlType, \"]\\u7684\\u90E8\\u4EF6\\u6837\\u5F0F\\uFF1A[\").concat(controlStyle, \"]\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"),\n model\n );\n }\n }\n if (!provider) {\n provider = getProvider(controlType);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u90E8\\u4EF6\\u7C7B\\u578B\".concat(controlType, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/editor-register.ts\nvar EDITOR_PROVIDER_PREFIX = \"EDITOR\";\nfunction registerEditorProvider(key, callback) {\n ibiz.register.register(\"\".concat(EDITOR_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider2(key) {\n return ibiz.register.get(\n \"\".concat(EDITOR_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getEditorProvider(model) {\n let provider;\n const { editorType, editorStyle } = model;\n if (editorStyle && editorStyle !== \"DEFAULT\") {\n const key = \"\".concat(editorType, \"_\").concat(editorStyle);\n provider = getProvider2(key);\n if (!provider) {\n ibiz.log.error(\n \"\\u627E\\u4E0D\\u5230\\u7F16\\u8F91\\u5668\\u7C7B\\u578B\\uFF1A[\".concat(editorType, \"]\\u7684\\u7F16\\u8F91\\u5668\\u6837\\u5F0F\\uFF1A[\").concat(editorStyle, \"]\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"),\n model\n );\n }\n }\n if (!provider) {\n provider = getProvider2(editorType);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u7F16\\u8F91\\u5668\\u7C7B\\u578B\".concat(editorType, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/form-detail-register.ts\nvar FORMDETAIL_PROVIDER_PREFIX = \"FORMDETAIL\";\nfunction registerFormDetailProvider(key, callback) {\n ibiz.register.register(\"\".concat(FORMDETAIL_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider3(key) {\n return ibiz.register.get(\n \"\".concat(FORMDETAIL_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getFormDetailProvider(model) {\n let provider;\n const { detailType } = model;\n if (!provider) {\n provider = getProvider3(detailType);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u8868\\u5355\\u6210\\u5458\\u7C7B\\u578B\".concat(detailType, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/grid-column-register.ts\nvar GRIDCOLUMN_PROVIDER_PREFIX = \"GRIDCOLUMN\";\nfunction registerGridColumnProvider(key, callback) {\n ibiz.register.register(\"\".concat(GRIDCOLUMN_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider4(key) {\n return ibiz.register.get(\n \"\".concat(GRIDCOLUMN_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getGridColumnProvider(model) {\n let provider;\n const { columnType, enableRowEdit } = model;\n const key = enableRowEdit ? \"\".concat(columnType, \"_EDIT\") : columnType;\n if (!provider) {\n provider = getProvider4(key);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u8868\\u683C\\u5217\\u7C7B\\u578B\".concat(key, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/panel-item-register.ts\nvar PANELITEM_PROVIDER_PREFIX = \"PANELITEM\";\nfunction registerPanelItemProvider(key, callback) {\n ibiz.register.register(\n \"\".concat(PANELITEM_PROVIDER_PREFIX, \"_\").concat(key.toUpperCase()),\n callback\n );\n}\nfunction getProvider5(key) {\n return ibiz.register.get(\n \"\".concat(PANELITEM_PROVIDER_PREFIX, \"_\").concat(key.toUpperCase())\n );\n}\nasync function getPanelItemProvider(model) {\n var _a;\n let provider;\n const { itemType } = model;\n if (itemType === \"CONTAINER\") {\n const predefinedType = model.predefinedType || \"DEFAULT\";\n const key = \"CONTAINER_\".concat(predefinedType);\n provider = getProvider5(key);\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u9762\\u677F\\u5BB9\\u5668\\u9884\\u7F6E\\u7C7B\\u578B\\u4E3A\".concat(predefinedType, \"\\u7684\\u9002\\u914D\\u5668\"));\n }\n }\n if (itemType === \"RAWITEM\") {\n const predefinedType = ((_a = model.rawItem) == null ? void 0 : _a.predefinedType) || \"DEFAULT\";\n const key = \"RAWITEM_\".concat(predefinedType);\n provider = getProvider5(key);\n if (!provider) {\n ibiz.log.error(\n \"\\u627E\\u4E0D\\u5230\\u9762\\u677F\\u6210\\u5458\\u76F4\\u63A5\\u5185\\u5BB9\\u9884\\u7F6E\\u7C7B\\u578B\\u4E3A\".concat(predefinedType, \"\\u7684\\u9002\\u914D\\u5668\")\n );\n }\n }\n if (!provider) {\n provider = getProvider5(itemType);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u9762\\u677F\\u6210\\u5458\\u7C7B\\u578B\".concat(itemType, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/ui-action-register.ts\nimport { RuntimeError as RuntimeError18 } from \"@ibiz-template/core\";\nvar UIACTION_PROVIDER_PREFIX = \"UIACTION\";\nfunction registerUIActionProvider(key, callback) {\n ibiz.register.register(\"\".concat(UIACTION_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider6(key) {\n return ibiz.register.get(\n \"\".concat(UIACTION_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getUIActionProvider(model) {\n let provider;\n const { uiactionMode } = model;\n if (!provider) {\n provider = getProvider6(uiactionMode);\n }\n if (!provider) {\n throw new RuntimeError18(\"\\u627E\\u4E0D\\u754C\\u9762\\u884C\\u4E3A\\u6A21\\u5F0F\".concat(uiactionMode, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/register/helper/view-register.ts\nvar VIEW_PROVIDER_PREFIX = \"VIEW\";\nfunction registerViewProvider(key, callback) {\n ibiz.register.register(\"\".concat(VIEW_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider7(key) {\n return ibiz.register.get(\"\".concat(VIEW_PROVIDER_PREFIX, \"_\").concat(key));\n}\nasync function getViewProvider(model) {\n let provider;\n const { viewType, viewStyle } = model;\n if (viewStyle && viewStyle !== \"DEFAULT\") {\n const key = \"\".concat(viewType, \"_\").concat(viewStyle);\n provider = getProvider7(key);\n if (!provider) {\n ibiz.log.error(\n \"\\u627E\\u4E0D\\u5230\\u89C6\\u56FE\\u7C7B\\u578B\\uFF1A[\".concat(viewType, \"]\\u7684\\u89C6\\u56FE\\u6837\\u5F0F\\uFF1A[\").concat(viewStyle, \"]\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"),\n model\n );\n }\n }\n if (!provider) {\n provider = getProvider7(viewType);\n }\n if (!provider) {\n provider = getProvider7(\"DEFAULT\");\n }\n return provider;\n}\n\n// src/register/helper/portlet-register.ts\nvar PORTLET_PROVIDER_PREFIX = \"PORTLET\";\nfunction registerPortletProvider(key, callback) {\n ibiz.register.register(\"\".concat(PORTLET_PROVIDER_PREFIX, \"_\").concat(key), callback);\n}\nfunction getProvider8(key) {\n return ibiz.register.get(\n \"\".concat(PORTLET_PROVIDER_PREFIX, \"_\").concat(key)\n );\n}\nasync function getPortletProvider(model) {\n let provider;\n const { portletType } = model;\n if (!provider) {\n provider = getProvider8(portletType);\n }\n if (!provider) {\n ibiz.log.error(\"\\u627E\\u4E0D\\u5230\\u95E8\\u6237\\u90E8\\u4EF6\\u6210\\u5458\\u7C7B\\u578B\".concat(portletType, \"\\u5BF9\\u5E94\\u7684\\u9002\\u914D\\u5668\"));\n }\n return provider;\n}\n\n// src/ui-action/provider/backend-ui-action-provider.ts\nimport { RuntimeModelError as RuntimeModelError28 } from \"@ibiz-template/core\";\nimport { isArray as isArray2 } from \"qx-util\";\n\n// src/ui-action/provider/ui-action-provider-base.ts\nimport { RuntimeModelError as RuntimeModelError27 } from \"@ibiz-template/core\";\n\n// src/ui-logic/index.ts\nimport { RuntimeError as RuntimeError21 } from \"@ibiz-template/core\";\n\n// src/ui-logic/ui-logic.ts\nimport { ModelError as ModelError22, RuntimeModelError as RuntimeModelError26 } from \"@ibiz-template/core\";\n\n// src/ui-logic/ui-logic-context.ts\nvar UILogicContext = class {\n /**\n * Creates an instance of DELogicContext.\n * @author lxm\n * @date 2023-03-24 09:15:14\n * @param {Map<string, DELogicParam>} deLogicParams 实体逻辑参数集合\n * @param {IParams} context 上下文\n * @param {IData} data 数据对象\n * @param {IParams} viewParams 视图参数\n * @param {IParams} [opt] 额外参数\n */\n /**\n * Creates an instance of UILogicContext.\n * @author lxm\n * @date 2023-06-14 07:36:42\n * @param {Map<string, UILogicParam>} deLogicParams 实体逻辑参数集合\n * @param {IUILogicParams} parameters 界面逻辑执行参数\n */\n constructor(deLogicParams, parameters) {\n this.deLogicParams = deLogicParams;\n this.parameters = parameters;\n /**\n * 界面逻辑参数\n *\n * @description 界面逻辑参数初始化时设置\n * @author chitanda\n * @date 2023-02-08 17:02:38\n * @type {Record<string, any>}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.params = {};\n /**\n * UI逻辑执行返回值\n *\n * @author chitanda\n * @date 2023-02-09 21:02:40\n * @type {unknown}\n */\n this.result = null;\n /**\n * 是否存在结束节点\n *\n * @author chitanda\n * @date 2023-03-16 18:03:09\n * @type {boolean}\n */\n this.isEndNode = false;\n /**\n * 默认参数节点\n *\n * @default 'Default'\n * @author chitanda\n * @date 2023-03-16 18:03:39\n * @type {string}\n */\n this.defaultParamName = \"Default\";\n }\n /**\n * 上下文\n */\n get context() {\n return this.parameters.context;\n }\n /**\n * 数据\n */\n get data() {\n return this.parameters.data;\n }\n /**\n * 视图参数\n */\n get viewParams() {\n return this.parameters.params;\n }\n /**\n * 重置实体逻辑参数\n * @author lxm\n * @date 2023-03-24 09:18:02\n * @param {string} name\n */\n resetParam(name) {\n var _a;\n (_a = this.deLogicParams.get(name)) == null ? void 0 : _a.calc(this);\n }\n /**\n * 重新建立变量\n * @author lxm\n * @date 2023-03-24 09:20:24\n * @param {string} name\n */\n renewParam(name) {\n var _a;\n (_a = this.deLogicParams.get(name)) == null ? void 0 : _a.renew(this);\n }\n};\n\n// src/ui-logic/ui-logic-node/de-action-node/de-action-node.ts\nimport { RuntimeModelError as RuntimeModelError23 } from \"@ibiz-template/core\";\n\n// src/ui-logic/ui-logic-link/ui-logic-link.ts\nimport { ModelError as ModelError17 } from \"@ibiz-template/core\";\n\n// src/ui-logic/ui-logic-link/ui-logic-link-group-cond/ui-logic-link-group-cond.ts\nimport { RuntimeModelError as RuntimeModelError22 } from \"@ibiz-template/core\";\n\n// src/ui-logic/ui-logic-link/ui-logic-link-cond/ui-logic-link-cond.ts\nvar UILogicLinkCond = class {\n};\n\n// src/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.ts\nimport { ModelError as ModelError16, RuntimeModelError as RuntimeModelError21 } from \"@ibiz-template/core\";\nvar UILogicLinkSingleCond = class extends UILogicLinkCond {\n constructor(model) {\n super();\n this.model = model;\n this.srcParam = model.srcLogicParamId;\n this.dstParam = model.dstLogicParamId;\n }\n get dstField() {\n return this.model.dstFieldName.toLowerCase();\n }\n get op() {\n return this.model.condOP;\n }\n get type() {\n return this.model.paramType;\n }\n get value() {\n return this.model.paramValue;\n }\n /**\n * 执行逻辑检测\n *\n * @author chitanda\n * @date 2023-02-15 18:02:05\n * @param {UILogicContext} ctx\n * @param {IContext} context\n * @param {IData} data\n * @return {*} {boolean}\n */\n test(ctx, context, data) {\n const dst = ctx.params[this.dstParam];\n switch (this.type) {\n case \"ENTITYFIELD\": {\n if (!this.value) {\n throw new RuntimeModelError21(\n this.model,\n \"\\u5F53\\u524D\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u6570\\u636E\\u5BF9\\u8C61\\u5C5E\\u6027],\\u7F3A\\u5C11\\u914D\\u7F6E\\u6761\\u4EF6\\u503C\"\n );\n }\n const value = data[this.value] != null ? data[this.value] : context[this.value];\n return testCond(dst[this.dstField], this.op, value);\n }\n case \"SRCENTITYFIELD\": {\n if (!this.value) {\n throw new RuntimeModelError21(\n this.model,\n \"\\u5F53\\u524D\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u6E90\\u6570\\u636E\\u5BF9\\u8C61\\u5C5E\\u6027],\\u7F3A\\u5C11\\u914D\\u7F6E\\u6761\\u4EF6\\u503C\"\n );\n }\n const src = ctx.params[this.srcParam];\n return testCond(dst[this.dstField], this.op, src[this.value]);\n }\n case \"CURTIME\":\n throw new ModelError16(this.model, \"\\u6682\\u672A\\u652F\\u6301\\u6761\\u4EF6\\u503C\\u7C7B\\u578B\\u4E3A[\\u5F53\\u524D\\u65F6\\u95F4]\");\n default:\n return testCond(dst[this.dstField], this.op, this.value);\n }\n }\n};\n\n// src/ui-logic/ui-logic-link/ui-logic-link-group-cond/ui-logic-link-group-cond.ts\nvar UILogicLinkGroupCond = class _UILogicLinkGroupCond extends UILogicLinkCond {\n constructor(model) {\n super();\n this.model = model;\n const conds = model.deuilogicLinkConds || [];\n this.conds = conds.map((cond) => {\n return cond.logicType === \"SINGLE\" ? new UILogicLinkSingleCond(cond) : new _UILogicLinkGroupCond(cond);\n });\n }\n /**\n * 操作标识\n *\n * @author chitanda\n * @date 2023-02-15 17:02:04\n * @readonly\n * @protected\n * @type {('AND' | 'OR')}\n */\n get op() {\n return this.model.groupOP;\n }\n /**\n * 结果是否取反值\n *\n * @author chitanda\n * @date 2023-02-15 17:02:10\n * @readonly\n * @protected\n * @type {boolean}\n */\n get notMode() {\n return this.model.notMode === true;\n }\n /**\n * 条件判断\n *\n * @author chitanda\n * @date 2023-02-15 17:02:19\n * @param {UILogicContext} ctx\n * @param {IContext} context\n * @param {IData} data\n * @return {*} {boolean}\n */\n test(ctx, context, data) {\n let bol = true;\n if (this.conds.length === 0) {\n throw new RuntimeModelError22(this.model, \"\\u754C\\u9762\\u8FDE\\u63A5\\u6761\\u4EF6\\u903B\\u8F91\\u7EC4\\u672A\\u914D\\u7F6E\\u903B\\u8F91\\u9879\");\n }\n for (let i = 0; i < this.conds.length; i++) {\n const cond = this.conds[i];\n const judge = cond.test(ctx, context, data);\n if (this.op === \"AND\" && judge === false) {\n bol = false;\n break;\n }\n if (this.op === \"OR\" && judge === true) {\n bol = true;\n break;\n }\n }\n return this.notMode ? !bol : bol;\n }\n};\n\n// src/ui-logic/ui-logic-link/ui-logic-link.ts\nvar UILogicLink = class {\n /**\n * Creates an instance of UILogicLink.\n *\n * @author chitanda\n * @date 2023-02-08 16:02:19\n * @param {UILogicLinkModel} model\n */\n constructor(model) {\n this.model = model;\n /**\n * 源节点\n *\n * @author chitanda\n * @date 2023-02-08 21:02:53\n * @type {UILogicNode}\n */\n this.srcNode = null;\n /**\n * 目标节点\n *\n * @author chitanda\n * @date 2023-02-08 21:02:59\n * @type {UILogicNode}\n */\n this.dstNode = null;\n /**\n * 连接条件组\n *\n * @author chitanda\n * @date 2023-02-15 17:02:49\n * @type {(UILogicLinkGroupCond | null)}\n */\n this.groupCond = null;\n const { linkMode, deuilogicLinkGroupCond } = this.model;\n if (linkMode === 0) {\n if (deuilogicLinkGroupCond) {\n this.groupCond = new UILogicLinkGroupCond(deuilogicLinkGroupCond);\n }\n }\n }\n /**\n * 执行连接\n *\n * @author chitanda\n * @date 2023-02-08 22:02:18\n * @param {UILogicContext} ctx\n * @param {IContext} context\n * @param {IData} data\n * @param {IParams} [opt]\n * @return {*} {Promise<boolean>} 是否连接成功\n */\n async exec(ctx) {\n const { linkMode } = this.model;\n const { context, data } = ctx;\n switch (linkMode || 0) {\n case 0: {\n if (this.groupCond) {\n return this.groupCond.test(\n ctx,\n context,\n data && data.length > 0 ? data[0] : {}\n );\n }\n return true;\n }\n case 1:\n return true;\n case 2:\n throw new ModelError17(this.model, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8FDE\\u63A5\\u7C7B\\u578B: \\u5F02\\u6B65\\u7ED3\\u675F\");\n case 3:\n throw new ModelError17(this.model, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8FDE\\u63A5\\u7C7B\\u578B: \\u5F02\\u6B65\\u62D2\\u7EDD\");\n case 9:\n throw new ModelError17(this.model, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8FDE\\u63A5\\u7C7B\\u578B: \\u5F02\\u5E38\\u5904\\u7406\");\n default:\n throw new ModelError17(this.model, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8FDE\\u63A5\\u7C7B\\u578B:\".concat(linkMode));\n }\n }\n};\n\n// src/ui-logic/ui-logic-node/ui-logic-node.ts\nvar UILogicNode = class {\n /**\n * Creates an instance of UILogicNode.\n *\n * @author chitanda\n * @date 2023-02-08 16:02:19\n * @param {UILogicNodeModel} model\n */\n constructor(model) {\n this.model = model;\n this.links = (model.deuilogicLinks || []).map(\n (link) => new UILogicLink(link)\n );\n }\n};\n\n// src/ui-logic/ui-logic-node/de-action-node/de-action-node.ts\nvar DEActionNode2 = class extends UILogicNode {\n async exec(ctx) {\n const {\n dstAppDataEntityId,\n dstAppDEActionId,\n dstDEUILogicParamId,\n retDEUILogicParamId\n } = this.model;\n if (!dstAppDataEntityId) {\n throw new RuntimeModelError23(this.model, \"\\u672A\\u6307\\u5B9A\\u5E94\\u7528\\u5B9E\\u4F53\");\n }\n if (!dstAppDEActionId) {\n throw new RuntimeModelError23(this.model, \"\\u672A\\u6307\\u5B9A\\u5B9E\\u4F53\\u884C\\u4E3A\");\n }\n const requestData = ctx.params[dstDEUILogicParamId];\n const app = ibiz.hub.getApp(ctx.context.srfappid);\n const res = await app.deService.exec(\n dstAppDataEntityId,\n dstAppDEActionId,\n ctx.context,\n requestData,\n ctx.viewParams\n );\n if (res.ok) {\n ctx.params[retDEUILogicParamId] = res.data;\n }\n }\n};\n\n// src/ui-logic/ui-logic-node/de-ui-action-node/de-ui-action-node.ts\nimport { RuntimeModelError as RuntimeModelError24 } from \"@ibiz-template/core\";\nvar DEUIActionNode = class extends UILogicNode {\n async exec(ctx) {\n const { dstAppDEUIActionId, dstDEUILogicParamId } = this.model;\n const { data, parameters } = ctx;\n if (!dstAppDEUIActionId) {\n throw new RuntimeModelError24(this.model, \"\\u672A\\u914D\\u7F6E\\u754C\\u9762\\u884C\\u4E3A\");\n }\n let actionData = [data];\n if (dstDEUILogicParamId) {\n const param = ctx.params[dstDEUILogicParamId];\n if (param instanceof Array) {\n actionData = param;\n } else {\n actionData = [param];\n }\n }\n await UIActionUtil.execAndResolved(dstAppDEUIActionId, {\n ...parameters,\n data: actionData\n });\n }\n};\n\n// src/ui-logic/ui-logic-node/start-node/start-node.ts\nvar StartNode2 = class extends UILogicNode {\n async exec(_ctx) {\n }\n};\n\n// src/ui-logic/ui-logic-node/end-node/end-node.ts\nimport { ModelError as ModelError18 } from \"@ibiz-template/core\";\nvar EndNode2 = class extends UILogicNode {\n async exec(ctx) {\n ctx.isEndNode = true;\n const { returnType, rawValue, returnParamId } = this.model;\n switch (returnType) {\n case \"NONEVALUE\":\n ctx.result = void 0;\n break;\n case \"NULLVALUE\":\n ctx.result = null;\n break;\n case \"SRCVALUE\":\n ctx.result = rawValue;\n break;\n case \"LOGICPARAM\":\n ctx.result = ctx.params[returnParamId];\n break;\n case \"LOGICPARAMFIELD\":\n case \"BREAK\":\n default:\n throw new ModelError18(\n this.model,\n \"\\u6682\\u672A\\u652F\\u6301\\u7684\\u7ED3\\u675F\\u8282\\u70B9\\u8FD4\\u56DE\\u503C\\u7C7B\\u578B: \".concat(returnType)\n );\n }\n }\n};\n\n// src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts\nimport { ModelError as ModelError20 } from \"@ibiz-template/core\";\n\n// src/ui-logic/utils/handle-src-val.ts\nimport { ModelError as ModelError19 } from \"@ibiz-template/core\";\nimport { clone as clone10 } from \"ramda\";\nfunction handleSrcVal2(ctx, srcValParams) {\n const { srcDEUILogicParamId, srcValueType, srcFieldName, srcValue } = srcValParams;\n if (!srcValParams.srcValueType) {\n srcValParams.srcValueType = \"SRCDLPARAM\";\n }\n let value;\n switch (srcValueType) {\n case \"SRCDLPARAM\":\n value = ctx.params[srcDEUILogicParamId];\n break;\n case \"NULLVALUE\":\n return null;\n case \"NONEVALUE\":\n return void 0;\n case \"SRCVALUE\":\n return srcValue;\n case \"VIEWPARAM\":\n value = ctx.viewParams;\n break;\n case \"APPDATA\":\n value = ctx.context;\n break;\n case \"ENVPARAM\":\n value = clone10(ibiz.env);\n break;\n default:\n throw new ModelError19(srcValParams, \"\\u6682\\u672A\\u652F\\u6301\\u6E90\\u503C\\u7C7B\\u578B\".concat(srcValueType));\n }\n const srcField = srcFieldName == null ? void 0 : srcFieldName.toLowerCase();\n if (value && srcField) {\n value = value[srcField];\n }\n return value;\n}\n\n// src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts\nvar PrepareJSParamNode = class extends UILogicNode {\n async exec(ctx) {\n const nodeParams = this.model.deuilogicNodeParams;\n if (nodeParams == null ? void 0 : nodeParams.length) {\n await Promise.all(\n nodeParams.map((nodeParam) => {\n switch (nodeParam.paramAction) {\n case \"SETPARAMVALUE\":\n return this.setParamValue(nodeParam, ctx);\n default:\n throw new ModelError20(\n nodeParam,\n \"\\u6682\\u672A\\u652F\\u6301\\u903B\\u8F91\\u5904\\u7406\\u53C2\\u6570\\u64CD\\u4F5C\".concat(nodeParam.paramAction)\n );\n }\n })\n );\n }\n }\n /**\n * 设置变量\n * @author lxm\n * @date 2023-03-17 03:34:02\n * @protected\n * @param {IPSDELogicNodeParam} nodeParam\n * @param {DELogicContext} ctx\n */\n setParamValue(nodeParam, ctx) {\n const { dstFieldName, dstDEUILogicParamId } = nodeParam;\n const dstField = dstFieldName == null ? void 0 : dstFieldName.toLowerCase();\n const srcVal = handleSrcVal2(ctx, nodeParam);\n if (dstField) {\n ctx.params[dstDEUILogicParamId][dstField] = srcVal;\n } else {\n ctx.params[dstDEUILogicParamId] = srcVal;\n }\n }\n};\n\n// src/ui-logic/ui-logic-node/view-ctrl-invoke-node/view-ctrl-invoke-node.ts\nimport { RuntimeError as RuntimeError19, RuntimeModelError as RuntimeModelError25 } from \"@ibiz-template/core\";\nimport { isFunction } from \"lodash-es\";\nvar ViewCtrlInvokeNode = class extends UILogicNode {\n async exec(ctx) {\n ctx.isEndNode = true;\n const { invokeMethod, invokeCtrlId, invokeParamId } = this.model;\n if (!invokeCtrlId) {\n throw new RuntimeModelError25(this.model, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u754C\\u9762\\u5BF9\\u8C61\");\n }\n if (!invokeParamId) {\n throw new RuntimeModelError25(this.model, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u64CD\\u4F5C\\u53C2\\u6570\");\n }\n if (!invokeMethod) {\n throw new RuntimeModelError25(this.model, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u8C03\\u7528\\u65B9\\u6CD5\");\n }\n const invokeParam = ctx.params[invokeParamId];\n if (!invokeParam) {\n throw new RuntimeError19(\"\\u6CA1\\u6709\\u627E\\u5230\\u64CD\\u4F5C\\u53C2\\u6570\".concat(invokeParamId));\n }\n const invokeCtrl = ctx.params[invokeCtrlId];\n if (!invokeCtrl) {\n throw new RuntimeError19(\"\\u6CA1\\u6709\\u627E\\u5230\\u754C\\u9762\\u5BF9\\u8C61\".concat(invokeCtrlId));\n }\n if (!invokeCtrl[invokeMethod] || !isFunction(invokeCtrl[invokeMethod])) {\n throw new RuntimeError19(\"\\u6CA1\\u6709\\u627E\\u5230\\u8C03\\u7528\\u65B9\\u6CD5\".concat(invokeMethod));\n }\n await invokeCtrl[invokeMethod](invokeParam);\n }\n};\n\n// src/ui-logic/ui-logic-param/ui-logic-param.ts\nimport { ModelError as ModelError21, RuntimeError as RuntimeError20 } from \"@ibiz-template/core\";\nvar UILogicParam = class {\n /**\n * Creates an instance of UILogicParam.\n *\n * @author chitanda\n * @date 2023-02-08 16:02:22\n * @param {UILogicParamModel} model\n */\n constructor(model) {\n this.model = model;\n }\n /**\n * 向界面逻辑中计算基础参数\n *\n * @author chitanda\n * @date 2023-02-08 20:02:33\n * @param {UILogicContext} ctx\n */\n calc(ctx) {\n const tag = this.model.id;\n const m = this.model;\n const { context, viewParams, data, parameters } = ctx;\n const app = ibiz.hub.getApp(context.srfappid);\n if (m.default) {\n ctx.params[tag] = data && data.length > 0 ? data[0] : {};\n } else if (m.activeContainerParam) {\n ctx.params[tag] = parameters.ctrl || parameters.view;\n } else if (m.activeCtrlParam) {\n ctx.params[tag] = parameters.ctrl;\n } else if (m.ctrlParam) {\n const control = parameters.view.getController(m.codeName.toLowerCase());\n if (control) {\n ctx.params[tag] = control;\n } else {\n throw new RuntimeError20(\"\\u6CA1\\u627E\\u5230\".concat(m.codeName, \"\\u6307\\u5B9A\\u90E8\\u4EF6\\u5BF9\\u8C61\"));\n }\n } else if (m.activeViewParam) {\n ctx.params[tag] = parameters.view;\n } else if (m.appGlobalParam) {\n ctx.params[tag] = ibiz.env;\n } else if (m.applicationParam) {\n ctx.params[tag] = app;\n } else if (m.entityListParam) {\n ctx.params[tag] = [];\n } else if (m.entityPageParam) {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u5206\\u9875\\u67E5\\u8BE2\\u7ED3\\u679C\");\n } else if (m.entityParam) {\n ctx.params[tag] = {};\n } else if (m.lastReturnParam) {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u4E0A\\u6B21\\u8C03\\u7528\\u8FD4\\u56DE\");\n } else if (m.navContextParam) {\n ctx.params[tag] = context;\n } else if (m.navViewParamParam) {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u89C6\\u56FE\\u8DEF\\u7531\\u53C2\\u6570\");\n } else if (m.routeViewSessionParam) {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u8DEF\\u7531\\u89C6\\u56FE\\u4F1A\\u8BDD\");\n } else if (m.simpleListParam) {\n ctx.params[tag] = [];\n } else if (m.simpleParam) {\n ctx.params[tag] = {};\n } else if (m.viewNavDataParam) {\n ctx.params[tag] = viewParams;\n } else if (m.viewSessionParam) {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B: \\u5F53\\u524D\\u89C6\\u56FE\\u4F1A\\u8BDD\");\n }\n }\n /**\n * 重新建立变量\n * @author lxm\n * @date 2023-03-24 09:20:42\n * @param {DELogicContext} ctx\n */\n renew(ctx) {\n const tag = this.model.id;\n const m = this.model;\n if (m.entityListParam || m.simpleListParam || m.entityPageParam) {\n ctx.params[tag] = [];\n } else if (m.simpleParam || m.entityParam) {\n ctx.params[tag] = {};\n } else {\n throw new ModelError21(m, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u53C2\\u6570\\u7C7B\\u578B\\u91CD\\u65B0\\u5EFA\\u7ACB\\u53D8\\u91CF\");\n }\n }\n};\n\n// src/ui-logic/ui-logic.ts\nvar UILogic = class {\n /**\n * Creates an instance of UILogic.\n * @author chitanda\n * @date 2023-02-08 17:02:26\n * @param {IDEUILogic} model\n */\n constructor(model) {\n this.model = model;\n /**\n * 所有节点实例\n *\n * @author chitanda\n * @date 2023-02-08 21:02:38\n * @protected\n * @type {Map<string, UILogicNode>}\n */\n this.nodes = /* @__PURE__ */ new Map();\n /**\n * 所有参数实例\n *\n * @author chitanda\n * @date 2023-02-08 21:02:25\n * @protected\n * @type {Map<string, UILogicParam>}\n */\n this.params = /* @__PURE__ */ new Map();\n var _a;\n if (!((_a = model.deuilogicNodes) == null ? void 0 : _a.length)) {\n throw new RuntimeModelError26(model, \"\\u754C\\u9762\\u903B\\u8F91\\u6CA1\\u6709\\u914D\\u7F6E\\u903B\\u8F91\\u8282\\u70B9\");\n }\n model.deuilogicNodes.forEach((node) => {\n const { logicNodeType } = node;\n let logicNode;\n switch (logicNodeType) {\n case \"BEGIN\":\n logicNode = new StartNode2(node);\n break;\n case \"END\":\n logicNode = new EndNode2(node);\n break;\n case \"DEACTION\":\n logicNode = new DEActionNode2(node);\n break;\n case \"DEUIACTION\":\n logicNode = new DEUIActionNode(node);\n break;\n case \"PREPAREJSPARAM\":\n logicNode = new PrepareJSParamNode(node);\n break;\n case \"RESETPARAM\":\n case \"COPYPARAM\":\n case \"BINDPARAM\":\n case \"VIEWCTRLINVOKE\":\n logicNode = new ViewCtrlInvokeNode(node);\n break;\n case \"VIEWCTRLFIREEVENT\":\n case \"APPENDPARAM\":\n case \"SORTPARAM\":\n case \"RENEWPARAM\":\n case \"PFPLUGIN\":\n case \"MSGBOX\":\n case \"DEDATASET\":\n case \"DELOGIC\":\n case \"THROWEXCEPTION\":\n case \"DEBUGPARAM\":\n default:\n throw new ModelError22(node, \"\\u672A\\u652F\\u6301\\u7684\\u903B\\u8F91\\u8282\\u70B9\\u7C7B\\u578B: \".concat(logicNodeType));\n }\n this.nodes.set(node.id, logicNode);\n });\n model.deuilogicParams.forEach((param) => {\n this.params.set(param.id, new UILogicParam(param));\n });\n this.nodes.forEach((node) => {\n node.links.forEach((link) => {\n link.srcNode = node;\n if (this.nodes.has(link.model.dstDEUILogicNodeId)) {\n link.dstNode = this.nodes.get(link.model.dstDEUILogicNodeId);\n }\n });\n });\n }\n /**\n * 初始化逻辑参数\n *\n * @author chitanda\n * @date 2023-02-08 21:02:58\n * @protected\n * @param {UILogicContext} ctx\n * @param {IContext} context\n * @param {IData} data\n * @param {IParams} [opt]\n */\n initLogicParams(ctx) {\n this.params.forEach((param) => {\n if (param.model.default) {\n ctx.defaultParamName = param.model.id;\n }\n param.calc(ctx);\n });\n }\n /**\n * 执行视图逻辑\n *\n * @author chitanda\n * @date 2023-02-08 21:02:09\n * @param {IContext} context\n * @param {IData} data\n * @param {IParams} [opt]\n * @return {*} {Promise<IData>}\n */\n async exec(parameters) {\n const ctx = new UILogicContext(this.params, parameters);\n this.initLogicParams(ctx);\n const { startDEUILogicNodeId } = this.model;\n if (startDEUILogicNodeId && this.nodes.has(startDEUILogicNodeId)) {\n const start = this.nodes.get(startDEUILogicNodeId);\n await this.deepExec(start, ctx);\n } else {\n throw new RuntimeModelError26(this.model, \"\\u672A\\u8BBE\\u7F6E\\u8D77\\u59CB\\u8282\\u70B9\");\n }\n if (ctx.isEndNode) {\n return ctx.result;\n }\n if (ctx.params[ctx.defaultParamName]) {\n return ctx.params[ctx.defaultParamName];\n }\n return null;\n }\n /**\n * 开始根据连线递归执行逻辑\n *\n * @author chitanda\n * @date 2023-02-09 15:02:32\n * @protected\n * @param {UILogicNode} node\n * @param {UILogicContext} ctx\n * @param {IContext} context\n * @param {(IData[] | null)} data\n * @param {IParams} params\n * @param {IParams} [opt]\n * @return {*} {(Promise<IData | null>)}\n */\n async deepExec(node, ctx) {\n await node.exec(ctx);\n const { links } = node;\n for (let index = 0; index < links.length; index++) {\n const link = links[index];\n const bol = await link.exec(ctx);\n if (bol && link.dstNode) {\n await this.deepExec(link.dstNode, ctx);\n if (node.model.parallelOutput === false) {\n break;\n }\n }\n }\n }\n};\n\n// src/ui-logic/index.ts\nvar uiLogicMap = /* @__PURE__ */ new Map();\nasync function execUILogic(deUILogicId, appDataEntityId, parameters) {\n const app = ibiz.hub.getApp(parameters.context.srfappid);\n const deUILogic = await app.getDEUILogic(deUILogicId, appDataEntityId);\n if (!deUILogic) {\n throw new RuntimeError21(\n \"\\u627E\\u4E0D\\u5230\\u5B9E\\u4F53\".concat(appDataEntityId, \"\\u7684\\u754C\\u9762\\u903B\\u8F91\").concat(deUILogicId)\n );\n }\n if (!uiLogicMap.has(deUILogic)) {\n uiLogicMap.set(deUILogic, new UILogic(deUILogic));\n }\n const uiLogic = uiLogicMap.get(deUILogic);\n await uiLogic.exec(parameters);\n return null;\n}\n\n// src/ui-action/uiaction-util.ts\nimport { RuntimeError as RuntimeError22 } from \"@ibiz-template/core\";\nvar UIActionUtil = class {\n /**\n * 执行界面行为\n *\n * @author lxm\n * @date 2023-05-15 07:54:53\n * @static\n * @param {string} actionId 界面行为id\n * @param {IUILogicParams} params 界面行为参数\n * @return {*} {Promise<IUIActionResult>}\n */\n static async exec(actionId, params) {\n const action = await getUIActionById(actionId);\n if (!action) {\n throw new RuntimeError22(\"\\u6CA1\\u627E\\u5230\".concat(actionId, \"\\u7684\\u754C\\u9762\\u884C\\u4E3A\\u6A21\\u578B\"));\n }\n const provider = await getUIActionProvider(action);\n return provider.exec(action, params);\n }\n /**\n * 执行界面行为并处理返回值\n * @author lxm\n * @date 2023-05-15 07:54:36\n * @static\n * @param {string} actionId 界面行为id\n * @param {IUILogicParams} params 界面行为参数\n */\n static async execAndResolved(actionId, params) {\n const result = await this.exec(actionId, params);\n if (result.closeView) {\n params.view.closeView();\n } else if (result.refresh) {\n await params.view.callUIAction(\"Refresh\" /* REFRESH */);\n }\n }\n};\n\n// src/ui-action/provider/ui-action-provider-base.ts\nvar UIActionProviderBase = class {\n /**\n * 界面行为执行入口,处理公共逻辑,子类一般不要重写\n * @author lxm\n * @date 2023-05-08 10:02:10\n * @param {IAppDEUIAction} action\n * @param {IUILogicParams} params\n * @return {*} {Promise<IUIActionResult>}\n */\n async exec(action, args) {\n const { context, params, data } = args;\n const result = {\n refresh: action.reloadData,\n closeView: action.closeEditView\n };\n const { appDEUILogicId, appDataEntityId, uilogicAttachMode } = action;\n if (uilogicAttachMode === \"REPLACE\") {\n if (!appDEUILogicId) {\n throw new RuntimeModelError27(action, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u5B9E\\u4F53\\u754C\\u9762\\u903B\\u8F91\");\n }\n await execUILogic(appDEUILogicId, appDataEntityId, args);\n return result;\n }\n if (!await this.isConfirm(action)) {\n return this.returnError(result);\n }\n const _result = await this.execAction(action, args);\n Object.assign(result, _result);\n if (result.cancel === true) {\n return this.returnError(result);\n }\n const nextResult = await this.doNextAction(action, {\n ...args,\n context: result.nextContext || context,\n data: result.data || data,\n params: result.nextParams || params\n });\n if (nextResult) {\n Object.assign(result, nextResult);\n if (nextResult.cancel === true) {\n return this.returnError(result);\n }\n }\n if (action.uilogicAttachMode === \"AFTER\") {\n if (!appDEUILogicId) {\n throw new RuntimeModelError27(action, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u5B9E\\u4F53\\u754C\\u9762\\u903B\\u8F91\");\n }\n await execUILogic(appDEUILogicId, appDataEntityId, args);\n }\n return result;\n }\n /**\n * 有错误和取消时对result做的处理\n * @author lxm\n * @date 2023-03-15 07:43:21\n * @protected\n * @param {IUIActionResult} result\n * @returns {*} {IUIActionResult}\n * @memberof UIActionHandler\n */\n returnError(result) {\n return Object.assign(result, {\n refresh: false,\n closeView: false\n });\n }\n /**\n * 用户操作确认\n *\n * @author lxm\n * @date 2022-10-25 14:10:55\n * @param {IAppDEUIAction} action 界面行为模型\n * @returns {*} {Promise<boolean>}\n */\n async isConfirm(action) {\n if (action.enableConfirm && action.confirmMsg) {\n return ibiz.modal.confirm({ title: action.confirmMsg });\n }\n return true;\n }\n /**\n * 执行后续界面行为\n *\n * @author lxm\n * @date 2022-10-25 15:10:54\n * @param {IAppDEUIAction} action\n * @param {IContext} context\n * @param {(IData[])} data\n * @param {IParams} params\n * @param {(IData | undefined)} [opts]\n * @returns {*} {Promise<void>}\n */\n async doNextAction(action, params) {\n const nextActionId = action.nextId;\n if (nextActionId) {\n return UIActionUtil.exec(nextActionId, params);\n }\n }\n /**\n * 参数处理(根据数据目标和数据参数,导航参数)\n *\n * @author lxm\n * @date 2022-08-29 17:08:00\n * @protected\n * @static\n * @param {IAppDEUIAction} action 界面行为\n * @param {IContext} context 上下文\n * @param {(IData[])} data 数据集合\n * @param {IParams} params 视图参数\n * @returns {*} {Promise<{\n * resultContext: IContext; 处理后的上下文\n * resultData: IData[]; 处理后的数据集合\n * resultParams: IParams; 处理后的视图参数\n * }>}\n */\n async handleParams(action, context, data, params) {\n let resultData = [];\n const deName = calcDeCodeNameById(action.appDataEntityId);\n switch (action.actionTarget) {\n case \"NONE\":\n resultData = [];\n break;\n case \"SINGLEDATA\":\n resultData = [data[0]];\n break;\n case \"MULTIDATA\":\n resultData = data;\n break;\n case \"MULTIKEY\":\n resultData = deName && data.length > 0 ? data.map((item) => ({ [deName]: item.srfkey || item[deName] })) : [{}];\n break;\n case \"SINGLEKEY\":\n {\n const originData = data[0] || {};\n resultData = deName ? [{ [deName]: originData.srfkey || originData[deName] }] : [{}];\n }\n break;\n default:\n break;\n }\n const resultContext = context.clone();\n const navContexts = [...action.navigateContexts || []];\n if (deName && action.actionTarget !== \"NONE\") {\n const { valueItem, paramItem } = action;\n const key = paramItem || deName;\n const valueKey = valueItem || \"srfkey\";\n navContexts.unshift({\n key,\n value: valueKey,\n rawValue: false\n });\n }\n const isMultiData = [\"MULTIKEY\", \"MULTIDATA\"].includes(action.actionTarget) && data.length > 0;\n const tempContext = convertNavData(\n navContexts,\n context,\n params,\n isMultiData ? formatMultiData(navContexts, data) : data[0] || {}\n );\n Object.assign(resultContext, tempContext);\n const navParams = action.navigateParams;\n const resultParams = convertNavData(\n navParams,\n resultContext,\n params,\n isMultiData ? formatMultiData(navParams, data) : data[0] || {}\n );\n return { resultContext, resultData, resultParams };\n }\n};\n\n// src/ui-action/provider/backend-ui-action-provider.ts\nvar BackendUIActionProvider = class extends UIActionProviderBase {\n async execAction(action, args) {\n const { context, params, data, event } = args;\n const actionResult = {};\n const entityName = action.appDataEntityId;\n const methodName = action.appDEMethodId;\n if (!entityName || !methodName) {\n throw new RuntimeModelError28(action, \"\\u672A\\u914D\\u7F6E\\u5B9E\\u4F53\\u6216\\u5B9E\\u4F53\\u884C\\u4E3A\");\n }\n const { resultContext, resultParams, resultData } = await this.handleParams(\n action,\n context,\n data,\n params\n );\n const tempParams = { ...params, ...resultParams };\n const frontPSAppView = action.frontAppViewId;\n if (frontPSAppView) {\n const res2 = await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n frontPSAppView,\n resultContext,\n resultParams,\n { event }\n );\n if (!(res2 == null ? void 0 : res2.ok)) {\n actionResult.cancel = true;\n return actionResult;\n }\n if ((res2 == null ? void 0 : res2.ok) && res2.data) {\n if (resultData.length === 0) {\n resultData.push({});\n }\n resultData.forEach((item) => {\n item.srfactionparam = res2.data;\n });\n }\n }\n const app = ibiz.hub.getApp(context == null ? void 0 : context.srfappid);\n const _data = resultData.map((item) => {\n var _a;\n return ((_a = item.getOrigin) == null ? void 0 : _a.call(item)) || item || {};\n });\n const isMultiData = [\"MULTIKEY\", \"MULTIDATA\"].includes(\n action.actionTarget\n );\n const res = await app.deService.exec(\n entityName,\n methodName,\n resultContext,\n isMultiData ? _data : _data[0],\n tempParams\n );\n if (res.ok && action.successMsg) {\n ibiz.message.success(action.successMsg);\n }\n Object.assign(actionResult, {\n data: isArray2(res.data) ? res.data : [res.data],\n nextContext: resultContext,\n nextParams: tempParams\n });\n return actionResult;\n }\n};\n\n// src/ui-action/provider/sys-ui-action-provider.ts\nvar SysUIActionProvider = class extends UIActionProviderBase {\n async execAction(action, args) {\n const { view } = args;\n const uIActionTag = action.uiactionTag;\n if (uIActionTag === \"Exit\" /* EXIT */) {\n return { closeView: true };\n }\n const result = await view.callUIAction(uIActionTag, args);\n return result || {};\n }\n};\n\n// src/ui-action/provider/front-ui-action-provider.ts\nimport { StringUtil, RuntimeModelError as RuntimeModelError29, ModelError as ModelError23 } from \"@ibiz-template/core\";\nvar FrontUIActionProvider = class extends UIActionProviderBase {\n async execAction(action, args) {\n const { context, params, data, event, noWaitRoute } = args;\n let actionResult = {};\n switch (action.frontProcessType) {\n case \"OPENHTMLPAGE\": {\n const url = StringUtil.fill(action.htmlPageUrl, context, data == null ? void 0 : data[0]);\n window.open(url, \"_blank\");\n break;\n }\n case \"TOP\":\n case \"WIZARD\": {\n const frontPSAppView = action.frontAppViewId;\n if (!frontPSAppView) {\n throw new RuntimeModelError29(action, \"\\u672A\\u914D\\u7F6E\\u6253\\u5F00\\u89C6\\u56FE\");\n }\n const { resultContext, resultParams } = await this.handleParams(\n action,\n context,\n data,\n params\n );\n const res = await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n frontPSAppView,\n resultContext,\n resultParams,\n { event, noWaitRoute }\n );\n if (!(res == null ? void 0 : res.ok)) {\n actionResult.cancel = true;\n }\n if ((res == null ? void 0 : res.ok) && res.data) {\n actionResult.data = res.data;\n actionResult.nextContext = resultContext;\n actionResult.nextParams = { ...params, ...resultParams };\n }\n break;\n }\n case \"OTHER\":\n actionResult = this.doOther(action, args);\n break;\n default:\n throw new ModelError23(\n action,\n \"\\u672A\\u652F\\u6301\\u7684\\u524D\\u53F0\\u5904\\u7406\\u6A21\\u5F0F[\".concat(action.frontProcessType, \"]\")\n );\n }\n return actionResult;\n }\n /**\n * 处理模式:用户自定义\n * @author lxm\n * @date 2023-07-25 02:39:48\n * @protected\n * @param {IAppDEUIAction} action\n * @param {IUILogicParams} args\n * @return {*}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n doOther(action, args) {\n const { scriptCode } = action;\n const { context, params, data, event } = args;\n if (scriptCode) {\n const result = ScriptFactory.execScriptFn(\n { context, params, data, el: event == null ? void 0 : event.target },\n scriptCode\n );\n return result || {};\n }\n throw new RuntimeModelError29(action, \"\\u81EA\\u5B9A\\u4E49\\u7C7B\\u578B\\u7F3A\\u5C11\\u914D\\u7F6E\\u811A\\u672C\\u4EE3\\u7801\");\n }\n};\n\n// src/ui-action/provider/wf-withdraw-ui-action-provider.ts\nvar WFWithdrawUIActionProvider = class extends UIActionProviderBase {\n async execAction(_action, args) {\n const { view } = args;\n const isWithdraw = await ibiz.modal.confirm({\n title: \"\\u63D0\\u793A\",\n desc: \"\\u662F\\u5426\\u786E\\u8BA4\\u6267\\u884C\\u64A4\\u56DE\\u64CD\\u4F5C\\uFF1F\"\n });\n let isCloseView = false;\n if (isWithdraw && view) {\n await view.call(\"WFWithdraw\", args);\n isCloseView = true;\n }\n return {\n refresh: false,\n closeView: isCloseView\n };\n }\n};\n\n// src/ui-action/provider/index.ts\nfunction presetUIActionProvider() {\n const frontUIActionProvider = new FrontUIActionProvider();\n registerUIActionProvider(\"FRONT\", () => frontUIActionProvider);\n const backendUIActionProvider = new BackendUIActionProvider();\n registerUIActionProvider(\"BACKEND\", () => backendUIActionProvider);\n const sysUIActionProvider = new SysUIActionProvider();\n registerUIActionProvider(\"SYS\", () => sysUIActionProvider);\n const wfWithdrawUIActionProvider = new WFWithdrawUIActionProvider();\n registerUIActionProvider(\n \"DEUIACTION_WFWithdraw\",\n () => wfWithdrawUIActionProvider\n );\n}\n\n// src/logic-scheduler/executor/logic-executor.ts\nimport { RuntimeError as RuntimeError23 } from \"@ibiz-template/core\";\nvar LogicExecutor = class {\n /**\n * @author lxm\n * @date 2023-06-25 07:32:57\n * @param {ISchedulerLogic} logic 逻辑\n */\n constructor(logic, scheduler) {\n this.logic = logic;\n this.scheduler = scheduler;\n this.type = logic.logicType;\n }\n /**\n * 执行逻辑\n * @author lxm\n * @date 2023-06-26 02:55:40\n * @param {IUILogicParams} _executeParams 执行参数\n * @return {*} {*}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n execute(_executeParams) {\n throw new RuntimeError23(\"Method not implemented.\");\n }\n /**\n * 销毁方法\n * @author lxm\n * @date 2023-07-17 11:48:54\n */\n destroy() {\n }\n};\n\n// src/logic-scheduler/executor/logic-executor-factory.ts\nimport { ModelError as ModelError24 } from \"@ibiz-template/core\";\nvar LogicExecutorFactory = class {\n constructor() {\n /**\n * 构造回调方法集合\n * @author lxm\n * @date 2023-06-25 06:53:31\n */\n this.constructorMap = /* @__PURE__ */ new Map();\n }\n /**\n * 注册\n * @author lxm\n * @date 2023-06-25 06:54:17\n * @param {string} key 注册标识\n * @param {(logic: ISchedulerLogic, scheduler: LogicScheduler) => LogicExecutor} callback\n */\n register(key, callback) {\n this.constructorMap.set(key, callback);\n }\n /**\n * 创建执行器实例\n * @author lxm\n * @date 2023-06-25 06:59:51\n * @param {ISchedulerLogic} logic\n * @return {*}\n */\n createExecutor(logic, scheduler) {\n const constructor = this.constructorMap.get(logic.logicType);\n if (!constructor) {\n throw new ModelError24(logic, \"\\u903B\\u8F91\\u7C7B\\u578B \".concat(logic.logicType, \" \\u6682\\u672A\\u652F\\u6301\\uFF01\"));\n }\n return constructor(logic, scheduler);\n }\n};\n\n// src/logic-scheduler/executor/script-executor.ts\nimport { RuntimeError as RuntimeError24 } from \"@ibiz-template/core\";\nvar ScriptExecutor = class extends LogicExecutor {\n constructor() {\n super(...arguments);\n /**\n * 是否单行返回,脚本只是单行的且默认把值返回\n * @author lxm\n * @date 2023-06-25 10:06:32\n * @type {boolean}\n */\n this.isRowReturn = false;\n }\n /**\n * 执行参数转换成脚本执行作用域参数\n * @author lxm\n * @date 2023-06-26 03:29:24\n * @param {IUILogicParams} _executeParams\n * @return {*} {IData[]}\n */\n convertScriptArgs(_executeParams) {\n throw new RuntimeError24(\"\\u672A\\u8BBE\\u7F6E\\u811A\\u672C\\u6267\\u884C\\u53C2\\u6570\\u8F6C\\u6362\\u65B9\\u6CD5\");\n }\n /**\n * 初始化脚本执行器\n * @author lxm\n * @date 2023-06-26 03:27:50\n * @param {string[]} paramKeys 脚本作用域参数键值和顺序\n * @param {(executeParams: IUILogicParams) => IData[]} convertFun 脚本参数转换方法\n */\n init(paramKeys, convertFun) {\n this.convertScriptArgs = convertFun;\n let code = this.logic.scriptCode;\n if (this.isRowReturn) {\n code = \"return (\".concat(code, \")\");\n }\n this.scriptFn = ScriptFactory.createScriptFn(paramKeys, code, {\n singleRowReturn: this.isRowReturn\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n execute(executeParams) {\n const scriptArgs = this.convertScriptArgs(executeParams);\n return this.scriptFn.exec(scriptArgs);\n }\n};\n\n// src/logic-scheduler/executor/app-de-ui-logic-executor.ts\nimport { RuntimeModelError as RuntimeModelError30 } from \"@ibiz-template/core\";\nvar AppDEUILogicExecutor = class extends LogicExecutor {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n execute(executeParams) {\n const { appDEUILogicId, appDataEntityId } = this.logic;\n if (!appDEUILogicId) {\n throw new RuntimeModelError30(this.logic, \"\\u6CA1\\u6709\\u914D\\u7F6E\\u5B9E\\u4F53\\u754C\\u9762\\u903B\\u8F91\");\n }\n execUILogic(appDEUILogicId, appDataEntityId, executeParams);\n }\n};\n\n// src/logic-scheduler/scheduler/logic-scheduler.ts\nimport { mergeLeft } from \"ramda\";\nvar LogicScheduler = class {\n constructor(logics) {\n this.triggers = /* @__PURE__ */ new Map();\n this.executors = /* @__PURE__ */ new Map();\n this.logics = logics;\n logics.forEach((logic) => {\n try {\n const executor = this.createExecutor(logic);\n this.executors.set(logic.id, executor);\n const trigger = this.createTrigger(logic);\n this.triggers.set(logic.id, trigger);\n trigger.bindExecutor(executor);\n } catch (error) {\n ibiz.log.error(error.message);\n }\n });\n }\n /**\n * 销毁方法\n * @author lxm\n * @date 2023-07-17 11:47:51\n */\n destroy() {\n this.triggers.forEach((trigger) => trigger.destroy());\n this.executors.forEach((executor) => executor.destroy());\n }\n /**\n * 获取执行参数,把默认参数和调用参数合并\n * @author lxm\n * @date 2023-06-25 08:28:34\n * @param {IData} args\n * @return {*}\n */\n getExecuteParams(executeParams) {\n let defaultParams = {};\n if (this.defaultParamsCb) {\n defaultParams = this.defaultParamsCb();\n }\n return mergeLeft(executeParams, defaultParams);\n }\n /**\n * 创建触发器实例\n * @author lxm\n * @date 2023-06-26 02:33:35\n * @protected\n * @param {ISchedulerLogic} logic\n * @return {*} {LogicTrigger}\n */\n createTrigger(logic) {\n return ibiz.scheduler.triggerFactory.createTrigger(logic, this);\n }\n /**\n * 创建执行器实例\n * @author lxm\n * @date 2023-06-26 02:33:52\n * @protected\n * @param {ISchedulerLogic} logic\n * @return {*} {LogicExecutor}\n */\n createExecutor(logic) {\n return ibiz.scheduler.executorFactory.createExecutor(logic, this);\n }\n /**\n * 获取匹配的触发器。\n * @author lxm\n * @date 2023-06-26 02:32:24\n * @param {ITriggerMatchParams} matchParams\n * @return {*} {LogicTrigger[]}\n */\n getMatchTriggers(matchParams) {\n const triggers = [];\n this.triggers.forEach((trigger) => {\n if (trigger.match(matchParams)) {\n triggers.push(trigger);\n }\n });\n return triggers;\n }\n /**\n * 找到匹配的触发器并执行对应的执行器,并返回结果。\n * 返回undefined表示没有匹配的触发器。\n * @author lxm\n * @date 2023-06-26 02:30:24\n * @param {ITriggerMatchParams} matchParams 匹配参数\n * @param {Partial<IUILogicParams>} [executeParams={}] 执行参数\n * @return {*} {(any[] | undefined)}\n */\n triggerAndExecute(matchParams, executeParams = {}) {\n const triggers = this.getMatchTriggers(matchParams);\n if (triggers.length > 0) {\n const params = this.getExecuteParams(executeParams);\n const result = triggers.map((trigger) => {\n return trigger.execute(params);\n });\n return result;\n }\n }\n /**\n * 预定义项的动态逻辑\n * @author lxm\n * @date 2023-06-26 02:29:08\n * @protected\n * @param {string} itemName 子项名称\n * @param {('ITEMVISIBLE' | 'ITEMENABLE' | 'ITEMBLANK')} triggerType 预定义逻辑类型\n * @param {Partial<IUILogicParams>} executeParams 执行参数\n * @return {*} {(boolean | undefined)}\n */\n triggerItemDynaLogic(itemName, triggerType, executeParams) {\n const matchParams = { itemName, triggerType };\n const result = this.triggerAndExecute(matchParams, executeParams);\n if (result == null ? void 0 : result.length) {\n return result.pop();\n }\n }\n /**\n * 预定义项显示逻辑\n * @author lxm\n * @date 2023-06-26 02:26:36\n * @param {string} itemName 子项名称\n * @param {Partial<IUILogicParams>} executeParams 执行参数\n * @return {*} {(boolean | undefined)}\n */\n triggerItemVisible(itemName, executeParams) {\n return this.triggerItemDynaLogic(itemName, \"ITEMVISIBLE\", executeParams);\n }\n /**\n * 预定义项启用逻辑\n * @author lxm\n * @date 2023-06-26 02:26:35\n * @param {string} itemName 子项名称\n * @param {Partial<IUILogicParams>} executeParams 执行参数\n * @return {*} {(boolean | undefined)}\n */\n triggerItemEnable(itemName, executeParams) {\n return this.triggerItemDynaLogic(itemName, \"ITEMENABLE\", executeParams);\n }\n /**\n * 预定义项空输入逻辑\n * @author lxm\n * @date 2023-06-26 02:26:33\n * @param {string} itemName 子项名称\n * @param {Partial<IUILogicParams>} executeParams 执行参数\n * @return {*} {(boolean | undefined)}\n */\n triggerItemBlank(itemName, executeParams) {\n return this.triggerItemDynaLogic(itemName, \"ITEMBLANK\", executeParams);\n }\n /**\n * 定时器触发开始启用并计时\n * @author lxm\n * @date 2023-07-17 01:49:14\n */\n startTimerTrigger() {\n const triggers = this.getMatchTriggers({ triggerType: \"TIMER\" });\n triggers.forEach((trigger) => trigger.start());\n }\n /**\n * 执行自定义触发逻辑类型的视图逻辑\n * @author lxm\n * @date 2023-07-17 07:44:12\n * @param {string} id\n * @param {Partial<IUILogicParams>} executeParams\n * @return {*}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n triggerCustom(id, executeParams) {\n const trigger = this.triggers.get(id);\n if (!trigger) {\n return -1;\n }\n const params = this.getExecuteParams(executeParams);\n return trigger.execute(params);\n }\n};\n\n// src/logic-scheduler/scheduler/control-logic-scheduler.ts\nvar ControlLogicScheduler = class extends LogicScheduler {\n constructor(logics) {\n const filterLogics = logics.filter(\n (item) => item.triggerType !== \"APPVIEWENGINE\"\n );\n super(filterLogics);\n }\n};\n\n// src/logic-scheduler/scheduler/view-logic-scheduler.ts\nvar ViewLogicScheduler = class extends LogicScheduler {\n constructor(logics) {\n logics.forEach((logic) => {\n logic.triggerType = logic.logicTrigger;\n });\n super(logics);\n }\n /**\n * 触发视图事件\n * @author lxm\n * @date 2023-06-26 02:26:33\n * @param {string} itemName 子项名称\n * @param {Partial<IUILogicParams>} executeParams 执行参数\n * @return {*} {(boolean | undefined)}\n */\n triggerViewEvent(event) {\n const matchParams = {\n eventName: event.eventName,\n triggerType: \"VIEWEVENT\"\n };\n this.triggerAndExecute(matchParams, event);\n }\n};\n\n// src/logic-scheduler/trigger/logic-trigger-factory.ts\nimport { ModelError as ModelError25 } from \"@ibiz-template/core\";\nvar LogicTriggerFactory = class {\n constructor() {\n /**\n * 构造回调方法集合\n * @author lxm\n * @date 2023-06-25 06:53:31\n */\n this.constructorMap = /* @__PURE__ */ new Map();\n }\n /**\n * 注册\n * @author lxm\n * @date 2023-06-25 06:54:17\n * @param {string} key 注册标识\n * @param {(logic: ISchedulerLogic, scheduler: LogicScheduler) => LogicTrigger} callback\n */\n register(key, callback) {\n this.constructorMap.set(key, callback);\n }\n /**\n * 创建触发器实例\n * @author lxm\n * @date 2023-06-25 06:56:32\n * @param {ISchedulerLogic} logic\n * @return {*}\n */\n createTrigger(logic, scheduler) {\n const constructor = this.constructorMap.get(logic.triggerType);\n if (!constructor) {\n throw new ModelError25(logic, \"\\u89E6\\u53D1\\u5668\\u7C7B\\u578B \".concat(logic.triggerType, \" \\u6682\\u672A\\u652F\\u6301\\uFF01\"));\n }\n return constructor(logic, scheduler);\n }\n};\n\n// src/logic-scheduler/logic-scheduler-center.ts\nvar LogicSchedulerCenter = class {\n constructor() {\n /**\n * 执行器工厂\n * @author lxm\n * @date 2023-06-25 06:41:42\n * @type {LogicExecutorFactory}\n */\n this.executorFactory = new LogicExecutorFactory();\n /**\n * 触发器工厂\n * @author lxm\n * @date 2023-06-25 06:44:12\n * @type {LogicTriggerFactory}\n */\n this.triggerFactory = new LogicTriggerFactory();\n }\n /**\n * 创建视图逻辑调度器实例\n * @author lxm\n * @date 2023-06-25 03:41:43\n * @param {IAppDEViewLogic} logics\n * @return {*} {ViewLogicScheduler}\n */\n createViewScheduler(logics) {\n return new ViewLogicScheduler(logics);\n }\n /**\n * 创建部件逻辑调度器实例\n * @author lxm\n * @date 2023-06-25 03:48:30\n * @param {IControlLogic} logics\n * @return {*} {ControlLogicScheduler}\n */\n createControlScheduler(logics) {\n return new ControlLogicScheduler(logics);\n }\n};\n\n// src/logic-scheduler/trigger/logic-trigger.ts\nimport { RuntimeError as RuntimeError25 } from \"@ibiz-template/core\";\nvar LogicTrigger = class {\n /**\n * @author lxm\n * @date 2023-06-25 07:32:57\n * @param {ISchedulerLogic} logic 逻辑\n */\n constructor(logic, scheduler) {\n this.logic = logic;\n this.scheduler = scheduler;\n this.type = logic.triggerType;\n }\n /**\n * 绑定执行器\n * @author lxm\n * @date 2023-06-25 07:25:13\n * @param {LogicExecutor} executor\n */\n bindExecutor(executor) {\n this.executor = executor;\n }\n /**\n * 匹配触发器,返回true表示该触发器满足触发条件。\n * @author lxm\n * @date 2023-06-25 07:49:00\n * @param {IData} _args\n * @return {*} {boolean}\n */\n match(matchParams) {\n return matchParams.triggerType === this.type;\n }\n /**\n * 执行对应的执行器\n * @author lxm\n * @date 2023-06-26 01:45:42\n * @param {Partial<IUILogicParams>} executeParams\n * @return {*}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n execute(executeParams) {\n if (this.executor) {\n return this.executor.execute(executeParams);\n }\n throw new RuntimeError25(\"\".concat(this.logic.id, \"\\u6CA1\\u6709\\u7ED1\\u5B9Aexecutor\"));\n }\n /**\n * 销毁方法\n * @author lxm\n * @date 2023-07-17 11:48:54\n */\n destroy() {\n this.executor = void 0;\n }\n};\n\n// src/logic-scheduler/trigger/custom-trigger.ts\nvar CustomTrigger = class extends LogicTrigger {\n};\n\n// src/logic-scheduler/trigger/item-dyna-logic-trigger.ts\nimport { RuntimeError as RuntimeError26 } from \"@ibiz-template/core\";\nvar ItemDynaLogicTrigger = class extends LogicTrigger {\n bindExecutor(executor) {\n super.bindExecutor(executor);\n if (this.executor.type !== \"SCRIPT\") {\n throw new RuntimeError26(\n \"\\u9884\\u5B9A\\u4E49\\u903B\\u8F91\\u7C7B\\u578B\".concat(this.type, \"\\u7684\\u89E6\\u53D1\\u5668\\u7C7B\\u578B\\u53EA\\u80FD\\u662F\\u811A\\u672C\")\n );\n }\n this.executor.isRowReturn = true;\n this.executor.init(\n [\"context\", \"viewparams\", \"data\", \"env\"],\n (executeParams) => {\n const { context, params, data } = executeParams;\n return {\n context,\n params,\n data: (data == null ? void 0 : data[0]) || {},\n env: ibiz.env\n };\n }\n );\n }\n match(matchParams) {\n const superResult = super.match(matchParams);\n return superResult && matchParams.itemName === this.logic.itemName;\n }\n execute(executeParams) {\n const result = this.executor.execute(executeParams);\n if (typeof result === \"boolean\") {\n return result;\n }\n throw new RuntimeError26(\"\".concat(this.logic.id, \"\\u903B\\u8F91\\u8FD4\\u56DE\\u503C\\u4E0D\\u662F\\u5E03\\u5C14\\u503C\"));\n }\n};\n\n// src/logic-scheduler/trigger/timer-trigger.ts\nimport { RuntimeError as RuntimeError27 } from \"@ibiz-template/core\";\nvar TimerTrigger = class extends LogicTrigger {\n constructor() {\n super(...arguments);\n this.timer = null;\n }\n start() {\n this.timer = setInterval(() => {\n if (!this.scheduler.defaultParamsCb) {\n throw new RuntimeError27(\"\\u5B9A\\u65F6\\u5668\\u7F3A\\u5C11\\u9ED8\\u8BA4\\u53C2\\u6570\\u56DE\\u8C03\");\n }\n const params = this.scheduler.defaultParamsCb();\n this.executor.execute(params);\n }, this.logic.timer);\n }\n destroy() {\n super.destroy();\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n};\n\n// src/logic-scheduler/executor/app-ui-logic-executor.ts\nimport {\n ModelError as ModelError26,\n RuntimeError as RuntimeError28,\n RuntimeModelError as RuntimeModelError31\n} from \"@ibiz-template/core\";\nimport { notNilEmpty as notNilEmpty5 } from \"qx-util\";\nvar AppUILogicExecutor = class extends LogicExecutor {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n execute(executeParams) {\n if (this.logic.id === \"opendata\" && this.logic.builtinAppUILogic) {\n return this.executeOpenDataAppUILogic(\n this.logic.builtinAppUILogic,\n executeParams\n );\n }\n if (this.logic.id === \"newdata\" && this.logic.builtinAppUILogic) {\n return this.executeNewDataAppUILogic(\n this.logic.builtinAppUILogic,\n executeParams\n );\n }\n }\n /**\n * 执行应用预置界面逻辑opendata\n *\n * @author lxm\n * @date 2022-08-22 14:08:03\n * @export\n * @param {IPSAppUIOpenDataLogic} appUILogic 应用预置界面逻辑opendata模型对象\n * @param {IContext} context 上下文参数\n * @param {(IData | null)} data 数据集合\n * @param {IParams} params 视图参数\n * @param {IData} [opts] 额外参数,event是js原生事件\n */\n async executeOpenDataAppUILogic(appUILogic, parameters) {\n const { context, params, ...rest } = parameters;\n const { data } = parameters;\n if (!(data == null ? void 0 : data[0])) {\n throw new RuntimeError28(\"opendata\\u6CA1\\u6709\\u53EF\\u64CD\\u4F5C\\u6570\\u636E\\uFF01\");\n }\n const openViewRef = appUILogic.openDataAppView;\n if (!openViewRef) {\n throw new RuntimeModelError31(\n appUILogic,\n \"opendata\\u89C6\\u56FE\\u903B\\u8F91\\u6CA1\\u6709\\u914D\\u7F6E\\u9ED8\\u8BA4\\u6253\\u5F00\\u89C6\\u56FE\"\n );\n }\n const openView = openViewRef.refAppViewId;\n if (!openView) {\n throw new RuntimeModelError31(\n appUILogic,\n \"opendata\\u89C6\\u56FE\\u903B\\u8F91\\u7684\\u9ED8\\u8BA4\\u6253\\u5F00\\u89C6\\u56FE\\u6CA1\\u6709\\u5B9E\\u9645\\u5F15\\u7528\\u89C6\\u56FE\"\n );\n }\n const navContexts = openViewRef.navigateContexts || [];\n const tempContext = Object.assign(\n context,\n convertNavData(navContexts, context, params, data[0])\n );\n let tempParams = {};\n const navParams = openViewRef.navigateParams;\n if (notNilEmpty5(navParams)) {\n tempParams = convertNavData(navParams, params, context, data[0]);\n }\n await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n openView,\n tempContext,\n tempParams,\n rest\n );\n }\n /**\n * 执行应用预置界面逻辑newdata\n *\n * @author lxm\n * @date 2022-08-22 14:08:03\n * @export\n * @param {IPSAppUINewDataLogic} appUILogic 应用预置界面逻辑newdata模型对象\n * @param {IContext} context 上下文参数\n * @param {(IData | null)} data 数据集合\n * @param {IParams} params 视图参数\n * @param {IData} [opts] 额外参数,event是js原生事件\n */\n async executeNewDataAppUILogic(appUILogic, parameters) {\n const { context, params, ...rest } = parameters;\n const { data } = parameters;\n const { enableWizardAdd, enableBatchAdd, batchAddOnly, newDataAppView } = appUILogic;\n let newViewRef;\n if (enableWizardAdd) {\n newViewRef = await this.getWizardNewViewRef(appUILogic, parameters);\n if (!newViewRef) {\n return;\n }\n } else if (enableBatchAdd) {\n throw new ModelError26(appUILogic, \"enableBatchAdd\\u6682\\u672A\\u652F\\u6301\");\n } else if (batchAddOnly) {\n throw new ModelError26(appUILogic, \"batchAddOnly\\u6682\\u672A\\u652F\\u6301\");\n } else {\n newViewRef = newDataAppView;\n if (!newViewRef || !newViewRef.refAppViewId) {\n throw new RuntimeModelError31(\n appUILogic,\n \"newdata\\u89C6\\u56FE\\u903B\\u8F91\\u6CA1\\u6709\\u914D\\u7F6E\\u9ED8\\u8BA4\\u65B0\\u5EFA\\u6570\\u636E\\u89C6\\u56FE\"\n );\n }\n }\n let tempContext = {};\n let tempParams = {};\n const _data = (data == null ? void 0 : data[0]) || {};\n const navContexts = newViewRef.navigateContexts;\n if (notNilEmpty5(navContexts)) {\n tempContext = convertNavData(navContexts, context, params, _data);\n }\n tempContext = Object.assign(context, tempContext);\n const navParams = newViewRef.navigateParams;\n if (notNilEmpty5(navParams)) {\n tempParams = convertNavData(navParams, params, context, _data);\n }\n if (context.srfcopymode) {\n _data.srfkey = void 0;\n tempParams = Object.assign(tempParams, _data.$origin);\n }\n await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n newViewRef.refAppViewId,\n tempContext,\n tempParams,\n rest\n );\n }\n /**\n * 获取向导新建视图引用\n * 返回undefined为取消操作\n * 找不到会报错\n * @author lxm\n * @date 2023-08-03 06:37:22\n * @protected\n * @param {IAppUINewDataLogic} appUILogic\n * @param {IUILogicParams} parameters\n * @return {*} {(Promise<IAppUILogicRefViewBase | undefined>)}\n */\n async getWizardNewViewRef(appUILogic, parameters) {\n var _a;\n const { wizardAppView, newDataAppViews } = appUILogic;\n const { context, params, ...rest } = parameters;\n if (!wizardAppView || !wizardAppView.refAppViewId) {\n throw new RuntimeModelError31(appUILogic, \"\\u7F3A\\u5C11\\u9ED8\\u8BA4\\u7D22\\u5F15\\u5B9E\\u4F53\\u9009\\u62E9\\u89C6\\u56FE\");\n }\n const result = await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n wizardAppView.refAppViewId,\n context,\n params,\n { ...rest, openMode: \"POPUPMODAL\" }\n );\n if (!result.ok) {\n return;\n }\n const selectData = (_a = result.data) == null ? void 0 : _a[0];\n if (!selectData) {\n throw new RuntimeError28(\"\\u8BF7\\u9009\\u4E2D\\u4E00\\u6761\\u6570\\u636E\");\n }\n const indexType = selectData.srfkey;\n const findView = newDataAppViews == null ? void 0 : newDataAppViews.find((item) => item.refMode === indexType);\n if (!findView) {\n throw new RuntimeError28(\n \"\\u6CA1\\u6709\\u627E\\u5230\\u4E0E\\u7D22\\u5F15\\u7C7B\\u578B\".concat(indexType, \"\\u76F8\\u5173\\u7684\\u5B9E\\u4F53\\u7684\\u7F16\\u8F91\\u89C6\\u56FE\")\n );\n }\n return findView;\n }\n};\n\n// src/logic-scheduler/trigger/view-event-trigger.ts\nvar ViewEventTrigger = class extends LogicTrigger {\n constructor(logic, scheduler) {\n super(logic, scheduler);\n this.logic = logic;\n this.scheduler = scheduler;\n /**\n * 监听事件名称集合\n * @author lxm\n * @date 2023-07-26 05:48:30\n * @protected\n * @type {string[]}\n */\n this.listenEventNames = [];\n const names = logic.eventNames.split(\",\");\n this.listenEventNames = names.map(\n (name) => StudioViewEvents[name] || name\n );\n }\n match(matchParams) {\n const superResult = super.match(matchParams);\n return superResult && this.listenEventNames.includes(matchParams.eventName);\n }\n};\n\n// src/logic-scheduler/index.ts\nfunction installLogicSchedule() {\n ibiz.scheduler = new LogicSchedulerCenter();\n ibiz.scheduler.triggerFactory.register(\n \"ITEMVISIBLE\",\n (logic, scheduler) => new ItemDynaLogicTrigger(logic, scheduler)\n );\n ibiz.scheduler.triggerFactory.register(\n \"ITEMENABLE\",\n (logic, scheduler) => new ItemDynaLogicTrigger(logic, scheduler)\n );\n ibiz.scheduler.triggerFactory.register(\n \"ITEMBLANK\",\n (logic, scheduler) => new ItemDynaLogicTrigger(logic, scheduler)\n );\n ibiz.scheduler.triggerFactory.register(\n \"TIMER\",\n (logic, scheduler) => new TimerTrigger(logic, scheduler)\n );\n ibiz.scheduler.triggerFactory.register(\n \"CUSTOM\",\n (logic, scheduler) => new CustomTrigger(logic, scheduler)\n );\n ibiz.scheduler.triggerFactory.register(\n \"VIEWEVENT\",\n (logic, scheduler) => new ViewEventTrigger(logic, scheduler)\n );\n ibiz.scheduler.executorFactory.register(\n \"SCRIPT\",\n (logic, scheduler) => new ScriptExecutor(logic, scheduler)\n );\n ibiz.scheduler.executorFactory.register(\n \"APPDEUILOGIC\",\n (logic, scheduler) => new AppDEUILogicExecutor(logic, scheduler)\n );\n ibiz.scheduler.executorFactory.register(\n \"DEUILOGIC\",\n (logic, scheduler) => new AppDEUILogicExecutor(logic, scheduler)\n );\n ibiz.scheduler.executorFactory.register(\n \"APPUILOGIC\",\n (logic, scheduler) => new AppUILogicExecutor(logic, scheduler)\n );\n}\n\n// src/install.ts\nfunction install() {\n const { ibiz: ibiz2 } = window;\n ibiz2.util = new GlobalUtil();\n ibiz2.hub = new AppHub();\n ibiz2.register = new RegisterCenter();\n ibiz2.config = new GlobalConfig();\n ibiz2.auth = new AuthService();\n ibiz2.engine = new EngineFactory();\n installCommand();\n presetUIActionProvider();\n installLogicSchedule();\n}\n\n// src/plugin/plugin-static-resource/plugin-static-resource.ts\nvar import_path_browserify = __toESM(require_path_browserify(), 1);\nvar PluginStaticResource = class {\n /**\n * 插件静态资源工具类.\n *\n * @author chitanda\n * @date 2022-11-03 10:11:41\n * @param {string} mateUrl import.mate.url\n */\n constructor(mateUrl) {\n /**\n * 已经输出过路径的 style 标签\n *\n * @author chitanda\n * @date 2023-03-23 10:03:38\n * @protected\n * @type {Map<string, null>}\n */\n this.styleElementMap = /* @__PURE__ */ new Map();\n this.url = new URL(mateUrl);\n const dir = import_path_browserify.default.dirname(this.url.pathname);\n this.baseDir = dir;\n }\n /**\n * 合并输出静态资源目录\n *\n * @author chitanda\n * @date 2022-11-03 10:11:39\n * @param {string} pathStr\n * @return {*} {string}\n */\n dir(pathStr) {\n return import_path_browserify.default.resolve(this.baseDir, pathStr);\n }\n /**\n * 加载样式静态资源\n *\n * @author chitanda\n * @date 2023-03-23 10:03:49\n * @param {string[]} urls\n * @return {*} {Promise<void>}\n */\n async loadStyle(urls) {\n const all = urls.map((styleUrl) => {\n const url = this.dir(styleUrl);\n if (this.styleElementMap.has(url)) {\n return false;\n }\n this.styleElementMap.set(url, null);\n return new Promise((resolve, reject) => {\n const linkDom = document.createElement(\"link\");\n linkDom.setAttribute(\"type\", \"text/css\");\n linkDom.setAttribute(\"rel\", \"stylesheet\");\n linkDom.setAttribute(\"href\", url);\n linkDom.onload = resolve;\n linkDom.onerror = reject;\n document.head.appendChild(linkDom);\n });\n });\n try {\n await Promise.all(all);\n } catch (error) {\n ibiz.log.error(error);\n }\n }\n};\n\n// src/plugin/remote-plugin-item/remote-plugin-item.ts\nvar RemotePluginItem = class {\n /**\n * Creates an instance of RemotePluginItem.\n *\n * @author chitanda\n * @date 2023-02-02 15:02:13\n * @param {string} tag 插件标识名称\n * @param {string} repo 插件路径\n * @param {RemotePluginConfig} config\n */\n constructor(tag, repo, config) {\n this.tag = tag;\n this.repo = repo;\n this.config = config;\n }\n};\n\n// src/controller/constant/control/form/form-notify.state.ts\nvar FormNotifyState = /* @__PURE__ */ ((FormNotifyState2) => {\n FormNotifyState2[\"LOAD\"] = \"LOAD\";\n FormNotifyState2[\"DRAFT\"] = \"DRAFT\";\n FormNotifyState2[\"SAVE\"] = \"SAVE\";\n return FormNotifyState2;\n})(FormNotifyState || {});\n\n// src/controller/constant/control/grid/grid-notify.state.ts\nvar GridNotifyState = /* @__PURE__ */ ((GridNotifyState2) => {\n GridNotifyState2[\"LOAD\"] = \"LOAD\";\n GridNotifyState2[\"DRAFT\"] = \"DRAFT\";\n GridNotifyState2[\"SAVE\"] = \"SAVE\";\n return GridNotifyState2;\n})(GridNotifyState || {});\n\n// src/controller/constant/control/panel/panel-notify.state.ts\nvar PanelNotifyState = /* @__PURE__ */ ((PanelNotifyState2) => {\n PanelNotifyState2[\"LOAD\"] = \"LOAD\";\n PanelNotifyState2[\"DRAFT\"] = \"DRAFT\";\n PanelNotifyState2[\"SAVE\"] = \"SAVE\";\n return PanelNotifyState2;\n})(PanelNotifyState || {});\n\n// src/controller/common/view/view.controller.ts\nimport { createUUID as createUUID2, notNilEmpty as notNilEmpty6 } from \"qx-util\";\nimport { IBizContext as IBizContext2, RuntimeError as RuntimeError31 } from \"@ibiz-template/core\";\n\n// src/controller/utils/loading/loading.state.ts\nimport { NOOP } from \"@ibiz-template/core\";\n\n// src/controller/utils/counter/counter.ts\nimport { RuntimeError as RuntimeError29 } from \"@ibiz-template/core\";\nvar Counter = class {\n /**\n * Creates an instance of Counter.\n * @author lxm\n * @date 2022-09-19 11:09:57\n * @param {() => void} callback 回调函数,在计数归零的时候被调用\n */\n constructor(callback) {\n this.callback = callback;\n /**\n * 计数\n *\n * @author lxm\n * @date 2022-09-19 11:09:30\n * @type {number}\n */\n this.count = 0;\n /**\n * 计数器状态\n * 调用过一次回调后就会变为使用过的状态,任何操作都不会执行\n *\n * @author lxm\n * @date 2022-09-21 19:09:21\n * @private\n * @type {('Unused' | 'Used')}\n */\n this.state = \"Unused\";\n /**\n * 是否可以重复使用\n *\n * @author lxm\n * @date 2022-09-21 19:09:22\n * @protected\n * @type {boolean}\n */\n this.reusable = true;\n }\n /**\n * 增加计数,返回增加后的计数\n *\n * @author lxm\n * @date 2022-08-18 21:08:22\n */\n increment() {\n if (this.state === \"Used\") {\n return this.count;\n }\n this.count += 1;\n return this.count;\n }\n /**\n * 减少计数,当计数为0时触发回调\n *\n * @author lxm\n * @date 2022-08-18 21:08:22\n */\n decrement(callback2) {\n if (this.state === \"Used\") {\n return;\n }\n if (this.count === 0) {\n throw new RuntimeError29(\"\\u9519\\u8BEF\\u7684\\u8C03\\u7528\\uFF01decrement\\u4E0D\\u80FD\\u5BF9count\\u4E3A0\\u8C03\\u7528\");\n }\n this.count -= 1;\n if (this.count === 0) {\n if (callback2) {\n callback2();\n } else if (this.callback) {\n this.callback();\n }\n if (!this.reusable) {\n this.state = \"Used\";\n }\n }\n }\n /**\n * 销毁方法,解除关联\n *\n * @author lxm\n * @date 2022-09-19 11:09:27\n */\n destroy() {\n this.callback = void 0;\n }\n};\n\n// src/controller/utils/loading/loading.state.ts\nvar LoadingState = class {\n constructor() {\n /**\n * 当前的loading状态,多次loading叠加时,只有所有loading都结束才会变回false。\n *\n * @author lxm\n * @date 2022-09-19 11:09:43\n * @readonly\n * @type {boolean}\n */\n this.isLoading = false;\n /**\n * loading计数器\n *\n * @author lxm\n * @date 2022-09-19 11:09:08\n * @private\n */\n this.counter = new Counter(NOOP);\n }\n /**\n * 开始loading\n *\n * @author lxm\n * @date 2022-09-19 11:09:55\n */\n begin() {\n this.isLoading = true;\n this.counter.increment();\n }\n /**\n * 结束loading\n *\n * @author lxm\n * @date 2022-09-19 11:09:34\n */\n end() {\n this.counter.decrement(() => {\n this.isLoading = false;\n });\n }\n};\n\n// src/controller/ctx/ctx.ts\nimport { QXEvent as QXEvent2 } from \"qx-util\";\n\n// src/controller/ctx/ctx.state.ts\nvar CTXState = class {\n};\n\n// src/controller/ctx/ctx.ts\nvar CTX = class {\n /**\n * Creates an instance of CTX.\n * @author lxm\n * @date 2023-07-06 09:43:47\n * @param {CTX} [parent] 父级上下文环境对象\n */\n constructor(parent) {\n this.parent = parent;\n /**\n * CTX事件\n * @author lxm\n * @date 2023-04-26 07:54:46\n * @protected\n */\n this.evt = new QXEvent2();\n /**\n * 当前视图控制器集合(包含自身视图控制器,部件控制器,和下一层级的视图的控制器)\n * @author lxm\n * @date 2023-03-28 02:25:59\n * @protected\n */\n this.controllersMap = /* @__PURE__ */ new Map();\n this.state = new CTXState();\n }\n /**\n * 初始化上下文环境对象\n * @author lxm\n * @date 2023-03-27 01:54:18\n * @param {V} controller 当前视图的控制器\n * @return {*} {Promise<void>}\n */\n async init(controller) {\n this.view = controller;\n this.registerController(controller.model.name, controller);\n }\n /**\n * 销毁ctx\n * @author lxm\n * @date 2023-03-28 02:29:45\n */\n destroy() {\n this.controllersMap.clear();\n this.view = null;\n this.state = null;\n }\n /**\n * 修改上下文环境状态\n * @author lxm\n * @date 2023-03-27 01:50:38\n * @param {Required<CTXState>} nextState\n * @return {*} {Promise<void>}\n */\n async setState(nextState) {\n Object.assign(this.state, nextState);\n }\n /**\n * 开启视图加载\n * @author lxm\n * @date 2023-03-27 01:59:22\n */\n startLoading() {\n this.view.startLoading();\n }\n /**\n * 关闭视图加载\n * @author lxm\n * @date 2023-03-27 01:59:35\n */\n endLoading() {\n this.view.endLoading();\n }\n /**\n * 注册控制器到上下文里\n * @author lxm\n * @date 2023-03-28 02:26:46\n * @param {string} name\n * @param {IController} c\n */\n registerController(name, c) {\n this.controllersMap.set(name, c);\n this.evt.emit(\"onRegister\", name, c);\n }\n /**\n * 获取指定名称的控制器\n * @author lxm\n * @date 2023-04-25 10:14:42\n * @param {string} name\n * @param {boolean} [traceRoot=false] 是否跨越视图作用域,一路向根上找。\n * @return {*} {(IController | undefined)}\n */\n getController(name, traceRoot = false) {\n if (this.controllersMap.has(name)) {\n return this.controllersMap.get(name);\n }\n if (this.parent && traceRoot) {\n return this.parent.getController(name);\n }\n }\n /**\n * 获取顶级视图,\n * - 模态等打开方式是根ctx的视图\n * - 路由模式是首页下一级的视图,即第二级路由的视图\n * @author lxm\n * @date 2023-07-14 11:59:30\n * @return {*} {IViewController}\n */\n getTopView() {\n if (!this.parent) {\n return this.view;\n }\n if (this.view.modal.routeDepth === 2) {\n return this.view;\n }\n return this.parent.getTopView();\n }\n};\n\n// src/controller/utils/counter/mounted-counter.ts\nvar ActivityCounter = class extends Counter {\n constructor() {\n super(...arguments);\n this.reusable = false;\n /**\n * 登记情况,记录了登记的名称和是否已经出席\n *\n * @author lxm\n * @date 2022-09-21 18:09:27\n * @type {string[]}\n */\n this.registration = /* @__PURE__ */ new Map();\n }\n /**\n * 登记要等待的名称\n *\n * @author lxm\n * @date 2022-09-21 18:09:01\n * @param {string} name\n */\n enroll(name) {\n if (this.state === \"Unused\" && !this.registration.has(name)) {\n this.registration.set(name, false);\n this.increment();\n }\n }\n /**\n * 出席,只有登记了的名称才能出席,当所有登记的名称出席后计数器结束,触发回调\n *\n * @author lxm\n * @date 2022-09-21 18:09:09\n * @param {string} name\n */\n attend(name) {\n if (this.registration.has(name) && this.registration.get(name) === false) {\n this.registration.set(name, true);\n this.decrement();\n }\n }\n};\n\n// src/controller/utils/button-state/ui-action-button.state.ts\nvar UIActionButtonState = class {\n constructor(name, appId, uiActionId) {\n this.disabled = false;\n this.visible = true;\n this.loading = false;\n /**\n * 是否有权限\n */\n this.permitted = true;\n /**\n * 没权限时是否隐藏\n */\n this.noPermissionHidden = true;\n /**\n * 有权限时且没数据时,是否禁用\n */\n this.noDataDisabled = false;\n /**\n * 是否初始化\n */\n this.isInit = false;\n this.name = name;\n this.uiActionId = uiActionId;\n this.appId = appId;\n }\n /**\n * 初始化,没有界面行为id就是普通的buttonState\n * @author lxm\n * @date 2023-05-10 02:16:22\n * @protected\n * @return {*}\n */\n async init() {\n if (!this.uiActionId) {\n this.isInit = true;\n return;\n }\n const uiAction = await getUIActionById(this.uiActionId);\n [, this.appDeName] = this.uiActionId.split(\"@\");\n if (!uiAction) {\n return;\n }\n const {\n dataAccessAction,\n noPrivDisplayMode,\n actionTarget,\n uiactionMode,\n uiactionTag\n } = uiAction;\n this.dataAccessAction = dataAccessAction;\n if (noPrivDisplayMode === 1) {\n this.noPermissionHidden = false;\n } else if (noPrivDisplayMode === 6) {\n this.visible = false;\n }\n if (actionTarget && actionTarget !== \"NONE\" || uiactionMode === \"SYS\" && [\n \"Save\",\n \"SaveAndExit\",\n \"SaveAndNew\",\n \"Edit\",\n \"Remove\",\n \"RemoveAndExit\"\n ].includes(uiactionTag)) {\n this.noDataDisabled = true;\n }\n this.isInit = true;\n }\n /**\n * 计算按钮权限\n * @author lxm\n * @date 2023-05-11 07:46:09\n * @protected\n * @param {IData} [data] 数据\n * @param {string} [appDeId] 数据对应的实体id\n * @return {*}\n */\n async calcPermission(data, appDeId) {\n if (!this.dataAccessAction) {\n return;\n }\n const app = await ibiz.hub.getApp(this.appId);\n if (this.appDeName && appDeId && !appDeId.includes(this.appDeName)) {\n ibiz.log.warn(\n \"\".concat(this.uiActionId, \"\\u754C\\u9762\\u884C\\u4E3A\\u7684\\u5B9E\\u4F53\").concat(this.appDeName, \"\\u548C\\u6570\\u636E\\u7684\\u5B9E\\u4F53\").concat(appDeId, \"\\u4E0D\\u4E00\\u81F4\")\n );\n }\n this.permitted = await app.authority.calcByDataAccessAction(\n this.dataAccessAction,\n data,\n appDeId\n );\n }\n async update(data, appDeId) {\n if (!this.isInit) {\n await this.init();\n }\n await this.calcPermission(data, appDeId);\n if (!this.permitted) {\n this.disabled = true;\n this.visible = !this.noPermissionHidden;\n } else {\n this.visible = true;\n this.disabled = this.noDataDisabled && !data;\n }\n }\n};\n\n// src/controller/utils/button-state/button-container.state.ts\nvar ButtonContainerState = class {\n constructor() {\n Object.defineProperty(this, \"children\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"visible\", {\n enumerable: true,\n configurable: true,\n get: () => {\n if (this.children.length === 0) {\n return false;\n }\n return !!this.children.find((child) => child.visible);\n }\n });\n }\n addState(name, state) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: state\n });\n this.children.push(state);\n }\n setLoading(name) {\n this.children.forEach((child) => {\n if (child.setLoading) {\n child.setLoading(name);\n } else {\n child.loading = !name ? false : child.name === name;\n }\n });\n }\n async update(data, appDeId) {\n await Promise.all(\n this.children.map((child) => {\n return child.update(data, appDeId);\n })\n );\n }\n};\n\n// src/controller/utils/event/qx-event-ex.ts\nimport { clearAll, QXEvent as QXEvent3 } from \"qx-util\";\nvar QXEventEx = class extends QXEvent3 {\n constructor() {\n super(...arguments);\n this.anyEventFns = [];\n }\n /**\n * 监听任意事件,返回值必须是数组,用来返回单次或多次的正常回调的结果。\n * 该返回值数组会在正常事件触发的时候展开合并入正常事件的结果里,模拟多次监听的常规返回。\n * @author lxm\n * @date 2023-03-23 09:50:33\n * @param {(...args: any[]) => Promise<any[]>} fn\n */\n onAll(fn) {\n if (!this.anyEventFns.includes(fn)) {\n this.anyEventFns.push(fn);\n }\n }\n emit(name, ...args) {\n super.emit(name, ...args);\n this.anyEventFns.forEach((fn) => {\n fn(name, ...args);\n });\n }\n async asyncEmit(name, ...args) {\n const resultPromise1 = super.asyncEmit(name, ...args);\n const all = this.anyEventFns.map((fn) => fn(name, ...args));\n const resultPromise2 = Promise.all(all);\n const resultArr1 = await resultPromise1;\n const resultArr2 = await resultPromise2;\n return resultArr1.concat(...resultArr2);\n }\n reset() {\n super.reset();\n clearAll(this.anyEventFns);\n }\n};\n\n// src/controller/utils/event/controller-event.ts\nvar ControllerEvent = class {\n /**\n * Creates an instance of ControllerEvent.\n * @author lxm\n * @date 2023-04-25 09:30:28\n * @param {() => Omit<EventBase, 'eventName'>} getBaseArgs 提供当前控制器环境内的通用的事件参数\n */\n constructor(getBaseArgs) {\n this.getBaseArgs = getBaseArgs;\n /**\n * 事件对象\n *\n * @author lxm\n * @date 2022-08-30 14:08:40\n */\n this.evt = new QXEventEx();\n }\n /**\n * 发送事件,并等待所有监听器执行完毕\n * @author lxm\n * @date 2023-03-30 06:49:12\n * @template K\n * @param name 事件名称\n * @param args 事件参数\n * @return {*} {Promise<void>}\n */\n async emit(name, args) {\n await this.evt.asyncEmit(name, {\n ...this.getBaseArgs(),\n eventName: name,\n // 合并抛出事件时候的输入的参数\n ...args || {}\n });\n }\n /**\n * 订阅指定事件\n * @author lxm\n * @date 2023-03-30 06:46:59\n * @param name 事件名\n * @param fn 事件回调\n */\n on(name, fn) {\n this.evt.on(name, fn);\n }\n /**\n * 订阅任意事件\n * @author lxm\n * @date 2023-03-30 06:48:28\n * @param fn 事件回调\n */\n onAll(fn) {\n this.evt.onAll(fn);\n }\n /**\n * 销毁方法,清空\n *\n * @author lxm\n * @date 2022-08-30 17:08:41\n */\n destroy() {\n this.getBaseArgs = void 0;\n this.evt.reset();\n }\n};\n\n// src/controller/utils/util/util.ts\nimport { isNil as isNil10 } from \"ramda\";\nfunction isValueChange(value, value2) {\n if ((isNil10(value) || value === \"\") && (isNil10(value2) || value2 === \"\")) {\n return false;\n }\n return value !== value2;\n}\nfunction getOriginData(data) {\n let singleData = Array.isArray(data) ? data[0] : data;\n if (singleData && singleData instanceof ControlVO) {\n singleData = singleData.getOrigin();\n }\n return singleData;\n}\n\n// src/controller/utils/value-rule/value-rule.ts\nimport { RuntimeError as RuntimeError30 } from \"@ibiz-template/core\";\nimport { isNilOrEmpty as isNilOrEmpty6 } from \"qx-util\";\nfunction generateRules(itemVRs, name, valueItemName) {\n const rules = [];\n itemVRs.forEach((item) => {\n const { valueRuleType } = item;\n const sysRule = item.sysValueRule;\n const deRule = item.defvalueRule;\n if (valueRuleType === \"SYSVALUERULE\" && sysRule) {\n if (sysRule.ruleType === \"REG\") {\n rules.push({\n pattern: new RegExp(sysRule.regExCode),\n message: sysRule.ruleInfo,\n trigger: \"change blur\"\n });\n } else if (sysRule.ruleType === \"SCRIPT\") {\n rules.push({\n validator: (rule, value, callback, source) => {\n if (!value) {\n return true;\n }\n try {\n ScriptFactory.execScriptFn(\n { rule, value, callback, source },\n sysRule.scriptCode\n );\n } catch (error) {\n console.error(error);\n return false;\n }\n return true;\n },\n trigger: \"change blur\"\n });\n }\n } else if (valueRuleType === \"DEFVALUERULE\" && deRule) {\n const valueName = valueItemName || name;\n rules.push({\n validator: (rule, value, callback, source) => {\n if (isNilOrEmpty6(source[valueName])) {\n return true;\n }\n const { isPast, infoMessage } = verifyDeRules(\n valueName,\n source,\n deRule.groupCond\n );\n if (!isPast) {\n callback(new RuntimeError30(infoMessage || deRule.ruleInfo));\n }\n return true;\n },\n trigger: \"change blur\"\n });\n }\n });\n return rules;\n}\n\n// src/controller/common/base.controller.ts\nvar SELF_KEY = \"__self\";\nvar BaseController = class {\n /**\n * Creates an instance of BaseController.\n * @author lxm\n * @date 2023-04-26 06:46:21\n * @param {CTX} ctx 跨组件上下文环境,内部机制不暴露\n */\n constructor(model, context, params, ctx) {\n this.model = model;\n this.context = context;\n this.params = params;\n this.ctx = ctx;\n this.state = {};\n /**\n * 控制器名称,作为检索控制器的唯一标识\n * @author lxm\n * @date 2023-04-26 08:22:30\n * @type {string}\n */\n this.name = \"\";\n /**\n * 事件触发器\n * @author lxm\n * @date 2023-04-25 09:36:31\n * @type {ControllerEvent}\n */\n this.evt = new ControllerEvent(\n this.getEventArgs.bind(this)\n );\n /**\n * 计算父子加载顺序的计数器\n * @author lxm\n * @date 2023-04-26 06:14:22\n * @type {ActivityCounter}\n */\n this.mountCounter = new ActivityCounter(this.mounted.bind(this));\n /**\n * 子组件的名称,会监听指定子组件的生命周期,影响自身的声明周期。\n * @author lxm\n * @date 2023-04-26 08:10:57\n * @type {string[]}\n */\n this.childNames = [];\n this.name = model.name || model.id;\n this.initState();\n }\n /**\n * 中间层的基类才会使用,用于在内部使用自身的事件,事件类型不是泛型用evt就能正确推导出来。\n * @author lxm\n * @date 2023-05-18 02:48:57\n * @readonly\n * @protected\n */\n get _evt() {\n return this.evt;\n }\n /**\n * 初始化state的属性放,一般情况下只需要把对应的默认值直接赋值给state\n * 如果需要构造特殊class类型的state,可以重写该方法时,\n * 一开就new一个state替换当前的state,然后调用super初始化默认值\n * @author lxm\n * @date 2023-05-18 02:57:00\n * @protected\n */\n initState() {\n this.state.isCreated = false;\n this.state.isMounted = false;\n }\n /**\n * 获取事件的基础参数\n * @author lxm\n * @date 2023-04-25 11:03:44\n * @return {*} {Omit<EventBase, 'eventName'>}\n */\n getEventArgs() {\n return {\n context: this.context,\n params: this.params,\n data: [],\n targetName: this.model.name,\n view: this.ctx.view\n };\n }\n /**\n * 生命周期-创建完成,不推荐子类实现\n * @author lxm\n * @date 2023-04-25 11:08:54\n */\n async created() {\n this.mountCounter.enroll(SELF_KEY);\n await this.onCreated();\n this.state.isCreated = true;\n this.force(() => {\n this.mountSelf();\n });\n ibiz.log.debug(\"\".concat(this.constructor.name, \":\").concat(this.name, \" onCreated\"));\n this._evt.emit(\"onCreated\", void 0);\n }\n /**\n * 生命周期-创建完成,实际执行逻辑,子类重写用这个\n * @author lxm\n * @date 2023-04-25 11:12:02\n */\n async onCreated() {\n this.ctx.evt.on(\"onForecast\", (name) => {\n if (this.childNames.includes(name)) {\n this.mountCounter.enroll(name);\n }\n });\n this.ctx.evt.on(\"onRegister\", (name, c) => {\n if (this.childNames.includes(name)) {\n c.evt.on(\"onMounted\", () => {\n this.mountCounter.attend(name);\n });\n }\n });\n }\n /**\n * 自身挂载方法,默认是设置自身已经挂载的状态,用于计数器计算。\n * 异步方法,可以把异步初始化放这里,执行完后调基类的mountSelf,mounted声明周期就可以在异步之后触发\n * @author lxm\n * @date 2023-04-27 03:34:35\n */\n async mountSelf() {\n const isSelfMounted = this.mountCounter.registration.get(SELF_KEY);\n if (!isSelfMounted) {\n this.mountCounter.attend(SELF_KEY);\n }\n }\n /**\n * 生命周期-加载完成,不推荐子类实现\n * 外部不允许调用,只能被mountCounter触发,保证mounted时机正确,外部调用mountSelf\n *\n * @author lxm\n * @date 2023-04-25 11:08:54\n */\n async mounted() {\n await this.onMounted();\n this.state.isMounted = true;\n ibiz.log.debug(\"\".concat(this.constructor.name, \":\").concat(this.name, \" onMounted\"));\n this._evt.emit(\"onMounted\", void 0);\n }\n /**\n * 生命周期-加载完成,实际执行逻辑,子类重写用这个\n * 放置等自身后需要等待的子组件都加载完成后才会执行的逻辑。\n * @author lxm\n * @date 2023-04-25 11:12:02\n */\n async onMounted() {\n }\n /**\n * 生命周期-销毁完成,不推荐子类实现\n * @author lxm\n * @date 2023-04-25 11:08:54\n */\n async destroyed() {\n await this.onDestroyed();\n ibiz.log.debug(\"\".concat(this.constructor.name, \":\").concat(this.name, \" onDestroyed\"));\n this._evt.emit(\"onDestroyed\", void 0);\n this.evt.destroy();\n }\n /**\n * 生命周期-销毁完成,实际执行逻辑,子类重写用这个\n * @author lxm\n * @date 2023-04-25 11:12:02\n */\n async onDestroyed() {\n }\n /**\n * 强制更新视图(框架级)\n *\n * @author chitanda\n * @param {() => void} [callback] 更新之后,组件渲染完成后的回调\n * @date 2022-07-24 14:07:38\n */\n force(_callback) {\n }\n /**\n * 获取指定名称的控制器\n * @author lxm\n * @date 2023-04-25 10:14:42\n * @param {string} name\n * @param {boolean} [traceRoot=false] 是否跨越视图作用域,一路向根上找。\n * @return {*} {(BaseController | undefined)}\n */\n getController(name, traceRoot = false) {\n return this.ctx.getController(name, traceRoot);\n }\n getTopView() {\n return this.ctx.getTopView();\n }\n /**\n * 当前视图上下文内有新的控制产生时触发回调。\n * @author lxm\n * @date 2023-04-26 07:59:41\n * @param {(name: string, c: IController) => void} cb\n */\n listenNewController(cb) {\n this.ctx.evt.on(\"onRegister\", cb);\n }\n};\n\n// src/controller/common/view/view.controller.ts\nvar ViewController = class extends BaseController {\n /**\n * Creates an instance of ViewController.\n * @author lxm\n * @date 2023-04-20 02:05:33\n * @param {T} model 视图模型\n * @param {IContext} context 上下文\n * @param {IParams} [params] 视图参数\n * @param {CTX} [ctx]\n */\n constructor(model, context, params, ctx) {\n const _model = ibiz.util.layoutPanel.fill(model);\n super(_model, IBizContext2.create({}, context), params || {}, new CTX(ctx));\n this.modal = new Modal({});\n this.providers = {};\n this.engines = [];\n this.slotProps = {};\n this.counters = {};\n /**\n * 视图loading状态控制器\n *\n * @author lxm\n * @date 2022-09-19 14:09:12\n */\n this.viewLoading = new LoadingState();\n /**\n * 视图是否已经关闭\n *\n * @author chitanda\n * @date 2023-07-12 22:07:52\n * @protected\n * @type {boolean}\n */\n this.isCloseView = false;\n this._isActive = true;\n if (ctx) {\n ctx.registerController(this.model.name, this);\n }\n this.ctx.init(this);\n this.initEngines();\n }\n get _evt() {\n return this.evt;\n }\n /**\n * 上层视图控制器\n * @author lxm\n * @date 2023-07-06 09:48:16\n * @readonly\n * @type {(IViewController | undefined)}\n */\n get parentView() {\n var _a;\n return (_a = this.ctx.parent) == null ? void 0 : _a.view;\n }\n get isActive() {\n return this._isActive;\n }\n /**\n * 视图重新激活\n *\n * @author chitanda\n * @date 2023-07-12 17:07:55\n */\n onActivated() {\n this._isActive = true;\n ibiz.log.debug(\"\\u89C6\\u56FE[\".concat(this.model.name, \"](\").concat(this.model.id, \")\\u6FC0\\u6D3B\"));\n }\n /**\n * 视图暂时停用\n *\n * @author chitanda\n * @date 2023-07-12 17:07:06\n */\n onDeactivated() {\n this._isActive = false;\n ibiz.log.debug(\"\\u89C6\\u56FE[\".concat(this.model.name, \"](\").concat(this.model.id, \")\\u6682\\u505C\"));\n }\n /**\n * 初始化引擎\n * @author lxm\n * @date 2023-05-23 06:43:53\n * @protected\n */\n initEngines() {\n const engineModels = getViewEngines(this.model);\n if (engineModels.length) {\n engineModels.forEach((engine) => {\n const ins = ibiz.engine.getEngine(engine, this);\n if (ins) {\n this.engines.push(ins);\n }\n });\n } else {\n const ins = ibiz.engine.getEngine(\n { engineCat: \"VIEW\", engineType: this.model.viewType },\n this\n );\n if (ins) {\n this.engines.push(ins);\n }\n }\n }\n /**\n * 初始化计数器\n * @return {*}\n * @author: zhujiamin\n * @Date: 2023-07-10 14:53:53\n */\n async initCounters() {\n const viewLayoutPanel = this.model.viewLayoutPanel;\n const { appCounterRefs } = viewLayoutPanel;\n if (appCounterRefs && appCounterRefs.length > 0) {\n try {\n await Promise.all(\n appCounterRefs.map(async (counterRef) => {\n const counter = await CounterService.getCounterByRef(\n counterRef,\n this.context\n );\n this.counters[counterRef.id] = counter;\n })\n );\n } catch (error) {\n console.error(error);\n }\n }\n }\n initState() {\n super.initState();\n this.state.isLoading = false;\n this.state.caption = this.model.caption;\n this.state.srfactiveviewdata = null;\n }\n async onCreated() {\n await super.onCreated();\n this.modal.hooks.beforeDismiss.tapPromise(async (modalData) => {\n await this._evt.emit(\"onCloseView\", { ...modalData });\n });\n this._evt.emit(\"onViewInfoChange\", {\n caption: this.model.caption,\n title: this.model.title\n });\n this.handleContextParams();\n const viewLayoutPanel = this.model.viewLayoutPanel;\n this.childNames.push(viewLayoutPanel.name);\n const provider = await getControlProvider(viewLayoutPanel);\n this.providers[viewLayoutPanel.name] = provider;\n const controls = getControlsByView(this.model);\n if (controls) {\n await Promise.all(\n controls.map(async (ctrl) => {\n const ctrlProvider = await getControlProvider(ctrl);\n this.providers[ctrl.name || ctrl.id] = ctrlProvider;\n })\n );\n }\n await this.initCounters();\n const appViewLogics = getViewLogics(this.model);\n if (appViewLogics.length) {\n this.scheduler = ibiz.scheduler.createViewScheduler(appViewLogics);\n this.scheduler.defaultParamsCb = () => {\n return this.getEventArgs();\n };\n this.evt.onAll((_eventName, event) => {\n this.scheduler.triggerViewEvent(event);\n });\n }\n if (this.engines.length) {\n await Promise.all(this.engines.map((engine) => engine.onCreated()));\n }\n }\n async onMounted() {\n var _a;\n await super.onMounted();\n if (this.engines.length) {\n await Promise.all(this.engines.map((engine) => engine.onMounted()));\n }\n (_a = this.scheduler) == null ? void 0 : _a.startTimerTrigger();\n }\n async onDestroyed() {\n await super.onDestroyed();\n if (this.engines.length) {\n await Promise.all(this.engines.map((engine) => engine.onDestroyed()));\n }\n this.ctx.destroy();\n this.context.destroy();\n this.engines = [];\n if (this.scheduler) {\n this.scheduler.destroy();\n }\n ibiz.log.debug(\"\\u89C6\\u56FE[\".concat(this.model.name, \"](\").concat(this.model.id, \")\\u9500\\u6BC1\"));\n }\n /**\n * 处理上下文和导航参数相关的,如自定义导航参数的处理\n *\n * @author lxm\n * @date 2022-09-08 15:09:47\n * @protected\n */\n handleContextParams() {\n this.context.srfappid = this.model.appId;\n if (this.modal.mode === \"ROUTE\" /* ROUTE */) {\n this.context.srfsessionid = createUUID2();\n }\n const navContexts = this.model.appViewNavContexts;\n let context = {};\n if (notNilEmpty6(navContexts)) {\n context = convertNavData(navContexts, this.context, this.params);\n }\n Object.assign(this.context, context);\n const navParams = this.model.appViewNavParams;\n let params = {};\n if (notNilEmpty6(navParams)) {\n params = convertNavData(navParams, this.context, this.params);\n }\n Object.assign(this.params, params);\n if (this.state.isMounted) {\n this.callUIAction(\"Refresh\" /* REFRESH */);\n }\n }\n async call(key, args) {\n let result;\n for (const engine of this.engines) {\n result = await engine.call(key, args);\n if (result !== void 0) {\n break;\n }\n }\n return result;\n }\n async callUIAction(key, args) {\n const result = this.call(key, args);\n if (result === void 0) {\n throw new RuntimeError31(\"\\u6CA1\\u6709\\u5F15\\u64CE\\u652F\\u6301\\u9884\\u7F6E\\u754C\\u9762\\u884C\\u4E3A\".concat(key));\n }\n return result;\n }\n async closeView(modalData = { ok: false, data: [] }) {\n await this.modal.dismiss(modalData);\n }\n startLoading() {\n this.viewLoading.begin();\n this.state.isLoading = this.viewLoading.isLoading;\n }\n endLoading() {\n this.viewLoading.end();\n this.state.isLoading = this.viewLoading.isLoading;\n }\n /**\n * 设置布局面板控制器\n * @author lxm\n * @date 2023-08-01 03:28:04\n * @param {IViewLayoutPanelController} panel\n */\n setLayoutPanel(panel) {\n this.layoutPanel = panel;\n if (this.layoutPanel.state.isMounted) {\n this.mountCounter.attend(this.layoutPanel.model.name);\n } else {\n this.layoutPanel.evt.on(\"onMounted\", () => {\n this.mountCounter.attend(this.layoutPanel.model.name);\n });\n }\n }\n};\n\n// src/controller/common/view/mob-view.controller.ts\nvar MobViewController = class extends ViewController {\n};\n\n// src/controller/common/editor/editor.controller.ts\nvar EditorController = class {\n /**\n * Creates an instance of EditorController.\n * @author lxm\n * @date 2022-08-24 20:08:19\n * @param {T} model\n */\n constructor(model, parent) {\n /**\n * 占位\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 14:33:14\n */\n this.placeHolder = \"\";\n /**\n * 占位\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 14:33:14\n */\n this.editorParams = {};\n this.model = model;\n this.parent = parent;\n this.context = parent.context;\n this.params = parent.params;\n }\n /**\n * 是否只读\n *\n * @author lxm\n * @date 2022-12-12 21:12:51\n * @readonly\n */\n get readonly() {\n return !!this.model.readOnly;\n }\n /**\n * 子类不可覆盖或重写此方法,在 init 时需要重写的使用 onInit 方法。\n *\n * @author lxm\n * @date 2022-08-18 22:08:30\n * @returns {*} {Promise<void>}\n */\n async init() {\n await this.onInit();\n }\n async onInit() {\n if (this.model.placeHolder) {\n this.placeHolder = this.model.placeHolder;\n }\n if (this.model.editorParams) {\n Object.keys(this.model.editorParams).forEach((key) => {\n this.editorParams[key.toLowerCase()] = this.model.editorParams[key];\n });\n }\n }\n /**\n * 公共参数处理,计算上下文和视图参数\n *\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 15:44:14\n */\n handlePublicParams(data, context, params) {\n const { navigateContexts, navigateParams } = this.model;\n let selfContext = {};\n if (navigateContexts && data) {\n selfContext = convertNavData(navigateContexts, context, params, data);\n }\n const _context = Object.assign(context.clone(), selfContext);\n let selfParams = {};\n if (navigateParams && data) {\n selfParams = convertNavData(navigateParams, context, params, data);\n }\n const _params = { ...params, ...selfParams };\n return { context: _context, params: _params };\n }\n /**\n * 字符串转对象、数组对象\n *\n * @author chitanda\n * @date 2023-08-02 17:08:03\n * @param {string} value\n * @return {*} {(IData | IData[] | undefined)}\n */\n toObj(value) {\n if (!value) {\n return void 0;\n }\n const func = new Function(\"return (\".concat(value, \");\"));\n return func();\n }\n /**\n * 字符串布尔转布尔类型\n *\n * @author chitanda\n * @date 2023-08-02 17:08:34\n * @param {string} value\n * @return {*} {boolean}\n */\n toBoolean(value) {\n return Object.is(\"true\", value);\n }\n};\n\n// src/controller/common/editor/code-list-editor.controller.ts\nimport { RuntimeModelError as RuntimeModelError32 } from \"@ibiz-template/core\";\nvar CodeListEditorController = class extends EditorController {\n /**\n * 加载代码表数据\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 15:46:27\n */\n async loadCodeList(data) {\n const { context, params } = this.handlePublicParams(\n data,\n this.context,\n this.params\n );\n if (this.model.appCodeListId) {\n const app = await ibiz.hub.getApp(this.context.srfappid);\n let dataItems = [];\n dataItems = await app.codeList.get(\n this.model.appCodeListId,\n context,\n params\n );\n return dataItems;\n }\n throw new RuntimeModelError32(this.model, \"\\u8BF7\\u914D\\u7F6E\\u4EE3\\u7801\\u8868\");\n }\n};\n\n// src/controller/common/control/control.controller.ts\nvar ControlController = class extends BaseController {\n /**\n * Creates an instance of ControlController.\n *\n * @author chitanda\n * @date 2022-07-24 17:07:58\n * @param {T} model\n * @param {IContext} context\n * @param {IParams} [params={}]\n */\n constructor(model, context, params, ctx) {\n super(model, context, params, ctx);\n /**\n * 子部件适配器\n * @author lxm\n * @date 2023-07-19 04:14:50\n * @type {{ [key: string]: IControlProvider }}\n */\n this.providers = {};\n this.registerToCtx();\n const panelModel = ibiz.util.layoutPanel.get(\n \"\".concat(model.controlType, \"_DEFAULT\")\n );\n if (panelModel) {\n this.controlPanel = panelModel;\n }\n }\n get _evt() {\n return this.evt;\n }\n get view() {\n return this.ctx.view;\n }\n /**\n * 往ctx里注册控制器\n * @author lxm\n * @date 2023-07-31 08:37:17\n * @protected\n */\n registerToCtx() {\n this.ctx.registerController(this.model.name, this);\n }\n /**\n * 获取部件通用的事件参数\n * @author lxm\n * @date 2023-03-26 11:42:21\n * @readonly\n */\n getEventArgs() {\n const result = super.getEventArgs();\n return {\n ...result,\n data: this.getData() || [],\n ctrl: this\n };\n }\n initState() {\n super.initState();\n this.state.isLoading = false;\n }\n async onCreated() {\n var _a;\n await super.onCreated();\n if (this.controlPanel) {\n this.childNames.push(this.controlPanel.name);\n const provider = await getControlProvider(this.controlPanel);\n this.providers[this.controlPanel.name] = provider;\n }\n if ((_a = this.model.controlLogics) == null ? void 0 : _a.length) {\n this.scheduler = ibiz.scheduler.createControlScheduler(\n this.model.controlLogics\n );\n this.scheduler.defaultParamsCb = () => {\n return this.getEventArgs();\n };\n }\n }\n async onDestroyed() {\n await super.onDestroyed();\n if (this.scheduler) {\n this.scheduler.destroy();\n }\n }\n /**\n * 获取部件类型\n * @author lxm\n * @date 2023-03-28 02:23:37\n * @return {*} {string}\n */\n getControlType() {\n return this.model.controlType;\n }\n /**\n * 获取部件数据,非数据部件没有数据\n * @author lxm\n * @date 2023-03-26 11:41:51\n * @return {*} {(IData[] | null)}\n */\n getData() {\n return null;\n }\n /**\n * 开始加载\n *\n * @author chitanda\n * @date 2022-09-21 15:09:18\n * @return {*} {Promise<void>}\n */\n async startLoading() {\n this.state.isLoading = true;\n this.ctx.startLoading();\n }\n /**\n * 加载完毕\n *\n * @author chitanda\n * @date 2022-09-21 15:09:31\n * @return {*} {Promise<void>}\n */\n async endLoading() {\n this.state.isLoading = false;\n this.ctx.endLoading();\n }\n /**\n * 处理数据能力方法通用参数,返回能力执行最终使用的参数\n * @author lxm\n * @date 2023-05-23 03:12:47\n * @protected\n * @param {IDataAbilityParams} [args]\n * @return {*}\n */\n handlerAbilityParams(args) {\n const context = this.context.clone();\n const params = { ...this.params };\n const data = (args == null ? void 0 : args.data) || this.getData() || [];\n return { context, params, data };\n }\n /**\n * 设置布局面板控制器\n * @author lxm\n * @date 2023-08-01 03:28:17\n * @param {IViewLayoutPanelController} panel\n */\n setLayoutPanel(panel) {\n this.layoutPanel = panel;\n if (this.layoutPanel.state.isMounted) {\n this.mountCounter.attend(this.layoutPanel.model.name);\n } else {\n this.layoutPanel.evt.on(\"onMounted\", () => {\n this.mountCounter.attend(this.layoutPanel.model.name);\n });\n }\n }\n};\n\n// src/controller/common/control/md-control.controller.ts\nimport { isElementSame, RuntimeError as RuntimeError32 } from \"@ibiz-template/core\";\nvar MDControlController = class extends ControlController {\n get _evt() {\n return this.evt;\n }\n initState() {\n super.initState();\n this.state.items = [];\n this.state.selectedData = [];\n this.state.searchParams = {};\n this.state.noSort = false;\n this.state.sortQuery = \"\";\n this.state.curPage = 1;\n this.state.size = 20;\n this.state.total = 0;\n this.state.isLoaded = false;\n this.state.singleSelect = true;\n this.state.mdctrlActiveMode = 0;\n this.state.groups = [];\n }\n /**\n * 设置排序\n *\n * @author lxm\n * @date 2022-09-28 13:09:44\n * @param {string} key 排序字段\n * @param {string} order 排序顺序\n */\n setSort(key, order) {\n this.state.sortQuery = \"\".concat(key, \",\").concat(order);\n }\n /**\n * 获取请求过滤参数(整合了视图参数,各种过滤条件,排序,分页)\n * @author lxm\n * @date 2023-05-23 03:20:40\n * @param {IParams} [extraParams] 额外视图参数,附加在最后\n * @return {*} {Promise<IParams>}\n */\n async getFetchParams(extraParams) {\n const { curPage, size, sortQuery, noSort } = this.state;\n const resultParams = {\n ...this.params\n };\n if (size) {\n resultParams.page = curPage - 1;\n resultParams.size = size;\n }\n if (!noSort && sortQuery) {\n resultParams.sort = sortQuery;\n }\n await this._evt.emit(\"onBeforeLoad\", void 0);\n Object.assign(resultParams, {\n ...this.state.searchParams\n });\n if (extraParams) {\n Object.assign(resultParams, extraParams);\n }\n return resultParams;\n }\n /**\n * 部件加载数据行为\n *\n * @author lxm\n * @date 2022-08-19 14:08:50\n */\n async load(args = {}) {\n await this.startLoading();\n try {\n const isInitialLoad = args.isInitialLoad === true;\n const isLoadMore = args.isLoadMore === true;\n if (isInitialLoad) {\n this.state.curPage = 1;\n } else if (isLoadMore) {\n this.state.curPage += 1;\n }\n const { context } = this.handlerAbilityParams(args);\n const params = await this.getFetchParams(args == null ? void 0 : args.params);\n const res = await this.service.fetch(context, params);\n if (typeof res.total === \"number\") {\n this.state.total = res.total;\n }\n if (isLoadMore) {\n this.state.items.push(...res.data);\n } else {\n this.state.items = res.data;\n }\n await this.afterLoad(args, res.data);\n this.state.isLoaded = true;\n await this._evt.emit(\"onLoadSuccess\", {\n isInitialLoad\n });\n } finally {\n await this.endLoading();\n }\n return this.state.items;\n }\n /**\n * 部件加载后处理\n *\n * @author chitanda\n * @date 2023-06-21 15:06:44\n * @param {MDCtrlLoadParams} args 本次请求参数\n * @param {IData[]} items 上游处理的数据(默认是后台数据)\n * @return {*} {Promise<IData[]>} 返回给后续处理的数据\n */\n async afterLoad(args, items) {\n return items;\n }\n /**\n * 部件刷新,走初始加载\n * @author lxm\n * @date 2023-05-23 03:42:41\n */\n async refresh() {\n await this.load({ isInitialLoad: false });\n }\n /**\n * 删除选中的数据\n *\n * @author lxm\n * @date 2022-09-06 19:09:48\n * @returns {*} {Promise<void>}\n */\n async remove(args) {\n const { context, params, data } = this.handlerAbilityParams(args);\n if (!(data == null ? void 0 : data.length)) {\n throw new RuntimeError32(\"\\u672A\\u9009\\u4E2D\\u6570\\u636E\");\n }\n const del = await ibiz.modal.confirm({\n title: \"\\u6570\\u636E\\u5220\\u9664\",\n desc: \"\\u786E\\u8BA4\\u5220\\u9664\\u6570\\u636E\\uFF1F\"\n });\n if (!del) {\n return;\n }\n await this.startLoading();\n try {\n const deName = calcDeCodeNameById(this.model.appDataEntityId);\n await Promise.allSettled(\n data.map(async (item) => {\n if (item.srfuf !== 0 /* CREATE */) {\n const tempContext = context.clone();\n tempContext[deName] = item.srfkey;\n await this.service.remove(tempContext, params);\n }\n this.afterRemove(data);\n })\n );\n ibiz.notification.success({\n desc: \"\\u6570\\u636E[\".concat(data.map((item) => item.srfmajortext).join(\"\\u3001\"), \"]\\u5220\\u9664\\u6210\\u529F!\")\n });\n this.refresh();\n } finally {\n await this.endLoading();\n }\n this.state.selectedData = [];\n await this._evt.emit(\"onRemoveSuccess\", void 0);\n }\n /**\n * 后台删除结束后界面删除逻辑\n *\n * @author lxm\n * @date 2022-09-06 19:09:10\n * @param {IData} data\n */\n afterRemove(data) {\n const index = this.state.items.findIndex(\n (item) => item.srfkey === data.srfkey\n );\n this.state.items.splice(index, 1);\n }\n /**\n * 获取多数据部件的选中数据集合\n *\n * @author lxm\n * @date 2022-08-30 18:08:00\n * @returns {*} {IData[]}\n */\n getData() {\n return this.state.selectedData || [];\n }\n setActive(item) {\n return this._evt.emit(\"onActive\", {\n data: [item]\n });\n }\n setSelection(selection) {\n const { selectedData } = this.state;\n if (!isElementSame(selectedData, selection)) {\n this.state.selectedData = selection;\n this._evt.emit(\"onSelectionChange\", {\n data: selection\n });\n }\n }\n /**\n * 行单击事件\n *\n * @author lxm\n * @date 2022-08-18 22:08:16\n * @param {IData} data 选中的单条数据\n */\n async onRowClick(data) {\n const { selectedData } = this.state;\n const filterArr = selectedData.filter((item) => item.srfkey !== data.srfkey);\n if (filterArr.length === selectedData.length) {\n this.setSelection(\n this.state.singleSelect ? [data] : selectedData.concat([data])\n );\n } else {\n this.setSelection(filterArr);\n }\n if (this.state.mdctrlActiveMode === 1) {\n await this.setActive(data);\n }\n }\n /**\n * 行双击事件\n *\n * @author lxm\n * @date 2022-08-18 22:08:16\n * @param {IData} data 选中的单条数据\n */\n async onDbRowClick(data) {\n if (this.state.mdctrlActiveMode === 2) {\n await this.setActive(data);\n }\n }\n /**\n * 数据导入\n *\n * @author lxm\n * @date 2022-11-08 15:11:54\n * @returns {*} {Promise<void>}\n */\n async importData() {\n }\n /**\n * 数据导出\n *\n * @param {MouseEvent} event 原生js点击事件\n * @returns {*} {Promise<void>}\n * @memberof MDControlController\n */\n async exportData(_args) {\n }\n};\nexport {\n ActivityCounter,\n AppCounter,\n AppDataEntity,\n AppFuncCommand,\n Application,\n AuthService,\n AuthorityService,\n BackendUIActionProvider,\n BaseController,\n ButtonContainerState,\n CONTROL_PROVIDER_PREFIX,\n CTX,\n CTXState,\n CalendarItemData,\n CodeListEditorController,\n CodeListService,\n ControlController,\n ControlService,\n ControlType,\n ControlVO,\n ControllerEvent,\n Counter,\n CounterService,\n DECache,\n DEDQCondUtil,\n DEService,\n DEServiceUtil,\n DeAuthorityService,\n DynamicCodeListCache,\n EDITOR_PROVIDER_PREFIX,\n EditorController,\n EngineFactory,\n FORMDETAIL_PROVIDER_PREFIX,\n FormNotifyState,\n FrontUIActionProvider,\n GRIDCOLUMN_PROVIDER_PREFIX,\n GridNotifyState,\n LayoutPanelUtil,\n LoadingState,\n MDControlController,\n MDControlService,\n MDViewEngine,\n MethodDto,\n MobViewController,\n Modal,\n OpenAppViewCommand,\n PANELITEM_PROVIDER_PREFIX,\n PORTLET_PROVIDER_PREFIX,\n PSDEDQCondEngine,\n PanelNotifyState,\n PluginStaticResource,\n QXEventEx,\n RegisterCenter,\n RemotePluginItem,\n ScriptFactory,\n ScriptFunction,\n SearchFilter,\n Srfuf,\n StudioControlEvents,\n StudioPanelEvents,\n StudioViewEvents,\n SysUIActionProvider,\n SysUIActionTag,\n TreeCodeListNodeData,\n TreeDataSetNodeData,\n TreeNodeData,\n TreeStaticNodeData,\n UIACTION_PROVIDER_PREFIX,\n UIActionButtonState,\n UIActionUtil,\n UIMapField,\n VIEW_PROVIDER_PREFIX,\n ViewController,\n ViewEngineBase,\n ViewMode,\n ViewType,\n WFWithdrawUIActionProvider,\n WorkFlowService,\n calcContentAlignStyle,\n calcDeCodeNameById,\n calcDynaClass,\n calcGridLayoutPos,\n calcLayoutHeightWidth,\n calcMainStateOPPrivsStrs,\n calcNavParams,\n calcResPath,\n calcRouteContext,\n compare,\n compareNumber,\n contains,\n convertNavData,\n convertNavDataByArray,\n convertNavDataByObject,\n convertObjectToNavParams,\n execDELogic,\n execDELogicAction,\n execDELogicById,\n execFieldLogics,\n execUILogic,\n filterFieldLogics,\n filterValueRules,\n findChildFormDetails,\n findDELogic,\n findEditItem,\n findFieldById,\n findModelChild,\n formatMultiData,\n generateRules,\n getAppViewRef,\n getChildNodeRSs,\n getControl,\n getControlProvider,\n getControlsByView,\n getDeACMode,\n getEditorProvider,\n getFormDetailProvider,\n getGridColumnProvider,\n getMatchResPath,\n getOriginData,\n getPanelItemProvider,\n getPortletProvider,\n getRootNode,\n getTreeNode,\n getUIActionById,\n getUIActionProvider,\n getViewEngines,\n getViewLogics,\n getViewProvider,\n getWFContext,\n getWFSubmitViewId,\n hasDeCodeName,\n install,\n installCommand,\n isValueChange,\n matchMainState,\n openRedirectView,\n parseUserParams,\n presetUIActionProvider,\n registerControlProvider,\n registerEditorProvider,\n registerFormDetailProvider,\n registerGridColumnProvider,\n registerPanelItemProvider,\n registerPortletProvider,\n registerUIActionProvider,\n registerViewProvider,\n strContain,\n testCond,\n toLocalOpenWFRedirectView,\n verifyDeRules,\n verifyFormGroupLogic,\n verifyPanelGroupLogic\n};\n"],"names":["layoutPos","valignSelf","halignSelf","result","Object","assign","display","expression","data","ScriptFactory","execScriptFn","singleRowReturn","layout","colXS","colXSOffset","colSM","colSMOffset","colMD","colMDOffset","colLG","colLGOffset","calcActualValues","span","offset","xs","sm","md","lg","width","height","widthMode","heightMode","concat","model","originParams","deName","navFilter","pickupDEFName","navContexts","navParams","context","params","derValue","resultContext","resultParams","deSrfkey","srfkey","toLowerCase","tempContext","convertNavData","tempParams","_appView","paths","sort","a","b","length","pathArr","obj","forEach","key","val","async","deDELogicId","dataEntityId","deLogic","appId","appDataEntity","ibiz","hub","getAppDataEntity","findDELogic","findDeLogic","srfappid","RuntimeError10","execDELogic","vrs","name","filter","vr","checkMode","belongName","deformItemName","degridEditItemName","parent","childDetails","detailType","deformTabPages","deformDetails","grid","codeName","_a","degridEditItems","find","item","itemVRs","valueItemName","rules","valueRuleType","sysRule","sysValueRule","deRule","defvalueRule","ruleType","push","pattern","RegExp","regExCode","message","ruleInfo","trigger","validator","rule","value","callback","source","scriptCode","error","console","valueName","isNilOrEmpty6","isPast","infoMessage","verifyDeRules","groupCond","RuntimeError30","view","_b","appViewRefs","viewLayoutPanel","id","tree","args","parentId","getRootNode","detreeNodeRSs","nodeRs","parentDETreeNodeId","searchMode","hasQuery","controls","appDEACModeId","entityId","appDEACModes","mode","provider","editorType","editorStyle","getProvider2","log","register","get","FORMDETAIL_PROVIDER_PREFIX","columnType","enableRowEdit","GRIDCOLUMN_PROVIDER_PREFIX","getProvider4","singleData","Array","isArray","ControlVO","getOrigin","itemType","predefinedType","getProvider5","rawItem","portletType","PORTLET_PROVIDER_PREFIX","detreeNodes","node","viewType","viewStyle","getProvider7","param09","srfprocessinstanceid","link","type","sequenceFlowView","sequenceFlowMobView","toUpperCase","env","isMob","submitViewRef","viewRef","refAppViewId","calcDeCodeNameById","isNotNil","ibiz2","window","util","GlobalUtil","AppHub","RegisterCenter","config","GlobalConfig","auth","AuthService","engine","EngineFactory","installCommand","presetUIActionProvider","scheduler","LogicSchedulerCenter","triggerFactory","logic","ItemDynaLogicTrigger","TimerTrigger","CustomTrigger","ViewEventTrigger","executorFactory","ScriptExecutor","AppDEUILogicExecutor","AppUILogicExecutor","value2","isNil10","userParams","navigateContexts","navigateParams","other","prototype","hasOwnProperty","call","param","indexOf","splitArr","split","CONTROL_PROVIDER_PREFIX","EDITOR_PROVIDER_PREFIX","PANELITEM_PROVIDER_PREFIX","VIEW_PROVIDER_PREFIX","verifyFormGroupLogic","logicType","isGroupLogic","children","defdlogics","RuntimeModelError2","groupOP","childLogic","notMode","isSingleLogic","testCond","defdname","condOP","ModelError","verifyPanelGroupLogic","isGroupLogic2","panelItemLogics","RuntimeModelError3","isSingleLogic2","dstModelField","condOp","ModelError2","cb","mod","__create","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","require_path_browserify","exports","module","assertPath","path2","TypeError","JSON","stringify","normalizeStringPosix","allowAboveRoot","code","res","lastSegmentLength","lastSlash","dots","i","charCodeAt","lastSlashIndex","lastIndexOf","slice","posix","resolve","cwd","resolvedPath","resolvedAbsolute","arguments","process","normalize","isAbsolute","trailingSeparator","join","joined","arg","relative","from","to","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","out","_makeLong","dirname","hasRoot","end","matchedSlash","basename","ext","start","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","format","pathObject","sep","dir","root","base","_format","parse","ret","delimiter","win32","constructor","this","enableDataInfoBar","editShowMode","editSaveMode","appMenu","enableEcho","codeList","timeout","providers","Map","newProvider","set","unRegister","delete","func","naviDatas","origins","isEmpty","toString","convertNavDataByArray","convertNavDataByObject","naviData","notNilEmpty","rawValue","findOrigin","isNilOrEmpty","reg2","test","valueKey","substring","convertObjectToNavParams","formatMultiData","dataArr","naviArr","data1","naviParam","map","findModelChild","models","matchMainState","mainStateAppDEFieldIds","demainStates","values","field","stateValue","state2Value","state3Value","stateValues","calcMainStateOPPrivsStrs","mainState","app","getApp","demainStateOPPrivs","opprivAllowMode","mainStateOPPrivIds","opprivs","deopprivs","includes","pop","appDELogicId","entity","appDELogics","filterFieldLogics","resultIds","appDEFields","computeAppDEFLogicId","onChangeAppDEFLogicId","defaultValueAppDEFLogicId","findFieldById","fieldId","getUIActionById","getUIAction","rootNode","getControlsByView","getViewLogics","viewLogics","appViewLogics","getViewEngines","appViewEngines","openRedirectView","appView","navContext","appViewNavContexts","navContextData","clone","appViewNavParams","navParamsData","appDataEntityId","curData","actionId","getDataAppDEActionId","service","deService","getService","loading","showRedirect","exec","ok","linkUrl","linkurl","dev","startsWith","Promise","newWindow","open","toLocalOpenWFRedirectView","hideRedirect","rdTag","rdView","defView","srfWf","srfwf","notNilEmpty2","wf","typeValue","typeFieldId","typeAppDEFieldId","isNilOrEmpty2","indexTypeAppDEFieldId","formTypeAppDEFieldId","calcDERdTag","rdTagItems","wfRdTag","deRdTag","allRefViews","redirectAppViewRefs","refView","realTitle","viewId","tag","title","RuntimeModelError","commands","execute","OpenAppViewCommand","TAG","openDERedirectView","queryStr","decodeURIComponent","qs","srfdename","RuntimeError","deCodeName","deName2DeCodeName","deRdViewCodeName","deRdView","getAppView","wfTag","processDefinitionKey","wfVersion","op","is","contains","compare","isNilOrEmpty3","notNilEmpty3","isNil","strContain","RuntimeError2","number1","Number","number2","isNaN","compareNumber","date1","Date","getTime","date2","val2","index","DefaultOptions","ScriptFunction","argKeys","options","formatCode","calcArgKeys","scriptFn","Function","keys","presetParams","Set","convertArgs","_params","mergeRight","document","selector","className","getElementsByClassName","scriptArgs","static","createScriptFn","condition","flag","condType","isGroupCondition","childRules","conds","array","operateTag","isReverse","len","temp","logicForEach","defname","isSimpleCondition","errorInfo","paramType","form","primaryModel","isNil2","isEmpty2","RuntimeError3","checkFieldSimpleRule","paramValue","keyCond","isValueRange2Condition","viewValue","minNumber","indexOfMin","maxNumber","indexOfMax","isNilOrEmpty4","checkFieldRegExRule","parseFloat","checkFieldValueRangeRule","minValue","includeMinValue","maxValue","includeMaxValue","isRegExCondition","isStringLengthCondition","minLength","maxLength","viewValueLength","checkFieldStringLengthRule","isSysValueRuleCondition","selfError","resultBoolean","checkFieldScriptRule","strReg","LayoutPanelUtil","cache","fill","viewModel","useDefaultLayout","calcLayoutTag","has","appCounterRefs","calcIndexViewLayoutTag","blankMode","mainMenuAlign","exTag","ControlType","ControlType2","ViewType","ViewType2","ViewMode","ViewMode2","SysUIActionTag","SysUIActionTag2","StudioViewEvents","onViewMounted","onViewDestroyed","StudioPanelEvents","onClick","onChange","onEnter","onLeave","StudioControlEvents","onBeforeLoad","onLoadSuccess","onLoadError","onBeforeLoadDraft","onLoadDraftSuccess","onLoadDraftError","onBeforeSave","onSaveSuccess","onSaveError","onBeforeRemove","onRemoveSuccess","onRemoveError","CLICK","Modal","opts","viewUsage","hooks","shouldDismiss","AsyncSeriesHook","beforeDismiss","_dismiss","routeDepth","dismiss","injectDismiss","allowClose","destroy","debug","clear","_OpenAppViewCommand","bind","appViewId","RuntimeError4","redirectView","openMode","noWaitRoute","openIndexViewTab","ModelError3","openModal","openPopover","event","openDrawer","openUserCustom","openView","modal","popover","drawer","custom","_AppFuncCommand","appFuncId","appFunc","getAppFunc","RuntimeError5","appFuncType","_context","openAppView","openHtmlPage","openPdAppFunc","executeJavaScript","ModelError4","url","htmlPageUrl","warn","AppFuncCommand","AppCounter","destroyed","IBizContext","evt","QXEvent","isDestroyed","setParams","action","getAppDEActionId","RuntimeModelError4","interval","load","clone2","destroyInterval","intervalTimer","setInterval","getSize","timer","clearInterval","emit","refresh","fn","immediate","on","notNilEmpty4","offChange","off","getCounter","reset","PSModelCondEngineBase","psModelGroupCondBase","createPSModelGroupCond","testSingleCond","strCondOp","objValue","objCondValue","nRet","err","getPSModelGroupCondBase","PSModelCondBase","getCondOp","setCondOp","PSModelSingleCondBase","arr","nCount","bOpStart","bParamStart","bValueStart","strText","setParam","setValueType","setValue","getValueType","strValueType","getValue","strValue","getParamType","strParamType","setParamType","getParam","strParam","PSModelGroupCondBase","_PSModelGroupCondBase","super","childCondList","bNotMode","bNotStart","bCondStart","setNotMode","list","RuntimeError6","child","isNotMode","getChildPSModelCondBases","PSDEDQGroupCond","PSDEDQSingleCond","_PSDEDQCondEngine","cond","isEmpty3","bAnd","bRet","childCond","valType","PARAMTYPE_WEBCONTEXT","PARAMTYPE_DATACONTEXT","createPSModelSingleCond","PSDEDQCondEngine","dataSet","groups","dedqgroupConditions","calcCond","items","condArr","dedqconditions","ModelError5","fieldName","condValue","WeakMap","DynamicCodeListCache","isPredefined","initPromise","ModelError6","convertData","valueAppDEFieldId","textAppDEFieldId","text","srfmajortext","freeze","size","res2","net","appDEDataSetId","RuntimeModelError5","resultItems","enableCache","cacheData2","expirationTime","promise","cacheTimeout","waitTime","isNil3","cacheData","isExistSrfKey","funcName","isNil4","isEmpty4","RuntimeError7","isExistSessionId","srfsessionid","DECache","cacheMap","forceAdd","getCacheByTag","forceUpdate","clone3","forceDelete","srfKey","add","isNil5","isEmpty5","createUUID","srftempdate","update","Error","createBatch","entities","updateBatch","deleteBatch","srfKeys","notRemoveKeys","checkData","getList","findIndex","generatePred","equals","where","reg","getMatchResPath","filterItems","requestPaths","str","path","match","every","calcResPath","replace","SearchFilter","page","sortField","sortMode","isNil6","isEmpty6","query","srfparentkey","srfparentdename","CodeListService","appModel","allCodeLists","getStatic","codeItems","formatStaticItems","codeItemValueNumber","setCodeList","getCodeList","isValueNumber","codeItem","_codeItem","color","dynamicCache","init","RuntimeError8","codeListType","getDynamicCodeList","CounterService","counterMap","counter2","counter","appCounter","RuntimeModelError6","WorkFlowService","commonBaseUrl","appContext","appData","srfsystemid","getBaseUrl","getActiveData","taskDefinitionKey","deKeyValue","post","activedata","request","method","responseType","taskId","methodName","wfStart","wfSubmit","wfReassign","wfAddStepBefore","wfSendBack","wfSendCopy","RuntimeError9","Srfuf","Srfuf2","AppDataEntity","_AppDataEntity","srfuf","_srfkey","enumerable","configurable","clone4","_data","keyAppField","keyAppDEFieldId","majorAppField","majorAppDEFieldId","major","defineProperties","properties","_entity","MethodDto","_MethodDto","dto","dtoMap","fields","appDEMethodDTOFields","isLocalMode","storageMode","isNilOrEmpty5","getFieldDto","refAppDataEntityId","local","j","ModelError7","all","datum","sets","entityData","methodDto","appDEMethodDTOs","refAppDEMethodDTOId","Method","input","appDEMethodDTOId","appDEMethodInput","output","appDEMethodReturn","actionType","requestMethod","put","RuntimeModelError7","calcPath","curPath","codeName2","createEntity","DELogicLinkCond","DELogicLinkSingleCond","srcParam","srcLogicParamId","dstParam","dstLogicParamId","dstField","dstFieldName","ctx","dst","RuntimeModelError8","src","ModelError8","DELogicLinkGroupCond","_DELogicLinkGroupCond","bol","RuntimeModelError9","judge","DELogicNode","links","srcNode","dstNode","delogicLinkGroupCond","defaultLink","DEActionNode","dstAppDataEntityId","dstAppDEActionId","dstDELogicParamId","retDELogicParamId","RuntimeModelError10","requestData","viewParams","StartNode","_ctx","EndNode","isEndNode","returnParamId","returnType","ModelError9","handleSrcVal","srcValParams","srcDELogicParamId","srcValueType","srcFieldName","srcValue","clone5","ModelError10","srcField","PrepareParamNode","nodeParams","delogicNodeParams","nodeParam","paramAction","setParamValue","resetParam","copyParam","bindParam","renewParam","appendParam","sortParam","ModelError11","srcVal","clone6","dstIndex","srcIndex","srcSize","insertIndex","_srcIndex","_srcSize","splice","dstSortDir","DataSetNode","dstAppDEDataSetId","BindParamNode","RuntimeModelError11","ResetParamNode","RuntimeModelError12","RenewParamNode","RuntimeModelError13","CopyParamNode","RuntimeModelError14","clone7","SortParamNode","RuntimeModelError15","AppendParamNode","RuntimeModelError16","ThrowExceptionNode","errorCode","HttpError","response","status","statusText","DELogic","nodes","delogicNodes","RuntimeModelError17","logicNodeType","logicNode","ModelError13","delogicParams","calc","m","default","appGlobalParam","clone8","entityListParam","entityPageParam","ModelError12","entityParam","lastReturnParam","appContextParam","simpleListParam","simpleParam","cloneParam","envParam","fileListParam","fileParam","filterParam","lastParam","originEntity","sessionParam","renew","thenId","initLogicParams","defaultParamName","deLogicParams","startDELogicNodeId","deepExec","parallelOutput","deLogicMap","deDELogic","execDELogicAction","HttpResponse2","HttpError2","execFieldLogics","fieldLogics","DEActionMethod","RuntimeModelError18","handle","actionMode","getDraft","remove","createTemp","getTemp","getDraftTemp","removeTemp","updateTemp","needResourceKey","s","HttpResponse3","FetchMethod","items2","searchLocal","HttpResponse4","dataSetType","fetchCodeListSet","ModelError14","ascSort","nullData","undefinedData","emptyData","equals2","isEmpty7","pred","where2","nullPred","undefinedPred","emptyPred","queryParamKeys","quickSearchAppDEFieldIds","selectLocal","isNil7","descSort","clone9","appCodeListId","RuntimeModelError19","DEService","methodMap","file","exportData","dataExport","fetchAction","resPath","exportUrl","getMethod","appDEMethods","methodType","ModelError15","params2","RuntimeError11","_ControlVO","isNil8","$origin","srfdeid","srfdecodename","srfkeyfile","srfmajorfile","$dataUIMap","mapField","dataKey","linkProperty","isOriginField","uiKey","writable","setOrigin","ControlService","dataUIMap","initUIDataMap","handleResponse","toUIData","DeAuthorityService","fetchControlAction","appDEMethodId","getAction","getControlAction","getDraftAction","getDraftControlAction","removeAction","removeControlAction","createAction","createControlAction","updateAction","updateControlAction","_dataExport","RuntimeError12","headers","total","entityModel","dataAccessAction","srfopprivs","calcByDeMainState","enableDEMainState","AuthorityService","constructorCache","resCodes","enablePermission","RuntimeError13","unires","enablepermissionvalid","calcByResCode","resCode","appDeId","opPriv","getOPPriv","mapSysUniResCode","calcByDataAccessAction","loginname","password","TreeNodeData","parentNodeData","leaf","nodeId","DEServiceUtil","deData","nodeValue","parentValueLevel","isRequestNeed","isNil9","navId","bkColor","bkcolorAppDEFieldId","bkcolor","beginTime","beginTimeAppDEFieldId","colorAppDEFieldId","content","contentAppDEFieldId","endTime","endTimeAppDEFieldId","icon","iconAppDEFieldId","idAppDEFieldId","level","levelAppDEFieldId","tag2","tag2AppDEFieldId","tagAppDEFieldId","tips","tipsAppDEFieldId","RuntimeError14","clearTempCache","Application","Net","baseURL","baseUrl","authority","loadAppModelStyle","remoteModelUrl","then","dom","createElement","setAttribute","responseURL","URL","pathname","innerHTML","head","appendChild","catch","appFuncs","appDEUIActions","deUILogicId","appDEUILogics","convert","appMap","apps","view2appMap","views","dataEntities","viewConfigs","viewConfig","RuntimeError15","defaultAppIndexViewName","calcAppViewId","ids","registerModelLoaderProvider","modelLoaderProvider","registerApp","registerAppView","registerAppDataEntity","setAppView","hasAppView","createApp","RuntimeError16","getAppDataEntityByCodeName","viewEngines","getEngine","engineType","engineCat","ViewEngineBase","initViewState","toolbar","getController","leftToolbar","rightToolbar","footerToolbar","layoutPanel","childNames","calcViewHeaderVisible","controller","panelItems","view_header","state","visible","calcViewFooterVisible","view_footer","_args","getData","_c","_d","showHeader","showCaptionBar","view_captionbar","lefttoolbar","righttoolbar","view_toolbar","showFooter","RuntimeError17","srfactiveviewdata","dataInfo","xdataControlName","searchForm","searchBar","xdataControl","onCreated","onMounted","openData","calcButtonState","searchParams","getSearchParams","view_searchform","formExists","keepAlive","expandSearchForm","noLoadDefault","loadDefault","toggleFilter","newData","importData","copy","triggerCustom","copyMode","RuntimeModelError20","srfcopymode","isInitialLoad","addParams","view_searchbar","searchformContainer","getProvider","getControlProvider","controlType","controlStyle","UIACTION_PROVIDER_PREFIX","registerUIActionProvider","getUIActionProvider","uiactionMode","RuntimeError18","UILogicLinkCond","UILogicLinkSingleCond","RuntimeModelError21","ModelError16","UILogicLinkGroupCond","_UILogicLinkGroupCond","deuilogicLinkConds","RuntimeModelError22","UILogicNode","deuilogicLinks","linkMode","deuilogicLinkGroupCond","ModelError17","DEActionNode2","dstDEUILogicParamId","retDEUILogicParamId","RuntimeModelError23","DEUIActionNode","dstAppDEUIActionId","parameters","RuntimeModelError24","actionData","UIActionUtil","execAndResolved","StartNode2","EndNode2","ModelError18","PrepareJSParamNode","deuilogicNodeParams","ModelError20","srcDEUILogicParamId","clone10","ModelError19","handleSrcVal2","ViewCtrlInvokeNode","invokeMethod","invokeCtrlId","invokeParamId","RuntimeModelError25","invokeParam","RuntimeError19","invokeCtrl","isFunction","UILogic","deuilogicNodes","RuntimeModelError26","ModelError22","deuilogicParams","activeContainerParam","ctrl","activeCtrlParam","ctrlParam","control","RuntimeError20","activeViewParam","applicationParam","ModelError21","navContextParam","navViewParamParam","routeViewSessionParam","viewNavDataParam","viewSessionParam","dstDEUILogicNodeId","startDEUILogicNodeId","uiLogicMap","execUILogic","deUILogic","getDEUILogic","RuntimeError21","uiLogic","RuntimeError22","closeView","callUIAction","UIActionProviderBase","reloadData","closeEditView","appDEUILogicId","uilogicAttachMode","RuntimeModelError27","isConfirm","returnError","_result","execAction","cancel","nextResult","doNextAction","nextContext","nextParams","enableConfirm","confirmMsg","confirm","nextActionId","nextId","resultData","actionTarget","originData","valueItem","paramItem","unshift","isMultiData","BackendUIActionProvider","actionResult","entityName","RuntimeModelError28","handleParams","frontPSAppView","frontAppViewId","srfactionparam","successMsg","success","isArray2","SysUIActionProvider","uIActionTag","uiactionTag","FrontUIActionProvider","frontProcessType","StringUtil","RuntimeModelError29","doOther","ModelError23","el","target","WFWithdrawUIActionProvider","_action","isCloseView","desc","frontUIActionProvider","backendUIActionProvider","sysUIActionProvider","wfWithdrawUIActionProvider","LogicExecutor","_executeParams","RuntimeError23","isRowReturn","convertScriptArgs","RuntimeError24","paramKeys","convertFun","executeParams","RuntimeModelError30","LogicScheduler","logics","triggers","executors","executor","createExecutor","createTrigger","bindExecutor","getExecuteParams","defaultParams","defaultParamsCb","mergeLeft","getMatchTriggers","matchParams","triggerAndExecute","triggerItemDynaLogic","itemName","triggerType","triggerItemVisible","triggerItemEnable","triggerItemBlank","startTimerTrigger","ControlLogicScheduler","ViewLogicScheduler","logicTrigger","triggerViewEvent","eventName","constructorMap","ModelError24","ModelError25","createViewScheduler","createControlScheduler","LogicTrigger","RuntimeError25","RuntimeError26","RuntimeError27","builtinAppUILogic","executeOpenDataAppUILogic","executeNewDataAppUILogic","appUILogic","rest","RuntimeError28","openViewRef","openDataAppView","RuntimeModelError31","notNilEmpty5","enableWizardAdd","enableBatchAdd","batchAddOnly","newDataAppView","newViewRef","getWizardNewViewRef","ModelError26","wizardAppView","newDataAppViews","selectData","indexType","findView","refMode","listenEventNames","names","eventNames","import_path_browserify","isNodeMode","except","__copyProps","__esModule","__toESM","FormNotifyState","mateUrl","styleElementMap","baseDir","pathStr","urls","styleUrl","reject","linkDom","onload","onerror","repo","FormNotifyState2","GridNotifyState","GridNotifyState2","PanelNotifyState","PanelNotifyState2","Counter","count","reusable","increment","decrement","callback2","RuntimeError29","LoadingState","isLoading","NOOP","begin","CTXState","CTX","QXEvent2","controllersMap","registerController","nextState","startLoading","endLoading","c","traceRoot","getTopView","ActivityCounter","registration","enroll","attend","QXEventEx","uiActionId","disabled","permitted","noPermissionHidden","noDataDisabled","isInit","uiAction","appDeName","noPrivDisplayMode","calcPermission","addState","setLoading","QXEvent3","anyEventFns","onAll","resultPromise1","asyncEmit","resultPromise2","resultArr1","resultArr2","clearAll","ControllerEvent","getBaseArgs","SELF_KEY","BaseController","getEventArgs","mountCounter","mounted","initState","_evt","isCreated","isMounted","targetName","force","mountSelf","onDestroyed","_callback","listenNewController","ViewController","IBizContext2","engines","slotProps","counters","viewLoading","_isActive","initEngines","parentView","isActive","onActivated","onDeactivated","engineModels","ins","counterRef","getCounterByRef","caption","tapPromise","modalData","handleContextParams","ctrlProvider","initCounters","_eventName","createUUID2","notNilEmpty6","RuntimeError31","setLayoutPanel","panel","EditorController","placeHolder","editorParams","readonly","readOnly","onInit","handlePublicParams","selfContext","selfParams","toObj","toBoolean","ControlController","dataItems","RuntimeModelError32","registerToCtx","panelModel","controlPanel","controlLogics","getControlType","handlerAbilityParams","selectedData","noSort","sortQuery","curPage","isLoaded","singleSelect","mdctrlActiveMode","setSort","order","extraParams","isLoadMore","getFetchParams","fetch","afterLoad","RuntimeError32","allSettled","afterRemove","notification","setActive","setSelection","selection","isElementSame","filterArr"],"mappings":"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"}
|