@oiij/naive-ui 0.0.73 → 0.0.75

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.
Files changed (37) hide show
  1. package/README.md +132 -4
  2. package/dist/components/config-providers/ConfigProviders.vue.d.ts +2 -2
  3. package/dist/components/copy-button/CopyButton.js +1 -1
  4. package/dist/components/copy-button/CopyButton.vue.d.ts +4 -4
  5. package/dist/components/data-table-plus/DataTablePlus.js +4 -4
  6. package/dist/components/data-table-plus/DataTablePlus.vue.d.ts +18 -18
  7. package/dist/components/data-table-plus/index.d.ts +1 -1
  8. package/dist/components/loading-provider/LoadingProvider.vue.d.ts +2 -2
  9. package/dist/components/preset-form/PresetForm.js +11 -11
  10. package/dist/components/preset-form/PresetForm.vue.d.ts +17 -26
  11. package/dist/components/preset-input/PresetInput.vue.d.ts +3 -3
  12. package/dist/components/preset-picker/PresetPicker.vue.d.ts +4 -4
  13. package/dist/components/preset-select/PresetSelect.js +4 -4
  14. package/dist/components/preset-select/PresetSelect.vue.d.ts +9 -9
  15. package/dist/components/preset-select/index.d.ts +1 -1
  16. package/dist/components/remote-request/RemoteRequest.vue.d.ts +4 -4
  17. package/dist/components/search-input/SearchInput.js +1 -1
  18. package/dist/components/search-input/SearchInput.vue.d.ts +4 -4
  19. package/dist/components/toggle-input/ToggleInput.vue.d.ts +4 -4
  20. package/dist/components/tooltip-button/TooltipButton.vue.d.ts +4 -4
  21. package/dist/components/transition/BaseTransition.vue.d.ts +2 -2
  22. package/dist/components/type-writer/TypeWriter.js +2 -2
  23. package/dist/components/type-writer/TypeWriter.vue.d.ts +4 -4
  24. package/dist/composables/index.d.ts +1 -0
  25. package/dist/composables/use-auto-menu.d.ts +74 -0
  26. package/dist/composables/use-auto-menu.js +129 -0
  27. package/dist/composables/use-data-request.d.ts +60 -30
  28. package/dist/composables/use-data-request.js +24 -1
  29. package/dist/composables/use-loading.d.ts +4 -0
  30. package/dist/composables/use-loading.js +8 -0
  31. package/dist/composables/use-naive-form.d.ts +42 -19
  32. package/dist/composables/use-naive-form.js +49 -5
  33. package/dist/composables/use-naive-theme.d.ts +33 -16
  34. package/dist/composables/use-naive-theme.js +16 -3
  35. package/dist/index.d.ts +2 -1
  36. package/dist/index.js +2 -1
  37. package/package.json +7 -5
@@ -2,6 +2,14 @@ import { loadingProviderInjectionKey } from "../components/loading-provider/inde
2
2
  import { inject } from "vue";
3
3
 
4
4
  //#region src/composables/use-loading.ts
5
+ /**
6
+ * 用于获取 Naive UI 加载状态提供者的组合式 API
7
+ * 提供对加载状态的全局访问
8
+ */
9
+ /**
10
+ * 用于获取 Naive UI 加载状态提供者的组合式 API
11
+ * @returns 加载状态提供者实例
12
+ */
5
13
  function useLoading() {
6
14
  return inject(loadingProviderInjectionKey);
7
15
  }
@@ -1,40 +1,63 @@
1
1
  import { DataObject } from "./use-data-request.js";
2
- import * as _vueuse_core3 from "@vueuse/core";
3
- import * as vue5 from "vue";
2
+ import * as vue1 from "vue";
4
3
  import { MaybeRefOrGetter, Ref, TemplateRef } from "vue";
4
+ import * as _vueuse_core0 from "@vueuse/core";
5
5
  import { FormInst, FormItemRule, FormRules } from "naive-ui";
6
6
  import { ValidateError } from "async-validator";
7
7
 
8
8
  //#region src/composables/use-naive-form.d.ts
