@ibiz-template/vue3-components 0.7.41-alpha.96 → 0.7.41-alpha.97

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 (53) hide show
  1. package/dist/index-CTxNNWbw.js +1 -0
  2. package/dist/index-DAM-lgrU.js +1 -0
  3. package/dist/{index-CSWh3Soj.js → index-YyzbGEva.js} +7 -7
  4. package/dist/{index.es-COHR8lWq.js → index.es-Bx7ry_G4.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-DGTnSGqn.js → wang-editor-BnRUlcfv.js} +1 -1
  8. package/dist/{xlsx-util-CzrO72Os.js → xlsx-util-DXx8himL.js} +1 -1
  9. package/es/common/control-navigation/provider/navigation-base.provider.mjs +3 -1
  10. package/es/common/high-light-code/high-light-code-util.mjs +183 -0
  11. package/es/common/high-light-code/high-light-code.css +1 -0
  12. package/es/common/high-light-code/high-light-code.mjs +31 -0
  13. package/es/common/index.mjs +2 -0
  14. package/es/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.css +1 -1
  15. package/es/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.mjs +20 -3
  16. package/es/control/dashboard/portlet/rawitem-portlet/rawitem-portlet.mjs +32 -7
  17. package/es/control/data-view/data-view.mjs +2 -2
  18. package/es/control/form/form-detail/form-rawitem/form-rawitem.mjs +3 -1
  19. package/es/control/list/list.css +1 -1
  20. package/es/control/list/list.mjs +6 -3
  21. package/es/control/search-bar/filter-mode-select/filter-mode-select.mjs +2 -2
  22. package/es/control/search-bar/filter-tree/filter-tree.mjs +2 -2
  23. package/es/editor/code/code-editor.controller.mjs +11 -1
  24. package/es/editor/code/monaco-editor/monaco-editor.css +1 -1
  25. package/es/editor/code/monaco-editor/monaco-editor.mjs +40 -7
  26. package/es/editor/raw/ibiz-raw/ibiz-raw.mjs +3 -1
  27. package/es/locale/en/index.mjs +4 -3
  28. package/es/locale/zh-CN/index.mjs +4 -3
  29. package/es/util/inline-ai-util/inline-ai-util.mjs +17 -1
  30. package/lib/common/control-navigation/provider/navigation-base.provider.cjs +3 -1
  31. package/lib/common/high-light-code/high-light-code-util.cjs +185 -0
  32. package/lib/common/high-light-code/high-light-code.cjs +33 -0
  33. package/lib/common/high-light-code/high-light-code.css +1 -0
  34. package/lib/common/index.cjs +2 -0
  35. package/lib/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.cjs +20 -3
  36. package/lib/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.css +1 -1
  37. package/lib/control/dashboard/portlet/rawitem-portlet/rawitem-portlet.cjs +31 -6
  38. package/lib/control/data-view/data-view.cjs +2 -2
  39. package/lib/control/form/form-detail/form-rawitem/form-rawitem.cjs +3 -1
  40. package/lib/control/list/list.cjs +6 -3
  41. package/lib/control/list/list.css +1 -1
  42. package/lib/control/search-bar/filter-mode-select/filter-mode-select.cjs +2 -2
  43. package/lib/control/search-bar/filter-tree/filter-tree.cjs +2 -2
  44. package/lib/editor/code/code-editor.controller.cjs +11 -1
  45. package/lib/editor/code/monaco-editor/monaco-editor.cjs +40 -7
  46. package/lib/editor/code/monaco-editor/monaco-editor.css +1 -1
  47. package/lib/editor/raw/ibiz-raw/ibiz-raw.cjs +3 -1
  48. package/lib/locale/en/index.cjs +4 -3
  49. package/lib/locale/zh-CN/index.cjs +4 -3
  50. package/lib/util/inline-ai-util/inline-ai-util.cjs +17 -1
  51. package/package.json +5 -5
  52. package/dist/index-ChKlnzfZ.js +0 -1
  53. package/dist/index-DiSn0c6_.js +0 -1
@@ -35,7 +35,7 @@ var index = {
35
35
  fullscreen: "\u5168\u5C4F",
36
36
  cancelFullscreen: "\u53D6\u6D88\u5168\u5C4F",
37
37
  tips: "\u63D0\u793A",
38
- changeLanguage: "\u5207\u6362\u8BED\u8A00\u9700\u8981\u5237\u65B0\u9875\u9762\uFF0C\u786E\u8BA4\u5207\u6362",
38
+ changeLanguage: "\u5207\u6362\u8BED\u8A00\u9700\u8981\u5237\u65B0\u9875\u9762\uFF0C\u786E\u8BA4\u5207\u6362?",
39
39
  piece: "\u4E2A"
40
40
  },
41
41
  // 视图
