@ibiz-template/vue3-components 0.7.41-alpha.145 → 0.7.41-alpha.147

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 (107) hide show
  1. package/dist/{index-B_sVovOS.js → index-B-mkNJ8X.js} +1 -1
  2. package/dist/index-BAfdAw1V.js +339 -0
  3. package/dist/{index-Qf-i9QxK.js → index-DA2x586m.js} +1 -1
  4. package/dist/{index.es-CfZdec4G.js → index.es-CSMb33DK.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-CUGqp4Uw.js → wang-editor-LyrHDNOt.js} +1 -1
  8. package/dist/{xlsx-util-C9Q58lgT.js → xlsx-util-DcIFyyjA.js} +1 -1
  9. package/es/common/html-doc-preview/html-doc-preview.mjs +3 -0
  10. package/es/common/no-data/no-data.css +1 -1
  11. package/es/common/no-data/no-data.mjs +3 -4
  12. package/es/control/app-menu/app-menu.css +1 -1
  13. package/es/control/app-menu/app-menu.mjs +40 -8
  14. package/es/control/calendar/calendar.mjs +17 -21
  15. package/es/control/drbar/drbar.controller.mjs +12 -1
  16. package/es/control/drtab/drtab.controller.mjs +12 -1
  17. package/es/control/grid/grid-column/grid-field-column/grid-field-column.mjs +1 -14
  18. package/es/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.mjs +44 -9
  19. package/es/control/tree/tree.mjs +7 -1
  20. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/all-edit.mjs +2 -1
  21. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/cell-edit.mjs +2 -1
  22. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/row-edit.mjs +2 -1
  23. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/tree-grid-ex-edit-column.mjs +50 -14
  24. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.mjs +40 -8
  25. package/es/editor/ai-chat/embed-ai-chat/embed-ai-chat.mjs +24 -1
  26. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  27. package/es/editor/text-box/input/input.mjs +8 -1
  28. package/es/locale/en/index.mjs +0 -6
  29. package/es/locale/zh-CN/index.mjs +0 -6
  30. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.mjs +1 -0
  31. package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.mjs +6 -0
  32. package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.css +1 -1
  33. package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.mjs +38 -4
  34. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.mjs +29 -1
  35. package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -1
  36. package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.mjs +45 -7
  37. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.mjs +1 -0
  38. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.mjs +1 -0
  39. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.mjs +1 -0
  40. package/es/util/ai-chat-util/ai-chat-util.mjs +124 -24
  41. package/lib/common/html-doc-preview/html-doc-preview.cjs +3 -0
  42. package/lib/common/no-data/no-data.cjs +3 -4
  43. package/lib/common/no-data/no-data.css +1 -1
  44. package/lib/control/app-menu/app-menu.cjs +40 -8
  45. package/lib/control/app-menu/app-menu.css +1 -1
  46. package/lib/control/calendar/calendar.cjs +17 -21
  47. package/lib/control/drbar/drbar.controller.cjs +12 -1
  48. package/lib/control/drtab/drtab.controller.cjs +12 -1
  49. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.cjs +1 -14
  50. package/lib/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.cjs +42 -7
  51. package/lib/control/tree/tree.cjs +7 -1
  52. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/all-edit.cjs +2 -1
  53. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/cell-edit.cjs +2 -1
  54. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/row-edit.cjs +2 -1
  55. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/tree-grid-ex-edit-column.cjs +49 -13
  56. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.cjs +39 -7
  57. package/lib/editor/ai-chat/embed-ai-chat/embed-ai-chat.cjs +23 -0
  58. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  59. package/lib/editor/text-box/input/input.cjs +8 -1
  60. package/lib/locale/en/index.cjs +0 -6
  61. package/lib/locale/zh-CN/index.cjs +0 -6
  62. package/lib/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.cjs +1 -0
  63. package/lib/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.cjs +6 -0
  64. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.cjs +38 -4
  65. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.css +1 -1
  66. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.cjs +28 -0
  67. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.cjs +45 -7
  68. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -1
  69. package/lib/panel-component/app-extend-menu/left-side-menu/left-side-menu.cjs +1 -0
  70. package/lib/panel-component/app-extend-menu/right-side-menu/right-side-menu.cjs +1 -0
  71. package/lib/panel-component/app-extend-menu/top-side-menu/top-side-menu.cjs +1 -0
  72. package/lib/util/ai-chat-util/ai-chat-util.cjs +124 -24
  73. package/package.json +5 -5
  74. package/src/common/html-doc-preview/html-doc-preview.tsx +4 -0
  75. package/src/common/no-data/no-data.scss +1 -1
  76. package/src/common/no-data/no-data.tsx +4 -5
  77. package/src/control/app-menu/app-menu.scss +4 -0
  78. package/src/control/app-menu/app-menu.tsx +39 -11
  79. package/src/control/calendar/calendar.tsx +24 -27
  80. package/src/control/drbar/drbar.controller.ts +12 -0
  81. package/src/control/drtab/drtab.controller.ts +12 -0
  82. package/src/control/grid/grid-column/grid-field-column/grid-field-column.tsx +2 -19
  83. package/src/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.tsx +60 -13
  84. package/src/control/tree/tree.tsx +8 -1
  85. package/src/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/all-edit.ts +1 -0
  86. package/src/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/cell-edit.ts +1 -0
  87. package/src/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/row-edit.ts +1 -0
  88. package/src/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/tree-grid-ex-edit-column.tsx +60 -14
  89. package/src/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.tsx +44 -4
  90. package/src/editor/ai-chat/embed-ai-chat/embed-ai-chat.tsx +37 -2
  91. package/src/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.scss +2 -1
  92. package/src/editor/text-box/input/input.tsx +10 -1
  93. package/src/locale/en/index.ts +0 -8
  94. package/src/locale/zh-CN/index.ts +0 -6
  95. package/src/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.tsx +1 -0
  96. package/src/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.tsx +7 -0
  97. package/src/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.scss +4 -0
  98. package/src/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.tsx +30 -1
  99. package/src/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.ts +29 -0
  100. package/src/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.util.ts +3 -0
  101. package/src/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.scss +4 -0
  102. package/src/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.tsx +43 -5
  103. package/src/panel-component/app-extend-menu/left-side-menu/left-side-menu.tsx +1 -0
  104. package/src/panel-component/app-extend-menu/right-side-menu/right-side-menu.tsx +1 -0
  105. package/src/panel-component/app-extend-menu/top-side-menu/top-side-menu.tsx +1 -0
  106. package/src/util/ai-chat-util/ai-chat-util.ts +161 -25
  107. package/dist/index-DrjG63wY.js +0 -339
