@keyblade/pro-components 1.4.2 → 1.4.4

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.
@@ -4,7 +4,13 @@ declare const ProBreadcrumb: {
4
4
  $: ComponentInternalInstance;
5
5
  $data: {};
6
6
  $props: {
7
+ showIcon?: boolean | undefined;
8
+ icon?: string | undefined;
7
9
  items?: string[] | undefined;
10
+ showTitle?: boolean | undefined;
11
+ title?: string | undefined;
12
+ subTitle?: string | undefined;
13
+ style?: unknown;
8
14
  key?: string | number | symbol | undefined;
9
15
  ref?: VNodeRef | undefined;
10
16
  ref_for?: boolean | undefined;
@@ -48,7 +54,6 @@ declare const ProBreadcrumb: {
48
54
  [key: string]: any;
49
55
  }>) => void)[] | undefined;
50
56
  class?: unknown;
51
- style?: unknown;
52
57
  };
53
58
  $attrs: {
54
59
  [x: string]: unknown;
@@ -64,13 +69,43 @@ declare const ProBreadcrumb: {
64
69
  $emit: (event: string, ...args: any[]) => void;
65
70
  $el: any;
66
71
  $options: ComponentOptionsBase<Readonly<ExtractPropTypes<{
72
+ showIcon: {
73
+ type: PropType<boolean>;
74
+ required: false;
75
+ default: boolean;
76
+ };
77
+ icon: {
78
+ type: PropType<string>;
79
+ required: false;
80
+ default: string;
81
+ };
67
82
  items: {
68
83
  type: PropType<string[]>;
69
84
  required: false;
70
85
  default: () => never[];
71
86
  };
87
+ showTitle: {
88
+ type: PropType<boolean>;
89
+ required: false;
90
+ default: boolean;
91
+ };
92
+ title: {
93
+ type: PropType<string>;
94
+ required: false;
95
+ default: string;
96
+ };
97
+ subTitle: {
98
+ type: PropType<string>;
99
+ required: false;
100
+ default: string;
101
+ };
72
102
  }>>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {
103
+ showIcon: boolean;
104
+ icon: string;
73
105
  items: string[];
106
+ showTitle: boolean;
107
+ title: string;
108
+ subTitle: string;
74
109
  }, {}, string, {}> & {
75
110
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
76
111
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -92,23 +127,78 @@ declare const ProBreadcrumb: {
92
127
  $nextTick: typeof nextTick;
93
128
  $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: WatchOptions<boolean> | undefined): WatchStopHandle;
94
129
  } & Readonly<ExtractPropTypes<{
130
+ showIcon: {
131
+ type: PropType<boolean>;
132
+ required: false;
133
+ default: boolean;
134
+ };
135
+ icon: {
136
+ type: PropType<string>;
137
+ required: false;
138
+ default: string;
139
+ };
95
140
  items: {
96
141
  type: PropType<string[]>;
97
142
  required: false;
98
143
  default: () => never[];
99
144
  };
145
+ showTitle: {
146
+ type: PropType<boolean>;
147
+ required: false;
148
+ default: boolean;
149
+ };
150
+ title: {
151
+ type: PropType<string>;
152
+ required: false;
153
+ default: string;
154
+ };
155
+ subTitle: {
156
+ type: PropType<string>;
157
+ required: false;
158
+ default: string;
159
+ };
100
160
  }>> & ShallowUnwrapRef<{}> & {} & ComponentCustomProperties & {};
101
161
  __isFragment?: undefined;
102
162
  __isTeleport?: undefined;
103
163
  __isSuspense?: undefined;
104
164
  } & ComponentOptionsBase<Readonly<ExtractPropTypes<{
165
+ showIcon: {
166
+ type: PropType<boolean>;
167
+ required: false;
168
+ default: boolean;
169
+ };
170
+ icon: {
171
+ type: PropType<string>;
172
+ required: false;
173
+ default: string;
174
+ };
105
175
  items: {
106
176
  type: PropType<string[]>;
107
177
  required: false;
108
178
  default: () => never[];
109
179
  };
180
+ showTitle: {
181
+ type: PropType<boolean>;
182
+ required: false;
183
+ default: boolean;
184
+ };
185
+ title: {
186
+ type: PropType<string>;
187
+ required: false;
188
+ default: string;
189
+ };
190
+ subTitle: {
191
+ type: PropType<string>;
192
+ required: false;
193
+ default: string;
194
+ };
110
195
  }>>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {
196
+ showIcon: boolean;
197
+ icon: string;
111
198
  items: string[];
199
+ showTitle: boolean;
200
+ title: string;
201
+ subTitle: string;
112
202
  }, {}, string, {}> & VNodeProps & AllowedComponentProps & ComponentCustomProps & {
113
203
  install: (app: App) => void;
114
204
  };
@@ -1,9 +1,11 @@
1
1
  import _sfc_main from "./pro-breadcrumb.vue.js";
2
2
  import "./pro-breadcrumb.vue2.js";
3
3
  import { Breadcrumb } from "@arco-design/web-vue";
4
+ import { IconApps } from "@arco-design/web-vue/es/icon";
4
5
  const ProBreadcrumb = Object.assign(_sfc_main, {
5
6
  install: (app) => {
6
7
  app.use(Breadcrumb);
8
+ app.use(IconApps);
7
9
  app.component("KbProBreadcrumb", _sfc_main);
8
10
  }
9
11
  });
@@ -1,17 +1,84 @@
1
1
  import { DefineComponent, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, type PropType } from 'vue';
2
2
  declare const _default: DefineComponent<{
3
+ /** 是否显示图标 */
4
+ showIcon: {
5
+ type: PropType<boolean>;
6
+ required: false;
7
+ default: boolean;
8
+ };
9
+ /** 图标类型 */
10
+ icon: {
11
+ type: PropType<string>;
12
+ required: false;
13
+ default: string;
14
+ };
15
+ /** 面包屑项目 */
3
16
  items: {
4
17
  type: PropType<string[]>;
5
18
  required: false;
6
19
  default: () => never[];
7
20
  };
21
+ /** 是否显示标题 */
22
+ showTitle: {
23
+ type: PropType<boolean>;
24
+ required: false;
25
+ default: boolean;
26
+ };
27
+ /** 标题,不传默认展示面包屑标题最后一项 */
28
+ title: {
29
+ type: PropType<string>;
30
+ required: false;
31
+ default: string;
32
+ };
33
+ /** 副标题,不传默认不展示 */
34
+ subTitle: {
35
+ type: PropType<string>;
36
+ required: false;
37
+ default: string;
38
+ };
8
39
  }, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
40
+ /** 是否显示图标 */
41
+ showIcon: {
42
+ type: PropType<boolean>;
43
+ required: false;
44
+ default: boolean;
45
+ };
46
+ /** 图标类型 */
47
+ icon: {
48
+ type: PropType<string>;
49
+ required: false;
50
+ default: string;
51
+ };
52
+ /** 面包屑项目 */
9
53
  items: {
10
54
  type: PropType<string[]>;
11
55
  required: false;
12
56
  default: () => never[];
13
57
  };
58
+ /** 是否显示标题 */
59
+ showTitle: {
60
+ type: PropType<boolean>;
61
+ required: false;
62
+ default: boolean;
63
+ };
64
+ /** 标题,不传默认展示面包屑标题最后一项 */
65
+ title: {
66
+ type: PropType<string>;
67
+ required: false;
68
+ default: string;
69
+ };
70
+ /** 副标题,不传默认不展示 */
71
+ subTitle: {
72
+ type: PropType<string>;
73
+ required: false;
74
+ default: string;
75
+ };
14
76
  }>>, {
77
+ showIcon: boolean;
78
+ icon: string;
15
79
  items: string[];
80
+ showTitle: boolean;
81
+ title: string;
82
+ subTitle: string;
16
83
  }, {}>;
