@clownlee/menu 1.0.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.
@@ -0,0 +1,108 @@
1
+ import { Component } from 'vue';
2
+
3
+ interface MenuTreeModel {
4
+ id: string;
5
+ parentId: string | '';
6
+ menuName: string;
7
+ menuPath: string;
8
+ menuIcon?: string | Component;
9
+ menuType?: string;
10
+ sortOrder?: number;
11
+ level?: number;
12
+ hasChildren?: boolean;
13
+ disabled?: boolean;
14
+ children?: MenuTreeModel[];
15
+ }
16
+ interface Props {
17
+ /** 菜单树数据 */
18
+ menuTree?: MenuTreeModel[];
19
+ /** 默认激活的菜单项索引 */
20
+ defaultActive?: string;
21
+ /** 默认打开的 sub-menu 的 index 数组 */
22
+ defaultOpeneds?: string[];
23
+ /** 是否只保持一个子菜单的展开 */
24
+ uniqueOpened?: boolean;
25
+ /** 是否水平折叠收起菜单(仅在 mode 为 vertical 时可用) */
26
+ collapse?: boolean;
27
+ /** 是否开启折叠动画 */
28
+ collapseTransition?: boolean;
29
+ /** 菜单展示模式 */
30
+ mode?: 'horizontal' | 'vertical';
31
+ /** 是否启用 vue-router 模式 */
32
+ router?: boolean;
33
+ /** 菜单的背景颜色(十六进制格式) */
34
+ backgroundColor?: string;
35
+ /** 菜单的文字颜色(十六进制格式) */
36
+ textColor?: string;
37
+ /** 当前激活菜单的文字颜色(十六进制格式) */
38
+ activeTextColor?: string;
39
+ }
40
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
41
+ menuTree: () => never[];
42
+ defaultActive: string;
43
+ defaultOpeneds: () => never[];
44
+ uniqueOpened: boolean;
45
+ collapse: boolean;
46
+ collapseTransition: boolean;
47
+ mode: string;
48
+ router: boolean;
49
+ backgroundColor: undefined;
50
+ textColor: undefined;
51
+ activeTextColor: string;
52
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
53
+ select: (index: string, indexPath: string[], item: MenuTreeModel) => void;
54
+ open: (index: string, indexPath: string[]) => void;
55
+ close: (index: string, indexPath: string[]) => void;
56
+ "menu-click": (payload: {
57
+ menu: MenuTreeModel;
58
+ }) => void;
59
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
60
+ menuTree: () => never[];
61
+ defaultActive: string;
62
+ defaultOpeneds: () => never[];
63
+ uniqueOpened: boolean;
64
+ collapse: boolean;
65
+ collapseTransition: boolean;
66
+ mode: string;
67
+ router: boolean;
68
+ backgroundColor: undefined;
69
+ textColor: undefined;
70
+ activeTextColor: string;
71
+ }>>> & Readonly<{
72
+ onSelect?: ((index: string, indexPath: string[], item: MenuTreeModel) => any) | undefined;
73
+ "onMenu-click"?: ((payload: {
74
+ menu: MenuTreeModel;
75
+ }) => any) | undefined;
76
+ onOpen?: ((index: string, indexPath: string[]) => any) | undefined;
77
+ onClose?: ((index: string, indexPath: string[]) => any) | undefined;
78
+ }>, {
79
+ menuTree: MenuTreeModel[];
80
+ defaultActive: string;
81
+ defaultOpeneds: string[];
82
+ uniqueOpened: boolean;
83
+ collapse: boolean;
84
+ collapseTransition: boolean;
85
+ mode: "horizontal" | "vertical";
86
+ router: boolean;
87
+ backgroundColor: string;
88
+ textColor: string;
89
+ activeTextColor: string;
90
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
91
+ export default _default;
92
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
93
+ type __VLS_TypePropsToRuntimeProps<T> = {
94
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
95
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
96
+ } : {
97
+ type: import('vue').PropType<T[K]>;
98
+ required: true;
99
+ };
100
+ };
101
+ type __VLS_WithDefaults<P, D> = {
102
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
103
+ default: D[K];
104
+ }> : P[K];
105
+ };
106
+ type __VLS_Prettify<T> = {
107
+ [K in keyof T]: T[K];
108
+ } & {};
@@ -0,0 +1,54 @@
1
+ import { Component } from 'vue';
2
+
3
+ interface MenuTreeModel {
4
+ id: string;
5
+ parentId: string | '';
6
+ menuName: string;
7
+ menuPath: string;
8
+ menuIcon?: string | Component;
9
+ menuType?: string;
10
+ sortOrder?: number;
11
+ level?: number;
12
+ hasChildren?: boolean;
13
+ disabled?: boolean;
14
+ children?: MenuTreeModel[];
15
+ }
16
+ interface Props {
17
+ /** 菜单项数据 */
18
+ menu: MenuTreeModel;
19
+ /** 基础索引路径,用于生成唯一索引 */
20
+ baseIndex?: string;
21
+ }
22
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
23
+ baseIndex: string;
24
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
25
+ "menu-click": (payload: {
26
+ menu: MenuTreeModel;
27
+ }) => void;
28
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
29
+ baseIndex: string;
30
+ }>>> & Readonly<{
31
+ "onMenu-click"?: ((payload: {
32
+ menu: MenuTreeModel;
33
+ }) => any) | undefined;
34
+ }>, {
35
+ baseIndex: string;
36
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
37
+ export default _default;
38
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
39
+ type __VLS_TypePropsToRuntimeProps<T> = {
40
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
41
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
42
+ } : {
43
+ type: import('vue').PropType<T[K]>;
44
+ required: true;
45
+ };
46
+ };
47
+ type __VLS_WithDefaults<P, D> = {
48
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
49
+ default: D[K];
50
+ }> : P[K];
51
+ };
52
+ type __VLS_Prettify<T> = {
53
+ [K in keyof T]: T[K];
54
+ } & {};
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@clownlee/menu",
3
+ "version": "1.0.0",
4
+ "description": "菜单管理能力,提供微应用的菜单结构管理功能",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "module": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "scripts": {
19
+ "build": "vite build",
20
+ "dev": "vite build --watch",
21
+ "type-check": "vue-tsc --noEmit"
22
+ },
23
+ "keywords": [
24
+ "fly",
25
+ "business",
26
+ "package"
27
+ ],
28
+ "author": "",
29
+ "license": "MIT",
30
+ "dependencies": {
31
+ "@element-plus/icons-vue": "^2.3.2",
32
+ "element-plus": "^2.12.0",
33
+ "pinia": "^2.1.7",
34
+ "vue": "^3.5.25",
35
+ "vue-router": "^4.2.5"
36
+ },
37
+ "devDependencies": {
38
+ "@unocss/preset-uno": "^0.58.0",
39
+ "@unocss/vite": "^0.58.0",
40
+ "@vitejs/plugin-vue": "^5.0.0",
41
+ "sass": "^1.96.0",
42
+ "terser": "^5.31.0",
43
+ "typescript": "^5.3.0",
44
+ "unocss": "^0.58.0",
45
+ "unplugin-auto-import": "^0.17.0",
46
+ "unplugin-vue-components": "^0.27.0",
47
+ "vite": "^5.0.0",
48
+ "vite-plugin-css-injected-by-js": "^3.5.0",
49
+ "vite-plugin-dts": "^3.9.0",
50
+ "vue-tsc": "^2.1.10"
51
+ }
52
+ }