@ibiz-template/vue3-components 0.7.41-alpha.42 → 0.7.41-alpha.44

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 (82) hide show
  1. package/dist/ibiz-markdown-editor-CUzKkFER.js +1 -0
  2. package/dist/{index-CaWTEUU1.js → index-DgqTP4Vw.js} +1 -1
  3. package/dist/{index-CD2XM6M6.js → index-Dr0VM8iS.js} +1 -1
  4. package/dist/index-DtEaU3-5.js +11 -0
  5. package/dist/index.min.css +1 -1
  6. package/dist/index.system.min.js +1 -1
  7. package/dist/wang-editor-CRWSwyXY.js +1 -0
  8. package/dist/{xlsx-util-B1eGfH7d.js → xlsx-util-CMJON8Uq.js} +1 -1
  9. package/es/control/grid/grid-column/grid-field-column/attachment-column/attachment-column.mjs +2 -1
  10. package/es/control/grid/grid-column/grid-field-column/attachment-column/file-util.mjs +22 -11
  11. package/es/control/toolbar/export-excel/export-excel.mjs +19 -4
  12. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.mjs +5 -2
  13. package/es/editor/code/monaco-editor/monaco-editor.mjs +8 -194
  14. package/es/editor/html/wang-editor/module/ai-module.mjs +1 -1
  15. package/es/editor/html/wang-editor/wang-editor.mjs +35 -207
  16. package/es/editor/markdown/ibiz-markdown-editor/custom-menu.mjs +11 -222
  17. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  18. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +23 -12
  19. package/es/editor/text-box/input/input.mjs +11 -197
  20. package/es/editor/text-box/signature/signature.mjs +28 -15
  21. package/es/editor/upload/upload-editor.controller.mjs +12 -1
  22. package/es/editor/upload/use/use-iview-upload.mjs +28 -13
  23. package/es/locale/en/index.mjs +29 -2
  24. package/es/locale/zh-CN/index.mjs +29 -2
  25. package/es/panel-component/coop-pos/coop-pos.controller.mjs +11 -1
  26. package/es/panel-component/panel-app-title/panel-app-title.controller.mjs +3 -1
  27. package/es/panel-component/panel-app-title/panel-app-title.mjs +22 -43
  28. package/es/util/ai-chat-util/ai-chat-util.mjs +672 -7
  29. package/es/util/ai-chat-util/ai-feedback/ai-feedback.css +1 -0
  30. package/es/util/ai-chat-util/ai-feedback/ai-feedback.mjs +130 -0
  31. package/es/util/app-util/app-util.mjs +26 -247
  32. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-think/ai-think.css +1 -0
  33. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-think/ai-think.mjs +56 -0
  34. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call/ai-tool-call.css +1 -0
  35. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call/ai-tool-call.mjs +52 -0
  36. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call-item/ai-tool-call-item.css +1 -0
  37. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call-item/ai-tool-call-item.mjs +143 -0
  38. package/es/util/inline-ai-util/inline-ai-textarea/common/index.mjs +4 -0
  39. package/es/util/inline-ai-util/inline-ai-textarea/icon.mjs +52 -1
  40. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.css +1 -1
  41. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.mjs +34 -4
  42. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.mjs +32 -25
  43. package/es/util/inline-ai-util/inline-ai-textarea/interface.mjs +1 -0
  44. package/lib/control/grid/grid-column/grid-field-column/attachment-column/attachment-column.cjs +2 -1
  45. package/lib/control/grid/grid-column/grid-field-column/attachment-column/file-util.cjs +22 -11
  46. package/lib/control/toolbar/export-excel/export-excel.cjs +18 -3
  47. package/lib/editor/carousel/ibiz-carousel/ibiz-carousel.cjs +5 -2
  48. package/lib/editor/code/monaco-editor/monaco-editor.cjs +8 -194
  49. package/lib/editor/html/wang-editor/module/ai-module.cjs +1 -1
  50. package/lib/editor/html/wang-editor/wang-editor.cjs +34 -206
  51. package/lib/editor/markdown/ibiz-markdown-editor/custom-menu.cjs +11 -222
  52. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +23 -12
  53. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  54. package/lib/editor/text-box/input/input.cjs +10 -196
  55. package/lib/editor/text-box/signature/signature.cjs +28 -15
  56. package/lib/editor/upload/upload-editor.controller.cjs +12 -1
  57. package/lib/editor/upload/use/use-iview-upload.cjs +28 -13
  58. package/lib/locale/en/index.cjs +29 -2
  59. package/lib/locale/zh-CN/index.cjs +29 -2
  60. package/lib/panel-component/coop-pos/coop-pos.controller.cjs +11 -1
  61. package/lib/panel-component/panel-app-title/panel-app-title.cjs +21 -42
  62. package/lib/panel-component/panel-app-title/panel-app-title.controller.cjs +3 -1
  63. package/lib/util/ai-chat-util/ai-chat-util.cjs +670 -5
  64. package/lib/util/ai-chat-util/ai-feedback/ai-feedback.cjs +132 -0
  65. package/lib/util/ai-chat-util/ai-feedback/ai-feedback.css +1 -0
  66. package/lib/util/app-util/app-util.cjs +25 -246
  67. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-think/ai-think.cjs +58 -0
  68. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-think/ai-think.css +1 -0
  69. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call/ai-tool-call.cjs +54 -0
  70. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call/ai-tool-call.css +1 -0
  71. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call-item/ai-tool-call-item.cjs +145 -0
  72. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call-item/ai-tool-call-item.css +1 -0
  73. package/lib/util/inline-ai-util/inline-ai-textarea/common/index.cjs +9 -0
  74. package/lib/util/inline-ai-util/inline-ai-textarea/icon.cjs +54 -0
  75. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.cjs +31 -24
  76. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.css +1 -1
  77. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.cjs +34 -4
  78. package/lib/util/inline-ai-util/inline-ai-textarea/interface.cjs +3 -0
  79. package/package.json +7 -7
  80. package/dist/ibiz-markdown-editor-pEdb_gS_.js +0 -1
  81. package/dist/index-BObZTN7-.js +0 -11
  82. package/dist/wang-editor-Ck-JCWqK.js +0 -1
@@ -2,10 +2,7 @@
2
2
 
3
3
  var Cherry = require('cherry-markdown');