17
84
  export default _default;
@@ -1,12 +1,43 @@
1
- import { defineComponent, inject, computed, resolveComponent, openBlock, createBlock, normalizeClass, withCtx, createVNode, createElementBlock, Fragment, renderList, createTextVNode, toDisplayString, createCommentVNode } from "vue";
1
+ import { defineComponent, inject, computed, resolveComponent, openBlock, createElementBlock, normalizeClass, createVNode, withCtx, createBlock, resolveDynamicComponent, createCommentVNode, Fragment, renderList, createTextVNode, toDisplayString } from "vue";
2
2
  const prefixClsName = "keyblade-pro-breadcrumb";
3
3
  const _sfc_main = /* @__PURE__ */ defineComponent({
4
4
  __name: "pro-breadcrumb",
5
5
  props: {
6
+ /** 是否显示图标 */
7
+ showIcon: {
8
+ type: Boolean,
9
+ required: false,
10
+ default: true
11
+ },
12
+ /** 图标类型 */
13
+ icon: {
14
+ type: String,
15
+ required: false,
16
+ default: "icon-apps"
17
+ },
18
+ /** 面包屑项目 */
6
19
  items: {
7
20
  type: Array,
8
21
  required: false,
9
22
  default: () => []
23
+ },
24
+ /** 是否显示标题 */
25
+ showTitle: {
26
+ type: Boolean,
27
+ required: false,
28
+ default: true
29
+ },
30
+ /** 标题,不传默认展示面包屑标题最后一项 */
31
+ title: {
32
+ type: String,
33
+ required: false,
34
+ default: ""
35
+ },
36
+ /** 副标题,不传默认不展示 */
37
+ subTitle: {
38
+ type: String,
39
+ required: false,
40
+ default: ""
10
41
  }
11
42
  },
12
43
  setup(__props) {
@@ -19,35 +50,63 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
19
50
  return props.items || [];
20
51
  });
21
52
  return (_ctx, _cache) => {
22
- const _component_icon_apps = resolveComponent("icon-apps");
23
53
  const _component_a_breadcrumb_item = resolveComponent("a-breadcrumb-item");
24
54
  const _component_a_breadcrumb = resolveComponent("a-breadcrumb");
25
- return breadcrumbItems.value ? (openBlock(), createBlock(_component_a_breadcrumb, {
55
+ const _component_a_typography_title = resolveComponent("a-typography-title");
56
+ const _component_a_typography_text = resolveComponent("a-typography-text");
57
+ return breadcrumbItems.value ? (openBlock(), createElementBlock("div", {
26
58
  key: 0,
27
59
  class: normalizeClass(prefixClsName)
28
- }, {
29
- default: withCtx(() => [
30
- createVNode(_component_a_breadcrumb_item, {
31
- class: normalizeClass(`${prefixClsName}-icon-item`)
32
- }, {
33
- default: withCtx(() => [
34
- createVNode(_component_icon_apps)
35
- ]),
36
- _: 1
37
- }, 8, ["class"]),
38
- (openBlock(true), createElementBlock(Fragment, null, renderList(breadcrumbItems.value, (item, index) => {
39
- return openBlock(), createBlock(_component_a_breadcrumb_item, {
40
- key: `${item}-${index}`
60
+ }, [
61
+ createVNode(_component_a_breadcrumb, {
62
+ class: normalizeClass(`${prefixClsName}-items`)
63
+ }, {
64
+ default: withCtx(() => [
65
+ __props.showIcon ? (openBlock(), createBlock(_component_a_breadcrumb_item, {
66
+ key: 0,
67
+ style: { "cursor": "text" }
41
68
  }, {
42
69
  default: withCtx(() => [
43
- createTextVNode(toDisplayString(item), 1)
70
+ (openBlock(), createBlock(resolveDynamicComponent(__props.icon)))
44
71
  ]),
45
- _: 2
46
- }, 1024);
47
- }), 128))
48
- ]),
49
- _: 1
50
- })) : createCommentVNode("", true);
72
+ _: 1
73
+ })) : createCommentVNode("", true),
74
+ (openBlock(true), createElementBlock(Fragment, null, renderList(breadcrumbItems.value, (item, index) => {
75
+ return openBlock(), createBlock(_component_a_breadcrumb_item, {
76
+ key: `${item}-${index}`
77
+ }, {
78
+ default: withCtx(() => [
79
+ createTextVNode(toDisplayString(item), 1)
80
+ ]),
81
+ _: 2
82
+ }, 1024);
83
+ }), 128))
84
+ ]),
85
+ _: 1
86
+ }, 8, ["class"]),
87
+ (props == null ? void 0 : props.showTitle) ? (openBlock(), createBlock(_component_a_typography_title, {
88
+ key: 0,
89
+ heading: 6,
90
+ class: normalizeClass(`${prefixClsName}-title`)
91
+ }, {
92
+ default: withCtx(() => {
93
+ var _a, _b;
94
+ return [
95
+ createTextVNode(toDisplayString((props == null ? void 0 : props.title) || ((_b = breadcrumbItems.value) == null ? void 0 : _b[((_a = breadcrumbItems.value) == null ? void 0 : _a.length) - 1])), 1)
96
+ ];
97
+ }),
98
+ _: 1
99
+ }, 8, ["class"])) : createCommentVNode("", true),
100
+ (props == null ? void 0 : props.subTitle) ? (openBlock(), createBlock(_component_a_typography_text, {
101
+ key: 1,
102
+ class: normalizeClass(`${prefixClsName}-subtitle`)
103
+ }, {
104
+ default: withCtx(() => [
105
+ createTextVNode(toDisplayString(props == null ? void 0 : props.subTitle), 1)
106
+ ]),
107
+ _: 1
108
+ }, 8, ["class"])) : createCommentVNode("", true)
109
+ ])) : createCommentVNode("", true);
51
110
  };
52
111
  }