9
+ /**
10
+ * 表单清空规则配置
11
+ * 用于指定不同类型值的清空后的默认值
12
+ */
9
13
  type UseNaiveFormClearRules = {
10
- string?: string | null;
11
- number?: number | null;
14
+ /** 字符串类型的默认值 */string?: string | null; /** 数字类型的默认值 */
15
+ number?: number | null; /** 布尔类型的默认值 */
12
16
  boolean?: boolean | null;
13
17
  };
18
+ /**
19
+ * 表单规则类型
20
+ * @template T 表单值类型
21
+ */
14
22
  type UseNaiveFormRules<T extends DataObject> = Partial<Record<keyof T, FormRules | FormItemRule | FormItemRule[]>>;
23
+ /**
24
+ * 表单配置选项
25
+ * @template T 表单值类型
26
+ */
15
27
  type UseNaiveFormOptions<T extends DataObject> = {
16
- value?: MaybeRefOrGetter<T>;
17
- rules?: MaybeRefOrGetter<UseNaiveFormRules<T>>;
28
+ /** 表单初始值,支持响应式引用或普通值 */value?: MaybeRefOrGetter<T>; /** 表单验证规则,支持响应式引用或普通值 */
29
+ rules?: MaybeRefOrGetter<UseNaiveFormRules<T>>; /** 表单清空规则 */
18
30
  clearRules?: UseNaiveFormClearRules;
19
31
  };
32
+ /**
33
+ * 用于处理 Naive UI 表单的组合式 API
34
+ * @template T 表单值类型
35
+ * @param formInstRef 表单实例引用
36
+ * @param options 配置选项
37
+ * @returns 表单操作对象
38
+ */
20
39
  declare function useNaiveForm<T extends DataObject = DataObject>(formInstRef: TemplateRef<FormInst>, options?: UseNaiveFormOptions<T>): {
21
- formInstRef: Readonly<vue5.ShallowRef<FormInst | null>>;
22
- formValueRef: Ref<T, T>;
23
- formRulesRef: Ref<Partial<Record<keyof T, FormRules | FormItemRule | FormItemRule[]>>, Partial<Record<keyof T, FormRules | FormItemRule | FormItemRule[]>>>;
40
+ /** 表单实例引用 */formInst: Readonly<vue1.ShallowRef<FormInst | null>>; /** 表单值引用 */
41
+ formValue: Ref<T, T>; /** 表单规则引用 */
42
+ formRules: Ref<Partial<Record<keyof T, FormRules | FormItemRule | FormItemRule[]>>, Partial<Record<keyof T, FormRules | FormItemRule | FormItemRule[]>>>; /** 表单属性,用于绑定到表单组件 */
24
43
  formProps: {
25
- model: vue5.Reactive<T>;
26
- rules: vue5.Reactive<Partial<Record<keyof T, FormRules | FormItemRule | FormItemRule[]>>>;
27
- };
28
- setValue: (_value: Partial<T>) => void;
44
+ model: vue1.Reactive<T>;
45
+ rules: vue1.Reactive<Partial<Record<keyof T, FormRules | FormItemRule | FormItemRule[]>>>;
46
+ }; /** 设置表单值 */
47
+ setValue: (_value: Partial<T>) => void; /** 验证表单 */
29
48
  validate: () => Promise<{
30
49
  warnings?: ValidateError[][];
31
- }>;
32
- resetValidation: () => void;
33
- resetForm: () => void;
34
- reset: () => void;
35
- clear: () => void;
36
- onValidated: _vueuse_core3.EventHookOn<[T]>;
50
+ }>; /** 重置表单验证状态 */
51
+ resetValidation: () => void; /** 重置表单值到初始状态 */
52
+ resetForm: () => void; /** 重置表单验证状态和值 */
53
+ reset: () => void; /** 清空表单值 */
54
+ clear: () => void; /** 验证成功事件 */
55
+ onValidated: _vueuse_core0.EventHookOn<[T]>;
37
56
  };
57
+ /**
58
+ * useNaiveForm 返回类型
59
+ * @template T 表单值类型
60
+ */
38
61
  type UseNaiveFormReturns<T extends DataObject = DataObject> = ReturnType<typeof useNaiveForm<T>>;
39
62
  //#endregion
40
63
  export { UseNaiveFormClearRules, UseNaiveFormOptions, UseNaiveFormReturns, UseNaiveFormRules, useNaiveForm };