4
4
  var vue = require('vue');
5
- var qxUtil = require('qx-util');
6
5
  var vue3Util = require('@ibiz-template/vue3-util');
7
- var core = require('@ibiz-template/core');
8
- var runtime = require('@ibiz-template/runtime');
9
6
 
10
7
  "use strict";
11
8
  function initCustomMenu(c, opts) {
@@ -62,29 +59,23 @@ function initCustomMenu(c, opts) {
62
59
  const appDataEntityId = c.model.appDataEntityId;
63
60
  if (!appDataEntityId || !c.deACMode)
64
61
  return;
65
- const aiAgentlist = await ibiz.aiChatUtil.getAIAgentList(
62
+ const { zIndex } = vue3Util.useUIStore();
63
+ const containerZIndex = zIndex.increment();
64
+ chatInstance = await ibiz.aiChatUtil.getAIChat();
65
+ const { containerOptions, chatOptions } = await ibiz.aiChatUtil.getEditorExAIChatParams(
66
+ c.editorParams,
66
67
  c.context,
67
68
  c.params,
68
- c.editorParams
69
+ props.data,
70
+ c.deACMode,
71
+ { chatInstance, view: c.view, ctrl: c.ctrl }
69
72
  );
70
- const {
71
- contentToolbarItems,
72
- footerToolbarItems,
73
- questionToolbarItems,
74
- otherToolbarItems
75
- } = ibiz.aiChatUtil.calcAiToolbarItemsByAc(c.deACMode);
76
- const { containerOptions, chatOptions } = ibiz.aiChatUtil.getEditorExAIChatParams(
77
- c.editorParams,
73
+ const resourceOptions = await ibiz.aiChatUtil.getAIResourceOptions(
78
74
  c.context,
79
- c.params,
80
- props.data
75
+ c.params
81
76
  );
82
- const { zIndex } = vue3Util.useUIStore();
83
- const containerZIndex = zIndex.increment();
84
- chatInstance = await ibiz.aiChatUtil.getAIChat();
85
- let id = "";
86
- let abortController;
87
77
  chatInstance.create({
78
+ resourceOptions,
88
79
  containerOptions: {
89
80
  zIndex: containerZIndex,
90
81
  ...containerOptions
@@ -94,89 +85,7 @@ function initCustomMenu(c, opts) {
94
85
  context: { ...c.context },
95
86
  params: { ...c.params, srfactag: c.deACMode.codeName },
96
87
  appDataEntityId,
97
- contentToolbarItems,
98
- footerToolbarItems,
99
- questionToolbarItems,
100
- otherToolbarItems,
101
- aiAgentlist,
102
88
  ...chatOptions,
103
- question: async (aiChat, ctx, param, other, arr, sessionid, srfaiagent, srfmode) => {
104
- id = qxUtil.createUUID();
105
- abortController = new AbortController();
106
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
107
- try {
108
- const questionRequestData = {
109
- messages: arr,
110
- sessionid
111
- };
112
- if (srfaiagent) {
113
- questionRequestData.srfaiagent = srfaiagent;
114
- }
115
- if (srfmode) {
116
- questionRequestData.mode = srfmode;
117
- }
118
- await deService.aiChatSse(
119
- (msg) => {
120
- if (msg.actionstate === 20 && msg.actionresult) {
121
- aiChat.addMessage({
122
- messageid: id,
123
- state: msg.actionstate,
124
- type: "DEFAULT",
125
- role: "ASSISTANT",
126
- content: msg.actionresult
127
- });
128
- } else if (msg.actionstate === 30 && msg.actionresult) {
129
- const result = JSON.parse(msg.actionresult);
130
- const choices = result.choices;
131
- if (choices && choices.length > 0) {
132
- aiChat.replaceMessage({
133
- messageid: id,
134
- state: msg.actionstate,
135
- type: "DEFAULT",
136
- role: "ASSISTANT",
137
- content: choices[0].content || ""
138
- });
139
- }
140
- } else if (msg.actionstate === 40) {
141
- aiChat.replaceMessage({
142
- messageid: id,
143
- state: msg.actionstate,
144
- type: "ERROR",
145
- role: "ASSISTANT",
146
- content: msg.actionresult
147
- });
148
- }
149
- },
150
- abortController,
151
- ctx,
152
- param,
153
- { ...questionRequestData }
154
- );
155
- } catch (error) {
156
- aiChat.replaceMessage({
157
- messageid: id,
158
- state: 40,
159
- type: "ERROR",
160
- role: "ASSISTANT",
161
- content: error.message || ibiz.i18n.t("app.aiError")
162
- });
163
- abortController == null ? void 0 : abortController.abort();
164
- } finally {
165
- aiChat.completeMessage(id, true);
166
- return true;
167
- }
168
- },
169
- abortQuestion: async (aiChat) => {
170
- abortController == null ? void 0 : abortController.abort();
171
- await aiChat.stopMessage({
172
- messageid: id,
173
- state: 30,
174
- type: "DEFAULT",
175
- role: "ASSISTANT",
176
- content: ""
177
- });
178
- await aiChat.completeMessage(id, true);
179
- },
180
89
  action: (action, message) => {
181
90
  if (action === "backfill") {
182
91
  if (isEditing.value) {
@@ -185,126 +94,6 @@ function initCustomMenu(c, opts) {
185
94
  emit("change", message.realcontent);
186
95
  }
187
96
  }
188
- },
189
- history: async (ctx, param, other) => {
190
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
191
- const historyRequestData = {};
192
- if (other.appendCurData) {
193
- Object.assign(historyRequestData, {
194
- ...other.appendCurData
195
- });
196
- }
197
- if (other.srfaiagent) {
198
- Object.assign(historyRequestData, {
199
- srfaiagent: other.srfaiagent
200
- });
201
- }
202
- if (other.srfmode) {
203
- Object.assign(historyRequestData, {
204
- mode: other.srfmode
205
- });
206
- }
207
- const result = await deService.aiChatHistory(
208
- ctx,
209
- param,
210
- historyRequestData
211
- );
212
- if (result.data && Array.isArray(result.data)) {
213
- let preMsg;
214
- result.data.forEach((item) => {
215
- if (item.role === "TOOL") {
216
- if (preMsg && item.content) {
217
- chatInstance.aiChat.updateRecommendPrompt(
218
- preMsg,
219
- item.content
220
- );
221
- }
222
- } else {
223
- const msg = {
224
- messageid: qxUtil.createUUID(),
225
- state: 30,
226
- type: "DEFAULT",
227
- role: item.role,
228
- content: item.content,
229
- completed: true
230
- };
231
- preMsg = msg;
232
- chatInstance.aiChat.addMessage(msg);
233
- }
234
- });
235
- }
236
- return true;
237
- },
238
- recommendPrompt: async (ctx, param, other) => {
239
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
240
- const result = await deService.aiChatRecommendPrompt(
241
- ctx,
242
- param,
243
- other.message
244
- );
245
- if (result.ok && result.data) {
246
- const choices = result.data.choices;
247
- if (choices && choices.length > 0) {
248
- return choices[0];
249
- }
250
- return null;
251
- }
252
- return null;
253
- },
254
- uploader: {
255
- onUpload: async (file, reportProgress, options) => {
256
- const fileMeata = ibiz.util.file.calcFileUpDownUrl(
257
- (options == null ? void 0 : options.context) || c.context,
258
- (options == null ? void 0 : options.params) || c.params,
259
- {}
260
- );
261
- const fielUploadHeaders = ibiz.util.file.getUploadHeaders();
262
- const formData = new FormData();
263
- formData.append("file", file);
264
- const res = await ibiz.net.axios({
265
- url: fileMeata.uploadUrl,
266
- method: "post",
267
- headers: fielUploadHeaders,
268
- data: formData,
269
- onUploadProgress: (progressEvent) => {
270
- const percent = progressEvent.loaded / progressEvent.total * 100;
271
- reportProgress(percent);
272
- }
273
- });
274
- return res.data;
275
- }
276
- },
277
- extendToolbarClick: async (event, source, context, params, data) => {
278
- var _a, _b;
279
- const result = await runtime.UIActionUtil.exec(
280
- source.id,
281
- {
282
- view: c.view,
283
- ctrl: c.ctrl,
284
- context: core.IBizContext.create(context),
285
- params,
286
- data: [data],
287
- event
288
- },
289
- source.appId
290
- );
291
- if (result.closeView) {
292
- c.view.closeView({ ok: true });
293
- } else if (result.refresh) {
294
- switch (result.refreshMode) {
295
- case 1:
296
- c.view.callUIAction(runtime.SysUIActionTag.REFRESH);
297
- break;
298
- case 2:
299
- (_a = c.view.parentView) == null ? void 0 : _a.callUIAction(runtime.SysUIActionTag.REFRESH);
300
- break;
301
- case 3:
302
- (_b = c.view.getTopView()) == null ? void 0 : _b.callUIAction(runtime.SysUIActionTag.REFRESH);
303
- break;
304
- default:
305
- }
306
- }
307
- return result;
308
97
  }
309
98
  }
310
99
  });
@@ -19,7 +19,7 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
19
19
  emit,
20
20
  slots
21
21
  }) {
22
- var _a, _b, _c;
22
+ var _a, _b, _c, _d, _e;
23
23
  const ns = vue3Util.useNamespace("markdown");
24
24
  const c = props.controller;
25
25
  const currentVal = vue.ref("");
@@ -35,13 +35,14 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
35
35
  });
36
36
  const uploadUrl = vue.ref("");
37
37
  const customTheme = ((_a = c == null ? void 0 : c.editorParams) == null ? void 0 : _a.customTheme) || ((_b = c == null ? void 0 : c.editorParams) == null ? void 0 : _b.customtheme);
38
+ const enableNoAccess = ((_c = c == null ? void 0 : c.editorParams) == null ? void 0 : _c.enablenoaccess) === "true";
38
39
  const {
39
40
  UIStore
40
41
  } = vue3Util.useUIStore();
41
42
  const theme = vue.ref(customTheme || UIStore.theme);
42
43
  const isEditing = vue.ref(false);
43
44
  let showmode = "default";
44
- if (c && ((_c = c.editorParams) == null ? void 0 : _c.showmode)) {
45
+ if (c && ((_d = c.editorParams) == null ? void 0 : _d.showmode)) {
45
46
  showmode = c.editorParams.showmode;
46
47
  }
47
48
  const isFullScreen = vue.ref(false);
@@ -54,6 +55,10 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
54
55
  const lastDirectoryState = vue.ref("pure");
55
56
  let isIgnoreChange = false;
56
57
  let chatInstance;
58
+ let tocPos = "absolute";
59
+ if ((_e = c == null ? void 0 : c.editorparams) == null ? void 0 : _e.tocpos) {
60
+ tocPos = c.editorparams.tocpos === "fixed" ? "fixed" : "absolute";
61
+ }
57
62
  const [AIMenu, AIChart] = customMenu.initCustomMenu(c, {
58
63
  props,
59
64
  chatInstance,
@@ -64,7 +69,8 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
64
69
  vue.watch(() => props.data, (newVal) => {
65
70
  if (newVal && c) {
66
71
  const editorParams = {
67
- ...c.editorParams
72
+ ...c.editorParams,
73
+ enableNoAccess
68
74
  };
69
75
  if (editorParams.uploadparams) {
70
76
  editorParams.uploadParams = JSON.parse(editorParams.uploadparams);
@@ -82,7 +88,8 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
82
88
  return "";
83
89
  }
84
90
  const editorParams = {
85
- ...c.editorParams
91
+ ...c.editorParams,
92
+ enableNoAccess
86
93
  };
87
94
  if (editorParams.exportparams) {
88
95
  editorParams.exportParams = JSON.parse(editorParams.exportparams);
@@ -97,7 +104,7 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
97
104
  const data = await ibiz.util.file.fileUpload(uploadUrl.value, file, headers.value);
98
105
  const downloadUrl = getDownloadUrl(props.data || {}, data.fileid);
99
106
  let url = downloadUrl.replace("%fileId%", data.fileid);
100
- if (ibiz.config.common.enableDownloadTicket && c) {
107
+ if (ibiz.config.common.enableDownloadTicket && c && c.editorParams && !enableNoAccess) {
101
108
  const downloadTicket = await ibiz.util.file.getDownloadTicket(c.context, c.params, props.data || {}, {
102
109
  fileId: data.fileid
103
110
  }, c.downloadTicketParams);
@@ -138,7 +145,7 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
138
145
  setCherryContent(newVal);
139
146
  }
140
147
  });
141
- const afterChange = (_e) => {
148
+ const afterChange = (_e2) => {
142
149
  if (showmode === "manual") {
143
150
  return;
144
151
  }
@@ -231,10 +238,10 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
231
238
  }
232
239
  }
233
240
  };
234
- const handleKeyDown = (_e) => {
235
- _e.stopPropagation();
236
- if (_e.key === "Escape") {
237
- _e.preventDefault();
241
+ const handleKeyDown = (_e2) => {
242
+ _e2.stopPropagation();
243
+ if (_e2.key === "Escape") {
244
+ _e2.preventDefault();
238
245
  if (isFullscreen()) {
239
246
  closeFullscreen();
240
247
  editor.toggleToc(lastDirectoryState.value);
@@ -332,7 +339,7 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
332
339
  // pure: 精简模式/缩略模式,只有一排小点; full: 完整模式,会展示所有标题
333
340
  showAutoNumber: true,
334
341
  // 是否显示自增序号
335
- position: "absolute",
342
+ position: tocPos,
336
343
  // 悬浮目录的悬浮方式。当滚动条在cherry内部时,用absolute;当滚动条在cherry外部时,用fixed
337
344
  cssText: ""
338
345
  // 自定义样式
@@ -356,6 +363,9 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
356
363
  }
357
364
  });
358
365
  editor.toggleToc("pure");
366
+ const html = editor.engine.makeHtml(currentVal.value);
367
+ editor.previewer.update(html);
368
+ editor.toc.updateTocList();
359
369
  editor.setTheme(theme.value);
360
370
  if (customTheme) {
361
371
  editor.setTheme(customTheme);
@@ -518,6 +528,7 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
518
528
  markDownBox,
519
529
  headers,
520
530
  theme,
531
+ UIStore,
521
532
  defaultModel,
522
533
  cssVars,
523
534
  isEditing,
@@ -540,7 +551,7 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
540
551
  "tabindex": "-1",
541
552
  "id": this.id,
542
553
  "style": this.cssVars,
543
- "class": [this.ns.b("cherry"), this.ns.m(this.theme === "dark" ? "dark" : "light")]
554
+ "class": [this.ns.b("cherry"), this.ns.m(this.UIStore.theme === "dark" ? "dark" : "light")]
544
555
  }, null)]);
545
556
  }
546
557
  });
@@ -1 +1 @@
1
- .ibiz-markdown{--ibiz-markdown-width:100%;--ibiz-markdown-color-manual-toolbar-bg-save:var(--ibiz-color-primary);--ibiz-markdown-color-manual-toolbar-text-save:var(--ibiz-color-primary-active-text);--ibiz-markdown-color-manual-toolbar-text-cancel:var(--ibiz-color-text-1);--ibiz-markdown-color-manual-toolbar-text-cancel-hover:var(--ibiz-color-primary);--ibiz-markdown-color-dark-scrollbar-thumb-dark:rgb(var(--ibiz-grey-4));--ibiz-markdown-color-light-scrollbar-thumb-dark:rgb(var(--ibiz-grey-4));--ibiz-markdown-color-scrollbar-thumb-dark-hover:rgba(var(--ibiz-grey-4), 0.5);--ibiz-markdown-color-dark-toc-text:var(--ibiz-color-fill-0);--ibiz-markdown-color-toc-header-text:var(--ibiz-color-text-0);--ibiz-markdown-color-dark-mardown-border:rgb(var(--ibiz-grey-2));--ibiz-markdown-spacing-manual-toolbar-height:32px;--ibiz-markdown-spacing-manual-toolbar-gap:var(--ibiz-spacing-base);--ibiz-markdown-spacing-manual-toolbar-item-padding:0 var(--ibiz-spacing-base);--ibiz-markdown-spacing-manual-toolbar-margin:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-tight) 0 0;--ibiz-markdown-spacing-manual-toolbar-fullscreen-height:var(--ibiz-height-control-default);--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding:0 var(--ibiz-spacing-extra-loose);--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header:var(--ibiz-spacing-super-loose);--ibiz-markdown-height-manual-toolbar-height:var(--ibiz-height-control-default);--ibiz-markdown-border-radius-manual-toolbar-item:var(--ibiz-border-radius-small);--ibiz-markdown-border-manual-toolbar-fullscreen-footer:1px solid var(--ibiz-color-border);--ibiz-markdown-img-preview-top:-32px;--ibiz-markdown-img-preview-right:-36px;--ibiz-markdown-img-preview-width:32px;--ibiz-markdown-img-preview-height:32px}.ibiz-markdown__header{display:flex;flex-shrink:0;gap:var(--ibiz-markdown-spacing-manual-toolbar-gap);align-items:center;justify-content:end;height:var(--ibiz-markdown-spacing-manual-toolbar-height)}.ibiz-markdown__header--edit{cursor:pointer}.ibiz-markdown__header--full{cursor:pointer}.ibiz-markdown__header.is-fullscreen{position:fixed;top:0;right:0;left:0;z-index:999;width:100%;height:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header));padding:var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding);margin-top:0;background-color:var(--ibiz-view-bg-color)}.ibiz-markdown__header.is-fullscreen+.ibiz-markdown-cherry .cherry.fullscreen{top:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header));height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header))}.ibiz-markdown__footer{display:flex;gap:var(--ibiz-markdown-spacing-manual-toolbar-gap);align-items:center;justify-content:end;height:var(--ibiz-markdown-spacing-manual-toolbar-height);margin:var(--ibiz-markdown-spacing-manual-toolbar-margin)}.ibiz-markdown__footer--save{height:var(--ibiz-markdown-height-manual-toolbar-height);padding:var(--ibiz-markdown-spacing-manual-toolbar-item-padding);line-height:var(--ibiz-markdown-height-manual-toolbar-height);color:var(--ibiz-markdown-color-manual-toolbar-text-save);text-align:center;cursor:pointer;background-color:var(--ibiz-markdown-color-manual-toolbar-bg-save);border-radius:var(--ibiz-markdown-border-radius-manual-toolbar-item)}.ibiz-markdown__footer--cancel{color:var(--ibiz-markdown-color-manual-toolbar-text-cancel);cursor:pointer}.ibiz-markdown__footer--cancel:hover{color:var(--ibiz-markdown-color-manual-toolbar-text-cancel-hover)}.ibiz-markdown__footer.is-fullscreen{position:fixed;right:0;bottom:0;left:0;z-index:999;width:100%;height:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height) * 2);padding:var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding);margin-top:0;background-color:var(--ibiz-view-bg-color);border-top:var(--ibiz-markdown-border-manual-toolbar-fullscreen-footer)}.ibiz-markdown__footer.is-fullscreen+.ibiz-markdown-cherry .cherry.fullscreen{height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height) * 2)}.ibiz-markdown__img-preview.el-image{position:absolute;height:0}.ibiz-markdown__img-preview .el-image-viewer__wrapper{width:90%;height:90%;margin:auto}.ibiz-markdown__img-preview .el-image-viewer__mask{position:fixed;width:100vw;height:100vh;cursor:zoom-out;opacity:.7}.ibiz-markdown__img-preview .el-image-viewer__close{top:var(--ibiz-markdown-img-preview-top);right:var(--ibiz-markdown-img-preview-right);width:var(--ibiz-markdown-img-preview-width);height:var(--ibiz-markdown-img-preview-height)}.ibiz-markdown .ibiz-markdown-cherry{width:var(--ibiz-markdown-width);outline:0}.ibiz-markdown .ibiz-markdown-cherry .cherry{width:100%;border:1px solid var(--ibiz-color-border);box-shadow:none}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-toolbar{box-shadow:none}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-editor{border-top:1px solid var(--ibiz-color-border)}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-previewer{border-top:1px solid var(--ibiz-color-border)}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-previewer img{cursor:zoom-in}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-sidebar{top:49px;border-left:1px solid var(--ibiz-color-border);box-shadow:none}.ibiz-markdown.is-disabled .cherry{min-height:auto}.ibiz-markdown.is-disabled .ibiz-markdown__fullscreen{position:absolute;top:8px;right:12px;z-index:98;font-size:var(--ibiz-font-size-regular);line-height:2.8}.ibiz-markdown.is-disabled .theme__dark .ibiz-markdown__fullscreen{color:var(--ibiz-color-text-0)}.ibiz-markdown.is-disabled .theme__dark .ibiz-markdown__fullscreen:hover{background-color:var(--ibiz-color-bg-3)}.ibiz-markdown.is-manual{display:flex;flex-direction:column}.ibiz-markdown.is-manual .ibiz-markdown-cherry{flex-grow:1;height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-height))!important}.ibiz-markdown.is-manual.is-editing{flex-direction:column-reverse}.ibiz-markdown.is-manual .ibiz-markdown-menu{display:none}.ibiz-markdown.is-manual.is-editing .ibiz-markdown-menu{display:block}.ibiz-markdown.is-show-editor-switch-menu .ibiz-composite-form-item-ex-menu{--ibiz-composite-form-item-ex-menu-height:47px;--ibiz-composite-form-item-ex-menu-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-tight) 0;max-height:100%}.ibiz-markdown.is-show-editor-switch-menu .cherry-toolbar{padding-right:calc(var(--ibiz-composite-form-item-ex-menu-width) + var(--ibiz-spacing-extra-tight))}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu{position:absolute;top:1px;right:1px;z-index:var(--ibiz-composite-form-item-ex-menu-z-index);display:flex;align-items:center;height:calc(var(--ibiz-markdown-toolbar-height) - 1px);background:var(--ibiz-composite-form-item-ex-menu-bg-color);border-right:1px solid var(--ibiz-color-border);border-left:1px solid var(--ibiz-color-border)}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu.is-fullscreen{position:fixed;z-index:1000}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu .ibiz-composite-form-item-ex-menu{position:relative}.ibiz-markdown .cherry-preview--full{border-left:none}.ibiz-markdown .theme__dark,.ibiz-markdown .theme__light{color:var(--ibiz-form-item-text-color)}.ibiz-markdown .cherry-markdown h1 a::before,.ibiz-markdown .cherry-markdown h2 a::before,.ibiz-markdown .cherry-markdown h3 a::before,.ibiz-markdown .cherry-markdown h4 a::before,.ibiz-markdown .cherry-markdown h5 a::before,.ibiz-markdown .cherry-markdown h6 a::before{display:none}.ibiz-markdown .cherry.fullscreen{z-index:999}.ibiz-markdown--light .theme__green .cherry-toolbar,.ibiz-markdown--light .theme__light .cherry-toolbar,.ibiz-markdown--light .theme__violet .cherry-toolbar{background-color:var(--ibiz-color-bg-0)}.ibiz-markdown--light .theme__dark.cherry .cherry-flex-toc{color:var(--ibiz-markdown-color-toc-header-text)}.ibiz-markdown--light .theme__dark.cherry ::-webkit-scrollbar-thumb{background:var(--ibiz-markdown-color-light-scrollbar-thumb-dark)}.ibiz-markdown--light .theme__dark.cherry ::-webkit-scrollbar-thumb:hover{background:var(--ibiz-markdown-color-scrollbar-thumb-dark-hover)}.ibiz-markdown--dark.ibiz-markdown-cherry .cherry{border:1px solid var(--ibiz-markdown-color-dark-mardown-border)}.ibiz-markdown--dark .theme__green .cherry-toolbar,.ibiz-markdown--dark .theme__light .cherry-toolbar,.ibiz-markdown--dark .theme__violet .cherry-toolbar{background-color:var(--ibiz-color-shadow)}.ibiz-markdown--dark .theme__dark.cherry .cherry-toc-head{color:var(--ibiz-markdown-color-dark-toc-text)}.ibiz-markdown--dark .theme__dark.cherry ::-webkit-scrollbar-thumb{background:var(--ibiz-markdown-color-dark-scrollbar-thumb-dark)}.ibiz-markdown--dark .theme__dark.cherry ::-webkit-scrollbar-thumb:hover{background:var(--ibiz-markdown-color-scrollbar-thumb-dark-hover)}
1
+ .ibiz-markdown{--ibiz-markdown-width:100%;--ibiz-markdown-color-manual-toolbar-bg-save:var(--ibiz-color-primary);--ibiz-markdown-color-manual-toolbar-text-save:var(--ibiz-color-primary-active-text);--ibiz-markdown-color-manual-toolbar-text-cancel:var(--ibiz-color-text-1);--ibiz-markdown-color-manual-toolbar-text-cancel-hover:var(--ibiz-color-primary);--ibiz-markdown-color-dark-scrollbar-thumb-dark:rgb(var(--ibiz-grey-4));--ibiz-markdown-color-light-scrollbar-thumb-dark:rgb(var(--ibiz-grey-4));--ibiz-markdown-color-scrollbar-thumb-dark-hover:rgba(var(--ibiz-grey-4), 0.5);--ibiz-markdown-color-dark-toc-text:var(--ibiz-color-fill-0);--ibiz-markdown-color-toc-header-text:var(--ibiz-color-text-0);--ibiz-markdown-color-dark-mardown-border:rgb(var(--ibiz-grey-2));--ibiz-markdown-color-fixed-toc-text:var(--ibiz-color-black);--ibiz-markdown-color-fixed-toc-arrow-text:var(--ibiz-color-primary);--ibiz-markdown-spacing-manual-toolbar-height:32px;--ibiz-markdown-spacing-manual-toolbar-gap:var(--ibiz-spacing-base);--ibiz-markdown-spacing-manual-toolbar-item-padding:0 var(--ibiz-spacing-base);--ibiz-markdown-spacing-manual-toolbar-margin:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-tight) 0 0;--ibiz-markdown-spacing-manual-toolbar-fullscreen-height:var(--ibiz-height-control-default);--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding:0 var(--ibiz-spacing-extra-loose);--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header:var(--ibiz-spacing-super-loose);--ibiz-markdown-height-manual-toolbar-height:var(--ibiz-height-control-default);--ibiz-markdown-border-radius-manual-toolbar-item:var(--ibiz-border-radius-small);--ibiz-markdown-border-manual-toolbar-fullscreen-footer:1px solid var(--ibiz-color-border);--ibiz-markdown-img-preview-top:-32px;--ibiz-markdown-img-preview-right:-36px;--ibiz-markdown-img-preview-width:32px;--ibiz-markdown-img-preview-height:32px}.ibiz-markdown__header{display:flex;flex-shrink:0;gap:var(--ibiz-markdown-spacing-manual-toolbar-gap);align-items:center;justify-content:end;height:var(--ibiz-markdown-spacing-manual-toolbar-height)}.ibiz-markdown__header--edit{cursor:pointer}.ibiz-markdown__header--full{cursor:pointer}.ibiz-markdown__header.is-fullscreen{position:fixed;top:0;right:0;left:0;z-index:999;width:100%;height:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header));padding:var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding);margin-top:0;background-color:var(--ibiz-view-bg-color)}.ibiz-markdown__header.is-fullscreen+.ibiz-markdown-cherry .cherry.fullscreen{top:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header));height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header))}.ibiz-markdown__footer{display:flex;gap:var(--ibiz-markdown-spacing-manual-toolbar-gap);align-items:center;justify-content:end;height:var(--ibiz-markdown-spacing-manual-toolbar-height);margin:var(--ibiz-markdown-spacing-manual-toolbar-margin)}.ibiz-markdown__footer--save{height:var(--ibiz-markdown-height-manual-toolbar-height);padding:var(--ibiz-markdown-spacing-manual-toolbar-item-padding);line-height:var(--ibiz-markdown-height-manual-toolbar-height);color:var(--ibiz-markdown-color-manual-toolbar-text-save);text-align:center;cursor:pointer;background-color:var(--ibiz-markdown-color-manual-toolbar-bg-save);border-radius:var(--ibiz-markdown-border-radius-manual-toolbar-item)}.ibiz-markdown__footer--cancel{color:var(--ibiz-markdown-color-manual-toolbar-text-cancel);cursor:pointer}.ibiz-markdown__footer--cancel:hover{color:var(--ibiz-markdown-color-manual-toolbar-text-cancel-hover)}.ibiz-markdown__footer.is-fullscreen{position:fixed;right:0;bottom:0;left:0;z-index:999;width:100%;height:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height) * 2);padding:var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding);margin-top:0;background-color:var(--ibiz-view-bg-color);border-top:var(--ibiz-markdown-border-manual-toolbar-fullscreen-footer)}.ibiz-markdown__footer.is-fullscreen+.ibiz-markdown-cherry .cherry.fullscreen{height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height) * 2)}.ibiz-markdown__img-preview.el-image{position:absolute;height:0}.ibiz-markdown__img-preview .el-image-viewer__wrapper{width:90%;height:90%;margin:auto}.ibiz-markdown__img-preview .el-image-viewer__mask{position:fixed;width:100vw;height:100vh;cursor:zoom-out;opacity:.7}.ibiz-markdown__img-preview .el-image-viewer__close{top:var(--ibiz-markdown-img-preview-top);right:var(--ibiz-markdown-img-preview-right);width:var(--ibiz-markdown-img-preview-width);height:var(--ibiz-markdown-img-preview-height)}.ibiz-markdown .ibiz-markdown-cherry{width:var(--ibiz-markdown-width);outline:0}.ibiz-markdown .ibiz-markdown-cherry .cherry{width:100%;border:1px solid var(--ibiz-color-border);box-shadow:none}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-toolbar{box-shadow:none}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-editor{border-top:1px solid var(--ibiz-color-border)}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-previewer{border-top:1px solid var(--ibiz-color-border)}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-previewer img{cursor:zoom-in}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-sidebar{top:49px;border-left:1px solid var(--ibiz-color-border);box-shadow:none}.ibiz-markdown.is-disabled .cherry{min-height:auto}.ibiz-markdown.is-disabled .ibiz-markdown__fullscreen{position:absolute;top:8px;right:12px;z-index:98;font-size:var(--ibiz-font-size-regular);line-height:2.8}.ibiz-markdown.is-disabled .theme__dark .ibiz-markdown__fullscreen{color:var(--ibiz-color-text-0)}.ibiz-markdown.is-disabled .theme__dark .ibiz-markdown__fullscreen:hover{background-color:var(--ibiz-color-bg-3)}.ibiz-markdown.is-manual{display:flex;flex-direction:column}.ibiz-markdown.is-manual .ibiz-markdown-cherry{flex-grow:1;height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-height))!important}.ibiz-markdown.is-manual.is-editing{flex-direction:column-reverse}.ibiz-markdown.is-manual .ibiz-markdown-menu{display:none}.ibiz-markdown.is-manual.is-editing .ibiz-markdown-menu{display:block}.ibiz-markdown.is-show-editor-switch-menu .ibiz-composite-form-item-ex-menu{--ibiz-composite-form-item-ex-menu-height:47px;--ibiz-composite-form-item-ex-menu-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-tight) 0;max-height:100%}.ibiz-markdown.is-show-editor-switch-menu .cherry-toolbar{padding-right:calc(var(--ibiz-composite-form-item-ex-menu-width) + var(--ibiz-spacing-extra-tight))}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu{position:absolute;top:1px;right:1px;z-index:var(--ibiz-composite-form-item-ex-menu-z-index);display:flex;align-items:center;height:calc(var(--ibiz-markdown-toolbar-height) - 1px);background:var(--ibiz-composite-form-item-ex-menu-bg-color);border-right:1px solid var(--ibiz-color-border);border-left:1px solid var(--ibiz-color-border)}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu.is-fullscreen{position:fixed;z-index:1000}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu .ibiz-composite-form-item-ex-menu{position:relative}.ibiz-markdown .cherry-preview--full{border-left:none}.ibiz-markdown .cherry-flex-toc__fixed{color:var(--ibiz-markdown-color-fixed-toc-text)}.ibiz-markdown .cherry-flex-toc__fixed.cherry-flex-toc__pure .cherry-toc-head{color:var(--ibiz-markdown-color-fixed-toc-arrow-text)}.ibiz-markdown .cherry-flex-toc__fixed:hover{z-index:100}.ibiz-markdown .theme__dark,.ibiz-markdown .theme__light{color:var(--ibiz-form-item-text-color)}.ibiz-markdown .cherry-markdown h1 a::before,.ibiz-markdown .cherry-markdown h2 a::before,.ibiz-markdown .cherry-markdown h3 a::before,.ibiz-markdown .cherry-markdown h4 a::before,.ibiz-markdown .cherry-markdown h5 a::before,.ibiz-markdown .cherry-markdown h6 a::before{display:none}.ibiz-markdown .cherry.fullscreen{z-index:999}.ibiz-markdown--light .theme__green .cherry-toolbar,.ibiz-markdown--light .theme__light .cherry-toolbar,.ibiz-markdown--light .theme__violet .cherry-toolbar{background-color:var(--ibiz-color-bg-0)}.ibiz-markdown--light .theme__dark.cherry .cherry-flex-toc{color:var(--ibiz-markdown-color-toc-header-text)}.ibiz-markdown--light .theme__dark.cherry ::-webkit-scrollbar-thumb{background:var(--ibiz-markdown-color-light-scrollbar-thumb-dark)}.ibiz-markdown--light .theme__dark.cherry ::-webkit-scrollbar-thumb:hover{background:var(--ibiz-markdown-color-scrollbar-thumb-dark-hover)}.ibiz-markdown--dark.ibiz-markdown-cherry .cherry{border:1px solid var(--ibiz-markdown-color-dark-mardown-border)}.ibiz-markdown--dark .theme__green .cherry-toolbar,.ibiz-markdown--dark .theme__light .cherry-toolbar,.ibiz-markdown--dark .theme__violet .cherry-toolbar{background-color:var(--ibiz-color-shadow)}.ibiz-markdown--dark .theme__dark.cherry .cherry-toc-head{color:var(--ibiz-markdown-color-dark-toc-text)}.ibiz-markdown--dark .theme__dark.cherry ::-webkit-scrollbar-thumb{background:var(--ibiz-markdown-color-dark-scrollbar-thumb-dark)}.ibiz-markdown--dark .theme__dark.cherry ::-webkit-scrollbar-thumb:hover{background:var(--ibiz-markdown-color-scrollbar-thumb-dark-hover)}
@@ -3,9 +3,7 @@
3
3
  var vue = require('vue');
