@minilo/utils 0.0.5 → 0.0.7

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 (69) hide show
  1. package/dist/config/config.d.ts +3 -3
  2. package/dist/config/guider.d.ts +51 -67
  3. package/dist/config/index.d.ts +6 -6
  4. package/dist/config/storageManager.d.ts +41 -41
  5. package/dist/config/types.d.ts +18 -18
  6. package/dist/config/updateCssVariables.d.ts +11 -14
  7. package/dist/constrant/index.d.ts +5 -5
  8. package/dist/func/color.d.ts +5 -5
  9. package/dist/func/common.d.ts +8 -15
  10. package/dist/func/index.d.ts +4 -4
  11. package/dist/func/merge.d.ts +2 -2
  12. package/dist/hooks/helper.d.ts +6 -0
  13. package/dist/hooks/helper.d.ts.map +1 -0
  14. package/dist/hooks/helper.js +45 -0
  15. package/dist/hooks/helper.js.map +1 -0
  16. package/dist/hooks/index.d.ts +4 -5
  17. package/dist/hooks/index.d.ts.map +1 -1
  18. package/dist/hooks/index.js +4 -5
  19. package/dist/hooks/index.js.map +1 -1
  20. package/dist/hooks/useChartResize.d.ts +20 -0
  21. package/dist/hooks/useChartResize.d.ts.map +1 -0
  22. package/dist/hooks/useChartResize.js +67 -0
  23. package/dist/hooks/useChartResize.js.map +1 -0
  24. package/dist/hooks/useCountDown.d.ts +9 -0
  25. package/dist/hooks/useCountDown.d.ts.map +1 -0
  26. package/dist/hooks/useCountDown.js +42 -0
  27. package/dist/hooks/useCountDown.js.map +1 -0
  28. package/dist/hooks/useFormAutoSave.d.ts +2 -0
  29. package/dist/hooks/useFormAutoSave.d.ts.map +1 -0
  30. package/dist/hooks/useFormAutoSave.js +73 -0
  31. package/dist/hooks/useFormAutoSave.js.map +1 -0
  32. package/dist/hooks/useRouteCache.d.ts +2 -0
  33. package/dist/hooks/useRouteCache.d.ts.map +1 -0
  34. package/dist/hooks/useRouteCache.js +92 -0
  35. package/dist/hooks/useRouteCache.js.map +1 -0
  36. package/dist/hooks/useScroll.d.ts +15 -0
  37. package/dist/hooks/useScroll.d.ts.map +1 -0
  38. package/dist/hooks/useScroll.js +71 -0
  39. package/dist/hooks/useScroll.js.map +1 -0
  40. package/dist/hooks/useUpload.d.ts +17 -0
  41. package/dist/hooks/useUpload.d.ts.map +1 -0
  42. package/dist/hooks/useUpload.js +87 -0
  43. package/dist/hooks/useUpload.js.map +1 -0
  44. package/dist/index.d.ts +1 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +1 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/request/index.d.ts +34 -16
  49. package/dist/request/index.d.ts.map +1 -1
  50. package/dist/request/index.js +15 -8
  51. package/dist/request/index.js.map +1 -1
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/package.json +7 -2
  54. package/dist/hooks/useButtonPermission.d.ts +0 -9
  55. package/dist/hooks/useButtonPermission.d.ts.map +0 -1
  56. package/dist/hooks/useButtonPermission.js +0 -38
  57. package/dist/hooks/useButtonPermission.js.map +0 -1
  58. package/dist/hooks/useGuider.d.ts +0 -2
  59. package/dist/hooks/useGuider.d.ts.map +0 -1
  60. package/dist/hooks/useGuider.js +0 -5
  61. package/dist/hooks/useGuider.js.map +0 -1
  62. package/dist/hooks/useInitGlobalStyle.d.ts +0 -2
  63. package/dist/hooks/useInitGlobalStyle.d.ts.map +0 -1
  64. package/dist/hooks/useInitGlobalStyle.js +0 -80
  65. package/dist/hooks/useInitGlobalStyle.js.map +0 -1
  66. package/dist/hooks/useLogout.d.ts +0 -8
  67. package/dist/hooks/useLogout.d.ts.map +0 -1
  68. package/dist/hooks/useLogout.js +0 -55
  69. package/dist/hooks/useLogout.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minilo/utils",