@@ -500,7 +500,7 @@ var index = {
500
500
  in: "\u503C\u5728\u8303\u56F4\u4E2D(In)",
501
501
  not_in: "\u503C\u4E0D\u5728\u8303\u56F4\u4E2D(NotIn)",
502
502
  like: "\u6587\u672C\u5305\u542B(%)",
503
- lift_like: "\u6587\u672C\u5DE6\u5305\u542B(%#)",
503
+ left_like: "\u6587\u672C\u5DE6\u5305\u542B(%#)",
504
504
  right_like: "\u6587\u672C\u53F3\u5305\u542B(#%)",
505
505
  exists: "\u5B58\u5728(EXISTS)",
506
506
  not_exists: "\u4E0D\u5B58\u5728(NOTEXISTS)"
@@ -652,7 +652,8 @@ var index = {
652
652
  noSelStart: "\u672A\u83B7\u53D6\u5230\u5F53\u524D\u9009\u4E2D\u533A\u57DF\u7684\u8D77\u59CB\u4F4D\u7F6E",
653
653
  noEditorRect: "\u672A\u83B7\u53D6\u5230\u7F16\u8F91\u5668DOM\u8282\u70B9\u7684\u4F4D\u7F6E\u4FE1\u606F",
654
654
  noSelCoords: "\u672A\u8BA1\u7B97\u51FA\u9009\u4E2D\u4F4D\u7F6E\u7684\u6EDA\u52A8\u53EF\u89C6\u5750\u6807",
655
- editorNotInit: "\u7F16\u8F91\u5668\u672A\u521D\u59CB\u5316"
655
+ editorNotInit: "\u7F16\u8F91\u5668\u672A\u521D\u59CB\u5316",
656
+ functionBody: "\u51FD\u6570\u4F53"
656
657
  },
657
658
  dateRange: {
658
659
  rangeSeparator: "\u81F3"
@@ -37,6 +37,12 @@ class InLineAIUtil {
37
37
  if (item.detailType === "DEUIACTION" && ((_a2 = item.uiactionId) == null ? void 0 : _a2.startsWith("inline"))) {
38
38
  if (item.showCaption && item.caption) {
39
39
  menuItem.label = item.caption;
40
+ if (item.capLanguageRes && item.capLanguageRes.lanResTag) {
41
+ menuItem.label = ibiz.i18n.t(
42
+ item.capLanguageRes.lanResTag,
43
+ item.caption
44
+ );
45
+ }
40
46
  }
41
47
  if (item.sysImage && item.showIcon) {
42
48
  menuItem.icon = h("iBizIcon", {
@@ -57,8 +63,18 @@ class InLineAIUtil {
57
63
  var _a3;
58
64
  return detail.detailType === "DEUIACTION" && ((_a3 = detail.uiactionId) == null ? void 0 : _a3.startsWith("inline"));
59
65
  }).map((detail) => {
66
+ let caption;
67
+ if (detail.showCaption) {
68
+ caption = detail.caption;
69
+ if (detail.capLanguageRes && detail.capLanguageRes.lanResTag) {
70
+ caption = ibiz.i18n.t(
71
+ detail.capLanguageRes.lanResTag,
72
+ detail.caption
73
+ );
74
+ }
75
+ }
60
76
  return {
61
- label: detail.showCaption ? detail.caption : void 0,
77
+ label: caption,
62
78
  icon: detail.showIcon && detail.sysImage ? h("iBizIcon", {
63
79
  icon: detail.sysImage
64
80
  }) : void 0,
@@ -108,7 +108,9 @@ class NavgationBaseProvider {
108
108
  */
109
109
  setNavData(data) {
110
110
  this.controller.setNavData(data);
111
- this.controller.setSelection([data]);
111
+ setTimeout(() => {
112
+ this.controller.setSelection([data]);
113
+ }, 0);
112
114
  }
113
115
  /**
114
116
  * 通过栈数据导航
@@ -0,0 +1,185 @@
1
+ 'use strict';
2
+
3
+ "use strict";
4
+ const KEYWORDS = /* @__PURE__ */ new Set([
5
+ "async",
6
+ "function",
7
+ "Function",
8
+ "return",
9
+ "const",
10
+ "let",
11
+ "var",
12
+ "await",
13
+ "new",
14
+ "this",
15
+ "null",
16
+ "undefined",
17
+ "true",
18
+ "false"
19
+ ]);
20
+ function escapeHtml(s) {
21
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
22
+ }
23
+ function normalizeFunctionBody(src) {
24
+ const open = src.lastIndexOf("{");
25
+ if (open === -1)
26
+ return src;
27
+ let depth = 0;
28
+ let close = -1;
29
+ let i = open;
30
+ while (i < src.length) {
31
+ const ch = src[i];
32
+ if (ch === '"' || ch === "'" || ch === "`") {
33
+ const q = ch;
34
+ i++;
35
+ while (i < src.length && src[i] !== q) {
36
+ if (src[i] === "\\")
37
+ i++;
38
+ i++;
39
+ }
40
+ i++;
41
+ continue;
42
+ }
43
+ if (ch === "/" && src[i + 1] === "/") {
44
+ while (i < src.length && src[i] !== "\n")
45
+ i++;
46
+ continue;
47
+ }
48
+ if (ch === "/" && src[i + 1] === "*") {
49
+ i += 2;
50
+ while (i < src.length - 1 && !(src[i] === "*" && src[i + 1] === "/"))
51
+ i++;
52
+ i += 2;
53
+ continue;
54
+ }
55
+ if (ch === "{")
56
+ depth++;
57
+ else if (ch === "}") {
58
+ depth--;
59
+ if (depth === 0) {
60
+ close = i;
61
+ break;
62
+ }
63
+ }
64
+ i++;
65
+ }
66
+ if (close === -1)
67
+ return src;
68
+ const inner = src.slice(open + 1, close);
69
+ if (/\n/.test(inner))
70
+ return src;
71
+ const trimmed = inner.trim();
72
+ const indented = trimmed ? "\n ".concat(trimmed, "\n") : "\n";
73
+ return src.slice(0, open + 1) + indented + src.slice(close);
74
+ }
75
+ const highlight = (src) => {
76
+ src = normalizeFunctionBody(src);
77
+ let result = "";
78
+ let i = 0;
79
+ console.log(src);
80
+ while (i < src.length) {
81
+ if (src[i] === "/" && src[i + 1] === "/") {
82
+ let j = i;
83
+ while (j < src.length && src[j] !== "\n")
84
+ j++;
85
+ result += '<span class="comment">'.concat(escapeHtml(src.slice(i, j)), "</span>");
86
+ i = j;
87
+ continue;
88
+ }
89
+ if (src[i] === "/" && src[i + 1] === "*") {
90
+ let j = i + 2;
91
+ while (j < src.length - 1 && !(src[j] === "*" && src[j + 1] === "/"))
92
+ j++;
93
+ j += 2;
94
+ result += '<span class="comment">'.concat(escapeHtml(src.slice(i, j)), "</span>");
95
+ i = j;
96
+ continue;
97
+ }
98
+ if (src[i] === '"' || src[i] === "'" || src[i] === "`") {
99
+ const quote = src[i];
100
+ let j = i + 1;
101
+ while (j < src.length && src[j] !== quote) {
102
+ if (src[j] === "\\")
103
+ j++;
104
+ j++;
105
+ }
106
+ j++;
107
+ result += '<span class="string">'.concat(escapeHtml(src.slice(i, j)), "</span>");
108
+ i = j;
109
+ continue;
110
+ }
111
+ if (/[0-9]/.test(src[i])) {
112
+ let j = i;
113
+ while (j < src.length && /[0-9._]/.test(src[j]))
114
+ j++;
115
+ result += '<span class="number">'.concat(escapeHtml(src.slice(i, j)), "</span>");
116
+ i = j;
117
+ continue;
118
+ }
119
+ if (/[a-zA-Z_$]/.test(src[i])) {
120
+ let j = i;
121
+ while (j < src.length && /[a-zA-Z0-9_$]/.test(src[j]))
122
+ j++;
123
+ const word = src.slice(i, j);
124
+ let k = j;
125
+ while (k < src.length && src[k] === " ")
126
+ k++;
127
+ const isCall = src[k] === "(";
128
+ let m = j;
129
+ while (m < src.length && src[m] === " ")
130
+ m++;
131
+ const isTyped = src[m] === ":";
132
+ if (KEYWORDS.has(word)) {
133
+ result += '<span class="keyword">'.concat(escapeHtml(word), "</span>");
134
+ } else if (isTyped) {
135
+ result += '<span class="param">'.concat(escapeHtml(word), "</span>");
136
+ } else if (isCall) {
137
+ result += '<span class="fn-call">'.concat(escapeHtml(word), "</span>");
138
+ } else {
139
+ result += '<span class="ident">'.concat(escapeHtml(word), "</span>");
140
+ }
141
+ i = j;
142
+ continue;
143
+ }
144
+ if (src[i] === ":") {
145
+ result += '<span class="punct">:</span>';
146
+ i++;
147
+ let ws = "";
148
+ while (i < src.length && src[i] === " ") {
149
+ ws += src[i];
150
+ i++;
151
+ }
152
+ if (ws)
153
+ result += ws;
154
+ if (i < src.length && /[a-zA-Z_$]/.test(src[i])) {
155
+ let j = i;
156
+ while (j < src.length && /[a-zA-Z0-9_$<>[\]|&]/.test(src[j]))
157
+ j++;
158
+ result += '<span class="type">'.concat(escapeHtml(src.slice(i, j)), "</span>");
159
+ i = j;
160
+ }
161
+ continue;
162
+ }
163
+ if ("(){}[]".includes(src[i])) {
164
+ const cls = "([{".includes(src[i]) ? "bracket-open" : "bracket-close";
165
+ result += '<span class="bracket '.concat(cls, '">').concat(escapeHtml(src[i]), "</span>");
166
+ i++;
167
+ continue;
168
+ }
169
+ if (",;.".includes(src[i])) {
170
+ result += '<span class="punct">'.concat(escapeHtml(src[i]), "</span>");
171
+ i++;
172
+ continue;
173
+ }
174
+ if ("=><+-*/%!&|^~".includes(src[i])) {
175
+ result += '<span class="operator">'.concat(escapeHtml(src[i]), "</span>");
176
+ i++;
177
+ continue;
178
+ }
179
+ result += escapeHtml(src[i]);
180
+ i++;
181
+ }
182
+ return result;
183
+ };
184
+
185
+ exports.highlight = highlight;
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ var highLightCodeUtil = require('./high-light-code-util.cjs');
6
+ require('./high-light-code.css');
7
+
8
+ "use strict";
9
+ const IBizHighLightCode = /* @__PURE__ */ vue.defineComponent({
10
+ name: "IBizHighLightCode",
11
+ props: {
12
+ code: {
13
+ type: String,
14
+ required: true
15
+ }
16
+ },
17
+ setup(props) {
18
+ const ns = vue3Util.useNamespace("high-light-code");
19
+ const highlighted = vue.computed(() => highLightCodeUtil.highlight(props.code));
20
+ return {
21
+ ns,
22
+ highlighted
23
+ };
24
+ },
25
+ render() {
26
+ return vue.createVNode("div", {
27
+ "class": this.ns.b(),
28
+ "innerHTML": this.highlighted
29
+ }, null);
30
+ }
31
+ });
32
+
33
+ exports.IBizHighLightCode = IBizHighLightCode;
@@ -0,0 +1 @@
1
+ .ibiz-high-light-code{color:var(--ibiz-color-text-3);white-space:break-spaces}.ibiz-high-light-code .keyword{color:#7f77dd}.ibiz-high-light-code .type{color:#378add}.ibiz-high-light-code .param{color:#1d9e75}.ibiz-high-light-code .ident{color:#1d9e75}.ibiz-high-light-code .fn-call{color:#d2a8ff}.ibiz-high-light-code .string{color:#639922}.ibiz-high-light-code .number{color:#79c0ff}.ibiz-high-light-code .comment{font-style:italic;color:#8b949e}.ibiz-high-light-code .operator{color:#ff7b72}.ibiz-high-light-code .punct{color:#8b949e}.ibiz-high-light-code .bracket-open{color:#e3b341}.ibiz-high-light-code .bracket-close{color:#e3b341}
@@ -38,6 +38,7 @@ var navSplit = require('./nav-split/nav-split.cjs');
38
38
  var cropping = require('./cropping/cropping.cjs');
39
39
  var editorEmptyText = require('./editor-empty-text/editor-empty-text.cjs');
40
40
  var kanbenSetting = require('./kanben-setting/kanben-setting.cjs');
41
+ var highLightCode = require('./high-light-code/high-light-code.cjs');
41
42
 
42
43
  "use strict";
43
44
  const IBizCommonComponents = {
@@ -96,6 +97,7 @@ const IBizCommonComponents = {
96
97
  v.component(ganttSetting.IBizGanttSetting.name, ganttSetting.IBizGanttSetting);
97
98
  v.component(navSplit.IBizNavSplit.name, navSplit.IBizNavSplit);
98
99
  v.component(vue3Util.IBizSignaturePad.name, vue3Util.IBizSignaturePad);
100
+ v.component(highLightCode.IBizHighLightCode.name, highLightCode.IBizHighLightCode);
99
101
  }
100
102
  };
101
103
 
@@ -50,6 +50,9 @@ const AppMenuPortletControl = /* @__PURE__ */ vue.defineComponent({
50
50
  if (!state.visible) {
51
51
  return null;
52
52
  }
53
+ const {
54
+ counterId
55
+ } = item;
53
56
  return vue.createVNode("div", {
54
57
  "class": [ns.b("item"), ns.is("disabled", !item.appFuncId)],
55
58
  "title": core.showTitle(item.tooltip || item.caption),
@@ -61,7 +64,10 @@ const AppMenuPortletControl = /* @__PURE__ */ vue.defineComponent({
61
64
  }, [vue.createVNode(vue.resolveComponent("iBizIcon"), {
62
65
  "class": ns.be("item", "icon"),
63
66
  "icon": item.sysImage
64
- }, null), vue.createVNode("span", {
67
+ }, null), counterId ? vue.createVNode(vue.resolveComponent("iBizBadge"), {
68
+ "class": ns.e("counter"),
69
+ "value": c.state.counterData[counterId]
70
+ }, null) : null, vue.createVNode("span", {
65
71
  "class": ns.be("item", "label")
66
72
  }, [item.caption])]);
67
73
  };
@@ -73,16 +79,27 @@ const AppMenuPortletControl = /* @__PURE__ */ vue.defineComponent({
73
79
  if (!item.appMenuItems) {
74
80
  return renderItem(item);
75
81
  }
82
+ const {
83
+ counterId
84
+ } = item;
76
85
  return vue.createVNode(vue.resolveComponent("el-collapse-item"), {
77
86
  "class": ns.b("group"),
78
87
  "name": item.id,
79
88
  "title": core.showTitle(item.caption)
80
89
  }, {
90
+ title: () => {
91
+ return [vue.createVNode("span", {
92
+ "class": ns.be("group", "label")
93
+ }, [item.caption]), counterId ? vue.createVNode(vue.resolveComponent("iBizBadge"), {
94
+ "class": ns.e("counter"),
95
+ "value": c.state.counterData[counterId]
96
+ }, null) : null];
97
+ },
81
98
  default: () => {
82
99
  var _a2;
83
- return [(_a2 = item.appMenuItems) == null ? void 0 : _a2.map((child) => {
100
+ return (_a2 = item.appMenuItems) == null ? void 0 : _a2.map((child) => {
84
101
  return renderItem(child);
85
- })];
102
+ });
86
103
  }
87
104
  });
88
105
  };
@@ -1 +1 @@
1
- .ibiz-control-appmenu-portlet{--ibiz-control-appmenu-portlet-margin:var(--ibiz-spacing-base-tight);--ibiz-control-appmenu-portlet-border-color:var(--ibiz-color-primary);--ibiz-control-appmenu-portlet-bg-color:var(--ibiz-color-bg-0);--ibiz-control-appmenu-portlet-padding:var(--ibiz-spacing-base-tight);--ibiz-control-appmenu-portlet-content-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);padding:var(--ibiz-control-appmenu-portlet-content-padding)}.ibiz-control-appmenu-portlet__content{display:flex;flex-wrap:wrap;width:100%}.ibiz-control-appmenu-portlet-item{position:relative;display:flex;flex-direction:column;flex-shrink:0;align-items:flex-start;justify-content:center;width:calc(25% - var(--ibiz-control-appmenu-portlet-margin) * 2);padding:var(--ibiz-control-appmenu-portlet-padding);margin:var(--ibiz-control-appmenu-portlet-margin);cursor:pointer;background-color:var(--ibiz-control-appmenu-portlet-bg-color)}.ibiz-control-appmenu-portlet-item::before{position:absolute;left:0;width:4px;height:100%;content:"";background-color:var(--ibiz-control-appmenu-portlet-border-color)}.ibiz-control-appmenu-portlet-group{width:100%}.ibiz-control-appmenu-portlet-group .el-collapse-item__content{display:flex;flex-wrap:wrap}
1
+ .ibiz-control-appmenu-portlet{--ibiz-control-appmenu-portlet-margin:var(--ibiz-spacing-base-tight);--ibiz-control-appmenu-portlet-border-color:var(--ibiz-color-primary);--ibiz-control-appmenu-portlet-bg-color:var(--ibiz-color-bg-0);--ibiz-control-appmenu-portlet-padding:var(--ibiz-spacing-base-tight);--ibiz-control-appmenu-portlet-content-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-appmenu-portlet-counter-gap:var(--ibiz-spacing-tight);padding:var(--ibiz-control-appmenu-portlet-content-padding)}.ibiz-control-appmenu-portlet__content{display:flex;flex-wrap:wrap;width:100%}.ibiz-control-appmenu-portlet-item{position:relative;display:flex;flex-direction:column;flex-shrink:0;align-items:flex-start;justify-content:center;width:calc(25% - var(--ibiz-control-appmenu-portlet-margin) * 2);padding:var(--ibiz-control-appmenu-portlet-padding);margin:var(--ibiz-control-appmenu-portlet-margin);cursor:pointer;background-color:var(--ibiz-control-appmenu-portlet-bg-color)}.ibiz-control-appmenu-portlet-item::before{position:absolute;left:0;width:4px;height:100%;content:"";background-color:var(--ibiz-control-appmenu-portlet-border-color)}.ibiz-control-appmenu-portlet-item .ibiz-control-appmenu-portlet__counter{position:absolute;top:var(--ibiz-control-appmenu-portlet-counter-gap);right:var(--ibiz-control-appmenu-portlet-counter-gap)}.ibiz-control-appmenu-portlet-group{width:100%}.ibiz-control-appmenu-portlet-group .el-collapse-item__header .ibiz-control-appmenu-portlet__counter{margin-left:var(--ibiz-control-appmenu-portlet-counter-gap)}.ibiz-control-appmenu-portlet-group .el-collapse-item__content{display:flex;flex-wrap:wrap}
@@ -2,7 +2,6 @@
2
2
 
3
3
  var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
- var runtime = require('@ibiz-template/runtime');
6
5
 
7
6
  "use strict";
8
7
  function _isSlot(s) {
@@ -16,17 +15,42 @@ const RawItemPortlet = /* @__PURE__ */ vue.defineComponent({
16
15
  required: true
17
16
  },
18
17
  controller: {
19
- type: runtime.RawItemPortletController,
18
+ type: Object,
20
19
  required: true
21
20
  }
22
21
  },
23
22
  setup(props) {
24
23
  var _a;
25
- const ns = vue3Util.useNamespace("portlet-".concat((_a = props.modelData.portletType) == null ? void 0 : _a.toLowerCase()));
26
- const rawItem = props.modelData;
24
+ const c = props.controller;
25
+ const ns = vue3Util.useNamespace("portlet-".concat((_a = c.model.portletType) == null ? void 0 : _a.toLowerCase()));
26
+ const content = vue.ref();
27
+ const onInit = async () => {
28
+ const rawItemModel = c.model.rawItem;
29
+ if (!rawItemModel)
30
+ return;
31
+ let rawItemContent;
32
+ if (rawItemModel.contentType === "RAW") {
33
+ rawItemContent = rawItemModel.caption;
34
+ } else if (rawItemModel.contentType === "HTML") {
35
+ rawItemContent = rawItemModel.content;
36
+ }
37
+ const data = c.dashboard.view.srfactiveviewdata || {};
38
+ if (rawItemContent && rawItemModel.templateMode)
39
+ rawItemContent = await ibiz.util.hbs.render(rawItemContent.replaceAll("//n", "\n"), {
40
+ data: {
41
+ ...data
42
+ },
43
+ context: props.controller.context,
44
+ params: props.controller.params
45
+ });
46
+ content.value = rawItemContent;
47
+ };
48
+ vue.onMounted(() => {
49
+ onInit();
50
+ });
27
51
  return {
28
52
  ns,
29
- rawItem
53
+ content
30
54
  };
31
55
  },
32
56
  render() {
@@ -36,7 +60,8 @@ const RawItemPortlet = /* @__PURE__ */ vue.defineComponent({
36
60
  "controller": this.controller,
37
61
  "class": classArr
38
62
  }, _isSlot(_slot = vue.h(vue.resolveComponent("iBizRawItem"), {
39
- rawItem: this.rawItem
63
+ rawItem: this.modelData,
64
+ content: this.content
40
65
  })) ? _slot : {
41
66
  default: () => [_slot]
42
67
  });
@@ -526,13 +526,13 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
526
526
  }
527
527
  return icon;
528
528
  };
529
- const ITEM_HEIGHT = 30;
529
+ const ITEM_HEIGHT = 24;
530
530
  const calcSkeletonRows = () => {
531
531
  const {
532
532
  cardHeight
533
533
  } = c.model;
534
534
  if (cardHeight) {
535
- return Math.max(1, Math.floor(cardHeight / ITEM_HEIGHT));
535
+ return Math.max(1, Math.floor((cardHeight - 32 + 4) / ITEM_HEIGHT));
536
536
  }
537
537
  return 2;
538
538
  };
@@ -172,7 +172,9 @@ const FormRawItem = /* @__PURE__ */ vue.defineComponent({
172
172
  rawItemContent = await ibiz.util.hbs.render(rawItemContent.replaceAll("//n", "\n"), Object.assign(obj, {
173
173
  data: {
174
174
  ...newVal
175
- }
175
+ },
176
+ context: c.context,
177
+ params: c.params
176
178
  }));
177
179
  }
178
180
  content.value = rawItemContent;
@@ -532,12 +532,15 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
532
532
  "class": ns.b("skeleton-item")
533
533
  }, [vue.createVNode(vue.resolveComponent("el-skeleton"), {
534
534
  "animated": true,
535
- "rows": 1
535
+ "class": ns.be("skeleton-item", "avatar")
536
536
  }, {
537
537
  template: () => vue.createVNode(vue.resolveComponent("el-skeleton-item"), {
538
- "variant": "rect"
538
+ "variant": "circle"
539
539
  }, null)
540
- })]);
540
+ }), vue.createVNode(vue.resolveComponent("el-skeleton"), {
541
+ "animated": true,
542
+ "rows": 2
543
+ }, null)]);
541
544
  };
542
545
  const renderGroupSkeleton = () => {
543
546
  return vue.createVNode("div", {
@@ -1 +1 @@
1
- .ibiz-control-list-item{flex-grow:1;min-height:var(--ibiz-control-list-item-height);padding:var(--ibiz-control-list-padding);font-weight:var(--ibiz-control-list-font-weight);color:var(--ibiz-control-list-text-color);cursor:pointer;background-color:var(--ibiz-control-list-item-bg-color)}.ibiz-control-list-item__right{padding:0 var(--ibiz-spacing-extra-tight)}.ibiz-control-list-item__right--actions{display:flex;-moz-column-gap:var(--ibiz-spacing-extra-tight);column-gap:var(--ibiz-spacing-extra-tight);justify-content:center}.ibiz-control-list-item__right--actions .ibiz-action-toolbar__item{margin:0}.ibiz-control-list-item__right--actions .ibiz-action-toolbar__item--label.is-has-caption{margin:0}.ibiz-control-list-item:has(.ibiz-control-list-item__right){display:flex;justify-content:space-between}.ibiz-control-list-item:has(.ibiz-control-list-item__right) .ibiz-control-list-item__caption{flex:1}.ibiz-control-list-item__new{display:flex;align-items:center;justify-content:center;margin-top:var(--ibiz-spacing-tight);color:var(--ibiz-color-text-3);border:2px dashed var(--ibiz-color-border)}.ibiz-control-list{--ibiz-control-list-text-color:var(--ibiz-color-text-0);--ibiz-control-list-load-more-color:var(--ibiz-color-text-2);--ibiz-control-list-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-list-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-list-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-list-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-tight);--ibiz-control-list-item-bg-color:unset;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:flex-start;position:relative;height:100%}.ibiz-control-list__drag-icon{cursor:move;visibility:hidden}.ibiz-control-list__nav-icon{position:absolute;top:18px;right:10px;color:var(--ibiz-color-primary);cursor:pointer}.ibiz-control-list__load-more{text-align:center}.ibiz-control-list__load-more i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-control-list-load-more-color);cursor:pointer}.ibiz-control-list__load-more i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-list__collapse-expand-icon{width:calc(100% - var(--ibiz-spacing-base-tight));text-align:center}.ibiz-control-list__collapse-expand-icon i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-list__collapse-expand-icon i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-list__load-more-button{padding:var(--ibiz-control-list-padding);text-align:center}.ibiz-control-list__quicktoolbar{display:flex;justify-content:center;width:100%}.ibiz-control-list__batchtoolbar{display:none;margin:var(--ibiz-spacing-tight) 0}.ibiz-control-list__batchtoolbar.is-show{display:block}.ibiz-control-list .ibiz-control-list-content{flex-grow:1}.ibiz-control-list-content.is-show-underLine .ibiz-control-list-scroll-item{border-bottom:1px solid var(--ibiz-color-border)}.ibiz-control-list-content .ibiz-row-detail:last-of-type .ibiz-control-list-scroll-item{border-bottom:none}.ibiz-control-list-scroll{height:100%;overflow:auto}.ibiz-control-list-scroll.is-reverse-scroll .ibiz-control-list__layout-flex{display:flex;flex-direction:column-reverse}.ibiz-control-list-group-content__item-header{display:flex;align-items:center;justify-content:space-between;width:100%}.ibiz-control-list-scroll-item{display:flex;align-items:center}.ibiz-control-list-scroll-item__checkbox{flex-shrink:0;margin-left:var(--ibiz-spacing-tight)}.ibiz-control-list-scroll-item__icon{flex-shrink:0;margin-left:var(--ibiz-spacing-tight);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-list-scroll-item:hover{background-color:var(--ibiz-control-list-hover-bg-color)}.ibiz-control-list-scroll-item:hover .ibiz-control-list__drag-icon{visibility:visible}.ibiz-control-list-scroll-item.is-active{background-color:var(--ibiz-control-list-active-bg-color)}.ibiz-control-list-group-style2{--ibiz-control-list-group-style2-color:var(--ibiz-color-disabled-text)}.ibiz-control-list-group-style2__header{display:flex;align-items:center;justify-content:center;width:100%}.ibiz-control-list-group-style2__header--title{padding:0 var(--ibiz-spacing-tight);font-size:var(--ibiz-font-size-regular);color:var(--ibiz-control-list-group-style2-color)}.ibiz-control-list-group-style2__header::after,.ibiz-control-list-group-style2__header::before{display:block;flex:1;height:1px;margin-top:1px;content:"";border-top:1px var(--ibiz-color-border) solid;transform:translateY(-50%)}.ibiz-control-list-skeleton-item{padding-bottom:var(--ibiz-spacing-tight)}.ibiz-control-list-skeleton-group__header{margin-bottom:var(--ibiz-spacing-base)}.ibiz-control-list-skeleton-group-style2__header{display:flex;justify-content:center}
1
+ .ibiz-control-list-item{flex-grow:1;min-height:var(--ibiz-control-list-item-height);padding:var(--ibiz-control-list-padding);font-weight:var(--ibiz-control-list-font-weight);color:var(--ibiz-control-list-text-color);cursor:pointer;background-color:var(--ibiz-control-list-item-bg-color)}.ibiz-control-list-item__right{padding:0 var(--ibiz-spacing-extra-tight)}.ibiz-control-list-item__right--actions{display:flex;-moz-column-gap:var(--ibiz-spacing-extra-tight);column-gap:var(--ibiz-spacing-extra-tight);justify-content:center}.ibiz-control-list-item__right--actions .ibiz-action-toolbar__item{margin:0}.ibiz-control-list-item__right--actions .ibiz-action-toolbar__item--label.is-has-caption{margin:0}.ibiz-control-list-item:has(.ibiz-control-list-item__right){display:flex;justify-content:space-between}.ibiz-control-list-item:has(.ibiz-control-list-item__right) .ibiz-control-list-item__caption{flex:1}.ibiz-control-list-item__new{display:flex;align-items:center;justify-content:center;margin-top:var(--ibiz-spacing-tight);color:var(--ibiz-color-text-3);border:2px dashed var(--ibiz-color-border)}.ibiz-control-list{--ibiz-control-list-text-color:var(--ibiz-color-text-0);--ibiz-control-list-load-more-color:var(--ibiz-color-text-2);--ibiz-control-list-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-list-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-list-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-list-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-tight);--ibiz-control-list-item-bg-color:unset;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:flex-start;position:relative;height:100%}.ibiz-control-list__drag-icon{cursor:move;visibility:hidden}.ibiz-control-list__nav-icon{position:absolute;top:18px;right:10px;color:var(--ibiz-color-primary);cursor:pointer}.ibiz-control-list__load-more{text-align:center}.ibiz-control-list__load-more i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-control-list-load-more-color);cursor:pointer}.ibiz-control-list__load-more i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-list__collapse-expand-icon{width:calc(100% - var(--ibiz-spacing-base-tight));text-align:center}.ibiz-control-list__collapse-expand-icon i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-list__collapse-expand-icon i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-list__load-more-button{padding:var(--ibiz-control-list-padding);text-align:center}.ibiz-control-list__quicktoolbar{display:flex;justify-content:center;width:100%}.ibiz-control-list__batchtoolbar{display:none;margin:var(--ibiz-spacing-tight) 0}.ibiz-control-list__batchtoolbar.is-show{display:block}.ibiz-control-list .ibiz-control-list-content{flex-grow:1}.ibiz-control-list-content.is-show-underLine .ibiz-control-list-scroll-item{border-bottom:1px solid var(--ibiz-color-border)}.ibiz-control-list-content .ibiz-row-detail:last-of-type .ibiz-control-list-scroll-item{border-bottom:none}.ibiz-control-list-scroll{height:100%;overflow:auto}.ibiz-control-list-scroll.is-reverse-scroll .ibiz-control-list__layout-flex{display:flex;flex-direction:column-reverse}.ibiz-control-list-group-content__item-header{display:flex;align-items:center;justify-content:space-between;width:100%}.ibiz-control-list-scroll-item{display:flex;align-items:center}.ibiz-control-list-scroll-item__checkbox{flex-shrink:0;margin-left:var(--ibiz-spacing-tight)}.ibiz-control-list-scroll-item__icon{flex-shrink:0;margin-left:var(--ibiz-spacing-tight);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-list-scroll-item:hover{background-color:var(--ibiz-control-list-hover-bg-color)}.ibiz-control-list-scroll-item:hover .ibiz-control-list__drag-icon{visibility:visible}.ibiz-control-list-scroll-item.is-active{background-color:var(--ibiz-control-list-active-bg-color)}.ibiz-control-list-group-style2{--ibiz-control-list-group-style2-color:var(--ibiz-color-disabled-text)}.ibiz-control-list-group-style2__header{display:flex;align-items:center;justify-content:center;width:100%}.ibiz-control-list-group-style2__header--title{padding:0 var(--ibiz-spacing-tight);font-size:var(--ibiz-font-size-regular);color:var(--ibiz-control-list-group-style2-color)}.ibiz-control-list-group-style2__header::after,.ibiz-control-list-group-style2__header::before{display:block;flex:1;height:1px;margin-top:1px;content:"";border-top:1px var(--ibiz-color-border) solid;transform:translateY(-50%)}.ibiz-control-list-skeleton-item{display:flex;padding-bottom:var(--ibiz-spacing-tight)}.ibiz-control-list-skeleton-item__avatar{flex:none;width:calc(var(--ibiz-spacing-base) * 2 + var(--ibiz-spacing-base-loose) * 3 + var(--ibiz-spacing-base-tight) * 2);padding:0 var(--ibiz-spacing-base);--el-skeleton-circle-size:calc(var(--ibiz-spacing-base-loose) * 3 + var(--ibiz-spacing-base-tight) * 2)}.ibiz-control-list-skeleton-item__avatar .el-skeleton__circle{height:var(--el-skeleton-circle-size)}.ibiz-control-list-skeleton-group__header{margin-bottom:var(--ibiz-spacing-base)}.ibiz-control-list-skeleton-group-style2__header{display:flex;justify-content:center}
@@ -54,8 +54,8 @@ const FilterModeSelect = /* @__PURE__ */ vue.defineComponent({
54
54
  valueOP: runtime.ValueOP.LIKE,
55
55
  label: ibiz.i18n.t("control.searchBar.conditions.like")
56
56
  }, {
57
- valueOP: runtime.ValueOP.LIFT_LIKE,
58
- label: ibiz.i18n.t("control.searchBar.conditions.lift_like")
57
+ valueOP: runtime.ValueOP.LEFT_LIKE,
58
+ label: ibiz.i18n.t("control.searchBar.conditions.left_like")
59
59
  }, {
60
60
  valueOP: runtime.ValueOP.RIGHT_LIKE,
61
61
  label: ibiz.i18n.t("control.searchBar.conditions.right_like")
@@ -92,8 +92,8 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
92
92
  valueOP: runtime.ValueOP.LIKE,
93
93
  label: ibiz.i18n.t("control.searchBar.conditions.like")
94
94
  }, {
95
- valueOP: runtime.ValueOP.LIFT_LIKE,
96
- label: ibiz.i18n.t("control.searchBar.conditions.lift_like")
95
+ valueOP: runtime.ValueOP.LEFT_LIKE,
96
+ label: ibiz.i18n.t("control.searchBar.conditions.left_like")
97
97
  }, {
98
98
  valueOP: runtime.ValueOP.RIGHT_LIKE,
99
99
  label: ibiz.i18n.t("control.searchBar.conditions.right_like")
@@ -76,6 +76,12 @@ class CodeEditorController extends runtime.EditorController {
76
76
  * @memberof CodeEditorController
77
77
  */
78
78
  __publicField(this, "aiChatCaption", "");
79
+ /**
80
+ * @description 函数体
81
+ * @type {string}
82
+ * @memberof CodeEditorController
83
+ */
84
+ __publicField(this, "functionBody", "");
79
85
  }
80
86
  /**
81
87
  * 语言类型
@@ -109,7 +115,8 @@ class CodeEditorController extends runtime.EditorController {
109
115
  inlineaichatheight,
110
116
  hidelinenumbers,
111
117
  hideminimap,
112
- srfaichatcaption
118
+ srfaichatcaption,
119
+ functionbody
113
120
  } = this.editorParams;
114
121
  if (inlineaichatheight)
115
122
  this.inlineAiChatHeight = Number(inlineaichatheight);
@@ -120,6 +127,9 @@ class CodeEditorController extends runtime.EditorController {
120
127
  if (srfaichatcaption) {
121
128
  this.aiChatCaption = ibiz.appUtil.resolveI18nText(srfaichatcaption);
122
129
  }
130
+ if (functionbody) {
131
+ this.functionBody = functionbody;
132
+ }
123
133
  }
124
134
  const { appDEACModeId, appDataEntityId } = this.model;
125
135
  if (appDEACModeId)
@@ -366,14 +366,12 @@ const IBizCode = /* @__PURE__ */ vue.defineComponent({
366
366
  };
367
367
  const isAllowRenderFullScreen = () => {
368
368
  if (enableFullScreen.value)
369
- return vue.createVNode("span", {
369
+ return vue.createVNode("div", {
370
370
  "class": ns.be("toolbar", "fullscreen"),
371
371
  "title": ibiz.i18n.t("editor.common.".concat(isFullScreen.value ? "minimize" : "fullscreen")),
372
372
  "onClick": () => changeFullScreenState()
373
- }, [isFullScreen.value ? vue.createVNode("i", {
374
- "class": "ch-icon ch-icon-minscreen"
375
- }, null) : vue.createVNode("i", {
376
- "class": "ch-icon ch-icon-fullscreen"
373
+ }, [vue.createVNode("ion-icon", {
374
+ "name": isFullScreen.value ? "contract-outline" : "resize-outline"
377
375
  }, null)]);
378
376
  return null;
379
377
  };
@@ -430,15 +428,50 @@ const IBizCode = /* @__PURE__ */ vue.defineComponent({
430
428
  }
431
429
  return null;
432
430
  };
431
+ const renderFunctionBody = () => {
432
+ if (!c.functionBody) {
433
+ return null;
434
+ }
435
+ return vue.createVNode("div", {
436
+ "class": ns.e("function")
437
+ }, [vue.createVNode(vue.resolveComponent("el-tooltip"), {
438
+ "trigger": "click",
439
+ "effect": "light",
440
+ "popper-class": ns.e("function-popper")
441
+ }, {
442
+ default: () => {
443
+ return vue.createVNode("div", {
444
+ "title": ibiz.i18n.t("editor.code.functionBody")
445
+ }, [vue.createVNode("svg", {
446
+ "viewBox": "0 0 1024 1024",
447
+ "version": "1.1",
448
+ "xmlns": "http://www.w3.org/2000/svg",
449
+ "p-id": "8206",
450
+ "width": "1em",
451
+ "height": "1em"
452
+ }, [vue.createVNode("path", {
453
+ "d": "M469.211429 292.571429a36.571429 36.571429 0 0 0 0-73.142858h-259.657143a36.571429 36.571429 0 0 0-36.571429 36.571429v512a36.571429 36.571429 0 0 0 73.142857 0v-236.251429h223.085715a36.571429 36.571429 0 0 0 0-73.142857h-223.085715V292.571429zM741.302857 367.908571a182.857143 182.857143 0 0 0-182.857143 182.857143v219.428572a36.571429 36.571429 0 0 0 73.142857 0v-219.428572a109.714286 109.714286 0 1 1 219.428572 0v219.428572a36.571429 36.571429 0 0 0 73.142857 0v-219.428572a182.857143 182.857143 0 0 0-182.857143-182.857143z",
454
+ "fill": "currentColor",
455
+ "p-id": "8207"
456
+ }, null)])]);
457
+ },
458
+ content: () => {
459
+ return vue.createVNode(vue.resolveComponent("iBizHighLightCode"), {
460
+ "class": ns.e("function-signature"),
461
+ "code": c.functionBody
462
+ }, null);
463
+ }
464
+ })]);
465
+ };
433
466
  const renderHeaderToolbar = () => {
434
- if (hasEnableEdit.value || enableFullScreen.value) {
467
+ if (hasEnableEdit.value || enableFullScreen.value || c.functionBody) {
435
468
  return vue.createVNode("div", {
436
469
  "class": ns.b("toolbar")
437
470
  }, [hasEnableEdit.value && enableEdit.value && readonlyState.value ? vue.createVNode("i", {
438
471
  "class": "fa fa-edit",
439
472
  "aria-hidden": "true",
440
473
  "onClick": () => changeEditState()
441
- }, null) : null, isAllowRenderFullScreen()]);
474
+ }, null) : null, renderFunctionBody(), isAllowRenderFullScreen()]);
442
475
  }
443
476
  return null;
444
477
  };