@oiij/naive-ui 0.0.74 → 0.0.76
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/README.md +132 -4
- package/dist/components/config-providers/ConfigProviders.vue.d.ts +2 -2
- package/dist/components/copy-button/CopyButton.vue.d.ts +4 -4
- package/dist/components/data-table-plus/DataTablePlus.vue.d.ts +44 -44
- package/dist/components/loading-provider/LoadingProvider.vue.d.ts +2 -2
- package/dist/components/preset-form/PresetForm.vue.d.ts +14 -14
- package/dist/components/preset-input/PresetInput.vue.d.ts +3 -3
- package/dist/components/preset-picker/PresetPicker.vue.d.ts +5 -5
- package/dist/components/preset-select/PresetSelect.vue.d.ts +27 -27
- package/dist/components/remote-request/RemoteRequest.vue.d.ts +10 -10
- package/dist/components/search-input/SearchInput.vue.d.ts +4 -4
- package/dist/components/toggle-input/ToggleInput.vue.d.ts +5 -5
- package/dist/components/tooltip-button/TooltipButton.vue.d.ts +4 -4
- package/dist/components/transition/BaseTransition.vue.d.ts +2 -2
- package/dist/components/type-writer/TypeWriter.vue.d.ts +4 -4
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/use-data-request.d.ts +58 -28
- package/dist/composables/use-data-request.js +23 -0
- package/dist/composables/use-loading.d.ts +4 -0
- package/dist/composables/use-loading.js +8 -0
- package/dist/composables/use-naive-form.d.ts +40 -17
- package/dist/composables/use-naive-form.js +45 -1
- package/dist/composables/use-naive-menu.d.ts +103 -0
- package/dist/composables/use-naive-menu.js +181 -0
- package/dist/composables/use-naive-theme.d.ts +32 -15
- package/dist/composables/use-naive-theme.js +13 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/package.json +5 -3
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import * as vue5 from "vue";
|
|
2
|
+
import { MaybeRefOrGetter, VNodeChild } from "vue";
|
|
3
|
+
import { MenuOption } from "naive-ui";
|
|
4
|
+
import { RouteRecordRaw } from "vue-router";
|
|
5
|
+
|
|
6
|
+
//#region src/composables/use-naive-menu.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* 配置选项接口
|
|
9
|
+
* 用于定义 useNaiveMenu 组合函数的配置参数
|
|
10
|
+
*/
|
|
11
|
+
type UseNaiveMenuOptions = {
|
|
12
|
+
/**
|
|
13
|
+
* 隐藏条件,可以是函数或字符串
|
|
14
|
+
* - 如果是函数,返回 true 时路由将不显示在菜单中
|
|
15
|
+
* - 如果是字符串,则从 route.meta 中获取对应属性的值
|
|
16
|
+
* @default 'hidden'
|
|
17
|
+
*/
|
|
18
|
+
hidden?: ((route: RouteRecordRaw) => boolean | string) | string;
|
|
19
|
+
/**
|
|
20
|
+
* 根路由判断,可以是函数或字符串
|
|
21
|
+
* - 如果是函数,返回 true 时路由将作为顶级菜单
|
|
22
|
+
* - 如果是字符串,则从 route.meta 中获取对应属性的值
|
|
23
|
+
* @default 'root'
|
|
24
|
+
*/
|
|
25
|
+
root?: ((route: RouteRecordRaw) => boolean | string) | string;
|
|
26
|
+
/**
|
|
27
|
+
* 标签字段名,从 route.meta 中获取对应属性的值作为菜单标签
|
|
28
|
+
* @default 'title'
|
|
29
|
+
*/
|
|
30
|
+
labelField?: string;
|
|
31
|
+
/**
|
|
32
|
+
* 键字段名,从 route 中获取对应属性的值作为菜单键
|
|
33
|
+
* @default 'name'
|
|
34
|
+
*/
|
|
35
|
+
keyField?: string;
|
|
36
|
+
/**
|
|
37
|
+
* 图标字段名,从 route.meta 中获取对应属性的值作为菜单图标
|
|
38
|
+
* @default 'icon'
|
|
39
|
+
*/
|
|
40
|
+
iconField?: string;
|
|
41
|
+
/**
|
|
42
|
+
* 图标渲染函数,用于自定义图标渲染
|
|
43
|
+
*/
|
|
44
|
+
renderIcon?: (icon: string) => VNodeChild;
|
|
45
|
+
/**
|
|
46
|
+
* 父路由元信息字段名
|
|
47
|
+
* @default 'parent'
|
|
48
|
+
*/
|
|
49
|
+
parentField?: string;
|
|
50
|
+
/**
|
|
51
|
+
* 父路由文件路径
|
|
52
|
+
* @default ''
|
|
53
|
+
*/
|
|
54
|
+
parentFilePath?: string;
|
|
55
|
+
/**
|
|
56
|
+
* 父路由元信息生成函数
|
|
57
|
+
*/
|
|
58
|
+
parent?: (route: RouteRecordRaw) => Record<string, unknown>;
|
|
59
|
+
/**
|
|
60
|
+
* 自定义菜单选项创建函数
|
|
61
|
+
*/
|
|
62
|
+
createMenuOption?: (route: RouteRecordRaw) => MenuOption;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* 自动菜单组合函数
|
|
66
|
+
* 将路由配置转换为菜单配置,并提供扁平化的菜单选项
|
|
67
|
+
* @param routes 路由配置数组,可以是响应式或普通数组
|
|
68
|
+
* @param options 配置选项
|
|
69
|
+
* @returns 包含菜单选项和扁平化菜单选项的对象
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* // 基本使用
|
|
73
|
+
* const { menuOptions, flattenedMenuOptions } = useNaiveMenu(routes)
|
|
74
|
+
*
|
|
75
|
+
* // 带配置选项(使用函数)
|
|
76
|
+
* const { menuOptions, flattenedMenuOptions } = useNaiveMenu(routes, {
|
|
77
|
+
* hidden: (route) => route.meta?.hidden,
|
|
78
|
+
* root: (route) => route.meta?.root,
|
|
79
|
+
* labelField: 'title',
|
|
80
|
+
* keyField: 'name',
|
|
81
|
+
* iconField: 'icon',
|
|
82
|
+
* renderIcon: (icon) => h('i', { class: icon })
|
|
83
|
+
* })
|
|
84
|
+
*
|
|
85
|
+
* // 带配置选项(使用字符串)
|
|
86
|
+
* const { menuOptions, flattenedMenuOptions } = useNaiveMenu(routes, {
|
|
87
|
+
* hidden: 'hidden',
|
|
88
|
+
* root: 'root',
|
|
89
|
+
* labelField: 'title',
|
|
90
|
+
* keyField: 'name',
|
|
91
|
+
* iconField: 'icon'
|
|
92
|
+
* })
|
|
93
|
+
*/
|
|
94
|
+
declare function useNaiveMenu(routes: MaybeRefOrGetter<RouteRecordRaw[]>, options?: UseNaiveMenuOptions): {
|
|
95
|
+
menuOptions: vue5.ComputedRef<MenuOption[]>;
|
|
96
|
+
flattenedMenuOptions: vue5.ComputedRef<MenuOption[]>;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* useNaiveMenu 返回类型
|
|
100
|
+
*/
|
|
101
|
+
type UseNaiveMenuReturn = ReturnType<typeof useNaiveMenu>;
|
|
102
|
+
//#endregion
|
|
103
|
+
export { UseNaiveMenuOptions, UseNaiveMenuReturn, useNaiveMenu };
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { computed, toValue } from "vue";
|
|
2
|
+
|
|
3
|
+
//#region src/composables/use-naive-menu.ts
|
|
4
|
+
/**
|
|
5
|
+
* 获取配置值
|
|
6
|
+
* @param route 路由配置
|
|
7
|
+
* @param config 配置项,可以是函数或字符串
|
|
8
|
+
* @param returnType 返回类型,'meta' 从 meta 中获取,'route' 从路由本身获取
|
|
9
|
+
* @param defaultValue 默认值
|
|
10
|
+
* @returns 配置值或默认值
|
|
11
|
+
*/
|
|
12
|
+
function getConfigValue(route, config, returnType, defaultValue) {
|
|
13
|
+
if (!config) return defaultValue;
|
|
14
|
+
if (typeof config === "function") return config(route);
|
|
15
|
+
if (returnType === "meta") return route.meta?.[config] ?? defaultValue;
|
|
16
|
+
return route?.[config] ?? defaultValue;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 创建单个菜单选项
|
|
20
|
+
* @param route 路由配置
|
|
21
|
+
* @param options 配置选项
|
|
22
|
+
* @returns 菜单选项
|
|
23
|
+
*/
|
|
24
|
+
function createConfigMenuOption(route, options) {
|
|
25
|
+
const { labelField, keyField, iconField, renderIcon } = options ?? {};
|
|
26
|
+
const labelValue = getConfigValue(route, labelField, "meta");
|
|
27
|
+
const keyValue = getConfigValue(route, keyField, "route");
|
|
28
|
+
const iconValue = getConfigValue(route, iconField, "meta");
|
|
29
|
+
return {
|
|
30
|
+
label: labelValue ?? route.meta?.title ?? route.name ?? route.path,
|
|
31
|
+
key: keyValue ?? route.name?.toString() ?? route.path?.toString(),
|
|
32
|
+
icon: iconValue ? () => renderIcon?.(iconValue) : void 0,
|
|
33
|
+
meta: route.meta
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 判断路由是否应该隐藏
|
|
38
|
+
* @param route 路由配置
|
|
39
|
+
* @param hidden 隐藏条件
|
|
40
|
+
* @returns 是否隐藏
|
|
41
|
+
*/
|
|
42
|
+
function shouldHide(route, hidden) {
|
|
43
|
+
if (!hidden) return false;
|
|
44
|
+
const result = getConfigValue(route, hidden, "meta");
|
|
45
|
+
return typeof result === "boolean" ? result : !!result;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 判断路由是否为根路由
|
|
49
|
+
* @param route 路由配置
|
|
50
|
+
* @param root 根路由判断
|
|
51
|
+
* @returns 是否为根路由
|
|
52
|
+
*/
|
|
53
|
+
function isRoot(route, root) {
|
|
54
|
+
if (!root) return false;
|
|
55
|
+
const result = getConfigValue(route, root, "meta");
|
|
56
|
+
return typeof result === "boolean" ? result : !!result;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 将路由配置转换为菜单配置的递归函数
|
|
60
|
+
* @param routes 路由配置数组
|
|
61
|
+
* @param options 配置选项
|
|
62
|
+
* @returns 菜单配置数组
|
|
63
|
+
*/
|
|
64
|
+
function routes2menu(routes, options) {
|
|
65
|
+
const { hidden, root, createMenuOption } = options ?? {};
|
|
66
|
+
const menuOptions = [];
|
|
67
|
+
for (const route of routes ?? []) {
|
|
68
|
+
if (shouldHide(route, hidden)) continue;
|
|
69
|
+
const menu = typeof createMenuOption === "function" ? createMenuOption(route) : createConfigMenuOption(route, options);
|
|
70
|
+
if (route.children?.length) {
|
|
71
|
+
const rootChildren = route.children.filter((child) => isRoot(child, root));
|
|
72
|
+
const normalChildren = route.children.filter((child) => !isRoot(child, root));
|
|
73
|
+
if (normalChildren.length) menu.children = routes2menu(normalChildren, options);
|
|
74
|
+
if (rootChildren.length) {
|
|
75
|
+
const rootMenuOptions = rootChildren.filter((child) => !shouldHide(child, hidden)).map((child) => typeof createMenuOption === "function" ? createMenuOption(child) : createConfigMenuOption(child, options));
|
|
76
|
+
menuOptions.push(...rootMenuOptions);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
menuOptions.push(menu);
|
|
80
|
+
}
|
|
81
|
+
return menuOptions;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* 深度扁平化菜单选项
|
|
85
|
+
* @param menuOptions 菜单选项数组
|
|
86
|
+
* @returns 扁平化的菜单选项数组
|
|
87
|
+
*/
|
|
88
|
+
function flattenDeepMenuOptions(menuOptions) {
|
|
89
|
+
return menuOptions.reduce((flattened, menu) => {
|
|
90
|
+
flattened.push(menu);
|
|
91
|
+
if (menu.children?.length) flattened.push(...flattenDeepMenuOptions(menu.children));
|
|
92
|
+
return flattened;
|
|
93
|
+
}, []);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 深度向上合并父路由元信息
|
|
97
|
+
* @param routes 路由配置数组
|
|
98
|
+
* @param parentField 父路由元信息字段名
|
|
99
|
+
* @param parentFilePath 父路由文件路径
|
|
100
|
+
* @param parent 父路由元信息生成函数
|
|
101
|
+
* @returns 处理后的路由配置数组
|
|
102
|
+
*/
|
|
103
|
+
function deepUpRouteParentMeta(routes, parentField, parentFilePath, parent) {
|
|
104
|
+
return routes.map((route) => {
|
|
105
|
+
const emptyPathChild = route.children?.find((f) => f.path === parentFilePath);
|
|
106
|
+
if (emptyPathChild) {
|
|
107
|
+
if (typeof parent === "function") {
|
|
108
|
+
const parentMeta = parent(route);
|
|
109
|
+
route.meta = {
|
|
110
|
+
...route.meta,
|
|
111
|
+
...parentMeta
|
|
112
|
+
};
|
|
113
|
+
} else if (parentField) {
|
|
114
|
+
const parentMeta = emptyPathChild.meta?.[parentField];
|
|
115
|
+
route.meta = {
|
|
116
|
+
...route.meta,
|
|
117
|
+
...parentMeta
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (route.children?.length) route.children = deepUpRouteParentMeta(route.children, parentField, parentFilePath, parent);
|
|
122
|
+
return route;
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* 自动菜单组合函数
|
|
127
|
+
* 将路由配置转换为菜单配置,并提供扁平化的菜单选项
|
|
128
|
+
* @param routes 路由配置数组,可以是响应式或普通数组
|
|
129
|
+
* @param options 配置选项
|
|
130
|
+
* @returns 包含菜单选项和扁平化菜单选项的对象
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* // 基本使用
|
|
134
|
+
* const { menuOptions, flattenedMenuOptions } = useNaiveMenu(routes)
|
|
135
|
+
*
|
|
136
|
+
* // 带配置选项(使用函数)
|
|
137
|
+
* const { menuOptions, flattenedMenuOptions } = useNaiveMenu(routes, {
|
|
138
|
+
* hidden: (route) => route.meta?.hidden,
|
|
139
|
+
* root: (route) => route.meta?.root,
|
|
140
|
+
* labelField: 'title',
|
|
141
|
+
* keyField: 'name',
|
|
142
|
+
* iconField: 'icon',
|
|
143
|
+
* renderIcon: (icon) => h('i', { class: icon })
|
|
144
|
+
* })
|
|
145
|
+
*
|
|
146
|
+
* // 带配置选项(使用字符串)
|
|
147
|
+
* const { menuOptions, flattenedMenuOptions } = useNaiveMenu(routes, {
|
|
148
|
+
* hidden: 'hidden',
|
|
149
|
+
* root: 'root',
|
|
150
|
+
* labelField: 'title',
|
|
151
|
+
* keyField: 'name',
|
|
152
|
+
* iconField: 'icon'
|
|
153
|
+
* })
|
|
154
|
+
*/
|
|
155
|
+
function useNaiveMenu(routes, options) {
|
|
156
|
+
const { hidden = "hidden", root = "root", labelField = "title", keyField = "name", iconField = "icon", renderIcon, createMenuOption, parentField = "parent", parentFilePath = "", parent } = options ?? {};
|
|
157
|
+
/**
|
|
158
|
+
* 菜单选项
|
|
159
|
+
* 响应式计算属性,当路由或配置变化时自动更新
|
|
160
|
+
*/
|
|
161
|
+
const menuOptions = computed(() => {
|
|
162
|
+
return routes2menu(deepUpRouteParentMeta(toValue(routes), parentField, parentFilePath, parent), {
|
|
163
|
+
hidden,
|
|
164
|
+
root,
|
|
165
|
+
labelField,
|
|
166
|
+
keyField,
|
|
167
|
+
iconField,
|
|
168
|
+
renderIcon,
|
|
169
|
+
createMenuOption
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
return {
|
|
173
|
+
menuOptions,
|
|
174
|
+
flattenedMenuOptions: computed(() => {
|
|
175
|
+
return flattenDeepMenuOptions(menuOptions.value);
|
|
176
|
+
})
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
//#endregion
|
|
181
|
+
export { useNaiveMenu };
|
|
@@ -4,23 +4,37 @@ import { GlobalThemeOverrides, NDateLocale, zhCN } from "naive-ui";
|
|
|
4
4
|
import * as naive_ui_es_themes_interface0 from "naive-ui/es/themes/interface";
|
|
5
5
|
|
|
6
6
|
//#region src/composables/use-naive-theme.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* 语言包类型
|
|
9
|
+
* @template T 语言代码类型
|
|
10
|
+
*/
|
|
7
11
|
type Locales<T extends string = string> = Record<T, {
|
|
8
|
-
name: string;
|
|
9
|
-
dateLocale: NDateLocale;
|
|
12
|
+
/** 语言名称 */name: string; /** 日期本地化配置 */
|
|
13
|
+
dateLocale: NDateLocale; /** 语言包配置 */
|
|
10
14
|
locale: typeof zhCN;
|
|
11
15
|
}>;
|
|
16
|
+
/**
|
|
17
|
+
* 主题配置选项
|
|
18
|
+
* @template T 语言代码类型
|
|
19
|
+
*/
|
|
12
20
|
type UseNaiveThemeOptions<T extends string> = {
|
|
13
|
-
language?: MaybeRefOrGetter<T>;
|
|
14
|
-
darkMode?: MaybeRefOrGetter<boolean>;
|
|
15
|
-
colors?: Colors;
|
|
16
|
-
globalThemeOverrides?: GlobalThemeOverrides;
|
|
17
|
-
locales?: Partial<Locales<T>>;
|
|
21
|
+
/** 语言代码,支持响应式引用或普通值 */language?: MaybeRefOrGetter<T>; /** 暗黑模式开关,支持响应式引用或普通值 */
|
|
22
|
+
darkMode?: MaybeRefOrGetter<boolean>; /** 主题颜色配置 */
|
|
23
|
+
colors?: Colors; /** 全局主题覆盖 */
|
|
24
|
+
globalThemeOverrides?: GlobalThemeOverrides; /** 自定义语言包 */
|
|
25
|
+
locales?: Partial<Locales<T>>; /** 暗黑模式颜色配置,支持对象或函数 */
|
|
18
26
|
darkColors?: Colors | ((colors: Colors) => Colors);
|
|
19
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* 用于处理 Naive UI 主题的组合式 API
|
|
30
|
+
* @template T 语言代码类型
|
|
31
|
+
* @param options 配置选项
|
|
32
|
+
* @returns 主题管理对象
|
|
33
|
+
*/
|
|
20
34
|
declare function useNaiveTheme<T extends string>(options?: UseNaiveThemeOptions<T>): {
|
|
21
|
-
language: Ref<T | undefined, T | undefined>;
|
|
22
|
-
darkMode: Ref<boolean | undefined, boolean | undefined>;
|
|
23
|
-
theme: ComputedRef<naive_ui_es_themes_interface0.BuiltInGlobalTheme | undefined>;
|
|
35
|
+
/** 语言代码引用 */language: Ref<T | undefined, T | undefined>; /** 暗黑模式引用 */
|
|
36
|
+
darkMode: Ref<boolean | undefined, boolean | undefined>; /** 当前主题 */
|
|
37
|
+
theme: ComputedRef<naive_ui_es_themes_interface0.BuiltInGlobalTheme | undefined>; /** 颜色配置引用 */
|
|
24
38
|
colors: Ref<{
|
|
25
39
|
primary?: string | undefined;
|
|
26
40
|
info?: string | undefined;
|
|
@@ -33,19 +47,22 @@ declare function useNaiveTheme<T extends string>(options?: UseNaiveThemeOptions<
|
|
|
33
47
|
success?: string | undefined;
|
|
34
48
|
warning?: string | undefined;
|
|
35
49
|
error?: string | undefined;
|
|
36
|
-
}>;
|
|
50
|
+
}>; /** 计算后的主题颜色 */
|
|
37
51
|
themeColors: ComputedRef<{
|
|
38
52
|
primary?: string | undefined;
|
|
39
53
|
info?: string | undefined;
|
|
40
54
|
success?: string | undefined;
|
|
41
55
|
warning?: string | undefined;
|
|
42
56
|
error?: string | undefined;
|
|
43
|
-
}>;
|
|
44
|
-
themeOverrides: ComputedRef<GlobalThemeOverrides>;
|
|
45
|
-
locales: Locales<T>;
|
|
46
|
-
locale: ComputedRef<Locales<T>[T]>;
|
|
57
|
+
}>; /** 主题覆盖配置 */
|
|
58
|
+
themeOverrides: ComputedRef<GlobalThemeOverrides>; /** 合并后的语言包 */
|
|
59
|
+
locales: Locales<T>; /** 当前语言包 */
|
|
60
|
+
locale: ComputedRef<Locales<T>[T]>; /** 设置主题颜色 */
|
|
47
61
|
setColor: (v: Partial<Colors>) => void;
|
|
48
62
|
};
|
|
63
|
+
/**
|
|
64
|
+
* useNaiveTheme 返回类型
|
|
65
|
+
*/
|
|
49
66
|
type UseNaiveThemeReturns = ReturnType<typeof useNaiveTheme>;
|
|
50
67
|
//#endregion
|
|
51
68
|
export { UseNaiveThemeOptions, UseNaiveThemeReturns, useNaiveTheme };
|
|
@@ -3,6 +3,9 @@ import { computed, ref, toValue, watchEffect } from "vue";
|
|
|
3
3
|
import { darkTheme, dateEnUS, dateZhCN, enUS, zhCN } from "naive-ui";
|
|
4
4
|
|
|
5
5
|
//#region src/composables/use-naive-theme.ts
|
|
6
|
+
/**
|
|
7
|
+
* 默认语言包映射
|
|
8
|
+
*/
|
|
6
9
|
const naiveLocaleMap = {
|
|
7
10
|
"zh-CN": {
|
|
8
11
|
name: "简体中文",
|
|
@@ -15,6 +18,12 @@ const naiveLocaleMap = {
|
|
|
15
18
|
locale: enUS
|
|
16
19
|
}
|
|
17
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* 用于处理 Naive UI 主题的组合式 API
|
|
23
|
+
* @template T 语言代码类型
|
|
24
|
+
* @param options 配置选项
|
|
25
|
+
* @returns 主题管理对象
|
|
26
|
+
*/
|
|
18
27
|
function useNaiveTheme(options) {
|
|
19
28
|
const { language, darkMode, colors, globalThemeOverrides, locales, darkColors } = options ?? {};
|
|
20
29
|
const languageRef = ref(toValue(language));
|
|
@@ -40,6 +49,10 @@ function useNaiveTheme(options) {
|
|
|
40
49
|
}
|
|
41
50
|
return colorsRef.value;
|
|
42
51
|
});
|
|
52
|
+
/**
|
|
53
|
+
* 设置主题颜色
|
|
54
|
+
* @param v 颜色配置
|
|
55
|
+
*/
|
|
43
56
|
function setColor(v) {
|
|
44
57
|
colorsRef.value = {
|
|
45
58
|
...colorsRef.value,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DataObject, DataRequestFields, UseDataRequestOptions, UseDataRequestPagination, UseDataRequestReturns, useDataRequest } from "./composables/use-data-request.js";
|
|
2
2
|
import { useLoading } from "./composables/use-loading.js";
|
|
3
3
|
import { UseNaiveFormClearRules, UseNaiveFormOptions, UseNaiveFormReturns, UseNaiveFormRules, useNaiveForm } from "./composables/use-naive-form.js";
|
|
4
|
+
import { UseNaiveMenuOptions, UseNaiveMenuReturn, useNaiveMenu } from "./composables/use-naive-menu.js";
|
|
4
5
|
import { UseNaiveThemeOptions, UseNaiveThemeReturns, useNaiveTheme } from "./composables/use-naive-theme.js";
|
|
5
6
|
import "./composables/index.js";
|
|
6
|
-
export { DataObject, DataRequestFields, UseDataRequestOptions, UseDataRequestPagination, UseDataRequestReturns, UseNaiveFormClearRules, UseNaiveFormOptions, UseNaiveFormReturns, UseNaiveFormRules, UseNaiveThemeOptions, UseNaiveThemeReturns, useDataRequest, useLoading, useNaiveForm, useNaiveTheme };
|
|
7
|
+
export { DataObject, DataRequestFields, UseDataRequestOptions, UseDataRequestPagination, UseDataRequestReturns, UseNaiveFormClearRules, UseNaiveFormOptions, UseNaiveFormReturns, UseNaiveFormRules, UseNaiveMenuOptions, UseNaiveMenuReturn, UseNaiveThemeOptions, UseNaiveThemeReturns, useDataRequest, useLoading, useNaiveForm, useNaiveMenu, useNaiveTheme };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useDataRequest } from "./composables/use-data-request.js";
|
|
2
2
|
import { useLoading } from "./composables/use-loading.js";
|
|
3
3
|
import { useNaiveForm } from "./composables/use-naive-form.js";
|
|
4
|
+
import { useNaiveMenu } from "./composables/use-naive-menu.js";
|
|
4
5
|
import { useNaiveTheme } from "./composables/use-naive-theme.js";
|
|
5
6
|
|
|
6
|
-
export { useDataRequest, useLoading, useNaiveForm, useNaiveTheme };
|
|
7
|
+
export { useDataRequest, useLoading, useNaiveForm, useNaiveMenu, useNaiveTheme };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oiij/naive-ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.76",
|
|
5
5
|
"description": "Some Composable Functions And Components for Vue 3",
|
|
6
6
|
"author": "oiij",
|
|
7
7
|
"license": "MIT",
|
|
@@ -45,9 +45,10 @@
|
|
|
45
45
|
"vue": "^3.5.27",
|
|
46
46
|
"vue-component-type-helpers": "^3.2.4",
|
|
47
47
|
"vue-hooks-plus": "^2.4.1",
|
|
48
|
+
"vue-router": "^5.0.2",
|
|
48
49
|
"@oiij/css-render": "0.0.10",
|
|
49
50
|
"@oiij/markdown-it": "0.0.12",
|
|
50
|
-
"@oiij/use": "0.0.
|
|
51
|
+
"@oiij/use": "0.0.44"
|
|
51
52
|
},
|
|
52
53
|
"devDependencies": {
|
|
53
54
|
"@types/prismjs": "^1.26.5",
|
|
@@ -60,8 +61,9 @@
|
|
|
60
61
|
"vue": "^3.5.27",
|
|
61
62
|
"vue-component-type-helpers": "^3.2.4",
|
|
62
63
|
"vue-hooks-plus": "^2.4.1",
|
|
64
|
+
"vue-router": "^5.0.2",
|
|
63
65
|
"@oiij/css-render": "0.0.10",
|
|
64
|
-
"@oiij/use": "0.0.
|
|
66
|
+
"@oiij/use": "0.0.44",
|
|
65
67
|
"@oiij/markdown-it": "0.0.12"
|
|
66
68
|
},
|
|
67
69
|
"publishConfig": {
|