@ibiz-template/vue3-components 0.7.41-alpha.50 → 0.7.41-alpha.52

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 (38) hide show
  1. package/dist/chart-B_uQaEfA.js +1 -0
  2. package/dist/{index-CXRnZZS2.js → index-DFvp2f5r.js} +4 -4
  3. package/dist/index.min.css +1 -1
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{wang-editor-9WDOiHof.js → wang-editor-BbR16ZTX.js} +1 -1
  6. package/dist/{xlsx-util-CgGjW9-u.js → xlsx-util-BkJoKKKt.js} +1 -1
  7. package/es/control/chart/chart.mjs +1 -0
  8. package/es/control/drtab/drtab-control.util.mjs +1 -1
  9. package/es/control/form/form-detail/form-button/form-button.css +1 -1
  10. package/es/control/form/form-detail/form-button/form-button.mjs +1 -1
  11. package/es/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.controller.mjs +10 -1
  12. package/es/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.css +1 -1
  13. package/es/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.mjs +3 -2
  14. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.mjs +2 -1
  15. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.mjs +2 -4
  16. package/es/util/ai-chat-util/ai-chat-util.mjs +66 -30
  17. package/es/util/fullscreen/fullscreen-util.mjs +1 -1
  18. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.mjs +29 -16
  19. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.mjs +10 -11
  20. package/es/web-app/router/index.mjs +181 -95
  21. package/lib/control/chart/chart.cjs +1 -0
  22. package/lib/control/drtab/drtab-control.util.cjs +1 -1
  23. package/lib/control/form/form-detail/form-button/form-button.cjs +1 -1
  24. package/lib/control/form/form-detail/form-button/form-button.css +1 -1
  25. package/lib/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.cjs +3 -2
  26. package/lib/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.controller.cjs +10 -1
  27. package/lib/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.css +1 -1
  28. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.cjs +2 -1
  29. package/lib/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.cjs +2 -4
  30. package/lib/util/ai-chat-util/ai-chat-util.cjs +66 -30
  31. package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
  32. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.cjs +10 -11
  33. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.cjs +28 -15
  34. package/lib/web-app/router/index.cjs +181 -95
  35. package/package.json +6 -6
  36. package/dist/chart-pMMcGXRE.js +0 -1
  37. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.52_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.53_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs +0 -0
  38. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.52_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.53_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs +0 -0
