@ibiz-template/vue3-components 0.7.41-alpha.6 → 0.7.41-alpha.7

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 (86) hide show
  1. package/dist/index-cbi1NJAY.js +4 -0
  2. package/dist/index.min.css +1 -1
  3. package/dist/index.system.min.js +1 -1
  4. package/dist/{wang-editor-kEzIt0zV.js → wang-editor-ELTZ-byh.js} +1 -1
  5. package/dist/{xlsx-util-_VPcoWqm.js → xlsx-util--EbSIMDJ.js} +1 -1
  6. package/es/common/editor-empty-text/editor-empty-text.css +1 -0
  7. package/es/common/editor-empty-text/editor-empty-text.d.ts +25 -0
  8. package/es/common/editor-empty-text/editor-empty-text.mjs +31 -0
  9. package/es/common/index.mjs +2 -0
  10. package/es/control/drtab/drtab-control.util.mjs +1 -1
  11. package/es/control/tree/el-tree-util.d.ts +11 -0
  12. package/es/control/tree/el-tree-util.mjs +35 -1
  13. package/es/control/tree/index.d.ts +1 -0
  14. package/es/control/tree/tree.css +1 -1
  15. package/es/control/tree/tree.d.ts +2 -2
  16. package/es/control/tree/tree.mjs +61 -5
  17. package/es/control/wizard-panel/wizard-panel.css +1 -1
  18. package/es/control/wizard-panel/wizard-panel.mjs +24 -8
  19. package/es/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.mjs +4 -1
  20. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.mjs +4 -1
  21. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +4 -1
  22. package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +4 -1
  23. package/es/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.mjs +4 -1
  24. package/es/editor/data-picker/ibiz-picker-link/ibiz-picker-link.mjs +5 -2
  25. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +4 -1
  26. package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.mjs +4 -1
  27. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.mjs +4 -1
  28. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +4 -1
  29. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.mjs +4 -1
  30. package/es/editor/map-picker/ibiz-map-picker/ibiz-map-picker.mjs +4 -1
  31. package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.mjs +4 -1
  32. package/es/editor/span/span/span.mjs +4 -1
  33. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.mjs +4 -1
  34. package/es/editor/text-box/input/input.mjs +4 -1
  35. package/es/locale/en/index.d.ts +1 -0
  36. package/es/locale/zh-CN/index.d.ts +1 -0
  37. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.css +1 -1
  38. package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.d.ts +1 -0
  39. package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.mjs +25 -4
  40. package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.css +1 -0
  41. package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.d.ts +2030 -0
  42. package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.mjs +223 -0
  43. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.util.d.ts +166 -0
  44. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.util.mjs +339 -0
  45. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.css +1 -1
  46. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.css +1 -1
  47. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.css +1 -1
  48. package/es/util/fullscreen/fullscreen-util.mjs +1 -1
  49. package/lib/common/editor-empty-text/editor-empty-text.cjs +33 -0
  50. package/lib/common/editor-empty-text/editor-empty-text.css +1 -0
  51. package/lib/common/index.cjs +2 -0
  52. package/lib/control/drtab/drtab-control.util.cjs +1 -1
  53. package/lib/control/tree/el-tree-util.cjs +35 -0
  54. package/lib/control/tree/tree.cjs +59 -3
  55. package/lib/control/tree/tree.css +1 -1
  56. package/lib/control/wizard-panel/wizard-panel.cjs +23 -7
  57. package/lib/control/wizard-panel/wizard-panel.css +1 -1
  58. package/lib/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.cjs +4 -1
  59. package/lib/editor/cascader/ibiz-cascader/ibiz-cascader.cjs +4 -1
  60. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +4 -1
  61. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +4 -1
  62. package/lib/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.cjs +4 -1
  63. package/lib/editor/data-picker/ibiz-picker-link/ibiz-picker-link.cjs +4 -1
  64. package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +4 -1
  65. package/lib/editor/date-picker/ibiz-date-picker/ibiz-date-picker.cjs +4 -1
  66. package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.cjs +4 -1
  67. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +4 -1
  68. package/lib/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.cjs +4 -1
  69. package/lib/editor/map-picker/ibiz-map-picker/ibiz-map-picker.cjs +4 -1
  70. package/lib/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.cjs +4 -1
  71. package/lib/editor/span/span/span.cjs +4 -1
  72. package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.cjs +4 -1
  73. package/lib/editor/text-box/input/input.cjs +4 -1
  74. package/lib/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.css +1 -1
  75. package/lib/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.cjs +24 -3
  76. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.cjs +225 -0
  77. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.css +1 -0
  78. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.util.cjs +344 -0
  79. package/lib/panel-component/app-extend-menu/left-side-menu/left-side-menu.css +1 -1
  80. package/lib/panel-component/app-extend-menu/right-side-menu/right-side-menu.css +1 -1
  81. package/lib/panel-component/app-extend-menu/top-side-menu/top-side-menu.css +1 -1
  82. package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
  83. package/package.json +5 -5
  84. package/dist/index-2Djp0sQl.js +0 -4
  85. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.2_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.7_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs +0 -0
  86. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.2_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.7_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs +0 -0
