@boteteam/utils 0.0.33 → 0.0.35

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 (98) hide show
  1. package/README.md +175 -9
  2. package/dist/cjs/aiGenerateFill.d.ts +2 -0
  3. package/dist/cjs/aiGenerateFill.js +44 -0
  4. package/dist/cjs/aiGenerateFill.js.map +7 -0
  5. package/dist/cjs/copyToClipboard.d.ts +6 -0
  6. package/dist/cjs/copyToClipboard.js +55 -0
  7. package/dist/cjs/copyToClipboard.js.map +7 -0
  8. package/dist/cjs/dealStorageData.d.ts +35 -0
  9. package/dist/cjs/dealStorageData.js +331 -0
  10. package/dist/cjs/dealStorageData.js.map +7 -0
  11. package/dist/cjs/docchainContextFill.d.ts +2 -0
  12. package/dist/cjs/docchainContextFill.js +38 -0
  13. package/dist/cjs/docchainContextFill.js.map +7 -0
  14. package/dist/cjs/formatModule/formatModuleData.js +53 -10
  15. package/dist/cjs/formatModule/formatModuleData.js.map +2 -2
  16. package/dist/cjs/formatModule/helpers/formatDescriptionsProps.js +13 -2
  17. package/dist/cjs/formatModule/helpers/formatDescriptionsProps.js.map +3 -3
  18. package/dist/cjs/formatModule/helpers/formatEchartLineProps.js +12 -5
  19. package/dist/cjs/formatModule/helpers/formatEchartLineProps.js.map +3 -3
  20. package/dist/cjs/formatModule/helpers/formatEchartPieProps.d.ts +1 -0
  21. package/dist/cjs/formatModule/helpers/formatEchartPieProps.js +26 -2
  22. package/dist/cjs/formatModule/helpers/formatEchartPieProps.js.map +3 -3
  23. package/dist/cjs/formatModule/helpers/formatFormProps.js +11 -0
  24. package/dist/cjs/formatModule/helpers/formatFormProps.js.map +3 -3
  25. package/dist/cjs/formatModule/helpers/formatHighCodeProps.js +3 -0
  26. package/dist/cjs/formatModule/helpers/formatHighCodeProps.js.map +2 -2
  27. package/dist/cjs/formatModule/helpers/formatImageProps.js +9 -3
  28. package/dist/cjs/formatModule/helpers/formatImageProps.js.map +2 -2
  29. package/dist/cjs/getClassPrefix.d.ts +2 -0
  30. package/dist/cjs/getClassPrefix.js +43 -0
  31. package/dist/cjs/getClassPrefix.js.map +7 -0
  32. package/dist/cjs/http.d.ts +10 -0
  33. package/dist/cjs/http.js +18 -0
  34. package/dist/cjs/http.js.map +2 -2
  35. package/dist/cjs/index.d.ts +10 -2
  36. package/dist/cjs/index.js +33 -4
  37. package/dist/cjs/index.js.map +3 -3
  38. package/dist/cjs/onCallSkillEvent.d.ts +21 -0
  39. package/dist/cjs/onCallSkillEvent.js +81 -0
  40. package/dist/cjs/onCallSkillEvent.js.map +7 -0
  41. package/dist/cjs/treeUtils.js +1 -1
  42. package/dist/cjs/treeUtils.js.map +2 -2
  43. package/dist/cjs/unitConversion.d.ts +2 -0
  44. package/dist/cjs/unitConversion.js +45 -0
  45. package/dist/cjs/unitConversion.js.map +7 -0
  46. package/dist/cjs/watermark.d.ts +0 -28
  47. package/dist/cjs/watermark.js +4 -277
  48. package/dist/cjs/watermark.js.map +2 -2
  49. package/dist/esm/aiGenerateFill.d.ts +2 -0
  50. package/dist/esm/aiGenerateFill.js +17 -0
  51. package/dist/esm/aiGenerateFill.js.map +1 -0
  52. package/dist/esm/copyToClipboard.d.ts +6 -0
  53. package/dist/esm/copyToClipboard.js +23 -0
  54. package/dist/esm/copyToClipboard.js.map +1 -0
  55. package/dist/esm/dealStorageData.d.ts +35 -0
  56. package/dist/esm/dealStorageData.js +441 -0
  57. package/dist/esm/dealStorageData.js.map +1 -0
  58. package/dist/esm/docchainContextFill.d.ts +2 -0
  59. package/dist/esm/docchainContextFill.js +17 -0
  60. package/dist/esm/docchainContextFill.js.map +1 -0
  61. package/dist/esm/formatModule/formatModuleData.js +58 -11
  62. package/dist/esm/formatModule/formatModuleData.js.map +1 -1
  63. package/dist/esm/formatModule/helpers/formatDescriptionsProps.js +20 -3
  64. package/dist/esm/formatModule/helpers/formatDescriptionsProps.js.map +1 -1
  65. package/dist/esm/formatModule/helpers/formatEchartLineProps.js +12 -5
  66. package/dist/esm/formatModule/helpers/formatEchartLineProps.js.map +1 -1
  67. package/dist/esm/formatModule/helpers/formatEchartPieProps.d.ts +1 -0
  68. package/dist/esm/formatModule/helpers/formatEchartPieProps.js +30 -5
  69. package/dist/esm/formatModule/helpers/formatEchartPieProps.js.map +1 -1
  70. package/dist/esm/formatModule/helpers/formatFormProps.js +8 -0
  71. package/dist/esm/formatModule/helpers/formatFormProps.js.map +1 -1
  72. package/dist/esm/formatModule/helpers/formatHighCodeProps.js +6 -1
  73. package/dist/esm/formatModule/helpers/formatHighCodeProps.js.map +1 -1
  74. package/dist/esm/formatModule/helpers/formatImageProps.js +9 -3
  75. package/dist/esm/formatModule/helpers/formatImageProps.js.map +1 -1
  76. package/dist/esm/getClassPrefix.d.ts +2 -0
  77. package/dist/esm/getClassPrefix.js +15 -0
  78. package/dist/esm/getClassPrefix.js.map +1 -0
  79. package/dist/esm/http.d.ts +10 -0
  80. package/dist/esm/http.js +90 -58
  81. package/dist/esm/http.js.map +1 -1
  82. package/dist/esm/index.d.ts +10 -2
  83. package/dist/esm/index.js +9 -3
  84. package/dist/esm/index.js.map +1 -1
  85. package/dist/esm/onCallSkillEvent.d.ts +21 -0
  86. package/dist/esm/onCallSkillEvent.js +90 -0
  87. package/dist/esm/onCallSkillEvent.js.map +1 -0
  88. package/dist/esm/treeUtils.js +1 -3
  89. package/dist/esm/treeUtils.js.map +1 -1
  90. package/dist/esm/unitConversion.d.ts +2 -0
  91. package/dist/esm/unitConversion.js +21 -0
  92. package/dist/esm/unitConversion.js.map +1 -0
  93. package/dist/esm/watermark.d.ts +0 -28
  94. package/dist/esm/watermark.js +2 -411
  95. package/dist/esm/watermark.js.map +1 -1
  96. package/dist/umd/index.min.js +1 -1
  97. package/dist/umd/index.min.js.map +1 -1
  98. package/package.json +8 -3
