isdata-customer-sdk 0.2.72 → 0.2.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/cjs/chat.js +1 -0
  2. package/dist/cjs/chat.js.map +1 -0
  3. package/dist/cjs/dify.js +1 -0
  4. package/dist/cjs/dify.js.map +1 -0
  5. package/dist/cjs/event.js +1 -0
  6. package/dist/cjs/event.js.map +1 -0
  7. package/dist/cjs/i18n.js +1 -0
  8. package/dist/cjs/i18n.js.map +1 -0
  9. package/dist/cjs/iframe.js +1 -0
  10. package/dist/cjs/iframe.js.map +1 -0
  11. package/dist/cjs/index.js +1 -0
  12. package/dist/cjs/index.js.map +1 -0
  13. package/dist/cjs/portal.js +1 -0
  14. package/dist/cjs/portal.js.map +1 -0
  15. package/dist/cjs/security.js +1 -0
  16. package/dist/cjs/security.js.map +1 -0
  17. package/dist/cjs/sms.js +1 -0
  18. package/dist/cjs/sms.js.map +1 -0
  19. package/dist/cjs/utils.js +1 -0
  20. package/dist/cjs/utils.js.map +1 -0
  21. package/dist/esm/chat.js +1 -0
  22. package/dist/esm/chat.js.map +1 -0
  23. package/dist/esm/dify.js +1 -0
  24. package/dist/esm/dify.js.map +1 -0
  25. package/dist/esm/event.js +1 -0
  26. package/dist/esm/event.js.map +1 -0
  27. package/dist/esm/i18n.js +1 -0
  28. package/dist/esm/i18n.js.map +1 -0
  29. package/dist/esm/iframe.js +1 -0
  30. package/dist/esm/iframe.js.map +1 -0
  31. package/dist/esm/index.js +1 -0
  32. package/dist/esm/index.js.map +1 -0
  33. package/dist/esm/portal.js +1 -0
  34. package/dist/esm/portal.js.map +1 -0
  35. package/dist/esm/security.js +1 -0
  36. package/dist/esm/security.js.map +1 -0
  37. package/dist/esm/sms.js +1 -0
  38. package/dist/esm/sms.js.map +1 -0
  39. package/dist/esm/utils.js +1 -0
  40. package/dist/esm/utils.js.map +1 -0
  41. package/dist/index.common.js +5 -24
  42. package/dist/index.common.js.map +1 -1
  43. package/dist/index.umd.js +2 -2
  44. package/dist/index.umd.js.map +1 -1
  45. package/dist/index.umd.min.js +3 -3
  46. package/dist/index.umd.min.js.map +1 -1
  47. package/package.json +88 -18
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/api/event.js","../../node_modules/querystringify/index.js","../../src/api/request.js","../../src/api/portal.js","../../node_modules/ua-parser-js/src/main/ua-parser.mjs","../../src/api/i18n/core.js","../../src/api/i18n/smardaten_i18n/table_i18n.js","../../src/api/i18n/smardaten_i18n/catalog_i18n.js","../../src/api/i18n/commom_i18n/common_i18n.js","../../src/api/i18n/commom_i18n/attribute_i18n.js","../../src/api/i18n/smardaten_i18n/calendar_i18n.js","../../src/api/i18n/smardaten_i18n/dialog_i18n.js","../../src/api/i18n/commom_view.js","../../src/api/i18n/i18n.js","../../src/api/security.js","../../src/api/utils.js","../../src/api/iframe.js","../../src/api/chat/ChatClientMgr.js","../../src/api/chat.js","../../src/api/dify.js","../../src/api/sms.js"],"sourcesContent":["/**\r\n * 注册事件监听器\r\n * @param {} eventName \r\n * @param {*} actionFun \r\n */\r\nexport const registerEventListener = (eventName,actionFun) =>{\r\n let eventBus = window.rjEventCenter;\r\n if(!eventBus)\r\n {\r\n initEventCenter();\r\n eventBus = window.rjEventCenter;\r\n }\r\n if (eventBus && eventBus.register) {\r\n eventBus.register(eventName, actionFun);\r\n }\r\n}\r\n\r\n/**\r\n * 初始化事件中心\r\n */\r\nexport const initEventCenter = () =>{\r\n if (!window.rjEventCenter) {\r\n console.log(`初始化事件中心:时间戳: ${new Date().toLocaleString()}`);\r\n let eventBus = require('./eventBus').default;\r\n window.rjEventCenter = eventBus;\r\n }\r\n else\r\n {\r\n console.log(`事件中心已经初始化,不需要重新初始化:时间戳: ${new Date().toLocaleString()}`);\r\n }\r\n}\r\n\r\n/**\r\n * 销毁事件中心\r\n */\r\nexport const destroyEventCenter = () =>{\r\n if (window.rjEventCenter) {\r\n window.rjEventCenter.clearAll();\r\n window.rjEventCenter = null;\r\n console.log(`事件中心已清理:时间戳: ${new Date().toLocaleString()}`);\r\n }\r\n}\r\n\r\n\r\n/**\r\n * 移除事件监听器\r\n * @param {*} eventName \r\n * @param {*} actionFun \r\n */\r\nexport const removeEventListener = (eventName,actionFun) =>{\r\n let eventBus = window.rjEventCenter;\r\n if (eventBus && eventBus.unregister) {\r\n eventBus.unregister(eventName, actionFun);\r\n }\r\n}\r\n\r\nexport const fireEvent = (eventName,eventData) =>{\r\n let eventBus = window.rjEventCenter;\r\n eventData.eventKey=eventName;\r\n if (eventBus && eventBus.fireEvent) {\r\n eventBus.fireEvent(eventName, eventData);\r\n }\r\n}\r\n\r\n/**\r\n * 检查是否有事件监听器\r\n * @param {*} eventName \r\n * @returns \r\n */\r\nexport const hasListener = (eventName) =>{\r\n let eventBus = window.rjEventCenter;\r\n if (eventBus && eventBus.hasListener) {\r\n return eventBus.hasListener(eventName);\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n}\r\n\r\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","import axios from \"axios\"\r\nimport qs from \"querystringify\"\r\n\r\nlet apiContextPath = \"\"\r\n// const onlineDevelopmentMode = process.env.VUE_APP_ONLINE_DEVELOPMENT_MODE === \"true\" || process.env.REACT_APP_ONLINE_DEVELOPMENT_MODE === \"true\"\r\n// if (process.env.NODE_ENV === \"development\" && !onlineDevelopmentMode) {\r\n// document.cookie =\r\n// \"token=eyJhbGciOiJIUzI1NiJ9.eyJsb2dpblRpbWVzdGFtcCI6MTY0NjcyMjI2ODY4NSwidXNlcklkIjoiMTIzNDU2Nzg5MCJ9.F8wr84ha-dW18J9wZOQeTXj55mXTdqKfLBeNlNueoLY\"\r\n// document.cookie =\r\n// \"refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJsb2dpblRpbWVzdGFtcCI6MTY0NjcyMjI2ODY4Nn0.TEVE_nopHNZlvSQM_RUZrLcCzkaERiHo8nz0q-ksL3E\"\r\n// document.cookie = \"username=admin\"\r\n// document.cookie = \"windowOnline=true\"\r\n// apiContextPath = \"/api\"\r\n// }\r\nexport const getInstance = (prefix = \"\") => {\r\n if (prefix) {\r\n prefix.startsWith(\"/\") && (prefix = prefix.slice(1, prefix.length))\r\n prefix.endsWith(\"/\") && (prefix = prefix.slice(0, -1))\r\n }\r\n const instance = axios.create({\r\n baseURL: `${apiContextPath}/${prefix ? prefix + \"/\" : \"\"}sdata/rest`,\r\n timeout: 60000,\r\n validateStatus: function(status) {\r\n return status >= 200 && status < 300 // default\r\n },\r\n headers:\r\n (window.location.search && qs.parse(window.location.search).token) ||\r\n window.token\r\n ? { token: qs.parse(window.location.search).token || window.token }\r\n : {}\r\n })\r\n\r\n let oldPost = instance.post;\r\n\r\n instance.post = (url, data, config)=> {\r\n let prefix =window.VITE_SERVICE_BASE_URL || \"\";\r\n if (prefix) {\r\n let newUrl = prefix + url;\r\n return oldPost.call(instance, newUrl, data, config);\r\n }\r\n return oldPost.call(instance, url, data, config);\r\n };\r\n\r\n instance.defaults.headers.post[\"Content-Type\"] = \"application/json\"\r\n\r\n instance.interceptors.response.use(\r\n response => {\r\n let { data } = response\r\n if (typeof data === \"string\") {\r\n data = JSON.parse(data)\r\n }\r\n if (data && data.status !== 200 && !(data instanceof Blob)) {\r\n return Promise.reject(response)\r\n }\r\n if (data instanceof Blob) {\r\n response.data = data\r\n return response\r\n }\r\n\r\n response.data = data && data.result\r\n return response\r\n },\r\n error => {\r\n if (error.response && error.response.status === 401) {\r\n return\r\n }\r\n\r\n return Promise.reject(error.response)\r\n }\r\n )\r\n return instance\r\n}\r\nlet prefixPath = window.prefixPath || \"\"\r\n\r\nexport default getInstance(prefixPath)\r\n","import request from \"./request\";\r\n\r\n/**\r\n * 获取门户应用ID\r\n * @param {*} isPortalAction 是否是门户操作\r\n * 如果是门户操作,则从window.appSdk.getAppId()获取\r\n * 否则从sessionStorage中获取iportal_app_id,如果没有则从appVariables中获取\r\n * @param {*} isPortalAction\r\n * @returns\r\n */\r\nexport const getPoratlAppID = () => {\r\n let portal_app_id = window.sessionStorage.getItem(\"iportal_app_id\");\r\n if (!portal_app_id) {\r\n portal_app_id = getCurrentAppID();\r\n }\r\n return portal_app_id;\r\n};\r\n\r\nexport const getCurrentAppID = () => {\r\n let app_id = window.appSdk.getAppId() || window.localStorage.MobileAppId;\r\n return app_id;\r\n};\r\n\r\n/**\r\n * 取门户应用菜单数据\r\n * @param {*} user_id 用户ID\r\n * @param {*} group_id 组织ID\r\n * @param {*} isPortalAction\r\n * @returns\r\n */\r\nexport const getAppPortalMenuDatas = async (\r\n user_id,\r\n group_id,\r\n isPortalAction,\r\n appVariables\r\n) => {\r\n //获取门户应用ID\r\n let portal_app_id = getPoratlAppID();\r\n //获取当前用户在当前组织下的角色ID\r\n let roleList = await getRoleIDsByUserAndGroupID(\r\n user_id,\r\n portal_app_id,\r\n group_id\r\n );\r\n //获取当前组织下的门户菜单数据\r\n let portalMenuDatas = await getMenuDatasByGroupID(group_id, roleList);\r\n let app_id = window.appSdk.getAppId();\r\n let menuDatas = portalMenuDatas.filter((menuData) => {\r\n // 如果是门户菜单,则直接返回true\r\n // 否则根据app_id和portal_app_id进行过滤\r\n if (isPortalAction) {\r\n return true;\r\n } else {\r\n if (menuData.app_id == portal_app_id) {\r\n return true;\r\n } else {\r\n let types = menuData.children;\r\n let hasTargetMenu = false;\r\n if (types && types.length > 0) {\r\n types.forEach((type) => {\r\n let children = type.children;\r\n if (children && children.length > 0) {\r\n let newTypeChilden = children.filter((child) => {\r\n return child.app_id === app_id;\r\n });\r\n if (newTypeChilden && newTypeChilden.length > 0) {\r\n hasTargetMenu = true;\r\n }\r\n }\r\n });\r\n }\r\n return hasTargetMenu;\r\n }\r\n }\r\n });\r\n return menuDatas;\r\n};\r\n\r\n/**\r\n * 查询当前企业门户菜单信息\r\n * @param id GroupID\r\n *\r\n */\r\nexport const getMenuDatasByGroupID = async (group_id, role_ids) => {\r\n let queryData_groupData = {\r\n param: {\r\n id: group_id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getMenuDatasByGroupID`,\r\n queryData_groupData\r\n );\r\n //所有的快捷访问菜单信息\r\n let portalMenuDatas = result.data.resultDatas;\r\n //所有的菜单类型\r\n let menuTypes = result.data.menuTypes;\r\n\r\n result = await request.post(\r\n `/dataservice/rest/orchestration/getPortalDefaultQuickMenus`,\r\n {}\r\n );\r\n\r\n let defaultMenuDatas = result.data.resultDatas;\r\n\r\n let defaultMenuType = result.data.menuTypes;\r\n\r\n let tempMenuDatas = portalMenuDatas.concat(defaultMenuDatas);\r\n\r\n let tempMenuType = menuTypes.concat(defaultMenuType);\r\n\r\n let finalMenuDatas = [];\r\n\r\n let finaMenuTypes = [];\r\n\r\n let tempMap = {};\r\n //缓存所有快捷访问菜单信息\r\n for (const tempData of tempMenuDatas) {\r\n let id = tempData.id;\r\n let isList =tempData.status==\"1\";\r\n // 只缓存启用状态的菜单\r\n if(!tempMap[id]&&isList)\r\n {\r\n finalMenuDatas.push(tempData);\r\n tempMap[id] = tempData;\r\n }\r\n }\r\n let tempTypeMap = {};\r\n //缓存所有菜单类型信息\r\n for (const tempType of tempMenuType) {\r\n let id = tempType.id;\r\n if(!tempTypeMap[id])\r\n {\r\n finaMenuTypes.push(tempType);\r\n tempTypeMap[id] = tempType;\r\n }\r\n }\r\n\r\n //如果有角色ID,则获取对应角色的快捷访问菜单映射信息\r\n if (role_ids && role_ids.length > 0) {\r\n //获取当前角色下对应的角色快捷访问菜单的映射信息(到应用自定义菜单)和快捷访问菜单的信息\r\n result = await getMenuMappingDatasByRoleIDs(role_ids, group_id);\r\n //对应角色的快捷访问菜单映射信息\r\n let quickMenuMappingDatas = result.data.quickMenuMappingDatas || [];\r\n let filterObjectMap = {};\r\n\r\n //缓存所有角色的快捷访问菜单映射信息\r\n for (const data of quickMenuMappingDatas) {\r\n let id = data.menu_mapping_id;\r\n let quickMenuMapping = tempMap[id];\r\n filterObjectMap[id] = quickMenuMapping;\r\n }\r\n //返回基于角色关联关系过滤后的快捷访问菜单信息\r\n return transformPortalData(finalMenuDatas, finaMenuTypes, filterObjectMap);\r\n } else {\r\n return transformPortalData(finalMenuDatas, finaMenuTypes, []);\r\n }\r\n};\r\n\r\n/**\r\n * 查询对应角色的门户快捷菜单映射信息\r\n * @param id GroupID\r\n *\r\n */\r\nexport const getMenuMappingDatasByRoleIDs = async (role_ids, group_id) => {\r\n let queryData_groupData = {\r\n param: {\r\n role_ids: role_ids,\r\n group_id: group_id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getQuckMenuMappingsByRoleIDs`,\r\n queryData_groupData\r\n );\r\n //获取菜单数据\r\n return result;\r\n};\r\n\r\n/**\r\n * 校验SSO页面加载是否正确\r\n * @param id GroupID\r\n *\r\n */\r\nexport const validateSSOPageLoaded = async (app_id, appSecret, returnUrl) => {\r\n let queryData_groupData = {\r\n param: {\r\n app_id: app_id,\r\n appSecret: appSecret,\r\n returnUrl: returnUrl,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/validateSSOPageLoaded`,\r\n queryData_groupData\r\n );\r\n let resultCount = result.data.count;\r\n //获取菜单数据\r\n return resultCount;\r\n};\r\n\r\n/**\r\n * 查询对应角色的门户快捷菜单信息\r\n * @param id GroupID\r\n *\r\n */\r\nexport const getRoleIDsByUserAndGroupID = async (user_id, app_id, group_id) => {\r\n let queryData = {\r\n param: {\r\n user_id: user_id,\r\n app_id: app_id,\r\n group_id: group_id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getRoleIDsByUserAndGroupID`,\r\n queryData\r\n );\r\n let role_ids = result.data.portal_role_ids;\r\n //获取菜单数据\r\n return role_ids;\r\n};\r\n\r\n/**\r\n * 获取门户知识文档的url\r\n * @param {*} kb_doc_id\r\n * @returns\r\n */\r\nexport const getPortalDocmentInfo = async (kb_doc_id) => {\r\n let queryData = {\r\n param: {\r\n kb_doc_id: kb_doc_id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getPortalDocmentInfoByKBID`,\r\n queryData\r\n );\r\n let docInfo = result.data.docInfo;\r\n return docInfo;\r\n};\r\n\r\n// export const getLoginPortalAccountKey = async (loginName,groupID) => {\r\n// let queryData = {\r\n// param: {\r\n// loginData: {\r\n// account: loginName,\r\n// group_id: groupID,\r\n// },\r\n// },\r\n// };\r\n// let result = await request.post(\r\n// `/dataservice/rest/orchestration/getLoginPortalAccountKey`,\r\n// queryData\r\n// );\r\n// return result;\r\n// };\r\n\r\n/**\r\n * 获取该平台菜单同祖先(直至根节点)得其他兄弟菜单\r\n * @param {*} menu_id \r\n * @returns \r\n */\r\nexport const getPlatformBortherMenusByMenuID =async (menu_id,role_ids,group_id) =>{\r\n let queryData_groupData = {\r\n \"param\": {\r\n \"menu_id\": menu_id,\r\n }\r\n };\r\n let result =await request.post(`/dataservice/rest/orchestration/getPlatformBortherMenusByMenuID`,queryData_groupData);\r\n let sysMenuDatas = result.data.menuDatas || [];\r\n \r\n //获取当前角色下对应的角色菜单权限的映射信息\r\n let roleMenuMappingDatas = await getPlatformMenuMappingsByRoleIDs(role_ids, group_id);\r\n let roleMenuMappingMap = {};\r\n for (const mappingData of roleMenuMappingDatas) {\r\n let menu_mapping_id = mappingData.menu_id;\r\n roleMenuMappingMap[menu_mapping_id] = mappingData;\r\n }\r\n let menuMaps = {};\r\n //缓存所有菜单信息\r\n for (const item of sysMenuDatas) {\r\n let id = item.id;\r\n let leaf_flag = item.leaf_flag;\r\n //如果是叶子节点 并且当前菜单ID在角色菜单映射信息中不存在,则跳过\r\n if(leaf_flag===1&&(!roleMenuMappingMap[id])){\r\n continue;\r\n }\r\n // 如果当前菜单ID在角色菜单映射信息中存在,则表示该角色有权限访问该菜单\r\n if (!menuMaps[id]) {\r\n // let icon =item.icon;\r\n let iconClass =\"el-icon-menu\";\r\n // if(icon){\r\n // let obj = JSON.parse(icon);\r\n // iconClass =obj?.url?`#${obj.url}`:\"el-icon-menu\";\r\n // }\r\n let tempItem = {\r\n id: item.id,\r\n index: item.id,\r\n name: item.name,\r\n isSys:true,\r\n iconClass: iconClass,\r\n actionType: item.action_type|| \"1\", // 默认值为1\r\n app_id: item.datapp_id,\r\n menu_id: item.id, \r\n url: item.url||\"\",\r\n children: item.children || [],\r\n sort: item.sort || 0,\r\n };\r\n menuMaps[id] = tempItem;\r\n }\r\n }\r\n for (const item of sysMenuDatas) {\r\n let parent_id = item.parent_id;\r\n if (!parent_id) continue;\r\n let parentItem = menuMaps[parent_id];\r\n if (parentItem) {\r\n let menuItem = menuMaps[item.id];\r\n if(!menuItem){\r\n continue;\r\n }\r\n parentItem.children.push(menuItem);\r\n }\r\n }\r\n let menuDatas = [];\r\n for (const key in menuMaps) {\r\n let item = menuMaps[key];\r\n if (item.children && item.children.length > 0) {\r\n menuDatas.push(item);\r\n let children = item.children;\r\n children.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n }\r\n }\r\n //如果没有数据,说明只有一级节点父亲\r\n if(menuDatas.length==0){\r\n for (const key in menuMaps) {\r\n let item = menuMaps[key];\r\n if (item) {\r\n menuDatas.push(item);\r\n }\r\n }\r\n }\r\n menuDatas.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n // console.log(\"getPlatformBortherMenusByMenuID\",menuDatas);\r\n //获取菜单数据\r\n return menuDatas;\r\n};\r\n\r\n\r\n\r\n/**\r\n * 通过角色IDS获取该平台菜单权限映射\r\n * @param {*} menu_id \r\n * @returns \r\n */\r\nexport const getPlatformMenuMappingsByRoleIDs =async (role_ids,app_id) =>{\r\n let queryData_groupData = {\r\n \"param\": {\r\n \"role_ids\": role_ids,\r\n \"app_id\":app_id\r\n }\r\n };\r\n let result =await request.post(`/dataservice/rest/orchestration/getPlatformMenuMappingsByRoleIDs`,queryData_groupData);\r\n let mappingDatas = result.data.mappingDatas;\r\n //获取菜单数据\r\n return mappingDatas;\r\n};\r\n\r\n\r\n/**\r\n * 转换门户菜单数据\r\n * @param {*} datas 所有的快捷菜单访问信息\r\n * @param {*} menuTypes 快捷访问菜单类型\r\n * @param {*} filterObjectMap 角色快捷菜单访问映射信息\r\n * @returns\r\n */\r\nconst transformPortalData = (datas, menuTypes, filterObjectMap) => {\r\n let menuMaps = {};\r\n let menuTypeMaps = {};\r\n let parentMaps = {};\r\n //缓存所有父亲菜单信息\r\n for (let key in filterObjectMap) {\r\n let item = filterObjectMap[key];\r\n if(!item) continue;\r\n let parent_id = item.parent_id;\r\n if (parent_id) {\r\n parentMaps[parent_id] = true;\r\n }\r\n }\r\n //缓存所有菜单信息\r\n for (const data of datas) {\r\n let id = data.id;\r\n let tempMenuData = {\r\n id: id,\r\n index: data.menu_id,\r\n name: data.title,\r\n sort: data.sort,\r\n actionType: data.actionType,\r\n url: data.url,\r\n iconClass: data.image?data.image:\"el-icon-menu\",\r\n parent_id: data.parent_id,\r\n children: [],\r\n app_id: data.app_id,\r\n menu_id: data.menu_id,\r\n beyond_type: data.menu_type ? data.menu_type : \"RJVIEW-OTHERS\",\r\n beyond_type_sort: data.menu_type_sort ? data.menu_type_sort : 999,\r\n type:\"MenuItem\",\r\n typeID:data.type,\r\n };\r\n //如果存在快捷菜单映射数据或者是主菜单入口\r\n //如果是主菜单或者存在快捷访问映射或者孩子存在快捷访问映射或者是应用默认的菜单,则纳入到菜单中\r\n if ((filterObjectMap&&filterObjectMap[id]) || data.type == \"4\" || parentMaps[id] || data.is_app_defalut==\"1\") {\r\n //TODO:判断是否有平台系统的menu_id权限,有可能有映射权限,但角色没有平台权限,则不显示\r\n menuMaps[id] = tempMenuData;\r\n }\r\n }\r\n //缓存所有菜单类型信息\r\n for (const menuData of menuTypes) {\r\n let id = menuData.id;\r\n menuTypeMaps[id] = menuData;\r\n }\r\n for (const data of datas) {\r\n let type = data.type;\r\n //5:子菜单入口\r\n if (type == \"5\") {\r\n let tempMenuData = menuMaps[data.id];\r\n //如果没有对应的菜单数据,则跳过\r\n if (!tempMenuData) continue;\r\n let parent_id = data.parent_id;\r\n let tempType = tempMenuData.beyond_type;\r\n // let tempType_sort =tempMenuData.beyond_type_sort;\r\n let tempParentMenu = menuMaps[parent_id];\r\n if (!tempParentMenu) continue;\r\n let parentTypes = tempParentMenu.children;\r\n let parentType = parentTypes.find((tempTypeItem) => {\r\n return tempTypeItem.id == tempType;\r\n });\r\n if (parentType) {\r\n let type_childens = parentType.children;\r\n type_childens.push(tempMenuData);\r\n tempMenuData.typeItem = parentType;\r\n } else {\r\n let menuTypeObj = menuTypeMaps[tempType];\r\n let parentType = menuTypeObj\r\n ? {\r\n id: tempType,\r\n index: tempType,\r\n name: menuTypeObj.title,\r\n children: [],\r\n sort: menuTypeObj.value,\r\n type:\"MenuType\",\r\n }\r\n : {\r\n id: tempType,\r\n index: tempType,\r\n name: \"其他\",\r\n children: [],\r\n sort: 999,\r\n type:\"MenuType\"\r\n };\r\n let type_childens = parentType.children;\r\n type_childens.push(tempMenuData);\r\n parentTypes.push(parentType);\r\n tempMenuData.typeItem = parentType;\r\n }\r\n }\r\n }\r\n const menuList = [];\r\n for (const data of datas) {\r\n let type = data.type;\r\n //4:主菜单入口\r\n if (type == \"4\") {\r\n let tempMenuData = menuMaps[data.id];\r\n //如果没有对应的菜单数据,则跳过\r\n if (!tempMenuData) continue;\r\n let menuTypes = tempMenuData.children;\r\n let count = 0;\r\n for (const menuType of menuTypes) {\r\n let type_childens = menuType.children;\r\n let tempCount = type_childens.length;\r\n count = count + tempCount;\r\n if (tempCount > 0) {\r\n break;\r\n }\r\n }\r\n //如果不是默认菜单,并且没有快捷访问权限,并且孩子没有快捷访问权限,则不显示\r\n if(data.is_app_defalut!=\"1\") {\r\n // 如果没有权限,也没有子菜单时 则跳过\r\n if(filterObjectMap&&!filterObjectMap[data.id]&&count==0) {\r\n continue;\r\n }\r\n }\r\n menuList.push(tempMenuData);\r\n let types = tempMenuData.children;\r\n types.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n for (let typeItem of types) {\r\n let tempArrys = typeItem.children;\r\n tempArrys.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n }\r\n }\r\n }\r\n menuList.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n // console.log(menuList);\r\n return menuList;\r\n};\r\n\r\n/**\r\n * 转换门户用户快捷菜单数据\r\n * @param {*} quickDatas\r\n * @returns\r\n */\r\nexport const transformPortalQuickMenuDatas = (quickDatas,defaultDatas) => {\r\n quickDatas = quickDatas ? quickDatas : [];\r\n defaultDatas = defaultDatas ? defaultDatas : [];\r\n let tempDatas = quickDatas.concat(defaultDatas);\r\n let tempDatasMap = {};\r\n let finalMenuDatas = [];\r\n for (const item of tempDatas) {\r\n let id = item.id;\r\n if(!tempDatasMap[id]) {\r\n tempDatasMap[id] = item;\r\n finalMenuDatas.push(item);\r\n }\r\n }\r\n let quickMenuMaps = {};\r\n for (const data of finalMenuDatas) {\r\n let id = data.id;\r\n let tempMenuData = {\r\n id: id,\r\n label: data.title,\r\n sort: data.sort,\r\n children: [],\r\n parent_id: data.parent_id,\r\n type: data.type,\r\n };\r\n quickMenuMaps[id] = tempMenuData;\r\n }\r\n for (const data of finalMenuDatas) {\r\n let tempMenuData = quickMenuMaps[data.id];\r\n //5:子菜单入口\r\n if (tempMenuData.type == \"5\") {\r\n let parent_id = tempMenuData.parent_id;\r\n let tempParentMenu = quickMenuMaps[parent_id];\r\n if (tempParentMenu) {\r\n let parentChilden = tempParentMenu.children;\r\n parentChilden.push(tempMenuData);\r\n }\r\n }\r\n }\r\n const menuList = [];\r\n for (const data of finalMenuDatas) {\r\n let tempMenuData = quickMenuMaps[data.id];\r\n //4:主菜单入口\r\n if (tempMenuData.type == \"4\") {\r\n menuList.push(tempMenuData);\r\n let tempArrys = tempMenuData.children;\r\n tempArrys.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n }\r\n }\r\n menuList.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n return menuList;\r\n};\r\n\r\nexport const transformPortalSystemMenuDatas = (datas) => {\r\n let menuMaps = {};\r\n for (const data of datas) {\r\n let id = data.id;\r\n let tempMenuData = {\r\n id: id,\r\n label: data.name,\r\n sort: data.sort,\r\n icon: data.icon,\r\n children: [],\r\n app_id: data.datapp_id,\r\n parent_id: data.parent_id,\r\n leaf_flag: data.leaf_flag,\r\n };\r\n menuMaps[id] = tempMenuData;\r\n }\r\n for (const data of datas) {\r\n let leaf_flag = data.leaf_flag;\r\n //5:子菜单入口\r\n if (leaf_flag == 1) {\r\n let tempMenuData = menuMaps[data.id];\r\n let parent_id = data.parent_id;\r\n let tempParentMenu = menuMaps[parent_id];\r\n if (tempParentMenu) {\r\n let parentChilden = tempParentMenu.children;\r\n parentChilden.push(tempMenuData);\r\n }\r\n }\r\n }\r\n const menuList = [];\r\n for (const data of datas) {\r\n let leaf_flag = data.leaf_flag;\r\n //4:主菜单入口\r\n if (leaf_flag == 0) {\r\n let tempMenuData = menuMaps[data.id];\r\n menuList.push(tempMenuData);\r\n let tempArrys = tempMenuData.children;\r\n tempArrys.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n }\r\n }\r\n menuList.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n return menuList;\r\n};\r\n\r\n/**\r\n * 获取当前用户默认的门户页面ID\r\n *\r\n * 该方法用于获取当前用户在门户中的默认页面ID\r\n * @param {信息} userData\r\n * @returns\r\n */\r\nexport const getCurrentUserPortalPageID = async (userData) => {\r\n let queryData = {\r\n param: {\r\n userData: userData,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getPortalPageID`,\r\n queryData\r\n );\r\n let portal_id = response.data.portal_id;\r\n return portal_id;\r\n};\r\n\r\n/**\r\n * 获取当前用户默认的门户页面ID\r\n *\r\n * 该方法用于获取当前用户在门户中的默认页面ID\r\n * @param {信息} userData\r\n * @returns\r\n */\r\nexport const getCurrentUserPortalMapping = async (userData) => {\r\n let queryData = {\r\n param: {\r\n userData: userData,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getPortalMappingInfo`,\r\n queryData\r\n );\r\n let portal_id = response.data.portal_info;\r\n return portal_id;\r\n};\r\n\r\n/**\r\n * 获取当前用户默认的门户页面ID\r\n *\r\n * 该方法用于获取当前用户在门户中的默认页面ID\r\n * @param {信息} userData\r\n * @returns\r\n */\r\nexport const getPortalInfosByID = async (id) => {\r\n let queryData = {\r\n param: {\r\n id: id,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getPortalInfosByID`,\r\n queryData\r\n );\r\n let portalInfo = response.data.portalInfo;\r\n return portalInfo;\r\n};\r\n\r\n/**\r\n * 通过租户名称模糊匹配获取租户信息\r\n *\r\n * @param {名称信息} name\r\n * @returns\r\n */\r\nexport const getTenetInfoByName = async (name) => {\r\n let queryData = {\r\n param: {\r\n name: name,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getTenetInfoByName`,\r\n queryData\r\n );\r\n let resultDatas = response.data.resultDatas;\r\n return resultDatas;\r\n};\r\n\r\n/**\r\n * 获取当前用户在门户中的所有映射数据\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const getUserAllMappngPortal = (data) => {\r\n let queryData = {\r\n param: {\r\n userData: data,\r\n },\r\n };\r\n return request.post(\r\n `/dataservice/rest/orchestration/getUserAllMappngPortal`,\r\n queryData\r\n );\r\n};\r\n\r\n/**\r\n * 获取用户关联门户关联映射信息\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const getPortalUserMappingInfos = async (data) => {\r\n let queryData = {\r\n param: {\r\n operateData: data,\r\n },\r\n };\r\n let responseData = await request.post(\r\n `/dataservice/rest/orchestration/getPortalUserMappingInfos`,\r\n queryData\r\n );\r\n let userMappingData = responseData.data.portalMapping;\r\n return userMappingData;\r\n};\r\n\r\n/**\r\n * 通过页面ID获取页面配置\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const getPortalPageConfig = async (pageID) => {\r\n let queryData = {\r\n param: {\r\n id: pageID,\r\n },\r\n };\r\n let pageConfigResponse = await request.post(\r\n `/dataservice/rest/orchestration/getPortalPageConfig`,\r\n queryData\r\n );\r\n let configStr = pageConfigResponse.data.portal_page_config || \"[]\";\r\n return configStr;\r\n};\r\n\r\n/**\r\n * 通过页面ID设置页面配置\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const setPortalPageConfig = (configData) => {\r\n let queryData = {\r\n param: configData,\r\n };\r\n return request.post(\r\n `/dataservice/rest/orchestration/setPortalPageConfig`,\r\n queryData\r\n );\r\n};\r\n\r\n/**\r\n * 更新用户选择的门户\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const updateUserSelectPortal = (data) => {\r\n let queryData = {\r\n param: {\r\n portalMappingData: data,\r\n },\r\n };\r\n return request.post(\r\n `/dataservice/rest/orchestration/updateUserSelectPortal`,\r\n queryData\r\n );\r\n};\r\n\r\n/**\r\n * 获取当前用户在门户中的默认页面ID\r\n *\r\n * 该方法用于获取当前用户在门户中的默认页面ID\r\n * @param {信息} userData\r\n * @returns\r\n */\r\nexport const getPortalPageMenuID = async (pageID, app_id) => {\r\n let queryData = {\r\n param: {\r\n id: pageID,\r\n appid: app_id,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getPortalPageMenuID`,\r\n queryData\r\n );\r\n let menu_id = response.data.menu_id;\r\n return menu_id;\r\n};\r\n\r\n// 查询门户映射应用信息\r\n// * @param appID 应用ID\r\n// * @param groupID 集团ID\r\nexport const getMappingAppInfoByID = async (appID, groupID) => {\r\n let queryData = {\r\n param: {\r\n appID: appID,\r\n groupID: groupID,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getPortalMappingAppInfoByID`,\r\n queryData\r\n );\r\n let appInfo = resultData.data.appInfo;\r\n return appInfo;\r\n};\r\n\r\n/**\r\n *\r\n * @returns 获取门户登录页面的公告信息\r\n */\r\nexport const getLoginPageNotices = async (groupID) => {\r\n let queryData = {\r\n param: {\r\n id: \"1005\",\r\n groupID: groupID, // 集团ID\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getNoticeInfosByAppTypeID`,\r\n queryData\r\n );\r\n let noticeInfos = resultData.data.resultDatas;\r\n return noticeInfos;\r\n};\r\n\r\n/**\r\n * 获取对应租户的组织的公告信息\r\n * @param {*} groupID \r\n * @returns \r\n */\r\nexport const getPortalNotices = async(groupID) => {\r\n let queryData={\r\n \"param\":{\r\n \"id\":groupID\r\n }\r\n };\r\n let resultData = await request.post(`/dataservice/rest/orchestration/getNoticesInfosByGroupID`, queryData);\r\n return resultData;\r\n}\r\n\r\n/**\r\n * 获取门户单点登录接入Token\r\n * @param {*} appKey\r\n * @param {*} appSecret\r\n * @returns\r\n */\r\nexport const getPortalAccessToken = async (appKey, appSecret) => {\r\n let result = await request.get(\r\n `/appAuth/getAccessToken?appKey=${appKey}&appSecret=${appSecret}`\r\n );\r\n let token = result.data;\r\n return token;\r\n};\r\n\r\n/**\r\n * 通过code和接入Token获取用户身份信息\r\n * @param {*} code\r\n * @param {*} access_token\r\n * @returns\r\n */\r\nexport const getPortalUserInfo = async (code, access_token) => {\r\n let result = await request.get(\r\n `/systhirdapp/user/getUserByCode?code=${code}&access_token=${access_token}`\r\n );\r\n let data = result.data;\r\n return data;\r\n};\r\n\r\n/**\r\n * 通过用户ID,平台类型,租户ID获取用户IM的签名ID\r\n * @param {*} userID\r\n * @param {*} platType\r\n * @param {*} groupID\r\n * @returns\r\n */\r\nexport const getPortalUserSig = async (userID, platType, groupID) => {\r\n let queryData = {\r\n param: {\r\n userID: userID,\r\n im_type: platType,\r\n group_id: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getIMUserSigByID`,\r\n queryData\r\n );\r\n let sigID = result.data.userSig;\r\n return sigID;\r\n};\r\n\r\n/**\r\n * 通过租户ID获取门户应用的客户配置\r\n * @param {*} groupID\r\n * @returns\r\n */\r\nexport const getPortalAppCustomConfig = async (groupID) => {\r\n let requestData = {\r\n param: {\r\n groupID: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getPortalAppCustomConfig`,\r\n requestData\r\n );\r\n let appInfo = result.data.configInfo;\r\n return appInfo;\r\n};\r\n\r\n/**\r\n * 查询当前企业组织的集团组织ID\r\n * @param id 组织ID\r\n *\r\n */\r\nexport const queryGroupIDByOfficeId = async (id) => {\r\n let queryData_office = {\r\n param: {\r\n id: id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getGroupIDByDptID`,\r\n queryData_office\r\n );\r\n let groupDptData = result.data.resultDptData;\r\n let group_id = groupDptData.id;\r\n return group_id;\r\n};\r\n\r\n/**\r\n * 查询app变量\r\n * @param id 组织ID\r\n *\r\n */\r\nexport const queryAppVariable = (name, appVariables) => {\r\n if (appVariables && appVariables.length > 0) {\r\n for (let i = 0; i < appVariables.length; i++) {\r\n if (appVariables[i].name == name) {\r\n return appVariables[i].default_value;\r\n }\r\n }\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getThirdAppPathByKey = async (appkey, appSecret, groupID) => {\r\n let requestData = {\r\n param: {\r\n appKey: appkey,\r\n appSecret: appSecret,\r\n groupID: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getThirdAppPathByKey`,\r\n requestData\r\n );\r\n let path = result.data.path;\r\n return path;\r\n};\r\n\r\nexport const queryAndStoreAppVariable = (name, appVariables) => {\r\n let value = window.sessionStorage.getItem(\"isdata_app_variable_\" + name);\r\n if (!value) {\r\n value = queryAppVariable(name, appVariables);\r\n if (value) {\r\n window.sessionStorage.setItem(\"isdata_app_variable_\" + name, value);\r\n }\r\n }\r\n return value;\r\n};\r\n\r\n/**\r\n * 添加或更新对象使用次数\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const addObjectUsedTimes = (data) => {\r\n let queryData = {\r\n param: {\r\n operateData: data,\r\n },\r\n };\r\n return request.post(\r\n `/dataservice/rest/orchestration/addObjectUsedTimes`,\r\n queryData\r\n );\r\n};\r\n\r\n/**\r\n * 获取对象使用次数\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const getObjectUseTimes = (data) => {\r\n let queryData = {\r\n param: {\r\n objectInfo: data,\r\n },\r\n };\r\n return request.post(\r\n `/dataservice/rest/orchestration/getObjectUseTimes`,\r\n queryData\r\n );\r\n};\r\n\r\n/**\r\n * 获取组件的页面ID\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const getPageIDByComponentID = async (componentID) => {\r\n let queryData = {\r\n param: {\r\n componentID: componentID,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getPageIDByComponentID`,\r\n queryData\r\n );\r\n let pageID = response.data.page_id;\r\n return pageID;\r\n};\r\n\r\n/**\r\n * 通过账户名获取集团组织映射数据\r\n * @param {*} account\r\n * @returns\r\n */\r\nexport const getGroupMappingsByAccount = async (account) => {\r\n let queryData = {\r\n param: {\r\n account: account,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getGourpMappingsByAccountName`,\r\n queryData\r\n );\r\n let tenetGroupDatas = resultData.data.resultGroups;\r\n return tenetGroupDatas;\r\n};\r\n\r\n/**\r\n * 通过手机号获取集团组织映射数据\r\n * @param {*} phone \r\n * @returns \r\n */\r\nexport const getGourpMappingsByPhoneNumber = async (phone) => {\r\n let queryData = {\r\n param: {\r\n phone: phone,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getGourpMappingsByPhoneNumber`,\r\n queryData\r\n );\r\n let tenetGroupDatas = resultData.data.resultGroups;\r\n return tenetGroupDatas;\r\n};\r\n\r\n/**\r\n * 查询当前企业组织的集团组织ID\r\n * @param id 组织ID\r\n *\r\n */\r\nexport const queryGroupInfosByOfficeId = async (id) => {\r\n let queryData_office = {\r\n param: {\r\n id: id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getGroupIDByDptID`,\r\n queryData_office\r\n );\r\n let groupDptData = result.data.resultDptData;\r\n return groupDptData;\r\n};\r\n\r\n/**\r\n * 查询当前企业组织信息\r\n * @param id 组织ID\r\n *\r\n */\r\nexport const getOfficeInfosByIDs = async (group_ids) => {\r\n let queryData_groupData = {\r\n param: {\r\n ids: group_ids,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getOfficeInfosByIDs`,\r\n queryData_groupData\r\n );\r\n let groupDatas = resultData.data.officeInfos;\r\n return groupDatas;\r\n};\r\n\r\n/**\r\n * 查询当前企业组织信息\r\n * @param id 组织ID\r\n *\r\n */\r\nexport const queryOfficeInfosById = async (officeID) => {\r\n let queryData = {\r\n param: {\r\n id: officeID,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getOfficeInfosByID`,\r\n queryData\r\n );\r\n let groupDptData = resultData.data.officeData;\r\n return groupDptData;\r\n};\r\n\r\n/**\r\n * 获取应用信息通过ID\r\n * @param {*} id\r\n * @returns\r\n */\r\nexport const getAPPInfosByID = async (id) => {\r\n let queryData = {\r\n param: {\r\n id: id,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getAPPInfosByID`,\r\n queryData\r\n );\r\n let groupDptData = resultData.data.appInfo;\r\n return groupDptData;\r\n};\r\n\r\nexport const getAllUserInfosByGroupID = async (groupID) => {\r\n let requestData = {\r\n param: {\r\n groupID: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getAllUserInfosByGroupID`,\r\n requestData\r\n );\r\n let data = result.data.resultDatas;\r\n return data;\r\n};\r\n\r\nexport const getChildrenOfficeInfosByID = async (officeID) => {\r\n let requestData = {\r\n param: {\r\n officeID: officeID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getChildrenOfficeInfosByID`,\r\n requestData\r\n );\r\n let data = result.data.resultDatas;\r\n return data;\r\n};\r\n\r\nexport const getPojectDptsByUserAndGroupID = async (userID, groupID) => {\r\n let requestData = {\r\n param: {\r\n userID: userID,\r\n groupID: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getPojectDptsByUserAndGroupID`,\r\n requestData\r\n );\r\n let data = {\r\n dptDatas: result.data.officeDatas,\r\n userMappings: result.data.userMappings,\r\n };\r\n return data;\r\n};\r\n\r\n/**\r\n * 添加IM签名ID映射关系\r\n */\r\nexport const addIMMapping = async (userID, platType, groupID, sigID) => {\r\n let queryData = {\r\n param: {\r\n data: {\r\n userID: userID,\r\n im_type: platType,\r\n group_id: groupID,\r\n userSig: sigID,\r\n },\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/addIMMapping`,\r\n queryData\r\n );\r\n let resultData = result.data;\r\n return resultData;\r\n};\r\n\r\nexport const getAIRobotInfos = async (userID, groupID) => {\r\n let requestData = {\r\n param: {\r\n userID: userID,\r\n groupID: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getAIRobotInfos`,\r\n requestData\r\n );\r\n let infos = result.data.robotInfos;\r\n return infos;\r\n};\r\n\r\n/**\r\n * 添加IM签名ID映射关系\r\n */\r\nexport const updateIMMapping = async (userID, platType, groupID, sigID) => {\r\n let queryData = {\r\n param: {\r\n userID: userID,\r\n im_type: platType,\r\n groupID: groupID,\r\n userSig: sigID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/updateIMMapping`,\r\n queryData\r\n );\r\n let resultData = result.data;\r\n return resultData;\r\n};\r\n\r\n/**\r\n * 获取应用自定义数据\r\n * @param {*} appID\r\n * @returns\r\n */\r\nexport const getAppCustomData = async (appID) => {\r\n let requestData = {\r\n param: {\r\n appID: appID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getAppCustomData`,\r\n requestData\r\n );\r\n let infos = result.data.customData;\r\n infos = infos ? JSON.parse(infos) : {};\r\n return infos;\r\n};\r\n\r\n/**\r\n * 获取集成应用的信息\r\n * @param {*} appID\r\n * @returns\r\n */\r\nexport const getIntegrateAppInfoByID = async (appID) => {\r\n let requestData = {\r\n param: {\r\n appID: appID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getIntegrateAppInfoByID`,\r\n requestData\r\n );\r\n let appInfo = result.data.appInfo;\r\n return appInfo;\r\n};\r\n\r\n// 更新服务器i18n文本\r\nexport const savePortalI18nText=async(key, value,lang,beyondID,i18nType)=>{\r\n let app_id =getPoratlAppID();\r\n let requestData = {\r\n param: {\r\n key: key,\r\n value: value,\r\n appID:app_id,\r\n lang:lang,\r\n beyondID:beyondID,\r\n i18nType:i18nType\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/savePortalI18nText`,\r\n requestData\r\n );\r\n let resultData = result.data.resultData;\r\n return resultData;\r\n};\r\n\r\n\r\n// 通过账户名和租户获取手机号\r\nexport const getPhoneNumberByAccountName=async(accountName,groupID)=>{\r\n let requestData = {\r\n param:{\r\n accountName: accountName,\r\n groupID: groupID,\r\n }\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getPhoneNumberByAccountName`,\r\n requestData\r\n );\r\n let phone = result.data.phone;\r\n return phone;\r\n};\r\n","// Generated ESM version of ua-parser-js\n// DO NOT EDIT THIS FILE!\n// Source: /src/main/ua-parser.js\n\n/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v2.0.6\n Copyright © 2012-2025 Faisal Salman <f@faisalman.com>\n AGPLv3 License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://uaparser.dev\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n/* jshint esversion: 6 */ \n/* globals window */\n\n\n \n //////////////\n // Constants\n /////////////\n\n var LIBVERSION = '2.0.6',\n UA_MAX_LENGTH = 500,\n USER_AGENT = 'user-agent',\n EMPTY = '',\n UNKNOWN = '?',\n TYPEOF = {\n FUNCTION : 'function',\n OBJECT : 'object',\n STRING : 'string',\n UNDEFINED : 'undefined'\n },\n\n // properties\n BROWSER = 'browser',\n CPU = 'cpu',\n DEVICE = 'device',\n ENGINE = 'engine',\n OS = 'os',\n RESULT = 'result',\n\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n MAJOR = 'major',\n MODEL = 'model',\n\n // device types\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n XR = 'xr',\n EMBEDDED = 'embedded',\n\n // browser types\n INAPP = 'inapp',\n\n // client hints\n BRANDS = 'brands',\n FORMFACTORS = 'formFactors',\n FULLVERLIST = 'fullVersionList',\n PLATFORM = 'platform',\n PLATFORMVER = 'platformVersion',\n BITNESS = 'bitness',\n CH = 'sec-ch-ua',\n CH_FULL_VER_LIST= CH + '-full-version-list',\n CH_ARCH = CH + '-arch',\n CH_BITNESS = CH + '-' + BITNESS,\n CH_FORM_FACTORS = CH + '-form-factors',\n CH_MOBILE = CH + '-' + MOBILE,\n CH_MODEL = CH + '-' + MODEL,\n CH_PLATFORM = CH + '-' + PLATFORM,\n CH_PLATFORM_VER = CH_PLATFORM + '-version',\n CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, FORMFACTORS, BITNESS],\n\n // device vendors\n AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LENOVO = 'Lenovo',\n HONOR = 'Honor',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n NVIDIA = 'Nvidia',\n ONEPLUS = 'OnePlus',\n OPPO = 'OPPO',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n\n // browsers\n CHROME = 'Chrome',\n CHROMIUM = 'Chromium',\n CHROMECAST = 'Chromecast',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n OPERA = 'Opera',\n FACEBOOK = 'Facebook',\n SOGOU = 'Sogou',\n\n PREFIX_MOBILE = 'Mobile ',\n SUFFIX_BROWSER = ' Browser',\n\n // os\n WINDOWS = 'Windows';\n \n var isWindow = typeof window !== TYPEOF.UNDEFINED,\n NAVIGATOR = (isWindow && window.navigator) ? \n window.navigator : \n undefined,\n NAVIGATOR_UADATA = (NAVIGATOR && NAVIGATOR.userAgentData) ? \n NAVIGATOR.userAgentData : \n undefined;\n\n ///////////\n // Helper\n //////////\n\n var extend = function (defaultRgx, extensions) {\n var mergedRgx = {};\n var extraRgx = extensions;\n if (!isExtensions(extensions)) {\n extraRgx = {};\n for (var i in extensions) {\n for (var j in extensions[i]) {\n extraRgx[j] = extensions[i][j].concat(extraRgx[j] ? extraRgx[j] : []);\n }\n }\n }\n for (var k in defaultRgx) {\n mergedRgx[k] = extraRgx[k] && extraRgx[k].length % 2 === 0 ? extraRgx[k].concat(defaultRgx[k]) : defaultRgx[k];\n }\n return mergedRgx;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i<arr.length; i++) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n return enums;\n },\n has = function (str1, str2) {\n if (typeof str1 === TYPEOF.OBJECT && str1.length > 0) {\n for (var i in str1) {\n if (lowerize(str2) == lowerize(str1[i])) return true;\n }\n return false;\n }\n return isString(str1) ? lowerize(str2) == lowerize(str1) : false;\n },\n isExtensions = function (obj, deep) {\n for (var prop in obj) {\n return /^(browser|cpu|device|engine|os)$/.test(prop) || (deep ? isExtensions(obj[prop]) : false);\n }\n },\n isString = function (val) {\n return typeof val === TYPEOF.STRING;\n },\n itemListToArray = function (header) {\n if (!header) return undefined;\n var arr = [];\n var tokens = strip(/\\\\?\\\"/g, header).split(',');\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].indexOf(';') > -1) {\n var token = trim(tokens[i]).split(';v=');\n arr[i] = { brand : token[0], version : token[1] };\n } else {\n arr[i] = trim(tokens[i]);\n }\n }\n return arr;\n },\n lowerize = function (str) {\n return isString(str) ? str.toLowerCase() : str;\n },\n majorize = function (version) {\n return isString(version) ? strip(/[^\\d\\.]/g, version).split('.')[0] : undefined;\n },\n setProps = function (arr) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n var propName = arr[i];\n if (typeof propName == TYPEOF.OBJECT && propName.length == 2) {\n this[propName[0]] = propName[1];\n } else {\n this[propName] = undefined;\n }\n }\n return this;\n },\n strip = function (pattern, str) {\n return isString(str) ? str.replace(pattern, EMPTY) : str;\n },\n stripQuotes = function (str) {\n return strip(/\\\\?\\\"/g, str); \n },\n trim = function (str, len) {\n str = strip(/^\\s\\s*/, String(str));\n return typeof len === TYPEOF.UNDEFINED ? str : str.substring(0, len);\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n if(!ua || !arrays) return;\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n if (!regex[j]) { break; }\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === TYPEOF.OBJECT && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == TYPEOF.FUNCTION) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length >= 3) {\n // Check whether q[1] FUNCTION or REGEX\n if (typeof q[1] === TYPEOF.FUNCTION && !(q[1].exec && q[1].test)) {\n if (q.length > 3) {\n this[q[0]] = match ? q[1].apply(this, q.slice(2)) : undefined;\n } else {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n }\n } else {\n if (q.length == 3) {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n } else if (q.length == 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n } else if (q.length > 4) {\n this[q[0]] = match ? q[3].apply(this, [match.replace(q[1], q[2])].concat(q.slice(4))) : undefined;\n }\n }\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === TYPEOF.OBJECT && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return map.hasOwnProperty('*') ? map['*'] : str;\n };\n\n ///////////////\n // String map\n //////////////\n\n var windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.51': '3.51',\n 'NT 4.0': '4.0',\n '2000' : ['5.0', '5.01'],\n 'XP' : ['5.1', '5.2'],\n 'Vista' : '6.0',\n '7' : '6.1',\n '8' : '6.2',\n '8.1' : '6.3',\n '10' : ['6.4', '10.0'],\n 'NT' : ''\n },\n \n formFactorsMap = {\n 'embedded' : 'Automotive',\n 'mobile' : 'Mobile',\n 'tablet' : ['Tablet', 'EInk'],\n 'smarttv' : 'TV',\n 'wearable' : 'Watch',\n 'xr' : ['VR', 'XR'],\n '?' : ['Desktop', 'Unknown'],\n '*' : undefined\n },\n\n browserHintsMap = {\n 'Chrome' : 'Google Chrome',\n 'Edge' : 'Microsoft Edge',\n 'Edge WebView2' : 'Microsoft Edge WebView2',\n 'Chrome WebView': 'Android WebView',\n 'Chrome Headless':'HeadlessChrome',\n 'Huawei Browser': 'HuaweiBrowser',\n 'MIUI Browser' : 'Miui Browser',\n 'Opera Mobi' : 'OperaMobile',\n 'Yandex' : 'YaBrowser'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var defaultRegexes = {\n\n browser : [[\n\n // Most common regardless engine\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n /webview.+edge\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, EDGE+' WebView']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i \n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /\\b(?:mxbrowser|mxios|myie2)\\/?([-\\w\\.]*)\\b/i // Maxthon\n ], [VERSION, [NAME, 'Maxthon']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\\/ ]?([\\w\\.]*)/i, \n // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir\n // Trident based\n /(avant|iemobile|slim(?:browser|boat|jet))[\\/ ]?([\\d\\.]*)/i, // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/LG Browser/Otter/qutebrowser/Dooble/Palemoon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon\n /(heytap|ovi|115|surf|qwant)browser\\/([\\d\\.]+)/i, // HeyTap/Ovi/115/Surf\n /(qwant)(?:ios|mobile)\\/([\\d\\.]+)/i, // Qwant\n /(ecosia|weibo)(?:__| \\w+@)([\\d\\.]+)/i // Ecosia/Weibo\n ], [NAME, VERSION], [\n /quark(?:pc)?\\/([-\\w\\.]+)/i // Quark\n ], [VERSION, [NAME, 'Quark']], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UCBrowser']], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart ' + LENOVO + SUFFIX_BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure' + SUFFIX_BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI' + SUFFIX_BROWSER]], [\n /fxios\\/([\\w\\.-]+)/i // Firefox for iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + FIREFOX]], [\n /\\bqihoobrowser\\/?([\\w\\.]*)/i // 360\n ], [VERSION, [NAME, '360']], [\n /\\b(qq)\\/([\\w\\.]+)/i // QQ\n ], [[NAME, /(.+)/, '$1Browser'], VERSION], [\n /(oculus|sailfish|huawei|vivo|pico)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, SOGOU + ' Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, SOGOU + ' Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345(?=browser|chrome|explorer))\\w*[\\/ ]?v?([\\w\\.]+)/i // QQ/2345\n ], [NAME, VERSION], [\n /(lbbrowser|rekonq)/i // LieBao Browser/Rekonq\n ], [NAME], [\n /ome\\/([\\w\\.]+) \\w* ?(iron) saf/i, // Iron\n /ome\\/([\\w\\.]+).+qihu (360)[es]e/i // 360\n ], [VERSION, NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION, [TYPE, INAPP]], [\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /(daum)apps[\\/ ]([\\w\\.]+)/i, // Daum App\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(bing)(?:web|sapphire)\\/([\\w\\.]+)/i, // Bing\n /(instagram|snapchat|klarna)[\\/ ]([-\\w\\.]+)/i // Instagram/Snapchat/Klarna\n ], [NAME, VERSION, [TYPE, INAPP]], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA'], [TYPE, INAPP]], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok'], [TYPE, INAPP]], [\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME, [TYPE, INAPP]], [\n /(zalo(?:app)?)[\\/\\sa-z]*([\\w\\.-]+)/i // Zalo \n ], [[NAME, /(.+)/, 'Zalo'], VERSION, [TYPE, INAPP]], [\n\n /(chromium)[\\/ ]([-\\w\\.]+)/i // Chromium\n ], [NAME, VERSION], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n /wv\\).+chrome\\/([\\w\\.]+).+edgw\\//i // Edge WebView2\n ], [VERSION, [NAME, EDGE+' WebView2']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android' + SUFFIX_BROWSER]], [\n\n /chrome\\/([\\w\\.]+) mobile/i // Chrome Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile(?:\\/\\w+ | ?)safari/i // Safari Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Safari']], [\n /iphone .*mobile(?:\\/\\w+ | ?)safari/i\n ], [[NAME, PREFIX_MOBILE + 'Safari']], [\n /version\\/([\\w\\.\\,]+) .*(safari)/i // Safari\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, '1']], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(?:mobile|tablet);.*(firefox)\\/([\\w\\.-]+)/i // Firefox Mobile\n ], [[NAME, PREFIX_MOBILE + FIREFOX], VERSION], [\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /(wolvic|librewolf)\\/([\\w\\.]+)/i // Wolvic/LibreWolf\n ], [NAME, VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+(?= .+rv\\:.+gecko\\/\\d+)|[0-4][\\w\\.]+(?!.+compatible))/i, // Mozilla\n\n // Other\n /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird\n /\\b(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, [VERSION, /_/g, '.']], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /[^\\d\\.]+./, EMPTY]]\n ],\n\n cpu : [[\n\n /\\b((amd|x|x86[-_]?|wow|win)64)\\b/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i, // IA32 (quicktime)\n /\\b((i[346]|x)86)(pc)?\\b/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?[89]e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /( (ce|mobile); ppc;|\\/[\\w\\.]+arm\\b)/i\n ], [[ARCHITECTURE, 'arm']], [\n\n / sun4\\w[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n /\\b(avr32|ia64(?=;)|68k(?=\\))|\\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\\b|pa-risc)/i,\n /((ppc|powerpc)(64)?)( mac|;|\\))/i, // PowerPC\n /(?:osf1|[freopnt]{3,4}bsd) (alpha)/i // Alpha\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n /mc680.0/i\n ], [[ARCHITECTURE, '68k']], [\n /winnt.+\\[axp/i\n ], [[ARCHITECTURE, 'alpha']]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-(?![lr])\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]((?!sm-[lr]|browser)[-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)[\\/\\);]/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\b(?:ios|apple\\w+)\\/.+[\\(\\/](ipad)/i, // iPad\n /\\b(ipad)[\\d,]*[;\\] ].+(mac |i(pad)?)os/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Honor\n /\\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\\)|;)/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, TABLET]], [\n /honor([-\\w ]+)[;\\)]/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\\w\\. ]*(?= bui|\\)))\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei) ?([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][\\dc][adnt]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /oid[^\\)]+; (2[\\dbc]{4}(182|283|rp\\w{2})[cgl]|m2105k81a?c)(?: bui|\\))/i,\n /\\b(?:xiao)?((?:red)?mi[-_ ]?pad[\\w- ]*)(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\\d{0,2}\\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\\))/i, // Xiaomi Mi\n / ([\\w ]+) miui\\/v?\\d/i\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n\n // OnePlus\n /droid.+; (cph2[3-6]\\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\\d|p[g-k]\\w[1m]10)\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, OPPO], [TYPE, MOBILE]], [\n /\\b(opd2(\\d{3}a?))(?: bui|\\))/i\n ], [MODEL, [VENDOR, strMapper, { 'OnePlus' : ['203', '304', '403', '404', '413', '415'], '*' : OPPO }], [TYPE, TABLET]], [\n\n // BLU\n /(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\\w\\+ ]*)(?: bui|\\))/i // Vivo series\n ], [MODEL, [VENDOR, 'BLU'], [TYPE, MOBILE]], [ \n\n // Vivo\n /; vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\\d{3,4}(?:f[cu]|xu|[av])|yt\\d?-[jx]?\\d+[lfmx])( bui|;|\\)|\\/)/i,\n /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\\w- ]+?)|tb[\\w-]{6,7})( bui|;|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, TABLET]], [ \n /lenovo[-_ ]?([-\\w ]+?)(?: bui|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ]([\\w\\s]+)(\\)| bui)/i,\n /((?:moto(?! 360)[-\\w\\(\\) ]+|xt\\d{3,4}[cgkosw\\+]?[-\\d]*|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Nokia\n /(nokia) (t[12][01])/i\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n /(?:maemo|nokia).*(n900|lumia \\d+|rm-\\d+)/i,\n /nokia[-_ ]?(([-\\w\\. ]*?))( bui|\\)|;|\\/)/i\n ], [[MODEL, /_/g, ' '], [TYPE, MOBILE], [VENDOR, 'Nokia']], [\n\n // Google\n /(pixel (c|tablet))\\b/i // Google Pixel C/Tablet\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n // Google Pixel\n /droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\\d ]*a?( pro)?( xl)?( fold)?( \\(5g\\))?)( bui|\\))/i\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n /(google) (pixelbook( go)?)/i\n ], [VENDOR, MODEL], [\n\n // Sony\n /droid.+; (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-\\w\\w\\d\\d)(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo(?!bc)\\w\\w)( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /(?:blackberry|\\(bb10;) (\\w+)/i\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // TCL\n /tcl (xess p17aa)/i,\n /droid [\\w\\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [\n /droid [\\w\\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, MOBILE]], [\n\n // itel\n /(itel) ((\\w+))/i\n ], [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { 'tablet' : ['p10001l', 'w7001'], '*' : 'mobile' }]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // Energizer\n /; (energy ?\\w+)(?: bui|\\))/i,\n /; energizer ([\\w ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Energizer'], [TYPE, MOBILE]], [\n\n // Cat\n /; cat (b35);/i,\n /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Cat'], [TYPE, MOBILE]], [\n\n // Smartfren\n /((?:new )?andromax[\\w- ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Smartfren'], [TYPE, MOBILE]], [\n\n // Nothing\n /droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i\n ], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [\n\n // Archos\n /; (x67 5g|tikeasy \\w+|ac[1789]\\d\\w+)( b|\\))/i,\n /archos ?(5|gamepad2?|([\\w ]*[t1789]|hello) ?\\d+[\\w ]*)( b|\\))/i\n ], [MODEL, [VENDOR, 'Archos'], [TYPE, TABLET]], [\n /archos ([\\w ]+)( b|\\))/i,\n /; (ac[3-6]\\d\\w{2,8})( b|\\))/i \n ], [MODEL, [VENDOR, 'Archos'], [TYPE, MOBILE]], [\n\n // HMD\n /; (n159v)/i\n ], [MODEL, [VENDOR, 'HMD'], [TYPE, MOBILE]], [\n\n // MIXED\n /(imo) (tab \\w+)/i, // IMO\n /(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i // Infinix XPad / Tecno\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Tecno/Micromax/Advan\n // BLU/HMD/IMO/Infinix/Lava/OnePlus/TCL/Wiko\n /; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\\w\\+ ]+?)(?: bui|\\)|; r)/i,\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(oppo) ?([\\w ]+) bui/i, // OPPO\n /(hisense) ([ehv][\\w ]+)\\)/i, // Hisense\n /droid[^;]+; (philips)[_ ]([sv-x][\\d]{3,4}[xz]?)/i // Philips\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i // Kindle\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /((?:tegranote|shield t(?!.+d tv))[\\w- ]*?)(?: b|\\))/i // Nvidia Tablets\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /(philips)[\\w ]+tv/i, // Philips\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(vizio)(?: |.+model\\/)(\\w+-\\w+)/i, // Vizio\n /tcast.+(lg)e?. ([-\\w]+)/i // LG SmartTV\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/chromecast/i // Google Chromecast Third Generation\n ], [[MODEL, CHROMECAST+' Third Generation'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/([^/]*)/i // Google Chromecast with specific device type\n ], [[MODEL, /^/, 'Chromecast '], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /fuchsia.*crkey/i // Google Chromecast Nest Hub\n ], [[MODEL, CHROMECAST+' Nest Hub'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast, Linux-based or unknown\n ], [[MODEL, CHROMECAST], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /(portaltv)/i // Facebook Portal TV\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /(shield \\w+ tv)/i // Nvidia Shield TV\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mi(tv|box)-?\\w+) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, /.+\\/(\\w+)/, '$1', strMapper, {'LG':'lge'}], [MODEL, trim], [TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(playstation \\w+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n /(ouya)/i, // Ouya\n /(nintendo) (\\w+)/i, // Nintendo\n /(retroid) (pocket ([^\\)]+))/i // Retroid Pocket\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield)( bui|\\))/i // Nvidia Portable\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /\\b(sm-[lr]\\d\\d[0156][fnuw]?s?|gear live)\\b/i // Samsung Galaxy Watch\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [\n /((pebble))app/i, // Pebble\n /(asus|google|lg|oppo) ((pixel |zen)?watch[\\w ]*)( bui|\\))/i // Asus ZenWatch / LG Watch / Pixel Watch\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(ow(?:19|20)?we?[1-3]{1,3})/i // Oppo Watch\n ], [MODEL, [VENDOR, OPPO], [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /(opwwe\\d{3})/i // OnePlus Watch\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, WEARABLE]], [\n /(moto 360)/i // Motorola 360\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, WEARABLE]], [\n /(smartwatch 3)/i // Sony SmartWatch\n ], [MODEL, [VENDOR, SONY], [TYPE, WEARABLE]], [\n /(g watch r)/i // LG G Watch R\n ], [MODEL, [VENDOR, LG], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n\n ///////////////////\n // XR\n ///////////////////\n\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, XR]], [\n /(pico) ([\\w ]+) os\\d/i // Pico\n ], [VENDOR, MODEL, [TYPE, XR]], [\n /(quest( \\d| pro)?s?).+vr/i // Meta Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, XR]], [\n /mobile vr; rv.+firefox/i // Unidentifiable VR device using Firefox Reality / Wolvic\n ], [[TYPE, XR]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n /(homepod).+mac os/i // Apple HomePod\n ], [MODEL, [VENDOR, APPLE], [TYPE, EMBEDDED]], [\n /windows iot/i // Unidentifiable embedded device using Windows IoT\n ], [[TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid.+; ([\\w- ]+) (4k|android|smart|google)[- ]?tv/i // Unidentifiable SmartTV\n ], [MODEL, [TYPE, SMARTTV]], [\n /\\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\\w ]+safari)\\b/i\n ], [[TYPE, SMARTTV]], [\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew|; hmsc).+?(mobile|vr|\\d) safari/i\n ], [MODEL, [TYPE, strMapper, { 'mobile' : 'Mobile', 'xr' : 'VR', '*' : TABLET }]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /droid .+?; ([\\w\\. -]+)( bui|\\))/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /(arkweb)\\/([\\w\\.]+)/i // ArkWeb\n ], [NAME, VERSION], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n\n /\\b(libweb)/i // LibWeb\n ], [NAME, VERSION], [\n /ladybird\\//i\n ], [[NAME, 'LibWeb']], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /(windows nt) (6\\.[23]); arm/i // Windows RT\n ], [[NAME, /N/, 'R'], [VERSION, strMapper, windowsVersionMap]], [\n /(windows (?:phone|mobile|iot))(?: os)?[\\/ ]?([\\d\\.]*( se)?)/i, // Windows IoT/Mobile/Phone\n // Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11\n /(windows)[\\/ ](1[01]|2000|3\\.1|7|8(\\.1)?|9[58]|me|server 20\\d\\d( r2)?|vista|xp)/i\n ], [NAME, VERSION], [\n /windows nt ?([\\d\\.\\)]*)(?!.+xbox)/i,\n /\\bwin(?=3| ?9|n)(?:nt| 9x )?([\\d\\.;]*)/i\n ], [[VERSION, /(;|\\))/g, '', strMapper, windowsVersionMap], [NAME, WINDOWS]], [\n /(windows ce)\\/?([\\d\\.]*)/i // Windows CE\n ], [NAME, VERSION], [\n\n // iOS/macOS\n /[adehimnop]{4,7}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\\/ ]([\\w\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+(haiku|morphos))/i // Mac OS\n ], [[NAME, 'macOS'], [VERSION, /_/g, '.']], [\n\n // Google Chromecast\n /android ([\\d\\.]+).*crkey/i // Google Chromecast, Android-based\n ], [VERSION, [NAME, CHROMECAST + ' Android']], [\n /fuchsia.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Fuchsia-based\n ], [VERSION, [NAME, CHROMECAST + ' Fuchsia']], [\n /crkey\\/([\\d\\.]+).*devicetype\\/smartspeaker/i // Google Chromecast, Linux-based Smart Speaker\n ], [VERSION, [NAME, CHROMECAST + ' SmartSpeaker']], [\n /linux.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Legacy Linux-based\n ], [VERSION, [NAME, CHROMECAST + ' Linux']], [\n /crkey\\/([\\d\\.]+)/i // Google Chromecast, unknown\n ], [VERSION, [NAME, CHROMECAST]], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86)/i // Android-x86\n ], [VERSION, NAME], [ \n /(ubuntu) ([\\w\\.]+) like android/i // Ubuntu Touch\n ], [[NAME, /(.+)/, '$1 Touch'], VERSION], [\n /(harmonyos)[\\/ ]?([\\d\\.]*)/i, // HarmonyOS\n // Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen\n /(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\\w*[-\\/\\.; ]?([\\d\\.]*)/i\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i, // WebOS\n /webos(?:[ \\/]?|\\.tv-20(?=2[2-9]))(\\d[\\d\\.]*)/i\n ], [VERSION, [NAME, 'webOS']], [\n /web0s;.+?(?:chr[o0]me|safari)\\/(\\d+)/i\n // https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine\n ], [[VERSION, strMapper, {'25':'120','24':'108','23':'94','22':'87','6':'79','5':'68','4':'53','3':'38','2':'538','1':'537','*':'TV'}], [NAME, 'webOS']], [ \n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google ChromeOS\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, \"Chrome OS\"], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) (\\w+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n /(pico) .+os([\\w\\.]+)/i, // Pico\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /linux.+(mint)[\\/\\(\\) ]?([\\w\\.]*)/i, // Mint\n /(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\\d\\.]*)/i, // Mageia/VectorLinux/Fuchsia/ArcaOS/Arch\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire/Knoppix\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /\\b(aix)[; ]([1-9\\.]{0,4})/i, // AIX\n /(hurd|linux|morphos)(?: (?:arm|x86|ppc)\\w*| ?)([\\w\\.]*)/i, // Hurd/Linux/MorphOS\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) ?(r\\d)?/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\d\\.]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /\\b(beos|os\\/2|amigaos|openvms|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Factories\n ////////////////\n\n var defaultProps = (function () {\n var props = { init : {}, isIgnore : {}, isIgnoreRgx : {}, toString : {}};\n setProps.call(props.init, [\n [BROWSER, [NAME, VERSION, MAJOR, TYPE]],\n [CPU, [ARCHITECTURE]],\n [DEVICE, [TYPE, MODEL, VENDOR]],\n [ENGINE, [NAME, VERSION]],\n [OS, [NAME, VERSION]]\n ]);\n setProps.call(props.isIgnore, [\n [BROWSER, [VERSION, MAJOR]],\n [ENGINE, [VERSION]],\n [OS, [VERSION]]\n ]);\n setProps.call(props.isIgnoreRgx, [\n [BROWSER, / ?browser$/i],\n [OS, / ?os$/i]\n ]);\n setProps.call(props.toString, [\n [BROWSER, [NAME, VERSION]],\n [CPU, [ARCHITECTURE]],\n [DEVICE, [VENDOR, MODEL]],\n [ENGINE, [NAME, VERSION]],\n [OS, [NAME, VERSION]]\n ]);\n return props;\n })();\n\n var createIData = function (item, itemType) {\n\n var init_props = defaultProps.init[itemType],\n is_ignoreProps = defaultProps.isIgnore[itemType] || 0,\n is_ignoreRgx = defaultProps.isIgnoreRgx[itemType] || 0,\n toString_props = defaultProps.toString[itemType] || 0;\n\n function IData () {\n setProps.call(this, init_props);\n }\n\n IData.prototype.getItem = function () {\n return item;\n };\n\n IData.prototype.withClientHints = function () {\n\n // nodejs / non-client-hints browsers\n if (!NAVIGATOR_UADATA) {\n return item\n .parseCH()\n .get();\n }\n\n // browsers based on chromium 85+\n return NAVIGATOR_UADATA\n .getHighEntropyValues(CH_ALL_VALUES)\n .then(function (res) {\n return item\n .setCH(new UACHData(res, false))\n .parseCH()\n .get();\n });\n };\n\n IData.prototype.withFeatureCheck = function () {\n return item.detectFeature().get();\n };\n\n if (itemType != RESULT) {\n IData.prototype.is = function (strToCheck) {\n var is = false;\n for (var i in this) {\n if (this.hasOwnProperty(i) && !has(is_ignoreProps, i) && lowerize(is_ignoreRgx ? strip(is_ignoreRgx, this[i]) : this[i]) == lowerize(is_ignoreRgx ? strip(is_ignoreRgx, strToCheck) : strToCheck)) {\n is = true;\n if (strToCheck != TYPEOF.UNDEFINED) break;\n } else if (strToCheck == TYPEOF.UNDEFINED && is) {\n is = !is;\n break;\n }\n }\n return is;\n };\n IData.prototype.toString = function () {\n var str = EMPTY;\n for (var i in toString_props) {\n if (typeof(this[toString_props[i]]) !== TYPEOF.UNDEFINED) {\n str += (str ? ' ' : EMPTY) + this[toString_props[i]];\n }\n }\n return str || TYPEOF.UNDEFINED;\n };\n }\n\n if (!NAVIGATOR_UADATA) {\n IData.prototype.then = function (cb) { \n var that = this;\n var IDataResolve = function () {\n for (var prop in that) {\n if (that.hasOwnProperty(prop)) {\n this[prop] = that[prop];\n }\n }\n };\n IDataResolve.prototype = {\n is : IData.prototype.is,\n toString : IData.prototype.toString\n };\n var resolveData = new IDataResolve();\n cb(resolveData);\n return resolveData;\n };\n }\n\n return new IData();\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n function UACHData (uach, isHttpUACH) {\n uach = uach || {};\n setProps.call(this, CH_ALL_VALUES);\n if (isHttpUACH) {\n setProps.call(this, [\n [BRANDS, itemListToArray(uach[CH])],\n [FULLVERLIST, itemListToArray(uach[CH_FULL_VER_LIST])],\n [MOBILE, /\\?1/.test(uach[CH_MOBILE])],\n [MODEL, stripQuotes(uach[CH_MODEL])],\n [PLATFORM, stripQuotes(uach[CH_PLATFORM])],\n [PLATFORMVER, stripQuotes(uach[CH_PLATFORM_VER])],\n [ARCHITECTURE, stripQuotes(uach[CH_ARCH])],\n [FORMFACTORS, itemListToArray(uach[CH_FORM_FACTORS])],\n [BITNESS, stripQuotes(uach[CH_BITNESS])]\n ]);\n } else {\n for (var prop in uach) {\n if(this.hasOwnProperty(prop) && typeof uach[prop] !== TYPEOF.UNDEFINED) this[prop] = uach[prop];\n }\n }\n }\n\n function UAItem (itemType, ua, rgxMap, uaCH) {\n\n this.get = function (prop) {\n if (!prop) return this.data;\n return this.data.hasOwnProperty(prop) ? this.data[prop] : undefined;\n };\n\n this.set = function (prop, val) {\n this.data[prop] = val;\n return this;\n };\n\n this.setCH = function (ch) {\n this.uaCH = ch;\n return this;\n };\n\n this.detectFeature = function () {\n if (NAVIGATOR && NAVIGATOR.userAgent == this.ua) {\n switch (this.itemType) {\n case BROWSER:\n // Brave-specific detection\n if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == TYPEOF.FUNCTION) {\n this.set(NAME, 'Brave');\n }\n break;\n case DEVICE:\n // Chrome-specific detection: check for 'mobile' value of navigator.userAgentData\n if (!this.get(TYPE) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (this.get(MODEL) == 'Macintosh' && NAVIGATOR && typeof NAVIGATOR.standalone !== TYPEOF.UNDEFINED && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) {\n this.set(MODEL, 'iPad')\n .set(TYPE, TABLET);\n }\n break;\n case OS:\n // Chrome-specific detection: check for 'platform' value of navigator.userAgentData\n if (!this.get(NAME) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[PLATFORM]) {\n this.set(NAME, NAVIGATOR_UADATA[PLATFORM]);\n }\n break;\n case RESULT:\n var data = this.data;\n var detect = function (itemType) {\n return data[itemType]\n .getItem()\n .detectFeature()\n .get();\n };\n this.set(BROWSER, detect(BROWSER))\n .set(CPU, detect(CPU))\n .set(DEVICE, detect(DEVICE))\n .set(ENGINE, detect(ENGINE))\n .set(OS, detect(OS));\n }\n }\n return this;\n };\n\n this.parseUA = function () {\n if (this.itemType != RESULT) {\n rgxMapper.call(this.data, this.ua, this.rgxMap);\n }\n switch (this.itemType) {\n case BROWSER:\n this.set(MAJOR, majorize(this.get(VERSION)));\n break;\n case OS:\n if (this.get(NAME) == 'iOS' && this.get(VERSION) == '18.6') {\n // Based on the assumption that iOS version is tightly coupled with Safari version\n var realVersion = /\\) Version\\/([\\d\\.]+)/.exec(this.ua); // Get Safari version\n if (realVersion && parseInt(realVersion[1].substring(0,2), 10) >= 26) {\n this.set(VERSION, realVersion[1]); // Set as iOS version\n }\n }\n break;\n }\n return this;\n };\n\n this.parseCH = function () {\n var uaCH = this.uaCH,\n rgxMap = this.rgxMap;\n \n switch (this.itemType) {\n case BROWSER:\n case ENGINE:\n var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;\n if (brands) {\n for (var i=0; i<brands.length; i++) {\n var brandName = brands[i].brand || brands[i],\n brandVersion = brands[i].version;\n if (this.itemType == BROWSER && \n !/not.a.brand/i.test(brandName) && \n (!prevName || \n (/Chrom/.test(prevName) && brandName != CHROMIUM) || \n (prevName == EDGE && /WebView2/.test(brandName))\n )) {\n brandName = strMapper(brandName, browserHintsMap);\n prevName = this.get(NAME);\n if (!(prevName && !/Chrom/.test(prevName) && /Chrom/.test(brandName))) {\n this.set(NAME, brandName)\n .set(VERSION, brandVersion)\n .set(MAJOR, majorize(brandVersion));\n }\n prevName = brandName;\n }\n if (this.itemType == ENGINE && brandName == CHROMIUM) {\n this.set(VERSION, brandVersion);\n }\n }\n }\n break;\n case CPU:\n var archName = uaCH[ARCHITECTURE];\n if (archName) {\n if (archName && uaCH[BITNESS] == '64') archName += '64';\n rgxMapper.call(this.data, archName + ';', rgxMap);\n }\n break;\n case DEVICE:\n if (uaCH[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n if (uaCH[MODEL]) {\n this.set(MODEL, uaCH[MODEL]);\n if (!this.get(TYPE) || !this.get(VENDOR)) {\n var reParse = {};\n rgxMapper.call(reParse, 'droid 9; ' + uaCH[MODEL] + ')', rgxMap);\n if (!this.get(TYPE) && !!reParse.type) {\n this.set(TYPE, reParse.type);\n }\n if (!this.get(VENDOR) && !!reParse.vendor) {\n this.set(VENDOR, reParse.vendor);\n }\n }\n }\n if (uaCH[FORMFACTORS]) {\n var ff;\n if (typeof uaCH[FORMFACTORS] !== 'string') {\n var idx = 0;\n while (!ff && idx < uaCH[FORMFACTORS].length) {\n ff = strMapper(uaCH[FORMFACTORS][idx++], formFactorsMap);\n }\n } else {\n ff = strMapper(uaCH[FORMFACTORS], formFactorsMap);\n }\n this.set(TYPE, ff);\n }\n break;\n case OS:\n var osName = uaCH[PLATFORM];\n if(osName) {\n var osVersion = uaCH[PLATFORMVER];\n if (osName == WINDOWS) osVersion = (parseInt(majorize(osVersion), 10) >= 13 ? '11' : '10');\n this.set(NAME, osName)\n .set(VERSION, osVersion);\n }\n // Xbox-Specific Detection\n if (this.get(NAME) == WINDOWS && uaCH[MODEL] == 'Xbox') {\n this.set(NAME, 'Xbox')\n .set(VERSION, undefined);\n } \n break;\n case RESULT:\n var data = this.data;\n var parse = function (itemType) {\n return data[itemType]\n .getItem()\n .setCH(uaCH)\n .parseCH()\n .get();\n };\n this.set(BROWSER, parse(BROWSER))\n .set(CPU, parse(CPU))\n .set(DEVICE, parse(DEVICE))\n .set(ENGINE, parse(ENGINE))\n .set(OS, parse(OS));\n }\n return this;\n };\n\n setProps.call(this, [\n ['itemType', itemType],\n ['ua', ua],\n ['uaCH', uaCH],\n ['rgxMap', rgxMap],\n ['data', createIData(this, itemType)]\n ]);\n\n return this;\n }\n\n function UAParser (ua, extensions, headers) {\n\n if (typeof ua === TYPEOF.OBJECT) {\n if (isExtensions(ua, true)) {\n if (typeof extensions === TYPEOF.OBJECT) {\n headers = extensions; // case UAParser(extensions, headers) \n }\n extensions = ua; // case UAParser(extensions)\n } else {\n headers = ua; // case UAParser(headers)\n extensions = undefined;\n }\n ua = undefined;\n } else if (typeof ua === TYPEOF.STRING && !isExtensions(extensions, true)) {\n headers = extensions; // case UAParser(ua, headers)\n extensions = undefined;\n }\n\n if (headers) {\n if (typeof headers.append === TYPEOF.FUNCTION) {\n // Convert Headers object into a plain object\n var kv = {};\n headers.forEach(function (v, k) { kv[String(k).toLowerCase()] = v; });\n headers = kv;\n } else {\n // Normalize headers field name into lowercase\n var normalized = {};\n for (var header in headers) {\n if (headers.hasOwnProperty(header)) {\n normalized[String(header).toLowerCase()] = headers[header];\n }\n }\n headers = normalized;\n }\n }\n \n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions, headers).getResult();\n }\n\n var userAgent = typeof ua === TYPEOF.STRING ? ua : // Passed user-agent string\n (headers && headers[USER_AGENT] ? headers[USER_AGENT] : // User-Agent from passed headers\n ((NAVIGATOR && NAVIGATOR.userAgent) ? NAVIGATOR.userAgent : // navigator.userAgent\n EMPTY)), // empty string\n\n httpUACH = new UACHData(headers, true),\n regexMap = extensions ? \n extend(defaultRegexes, extensions) : \n defaultRegexes,\n\n createItemFunc = function (itemType) {\n if (itemType == RESULT) {\n return function () {\n return new UAItem(itemType, userAgent, regexMap, httpUACH)\n .set('ua', userAgent)\n .set(BROWSER, this.getBrowser())\n .set(CPU, this.getCPU())\n .set(DEVICE, this.getDevice())\n .set(ENGINE, this.getEngine())\n .set(OS, this.getOS())\n .get();\n };\n } else {\n return function () {\n return new UAItem(itemType, userAgent, regexMap[itemType], httpUACH)\n .parseUA()\n .get();\n };\n }\n };\n \n // public methods\n setProps.call(this, [\n ['getBrowser', createItemFunc(BROWSER)],\n ['getCPU', createItemFunc(CPU)],\n ['getDevice', createItemFunc(DEVICE)],\n ['getEngine', createItemFunc(ENGINE)],\n ['getOS', createItemFunc(OS)],\n ['getResult', createItemFunc(RESULT)],\n ['getUA', function () { return userAgent; }],\n ['setUA', function (ua) {\n if (isString(ua)) userAgent = trim(ua, UA_MAX_LENGTH);\n return this;\n }]\n ])\n .setUA(userAgent);\n\n return this;\n }\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR, TYPE]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n export {UAParser};","\nexport const i18n = (key, appID, localID) => {\n let result = window.customI18nObject?.get(`${appID}-${key}-${localID}`) || key;\n return result;\n};\n\n/**\n * 检查文本是否匹配$L{...}格式\n * @param {string} text - 要检查的文本\n * @returns {Object|null} - 匹配结果或null\n */\nexport function checkTextFormat(text) {\n if (!text) return null;\n\n const regex = /\\$L\\{([^}]+)\\}/;\n const match = text.match(regex);\n\n if (match) {\n return {\n fullMatch: match[0],\n key: match[1],\n };\n }\n\n return null;\n}\n\n\n","import {i18n} from \"../core\";\r\n\r\nexport const check =(element)=>{\r\n const checkResult = {\r\n result: false,\r\n innerHTMLMatch: null\r\n }\r\n const classes = element.classList;\r\n if(!classes){\r\n return checkResult;\r\n }\r\n // 检查表格头部 序号 和 操作 列\r\n if(classes.contains(\"ant-table-cell\")){\r\n let innerHTML = element.innerHTML;\r\n if(innerHTML.includes(\"序号\")||innerHTML.includes(\"Serial No.\")){\r\n // console.log(\"检查smardaten平台表格 序号 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{序号}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n if(innerHTML==\"操作\"){\r\n // console.log(\"检查smardaten平台表格 操作 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{操作}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查分页组件 导出按钮\r\n if(classes.contains(\"export_menu\")){\r\n let innerHTML = element.innerHTML;\r\n if(innerHTML.includes(\"导出进度\") || innerHTML.includes(\"Export progress\")){\r\n // console.log(\"检查smardaten平台表格 导出按钮 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{导出进度}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查分页组件\r\n if(classes.contains(\"total_pag_num\")){\r\n let innerHTML = element.innerHTML;\r\n if((innerHTML.includes(\"共\")&&innerHTML.includes(\"条\"))||(innerHTML.includes(\"Total\")&&innerHTML.includes(\"pieces\"))){\r\n // console.log(\"检查smardaten平台分页 共xx条 元素:\",innerHTML);\r\n let scriptFunction = (appID, lang)=>{\r\n let scriptNode = null;\r\n for (let node of element.childNodes) {\r\n // 检查是否为文本节点且包含\"Total\"\r\n if (node.tagName === \"SPAN\") {\r\n scriptNode = node;\r\n }\r\n }\r\n let scriptNodes = [\r\n { \r\n nodeType: Node.TEXT_NODE,\r\n key: '共',\r\n },\r\n { \r\n nodeType: \"SCRIPTNODE\",\r\n node: scriptNode,\r\n },\r\n { \r\n nodeType: Node.TEXT_NODE,\r\n key: '条',\r\n },\r\n ];\r\n for(let i = 0;i<element.childNodes.length;i++)\r\n {\r\n let childNode = element.childNodes[i];\r\n if(childNode.nodeType===Node.TEXT_NODE)\r\n {\r\n element.removeChild(childNode);\r\n }\r\n }\r\n for(let i = 0;i<scriptNodes.length;i++)\r\n {\r\n let scriptNodeItem = scriptNodes[i];\r\n if(scriptNodeItem.nodeType===Node.TEXT_NODE)\r\n {\r\n let textNode =document.createTextNode(i18n(scriptNodeItem.key, appID, lang)||scriptNodeItem.key);\r\n element.appendChild(textNode);\r\n }\r\n if(scriptNodeItem.nodeType===\"SCRIPTNODE\")\r\n {\r\n element.appendChild(scriptNodeItem.node);\r\n }\r\n }\r\n }\r\n let tempHTMLMatch ={\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查分页组件 跳至xx页\r\n if(classes.contains(\"ant-pagination-options-quick-jumper\")){\r\n let innerHTML = element.innerHTML;\r\n if((innerHTML.includes(\"跳至\")&&innerHTML.includes(\"页\"))||(innerHTML.includes(\"Go to\")&&innerHTML.includes(\"Page\")))\r\n {\r\n // console.log(\"检查smardaten平台分页 跳至xx页 元素:\",innerHTML);\r\n let scriptFunction = (appID, lang)=>{\r\n let scriptNode = null;\r\n for (let node of element.childNodes) {\r\n // 检查是否为文本节点且包含\"Total\"\r\n if (node.tagName === \"INPUT\") {\r\n scriptNode = node;\r\n }\r\n }\r\n let scriptNodes = [\r\n { \r\n nodeType: Node.TEXT_NODE,\r\n key: '跳至',\r\n },\r\n { \r\n nodeType: \"SCRIPTNODE\",\r\n node: scriptNode,\r\n },\r\n { \r\n nodeType: Node.TEXT_NODE,\r\n key: '页',\r\n },\r\n ];\r\n for(let i = 0;i<element.childNodes.length;i++)\r\n {\r\n let childNode = element.childNodes[i];\r\n if(childNode.nodeType===Node.TEXT_NODE)\r\n {\r\n element.removeChild(childNode);\r\n }\r\n }\r\n for(let i = 0;i<scriptNodes.length;i++)\r\n {\r\n let scriptNodeItem = scriptNodes[i];\r\n if(scriptNodeItem.nodeType===Node.TEXT_NODE)\r\n {\r\n let textNode =document.createTextNode(i18n(scriptNodeItem.key, appID, lang)||scriptNodeItem.key);\r\n element.appendChild(textNode);\r\n }\r\n if(scriptNodeItem.nodeType===\"SCRIPTNODE\")\r\n {\r\n element.appendChild(scriptNodeItem.node);\r\n }\r\n }\r\n }\r\n let tempHTMLMatch ={\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查每页xx条\r\n if(classes.contains(\"ant-select-selection-item\")||classes.contains(\"ant-select-item-option-content\")){\r\n let innerHTML = element.innerHTML;\r\n // console.log(\"检查smardaten平台分页 每页xx条 元素:\",innerHTML);\r\n if((innerHTML.includes(\"/\")&&innerHTML.includes(\"page\"))||(innerHTML.includes(\"/\")&&innerHTML.includes(\"条\")&&innerHTML.includes(\"页\")))\r\n {\r\n let oldValue = element.innerHTML;\r\n \r\n if(innerHTML.includes(\"page\"))\r\n {\r\n oldValue =oldValue.replace('page','$L{页}');\r\n }\r\n if(innerHTML.includes(\"页\")){\r\n oldValue =oldValue.replace('页','$L{页}');\r\n }\r\n if(innerHTML.includes(\"条\")){\r\n oldValue =oldValue.replace('条','$L{条}');\r\n }\r\n let tempHTMLMatch ={\r\n oldValue:oldValue,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n \r\n }\r\n // 检查删除确认对话框标题\r\n if(classes.contains(\"ant-popover-message-title\"))\r\n {\r\n let innerHTML = element.innerHTML;\r\n if(innerHTML.includes(\"确认执行:\")||innerHTML.includes(\"Confirm Execution:\")){\r\n // console.log(\"检查smardaten平台删除提问对话框:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{操作确认:删除?}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查删除确认对话框按钮 取消 确认\r\n if(classes.contains(\"ant-btn\")&&!classes.contains(\"saveBtn\"))\r\n {\r\n let innerHTML = element.innerHTML;\r\n if(innerHTML.includes(\"Cancel\")||innerHTML.includes(\"取消\")){\r\n // console.log(\"检查smardaten平台 Tip提问取消删除按钮:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{取消}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n if(innerHTML.includes(\"确定\")||innerHTML.includes(\"OK\")){\r\n // console.log(\"检查smardaten平台 Tip提问确认删除按钮:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{确定}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n return checkResult;\r\n}","import { checkTextFormat,i18n} from \"../core.js\";\r\nexport const check =(element)=>{\r\n const checkResult = {\r\n result: false,\r\n innerHTMLMatch: null\r\n }\r\n const classes = element.classList;\r\n if(!classes){\r\n return checkResult;\r\n }\r\n let innerHTML = element.innerHTML;\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n if(!oldValue)\r\n {\r\n oldValue = innerHTML;\r\n }\r\n // 检查目录列表 名称 列\r\n if(classes.contains(\"catalog_name_content\"))\r\n {\r\n // console.log(\"检查smardaten平台目录列表 元素:\",innerHTML);\r\n let scriptFunction = (appID, lang) => {\r\n for (let i = 0; i < element.childNodes.length; i++) {\r\n let scriptNodeItem = element.childNodes[i];\r\n if (scriptNodeItem.nodeType === Node.TEXT_NODE) {\r\n let text = element.getAttribute(\"oldValue\");\r\n let isTextMatch = checkTextFormat(text);\r\n if (!isTextMatch) {\r\n element.appendChild(scriptNodeItem);\r\n } else {\r\n element.removeChild(scriptNodeItem);\r\n let key = isTextMatch.key;\r\n let textNode = document.createTextNode(\r\n i18n(key, appID, lang) || key\r\n );\r\n element.appendChild(textNode);\r\n }\r\n } else {\r\n element.appendChild(scriptNodeItem);\r\n }\r\n }\r\n };\r\n let tempHTMLMatch ={\r\n oldValue:oldValue,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n if(classes.contains(\"catalog-tree-search\"))\r\n {\r\n let scriptFunction = (appID, lang) => {\r\n for (let i = 0; i < element.childNodes.length; i++) {\r\n let scriptNodeItem = element.childNodes[i];\r\n if (scriptNodeItem.tagName === 'INPUT') {\r\n let oldValue = scriptNodeItem.getAttribute(\"oldplaceholderValue\");\r\n if(!oldValue)\r\n {\r\n let text = scriptNodeItem.getAttribute(\"placeholder\");\r\n if(text){\r\n text =`$L{${text}}`;\r\n }\r\n scriptNodeItem.setAttribute(\"placeholder\",text);\r\n // processElement(scriptNodeItem,appID,lang);\r\n }\r\n } \r\n }\r\n };\r\n let tempHTMLMatch ={\r\n oldValue:oldValue,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n return checkResult;\r\n};","import { checkTextFormat,i18n} from \"../core.js\";\r\nfunction getOldValueNodeText(innerHTML,index){\r\n const container = document.createElement('div');\r\n container.innerHTML = innerHTML;\r\n const childNode = container.childNodes[index];\r\n return childNode.textContent;\r\n}\r\nexport const check =(element)=>{\r\n const checkResult = {\r\n result: false,\r\n innerHTMLMatch: null\r\n }\r\n // 检查目录列表 名称 列\r\n if(element.tagName === 'BUTTON' || element.tagName === 'P')\r\n {\r\n //TODO:先检查新的是否需要解析,新的不需要有可能是解析后的再次判断,如果有历史解析值,则解析\r\n //如果新的需要解析,更新缓存的历史解析值\r\n let innerHTML = element.innerHTML;\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n if(!oldValue)\r\n {\r\n oldValue = innerHTML;\r\n }\r\n let firstCheck = checkTextFormat(oldValue);\r\n let firstCheckResult = firstCheck?true:false;\r\n // console.log(\"检查 button 元素:\",innerHTML);\r\n // console.log(\"检查结果:\",firstCheckResult);\r\n let scriptFunction = (appID, lang) => {\r\n let elementsArray = [];\r\n for(let i=0;i<element.childNodes.length;i++)\r\n {\r\n let scriptNodeItem = element.childNodes[i];\r\n if (scriptNodeItem.nodeType === Node.TEXT_NODE) {\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n // console.log(\"执行 button 文本节点翻译:\", text);\r\n // 创建正则表达式匹配所有 $L{...} 格式\r\n const regex = /\\$L\\{([^}]+)\\}/g;\r\n let isTextMatch = checkTextFormat(oldValue);\r\n if (!isTextMatch) {\r\n elementsArray.push(scriptNodeItem);\r\n } else {\r\n // console.log(\"执行 button 脚本节点翻译isTextMatch:\", isTextMatch?true:false);\r\n // element.removeChild(scriptNodeItem);\r\n // 替换所有 $L{...} 占位符为翻译文本\r\n let childNodeText = getOldValueNodeText(oldValue,i);\r\n let newValue = childNodeText;\r\n let match;\r\n while ((match = regex.exec(oldValue)) !== null) {\r\n const fullMatch = match[0];\r\n const placeholderKey = match[1];\r\n const translation = i18n(placeholderKey, appID, lang);\r\n newValue = newValue.replace(fullMatch, translation);\r\n }\r\n let textNode = document.createTextNode(newValue);\r\n elementsArray.push(textNode);\r\n }\r\n }\r\n else\r\n {\r\n elementsArray.push(scriptNodeItem);\r\n }\r\n }\r\n element.innerHTML = '';\r\n elementsArray.forEach((el)=>{\r\n element.appendChild(el);\r\n });\r\n };\r\n let tempHTMLMatch ={\r\n oldValue:oldValue,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = firstCheckResult;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n return checkResult;\r\n};","import { checkTextFormat,i18n} from \"../core.js\";\r\nexport const check = (element) => {\r\n const checkResult = {\r\n result: false,\r\n innerHTMLMatch: null,\r\n };\r\n if(!element){\r\n return checkResult;\r\n }\r\n const checkAttributes = [\"placeholder\", \"title\"];\r\n for (let i = 0; i < checkAttributes.length; i++) {\r\n let attr = checkAttributes[i];\r\n let attrValue = element.getAttribute(attr) || element[attr];\r\n const attrMatch = attrValue ? checkTextFormat(attrValue) : null;\r\n if (attrMatch) {\r\n // console.log(\"检查元素属性 i18n 元素:\", attr, attrValue);\r\n element.setAttribute(`old${attr}Value`, attrValue);\r\n checkResult.result = true;\r\n }\r\n }\r\n let scriptFunction = (appID, lang) => {\r\n for (let i = 0; i < checkAttributes.length; i++) {\r\n let attr = checkAttributes[i];\r\n const oldAttrValue = element.getAttribute(`old${attr}Value`);\r\n if (oldAttrValue) {\r\n // 创建正则表达式匹配所有 $L{...} 格式\r\n const regex = /\\$L\\{([^}]+)\\}/g;\r\n // 替换所有 $L{...} 占位符为翻译文本\r\n let newAttrValue = oldAttrValue;\r\n let match;\r\n while ((match = regex.exec(oldAttrValue)) !== null) {\r\n const fullMatch = match[0];\r\n const attrKey = match[1];\r\n const translation = i18n(attrKey, appID, lang);\r\n newAttrValue = newAttrValue.replace(fullMatch, translation);\r\n }\r\n // 更新元素的placeholder属性\r\n element.setAttribute(attr, newAttrValue);\r\n }\r\n }\r\n };\r\n checkResult.scriptFunction = scriptFunction;\r\n return checkResult;\r\n};\r\n","import {i18n} from \"../core.js\";\r\nfunction convertToChineseWeekday(englishInput) {\r\n // 清理输入:去除首尾空格并转为小写\r\n const input = englishInput.trim().toLowerCase();\r\n \r\n // 定义星期映射关系\r\n const weekdayMap = {\r\n 'mon': '周一', 'monday': '周一', 'mondays': '周一',\r\n 'tue': '周二', 'tues': '周二', 'tuesday': '周二', 'tuesdays': '周二',\r\n 'wed': '周三', 'wednesday': '周三', 'wednesdays': '周三',\r\n 'thu': '周四', 'thur': '周四', 'thurs': '周四', 'thursday': '周四', 'thursdays': '周四',\r\n 'fri': '周五', 'friday': '周五', 'fridays': '周五',\r\n 'sat': '周六', 'saturday': '周六', 'saturdays': '周六',\r\n 'sun': '周日', 'sunday': '周日', 'sundays': '周日'\r\n };\r\n \r\n // 使用正则表达式匹配所有可能的星期格式\r\n const pattern = /^(mon(day)?s?\\.?|tue(sday)?s?\\.?|wed(nesday)?s?\\.?|thu(r(sday)?)?s?\\.?|fri(day)?s?\\.?|sat(urday)?s?\\.?|sun(day)?s?\\.?)$/i;\r\n \r\n // 测试输入是否匹配星期格式\r\n if (!pattern.test(input)) {\r\n return '未知日期';\r\n }\r\n \r\n // 提取基础名称(去除复数形式和句点)\r\n const baseName = input\r\n .replace(/\\./g, '') // 移除所有句点\r\n .replace(/s$/, ''); // 移除结尾的's'(复数形式)\r\n \r\n // 特殊处理周四的多种缩写形式\r\n const normalized = baseName.startsWith('thu') ? 'thu' : baseName.slice(0, 3);\r\n \r\n // 映射到中文名称\r\n return weekdayMap[normalized] || weekdayMap[baseName] || '未知日期';\r\n}\r\nfunction extractYearMonth(str) {\r\n const regex = /(\\d{4})年(0?[1-9]|1[0-2])月/g;\r\n const matches = str.matchAll(regex);\r\n const result = [];\r\n for (const match of matches) {\r\n const year = parseInt(match[1], 10);\r\n const month = parseInt(match[2], 10);\r\n result.push({ year, month });\r\n }\r\n return result;\r\n}\r\n\r\nfunction extractDayNumbers(text) {\r\n // 匹配两种情况:\r\n // 1. \"数字+日\"格式(如\"5日\"、\"12日\")\r\n // 2. 独立的1-31数字(前后有边界)\r\n const regex = /(?:(\\b(0?[1-9]|[12]\\d|3[01])\\b)(?=日))|(\\b(0?[1-9]|[12]\\d|3[01])\\b)/g;\r\n \r\n const results = [];\r\n let match;\r\n \r\n while ((match = regex.exec(text)) !== null) {\r\n // match[2] 对应第一种情况(带\"日\"字的数字)\r\n // match[4] 对应第二种情况(独立数字)\r\n const numStr = match[2] || match[4];\r\n if (numStr) {\r\n // 转换为整数并验证范围\r\n const day = parseInt(numStr, 10);\r\n if (day >= 1 && day <= 31) {\r\n results.push(day);\r\n }\r\n }\r\n }\r\n return results;\r\n}\r\n\r\nfunction extractNumbersFromScenarios(text) {\r\n // 定义两种场景的正则表达式\r\n const patterns = [\r\n // 场景1: \"Other X pieces of data\"\r\n /Other\\s+(\\d+)\\s+pieces of data/gi,\r\n \r\n // 场景2: \"其他 X 条记录\"\r\n /其他\\s+(\\d+)\\s+条记录/g\r\n ];\r\n \r\n const results = [];\r\n \r\n // 遍历所有模式进行匹配\r\n patterns.forEach(pattern => {\r\n let match;\r\n while ((match = pattern.exec(text)) !== null) {\r\n // 提取捕获组中的数字\r\n const number = parseInt(match[1], 10);\r\n results.push({\r\n scenario: match[0], // 完整匹配的字符串\r\n number: number, // 提取的数字\r\n type: pattern.source.includes('Other') ? 'English' : 'Chinese'\r\n });\r\n }\r\n });\r\n \r\n return results;\r\n}\r\n\r\nexport const check =(element)=>{\r\n const checkResult = {\r\n result: false,\r\n innerHTMLMatch: null\r\n }\r\n const classes = element.classList;\r\n if(!classes){\r\n return checkResult;\r\n }\r\n // 检查日历标题\r\n if(classes.contains(\"fc-toolbar-title\")){\r\n let scriptFunction = (appID, lang)=>{\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n let yearMonthList = extractYearMonth(oldValue);\r\n if(yearMonthList.length>0){\r\n let yearMonth = yearMonthList[0];\r\n let year = yearMonth.year;\r\n let month = yearMonth.month;\r\n let newInnerHTML = `${year}/${month}`;\r\n let lang = window.localStorage.getItem(\"iportal_localID\") || \"zh-CN\";\r\n if(lang === \"zh-CN\")\r\n {\r\n newInnerHTML = `${year}年${month}月`;\r\n }\r\n element.innerHTML = newInnerHTML;\r\n }\r\n };\r\n let innerHTML = element.innerHTML;\r\n let testRule =/^\\d{4}年(0?[1-9]|1[0-2])月$/;\r\n if(testRule.test(innerHTML)){\r\n // console.log(\"检查smardaten平台日历标题 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:innerHTML,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查日历今天按钮\r\n if(classes.contains(\"fc-today-button\"))\r\n {\r\n let innerHTML = element.innerHTML;\r\n if(innerHTML.includes(\"今天\")||innerHTML.includes(\"today\")){\r\n // console.log(\"检查smardaten平台日历 今天 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{今天}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查日历标题\r\n if(classes.contains(\"fullCalendar_title_value\")){\r\n let innerHTML = element.innerHTML;\r\n const regex = /周[一二三四五六日]/;\r\n const regex_en = /^(mon(day)?s?\\.?|tue(sday)?s?\\.?|wed(nesday)?s?\\.?|thu(r(sday)?)?s?\\.?|fri(day)?s?\\.?|sat(urday)?s?\\.?|sun(day)?s?\\.?)$/i;\r\n let match = innerHTML.match(regex);\r\n if(match){\r\n // console.log(\"检查smardaten平台日历 周 元素:\",innerHTML);\r\n let day = match[0];\r\n let tempHTMLMatch ={\r\n oldValue:`$L{${day}}`\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n match = innerHTML.match(regex_en);\r\n if(match){\r\n // console.log(\"检查smardaten平台日历 周 元素:\",innerHTML);\r\n let day = match[0];\r\n let tempHTMLMatch ={\r\n oldValue:`$L{${convertToChineseWeekday(day)}}`\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n //日期单元格 \r\n if(classes.contains(\"fc-daygrid-day-number\"))\r\n {\r\n let scriptFunction = (appID, lang)=>{\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n let result = extractDayNumbers(oldValue);\r\n if(result&&result.length>0){\r\n let day = result[0];\r\n let newInnerHTML = `${day}`;\r\n let lang = window.localStorage.getItem(\"iportal_localID\") || \"zh-CN\";\r\n if(lang === \"zh-CN\")\r\n {\r\n newInnerHTML = `${day}日`;\r\n }\r\n element.innerHTML = newInnerHTML;\r\n }\r\n };\r\n let innerHTML = element.innerHTML;\r\n let match = extractDayNumbers(innerHTML);\r\n if(match.length>0){\r\n // console.log(\"检查smardaten平台日历 日 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:innerHTML,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 日历更多按钮\r\n if(classes.contains(\"fc-daygrid-more-link\")){\r\n let scriptFunction = (appID, lang)=>{\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n let result = extractNumbersFromScenarios(oldValue);\r\n if(result&&result.length>0){\r\n let day = result[0][\"number\"];\r\n let newInnerHTML = \"另外${X}条数据\";\r\n newInnerHTML =i18n(newInnerHTML, appID, lang);\r\n newInnerHTML = newInnerHTML.replace(\"${X}\",day);\r\n element.innerHTML = newInnerHTML;\r\n }\r\n };\r\n let innerHTML = element.innerHTML;\r\n let match = extractNumbersFromScenarios(innerHTML);\r\n if(match.length>0){\r\n // console.log(\"检查smardaten平台日历 更多 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:innerHTML,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 日历弹窗标题\r\n if(classes.contains(\"fc-popover-title\"))\r\n {\r\n // 正则表达式匹配中文日期格式\r\n const regex = /(\\d{4})年(\\d{1,2})月(\\d{1,2})日/g;\r\n let scriptFunction = (appID, lang)=>{\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n let match = oldValue.match(regex);\r\n if(match){\r\n // 替换函数\r\n const convertedText = oldValue.replace(regex, function(match, year, month, day) {\r\n // 格式化月份和日期为两位数\r\n const formattedMonth = month.padStart(2, '0');\r\n const formattedDay = day.padStart(2, '0');\r\n let result = `${year}/${formattedMonth}/${formattedDay}`;\r\n let lang = window.localStorage.getItem(\"iportal_localID\") || \"zh-CN\";\r\n if(lang === \"zh-CN\")\r\n {\r\n result = `${year}年${formattedMonth}月${formattedDay}日`;\r\n }\r\n // 返回新格式的日期\r\n return result;\r\n });\r\n element.innerHTML = convertedText;\r\n }\r\n };\r\n let innerHTML = element.innerHTML;\r\n let match = innerHTML.match(regex);\r\n if(match&&match.length>0){\r\n // console.log(\"检查smardaten平台日历 日 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:innerHTML,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n return checkResult;\r\n}","export const check =(element)=>{\n const checkResult = {\n result: false,\n innerHTMLMatch: null\n }\n const classes = element.classList;\n if(!classes){\n return checkResult;\n }\n let innerHTML = element.innerHTML;\n let oldValue = element.getAttribute(\"oldValue\");\n if(!oldValue)\n {\n oldValue = innerHTML;\n }\n // 检查删除确认对话框按钮 取消 确认\n if(classes.contains(\"ant-modal-title\"))\n {\n let innerHTML = element.innerHTML;\n if(innerHTML.includes(\"Select Data\")||innerHTML.includes(\"选择数据\")){\n // console.log(\"检查smardaten平台 Tip提问取消删除按钮:\",innerHTML);\n let tempHTMLMatch ={\n oldValue:'$L{选择数据}'\n }\n checkResult.result = true;\n checkResult.innerHTMLMatch = tempHTMLMatch;\n return checkResult;\n }\n }\n return checkResult;\n};","export const check = (element) => {\n const checkResult = {\n result: false,\n };\n const classes = element.classList;\n if (!classes) {\n return checkResult;\n }\n // 处理容器节点\n if (element.tagName === \"DIV\" && classes.contains(\"template-block\")) {\n let scriptFunction = (appID, lang) => {\n let divDom =element.parentNode;\n let divDom2;\n let appBlockDom;\n let comDom;\n let renderDom;\n if(divDom&&divDom.tagName===\"DIV\"){\n divDom2 = divDom.parentNode;\n if(divDom2&&divDom2.tagName===\"DIV\"){\n appBlockDom = divDom2.parentNode;\n if(appBlockDom&&appBlockDom.tagName===\"DIV\"&&appBlockDom.classList.contains(\"application-block\")){\n comDom= appBlockDom.parentNode;\n if(comDom&&comDom.tagName===\"DIV\"&&comDom.classList.contains(\"componentDiv\")){\n renderDom= comDom.parentNode;\n if(renderDom&&renderDom.tagName===\"DIV\"&&renderDom.classList.contains(\"render-all-blocks\")){\n //隐藏整个组件\n renderDom.style.height=\"100%\";\n comDom.style.height=\"100%\";\n appBlockDom.style.height=\"100%\";\n divDom2.style.height=\"100%\";\n divDom.style.height=\"100%\";\n element.style.height=\"100%\";\n //标记已经处理过\n element.setAttribute(\"viewDomID\", generateUniqueId());\n }\n }\n }\n }\n }\n };\n checkResult.result = true;\n checkResult.scriptFunction = scriptFunction;\n return checkResult;\n }\n return checkResult;\n};\n\nfunction generateUniqueId() {\n return `rjview_${Date.now()}`;\n}\n","import request from \"../request\";\r\nimport { registerEventListener } from \"../event\";\r\nimport { getPoratlAppID } from \"../portal\";\r\nimport { nextTick } from \"vue\";\r\nimport { check as tableI18nCheck } from \"./smardaten_i18n/table_i18n\";\r\nimport { check as catalogI18nCheck } from \"./smardaten_i18n/catalog_i18n\";\r\nimport { check as commonI18nCheck } from \"./commom_i18n/common_i18n\";\r\nimport { check as attributeI18nCheck } from \"./commom_i18n/attribute_i18n\";\r\nimport { check as calendarI18nCheck } from \"./smardaten_i18n/calendar_i18n\";\r\nimport { check as dialogI18nCheck } from \"./smardaten_i18n/dialog_i18n\";\r\nimport { check as domViewCheck } from \"./commom_view\";\r\nimport { i18n,checkTextFormat} from \"./core\";\r\n\r\n\r\nexport const getLanguages = async (appID) => {\r\n let queryData = {\r\n param: {\r\n appID: appID,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getAppLanguages`,\r\n queryData\r\n );\r\n let resultDatas = response.data.resultDatas || [];\r\n return resultDatas;\r\n};\r\n\r\nexport const updateI18nValue = (appID, key,localID, value) => {\r\n let realKey = `${appID}-${key}-${localID}`;\r\n window.customI18nObject.set(realKey, value);\r\n}\r\n\r\nexport function i18nText(key) {\r\n let app_id =getPoratlAppID();\r\n let langID = window.localStorage.getItem(\"iportal_localID\") || \"zh-CN\";\r\n return i18n(key,app_id,langID);\r\n}\r\n\r\nexport const loadi18nTexts = async (appID) => {\r\n let queryData = {\r\n param: { appID: appID},\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getAllTexts`,\r\n queryData\r\n );\r\n let resultDatas = response.data.resultDatas || [];\r\n window.customI18nObject = new Map();\r\n for (let item of resultDatas) {\r\n window.customI18nObject.set(`${appID}-${item.key}-${item.lang}`, item.value);\r\n }\r\n}\r\n\r\n/**\r\n * 检查元素是否有子DOM元素\r\n * @param {HTMLElement} element - 要检查的DOM元素\r\n * @returns {boolean} - 是否有子元素\r\n */\r\nfunction hasChildElements(element) {\r\n return element && element.children?.length > 0;\r\n}\r\n\r\n\r\nfunction generateUniqueId() {\r\n window.idCounter = window.idCounter || 0;\r\n return `i18n_${Date.now()}_${window.idCounter++}`;\r\n}\r\n\r\n/**\r\n * 检查平台特定元素并返回匹配结果\r\n * @param {*} element \r\n * @returns \r\n */\r\nfunction checkPlatformElementContent(element) {\r\n const checkContentResult = {\r\n result: false,\r\n innerHTMLMatch: null\r\n };\r\n let checkArr = [tableI18nCheck,catalogI18nCheck,calendarI18nCheck,dialogI18nCheck,commonI18nCheck];\r\n for(let i=0;i<checkArr.length;i++){\r\n let checkFunc = checkArr[i];\r\n let checkContentResult = checkFunc(element);\r\n if(checkContentResult.result){\r\n return checkContentResult;\r\n }\r\n }\r\n return checkContentResult;\r\n}\r\n\r\n\r\nexport function processElement(element) {\r\n\r\n if (!element) {\r\n return false;\r\n }\r\n \r\n // 仅处理元素节点\r\n if (element && element.nodeType !==Node.ELEMENT_NODE) {\r\n return false;\r\n }\r\n\r\n // 如果元素有子元素,递归处理子元素\r\n const hasChildren = hasChildElements(element);\r\n if (hasChildren) {\r\n let children = element.children;\r\n for (let i = 0; i < children.length; i++) {\r\n let child = children[i];\r\n if(child.nodeType === Node.ELEMENT_NODE)\r\n {\r\n let childLocalDomID = child.getAttribute(\"localDomID\");\r\n // 如果子元素有localDomID但不在缓存中,移除localDomID属性\r\n if(childLocalDomID && window.i18nElementsMap&&!window.i18nElementsMap.has(childLocalDomID)){\r\n unProcessElement(child);\r\n }\r\n }\r\n processElement(children[i]);\r\n }\r\n }\r\n\r\n // 检查innerHTML是否匹配(仅对没有子元素的元素)\r\n let innerHTMLMatch = null;\r\n\r\n const attrCheckResult = attributeI18nCheck(element);\r\n if(attrCheckResult.result){\r\n console.log(\"检查到属性匹配元素:\",element);\r\n }\r\n\r\n //检查是否是smardaten平台元素\r\n const checkContentResult = checkPlatformElementContent(element);\r\n if (checkContentResult.result) {\r\n innerHTMLMatch = checkContentResult.innerHTMLMatch;\r\n element.setAttribute(\"oldValue\", innerHTMLMatch.oldValue);\r\n }\r\n else\r\n {\r\n if(!hasChildren){\r\n //如果存在历史值,说明之前解析过,有可能是值需要刷新触发 \r\n let newValue = element.innerHTML;\r\n let newMatch = checkTextFormat(newValue);\r\n if(newMatch){\r\n innerHTMLMatch = newMatch;\r\n }\r\n else{\r\n newValue = element.getAttribute(\"oldValue\");\r\n if(!newValue)\r\n {\r\n newValue = element.innerHTML;\r\n }\r\n innerHTMLMatch = checkTextFormat(newValue);\r\n }\r\n if(innerHTMLMatch) {\r\n // console.log(\"检查到innerHTML匹配元素:\",element);\r\n element.setAttribute(\"oldValue\", newValue);\r\n }\r\n }\r\n }\r\n\r\n // 如果没有匹配的内容,则不处理\r\n if (!innerHTMLMatch&&!checkContentResult.result&&!attrCheckResult.result) {\r\n return false;\r\n }\r\n\r\n let elementId = element.getAttribute(\"localDomID\");\r\n if (!elementId) {\r\n elementId = generateUniqueId();\r\n }\r\n else\r\n {\r\n // 已经处理过的元素跳过\r\n return false;\r\n }\r\n\r\n element.setAttribute(\"localDomID\", elementId);\r\n\r\n if(!window.i18nElementsMap){\r\n window.i18nElementsMap = new Map();\r\n }\r\n // 添加到Map缓存\r\n window.i18nElementsMap.set(elementId, {\r\n dom: element,\r\n id: elementId,\r\n isScriptAction:innerHTMLMatch?innerHTMLMatch.isScriptAction||false:false,\r\n scriptFunction:innerHTMLMatch?innerHTMLMatch.scriptFunction||null:null,\r\n isAttibuteAction:attrCheckResult.result,\r\n attrFunction:attrCheckResult.scriptFunction||null,\r\n });\r\n // console.log(\"添加后元素缓冲数:\",window.i18nElementsMap.size);\r\n applyTranslation(element);\r\n return true;\r\n}\r\n\r\nfunction unProcessElement(element) {\r\n if (element && element.nodeType !== 1) {\r\n return;\r\n }\r\n let hasChildren = hasChildElements(element);\r\n if (hasChildren) {\r\n let children = element.children;\r\n for (let i = 0; i < children.length; i++) {\r\n unProcessElement(children[i]);\r\n }\r\n }\r\n const localDomID = element.getAttribute(\"localDomID\");\r\n if(localDomID){\r\n // console.log(`处理元素ID:${localDomID} 移除缓存`);\r\n element.removeAttribute(\"localDomID\");\r\n }\r\n if (localDomID && window.i18nElementsMap.has(localDomID)) {\r\n // let oldValue = element.getAttribute(\"oldValue\");\r\n // if(oldValue){\r\n // element.removeAttribute(\"oldValue\");\r\n // 更新元素的innerHTML\r\n // element.innerHTML = oldValue;\r\n // }\r\n window.i18nElementsMap.delete(localDomID);\r\n // console.log(\"移除后元素缓冲数:\",window.i18nElementsMap.size);\r\n }\r\n}\r\n\r\n/**\r\n * 应用翻译到单个元素\r\n * @param {HTMLElement} element - 要更新的DOM元素\r\n * @param {string} lang - 语言标识符\r\n */\r\nconst applyTranslation = async (element) => {\r\n let parentNode = element.parentNode;\r\n if(!parentNode){\r\n unProcessElement(element);\r\n console.log(\"元素已无父节点,移除缓存\");\r\n return;\r\n }\r\n let lang = window.localStorage.getItem(\"iportal_localID\") || \"zh-CN\";\r\n let appID = getPoratlAppID();\r\n const elementId = element.getAttribute(\"localDomID\");\r\n const cachedItem = window.i18nElementsMap.get(elementId);\r\n if (!cachedItem) return;\r\n // 处理属性\r\n if(cachedItem.isAttibuteAction)\r\n {\r\n cachedItem.attrFunction(appID,lang);\r\n }\r\n // 处理innerHTML\r\n if(cachedItem.isScriptAction)\r\n {\r\n cachedItem.scriptFunction(appID,lang);\r\n }\r\n else\r\n {\r\n const oldValue = element.getAttribute(\"oldValue\");\r\n if (oldValue) {\r\n // 创建正则表达式匹配所有 $L{...} 格式\r\n const regex = /\\$L\\{([^}]+)\\}/g;\r\n // 替换所有 $L{...} 占位符为翻译文本\r\n let newValue = oldValue;\r\n let match;\r\n while ((match = regex.exec(oldValue)) !== null) {\r\n const fullMatch = match[0];\r\n const placeholderKey = match[1];\r\n const translation = i18n(placeholderKey, appID, lang);\r\n newValue = newValue.replace(fullMatch, translation);\r\n }\r\n nextTick(() => {\r\n // 更新元素的innerHTML\r\n element.innerHTML = newValue;\r\n });\r\n }\r\n }\r\n};\r\n\r\nexport const initDomNodeI18NObserver = () => {\r\n if (!window.i18nElementsMap) {\r\n window.i18nElementsMap = new Map();\r\n } else {\r\n window.i18nElementsMap.clear();\r\n }\r\n registerEventListener(\"IPORTAL_LANGUAGE_CHANGE_EVENT\", async (lang) => {\r\n console.log(\"语言切换事件触发,更新已处理元素的翻译:\", lang);\r\n // 遍历Map,更新每个已处理元素的翻译\r\n for (const [elementId, item] of window.i18nElementsMap.entries()) {\r\n // console.log(\"更新元素翻译:\", elementId, item.dom);\r\n applyTranslation(item.dom);\r\n }\r\n });\r\n // 创建观察器实例\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n if (mutation.type === 'childList') {\r\n // 节点添加\r\n if (mutation.addedNodes.length > 0) {\r\n for (let i = 0; i < mutation.addedNodes.length; i++) {\r\n let node = mutation.addedNodes[i];\r\n // console.log(`处理新增节点:`,node);\r\n if(node.nodeType === Node.TEXT_NODE)\r\n {\r\n node = node.parentNode;\r\n }\r\n processElement(node);\r\n }\r\n }\r\n // 节点移除\r\n if (mutation.removedNodes.length > 0) {\r\n for (let i = 0; i < mutation.removedNodes.length; i++) {\r\n let node = mutation.removedNodes[i];\r\n // console.log(`处理移除节点:`,node);\r\n unProcessElement(node);\r\n }\r\n }\r\n }\r\n else if (mutation.type === 'characterData') {\r\n // 处理文本变化\r\n const oldValue = mutation.oldValue;\r\n const targetNode = mutation.target;\r\n const newValue = targetNode.data;\r\n // 创建日志条目并显示\r\n console.log(`文本修改: ${oldValue} → ${newValue}`);\r\n const parentElement = targetNode.parentNode;\r\n if(parentElement)\r\n {\r\n let localDomID = parentElement.getAttribute(\"localDomID\");\r\n // 如果有localDomID,说明之前处理过,先移除缓存\r\n if(localDomID)\r\n {\r\n unProcessElement(parentElement);\r\n }\r\n }\r\n processElement(parentElement);\r\n }\r\n });\r\n });\r\n\r\n // 配置观察选项\r\n const config = {\r\n childList: true, // 观察子节点变化\r\n subtree: true, // 观察所有后代节点\r\n attributes: false, // 不观察属性变化\r\n characterData: true, // 不观察文本内容变化\r\n characterDataOldValue: true\r\n };\r\n // 开始观察目标节点\r\n const targetNode = document.body;\r\n processElement(targetNode);\r\n observer.observe(targetNode, config);\r\n};\r\n\r\nexport const initDomNodeViewObserver = () => {\r\n // 创建观察器实例\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n if (mutation.type === 'childList') {\r\n // 节点添加\r\n if (mutation.addedNodes.length > 0) {\r\n for (let i = 0; i < mutation.addedNodes.length; i++) {\r\n let node = mutation.addedNodes[i];\r\n processViewElement(node);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n // 配置观察选项\r\n const config = {\r\n childList: true, // 观察子节点变化\r\n subtree: true, // 观察所有后代节点\r\n attributes: false, // 不观察属性变化\r\n characterData: true, // 不观察文本内容变化\r\n characterDataOldValue: true\r\n };\r\n // 开始观察目标节点\r\n const targetNode = document.body;\r\n processViewElement(targetNode);\r\n observer.observe(targetNode, config);\r\n};\r\n\r\n\r\n// 处理单个DOM元素的函数\r\nexport function processViewElement(element) {\r\n if (!element) {\r\n return false;\r\n }\r\n // 仅处理元素节点\r\n if (element && element.nodeType !==Node.ELEMENT_NODE) {\r\n return false;\r\n }\r\n // 如果元素有子元素,则不处理innerHTML\r\n const hasChildren = hasChildElements(element);\r\n if (hasChildren) {\r\n let children = element.children;\r\n for (let i = 0; i < children.length; i++) {\r\n let child = children[i];\r\n processViewElement(child);\r\n }\r\n }\r\n let checkState =element.getAttribute(\"viewDomID\");\r\n // 已经处理过的元素跳过\r\n if(checkState)\r\n {\r\n return false;\r\n }\r\n const viewCheckResult = domViewCheck(element);\r\n // 如果没有匹配的内容,则不处理\r\n if (!viewCheckResult.result) {\r\n return false;\r\n }\r\n viewCheckResult.scriptFunction();\r\n return true;\r\n}\r\n\r\n// 获取所有i18n的类型\r\nexport const getAllI18nTypes=async()=>{\r\n let requestData = {\r\n param: {},\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getAllI18nTypes`,\r\n requestData\r\n );\r\n let resultData = result.data.resultDatas;\r\n return resultData;\r\n};\r\n\r\nexport * from './core';","\r\nimport request from \"./request\";\r\nimport { UAParser } from 'ua-parser-js';\r\nimport CryptoJS from \"crypto-js\";\r\nimport { i18nText } from \"./i18n/i18n\";\r\n\r\n\r\n/**\r\n * \r\n * @returns 获取登录验证码图片\r\n */\r\nexport const getAuthPic = () => request.get(`/system/authority/getAuthPic?module=loginPassword`, { responseType: \"arraybuffer\" });\r\n\r\n\r\n\r\n/**\r\n * 登出账号\r\n * @param endside_type 0: web 1:手机\r\n * @returns {Promise<*>}\r\n * @param endside_type 0: web 1:手机\r\n *\r\n */\r\nexport const logoutAccount = async (endside_type) => {\r\n let resultData =await request.get(\r\n `/system/authority/logout?isMobileLogout=${endside_type}`\r\n );\r\n let response = JSON.parse(resultData.request.response);\r\n let resultCode = response.code;\r\n if (resultCode == \"10110020\") {\r\n window.sessionStorage.clear();\r\n return {\r\n code: resultCode,\r\n message: i18nText(response.message),\r\n };\r\n } else {\r\n return {\r\n code: resultCode,\r\n message: i18nText(response.message),\r\n };\r\n }\r\n};\r\n\r\n/**\r\n * 服务端解密\r\n */\r\nexport const serverDecrypt = async (decryptStr) => {\r\n let questUrl =`/ext/serverDecrypt`;\r\n let queryData = {\r\n param:{\r\n decryptStr:decryptStr,\r\n }\r\n }\r\n //保存的正则2级密码\r\n let resultData =await request.post(questUrl, JSON.stringify(queryData));\r\n decryptStr = resultData.data.decryptStr;\r\n return decryptStr;\r\n};\r\n\r\n/**\r\n * 解密\r\n */\r\nexport const viewDecrypt = async (decryptStr) => {\r\n let secretKey = await getViewKey();\r\n const decrypted = CryptoJS.AES.decrypt(decryptStr, secretKey).toString(\r\n CryptoJS.enc.Utf8\r\n );\r\n return decrypted;\r\n};\r\n\r\n/**\r\n * 加密\r\n */\r\nexport const viewEncrypt = async (decryptStr) => {\r\n let secretKey = await getViewKey();\r\n const encrypted = CryptoJS.AES.encrypt(decryptStr, secretKey).toString();\r\n return encrypted;\r\n};\r\n\r\n/**\r\n * 服务端加密\r\n */\r\nexport const serverEncrypt = async (encryptStr) => {\r\n let questUrl =`/ext/serverEncrypt`;\r\n let queryData = {\r\n param:{\r\n encryptStr:encryptStr,\r\n }\r\n }\r\n //保存的正则2级密码\r\n let resultData =await request.post(questUrl, JSON.stringify(queryData));\r\n encryptStr = resultData.data.encryptStr;\r\n return encryptStr;\r\n};\r\n\r\n/**\r\n * 切换门户登录\r\n */\r\nexport const switchPortalLogin = async (data, appid,endside_type) => {\r\n let old_key =window.sessionStorage.getItem(\"iportal_login_user_key\");\r\n old_key =await viewDecrypt(old_key);\r\n data.password = old_key;\r\n let resultData = await logoutAccount(endside_type);\r\n let resultCode = resultData.code;\r\n let message = resultData.message;\r\n //退出登录成功\r\n if (resultCode == \"10110020\") {\r\n let loginResult =await loginAccount(data, appid);\r\n return loginResult;\r\n }\r\n else {\r\n return {\r\n code: resultCode,\r\n message: i18nText(message),\r\n }\r\n }\r\n};\r\n\r\n\r\n/**\r\n * 是否是安全账号\r\n * @param {*} acccountName \r\n * @param {*} group_id \r\n * @returns \r\n */\r\nexport const isSecurityAccount = async (acccountName, group_id) => {\r\n let queryData = {\r\n param: {\r\n account_name: acccountName,\r\n group_id: group_id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/isSecurityAccount`,\r\n queryData\r\n );\r\n let isSecurityAccount = result.data.isSecurityAccount;\r\n return isSecurityAccount;\r\n};\r\n\r\n\r\n/**\r\n * 登录账号\r\n * @param data 登录数据\r\n * @param appid 应用ID\r\n *\r\n * @description\r\n * 登录时需要传入验证码(authPicCode)和应用ID(dataappId),\r\n * mobileOrWeb参数用于区分是移动端还是网页端登录。\r\n *\r\n * @returns\r\n */\r\nexport const loginAccount = async (data, appid) => {\r\n let questUrl = `/ext/loginAccount`;\r\n let password = await viewEncrypt(data.password);\r\n let queryData = {\r\n param: {\r\n account_view: data.account_view,\r\n groupid: data.groupid,\r\n password: password,\r\n account: data.account,\r\n appid: appid,\r\n },\r\n };\r\n //保存的正则2级密码\r\n let resultData = await request.post(questUrl, JSON.stringify(queryData));\r\n let code = resultData.data.code;\r\n let key_code = resultData.data.key_code;\r\n let old_code = resultData.data.old_code;\r\n let login_account_id = resultData.data.id;\r\n let message = resultData.data.message;\r\n //登录平台成功\r\n if (code == 10110004) {\r\n key_code = await viewDecrypt(key_code);\r\n key_code = window.appSdk.Encrypt(key_code);\r\n queryData.param.password = key_code;\r\n resultData = await request.post(\r\n `/system/authority/loginAccount4Application?authPicCode=${data.imageCode}&dataappId=${appid}&mobileOrWeb=web`,\r\n queryData.param,\r\n );\r\n let response = JSON.parse(resultData.request.response);\r\n code = response.code;\r\n message = response.message;\r\n if (code == 10110004) {\r\n let id = login_account_id;\r\n // 初始化解析器\r\n const parser = new UAParser();\r\n // 获取浏览器信息\r\n const browser = parser.getBrowser();\r\n let timestamp = new Date().getTime();\r\n let clientID = browser.name + \"_\" + browser.version + \"_\" + timestamp;\r\n window.sessionStorage.setItem(\"iportal_login_user_id\", id);\r\n window.sessionStorage.setItem(\"iportal_group_id\", data.groupid);\r\n window.sessionStorage.setItem(\"iportal_login_user_key\", old_code);\r\n window.sessionStorage.setItem(\"iportal_client_id\", clientID);\r\n window.sessionStorage.setItem(\"iportal_app_id\", appid);\r\n return {\r\n code: code,\r\n message: i18nText(message),\r\n };\r\n } else {\r\n return {\r\n code: code,\r\n message: i18nText(message),\r\n };\r\n }\r\n } else {\r\n return {\r\n code: code,\r\n message: i18nText(message),\r\n };\r\n }\r\n};\r\n\r\n/**\r\n * 获取密钥\r\n * @returns\r\n */\r\nexport const getViewKey = async () => {\r\n let queryData = {\r\n param: {},\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getViewKey`,\r\n queryData\r\n );\r\n let key = resultData.data.key;\r\n return key;\r\n};\r\n\r\n/**\r\n * 通过账号获取账号数量\r\n * @returns\r\n */\r\nexport const getAccountCountByName = async (name) => {\r\n let queryData = {\r\n param: {\r\n accountName: name,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getAccountCountByName`,\r\n queryData\r\n );\r\n let count = resultData.data.count;\r\n return count;\r\n};\r\n\r\n/**\r\n * 新建账户注册申请\r\n * @returns\r\n */\r\nexport const createRegistApply = async (registInfo) => {\r\n let queryData = {\r\n param: {\r\n registInfo: registInfo,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/createRegistApply`,\r\n queryData\r\n );\r\n let operateResult = resultData.data.operateResult;\r\n return operateResult;\r\n};\r\n","import request from \"./request\";\r\n\r\n/**\r\n * 查询资产\r\n * @param id 资产ID\r\n *\r\n */\r\nexport const queryAssetById = (id, count = 200) =>\r\n request.post(`/asset/getAssetData?asset_id=${id}&count=${count}`, {\r\n filters: [],\r\n });\r\n\r\n/**\r\n * 获取URL参数值\r\n * @param {} eventName\r\n * @param {*} actionFun\r\n */\r\nexport const getUrlParamValue = (urlStr, paramName) => {\r\n try {\r\n const url = new URL(urlStr);\r\n const value = url.searchParams.get(paramName);\r\n // 如果参数值包含#,则只返回#之前的部分\r\n if (value && value.indexOf(\"#\") !== -1) {\r\n return value.split(\"#\")[0];\r\n }\r\n return value;\r\n } catch (err) {\r\n console.error(\"URL 格式错误:\", err);\r\n return \"\";\r\n }\r\n};\r\n\r\n/**\r\n * 通过 URL 创建 File 对象\r\n * @param {string} url - 文件的网络 URL\r\n * @param {string} [filename] - 自定义文件名(可选,不传则从 URL 提取)\r\n * @returns {Promise<File>} - 返回 Promise 解析为 File 对象\r\n */\r\nexport const createFileFromUrl = async (url, filename) => {\r\n try {\r\n // 1. 发起网络请求获取文件\r\n const response = await fetch(url);\r\n if (!response.ok) {\r\n throw new Error(\r\n `网络请求失败: ${response.status} ${response.statusText}`\r\n );\r\n }\r\n\r\n // 2. 将响应转换为 Blob(保留原始 MIME 类型)\r\n const blob = await response.blob();\r\n\r\n // 3. 确定文件名(若未自定义则从 URL 提取)\r\n const finalFilename = filename || extractFilenameFromUrl(url);\r\n\r\n // 4. 构造 File 对象(Blob + 文件名 + 类型)\r\n return new File([blob], finalFilename, {\r\n type: blob.type, // 使用 Blob 的 MIME 类型(如 image/png)\r\n lastModified: Date.now(), // 可选:设置最后修改时间\r\n });\r\n } catch (error) {\r\n console.error(\"创建 File 失败:\", error);\r\n throw error;\r\n }\r\n};\r\n\r\n/**\r\n * 从 URL 中提取文件名(如 https://example.com/path/image.png → image.png)\r\n * @param {string} url - 文件 URL\r\n * @returns {string} - 提取的文件名\r\n */\r\nexport const extractFilenameFromUrl = (url) => {\r\n try {\r\n const urlObj = new URL(url);\r\n // 从路径中获取最后一个部分(文件名)\r\n return urlObj.pathname.split(\"/\").pop() || \"downloaded_file\";\r\n } catch (e) {\r\n return \"downloaded_file\"; // URL 解析失败时的默认文件名\r\n }\r\n};\r\n\r\n/**\r\n * 提取数组中不在另一个数组中的元素\r\n * @param {*} oldItems 基础比较数组\r\n * @param {*} newItems 被提取检测的数组\r\n * @returns\r\n */\r\nexport const extractNewItems = (oldItems, newItems) => {\r\n return oldItems.filter((item) => !newItems.includes(item));\r\n};\r\n\r\n/**\r\n * 获取远程文件大小(单位:字节)\r\n * @param {string} url - 文件的URL地址\r\n * @returns {Promise<number>} 文件大小(字节),失败时返回-1\r\n */\r\nexport const getFileSize = async (url) => {\r\n try {\r\n // 发送HEAD请求(不下载文件内容)\r\n const response = await fetch(url, {\r\n method: \"GET\",\r\n headers: { Range: \"bytes=0-0\" }, // 仅请求第 1 个字节\r\n });\r\n if (response.status !== 206) throw new Error(\"不支持 Range 请求\");\r\n const contentRange = response.headers.get(\"Content-Range\");\r\n const totalSize = contentRange?.match(/\\/(\\d+)$/)?.[1]; // 解析总大小(如 \"bytes 0-0/1000\" → 1000)\r\n return totalSize ? parseInt(totalSize, 10) : -1;\r\n } catch (error) {\r\n console.error(\"获取文件大小失败:\", error);\r\n return -1; // 返回-1表示失败\r\n }\r\n};\r\n// 获取i18n key\r\nexport const getI18nKey = (text) => {\r\n // 正则表达式匹配 $L{...} 格式\r\n const regex = /\\$L\\{([^}]+)\\}/g;\r\n let match = regex.exec(text);\r\n if (!match) return text;\r\n let key = match[1];\r\n return key;\r\n};\r\n\r\n// 查找最近的具有指定 class 的祖先节点\r\nexport const findClosestAncestorByClass = (element, className) => {\r\n let currentElement = element;\r\n while (currentElement) {\r\n // 检查当前元素是否包含目标 class\r\n if (\r\n currentElement.classList &&\r\n currentElement.classList.contains(className)\r\n ) {\r\n return currentElement;\r\n }\r\n // 向上遍历父节点\r\n currentElement = currentElement.parentElement;\r\n }\r\n // 未找到匹配的祖先节点\r\n return null;\r\n};\r\n\r\nexport const hasUrlParams=(url)=> {\r\n try {\r\n // 浏览器环境\r\n const urlObj = new URL(url, window.location.href);\r\n return urlObj.search.length > 0;\r\n } catch (e) {\r\n // Node.js 环境\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * 获取客户端IP\r\n * @returns \r\n */\r\nexport const getClientIp = async() => {\r\n let serverIP = `/ext/getClientIp`;\r\n //\r\n let resultData = await request.post(serverIP);\r\n let ipAddress = resultData?.data?.clientIp;\r\n return ipAddress\r\n}\r\n\r\n/**\r\n * 通用服务方法调用\r\n * @returns \r\n */\r\nexport const doRestPost = async(url,param) => {\r\n let resultData = await request.post(url, param);\r\n return resultData\r\n}\r\n","\r\nexport const addWindowTrustedOrigin = (origin) => {\r\n let SDATA_WINDOW_TRUSTED_ORIGINS = window.SDATA_WINDOW_TRUSTED_ORIGINS;\r\n if (!SDATA_WINDOW_TRUSTED_ORIGINS) window.SDATA_WINDOW_TRUSTED_ORIGINS = [];\r\n if (!SDATA_WINDOW_TRUSTED_ORIGINS.includes(origin)) {\r\n SDATA_WINDOW_TRUSTED_ORIGINS.push(origin);\r\n }\r\n}\r\nexport const removeWindowTrustedOrigin = (origin) => {\r\n let SDATA_WINDOW_TRUSTED_ORIGINS = window.SDATA_WINDOW_TRUSTED_ORIGINS;\r\n if (!SDATA_WINDOW_TRUSTED_ORIGINS) window.SDATA_WINDOW_TRUSTED_ORIGINS = [];\r\n let index = SDATA_WINDOW_TRUSTED_ORIGINS.indexOf(origin); // 查找元素在数组中的索引 \r\n if (index > -1) {\r\n SDATA_WINDOW_TRUSTED_ORIGINS.splice(index, 1); // 删除元素\r\n }\r\n}\r\n\r\nexport const addEventAction = (eventKey, eventAction) => {\r\n let sdataEventActions = window.sdataEventActions;\r\n if (!sdataEventActions) window.sdataEventActions = {};\r\n window.sdataEventActions[eventKey] = eventAction;\r\n}\r\n\r\nexport const removeEventAction = (eventKey) => {\r\n let sdataEventActions = window.sdataEventActions;\r\n if (!sdataEventActions) window.sdataEventActions = {};\r\n delete window.sdataEventActions[eventKey];\r\n}\r\n\r\nexport const initFrameWindowListener = () => {\r\n if(window.isFrameWindowInited) return;\r\n let SDATA_WINDOW_TRUSTED_ORIGINS = window.SDATA_WINDOW_TRUSTED_ORIGINS;\r\n if (!SDATA_WINDOW_TRUSTED_ORIGINS) window.SDATA_WINDOW_TRUSTED_ORIGINS = [];\r\n let sdataEventActions = window.sdataEventActions;\r\n if (!sdataEventActions) window.sdataEventActions = {};\r\n // 监听主页面的消息\r\n window.addEventListener(\"message\", async (event) => {\r\n // 步骤1:验证来源是否在白名单中\r\n const isTrusted = window.SDATA_WINDOW_TRUSTED_ORIGINS.some(\r\n (origin) => event.origin === origin || new RegExp(origin).test(event.origin)\r\n );\r\n if (!isTrusted) {\r\n console.log(\"拒绝非可信源消息:\", event.origin);\r\n return; // 直接终止处理\r\n }\r\n let eventKey = event.data?.eventKey;\r\n if (!eventKey) return;\r\n let eventSourceKey = event.origin;\r\n console.log(`收到${eventSourceKey}页面消息:`, event.data);\r\n if (eventKey === \"sdata_alllife_event_response\") {\r\n let eventOperateKey = event.data.eventOperateKey;\r\n let eventAction = window.sdataEventActions[eventOperateKey];\r\n //删除缓存方法\r\n delete window.sdataEventActions[eventOperateKey];\r\n if(eventAction)\r\n await eventAction(event.data.data,event);\r\n } \r\n else{\r\n let eventAction = window.sdataEventActions[eventKey];\r\n let responseData = {\r\n eventKey: \"sdata_alllife_event_response\",\r\n eventOperateKey: event.data.eventOperateKey,\r\n data: {},\r\n };\r\n if (eventAction) {\r\n let resultData = await eventAction(event.data.data,event);\r\n responseData.data =resultData;\r\n }\r\n event.source.postMessage(responseData, eventSourceKey);\r\n }\r\n });\r\n window.isFrameWindowInited = true;\r\n};\r\n\r\nexport const sendWindowMessage = async (targetWindow, originKey, eventKey, data, callback) => {\r\n let timestamp = new Date().getTime();\r\n let randomNum = Math.floor(Math.random() * 10000) + 1;\r\n let eventOperateKey = `${eventKey}_${timestamp}_${randomNum}`;\r\n addEventAction(eventOperateKey, callback);\r\n let postData = {\r\n eventOperateKey: eventOperateKey,\r\n eventKey: eventKey,\r\n data: data,\r\n };\r\n targetWindow.postMessage(postData, originKey);\r\n};","export class ChatClientMgr {\r\n constructor(params, handler) {\r\n this.handler = handler;\r\n this.actionKey = params.actionKey;\r\n this.appSKID = params.appSKID;\r\n this.imType = params.imType;\r\n this.groupID = params.groupID;\r\n this.userID = params.userID;\r\n this.chatType = params.chatType || 0;\r\n this.singleChatID = params.singleChatID || \"\";\r\n this.customParams =params.customParams || {};\r\n this.chartOrigin = params.chartOrigin;\r\n // console.log(\"ChatClientMgr init:\", this.actionKey);\r\n }\r\n makeKey(key) {\r\n return `${key}-${this.actionKey}`;\r\n }\r\n async init() {\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_get_access_token`),\r\n async (data) => {\r\n return await this.handler.getPortalAccessToken(data);\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_get_portal_user_info`),\r\n async (data) => {\r\n return await this.handler.getPortalUserInfo(data);\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_get_portal_user_sig`),\r\n async (data) => {\r\n let userID = data.userID;\r\n let platType = data.im_type;\r\n let groupID = data.group_id;\r\n return await this.handler.getPortalUserSig(userID, platType, groupID);\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_add_im_mapping`),\r\n async (data) => {\r\n let userID = data.userID;\r\n let platType = data.im_type;\r\n let userSig = data.userSig;\r\n return await this.handler.addIMMapping(userID, platType, userSig,this.groupID);\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_update_im_mapping`),\r\n async (data) => {\r\n return await this.handler.updateIMMapping(data);\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_get_users_by_group_id`),\r\n async (data) => {\r\n return await this.handler.getAllUserInfosByGroupID(data);\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_get_dpts_by_group_id`),\r\n async (data) => {\r\n return await this.handler.getChildrenOfficeInfosByID(data);\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_get_project_dpts_by_user_group_id`),\r\n async (data) => {\r\n return await this.handler.getPojectDptsByUserAndGroupID(data);\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_get_ai_robot_infos`),\r\n async (data) => {\r\n let groupID = data.groupID;\r\n let userID = data.userID;\r\n if (\r\n this.userID == userID &&\r\n this.groupID == groupID\r\n ) {\r\n return this.getAIRobotInfos();\r\n }\r\n return [];\r\n }\r\n );\r\n this.handler.addChatListener(this.makeKey(`sdata_get_test_user_sig`), async(data) => {\r\n let sdkAppID = data.SDKAppID;\r\n let userID = data.userID;\r\n let sigIDObject =await this.handler.genTestUserSig({\r\n SDKAppID: sdkAppID,\r\n userID: userID,\r\n });\r\n let sigID = sigIDObject.userSig;\r\n return sigID;\r\n });\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_send_message_to_chat_server`),\r\n async (data, event) => {\r\n let message = data.message;\r\n let robotID = message.from;\r\n let result = await this.sendMessageToChatServer(robotID, message);\r\n return result;\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_close_frame_window`),\r\n async (data, event) => {\r\n return this.handler.closeWindow();\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_get_portal_doc_info`),\r\n async (data, event) => {\r\n return this.handler.getPortalDocmentInfo(data);\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_chat_aiAgent_event`),\r\n async (data, event) => {\r\n return this.handler.onAIAgentEvent(data,event);\r\n }\r\n );\r\n this.handler.addChatListener(\r\n this.makeKey(`sdata_alllife_event_regist`),\r\n async (data, event) => {\r\n console.log(\"recive chat regist event data:\", data);\r\n this.appSKID = data.appid;\r\n this.imType = data.im_type;\r\n await this.initChatAIs();\r\n let charParams = {\r\n type: this.getChatTypeKey(this.chatType),\r\n singleChatID: this.singleChatID,\r\n customParams:this.customParams\r\n };\r\n this.handler.fireEventToChatWindow(\r\n event,\r\n this.chartOrigin,\r\n this.makeKey(\"sdata_alllife_initChat\"),\r\n charParams,\r\n (result) => {\r\n if (result) {\r\n console.log(\"chat init finished:\", result);\r\n this.handler.onChatInitFinished();\r\n }\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n getChatTypeKey(type){\r\n switch (type) {\r\n case 0:\r\n return \"IM_MULTIPLE_MODE\";\r\n case 1:\r\n return \"IM_SINGLE_MODE\";\r\n case 2:\r\n return \"IM_EMBED_MODE\";\r\n case 3:\r\n return \"IM_MOBILE_MULTIPLE_EMBED_MODE\";\r\n case 4:\r\n return \"IM_MOBILE_SINGLE_EMBED_MODE\";\r\n default:\r\n return \"IM_MULTIPLE_MODE\";\r\n }\r\n }\r\n\r\n async initChatAIs() {\r\n if(window.imClient)\r\n {\r\n this.chatAIClient = window.imClient;\r\n }\r\n else{\r\n\r\n let classDatas = await this.handler.getChatClientClasses();\r\n const { TencentCloudChat, TIMUploadPlugin } = classDatas;\r\n window.imClient =TencentCloudChat.create({\r\n SDKAppID: this.appSKID, // 替换为你的 SDKAppID\r\n storage: {\r\n enable: true, // 启用存储(可选,根据需求)\r\n },\r\n });\r\n window.imClient.registerPlugin({ \"tim-upload-plugin\": TIMUploadPlugin });\r\n window.imClient.on(TencentCloudChat.EVENT.SDK_READY,this.onChatAIReady.bind(this));\r\n window.imClient.charAIs={};\r\n this.chatAIClient = window.imClient;\r\n }\r\n if(!this.chatAIClient.charAIs){\r\n this.chatAIClient.charAIs = {};\r\n }\r\n let robotInfos = await this.handler.getAIRobotInfos(this.userID, this.groupID);\r\n if (robotInfos && robotInfos.length > 0) {\r\n robotInfos.forEach(async (robot) => {\r\n let robotKey = robot.id;\r\n if(!this.chatAIClient.charAIs[robotKey])\r\n {\r\n robot.chatID = robotKey;\r\n let userSig = await this.handler.getPortalUserSig(\r\n robotKey,\r\n this.imType,\r\n this.groupID\r\n );\r\n if (!userSig) {\r\n userSig= await this.generateUserSigAndAdd(robotKey);\r\n }\r\n robot.userSig = userSig;\r\n this.chatAIClient.charAIs[robotKey] = {\r\n robot: robot,\r\n messageCache: [],\r\n };\r\n }\r\n });\r\n }\r\n }\r\n\r\n async generateUserSigAndUpdate(robotKey)\r\n {\r\n let sigIDObject =await this.handler.genTestUserSig({\r\n SDKAppID: this.appSKID,\r\n userID: robotKey,\r\n });\r\n let userSig = sigIDObject.userSig;\r\n if(userSig)\r\n {\r\n await this.chatAIClient.login({\r\n userID: robotKey,\r\n userSig: userSig,\r\n });\r\n await this.chatAIClient.logout();\r\n let data={\r\n userID: robotKey,\r\n userSig: userSig,\r\n im_type: this.imType,\r\n group_id: this.groupID,\r\n }\r\n await this.handler.updateIMMapping(data);\r\n }\r\n return userSig;\r\n }\r\n\r\n async generateUserSigAndAdd(robotKey)\r\n {\r\n let sigIDObject =await this.handler.genTestUserSig({\r\n SDKAppID: this.appSKID,\r\n userID: robotKey,\r\n });\r\n let userSig = sigIDObject.userSig;\r\n if(userSig)\r\n {\r\n await this.chatAIClient.login({\r\n userID: robotKey,\r\n userSig: userSig,\r\n });\r\n await this.chatAIClient.logout();\r\n await this.handler.addIMMapping(robotKey, this.imType, userSig,this.groupID);\r\n }\r\n return userSig;\r\n }\r\n\r\n onChatAIReady(event) {\r\n let robotID = this.chatAIClient.lastRobotID;\r\n let robotInfo = this.getAIRobotInfoByID(robotID);\r\n console.log(`[AI chat] ${robotInfo.name}已经就绪:`, event);\r\n if (this.chatAIClient) {\r\n let messages = this.getAIRobotCacheMessagesByID(robotID);\r\n console.log(`[AI chat] ${robotInfo.name}就绪后查到的缓存信息:`, messages);\r\n console.log(`[AI chat] ${robotInfo.name}所有信息仓:`, this.chatAIClient.charAIs);\r\n if (messages && messages.length > 0) {\r\n const newMessages = [...messages];\r\n messages.splice(0, messages.length);\r\n newMessages.forEach((message) => {\r\n console.log(`[AI chat] ${robotInfo.name}发送缓存消息:`, message);\r\n this.sendMessageToChatServer(robotID, message);\r\n });\r\n }\r\n }\r\n }\r\n\r\n getAIRobotInfos() {\r\n let resultRobots = [];\r\n for (let key in this.chatAIClient.charAIs) {\r\n resultRobots.push(this.chatAIClient.charAIs[key].robot);\r\n }\r\n return resultRobots;\r\n }\r\n\r\n getAIRobotInfoByID(robotID) {\r\n return this.chatAIClient.charAIs[robotID] ? this.chatAIClient.charAIs[robotID].robot : null;\r\n }\r\n\r\n getAIRobotCacheMessagesByID(robotID) {\r\n return this.chatAIClient.charAIs[robotID] ? this.chatAIClient.charAIs[robotID].messageCache : [];\r\n }\r\n\r\n async sendMessageToChatServer(robotID, messageOption) {\r\n let robotInfo = this.getAIRobotInfoByID(robotID);\r\n if (this.chatAIClient.lastRobotID != robotID) {\r\n console.log(`[AI chat]需要新机器人回答,切换到新机器人${robotInfo.name}`);\r\n if (this.chatAIClient.lastRobotID) {\r\n await this.chatAIClient.logout();\r\n }\r\n try\r\n {\r\n await this.chatAIClient.login({\r\n userID: robotID,\r\n userSig: robotInfo.userSig,\r\n });\r\n }\r\n catch(err)\r\n {\r\n console.log(`[AI chat]${robotInfo.name}登录失败`, err);\r\n let code = err.code;\r\n if(code == 70001 )\r\n {\r\n console.log(`[AI chat]${robotInfo.name}UserSig过期,重新生成userSig`);\r\n let newUserSig= await this.generateUserSigAndUpdate(robotID);\r\n try{\r\n await this.chatAIClient.login({\r\n userID: robotID,\r\n userSig: newUserSig,\r\n });\r\n this.sendMessageToChatServer(robotID, messageOption);\r\n return;\r\n }\r\n catch(err)\r\n {\r\n console.log(`[AI chat]${robotInfo.name}重新登录失败`, err);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n this.chatAIClient.lastRobotID = robotID;\r\n if (this.chatAIClient && this.chatAIClient.isReady()) {\r\n let new_message = await this.chatAIClient.createTextMessage(\r\n messageOption\r\n );\r\n this.chatAIClient.sendMessage(new_message).then(\r\n (res) => {\r\n console.log(`[AI chat]${robotInfo.name}发送信息成功`, res);\r\n },\r\n (err) => {\r\n console.log(`[AI chat]${robotInfo.name}发送失败`, err);\r\n }\r\n );\r\n } else {\r\n let messageCache = this.getAIRobotCacheMessagesByID(robotID);\r\n messageCache.push(messageOption);\r\n console.log(`[AI chat]${robotInfo.name}未就绪,缓存后消息:`, messageCache);\r\n }\r\n }\r\n\r\n converToAIServerParams(message, robotInfo, param) {\r\n let prompt = \"\";\r\n let type = message.type;\r\n switch (type) {\r\n case \"TIMTextElem\":\r\n prompt = message.payload?.text || \"\";\r\n break;\r\n case \"TIMImageElem\":\r\n break;\r\n case \"TIMSoundElem\":\r\n break;\r\n case \"TIMVideoFileElem\":\r\n break;\r\n case \"TIMFileElem\":\r\n break;\r\n default:\r\n break;\r\n }\r\n let cloudCustomData = message.cloudCustomData || {};\r\n let conversation_id = cloudCustomData.conversation_id || \"\";\r\n let params = {\r\n prompt: prompt,\r\n params: param || {},\r\n robotKey: robotInfo.password,\r\n conversation_id: conversation_id || \"\",\r\n userID: message.from || \"\",\r\n };\r\n return params;\r\n }\r\n\r\n abort() {\r\n this.chatAIClient = null;\r\n }\r\n}\r\n","\r\nimport { getPortalAccessToken,\r\n getPortalUserInfo,\r\n getPortalUserSig,\r\n getAIRobotInfos,\r\n getAllUserInfosByGroupID,\r\n getChildrenOfficeInfosByID,\r\n getPojectDptsByUserAndGroupID,\r\n getPortalDocmentInfo,\r\n addIMMapping,\r\n updateIMMapping} from \"./portal\";\r\nimport { sendWindowMessage,addEventAction} from \"./iframe\";\r\nimport {getFileSize} from \"./utils\";\r\nimport request from \"./request\";\r\n\r\nexport const getRobotInfoByID=async(robotID,groupID)=>{\r\n let queryData = {\r\n \"param\": {\r\n \"id\": robotID,\r\n \"groupID\":groupID\r\n }\r\n };\r\n let result =await request.post(`/dataservice/rest/orchestration/getRobotInfoByID`,queryData);\r\n let robotInfo = result.data.robotInfo;\r\n return robotInfo;\r\n}\r\n\r\nexport const getIMHanlder =(customerHanlder) =>{\r\n let handler = {\r\n genTestUserSig: async (data) => {\r\n // return genTestUserSig(data);\r\n },\r\n getChatClientClasses: async () => {\r\n return [];\r\n },\r\n getAIRobotInfos: async (user_id, groupID) => {\r\n return getAIRobotInfos(user_id, groupID);\r\n },\r\n getPortalUserSig: async (robotKey, platType,groupID) => {\r\n return getPortalUserSig(robotKey, platType, groupID);\r\n },\r\n addIMMapping: async (robotKey, platType, userSig,groupID) => {\r\n return addIMMapping(robotKey, platType, groupID, userSig);\r\n },\r\n updateIMMapping: async (data) => {\r\n let robotKey = data.userID;\r\n let platType = data.im_type;\r\n let groupID = data.group_id;\r\n let userSig = data.userSig;\r\n return updateIMMapping(robotKey, platType, groupID, userSig);\r\n },\r\n getPortalAccessToken: async (data) => {\r\n let appKey = data.appKey;\r\n let appSecret = data.appSecret;\r\n return getPortalAccessToken(appKey, appSecret);\r\n },\r\n getPortalUserInfo: async (data) => {\r\n let code = data.code;\r\n let access_token = data.access_token;\r\n return getPortalUserInfo(code, access_token);\r\n },\r\n getAllUserInfosByGroupID: async (data) => {\r\n let groupID = data.groupID;\r\n return getAllUserInfosByGroupID(groupID);\r\n },\r\n getChildrenOfficeInfosByID: async (data) => {\r\n let groupID = data.groupID;\r\n return getChildrenOfficeInfosByID(groupID);\r\n },\r\n getPojectDptsByUserAndGroupID: async (data) => {\r\n let groupID = data.groupID;\r\n let userID = data.userID;\r\n return getPojectDptsByUserAndGroupID(userID, groupID);\r\n },\r\n closeWindow: () => {\r\n // this.visable = false;\r\n return true;\r\n },\r\n addChatListener: async (listenerKey, handler) => {\r\n await addEventAction(listenerKey, handler);\r\n },\r\n fireEventToChatWindow: async (event,chart_origin,key,params,handler) => {\r\n await sendWindowMessage(event.source, chart_origin, key, params, handler);\r\n },\r\n onChatInitFinished: async () => {\r\n // this.chatInitFinish = true;\r\n },\r\n onAIAgentEvent: async (data,event) => {\r\n // this.onAIAgentEvent(data,event);\r\n },\r\n getPortalDocmentInfo: async (data) => {\r\n let kb_doc_id = data.kb_doc_id;\r\n let doc_info = await getPortalDocmentInfo(kb_doc_id);\r\n let urlStr =doc_info?.summary;\r\n if (urlStr) {\r\n let urlObj =JSON.parse(urlStr);\r\n if (urlObj) {\r\n let url = urlObj[0].url;\r\n let home_page = window.smardaten_api_context_path;\r\n let finalUrl = `${home_page}/storage_area/public${url}`;\r\n let fileSize = await getFileSize(finalUrl);\r\n doc_info.fileSize = fileSize;\r\n }\r\n }\r\n return doc_info;\r\n }\r\n };\r\n handler={...handler,...customerHanlder};\r\n return handler;\r\n};\r\n\r\n\r\n\r\nexport * from \"./chat/ChatClientMgr\";","import request from \"./request\";\r\nimport {getPoratlAppID,getAppCustomData} from \"./portal\";\r\n\r\n\r\nexport const sendPostToAIAgent = async(queryData,successCallback,errorCallback) => {\r\n let appid =getPoratlAppID();\r\n let appCustomData = await getAppCustomData(appid);\r\n let aiAgentServerIP =appCustomData?.aiAgentServerIP ||\"\";\r\n if(!aiAgentServerIP){\r\n console.error(\"没有配置AI Agent服务地址,请联系管理员\");\r\n if(errorCallback)errorCallback(\"没有配置AI Agent服务地址,请联系管理员\");\r\n return;\r\n }\r\n let serverUrl = `${aiAgentServerIP}/addAndCleanDocument`;\r\n request.post(serverUrl, JSON.stringify(queryData)).then((res) => {\r\n console.log(\"发送消息成功:\", res);\r\n if(successCallback)successCallback(res);\r\n }).catch((error) => {\r\n console.error(\"发送消息失败:\", error);\r\n if(errorCallback)errorCallback(error);\r\n });\r\n}\r\n\r\nexport const getDifyFileType = (fileType) => {\r\n let typeOptions ={\r\n \"DOCX\":\"document\",\r\n \"TXT\":\"document\",\r\n \"MD\":\"document\",\r\n \"MARKDOWN\":\"document\",\r\n \"MDX\":\"document\",\r\n \"PDF\":\"document\",\r\n \"HTML\":\"document\",\r\n \"XLSX\":\"document\",\r\n \"XLS\":\"document\",\r\n \"VTT\":\"document\",\r\n \"DOC\":\"document\",\r\n \"CSV\":\"document\",\r\n \"EML\":\"document\",\r\n \"MSG\":\"document\",\r\n \"PPTX\":\"document\",\r\n \"PPT\":\"document\",\r\n \"XML\":\"document\",\r\n \"EPUB\":\"document\",\r\n \"JPG\":\"image\",\r\n \"JPEG\":\"image\",\r\n \"PNG\":\"image\",\r\n \"GIF\":\"image\",\r\n \"WEBP\":\"image\",\r\n \"MP3\":\"audio\",\r\n \"M4A\":\"audio\",\r\n \"WAV\":\"audio\",\r\n \"WEBM\":\"audio\",\r\n \"MPGA\":\"audio\",\r\n \"MP4\":\"video\",\r\n \"MOV\":\"video\",\r\n \"MPEG\":\"video\",\r\n }\r\n let key =fileType.toUpperCase();\r\n return typeOptions[key] || \"custom\";\r\n}\r\n\r\n /**\r\n * 从 URL 中提取文件名(如 https://example.com/path/image.png → image.png)\r\n * @param {string} url - 文件 URL\r\n * @returns {string} - 提取的文件名\r\n */\r\nexport const extractFilenameFromUrl=(url)=>{\r\n try {\r\n const urlObj = new URL(url);\r\n // 从路径中获取最后一个部分(文件名)\r\n return urlObj.pathname.split(\"/\").pop() || \"downloaded_file\";\r\n } catch (e) {\r\n return \"downloaded_file\"; // URL 解析失败时的默认文件名\r\n }\r\n}","import request from \"./request\";\n\nexport const sendSms = async(queryData,successCallback,errorCallback) => {\n let smsServerIP = `/ext/sendSms`;\n let options = {\n param:queryData\n }\n request.post(smsServerIP, JSON.stringify(options)).then((res) => {\n console.log(\"发送消息成功:\", res);\n if(successCallback)successCallback(res);\n }).catch((error) => {\n console.error(\"发送消息失败:\", error);\n if(errorCallback)errorCallback(error);\n });\n}\n\n/**\n * 登录账号\n * @param data 登录数据\n * @param appid 应用ID\n *\n * @description\n * 登录时需要传入验证码(authPicCode)和应用ID(dataappId),\n * mobileOrWeb参数用于区分是移动端还是网页端登录。\n *\n * @returns\n */\nexport const isSMSCodeValidate = async (smsCode,sms_service_name_type,beyond_type_id,account_id) => {\n let questUrl = `/ext/validateSMSCode`;\n let queryData = {\n param:{\n smsCode:smsCode,\n sms_service_name_type:sms_service_name_type,\n beyond_type_id:beyond_type_id,\n account_id:account_id\n }\n }\n //保存的正则2级密码\n let resultData =await request.post(questUrl, JSON.stringify(queryData));\n let data = resultData.data;\n return data;\n};"],"names":["registerEventListener","eventName","actionFun","eventBus","window","rjEventCenter","initEventCenter","register","console","log","Date","toLocaleString","require","default","destroyEventCenter","clearAll","removeEventListener","unregister","fireEvent","eventData","eventKey","hasListener","has","querystringify_1","apiContextPath","getInstance","prefix","startsWith","slice","length","endsWith","instance","axios","create","baseURL","timeout","validateStatus","status","headers","location","search","qs","parse","token","oldPost","post","url","data","config","VITE_SERVICE_BASE_URL","newUrl","call","defaults","interceptors","response","use","JSON","Blob","Promise","reject","result","error","prefixPath","getPoratlAppID","portal_app_id","sessionStorage","getItem","getCurrentAppID","app_id","appSdk","getAppId","localStorage","MobileAppId","getAppPortalMenuDatas","user_id","group_id","isPortalAction","appVariables","roleList","getRoleIDsByUserAndGroupID","portalMenuDatas","getMenuDatasByGroupID","menuDatas","filter","menuData","types","children","hasTargetMenu","forEach","type","newTypeChilden","child","role_ids","queryData_groupData","param","id","request","resultDatas","menuTypes","defaultMenuDatas","defaultMenuType","tempMenuDatas","concat","tempMenuType","finalMenuDatas","finaMenuTypes","tempMap","tempData","isList","push","tempTypeMap","tempType","getMenuMappingDatasByRoleIDs","quickMenuMappingDatas","filterObjectMap","menu_mapping_id","quickMenuMapping","transformPortalData","validateSSOPageLoaded","appSecret","returnUrl","resultCount","count","queryData","portal_role_ids","getPortalDocmentInfo","kb_doc_id","docInfo","getPlatformBortherMenusByMenuID","menu_id","sysMenuDatas","roleMenuMappingDatas","getPlatformMenuMappingsByRoleIDs","roleMenuMappingMap","mappingData","menuMaps","item","leaf_flag","iconClass","tempItem","index","name","isSys","actionType","action_type","datapp_id","sort","parent_id","parentItem","menuItem","key","data1","data2","Number","isNaN","mappingDatas","datas","menuTypeMaps","parentMaps","tempMenuData","title","image","beyond_type","menu_type","beyond_type_sort","menu_type_sort","typeID","is_app_defalut","tempParentMenu","parentTypes","parentType","find","tempTypeItem","type_childens","typeItem","menuTypeObj","value","menuList","menuType","tempCount","tempArrys","transformPortalQuickMenuDatas","quickDatas","defaultDatas","tempDatas","tempDatasMap","quickMenuMaps","label","parentChilden","transformPortalSystemMenuDatas","icon","getCurrentUserPortalPageID","userData","portal_id","getCurrentUserPortalMapping","portal_info","getPortalInfosByID","portalInfo","getTenetInfoByName","getUserAllMappngPortal","getPortalUserMappingInfos","operateData","responseData","userMappingData","portalMapping","getPortalPageConfig","pageID","pageConfigResponse","configStr","portal_page_config","setPortalPageConfig","configData","updateUserSelectPortal","portalMappingData","getPortalPageMenuID","appid","getMappingAppInfoByID","appID","groupID","resultData","appInfo","getLoginPageNotices","noticeInfos","getPortalNotices","getPortalAccessToken","appKey","get","getPortalUserInfo","code","access_token","getPortalUserSig","userID","platType","im_type","sigID","userSig","getPortalAppCustomConfig","requestData","configInfo","queryGroupIDByOfficeId","queryData_office","groupDptData","resultDptData","queryAppVariable","i","default_value","getThirdAppPathByKey","appkey","path","queryAndStoreAppVariable","setItem","addObjectUsedTimes","getObjectUseTimes","objectInfo","getPageIDByComponentID","componentID","page_id","getGroupMappingsByAccount","account","tenetGroupDatas","resultGroups","getGourpMappingsByPhoneNumber","phone","queryGroupInfosByOfficeId","getOfficeInfosByIDs","group_ids","ids","groupDatas","officeInfos","queryOfficeInfosById","officeID","officeData","getAPPInfosByID","getAllUserInfosByGroupID","getChildrenOfficeInfosByID","getPojectDptsByUserAndGroupID","dptDatas","officeDatas","userMappings","addIMMapping","getAIRobotInfos","infos","robotInfos","updateIMMapping","getAppCustomData","customData","getIntegrateAppInfoByID","savePortalI18nText","lang","beyondID","i18nType","getPhoneNumberByAccountName","accountName","i18n","localID","customI18nObject","checkTextFormat","text","regex","match","fullMatch","check","element","checkResult","innerHTMLMatch","classes","classList","contains","innerHTML","includes","tempHTMLMatch","oldValue","scriptFunction","scriptNode","node","childNodes","tagName","scriptNodes","nodeType","Node","TEXT_NODE","childNode","removeChild","scriptNodeItem","textNode","document","createTextNode","appendChild","isScriptAction","replace","getAttribute","isTextMatch","setAttribute","getOldValueNodeText","container","createElement","textContent","firstCheck","firstCheckResult","elementsArray","childNodeText","newValue","exec","placeholderKey","translation","el","checkAttributes","attr","attrValue","attrMatch","oldAttrValue","newAttrValue","attrKey","convertToChineseWeekday","englishInput","input","trim","toLowerCase","weekdayMap","pattern","test","baseName","normalized","extractYearMonth","str","matches","matchAll","year","parseInt","month","extractDayNumbers","results","numStr","day","extractNumbersFromScenarios","patterns","number","scenario","source","yearMonthList","yearMonth","newInnerHTML","testRule","regex_en","convertedText","formattedMonth","padStart","formattedDay","divDom","parentNode","divDom2","appBlockDom","comDom","renderDom","style","height","generateUniqueId","now","getLanguages","updateI18nValue","realKey","set","i18nText","langID","loadi18nTexts","Map","hasChildElements","idCounter","checkPlatformElementContent","checkContentResult","checkArr","tableI18nCheck","catalogI18nCheck","calendarI18nCheck","dialogI18nCheck","commonI18nCheck","checkFunc","processElement","ELEMENT_NODE","hasChildren","childLocalDomID","i18nElementsMap","unProcessElement","attrCheckResult","attributeI18nCheck","newMatch","elementId","dom","isAttibuteAction","attrFunction","applyTranslation","localDomID","removeAttribute","delete","cachedItem","nextTick","initDomNodeI18NObserver","clear","entries","observer","MutationObserver","mutations","mutation","addedNodes","removedNodes","targetNode","target","parentElement","childList","subtree","attributes","characterData","characterDataOldValue","body","observe","initDomNodeViewObserver","processViewElement","checkState","viewCheckResult","domViewCheck","getAllI18nTypes","getAuthPic","responseType","logoutAccount","endside_type","resultCode","message","serverDecrypt","decryptStr","questUrl","stringify","viewDecrypt","secretKey","getViewKey","decrypted","CryptoJS","AES","decrypt","toString","enc","Utf8","viewEncrypt","encrypted","encrypt","serverEncrypt","encryptStr","switchPortalLogin","old_key","password","loginResult","loginAccount","isSecurityAccount","acccountName","account_name","account_view","groupid","key_code","old_code","login_account_id","Encrypt","imageCode","parser","UAParser","browser","getBrowser","timestamp","getTime","clientID","version","getAccountCountByName","createRegistApply","registInfo","operateResult","queryAssetById","filters","getUrlParamValue","urlStr","paramName","URL","searchParams","indexOf","split","err","createFileFromUrl","filename","fetch","ok","Error","statusText","blob","finalFilename","extractFilenameFromUrl","File","lastModified","urlObj","pathname","pop","e","extractNewItems","oldItems","newItems","getFileSize","method","Range","contentRange","totalSize","getI18nKey","findClosestAncestorByClass","className","currentElement","hasUrlParams","href","getClientIp","serverIP","ipAddress","clientIp","doRestPost","addWindowTrustedOrigin","origin","SDATA_WINDOW_TRUSTED_ORIGINS","removeWindowTrustedOrigin","splice","addEventAction","eventAction","sdataEventActions","removeEventAction","initFrameWindowListener","isFrameWindowInited","addEventListener","event","isTrusted","some","RegExp","eventSourceKey","eventOperateKey","postMessage","sendWindowMessage","targetWindow","originKey","callback","randomNum","Math","floor","random","postData","ChatClientMgr","constructor","params","handler","actionKey","appSKID","imType","chatType","singleChatID","customParams","chartOrigin","makeKey","init","addChatListener","sdkAppID","SDKAppID","sigIDObject","genTestUserSig","robotID","from","sendMessageToChatServer","closeWindow","onAIAgentEvent","initChatAIs","charParams","getChatTypeKey","fireEventToChatWindow","onChatInitFinished","imClient","chatAIClient","classDatas","getChatClientClasses","TencentCloudChat","TIMUploadPlugin","storage","enable","registerPlugin","on","EVENT","SDK_READY","onChatAIReady","bind","charAIs","robot","robotKey","chatID","generateUserSigAndAdd","messageCache","generateUserSigAndUpdate","login","logout","lastRobotID","robotInfo","getAIRobotInfoByID","messages","getAIRobotCacheMessagesByID","newMessages","resultRobots","messageOption","newUserSig","isReady","new_message","createTextMessage","sendMessage","then","res","converToAIServerParams","prompt","payload","cloudCustomData","conversation_id","abort","getRobotInfoByID","getIMHanlder","customerHanlder","listenerKey","chart_origin","doc_info","summary","home_page","smardaten_api_context_path","finalUrl","fileSize","sendPostToAIAgent","successCallback","errorCallback","appCustomData","aiAgentServerIP","serverUrl","catch","getDifyFileType","fileType","typeOptions","toUpperCase","sendSms","smsServerIP","options","isSMSCodeValidate","smsCode","sms_service_name_type","beyond_type_id","account_id"],"mappings":"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","x_google_ignoreList":[1,4]}