@ibiz-template/vue3-components 0.7.41-alpha.40 → 0.7.41-alpha.41

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 (66) hide show
  1. package/dist/ibiz-markdown-editor-DEV-iSvz.js +1 -0
  2. package/dist/index-Bv2fgePf.js +11 -0
  3. package/dist/{index-BewO9StC.js → index-CD2XM6M6.js} +1 -1
  4. package/dist/{index-ClxO69TM.js → index-CaWTEUU1.js} +1 -1
  5. package/dist/index.min.css +1 -1
  6. package/dist/index.system.min.js +1 -1
  7. package/dist/wang-editor-4cNAgOaJ.js +1 -0
  8. package/dist/{xlsx-util-Cg5zMYCC.js → xlsx-util-Dvg2kWh7.js} +1 -1
  9. package/es/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.controller.mjs +2 -1
  10. package/es/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.css +1 -1
  11. package/es/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.mjs +12 -2
  12. package/es/editor/code/monaco-editor/monaco-editor.mjs +41 -32
  13. package/es/editor/html/wang-editor/config/index.mjs +3 -0
  14. package/es/editor/html/wang-editor/config/toolbar.mjs +90 -0
  15. package/es/editor/html/wang-editor/constants/svg.mjs +8 -0
  16. package/es/editor/html/wang-editor/wang-editor.css +1 -1
  17. package/es/editor/html/wang-editor/wang-editor.mjs +52 -39
  18. package/es/editor/markdown/ibiz-markdown-editor/custom-menu.mjs +264 -2
  19. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  20. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +38 -6
  21. package/es/editor/markdown/ibiz-markdown-editor/render-util.mjs +33 -4
  22. package/es/editor/text-box/input/input.mjs +41 -32
  23. package/es/index.mjs +1 -1
  24. package/es/locale/en/index.mjs +3 -1
  25. package/es/locale/zh-CN/index.mjs +3 -1
  26. package/es/util/ai-chat-util/ai-chat-util.mjs +216 -0
  27. package/es/util/app-util/app-util.mjs +20 -48
  28. package/es/util/index.mjs +1 -1
  29. package/es/util/inline-ai-util/inline-ai-textarea/icon.mjs +75 -1
  30. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.css +1 -1
  31. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.mjs +136 -43
  32. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.mjs +130 -48
  33. package/es/util/inline-ai-util/inline-ai-util.mjs +2 -1
  34. package/es/web-app/main.mjs +2 -0
  35. package/lib/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.cjs +12 -2
  36. package/lib/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.controller.cjs +2 -1
  37. package/lib/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.css +1 -1
  38. package/lib/editor/code/monaco-editor/monaco-editor.cjs +40 -31
  39. package/lib/editor/html/wang-editor/config/index.cjs +7 -0
  40. package/lib/editor/html/wang-editor/config/toolbar.cjs +92 -0
  41. package/lib/editor/html/wang-editor/constants/svg.cjs +14 -0
  42. package/lib/editor/html/wang-editor/wang-editor.cjs +51 -38
  43. package/lib/editor/html/wang-editor/wang-editor.css +1 -1
  44. package/lib/editor/markdown/ibiz-markdown-editor/custom-menu.cjs +264 -2
  45. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +38 -6
  46. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  47. package/lib/editor/markdown/ibiz-markdown-editor/render-util.cjs +33 -4
  48. package/lib/editor/text-box/input/input.cjs +40 -31
  49. package/lib/index.cjs +2 -2
  50. package/lib/locale/en/index.cjs +3 -1
  51. package/lib/locale/zh-CN/index.cjs +3 -1
  52. package/lib/util/ai-chat-util/ai-chat-util.cjs +218 -0
  53. package/lib/util/app-util/app-util.cjs +19 -47
  54. package/lib/util/index.cjs +2 -2
  55. package/lib/util/inline-ai-util/inline-ai-textarea/icon.cjs +78 -0
  56. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.cjs +129 -47
  57. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.css +1 -1
  58. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.cjs +135 -42
  59. package/lib/util/inline-ai-util/inline-ai-util.cjs +2 -1
  60. package/lib/web-app/main.cjs +2 -0
  61. package/package.json +5 -5
  62. package/dist/ibiz-markdown-editor-CxFS8frQ.js +0 -1
  63. package/dist/index-2eZnbrr4.js +0 -11
  64. package/dist/wang-editor-BPl509oX.js +0 -1
  65. package/es/util/ai-util/ai-util.mjs +0 -68
  66. package/lib/util/ai-util/ai-util.cjs +0 -71
@@ -26,7 +26,7 @@ class CompositeFormItemExController extends FormItemController {
26
26
  __publicField(this, "includesList", ["HTMLEDITOR_DEFAULT", "MARKDOWN_DEFAULT"]);
27
27
  /**
28
28
  * @description 切换菜单选项
29
- * @type {{ id: string; name: string; editor?: IData }[]}
29
+ * @type {{ id: string; name: string; icon?: ISysImage, editor?: IData }[]}
30
30
  * @memberof CompositeFormItemExController
31
31
  */
32
32
  __publicField(this, "switchOptions", []);
@@ -60,6 +60,7 @@ class CompositeFormItemExController extends FormItemController {
60
60
  return {
61
61
  id: item.value,
62
62
  name: item.text,
63
+ icon: item.sysImage,
63
64
  editor: item.data
64
65
  };
65
66
  });