3
- "version": "0.0.5",
3
+ "version": "0.0.7",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "files": [
@@ -9,11 +9,15 @@
9
9
  "exports": {
10
10
  ".": {
11
11
  "types": "./dist/index.d.ts",
12
- "default": "./index.ts"
12
+ "default": "./dist/index.js"
13
13
  },
14
14
  "./request": {
15
15
  "default": "./dist/request/index.js",
16
16
  "types": "./dist/request/index.d.ts"
17
+ },
18
+ "./hooks": {
19
+ "default": "./dist/hooks/index.js",
20
+ "types": "./dist/hooks/index.d.ts"
17
21
  }
18
22
  },
19
23
  "author": "",
@@ -25,6 +29,7 @@
25
29
  "axios": "1.13.2",
26
30
  "defu": "^6.1.4",
27
31
  "element-plus": "^2.11.7",
32
+ "lodash-es": "^4.17.22",
28
33
  "lodash.clonedeep": "^4.5.0",
29
34
  "theme-colors": "0.1.0",
30
35
  "vue": "^3.5.26"
@@ -1,9 +0,0 @@
1
- /**
2
- * 按钮权限相关的组合式API
3
- */
4
- export declare function useButtonPermission(): {
5
- hasPermission: (permission: string, permissions: string[]) => boolean
6
- hasAnyPermission: (permissionList: string[], userPermissions: string[]) => boolean
7
- hasAllPermissions: (permissionList: string[], userPermissions: string[]) => boolean
8
- }
9
- //# sourceMappingURL=useButtonPermission.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useButtonPermission.d.ts","sourceRoot":"","sources":["../../hooks/useButtonPermission.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,mBAAmB;gCAOE,MAAM,eAAe,MAAM,EAAE,KAAG,OAAO;uCAUhC,MAAM,EAAE,mBAAmB,MAAM,EAAE,KAAG,OAAO;wCAU5C,MAAM,EAAE,mBAAmB,MAAM,EAAE,KAAG,OAAO;EASzF"}
@@ -1,38 +0,0 @@
1
- /**
2
- * 按钮权限相关的组合式API
3
- */
4
- export function useButtonPermission() {
5
- /**
6
- * 检查是否具有指定的按钮权限
7
- * @param permission 权限标识,如 'user:create', 'user:delete' 等
8
- * @param permissions 用户权限列表
9
- * @returns 是否具有该权限
10
- */
11
- const hasPermission = (permission, permissions) => {
12
- return permissions.includes(permission)
13
- }
14
- /**
15
- * 检查是否具有多个权限中的任意一个
16
- * @param permissionList 权限标识数组
17
- * @param userPermissions 用户权限列表
18
- * @returns 是否具有其中任一权限
19
- */
20
- const hasAnyPermission = (permissionList, userPermissions) => {
21
- return permissionList.some((permission) => hasPermission(permission, userPermissions))
22
- }
23
- /**
24
- * 检查是否具有所有指定的权限
25
- * @param permissionList 权限标识数组
26
- * @param userPermissions 用户权限列表
27
- * @returns 是否具有所有权限
28
- */
29
- const hasAllPermissions = (permissionList, userPermissions) => {
30
- return permissionList.every((permission) => hasPermission(permission, userPermissions))
31
- }
32
- return {
33
- hasPermission,
34
- hasAnyPermission,
35
- hasAllPermissions
36
- }
37
- }
38
- //# sourceMappingURL=useButtonPermission.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useButtonPermission.js","sourceRoot":"","sources":["../../hooks/useButtonPermission.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC;;;;;OAKG;IACH,MAAM,aAAa,GAAG,CAAC,UAAkB,EAAE,WAAqB,EAAW,EAAE;QAC3E,OAAO,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IACzC,CAAC,CAAA;IAED;;;;;OAKG;IACH,MAAM,gBAAgB,GAAG,CAAC,cAAwB,EAAE,eAAyB,EAAW,EAAE;QACxF,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAA;IACxF,CAAC,CAAA;IAED;;;;;OAKG;IACH,MAAM,iBAAiB,GAAG,CAAC,cAAwB,EAAE,eAAyB,EAAW,EAAE;QACzF,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAA;IACzF,CAAC,CAAA;IAED,OAAO;QACL,aAAa;QACb,gBAAgB;QAChB,iBAAiB;KAClB,CAAA;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function useGuider(): void
2
- //# sourceMappingURL=useGuider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGuider.d.ts","sourceRoot":"","sources":["../../hooks/useGuider.ts"],"names":[],"mappings":"AACA,wBAAgB,SAAS,SAExB"}
@@ -1,5 +0,0 @@
1
- // import { guider } from '../config/guider'
2
- export function useGuider() {
3
- // const config = guider.getConfig()
4
- }
5
- //# sourceMappingURL=useGuider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGuider.js","sourceRoot":"","sources":["../../hooks/useGuider.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,MAAM,UAAU,SAAS;IACvB,oCAAoC;AACtC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const useInitGlobalStyle: () => void
2
- //# sourceMappingURL=useInitGlobalStyle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInitGlobalStyle.d.ts","sourceRoot":"","sources":["../../hooks/useInitGlobalStyle.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,YA6E9B,CAAA"}
@@ -1,80 +0,0 @@
1
- import { watch } from 'vue'
2
- import { convertToRgb } from '../func'
3
- import { userConfig } from '../config'
4
- import { executeUpdateCSSVariables } from '../config'
5
- // 初始化全局样式
6
- export const useInitGlobalStyle = () => {
7
- const rootStyles = getComputedStyle(document.documentElement)
8
- const getCssVariableValueRaw = (variable) => {
9
- return rootStyles.getPropertyValue(variable)
10
- }
11
- /**
12
- * @description: 将可用颜色转换为hsl颜色格式
13
- * @param {string} variable
14
- * @param {boolean} isColor
15
- * @return {*}
16
- * @Author: xieshuhong
17
- */
18
- const getCssVariableValue = (variable, isColor = true) => {
19
- const value = getCssVariableValueRaw(variable)
20
- return isColor ? convertToRgb(`hsl(${value})`) : value
21
- }
22
- watch(
23
- () => userConfig.theme,
24
- () => {
25
- const background = getCssVariableValue('--background')
26
- const border = getCssVariableValue('--border')
27
- const accent = getCssVariableValue('--accent')
28
- const variables = {
29
- '--el-bg-color': background,
30
- '--el-bg-color-overlay': getCssVariableValue('--popover'),
31
- '--el-bg-color-page': getCssVariableValue('--background-deep'),
32
- '--el-border-color': border,
33
- '--el-border-color-dark': border,
34
- '--el-border-color-extra-light': border,
35
- '--el-border-color-hover': accent,
36
- '--el-border-color-light': border,
37
- '--el-border-color-lighter': border,
38
- '--el-border-radius-base': getCssVariableValue('--radius', false),
39
- '--el-color-danger': getCssVariableValue('--destructive-500'),
40
- '--el-color-danger-dark-2': getCssVariableValue('--destructive-600'),
41
- '--el-color-danger-light-3': getCssVariableValue('--destructive-400'),
42
- '--el-color-danger-light-5': getCssVariableValue('--destructive-300'),
43
- '--el-color-danger-light-7': getCssVariableValue('--destructive-200'),
44
- '--el-color-danger-light-8': getCssVariableValue('--destructive-100'),
45
- '--el-color-danger-light-9': getCssVariableValue('--destructive-50'),
46
- '--el-color-error': getCssVariableValue('--destructive-500'),
47
- '--el-color-error-dark-2': getCssVariableValue('--destructive-600'),
48
- '--el-color-error-light-3': getCssVariableValue('--destructive-400'),
49
- '--el-color-error-light-5': getCssVariableValue('--destructive-300'),
50
- '--el-color-error-light-7': getCssVariableValue('--destructive-200'),
51
- '--el-color-error-light-8': getCssVariableValue('--destructive-100'),
52
- '--el-color-error-light-9': getCssVariableValue('--destructive-50'),
53
- '--el-color-info-light-5': border,
54
- '--el-color-info-light-8': border,
55
- '--el-color-info-light-9': getCssVariableValue('--info'), // getCssVariableValue('--secondary'),
56
- '--el-color-primary': getCssVariableValue('--primary-500'),
57
- '--el-color-primary-dark-2': getCssVariableValue('--primary-600'),
58
- '--el-color-primary-light-3': getCssVariableValue('--primary-400'),
59
- '--el-color-primary-light-5': getCssVariableValue('--primary-300'),
60
- '--el-color-primary-light-7': getCssVariableValue('--primary-200'),
61
- '--el-color-primary-light-8': getCssVariableValue('--primary-100'),
62
- '--el-color-primary-light-9': getCssVariableValue('--primary-50'),
63
- '--el-color-success': getCssVariableValue('--success-500'),
64
- '--el-fill-color': getCssVariableValue('--accent'),
65
- '--el-fill-color-blank': background,
66
- '--el-fill-color-light': getCssVariableValue('--accent'),
67
- '--el-fill-color-lighter': getCssVariableValue('--accent-lighter'),
68
- '--el-fill-color-dark': getCssVariableValue('--accent-dark'),
69
- '--el-fill-color-darker': getCssVariableValue('--accent-darker'),
70
- // 解决ElLoading背景色问题
71
- '--el-mask-color': 'rgba(255,255,255,.9)',
72
- '--el-text-color-primary': getCssVariableValue('--foreground'),
73
- '--el-text-color-regular': getCssVariableValue('--foreground')
74
- }
75
- executeUpdateCSSVariables(variables, `__myself_design_styles__`)
76
- },
77
- { immediate: true }
78
- )
79
- }
80
- //# sourceMappingURL=useInitGlobalStyle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInitGlobalStyle.js","sourceRoot":"","sources":["../../hooks/useInitGlobalStyle.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * 登出功能 Hook
3
- * @param getInitStore - 可选,获取 initStore 的函数
4
- */
5
- export declare const useLogout: (getInitStore?: () => any) => {
6
- logout: (showConfirm?: boolean) => Promise<void>
7
- }
8
- //# sourceMappingURL=useLogout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLogout.d.ts","sourceRoot":"","sources":["../../hooks/useLogout.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,eAAe,MAAM,GAAG;;CAgDjD,CAAA"}
@@ -1,55 +0,0 @@
1
- import { useRouter } from 'vue-router'
2
- import { useUserStore, useRoutesStore, useConfigStore } from '@minilo/store'
3
- import { ElMessageBox, ElMessage } from 'element-plus'
4
- import { LOGIN_PATH } from '../constrant'
5
- /**
6
- * 登出功能 Hook
7
- * @param getInitStore - 可选,获取 initStore 的函数
8
- */
9
- export const useLogout = (getInitStore) => {
10
- const router = useRouter()
11
- const userStore = useUserStore()
12
- const routesStore = useRoutesStore()
13
- const configStore = useConfigStore()
14
- /**
15
- * 执行登出操作
16
- * @param showConfirm 是否显示确认对话框,默认为 true
17
- */
18
- const logout = async (showConfirm = true) => {
19
- if (showConfirm) {
20
- try {
21
- await ElMessageBox.confirm('确定要退出登录吗?', '提示', {
22
- confirmButtonText: '确定',
23
- cancelButtonText: '取消',
24
- type: 'warning'
25
- })
26
- } catch {
27
- // 用户取消登出
28
- return
29
- }
30
- }
31
- try {
32
- userStore.logout()
33
- routesStore.resetRoutes()
34
- configStore.resetConfig()
35
- if (getInitStore) {
36
- const initStore = getInitStore()
37
- initStore.resetRouters()
38
- }
39
- ElMessage.success('退出登录成功')
40
- router.replace({
41
- path: LOGIN_PATH,
42
- query: {
43
- redirect: encodeURIComponent(router.currentRoute.value.fullPath)
44
- }
45
- })
46
- } catch (error) {
47
- console.error('登出失败:', error)
48
- ElMessage.error('退出登录失败')
49
- }
50
- }
51
- return {
52
- logout
53
- }
54
- }
55
- //# sourceMappingURL=useLogout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLogout.js","sourceRoot":"","sources":["../../hooks/useLogout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,YAAwB,EAAE,EAAE;IACpD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC;;;OAGG;IACH,MAAM,MAAM,GAAG,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,EAAE;QAC1C,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE;oBAC5C,iBAAiB,EAAE,IAAI;oBACvB,gBAAgB,EAAE,IAAI;oBACtB,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAA;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;gBACT,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,SAAS,CAAC,MAAM,EAAE,CAAA;YAClB,WAAW,CAAC,WAAW,EAAE,CAAA;YACzB,WAAW,CAAC,WAAW,EAAE,CAAA;YACzB,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;gBAChC,SAAS,CAAC,YAAY,EAAE,CAAA;YAC1B,CAAC;YACD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YAC3B,MAAM,CAAC,OAAO,CAAC;gBACb,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE;oBACL,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACjE;aACF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC7B,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC,CAAA;IAED,OAAO;QACL,MAAM;KACP,CAAA;AACH,CAAC,CAAA"}