@minilo/utils 0.0.1

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 (70) hide show
  1. package/dist/config/config.d.ts +3 -0
  2. package/dist/config/config.d.ts.map +1 -0
  3. package/dist/config/config.js +21 -0
  4. package/dist/config/config.js.map +1 -0
  5. package/dist/config/guider.d.ts +70 -0
  6. package/dist/config/guider.d.ts.map +1 -0
  7. package/dist/config/guider.js +50 -0
  8. package/dist/config/guider.js.map +1 -0
  9. package/dist/config/index.d.ts +6 -0
  10. package/dist/config/index.d.ts.map +1 -0
  11. package/dist/config/index.js +6 -0
  12. package/dist/config/index.js.map +1 -0
  13. package/dist/config/storageManager.d.ts +45 -0
  14. package/dist/config/storageManager.d.ts.map +1 -0
  15. package/dist/config/storageManager.js +90 -0
  16. package/dist/config/storageManager.js.map +1 -0
  17. package/dist/config/types.d.ts +30 -0
  18. package/dist/config/types.d.ts.map +1 -0
  19. package/dist/config/types.js +2 -0
  20. package/dist/config/types.js.map +1 -0
  21. package/dist/config/updateCssVariables.d.ts +16 -0
  22. package/dist/config/updateCssVariables.d.ts.map +1 -0
  23. package/dist/config/updateCssVariables.js +91 -0
  24. package/dist/config/updateCssVariables.js.map +1 -0
  25. package/dist/constrant/index.d.ts +13 -0
  26. package/dist/constrant/index.d.ts.map +1 -0
  27. package/dist/constrant/index.js +18 -0
  28. package/dist/constrant/index.js.map +1 -0
  29. package/dist/func/color.d.ts +13 -0
  30. package/dist/func/color.d.ts.map +1 -0
  31. package/dist/func/color.js +23 -0
  32. package/dist/func/color.js.map +1 -0
  33. package/dist/func/common.d.ts +62 -0
  34. package/dist/func/common.d.ts.map +1 -0
  35. package/dist/func/common.js +116 -0
  36. package/dist/func/common.js.map +1 -0
  37. package/dist/func/index.d.ts +4 -0
  38. package/dist/func/index.d.ts.map +1 -0
  39. package/dist/func/index.js +4 -0
  40. package/dist/func/index.js.map +1 -0
  41. package/dist/func/merge.d.ts +2 -0
  42. package/dist/func/merge.d.ts.map +1 -0
  43. package/dist/func/merge.js +2 -0
  44. package/dist/func/merge.js.map +1 -0
  45. package/dist/hooks/index.d.ts +4 -0
  46. package/dist/hooks/index.d.ts.map +1 -0
  47. package/dist/hooks/index.js +4 -0
  48. package/dist/hooks/index.js.map +1 -0
  49. package/dist/hooks/useButtonPermission.d.ts +9 -0
  50. package/dist/hooks/useButtonPermission.d.ts.map +1 -0
  51. package/dist/hooks/useButtonPermission.js +38 -0
  52. package/dist/hooks/useButtonPermission.js.map +1 -0
  53. package/dist/hooks/useGuider.d.ts +2 -0
  54. package/dist/hooks/useGuider.d.ts.map +1 -0
  55. package/dist/hooks/useGuider.js +5 -0
  56. package/dist/hooks/useGuider.js.map +1 -0
  57. package/dist/hooks/useInitGlobalStyle.d.ts +2 -0
  58. package/dist/hooks/useInitGlobalStyle.d.ts.map +1 -0
  59. package/dist/hooks/useInitGlobalStyle.js +80 -0
  60. package/dist/hooks/useInitGlobalStyle.js.map +1 -0
  61. package/dist/index.d.ts +8 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +8 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/request/index.d.ts +42 -0
  66. package/dist/request/index.d.ts.map +1 -0
  67. package/dist/request/index.js +160 -0
  68. package/dist/request/index.js.map +1 -0
  69. package/dist/tsconfig.tsbuildinfo +1 -0
  70. package/package.json +42 -0
