@keyblade/pro-components 1.12.16 → 1.13.0

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.
@@ -1,106 +1,146 @@
1
- import { ref as i, watch as T } from "vue";
2
- import { useRoute as S, useRouter as x } from "vue-router";
3
- function J(h, o) {
4
- const r = S(), b = x(), m = i([]), P = (t) => {
5
- m.value = [t];
6
- }, u = i(), v = i([]), d = i({}), p = i([]), c = i([]), f = i([]), N = () => {
7
- const t = [], l = (a) => {
8
- var n;
9
- for (const e in a) {
10
- const s = a[e];
11
- if (s.name === ((n = u == null ? void 0 : u.value) == null ? void 0 : n.name) || s.children && s.children.length > 0 && l(s.children))
12
- return delete s.children, t.unshift(s), !0;
1
+ import { ref as r, computed as L, watch as g } from "vue";
2
+ import { useRoute as R, useRouter as W } from "vue-router";
3
+ import { ProLayoutMode as P, ProLayoutMenuType as B } from "./enum.js";
4
+ function z(u) {
5
+ const o = R(), h = W(), y = r([]), T = r([]), i = r(), v = r([]), M = r({}), k = r([]), s = r([]), p = r([]), b = r([]), f = r([]), d = L(() => {
6
+ const a = [...u.menuItems], e = (n) => {
7
+ n.forEach((l) => {
8
+ if (l != null && l.children && l.children.length > 0) {
9
+ if ((l == null ? void 0 : l.topChildrenMenu) !== void 0)
10
+ l.children = l.children.map((t) => ({ ...t, topMenu: l == null ? void 0 : l.topChildrenMenu }));
11
+ else {
12
+ const t = l.children.find((c) => c.topMenu !== void 0);
13
+ t && (l.topChildrenMenu = t.topMenu, l.children = l.children.map((c) => ({ ...c, topMenu: t.topMenu })));
14
+ }
15
+ e(l.children);
16
+ }
17
+ });
18
+ };
19
+ return u.layout === P.mix && e(a), a;
20
+ }), C = (a) => {
21
+ var e;
22
+ y.value = [a.name], !(a != null && a.children) || ((e = a == null ? void 0 : a.children) == null ? void 0 : e.length) === 0 ? (f.value = [], h == null || h.push({ path: a.path })) : f.value = a.children;
23
+ }, E = (a) => {
24
+ h == null || h.push({ path: a.path }), T.value = [a.name];
25
+ }, N = async (a, e) => {
26
+ if (e != null && e.path && !(u != null && u.onMenuItemClick && !await u.onMenuItemClick(e))) {
27
+ if (e.path.startsWith("http") || e.path.startsWith("https")) {
28
+ window.open(e.path);
29
+ return;
30
+ }
31
+ a === B.top ? C(e) : E(e);
32
+ }
33
+ }, S = () => {
34
+ const a = [], e = (n) => {
35
+ var l;
36
+ for (const t in n) {
37
+ const c = n[t];
38
+ if (c.name === ((l = i == null ? void 0 : i.value) == null ? void 0 : l.name) || c.children && c.children.length > 0 && e(c.children))
39
+ return a.unshift(c), !0;
13
40
  }
14
41
  return !1;
15
42
  };
16
- l(JSON.parse(JSON.stringify(h.value))), v.value = t;
17
- }, k = () => {
18
- var l, a, n;
19
- const t = (l = v.value) == null ? void 0 : l.map((e) => ({ path: e == null ? void 0 : e.path, label: e == null ? void 0 : e.title }));
20
- p.value = (a = u.value) != null && a.breadcrumbs ? (n = u.value) == null ? void 0 : n.breadcrumbs : t.length !== 0 ? t : [];
43
+ e(JSON.parse(JSON.stringify(d.value))), v.value = a;
44
+ }, x = () => {
45
+ var e, n, l;
46
+ const a = (e = v.value) == null ? void 0 : e.map((t) => ({ path: t == null ? void 0 : t.path, label: t == null ? void 0 : t.title }));
47
+ k.value = (n = i.value) != null && n.breadcrumbs ? (l = i.value) == null ? void 0 : l.breadcrumbs : a.length !== 0 ? a : [];
21
48
  };
22
- function y() {
23
- if (!u.value || u.value.noAffix) {
24
- c.value.forEach((e) => {
25
- e.active = !1;
49
+ function A() {
50
+ if (!i.value || i.value.noAffix) {
51
+ s.value.forEach((t) => {
52
+ t.active = !1;
26
53
  });
27
54
  return;
28
55
  }
29
- const { name: t, title: l } = u.value;
30
- let a = -1;
31
- c.value.forEach((e, s) => {
32
- e.active = !1, e.name === t && (a = s);
56
+ const { name: a, title: e } = i.value;
57
+ let n = -1;
58
+ s.value.forEach((t, c) => {
59
+ t.active = !1, t.name === a && (n = c);
33
60
  });
34
- const n = {
35
- name: t,
36
- parentNames: v.value.map((e) => e.name),
37
- title: l ?? t,
38
- fullPath: r.fullPath,
61
+ const l = {
62
+ name: a,
63
+ parentNames: v.value.map((t) => t.name),
64
+ title: e ?? a,
65
+ fullPath: o.fullPath,
39
66
  active: !0
40
67
  };
41
- if (~a) {
42
- const e = c.value[a];
43
- e.fullPath === r.fullPath ? (e.active = !0, e.fullPath = r.fullPath) : (c.value.splice(a, 1), setTimeout(() => {
44
- c.value.push(n);
68
+ if (~n) {
69
+ const t = s.value[n];
70
+ t.fullPath === o.fullPath ? (t.active = !0, t.fullPath = o.fullPath) : (s.value.splice(n, 1), setTimeout(() => {
71
+ s.value.push(l);
45
72
  }));
46
73
  } else
47
- c.value.push(n);
74
+ s.value.push(l);
48
75
  }
49
- const A = (t) => {
50
- const l = c.value.findIndex((n) => n.name === t), a = c.value[l];
51
- b.push(a.fullPath);
52
- }, E = (t) => {
53
- let l = -1, a = -1;
54
- if (c.value.forEach((e, s) => {
55
- e.name === t && (a = s), e.active && (l = s);
56
- }), l === a) {
57
- let e;
58
- a === 0 ? e = c.value[a + 1] : e = c.value[a - 1], e.active = !0, b.push(e.fullPath);
76
+ const w = (a) => {
77
+ const e = s.value.findIndex((l) => l.name === a), n = s.value[e];
78
+ h.push(n.fullPath);
79
+ }, K = (a) => {
80
+ let e = -1, n = -1;
81
+ if (s.value.forEach((t, c) => {
82
+ t.name === a && (n = c), t.active && (e = c);
83
+ }), e === n) {
84
+ let t;
85
+ n === 0 ? t = s.value[n + 1] : t = s.value[n - 1], t.active = !0, h.push(t.fullPath);
59
86
  }
60
- const n = c.value.splice(a, 1);
61
- I(n[0]);
62
- }, g = () => {
63
- var l;
64
- if (o != null && o.disableKeepAlive || (l = r == null ? void 0 : r.meta) != null && l.ignoreCache)
87
+ const l = s.value.splice(n, 1);
88
+ O(l[0]);
89
+ }, J = () => {
90
+ var e;
91
+ if (u != null && u.disableKeepAlive || (e = o == null ? void 0 : o.meta) != null && e.ignoreCache)
65
92
  return;
66
- const t = new Set(f.value);
67
- v.value.forEach((a) => {
68
- a.name && t.add(a.name);
69
- }), f.value = Array.from(t.values());
70
- }, I = (t) => {
71
- const l = new Set(f.value);
72
- t.parentNames.forEach((a) => {
73
- l.delete(a);
74
- }), c.value.forEach((a) => {
75
- a.parentNames.forEach((n) => {
76
- const e = d.value[n];
77
- e != null && e.ignoreCache || l.add(e.name);
93
+ const a = new Set(p.value);
94
+ v.value.forEach((n) => {
95
+ n.name && a.add(n.name);
96
+ }), p.value = Array.from(a.values());
97
+ }, O = (a) => {
98
+ const e = new Set(p.value);
99
+ a.parentNames.forEach((n) => {
100
+ e.delete(n);
101
+ }), s.value.forEach((n) => {
102
+ n.parentNames.forEach((l) => {
103
+ const t = M.value[l];
104
+ t != null && t.ignoreCache || e.add(t.name);
78
105
  });
79
- }), f.value = Array.from(l.values());
106
+ }), p.value = Array.from(e.values());
80
107
  };
81
- return T(h, () => {
82
- const t = {}, l = (a) => {
83
- a.forEach((n) => {
84
- n.children && n.children.length > 0 && l(n.children), delete n.children, t[n.name] = n;
108
+ return g(() => d.value, () => {
109
+ const a = {}, e = (n) => {
110
+ n.forEach((l) => {
111
+ l.children && l.children.length > 0 && e(l.children), delete l.children, a[l.name] = l;
85
112
  });
86
113
  };
87
- l(JSON.parse(JSON.stringify(h.value))), d.value = t;
88
- }, { immediate: !0 }), T(() => r == null ? void 0 : r.name, () => {
89
- var l;
90
- const t = r == null ? void 0 : r.name;
91
- u.value = d.value[t], m.value = u != null && u.value ? [u.value.name, ...((l = u.value) == null ? void 0 : l.activatedKeys) || []] : [], N(), k(), o.hideTabs || y(), g();
114
+ e(JSON.parse(JSON.stringify(d.value))), M.value = a;
115
+ }, { immediate: !0 }), g(() => [u.layout, d.value], () => {
116
+ var a;
117
+ if (b.value = [], f.value = [], u.layout === P.side)
118
+ f.value = d.value;
119
+ else if (u.layout === P.mix) {
120
+ const e = (a = d.value) == null ? void 0 : a.filter((n) => n.topMenu);
121
+ (e == null ? void 0 : e.length) === 0 ? f.value = d.value : b.value = e;
122
+ }
123
+ }, { immediate: !0 }), g(() => o == null ? void 0 : o.name, () => {
124
+ var n, l, t;
125
+ const a = o == null ? void 0 : o.name;
126
+ i.value = M.value[a], S();
127
+ const e = v.value.filter((c) => c.topMenu);
128
+ e.length > 0 && b.value.length > 0 && (f.value = ((n = e[e.length - 1]) == null ? void 0 : n.children) || []), y.value = i != null && i.value ? [...e.map((c) => c.name), ...((l = i.value) == null ? void 0 : l.activatedKeys) || []] : [], T.value = i != null && i.value ? [i.value.name, ...((t = i.value) == null ? void 0 : t.activatedKeys) || []] : [], x(), u.hideTabs || A(), J();
92
129
  }, { immediate: !0 }), {
93
- menuSelectedKeys: m,
94
- activeMenuItem: u,
95
- menuItemMap: d,
96
- breadcrumbItems: p,
97
- tabs: c,
98
- keepAliveInclude: f,
99
- onMenuItemClick: P,
100
- onTabClick: A,
101
- onTabDelete: E
130
+ topMenuItems: b,
131
+ siderMenuItems: f,
132
+ topMenuSelectedKeys: y,
133
+ siderMenuSelectedKeys: T,
134
+ activeMenuItem: i,
135
+ menuItemMap: M,
136
+ breadcrumbItems: k,
137
+ tabs: s,
138
+ keepAliveInclude: p,
139
+ onProMenuItemClick: N,
140
+ onTabClick: w,
141
+ onTabDelete: K
102
142
  };
103
143
  }
104
144
  export {
105
- J as useHooks
145
+ z as useHooks
106
146
  };
@@ -1,96 +1,6 @@
1
1
  import { App } from 'vue';
2
2
  declare const ProLayout: {
3
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
4
- layout: {
5
- type: import('vue').PropType<"mix" | "side">;
6
- required: false;
7
- default: string;
8
- };
9
- hideHeader: {
10
- type: import('vue').PropType<boolean>;
11
- required: false;
12
- default: boolean;
13
- };
14
- headerHeight: {
15
- type: import('vue').PropType<number>;
16
- required: false;
17
- default: number;
18
- };
19
- logo: {
20
- type: import('vue').PropType<string>;
21
- required: false;
22
- default: string;
23
- };
24
- title: {
25
- type: import('vue').PropType<string>;
26
- required: false;
27
- default: string;
28
- };
29
- siderWidth: {
30
- type: import('vue').PropType<number>;
31
- required: false;
32
- default: number;
33
- };
34
- siderBreakpoint: {
35
- type: import('vue').PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
36
- required: false;
37
- default: string;
38
- };
39
- siderCollapsed: {
40
- type: import('vue').PropType<boolean>;
41
- required: false;
42
- default: boolean;
43
- };
44
- menuItems: {
45
- type: import('vue').PropType<import('..').IProMenuItem[]>;
46
- required: false;
47
- default: () => never[];
48
- };
49
- menuProps: {
50
- type: import('vue').PropType<Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps>>;
51
- required: false;
52
- default: () => {};
53
- };
54
- footerTitle: {
55
- type: import('vue').PropType<string>;
56
- required: false;
57
- default: string;
58
- };
59
- hideFooter: {
60
- type: import('vue').PropType<boolean>;
61
- required: false;
62
- default: boolean;
63
- };
64
- hideTabs: {
65
- type: import('vue').PropType<boolean>;
66
- required: false;
67
- default: boolean;
68
- };
69
- tabsSize: {
70
- type: import('vue').PropType<"mini" | "small" | "medium" | "large">;
71
- required: false;
72
- default: string;
73
- };
74
- tabsType: {
75
- type: import('vue').PropType<"line" | "card" | "card-gutter" | "text" | "rounded" | "capsule">;
76
- required: false;
77
- default: string;
78
- };
79
- tabsHeaderPadding: {
80
- type: import('vue').PropType<boolean>;
81
- required: false;
82
- default: boolean;
83
- };
84
- disableKeepAlive: {
85
- type: import('vue').PropType<boolean>;
86
- required: false;
87
- default: boolean;
88
- };
89
- onMenuItemClick: {
90
- type: import('vue').PropType<(menuItem: import('..').IProMenuItem) => Promise<boolean>>;
91
- required: false;
92
- };
93
- }>> & Readonly<{
3
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./type').IProLayoutProps> & Readonly<{
94
4
  onCollapse?: ((_collapsed: boolean) => any) | undefined;
95
5
  onKeepAliveIncludeChange?: ((_keepAliveInclude: string[]) => any) | undefined;
96
6
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
@@ -99,11 +9,12 @@ declare const ProLayout: {
99
9
  }, import('vue').PublicProps, {
100
10
  title: string;
101
11
  menuProps: Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps>;
102
- tabsSize: "small" | "mini" | "medium" | "large";
103
- tabsType: "line" | "text" | "card" | "card-gutter" | "rounded" | "capsule";
12
+ tabsSize: "mini" | "small" | "medium" | "large";
13
+ tabsType: "line" | "card" | "card-gutter" | "text" | "rounded" | "capsule";
104
14
  tabsHeaderPadding: boolean;
105
- layout: "mix" | "side";
15
+ layout: import('./enum').ProLayoutMode;
106
16
  hideHeader: boolean;
17
+ hiderSider: boolean;
107
18
  headerHeight: number;
108
19
  logo: string;
109
20
  siderWidth: number;
@@ -114,114 +25,25 @@ declare const ProLayout: {
114
25
  hideFooter: boolean;
115
26
  hideTabs: boolean;
116
27
  disableKeepAlive: boolean;
117
- }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
28
+ }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
118
29
  P: {};
119
30
  B: {};
120
31
  D: {};
121
32
  C: {};
122
33
  M: {};
123
34
  Defaults: {};
124
- }, Readonly<import('vue').ExtractPropTypes<{
125
- layout: {
126
- type: import('vue').PropType<"mix" | "side">;
127
- required: false;
128
- default: string;
129
- };
130
- hideHeader: {
131
- type: import('vue').PropType<boolean>;
132
- required: false;
133
- default: boolean;
134
- };
135
- headerHeight: {
136
- type: import('vue').PropType<number>;
137
- required: false;
138
- default: number;
139
- };
140
- logo: {
141
- type: import('vue').PropType<string>;
142
- required: false;
143
- default: string;
144
- };
145
- title: {
146
- type: import('vue').PropType<string>;
147
- required: false;
148
- default: string;
149
- };
150
- siderWidth: {
151
- type: import('vue').PropType<number>;
152
- required: false;
153
- default: number;
154
- };
155
- siderBreakpoint: {
156
- type: import('vue').PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
157
- required: false;
158
- default: string;
159
- };
160
- siderCollapsed: {
161
- type: import('vue').PropType<boolean>;
162
- required: false;
163
- default: boolean;
164
- };
165
- menuItems: {
166
- type: import('vue').PropType<import('..').IProMenuItem[]>;
167
- required: false;
168
- default: () => never[];
169
- };
170
- menuProps: {
171
- type: import('vue').PropType<Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps>>;
172
- required: false;
173
- default: () => {};
174
- };
175
- footerTitle: {
176
- type: import('vue').PropType<string>;
177
- required: false;
178
- default: string;
179
- };
180
- hideFooter: {
181
- type: import('vue').PropType<boolean>;
182
- required: false;
183
- default: boolean;
184
- };
185
- hideTabs: {
186
- type: import('vue').PropType<boolean>;
187
- required: false;
188
- default: boolean;
189
- };
190
- tabsSize: {
191
- type: import('vue').PropType<"mini" | "small" | "medium" | "large">;
192
- required: false;
193
- default: string;
194
- };
195
- tabsType: {
196
- type: import('vue').PropType<"line" | "card" | "card-gutter" | "text" | "rounded" | "capsule">;
197
- required: false;
198
- default: string;
199
- };
200
- tabsHeaderPadding: {
201
- type: import('vue').PropType<boolean>;
202
- required: false;
203
- default: boolean;
204
- };
205
- disableKeepAlive: {
206
- type: import('vue').PropType<boolean>;
207
- required: false;
208
- default: boolean;
209
- };
210
- onMenuItemClick: {
211
- type: import('vue').PropType<(menuItem: import('..').IProMenuItem) => Promise<boolean>>;
212
- required: false;
213
- };
214
- }>> & Readonly<{
35
+ }, Readonly<import('./type').IProLayoutProps> & Readonly<{
215
36
  onCollapse?: ((_collapsed: boolean) => any) | undefined;
216
37
  onKeepAliveIncludeChange?: ((_keepAliveInclude: string[]) => any) | undefined;
217
38
  }>, {}, {}, {}, {}, {
218
39
  title: string;
219
40
  menuProps: Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps>;
220
- tabsSize: "small" | "mini" | "medium" | "large";
221
- tabsType: "line" | "text" | "card" | "card-gutter" | "rounded" | "capsule";
41
+ tabsSize: "mini" | "small" | "medium" | "large";
42
+ tabsType: "line" | "card" | "card-gutter" | "text" | "rounded" | "capsule";
222
43
  tabsHeaderPadding: boolean;
223
- layout: "mix" | "side";
44
+ layout: import('./enum').ProLayoutMode;
224
45
  hideHeader: boolean;
46
+ hiderSider: boolean;
225
47
  headerHeight: number;
226
48
  logo: string;
227
49
  siderWidth: number;
@@ -236,97 +58,7 @@ declare const ProLayout: {
236
58
  __isFragment?: never;
237
59
  __isTeleport?: never;
238
60
  __isSuspense?: never;
239
- } & import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
240
- layout: {
241
- type: import('vue').PropType<"mix" | "side">;
242
- required: false;
243
- default: string;
244
- };
245
- hideHeader: {
246
- type: import('vue').PropType<boolean>;
247
- required: false;
248
- default: boolean;
249
- };
250
- headerHeight: {
251
- type: import('vue').PropType<number>;
252
- required: false;
253
- default: number;
254
- };
255
- logo: {
256
- type: import('vue').PropType<string>;
257
- required: false;
258
- default: string;
259
- };
260
- title: {
261
- type: import('vue').PropType<string>;
262
- required: false;
263
- default: string;
264
- };
265
- siderWidth: {
266
- type: import('vue').PropType<number>;
267
- required: false;
268
- default: number;
269
- };
270
- siderBreakpoint: {
271
- type: import('vue').PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
272
- required: false;
273
- default: string;
274
- };
275
- siderCollapsed: {
276
- type: import('vue').PropType<boolean>;
277
- required: false;
278
- default: boolean;
279
- };
280
- menuItems: {
281
- type: import('vue').PropType<import('..').IProMenuItem[]>;
282
- required: false;
283
- default: () => never[];
284
- };
285
- menuProps: {
286
- type: import('vue').PropType<Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps>>;
287
- required: false;
288
- default: () => {};
289
- };
290
- footerTitle: {
291
- type: import('vue').PropType<string>;
292
- required: false;
293
- default: string;
294
- };
295
- hideFooter: {
296
- type: import('vue').PropType<boolean>;
297
- required: false;
298
- default: boolean;
299
- };
300
- hideTabs: {
301
- type: import('vue').PropType<boolean>;
302
- required: false;
303
- default: boolean;
304
- };
305
- tabsSize: {
306
- type: import('vue').PropType<"mini" | "small" | "medium" | "large">;
307
- required: false;
308
- default: string;
309
- };
310
- tabsType: {
311
- type: import('vue').PropType<"line" | "card" | "card-gutter" | "text" | "rounded" | "capsule">;
312
- required: false;
313
- default: string;
314
- };
315
- tabsHeaderPadding: {
316
- type: import('vue').PropType<boolean>;
317
- required: false;
318
- default: boolean;
319
- };
320
- disableKeepAlive: {
321
- type: import('vue').PropType<boolean>;
322
- required: false;
323
- default: boolean;
324
- };
325
- onMenuItemClick: {
326
- type: import('vue').PropType<(menuItem: import('..').IProMenuItem) => Promise<boolean>>;
327
- required: false;
328
- };
329
- }>> & Readonly<{
61
+ } & import('vue').ComponentOptionsBase<Readonly<import('./type').IProLayoutProps> & Readonly<{
330
62
  onCollapse?: ((_collapsed: boolean) => any) | undefined;
331
63
  onKeepAliveIncludeChange?: ((_keepAliveInclude: string[]) => any) | undefined;
332
64
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
@@ -335,11 +67,12 @@ declare const ProLayout: {
335
67
  }, string, {
336
68
  title: string;
337
69
  menuProps: Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps>;
338
- tabsSize: "small" | "mini" | "medium" | "large";
339
- tabsType: "line" | "text" | "card" | "card-gutter" | "rounded" | "capsule";
70
+ tabsSize: "mini" | "small" | "medium" | "large";
71
+ tabsType: "line" | "card" | "card-gutter" | "text" | "rounded" | "capsule";
340
72
  tabsHeaderPadding: boolean;
341
- layout: "mix" | "side";
73
+ layout: import('./enum').ProLayoutMode;
342
74
  hideHeader: boolean;
75
+ hiderSider: boolean;
343
76
  headerHeight: number;
344
77
  logo: string;
345
78
  siderWidth: number;
@@ -353,7 +86,9 @@ declare const ProLayout: {
353
86
  }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
354
87
  $slots: {
355
88
  'header-left'?(_: {}): any;
356
- 'header-center'?(_: {}): any;
89
+ 'header-center-left'?(_: {}): any;
90
+ 'header-center-center'?(_: {}): any;
91
+ 'header-center-right'?(_: {}): any;
357
92
  'header-right'?(_: {}): any;
358
93
  'sider-top'?(_: {}): any;
359
94
  footer?(_: {}): any;