@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.
- package/dist/config/config.d.ts +3 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +21 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/guider.d.ts +70 -0
- package/dist/config/guider.d.ts.map +1 -0
- package/dist/config/guider.js +50 -0
- package/dist/config/guider.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/storageManager.d.ts +45 -0
- package/dist/config/storageManager.d.ts.map +1 -0
- package/dist/config/storageManager.js +90 -0
- package/dist/config/storageManager.js.map +1 -0
- package/dist/config/types.d.ts +30 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/updateCssVariables.d.ts +16 -0
- package/dist/config/updateCssVariables.d.ts.map +1 -0
- package/dist/config/updateCssVariables.js +91 -0
- package/dist/config/updateCssVariables.js.map +1 -0
- package/dist/constrant/index.d.ts +13 -0
- package/dist/constrant/index.d.ts.map +1 -0
- package/dist/constrant/index.js +18 -0
- package/dist/constrant/index.js.map +1 -0
- package/dist/func/color.d.ts +13 -0
- package/dist/func/color.d.ts.map +1 -0
- package/dist/func/color.js +23 -0
- package/dist/func/color.js.map +1 -0
- package/dist/func/common.d.ts +62 -0
- package/dist/func/common.d.ts.map +1 -0
- package/dist/func/common.js +116 -0
- package/dist/func/common.js.map +1 -0
- package/dist/func/index.d.ts +4 -0
- package/dist/func/index.d.ts.map +1 -0
- package/dist/func/index.js +4 -0
- package/dist/func/index.js.map +1 -0
- package/dist/func/merge.d.ts +2 -0
- package/dist/func/merge.d.ts.map +1 -0
- package/dist/func/merge.js +2 -0
- package/dist/func/merge.js.map +1 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +4 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useButtonPermission.d.ts +9 -0
- package/dist/hooks/useButtonPermission.d.ts.map +1 -0
- package/dist/hooks/useButtonPermission.js +38 -0
- package/dist/hooks/useButtonPermission.js.map +1 -0
- package/dist/hooks/useGuider.d.ts +2 -0
- package/dist/hooks/useGuider.d.ts.map +1 -0
- package/dist/hooks/useGuider.js +5 -0
- package/dist/hooks/useGuider.js.map +1 -0
- package/dist/hooks/useInitGlobalStyle.d.ts +2 -0
- package/dist/hooks/useInitGlobalStyle.d.ts.map +1 -0
- package/dist/hooks/useInitGlobalStyle.js +80 -0
- package/dist/hooks/useInitGlobalStyle.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/request/index.d.ts +42 -0
- package/dist/request/index.d.ts.map +1 -0
- package/dist/request/index.js +160 -0
- package/dist/request/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +42 -0
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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":"AAYA,MAAM,cAAc;IAIlB,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,GAAG,cAAc,KAA4B,EAAE;QACnF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,WAAW,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAA;IAC7F,CAAC;IAED;;OAEG;IACH,KAAK;QACH,MAAM,YAAY,GAAa,EAAE,CAAA;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QACD,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;gBAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA,CAAC,wBAAwB;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAI,GAAW,EAAE,eAAyB,IAAI;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,YAAY,CAAA;QACrB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAChD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;gBAChC,OAAO,YAAY,CAAA;YACrB,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,IAAI,EAAE,KAAK,CAAC,CAAA;YACjE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA,CAAC,cAAc;YAC/C,OAAO,YAAY,CAAA;QACrB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,GAAW;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAI,GAAW,EAAE,KAAQ,EAAE,GAAY;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;QACjD,MAAM,IAAI,GAAmB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QAC9C,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,IAAI,EAAE,KAAK,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,GAAW;QAC5B,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAA;IAChC,CAAC;CACF;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -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 @@
|
|
|
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"}
|