diff --git a/docs/04-功能迭代/overlay鼠标交互实践.md b/docs/04-功能迭代/overlay鼠标交互实践.md new file mode 100644 index 0000000..8af5998 --- /dev/null +++ b/docs/04-功能迭代/overlay鼠标交互实践.md @@ -0,0 +1,175 @@ +# Overlay 鼠标交互实践 + +> 2026-06-05 | 知识卡片刷新按钮点击 + 悬停效果 + +--- + +## 背景 + +桌面壁纸 overlay 通过 WebView2 嵌入 WorkerW 实现,位于桌面图标层(SysListView32)之下。这意味着: + +- **WM_NCHITTEST 永远到不了 overlay**——`WindowFromPoint` 返回的是 SysListView32 +- **CSS hover/click 无效**——鼠标事件被上层桌面图标窗口拦截 +- 需要 WH_MOUSE_LL 全局低级钩子(Hook Type 14)从 Go 层直接拦截 + +--- + +## 踩坑记录 + +### 1. GWLP_WNDPROC 常量值错误 + +```go +// ❌ 错误:0xFFFFFFF4 = -12 = GWLP_ID,不是 GWLP_WNDPROC +const gwlpWndProc = uintptr(0xFFFFFFF4) + +// ✅ 正确:-4 = GWLP_WNDPROC +const gwlpWndProc = ^uintptr(3) // 按位取反(3) = -4 +``` + +**教训**:Windows 常量用负数表示时,不要手动换算十六进制,用 Go 的 `^uintptr(N)` 表达。 + +### 2. GC 回收 NewCallback 导致全局鼠标异常 + +```go +// ❌ 错误:cb 是局部变量,函数返回后可被 GC 回收 +func installMouseHook() { + cb := windows.NewCallback(func(...) uintptr { ... }) + procSetWindowsHookExW.Call(14, cb, 0, 0) +} + +// ✅ 正确:存储到包级变量 +var llMouseHookCb uintptr +func installMouseHook() { + llMouseHookCb = windows.NewCallback(func(...) uintptr { ... }) + procSetWindowsHookExW.Call(14, llMouseHookCb, 0, 0) +} +``` + +**现象**:GC 回收回调后,钩子指向无效内存,导致**所有鼠标点击被拦截**——桌面、其他软件全部点不了。 + +**教训**:`windows.NewCallback` 返回的引用必须保存在 Go 可达的变量中,Go GC 不知道 Windows 持有回调引用。 + +### 3. WindowFromPoint 传参方式 + +```go +// ❌ 错误:传指针 +hwndAt, _, _ := procWindowFromPoint.Call(uintptr(unsafe.Pointer(&screenPt))) + +// ✅ 正确:POINT 按值传递,打包到单个 uintptr +ptPacked := uintptr(s.X) | (uintptr(uint32(s.Y)) << 32) +hwndAt, _, _ := procWindowFromPoint.Call(ptPacked) +``` + +**教训**:Win32 API 中 `WindowFromPoint(POINT)` 的 POINT 是按值传递的,不是指针。在 64 位下两个 int32 打包为一个 uintptr。 + +### 4. SetCursor 在 WH_MOUSE_LL 中无效 + +```go +// ❌ 无效:被后续窗口的 WM_SETCURSOR 覆盖 +procSetCursor.Call(handCursor) // 闪一下就被桌面窗口重设为箭头 +``` + +**原因**:钩子返回后 WM_MOUSEMOVE 继续传递给桌面窗口(SysListView32),其在处理 WM_SETCURSOR 时将自己的光标设回去。 + +**结论**:在 overlay 这种底层窗口架构下,无法可靠地改变鼠标光标样式。可行的替代方案: +- 按钮视觉高亮(旋转 + 放大 + 背景色)✅ +- 全局 `SetSystemCursor`(影响整个系统,副作用大)❌ 不推荐 + +### 5. go-webview2 Bind 参数类型 + +```go +// ❌ 错误:JSON number 解码为 float64,int32 静默失败 +wv.Bind("setInteractiveRect", func(left, top, right, bottom int32) string { ... }) + +// ✅ 正确:用 float64 +wv.Bind("setInteractiveRect", func(left, top, right, bottom float64) string { ... }) +``` + +### 6. DPR 缩放坐标转换 + +JS `getBoundingClientRect()` 返回 CSS 像素,`ScreenToClient` 返回物理像素。必须乘 DPR: + +```javascript +const dpr = window.devicePixelRatio || 1 +setInteractiveRect( + Math.round(r.left * dpr), Math.round(r.top * dpr), + Math.round(r.right * dpr), Math.round(r.bottom * dpr) +) +``` + +### 7. HTTP 429 重试时 body 被消耗 + +```go +// ❌ 错误:第一次请求消耗了 body,重试发送空 body +resp, err := httpClient.Do(req) +if resp.StatusCode == 429 { + time.Sleep(3 * time.Second) + resp, err = httpClient.Do(req) // body 已经 EOF +} + +// ✅ 正确:创建新 Request +req2, _ := http.NewRequest("POST", cpaURL, bytes.NewReader(jsonData)) +resp2, _ := httpClient.Do(req2) +``` + +### 8. WindowFromPoint + Progman 判断桌面遮挡 + +```go +func isDesktopAtPoint(screenX, screenY int32) bool { + ptPacked := uintptr(screenX) | (uintptr(uint32(screenY)) << 32) + hwndAt, _, _ := procWindowFromPoint.Call(ptPacked) + for h := hwndAt; h != 0; h, _, _ = procGetParent.Call(h) { + if h == progmanHwnd { + return true + } + } + return false +} +``` + +**用途**:判断点击位置是否有其他窗口遮挡。只有桌面背景可见时才消费点击事件,避免拦截其他软件的点击。 + +--- + +## 最终架构 + +``` +WH_MOUSE_LL 全局钩子 +├── WM_MOUSEMOVE (0x0200) +│ └── 检查鼠标是否在按钮 hit rect 内 +│ ├── 进入 → 按钮添加 hover-active 样式(旋转+放大+高亮) +│ └── 离开 → 移除样式 +├── WM_LBUTTONDOWN (0x0201) +│ ├── WindowFromPoint 检查是否桌面背景可见 +│ ├── ScreenToClient 转换到 wvHwnd 坐标 +│ └── 命中按钮 rect → pushKnowledgeLoading + goroutine 刷新 +└── 其他事件 → CallNextHookEx 传递 +``` + +**hit rect 来源**:JS 端 `getBoundingClientRect() * DPR`,仅覆盖刷新按钮(+8px 扩展)。 + +**冷却机制**:30s 内重复点击回退显示缓存内容,不停留在"加载中"。 + +--- + +## 关键文件 + +| 文件 | 改动 | +|------|------| +| `win32.go` | 鼠标钩子、WindowFromPoint 桌面判断、Progman 句柄 | +| `knowledge.go` | deepseek-v4-pro 模型、质量检查、冷却回退 | +| `KnowledgeCard.vue` | 按钮 hit rect、hover-active 样式 | +| `systray.go` | setInteractiveRect float64 参数 | + +--- + +## 速查:Win32 API 要点 + +| API | 陷阱 | 正确做法 | +|-----|------|----------| +| `SetWindowLongPtrW` | 负数索引常量 | `^uintptr(3)` 表示 -4 | +| `windows.NewCallback` | GC 不跟踪外部引用 | 存包级变量 | +| `WindowFromPoint` | POINT 按值非指针 | 打包为 uintptr | +| `SetCursor` (WH_MOUSE_LL) | 被后续 WM_SETCURSOR 覆盖 | 不可靠,放弃 | +| `ScreenToClient` | 物理像素 | JS 侧乘 DPR | +| `go-webview2 Bind` | JSON number = float64 | 参数用 float64 | diff --git a/knowledge.go b/knowledge.go index c4b737a..8d615fb 100644 --- a/knowledge.go +++ b/knowledge.go @@ -9,16 +9,19 @@ import ( "math/rand" "net/http" "path/filepath" + "regexp" + "sync/atomic" "strings" "time" + "unicode" "unicode/utf8" _ "modernc.org/sqlite" ) const cpaURL = "https://cpa.1216.top/v1/chat/completions" -const cpaModel = "glm-5.1" -const minKnowledgeRunes = 80 +const cpaModel = "deepseek-v4-pro" +const minKnowledgeRunes = 120 type knowledgeData struct { Content string `json:"content"` @@ -96,31 +99,34 @@ func getKnowledgeCardCount(keyword string) int { return count } +// systemPromptCodeMark 用于在 Go raw string 中拼接反引号 +const systemPromptCodeMark = "`" + +const knowledgeSystemPrompt = `你是一位在一线写了 15 年底层系统代码的工程师,只在踩过真实生产级坑之后才写知识卡片。 + +内容铁律: +- 必须是大多数人不知道的冷知识、反直觉行为、或版本变更导致的隐蔽 break +- 必须包含至少一个精确数值(阈值/延迟/版本号/缓冲区大小/默认值等) +- 必须讲清因果链:触发条件 → 内部机制 → 实际后果 → 正确做法 +- 禁止泛泛而谈,禁止复述文档,禁止入门级内容 +- 每次从不同角度切入,不要重复之前的知识点 + +格式: +- Markdown:**加粗**重点、` + systemPromptCodeMark + `行内代码` + systemPromptCodeMark + `标记术语、简短列表 +- 120-200字,紧凑无废话 +- 不要 emoji` + func fetchKnowledgeFromLLM(keyword string, cfg *Config) string { basePrompt := buildKnowledgePrompt(keyword, cfg.KnowledgePrompt) messages := []map[string]string{ - { - "role": "system", - "content": `你是一位资深技术专家,面向有多年经验的开发者撰写知识卡片。 - -内容标准: -- 必须包含可直接用于生产的硬核知识:底层原理、性能陷阱、边界条件、源码级细节 -- 优先讲"为什么"而非"是什么"——机制、权衡、踩坑经验 -- 用具体数值、代码片段(仅关键词级别)、或真实场景佐证 -- 读者看完能立刻在项目中应用或避免踩坑 - -禁止: -- 入门级科普、"是什么"式定义、百科搬运 -- 空泛鸡汤("很重要"、"提升效率"、"广泛应用") -- 标题、序号、Markdown标记、emoji`, - }, + {"role": "system", "content": knowledgeSystemPrompt}, {"role": "user", "content": basePrompt}, } body := map[string]interface{}{ "model": cpaModel, "max_completion_tokens": 2048, - "temperature": 0.55, + "temperature": 0.8, "messages": messages, } content := requestKnowledgeCompletion(body) @@ -131,9 +137,13 @@ func fetchKnowledgeFromLLM(keyword string, cfg *Config) string { log.Printf("知识卡片质量不足,重试: %q", content) messages = append(messages, map[string]string{ + "role": "assistant", + "content": content, + }, map[string]string{ "role": "user", "content": fmt.Sprintf( - "上一条太短或信息密度不足。请重写一条「%s」知识卡片:120-180个中文字符,必须包含一个明确机制/原理、一个具体例子或应用场景、一个结论。只输出正文。", + "上面这条「%s」知识卡片质量不行:要么太短、要么没有具体数值、要么信息密度不够。"+ + "请换一个完全不同的角度重写,必须包含:一个精确数值 + 一个底层机制 + 一个生产踩坑场景。", keyword, ), }) @@ -147,14 +157,38 @@ func fetchKnowledgeFromLLM(keyword string, cfg *Config) string { return "" } +const promptCodeMark = "`" + +// 知识卡片随机切入角度,确保每次生成不同内容 +var knowledgeAngles = []string{ + "性能陷阱与调优", + "并发/竞态/死锁", + "内存泄漏与 GC", + "网络协议底层行为", + "安全漏洞与防御", + "错误处理的隐蔽坑", + "版本升级导致的 break change", + "配置默认值的陷阱", + "日志/监控/可观测性", + "序列化/反序列化边界", + "连接池/资源耗尽", + "编译器/运行时的反直觉行为", + "缓存一致性与失效", + "时区/时间处理陷阱", + "文件系统/IO 边界条件", +} + func buildKnowledgePrompt(keyword, customPrompt string) string { - basePrompt := fmt.Sprintf(`围绕「%s」写一条面向资深开发者的技术知识卡片。 + angle := knowledgeAngles[rand.Intn(len(knowledgeAngles))] + basePrompt := fmt.Sprintf(`围绕「%s」从「%s」角度写一条面向资深开发者的技术知识卡片。 要求: -- 100-160字,2-3句连贯正文 -- 必须触及底层机制、性能细节或生产踩坑经验 -- 必须包含一个具体场景或数值佐证(如延迟数据、内存阈值、版本差异等) -- 直接输出正文,不要标题、编号、Markdown`, keyword) +- 120-180字,信息密度极高 +- 必须是反常识、冷门陷阱、或版本差异等非常规知识点 +- 必须包含至少一个精确数值(如:默认超时 30s、缓冲区 4KB、Go 1.21 修复等) +- 必须讲清因果链:什么场景触发 → 底层发生了什么 → 有什么后果 → 正确做法 +- 用 Markdown 格式:**加粗重点**、`+promptCodeMark+`行内代码`+promptCodeMark+`标记术语 +- 不要写常见知识点,不要复述官方文档`, keyword, angle) if customPrompt != "" { basePrompt += "\n附加风格要求(不能覆盖上面的字数和质量要求):" + customPrompt } @@ -186,7 +220,29 @@ func requestKnowledgeCompletion(body map[string]interface{}) string { if resp.StatusCode != 200 { log.Printf("知识API返回状态码: %d", resp.StatusCode) - return "" + if resp.StatusCode == 429 { + // 限流:等待后用新 body 重试 + time.Sleep(3 * time.Second) + req2, err2 := http.NewRequest("POST", cpaURL, bytes.NewReader(jsonData)) + if err2 != nil { + return "" + } + req2.Header.Set("Authorization", "Bearer "+key) + req2.Header.Set("Content-Type", "application/json") + resp2, err2 := httpClient.Do(req2) + if err2 != nil { + log.Println("知识API重试失败:", err2) + return "" + } + defer resp2.Body.Close() + if resp2.StatusCode != 200 { + log.Printf("知识API重试状态码: %d", resp2.StatusCode) + return "" + } + resp = resp2 + } else { + return "" + } } var result struct { @@ -201,6 +257,10 @@ func requestKnowledgeCompletion(body map[string]interface{}) string { log.Println("知识API响应解析失败") return "" } + if len(result.Choices) == 0 { + log.Println("知识API: choices 为空") + return "" + } if len(result.Choices) > 0 { c := result.Choices[0].Message.Content if c == "" { @@ -211,29 +271,58 @@ func requestKnowledgeCompletion(body map[string]interface{}) string { return "" } -// normalizeKnowledgeContent 清洗 LLM 输出的格式残留(Markdown标记、标题前缀、多余空白) +// normalizeKnowledgeContent 清洗 LLM 输出的格式残留,保留 Markdown 标记 func normalizeKnowledgeContent(content string) string { content = strings.TrimSpace(content) - content = strings.Trim(content, "` \t\r\n") + // 去除整段代码块包裹 + if strings.HasPrefix(content, "```") && strings.HasSuffix(content, "```") { + content = strings.TrimPrefix(content, "```") + // 去除语言标识行 + if idx := strings.Index(content, "\n"); idx >= 0 && !strings.Contains(content[:idx], " ") { + content = content[idx+1:] + } + content = strings.TrimSuffix(content, "```") + content = strings.TrimSpace(content) + } + // 去除常见前缀 content = strings.TrimPrefix(content, "知识卡片:") content = strings.TrimPrefix(content, "知识卡片:") content = strings.TrimPrefix(content, "正文:") content = strings.TrimPrefix(content, "正文:") + // 统一换行 content = strings.ReplaceAll(content, "\r\n", "\n") - lines := strings.FieldsFunc(content, func(r rune) bool { - return r == '\n' || r == '\r' || r == '\t' - }) - content = strings.Join(lines, " ") - content = strings.Join(strings.Fields(content), " ") + // 连续空行压缩为两个换行(Markdown 段落分隔) + for strings.Contains(content, "\n\n\n") { + content = strings.ReplaceAll(content, "\n\n\n", "\n\n") + } + // 行尾空白清理 + lines := strings.Split(content, "\n") + for i, line := range lines { + lines[i] = strings.TrimRight(line, " \t") + } + content = strings.Join(lines, "\n") return strings.TrimSpace(content) } -// isQualityKnowledgeCard 检查字数 ≥80 且空泛表述 <3 条 +var numberRe = regexp.MustCompile(`\d+`) + +// weakPhrases 空泛表述列表 +var weakPhrases = []string{ + "很重要", "非常重要", "很有用", "提升效率", "值得关注", + "可以帮助", "广泛应用", "具有重要作用", "不可忽视", "具有重要意义", +} + +// isQualityKnowledgeCard 检查质量:字数≥120、有空泛表述上限、必须含数字、信息密度 func isQualityKnowledgeCard(content string) bool { - if utf8.RuneCountInString(content) < minKnowledgeRunes { + runes := utf8.RuneCountInString(content) + if runes < minKnowledgeRunes { return false } - weakPhrases := []string{"很重要", "非常重要", "很有用", "提升效率", "值得关注", "可以帮助", "广泛应用"} + // 必须包含数字(确保有具体数值) + if !numberRe.MatchString(content) { + return false + } + // 空泛表述检查 weakHits := 0 for _, phrase := range weakPhrases { if strings.Contains(content, phrase) { @@ -243,7 +332,21 @@ func isQualityKnowledgeCard(content string) bool { if weakHits >= 3 { return false } - return strings.ContainsAny(content, "。;;::,,") + // 必须有标点(非空内容) + if !strings.ContainsAny(content, "。;;::,,") { + return false + } + // 信息密度:非中文字符(代码、数字、标点、Markdown)占比 ≥ 15% + nonCJK := 0 + for _, r := range content { + if !unicode.Is(unicode.Han, r) && !unicode.IsSpace(r) { + nonCJK++ + } + } + if float64(nonCJK)/float64(runes) < 0.10 { + return false + } + return true } func pushKnowledgeJSON(content, keyword string) { @@ -251,7 +354,21 @@ func pushKnowledgeJSON(content, keyword string) { evalJS(fmt.Sprintf(`if(window.updateKnowledgeFromGo) window.updateKnowledgeFromGo(%s)`, string(data))) } +var lastFetchTime int64 // unix timestamp, 限流冷却 + func fetchAndPushKnowledge() { + // 30s 冷却,防止频繁点击触发限流 + now := time.Now().Unix() + if now-atomic.LoadInt64(&lastFetchTime) < 30 { + // 冷却中,回退显示缓存 + cfg := loadConfig() + if cached := getRandomKnowledgeCard(cfg.KnowledgeKeyword); cached != "" { + pushKnowledgeJSON(cached, cfg.KnowledgeKeyword) + } + return + } + atomic.StoreInt64(&lastFetchTime, now) + cfg := loadConfig() keyword := cfg.KnowledgeKeyword if keyword == "" { diff --git a/settings.go b/settings.go index 47e0d12..63743df 100644 --- a/settings.go +++ b/settings.go @@ -12,6 +12,7 @@ import ( "unsafe" "github.com/jchv/go-webview2" + "golang.org/x/sys/windows" "golang.org/x/sys/windows/registry" ) @@ -19,9 +20,12 @@ import ( var settingsHTML string var ( - settingsMu sync.Mutex - settingsOpen bool - settingsHwnd uintptr + settingsMu sync.Mutex + settingsWv webview2.WebView // 持久实例,nil 直到首次打开 + settingsHwnd uintptr + settingsOldWndProc uintptr // 子类化前的原始 wndproc + settingsWndProcCb uintptr // NewCallback 指针,防止 GC + settingsCreated bool // 首次创建完成后 true ) const runKeyPath = `Software\Microsoft\Windows\CurrentVersion\Run` @@ -71,6 +75,16 @@ func isSystemLightTheme() bool { return v == 1 } +// settingsWndProc 拦截 WM_CLOSE,隐藏窗口而非销毁 +func settingsWndProc(hwnd, msg, wp, lp uintptr) uintptr { + if msg == 0x0010 { // WM_CLOSE + procShowWindow.Call(hwnd, 0) // SW_HIDE + return 0 + } + r, _, _ := procCallWindowProcW.Call(settingsOldWndProc, hwnd, msg, wp, lp) + return r +} + var themeNames = []struct { Name ThemeName Label string @@ -105,26 +119,20 @@ func refreshVisibleCards(cfg, oldCfg *Config) { func openSettingsWindow() { settingsMu.Lock() - if settingsOpen { + if settingsCreated { settingsMu.Unlock() - if settingsHwnd != 0 { - procShowWindow.Call(settingsHwnd, 9) - procGetForegroundWindow.Call(settingsHwnd) - } + procShowWindow.Call(settingsHwnd, 9) // SW_RESTORE + procSetForegroundWindow.Call(settingsHwnd) + settingsWv.Dispatch(func() { + settingsWv.Eval("if(window.__refreshSettings) window.__refreshSettings()") + }) return } - settingsOpen = true settingsMu.Unlock() go func() { runtime.LockOSThread() - defer func() { - settingsMu.Lock() - settingsOpen = false - settingsHwnd = 0 - settingsMu.Unlock() - runtime.UnlockOSThread() - }() + defer runtime.UnlockOSThread() dataDir := filepath.Join(configDir(), "settings-data") os.MkdirAll(dataDir, 0755) @@ -135,7 +143,7 @@ func openSettingsWindow() { WindowOptions: webview2.WindowOptions{ Title: "桌面设置", Width: 760, - Height: 1350, + Height: 800, }, }) if w == nil { @@ -143,6 +151,17 @@ func openSettingsWindow() { return } + settingsWv = w + hwnd := uintptr(w.Window()) + + // 子类化:拦截 WM_CLOSE → 隐藏而非销毁 + settingsWndProcCb = windows.NewCallback(settingsWndProc) + oldProc, _, _ := procSetWindowLongPtrW.Call(hwnd, gwlpWndProc, settingsWndProcCb) + settingsOldWndProc = oldProc + + // 初始隐藏,resizeToFit 完成后再显示 + procShowWindow.Call(hwnd, 0) // SW_HIDE + w.Bind("loadAllSettings", func() string { cfg := loadConfig() @@ -536,13 +555,12 @@ func openSettingsWindow() { w.SetHtml(settingsHTML) - hwnd := uintptr(w.Window()) // disable resize + hide from taskbar - style, _, _ := procGetWindowLongPtrW.Call(hwnd, gwlStyle) - procSetWindowLongPtrW.Call(hwnd, gwlStyle, style & ^uintptr(wsSizebox|wsMaxbox)) - procSetWindowLongPtrW.Call(hwnd, gwlExStyle, wsExToolwindow) + 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 + // resizeToFit: JS measures content, Go adjusts window frame, then shows window w.Bind("resizeToFit", func(contentW, contentH int) string { type rect struct{ Left, Top, Right, Bottom int32 } var wr, cr rect @@ -562,15 +580,19 @@ func openSettingsWindow() { x := (int(screenW) - winW) / 2 y := (int(screenH) - winH) / 2 procMoveWindow.Call(hwnd, uintptr(x), uintptr(y), uintptr(winW), uintptr(winH), 1) + // 首次 resize 完成后显示窗口 + procShowWindow.Call(hwnd, 9) // SW_RESTORE + procSetForegroundWindow.Call(hwnd) return "" }) settingsMu.Lock() settingsHwnd = hwnd + settingsCreated = true settingsMu.Unlock() log.Println("设置窗口已打开") w.Run() - log.Println("设置窗口已关闭") + log.Println("设置窗口消息循环退出") }() } diff --git a/systray.go b/systray.go index adce2d1..cea8736 100644 --- a/systray.go +++ b/systray.go @@ -124,7 +124,7 @@ 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) + procSetWindowLongPtrW.Call(wvHwnd, gwlExStyle, wsExLayered) // 立即嵌入 WorkerW embedWorkerW(workerw, screenW, screenH) @@ -136,6 +136,20 @@ func startWebView() { return saveConfig(cfg) }) + wv.Bind("refreshKnowledge", func() string { + go fetchAndPushKnowledge() + return "" + }) + + wv.Bind("setInteractiveRect", func(left, top, right, bottom float64) string { + overlayHitRect.Left = int32(left) + overlayHitRect.Top = int32(top) + overlayHitRect.Right = int32(right) + overlayHitRect.Bottom = int32(bottom) + overlayHasHitRect = true + return "" + }) + log.Println("设置 HTML...") cfg := loadConfig() wv.SetHtml(buildWallpaperHTML(cfg)) @@ -145,6 +159,11 @@ func startWebView() { procShowWindow.Call(wvHwnd, 5) log.Println("壁纸窗口已显示") + // 子类化:WM_NCHITTEST 动态穿透(WebView2 初始化完成后) + subclassOverlayWindows() + // 全局鼠标钩子:桌面图标层拦截了 WM_NCHITTEST,用钩子直接捕获点击 + installMouseHook() + go func() { time.Sleep(500 * time.Millisecond) reloadAllCards() diff --git a/web-ui/src/overlay/components/KnowledgeCard.vue b/web-ui/src/overlay/components/KnowledgeCard.vue index 8e4ef5d..8c55638 100644 --- a/web-ui/src/overlay/components/KnowledgeCard.vue +++ b/web-ui/src/overlay/components/KnowledgeCard.vue @@ -3,18 +3,73 @@
知识卡片 #{{ state.knowledge.keyword }} +
" - {{ state.knowledge.content }} +
请在设置中配置知识关键字
+**/let Ws;const Pn=typeof window<"u"&&window.trustedTypes;if(Pn)try{Ws=Pn.createPolicy("vue",{createHTML:e=>e})}catch{}const Gr=Ws?e=>Ws.createHTML(e):e=>e,sl="http://www.w3.org/2000/svg",nl="http://www.w3.org/1998/Math/MathML",ke=typeof document<"u"?document:null,Fn=ke&&ke.createElement("template"),rl={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"?ke.createElementNS(sl,e):t==="mathml"?ke.createElementNS(nl,e):s?ke.createElement(e,{is:s}):ke.createElement(e);return e==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:e=>ke.createTextNode(e),createComment:e=>ke.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ke.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{Fn.innerHTML=Gr(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]}},il=Symbol("_vtc");function ol(e,t,s){const n=e[il];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,r=ee(s);let i=!1;if(s&&!r){if(t)if(ee(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?dl(e,o,!ee(t)&&t?t[o]:void 0,l)||Ot(n,o,l):Ot(n,o,"")}}else if(r){if(t!==s){const o=n[cl];o&&(s+=";"+o),n.cssText=s,i=fl.test(s)}}else t&&e.removeAttribute("style");Rn in e&&(e[Rn]=i?n.display:"",e[ll]&&(n.display="none"))}const Hn=/\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=al(e,t);Hn.test(s)?e.setProperty(ft(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 r=0;rPs||(ml.then(()=>Ps=0),Ps=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=>r=>!r._stopped&&n&&n(r))}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,r,i)=>{const o=r==="svg";t==="class"?ol(e,n,o):t==="style"?ul(e,s,n):cs(t)?fs(t)||gl(e,t,s,n,i):(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")&&Nn(e,t,n,o,i,t!=="value")):e._isVueCE&&(Sl(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ee(n)))?Ln(e,ye(t),n,i,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Nn(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 r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="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(r=>ye(r)===n):Object.keys(s).some(r=>ye(r)===n)}const Tl=oe({patchProp:wl},rl);let Wn;function Cl(){return Wn||(Wn=Do(Tl))}const Al=((...e)=>{const t=Cl().createApp(...e),{mount:s}=t;return t.mount=n=>{const r=Ol(n);if(!r)return;const i=t._component;!D(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=s(r,!1,El(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function El(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ol(e){return ee(e)?document.querySelector(e):e}const S=ps({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&&(S.layout=e.layout),e.showSeconds!==void 0&&(S.showSeconds=e.showSeconds),e.userZodiac&&(S.userZodiac=e.userZodiac),e.wallpaperVisible!==void 0&&(S.wallpaperVisible=e.wallpaperVisible),e.photoFrameMode!==void 0&&(S.photoFrameMode=e.photoFrameMode),e.cardVisibility&&Object.assign(S.cardVisibility,e.cardVisibility),e.backgroundHtml&&(S.backgroundHtml=e.backgroundHtml))}function Jr(){const e=Ze("00:00"),t=Ze("1月1日 周一"),s=Ze("");let n=null,r="",i="";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 k=Math.ceil((C.getTime()-d.getTime())/864e5);if(k>0&&k<=60&&p.push({diff:k,name:w.name}),k<0){const $=new Date(a+1,w.m-1,w.d);k=Math.ceil(($.getTime()-d.getTime())/864e5),k>0&&k<=60&&p.push({diff:k,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=S.showSeconds?`${a}:${p}:${w}`:`${a}:${p}`,k=d.getMonth()+1,$=d.getDate(),Q=["周日","周一","周二","周三","周四","周五","周六"][d.getDay()],K=`${k}月${$}日 ${Q}`;if(C!==r&&(e.value=C,r=C),K!==i){const N=l(d);t.value=K,s.value=N,i=K}}return ms(()=>{f(),n=window.setInterval(f,1e3)}),Wt(()=>{n&&clearInterval(n)}),{timeStr:e,dateStr:t,holidayStr:s}}const $l=["innerHTML"],Il=He({__name:"TimeCard",setup(e){const{timeStr:t,dateStr:s,holidayStr:n}=Jr(),r=Ze(!1);let i=null;const o=ct(()=>n.value?`${s.value} 「${n.value}」`:s.value);return Ye(t,l=>{(l.endsWith(":00:00")||l.endsWith(":00"))&&(r.value=!1,requestAnimationFrame(()=>{r.value=!0}),i&&clearTimeout(i),i=window.setTimeout(()=>{r.value=!1},6e3))}),Wt(()=>{i&&clearTimeout(i)}),(l,f)=>(E(),H(te,null,[F("div",{class:"date",innerHTML:o.value},null,8,$l),F("div",{class:ds(["time",{"hourly-glow":r.value}])},W(M(t)),3)],64))}}),Ue=(e,t)=>{const s=e.__vccOpts||e;for(const[n,r]of t)s[n]=r;return s},Zr=Ue(Il,[["__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"},kl={key:0,class:"forecast-pop"},Nl={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)=>(E(),H(te,null,[M(S).weather?.current?(E(),H("div",Pl,W(M(S).weather.current),1)):U("",!0),M(S).weather?.hourly?.length?(E(),H(te,{key:1},[s[0]||(s[0]=F("div",{class:"forecast-title"},"24小时预报",-1)),F("div",Fl,[(E(!0),H(te,null,is(M(S).weather.hourly,n=>(E(),H("div",{class:"forecast-item",key:n.time},[F("div",Rl,W(n.time),1),F("div",Hl,W(n.icon),1),F("div",Dl,W(n.temp),1),n.pop&&n.pop!=="0"?(E(),H("div",kl,W(n.pop)+"%",1)):U("",!0)]))),128))])],64)):U("",!0),M(S).weather?.daily?.length?(E(),H(te,{key:2},[s[1]||(s[1]=F("div",{class:"forecast-title",style:{"margin-top":"12px"}},"7日预报",-1)),F("div",Nl,[(E(!0),H(te,null,is(M(S).weather.daily,n=>(E(),H("div",{class:"daily-item",key:n.date},[F("div",Ll,W(n.date),1),F("div",Vl,W(n.icon),1),F("div",jl,W(n.tempMin)+"°~"+W(n.tempMax)+"°",1)]))),128))])],64)):U("",!0)],64))}}),Yr=Ue(Kl,[["__scopeId","data-v-c377fb97"]]),Wl={白羊座:{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"}},Ct={all:"#e0e0e0",love:"#ff6b9d",work:"#4fc3f7",money:"#ffd54f",health:"#81c784"};function Ul(){const e=ct(()=>Wl[S.userZodiac]||{icon:"✨",date:""}),t=ct(()=>S.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}=Ul(),n=ct(()=>s.value?[{label:"综合",val:parseInt(s.value.all)||0,color:Ct.all},{label:"爱情",val:parseInt(s.value.love)||0,color:Ct.love},{label:"工作",val:parseInt(s.value.work)||0,color:Ct.work},{label:"财运",val:parseInt(s.value.money)||0,color:Ct.money},{label:"健康",val:parseInt(s.value.health)||0,color:Ct.health}]:[]),r=ct(()=>s.value?.luckyColor||s.value?.luckyNum||s.value?.noble);return(i,o)=>(E(),H("div",Bl,[F("div",zl,W(M(t).icon)+" "+W(M(S).userZodiac)+"运势",1),F("div",ql,W(M(t).date),1),M(s)?(E(),H(te,{key:0},[(E(!0),H(te,null,is(n.value,l=>(E(),H("div",{class:"zodiac-bar",key:l.label},[F("span",Gl,W(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,W(l.val)+"%",1)]))),128)),r.value?(E(),H("div",Yl,[M(s).luckyColor?(E(),H("span",Xl,"🎨 "+W(M(s).luckyColor),1)):U("",!0),M(s).luckyNum?(E(),H("span",Ql,"🔢 "+W(M(s).luckyNum),1)):U("",!0),M(s).noble?(E(),H("span",ec,"⭐ "+W(M(s).noble),1)):U("",!0)])):U("",!0),M(s).summary?(E(),H("div",tc,W(M(s).summary),1)):U("",!0)],64)):(E(),H("div",sc,"运势加载中..."))]))}}),Xr=Ue(nc,[["__scopeId","data-v-bcc0f377"]]),rc={class:"knowledge-card"},ic={class:"knowledge-header"},oc={key:0,class:"knowledge-keyword-tag"},lc={key:0,class:"knowledge-body"},cc=["innerHTML"],fc={key:1,class:"knowledge-placeholder"},uc=He({__name:"KnowledgeCard",setup(e){function t(){S.knowledge={...S.knowledge,content:"加载中..."},window.refreshKnowledge?.()}function s(){const i=document.querySelector(".knowledge-refresh-btn");if(!i)return;const o=i.getBoundingClientRect(),l=window.devicePixelRatio||1,f=8*l;window.setInteractiveRect?.(Math.round(o.left*l-f),Math.round(o.top*l-f),Math.round(o.right*l+f),Math.round(o.bottom*l+f))}ms(()=>{s(),window.addEventListener("resize",s)}),Wt(()=>{window.removeEventListener("resize",s)});function n(i){let o=i;return o=o.replace(/```(\w*)\n?([\s\S]*?)```/g,"
$2
"),o=o.replace(/`([^`]+)`/g,"$1"),o=o.replace(/\*\*(.+?)\*\*/g,"$1"),o=o.replace(/(?$1"),o=o.replace(/^##\s+(.+)$/gm,"

$1

"),o=o.replace(/^[-*]\s+(.+)$/gm,"
  • $1
  • "),o=o.replace(/((?:
  • [\s\S]*?<\/li>\s*)+)/g,""),o=o.replace(/\n\n+/g,"

    "),o=o.replace(/(?|<\/h3>|<\/pre>|<\/code>)\n(?!

  • |

    |
    |<\/ul>)/g,"
    "),o.startsWith("<")||(o="

    "+o+"

    "),o}const r=ct(()=>n(S.knowledge.content));return(i,o)=>(E(),H("div",rc,[F("div",ic,[o[0]||(o[0]=F("span",{class:"knowledge-label"},"知识卡片",-1)),M(S).knowledge.keyword?(E(),H("span",oc,"#"+W(M(S).knowledge.keyword),1)):U("",!0),F("button",{class:"knowledge-refresh-btn",onClick:t,title:"换一条"},"↻")]),o[2]||(o[2]=F("div",{class:"knowledge-divider"},null,-1)),M(S).knowledge.content?(E(),H("div",lc,[o[1]||(o[1]=F("span",{class:"knowledge-quote"},'"',-1)),F("div",{class:"knowledge-text",innerHTML:r.value},null,8,cc)])):(E(),H("div",fc,"请在设置中配置知识关键字"))]))}}),Qr=Ue(uc,[["__scopeId","data-v-8794076b"]]);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)=>(E(),H("div",null,[n[1]||(n[1]=F("div",{class:"ainews-header"},"🤖 AI 资讯",-1)),(E(!0),H(te,null,is(M(S).aiNews.slice(0,5),(r,i)=>(E(),H("div",{class:"ainews-item",key:i},[M(ac)(r.picUrl)?(E(),H("img",{key:0,class:"ainews-img",src:r.picUrl,loading:"lazy",onError:n[0]||(n[0]=o=>o.target.style.display="none")},null,40,dc)):U("",!0),F("div",hc,[F("div",pc,[F("span",gc,W(r.title),1),F("span",_c,W(r.source)+" · "+W(t(r.ctime)),1)]),r.description?(E(),H("div",mc,W(r.description),1)):U("",!0)])]))),128))]))}}),ei=Ue(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)=>(E(),H("div",bc,[F("div",vc,[M(S).cardVisibility.time?(E(),Je(Zr,{key:0})):U("",!0),s[0]||(s[0]=F("div",{class:"divider"},null,-1)),M(S).cardVisibility.ainews?(E(),Je(ei,{key:1})):U("",!0),M(S).cardVisibility.ainews?(E(),H("div",wc)):U("",!0),M(S).cardVisibility.knowledge?(E(),Je(Qr,{key:3})):U("",!0),M(S).cardVisibility.knowledge?(E(),H("div",xc)):U("",!0),M(S).cardVisibility.weather?(E(),Je(Yr,{key:5})):U("",!0),M(S).cardVisibility.weather?(E(),H("div",Sc)):U("",!0),M(S).cardVisibility.zodiac?(E(),Je(Xr,{key:7})):U("",!0)])]))}}),Cc=Ue(Tc,[["__scopeId","data-v-89757d39"]]),Ac={key:0,id:"card-photo",class:"card"},Ec={class:"photo-wrap"},Oc=["src"],Mc={class:"photo-info"},$c={class:"photo-counter"},Ic={class:"photo-progress"},Pc=He({__name:"PhotoCard",setup(e){const t=Ze(!1),s=Ze();return Ye(()=>S.photo?.src,()=>{if(t.value=!1,!s.value)return;const n=s.value;n.style.transition="none",n.style.width="0%",requestAnimationFrame(()=>{requestAnimationFrame(()=>{const r=S.photo?.interval||15;n.style.transition=`width ${r}s linear`,n.style.width="100%"})})}),(n,r)=>M(S).photo?.src?(E(),H("div",Ac,[F("div",Ec,[F("img",{src:M(S).photo.src,alt:"",onLoad:r[0]||(r[0]=i=>t.value=!0),style:lt({opacity:t.value?1:0})},null,44,Oc),F("div",Mc,[F("span",$c,W(M(S).photo.counter),1),F("div",Ic,[F("div",{class:"photo-progress-bar",ref_key:"progressBar",ref:s},null,512)])])])])):U("",!0)}}),Fc=Ue(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"},kc={key:2,id:"card-knowledge",class:"card"},Nc={key:3,id:"card-ainews",class:"card"},Lc={key:4,id:"card-weather",class:"card"},Vc=He({__name:"MultiLayout",setup(e){return(t,s)=>(E(),H("div",Rc,[M(S).cardVisibility.time?(E(),H("div",Hc,[ce(Zr)])):U("",!0),M(S).cardVisibility.zodiac?(E(),H("div",Dc,[ce(Xr)])):U("",!0),M(S).cardVisibility.knowledge?(E(),H("div",kc,[ce(Qr)])):U("",!0),M(S).cardVisibility.ainews?(E(),H("div",Nc,[ce(ei)])):U("",!0),M(S).cardVisibility.weather?(E(),H("div",Lc,[ce(Yr)])):U("",!0),ce(Fc)]))}}),jc=Ue(Vc,[["__scopeId","data-v-a78a7499"]]),Kc=["src"],Wc=["src"],Uc={class:"photo-frame-clock"},Bc={class:"photo-frame-date"},zc=He({__name:"PhotoFrame",setup(e){const{timeStr:t,dateStr:s}=Jr(),n=Ze(!1);return Ye(()=>S.photo?.src,()=>{!S.photoFrameMode||!S.photo?.src||(n.value=!1,setTimeout(()=>{n.value=!0},400))}),(r,i)=>M(S).photoFrameMode?(E(),H(te,{key:0},[F("img",{id:"photo-frame-bg",src:M(S).photo?.src,alt:"",style:lt({opacity:n.value?1:0})},null,12,Kc),F("img",{id:"photo-frame-img",src:M(S).photo?.src,alt:"",style:lt({opacity:n.value?1:0})},null,12,Wc),F("div",Uc,W(M(t)),1),F("div",Bc,W(M(s)),1)],64)):U("",!0)}}),qc=Ue(zc,[["__scopeId","data-v-fd359286"]]),Gc=He({__name:"App",setup(e){const t=Ze();function s(n){const r=t.value;r&&(r.innerHTML=n,r.querySelectorAll("script").forEach(i=>{const o=document.createElement("script");i.src?o.src=i.src:o.textContent=i.textContent;for(const l of i.attributes)o.setAttribute(l.name,l.value);i.parentNode?.replaceChild(o,i)}))}return ms(()=>{Ml(),S.backgroundHtml&&S.wallpaperVisible&&s(S.backgroundHtml)}),Ye(()=>S.backgroundHtml,n=>{S.wallpaperVisible&&s(n)}),Ye(()=>S.wallpaperVisible,n=>{const r=t.value;r&&(n&&S.backgroundHtml?s(S.backgroundHtml):r.innerHTML="")}),(n,r)=>(E(),H(te,null,[F("div",{id:"bg-mount",ref_key:"bgMount",ref:t},null,512),M(S).photoFrameMode?U("",!0):(E(),H(te,{key:0},[M(S).layout==="single"?(E(),Je(Cc,{key:0})):(E(),Je(jc,{key:1}))],64)),ce(qc),r[0]||(r[0]=F("div",{id:"author"},"绝尘",-1))],64))}});function at(e){return typeof e=="string"?JSON.parse(e):e}const Un=new Map;function At(e,t){const s=JSON.stringify(t);return Un.get(e)===s?!1:(Un.set(e,s),!0)}function Jc(){const e=window;e.updateHoroscopeFromGo=t=>{const s=at(t);At("horoscope",s)&&(S.horoscope=s)},e.updateAINewsFromGo=t=>{const s=at(t);s?.length&&At("ainews",s)&&(S.aiNews=s)},e.updateKnowledgeFromGo=t=>{const s=at(t);At("knowledge",s)&&(S.knowledge=s)},e.updateWeatherFromGo=t=>{const s=at(t);At("weather",s)&&(S.weather=s)},e.updatePhotoFromGo=t=>{const s=at(t);s?.src&&At("photo",s)&&(S.photo=s)},e.setCardVisible=(t,s)=>{t in S.cardVisibility&&(S.cardVisibility[t]=s)},e.setWallpaperVisible=t=>{S.wallpaperVisible=t},e.setPhotoFrameMode=t=>{S.photoFrameMode=t},e.setShowSeconds=t=>{S.showSeconds=t},Object.defineProperty(e,"userZodiac",{set(t){S.userZodiac=t},get(){return S.userZodiac}}),e.__updateBackgroundHtml=t=>{S.backgroundHtml=t},e.updateAudioDataFromGo=t=>{const s=at(t);Array.isArray(s)&&(window.__audioBins=s)}}Jc();Al(Gc).mount("#app"); +
    diff --git a/web/settings.html b/web/settings.html index 5cda3b5..ef572ff 100644 --- a/web/settings.html +++ b/web/settings.html @@ -11,16 +11,16 @@ * @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 vr(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 Ls(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(mr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function mr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===jt)||(e.globalVersion=jt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ls(e))))return;e.flags|=2;const t=e.dep,s=Y,n=Se;Y=e,Se=!0;try{gr(e);const r=e.fn(e._value);(t.version===0||Re(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Y=s,Se=n,vr(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 Se=!0;const br=[];function Ue(){br.push(Se),Se=!1}function We(){const e=br.pop();Se=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 jt=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||!Se||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++,jt++,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 Bs=new WeakMap,rt=Symbol(""),Hs=Symbol(""),Nt=Symbol("");function ce(e,t,s){if(Se&&Y){let n=Bs.get(e);n||Bs.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 He(e,t,s,n,r,i){const o=Bs.get(e);if(!o){jt++;return}const l=a=>{a&&a.trigger()};if(sn(),t==="clear")o.forEach(l);else{const a=M(e),p=a&&tn(s);if(a&&s==="length"){const u=Number(n);o.forEach((d,_)=>{(_==="length"||_===Nt||!je(_)&&_>=u)&&l(d)})}else switch((s!==void 0||o.has(void 0))&&l(o.get(s)),p&&l(o.get(Nt)),t){case"add":a?p&&l(o.get("length")):(l(o.get(rt)),ht(e)&&l(o.get(Hs)));break;case"delete":a||(l(o.get(rt)),ht(e)&&l(o.get(Hs)));break;case"set":ht(e)&&l(o.get(rt));break}}nn()}function ft(e){const t=B(e);return t===e?t:(ce(t,"iterate",Nt),xe(e)?t:t.map(Ce))}function ys(e){return ce(e=B(e),"iterate",Nt),e}function ke(e,t){return ze(e)?bt(it(e)?Ce(t):t):Ce(t)}const Ti={__proto__:null,[Symbol.iterator](){return Ms(this,Symbol.iterator,e=>ke(this,e))},concat(...e){return ft(this).concat(...e.map(t=>M(t)?ft(t):t))},entries(){return Ms(this,"entries",e=>(e[1]=ke(this,e[1]),e))},every(e,t){return Ve(this,"every",e,t,void 0,arguments)},filter(e,t){return Ve(this,"filter",e,t,s=>s.map(n=>ke(this,n)),arguments)},find(e,t){return Ve(this,"find",e,t,s=>ke(this,s),arguments)},findIndex(e,t){return Ve(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ve(this,"findLast",e,t,s=>ke(this,s),arguments)},findLastIndex(e,t){return Ve(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ve(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 Ve(this,"map",e,t,void 0,arguments)},pop(){return Ct(this,"pop")},push(...e){return Ct(this,"push",e)},reduce(e,...t){return An(this,"reduce",e,t)},reduceRight(e,...t){return An(this,"reduceRight",e,t)},shift(){return Ct(this,"shift")},some(e,t){return Ve(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=>ke(this,e))}};function Ms(e,t,s){const n=ys(e),r=n[t]();return n!==e&&!xe(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=s(i.value)),i}),r}const Ai=Array.prototype;function Ve(e,t,s,n,r,i){const o=ys(e),l=o!==e&&!xe(e),a=o[t];if(a!==Ai[t]){const d=a.apply(e,i);return l?Ce(d):d}let p=s;o!==e&&(l?p=function(d,_){return s.call(this,ke(e,d),_,e)}:s.length>2&&(p=function(d,_){return s.call(this,d,_,e)}));const u=a.call(o,p,n);return l&&r?r(u):u}function An(e,t,s,n){const r=ys(e),i=r!==e&&!xe(e);let o=s,l=!1;r!==e&&(i?(l=n.length===0,o=function(p,u,d){return l&&(l=!1,p=ke(e,p)),s.call(this,p,ke(e,u),d,e)}):s.length>3&&(o=function(p,u,d){return s.call(this,p,u,d,e)}));const a=r[t](o,...n);return l?ke(e,a):a}function Rs(e,t,s){const n=B(e);ce(n,"iterate",Nt);const r=n[t](...s);return(r===-1||r===!1)&&an(s[0])?(s[0]=B(s[0]),n[t](...s)):r}function Ct(e,t,s=[]){Ue(),sn();const n=B(e)[t].apply(e,s);return nn(),We(),n}const Pi=Qs("__proto__,__v_isRef,__isVue"),yr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(je));function Oi(e){je(e)||(e=String(e));const t=B(this);return ce(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=M(t);if(!r){let a;if(o&&(a=Ti[s]))return a;if(s==="hasOwnProperty")return Oi}const l=Reflect.get(t,s,ae(t)?t:n);if((je(s)?yr.has(s):Pi(s))||(r||ce(t,"get",s),i))return l;if(ae(l)){const a=o&&tn(s)?l:l.value;return r&&U(a)?Us(a):a}return U(l)?r?Us(l):Vt(l):l}}class wr extends _r{constructor(t=!1){super(!1,t)}set(t,s,n,r){let i=t[s];const o=M(t)&&tn(s);if(!this._isShallow){const p=ze(i);if(!xe(n)&&!ze(n)&&(i=B(i),n=B(n)),!o&&ae(i)&&!ae(n))return p||(i.value=n),!0}const l=o?Number(s)e,Xt=e=>Reflect.getPrototypeOf(e);function Mi(e,t,s){return function(...n){const r=this.__v_raw,i=B(r),o=ht(i),l=e==="entries"||e===Symbol.iterator&&o,a=e==="keys"&&o,p=r[e](...n),u=s?Ks:t?bt:Ce;return!t&&ce(i,"iterate",a?Hs:rt),le(Object.create(p),{next(){const{value:d,done:_}=p.next();return _?{value:d,done:_}:{value:l?[u(d[0]),u(d[1])]:u(d),done:_}}})}}function Qt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ri(e,t){const s={get(r){const i=this.__v_raw,o=B(i),l=B(r);e||(Re(r,l)&&ce(o,"get",r),ce(o,"get",l));const{has:a}=Xt(o),p=t?Ks:e?bt:Ce;if(a.call(o,r))return p(i.get(r));if(a.call(o,l))return p(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&ce(B(r),"iterate",rt),r.size},has(r){const i=this.__v_raw,o=B(i),l=B(r);return e||(Re(r,l)&&ce(o,"has",r),ce(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,a=B(l),p=t?Ks:e?bt:Ce;return!e&&ce(a,"iterate",rt),l.forEach((u,d)=>r.call(i,p(u),p(d),o))}};return le(s,e?{add:Qt("add"),set:Qt("set"),delete:Qt("delete"),clear:Qt("clear")}:{add(r){const i=B(this),o=Xt(i),l=B(r),a=!t&&!xe(r)&&!ze(r)?l:r;return o.has.call(i,a)||Re(r,a)&&o.has.call(i,r)||Re(l,a)&&o.has.call(i,l)||(i.add(a),He(i,"add",a,a)),this},set(r,i){!t&&!xe(i)&&!ze(i)&&(i=B(i));const o=B(this),{has:l,get:a}=Xt(o);let p=l.call(o,r);p||(r=B(r),p=l.call(o,r));const u=a.call(o,r);return o.set(r,i),p?Re(i,u)&&He(o,"set",r,i):He(o,"add",r,i),this},delete(r){const i=B(this),{has:o,get:l}=Xt(i);let a=o.call(i,r);a||(r=B(r),a=o.call(i,r)),l&&l.call(i,r);const p=i.delete(r);return a&&He(i,"delete",r,void 0),p},clear(){const r=B(this),i=r.size!==0,o=r.clear();return i&&He(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{s[r]=Mi(r,e,t)}),s}function ln(e,t){const s=Ri(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 Vt(e){return ze(e)?e:cn(e,!1,Ii,Fi,Sr)}function Bi(e){return cn(e,!1,ki,Di,Cr)}function Us(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 ze(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function ze(e){return!!(e&&e.__v_isReadonly)}function xe(e){return!!(e&&e.__v_isShallow)}function an(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 Ce=e=>U(e)?Vt(e):e,bt=e=>U(e)?Us(e):e;function ae(e){return e?e.__v_isRef===!0:!1}function ot(e){return Ki(e,!1)}function Ki(e,t){return ae(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:Ce(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||xe(t)||ze(t);t=n?t:B(t),Re(t,s)&&(this._rawValue=t,this._value=n?t:Ce(t),this.dep.trigger())}}function ie(e){return ae(e)?e.value:e}const Wi={get:(e,t,s)=>t==="__v_raw"?e:ie(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const r=e[t];return ae(r)&&!ae(s)?(r.value=s,!0):Reflect.set(e,t,s,n)}};function Ar(e){return it(e)?e:new Proxy(e,Wi)}class zi{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=jt-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 mr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Ji(e,t,s=!1){let n,r;return R(e)?n=e:(n=e.get,r=e.set),new zi(n,r,s)}const es={},rs=new WeakMap;let st;function Gi(e,t=!1,s=st){if(s){let n=rs.get(s);n||rs.set(s,n=[]),n.push(e)}}function qi(e,t,s=z){const{immediate:n,deep:r,once:i,scheduler:o,augmentJob:l,call:a}=s,p=y=>r?y:xe(y)||r===!1||r===0?Ke(y,1):Ke(y);let u,d,_,P,N=!1,$=!1;if(ae(e)?(d=()=>e.value,N=xe(e)):it(e)?(d=()=>p(e),N=!0):M(e)?($=!0,N=e.some(y=>it(y)||xe(y)),d=()=>e.map(y=>{if(ae(y))return y.value;if(it(y))return p(y);if(R(y))return a?a(y,2):y()})):R(e)?t?d=a?()=>a(e,2):e:d=()=>{if(_){Ue();try{_()}finally{We()}}const y=st;st=u;try{return a?a(e,3,[P]):e(P)}finally{st=y}}:d=Fe,t&&r){const y=d,K=r===!0?1/0:r;d=()=>Ke(y(),K)}const X=wi(),J=()=>{u.stop(),X&&X.active&&en(X.effects,u)};if(i&&t){const y=t;t=(...K)=>{y(...K),J()}}let O=$?new Array(e.length).fill(es):es;const w=y=>{if(!(!(u.flags&1)||!u.dirty&&!y))if(t){const K=u.run();if(r||N||($?K.some((ye,Te)=>Re(ye,O[Te])):Re(K,O))){_&&_();const ye=st;st=u;try{const Te=[K,O===es?void 0:$&&O[0]===es?[]:O,P];O=K,a?a(t,3,Te):t(...Te)}finally{st=ye}}}else u.run()};return l&&l(w),u=new dr(d),u.scheduler=o?()=>o(w,!1):w,P=y=>Gi(y,!1,u),_=u.onStop=()=>{const y=rs.get(u);if(y){if(a)a(y,4);else for(const K of y)K();rs.delete(u)}},t?n?w(!0):O=u.run():o?o(w.bind(null,!0),!0):u.run(),J.pause=u.pause.bind(u),J.resume=u.resume.bind(u),J.stop=J,J}function Ke(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--,ae(e))Ke(e.value,t,s);else if(M(e))for(let n=0;n{Ke(n,t,s)});else if(or(e)){for(const n in e)Ke(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Ke(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 vr(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 Ls(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(mr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function mr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===jt)||(e.globalVersion=jt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ls(e))))return;e.flags|=2;const t=e.dep,s=Y,n=Se;Y=e,Se=!0;try{gr(e);const r=e.fn(e._value);(t.version===0||Re(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Y=s,Se=n,vr(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 Se=!0;const br=[];function Ue(){br.push(Se),Se=!1}function We(){const e=br.pop();Se=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 jt=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||!Se||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++,jt++,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 Bs=new WeakMap,rt=Symbol(""),Hs=Symbol(""),Nt=Symbol("");function ce(e,t,s){if(Se&&Y){let n=Bs.get(e);n||Bs.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 He(e,t,s,n,r,i){const o=Bs.get(e);if(!o){jt++;return}const l=a=>{a&&a.trigger()};if(sn(),t==="clear")o.forEach(l);else{const a=M(e),p=a&&tn(s);if(a&&s==="length"){const f=Number(n);o.forEach((d,v)=>{(v==="length"||v===Nt||!je(v)&&v>=f)&&l(d)})}else switch((s!==void 0||o.has(void 0))&&l(o.get(s)),p&&l(o.get(Nt)),t){case"add":a?p&&l(o.get("length")):(l(o.get(rt)),ht(e)&&l(o.get(Hs)));break;case"delete":a||(l(o.get(rt)),ht(e)&&l(o.get(Hs)));break;case"set":ht(e)&&l(o.get(rt));break}}nn()}function ft(e){const t=B(e);return t===e?t:(ce(t,"iterate",Nt),xe(e)?t:t.map(Ce))}function ys(e){return ce(e=B(e),"iterate",Nt),e}function ke(e,t){return ze(e)?bt(it(e)?Ce(t):t):Ce(t)}const Ti={__proto__:null,[Symbol.iterator](){return Ms(this,Symbol.iterator,e=>ke(this,e))},concat(...e){return ft(this).concat(...e.map(t=>M(t)?ft(t):t))},entries(){return Ms(this,"entries",e=>(e[1]=ke(this,e[1]),e))},every(e,t){return Ve(this,"every",e,t,void 0,arguments)},filter(e,t){return Ve(this,"filter",e,t,s=>s.map(n=>ke(this,n)),arguments)},find(e,t){return Ve(this,"find",e,t,s=>ke(this,s),arguments)},findIndex(e,t){return Ve(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ve(this,"findLast",e,t,s=>ke(this,s),arguments)},findLastIndex(e,t){return Ve(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ve(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 Ve(this,"map",e,t,void 0,arguments)},pop(){return Ct(this,"pop")},push(...e){return Ct(this,"push",e)},reduce(e,...t){return An(this,"reduce",e,t)},reduceRight(e,...t){return An(this,"reduceRight",e,t)},shift(){return Ct(this,"shift")},some(e,t){return Ve(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=>ke(this,e))}};function Ms(e,t,s){const n=ys(e),r=n[t]();return n!==e&&!xe(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=s(i.value)),i}),r}const Ai=Array.prototype;function Ve(e,t,s,n,r,i){const o=ys(e),l=o!==e&&!xe(e),a=o[t];if(a!==Ai[t]){const d=a.apply(e,i);return l?Ce(d):d}let p=s;o!==e&&(l?p=function(d,v){return s.call(this,ke(e,d),v,e)}:s.length>2&&(p=function(d,v){return s.call(this,d,v,e)}));const f=a.call(o,p,n);return l&&r?r(f):f}function An(e,t,s,n){const r=ys(e),i=r!==e&&!xe(e);let o=s,l=!1;r!==e&&(i?(l=n.length===0,o=function(p,f,d){return l&&(l=!1,p=ke(e,p)),s.call(this,p,ke(e,f),d,e)}):s.length>3&&(o=function(p,f,d){return s.call(this,p,f,d,e)}));const a=r[t](o,...n);return l?ke(e,a):a}function Rs(e,t,s){const n=B(e);ce(n,"iterate",Nt);const r=n[t](...s);return(r===-1||r===!1)&&an(s[0])?(s[0]=B(s[0]),n[t](...s)):r}function Ct(e,t,s=[]){Ue(),sn();const n=B(e)[t].apply(e,s);return nn(),We(),n}const Pi=Qs("__proto__,__v_isRef,__isVue"),yr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(je));function Oi(e){je(e)||(e=String(e));const t=B(this);return ce(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=M(t);if(!r){let a;if(o&&(a=Ti[s]))return a;if(s==="hasOwnProperty")return Oi}const l=Reflect.get(t,s,ae(t)?t:n);if((je(s)?yr.has(s):Pi(s))||(r||ce(t,"get",s),i))return l;if(ae(l)){const a=o&&tn(s)?l:l.value;return r&&U(a)?Us(a):a}return U(l)?r?Us(l):Vt(l):l}}class wr extends _r{constructor(t=!1){super(!1,t)}set(t,s,n,r){let i=t[s];const o=M(t)&&tn(s);if(!this._isShallow){const p=ze(i);if(!xe(n)&&!ze(n)&&(i=B(i),n=B(n)),!o&&ae(i)&&!ae(n))return p||(i.value=n),!0}const l=o?Number(s)e,Xt=e=>Reflect.getPrototypeOf(e);function Mi(e,t,s){return function(...n){const r=this.__v_raw,i=B(r),o=ht(i),l=e==="entries"||e===Symbol.iterator&&o,a=e==="keys"&&o,p=r[e](...n),f=s?Ks:t?bt:Ce;return!t&&ce(i,"iterate",a?Hs:rt),le(Object.create(p),{next(){const{value:d,done:v}=p.next();return v?{value:d,done:v}:{value:l?[f(d[0]),f(d[1])]:f(d),done:v}}})}}function Qt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ri(e,t){const s={get(r){const i=this.__v_raw,o=B(i),l=B(r);e||(Re(r,l)&&ce(o,"get",r),ce(o,"get",l));const{has:a}=Xt(o),p=t?Ks:e?bt:Ce;if(a.call(o,r))return p(i.get(r));if(a.call(o,l))return p(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&ce(B(r),"iterate",rt),r.size},has(r){const i=this.__v_raw,o=B(i),l=B(r);return e||(Re(r,l)&&ce(o,"has",r),ce(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,a=B(l),p=t?Ks:e?bt:Ce;return!e&&ce(a,"iterate",rt),l.forEach((f,d)=>r.call(i,p(f),p(d),o))}};return le(s,e?{add:Qt("add"),set:Qt("set"),delete:Qt("delete"),clear:Qt("clear")}:{add(r){const i=B(this),o=Xt(i),l=B(r),a=!t&&!xe(r)&&!ze(r)?l:r;return o.has.call(i,a)||Re(r,a)&&o.has.call(i,r)||Re(l,a)&&o.has.call(i,l)||(i.add(a),He(i,"add",a,a)),this},set(r,i){!t&&!xe(i)&&!ze(i)&&(i=B(i));const o=B(this),{has:l,get:a}=Xt(o);let p=l.call(o,r);p||(r=B(r),p=l.call(o,r));const f=a.call(o,r);return o.set(r,i),p?Re(i,f)&&He(o,"set",r,i):He(o,"add",r,i),this},delete(r){const i=B(this),{has:o,get:l}=Xt(i);let a=o.call(i,r);a||(r=B(r),a=o.call(i,r)),l&&l.call(i,r);const p=i.delete(r);return a&&He(i,"delete",r,void 0),p},clear(){const r=B(this),i=r.size!==0,o=r.clear();return i&&He(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{s[r]=Mi(r,e,t)}),s}function ln(e,t){const s=Ri(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 Vt(e){return ze(e)?e:cn(e,!1,Ii,Fi,Sr)}function Bi(e){return cn(e,!1,ki,Di,Cr)}function Us(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 ze(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function ze(e){return!!(e&&e.__v_isReadonly)}function xe(e){return!!(e&&e.__v_isShallow)}function an(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 Ce=e=>U(e)?Vt(e):e,bt=e=>U(e)?Us(e):e;function ae(e){return e?e.__v_isRef===!0:!1}function ot(e){return Ki(e,!1)}function Ki(e,t){return ae(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:Ce(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||xe(t)||ze(t);t=n?t:B(t),Re(t,s)&&(this._rawValue=t,this._value=n?t:Ce(t),this.dep.trigger())}}function ie(e){return ae(e)?e.value:e}const Wi={get:(e,t,s)=>t==="__v_raw"?e:ie(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const r=e[t];return ae(r)&&!ae(s)?(r.value=s,!0):Reflect.set(e,t,s,n)}};function Ar(e){return it(e)?e:new Proxy(e,Wi)}class zi{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=jt-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 mr(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 R(e)?n=e:(n=e.get,r=e.set),new zi(n,r,s)}const es={},rs=new WeakMap;let st;function Ji(e,t=!1,s=st){if(s){let n=rs.get(s);n||rs.set(s,n=[]),n.push(e)}}function qi(e,t,s=z){const{immediate:n,deep:r,once:i,scheduler:o,augmentJob:l,call:a}=s,p=_=>r?_:xe(_)||r===!1||r===0?Ke(_,1):Ke(_);let f,d,v,P,N=!1,$=!1;if(ae(e)?(d=()=>e.value,N=xe(e)):it(e)?(d=()=>p(e),N=!0):M(e)?($=!0,N=e.some(_=>it(_)||xe(_)),d=()=>e.map(_=>{if(ae(_))return _.value;if(it(_))return p(_);if(R(_))return a?a(_,2):_()})):R(e)?t?d=a?()=>a(e,2):e:d=()=>{if(v){Ue();try{v()}finally{We()}}const _=st;st=f;try{return a?a(e,3,[P]):e(P)}finally{st=_}}:d=Fe,t&&r){const _=d,K=r===!0?1/0:r;d=()=>Ke(_(),K)}const X=wi(),G=()=>{f.stop(),X&&X.active&&en(X.effects,f)};if(i&&t){const _=t;t=(...K)=>{_(...K),G()}}let O=$?new Array(e.length).fill(es):es;const w=_=>{if(!(!(f.flags&1)||!f.dirty&&!_))if(t){const K=f.run();if(r||N||($?K.some((ye,Te)=>Re(ye,O[Te])):Re(K,O))){v&&v();const ye=st;st=f;try{const Te=[K,O===es?void 0:$&&O[0]===es?[]:O,P];O=K,a?a(t,3,Te):t(...Te)}finally{st=ye}}}else f.run()};return l&&l(w),f=new dr(d),f.scheduler=o?()=>o(w,!1):w,P=_=>Ji(_,!1,f),v=f.onStop=()=>{const _=rs.get(f);if(_){if(a)a(_,4);else for(const K of _)K();rs.delete(f)}},t?n?w(!0):O=f.run():o?o(w.bind(null,!0),!0):f.run(),G.pause=f.pause.bind(f),G.resume=f.resume.bind(f),G.stop=G,G}function Ke(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--,ae(e))Ke(e.value,t,s);else if(M(e))for(let n=0;n{Ke(n,t,s)});else if(or(e)){for(const n in e)Ke(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Ke(e[n],t,s)}return e}/** * @vue/runtime-core v3.5.34 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Wt(e,t,s,n){try{return n?e(...n):e()}catch(r){_s(r,t,s)}}function Ne(e,t,s,n){if(R(e)){const r=Wt(e,t,s,n);return r&&rr(r)&&r.catch(i=>{_s(i,t,s)}),r}if(M(e)){const r=[];for(let i=0;i>>1,r=de[n],i=Lt(r);i=Lt(s)?de.push(e):de.splice(Zi(t),0,e),e.flags|=1,Er()}}function Er(){is||(is=Pr.then($r))}function Xi(e){M(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 Pn(e,t,s=$e+1){for(;sLt(s)-Lt(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($e=0;$e{n._d&&Nn(-1);const i=os(t);let o;try{o=e(...r)}finally{os(i),n._d&&Nn(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function lt(e,t){if(be===null)return e;const s=Ts(be),n=e.dirs||(e.dirs=[]);for(let r=0;r1)return s&&R(t)?t.call(n&&n.proxy):t}}const to=Symbol.for("v-scx"),so=()=>ss(to);function ct(e,t,s){return Mr(e,t,s)}function Mr(e,t,s=z){const{immediate:n,deep:r,flush:i,once:o}=s,l=le({},s),a=t&&n||!t&&i!=="post";let p;if(Ht){if(i==="sync"){const P=so();p=P.__watcherHandles||(P.__watcherHandles=[])}else if(!a){const P=()=>{};return P.stop=Fe,P.resume=Fe,P.pause=Fe,P}}const u=pe;l.call=(P,N,$)=>Ne(P,u,N,$);let d=!1;i==="post"?l.scheduler=P=>{he(P,u&&u.suspense)}:i!=="sync"&&(d=!0,l.scheduler=(P,N)=>{N?P():un(P)}),l.augmentJob=P=>{t&&(P.flags|=4),d&&(P.flags|=2,u&&(P.id=u.uid,P.i=u))};const _=qi(e,t,l);return Ht&&(p?p.push(_):a&&_()),_}function no(e,t,s){const n=this.proxy,r=Q(e)?e.includes(".")?Rr(n,e):()=>n[e]:e.bind(n,n);let i;R(t)?i=t:(i=t.handler,s=t);const o=zt(this),l=Mr(r,i.bind(n),s);return o(),l}function Rr(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 ut(e,t){return R(e)?le({name:e.name},t,{setup:e}):e}function Fr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function On(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const ls=new WeakMap;function $t(e,t,s,n,r=!1){if(M(e)){e.forEach(($,X)=>$t($,t&&(M(t)?t[X]:t),s,n,r));return}if(kt(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?Ts(n.component):n.el,o=r?null:i,{i:l,r:a}=e,p=t&&t.r,u=l.refs===z?l.refs={}:l.refs,d=l.setupState,_=B(d),P=d===z?nr:$=>On(u,$)?!1:H(_,$),N=($,X)=>!(X&&On(u,X));if(p!=null&&p!==a){if(En(t),Q(p))u[p]=null,P(p)&&(d[p]=null);else if(ae(p)){const $=t;N(p,$.k)&&(p.value=null),$.k&&(u[$.k]=null)}}if(R(a))Wt(a,l,12,[o,u]);else{const $=Q(a),X=ae(a);if($||X){const J=()=>{if(e.f){const O=$?P(a)?d[a]:u[a]:N()||!e.k?a.value:u[e.k];if(r)M(O)&&en(O,i);else if(M(O))O.includes(i)||O.push(i);else if($)u[a]=[i],P(a)&&(d[a]=u[a]);else{const w=[i];N(a,e.k)&&(a.value=w),e.k&&(u[e.k]=w)}}else $?(u[a]=o,P(a)&&(d[a]=o)):X&&(N(a,e.k)&&(a.value=o),e.k&&(u[e.k]=o))};if(o){const O=()=>{J(),ls.delete(e)};O.id=-1,ls.set(e,O),he(O,s)}else En(e),J()}}}function En(e){const t=ls.get(e);t&&(t.flags|=8,ls.delete(e))}xs().requestIdleCallback;xs().cancelIdleCallback;const kt=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=pe){const n=e.__wdc||(e.__wdc=()=>{let r=s;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(ws(t,n,s),s){let r=s.parent;for(;r&&r.parent;)Dr(r.parent.vnode)&&ao(n,t,s,r),r=r.parent}}function ao(e,t,s,n){const r=ws(t,e,n,!0);pn(()=>{en(n[t],r)},s)}function ws(e,t,s=pe,n=!1){if(s){const r=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Ue();const l=zt(s),a=Ne(t,s,e,o);return l(),We(),a});return n?r.unshift(i):r.push(i),i}}const Je=e=>(t,s=pe)=>{(!Ht||e==="sp")&&ws(e,(...n)=>t(...n),s)},uo=Je("bm"),dn=Je("m"),fo=Je("bu"),po=Je("u"),ho=Je("bum"),pn=Je("um"),go=Je("sp"),vo=Je("rtg"),mo=Je("rtc");function bo(e,t=pe){ws("ec",e,t)}const xo=Symbol.for("v-ndc");function _e(e,t,s,n){let r;const i=s,o=M(e);if(o||Q(e)){const l=o&&it(e);let a=!1,p=!1;l&&(a=!xe(e),p=ze(e),e=ys(e)),r=new Array(e.length);for(let u=0,d=e.length;ut(l,a,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let a=0,p=l.length;ae?ri(e)?Ts(e):Ws(e.parent):null,Mt=le(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=>Ws(e.parent),$root:e=>Ws(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=Or.bind(e.proxy)),$watch:e=>no.bind(e)}),Fs=(e,t)=>e!==z&&!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:a}=e;if(t[0]!=="$"){const _=o[t];if(_!==void 0)switch(_){case 1:return n[t];case 2:return r[t];case 4:return s[t];case 3:return i[t]}else{if(Fs(n,t))return o[t]=1,n[t];if(r!==z&&H(r,t))return o[t]=2,r[t];if(H(i,t))return o[t]=3,i[t];if(s!==z&&H(s,t))return o[t]=4,s[t];zs&&(o[t]=0)}}const p=Mt[t];let u,d;if(p)return t==="$attrs"&&ce(e.attrs,"get",""),p(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(s!==z&&H(s,t))return o[t]=4,s[t];if(d=a.config.globalProperties,H(d,t))return d[t]},set({_:e},t,s){const{data:n,setupState:r,ctx:i}=e;return Fs(r,t)?(r[t]=s,!0):n!==z&&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 a;return!!(s[l]||e!==z&&l[0]!=="$"&&H(e,l)||Fs(t,l)||H(i,l)||H(n,l)||H(Mt,l)||H(r.config.globalProperties,l)||(a=o.__cssModules)&&a[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 M(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let zs=!0;function _o(e){const t=Vr(e),s=e.proxy,n=e.ctx;zs=!1,t.beforeCreate&&$n(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:a,inject:p,created:u,beforeMount:d,mounted:_,beforeUpdate:P,updated:N,activated:$,deactivated:X,beforeDestroy:J,beforeUnmount:O,destroyed:w,unmounted:y,render:K,renderTracked:ye,renderTriggered:Te,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 G=o[Z];R(G)&&(n[Z]=G.bind(s))}if(r){const Z=r.call(s,s);U(Z)&&(e.data=Vt(Z))}if(zs=!0,i)for(const Z in i){const G=i[Z],Xe=R(G)?G.bind(s,s):R(G.get)?G.get.bind(s,s):Fe,Yt=!R(G)&&R(G.set)?G.set.bind(s):Fe,Qe=us({get:Xe,set:Yt});Object.defineProperty(n,Z,{enumerable:!0,configurable:!0,get:()=>Qe.value,set:Ae=>Qe.value=Ae})}if(l)for(const Z in l)Nr(l[Z],n,s,Z);if(a){const Z=R(a)?a.call(s):a;Reflect.ownKeys(Z).forEach(G=>{eo(G,Z[G])})}u&&$n(u,e,"c");function ue(Z,G){M(G)?G.forEach(Xe=>Z(Xe.bind(s))):G&&Z(G.bind(s))}if(ue(uo,d),ue(dn,_),ue(fo,P),ue(po,N),ue(lo,$),ue(co,X),ue(bo,Ge),ue(mo,ye),ue(vo,Te),ue(ho,O),ue(pn,y),ue(go,Jt),M(Ze))if(Ze.length){const Z=e.exposed||(e.exposed={});Ze.forEach(G=>{Object.defineProperty(Z,G,{get:()=>s[G],set:Xe=>s[G]=Xe,enumerable:!0})})}else e.exposed||(e.exposed={});K&&e.render===Fe&&(e.render=K),yt!=null&&(e.inheritAttrs=yt),Gt&&(e.components=Gt),qt&&(e.directives=qt),Jt&&Fr(e)}function wo(e,t,s=Fe){M(e)&&(e=Js(e));for(const n in e){const r=e[n];let i;U(r)?"default"in r?i=ss(r.from||n,r.default,!0):i=ss(r.from||n):i=ss(r),ae(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){Ne(M(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function Nr(e,t,s,n){let r=n.includes(".")?Rr(s,n):()=>s[n];if(Q(e)){const i=t[e];R(i)&&ct(r,i)}else if(R(e))ct(r,e.bind(s));else if(U(e))if(M(e))e.forEach(i=>Nr(i,t,s,n));else{const i=R(e.handler)?e.handler.bind(s):t[e.handler];R(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 a;return l?a=l:!r.length&&!s&&!n?a=t:(a={},r.length&&r.forEach(p=>cs(a,p,o,!0)),cs(a,t,o)),U(t)&&i.set(t,a),a}function cs(e,t,s,n=!1){const{mixins:r,extends:i}=t;i&&cs(e,i,s,!0),r&&r.forEach(o=>cs(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:kn,props:Mn,emits:Mn,methods:At,computed:At,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:At,directives:At,watch:To,provide:kn,inject:Co};function kn(e,t){return t?e?function(){return le(R(e)?e.call(this,this):e,R(t)?t.call(this,this):t)}:t:e}function Co(e,t){return At(Js(e),Js(t))}function Js(e){if(M(e)){const t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${we(t)}Modifiers`]||e[`${at(t)}Modifiers`];function Eo(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||z;let r=s;const i=t.startsWith("update:"),o=i&&Oo(n,t.slice(7));o&&(o.trim&&(r=s.map(u=>Q(u)?u.trim():u)),o.number&&(r=s.map(bs)));let l,a=n[l=Is(t)]||n[l=Is(we(t))];!a&&i&&(a=n[l=Is(at(t))]),a&&Ne(a,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,Ne(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(!R(e)){const a=p=>{const u=Br(p,t,!0);u&&(l=!0,le(o,u))};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!l?(U(e)&&n.set(e,null),null):(M(i)?i.forEach(a=>o[a]=null):le(o,i),U(e)&&n.set(e,o),o)}function Ss(e,t){return!e||!hs(t)?!1:(t=t.slice(2).replace(/Once$/,""),H(e,t[0].toLowerCase()+t.slice(1))||H(e,at(t))||H(e,t))}function Rn(e){const{type:t,vnode:s,proxy:n,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:a,render:p,renderCache:u,props:d,data:_,setupState:P,ctx:N,inheritAttrs:$}=e,X=os(e);let J,O;try{if(s.shapeFlag&4){const y=r||n,K=y;J=Me(p.call(K,y,u,d,P,_,N)),O=l}else{const y=t;J=Me(y.length>1?y(d,{attrs:l,slots:o,emit:a}):y(d,null)),O=t.props?l:$o(l)}}catch(y){Rt.length=0,_s(y,e,1),J=se(Ye)}let w=J;if(O&&$!==!1){const y=Object.keys(O),{shapeFlag:K}=w;y.length&&K&7&&(i&&y.some(gs)&&(O=ko(O,i)),w=xt(w,O,!1,!0))}return s.dirs&&(w=xt(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(s.dirs):s.dirs),s.transition&&fn(w,s.transition),J=w,os(X),J}const $o=e=>{let t;for(const s in e)(s==="class"||s==="style"||hs(s))&&((t||(t={}))[s]=e[s]);return t},ko=(e,t)=>{const s={};for(const n in e)(!gs(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function Mo(e,t,s){const{props:n,children:r,component:i}=e,{props:o,children:l,patchFlag:a}=t,p=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&a>=0){if(a&1024)return!0;if(a&16)return n?Fn(n,o,p):!!o;if(a&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),zr(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),[a]=e.propsOptions;let p=!1;if((n||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let d=0;d{a=!0;const[_,P]=Jr(d,t,!0);le(o,_),P&&l.push(...P)};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!a)return U(e)&&n.set(e,pt),pt;if(M(i))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",gn=e=>M(e)?e.map(Me):[Me(e)],No=(e,t,s)=>{if(t._n)return t;const n=Qi((...r)=>gn(t(...r)),s);return n._c=!1,n},Gr=(e,t,s)=>{const n=e._ctx;for(const r in e){if(hn(r))continue;const i=e[r];if(R(i))t[r]=No(r,i,n);else if(i!=null){const o=gn(i);t[r]=()=>o}}},qr=(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)):Gr(t,n)}else t&&qr(e,t)},Lo=(e,t,s)=>{const{vnode:n,slots:r}=e;let i=!0,o=z;if(n.shapeFlag&32){const l=t._;l?s&&l===1?i=!1:Yr(r,t,s):(i=!t.$stable,Gr(t,r)),o=t}else t&&(qr(e,t),o={default:1});if(i)for(const l in r)!hn(l)&&o[l]==null&&delete r[l]},he=Wo;function Bo(e){return Ho(e)}function Ho(e,t){const s=xs();s.__VUE__=!0;const{insert:n,remove:r,patchProp:i,createElement:o,createText:l,createComment:a,setText:p,setElementText:u,parentNode:d,nextSibling:_,setScopeId:P=Fe,insertStaticContent:N}=e,$=(c,f,h,x=null,v=null,m=null,T=void 0,C=null,S=!!f.dynamicChildren)=>{if(c===f)return;c&&!Tt(c,f)&&(x=Zt(c),Ae(c,v,m,!0),c=null),f.patchFlag===-2&&(S=!1,f.dynamicChildren=null);const{type:b,ref:I,shapeFlag:A}=f;switch(b){case Cs:X(c,f,h,x);break;case Ye:J(c,f,h,x);break;case js:c==null&&O(f,h,x,T);break;case ee:Gt(c,f,h,x,v,m,T,C,S);break;default:A&1?K(c,f,h,x,v,m,T,C,S):A&6?qt(c,f,h,x,v,m,T,C,S):(A&64||A&128)&&b.process(c,f,h,x,v,m,T,C,S,wt)}I!=null&&v?$t(I,c&&c.ref,m,f||c,!f):I==null&&c&&c.ref!=null&&$t(c.ref,null,m,c,!0)},X=(c,f,h,x)=>{if(c==null)n(f.el=l(f.children),h,x);else{const v=f.el=c.el;f.children!==c.children&&p(v,f.children)}},J=(c,f,h,x)=>{c==null?n(f.el=a(f.children||""),h,x):f.el=c.el},O=(c,f,h,x)=>{[c.el,c.anchor]=N(c.children,f,h,x,c.el,c.anchor)},w=({el:c,anchor:f},h,x)=>{let v;for(;c&&c!==f;)v=_(c),n(c,h,x),c=v;n(f,h,x)},y=({el:c,anchor:f})=>{let h;for(;c&&c!==f;)h=_(c),r(c),c=h;r(f)},K=(c,f,h,x,v,m,T,C,S)=>{if(f.type==="svg"?T="svg":f.type==="math"&&(T="mathml"),c==null)ye(f,h,x,v,m,T,C,S);else{const b=c.el&&c.el._isVueCE?c.el:null;try{b&&b._beginPatch(),Jt(c,f,v,m,T,C,S)}finally{b&&b._endPatch()}}},ye=(c,f,h,x,v,m,T,C)=>{let S,b;const{props:I,shapeFlag:A,transition:E,dirs:k}=c;if(S=c.el=o(c.type,m,I&&I.is,I),A&8?u(S,c.children):A&16&&Ge(c.children,S,null,x,v,Ds(c,m),T,C),k&&et(c,null,x,"created"),Te(S,c,c.scopeId,T,x),I){for(const W in I)W!=="value"&&!Ot(W)&&i(S,W,null,I[W],m,x);"value"in I&&i(S,"value",null,I.value,m),(b=I.onVnodeBeforeMount)&&Ie(b,x,c)}k&&et(c,null,x,"beforeMount");const V=Ko(v,E);V&&E.beforeEnter(S),n(S,f,h),((b=I&&I.onVnodeMounted)||V||k)&&he(()=>{try{b&&Ie(b,x,c),V&&E.enter(S),k&&et(c,null,x,"mounted")}finally{}},v)},Te=(c,f,h,x,v)=>{if(h&&P(c,h),x)for(let m=0;m{for(let b=S;b{const C=f.el=c.el;let{patchFlag:S,dynamicChildren:b,dirs:I}=f;S|=c.patchFlag&16;const A=c.props||z,E=f.props||z;let k;if(h&&tt(h,!1),(k=E.onVnodeBeforeUpdate)&&Ie(k,h,f,c),I&&et(f,c,h,"beforeUpdate"),h&&tt(h,!0),(A.innerHTML&&E.innerHTML==null||A.textContent&&E.textContent==null)&&u(C,""),b?Ze(c.dynamicChildren,b,C,h,x,Ds(f,v),m):T||G(c,f,C,null,h,x,Ds(f,v),m,!1),S>0){if(S&16)yt(C,A,E,h,v);else if(S&2&&A.class!==E.class&&i(C,"class",null,E.class,v),S&4&&i(C,"style",A.style,E.style,v),S&8){const V=f.dynamicProps;for(let W=0;W{k&&Ie(k,h,f,c),I&&et(f,c,h,"updated")},x)},Ze=(c,f,h,x,v,m,T)=>{for(let C=0;C{if(f!==h){if(f!==z)for(const m in f)!Ot(m)&&!(m in h)&&i(c,m,f[m],null,v,x);for(const m in h){if(Ot(m))continue;const T=h[m],C=f[m];T!==C&&m!=="value"&&i(c,m,C,T,v,x)}"value"in h&&i(c,"value",f.value,h.value,v)}},Gt=(c,f,h,x,v,m,T,C,S)=>{const b=f.el=c?c.el:l(""),I=f.anchor=c?c.anchor:l("");let{patchFlag:A,dynamicChildren:E,slotScopeIds:k}=f;k&&(C=C?C.concat(k):k),c==null?(n(b,h,x),n(I,h,x),Ge(f.children||[],h,I,v,m,T,C,S)):A>0&&A&64&&E&&c.dynamicChildren&&c.dynamicChildren.length===E.length?(Ze(c.dynamicChildren,E,h,v,m,T,C),(f.key!=null||v&&f===v.subTree)&&Zr(c,f,!0)):G(c,f,h,I,v,m,T,C,S)},qt=(c,f,h,x,v,m,T,C,S)=>{f.slotScopeIds=C,c==null?f.shapeFlag&512?v.ctx.activate(f,h,x,T,S):Os(f,h,x,v,m,T,S):mn(c,f,S)},Os=(c,f,h,x,v,m,T)=>{const C=c.component=el(c,x,v);if(Dr(c)&&(C.ctx.renderer=wt),sl(C,!1,T),C.asyncDep){if(v&&v.registerDep(C,ue,T),!c.el){const S=C.subTree=se(Ye);J(null,S,f,h),c.placeholder=S.el}}else ue(C,c,f,h,v,m,T)},mn=(c,f,h)=>{const x=f.component=c.component;if(Mo(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},ue=(c,f,h,x,v,m,T)=>{const C=()=>{if(c.isMounted){let{next:A,bu:E,u:k,parent:V,vnode:W}=c;{const Oe=Xr(c);if(Oe){A&&(A.el=W.el,Z(c,A,T)),Oe.asyncDep.then(()=>{he(()=>{c.isUnmounted||b()},v)});return}}let q=A,te;tt(c,!1),A?(A.el=W.el,Z(c,A,T)):A=W,E&&ts(E),(te=A.props&&A.props.onVnodeBeforeUpdate)&&Ie(te,V,A,W),tt(c,!0);const ne=Rn(c),Pe=c.subTree;c.subTree=ne,$(Pe,ne,d(Pe.el),Zt(Pe),c,v,m),A.el=ne.el,q===null&&Ro(c,ne.el),k&&he(k,v),(te=A.props&&A.props.onVnodeUpdated)&&he(()=>Ie(te,V,A,W),v)}else{let A;const{el:E,props:k}=f,{bm:V,m:W,parent:q,root:te,type:ne}=c,Pe=kt(f);tt(c,!1),V&&ts(V),!Pe&&(A=k&&k.onVnodeBeforeMount)&&Ie(A,q,f),tt(c,!0);{te.ce&&te.ce._hasShadowRoot()&&te.ce._injectChildStyle(ne,c.parent?c.parent.type:void 0);const Oe=c.subTree=Rn(c);$(null,Oe,h,x,c,v,m),f.el=Oe.el}if(W&&he(W,v),!Pe&&(A=k&&k.onVnodeMounted)){const Oe=f;he(()=>Ie(A,q,Oe),v)}(f.shapeFlag&256||q&&kt(q.vnode)&&q.vnode.shapeFlag&256)&&c.a&&he(c.a,v),c.isMounted=!0,f=h=x=null}};c.scope.on();const S=c.effect=new dr(C);c.scope.off();const b=c.update=S.run.bind(S),I=c.job=S.runIfDirty.bind(S);I.i=c,I.id=c.uid,S.scheduler=()=>un(I),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),Ue(),Pn(c),We()},G=(c,f,h,x,v,m,T,C,S=!1)=>{const b=c&&c.children,I=c?c.shapeFlag:0,A=f.children,{patchFlag:E,shapeFlag:k}=f;if(E>0){if(E&128){Yt(b,A,h,x,v,m,T,C,S);return}else if(E&256){Xe(b,A,h,x,v,m,T,C,S);return}}k&8?(I&16&&_t(b,v,m),A!==b&&u(h,A)):I&16?k&16?Yt(b,A,h,x,v,m,T,C,S):_t(b,v,m,!0):(I&8&&u(h,""),k&16&&Ge(A,h,x,v,m,T,C,S))},Xe=(c,f,h,x,v,m,T,C,S)=>{c=c||pt,f=f||pt;const b=c.length,I=f.length,A=Math.min(b,I);let E;for(E=0;EI?_t(c,v,m,!0,!1,A):Ge(f,h,x,v,m,T,C,S,A)},Yt=(c,f,h,x,v,m,T,C,S)=>{let b=0;const I=f.length;let A=c.length-1,E=I-1;for(;b<=A&&b<=E;){const k=c[b],V=f[b]=S?Be(f[b]):Me(f[b]);if(Tt(k,V))$(k,V,h,null,v,m,T,C,S);else break;b++}for(;b<=A&&b<=E;){const k=c[A],V=f[E]=S?Be(f[E]):Me(f[E]);if(Tt(k,V))$(k,V,h,null,v,m,T,C,S);else break;A--,E--}if(b>A){if(b<=E){const k=E+1,V=kE)for(;b<=A;)Ae(c[b],v,m,!0),b++;else{const k=b,V=b,W=new Map;for(b=V;b<=E;b++){const ge=f[b]=S?Be(f[b]):Me(f[b]);ge.key!=null&&W.set(ge.key,b)}let q,te=0;const ne=E-V+1;let Pe=!1,Oe=0;const St=new Array(ne);for(b=0;b=ne){Ae(ge,v,m,!0);continue}let Ee;if(ge.key!=null)Ee=W.get(ge.key);else for(q=V;q<=E;q++)if(St[q-V]===0&&Tt(ge,f[q])){Ee=q;break}Ee===void 0?Ae(ge,v,m,!0):(St[Ee-V]=b+1,Ee>=Oe?Oe=Ee:Pe=!0,$(ge,f[Ee],h,null,v,m,T,C,S),te++)}const yn=Pe?Uo(St):pt;for(q=yn.length-1,b=ne-1;b>=0;b--){const ge=V+b,Ee=f[ge],_n=f[ge+1],wn=ge+1{const{el:m,type:T,transition:C,children:S,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){T.move(c,f,h,wt);return}if(T===ee){n(m,f,h);for(let A=0;AC.enter(m),v);else{const{leave:A,delayLeave:E,afterLeave:k}=C,V=()=>{c.ctx.isUnmounted?r(m):n(m,f,h)},W=()=>{m._isLeaving&&m[oo](!0),A(m,()=>{V(),k&&k()})};E?E(m,V,W):W()}else n(m,f,h)},Ae=(c,f,h,x=!1,v=!1)=>{const{type:m,props:T,ref:C,children:S,dynamicChildren:b,shapeFlag:I,patchFlag:A,dirs:E,cacheIndex:k,memo:V}=c;if(A===-2&&(v=!1),C!=null&&(Ue(),$t(C,null,h,c,!0),We()),k!=null&&(f.renderCache[k]=void 0),I&256){f.ctx.deactivate(c);return}const W=I&1&&E,q=!kt(c);let te;if(q&&(te=T&&T.onVnodeBeforeUnmount)&&Ie(te,f,c),I&6)ci(c.component,h,x);else{if(I&128){c.suspense.unmount(h,x);return}W&&et(c,null,f,"beforeUnmount"),I&64?c.type.remove(c,f,h,wt,x):b&&!b.hasOnce&&(m!==ee||A>0&&A&64)?_t(b,f,h,!1,!0):(m===ee&&A&384||!v&&I&16)&&_t(S,f,h),x&&bn(c)}const ne=V!=null&&k==null;(q&&(te=T&&T.onVnodeUnmounted)||W||ne)&&he(()=>{te&&Ie(te,f,c),W&&et(c,null,f,"unmounted"),ne&&(c.el=null)},h)},bn=c=>{const{type:f,el:h,anchor:x,transition:v}=c;if(f===ee){li(h,x);return}if(f===js){y(c);return}const m=()=>{r(h),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(c.shapeFlag&1&&v&&!v.persisted){const{leave:T,delayLeave:C}=v,S=()=>T(h,m);C?C(c.el,m,S):S()}else m()},li=(c,f)=>{let h;for(;c!==f;)h=_(c),r(c),c=h;r(f)},ci=(c,f,h)=>{const{bum:x,scope:v,job:m,subTree:T,um:C,m:S,a:b}=c;jn(S),jn(b),x&&ts(x),v.stop(),m&&(m.flags|=8,Ae(T,c,f,h)),C&&he(C,f),he(()=>{c.isUnmounted=!0},f)},_t=(c,f,h,x=!1,v=!1,m=0)=>{for(let T=m;T{if(c.shapeFlag&6)return Zt(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const f=_(c.anchor||c.el),h=f&&f[ro];return h?_(h):f};let Es=!1;const xn=(c,f,h)=>{let x;c==null?f._vnode&&(Ae(f._vnode,null,null,!0),x=f._vnode.component):$(f._vnode||null,c,f,null,null,null,h),f._vnode=c,Es||(Es=!0,Pn(x),Ir(),Es=!1)},wt={p:$,um:Ae,m:Qe,r:bn,mt:Os,mc:Ge,pc:G,pbc:Ze,n:Zt,o:e};return{render:xn,hydrate:void 0,createApp:Po(xn)}}function Ds({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(M(n)&&M(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?M(e)?t.effects.push(...e):t.effects.push(e):Xi(e)}const ee=Symbol.for("v-fgt"),Cs=Symbol.for("v-txt"),Ye=Symbol.for("v-cmt"),js=Symbol.for("v-stc"),Rt=[];let ve=null;function F(e=!1){Rt.push(ve=e?null:[])}function zo(){Rt.pop(),ve=Rt[Rt.length-1]||null}let Bt=1;function Nn(e,t=!1){Bt+=e,e<0&&ve&&t&&(ve.hasOnce=!0)}function ti(e){return e.dynamicChildren=Bt>0?ve||pt:null,zo(),Bt>0&&ve&&ve.push(e),e}function j(e,t,s,n,r,i){return ti(g(e,t,s,n,r,i,!0))}function Jo(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,ns=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?Q(e)||ae(e)||R(e)?{i:be,r:e,k:t,f:!!s}:e:null);function g(e,t=null,s=null,n=0,r=null,i=e===ee?0:1,o=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ni(t),ref:t&&ns(t),scopeId:kr,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:be};return l?(vn(a,s),i&128&&e.normalize(a)):s&&(a.shapeFlag|=Q(s)?8:16),Bt>0&&!o&&ve&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&ve.push(a),a}const se=Go;function Go(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&&vn(l,s),Bt>0&&!i&&ve&&(l.shapeFlag&6?ve[ve.indexOf(e)]=l:ve.push(l)),l.patchFlag=-2,l}if(ol(e)&&(e=e.__vccOpts),t){t=qo(t);let{class:l,style:a}=t;l&&!Q(l)&&(t.class=De(l)),U(a)&&(an(a)&&!M(a)&&(a=le({},a)),t.style=Dt(a))}const o=Q(e)?1:ei(e)?128:io(e)?64:U(e)?4:R(e)?2:0;return g(e,t,s,n,r,o,i,!0)}function qo(e){return e?an(e)||Wr(e)?le({},e):e:null}function xt(e,t,s=!1,n=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:a}=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?M(i)?i.concat(ns(t)):[i,ns(t)]:ns(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!==ee?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,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 a&&n&&fn(u,a.clone(u)),u}function Yo(e=" ",t=0){return se(Cs,null,e,t)}function me(e="",t=!1){return t?(F(),Jo(Ye,null,e)):se(Ye,null,e)}function Me(e){return e==null||typeof e=="boolean"?se(Ye):M(e)?se(ee,null,e.slice()):si(e)?Be(e):se(Cs,null,String(e))}function Be(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:xt(e)}function vn(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(M(t))s=16;else if(typeof t=="object")if(n&65){const r=t.default;r&&(r._c&&(r._d=!1),vn(e,r()),r._c&&(r._d=!0));return}else{s=32;const r=t._;!r&&!Wr(t)?t._ctx=be:r===3&&be&&(be.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else R(t)?(t={default:t,_ctx:be},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;spe||be;let as,qs;{const e=xs(),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)}};as=t("__VUE_INSTANCE_SETTERS__",s=>pe=s),qs=t("__VUE_SSR_SETTERS__",s=>Ht=s)}const zt=e=>{const t=pe;return as(e),e.scope.on(),()=>{e.scope.off(),as(t)}},Vn=()=>{pe&&pe.scope.off(),as(null)};function ri(e){return e.vnode.shapeFlag&4}let Ht=!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){Ue();const r=e.setupContext=n.length>1?il(e):null,i=zt(e),o=Wt(n,e,0,[e.props,r]),l=rr(o);if(We(),i(),(l||e.sp)&&!kt(e)&&Fr(e),l){if(o.then(Vn,Vn),t)return o.then(a=>{Ln(e,a)}).catch(a=>{_s(a,e,0)});e.asyncDep=o}else Ln(e,o)}else ii(e)}function Ln(e,t,s){R(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:U(t)&&(e.setupState=Ar(t)),ii(e)}function ii(e,t,s){const n=e.type;e.render||(e.render=n.render||Fe);{const r=zt(e);Ue();try{_o(e)}finally{We(),r()}}}const rl={get(e,t){return ce(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 Ts(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ar(Hi(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Mt)return Mt[s](e)},has(t,s){return s in t||s in Mt}})):e.proxy}function ol(e){return R(e)&&"__vccOpts"in e}const us=(e,t)=>Ji(e,t,Ht),ll="3.5.34";/** +**/function Wt(e,t,s,n){try{return n?e(...n):e()}catch(r){_s(r,t,s)}}function Ne(e,t,s,n){if(R(e)){const r=Wt(e,t,s,n);return r&&rr(r)&&r.catch(i=>{_s(i,t,s)}),r}if(M(e)){const r=[];for(let i=0;i>>1,r=de[n],i=Lt(r);i=Lt(s)?de.push(e):de.splice(Zi(t),0,e),e.flags|=1,Er()}}function Er(){is||(is=Pr.then($r))}function Xi(e){M(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 Pn(e,t,s=$e+1){for(;sLt(s)-Lt(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($e=0;$e{n._d&&Nn(-1);const i=os(t);let o;try{o=e(...r)}finally{os(i),n._d&&Nn(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function lt(e,t){if(be===null)return e;const s=Ts(be),n=e.dirs||(e.dirs=[]);for(let r=0;r1)return s&&R(t)?t.call(n&&n.proxy):t}}const to=Symbol.for("v-scx"),so=()=>ss(to);function ct(e,t,s){return Mr(e,t,s)}function Mr(e,t,s=z){const{immediate:n,deep:r,flush:i,once:o}=s,l=le({},s),a=t&&n||!t&&i!=="post";let p;if(Ht){if(i==="sync"){const P=so();p=P.__watcherHandles||(P.__watcherHandles=[])}else if(!a){const P=()=>{};return P.stop=Fe,P.resume=Fe,P.pause=Fe,P}}const f=pe;l.call=(P,N,$)=>Ne(P,f,N,$);let d=!1;i==="post"?l.scheduler=P=>{he(P,f&&f.suspense)}:i!=="sync"&&(d=!0,l.scheduler=(P,N)=>{N?P():un(P)}),l.augmentJob=P=>{t&&(P.flags|=4),d&&(P.flags|=2,f&&(P.id=f.uid,P.i=f))};const v=qi(e,t,l);return Ht&&(p?p.push(v):a&&v()),v}function no(e,t,s){const n=this.proxy,r=Q(e)?e.includes(".")?Rr(n,e):()=>n[e]:e.bind(n,n);let i;R(t)?i=t:(i=t.handler,s=t);const o=zt(this),l=Mr(r,i.bind(n),s);return o(),l}function Rr(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 ut(e,t){return R(e)?le({name:e.name},t,{setup:e}):e}function Fr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function On(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const ls=new WeakMap;function $t(e,t,s,n,r=!1){if(M(e)){e.forEach(($,X)=>$t($,t&&(M(t)?t[X]:t),s,n,r));return}if(kt(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?Ts(n.component):n.el,o=r?null:i,{i:l,r:a}=e,p=t&&t.r,f=l.refs===z?l.refs={}:l.refs,d=l.setupState,v=B(d),P=d===z?nr:$=>On(f,$)?!1:H(v,$),N=($,X)=>!(X&&On(f,X));if(p!=null&&p!==a){if(En(t),Q(p))f[p]=null,P(p)&&(d[p]=null);else if(ae(p)){const $=t;N(p,$.k)&&(p.value=null),$.k&&(f[$.k]=null)}}if(R(a))Wt(a,l,12,[o,f]);else{const $=Q(a),X=ae(a);if($||X){const G=()=>{if(e.f){const O=$?P(a)?d[a]:f[a]:N()||!e.k?a.value:f[e.k];if(r)M(O)&&en(O,i);else if(M(O))O.includes(i)||O.push(i);else if($)f[a]=[i],P(a)&&(d[a]=f[a]);else{const w=[i];N(a,e.k)&&(a.value=w),e.k&&(f[e.k]=w)}}else $?(f[a]=o,P(a)&&(d[a]=o)):X&&(N(a,e.k)&&(a.value=o),e.k&&(f[e.k]=o))};if(o){const O=()=>{G(),ls.delete(e)};O.id=-1,ls.set(e,O),he(O,s)}else En(e),G()}}}function En(e){const t=ls.get(e);t&&(t.flags|=8,ls.delete(e))}xs().requestIdleCallback;xs().cancelIdleCallback;const kt=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=pe){const n=e.__wdc||(e.__wdc=()=>{let r=s;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(ws(t,n,s),s){let r=s.parent;for(;r&&r.parent;)Dr(r.parent.vnode)&&ao(n,t,s,r),r=r.parent}}function ao(e,t,s,n){const r=ws(t,e,n,!0);pn(()=>{en(n[t],r)},s)}function ws(e,t,s=pe,n=!1){if(s){const r=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Ue();const l=zt(s),a=Ne(t,s,e,o);return l(),We(),a});return n?r.unshift(i):r.push(i),i}}const Ge=e=>(t,s=pe)=>{(!Ht||e==="sp")&&ws(e,(...n)=>t(...n),s)},uo=Ge("bm"),dn=Ge("m"),fo=Ge("bu"),po=Ge("u"),ho=Ge("bum"),pn=Ge("um"),go=Ge("sp"),vo=Ge("rtg"),mo=Ge("rtc");function bo(e,t=pe){ws("ec",e,t)}const xo=Symbol.for("v-ndc");function _e(e,t,s,n){let r;const i=s,o=M(e);if(o||Q(e)){const l=o&&it(e);let a=!1,p=!1;l&&(a=!xe(e),p=ze(e),e=ys(e)),r=new Array(e.length);for(let f=0,d=e.length;ft(l,a,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let a=0,p=l.length;ae?ri(e)?Ts(e):Ws(e.parent):null,Mt=le(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=>Ws(e.parent),$root:e=>Ws(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=Or.bind(e.proxy)),$watch:e=>no.bind(e)}),Fs=(e,t)=>e!==z&&!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:a}=e;if(t[0]!=="$"){const v=o[t];if(v!==void 0)switch(v){case 1:return n[t];case 2:return r[t];case 4:return s[t];case 3:return i[t]}else{if(Fs(n,t))return o[t]=1,n[t];if(r!==z&&H(r,t))return o[t]=2,r[t];if(H(i,t))return o[t]=3,i[t];if(s!==z&&H(s,t))return o[t]=4,s[t];zs&&(o[t]=0)}}const p=Mt[t];let f,d;if(p)return t==="$attrs"&&ce(e.attrs,"get",""),p(e);if((f=l.__cssModules)&&(f=f[t]))return f;if(s!==z&&H(s,t))return o[t]=4,s[t];if(d=a.config.globalProperties,H(d,t))return d[t]},set({_:e},t,s){const{data:n,setupState:r,ctx:i}=e;return Fs(r,t)?(r[t]=s,!0):n!==z&&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 a;return!!(s[l]||e!==z&&l[0]!=="$"&&H(e,l)||Fs(t,l)||H(i,l)||H(n,l)||H(Mt,l)||H(r.config.globalProperties,l)||(a=o.__cssModules)&&a[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 M(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let zs=!0;function _o(e){const t=Vr(e),s=e.proxy,n=e.ctx;zs=!1,t.beforeCreate&&$n(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:a,inject:p,created:f,beforeMount:d,mounted:v,beforeUpdate:P,updated:N,activated:$,deactivated:X,beforeDestroy:G,beforeUnmount:O,destroyed:w,unmounted:_,render:K,renderTracked:ye,renderTriggered:Te,errorCaptured:Je,serverPrefetch:Gt,expose:Ze,inheritAttrs:yt,components:Jt,directives:qt,filters:Os}=t;if(p&&wo(p,n,null),o)for(const Z in o){const J=o[Z];R(J)&&(n[Z]=J.bind(s))}if(r){const Z=r.call(s,s);U(Z)&&(e.data=Vt(Z))}if(zs=!0,i)for(const Z in i){const J=i[Z],Xe=R(J)?J.bind(s,s):R(J.get)?J.get.bind(s,s):Fe,Yt=!R(J)&&R(J.set)?J.set.bind(s):Fe,Qe=us({get:Xe,set:Yt});Object.defineProperty(n,Z,{enumerable:!0,configurable:!0,get:()=>Qe.value,set:Ae=>Qe.value=Ae})}if(l)for(const Z in l)Nr(l[Z],n,s,Z);if(a){const Z=R(a)?a.call(s):a;Reflect.ownKeys(Z).forEach(J=>{eo(J,Z[J])})}f&&$n(f,e,"c");function ue(Z,J){M(J)?J.forEach(Xe=>Z(Xe.bind(s))):J&&Z(J.bind(s))}if(ue(uo,d),ue(dn,v),ue(fo,P),ue(po,N),ue(lo,$),ue(co,X),ue(bo,Je),ue(mo,ye),ue(vo,Te),ue(ho,O),ue(pn,_),ue(go,Gt),M(Ze))if(Ze.length){const Z=e.exposed||(e.exposed={});Ze.forEach(J=>{Object.defineProperty(Z,J,{get:()=>s[J],set:Xe=>s[J]=Xe,enumerable:!0})})}else e.exposed||(e.exposed={});K&&e.render===Fe&&(e.render=K),yt!=null&&(e.inheritAttrs=yt),Jt&&(e.components=Jt),qt&&(e.directives=qt),Gt&&Fr(e)}function wo(e,t,s=Fe){M(e)&&(e=Gs(e));for(const n in e){const r=e[n];let i;U(r)?"default"in r?i=ss(r.from||n,r.default,!0):i=ss(r.from||n):i=ss(r),ae(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){Ne(M(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function Nr(e,t,s,n){let r=n.includes(".")?Rr(s,n):()=>s[n];if(Q(e)){const i=t[e];R(i)&&ct(r,i)}else if(R(e))ct(r,e.bind(s));else if(U(e))if(M(e))e.forEach(i=>Nr(i,t,s,n));else{const i=R(e.handler)?e.handler.bind(s):t[e.handler];R(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 a;return l?a=l:!r.length&&!s&&!n?a=t:(a={},r.length&&r.forEach(p=>cs(a,p,o,!0)),cs(a,t,o)),U(t)&&i.set(t,a),a}function cs(e,t,s,n=!1){const{mixins:r,extends:i}=t;i&&cs(e,i,s,!0),r&&r.forEach(o=>cs(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:kn,props:Mn,emits:Mn,methods:At,computed:At,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:At,directives:At,watch:To,provide:kn,inject:Co};function kn(e,t){return t?e?function(){return le(R(e)?e.call(this,this):e,R(t)?t.call(this,this):t)}:t:e}function Co(e,t){return At(Gs(e),Gs(t))}function Gs(e){if(M(e)){const t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${we(t)}Modifiers`]||e[`${at(t)}Modifiers`];function Eo(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||z;let r=s;const i=t.startsWith("update:"),o=i&&Oo(n,t.slice(7));o&&(o.trim&&(r=s.map(f=>Q(f)?f.trim():f)),o.number&&(r=s.map(bs)));let l,a=n[l=Is(t)]||n[l=Is(we(t))];!a&&i&&(a=n[l=Is(at(t))]),a&&Ne(a,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,Ne(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(!R(e)){const a=p=>{const f=Br(p,t,!0);f&&(l=!0,le(o,f))};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!l?(U(e)&&n.set(e,null),null):(M(i)?i.forEach(a=>o[a]=null):le(o,i),U(e)&&n.set(e,o),o)}function Ss(e,t){return!e||!hs(t)?!1:(t=t.slice(2).replace(/Once$/,""),H(e,t[0].toLowerCase()+t.slice(1))||H(e,at(t))||H(e,t))}function Rn(e){const{type:t,vnode:s,proxy:n,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:a,render:p,renderCache:f,props:d,data:v,setupState:P,ctx:N,inheritAttrs:$}=e,X=os(e);let G,O;try{if(s.shapeFlag&4){const _=r||n,K=_;G=Me(p.call(K,_,f,d,P,v,N)),O=l}else{const _=t;G=Me(_.length>1?_(d,{attrs:l,slots:o,emit:a}):_(d,null)),O=t.props?l:$o(l)}}catch(_){Rt.length=0,_s(_,e,1),G=se(Ye)}let w=G;if(O&&$!==!1){const _=Object.keys(O),{shapeFlag:K}=w;_.length&&K&7&&(i&&_.some(gs)&&(O=ko(O,i)),w=xt(w,O,!1,!0))}return s.dirs&&(w=xt(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(s.dirs):s.dirs),s.transition&&fn(w,s.transition),G=w,os(X),G}const $o=e=>{let t;for(const s in e)(s==="class"||s==="style"||hs(s))&&((t||(t={}))[s]=e[s]);return t},ko=(e,t)=>{const s={};for(const n in e)(!gs(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function Mo(e,t,s){const{props:n,children:r,component:i}=e,{props:o,children:l,patchFlag:a}=t,p=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&a>=0){if(a&1024)return!0;if(a&16)return n?Fn(n,o,p):!!o;if(a&8){const f=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),zr(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),[a]=e.propsOptions;let p=!1;if((n||o>0)&&!(o&16)){if(o&8){const f=e.vnode.dynamicProps;for(let d=0;d{a=!0;const[v,P]=Gr(d,t,!0);le(o,v),P&&l.push(...P)};!s&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!i&&!a)return U(e)&&n.set(e,pt),pt;if(M(i))for(let f=0;fe==="_"||e==="_ctx"||e==="$stable",gn=e=>M(e)?e.map(Me):[Me(e)],No=(e,t,s)=>{if(t._n)return t;const n=Qi((...r)=>gn(t(...r)),s);return n._c=!1,n},Jr=(e,t,s)=>{const n=e._ctx;for(const r in e){if(hn(r))continue;const i=e[r];if(R(i))t[r]=No(r,i,n);else if(i!=null){const o=gn(i);t[r]=()=>o}}},qr=(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)):Jr(t,n)}else t&&qr(e,t)},Lo=(e,t,s)=>{const{vnode:n,slots:r}=e;let i=!0,o=z;if(n.shapeFlag&32){const l=t._;l?s&&l===1?i=!1:Yr(r,t,s):(i=!t.$stable,Jr(t,r)),o=t}else t&&(qr(e,t),o={default:1});if(i)for(const l in r)!hn(l)&&o[l]==null&&delete r[l]},he=Wo;function Bo(e){return Ho(e)}function Ho(e,t){const s=xs();s.__VUE__=!0;const{insert:n,remove:r,patchProp:i,createElement:o,createText:l,createComment:a,setText:p,setElementText:f,parentNode:d,nextSibling:v,setScopeId:P=Fe,insertStaticContent:N}=e,$=(c,u,h,y=null,m=null,b=null,T=void 0,C=null,S=!!u.dynamicChildren)=>{if(c===u)return;c&&!Tt(c,u)&&(y=Zt(c),Ae(c,m,b,!0),c=null),u.patchFlag===-2&&(S=!1,u.dynamicChildren=null);const{type:x,ref:I,shapeFlag:A}=u;switch(x){case Cs:X(c,u,h,y);break;case Ye:G(c,u,h,y);break;case js:c==null&&O(u,h,y,T);break;case ee:Jt(c,u,h,y,m,b,T,C,S);break;default:A&1?K(c,u,h,y,m,b,T,C,S):A&6?qt(c,u,h,y,m,b,T,C,S):(A&64||A&128)&&x.process(c,u,h,y,m,b,T,C,S,wt)}I!=null&&m?$t(I,c&&c.ref,b,u||c,!u):I==null&&c&&c.ref!=null&&$t(c.ref,null,b,c,!0)},X=(c,u,h,y)=>{if(c==null)n(u.el=l(u.children),h,y);else{const m=u.el=c.el;u.children!==c.children&&p(m,u.children)}},G=(c,u,h,y)=>{c==null?n(u.el=a(u.children||""),h,y):u.el=c.el},O=(c,u,h,y)=>{[c.el,c.anchor]=N(c.children,u,h,y,c.el,c.anchor)},w=({el:c,anchor:u},h,y)=>{let m;for(;c&&c!==u;)m=v(c),n(c,h,y),c=m;n(u,h,y)},_=({el:c,anchor:u})=>{let h;for(;c&&c!==u;)h=v(c),r(c),c=h;r(u)},K=(c,u,h,y,m,b,T,C,S)=>{if(u.type==="svg"?T="svg":u.type==="math"&&(T="mathml"),c==null)ye(u,h,y,m,b,T,C,S);else{const x=c.el&&c.el._isVueCE?c.el:null;try{x&&x._beginPatch(),Gt(c,u,m,b,T,C,S)}finally{x&&x._endPatch()}}},ye=(c,u,h,y,m,b,T,C)=>{let S,x;const{props:I,shapeFlag:A,transition:E,dirs:k}=c;if(S=c.el=o(c.type,b,I&&I.is,I),A&8?f(S,c.children):A&16&&Je(c.children,S,null,y,m,Ds(c,b),T,C),k&&et(c,null,y,"created"),Te(S,c,c.scopeId,T,y),I){for(const W in I)W!=="value"&&!Ot(W)&&i(S,W,null,I[W],b,y);"value"in I&&i(S,"value",null,I.value,b),(x=I.onVnodeBeforeMount)&&Ie(x,y,c)}k&&et(c,null,y,"beforeMount");const V=Ko(m,E);V&&E.beforeEnter(S),n(S,u,h),((x=I&&I.onVnodeMounted)||V||k)&&he(()=>{try{x&&Ie(x,y,c),V&&E.enter(S),k&&et(c,null,y,"mounted")}finally{}},m)},Te=(c,u,h,y,m)=>{if(h&&P(c,h),y)for(let b=0;b{for(let x=S;x{const C=u.el=c.el;let{patchFlag:S,dynamicChildren:x,dirs:I}=u;S|=c.patchFlag&16;const A=c.props||z,E=u.props||z;let k;if(h&&tt(h,!1),(k=E.onVnodeBeforeUpdate)&&Ie(k,h,u,c),I&&et(u,c,h,"beforeUpdate"),h&&tt(h,!0),(A.innerHTML&&E.innerHTML==null||A.textContent&&E.textContent==null)&&f(C,""),x?Ze(c.dynamicChildren,x,C,h,y,Ds(u,m),b):T||J(c,u,C,null,h,y,Ds(u,m),b,!1),S>0){if(S&16)yt(C,A,E,h,m);else if(S&2&&A.class!==E.class&&i(C,"class",null,E.class,m),S&4&&i(C,"style",A.style,E.style,m),S&8){const V=u.dynamicProps;for(let W=0;W{k&&Ie(k,h,u,c),I&&et(u,c,h,"updated")},y)},Ze=(c,u,h,y,m,b,T)=>{for(let C=0;C{if(u!==h){if(u!==z)for(const b in u)!Ot(b)&&!(b in h)&&i(c,b,u[b],null,m,y);for(const b in h){if(Ot(b))continue;const T=h[b],C=u[b];T!==C&&b!=="value"&&i(c,b,C,T,m,y)}"value"in h&&i(c,"value",u.value,h.value,m)}},Jt=(c,u,h,y,m,b,T,C,S)=>{const x=u.el=c?c.el:l(""),I=u.anchor=c?c.anchor:l("");let{patchFlag:A,dynamicChildren:E,slotScopeIds:k}=u;k&&(C=C?C.concat(k):k),c==null?(n(x,h,y),n(I,h,y),Je(u.children||[],h,I,m,b,T,C,S)):A>0&&A&64&&E&&c.dynamicChildren&&c.dynamicChildren.length===E.length?(Ze(c.dynamicChildren,E,h,m,b,T,C),(u.key!=null||m&&u===m.subTree)&&Zr(c,u,!0)):J(c,u,h,I,m,b,T,C,S)},qt=(c,u,h,y,m,b,T,C,S)=>{u.slotScopeIds=C,c==null?u.shapeFlag&512?m.ctx.activate(u,h,y,T,S):Os(u,h,y,m,b,T,S):mn(c,u,S)},Os=(c,u,h,y,m,b,T)=>{const C=c.component=el(c,y,m);if(Dr(c)&&(C.ctx.renderer=wt),sl(C,!1,T),C.asyncDep){if(m&&m.registerDep(C,ue,T),!c.el){const S=C.subTree=se(Ye);G(null,S,u,h),c.placeholder=S.el}}else ue(C,c,u,h,m,b,T)},mn=(c,u,h)=>{const y=u.component=c.component;if(Mo(c,u,h))if(y.asyncDep&&!y.asyncResolved){Z(y,u,h);return}else y.next=u,y.update();else u.el=c.el,y.vnode=u},ue=(c,u,h,y,m,b,T)=>{const C=()=>{if(c.isMounted){let{next:A,bu:E,u:k,parent:V,vnode:W}=c;{const Oe=Xr(c);if(Oe){A&&(A.el=W.el,Z(c,A,T)),Oe.asyncDep.then(()=>{he(()=>{c.isUnmounted||x()},m)});return}}let q=A,te;tt(c,!1),A?(A.el=W.el,Z(c,A,T)):A=W,E&&ts(E),(te=A.props&&A.props.onVnodeBeforeUpdate)&&Ie(te,V,A,W),tt(c,!0);const ne=Rn(c),Pe=c.subTree;c.subTree=ne,$(Pe,ne,d(Pe.el),Zt(Pe),c,m,b),A.el=ne.el,q===null&&Ro(c,ne.el),k&&he(k,m),(te=A.props&&A.props.onVnodeUpdated)&&he(()=>Ie(te,V,A,W),m)}else{let A;const{el:E,props:k}=u,{bm:V,m:W,parent:q,root:te,type:ne}=c,Pe=kt(u);tt(c,!1),V&&ts(V),!Pe&&(A=k&&k.onVnodeBeforeMount)&&Ie(A,q,u),tt(c,!0);{te.ce&&te.ce._hasShadowRoot()&&te.ce._injectChildStyle(ne,c.parent?c.parent.type:void 0);const Oe=c.subTree=Rn(c);$(null,Oe,h,y,c,m,b),u.el=Oe.el}if(W&&he(W,m),!Pe&&(A=k&&k.onVnodeMounted)){const Oe=u;he(()=>Ie(A,q,Oe),m)}(u.shapeFlag&256||q&&kt(q.vnode)&&q.vnode.shapeFlag&256)&&c.a&&he(c.a,m),c.isMounted=!0,u=h=y=null}};c.scope.on();const S=c.effect=new dr(C);c.scope.off();const x=c.update=S.run.bind(S),I=c.job=S.runIfDirty.bind(S);I.i=c,I.id=c.uid,S.scheduler=()=>un(I),tt(c,!0),x()},Z=(c,u,h)=>{u.component=c;const y=c.vnode.props;c.vnode=u,c.next=null,Do(c,u.props,y,h),Lo(c,u.children,h),Ue(),Pn(c),We()},J=(c,u,h,y,m,b,T,C,S=!1)=>{const x=c&&c.children,I=c?c.shapeFlag:0,A=u.children,{patchFlag:E,shapeFlag:k}=u;if(E>0){if(E&128){Yt(x,A,h,y,m,b,T,C,S);return}else if(E&256){Xe(x,A,h,y,m,b,T,C,S);return}}k&8?(I&16&&_t(x,m,b),A!==x&&f(h,A)):I&16?k&16?Yt(x,A,h,y,m,b,T,C,S):_t(x,m,b,!0):(I&8&&f(h,""),k&16&&Je(A,h,y,m,b,T,C,S))},Xe=(c,u,h,y,m,b,T,C,S)=>{c=c||pt,u=u||pt;const x=c.length,I=u.length,A=Math.min(x,I);let E;for(E=0;EI?_t(c,m,b,!0,!1,A):Je(u,h,y,m,b,T,C,S,A)},Yt=(c,u,h,y,m,b,T,C,S)=>{let x=0;const I=u.length;let A=c.length-1,E=I-1;for(;x<=A&&x<=E;){const k=c[x],V=u[x]=S?Be(u[x]):Me(u[x]);if(Tt(k,V))$(k,V,h,null,m,b,T,C,S);else break;x++}for(;x<=A&&x<=E;){const k=c[A],V=u[E]=S?Be(u[E]):Me(u[E]);if(Tt(k,V))$(k,V,h,null,m,b,T,C,S);else break;A--,E--}if(x>A){if(x<=E){const k=E+1,V=kE)for(;x<=A;)Ae(c[x],m,b,!0),x++;else{const k=x,V=x,W=new Map;for(x=V;x<=E;x++){const ge=u[x]=S?Be(u[x]):Me(u[x]);ge.key!=null&&W.set(ge.key,x)}let q,te=0;const ne=E-V+1;let Pe=!1,Oe=0;const St=new Array(ne);for(x=0;x=ne){Ae(ge,m,b,!0);continue}let Ee;if(ge.key!=null)Ee=W.get(ge.key);else for(q=V;q<=E;q++)if(St[q-V]===0&&Tt(ge,u[q])){Ee=q;break}Ee===void 0?Ae(ge,m,b,!0):(St[Ee-V]=x+1,Ee>=Oe?Oe=Ee:Pe=!0,$(ge,u[Ee],h,null,m,b,T,C,S),te++)}const yn=Pe?Uo(St):pt;for(q=yn.length-1,x=ne-1;x>=0;x--){const ge=V+x,Ee=u[ge],_n=u[ge+1],wn=ge+1{const{el:b,type:T,transition:C,children:S,shapeFlag:x}=c;if(x&6){Qe(c.component.subTree,u,h,y);return}if(x&128){c.suspense.move(u,h,y);return}if(x&64){T.move(c,u,h,wt);return}if(T===ee){n(b,u,h);for(let A=0;AC.enter(b),m);else{const{leave:A,delayLeave:E,afterLeave:k}=C,V=()=>{c.ctx.isUnmounted?r(b):n(b,u,h)},W=()=>{b._isLeaving&&b[oo](!0),A(b,()=>{V(),k&&k()})};E?E(b,V,W):W()}else n(b,u,h)},Ae=(c,u,h,y=!1,m=!1)=>{const{type:b,props:T,ref:C,children:S,dynamicChildren:x,shapeFlag:I,patchFlag:A,dirs:E,cacheIndex:k,memo:V}=c;if(A===-2&&(m=!1),C!=null&&(Ue(),$t(C,null,h,c,!0),We()),k!=null&&(u.renderCache[k]=void 0),I&256){u.ctx.deactivate(c);return}const W=I&1&&E,q=!kt(c);let te;if(q&&(te=T&&T.onVnodeBeforeUnmount)&&Ie(te,u,c),I&6)ci(c.component,h,y);else{if(I&128){c.suspense.unmount(h,y);return}W&&et(c,null,u,"beforeUnmount"),I&64?c.type.remove(c,u,h,wt,y):x&&!x.hasOnce&&(b!==ee||A>0&&A&64)?_t(x,u,h,!1,!0):(b===ee&&A&384||!m&&I&16)&&_t(S,u,h),y&&bn(c)}const ne=V!=null&&k==null;(q&&(te=T&&T.onVnodeUnmounted)||W||ne)&&he(()=>{te&&Ie(te,u,c),W&&et(c,null,u,"unmounted"),ne&&(c.el=null)},h)},bn=c=>{const{type:u,el:h,anchor:y,transition:m}=c;if(u===ee){li(h,y);return}if(u===js){_(c);return}const b=()=>{r(h),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(c.shapeFlag&1&&m&&!m.persisted){const{leave:T,delayLeave:C}=m,S=()=>T(h,b);C?C(c.el,b,S):S()}else b()},li=(c,u)=>{let h;for(;c!==u;)h=v(c),r(c),c=h;r(u)},ci=(c,u,h)=>{const{bum:y,scope:m,job:b,subTree:T,um:C,m:S,a:x}=c;jn(S),jn(x),y&&ts(y),m.stop(),b&&(b.flags|=8,Ae(T,c,u,h)),C&&he(C,u),he(()=>{c.isUnmounted=!0},u)},_t=(c,u,h,y=!1,m=!1,b=0)=>{for(let T=b;T{if(c.shapeFlag&6)return Zt(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const u=v(c.anchor||c.el),h=u&&u[ro];return h?v(h):u};let Es=!1;const xn=(c,u,h)=>{let y;c==null?u._vnode&&(Ae(u._vnode,null,null,!0),y=u._vnode.component):$(u._vnode||null,c,u,null,null,null,h),u._vnode=c,Es||(Es=!0,Pn(y),Ir(),Es=!1)},wt={p:$,um:Ae,m:Qe,r:bn,mt:Os,mc:Je,pc:J,pbc:Ze,n:Zt,o:e};return{render:xn,hydrate:void 0,createApp:Po(xn)}}function Ds({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(M(n)&&M(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?M(e)?t.effects.push(...e):t.effects.push(e):Xi(e)}const ee=Symbol.for("v-fgt"),Cs=Symbol.for("v-txt"),Ye=Symbol.for("v-cmt"),js=Symbol.for("v-stc"),Rt=[];let ve=null;function F(e=!1){Rt.push(ve=e?null:[])}function zo(){Rt.pop(),ve=Rt[Rt.length-1]||null}let Bt=1;function Nn(e,t=!1){Bt+=e,e<0&&ve&&t&&(ve.hasOnce=!0)}function ti(e){return e.dynamicChildren=Bt>0?ve||pt:null,zo(),Bt>0&&ve&&ve.push(e),e}function j(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,ns=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?Q(e)||ae(e)||R(e)?{i:be,r:e,k:t,f:!!s}:e:null);function g(e,t=null,s=null,n=0,r=null,i=e===ee?0:1,o=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ni(t),ref:t&&ns(t),scopeId:kr,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:be};return l?(vn(a,s),i&128&&e.normalize(a)):s&&(a.shapeFlag|=Q(s)?8:16),Bt>0&&!o&&ve&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&ve.push(a),a}const se=Jo;function Jo(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&&vn(l,s),Bt>0&&!i&&ve&&(l.shapeFlag&6?ve[ve.indexOf(e)]=l:ve.push(l)),l.patchFlag=-2,l}if(ol(e)&&(e=e.__vccOpts),t){t=qo(t);let{class:l,style:a}=t;l&&!Q(l)&&(t.class=De(l)),U(a)&&(an(a)&&!M(a)&&(a=le({},a)),t.style=Dt(a))}const o=Q(e)?1:ei(e)?128:io(e)?64:U(e)?4:R(e)?2:0;return g(e,t,s,n,r,o,i,!0)}function qo(e){return e?an(e)||Wr(e)?le({},e):e:null}function xt(e,t,s=!1,n=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:a}=e,p=t?Zo(r||{},t):r,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:p,key:p&&ni(p),ref:t&&t.ref?s&&i?M(i)?i.concat(ns(t)):[i,ns(t)]:ns(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!==ee?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,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 a&&n&&fn(f,a.clone(f)),f}function Yo(e=" ",t=0){return se(Cs,null,e,t)}function me(e="",t=!1){return t?(F(),Go(Ye,null,e)):se(Ye,null,e)}function Me(e){return e==null||typeof e=="boolean"?se(Ye):M(e)?se(ee,null,e.slice()):si(e)?Be(e):se(Cs,null,String(e))}function Be(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:xt(e)}function vn(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(M(t))s=16;else if(typeof t=="object")if(n&65){const r=t.default;r&&(r._c&&(r._d=!1),vn(e,r()),r._c&&(r._d=!0));return}else{s=32;const r=t._;!r&&!Wr(t)?t._ctx=be:r===3&&be&&(be.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else R(t)?(t={default:t,_ctx:be},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;spe||be;let as,qs;{const e=xs(),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)}};as=t("__VUE_INSTANCE_SETTERS__",s=>pe=s),qs=t("__VUE_SSR_SETTERS__",s=>Ht=s)}const zt=e=>{const t=pe;return as(e),e.scope.on(),()=>{e.scope.off(),as(t)}},Vn=()=>{pe&&pe.scope.off(),as(null)};function ri(e){return e.vnode.shapeFlag&4}let Ht=!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){Ue();const r=e.setupContext=n.length>1?il(e):null,i=zt(e),o=Wt(n,e,0,[e.props,r]),l=rr(o);if(We(),i(),(l||e.sp)&&!kt(e)&&Fr(e),l){if(o.then(Vn,Vn),t)return o.then(a=>{Ln(e,a)}).catch(a=>{_s(a,e,0)});e.asyncDep=o}else Ln(e,o)}else ii(e)}function Ln(e,t,s){R(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:U(t)&&(e.setupState=Ar(t)),ii(e)}function ii(e,t,s){const n=e.type;e.render||(e.render=n.render||Fe);{const r=zt(e);Ue();try{_o(e)}finally{We(),r()}}}const rl={get(e,t){return ce(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 Ts(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ar(Hi(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Mt)return Mt[s](e)},has(t,s){return s in t||s in Mt}})):e.proxy}function ol(e){return R(e)&&"__vccOpts"in e}const us=(e,t)=>Gi(e,t,Ht),ll="3.5.34";/** * @vue/runtime-dom v3.5.34 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Ys;const Bn=typeof window<"u"&&window.trustedTypes;if(Bn)try{Ys=Bn.createPolicy("vue",{createHTML:e=>e})}catch{}const oi=Ys?e=>Ys.createHTML(e):e=>e,cl="http://www.w3.org/2000/svg",al="http://www.w3.org/1998/Math/MathML",Le=typeof document<"u"?document:null,Hn=Le&&Le.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"?Le.createElementNS(cl,e):t==="mathml"?Le.createElementNS(al,e):s?Le.createElement(e,{is:s}):Le.createElement(e);return e==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:e=>Le.createTextNode(e),createComment:e=>Le.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Le.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 a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}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 vl(e,t,s){const n=e.style,r=Q(s);let i=!1;if(s&&!r){if(t)if(Q(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();s[l]==null&&Pt(n,l,"")}else for(const o in t)s[o]==null&&Pt(n,o,"");for(const o in s){o==="display"&&(i=!0);const l=s[o];l!=null?bl(e,o,!Q(t)&&t?t[o]:void 0,l)||Pt(n,o,l):Pt(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 Pt(e,t,s){if(M(s))s.forEach(n=>Pt(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=ml(e,t);Un.test(s)?e.setProperty(at(n),s.replace(Un,""),"important"):e[n]=s}}const Wn=["Webkit","Moz","ms"],Ns={};function ml(e,t){const s=Ns[t];if(s)return s;let n=we(t);if(n!=="filter"&&n in e)return Ns[t]=n;n=lr(n);for(let r=0;rVs||(wl.then(()=>Vs=0),Vs=Date.now());function Cl(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;Ne(Tl(n,s.value),t,5,[n])};return s.value=e,s.attached=Sl(),s}function Tl(e,t){if(M(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,Al=(e,t,s,n,r,i)=>{const o=r==="svg";t==="class"?dl(e,n,o):t==="style"?vl(e,s,n):hs(t)?gs(t)||yl(e,t,s,n,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Pl(e,t,n,o))?(Gn(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Jn(e,t,n,o,i,t!=="value")):e._isVueCE&&(Ol(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Q(n)))?Gn(e,we(t),n,i,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Jn(e,t,n,o))};function Pl(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Zn(t)&&R(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)&&Q(s)?!1:t in e}function Ol(e,t){const s=e._def.props;if(!s)return!1;const n=we(t);return Array.isArray(s)?s.some(r=>we(r)===n):Object.keys(s).some(r=>we(r)===n)}const fs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return M(t)?s=>ts(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 mt=Symbol("_assign");function Qn(e,t,s){return t&&(e=e.trim()),s&&(e=bs(e)),e}const Zs={created(e,{modifiers:{lazy:t,trim:s,number:n}},r){e[mt]=fs(r);const i=n||r.props&&r.props.type==="number";nt(e,t?"change":"input",o=>{o.target.composing||e[mt](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[mt]=fs(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?bs(e.value):e.value,a=t??"";if(l===a)return;const p=e.getRootNode();(p instanceof Document||p instanceof ShadowRoot)&&p.activeElement===e&&e.type!=="range"&&(n&&t===s||r&&e.value.trim()===a)||(e.value=a)}},As={deep:!0,created(e,{value:t,modifiers:{number:s}},n){const r=vs(t);nt(e,"change",()=>{const i=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>s?bs(ds(o)):ds(o));e[mt](e.multiple?r?new Set(i):i:i[0]),e._assigning=!0,Or(()=>{e._assigning=!1})}),e[mt]=fs(n)},mounted(e,{value:t}){er(e,t)},beforeUpdate(e,t,s){e[mt]=fs(s)},updated(e,{value:t}){e._assigning||er(e,t)}};function er(e,t){const s=e.multiple,n=M(t);if(!(s&&!n&&!vs(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(Ut(ds(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function ds(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))},Xs=(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=Ml().createApp(...e),{mount:s}=t;return t.mount=n=>{const r=Dl(n);if(!r)return;const i=t._component;!R(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 Q(e)?document.querySelector(e):e}const L=window,D={loadAllSettings:()=>L.loadAllSettings(),saveToggles:e=>L.saveToggles(JSON.stringify(e)),saveLayout:e=>L.saveLayout(e),saveZodiac:e=>L.saveZodiac(e),saveCity:e=>L.saveCity(e),saveWallpaperType:(e,t)=>L.saveWallpaperType(e,t),pickLocalImage:()=>L.pickLocalImage(),enableBing:()=>L.enableBing(),bingPrev:()=>L.bingPrev(),bingNext:()=>L.bingNext(),bingToggleFavorite:()=>L.bingToggleFavorite(),getBingInfo:()=>L.getBingInfo(),saveBingAutoRefresh:e=>L.saveBingAutoRefresh(e),getBingFavorites:()=>L.getBingFavorites(),bingSetByIdx:e=>L.bingSetByIdx(e),bingThumbDataURI:e=>L.bingThumbDataURI(e),pickSolidColor:()=>L.pickSolidColor(),pickGradientColor:()=>L.pickGradientColor(),addSavedColor:(e,t,s)=>L.addSavedColor(e,t,s),removeSavedColor:e=>L.removeSavedColor(e),applySavedColor:e=>L.applySavedColor(e),saveWallpaperText:e=>L.saveWallpaperText(e),saveKnowledgeKeyword:e=>L.saveKnowledgeKeyword(e),saveKnowledgePrompt:e=>L.saveKnowledgePrompt(e),pickPhotoDir:()=>L.pickPhotoDir(),clearPhotoDir:()=>L.clearPhotoDir(),savePhotoInterval:e=>L.savePhotoInterval(e),resizeToFit:(e,t)=>e.resizeToFit(e,t),saveAudioVizStyle:e=>L.saveAudioVizStyle(e),saveAudioSensitivity:e=>L.saveAudioSensitivity(e),saveAudioSmoothing:e=>L.saveAudioSmoothing(e),saveAudioColorScheme:e=>L.saveAudioColorScheme(e)},jl={class:"switch"},Nl=["checked"],Vl=ut({__name:"ToggleSwitch",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(e){return(t,s)=>(F(),j("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},ps=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=ut({__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];D.saveToggles(r)}),(r,i)=>(F(),j("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,[(F(),j(ee,null,_e(s,o=>g("div",{key:o.key,class:De(["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,oe(o.label),1),o.desc?(F(),j("div",Kl,oe(o.desc),1)):me("",!0)]),se(ps,{modelValue:e.s[o.key],"onUpdate:modelValue":l=>e.s[o.key]=l},null,8,["modelValue","onUpdate:modelValue"])],2)),64))])]))}}),sr=new Map;function Ft(e,t,s,n=500){clearTimeout(sr.get(e)),sr.set(e,setTimeout(()=>t(s),n))}const Wl={class:"mb-3"},zl={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Jl={class:"flex justify-between items-center px-3.5 py-2"},Gl={class:"flex gap-1"},ql=["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={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},tc={class:"flex flex-wrap gap-1 justify-end"},sc=["onClick"],nc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},rc={class:"flex gap-1"},ic=["onClick"],oc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},lc=["value"],cc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},ac=["value"],uc={key:1,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},fc={class:"flex justify-between items-center px-3.5 py-2"},dc={class:"text-[10px] text-[var(--text-weak)] truncate mr-2"},pc={key:2,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},hc={class:"flex justify-between items-center px-3.5 py-2"},gc={class:"flex items-center gap-2 min-w-0"},vc=["src"],mc={class:"min-w-0"},bc={class:"text-xs font-medium text-[var(--text-muted)] truncate"},xc={class:"text-[10px] text-[var(--text-weak)]"},yc={class:"flex gap-1 flex-shrink-0"},_c={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},wc={key:0,class:"px-3.5 py-2 border-t border-[var(--card-divider)]"},Sc={class:"grid grid-cols-4 gap-1.5"},Cc=["onClick"],Tc=["src"],Ac={key:3,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},Pc={class:"flex justify-between items-center px-3.5 py-2"},Oc={class:"flex gap-1"},Ec={key:0,class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Ic={class:"flex items-center gap-1.5"},$c={key:4,class:"flex flex-wrap gap-1.5 mt-1.5 px-0.5"},kc=["onClick","onContextmenu"],Mc=ut({__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=[{value:"bars",label:"柱状"},{value:"waveform",label:"波形"},{value:"circular",label:"环形"},{value:"particles",label:"粒子"},{value:"ripples",label:"涟漪"},{value:"text",label:"文字"},{value:"stars",label:"星空"},{value:"dna",label:"DNA"},{value:"matrix",label:"矩阵"},{value:"jellyfish",label:"水母"},{value:"aurora",label:"极光"}],r=[{value:"neon",label:"霓虹"},{value:"ocean",label:"海洋"},{value:"fire",label:"火焰"},{value:"rainbow",label:"彩虹"}],i=ot({date:"",title:"",copyright:"",url:"",fav:!1,idx:0,total:0}),o=ot(""),l=ot([]);async function a(){const O=await D.getBingInfo(),w=JSON.parse(O);if(i.value=w,w.url){const y=w.url.replace("_1920x1080","_400x240");o.value=y!==w.url?y:await D.bingThumbDataURI(w.url.split("/").pop()||"")}}async function p(){i.value=JSON.parse(await D.bingPrev())}async function u(){i.value=JSON.parse(await D.bingNext())}async function d(){i.value=JSON.parse(await D.bingToggleFavorite()),await P()}async function _(O){i.value=JSON.parse(await D.bingSetByIdx(O))}async function P(){const O=await D.getBingFavorites(),w=JSON.parse(O);l.value=await Promise.all(w.map(async y=>({idx:parseInt(y.match(/(\d+)/)?.[1]||"0",10),thumb:await D.bingThumbDataURI(y)})))}ct(()=>t.s.bingAutoRefresh,O=>D.saveBingAutoRefresh(O)),ct(()=>t.s.wallpaperType,O=>{O==="bing"&&(a(),P())},{immediate:!0});async function N(){const O=await D.pickLocalImage();O&&(t.s.imagePath=O)}function $(O,w,y){return{background:y&&w?`linear-gradient(135deg,${O},${w})`:O}}const X=us(()=>t.currentColor.c1?$(t.currentColor.c1,t.currentColor.c2,t.currentColor.gradient):{});function J(O){return $(O.color1,O.color2,O.gradient)}return(O,w)=>(F(),j("div",Wl,[w[22]||(w[22]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"壁纸",-1)),g("div",zl,[g("div",Jl,[w[10]||(w[10]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"类型选择",-1)),g("div",Gl,[(F(),j(ee,null,_e(s,y=>g("button",{key:y.value,onClick:K=>O.$emit("set-wp-type",y.value),class:De([e.s.wallpaperType===y.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"])},oe(y.label),11,ql)),64))])])]),e.s.wallpaperType==="theme"?(F(),j("div",Yl,[g("div",Zl,[w[11]||(w[11]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"选择主题",-1)),lt(g("select",{"onUpdate:modelValue":w[0]||(w[0]=y=>e.s.theme=y),onChange:w[1]||(w[1]=y=>ie(D).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)]"},[(F(!0),j(ee,null,_e(e.s.themes,y=>(F(),j("option",{key:y.value,value:y.value},oe(y.label),9,Xl))),128))],544),[[As,e.s.theme]])]),e.s.theme==="text"?(F(),j("div",Ql,[w[12]||(w[12]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"自定义文字",-1)),lt(g("input",{type:"text","onUpdate:modelValue":w[2]||(w[2]=y=>e.s.wallpaperText=y),onInput:w[3]||(w[3]=y=>ie(Ft)("wt",ie(D).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),[[Zs,e.s.wallpaperText]])])):me("",!0),e.s.theme==="audio-viz"?(F(),j(ee,{key:1},[g("div",ec,[w[13]||(w[13]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"可视化样式",-1)),g("div",tc,[(F(),j(ee,null,_e(n,y=>g("button",{key:y.value,onClick:K=>{e.s.audioVizStyle=y.value,ie(D).saveAudioVizStyle(y.value)},class:De([e.s.audioVizStyle===y.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-0.5 px-2 font-[inherit] cursor-pointer transition-colors"])},oe(y.label),11,sc)),64))])]),g("div",nc,[w[14]||(w[14]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"配色方案",-1)),g("div",rc,[(F(),j(ee,null,_e(r,y=>g("button",{key:y.value,onClick:K=>{e.s.audioColorScheme=y.value,ie(D).saveAudioColorScheme(y.value)},class:De([e.s.audioColorScheme===y.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-0.5 px-2 font-[inherit] cursor-pointer transition-colors"])},oe(y.label),11,ic)),64))])]),g("div",oc,[w[15]||(w[15]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"灵敏度",-1)),g("input",{type:"range",min:"0.5",max:"3",step:"0.1",value:e.s.audioSensitivity,onInput:w[4]||(w[4]=y=>{e.s.audioSensitivity=+y.target.value,ie(Ft)("as",ie(D).saveAudioSensitivity,e.s.audioSensitivity)}),class:"w-[100px]"},null,40,lc)]),g("div",cc,[w[16]||(w[16]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"平滑度",-1)),g("input",{type:"range",min:"0",max:"0.95",step:"0.05",value:e.s.audioSmoothing,onInput:w[5]||(w[5]=y=>{e.s.audioSmoothing=+y.target.value,ie(Ft)("am",ie(D).saveAudioSmoothing,e.s.audioSmoothing)}),class:"w-[100px]"},null,40,ac)])],64)):me("",!0)])):me("",!0),e.s.wallpaperType==="image"?(F(),j("div",uc,[g("div",fc,[g("div",dc,oe(e.s.imagePath||"未选择图片"),1),g("button",{class:"btn",onClick:N},"选择图片")])])):me("",!0),e.s.wallpaperType==="bing"?(F(),j("div",pc,[g("div",hc,[g("div",gc,[i.value.url?(F(),j("img",{key:0,src:o.value,class:"w-16 h-10 object-cover rounded flex-shrink-0"},null,8,vc)):me("",!0),g("div",mc,[g("div",bc,oe(i.value.copyright||"Bing 每日壁纸"),1),g("div",xc,oe(i.value.idx>0?`${i.value.idx} / ${i.value.total}`:""),1)])]),g("div",yc,[g("button",{class:"btn-sm",onClick:p},"◀"),g("button",{class:"btn-sm",onClick:u},"▶"),g("button",{class:"btn-sm",onClick:d},oe(i.value.fav?"★":"☆"),1)])]),g("div",_c,[w[17]||(w[17]=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(ps,{modelValue:e.s.bingAutoRefresh,"onUpdate:modelValue":w[6]||(w[6]=y=>e.s.bingAutoRefresh=y)},null,8,["modelValue"])]),l.value.length?(F(),j("div",wc,[w[18]||(w[18]=g("div",{class:"text-[10px] text-[var(--text-weak)] mb-1.5"},"收藏列表",-1)),g("div",Sc,[(F(!0),j(ee,null,_e(l.value,(y,K)=>(F(),j("div",{key:K,class:"cursor-pointer rounded overflow-hidden hover:opacity-80",onClick:ye=>_(y.idx)},[g("img",{src:y.thumb,class:"w-full h-10 object-cover rounded"},null,8,Tc)],8,Cc))),128))])])):me("",!0)])):me("",!0),e.s.wallpaperType==="color"?(F(),j("div",Ac,[g("div",Pc,[w[19]||(w[19]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"选择颜色",-1)),g("div",Oc,[g("button",{class:"btn",onClick:w[7]||(w[7]=y=>O.$emit("pick-solid"))},"纯色"),g("button",{class:"btn",onClick:w[8]||(w[8]=y=>O.$emit("pick-gradient"))},"渐变")])]),e.currentColor.c1?(F(),j("div",Ec,[g("div",Ic,[g("span",{class:"inline-block w-6 h-4 rounded-sm border border-[var(--input-border)]",style:Dt(X.value)},null,4),w[20]||(w[20]=g("span",{class:"text-[10px] text-[var(--text-weak)]"},"当前颜色",-1))]),g("button",{class:"btn",onClick:w[9]||(w[9]=y=>O.$emit("save-color"))},"收藏")])):me("",!0)])):me("",!0),e.s.savedColors.length&&e.s.wallpaperType==="color"?(F(),j("div",$c,[(F(!0),j(ee,null,_e(e.s.savedColors,(y,K)=>(F(),j("div",{key:K,class:"color-swatch",style:Dt(J(y)),onClick:ye=>O.$emit("apply-color",K),onContextmenu:Xs(ye=>O.$emit("remove-color",K),["prevent"])},[...w[21]||(w[21]=[g("span",{class:"del"},"×",-1)])],44,kc))),128))])):me("",!0)]))}}),Rc=Ps(Mc,[["__scopeId","data-v-d14b903b"]]),Fc={class:"mb-3"},Dc={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},jc={class:"flex justify-between items-center px-3.5 py-2"},Nc=ut({__name:"LayoutSection",props:{s:{}},setup(e){return(t,s)=>(F(),j("div",Fc,[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",Dc,[g("div",jc,[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=>ie(D).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),[[As,e.s.layout]])])])]))}}),Vc={class:"mb-3"},Lc={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Bc={class:"flex justify-between items-center px-3.5 py-2"},Hc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Kc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Uc={class:"text-[10px] text-[var(--text-weak)]"},Wc={class:"flex gap-1"},zc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Jc=["value"],Gc=ut({__name:"PhotoSection",props:{s:{}},setup(e){const t=e;ct(()=>[t.s.photoCard,t.s.photoFrameMode],([r,i])=>{D.saveToggles({photoCard:r,photoFrameMode:i})});async function s(){const r=await D.pickPhotoDir();r&&(t.s.photoDir=r)}async function n(){await D.clearPhotoDir(),t.s.photoDir=""}return(r,i)=>(F(),j("div",Vc,[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",Lc,[g("div",Bc,[i[4]||(i[4]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"相册展示")],-1)),se(ps,{modelValue:e.s.photoCard,"onUpdate:modelValue":i[0]||(i[0]=o=>e.s.photoCard=o)},null,8,["modelValue"])]),g("div",Hc,[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(ps,{modelValue:e.s.photoFrameMode,"onUpdate:modelValue":i[1]||(i[1]=o=>e.s.photoFrameMode=o)},null,8,["modelValue"])]),g("div",Kc,[g("div",Uc,oe(e.s.photoDir||"未选择目录"),1),g("div",Wc,[g("button",{class:"btn",onClick:s},"选择目录"),e.s.photoDir?(F(),j("button",{key:0,class:"btn-sm",onClick:n},"清除")):me("",!0)])]),g("div",zc,[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=>ie(D).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)]"},[(F(),j(ee,null,_e([5,10,15,20,30,60],o=>g("option",{key:o,value:o},oe(o)+" 秒",9,Jc)),64))],544),[[As,e.s.photoInterval]])])])]))}}),qc=Ps(Gc,[["__scopeId","data-v-bb86a692"]]),Yc={class:"mb-3"},Zc={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Xc={class:"flex justify-between items-center px-3.5 py-2"},Qc=["value"],ea={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},ta={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},sa={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)] relative"},na={class:"text-[var(--text)] text-[11px]"},ra={class:"city-panel"},ia={class:"city-col"},oa=["onClick"],la={class:"city-col"},ca=["onClick"],aa=ut({__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 a(u){t.s.city=u.id,i.value=u.name,n.value=!1,D.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);const u=Object.entries(t.s.citiesByProv);for(const[d,_]of u){const P=_.find(N=>N.id===t.s.city);if(P){r.value=d,i.value=P.name;break}}}),pn(()=>document.removeEventListener("click",p)),(u,d)=>(F(),j("div",Yc,[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",Zc,[g("div",Xc,[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]=_=>e.s.zodiac=_),onChange:d[1]||(d[1]=_=>ie(D).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)]"},[(F(),j(ee,null,_e(s,_=>g("option",{key:_,value:_},oe(_),9,Qc)),64))],544),[[As,e.s.zodiac]])]),g("div",ea,[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]=_=>e.s.knowledgeKeyword=_),onInput:d[3]||(d[3]=_=>ie(Ft)("kw",ie(D).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),[[Zs,e.s.knowledgeKeyword]])]),g("div",ta,[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]=_=>e.s.knowledgePrompt=_),onInput:d[5]||(d[5]=_=>ie(Ft)("kp",ie(D).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),[[Zs,e.s.knowledgePrompt]])]),g("div",sa,[d[11]||(d[11]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"天气城市",-1)),g("div",{class:De(["city-picker",{open:n.value}]),tabindex:"0",onClick:d[6]||(d[6]=_=>n.value=!n.value)},[g("span",na,oe(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",ra,[g("div",ia,[(F(!0),j(ee,null,_e(e.s.provinces,_=>(F(),j("div",{key:_,class:De({active:_===r.value}),onClick:Xs(P=>r.value=_,["stop"])},oe(_),11,oa))),128))]),g("div",la,[(F(!0),j(ee,null,_e(o.value,_=>(F(),j("div",{key:_.id,class:De({active:_.id===e.s.city}),onClick:Xs(P=>a(_),["stop"])},oe(_.name),11,ca))),128))])])],2)])])]))}}),ua=Ps(aa,[["__scopeId","data-v-1a50093a"]]),fa={class:"p-4 select-none overflow-y-auto"},da=ut({__name:"App",setup(e){const t=ot(!1),s=Vt({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,audioVizStyle:"bars",audioSensitivity:1.5,audioSmoothing:.7,audioColorScheme:"neon"}),n=Vt({c1:"",c2:"",gradient:!1});function r(u){const d=s.wallpaperType;s.wallpaperType=u,t.value&&(u==="theme"?D.saveWallpaperType("theme",s.theme):u==="bing"&&d!=="bing"&&D.enableBing())}async function i(){const u=await D.pickSolidColor();u&&(n.c1=u,n.c2="",n.gradient=!1)}async function o(){const u=await D.pickGradientColor();if(u){const d=u.split(",");n.c1=d[0],n.c2=d[1]||"",n.gradient=!0}}function l(){n.c1&&(D.addSavedColor(n.c1,n.c2,n.gradient),s.savedColors.push({color1:n.c1,color2:n.c2,gradient:n.gradient}))}function a(u){D.applySavedColor(u);const d=s.savedColors[u];n.c1=d.color1,n.c2=d.color2,n.gradient=d.gradient}async function p(u){await D.removeSavedColor(u),s.savedColors.splice(u,1)}return dn(async()=>{const u=await D.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 _=document.documentElement;D.resizeToFit&&D.resizeToFit(_.scrollWidth,_.scrollHeight+8)},100),t.value=!0}),(u,d)=>(F(),j("div",fa,[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(Rc,{s,onSetWpType:r,"current-color":n,onPickSolid:i,onPickGradient:o,onSaveColor:l,onApplyColor:a,onRemoveColor:p},null,8,["s","current-color"]),se(Nc,{s},null,8,["s"]),se(qc,{s},null,8,["s"]),se(ua,{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))]))}});Rl(da).mount("#app"); - +**/let Ys;const Bn=typeof window<"u"&&window.trustedTypes;if(Bn)try{Ys=Bn.createPolicy("vue",{createHTML:e=>e})}catch{}const oi=Ys?e=>Ys.createHTML(e):e=>e,cl="http://www.w3.org/2000/svg",al="http://www.w3.org/1998/Math/MathML",Le=typeof document<"u"?document:null,Hn=Le&&Le.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"?Le.createElementNS(cl,e):t==="mathml"?Le.createElementNS(al,e):s?Le.createElement(e,{is:s}):Le.createElement(e);return e==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:e=>Le.createTextNode(e),createComment:e=>Le.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Le.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 a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}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 vl(e,t,s){const n=e.style,r=Q(s);let i=!1;if(s&&!r){if(t)if(Q(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();s[l]==null&&Pt(n,l,"")}else for(const o in t)s[o]==null&&Pt(n,o,"");for(const o in s){o==="display"&&(i=!0);const l=s[o];l!=null?bl(e,o,!Q(t)&&t?t[o]:void 0,l)||Pt(n,o,l):Pt(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 Pt(e,t,s){if(M(s))s.forEach(n=>Pt(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=ml(e,t);Un.test(s)?e.setProperty(at(n),s.replace(Un,""),"important"):e[n]=s}}const Wn=["Webkit","Moz","ms"],Ns={};function ml(e,t){const s=Ns[t];if(s)return s;let n=we(t);if(n!=="filter"&&n in e)return Ns[t]=n;n=lr(n);for(let r=0;rVs||(wl.then(()=>Vs=0),Vs=Date.now());function Cl(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;Ne(Tl(n,s.value),t,5,[n])};return s.value=e,s.attached=Sl(),s}function Tl(e,t){if(M(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,Al=(e,t,s,n,r,i)=>{const o=r==="svg";t==="class"?dl(e,n,o):t==="style"?vl(e,s,n):hs(t)?gs(t)||yl(e,t,s,n,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Pl(e,t,n,o))?(Jn(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Gn(e,t,n,o,i,t!=="value")):e._isVueCE&&(Ol(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Q(n)))?Jn(e,we(t),n,i,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Gn(e,t,n,o))};function Pl(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Zn(t)&&R(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)&&Q(s)?!1:t in e}function Ol(e,t){const s=e._def.props;if(!s)return!1;const n=we(t);return Array.isArray(s)?s.some(r=>we(r)===n):Object.keys(s).some(r=>we(r)===n)}const fs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return M(t)?s=>ts(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 mt=Symbol("_assign");function Qn(e,t,s){return t&&(e=e.trim()),s&&(e=bs(e)),e}const Zs={created(e,{modifiers:{lazy:t,trim:s,number:n}},r){e[mt]=fs(r);const i=n||r.props&&r.props.type==="number";nt(e,t?"change":"input",o=>{o.target.composing||e[mt](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[mt]=fs(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?bs(e.value):e.value,a=t??"";if(l===a)return;const p=e.getRootNode();(p instanceof Document||p instanceof ShadowRoot)&&p.activeElement===e&&e.type!=="range"&&(n&&t===s||r&&e.value.trim()===a)||(e.value=a)}},As={deep:!0,created(e,{value:t,modifiers:{number:s}},n){const r=vs(t);nt(e,"change",()=>{const i=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>s?bs(ds(o)):ds(o));e[mt](e.multiple?r?new Set(i):i:i[0]),e._assigning=!0,Or(()=>{e._assigning=!1})}),e[mt]=fs(n)},mounted(e,{value:t}){er(e,t)},beforeUpdate(e,t,s){e[mt]=fs(s)},updated(e,{value:t}){e._assigning||er(e,t)}};function er(e,t){const s=e.multiple,n=M(t);if(!(s&&!n&&!vs(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(Ut(ds(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function ds(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))},Xs=(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=Ml().createApp(...e),{mount:s}=t;return t.mount=n=>{const r=Dl(n);if(!r)return;const i=t._component;!R(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 Q(e)?document.querySelector(e):e}const L=window,D={loadAllSettings:()=>L.loadAllSettings(),saveToggles:e=>L.saveToggles(JSON.stringify(e)),saveLayout:e=>L.saveLayout(e),saveZodiac:e=>L.saveZodiac(e),saveCity:e=>L.saveCity(e),saveWallpaperType:(e,t)=>L.saveWallpaperType(e,t),pickLocalImage:()=>L.pickLocalImage(),enableBing:()=>L.enableBing(),bingPrev:()=>L.bingPrev(),bingNext:()=>L.bingNext(),bingToggleFavorite:()=>L.bingToggleFavorite(),getBingInfo:()=>L.getBingInfo(),saveBingAutoRefresh:e=>L.saveBingAutoRefresh(e),getBingFavorites:()=>L.getBingFavorites(),bingSetByIdx:e=>L.bingSetByIdx(e),bingThumbDataURI:e=>L.bingThumbDataURI(e),pickSolidColor:()=>L.pickSolidColor(),pickGradientColor:()=>L.pickGradientColor(),addSavedColor:(e,t,s)=>L.addSavedColor(e,t,s),removeSavedColor:e=>L.removeSavedColor(e),applySavedColor:e=>L.applySavedColor(e),saveWallpaperText:e=>L.saveWallpaperText(e),saveKnowledgeKeyword:e=>L.saveKnowledgeKeyword(e),saveKnowledgePrompt:e=>L.saveKnowledgePrompt(e),pickPhotoDir:()=>L.pickPhotoDir(),clearPhotoDir:()=>L.clearPhotoDir(),savePhotoInterval:e=>L.savePhotoInterval(e),resizeToFit:(e,t)=>e.resizeToFit(e,t),saveAudioVizStyle:e=>L.saveAudioVizStyle(e),saveAudioSensitivity:e=>L.saveAudioSensitivity(e),saveAudioSmoothing:e=>L.saveAudioSmoothing(e),saveAudioColorScheme:e=>L.saveAudioColorScheme(e)},jl={class:"switch"},Nl=["checked"],Vl=ut({__name:"ToggleSwitch",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(e){return(t,s)=>(F(),j("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},ps=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=ut({__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];D.saveToggles(r)}),(r,i)=>(F(),j("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,[(F(),j(ee,null,_e(s,o=>g("div",{key:o.key,class:De(["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,oe(o.label),1),o.desc?(F(),j("div",Kl,oe(o.desc),1)):me("",!0)]),se(ps,{modelValue:e.s[o.key],"onUpdate:modelValue":l=>e.s[o.key]=l},null,8,["modelValue","onUpdate:modelValue"])],2)),64))])]))}}),sr=new Map;function Ft(e,t,s,n=500){clearTimeout(sr.get(e)),sr.set(e,setTimeout(()=>t(s),n))}const Wl={class:"mb-3"},zl={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Gl={class:"flex justify-between items-center px-3.5 py-2"},Jl={class:"flex gap-1"},ql=["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={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},tc={class:"flex flex-wrap gap-1 justify-end"},sc=["onClick"],nc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},rc={class:"flex gap-1"},ic=["onClick"],oc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},lc=["value"],cc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},ac=["value"],uc={key:1,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},fc={class:"flex justify-between items-center px-3.5 py-2"},dc={class:"text-[10px] text-[var(--text-weak)] truncate mr-2"},pc={key:2,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},hc={class:"flex justify-between items-center px-3.5 py-2"},gc={class:"flex items-center gap-2 min-w-0"},vc=["src"],mc={class:"min-w-0"},bc={class:"text-xs font-medium text-[var(--text-muted)] truncate"},xc={class:"text-[10px] text-[var(--text-weak)]"},yc={class:"flex gap-1 flex-shrink-0"},_c={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},wc={key:0,class:"px-3.5 py-2 border-t border-[var(--card-divider)]"},Sc={class:"grid grid-cols-4 gap-1.5"},Cc=["onClick"],Tc=["src"],Ac={key:3,class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg mt-1.5"},Pc={class:"flex justify-between items-center px-3.5 py-2"},Oc={class:"flex gap-1"},Ec={key:0,class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Ic={class:"flex items-center gap-1.5"},$c={key:4,class:"flex flex-wrap gap-1.5 mt-1.5 px-0.5"},kc=["onClick","onContextmenu"],Mc=ut({__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=[{value:"bars",label:"柱状"},{value:"waveform",label:"波形"},{value:"circular",label:"环形"},{value:"particles",label:"粒子"},{value:"ripples",label:"涟漪"},{value:"text",label:"文字"},{value:"stars",label:"星空"},{value:"dna",label:"DNA"},{value:"matrix",label:"矩阵"},{value:"jellyfish",label:"水母"},{value:"aurora",label:"极光"}],r=[{value:"neon",label:"霓虹"},{value:"ocean",label:"海洋"},{value:"fire",label:"火焰"},{value:"rainbow",label:"彩虹"}],i=ot({date:"",title:"",copyright:"",url:"",fav:!1,idx:0,total:0}),o=ot(""),l=ot([]);async function a(){const O=await D.getBingInfo(),w=JSON.parse(O);if(i.value=w,w.url){const _=w.url.replace("_1920x1080","_400x240");o.value=_!==w.url?_:await D.bingThumbDataURI(w.url.split("/").pop()||"")}}async function p(){i.value=JSON.parse(await D.bingPrev())}async function f(){i.value=JSON.parse(await D.bingNext())}async function d(){i.value=JSON.parse(await D.bingToggleFavorite()),await P()}async function v(O){i.value=JSON.parse(await D.bingSetByIdx(O))}async function P(){const O=await D.getBingFavorites(),w=JSON.parse(O);l.value=await Promise.all(w.map(async _=>({idx:parseInt(_.match(/(\d+)/)?.[1]||"0",10),thumb:await D.bingThumbDataURI(_)})))}ct(()=>t.s.bingAutoRefresh,O=>D.saveBingAutoRefresh(O)),ct(()=>t.s.wallpaperType,O=>{O==="bing"&&(a(),P())},{immediate:!0});async function N(){const O=await D.pickLocalImage();O&&(t.s.imagePath=O)}function $(O,w,_){return{background:_&&w?`linear-gradient(135deg,${O},${w})`:O}}const X=us(()=>t.currentColor.c1?$(t.currentColor.c1,t.currentColor.c2,t.currentColor.gradient):{});function G(O){return $(O.color1,O.color2,O.gradient)}return(O,w)=>(F(),j("div",Wl,[w[22]||(w[22]=g("div",{class:"text-[10px] font-semibold text-[var(--text-weak)] uppercase tracking-[1.5px] mb-1 pl-0.5"},"壁纸",-1)),g("div",zl,[g("div",Gl,[w[10]||(w[10]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"类型选择",-1)),g("div",Jl,[(F(),j(ee,null,_e(s,_=>g("button",{key:_.value,onClick:K=>O.$emit("set-wp-type",_.value),class:De([e.s.wallpaperType===_.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"])},oe(_.label),11,ql)),64))])])]),e.s.wallpaperType==="theme"?(F(),j("div",Yl,[g("div",Zl,[w[11]||(w[11]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"选择主题",-1)),lt(g("select",{"onUpdate:modelValue":w[0]||(w[0]=_=>e.s.theme=_),onChange:w[1]||(w[1]=_=>ie(D).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)]"},[(F(!0),j(ee,null,_e(e.s.themes,_=>(F(),j("option",{key:_.value,value:_.value},oe(_.label),9,Xl))),128))],544),[[As,e.s.theme]])]),e.s.theme==="text"?(F(),j("div",Ql,[w[12]||(w[12]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"自定义文字",-1)),lt(g("input",{type:"text","onUpdate:modelValue":w[2]||(w[2]=_=>e.s.wallpaperText=_),onInput:w[3]||(w[3]=_=>ie(Ft)("wt",ie(D).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),[[Zs,e.s.wallpaperText]])])):me("",!0),e.s.theme==="audio-viz"?(F(),j(ee,{key:1},[g("div",ec,[w[13]||(w[13]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"可视化样式",-1)),g("div",tc,[(F(),j(ee,null,_e(n,_=>g("button",{key:_.value,onClick:K=>{e.s.audioVizStyle=_.value,ie(D).saveAudioVizStyle(_.value)},class:De([e.s.audioVizStyle===_.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-0.5 px-2 font-[inherit] cursor-pointer transition-colors"])},oe(_.label),11,sc)),64))])]),g("div",nc,[w[14]||(w[14]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"配色方案",-1)),g("div",rc,[(F(),j(ee,null,_e(r,_=>g("button",{key:_.value,onClick:K=>{e.s.audioColorScheme=_.value,ie(D).saveAudioColorScheme(_.value)},class:De([e.s.audioColorScheme===_.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-0.5 px-2 font-[inherit] cursor-pointer transition-colors"])},oe(_.label),11,ic)),64))])]),g("div",oc,[w[15]||(w[15]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"灵敏度",-1)),g("input",{type:"range",min:"0.5",max:"3",step:"0.1",value:e.s.audioSensitivity,onInput:w[4]||(w[4]=_=>{e.s.audioSensitivity=+_.target.value,ie(Ft)("as",ie(D).saveAudioSensitivity,e.s.audioSensitivity)}),class:"w-[100px]"},null,40,lc)]),g("div",cc,[w[16]||(w[16]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"平滑度",-1)),g("input",{type:"range",min:"0",max:"0.95",step:"0.05",value:e.s.audioSmoothing,onInput:w[5]||(w[5]=_=>{e.s.audioSmoothing=+_.target.value,ie(Ft)("am",ie(D).saveAudioSmoothing,e.s.audioSmoothing)}),class:"w-[100px]"},null,40,ac)])],64)):me("",!0)])):me("",!0),e.s.wallpaperType==="image"?(F(),j("div",uc,[g("div",fc,[g("div",dc,oe(e.s.imagePath||"未选择图片"),1),g("button",{class:"btn",onClick:N},"选择图片")])])):me("",!0),e.s.wallpaperType==="bing"?(F(),j("div",pc,[g("div",hc,[g("div",gc,[i.value.url?(F(),j("img",{key:0,src:o.value,class:"w-16 h-10 object-cover rounded flex-shrink-0"},null,8,vc)):me("",!0),g("div",mc,[g("div",bc,oe(i.value.copyright||"Bing 每日壁纸"),1),g("div",xc,oe(i.value.idx>0?`${i.value.idx} / ${i.value.total}`:""),1)])]),g("div",yc,[g("button",{class:"btn-sm",onClick:p},"◀"),g("button",{class:"btn-sm",onClick:f},"▶"),g("button",{class:"btn-sm",onClick:d},oe(i.value.fav?"★":"☆"),1)])]),g("div",_c,[w[17]||(w[17]=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(ps,{modelValue:e.s.bingAutoRefresh,"onUpdate:modelValue":w[6]||(w[6]=_=>e.s.bingAutoRefresh=_)},null,8,["modelValue"])]),l.value.length?(F(),j("div",wc,[w[18]||(w[18]=g("div",{class:"text-[10px] text-[var(--text-weak)] mb-1.5"},"收藏列表",-1)),g("div",Sc,[(F(!0),j(ee,null,_e(l.value,(_,K)=>(F(),j("div",{key:K,class:"cursor-pointer rounded overflow-hidden hover:opacity-80",onClick:ye=>v(_.idx)},[g("img",{src:_.thumb,class:"w-full h-10 object-cover rounded"},null,8,Tc)],8,Cc))),128))])])):me("",!0)])):me("",!0),e.s.wallpaperType==="color"?(F(),j("div",Ac,[g("div",Pc,[w[19]||(w[19]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"选择颜色",-1)),g("div",Oc,[g("button",{class:"btn",onClick:w[7]||(w[7]=_=>O.$emit("pick-solid"))},"纯色"),g("button",{class:"btn",onClick:w[8]||(w[8]=_=>O.$emit("pick-gradient"))},"渐变")])]),e.currentColor.c1?(F(),j("div",Ec,[g("div",Ic,[g("span",{class:"inline-block w-6 h-4 rounded-sm border border-[var(--input-border)]",style:Dt(X.value)},null,4),w[20]||(w[20]=g("span",{class:"text-[10px] text-[var(--text-weak)]"},"当前颜色",-1))]),g("button",{class:"btn",onClick:w[9]||(w[9]=_=>O.$emit("save-color"))},"收藏")])):me("",!0)])):me("",!0),e.s.savedColors.length&&e.s.wallpaperType==="color"?(F(),j("div",$c,[(F(!0),j(ee,null,_e(e.s.savedColors,(_,K)=>(F(),j("div",{key:K,class:"color-swatch",style:Dt(G(_)),onClick:ye=>O.$emit("apply-color",K),onContextmenu:Xs(ye=>O.$emit("remove-color",K),["prevent"])},[...w[21]||(w[21]=[g("span",{class:"del"},"×",-1)])],44,kc))),128))])):me("",!0)]))}}),Rc=Ps(Mc,[["__scopeId","data-v-d14b903b"]]),Fc={class:"mb-3"},Dc={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},jc={class:"flex justify-between items-center px-3.5 py-2"},Nc=ut({__name:"LayoutSection",props:{s:{}},setup(e){return(t,s)=>(F(),j("div",Fc,[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",Dc,[g("div",jc,[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=>ie(D).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),[[As,e.s.layout]])])])]))}}),Vc={class:"mb-3"},Lc={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Bc={class:"flex justify-between items-center px-3.5 py-2"},Hc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Kc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Uc={class:"text-[10px] text-[var(--text-weak)]"},Wc={class:"flex gap-1"},zc={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},Gc=["value"],Jc=ut({__name:"PhotoSection",props:{s:{}},setup(e){const t=e;ct(()=>[t.s.photoCard,t.s.photoFrameMode],([r,i])=>{D.saveToggles({photoCard:r,photoFrameMode:i})});async function s(){const r=await D.pickPhotoDir();r&&(t.s.photoDir=r)}async function n(){await D.clearPhotoDir(),t.s.photoDir=""}return(r,i)=>(F(),j("div",Vc,[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",Lc,[g("div",Bc,[i[4]||(i[4]=g("div",null,[g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"相册展示")],-1)),se(ps,{modelValue:e.s.photoCard,"onUpdate:modelValue":i[0]||(i[0]=o=>e.s.photoCard=o)},null,8,["modelValue"])]),g("div",Hc,[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(ps,{modelValue:e.s.photoFrameMode,"onUpdate:modelValue":i[1]||(i[1]=o=>e.s.photoFrameMode=o)},null,8,["modelValue"])]),g("div",Kc,[g("div",Uc,oe(e.s.photoDir||"未选择目录"),1),g("div",Wc,[g("button",{class:"btn",onClick:s},"选择目录"),e.s.photoDir?(F(),j("button",{key:0,class:"btn-sm",onClick:n},"清除")):me("",!0)])]),g("div",zc,[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=>ie(D).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)]"},[(F(),j(ee,null,_e([5,10,15,20,30,60],o=>g("option",{key:o,value:o},oe(o)+" 秒",9,Gc)),64))],544),[[As,e.s.photoInterval]])])])]))}}),qc=Ps(Jc,[["__scopeId","data-v-bb86a692"]]),Yc={class:"mb-3"},Zc={class:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-lg"},Xc={class:"flex justify-between items-center px-3.5 py-2"},Qc=["value"],ea={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},ta={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)]"},sa={class:"flex justify-between items-center px-3.5 py-2 border-t border-[var(--card-divider)] relative"},na={class:"text-[var(--text)] text-[11px]"},ra={class:"city-panel"},ia={class:"city-col"},oa=["onClick"],la={class:"city-col"},ca=["onClick"],aa=ut({__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 a(f){t.s.city=f.id,i.value=f.name,n.value=!1,D.saveCity(f.id)}function p(f){const d=document.querySelector(".city-picker");d&&!d.contains(f.target)&&(n.value=!1)}return dn(()=>{document.addEventListener("click",p);const f=Object.entries(t.s.citiesByProv);for(const[d,v]of f){const P=v.find(N=>N.id===t.s.city);if(P){r.value=d,i.value=P.name;break}}}),pn(()=>document.removeEventListener("click",p)),(f,d)=>(F(),j("div",Yc,[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",Zc,[g("div",Xc,[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]=v=>e.s.zodiac=v),onChange:d[1]||(d[1]=v=>ie(D).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)]"},[(F(),j(ee,null,_e(s,v=>g("option",{key:v,value:v},oe(v),9,Qc)),64))],544),[[As,e.s.zodiac]])]),g("div",ea,[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]=v=>e.s.knowledgeKeyword=v),onInput:d[3]||(d[3]=v=>ie(Ft)("kw",ie(D).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),[[Zs,e.s.knowledgeKeyword]])]),g("div",ta,[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]=v=>e.s.knowledgePrompt=v),onInput:d[5]||(d[5]=v=>ie(Ft)("kp",ie(D).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),[[Zs,e.s.knowledgePrompt]])]),g("div",sa,[d[11]||(d[11]=g("div",{class:"text-xs font-medium text-[var(--text-muted)]"},"天气城市",-1)),g("div",{class:De(["city-picker",{open:n.value}]),tabindex:"0",onClick:d[6]||(d[6]=v=>n.value=!n.value)},[g("span",na,oe(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",ra,[g("div",ia,[(F(!0),j(ee,null,_e(e.s.provinces,v=>(F(),j("div",{key:v,class:De({active:v===r.value}),onClick:Xs(P=>r.value=v,["stop"])},oe(v),11,oa))),128))]),g("div",la,[(F(!0),j(ee,null,_e(o.value,v=>(F(),j("div",{key:v.id,class:De({active:v.id===e.s.city}),onClick:Xs(P=>a(v),["stop"])},oe(v.name),11,ca))),128))])])],2)])])]))}}),ua=Ps(aa,[["__scopeId","data-v-1a50093a"]]),fa={class:"p-4 select-none overflow-y-auto"},da=ut({__name:"App",setup(e){const t=ot(!1),s=Vt({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,audioVizStyle:"bars",audioSensitivity:1.5,audioSmoothing:.7,audioColorScheme:"neon"});async function n(){const d=await D.loadAllSettings(),v=JSON.parse(d);v.lightTheme&&(document.documentElement.className="light"),Object.assign(s,{...v,citiesByProv:v.citiesByProv||{},provinces:v.provinces||[],themes:v.themes||[],savedColors:v.savedColors||[]}),v.color1&&(r.c1=v.color1,r.c2=v.color2||"",r.gradient=v.colorGradient||!1)}window.__refreshSettings=n;const r=Vt({c1:"",c2:"",gradient:!1});function i(d){const v=s.wallpaperType;s.wallpaperType=d,t.value&&(d==="theme"?D.saveWallpaperType("theme",s.theme):d==="bing"&&v!=="bing"&&D.enableBing())}async function o(){const d=await D.pickSolidColor();d&&(r.c1=d,r.c2="",r.gradient=!1)}async function l(){const d=await D.pickGradientColor();if(d){const v=d.split(",");r.c1=v[0],r.c2=v[1]||"",r.gradient=!0}}function a(){r.c1&&(D.addSavedColor(r.c1,r.c2,r.gradient),s.savedColors.push({color1:r.c1,color2:r.c2,gradient:r.gradient}))}function p(d){D.applySavedColor(d);const v=s.savedColors[d];r.c1=v.color1,r.c2=v.color2,r.gradient=v.gradient}async function f(d){await D.removeSavedColor(d),s.savedColors.splice(d,1)}return dn(async()=>{await n(),setTimeout(()=>{const d=document.documentElement;D.resizeToFit&&D.resizeToFit(d.scrollWidth,d.scrollHeight+8)},100),t.value=!0}),(d,v)=>(F(),j("div",fa,[v[0]||(v[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(Rc,{s,onSetWpType:i,"current-color":r,onPickSolid:o,onPickGradient:l,onSaveColor:a,onApplyColor:p,onRemoveColor:f},null,8,["s","current-color"]),se(Nc,{s},null,8,["s"]),se(qc,{s},null,8,["s"]),se(ua,{s},null,8,["s"]),v[1]||(v[1]=g("div",{class:"text-center text-[11px] text-[var(--footer-color)] mt-3 py-1.5 tracking-wide"},"u-desktop v1.0",-1))]))}});Rl(da).mount("#app"); +
    diff --git a/win32.go b/win32.go index 37b3507..5dab9f5 100644 --- a/win32.go +++ b/win32.go @@ -30,6 +30,14 @@ var ( procTranslateMessage = user32.NewProc("TranslateMessage") procDispatchMessageW = user32.NewProc("DispatchMessageW") procGetParent = user32.NewProc("GetParent") + procCallWindowProcW = user32.NewProc("CallWindowProcW") + procSetForegroundWindow = user32.NewProc("SetForegroundWindow") + procScreenToClient = user32.NewProc("ScreenToClient") + procEnumChildWindows = user32.NewProc("EnumChildWindows") + procGetWindow = user32.NewProc("GetWindow") + procSetWindowsHookExW = user32.NewProc("SetWindowsHookExW") + procCallNextHookEx = user32.NewProc("CallNextHookEx") + procWindowFromPoint = user32.NewProc("WindowFromPoint") ) var wv webview2.WebView @@ -52,14 +60,149 @@ const ( wsMaxbox = uintptr(0x00010000) ) +const gwlpWndProc = ^uintptr(3) // GWLP_WNDPROC = -4 + const ( wsExTransparent = uintptr(0x00000020) wsExLayered = uintptr(0x00080000) wsExToolwindow = uintptr(0x00000080) ) +const ( + gwChild = 5 // GW_CHILD + gwHwndNext = 2 // GW_HWNDNEXT +) + var htmlQueue = make(chan string, 1) +// overlay 窗口子类化:动态 hit test +var ( + overlayOldWndProc uintptr + overlayWndProcCb uintptr + overlayHitRect struct{ Left, Top, Right, Bottom int32 } + overlayHasHitRect bool + childOldWndProcs = make(map[uintptr]uintptr) // 子窗口 hwnd -> 旧 wndproc +) + +// overlayWndProc 拦截 WM_NCHITTEST:交互区域返回 HTCLIENT,其余 HTTRANSPARENT(穿透) +// 注意:由于 overlay 在桌面图标层之下,此 wndproc 主要作为备用 +func overlayWndProc(hwnd, msg, wp, lp uintptr) uintptr { + if msg == 0x0084 && overlayHasHitRect { // WM_NCHITTEST + x := int32(int16(lp & 0xFFFF)) + y := int32(int16(lp >> 16)) + pt := struct{ X, Y int32 }{x, y} + procScreenToClient.Call(wvHwnd, uintptr(unsafe.Pointer(&pt))) + if pt.X >= overlayHitRect.Left && pt.X <= overlayHitRect.Right && + pt.Y >= overlayHitRect.Top && pt.Y <= overlayHitRect.Bottom { + return uintptr(1) // HTCLIENT + } + return 0xFFFFFFFF // HTTRANSPARENT + } + // 查找该窗口的旧 wndproc + oldProc := overlayOldWndProc + if v, ok := childOldWndProcs[hwnd]; ok { + oldProc = v + } + r, _, _ := procCallWindowProcW.Call(oldProc, hwnd, msg, wp, lp) + return r +} + +// installMouseHook 安装 WH_MOUSE_LL 全局钩子拦截刷新按钮点击 +// overlay 在 WorkerW 中,位于桌面图标层之下,WM_NCHITTEST 无法到达 +// 因此用低级鼠标钩子直接在 Go 层处理点击 +var llMouseHook uintptr +var llMouseHookCb uintptr // 防止 GC 回收回调函数 +var progmanHwnd uintptr // Progman 句柄,用于判断点击是否在桌面 +var btnHoverActive bool // 按钮悬停状态,避免重复推送 JS + +// isMouseInBtnRect 检查鼠标是否在按钮 hit rect 内(屏幕坐标转 wvHwnd 客户端坐标) +func isMouseInBtnRect(screenX, screenY int32) bool { + if !overlayHasHitRect { + return false + } + pt := struct{ X, Y int32 }{screenX, screenY} + procScreenToClient.Call(wvHwnd, uintptr(unsafe.Pointer(&pt))) + return pt.X >= overlayHitRect.Left && pt.X <= overlayHitRect.Right && + pt.Y >= overlayHitRect.Top && pt.Y <= overlayHitRect.Bottom +} + +// isDesktopAtPoint 检查屏幕坐标处是否为桌面背景(无其他窗口遮挡) +func isDesktopAtPoint(screenX, screenY int32) bool { + ptPacked := uintptr(screenX) | (uintptr(uint32(screenY)) << 32) + hwndAt, _, _ := procWindowFromPoint.Call(ptPacked) + for h := hwndAt; h != 0; h, _, _ = procGetParent.Call(h) { + if h == progmanHwnd { + return true + } + } + return false +} + +func installMouseHook() { + llMouseHookCb = windows.NewCallback(func(nCode, wp, lp uintptr) uintptr { + if int32(nCode) >= 0 { + type msll struct { + X, Y int32 + MouseData uint32 + Flags uint32 + Time uint32 + DwExtraInfo uintptr + } + s := (*msll)(unsafe.Pointer(lp)) + + switch wp { + case 0x0200: // WM_MOUSEMOVE — 悬停检测 + inBtn := isMouseInBtnRect(s.X, s.Y) + if inBtn && !btnHoverActive { + btnHoverActive = true + evalJS("document.querySelector('.knowledge-refresh-btn')?.classList.add('hover-active')") + } else if !inBtn && btnHoverActive { + btnHoverActive = false + evalJS("document.querySelector('.knowledge-refresh-btn')?.classList.remove('hover-active')") + } + + case 0x0201: // WM_LBUTTONDOWN — 点击 + if !isDesktopAtPoint(s.X, s.Y) { + break + } + if isMouseInBtnRect(s.X, s.Y) { + pushKnowledgeLoading("") + go fetchAndPushKnowledge() + return 1 + } + } + } + r, _, _ := procCallNextHookEx.Call(llMouseHook, nCode, wp, lp) + return r + }) + var llMouseHookVal uintptr + llMouseHookVal, _, _ = procSetWindowsHookExW.Call( + 14, // WH_MOUSE_LL + llMouseHookCb, 0, 0, + ) + llMouseHook = llMouseHookVal + log.Printf("mouse hook installed, progman=0x%x, hook=0x%x", progmanHwnd, llMouseHookVal) +} + +// subclassOverlayWindows 子类化 WebView2 父窗口及其所有子窗口 +func subclassOverlayWindows() { + overlayWndProcCb = windows.NewCallback(overlayWndProc) + oldProc, _, _ := procSetWindowLongPtrW.Call(wvHwnd, gwlpWndProc, overlayWndProcCb) + overlayOldWndProc = oldProc + subclassChildTree(wvHwnd) +} + +// subclassChildTree 递归子类化 parent 下的所有子窗口 +func subclassChildTree(parent uintptr) { + child, _, _ := procGetWindow.Call(parent, uintptr(gwChild)) + for child != 0 { + old, _, _ := procSetWindowLongPtrW.Call(child, gwlpWndProc, overlayWndProcCb) + childOldWndProcs[child] = old + subclassChildTree(child) + child, _, _ = procGetWindow.Call(child, uintptr(gwHwndNext)) + } +} + var ( classProgman = uintptr(unsafe.Pointer(windows.StringToUTF16Ptr("Progman"))) classShellDefView = uintptr(unsafe.Pointer(windows.StringToUTF16Ptr("SHELLDLL_DefView"))) @@ -85,6 +228,7 @@ func findWorkerW() uintptr { log.Println("findWorkerW: Progman not found") return 0 } + progmanHwnd = progman // 保存 Progman 句柄供鼠标钩子判断 // 发送 0x052C 触发 Progman 创建 WorkerW var result uintptr procSendMessageTimeoutW.Call(progman, 0x052C, 0, 0, 0x0000, 1000, uintptr(unsafe.Pointer(&result)))