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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/ibiz-markdown-editor-CUzKkFER.js +1 -0
  2. package/dist/{index-CaWTEUU1.js → index-DgqTP4Vw.js} +1 -1
  3. package/dist/{index-CD2XM6M6.js → index-Dr0VM8iS.js} +1 -1
  4. package/dist/index-DtEaU3-5.js +11 -0
  5. package/dist/index.min.css +1 -1
  6. package/dist/index.system.min.js +1 -1
  7. package/dist/wang-editor-CRWSwyXY.js +1 -0
  8. package/dist/{xlsx-util-B1eGfH7d.js → xlsx-util-CMJON8Uq.js} +1 -1
  9. package/es/control/grid/grid-column/grid-field-column/attachment-column/attachment-column.mjs +2 -1
  10. package/es/control/grid/grid-column/grid-field-column/attachment-column/file-util.mjs +22 -11
  11. package/es/control/toolbar/export-excel/export-excel.mjs +19 -4
  12. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.mjs +5 -2
  13. package/es/editor/code/monaco-editor/monaco-editor.mjs +8 -194
  14. package/es/editor/html/wang-editor/module/ai-module.mjs +1 -1
  15. package/es/editor/html/wang-editor/wang-editor.mjs +35 -207
  16. package/es/editor/markdown/ibiz-markdown-editor/custom-menu.mjs +11 -222
  17. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  18. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +23 -12
  19. package/es/editor/text-box/input/input.mjs +11 -197
  20. package/es/editor/text-box/signature/signature.mjs +28 -15
  21. package/es/editor/upload/upload-editor.controller.mjs +12 -1
  22. package/es/editor/upload/use/use-iview-upload.mjs +28 -13
  23. package/es/locale/en/index.mjs +29 -2
  24. package/es/locale/zh-CN/index.mjs +29 -2
  25. package/es/panel-component/coop-pos/coop-pos.controller.mjs +11 -1
  26. package/es/panel-component/panel-app-title/panel-app-title.controller.mjs +3 -1
  27. package/es/panel-component/panel-app-title/panel-app-title.mjs +22 -43
  28. package/es/util/ai-chat-util/ai-chat-util.mjs +672 -7
  29. package/es/util/ai-chat-util/ai-feedback/ai-feedback.css +1 -0
  30. package/es/util/ai-chat-util/ai-feedback/ai-feedback.mjs +130 -0
  31. package/es/util/app-util/app-util.mjs +26 -247
  32. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-think/ai-think.css +1 -0
  33. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-think/ai-think.mjs +56 -0
  34. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call/ai-tool-call.css +1 -0
  35. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call/ai-tool-call.mjs +52 -0
  36. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call-item/ai-tool-call-item.css +1 -0
  37. package/es/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call-item/ai-tool-call-item.mjs +143 -0
  38. package/es/util/inline-ai-util/inline-ai-textarea/common/index.mjs +4 -0
  39. package/es/util/inline-ai-util/inline-ai-textarea/icon.mjs +52 -1
  40. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.css +1 -1
  41. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.mjs +34 -4
  42. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.mjs +32 -25
  43. package/es/util/inline-ai-util/inline-ai-textarea/interface.mjs +1 -0
  44. package/lib/control/grid/grid-column/grid-field-column/attachment-column/attachment-column.cjs +2 -1
  45. package/lib/control/grid/grid-column/grid-field-column/attachment-column/file-util.cjs +22 -11
  46. package/lib/control/toolbar/export-excel/export-excel.cjs +18 -3
  47. package/lib/editor/carousel/ibiz-carousel/ibiz-carousel.cjs +5 -2
  48. package/lib/editor/code/monaco-editor/monaco-editor.cjs +8 -194
  49. package/lib/editor/html/wang-editor/module/ai-module.cjs +1 -1
  50. package/lib/editor/html/wang-editor/wang-editor.cjs +34 -206
  51. package/lib/editor/markdown/ibiz-markdown-editor/custom-menu.cjs +11 -222
  52. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +23 -12
  53. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  54. package/lib/editor/text-box/input/input.cjs +10 -196
  55. package/lib/editor/text-box/signature/signature.cjs +28 -15
  56. package/lib/editor/upload/upload-editor.controller.cjs +12 -1
  57. package/lib/editor/upload/use/use-iview-upload.cjs +28 -13
  58. package/lib/locale/en/index.cjs +29 -2
  59. package/lib/locale/zh-CN/index.cjs +29 -2
  60. package/lib/panel-component/coop-pos/coop-pos.controller.cjs +11 -1
  61. package/lib/panel-component/panel-app-title/panel-app-title.cjs +21 -42
  62. package/lib/panel-component/panel-app-title/panel-app-title.controller.cjs +3 -1
  63. package/lib/util/ai-chat-util/ai-chat-util.cjs +670 -5
  64. package/lib/util/ai-chat-util/ai-feedback/ai-feedback.cjs +132 -0
  65. package/lib/util/ai-chat-util/ai-feedback/ai-feedback.css +1 -0
  66. package/lib/util/app-util/app-util.cjs +25 -246
  67. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-think/ai-think.cjs +58 -0
  68. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-think/ai-think.css +1 -0
  69. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call/ai-tool-call.cjs +54 -0
  70. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call/ai-tool-call.css +1 -0
  71. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call-item/ai-tool-call-item.cjs +145 -0
  72. package/lib/util/inline-ai-util/inline-ai-textarea/common/ai-tool-call-item/ai-tool-call-item.css +1 -0
  73. package/lib/util/inline-ai-util/inline-ai-textarea/common/index.cjs +9 -0
  74. package/lib/util/inline-ai-util/inline-ai-textarea/icon.cjs +54 -0
  75. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.cjs +31 -24
  76. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.css +1 -1
  77. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.cjs +34 -4
  78. package/lib/util/inline-ai-util/inline-ai-textarea/interface.cjs +3 -0
  79. package/package.json +7 -7
  80. package/dist/ibiz-markdown-editor-pEdb_gS_.js +0 -1
  81. package/dist/index-BObZTN7-.js +0 -11
  82. package/dist/wang-editor-Ck-JCWqK.js +0 -1
