Compare commits
5 Commits
ba55cbcbd3
...
b7c10b33e7
Author | SHA1 | Date |
---|---|---|
Lykin | b7c10b33e7 | |
Lykin | 2f25b524cd | |
Lykin | 84b42e6461 | |
Lykin | f9abba37d2 | |
Lykin | 827ca1f2e7 |
|
@ -47,8 +47,8 @@ func (c *ConnectionsStorage) defaultConnectionItem() types.ConnectionConfig {
|
||||||
|
|
||||||
func (c *ConnectionsStorage) getConnections() (ret types.Connections) {
|
func (c *ConnectionsStorage) getConnections() (ret types.Connections) {
|
||||||
b, err := c.storage.Load()
|
b, err := c.storage.Load()
|
||||||
if err != nil {
|
|
||||||
ret = c.defaultConnections()
|
ret = c.defaultConnections()
|
||||||
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,8 +28,8 @@ func (p *PreferencesStorage) DefaultPreferences() types.Preferences {
|
||||||
|
|
||||||
func (p *PreferencesStorage) getPreferences() (ret types.Preferences) {
|
func (p *PreferencesStorage) getPreferences() (ret types.Preferences) {
|
||||||
b, err := p.storage.Load()
|
b, err := p.storage.Load()
|
||||||
if err != nil {
|
|
||||||
ret = p.DefaultPreferences()
|
ret = p.DefaultPreferences()
|
||||||
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ func NewPreferences() Preferences {
|
||||||
Language: "auto",
|
Language: "auto",
|
||||||
FontSize: consts.DEFAULT_FONT_SIZE,
|
FontSize: consts.DEFAULT_FONT_SIZE,
|
||||||
ScanSize: consts.DEFAULT_SCAN_SIZE,
|
ScanSize: consts.DEFAULT_SCAN_SIZE,
|
||||||
|
KeyIconStyle: 0,
|
||||||
CheckUpdate: true,
|
CheckUpdate: true,
|
||||||
},
|
},
|
||||||
Editor: PreferencesEditor{
|
Editor: PreferencesEditor{
|
||||||
|
@ -42,6 +43,7 @@ type PreferencesGeneral struct {
|
||||||
Font string `json:"font" yaml:"font,omitempty"`
|
Font string `json:"font" yaml:"font,omitempty"`
|
||||||
FontSize int `json:"fontSize" yaml:"font_size"`
|
FontSize int `json:"fontSize" yaml:"font_size"`
|
||||||
ScanSize int `json:"scanSize" yaml:"scan_size"`
|
ScanSize int `json:"scanSize" yaml:"scan_size"`
|
||||||
|
KeyIconStyle int `json:"keyIconStyle" yaml:"key_icon_style"`
|
||||||
UseSysProxy bool `json:"useSysProxy" yaml:"use_sys_proxy,omitempty"`
|
UseSysProxy bool `json:"useSysProxy" yaml:"use_sys_proxy,omitempty"`
|
||||||
UseSysProxyHttp bool `json:"useSysProxyHttp" yaml:"use_sys_proxy_http,omitempty"`
|
UseSysProxyHttp bool `json:"useSysProxyHttp" yaml:"use_sys_proxy_http,omitempty"`
|
||||||
CheckUpdate bool `json:"checkUpdate" yaml:"check_update"`
|
CheckUpdate bool `json:"checkUpdate" yaml:"check_update"`
|
||||||
|
@ -51,5 +53,5 @@ type PreferencesGeneral struct {
|
||||||
type PreferencesEditor struct {
|
type PreferencesEditor struct {
|
||||||
Font string `json:"font" yaml:"font,omitempty"`
|
Font string `json:"font" yaml:"font,omitempty"`
|
||||||
FontSize int `json:"fontSize" yaml:"font_size"`
|
FontSize int `json:"fontSize" yaml:"font_size"`
|
||||||
ShowLineNum bool `json:"showLineNum" yaml:"show_line_num,omitempty"`
|
ShowLineNum bool `json:"showLineNum" yaml:"show_line_num"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,13 +10,12 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bytes": "^3.1.2",
|
"bytes": "^3.1.2",
|
||||||
"dayjs": "^1.11.10",
|
"dayjs": "^1.11.10",
|
||||||
"highlight.js": "^11.9.0",
|
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"monaco-editor": "^0.44.0",
|
"monaco-editor": "^0.44.0",
|
||||||
"pinia": "^2.1.7",
|
"pinia": "^2.1.7",
|
||||||
"sass": "^1.69.5",
|
"sass": "^1.69.5",
|
||||||
"vue": "^3.3.9",
|
"vue": "^3.3.9",
|
||||||
"vue-i18n": "^9.7.1",
|
"vue-i18n": "^9.8.0",
|
||||||
"xterm": "^5.3.0",
|
"xterm": "^5.3.0",
|
||||||
"xterm-addon-fit": "^0.8.0"
|
"xterm-addon-fit": "^0.8.0"
|
||||||
},
|
},
|
||||||
|
@ -466,23 +465,23 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@intlify/core-base": {
|
"node_modules/@intlify/core-base": {
|
||||||
"version": "9.7.1",
|
"version": "9.8.0",
|
||||||
"resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.7.1.tgz",
|
"resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.8.0.tgz",
|
||||||
"integrity": "sha512-jPJTeECEhqQ7g//8g3Fb79j5SzSSRqlFCWD6pcX94uMLXU+L1m07gVZnnvzoJBnaMyJHiiwxOqZVfvu6rQfLvw==",
|
"integrity": "sha512-UxaSZVZ1DwqC/CltUZrWZNaWNhfmKtfyV4BJSt/Zt4Or/fZs1iFj0B+OekYk1+MRHfIOe3+x00uXGQI4PbO/9g==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@intlify/message-compiler": "9.7.1",
|
"@intlify/message-compiler": "9.8.0",
|
||||||
"@intlify/shared": "9.7.1"
|
"@intlify/shared": "9.8.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16"
|
"node": ">= 16"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@intlify/message-compiler": {
|
"node_modules/@intlify/message-compiler": {
|
||||||
"version": "9.7.1",
|
"version": "9.8.0",
|
||||||
"resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.7.1.tgz",
|
"resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.8.0.tgz",
|
||||||
"integrity": "sha512-HfIr2Hn/K7b0Zv4kGqkxAxwtipyxAwhI9a3krN5cuhH/G9gkaik7of1PdzjR3Mix43t2onBiKYQyaU7mo7e0aA==",
|
"integrity": "sha512-McnYWhcoYmDJvssVu6QGR0shqlkJuL1HHdi5lK7fNqvQqRYaQ4lSLjYmZxwc8tRNMdIe9/KUKfyPxU9M6yCtNQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@intlify/shared": "9.7.1",
|
"@intlify/shared": "9.8.0",
|
||||||
"source-map-js": "^1.0.2"
|
"source-map-js": "^1.0.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -490,9 +489,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@intlify/shared": {
|
"node_modules/@intlify/shared": {
|
||||||
"version": "9.7.1",
|
"version": "9.8.0",
|
||||||
"resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.7.1.tgz",
|
"resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.8.0.tgz",
|
||||||
"integrity": "sha512-CBKnHzlUYGrk5QII9q4nElAQKO5cX1rRx8VmSWXltyOZjbkGHXYQTHULn6KwRi+CypuBCfmPkyPBHMzosypIeg==",
|
"integrity": "sha512-TmgR0RCLjzrSo+W3wT0ALf9851iFMlVI9EYNGeWvZFUQTAJx0bvfsMlPdgVtV1tDNRiAfhkFsMKu6jtUY1ZLKQ==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16"
|
"node": ">= 16"
|
||||||
}
|
}
|
||||||
|
@ -1219,6 +1218,7 @@
|
||||||
"version": "11.9.0",
|
"version": "11.9.0",
|
||||||
"resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.9.0.tgz",
|
"resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.9.0.tgz",
|
||||||
"integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==",
|
"integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==",
|
||||||
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12.0.0"
|
"node": ">=12.0.0"
|
||||||
}
|
}
|
||||||
|
@ -2100,12 +2100,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vue-i18n": {
|
"node_modules/vue-i18n": {
|
||||||
"version": "9.7.1",
|
"version": "9.8.0",
|
||||||
"resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.7.1.tgz",
|
"resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.8.0.tgz",
|
||||||
"integrity": "sha512-A6DzWqJQMdzBj+392+g3zIgGV0FnFC7o/V+txs5yIALANEZzY6ZV8hM2wvZR3nTbQI7dntAmzBHMeoEteJO0kQ==",
|
"integrity": "sha512-Izho+6PYjejsTq2mzjcRdBZ5VLRQoSuuexvR8029h5CpN03FYqiqBrShMyf2I1DKkN6kw/xmujcbvC+4QybpsQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@intlify/core-base": "9.7.1",
|
"@intlify/core-base": "9.8.0",
|
||||||
"@intlify/shared": "9.7.1",
|
"@intlify/shared": "9.8.0",
|
||||||
"@vue/devtools-api": "^6.5.0"
|
"@vue/devtools-api": "^6.5.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -2412,27 +2412,27 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@intlify/core-base": {
|
"@intlify/core-base": {
|
||||||
"version": "9.7.1",
|
"version": "9.8.0",
|
||||||
"resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.7.1.tgz",
|
"resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.8.0.tgz",
|
||||||
"integrity": "sha512-jPJTeECEhqQ7g//8g3Fb79j5SzSSRqlFCWD6pcX94uMLXU+L1m07gVZnnvzoJBnaMyJHiiwxOqZVfvu6rQfLvw==",
|
"integrity": "sha512-UxaSZVZ1DwqC/CltUZrWZNaWNhfmKtfyV4BJSt/Zt4Or/fZs1iFj0B+OekYk1+MRHfIOe3+x00uXGQI4PbO/9g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@intlify/message-compiler": "9.7.1",
|
"@intlify/message-compiler": "9.8.0",
|
||||||
"@intlify/shared": "9.7.1"
|
"@intlify/shared": "9.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@intlify/message-compiler": {
|
"@intlify/message-compiler": {
|
||||||
"version": "9.7.1",
|
"version": "9.8.0",
|
||||||
"resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.7.1.tgz",
|
"resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.8.0.tgz",
|
||||||
"integrity": "sha512-HfIr2Hn/K7b0Zv4kGqkxAxwtipyxAwhI9a3krN5cuhH/G9gkaik7of1PdzjR3Mix43t2onBiKYQyaU7mo7e0aA==",
|
"integrity": "sha512-McnYWhcoYmDJvssVu6QGR0shqlkJuL1HHdi5lK7fNqvQqRYaQ4lSLjYmZxwc8tRNMdIe9/KUKfyPxU9M6yCtNQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@intlify/shared": "9.7.1",
|
"@intlify/shared": "9.8.0",
|
||||||
"source-map-js": "^1.0.2"
|
"source-map-js": "^1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@intlify/shared": {
|
"@intlify/shared": {
|
||||||
"version": "9.7.1",
|
"version": "9.8.0",
|
||||||
"resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.7.1.tgz",
|
"resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.8.0.tgz",
|
||||||
"integrity": "sha512-CBKnHzlUYGrk5QII9q4nElAQKO5cX1rRx8VmSWXltyOZjbkGHXYQTHULn6KwRi+CypuBCfmPkyPBHMzosypIeg=="
|
"integrity": "sha512-TmgR0RCLjzrSo+W3wT0ALf9851iFMlVI9EYNGeWvZFUQTAJx0bvfsMlPdgVtV1tDNRiAfhkFsMKu6jtUY1ZLKQ=="
|
||||||
},
|
},
|
||||||
"@jridgewell/sourcemap-codec": {
|
"@jridgewell/sourcemap-codec": {
|
||||||
"version": "1.4.15",
|
"version": "1.4.15",
|
||||||
|
@ -2979,7 +2979,8 @@
|
||||||
"highlight.js": {
|
"highlight.js": {
|
||||||
"version": "11.9.0",
|
"version": "11.9.0",
|
||||||
"resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.9.0.tgz",
|
"resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.9.0.tgz",
|
||||||
"integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw=="
|
"integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"human-signals": {
|
"human-signals": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
|
@ -3598,12 +3599,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"vue-i18n": {
|
"vue-i18n": {
|
||||||
"version": "9.7.1",
|
"version": "9.8.0",
|
||||||
"resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.7.1.tgz",
|
"resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.8.0.tgz",
|
||||||
"integrity": "sha512-A6DzWqJQMdzBj+392+g3zIgGV0FnFC7o/V+txs5yIALANEZzY6ZV8hM2wvZR3nTbQI7dntAmzBHMeoEteJO0kQ==",
|
"integrity": "sha512-Izho+6PYjejsTq2mzjcRdBZ5VLRQoSuuexvR8029h5CpN03FYqiqBrShMyf2I1DKkN6kw/xmujcbvC+4QybpsQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@intlify/core-base": "9.7.1",
|
"@intlify/core-base": "9.8.0",
|
||||||
"@intlify/shared": "9.7.1",
|
"@intlify/shared": "9.8.0",
|
||||||
"@vue/devtools-api": "^6.5.0"
|
"@vue/devtools-api": "^6.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -11,13 +11,12 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bytes": "^3.1.2",
|
"bytes": "^3.1.2",
|
||||||
"dayjs": "^1.11.10",
|
"dayjs": "^1.11.10",
|
||||||
"highlight.js": "^11.9.0",
|
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"monaco-editor": "^0.44.0",
|
"monaco-editor": "^0.44.0",
|
||||||
"pinia": "^2.1.7",
|
"pinia": "^2.1.7",
|
||||||
"sass": "^1.69.5",
|
"sass": "^1.69.5",
|
||||||
"vue": "^3.3.9",
|
"vue": "^3.3.9",
|
||||||
"vue-i18n": "^9.7.1",
|
"vue-i18n": "^9.8.0",
|
||||||
"xterm": "^5.3.0",
|
"xterm": "^5.3.0",
|
||||||
"xterm-addon-fit": "^0.8.0"
|
"xterm-addon-fit": "^0.8.0"
|
||||||
},
|
},
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3dc6322e376d91c1cb4a6bd5312d176f
|
d5ec7e0103cfa8c99bc40c20ffdcb4fb
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed, h } from 'vue'
|
import { computed, h } from 'vue'
|
||||||
import { useThemeVars } from 'naive-ui'
|
import { NSpace, useThemeVars } from 'naive-ui'
|
||||||
import { types, typesBgColor, typesColor } from '@/consts/support_redis_type.js'
|
import { types, typesBgColor, typesColor, typesShortName } from '@/consts/support_redis_type.js'
|
||||||
import { get, map, toUpper } from 'lodash'
|
import { get, map, toUpper } from 'lodash'
|
||||||
import RedisTypeTag from '@/components/common/RedisTypeTag.vue'
|
import RedisTypeTag from '@/components/common/RedisTypeTag.vue'
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ const themeVars = useThemeVars()
|
||||||
const renderIcon = (option) => {
|
const renderIcon = (option) => {
|
||||||
return h(RedisTypeTag, {
|
return h(RedisTypeTag, {
|
||||||
type: option.key,
|
type: option.key,
|
||||||
|
defaultLabel: 'A',
|
||||||
short: true,
|
short: true,
|
||||||
size: 'small',
|
size: 'small',
|
||||||
inverse: option.key === props.value,
|
inverse: option.key === props.value,
|
||||||
|
@ -33,7 +34,8 @@ const renderIcon = (option) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const renderLabel = (option) => {
|
const renderLabel = (option) => {
|
||||||
return h(
|
const children = [
|
||||||
|
h(
|
||||||
'div',
|
'div',
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
|
@ -41,7 +43,18 @@ const renderLabel = (option) => {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
option.label,
|
option.label,
|
||||||
)
|
),
|
||||||
|
h(
|
||||||
|
'div',
|
||||||
|
{ style: { width: '16px' } },
|
||||||
|
h(RedisTypeTag, {
|
||||||
|
type: toUpper(option.key),
|
||||||
|
point: true,
|
||||||
|
style: { display: option.key === props.value ? 'block' : 'none' },
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
return h(NSpace, { align: 'center', wrapItem: false }, () => children)
|
||||||
}
|
}
|
||||||
|
|
||||||
const fontColor = computed(() => {
|
const fontColor = computed(() => {
|
||||||
|
@ -53,7 +66,7 @@ const backgroundColor = computed(() => {
|
||||||
})
|
})
|
||||||
|
|
||||||
const displayValue = computed(() => {
|
const displayValue = computed(() => {
|
||||||
return get(types, toUpper(props.value), 'ALL')
|
return get(typesShortName, toUpper(props.value), 'A')
|
||||||
})
|
})
|
||||||
|
|
||||||
const handleSelect = (select) => {
|
const handleSelect = (select) => {
|
||||||
|
|
|
@ -2,16 +2,22 @@
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { typesBgColor, typesColor, typesShortName } from '@/consts/support_redis_type.js'
|
import { typesBgColor, typesColor, typesShortName } from '@/consts/support_redis_type.js'
|
||||||
import Binary from '@/components/icons/Binary.vue'
|
import Binary from '@/components/icons/Binary.vue'
|
||||||
import { toUpper } from 'lodash'
|
import { get, toUpper } from 'lodash'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
type: {
|
type: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'STRING',
|
default: 'STRING',
|
||||||
},
|
},
|
||||||
|
defaultLabel: String,
|
||||||
binaryKey: Boolean,
|
binaryKey: Boolean,
|
||||||
size: String,
|
size: String,
|
||||||
short: Boolean,
|
short: Boolean,
|
||||||
|
point: Boolean,
|
||||||
|
pointSize: {
|
||||||
|
type: Number,
|
||||||
|
default: 14,
|
||||||
|
},
|
||||||
round: Boolean,
|
round: Boolean,
|
||||||
inverse: Boolean,
|
inverse: Boolean,
|
||||||
})
|
})
|
||||||
|
@ -34,14 +40,23 @@ const backgroundColor = computed(() => {
|
||||||
|
|
||||||
const label = computed(() => {
|
const label = computed(() => {
|
||||||
if (props.short) {
|
if (props.short) {
|
||||||
return typesShortName[toUpper(props.type)] || 'N'
|
return get(typesShortName, toUpper(props.type), props.defaultLabel || 'N')
|
||||||
}
|
}
|
||||||
return toUpper(props.type)
|
return toUpper(props.type)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
<div
|
||||||
|
v-if="props.point"
|
||||||
|
:style="{
|
||||||
|
backgroundColor: fontColor,
|
||||||
|
width: Math.max(props.pointSize, 5) + 'px',
|
||||||
|
height: Math.max(props.pointSize, 5) + 'px',
|
||||||
|
}"
|
||||||
|
class="redis-type-tag-round redis-type-tag-point" />
|
||||||
<n-tag
|
<n-tag
|
||||||
|
v-else
|
||||||
:class="{
|
:class="{
|
||||||
'redis-type-tag-normal': !props.short && props.size !== 'small',
|
'redis-type-tag-normal': !props.short && props.size !== 'small',
|
||||||
'redis-type-tag-small': !props.short && props.size === 'small',
|
'redis-type-tag-small': !props.short && props.size === 'small',
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed, defineEmits, defineProps, nextTick, reactive, ref, watch } from 'vue'
|
import { computed, defineEmits, defineProps, nextTick, reactive, ref, watchEffect } from 'vue'
|
||||||
import { useThemeVars } from 'naive-ui'
|
import { useThemeVars } from 'naive-ui'
|
||||||
import Save from '@/components/icons/Save.vue'
|
import Save from '@/components/icons/Save.vue'
|
||||||
import { decodeTypes, formatTypes } from '@/consts/value_view_type.js'
|
import { decodeTypes, formatTypes } from '@/consts/value_view_type.js'
|
||||||
|
@ -13,8 +13,12 @@ import Pin from '@/components/icons/Pin.vue'
|
||||||
import OffScreen from '@/components/icons/OffScreen.vue'
|
import OffScreen from '@/components/icons/OffScreen.vue'
|
||||||
import ContentEditor from '@/components/content_value/ContentEditor.vue'
|
import ContentEditor from '@/components/content_value/ContentEditor.vue'
|
||||||
import usePreferencesStore from 'stores/preferences.js'
|
import usePreferencesStore from 'stores/preferences.js'
|
||||||
|
import { toString } from 'lodash'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
},
|
||||||
field: {
|
field: {
|
||||||
type: [String, Number],
|
type: [String, Number],
|
||||||
},
|
},
|
||||||
|
@ -54,15 +58,17 @@ const emit = defineEmits([
|
||||||
'close',
|
'close',
|
||||||
])
|
])
|
||||||
|
|
||||||
watch(
|
watchEffect(
|
||||||
() => props.value,
|
() => {
|
||||||
(val) => {
|
if (props.show && props.value != null) {
|
||||||
if (val != null) {
|
|
||||||
onFormatChanged()
|
onFormatChanged()
|
||||||
} else {
|
} else {
|
||||||
viewAs.value = ''
|
viewAs.value = ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
flush: 'post',
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
|
@ -84,7 +90,7 @@ const displayValue = computed(() => {
|
||||||
})
|
})
|
||||||
const editingContent = ref('')
|
const editingContent = ref('')
|
||||||
const enableSave = computed(() => {
|
const enableSave = computed(() => {
|
||||||
return editingContent.value !== viewAs.value
|
return toString(props.field) !== viewAs.field || editingContent.value !== viewAs.value
|
||||||
})
|
})
|
||||||
|
|
||||||
const viewLanguage = computed(() => {
|
const viewLanguage = computed(() => {
|
||||||
|
@ -150,7 +156,7 @@ const onSave = () => {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="entry-editor flex-box-v">
|
<div v-show="show" class="entry-editor flex-box-v">
|
||||||
<n-card :title="$t('interface.edit_row')" autofocus size="small" style="height: 100%">
|
<n-card :title="$t('interface.edit_row')" autofocus size="small" style="height: 100%">
|
||||||
<div class="editor-content flex-box-v" style="height: 100%">
|
<div class="editor-content flex-box-v" style="height: 100%">
|
||||||
<!-- field -->
|
<!-- field -->
|
||||||
|
|
|
@ -18,6 +18,10 @@ const props = defineProps({
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
useGlob: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const emit = defineEmits(['filterChanged', 'matchChanged'])
|
const emit = defineEmits(['filterChanged', 'matchChanged'])
|
||||||
|
@ -82,7 +86,6 @@ defineExpose({
|
||||||
<template>
|
<template>
|
||||||
<n-input-group>
|
<n-input-group>
|
||||||
<slot name="prepend" />
|
<slot name="prepend" />
|
||||||
|
|
||||||
<n-input
|
<n-input
|
||||||
v-model:value="inputData.filter"
|
v-model:value="inputData.filter"
|
||||||
:placeholder="$t('interface.filter')"
|
:placeholder="$t('interface.filter')"
|
||||||
|
@ -99,10 +102,15 @@ defineExpose({
|
||||||
{{ inputData.match }}
|
{{ inputData.match }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
</template>
|
</template>
|
||||||
{{ $t('interface.full_search_result', { pattern: inputData.match }) }}
|
{{
|
||||||
|
$t('interface.full_search_result', {
|
||||||
|
pattern: props.useGlob ? inputData.match : '*' + inputData.match + '*',
|
||||||
|
})
|
||||||
|
}}
|
||||||
</n-tooltip>
|
</n-tooltip>
|
||||||
</template>
|
</template>
|
||||||
<template #suffix>
|
<template #suffix>
|
||||||
|
<template v-if="props.useGlob">
|
||||||
<n-tooltip trigger="hover">
|
<n-tooltip trigger="hover">
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
<n-icon :component="Help" />
|
<n-icon :component="Help" />
|
||||||
|
@ -112,6 +120,7 @@ defineExpose({
|
||||||
</div>
|
</div>
|
||||||
</n-tooltip>
|
</n-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
</template>
|
||||||
</n-input>
|
</n-input>
|
||||||
|
|
||||||
<icon-button
|
<icon-button
|
||||||
|
|
|
@ -402,6 +402,7 @@ defineExpose({
|
||||||
:field="currentEditRow.key"
|
:field="currentEditRow.key"
|
||||||
:field-label="$t('common.field')"
|
:field-label="$t('common.field')"
|
||||||
:format="currentEditRow.format"
|
:format="currentEditRow.format"
|
||||||
|
:show="inEdit"
|
||||||
:value="currentEditRow.value"
|
:value="currentEditRow.value"
|
||||||
:value-label="$t('common.value')"
|
:value-label="$t('common.value')"
|
||||||
class="flex-item-expand"
|
class="flex-item-expand"
|
||||||
|
|
|
@ -379,6 +379,7 @@ defineExpose({
|
||||||
:field-label="$t('common.index')"
|
:field-label="$t('common.index')"
|
||||||
:field-readonly="true"
|
:field-readonly="true"
|
||||||
:format="currentEditRow.format"
|
:format="currentEditRow.format"
|
||||||
|
:show="inEdit"
|
||||||
:value="currentEditRow.value"
|
:value="currentEditRow.value"
|
||||||
:value-label="$t('common.value')"
|
:value-label="$t('common.value')"
|
||||||
class="flex-item-expand"
|
class="flex-item-expand"
|
||||||
|
|
|
@ -376,6 +376,7 @@ defineExpose({
|
||||||
:field-label="$t('common.index')"
|
:field-label="$t('common.index')"
|
||||||
:field-readonly="true"
|
:field-readonly="true"
|
||||||
:format="currentEditRow.format"
|
:format="currentEditRow.format"
|
||||||
|
:show="inEdit"
|
||||||
:value="currentEditRow.value"
|
:value="currentEditRow.value"
|
||||||
:value-label="$t('common.value')"
|
:value-label="$t('common.value')"
|
||||||
class="flex-item-expand"
|
class="flex-item-expand"
|
||||||
|
|
|
@ -411,6 +411,7 @@ defineExpose({
|
||||||
:field="currentEditRow.score"
|
:field="currentEditRow.score"
|
||||||
:field-label="$t('common.score')"
|
:field-label="$t('common.score')"
|
||||||
:format="currentEditRow.format"
|
:format="currentEditRow.format"
|
||||||
|
:show="inEdit"
|
||||||
:value="currentEditRow.value"
|
:value="currentEditRow.value"
|
||||||
:value-label="$t('common.value')"
|
:value-label="$t('common.value')"
|
||||||
class="flex-item-expand"
|
class="flex-item-expand"
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, watch } from 'vue'
|
import { computed, ref, watchEffect } from 'vue'
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
import useDialog from 'stores/dialog'
|
import useDialog from 'stores/dialog'
|
||||||
import usePreferencesStore from 'stores/preferences.js'
|
import usePreferencesStore from 'stores/preferences.js'
|
||||||
|
import { map, sortBy } from 'lodash'
|
||||||
|
import { typesIconStyle } from '@/consts/support_redis_type.js'
|
||||||
|
|
||||||
const prefStore = usePreferencesStore()
|
const prefStore = usePreferencesStore()
|
||||||
|
|
||||||
|
@ -26,14 +28,19 @@ const initPreferences = async () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watchEffect(() => {
|
||||||
() => dialogStore.preferencesDialogVisible,
|
if (dialogStore.preferencesDialogVisible) {
|
||||||
(visible) => {
|
|
||||||
if (visible) {
|
|
||||||
initPreferences()
|
initPreferences()
|
||||||
}
|
}
|
||||||
},
|
})
|
||||||
)
|
|
||||||
|
const keyOptions = computed(() => {
|
||||||
|
const opts = map(typesIconStyle, (v) => ({
|
||||||
|
value: v,
|
||||||
|
label: i18n.t('preferences.general.key_icon_style' + v),
|
||||||
|
}))
|
||||||
|
return sortBy(opts, (o) => o.value)
|
||||||
|
})
|
||||||
|
|
||||||
const onSavePreferences = async () => {
|
const onSavePreferences = async () => {
|
||||||
const success = await prefStore.savePreferences()
|
const success = await prefStore.savePreferences()
|
||||||
|
@ -96,6 +103,9 @@ const onClose = () => {
|
||||||
<n-form-item-gi :label="$t('preferences.general.scan_size')" :span="12">
|
<n-form-item-gi :label="$t('preferences.general.scan_size')" :span="12">
|
||||||
<n-input-number v-model:value="prefStore.general.scanSize" :min="1" />
|
<n-input-number v-model:value="prefStore.general.scanSize" :min="1" />
|
||||||
</n-form-item-gi>
|
</n-form-item-gi>
|
||||||
|
<n-form-item-gi :label="$t('preferences.general.key_icon_style')" :span="12">
|
||||||
|
<n-select v-model:value="prefStore.general.keyIconStyle" :options="keyOptions" />
|
||||||
|
</n-form-item-gi>
|
||||||
<n-form-item-gi :label="$t('preferences.general.proxy')" :span="24">
|
<n-form-item-gi :label="$t('preferences.general.proxy')" :span="24">
|
||||||
<n-space>
|
<n-space>
|
||||||
<n-checkbox v-model:checked="prefStore.general.useSysProxy">
|
<n-checkbox v-model:checked="prefStore.general.useSysProxy">
|
||||||
|
|
|
@ -217,6 +217,7 @@ onMounted(() => onReload())
|
||||||
:debounce-wait="1000"
|
:debounce-wait="1000"
|
||||||
:full-search-icon="Search"
|
:full-search-icon="Search"
|
||||||
small
|
small
|
||||||
|
use-glob
|
||||||
@filter-changed="onFilterInput"
|
@filter-changed="onFilterInput"
|
||||||
@match-changed="onMatchInput">
|
@match-changed="onMatchInput">
|
||||||
<template #prepend>
|
<template #prepend>
|
||||||
|
|
|
@ -24,6 +24,8 @@ import LoadAll from '@/components/icons/LoadAll.vue'
|
||||||
import useBrowserStore from 'stores/browser.js'
|
import useBrowserStore from 'stores/browser.js'
|
||||||
import { useRender } from '@/utils/render.js'
|
import { useRender } from '@/utils/render.js'
|
||||||
import RedisTypeTag from '@/components/common/RedisTypeTag.vue'
|
import RedisTypeTag from '@/components/common/RedisTypeTag.vue'
|
||||||
|
import usePreferencesStore from 'stores/preferences.js'
|
||||||
|
import { typesIconStyle } from '@/consts/support_redis_type.js'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
server: String,
|
server: String,
|
||||||
|
@ -48,6 +50,7 @@ const checkedKeys = reactive({
|
||||||
})
|
})
|
||||||
const connectionStore = useConnectionStore()
|
const connectionStore = useConnectionStore()
|
||||||
const browserStore = useBrowserStore()
|
const browserStore = useBrowserStore()
|
||||||
|
const prefStore = usePreferencesStore()
|
||||||
const tabStore = useTabStore()
|
const tabStore = useTabStore()
|
||||||
const dialogStore = useDialogStore()
|
const dialogStore = useDialogStore()
|
||||||
|
|
||||||
|
@ -356,6 +359,7 @@ const renderPrefix = ({ option }) => {
|
||||||
default: () => h(Database, { inverse: option.opened === true }),
|
default: () => h(Database, { inverse: option.opened === true }),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
case ConnectionType.RedisKey:
|
case ConnectionType.RedisKey:
|
||||||
return h(
|
return h(
|
||||||
NIcon,
|
NIcon,
|
||||||
|
@ -364,7 +368,17 @@ const renderPrefix = ({ option }) => {
|
||||||
default: () => h(Layer),
|
default: () => h(Layer),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
case ConnectionType.RedisValue:
|
case ConnectionType.RedisValue:
|
||||||
|
if (prefStore.keyIconType === typesIconStyle.ICON) {
|
||||||
|
return h(
|
||||||
|
NIcon,
|
||||||
|
{ size: 20 },
|
||||||
|
{
|
||||||
|
default: () => h(!!option.redisKeyCode ? Binary : Key),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
if (option.redisType == null || option.redisType === 'loading') {
|
if (option.redisType == null || option.redisType === 'loading') {
|
||||||
browserStore.loadKeyType({
|
browserStore.loadKeyType({
|
||||||
server: props.server,
|
server: props.server,
|
||||||
|
@ -381,6 +395,23 @@ const renderPrefix = ({ option }) => {
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
switch (prefStore.keyIconType) {
|
||||||
|
case typesIconStyle.FULL:
|
||||||
|
return h(RedisTypeTag, {
|
||||||
|
type: toUpper(option.redisType),
|
||||||
|
short: false,
|
||||||
|
size: 'small',
|
||||||
|
inverse: includes(selectedKeys.value, option.key),
|
||||||
|
})
|
||||||
|
|
||||||
|
case typesIconStyle.POINT:
|
||||||
|
return h(RedisTypeTag, {
|
||||||
|
type: toUpper(option.redisType),
|
||||||
|
point: true,
|
||||||
|
})
|
||||||
|
|
||||||
|
case typesIconStyle.SHORT:
|
||||||
|
default:
|
||||||
return h(RedisTypeTag, {
|
return h(RedisTypeTag, {
|
||||||
type: toUpper(option.redisType),
|
type: toUpper(option.redisType),
|
||||||
short: true,
|
short: true,
|
||||||
|
@ -388,6 +419,7 @@ const renderPrefix = ({ option }) => {
|
||||||
inverse: includes(selectedKeys.value, option.key),
|
inverse: includes(selectedKeys.value, option.key),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// render tree item label
|
// render tree item label
|
||||||
|
|
|
@ -15,7 +15,7 @@ export const typesShortName = {
|
||||||
STRING: 'S',
|
STRING: 'S',
|
||||||
HASH: 'H',
|
HASH: 'H',
|
||||||
LIST: 'L',
|
LIST: 'L',
|
||||||
SET: 'S',
|
SET: 'E',
|
||||||
ZSET: 'Z',
|
ZSET: 'Z',
|
||||||
STREAM: 'X',
|
STREAM: 'X',
|
||||||
}
|
}
|
||||||
|
@ -51,3 +51,14 @@ export const typesBgColor = {
|
||||||
export const validType = (t) => {
|
export const validType = (t) => {
|
||||||
return types.hasOwnProperty(t)
|
return types.hasOwnProperty(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* icon type in browser tree
|
||||||
|
* @enum {string}
|
||||||
|
*/
|
||||||
|
export const typesIconStyle = {
|
||||||
|
SHORT: 0,
|
||||||
|
FULL: 1,
|
||||||
|
POINT: 2,
|
||||||
|
ICON: 3,
|
||||||
|
}
|
||||||
|
|
|
@ -35,6 +35,11 @@
|
||||||
"font": "Font",
|
"font": "Font",
|
||||||
"font_size": "Font Size",
|
"font_size": "Font Size",
|
||||||
"scan_size": "Default Size for SCAN Command",
|
"scan_size": "Default Size for SCAN Command",
|
||||||
|
"key_icon_style": "Key Icon Style",
|
||||||
|
"key_icon_style0": "Short",
|
||||||
|
"key_icon_style1": "Full",
|
||||||
|
"key_icon_style2": "Point",
|
||||||
|
"key_icon_style3": "Key Icon",
|
||||||
"proxy": "Proxy",
|
"proxy": "Proxy",
|
||||||
"use_system_proxy": "Use system proxy",
|
"use_system_proxy": "Use system proxy",
|
||||||
"use_system_proxy_http": "Use system proxy only for HTTP(S) request",
|
"use_system_proxy_http": "Use system proxy only for HTTP(S) request",
|
||||||
|
@ -86,7 +91,7 @@
|
||||||
"unpin_edit": "Cancel Pin",
|
"unpin_edit": "Cancel Pin",
|
||||||
"search": "Search",
|
"search": "Search",
|
||||||
"full_search": "Full Search",
|
"full_search": "Full Search",
|
||||||
"full_search_result": "The content has been matched as '*{pattern}*'",
|
"full_search_result": "The content has been matched as '{pattern}'",
|
||||||
"filter_field": "Filter Field",
|
"filter_field": "Filter Field",
|
||||||
"filter_value": "Filter Value",
|
"filter_value": "Filter Value",
|
||||||
"length": "Length",
|
"length": "Length",
|
||||||
|
|
|
@ -35,6 +35,11 @@
|
||||||
"font": "字体",
|
"font": "字体",
|
||||||
"font_size": "字体尺寸",
|
"font_size": "字体尺寸",
|
||||||
"scan_size": "SCAN命令默认数量",
|
"scan_size": "SCAN命令默认数量",
|
||||||
|
"key_icon_style": "键图标样式",
|
||||||
|
"key_icon_style0": "紧凑类型",
|
||||||
|
"key_icon_style1": "全称类型",
|
||||||
|
"key_icon_style2": "圆点类型",
|
||||||
|
"key_icon_style3": "键图标",
|
||||||
"proxy": "代理",
|
"proxy": "代理",
|
||||||
"use_system_proxy": "使用系统代理",
|
"use_system_proxy": "使用系统代理",
|
||||||
"use_system_proxy_http": "仅在HTTP请求时使用系统代理",
|
"use_system_proxy_http": "仅在HTTP请求时使用系统代理",
|
||||||
|
@ -86,7 +91,7 @@
|
||||||
"unpin_edit": "取消固定",
|
"unpin_edit": "取消固定",
|
||||||
"search": "搜索",
|
"search": "搜索",
|
||||||
"full_search": "全文匹配",
|
"full_search": "全文匹配",
|
||||||
"full_search_result": "内容已匹配为 *{pattern}*",
|
"full_search_result": "内容已匹配为 {pattern}",
|
||||||
"filter_field": "筛选字段",
|
"filter_field": "筛选字段",
|
||||||
"filter_value": "筛选值",
|
"filter_value": "筛选值",
|
||||||
"length": "长度",
|
"length": "长度",
|
||||||
|
|
|
@ -13,6 +13,7 @@ import { i18nGlobal } from '@/utils/i18n.js'
|
||||||
import { enUS, NButton, NSpace, useOsTheme, zhCN } from 'naive-ui'
|
import { enUS, NButton, NSpace, useOsTheme, zhCN } from 'naive-ui'
|
||||||
import { h, nextTick } from 'vue'
|
import { h, nextTick } from 'vue'
|
||||||
import { compareVersion } from '@/utils/version.js'
|
import { compareVersion } from '@/utils/version.js'
|
||||||
|
import { typesIconStyle } from '@/consts/support_redis_type.js'
|
||||||
|
|
||||||
const osTheme = useOsTheme()
|
const osTheme = useOsTheme()
|
||||||
const usePreferencesStore = defineStore('preferences', {
|
const usePreferencesStore = defineStore('preferences', {
|
||||||
|
@ -44,6 +45,7 @@ const usePreferencesStore = defineStore('preferences', {
|
||||||
font: '',
|
font: '',
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
scanSize: 3000,
|
scanSize: 3000,
|
||||||
|
keyIconStyle: 0,
|
||||||
useSysProxy: false,
|
useSysProxy: false,
|
||||||
useSysProxyHttp: false,
|
useSysProxyHttp: false,
|
||||||
checkUpdate: true,
|
checkUpdate: true,
|
||||||
|
@ -52,7 +54,7 @@ const usePreferencesStore = defineStore('preferences', {
|
||||||
editor: {
|
editor: {
|
||||||
font: '',
|
font: '',
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
showLineNum: false,
|
showLineNum: true,
|
||||||
},
|
},
|
||||||
lastPref: {},
|
lastPref: {},
|
||||||
fontList: [],
|
fontList: [],
|
||||||
|
@ -187,6 +189,10 @@ const usePreferencesStore = defineStore('preferences', {
|
||||||
showLineNum() {
|
showLineNum() {
|
||||||
return get(this.editor, 'showLineNum', true)
|
return get(this.editor, 'showLineNum', true)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
keyIconType() {
|
||||||
|
return get(this.general, 'keyIconStyle', typesIconStyle.SHORT)
|
||||||
|
},
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
_applyPreferences(data) {
|
_applyPreferences(data) {
|
||||||
|
|
6
go.mod
6
go.mod
|
@ -6,11 +6,11 @@ require (
|
||||||
github.com/adrg/sysfont v0.1.2
|
github.com/adrg/sysfont v0.1.2
|
||||||
github.com/andybalholm/brotli v1.0.6
|
github.com/andybalholm/brotli v1.0.6
|
||||||
github.com/google/uuid v1.4.0
|
github.com/google/uuid v1.4.0
|
||||||
github.com/klauspost/compress v1.17.3
|
github.com/klauspost/compress v1.17.4
|
||||||
github.com/redis/go-redis/v9 v9.3.0
|
github.com/redis/go-redis/v9 v9.3.0
|
||||||
github.com/vrischmann/userdir v0.0.0-20151206171402-20f291cebd68
|
github.com/vrischmann/userdir v0.0.0-20151206171402-20f291cebd68
|
||||||
github.com/wailsapp/wails/v2 v2.6.0
|
github.com/wailsapp/wails/v2 v2.6.0
|
||||||
golang.org/x/crypto v0.15.0
|
golang.org/x/crypto v0.16.0
|
||||||
gopkg.in/yaml.v3 v3.0.1
|
gopkg.in/yaml.v3 v3.0.1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ require (
|
||||||
github.com/wailsapp/mimetype v1.4.1 // indirect
|
github.com/wailsapp/mimetype v1.4.1 // indirect
|
||||||
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect
|
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect
|
||||||
golang.org/x/net v0.18.0 // indirect
|
golang.org/x/net v0.18.0 // indirect
|
||||||
golang.org/x/sys v0.14.0 // indirect
|
golang.org/x/sys v0.15.0 // indirect
|
||||||
golang.org/x/text v0.14.0 // indirect
|
golang.org/x/text v0.14.0 // indirect
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
|
||||||
)
|
)
|
||||||
|
|
16
go.sum
16
go.sum
|
@ -28,8 +28,8 @@ github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
|
||||||
github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck=
|
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck=
|
||||||
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs=
|
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs=
|
||||||
github.com/klauspost/compress v1.17.3 h1:qkRjuerhUU1EmXLYGkSH6EZL+vPSxIrYjLNAK4slzwA=
|
github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4=
|
||||||
github.com/klauspost/compress v1.17.3/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM=
|
github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
|
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
|
||||||
|
@ -96,8 +96,8 @@ github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhw
|
||||||
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
|
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
|
||||||
github.com/wailsapp/wails/v2 v2.6.0 h1:EyH0zR/EO6dDiqNy8qU5spaXDfkluiq77xrkabPYD4c=
|
github.com/wailsapp/wails/v2 v2.6.0 h1:EyH0zR/EO6dDiqNy8qU5spaXDfkluiq77xrkabPYD4c=
|
||||||
github.com/wailsapp/wails/v2 v2.6.0/go.mod h1:WBG9KKWuw0FKfoepBrr/vRlyTmHaMibWesK3yz6nNiM=
|
github.com/wailsapp/wails/v2 v2.6.0/go.mod h1:WBG9KKWuw0FKfoepBrr/vRlyTmHaMibWesK3yz6nNiM=
|
||||||
golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA=
|
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
|
||||||
golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g=
|
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
||||||
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ=
|
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ=
|
||||||
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE=
|
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE=
|
||||||
golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
|
@ -114,11 +114,11 @@ golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=
|
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
|
||||||
golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8=
|
golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
|
||||||
golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww=
|
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||||
|
|
Loading…
Reference in New Issue