♻️ defineModel

This commit is contained in:
目棃
2024-12-31 16:40:18 +08:00
parent 151f854fd3
commit f801363440
27 changed files with 1085 additions and 1151 deletions

View File

@@ -3,7 +3,7 @@
"version": "0.6.7", "version": "0.6.7",
"description": "Game Tool for GenshinImpact player", "description": "Game Tool for GenshinImpact player",
"private": true, "private": true,
"packageManager": "pnpm@9.15.0", "packageManager": "pnpm@9.15.2",
"type": "module", "type": "module",
"scripts": { "scripts": {
"build": "tauri build", "build": "tauri build",
@@ -81,12 +81,12 @@
"artplayer": "^5.2.1", "artplayer": "^5.2.1",
"clipboard": "^2.0.11", "clipboard": "^2.0.11",
"color-convert": "^2.0.1", "color-convert": "^2.0.1",
"echarts": "^5.5.1", "echarts": "^5.6.0",
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",
"js-md5": "^0.8.3", "js-md5": "^0.8.3",
"jsencrypt": "^3.3.2", "jsencrypt": "^3.3.2",
"pinia": "^2.3.0", "pinia": "^2.3.0",
"pinia-plugin-persistedstate": "^4.1.3", "pinia-plugin-persistedstate": "^4.2.0",
"sass": "^1.83.0", "sass": "^1.83.0",
"sass-loader": "^16.0.4", "sass-loader": "^16.0.4",
"uuid": "^11.0.3", "uuid": "^11.0.3",
@@ -94,7 +94,7 @@
"vue-echarts": "^7.0.3", "vue-echarts": "^7.0.3",
"vue-json-viewer": "^3.0.4", "vue-json-viewer": "^3.0.4",
"vue-router": "^4.5.0", "vue-router": "^4.5.0",
"vuetify": "^3.7.5", "vuetify": "^3.7.6",
"wcag-color": "^1.1.1", "wcag-color": "^1.1.1",
"xml-js": "^1.6.11" "xml-js": "^1.6.11"
}, },
@@ -106,22 +106,22 @@
"@types/js-md5": "^0.7.2", "@types/js-md5": "^0.7.2",
"@types/node": "^22.10.2", "@types/node": "^22.10.2",
"@types/uuid": "^10.0.0", "@types/uuid": "^10.0.0",
"@typescript-eslint/parser": "^8.18.0", "@typescript-eslint/parser": "^8.19.0",
"@vitejs/plugin-vue": "^5.2.1", "@vitejs/plugin-vue": "^5.2.1",
"concurrently": "^9.1.0", "concurrently": "^9.1.2",
"eslint": "^9.17.0", "eslint": "^9.17.0",
"eslint-plugin-import": "^2.31.0", "eslint-plugin-import": "^2.31.0",
"eslint-plugin-jsonc": "^2.18.2", "eslint-plugin-jsonc": "^2.18.2",
"eslint-plugin-prettier": "^5.2.1", "eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-vue": "^9.32.0", "eslint-plugin-vue": "^9.32.0",
"eslint-plugin-yml": "^1.16.0", "eslint-plugin-yml": "^1.16.0",
"globals": "^15.13.0", "globals": "^15.14.0",
"husky": "^9.1.7", "husky": "^9.1.7",
"jsonc-eslint-parser": "^2.4.0", "jsonc-eslint-parser": "^2.4.0",
"lint-staged": "^15.2.11", "lint-staged": "^15.3.0",
"oxlint": "^0.15.2", "oxlint": "^0.15.4",
"prettier": "3.4.2", "prettier": "3.4.2",
"stylelint": "^16.11.0", "stylelint": "^16.12.0",
"stylelint-config-idiomatic-order": "^10.0.0", "stylelint-config-idiomatic-order": "^10.0.0",
"stylelint-config-standard-vue": "^1.0.0", "stylelint-config-standard-vue": "^1.0.0",
"stylelint-declaration-block-no-ignored-properties": "^2.8.0", "stylelint-declaration-block-no-ignored-properties": "^2.8.0",
@@ -130,8 +130,8 @@
"stylelint-prettier": "^5.0.2", "stylelint-prettier": "^5.0.2",
"stylelint-scss": "^6.10.0", "stylelint-scss": "^6.10.0",
"typescript": "^5.7.2", "typescript": "^5.7.2",
"typescript-eslint": "^8.18.0", "typescript-eslint": "^8.19.0",
"vite": "^6.0.3", "vite": "^6.0.6",
"vite-plugin-vue-devtools": "^7.6.8", "vite-plugin-vue-devtools": "^7.6.8",
"vite-plugin-vuetify": "^2.0.4", "vite-plugin-vuetify": "^2.0.4",
"vue-eslint-parser": "^9.4.3", "vue-eslint-parser": "^9.4.3",

1499
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

308
src-tauri/Cargo.lock generated
View File