@@ -0,0 +1,143 @@
1
+ import { defineComponent, createVNode, ref, onMounted } from 'vue';
2
+ import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import { ErrorIcon, CopyIcon, DownIcon, RightIcon } from '../../icon.mjs';
4
+ import './ai-tool-call-item.css';
5
+
6
+ "use strict";
7
+ const AIToolCallItem = /* @__PURE__ */ defineComponent({
8
+ props: {
9
+ toolCall: {
10
+ type: Object,
11
+ required: true
12
+ }
13
+ },
14
+ setup(props) {
15
+ const ns = useNamespace("ai-tool-call-item");
16
+ const isExpanded = ref(false);
17
+ const handleExpandChange = () => {
18
+ isExpanded.value = !isExpanded.value;
19
+ };
20
+ const onCopy = (event) => {
21
+ event.stopPropagation();
22
+ ibiz.util.text.copy(JSON.stringify(props.toolCall, void 0, 2));
23
+ ibiz.message.success(ibiz.i18n.t("util.inlineAiUtil.copy"));
24
+ };
25
+ const formatValue = (value) => {
26
+ if (typeof value === "string") {
27
+ if (value.includes("Failed") || value.includes("Error") || value.includes("ERR_")) {
28
+ return '<span class="'.concat(ns.e("error"), '">"').concat(value, '"</span>');
29
+ }
30
+ return '<span class="'.concat(ns.e("string"), '">"').concat(value, '"</span>');
31
+ }
32
+ if (typeof value === "number") {
33
+ return '<span class="'.concat(ns.e("number"), '">').concat(value, "</span>");
34
+ }
35
+ if (typeof value === "boolean") {
36
+ return '<span class="'.concat(ns.e("boolean"), '">').concat(value, "</span>");
37
+ }
38
+ if (value === null) {
39
+ return '<span class="'.concat(ns.e("null"), '">null</span>');
40
+ }
41
+ return "";
42
+ };
43
+ const formatJSON = (data, indentLevel = 0) => {
44
+ const indent = " ".repeat(indentLevel);
45
+ const lines2 = [];
46
+ if (Array.isArray(data)) {
47
+ if (data.length === 0) {
48
+ return ["".concat(indent, '<span class="').concat(ns.e("array"), '">[]</span>')];
49
+ }
50
+ lines2.push("".concat(indent, '<span class="').concat(ns.e("array"), '">[</span>'));
51
+ data.forEach((item, index) => {
52
+ const itemLines = formatJSON(item, indentLevel + 1);
53
+ const comma = index < data.length - 1 ? "," : "";
54
+ if (typeof item === "object" && item !== null) {
55
+ lines2.push(...itemLines.slice(0, -1));
56
+ lines2.push("".concat(itemLines[itemLines.length - 1]).concat(comma));
57
+ } else {
58
+ lines2.push("".concat(itemLines[0]).concat(comma));
59
+ }
60
+ });
61
+ lines2.push("".concat(indent, '<span class="').concat(ns.e("array"), '">]</span>'));
62
+ } else if (typeof data === "object" && data !== null) {
63
+ const keys = Object.keys(data);
64
+ if (keys.length === 0) {
65
+ return ["".concat(indent, '<span class="').concat(ns.e("property"), '">{}</span>')];
66
+ }
67
+ lines2.push("".concat(indent, '<span class="').concat(ns.e("property"), '">{</span>'));
68
+ keys.forEach((key, index) => {
69
+ const value = data[key];
70
+ const comma = index < keys.length - 1 ? "," : "";
71
+ const keyElement = '<span class="'.concat(ns.e("json-key"), '">"').concat(key, '":</span>');
72
+ if (typeof value === "object" && value !== null) {
73
+ const valueLines = formatJSON(value, indentLevel + 1);
74
+ lines2.push("".concat(indent, " ").concat(keyElement, " ").concat(valueLines[0].trim()));
75
+ if (valueLines.length > 1) {
76
+ lines2.push(...valueLines.slice(1, -1));
77
+ lines2.push("".concat(valueLines[valueLines.length - 1]).concat(comma));
78
+ }
79
+ } else {
80
+ const valueElement = formatValue(value);
81
+ lines2.push("".concat(indent, " ").concat(keyElement, " ").concat(valueElement).concat(comma));
82
+ }
83
+ });
84
+ lines2.push("".concat(indent, '<span class="').concat(ns.e("property"), '">}</span>'));
85
+ } else {
86
+ lines2.push("".concat(indent).concat(formatValue(data)));
87
+ }
88
+ return lines2;
89
+ };
90
+ const lines = ref([]);
91
+ const onInit = () => {
92
+ const items = formatJSON(props.toolCall, 0);
93
+ lines.value = items.map((item, index) => '<span class="'.concat(ns.em("code-line", "line-number"), '">').concat(index + 1, "</span>").concat(item));
94
+ };
95
+ onMounted(() => {
96
+ onInit();
97
+ });
98
+ return {
99
+ ns,
100
+ lines,
101
+ isExpanded,
102
+ onCopy,
103
+ handleExpandChange
104
+ };
105
+ },
106
+ render() {
107
+ var _a;
108
+ return createVNode("div", {
109
+ "class": this.ns.b()
110
+ }, [createVNode("div", {
111
+ "class": this.ns.e("header"),
112
+ "onClick": this.handleExpandChange
113
+ }, [createVNode("div", {
114
+ "class": this.ns.e("header-left")
115
+ }, [createVNode("div", {
116
+ "class": this.ns.em("header-left", "caption")
117
+ }, [this.toolCall.name]), createVNode("div", {
118
+ "class": this.ns.em("header-left", "desc")
119
+ }, [(_a = this.toolCall.parameters) == null ? void 0 : _a.desc])]), createVNode("div", {
120
+ "class": this.ns.e("header-right")
121
+ }, [this.toolCall.error && createVNode("div", {
122
+ "class": this.ns.em("header-right", "error")
123
+ }, [createVNode("span", {
124
+ "class": this.ns.em("header-right", "error-text")
125
+ }, [ibiz.i18n.t("util.inlineAiUtil.error")]), createVNode("div", {
126
+ "class": this.ns.em("header-right", "icon")
127
+ }, [ErrorIcon])]), createVNode("div", {
128
+ "onClick": this.onCopy,
129
+ "class": this.ns.em("header-right", "icon")
130
+ }, [CopyIcon]), createVNode("div", {
131
+ "class": this.ns.em("header-right", "icon")
132
+ }, [this.isExpanded ? DownIcon : RightIcon])])]), this.isExpanded && createVNode("div", {
133
+ "class": this.ns.e("content")
134
+ }, [this.lines.map((line) => {
135
+ return createVNode("div", {
136
+ "class": this.ns.e("code-line"),
137
+ "innerHTML": line
138
+ }, null);
139
+ })])]);
140
+ }
141
+ });
142
+
143
+ export { AIToolCallItem };
@@ -0,0 +1,4 @@
1
+ export { AIThink } from './ai-think/ai-think.mjs';
2
+ export { AIToolCall } from './ai-tool-call/ai-tool-call.mjs';
3
+
4
+ "use strict";
@@ -212,5 +212,56 @@ const DownIcon = createVNode("svg", {
212
212
  "id": "abf\u5F62\u72B6\u7ED3\u5408",
213
213
  "transform": "rotate(-90 7.978 8.252)"
214
214
  }, null)])]);