@@ -937,14 +937,6 @@ export default {
937
937
  failed: 'File upload failure',
938
938
  title: 'Process manager',
939
939
  },
940
- appUtil: {
941
- aiTitle: 'delete conversation',
942
- aiDesc:
943
- 'After deletion, the conversation will not be recoverable. Are you sure to delete?',
944
- clearTopic: 'Clear conversation',
945
- clearTopicDesc:
946
- 'Are you sure to clear all conversation data except for the current activation item?',
947
- },
948
940
  appModal: {
949
941
  prev: 'Previous record',
950
942
  next: 'Next record',
@@ -880,12 +880,6 @@ export default {
880
880
  failed: '文件上传失败',
881
881
  title: '进程管理器',
882
882
  },
883
- appUtil: {
884
- aiTitle: '删除对话',
885
- aiDesc: '删除后,该对话将不可恢复。确认删除吗?',
886
- clearTopic: '清空会话',
887
- clearTopicDesc: '确认清空除当前激活项外的所有会话数据?',
888
- },
889
883
  appModal: {
890
884
  prev: '上一个记录',
891
885
  next: '下一个记录',
@@ -50,6 +50,7 @@ export const BottomSideMenu = defineComponent({
50
50
  <iBizCommonExtendMenu
51
51
  renderMode={this.controller.rawItemParams.rendermode}
52
52
  items={this.state.items}
53
+ controller={this.controller}
53
54
  menuItemsState={this.state.menuItemsState}
54
55
  providers={this.controller.itemProviders}
55
56
  position={'BOTTOM'}
@@ -7,6 +7,7 @@ import { useNamespace } from '@ibiz-template/vue3-util';
7
7
  import './common-extend-menu.scss';
8
8
  import { ExtendButtonMenu } from '../extend-button-menu/extend-button-menu';
9
9
  import { ExtendStandardMenu } from '../extend-standard-menu/extend-standard-menu';
10
+ import { ExtendMenuBaseController } from '../extend-menu-base.controller';
10
11
 
11
12
  /**
12
13
  * 扩展基础菜单
@@ -73,6 +74,10 @@ export const CommonExtendMenu = defineComponent({
73
74
  layout: {
74
75
  type: Object as PropType<ILayout>,
75
76
  },
77
+ controller: {
78
+ type: Object as PropType<ExtendMenuBaseController>,
79
+ required: true,
80
+ },
76
81
  },
77
82
  emits: {
78
83
  /**
@@ -99,6 +104,7 @@ export const CommonExtendMenu = defineComponent({
99
104
  let content = (
100
105
  <ExtendButtonMenu
101
106
  items={this.items}
107
+ controller={this.controller}
102
108
  menuItemsState={this.menuItemsState}
103
109
  providers={this.providers}
104
110
  position={this.position}
@@ -112,6 +118,7 @@ export const CommonExtendMenu = defineComponent({
112
118
  content = (
113
119
  <ExtendStandardMenu
114
120
  items={this.items}
121
+ controller={this.controller}
115
122
  menuItemsState={this.menuItemsState}
116
123
  providers={this.providers}
117
124
  position={this.position}
@@ -74,6 +74,10 @@ $extend-menu-button-rawitem: (
74
74
  height: 100%;
75
75
  padding: getCssVar('extend-menu-button', 'padding');
76
76
 
77
+ @include e('panel') {
78
+ line-height: normal;
79
+ }
80
+
77
81
  @include e('menuitem') {
78
82
  width: 100%;
79
83
  height: 100%;
@@ -18,6 +18,7 @@ import {
18
18
  useCascaderPopover,
19
19
  IMenuSemantic,
20
20
  } from '../extend-menu-base.util';
21
+ import { ExtendMenuBaseController } from '../extend-menu-base.controller';
21
22
  import './extend-button-menu.scss';
22
23
 
23
24
  const rightArrow = () => (
@@ -35,11 +36,30 @@ const rightArrow = () => (
35
36
  </svg>
36
37
  );
37
38
 
39
+ function renderItemRender(params: IMenuItemParams) {
40
+ const { ns, menu, controller } = params;
41
+ const panel = menu.controlRenders?.find(
42
+ render => render.renderType === 'LAYOUTPANEL',
43
+ )?.layoutPanel;
44
+ if (panel)
45
+ return (
46
+ <iBizControlShell
47
+ class={ns.e('panel')}
48
+ modelData={panel}
49
+ context={controller.context}
50
+ params={controller.params}
51
+ />
52
+ );
53
+ const htmlCode = controller.getCustomHtml(menu);
54
+ if (htmlCode) return <div class={ns.e('script')} v-html={htmlCode}></div>;
55
+ }
56
+
38
57
  function renderMenuItem(params: IMenuItemParams): VNode | undefined {
39
58
  const { ns, menu, menuAlign, menuItemsState, semantic } = params;
40
59
 
41
60
  if (!menu.id || !menuItemsState[menu.id]?.visible) return;
42
-
61
+ const render = renderItemRender(params);
62
+ if (render) return render;
43
63
  if (menu.itemType === 'MENUITEM') {
44
64
  return (
45
65
  <el-button
@@ -122,6 +142,7 @@ function renderMenuContent(_params: IMenuContentParams) {
122
142
  menuItemsState,
123
143
  showCascaderArrow,
124
144
  semantic,
145
+ controller,
125
146
  handleMenuItemClick,
126
147
  handleMenuItemMouseEnter,
127
148
  handleMenuItemMouseLeave,
@@ -146,6 +167,7 @@ function renderMenuContent(_params: IMenuContentParams) {
146
167
  menuAlign,
147
168
  menuItemsState,
148
169
  semantic,
170
+ controller,
149
171
  });
150
172
  if (!menuItem) return;
151
173
 
@@ -226,6 +248,10 @@ export const ExtendButtonMenu = defineComponent({
226
248
  semanticStyle: () => '',
227
249
  }),
228
250
  },
251
+ controller: {
252
+ type: Object as PropType<ExtendMenuBaseController>,
253
+ required: true,
254
+ },
229
255
  },
230
256
  emits: {
231
257
  menuItemClick: (item: IAppMenuItem, event: MouseEvent) => true,
@@ -252,6 +278,7 @@ export const ExtendButtonMenu = defineComponent({
252
278
  showCascaderArrow: true,
253
279
  isLayout: false,
254
280
  semantic: props.semantic,
281
+ controller: props.controller,
255
282
  });
256
283
  };
257
284
  const renderBorderContent = () => {
@@ -267,6 +294,7 @@ export const ExtendButtonMenu = defineComponent({
267
294
  showCascaderArrow: true,
268
295
  isLayout: false,
269
296
  semantic: props.semantic,
297
+ controller: props.controller,
270
298
  });
271
299
  };
272
300
 
@@ -347,6 +375,7 @@ export const ExtendButtonMenu = defineComponent({
347
375
  handleMenuItemMouseEnter: this.handleMenuItemMouseEnter,
348
376
  handleMenuItemMouseLeave: this.handleMenuItemMouseLeave,
349
377
  semantic: this.semantic,
378
+ controller: this.controller,
350
379
  })}
351
380
  </div>
352
381
  );
@@ -11,6 +11,7 @@ import {
11
11
  PanelItemController,
12
12
  IAppMenuItemProvider,
13
13
  getAppMenuItemProvider,
14
+ ScriptFactory,
14
15
  } from '@ibiz-template/runtime';
15
16
  import { IAppMenu, IAppMenuItem, IPanelRawItem } from '@ibiz/model-core';
16
17
  import { recursiveIterate, RuntimeModelError } from '@ibiz-template/core';
@@ -327,4 +328,32 @@ export class ExtendMenuBaseController extends PanelItemController<IPanelRawItem>
327
328
  },
328
329
  );
329
330
  }
331
+
332
+ /**
333
+ * @description 解析获取脚本代码html
334
+ * @param {IAppMenuItem} menuItem
335
+ * @returns {*} {(string | undefined)}
336
+ * @memberof ExtendMenuBaseController
337
+ */
338
+ getCustomHtml(menuItem: IAppMenuItem): string | undefined {
339
+ const { controlRenders = [] } = menuItem;
340
+ let scriptCode = controlRenders.find(
341
+ render => render.renderType === 'LAYOUTPANEL_MODEL',
342
+ )?.layoutPanelModel;
343
+ if (scriptCode) {
344
+ // 兼容单行模式
345
+ if (!scriptCode.includes('return')) scriptCode = `return (${scriptCode})`;
346
+ return ScriptFactory.execScriptFn(
347
+ {
348
+ context: this.context,
349
+ params: this.params,
350
+ ctrl: this,
351
+ view: this.view,
352
+ metadata: { model: menuItem },
353
+ },
354
+ scriptCode,
355
+ { isAsync: false },
356
+ ) as string;
357
+ }
358
+ }
330
359
  }
@@ -8,6 +8,7 @@ import { h, ref, Ref, VNode, onMounted, onUnmounted } from 'vue';
8
8
  import { IAppMenuItem, IFlexLayout, ILayout } from '@ibiz/model-core';
9
9
  import { IAppMenuItemProvider } from '@ibiz-template/runtime';
10
10
  import { Namespace } from '@ibiz-template/core';
11
+ import { ExtendMenuBaseController } from './extend-menu-base.controller';
11
12
 
12
13
  /**
13
14
  * @description 组件传参类型定义
@@ -86,6 +87,8 @@ export interface IMenuRenderParams {
86
87
  menuItemsState: { [p: string]: { visible: boolean; permitted: boolean } };
87
88
  // 语义化节点数据
88
89
  semantic: IMenuSemantic;
90
+ /** 控制器 */
91
+ controller: ExtendMenuBaseController;
89
92
  }
90
93
 
91
94
  /**
@@ -183,6 +183,10 @@ $extend-standard-menu-divider: (
183
183
  width: 100%;
184
184
  height: 100%;
185
185
 
186
+ @include e('panel') {
187
+ line-height: normal;
188
+ }
189
+
186
190
  @include e('content') {
187
191
  position: relative;
188
192
  width: 100%;
@@ -12,12 +12,31 @@ import {
12
12
  IMenuBaseItem,
13
13
  IMenuSemantic,
14
14
  } from '../extend-menu-base.util';
15
+ import { ExtendMenuBaseController } from '../extend-menu-base.controller';
15
16
  import './extend-standard-menu.scss';
16
17
 
17
18
  const ellipsisSvg = (): VNode => {
18
19
  return <ion-icon name='ellipsis-horizontal'></ion-icon>;
19
20
  };
20
21
 
22
+ function renderItemRender(params: IStandardMenuItemParams) {
23
+ const { ns, menu, controller } = params;
24
+ const panel = menu.controlRenders?.find(
25
+ render => render.renderType === 'LAYOUTPANEL',
26
+ )?.layoutPanel;
27
+ if (panel)
28
+ return (
29
+ <iBizControlShell
30
+ class={ns.e('panel')}
31
+ modelData={panel}
32
+ context={controller.context}
33
+ params={controller.params}
34
+ />
35
+ );
36
+ const htmlCode = controller.getCustomHtml(menu);
37
+ if (htmlCode) return <div class={ns.e('script')} v-html={htmlCode}></div>;
38
+ }
39
+
21
40
  /**
22
41
  * 绘制菜单项
23
42
  * @param {IStandardMenuItemParams} _params
@@ -30,7 +49,7 @@ function renderMenuItem(_params: IStandardMenuItemParams): VNode | undefined {
30
49
  if (!menu.id || (menuItemsState && !menuItemsState[menu.id]?.visible)) {
31
50
  return;
32
51
  }
33
-
52
+ const render = renderItemRender(_params);
34
53
  if (menu.itemType === 'MENUITEM') {
35
54
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
55
  let content: any;
@@ -80,7 +99,7 @@ function renderMenuItem(_params: IStandardMenuItemParams): VNode | undefined {
80
99
  ),
81
100
  ];
82
101
  }
83
-
102
+ if (render) content = render;
84
103
  return !(isFirst && collapse) ? (
85
104
  <el-menu-item
86
105
  class={[
@@ -118,6 +137,7 @@ function renderMenuItem(_params: IStandardMenuItemParams): VNode | undefined {
118
137
  if (menu.itemType === 'SEPERATOR') {
119
138
  const direction =
120
139
  menuAlign === 'horizontal' && isFirst ? 'vertical' : 'horizontal';
140
+ if (render) return render;
121
141
  return (
122
142
  <el-divider
123
143
  direction={direction}
@@ -142,7 +162,7 @@ function renderMenuItem(_params: IStandardMenuItemParams): VNode | undefined {
142
162
  ]}
143
163
  style={semantic.semanticStyle('rawitem', { item: menu })}
144
164
  >
145
- <iBizRawItem rawItem={menu}></iBizRawItem>
165
+ {render || <iBizRawItem rawItem={menu}></iBizRawItem>}
146
166
  </el-menu-item>
147
167
  );
148
168
  }
@@ -154,8 +174,16 @@ function renderMenuItem(_params: IStandardMenuItemParams): VNode | undefined {
154
174
  * @returns {*}
155
175
  */
156
176
  function renderSubmenu(_params: IStandardMenuItemParams): VNode | undefined {
157
- const { isFirst, menu, collapse, ns, menuAlign, menuItemsState, semantic } =
158
- _params;
177
+ const {
178
+ isFirst,
179
+ menu,
180
+ collapse,
181
+ ns,
182
+ menuAlign,
183
+ menuItemsState,
184
+ semantic,
185
+ controller,
186
+ } = _params;
159
187
  if (!menu.id || (menuItemsState && !menuItemsState[menu.id]?.visible)) {
160
188
  return;
161
189
  }
@@ -187,6 +215,7 @@ function renderSubmenu(_params: IStandardMenuItemParams): VNode | undefined {
187
215
  menuAlign,
188
216
  menuItemsState,
189
217
  semantic,
218
+ controller,
190
219
  });
191
220
  }
192
221
  return renderMenuItem({
@@ -197,6 +226,7 @@ function renderSubmenu(_params: IStandardMenuItemParams): VNode | undefined {
197
226
  menuAlign,
198
227
  menuItemsState,
199
228
  semantic,
229
+ controller,
200
230
  });
201
231
  }),
