diff --git a/.gitignore b/.gitignore index 0d8d42f..f495820 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,9 @@ *.exe *.exe~ +# Build artifacts (updater.exe at root is build output for embed) +updater.exe + # Logs *.log diff --git a/build.ps1 b/build.ps1 index b18f1e0..8109ebd 100644 --- a/build.ps1 +++ b/build.ps1 @@ -29,6 +29,15 @@ $gitHash = git rev-parse --short HEAD $version = "$(Get-Date -Format 'yyyyMMdd').$gitHash" Write-Host "=== 构建 $project v$version ===" -ForegroundColor Cyan +# 构建 updater.exe(先编译,主程序需要 embed) +Write-Host "=== 构建 updater ===" -ForegroundColor Cyan +Push-Location updater +go build -ldflags="-s -w -H windowsgui" -o updater.exe . +if ($LASTEXITCODE -ne 0) { Write-Host "updater 构建失败" -ForegroundColor Red; exit 1 } +Pop-Location +Copy-Item "updater/updater.exe" "updater.exe" -Force +Write-Host "updater.exe 已复制到根目录" -ForegroundColor Green + # 构建(隐藏控制台窗口) $env:GOOS = "windows" $env:GOARCH = "amd64" diff --git a/config.go b/config.go index 8f2bba2..60e433e 100644 --- a/config.go +++ b/config.go @@ -71,6 +71,9 @@ type Config struct { QWeatherKey string `json:"qweatherKey,omitempty"` TianapiKey string `json:"tianapiKey,omitempty"` CPAKey string `json:"cpaKey,omitempty"` + UpdateURL string `json:"updateUrl,omitempty"` + AutoCheckUpdate bool `json:"autoCheckUpdate"` + SkipVersion string `json:"skipVersion,omitempty"` } const defaultZodiac = "射手座" diff --git a/knowledge.go b/knowledge.go index 4bb97ef..c4b737a 100644 --- a/knowledge.go +++ b/knowledge.go @@ -17,7 +17,7 @@ import ( ) const cpaURL = "https://cpa.1216.top/v1/chat/completions" -const cpaModel = "glm-4.5-air" +const cpaModel = "glm-5.1" const minKnowledgeRunes = 80 type knowledgeData struct { @@ -100,17 +100,28 @@ func fetchKnowledgeFromLLM(keyword string, cfg *Config) string { basePrompt := buildKnowledgePrompt(keyword, cfg.KnowledgePrompt) messages := []map[string]string{ { - "role": "system", - "content": "你是严谨的中文知识卡片作者,输出必须具体、准确、有信息密度。不要写空泛鸡汤,不要只给一句定义。", + "role": "system", + "content": `你是一位资深技术专家,面向有多年经验的开发者撰写知识卡片。 + +内容标准: +- 必须包含可直接用于生产的硬核知识:底层原理、性能陷阱、边界条件、源码级细节 +- 优先讲"为什么"而非"是什么"——机制、权衡、踩坑经验 +- 用具体数值、代码片段(仅关键词级别)、或真实场景佐证 +- 读者看完能立刻在项目中应用或避免踩坑 + +禁止: +- 入门级科普、"是什么"式定义、百科搬运 +- 空泛鸡汤("很重要"、"提升效率"、"广泛应用") +- 标题、序号、Markdown标记、emoji`, }, {"role": "user", "content": basePrompt}, } body := map[string]interface{}{ - "model": cpaModel, - "max_tokens": 512, - "temperature": 0.55, - "messages": messages, + "model": cpaModel, + "max_completion_tokens": 2048, + "temperature": 0.55, + "messages": messages, } content := requestKnowledgeCompletion(body) content = normalizeKnowledgeContent(content) @@ -137,13 +148,13 @@ func fetchKnowledgeFromLLM(keyword string, cfg *Config) string { } func buildKnowledgePrompt(keyword, customPrompt string) string { - basePrompt := fmt.Sprintf(`围绕关键词「%s」生成一条桌面知识卡片。 -硬性要求: -1. 120-180个中文字符,分成2-3句; -2. 必须讲清一个具体机制、原理、权衡或实践经验; -3. 必须包含一个具体例子、场景或判断标准; -4. 避免“很重要、非常有用、提升效率”这类空泛表述; -5. 不要标题、序号、Markdown、表情,直接输出正文。`, keyword) + basePrompt := fmt.Sprintf(`围绕「%s」写一条面向资深开发者的技术知识卡片。 + +要求: +- 100-160字,2-3句连贯正文 +- 必须触及底层机制、性能细节或生产踩坑经验 +- 必须包含一个具体场景或数值佐证(如延迟数据、内存阈值、版本差异等) +- 直接输出正文,不要标题、编号、Markdown`, keyword) if customPrompt != "" { basePrompt += "\n附加风格要求(不能覆盖上面的字数和质量要求):" + customPrompt } @@ -173,10 +184,16 @@ func requestKnowledgeCompletion(body map[string]interface{}) string { } defer resp.Body.Close() + if resp.StatusCode != 200 { + log.Printf("知识API返回状态码: %d", resp.StatusCode) + return "" + } + var result struct { Choices []struct { Message struct { - Content string `json:"content"` + Content string `json:"content"` + ReasoningContent string `json:"reasoning_content"` } `json:"message"` } `json:"choices"` } @@ -185,7 +202,11 @@ func requestKnowledgeCompletion(body map[string]interface{}) string { return "" } if len(result.Choices) > 0 { - return result.Choices[0].Message.Content + c := result.Choices[0].Message.Content + if c == "" { + c = result.Choices[0].Message.ReasoningContent + } + return c } return "" } @@ -256,6 +277,7 @@ func fetchAndPushKnowledge() { } if content == "" { + pushKnowledgeJSON("知识卡片加载失败,稍后重试", keyword) return } diff --git a/main.go b/main.go index 01faf04..f26ed26 100644 --- a/main.go +++ b/main.go @@ -28,6 +28,8 @@ func setupLog() { log.SetFlags(log.Ldate | log.Ltime | log.Lmicroseconds) } +var version = "dev" // -ldflags "-X main.version=0.6.0" + func main() { setupLog() @@ -57,8 +59,8 @@ func main() { } defer windows.CloseHandle(mutex) - exePath, _ := os.Executable() - cfgDir := filepath.Join(filepath.Dir(exePath), "config") + homeDir, _ := os.UserHomeDir() + cfgDir := filepath.Join(homeDir, ".u-desktop") os.MkdirAll(cfgDir, 0755) configPath = filepath.Join(cfgDir, "settings.json") procSetProcessDPIAware.Call() diff --git a/settings.go b/settings.go index 387cfac..ab0e08c 100644 --- a/settings.go +++ b/settings.go @@ -104,10 +104,12 @@ func refreshVisibleCards(cfg, oldCfg *Config) { func openSettingsWindow() { settingsMu.Lock() - if settingsOpen && settingsHwnd != 0 { + if settingsOpen { settingsMu.Unlock() - procShowWindow.Call(settingsHwnd, 9) - procGetForegroundWindow.Call(settingsHwnd) + if settingsHwnd != 0 { + procShowWindow.Call(settingsHwnd, 9) + procGetForegroundWindow.Call(settingsHwnd) + } return } settingsOpen = true @@ -123,7 +125,7 @@ func openSettingsWindow() { runtime.UnlockOSThread() }() - dataDir := filepath.Join(os.TempDir(), "u-desktop-settings") + dataDir := filepath.Join(configDir(), "settings-data") os.MkdirAll(dataDir, 0755) w := webview2.NewWithOptions(webview2.WebViewOptions{ @@ -194,7 +196,7 @@ func openSettingsWindow() { "photoDir": cfg.PhotoDir, "photoInterval": cfg.PhotoInterval, "photoCard": !cfg.HidePhoto, - "photoFrameMode": cfg.PhotoFrameMode, + "photoFrameMode": cfg.PhotoFrameMode, "autoStart": isAutoStartEnabled(), }) return string(data) @@ -252,13 +254,13 @@ func openSettingsWindow() { for _, card := range []string{"time", "weather", "zodiac", "ainews", "knowledge"} { evalJS(fmt.Sprintf("if(window.setCardVisible) setCardVisible('%s',false)", card)) } + } else { + reloadWallpaper() } } if v, ok := data["photoCard"]; ok { cfg.HidePhoto = !v - saveConfig(cfg) evalJS(fmt.Sprintf("if(window.setCardVisible) setCardVisible('photo',%v)", v)) - refreshVisibleCards(cfg, &oldCfg) if cfg.PhotoDir != "" { if v { restartPhotoLoop() @@ -266,10 +268,9 @@ func openSettingsWindow() { stopPhotoLoop() } } - } else { - saveConfig(cfg) - refreshVisibleCards(cfg, &oldCfg) } + saveConfig(cfg) + refreshVisibleCards(cfg, &oldCfg) return "" }) @@ -383,15 +384,15 @@ func openSettingsWindow() { w.Bind("pickGradientColor", func() string { hwnd := uintptr(w.Window()) - c1 := colorPickerDialog(hwnd, "") + cfg := loadConfig() + c1 := colorPickerDialog(hwnd, cfg.Color1) if c1 == "" { return "" } - c2 := colorPickerDialog(hwnd, "") + c2 := colorPickerDialog(hwnd, cfg.Color2) if c2 == "" { c2 = "#16213e" } - cfg := loadConfig() cfg.WallpaperType = WPColor cfg.Color1 = c1 cfg.Color2 = c2 @@ -494,9 +495,10 @@ func openSettingsWindow() { w.SetHtml(settingsHTML) hwnd := uintptr(w.Window()) - // disable resize - style, _, _ := procGetWindowLongPtrW.Call(hwnd, gwlStyle) - procSetWindowLongPtrW.Call(hwnd, gwlStyle, style & ^uintptr(wsSizebox|wsMaxbox)) + // disable resize + hide from taskbar + style, _, _ := procGetWindowLongPtrW.Call(hwnd, gwlStyle) + procSetWindowLongPtrW.Call(hwnd, gwlStyle, style & ^uintptr(wsSizebox|wsMaxbox)) + procSetWindowLongPtrW.Call(hwnd, gwlExStyle, wsExToolwindow) // resizeToFit: JS measures content, Go adjusts window frame w.Bind("resizeToFit", func(contentW, contentH int) string { diff --git a/systray.go b/systray.go index a81abbf..b6c58eb 100644 --- a/systray.go +++ b/systray.go @@ -18,10 +18,35 @@ func onSystrayReady() { systray.SetIcon(trayIcon) systray.SetTooltip("动态壁纸引擎") + // 左键点击托盘图标 → 打开设置(防抖: 连续点击只响应一次) + go func() { + for range systray.TrayClickCh { + openSettingsWindow() + // 消费后续积压的点击 + for { + select { + case <-systray.TrayClickCh: + default: + goto done + } + } + done: + } + }() + mSettings := systray.AddMenuItem("桌面设置", "打开设置窗口") + mCheckUpdate := systray.AddMenuItem("检查更新", "检查是否有新版本") mRestart := systray.AddMenuItem("重启", "重启程序") mQuit := systray.AddMenuItem("退出", "退出程序") + // 检查更新 + go func() { + for { + <-mCheckUpdate.ClickedCh + manualCheckUpdate() + } + }() + // 设置窗口 go func() { for { @@ -53,6 +78,7 @@ func onSystrayReady() { go bingWallpaperLoop() go knowledgeLoop() go startPhotoLoop() + go runAutoUpdateCheck() } func startWebView() { @@ -89,10 +115,10 @@ func startWebView() { wvHwnd = uintptr(wv.Window()) procShowWindow.Call(wvHwnd, 0) // SW_HIDE procSetWindowLongPtrW.Call(wvHwnd, gwlStyle, wsPopup|wsVisible|wsChild) + procSetWindowLongPtrW.Call(wvHwnd, gwlExStyle, wsExTransparent|wsExLayered) // 立即嵌入 WorkerW - procSetParent.Call(wvHwnd, workerw) - procMoveWindow.Call(wvHwnd, uintptr(^uint(0)), uintptr(^uint(0)), uintptr(screenW+2), uintptr(screenH+2), 1) + embedWorkerW(workerw, screenW, screenH) log.Printf("已嵌入 WorkerW: HWND=0x%x, %dx%d", wvHwnd, screenW, screenH) wv.Bind("setZodiacFromGo", func(zodiac string) error { @@ -158,11 +184,35 @@ func startWebView() { } } +func embedWorkerW(workerw uintptr, screenW, screenH int32) { + procSetParent.Call(wvHwnd, workerw) + procMoveWindow.Call(wvHwnd, uintptr(^uint(0)), uintptr(^uint(0)), uintptr(screenW+2), uintptr(screenH+2), 1) +} + func fullscreenMonitor() { type rect struct{ Left, Top, Right, Bottom int32 } var lastState string + var lastParent uintptr + var parentTick int for { if atomic.LoadInt32(&paused) == 0 && wv != nil { + // 每 5 轮(10s)检测一次父窗口,极轻量系统调用 + parentTick++ + if parentTick >= 5 { + parentTick = 0 + parent, _, _ := procGetParent.Call(wvHwnd) + if parent != lastParent { + lastParent = parent + ww := findWorkerW() + if ww != 0 && ww != parent { + screenW, screenH := getScreenSize() + embedWorkerW(ww, screenW, screenH) + procShowWindow.Call(wvHwnd, 5) + log.Printf("WorkerW 变更,已重新嵌入: 0x%x → 0x%x", parent, ww) + } + } + } + fg, _, _ := procGetForegroundWindow.Call() if fg != 0 { var r rect diff --git a/updater.go b/updater.go new file mode 100644 index 0000000..f7141a1 --- /dev/null +++ b/updater.go @@ -0,0 +1,271 @@ +package main + +import ( + _ "embed" + "encoding/json" + "fmt" + "log" + "os" + "os/exec" + "path/filepath" + "runtime" + "strconv" + "sync" + "time" + + "github.com/jchv/go-webview2" +) + +//go:embed web/update.html +var updateHTML string + +//go:embed updater.exe +var updaterExe []byte + +type PackageInfo struct { + URL string `json:"url"` + Size int64 `json:"size"` + SHA256 string `json:"sha256"` +} + +type UpdateInfo struct { + Version string `json:"version"` + Force bool `json:"force"` + ReleaseNotes string `json:"release_notes"` + Package PackageInfo `json:"package"` +} + +var ( + updateMu sync.Mutex + updateOpen bool + updateInfo *UpdateInfo +) + +const defaultUpdateURL = "https://c.1216.top/u-desktop/version.json" + +func getUpdateURL() string { + cfg := loadConfig() + if cfg.UpdateURL != "" { + return cfg.UpdateURL + } + return defaultUpdateURL +} + +func checkUpdate() (*UpdateInfo, error) { + resp, err := httpClient.Get(getUpdateURL()) + if err != nil { + return nil, fmt.Errorf("请求 version.json 失败: %w", err) + } + defer resp.Body.Close() + + if resp.StatusCode != 200 { + return nil, fmt.Errorf("version.json 返回状态 %d", resp.StatusCode) + } + + var info UpdateInfo + if err := json.NewDecoder(resp.Body).Decode(&info); err != nil { + return nil, fmt.Errorf("解析 version.json 失败: %w", err) + } + + if info.Version == "" || info.Version == version || info.Version == "dev" { + return nil, nil + } + + // 用户跳过过此版本且非强制 + cfg := loadConfig() + if !info.Force && cfg.SkipVersion == info.Version { + return nil, nil + } + + return &info, nil +} + +func runAutoUpdateCheck() { + cfg := loadConfig() + if !cfg.AutoCheckUpdate { + return + } + time.Sleep(3 * time.Second) + + info, err := checkUpdate() + if err != nil { + log.Println("自动更新检查失败:", err) + return + } + if info != nil { + showUpdateWindow(info) + } +} + +func showUpdateWindow(info *UpdateInfo) { + updateMu.Lock() + if updateOpen { + updateMu.Unlock() + return + } + updateOpen = true + updateInfo = info + updateMu.Unlock() + + go func() { + runtime.LockOSThread() + defer func() { + updateMu.Lock() + updateOpen = false + updateInfo = nil + updateMu.Unlock() + runtime.UnlockOSThread() + }() + + winW := 340 + winH := 220 + if info.Force { + winW = 420 + winH = 260 + } + + dataDir := filepath.Join(configDir(), "update-data") + os.MkdirAll(dataDir, 0755) + + w := webview2.NewWithOptions(webview2.WebViewOptions{ + AutoFocus: true, + DataPath: dataDir, + WindowOptions: webview2.WindowOptions{ + Title: "更新提示", + Width: uint(winW), + Height: uint(winH), + }, + }) + if w == nil { + log.Println("更新窗口: 创建失败") + return + } + + hwnd := uintptr(w.Window()) + + // 无边框 + style, _, _ := procGetWindowLongPtrW.Call(hwnd, gwlStyle) + procSetWindowLongPtrW.Call(hwnd, gwlStyle, style & ^uintptr(wsSizebox|wsMaxbox|0x00C00000)) + // 置顶 + 工具窗口 + procSetWindowLongPtrW.Call(hwnd, gwlExStyle, wsExToolwindow|0x00000008) + + // 定位窗口 + screenW, screenH := getScreenSize() + if info.Force { + x := (int(screenW) - winW) / 2 + y := (int(screenH) - winH) / 2 + procMoveWindow.Call(hwnd, uintptr(x), uintptr(y), uintptr(winW), uintptr(winH), 1) + } else { + x := int(screenW) - winW - 20 + y := int(screenH) - winH - 60 + procMoveWindow.Call(hwnd, uintptr(x), uintptr(y), uintptr(winW), uintptr(winH), 1) + } + + w.Bind("getUpdateInfo", func() string { + if updateInfo == nil { + return "{}" + } + data, _ := json.Marshal(map[string]interface{}{ + "version": updateInfo.Version, + "force": updateInfo.Force, + "releaseNotes": updateInfo.ReleaseNotes, + "size": updateInfo.Package.Size, + "currentVersion": version, + }) + return string(data) + }) + + w.Bind("skipUpdate", func() string { + if updateInfo != nil && !updateInfo.Force { + cfg := loadConfig() + cfg.SkipVersion = updateInfo.Version + saveConfig(cfg) + } + return "" + }) + + w.Bind("startUpdate", func() string { + if updateInfo == nil { + return "" + } + go doStartUpdate(updateInfo) + return "" + }) + + w.SetHtml(updateHTML) + log.Println("更新窗口已打开") + w.Run() + log.Println("更新窗口已关闭") + }() +} + +func doStartUpdate(info *UpdateInfo) { + exePath, err := os.Executable() + if err != nil { + log.Println("获取自身路径失败:", err) + return + } + exeDir := filepath.Dir(exePath) + + // 释放嵌入的 updater.exe 到临时目录 + updaterPath := filepath.Join(os.TempDir(), "u-desktop-updater.exe") + if err := os.WriteFile(updaterPath, updaterExe, 0755); err != nil { + log.Println("释放 updater.exe 失败:", err) + showError("释放升级器失败: " + err.Error()) + return + } + + backupDir := filepath.Join(exeDir, "backup") + os.MkdirAll(backupDir, 0755) + + args := []string{ + "--package-url", info.Package.URL, + "--sha256", info.Package.SHA256, + "--target", exePath, + "--version", info.Version, + "--backup-dir", backupDir, + } + if info.Force { + args = append(args, "--force") + } + + cmd := exec.Command(updaterPath, args...) + cmd.Stdout = nil + cmd.Stderr = nil + if err := cmd.Start(); err != nil { + log.Println("启动 updater 失败:", err) + return + } + + log.Println("updater 已启动, 主程序退出") + os.Exit(0) +} + +func manualCheckUpdate() { + info, err := checkUpdate() + if err != nil { + log.Println("手动更新检查失败:", err) + showError("检查更新失败: " + err.Error()) + return + } + if info == nil { + showError("当前已是最新版本 (" + version + ")") + return + } + showUpdateWindow(info) +} + +func formatSize(size int64) string { + const ( + KB = 1024 + MB = KB * 1024 + ) + switch { + case size >= MB: + return strconv.FormatFloat(float64(size)/float64(MB), 'f', 1, 64) + " MB" + case size >= KB: + return strconv.FormatFloat(float64(size)/float64(KB), 'f', 1, 64) + " KB" + default: + return strconv.FormatInt(size, 10) + " B" + } +} diff --git a/updater/go.mod b/updater/go.mod new file mode 100644 index 0000000..9567740 --- /dev/null +++ b/updater/go.mod @@ -0,0 +1,3 @@ +module updater + +go 1.26.3 diff --git a/updater/main.go b/updater/main.go new file mode 100644 index 0000000..71369e5 --- /dev/null +++ b/updater/main.go @@ -0,0 +1,218 @@ +package main + +import ( + "crypto/sha256" + "flag" + "fmt" + "io" + "log" + "net/http" + "os" + "os/exec" + "path/filepath" + "strings" + "time" +) + +func main() { + packageURL := flag.String("package-url", "", "下载地址") + sha256Hash := flag.String("sha256", "", "SHA256 校验值") + target := flag.String("target", "", "目标 exe 路径") + ver := flag.String("version", "", "目标版本号") + force := flag.Bool("force", false, "强制升级") + backupDir := flag.String("backup-dir", "", "备份目录") + flag.Parse() + + logPath := filepath.Join(filepath.Dir(*target), "updater.log") + logFile, err := os.Create(logPath) + if err != nil { + fmt.Println("无法创建日志文件:", err) + os.Exit(1) + } + defer logFile.Close() + log.SetOutput(logFile) + log.SetFlags(log.Ldate | log.Ltime | log.Lmicroseconds) + + log.Printf("updater 启动: version=%s target=%s force=%v", *ver, *target, *force) + + if *packageURL == "" || *target == "" { + log.Fatal("缺少必要参数: --package-url, --target") + } + if *sha256Hash == "" { + log.Fatal("缺少 --sha256 参数") + } + + // 等待主程序退出 + time.Sleep(2 * time.Second) + + // 下载 + tmpFile, err := downloadWithRetry(*packageURL, 3) + if err != nil { + log.Fatal("下载失败: ", err) + } + defer os.Remove(tmpFile) + log.Println("下载完成:", tmpFile) + + // 校验 + if err := verifySHA256(tmpFile, *sha256Hash); err != nil { + log.Fatal("校验失败: ", err) + } + log.Println("SHA256 校验通过") + + // 备份 + if *backupDir == "" { + *backupDir = filepath.Join(filepath.Dir(*target), "backup") + } + os.MkdirAll(*backupDir, 0755) + backupPath := filepath.Join(*backupDir, fmt.Sprintf("old-%s.exe", time.Now().Format("20060102-150405"))) + if err := copyFile(*target, backupPath); err != nil { + log.Println("备份失败(继续):", err) + } else { + log.Println("已备份:", backupPath) + } + + // 替换: zip 包解压,exe 直接覆盖 + if strings.HasSuffix(strings.ToLower(*packageURL), ".zip") { + if err := extractAndReplace(tmpFile, *target); err != nil { + rollback(backupPath, *target) + log.Fatal("解压替换失败: ", err) + } + } else { + if err := copyFile(tmpFile, *target); err != nil { + rollback(backupPath, *target) + log.Fatal("替换失败: ", err) + } + } + log.Println("替换完成") + + // 启动新版本 + cmd := exec.Command(*target) + if err := cmd.Start(); err != nil { + rollback(backupPath, *target) + log.Fatal("启动新版本失败: ", err) + } + + // 监听新进程 5 秒 + time.Sleep(5 * time.Second) + if cmd.Process == nil { + rollback(backupPath, *target) + log.Fatal("新进程异常") + } + + // 检查新进程是否仍在运行 + // NOTE: Windows 下无法直接用 cmd.Process.Signals,用简单的进程存活性判断 + if err := cmd.Process.Release(); err != nil { + log.Println("新进程已退出,回滚") + rollback(backupPath, *target) + os.Exit(1) + } + + log.Println("升级成功, updater 退出") +} + +func downloadWithRetry(url string, maxRetries int) (string, error) { + var lastErr error + for i := 0; i < maxRetries; i++ { + if i > 0 { + log.Printf("重试下载 (%d/%d)...", i+1, maxRetries) + time.Sleep(5 * time.Second) + } + tmpFile, err := os.CreateTemp("", "updater-*.download") + if err != nil { + return "", fmt.Errorf("创建临时文件失败: %w", err) + } + tmpPath := tmpFile.Name() + + resp, err := http.Get(url) + if err != nil { + tmpFile.Close() + os.Remove(tmpPath) + lastErr = err + continue + } + + if resp.StatusCode != 200 { + tmpFile.Close() + os.Remove(tmpPath) + resp.Body.Close() + lastErr = fmt.Errorf("HTTP %d", resp.StatusCode) + continue + } + + _, err = io.Copy(tmpFile, resp.Body) + resp.Body.Close() + tmpFile.Close() + if err != nil { + os.Remove(tmpPath) + lastErr = err + continue + } + return tmpPath, nil + } + return "", fmt.Errorf("下载失败(重试 %d 次): %w", maxRetries, lastErr) +} + +func verifySHA256(path, expected string) error { + f, err := os.Open(path) + if err != nil { + return err + } + defer f.Close() + + h := sha256.New() + if _, err := io.Copy(h, f); err != nil { + return err + } + + actual := fmt.Sprintf("%x", h.Sum(nil)) + if actual != strings.ToLower(expected) { + return fmt.Errorf("SHA256 不匹配: 期望 %s, 实际 %s", expected, actual) + } + return nil +} + +func copyFile(src, dst string) error { + in, err := os.Open(src) + if err != nil { + return err + } + defer in.Close() + + out, err := os.Create(dst) + if err != nil { + return err + } + defer out.Close() + + if _, err := io.Copy(out, in); err != nil { + return err + } + // 复制可执行权限 + if fi, err := os.Stat(src); err == nil { + out.Chmod(fi.Mode()) + } + return nil +} + +func extractAndReplace(zipPath, target string) error { + // TODO: 如需 zip 解压支持,引入 archive/zip + // 初期可直接分发 exe,此路径不执行 + return fmt.Errorf("zip 解压暂未实现,请使用 exe 分发") +} + +func rollback(backupPath, target string) { + if backupPath == "" { + return + } + if _, err := os.Stat(backupPath); err != nil { + return + } + log.Println("回滚: 从备份恢复", backupPath) + if err := copyFile(backupPath, target); err != nil { + log.Println("回滚失败:", err) + return + } + cmd := exec.Command(target) + cmd.Start() + log.Println("已回滚并启动旧版本") +} diff --git a/weather.go b/weather.go index 4baabf2..71fc15f 100644 --- a/weather.go +++ b/weather.go @@ -44,7 +44,7 @@ var cities = []City{ var defaultCity = City{"101200101", "武汉", "武汉", "湖北"} -var httpClient = &http.Client{Timeout: 10 * time.Second} +var httpClient = &http.Client{Timeout: 60 * time.Second} var weatherIcons = map[string]string{ "晴": "☀️", "多云": "⛅", "阴": "☁️", diff --git a/web-ui/src/overlay/bridge.ts b/web-ui/src/overlay/bridge.ts index 4ee9d77..c0c2e6c 100644 --- a/web-ui/src/overlay/bridge.ts +++ b/web-ui/src/overlay/bridge.ts @@ -4,28 +4,41 @@ function parseArg(data: any) { return typeof data === 'string' ? JSON.parse(data) : data } +// JSON 去重:相同数据不触发 Vue 重渲染 +const lastJSON = new Map() +function shouldUpdate(key: string, data: any): boolean { + const json = JSON.stringify(data) + if (lastJSON.get(key) === json) return false + lastJSON.set(key, json) + return true +} + export function registerGoBridge() { const w = window as any w.updateHoroscopeFromGo = (data: any) => { - state.horoscope = parseArg(data) + const parsed = parseArg(data) + if (shouldUpdate('horoscope', parsed)) state.horoscope = parsed } w.updateAINewsFromGo = (items: any) => { const parsed = parseArg(items) - if (parsed?.length) state.aiNews = parsed + if (parsed?.length && shouldUpdate('ainews', parsed)) state.aiNews = parsed } w.updateKnowledgeFromGo = (data: any) => { - state.knowledge = parseArg(data) + const parsed = parseArg(data) + if (shouldUpdate('knowledge', parsed)) state.knowledge = parsed } w.updateWeatherFromGo = (data: any) => { - state.weather = parseArg(data) + const parsed = parseArg(data) + if (shouldUpdate('weather', parsed)) state.weather = parsed } w.updatePhotoFromGo = (data: any) => { - state.photo = parseArg(data) + const parsed = parseArg(data) + if (parsed?.src && shouldUpdate('photo', parsed)) state.photo = parsed } w.setCardVisible = (card: string, visible: boolean) => { diff --git a/web-ui/src/overlay/components/KnowledgeCard.vue b/web-ui/src/overlay/components/KnowledgeCard.vue index 78d721d..8e4ef5d 100644 --- a/web-ui/src/overlay/components/KnowledgeCard.vue +++ b/web-ui/src/overlay/components/KnowledgeCard.vue @@ -1,10 +1,15 @@ @@ -13,19 +18,49 @@ import { state } from '../composables/useOverlayState' diff --git a/web-ui/src/overlay/components/MultiLayout.vue b/web-ui/src/overlay/components/MultiLayout.vue index d0706e8..7ce56cf 100644 --- a/web-ui/src/overlay/components/MultiLayout.vue +++ b/web-ui/src/overlay/components/MultiLayout.vue @@ -68,10 +68,7 @@ import PhotoCard from './PhotoCard.vue' width: 100%; min-width: 0; text-align: right; padding: 22px 28px 24px; } -#card-knowledge :deep(.knowledge-content) { - display: -webkit-box; -webkit-line-clamp: 8; - -webkit-box-orient: vertical; overflow: hidden; -} +#card-knowledge { overflow: hidden; } #layout-multi :deep(#card-photo) { grid-area: photo; position: relative; top: auto; left: auto; diff --git a/web-ui/src/overlay/overlay.css b/web-ui/src/overlay/overlay.css index 85b4251..2a8f1c9 100644 --- a/web-ui/src/overlay/overlay.css +++ b/web-ui/src/overlay/overlay.css @@ -35,9 +35,7 @@ html, body { position: relative; box-sizing: border-box; overflow: hidden; - background: linear-gradient(145deg, rgba(255,255,255,0.075), rgba(255,255,255,0.025)), var(--card-bg); - backdrop-filter: blur(28px) saturate(1.2); - -webkit-backdrop-filter: blur(28px) saturate(1.2); + background: linear-gradient(145deg, rgba(255,255,255,0.075), rgba(255,255,255,0.025)), var(--card-bg-strong); border: 1px solid var(--card-line); border-radius: 8px; padding: 22px 24px; diff --git a/web-ui/src/settings/components/PersonalizeSection.vue b/web-ui/src/settings/components/PersonalizeSection.vue index a774b7d..5face5b 100644 --- a/web-ui/src/settings/components/PersonalizeSection.vue +++ b/web-ui/src/settings/components/PersonalizeSection.vue @@ -11,13 +11,13 @@
知识关键字
AI 将根据关键字生成知识小卡片
-
知识提示词
补充风格或方向,系统会保证内容密度
-
@@ -76,12 +76,10 @@ function onDocClick(e: MouseEvent) { onMounted(() => { document.addEventListener('click', onDocClick) - // Find initial city - for (const p of Object.keys(props.s.citiesByProv)) { - for (const c of (props.s.citiesByProv as any)[p]) { - if (c.id === props.s.city) { activeProv.value = p; selectedCityName.value = c.name; break } - } - if (activeProv.value) break + const entries = Object.entries(props.s.citiesByProv as Record) + for (const [p, cs] of entries) { + const found = cs.find(c => c.id === props.s.city) + if (found) { activeProv.value = p; selectedCityName.value = found.name; break } } }) onUnmounted(() => document.removeEventListener('click', onDocClick)) diff --git a/web-ui/src/settings/components/PhotoSection.vue b/web-ui/src/settings/components/PhotoSection.vue index 18b6f08..71bc845 100644 --- a/web-ui/src/settings/components/PhotoSection.vue +++ b/web-ui/src/settings/components/PhotoSection.vue @@ -29,12 +29,20 @@ - +**/let Ks;const Pn=typeof window<"u"&&window.trustedTypes;if(Pn)try{Ks=Pn.createPolicy("vue",{createHTML:e=>e})}catch{}const Gi=Ks?e=>Ks.createHTML(e):e=>e,sl="http://www.w3.org/2000/svg",nl="http://www.w3.org/1998/Math/MathML",Ne=typeof document<"u"?document:null,Fn=Ne&&Ne.createElement("template"),il={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const i=t==="svg"?Ne.createElementNS(sl,e):t==="mathml"?Ne.createElementNS(nl,e):s?Ne.createElement(e,{is:s}):Ne.createElement(e);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>Ne.createTextNode(e),createComment:e=>Ne.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ne.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,i,r){const o=s?s.previousSibling:t.lastChild;if(i&&(i===r||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),s),!(i===r||!(i=i.nextSibling)););else{Fn.innerHTML=Gi(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const l=Fn.content;if(n==="svg"||n==="mathml"){const f=l.firstChild;for(;f.firstChild;)l.appendChild(f.firstChild);l.removeChild(f)}t.insertBefore(l,s)}return[o?o.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},rl=Symbol("_vtc");function ol(e,t,s){const n=e[rl];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Rn=Symbol("_vod"),ll=Symbol("_vsh"),cl=Symbol(""),fl=/(?:^|;)\s*display\s*:/;function ul(e,t,s){const n=e.style,i=ee(s);let r=!1;if(s&&!i){if(t)if(ee(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();s[l]==null&&Et(n,l,"")}else for(const o in t)s[o]==null&&Et(n,o,"");for(const o in s){o==="display"&&(r=!0);const l=s[o];l!=null?dl(e,o,!ee(t)&&t?t[o]:void 0,l)||Et(n,o,l):Et(n,o,"")}}else if(i){if(t!==s){const o=n[cl];o&&(s+=";"+o),n.cssText=s,r=fl.test(s)}}else t&&e.removeAttribute("style");Rn in e&&(e[Rn]=r?n.display:"",e[ll]&&(n.display="none"))}const Hn=/\s*!important$/;function Et(e,t,s){if(R(s))s.forEach(n=>Et(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=al(e,t);Hn.test(s)?e.setProperty(ct(n),s.replace(Hn,""),"important"):e[n]=s}}const Dn=["Webkit","Moz","ms"],Is={};function al(e,t){const s=Is[t];if(s)return s;let n=ye(t);if(n!=="filter"&&n in e)return Is[t]=n;n=Zn(n);for(let i=0;i$s||(ml.then(()=>$s=0),$s=Date.now());function bl(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;Re(vl(n,s.value),t,5,[n])};return s.value=e,s.attached=yl(),s}function vl(e,t){if(R(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const Kn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,wl=(e,t,s,n,i,r)=>{const o=i==="svg";t==="class"?ol(e,n,o):t==="style"?ul(e,s,n):ls(t)?cs(t)||gl(e,t,s,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):xl(e,t,n,o))?(Ln(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&kn(e,t,n,o,r,t!=="value")):e._isVueCE&&(Sl(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ee(n)))?Ln(e,ye(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),kn(e,t,n,o))};function xl(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Kn(t)&&D(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return Kn(t)&&ee(s)?!1:t in e}function Sl(e,t){const s=e._def.props;if(!s)return!1;const n=ye(t);return Array.isArray(s)?s.some(i=>ye(i)===n):Object.keys(s).some(i=>ye(i)===n)}const Tl=oe({patchProp:wl},il);let Un;function Cl(){return Un||(Un=Do(Tl))}const Al=((...e)=>{const t=Cl().createApp(...e),{mount:s}=t;return t.mount=n=>{const i=El(n);if(!i)return;const r=t._component;!D(r)&&!r.render&&!r.template&&(r.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const o=s(i,!1,Ol(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t});function Ol(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function El(e){return ee(e)?document.querySelector(e):e}const T=hs({layout:"single",showSeconds:!0,userZodiac:"射手座",wallpaperVisible:!0,photoFrameMode:!1,cardVisibility:{time:!0,weather:!0,zodiac:!0,knowledge:!0,ainews:!0,photo:!0},backgroundHtml:"",weather:null,horoscope:null,aiNews:[],knowledge:{content:"",keyword:""},photo:null});function Ml(){const e=window.__INITIAL_DATA__;e&&(e.layout&&(T.layout=e.layout),e.showSeconds!==void 0&&(T.showSeconds=e.showSeconds),e.userZodiac&&(T.userZodiac=e.userZodiac),e.wallpaperVisible!==void 0&&(T.wallpaperVisible=e.wallpaperVisible),e.photoFrameMode!==void 0&&(T.photoFrameMode=e.photoFrameMode),e.cardVisibility&&Object.assign(T.cardVisibility,e.cardVisibility),e.backgroundHtml&&(T.backgroundHtml=e.backgroundHtml))}function Ji(){const e=Ze("00:00"),t=Ze("1月1日 周一"),s=Ze("");let n=null,i="",r="";const o=[{m:1,d:1,name:"元旦"},{m:2,d:14,name:"情人节"},{m:3,d:8,name:"妇女节"},{m:4,d:5,name:"清明节"},{m:5,d:1,name:"劳动节"},{m:5,d:4,name:"青年节"},{m:6,d:1,name:"儿童节"},{m:7,d:1,name:"建党节"},{m:8,d:1,name:"建军节"},{m:9,d:10,name:"教师节"},{m:10,d:1,name:"国庆节"},{m:10,d:31,name:"万圣节"},{m:12,d:25,name:"圣诞节"}];function l(d){const a=d.getFullYear(),p=[];for(const w of o){const C=new Date(a,w.m-1,w.d);let N=Math.ceil((C.getTime()-d.getTime())/864e5);if(N>0&&N<=60&&p.push({diff:N,name:w.name}),N<0){const I=new Date(a+1,w.m-1,w.d);N=Math.ceil((I.getTime()-d.getTime())/864e5),N>0&&N<=60&&p.push({diff:N,name:w.name})}}return p.sort((w,C)=>w.diff-C.diff),p.length>0?`距${p[0].name}还有${p[0].diff}天`:""}function f(){const d=new Date,a=String(d.getHours()).padStart(2,"0"),p=String(d.getMinutes()).padStart(2,"0"),w=String(d.getSeconds()).padStart(2,"0"),C=T.showSeconds?`${a}:${p}:${w}`:`${a}:${p}`,N=d.getMonth()+1,I=d.getDate(),Q=["周日","周一","周二","周三","周四","周五","周六"][d.getDay()],U=`${N}月${I}日 ${Q}`;if(C!==i&&(e.value=C,i=C),U!==r){const k=l(d);t.value=U,s.value=k,r=U}}return sn(()=>{f(),n=window.setInterval(f,1e3)}),_s(()=>{n&&clearInterval(n)}),{timeStr:e,dateStr:t,holidayStr:s}}const Il=["innerHTML"],$l=He({__name:"TimeCard",setup(e){const{timeStr:t,dateStr:s,holidayStr:n}=Ji(),i=Ze(!1);let r=null;const o=mt(()=>n.value?`${s.value} 「${n.value}」`:s.value);return Ye(t,l=>{(l.endsWith(":00:00")||l.endsWith(":00"))&&(i.value=!1,requestAnimationFrame(()=>{i.value=!0}),r&&clearTimeout(r),r=window.setTimeout(()=>{i.value=!1},6e3))}),_s(()=>{r&&clearTimeout(r)}),(l,f)=>(O(),H(te,null,[F("div",{class:"date",innerHTML:o.value},null,8,Il),F("div",{class:as(["time",{"hourly-glow":i.value}])},K(M(t)),3)],64))}}),We=(e,t)=>{const s=e.__vccOpts||e;for(const[n,i]of t)s[n]=i;return s},Zi=We($l,[["__scopeId","data-v-fc6abe16"]]),Pl={key:0,class:"current-weather"},Fl={class:"weather-forecast"},Rl={class:"forecast-time"},Hl={class:"forecast-icon"},Dl={class:"forecast-temp"},Nl={key:0,class:"forecast-pop"},kl={class:"daily-forecast"},Ll={style:{opacity:"0.6","font-size":"10px"}},Vl={class:"daily-icon"},jl={class:"forecast-temp"},Kl=He({__name:"WeatherCard",setup(e){return(t,s)=>(O(),H(te,null,[M(T).weather?.current?(O(),H("div",Pl,K(M(T).weather.current),1)):W("",!0),M(T).weather?.hourly?.length?(O(),H(te,{key:1},[s[0]||(s[0]=F("div",{class:"forecast-title"},"24小时预报",-1)),F("div",Fl,[(O(!0),H(te,null,is(M(T).weather.hourly,n=>(O(),H("div",{class:"forecast-item",key:n.time},[F("div",Rl,K(n.time),1),F("div",Hl,K(n.icon),1),F("div",Dl,K(n.temp),1),n.pop&&n.pop!=="0"?(O(),H("div",Nl,K(n.pop)+"%",1)):W("",!0)]))),128))])],64)):W("",!0),M(T).weather?.daily?.length?(O(),H(te,{key:2},[s[1]||(s[1]=F("div",{class:"forecast-title",style:{"margin-top":"12px"}},"7日预报",-1)),F("div",kl,[(O(!0),H(te,null,is(M(T).weather.daily,n=>(O(),H("div",{class:"daily-item",key:n.date},[F("div",Ll,K(n.date),1),F("div",Vl,K(n.icon),1),F("div",jl,K(n.tempMin)+"°~"+K(n.tempMax)+"°",1)]))),128))])],64)):W("",!0)],64))}}),Yi=We(Kl,[["__scopeId","data-v-c377fb97"]]),Ul={白羊座:{icon:"♈",date:"3.21-4.19"},金牛座:{icon:"♉",date:"4.20-5.20"},双子座:{icon:"♊",date:"5.21-6.21"},巨蟹座:{icon:"♋",date:"6.22-7.22"},狮子座:{icon:"♌",date:"7.23-8.22"},处女座:{icon:"♍",date:"8.23-9.22"},天秤座:{icon:"♎",date:"9.23-10.23"},天蝎座:{icon:"♏",date:"10.24-11.22"},射手座:{icon:"♐",date:"11.23-12.21"},摩羯座:{icon:"♑",date:"12.22-1.19"},水瓶座:{icon:"♒",date:"1.20-2.18"},双鱼座:{icon:"♓",date:"2.19-3.20"}},Tt={all:"#e0e0e0",love:"#ff6b9d",work:"#4fc3f7",money:"#ffd54f",health:"#81c784"};function Wl(){const e=mt(()=>Ul[T.userZodiac]||{icon:"✨",date:""}),t=mt(()=>T.horoscope);return{zodiacInfo:e,data:t}}const Bl={class:"zodiac-text"},zl={class:"zodiac-title"},ql={class:"zodiac-date"},Gl={class:"zodiac-bar-label"},Jl={class:"zodiac-bar-track"},Zl={class:"zodiac-bar-val"},Yl={key:0,class:"zodiac-tags"},Xl={key:0,class:"zodiac-tag"},Ql={key:1,class:"zodiac-tag"},ec={key:2,class:"zodiac-tag"},tc={key:1,class:"zodiac-summary"},sc={key:1,style:{opacity:"0.4","font-size":"12px","margin-top":"8px"}},nc=He({__name:"ZodiacCard",setup(e){const{zodiacInfo:t,data:s}=Wl(),n=mt(()=>s.value?[{label:"综合",val:parseInt(s.value.all)||0,color:Tt.all},{label:"爱情",val:parseInt(s.value.love)||0,color:Tt.love},{label:"工作",val:parseInt(s.value.work)||0,color:Tt.work},{label:"财运",val:parseInt(s.value.money)||0,color:Tt.money},{label:"健康",val:parseInt(s.value.health)||0,color:Tt.health}]:[]),i=mt(()=>s.value?.luckyColor||s.value?.luckyNum||s.value?.noble);return(r,o)=>(O(),H("div",Bl,[F("div",zl,K(M(t).icon)+" "+K(M(T).userZodiac)+"运势",1),F("div",ql,K(M(t).date),1),M(s)?(O(),H(te,{key:0},[(O(!0),H(te,null,is(n.value,l=>(O(),H("div",{class:"zodiac-bar",key:l.label},[F("span",Gl,K(l.label),1),F("div",Jl,[F("div",{class:"zodiac-bar-fill",style:lt({width:l.val+"%",background:l.color})},null,4)]),F("span",Zl,K(l.val)+"%",1)]))),128)),i.value?(O(),H("div",Yl,[M(s).luckyColor?(O(),H("span",Xl,"🎨 "+K(M(s).luckyColor),1)):W("",!0),M(s).luckyNum?(O(),H("span",Ql,"🔢 "+K(M(s).luckyNum),1)):W("",!0),M(s).noble?(O(),H("span",ec,"⭐ "+K(M(s).noble),1)):W("",!0)])):W("",!0),M(s).summary?(O(),H("div",tc,K(M(s).summary),1)):W("",!0)],64)):(O(),H("div",sc,"运势加载中..."))]))}}),Xi=We(nc,[["__scopeId","data-v-bcc0f377"]]),ic={class:"knowledge-card"},rc={class:"knowledge-header"},oc={key:0,class:"knowledge-keyword-tag"},lc={key:0,class:"knowledge-body"},cc={class:"knowledge-text"},fc={key:1,class:"knowledge-placeholder"},uc=He({__name:"KnowledgeCard",setup(e){return(t,s)=>(O(),H("div",ic,[F("div",rc,[s[0]||(s[0]=F("span",{class:"knowledge-label"},"知识卡片",-1)),M(T).knowledge.keyword?(O(),H("span",oc,"#"+K(M(T).knowledge.keyword),1)):W("",!0)]),s[2]||(s[2]=F("div",{class:"knowledge-divider"},null,-1)),M(T).knowledge.content?(O(),H("div",lc,[s[1]||(s[1]=F("span",{class:"knowledge-quote"},'"',-1)),F("span",cc,K(M(T).knowledge.content),1)])):(O(),H("div",fc,"请在设置中配置知识关键字"))]))}}),Qi=We(uc,[["__scopeId","data-v-4fb593ad"]]);function ac(e){const t=String(e||"").trim();return/^(https?:|data:image\/)/i.test(t)?t:""}const dc=["src"],hc={class:"ainews-body"},pc={class:"ainews-title-row"},gc={class:"ainews-title"},_c={class:"ainews-source"},mc={key:0,class:"ainews-desc"},yc=He({__name:"AINewsCard",setup(e){function t(s){return s?.length>10?s.substring(5,10):s}return(s,n)=>(O(),H("div",null,[n[1]||(n[1]=F("div",{class:"ainews-header"},"🤖 AI 资讯",-1)),(O(!0),H(te,null,is(M(T).aiNews.slice(0,5),(i,r)=>(O(),H("div",{class:"ainews-item",key:r},[M(ac)(i.picUrl)?(O(),H("img",{key:0,class:"ainews-img",src:i.picUrl,loading:"lazy",onError:n[0]||(n[0]=o=>o.target.style.display="none")},null,40,dc)):W("",!0),F("div",hc,[F("div",pc,[F("span",gc,K(i.title),1),F("span",_c,K(i.source)+" · "+K(t(i.ctime)),1)]),i.description?(O(),H("div",mc,K(i.description),1)):W("",!0)])]))),128))]))}}),er=We(yc,[["__scopeId","data-v-842d17af"]]),bc={id:"layout-single"},vc={id:"info",class:"card"},wc={key:2,class:"divider"},xc={key:4,class:"divider"},Sc={key:6,class:"divider"},Tc=He({__name:"SingleLayout",setup(e){return(t,s)=>(O(),H("div",bc,[F("div",vc,[M(T).cardVisibility.time?(O(),Je(Zi,{key:0})):W("",!0),s[0]||(s[0]=F("div",{class:"divider"},null,-1)),M(T).cardVisibility.ainews?(O(),Je(er,{key:1})):W("",!0),M(T).cardVisibility.ainews?(O(),H("div",wc)):W("",!0),M(T).cardVisibility.knowledge?(O(),Je(Qi,{key:3})):W("",!0),M(T).cardVisibility.knowledge?(O(),H("div",xc)):W("",!0),M(T).cardVisibility.weather?(O(),Je(Yi,{key:5})):W("",!0),M(T).cardVisibility.weather?(O(),H("div",Sc)):W("",!0),M(T).cardVisibility.zodiac?(O(),Je(Xi,{key:7})):W("",!0)])]))}}),Cc=We(Tc,[["__scopeId","data-v-89757d39"]]),Ac={key:0,id:"card-photo",class:"card"},Oc={class:"photo-wrap"},Ec=["src"],Mc={class:"photo-info"},Ic={class:"photo-counter"},$c={class:"photo-progress"},Pc=He({__name:"PhotoCard",setup(e){const t=Ze(!1),s=Ze();return Ye(()=>T.photo?.src,()=>{if(t.value=!1,!s.value)return;const n=s.value;n.style.transition="none",n.style.width="0%",requestAnimationFrame(()=>{requestAnimationFrame(()=>{const i=T.photo?.interval||15;n.style.transition=`width ${i}s linear`,n.style.width="100%"})})}),(n,i)=>M(T).photo?.src?(O(),H("div",Ac,[F("div",Oc,[F("img",{src:M(T).photo.src,alt:"",onLoad:i[0]||(i[0]=r=>t.value=!0),style:lt({opacity:t.value?1:0})},null,44,Ec),F("div",Mc,[F("span",Ic,K(M(T).photo.counter),1),F("div",$c,[F("div",{class:"photo-progress-bar",ref_key:"progressBar",ref:s},null,512)])])])])):W("",!0)}}),Fc=We(Pc,[["__scopeId","data-v-32718552"]]),Rc={id:"layout-multi"},Hc={key:0,id:"card-time",class:"card"},Dc={key:1,id:"card-zodiac",class:"card"},Nc={key:2,id:"card-knowledge",class:"card"},kc={key:3,id:"card-ainews",class:"card"},Lc={key:4,id:"card-weather",class:"card"},Vc=He({__name:"MultiLayout",setup(e){return(t,s)=>(O(),H("div",Rc,[M(T).cardVisibility.time?(O(),H("div",Hc,[ce(Zi)])):W("",!0),M(T).cardVisibility.zodiac?(O(),H("div",Dc,[ce(Xi)])):W("",!0),M(T).cardVisibility.knowledge?(O(),H("div",Nc,[ce(Qi)])):W("",!0),M(T).cardVisibility.ainews?(O(),H("div",kc,[ce(er)])):W("",!0),M(T).cardVisibility.weather?(O(),H("div",Lc,[ce(Yi)])):W("",!0),ce(Fc)]))}}),jc=We(Vc,[["__scopeId","data-v-877a01f5"]]),Kc=["src"],Uc=["src"],Wc={class:"photo-frame-clock"},Bc={class:"photo-frame-date"},zc=He({__name:"PhotoFrame",setup(e){const{timeStr:t,dateStr:s}=Ji(),n=Ze(!1);return Ye(()=>T.photo?.src,()=>{!T.photoFrameMode||!T.photo?.src||(n.value=!1,setTimeout(()=>{n.value=!0},400))}),(i,r)=>M(T).photoFrameMode?(O(),H(te,{key:0},[F("img",{id:"photo-frame-bg",src:M(T).photo?.src,alt:"",style:lt({opacity:n.value?1:0})},null,12,Kc),F("img",{id:"photo-frame-img",src:M(T).photo?.src,alt:"",style:lt({opacity:n.value?1:0})},null,12,Uc),F("div",Wc,K(M(t)),1),F("div",Bc,K(M(s)),1)],64)):W("",!0)}}),qc=We(zc,[["__scopeId","data-v-fd359286"]]),Gc=He({__name:"App",setup(e){const t=Ze();function s(n){const i=t.value;i&&(i.innerHTML=n,i.querySelectorAll("script").forEach(r=>{const o=document.createElement("script");r.src?o.src=r.src:o.textContent=r.textContent;for(const l of r.attributes)o.setAttribute(l.name,l.value);r.parentNode?.replaceChild(o,r)}))}return sn(()=>{Ml(),T.backgroundHtml&&T.wallpaperVisible&&s(T.backgroundHtml)}),Ye(()=>T.backgroundHtml,n=>{T.wallpaperVisible&&s(n)}),Ye(()=>T.wallpaperVisible,n=>{const i=t.value;i&&(n&&T.backgroundHtml?s(T.backgroundHtml):i.innerHTML="")}),(n,i)=>(O(),H(te,null,[F("div",{id:"bg-mount",ref_key:"bgMount",ref:t},null,512),M(T).photoFrameMode?W("",!0):(O(),H(te,{key:0},[M(T).layout==="single"?(O(),Je(Cc,{key:0})):(O(),Je(jc,{key:1}))],64)),ce(qc),i[0]||(i[0]=F("div",{id:"author"},"绝尘",-1))],64))}});function Ct(e){return typeof e=="string"?JSON.parse(e):e}const Wn=new Map;function At(e,t){const s=JSON.stringify(t);return Wn.get(e)===s?!1:(Wn.set(e,s),!0)}function Jc(){const e=window;e.updateHoroscopeFromGo=t=>{const s=Ct(t);At("horoscope",s)&&(T.horoscope=s)},e.updateAINewsFromGo=t=>{const s=Ct(t);s?.length&&At("ainews",s)&&(T.aiNews=s)},e.updateKnowledgeFromGo=t=>{const s=Ct(t);At("knowledge",s)&&(T.knowledge=s)},e.updateWeatherFromGo=t=>{const s=Ct(t);At("weather",s)&&(T.weather=s)},e.updatePhotoFromGo=t=>{const s=Ct(t);s?.src&&At("photo",s)&&(T.photo=s)},e.setCardVisible=(t,s)=>{t in T.cardVisibility&&(T.cardVisibility[t]=s)},e.setWallpaperVisible=t=>{T.wallpaperVisible=t},e.setPhotoFrameMode=t=>{T.photoFrameMode=t},e.setShowSeconds=t=>{T.showSeconds=t},Object.defineProperty(e,"userZodiac",{set(t){T.userZodiac=t},get(){return T.userZodiac}}),e.__updateBackgroundHtml=t=>{T.backgroundHtml=t}}Jc();Al(Gc).mount("#app"); +
diff --git a/web/settings.html b/web/settings.html index fdbf3d6..143d472 100644 --- a/web/settings.html +++ b/web/settings.html @@ -7,20 +7,20 @@ * @vue/shared v3.5.34 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Qs(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const G={},dt=[],Re=()=>{},nr=()=>!1,ps=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),hs=e=>e.startsWith("onUpdate:"),ie=Object.assign,en=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},fi=Object.prototype.hasOwnProperty,H=(e,t)=>fi.call(e,t),R=Array.isArray,pt=e=>Ht(e)==="[object Map]",gs=e=>Ht(e)==="[object Set]",Sn=e=>Ht(e)==="[object Date]",F=e=>typeof e=="function",X=e=>typeof e=="string",ke=e=>typeof e=="symbol",U=e=>e!==null&&typeof e=="object",rr=e=>(U(e)||F(e))&&F(e.then)&&F(e.catch),ir=Object.prototype.toString,Ht=e=>ir.call(e),ui=e=>Ht(e).slice(8,-1),or=e=>Ht(e)==="[object Object]",tn=e=>X(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,At=Qs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ms=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},ai=/-\w/g,ye=ms(e=>e.replace(ai,t=>t.slice(1).toUpperCase())),di=/\B([A-Z])/g,ct=ms(e=>e.replace(di,"-$1").toLowerCase()),lr=ms(e=>e.charAt(0).toUpperCase()+e.slice(1)),Es=ms(e=>e?`on${lr(e)}`:""),Me=(e,t)=>!Object.is(e,t),es=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},vs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Cn;const bs=()=>Cn||(Cn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ft(e){if(R(e)){const t={};for(let s=0;s{if(s){const n=s.split(hi);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ze(e){let t="";if(X(e))t=e;else if(R(e))for(let s=0;sKt(s,t))}const ur=e=>!!(e&&e.__v_isRef===!0),ue=e=>X(e)?e:e==null?"":R(e)||U(e)&&(e.toString===ir||!F(e.toString))?ur(e)?ue(e.value):JSON.stringify(e,ar,2):String(e),ar=(e,t)=>ur(t)?ar(e,t.value):pt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,r],i)=>(s[Is(n,i)+" =>"]=r,s),{})}:gs(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Is(s))}:ke(t)?Is(t):U(t)&&!R(t)&&!or(t)?String(t):t,Is=(e,t="")=>{var s;return ke(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/** +**/function Qs(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const G={},pt=[],Re=()=>{},nr=()=>!1,ps=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),hs=e=>e.startsWith("onUpdate:"),ie=Object.assign,en=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},ui=Object.prototype.hasOwnProperty,K=(e,t)=>ui.call(e,t),R=Array.isArray,ht=e=>Ht(e)==="[object Map]",gs=e=>Ht(e)==="[object Set]",Sn=e=>Ht(e)==="[object Date]",F=e=>typeof e=="function",X=e=>typeof e=="string",ke=e=>typeof e=="symbol",U=e=>e!==null&&typeof e=="object",rr=e=>(U(e)||F(e))&&F(e.then)&&F(e.catch),ir=Object.prototype.toString,Ht=e=>ir.call(e),ai=e=>Ht(e).slice(8,-1),or=e=>Ht(e)==="[object Object]",tn=e=>X(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,At=Qs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ms=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},fi=/-\w/g,ye=ms(e=>e.replace(fi,t=>t.slice(1).toUpperCase())),di=/\B([A-Z])/g,ut=ms(e=>e.replace(di,"-$1").toLowerCase()),lr=ms(e=>e.charAt(0).toUpperCase()+e.slice(1)),Es=ms(e=>e?`on${lr(e)}`:""),Me=(e,t)=>!Object.is(e,t),es=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},vs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Cn;const bs=()=>Cn||(Cn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ft(e){if(R(e)){const t={};for(let s=0;s{if(s){const n=s.split(hi);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ze(e){let t="";if(X(e))t=e;else if(R(e))for(let s=0;sKt(s,t))}const ar=e=>!!(e&&e.__v_isRef===!0),ae=e=>X(e)?e:e==null?"":R(e)||U(e)&&(e.toString===ir||!F(e.toString))?ar(e)?ae(e.value):JSON.stringify(e,fr,2):String(e),fr=(e,t)=>ar(t)?fr(e,t.value):ht(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,r],i)=>(s[Is(n,i)+" =>"]=r,s),{})}:gs(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Is(s))}:ke(t)?Is(t):U(t)&&!R(t)&&!or(t)?String(t):t,Is=(e,t="")=>{var s;return ke(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/** * @vue/reactivity v3.5.34 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let re;class _i{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&re&&(re.active?(this.parent=re,this.index=(re.scopes||(re.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t0&&--this._on===0){if(re===this)re=this.prevScope;else{let t=re;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s0)return;if(It){let t=It;for(It=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;Et;){let t=Et;for(Et=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function gr(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function mr(e){let t,s=e.depsTail,n=s;for(;n;){const r=n.prevDep;n.version===-1?(n===s&&(s=r),rn(n),Si(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=r}e.deps=t,e.depsTail=s}function Vs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(vr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function vr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Dt)||(e.globalVersion=Dt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Vs(e))))return;e.flags|=2;const t=e.dep,s=Y,n=_e;Y=e,_e=!0;try{gr(e);const r=e.fn(e._value);(t.version===0||Me(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Y=s,_e=n,mr(e),e.flags&=-3}}function rn(e,t=!1){const{dep:s,prevSub:n,nextSub:r}=e;if(n&&(n.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let i=s.computed.deps;i;i=i.nextDep)rn(i,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Si(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let _e=!0;const br=[];function He(){br.push(_e),_e=!1}function Ke(){const e=br.pop();_e=e===void 0?!0:e}function Tn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=Y;Y=void 0;try{t()}finally{Y=s}}}let Dt=0;class Ci{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class on{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Y||!_e||Y===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==Y)s=this.activeLink=new Ci(Y,this),Y.deps?(s.prevDep=Y.depsTail,Y.depsTail.nextDep=s,Y.depsTail=s):Y.deps=Y.depsTail=s,xr(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=Y.depsTail,s.nextDep=void 0,Y.depsTail.nextDep=s,Y.depsTail=s,Y.deps===s&&(Y.deps=n)}return s}trigger(t){this.version++,Dt++,this.notify(t)}notify(t){sn();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{nn()}}}function xr(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)xr(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Ls=new WeakMap,rt=Symbol(""),Bs=Symbol(""),jt=Symbol("");function oe(e,t,s){if(_e&&Y){let n=Ls.get(e);n||Ls.set(e,n=new Map);let r=n.get(s);r||(n.set(s,r=new on),r.map=n,r.key=s),r.track()}}function Ve(e,t,s,n,r,i){const o=Ls.get(e);if(!o){Dt++;return}const l=f=>{f&&f.trigger()};if(sn(),t==="clear")o.forEach(l);else{const f=R(e),p=f&&tn(s);if(f&&s==="length"){const u=Number(n);o.forEach((d,y)=>{(y==="length"||y===jt||!ke(y)&&y>=u)&&l(d)})}else switch((s!==void 0||o.has(void 0))&&l(o.get(s)),p&&l(o.get(jt)),t){case"add":f?p&&l(o.get("length")):(l(o.get(rt)),pt(e)&&l(o.get(Bs)));break;case"delete":f||(l(o.get(rt)),pt(e)&&l(o.get(Bs)));break;case"set":pt(e)&&l(o.get(rt));break}}nn()}function ut(e){const t=B(e);return t===e?t:(oe(t,"iterate",jt),ve(e)?t:t.map(we))}function xs(e){return oe(e=B(e),"iterate",jt),e}function Ie(e,t){return Ue(e)?bt(it(e)?we(t):t):we(t)}const Ti={__proto__:null,[Symbol.iterator](){return Ms(this,Symbol.iterator,e=>Ie(this,e))},concat(...e){return ut(this).concat(...e.map(t=>R(t)?ut(t):t))},entries(){return Ms(this,"entries",e=>(e[1]=Ie(this,e[1]),e))},every(e,t){return De(this,"every",e,t,void 0,arguments)},filter(e,t){return De(this,"filter",e,t,s=>s.map(n=>Ie(this,n)),arguments)},find(e,t){return De(this,"find",e,t,s=>Ie(this,s),arguments)},findIndex(e,t){return De(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return De(this,"findLast",e,t,s=>Ie(this,s),arguments)},findLastIndex(e,t){return De(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return De(this,"forEach",e,t,void 0,arguments)},includes(...e){return Rs(this,"includes",e)},indexOf(...e){return Rs(this,"indexOf",e)},join(e){return ut(this).join(e)},lastIndexOf(...e){return Rs(this,"lastIndexOf",e)},map(e,t){return De(this,"map",e,t,void 0,arguments)},pop(){return Ct(this,"pop")},push(...e){return Ct(this,"push",e)},reduce(e,...t){return Pn(this,"reduce",e,t)},reduceRight(e,...t){return Pn(this,"reduceRight",e,t)},shift(){return Ct(this,"shift")},some(e,t){return De(this,"some",e,t,void 0,arguments)},splice(...e){return Ct(this,"splice",e)},toReversed(){return ut(this).toReversed()},toSorted(e){return ut(this).toSorted(e)},toSpliced(...e){return ut(this).toSpliced(...e)},unshift(...e){return Ct(this,"unshift",e)},values(){return Ms(this,"values",e=>Ie(this,e))}};function Ms(e,t,s){const n=xs(e),r=n[t]();return n!==e&&!ve(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=s(i.value)),i}),r}const Pi=Array.prototype;function De(e,t,s,n,r,i){const o=xs(e),l=o!==e&&!ve(e),f=o[t];if(f!==Pi[t]){const d=f.apply(e,i);return l?we(d):d}let p=s;o!==e&&(l?p=function(d,y){return s.call(this,Ie(e,d),y,e)}:s.length>2&&(p=function(d,y){return s.call(this,d,y,e)}));const u=f.call(o,p,n);return l&&r?r(u):u}function Pn(e,t,s,n){const r=xs(e),i=r!==e&&!ve(e);let o=s,l=!1;r!==e&&(i?(l=n.length===0,o=function(p,u,d){return l&&(l=!1,p=Ie(e,p)),s.call(this,p,Ie(e,u),d,e)}):s.length>3&&(o=function(p,u,d){return s.call(this,p,u,d,e)}));const f=r[t](o,...n);return l?Ie(e,f):f}function Rs(e,t,s){const n=B(e);oe(n,"iterate",jt);const r=n[t](...s);return(r===-1||r===!1)&&fn(s[0])?(s[0]=B(s[0]),n[t](...s)):r}function Ct(e,t,s=[]){He(),sn();const n=B(e)[t].apply(e,s);return nn(),Ke(),n}const Oi=Qs("__proto__,__v_isRef,__isVue"),yr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ke));function Ai(e){ke(e)||(e=String(e));const t=B(this);return oe(t,"has",e),t.hasOwnProperty(e)}class _r{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(s==="__v_isReactive")return!r;if(s==="__v_isReadonly")return r;if(s==="__v_isShallow")return i;if(s==="__v_raw")return n===(r?i?Ni:Tr:i?Cr:Sr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const o=R(t);if(!r){let f;if(o&&(f=Ti[s]))return f;if(s==="hasOwnProperty")return Ai}const l=Reflect.get(t,s,le(t)?t:n);if((ke(s)?yr.has(s):Oi(s))||(r||oe(t,"get",s),i))return l;if(le(l)){const f=o&&tn(s)?l:l.value;return r&&U(f)?Ks(f):f}return U(l)?r?Ks(l):Nt(l):l}}class wr extends _r{constructor(t=!1){super(!1,t)}set(t,s,n,r){let i=t[s];const o=R(t)&&tn(s);if(!this._isShallow){const p=Ue(i);if(!ve(n)&&!Ue(n)&&(i=B(i),n=B(n)),!o&&le(i)&&!le(n))return p||(i.value=n),!0}const l=o?Number(s)e,Zt=e=>Reflect.getPrototypeOf(e);function Ri(e,t,s){return function(...n){const r=this.__v_raw,i=B(r),o=pt(i),l=e==="entries"||e===Symbol.iterator&&o,f=e==="keys"&&o,p=r[e](...n),u=s?Hs:t?bt:we;return!t&&oe(i,"iterate",f?Bs:rt),ie(Object.create(p),{next(){const{value:d,done:y}=p.next();return y?{value:d,done:y}:{value:l?[u(d[0]),u(d[1])]:u(d),done:y}}})}}function Xt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ki(e,t){const s={get(r){const i=this.__v_raw,o=B(i),l=B(r);e||(Me(r,l)&&oe(o,"get",r),oe(o,"get",l));const{has:f}=Zt(o),p=t?Hs:e?bt:we;if(f.call(o,r))return p(i.get(r));if(f.call(o,l))return p(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&oe(B(r),"iterate",rt),r.size},has(r){const i=this.__v_raw,o=B(i),l=B(r);return e||(Me(r,l)&&oe(o,"has",r),oe(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,f=B(l),p=t?Hs:e?bt:we;return!e&&oe(f,"iterate",rt),l.forEach((u,d)=>r.call(i,p(u),p(d),o))}};return ie(s,e?{add:Xt("add"),set:Xt("set"),delete:Xt("delete"),clear:Xt("clear")}:{add(r){const i=B(this),o=Zt(i),l=B(r),f=!t&&!ve(r)&&!Ue(r)?l:r;return o.has.call(i,f)||Me(r,f)&&o.has.call(i,r)||Me(l,f)&&o.has.call(i,l)||(i.add(f),Ve(i,"add",f,f)),this},set(r,i){!t&&!ve(i)&&!Ue(i)&&(i=B(i));const o=B(this),{has:l,get:f}=Zt(o);let p=l.call(o,r);p||(r=B(r),p=l.call(o,r));const u=f.call(o,r);return o.set(r,i),p?Me(i,u)&&Ve(o,"set",r,i):Ve(o,"add",r,i),this},delete(r){const i=B(this),{has:o,get:l}=Zt(i);let f=o.call(i,r);f||(r=B(r),f=o.call(i,r)),l&&l.call(i,r);const p=i.delete(r);return f&&Ve(i,"delete",r,void 0),p},clear(){const r=B(this),i=r.size!==0,o=r.clear();return i&&Ve(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{s[r]=Ri(r,e,t)}),s}function ln(e,t){const s=ki(e,t);return(n,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?n:Reflect.get(H(s,r)&&r in n?s:n,r,i)}const Fi={get:ln(!1,!1)},Di={get:ln(!1,!0)},ji={get:ln(!0,!1)};const Sr=new WeakMap,Cr=new WeakMap,Tr=new WeakMap,Ni=new WeakMap;function Vi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Li(e){return e.__v_skip||!Object.isExtensible(e)?0:Vi(ui(e))}function Nt(e){return Ue(e)?e:cn(e,!1,Ii,Fi,Sr)}function Bi(e){return cn(e,!1,Mi,Di,Cr)}function Ks(e){return cn(e,!0,$i,ji,Tr)}function cn(e,t,s,n,r){if(!U(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=Li(e);if(i===0)return e;const o=r.get(e);if(o)return o;const l=new Proxy(e,i===2?n:s);return r.set(e,l),l}function it(e){return Ue(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function Ue(e){return!!(e&&e.__v_isReadonly)}function ve(e){return!!(e&&e.__v_isShallow)}function fn(e){return e?!!e.__v_raw:!1}function B(e){const t=e&&e.__v_raw;return t?B(t):e}function Hi(e){return!H(e,"__v_skip")&&Object.isExtensible(e)&&cr(e,"__v_skip",!0),e}const we=e=>U(e)?Nt(e):e,bt=e=>U(e)?Ks(e):e;function le(e){return e?e.__v_isRef===!0:!1}function ot(e){return Ki(e,!1)}function Ki(e,t){return le(e)?e:new Ui(e,t)}class Ui{constructor(t,s){this.dep=new on,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:B(t),this._value=s?t:we(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||ve(t)||Ue(t);t=n?t:B(t),Me(t,s)&&(this._rawValue=t,this._value=n?t:we(t),this.dep.trigger())}}function xe(e){return le(e)?e.value:e}const Wi={get:(e,t,s)=>t==="__v_raw"?e:xe(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const r=e[t];return le(r)&&!le(s)?(r.value=s,!0):Reflect.set(e,t,s,n)}};function Pr(e){return it(e)?e:new Proxy(e,Wi)}class Ji{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new on(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Dt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Y!==this)return hr(this,!0),!0}get value(){const t=this.dep.track();return vr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Gi(e,t,s=!1){let n,r;return F(e)?n=e:(n=e.get,r=e.set),new Ji(n,r,s)}const Qt={},ns=new WeakMap;let st;function qi(e,t=!1,s=st){if(s){let n=ns.get(s);n||ns.set(s,n=[]),n.push(e)}}function zi(e,t,s=G){const{immediate:n,deep:r,once:i,scheduler:o,augmentJob:l,call:f}=s,p=I=>r?I:ve(I)||r===!1||r===0?Le(I,1):Le(I);let u,d,y,O,L=!1,k=!1;if(le(e)?(d=()=>e.value,L=ve(e)):it(e)?(d=()=>p(e),L=!0):R(e)?(k=!0,L=e.some(I=>it(I)||ve(I)),d=()=>e.map(I=>{if(le(I))return I.value;if(it(I))return p(I);if(F(I))return f?f(I,2):I()})):F(e)?t?d=f?()=>f(e,2):e:d=()=>{if(y){He();try{y()}finally{Ke()}}const I=st;st=u;try{return f?f(e,3,[O]):e(O)}finally{st=I}}:d=Re,t&&r){const I=d,ee=r===!0?1/0:r;d=()=>Le(I(),ee)}const $=wi(),T=()=>{u.stop(),$&&$.active&&en($.effects,u)};if(i&&t){const I=t;t=(...ee)=>{I(...ee),T()}}let P=k?new Array(e.length).fill(Qt):Qt;const j=I=>{if(!(!(u.flags&1)||!u.dirty&&!I))if(t){const ee=u.run();if(r||L||(k?ee.some((Je,Se)=>Me(Je,P[Se])):Me(ee,P))){y&&y();const Je=st;st=u;try{const Se=[ee,P===Qt?void 0:k&&P[0]===Qt?[]:P,O];P=ee,f?f(t,3,Se):t(...Se)}finally{st=Je}}}else u.run()};return l&&l(j),u=new dr(d),u.scheduler=o?()=>o(j,!1):j,O=I=>qi(I,!1,u),y=u.onStop=()=>{const I=ns.get(u);if(I){if(f)f(I,4);else for(const ee of I)ee();ns.delete(u)}},t?n?j(!0):P=u.run():o?o(j.bind(null,!0),!0):u.run(),T.pause=u.pause.bind(u),T.resume=u.resume.bind(u),T.stop=T,T}function Le(e,t=1/0,s){if(t<=0||!U(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,le(e))Le(e.value,t,s);else if(R(e))for(let n=0;n{Le(n,t,s)});else if(or(e)){for(const n in e)Le(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Le(e[n],t,s)}return e}/** +**/let re;class _i{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&re&&(re.active?(this.parent=re,this.index=(re.scopes||(re.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t0&&--this._on===0){if(re===this)re=this.prevScope;else{let t=re;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s0)return;if(It){let t=It;for(It=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;Et;){let t=Et;for(Et=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function gr(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function mr(e){let t,s=e.depsTail,n=s;for(;n;){const r=n.prevDep;n.version===-1?(n===s&&(s=r),rn(n),Si(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=r}e.deps=t,e.depsTail=s}function Vs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(vr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function vr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Dt)||(e.globalVersion=Dt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Vs(e))))return;e.flags|=2;const t=e.dep,s=Y,n=_e;Y=e,_e=!0;try{gr(e);const r=e.fn(e._value);(t.version===0||Me(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Y=s,_e=n,mr(e),e.flags&=-3}}function rn(e,t=!1){const{dep:s,prevSub:n,nextSub:r}=e;if(n&&(n.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let i=s.computed.deps;i;i=i.nextDep)rn(i,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Si(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let _e=!0;const br=[];function He(){br.push(_e),_e=!1}function Ke(){const e=br.pop();_e=e===void 0?!0:e}function Tn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=Y;Y=void 0;try{t()}finally{Y=s}}}let Dt=0;class Ci{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class on{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Y||!_e||Y===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==Y)s=this.activeLink=new Ci(Y,this),Y.deps?(s.prevDep=Y.depsTail,Y.depsTail.nextDep=s,Y.depsTail=s):Y.deps=Y.depsTail=s,xr(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=Y.depsTail,s.nextDep=void 0,Y.depsTail.nextDep=s,Y.depsTail=s,Y.deps===s&&(Y.deps=n)}return s}trigger(t){this.version++,Dt++,this.notify(t)}notify(t){sn();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{nn()}}}function xr(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)xr(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Ls=new WeakMap,rt=Symbol(""),Bs=Symbol(""),jt=Symbol("");function oe(e,t,s){if(_e&&Y){let n=Ls.get(e);n||Ls.set(e,n=new Map);let r=n.get(s);r||(n.set(s,r=new on),r.map=n,r.key=s),r.track()}}function Ve(e,t,s,n,r,i){const o=Ls.get(e);if(!o){Dt++;return}const l=u=>{u&&u.trigger()};if(sn(),t==="clear")o.forEach(l);else{const u=R(e),p=u&&tn(s);if(u&&s==="length"){const a=Number(n);o.forEach((d,y)=>{(y==="length"||y===jt||!ke(y)&&y>=a)&&l(d)})}else switch((s!==void 0||o.has(void 0))&&l(o.get(s)),p&&l(o.get(jt)),t){case"add":u?p&&l(o.get("length")):(l(o.get(rt)),ht(e)&&l(o.get(Bs)));break;case"delete":u||(l(o.get(rt)),ht(e)&&l(o.get(Bs)));break;case"set":ht(e)&&l(o.get(rt));break}}nn()}function ft(e){const t=H(e);return t===e?t:(oe(t,"iterate",jt),ve(e)?t:t.map(we))}function xs(e){return oe(e=H(e),"iterate",jt),e}function Ie(e,t){return Ue(e)?bt(it(e)?we(t):t):we(t)}const Ti={__proto__:null,[Symbol.iterator](){return Ms(this,Symbol.iterator,e=>Ie(this,e))},concat(...e){return ft(this).concat(...e.map(t=>R(t)?ft(t):t))},entries(){return Ms(this,"entries",e=>(e[1]=Ie(this,e[1]),e))},every(e,t){return De(this,"every",e,t,void 0,arguments)},filter(e,t){return De(this,"filter",e,t,s=>s.map(n=>Ie(this,n)),arguments)},find(e,t){return De(this,"find",e,t,s=>Ie(this,s),arguments)},findIndex(e,t){return De(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return De(this,"findLast",e,t,s=>Ie(this,s),arguments)},findLastIndex(e,t){return De(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return De(this,"forEach",e,t,void 0,arguments)},includes(...e){return Rs(this,"includes",e)},indexOf(...e){return Rs(this,"indexOf",e)},join(e){return ft(this).join(e)},lastIndexOf(...e){return Rs(this,"lastIndexOf",e)},map(e,t){return De(this,"map",e,t,void 0,arguments)},pop(){return Ct(this,"pop")},push(...e){return Ct(this,"push",e)},reduce(e,...t){return Pn(this,"reduce",e,t)},reduceRight(e,...t){return Pn(this,"reduceRight",e,t)},shift(){return Ct(this,"shift")},some(e,t){return De(this,"some",e,t,void 0,arguments)},splice(...e){return Ct(this,"splice",e)},toReversed(){return ft(this).toReversed()},toSorted(e){return ft(this).toSorted(e)},toSpliced(...e){return ft(this).toSpliced(...e)},unshift(...e){return Ct(this,"unshift",e)},values(){return Ms(this,"values",e=>Ie(this,e))}};function Ms(e,t,s){const n=xs(e),r=n[t]();return n!==e&&!ve(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=s(i.value)),i}),r}const Pi=Array.prototype;function De(e,t,s,n,r,i){const o=xs(e),l=o!==e&&!ve(e),u=o[t];if(u!==Pi[t]){const d=u.apply(e,i);return l?we(d):d}let p=s;o!==e&&(l?p=function(d,y){return s.call(this,Ie(e,d),y,e)}:s.length>2&&(p=function(d,y){return s.call(this,d,y,e)}));const a=u.call(o,p,n);return l&&r?r(a):a}function Pn(e,t,s,n){const r=xs(e),i=r!==e&&!ve(e);let o=s,l=!1;r!==e&&(i?(l=n.length===0,o=function(p,a,d){return l&&(l=!1,p=Ie(e,p)),s.call(this,p,Ie(e,a),d,e)}):s.length>3&&(o=function(p,a,d){return s.call(this,p,a,d,e)}));const u=r[t](o,...n);return l?Ie(e,u):u}function Rs(e,t,s){const n=H(e);oe(n,"iterate",jt);const r=n[t](...s);return(r===-1||r===!1)&&un(s[0])?(s[0]=H(s[0]),n[t](...s)):r}function Ct(e,t,s=[]){He(),sn();const n=H(e)[t].apply(e,s);return nn(),Ke(),n}const Oi=Qs("__proto__,__v_isRef,__isVue"),yr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ke));function Ai(e){ke(e)||(e=String(e));const t=H(this);return oe(t,"has",e),t.hasOwnProperty(e)}class _r{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(s==="__v_isReactive")return!r;if(s==="__v_isReadonly")return r;if(s==="__v_isShallow")return i;if(s==="__v_raw")return n===(r?i?Ni:Tr:i?Cr:Sr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const o=R(t);if(!r){let u;if(o&&(u=Ti[s]))return u;if(s==="hasOwnProperty")return Ai}const l=Reflect.get(t,s,le(t)?t:n);if((ke(s)?yr.has(s):Oi(s))||(r||oe(t,"get",s),i))return l;if(le(l)){const u=o&&tn(s)?l:l.value;return r&&U(u)?Ks(u):u}return U(l)?r?Ks(l):Nt(l):l}}class wr extends _r{constructor(t=!1){super(!1,t)}set(t,s,n,r){let i=t[s];const o=R(t)&&tn(s);if(!this._isShallow){const p=Ue(i);if(!ve(n)&&!Ue(n)&&(i=H(i),n=H(n)),!o&&le(i)&&!le(n))return p||(i.value=n),!0}const l=o?Number(s)e,Zt=e=>Reflect.getPrototypeOf(e);function Ri(e,t,s){return function(...n){const r=this.__v_raw,i=H(r),o=ht(i),l=e==="entries"||e===Symbol.iterator&&o,u=e==="keys"&&o,p=r[e](...n),a=s?Hs:t?bt:we;return!t&&oe(i,"iterate",u?Bs:rt),ie(Object.create(p),{next(){const{value:d,done:y}=p.next();return y?{value:d,done:y}:{value:l?[a(d[0]),a(d[1])]:a(d),done:y}}})}}function Xt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ki(e,t){const s={get(r){const i=this.__v_raw,o=H(i),l=H(r);e||(Me(r,l)&&oe(o,"get",r),oe(o,"get",l));const{has:u}=Zt(o),p=t?Hs:e?bt:we;if(u.call(o,r))return p(i.get(r));if(u.call(o,l))return p(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&oe(H(r),"iterate",rt),r.size},has(r){const i=this.__v_raw,o=H(i),l=H(r);return e||(Me(r,l)&&oe(o,"has",r),oe(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,u=H(l),p=t?Hs:e?bt:we;return!e&&oe(u,"iterate",rt),l.forEach((a,d)=>r.call(i,p(a),p(d),o))}};return ie(s,e?{add:Xt("add"),set:Xt("set"),delete:Xt("delete"),clear:Xt("clear")}:{add(r){const i=H(this),o=Zt(i),l=H(r),u=!t&&!ve(r)&&!Ue(r)?l:r;return o.has.call(i,u)||Me(r,u)&&o.has.call(i,r)||Me(l,u)&&o.has.call(i,l)||(i.add(u),Ve(i,"add",u,u)),this},set(r,i){!t&&!ve(i)&&!Ue(i)&&(i=H(i));const o=H(this),{has:l,get:u}=Zt(o);let p=l.call(o,r);p||(r=H(r),p=l.call(o,r));const a=u.call(o,r);return o.set(r,i),p?Me(i,a)&&Ve(o,"set",r,i):Ve(o,"add",r,i),this},delete(r){const i=H(this),{has:o,get:l}=Zt(i);let u=o.call(i,r);u||(r=H(r),u=o.call(i,r)),l&&l.call(i,r);const p=i.delete(r);return u&&Ve(i,"delete",r,void 0),p},clear(){const r=H(this),i=r.size!==0,o=r.clear();return i&&Ve(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{s[r]=Ri(r,e,t)}),s}function ln(e,t){const s=ki(e,t);return(n,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?n:Reflect.get(K(s,r)&&r in n?s:n,r,i)}const Fi={get:ln(!1,!1)},Di={get:ln(!1,!0)},ji={get:ln(!0,!1)};const Sr=new WeakMap,Cr=new WeakMap,Tr=new WeakMap,Ni=new WeakMap;function Vi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Li(e){return e.__v_skip||!Object.isExtensible(e)?0:Vi(ai(e))}function Nt(e){return Ue(e)?e:cn(e,!1,Ii,Fi,Sr)}function Bi(e){return cn(e,!1,Mi,Di,Cr)}function Ks(e){return cn(e,!0,$i,ji,Tr)}function cn(e,t,s,n,r){if(!U(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=Li(e);if(i===0)return e;const o=r.get(e);if(o)return o;const l=new Proxy(e,i===2?n:s);return r.set(e,l),l}function it(e){return Ue(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function Ue(e){return!!(e&&e.__v_isReadonly)}function ve(e){return!!(e&&e.__v_isShallow)}function un(e){return e?!!e.__v_raw:!1}function H(e){const t=e&&e.__v_raw;return t?H(t):e}function Hi(e){return!K(e,"__v_skip")&&Object.isExtensible(e)&&cr(e,"__v_skip",!0),e}const we=e=>U(e)?Nt(e):e,bt=e=>U(e)?Ks(e):e;function le(e){return e?e.__v_isRef===!0:!1}function ot(e){return Ki(e,!1)}function Ki(e,t){return le(e)?e:new Ui(e,t)}class Ui{constructor(t,s){this.dep=new on,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:H(t),this._value=s?t:we(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||ve(t)||Ue(t);t=n?t:H(t),Me(t,s)&&(this._rawValue=t,this._value=n?t:we(t),this.dep.trigger())}}function xe(e){return le(e)?e.value:e}const Wi={get:(e,t,s)=>t==="__v_raw"?e:xe(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const r=e[t];return le(r)&&!le(s)?(r.value=s,!0):Reflect.set(e,t,s,n)}};function Pr(e){return it(e)?e:new Proxy(e,Wi)}class Ji{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new on(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Dt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Y!==this)return hr(this,!0),!0}get value(){const t=this.dep.track();return vr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Gi(e,t,s=!1){let n,r;return F(e)?n=e:(n=e.get,r=e.set),new Ji(n,r,s)}const Qt={},ns=new WeakMap;let st;function qi(e,t=!1,s=st){if(s){let n=ns.get(s);n||ns.set(s,n=[]),n.push(e)}}function zi(e,t,s=G){const{immediate:n,deep:r,once:i,scheduler:o,augmentJob:l,call:u}=s,p=I=>r?I:ve(I)||r===!1||r===0?Le(I,1):Le(I);let a,d,y,O,j=!1,k=!1;if(le(e)?(d=()=>e.value,j=ve(e)):it(e)?(d=()=>p(e),j=!0):R(e)?(k=!0,j=e.some(I=>it(I)||ve(I)),d=()=>e.map(I=>{if(le(I))return I.value;if(it(I))return p(I);if(F(I))return u?u(I,2):I()})):F(e)?t?d=u?()=>u(e,2):e:d=()=>{if(y){He();try{y()}finally{Ke()}}const I=st;st=a;try{return u?u(e,3,[O]):e(O)}finally{st=I}}:d=Re,t&&r){const I=d,ee=r===!0?1/0:r;d=()=>Le(I(),ee)}const $=wi(),C=()=>{a.stop(),$&&$.active&&en($.effects,a)};if(i&&t){const I=t;t=(...ee)=>{I(...ee),C()}}let P=k?new Array(e.length).fill(Qt):Qt;const N=I=>{if(!(!(a.flags&1)||!a.dirty&&!I))if(t){const ee=a.run();if(r||j||(k?ee.some((Je,Se)=>Me(Je,P[Se])):Me(ee,P))){y&&y();const Je=st;st=a;try{const Se=[ee,P===Qt?void 0:k&&P[0]===Qt?[]:P,O];P=ee,u?u(t,3,Se):t(...Se)}finally{st=Je}}}else a.run()};return l&&l(N),a=new dr(d),a.scheduler=o?()=>o(N,!1):N,O=I=>qi(I,!1,a),y=a.onStop=()=>{const I=ns.get(a);if(I){if(u)u(I,4);else for(const ee of I)ee();ns.delete(a)}},t?n?N(!0):P=a.run():o?o(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function Le(e,t=1/0,s){if(t<=0||!U(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,le(e))Le(e.value,t,s);else if(R(e))for(let n=0;n{Le(n,t,s)});else if(or(e)){for(const n in e)Le(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Le(e[n],t,s)}return e}/** * @vue/runtime-core v3.5.34 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Ut(e,t,s,n){try{return n?e(...n):e()}catch(r){ys(r,t,s)}}function Fe(e,t,s,n){if(F(e)){const r=Ut(e,t,s,n);return r&&rr(r)&&r.catch(i=>{ys(i,t,s)}),r}if(R(e)){const r=[];for(let i=0;i>>1,r=ae[n],i=Vt(r);i=Vt(s)?ae.push(e):ae.splice(Zi(t),0,e),e.flags|=1,Er()}}function Er(){rs||(rs=Or.then($r))}function Xi(e){R(e)?ht.push(...e):qe&&e.id===-1?qe.splice(at+1,0,e):e.flags&1||(ht.push(e),e.flags|=1),Er()}function On(e,t,s=Ee+1){for(;sVt(s)-Vt(n));if(ht.length=0,qe){qe.push(...t);return}for(qe=t,at=0;ate.id==null?e.flags&2?-1:1/0:e.id;function $r(e){try{for(Ee=0;Ee{n._d&&Nn(-1);const i=is(t);let o;try{o=e(...r)}finally{is(i),n._d&&Nn(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function lt(e,t){if(me===null)return e;const s=Cs(me),n=e.dirs||(e.dirs=[]);for(let r=0;r1)return s&&F(t)?t.call(n&&n.proxy):t}}const to=Symbol.for("v-scx"),so=()=>ts(to);function gt(e,t,s){return Rr(e,t,s)}function Rr(e,t,s=G){const{immediate:n,deep:r,flush:i,once:o}=s,l=ie({},s),f=t&&n||!t&&i!=="post";let p;if(Bt){if(i==="sync"){const O=so();p=O.__watcherHandles||(O.__watcherHandles=[])}else if(!f){const O=()=>{};return O.stop=Re,O.resume=Re,O.pause=Re,O}}const u=de;l.call=(O,L,k)=>Fe(O,u,L,k);let d=!1;i==="post"?l.scheduler=O=>{pe(O,u&&u.suspense)}:i!=="sync"&&(d=!0,l.scheduler=(O,L)=>{L?O():un(O)}),l.augmentJob=O=>{t&&(O.flags|=4),d&&(O.flags|=2,u&&(O.id=u.uid,O.i=u))};const y=zi(e,t,l);return Bt&&(p?p.push(y):f&&y()),y}function no(e,t,s){const n=this.proxy,r=X(e)?e.includes(".")?kr(n,e):()=>n[e]:e.bind(n,n);let i;F(t)?i=t:(i=t.handler,s=t);const o=Wt(this),l=Rr(r,i.bind(n),s);return o(),l}function kr(e,t){const s=t.split(".");return()=>{let n=e;for(let r=0;re.__isTeleport,oo=Symbol("_leaveCb");function an(e,t){e.shapeFlag&6&&e.component?(e.transition=t,an(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ft(e,t){return F(e)?ie({name:e.name},t,{setup:e}):e}function Fr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function An(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const os=new WeakMap;function $t(e,t,s,n,r=!1){if(R(e)){e.forEach((k,$)=>$t(k,t&&(R(t)?t[$]:t),s,n,r));return}if(Mt(n)&&!r){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&$t(e,t,s,n.component.subTree);return}const i=n.shapeFlag&4?Cs(n.component):n.el,o=r?null:i,{i:l,r:f}=e,p=t&&t.r,u=l.refs===G?l.refs={}:l.refs,d=l.setupState,y=B(d),O=d===G?nr:k=>An(u,k)?!1:H(y,k),L=(k,$)=>!($&&An(u,$));if(p!=null&&p!==f){if(En(t),X(p))u[p]=null,O(p)&&(d[p]=null);else if(le(p)){const k=t;L(p,k.k)&&(p.value=null),k.k&&(u[k.k]=null)}}if(F(f))Ut(f,l,12,[o,u]);else{const k=X(f),$=le(f);if(k||$){const T=()=>{if(e.f){const P=k?O(f)?d[f]:u[f]:L()||!e.k?f.value:u[e.k];if(r)R(P)&&en(P,i);else if(R(P))P.includes(i)||P.push(i);else if(k)u[f]=[i],O(f)&&(d[f]=u[f]);else{const j=[i];L(f,e.k)&&(f.value=j),e.k&&(u[e.k]=j)}}else k?(u[f]=o,O(f)&&(d[f]=o)):$&&(L(f,e.k)&&(f.value=o),e.k&&(u[e.k]=o))};if(o){const P=()=>{T(),os.delete(e)};P.id=-1,os.set(e,P),pe(P,s)}else En(e),T()}}}function En(e){const t=os.get(e);t&&(t.flags|=8,os.delete(e))}bs().requestIdleCallback;bs().cancelIdleCallback;const Mt=e=>!!e.type.__asyncLoader,Dr=e=>e.type.__isKeepAlive;function lo(e,t){jr(e,"a",t)}function co(e,t){jr(e,"da",t)}function jr(e,t,s=de){const n=e.__wdc||(e.__wdc=()=>{let r=s;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(_s(t,n,s),s){let r=s.parent;for(;r&&r.parent;)Dr(r.parent.vnode)&&fo(n,t,s,r),r=r.parent}}function fo(e,t,s,n){const r=_s(t,e,n,!0);pn(()=>{en(n[t],r)},s)}function _s(e,t,s=de,n=!1){if(s){const r=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...o)=>{He();const l=Wt(s),f=Fe(t,s,e,o);return l(),Ke(),f});return n?r.unshift(i):r.push(i),i}}const We=e=>(t,s=de)=>{(!Bt||e==="sp")&&_s(e,(...n)=>t(...n),s)},uo=We("bm"),dn=We("m"),ao=We("bu"),po=We("u"),ho=We("bum"),pn=We("um"),go=We("sp"),mo=We("rtg"),vo=We("rtc");function bo(e,t=de){_s("ec",e,t)}const xo=Symbol.for("v-ndc");function Be(e,t,s,n){let r;const i=s,o=R(e);if(o||X(e)){const l=o&&it(e);let f=!1,p=!1;l&&(f=!ve(e),p=Ue(e),e=xs(e)),r=new Array(e.length);for(let u=0,d=e.length;ut(l,f,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let f=0,p=l.length;fe?ri(e)?Cs(e):Us(e.parent):null,Rt=ie(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Us(e.parent),$root:e=>Us(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Vr(e),$forceUpdate:e=>e.f||(e.f=()=>{un(e.update)}),$nextTick:e=>e.n||(e.n=Ar.bind(e.proxy)),$watch:e=>no.bind(e)}),ks=(e,t)=>e!==G&&!e.__isScriptSetup&&H(e,t),yo={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:r,props:i,accessCache:o,type:l,appContext:f}=e;if(t[0]!=="$"){const y=o[t];if(y!==void 0)switch(y){case 1:return n[t];case 2:return r[t];case 4:return s[t];case 3:return i[t]}else{if(ks(n,t))return o[t]=1,n[t];if(r!==G&&H(r,t))return o[t]=2,r[t];if(H(i,t))return o[t]=3,i[t];if(s!==G&&H(s,t))return o[t]=4,s[t];Ws&&(o[t]=0)}}const p=Rt[t];let u,d;if(p)return t==="$attrs"&&oe(e.attrs,"get",""),p(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(s!==G&&H(s,t))return o[t]=4,s[t];if(d=f.config.globalProperties,H(d,t))return d[t]},set({_:e},t,s){const{data:n,setupState:r,ctx:i}=e;return ks(r,t)?(r[t]=s,!0):n!==G&&H(n,t)?(n[t]=s,!0):H(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:r,props:i,type:o}},l){let f;return!!(s[l]||e!==G&&l[0]!=="$"&&H(e,l)||ks(t,l)||H(i,l)||H(n,l)||H(Rt,l)||H(r.config.globalProperties,l)||(f=o.__cssModules)&&f[l])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:H(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function In(e){return R(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let Ws=!0;function _o(e){const t=Vr(e),s=e.proxy,n=e.ctx;Ws=!1,t.beforeCreate&&$n(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:f,inject:p,created:u,beforeMount:d,mounted:y,beforeUpdate:O,updated:L,activated:k,deactivated:$,beforeDestroy:T,beforeUnmount:P,destroyed:j,unmounted:I,render:ee,renderTracked:Je,renderTriggered:Se,errorCaptured:Ge,serverPrefetch:Jt,expose:Ze,inheritAttrs:yt,components:Gt,directives:qt,filters:Os}=t;if(p&&wo(p,n,null),o)for(const Z in o){const q=o[Z];F(q)&&(n[Z]=q.bind(s))}if(r){const Z=r.call(s,s);U(Z)&&(e.data=Nt(Z))}if(Ws=!0,i)for(const Z in i){const q=i[Z],Xe=F(q)?q.bind(s,s):F(q.get)?q.get.bind(s,s):Re,zt=!F(q)&&F(q.set)?q.set.bind(s):Re,Qe=fs({get:Xe,set:zt});Object.defineProperty(n,Z,{enumerable:!0,configurable:!0,get:()=>Qe.value,set:Ce=>Qe.value=Ce})}if(l)for(const Z in l)Nr(l[Z],n,s,Z);if(f){const Z=F(f)?f.call(s):f;Reflect.ownKeys(Z).forEach(q=>{eo(q,Z[q])})}u&&$n(u,e,"c");function ce(Z,q){R(q)?q.forEach(Xe=>Z(Xe.bind(s))):q&&Z(q.bind(s))}if(ce(uo,d),ce(dn,y),ce(ao,O),ce(po,L),ce(lo,k),ce(co,$),ce(bo,Ge),ce(vo,Je),ce(mo,Se),ce(ho,P),ce(pn,I),ce(go,Jt),R(Ze))if(Ze.length){const Z=e.exposed||(e.exposed={});Ze.forEach(q=>{Object.defineProperty(Z,q,{get:()=>s[q],set:Xe=>s[q]=Xe,enumerable:!0})})}else e.exposed||(e.exposed={});ee&&e.render===Re&&(e.render=ee),yt!=null&&(e.inheritAttrs=yt),Gt&&(e.components=Gt),qt&&(e.directives=qt),Jt&&Fr(e)}function wo(e,t,s=Re){R(e)&&(e=Js(e));for(const n in e){const r=e[n];let i;U(r)?"default"in r?i=ts(r.from||n,r.default,!0):i=ts(r.from||n):i=ts(r),le(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[n]=i}}function $n(e,t,s){Fe(R(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function Nr(e,t,s,n){let r=n.includes(".")?kr(s,n):()=>s[n];if(X(e)){const i=t[e];F(i)&>(r,i)}else if(F(e))gt(r,e.bind(s));else if(U(e))if(R(e))e.forEach(i=>Nr(i,t,s,n));else{const i=F(e.handler)?e.handler.bind(s):t[e.handler];F(i)&>(r,i,e)}}function Vr(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let f;return l?f=l:!r.length&&!s&&!n?f=t:(f={},r.length&&r.forEach(p=>ls(f,p,o,!0)),ls(f,t,o)),U(t)&&i.set(t,f),f}function ls(e,t,s,n=!1){const{mixins:r,extends:i}=t;i&&ls(e,i,s,!0),r&&r.forEach(o=>ls(e,o,s,!0));for(const o in t)if(!(n&&o==="expose")){const l=So[o]||s&&s[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const So={data:Mn,props:Rn,emits:Rn,methods:Pt,computed:Pt,beforeCreate:fe,created:fe,beforeMount:fe,mounted:fe,beforeUpdate:fe,updated:fe,beforeDestroy:fe,beforeUnmount:fe,destroyed:fe,unmounted:fe,activated:fe,deactivated:fe,errorCaptured:fe,serverPrefetch:fe,components:Pt,directives:Pt,watch:To,provide:Mn,inject:Co};function Mn(e,t){return t?e?function(){return ie(F(e)?e.call(this,this):e,F(t)?t.call(this,this):t)}:t:e}function Co(e,t){return Pt(Js(e),Js(t))}function Js(e){if(R(e)){const t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ye(t)}Modifiers`]||e[`${ct(t)}Modifiers`];function Eo(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||G;let r=s;const i=t.startsWith("update:"),o=i&&Ao(n,t.slice(7));o&&(o.trim&&(r=s.map(u=>X(u)?u.trim():u)),o.number&&(r=s.map(vs)));let l,f=n[l=Es(t)]||n[l=Es(ye(t))];!f&&i&&(f=n[l=Es(ct(t))]),f&&Fe(f,e,6,r);const p=n[l+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Fe(p,e,6,r)}}const Io=new WeakMap;function Br(e,t,s=!1){const n=s?Io:t.emitsCache,r=n.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!F(e)){const f=p=>{const u=Br(p,t,!0);u&&(l=!0,ie(o,u))};!s&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}return!i&&!l?(U(e)&&n.set(e,null),null):(R(i)?i.forEach(f=>o[f]=null):ie(o,i),U(e)&&n.set(e,o),o)}function ws(e,t){return!e||!ps(t)?!1:(t=t.slice(2).replace(/Once$/,""),H(e,t[0].toLowerCase()+t.slice(1))||H(e,ct(t))||H(e,t))}function kn(e){const{type:t,vnode:s,proxy:n,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:f,render:p,renderCache:u,props:d,data:y,setupState:O,ctx:L,inheritAttrs:k}=e,$=is(e);let T,P;try{if(s.shapeFlag&4){const I=r||n,ee=I;T=$e(p.call(ee,I,u,d,O,y,L)),P=l}else{const I=t;T=$e(I.length>1?I(d,{attrs:l,slots:o,emit:f}):I(d,null)),P=t.props?l:$o(l)}}catch(I){kt.length=0,ys(I,e,1),T=se(Ye)}let j=T;if(P&&k!==!1){const I=Object.keys(P),{shapeFlag:ee}=j;I.length&&ee&7&&(i&&I.some(hs)&&(P=Mo(P,i)),j=xt(j,P,!1,!0))}return s.dirs&&(j=xt(j,null,!1,!0),j.dirs=j.dirs?j.dirs.concat(s.dirs):s.dirs),s.transition&&an(j,s.transition),T=j,is($),T}const $o=e=>{let t;for(const s in e)(s==="class"||s==="style"||ps(s))&&((t||(t={}))[s]=e[s]);return t},Mo=(e,t)=>{const s={};for(const n in e)(!hs(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function Ro(e,t,s){const{props:n,children:r,component:i}=e,{props:o,children:l,patchFlag:f}=t,p=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&f>=0){if(f&1024)return!0;if(f&16)return n?Fn(n,o,p):!!o;if(f&8){const u=t.dynamicProps;for(let d=0;dObject.create(Kr),Wr=e=>Object.getPrototypeOf(e)===Kr;function Fo(e,t,s,n=!1){const r={},i=Ur();e.propsDefaults=Object.create(null),Jr(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);s?e.props=n?r:Bi(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Do(e,t,s,n){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=B(r),[f]=e.propsOptions;let p=!1;if((n||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let d=0;d{f=!0;const[y,O]=Gr(d,t,!0);ie(o,y),O&&l.push(...O)};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!f)return U(e)&&n.set(e,dt),dt;if(R(i))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",gn=e=>R(e)?e.map($e):[$e(e)],No=(e,t,s)=>{if(t._n)return t;const n=Qi((...r)=>gn(t(...r)),s);return n._c=!1,n},qr=(e,t,s)=>{const n=e._ctx;for(const r in e){if(hn(r))continue;const i=e[r];if(F(i))t[r]=No(r,i,n);else if(i!=null){const o=gn(i);t[r]=()=>o}}},zr=(e,t)=>{const s=gn(t);e.slots.default=()=>s},Yr=(e,t,s)=>{for(const n in t)(s||!hn(n))&&(e[n]=t[n])},Vo=(e,t,s)=>{const n=e.slots=Ur();if(e.vnode.shapeFlag&32){const r=t._;r?(Yr(n,t,s),s&&cr(n,"_",r,!0)):qr(t,n)}else t&&zr(e,t)},Lo=(e,t,s)=>{const{vnode:n,slots:r}=e;let i=!0,o=G;if(n.shapeFlag&32){const l=t._;l?s&&l===1?i=!1:Yr(r,t,s):(i=!t.$stable,qr(t,r)),o=t}else t&&(zr(e,t),o={default:1});if(i)for(const l in r)!hn(l)&&o[l]==null&&delete r[l]},pe=Wo;function Bo(e){return Ho(e)}function Ho(e,t){const s=bs();s.__VUE__=!0;const{insert:n,remove:r,patchProp:i,createElement:o,createText:l,createComment:f,setText:p,setElementText:u,parentNode:d,nextSibling:y,setScopeId:O=Re,insertStaticContent:L}=e,k=(c,a,h,x=null,m=null,v=null,S=void 0,w=null,_=!!a.dynamicChildren)=>{if(c===a)return;c&&!Tt(c,a)&&(x=Yt(c),Ce(c,m,v,!0),c=null),a.patchFlag===-2&&(_=!1,a.dynamicChildren=null);const{type:b,ref:E,shapeFlag:C}=a;switch(b){case Ss:$(c,a,h,x);break;case Ye:T(c,a,h,x);break;case Ds:c==null&&P(a,h,x,S);break;case te:Gt(c,a,h,x,m,v,S,w,_);break;default:C&1?ee(c,a,h,x,m,v,S,w,_):C&6?qt(c,a,h,x,m,v,S,w,_):(C&64||C&128)&&b.process(c,a,h,x,m,v,S,w,_,wt)}E!=null&&m?$t(E,c&&c.ref,v,a||c,!a):E==null&&c&&c.ref!=null&&$t(c.ref,null,v,c,!0)},$=(c,a,h,x)=>{if(c==null)n(a.el=l(a.children),h,x);else{const m=a.el=c.el;a.children!==c.children&&p(m,a.children)}},T=(c,a,h,x)=>{c==null?n(a.el=f(a.children||""),h,x):a.el=c.el},P=(c,a,h,x)=>{[c.el,c.anchor]=L(c.children,a,h,x,c.el,c.anchor)},j=({el:c,anchor:a},h,x)=>{let m;for(;c&&c!==a;)m=y(c),n(c,h,x),c=m;n(a,h,x)},I=({el:c,anchor:a})=>{let h;for(;c&&c!==a;)h=y(c),r(c),c=h;r(a)},ee=(c,a,h,x,m,v,S,w,_)=>{if(a.type==="svg"?S="svg":a.type==="math"&&(S="mathml"),c==null)Je(a,h,x,m,v,S,w,_);else{const b=c.el&&c.el._isVueCE?c.el:null;try{b&&b._beginPatch(),Jt(c,a,m,v,S,w,_)}finally{b&&b._endPatch()}}},Je=(c,a,h,x,m,v,S,w)=>{let _,b;const{props:E,shapeFlag:C,transition:A,dirs:M}=c;if(_=c.el=o(c.type,v,E&&E.is,E),C&8?u(_,c.children):C&16&&Ge(c.children,_,null,x,m,Fs(c,v),S,w),M&&et(c,null,x,"created"),Se(_,c,c.scopeId,S,x),E){for(const W in E)W!=="value"&&!At(W)&&i(_,W,null,E[W],v,x);"value"in E&&i(_,"value",null,E.value,v),(b=E.onVnodeBeforeMount)&&Ae(b,x,c)}M&&et(c,null,x,"beforeMount");const N=Ko(m,A);N&&A.beforeEnter(_),n(_,a,h),((b=E&&E.onVnodeMounted)||N||M)&&pe(()=>{try{b&&Ae(b,x,c),N&&A.enter(_),M&&et(c,null,x,"mounted")}finally{}},m)},Se=(c,a,h,x,m)=>{if(h&&O(c,h),x)for(let v=0;v{for(let b=_;b{const w=a.el=c.el;let{patchFlag:_,dynamicChildren:b,dirs:E}=a;_|=c.patchFlag&16;const C=c.props||G,A=a.props||G;let M;if(h&&tt(h,!1),(M=A.onVnodeBeforeUpdate)&&Ae(M,h,a,c),E&&et(a,c,h,"beforeUpdate"),h&&tt(h,!0),(C.innerHTML&&A.innerHTML==null||C.textContent&&A.textContent==null)&&u(w,""),b?Ze(c.dynamicChildren,b,w,h,x,Fs(a,m),v):S||q(c,a,w,null,h,x,Fs(a,m),v,!1),_>0){if(_&16)yt(w,C,A,h,m);else if(_&2&&C.class!==A.class&&i(w,"class",null,A.class,m),_&4&&i(w,"style",C.style,A.style,m),_&8){const N=a.dynamicProps;for(let W=0;W{M&&Ae(M,h,a,c),E&&et(a,c,h,"updated")},x)},Ze=(c,a,h,x,m,v,S)=>{for(let w=0;w{if(a!==h){if(a!==G)for(const v in a)!At(v)&&!(v in h)&&i(c,v,a[v],null,m,x);for(const v in h){if(At(v))continue;const S=h[v],w=a[v];S!==w&&v!=="value"&&i(c,v,w,S,m,x)}"value"in h&&i(c,"value",a.value,h.value,m)}},Gt=(c,a,h,x,m,v,S,w,_)=>{const b=a.el=c?c.el:l(""),E=a.anchor=c?c.anchor:l("");let{patchFlag:C,dynamicChildren:A,slotScopeIds:M}=a;M&&(w=w?w.concat(M):M),c==null?(n(b,h,x),n(E,h,x),Ge(a.children||[],h,E,m,v,S,w,_)):C>0&&C&64&&A&&c.dynamicChildren&&c.dynamicChildren.length===A.length?(Ze(c.dynamicChildren,A,h,m,v,S,w),(a.key!=null||m&&a===m.subTree)&&Zr(c,a,!0)):q(c,a,h,E,m,v,S,w,_)},qt=(c,a,h,x,m,v,S,w,_)=>{a.slotScopeIds=w,c==null?a.shapeFlag&512?m.ctx.activate(a,h,x,S,_):Os(a,h,x,m,v,S,_):vn(c,a,_)},Os=(c,a,h,x,m,v,S)=>{const w=c.component=el(c,x,m);if(Dr(c)&&(w.ctx.renderer=wt),sl(w,!1,S),w.asyncDep){if(m&&m.registerDep(w,ce,S),!c.el){const _=w.subTree=se(Ye);T(null,_,a,h),c.placeholder=_.el}}else ce(w,c,a,h,m,v,S)},vn=(c,a,h)=>{const x=a.component=c.component;if(Ro(c,a,h))if(x.asyncDep&&!x.asyncResolved){Z(x,a,h);return}else x.next=a,x.update();else a.el=c.el,x.vnode=a},ce=(c,a,h,x,m,v,S)=>{const w=()=>{if(c.isMounted){let{next:C,bu:A,u:M,parent:N,vnode:W}=c;{const Pe=Xr(c);if(Pe){C&&(C.el=W.el,Z(c,C,S)),Pe.asyncDep.then(()=>{pe(()=>{c.isUnmounted||b()},m)});return}}let z=C,Q;tt(c,!1),C?(C.el=W.el,Z(c,C,S)):C=W,A&&es(A),(Q=C.props&&C.props.onVnodeBeforeUpdate)&&Ae(Q,N,C,W),tt(c,!0);const ne=kn(c),Te=c.subTree;c.subTree=ne,k(Te,ne,d(Te.el),Yt(Te),c,m,v),C.el=ne.el,z===null&&ko(c,ne.el),M&&pe(M,m),(Q=C.props&&C.props.onVnodeUpdated)&&pe(()=>Ae(Q,N,C,W),m)}else{let C;const{el:A,props:M}=a,{bm:N,m:W,parent:z,root:Q,type:ne}=c,Te=Mt(a);tt(c,!1),N&&es(N),!Te&&(C=M&&M.onVnodeBeforeMount)&&Ae(C,z,a),tt(c,!0);{Q.ce&&Q.ce._hasShadowRoot()&&Q.ce._injectChildStyle(ne,c.parent?c.parent.type:void 0);const Pe=c.subTree=kn(c);k(null,Pe,h,x,c,m,v),a.el=Pe.el}if(W&&pe(W,m),!Te&&(C=M&&M.onVnodeMounted)){const Pe=a;pe(()=>Ae(C,z,Pe),m)}(a.shapeFlag&256||z&&Mt(z.vnode)&&z.vnode.shapeFlag&256)&&c.a&&pe(c.a,m),c.isMounted=!0,a=h=x=null}};c.scope.on();const _=c.effect=new dr(w);c.scope.off();const b=c.update=_.run.bind(_),E=c.job=_.runIfDirty.bind(_);E.i=c,E.id=c.uid,_.scheduler=()=>un(E),tt(c,!0),b()},Z=(c,a,h)=>{a.component=c;const x=c.vnode.props;c.vnode=a,c.next=null,Do(c,a.props,x,h),Lo(c,a.children,h),He(),On(c),Ke()},q=(c,a,h,x,m,v,S,w,_=!1)=>{const b=c&&c.children,E=c?c.shapeFlag:0,C=a.children,{patchFlag:A,shapeFlag:M}=a;if(A>0){if(A&128){zt(b,C,h,x,m,v,S,w,_);return}else if(A&256){Xe(b,C,h,x,m,v,S,w,_);return}}M&8?(E&16&&_t(b,m,v),C!==b&&u(h,C)):E&16?M&16?zt(b,C,h,x,m,v,S,w,_):_t(b,m,v,!0):(E&8&&u(h,""),M&16&&Ge(C,h,x,m,v,S,w,_))},Xe=(c,a,h,x,m,v,S,w,_)=>{c=c||dt,a=a||dt;const b=c.length,E=a.length,C=Math.min(b,E);let A;for(A=0;AE?_t(c,m,v,!0,!1,C):Ge(a,h,x,m,v,S,w,_,C)},zt=(c,a,h,x,m,v,S,w,_)=>{let b=0;const E=a.length;let C=c.length-1,A=E-1;for(;b<=C&&b<=A;){const M=c[b],N=a[b]=_?Ne(a[b]):$e(a[b]);if(Tt(M,N))k(M,N,h,null,m,v,S,w,_);else break;b++}for(;b<=C&&b<=A;){const M=c[C],N=a[A]=_?Ne(a[A]):$e(a[A]);if(Tt(M,N))k(M,N,h,null,m,v,S,w,_);else break;C--,A--}if(b>C){if(b<=A){const M=A+1,N=MA)for(;b<=C;)Ce(c[b],m,v,!0),b++;else{const M=b,N=b,W=new Map;for(b=N;b<=A;b++){const he=a[b]=_?Ne(a[b]):$e(a[b]);he.key!=null&&W.set(he.key,b)}let z,Q=0;const ne=A-N+1;let Te=!1,Pe=0;const St=new Array(ne);for(b=0;b=ne){Ce(he,m,v,!0);continue}let Oe;if(he.key!=null)Oe=W.get(he.key);else for(z=N;z<=A;z++)if(St[z-N]===0&&Tt(he,a[z])){Oe=z;break}Oe===void 0?Ce(he,m,v,!0):(St[Oe-N]=b+1,Oe>=Pe?Pe=Oe:Te=!0,k(he,a[Oe],h,null,m,v,S,w,_),Q++)}const yn=Te?Uo(St):dt;for(z=yn.length-1,b=ne-1;b>=0;b--){const he=N+b,Oe=a[he],_n=a[he+1],wn=he+1{const{el:v,type:S,transition:w,children:_,shapeFlag:b}=c;if(b&6){Qe(c.component.subTree,a,h,x);return}if(b&128){c.suspense.move(a,h,x);return}if(b&64){S.move(c,a,h,wt);return}if(S===te){n(v,a,h);for(let C=0;C<_.length;C++)Qe(_[C],a,h,x);n(c.anchor,a,h);return}if(S===Ds){j(c,a,h);return}if(x!==2&&b&1&&w)if(x===0)w.beforeEnter(v),n(v,a,h),pe(()=>w.enter(v),m);else{const{leave:C,delayLeave:A,afterLeave:M}=w,N=()=>{c.ctx.isUnmounted?r(v):n(v,a,h)},W=()=>{v._isLeaving&&v[oo](!0),C(v,()=>{N(),M&&M()})};A?A(v,N,W):W()}else n(v,a,h)},Ce=(c,a,h,x=!1,m=!1)=>{const{type:v,props:S,ref:w,children:_,dynamicChildren:b,shapeFlag:E,patchFlag:C,dirs:A,cacheIndex:M,memo:N}=c;if(C===-2&&(m=!1),w!=null&&(He(),$t(w,null,h,c,!0),Ke()),M!=null&&(a.renderCache[M]=void 0),E&256){a.ctx.deactivate(c);return}const W=E&1&&A,z=!Mt(c);let Q;if(z&&(Q=S&&S.onVnodeBeforeUnmount)&&Ae(Q,a,c),E&6)ci(c.component,h,x);else{if(E&128){c.suspense.unmount(h,x);return}W&&et(c,null,a,"beforeUnmount"),E&64?c.type.remove(c,a,h,wt,x):b&&!b.hasOnce&&(v!==te||C>0&&C&64)?_t(b,a,h,!1,!0):(v===te&&C&384||!m&&E&16)&&_t(_,a,h),x&&bn(c)}const ne=N!=null&&M==null;(z&&(Q=S&&S.onVnodeUnmounted)||W||ne)&&pe(()=>{Q&&Ae(Q,a,c),W&&et(c,null,a,"unmounted"),ne&&(c.el=null)},h)},bn=c=>{const{type:a,el:h,anchor:x,transition:m}=c;if(a===te){li(h,x);return}if(a===Ds){I(c);return}const v=()=>{r(h),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(c.shapeFlag&1&&m&&!m.persisted){const{leave:S,delayLeave:w}=m,_=()=>S(h,v);w?w(c.el,v,_):_()}else v()},li=(c,a)=>{let h;for(;c!==a;)h=y(c),r(c),c=h;r(a)},ci=(c,a,h)=>{const{bum:x,scope:m,job:v,subTree:S,um:w,m:_,a:b}=c;jn(_),jn(b),x&&es(x),m.stop(),v&&(v.flags|=8,Ce(S,c,a,h)),w&&pe(w,a),pe(()=>{c.isUnmounted=!0},a)},_t=(c,a,h,x=!1,m=!1,v=0)=>{for(let S=v;S{if(c.shapeFlag&6)return Yt(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const a=y(c.anchor||c.el),h=a&&a[ro];return h?y(h):a};let As=!1;const xn=(c,a,h)=>{let x;c==null?a._vnode&&(Ce(a._vnode,null,null,!0),x=a._vnode.component):k(a._vnode||null,c,a,null,null,null,h),a._vnode=c,As||(As=!0,On(x),Ir(),As=!1)},wt={p:k,um:Ce,m:Qe,r:bn,mt:Os,mc:Ge,pc:q,pbc:Ze,n:Yt,o:e};return{render:xn,hydrate:void 0,createApp:Oo(xn)}}function Fs({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function tt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ko(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Zr(e,t,s=!1){const n=e.children,r=t.children;if(R(n)&&R(r))for(let i=0;i>1,e[s[l]]0&&(t[n]=s[i-1]),s[i]=n)}}for(i=s.length,o=s[i-1];i-- >0;)s[i]=o,o=t[o];return s}function Xr(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Xr(t)}function jn(e){if(e)for(let t=0;te.__isSuspense;function Wo(e,t){t&&t.pendingBranch?R(e)?t.effects.push(...e):t.effects.push(e):Xi(e)}const te=Symbol.for("v-fgt"),Ss=Symbol.for("v-txt"),Ye=Symbol.for("v-cmt"),Ds=Symbol.for("v-stc"),kt=[];let ge=null;function D(e=!1){kt.push(ge=e?null:[])}function Jo(){kt.pop(),ge=kt[kt.length-1]||null}let Lt=1;function Nn(e,t=!1){Lt+=e,e<0&&ge&&t&&(ge.hasOnce=!0)}function ti(e){return e.dynamicChildren=Lt>0?ge||dt:null,Jo(),Lt>0&&ge&&ge.push(e),e}function V(e,t,s,n,r,i){return ti(g(e,t,s,n,r,i,!0))}function Go(e,t,s,n,r){return ti(se(e,t,s,n,r,!0))}function si(e){return e?e.__v_isVNode===!0:!1}function Tt(e,t){return e.type===t.type&&e.key===t.key}const ni=({key:e})=>e??null,ss=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?X(e)||le(e)||F(e)?{i:me,r:e,k:t,f:!!s}:e:null);function g(e,t=null,s=null,n=0,r=null,i=e===te?0:1,o=!1,l=!1){const f={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ni(t),ref:t&&ss(t),scopeId:Mr,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:n,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:me};return l?(mn(f,s),i&128&&e.normalize(f)):s&&(f.shapeFlag|=X(s)?8:16),Lt>0&&!o&&ge&&(f.patchFlag>0||i&6)&&f.patchFlag!==32&&ge.push(f),f}const se=qo;function qo(e,t=null,s=null,n=0,r=null,i=!1){if((!e||e===xo)&&(e=Ye),si(e)){const l=xt(e,t,!0);return s&&mn(l,s),Lt>0&&!i&&ge&&(l.shapeFlag&6?ge[ge.indexOf(e)]=l:ge.push(l)),l.patchFlag=-2,l}if(ol(e)&&(e=e.__vccOpts),t){t=zo(t);let{class:l,style:f}=t;l&&!X(l)&&(t.class=ze(l)),U(f)&&(fn(f)&&!R(f)&&(f=ie({},f)),t.style=Ft(f))}const o=X(e)?1:ei(e)?128:io(e)?64:U(e)?4:F(e)?2:0;return g(e,t,s,n,r,o,i,!0)}function zo(e){return e?fn(e)||Wr(e)?ie({},e):e:null}function xt(e,t,s=!1,n=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:f}=e,p=t?Zo(r||{},t):r,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:p,key:p&&ni(p),ref:t&&t.ref?s&&i?R(i)?i.concat(ss(t)):[i,ss(t)]:ss(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==te?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:f,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&xt(e.ssContent),ssFallback:e.ssFallback&&xt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return f&&n&&an(u,f.clone(u)),u}function Yo(e=" ",t=0){return se(Ss,null,e,t)}function be(e="",t=!1){return t?(D(),Go(Ye,null,e)):se(Ye,null,e)}function $e(e){return e==null||typeof e=="boolean"?se(Ye):R(e)?se(te,null,e.slice()):si(e)?Ne(e):se(Ss,null,String(e))}function Ne(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:xt(e)}function mn(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(R(t))s=16;else if(typeof t=="object")if(n&65){const r=t.default;r&&(r._c&&(r._d=!1),mn(e,r()),r._c&&(r._d=!0));return}else{s=32;const r=t._;!r&&!Wr(t)?t._ctx=me:r===3&&me&&(me.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else F(t)?(t={default:t,_ctx:me},s=32):(t=String(t),n&64?(s=16,t=[Yo(t)]):s=8);e.children=t,e.shapeFlag|=s}function Zo(...e){const t={};for(let s=0;sde||me;let cs,qs;{const e=bs(),t=(s,n)=>{let r;return(r=e[s])||(r=e[s]=[]),r.push(n),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};cs=t("__VUE_INSTANCE_SETTERS__",s=>de=s),qs=t("__VUE_SSR_SETTERS__",s=>Bt=s)}const Wt=e=>{const t=de;return cs(e),e.scope.on(),()=>{e.scope.off(),cs(t)}},Vn=()=>{de&&de.scope.off(),cs(null)};function ri(e){return e.vnode.shapeFlag&4}let Bt=!1;function sl(e,t=!1,s=!1){t&&qs(t);const{props:n,children:r}=e.vnode,i=ri(e);Fo(e,n,i,t),Vo(e,r,s||t);const o=i?nl(e,t):void 0;return t&&qs(!1),o}function nl(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,yo);const{setup:n}=s;if(n){He();const r=e.setupContext=n.length>1?il(e):null,i=Wt(e),o=Ut(n,e,0,[e.props,r]),l=rr(o);if(Ke(),i(),(l||e.sp)&&!Mt(e)&&Fr(e),l){if(o.then(Vn,Vn),t)return o.then(f=>{Ln(e,f)}).catch(f=>{ys(f,e,0)});e.asyncDep=o}else Ln(e,o)}else ii(e)}function Ln(e,t,s){F(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:U(t)&&(e.setupState=Pr(t)),ii(e)}function ii(e,t,s){const n=e.type;e.render||(e.render=n.render||Re);{const r=Wt(e);He();try{_o(e)}finally{Ke(),r()}}}const rl={get(e,t){return oe(e,"get",""),e[t]}};function il(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,rl),slots:e.slots,emit:e.emit,expose:t}}function Cs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Pr(Hi(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Rt)return Rt[s](e)},has(t,s){return s in t||s in Rt}})):e.proxy}function ol(e){return F(e)&&"__vccOpts"in e}const fs=(e,t)=>Gi(e,t,Bt),ll="3.5.34";/** +**/function Ut(e,t,s,n){try{return n?e(...n):e()}catch(r){ys(r,t,s)}}function Fe(e,t,s,n){if(F(e)){const r=Ut(e,t,s,n);return r&&rr(r)&&r.catch(i=>{ys(i,t,s)}),r}if(R(e)){const r=[];for(let i=0;i>>1,r=fe[n],i=Vt(r);i=Vt(s)?fe.push(e):fe.splice(Zi(t),0,e),e.flags|=1,Er()}}function Er(){rs||(rs=Or.then($r))}function Xi(e){R(e)?gt.push(...e):qe&&e.id===-1?qe.splice(dt+1,0,e):e.flags&1||(gt.push(e),e.flags|=1),Er()}function On(e,t,s=Ee+1){for(;sVt(s)-Vt(n));if(gt.length=0,qe){qe.push(...t);return}for(qe=t,dt=0;dte.id==null?e.flags&2?-1:1/0:e.id;function $r(e){try{for(Ee=0;Ee{n._d&&Nn(-1);const i=is(t);let o;try{o=e(...r)}finally{is(i),n._d&&Nn(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function lt(e,t){if(me===null)return e;const s=Cs(me),n=e.dirs||(e.dirs=[]);for(let r=0;r1)return s&&F(t)?t.call(n&&n.proxy):t}}const to=Symbol.for("v-scx"),so=()=>ts(to);function ct(e,t,s){return Rr(e,t,s)}function Rr(e,t,s=G){const{immediate:n,deep:r,flush:i,once:o}=s,l=ie({},s),u=t&&n||!t&&i!=="post";let p;if(Bt){if(i==="sync"){const O=so();p=O.__watcherHandles||(O.__watcherHandles=[])}else if(!u){const O=()=>{};return O.stop=Re,O.resume=Re,O.pause=Re,O}}const a=de;l.call=(O,j,k)=>Fe(O,a,j,k);let d=!1;i==="post"?l.scheduler=O=>{pe(O,a&&a.suspense)}:i!=="sync"&&(d=!0,l.scheduler=(O,j)=>{j?O():an(O)}),l.augmentJob=O=>{t&&(O.flags|=4),d&&(O.flags|=2,a&&(O.id=a.uid,O.i=a))};const y=zi(e,t,l);return Bt&&(p?p.push(y):u&&y()),y}function no(e,t,s){const n=this.proxy,r=X(e)?e.includes(".")?kr(n,e):()=>n[e]:e.bind(n,n);let i;F(t)?i=t:(i=t.handler,s=t);const o=Wt(this),l=Rr(r,i.bind(n),s);return o(),l}function kr(e,t){const s=t.split(".");return()=>{let n=e;for(let r=0;re.__isTeleport,oo=Symbol("_leaveCb");function fn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,fn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function at(e,t){return F(e)?ie({name:e.name},t,{setup:e}):e}function Fr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function An(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const os=new WeakMap;function $t(e,t,s,n,r=!1){if(R(e)){e.forEach((k,$)=>$t(k,t&&(R(t)?t[$]:t),s,n,r));return}if(Mt(n)&&!r){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&$t(e,t,s,n.component.subTree);return}const i=n.shapeFlag&4?Cs(n.component):n.el,o=r?null:i,{i:l,r:u}=e,p=t&&t.r,a=l.refs===G?l.refs={}:l.refs,d=l.setupState,y=H(d),O=d===G?nr:k=>An(a,k)?!1:K(y,k),j=(k,$)=>!($&&An(a,$));if(p!=null&&p!==u){if(En(t),X(p))a[p]=null,O(p)&&(d[p]=null);else if(le(p)){const k=t;j(p,k.k)&&(p.value=null),k.k&&(a[k.k]=null)}}if(F(u))Ut(u,l,12,[o,a]);else{const k=X(u),$=le(u);if(k||$){const C=()=>{if(e.f){const P=k?O(u)?d[u]:a[u]:j()||!e.k?u.value:a[e.k];if(r)R(P)&&en(P,i);else if(R(P))P.includes(i)||P.push(i);else if(k)a[u]=[i],O(u)&&(d[u]=a[u]);else{const N=[i];j(u,e.k)&&(u.value=N),e.k&&(a[e.k]=N)}}else k?(a[u]=o,O(u)&&(d[u]=o)):$&&(j(u,e.k)&&(u.value=o),e.k&&(a[e.k]=o))};if(o){const P=()=>{C(),os.delete(e)};P.id=-1,os.set(e,P),pe(P,s)}else En(e),C()}}}function En(e){const t=os.get(e);t&&(t.flags|=8,os.delete(e))}bs().requestIdleCallback;bs().cancelIdleCallback;const Mt=e=>!!e.type.__asyncLoader,Dr=e=>e.type.__isKeepAlive;function lo(e,t){jr(e,"a",t)}function co(e,t){jr(e,"da",t)}function jr(e,t,s=de){const n=e.__wdc||(e.__wdc=()=>{let r=s;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(_s(t,n,s),s){let r=s.parent;for(;r&&r.parent;)Dr(r.parent.vnode)&&uo(n,t,s,r),r=r.parent}}function uo(e,t,s,n){const r=_s(t,e,n,!0);pn(()=>{en(n[t],r)},s)}function _s(e,t,s=de,n=!1){if(s){const r=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...o)=>{He();const l=Wt(s),u=Fe(t,s,e,o);return l(),Ke(),u});return n?r.unshift(i):r.push(i),i}}const We=e=>(t,s=de)=>{(!Bt||e==="sp")&&_s(e,(...n)=>t(...n),s)},ao=We("bm"),dn=We("m"),fo=We("bu"),po=We("u"),ho=We("bum"),pn=We("um"),go=We("sp"),mo=We("rtg"),vo=We("rtc");function bo(e,t=de){_s("ec",e,t)}const xo=Symbol.for("v-ndc");function Be(e,t,s,n){let r;const i=s,o=R(e);if(o||X(e)){const l=o&&it(e);let u=!1,p=!1;l&&(u=!ve(e),p=Ue(e),e=xs(e)),r=new Array(e.length);for(let a=0,d=e.length;at(l,u,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let u=0,p=l.length;ue?ri(e)?Cs(e):Us(e.parent):null,Rt=ie(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Us(e.parent),$root:e=>Us(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Vr(e),$forceUpdate:e=>e.f||(e.f=()=>{an(e.update)}),$nextTick:e=>e.n||(e.n=Ar.bind(e.proxy)),$watch:e=>no.bind(e)}),ks=(e,t)=>e!==G&&!e.__isScriptSetup&&K(e,t),yo={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:r,props:i,accessCache:o,type:l,appContext:u}=e;if(t[0]!=="$"){const y=o[t];if(y!==void 0)switch(y){case 1:return n[t];case 2:return r[t];case 4:return s[t];case 3:return i[t]}else{if(ks(n,t))return o[t]=1,n[t];if(r!==G&&K(r,t))return o[t]=2,r[t];if(K(i,t))return o[t]=3,i[t];if(s!==G&&K(s,t))return o[t]=4,s[t];Ws&&(o[t]=0)}}const p=Rt[t];let a,d;if(p)return t==="$attrs"&&oe(e.attrs,"get",""),p(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(s!==G&&K(s,t))return o[t]=4,s[t];if(d=u.config.globalProperties,K(d,t))return d[t]},set({_:e},t,s){const{data:n,setupState:r,ctx:i}=e;return ks(r,t)?(r[t]=s,!0):n!==G&&K(n,t)?(n[t]=s,!0):K(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:r,props:i,type:o}},l){let u;return!!(s[l]||e!==G&&l[0]!=="$"&&K(e,l)||ks(t,l)||K(i,l)||K(n,l)||K(Rt,l)||K(r.config.globalProperties,l)||(u=o.__cssModules)&&u[l])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:K(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function In(e){return R(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let Ws=!0;function _o(e){const t=Vr(e),s=e.proxy,n=e.ctx;Ws=!1,t.beforeCreate&&$n(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:u,inject:p,created:a,beforeMount:d,mounted:y,beforeUpdate:O,updated:j,activated:k,deactivated:$,beforeDestroy:C,beforeUnmount:P,destroyed:N,unmounted:I,render:ee,renderTracked:Je,renderTriggered:Se,errorCaptured:Ge,serverPrefetch:Jt,expose:Ze,inheritAttrs:yt,components:Gt,directives:qt,filters:Os}=t;if(p&&wo(p,n,null),o)for(const Z in o){const q=o[Z];F(q)&&(n[Z]=q.bind(s))}if(r){const Z=r.call(s,s);U(Z)&&(e.data=Nt(Z))}if(Ws=!0,i)for(const Z in i){const q=i[Z],Xe=F(q)?q.bind(s,s):F(q.get)?q.get.bind(s,s):Re,zt=!F(q)&&F(q.set)?q.set.bind(s):Re,Qe=us({get:Xe,set:zt});Object.defineProperty(n,Z,{enumerable:!0,configurable:!0,get:()=>Qe.value,set:Ce=>Qe.value=Ce})}if(l)for(const Z in l)Nr(l[Z],n,s,Z);if(u){const Z=F(u)?u.call(s):u;Reflect.ownKeys(Z).forEach(q=>{eo(q,Z[q])})}a&&$n(a,e,"c");function ce(Z,q){R(q)?q.forEach(Xe=>Z(Xe.bind(s))):q&&Z(q.bind(s))}if(ce(ao,d),ce(dn,y),ce(fo,O),ce(po,j),ce(lo,k),ce(co,$),ce(bo,Ge),ce(vo,Je),ce(mo,Se),ce(ho,P),ce(pn,I),ce(go,Jt),R(Ze))if(Ze.length){const Z=e.exposed||(e.exposed={});Ze.forEach(q=>{Object.defineProperty(Z,q,{get:()=>s[q],set:Xe=>s[q]=Xe,enumerable:!0})})}else e.exposed||(e.exposed={});ee&&e.render===Re&&(e.render=ee),yt!=null&&(e.inheritAttrs=yt),Gt&&(e.components=Gt),qt&&(e.directives=qt),Jt&&Fr(e)}function wo(e,t,s=Re){R(e)&&(e=Js(e));for(const n in e){const r=e[n];let i;U(r)?"default"in r?i=ts(r.from||n,r.default,!0):i=ts(r.from||n):i=ts(r),le(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[n]=i}}function $n(e,t,s){Fe(R(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function Nr(e,t,s,n){let r=n.includes(".")?kr(s,n):()=>s[n];if(X(e)){const i=t[e];F(i)&&ct(r,i)}else if(F(e))ct(r,e.bind(s));else if(U(e))if(R(e))e.forEach(i=>Nr(i,t,s,n));else{const i=F(e.handler)?e.handler.bind(s):t[e.handler];F(i)&&ct(r,i,e)}}function Vr(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let u;return l?u=l:!r.length&&!s&&!n?u=t:(u={},r.length&&r.forEach(p=>ls(u,p,o,!0)),ls(u,t,o)),U(t)&&i.set(t,u),u}function ls(e,t,s,n=!1){const{mixins:r,extends:i}=t;i&&ls(e,i,s,!0),r&&r.forEach(o=>ls(e,o,s,!0));for(const o in t)if(!(n&&o==="expose")){const l=So[o]||s&&s[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const So={data:Mn,props:Rn,emits:Rn,methods:Pt,computed:Pt,beforeCreate:ue,created:ue,beforeMount:ue,mounted:ue,beforeUpdate:ue,updated:ue,beforeDestroy:ue,beforeUnmount:ue,destroyed:ue,unmounted:ue,activated:ue,deactivated:ue,errorCaptured:ue,serverPrefetch:ue,components:Pt,directives:Pt,watch:To,provide:Mn,inject:Co};function Mn(e,t){return t?e?function(){return ie(F(e)?e.call(this,this):e,F(t)?t.call(this,this):t)}:t:e}function Co(e,t){return Pt(Js(e),Js(t))}function Js(e){if(R(e)){const t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ye(t)}Modifiers`]||e[`${ut(t)}Modifiers`];function Eo(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||G;let r=s;const i=t.startsWith("update:"),o=i&&Ao(n,t.slice(7));o&&(o.trim&&(r=s.map(a=>X(a)?a.trim():a)),o.number&&(r=s.map(vs)));let l,u=n[l=Es(t)]||n[l=Es(ye(t))];!u&&i&&(u=n[l=Es(ut(t))]),u&&Fe(u,e,6,r);const p=n[l+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Fe(p,e,6,r)}}const Io=new WeakMap;function Br(e,t,s=!1){const n=s?Io:t.emitsCache,r=n.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!F(e)){const u=p=>{const a=Br(p,t,!0);a&&(l=!0,ie(o,a))};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!i&&!l?(U(e)&&n.set(e,null),null):(R(i)?i.forEach(u=>o[u]=null):ie(o,i),U(e)&&n.set(e,o),o)}function ws(e,t){return!e||!ps(t)?!1:(t=t.slice(2).replace(/Once$/,""),K(e,t[0].toLowerCase()+t.slice(1))||K(e,ut(t))||K(e,t))}function kn(e){const{type:t,vnode:s,proxy:n,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:u,render:p,renderCache:a,props:d,data:y,setupState:O,ctx:j,inheritAttrs:k}=e,$=is(e);let C,P;try{if(s.shapeFlag&4){const I=r||n,ee=I;C=$e(p.call(ee,I,a,d,O,y,j)),P=l}else{const I=t;C=$e(I.length>1?I(d,{attrs:l,slots:o,emit:u}):I(d,null)),P=t.props?l:$o(l)}}catch(I){kt.length=0,ys(I,e,1),C=se(Ye)}let N=C;if(P&&k!==!1){const I=Object.keys(P),{shapeFlag:ee}=N;I.length&&ee&7&&(i&&I.some(hs)&&(P=Mo(P,i)),N=xt(N,P,!1,!0))}return s.dirs&&(N=xt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(s.dirs):s.dirs),s.transition&&fn(N,s.transition),C=N,is($),C}const $o=e=>{let t;for(const s in e)(s==="class"||s==="style"||ps(s))&&((t||(t={}))[s]=e[s]);return t},Mo=(e,t)=>{const s={};for(const n in e)(!hs(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function Ro(e,t,s){const{props:n,children:r,component:i}=e,{props:o,children:l,patchFlag:u}=t,p=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&u>=0){if(u&1024)return!0;if(u&16)return n?Fn(n,o,p):!!o;if(u&8){const a=t.dynamicProps;for(let d=0;dObject.create(Kr),Wr=e=>Object.getPrototypeOf(e)===Kr;function Fo(e,t,s,n=!1){const r={},i=Ur();e.propsDefaults=Object.create(null),Jr(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);s?e.props=n?r:Bi(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Do(e,t,s,n){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=H(r),[u]=e.propsOptions;let p=!1;if((n||o>0)&&!(o&16)){if(o&8){const a=e.vnode.dynamicProps;for(let d=0;d{u=!0;const[y,O]=Gr(d,t,!0);ie(o,y),O&&l.push(...O)};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!u)return U(e)&&n.set(e,pt),pt;if(R(i))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",gn=e=>R(e)?e.map($e):[$e(e)],No=(e,t,s)=>{if(t._n)return t;const n=Qi((...r)=>gn(t(...r)),s);return n._c=!1,n},qr=(e,t,s)=>{const n=e._ctx;for(const r in e){if(hn(r))continue;const i=e[r];if(F(i))t[r]=No(r,i,n);else if(i!=null){const o=gn(i);t[r]=()=>o}}},zr=(e,t)=>{const s=gn(t);e.slots.default=()=>s},Yr=(e,t,s)=>{for(const n in t)(s||!hn(n))&&(e[n]=t[n])},Vo=(e,t,s)=>{const n=e.slots=Ur();if(e.vnode.shapeFlag&32){const r=t._;r?(Yr(n,t,s),s&&cr(n,"_",r,!0)):qr(t,n)}else t&&zr(e,t)},Lo=(e,t,s)=>{const{vnode:n,slots:r}=e;let i=!0,o=G;if(n.shapeFlag&32){const l=t._;l?s&&l===1?i=!1:Yr(r,t,s):(i=!t.$stable,qr(t,r)),o=t}else t&&(zr(e,t),o={default:1});if(i)for(const l in r)!hn(l)&&o[l]==null&&delete r[l]},pe=Wo;function Bo(e){return Ho(e)}function Ho(e,t){const s=bs();s.__VUE__=!0;const{insert:n,remove:r,patchProp:i,createElement:o,createText:l,createComment:u,setText:p,setElementText:a,parentNode:d,nextSibling:y,setScopeId:O=Re,insertStaticContent:j}=e,k=(c,f,h,x=null,m=null,v=null,S=void 0,w=null,_=!!f.dynamicChildren)=>{if(c===f)return;c&&!Tt(c,f)&&(x=Yt(c),Ce(c,m,v,!0),c=null),f.patchFlag===-2&&(_=!1,f.dynamicChildren=null);const{type:b,ref:E,shapeFlag:T}=f;switch(b){case Ss:$(c,f,h,x);break;case Ye:C(c,f,h,x);break;case Ds:c==null&&P(f,h,x,S);break;case te:Gt(c,f,h,x,m,v,S,w,_);break;default:T&1?ee(c,f,h,x,m,v,S,w,_):T&6?qt(c,f,h,x,m,v,S,w,_):(T&64||T&128)&&b.process(c,f,h,x,m,v,S,w,_,wt)}E!=null&&m?$t(E,c&&c.ref,v,f||c,!f):E==null&&c&&c.ref!=null&&$t(c.ref,null,v,c,!0)},$=(c,f,h,x)=>{if(c==null)n(f.el=l(f.children),h,x);else{const m=f.el=c.el;f.children!==c.children&&p(m,f.children)}},C=(c,f,h,x)=>{c==null?n(f.el=u(f.children||""),h,x):f.el=c.el},P=(c,f,h,x)=>{[c.el,c.anchor]=j(c.children,f,h,x,c.el,c.anchor)},N=({el:c,anchor:f},h,x)=>{let m;for(;c&&c!==f;)m=y(c),n(c,h,x),c=m;n(f,h,x)},I=({el:c,anchor:f})=>{let h;for(;c&&c!==f;)h=y(c),r(c),c=h;r(f)},ee=(c,f,h,x,m,v,S,w,_)=>{if(f.type==="svg"?S="svg":f.type==="math"&&(S="mathml"),c==null)Je(f,h,x,m,v,S,w,_);else{const b=c.el&&c.el._isVueCE?c.el:null;try{b&&b._beginPatch(),Jt(c,f,m,v,S,w,_)}finally{b&&b._endPatch()}}},Je=(c,f,h,x,m,v,S,w)=>{let _,b;const{props:E,shapeFlag:T,transition:A,dirs:M}=c;if(_=c.el=o(c.type,v,E&&E.is,E),T&8?a(_,c.children):T&16&&Ge(c.children,_,null,x,m,Fs(c,v),S,w),M&&et(c,null,x,"created"),Se(_,c,c.scopeId,S,x),E){for(const W in E)W!=="value"&&!At(W)&&i(_,W,null,E[W],v,x);"value"in E&&i(_,"value",null,E.value,v),(b=E.onVnodeBeforeMount)&&Ae(b,x,c)}M&&et(c,null,x,"beforeMount");const V=Ko(m,A);V&&A.beforeEnter(_),n(_,f,h),((b=E&&E.onVnodeMounted)||V||M)&&pe(()=>{try{b&&Ae(b,x,c),V&&A.enter(_),M&&et(c,null,x,"mounted")}finally{}},m)},Se=(c,f,h,x,m)=>{if(h&&O(c,h),x)for(let v=0;v{for(let b=_;b{const w=f.el=c.el;let{patchFlag:_,dynamicChildren:b,dirs:E}=f;_|=c.patchFlag&16;const T=c.props||G,A=f.props||G;let M;if(h&&tt(h,!1),(M=A.onVnodeBeforeUpdate)&&Ae(M,h,f,c),E&&et(f,c,h,"beforeUpdate"),h&&tt(h,!0),(T.innerHTML&&A.innerHTML==null||T.textContent&&A.textContent==null)&&a(w,""),b?Ze(c.dynamicChildren,b,w,h,x,Fs(f,m),v):S||q(c,f,w,null,h,x,Fs(f,m),v,!1),_>0){if(_&16)yt(w,T,A,h,m);else if(_&2&&T.class!==A.class&&i(w,"class",null,A.class,m),_&4&&i(w,"style",T.style,A.style,m),_&8){const V=f.dynamicProps;for(let W=0;W{M&&Ae(M,h,f,c),E&&et(f,c,h,"updated")},x)},Ze=(c,f,h,x,m,v,S)=>{for(let w=0;w{if(f!==h){if(f!==G)for(const v in f)!At(v)&&!(v in h)&&i(c,v,f[v],null,m,x);for(const v in h){if(At(v))continue;const S=h[v],w=f[v];S!==w&&v!=="value"&&i(c,v,w,S,m,x)}"value"in h&&i(c,"value",f.value,h.value,m)}},Gt=(c,f,h,x,m,v,S,w,_)=>{const b=f.el=c?c.el:l(""),E=f.anchor=c?c.anchor:l("");let{patchFlag:T,dynamicChildren:A,slotScopeIds:M}=f;M&&(w=w?w.concat(M):M),c==null?(n(b,h,x),n(E,h,x),Ge(f.children||[],h,E,m,v,S,w,_)):T>0&&T&64&&A&&c.dynamicChildren&&c.dynamicChildren.length===A.length?(Ze(c.dynamicChildren,A,h,m,v,S,w),(f.key!=null||m&&f===m.subTree)&&Zr(c,f,!0)):q(c,f,h,E,m,v,S,w,_)},qt=(c,f,h,x,m,v,S,w,_)=>{f.slotScopeIds=w,c==null?f.shapeFlag&512?m.ctx.activate(f,h,x,S,_):Os(f,h,x,m,v,S,_):vn(c,f,_)},Os=(c,f,h,x,m,v,S)=>{const w=c.component=el(c,x,m);if(Dr(c)&&(w.ctx.renderer=wt),sl(w,!1,S),w.asyncDep){if(m&&m.registerDep(w,ce,S),!c.el){const _=w.subTree=se(Ye);C(null,_,f,h),c.placeholder=_.el}}else ce(w,c,f,h,m,v,S)},vn=(c,f,h)=>{const x=f.component=c.component;if(Ro(c,f,h))if(x.asyncDep&&!x.asyncResolved){Z(x,f,h);return}else x.next=f,x.update();else f.el=c.el,x.vnode=f},ce=(c,f,h,x,m,v,S)=>{const w=()=>{if(c.isMounted){let{next:T,bu:A,u:M,parent:V,vnode:W}=c;{const Pe=Xr(c);if(Pe){T&&(T.el=W.el,Z(c,T,S)),Pe.asyncDep.then(()=>{pe(()=>{c.isUnmounted||b()},m)});return}}let z=T,Q;tt(c,!1),T?(T.el=W.el,Z(c,T,S)):T=W,A&&es(A),(Q=T.props&&T.props.onVnodeBeforeUpdate)&&Ae(Q,V,T,W),tt(c,!0);const ne=kn(c),Te=c.subTree;c.subTree=ne,k(Te,ne,d(Te.el),Yt(Te),c,m,v),T.el=ne.el,z===null&&ko(c,ne.el),M&&pe(M,m),(Q=T.props&&T.props.onVnodeUpdated)&&pe(()=>Ae(Q,V,T,W),m)}else{let T;const{el:A,props:M}=f,{bm:V,m:W,parent:z,root:Q,type:ne}=c,Te=Mt(f);tt(c,!1),V&&es(V),!Te&&(T=M&&M.onVnodeBeforeMount)&&Ae(T,z,f),tt(c,!0);{Q.ce&&Q.ce._hasShadowRoot()&&Q.ce._injectChildStyle(ne,c.parent?c.parent.type:void 0);const Pe=c.subTree=kn(c);k(null,Pe,h,x,c,m,v),f.el=Pe.el}if(W&&pe(W,m),!Te&&(T=M&&M.onVnodeMounted)){const Pe=f;pe(()=>Ae(T,z,Pe),m)}(f.shapeFlag&256||z&&Mt(z.vnode)&&z.vnode.shapeFlag&256)&&c.a&&pe(c.a,m),c.isMounted=!0,f=h=x=null}};c.scope.on();const _=c.effect=new dr(w);c.scope.off();const b=c.update=_.run.bind(_),E=c.job=_.runIfDirty.bind(_);E.i=c,E.id=c.uid,_.scheduler=()=>an(E),tt(c,!0),b()},Z=(c,f,h)=>{f.component=c;const x=c.vnode.props;c.vnode=f,c.next=null,Do(c,f.props,x,h),Lo(c,f.children,h),He(),On(c),Ke()},q=(c,f,h,x,m,v,S,w,_=!1)=>{const b=c&&c.children,E=c?c.shapeFlag:0,T=f.children,{patchFlag:A,shapeFlag:M}=f;if(A>0){if(A&128){zt(b,T,h,x,m,v,S,w,_);return}else if(A&256){Xe(b,T,h,x,m,v,S,w,_);return}}M&8?(E&16&&_t(b,m,v),T!==b&&a(h,T)):E&16?M&16?zt(b,T,h,x,m,v,S,w,_):_t(b,m,v,!0):(E&8&&a(h,""),M&16&&Ge(T,h,x,m,v,S,w,_))},Xe=(c,f,h,x,m,v,S,w,_)=>{c=c||pt,f=f||pt;const b=c.length,E=f.length,T=Math.min(b,E);let A;for(A=0;AE?_t(c,m,v,!0,!1,T):Ge(f,h,x,m,v,S,w,_,T)},zt=(c,f,h,x,m,v,S,w,_)=>{let b=0;const E=f.length;let T=c.length-1,A=E-1;for(;b<=T&&b<=A;){const M=c[b],V=f[b]=_?Ne(f[b]):$e(f[b]);if(Tt(M,V))k(M,V,h,null,m,v,S,w,_);else break;b++}for(;b<=T&&b<=A;){const M=c[T],V=f[A]=_?Ne(f[A]):$e(f[A]);if(Tt(M,V))k(M,V,h,null,m,v,S,w,_);else break;T--,A--}if(b>T){if(b<=A){const M=A+1,V=MA)for(;b<=T;)Ce(c[b],m,v,!0),b++;else{const M=b,V=b,W=new Map;for(b=V;b<=A;b++){const he=f[b]=_?Ne(f[b]):$e(f[b]);he.key!=null&&W.set(he.key,b)}let z,Q=0;const ne=A-V+1;let Te=!1,Pe=0;const St=new Array(ne);for(b=0;b=ne){Ce(he,m,v,!0);continue}let Oe;if(he.key!=null)Oe=W.get(he.key);else for(z=V;z<=A;z++)if(St[z-V]===0&&Tt(he,f[z])){Oe=z;break}Oe===void 0?Ce(he,m,v,!0):(St[Oe-V]=b+1,Oe>=Pe?Pe=Oe:Te=!0,k(he,f[Oe],h,null,m,v,S,w,_),Q++)}const yn=Te?Uo(St):pt;for(z=yn.length-1,b=ne-1;b>=0;b--){const he=V+b,Oe=f[he],_n=f[he+1],wn=he+1{const{el:v,type:S,transition:w,children:_,shapeFlag:b}=c;if(b&6){Qe(c.component.subTree,f,h,x);return}if(b&128){c.suspense.move(f,h,x);return}if(b&64){S.move(c,f,h,wt);return}if(S===te){n(v,f,h);for(let T=0;T<_.length;T++)Qe(_[T],f,h,x);n(c.anchor,f,h);return}if(S===Ds){N(c,f,h);return}if(x!==2&&b&1&&w)if(x===0)w.beforeEnter(v),n(v,f,h),pe(()=>w.enter(v),m);else{const{leave:T,delayLeave:A,afterLeave:M}=w,V=()=>{c.ctx.isUnmounted?r(v):n(v,f,h)},W=()=>{v._isLeaving&&v[oo](!0),T(v,()=>{V(),M&&M()})};A?A(v,V,W):W()}else n(v,f,h)},Ce=(c,f,h,x=!1,m=!1)=>{const{type:v,props:S,ref:w,children:_,dynamicChildren:b,shapeFlag:E,patchFlag:T,dirs:A,cacheIndex:M,memo:V}=c;if(T===-2&&(m=!1),w!=null&&(He(),$t(w,null,h,c,!0),Ke()),M!=null&&(f.renderCache[M]=void 0),E&256){f.ctx.deactivate(c);return}const W=E&1&&A,z=!Mt(c);let Q;if(z&&(Q=S&&S.onVnodeBeforeUnmount)&&Ae(Q,f,c),E&6)ci(c.component,h,x);else{if(E&128){c.suspense.unmount(h,x);return}W&&et(c,null,f,"beforeUnmount"),E&64?c.type.remove(c,f,h,wt,x):b&&!b.hasOnce&&(v!==te||T>0&&T&64)?_t(b,f,h,!1,!0):(v===te&&T&384||!m&&E&16)&&_t(_,f,h),x&&bn(c)}const ne=V!=null&&M==null;(z&&(Q=S&&S.onVnodeUnmounted)||W||ne)&&pe(()=>{Q&&Ae(Q,f,c),W&&et(c,null,f,"unmounted"),ne&&(c.el=null)},h)},bn=c=>{const{type:f,el:h,anchor:x,transition:m}=c;if(f===te){li(h,x);return}if(f===Ds){I(c);return}const v=()=>{r(h),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(c.shapeFlag&1&&m&&!m.persisted){const{leave:S,delayLeave:w}=m,_=()=>S(h,v);w?w(c.el,v,_):_()}else v()},li=(c,f)=>{let h;for(;c!==f;)h=y(c),r(c),c=h;r(f)},ci=(c,f,h)=>{const{bum:x,scope:m,job:v,subTree:S,um:w,m:_,a:b}=c;jn(_),jn(b),x&&es(x),m.stop(),v&&(v.flags|=8,Ce(S,c,f,h)),w&&pe(w,f),pe(()=>{c.isUnmounted=!0},f)},_t=(c,f,h,x=!1,m=!1,v=0)=>{for(let S=v;S{if(c.shapeFlag&6)return Yt(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const f=y(c.anchor||c.el),h=f&&f[ro];return h?y(h):f};let As=!1;const xn=(c,f,h)=>{let x;c==null?f._vnode&&(Ce(f._vnode,null,null,!0),x=f._vnode.component):k(f._vnode||null,c,f,null,null,null,h),f._vnode=c,As||(As=!0,On(x),Ir(),As=!1)},wt={p:k,um:Ce,m:Qe,r:bn,mt:Os,mc:Ge,pc:q,pbc:Ze,n:Yt,o:e};return{render:xn,hydrate:void 0,createApp:Oo(xn)}}function Fs({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function tt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ko(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Zr(e,t,s=!1){const n=e.children,r=t.children;if(R(n)&&R(r))for(let i=0;i>1,e[s[l]]0&&(t[n]=s[i-1]),s[i]=n)}}for(i=s.length,o=s[i-1];i-- >0;)s[i]=o,o=t[o];return s}function Xr(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Xr(t)}function jn(e){if(e)for(let t=0;te.__isSuspense;function Wo(e,t){t&&t.pendingBranch?R(e)?t.effects.push(...e):t.effects.push(e):Xi(e)}const te=Symbol.for("v-fgt"),Ss=Symbol.for("v-txt"),Ye=Symbol.for("v-cmt"),Ds=Symbol.for("v-stc"),kt=[];let ge=null;function D(e=!1){kt.push(ge=e?null:[])}function Jo(){kt.pop(),ge=kt[kt.length-1]||null}let Lt=1;function Nn(e,t=!1){Lt+=e,e<0&&ge&&t&&(ge.hasOnce=!0)}function ti(e){return e.dynamicChildren=Lt>0?ge||pt:null,Jo(),Lt>0&&ge&&ge.push(e),e}function L(e,t,s,n,r,i){return ti(g(e,t,s,n,r,i,!0))}function Go(e,t,s,n,r){return ti(se(e,t,s,n,r,!0))}function si(e){return e?e.__v_isVNode===!0:!1}function Tt(e,t){return e.type===t.type&&e.key===t.key}const ni=({key:e})=>e??null,ss=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?X(e)||le(e)||F(e)?{i:me,r:e,k:t,f:!!s}:e:null);function g(e,t=null,s=null,n=0,r=null,i=e===te?0:1,o=!1,l=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ni(t),ref:t&&ss(t),scopeId:Mr,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:n,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:me};return l?(mn(u,s),i&128&&e.normalize(u)):s&&(u.shapeFlag|=X(s)?8:16),Lt>0&&!o&&ge&&(u.patchFlag>0||i&6)&&u.patchFlag!==32&&ge.push(u),u}const se=qo;function qo(e,t=null,s=null,n=0,r=null,i=!1){if((!e||e===xo)&&(e=Ye),si(e)){const l=xt(e,t,!0);return s&&mn(l,s),Lt>0&&!i&&ge&&(l.shapeFlag&6?ge[ge.indexOf(e)]=l:ge.push(l)),l.patchFlag=-2,l}if(ol(e)&&(e=e.__vccOpts),t){t=zo(t);let{class:l,style:u}=t;l&&!X(l)&&(t.class=ze(l)),U(u)&&(un(u)&&!R(u)&&(u=ie({},u)),t.style=Ft(u))}const o=X(e)?1:ei(e)?128:io(e)?64:U(e)?4:F(e)?2:0;return g(e,t,s,n,r,o,i,!0)}function zo(e){return e?un(e)||Wr(e)?ie({},e):e:null}function xt(e,t,s=!1,n=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:u}=e,p=t?Zo(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:p,key:p&&ni(p),ref:t&&t.ref?s&&i?R(i)?i.concat(ss(t)):[i,ss(t)]:ss(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==te?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&xt(e.ssContent),ssFallback:e.ssFallback&&xt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&n&&fn(a,u.clone(a)),a}function Yo(e=" ",t=0){return se(Ss,null,e,t)}function be(e="",t=!1){return t?(D(),Go(Ye,null,e)):se(Ye,null,e)}function $e(e){return e==null||typeof e=="boolean"?se(Ye):R(e)?se(te,null,e.slice()):si(e)?Ne(e):se(Ss,null,String(e))}function Ne(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:xt(e)}function mn(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(R(t))s=16;else if(typeof t=="object")if(n&65){const r=t.default;r&&(r._c&&(r._d=!1),mn(e,r()),r._c&&(r._d=!0));return}else{s=32;const r=t._;!r&&!Wr(t)?t._ctx=me:r===3&&me&&(me.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else F(t)?(t={default:t,_ctx:me},s=32):(t=String(t),n&64?(s=16,t=[Yo(t)]):s=8);e.children=t,e.shapeFlag|=s}function Zo(...e){const t={};for(let s=0;sde||me;let cs,qs;{const e=bs(),t=(s,n)=>{let r;return(r=e[s])||(r=e[s]=[]),r.push(n),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};cs=t("__VUE_INSTANCE_SETTERS__",s=>de=s),qs=t("__VUE_SSR_SETTERS__",s=>Bt=s)}const Wt=e=>{const t=de;return cs(e),e.scope.on(),()=>{e.scope.off(),cs(t)}},Vn=()=>{de&&de.scope.off(),cs(null)};function ri(e){return e.vnode.shapeFlag&4}let Bt=!1;function sl(e,t=!1,s=!1){t&&qs(t);const{props:n,children:r}=e.vnode,i=ri(e);Fo(e,n,i,t),Vo(e,r,s||t);const o=i?nl(e,t):void 0;return t&&qs(!1),o}function nl(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,yo);const{setup:n}=s;if(n){He();const r=e.setupContext=n.length>1?il(e):null,i=Wt(e),o=Ut(n,e,0,[e.props,r]),l=rr(o);if(Ke(),i(),(l||e.sp)&&!Mt(e)&&Fr(e),l){if(o.then(Vn,Vn),t)return o.then(u=>{Ln(e,u)}).catch(u=>{ys(u,e,0)});e.asyncDep=o}else Ln(e,o)}else ii(e)}function Ln(e,t,s){F(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:U(t)&&(e.setupState=Pr(t)),ii(e)}function ii(e,t,s){const n=e.type;e.render||(e.render=n.render||Re);{const r=Wt(e);He();try{_o(e)}finally{Ke(),r()}}}const rl={get(e,t){return oe(e,"get",""),e[t]}};function il(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,rl),slots:e.slots,emit:e.emit,expose:t}}function Cs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Pr(Hi(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Rt)return Rt[s](e)},has(t,s){return s in t||s in Rt}})):e.proxy}function ol(e){return F(e)&&"__vccOpts"in e}const us=(e,t)=>Gi(e,t,Bt),ll="3.5.34";/** * @vue/runtime-dom v3.5.34 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let zs;const Bn=typeof window<"u"&&window.trustedTypes;if(Bn)try{zs=Bn.createPolicy("vue",{createHTML:e=>e})}catch{}const oi=zs?e=>zs.createHTML(e):e=>e,cl="http://www.w3.org/2000/svg",fl="http://www.w3.org/1998/Math/MathML",je=typeof document<"u"?document:null,Hn=je&&je.createElement("template"),ul={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const r=t==="svg"?je.createElementNS(cl,e):t==="mathml"?je.createElementNS(fl,e):s?je.createElement(e,{is:s}):je.createElement(e);return e==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:e=>je.createTextNode(e),createComment:e=>je.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>je.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,r,i){const o=s?s.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),s),!(r===i||!(r=r.nextSibling)););else{Hn.innerHTML=oi(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const l=Hn.content;if(n==="svg"||n==="mathml"){const f=l.firstChild;for(;f.firstChild;)l.appendChild(f.firstChild);l.removeChild(f)}t.insertBefore(l,s)}return[o?o.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},al=Symbol("_vtc");function dl(e,t,s){const n=e[al];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Kn=Symbol("_vod"),pl=Symbol("_vsh"),hl=Symbol(""),gl=/(?:^|;)\s*display\s*:/;function ml(e,t,s){const n=e.style,r=X(s);let i=!1;if(s&&!r){if(t)if(X(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();s[l]==null&&Ot(n,l,"")}else for(const o in t)s[o]==null&&Ot(n,o,"");for(const o in s){o==="display"&&(i=!0);const l=s[o];l!=null?bl(e,o,!X(t)&&t?t[o]:void 0,l)||Ot(n,o,l):Ot(n,o,"")}}else if(r){if(t!==s){const o=n[hl];o&&(s+=";"+o),n.cssText=s,i=gl.test(s)}}else t&&e.removeAttribute("style");Kn in e&&(e[Kn]=i?n.display:"",e[pl]&&(n.display="none"))}const Un=/\s*!important$/;function Ot(e,t,s){if(R(s))s.forEach(n=>Ot(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=vl(e,t);Un.test(s)?e.setProperty(ct(n),s.replace(Un,""),"important"):e[n]=s}}const Wn=["Webkit","Moz","ms"],js={};function vl(e,t){const s=js[t];if(s)return s;let n=ye(t);if(n!=="filter"&&n in e)return js[t]=n;n=lr(n);for(let r=0;rNs||(wl.then(()=>Ns=0),Ns=Date.now());function Cl(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;Fe(Tl(n,s.value),t,5,[n])};return s.value=e,s.attached=Sl(),s}function Tl(e,t){if(R(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>r=>!r._stopped&&n&&n(r))}else return t}const Zn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Pl=(e,t,s,n,r,i)=>{const o=r==="svg";t==="class"?dl(e,n,o):t==="style"?ml(e,s,n):ps(t)?hs(t)||yl(e,t,s,n,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ol(e,t,n,o))?(qn(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Gn(e,t,n,o,i,t!=="value")):e._isVueCE&&(Al(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!X(n)))?qn(e,ye(t),n,i,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Gn(e,t,n,o))};function Ol(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Zn(t)&&F(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Zn(t)&&X(s)?!1:t in e}function Al(e,t){const s=e._def.props;if(!s)return!1;const n=ye(t);return Array.isArray(s)?s.some(r=>ye(r)===n):Object.keys(s).some(r=>ye(r)===n)}const us=e=>{const t=e.props["onUpdate:modelValue"]||!1;return R(t)?s=>es(t,s):t};function El(e){e.target.composing=!0}function Xn(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const vt=Symbol("_assign");function Qn(e,t,s){return t&&(e=e.trim()),s&&(e=vs(e)),e}const Ys={created(e,{modifiers:{lazy:t,trim:s,number:n}},r){e[vt]=us(r);const i=n||r.props&&r.props.type==="number";nt(e,t?"change":"input",o=>{o.target.composing||e[vt](Qn(e.value,s,i))}),(s||i)&&nt(e,"change",()=>{e.value=Qn(e.value,s,i)}),t||(nt(e,"compositionstart",El),nt(e,"compositionend",Xn),nt(e,"change",Xn))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:n,trim:r,number:i}},o){if(e[vt]=us(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?vs(e.value):e.value,f=t??"";if(l===f)return;const p=e.getRootNode();(p instanceof Document||p instanceof ShadowRoot)&&p.activeElement===e&&e.type!=="range"&&(n&&t===s||r&&e.value.trim()===f)||(e.value=f)}},Ts={deep:!0,created(e,{value:t,modifiers:{number:s}},n){const r=gs(t);nt(e,"change",()=>{const i=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>s?vs(as(o)):as(o));e[vt](e.multiple?r?new Set(i):i:i[0]),e._assigning=!0,Ar(()=>{e._assigning=!1})}),e[vt]=us(n)},mounted(e,{value:t}){er(e,t)},beforeUpdate(e,t,s){e[vt]=us(s)},updated(e,{value:t}){e._assigning||er(e,t)}};function er(e,t){const s=e.multiple,n=R(t);if(!(s&&!n&&!gs(t))){for(let r=0,i=e.options.length;rString(p)===String(l)):o.selected=yi(t,l)>-1}else o.selected=t.has(l);else if(Kt(as(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function as(e){return"_value"in e?e._value:e.value}const Il=["ctrl","shift","alt","meta"],$l={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Il.some(s=>e[`${s}Key`]&&!t.includes(s))},Zs=(e,t)=>{if(!e)return e;const s=e._withMods||(e._withMods={}),n=t.join(".");return s[n]||(s[n]=((r,...i)=>{for(let o=0;o{const t=Rl().createApp(...e),{mount:s}=t;return t.mount=n=>{const r=Dl(n);if(!r)return;const i=t._component;!F(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=s(r,!1,Fl(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function Fl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Dl(e){return X(e)?document.querySelector(e):e}const J=window,K={loadAllSettings:()=>J.loadAllSettings(),saveToggles:e=>J.saveToggles(JSON.stringify(e)),saveLayout:e=>J.saveLayout(e),saveZodiac:e=>J.saveZodiac(e),saveCity:e=>J.saveCity(e),saveWallpaperType:(e,t)=>J.saveWallpaperType(e,t),pickLocalImage:()=>J.pickLocalImage(),enableBing:()=>J.enableBing(),bingPrev:()=>J.bingPrev(),bingNext:()=>J.bingNext(),bingToggleFavorite:()=>J.bingToggleFavorite(),getBingInfo:()=>J.getBingInfo(),saveBingAutoRefresh:e=>J.saveBingAutoRefresh(e),getBingFavorites:()=>J.getBingFavorites(),bingSetByIdx:e=>J.bingSetByIdx(e),bingThumbDataURI:e=>J.bingThumbDataURI(e),pickSolidColor:()=>J.pickSolidColor(),pickGradientColor:()=>J.pickGradientColor(),addSavedColor:(e,t,s)=>J.addSavedColor(e,t,s),removeSavedColor:e=>J.removeSavedColor(e),applySavedColor:e=>J.applySavedColor(e),saveWallpaperText:e=>J.saveWallpaperText(e),saveKnowledgeKeyword:e=>J.saveKnowledgeKeyword(e),saveKnowledgePrompt:e=>J.saveKnowledgePrompt(e),pickPhotoDir:()=>J.pickPhotoDir(),clearPhotoDir:()=>J.clearPhotoDir(),savePhotoInterval:e=>J.savePhotoInterval(e),resizeToFit:(e,t)=>e.resizeToFit(e,t)},jl={class:"switch"},Nl=["checked"],Vl=ft({__name:"ToggleSwitch",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(e){return(t,s)=>(D(),V("label",jl,[g("input",{type:"checkbox",checked:e.modelValue,onChange:s[0]||(s[0]=n=>t.$emit("update:modelValue",n.target.checked))},null,40,Nl),s[1]||(s[1]=g("span",{class:"track"},[g("span",{class:"thumb"})],-1))]))}}),Ps=(e,t)=>{const s=e.__vccOpts||e;for(const[n,r]of t)s[n]=r;return s},ds=Ps(Vl,[["__scopeId","data-v-d838d577"]]),Ll={class:"mb-3"},Bl={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Hl={class:"text-xs font-medium text-[var(--text-muted)]"},Kl={key:0,class:"text-[10px] text-[var(--text-weak)] mt-px"},Ul=ft({__name:"ToggleSection",props:{s:{}},setup(e){const t=e,s=[{key:"autoStart",label:"开机启动",desc:"系统启动时自动运行"},{key:"wallpaper",label:"显示壁纸"},{key:"time",label:"时间日期"},{key:"showSeconds",label:"显示秒",sub:!0},{key:"weather",label:"天气信息"},{key:"zodiacCard",label:"星座运势"},{key:"knowledgeCard",label:"知识卡片"},{key:"ainewsCard",label:"AI 资讯"}],n=s.map(r=>r.key);return gt(()=>n.map(r=>t.s[r]),()=>{const r={};for(const i of n)r[i]=t.s[i];K.saveToggles(r)}),(r,i)=>(D(),V("div",Ll,[i[0]||(i[0]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"显示控制",-1)),g("div",Bl,[(D(),V(te,null,Be(s,o=>g("div",{key:o.key,class:ze(["flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)] first:border-t-0",{"pl-8":o.sub}])},[g("div",null,[g("div",Hl,ue(o.label),1),o.desc?(D(),V("div",Kl,ue(o.desc),1)):be("",!0)]),se(ds,{modelValue:e.s[o.key],"onUpdate:modelValue":l=>e.s[o.key]=l},null,8,["modelValue","onUpdate:modelValue"])],2)),64))])]))}}),sr=new Map;function Xs(e,t,s=500){clearTimeout(sr.get(e.name)),sr.set(e.name,setTimeout(()=>e(t),s))}const Wl={class:"mb-3"},Jl={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Gl={class:"flex justify-between items-center px-3.5 py-2"},ql={class:"flex gap-1"},zl=["onClick"],Yl={key:0,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},Zl={class:"flex justify-between items-center px-3.5 py-2"},Xl=["value"],Ql={key:0,class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},ec={key:1,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},tc={class:"flex justify-between items-center px-3.5 py-2"},sc={class:"text-[10px] text-[var(--text-weak)] truncate mr-2"},nc={key:2,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},rc={class:"flex justify-between items-center px-3.5 py-2"},ic={class:"flex items-center gap-2 min-w-0"},oc=["src"],lc={class:"min-w-0"},cc={class:"text-xs font-medium text-[var(--text-muted)] truncate"},fc={class:"text-[10px] text-[var(--text-weak)]"},uc={class:"flex gap-1 flex-shrink-0"},ac={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},dc={key:0,class:"px-3.5 py-2 border-t border-[var(--card-divider)]"},pc={class:"grid grid-cols-4 gap-1.5"},hc=["onClick"],gc=["src"],mc={key:3,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},vc={class:"flex justify-between items-center px-3.5 py-2"},bc={class:"flex gap-1"},xc={key:0,class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},yc={class:"flex items-center gap-1.5"},_c={key:4,class:"flex flex-wrap gap-1.5 mt-1.5 px-0.5"},wc=["onClick","onContextmenu"],Sc=ft({__name:"WallpaperSection",props:{s:{},currentColor:{}},emits:["set-wp-type","pick-solid","pick-gradient","save-color","apply-color","remove-color"],setup(e){const t=e,s=[{value:"theme",label:"主题"},{value:"image",label:"本地图片"},{value:"bing",label:"Bing"},{value:"color",label:"纯色/渐变"}],n=ot({date:"",title:"",copyright:"",url:"",fav:!1,idx:0,total:0}),r=ot(""),i=ot([]);async function o(){const $=await K.getBingInfo(),T=JSON.parse($);n.value=T,T.url&&(r.value=T.url.replace("_1920x1080","_400x240"))}async function l(){n.value=JSON.parse(await K.bingPrev())}async function f(){n.value=JSON.parse(await K.bingNext())}async function p(){n.value=JSON.parse(await K.bingToggleFavorite()),await d()}async function u($){n.value=JSON.parse(await K.bingSetByIdx($))}async function d(){const $=await K.getBingFavorites(),T=JSON.parse($);i.value=await Promise.all(T.map(async P=>({idx:parseInt(P.match(/(\d+)/)?.[1]||"0",10),thumb:await K.bingThumbDataURI(P)})))}gt(()=>t.s.bingAutoRefresh,$=>K.saveBingAutoRefresh($)),gt(()=>t.s.wallpaperType,$=>{$==="bing"&&(o(),d())},{immediate:!0});async function y(){const $=await K.pickLocalImage();$&&(t.s.imagePath=$)}function O($,T,P){return{background:P&&T?`linear-gradient(135deg,${$},${T})`:$}}const L=fs(()=>t.currentColor.c1?O(t.currentColor.c1,t.currentColor.c2,t.currentColor.gradient):{});function k($){return O($.color1,$.color2,$.gradient)}return($,T)=>(D(),V("div",Wl,[T[16]||(T[16]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"壁纸",-1)),g("div",Jl,[g("div",Gl,[T[8]||(T[8]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"类型选择",-1)),g("div",ql,[(D(),V(te,null,Be(s,P=>g("button",{key:P.value,onClick:j=>$.$emit("set-wp-type",P.value),class:ze([e.s.wallpaperType===P.value?"bg-[var(--accent)] border-[var(--accent)] text-[var(--text-strong)]":"bg-[var(--input-bg)] border-[var(--input-border)] text-[var(--text)] hover:bg-[var(--card-border)]","border rounded-md text-[11px] py-1 px-2.5 font-[inherit] cursor-pointer whitespace-nowrap transition-colors"])},ue(P.label),11,zl)),64))])])]),e.s.wallpaperType==="theme"?(D(),V("div",Yl,[g("div",Zl,[T[9]||(T[9]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"选择主题",-1)),lt(g("select",{"onUpdate:modelValue":T[0]||(T[0]=P=>e.s.theme=P),onChange:T[1]||(T[1]=P=>xe(K).saveWallpaperType("theme",e.s.theme)),class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-0.5 px-1.5 outline-none min-w-[80px] max-w-[160px] focus:border-[var(--input-border-focus)]"},[(D(!0),V(te,null,Be(e.s.themes,P=>(D(),V("option",{key:P.value,value:P.value},ue(P.label),9,Xl))),128))],544),[[Ts,e.s.theme]])]),e.s.theme==="text"?(D(),V("div",Ql,[T[10]||(T[10]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"自定义文字",-1)),lt(g("input",{type:"text","onUpdate:modelValue":T[2]||(T[2]=P=>e.s.wallpaperText=P),onInput:T[3]||(T[3]=P=>xe(Xs)(xe(K).saveWallpaperText,e.s.wallpaperText)),placeholder:"输入显示文字",class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-1 px-2 outline-none w-[140px] focus:border-[var(--input-border-focus)]"},null,544),[[Ys,e.s.wallpaperText]])])):be("",!0)])):be("",!0),e.s.wallpaperType==="image"?(D(),V("div",ec,[g("div",tc,[g("div",sc,ue(e.s.imagePath||"未选择图片"),1),g("button",{class:"btn",onClick:y},"选择图片")])])):be("",!0),e.s.wallpaperType==="bing"?(D(),V("div",nc,[g("div",rc,[g("div",ic,[n.value.url?(D(),V("img",{key:0,src:r.value,class:"w-16 h-10 object-cover rounded flex-shrink-0"},null,8,oc)):be("",!0),g("div",lc,[g("div",cc,ue(n.value.copyright||"Bing 每日壁纸"),1),g("div",fc,ue(n.value.idx>0?`${n.value.idx} / ${n.value.total}`:""),1)])]),g("div",uc,[g("button",{class:"btn-sm",onClick:l},"◀"),g("button",{class:"btn-sm",onClick:f},"▶"),g("button",{class:"btn-sm",onClick:p},ue(n.value.fav?"★":"☆"),1)])]),g("div",ac,[T[11]||(T[11]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"定时切换"),g("div",{class:"text-[10px] text-[var(--text-weak)] mt-px"},"每小时自动切换壁纸")],-1)),se(ds,{modelValue:e.s.bingAutoRefresh,"onUpdate:modelValue":T[4]||(T[4]=P=>e.s.bingAutoRefresh=P)},null,8,["modelValue"])]),i.value.length?(D(),V("div",dc,[T[12]||(T[12]=g("div",{class:"text-[10px] text-[var(--text-weak)] mb-1.5"},"收藏列表",-1)),g("div",pc,[(D(!0),V(te,null,Be(i.value,(P,j)=>(D(),V("div",{key:j,class:"cursor-pointer rounded overflow-hidden hover:opacity-80",onClick:I=>u(P.idx)},[g("img",{src:P.thumb,class:"w-full h-10 object-cover rounded"},null,8,gc)],8,hc))),128))])])):be("",!0)])):be("",!0),e.s.wallpaperType==="color"?(D(),V("div",mc,[g("div",vc,[T[13]||(T[13]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"选择颜色",-1)),g("div",bc,[g("button",{class:"btn",onClick:T[5]||(T[5]=P=>$.$emit("pick-solid"))},"纯色"),g("button",{class:"btn",onClick:T[6]||(T[6]=P=>$.$emit("pick-gradient"))},"渐变")])]),e.currentColor.c1?(D(),V("div",xc,[g("div",yc,[g("span",{class:"inline-block w-6 h-4 rounded-sm border border-[var(--input-border)]",style:Ft(L.value)},null,4),T[14]||(T[14]=g("span",{class:"text-[10px] text-[var(--text-weak)]"},"当前颜色",-1))]),g("button",{class:"btn",onClick:T[7]||(T[7]=P=>$.$emit("save-color"))},"收藏")])):be("",!0)])):be("",!0),e.s.savedColors.length&&e.s.wallpaperType==="color"?(D(),V("div",_c,[(D(!0),V(te,null,Be(e.s.savedColors,(P,j)=>(D(),V("div",{key:j,class:"color-swatch",style:Ft(k(P)),onClick:I=>$.$emit("apply-color",j),onContextmenu:Zs(I=>$.$emit("remove-color",j),["prevent"])},[...T[15]||(T[15]=[g("span",{class:"del"},"×",-1)])],44,wc))),128))])):be("",!0)]))}}),Cc=Ps(Sc,[["__scopeId","data-v-c301f1ac"]]),Tc={class:"mb-3"},Pc={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Oc={class:"flex justify-between items-center px-3.5 py-2"},Ac=ft({__name:"LayoutSection",props:{s:{}},setup(e){return(t,s)=>(D(),V("div",Tc,[s[4]||(s[4]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"布局",-1)),g("div",Pc,[g("div",Oc,[s[3]||(s[3]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"信息布局",-1)),lt(g("select",{"onUpdate:modelValue":s[0]||(s[0]=n=>e.s.layout=n),onChange:s[1]||(s[1]=n=>xe(K).saveLayout(e.s.layout)),class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-0.5 px-1.5 outline-none min-w-[80px] max-w-[160px] focus:border-[var(--input-border-focus)]"},[...s[2]||(s[2]=[g("option",{value:"single"},"合并卡片",-1),g("option",{value:"multi"},"独立卡片",-1)])],544),[[Ts,e.s.layout]])])])]))}}),Ec={class:"mb-3"},Ic={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},$c={class:"flex justify-between items-center px-3.5 py-2"},Mc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Rc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},kc={class:"text-[10px] text-[var(--text-weak)]"},Fc={class:"flex gap-1"},Dc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},jc=["value"],Nc=ft({__name:"PhotoSection",props:{s:{}},setup(e){const t=e;async function s(){const r=await K.pickPhotoDir();r&&(t.s.photoDir=r)}async function n(){await K.clearPhotoDir(),t.s.photoDir=""}return(r,i)=>(D(),V("div",Ec,[i[7]||(i[7]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"相册",-1)),g("div",Ic,[g("div",$c,[i[4]||(i[4]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"相册展示")],-1)),se(ds,{modelValue:e.s.photoCard,"onUpdate:modelValue":i[0]||(i[0]=o=>e.s.photoCard=o)},null,8,["modelValue"])]),g("div",Mc,[i[5]||(i[5]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"电子相册模式"),g("div",{class:"text-[10px] text-[var(--text-weak)] mt-px"},"照片铺满整个壁纸")],-1)),se(ds,{modelValue:e.s.photoFrameMode,"onUpdate:modelValue":i[1]||(i[1]=o=>e.s.photoFrameMode=o)},null,8,["modelValue"])]),g("div",Rc,[g("div",kc,ue(e.s.photoDir||"未选择目录"),1),g("div",Fc,[g("button",{class:"btn",onClick:s},"选择目录"),e.s.photoDir?(D(),V("button",{key:0,class:"btn-sm",onClick:n},"清除")):be("",!0)])]),g("div",Dc,[i[6]||(i[6]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"切换间隔",-1)),lt(g("select",{"onUpdate:modelValue":i[2]||(i[2]=o=>e.s.photoInterval=o),onChange:i[3]||(i[3]=o=>xe(K).savePhotoInterval(Number(e.s.photoInterval))),class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-0.5 px-1.5 outline-none min-w-[80px] max-w-[160px] focus:border-[var(--input-border-focus)]"},[(D(),V(te,null,Be([5,10,15,20,30,60],o=>g("option",{key:o,value:o},ue(o)+" 秒",9,jc)),64))],544),[[Ts,e.s.photoInterval]])])])]))}}),Vc=Ps(Nc,[["__scopeId","data-v-b7fb61bb"]]),Lc={class:"mb-3"},Bc={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Hc={class:"flex justify-between items-center px-3.5 py-2"},Kc=["value"],Uc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Wc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Jc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)] relative"},Gc={class:"text-[var(--text)] text-[11px]"},qc={class:"city-panel"},zc={class:"city-col"},Yc=["onClick"],Zc={class:"city-col"},Xc=["onClick"],Qc=ft({__name:"PersonalizeSection",props:{s:{}},setup(e){const t=e,s=["白羊座","金牛座","双子座","巨蟹座","狮子座","处女座","天秤座","天蝎座","射手座","摩羯座","水瓶座","双鱼座"],n=ot(!1),r=ot(""),i=ot(""),o=fs(()=>r.value?t.s.citiesByProv[r.value]||[]:[]),l=fs(()=>r.value&&i.value?`${r.value} · ${i.value}`:"未选择");function f(u){t.s.city=u.id,i.value=u.name,n.value=!1,K.saveCity(u.id)}function p(u){const d=document.querySelector(".city-picker");d&&!d.contains(u.target)&&(n.value=!1)}return dn(()=>{document.addEventListener("click",p);for(const u of Object.keys(t.s.citiesByProv)){for(const d of t.s.citiesByProv[u])if(d.id===t.s.city){r.value=u,i.value=d.name;break}if(r.value)break}}),pn(()=>document.removeEventListener("click",p)),(u,d)=>(D(),V("div",Lc,[d[12]||(d[12]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"个性化",-1)),g("div",Bc,[g("div",Hc,[d[7]||(d[7]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"我的星座",-1)),lt(g("select",{"onUpdate:modelValue":d[0]||(d[0]=y=>e.s.zodiac=y),onChange:d[1]||(d[1]=y=>xe(K).saveZodiac(e.s.zodiac)),class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-0.5 px-1.5 outline-none min-w-[80px] max-w-[160px] focus:border-[var(--input-border-focus)]"},[(D(),V(te,null,Be(s,y=>g("option",{key:y,value:y},ue(y),9,Kc)),64))],544),[[Ts,e.s.zodiac]])]),g("div",Uc,[d[8]||(d[8]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"知识关键字"),g("div",{class:"text-[10px] text-[var(--text-weak)] mt-px"},"AI 将根据关键字生成知识小卡片")],-1)),lt(g("input",{type:"text","onUpdate:modelValue":d[2]||(d[2]=y=>e.s.knowledgeKeyword=y),onInput:d[3]||(d[3]=y=>xe(Xs)(xe(K).saveKnowledgeKeyword,e.s.knowledgeKeyword)),placeholder:"如: 历史、科学、冷知识",class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-1 px-2 outline-none w-[140px] focus:border-[var(--input-border-focus)]"},null,544),[[Ys,e.s.knowledgeKeyword]])]),g("div",Wc,[d[9]||(d[9]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"知识提示词"),g("div",{class:"text-[10px] text-[var(--text-weak)] mt-px"},"补充风格或方向,系统会保证内容密度")],-1)),lt(g("input",{type:"text","onUpdate:modelValue":d[4]||(d[4]=y=>e.s.knowledgePrompt=y),onInput:d[5]||(d[5]=y=>xe(Xs)(xe(K).saveKnowledgePrompt,e.s.knowledgePrompt)),placeholder:"如: 偏实践、给出判断标准",class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-1 px-2 outline-none w-[140px] focus:border-[var(--input-border-focus)]"},null,544),[[Ys,e.s.knowledgePrompt]])]),g("div",Jc,[d[11]||(d[11]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"天气城市",-1)),g("div",{class:ze(["city-picker",{open:n.value}]),tabindex:"0",onClick:d[6]||(d[6]=y=>n.value=!n.value)},[g("span",Gc,ue(l.value),1),d[10]||(d[10]=g("span",{class:"absolute right-1.5 top-1/2 -translate-y-1/2 text-[var(--text-weak)] text-[10px] pointer-events-none"},"▾",-1)),g("div",qc,[g("div",zc,[(D(!0),V(te,null,Be(e.s.provinces,y=>(D(),V("div",{key:y,class:ze({active:y===r.value}),onClick:Zs(O=>r.value=y,["stop"])},ue(y),11,Yc))),128))]),g("div",Zc,[(D(!0),V(te,null,Be(o.value,y=>(D(),V("div",{key:y.id,class:ze({active:y.id===e.s.city}),onClick:Zs(O=>f(y),["stop"])},ue(y.name),11,Xc))),128))])])],2)])])]))}}),ef=Ps(Qc,[["__scopeId","data-v-f6ff8e37"]]),tf={class:"p-4 select-none overflow-y-auto"},sf=ft({__name:"App",setup(e){const t=ot(!1),s=Nt({lightTheme:!1,wallpaper:!0,time:!0,weather:!0,zodiacCard:!0,knowledgeCard:!0,layout:"single",zodiac:"射手座",city:"",provinces:[],citiesByProv:{},wallpaperType:"theme",theme:"",themes:[],color1:"",color2:"",colorGradient:!1,savedColors:[],bingAutoRefresh:!1,knowledgeKeyword:"",knowledgePrompt:"",wallpaperText:"",imagePath:"",showSeconds:!0,ainewsCard:!0,photoDir:"",photoInterval:15,photoCard:!0,photoFrameMode:!1,autoStart:!1}),n=Nt({c1:"",c2:"",gradient:!1});function r(u){const d=s.wallpaperType;s.wallpaperType=u,t.value&&(u==="theme"?K.saveWallpaperType("theme",s.theme):u==="bing"&&d!=="bing"&&K.enableBing())}async function i(){const u=await K.pickSolidColor();u&&(n.c1=u,n.c2="",n.gradient=!1)}async function o(){const u=await K.pickGradientColor();if(u){const d=u.split(",");n.c1=d[0],n.c2=d[1]||"",n.gradient=!0}}function l(){n.c1&&(K.addSavedColor(n.c1,n.c2,n.gradient),s.savedColors.push({color1:n.c1,color2:n.c2,gradient:n.gradient}))}function f(u){K.applySavedColor(u);const d=s.savedColors[u];n.c1=d.color1,n.c2=d.color2,n.gradient=d.gradient}async function p(u){await K.removeSavedColor(u),s.savedColors.splice(u,1)}return dn(async()=>{const u=await K.loadAllSettings(),d=JSON.parse(u);d.lightTheme&&(document.documentElement.className="light"),Object.assign(s,{...d,citiesByProv:d.citiesByProv||{},provinces:d.provinces||[],themes:d.themes||[],savedColors:d.savedColors||[]}),d.color1&&(n.c1=d.color1,n.c2=d.color2||"",n.gradient=d.colorGradient||!1),setTimeout(()=>{const y=document.documentElement;K.resizeToFit&&K.resizeToFit(y.scrollWidth,y.scrollHeight+8)},100),t.value=!0}),(u,d)=>(D(),V("div",tf,[d[0]||(d[0]=g("div",{class:"mb-3.5"},[g("h1",{class:"text-base font-semibold text-[var(--text-strong)]"},"桌面设置"),g("p",{class:"text-[11px] text-[var(--text-weak)] mt-0.5"},"壁纸 · 布局 · 信息显示")],-1)),se(Ul,{s},null,8,["s"]),se(Cc,{s,onSetWpType:r,"current-color":n,onPickSolid:i,onPickGradient:o,onSaveColor:l,onApplyColor:f,onRemoveColor:p},null,8,["s","current-color"]),se(Ac,{s},null,8,["s"]),se(Vc,{s},null,8,["s"]),se(ef,{s},null,8,["s"]),d[1]||(d[1]=g("div",{class:"text-center text-[11px] text-[var(--footer-color)] mt-3 py-1.5 tracking-wide"},"u-desktop v1.0",-1))]))}});kl(sf).mount("#app"); - +**/let zs;const Bn=typeof window<"u"&&window.trustedTypes;if(Bn)try{zs=Bn.createPolicy("vue",{createHTML:e=>e})}catch{}const oi=zs?e=>zs.createHTML(e):e=>e,cl="http://www.w3.org/2000/svg",ul="http://www.w3.org/1998/Math/MathML",je=typeof document<"u"?document:null,Hn=je&&je.createElement("template"),al={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const r=t==="svg"?je.createElementNS(cl,e):t==="mathml"?je.createElementNS(ul,e):s?je.createElement(e,{is:s}):je.createElement(e);return e==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:e=>je.createTextNode(e),createComment:e=>je.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>je.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,r,i){const o=s?s.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),s),!(r===i||!(r=r.nextSibling)););else{Hn.innerHTML=oi(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const l=Hn.content;if(n==="svg"||n==="mathml"){const u=l.firstChild;for(;u.firstChild;)l.appendChild(u.firstChild);l.removeChild(u)}t.insertBefore(l,s)}return[o?o.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},fl=Symbol("_vtc");function dl(e,t,s){const n=e[fl];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Kn=Symbol("_vod"),pl=Symbol("_vsh"),hl=Symbol(""),gl=/(?:^|;)\s*display\s*:/;function ml(e,t,s){const n=e.style,r=X(s);let i=!1;if(s&&!r){if(t)if(X(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();s[l]==null&&Ot(n,l,"")}else for(const o in t)s[o]==null&&Ot(n,o,"");for(const o in s){o==="display"&&(i=!0);const l=s[o];l!=null?bl(e,o,!X(t)&&t?t[o]:void 0,l)||Ot(n,o,l):Ot(n,o,"")}}else if(r){if(t!==s){const o=n[hl];o&&(s+=";"+o),n.cssText=s,i=gl.test(s)}}else t&&e.removeAttribute("style");Kn in e&&(e[Kn]=i?n.display:"",e[pl]&&(n.display="none"))}const Un=/\s*!important$/;function Ot(e,t,s){if(R(s))s.forEach(n=>Ot(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=vl(e,t);Un.test(s)?e.setProperty(ut(n),s.replace(Un,""),"important"):e[n]=s}}const Wn=["Webkit","Moz","ms"],js={};function vl(e,t){const s=js[t];if(s)return s;let n=ye(t);if(n!=="filter"&&n in e)return js[t]=n;n=lr(n);for(let r=0;rNs||(wl.then(()=>Ns=0),Ns=Date.now());function Cl(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;Fe(Tl(n,s.value),t,5,[n])};return s.value=e,s.attached=Sl(),s}function Tl(e,t){if(R(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>r=>!r._stopped&&n&&n(r))}else return t}const Zn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Pl=(e,t,s,n,r,i)=>{const o=r==="svg";t==="class"?dl(e,n,o):t==="style"?ml(e,s,n):ps(t)?hs(t)||yl(e,t,s,n,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ol(e,t,n,o))?(qn(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Gn(e,t,n,o,i,t!=="value")):e._isVueCE&&(Al(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!X(n)))?qn(e,ye(t),n,i,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Gn(e,t,n,o))};function Ol(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Zn(t)&&F(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Zn(t)&&X(s)?!1:t in e}function Al(e,t){const s=e._def.props;if(!s)return!1;const n=ye(t);return Array.isArray(s)?s.some(r=>ye(r)===n):Object.keys(s).some(r=>ye(r)===n)}const as=e=>{const t=e.props["onUpdate:modelValue"]||!1;return R(t)?s=>es(t,s):t};function El(e){e.target.composing=!0}function Xn(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const vt=Symbol("_assign");function Qn(e,t,s){return t&&(e=e.trim()),s&&(e=vs(e)),e}const Ys={created(e,{modifiers:{lazy:t,trim:s,number:n}},r){e[vt]=as(r);const i=n||r.props&&r.props.type==="number";nt(e,t?"change":"input",o=>{o.target.composing||e[vt](Qn(e.value,s,i))}),(s||i)&&nt(e,"change",()=>{e.value=Qn(e.value,s,i)}),t||(nt(e,"compositionstart",El),nt(e,"compositionend",Xn),nt(e,"change",Xn))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:n,trim:r,number:i}},o){if(e[vt]=as(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?vs(e.value):e.value,u=t??"";if(l===u)return;const p=e.getRootNode();(p instanceof Document||p instanceof ShadowRoot)&&p.activeElement===e&&e.type!=="range"&&(n&&t===s||r&&e.value.trim()===u)||(e.value=u)}},Ts={deep:!0,created(e,{value:t,modifiers:{number:s}},n){const r=gs(t);nt(e,"change",()=>{const i=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>s?vs(fs(o)):fs(o));e[vt](e.multiple?r?new Set(i):i:i[0]),e._assigning=!0,Ar(()=>{e._assigning=!1})}),e[vt]=as(n)},mounted(e,{value:t}){er(e,t)},beforeUpdate(e,t,s){e[vt]=as(s)},updated(e,{value:t}){e._assigning||er(e,t)}};function er(e,t){const s=e.multiple,n=R(t);if(!(s&&!n&&!gs(t))){for(let r=0,i=e.options.length;rString(p)===String(l)):o.selected=yi(t,l)>-1}else o.selected=t.has(l);else if(Kt(fs(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function fs(e){return"_value"in e?e._value:e.value}const Il=["ctrl","shift","alt","meta"],$l={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Il.some(s=>e[`${s}Key`]&&!t.includes(s))},Zs=(e,t)=>{if(!e)return e;const s=e._withMods||(e._withMods={}),n=t.join(".");return s[n]||(s[n]=((r,...i)=>{for(let o=0;o{const t=Rl().createApp(...e),{mount:s}=t;return t.mount=n=>{const r=Dl(n);if(!r)return;const i=t._component;!F(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=s(r,!1,Fl(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function Fl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Dl(e){return X(e)?document.querySelector(e):e}const J=window,B={loadAllSettings:()=>J.loadAllSettings(),saveToggles:e=>J.saveToggles(JSON.stringify(e)),saveLayout:e=>J.saveLayout(e),saveZodiac:e=>J.saveZodiac(e),saveCity:e=>J.saveCity(e),saveWallpaperType:(e,t)=>J.saveWallpaperType(e,t),pickLocalImage:()=>J.pickLocalImage(),enableBing:()=>J.enableBing(),bingPrev:()=>J.bingPrev(),bingNext:()=>J.bingNext(),bingToggleFavorite:()=>J.bingToggleFavorite(),getBingInfo:()=>J.getBingInfo(),saveBingAutoRefresh:e=>J.saveBingAutoRefresh(e),getBingFavorites:()=>J.getBingFavorites(),bingSetByIdx:e=>J.bingSetByIdx(e),bingThumbDataURI:e=>J.bingThumbDataURI(e),pickSolidColor:()=>J.pickSolidColor(),pickGradientColor:()=>J.pickGradientColor(),addSavedColor:(e,t,s)=>J.addSavedColor(e,t,s),removeSavedColor:e=>J.removeSavedColor(e),applySavedColor:e=>J.applySavedColor(e),saveWallpaperText:e=>J.saveWallpaperText(e),saveKnowledgeKeyword:e=>J.saveKnowledgeKeyword(e),saveKnowledgePrompt:e=>J.saveKnowledgePrompt(e),pickPhotoDir:()=>J.pickPhotoDir(),clearPhotoDir:()=>J.clearPhotoDir(),savePhotoInterval:e=>J.savePhotoInterval(e),resizeToFit:(e,t)=>e.resizeToFit(e,t)},jl={class:"switch"},Nl=["checked"],Vl=at({__name:"ToggleSwitch",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(e){return(t,s)=>(D(),L("label",jl,[g("input",{type:"checkbox",checked:e.modelValue,onChange:s[0]||(s[0]=n=>t.$emit("update:modelValue",n.target.checked))},null,40,Nl),s[1]||(s[1]=g("span",{class:"track"},[g("span",{class:"thumb"})],-1))]))}}),Ps=(e,t)=>{const s=e.__vccOpts||e;for(const[n,r]of t)s[n]=r;return s},ds=Ps(Vl,[["__scopeId","data-v-d838d577"]]),Ll={class:"mb-3"},Bl={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Hl={class:"text-xs font-medium text-[var(--text-muted)]"},Kl={key:0,class:"text-[10px] text-[var(--text-weak)] mt-px"},Ul=at({__name:"ToggleSection",props:{s:{}},setup(e){const t=e,s=[{key:"autoStart",label:"开机启动",desc:"系统启动时自动运行"},{key:"wallpaper",label:"显示壁纸"},{key:"time",label:"时间日期"},{key:"showSeconds",label:"显示秒",sub:!0},{key:"weather",label:"天气信息"},{key:"zodiacCard",label:"星座运势"},{key:"knowledgeCard",label:"知识卡片"},{key:"ainewsCard",label:"AI 资讯"}],n=s.map(r=>r.key);return ct(()=>n.map(r=>t.s[r]),()=>{const r={};for(const i of n)r[i]=t.s[i];B.saveToggles(r)}),(r,i)=>(D(),L("div",Ll,[i[0]||(i[0]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"显示控制",-1)),g("div",Bl,[(D(),L(te,null,Be(s,o=>g("div",{key:o.key,class:ze(["flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)] first:border-t-0",{"pl-8":o.sub}])},[g("div",null,[g("div",Hl,ae(o.label),1),o.desc?(D(),L("div",Kl,ae(o.desc),1)):be("",!0)]),se(ds,{modelValue:e.s[o.key],"onUpdate:modelValue":l=>e.s[o.key]=l},null,8,["modelValue","onUpdate:modelValue"])],2)),64))])]))}}),sr=new Map;function Xs(e,t,s,n=500){clearTimeout(sr.get(e)),sr.set(e,setTimeout(()=>t(s),n))}const Wl={class:"mb-3"},Jl={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Gl={class:"flex justify-between items-center px-3.5 py-2"},ql={class:"flex gap-1"},zl=["onClick"],Yl={key:0,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},Zl={class:"flex justify-between items-center px-3.5 py-2"},Xl=["value"],Ql={key:0,class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},ec={key:1,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},tc={class:"flex justify-between items-center px-3.5 py-2"},sc={class:"text-[10px] text-[var(--text-weak)] truncate mr-2"},nc={key:2,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},rc={class:"flex justify-between items-center px-3.5 py-2"},ic={class:"flex items-center gap-2 min-w-0"},oc=["src"],lc={class:"min-w-0"},cc={class:"text-xs font-medium text-[var(--text-muted)] truncate"},uc={class:"text-[10px] text-[var(--text-weak)]"},ac={class:"flex gap-1 flex-shrink-0"},fc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},dc={key:0,class:"px-3.5 py-2 border-t border-[var(--card-divider)]"},pc={class:"grid grid-cols-4 gap-1.5"},hc=["onClick"],gc=["src"],mc={key:3,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},vc={class:"flex justify-between items-center px-3.5 py-2"},bc={class:"flex gap-1"},xc={key:0,class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},yc={class:"flex items-center gap-1.5"},_c={key:4,class:"flex flex-wrap gap-1.5 mt-1.5 px-0.5"},wc=["onClick","onContextmenu"],Sc=at({__name:"WallpaperSection",props:{s:{},currentColor:{}},emits:["set-wp-type","pick-solid","pick-gradient","save-color","apply-color","remove-color"],setup(e){const t=e,s=[{value:"theme",label:"主题"},{value:"image",label:"本地图片"},{value:"bing",label:"Bing"},{value:"color",label:"纯色/渐变"}],n=ot({date:"",title:"",copyright:"",url:"",fav:!1,idx:0,total:0}),r=ot(""),i=ot([]);async function o(){const $=await B.getBingInfo(),C=JSON.parse($);if(n.value=C,C.url){const P=C.url.replace("_1920x1080","_400x240");r.value=P!==C.url?P:await B.bingThumbDataURI(C.url.split("/").pop()||"")}}async function l(){n.value=JSON.parse(await B.bingPrev())}async function u(){n.value=JSON.parse(await B.bingNext())}async function p(){n.value=JSON.parse(await B.bingToggleFavorite()),await d()}async function a($){n.value=JSON.parse(await B.bingSetByIdx($))}async function d(){const $=await B.getBingFavorites(),C=JSON.parse($);i.value=await Promise.all(C.map(async P=>({idx:parseInt(P.match(/(\d+)/)?.[1]||"0",10),thumb:await B.bingThumbDataURI(P)})))}ct(()=>t.s.bingAutoRefresh,$=>B.saveBingAutoRefresh($)),ct(()=>t.s.wallpaperType,$=>{$==="bing"&&(o(),d())},{immediate:!0});async function y(){const $=await B.pickLocalImage();$&&(t.s.imagePath=$)}function O($,C,P){return{background:P&&C?`linear-gradient(135deg,${$},${C})`:$}}const j=us(()=>t.currentColor.c1?O(t.currentColor.c1,t.currentColor.c2,t.currentColor.gradient):{});function k($){return O($.color1,$.color2,$.gradient)}return($,C)=>(D(),L("div",Wl,[C[16]||(C[16]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"壁纸",-1)),g("div",Jl,[g("div",Gl,[C[8]||(C[8]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"类型选择",-1)),g("div",ql,[(D(),L(te,null,Be(s,P=>g("button",{key:P.value,onClick:N=>$.$emit("set-wp-type",P.value),class:ze([e.s.wallpaperType===P.value?"bg-[var(--accent)] border-[var(--accent)] text-[var(--text-strong)]":"bg-[var(--input-bg)] border-[var(--input-border)] text-[var(--text)] hover:bg-[var(--card-border)]","border rounded-md text-[11px] py-1 px-2.5 font-[inherit] cursor-pointer whitespace-nowrap transition-colors"])},ae(P.label),11,zl)),64))])])]),e.s.wallpaperType==="theme"?(D(),L("div",Yl,[g("div",Zl,[C[9]||(C[9]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"选择主题",-1)),lt(g("select",{"onUpdate:modelValue":C[0]||(C[0]=P=>e.s.theme=P),onChange:C[1]||(C[1]=P=>xe(B).saveWallpaperType("theme",e.s.theme)),class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-0.5 px-1.5 outline-none min-w-[80px] max-w-[160px] focus:border-[var(--input-border-focus)]"},[(D(!0),L(te,null,Be(e.s.themes,P=>(D(),L("option",{key:P.value,value:P.value},ae(P.label),9,Xl))),128))],544),[[Ts,e.s.theme]])]),e.s.theme==="text"?(D(),L("div",Ql,[C[10]||(C[10]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"自定义文字",-1)),lt(g("input",{type:"text","onUpdate:modelValue":C[2]||(C[2]=P=>e.s.wallpaperText=P),onInput:C[3]||(C[3]=P=>xe(Xs)("wt",xe(B).saveWallpaperText,e.s.wallpaperText)),placeholder:"输入显示文字",class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-1 px-2 outline-none w-[140px] focus:border-[var(--input-border-focus)]"},null,544),[[Ys,e.s.wallpaperText]])])):be("",!0)])):be("",!0),e.s.wallpaperType==="image"?(D(),L("div",ec,[g("div",tc,[g("div",sc,ae(e.s.imagePath||"未选择图片"),1),g("button",{class:"btn",onClick:y},"选择图片")])])):be("",!0),e.s.wallpaperType==="bing"?(D(),L("div",nc,[g("div",rc,[g("div",ic,[n.value.url?(D(),L("img",{key:0,src:r.value,class:"w-16 h-10 object-cover rounded flex-shrink-0"},null,8,oc)):be("",!0),g("div",lc,[g("div",cc,ae(n.value.copyright||"Bing 每日壁纸"),1),g("div",uc,ae(n.value.idx>0?`${n.value.idx} / ${n.value.total}`:""),1)])]),g("div",ac,[g("button",{class:"btn-sm",onClick:l},"◀"),g("button",{class:"btn-sm",onClick:u},"▶"),g("button",{class:"btn-sm",onClick:p},ae(n.value.fav?"★":"☆"),1)])]),g("div",fc,[C[11]||(C[11]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"定时切换"),g("div",{class:"text-[10px] text-[var(--text-weak)] mt-px"},"每小时自动切换壁纸")],-1)),se(ds,{modelValue:e.s.bingAutoRefresh,"onUpdate:modelValue":C[4]||(C[4]=P=>e.s.bingAutoRefresh=P)},null,8,["modelValue"])]),i.value.length?(D(),L("div",dc,[C[12]||(C[12]=g("div",{class:"text-[10px] text-[var(--text-weak)] mb-1.5"},"收藏列表",-1)),g("div",pc,[(D(!0),L(te,null,Be(i.value,(P,N)=>(D(),L("div",{key:N,class:"cursor-pointer rounded overflow-hidden hover:opacity-80",onClick:I=>a(P.idx)},[g("img",{src:P.thumb,class:"w-full h-10 object-cover rounded"},null,8,gc)],8,hc))),128))])])):be("",!0)])):be("",!0),e.s.wallpaperType==="color"?(D(),L("div",mc,[g("div",vc,[C[13]||(C[13]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"选择颜色",-1)),g("div",bc,[g("button",{class:"btn",onClick:C[5]||(C[5]=P=>$.$emit("pick-solid"))},"纯色"),g("button",{class:"btn",onClick:C[6]||(C[6]=P=>$.$emit("pick-gradient"))},"渐变")])]),e.currentColor.c1?(D(),L("div",xc,[g("div",yc,[g("span",{class:"inline-block w-6 h-4 rounded-sm border border-[var(--input-border)]",style:Ft(j.value)},null,4),C[14]||(C[14]=g("span",{class:"text-[10px] text-[var(--text-weak)]"},"当前颜色",-1))]),g("button",{class:"btn",onClick:C[7]||(C[7]=P=>$.$emit("save-color"))},"收藏")])):be("",!0)])):be("",!0),e.s.savedColors.length&&e.s.wallpaperType==="color"?(D(),L("div",_c,[(D(!0),L(te,null,Be(e.s.savedColors,(P,N)=>(D(),L("div",{key:N,class:"color-swatch",style:Ft(k(P)),onClick:I=>$.$emit("apply-color",N),onContextmenu:Zs(I=>$.$emit("remove-color",N),["prevent"])},[...C[15]||(C[15]=[g("span",{class:"del"},"×",-1)])],44,wc))),128))])):be("",!0)]))}}),Cc=Ps(Sc,[["__scopeId","data-v-7f42d27c"]]),Tc={class:"mb-3"},Pc={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Oc={class:"flex justify-between items-center px-3.5 py-2"},Ac=at({__name:"LayoutSection",props:{s:{}},setup(e){return(t,s)=>(D(),L("div",Tc,[s[4]||(s[4]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"布局",-1)),g("div",Pc,[g("div",Oc,[s[3]||(s[3]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"信息布局",-1)),lt(g("select",{"onUpdate:modelValue":s[0]||(s[0]=n=>e.s.layout=n),onChange:s[1]||(s[1]=n=>xe(B).saveLayout(e.s.layout)),class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-0.5 px-1.5 outline-none min-w-[80px] max-w-[160px] focus:border-[var(--input-border-focus)]"},[...s[2]||(s[2]=[g("option",{value:"single"},"合并卡片",-1),g("option",{value:"multi"},"独立卡片",-1)])],544),[[Ts,e.s.layout]])])])]))}}),Ec={class:"mb-3"},Ic={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},$c={class:"flex justify-between items-center px-3.5 py-2"},Mc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Rc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},kc={class:"text-[10px] text-[var(--text-weak)]"},Fc={class:"flex gap-1"},Dc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},jc=["value"],Nc=at({__name:"PhotoSection",props:{s:{}},setup(e){const t=e;ct(()=>[t.s.photoCard,t.s.photoFrameMode],([r,i])=>{B.saveToggles({photoCard:r,photoFrameMode:i})});async function s(){const r=await B.pickPhotoDir();r&&(t.s.photoDir=r)}async function n(){await B.clearPhotoDir(),t.s.photoDir=""}return(r,i)=>(D(),L("div",Ec,[i[7]||(i[7]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"相册",-1)),g("div",Ic,[g("div",$c,[i[4]||(i[4]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"相册展示")],-1)),se(ds,{modelValue:e.s.photoCard,"onUpdate:modelValue":i[0]||(i[0]=o=>e.s.photoCard=o)},null,8,["modelValue"])]),g("div",Mc,[i[5]||(i[5]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"电子相册模式"),g("div",{class:"text-[10px] text-[var(--text-weak)] mt-px"},"照片铺满整个壁纸")],-1)),se(ds,{modelValue:e.s.photoFrameMode,"onUpdate:modelValue":i[1]||(i[1]=o=>e.s.photoFrameMode=o)},null,8,["modelValue"])]),g("div",Rc,[g("div",kc,ae(e.s.photoDir||"未选择目录"),1),g("div",Fc,[g("button",{class:"btn",onClick:s},"选择目录"),e.s.photoDir?(D(),L("button",{key:0,class:"btn-sm",onClick:n},"清除")):be("",!0)])]),g("div",Dc,[i[6]||(i[6]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"切换间隔",-1)),lt(g("select",{"onUpdate:modelValue":i[2]||(i[2]=o=>e.s.photoInterval=o),onChange:i[3]||(i[3]=o=>xe(B).savePhotoInterval(Number(e.s.photoInterval))),class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-0.5 px-1.5 outline-none min-w-[80px] max-w-[160px] focus:border-[var(--input-border-focus)]"},[(D(),L(te,null,Be([5,10,15,20,30,60],o=>g("option",{key:o,value:o},ae(o)+" 秒",9,jc)),64))],544),[[Ts,e.s.photoInterval]])])])]))}}),Vc=Ps(Nc,[["__scopeId","data-v-bb86a692"]]),Lc={class:"mb-3"},Bc={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Hc={class:"flex justify-between items-center px-3.5 py-2"},Kc=["value"],Uc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Wc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Jc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)] relative"},Gc={class:"text-[var(--text)] text-[11px]"},qc={class:"city-panel"},zc={class:"city-col"},Yc=["onClick"],Zc={class:"city-col"},Xc=["onClick"],Qc=at({__name:"PersonalizeSection",props:{s:{}},setup(e){const t=e,s=["白羊座","金牛座","双子座","巨蟹座","狮子座","处女座","天秤座","天蝎座","射手座","摩羯座","水瓶座","双鱼座"],n=ot(!1),r=ot(""),i=ot(""),o=us(()=>r.value?t.s.citiesByProv[r.value]||[]:[]),l=us(()=>r.value&&i.value?`${r.value} · ${i.value}`:"未选择");function u(a){t.s.city=a.id,i.value=a.name,n.value=!1,B.saveCity(a.id)}function p(a){const d=document.querySelector(".city-picker");d&&!d.contains(a.target)&&(n.value=!1)}return dn(()=>{document.addEventListener("click",p);const a=Object.entries(t.s.citiesByProv);for(const[d,y]of a){const O=y.find(j=>j.id===t.s.city);if(O){r.value=d,i.value=O.name;break}}}),pn(()=>document.removeEventListener("click",p)),(a,d)=>(D(),L("div",Lc,[d[12]||(d[12]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"个性化",-1)),g("div",Bc,[g("div",Hc,[d[7]||(d[7]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"我的星座",-1)),lt(g("select",{"onUpdate:modelValue":d[0]||(d[0]=y=>e.s.zodiac=y),onChange:d[1]||(d[1]=y=>xe(B).saveZodiac(e.s.zodiac)),class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-0.5 px-1.5 outline-none min-w-[80px] max-w-[160px] focus:border-[var(--input-border-focus)]"},[(D(),L(te,null,Be(s,y=>g("option",{key:y,value:y},ae(y),9,Kc)),64))],544),[[Ts,e.s.zodiac]])]),g("div",Uc,[d[8]||(d[8]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"知识关键字"),g("div",{class:"text-[10px] text-[var(--text-weak)] mt-px"},"AI 将根据关键字生成知识小卡片")],-1)),lt(g("input",{type:"text","onUpdate:modelValue":d[2]||(d[2]=y=>e.s.knowledgeKeyword=y),onInput:d[3]||(d[3]=y=>xe(Xs)("kw",xe(B).saveKnowledgeKeyword,e.s.knowledgeKeyword)),placeholder:"如: 历史、科学、冷知识",class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-1 px-2 outline-none w-[140px] focus:border-[var(--input-border-focus)]"},null,544),[[Ys,e.s.knowledgeKeyword]])]),g("div",Wc,[d[9]||(d[9]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"知识提示词"),g("div",{class:"text-[10px] text-[var(--text-weak)] mt-px"},"补充风格或方向,系统会保证内容密度")],-1)),lt(g("input",{type:"text","onUpdate:modelValue":d[4]||(d[4]=y=>e.s.knowledgePrompt=y),onInput:d[5]||(d[5]=y=>xe(Xs)("kp",xe(B).saveKnowledgePrompt,e.s.knowledgePrompt)),placeholder:"如: 偏实践、给出判断标准",class:"bg-[var(--input-bg)] border border-[var(--input-border)] rounded-md text-[var(--text)] text-[11px] py-1 px-2 outline-none w-[140px] focus:border-[var(--input-border-focus)]"},null,544),[[Ys,e.s.knowledgePrompt]])]),g("div",Jc,[d[11]||(d[11]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"天气城市",-1)),g("div",{class:ze(["city-picker",{open:n.value}]),tabindex:"0",onClick:d[6]||(d[6]=y=>n.value=!n.value)},[g("span",Gc,ae(l.value),1),d[10]||(d[10]=g("span",{class:"absolute right-1.5 top-1/2 -translate-y-1/2 text-[var(--text-weak)] text-[10px] pointer-events-none"},"▾",-1)),g("div",qc,[g("div",zc,[(D(!0),L(te,null,Be(e.s.provinces,y=>(D(),L("div",{key:y,class:ze({active:y===r.value}),onClick:Zs(O=>r.value=y,["stop"])},ae(y),11,Yc))),128))]),g("div",Zc,[(D(!0),L(te,null,Be(o.value,y=>(D(),L("div",{key:y.id,class:ze({active:y.id===e.s.city}),onClick:Zs(O=>u(y),["stop"])},ae(y.name),11,Xc))),128))])])],2)])])]))}}),eu=Ps(Qc,[["__scopeId","data-v-1a50093a"]]),tu={class:"p-4 select-none overflow-y-auto"},su=at({__name:"App",setup(e){const t=ot(!1),s=Nt({lightTheme:!1,wallpaper:!0,time:!0,weather:!0,zodiacCard:!0,knowledgeCard:!0,layout:"single",zodiac:"射手座",city:"",provinces:[],citiesByProv:{},wallpaperType:"theme",theme:"",themes:[],color1:"",color2:"",colorGradient:!1,savedColors:[],bingAutoRefresh:!1,knowledgeKeyword:"",knowledgePrompt:"",wallpaperText:"",imagePath:"",showSeconds:!0,ainewsCard:!0,photoDir:"",photoInterval:15,photoCard:!0,photoFrameMode:!1,autoStart:!1}),n=Nt({c1:"",c2:"",gradient:!1});function r(a){const d=s.wallpaperType;s.wallpaperType=a,t.value&&(a==="theme"?B.saveWallpaperType("theme",s.theme):a==="bing"&&d!=="bing"&&B.enableBing())}async function i(){const a=await B.pickSolidColor();a&&(n.c1=a,n.c2="",n.gradient=!1)}async function o(){const a=await B.pickGradientColor();if(a){const d=a.split(",");n.c1=d[0],n.c2=d[1]||"",n.gradient=!0}}function l(){n.c1&&(B.addSavedColor(n.c1,n.c2,n.gradient),s.savedColors.push({color1:n.c1,color2:n.c2,gradient:n.gradient}))}function u(a){B.applySavedColor(a);const d=s.savedColors[a];n.c1=d.color1,n.c2=d.color2,n.gradient=d.gradient}async function p(a){await B.removeSavedColor(a),s.savedColors.splice(a,1)}return dn(async()=>{const a=await B.loadAllSettings(),d=JSON.parse(a);d.lightTheme&&(document.documentElement.className="light"),Object.assign(s,{...d,citiesByProv:d.citiesByProv||{},provinces:d.provinces||[],themes:d.themes||[],savedColors:d.savedColors||[]}),d.color1&&(n.c1=d.color1,n.c2=d.color2||"",n.gradient=d.colorGradient||!1),setTimeout(()=>{const y=document.documentElement;B.resizeToFit&&B.resizeToFit(y.scrollWidth,y.scrollHeight+8)},100),t.value=!0}),(a,d)=>(D(),L("div",tu,[d[0]||(d[0]=g("div",{class:"mb-3.5"},[g("h1",{class:"text-base font-semibold text-[var(--text-strong)]"},"桌面设置"),g("p",{class:"text-[11px] text-[var(--text-weak)] mt-0.5"},"壁纸 · 布局 · 信息显示")],-1)),se(Ul,{s},null,8,["s"]),se(Cc,{s,onSetWpType:r,"current-color":n,onPickSolid:i,onPickGradient:o,onSaveColor:l,onApplyColor:u,onRemoveColor:p},null,8,["s","current-color"]),se(Ac,{s},null,8,["s"]),se(Vc,{s},null,8,["s"]),se(eu,{s},null,8,["s"]),d[1]||(d[1]=g("div",{class:"text-center text-[11px] text-[var(--footer-color)] mt-3 py-1.5 tracking-wide"},"u-desktop v1.0",-1))]))}});kl(su).mount("#app"); +
diff --git a/web/update.html b/web/update.html new file mode 100644 index 0000000..849a89a --- /dev/null +++ b/web/update.html @@ -0,0 +1,126 @@ + + + + + + + +
+
+
+
+
+
+ + + diff --git a/win32.go b/win32.go index 8b05086..37b3507 100644 --- a/win32.go +++ b/win32.go @@ -29,6 +29,7 @@ var ( procPostMessageW = user32.NewProc("PostMessageW") procTranslateMessage = user32.NewProc("TranslateMessage") procDispatchMessageW = user32.NewProc("DispatchMessageW") + procGetParent = user32.NewProc("GetParent") ) var wv webview2.WebView @@ -42,12 +43,19 @@ const ( ) const ( - gwlStyle = uintptr(0xFFFFFFF0) // GWL_STYLE = -16 - wsPopup = uintptr(0x80000000) - wsVisible = uintptr(0x10000000) - wsChild = uintptr(0x02000000) - wsSizebox = uintptr(0x00040000) - wsMaxbox = uintptr(0x00010000) + gwlStyle = uintptr(0xFFFFFFF0) // GWL_STYLE = -16 + gwlExStyle = uintptr(0xFFFFFFFEC) // GWL_EXSTYLE = -20 + wsPopup = uintptr(0x80000000) + wsVisible = uintptr(0x10000000) + wsChild = uintptr(0x02000000) + wsSizebox = uintptr(0x00040000) + wsMaxbox = uintptr(0x00010000) +) + +const ( + wsExTransparent = uintptr(0x00000020) + wsExLayered = uintptr(0x00080000) + wsExToolwindow = uintptr(0x00000080) ) var htmlQueue = make(chan string, 1)