@@ -129,9 +129,9 @@ dependencies = [
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.94" version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04"
[[package]] [[package]]
name = "arrayvec" name = "arrayvec"
@@ -157,14 +157,14 @@ dependencies = [
"wayland-backend", "wayland-backend",
"wayland-client", "wayland-client",
"wayland-protocols", "wayland-protocols",
"zbus 5.1.1", "zbus 5.2.0",
] ]
[[package]] [[package]]
name = "async-broadcast" name = "async-broadcast"
version = "0.7.1" version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
dependencies = [ dependencies = [
"event-listener", "event-listener",
"event-listener-strategy", "event-listener-strategy",
@@ -265,7 +265,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -300,7 +300,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -464,7 +464,7 @@ dependencies = [
"proc-macro-crate 3.2.0", "proc-macro-crate 3.2.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -529,9 +529,9 @@ dependencies = [
[[package]] [[package]]
name = "bytemuck" name = "bytemuck"
version = "1.20.0" version = "1.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3"
[[package]] [[package]]
name = "byteorder" name = "byteorder"
@@ -617,9 +617,9 @@ dependencies = [
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.2.4" version = "1.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9157bbaa6b165880c27a4293a474c91cdcf265cc68cc829bf10be0964a391caf" checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333"
dependencies = [ dependencies = [
"shlex", "shlex",
] ]
@@ -873,27 +873,27 @@ dependencies = [
[[package]] [[package]]
name = "crossbeam-channel" name = "crossbeam-channel"
version = "0.5.13" version = "0.5.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471"
dependencies = [ dependencies = [
"crossbeam-utils", "crossbeam-utils",
] ]
[[package]] [[package]]
name = "crossbeam-queue" name = "crossbeam-queue"
version = "0.3.11" version = "0.3.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115"
dependencies = [ dependencies = [
"crossbeam-utils", "crossbeam-utils",
] ]
[[package]] [[package]]
name = "crossbeam-utils" name = "crossbeam-utils"
version = "0.8.20" version = "0.8.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
[[package]] [[package]]
name = "crunchy" name = "crunchy"
@@ -935,7 +935,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [ dependencies = [
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -945,7 +945,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501"
dependencies = [ dependencies = [
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -969,7 +969,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"strsim", "strsim",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -980,7 +980,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [ dependencies = [
"darling_core", "darling_core",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -1020,7 +1020,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"rustc_version", "rustc_version",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -1070,7 +1070,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -1102,7 +1102,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -1233,14 +1233,14 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
name = "env_filter" name = "env_filter"
version = "0.1.2" version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0"
dependencies = [ dependencies = [
"log", "log",
"regex", "regex",
@@ -1321,9 +1321,9 @@ dependencies = [
[[package]] [[package]]
name = "fern" name = "fern"
version = "0.7.0" version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69ff9c9d5fb3e6da8ac2f77ab76fe7e8087d512ce095200f8f29ac5b656cf6dc" checksum = "4316185f709b23713e41e3195f90edef7fb00c3ed4adc79769cf09cc762a3b29"
dependencies = [ dependencies = [
"log", "log",
] ]
@@ -1383,7 +1383,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -1482,7 +1482,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -1738,7 +1738,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -1753,9 +1753,9 @@ dependencies = [
[[package]] [[package]]
name = "glob" name = "glob"
version = "0.3.1" version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
[[package]] [[package]]
name = "gobject-sys" name = "gobject-sys"
@@ -1817,7 +1817,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -1917,11 +1917,11 @@ dependencies = [
[[package]] [[package]]
name = "home" name = "home"
version = "0.5.9" version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf"
dependencies = [ dependencies = [
"windows-sys 0.52.0", "windows-sys 0.59.0",
] ]
[[package]] [[package]]
@@ -1980,9 +1980,9 @@ checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946"
[[package]] [[package]]
name = "hyper" name = "hyper"
version = "1.5.1" version = "1.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-channel", "futures-channel",
@@ -2000,9 +2000,9 @@ dependencies = [
[[package]] [[package]]
name = "hyper-rustls" name = "hyper-rustls"
version = "0.27.3" version = "0.27.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2"
dependencies = [ dependencies = [
"futures-util", "futures-util",
"http", "http",
@@ -2183,7 +2183,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -2426,9 +2426,9 @@ dependencies = [
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.168" version = "0.2.169"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
[[package]] [[package]]
name = "libloading" name = "libloading"
@@ -2588,9 +2588,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]] [[package]]
name = "miniz_oxide" name = "miniz_oxide"
version = "0.8.0" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394"
dependencies = [ dependencies = [
"adler2", "adler2",
"simd-adler32", "simd-adler32",
@@ -2763,7 +2763,7 @@ dependencies = [
"proc-macro-crate 3.2.0", "proc-macro-crate 3.2.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -3005,9 +3005,9 @@ dependencies = [
[[package]] [[package]]
name = "object" name = "object"
version = "0.36.5" version = "0.36.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
@@ -3057,9 +3057,9 @@ dependencies = [
[[package]] [[package]]
name = "os_info" name = "os_info"
version = "3.9.0" version = "3.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5ca711d8b83edbb00b44d504503cd247c9c0bd8b0fa2694f2a1a3d8165379ce" checksum = "eb6651f4be5e39563c4fe5cc8326349eb99a25d805a3493f791d5bfd0269e430"
dependencies = [ dependencies = [
"log", "log",
"serde", "serde",
@@ -3261,7 +3261,7 @@ dependencies = [
"phf_shared 0.11.2", "phf_shared 0.11.2",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -3356,9 +3356,9 @@ dependencies = [
[[package]] [[package]]
name = "png" name = "png"
version = "0.17.15" version = "0.17.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b67582bd5b65bdff614270e2ea89a1cf15bef71245cc1e5f7ea126977144211d" checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526"
dependencies = [ dependencies = [
"bitflags 1.3.2", "bitflags 1.3.2",
"crc32fast", "crc32fast",
@@ -3537,7 +3537,7 @@ dependencies = [
"rustc-hash", "rustc-hash",
"rustls", "rustls",
"socket2", "socket2",
"thiserror 2.0.7", "thiserror 2.0.9",
"tokio", "tokio",
"tracing", "tracing",
] ]
@@ -3556,7 +3556,7 @@ dependencies = [
"rustls", "rustls",
"rustls-pki-types", "rustls-pki-types",
"slab", "slab",
"thiserror 2.0.7", "thiserror 2.0.9",
"tinyvec", "tinyvec",
"tracing", "tracing",
"web-time", "web-time",
@@ -3564,9 +3564,9 @@ dependencies = [
[[package]] [[package]]
name = "quinn-udp" name = "quinn-udp"
version = "0.5.8" version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52cd4b1eff68bf27940dd39811292c49e007f4d0b4c357358dc9b0197be6b527" checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904"
dependencies = [ dependencies = [
"cfg_aliases", "cfg_aliases",
"libc", "libc",
@@ -3578,9 +3578,9 @@ dependencies = [
[[package]] [[package]]
name = "quote" name = "quote"
version = "1.0.37" version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
] ]
@@ -3738,9 +3738,9 @@ dependencies = [
[[package]] [[package]]
name = "reqwest" name = "reqwest"
version = "0.12.9" version = "0.12.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" checksum = "7fe060fe50f524be480214aba758c71f99f90ee8c83c5a36b5e9e1d568eb4eb3"
dependencies = [ dependencies = [
"base64 0.22.1", "base64 0.22.1",
"bytes", "bytes",
@@ -3775,6 +3775,7 @@ dependencies = [
"tokio", "tokio",
"tokio-rustls", "tokio-rustls",
"tokio-util", "tokio-util",
"tower",
"tower-service", "tower-service",
"url", "url",
"wasm-bindgen", "wasm-bindgen",
@@ -4015,7 +4016,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"serde_derive_internals", "serde_derive_internals",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -4067,9 +4068,9 @@ dependencies = [
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.216" version = "1.0.217"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
@@ -4087,13 +4088,13 @@ dependencies = [
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.216" version = "1.0.217"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -4104,14 +4105,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.133" version = "1.0.134"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d"
dependencies = [ dependencies = [
"itoa 1.0.14", "itoa 1.0.14",
"memchr", "memchr",
@@ -4127,7 +4128,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -4153,9 +4154,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_with" name = "serde_with"
version = "3.11.0" version = "3.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa"
dependencies = [ dependencies = [
"base64 0.22.1", "base64 0.22.1",
"chrono", "chrono",
@@ -4171,14 +4172,14 @@ dependencies = [
[[package]] [[package]]
name = "serde_with_macros" name = "serde_with_macros"
version = "3.11.0" version = "3.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e"
dependencies = [ dependencies = [
"darling", "darling",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -4456,7 +4457,7 @@ dependencies = [
"quote", "quote",
"sqlx-core", "sqlx-core",
"sqlx-macros-core", "sqlx-macros-core",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -4479,7 +4480,7 @@ dependencies = [
"sqlx-mysql", "sqlx-mysql",
"sqlx-postgres", "sqlx-postgres",
"sqlx-sqlite", "sqlx-sqlite",
"syn 2.0.90", "syn 2.0.93",
"tempfile", "tempfile",
"tokio", "tokio",
"url", "url",
@@ -4676,9 +4677,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.90" version = "2.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" checksum = "9c786062daee0d6db1132800e623df74274a0a87322d8e183338e01b3d98d058"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@@ -4702,7 +4703,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -4795,7 +4796,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -4849,7 +4850,7 @@ dependencies = [
"tauri-runtime", "tauri-runtime",
"tauri-runtime-wry", "tauri-runtime-wry",
"tauri-utils", "tauri-utils",
"thiserror 2.0.7", "thiserror 2.0.9",
"tokio", "tokio",
"tray-icon", "tray-icon",
"url", "url",
@@ -4900,9 +4901,9 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"sha2", "sha2",
"syn 2.0.90", "syn 2.0.93",
"tauri-utils", "tauri-utils",
"thiserror 2.0.7", "thiserror 2.0.9",
"time", "time",
"url", "url",
"uuid", "uuid",
@@ -4918,7 +4919,7 @@ dependencies = [
"heck 0.5.0", "heck 0.5.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
"tauri-codegen", "tauri-codegen",
"tauri-utils", "tauri-utils",
] ]
@@ -4943,7 +4944,7 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-deep-link" name = "tauri-plugin-deep-link"
version = "2.2.0" version = "2.2.0"
source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#ee0f65de5c645c244c5f0b638e0e0aab687cb9bf" source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#b21915938ff2b8b8ec00396252f6157338988e62"
dependencies = [ dependencies = [
"dunce", "dunce",
"rust-ini", "rust-ini",
@@ -4952,7 +4953,7 @@ dependencies = [
"tauri", "tauri",
"tauri-plugin", "tauri-plugin",
"tauri-utils", "tauri-utils",
"thiserror 2.0.7", "thiserror 2.0.9",
"tracing", "tracing",
"url", "url",
"windows-registry 0.3.0", "windows-registry 0.3.0",
@@ -4962,7 +4963,7 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-dialog" name = "tauri-plugin-dialog"
version = "2.2.0" version = "2.2.0"
source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#ee0f65de5c645c244c5f0b638e0e0aab687cb9bf" source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#b21915938ff2b8b8ec00396252f6157338988e62"
dependencies = [ dependencies = [
"log", "log",
"raw-window-handle", "raw-window-handle",
@@ -4972,14 +4973,14 @@ dependencies = [
"tauri", "tauri",
"tauri-plugin", "tauri-plugin",
"tauri-plugin-fs", "tauri-plugin-fs",
"thiserror 2.0.7", "thiserror 2.0.9",
"url", "url",
] ]
[[package]] [[package]]
name = "tauri-plugin-fs" name = "tauri-plugin-fs"
version = "2.2.0" version = "2.2.0"
source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#ee0f65de5c645c244c5f0b638e0e0aab687cb9bf" source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#b21915938ff2b8b8ec00396252f6157338988e62"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"dunce", "dunce",
@@ -4992,7 +4993,7 @@ dependencies = [
"tauri", "tauri",
"tauri-plugin", "tauri-plugin",
"tauri-utils", "tauri-utils",
"thiserror 2.0.7", "thiserror 2.0.9",
"toml 0.8.19", "toml 0.8.19",
"url", "url",
"uuid", "uuid",
@@ -5001,7 +5002,7 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-http" name = "tauri-plugin-http"
version = "2.2.0" version = "2.2.0"
source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#ee0f65de5c645c244c5f0b638e0e0aab687cb9bf" source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#b21915938ff2b8b8ec00396252f6157338988e62"
dependencies = [ dependencies = [
"data-url", "data-url",
"http", "http",
@@ -5013,7 +5014,7 @@ dependencies = [
"tauri", "tauri",
"tauri-plugin", "tauri-plugin",
"tauri-plugin-fs", "tauri-plugin-fs",
"thiserror 2.0.7", "thiserror 2.0.9",
"tokio", "tokio",
"url", "url",
"urlpattern", "urlpattern",
@@ -5022,7 +5023,7 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-log" name = "tauri-plugin-log"
version = "2.2.0" version = "2.2.0"
source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#ee0f65de5c645c244c5f0b638e0e0aab687cb9bf" source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#b21915938ff2b8b8ec00396252f6157338988e62"
dependencies = [ dependencies = [
"android_logger", "android_logger",
"byte-unit", "byte-unit",
@@ -5036,14 +5037,14 @@ dependencies = [
"swift-rs", "swift-rs",
"tauri", "tauri",
"tauri-plugin", "tauri-plugin",
"thiserror 2.0.7", "thiserror 2.0.9",
"time", "time",
] ]
[[package]] [[package]]
name = "tauri-plugin-os" name = "tauri-plugin-os"
version = "2.2.0" version = "2.2.0"
source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#ee0f65de5c645c244c5f0b638e0e0aab687cb9bf" source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#b21915938ff2b8b8ec00396252f6157338988e62"
dependencies = [ dependencies = [
"gethostname", "gethostname",
"log", "log",
@@ -5054,13 +5055,13 @@ dependencies = [
"sys-locale", "sys-locale",
"tauri", "tauri",
"tauri-plugin", "tauri-plugin",
"thiserror 2.0.7", "thiserror 2.0.9",
] ]
[[package]] [[package]]
name = "tauri-plugin-process" name = "tauri-plugin-process"
version = "2.2.0" version = "2.2.0"
source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#ee0f65de5c645c244c5f0b638e0e0aab687cb9bf" source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#b21915938ff2b8b8ec00396252f6157338988e62"
dependencies = [ dependencies = [
"tauri", "tauri",
"tauri-plugin", "tauri-plugin",
@@ -5069,7 +5070,7 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-shell" name = "tauri-plugin-shell"
version = "2.2.0" version = "2.2.0"
source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#ee0f65de5c645c244c5f0b638e0e0aab687cb9bf" source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#b21915938ff2b8b8ec00396252f6157338988e62"
dependencies = [ dependencies = [
"encoding_rs", "encoding_rs",
"log", "log",
@@ -5082,19 +5083,19 @@ dependencies = [
"shared_child", "shared_child",
"tauri", "tauri",
"tauri-plugin", "tauri-plugin",
"thiserror 2.0.7", "thiserror 2.0.9",
"tokio", "tokio",
] ]
[[package]] [[package]]
name = "tauri-plugin-single-instance" name = "tauri-plugin-single-instance"
version = "2.2.0" version = "2.2.0"
source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#ee0f65de5c645c244c5f0b638e0e0aab687cb9bf" source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#b21915938ff2b8b8ec00396252f6157338988e62"
dependencies = [ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"tauri", "tauri",
"thiserror 2.0.7", "thiserror 2.0.9",
"tracing", "tracing",
"windows-sys 0.59.0", "windows-sys 0.59.0",
"zbus 4.4.0", "zbus 4.4.0",
@@ -5103,7 +5104,7 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-sql" name = "tauri-plugin-sql"
version = "2.2.0" version = "2.2.0"
source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#ee0f65de5c645c244c5f0b638e0e0aab687cb9bf" source = "git+ssh://git@github.com/tauri-apps/plugins-workspace.git?branch=v2#b21915938ff2b8b8ec00396252f6157338988e62"
dependencies = [ dependencies = [
"futures-core", "futures-core",
"indexmap 2.7.0", "indexmap 2.7.0",
@@ -5113,7 +5114,7 @@ dependencies = [
"sqlx", "sqlx",
"tauri", "tauri",
"tauri-plugin", "tauri-plugin",
"thiserror 2.0.7", "thiserror 2.0.9",
"time", "time",
"tokio", "tokio",
] ]
@@ -5132,7 +5133,7 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"tauri-utils", "tauri-utils",
"thiserror 2.0.7", "thiserror 2.0.9",
"url", "url",
"windows", "windows",
] ]
@@ -5192,7 +5193,7 @@ dependencies = [
"serde_json", "serde_json",
"serde_with", "serde_with",
"swift-rs", "swift-rs",
"thiserror 2.0.7", "thiserror 2.0.9",
"toml 0.8.19", "toml 0.8.19",
"url", "url",
"urlpattern", "urlpattern",
@@ -5251,11 +5252,11 @@ dependencies = [
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "2.0.7" version = "2.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93605438cbd668185516ab499d589afb7ee1859ea3d5fc8f6b0755e1c7443767" checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc"
dependencies = [ dependencies = [
"thiserror-impl 2.0.7", "thiserror-impl 2.0.9",
] ]
[[package]] [[package]]
@@ -5266,18 +5267,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "2.0.7" version = "2.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1d8749b4531af2117677a5fcd12b1348a3fe2b81e36e61ffeac5c4aa3273e36" checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -5334,9 +5335,9 @@ dependencies = [
[[package]] [[package]]
name = "tinyvec" name = "tinyvec"
version = "1.8.0" version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8"
dependencies = [ dependencies = [
"tinyvec_macros", "tinyvec_macros",
] ]
@@ -5373,7 +5374,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -5480,6 +5481,27 @@ dependencies = [
"winnow 0.6.20", "winnow 0.6.20",
] ]
[[package]]
name = "tower"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
dependencies = [
"futures-core",
"futures-util",
"pin-project-lite",
"sync_wrapper",
"tokio",
"tower-layer",
"tower-service",
]
[[package]]
name = "tower-layer"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
[[package]] [[package]]
name = "tower-service" name = "tower-service"
version = "0.3.3" version = "0.3.3"
@@ -5506,7 +5528,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -5617,9 +5639,9 @@ dependencies = [
[[package]] [[package]]
name = "unicode-bidi" name = "unicode-bidi"
version = "0.3.17" version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"
[[package]] [[package]]
name = "unicode-ident" name = "unicode-ident"
@@ -5820,7 +5842,7 @@ dependencies = [
"log", "log",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@@ -5855,7 +5877,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@@ -6034,7 +6056,7 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -6143,7 +6165,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -6154,7 +6176,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -6573,7 +6595,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
"synstructure", "synstructure",
] ]
@@ -6617,9 +6639,9 @@ dependencies = [
[[package]] [[package]]
name = "zbus" name = "zbus"
version = "5.1.1" version = "5.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1162094dc63b1629fcc44150bcceeaa80798cd28bcbe7fa987b65a034c258608" checksum = "fb67eadba43784b6fb14857eba0d8fc518686d3ee537066eb6086dc318e2c8a1"
dependencies = [ dependencies = [
"async-broadcast", "async-broadcast",
"async-recursion", "async-recursion",
@@ -6640,7 +6662,7 @@ dependencies = [
"windows-sys 0.59.0", "windows-sys 0.59.0",
"winnow 0.6.20", "winnow 0.6.20",
"xdg-home", "xdg-home",
"zbus_macros 5.1.1", "zbus_macros 5.2.0",
"zbus_names 4.1.0", "zbus_names 4.1.0",
"zvariant 5.1.0", "zvariant 5.1.0",
] ]
@@ -6654,20 +6676,20 @@ dependencies = [
"proc-macro-crate 3.2.0", "proc-macro-crate 3.2.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
"zvariant_utils 2.1.0", "zvariant_utils 2.1.0",
] ]
[[package]] [[package]]
name = "zbus_macros" name = "zbus_macros"
version = "5.1.1" version = "5.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cd2dcdce3e2727f7d74b7e33b5a89539b3cc31049562137faf7ae4eb86cd16d" checksum = "2c9d49ebc960ceb660f2abe40a5904da975de6986f2af0d7884b39eec6528c57"
dependencies = [ dependencies = [
"proc-macro-crate 3.2.0", "proc-macro-crate 3.2.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
"zbus_names 4.1.0", "zbus_names 4.1.0",
"zvariant 5.1.0", "zvariant 5.1.0",
"zvariant_utils 3.0.2", "zvariant_utils 3.0.2",
@@ -6714,7 +6736,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -6734,7 +6756,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
"synstructure", "synstructure",
] ]
@@ -6763,7 +6785,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -6804,7 +6826,7 @@ dependencies = [
"proc-macro-crate 3.2.0", "proc-macro-crate 3.2.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
"zvariant_utils 2.1.0", "zvariant_utils 2.1.0",
] ]
@@ -6817,7 +6839,7 @@ dependencies = [
"proc-macro-crate 3.2.0", "proc-macro-crate 3.2.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
"zvariant_utils 3.0.2", "zvariant_utils 3.0.2",
] ]
@@ -6829,7 +6851,7 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.90", "syn 2.0.93",
] ]
[[package]] [[package]]
@@ -6842,6 +6864,6 @@ dependencies = [
"quote", "quote",
"serde", "serde",
"static_assertions", "static_assertions",
"syn 2.0.90", "syn 2.0.93",
"winnow 0.6.20", "winnow 0.6.20",
] ]

View File

@@ -15,8 +15,8 @@ tauri-build = { version = "2.0.3", features = [] }
[dependencies] [dependencies]
chrono = "0.4.39" chrono = "0.4.39"
log = "0.4.22" log = "0.4.22"
serde = { version = "1.0.216", features = ["derive"] } serde = { version = "1.0.217", features = ["derive"] }
serde_json = "1.0.133" serde_json = "1.0.134"
tauri = { version = "2.1.1", features = [] } tauri = { version = "2.1.1", features = [] }
tauri-utils = "2.1.0" tauri-utils = "2.1.0"
url = "2.5.4" url = "2.5.4"

View File

@@ -10,17 +10,16 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, watch } from "vue"; import { ref, watch } from "vue";
type TolProps = { modelValue: boolean; blurVal?: string }; type TolProps = { blurVal?: string };
type TolEmits = (e: "update:modelValue", v: boolean) => void; withDefaults(defineProps<TolProps>(), { blurVal: "20px" });
const emit = defineEmits<TolEmits>(); const model = defineModel<boolean>({ default: false });
const props = withDefaults(defineProps<TolProps>(), { modelValue: false, blurVal: "20px" });
const showTolo = ref<boolean>(false); const showTolo = ref<boolean>(false);
const showToli = ref<boolean>(false); const showToli = ref<boolean>(false);
watch( watch(
() => props.modelValue, () => model.value,
async () => { async () => {
if (props.modelValue) { if (model.value) {
showTolo.value = true; showTolo.value = true;
showToli.value = true; showToli.value = true;
return; return;
@@ -33,7 +32,7 @@ watch(
); );
function toClick(): void { function toClick(): void {
emit("update:modelValue", false); model.value = false;
} }
</script> </script>
<style lang="css" scoped> <style lang="css" scoped>

View File

@@ -45,26 +45,16 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import showSnackbar from "@comp/func/snackbar.js"; import showSnackbar from "@comp/func/snackbar.js";
import { computed } from "vue";
import TOverlay from "./t-overlay.vue"; import TOverlay from "./t-overlay.vue";
import { generateShareImg } from "@/utils/TGShare.js"; import { generateShareImg } from "@/utils/TGShare.js";
import { timestampToDate } from "@/utils/toolFunc.js"; import { timestampToDate } from "@/utils/toolFunc.js";
type ToLiveCodeProps = { type ToLiveCodeProps = { data: Array<TGApp.BBS.Navigator.CodeData>; actId: string | undefined };
data: TGApp.BBS.Navigator.CodeData[];
actId: string | undefined;
modelValue: boolean;
};
type ToLiveCodeEmits = (e: "update:modelValue", v: boolean) => void;
const props = withDefaults(defineProps<ToLiveCodeProps>(), { modelValue: false }); const props = defineProps<ToLiveCodeProps>();
const emits = defineEmits<ToLiveCodeEmits>(); const visible = defineModel<boolean>({ default: false });
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
function copy(code: string): void { function copy(code: string): void {
navigator.clipboard.writeText(code); navigator.clipboard.writeText(code);

View File

@@ -48,10 +48,10 @@ enum ToNameCardTypeEnum {
} }
type ToNameCardTypeMap = { [key in ToNameCardTypeEnum]: string }; type ToNameCardTypeMap = { [key in ToNameCardTypeEnum]: string };
type ToNameCardProps = { modelValue: boolean; data?: TGApp.App.NameCard.Item }; type ToNameCardProps = { data?: TGApp.App.NameCard.Item };
type ToNameCardEmits = (e: "update:modelValue", v: boolean) => void;
const props = defineProps<ToNameCardProps>(); const props = defineProps<ToNameCardProps>();
const emits = defineEmits<ToNameCardEmits>(); const visible = defineModel<boolean>();
const typeMap: ToNameCardTypeMap = { const typeMap: ToNameCardTypeMap = {
0: "其他", 0: "其他",
1: "成就", 1: "成就",
@@ -61,10 +61,6 @@ const typeMap: ToNameCardTypeMap = {
5: "未知", 5: "未知",
}; };
const loading = ref<boolean>(false); const loading = ref<boolean>(false);
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
const getType = computed<string>(() => { const getType = computed<string>(() => {
if (!props.data) return typeMap[ToNameCardTypeEnum.unknown]; if (!props.data) return typeMap[ToNameCardTypeEnum.unknown];
if (!(props.data.type satisfies ToNameCardTypeEnum)) return typeMap[5]; if (!(props.data.type satisfies ToNameCardTypeEnum)) return typeMap[5];

View File

@@ -55,7 +55,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import TOverlay from "@comp/app/t-overlay.vue"; import TOverlay from "@comp/app/t-overlay.vue";
import showSnackbar from "@comp/func/snackbar.js"; import showSnackbar from "@comp/func/snackbar.js";
import { computed, ref } from "vue"; import { ref } from "vue";
import HtaOverviewLine from "./hta-overview-line.vue"; import HtaOverviewLine from "./hta-overview-line.vue";
@@ -63,19 +63,11 @@ import type { AbyssDataItem } from "@/pages/WIKI/Abyss.vue";
import { generateShareImg } from "@/utils/TGShare.js"; import { generateShareImg } from "@/utils/TGShare.js";
import { timestampToDate } from "@/utils/toolFunc.js"; import { timestampToDate } from "@/utils/toolFunc.js";
type HtaOverlayOverviewProps = { type HtaOverlayOverviewProps = { data: AbyssDataItem<TGApp.Plugins.Hutao.Abyss.OverviewData> };
modelValue: boolean;
data: AbyssDataItem<TGApp.Plugins.Hutao.Abyss.OverviewData>;
};
type HtaOverlayOverviewEmits = (e: "update:modelValue", v: boolean) => void;
const props = defineProps<HtaOverlayOverviewProps>(); const props = defineProps<HtaOverlayOverviewProps>();
const emits = defineEmits<HtaOverlayOverviewEmits>(); const visible = defineModel<boolean>();
const loadShare = ref<boolean>(false); const loadShare = ref<boolean>(false);
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
async function share(): Promise<void> { async function share(): Promise<void> {
loadShare.value = true; loadShare.value = true;

View File

@@ -36,32 +36,24 @@
import TOverlay from "@comp/app/t-overlay.vue"; import TOverlay from "@comp/app/t-overlay.vue";
import showSnackbar from "@comp/func/snackbar.js"; import showSnackbar from "@comp/func/snackbar.js";
import { fetch } from "@tauri-apps/plugin-http"; import { fetch } from "@tauri-apps/plugin-http";
import { computed, onMounted, ref, shallowRef, watch } from "vue"; import { onMounted, ref, shallowRef, watch } from "vue";
import { xml2json } from "xml-js"; import { xml2json } from "xml-js";
import TGLogger from "@/utils/TGLogger.js"; import TGLogger from "@/utils/TGLogger.js";
import { copyToClipboard, getImageBuffer, saveCanvasImg } from "@/utils/TGShare.js"; import { copyToClipboard, getImageBuffer, saveCanvasImg } from "@/utils/TGShare.js";
import { bytesToSize } from "@/utils/toolFunc.js"; import { bytesToSize } from "@/utils/toolFunc.js";
type ToArcBirthProps = { type ToArcBirthProps = { data?: TGApp.Archive.Birth.DrawItem; choice: boolean };
modelValue: boolean;
data?: TGApp.Archive.Birth.DrawItem;
choice: boolean;
};
type ToArcBirthEmits = (e: "update:modelValue", v: boolean) => void;
type XmlKeyMap = { id: string; rel: string; group?: string; icon: string }; type XmlKeyMap = { id: string; rel: string; group?: string; icon: string };
type XmlTextList = { chara: string; img: string; text: string }; type XmlTextList = { chara: string; img: string; text: string };
type XmlTextParse = { name: string; icon?: string; text: string }; type XmlTextParse = { name: string; icon?: string; text: string };
const props = defineProps<ToArcBirthProps>(); const props = defineProps<ToArcBirthProps>();
const emits = defineEmits<ToArcBirthEmits>(); const visible = defineModel<boolean>();
const showText = ref<boolean>(false); const showText = ref<boolean>(false);
const buffer = shallowRef<Uint8Array | null>(null); const buffer = shallowRef<Uint8Array | null>(null);
const textParse = shallowRef<Array<XmlTextParse>>([]); const textParse = shallowRef<Array<XmlTextParse>>([]);
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
onMounted(() => clearData()); onMounted(() => clearData());
watch(() => props.data, clearData); watch(() => props.data, clearData);
watch(() => props.choice, clearData); watch(() => props.choice, clearData);

View File

@@ -26,26 +26,23 @@ import TOverlay from "@comp/app/t-overlay.vue";
import showDialog from "@comp/func/dialog.js"; import showDialog from "@comp/func/dialog.js";
import showSnackbar from "@comp/func/snackbar.js"; import showSnackbar from "@comp/func/snackbar.js";
import TSUserCollection from "@Sqlite/modules/userCollect.js"; import TSUserCollection from "@Sqlite/modules/userCollect.js";
import { computed, ref, shallowRef, watch } from "vue"; import { ref, shallowRef, watch } from "vue";
type ToPostCollectProps = { modelValue: boolean; post: Array<string> }; type ToPostCollectProps = { post: Array<string> };
type ToPostCollectEmits = { type ToPostCollectEmits = (e: "submit") => void;
(e: "update:modelValue", v: boolean): void;
(e: "submit"): void;
};
const props = defineProps<ToPostCollectProps>(); const props = defineProps<ToPostCollectProps>();
const emits = defineEmits<ToPostCollectEmits>(); const emits = defineEmits<ToPostCollectEmits>();
const visible = defineModel<boolean>();
const select = ref<string>(); const select = ref<string>();
const submit = ref<boolean>(false); const submit = ref<boolean>(false);
const collectList = shallowRef<Array<TGApp.Sqlite.UserCollection.UFCollection>>([]); const collectList = shallowRef<Array<TGApp.Sqlite.UserCollection.UFCollection>>([]);
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
watch( watch(
() => props.modelValue, () => visible.value,
async (val) => (val ? await freshData() : null), async () => {
if (visible.value) await freshData();
},
); );
async function onSubmit(): Promise<void> { async function onSubmit(): Promise<void> {

View File

@@ -36,20 +36,12 @@ import { useRouter } from "vue-router";
import TibCalendarMaterial from "./ph-calendar-material.vue"; import TibCalendarMaterial from "./ph-calendar-material.vue";
type ToCalendarProps = { type ToCalendarProps = { dataType: "weapon" | "character"; dataVal: TGApp.App.Calendar.Item };
modelValue: boolean;
dataType: "weapon" | "character"; const router = useRouter();
dataVal: TGApp.App.Calendar.Item;
};
type ToCalendarEmits = (e: "update:modelValue", v: boolean) => void;
const props = defineProps<ToCalendarProps>(); const props = defineProps<ToCalendarProps>();
const emits = defineEmits<ToCalendarEmits>(); const visible = defineModel<boolean>();
const router = useRouter();
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
const boxData = computed<TItemBoxData>(() => ({ const boxData = computed<TItemBoxData>(() => ({
bg: `/icon/bg/${props.dataVal.star}-Star.webp`, bg: `/icon/bg/${props.dataVal.star}-Star.webp`,
icon: `/WIKI/${props.dataType}/${props.dataVal.id}.webp`, icon: `/WIKI/${props.dataType}/${props.dataVal.id}.webp`,

View File

@@ -21,24 +21,19 @@
import TOverlay from "@comp/app/t-overlay.vue"; import TOverlay from "@comp/app/t-overlay.vue";
import showSnackbar from "@comp/func/snackbar.js"; import showSnackbar from "@comp/func/snackbar.js";
import { storeToRefs } from "pinia"; import { storeToRefs } from "pinia";
import { computed } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { type NewsType, useAppStore } from "@/store/modules/app.js"; import { type NewsType, useAppStore } from "@/store/modules/app.js";
import type { ToChannelItem } from "@/web/constant/bbs.js"; import type { ToChannelItem } from "@/web/constant/bbs.js";
import TGConstant from "@/web/constant/TGConstant.js"; import TGConstant from "@/web/constant/TGConstant.js";
type ToChannelProps = { gid?: string; curType?: string; modelValue: boolean }; type ToChannelProps = { gid?: string; curType?: string };
type ToChannelEmits = (e: "update:modelValue", v: boolean) => void;
const router = useRouter(); const router = useRouter();
const props = withDefaults(defineProps<ToChannelProps>(), { modelValue: false });
const emits = defineEmits<ToChannelEmits>();
const { recentNewsType } = storeToRefs(useAppStore()); const { recentNewsType } = storeToRefs(useAppStore());
const channelList = TGConstant.BBS.CHANNELS; const channelList = TGConstant.BBS.CHANNELS;
const visible = computed<boolean>({ const props = defineProps<ToChannelProps>();
get: () => props.modelValue, const visible = defineModel<boolean>({ default: false });
set: (v) => emits("update:modelValue", v),
});
async function toChannel(item: ToChannelItem): Promise<void> { async function toChannel(item: ToChannelItem): Promise<void> {
if (props.gid === item.gid) { if (props.gid === item.gid) {
@@ -107,24 +102,4 @@ async function toChannel(item: ToChannelItem): Promise<void> {
font-size: 16px; font-size: 16px;
} }
} }
.toc-close {
display: flex;
width: 100%;
height: 60px;
align-items: center;
justify-content: center;
}
.toc-close-btn {
display: flex;
width: 30px;
height: 30px;
align-items: center;
justify-content: center;
border-radius: 50%;
background: var(--box-bg-1);
color: var(--app-page-content);
cursor: pointer;
}
</style> </style>

View File

@@ -29,7 +29,7 @@
import TOverlay from "@comp/app/t-overlay.vue"; import TOverlay from "@comp/app/t-overlay.vue";
import showSnackbar from "@comp/func/snackbar.js"; import showSnackbar from "@comp/func/snackbar.js";
import { getVersion } from "@tauri-apps/api/app"; import { getVersion } from "@tauri-apps/api/app";
import { computed, onMounted, ref } from "vue"; import { onMounted, ref } from "vue";
import TwoConvert from "./two-convert.vue"; import TwoConvert from "./two-convert.vue";
import TwoSource from "./two-source.vue"; import TwoSource from "./two-source.vue";
@@ -37,15 +37,11 @@ import TwoSource from "./two-source.vue";
import { generateShareImg } from "@/utils/TGShare.js"; import { generateShareImg } from "@/utils/TGShare.js";
import { parseHtmlText } from "@/utils/toolFunc.js"; import { parseHtmlText } from "@/utils/toolFunc.js";
type TwoMaterialProps = { modelValue: boolean; data: TGApp.App.Material.WikiItem }; type TwoMaterialProps = { data: TGApp.App.Material.WikiItem };
type TwoMaterialEmits = (e: "update:modelValue", v: boolean) => void;
const props = defineProps<TwoMaterialProps>(); const props = defineProps<TwoMaterialProps>();
const emits = defineEmits<TwoMaterialEmits>(); const visible = defineModel<boolean>();
const version = ref<string>(); const version = ref<string>();
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
onMounted(async () => (version.value = await getVersion())); onMounted(async () => (version.value = await getVersion()));

View File

@@ -66,7 +66,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import TOverlay from "@comp/app/t-overlay.vue"; import TOverlay from "@comp/app/t-overlay.vue";
import { computed, ref, watch } from "vue"; import showSnackbar from "@comp/func/snackbar.js";
import { ref, toRaw, watch } from "vue";
export type SelectedCValue = { export type SelectedCValue = {
star: Array<number>; star: Array<number>;
@@ -74,14 +75,8 @@ export type SelectedCValue = {
elements: Array<string>; elements: Array<string>;
area: Array<string>; area: Array<string>;
}; };
type TwoSelectCProps = { modelValue: boolean; reset: boolean }; type TwoSelectCEmits = (e: "select-c", v: SelectedCValue) => void;
type TwoSelectCEmits = {
(e: "update:modelValue", v: boolean): void;
(e: "update:reset", v: boolean): void;
(e: "select-c", v: SelectedCValue): void;
};
const props = defineProps<TwoSelectCProps>();
const emits = defineEmits<TwoSelectCEmits>(); const emits = defineEmits<TwoSelectCEmits>();
const selectStarList = [4, 5]; const selectStarList = [4, 5];
const selectWeaponList = ["单手剑", "双手剑", "弓", "法器", "长柄武器"]; const selectWeaponList = ["单手剑", "双手剑", "弓", "法器", "长柄武器"];
@@ -93,24 +88,29 @@ const selectedStar = ref<Array<number>>(selectStarList);
const selectedWeapon = ref<Array<string>>(selectWeaponList); const selectedWeapon = ref<Array<string>>(selectWeaponList);
const selectedElements = ref<Array<string>>(selectElementList); const selectedElements = ref<Array<string>>(selectElementList);
const selectedArea = ref<Array<string>>(selectAreaList); const selectedArea = ref<Array<string>>(selectAreaList);
const visible = computed<boolean>({ const visible = defineModel<boolean>();
get: () => props.modelValue, const resetModel = defineModel<boolean>("reset");
set: (v) => emits("update:modelValue", v),
});
const reset = computed<boolean>({
get: () => props.reset,
set: (v: boolean) => emits("update:reset", v),
});
watch( watch(
() => props.reset, () => resetModel.value,
(value) => { () => {
if (value) { if (resetModel.value) {
if (
toRaw(selectedStar.value) === selectStarList &&
toRaw(selectedWeapon.value) === selectWeaponList &&
toRaw(selectedElements.value) === selectElementList &&
toRaw(selectedArea.value) === selectAreaList
) {
showSnackbar.warn("无需重置");
resetModel.value = false;
return;
}
selectedStar.value = selectStarList; selectedStar.value = selectStarList;
selectedWeapon.value = selectWeaponList; selectedWeapon.value = selectWeaponList;
selectedElements.value = selectElementList; selectedElements.value = selectElementList;
selectedArea.value = selectAreaList; selectedArea.value = selectAreaList;
reset.value = false; resetModel.value = false;
showSnackbar.success("已重置");
} }
}, },
); );

View File

@@ -36,17 +36,12 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import TOverlay from "@comp/app/t-overlay.vue"; import TOverlay from "@comp/app/t-overlay.vue";
import { computed, ref, watch } from "vue"; import showSnackbar from "@comp/func/snackbar.js";
import { ref, toRaw, watch } from "vue";
export type SelectedWValue = { star: Array<number>; weapon: Array<string> }; export type SelectedWValue = { star: Array<number>; weapon: Array<string>; isReset: boolean };
type TwoSelectWProps = { modelValue: boolean; reset: boolean }; type TwoSelectWEmits = (e: "select-w", value: SelectedWValue) => void;
type TwoSelectWEmits = {
(e: "update:modelValue", value: boolean): void;
(e: "update:reset", value: boolean): void;
(e: "select-w", value: SelectedWValue): void;
};
const props = defineProps<TwoSelectWProps>();
const emits = defineEmits<TwoSelectWEmits>(); const emits = defineEmits<TwoSelectWEmits>();
const selectStarList = [4, 5]; const selectStarList = [4, 5];
@@ -54,29 +49,31 @@ const selectWeaponList = ["单手剑", "双手剑", "弓", "法器", "长柄武
const selectedStar = ref<Array<number>>(selectStarList); const selectedStar = ref<Array<number>>(selectStarList);
const selectedWeapon = ref<Array<string>>(selectWeaponList); const selectedWeapon = ref<Array<string>>(selectWeaponList);
const visible = computed<boolean>({ const visible = defineModel<boolean>();
get: () => props.modelValue, const resetModel = defineModel<boolean>("reset");
set: (v) => emits("update:modelValue", v),
});
const reset = computed<boolean>({
get: () => props.reset,
set: (v) => emits("update:reset", v),
});
watch( watch(
() => props.reset, () => resetModel.value,
(value) => { () => {
if (value) { if (resetModel.value) {
if (
toRaw(selectedStar.value) === selectStarList &&
toRaw(selectedWeapon.value) === selectWeaponList
) {
showSnackbar.warn("无需重置");
resetModel.value = false;
return;
}
selectedStar.value = selectStarList; selectedStar.value = selectStarList;
selectedWeapon.value = selectWeaponList; selectedWeapon.value = selectWeaponList;
reset.value = false; resetModel.value = false;
confirmSelect(); emits("select-w", { star: selectedStar.value, weapon: selectedWeapon.value, isReset: true });
} }
}, },
); );
function confirmSelect(): void { function confirmSelect(): void {
emits("select-w", { star: selectedStar.value, weapon: selectedWeapon.value }); emits("select-w", { star: selectedStar.value, weapon: selectedWeapon.value, isReset: false });
visible.value = false; visible.value = false;
} }
</script> </script>

View File

@@ -54,25 +54,19 @@
<script lang="ts" setup> <script lang="ts" setup>
import TOverlay from "@comp/app/t-overlay.vue"; import TOverlay from "@comp/app/t-overlay.vue";
import VpOverlaySearch from "@comp/viewPost/vp-overlay-search.vue"; import VpOverlaySearch from "@comp/viewPost/vp-overlay-search.vue";
import { computed, ref } from "vue"; import { ref } from "vue";
import { AppAchievementSeriesData } from "@/data/index.js"; import { AppAchievementSeriesData } from "@/data/index.js";
import TGLogger from "@/utils/TGLogger.js"; import TGLogger from "@/utils/TGLogger.js";
type ToAchiInfoProps = { modelValue: boolean; data: TGApp.Sqlite.Achievement.RenderAchi }; type ToAchiInfoProps = { data: TGApp.Sqlite.Achievement.RenderAchi };
type ToAchiInfoEmits = { type ToAchiInfoEmits = (e: "select-series", v: number) => void;
(e: "update:modelValue", v: boolean): void;
(e: "select-series", v: number): void;
};
const props = defineProps<ToAchiInfoProps>(); const props = defineProps<ToAchiInfoProps>();
const emits = defineEmits<ToAchiInfoEmits>(); const emits = defineEmits<ToAchiInfoEmits>();
const visible = defineModel<boolean>();
const showSearch = ref<boolean>(false); const showSearch = ref<boolean>(false);
const search = ref<string>(); const search = ref<string>();
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
async function searchDirect(word: string): Promise<void> { async function searchDirect(word: string): Promise<void> {
await TGLogger.Info(`[ToAchiInfo][${props.data.id}][Search] 查询 ${word}`); await TGLogger.Info(`[ToAchiInfo][${props.data.id}][Search] 查询 ${word}`);

View File

@@ -38,14 +38,11 @@ import { AppAchievementSeriesData } from "@/data/index.js";
import { timestampToDate } from "@/utils/toolFunc.js"; import { timestampToDate } from "@/utils/toolFunc.js";
type TuaAchiProps = { modelValue: TGApp.Sqlite.Achievement.RenderAchi }; type TuaAchiProps = { modelValue: TGApp.Sqlite.Achievement.RenderAchi };
type TuaAchiEmits = { type TuaAchiEmits = (e: "select-achi", data: TGApp.Sqlite.Achievement.RenderAchi) => void;
(e: "update:modelValue", data: TGApp.Sqlite.Achievement.RenderAchi): void;
(e: "update:update", data: boolean): void;
(e: "select-achi", data: TGApp.Sqlite.Achievement.RenderAchi): void;
};
const props = defineProps<TuaAchiProps>(); const props = defineProps<TuaAchiProps>();
const emits = defineEmits<TuaAchiEmits>(); const emits = defineEmits<TuaAchiEmits>();
const model = defineModel<TGApp.Sqlite.Achievement.RenderAchi>();
const data = ref<TGApp.Sqlite.Achievement.RenderAchi>(toRaw(props.modelValue)); const data = ref<TGApp.Sqlite.Achievement.RenderAchi>(toRaw(props.modelValue));
watch( watch(
@@ -69,7 +66,7 @@ async function setAchiStat(stat: boolean): Promise<void> {
if (!stat) { if (!stat) {
data.value.isCompleted = false; data.value.isCompleted = false;
await TSUserAchi.updateAchi(data.value); await TSUserAchi.updateAchi(data.value);
emits("update:modelValue", data.value); model.value = data.value;
await event.emit("updateAchi", data.value.series); await event.emit("updateAchi", data.value.series);
showSnackbar.success(`已将成就 ${data.value.name}(${data.value.id}) 状态设为未完成`); showSnackbar.success(`已将成就 ${data.value.name}(${data.value.id}) 状态设为未完成`);
return; return;
@@ -80,7 +77,7 @@ async function setAchiStat(stat: boolean): Promise<void> {
return; return;
} }
if (progress === undefined) progress = data.value.progress.toString(); if (progress === undefined) progress = data.value.progress.toString();
if (isNaN(Number(progress)) || progress === "0") { if (isNaN(Number(progress))) {
showSnackbar.warn("请输入有效数字!"); showSnackbar.warn("请输入有效数字!");
return; return;
} }
@@ -90,7 +87,7 @@ async function setAchiStat(stat: boolean): Promise<void> {
await TSUserAchi.updateAchi(data.value); await TSUserAchi.updateAchi(data.value);
await event.emit("updateAchi", data.value.series); await event.emit("updateAchi", data.value.series);
showSnackbar.success(`已将成就 ${data.value.name}(${data.value.id}) 状态设为已完成`); showSnackbar.success(`已将成就 ${data.value.name}(${data.value.id}) 状态设为已完成`);
emits("update:modelValue", data.value); model.value = data.value;
} }
</script> </script>
<style lang="css" scoped> <style lang="css" scoped>

View File

@@ -55,32 +55,22 @@ import { computed, ref, watch } from "vue";
import TuaDetailCard from "./tua-detail-card.vue"; import TuaDetailCard from "./tua-detail-card.vue";
type TuaDetailOverlayProps = { type TuaDetailOverlayProps = {
modelValue: boolean;
avatar: TGApp.Sqlite.Character.UserRole; avatar: TGApp.Sqlite.Character.UserRole;
mode: "classic" | "card" | "dev";
avatars: Array<TGApp.Sqlite.Character.UserRole>; avatars: Array<TGApp.Sqlite.Character.UserRole>;
}; };
type TuaDetailOverlayEmits = { type TuaDetailOverlayEmits = {
(e: "update:modelValue", v: boolean): void;
(e: "update:mode", val: "classic" | "card" | "dev"): void;
(e: "toNext", val: boolean): void; (e: "toNext", val: boolean): void;
(e: "toAvatar", val: TGApp.Sqlite.Character.UserRole): void; (e: "toAvatar", val: TGApp.Sqlite.Character.UserRole): void;
}; };
const props = defineProps<TuaDetailOverlayProps>(); const props = defineProps<TuaDetailOverlayProps>();
const emits = defineEmits<TuaDetailOverlayEmits>(); const emits = defineEmits<TuaDetailOverlayEmits>();
const visible = defineModel<boolean>();
const modeTab = defineModel<"classic" | "card" | "dev">("mode");
const avatarTab = ref<number>(); const avatarTab = ref<number>();
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
const modeTab = computed<"classic" | "card" | "dev">({
get: () => props.mode,
set: (v) => emits("update:mode", v),
});
const avatarsWidth = computed<string>(() => { const avatarsWidth = computed<string>(() => {
switch (props.mode) { switch (modeTab.value) {
case "classic": case "classic":
return "500px"; return "500px";
case "card": case "card":

View File

@@ -27,18 +27,10 @@ import { AppCharacterData } from "@/data/index.js";
import { generateShareImg } from "@/utils/TGShare.js"; import { generateShareImg } from "@/utils/TGShare.js";
import { timestampToDate } from "@/utils/toolFunc.js"; import { timestampToDate } from "@/utils/toolFunc.js";
type TucOverlayProps = { type TucOverlayProps = { data: TGApp.Plugins.Hutao.Combat.Data | undefined };
modelValue: boolean;
data: TGApp.Plugins.Hutao.Combat.Data | undefined;
};
type TucOverlayEmits = (e: "update:modelValue", v: boolean) => void;
const props = defineProps<TucOverlayProps>(); const props = defineProps<TucOverlayProps>();
const emits = defineEmits<TucOverlayEmits>(); const visible = defineModel<boolean>();
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
const raw = computed<Array<TGApp.Plugins.Hutao.Base.Rate>>(() => { const raw = computed<Array<TGApp.Plugins.Hutao.Base.Rate>>(() => {
if (!props.data) return []; if (!props.data) return [];
const res = props.data.BackupAvatarRates; const res = props.data.BackupAvatarRates;

View File

@@ -60,33 +60,26 @@ import TGLogger from "@/utils/TGLogger.js";
import { timestampToDate } from "@/utils/toolFunc.js"; import { timestampToDate } from "@/utils/toolFunc.js";
import { getUigf4Header, getUigf4Item, readUigf4Data, verifyUigfData } from "@/utils/UIGF.js"; import { getUigf4Header, getUigf4Item, readUigf4Data, verifyUigfData } from "@/utils/UIGF.js";
type UgoUidProps = type UgoUidProps = { mode: "import" | "export" };
| { modelValue: boolean; mode: "export" }
| { modelValue: boolean; mode: "import" };
type UgoUidEmits = (e: "update:modelValue", v: boolean) => void;
type UgoUidItem = { uid: string; length: number; time: string }; type UgoUidItem = { uid: string; length: number; time: string };
const props = defineProps<UgoUidProps>(); const props = defineProps<UgoUidProps>();
const emits = defineEmits<UgoUidEmits>(); const visible = defineModel<boolean>();
const fp = ref<string>("未选择");
const dataRaw = shallowRef<TGApp.Plugins.UIGF.Schema4>(); const dataRaw = shallowRef<TGApp.Plugins.UIGF.Schema4>();
const data = shallowRef<Array<UgoUidItem>>([]); const data = shallowRef<Array<UgoUidItem>>([]);
const selectedData = shallowRef<Array<UgoUidItem>>([]); const selectedData = shallowRef<Array<UgoUidItem>>([]);
const title = computed<string>(() => (props.mode === "import" ? "导入" : "导出")); const title = computed<string>(() => (props.mode === "import" ? "导入" : "导出"));
const fp = ref<string>("未选择");
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
onMounted(async () => { onMounted(async () => {
if (props.mode === "export") fp.value = await getDefaultSavePath(); if (props.mode === "export") fp.value = await getDefaultSavePath();
}); });
watch( watch(
() => props.modelValue, () => visible.value,
async (v) => (v ? await refreshData() : undefined), async () => {
{ immediate: true }, if (visible.value) await refreshData();
},
); );
async function getDefaultSavePath(): Promise<string> { async function getDefaultSavePath(): Promise<string> {

View File

@@ -37,25 +37,24 @@ import TOverlay from "@comp/app/t-overlay.vue";
import showDialog from "@comp/func/dialog.js"; import showDialog from "@comp/func/dialog.js";
import showSnackbar from "@comp/func/snackbar.js"; import showSnackbar from "@comp/func/snackbar.js";
import TSUserCollection from "@Sqlite/modules/userCollect.js"; import TSUserCollection from "@Sqlite/modules/userCollect.js";
import { computed, ref, shallowRef, watch } from "vue"; import { ref, shallowRef, watch } from "vue";
type ToPostCollectProps = { modelValue: boolean; post?: TGApp.Plugins.Mys.Post.FullData }; type ToPostCollectProps = { post?: TGApp.Plugins.Mys.Post.FullData };
type ToPostCollectEmits = { (e: "update:modelValue", v: boolean): void; (e: "submit"): void }; type ToPostCollectEmits = (e: "submit") => void;
const props = defineProps<ToPostCollectProps>(); const props = defineProps<ToPostCollectProps>();
const emits = defineEmits<ToPostCollectEmits>(); const emits = defineEmits<ToPostCollectEmits>();
const visible = defineModel<boolean>();
const submit = ref<boolean>(false); const submit = ref<boolean>(false);
const collectList = shallowRef<Array<TGApp.Sqlite.UserCollection.UFCollection>>([]); const collectList = shallowRef<Array<TGApp.Sqlite.UserCollection.UFCollection>>([]);
const postCollect = shallowRef<Array<TGApp.Sqlite.UserCollection.UFMap>>([]); const postCollect = shallowRef<Array<TGApp.Sqlite.UserCollection.UFMap>>([]);
const selectList = shallowRef<Array<string>>([]); const selectList = shallowRef<Array<string>>([]);
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
watch( watch(
() => props.modelValue, () => visible.value,
async (v) => (v ? await freshData() : null), async () => {
if (visible.value) await freshData();
},
); );
async function freshData(): Promise<void> { async function freshData(): Promise<void> {

View File

@@ -49,13 +49,12 @@
import TOverlay from "@comp/app/t-overlay.vue"; import TOverlay from "@comp/app/t-overlay.vue";
import showSnackbar from "@comp/func/snackbar.js"; import showSnackbar from "@comp/func/snackbar.js";
import Mys from "@Mys/index.js"; import Mys from "@Mys/index.js";
import { computed, nextTick, onMounted, shallowRef, useTemplateRef, watch } from "vue"; import { nextTick, onMounted, shallowRef, useTemplateRef, watch } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { timestampToDate } from "@/utils/toolFunc.js"; import { timestampToDate } from "@/utils/toolFunc.js";
type TpoCollectionProps = { collection: TGApp.Plugins.Mys.Post.Collection; modelValue: boolean }; type TpoCollectionProps = { collection: TGApp.Plugins.Mys.Post.Collection };
type TpoCollectionEmits = (e: "update:modelValue", v: boolean) => void;
type TpoCollectionItem = { type TpoCollectionItem = {
postId: string; postId: string;
title: string; title: string;
@@ -64,15 +63,14 @@ type TpoCollectionItem = {
comments: number; comments: number;
likes: number; likes: number;
}; };
const router = useRouter(); const router = useRouter();
const props = defineProps<TpoCollectionProps>(); const props = defineProps<TpoCollectionProps>();
const emits = defineEmits<TpoCollectionEmits>(); const visible = defineModel<boolean>();
const postListEl = useTemplateRef<HTMLDivElement>("postListRef");
const posts = shallowRef<Array<TpoCollectionItem>>([]); const posts = shallowRef<Array<TpoCollectionItem>>([]);
const visible = computed<boolean>({ const postListEl = useTemplateRef<HTMLDivElement>("postListRef");
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
watch( watch(
() => [visible.value, posts.value], () => [visible.value, posts.value],
async () => { async () => {

View File

@@ -32,17 +32,13 @@ import type { TpImage } from "./tp-image.vue";
import { copyToClipboard, getImageBuffer, saveCanvasImg } from "@/utils/TGShare.js"; import { copyToClipboard, getImageBuffer, saveCanvasImg } from "@/utils/TGShare.js";
import { bytesToSize } from "@/utils/toolFunc.js"; import { bytesToSize } from "@/utils/toolFunc.js";
type TpoImageProps = { image: TpImage; modelValue: boolean }; type TpoImageProps = { image: TpImage };
type TpoImageEmits = (e: "update:modelValue", v: boolean) => void;
const props = defineProps<TpoImageProps>(); const props = defineProps<TpoImageProps>();
const emits = defineEmits<TpoImageEmits>(); const visible = defineModel<boolean>();
const bgMode = ref<number>(0); // 0: transparent, 1: black, 2: white const bgMode = ref<number>(0); // 0: transparent, 1: black, 2: white
const isOriSize = ref<boolean>(false); const isOriSize = ref<boolean>(false);
const buffer = shallowRef<Uint8Array | null>(null); const buffer = shallowRef<Uint8Array | null>(null);
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
const format = computed<string>(() => { const format = computed<string>(() => {
if (props.image.attributes?.ext) return props.image.attributes.ext; if (props.image.attributes?.ext) return props.image.attributes.ext;
const imageFormat = props.image.insert.image.split(".").pop(); const imageFormat = props.image.insert.image.split(".").pop();

View File

@@ -45,20 +45,17 @@
import TOverlay from "@comp/app/t-overlay.vue"; import TOverlay from "@comp/app/t-overlay.vue";
import showSnackbar from "@comp/func/snackbar.js"; import showSnackbar from "@comp/func/snackbar.js";
import Mys from "@Mys/index.js"; import Mys from "@Mys/index.js";
import { computed, onUnmounted, ref, shallowRef, watch } from "vue"; import { onUnmounted, ref, shallowRef, watch } from "vue";
type TpoLotteryProps = { lottery: string | undefined };
type TpoLotteryProps = { modelValue: boolean; lottery: string | undefined };
type TpoLotteryEmits = (e: "update:modelValue", v: boolean) => void;
const props = defineProps<TpoLotteryProps>(); const props = defineProps<TpoLotteryProps>();
const emits = defineEmits<TpoLotteryEmits>(); const visible = defineModel<boolean>();
const timeStatus = ref<string>("未知"); const timeStatus = ref<string>("未知");
const upWay = ref<string>("未知"); const upWay = ref<string>("未知");
const card = shallowRef<TGApp.Plugins.Mys.Lottery.RenderCard>(); const card = shallowRef<TGApp.Plugins.Mys.Lottery.RenderCard>();
const jsonData = shallowRef<TGApp.Plugins.Mys.Lottery.FullData>(); const jsonData = shallowRef<TGApp.Plugins.Mys.Lottery.FullData>();
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
let timer: NodeJS.Timeout | undefined = undefined; let timer: NodeJS.Timeout | undefined = undefined;

View File

@@ -21,39 +21,34 @@ import TOverlay from "@comp/app/t-overlay.vue";
import TPostCard from "@comp/app/t-postcard.vue"; import TPostCard from "@comp/app/t-postcard.vue";
import showSnackbar from "@comp/func/snackbar.js"; import showSnackbar from "@comp/func/snackbar.js";
import Mys from "@Mys/index.js"; import Mys from "@Mys/index.js";
import { computed, onMounted, ref, shallowRef, watch } from "vue"; import { onMounted, ref, shallowRef, watch } from "vue";
import { getGameName } from "@/utils/toolFunc.js"; import { getGameName } from "@/utils/toolFunc.js";
type ToPostSearchProps = { modelValue: boolean; gid: string; keyword?: string }; type ToPostSearchProps = { gid: string; keyword?: string };
type ToPostSearchEmits = (e: "update:modelValue", v: boolean) => void;
const props = defineProps<ToPostSearchProps>(); const props = defineProps<ToPostSearchProps>();
const emits = defineEmits<ToPostSearchEmits>(); const visible = defineModel<boolean>();
const search = ref<string>(); const search = ref<string>();
const lastId = ref<string>(""); const lastId = ref<string>("");
const game = ref<string>("2"); const game = ref<string>("2");
const isLast = ref<boolean>(false); const isLast = ref<boolean>(false);
const load = ref<boolean>(false); const load = ref<boolean>(false);
const results = shallowRef<Array<TGApp.Plugins.Mys.Post.FullData>>([]); const results = shallowRef<Array<TGApp.Plugins.Mys.Post.FullData>>([]);
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
onMounted(async () => { onMounted(async () => {
game.value = props.gid; game.value = props.gid;
if (props.keyword && props.keyword !== "") search.value = props.keyword; if (props.keyword && props.keyword !== "") search.value = props.keyword;
if (props.modelValue) await searchPosts(); if (visible.value) await searchPosts();
}); });
watch( watch(
() => props.modelValue, () => visible.value,
async () => { async () => {
if (props.modelValue && results.value.length === 0) { if (visible.value && results.value.length === 0) {
await searchPosts(); await searchPosts();
return; return;
} }
visible.value = props.modelValue;
}, },
); );
@@ -69,7 +64,7 @@ watch(
results.value = []; results.value = [];
lastId.value = ""; lastId.value = "";
isLast.value = false; isLast.value = false;
if (props.modelValue) await searchPosts(); if (visible.value) await searchPosts();
} }
}, },
); );

View File

@@ -17,23 +17,15 @@ import TOverlay from "@comp/app/t-overlay.vue";
import showSnackbar from "@comp/func/snackbar.js"; import showSnackbar from "@comp/func/snackbar.js";
import { open } from "@tauri-apps/plugin-dialog"; import { open } from "@tauri-apps/plugin-dialog";
import { readTextFile } from "@tauri-apps/plugin-fs"; import { readTextFile } from "@tauri-apps/plugin-fs";
import { computed, ref, shallowRef } from "vue"; import { ref, shallowRef } from "vue";
import TprReply from "./vp-reply-item.vue"; import TprReply from "./vp-reply-item.vue";
import TGLogger from "@/utils/TGLogger.js"; import TGLogger from "@/utils/TGLogger.js";
type TprDebugProps = { modelValue: boolean }; const visible = defineModel<boolean>();
type TprDebugEmits = (e: "update:modelValue", v: boolean) => void;
const props = defineProps<TprDebugProps>();
const emits = defineEmits<TprDebugEmits>();
const filePath = ref<string>(""); const filePath = ref<string>("");
const replyData = shallowRef<TGApp.Plugins.Mys.Reply.ReplyFull | null>(null); const replyData = shallowRef<TGApp.Plugins.Mys.Reply.ReplyFull | null>(null);
const visible = computed<boolean>({
get: () => props.modelValue,
set: (v) => emits("update:modelValue", v),
});
async function selectFile(): Promise<void> { async function selectFile(): Promise<void> {
const file = await open({ const file = await open({

View File

@@ -67,7 +67,7 @@ function switchW(item: TGApp.App.Weapon.WikiBriefInfo): void {
} }
function handleSelectW(val: SelectedWValue) { function handleSelectW(val: SelectedWValue) {
showSelect.value = true; if (!val.isReset) showSelect.value = true;
const filterW = AppWeaponData.filter((item) => { const filterW = AppWeaponData.filter((item) => {
if (!val.star.includes(item.star)) return false; if (!val.star.includes(item.star)) return false;
return val.weapon.includes(item.weapon); return val.weapon.includes(item.weapon);