215
+ const RightIcon = createVNode("svg", {
216
+ "viewBox": "0 0 1024 1024",
217
+ "version": "1.1",
218
+ "xmlns": "http://www.w3.org/2000/svg",
219
+ "p-id": "4832",
220
+ "width": "16",
221
+ "height": "16",
222
+ "fill": "currentColor"
223
+ }, [createVNode("path", {
224
+ "d": "M707.61856 495.14624l-357.5296-357.5296c-9.30816-9.30688-24.40064-9.30688-33.70752 0-9.30816 9.30816-9.30816 24.40064 0 33.7088L657.056 512 316.38144 852.67456c-9.30816 9.30688-9.30816 24.40064 0 33.7088 4.65408 4.65536 10.75328 6.98112 16.85376 6.98112 6.10048 0 12.19968-2.32576 16.85376-6.98112l357.5296-357.5296C716.92672 519.5456 716.92672 504.4544 707.61856 495.14624z",
225
+ "p-id": "4833"
226
+ }, null)]);
227
+ const ErrorIcon = createVNode("svg", {
228
+ "xmlns": "http://www.w3.org/2000/svg",
229
+ "width": "16",
230
+ "height": "16",
231
+ "viewBox": "0 0 24 24",
232
+ "fill": "none",
233
+ "stroke": "red",
234
+ "stroke-width": "2",
235
+ "stroke-linecap": "round",
236
+ "stroke-linejoin": "round",
237
+ "aria-hidden": "true"
238
+ }, [createVNode("path", {
239
+ "d": "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"
240
+ }, null), createVNode("path", {
241
+ "d": "M12 9v4"
242
+ }, null), createVNode("path", {
243
+ "d": "M12 17h.01"
244
+ }, null)]);
245
+ const CopyIcon = createVNode("svg", {
246
+ "xmlns": "http://www.w3.org/2000/svg",
247
+ "width": "16",
248
+ "height": "16",
249
+ "viewBox": "0 0 24 24",
250
+ "fill": "none",
251
+ "stroke": "currentColor",
252
+ "stroke-width": "2",
253
+ "stroke-linecap": "round",
254
+ "stroke-linejoin": "round",
255
+ "aria-hidden": "true"
256
+ }, [createVNode("rect", {
257
+ "width": "14",
258
+ "height": "14",
259
+ "x": "8",
260
+ "y": "8",
261
+ "rx": "2",
262
+ "ry": "2"
263
+ }, null), createVNode("path", {
264
+ "d": "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"
265
+ }, null)]);
215
266
 