4
4
  var lodashEs = require('lodash-es');
5
5
  var vue3Util = require('@ibiz-template/vue3-util');
6
- var runtime = require('@ibiz-template/runtime');
7
6
  var core = require('@ibiz-template/core');
8
- var qxUtil = require('qx-util');
9
7
  require('./input.css');
10
8
 
11
9
  "use strict";
@@ -166,25 +164,22 @@ const IBizInput = /* @__PURE__ */ vue.defineComponent({
166
164
  const appDataEntityId = c.model.appDataEntityId;
167
165
  if (!appDataEntityId || !c.deACMode)
168
166
  return;
169
- const {
170
- contentToolbarItems,
171
- footerToolbarItems,
172
- questionToolbarItems,
173
- otherToolbarItems
174
- } = ibiz.aiChatUtil.calcAiToolbarItemsByAc(c.deACMode);
175
- const aiAgentlist = await ibiz.aiChatUtil.getAIAgentList(c.context, c.params, c.editorParams);
176
- const {
177
- containerOptions,
178
- chatOptions
179
- } = ibiz.aiChatUtil.getEditorExAIChatParams(c.editorParams, c.context, c.params, props.data);
180
167
  const {
181
168
  zIndex
182
169
  } = vue3Util.useUIStore();
183
170
  const containerZIndex = zIndex.increment();
184
171
  chatInstance = await ibiz.aiChatUtil.getAIChat();
185
- let id = "";
186
- let abortController;
172
+ const {
173
+ containerOptions,
174
+ chatOptions
175
+ } = await ibiz.aiChatUtil.getEditorExAIChatParams(c.editorParams, c.context, c.params, props.data, c.deACMode, {
176
+ chatInstance,
177
+ view: c.view,
178
+ ctrl: c.ctrl
179
+ });
180
+ const resourceOptions = await ibiz.aiChatUtil.getAIResourceOptions(c.context, c.params);
187
181
  chatInstance.create({
182
+ resourceOptions,
188
183
  containerOptions: {
189
184
  zIndex: containerZIndex,
190
185
  ...containerOptions
@@ -199,191 +194,10 @@ const IBizInput = /* @__PURE__ */ vue.defineComponent({
199
194
  srfactag: c.deACMode.codeName
200
195
  },
201
196
  appDataEntityId,
202
- contentToolbarItems,
203
- footerToolbarItems,
204
- questionToolbarItems,
205
- otherToolbarItems,
206
- aiAgentlist,
207
197
  ...chatOptions,
208
- question: async (aiChat, ctx, param, other, arr, sessionid, srfaiagent, srfmode) => {
209
- id = qxUtil.createUUID();
210
- abortController = new AbortController();
211
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
212
- try {
213
- const questionRequestData = {
214
- messages: arr,
215
- sessionid
216
- };
217
- if (srfaiagent) {
218
- questionRequestData.srfaiagent = srfaiagent;
219
- }
220
- if (srfmode) {
221
- questionRequestData.mode = srfmode;
222
- }
223
- await deService.aiChatSse((msg) => {
224
- if (msg.actionstate === 20 && msg.actionresult) {
225
- aiChat.addMessage({
226
- messageid: id,
227
- state: msg.actionstate,
228
- type: "DEFAULT",
229
- role: "ASSISTANT",
230
- content: msg.actionresult
231
- });
232
- } else if (msg.actionstate === 30 && msg.actionresult) {
233
- const result = JSON.parse(msg.actionresult);
234
- const choices = result.choices;
235
- if (choices && choices.length > 0) {
236
- aiChat.replaceMessage({
237
- messageid: id,
238
- state: msg.actionstate,
239
- type: "DEFAULT",
240
- role: "ASSISTANT",
241
- content: choices[0].content || ""
242
- });
243
- }
244
- } else if (msg.actionstate === 40) {
245
- aiChat.replaceMessage({
246
- messageid: id,
247
- state: msg.actionstate,
248
- type: "ERROR",
249
- role: "ASSISTANT",
250
- content: msg.actionresult
251
- });
252
- }
253
- }, abortController, ctx, param, {
254
- ...questionRequestData
255
- });
256
- } catch (error) {
257
- aiChat.replaceMessage({
258
- messageid: id,
259
- state: 40,
260
- type: "ERROR",
261
- role: "ASSISTANT",
262
- content: error.message || ibiz.i18n.t("app.aiError")
263
- });
264
- abortController == null ? void 0 : abortController.abort();
265
- } finally {
266
- aiChat.completeMessage(id, true);
267
- return true;
268
- }
269
- },
270
- abortQuestion: async (aiChat) => {
271
- abortController == null ? void 0 : abortController.abort();
272
- await aiChat.stopMessage({
273
- messageid: id,
274
- state: 30,
275
- type: "DEFAULT",
276
- role: "ASSISTANT",
277
- content: ""
278
- });
279
- await aiChat.completeMessage(id, true);
280
- },
281
198
  action: (action, message) => {
282
199
  if (action === "backfill")
283
200
  emit("change", message.realcontent);
284
- },
285
- history: async (ctx, param, other) => {
286
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
287
- const historyRequestData = {};
288
- if (other.appendCurData) {
289
- Object.assign(historyRequestData, {
290
- ...other.appendCurData
291
- });
292
- }
293
- if (other.srfaiagent) {
294
- Object.assign(historyRequestData, {
295
- srfaiagent: other.srfaiagent
296
- });
297
- }
298
- if (other.srfmode) {
299
- Object.assign(historyRequestData, {
300
- mode: other.srfmode
301
- });
302
- }
303
- const result = await deService.aiChatHistory(ctx, param, historyRequestData);
304
- if (result.data && Array.isArray(result.data)) {
305
- let preMsg;
306
- result.data.forEach((item) => {
307
- if (item.role === "TOOL") {
308
- if (preMsg && item.content) {
309
- chatInstance.aiChat.updateRecommendPrompt(preMsg, item.content);
310
- }
311
- } else {
312
- const msg = {
313
- messageid: qxUtil.createUUID(),
314
- state: 30,
315
- type: "DEFAULT",
316
- role: item.role,
317
- content: item.content,
318
- completed: true
319
- };
320
- preMsg = msg;
321
- chatInstance.aiChat.addMessage(msg);
322
- }
323
- });
324
- }
325
- return true;
326
- },
327
- recommendPrompt: async (ctx, param, other) => {
328
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
329
- const result = await deService.aiChatRecommendPrompt(ctx, param, other.message);
330
- if (result.ok && result.data) {
331
- const choices = result.data.choices;
332
- if (choices && choices.length > 0) {
333
- return choices[0];
334
- }
335
- return null;
336
- }
337
- return null;
338
- },
339
- uploader: {
340
- onUpload: async (file, reportProgress, options) => {
341
- const fileMeata = ibiz.util.file.calcFileUpDownUrl((options == null ? void 0 : options.context) || c.context, (options == null ? void 0 : options.params) || c.params, {});
342
- const uploadHeaders = ibiz.util.file.getUploadHeaders();
343
- const formData = new FormData();
344
- formData.append("file", file);
345
- const res = await ibiz.net.axios({
346
- url: fileMeata.uploadUrl,
347
- method: "post",
348
- headers: uploadHeaders,
349
- data: formData,
350
- onUploadProgress: (progressEvent) => {
351
- const percent = progressEvent.loaded / progressEvent.total * 100;
352
- reportProgress(percent);
353
- }
354
- });
355
- return res.data;
356
- }
357
- },
358
- extendToolbarClick: async (event, source, context, params, data) => {
359
- var _a, _b;
360
- const result = await runtime.UIActionUtil.exec(source.id, {
361
- view: c.view,
362
- ctrl: c.ctrl,
363
- context: core.IBizContext.create(context),
364
- params,
365
- data: [data],
366
- event
367
- }, source.appId);
368
- if (result.closeView) {
369
- c.view.closeView({
370
- ok: true
371
- });
372
- } else if (result.refresh) {
373
- switch (result.refreshMode) {
374
- case 1:
375
- c.view.callUIAction(runtime.SysUIActionTag.REFRESH);
376
- break;
377
- case 2:
378
- (_a = c.view.parentView) == null ? void 0 : _a.callUIAction(runtime.SysUIActionTag.REFRESH);
379
- break;
380
- case 3:
381
- (_b = c.view.getTopView()) == null ? void 0 : _b.callUIAction(runtime.SysUIActionTag.REFRESH);
382
- break;
383
- default:
384
- }
385
- }
386
- return result;
387
201
  }
388
202
  }
389
203
  });