@@ -1 +1 @@
1
- .ibiz-composite-form-item-ex{--ibiz-composite-form-item-ex-menu-top:0;--ibiz-composite-form-item-ex-menu-right:0;--ibiz-composite-form-item-ex-menu-text-color:var(--ibiz-color-text-2);--ibiz-composite-form-item-ex-menu-font-size:var(--ibiz-font-size-regular);--ibiz-composite-form-item-ex-menu-width:80px;--ibiz-composite-form-item-ex-menu-height:var(--ibiz-height-control-default);--ibiz-composite-form-item-ex-menu-icon-gap:var(--ibiz-spacing-extra-tight);--ibiz-composite-form-item-ex-menu-z-index:9;--ibiz-composite-form-item-ex-menu-padding:0 var(--ibiz-spacing-tight);--ibiz-composite-form-item-ex-menu-item-padding:var(--ibiz-spacing-extra-tight);--ibiz-composite-form-item-ex-menu-item-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-composite-form-item-ex-loading-min-height:calc(var(--el-loading-spinner-size) + var(--ibiz-spacing-tight));position:relative}.ibiz-composite-form-item-ex .ibiz-composite-form-item-ex-menu{position:absolute;top:var(--ibiz-composite-form-item-ex-menu-top);right:var(--ibiz-composite-form-item-ex-menu-right);z-index:var(--ibiz-composite-form-item-ex-menu-z-index);display:flex;align-items:center;width:var(--ibiz-composite-form-item-ex-menu-width);height:var(--ibiz-composite-form-item-ex-menu-height);padding:var(--ibiz-composite-form-item-ex-menu-padding);font-size:var(--ibiz-composite-form-item-ex-menu-font-size);color:var(--ibiz-composite-form-item-ex-menu-text-color);cursor:pointer}.ibiz-composite-form-item-ex-menu__text{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-composite-form-item-ex-menu__icon{display:flex;flex:0 0 auto;align-items:center;justify-content:center;margin-left:var(--ibiz-composite-form-item-ex-menu-icon-gap)}.ibiz-composite-form-item-ex-menu__icon svg{width:1em;height:1em}.ibiz-form-item-container__editor>.el-loading-parent--relative{min-height:var(--ibiz-composite-form-item-ex-loading-min-height)}.ibiz-composite-form-item-ex-menu-popover{--ibiz-composite-form-item-ex-menu-top:0;--ibiz-composite-form-item-ex-menu-right:0;--ibiz-composite-form-item-ex-menu-text-color:var(--ibiz-color-text-2);--ibiz-composite-form-item-ex-menu-font-size:var(--ibiz-font-size-regular);--ibiz-composite-form-item-ex-menu-width:80px;--ibiz-composite-form-item-ex-menu-height:var(--ibiz-height-control-default);--ibiz-composite-form-item-ex-menu-icon-gap:var(--ibiz-spacing-extra-tight);--ibiz-composite-form-item-ex-menu-z-index:9;--ibiz-composite-form-item-ex-menu-padding:0 var(--ibiz-spacing-tight);--ibiz-composite-form-item-ex-menu-item-padding:var(--ibiz-spacing-extra-tight);--ibiz-composite-form-item-ex-menu-item-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-composite-form-item-ex-loading-min-height:calc(var(--el-loading-spinner-size) + var(--ibiz-spacing-tight))}.ibiz-composite-form-item-ex-menu-content{font-size:var(--ibiz-composite-form-item-ex-menu-font-size);color:var(--ibiz-composite-form-item-ex-menu-text-color)}.ibiz-composite-form-item-ex-menu-item{display:flex;align-items:center;padding:var(--ibiz-composite-form-item-ex-menu-item-padding);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.ibiz-composite-form-item-ex-menu-item__icon{flex:0 0 auto;width:1em;height:1em;margin-right:var(--ibiz-composite-form-item-ex-menu-icon-gap);visibility:hidden;fill:currentcolor}.ibiz-composite-form-item-ex-menu-item__text{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-composite-form-item-ex-menu-item.is-active .ibiz-composite-form-item-ex-menu-item__icon{visibility:visible}.ibiz-composite-form-item-ex-menu-item:hover{background-color:var(--ibiz-composite-form-item-ex-menu-item-hover-bg-color)}
1
+ .ibiz-composite-form-item-ex{--ibiz-composite-form-item-ex-menu-top:0;--ibiz-composite-form-item-ex-menu-right:0;--ibiz-composite-form-item-ex-menu-text-color:var(--ibiz-color-text-2);--ibiz-composite-form-item-ex-menu-font-size:var(--ibiz-font-size-regular);--ibiz-composite-form-item-ex-menu-width:120px;--ibiz-composite-form-item-ex-menu-height:var(--ibiz-height-control-default);--ibiz-composite-form-item-ex-menu-icon-gap:var(--ibiz-spacing-extra-tight);--ibiz-composite-form-item-ex-menu-z-index:9;--ibiz-composite-form-item-ex-menu-padding:0 var(--ibiz-spacing-base-tight);--ibiz-composite-form-item-ex-menu-item-padding:var(--ibiz-spacing-extra-tight);--ibiz-composite-form-item-ex-menu-item-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-composite-form-item-ex-menu-bg-color:var(--ibiz-color-bg-3);--ibiz-composite-form-item-ex-menu-text-icon-size:var(--ibiz-font-size-header-6);--ibiz-composite-form-item-ex-menu-content-padding:var(--ibiz-spacing-base-tight);--ibiz-composite-form-item-ex-loading-min-height:calc(var(--el-loading-spinner-size) + var(--ibiz-spacing-tight));position:relative}.ibiz-composite-form-item-ex .ibiz-composite-form-item-ex-menu{position:absolute;top:var(--ibiz-composite-form-item-ex-menu-top);right:var(--ibiz-composite-form-item-ex-menu-right);z-index:var(--ibiz-composite-form-item-ex-menu-z-index);display:flex;align-items:center;width:var(--ibiz-composite-form-item-ex-menu-width);height:var(--ibiz-composite-form-item-ex-menu-height);padding:var(--ibiz-composite-form-item-ex-menu-padding);font-size:var(--ibiz-composite-form-item-ex-menu-font-size);color:var(--ibiz-composite-form-item-ex-menu-text-color);cursor:pointer;background:var(--ibiz-composite-form-item-ex-menu-bg-color)}.ibiz-composite-form-item-ex-menu__text-icon{display:flex;flex:0 0 auto;align-items:center;justify-content:center;width:1em;height:1em;margin-right:var(--ibiz-composite-form-item-ex-menu-icon-gap);font-size:var(--ibiz-composite-form-item-ex-menu-text-icon-size)}.ibiz-composite-form-item-ex-menu__text-icon .ibiz-icon{display:flex;align-items:center;justify-content:center}.ibiz-composite-form-item-ex-menu__text-icon .ibiz-icon svg{width:1em;height:1em;fill:currentcolor}.ibiz-composite-form-item-ex-menu__text{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-composite-form-item-ex-menu__icon{display:flex;flex:0 0 auto;align-items:center;justify-content:center;margin-left:var(--ibiz-composite-form-item-ex-menu-icon-gap)}.ibiz-composite-form-item-ex-menu__icon svg{width:1em;height:1em}.ibiz-form-item-container__editor>.el-loading-parent--relative{min-height:var(--ibiz-composite-form-item-ex-loading-min-height)}.ibiz-composite-form-item-ex-menu-popover{--ibiz-composite-form-item-ex-menu-top:0;--ibiz-composite-form-item-ex-menu-right:0;--ibiz-composite-form-item-ex-menu-text-color:var(--ibiz-color-text-2);--ibiz-composite-form-item-ex-menu-font-size:var(--ibiz-font-size-regular);--ibiz-composite-form-item-ex-menu-width:120px;--ibiz-composite-form-item-ex-menu-height:var(--ibiz-height-control-default);--ibiz-composite-form-item-ex-menu-icon-gap:var(--ibiz-spacing-extra-tight);--ibiz-composite-form-item-ex-menu-z-index:9;--ibiz-composite-form-item-ex-menu-padding:0 var(--ibiz-spacing-base-tight);--ibiz-composite-form-item-ex-menu-item-padding:var(--ibiz-spacing-extra-tight);--ibiz-composite-form-item-ex-menu-item-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-composite-form-item-ex-menu-bg-color:var(--ibiz-color-bg-3);--ibiz-composite-form-item-ex-menu-text-icon-size:var(--ibiz-font-size-header-6);--ibiz-composite-form-item-ex-menu-content-padding:var(--ibiz-spacing-base-tight);--ibiz-composite-form-item-ex-loading-min-height:calc(var(--el-loading-spinner-size) + var(--ibiz-spacing-tight))}.ibiz-composite-form-item-ex-menu-popover.el-popover.el-popper{width:var(--ibiz-composite-form-item-ex-menu-width)!important;min-width:var(--ibiz-composite-form-item-ex-menu-width);padding:var(--ibiz-composite-form-item-ex-menu-content-padding)}.ibiz-composite-form-item-ex-menu-content{font-size:var(--ibiz-composite-form-item-ex-menu-font-size);color:var(--ibiz-composite-form-item-ex-menu-text-color)}.ibiz-composite-form-item-ex-menu-item{display:flex;align-items:center;padding:var(--ibiz-composite-form-item-ex-menu-item-padding);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.ibiz-composite-form-item-ex-menu-item__icon{flex:0 0 auto;width:1em;height:1em;margin-right:var(--ibiz-composite-form-item-ex-menu-icon-gap);visibility:hidden;fill:currentcolor}.ibiz-composite-form-item-ex-menu-item__text-icon{display:flex;flex:0 0 auto;align-items:center;justify-content:center;width:1em;height:1em;margin-right:var(--ibiz-composite-form-item-ex-menu-icon-gap);font-size:var(--ibiz-composite-form-item-ex-menu-text-icon-size)}.ibiz-composite-form-item-ex-menu-item__text-icon .ibiz-icon{display:flex;align-items:center;justify-content:center}.ibiz-composite-form-item-ex-menu-item__text-icon .ibiz-icon svg{width:1em;height:1em;fill:currentcolor}.ibiz-composite-form-item-ex-menu-item__text{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-composite-form-item-ex-menu-item.is-active .ibiz-composite-form-item-ex-menu-item__icon{visibility:visible}.ibiz-composite-form-item-ex-menu-item:hover{background-color:var(--ibiz-composite-form-item-ex-menu-item-hover-bg-color)}
@@ -66,14 +66,20 @@ const CompositeFormItemEx = /* @__PURE__ */ defineComponent({
66
66
  const isIncludes = this.c.includesList.some((id) => id === "".concat(editorType, "_").concat(editorStyle));
67
67
  const editorSwitchMenu = createVNode(resolveComponent("el-popover"), {
68
68
  "trigger": "click",
69
- "popper-class": this.ns2.b("menu-popover")
69
+ "popper-class": this.ns2.b("menu-popover"),
70
+ "offset": 0
70
71
  }, {
71
72
  reference: () => {
73
+ const option = this.c.switchOptions.find((item) => item.id === this.c.state.editorId);
72
74
  return createVNode("div", {
73
75
  "class": this.ns2.b("menu")
74
76
  }, [createVNode("div", {
77
+ "class": this.ns2.be("menu", "text-icon")
78
+ }, [createVNode(resolveComponent("iBizIcon"), {
79
+ "icon": option == null ? void 0 : option.icon
80
+ }, null)]), createVNode("div", {
75
81
  "class": this.ns2.be("menu", "text")
76
- }, [this.c.state.editorId]), createVNode("div", {
82
+ }, [(option == null ? void 0 : option.name) || this.c.state.editorId]), createVNode("div", {
77
83
  "class": this.ns2.be("menu", "icon")
78
84
  }, [createVNode("svg", {
79
85
  "xmlns": "http://www.w3.org/2000/svg",
@@ -97,6 +103,10 @@ const CompositeFormItemEx = /* @__PURE__ */ defineComponent({
97
103
  "class": this.ns2.be("menu-item", "icon")
98
104
  }, [createVNode("path", {
99
105
  "d": "M574.116299 786.736392 1238.811249 48.517862C1272.390222 11.224635 1329.414799 7.827718 1366.75664 41.450462 1403.840015 74.840484 1406.731043 132.084741 1373.10189 169.433699L655.118888 966.834607C653.072421 969.716875 650.835807 972.514337 648.407938 975.210759 615.017957 1012.29409 558.292155 1015.652019 521.195664 982.250188L72.778218 578.493306C35.910826 545.297758 32.859041 488.584019 66.481825 451.242134 99.871807 414.158803 156.597563 410.800834 193.694055 444.202665L574.116299 786.736392Z"
106
+ }, null)]), createVNode("div", {
107
+ "class": this.ns2.be("menu-item", "text-icon")
108
+ }, [createVNode(resolveComponent("iBizIcon"), {
109
+ "icon": option.icon
100
110
  }, null)]), createVNode("span", {
101
111
  "class": this.ns2.be("menu-item", "text")
102
112
  }, [option.name])]);
@@ -4,10 +4,8 @@ import { createUUID } from 'qx-util';
4
4
  import { ElMessageBox } from 'element-plus';
5
5
  import '../../../node_modules/.pnpm/@monaco-editor_loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/index.mjs';
6
6
  import { UIActionUtil, SysUIActionTag } from '@ibiz-template/runtime';
7
- import { IBizContext, StringUtil } from '@ibiz-template/core';
8
- import '../../../util/index.mjs';
7
+ import { IBizContext } from '@ibiz-template/core';
9
8
  import './monaco-editor.css';
10
- import { calcAiToolbarItemsByAc } from '../../../util/ai-util/ai-util.mjs';
11
9
  import loader from '../../../node_modules/.pnpm/@monaco-editor_loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/loader/index.mjs';
12
10
 
13
11
  "use strict";
@@ -33,7 +31,6 @@ const IBizCode = /* @__PURE__ */ defineComponent({
33
31
  const enableFullScreen = ref(false);
34
32
  const isFullScreen = ref(false);
35
33
  const isLoading = ref(false);
36
- let autoClose;
37
34
  const textTBRef = ref();
38
35
  const textTBStyle = ref({
39
36
  [ns.cssVarBlockName("text-editor-toolbar-z-index")]: zIndex.increment()
@@ -58,13 +55,6 @@ const IBizCode = /* @__PURE__ */ defineComponent({
58
55
  if (editorModel.editorParams.enablefullscreen) {
59
56
  enableFullScreen.value = c.toBoolean(editorModel.editorParams.enablefullscreen);
60
57
  }
61
- if (editorModel.editorParams.autoclose) {
62
- try {
63
- autoClose = JSON.parse(editorModel.editorParams.autoclose);
64
- } catch (error) {
65
- ibiz.log.error(error);
66
- }
67
- }
68
58
  }
69
59
  let editor;
70
60
  let monacoEditor;
@@ -127,19 +117,24 @@ const IBizCode = /* @__PURE__ */ defineComponent({
127
117
  const openAIChat = async () => {
128
118
  if (!c.deACMode || !c.model.appDataEntityId)
129
119
  return;
120
+ const aiAgentlist = await ibiz.aiChatUtil.getAIAgentList(c.context, c.params);
130
121
  const {
131
122
  contentToolbarItems,
132
123
  footerToolbarItems,
133
124
  questionToolbarItems,
134
125
  otherToolbarItems
135
- } = calcAiToolbarItemsByAc(c.deACMode);
136
- const module = await import('@ibiz-template-plugin/ai-chat');
137
- chatInstance = module.chat || module.default.chat;
126
+ } = ibiz.aiChatUtil.calcAiToolbarItemsByAc(c.deACMode);
127
+ const {
128
+ containerOptions,
129
+ chatOptions
130
+ } = ibiz.aiChatUtil.getEditorExAIChatParams(c.editorParams, c.context, c.params, props.data);
131
+ chatInstance = await ibiz.aiChatUtil.getAIChat();
138
132
  let id = "";
139
133
  let abortController;
140
134
  chatInstance.create({
141
135
  containerOptions: {
142
- zIndex: zIndex.increment()
136
+ zIndex: zIndex.increment(),
137
+ ...containerOptions
143
138
  },
144
139
  chatOptions: {
145
140
  caption: c.deACMode.logicName,
@@ -150,28 +145,28 @@ const IBizCode = /* @__PURE__ */ defineComponent({
150
145
  ...c.params,
151
146
  srfactag: c.deACMode.codeName
152
147
  },
153
- // 编辑器参数srfaiappendcurdata,是否传入对象参数,用于历史查询传参
154
- appendCurData: c.editorParams.srfaiappendcurdata === "true" ? props.data : void 0,
155
- // 自动提问
156
- autoQuestion: c.editorParams.autoquestion !== "false",
157
- // 自动填充
158
- autoFill: c.editorParams.autofill === "true",
159
- // 窗口的打开模式
160
- openMode: c.editorParams.openmode,
161
- // 窗口的自动关闭模式
162
- autoClose,
163
- // 编辑器参数srfaiappendcurcontent,传入编辑内容作为用户消息,获取历史数据后附加
164
- appendCurContent: c.editorParams.srfaiappendcurcontent ? StringUtil.fill(c.editorParams.srfaiappendcurcontent, c.context, c.params, props.data) : void 0,
165
148
  appDataEntityId: c.model.appDataEntityId,
166
149
  contentToolbarItems,
167
150
  footerToolbarItems,
168
151
  questionToolbarItems,
169
152
  otherToolbarItems,
170
- question: async (aiChat, ctx, param, other, arr, sessionid) => {
153
+ aiAgentlist,
154
+ ...chatOptions,
155
+ question: async (aiChat, ctx, param, other, arr, sessionid, srfaiagent, srfmode) => {
171
156
  id = createUUID();
172
157
  abortController = new AbortController();
173
158
  const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
174
159
  try {
160
+ const questionRequestData = {
161
+ messages: arr,
162
+ sessionid
163
+ };
164
+ if (srfaiagent) {
165
+ questionRequestData.srfaiagent = srfaiagent;
166
+ }
167
+ if (srfmode) {
168
+ questionRequestData.mode = srfmode;
169
+ }
175
170
  await deService.aiChatSse((msg) => {
176
171
  if (msg.actionstate === 20 && msg.actionresult) {
177
172
  aiChat.addMessage({
@@ -203,8 +198,7 @@ const IBizCode = /* @__PURE__ */ defineComponent({
203
198
  });
204
199
  }
205
200
  }, abortController, ctx, param, {
206
- messages: arr,
207
- sessionid
201
+ ...questionRequestData
208
202
  });
209
203
  } catch (error) {
210
204
  aiChat.replaceMessage({
@@ -237,8 +231,23 @@ const IBizCode = /* @__PURE__ */ defineComponent({
237
231
  },
238
232
  history: async (ctx, param, other) => {
239
233
  const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
240
- const historyData = other.appendCurData ? other.appendCurData : {};
241
- const result = await deService.aiChatHistory(ctx, param, historyData);
234
+ const historyRequestData = {};
235
+ if (other.appendCurData) {
236
+ Object.assign(historyRequestData, {
237
+ ...other.appendCurData
238
+ });
239
+ }
240
+ if (other.srfaiagent) {
241
+ Object.assign(historyRequestData, {
242
+ srfaiagent: other.srfaiagent
243
+ });
244
+ }
245
+ if (other.srfmode) {
246
+ Object.assign(historyRequestData, {
247
+ mode: other.srfmode
248
+ });
249
+ }
250
+ const result = await deService.aiChatHistory(ctx, param, historyRequestData);
242
251
  if (result.data && Array.isArray(result.data)) {
243
252
  let preMsg;
244
253
  result.data.forEach((item) => {
@@ -0,0 +1,3 @@
1
+ export { genDefaultToolbarKeys } from './toolbar.mjs';
2
+
3
+ "use strict";
@@ -0,0 +1,90 @@
1
+ import { t } from '@wangeditor/editor';
2
+ import { MORE_SVG, JUSTIFY_LEFT_SVG, INDENT_RIGHT_SVG, IMAGE_SVG, VIDEO_SVG } from '../constants/svg.mjs';
3
+
4
+ "use strict";
5
+ function genDefaultToolbarKeys() {
6
+ return [
7
+ "headerSelect",
8
+ // 'header1',
9
+ // 'header2',
10
+ // 'header3',
11
+ "blockquote",
12
+ "|",
13
+ "bold",
14
+ "underline",
15
+ "italic",
16
+ {
17
+ key: "group-more-style",
18
+ // 以 group 开头
19
+ title: t("editor.more"),
20
+ iconSvg: MORE_SVG,
21
+ menuKeys: ["through", "code", "sup", "sub", "clearStyle"]
22
+ },
23
+ "color",
24
+ "bgColor",
25
+ "|",
26
+ "fontSize",
27
+ "fontFamily",
28
+ "lineHeight",
29
+ "|",
30
+ "bulletedList",
31
+ "numberedList",
32
+ "todo",
33
+ {
34
+ key: "group-justify",
35
+ // 以 group 开头
36
+ title: t("editor.justify"),
37
+ iconSvg: JUSTIFY_LEFT_SVG,
38
+ menuKeys: [
39
+ "justifyLeft",
40
+ "justifyRight",
41
+ "justifyCenter",
42
+ "justifyJustify"
43
+ ]
44
+ },
45
+ {
46
+ key: "group-indent",
47
+ // 以 group 开头
48
+ title: t("editor.indent"),
49
+ iconSvg: INDENT_RIGHT_SVG,
50
+ menuKeys: ["indent", "delIndent"]
51
+ },
52
+ "|",
53
+ "emotion",
54
+ "insertLink",
55
+ // 'editLink',
56
+ // 'unLink',
57
+ // 'viewLink',
58
+ {
59
+ key: "group-image",
60
+ // 以 group 开头
61
+ title: t("editor.image"),
62
+ iconSvg: IMAGE_SVG,
63
+ menuKeys: ["insertImage", "uploadImage"]
64
+ },
65
+ // 'deleteImage',
66
+ // 'editImage',
67
+ // 'viewImageLink',
68
+ {
69
+ key: "group-video",
70
+ // 以 group 开头
71
+ title: t("editor.video"),
72
+ iconSvg: VIDEO_SVG,
73
+ menuKeys: ["insertVideo", "uploadVideo"]
74
+ },
75
+ // 'deleteVideo',
76
+ "insertTable",
77
+ "codeBlock",
78
+ // 'codeSelectLang',
79
+ "divider",
80
+ // 'deleteTable',
81
+ "|",
82
+ "undo",
83
+ "redo",
84
+ "|",
85
+ "fullScreen",
86
+ "emoji"
87
+ ];
88
+ }
89
+
90
+ export { genDefaultToolbarKeys };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ const INDENT_RIGHT_SVG = '<svg viewBox="0 0 1024 1024"><path d="M0 64h1024v128H0z m384 192h640v128H384z m0 192h640v128H384z m0 192h640v128H384zM0 832h1024v128H0z m0-128V320l256 192z"></path></svg>';
3
+ const JUSTIFY_LEFT_SVG = '<svg viewBox="0 0 1024 1024"><path d="M768 793.6v102.4H51.2v-102.4h716.8z m204.8-230.4v102.4H51.2v-102.4h921.6z m-204.8-230.4v102.4H51.2v-102.4h716.8zM972.8 102.4v102.4H51.2V102.4h921.6z"></path></svg>';
4
+ const IMAGE_SVG = '<svg viewBox="0 0 1024 1024"><path d="M959.877 128l0.123 0.123v767.775l-0.123 0.122H64.102l-0.122-0.122V128.123l0.122-0.123h895.775zM960 64H64C28.795 64 0 92.795 0 128v768c0 35.205 28.795 64 64 64h896c35.205 0 64-28.795 64-64V128c0-35.205-28.795-64-64-64zM832 288.01c0 53.023-42.988 96.01-96.01 96.01s-96.01-42.987-96.01-96.01S682.967 192 735.99 192 832 234.988 832 288.01zM896 832H128V704l224.01-384 256 320h64l224.01-192z"></path></svg>';
5
+ const MORE_SVG = '<svg viewBox="0 0 1024 1024"><path d="M204.8 505.6m-76.8 0a76.8 76.8 0 1 0 153.6 0 76.8 76.8 0 1 0-153.6 0Z"></path><path d="M505.6 505.6m-76.8 0a76.8 76.8 0 1 0 153.6 0 76.8 76.8 0 1 0-153.6 0Z"></path><path d="M806.4 505.6m-76.8 0a76.8 76.8 0 1 0 153.6 0 76.8 76.8 0 1 0-153.6 0Z"></path></svg>';
6
+ const VIDEO_SVG = '<svg viewBox="0 0 1024 1024"><path d="M981.184 160.096C837.568 139.456 678.848 128 512 128S186.432 139.456 42.816 160.096C15.296 267.808 0 386.848 0 512s15.264 244.16 42.816 351.904C186.464 884.544 345.152 896 512 896s325.568-11.456 469.184-32.096C1008.704 756.192 1024 637.152 1024 512s-15.264-244.16-42.816-351.904zM384 704V320l320 192-320 192z"></path></svg>';
7
+
8
+ export { IMAGE_SVG, INDENT_RIGHT_SVG, JUSTIFY_LEFT_SVG, MORE_SVG, VIDEO_SVG };
@@ -1 +1 @@
1
- .ibiz-html{--ibiz-html-height:300px;display:inline-block;width:100%;height:100%}.ibiz-html .ibiz-html-content{display:flex;flex-direction:column;height:100%;background-color:var(--ibiz-color-bg-0)}.ibiz-html .ibiz-html-editor{height:var(--ibiz-html-height)!important;padding:0;overflow-y:scroll;border:1px solid var(--ibiz-color-border)}.ibiz-html .ibiz-html-editor.is-readonly{height:auto!important}.ibiz-html .ibiz-html-editor table{width:100%!important;border-collapse:collapse}.ibiz-html .ibiz-html-editor table th{height:var(--ibiz-height-control-large);min-height:var(--ibiz-height-control-large);padding:var(--ibiz-spacing-tight);border:1px solid var(--ibiz-color-border)}.ibiz-html .ibiz-html-editor table td{height:var(--ibiz-height-control-large);min-height:var(--ibiz-height-control-large);padding:var(--ibiz-spacing-tight);empty-cells:show;border:1px solid var(--ibiz-color-border)}.ibiz-html{--w-e-textarea-bg-color:var(--ibiz-color-bg-1);--w-e-textarea-color:var(--ibiz-color-text-2);--w-e-textarea-border-color:var(--ibiz-color-border);--w-e-textarea-slight-border-color:var(--ibiz-color-border);--w-e-textarea-slight-color:var(--ibiz-color-text-3);--w-e-textarea-slight-bg-color:var(--ibiz-color-bg-1);--w-e-textarea-selected-border-color:var(--ibiz-color-border);--w-e-textarea-handler-bg-color:var(--ibiz-color-primary);--w-e-toolbar-color:var(--ibiz-color-text-0);--w-e-toolbar-bg-color:var(--ibiz-color-bg-1);--w-e-toolbar-active-color:var(--ibiz-color-text-0);--w-e-toolbar-active-bg-color:var(--ibiz-color-bg-1);--w-e-toolbar-disabled-color:var(--ibiz-color-disabled-text);--w-e-toolbar-border-color:var(--ibiz-color-border);--w-e-modal-button-bg-color:var(--ibiz-color-bg-1);--w-e-modal-button-border-color:var(--ibiz-color-border)}.ibiz-html .w-e-menu-tooltip-v5::before{color:var(--ibiz-color-text-0);background-color:var(--w-e-toolbar-bg-color)}.ibiz-html .w-e-full-screen-container{z-index:9999}.ibiz-html .w-e-scroll>div{background-color:var(--ibiz-color-bg-1)}.ibiz-html .table-container table{width:100%}.ibiz-html.is-enable-edit .w-e-bar-item>button{color:var(--w-e-toolbar-color);cursor:pointer}.ibiz-html.is-enable-edit .w-e-bar-item>button svg{fill:var(--w-e-toolbar-color)}.ibiz-html.is-show-editor-switch-menu .ibiz-html-content{position:relative}.ibiz-html.is-show-editor-switch-menu .ibiz-composite-form-item-ex-menu{--ibiz-composite-form-item-ex-menu-height:41px}.ibiz-html.is-show-editor-switch-menu .ibiz-html-toolbar>.w-e-toolbar.w-e-bar{padding-right:var(--ibiz-composite-form-item-ex-menu-width)}.ibiz-html-editor-readonly .ibiz-html-toolbar{display:none}.ibiz-html-editor-readonly .ibiz-html-editor{border:none}.ibiz-html-editor-readonly .ibiz-composite-form-item-ex-menu{display:none}.ibiz-html-toolbar .w-e-toolbar{background-color:var(--ibiz-color-bg-0);border:1px solid var(--ibiz-color-border);border-bottom:none;box-shadow:none}.ibiz-html-toolbar .w-e-toolbar .w-e-bar-item>button:hover{background-color:var(--ibiz-color-bg-0)}.ibiz-html-footer{display:flex;align-items:center;justify-content:end;margin-top:var(--ibiz-spacing-base-tight);margin-right:var(--ibiz-spacing-tight)}.ibiz-html-footer>*+*{margin-left:var(--ibiz-spacing-base)}.ibiz-html-footer__cancel{height:var(--ibiz-height-control-default);line-height:var(--ibiz-height-control-default);color:var(--ibiz-color-text-1);cursor:pointer;opacity:.7}.ibiz-html-footer__cancel:hover{color:var(--ibiz-color-primary);opacity:1}.ibiz-html-footer__save{height:var(--ibiz-height-control-default);padding:0 var(--ibiz-spacing-base);line-height:var(--ibiz-height-control-default);color:var(--ibiz-color-primary-active-text);text-align:center;cursor:pointer;background-color:var(--ibiz-color-primary);border-radius:var(--ibiz-border-radius-small)}.ibiz-html-custom-toolbar{display:flex;align-items:center;justify-content:end;width:100%;height:var(--ibiz-height-control-default);padding-right:var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-header-6)}.ibiz-html-custom-toolbar>*+*{margin-left:var(--ibiz-spacing-base-loose)}.ibiz-html-custom-toolbar i{cursor:pointer}.ibiz-html-custom-toolbar i:hover{color:var(--ibiz-color-primary)}.ibiz-html-message{width:500px;max-width:unset}.ibiz-html-message__message-content--message-tip{color:var(--ibiz-color-text-3)}.ibiz-html-message__message-cancel{color:var(--ibiz-color-text-1);background-color:transparent}.ibiz-html-message__message-cancel:hover{color:var(--ibiz-color-primary);background-color:transparent}.ibiz-html-message__message-comfire{background-color:var(--ibiz-color-danger)!important}.ibiz-html-message__message-comfire:hover{box-shadow:0 2px 5px 1px var(--ibiz-color-danger)}.ibiz-html-dialog-full-screen{height:80%}.ibiz-html-dialog-full-screen .el-dialog__header{display:none}.ibiz-html-dialog-full-screen .el-dialog__body{height:100%;padding-top:0}.ibiz-html-dialog-full-screen.is-editing .el-dialog__body{padding-bottom:0}.ibiz-html-dialog-full-screen .ibiz-html{padding:0;--w-e-toolbar-bg-color:var(--ibiz-color-bg-0)}.ibiz-html-dialog-full-screen .ibiz-html-custom-toolbar{height:56px;padding-right:0}.ibiz-html-dialog-full-screen .ibiz-html-content{height:calc(100% - 56px)}.ibiz-html-dialog-full-screen .ibiz-html-content .ibiz-html-editor{height:100%!important}.ibiz-html-dialog-full-screen .ibiz-html-content.is-editing{height:calc(100% - 128px)}.ibiz-html-footer-dialog{height:68px;margin-top:0;margin-right:0}emoji-elem{margin:0 1px!important}
1
+ .ibiz-html{--ibiz-html-height:300px;display:inline-block;width:100%;height:100%}.ibiz-html .ibiz-html-content{display:flex;flex-direction:column;height:100%;background-color:var(--ibiz-color-bg-0)}.ibiz-html .ibiz-html-editor{height:var(--ibiz-html-height)!important;padding:0;overflow-y:scroll;border:1px solid var(--ibiz-color-border)}.ibiz-html .ibiz-html-editor.is-readonly{height:auto!important}.ibiz-html .ibiz-html-editor table{width:100%!important;border-collapse:collapse}.ibiz-html .ibiz-html-editor table th{height:var(--ibiz-height-control-large);min-height:var(--ibiz-height-control-large);padding:var(--ibiz-spacing-tight);border:1px solid var(--ibiz-color-border)}.ibiz-html .ibiz-html-editor table td{height:var(--ibiz-height-control-large);min-height:var(--ibiz-height-control-large);padding:var(--ibiz-spacing-tight);empty-cells:show;border:1px solid var(--ibiz-color-border)}.ibiz-html{--w-e-textarea-bg-color:var(--ibiz-color-bg-1);--w-e-textarea-color:var(--ibiz-color-text-2);--w-e-textarea-border-color:var(--ibiz-color-border);--w-e-textarea-slight-border-color:var(--ibiz-color-border);--w-e-textarea-slight-color:var(--ibiz-color-text-3);--w-e-textarea-slight-bg-color:var(--ibiz-color-bg-1);--w-e-textarea-selected-border-color:var(--ibiz-color-border);--w-e-textarea-handler-bg-color:var(--ibiz-color-primary);--w-e-toolbar-color:var(--ibiz-color-text-0);--w-e-toolbar-bg-color:var(--ibiz-color-bg-1);--w-e-toolbar-active-color:var(--ibiz-color-text-0);--w-e-toolbar-active-bg-color:var(--ibiz-color-bg-1);--w-e-toolbar-disabled-color:var(--ibiz-color-disabled-text);--w-e-toolbar-border-color:var(--ibiz-color-border);--w-e-modal-button-bg-color:var(--ibiz-color-bg-1);--w-e-modal-button-border-color:var(--ibiz-color-border)}.ibiz-html .w-e-menu-tooltip-v5::before{color:var(--ibiz-color-text-0);background-color:var(--w-e-toolbar-bg-color)}.ibiz-html .w-e-full-screen-container{z-index:9999}.ibiz-html .w-e-scroll>div{background-color:var(--ibiz-color-bg-1)}.ibiz-html .table-container table{width:100%}.ibiz-html.is-enable-edit .w-e-bar-item>button{color:var(--w-e-toolbar-color);cursor:pointer}.ibiz-html.is-enable-edit .w-e-bar-item>button svg{fill:var(--w-e-toolbar-color)}.ibiz-html.is-show-editor-switch-menu .ibiz-html-content{position:relative}.ibiz-html.is-show-editor-switch-menu .ibiz-composite-form-item-ex-menu{--ibiz-composite-form-item-ex-menu-height:40px;position:relative;max-height:100%}.ibiz-html.is-show-editor-switch-menu .ibiz-html-toolbar>.w-e-toolbar.w-e-bar{padding-right:var(--ibiz-composite-form-item-ex-menu-width)}.ibiz-html.is-show-editor-switch-menu .ibiz-html-menu{position:absolute;top:2px;right:1px;z-index:var(--ibiz-composite-form-item-ex-menu-z-index);display:flex;align-items:center;height:calc(var(--ibiz-html-toolbar-height) - 1px);background:var(--ibiz-composite-form-item-ex-menu-bg-color);border-left:1px solid var(--ibiz-color-border)}.ibiz-html-editor-readonly .ibiz-html-toolbar{display:none}.ibiz-html-editor-readonly .ibiz-html-editor{border:none}.ibiz-html-editor-readonly .ibiz-composite-form-item-ex-menu{display:none}.ibiz-html-toolbar .w-e-toolbar{background-color:var(--ibiz-color-bg-0);border:1px solid var(--ibiz-color-border);border-bottom:none;box-shadow:none}.ibiz-html-toolbar .w-e-toolbar .w-e-bar-item>button:hover{background-color:var(--ibiz-color-bg-0)}.ibiz-html-footer{display:flex;align-items:center;justify-content:end;margin-top:var(--ibiz-spacing-base-tight);margin-right:var(--ibiz-spacing-tight)}.ibiz-html-footer>*+*{margin-left:var(--ibiz-spacing-base)}.ibiz-html-footer__cancel{height:var(--ibiz-height-control-default);line-height:var(--ibiz-height-control-default);color:var(--ibiz-color-text-1);cursor:pointer;opacity:.7}.ibiz-html-footer__cancel:hover{color:var(--ibiz-color-primary);opacity:1}.ibiz-html-footer__save{height:var(--ibiz-height-control-default);padding:0 var(--ibiz-spacing-base);line-height:var(--ibiz-height-control-default);color:var(--ibiz-color-primary-active-text);text-align:center;cursor:pointer;background-color:var(--ibiz-color-primary);border-radius:var(--ibiz-border-radius-small)}.ibiz-html-custom-toolbar{display:flex;align-items:center;justify-content:end;width:100%;height:var(--ibiz-height-control-default);padding-right:var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-header-6)}.ibiz-html-custom-toolbar>*+*{margin-left:var(--ibiz-spacing-base-loose)}.ibiz-html-custom-toolbar i{cursor:pointer}.ibiz-html-custom-toolbar i:hover{color:var(--ibiz-color-primary)}.ibiz-html-message{width:500px;max-width:unset}.ibiz-html-message__message-content--message-tip{color:var(--ibiz-color-text-3)}.ibiz-html-message__message-cancel{color:var(--ibiz-color-text-1);background-color:transparent}.ibiz-html-message__message-cancel:hover{color:var(--ibiz-color-primary);background-color:transparent}.ibiz-html-message__message-comfire{background-color:var(--ibiz-color-danger)!important}.ibiz-html-message__message-comfire:hover{box-shadow:0 2px 5px 1px var(--ibiz-color-danger)}.ibiz-html-dialog-full-screen{height:80%}.ibiz-html-dialog-full-screen .el-dialog__header{display:none}.ibiz-html-dialog-full-screen .el-dialog__body{height:100%;padding-top:0}.ibiz-html-dialog-full-screen.is-editing .el-dialog__body{padding-bottom:0}.ibiz-html-dialog-full-screen .ibiz-html{padding:0;--w-e-toolbar-bg-color:var(--ibiz-color-bg-0)}.ibiz-html-dialog-full-screen .ibiz-html-custom-toolbar{height:56px;padding-right:0}.ibiz-html-dialog-full-screen .ibiz-html-content{height:calc(100% - 56px)}.ibiz-html-dialog-full-screen .ibiz-html-content .ibiz-html-editor{height:100%!important}.ibiz-html-dialog-full-screen .ibiz-html-content.is-editing{height:calc(100% - 128px)}.ibiz-html-footer-dialog{height:68px;margin-top:0;margin-right:0}emoji-elem{margin:0 1px!important}
@@ -3,14 +3,14 @@ import { Toolbar, Editor } from '@wangeditor/editor-for-vue';
3
3
  import { createUUID } from 'qx-util';
4
4
  import { isNil } from 'ramda';
5
5
  import { useNamespace, useUIStore, getEditorEmits, getHtmlProps } from '@ibiz-template/vue3-util';
6
- import { IBizContext, StringUtil, awaitTimeout } from '@ibiz-template/core';
6
+ import { IBizContext, awaitTimeout } from '@ibiz-template/core';
7
7
  import { UIActionUtil, SysUIActionTag } from '@ibiz-template/runtime';
8
8
  import { ElMessageBox } from 'element-plus';
9
- import '../../../util/index.mjs';
10
9
  import './module/index.mjs';
10
+ import './config/index.mjs';
11
11
  import './wang-editor.css';
12
+ import { genDefaultToolbarKeys } from './config/toolbar.mjs';
12
13
  import { hoverbarKeysEx } from './module/inline-ai-module.mjs';
13
- import { calcAiToolbarItemsByAc } from '../../../util/ai-util/ai-util.mjs';
14
14
 
15
15
  "use strict";
16
16
  const IBizHtml = /* @__PURE__ */ defineComponent({
@@ -40,7 +40,6 @@ const IBizHtml = /* @__PURE__ */ defineComponent({
40
40
  const readonlyState = ref(false);
41
41
  const enableFullScreen = ref(false);
42
42
  const isFullScreen = ref(false);
43
- let autoClose;
44
43
  const editorModel = c.model;
45
44
  if (editorModel.editorParams) {
46
45
  if (editorModel.editorParams.enableEdit) {
@@ -59,13 +58,6 @@ const IBizHtml = /* @__PURE__ */ defineComponent({
59
58
  if (editorModel.editorParams.enablefullscreen) {
60
59
  enableFullScreen.value = c.toBoolean(editorModel.editorParams.enablefullscreen);
61
60
  }
62
- if (editorModel.editorParams.autoclose) {
63
- try {
64
- autoClose = JSON.parse(editorModel.editorParams.autoclose);
65
- } catch (error) {
66
- ibiz.log.error(error);
67
- }
68
- }
69
61
  }
70
62
  if (props.readonly) {
71
63
  hasEnableEdit.value = false;
@@ -108,12 +100,12 @@ const IBizHtml = /* @__PURE__ */ defineComponent({
108
100
  const customParseLinkUrl = (url) => {
109
101
  return url;
110
102
  };
103
+ const toolbarKeys = genDefaultToolbarKeys();
104
+ if (c.chatCompletion)
105
+ toolbarKeys.unshift(...["aichart", "|"]);
111
106
  const toolbarConfig = {
112
107
  excludeKeys: ["group-video", "emotion"],
113
- insertKeys: {
114
- index: 60,
115
- keys: c.chatCompletion ? ["emoji", "|", "aichart"] : ["emoji"]
116
- }
108
+ toolbarKeys
117
109
  };
118
110
  const editorConfig = {
119
111
  placeholder: c.placeHolder,
@@ -205,23 +197,28 @@ const IBizHtml = /* @__PURE__ */ defineComponent({
205
197
  const appDataEntityId = c.model.appDataEntityId;
206
198
  if (!appDataEntityId || !c.deACMode)
207
199
  return;
200
+ const aiAgentlist = await ibiz.aiChatUtil.getAIAgentList(c.context, c.params);
208
201
  const {
209
202
  contentToolbarItems,
210
203
  footerToolbarItems,
211
204
  questionToolbarItems,
212
205
  otherToolbarItems
213
- } = calcAiToolbarItemsByAc(c.deACMode);
206
+ } = ibiz.aiChatUtil.calcAiToolbarItemsByAc(c.deACMode);
207
+ const {
208
+ containerOptions,
209
+ chatOptions
210
+ } = ibiz.aiChatUtil.getEditorExAIChatParams(c.editorParams, c.context, c.params, props.data);
214
211
  const {
215
212
  zIndex
216
213
  } = useUIStore();
217
214
  const containerZIndex = zIndex.increment();
218
- const module = await import('@ibiz-template-plugin/ai-chat');
219
- chatInstance = module.chat || module.default.chat;
215
+ chatInstance = await ibiz.aiChatUtil.getAIChat();
220
216
  let id = "";
221
217
  let abortController;
222
218
  chatInstance.create({
223
219
  containerOptions: {
224
- zIndex: containerZIndex
220
+ zIndex: containerZIndex,
221
+ ...containerOptions
225
222
  },
226
223
  chatOptions: {
227
224
  caption: c.deACMode.logicName,
@@ -237,23 +234,23 @@ const IBizHtml = /* @__PURE__ */ defineComponent({
237
234
  footerToolbarItems,
238
235
  questionToolbarItems,
239
236
  otherToolbarItems,
240
- // 编辑器参数srfaiappendcurdata,是否传入对象参数,用于历史查询传参
241
- appendCurData: c.editorParams.srfaiappendcurdata === "true" ? props.data : void 0,
242
- // 自动提问
243
- autoQuestion: c.editorParams.autoquestion !== "false",
244
- // 自动填充
245
- autoFill: c.editorParams.autofill === "true",
246
- // 窗口的打开模式
247
- openMode: c.editorParams.openmode,
248
- // 窗口的自动关闭模式
249
- autoClose,
250
- // 编辑器参数srfaiappendcurcontent,传入编辑内容作为用户消息,获取历史数据后附加
251
- appendCurContent: c.editorParams.srfaiappendcurcontent ? StringUtil.fill(c.editorParams.srfaiappendcurcontent, c.context, c.params, props.data) : void 0,
252
- question: async (aiChat, ctx, param, other, arr, sessionid) => {
237
+ aiAgentlist,
238
+ ...chatOptions,
239
+ question: async (aiChat, ctx, param, other, arr, sessionid, srfaiagent, srfmode) => {
253
240
  id = createUUID();
254
241
  abortController = new AbortController();
255
242
  const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
256
243
  try {
244
+ const questionRequestData = {
245
+ messages: arr,
246
+ sessionid
247
+ };
248
+ if (srfaiagent) {
249
+ questionRequestData.srfaiagent = srfaiagent;
250
+ }
251
+ if (srfmode) {
252
+ questionRequestData.mode = srfmode;
253
+ }
257
254
  await deService.aiChatSse((msg) => {
258
255
  if (msg.actionstate === 20 && msg.actionresult) {
259
256
  aiChat.addMessage({
@@ -285,8 +282,7 @@ const IBizHtml = /* @__PURE__ */ defineComponent({
285
282
  });
286
283
  }
287
284
  }, abortController, ctx, param, {
288
- messages: arr,
289
- sessionid
285
+ ...questionRequestData
290
286
  });
291
287
  } catch (error) {
292
288
  aiChat.replaceMessage({
@@ -324,8 +320,23 @@ const IBizHtml = /* @__PURE__ */ defineComponent({
324
320
  },
325
321
  history: async (ctx, param, other) => {
326
322
  const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
327
- const historyData = other.appendCurData ? other.appendCurData : {};
328
- const result = await deService.aiChatHistory(ctx, param, historyData);
323
+ const historyRequestData = {};
324
+ if (other.appendCurData) {
325
+ Object.assign(historyRequestData, {
326
+ ...other.appendCurData
327
+ });
328
+ }
329
+ if (other.srfaiagent) {
330
+ Object.assign(historyRequestData, {
331
+ srfaiagent: other.srfaiagent
332
+ });
333
+ }
334
+ if (other.srfmode) {
335
+ Object.assign(historyRequestData, {
336
+ mode: other.srfmode
337
+ });
338
+ }
339
+ const result = await deService.aiChatHistory(ctx, param, historyRequestData);
329
340
  if (result.data && Array.isArray(result.data)) {
330
341
  let preMsg;
331
342
  result.data.forEach((item) => {
@@ -523,7 +534,8 @@ const IBizHtml = /* @__PURE__ */ defineComponent({
523
534
  const height = entries[0].contentRect.height;
524
535
  if (height !== lastToolbarHeight) {
525
536
  const tempCssVars = {
526
- height: "".concat(htmlContentHeight - entries[0].contentRect.height + (height !== 0 ? 300 : 0), "px")
537
+ height: "".concat(htmlContentHeight - entries[0].contentRect.height + (height !== 0 ? 300 : 0), "px"),
538
+ "toolbar-height": "".concat(height, "px")
527
539
  };
528
540
  cssVars.value = ns.cssVarBlock(tempCssVars);
529
541
  lastToolbarHeight = height;
@@ -652,12 +664,13 @@ const IBizHtml = /* @__PURE__ */ defineComponent({
652
664
  return null;
653
665
  };
654
666
  const renderEditorContent = () => {
655
- var _a;
656
667
  return createVNode("div", {
657
668
  "class": [ns.b("content"), ns.is("editing", !readonlyState.value)],
658
669
  "ref": "htmlContent",
659
670
  "style": cssVars.value
660
- }, [(_a = slots.editorSwitchMenu) == null ? void 0 : _a.call(slots), createVNode(Toolbar, {
671
+ }, [slots.editorSwitchMenu ? createVNode("div", {
672
+ "class": ns.b("menu")
673
+ }, [slots.editorSwitchMenu()]) : null, createVNode(Toolbar, {
661
674
  "ref": "toolbarRef",
662
675
  "editor": editorRef.value,
663
676
  "default-config": toolbarConfig,