@@ -0,0 +1,223 @@
1
+ import { createVNode, resolveComponent, ref, computed, defineComponent } from 'vue';
2
+ import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import { showTitle } from '@ibiz-template/core';
4
+ import { getMenus, useCascaderPopover, useBorderLayout, findMenuItem } from '../extend-menu-base.util.mjs';
5
+ import './extend-button-menu.css';
6
+
7
+ "use strict";
8
+ const rightArrow = () => createVNode("svg", {
9
+ "xmlns": "http://www.w3.org/2000/svg",
10
+ "viewBox": "0 0 1024 1024",
11
+ "width": "1em",
12
+ "height": "1em",
13
+ "fill": "currentColor"
14
+ }, [createVNode("path", {
15
+ "fill": "currentColor",
16
+ "d": "M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"
17
+ }, null)]);
18
+ function renderMenuItem(params) {
19
+ var _a, _b, _c;
20
+ const {
21
+ ns,
22
+ menu,
23
+ menuAlign,
24
+ menuItemsState
25
+ } = params;
26
+ if (!menu.id || !((_a = menuItemsState[menu.id]) == null ? void 0 : _a.visible))
27
+ return;
28
+ if (menu.itemType === "MENUITEM") {
29
+ return createVNode(resolveComponent("el-button"), {
30
+ "class": [ns.e("menuitem"), "".concat(((_b = menu.sysCss) == null ? void 0 : _b.cssName) || "")],
31
+ "index": menu.id
32
+ }, {
33
+ default: () => [menu.sysImage && createVNode(resolveComponent("iBizIcon"), {
34
+ "class": ns.e("icon"),
35
+ "icon": menu.sysImage
36
+ }, null), menu.caption && createVNode("span", {
37
+ "class": ns.e("caption"),
38
+ "title": showTitle(menu.tooltip)
39
+ }, [menu.caption])]
40
+ });
41
+ }
42
+ if (menu.itemType === "SEPERATOR") {
43
+ const direction = menuAlign === "horizontal" ? "vertical" : "horizontal";
44
+ return createVNode(resolveComponent("el-divider"), {
45
+ "direction": direction,
46
+ "class": [ns.em("separator"), ns.em("separator", direction)],
47
+ "id": menu.id
48
+ }, null);
49
+ }
50
+ if (menu.itemType === "RAWITEM") {
51
+ return createVNode(resolveComponent("el-button"), {
52
+ "index": menu.id,
53
+ "title": showTitle(menu.tooltip),
54
+ "class": [ns.e("rawitem"), "".concat(((_c = menu.sysCss) == null ? void 0 : _c.cssName) || "")]
55
+ }, {
56
+ default: () => [createVNode(resolveComponent("iBizRawItem"), {
57
+ "rawItem": menu
58
+ }, null)]
59
+ });
60
+ }
61
+ }
62
+ function renderMenuContent(_params) {
63
+ const {
64
+ ns,
65
+ isLayout,
66
+ position,
67
+ menuAlign,
68
+ menus,
69
+ menuItemsState,
70
+ showCascaderArrow,
71
+ handleMenuItemClick,
72
+ handleMenuItemMouseEnter,
73
+ handleMenuItemMouseLeave
74
+ } = _params;
75
+ return createVNode(resolveComponent("el-row"), {
76
+ "class": [ns.e("content"), ns.is(menuAlign, !!menuAlign), ns.is(position == null ? void 0 : position.toLowerCase(), !!position)]
77
+ }, {
78
+ default: () => menus.map((menu) => {
79
+ var _a, _b;
80
+ const menuItem = renderMenuItem({
81
+ menu,
82
+ ns,
83
+ menuAlign,
84
+ menuItemsState
85
+ });
86
+ if (!menuItem)
87
+ return;
88
+ const style = {};
89
+ if (isLayout && ((_a = menu.layoutPos) == null ? void 0 : _a.layout) === "FLEX") {
90
+ const pos = menu.layoutPos;
91
+ Object.assign(style, {
92
+ flexGrow: pos.grow,
93
+ flexShrink: pos.shrink === 1 ? void 0 : pos.shrink,
94
+ flexBasis: pos.basis
95
+ });
96
+ }
97
+ const isShowArrow = !!(showCascaderArrow && menu.children);
98
+ return createVNode("div", {
99
+ "class": [ns.em("content", "item"), ns.em("content", (_b = menu.itemType) == null ? void 0 : _b.toLowerCase()), ns.is("show-arrow", isShowArrow)],
100
+ "style": style
101
+ }, [createVNode("div", {
102
+ "class": ns.em("content", "item-container"),
103
+ "onMouseenter": (_e) => handleMenuItemMouseEnter(menu, _e),
104
+ "onMouseleave": (_e) => handleMenuItemMouseLeave(menu, _e),
105
+ "onClick": (_e) => handleMenuItemClick(menu, _e)
106
+ }, [menuItem]), createVNode("span", {
107
+ "class": ns.em("content", "item-arrow")
108
+ }, [isShowArrow && rightArrow()])]);
109
+ })
110
+ });
111
+ }
112
+ const ExtendButtonMenu = /* @__PURE__ */ defineComponent({
113
+ name: "IBizExtendButtonMenu",
114
+ props: {
115
+ items: {
116
+ type: Object,
117
+ required: true
118
+ },
119
+ menuItemsState: {
120
+ type: Object,
121
+ required: true
122
+ },
123
+ providers: {
124
+ type: Object,
125
+ required: true
126
+ },
127
+ position: {
128
+ type: String,
129
+ required: true
130
+ },
131
+ layoutMode: {
132
+ type: String,
133
+ required: true
134
+ },
135
+ layout: {
136
+ type: Object
137
+ }
138
+ },
139
+ emits: {
140
+ menuItemClick: (item, event) => true
141
+ },
142
+ setup(props, {
143
+ emit
144
+ }) {
145
+ const ns = useNamespace("extend-menu-button");
146
+ const buttonMenuRef = ref();
147
+ const menuAlign = computed(() => ["TOP", "BOTTOM"].includes(props.position) ? "horizontal" : "vertical");
148
+ const isLayout = computed(() => props.layoutMode !== "BORDER" && ["TOP", "BOTTOM"].includes(props.position));
149
+ const menus = ref(getMenus(props.items));
150
+ const renderCascaderContent = (_menu) => {
151
+ return renderMenuContent({
152
+ ns,
153
+ menuAlign: "vertical",
154
+ position: props.position,
155
+ menus: _menu.children,
156
+ menuItemsState: props.menuItemsState,
157
+ handleMenuItemClick,
158
+ handleMenuItemMouseEnter,
159
+ handleMenuItemMouseLeave,
160
+ showCascaderArrow: true,
161
+ isLayout: false
162
+ });
163
+ };
164
+ const renderBorderContent = () => {
165
+ return renderMenuContent({
166
+ ns,
167
+ menuAlign: menuAlign.value,
168
+ position: props.position,
169
+ menus: menus.value,
170
+ menuItemsState: props.menuItemsState,
171
+ handleMenuItemClick,
172
+ handleMenuItemMouseEnter,
173
+ handleMenuItemMouseLeave,
174
+ isLayout: isLayout.value,
175
+ showCascaderArrow: true
176
+ });
177
+ };
178
+ const {
179
+ getOverlayNum,
180
+ clearAllCascader,
181
+ handleMenuItemMouseEnter,
182
+ handleMenuItemMouseLeave
183
+ } = useCascaderPopover(props, ns, menuAlign, renderCascaderContent);
184
+ let closeBorderPopover;
185
+ if (props.layoutMode === "BORDER") {
186
+ const borderLayout = useBorderLayout(buttonMenuRef, ns, props.position, menuAlign, getOverlayNum, renderBorderContent);
187
+ closeBorderPopover = borderLayout.closeBorderPopover;
188
+ }
189
+ const handleMenuItemClick = async (_menu, _event) => {
190
+ if (_menu.children)
191
+ return;
192
+ clearAllCascader();
193
+ if (closeBorderPopover)
194
+ closeBorderPopover();
195
+ if (!_menu.appFuncId) {
196
+ ibiz.log.warn(ibiz.i18n.t("runtime.controller.control.menu.noConfigured"));
197
+ return;
198
+ }
199
+ const menuItem = findMenuItem(_menu.id, props.items);
200
+ emit("menuItemClick", menuItem, _event);
201
+ };
202
+ return {
203
+ ns,
204
+ menus,
205
+ menuAlign,
206
+ isLayout,
207
+ buttonMenuRef,
208
+ handleMenuItemClick,
209
+ handleMenuItemMouseEnter,
210
+ handleMenuItemMouseLeave
211
+ };
212
+ },
213
+ render() {
214
+ return createVNode("div", {
215
+ "ref": "buttonMenuRef",
216
+ "class": [this.ns.b(), this.ns.is(this.layoutMode.toLowerCase(), !!this.layoutMode), this.ns.is(this.position.toLowerCase(), !!this.position), this.ns.is(this.menuAlign, !!this.menuAlign)]
217
+ }, [this.layoutMode !== "BORDER" && renderMenuContent({
218
+ ...this
219
+ })]);
220
+ }
221
+ });
222
+
223
+ export { ExtendButtonMenu };
@@ -0,0 +1,166 @@
1
+ import { Ref, VNode } from 'vue';
2
+ import { IAppMenuItem, ILayout } from '@ibiz/model-core';
3
+ import { IAppMenuItemProvider } from '@ibiz-template/runtime';
4
+ import { Namespace } from '@ibiz-template/core';
5
+ /**
6
+ * @description 组件传参类型定义
7
+ *
8
+ * @export
9
+ * @interface IExtendMenuProps
10
+ */
11
+ export interface IExtendMenuProps {
12
+ items: IAppMenuItem[];
13
+ menuItemsState: {
14
+ [p: string]: {
15
+ visible: boolean;
16
+ permitted: boolean;
17
+ };
18
+ };
19
+ providers: {
20
+ [key: string]: IAppMenuItemProvider;
21
+ };
22
+ position: 'LEFT' | 'RIGHT' | 'TOP' | 'BOTTOM';
23
+ layoutMode: 'TABLE' | 'TABLE_12COL' | 'TABLE_24COL' | 'FLEX' | 'BORDER' | 'ABSOLUTE';
24
+ layout: ILayout;
25
+ }
26
+ /**
27
+ * @description 菜单项绘制数据
28
+ *
29
+ * @export
30
+ * @interface IButtonMenuItem
31
+ * @extends {IAppMenuItem}
32
+ */
33
+ export interface IButtonMenuItem extends IAppMenuItem {
34
+ /** 数据层级 */
35
+ level: number;
36
+ /** 主键 */
37
+ value?: string;
38
+ /** 主文本 */
39
+ label?: string;
40
+ /** 父主键 */
41
+ parentId?: string;
42
+ /** 子项数据集合 */
43
+ children?: IButtonMenuItem[];
44
+ }
45
+ /**
46
+ * @description 菜单绘制通用参数
47
+ *
48
+ * @export
49
+ * @interface IMenuRenderParams
50
+ */
51
+ export interface IMenuRenderParams {
52
+ /** 菜单样式处理命名空间 */
53
+ ns: Namespace;
54
+ /** 菜单对齐 */
55
+ menuAlign: 'horizontal' | 'vertical';
56
+ /** 菜单项权限数据 */
57
+ menuItemsState: {
58
+ [p: string]: {
59
+ visible: boolean;
60
+ permitted: boolean;
61
+ };
62
+ };
63
+ }
64
+ /**
65
+ * @description 绘制单个菜单项参数
66
+ *
67
+ * @export
68
+ * @interface IMenuItemParams
69
+ * @extends {IMenuRenderParams}
70
+ */
71
+ export interface IMenuItemParams extends IMenuRenderParams {
72
+ /** 菜单项 */
73
+ menu: IButtonMenuItem;
74
+ }
75
+ /**
76
+ * @description 多菜单项(子菜单内容)参数
77
+ *
78
+ * @export
79
+ * @interface IMenuContentParams
80
+ * @extends {IMenuRenderParams}
81
+ */
82
+ export interface IMenuContentParams extends IMenuRenderParams {
83
+ /** 是否支持布局 */
84
+ isLayout: boolean;
85
+ /** 菜单方向 */
86
+ position: string;
87
+ /** 菜单项绘制数据集合 */
88
+ menus: IButtonMenuItem[];
89
+ /** 显示级联箭头 */
90
+ showCascaderArrow?: boolean;
91
+ /** 菜单项点击 */
92
+ handleMenuItemClick: (_menu: IButtonMenuItem, event: MouseEvent) => void;
93
+ /** 鼠标移入菜单项,准备弹出子菜单 */
94
+ handleMenuItemMouseEnter: (_menu: IButtonMenuItem, event: MouseEvent) => void;
95
+ /** 鼠标移出菜单项 */
96
+ handleMenuItemMouseLeave: (_menu: IButtonMenuItem, event: MouseEvent) => void;
97
+ }
98
+ /**
99
+ * @description 用于构建级联菜单的弹出层控制逻辑
100
+ *
101
+ * - 支持多层级菜单结构;
102
+ * - 根据鼠标移入/移出控制子菜单弹出与关闭;
103
+ * - 菜单项移入时打开对应子菜单,移出时自动延迟关闭;
104
+ * - 子菜单弹出方向根据配置自动计算;
105
+ * - 支持箭头图标旋转动画;
106
+ *
107
+ * @param props - 外部传入的菜单属性,包含菜单项、权限、适配器、布局模式等
108
+ * @param ns - 命名空间,用于生成 CSS BEM 类名
109
+ * @param menuAlign - 菜单排列方向(如 vertical)
110
+ * @param onMenuItemClick - 菜单项点击事件处理器
111
+ * @param renderCascader - 子菜单内容渲染函数(返回 VNode)
112
+ *
113
+ * @returns {
114
+ * getOverlayNum: 获取打开的级联数量;
115
+ * clearAllCascader: 清除所有层级弹窗和计时器;
116
+ * openCascaderPopover: 打开子菜单气泡;
117
+ * onMenuItemMouseEnter: 鼠标移入菜单项时的处理函数;
118
+ * onMenuItemMouseLeave: 鼠标移出菜单项时的处理函数;
119
+ * }
120
+ */
121
+ export declare function useCascaderPopover(props: IExtendMenuProps, ns: Namespace, menuAlign: Ref<string>, renderCascaderContent: (_menu: IButtonMenuItem) => VNode): {
122
+ getOverlayNum: () => number;
123
+ clearAllCascader: () => void;
124
+ openCascaderPopover: (menu: IButtonMenuItem, evt: MouseEvent, opts?: IData) => void;
125
+ handleMenuItemMouseEnter: (_menu: IButtonMenuItem, _event: MouseEvent) => void;
126
+ handleMenuItemMouseLeave: (_menu: IButtonMenuItem, _event: MouseEvent) => void;
127
+ };
128
+ /**
129
+ * @description 用于构建边缘布局弹出层控制逻辑
130
+ *
131
+ * - 创建 fixed 占位元素
132
+ * - 占位块随目标元素变化而更新
133
+ * - 鼠标悬停触发弹出层
134
+ * - 移出占位层自动关闭弹层
135
+ * - 组件卸载自动清理
136
+ *
137
+ * @export
138
+ * @param {(Ref<HTMLElement | undefined>)} menuRef 菜单元素引用
139
+ * @param {Namespace} ns 命名空间工具
140
+ * @param {('LEFT' | 'RIGHT' | 'TOP' | 'BOTTOM')} position 元素的方向
141
+ * @param {Ref<string>} menuAlign 菜单对齐方式
142
+ * @param {() => number} getOverlayNum 获取当前层级 Overlay 数量
143
+ * @param {() => VNode} renderBorderContent 渲染边框内容
144
+ * @returns {
145
+ * closeBorderPopover: 关闭边框弹出层
146
+ * }
147
+ */
148
+ export declare function useBorderLayout(menuRef: Ref<HTMLElement | undefined>, ns: Namespace, position: 'LEFT' | 'RIGHT' | 'TOP' | 'BOTTOM', menuAlign: Ref<string>, getOverlayNum: () => number, renderBorderContent: () => VNode): {
149
+ closeBorderPopover: () => void;
150
+ };
151
+ /**
152
+ * 递归生成菜单数据,递给 element 的 Menu 组件
153
+ *
154
+ * @param {AppMenuItemModel[]} items
155
+ * @return {*} {IButtonMenuItem[]}
156
+ */
157
+ export declare function getMenus(items: IAppMenuItem[], _parentItem?: IAppMenuItem, level?: number): IButtonMenuItem[];
158
+ /**
159
+ * @description 查询菜单项模型
160
+ *
161
+ * @export
162
+ * @param {string} _id 菜单标识
163
+ * @param {IAppMenuItem[]} items 菜单数据集合
164
+ * @return {*} {(IAppMenuItem | undefined)}
165
+ */
166
+ export declare function findMenuItem(_id: string, items: IAppMenuItem[]): IAppMenuItem | undefined;