@@ -28,12 +28,18 @@ var formatImageProps = ({
28
28
  parameters,
29
29
  options = {}
30
30
  }) => {
31
- var _a, _b, _c, _d;
31
+ var _a, _b, _c, _d, _e, _f, _g, _h;
32
32
  const { dataSource } = options;
33
33
  const res = {};
34
34
  if ((dataSource == null ? void 0 : dataSource.dataType) === "staticData" && Array.isArray(dataSource == null ? void 0 : dataSource.fileList) && (dataSource == null ? void 0 : dataSource.fileList.length) > 0) {
35
- res.src = (0, import_file.getFileUrlById)((_b = (_a = dataSource == null ? void 0 : dataSource.fileList) == null ? void 0 : _a[0]) == null ? void 0 : _b.fileId);
36
- res.alt = (_d = (_c = dataSource == null ? void 0 : dataSource.fileList) == null ? void 0 : _c[0]) == null ? void 0 : _d.fileName;
35
+ const fileId = (_b = (_a = dataSource == null ? void 0 : dataSource.fileList) == null ? void 0 : _a[0]) == null ? void 0 : _b.fileId;
36
+ const fileInfoId = (_d = (_c = dataSource == null ? void 0 : dataSource.fileList) == null ? void 0 : _c[0]) == null ? void 0 : _d.fileInfoId;
37
+ const fileName = (_f = (_e = dataSource == null ? void 0 : dataSource.fileList) == null ? void 0 : _e[0]) == null ? void 0 : _f.fileName;
38
+ res.src = (0, import_file.getFileUrlById)(fileId);
39
+ res.alt = (_h = (_g = dataSource == null ? void 0 : dataSource.fileList) == null ? void 0 : _g[0]) == null ? void 0 : _h.fileName;
40
+ res.fileId = fileId;
41
+ res.fileInfoId = fileInfoId;
42
+ res.fileName = fileName;
37
43
  }
38
44
  if ((dataSource == null ? void 0 : dataSource.dataType) === "context" && (dataSource == null ? void 0 : dataSource.fileUrl)) {
39
45
  res.src = (0, import_treeUtils.getParamsContentByParamKeys)(dataSource == null ? void 0 : dataSource.fileUrl, parameters) || "";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/formatModule/helpers/formatImageProps.ts"],
4
- "sourcesContent": ["import { getParamsContentByParamKeys } from '../../treeUtils';\nimport { getFileUrlById } from '../../file';\n\nexport type formatImagePropsType = {\n options?: {\n dataSource?: {[key:string]: any}\n }\n parameters?: {[key:string]: any};\n}\n\nconst formatImageProps = ({\n parameters,\n options = {},\n}: formatImagePropsType):{[key:string]: any} => {\n const { dataSource } = options;\n const res:{[key:string]: any} = {};\n if (\n dataSource?.dataType === 'staticData' &&\n Array.isArray(dataSource?.fileList) &&\n dataSource?.fileList.length > 0\n ) {\n res.src = getFileUrlById(dataSource?.fileList?.[0]?.fileId);\n res.alt = dataSource?.fileList?.[0]?.fileName;\n }\n if (\n dataSource?.dataType === 'context' &&\n dataSource?.fileUrl\n ) {\n res.src = getParamsContentByParamKeys(dataSource?.fileUrl, parameters) || '';\n res.alt = getParamsContentByParamKeys(dataSource?.fileDesc, parameters) || '';\n }\n return res;\n};\n\nexport default formatImageProps;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA4C;AAC5C,kBAA+B;AAS/B,IAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA,UAAU,CAAC;AACb,MAAgD;AAbhD;AAcE,QAAM,EAAE,WAAW,IAAI;AACvB,QAAM,MAA0B,CAAC;AACjC,OACE,yCAAY,cAAa,gBACrB,MAAM,QAAQ,yCAAY,QAAQ,MAClC,yCAAY,SAAS,UAAS,GAClC;AACA,QAAI,UAAM,6BAAe,oDAAY,aAAZ,mBAAuB,OAAvB,mBAA2B,MAAM;AAC1D,QAAI,OAAM,oDAAY,aAAZ,mBAAuB,OAAvB,mBAA2B;AAAA,EACvC;AACA,OACE,yCAAY,cAAa,cACzB,yCAAY,UACZ;AACA,QAAI,UAAM,8CAA4B,yCAAY,SAAS,UAAU,KAAK;AAC1E,QAAI,UAAM,8CAA4B,yCAAY,UAAU,UAAU,KAAK;AAAA,EAC7E;AACA,SAAO;AACT;AAEA,IAAO,2BAAQ;",
4
+ "sourcesContent": ["import { getParamsContentByParamKeys } from '../../treeUtils';\nimport { getFileUrlById } from '../../file';\n\nexport type formatImagePropsType = {\n options?: {\n dataSource?: {[key:string]: any}\n }\n parameters?: {[key:string]: any};\n}\n\nconst formatImageProps = ({\n parameters,\n options = {},\n}: formatImagePropsType):{[key:string]: any} => {\n const { dataSource } = options;\n const res:{[key:string]: any} = {};\n if (\n dataSource?.dataType === 'staticData' &&\n Array.isArray(dataSource?.fileList) &&\n dataSource?.fileList.length > 0\n ) {\n const fileId = dataSource?.fileList?.[0]?.fileId;\n const fileInfoId = dataSource?.fileList?.[0]?.fileInfoId;\n const fileName = dataSource?.fileList?.[0]?.fileName;\n res.src = getFileUrlById(fileId);\n res.alt = dataSource?.fileList?.[0]?.fileName;\n res.fileId = fileId;\n res.fileInfoId = fileInfoId;\n res.fileName = fileName;\n }\n if (\n dataSource?.dataType === 'context' &&\n dataSource?.fileUrl\n ) {\n res.src = getParamsContentByParamKeys(dataSource?.fileUrl, parameters) || '';\n res.alt = getParamsContentByParamKeys(dataSource?.fileDesc, parameters) || '';\n }\n return res;\n};\n\nexport default formatImageProps;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA4C;AAC5C,kBAA+B;AAS/B,IAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA,UAAU,CAAC;AACb,MAAgD;AAbhD;AAcE,QAAM,EAAE,WAAW,IAAI;AACvB,QAAM,MAA0B,CAAC;AACjC,OACE,yCAAY,cAAa,gBACrB,MAAM,QAAQ,yCAAY,QAAQ,MAClC,yCAAY,SAAS,UAAS,GAClC;AACA,UAAM,UAAS,oDAAY,aAAZ,mBAAuB,OAAvB,mBAA2B;AAC1C,UAAM,cAAa,oDAAY,aAAZ,mBAAuB,OAAvB,mBAA2B;AAC9C,UAAM,YAAW,oDAAY,aAAZ,mBAAuB,OAAvB,mBAA2B;AAC5C,QAAI,UAAM,4BAAe,MAAM;AAC/B,QAAI,OAAM,oDAAY,aAAZ,mBAAuB,OAAvB,mBAA2B;AACrC,QAAI,SAAS;AACb,QAAI,aAAa;AACjB,QAAI,WAAW;AAAA,EACjB;AACA,OACE,yCAAY,cAAa,cACzB,yCAAY,UACZ;AACA,QAAI,UAAM,8CAA4B,yCAAY,SAAS,UAAU,KAAK;AAC1E,QAAI,UAAM,8CAA4B,yCAAY,UAAU,UAAU,KAAK;AAAA,EAC7E;AACA,SAAO;AACT;AAEA,IAAO,2BAAQ;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,2 @@
1
+ declare const getClassPrefix: (componentName?: string, prefix?: string) => string;
2
+ export default getClassPrefix;
@@ -0,0 +1,43 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/getClassPrefix.ts
30
+ var getClassPrefix_exports = {};
31
+ __export(getClassPrefix_exports, {
32
+ default: () => getClassPrefix_default
33
+ });
34
+ module.exports = __toCommonJS(getClassPrefix_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_config_provider = require("antd/es/config-provider");
37
+ var getClassPrefix = (componentName = "", prefix) => {
38
+ const { getPrefixCls: antGetPrefixCls } = import_react.default.useContext(import_config_provider.ConfigContext);
39
+ const antPrefixCls = prefix === void 0 || prefix === "" ? antGetPrefixCls() : antGetPrefixCls(prefix);
40
+ return `${antPrefixCls}-yanxi-dialog${componentName ? `-${componentName}` : ""}`;
41
+ };
42
+ var getClassPrefix_default = getClassPrefix;
43
+ //# sourceMappingURL=getClassPrefix.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/getClassPrefix.ts"],
4
+ "sourcesContent": ["import React from 'react';\nimport { ConfigContext } from 'antd/es/config-provider';\n\nconst getClassPrefix = (\n componentName: string = '', // 业务组件名称\n prefix?: string, // 可选,传入时作为 suffix 传给 getPrefixCls;不传或空时获取根前缀\n) => {\n const { getPrefixCls: antGetPrefixCls } = React.useContext(ConfigContext);\n // antd getPrefixCls(suffix) 有 suffix 时返回 \"ant-\" + suffix,传 'ant' 会得到 'ant-ant'\n // 获取根前缀需不传参或传 undefined\n const antPrefixCls = (prefix === undefined || prefix === '') ? antGetPrefixCls() : antGetPrefixCls(prefix);\n return `${antPrefixCls}-yanxi-dialog${componentName ? `-${componentName}` : ''}`;\n};\n\nexport default getClassPrefix;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,6BAA8B;AAE9B,IAAM,iBAAiB,CACrB,gBAAwB,IACxB,WACG;AACH,QAAM,EAAE,cAAc,gBAAgB,IAAI,aAAAA,QAAM,WAAW,oCAAa;AAGxE,QAAM,eAAgB,WAAW,UAAa,WAAW,KAAM,gBAAgB,IAAI,gBAAgB,MAAM;AACzG,SAAO,GAAG,4BAA4B,gBAAgB,IAAI,kBAAkB;AAC9E;AAEA,IAAO,yBAAQ;",
6
+ "names": ["React"]
7
+ }
@@ -10,6 +10,7 @@ declare const request: {
10
10
  setTenantId: (tenantId: string) => void;
11
11
  getManagerUrl: (route?: string | null) => string | null;
12
12
  getUserIconUrl: (userId?: string, updatedTime?: string, isSecurity?: boolean) => string;
13
+ getPortalUrl: (route?: string | null) => string | null;
13
14
  getBotUrl: (route?: string | null) => string | null;
14
15
  getBotIconUrl: (tenantId?: string, botId?: string, updatedTime?: string, isSecurity?: boolean) => string | undefined;
15
16
  getPlatBotIconUrl: (platBotId: string) => string | undefined;
@@ -31,12 +32,21 @@ declare const request: {
31
32
  modelId: string;
32
33
  tenantId: string;
33
34
  }) => string | undefined;
35
+ getGatewayIcon: ({ gatewayId, tenantId, updatedTime }: {
36
+ gatewayId: string;
37
+ tenantId?: string | undefined;
38
+ updatedTime?: string | undefined;
39
+ }) => string;
34
40
  getDataTableIcon: ({ tableId, tenantId, updatedTime, isSecurity }: {
35
41
  tableId: string;
36
42
  tenantId: string;
37
43
  updatedTime?: string | undefined;
38
44
  isSecurity?: boolean | undefined;
39
45
  }) => string | undefined;
46
+ getCompIconUrl: ({ pageCompId, tenantId }: {
47
+ pageCompId: string;
48
+ tenantId: string;
49
+ }) => string | undefined;
40
50
  docChain: {
41
51
  referenceDocUrl: ({ tenantId, docId, token, }: {
42
52
  [key: string]: string;
package/dist/cjs/http.js CHANGED
@@ -114,8 +114,10 @@ var getAccessUrl = (url) => {
114
114
  };
115
115
  var managerUrl = getAccessUrl(process.env.BOTE_MANAGER_URL);
116
116
  var botUrl = getAccessUrl(process.env.BOTE_BOT_URL);
117
+ var portalUrl = getAccessUrl(process.env.BOTE_PORTAL_URL);
117
118
  var getManagerUrl = (route) => route ? `${managerUrl}#${route}` : managerUrl;
118
119
  var getBotUrl = (route) => route ? `${botUrl}#${route}` : botUrl;
120
+ var getPortalUrl = (route) => route ? `${portalUrl}#${route}` : portalUrl;
119
121
  var request = {
120
122
  getBaseUrl: () => baseUrl,
121
123
  setUrlPrefix: (prefix) => {
@@ -136,6 +138,7 @@ var request = {
136
138
  }
137
139
  return url;
138
140
  },
141
+ getPortalUrl,
139
142
  getBotUrl,
140
143
  // 获取智能应用图标地址
141
144
  getBotIconUrl: (tenantId, botId, updatedTime, isSecurity = true) => {
@@ -212,6 +215,14 @@ var request = {
212
215
  }
213
216
  return void 0;
214
217
  },
218
+ // 获取发布环境图标
219
+ getGatewayIcon: ({ gatewayId, tenantId, updatedTime }) => {
220
+ let url = `${baseUrl}/manager/publish/gateway/getGatewayIcon?tenantId=${tenantId}&gatewayId=${gatewayId}`;
221
+ if (updatedTime) {
222
+ url += `&_=${updatedTime.replace(/\D/g, "")}`;
223
+ }
224
+ return url;
225
+ },
215
226
  getDataTableIcon: ({ tableId, tenantId, updatedTime, isSecurity = true }) => {
216
227
  if (tableId) {
217
228
  const newUrlParams = new URLSearchParams();
@@ -228,6 +239,13 @@ var request = {
228
239
  }
229
240
  return void 0;
230
241
  },
242
+ getCompIconUrl: ({ pageCompId, tenantId }) => {
243
+ if (pageCompId) {
244
+ const url = `${baseUrl}/manager/skill/pageComp/getCompIcon?pageCompId=${pageCompId}&tenantId=${tenantId}`;
245
+ return url;
246
+ }
247
+ return void 0;
248
+ },
231
249
  // 构造 DocChain 相关地址的辅助方法
232
250
  docChain: {
233
251
  referenceDocUrl: ({
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/http.ts"],
4
- "sourcesContent": ["// import CookieUtil from './CookieUtils';\nimport security from '@lingxiteam/security';\nimport { getLocation } from './environment';\n\nexport const tenantIdSessionKey: string = 'botSelectedTenantID';\n\nconst http = (url: string, config: any) => {\n // const token = localStorage.getItem('X-Auth-Token');\n // config.headers['X-Auth-Token'] = token;\n config.headers['content-type'] = 'application/json;charset=UTF-8';\n\n // 获取 token\n const token = sessionStorage.getItem('token') as string;\n if (token) {\n config.headers.Authorization = `Bearer ${token}`;\n }\n\n // 兼容生产环境\n const tenantId = currentTenantId || sessionStorage.getItem(tenantIdSessionKey) || sessionStorage.getItem('managerSelectedTenantID');\n if (tenantId) {\n config.headers['Tenant-Id'] = tenantId;\n }\n\n return new Promise((resolve, rejects) => {\n fetch(url, config)\n .then((response) => {\n const contentType: string | null = response.headers.get('content-type');\n if (contentType) {\n if (\n /application\\/octet-stream/.test(contentType) ||\n /application\\/zip/.test(contentType) ||\n /application\\/vnd\\.ms-excel/.test(contentType)\n ) {\n return response.blob();\n }\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (/text\\/html/.test(contentType)) {\n return response.text();\n }\n }\n return response;\n })\n .then((data) => {\n if (Object.prototype.toString.call(data) === '[object Blob]') {\n if (\n typeof data === 'object' &&\n Object.hasOwnProperty.call(data, 'resultCode') &&\n String(data.resultCode) !== '0'\n ) {\n return Promise.reject(data);\n }\n return data;\n }\n if (Array.isArray(data)) return data;\n if (String(data?.resultCode) === '0') {\n resolve(data?.resultObject);\n } else if (data?.resultMsg) {\n rejects(data?.resultMsg);\n }\n return data;\n })\n .catch((err) => {\n rejects(err);\n });\n });\n};\n\nlet baseUrl = `${process.env.REACT_APP_REQ_PREFIX}/bote`;\nconst getUrl = (url: string, params: any = {}) => {\n let paramsArr = '';\n if (params && Object.keys(params).length > 0) {\n paramsArr = Object.keys(params)\n .map((item) => `${item}=${params[item]}`)\n .join('&');\n }\n return `${baseUrl}${url}${paramsArr ? `?${paramsArr}` : ''}`;\n};\n\n// 当前项目ID\nlet currentTenantId = '';\n\n/**\n * 构造管理平台或机器人工程的完整访问地址\n * @param url 环境变量中配置的地址\n */\nexport const getAccessUrl = (url: string | undefined) => {\n // 未配置,表示使用当前工程地址,去掉 hash 部分\n if (!url) {\n const location = getLocation();\n if (location) {\n return new URL('', location.href).toString();\n }\n return null;\n }\n // 一串数字表示是端口号,与当前工程使用相同的 hostname 以兼容使用不同 IP (回环地址、内网 IP)访问的情况\n if (/^\\d+$/.test(url)) {\n const location = getLocation();\n if (location) {\n return `http://${location.hostname}:${url}/`;\n }\n return `http://localhost:${url}/`;\n }\n const location = getLocation();\n if (location) {\n return new URL(url, location.href).toString();\n }\n return url;\n};\n\n// 管理平台访问地址\nconst managerUrl = getAccessUrl(process.env.BOTE_MANAGER_URL);\n// 机器人工程访问地址\nconst botUrl = getAccessUrl(process.env.BOTE_BOT_URL);\n\n/**\n * 获取管理平台地址\n *\n * @param route 路由(\"#\" 后面的部分),可选\n */\nconst getManagerUrl = (route?: string | null) => route ? `${managerUrl}#${route}` : managerUrl;\n\n/**\n * 获取机器人工程访问地址\n *\n * @param route 路由(\"#\" 后面的部分),可选\n */\nconst getBotUrl = (route?: string | null) => route ? `${botUrl}#${route}` : botUrl;\n\nconst request = {\n getBaseUrl: () => baseUrl,\n setUrlPrefix: (prefix: string) => {\n baseUrl = prefix;\n },\n setTenantId: (tenantId: string) => {\n currentTenantId = tenantId;\n },\n getManagerUrl,\n // 获取用户头像\n getUserIconUrl: (userId?: string, updatedTime?: string, isSecurity = true) => {\n let url = `${baseUrl}/manager/user/userIcon?userId=${userId || ''}`;\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n getBotUrl,\n // 获取智能应用图标地址\n getBotIconUrl: (tenantId?: string, botId?: string, updatedTime?: string, isSecurity = true) => {\n if (tenantId && botId) {\n let url = `${baseUrl}/manager/bot/botIcon?tenantId=${tenantId}&botId=${botId}`;\n // 管理平台构造图标链接时加上更新时间参数,可以确保修改图标后浏览器能立即请求新图标\n // 浏览器的缓存策略有些激进,不刷新页面不会重新请求图片(单页应用很少会刷新页面),即使后端返回了 Cache-Control: no-cache\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n }\n return undefined;\n },\n getPlatBotIconUrl: (platBotId: string) => {\n if (platBotId) {\n const url = `${baseUrl}/manager/platBotInfo/getPlatBotIcon?platBotId=${platBotId}`;\n return url;\n }\n return undefined;\n },\n // 获取智能体图标地址\n getSceneIconUrl: (\n tenantId?: string,\n sceneId?: string,\n updatedTime?: string,\n isSecurity = true,\n ) => {\n if (tenantId && sceneId) {\n let url = `${baseUrl}/manager/scene/sceneIcon?tenantId=${tenantId}&sceneId=${sceneId}`;\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n }\n return undefined;\n },\n // 获取机器人配置图标\n getBotPageSettingIcon: ({\n botId,\n tenantId,\n type,\n updatedTime,\n isSecurity = true,\n }: {\n botId: string,\n tenantId?: string,\n type: 'welcomeBannerlg' | 'welcomeBannerxs' | 'welcomeIcon',\n updatedTime?: string,\n isSecurity?: boolean,\n }) => {\n let url = `${baseUrl}/manager/bot/getPageSettingIconByType?tenantId=${tenantId}&botId=${botId}&type=${type}`;\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n getWorkspaceIcon: ({ spaceId }: { spaceId: string }) => {\n if (spaceId) {\n const url = `${baseUrl}/manager/workspace/getWorkspaceIcon?spaceId=${spaceId}`;\n return url;\n }\n return undefined;\n },\n // 获取项目头像\n getTenantIcon: ({ tenantId }: { tenantId: string }) => {\n if (tenantId) {\n const url = `${baseUrl}/manager/tenant/getTenantIcon?tenantId=${tenantId}`;\n return url;\n }\n return undefined;\n },\n\n // 获取模型图标\n getLargeModelIcon: ({ modelId, tenantId }: { modelId: string, tenantId: string }) => {\n if (modelId && tenantId) {\n const url = `${baseUrl}/manager/largeModel/getLargeModelIcon?modelId=${modelId}&tenantId=${tenantId}`;\n return url;\n }\n return undefined;\n },\n getDataTableIcon: ({ tableId, tenantId, updatedTime, isSecurity = true }:\n { tableId: string, tenantId: string, updatedTime?: string, isSecurity?: boolean }) => {\n if (tableId) {\n const newUrlParams = new URLSearchParams();\n newUrlParams.append('tableId', tableId);\n newUrlParams.append('tenantId', tenantId);\n if (updatedTime) {\n newUrlParams.append('updatedTime', updatedTime.replace(/\\D/g, ''));\n }\n let url = `${baseUrl}/manager/dataTable/getDataTableIcon?${newUrlParams.toString()}`;\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n }\n return undefined;\n },\n // 构造 DocChain 相关地址的辅助方法\n docChain: {\n referenceDocUrl: ({\n tenantId,\n docId,\n token,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}`;\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n referenceDocChunkUrl: ({\n tenantId,\n docId,\n chunkId,\n token,\n score,\n rank,\n docType,\n botId,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/documentChunk?tenantId=${tenantId}&docId=${docId}&chunkId=${chunkId}&score=${score}&rank=${rank}&docType=${docType}`;\n if (botId) {\n url += `&botId=${botId}`;\n }\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n // 下载文档接口地址\n downloadDocUrl: ({\n tenantId,\n docId,\n token,\n isSecurity = true,\n }: {\n [key: string]: string | boolean;\n }) => {\n let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=src&doc_id=${docId}`;\n if (token) {\n url += `&token=${token}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n // 图片地址\n imageUrl: ({\n tenantId,\n docId,\n token,\n path,\n isSecurity = true,\n }: {\n [key: string]: string | boolean;\n }) => {\n let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=path&doc_id=${docId}&path=${encodeURIComponent(\n path,\n )}`;\n if (token) {\n url += `&token=${token}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n },\n // 构造 tenantKnowledge 相关地址的辅助方法\n tenantKnowledge: {\n referenceDocUrl: ({\n tenantId,\n docId,\n token,\n knowledgeType,\n docName,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}&knowledgeType=${knowledgeType}&casPortal=true&docName=${docName}`;\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n // 下载文档接口地址\n downloadDocUrl: ({ knowledgeType, docId }: { [key: string]: string }) => {\n const url = `${baseUrl}/knowledge/access/downloadKnowledgeDoc?knowledgeType=${knowledgeType}&docId=${docId}`;\n\n return url;\n },\n },\n get: (url: string, cfg: any) => {\n const { params, ...rest }: any = cfg || {};\n // 拼项目ID 到参数中\n if (!params.tenantId && currentTenantId) {\n params.tenantId = currentTenantId;\n }\n\n const _url = getUrl(url, params);\n return http(_url, {\n method: 'GET',\n headers: {},\n ...rest,\n });\n },\n post: (url: string, cfg: any) => {\n const { data, params, ...rest }: any = cfg || {};\n let _body;\n\n if (data instanceof FormData) {\n // 拼项目ID 到参数中\n if (!data.get('tenantId') && currentTenantId) {\n data.append('tenantId', currentTenantId);\n }\n\n _body = data;\n } else {\n // 拼项目ID 到参数中\n if (!data.tenantId && currentTenantId) {\n data.tenantId = currentTenantId;\n }\n\n _body = JSON.stringify(data || {});\n }\n\n const _url = getUrl(url, params);\n return http(_url, {\n body: _body,\n method: 'POST',\n headers: {},\n ...rest,\n });\n },\n download: (\n {\n url,\n fileName,\n method = 'get',\n data = {},\n params = {},\n }: {\n url: string;\n fileName?: string;\n method?: 'get' | 'post';\n data?: any;\n params?: any;\n },\n callback?: (objectUrl: string) => void,\n errorCallback?: () => void,\n ): Promise<void> => {\n return new Promise((resolve, reject) => {\n // 准备请求配置\n const headers: any = {};\n const token = sessionStorage.getItem('token') as string;\n if (token) {\n headers.Authorization = `Bearer ${token}`;\n }\n\n const tenantId = currentTenantId || sessionStorage.getItem(tenantIdSessionKey) || sessionStorage.getItem('managerSelectedTenantID');\n if (tenantId) {\n headers['Tenant-Id'] = tenantId;\n }\n\n let requestUrl: string;\n const requestConfig: any = {\n method: method.toUpperCase(),\n headers,\n // 携带 cookie,支持跨域请求时携带凭证\n credentials: 'include',\n };\n\n // 判断是否是完整 URL(以 http:// 或 https:// 开头)\n const isFullUrl = /^https?:\\/\\//i.test(url);\n\n // 处理参数和请求体\n if (isFullUrl) {\n // 完整 URL,直接使用,不处理参数和请求体\n requestUrl = url;\n } else if (method === 'get') {\n // GET 请求:参数拼接到 URL\n if (!params.tenantId && currentTenantId) {\n params.tenantId = currentTenantId;\n }\n requestUrl = getUrl(url, params);\n } else {\n // POST 请求:参数拼接到 URL,数据在 body\n if (!params.tenantId && currentTenantId) {\n params.tenantId = currentTenantId;\n }\n requestUrl = getUrl(url, params);\n\n if (data instanceof FormData) {\n if (!data.get('tenantId') && currentTenantId) {\n data.append('tenantId', currentTenantId);\n }\n requestConfig.body = data;\n // FormData 不需要设置 content-type,浏览器会自动设置\n delete headers['content-type'];\n } else {\n if (!data.tenantId && currentTenantId) {\n data.tenantId = currentTenantId;\n }\n requestConfig.body = JSON.stringify(data || {});\n headers['content-type'] = 'application/json;charset=UTF-8';\n }\n }\n\n fetch(requestUrl, requestConfig)\n .then(async (response) => {\n if (!response.ok) {\n throw new Error(`下载失败: ${response.statusText}`);\n }\n\n // 解析 Content-Disposition 头部\n const contentDisposition = response.headers.get('Content-Disposition');\n let fileNameFromHeader = '';\n\n if (contentDisposition) {\n // 处理 UTF-8 编码文件名(如 filename*=UTF-8''example.txt)\n const utf8Match = /filename\\*=UTF-8''(.+?)(?:;|$)/i.exec(\n contentDisposition,\n );\n if (utf8Match?.[1]) {\n fileNameFromHeader = decodeURIComponent(utf8Match[1]);\n } else {\n // 处理普通文件名(如 filename=\"example.txt\")\n const filenameMatch = /filename=[\"']?(.+?)[\"']?(?:;|$)/i.exec(\n contentDisposition,\n );\n if (filenameMatch?.[1]) {\n fileNameFromHeader = filenameMatch[1];\n }\n }\n }\n\n // 确定最终文件名\n const finalFileName = fileName || fileNameFromHeader || 'download';\n\n // 处理 Blob 数据\n const blob = await response.blob();\n const objectUrl = URL.createObjectURL(blob);\n\n if (typeof callback === 'function') {\n callback(objectUrl);\n } else {\n const link = document.createElement('a');\n link.href = objectUrl;\n link.download = finalFileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n // 释放内存\n window.URL.revokeObjectURL(objectUrl);\n }\n\n resolve();\n })\n .catch((error) => {\n console.error('Download error:', error);\n\n if (errorCallback instanceof Function) {\n errorCallback();\n }\n\n resolve();\n });\n });\n },\n};\n\n\nexport { request };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// import CookieUtil from './CookieUtils';\nimport security from '@lingxiteam/security';\nimport { getLocation } from './environment';\n\nexport const tenantIdSessionKey: string = 'botSelectedTenantID';\n\nconst http = (url: string, config: any) => {\n // const token = localStorage.getItem('X-Auth-Token');\n // config.headers['X-Auth-Token'] = token;\n config.headers['content-type'] = 'application/json;charset=UTF-8';\n\n // 获取 token\n const token = sessionStorage.getItem('token') as string;\n if (token) {\n config.headers.Authorization = `Bearer ${token}`;\n }\n\n // 兼容生产环境\n const tenantId = currentTenantId || sessionStorage.getItem(tenantIdSessionKey) || sessionStorage.getItem('managerSelectedTenantID');\n if (tenantId) {\n config.headers['Tenant-Id'] = tenantId;\n }\n\n return new Promise((resolve, rejects) => {\n fetch(url, config)\n .then((response) => {\n const contentType: string | null = response.headers.get('content-type');\n if (contentType) {\n if (\n /application\\/octet-stream/.test(contentType) ||\n /application\\/zip/.test(contentType) ||\n /application\\/vnd\\.ms-excel/.test(contentType)\n ) {\n return response.blob();\n }\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (/text\\/html/.test(contentType)) {\n return response.text();\n }\n }\n return response;\n })\n .then((data) => {\n if (Object.prototype.toString.call(data) === '[object Blob]') {\n if (\n typeof data === 'object' &&\n Object.hasOwnProperty.call(data, 'resultCode') &&\n String(data.resultCode) !== '0'\n ) {\n return Promise.reject(data);\n }\n return data;\n }\n if (Array.isArray(data)) return data;\n if (String(data?.resultCode) === '0') {\n resolve(data?.resultObject);\n } else if (data?.resultMsg) {\n rejects(data?.resultMsg);\n }\n return data;\n })\n .catch((err) => {\n rejects(err);\n });\n });\n};\n\nlet baseUrl = `${process.env.REACT_APP_REQ_PREFIX}/bote`;\nconst getUrl = (url: string, params: any = {}) => {\n let paramsArr = '';\n if (params && Object.keys(params).length > 0) {\n paramsArr = Object.keys(params)\n .map((item) => `${item}=${params[item]}`)\n .join('&');\n }\n return `${baseUrl}${url}${paramsArr ? `?${paramsArr}` : ''}`;\n};\n\n// 当前项目ID\nlet currentTenantId = '';\n\n/**\n * 构造管理平台或机器人工程的完整访问地址\n * @param url 环境变量中配置的地址\n */\nexport const getAccessUrl = (url: string | undefined) => {\n // 未配置,表示使用当前工程地址,去掉 hash 部分\n if (!url) {\n const location = getLocation();\n if (location) {\n return new URL('', location.href).toString();\n }\n return null;\n }\n // 一串数字表示是端口号,与当前工程使用相同的 hostname 以兼容使用不同 IP (回环地址、内网 IP)访问的情况\n if (/^\\d+$/.test(url)) {\n const location = getLocation();\n if (location) {\n return `http://${location.hostname}:${url}/`;\n }\n return `http://localhost:${url}/`;\n }\n const location = getLocation();\n if (location) {\n return new URL(url, location.href).toString();\n }\n return url;\n};\n\n// 管理平台访问地址\nconst managerUrl = getAccessUrl(process.env.BOTE_MANAGER_URL);\n// 机器人工程访问地址\nconst botUrl = getAccessUrl(process.env.BOTE_BOT_URL);\n// AI门户访问地址\nconst portalUrl = getAccessUrl(process.env.BOTE_PORTAL_URL);\n\n/**\n * 获取管理平台地址\n *\n * @param route 路由(\"#\" 后面的部分),可选\n */\nconst getManagerUrl = (route?: string | null) => route ? `${managerUrl}#${route}` : managerUrl;\n\n/**\n * 获取机器人工程访问地址\n *\n * @param route 路由(\"#\" 后面的部分),可选\n */\nconst getBotUrl = (route?: string | null) => route ? `${botUrl}#${route}` : botUrl;\n\n/**\n * 获取AI门户工程访问地址\n *\n * @param route 路由(\"#\" 后面的部分),可选\n */\nconst getPortalUrl = (route?: string | null) => route ? `${portalUrl}#${route}` : portalUrl;\n\nconst request = {\n getBaseUrl: () => baseUrl,\n setUrlPrefix: (prefix: string) => {\n baseUrl = prefix;\n },\n setTenantId: (tenantId: string) => {\n currentTenantId = tenantId;\n },\n getManagerUrl,\n // 获取用户头像\n getUserIconUrl: (userId?: string, updatedTime?: string, isSecurity = true) => {\n let url = `${baseUrl}/manager/user/userIcon?userId=${userId || ''}`;\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n getPortalUrl,\n getBotUrl,\n // 获取智能应用图标地址\n getBotIconUrl: (tenantId?: string, botId?: string, updatedTime?: string, isSecurity = true) => {\n if (tenantId && botId) {\n let url = `${baseUrl}/manager/bot/botIcon?tenantId=${tenantId}&botId=${botId}`;\n // 管理平台构造图标链接时加上更新时间参数,可以确保修改图标后浏览器能立即请求新图标\n // 浏览器的缓存策略有些激进,不刷新页面不会重新请求图片(单页应用很少会刷新页面),即使后端返回了 Cache-Control: no-cache\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n }\n return undefined;\n },\n getPlatBotIconUrl: (platBotId: string) => {\n if (platBotId) {\n const url = `${baseUrl}/manager/platBotInfo/getPlatBotIcon?platBotId=${platBotId}`;\n return url;\n }\n return undefined;\n },\n // 获取智能体图标地址\n getSceneIconUrl: (\n tenantId?: string,\n sceneId?: string,\n updatedTime?: string,\n isSecurity = true,\n ) => {\n if (tenantId && sceneId) {\n let url = `${baseUrl}/manager/scene/sceneIcon?tenantId=${tenantId}&sceneId=${sceneId}`;\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n }\n return undefined;\n },\n // 获取机器人配置图标\n getBotPageSettingIcon: ({\n botId,\n tenantId,\n type,\n updatedTime,\n isSecurity = true,\n }: {\n botId: string,\n tenantId?: string,\n type: 'welcomeBannerlg' | 'welcomeBannerxs' | 'welcomeIcon',\n updatedTime?: string,\n isSecurity?: boolean,\n }) => {\n let url = `${baseUrl}/manager/bot/getPageSettingIconByType?tenantId=${tenantId}&botId=${botId}&type=${type}`;\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n getWorkspaceIcon: ({ spaceId }: { spaceId: string }) => {\n if (spaceId) {\n const url = `${baseUrl}/manager/workspace/getWorkspaceIcon?spaceId=${spaceId}`;\n return url;\n }\n return undefined;\n },\n // 获取项目头像\n getTenantIcon: ({ tenantId }: { tenantId: string }) => {\n if (tenantId) {\n const url = `${baseUrl}/manager/tenant/getTenantIcon?tenantId=${tenantId}`;\n return url;\n }\n return undefined;\n },\n\n // 获取模型图标\n getLargeModelIcon: ({ modelId, tenantId }: { modelId: string, tenantId: string }) => {\n if (modelId && tenantId) {\n const url = `${baseUrl}/manager/largeModel/getLargeModelIcon?modelId=${modelId}&tenantId=${tenantId}`;\n return url;\n }\n return undefined;\n },\n\n // 获取发布环境图标\n getGatewayIcon: ({ gatewayId, tenantId, updatedTime }: { gatewayId: string, tenantId?: string, updatedTime?: string }) => {\n let url = `${baseUrl}/manager/publish/gateway/getGatewayIcon?tenantId=${tenantId}&gatewayId=${gatewayId}`;\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n return url;\n },\n\n getDataTableIcon: ({ tableId, tenantId, updatedTime, isSecurity = true }:\n { tableId: string, tenantId: string, updatedTime?: string, isSecurity?: boolean }) => {\n if (tableId) {\n const newUrlParams = new URLSearchParams();\n newUrlParams.append('tableId', tableId);\n newUrlParams.append('tenantId', tenantId);\n if (updatedTime) {\n newUrlParams.append('updatedTime', updatedTime.replace(/\\D/g, ''));\n }\n let url = `${baseUrl}/manager/dataTable/getDataTableIcon?${newUrlParams.toString()}`;\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n }\n return undefined;\n },\n getCompIconUrl: ({ pageCompId, tenantId }: { pageCompId: string, tenantId: string }) => {\n if (pageCompId) {\n const url = `${baseUrl}/manager/skill/pageComp/getCompIcon?pageCompId=${pageCompId}&tenantId=${tenantId}`;\n return url;\n }\n return undefined;\n },\n // 构造 DocChain 相关地址的辅助方法\n docChain: {\n referenceDocUrl: ({\n tenantId,\n docId,\n token,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}`;\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n referenceDocChunkUrl: ({\n tenantId,\n docId,\n chunkId,\n token,\n score,\n rank,\n docType,\n botId,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/documentChunk?tenantId=${tenantId}&docId=${docId}&chunkId=${chunkId}&score=${score}&rank=${rank}&docType=${docType}`;\n if (botId) {\n url += `&botId=${botId}`;\n }\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n // 下载文档接口地址\n downloadDocUrl: ({\n tenantId,\n docId,\n token,\n isSecurity = true,\n }: {\n [key: string]: string | boolean;\n }) => {\n let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=src&doc_id=${docId}`;\n if (token) {\n url += `&token=${token}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n // 图片地址\n imageUrl: ({\n tenantId,\n docId,\n token,\n path,\n isSecurity = true,\n }: {\n [key: string]: string | boolean;\n }) => {\n let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=path&doc_id=${docId}&path=${encodeURIComponent(\n path,\n )}`;\n if (token) {\n url += `&token=${token}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n },\n // 构造 tenantKnowledge 相关地址的辅助方法\n tenantKnowledge: {\n referenceDocUrl: ({\n tenantId,\n docId,\n token,\n knowledgeType,\n docName,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}&knowledgeType=${knowledgeType}&casPortal=true&docName=${docName}`;\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n // 下载文档接口地址\n downloadDocUrl: ({ knowledgeType, docId }: { [key: string]: string }) => {\n const url = `${baseUrl}/knowledge/access/downloadKnowledgeDoc?knowledgeType=${knowledgeType}&docId=${docId}`;\n\n return url;\n },\n },\n get: (url: string, cfg: any) => {\n const { params, ...rest }: any = cfg || {};\n // 拼项目ID 到参数中\n if (!params.tenantId && currentTenantId) {\n params.tenantId = currentTenantId;\n }\n\n const _url = getUrl(url, params);\n return http(_url, {\n method: 'GET',\n headers: {},\n ...rest,\n });\n },\n post: (url: string, cfg: any) => {\n const { data, params, ...rest }: any = cfg || {};\n let _body;\n\n if (data instanceof FormData) {\n // 拼项目ID 到参数中\n if (!data.get('tenantId') && currentTenantId) {\n data.append('tenantId', currentTenantId);\n }\n\n _body = data;\n } else {\n // 拼项目ID 到参数中\n if (!data.tenantId && currentTenantId) {\n data.tenantId = currentTenantId;\n }\n\n _body = JSON.stringify(data || {});\n }\n\n const _url = getUrl(url, params);\n return http(_url, {\n body: _body,\n method: 'POST',\n headers: {},\n ...rest,\n });\n },\n download: (\n {\n url,\n fileName,\n method = 'get',\n data = {},\n params = {},\n }: {\n url: string;\n fileName?: string;\n method?: 'get' | 'post';\n data?: any;\n params?: any;\n },\n callback?: (objectUrl: string) => void,\n errorCallback?: () => void,\n ): Promise<void> => {\n return new Promise((resolve, reject) => {\n // 准备请求配置\n const headers: any = {};\n const token = sessionStorage.getItem('token') as string;\n if (token) {\n headers.Authorization = `Bearer ${token}`;\n }\n\n const tenantId = currentTenantId || sessionStorage.getItem(tenantIdSessionKey) || sessionStorage.getItem('managerSelectedTenantID');\n if (tenantId) {\n headers['Tenant-Id'] = tenantId;\n }\n\n let requestUrl: string;\n const requestConfig: any = {\n method: method.toUpperCase(),\n headers,\n // 携带 cookie,支持跨域请求时携带凭证\n credentials: 'include',\n };\n\n // 判断是否是完整 URL(以 http:// 或 https:// 开头)\n const isFullUrl = /^https?:\\/\\//i.test(url);\n\n // 处理参数和请求体\n if (isFullUrl) {\n // 完整 URL,直接使用,不处理参数和请求体\n requestUrl = url;\n } else if (method === 'get') {\n // GET 请求:参数拼接到 URL\n if (!params.tenantId && currentTenantId) {\n params.tenantId = currentTenantId;\n }\n requestUrl = getUrl(url, params);\n } else {\n // POST 请求:参数拼接到 URL,数据在 body\n if (!params.tenantId && currentTenantId) {\n params.tenantId = currentTenantId;\n }\n requestUrl = getUrl(url, params);\n\n if (data instanceof FormData) {\n if (!data.get('tenantId') && currentTenantId) {\n data.append('tenantId', currentTenantId);\n }\n requestConfig.body = data;\n // FormData 不需要设置 content-type,浏览器会自动设置\n delete headers['content-type'];\n } else {\n if (!data.tenantId && currentTenantId) {\n data.tenantId = currentTenantId;\n }\n requestConfig.body = JSON.stringify(data || {});\n headers['content-type'] = 'application/json;charset=UTF-8';\n }\n }\n\n fetch(requestUrl, requestConfig)\n .then(async (response) => {\n if (!response.ok) {\n throw new Error(`下载失败: ${response.statusText}`);\n }\n\n // 解析 Content-Disposition 头部\n const contentDisposition = response.headers.get('Content-Disposition');\n let fileNameFromHeader = '';\n\n if (contentDisposition) {\n // 处理 UTF-8 编码文件名(如 filename*=UTF-8''example.txt)\n const utf8Match = /filename\\*=UTF-8''(.+?)(?:;|$)/i.exec(\n contentDisposition,\n );\n if (utf8Match?.[1]) {\n fileNameFromHeader = decodeURIComponent(utf8Match[1]);\n } else {\n // 处理普通文件名(如 filename=\"example.txt\")\n const filenameMatch = /filename=[\"']?(.+?)[\"']?(?:;|$)/i.exec(\n contentDisposition,\n );\n if (filenameMatch?.[1]) {\n fileNameFromHeader = filenameMatch[1];\n }\n }\n }\n\n // 确定最终文件名\n const finalFileName = fileName || fileNameFromHeader || 'download';\n\n // 处理 Blob 数据\n const blob = await response.blob();\n const objectUrl = URL.createObjectURL(blob);\n\n if (typeof callback === 'function') {\n callback(objectUrl);\n } else {\n const link = document.createElement('a');\n link.href = objectUrl;\n link.download = finalFileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n // 释放内存\n window.URL.revokeObjectURL(objectUrl);\n }\n\n resolve();\n })\n .catch((error) => {\n console.error('Download error:', error);\n\n if (errorCallback instanceof Function) {\n errorCallback();\n }\n\n resolve();\n });\n });\n },\n};\n\n\nexport { request };\n"],
5
+ "mappings": "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",
6
6
  "names": ["location", "security"]
7
7
  }
@@ -13,9 +13,17 @@ import scriptExecution, { type scriptExecutionType } from './scriptExecution';
13
13
  import { getFileUrlById, getFileUrlByFileInfoId, getRemoteComponentUrlByCode, getRemoteComponentUrlById } from './file';
14
14
  import { isValidUrl, sanitizeRedirectUrl, safeRedirect, sanitizeEventHandler } from './securityUtils';
15
15
  import { isReactNative, isWeb, isNode, getEnvironment, getWindow, getDocument, getLocation, isMobile } from './environment';
16
+ import getClassPrefix from './getClassPrefix';
16
17
  import watchMatchMedia, { type pageSizeType } from './watchMatchMedia';
17
18
  import { request, tenantIdSessionKey, getAccessUrl } from './http';
18
19
  import { formatTime, formatTimeCustom, isToday, getRelativeTime } from './timeFormat';
19
- import { generateWatermarkBase64, generateWatermarkStyle, getVariableRealValue, parseContentVariables, fetchClientIp, getClientIp, escapeXml, type WatermarkStyles, type WatermarkLayout, type WatermarkConfig, type WatermarkRow, type ContextVariable, type SessionInfo } from './watermark';
20
+ import { generateWatermarkBase64, generateWatermarkStyle, escapeXml, type WatermarkStyles, type WatermarkLayout, type WatermarkConfig, type WatermarkRow, type ContextVariable } from './watermark';
21
+ import { getVariableRealValue, parseContentVariables, fetchClientIp, getClientIp, getUserInfoFromStorage, getDriverInfoFromStorage, type SessionInfo } from './dealStorageData';
22
+ import aiGenerateFill from './aiGenerateFill';
23
+ import docchainContextFill from './docchainContextFill';
24
+ import unitConversion from './unitConversion';
25
+ import { copyToClipboard } from './copyToClipboard';
26
+ import { registerOnCallSkill, unregisterOnCallSkill, callSkill, hasOnCallSkillHandler } from './onCallSkillEvent';
27
+ export type { OnCallSkillHandler } from './onCallSkillEvent';
20
28
  export type { fileToBase64Type, asyncLocalStorageType, asyncSessionStorageType, scriptExecutionType, pageSizeType, WatermarkStyles, WatermarkLayout, WatermarkConfig, WatermarkRow, ContextVariable, SessionInfo, };
21
- export { fileToBase64, CookieUtils, argsToString, argsToObject, getSearchObj, asyncLocalStorage, asyncSessionStorage, camelToSnake, underscoreToCamelCase, generateRandom18Int, formatModuleData, patternTransitionRegExp, stringPramarsValTransition, loopPageStaticCodeMap, loopPageServiceApiMap, getDataArr, getParamsArr, replaceParamsValue, replaceParamsValueForEvent, getParamsContentByParamKeys, getFileUrlById, getFileUrlByFileInfoId, getRemoteComponentUrlByCode, getRemoteComponentUrlById, stringScriptExecution, createCompartmentExecution, scriptExecution, isValidUrl, sanitizeRedirectUrl, safeRedirect, sanitizeEventHandler, isReactNative, isWeb, isNode, getEnvironment, getWindow, getDocument, getLocation, isMobile, watchMatchMedia, request, tenantIdSessionKey, getAccessUrl, formatTime, formatTimeCustom, isToday, getRelativeTime, getValueByPath, generateWatermarkBase64, generateWatermarkStyle, getVariableRealValue, parseContentVariables, fetchClientIp, getClientIp, escapeXml, checkDataSourceOfFn, };
29
+ export { fileToBase64, CookieUtils, argsToString, argsToObject, getSearchObj, asyncLocalStorage, asyncSessionStorage, camelToSnake, underscoreToCamelCase, generateRandom18Int, formatModuleData, patternTransitionRegExp, stringPramarsValTransition, loopPageStaticCodeMap, loopPageServiceApiMap, getDataArr, getParamsArr, replaceParamsValue, replaceParamsValueForEvent, getParamsContentByParamKeys, getFileUrlById, getFileUrlByFileInfoId, getRemoteComponentUrlByCode, getRemoteComponentUrlById, stringScriptExecution, createCompartmentExecution, scriptExecution, isValidUrl, sanitizeRedirectUrl, safeRedirect, sanitizeEventHandler, isReactNative, isWeb, isNode, getEnvironment, getWindow, getDocument, getLocation, isMobile, watchMatchMedia, request, tenantIdSessionKey, getAccessUrl, formatTime, formatTimeCustom, isToday, getRelativeTime, getValueByPath, generateWatermarkBase64, generateWatermarkStyle, getVariableRealValue, parseContentVariables, getUserInfoFromStorage, getDriverInfoFromStorage, fetchClientIp, getClientIp, escapeXml, checkDataSourceOfFn, aiGenerateFill, docchainContextFill, unitConversion, getClassPrefix, copyToClipboard, registerOnCallSkill, unregisterOnCallSkill, callSkill, hasOnCallSkillHandler, };
package/dist/cjs/index.js CHANGED
@@ -30,15 +30,19 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  var src_exports = {};
31
31
  __export(src_exports, {
32
32
  CookieUtils: () => import_CookieUtils.default,
33
+ aiGenerateFill: () => import_aiGenerateFill.default,
33
34
  argsToObject: () => import_pathArgsUtils.argsToObject,
34
35
  argsToString: () => import_pathArgsUtils.argsToString,
35
36
  asyncLocalStorage: () => import_asyncStorage.asyncLocalStorage,
36
37
  asyncSessionStorage: () => import_asyncStorage.asyncSessionStorage,
38
+ callSkill: () => import_onCallSkillEvent.callSkill,
37
39
  camelToSnake: () => import_stringUtils.camelToSnake,
38
40
  checkDataSourceOfFn: () => import_helpers.checkDataSourceOfFn,
41
+ copyToClipboard: () => import_copyToClipboard.copyToClipboard,
39
42
  createCompartmentExecution: () => import_helpers.createCompartmentExecution,
43
+ docchainContextFill: () => import_docchainContextFill.default,
40
44
  escapeXml: () => import_watermark.escapeXml,
41
- fetchClientIp: () => import_watermark.fetchClientIp,
45
+ fetchClientIp: () => import_dealStorageData.fetchClientIp,
42
46
  fileToBase64: () => import_fileToBase64.default,
43
47
  formatModuleData: () => import_formatModuleData.default,
44
48
  formatTime: () => import_timeFormat.formatTime,
@@ -47,9 +51,11 @@ __export(src_exports, {
47
51
  generateWatermarkBase64: () => import_watermark.generateWatermarkBase64,
48
52
  generateWatermarkStyle: () => import_watermark.generateWatermarkStyle,
49
53
  getAccessUrl: () => import_http.getAccessUrl,
50
- getClientIp: () => import_watermark.getClientIp,
54
+ getClassPrefix: () => import_getClassPrefix.default,
55
+ getClientIp: () => import_dealStorageData.getClientIp,
51
56
  getDataArr: () => import_treeUtils.getDataArr,
52
57
  getDocument: () => import_environment.getDocument,
58
+ getDriverInfoFromStorage: () => import_dealStorageData.getDriverInfoFromStorage,
53
59
  getEnvironment: () => import_environment.getEnvironment,
54
60
  getFileUrlByFileInfoId: () => import_file.getFileUrlByFileInfoId,
55
61
  getFileUrlById: () => import_file.getFileUrlById,
@@ -60,9 +66,11 @@ __export(src_exports, {
60
66
  getRemoteComponentUrlByCode: () => import_file.getRemoteComponentUrlByCode,
61
67
  getRemoteComponentUrlById: () => import_file.getRemoteComponentUrlById,
62
68
  getSearchObj: () => import_pathArgsUtils.getSearchObj,
69
+ getUserInfoFromStorage: () => import_dealStorageData.getUserInfoFromStorage,
63
70
  getValueByPath: () => import_getValueByPath.getValueByPath,
64
- getVariableRealValue: () => import_watermark.getVariableRealValue,
71
+ getVariableRealValue: () => import_dealStorageData.getVariableRealValue,
65
72
  getWindow: () => import_environment.getWindow,
73
+ hasOnCallSkillHandler: () => import_onCallSkillEvent.hasOnCallSkillHandler,
66
74
  isMobile: () => import_environment.isMobile,
67
75
  isNode: () => import_environment.isNode,
68
76
  isReactNative: () => import_environment.isReactNative,
@@ -71,8 +79,9 @@ __export(src_exports, {
71
79
  isWeb: () => import_environment.isWeb,
72
80
  loopPageServiceApiMap: () => import_loopPageServiceApiMap.default,
73
81
  loopPageStaticCodeMap: () => import_loopPageStaticCodeMap.default,
74
- parseContentVariables: () => import_watermark.parseContentVariables,
82
+ parseContentVariables: () => import_dealStorageData.parseContentVariables,
75
83
  patternTransitionRegExp: () => import_helpers.patternTransitionRegExp,
84
+ registerOnCallSkill: () => import_onCallSkillEvent.registerOnCallSkill,
76
85
  replaceParamsValue: () => import_treeUtils.replaceParamsValue,
77
86
  replaceParamsValueForEvent: () => import_treeUtils.replaceParamsValueForEvent,
78
87
  request: () => import_http.request,
@@ -84,6 +93,8 @@ __export(src_exports, {
84
93
  stringScriptExecution: () => import_helpers.stringScriptExecution,
85
94
  tenantIdSessionKey: () => import_http.tenantIdSessionKey,
86
95
  underscoreToCamelCase: () => import_stringUtils.underscoreToCamelCase,
96
+ unitConversion: () => import_unitConversion.default,
97
+ unregisterOnCallSkill: () => import_onCallSkillEvent.unregisterOnCallSkill,
87
98
  watchMatchMedia: () => import_watchMatchMedia.default
88
99
  });
89
100
  module.exports = __toCommonJS(src_exports);
@@ -102,22 +113,33 @@ var import_scriptExecution = __toESM(require("./scriptExecution"));
102
113
  var import_file = require("./file");
103
114
  var import_securityUtils = require("./securityUtils");
104
115
  var import_environment = require("./environment");
116
+ var import_getClassPrefix = __toESM(require("./getClassPrefix"));
105
117
  var import_watchMatchMedia = __toESM(require("./watchMatchMedia"));
106
118
  var import_http = require("./http");
107
119
  var import_timeFormat = require("./timeFormat");
108
120
  var import_watermark = require("./watermark");
121
+ var import_dealStorageData = require("./dealStorageData");
122
+ var import_aiGenerateFill = __toESM(require("./aiGenerateFill"));
123
+ var import_docchainContextFill = __toESM(require("./docchainContextFill"));
124
+ var import_unitConversion = __toESM(require("./unitConversion"));
125
+ var import_copyToClipboard = require("./copyToClipboard");
126
+ var import_onCallSkillEvent = require("./onCallSkillEvent");
109
127
  var _ = require("lodash");
110
128
  _.noConflict();
111
129
  // Annotate the CommonJS export names for ESM import in node:
112
130
  0 && (module.exports = {
113
131
  CookieUtils,
132
+ aiGenerateFill,
114
133
  argsToObject,
115
134
  argsToString,
116
135
  asyncLocalStorage,
117
136
  asyncSessionStorage,
137
+ callSkill,
118
138
  camelToSnake,
119
139
  checkDataSourceOfFn,
140
+ copyToClipboard,
120
141
  createCompartmentExecution,
142
+ docchainContextFill,
121
143
  escapeXml,
122
144
  fetchClientIp,
123
145
  fileToBase64,
@@ -128,9 +150,11 @@ _.noConflict();
128
150
  generateWatermarkBase64,
129
151
  generateWatermarkStyle,
130
152
  getAccessUrl,
153
+ getClassPrefix,
131
154
  getClientIp,
132
155
  getDataArr,
133
156
  getDocument,
157
+ getDriverInfoFromStorage,
134
158
  getEnvironment,
135
159
  getFileUrlByFileInfoId,
136
160
  getFileUrlById,
@@ -141,9 +165,11 @@ _.noConflict();
141
165
  getRemoteComponentUrlByCode,
142
166
  getRemoteComponentUrlById,
143
167
  getSearchObj,
168
+ getUserInfoFromStorage,
144
169
  getValueByPath,
145
170
  getVariableRealValue,
146
171
  getWindow,
172
+ hasOnCallSkillHandler,
147
173
  isMobile,
148
174
  isNode,
149
175
  isReactNative,
@@ -154,6 +180,7 @@ _.noConflict();
154
180
  loopPageStaticCodeMap,
155
181
  parseContentVariables,
156
182
  patternTransitionRegExp,
183
+ registerOnCallSkill,
157
184
  replaceParamsValue,
158
185
  replaceParamsValueForEvent,
159
186
  request,
@@ -165,6 +192,8 @@ _.noConflict();
165
192
  stringScriptExecution,
166
193
  tenantIdSessionKey,
167
194
  underscoreToCamelCase,
195
+ unitConversion,
196
+ unregisterOnCallSkill,
168
197
  watchMatchMedia
169
198
  });
170
199
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["import fileToBase64, { type fileToBase64Type } from './fileToBase64';\nimport CookieUtils from './CookieUtils';\nimport { argsToString, argsToObject, getSearchObj } from './pathArgsUtils';\nimport {\n asyncLocalStorage,\n asyncSessionStorage,\n type asyncLocalStorageType,\n type asyncSessionStorageType,\n} from './asyncStorage';\nimport {\n camelToSnake,\n underscoreToCamelCase,\n generateRandom18Int,\n} from './stringUtils';\nimport {\n getDataArr,\n getParamsArr,\n replaceParamsValue,\n getParamsContentByParamKeys,\n replaceParamsValueForEvent,\n} from './treeUtils';\nimport formatModuleData from './formatModule/formatModuleData';\nimport {\n patternTransitionRegExp,\n stringPramarsValTransition,\n stringScriptExecution,\n createCompartmentExecution,\n checkDataSourceOfFn,\n} from './formatModule/helpers';\nimport loopPageStaticCodeMap from './loopPageStaticCodeMap';\nimport loopPageServiceApiMap from './loopPageServiceApiMap';\nimport { getValueByPath } from './getValueByPath';\nimport scriptExecution, { type scriptExecutionType } from './scriptExecution';\nimport {\n getFileUrlById,\n getFileUrlByFileInfoId,\n getRemoteComponentUrlByCode,\n getRemoteComponentUrlById,\n} from './file';\nimport {\n isValidUrl,\n sanitizeRedirectUrl,\n safeRedirect,\n sanitizeEventHandler,\n} from './securityUtils';\nimport {\n isReactNative,\n isWeb,\n isNode,\n getEnvironment,\n getWindow,\n getDocument,\n getLocation,\n isMobile,\n} from './environment';\n\n\nimport watchMatchMedia, { type pageSizeType } from './watchMatchMedia';\n\nimport { request, tenantIdSessionKey, getAccessUrl } from './http';\nimport { formatTime, formatTimeCustom, isToday, getRelativeTime } from './timeFormat';\nimport {\n generateWatermarkBase64,\n generateWatermarkStyle,\n getVariableRealValue,\n parseContentVariables,\n fetchClientIp,\n getClientIp,\n escapeXml,\n type WatermarkStyles,\n type WatermarkLayout,\n type WatermarkConfig,\n type WatermarkRow,\n type ContextVariable,\n type SessionInfo,\n} from './watermark';\n\n// 避免 _对象 和其他库冲突\nconst _ = require('lodash');\n\n_.noConflict();\n\nexport type {\n fileToBase64Type,\n asyncLocalStorageType,\n asyncSessionStorageType,\n scriptExecutionType,\n pageSizeType,\n WatermarkStyles,\n WatermarkLayout,\n WatermarkConfig,\n WatermarkRow,\n ContextVariable,\n SessionInfo,\n};\n\nexport {\n fileToBase64,\n CookieUtils,\n argsToString,\n argsToObject,\n getSearchObj,\n asyncLocalStorage,\n asyncSessionStorage,\n camelToSnake,\n underscoreToCamelCase,\n generateRandom18Int,\n formatModuleData,\n patternTransitionRegExp,\n stringPramarsValTransition,\n loopPageStaticCodeMap,\n loopPageServiceApiMap,\n getDataArr,\n getParamsArr,\n replaceParamsValue,\n replaceParamsValueForEvent,\n getParamsContentByParamKeys,\n getFileUrlById,\n getFileUrlByFileInfoId,\n getRemoteComponentUrlByCode,\n getRemoteComponentUrlById,\n stringScriptExecution,\n createCompartmentExecution,\n scriptExecution,\n isValidUrl,\n sanitizeRedirectUrl,\n safeRedirect,\n sanitizeEventHandler,\n isReactNative,\n isWeb,\n isNode,\n getEnvironment,\n getWindow,\n getDocument,\n getLocation,\n isMobile,\n watchMatchMedia,\n request,\n tenantIdSessionKey,\n getAccessUrl,\n formatTime,\n formatTimeCustom,\n isToday,\n getRelativeTime,\n getValueByPath,\n generateWatermarkBase64,\n generateWatermarkStyle,\n getVariableRealValue,\n parseContentVariables,\n fetchClientIp,\n getClientIp,\n escapeXml,\n checkDataSourceOfFn,\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wCAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAAAC;AAAA,EAAA,gDAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4DAAAC;AAAA,EAAA,0DAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gDAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,gDAAAC;AAAA;AAAA;AAAA,0BAAoD;AACpD,yBAAwB;AACxB,2BAAyD;AACzD,0BAKO;AACP,yBAIO;AACP,uBAMO;AACP,8BAA6B;AAC7B,qBAMO;AACP,mCAAkC;AAClC,mCAAkC;AAClC,4BAA+B;AAC/B,6BAA0D;AAC1D,kBAKO;AACP,2BAKO;AACP,yBASO;AAGP,6BAAmD;AAEnD,kBAA0D;AAC1D,wBAAuE;AACvE,uBAcO;AAGP,IAAM,IAAI,QAAQ,QAAQ;AAE1B,EAAE,WAAW;",
6
- "names": ["CookieUtils", "fileToBase64", "formatModuleData", "loopPageServiceApiMap", "loopPageStaticCodeMap", "scriptExecution", "watchMatchMedia"]
4
+ "sourcesContent": ["import fileToBase64, { type fileToBase64Type } from './fileToBase64';\nimport CookieUtils from './CookieUtils';\nimport { argsToString, argsToObject, getSearchObj } from './pathArgsUtils';\nimport {\n asyncLocalStorage,\n asyncSessionStorage,\n type asyncLocalStorageType,\n type asyncSessionStorageType,\n} from './asyncStorage';\nimport {\n camelToSnake,\n underscoreToCamelCase,\n generateRandom18Int,\n} from './stringUtils';\nimport {\n getDataArr,\n getParamsArr,\n replaceParamsValue,\n getParamsContentByParamKeys,\n replaceParamsValueForEvent,\n} from './treeUtils';\nimport formatModuleData from './formatModule/formatModuleData';\nimport {\n patternTransitionRegExp,\n stringPramarsValTransition,\n stringScriptExecution,\n createCompartmentExecution,\n checkDataSourceOfFn,\n} from './formatModule/helpers';\nimport loopPageStaticCodeMap from './loopPageStaticCodeMap';\nimport loopPageServiceApiMap from './loopPageServiceApiMap';\nimport { getValueByPath } from './getValueByPath';\nimport scriptExecution, { type scriptExecutionType } from './scriptExecution';\nimport {\n getFileUrlById,\n getFileUrlByFileInfoId,\n getRemoteComponentUrlByCode,\n getRemoteComponentUrlById,\n} from './file';\nimport {\n isValidUrl,\n sanitizeRedirectUrl,\n safeRedirect,\n sanitizeEventHandler,\n} from './securityUtils';\nimport {\n isReactNative,\n isWeb,\n isNode,\n getEnvironment,\n getWindow,\n getDocument,\n getLocation,\n isMobile,\n} from './environment';\n\nimport getClassPrefix from './getClassPrefix';\n\nimport watchMatchMedia, { type pageSizeType } from './watchMatchMedia';\n\nimport { request, tenantIdSessionKey, getAccessUrl } from './http';\nimport { formatTime, formatTimeCustom, isToday, getRelativeTime } from './timeFormat';\nimport {\n generateWatermarkBase64,\n generateWatermarkStyle,\n escapeXml,\n type WatermarkStyles,\n type WatermarkLayout,\n type WatermarkConfig,\n type WatermarkRow,\n type ContextVariable,\n} from './watermark';\n\nimport {\n getVariableRealValue,\n parseContentVariables,\n fetchClientIp,\n getClientIp,\n getUserInfoFromStorage,\n getDriverInfoFromStorage,\n type SessionInfo,\n} from './dealStorageData';\nimport aiGenerateFill from './aiGenerateFill';\nimport docchainContextFill from './docchainContextFill';\nimport unitConversion from './unitConversion';\nimport { copyToClipboard } from './copyToClipboard';\nimport { registerOnCallSkill, unregisterOnCallSkill, callSkill, hasOnCallSkillHandler } from './onCallSkillEvent';\n\nexport type { OnCallSkillHandler } from './onCallSkillEvent';\n\n// 避免 _对象 和其他库冲突\nconst _ = require('lodash');\n\n_.noConflict();\n\nexport type {\n fileToBase64Type,\n asyncLocalStorageType,\n asyncSessionStorageType,\n scriptExecutionType,\n pageSizeType,\n WatermarkStyles,\n WatermarkLayout,\n WatermarkConfig,\n WatermarkRow,\n ContextVariable,\n SessionInfo,\n};\n\nexport {\n fileToBase64,\n CookieUtils,\n argsToString,\n argsToObject,\n getSearchObj,\n asyncLocalStorage,\n asyncSessionStorage,\n camelToSnake,\n underscoreToCamelCase,\n generateRandom18Int,\n formatModuleData,\n patternTransitionRegExp,\n stringPramarsValTransition,\n loopPageStaticCodeMap,\n loopPageServiceApiMap,\n getDataArr,\n getParamsArr,\n replaceParamsValue,\n replaceParamsValueForEvent,\n getParamsContentByParamKeys,\n getFileUrlById,\n getFileUrlByFileInfoId,\n getRemoteComponentUrlByCode,\n getRemoteComponentUrlById,\n stringScriptExecution,\n createCompartmentExecution,\n scriptExecution,\n isValidUrl,\n sanitizeRedirectUrl,\n safeRedirect,\n sanitizeEventHandler,\n isReactNative,\n isWeb,\n isNode,\n getEnvironment,\n getWindow,\n getDocument,\n getLocation,\n isMobile,\n watchMatchMedia,\n request,\n tenantIdSessionKey,\n getAccessUrl,\n formatTime,\n formatTimeCustom,\n isToday,\n getRelativeTime,\n getValueByPath,\n generateWatermarkBase64,\n generateWatermarkStyle,\n getVariableRealValue,\n parseContentVariables,\n getUserInfoFromStorage,\n getDriverInfoFromStorage,\n fetchClientIp,\n getClientIp,\n escapeXml,\n checkDataSourceOfFn,\n aiGenerateFill,\n docchainContextFill,\n unitConversion,\n getClassPrefix,\n copyToClipboard,\n registerOnCallSkill,\n unregisterOnCallSkill,\n callSkill,\n hasOnCallSkillHandler,\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wCAAAA;AAAA,EAAA,4CAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wDAAAC;AAAA,EAAA;AAAA;AAAA,0CAAAC;AAAA,EAAA,gDAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8CAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4DAAAC;AAAA,EAAA,0DAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gDAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,8CAAAC;AAAA,EAAA;AAAA,gDAAAC;AAAA;AAAA;AAAA,0BAAoD;AACpD,yBAAwB;AACxB,2BAAyD;AACzD,0BAKO;AACP,yBAIO;AACP,uBAMO;AACP,8BAA6B;AAC7B,qBAMO;AACP,mCAAkC;AAClC,mCAAkC;AAClC,4BAA+B;AAC/B,6BAA0D;AAC1D,kBAKO;AACP,2BAKO;AACP,yBASO;AAEP,4BAA2B;AAE3B,6BAAmD;AAEnD,kBAA0D;AAC1D,wBAAuE;AACvE,uBASO;AAEP,6BAQO;AACP,4BAA2B;AAC3B,iCAAgC;AAChC,4BAA2B;AAC3B,6BAAgC;AAChC,8BAA6F;AAK7F,IAAM,IAAI,QAAQ,QAAQ;AAE1B,EAAE,WAAW;",
6
+ "names": ["CookieUtils", "aiGenerateFill", "docchainContextFill", "fileToBase64", "formatModuleData", "getClassPrefix", "loopPageServiceApiMap", "loopPageStaticCodeMap", "scriptExecution", "unitConversion", "watchMatchMedia"]
7
7
  }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * onCallSkill 全局事件(单例模式)
3
+ * 参考 emitter 设计,handler 为全局单例,支持多组件注册时按栈管理
4
+ */
5
+ export type OnCallSkillHandler = (event: any, data?: any, callback?: Function) => void;
6
+ /**
7
+ * 注册 onCallSkill 处理器,返回 token 用于注销
8
+ */
9
+ export declare function registerOnCallSkill(handler: OnCallSkillHandler): string;
10
+ /**
11
+ * 注销 onCallSkill 处理器,传入 register 返回的 token
12
+ */
13
+ export declare function unregisterOnCallSkill(token?: string): void;
14
+ /**
15
+ * 是否已有处理器注册(用于避免重复注册)
16
+ */
17
+ export declare function hasOnCallSkillHandler(): boolean;
18
+ /**
19
+ * 全局触发 onCallSkill,任意层级组件可调用
20
+ */
21
+ export declare function callSkill(event: any, data?: any, callback?: Function): void;
@@ -0,0 +1,81 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/onCallSkillEvent.ts
20
+ var onCallSkillEvent_exports = {};
21
+ __export(onCallSkillEvent_exports, {
22
+ callSkill: () => callSkill,
23
+ hasOnCallSkillHandler: () => hasOnCallSkillHandler,
24
+ registerOnCallSkill: () => registerOnCallSkill,
25
+ unregisterOnCallSkill: () => unregisterOnCallSkill
26
+ });
27
+ module.exports = __toCommonJS(onCallSkillEvent_exports);
28
+ var OnCallSkillEmitter = class {
29
+ constructor() {
30
+ this.subscribers = [];
31
+ this.customEventIndex = -1;
32
+ }
33
+ on(handler) {
34
+ this.customEventIndex += 1;
35
+ const token = `onCallSkill-uid-${this.customEventIndex}`;
36
+ this.subscribers.push({ handler, token });
37
+ return token;
38
+ }
39
+ off(token) {
40
+ if (token) {
41
+ const idx = this.subscribers.findIndex((s) => s.token === token);
42
+ if (idx >= 0) {
43
+ this.subscribers.splice(idx, 1);
44
+ }
45
+ } else {
46
+ this.subscribers = [];
47
+ }
48
+ }
49
+ hasHandler() {
50
+ return this.subscribers.length > 0;
51
+ }
52
+ trigger(event, data, callback) {
53
+ const current = this.subscribers[this.subscribers.length - 1];
54
+ if (current == null ? void 0 : current.handler) {
55
+ current.handler(event, data, callback);
56
+ } else {
57
+ console.warn("[onCallSkillEvent] 未注册处理器,请确保 ChatMessage 已挂载并传入 onCallSkill");
58
+ }
59
+ }
60
+ };
61
+ var emitter = new OnCallSkillEmitter();
62
+ function registerOnCallSkill(handler) {
63
+ return emitter.on(handler);
64
+ }
65
+ function unregisterOnCallSkill(token) {
66
+ emitter.off(token);
67
+ }
68
+ function hasOnCallSkillHandler() {
69
+ return emitter.hasHandler();
70
+ }
71
+ function callSkill(event, data, callback) {
72
+ emitter.trigger(event, data, callback);
73
+ }
74
+ // Annotate the CommonJS export names for ESM import in node:
75
+ 0 && (module.exports = {
76
+ callSkill,
77
+ hasOnCallSkillHandler,
78
+ registerOnCallSkill,
79
+ unregisterOnCallSkill
80
+ });
81
+ //# sourceMappingURL=onCallSkillEvent.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/onCallSkillEvent.ts"],
4
+ "sourcesContent": ["/**\n * onCallSkill 全局事件(单例模式)\n * 参考 emitter 设计,handler 为全局单例,支持多组件注册时按栈管理\n */\n\nexport type OnCallSkillHandler = (event: any, data?: any, callback?: Function) => void;\n\ninterface Subscriber {\n handler: OnCallSkillHandler;\n token: string;\n}\n\nclass OnCallSkillEmitter {\n private subscribers: Subscriber[] = [];\n\n private customEventIndex = -1;\n\n on(handler: OnCallSkillHandler): string {\n this.customEventIndex += 1;\n const token = `onCallSkill-uid-${this.customEventIndex}`;\n this.subscribers.push({ handler, token });\n return token;\n }\n\n off(token?: string): void {\n if (token) {\n const idx = this.subscribers.findIndex((s) => s.token === token);\n if (idx >= 0) {\n this.subscribers.splice(idx, 1);\n }\n } else {\n this.subscribers = [];\n }\n }\n\n hasHandler(): boolean {\n return this.subscribers.length > 0;\n }\n\n trigger(event: any, data?: any, callback?: Function): void {\n const current = this.subscribers[this.subscribers.length - 1];\n if (current?.handler) {\n current.handler(event, data, callback);\n } else {\n console.warn('[onCallSkillEvent] 未注册处理器,请确保 ChatMessage 已挂载并传入 onCallSkill');\n }\n }\n}\n\nconst emitter = new OnCallSkillEmitter();\n\n/**\n * 注册 onCallSkill 处理器,返回 token 用于注销\n */\nexport function registerOnCallSkill(handler: OnCallSkillHandler): string {\n return emitter.on(handler);\n}\n\n/**\n * 注销 onCallSkill 处理器,传入 register 返回的 token\n */\nexport function unregisterOnCallSkill(token?: string): void {\n emitter.off(token);\n}\n\n/**\n * 是否已有处理器注册(用于避免重复注册)\n */\nexport function hasOnCallSkillHandler(): boolean {\n return emitter.hasHandler();\n}\n\n/**\n * 全局触发 onCallSkill,任意层级组件可调用\n */\nexport function callSkill(event: any, data?: any, callback?: Function): void {\n emitter.trigger(event, data, callback);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,IAAM,qBAAN,MAAyB;AAAA,EAAzB;AACE,SAAQ,cAA4B,CAAC;AAErC,SAAQ,mBAAmB;AAAA;AAAA,EAE3B,GAAG,SAAqC;AACtC,SAAK,oBAAoB;AACzB,UAAM,QAAQ,mBAAmB,KAAK;AACtC,SAAK,YAAY,KAAK,EAAE,SAAS,MAAM,CAAC;AACxC,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,OAAsB;AACxB,QAAI,OAAO;AACT,YAAM,MAAM,KAAK,YAAY,UAAU,CAAC,MAAM,EAAE,UAAU,KAAK;AAC/D,UAAI,OAAO,GAAG;AACZ,aAAK,YAAY,OAAO,KAAK,CAAC;AAAA,MAChC;AAAA,IACF,OAAO;AACL,WAAK,cAAc,CAAC;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,aAAsB;AACpB,WAAO,KAAK,YAAY,SAAS;AAAA,EACnC;AAAA,EAEA,QAAQ,OAAY,MAAY,UAA2B;AACzD,UAAM,UAAU,KAAK,YAAY,KAAK,YAAY,SAAS,CAAC;AAC5D,QAAI,mCAAS,SAAS;AACpB,cAAQ,QAAQ,OAAO,MAAM,QAAQ;AAAA,IACvC,OAAO;AACL,cAAQ,KAAK,8DAA8D;AAAA,IAC7E;AAAA,EACF;AACF;AAEA,IAAM,UAAU,IAAI,mBAAmB;AAKhC,SAAS,oBAAoB,SAAqC;AACvE,SAAO,QAAQ,GAAG,OAAO;AAC3B;AAKO,SAAS,sBAAsB,OAAsB;AAC1D,UAAQ,IAAI,KAAK;AACnB;AAKO,SAAS,wBAAiC;AAC/C,SAAO,QAAQ,WAAW;AAC5B;AAKO,SAAS,UAAU,OAAY,MAAY,UAA2B;AAC3E,UAAQ,QAAQ,OAAO,MAAM,QAAQ;AACvC;",
6
+ "names": []
7
+ }