202
232
  title: () => {
@@ -259,6 +289,7 @@ function renderMenuContent(_params: IStandardMenuContentParams): VNode {
259
289
  menus,
260
290
  menuItemsState,
261
291
  semantic,
292
+ controller,
262
293
  handleMenuSelect,
263
294
  } = _params;
264
295
 
@@ -296,6 +327,7 @@ function renderMenuContent(_params: IStandardMenuContentParams): VNode {
296
327
  menuAlign,
297
328
  menuItemsState,
298
329
  semantic,
330
+ controller,
299
331
  });
300
332
  }
301
333
  return renderMenuItem({
@@ -306,6 +338,7 @@ function renderMenuContent(_params: IStandardMenuContentParams): VNode {
306
338
  menuAlign,
307
339
  menuItemsState,
308
340
  semantic,
341
+ controller,
309
342
  });
310
343
  });
311
344
  },
@@ -347,6 +380,10 @@ export const ExtendStandardMenu = defineComponent({
347
380
  semanticStyle: () => '',
348
381
  }),
349
382
  },
383
+ controller: {
384
+ type: Object as PropType<ExtendMenuBaseController>,
385
+ required: true,
386
+ },
350
387
  },
351
388
  emits: {
352
389
  /**
@@ -411,6 +448,7 @@ export const ExtendStandardMenu = defineComponent({
411
448
  menuItemsState: this.menuItemsState,
412
449
  handleMenuSelect: this.handleMenuSelect,
413
450
  semantic: this.semantic,
451
+ controller: this.controller,
414
452
  })}
415
453
  </div>
416
454
  );
@@ -48,6 +48,7 @@ export const LeftSideMenu = defineComponent({
48
48
  style={this.semanticStyle('root')}
49
49
  >
50
50
  <iBizCommonExtendMenu
51
+ controller={this.controller}
51
52
  renderMode={this.controller.rawItemParams.rendermode}
52
53
  items={this.state.items}
53
54
  menuItemsState={this.state.menuItemsState}
@@ -50,6 +50,7 @@ export const RightSideMenu = defineComponent({
50
50
  <iBizCommonExtendMenu
51
51
  renderMode={this.controller.rawItemParams.rendermode}
52
52
  items={this.state.items}
53
+ controller={this.controller}
53
54
  menuItemsState={this.state.menuItemsState}
54
55
  providers={this.controller.itemProviders}
55
56
  position={'RIGHT'}
@@ -50,6 +50,7 @@ export const TopSideMenu = defineComponent({
50
50
  <iBizCommonExtendMenu
51
51
  renderMode={this.controller.rawItemParams.rendermode}
52
52
  items={this.state.items}
53
+ controller={this.controller}
53
54
  menuItemsState={this.state.menuItemsState}
54
55
  providers={this.controller.itemProviders}
55
56
  position={'TOP'}