216
- export { AIIcon, CancelIcon, CopyTextIcon, DownIcon, LoadingIcon, RegenerateIcon, ReplaceTextIcon, SendIcon, StopIcon, ThinkSuccessIcon, UpIcon, insertTextIcon };
267
+ export { AIIcon, CancelIcon, CopyIcon, CopyTextIcon, DownIcon, ErrorIcon, LoadingIcon, RegenerateIcon, ReplaceTextIcon, RightIcon, SendIcon, StopIcon, ThinkSuccessIcon, UpIcon, insertTextIcon };
@@ -1 +1 @@
1
- .ibiz-inline-ai-container-context-menu{--ibiz-inline-ai-context-menu-color-bg:var(--ibiz-color-bg-2);--ibiz-inline-ai-context-menu-color-text:var(--ibiz-color-text-0);--ibiz-inline-ai-context-menu-color-bg-active:var(--ibiz-color-fill-0);--mx-menu-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-backgroud:var(--ibiz-inline-ai-context-menu-color-bg);--mx-menu-hover-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-hover-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-open-hover-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-hover-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-active-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-active-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-backgroud-radius:0}.ibiz-inline-ai-container-context-menu .scroll-content{pointer-events:unset}.ibiz-inline-ai-container-context-menu .mx-context-menu-item{cursor:pointer}.ibiz-inline-ai-textarea-container{--ibiz-inline-ai-textarea-container-color-bg-0:rgb(255, 255, 255);--ibiz-inline-ai-textarea-container-color-bg-1:rgb(249, 249, 249);--ibiz-inline-ai-textarea-container-color-border:rgba(29, 31, 35, 0.1);--ibiz-inline-ai-textarea-container-color-text-0:rgb(29, 31, 35);--ibiz-inline-ai-textarea-container-color-text-1:rgba(0, 0, 0, 0.45);--ibiz-inline-ai-textarea-container-color-text-2:rgb(85, 125, 165);--ibiz-inline-ai-textarea-container-color-text-hove-1:rgb(105, 148, 190);--ibiz-inline-ai-textarea-container-color-bg-hover-1:rgb(217, 236, 255);--ibiz-inline-ai-textarea-container-color-bg-hover-2:rgba(46, 50, 55, 0.05);--ibiz-inline-ai-textarea-container-color-loading:#65b3fc}.ibiz-inline-ai-textarea-container--dark{--ibiz-inline-ai-textarea-container-color-bg-0:rgb(28, 28, 28);--ibiz-inline-ai-textarea-container-color-bg-1:rgb(53, 54, 60);--ibiz-inline-ai-textarea-container-color-border:rgba(255, 255, 255, 0.08);--ibiz-inline-ai-textarea-container-color-text-0:rgb(255, 255, 255);--ibiz-inline-ai-textarea-container-color-text-1:rgba(249, 249, 249, 0.35);--ibiz-inline-ai-textarea-container-color-text-2:rgb(70, 107, 144);--ibiz-inline-ai-textarea-container-color-text-hove-1:rgb(105, 148, 190);--ibiz-inline-ai-textarea-container-color-bg-hover-1:rgba(85, 125, 165, 0.2);--ibiz-inline-ai-textarea-container-color-bg-hover-2:rgb(67, 68, 74);--ibiz-inline-ai-textarea-container-color-loading:rgba(204, 204, 204, 0.6)}.ibiz-inline-ai-textarea-container{position:absolute;color:var(--ibiz-inline-ai-textarea-container-color-text-0);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ibiz-inline-ai-textarea-container .ibiz-inline-ai-textarea-container__content{border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container.is-show-ai{border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container.is-show-ai .ibiz-inline-ai-textarea-container__content{border:none;border-radius:var(--ibiz-border-radius-small) var(--ibiz-border-radius-small) 0 0;box-shadow:none}.ibiz-inline-ai-textarea-container.is-show-ai .ibiz-inline-ai-textarea-container__footer{border-radius:0 0 var(--ibiz-border-radius-small) var(--ibiz-border-radius-small)}.ibiz-inline-ai-textarea-container__content{position:relative;display:flex;gap:var(--ibiz-spacing-tight);padding:var(--ibiz-spacing-base-tight);background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0)}.ibiz-inline-ai-textarea-container__content--prefix{flex-shrink:0;color:var(--ibiz-inline-ai-textarea-container-color-text-1)}.ibiz-inline-ai-textarea-container__content--textarea{position:relative;display:flex;flex-direction:column;flex-grow:1;gap:var(--ibiz-spacing-tight);overflow-y:auto}.ibiz-inline-ai-textarea-container__content--textarea textarea{flex-shrink:0;padding:0;overflow:hidden;color:var(--ibiz-inline-ai-textarea-container-color-text-0);resize:none;background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0);border:none;outline:0;transition:height .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}.ibiz-inline-ai-textarea-container__content--textarea textarea:disabled{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0)}.ibiz-inline-ai-textarea-container__content--textarea textarea.is-hidden{display:none}.ibiz-inline-ai-textarea-container__content--suffix{display:flex;flex-direction:column-reverse;flex-shrink:0}.ibiz-inline-ai-textarea-container__content--sand-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--ibiz-inline-ai-textarea-container-color-text-2);cursor:pointer;border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-inline-ai-textarea-container__content--sand-icon:hover{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-hover-1)}.ibiz-inline-ai-textarea-container__content--stop-icon{display:flex;gap:var(--ibiz-spacing-extra-tight);align-items:center;font-size:var(--ibiz-font-size-small);color:var(--ibiz-inline-ai-textarea-container-color-text-1);cursor:pointer}.ibiz-inline-ai-textarea-container__content--stop-icon:hover{color:var(--ibiz-inline-ai-textarea-container-color-text-hove-1)}.ibiz-inline-ai-textarea-container__footer{padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-small);color:var(--ibiz-inline-ai-textarea-container-color-text-1);background-color:var(--ibiz-inline-ai-textarea-container-color-bg-1);border-top:1px solid var(--ibiz-inline-ai-textarea-container-color-border)}.ibiz-inline-ai-textarea-container__actions{position:absolute;width:240px;padding:var(--ibiz-spacing-base-tight) 0;font-size:var(--ibiz-font-size-regular);background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0);border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container__actions--action{display:flex;gap:var(--ibiz-spacing-tight);align-items:center;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-loose);cursor:pointer}.ibiz-inline-ai-textarea-container__actions--action:hover{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-hover-2)}.ibiz-inline-ai-textarea-container__actions--action.is-danger:hover{color:var(--ibiz-color-danger)}.ibiz-inline-ai-textarea-container__actions--divider{margin:var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-base-loose);border-top:1px solid var(--ibiz-inline-ai-textarea-container-color-border)}.ibiz-inline-ai-textarea-container__error{flex-grow:1;color:var(--ibiz-color-danger)}.ibiz-inline-ai-textarea-container__think{flex-shrink:0;width:100%;height:auto;font-size:var(--ibiz-font-size-small);color:var(--ibiz-inline-ai-textarea-container-color-text-1)}.ibiz-inline-ai-textarea-container__think--header{display:flex;gap:var(--ibiz-spacing-extra-tight);align-items:center;margin-bottom:var(--ibiz-spacing-tight);cursor:pointer}.ibiz-inline-ai-textarea-container__think--header:hover{color:var(--ibiz-inline-ai-textarea-container-color-text-hove-1)}.ibiz-inline-ai-textarea-container__think--state-icon{display:flex;align-items:center;color:var(--ibiz-color-success)}.ibiz-inline-ai-textarea-container__think--state-icon.is-loading{color:var(--ibiz-inline-ai-textarea-container-color-loading)}.ibiz-inline-ai-textarea-container__think--collapse-icon{display:flex;align-items:center}.ibiz-inline-ai-textarea-container__think--content{position:relative;padding-left:var(--ibiz-spacing-tight);word-wrap:break-word;white-space:pre-wrap;transition:height .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}.ibiz-inline-ai-textarea-container__think--content::before{position:absolute;top:0;bottom:0;left:0;width:2px;content:"";background-color:var(--ibiz-inline-ai-textarea-container-color-border)}.ibiz-inline-ai-textarea-container__loading{position:absolute;top:0;left:0;display:flex;gap:8px;align-items:center;width:100%;height:100%;overflow:hidden}@keyframes bounce{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.ibiz-inline-ai-textarea-container__loading--dot{width:12px;height:12px;background:var(--ibiz-inline-ai-textarea-container-color-loading);border-radius:50%;animation:bounce 1.5s infinite ease-in-out}.ibiz-inline-ai-textarea-container__loading--dot:nth-child(2){animation-delay:.2s}.ibiz-inline-ai-textarea-container__loading--dot:nth-child(3){animation-delay:.4s}
1
+ .ibiz-inline-ai-container-context-menu{--ibiz-inline-ai-context-menu-color-bg:var(--ibiz-color-bg-2);--ibiz-inline-ai-context-menu-color-text:var(--ibiz-color-text-0);--ibiz-inline-ai-context-menu-color-bg-active:var(--ibiz-color-fill-0);--mx-menu-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-backgroud:var(--ibiz-inline-ai-context-menu-color-bg);--mx-menu-hover-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-hover-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-open-hover-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-hover-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-active-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-active-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-backgroud-radius:0}.ibiz-inline-ai-container-context-menu .scroll-content{pointer-events:unset}.ibiz-inline-ai-container-context-menu .mx-context-menu-item{cursor:pointer}.ibiz-inline-ai-textarea-container{--ibiz-inline-ai-textarea-container-color-bg-0:rgb(255, 255, 255);--ibiz-inline-ai-textarea-container-color-bg-1:rgb(249, 249, 249);--ibiz-inline-ai-textarea-container-color-border:rgba(29, 31, 35, 0.1);--ibiz-inline-ai-textarea-container-color-text-0:rgb(29, 31, 35);--ibiz-inline-ai-textarea-container-color-text-1:rgba(0, 0, 0, 0.45);--ibiz-inline-ai-textarea-container-color-text-2:rgb(85, 125, 165);--ibiz-inline-ai-textarea-container-color-text-hove-1:rgb(105, 148, 190);--ibiz-inline-ai-textarea-container-color-bg-hover-1:rgb(217, 236, 255);--ibiz-inline-ai-textarea-container-color-bg-hover-2:rgba(46, 50, 55, 0.05);--ibiz-inline-ai-textarea-container-color-loading:#65b3fc}.ibiz-inline-ai-textarea-container--dark{--ibiz-inline-ai-textarea-container-color-bg-0:rgb(28, 28, 28);--ibiz-inline-ai-textarea-container-color-bg-1:rgb(53, 54, 60);--ibiz-inline-ai-textarea-container-color-border:rgba(255, 255, 255, 0.08);--ibiz-inline-ai-textarea-container-color-text-0:rgb(255, 255, 255);--ibiz-inline-ai-textarea-container-color-text-1:rgba(249, 249, 249, 0.35);--ibiz-inline-ai-textarea-container-color-text-2:rgb(70, 107, 144);--ibiz-inline-ai-textarea-container-color-text-hove-1:rgb(105, 148, 190);--ibiz-inline-ai-textarea-container-color-bg-hover-1:rgba(85, 125, 165, 0.2);--ibiz-inline-ai-textarea-container-color-bg-hover-2:rgb(67, 68, 74);--ibiz-inline-ai-textarea-container-color-loading:rgba(204, 204, 204, 0.6)}.ibiz-inline-ai-textarea-container{position:absolute;color:var(--ibiz-inline-ai-textarea-container-color-text-0);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ibiz-inline-ai-textarea-container .ibiz-inline-ai-textarea-container__content{border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container.is-show-ai{border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container.is-show-ai .ibiz-inline-ai-textarea-container__content{border:none;border-radius:var(--ibiz-border-radius-small) var(--ibiz-border-radius-small) 0 0;box-shadow:none}.ibiz-inline-ai-textarea-container.is-show-ai .ibiz-inline-ai-textarea-container__footer{border-radius:0 0 var(--ibiz-border-radius-small) var(--ibiz-border-radius-small)}.ibiz-inline-ai-textarea-container__content{position:relative;display:flex;gap:var(--ibiz-spacing-tight);padding:var(--ibiz-spacing-base-tight);background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0)}.ibiz-inline-ai-textarea-container__content--prefix{flex-shrink:0;color:var(--ibiz-inline-ai-textarea-container-color-text-1)}.ibiz-inline-ai-textarea-container__content--textarea{position:relative;display:flex;flex-direction:column;flex-grow:1;overflow-y:auto}.ibiz-inline-ai-textarea-container__content--textarea textarea{flex-shrink:0;padding:0;overflow:hidden;color:var(--ibiz-inline-ai-textarea-container-color-text-0);resize:none;background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0);border:none;outline:0;transition:height .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}.ibiz-inline-ai-textarea-container__content--textarea textarea:disabled{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0)}.ibiz-inline-ai-textarea-container__content--textarea textarea.is-hidden{display:none}.ibiz-inline-ai-textarea-container__content--suffix{display:flex;flex-direction:column-reverse;flex-shrink:0}.ibiz-inline-ai-textarea-container__content--sand-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--ibiz-inline-ai-textarea-container-color-text-2);cursor:pointer;border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-inline-ai-textarea-container__content--sand-icon:hover{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-hover-1)}.ibiz-inline-ai-textarea-container__content--stop-icon{display:flex;gap:var(--ibiz-spacing-extra-tight);align-items:center;font-size:var(--ibiz-font-size-small);color:var(--ibiz-inline-ai-textarea-container-color-text-1);cursor:pointer}.ibiz-inline-ai-textarea-container__content--stop-icon:hover{color:var(--ibiz-inline-ai-textarea-container-color-text-hove-1)}.ibiz-inline-ai-textarea-container__footer{padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-small);color:var(--ibiz-inline-ai-textarea-container-color-text-1);background-color:var(--ibiz-inline-ai-textarea-container-color-bg-1);border-top:1px solid var(--ibiz-inline-ai-textarea-container-color-border)}.ibiz-inline-ai-textarea-container__actions{position:absolute;width:240px;padding:var(--ibiz-spacing-base-tight) 0;font-size:var(--ibiz-font-size-regular);background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0);border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container__actions--action{display:flex;gap:var(--ibiz-spacing-tight);align-items:center;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-loose);cursor:pointer}.ibiz-inline-ai-textarea-container__actions--action:hover{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-hover-2)}.ibiz-inline-ai-textarea-container__actions--action.is-danger:hover{color:var(--ibiz-color-danger)}.ibiz-inline-ai-textarea-container__actions--divider{margin:var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-base-loose);border-top:1px solid var(--ibiz-inline-ai-textarea-container-color-border)}.ibiz-inline-ai-textarea-container__error{flex-grow:1;color:var(--ibiz-color-danger)}.ibiz-inline-ai-textarea-container__think{flex-shrink:0;margin-bottom:var(--ibiz-spacing-tight)}.ibiz-inline-ai-textarea-container__tool-call{flex-shrink:0;margin-bottom:var(--ibiz-spacing-tight)}.ibiz-inline-ai-textarea-container__loading{position:absolute;top:0;left:0;display:flex;gap:8px;align-items:center;width:100%;height:100%;overflow:hidden}@keyframes bounce{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.ibiz-inline-ai-textarea-container__loading--dot{width:12px;height:12px;background:var(--ibiz-inline-ai-textarea-container-color-loading);border-radius:50%;animation:bounce 1.5s infinite ease-in-out}.ibiz-inline-ai-textarea-container__loading--dot:nth-child(2){animation-delay:.2s}.ibiz-inline-ai-textarea-container__loading--dot:nth-child(3){animation-delay:.4s}
@@ -58,6 +58,7 @@ const useAI = (props, opts) => {
58
58
  const { context, data, deACMode } = props;
59
59
  const { srfaiappendcurdata, srfmode, srfaiagent } = opts;
60
60
  const params = { srfactag: deACMode.codeName };
61
+ const sessionid = ibiz.aiChatUtil.getChatSessionId("INLINE");
61
62
  const app = ibiz.hub.getApp(deACMode.appId);
62
63
  let history = [];
63
64
  let appDataEntity;
@@ -75,7 +76,9 @@ const useAI = (props, opts) => {
75
76
  deACMode.appId
76
77
  );
77
78
  const path = calcAIPath(true);
78
- const body = {};
79
+ const body = {
80
+ sessionid
81
+ };
79
82
  if (srfaiappendcurdata)
80
83
  Object.assign(body, data);
81
84
  if (srfmode)
@@ -112,6 +115,7 @@ const useAI = (props, opts) => {
112
115
  };
113
116
  const prepareData = (question, isAsync = false) => {
114
117
  const body = {
118
+ sessionid,
115
119
  messages: [
116
120
  ...history,
117
121
  {
@@ -132,17 +136,40 @@ const useAI = (props, opts) => {
132
136
  const parseContent = (text) => {
133
137
  let think;
134
138
  let content;
139
+ const toolcalls = [];
135
140
  if (!text)
136
- return { think, content };
141
+ return { think, content, toolcalls };
137
142
  const openThinkIndex = text.indexOf("<think>");
138
143
  const closeThinkIndex = text.indexOf("</think>");
139
144
  if (openThinkIndex !== -1) {
140
145
  think = closeThinkIndex === -1 ? text.slice(openThinkIndex + 7) : text.slice(openThinkIndex + 7, closeThinkIndex);
141
146
  content = closeThinkIndex === -1 ? void 0 : text.slice(closeThinkIndex + 8);
142
147
  } else {
143
- content = text;
148
+ const toolCallRegex = new RegExp(
149
+ "<tool_call>\\s*({[\\s\\S]*?})\\s*</tool_call>",
150
+ "g"
151
+ );
152
+ const matches = text.matchAll(toolCallRegex);
153
+ for (const match of matches) {
154
+ try {
155
+ const toolCallData = JSON.parse(match[1]);
156
+ const tempToolCall = {
157
+ name: toolCallData.name,
158
+ parameters: toolCallData.parameters,
159
+ error: toolCallData.error || false
160
+ };
161
+ if (toolCallData.result)
162
+ Object.assign(tempToolCall, {
163
+ result: toolCallData.result
164
+ });
165
+ toolcalls.push(tempToolCall);
166
+ } catch (e) {
167
+ console.error("\u89E3\u6790\u5DE5\u5177\u8C03\u7528\u5931\u8D25:", e);
168
+ }
169
+ }
170
+ content = text.replace(new RegExp("\\<tool_call\\>[^]*?\\<\\/tool_call\\>", "gs"), "").trim();
144
171
  }
145
- return { think, content };
172
+ return { think, content, toolcalls };
146
173
  };
147
174
  const asyncAskAI = (question, callBack, errorBack) => {
148
175
  return new Promise((resolve) => {
@@ -276,6 +303,9 @@ const useBase = (props, element, message) => {
276
303
  textareaRef.value.style.height = "auto";
277
304
  textareaRef.value.style.height = "".concat(textareaRef.value.scrollHeight, "px");
278
305
  });
306
+ },
307
+ {
308
+ immediate: true
279
309
  }
280
310
  );
281
311
  const updatePosition = () => {
@@ -1,8 +1,11 @@
1
1
  import { defineComponent, createVNode, withDirectives, vModelText, ref, computed, onMounted } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { computedInLineAIParams, useBase, useAI, useInLineAIContainerClick } from './inline-ai-textarea.hook.mjs';
4
- import { AIIcon, StopIcon, SendIcon, LoadingIcon, ThinkSuccessIcon, DownIcon, UpIcon } from './icon.mjs';
4
+ import { AIIcon, StopIcon, SendIcon } from './icon.mjs';
5
+ import './common/index.mjs';
5
6
  import './inline-ai-textarea.css';
7
+ import { AIToolCall } from './common/ai-tool-call/ai-tool-call.mjs';
8
+ import { AIThink } from './common/ai-think/ai-think.mjs';
6
9
 
7
10
  "use strict";
8
11
  const InlineAITextArea = /* @__PURE__ */ defineComponent({
@@ -59,6 +62,7 @@ const InlineAITextArea = /* @__PURE__ */ defineComponent({
59
62
  const textareaRef = ref();
60
63
  const message = ref({
61
64
  role: "USER",
65
+ toolcalls: [],
62
66
  error: void 0,
63
67
  think: void 0,
64
68
  content: props.content
@@ -116,14 +120,22 @@ const InlineAITextArea = /* @__PURE__ */ defineComponent({
116
120
  break;
117
121
  case 30:
118
122
  answerContent = answer.content;
119
- Object.assign(message.value, parseContent(answerContent));
123
+ const {
124
+ think,
125
+ content
126
+ } = parseContent(answerContent);
127
+ Object.assign(message.value, {
128
+ think,
129
+ content
130
+ });
120
131
  break;
121
132
  case 40:
122
133
  isCollapse.value = true;
123
134
  Object.assign(message.value, {
124
- error: answer.content,
135
+ toolcalls: [],
125
136
  think: void 0,
126
- content: void 0
137
+ content: void 0,
138
+ error: answer.content
127
139
  });
128
140
  break;
129
141
  default:
@@ -142,6 +154,7 @@ const InlineAITextArea = /* @__PURE__ */ defineComponent({
142
154
  question = content;
143
155
  answerContent = void 0;
144
156
  Object.assign(message.value, {
157
+ toolcalls: [],
145
158
  error: void 0,
146
159
  think: void 0,
147
160
  content: void 0
@@ -168,9 +181,6 @@ const InlineAITextArea = /* @__PURE__ */ defineComponent({
168
181
  sendQuestion(message.value.content);
169
182
  }
170
183
  };
171
- const onCollapseChange = () => {
172
- isCollapse.value = !isCollapse.value;
173
- };
174
184
  const handleAction = (_e, actionName) => {
175
185
  const content = message.value.content;
176
186
  switch (actionName) {
@@ -219,26 +229,11 @@ const InlineAITextArea = /* @__PURE__ */ defineComponent({
219
229
  "class": ns.em("loading", "dot")
220
230
  }, null)]);
221
231
  };
222
- const renderContent = () => {
232
+ const renderError = () => {
223
233
  if (message.value.error)
224
234
  return createVNode("div", {
225
235
  "class": ns.e("error")
226
236
  }, [message.value.error]);
227
- if (message.value.think)
228
- return createVNode("div", {
229
- "class": ns.e("think")
230
- }, [createVNode("div", {
231
- "class": ns.em("think", "header"),
232
- "onClick": onCollapseChange
233
- }, [createVNode("div", {
234
- "class": [ns.em("think", "state-icon"), ns.is("loading", isLoading.value)]
235
- }, [isLoading.value ? LoadingIcon : ThinkSuccessIcon]), createVNode("div", {
236
- "class": ns.em("think", "title")
237
- }, [isLoading.value ? ibiz.i18n.t("util.inlineAiUtil.thinking") : ibiz.i18n.t("util.inlineAiUtil.thinked")]), createVNode("div", {
238
- "class": ns.em("think", "collapse-icon")
239
- }, [isCollapse.value ? DownIcon : UpIcon])]), !isCollapse.value && createVNode("div", {
240
- "class": ns.em("think", "content")
241
- }, [message.value.think])]);
242
237
  };
243
238
  return {
244
239
  ns,
@@ -248,6 +243,7 @@ const InlineAITextArea = /* @__PURE__ */ defineComponent({
248
243
  message,
249
244
  disabled,
250
245
  isLoading,
246
+ isCollapse,
251
247
  actionsRef,
252
248
  textareaRef,
253
249
  actionStyle,
@@ -255,10 +251,10 @@ const InlineAITextArea = /* @__PURE__ */ defineComponent({
255
251
  contentStyle,
256
252
  containerStyle,
257
253
  onKeydown,
254
+ renderError,
258
255
  sendQuestion,
259
256
  handleAction,
260
257
  renderLoading,
261
- renderContent,
262
258
  stopQuestionAndClose
263
259
  };
264
260
  },
@@ -276,7 +272,18 @@ const InlineAITextArea = /* @__PURE__ */ defineComponent({
276
272
  "class": this.ns.em("content", "ai-icon")
277
273
  }, [AIIcon])]), createVNode("div", {
278
274
  "class": this.ns.em("content", "textarea")
279
- }, [this.renderLoading(), this.renderContent(), withDirectives(createVNode("textarea", {
275
+ }, [this.renderLoading(), createVNode(AIToolCall, {
276
+ "class": this.ns.e("tool-call"),
277
+ "toolCalls": this.message.toolcalls
278
+ }, null), createVNode(AIThink, {
279
+ "class": this.ns.e("think"),
280
+ "think": this.message.think,
281
+ "isLoading": this.isLoading,
282
+ "isCollapse": this.isCollapse,
283
+ "onCollapseChange": (val) => {
284
+ this.isCollapse = val;
285
+ }
286
+ }, null), this.renderError(), withDirectives(createVNode("textarea", {
280
287
  "ref": "textareaRef",
281
288
  "disabled": this.disabled,
282
289
  "onKeydown": this.onKeydown,
@@ -0,0 +1 @@
1
+ "use strict";
@@ -27,6 +27,7 @@ const AttachmentColumn = /* @__PURE__ */ vue.defineComponent({
27
27
  const {
28
28
  getDownloadUrl,
29
29
  files,
30
+ enableNoAccess,
30
31
  onDownload,
31
32
  getDownloadTicketParams
32
33
  } = fileUtil.useFilesParse(props, props.controller);
@@ -57,7 +58,7 @@ const AttachmentColumn = /* @__PURE__ */ vue.defineComponent({
57
58
  const handlePDFPreview = async (file) => {
58
59
  const downloadUrl = getDownloadUrl(props.data, file);
59
60
  let url = file.url || downloadUrl.replace("%fileId%", file.id);
60
- if (ibiz.config.common.enableDownloadTicket) {
61
+ if (ibiz.config.common.enableDownloadTicket && !enableNoAccess) {
61
62
  const downloadTicket = await ibiz.util.file.getDownloadTicket(props.controller.context, props.controller.params, props.data, {
62
63
  fileId: file.id
63
64
  }, getDownloadTicketParams());
@@ -22,9 +22,12 @@ const getFileType = (extension) => {
22
22
  }
23
23
  };
24
24
  function useFilesParse(props, c) {
25
+ var _a, _b;
25
26
  const files = vue.ref([]);
26
27
  const uploadUrl = vue.ref("");
27
28
  const svgBlob = /* @__PURE__ */ new Map();
29
+ const enableNoAccess = ((_a = c.model.userParam) == null ? void 0 : _a.enablenoaccess) === "true";
30
+ const osscat = (_b = c.model.userParam) == null ? void 0 : _b.osscat;
28
31
  const getDownloadTicketParams = () => {
29
32
  const downloadTicketParams = {};
30
33
  if (!c.model.userParam) {
@@ -80,7 +83,7 @@ function useFilesParse(props, c) {
80
83
  }
81
84
  };
82
85
  const getDownloadUrl = (data, file) => {
83
- const editorParams = {};
86
+ const editorParams = { osscat, enableNoAccess };
84
87
  if (file && file.folder) {
85
88
  editorParams.osscat = file.folder;
86
89
  }
@@ -95,14 +98,20 @@ function useFilesParse(props, c) {
95
98
  const onDownload = (file) => {
96
99
  const downloadUrl = getDownloadUrl(props.data, file);
97
100
  const url = file.url || downloadUrl.replace("%fileId%", file.id);
98
- ibiz.util.file.fileDownload(url, file.name, {
99
- context: c.context,
100
- params: c.params,
101
- data: props.data,
102
- file: { fileId: file.id, ...file },
103
- extraParams: {},
104
- downloadTicketParams: getDownloadTicketParams()
105
- });
101
+ ibiz.util.file.fileDownload(
102
+ url,
103
+ file.name,
104
+ {
105
+ context: c.context,
106
+ params: c.params,
107
+ data: props.data,
108
+ file: { fileId: file.id, ...file },
109
+ extraParams: { osscat, enableNoAccess },
110
+ downloadTicketParams: getDownloadTicketParams()
111
+ },
112
+ void 0,
113
+ enableNoAccess
114
+ );
106
115
  };
107
116
  vue.watch(
108
117
  () => props.value,
@@ -115,11 +124,12 @@ function useFilesParse(props, c) {
115
124
  () => props.data,
116
125
  (newVal) => {
117
126
  if (newVal) {
127
+ const editorParams = { osscat, enableNoAccess };
118
128
  const urls = ibiz.util.file.calcFileUpDownUrl(
119
129
  c.context,
120
130
  c.params,
121
131
  newVal,
122
- {}
132
+ editorParams
123
133
  );
124
134
  uploadUrl.value = urls.uploadUrl;
125
135
  }
@@ -135,7 +145,7 @@ function useFilesParse(props, c) {
135
145
  Object.assign(file, {
136
146
  url: file.url || downloadUrl.replace("%fileId%", file.id)
137
147
  });
138
- if (ibiz.config.common.enableDownloadTicket) {
148
+ if (ibiz.config.common.enableDownloadTicket && !enableNoAccess) {
139
149
  ibiz.util.file.getDownloadTicket(
140
150
  c.context,
141
151
  c.params,
@@ -166,6 +176,7 @@ function useFilesParse(props, c) {
166
176
  return {
167
177
  files,
168
178
  uploadUrl,
179
+ enableNoAccess,
169
180
  onDownload,
170
181
  getDownloadUrl,
171
182
  getDownloadTicketParams
@@ -31,7 +31,8 @@ const IBizExportExcel = /* @__PURE__ */ vue.defineComponent({
31
31
  required: true
32
32
  },
33
33
  controller: {
34
- type: Object
34
+ type: Object,
35
+ required: true
35
36
  }
36
37
  },
37
38
  emits: ["exportExcel"],
@@ -41,6 +42,15 @@ const IBizExportExcel = /* @__PURE__ */ vue.defineComponent({
41
42
  const ns = vue3Util.useNamespace("export-excel");
42
43
  const startPage = vue.ref(1);
43
44
  const endPage = vue.ref(9999);
45
+ const maxRowCount = vue.ref(1e3);
46
+ const xdataControl = props.controller.xdataControl;
47
+ vue.onMounted(() => {
48
+ if (xdataControl)
49
+ xdataControl.evt.on("onMounted", () => {
50
+ var _a;
51
+ maxRowCount.value = ((_a = xdataControl.dataExport) == null ? void 0 : _a.maxRowCount) || 1e3;
52
+ });
53
+ });
44
54
  const onCommand = (command, e) => {
45
55
  if (!command) {
46
56
  return;
@@ -53,6 +63,7 @@ const IBizExportExcel = /* @__PURE__ */ vue.defineComponent({
53
63
  };
54
64
  return {
55
65
  ns,
66
+ maxRowCount,
56
67
  endPage,
57
68
  startPage,
58
69
  onCommand
@@ -80,7 +91,9 @@ const IBizExportExcel = /* @__PURE__ */ vue.defineComponent({
80
91
  return [vue.createVNode(vue.resolveComponent("el-menu-item"), {
81
92
  "class": this.ns.b("menu-item"),
82
93
  "onClick": (e) => this.onCommand("maxRowCount", e)
83
- }, _isSlot(_slot2 = ibiz.i18n.t("control.toolbar.exportExcel.exportAll")) ? _slot2 : {
94
+ }, _isSlot(_slot2 = ibiz.i18n.t("control.toolbar.exportExcel.exportAll", {
95
+ maxRowCount: this.maxRowCount
96
+ })) ? _slot2 : {
84
97
  default: () => [_slot2]
85
98
  }), vue.createVNode(vue.resolveComponent("el-menu-item"), {
86
99
  "class": this.ns.b("menu-item"),
@@ -156,7 +169,9 @@ const IBizExportExcel = /* @__PURE__ */ vue.defineComponent({
156
169
  return vue.createVNode(vue.resolveComponent("el-dropdown-menu"), null, {
157
170
  default: () => [vue.createVNode(vue.resolveComponent("el-dropdown-item"), {
158
171
  "command": "maxRowCount"
159
- }, _isSlot(_slot7 = ibiz.i18n.t("control.toolbar.exportExcel.exportAll")) ? _slot7 : {
172
+ }, _isSlot(_slot7 = ibiz.i18n.t("control.toolbar.exportExcel.exportAll", {
173
+ maxRowCount: this.maxRowCount
174
+ })) ? _slot7 : {
160
175
  default: () => [_slot7]
161
176
  }), vue.createVNode(vue.resolveComponent("el-dropdown-item"), {
162
177
  "command": "activatedPage"
@@ -10,9 +10,11 @@ const IBizCarousel = /* @__PURE__ */ vue.defineComponent({
10
10
  props: vue3Util.getEditorProps(),
11
11
  emits: vue3Util.getEditorEmits(),
12
12
  setup(props) {
13
+ var _a;
13
14
  const ns = vue3Util.useNamespace("carousel");
14
15
  const c = props.controller;
15
16
  const editorModel = c.model;
17
+ const enableNoAccess = ((_a = c == null ? void 0 : c.editorParams) == null ? void 0 : _a.enablenoaccess) === "true";
16
18
  const carouselData = vue.ref([]);
17
19
  const isAuto = vue.ref(true);
18
20
  const timeSpan = vue.ref(3e3);
@@ -25,7 +27,8 @@ const IBizCarousel = /* @__PURE__ */ vue.defineComponent({
25
27
  });
26
28
  const getDownloadUrl = (data, file) => {
27
29
  const editorParams = {
28
- ...c.editorParams
30
+ ...c.editorParams,
31
+ enableNoAccess
29
32
  };
30
33
  if (editorParams.exportparams) {
31
34
  editorParams.exportParams = JSON.parse(editorParams.exportparams);
@@ -41,7 +44,7 @@ const IBizCarousel = /* @__PURE__ */ vue.defineComponent({
41
44
  newVal.forEach((carousel) => {
42
45
  const downloadUrl = getDownloadUrl(props.data, carousel);
43
46
  carousel.imgUrl = carousel.imgUrl || downloadUrl.replace("%fileId%", carousel.id);
44
- if (ibiz.config.common.enableDownloadTicket) {
47
+ if (ibiz.config.common.enableDownloadTicket && !enableNoAccess) {
45
48
  ibiz.util.file.getDownloadTicket(c.context, c.params, props.data, {
46
49
  fileId: carousel.id
47
50
  }, c.downloadTicketParams).then((downloadTicket) => {