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