53
112
  });
@@ -7,6 +7,7 @@ declare const ProKeepAliveRouterView: {
7
7
  keepAliveInclude?: string[] | undefined;
8
8
  keepAliveExclude?: string[] | undefined;
9
9
  keepAliveMax?: number | undefined;
10
+ style?: unknown;
10
11
  key?: string | number | symbol | undefined;
11
12
  ref?: VNodeRef | undefined;
12
13
  ref_for?: boolean | undefined;
@@ -50,7 +51,6 @@ declare const ProKeepAliveRouterView: {
50
51
  [key: string]: any;
51
52
  }>) => void)[] | undefined;
52
53
  class?: unknown;
53
- style?: unknown;
54
54
  };
55
55
  $attrs: {
56
56
  [x: string]: unknown;
@@ -6,13 +6,16 @@ declare const ProLayout: {
6
6
  $data: {};
7
7
  $props: {
8
8
  title?: string | undefined;
9
- theme?: "dark" | "light" | undefined;
10
9
  layout?: "mix" | "side" | undefined;
11
- menuItems?: IProMenuItem[] | undefined;
10
+ headerHeight?: number | undefined;
12
11
  logo?: string | undefined;
12
+ siderWidth?: number | undefined;
13
+ siderBreakpoint?: "xxl" | "xl" | "lg" | "md" | "sm" | "xs" | undefined;
14
+ siderCollapsed?: boolean | undefined;
15
+ menuItems?: IProMenuItem[] | undefined;
13
16
  footerTitle?: string | undefined;
14
17
  showTabs?: boolean | undefined;
15
- siderBreakpoint?: "xxl" | "xl" | "lg" | "md" | "sm" | "xs" | undefined;
18
+ style?: unknown;
16
19
  key?: string | number | symbol | undefined;
17
20
  ref?: VNodeRef | undefined;
18
21
  ref_for?: boolean | undefined;
@@ -56,7 +59,6 @@ declare const ProLayout: {
56
59
  [key: string]: any;
57
60
  }>) => void)[] | undefined;
58
61
  class?: unknown;
59
- style?: unknown;
60
62
  onCollapse?: ((collapsed: boolean) => any) | undefined;
61
63
  onKeepAliveIncludeChange?: ((keepAliveInclude: string[]) => any) | undefined;
62
64
  };
