update
This commit is contained in:
parent
ed6bf05a59
commit
1ac7b925a2
@ -14,6 +14,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@tauri-apps/plugin-fs": "~2",
|
||||
"@tauri-apps/plugin-http": "~2",
|
||||
"file-saver": "^2.0.5",
|
||||
"fp-ts": "^2.16.9",
|
||||
"pinia": "^2.3.0",
|
||||
|
||||
368
src-tauri/Cargo.lock
generated
368
src-tauri/Cargo.lock
generated
@ -100,6 +100,7 @@ dependencies = [
|
||||
"tauri",
|
||||
"tauri-build",
|
||||
"tauri-plugin-fs",
|
||||
"tauri-plugin-http",
|
||||
"tauri-plugin-log",
|
||||
]
|
||||
|
||||
@ -132,6 +133,12 @@ dependencies = [
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "atomic-waker"
|
||||
version = "1.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
|
||||
|
||||
[[package]]
|
||||
name = "autocfg"
|
||||
version = "1.4.0"
|
||||
@ -464,7 +471,7 @@ dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"block",
|
||||
"cocoa-foundation",
|
||||
"core-foundation",
|
||||
"core-foundation 0.10.0",
|
||||
"core-graphics",
|
||||
"foreign-types",
|
||||
"libc",
|
||||
@ -479,7 +486,7 @@ checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"block",
|
||||
"core-foundation",
|
||||
"core-foundation 0.10.0",
|
||||
"core-graphics-types",
|
||||
"libc",
|
||||
"objc",
|
||||
@ -507,10 +514,39 @@ version = "0.18.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747"
|
||||
dependencies = [
|
||||
"percent-encoding",
|
||||
"time",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cookie_store"
|
||||
version = "0.21.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2eac901828f88a5241ee0600950ab981148a18f2f756900ffba1b125ca6a3ef9"
|
||||
dependencies = [
|
||||
"cookie",
|
||||
"document-features",
|
||||
"idna",
|
||||
"log",
|
||||
"publicsuffix",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"serde_json",
|
||||
"time",
|
||||
"url",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation"
|
||||
version = "0.9.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
|
||||
dependencies = [
|
||||
"core-foundation-sys",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation"
|
||||
version = "0.10.0"
|
||||
@ -534,7 +570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"core-foundation",
|
||||
"core-foundation 0.10.0",
|
||||
"core-graphics-types",
|
||||
"foreign-types",
|
||||
"libc",
|
||||
@ -547,7 +583,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"core-foundation",
|
||||
"core-foundation 0.10.0",
|
||||
"libc",
|
||||
]
|
||||
|
||||
@ -666,6 +702,12 @@ dependencies = [
|
||||
"syn 2.0.94",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "data-url"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
|
||||
|
||||
[[package]]
|
||||
name = "deranged"
|
||||
version = "0.3.11"
|
||||
@ -760,6 +802,15 @@ dependencies = [
|
||||
"syn 2.0.94",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "document-features"
|
||||
version = "0.2.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0"
|
||||
dependencies = [
|
||||
"litrs",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "dpi"
|
||||
version = "0.1.1"
|
||||
@ -816,6 +867,15 @@ version = "1.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
|
||||
|
||||
[[package]]
|
||||
name = "encoding_rs"
|
||||
version = "0.8.35"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "env_filter"
|
||||
version = "0.1.3"
|
||||
@ -1146,8 +1206,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"js-sys",
|
||||
"libc",
|
||||
"wasi 0.11.0+wasi-snapshot-preview1",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -1304,6 +1366,25 @@ dependencies = [
|
||||
"syn 2.0.94",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "h2"
|
||||
version = "0.4.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e"
|
||||
dependencies = [
|
||||
"atomic-waker",
|
||||
"bytes",
|
||||
"fnv",
|
||||
"futures-core",
|
||||
"futures-sink",
|
||||
"http",
|
||||
"indexmap 2.7.0",
|
||||
"slab",
|
||||
"tokio",
|
||||
"tokio-util",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
version = "0.12.3"
|
||||
@ -1400,6 +1481,7 @@ dependencies = [
|
||||
"bytes",
|
||||
"futures-channel",
|
||||
"futures-util",
|
||||
"h2",
|
||||
"http",
|
||||
"http-body",
|
||||
"httparse",
|
||||
@ -1410,6 +1492,24 @@ dependencies = [
|
||||
"want",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hyper-rustls"
|
||||
version = "0.27.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2"
|
||||
dependencies = [
|
||||
"futures-util",
|
||||
"http",
|
||||
"hyper",
|
||||
"hyper-util",
|
||||
"rustls",
|
||||
"rustls-pki-types",
|
||||
"tokio",
|
||||
"tokio-rustls",
|
||||
"tower-service",
|
||||
"webpki-roots",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hyper-util"
|
||||
version = "0.1.10"
|
||||
@ -1819,6 +1919,12 @@ version = "0.7.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104"
|
||||
|
||||
[[package]]
|
||||
name = "litrs"
|
||||
version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5"
|
||||
|
||||
[[package]]
|
||||
name = "lock_api"
|
||||
version = "0.4.12"
|
||||
@ -2582,6 +2688,12 @@ dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "psl-types"
|
||||
version = "2.0.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac"
|
||||
|
||||
[[package]]
|
||||
name = "ptr_meta"
|
||||
version = "0.1.4"
|
||||
@ -2602,6 +2714,16 @@ dependencies = [
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "publicsuffix"
|
||||
version = "2.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6f42ea446cab60335f76979ec15e12619a2165b5ae2c12166bef27d283a9fadf"
|
||||
dependencies = [
|
||||
"idna",
|
||||
"psl-types",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quick-xml"
|
||||
version = "0.32.0"
|
||||
@ -2611,6 +2733,58 @@ dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quinn"
|
||||
version = "0.11.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"pin-project-lite",
|
||||
"quinn-proto",
|
||||
"quinn-udp",
|
||||
"rustc-hash",
|
||||
"rustls",
|
||||
"socket2",
|
||||
"thiserror 2.0.9",
|
||||
"tokio",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quinn-proto"
|
||||
version = "0.11.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"getrandom 0.2.15",
|
||||
"rand 0.8.5",
|
||||
"ring",
|
||||
"rustc-hash",
|
||||
"rustls",
|
||||
"rustls-pki-types",
|
||||
"slab",
|
||||
"thiserror 2.0.9",
|
||||
"tinyvec",
|
||||
"tracing",
|
||||
"web-time",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quinn-udp"
|
||||
version = "0.5.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904"
|
||||
dependencies = [
|
||||
"cfg_aliases 0.2.1",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"socket2",
|
||||
"tracing",
|
||||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.38"
|
||||
@ -2779,12 +2953,17 @@ checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da"
|
||||
dependencies = [
|
||||
"base64 0.22.1",
|
||||
"bytes",
|
||||
"cookie",
|
||||
"cookie_store",
|
||||
"encoding_rs",
|
||||
"futures-core",
|
||||
"futures-util",
|
||||
"h2",
|
||||
"http",
|
||||
"http-body",
|
||||
"http-body-util",
|
||||
"hyper",
|
||||
"hyper-rustls",
|
||||
"hyper-util",
|
||||
"ipnet",
|
||||
"js-sys",
|
||||
@ -2793,11 +2972,17 @@ dependencies = [
|
||||
"once_cell",
|
||||
"percent-encoding",
|
||||
"pin-project-lite",
|
||||
"quinn",
|
||||
"rustls",
|
||||
"rustls-pemfile",
|
||||
"rustls-pki-types",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serde_urlencoded",
|
||||
"sync_wrapper",
|
||||
"system-configuration",
|
||||
"tokio",
|
||||
"tokio-rustls",
|
||||
"tokio-util",
|
||||
"tower",
|
||||
"tower-service",
|
||||
@ -2806,9 +2991,25 @@ dependencies = [
|
||||
"wasm-bindgen-futures",
|
||||
"wasm-streams",
|
||||
"web-sys",
|
||||
"webpki-roots",
|
||||
"windows-registry",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ring"
|
||||
version = "0.17.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"cfg-if",
|
||||
"getrandom 0.2.15",
|
||||
"libc",
|
||||
"spin",
|
||||
"untrusted",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rkyv"
|
||||
version = "0.7.45"
|
||||
@ -2860,6 +3061,12 @@ version = "0.1.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
|
||||
|
||||
[[package]]
|
||||
name = "rustc-hash"
|
||||
version = "2.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497"
|
||||
|
||||
[[package]]
|
||||
name = "rustc_version"
|
||||
version = "0.4.1"
|
||||
@ -2869,6 +3076,49 @@ dependencies = [
|
||||
"semver",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustls"
|
||||
version = "0.23.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"ring",
|
||||
"rustls-pki-types",
|
||||
"rustls-webpki",
|
||||
"subtle",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustls-pemfile"
|
||||
version = "2.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50"
|
||||
dependencies = [
|
||||
"rustls-pki-types",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustls-pki-types"
|
||||
version = "1.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37"
|
||||
dependencies = [
|
||||
"web-time",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustls-webpki"
|
||||
version = "0.102.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9"
|
||||
dependencies = [
|
||||
"ring",
|
||||
"rustls-pki-types",
|
||||
"untrusted",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ryu"
|
||||
version = "1.0.18"
|
||||
@ -3208,6 +3458,12 @@ dependencies = [
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "spin"
|
||||
version = "0.9.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
|
||||
|
||||
[[package]]
|
||||
name = "stable_deref_trait"
|
||||
version = "1.2.0"
|
||||
@ -3246,6 +3502,12 @@ version = "0.11.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
||||
|
||||
[[package]]
|
||||
name = "subtle"
|
||||
version = "2.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
||||
|
||||
[[package]]
|
||||
name = "swift-rs"
|
||||
version = "1.0.7"
|
||||
@ -3311,6 +3573,27 @@ dependencies = [
|
||||
"syn 2.0.94",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "system-configuration"
|
||||
version = "0.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"core-foundation 0.9.4",
|
||||
"system-configuration-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "system-configuration-sys"
|
||||
version = "0.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
|
||||
dependencies = [
|
||||
"core-foundation-sys",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "system-deps"
|
||||
version = "6.2.2"
|
||||
@ -3332,7 +3615,7 @@ checksum = "cc6b53216f32e60efc27dfa111268481e4dfba53e553e4cdebcaed9db36c11bb"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"cocoa",
|
||||
"core-foundation",
|
||||
"core-foundation 0.10.0",
|
||||
"core-graphics",
|
||||
"crossbeam-channel",
|
||||
"dispatch",
|
||||
@ -3538,6 +3821,28 @@ dependencies = [
|
||||
"uuid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tauri-plugin-http"
|
||||
version = "2.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e62a9bde54d6a0218b63f5a248f02056ad4316ba6ad81dfb9e4f73715df5deb1"
|
||||
dependencies = [
|
||||
"data-url",
|
||||
"http",
|
||||
"regex",
|
||||
"reqwest",
|
||||
"schemars",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tauri",
|
||||
"tauri-plugin",
|
||||
"tauri-plugin-fs",
|
||||
"thiserror 2.0.9",
|
||||
"tokio",
|
||||
"url",
|
||||
"urlpattern",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tauri-plugin-log"
|
||||
version = "2.2.0"
|
||||
@ -3779,9 +4084,31 @@ dependencies = [
|
||||
"mio",
|
||||
"pin-project-lite",
|
||||
"socket2",
|
||||
"tokio-macros",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tokio-macros"
|
||||
version = "2.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.94",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tokio-rustls"
|
||||
version = "0.26.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37"
|
||||
dependencies = [
|
||||
"rustls",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tokio-util"
|
||||
version = "0.7.13"
|
||||
@ -3992,6 +4319,12 @@ version = "1.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
|
||||
|
||||
[[package]]
|
||||
name = "untrusted"
|
||||
version = "0.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
|
||||
|
||||
[[package]]
|
||||
name = "url"
|
||||
version = "2.5.4"
|
||||
@ -4209,6 +4542,16 @@ dependencies = [
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "web-time"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
|
||||
dependencies = [
|
||||
"js-sys",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "webkit2gtk"
|
||||
version = "2.0.1"
|
||||
@ -4253,6 +4596,15 @@ dependencies = [
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "webpki-roots"
|
||||
version = "0.26.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e"
|
||||
dependencies = [
|
||||
"rustls-pki-types",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "webview2-com"
|
||||
version = "0.34.0"
|
||||
@ -4811,6 +5163,12 @@ dependencies = [
|
||||
"synstructure",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zeroize"
|
||||
version = "1.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
|
||||
|
||||
[[package]]
|
||||
name = "zerovec"
|
||||
version = "0.10.4"
|
||||
|
||||
@ -24,3 +24,4 @@ log = "0.4"
|
||||
tauri = { version = "2.2.0", features = [] }
|
||||
tauri-plugin-log = "2.0.0-rc"
|
||||
tauri-plugin-fs = "2"
|
||||
tauri-plugin-http = "2"
|
||||
|
||||
@ -10,11 +10,26 @@
|
||||
"fs:default",
|
||||
{
|
||||
"identifier": "fs:scope",
|
||||
"allow": [{ "path": "$DOCUMENT/My Games/Path of Exile 2" }, { "path": "$DOCUMENT/My Games/Path of Exile 2/**" }]
|
||||
"allow": [
|
||||
{
|
||||
"path": "$DOCUMENT/My Games/Path of Exile 2"
|
||||
},
|
||||
{
|
||||
"path": "$DOCUMENT/My Games/Path of Exile 2/**"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "fs:allow-write-text-file",
|
||||
"allow": [ { "path": "$DOCUMENT/My Games/Path of Exile 2/*" }]
|
||||
"allow": [
|
||||
{
|
||||
"path": "$DOCUMENT/My Games/Path of Exile 2/*"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "http:default",
|
||||
"allow": [{ "url": "https://raw.githubusercontent.com/NeverSinkDev/NeverSink-PoE2litefilter/refs/heads/main/NeverSinks%20Litefilter.filter" }]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,6 +1,7 @@
|
||||
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
||||
pub fn run() {
|
||||
tauri::Builder::default()
|
||||
.plugin(tauri_plugin_http::init())
|
||||
.plugin(tauri_plugin_fs::init())
|
||||
.setup(|app| {
|
||||
if cfg!(debug_assertions) {
|
||||
|
||||
16
src/App.vue
16
src/App.vue
@ -7,6 +7,7 @@ import { computed, ref, toRaw, watch } from 'vue'
|
||||
import { generateFilterText, type Filter, type FilterConfig, type FilterNode } from './models'
|
||||
import { filterToTreeNode, treeNodeToFilter } from './services/filter'
|
||||
import { BaseDirectory, writeTextFile, lstat, readDir, readTextFile } from '@tauri-apps/plugin-fs';
|
||||
import { fetch } from '@tauri-apps/plugin-http';
|
||||
|
||||
const darkMode = ref(document.documentElement.classList.contains('dark'))
|
||||
|
||||
@ -45,10 +46,10 @@ const FILTER_SUFFIX = 'filter'
|
||||
const BASE_DIR = BaseDirectory.Document
|
||||
|
||||
async function save(toastOnComplete?: boolean) {
|
||||
if (nodes.value && !!filterName.value) {
|
||||
if (nodes.value && !!filterName.value && !!neversinkBaseFilter.value) {
|
||||
const filters = toRaw(nodes.value).map(treeNodeToFilter)
|
||||
|
||||
let text = generateFilterText(filters)
|
||||
let text = neversinkBaseFilter.value + "\n\n" + generateFilterText(filters)
|
||||
await Promise.all([writeTextFile(`${POE2_FOLDER}/${PREFIX} ${filterName.value}.${CONFIG_SUFFIX}`, JSON.stringify({ filters }, null, 2), {
|
||||
baseDir: BASE_DIR,
|
||||
}), writeTextFile(`${POE2_FOLDER}/${PREFIX} ${filterName.value}.${FILTER_SUFFIX}`, text, {
|
||||
@ -114,6 +115,17 @@ const loadName = ref()
|
||||
const saveName = ref()
|
||||
|
||||
const overwrite = computed(() => filterNames.value.includes(saveName.value))
|
||||
|
||||
const neversinkBaseFilter = ref("")
|
||||
|
||||
async function fetchBaseFilter() {
|
||||
const response = await fetch('https://raw.githubusercontent.com/NeverSinkDev/NeverSink-PoE2litefilter/refs/heads/main/NeverSinks%20Litefilter.filter', {
|
||||
method: 'GET',
|
||||
});
|
||||
neversinkBaseFilter.value = await response.text()
|
||||
}
|
||||
fetchBaseFilter();
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
<script setup lang="ts">
|
||||
import { toDisplayLines, type Filter, type FilterNode, type FilterRule } from '@/models';
|
||||
import { toDisplayLines, type Filter, type FilterNode, type FilterRule, type GameColor, type Shape } from '@/models';
|
||||
import { computed, ref, watchEffect } from 'vue'
|
||||
import { Button, ColorPicker, ScrollPanel, Tabs, Tab, TabPanels, TabList, TabPanel, ToggleButton, InputText, InputNumber, Select, ToggleSwitch, MultiSelect } from 'primevue'
|
||||
import { useConfirm } from "primevue/useconfirm";
|
||||
import { useToast } from "primevue/usetoast";
|
||||
import RuleLine from './RuleLine.vue'
|
||||
import { CLASSES, COLORS, BASE_TYPES, RARITIES, SHAPES, OPERATORS, ARMOUR_TYPES } from '@/models/settings';
|
||||
|
||||
const confirm = useConfirm();
|
||||
@ -128,247 +129,99 @@ function mergeLookup([childValue, childLookup]: any, [parentValue, parentLookup]
|
||||
<col class="w-full">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
Class
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].class != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.class != undefined"
|
||||
@update:model-value="filter.rule.class = $event ? [] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11">
|
||||
<MultiSelect v-if="ruleWithLookup[1].class != 'inherit' && filter.rule.class"
|
||||
v-model="filter.rule.class" display="chip" :options="CLASSES.slice()" filter
|
||||
placeholder="Select Classes" class="w-full" :maxSelectedLabels=3 fluid />
|
||||
<RuleLine v-slot="slotProps" title="Class" :inherit-value="ruleWithLookup[0].class"
|
||||
:inherit="ruleWithLookup[1].class == 'inherit'" :default-value="[]" v-model="filter.rule.class">
|
||||
<MultiSelect v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value"
|
||||
@update:model-value="filter.rule.class = $event" display="chip" :options="CLASSES.slice()" filter
|
||||
placeholder="Select Classes" class="w-full" :maxSelectedLabels=3 fluid />
|
||||
</RuleLine>
|
||||
<RuleLine v-slot="slotProps" title="BaseType" :inherit-value="ruleWithLookup[0].base_type"
|
||||
:inherit="ruleWithLookup[1].base_type == 'inherit'" :default-value="[]" v-model="filter.rule.base_type">
|
||||
<MultiSelect v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value"
|
||||
@update:model-value="filter.rule.base_type = $event" display="chip" :options="BASE_TYPES.slice()"
|
||||
filter placeholder="Select Base Types" class="w-full" :maxSelectedLabels=3 fluid />
|
||||
</RuleLine>
|
||||
<RuleLine v-if="filter.type === 'leaf'" title="ArmourType" :default-value="[]" :inherit="false"
|
||||
:inherit-value="undefined" v-model="filter.leafRule.armour_type" v-slot="slotProps">
|
||||
<MultiSelect v-if="slotProps.value" v-model="filter.leafRule.armour_type" display="chip"
|
||||
:options="ARMOUR_TYPES.slice()" filter placeholder="Select Armour Types" class="w-full"
|
||||
:maxSelectedLabels=3 fluid />
|
||||
</RuleLine>
|
||||
<RuleLine title="Rarity" :default-value="['=', 'Normal']" :inherit="ruleWithLookup[1].rarity == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].rarity" v-model="filter.rule.rarity" v-slot="slotProps">
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value[0]"
|
||||
@update:model-value="filter.rule.rarity![0] = $event" :options="OPERATORS.slice()" />
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value[1]"
|
||||
@update:model-value="filter.rule.rarity![1] = $event" :options="RARITIES.slice()" />
|
||||
</RuleLine>
|
||||
<RuleLine title="Sockets" :default-value="['>', 0]" :inherit="ruleWithLookup[1].sockets == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].sockets" v-model="filter.rule.sockets" v-slot="slotProps">
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value[0]"
|
||||
@update:model-value="filter.rule.sockets![0] = $event" :options="OPERATORS.slice()" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value[1] as number" @update:model-value="filter.rule.sockets![1] = $event"
|
||||
:min="0" />
|
||||
</RuleLine>
|
||||
<RuleLine title="Quality" :default-value="['>', 0]" :inherit="ruleWithLookup[1].quality == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].quality" v-model="filter.rule.quality" v-slot="slotProps">
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value[0]"
|
||||
@update:model-value="filter.rule.quality![0] = $event" :options="OPERATORS.slice()" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value[1] as number" @update:model-value="filter.rule.quality![1] = $event"
|
||||
:min="0" />
|
||||
</RuleLine>
|
||||
<RuleLine title="StackSize" :default-value="['>', 0]" :inherit="ruleWithLookup[1].stack_size == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].stack_size" v-model="filter.rule.stack_size" v-slot="slotProps">
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value[0]"
|
||||
@update:model-value="filter.rule.stack_size![0] = $event" :options="OPERATORS.slice()" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value[1] as number" @update:model-value="filter.rule.stack_size![1] = $event"
|
||||
:min="0" />
|
||||
</RuleLine>
|
||||
<RuleLine title="AreaLevel" :default-value="['>', 0]" :inherit="ruleWithLookup[1].area_level == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].area_level" v-model="filter.rule.area_level" v-slot="slotProps">
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value[0]"
|
||||
@update:model-value="filter.rule.area_level![0] = $event" :options="OPERATORS.slice()" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value[1] as number" @update:model-value="filter.rule.area_level![1] = $event"
|
||||
:min="0" />
|
||||
</RuleLine>
|
||||
<RuleLine title="DropLevel" :default-value="['>', 0]" :inherit="ruleWithLookup[1].drop_level == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].drop_level" v-model="filter.rule.drop_level" v-slot="slotProps">
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value[0]"
|
||||
@update:model-value="filter.rule.drop_level![0] = $event" :options="OPERATORS.slice()" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value[1] as number" @update:model-value="filter.rule.drop_level![1] = $event"
|
||||
:min="0" />
|
||||
</RuleLine>
|
||||
<RuleLine title="ItemLevel" :default-value="['>', 0]" :inherit="ruleWithLookup[1].item_level == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].item_level" v-model="filter.rule.item_level" v-slot="slotProps">
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value[0]"
|
||||
@update:model-value="filter.rule.item_level![0] = $event" :options="OPERATORS.slice()" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value[1] as number" @update:model-value="filter.rule.item_level![1] = $event"
|
||||
:min="0" />
|
||||
</RuleLine>
|
||||
<RuleLine v-if="filter.type === 'leaf'" title="(Area - Drop)Level" :default-value="['>', 0]"
|
||||
:inherit="false" :inherit-value="undefined" v-model="filter.leafRule.area_minus_drop_level"
|
||||
v-slot="slotProps">
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value[0]"
|
||||
@update:model-value="filter.leafRule.area_minus_drop_level![0] = $event"
|
||||
:options="OPERATORS.slice()" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value[1] as number"
|
||||
@update:model-value="filter.leafRule.area_minus_drop_level![1] = $event" :min="0" />
|
||||
</RuleLine>
|
||||
|
||||
<MultiSelect disabled v-if="ruleWithLookup[1].class == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].class" display="chip" :options="CLASSES.slice()" filter
|
||||
placeholder="Select Classes" class="w-full" :maxSelectedLabels=3 fluid />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
BaseType
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].base_type != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.base_type != undefined"
|
||||
@update:model-value="filter.rule.base_type = $event ? [] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11">
|
||||
<MultiSelect v-if="ruleWithLookup[1].base_type != 'inherit' && filter.rule.base_type"
|
||||
v-model="filter.rule.base_type" display="chip" :options="BASE_TYPES.slice()" filter
|
||||
placeholder="Select Base Types" class="w-full" :maxSelectedLabels=3 fluid />
|
||||
<MultiSelect disabled v-if="ruleWithLookup[1].base_type == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].base_type" display="chip" :options="BASE_TYPES.slice()" filter
|
||||
placeholder="Select Base Types" class="w-full" :maxSelectedLabels=3 fluid />
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="filter.type === 'leaf'">
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
ArmourType
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch class="align-middle" :model-value="filter.leafRule.armour_type != undefined"
|
||||
@update:model-value="filter.leafRule.armour_type = $event ? [] : undefined" />
|
||||
</td>
|
||||
<td class="h-11">
|
||||
<MultiSelect v-if="filter.leafRule.armour_type" v-model="filter.leafRule.armour_type" display="chip"
|
||||
:options="ARMOUR_TYPES.slice()" filter placeholder="Select Base Types" class="w-full"
|
||||
:maxSelectedLabels=3 fluid />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
Rarity
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].rarity != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.rarity != undefined"
|
||||
@update:model-value="filter.rule.rarity = $event ? ['=', 'Normal'] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<Select v-if="ruleWithLookup[1].rarity != 'inherit' && filter.rule.rarity"
|
||||
v-model="filter.rule.rarity[0]" :options="OPERATORS.slice()" />
|
||||
<Select v-if="ruleWithLookup[1].rarity != 'inherit' && filter.rule.rarity"
|
||||
v-model="filter.rule.rarity[1]" :options="RARITIES.slice()" />
|
||||
<Select disabled v-if="ruleWithLookup[1].rarity == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].rarity![0]" :options="OPERATORS.slice()" />
|
||||
<Select disabled v-if="ruleWithLookup[1].rarity == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].rarity![1]" :options="RARITIES.slice()" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
Sockets
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].sockets != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.sockets != undefined"
|
||||
@update:model-value="filter.rule.sockets = $event ? ['>', 0] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<Select v-if="ruleWithLookup[1].sockets != 'inherit' && filter.rule.sockets"
|
||||
v-model="filter.rule.sockets[0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber class="w-16" fluid v-if="ruleWithLookup[1].sockets != 'inherit' && filter.rule.sockets"
|
||||
v-model="filter.rule.sockets[1]" />
|
||||
<Select disabled v-if="ruleWithLookup[1].sockets == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].sockets![0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber disabled class="w-16" fluid v-if="ruleWithLookup[1].sockets == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].sockets![1]" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
Quality
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].quality != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.quality != undefined"
|
||||
@update:model-value="filter.rule.quality = $event ? ['>', 0] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<Select v-if="ruleWithLookup[1].quality != 'inherit' && filter.rule.quality"
|
||||
v-model="filter.rule.quality[0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber class="w-16" fluid v-if="ruleWithLookup[1].quality != 'inherit' && filter.rule.quality"
|
||||
v-model="filter.rule.quality[1]" />
|
||||
<Select disabled v-if="ruleWithLookup[1].quality == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].quality![0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber disabled class="w-16" fluid v-if="ruleWithLookup[1].quality == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].quality![1]" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
StackSize
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].stack_size != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.stack_size != undefined"
|
||||
@update:model-value="filter.rule.stack_size = $event ? ['>', 0] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<Select v-if="ruleWithLookup[1].stack_size != 'inherit' && filter.rule.stack_size"
|
||||
v-model="filter.rule.stack_size[0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber class="w-16" fluid
|
||||
v-if="ruleWithLookup[1].stack_size != 'inherit' && filter.rule.stack_size"
|
||||
v-model="filter.rule.stack_size[1]" />
|
||||
<Select disabled v-if="ruleWithLookup[1].stack_size == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].stack_size![0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber disabled class="w-16" fluid v-if="ruleWithLookup[1].stack_size == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].stack_size![1]" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
AreaLevel
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].area_level != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.area_level != undefined"
|
||||
@update:model-value="filter.rule.area_level = $event ? ['>', 0] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<Select v-if="ruleWithLookup[1].area_level != 'inherit' && filter.rule.area_level"
|
||||
v-model="filter.rule.area_level[0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber class="w-16" fluid
|
||||
v-if="ruleWithLookup[1].area_level != 'inherit' && filter.rule.area_level"
|
||||
v-model="filter.rule.area_level[1]" />
|
||||
<Select disabled v-if="ruleWithLookup[1].area_level == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].area_level![0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber disabled class="w-16" fluid v-if="ruleWithLookup[1].area_level == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].area_level![1]" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
DropLevel
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].drop_level != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.drop_level != undefined"
|
||||
@update:model-value="filter.rule.drop_level = $event ? ['>', 0] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<Select v-if="ruleWithLookup[1].drop_level != 'inherit' && filter.rule.drop_level"
|
||||
v-model="filter.rule.drop_level[0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber class="w-16" fluid
|
||||
v-if="ruleWithLookup[1].drop_level != 'inherit' && filter.rule.drop_level"
|
||||
v-model="filter.rule.drop_level[1]" />
|
||||
<Select disabled v-if="ruleWithLookup[1].drop_level == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].drop_level![0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber disabled class="w-16" fluid v-if="ruleWithLookup[1].drop_level == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].drop_level![1]" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
ItemLevel
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].item_level != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.item_level != undefined"
|
||||
@update:model-value="filter.rule.item_level = $event ? ['>', 0] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<Select v-if="ruleWithLookup[1].item_level != 'inherit' && filter.rule.item_level"
|
||||
v-model="filter.rule.item_level[0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber class="w-16" fluid
|
||||
v-if="ruleWithLookup[1].item_level != 'inherit' && filter.rule.item_level"
|
||||
v-model="filter.rule.item_level[1]" />
|
||||
<Select disabled v-if="ruleWithLookup[1].item_level == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].item_level![0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber disabled class="w-16" fluid v-if="ruleWithLookup[1].item_level == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].item_level![1]" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="filter.type === 'leaf'">
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
(Area - Drop)Level
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch class="align-middle" :model-value="filter.leafRule.area_minus_drop_level != undefined"
|
||||
@update:model-value="filter.leafRule.area_minus_drop_level = $event ? ['>', 0] : undefined" />
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<Select v-if="filter.leafRule.area_minus_drop_level"
|
||||
v-model="filter.leafRule.area_minus_drop_level[0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber class="w-16" fluid v-if="filter.leafRule.area_minus_drop_level"
|
||||
v-model="filter.leafRule.area_minus_drop_level[1]" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
WaystoneTier
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].waystone_tier != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.waystone_tier != undefined"
|
||||
@update:model-value="filter.rule.waystone_tier = $event ? ['>', 0] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<Select v-if="ruleWithLookup[1].waystone_tier != 'inherit' && filter.rule.waystone_tier"
|
||||
v-model="filter.rule.waystone_tier[0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber class="w-16" fluid
|
||||
v-if="ruleWithLookup[1].waystone_tier != 'inherit' && filter.rule.waystone_tier"
|
||||
v-model="filter.rule.waystone_tier[1]" />
|
||||
<Select disabled v-if="ruleWithLookup[1].waystone_tier == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].waystone_tier![0]" :options="OPERATORS.slice()" />
|
||||
<InputNumber disabled class="w-16" fluid v-if="ruleWithLookup[1].waystone_tier == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].waystone_tier![1]" />
|
||||
</td>
|
||||
</tr>
|
||||
<RuleLine title="WaystoneTier" :default-value="['>', 0]"
|
||||
:inherit="ruleWithLookup[1].waystone_tier == 'inherit'" :inherit-value="ruleWithLookup[0].waystone_tier"
|
||||
v-model="filter.rule.waystone_tier" v-slot="slotProps">
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value[0]"
|
||||
@update:model-value="filter.rule.waystone_tier![0] = $event" :options="OPERATORS.slice()" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value[1] as number"
|
||||
@update:model-value="filter.rule.waystone_tier![1] = $event" :min="0" />
|
||||
</RuleLine>
|
||||
</tbody>
|
||||
</table>
|
||||
</TabPanel>
|
||||
@ -381,148 +234,94 @@ function mergeLookup([childValue, childLookup]: any, [parentValue, parentLookup]
|
||||
<col class="w-full">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
SetFontSize
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].set_font_size != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.set_font_size != undefined"
|
||||
@update:model-value="filter.rule.set_font_size = $event ? 40 : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11">
|
||||
<InputNumber class="w-16" fluid
|
||||
v-if="ruleWithLookup[1].set_font_size != 'inherit' && filter.rule.set_font_size"
|
||||
v-model="filter.rule.set_font_size" />
|
||||
<RuleLine title="SetFontSize" :default-value="33" :inherit="ruleWithLookup[1].set_font_size == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].set_font_size" v-model="filter.rule.set_font_size" v-slot="slotProps">
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value" @update:model-value="filter.rule.set_font_size = $event" :min="1"
|
||||
:max="45" />
|
||||
</RuleLine>
|
||||
<RuleLine title="SetTextColor" :default-value="{ r: 0, g: 0, b: 0, a: 0 }"
|
||||
:inherit="ruleWithLookup[1].set_text_color == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].set_text_color" v-model="filter.rule.set_text_color"
|
||||
v-slot="slotProps">
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.r" @update:model-value="filter.rule.set_text_color!.r = $event" :min="0"
|
||||
:max="255" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.g" @update:model-value="filter.rule.set_text_color!.g = $event" :min="0"
|
||||
:max="255" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.b" @update:model-value="filter.rule.set_text_color!.b = $event" :min="0"
|
||||
:max="255" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.a" @update:model-value="filter.rule.set_text_color!.a = $event" :min="0"
|
||||
:max="255" />
|
||||
</RuleLine>
|
||||
|
||||
<InputNumber class="w-16" fluid disabled v-if="ruleWithLookup[1].set_font_size == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].set_font_size" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
SetTextColor
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].set_text_color != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.set_text_color != undefined"
|
||||
@update:model-value="filter.rule.set_text_color = $event ? { r: 100, g: 102, b: 241 } : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<ColorPicker class="flex items-center" format="rgb"
|
||||
v-if="ruleWithLookup[1].set_text_color != 'inherit' && filter.rule.set_text_color"
|
||||
v-model="filter.rule.set_text_color" />
|
||||
<ColorPicker class="flex items-center" format="rgb" disabled
|
||||
v-if="ruleWithLookup[1].set_text_color == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].set_text_color" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
SetBackgroundColor
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].set_background_color != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.set_background_color != undefined"
|
||||
@update:model-value="filter.rule.set_background_color = $event ? { r: 100, g: 102, b: 241 } : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<ColorPicker class="flex items-center" format="rgb"
|
||||
v-if="ruleWithLookup[1].set_background_color != 'inherit' && filter.rule.set_background_color"
|
||||
v-model="filter.rule.set_background_color" />
|
||||
<ColorPicker class="flex items-center" format="rgb" disabled
|
||||
v-if="ruleWithLookup[1].set_background_color == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].set_background_color" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
SetBorderColor
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].set_border_color != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.set_border_color != undefined"
|
||||
@update:model-value="filter.rule.set_border_color = $event ? { r: 100, g: 102, b: 241 } : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<ColorPicker class="flex items-center" format="rgb"
|
||||
v-if="ruleWithLookup[1].set_border_color != 'inherit' && filter.rule.set_border_color"
|
||||
v-model="filter.rule.set_border_color" />
|
||||
<ColorPicker class="flex items-center" format="rgb" disabled
|
||||
v-if="ruleWithLookup[1].set_border_color == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].set_border_color" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
PlayAlertSound
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].play_alert_sound != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.play_alert_sound != undefined"
|
||||
@update:model-value="filter.rule.play_alert_sound = $event ? [2, 300] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<InputNumber class="w-16" fluid
|
||||
v-if="ruleWithLookup[1].play_alert_sound != 'inherit' && filter.rule.play_alert_sound"
|
||||
v-model="filter.rule.play_alert_sound[0]" />
|
||||
<InputNumber class="w-16" fluid
|
||||
v-if="ruleWithLookup[1].play_alert_sound != 'inherit' && filter.rule.play_alert_sound"
|
||||
v-model="filter.rule.play_alert_sound[1]" />
|
||||
<InputNumber class="w-16" fluid disabled v-if="ruleWithLookup[1].play_alert_sound == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].play_alert_sound![0]" />
|
||||
<InputNumber class="w-16" fluid disabled v-if="ruleWithLookup[1].play_alert_sound == 'inherit'"
|
||||
:model-value="ruleWithLookup[0].play_alert_sound![1]" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
MinimapIcon
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].minimap_icon != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.minimap_icon != undefined"
|
||||
@update:model-value="filter.rule.minimap_icon = $event ? [2, 'White', 'Circle'] : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<InputNumber class="w-16" fluid
|
||||
v-if="ruleWithLookup[1].minimap_icon != 'inherit' && filter.rule.minimap_icon"
|
||||
v-model="filter.rule.minimap_icon[0]" />
|
||||
<Select v-if="ruleWithLookup[1].minimap_icon != 'inherit' && filter.rule.minimap_icon"
|
||||
v-model="filter.rule.minimap_icon[1]" :options="COLORS.slice()" />
|
||||
<Select v-if="ruleWithLookup[1].minimap_icon != 'inherit' && filter.rule.minimap_icon"
|
||||
v-model="filter.rule.minimap_icon[2]" :options="SHAPES.slice()" />
|
||||
<InputNumber class="w-16" fluid v-if="ruleWithLookup[1].minimap_icon == 'inherit'" disabled
|
||||
:model-value="ruleWithLookup[0].minimap_icon![0]" />
|
||||
<Select v-if="ruleWithLookup[1].minimap_icon == 'inherit'" disabled
|
||||
:model-value="ruleWithLookup[0].minimap_icon![1]" :options="COLORS.slice()" />
|
||||
<Select v-if="ruleWithLookup[1].minimap_icon == 'inherit'" disabled
|
||||
:model-value="ruleWithLookup[0].minimap_icon![2]" :options="SHAPES.slice()" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
PlayEffect
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="ruleWithLookup[1].play_effect != 'inherit'" class="align-middle"
|
||||
:model-value="filter.rule.play_effect != undefined"
|
||||
@update:model-value="filter.rule.play_effect = $event ? 'White' : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<Select v-if="ruleWithLookup[1].play_effect != 'inherit' && filter.rule.play_effect"
|
||||
v-model="filter.rule.play_effect" :options="COLORS.slice()" />
|
||||
<Select v-if="ruleWithLookup[1].play_effect == 'inherit'" disabled
|
||||
:model-value="ruleWithLookup[0].play_effect" :options="COLORS.slice()" />
|
||||
</td>
|
||||
</tr>
|
||||
<RuleLine title="SetBackgroundColor" :default-value="{ r: 0, g: 0, b: 0, a: 0 }"
|
||||
:inherit="ruleWithLookup[1].set_background_color == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].set_background_color" v-model="filter.rule.set_background_color"
|
||||
v-slot="slotProps">
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.r" @update:model-value="filter.rule.set_background_color!.r = $event"
|
||||
:min="0" :max="255" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.g" @update:model-value="filter.rule.set_background_color!.g = $event"
|
||||
:min="0" :max="255" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.b" @update:model-value="filter.rule.set_background_color!.b = $event"
|
||||
:min="0" :max="255" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.a" @update:model-value="filter.rule.set_background_color!.a = $event"
|
||||
:min="0" :max="255" />
|
||||
</RuleLine>
|
||||
<RuleLine title="SetBorderColor" :default-value="{ r: 0, g: 0, b: 0, a: 0 }"
|
||||
:inherit="ruleWithLookup[1].set_border_color == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].set_border_color" v-model="filter.rule.set_border_color"
|
||||
v-slot="slotProps">
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.r" @update:model-value="filter.rule.set_border_color!.r = $event"
|
||||
:min="0" :max="255" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.g" @update:model-value="filter.rule.set_border_color!.g = $event"
|
||||
:min="0" :max="255" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.b" @update:model-value="filter.rule.set_border_color!.b = $event"
|
||||
:min="0" :max="255" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value.a" @update:model-value="filter.rule.set_border_color!.a = $event"
|
||||
:min="0" :max="255" />
|
||||
</RuleLine>
|
||||
<RuleLine title="PlayAlertSound" :default-value="[2, 300]"
|
||||
:inherit="ruleWithLookup[1].play_alert_sound == 'inherit'"
|
||||
:inherit-value="ruleWithLookup[0].play_alert_sound" v-model="filter.rule.play_alert_sound"
|
||||
v-slot="slotProps">
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value[0]" @update:model-value="filter.rule.play_alert_sound![0] = $event"
|
||||
:min="1" :max="16" />
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value[1]" @update:model-value="filter.rule.play_alert_sound![1] = $event"
|
||||
:min="0" :max="300" />
|
||||
</RuleLine>
|
||||
<RuleLine title="MinimapIcon" :default-value="[2, 'White', 'Circle']"
|
||||
:inherit="ruleWithLookup[1].minimap_icon == 'inherit'" :inherit-value="ruleWithLookup[0].minimap_icon"
|
||||
v-model="filter.rule.minimap_icon" v-slot="slotProps">
|
||||
<InputNumber v-if="slotProps.value" :disabled="slotProps.disabled" class="w-16" fluid
|
||||
:model-value="slotProps.value[0] as number"
|
||||
@update:model-value="filter.rule.minimap_icon![0] = $event" :min="0" :max="2" />
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled"
|
||||
:model-value="slotProps.value[1] as GameColor"
|
||||
@update:model-value="filter.rule.minimap_icon![1] = $event" :options="COLORS.slice()" />
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled" :model-value="slotProps.value[2] as Shape"
|
||||
@update:model-value="filter.rule.minimap_icon![2] = $event" :options="SHAPES.slice()" />
|
||||
</RuleLine>
|
||||
<RuleLine title="PlayEffect" :default-value="'White'"
|
||||
:inherit="ruleWithLookup[1].play_effect == 'inherit'" :inherit-value="ruleWithLookup[0].play_effect"
|
||||
v-model="filter.rule.play_effect" v-slot="slotProps">
|
||||
<Select v-if="slotProps.value" :disabled="slotProps.disabled"
|
||||
:model-value="slotProps.value as GameColor" @update:model-value="filter.rule.play_effect = $event"
|
||||
:options="COLORS.slice()" />
|
||||
</RuleLine>
|
||||
</tbody>
|
||||
</table>
|
||||
</TabPanel>
|
||||
|
||||
32
src/components/RuleLine.vue
Normal file
32
src/components/RuleLine.vue
Normal file
@ -0,0 +1,32 @@
|
||||
<script setup lang="ts" generic="T">
|
||||
import { computed, ref, watch } from 'vue'
|
||||
import { ToggleSwitch } from 'primevue';
|
||||
|
||||
const props = defineProps<{
|
||||
title: string,
|
||||
inherit: boolean,
|
||||
inheritValue: T,
|
||||
defaultValue: T
|
||||
}>()
|
||||
|
||||
const model = defineModel<T>({ required: true })
|
||||
|
||||
const value = computed(() => props.inherit ? props.inheritValue : model.value)
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<tr>
|
||||
<td class="pr-4 whitespace-nowrap">
|
||||
{{ title }}
|
||||
</td>
|
||||
<td class="pr-4">
|
||||
<ToggleSwitch v-if="!inherit" class="align-middle" :model-value="value != undefined"
|
||||
@update:model-value="model = $event ? defaultValue : undefined" />
|
||||
<label v-else>Inherit</label>
|
||||
</td>
|
||||
<td class="h-11 flex gap-2">
|
||||
<slot :value :disabled="inherit"></slot>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
@ -60,6 +60,7 @@ export interface Color {
|
||||
r: number
|
||||
g: number
|
||||
b: number
|
||||
a: number
|
||||
}
|
||||
|
||||
export type Class = (typeof CLASSES)[number]
|
||||
@ -187,7 +188,7 @@ export function toLines(rule: FilterRuleRaw): string[] {
|
||||
}
|
||||
|
||||
function formatColor(color: Color) {
|
||||
return `${color.r} ${color.g} ${color.b}`
|
||||
return `${color.r} ${color.g} ${color.b} ${color.a}`
|
||||
}
|
||||
|
||||
export function generateFilterText(filters: Filter[]): string {
|
||||
@ -241,7 +242,7 @@ function expandLeaf(leaf: FilterLeaf): FilterRuleRaw[] {
|
||||
let result = [leaf.rule]
|
||||
if (leaf.leafRule.area_minus_drop_level) {
|
||||
result = []
|
||||
for (let area_level = 1; area_level <= 100; area_level++) {
|
||||
for (let area_level = 1; area_level <= 70; area_level++) {
|
||||
let rule = { ...leaf.rule }
|
||||
let op: Op
|
||||
switch (leaf.leafRule.area_minus_drop_level[0]) {
|
||||
|
||||
@ -1,5 +1,70 @@
|
||||
export const OPERATORS = ['=', '==', '!=', '<', '<=', '>', '>='] as const
|
||||
|
||||
export const CLASSES = [
|
||||
'Stackable Currency',
|
||||
'Socketable',
|
||||
|
||||
// flasks
|
||||
'Life Flasks',
|
||||
'Mana Flasks',
|
||||
|
||||
// armours
|
||||
'Helmets',
|
||||
'Boots',
|
||||
'Gloves',
|
||||
'Body Armours',
|
||||
|
||||
// weapons
|
||||
'Sceptres',
|
||||
'Shields',
|
||||
'Wands',
|
||||
'Quarterstaves',
|
||||
'Staves',
|
||||
'One Hand Maces',
|
||||
'Two Hand Maces',
|
||||
'Crossbows',
|
||||
'Bows',
|
||||
'Foci',
|
||||
] as const
|
||||
|
||||
export const BASE_TYPES = [
|
||||
'Uncut Skill Gem',
|
||||
'Uncut Support Gem',
|
||||
'Uncut Spirit Gem',
|
||||
|
||||
'Soul Core',
|
||||
'Timeless',
|
||||
'Breach Ring',
|
||||
|
||||
// C
|
||||
"Gemcutter's Prism",
|
||||
'Vaal Orb',
|
||||
'Chaos Orb',
|
||||
"Lesser Jeweller's Orb",
|
||||
'Regal Orb',
|
||||
"Artificer's Orb",
|
||||
"Glassblower's Bauble",
|
||||
'Orb of Alchemy',
|
||||
'Chance Shard',
|
||||
|
||||
// B
|
||||
'Exalted Orb',
|
||||
'Exotic Coinage',
|
||||
|
||||
// A
|
||||
'Orb of Annulment',
|
||||
'Orb of Chance',
|
||||
"Greater Jeweller's Orb",
|
||||
'Distilled Fear',
|
||||
'Distilled Despair',
|
||||
// S
|
||||
'Mirror',
|
||||
'Divine',
|
||||
"Perfect Jeweller's Orb",
|
||||
'Distilled Isolation',
|
||||
'Distilled Suffering',
|
||||
] as const
|
||||
|
||||
export const COLORS = [
|
||||
'Red',
|
||||
'Green',
|
||||
@ -31,62 +96,6 @@ export const SHAPES = [
|
||||
|
||||
export const RARITIES = ['Normal', 'Magic', 'Rare', 'Unique'] as const
|
||||
|
||||
export const CLASSES = [
|
||||
'Currency',
|
||||
'Stackable Currency',
|
||||
'Jewel',
|
||||
'Abyss Jewel',
|
||||
'Divination Card',
|
||||
'Gem',
|
||||
'Flask',
|
||||
'Map',
|
||||
'Map Fragment',
|
||||
'Fishing Rods',
|
||||
'Amulet',
|
||||
'Ring',
|
||||
'Claw',
|
||||
'Dagger',
|
||||
'Wand',
|
||||
'One Hand Sword',
|
||||
'One Hand Axe',
|
||||
'One Hand Mace',
|
||||
'Sceptre',
|
||||
'Bow',
|
||||
'Staff',
|
||||
'Two Hand Sword',
|
||||
'Two Hand Axe',
|
||||
'Two Hand Mace',
|
||||
'Body Armour',
|
||||
'Boots',
|
||||
'Gloves',
|
||||
'Helmet',
|
||||
'Shield',
|
||||
'Quiver',
|
||||
] as const
|
||||
|
||||
export const BASE_TYPES = [
|
||||
'Exalted Orb',
|
||||
'Mirror of Kalandra',
|
||||
'Eternal Orb',
|
||||
'Divine Orb',
|
||||
'Orb of Annulment',
|
||||
'Chaos Orb',
|
||||
'Vaal Orb',
|
||||
'Regal Orb',
|
||||
'Orb of Alchemy',
|
||||
'Orb of Fusing',
|
||||
'Blessed Orb',
|
||||
"Cartographer's Chisel",
|
||||
'Orb of Scouring',
|
||||
"Jeweller's Orb",
|
||||
'Chromatic Orb',
|
||||
'Orb of Chance',
|
||||
'Orb of Alteration',
|
||||
'Orb of Transmutation',
|
||||
'Scroll of Wisdom',
|
||||
'Portal Scroll',
|
||||
] as const
|
||||
|
||||
export const ARMOUR_TYPES = [
|
||||
'Armour',
|
||||
'Evasion',
|
||||
|
||||
@ -25,7 +25,10 @@ export default defineConfig({
|
||||
// produce sourcemaps for debug builds
|
||||
sourcemap: !!process.env.TAURI_ENV_DEBUG,
|
||||
},
|
||||
plugins: [vue(), vueDevTools()],
|
||||
plugins: [
|
||||
vue(),
|
||||
// vueDevTools()
|
||||
],
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': fileURLToPath(new URL('./src', import.meta.url)),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user