@@ -1,18 +1,29 @@
1
- import { createEventHook } from "@vueuse/core";
2
1
  import { reactive, ref, toRaw, toValue, watchEffect } from "vue";
2
+ import { createEventHook } from "@vueuse/core";
3
3
  import { cloneDeep } from "es-toolkit/object";
4
4
 
5
5
  //#region src/composables/use-naive-form.ts
6
+ /**
7
+ * 检查值是否为对象类型
8
+ * @param value 要检查的值
9
+ * @returns 是否为对象类型
10
+ */
6
11
  function isObject(value) {
7
12
  return typeof value === "object" && value !== null && !Array.isArray(value);
8
13
  }
14
+ /**
15
+ * 清空对象值
16
+ * @param obj 要清空的对象
17
+ * @param rules 清空规则
18
+ * @returns 清空后的对象
19
+ */
9
20
  function clearObjectValues(obj, rules) {
10
21
  const { string: _string = "", number: _number = null, boolean: _boolean = false } = rules ?? {};
11
22
  if (Array.isArray(obj)) {
12
23
  obj.length = 0;
13
24
  return obj;
14
25
  }
15
- if (typeof obj === "object" && obj !== null) {
26
+ if (typeof obj === "object" && obj !== null && !Array.isArray(obj)) {
16
27
  for (const key in obj) if (Object.prototype.hasOwnProperty.call(obj, key)) obj[key] = clearObjectValues(obj[key], rules);
17
28
  return obj;
18
29
  }
@@ -21,6 +32,12 @@ function clearObjectValues(obj, rules) {
21
32
  if (typeof obj === "boolean") return _boolean;
22
33
  return obj;
23
34
  }
35
+ /**
36
+ * 深度合并对象
37
+ * @param target 目标对象
38
+ * @param source 源对象
39
+ * @returns 合并后的对象
40
+ */
24
41
  function deepMerge(target = {}, source = {}) {
25
42
  for (const key in source) if (Object.prototype.hasOwnProperty.call(source, key)) {
26
43
  const sourceValue = source[key];
@@ -30,6 +47,13 @@ function deepMerge(target = {}, source = {}) {
30
47
  }
31
48
  return target;
32
49
  }
50
+ /**
51
+ * 用于处理 Naive UI 表单的组合式 API
52
+ * @template T 表单值类型
53
+ * @param formInstRef 表单实例引用
54
+ * @param options 配置选项
55
+ * @returns 表单操作对象
56
+ */
33
57
  function useNaiveForm(formInstRef, options) {
34
58
  const { value, rules, clearRules } = options ?? {};
35
59
  const cacheValue = cloneDeep(toValue(value) ?? {});
@@ -44,9 +68,17 @@ function useNaiveForm(formInstRef, options) {
44
68
  rules: reactive(formRulesRef.value)
45
69
  };
46
70
  const onValidatedEvent = createEventHook();
71
+ /**
72
+ * 设置表单值
73
+ * @param _value 要设置的值
74
+ */
47
75
  function setValue(_value) {
48
76
  Object.assign(formValueRef.value, _value);
49
77
  }
78
+ /**
79
+ * 验证表单
80
+ * @returns 验证结果Promise
81
+ */
50
82
  function validate() {
51
83
  return new Promise((resolve, reject) => {
52
84
  if (!formInstRef.value) return reject(/* @__PURE__ */ new Error("useNaiveForm: formInstRef is not found."));
@@ -56,25 +88,37 @@ function useNaiveForm(formInstRef, options) {
56
88
  }).catch(reject);
57
89
  });
58
90
  }
91
+ /**
92
+ * 重置表单验证状态
93
+ */
59
94
  function resetValidation() {
60
95
  formInstRef.value?.restoreValidation();
61
96
  }
97
+ /**
98
+ * 清空表单值
99
+ */
62
100
  function clear() {
63
101
  clearObjectValues(formValueRef.value, clearRules);
64
102
  }
103
+ /**
104
+ * 重置表单值到初始状态
105
+ */
65
106
  function resetForm() {
66
107
  clear();
67
108
  const _cacheValue = cloneDeep(cacheValue);
68
109
  deepMerge(formValueRef.value, _cacheValue);
69
110
  }
111
+ /**
112
+ * 重置表单验证状态和值
113
+ */
70
114
  function reset() {
71
115
  resetValidation();
72
116
  resetForm();
73
117
  }
74
118
  return {
75
- formInstRef,
76
- formValueRef,
77
- formRulesRef,
119
+ formInst: formInstRef,
120
+ formValue: formValueRef,
121
+ formRules: formRulesRef,
78
122
  formProps,
79
123
  setValue,
80
124
  validate,
@@ -4,24 +4,38 @@ 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
- languageRef: Ref<T | undefined, T | undefined>;
22
- darkModeRef: Ref<boolean | undefined, boolean | undefined>;
23
- theme: ComputedRef<naive_ui_es_themes_interface0.BuiltInGlobalTheme | undefined>;
24
- colorsRef: Ref<{
35
+ /** 语言代码引用 */language: Ref<T | undefined, T | undefined>; /** 暗黑模式引用 */
36
+ darkMode: Ref<boolean | undefined, boolean | undefined>; /** 当前主题 */
37
+ theme: ComputedRef<naive_ui_es_themes_interface0.BuiltInGlobalTheme | undefined>; /** 颜色配置引用 */
38
+ colors: Ref<{
25
39
  primary?: string | undefined;
26
40
  info?: string | undefined;
27
41
  success?: 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,
@@ -83,10 +96,10 @@ function useNaiveTheme(options) {
83
96
  ...locales
84
97
  };
85
98
  return {
86
- languageRef,
87
- darkModeRef,
99
+ language: languageRef,
100
+ darkMode: darkModeRef,
88
101
  theme,
89
- colorsRef,
102
+ colors: colorsRef,
90
103
  themeColors,
91
104
  themeOverrides,
92
105
  locales: localesMerge,
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ import { UseAutoMenuReturn, useAutoMenu } from "./composables/use-auto-menu.js";
1
2
  import { DataObject, DataRequestFields, UseDataRequestOptions, UseDataRequestPagination, UseDataRequestReturns, useDataRequest } from "./composables/use-data-request.js";
2
3
  import { useLoading } from "./composables/use-loading.js";
3
4
  import { UseNaiveFormClearRules, UseNaiveFormOptions, UseNaiveFormReturns, UseNaiveFormRules, useNaiveForm } from "./composables/use-naive-form.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, UseAutoMenuReturn, UseDataRequestOptions, UseDataRequestPagination, UseDataRequestReturns, UseNaiveFormClearRules, UseNaiveFormOptions, UseNaiveFormReturns, UseNaiveFormRules, UseNaiveThemeOptions, UseNaiveThemeReturns, useAutoMenu, useDataRequest, useLoading, useNaiveForm, useNaiveTheme };
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
+ import { useAutoMenu } from "./composables/use-auto-menu.js";
1
2
  import { useDataRequest } from "./composables/use-data-request.js";
2
3
  import { useLoading } from "./composables/use-loading.js";
3
4
  import { useNaiveForm } from "./composables/use-naive-form.js";
4
5
  import { useNaiveTheme } from "./composables/use-naive-theme.js";
5
6
 
6
- export { useDataRequest, useLoading, useNaiveForm, useNaiveTheme };
7
+ export { useAutoMenu, useDataRequest, useLoading, useNaiveForm, 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.73",
4
+ "version": "0.0.75",
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",
49
+ "@oiij/markdown-it": "0.0.12",
48
50
  "@oiij/css-render": "0.0.10",
49
- "@oiij/markdown-it": "0.0.11",
50
- "@oiij/use": "0.0.42"
51
+ "@oiij/use": "0.0.44"
51
52
  },
52
53
  "devDependencies": {
53
54
  "@types/prismjs": "^1.26.5",
@@ -60,9 +61,10 @@
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",
65
+ "@oiij/markdown-it": "0.0.12",
63
66
  "@oiij/css-render": "0.0.10",
64
- "@oiij/markdown-it": "0.0.11",
65
- "@oiij/use": "0.0.42"
67
+ "@oiij/use": "0.0.44"
66
68
  },
67
69
  "publishConfig": {
68
70
  "access": "public"