@@ -79,10 +81,10 @@ declare const ProLayout: {
79
81
  required: false;
80
82
  default: string;
81
83
  };
82
- menuItems: {
83
- type: PropType<IProMenuItem[]>;
84
+ headerHeight: {
85
+ type: PropType<number>;
84
86
  required: false;
85
- default: () => never[];
87
+ default: number;
86
88
  };
87
89
  title: {
88
90
  type: PropType<string>;
@@ -94,11 +96,26 @@ declare const ProLayout: {
94
96
  required: false;
95
97
  default: string;
96
98
  };
97
- theme: {
98
- type: PropType<"dark" | "light">;
99
+ siderWidth: {
100
+ type: PropType<number>;
101
+ required: false;
102
+ default: number;
103
+ };
104
+ siderBreakpoint: {
105
+ type: PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
99
106
  required: false;
100
107
  default: string;
101
108
  };
109
+ siderCollapsed: {
110
+ type: PropType<boolean>;
111
+ required: false;
112
+ default: boolean;
113
+ };
114
+ menuItems: {
115
+ type: PropType<IProMenuItem[]>;
116
+ required: false;
117
+ default: () => never[];
118
+ };
102
119
  footerTitle: {
103
120
  type: PropType<string>;
104
121
  required: false;
@@ -109,11 +126,6 @@ declare const ProLayout: {
109
126
  required: false;
110
127
  default: boolean;
111
128
  };
112
- siderBreakpoint: {
113
- type: PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
114
- required: false;
115
- default: string;
116
- };
117
129
  }>> & {
118
130
  onCollapse?: ((collapsed: boolean) => any) | undefined;
119
131
  onKeepAliveIncludeChange?: ((keepAliveInclude: string[]) => any) | undefined;
@@ -122,13 +134,15 @@ declare const ProLayout: {
122
134
  keepAliveIncludeChange: (keepAliveInclude: string[]) => true;
123
135
  }, string, {
124
136
  title: string;
125
- theme: "dark" | "light";
126
137
  layout: "mix" | "side";
127
- menuItems: IProMenuItem[];
138
+ headerHeight: number;
128
139
  logo: string;
140
+ siderWidth: number;
141
+ siderBreakpoint: "xxl" | "xl" | "lg" | "md" | "sm" | "xs";
142
+ siderCollapsed: boolean;
143
+ menuItems: IProMenuItem[];
129
144
  footerTitle: string;
130
145
  showTabs: boolean;
131
- siderBreakpoint: "xxl" | "xl" | "lg" | "md" | "sm" | "xs";
132
146
  }, {}, string, {}> & {
133
147
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
134
148
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -155,10 +169,10 @@ declare const ProLayout: {
155
169
  required: false;
156
170
  default: string;
157
171
  };
158
- menuItems: {
159
- type: PropType<IProMenuItem[]>;
172
+ headerHeight: {
173
+ type: PropType<number>;
160
174
  required: false;
161
- default: () => never[];
175
+ default: number;
162
176
  };
163
177
  title: {
164
178
  type: PropType<string>;
@@ -170,11 +184,26 @@ declare const ProLayout: {
170
184
  required: false;
171
185
  default: string;
172
186
  };
173
- theme: {
174
- type: PropType<"dark" | "light">;
187
+ siderWidth: {
188
+ type: PropType<number>;
189
+ required: false;
190
+ default: number;
191
+ };
192
+ siderBreakpoint: {
193
+ type: PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
175
194
  required: false;
176
195
  default: string;
177
196
  };
197
+ siderCollapsed: {
198
+ type: PropType<boolean>;
199
+ required: false;
200
+ default: boolean;
201
+ };
202
+ menuItems: {
203
+ type: PropType<IProMenuItem[]>;
204
+ required: false;
205
+ default: () => never[];
206
+ };
178
207
  footerTitle: {
179
208
  type: PropType<string>;
180
209
  required: false;
@@ -185,11 +214,6 @@ declare const ProLayout: {
185
214
  required: false;
186
215
  default: boolean;
187
216
  };
188
- siderBreakpoint: {
189
- type: PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
190
- required: false;
191
- default: string;
192
- };
193
217
  }>> & {
194
218
  onCollapse?: ((collapsed: boolean) => any) | undefined;
195
219
  onKeepAliveIncludeChange?: ((keepAliveInclude: string[]) => any) | undefined;
@@ -203,10 +227,10 @@ declare const ProLayout: {
203
227
  required: false;
204
228
  default: string;
205
229
  };
206
- menuItems: {
207
- type: PropType<IProMenuItem[]>;
230
+ headerHeight: {
231
+ type: PropType<number>;
208
232
  required: false;
209
- default: () => never[];
233
+ default: number;
210
234
  };
211
235
  title: {
212
236
  type: PropType<string>;
@@ -218,11 +242,26 @@ declare const ProLayout: {
218
242
  required: false;
219
243
  default: string;
220
244
  };
221
- theme: {
222
- type: PropType<"dark" | "light">;
245
+ siderWidth: {
246
+ type: PropType<number>;
247
+ required: false;
248
+ default: number;
249
+ };
250
+ siderBreakpoint: {
251
+ type: PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
223
252
  required: false;
224
253
  default: string;
225
254
  };
255
+ siderCollapsed: {
256
+ type: PropType<boolean>;
257
+ required: false;
258
+ default: boolean;
259
+ };
260
+ menuItems: {
261
+ type: PropType<IProMenuItem[]>;
262
+ required: false;
263
+ default: () => never[];
264
+ };
226
265
  footerTitle: {
227
266
  type: PropType<string>;
228
267
  required: false;
@@ -233,11 +272,6 @@ declare const ProLayout: {
233
272
  required: false;
234
273
  default: boolean;
235
274
  };
236
- siderBreakpoint: {
237
- type: PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
238
- required: false;
239
- default: string;
240
- };
241
275
  }>> & {
242
276
  onCollapse?: ((collapsed: boolean) => any) | undefined;
243
277
  onKeepAliveIncludeChange?: ((keepAliveInclude: string[]) => any) | undefined;
@@ -246,13 +280,15 @@ declare const ProLayout: {
246
280
  keepAliveIncludeChange: (keepAliveInclude: string[]) => true;
247
281
  }, string, {
248
282
  title: string;
249
- theme: "dark" | "light";
250
283
  layout: "mix" | "side";
251
- menuItems: IProMenuItem[];
284
+ headerHeight: number;
252
285
  logo: string;
286
+ siderWidth: number;
287
+ siderBreakpoint: "xxl" | "xl" | "lg" | "md" | "sm" | "xs";
288
+ siderCollapsed: boolean;
289
+ menuItems: IProMenuItem[];
253
290
  footerTitle: string;
254
291
  showTabs: boolean;
255
- siderBreakpoint: "xxl" | "xl" | "lg" | "md" | "sm" | "xs";
256
292
  }, {}, string, {}> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
257
293
  $slots: {
258
294
  "header-left"?(_: {}): any;
@@ -4,6 +4,7 @@ import { Layout, Space, Typography, Button, Affix } from "@arco-design/web-vue";
4
4
  import { ProKeepAliveRouterView } from "../pro-keep-alive-router-view/index.js";
5
5
  import { ProMenu } from "../pro-menu/index.js";
6
6
  import { ProReuseTabs } from "../pro-reuse-tabs/index.js";
7
+ import { IconMenuFold, IconMenuUnfold } from "@arco-design/web-vue/es/icon";
7
8
  const ProLayout = Object.assign(_sfc_main, {
8
9
  install: (app) => {
9
10
  app.use(Layout);
@@ -14,6 +15,8 @@ const ProLayout = Object.assign(_sfc_main, {
14
15
  app.use(ProKeepAliveRouterView);
15
16
  app.use(ProMenu);
16
17
  app.use(ProReuseTabs);
18
+ app.use(IconMenuFold);
19
+ app.use(IconMenuUnfold);
17
20
  app.component("KbProLayout", _sfc_main);
18
21
  }
19
22
  });