@@ -154,6 +154,7 @@ const ChartControl = /* @__PURE__ */ defineComponent({
154
154
  onMounted(() => {
155
155
  var _a, _b;
156
156
  const chart = init(chartRef.value);
157
+ ibiz.log.debug("\u521D\u59CB\u5316\u56FE\u8868\u5143\u7D20\uFF0C\u6E90dom\u5BF9\u8C61\uFF1A", chartRef.value, "\u76EE\u6807\u56FE\u8868\u5BF9\u8C61\uFF1A", chart);
157
158
  c.initChart(chart);
158
159
  window.addEventListener("resize", setHeight);
159
160
  window.addEventListener("pointerdown", setDrillState);
@@ -1,5 +1,5 @@
1
1
  import { ref, watch, watchEffect, onUnmounted } from 'vue';
2
- import { defaultNamespace } from '../../node_modules/.pnpm/@ibiz-template_core@0.7.41-alpha.52_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs';
2
+ import { defaultNamespace } from '../../node_modules/.pnpm/@ibiz-template_core@0.7.41-alpha.53_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs';
3
3
 
4
4
  "use strict";
5
5
  function useAppDRTab(c, controlRef, counterData) {
@@ -1 +1 @@
1
- .ibiz-form-button{--ibiz-form-button-icon-margin:var(--ibiz-spacing-extra-tight);--ibiz-form-button-icon-max-width:var(--ibiz-width-icon-medium);--ibiz-form-button-icon-max-height:var(--ibiz-width-icon-medium);width:100%;height:100%;padding:var(--ibiz-spacing-tight);overflow:hidden}.ibiz-form-button .el-button{width:100%;height:100%}.ibiz-form-button .el-button .ibiz-form-button-content{display:flex;align-items:center;justify-content:flex-start}.ibiz-form-button .el-button .ibiz-form-button-content i,.ibiz-form-button .el-button .ibiz-form-button-content img{display:inline-block;max-width:var(--ibiz-form-button-icon-max-width);max-height:var(--ibiz-form-button-icon-max-height)}.ibiz-form-button .el-button .ibiz-form-button-content .ibiz-icon+.ibiz-form-button-content--caption{margin-left:var(--ibiz-form-button-icon-margin)}.ibiz-form-button.is-loading .el-button .ibiz-icon{display:none}
1
+ .ibiz-form-button{--ibiz-form-button-icon-margin:var(--ibiz-spacing-extra-tight);--ibiz-form-button-icon-max-width:var(--ibiz-width-icon-medium);--ibiz-form-button-icon-max-height:var(--ibiz-width-icon-medium);width:100%;height:100%;padding:var(--ibiz-spacing-tight);overflow:hidden}.ibiz-form-button .el-button{width:100%;height:100%}.ibiz-form-button .el-button .ibiz-form-button-content{display:flex;align-items:center;justify-content:flex-start}.ibiz-form-button .el-button .ibiz-form-button-content i,.ibiz-form-button .el-button .ibiz-form-button-content img{display:inline-block;max-width:var(--ibiz-form-button-icon-max-width);max-height:var(--ibiz-form-button-icon-max-height)}.ibiz-form-button .el-button .ibiz-form-button-content .ibiz-icon+.ibiz-form-button-content--caption{margin-left:var(--ibiz-form-button-icon-margin)}.ibiz-form-button.is-loading .el-button .ibiz-icon{display:none}.ibiz-form-button.is-readonly{display:none}
@@ -41,7 +41,7 @@ const FormButton = /* @__PURE__ */ defineComponent({
41
41
  return null;
42
42
  }
43
43
  return createVNode("div", {
44
- "class": [this.ns.b(), this.ns.m(this.modelData.codeName), this.ns.is("loading", this.controller.state.loading), this.modelData.detailStyle && this.ns.m(this.modelData.detailStyle.toLowerCase()), ...this.controller.containerClass]
44
+ "class": [this.ns.b(), this.ns.m(this.modelData.codeName), this.ns.is("loading", this.controller.state.loading), this.ns.is("readonly", this.controller.state.readonly), this.modelData.detailStyle && this.ns.m(this.modelData.detailStyle.toLowerCase()), ...this.controller.containerClass]
45
45
  }, [createVNode(resolveComponent("el-button"), {
46
46
  "sime": "small",
47
47
  "onClick": this.controller.onClick.bind(this.controller),
@@ -30,6 +30,12 @@ class CompositeFormItemExController extends FormItemController {
30
30
  * @memberof CompositeFormItemExController
31
31
  */
32
32
  __publicField(this, "codeListId", "");
33
+ /**
34
+ * @description 是否禁止切换菜单选项
35
+ * @type {boolean}
36
+ * @memberof CompositeFormItemExController
37
+ */
38
+ __publicField(this, "disableSwitch", false);
33
39
  /**
34
40
  * @description 切换菜单选项
35
41
  * @type {{ id: string; name: string; icon?: ISysImage, editor?: IData, valueItem?: string }[]}
@@ -58,7 +64,7 @@ class CompositeFormItemExController extends FormItemController {
58
64
  return (_a = this.data) == null ? void 0 : _a[(option == null ? void 0 : option.valueItem) || this.model.id];
59
65
  }
60
66
  async onInit() {
61
- var _a, _b, _c, _d;
67
+ var _a, _b, _c, _d, _e;
62
68
  await super.onInit();
63
69
  const editor = this.model.editor;
64
70
  if (!editor) {
@@ -94,6 +100,9 @@ class CompositeFormItemExController extends FormItemController {
94
100
  if ((_d = editor.editorParams) == null ? void 0 : _d.includes) {
95
101
  this.includesList = JSON.parse(editor.editorParams.includes);
96
102
  }
103
+ if ((_e = editor.editorParams) == null ? void 0 : _e.disableswitch) {
104
+ this.disableSwitch = editor.editorParams.disableswitch === "true";
105
+ }
97
106
  if (editor.editorItems && editor.editorItems.length) {
98
107
  this.valueItem = editor.editorItems[0];
99
108
  }
@@ -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: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)}
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 .ibiz-composite-form-item-ex-menu.is-disabled{cursor:auto}.ibiz-composite-form-item-ex .ibiz-composite-form-item-ex-menu.is-disabled .ibiz-composite-form-item-ex-menu__icon{display:none}.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)}
@@ -67,12 +67,13 @@ const CompositeFormItemEx = /* @__PURE__ */ defineComponent({
67
67
  const editorSwitchMenu = createVNode(resolveComponent("el-popover"), {
68
68
  "trigger": "click",
69
69
  "popper-class": this.ns2.b("menu-popover"),
70
- "offset": 0
70
+ "offset": 0,
71
+ "disabled": this.c.disableSwitch
71
72
  }, {
72
73
  reference: () => {
73
74
  const option = this.c.switchOptions.find((item) => item.id === this.c.state.editorId);
74
75
  return createVNode("div", {
75
- "class": this.ns2.b("menu")
76
+ "class": [this.ns2.b("menu"), this.ns2.is("disabled", this.c.disableSwitch)]
76
77
  }, [createVNode("div", {
77
78
  "class": this.ns2.be("menu", "text-icon")
78
79
  }, [createVNode(resolveComponent("iBizIcon"), {
@@ -116,7 +116,8 @@ const IBizFormItemContainer = /* @__PURE__ */ defineComponent({
116
116
  });
117
117
  };
118
118
  const renderLabel = () => {
119
- const showTipsIcon = enableInputTip && ibiz.config.form.showTipsIcon;
119
+ const form = props.controller.form;
120
+ const showTipsIcon = enableInputTip && form.showTipsIcon;
120
121
  return createVNode("div", {
121
122
  "class": [ns.e("label"), ...c.labelClass || []]
122
123
  }, [showTipsIcon && createVNode("div", {
@@ -18,6 +18,7 @@ const IBizPickerEmbedView = /* @__PURE__ */ defineComponent({
18
18
  });
19
19
  const cloneParams = computed(() => {
20
20
  return {
21
+ checkstrictly: true,
21
22
  ...params.value
22
23
  };
23
24
  });
@@ -125,10 +126,7 @@ const IBizPickerEmbedView = /* @__PURE__ */ defineComponent({
125
126
  "class": this.ns.b("view")
126
127
  }, [h(viewShell, {
127
128
  context: this.context,
128
- params: {
129
- checkstrictly: true,
130
- ...this.cloneParams
131
- },
129
+ params: this.cloneParams,
132
130
  viewId: this.c.model.pickupAppViewId,
133
131
  state: {
134
132
  singleSelect: this.singleSelect,
@@ -79,12 +79,9 @@ class AIChatUtil {
79
79
  if (editorParams.srfaiagent) {
80
80
  chatOptions.activeAIAgentID = editorParams.srfaiagent;
81
81
  }
82
- const aiAgentlist = await this.getAIAgentList(
83
- context,
84
- params,
85
- editorParams
86
- );
87
- chatOptions.aiAgentlist = aiAgentlist;
82
+ chatOptions.fetchAgentList = () => {
83
+ return this.getAIAgentList(context, params, editorParams);
84
+ };
88
85
  if (deACMode) {
89
86
  const {
90
87
  contentToolbarItems,
@@ -181,7 +178,8 @@ class AIChatUtil {
181
178
  state: msg.actionstate,
182
179
  type: "DEFAULT",
183
180
  role: "ASSISTANT",
184
- content: msg.actionresult
181
+ content: msg.actionresult,
182
+ status: "pending"
185
183
  });
186
184
  } else if (msg.actionstate === 30 && msg.actionresult) {
187
185
  const result = JSON.parse(msg.actionresult);
@@ -193,7 +191,8 @@ class AIChatUtil {
193
191
  type: "DEFAULT",
194
192
  role: "ASSISTANT",
195
193
  content: choices[0].content || "",
196
- realmessageid: choices[0].messageid
194
+ realmessageid: choices[0].messageid,
195
+ status: "sent"
197
196
  });
198
197
  }
199
198
  } else if (msg.actionstate === 40) {
@@ -202,7 +201,8 @@ class AIChatUtil {
202
201
  state: msg.actionstate,
203
202
  type: "ERROR",
204
203
  role: "ASSISTANT",
205
- content: msg.actionresult
204
+ content: msg.actionresult,
205
+ status: "failed"
206
206
  });
207
207
  }
208
208
  },
@@ -217,7 +217,8 @@ class AIChatUtil {
217
217
  state: 40,
218
218
  type: "ERROR",
219
219
  role: "ASSISTANT",
220
- content: error.message || ibiz.i18n.t("app.aiError")
220
+ content: error.message || ibiz.i18n.t("app.aiError"),
221
+ status: "failed"
221
222
  });
222
223
  abortController == null ? void 0 : abortController.abort();
223
224
  } finally {
@@ -247,7 +248,8 @@ class AIChatUtil {
247
248
  state: 30,
248
249
  type: "DEFAULT",
249
250
  role: "ASSISTANT",
250
- content: ""
251
+ content: "",
252
+ status: "canceled"
251
253
  });
252
254
  await aiChat.completeMessage(id, true);
253
255
  };
@@ -296,18 +298,32 @@ class AIChatUtil {
296
298
  }
297
299
  };
298
300
  chatOptions.extendToolbarClick = async (event, source, context2, params2, data2) => {
299
- var _a, _b;
301
+ var _a, _b, _c;
302
+ const { id: id2, isPluginApp } = source;
303
+ let appId = source.appId;
304
+ const tempContext = IBizContext.create(context2);
305
+ if (isPluginApp) {
306
+ const mainApp = ibiz.hub.getApp();
307
+ const targetApp = (_a = mainApp.model.subAppRefs) == null ? void 0 : _a.find(
308
+ (subAppRef) => subAppRef.appId.endsWith("__".concat(appId))
309
+ );
310
+ if (targetApp) {
311
+ const targetAppId = targetApp.appId;
312
+ tempContext.srfappid = targetAppId;
313
+ appId = targetAppId;
314
+ }
315
+ }
300
316
  const result = await UIActionUtil.exec(
301
- source.id,
317
+ id2,
302
318
  {
303
319
  view,
304
320
  ctrl,
305
- context: IBizContext.create(context2),
321
+ context: tempContext,
306
322
  params: params2,
307
323
  data: [data2],
308
324
  event
309
325
  },
310
- source.appId
326
+ appId
311
327
  );
312
328
  if (result.closeView) {
313
329
  view.closeView({ ok: true });
@@ -317,10 +333,10 @@ class AIChatUtil {
317
333
  view.callUIAction(SysUIActionTag.REFRESH);
318
334
  break;
319
335
  case 2:
320
- (_a = view.parentView) == null ? void 0 : _a.callUIAction(SysUIActionTag.REFRESH);
336
+ (_b = view.parentView) == null ? void 0 : _b.callUIAction(SysUIActionTag.REFRESH);
321
337
  break;
322
338
  case 3:
323
- (_b = view.getTopView()) == null ? void 0 : _b.callUIAction(SysUIActionTag.REFRESH);
339
+ (_c = view.getTopView()) == null ? void 0 : _c.callUIAction(SysUIActionTag.REFRESH);
324
340
  break;
325
341
  default:
326
342
  }
@@ -443,8 +459,9 @@ class AIChatUtil {
443
459
  delete params.srfenableaiagentchange;
444
460
  }
445
461
  chatOptions.enableAIAgentChange = enableAIAgentChange;
446
- const aiAgentlist = await this.getAIAgentList(context, params);
447
- chatOptions.aiAgentlist = aiAgentlist;
462
+ chatOptions.fetchAgentList = () => {
463
+ return this.getAIAgentList(context, params);
464
+ };
448
465
  if (deACMode) {
449
466
  const {
450
467
  contentToolbarItems,
@@ -539,7 +556,8 @@ class AIChatUtil {
539
556
  state: msg.actionstate,
540
557
  type: "DEFAULT",
541
558
  role: "ASSISTANT",
542
- content: msg.actionresult
559
+ content: msg.actionresult,
560
+ status: "pending"
543
561
  });
544
562
  } else if (msg.actionstate === 30 && msg.actionresult) {
545
563
  const result = JSON.parse(msg.actionresult);
@@ -551,7 +569,8 @@ class AIChatUtil {
551
569
  type: "DEFAULT",
552
570
  role: "ASSISTANT",
553
571
  content: choices[0].content || "",
554
- realmessageid: choices[0].messageid
572
+ realmessageid: choices[0].messageid,
573
+ status: "sent"
555
574
  });
556
575
  }
557
576
  } else if (msg.actionstate === 40) {
@@ -560,7 +579,8 @@ class AIChatUtil {
560
579
  state: msg.actionstate,
561
580
  type: "ERROR",
562
581
  role: "ASSISTANT",
563
- content: msg.actionresult
582
+ content: msg.actionresult,
583
+ status: "failed"
564
584
  });
565
585
  }
566
586
  },
@@ -575,7 +595,8 @@ class AIChatUtil {
575
595
  state: 40,
576
596
  type: "ERROR",
577
597
  role: "ASSISTANT",
578
- content: error.message || ibiz.i18n.t("app.aiError")
598
+ content: error.message || ibiz.i18n.t("app.aiError"),
599
+ status: "failed"
579
600
  });
580
601
  abortController == null ? void 0 : abortController.abort();
581
602
  } finally {
@@ -605,7 +626,8 @@ class AIChatUtil {
605
626
  state: 30,
606
627
  type: "DEFAULT",
607
628
  role: "ASSISTANT",
608
- content: ""
629
+ content: "",
630
+ status: "canceled"
609
631
  });
610
632
  await aiChat.completeMessage(id, true);
611
633
  };
@@ -654,18 +676,32 @@ class AIChatUtil {
654
676
  }
655
677
  };
656
678
  chatOptions.extendToolbarClick = async (event, source, context2, params2, data2) => {
657
- var _a, _b;
679
+ var _a, _b, _c;
680
+ const { id: id2, isPluginApp } = source;
681
+ let appId = source.appId;
682
+ const tempContext = IBizContext.create(context2);
683
+ if (isPluginApp) {
684
+ const mainApp = ibiz.hub.getApp();
685
+ const targetApp = (_a = mainApp.model.subAppRefs) == null ? void 0 : _a.find(
686
+ (subAppRef) => subAppRef.appId.endsWith("__".concat(appId))
687
+ );
688
+ if (targetApp) {
689
+ const targetAppId = targetApp.appId;
690
+ tempContext.srfappid = targetAppId;
691
+ appId = targetAppId;
692
+ }
693
+ }
658
694
  const result = await UIActionUtil.exec(
659
- source.id,
695
+ id2,
660
696
  {
661
697
  view,
662
698
  ctrl,
663
- context: IBizContext.create(context2),
699
+ context: tempContext,
664
700
  params: params2,
665
701
  data: [data2],
666
702
  event
667
703
  },
668
- source.appId
704
+ appId
669
705
  );
670
706
  if (result.closeView) {
671
707
  view.closeView({ ok: true });
@@ -675,10 +711,10 @@ class AIChatUtil {
675
711
  view.callUIAction(SysUIActionTag.REFRESH);
676
712
  break;
677
713
  case 2:
678
- (_a = view.parentView) == null ? void 0 : _a.callUIAction(SysUIActionTag.REFRESH);
714
+ (_b = view.parentView) == null ? void 0 : _b.callUIAction(SysUIActionTag.REFRESH);
679
715
  break;
680
716
  case 3:
681
- (_b = view.getTopView()) == null ? void 0 : _b.callUIAction(SysUIActionTag.REFRESH);
717
+ (_c = view.getTopView()) == null ? void 0 : _c.callUIAction(SysUIActionTag.REFRESH);
682
718
  break;
683
719
  default:
684
720
  }
@@ -1,6 +1,6 @@
1
1
  import { createApp } from 'vue';
2
2
  import ElementPlus from 'element-plus';
3
- import { defaultNamespace } from '../../node_modules/.pnpm/@ibiz-template_core@0.7.41-alpha.52_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs';
3
+ import { defaultNamespace } from '../../node_modules/.pnpm/@ibiz-template_core@0.7.41-alpha.53_axios@1.12.2_lodash-es@4.17.21_qs@6.14.0_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs';
4
4
  import { IBizFullscreenToolbar } from '../../common/fullscreen-toolbar/fullscreen-toolbar.mjs';
5
5
 
6
6
  "use strict";
@@ -1,7 +1,7 @@
1
1
  import qs from 'qs';
2
2
  import { notNilEmpty } from 'qx-util';
3
3
  import { useUIStore } from '@ibiz-template/vue3-util';
4
- import { onMounted, onUnmounted, ref, computed, watch, nextTick } from 'vue';
4
+ import { onMounted, onUnmounted, ref, watch, nextTick } from 'vue';
5
5
  import { calcResPath } from '@ibiz-template/runtime';
6
6
  import { RegenerateIcon, insertTextIcon, ReplaceTextIcon, CopyTextIcon, CancelIcon } from './icon.mjs';
7
7
 
@@ -24,9 +24,9 @@ const computedInLineAIParams = (props) => {
24
24
  inlinecompletionmode: (_g = (_f = params.inlinecompletionmode) != null ? _f : editorParams.inlinecompletionmode) != null ? _g : "async"
25
25
  };
26
26
  };
27
- const useInLineAIContainerClick = (props, message, isLoading, abortController) => {
27
+ const useInLineAIContainerClick = (props, opts) => {
28
+ const { message, isLoading, stopAsk } = opts;
28
29
  const handMousedown = async (evt) => {
29
- var _a;
30
30
  const target = evt.target;
31
31
  if (!target.closest(".ibiz-inline-ai-textarea-container") && !target.closest(".ibiz-inline-ai-alert")) {
32
32
  const isChange = props.content !== message.value.content;
@@ -40,12 +40,8 @@ const useInLineAIContainerClick = (props, message, isLoading, abortController) =
40
40
  }
41
41
  });
42
42
  }
43
- if (isClose) {
44
- if (isLoading.value) {
45
- (_a = abortController.value) == null ? void 0 : _a.abort();
46
- }
47
- props.unMountAIChat();
48
- }
43
+ if (isClose)
44
+ await stopAsk();
49
45
  }
50
46
  };
51
47
  onMounted(() => {
@@ -93,7 +89,6 @@ const useAI = (props, opts) => {
93
89
  );
94
90
  }
95
91
  };
96
- const abortController = ref();
97
92
  const attachUrlParam = (url) => {
98
93
  {
99
94
  const urlSplit = url.split("?");
@@ -172,6 +167,8 @@ const useAI = (props, opts) => {
172
167
  }
173
168
  return { think, content, toolcalls };
174
169
  };
170
+ let asyncacitonid;
171
+ const abortController = ref();
175
172
  const asyncAskAI = (question, callBack, errorBack) => {
176
173
  return new Promise((resolve) => {
177
174
  abortController.value = new AbortController();
@@ -187,6 +184,8 @@ const useAI = (props, opts) => {
187
184
  if (e.data) {
188
185
  const msg = JSON.parse(e.data);
189
186
  let content = msg.actionresult || "";
187
+ if (msg.actionstate === 20)
188
+ asyncacitonid = msg.asyncacitonid;
190
189
  if (msg.actionstate === 30 && content)
191
190
  content = (_a = JSON.parse(content).choices) == null ? void 0 : _a[0].content;
192
191
  callBack({ state: msg.actionstate, content });
@@ -233,12 +232,28 @@ const useAI = (props, opts) => {
233
232
  return answer;
234
233
  }
235
234
  };
235
+ const stopAsk = async () => {
236
+ var _a;
237
+ (_a = abortController.value) == null ? void 0 : _a.abort();
238
+ if (asyncacitonid) {
239
+ const deService = await app.deService.getService(
240
+ context,
241
+ deACMode.appDataEntityId
242
+ );
243
+ await deService.aiChatCancel(context, params, {
244
+ asyncacitonid,
245
+ sessionid
246
+ });
247
+ asyncacitonid = void 0;
248
+ }
249
+ props.unMountAIChat();
250
+ };
236
251
  return {
252
+ stopAsk,
237
253
  syncAskAI,
238
254
  asyncAskAI,
239
255
  parseContent,
240
- loadAiHistory,
241
- abortController
256
+ loadAiHistory
242
257
  };
243
258
  };
244
259
  const useBase = (props, element, message) => {
@@ -295,11 +310,8 @@ const useBase = (props, element, message) => {
295
310
  height: options.height ? "".concat(options.height, "px") : "auto",
296
311
  "max-height": "".concat(options.maxHeight || (options.height && options.height > 300 ? options.height : 300), "px")
297
312
  });
298
- const toolcalls = computed(() => {
299
- return message.value.toolcalls || [];
300
- });
301
313
  watch(
302
- () => [toolcalls.value.length, message.value.think, message.value.content],
314
+ () => message.value,
303
315
  () => {
304
316
  nextTick(() => {
305
317
  if (!textareaRef.value)
@@ -310,6 +322,7 @@ const useBase = (props, element, message) => {
310
322
  });
311
323
  },
312
324
  {
325
+ deep: true,
313
326
  immediate: true
314
327
  }
315
328
  );
@@ -96,22 +96,21 @@ const InlineAITextArea = /* @__PURE__ */ defineComponent({
96
96
  textareaRef
97
97
  }, message);
98
98
  const {
99
+ stopAsk,
99
100
  syncAskAI,
100
101
  asyncAskAI,
101
102
  parseContent,
102
- loadAiHistory,
103
- abortController
103
+ loadAiHistory
104
104
  } = useAI(props, {
105
105
  srfmode,
106
106
  srfaiagent,
107
107
  srfaiappendcurdata
108
108
  });
109
- useInLineAIContainerClick(props, message, isLoading, abortController);
110
- const stopQuestionAndClose = () => {
111
- var _a;
112
- (_a = abortController.value) == null ? void 0 : _a.abort();
113
- props.unMountAIChat();
114
- };
109
+ useInLineAIContainerClick(props, {
110
+ message,
111
+ isLoading,
112
+ stopAsk
113
+ });
115
114
  const handleAnswer = (answer) => {
116
115
  switch (answer.state) {
117
116
  case 20:
@@ -253,12 +252,12 @@ const InlineAITextArea = /* @__PURE__ */ defineComponent({
253
252
  containerRef,
254
253
  contentStyle,
255
254
  containerStyle,
255
+ stopAsk,
256
256
  onKeydown,
257
257
  renderError,
258
258
  sendQuestion,
259
259
  handleAction,
260
- renderLoading,
261
- stopQuestionAndClose
260
+ renderLoading
262
261
  };
263
262
  },
264
263
  render() {
@@ -296,7 +295,7 @@ const InlineAITextArea = /* @__PURE__ */ defineComponent({
296
295
  "class": this.ns.em("content", "suffix")
297
296
  }, [this.isLoading && createVNode("div", {
298
297
  "class": this.ns.em("content", "stop-icon"),
299
- "onClick": () => this.stopQuestionAndClose()
298
+ "onClick": () => this.stopAsk()
300
299
  }, [StopIcon, createVNode("span", null, [ibiz.i18n.t("util.inlineAiUtil.stopEdit")])]), !this.disabled && createVNode("div", {
301
300
  "class": this.ns.em("content", "sand-icon"),
302
301
  "onClick": () => this.sendQuestion(this.message.content)