@@ -0,0 +1,3 @@
1
+ import type { Config } from './types'
2
+ export declare const config: Config
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErC,eAAO,MAAM,MAAM,EAAE,MAmBpB,CAAA"}
@@ -0,0 +1,21 @@
1
+ export const config = {
2
+ theme: {
3
+ colorDestructive: 'hsl(348 100% 61%)',
4
+ colorPrimary: 'hsl(212 100% 45%)',
5
+ colorSuccess: 'hsl(144 57% 58%)',
6
+ colorWarning: 'hsl(42 84% 61%)'
7
+ },
8
+ sidebar: {
9
+ collapse: false
10
+ },
11
+ app: {
12
+ locale: 'zh-CN',
13
+ name: 'Minilo Adminss',
14
+ logo: '',
15
+ defaultHomePath: '/'
16
+ },
17
+ transition: {
18
+ progress: true
19
+ }
20
+ }
21
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../config/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,KAAK,EAAE;QACL,gBAAgB,EAAE,mBAAmB;QACrC,YAAY,EAAE,mBAAmB;QACjC,YAAY,EAAE,kBAAkB;QAChC,YAAY,EAAE,iBAAiB;KAChC;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,KAAK;KAChB;IACD,GAAG,EAAE;QACH,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,EAAE;QACR,eAAe,EAAE,GAAG;KACrB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,IAAI;KACf;CACF,CAAA"}
@@ -0,0 +1,70 @@
1
+ import type { Config, InitialOptions } from './types'
2
+ declare class Guider {
3
+ private cache
4
+ private isInitialized
5
+ private state
6
+ constructor()
7
+ initConfig({ config, namespace }: InitialOptions): void
8
+ updateConfig(config?: Partial<Config>): void
9
+ saveConfig(config: Config): void
10
+ private loadConfig
11
+ getConfig(): {
12
+ readonly app?:
13
+ | {
14
+ readonly locale?: string | undefined
15
+ readonly name?: string | undefined
16
+ readonly defaultHomePath?: string | undefined
17
+ readonly logo?: string | undefined
18
+ }
19
+ | undefined
20
+ readonly theme?:
21
+ | {
22
+ readonly colorDestructive?: string | undefined
23
+ readonly colorPrimary?: string | undefined
24
+ readonly colorSuccess?: string | undefined
25
+ readonly colorWarning?: string | undefined
26
+ }
27
+ | undefined
28
+ readonly sidebar?:
29
+ | {
30
+ readonly collapse: boolean
31
+ }
32
+ | undefined
33
+ readonly transition?:
34
+ | {
35
+ readonly progress: boolean
36
+ }
37
+ | undefined
38
+ }
39
+ }
40
+ declare const guider: Guider
41
+ declare const userConfig: {
42
+ readonly app?:
43
+ | {
44
+ readonly locale?: string | undefined
45
+ readonly name?: string | undefined
46
+ readonly defaultHomePath?: string | undefined
47
+ readonly logo?: string | undefined
48
+ }
49
+ | undefined
50
+ readonly theme?:
51
+ | {
52
+ readonly colorDestructive?: string | undefined
53
+ readonly colorPrimary?: string | undefined
54
+ readonly colorSuccess?: string | undefined
55
+ readonly colorWarning?: string | undefined
56
+ }
57
+ | undefined
58
+ readonly sidebar?:
59
+ | {
60
+ readonly collapse: boolean
61
+ }
62
+ | undefined
63
+ readonly transition?:
64
+ | {
65
+ readonly progress: boolean
66
+ }
67
+ | undefined
68
+ }
69
+ export { Guider, userConfig, guider }
70
+ //# sourceMappingURL=guider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guider.d.ts","sourceRoot":"","sources":["../../config/guider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAOrD,cAAM,MAAM;IACV,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,KAAK,CAEX;;IAMK,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,cAAc;IAYhD,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;IAQrC,UAAU,CAAC,MAAM,EAAE,MAAM;IAKhC,OAAO,CAAC,UAAU;IAKX,SAAS;;;;;;;;;;;;;;;;;;;;CAGjB;AAED,QAAA,MAAM,MAAM,QAAe,CAAA;AAC3B,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;CAAqB,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { markRaw, reactive, readonly } from 'vue'
2
+ import { StorageManager } from './storageManager'
3
+ import { config as defaultConfig } from './config'
4
+ import { merge } from '../func'
5
+ import { updateCSSVariables } from './updateCssVariables'
6
+ const STORAGE_KEY = 'config'
7
+ // 用户配置引导类
8
+ class Guider {
9
+ constructor() {
10
+ this.isInitialized = false
11
+ this.state = reactive({
12
+ ...this.loadConfig()
13
+ })
14
+ this.cache = new StorageManager()
15
+ }
16
+ // 初始化配置
17
+ initConfig({ config, namespace }) {
18
+ if (this.isInitialized) {
19
+ return
20
+ }
21
+ this.cache = new StorageManager({ prefix: namespace })
22
+ const mergeDefaultConfig = merge({}, config, defaultConfig)
23
+ const state = merge({}, this.loadConfig(), mergeDefaultConfig)
24
+ this.updateConfig(state)
25
+ this.isInitialized = true
26
+ }
27
+ // 更新配置
28
+ updateConfig(config) {
29
+ const cacheState = merge({}, config, markRaw(this.state))
30
+ Object.assign(this.state, cacheState)
31
+ updateCSSVariables(this.state)
32
+ this.saveConfig(this.state)
33
+ }
34
+ // 保存配置
35
+ saveConfig(config) {
36
+ this.cache?.setItem(STORAGE_KEY, config)
37
+ }
38
+ // 加载配置
39
+ loadConfig() {
40
+ return this.cache?.getItem(STORAGE_KEY)
41
+ }
42
+ // 获取配置
43
+ getConfig() {
44
+ return readonly(this.state)
45
+ }
46
+ }
47
+ const guider = new Guider()
48
+ const userConfig = guider.getConfig()
49
+ export { Guider, userConfig, guider }
50
+ //# sourceMappingURL=guider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guider.js","sourceRoot":"","sources":["../../config/guider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,UAAU,CAAA;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,WAAW,GAAG,QAAQ,CAAA;AAE5B,UAAU;AACV,MAAM,MAAM;IAMV;QAJQ,kBAAa,GAAY,KAAK,CAAA;QAC9B,UAAK,GAAW,QAAQ,CAAS;YACvC,GAAG,IAAI,CAAC,UAAU,EAAE;SACrB,CAAC,CAAA;QAEA,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,EAAE,CAAA;IACnC,CAAC;IAED,QAAQ;IACD,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAkB;QACrD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;QACtD,MAAM,kBAAkB,GAAG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;QAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,kBAAkB,CAAC,CAAA;QAC9D,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;IAC3B,CAAC;IAED,OAAO;IACA,YAAY,CAAC,MAAwB;QAC1C,MAAM,UAAU,GAAW,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QACjE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QACrC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,OAAO;IACA,UAAU,CAAC,MAAc;QAC9B,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO;IACC,UAAU;QAChB,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO,CAAS,WAAW,CAAC,CAAA;IACjD,CAAC;IAED,OAAO;IACA,SAAS;QACd,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;CACF;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;AAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * from './config'
2
+ export * from './guider'
3
+ export * from './updateCssVariables'
4
+ export * from './storageManager'
5
+ export * from './types'
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../config/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * from './config'
2
+ export * from './guider'
3
+ export * from './updateCssVariables'
4
+ export * from './storageManager'
5
+ export * from './types'
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../config/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA"}
@@ -0,0 +1,45 @@
1
+ type StorageType = 'localStorage' | 'sessionStorage'
2
+ interface StorageManagerOptions {
3
+ prefix?: string
4
+ storageType?: StorageType
5
+ }
6
+ declare class StorageManager {
7
+ private prefix
8
+ private storage
9
+ constructor({ prefix, storageType }?: StorageManagerOptions)
10
+ /**
11
+ * 清除所有带前缀的存储项
12
+ */
13
+ clear(): void
14
+ /**
15
+ * 清除所有过期的存储项
16
+ */
17
+ clearExpiredItems(): void
18
+ /**
19
+ * 获取存储项
20
+ * @param key 键
21
+ * @param defaultValue 当项不存在或已过期时返回的默认值
22
+ * @returns 值,如果项已过期或解析错误则返回默认值
23
+ */
24
+ getItem<T>(key: string, defaultValue?: null | T): null | T
25
+ /**
26
+ * 移除存储项
27
+ * @param key 键
28
+ */
29
+ removeItem(key: string): void
30
+ /**
31
+ * 设置存储项
32
+ * @param key 键
33
+ * @param value 值
34
+ * @param ttl 存活时间(毫秒)
35
+ */
36
+ setItem<T>(key: string, value: T, ttl?: number): void
37
+ /**
38
+ * 获取完整的存储键
39
+ * @param key 原始键
40
+ * @returns 带前缀的完整键
41
+ */
42
+ private getFullKey
43
+ }
44
+ export { StorageManager }
45
+ //# sourceMappingURL=storageManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storageManager.d.ts","sourceRoot":"","sources":["../../config/storageManager.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG,cAAc,GAAG,gBAAgB,CAAA;AAEpD,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAOD,cAAM,cAAc;IAClB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAS;gBAEZ,EAAE,MAAW,EAAE,WAA4B,EAAE,GAAE,qBAA0B;IAKrF;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAUzB;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,IAAI,GAAG,CAAQ,GAAG,IAAI,GAAG,CAAC;IAqBhE;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7B;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAWrD;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAGnB;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,90 @@
1
+ class StorageManager {
2
+ constructor({ prefix = '', storageType = 'localStorage' } = {}) {
3
+ this.prefix = prefix
4
+ this.storage = storageType === 'localStorage' ? window.localStorage : window.sessionStorage
5
+ }
6
+ /**
7
+ * 清除所有带前缀的存储项
8
+ */
9
+ clear() {
10
+ const keysToRemove = []
11
+ for (let i = 0; i < this.storage.length; i++) {
12
+ const key = this.storage.key(i)
13
+ if (key && key.startsWith(this.prefix)) {
14
+ keysToRemove.push(key)
15
+ }
16
+ }
17
+ keysToRemove.forEach((key) => this.storage.removeItem(key))
18
+ }
19
+ /**
20
+ * 清除所有过期的存储项
21
+ */
22
+ clearExpiredItems() {
23
+ for (let i = 0; i < this.storage.length; i++) {
24
+ const key = this.storage.key(i)
25
+ if (key && key.startsWith(this.prefix)) {
26
+ const shortKey = key.replace(this.prefix, '')
27
+ this.getItem(shortKey) // 调用 getItem 方法检查并移除过期项
28
+ }
29
+ }
30
+ }
31
+ /**
32
+ * 获取存储项
33
+ * @param key 键
34
+ * @param defaultValue 当项不存在或已过期时返回的默认值
35
+ * @returns 值,如果项已过期或解析错误则返回默认值
36
+ */
37
+ getItem(key, defaultValue = null) {
38
+ const fullKey = this.getFullKey(key)
39
+ const itemStr = this.storage.getItem(fullKey)
40
+ if (!itemStr) {
41
+ return defaultValue
42
+ }
43
+ try {
44
+ const item = JSON.parse(itemStr)
45
+ if (item.expiry && Date.now() > item.expiry) {
46
+ this.storage.removeItem(fullKey)
47
+ return defaultValue
48
+ }
49
+ return item.value
50
+ } catch (error) {
51
+ console.error(`Error parsing item with key "${fullKey}":`, error)
52
+ this.storage.removeItem(fullKey) // 如果解析失败,删除该项
53
+ return defaultValue
54
+ }
55
+ }
56
+ /**
57
+ * 移除存储项
58
+ * @param key 键
59
+ */
60
+ removeItem(key) {
61
+ const fullKey = this.getFullKey(key)
62
+ this.storage.removeItem(fullKey)
63
+ }
64
+ /**
65
+ * 设置存储项
66
+ * @param key 键
67
+ * @param value 值
68
+ * @param ttl 存活时间(毫秒)
69
+ */
70
+ setItem(key, value, ttl) {
71
+ const fullKey = this.getFullKey(key)
72
+ const expiry = ttl ? Date.now() + ttl : undefined
73
+ const item = { expiry, value }
74
+ try {
75
+ this.storage.setItem(fullKey, JSON.stringify(item))
76
+ } catch (error) {
77
+ console.error(`Error setting item with key "${fullKey}":`, error)
78
+ }
79
+ }
80
+ /**
81
+ * 获取完整的存储键
82
+ * @param key 原始键
83
+ * @returns 带前缀的完整键
84
+ */
85
+ getFullKey(key) {
86
+ return `${this.prefix}-${key}`
87
+ }
88
+ }
89
+ export { StorageManager }
90
+ //# sourceMappingURL=storageManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storageManager.js","sourceRoot":"","sources":["../../config/storageManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ interface InitialOptions {
2
+ namespace: string
3
+ config?: Partial<Config>
4
+ }
5
+ interface ThemeConfig {
6
+ colorDestructive?: string
7
+ colorPrimary?: string
8
+ colorSuccess?: string
9
+ colorWarning?: string
10
+ }
11
+ interface SidebarConfig {
12
+ collapse: boolean
13
+ }
14
+ interface TransitionConfig {
15
+ progress: boolean
16
+ }
17
+ interface AppConfig {
18
+ locale?: string
19
+ name?: string
20
+ defaultHomePath?: string
21
+ logo?: string
22
+ }
23
+ interface Config {
24
+ app?: AppConfig
25
+ theme?: ThemeConfig
26
+ sidebar?: SidebarConfig
27
+ transition?: TransitionConfig
28
+ }
29
+ export type { Config, InitialOptions }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../config/types.ts"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CACzB;AAGD,UAAU,WAAW;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAGD,UAAU,aAAa;IAErB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAGD,UAAU,gBAAgB;IAExB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAGD,UAAU,SAAS;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAGD,UAAU,MAAM;IACd,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAC9B;AAED,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {}
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../config/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import type { Config } from './types'
2
+ declare function executeUpdateCSSVariables(
3
+ variables: {
4
+ [key: string]: string
5
+ },
6
+ id?: string
7
+ ): void
8
+ interface ColorItem {
9
+ alias?: string
10
+ color?: string
11
+ name?: string
12
+ }
13
+ declare function generatorColorVariables(colorItems: ColorItem[]): Record<string, string>
14
+ declare function updateCSSVariables(config: Config): void
15
+ export { updateCSSVariables, executeUpdateCSSVariables, generatorColorVariables }
16
+ //# sourceMappingURL=updateCssVariables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateCssVariables.d.ts","sourceRoot":"","sources":["../../config/updateCssVariables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAIrC,iBAAS,yBAAyB,CAChC,SAAS,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACpC,EAAE,SAAsB,GACvB,IAAI,CAwBN;AAED,UAAU,SAAS;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAGD,iBAAS,uBAAuB,CAAC,UAAU,EAAE,SAAS,EAAE,0BA4BvD;AAED,iBAAS,kBAAkB,CAAC,MAAM,EAAE,MAAM,QAWzC;AAiCD,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,CAAA"}
@@ -0,0 +1,91 @@
1
+ import { getColors } from 'theme-colors'
2
+ import { convertToHsl, TinyColor } from '../func'
3
+ function executeUpdateCSSVariables(variables, id = '__minilo-styles__') {
4
+ // 获取或创建内联样式表元素
5
+ const styleElement = document.querySelector(`#${id}`) || document.createElement('style')
6
+ styleElement.id = id
7
+ // 构建要更新的 CSS 变量的样式文本
8
+ let cssText = ':root {'
9
+ for (const key in variables) {
10
+ if (Object.prototype.hasOwnProperty.call(variables, key)) {
11
+ cssText += `${key}: ${variables[key]};`
12
+ }
13
+ }
14
+ cssText += '}'
15
+ // 将样式文本赋值给内联样式表
16
+ styleElement.textContent = cssText
17
+ // 将内联样式表添加到文档头部
18
+ if (!document.querySelector(`#${id}`)) {
19
+ setTimeout(() => {
20
+ document.head.append(styleElement)
21
+ })
22
+ }
23
+ }
24
+ // 根据某个色值生成色值阶梯对象,key=500时为其默认初始值,也就是默认参数
25
+ function generatorColorVariables(colorItems) {
26
+ const colorVariables = {}
27
+ colorItems.forEach(({ alias, color, name }) => {
28
+ if (color) {
29
+ const colorsMap = getColors(new TinyColor(color).toHexString())
30
+ let mainColor = colorsMap['500']
31
+ const colorKeys = Object.keys(colorsMap)
32
+ colorKeys.forEach((key) => {
33
+ const colorValue = colorsMap[key]
34
+ if (colorValue) {
35
+ const hslColor = convertToHsl(colorValue)
36
+ colorVariables[`--${name}-${key}`] = hslColor
37
+ if (alias) {
38
+ colorVariables[`--${alias}-${key}`] = hslColor
39
+ }
40
+ if (key === '500') {
41
+ mainColor = hslColor
42
+ }
43
+ }
44
+ })
45
+ if (alias && mainColor) {
46
+ colorVariables[`--${alias}`] = mainColor
47
+ }
48
+ }
49
+ })
50
+ return colorVariables
51
+ }
52
+ function updateCSSVariables(config) {
53
+ const theme = config?.theme ?? {}
54
+ if (
55
+ Reflect.has(theme, 'colorPrimary') ||
56
+ Reflect.has(theme, 'colorDestructive') ||
57
+ Reflect.has(theme, 'colorSuccess') ||
58
+ Reflect.has(theme, 'colorWarning')
59
+ ) {
60
+ updateMainColorVariables(config)
61
+ }
62
+ }
63
+ function updateMainColorVariables(config) {
64
+ if (!config.theme) {
65
+ return
66
+ }
67
+ const { colorDestructive, colorPrimary, colorSuccess, colorWarning } = config.theme
68
+ const colorVariables = generatorColorVariables([
69
+ { color: colorPrimary, name: 'primary' },
70
+ { alias: 'warning', color: colorWarning, name: 'yellow' },
71
+ { alias: 'success', color: colorSuccess, name: 'green' },
72
+ { alias: 'destructive', color: colorDestructive, name: 'red' }
73
+ ])
74
+ // 要设置的 CSS 变量映射
75
+ const colorMappings = {
76
+ '--green-500': '--success',
77
+ '--primary-500': '--primary',
78
+ '--red-500': '--destructive',
79
+ '--yellow-500': '--warning'
80
+ }
81
+ // 统一处理颜色变量的更新
82
+ Object.entries(colorMappings).forEach(([sourceVar, targetVar]) => {
83
+ const colorValue = colorVariables[sourceVar]
84
+ if (colorValue) {
85
+ document.documentElement.style.setProperty(targetVar, colorValue)
86
+ }
87
+ })
88
+ executeUpdateCSSVariables(colorVariables)
89
+ }
90
+ export { updateCSSVariables, executeUpdateCSSVariables, generatorColorVariables }
91
+ //# sourceMappingURL=updateCssVariables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateCssVariables.js","sourceRoot":"","sources":["../../config/updateCssVariables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @zh_CN 登录页面 url 地址
3
+ */
4
+ export declare const LOGIN_PATH = '/auth/login'
5
+ export interface LanguageOption {
6
+ label: string
7
+ value: 'en-US' | 'zh-CN'
8
+ }
9
+ /**
10
+ * Supported languages
11
+ */
12
+ export declare const SUPPORT_LANGUAGES: LanguageOption[]
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../constrant/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,UAAU,gBAAgB,CAAA;AAEvC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,GAAG,OAAO,CAAA;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAAc,EAS7C,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @zh_CN 登录页面 url 地址
3
+ */
4
+ export const LOGIN_PATH = '/auth/login'
5
+ /**
6
+ * Supported languages
7
+ */
8
+ export const SUPPORT_LANGUAGES = [
9
+ {
10
+ label: '简体中文',
11
+ value: 'zh-CN'
12
+ },
13
+ {
14
+ label: 'English',
15
+ value: 'en-US'
16
+ }
17
+ ]
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../constrant/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAA;AAOvC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAqB;IACjD;QACE,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,OAAO;KACf;CACF,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { TinyColor } from '@ctrl/tinycolor'
2
+ declare function convertToHsl(color: string): string
3
+ /**
4
+ * 将颜色转换为RGB颜色字符串
5
+ * TinyColor无法处理hsl内包含'deg'、'grad'、'rad'或'turn'的字符串
6
+ * 比如 hsl(231deg 98% 65%)将被解析为rgb(0, 0, 0)
7
+ * 这里在转换之前先将这些单位去掉
8
+ * @param str 表示HLS颜色值的字符串
9
+ * @returns 如果颜色值有效,则返回对应的RGB颜色字符串;如果无效,则返回rgb(0, 0, 0)
10
+ */
11
+ declare function convertToRgb(str: string): string
12
+ export { convertToHsl, convertToRgb, TinyColor }
13
+ //# sourceMappingURL=color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../func/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG3C,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED;;;;;;;GAOG;AACH,iBAAS,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { TinyColor } from '@ctrl/tinycolor'
2
+ // 将颜色转换为HSL格式
3
+ function convertToHsl(color) {
4
+ // 使用TinyColor库将颜色转换为HSL格式
5
+ const { a, h, l, s } = new TinyColor(color).toHsl()
6
+ // 将HSL格式转换为字符串
7
+ const hsl = `hsl(${Math.round(h)} ${Math.round(s * 100)}% ${Math.round(l * 100)}%)`
8
+ // 如果颜色的透明度小于1,则返回带有透明度的HSL格式
9
+ return a < 1 ? `${hsl} ${a}` : hsl
10
+ }
11
+ /**
12
+ * 将颜色转换为RGB颜色字符串
13
+ * TinyColor无法处理hsl内包含'deg'、'grad'、'rad'或'turn'的字符串
14
+ * 比如 hsl(231deg 98% 65%)将被解析为rgb(0, 0, 0)
15
+ * 这里在转换之前先将这些单位去掉
16
+ * @param str 表示HLS颜色值的字符串
17
+ * @returns 如果颜色值有效,则返回对应的RGB颜色字符串;如果无效,则返回rgb(0, 0, 0)
18
+ */
19
+ function convertToRgb(str) {
20
+ return new TinyColor(str.replaceAll(/deg|grad|rad|turn/g, '')).toRgbString()
21
+ }
22
+ export { convertToHsl, convertToRgb, TinyColor }
23
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../func/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,cAAc;AACd,SAAS,YAAY,CAAC,KAAa;IACjC,0BAA0B;IAC1B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;IACnD,eAAe;IACf,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;IACnF,6BAA6B;IAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AACpC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AAC9E,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,CAAA"}
@@ -0,0 +1,62 @@
1
+ import type { MenuDataItem, BreadcrumbItem, OptionItem } from '@minilo/types'
2
+ /**
3
+ * @description 判断url是否是http或https
4
+ * @author xieshuhong
5
+ * @export
6
+ * @param {string} url
7
+ * @return {*}
8
+ */
9
+ export declare function isHttp(url: string): boolean
10
+ /**
11
+ * @description 递归查找当前path对应的所有层级路由,为面包屑提供数据
12
+ * @author xieshuhong
13
+ * @export
14
+ * @param {MenuDataItem[]} menuList
15
+ * @param {string} targetPath
16
+ * @param {BreadcrumbItem[]} [parentPaths=[]]
17
+ * @return {*} {BreadcrumbItem[]}
18
+ */
19
+ export declare function findLevelRoutes(
20
+ menuList: MenuDataItem[],
21
+ targetPath: string,
22
+ parentPaths?: BreadcrumbItem[]
23
+ ): BreadcrumbItem[]
24
+ /**
25
+ * @description 查找菜单栏中当前path对应的菜单项
26
+ * @author xieshuhong
27
+ * @export
28
+ * @param {MenuDataItem[]} items
29
+ * @param {string} targetPath
30
+ * @return {*} {(MenuDataItem | null)}
31
+ */
32
+ export declare function findMenuItem(items: MenuDataItem[], targetPath: string): MenuDataItem | null
33
+ /**
34
+ * @description 将options数组转换为对象,渲染
35
+ * @author xieshuhong
36
+ * @export
37
+ * @param {OptionItem[]} options 数据源
38
+ * @param {false} inverse 是否反向转换
39
+ * @return {*} {(Record<string | number, string>)}
40
+ */
41
+ export declare function transOptionsToObject(
42
+ options: OptionItem[],
43
+ inverse?: false
44
+ ): Record<string | number, string>
45
+ /**
46
+ * @description 根据多层级键路径从对象中获取值
47
+ * @author xieshuhong
48
+ * @param {Object} obj - 要查询的对象
49
+ * @param {string} path - 键路径,如 'a.b' 或 'a.b.c'
50
+ * @param {any} [defaultValue] - 可选,路径不存在时返回的默认值
51
+ * @returns {any} 路径对应的 value 或 defaultValue
52
+ */
53
+ export declare function getNestedValue(obj: any, path: string, defaultValue?: any): any
54
+ /**
55
+ * @description 将驼峰命名法转换为连字符命名法
56
+ * @author xieshuhong
57
+ * @export
58
+ * @param {string} key
59
+ * @return {*}
60
+ */
61
+ export declare function kebabCase(key: string): string
62
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../func/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE7E;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,WAGjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,YAAY,EAAE,EACxB,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,cAAc,EAAO,GACjC,cAAc,EAAE,CAuBlB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAS3F;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,CAAC,EAAE,KAAK,GACd,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAUjC;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,OAkBxE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,UAGpC"}