@keyblade/pro-components 0.0.2 → 0.0.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.
- package/es/index.d.ts +1 -2
- package/es/index.js +10 -10
- package/es/pro-breadcrumb/index.js +2 -1
- package/es/pro-layout/{hooks/index.d.ts → hooks.d.ts} +1 -1
- package/es/pro-layout/{hooks/index.js → hooks.js} +0 -0
- package/es/pro-layout/index.d.ts +37 -123
- package/es/pro-layout/index.js +2 -1
- package/es/pro-layout/pro-layout.vue.d.ts +14 -55
- package/es/pro-layout/pro-layout.vue.js +48 -108
- package/es/pro-menu/index.js +2 -1
- package/es/pro-menu/pro-menu.vue.js +0 -1
- package/es/pro-page-wrapper/index.js +2 -1
- package/es/pro-reuse-tabs/index.js +2 -1
- package/es/pro-reuse-tabs/pro-reuse-tabs.vue.d.ts +1 -1
- package/es/style.css +18 -20
- package/package.json +1 -1
- package/src/index.ts +1 -2
- package/es/pro-layout/enum.d.ts +0 -5
- package/es/pro-layout/enum.js +0 -8
- package/es/pro-layout/hooks/theme.d.ts +0 -6
- package/es/pro-layout/hooks/theme.js +0 -41
package/es/index.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { App } from 'vue';
|
|
1
|
+
import type { App } from 'vue';
|
|
2
2
|
declare const _default: {
|
|
3
3
|
install(app: App): void;
|
|
4
4
|
};
|
|
5
5
|
export default _default;
|
|
6
6
|
export { default as ProBreadcrumb } from './pro-breadcrumb';
|
|
7
7
|
export { default as ProLayout } from './pro-layout';
|
|
8
|
-
export type { EProLayoutTheme } from './pro-layout';
|
|
9
8
|
export { default as ProMenu } from './pro-menu';
|
|
10
9
|
export type { IProMenuItem } from './pro-menu';
|
|
11
10
|
export { default as ProPageWrapper } from './pro-page-wrapper';
|
package/es/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ProBreadcrumb } from "./pro-breadcrumb/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { default as default2 } from "./pro-breadcrumb/index.js";
|
|
3
3
|
import { ProMenu } from "./pro-menu/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import { default as default3 } from "./pro-menu/index.js";
|
|
5
5
|
import { ProPageWrapper } from "./pro-page-wrapper/index.js";
|
|
6
|
-
import {
|
|
6
|
+
import { default as default4 } from "./pro-page-wrapper/index.js";
|
|
7
7
|
import { ProReuseTabs } from "./pro-reuse-tabs/index.js";
|
|
8
|
-
import {
|
|
8
|
+
import { default as default5 } from "./pro-reuse-tabs/index.js";
|
|
9
9
|
import { ProLayout } from "./pro-layout/index.js";
|
|
10
|
-
import {
|
|
10
|
+
import { default as default6 } from "./pro-layout/index.js";
|
|
11
11
|
const index = {
|
|
12
12
|
install(app) {
|
|
13
13
|
app.use(ProBreadcrumb);
|
|
@@ -18,10 +18,10 @@ const index = {
|
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
20
|
export {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
default2 as ProBreadcrumb,
|
|
22
|
+
default6 as ProLayout,
|
|
23
|
+
default3 as ProMenu,
|
|
24
|
+
default4 as ProPageWrapper,
|
|
25
|
+
default5 as ProReuseTabs,
|
|
26
26
|
index as default
|
|
27
27
|
};
|
|
File without changes
|
package/es/pro-layout/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { EProLayoutTheme } from './enum';
|
|
2
1
|
import type { IProMenuItem } from '../pro-menu';
|
|
3
2
|
import type { ComponentInternalInstance, ExtractPropTypes, PropType, VNodeProps, AllowedComponentProps, ComponentCustomProps, Slot, ComponentPublicInstance, ComponentOptionsBase, Ref, ComputedRef, ComponentOptionsMixin, DebuggerEvent, nextTick, WatchOptions, WatchStopHandle, ShallowUnwrapRef, ComponentCustomProperties, App } from 'vue';
|
|
4
3
|
declare const ProLayout: {
|
|
@@ -9,15 +8,9 @@ declare const ProLayout: {
|
|
|
9
8
|
menuItems: IProMenuItem[];
|
|
10
9
|
headerTitle: string;
|
|
11
10
|
headerLogo: string;
|
|
12
|
-
|
|
13
|
-
hideThemeItem: boolean;
|
|
11
|
+
theme: "light" | "dark";
|
|
14
12
|
footerTitle: string;
|
|
15
|
-
theme: EProLayoutTheme;
|
|
16
13
|
tabsMode: boolean;
|
|
17
|
-
user: {
|
|
18
|
-
name: string;
|
|
19
|
-
avatar?: string | undefined;
|
|
20
|
-
};
|
|
21
14
|
}> & Omit<Readonly<ExtractPropTypes<{
|
|
22
15
|
menuItems: {
|
|
23
16
|
type: PropType<IProMenuItem[]>;
|
|
@@ -34,40 +27,24 @@ declare const ProLayout: {
|
|
|
34
27
|
required: false;
|
|
35
28
|
default: string;
|
|
36
29
|
};
|
|
37
|
-
|
|
38
|
-
type: PropType<
|
|
39
|
-
required: false;
|
|
40
|
-
default: () => never[];
|
|
41
|
-
};
|
|
42
|
-
hideThemeItem: {
|
|
43
|
-
type: PropType<boolean>;
|
|
30
|
+
theme: {
|
|
31
|
+
type: PropType<"light" | "dark">;
|
|
44
32
|
required: false;
|
|
45
|
-
default:
|
|
33
|
+
default: string;
|
|
46
34
|
};
|
|
47
35
|
footerTitle: {
|
|
48
36
|
type: PropType<string>;
|
|
49
37
|
required: false;
|
|
50
38
|
default: string;
|
|
51
39
|
};
|
|
52
|
-
theme: {
|
|
53
|
-
type: PropType<EProLayoutTheme>;
|
|
54
|
-
required: false;
|
|
55
|
-
default: EProLayoutTheme;
|
|
56
|
-
};
|
|
57
40
|
tabsMode: {
|
|
58
41
|
type: PropType<boolean>;
|
|
59
42
|
required: false;
|
|
60
43
|
default: boolean;
|
|
61
44
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
avatar?: string | undefined;
|
|
66
|
-
}>;
|
|
67
|
-
required: false;
|
|
68
|
-
default: undefined;
|
|
69
|
-
};
|
|
70
|
-
}>> & VNodeProps & AllowedComponentProps & ComponentCustomProps, "menuItems" | "headerTitle" | "headerLogo" | "headerRightItemSlotNames" | "hideThemeItem" | "footerTitle" | "theme" | "tabsMode" | "user">;
|
|
45
|
+
}>> & {
|
|
46
|
+
onCollapse?: ((collapsed: boolean) => any) | undefined;
|
|
47
|
+
} & VNodeProps & AllowedComponentProps & ComponentCustomProps, "menuItems" | "headerTitle" | "headerLogo" | "theme" | "footerTitle" | "tabsMode">;
|
|
71
48
|
$attrs: {
|
|
72
49
|
[x: string]: unknown;
|
|
73
50
|
};
|
|
@@ -79,7 +56,7 @@ declare const ProLayout: {
|
|
|
79
56
|
}>;
|
|
80
57
|
$root: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
|
|
81
58
|
$parent: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
|
|
82
|
-
$emit: (event:
|
|
59
|
+
$emit: (event: "collapse", collapsed: boolean) => void;
|
|
83
60
|
$el: any;
|
|
84
61
|
$options: ComponentOptionsBase<Readonly<ExtractPropTypes<{
|
|
85
62
|
menuItems: {
|
|
@@ -97,48 +74,31 @@ declare const ProLayout: {
|
|
|
97
74
|
required: false;
|
|
98
75
|
default: string;
|
|
99
76
|
};
|
|
100
|
-
|
|
101
|
-
type: PropType<
|
|
102
|
-
required: false;
|
|
103
|
-
default: () => never[];
|
|
104
|
-
};
|
|
105
|
-
hideThemeItem: {
|
|
106
|
-
type: PropType<boolean>;
|
|
77
|
+
theme: {
|
|
78
|
+
type: PropType<"light" | "dark">;
|
|
107
79
|
required: false;
|
|
108
|
-
default:
|
|
80
|
+
default: string;
|
|
109
81
|
};
|
|
110
82
|
footerTitle: {
|
|
111
83
|
type: PropType<string>;
|
|
112
84
|
required: false;
|
|
113
85
|
default: string;
|
|
114
86
|
};
|
|
115
|
-
theme: {
|
|
116
|
-
type: PropType<EProLayoutTheme>;
|
|
117
|
-
required: false;
|
|
118
|
-
default: EProLayoutTheme;
|
|
119
|
-
};
|
|
120
87
|
tabsMode: {
|
|
121
88
|
type: PropType<boolean>;
|
|
122
89
|
required: false;
|
|
123
90
|
default: boolean;
|
|
124
91
|
};
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
avatar?: string | undefined;
|
|
129
|
-
}>;
|
|
130
|
-
required: false;
|
|
131
|
-
default: undefined;
|
|
132
|
-
};
|
|
133
|
-
}>>, {
|
|
92
|
+
}>> & {
|
|
93
|
+
onCollapse?: ((collapsed: boolean) => any) | undefined;
|
|
94
|
+
}, {
|
|
134
95
|
prefixClsName: string;
|
|
135
96
|
props: any;
|
|
97
|
+
emit: (event: "collapse", collapsed: boolean) => void;
|
|
136
98
|
menuItems: Ref<IProMenuItem[]>;
|
|
137
99
|
slots: Readonly<{
|
|
138
100
|
[name: string]: Slot | undefined;
|
|
139
101
|
}>;
|
|
140
|
-
currentTheme: Readonly<Ref<EProLayoutTheme>>;
|
|
141
|
-
onToggleCurrentTheme: () => void;
|
|
142
102
|
menuSelectedKeys: Ref<string[]>;
|
|
143
103
|
menuOpenKeys: Ref<string[]>;
|
|
144
104
|
onMenuItemClick: (key: string) => void;
|
|
@@ -160,20 +120,15 @@ declare const ProLayout: {
|
|
|
160
120
|
siderCollapsedWidthPx: string;
|
|
161
121
|
siderCollapsed: Ref<boolean>;
|
|
162
122
|
onSiderCollapse: (val: boolean) => void;
|
|
163
|
-
|
|
164
|
-
|
|
123
|
+
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
124
|
+
collapse: (collapsed: boolean) => true;
|
|
125
|
+
}, string, {
|
|
165
126
|
menuItems: IProMenuItem[];
|
|
166
127
|
headerTitle: string;
|
|
167
128
|
headerLogo: string;
|
|
168
|
-
|
|
169
|
-
hideThemeItem: boolean;
|
|
129
|
+
theme: "light" | "dark";
|
|
170
130
|
footerTitle: string;
|
|
171
|
-
theme: EProLayoutTheme;
|
|
172
131
|
tabsMode: boolean;
|
|
173
|
-
user: {
|
|
174
|
-
name: string;
|
|
175
|
-
avatar?: string | undefined;
|
|
176
|
-
};
|
|
177
132
|
}, {}, string> & {
|
|
178
133
|
beforeCreate?: ((() => void) | (() => void)[]) | undefined;
|
|
179
134
|
created?: ((() => void) | (() => void)[]) | undefined;
|
|
@@ -210,48 +165,31 @@ declare const ProLayout: {
|
|
|
210
165
|
required: false;
|
|
211
166
|
default: string;
|
|
212
167
|
};
|
|
213
|
-
|
|
214
|
-
type: PropType<
|
|
215
|
-
required: false;
|
|
216
|
-
default: () => never[];
|
|
217
|
-
};
|
|
218
|
-
hideThemeItem: {
|
|
219
|
-
type: PropType<boolean>;
|
|
168
|
+
theme: {
|
|
169
|
+
type: PropType<"light" | "dark">;
|
|
220
170
|
required: false;
|
|
221
|
-
default:
|
|
171
|
+
default: string;
|
|
222
172
|
};
|
|
223
173
|
footerTitle: {
|
|
224
174
|
type: PropType<string>;
|
|
225
175
|
required: false;
|
|
226
176
|
default: string;
|
|
227
177
|
};
|
|
228
|
-
theme: {
|
|
229
|
-
type: PropType<EProLayoutTheme>;
|
|
230
|
-
required: false;
|
|
231
|
-
default: EProLayoutTheme;
|
|
232
|
-
};
|
|
233
178
|
tabsMode: {
|
|
234
179
|
type: PropType<boolean>;
|
|
235
180
|
required: false;
|
|
236
181
|
default: boolean;
|
|
237
182
|
};
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
avatar?: string | undefined;
|
|
242
|
-
}>;
|
|
243
|
-
required: false;
|
|
244
|
-
default: undefined;
|
|
245
|
-
};
|
|
246
|
-
}>> & ShallowUnwrapRef<{
|
|
183
|
+
}>> & {
|
|
184
|
+
onCollapse?: ((collapsed: boolean) => any) | undefined;
|
|
185
|
+
} & ShallowUnwrapRef<{
|
|
247
186
|
prefixClsName: string;
|
|
248
187
|
props: any;
|
|
188
|
+
emit: (event: "collapse", collapsed: boolean) => void;
|
|
249
189
|
menuItems: Ref<IProMenuItem[]>;
|
|
250
190
|
slots: Readonly<{
|
|
251
191
|
[name: string]: Slot | undefined;
|
|
252
192
|
}>;
|
|
253
|
-
currentTheme: Readonly<Ref<EProLayoutTheme>>;
|
|
254
|
-
onToggleCurrentTheme: () => void;
|
|
255
193
|
menuSelectedKeys: Ref<string[]>;
|
|
256
194
|
menuOpenKeys: Ref<string[]>;
|
|
257
195
|
onMenuItemClick: (key: string) => void;
|
|
@@ -273,7 +211,6 @@ declare const ProLayout: {
|
|
|
273
211
|
siderCollapsedWidthPx: string;
|
|
274
212
|
siderCollapsed: Ref<boolean>;
|
|
275
213
|
onSiderCollapse: (val: boolean) => void;
|
|
276
|
-
readonly EProLayoutTheme: typeof EProLayoutTheme;
|
|
277
214
|
}> & {} & ComponentCustomProperties & {};
|
|
278
215
|
__isFragment?: undefined;
|
|
279
216
|
__isTeleport?: undefined;
|
|
@@ -294,48 +231,31 @@ declare const ProLayout: {
|
|
|
294
231
|
required: false;
|
|
295
232
|
default: string;
|
|
296
233
|
};
|
|
297
|
-
|
|
298
|
-
type: PropType<
|
|
299
|
-
required: false;
|
|
300
|
-
default: () => never[];
|
|
301
|
-
};
|
|
302
|
-
hideThemeItem: {
|
|
303
|
-
type: PropType<boolean>;
|
|
234
|
+
theme: {
|
|
235
|
+
type: PropType<"light" | "dark">;
|
|
304
236
|
required: false;
|
|
305
|
-
default:
|
|
237
|
+
default: string;
|
|
306
238
|
};
|
|
307
239
|
footerTitle: {
|
|
308
240
|
type: PropType<string>;
|
|
309
241
|
required: false;
|
|
310
242
|
default: string;
|
|
311
243
|
};
|
|
312
|
-
theme: {
|
|
313
|
-
type: PropType<EProLayoutTheme>;
|
|
314
|
-
required: false;
|
|
315
|
-
default: EProLayoutTheme;
|
|
316
|
-
};
|
|
317
244
|
tabsMode: {
|
|
318
245
|
type: PropType<boolean>;
|
|
319
246
|
required: false;
|
|
320
247
|
default: boolean;
|
|
321
248
|
};
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
avatar?: string | undefined;
|
|
326
|
-
}>;
|
|
327
|
-
required: false;
|
|
328
|
-
default: undefined;
|
|
329
|
-
};
|
|
330
|
-
}>>, {
|
|
249
|
+
}>> & {
|
|
250
|
+
onCollapse?: ((collapsed: boolean) => any) | undefined;
|
|
251
|
+
}, {
|
|
331
252
|
prefixClsName: string;
|
|
332
253
|
props: any;
|
|
254
|
+
emit: (event: "collapse", collapsed: boolean) => void;
|
|
333
255
|
menuItems: Ref<IProMenuItem[]>;
|
|
334
256
|
slots: Readonly<{
|
|
335
257
|
[name: string]: Slot | undefined;
|
|
336
258
|
}>;
|
|
337
|
-
currentTheme: Readonly<Ref<EProLayoutTheme>>;
|
|
338
|
-
onToggleCurrentTheme: () => void;
|
|
339
259
|
menuSelectedKeys: Ref<string[]>;
|
|
340
260
|
menuOpenKeys: Ref<string[]>;
|
|
341
261
|
onMenuItemClick: (key: string) => void;
|
|
@@ -357,23 +277,17 @@ declare const ProLayout: {
|
|
|
357
277
|
siderCollapsedWidthPx: string;
|
|
358
278
|
siderCollapsed: Ref<boolean>;
|
|
359
279
|
onSiderCollapse: (val: boolean) => void;
|
|
360
|
-
|
|
361
|
-
|
|
280
|
+
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
281
|
+
collapse: (collapsed: boolean) => true;
|
|
282
|
+
}, string, {
|
|
362
283
|
menuItems: IProMenuItem[];
|
|
363
284
|
headerTitle: string;
|
|
364
285
|
headerLogo: string;
|
|
365
|
-
|
|
366
|
-
hideThemeItem: boolean;
|
|
286
|
+
theme: "light" | "dark";
|
|
367
287
|
footerTitle: string;
|
|
368
|
-
theme: EProLayoutTheme;
|
|
369
288
|
tabsMode: boolean;
|
|
370
|
-
user: {
|
|
371
|
-
name: string;
|
|
372
|
-
avatar?: string | undefined;
|
|
373
|
-
};
|
|
374
289
|
}, {}, string> & VNodeProps & AllowedComponentProps & ComponentCustomProps & {
|
|
375
290
|
install: (app: App) => void;
|
|
376
291
|
};
|
|
377
|
-
export * from './enum';
|
|
378
292
|
export { ProLayout };
|
|
379
293
|
export default ProLayout;
|
package/es/pro-layout/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { DefineComponent, Ref, Slot, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, type PropType } from 'vue';
|
|
2
2
|
import type { IProMenuItem } from '../pro-menu';
|
|
3
|
-
import { EProLayoutTheme } from './enum';
|
|
4
3
|
declare const _sfc_main: DefineComponent<{
|
|
5
4
|
menuItems: {
|
|
6
5
|
type: PropType<IProMenuItem[]>;
|
|
@@ -17,48 +16,29 @@ declare const _sfc_main: DefineComponent<{
|
|
|
17
16
|
required: false;
|
|
18
17
|
default: string;
|
|
19
18
|
};
|
|
20
|
-
|
|
21
|
-
type: PropType<
|
|
22
|
-
required: false;
|
|
23
|
-
default: () => never[];
|
|
24
|
-
};
|
|
25
|
-
hideThemeItem: {
|
|
26
|
-
type: PropType<boolean>;
|
|
19
|
+
theme: {
|
|
20
|
+
type: PropType<"light" | "dark">;
|
|
27
21
|
required: false;
|
|
28
|
-
default:
|
|
22
|
+
default: string;
|
|
29
23
|
};
|
|
30
24
|
footerTitle: {
|
|
31
25
|
type: PropType<string>;
|
|
32
26
|
required: false;
|
|
33
27
|
default: string;
|
|
34
28
|
};
|
|
35
|
-
theme: {
|
|
36
|
-
type: PropType<EProLayoutTheme>;
|
|
37
|
-
required: false;
|
|
38
|
-
default: EProLayoutTheme;
|
|
39
|
-
};
|
|
40
29
|
tabsMode: {
|
|
41
30
|
type: PropType<boolean>;
|
|
42
31
|
required: false;
|
|
43
32
|
default: boolean;
|
|
44
33
|
};
|
|
45
|
-
user: {
|
|
46
|
-
type: PropType<{
|
|
47
|
-
name: string;
|
|
48
|
-
avatar?: string | undefined;
|
|
49
|
-
}>;
|
|
50
|
-
required: false;
|
|
51
|
-
default: undefined;
|
|
52
|
-
};
|
|
53
34
|
}, {
|
|
54
35
|
prefixClsName: string;
|
|
55
36
|
props: any;
|
|
37
|
+
emit: (event: "collapse", collapsed: boolean) => void;
|
|
56
38
|
menuItems: Ref<IProMenuItem[]>;
|
|
57
39
|
slots: Readonly<{
|
|
58
40
|
[name: string]: Slot | undefined;
|
|
59
41
|
}>;
|
|
60
|
-
currentTheme: Readonly<Ref<EProLayoutTheme>>;
|
|
61
|
-
onToggleCurrentTheme: () => void;
|
|
62
42
|
menuSelectedKeys: Ref<string[]>;
|
|
63
43
|
menuOpenKeys: Ref<string[]>;
|
|
64
44
|
onMenuItemClick: (key: string) => void;
|
|
@@ -80,8 +60,9 @@ declare const _sfc_main: DefineComponent<{
|
|
|
80
60
|
siderCollapsedWidthPx: string;
|
|
81
61
|
siderCollapsed: Ref<boolean>;
|
|
82
62
|
onSiderCollapse: (val: boolean) => void;
|
|
83
|
-
|
|
84
|
-
|
|
63
|
+
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
64
|
+
collapse: (collapsed: boolean) => true;
|
|
65
|
+
}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
|
|
85
66
|
menuItems: {
|
|
86
67
|
type: PropType<IProMenuItem[]>;
|
|
87
68
|
required: false;
|
|
@@ -97,51 +78,29 @@ declare const _sfc_main: DefineComponent<{
|
|
|
97
78
|
required: false;
|
|
98
79
|
default: string;
|
|
99
80
|
};
|
|
100
|
-
|
|
101
|
-
type: PropType<
|
|
102
|
-
required: false;
|
|
103
|
-
default: () => never[];
|
|
104
|
-
};
|
|
105
|
-
hideThemeItem: {
|
|
106
|
-
type: PropType<boolean>;
|
|
81
|
+
theme: {
|
|
82
|
+
type: PropType<"light" | "dark">;
|
|
107
83
|
required: false;
|
|
108
|
-
default:
|
|
84
|
+
default: string;
|
|
109
85
|
};
|
|
110
86
|
footerTitle: {
|
|
111
87
|
type: PropType<string>;
|
|
112
88
|
required: false;
|
|
113
89
|
default: string;
|
|
114
90
|
};
|
|
115
|
-
theme: {
|
|
116
|
-
type: PropType<EProLayoutTheme>;
|
|
117
|
-
required: false;
|
|
118
|
-
default: EProLayoutTheme;
|
|
119
|
-
};
|
|
120
91
|
tabsMode: {
|
|
121
92
|
type: PropType<boolean>;
|
|
122
93
|
required: false;
|
|
123
94
|
default: boolean;
|
|
124
95
|
};
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
avatar?: string | undefined;
|
|
129
|
-
}>;
|
|
130
|
-
required: false;
|
|
131
|
-
default: undefined;
|
|
132
|
-
};
|
|
133
|
-
}>>, {
|
|
96
|
+
}>> & {
|
|
97
|
+
onCollapse?: ((collapsed: boolean) => any) | undefined;
|
|
98
|
+
}, {
|
|
134
99
|
menuItems: IProMenuItem[];
|
|
135
100
|
headerTitle: string;
|
|
136
101
|
headerLogo: string;
|
|
137
|
-
|
|
138
|
-
hideThemeItem: boolean;
|
|
102
|
+
theme: "light" | "dark";
|
|
139
103
|
footerTitle: string;
|
|
140
|
-
theme: EProLayoutTheme;
|
|
141
104
|
tabsMode: boolean;
|
|
142
|
-
user: {
|
|
143
|
-
name: string;
|
|
144
|
-
avatar?: string | undefined;
|
|
145
|
-
};
|
|
146
105
|
}>;
|
|
147
106
|
export default _sfc_main;
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import { defineComponent, useCssVars, toRefs, useSlots, provide, computed, ref, resolveComponent, openBlock, createBlock, normalizeClass, withCtx, createVNode, createElementVNode,
|
|
2
|
-
import { useHooks } from "./hooks
|
|
3
|
-
import { EProLayoutTheme } from "./enum.js";
|
|
4
|
-
import { useThemeHooks } from "./hooks/theme.js";
|
|
1
|
+
import { defineComponent, useCssVars, toRefs, useSlots, provide, computed, ref, watch, resolveComponent, openBlock, createBlock, normalizeClass, withCtx, createVNode, createElementVNode, unref, renderSlot, createTextVNode, toDisplayString, createCommentVNode, resolveDynamicComponent, KeepAlive } from "vue";
|
|
2
|
+
import { useHooks } from "./hooks.js";
|
|
5
3
|
const _hoisted_1 = ["src"];
|
|
6
|
-
const _hoisted_2 = { key: 0 };
|
|
7
|
-
const _hoisted_3 = { key: 0 };
|
|
8
|
-
const _hoisted_4 = ["src"];
|
|
9
4
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
10
5
|
__name: "pro-layout",
|
|
11
6
|
props: {
|
|
@@ -24,47 +19,34 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
24
19
|
required: false,
|
|
25
20
|
default: "http://p3-armor.byteimg.com/tos-cn-i-49unhts6dw/dfdba5317c0c20ce20e64fac803d52bc.svg~tplv-49unhts6dw-image.image"
|
|
26
21
|
},
|
|
27
|
-
|
|
28
|
-
type:
|
|
29
|
-
required: false,
|
|
30
|
-
default: () => []
|
|
31
|
-
},
|
|
32
|
-
hideThemeItem: {
|
|
33
|
-
type: Boolean,
|
|
22
|
+
theme: {
|
|
23
|
+
type: String,
|
|
34
24
|
required: false,
|
|
35
|
-
default:
|
|
25
|
+
default: "light"
|
|
36
26
|
},
|
|
37
27
|
footerTitle: {
|
|
38
28
|
type: String,
|
|
39
29
|
required: false,
|
|
40
30
|
default: "KeyBlade Pro"
|
|
41
31
|
},
|
|
42
|
-
theme: {
|
|
43
|
-
type: String,
|
|
44
|
-
required: false,
|
|
45
|
-
default: EProLayoutTheme.light
|
|
46
|
-
},
|
|
47
32
|
tabsMode: {
|
|
48
33
|
type: Boolean,
|
|
49
34
|
required: false,
|
|
50
35
|
default: true
|
|
51
|
-
},
|
|
52
|
-
user: {
|
|
53
|
-
type: Object,
|
|
54
|
-
required: false,
|
|
55
|
-
default: void 0
|
|
56
36
|
}
|
|
57
37
|
},
|
|
58
|
-
|
|
38
|
+
emits: {
|
|
39
|
+
"collapse": (collapsed) => true
|
|
40
|
+
},
|
|
41
|
+
setup(__props, { emit }) {
|
|
59
42
|
const props = __props;
|
|
60
43
|
useCssVars((_ctx) => ({
|
|
61
|
-
"
|
|
62
|
-
"
|
|
44
|
+
"499b6380": siderWidthPx,
|
|
45
|
+
"5e353345": siderCollapsedWidthPx
|
|
63
46
|
}));
|
|
64
47
|
const prefixClsName = "keyblade-pro-layout";
|
|
65
48
|
const { menuItems } = toRefs(props);
|
|
66
49
|
const slots = useSlots();
|
|
67
|
-
const { currentTheme, onToggleCurrentTheme } = useThemeHooks(props.theme);
|
|
68
50
|
const {
|
|
69
51
|
menuSelectedKeys,
|
|
70
52
|
menuOpenKeys,
|
|
@@ -97,17 +79,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
97
79
|
const siderCollapsed = ref(false);
|
|
98
80
|
const onSiderCollapse = (val) => {
|
|
99
81
|
siderCollapsed.value = val;
|
|
82
|
+
emit("collapse", val);
|
|
100
83
|
};
|
|
84
|
+
watch(() => props.theme, () => {
|
|
85
|
+
switch (props.theme) {
|
|
86
|
+
case "light":
|
|
87
|
+
document.body.removeAttribute("arco-theme");
|
|
88
|
+
break;
|
|
89
|
+
case "dark":
|
|
90
|
+
document.body.setAttribute("arco-theme", "dark");
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}, { immediate: true });
|
|
101
94
|
return (_ctx, _cache) => {
|
|
102
95
|
const _component_a_typography_title = resolveComponent("a-typography-title");
|
|
103
96
|
const _component_a_space = resolveComponent("a-space");
|
|
104
|
-
const _component_icon_sun_fill = resolveComponent("icon-sun-fill");
|
|
105
|
-
const _component_icon_moon_fill = resolveComponent("icon-moon-fill");
|
|
106
|
-
const _component_a_button = resolveComponent("a-button");
|
|
107
|
-
const _component_a_tooltip = resolveComponent("a-tooltip");
|
|
108
|
-
const _component_icon_user = resolveComponent("icon-user");
|
|
109
|
-
const _component_a_avatar = resolveComponent("a-avatar");
|
|
110
|
-
const _component_a_dropdown = resolveComponent("a-dropdown");
|
|
111
97
|
const _component_a_layout_header = resolveComponent("a-layout-header");
|
|
112
98
|
const _component_kb_pro_menu = resolveComponent("kb-pro-menu");
|
|
113
99
|
const _component_a_layout_sider = resolveComponent("a-layout-sider");
|
|
@@ -128,83 +114,31 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
128
114
|
createElementVNode("div", {
|
|
129
115
|
class: normalizeClass(`${prefixClsName}-header-left`)
|
|
130
116
|
}, [
|
|
131
|
-
|
|
117
|
+
unref(slots)["header-left"] ? renderSlot(_ctx.$slots, "header-left", { key: 0 }) : (openBlock(), createBlock(_component_a_space, { key: 1 }, {
|
|
132
118
|
default: withCtx(() => [
|
|
133
119
|
createElementVNode("img", {
|
|
120
|
+
class: normalizeClass(`${prefixClsName}-header-left-logo`),
|
|
134
121
|
alt: "logo",
|
|
135
|
-
src: __props.headerLogo
|
|
136
|
-
|
|
137
|
-
}, null, 8, _hoisted_1),
|
|
122
|
+
src: __props.headerLogo
|
|
123
|
+
}, null, 10, _hoisted_1),
|
|
138
124
|
!siderCollapsed.value ? (openBlock(), createBlock(_component_a_typography_title, {
|
|
139
125
|
key: 0,
|
|
140
|
-
|
|
141
|
-
|
|
126
|
+
class: normalizeClass(`${prefixClsName}-header-left-title`),
|
|
127
|
+
heading: 5
|
|
142
128
|
}, {
|
|
143
129
|
default: withCtx(() => [
|
|
144
130
|
createTextVNode(toDisplayString(__props.headerTitle), 1)
|
|
145
131
|
]),
|
|
146
132
|
_: 1
|
|
147
|
-
})) : createCommentVNode("", true)
|
|
133
|
+
}, 8, ["class"])) : createCommentVNode("", true)
|
|
148
134
|
]),
|
|
149
135
|
_: 1
|
|
150
|
-
})
|
|
136
|
+
}))
|
|
151
137
|
], 2),
|
|
152
|
-
createElementVNode("
|
|
138
|
+
createElementVNode("div", {
|
|
153
139
|
class: normalizeClass(`${prefixClsName}-header-right`)
|
|
154
140
|
}, [
|
|
155
|
-
(
|
|
156
|
-
return openBlock(), createElementBlock(Fragment, { key: slotName }, [
|
|
157
|
-
unref(slots)[slotName] ? (openBlock(), createElementBlock("li", _hoisted_2, [
|
|
158
|
-
renderSlot(_ctx.$slots, slotName)
|
|
159
|
-
])) : createCommentVNode("", true)
|
|
160
|
-
], 64);
|
|
161
|
-
}), 128)),
|
|
162
|
-
!__props.hideThemeItem ? (openBlock(), createElementBlock("li", _hoisted_3, [
|
|
163
|
-
createVNode(_component_a_tooltip, { content: "切换主题" }, {
|
|
164
|
-
default: withCtx(() => [
|
|
165
|
-
createVNode(_component_a_button, {
|
|
166
|
-
class: normalizeClass(`${prefixClsName}-header-right-btn`),
|
|
167
|
-
type: "outline",
|
|
168
|
-
size: "medium",
|
|
169
|
-
shape: "circle",
|
|
170
|
-
onClick: unref(onToggleCurrentTheme)
|
|
171
|
-
}, {
|
|
172
|
-
icon: withCtx(() => [
|
|
173
|
-
unref(currentTheme) === unref(EProLayoutTheme).light ? (openBlock(), createBlock(_component_icon_sun_fill, { key: 0 })) : createCommentVNode("", true),
|
|
174
|
-
unref(currentTheme) === unref(EProLayoutTheme).dark ? (openBlock(), createBlock(_component_icon_moon_fill, { key: 1 })) : createCommentVNode("", true)
|
|
175
|
-
]),
|
|
176
|
-
_: 1
|
|
177
|
-
}, 8, ["class", "onClick"])
|
|
178
|
-
]),
|
|
179
|
-
_: 1
|
|
180
|
-
})
|
|
181
|
-
])) : createCommentVNode("", true),
|
|
182
|
-
createElementVNode("li", null, [
|
|
183
|
-
createVNode(_component_a_dropdown, { trigger: "hover" }, {
|
|
184
|
-
content: withCtx(() => [
|
|
185
|
-
renderSlot(_ctx.$slots, "avatar-dropdown-content")
|
|
186
|
-
]),
|
|
187
|
-
default: withCtx(() => [
|
|
188
|
-
createVNode(_component_a_avatar, {
|
|
189
|
-
size: 32,
|
|
190
|
-
style: { marginRight: "8px", cursor: "pointer" }
|
|
191
|
-
}, {
|
|
192
|
-
default: withCtx(() => {
|
|
193
|
-
var _a, _b;
|
|
194
|
-
return [
|
|
195
|
-
((_a = __props.user) == null ? void 0 : _a.avatar) ? (openBlock(), createElementBlock("img", {
|
|
196
|
-
key: 0,
|
|
197
|
-
alt: "avatar",
|
|
198
|
-
src: (_b = __props.user) == null ? void 0 : _b.avatar
|
|
199
|
-
}, null, 8, _hoisted_4)) : (openBlock(), createBlock(_component_icon_user, { key: 1 }))
|
|
200
|
-
];
|
|
201
|
-
}),
|
|
202
|
-
_: 1
|
|
203
|
-
})
|
|
204
|
-
]),
|
|
205
|
-
_: 3
|
|
206
|
-
})
|
|
207
|
-
])
|
|
141
|
+
renderSlot(_ctx.$slots, "header-right")
|
|
208
142
|
], 2)
|
|
209
143
|
]),
|
|
210
144
|
_: 3
|
|
@@ -221,17 +155,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
221
155
|
onCollapse: onSiderCollapse
|
|
222
156
|
}, {
|
|
223
157
|
default: withCtx(() => [
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
"
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
158
|
+
createElementVNode("div", {
|
|
159
|
+
class: normalizeClass(`${prefixClsName}-sider-content`)
|
|
160
|
+
}, [
|
|
161
|
+
renderSlot(_ctx.$slots, "sider-top"),
|
|
162
|
+
createVNode(_component_kb_pro_menu, {
|
|
163
|
+
style: { "flex": "1" },
|
|
164
|
+
collapsed: siderCollapsed.value,
|
|
165
|
+
"selected-keys": unref(menuSelectedKeys),
|
|
166
|
+
"open-keys": unref(menuOpenKeys),
|
|
167
|
+
items: unref(menuItems),
|
|
168
|
+
onCollapse: onSiderCollapse,
|
|
169
|
+
onMenuItemClick: unref(onMenuItemClick),
|
|
170
|
+
onSubMenuClick: unref(onSubMenuClick)
|
|
171
|
+
}, null, 8, ["collapsed", "selected-keys", "open-keys", "items", "onMenuItemClick", "onSubMenuClick"])
|
|
172
|
+
], 2)
|
|
233
173
|
]),
|
|
234
|
-
_:
|
|
174
|
+
_: 3
|
|
235
175
|
}, 8, ["class", "collapsed"]),
|
|
236
176
|
createVNode(_component_a_layout, {
|
|
237
177
|
class: normalizeClass(`${prefixClsName}-body` + (siderCollapsed.value ? ` ${prefixClsName}-body-collapsed` : ""))
|
package/es/pro-menu/index.js
CHANGED
|
@@ -31,7 +31,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
31
31
|
const _component_a_menu = resolveComponent("a-menu");
|
|
32
32
|
return openBlock(), createBlock(_component_a_menu, {
|
|
33
33
|
class: normalizeClass(prefixClsName),
|
|
34
|
-
style: { width: "100%", height: "100%" },
|
|
35
34
|
collapsed: __props.collapsed,
|
|
36
35
|
"open-keys": __props.openKeys,
|
|
37
36
|
"selected-keys": __props.selectedKeys,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DefineComponent, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, type PropType } from 'vue';
|
|
2
|
-
import { IProTab } from './interface';
|
|
2
|
+
import type { IProTab } from './interface';
|
|
3
3
|
declare const _sfc_main: DefineComponent<{
|
|
4
4
|
tabs: {
|
|
5
5
|
type: PropType<IProTab[]>;
|
package/es/style.css
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
.keyblade-pro-page-wrapper {
|
|
2
2
|
padding: 0 20px 20px 20px;
|
|
3
3
|
}
|
|
4
|
+
.keyblade-pro-reuse-tabs {
|
|
5
|
+
position: relative;
|
|
6
|
+
background-color: var(--color-bg-2);
|
|
7
|
+
padding: 4px 20px;
|
|
8
|
+
}
|
|
4
9
|
.keyblade-pro-layout {
|
|
5
10
|
width: 100%;
|
|
6
11
|
height: 100%;
|
|
@@ -27,20 +32,12 @@
|
|
|
27
32
|
display: flex;
|
|
28
33
|
align-items: center;
|
|
29
34
|
}
|
|
30
|
-
.keyblade-pro-layout-header-
|
|
31
|
-
|
|
32
|
-
list-style: none;
|
|
33
|
-
}
|
|
34
|
-
.keyblade-pro-layout-header-right li {
|
|
35
|
-
display: flex;
|
|
36
|
-
align-items: center;
|
|
37
|
-
padding: 0 10px;
|
|
35
|
+
.keyblade-pro-layout-header-left-logo {
|
|
36
|
+
height: 28px;
|
|
38
37
|
}
|
|
39
|
-
.keyblade-pro-layout-header-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
color: rgb(var(--gray-8));
|
|
43
|
-
font-size: 16px;
|
|
38
|
+
.keyblade-pro-layout-header-left-title.arco-typography {
|
|
39
|
+
margin: 0;
|
|
40
|
+
font-size: 18px;
|
|
44
41
|
}
|
|
45
42
|
.keyblade-pro-layout-sider {
|
|
46
43
|
padding-top: 60px;
|
|
@@ -51,9 +48,15 @@
|
|
|
51
48
|
height: 100%;
|
|
52
49
|
transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);
|
|
53
50
|
}
|
|
51
|
+
.keyblade-pro-layout-sider-content {
|
|
52
|
+
display: flex;
|
|
53
|
+
flex-direction: column;
|
|
54
|
+
min-height: 100%;
|
|
55
|
+
overflow: auto;
|
|
56
|
+
}
|
|
54
57
|
.keyblade-pro-layout-body {
|
|
55
58
|
padding-top: 60px;
|
|
56
|
-
padding-left: var(--
|
|
59
|
+
padding-left: var(--499b6380);
|
|
57
60
|
min-height: 100vh;
|
|
58
61
|
overflow-y: hidden;
|
|
59
62
|
background-color: var(--color-fill-2);
|
|
@@ -73,10 +76,5 @@
|
|
|
73
76
|
text-align: center;
|
|
74
77
|
}
|
|
75
78
|
.keyblade-pro-layout-body-collapsed {
|
|
76
|
-
padding-left: var(--
|
|
77
|
-
}
|
|
78
|
-
.keyblade-pro-reuse-tabs {
|
|
79
|
-
position: relative;
|
|
80
|
-
background-color: var(--color-bg-2);
|
|
81
|
-
padding: 4px 20px;
|
|
79
|
+
padding-left: var(--5e353345);
|
|
82
80
|
}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { App } from 'vue'
|
|
1
|
+
import type { App } from 'vue'
|
|
2
2
|
import { ProBreadcrumb } from './pro-breadcrumb'
|
|
3
3
|
import { ProMenu } from './pro-menu'
|
|
4
4
|
import { ProPageWrapper } from './pro-page-wrapper'
|
|
@@ -19,7 +19,6 @@ export default {
|
|
|
19
19
|
export { default as ProBreadcrumb } from './pro-breadcrumb'
|
|
20
20
|
|
|
21
21
|
export { default as ProLayout } from './pro-layout'
|
|
22
|
-
export type { EProLayoutTheme } from './pro-layout'
|
|
23
22
|
|
|
24
23
|
export { default as ProMenu } from './pro-menu'
|
|
25
24
|
export type { IProMenuItem } from './pro-menu'
|
package/es/pro-layout/enum.d.ts
DELETED
package/es/pro-layout/enum.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { ref, watch, readonly } from "vue";
|
|
2
|
-
import { EProLayoutTheme } from "../enum.js";
|
|
3
|
-
function useThemeHooks(initValue) {
|
|
4
|
-
const themeStorageKey = "theme";
|
|
5
|
-
const theme = ref(localStorage.getItem(themeStorageKey) ?? initValue);
|
|
6
|
-
const setTheme = (_theme) => {
|
|
7
|
-
switch (_theme) {
|
|
8
|
-
case EProLayoutTheme.light:
|
|
9
|
-
document.body.removeAttribute("arco-theme");
|
|
10
|
-
break;
|
|
11
|
-
case EProLayoutTheme.dark:
|
|
12
|
-
document.body.setAttribute("arco-theme", "dark");
|
|
13
|
-
break;
|
|
14
|
-
}
|
|
15
|
-
theme.value = _theme;
|
|
16
|
-
localStorage.setItem(themeStorageKey, theme.value);
|
|
17
|
-
};
|
|
18
|
-
const onToggleTheme = () => {
|
|
19
|
-
switch (theme.value) {
|
|
20
|
-
case EProLayoutTheme.light:
|
|
21
|
-
setTheme(EProLayoutTheme.dark);
|
|
22
|
-
break;
|
|
23
|
-
case EProLayoutTheme.dark:
|
|
24
|
-
setTheme(EProLayoutTheme.light);
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
watch(theme, () => {
|
|
29
|
-
setTheme(theme.value);
|
|
30
|
-
}, { immediate: true });
|
|
31
|
-
watch(() => initValue, () => {
|
|
32
|
-
setTheme(initValue);
|
|
33
|
-
});
|
|
34
|
-
return {
|
|
35
|
-
currentTheme: readonly(theme),
|
|
36
|
-
onToggleCurrentTheme: onToggleTheme
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
export {
|
|
40
|
-
useThemeHooks
|
|
41
|
-
};
|