@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
@@ -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)}
@@ -7,9 +7,7 @@ var ElementPlus = require('element-plus');
7
7
  require('../../../node_modules/.pnpm/@monaco-editor_loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/index.cjs');
8
8
  var runtime = require('@ibiz-template/runtime');
9
9
  var core = require('@ibiz-template/core');
10
- require('../../../util/index.cjs');
11
10
  require('./monaco-editor.css');
12
- var aiUtil = require('../../../util/ai-util/ai-util.cjs');
13
11
  var index = require('../../../node_modules/.pnpm/@monaco-editor_loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/loader/index.cjs');
14
12
 
15
13
  "use strict";
@@ -35,7 +33,6 @@ const IBizCode = /* @__PURE__ */ vue.defineComponent({
35
33
  const enableFullScreen = vue.ref(false);
36
34
  const isFullScreen = vue.ref(false);
37
35
  const isLoading = vue.ref(false);
38
- let autoClose;
39
36
  const textTBRef = vue.ref();
40
37
  const textTBStyle = vue.ref({
41
38
  [ns.cssVarBlockName("text-editor-toolbar-z-index")]: zIndex.increment()
@@ -60,13 +57,6 @@ const IBizCode = /* @__PURE__ */ vue.defineComponent({
60
57
  if (editorModel.editorParams.enablefullscreen) {
61
58
  enableFullScreen.value = c.toBoolean(editorModel.editorParams.enablefullscreen);
62
59
  }
63
- if (editorModel.editorParams.autoclose) {
64
- try {
65
- autoClose = JSON.parse(editorModel.editorParams.autoclose);
66
- } catch (error) {
67
- ibiz.log.error(error);
68
- }
69
- }
70
60
  }
71
61
  let editor;
72
62
  let monacoEditor;
@@ -129,19 +119,24 @@ const IBizCode = /* @__PURE__ */ vue.defineComponent({
129
119
  const openAIChat = async () => {
130
120
  if (!c.deACMode || !c.model.appDataEntityId)
131
121
  return;
122
+ const aiAgentlist = await ibiz.aiChatUtil.getAIAgentList(c.context, c.params);
132
123
  const {
133
124
  contentToolbarItems,
134
125
  footerToolbarItems,
135
126
  questionToolbarItems,
136
127
  otherToolbarItems
137
- } = aiUtil.calcAiToolbarItemsByAc(c.deACMode);
138
- const module = await import('@ibiz-template-plugin/ai-chat');
139
- chatInstance = module.chat || module.default.chat;
128
+ } = ibiz.aiChatUtil.calcAiToolbarItemsByAc(c.deACMode);
129
+ const {
130
+ containerOptions,
131
+ chatOptions
132
+ } = ibiz.aiChatUtil.getEditorExAIChatParams(c.editorParams, c.context, c.params, props.data);
133
+ chatInstance = await ibiz.aiChatUtil.getAIChat();
140
134
  let id = "";
141
135
  let abortController;
142
136
  chatInstance.create({
143
137
  containerOptions: {
144
- zIndex: zIndex.increment()
138
+ zIndex: zIndex.increment(),
139
+ ...containerOptions
145
140
  },
146
141
  chatOptions: {
147
142
  caption: c.deACMode.logicName,
@@ -152,28 +147,28 @@ const IBizCode = /* @__PURE__ */ vue.defineComponent({
152
147
  ...c.params,
153
148
  srfactag: c.deACMode.codeName
154
149
  },
155
- // 编辑器参数srfaiappendcurdata,是否传入对象参数,用于历史查询传参
156
- appendCurData: c.editorParams.srfaiappendcurdata === "true" ? props.data : void 0,
157
- // 自动提问
158
- autoQuestion: c.editorParams.autoquestion !== "false",
159
- // 自动填充
160
- autoFill: c.editorParams.autofill === "true",
161
- // 窗口的打开模式
162
- openMode: c.editorParams.openmode,
163
- // 窗口的自动关闭模式
164
- autoClose,
165
- // 编辑器参数srfaiappendcurcontent,传入编辑内容作为用户消息,获取历史数据后附加
166
- appendCurContent: c.editorParams.srfaiappendcurcontent ? core.StringUtil.fill(c.editorParams.srfaiappendcurcontent, c.context, c.params, props.data) : void 0,
167
150
  appDataEntityId: c.model.appDataEntityId,
168
151
  contentToolbarItems,
169
152
  footerToolbarItems,
170
153
  questionToolbarItems,
171
154
  otherToolbarItems,
172
- question: async (aiChat, ctx, param, other, arr, sessionid) => {
155
+ aiAgentlist,
156
+ ...chatOptions,
157
+ question: async (aiChat, ctx, param, other, arr, sessionid, srfaiagent, srfmode) => {
173
158
  id = qxUtil.createUUID();
174
159
  abortController = new AbortController();
175
160
  const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
176
161
  try {
162
+ const questionRequestData = {
163
+ messages: arr,
164
+ sessionid
165
+ };
166
+ if (srfaiagent) {
167
+ questionRequestData.srfaiagent = srfaiagent;
168
+ }
169
+ if (srfmode) {
170
+ questionRequestData.mode = srfmode;
171
+ }
177
172
  await deService.aiChatSse((msg) => {
178
173
  if (msg.actionstate === 20 && msg.actionresult) {
179
174
  aiChat.addMessage({
@@ -205,8 +200,7 @@ const IBizCode = /* @__PURE__ */ vue.defineComponent({
205
200
  });
206
201
  }
207
202
  }, abortController, ctx, param, {
208
- messages: arr,
209
- sessionid
203
+ ...questionRequestData
210
204
  });
211
205
  } catch (error) {
212
206
  aiChat.replaceMessage({
@@ -239,8 +233,23 @@ const IBizCode = /* @__PURE__ */ vue.defineComponent({
239
233
  },
240
234
  history: async (ctx, param, other) => {
241
235
  const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
242
- const historyData = other.appendCurData ? other.appendCurData : {};
243
- const result = await deService.aiChatHistory(ctx, param, historyData);
236
+ const historyRequestData = {};
237
+ if (other.appendCurData) {
238
+ Object.assign(historyRequestData, {
239
+ ...other.appendCurData
240
+ });
241
+ }
242
+ if (other.srfaiagent) {
243
+ Object.assign(historyRequestData, {
244
+ srfaiagent: other.srfaiagent
245
+ });
246
+ }
247
+ if (other.srfmode) {
248
+ Object.assign(historyRequestData, {
249
+ mode: other.srfmode
250
+ });
251
+ }
252
+ const result = await deService.aiChatHistory(ctx, param, historyRequestData);
244
253
  if (result.data && Array.isArray(result.data)) {
245
254
  let preMsg;
246
255
  result.data.forEach((item) => {
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var toolbar = require('./toolbar.cjs');
4
+
5
+ "use strict";
6
+
7
+ exports.genDefaultToolbarKeys = toolbar.genDefaultToolbarKeys;
@@ -0,0 +1,92 @@
1
+ 'use strict';
2
+
3
+ var editor = require('@wangeditor/editor');
4
+ var svg = require('../constants/svg.cjs');
5
+
6
+ "use strict";
7
+ function genDefaultToolbarKeys() {
8
+ return [
9
+ "headerSelect",
10
+ // 'header1',
11
+ // 'header2',
12
+ // 'header3',
13
+ "blockquote",
14
+ "|",
15
+ "bold",
16
+ "underline",
17
+ "italic",
18
+ {
19
+ key: "group-more-style",
20
+ // 以 group 开头
21
+ title: editor.t("editor.more"),
22
+ iconSvg: svg.MORE_SVG,
23
+ menuKeys: ["through", "code", "sup", "sub", "clearStyle"]
24
+ },
25
+ "color",
26
+ "bgColor",
27
+ "|",
28
+ "fontSize",
29
+ "fontFamily",
30
+ "lineHeight",
31
+ "|",
32
+ "bulletedList",
33
+ "numberedList",
34
+ "todo",
35
+ {
36
+ key: "group-justify",
37
+ // 以 group 开头
38
+ title: editor.t("editor.justify"),
39
+ iconSvg: svg.JUSTIFY_LEFT_SVG,
40
+ menuKeys: [
41
+ "justifyLeft",
42
+ "justifyRight",
43
+ "justifyCenter",
44
+ "justifyJustify"
45
+ ]
46
+ },
47
+ {
48
+ key: "group-indent",
49
+ // 以 group 开头
50
+ title: editor.t("editor.indent"),
51
+ iconSvg: svg.INDENT_RIGHT_SVG,
52
+ menuKeys: ["indent", "delIndent"]
53
+ },
54
+ "|",
55
+ "emotion",
56
+ "insertLink",
57
+ // 'editLink',
58
+ // 'unLink',
59
+ // 'viewLink',
60
+ {
61
+ key: "group-image",
62
+ // 以 group 开头
63
+ title: editor.t("editor.image"),
64
+ iconSvg: svg.IMAGE_SVG,
65
+ menuKeys: ["insertImage", "uploadImage"]
66
+ },
67
+ // 'deleteImage',
68
+ // 'editImage',
69
+ // 'viewImageLink',
70
+ {
71
+ key: "group-video",
72
+ // 以 group 开头
73
+ title: editor.t("editor.video"),
74
+ iconSvg: svg.VIDEO_SVG,
75
+ menuKeys: ["insertVideo", "uploadVideo"]
76
+ },
77
+ // 'deleteVideo',
78
+ "insertTable",
79
+ "codeBlock",
80
+ // 'codeSelectLang',
81
+ "divider",
82
+ // 'deleteTable',
83
+ "|",
84
+ "undo",
85
+ "redo",
86
+ "|",
87
+ "fullScreen",
88
+ "emoji"
89
+ ];
90
+ }
91
+
92
+ exports.genDefaultToolbarKeys = genDefaultToolbarKeys;
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ "use strict";
4
+ 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>';
5
+ 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>';
6
+ 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>';
7
+ 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>';
8
+ 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>';
9
+
10
+ exports.IMAGE_SVG = IMAGE_SVG;
11
+ exports.INDENT_RIGHT_SVG = INDENT_RIGHT_SVG;
12
+ exports.JUSTIFY_LEFT_SVG = JUSTIFY_LEFT_SVG;
13
+ exports.MORE_SVG = MORE_SVG;
14
+ exports.VIDEO_SVG = VIDEO_SVG;
@@ -10,11 +10,11 @@ var vue3Util = require('@ibiz-template/vue3-util');
10
10
  var core = require('@ibiz-template/core');
11
11
  var runtime = require('@ibiz-template/runtime');
12
12
  var ElementPlus = require('element-plus');
13
- require('../../../util/index.cjs');
14
13
  require('./module/index.cjs');
14
+ require('./config/index.cjs');
15
15
  require('./wang-editor.css');
16
+ var toolbar = require('./config/toolbar.cjs');
16
17
  var inlineAiModule = require('./module/inline-ai-module.cjs');
17
- var aiUtil = require('../../../util/ai-util/ai-util.cjs');
18
18
 
19
19
  "use strict";
20
20
  const IBizHtml = /* @__PURE__ */ vue.defineComponent({
@@ -44,7 +44,6 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
44
44
  const readonlyState = vue.ref(false);
45
45
  const enableFullScreen = vue.ref(false);
46
46
  const isFullScreen = vue.ref(false);
47
- let autoClose;
48
47
  const editorModel = c.model;
49
48
  if (editorModel.editorParams) {
50
49
  if (editorModel.editorParams.enableEdit) {
@@ -63,13 +62,6 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
63
62
  if (editorModel.editorParams.enablefullscreen) {
64
63
  enableFullScreen.value = c.toBoolean(editorModel.editorParams.enablefullscreen);
65
64
  }
66
- if (editorModel.editorParams.autoclose) {
67
- try {
68
- autoClose = JSON.parse(editorModel.editorParams.autoclose);
69
- } catch (error) {
70
- ibiz.log.error(error);
71
- }
72
- }
73
65
  }
74
66
  if (props.readonly) {
75
67
  hasEnableEdit.value = false;
@@ -112,12 +104,12 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
112
104
  const customParseLinkUrl = (url) => {
113
105
  return url;
114
106
  };
107
+ const toolbarKeys = toolbar.genDefaultToolbarKeys();
108
+ if (c.chatCompletion)
109
+ toolbarKeys.unshift(...["aichart", "|"]);
115
110
  const toolbarConfig = {
116
111
  excludeKeys: ["group-video", "emotion"],
117
- insertKeys: {
118
- index: 60,
119
- keys: c.chatCompletion ? ["emoji", "|", "aichart"] : ["emoji"]
120
- }
112
+ toolbarKeys
121
113
  };
122
114
  const editorConfig = {
123
115
  placeholder: c.placeHolder,
@@ -209,23 +201,28 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
209
201
  const appDataEntityId = c.model.appDataEntityId;
210
202
  if (!appDataEntityId || !c.deACMode)
211
203
  return;
204
+ const aiAgentlist = await ibiz.aiChatUtil.getAIAgentList(c.context, c.params);
212
205
  const {
213
206
  contentToolbarItems,
214
207
  footerToolbarItems,
215
208
  questionToolbarItems,
216
209
  otherToolbarItems
217
- } = aiUtil.calcAiToolbarItemsByAc(c.deACMode);
210
+ } = ibiz.aiChatUtil.calcAiToolbarItemsByAc(c.deACMode);
211
+ const {
212
+ containerOptions,
213
+ chatOptions
214
+ } = ibiz.aiChatUtil.getEditorExAIChatParams(c.editorParams, c.context, c.params, props.data);
218
215
  const {
219
216
  zIndex
220
217
  } = vue3Util.useUIStore();
221
218
  const containerZIndex = zIndex.increment();
222
- const module = await import('@ibiz-template-plugin/ai-chat');
223
- chatInstance = module.chat || module.default.chat;
219
+ chatInstance = await ibiz.aiChatUtil.getAIChat();
224
220
  let id = "";
225
221
  let abortController;
226
222
  chatInstance.create({
227
223
  containerOptions: {
228
- zIndex: containerZIndex
224
+ zIndex: containerZIndex,
225
+ ...containerOptions
229
226
  },
230
227
  chatOptions: {
231
228
  caption: c.deACMode.logicName,
@@ -241,23 +238,23 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
241
238
  footerToolbarItems,
242
239
  questionToolbarItems,
243
240
  otherToolbarItems,
244
- // 编辑器参数srfaiappendcurdata,是否传入对象参数,用于历史查询传参
245
- appendCurData: c.editorParams.srfaiappendcurdata === "true" ? props.data : void 0,
246
- // 自动提问
247
- autoQuestion: c.editorParams.autoquestion !== "false",
248
- // 自动填充
249
- autoFill: c.editorParams.autofill === "true",
250
- // 窗口的打开模式
251
- openMode: c.editorParams.openmode,
252
- // 窗口的自动关闭模式
253
- autoClose,
254
- // 编辑器参数srfaiappendcurcontent,传入编辑内容作为用户消息,获取历史数据后附加
255
- appendCurContent: c.editorParams.srfaiappendcurcontent ? core.StringUtil.fill(c.editorParams.srfaiappendcurcontent, c.context, c.params, props.data) : void 0,
256
- question: async (aiChat, ctx, param, other, arr, sessionid) => {
241
+ aiAgentlist,
242
+ ...chatOptions,
243
+ question: async (aiChat, ctx, param, other, arr, sessionid, srfaiagent, srfmode) => {
257
244
  id = qxUtil.createUUID();
258
245
  abortController = new AbortController();
259
246
  const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
260
247
  try {
248
+ const questionRequestData = {
249
+ messages: arr,
250
+ sessionid
251
+ };
252
+ if (srfaiagent) {
253
+ questionRequestData.srfaiagent = srfaiagent;
254
+ }
255
+ if (srfmode) {
256
+ questionRequestData.mode = srfmode;
257
+ }
261
258
  await deService.aiChatSse((msg) => {
262
259
  if (msg.actionstate === 20 && msg.actionresult) {
263
260
  aiChat.addMessage({
@@ -289,8 +286,7 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
289
286
  });
290
287
  }
291
288
  }, abortController, ctx, param, {
292
- messages: arr,
293
- sessionid
289
+ ...questionRequestData
294
290
  });
295
291
  } catch (error) {
296
292
  aiChat.replaceMessage({
@@ -328,8 +324,23 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
328
324
  },
329
325
  history: async (ctx, param, other) => {
330
326
  const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
331
- const historyData = other.appendCurData ? other.appendCurData : {};
332
- const result = await deService.aiChatHistory(ctx, param, historyData);
327
+ const historyRequestData = {};
328
+ if (other.appendCurData) {
329
+ Object.assign(historyRequestData, {
330
+ ...other.appendCurData
331
+ });
332
+ }
333
+ if (other.srfaiagent) {
334
+ Object.assign(historyRequestData, {
335
+ srfaiagent: other.srfaiagent
336
+ });
337
+ }
338
+ if (other.srfmode) {
339
+ Object.assign(historyRequestData, {
340
+ mode: other.srfmode
341
+ });
342
+ }
343
+ const result = await deService.aiChatHistory(ctx, param, historyRequestData);
333
344
  if (result.data && Array.isArray(result.data)) {
334
345
  let preMsg;
335
346
  result.data.forEach((item) => {
@@ -527,7 +538,8 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
527
538
  const height = entries[0].contentRect.height;
528
539
  if (height !== lastToolbarHeight) {
529
540
  const tempCssVars = {
530
- height: "".concat(htmlContentHeight - entries[0].contentRect.height + (height !== 0 ? 300 : 0), "px")
541
+ height: "".concat(htmlContentHeight - entries[0].contentRect.height + (height !== 0 ? 300 : 0), "px"),
542
+ "toolbar-height": "".concat(height, "px")
531
543
  };
532
544
  cssVars.value = ns.cssVarBlock(tempCssVars);
533
545
  lastToolbarHeight = height;
@@ -656,12 +668,13 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
656
668
  return null;
657
669
  };
658
670
  const renderEditorContent = () => {
659
- var _a;
660
671
  return vue.createVNode("div", {
661
672
  "class": [ns.b("content"), ns.is("editing", !readonlyState.value)],
662
673
  "ref": "htmlContent",
663
674
  "style": cssVars.value
664
- }, [(_a = slots.editorSwitchMenu) == null ? void 0 : _a.call(slots), vue.createVNode(editorForVue.Toolbar, {
675
+ }, [slots.editorSwitchMenu ? vue.createVNode("div", {
676
+ "class": ns.b("menu")
677
+ }, [slots.editorSwitchMenu()]) : null, vue.createVNode(editorForVue.Toolbar, {
665
678
  "ref": "toolbarRef",
666
679
  "editor": editorRef.value,
667
680
  "default-config": toolbarConfig,
@@ -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}