Greasy Fork

Greasy Fork is available in English.

DoubanFlix - 在豆瓣电影页面获取添加资源链接(网盘,磁力,在线)

在豆瓣电影页面获取添加资源链接

当前为 2025-09-27 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         DoubanFlix - 在豆瓣电影页面获取添加资源链接(网盘,磁力,在线)
// @namespace    http://tampermonkey.net/
// @version      1.0.2
// @description  在豆瓣电影页面获取添加资源链接
// @author       Moz
// @match        https://movie.douban.com/subject/*
// @grant        none
// @license      MIT
// @icon         https://cdn.zerror.cc/images/%E8%B1%86%E7%93%A3%E7%BD%91.png
// ==/UserScript==

// 注入CSS样式
(function() {
    const style = document.createElement('style');
    style.textContent = `.auth-container[data-v-680e5434]{padding:16px}.user-info[data-v-680e5434]{text-align:center}.user-header[data-v-680e5434]{display:flex;align-items:center;margin-bottom:16px;padding:12px;background:#f8f9fa;border-radius:8px;position:relative}.user-avatar[data-v-680e5434]{width:40px;height:40px;border-radius:50%;background:#007bff;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;margin-right:12px}.user-details[data-v-680e5434]{flex:1;text-align:left}.user-display-name[data-v-680e5434]{font-size:14px;font-weight:500;color:#333;margin-bottom:2px}.user-email[data-v-680e5434]{font-size:12px;color:#666;margin-bottom:2px}.user-status[data-v-680e5434]{font-size:12px;color:#28a745}.edit-nickname-btn[data-v-680e5434]{position:absolute;top:12px;right:12px;padding:4px 8px;background:#e3f2fd;color:#1976d2;border:1px solid #bbdefb;border-radius:4px;cursor:pointer;font-size:11px;transition:all .2s}.edit-nickname-btn[data-v-680e5434]:hover{background:#bbdefb;color:#0d47a1}.nickname-edit-form[data-v-680e5434]{margin-bottom:16px;padding:12px;background:#fff;border:1px solid #dee2e6;border-radius:6px}.nickname-hint[data-v-680e5434]{font-size:11px;color:#666;margin-top:4px}.nickname-actions[data-v-680e5434]{display:flex;gap:8px;margin-top:12px}.save-nickname-btn[data-v-680e5434]{padding:6px 12px;background:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:background-color .2s}.save-nickname-btn[data-v-680e5434]:hover:not(:disabled){background:#218838}.save-nickname-btn[data-v-680e5434]:disabled{background:#6c757d;cursor:not-allowed}.cancel-nickname-btn[data-v-680e5434]{padding:6px 12px;background:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:background-color .2s}.cancel-nickname-btn[data-v-680e5434]:hover{background:#5a6268}.sign-out-btn[data-v-680e5434]{width:100%;padding:8px 16px;background:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px;transition:background-color .2s}.sign-out-btn[data-v-680e5434]:hover{background:#c82333}.auth-forms[data-v-680e5434]{width:100%}.auth-tabs[data-v-680e5434]{display:flex;margin-bottom:16px;background:#e9ecef;border-radius:6px;padding:2px}.auth-tab[data-v-680e5434]{flex:1;padding:8px 12px;border:none;background:transparent;color:#666;font-size:13px;border-radius:4px;cursor:pointer;transition:all .2s}.auth-tab[data-v-680e5434]:hover{background:#dee2e6}.auth-tab.active[data-v-680e5434]{background:#007bff;color:#fff;font-weight:500}.auth-form[data-v-680e5434]{display:flex;flex-direction:column;gap:12px}.form-group[data-v-680e5434]{display:flex;flex-direction:column}.form-group label[data-v-680e5434]{font-size:12px;color:#333;margin-bottom:4px;font-weight:500}.form-input[data-v-680e5434]{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:13px;transition:border-color .2s}.form-input[data-v-680e5434]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.auth-submit-btn[data-v-680e5434]{padding:10px 16px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500;transition:background-color .2s;margin-top:8px}.auth-submit-btn[data-v-680e5434]:hover:not(:disabled){background:#0056b3}.auth-submit-btn[data-v-680e5434]:disabled{background:#6c757d;cursor:not-allowed}.forgot-password-link[data-v-680e5434]{text-align:center;margin-top:15px}.link-btn[data-v-680e5434]{background:none;border:none;color:#007bff;cursor:pointer;text-decoration:underline;font-size:14px;padding:0}.link-btn[data-v-680e5434]:hover{color:#0056b3}.link-btn[data-v-680e5434]:disabled{color:#6c757d;cursor:not-allowed;text-decoration:none}.back-button[data-v-680e5434]{margin-bottom:20px}.back-btn[data-v-680e5434]{background:none;border:none;color:#6c757d;cursor:pointer;font-size:14px;padding:8px 0;display:flex;align-items:center;gap:5px}.back-btn[data-v-680e5434]:hover{color:#495057}.form-title[data-v-680e5434]{font-size:24px;font-weight:700;text-align:center;margin-bottom:10px;color:#333}.form-description[data-v-680e5434]{font-size:14px;color:#6c757d;text-align:center;margin-bottom:25px;line-height:1.5}.proof-progress[data-v-680e5434]{margin:20px 0}.progress-text[data-v-680e5434]{font-size:14px;color:#6c757d;text-align:center;margin-bottom:10px}.progress-bar[data-v-680e5434]{width:100%;height:8px;background-color:#e9ecef;border-radius:4px;overflow:hidden}.progress-fill[data-v-680e5434]{height:100%;background:linear-gradient(90deg,#007bff,#0056b3);transition:width .3s ease;border-radius:4px}.resend-code[data-v-680e5434]{text-align:center;margin-top:15px}.error-message[data-v-680e5434]{padding:8px 12px;background:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:4px;font-size:12px;margin-top:12px}.success-message[data-v-680e5434]{padding:8px 12px;background:#d4edda;color:#155724;border:1px solid #c3e6cb;border-radius:4px;font-size:12px;margin-top:12px}.custom-select[data-v-411df2ed]{position:relative;width:100%;font-size:14px}.select-trigger[data-v-411df2ed]{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border:1px solid #ddd;border-radius:6px;background-color:#fff;cursor:pointer;transition:all .2s ease;color:#333}.select-trigger[data-v-411df2ed]:hover{border-color:#007bff;box-shadow:0 0 0 2px #007bff1a}.select-trigger[data-v-411df2ed]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.selected-text[data-v-411df2ed]{flex:1;text-align:left;color:#333}.arrow[data-v-411df2ed]{width:16px!important;height:16px!important;transition:transform .2s ease;color:#666!important;background:none!important;background-image:none!important;border:none!important;transform-origin:center!important;display:inline-block!important}.arrow-up[data-v-411df2ed]{transform:rotate(180deg);padding-left:0}.select-dropdown[data-v-411df2ed]{position:absolute;top:110%;left:0;width:200px;background:#fff;border:1px solid #ddd;border-top:none;border-radius:4px;box-shadow:0 4px 6px #0000001a;z-index:1000;max-height:200px;overflow-y:auto}.select-option[data-v-411df2ed]{padding:4px 12px;cursor:pointer;transition:all .2s ease;color:#666;background-color:#fff;border-radius:6px;margin:2px}.select-option[data-v-411df2ed]:hover{background-color:#f5f5f5!important;color:#333!important}.select-option.selected[data-v-411df2ed]{background-color:#e3f2fd;color:#1976d2;font-weight:500}.select-option.selected[data-v-411df2ed]:hover{background-color:#bbdefb!important;color:#1565c0!important}@media (prefers-color-scheme: dark){.select-trigger[data-v-411df2ed]{background-color:#2d3748;border-color:#4a5568;color:#e2e8f0}.select-trigger[data-v-411df2ed]:hover{border-color:#63b3ed;box-shadow:0 0 0 2px #63b3ed1a}.selected-text[data-v-411df2ed]{color:#e2e8f0}.arrow[data-v-411df2ed]{color:#a0aec0}.select-dropdown[data-v-411df2ed]{border-radius:4px;background-color:#2d3748;border-color:#4a5568}.select-option[data-v-411df2ed]{color:#a0a0a0;background-color:#2d3748}.select-option[data-v-411df2ed]:hover{background-color:#718096!important;color:#f7fafc!important}.select-option.selected[data-v-411df2ed]{background-color:#2b6cb0;color:#90cdf4}.select-option.selected[data-v-411df2ed]:hover{background-color:#2c5282!important;color:#bee3f8!important}}.loading-container[data-v-da15572b]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;text-align:center}.spinner[data-v-da15572b]{width:32px;height:32px;border:3px solid #e0e0e0;border-top:3px solid #00a1d6;border-radius:50%;animation:spin-da15572b 1s linear infinite;margin-bottom:12px}.loading-text[data-v-da15572b]{color:#666;font-size:14px;font-weight:500}.loading-container.small .spinner[data-v-da15572b]{width:20px;height:20px;border-width:2px;margin-bottom:8px}.loading-container.small .loading-text[data-v-da15572b]{font-size:12px}.loading-container.large .spinner[data-v-da15572b]{width:48px;height:48px;border-width:4px;margin-bottom:16px}.loading-container.large .loading-text[data-v-da15572b]{font-size:16px}@keyframes spin-da15572b{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 480px){.loading-container[data-v-da15572b]{padding:20px 15px}.spinner[data-v-da15572b]{width:28px;height:28px;border-width:2px}.loading-text[data-v-da15572b]{font-size:13px}}.link-item.skeleton[data-v-115afd35]{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:16px;margin-bottom:12px}.skeleton-element[data-v-115afd35]{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading-115afd35 1.5s infinite;border-radius:4px}@keyframes skeleton-loading-115afd35{0%{background-position:200% 0}to{background-position:-200% 0}}.link-header[data-v-115afd35]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.platform-badge[data-v-115afd35]{display:flex;align-items:center;gap:6px}.skeleton-icon[data-v-115afd35]{width:20px;height:20px;border-radius:50%}.link-meta[data-v-115afd35]{display:flex;flex-direction:column;gap:6px}.skeleton-language[data-v-115afd35]{width:40px;height:16px}.feature-tags[data-v-115afd35]{display:flex;gap:6px}.skeleton-tag[data-v-115afd35]{width:30px;height:14px}.link-title-row[data-v-115afd35]{display:flex;align-items:center;justify-content:space-between}.skeleton-title[data-v-115afd35]{width:70%;height:20px}.skeleton-arrow[data-v-115afd35]{width:16px;height:16px;border-radius:2px}.ios-checkbox[data-v-77ac6b2a]{--checkbox-size: 28px;--checkbox-color: #3b82f6;--checkbox-bg: #dbeafe;--checkbox-border: #93c5fd;position:relative;display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle}.ios-checkbox input[data-v-77ac6b2a]{display:none}.checkbox-wrapper[data-v-77ac6b2a]{position:relative;width:var(--checkbox-size);height:var(--checkbox-size);border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.checkbox-bg[data-v-77ac6b2a]{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:8px;border:2px solid var(--checkbox-border);background:#fff;transition:all .2s ease}.checkbox-icon[data-v-77ac6b2a]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:16px;height:16px;color:#fff;transition:all .2s ease}.check-path[data-v-77ac6b2a]{stroke-dasharray:40;stroke-dashoffset:40;transition:stroke-dashoffset .3s ease .1s}.checkbox-label[data-v-77ac6b2a]{font-size:14px;color:#374151;font-weight:500;line-height:28px;height:28px;display:flex;align-items:center}.ios-checkbox input:checked+.checkbox-wrapper .checkbox-bg[data-v-77ac6b2a]{background:var(--checkbox-color);border-color:var(--checkbox-color)}.ios-checkbox input:checked+.checkbox-wrapper .checkbox-icon[data-v-77ac6b2a]{transform:translate(-50%,-50%) scale(1)}.ios-checkbox input:checked+.checkbox-wrapper .check-path[data-v-77ac6b2a]{stroke-dashoffset:0}.ios-checkbox:hover .checkbox-wrapper[data-v-77ac6b2a]{transform:scale(1.05)}.ios-checkbox:active .checkbox-wrapper[data-v-77ac6b2a]{transform:scale(.95)}.ios-checkbox input:focus+.checkbox-wrapper .checkbox-bg[data-v-77ac6b2a]{box-shadow:0 0 0 4px var(--checkbox-bg)}.ios-checkbox.blue[data-v-77ac6b2a]{--checkbox-color: #3b82f6;--checkbox-bg: #dbeafe;--checkbox-border: #93c5fd}.ios-checkbox.green[data-v-77ac6b2a]{--checkbox-color: #10b981;--checkbox-bg: #d1fae5;--checkbox-border: #6ee7b7}.ios-checkbox.purple[data-v-77ac6b2a]{--checkbox-color: #8b5cf6;--checkbox-bg: #ede9fe;--checkbox-border: #c4b5fd}.ios-checkbox.red[data-v-77ac6b2a]{--checkbox-color: #ef4444;--checkbox-bg: #fee2e2;--checkbox-border: #fca5a5}@keyframes bounce-77ac6b2a{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.ios-checkbox input:checked+.checkbox-wrapper[data-v-77ac6b2a]{animation:bounce-77ac6b2a .3s cubic-bezier(.4,0,.2,1)}.link-manager[data-v-caaf555a]{max-width:1000px;margin:0 auto}.link-stats[data-v-caaf555a]{display:flex;gap:20px;margin-bottom:20px;padding:15px;background:#f5f5f5;border-radius:8px}.stat-item[data-v-caaf555a]{display:flex;flex-direction:column;align-items:center}.stat-label[data-v-caaf555a]{font-size:12px;color:#666;margin-bottom:4px}.stat-value[data-v-caaf555a]{font-size:18px;font-weight:700;color:#333}.add-link-section[data-v-caaf555a]{margin-bottom:20px;display:flex;align-items:center;gap:10px}.add-link-btn[data-v-caaf555a]{padding:10px 20px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px}.add-link-btn[data-v-caaf555a]:hover:not(:disabled){background:#0056b3}.add-link-btn[data-v-caaf555a]:disabled{background:#ccc;cursor:not-allowed}.auth-hint[data-v-caaf555a]{color:#666;font-size:12px}.add-form[data-v-caaf555a]{background:#f9f9f9;padding:20px;border-radius:8px;margin-bottom:20px}.add-form h4[data-v-caaf555a]{margin:0 0 15px;color:#333}.form-row[data-v-caaf555a]{display:flex;gap:15px;margin-bottom:15px}.form-group[data-v-caaf555a]{flex:1}.form-group label[data-v-caaf555a]{margin-bottom:5px;font-weight:700;color:#333;font-size:13px}.checkbox-group[data-v-caaf555a]{display:flex;flex-wrap:wrap;gap:15px}.form-group input[data-v-caaf555a],.form-group select[data-v-caaf555a]{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.form-group select[data-v-caaf555a]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.input-wrapper[data-v-caaf555a]{border:1px solid #ddd;border-radius:6px}.input-wrapper input[data-v-caaf555a]{width:100%;border:none;outline:none;font-size:14px;background:transparent}.input-wrapper[data-v-caaf555a]:focus-within{border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.form-actions[data-v-caaf555a]{display:flex;gap:10px;margin-top:20px}.form-actions button[data-v-caaf555a]{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px}.form-actions button[type=submit][data-v-caaf555a]{background:#28a745;color:#fff}.form-actions button[type=submit][data-v-caaf555a]:hover:not(:disabled){background:#218838}.form-actions button[type=button][data-v-caaf555a]{background:#6c757d;color:#fff}.form-actions button[type=button][data-v-caaf555a]:hover{background:#545b62}.filter-bar[data-v-caaf555a]{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px;border-radius:6px}.filter-controls[data-v-caaf555a]{display:flex;gap:10px}.filter-bar .custom-select[data-v-caaf555a]{width:auto;min-width:100px}.add-link-btn-compact[data-v-caaf555a]{width:32px;height:32px;background:#e6f3ff;color:#007bff;border:none;border-radius:4px;cursor:pointer;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0;line-height:1;padding:0}.add-link-btn-compact[data-v-caaf555a]:hover:not(:disabled){background:#b1cfef;transform:scale(1)}.add-link-btn-compact[data-v-caaf555a]:disabled{background:#ccc;cursor:not-allowed;transform:none}.filter-bar select[data-v-caaf555a]{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px}.links-list[data-v-caaf555a]{display:flex;flex-direction:column;gap:15px}.link-item[data-v-caaf555a]{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:15px;box-shadow:0 2px 4px #0000001a;transition:box-shadow .3s ease}.link-item[data-v-caaf555a]:hover{box-shadow:0 4px 8px #00000026}.link-header[data-v-caaf555a]{display:flex;align-items:center;gap:10px;margin-bottom:10px}.link-type-badge[data-v-caaf555a]{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:700;color:#fff}.link-type-badge.netdisk[data-v-caaf555a]{background:#28a745}.link-type-badge.bt[data-v-caaf555a]{background:#dc3545}.link-type-badge.online[data-v-caaf555a]{background:#007bff}.platform-badge[data-v-caaf555a]{padding:4px;background:#fff;color:#fff;border-radius:4px;font-size:12px;display:flex;align-items:center;justify-content:center;border:1px solid #e9ecef}.platform-icon[data-v-caaf555a]{width:16px;height:16px;object-fit:contain}.link-meta[data-v-caaf555a]{display:flex;gap:10px;margin-left:auto;align-items:center}.link-meta span[data-v-caaf555a]{padding:2px 6px;background:#f8f9fa;border-radius:3px;font-size:11px;color:#666}.feature-tags[data-v-caaf555a]{display:flex;gap:4px;flex-wrap:wrap}.feature-tag[data-v-caaf555a]{padding:2px 6px;background:#007bff;color:#fff;border-radius:3px;font-size:10px;font-weight:700}.feature-tag.feature-4k[data-v-caaf555a]{background:#1a1a1a;color:gold}.feature-tag.feature-hdr[data-v-caaf555a]{background:gold;color:#000}.feature-tag.feature-dolby[data-v-caaf555a]{background:#eaeaea;color:#121212;font-weight:300}.feature-tag.feature-subtitle[data-v-caaf555a]{background:#cee2e8;color:#036;font-weight:300}.link-content[data-v-caaf555a]{margin-bottom:15px}.link-title-row[data-v-caaf555a]{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:5px 0;margin-bottom:8px;border-radius:4px;transition:background-color .2s ease}.link-title-row[data-v-caaf555a]:hover{background-color:#f8f9fa}.link-title[data-v-caaf555a]{font-weight:700;color:#333;flex:1;white-space:nowrap;overflow:hidden;position:relative;padding-right:20px;min-width:0}.link-title.expanded[data-v-caaf555a]{white-space:normal;overflow:hidden;padding-right:10px;word-wrap:break-word;word-break:break-word}.link-title[data-v-caaf555a]:after{content:"";position:absolute;top:0;right:0;width:20px;height:100%;background:linear-gradient(to right,transparent,white);pointer-events:none;transition:opacity .3s ease}.link-title.expanded[data-v-caaf555a]:after{opacity:0}.expand-arrow[data-v-caaf555a]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#666;transition:transform .3s ease,color .2s ease}.expand-arrow[data-v-caaf555a]:hover{color:#333}.expand-arrow.expanded[data-v-caaf555a]{transform:rotate(180deg)}.link-details[data-v-caaf555a]{margin-top:10px;animation:slideDown-caaf555a .3s ease forwards}@keyframes slideDown-caaf555a{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.link-url[data-v-caaf555a]{display:flex;align-items:center;gap:8px;margin-bottom:5px}.link-url a[data-v-caaf555a]{color:#007bff;text-decoration:none;flex:1;word-break:break-all}.link-url a[data-v-caaf555a]:hover{text-decoration:underline;background-color:transparent}.extract-code[data-v-caaf555a]{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:5px}.extract-code code[data-v-caaf555a]{background:#f8f9fa;padding:2px 6px;border-radius:3px;font-family:monospace;color:#e83e8c}.copy-btn[data-v-caaf555a]{background:none;border:none;cursor:pointer;font-size:14px;padding:2px 4px;border-radius:3px}.copy-btn[data-v-caaf555a]:hover{background:#f8f9fa}.link-actions[data-v-caaf555a]{display:flex;justify-content:space-between;align-items:center;margin-top:10px;margin-bottom:10px}.vote-section[data-v-caaf555a]{display:flex;align-items:center;gap:10px}.vote-btn[data-v-caaf555a]{background:#f8f9fa;border:1px solid #dee2e6;padding:5px 10px;border-radius:4px;cursor:pointer;font-size:12px;display:flex;align-items:center;gap:4px}.vote-btn[data-v-caaf555a]:hover:not(:disabled){background:#e9ecef}.vote-btn[data-v-caaf555a]:disabled{opacity:.6;cursor:not-allowed}.vote-btn.active.up[data-v-caaf555a]{background:#d4edda;border-color:#c3e6cb;color:#155724}.vote-btn.active.down[data-v-caaf555a]{background:#f8d7da;border-color:#f5c6cb;color:#721c24}.score[data-v-caaf555a]{font-weight:700;color:#333;font-size:13px}.action-buttons[data-v-caaf555a]{display:flex;gap:8px}.action-buttons button[data-v-caaf555a]{padding:4px 8px;border:none;border-radius:3px;cursor:pointer;font-size:12px}.edit-btn[data-v-caaf555a]{background:#ffc107;color:#212529}.edit-btn[data-v-caaf555a]:hover{background:#e0a800}.delete-btn[data-v-caaf555a]{background:#dc3545;color:#fff}.delete-btn[data-v-caaf555a]:hover{background:#c82333}.report-btn[data-v-caaf555a]{width:48px;height:28px;background:#eee;color:#495057}.report-btn[data-v-caaf555a]:hover{color:#495057;background:#e3e3e3}.link-footer[data-v-caaf555a]{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#666;border-top:1px solid #f0f0f0;padding-top:10px}.report-count[data-v-caaf555a]{color:#dc3545;font-weight:700}.empty-state[data-v-caaf555a]{text-align:center;padding:40px;color:#666}.loading[data-v-caaf555a]{text-align:center;padding:20px;color:#666}.toast-container[data-v-caaf555a]{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:10000;pointer-events:none}.toast[data-v-caaf555a]{background:#fff;border-radius:8px;padding:12px 16px;margin-bottom:10px;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;justify-content:space-between;min-width:300px;max-width:500px;pointer-events:auto;cursor:pointer;animation:slideDown-caaf555a .3s ease-out;transition:all .3s ease}.toast[data-v-caaf555a]:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0003}.error-toast[data-v-caaf555a]{background:#fff5f5}.error-toast span[data-v-caaf555a]{color:#721c24}.success-toast[data-v-caaf555a]{background:#f0fff4}.success-toast span[data-v-caaf555a]{color:#155724}.toast-close[data-v-caaf555a]{background:none;border:none;font-size:18px;font-weight:700;color:#999;cursor:pointer;margin-left:12px;padding:0;line-height:1}.toast-close[data-v-caaf555a]:hover{color:#666}@keyframes slideDown-caaf555a{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-message[data-v-caaf555a]{background:#f8d7da;color:#721c24;padding:10px 15px;border-radius:4px;margin:10px 0;border:1px solid #f5c6cb}.success-message[data-v-caaf555a]{background:#d4edda;color:#155724;padding:10px 15px;border-radius:4px;margin:10px 0;border:1px solid #c3e6cb}@media (max-width: 768px){.link-manager[data-v-caaf555a]{padding:10px}.form-row[data-v-caaf555a]{flex-direction:column;gap:10px}.filter-bar[data-v-caaf555a]{flex-direction:column;gap:8px}.link-header[data-v-caaf555a]{flex-wrap:wrap}.link-meta[data-v-caaf555a]{margin-left:0;margin-top:5px}.link-actions[data-v-caaf555a]{flex-direction:column;gap:10px;align-items:flex-start}}.modal-overlay[data-v-caaf555a]{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content[data-v-caaf555a]{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;box-shadow:0 4px 20px #00000026}.modal-header[data-v-caaf555a]{display:flex;justify-content:space-between;align-items:center;padding:20px 20px 0;border-bottom:1px solid #eee;margin-bottom:20px}.modal-header h4[data-v-caaf555a]{margin:0;color:#333;font-size:18px}.close-btn[data-v-caaf555a]{background:none;border:none;font-size:24px;cursor:pointer;color:#999;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%}.close-btn[data-v-caaf555a]:hover{background:#f5f5f5;color:#333}.modal-body[data-v-caaf555a]{padding:0 20px 20px}.vote-section[data-v-caaf555a]{width:100%}.input-wrapper textarea[data-v-caaf555a]{width:100%;border:none;outline:none;font-size:14px;font-family:inherit;resize:vertical;min-height:80px;background:transparent}.input-wrapper[data-v-caaf555a]:has(textarea):focus-within{border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.input-wrapper textarea[data-v-caaf555a]::placeholder{color:#999}.form-actions button[data-v-caaf555a]:disabled{background:#ccc;cursor:not-allowed}.form-actions button[data-v-caaf555a]:disabled:hover{background:#ccc}.pagination[data-v-caaf555a]{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:10px;padding:10px;background:#f8f9fa;border-radius:8px}.pagination-btn[data-v-caaf555a]{padding:8px 16px;border:1px solid #ddd;background:#fff;color:#333;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s}.pagination-btn[data-v-caaf555a]:hover:not(:disabled){background:#b3d8ff;color:#007bff;border-color:#b3d8ff}.pagination-btn[data-v-caaf555a]:disabled{background:#f5f5f5;color:#999;cursor:not-allowed;border-color:#ddd}.pagination-info[data-v-caaf555a]{font-size:14px;color:#666;font-weight:500}.content-wrapper[data-v-2fb0e09c]{padding:16px}.movie-info[data-v-2fb0e09c]{margin-bottom:16px;padding:12px;background:#f8f9fa;border-radius:6px;border-left:4px solid #00a1d6}.movie-title[data-v-2fb0e09c]{margin:0 0 8px;font-size:16px;font-weight:600;color:#333;line-height:1.3}.movie-meta[data-v-2fb0e09c]{display:flex;gap:12px;align-items:center}.movie-meta .year[data-v-2fb0e09c]{background:#6c757d;color:#fff;padding:2px 6px;border-radius:3px;font-size:12px;font-weight:500}.movie-meta .rating[data-v-2fb0e09c]{color:#ff6b35;font-weight:600;font-size:13px}.navigation-bar[data-v-2fb0e09c]{display:flex;border-bottom:1px solid #e0e0e0;margin-bottom:16px}.nav-btn[data-v-2fb0e09c]{flex:1;padding:12px 16px;border:none;background:none;cursor:pointer;font-size:14px;font-weight:500;color:#666;transition:all .2s;border-bottom:2px solid transparent}.nav-btn[data-v-2fb0e09c]:hover{background-color:#f5f5f5;color:#333}.nav-btn.active[data-v-2fb0e09c]{color:#00a1d6;border-bottom-color:#00a1d6;background-color:#f8fbff}.tab-content[data-v-2fb0e09c]{min-height:200px}.tab-panel[data-v-2fb0e09c]{padding-top:16px 0}.tab-panel h4[data-v-2fb0e09c]{margin:0 0 12px;color:#333;font-size:16px;font-weight:600}.tab-panel p[data-v-2fb0e09c]{margin:0;color:#666;line-height:1.5}.sub-nav[data-v-2fb0e09c]{display:flex;gap:4px;margin-bottom:12px;padding:4px;background:#e9ecef;border-radius:6px}.sub-tab[data-v-2fb0e09c]{flex:1;padding:6px 8px;border:none;background:transparent;color:#666;font-size:12px;border-radius:4px;cursor:pointer;transition:all .2s;text-align:center}.sub-tab[data-v-2fb0e09c]:hover{background:#dee2e6;color:#495057}.sub-tab.active[data-v-2fb0e09c]{background:#007bff;color:#fff;font-weight:500}.sub-content[data-v-2fb0e09c]{margin-top:8px}.sub-tab-content[data-v-2fb0e09c]{padding:8px 0}.sub-tab-content p[data-v-2fb0e09c]{margin:4px 0;color:#666;font-size:12px}.no-subject[data-v-2fb0e09c]{text-align:center;padding:40px 20px;color:#666}.no-subject p[data-v-2fb0e09c]{margin:8px 0;line-height:1.5}.no-subject .hint[data-v-2fb0e09c]{font-size:12px;color:#999;font-style:italic}.debug-panel[data-v-dba5723e]{position:fixed;top:20px;right:20px;width:400px;max-height:80vh;background:#fff;border:2px solid #007bff;border-radius:8px;box-shadow:0 4px 20px #0000004d;z-index:10000;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow-y:auto}.debug-header[data-v-dba5723e]{background:#007bff;color:#fff;padding:10px 15px;display:flex;justify-content:space-between;align-items:center}.debug-header h3[data-v-dba5723e]{margin:0;font-size:16px}.close-btn[data-v-dba5723e]{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.debug-content[data-v-dba5723e]{padding:15px}.debug-section[data-v-dba5723e]{margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #eee}.debug-section[data-v-dba5723e]:last-child{border-bottom:none;margin-bottom:0}.debug-section h4[data-v-dba5723e]{margin:0 0 10px;color:#333;font-size:14px}.debug-section h5[data-v-dba5723e]{margin:10px 0 5px;color:#666;font-size:12px}.status-item[data-v-dba5723e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px}.label[data-v-dba5723e]{font-weight:700;color:#555}.value[data-v-dba5723e]{color:#333;max-width:200px;word-break:break-all}.token[data-v-dba5723e]{font-family:monospace;font-size:10px}.status[data-v-dba5723e]{padding:2px 6px;border-radius:3px;font-size:11px;font-weight:700}.status.success[data-v-dba5723e]{background:#d4edda;color:#155724}.status.error[data-v-dba5723e]{background:#f8d7da;color:#721c24}.button-group[data-v-dba5723e]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.debug-btn[data-v-dba5723e]{padding:6px 12px;border:1px solid #007bff;background:#fff;color:#007bff;border-radius:4px;cursor:pointer;font-size:11px;transition:all .2s}.debug-btn[data-v-dba5723e]:hover{background:#007bff;color:#fff}.debug-btn.danger[data-v-dba5723e]{border-color:#dc3545;color:#dc3545}.debug-btn.danger[data-v-dba5723e]:hover{background:#dc3545;color:#fff}.test-result[data-v-dba5723e]{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:10px;margin-top:10px}.test-result pre[data-v-dba5723e]{margin:0;font-size:10px;white-space:pre-wrap;word-break:break-word}.headers-preview[data-v-dba5723e]{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:10px}.headers-preview code[data-v-dba5723e]{font-size:10px;white-space:pre-wrap;word-break:break-word}.custom-window[data-v-0af292b5]{position:relative;width:100%;max-width:350px;min-height:200px;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 2px 12px #0000000d;margin-bottom:15px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.window-header[data-v-0af292b5]{color:#545454;border-top:1px solid #ddd;padding:6px 12px;border-radius:0 0 8px 8px;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none}.window-title[data-v-0af292b5]{font-weight:300;font-size:12px}.close-btn[data-v-0af292b5]{background:none;border:none;color:#fff;font-size:16px;cursor:pointer;padding:0;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.close-btn[data-v-0af292b5]:hover{background-color:#fff3}.window-content[data-v-0af292b5]{padding:0}#douban-trigger-btn:hover{background:#005a1a!important;transform:translateY(-1px);box-shadow:0 2px 8px #00772280}#douban-custom-window{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}#douban-custom-window ::-webkit-scrollbar{width:6px}#douban-custom-window ::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}#douban-custom-window ::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}#douban-custom-window ::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.custom-window{animation:fadeIn .3s ease-out}.window-content>*{animation:slideIn .4s ease-out}@media (max-width: 480px){.custom-window{width:90vw!important;left:5vw!important}.stats-grid{grid-template-columns:1fr!important}.action-section{flex-direction:column}.action-btn{width:100%}}@media (prefers-color-scheme: dark){.custom-window{background:#2d3748;border-color:#4a5568;color:#e2e8f0}.window-content h3,.window-content h4{color:#e2e8f0}.window-content p{color:#cbd5e0}.feature-section li,.info-section{background:#4a5568;color:#cbd5e0}.info-item strong{color:#e2e8f0}}select option{color:#666;background-color:#fff;padding:8px 12px;border-radius:6px;margin:2px 0;transition:background-color .2s ease}select option:hover{background-color:#f5f5f5}select{border-radius:6px;padding:8px 12px}@media (prefers-color-scheme: dark){select option{color:#a0a0a0;background-color:#2d3748}select option:hover{background-color:#718096;color:#f7fafc}}
`;
    document.head.appendChild(style);
})();

(function(){"use strict";(function(){"use strict";/**
* @vue/shared v3.5.18
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**//*! #__NO_SIDE_EFFECTS__ */function js(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const Z={},kt=[],Be=()=>{},go=()=>!1,cs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Hs=e=>e.startsWith("onUpdate:"),_e=Object.assign,qs=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},mo=Object.prototype.hasOwnProperty,z=(e,t)=>mo.call(e,t),V=Array.isArray,Ct=e=>fs(e)==="[object Map]",In=e=>fs(e)==="[object Set]",L=e=>typeof e=="function",ue=e=>typeof e=="string",rt=e=>typeof e=="symbol",re=e=>e!==null&&typeof e=="object",On=e=>(re(e)||L(e))&&L(e.then)&&L(e.catch),Dn=Object.prototype.toString,fs=e=>Dn.call(e),_o=e=>fs(e).slice(8,-1),Mn=e=>fs(e)==="[object Object]",Ws=e=>ue(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Bt=js(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ds=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},bo=/-(\w)/g,ot=ds(e=>e.replace(bo,(t,s)=>s?s.toUpperCase():"")),yo=/\B([A-Z])/g,vt=ds(e=>e.replace(yo,"-$1").toLowerCase()),Un=ds(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ks=ds(e=>e?`on${Un(e)}`:""),lt=(e,t)=>!Object.is(e,t),ps=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},Gs=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},zs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Vn;const hs=()=>Vn||(Vn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function jt(e){if(V(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],r=ue(n)?Co(n):jt(n);if(r)for(const o in r)t[o]=r[o]}return t}else if(ue(e)||re(e))return e}const wo=/;(?![^(]*\))/g,xo=/:([^]+)/,ko=/\/\*[^]*?\*\//g;function Co(e){const t={};return e.replace(ko,"").split(wo).forEach(s=>{if(s){const n=s.split(xo);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ce(e){let t="";if(ue(e))t=e;else if(V(e))for(let s=0;s<e.length;s++){const n=ce(e[s]);n&&(t+=n+" ")}else if(re(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const So=js("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function Rn(e){return!!e||e===""}const Ln=e=>!!(e&&e.__v_isRef===!0),F=e=>ue(e)?e:e==null?"":V(e)||re(e)&&(e.toString===Dn||!L(e.toString))?Ln(e)?F(e.value):JSON.stringify(e,Fn,2):String(e),Fn=(e,t)=>Ln(t)?Fn(e,t.value):Ct(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,r],o)=>(s[Js(n,o)+" =>"]=r,s),{})}:In(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Js(s))}:rt(t)?Js(t):re(t)&&!V(t)&&!Mn(t)?String(t):t,Js=(e,t="")=>{var s;return rt(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/**
* @vue/reactivity v3.5.18
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Ce;class To{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ce,!t&&Ce&&(this.index=(Ce.scopes||(Ce.scopes=[])).push(this)-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;t<s;t++)this.scopes[t].pause();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].resume();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].resume()}}run(t){if(this._active){const s=Ce;try{return Ce=this,t()}finally{Ce=s}}}on(){++this._on===1&&(this.prevScope=Ce,Ce=this)}off(){this._on>0&&--this._on===0&&(Ce=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,n=this.scopes.length;s<n;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0}}}function Eo(){return Ce}let ee;const Ys=new WeakSet;class Nn{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Ce&&Ce.active&&Ce.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Ys.has(this)&&(Ys.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||jn(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Gn(this),Hn(this);const t=ee,s=Fe;ee=this,Fe=!0;try{return this.fn()}finally{qn(this),ee=t,Fe=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)en(t);this.deps=this.depsTail=void 0,Gn(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Ys.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Zs(this)&&this.run()}get dirty(){return Zs(this)}}let Bn=0,Ht,qt;function jn(e,t=!1){if(e.flags|=8,t){e.next=qt,qt=e;return}e.next=Ht,Ht=e}function Qs(){Bn++}function Xs(){if(--Bn>0)return;if(qt){let t=qt;for(qt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;Ht;){let t=Ht;for(Ht=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 Hn(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function qn(e){let t,s=e.depsTail,n=s;for(;n;){const r=n.prevDep;n.version===-1?(n===s&&(s=r),en(n),$o(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=r}e.deps=t,e.depsTail=s}function Zs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Wn(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Wn(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Wt)||(e.globalVersion=Wt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Zs(e))))return;e.flags|=2;const t=e.dep,s=ee,n=Fe;ee=e,Fe=!0;try{Hn(e);const r=e.fn(e._value);(t.version===0||lt(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{ee=s,Fe=n,qn(e),e.flags&=-3}}function en(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 o=s.computed.deps;o;o=o.nextDep)en(o,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function $o(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let Fe=!0;const Kn=[];function je(){Kn.push(Fe),Fe=!1}function He(){const e=Kn.pop();Fe=e===void 0?!0:e}function Gn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=ee;ee=void 0;try{t()}finally{ee=s}}}let Wt=0;class Po{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 tn{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(!ee||!Fe||ee===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==ee)s=this.activeLink=new Po(ee,this),ee.deps?(s.prevDep=ee.depsTail,ee.depsTail.nextDep=s,ee.depsTail=s):ee.deps=ee.depsTail=s,zn(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=ee.depsTail,s.nextDep=void 0,ee.depsTail.nextDep=s,ee.depsTail=s,ee.deps===s&&(ee.deps=n)}return s}trigger(t){this.version++,Wt++,this.notify(t)}notify(t){Qs();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Xs()}}}function zn(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)zn(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const sn=new WeakMap,gt=Symbol(""),nn=Symbol(""),Kt=Symbol("");function ge(e,t,s){if(Fe&&ee){let n=sn.get(e);n||sn.set(e,n=new Map);let r=n.get(s);r||(n.set(s,r=new tn),r.map=n,r.key=s),r.track()}}function Qe(e,t,s,n,r,o){const l=sn.get(e);if(!l){Wt++;return}const i=a=>{a&&a.trigger()};if(Qs(),t==="clear")l.forEach(i);else{const a=V(e),g=a&&Ws(s);if(a&&s==="length"){const h=Number(n);l.forEach((_,m)=>{(m==="length"||m===Kt||!rt(m)&&m>=h)&&i(_)})}else switch((s!==void 0||l.has(void 0))&&i(l.get(s)),g&&i(l.get(Kt)),t){case"add":a?g&&i(l.get("length")):(i(l.get(gt)),Ct(e)&&i(l.get(nn)));break;case"delete":a||(i(l.get(gt)),Ct(e)&&i(l.get(nn)));break;case"set":Ct(e)&&i(l.get(gt));break}}Xs()}function St(e){const t=q(e);return t===e?t:(ge(t,"iterate",Kt),Ue(e)?t:t.map(pe))}function vs(e){return ge(e=q(e),"iterate",Kt),e}const Ao={__proto__:null,[Symbol.iterator](){return rn(this,Symbol.iterator,pe)},concat(...e){return St(this).concat(...e.map(t=>V(t)?St(t):t))},entries(){return rn(this,"entries",e=>(e[1]=pe(e[1]),e))},every(e,t){return Xe(this,"every",e,t,void 0,arguments)},filter(e,t){return Xe(this,"filter",e,t,s=>s.map(pe),arguments)},find(e,t){return Xe(this,"find",e,t,pe,arguments)},findIndex(e,t){return Xe(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Xe(this,"findLast",e,t,pe,arguments)},findLastIndex(e,t){return Xe(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Xe(this,"forEach",e,t,void 0,arguments)},includes(...e){return on(this,"includes",e)},indexOf(...e){return on(this,"indexOf",e)},join(e){return St(this).join(e)},lastIndexOf(...e){return on(this,"lastIndexOf",e)},map(e,t){return Xe(this,"map",e,t,void 0,arguments)},pop(){return Gt(this,"pop")},push(...e){return Gt(this,"push",e)},reduce(e,...t){return Jn(this,"reduce",e,t)},reduceRight(e,...t){return Jn(this,"reduceRight",e,t)},shift(){return Gt(this,"shift")},some(e,t){return Xe(this,"some",e,t,void 0,arguments)},splice(...e){return Gt(this,"splice",e)},toReversed(){return St(this).toReversed()},toSorted(e){return St(this).toSorted(e)},toSpliced(...e){return St(this).toSpliced(...e)},unshift(...e){return Gt(this,"unshift",e)},values(){return rn(this,"values",pe)}};function rn(e,t,s){const n=vs(e),r=n[t]();return n!==e&&!Ue(e)&&(r._next=r.next,r.next=()=>{const o=r._next();return o.value&&(o.value=s(o.value)),o}),r}const Io=Array.prototype;function Xe(e,t,s,n,r,o){const l=vs(e),i=l!==e&&!Ue(e),a=l[t];if(a!==Io[t]){const _=a.apply(e,o);return i?pe(_):_}let g=s;l!==e&&(i?g=function(_,m){return s.call(this,pe(_),m,e)}:s.length>2&&(g=function(_,m){return s.call(this,_,m,e)}));const h=a.call(l,g,n);return i&&r?r(h):h}function Jn(e,t,s,n){const r=vs(e);let o=s;return r!==e&&(Ue(e)?s.length>3&&(o=function(l,i,a){return s.call(this,l,i,a,e)}):o=function(l,i,a){return s.call(this,l,pe(i),a,e)}),r[t](o,...n)}function on(e,t,s){const n=q(e);ge(n,"iterate",Kt);const r=n[t](...s);return(r===-1||r===!1)&&an(s[0])?(s[0]=q(s[0]),n[t](...s)):r}function Gt(e,t,s=[]){je(),Qs();const n=q(e)[t].apply(e,s);return Xs(),He(),n}const Oo=js("__proto__,__v_isRef,__isVue"),Yn=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(rt));function Do(e){rt(e)||(e=String(e));const t=q(this);return ge(t,"has",e),t.hasOwnProperty(e)}class Qn{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,o=this._isShallow;if(s==="__v_isReactive")return!r;if(s==="__v_isReadonly")return r;if(s==="__v_isShallow")return o;if(s==="__v_raw")return n===(r?o?nr:sr:o?tr:er).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const l=V(t);if(!r){let a;if(l&&(a=Ao[s]))return a;if(s==="hasOwnProperty")return Do}const i=Reflect.get(t,s,he(t)?t:n);return(rt(s)?Yn.has(s):Oo(s))||(r||ge(t,"get",s),o)?i:he(i)?l&&Ws(s)?i:i.value:re(i)?r?rr(i):Tt(i):i}}class Xn extends Qn{constructor(t=!1){super(!1,t)}set(t,s,n,r){let o=t[s];if(!this._isShallow){const a=it(o);if(!Ue(n)&&!it(n)&&(o=q(o),n=q(n)),!V(t)&&he(o)&&!he(n))return a?!1:(o.value=n,!0)}const l=V(t)&&Ws(s)?Number(s)<t.length:z(t,s),i=Reflect.set(t,s,n,he(t)?t:r);return t===q(r)&&(l?lt(n,o)&&Qe(t,"set",s,n):Qe(t,"add",s,n)),i}deleteProperty(t,s){const n=z(t,s);t[s];const r=Reflect.deleteProperty(t,s);return r&&n&&Qe(t,"delete",s,void 0),r}has(t,s){const n=Reflect.has(t,s);return(!rt(s)||!Yn.has(s))&&ge(t,"has",s),n}ownKeys(t){return ge(t,"iterate",V(t)?"length":gt),Reflect.ownKeys(t)}}class Zn extends Qn{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const Mo=new Xn,Uo=new Zn,Vo=new Xn(!0),Ro=new Zn(!0),ln=e=>e,gs=e=>Reflect.getPrototypeOf(e);function Lo(e,t,s){return function(...n){const r=this.__v_raw,o=q(r),l=Ct(o),i=e==="entries"||e===Symbol.iterator&&l,a=e==="keys"&&l,g=r[e](...n),h=s?ln:t?ys:pe;return!t&&ge(o,"iterate",a?nn:gt),{next(){const{value:_,done:m}=g.next();return m?{value:_,done:m}:{value:i?[h(_[0]),h(_[1])]:h(_),done:m}},[Symbol.iterator](){return this}}}}function ms(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Fo(e,t){const s={get(r){const o=this.__v_raw,l=q(o),i=q(r);e||(lt(r,i)&&ge(l,"get",r),ge(l,"get",i));const{has:a}=gs(l),g=t?ln:e?ys:pe;if(a.call(l,r))return g(o.get(r));if(a.call(l,i))return g(o.get(i));o!==l&&o.get(r)},get size(){const r=this.__v_raw;return!e&&ge(q(r),"iterate",gt),Reflect.get(r,"size",r)},has(r){const o=this.__v_raw,l=q(o),i=q(r);return e||(lt(r,i)&&ge(l,"has",r),ge(l,"has",i)),r===i?o.has(r):o.has(r)||o.has(i)},forEach(r,o){const l=this,i=l.__v_raw,a=q(i),g=t?ln:e?ys:pe;return!e&&ge(a,"iterate",gt),i.forEach((h,_)=>r.call(o,g(h),g(_),l))}};return _e(s,e?{add:ms("add"),set:ms("set"),delete:ms("delete"),clear:ms("clear")}:{add(r){!t&&!Ue(r)&&!it(r)&&(r=q(r));const o=q(this);return gs(o).has.call(o,r)||(o.add(r),Qe(o,"add",r,r)),this},set(r,o){!t&&!Ue(o)&&!it(o)&&(o=q(o));const l=q(this),{has:i,get:a}=gs(l);let g=i.call(l,r);g||(r=q(r),g=i.call(l,r));const h=a.call(l,r);return l.set(r,o),g?lt(o,h)&&Qe(l,"set",r,o):Qe(l,"add",r,o),this},delete(r){const o=q(this),{has:l,get:i}=gs(o);let a=l.call(o,r);a||(r=q(r),a=l.call(o,r)),i&&i.call(o,r);const g=o.delete(r);return a&&Qe(o,"delete",r,void 0),g},clear(){const r=q(this),o=r.size!==0,l=r.clear();return o&&Qe(r,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(r=>{s[r]=Lo(r,e,t)}),s}function _s(e,t){const s=Fo(e,t);return(n,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?n:Reflect.get(z(s,r)&&r in n?s:n,r,o)}const No={get:_s(!1,!1)},Bo={get:_s(!1,!0)},jo={get:_s(!0,!1)},Ho={get:_s(!0,!0)},er=new WeakMap,tr=new WeakMap,sr=new WeakMap,nr=new WeakMap;function qo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Wo(e){return e.__v_skip||!Object.isExtensible(e)?0:qo(_o(e))}function Tt(e){return it(e)?e:bs(e,!1,Mo,No,er)}function Ko(e){return bs(e,!1,Vo,Bo,tr)}function rr(e){return bs(e,!0,Uo,jo,sr)}function zc(e){return bs(e,!0,Ro,Ho,nr)}function bs(e,t,s,n,r){if(!re(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Wo(e);if(o===0)return e;const l=r.get(e);if(l)return l;const i=new Proxy(e,o===2?n:s);return r.set(e,i),i}function Et(e){return it(e)?Et(e.__v_raw):!!(e&&e.__v_isReactive)}function it(e){return!!(e&&e.__v_isReadonly)}function Ue(e){return!!(e&&e.__v_isShallow)}function an(e){return e?!!e.__v_raw:!1}function q(e){const t=e&&e.__v_raw;return t?q(t):e}function Go(e){return!z(e,"__v_skip")&&Object.isExtensible(e)&&Gs(e,"__v_skip",!0),e}const pe=e=>re(e)?Tt(e):e,ys=e=>re(e)?rr(e):e;function he(e){return e?e.__v_isRef===!0:!1}function j(e){return zo(e,!1)}function zo(e,t){return he(e)?e:new Jo(e,t)}class Jo{constructor(t,s){this.dep=new tn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:q(t),this._value=s?t:pe(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||Ue(t)||it(t);t=n?t:q(t),lt(t,s)&&(this._rawValue=t,this._value=n?t:pe(t),this.dep.trigger())}}function Yo(e){return he(e)?e.value:e}const Qo={get:(e,t,s)=>t==="__v_raw"?e:Yo(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const r=e[t];return he(r)&&!he(s)?(r.value=s,!0):Reflect.set(e,t,s,n)}};function or(e){return Et(e)?e:new Proxy(e,Qo)}class Xo{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new tn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Wt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&ee!==this)return jn(this,!0),!0}get value(){const t=this.dep.track();return Wn(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Zo(e,t,s=!1){let n,r;return L(e)?n=e:(n=e.get,r=e.set),new Xo(n,r,s)}const ws={},xs=new WeakMap;let mt;function el(e,t=!1,s=mt){if(s){let n=xs.get(s);n||xs.set(s,n=[]),n.push(e)}}function tl(e,t,s=Z){const{immediate:n,deep:r,once:o,scheduler:l,augmentJob:i,call:a}=s,g=O=>r?O:Ue(O)||r===!1||r===0?Ze(O,1):Ze(O);let h,_,m,y,E=!1,M=!1;if(he(e)?(_=()=>e.value,E=Ue(e)):Et(e)?(_=()=>g(e),E=!0):V(e)?(M=!0,E=e.some(O=>Et(O)||Ue(O)),_=()=>e.map(O=>{if(he(O))return O.value;if(Et(O))return g(O);if(L(O))return a?a(O,2):O()})):L(e)?t?_=a?()=>a(e,2):e:_=()=>{if(m){je();try{m()}finally{He()}}const O=mt;mt=h;try{return a?a(e,3,[y]):e(y)}finally{mt=O}}:_=Be,t&&r){const O=_,G=r===!0?1/0:r;_=()=>Ze(O(),G)}const ne=Eo(),B=()=>{h.stop(),ne&&ne.active&&qs(ne.effects,h)};if(o&&t){const O=t;t=(...G)=>{O(...G),B()}}let W=M?new Array(e.length).fill(ws):ws;const K=O=>{if(!(!(h.flags&1)||!h.dirty&&!O))if(t){const G=h.run();if(r||E||(M?G.some((ke,Te)=>lt(ke,W[Te])):lt(G,W))){m&&m();const ke=mt;mt=h;try{const Te=[G,W===ws?void 0:M&&W[0]===ws?[]:W,y];W=G,a?a(t,3,Te):t(...Te)}finally{mt=ke}}}else h.run()};return i&&i(K),h=new Nn(_),h.scheduler=l?()=>l(K,!1):K,y=O=>el(O,!1,h),m=h.onStop=()=>{const O=xs.get(h);if(O){if(a)a(O,4);else for(const G of O)G();xs.delete(h)}},t?n?K(!0):W=h.run():l?l(K.bind(null,!0),!0):h.run(),B.pause=h.pause.bind(h),B.resume=h.resume.bind(h),B.stop=B,B}function Ze(e,t=1/0,s){if(t<=0||!re(e)||e.__v_skip||(s=s||new Set,s.has(e)))return e;if(s.add(e),t--,he(e))Ze(e.value,t,s);else if(V(e))for(let n=0;n<e.length;n++)Ze(e[n],t,s);else if(In(e)||Ct(e))e.forEach(n=>{Ze(n,t,s)});else if(Mn(e)){for(const n in e)Ze(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Ze(e[n],t,s)}return e}/**
* @vue/runtime-core v3.5.18
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/const zt=[];let un=!1;function Jc(e,...t){if(un)return;un=!0,je();const s=zt.length?zt[zt.length-1].component:null,n=s&&s.appContext.config.warnHandler,r=sl();if(n)$t(n,s,11,[e+t.map(o=>{var l,i;return(i=(l=o.toString)==null?void 0:l.call(o))!=null?i:JSON.stringify(o)}).join(""),s&&s.proxy,r.map(({vnode:o})=>`at <${Jr(s,o.type)}>`).join(`
`),r]);else{const o=[`[Vue warn]: ${e}`,...t];r.length&&o.push(`
`,...nl(r)),console.warn(...o)}He(),un=!1}function sl(){let e=zt[zt.length-1];if(!e)return[];const t=[];for(;e;){const s=t[0];s&&s.vnode===e?s.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function nl(e){const t=[];return e.forEach((s,n)=>{t.push(...n===0?[]:[`
`],...rl(s))}),t}function rl({vnode:e,recurseCount:t}){const s=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,r=` at <${Jr(e.component,e.type,n)}`,o=">"+s;return e.props?[r,...ol(e.props),o]:[r+o]}function ol(e){const t=[],s=Object.keys(e);return s.slice(0,3).forEach(n=>{t.push(...lr(n,e[n]))}),s.length>3&&t.push(" ..."),t}function lr(e,t,s){return ue(t)?(t=JSON.stringify(t),s?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?s?t:[`${e}=${t}`]:he(t)?(t=lr(e,q(t.value),!0),s?t:[`${e}=Ref<`,t,">"]):L(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=q(t),s?t:[`${e}=`,t])}function $t(e,t,s,n){try{return n?e(...n):e()}catch(r){ks(r,t,s)}}function qe(e,t,s,n){if(L(e)){const r=$t(e,t,s,n);return r&&On(r)&&r.catch(o=>{ks(o,t,s)}),r}if(V(e)){const r=[];for(let o=0;o<e.length;o++)r.push(qe(e[o],t,s,n));return r}}function ks(e,t,s,n=!0){const r=t?t.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||Z;if(t){let i=t.parent;const a=t.proxy,g=`https://vuejs.org/error-reference/#runtime-${s}`;for(;i;){const h=i.ec;if(h){for(let _=0;_<h.length;_++)if(h[_](e,a,g)===!1)return}i=i.parent}if(o){je(),$t(o,null,10,[e,a,g]),He();return}}ll(e,s,r,n,l)}function ll(e,t,s,n=!0,r=!1){if(r)throw e;console.error(e)}const be=[];let We=-1;const Pt=[];let at=null,At=0;const ir=Promise.resolve();let Cs=null;function cn(e){const t=Cs||ir;return e?t.then(this?e.bind(this):e):t}function il(e){let t=We+1,s=be.length;for(;t<s;){const n=t+s>>>1,r=be[n],o=Jt(r);o<e||o===e&&r.flags&2?t=n+1:s=n}return t}function fn(e){if(!(e.flags&1)){const t=Jt(e),s=be[be.length-1];!s||!(e.flags&2)&&t>=Jt(s)?be.push(e):be.splice(il(t),0,e),e.flags|=1,ar()}}function ar(){Cs||(Cs=ir.then(fr))}function al(e){V(e)?Pt.push(...e):at&&e.id===-1?at.splice(At+1,0,e):e.flags&1||(Pt.push(e),e.flags|=1),ar()}function ur(e,t,s=We+1){for(;s<be.length;s++){const n=be[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;be.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function cr(e){if(Pt.length){const t=[...new Set(Pt)].sort((s,n)=>Jt(s)-Jt(n));if(Pt.length=0,at){at.push(...t);return}for(at=t,At=0;At<at.length;At++){const s=at[At];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}at=null,At=0}}const Jt=e=>e.id==null?e.flags&2?-1:1/0:e.id;function fr(e){try{for(We=0;We<be.length;We++){const t=be[We];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),$t(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;We<be.length;We++){const t=be[We];t&&(t.flags&=-2)}We=-1,be.length=0,cr(),Cs=null,(be.length||Pt.length)&&fr()}}let Ve=null,dr=null;function Ss(e){const t=Ve;return Ve=e,dr=e&&e.type.__scopeId||null,t}function ul(e,t=Ve,s){if(!t||e._n)return e;const n=(...r)=>{n._d&&Br(-1);const o=Ss(t);let l;try{l=e(...r)}finally{Ss(o),n._d&&Br(1)}return l};return n._n=!0,n._c=!0,n._d=!0,n}function le(e,t){if(Ve===null)return e;const s=Us(Ve),n=e.dirs||(e.dirs=[]);for(let r=0;r<t.length;r++){let[o,l,i,a=Z]=t[r];o&&(L(o)&&(o={mounted:o,updated:o}),o.deep&&Ze(l),n.push({dir:o,instance:s,value:l,oldValue:void 0,arg:i,modifiers:a}))}return e}function _t(e,t,s,n){const r=e.dirs,o=t&&t.dirs;for(let l=0;l<r.length;l++){const i=r[l];o&&(i.oldValue=o[l].value);let a=i.dir[n];a&&(je(),qe(a,s,8,[e.el,i,e,t]),He())}}const cl=Symbol("_vte"),fl=e=>e.__isTeleport;function dn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,dn(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 pr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Yt(e,t,s,n,r=!1){if(V(e)){e.forEach((E,M)=>Yt(E,t&&(V(t)?t[M]:t),s,n,r));return}if(Qt(n)&&!r){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Yt(e,t,s,n.component.subTree);return}const o=n.shapeFlag&4?Us(n.component):n.el,l=r?null:o,{i,r:a}=e,g=t&&t.r,h=i.refs===Z?i.refs={}:i.refs,_=i.setupState,m=q(_),y=_===Z?()=>!1:E=>z(m,E);if(g!=null&&g!==a&&(ue(g)?(h[g]=null,y(g)&&(_[g]=null)):he(g)&&(g.value=null)),L(a))$t(a,i,12,[l,h]);else{const E=ue(a),M=he(a);if(E||M){const ne=()=>{if(e.f){const B=E?y(a)?_[a]:h[a]:a.value;r?V(B)&&qs(B,o):V(B)?B.includes(o)||B.push(o):E?(h[a]=[o],y(a)&&(_[a]=h[a])):(a.value=[o],e.k&&(h[e.k]=a.value))}else E?(h[a]=l,y(a)&&(_[a]=l)):M&&(a.value=l,e.k&&(h[e.k]=l))};l?(ne.id=-1,Pe(ne,s)):ne()}}}hs().requestIdleCallback,hs().cancelIdleCallback;const Qt=e=>!!e.type.__asyncLoader,hr=e=>e.type.__isKeepAlive;function dl(e,t){vr(e,"a",t)}function pl(e,t){vr(e,"da",t)}function vr(e,t,s=we){const n=e.__wdc||(e.__wdc=()=>{let r=s;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Ts(t,n,s),s){let r=s.parent;for(;r&&r.parent;)hr(r.parent.vnode)&&hl(n,t,s,r),r=r.parent}}function hl(e,t,s,n){const r=Ts(t,e,n,!0);Es(()=>{qs(n[t],r)},s)}function Ts(e,t,s=we,n=!1){if(s){const r=s[e]||(s[e]=[]),o=t.__weh||(t.__weh=(...l)=>{je();const i=ns(s),a=qe(t,s,e,l);return i(),He(),a});return n?r.unshift(o):r.push(o),o}}const et=e=>(t,s=we)=>{(!rs||e==="sp")&&Ts(e,(...n)=>t(...n),s)},vl=et("bm"),It=et("m"),gl=et("bu"),ml=et("u"),_l=et("bum"),Es=et("um"),bl=et("sp"),yl=et("rtg"),wl=et("rtc");function xl(e,t=we){Ts("ec",e,t)}const kl=Symbol.for("v-ndc");function pn(e,t,s,n){let r;const o=s,l=V(e);if(l||ue(e)){const i=l&&Et(e);let a=!1,g=!1;i&&(a=!Ue(e),g=it(e),e=vs(e)),r=new Array(e.length);for(let h=0,_=e.length;h<_;h++)r[h]=t(a?g?ys(pe(e[h])):pe(e[h]):e[h],h,void 0,o)}else if(typeof e=="number"){r=new Array(e);for(let i=0;i<e;i++)r[i]=t(i+1,i,void 0,o)}else if(re(e))if(e[Symbol.iterator])r=Array.from(e,(i,a)=>t(i,a,void 0,o));else{const i=Object.keys(e);r=new Array(i.length);for(let a=0,g=i.length;a<g;a++){const h=i[a];r[a]=t(e[h],h,a,o)}}else r=[];return r}const hn=e=>e?Kr(e)?Us(e):hn(e.parent):null,Xt=_e(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=>hn(e.parent),$root:e=>hn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>br(e),$forceUpdate:e=>e.f||(e.f=()=>{fn(e.update)}),$nextTick:e=>e.n||(e.n=cn.bind(e.proxy)),$watch:e=>Wl.bind(e)}),vn=(e,t)=>e!==Z&&!e.__isScriptSetup&&z(e,t),Cl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:r,props:o,accessCache:l,type:i,appContext:a}=e;let g;if(t[0]!=="$"){const y=l[t];if(y!==void 0)switch(y){case 1:return n[t];case 2:return r[t];case 4:return s[t];case 3:return o[t]}else{if(vn(n,t))return l[t]=1,n[t];if(r!==Z&&z(r,t))return l[t]=2,r[t];if((g=e.propsOptions[0])&&z(g,t))return l[t]=3,o[t];if(s!==Z&&z(s,t))return l[t]=4,s[t];gn&&(l[t]=0)}}const h=Xt[t];let _,m;if(h)return t==="$attrs"&&ge(e.attrs,"get",""),h(e);if((_=i.__cssModules)&&(_=_[t]))return _;if(s!==Z&&z(s,t))return l[t]=4,s[t];if(m=a.config.globalProperties,z(m,t))return m[t]},set({_:e},t,s){const{data:n,setupState:r,ctx:o}=e;return vn(r,t)?(r[t]=s,!0):n!==Z&&z(n,t)?(n[t]=s,!0):z(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:r,propsOptions:o}},l){let i;return!!s[l]||e!==Z&&z(e,l)||vn(t,l)||(i=o[0])&&z(i,l)||z(n,l)||z(Xt,l)||z(r.config.globalProperties,l)},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:z(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function gr(e){return V(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let gn=!0;function Sl(e){const t=br(e),s=e.proxy,n=e.ctx;gn=!1,t.beforeCreate&&mr(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:l,watch:i,provide:a,inject:g,created:h,beforeMount:_,mounted:m,beforeUpdate:y,updated:E,activated:M,deactivated:ne,beforeDestroy:B,beforeUnmount:W,destroyed:K,unmounted:O,render:G,renderTracked:ke,renderTriggered:Te,errorCaptured:Oe,serverPrefetch:ht,expose:Re,inheritAttrs:Le,components:ae,directives:D,filters:w}=t;if(g&&Tl(g,n,null),l)for(const J in l){const X=l[J];L(X)&&(n[J]=X.bind(s))}if(r){const J=r.call(s,s);re(J)&&(e.data=Tt(J))}if(gn=!0,o)for(const J in o){const X=o[J],st=L(X)?X.bind(s,s):L(X.get)?X.get.bind(s,s):Be,Vt=!L(X)&&L(X.set)?X.set.bind(s):Be,nt=Ie({get:st,set:Vt});Object.defineProperty(n,J,{enumerable:!0,configurable:!0,get:()=>nt.value,set:De=>nt.value=De})}if(i)for(const J in i)_r(i[J],n,s,J);if(a){const J=L(a)?a.call(s):a;Reflect.ownKeys(J).forEach(X=>{Ol(X,J[X])})}h&&mr(h,e,"c");function U(J,X){V(X)?X.forEach(st=>J(st.bind(s))):X&&J(X.bind(s))}if(U(vl,_),U(It,m),U(gl,y),U(ml,E),U(dl,M),U(pl,ne),U(xl,Oe),U(wl,ke),U(yl,Te),U(_l,W),U(Es,O),U(bl,ht),V(Re))if(Re.length){const J=e.exposed||(e.exposed={});Re.forEach(X=>{Object.defineProperty(J,X,{get:()=>s[X],set:st=>s[X]=st,enumerable:!0})})}else e.exposed||(e.exposed={});G&&e.render===Be&&(e.render=G),Le!=null&&(e.inheritAttrs=Le),ae&&(e.components=ae),D&&(e.directives=D),ht&&pr(e)}function Tl(e,t,s=Be){V(e)&&(e=mn(e));for(const n in e){const r=e[n];let o;re(r)?"default"in r?o=Ps(r.from||n,r.default,!0):o=Ps(r.from||n):o=Ps(r),he(o)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>o.value,set:l=>o.value=l}):t[n]=o}}function mr(e,t,s){qe(V(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function _r(e,t,s,n){let r=n.includes(".")?Vr(s,n):()=>s[n];if(ue(e)){const o=t[e];L(o)&&Dt(r,o)}else if(L(e))Dt(r,e.bind(s));else if(re(e))if(V(e))e.forEach(o=>_r(o,t,s,n));else{const o=L(e.handler)?e.handler.bind(s):t[e.handler];L(o)&&Dt(r,o,e)}}function br(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:l}}=e.appContext,i=o.get(t);let a;return i?a=i:!r.length&&!s&&!n?a=t:(a={},r.length&&r.forEach(g=>$s(a,g,l,!0)),$s(a,t,l)),re(t)&&o.set(t,a),a}function $s(e,t,s,n=!1){const{mixins:r,extends:o}=t;o&&$s(e,o,s,!0),r&&r.forEach(l=>$s(e,l,s,!0));for(const l in t)if(!(n&&l==="expose")){const i=El[l]||s&&s[l];e[l]=i?i(e[l],t[l]):t[l]}return e}const El={data:yr,props:wr,emits:wr,methods:Zt,computed:Zt,beforeCreate:ye,created:ye,beforeMount:ye,mounted:ye,beforeUpdate:ye,updated:ye,beforeDestroy:ye,beforeUnmount:ye,destroyed:ye,unmounted:ye,activated:ye,deactivated:ye,errorCaptured:ye,serverPrefetch:ye,components:Zt,directives:Zt,watch:Pl,provide:yr,inject:$l};function yr(e,t){return t?e?function(){return _e(L(e)?e.call(this,this):e,L(t)?t.call(this,this):t)}:t:e}function $l(e,t){return Zt(mn(e),mn(t))}function mn(e){if(V(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function ye(e,t){return e?[...new Set([].concat(e,t))]:t}function Zt(e,t){return e?_e(Object.create(null),e,t):t}function wr(e,t){return e?V(e)&&V(t)?[...new Set([...e,...t])]:_e(Object.create(null),gr(e),gr(t??{})):t}function Pl(e,t){if(!e)return t;if(!t)return e;const s=_e(Object.create(null),e);for(const n in t)s[n]=ye(e[n],t[n]);return s}function xr(){return{app:null,config:{isNativeTag:go,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Al=0;function Il(e,t){return function(n,r=null){L(n)||(n=_e({},n)),r!=null&&!re(r)&&(r=null);const o=xr(),l=new WeakSet,i=[];let a=!1;const g=o.app={_uid:Al++,_component:n,_props:r,_container:null,_context:o,_instance:null,version:mi,get config(){return o.config},set config(h){},use(h,..._){return l.has(h)||(h&&L(h.install)?(l.add(h),h.install(g,..._)):L(h)&&(l.add(h),h(g,..._))),g},mixin(h){return o.mixins.includes(h)||o.mixins.push(h),g},component(h,_){return _?(o.components[h]=_,g):o.components[h]},directive(h,_){return _?(o.directives[h]=_,g):o.directives[h]},mount(h,_,m){if(!a){const y=g._ceVNode||ie(n,r);return y.appContext=o,m===!0?m="svg":m===!1&&(m=void 0),e(y,h,m),a=!0,g._container=h,h.__vue_app__=g,Us(y.component)}},onUnmount(h){i.push(h)},unmount(){a&&(qe(i,g._instance,16),e(null,g._container),delete g._container.__vue_app__)},provide(h,_){return o.provides[h]=_,g},runWithContext(h){const _=Ot;Ot=g;try{return h()}finally{Ot=_}}};return g}}let Ot=null;function Ol(e,t){if(we){let s=we.provides;const n=we.parent&&we.parent.provides;n===s&&(s=we.provides=Object.create(n)),s[e]=t}}function Ps(e,t,s=!1){const n=ai();if(n||Ot){let r=Ot?Ot._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return s&&L(t)?t.call(n&&n.proxy):t}}const kr={},Cr=()=>Object.create(kr),Sr=e=>Object.getPrototypeOf(e)===kr;function Dl(e,t,s,n=!1){const r={},o=Cr();e.propsDefaults=Object.create(null),Tr(e,t,r,o);for(const l in e.propsOptions[0])l in r||(r[l]=void 0);s?e.props=n?r:Ko(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function Ml(e,t,s,n){const{props:r,attrs:o,vnode:{patchFlag:l}}=e,i=q(r),[a]=e.propsOptions;let g=!1;if((n||l>0)&&!(l&16)){if(l&8){const h=e.vnode.dynamicProps;for(let _=0;_<h.length;_++){let m=h[_];if(As(e.emitsOptions,m))continue;const y=t[m];if(a)if(z(o,m))y!==o[m]&&(o[m]=y,g=!0);else{const E=ot(m);r[E]=_n(a,i,E,y,e,!1)}else y!==o[m]&&(o[m]=y,g=!0)}}}else{Tr(e,t,r,o)&&(g=!0);let h;for(const _ in i)(!t||!z(t,_)&&((h=vt(_))===_||!z(t,h)))&&(a?s&&(s[_]!==void 0||s[h]!==void 0)&&(r[_]=_n(a,i,_,void 0,e,!0)):delete r[_]);if(o!==i)for(const _ in o)(!t||!z(t,_))&&(delete o[_],g=!0)}g&&Qe(e.attrs,"set","")}function Tr(e,t,s,n){const[r,o]=e.propsOptions;let l=!1,i;if(t)for(let a in t){if(Bt(a))continue;const g=t[a];let h;r&&z(r,h=ot(a))?!o||!o.includes(h)?s[h]=g:(i||(i={}))[h]=g:As(e.emitsOptions,a)||(!(a in n)||g!==n[a])&&(n[a]=g,l=!0)}if(o){const a=q(s),g=i||Z;for(let h=0;h<o.length;h++){const _=o[h];s[_]=_n(r,a,_,g[_],e,!z(g,_))}}return l}function _n(e,t,s,n,r,o){const l=e[s];if(l!=null){const i=z(l,"default");if(i&&n===void 0){const a=l.default;if(l.type!==Function&&!l.skipFactory&&L(a)){const{propsDefaults:g}=r;if(s in g)n=g[s];else{const h=ns(r);n=g[s]=a.call(null,t),h()}}else n=a;r.ce&&r.ce._setProp(s,n)}l[0]&&(o&&!i?n=!1:l[1]&&(n===""||n===vt(s))&&(n=!0))}return n}const Ul=new WeakMap;function Er(e,t,s=!1){const n=s?Ul:t.propsCache,r=n.get(e);if(r)return r;const o=e.props,l={},i=[];let a=!1;if(!L(e)){const h=_=>{a=!0;const[m,y]=Er(_,t,!0);_e(l,m),y&&i.push(...y)};!s&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!o&&!a)return re(e)&&n.set(e,kt),kt;if(V(o))for(let h=0;h<o.length;h++){const _=ot(o[h]);$r(_)&&(l[_]=Z)}else if(o)for(const h in o){const _=ot(h);if($r(_)){const m=o[h],y=l[_]=V(m)||L(m)?{type:m}:_e({},m),E=y.type;let M=!1,ne=!0;if(V(E))for(let B=0;B<E.length;++B){const W=E[B],K=L(W)&&W.name;if(K==="Boolean"){M=!0;break}else K==="String"&&(ne=!1)}else M=L(E)&&E.name==="Boolean";y[0]=M,y[1]=ne,(M||z(y,"default"))&&i.push(_)}}const g=[l,i];return re(e)&&n.set(e,g),g}function $r(e){return e[0]!=="$"&&!Bt(e)}const bn=e=>e==="_"||e==="__"||e==="_ctx"||e==="$stable",yn=e=>V(e)?e.map(Ke):[Ke(e)],Vl=(e,t,s)=>{if(t._n)return t;const n=ul((...r)=>yn(t(...r)),s);return n._c=!1,n},Pr=(e,t,s)=>{const n=e._ctx;for(const r in e){if(bn(r))continue;const o=e[r];if(L(o))t[r]=Vl(r,o,n);else if(o!=null){const l=yn(o);t[r]=()=>l}}},Ar=(e,t)=>{const s=yn(t);e.slots.default=()=>s},Ir=(e,t,s)=>{for(const n in t)(s||!bn(n))&&(e[n]=t[n])},Rl=(e,t,s)=>{const n=e.slots=Cr();if(e.vnode.shapeFlag&32){const r=t.__;r&&Gs(n,"__",r,!0);const o=t._;o?(Ir(n,t,s),s&&Gs(n,"_",o,!0)):Pr(t,n)}else t&&Ar(e,t)},Ll=(e,t,s)=>{const{vnode:n,slots:r}=e;let o=!0,l=Z;if(n.shapeFlag&32){const i=t._;i?s&&i===1?o=!1:Ir(r,t,s):(o=!t.$stable,Pr(t,r)),l=t}else t&&(Ar(e,t),l={default:1});if(o)for(const i in r)!bn(i)&&l[i]==null&&delete r[i]},Pe=Xl;function Fl(e){return Nl(e)}function Nl(e,t){const s=hs();s.__VUE__=!0;const{insert:n,remove:r,patchProp:o,createElement:l,createText:i,createComment:a,setText:g,setElementText:h,parentNode:_,nextSibling:m,setScopeId:y=Be,insertStaticContent:E}=e,M=(u,p,b,v=null,d=null,f=null,C=void 0,S=null,k=!!p.dynamicChildren)=>{if(u===p)return;u&&!ss(u,p)&&(v=Lt(u),De(u,d,f,!0),u=null),p.patchFlag===-2&&(k=!1,p.dynamicChildren=null);const{type:x,ref:A,shapeFlag:T}=p;switch(x){case Is:ne(u,p,b,v);break;case ut:B(u,p,b,v);break;case Os:u==null&&W(p,b,v,C);break;case Se:ae(u,p,b,v,d,f,C,S,k);break;default:T&1?G(u,p,b,v,d,f,C,S,k):T&6?D(u,p,b,v,d,f,C,S,k):(T&64||T&128)&&x.process(u,p,b,v,d,f,C,S,k,Ne)}A!=null&&d?Yt(A,u&&u.ref,f,p||u,!p):A==null&&u&&u.ref!=null&&Yt(u.ref,null,f,u,!0)},ne=(u,p,b,v)=>{if(u==null)n(p.el=i(p.children),b,v);else{const d=p.el=u.el;p.children!==u.children&&g(d,p.children)}},B=(u,p,b,v)=>{u==null?n(p.el=a(p.children||""),b,v):p.el=u.el},W=(u,p,b,v)=>{[u.el,u.anchor]=E(u.children,p,b,v,u.el,u.anchor)},K=({el:u,anchor:p},b,v)=>{let d;for(;u&&u!==p;)d=m(u),n(u,b,v),u=d;n(p,b,v)},O=({el:u,anchor:p})=>{let b;for(;u&&u!==p;)b=m(u),r(u),u=b;r(p)},G=(u,p,b,v,d,f,C,S,k)=>{p.type==="svg"?C="svg":p.type==="math"&&(C="mathml"),u==null?ke(p,b,v,d,f,C,S,k):ht(u,p,d,f,C,S,k)},ke=(u,p,b,v,d,f,C,S)=>{let k,x;const{props:A,shapeFlag:T,transition:$,dirs:R}=u;if(k=u.el=l(u.type,f,A&&A.is,A),T&8?h(k,u.children):T&16&&Oe(u.children,k,null,v,d,wn(u,f),C,S),R&&_t(u,null,v,"created"),Te(k,u,u.scopeId,C,v),A){for(const te in A)te!=="value"&&!Bt(te)&&o(k,te,null,A[te],f,v);"value"in A&&o(k,"value",null,A.value,f),(x=A.onVnodeBeforeMount)&&Ge(x,v,u)}R&&_t(u,null,v,"beforeMount");const H=Bl(d,$);H&&$.beforeEnter(k),n(k,p,b),((x=A&&A.onVnodeMounted)||H||R)&&Pe(()=>{x&&Ge(x,v,u),H&&$.enter(k),R&&_t(u,null,v,"mounted")},d)},Te=(u,p,b,v,d)=>{if(b&&y(u,b),v)for(let f=0;f<v.length;f++)y(u,v[f]);if(d){let f=d.subTree;if(p===f||Nr(f.type)&&(f.ssContent===p||f.ssFallback===p)){const C=d.vnode;Te(u,C,C.scopeId,C.slotScopeIds,d.parent)}}},Oe=(u,p,b,v,d,f,C,S,k=0)=>{for(let x=k;x<u.length;x++){const A=u[x]=S?ct(u[x]):Ke(u[x]);M(null,A,p,b,v,d,f,C,S)}},ht=(u,p,b,v,d,f,C)=>{const S=p.el=u.el;let{patchFlag:k,dynamicChildren:x,dirs:A}=p;k|=u.patchFlag&16;const T=u.props||Z,$=p.props||Z;let R;if(b&&bt(b,!1),(R=$.onVnodeBeforeUpdate)&&Ge(R,b,p,u),A&&_t(p,u,b,"beforeUpdate"),b&&bt(b,!0),(T.innerHTML&&$.innerHTML==null||T.textContent&&$.textContent==null)&&h(S,""),x?Re(u.dynamicChildren,x,S,b,v,wn(p,d),f):C||X(u,p,S,null,b,v,wn(p,d),f,!1),k>0){if(k&16)Le(S,T,$,b,d);else if(k&2&&T.class!==$.class&&o(S,"class",null,$.class,d),k&4&&o(S,"style",T.style,$.style,d),k&8){const H=p.dynamicProps;for(let te=0;te<H.length;te++){const Y=H[te],Ee=T[Y],$e=$[Y];($e!==Ee||Y==="value")&&o(S,Y,Ee,$e,d,b)}}k&1&&u.children!==p.children&&h(S,p.children)}else!C&&x==null&&Le(S,T,$,b,d);((R=$.onVnodeUpdated)||A)&&Pe(()=>{R&&Ge(R,b,p,u),A&&_t(p,u,b,"updated")},v)},Re=(u,p,b,v,d,f,C)=>{for(let S=0;S<p.length;S++){const k=u[S],x=p[S],A=k.el&&(k.type===Se||!ss(k,x)||k.shapeFlag&198)?_(k.el):b;M(k,x,A,null,v,d,f,C,!0)}},Le=(u,p,b,v,d)=>{if(p!==b){if(p!==Z)for(const f in p)!Bt(f)&&!(f in b)&&o(u,f,p[f],null,d,v);for(const f in b){if(Bt(f))continue;const C=b[f],S=p[f];C!==S&&f!=="value"&&o(u,f,S,C,d,v)}"value"in b&&o(u,"value",p.value,b.value,d)}},ae=(u,p,b,v,d,f,C,S,k)=>{const x=p.el=u?u.el:i(""),A=p.anchor=u?u.anchor:i("");let{patchFlag:T,dynamicChildren:$,slotScopeIds:R}=p;R&&(S=S?S.concat(R):R),u==null?(n(x,b,v),n(A,b,v),Oe(p.children||[],b,A,d,f,C,S,k)):T>0&&T&64&&$&&u.dynamicChildren?(Re(u.dynamicChildren,$,b,d,f,C,S),(p.key!=null||d&&p===d.subTree)&&Or(u,p,!0)):X(u,p,b,A,d,f,C,S,k)},D=(u,p,b,v,d,f,C,S,k)=>{p.slotScopeIds=S,u==null?p.shapeFlag&512?d.ctx.activate(p,b,v,C,k):w(p,b,v,d,f,C,k):me(u,p,k)},w=(u,p,b,v,d,f,C)=>{const S=u.component=ii(u,v,d);if(hr(u)&&(S.ctx.renderer=Ne),ui(S,!1,C),S.asyncDep){if(d&&d.registerDep(S,U,C),!u.el){const k=S.subTree=ie(ut);B(null,k,p,b),u.placeholder=k.el}}else U(S,u,p,b,d,f,C)},me=(u,p,b)=>{const v=p.component=u.component;if(Yl(u,p,b))if(v.asyncDep&&!v.asyncResolved){J(v,p,b);return}else v.next=p,v.update();else p.el=u.el,v.vnode=p},U=(u,p,b,v,d,f,C)=>{const S=()=>{if(u.isMounted){let{next:T,bu:$,u:R,parent:H,vnode:te}=u;{const Je=Dr(u);if(Je){T&&(T.el=te.el,J(u,T,C)),Je.asyncDep.then(()=>{u.isUnmounted||S()});return}}let Y=T,Ee;bt(u,!1),T?(T.el=te.el,J(u,T,C)):T=te,$&&ps($),(Ee=T.props&&T.props.onVnodeBeforeUpdate)&&Ge(Ee,H,T,te),bt(u,!0);const $e=Lr(u),ze=u.subTree;u.subTree=$e,M(ze,$e,_(ze.el),Lt(ze),u,d,f),T.el=$e.el,Y===null&&Ql(u,$e.el),R&&Pe(R,d),(Ee=T.props&&T.props.onVnodeUpdated)&&Pe(()=>Ge(Ee,H,T,te),d)}else{let T;const{el:$,props:R}=p,{bm:H,m:te,parent:Y,root:Ee,type:$e}=u,ze=Qt(p);bt(u,!1),H&&ps(H),!ze&&(T=R&&R.onVnodeBeforeMount)&&Ge(T,Y,p),bt(u,!0);{Ee.ce&&Ee.ce._def.shadowRoot!==!1&&Ee.ce._injectChildStyle($e);const Je=u.subTree=Lr(u);M(null,Je,b,v,u,d,f),p.el=Je.el}if(te&&Pe(te,d),!ze&&(T=R&&R.onVnodeMounted)){const Je=p;Pe(()=>Ge(T,Y,Je),d)}(p.shapeFlag&256||Y&&Qt(Y.vnode)&&Y.vnode.shapeFlag&256)&&u.a&&Pe(u.a,d),u.isMounted=!0,p=b=v=null}};u.scope.on();const k=u.effect=new Nn(S);u.scope.off();const x=u.update=k.run.bind(k),A=u.job=k.runIfDirty.bind(k);A.i=u,A.id=u.uid,k.scheduler=()=>fn(A),bt(u,!0),x()},J=(u,p,b)=>{p.component=u;const v=u.vnode.props;u.vnode=p,u.next=null,Ml(u,p.props,v,b),Ll(u,p.children,b),je(),ur(u),He()},X=(u,p,b,v,d,f,C,S,k=!1)=>{const x=u&&u.children,A=u?u.shapeFlag:0,T=p.children,{patchFlag:$,shapeFlag:R}=p;if($>0){if($&128){Vt(x,T,b,v,d,f,C,S,k);return}else if($&256){st(x,T,b,v,d,f,C,S,k);return}}R&8?(A&16&&xt(x,d,f),T!==x&&h(b,T)):A&16?R&16?Vt(x,T,b,v,d,f,C,S,k):xt(x,d,f,!0):(A&8&&h(b,""),R&16&&Oe(T,b,v,d,f,C,S,k))},st=(u,p,b,v,d,f,C,S,k)=>{u=u||kt,p=p||kt;const x=u.length,A=p.length,T=Math.min(x,A);let $;for($=0;$<T;$++){const R=p[$]=k?ct(p[$]):Ke(p[$]);M(u[$],R,b,null,d,f,C,S,k)}x>A?xt(u,d,f,!0,!1,T):Oe(p,b,v,d,f,C,S,k,T)},Vt=(u,p,b,v,d,f,C,S,k)=>{let x=0;const A=p.length;let T=u.length-1,$=A-1;for(;x<=T&&x<=$;){const R=u[x],H=p[x]=k?ct(p[x]):Ke(p[x]);if(ss(R,H))M(R,H,b,null,d,f,C,S,k);else break;x++}for(;x<=T&&x<=$;){const R=u[T],H=p[$]=k?ct(p[$]):Ke(p[$]);if(ss(R,H))M(R,H,b,null,d,f,C,S,k);else break;T--,$--}if(x>T){if(x<=$){const R=$+1,H=R<A?p[R].el:v;for(;x<=$;)M(null,p[x]=k?ct(p[x]):Ke(p[x]),b,H,d,f,C,S,k),x++}}else if(x>$)for(;x<=T;)De(u[x],d,f,!0),x++;else{const R=x,H=x,te=new Map;for(x=H;x<=$;x++){const Me=p[x]=k?ct(p[x]):Ke(p[x]);Me.key!=null&&te.set(Me.key,x)}let Y,Ee=0;const $e=$-H+1;let ze=!1,Je=0;const us=new Array($e);for(x=0;x<$e;x++)us[x]=0;for(x=R;x<=T;x++){const Me=u[x];if(Ee>=$e){De(Me,d,f,!0);continue}let Ye;if(Me.key!=null)Ye=te.get(Me.key);else for(Y=H;Y<=$;Y++)if(us[Y-H]===0&&ss(Me,p[Y])){Ye=Y;break}Ye===void 0?De(Me,d,f,!0):(us[Ye-H]=x+1,Ye>=Je?Je=Ye:ze=!0,M(Me,p[Ye],b,null,d,f,C,S,k),Ee++)}const po=ze?jl(us):kt;for(Y=po.length-1,x=$e-1;x>=0;x--){const Me=H+x,Ye=p[Me],ho=p[Me+1],vo=Me+1<A?ho.el||ho.placeholder:v;us[x]===0?M(null,Ye,b,vo,d,f,C,S,k):ze&&(Y<0||x!==po[Y]?nt(Ye,b,vo,2):Y--)}}},nt=(u,p,b,v,d=null)=>{const{el:f,type:C,transition:S,children:k,shapeFlag:x}=u;if(x&6){nt(u.component.subTree,p,b,v);return}if(x&128){u.suspense.move(p,b,v);return}if(x&64){C.move(u,p,b,Ne);return}if(C===Se){n(f,p,b);for(let T=0;T<k.length;T++)nt(k[T],p,b,v);n(u.anchor,p,b);return}if(C===Os){K(u,p,b);return}if(v!==2&&x&1&&S)if(v===0)S.beforeEnter(f),n(f,p,b),Pe(()=>S.enter(f),d);else{const{leave:T,delayLeave:$,afterLeave:R}=S,H=()=>{u.ctx.isUnmounted?r(f):n(f,p,b)},te=()=>{T(f,()=>{H(),R&&R()})};$?$(f,H,te):te()}else n(f,p,b)},De=(u,p,b,v=!1,d=!1)=>{const{type:f,props:C,ref:S,children:k,dynamicChildren:x,shapeFlag:A,patchFlag:T,dirs:$,cacheIndex:R}=u;if(T===-2&&(d=!1),S!=null&&(je(),Yt(S,null,b,u,!0),He()),R!=null&&(p.renderCache[R]=void 0),A&256){p.ctx.deactivate(u);return}const H=A&1&&$,te=!Qt(u);let Y;if(te&&(Y=C&&C.onVnodeBeforeUnmount)&&Ge(Y,p,u),A&6)An(u.component,b,v);else{if(A&128){u.suspense.unmount(b,v);return}H&&_t(u,null,p,"beforeUnmount"),A&64?u.type.remove(u,p,b,Ne,v):x&&!x.hasOnce&&(f!==Se||T>0&&T&64)?xt(x,p,b,!1,!0):(f===Se&&T&384||!d&&A&16)&&xt(k,p,b),v&&Rt(u)}(te&&(Y=C&&C.onVnodeUnmounted)||H)&&Pe(()=>{Y&&Ge(Y,p,u),H&&_t(u,null,p,"unmounted")},b)},Rt=u=>{const{type:p,el:b,anchor:v,transition:d}=u;if(p===Se){Pn(b,v);return}if(p===Os){O(u);return}const f=()=>{r(b),d&&!d.persisted&&d.afterLeave&&d.afterLeave()};if(u.shapeFlag&1&&d&&!d.persisted){const{leave:C,delayLeave:S}=d,k=()=>C(b,f);S?S(u.el,f,k):k()}else f()},Pn=(u,p)=>{let b;for(;u!==p;)b=m(u),r(u),u=b;r(p)},An=(u,p,b)=>{const{bum:v,scope:d,job:f,subTree:C,um:S,m:k,a:x,parent:A,slots:{__:T}}=u;Mr(k),Mr(x),v&&ps(v),A&&V(T)&&T.forEach($=>{A.renderCache[$]=void 0}),d.stop(),f&&(f.flags|=8,De(C,u,p,b)),S&&Pe(S,p),Pe(()=>{u.isUnmounted=!0},p),p&&p.pendingBranch&&!p.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===p.pendingId&&(p.deps--,p.deps===0&&p.resolve())},xt=(u,p,b,v=!1,d=!1,f=0)=>{for(let C=f;C<u.length;C++)De(u[C],p,b,v,d)},Lt=u=>{if(u.shapeFlag&6)return Lt(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const p=m(u.anchor||u.el),b=p&&p[cl];return b?m(b):p};let Ft=!1;const Bs=(u,p,b)=>{u==null?p._vnode&&De(p._vnode,null,null,!0):M(p._vnode||null,u,p,null,null,null,b),p._vnode=u,Ft||(Ft=!0,ur(),cr(),Ft=!1)},Ne={p:M,um:De,m:nt,r:Rt,mt:w,mc:Oe,pc:X,pbc:Re,n:Lt,o:e};return{render:Bs,hydrate:void 0,createApp:Il(Bs)}}function wn({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 bt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Bl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Or(e,t,s=!1){const n=e.children,r=t.children;if(V(n)&&V(r))for(let o=0;o<n.length;o++){const l=n[o];let i=r[o];i.shapeFlag&1&&!i.dynamicChildren&&((i.patchFlag<=0||i.patchFlag===32)&&(i=r[o]=ct(r[o]),i.el=l.el),!s&&i.patchFlag!==-2&&Or(l,i)),i.type===Is&&(i.el=l.el),i.type===ut&&!i.el&&(i.el=l.el)}}function jl(e){const t=e.slice(),s=[0];let n,r,o,l,i;const a=e.length;for(n=0;n<a;n++){const g=e[n];if(g!==0){if(r=s[s.length-1],e[r]<g){t[n]=r,s.push(n);continue}for(o=0,l=s.length-1;o<l;)i=o+l>>1,e[s[i]]<g?o=i+1:l=i;g<e[s[o]]&&(o>0&&(t[n]=s[o-1]),s[o]=n)}}for(o=s.length,l=s[o-1];o-- >0;)s[o]=l,l=t[l];return s}function Dr(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Dr(t)}function Mr(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}const Hl=Symbol.for("v-scx"),ql=()=>Ps(Hl);function Dt(e,t,s){return Ur(e,t,s)}function Ur(e,t,s=Z){const{immediate:n,deep:r,flush:o,once:l}=s,i=_e({},s),a=t&&n||!t&&o!=="post";let g;if(rs){if(o==="sync"){const y=ql();g=y.__watcherHandles||(y.__watcherHandles=[])}else if(!a){const y=()=>{};return y.stop=Be,y.resume=Be,y.pause=Be,y}}const h=we;i.call=(y,E,M)=>qe(y,h,E,M);let _=!1;o==="post"?i.scheduler=y=>{Pe(y,h&&h.suspense)}:o!=="sync"&&(_=!0,i.scheduler=(y,E)=>{E?y():fn(y)}),i.augmentJob=y=>{t&&(y.flags|=4),_&&(y.flags|=2,h&&(y.id=h.uid,y.i=h))};const m=tl(e,t,i);return rs&&(g?g.push(m):a&&m()),m}function Wl(e,t,s){const n=this.proxy,r=ue(e)?e.includes(".")?Vr(n,e):()=>n[e]:e.bind(n,n);let o;L(t)?o=t:(o=t.handler,s=t);const l=ns(this),i=Ur(r,o.bind(n),s);return l(),i}function Vr(e,t){const s=t.split(".");return()=>{let n=e;for(let r=0;r<s.length&&n;r++)n=n[s[r]];return n}}const Kl=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ot(t)}Modifiers`]||e[`${vt(t)}Modifiers`];function Gl(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||Z;let r=s;const o=t.startsWith("update:"),l=o&&Kl(n,t.slice(7));l&&(l.trim&&(r=s.map(h=>ue(h)?h.trim():h)),l.number&&(r=s.map(zs)));let i,a=n[i=Ks(t)]||n[i=Ks(ot(t))];!a&&o&&(a=n[i=Ks(vt(t))]),a&&qe(a,e,6,r);const g=n[i+"Once"];if(g){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,qe(g,e,6,r)}}function Rr(e,t,s=!1){const n=t.emitsCache,r=n.get(e);if(r!==void 0)return r;const o=e.emits;let l={},i=!1;if(!L(e)){const a=g=>{const h=Rr(g,t,!0);h&&(i=!0,_e(l,h))};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!o&&!i?(re(e)&&n.set(e,null),null):(V(o)?o.forEach(a=>l[a]=null):_e(l,o),re(e)&&n.set(e,l),l)}function As(e,t){return!e||!cs(t)?!1:(t=t.slice(2).replace(/Once$/,""),z(e,t[0].toLowerCase()+t.slice(1))||z(e,vt(t))||z(e,t))}function Yc(){}function Lr(e){const{type:t,vnode:s,proxy:n,withProxy:r,propsOptions:[o],slots:l,attrs:i,emit:a,render:g,renderCache:h,props:_,data:m,setupState:y,ctx:E,inheritAttrs:M}=e,ne=Ss(e);let B,W;try{if(s.shapeFlag&4){const O=r||n,G=O;B=Ke(g.call(G,O,h,_,y,m,E)),W=i}else{const O=t;B=Ke(O.length>1?O(_,{attrs:i,slots:l,emit:a}):O(_,null)),W=t.props?i:zl(i)}}catch(O){es.length=0,ks(O,e,1),B=ie(ut)}let K=B;if(W&&M!==!1){const O=Object.keys(W),{shapeFlag:G}=K;O.length&&G&7&&(o&&O.some(Hs)&&(W=Jl(W,o)),K=Mt(K,W,!1,!0))}return s.dirs&&(K=Mt(K,null,!1,!0),K.dirs=K.dirs?K.dirs.concat(s.dirs):s.dirs),s.transition&&dn(K,s.transition),B=K,Ss(ne),B}const zl=e=>{let t;for(const s in e)(s==="class"||s==="style"||cs(s))&&((t||(t={}))[s]=e[s]);return t},Jl=(e,t)=>{const s={};for(const n in e)(!Hs(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function Yl(e,t,s){const{props:n,children:r,component:o}=e,{props:l,children:i,patchFlag:a}=t,g=o.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&a>=0){if(a&1024)return!0;if(a&16)return n?Fr(n,l,g):!!l;if(a&8){const h=t.dynamicProps;for(let _=0;_<h.length;_++){const m=h[_];if(l[m]!==n[m]&&!As(g,m))return!0}}}else return(r||i)&&(!i||!i.$stable)?!0:n===l?!1:n?l?Fr(n,l,g):!0:!!l;return!1}function Fr(e,t,s){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let r=0;r<n.length;r++){const o=n[r];if(t[o]!==e[o]&&!As(s,o))return!0}return!1}function Ql({vnode:e,parent:t},s){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.el=e.el),n===e)(e=t.vnode).el=s,t=t.parent;else break}}const Nr=e=>e.__isSuspense;function Xl(e,t){t&&t.pendingBranch?V(e)?t.effects.push(...e):t.effects.push(e):al(e)}const Se=Symbol.for("v-fgt"),Is=Symbol.for("v-txt"),ut=Symbol.for("v-cmt"),Os=Symbol.for("v-stc"),es=[];let Ae=null;function P(e=!1){es.push(Ae=e?null:[])}function Zl(){es.pop(),Ae=es[es.length-1]||null}let ts=1;function Br(e,t=!1){ts+=e,e<0&&Ae&&t&&(Ae.hasOnce=!0)}function jr(e){return e.dynamicChildren=ts>0?Ae||kt:null,Zl(),ts>0&&Ae&&Ae.push(e),e}function I(e,t,s,n,r,o){return jr(c(e,t,s,n,r,o,!0))}function xn(e,t,s,n,r){return jr(ie(e,t,s,n,r,!0))}function Hr(e){return e?e.__v_isVNode===!0:!1}function ss(e,t){return e.type===t.type&&e.key===t.key}const qr=({key:e})=>e??null,Ds=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?ue(e)||he(e)||L(e)?{i:Ve,r:e,k:t,f:!!s}:e:null);function c(e,t=null,s=null,n=0,r=null,o=e===Se?0:1,l=!1,i=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qr(t),ref:t&&Ds(t),scopeId:dr,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:o,patchFlag:n,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ve};return i?(kn(a,s),o&128&&e.normalize(a)):s&&(a.shapeFlag|=ue(s)?8:16),ts>0&&!l&&Ae&&(a.patchFlag>0||o&6)&&a.patchFlag!==32&&Ae.push(a),a}const ie=ei;function ei(e,t=null,s=null,n=0,r=null,o=!1){if((!e||e===kl)&&(e=ut),Hr(e)){const i=Mt(e,t,!0);return s&&kn(i,s),ts>0&&!o&&Ae&&(i.shapeFlag&6?Ae[Ae.indexOf(e)]=i:Ae.push(i)),i.patchFlag=-2,i}if(gi(e)&&(e=e.__vccOpts),t){t=ti(t);let{class:i,style:a}=t;i&&!ue(i)&&(t.class=ce(i)),re(a)&&(an(a)&&!V(a)&&(a=_e({},a)),t.style=jt(a))}const l=ue(e)?1:Nr(e)?128:fl(e)?64:re(e)?4:L(e)?2:0;return c(e,t,s,n,r,l,o,!0)}function ti(e){return e?an(e)||Sr(e)?_e({},e):e:null}function Mt(e,t,s=!1,n=!1){const{props:r,ref:o,patchFlag:l,children:i,transition:a}=e,g=t?ri(r||{},t):r,h={__v_isVNode:!0,__v_skip:!0,type:e.type,props:g,key:g&&qr(g),ref:t&&t.ref?s&&o?V(o)?o.concat(Ds(t)):[o,Ds(t)]:Ds(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Se?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Mt(e.ssContent),ssFallback:e.ssFallback&&Mt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&n&&dn(h,a.clone(h)),h}function si(e=" ",t=0){return ie(Is,null,e,t)}function ni(e,t){const s=ie(Os,null,e);return s.staticCount=t,s}function N(e="",t=!1){return t?(P(),xn(ut,null,e)):ie(ut,null,e)}function Ke(e){return e==null||typeof e=="boolean"?ie(ut):V(e)?ie(Se,null,e.slice()):Hr(e)?ct(e):ie(Is,null,String(e))}function ct(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Mt(e)}function kn(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(V(t))s=16;else if(typeof t=="object")if(n&65){const r=t.default;r&&(r._c&&(r._d=!1),kn(e,r()),r._c&&(r._d=!0));return}else{s=32;const r=t._;!r&&!Sr(t)?t._ctx=Ve:r===3&&Ve&&(Ve.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else L(t)?(t={default:t,_ctx:Ve},s=32):(t=String(t),n&64?(s=16,t=[si(t)]):s=8);e.children=t,e.shapeFlag|=s}function ri(...e){const t={};for(let s=0;s<e.length;s++){const n=e[s];for(const r in n)if(r==="class")t.class!==n.class&&(t.class=ce([t.class,n.class]));else if(r==="style")t.style=jt([t.style,n.style]);else if(cs(r)){const o=t[r],l=n[r];l&&o!==l&&!(V(o)&&o.includes(l))&&(t[r]=o?[].concat(o,l):l)}else r!==""&&(t[r]=n[r])}return t}function Ge(e,t,s,n=null){qe(e,t,7,[s,n])}const oi=xr();let li=0;function ii(e,t,s){const n=e.type,r=(t?t.appContext:e.appContext)||oi,o={uid:li++,vnode:e,type:n,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new To(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Er(n,r),emitsOptions:Rr(n,r),emit:null,emitted:null,propsDefaults:Z,inheritAttrs:n.inheritAttrs,ctx:Z,data:Z,props:Z,attrs:Z,slots:Z,refs:Z,setupState:Z,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=Gl.bind(null,o),e.ce&&e.ce(o),o}let we=null;const ai=()=>we||Ve;let Ms,Cn;{const e=hs(),t=(s,n)=>{let r;return(r=e[s])||(r=e[s]=[]),r.push(n),o=>{r.length>1?r.forEach(l=>l(o)):r[0](o)}};Ms=t("__VUE_INSTANCE_SETTERS__",s=>we=s),Cn=t("__VUE_SSR_SETTERS__",s=>rs=s)}const ns=e=>{const t=we;return Ms(e),e.scope.on(),()=>{e.scope.off(),Ms(t)}},Wr=()=>{we&&we.scope.off(),Ms(null)};function Kr(e){return e.vnode.shapeFlag&4}let rs=!1;function ui(e,t=!1,s=!1){t&&Cn(t);const{props:n,children:r}=e.vnode,o=Kr(e);Dl(e,n,o,t),Rl(e,r,s||t);const l=o?ci(e,t):void 0;return t&&Cn(!1),l}function ci(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Cl);const{setup:n}=s;if(n){je();const r=e.setupContext=n.length>1?di(e):null,o=ns(e),l=$t(n,e,0,[e.props,r]),i=On(l);if(He(),o(),(i||e.sp)&&!Qt(e)&&pr(e),i){if(l.then(Wr,Wr),t)return l.then(a=>{Gr(e,a)}).catch(a=>{ks(a,e,0)});e.asyncDep=l}else Gr(e,l)}else zr(e)}function Gr(e,t,s){L(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:re(t)&&(e.setupState=or(t)),zr(e)}function zr(e,t,s){const n=e.type;e.render||(e.render=n.render||Be);{const r=ns(e);je();try{Sl(e)}finally{He(),r()}}}const fi={get(e,t){return ge(e,"get",""),e[t]}};function di(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,fi),slots:e.slots,emit:e.emit,expose:t}}function Us(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(or(Go(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Xt)return Xt[s](e)},has(t,s){return s in t||s in Xt}})):e.proxy}const pi=/(?:^|[-_])(\w)/g,hi=e=>e.replace(pi,t=>t.toUpperCase()).replace(/[-_]/g,"");function vi(e,t=!0){return L(e)?e.displayName||e.name:e.name||t&&e.__name}function Jr(e,t,s=!1){let n=vi(t);if(!n&&t.__file){const r=t.__file.match(/([^/\\]+)\.\w+$/);r&&(n=r[1])}if(!n&&e&&e.parent){const r=o=>{for(const l in o)if(o[l]===t)return l};n=r(e.components||e.parent.type.components)||r(e.appContext.components)}return n?hi(n):s?"App":"Anonymous"}function gi(e){return L(e)&&"__vccOpts"in e}const Ie=(e,t)=>Zo(e,t,rs),mi="3.5.18";/**
* @vue/runtime-dom v3.5.18
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Sn;const Yr=typeof window<"u"&&window.trustedTypes;if(Yr)try{Sn=Yr.createPolicy("vue",{createHTML:e=>e})}catch{}const Qr=Sn?e=>Sn.createHTML(e):e=>e,_i="http://www.w3.org/2000/svg",bi="http://www.w3.org/1998/Math/MathML",tt=typeof document<"u"?document:null,Xr=tt&&tt.createElement("template"),yi={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"?tt.createElementNS(_i,e):t==="mathml"?tt.createElementNS(bi,e):s?tt.createElement(e,{is:s}):tt.createElement(e);return e==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:e=>tt.createTextNode(e),createComment:e=>tt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>tt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,r,o){const l=s?s.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),s),!(r===o||!(r=r.nextSibling)););else{Xr.innerHTML=Qr(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const i=Xr.content;if(n==="svg"||n==="mathml"){const a=i.firstChild;for(;a.firstChild;)i.appendChild(a.firstChild);i.removeChild(a)}t.insertBefore(i,s)}return[l?l.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},wi=Symbol("_vtc");function xi(e,t,s){const n=e[wi];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Vs=Symbol("_vod"),Zr=Symbol("_vsh"),Rs={beforeMount(e,{value:t},{transition:s}){e[Vs]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):os(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:n}){!t!=!s&&(n?t?(n.beforeEnter(e),os(e,!0),n.enter(e)):n.leave(e,()=>{os(e,!1)}):os(e,t))},beforeUnmount(e,{value:t}){os(e,t)}};function os(e,t){e.style.display=t?e[Vs]:"none",e[Zr]=!t}const ki=Symbol(""),Ci=/(^|;)\s*display\s*:/;function Si(e,t,s){const n=e.style,r=ue(s);let o=!1;if(s&&!r){if(t)if(ue(t))for(const l of t.split(";")){const i=l.slice(0,l.indexOf(":")).trim();s[i]==null&&Ls(n,i,"")}else for(const l in t)s[l]==null&&Ls(n,l,"");for(const l in s)l==="display"&&(o=!0),Ls(n,l,s[l])}else if(r){if(t!==s){const l=n[ki];l&&(s+=";"+l),n.cssText=s,o=Ci.test(s)}}else t&&e.removeAttribute("style");Vs in e&&(e[Vs]=o?n.display:"",e[Zr]&&(n.display="none"))}const eo=/\s*!important$/;function Ls(e,t,s){if(V(s))s.forEach(n=>Ls(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=Ti(e,t);eo.test(s)?e.setProperty(vt(n),s.replace(eo,""),"important"):e[n]=s}}const to=["Webkit","Moz","ms"],Tn={};function Ti(e,t){const s=Tn[t];if(s)return s;let n=ot(t);if(n!=="filter"&&n in e)return Tn[t]=n;n=Un(n);for(let r=0;r<to.length;r++){const o=to[r]+n;if(o in e)return Tn[t]=o}return t}const so="http://www.w3.org/1999/xlink";function no(e,t,s,n,r,o=So(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(so,t.slice(6,t.length)):e.setAttributeNS(so,t,s):s==null||o&&!Rn(s)?e.removeAttribute(t):e.setAttribute(t,o?"":rt(s)?String(s):s)}function ro(e,t,s,n,r){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?Qr(s):s);return}const o=e.tagName;if(t==="value"&&o!=="PROGRESS"&&!o.includes("-")){const i=o==="OPTION"?e.getAttribute("value")||"":e.value,a=s==null?e.type==="checkbox"?"on":"":String(s);(i!==a||!("_value"in e))&&(e.value=a),s==null&&e.removeAttribute(t),e._value=s;return}let l=!1;if(s===""||s==null){const i=typeof e[t];i==="boolean"?s=Rn(s):s==null&&i==="string"?(s="",l=!0):i==="number"&&(s=0,l=!0)}try{e[t]=s}catch{}l&&e.removeAttribute(r||t)}function Ut(e,t,s,n){e.addEventListener(t,s,n)}function Ei(e,t,s,n){e.removeEventListener(t,s,n)}const oo=Symbol("_vei");function $i(e,t,s,n,r=null){const o=e[oo]||(e[oo]={}),l=o[t];if(n&&l)l.value=n;else{const[i,a]=Pi(t);if(n){const g=o[t]=Oi(n,r);Ut(e,i,g,a)}else l&&(Ei(e,i,l,a),o[t]=void 0)}}const lo=/(?:Once|Passive|Capture)$/;function Pi(e){let t;if(lo.test(e)){t={};let n;for(;n=e.match(lo);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):vt(e.slice(2)),t]}let En=0;const Ai=Promise.resolve(),Ii=()=>En||(Ai.then(()=>En=0),En=Date.now());function Oi(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;qe(Di(n,s.value),t,5,[n])};return s.value=e,s.attached=Ii(),s}function Di(e,t){if(V(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 io=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Mi=(e,t,s,n,r,o)=>{const l=r==="svg";t==="class"?xi(e,n,l):t==="style"?Si(e,s,n):cs(t)?Hs(t)||$i(e,t,s,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ui(e,t,n,l))?(ro(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&no(e,t,n,l,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!ue(n))?ro(e,ot(t),n,o,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),no(e,t,n,l))};function Ui(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&io(t)&&L(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||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 io(t)&&ue(s)?!1:t in e}const ao=e=>{const t=e.props["onUpdate:modelValue"]||!1;return V(t)?s=>ps(t,s):t};function Vi(e){e.target.composing=!0}function uo(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const $n=Symbol("_assign"),de={created(e,{modifiers:{lazy:t,trim:s,number:n}},r){e[$n]=ao(r);const o=n||r.props&&r.props.type==="number";Ut(e,t?"change":"input",l=>{if(l.target.composing)return;let i=e.value;s&&(i=i.trim()),o&&(i=zs(i)),e[$n](i)}),s&&Ut(e,"change",()=>{e.value=e.value.trim()}),t||(Ut(e,"compositionstart",Vi),Ut(e,"compositionend",uo),Ut(e,"change",uo))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:n,trim:r,number:o}},l){if(e[$n]=ao(l),e.composing)return;const i=(o||e.type==="number")&&!/^0\d/.test(e.value)?zs(e.value):e.value,a=t??"";i!==a&&(document.activeElement===e&&e.type!=="range"&&(n&&t===s||r&&e.value.trim()===a)||(e.value=a))}},Ri=["ctrl","shift","alt","meta"],Li={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)=>Ri.some(s=>e[`${s}Key`]&&!t.includes(s))},ft=(e,t)=>{const s=e._withMods||(e._withMods={}),n=t.join(".");return s[n]||(s[n]=(r,...o)=>{for(let l=0;l<t.length;l++){const i=Li[t[l]];if(i&&i(r,t))return}return e(r,...o)})},Fi=_e({patchProp:Mi},yi);let co;function Ni(){return co||(co=Fl(Fi))}const Bi=(...e)=>{const t=Ni().createApp(...e),{mount:s}=t;return t.mount=n=>{const r=Hi(n);if(!r)return;const o=t._component;!L(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const l=s(r,!1,ji(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t};function ji(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Hi(e){return ue(e)?document.querySelector(e):e}const qi="https://das.doubanflix.com/api",Wi=1e4;class Ki{constructor(){this.baseURL=qi,this.timeout=Wi}addAuthHeaders(t={}){const s=localStorage.getItem("auth_token");return s&&(t.Authorization=`Bearer ${s}`),{"Content-Type":"application/json",...t}}async handleResponse(t){if(!t.ok){const s=await t.json().catch(()=>({}));switch(t.status){case 401:throw localStorage.removeItem("auth_token"),new Error("登录已过期,请重新登录");case 403:throw new Error("没有权限访问该资源");case 404:return{success:!1,error:"NOT_FOUND",status:404,message:"请求的资源不存在"};case 500:throw new Error("服务器内部错误");default:throw new Error(s.message||"请求失败")}}return t.json()}async request(t,s={}){const n=`${this.baseURL}${t}`,r={headers:this.addAuthHeaders(s.headers),...s};try{const o=new AbortController,l=setTimeout(()=>o.abort(),this.timeout),i=await fetch(n,{...r,signal:o.signal});return clearTimeout(l),await this.handleResponse(i)}catch(o){throw o.name==="AbortError"?new Error("请求超时,请检查网络连接"):o}}async get(t,s={}){const n=new URLSearchParams(s).toString(),r=n?`${t}?${n}`:t;return this.request(r,{method:"GET"})}async post(t,s={}){return this.request(t,{method:"POST",body:JSON.stringify(s)})}async put(t,s={}){return this.request(t,{method:"PUT",body:JSON.stringify(s)})}async delete(t){return this.request(t,{method:"DELETE"})}}const oe=new Ki,xe={getChallenge(){return oe.get("/auth/challenge")},register(e){return oe.post("/auth/register",e)},login(e){return oe.post("/auth/login",e)},verifyEmail(e){return oe.post("/auth/verify-email",e)},resendVerificationCode(e){return oe.post("/auth/resend-code",e)},getUserInfo(){return oe.get("/user/profile")},getCurrentUser(){return oe.get("/user/profile")},logout(){return oe.post("/auth/logout")},forgotPassword(e){return oe.post("/auth/forgot-password",e)},resetPassword(e){return oe.post("/auth/reset-password",e)}},yt={getMovieLinks(e,t={}){return oe.get(`/movie/${e}/links`,t)},addMovieLink(e,t){return oe.post(`/movies/${e}/links`,t)},deleteMovieLink(e,t){return oe.delete(`/movies/${e}/links/${t}`)},voteLink(e,t){return oe.post(`/links/${e}/vote`,{vote_type:t})},removeVote(e){return Promise.resolve({success:!0,message:"取消投票成功"})},getLinkVoteStatus(e){return oe.get(`/links/${e}/vote-status`)},getUserVote(e){return oe.get(`/links/${e}/vote-status`)},reportLink(e){return oe.post("/reports",e)}},ls={getUserLinks(e={}){return oe.get("/user/links",e)},getUserLinksByCategory(){return oe.get("/user/links/category")},updateUserName(e){return oe.put("/user/name",e)},getAllUsers(){return oe.get("/admin/users")},banUser(e,t){return oe.put(`/admin/users/${e}/ban`,{reason:t})},unbanUser(e){return oe.put(`/admin/users/${e}/unban`)}};async function Gi(e){const t=new TextEncoder().encode(e),s=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(s)).map(o=>o.toString(16).padStart(2,"0")).join("")}function zi(e,t){return e.startsWith("0".repeat(t))}async function Fs(e,t,s=null){let n=0;const r=Date.now();for(;;){const o=e+n.toString(),l=await Gi(o);if(zi(l,t)){const a=Date.now()-r;return console.log(`工作量证明完成: nonce=${n}, 耗时=${a}ms, hash=${l}`),{challenge:e,nonce:n.toString(),hash:l}}n++,n%1e3===0&&(s&&s(n),await new Promise(i=>setTimeout(i,1)))}}const ve=j(null),dt=j(null),fe=j(!1),Q=j(""),Ji=Ie(()=>!!ve.value&&!!dt.value),Yi=Ie(()=>{var e;return((e=ve.value)==null?void 0:e.email)||""}),Qi=Ie(()=>{var e;return((e=ve.value)==null?void 0:e.id)||""}),se={user:ve,token:dt,loading:fe,error:Q,isAuthenticated:Ji,userEmail:Yi,userId:Qi,async initAuth(){try{fe.value=!0;const e=localStorage.getItem("auth_token");if(e){dt.value=e;try{const t=await xe.getCurrentUser();t&&t.data?ve.value=t.data:ve.value=t,Q.value=""}catch(t){console.error("获取用户信息失败:",t),(t.status===401||t.status===403)&&(localStorage.removeItem("auth_token"),dt.value=null,ve.value=null)}}}catch(e){console.error("初始化认证失败:",e),Q.value="初始化认证失败"}finally{fe.value=!1}},async signIn(e,t){try{fe.value=!0,Q.value="";const s=await xe.login({email:e,password:t});return dt.value=s.data.token,ve.value=s.data.user,localStorage.setItem("auth_token",s.data.token),{success:!0,user:s.data.user}}catch(s){return console.error("登录错误:",s),Q.value=s.message||"登录过程中发生错误",{success:!1,error:Q.value}}finally{fe.value=!1}},async signUp(e,t,s={}){try{fe.value=!0,Q.value="";const n=await xe.register({email:e,password:t,...s});return dt.value=n.token,ve.value=n.user,localStorage.setItem("auth_token",n.token),{success:!0,data:n}}catch(n){return console.error("注册错误:",n),Q.value=n.message||"注册过程中发生错误",{success:!1,error:Q.value}}finally{fe.value=!1}},async signUpWithProof(e,t){try{fe.value=!0,Q.value="";const s=await xe.getChallenge();if(!s.success)throw new Error(s.error||"获取挑战失败");const{challenge:n,difficulty:r}=s.data,o=await Fs(n,r,t),l={username:e.username,email:e.email,password:e.password,proof_of_work:{challenge:n,nonce:o.nonce,hash:o.hash}},i=await xe.register(l);return i.success?{success:!0,data:i.data}:{success:!1,error:i.error}}catch(s){return console.error("注册失败:",s),Q.value=s.message||"注册失败",{success:!1,error:Q.value}}finally{fe.value=!1}},async verifyEmail(e,t){try{fe.value=!0,Q.value="";const s={email:e,code:t},n=await xe.verifyEmail(s);return n.success?{success:!0,data:n.data}:{success:!1,error:n.error}}catch(s){return console.error("邮箱验证失败:",s),Q.value=s.message||"验证失败",{success:!1,error:Q.value}}finally{fe.value=!1}},async resendVerificationCode(e){try{fe.value=!0,Q.value="";const t=await xe.getChallenge();if(!t.success)throw new Error(t.error||"获取挑战失败");const{challenge:s,difficulty:n}=t.data,r=await Fs(s,n,onProgress),o={email:e,challenge:s,solution:r.nonce},l=await xe.resendVerificationCode(o);return l.success?{success:!0,data:l.data}:{success:!1,error:l.error}}catch(t){return console.error("重发验证码失败:",t),Q.value=t.message||"发送失败",{success:!1,error:Q.value}}finally{fe.value=!1}},async forgotPassword(e,t){try{fe.value=!0,Q.value="";const s=await xe.getChallenge();if(!s.success)throw new Error(s.error||"获取挑战失败");const{challenge:n,difficulty:r}=s.data,o=await Fs(n,r,t),l={email:e,proof_of_work:{challenge:n,nonce:o.nonce,hash:o.hash}},i=await xe.forgotPassword(l);return i.success?{success:!0,data:i.data}:{success:!1,error:i.message||i.error}}catch(s){return console.error("忘记密码失败:",s),Q.value=s.message||"发送失败",{success:!1,error:Q.value}}finally{fe.value=!1}},async resetPassword(e,t,s){try{fe.value=!0,Q.value="";const n=await xe.resetPassword({email:e,code:t,password:s});return n.success?{success:!0,data:n.data}:{success:!1,error:n.message||n.error}}catch(n){return console.error("重置密码失败:",n),Q.value=n.message||"重置失败",{success:!1,error:Q.value}}finally{fe.value=!1}},async signOut(){try{return fe.value=!0,Q.value="",localStorage.removeItem("auth_token"),dt.value=null,ve.value=null,{success:!0}}catch(e){return console.error("登出错误:",e),Q.value="登出过程中发生错误",localStorage.removeItem("auth_token"),dt.value=null,ve.value=null,{success:!1,error:Q.value}}finally{fe.value=!1}},clearError(){Q.value=""},hasPermission(e){return!!ve.value},getDisplayName(){var e;return ve.value?((e=ve.value.user_metadata)==null?void 0:e.full_name)||ve.value.email||"用户":"未登录"},getAvatarUrl(){var e;return ve.value&&((e=ve.value.user_metadata)==null?void 0:e.avatar_url)||null}};class Xi{async getUserProfile(t=null){try{let s=t;if(!s){const r=await xe.getCurrentUser();if(!r)return{success:!1,error:"用户未登录"};s=r.id}const n=await ls.getUserProfile(s);return n?{success:!0,data:n}:{success:!0,data:{user_id:s,nickname:null,avatar_url:null,bio:null}}}catch(s){return console.error("获取用户配置异常:",s),{success:!1,error:"获取用户配置失败"}}}async updateUserProfile(t){try{return await xe.getCurrentUser()?t.nickname&&t.nickname.length>50?{success:!1,error:"昵称长度不能超过50个字符"}:t.nickname&&!(await ls.checkNicknameAvailability(t.nickname)).available?{success:!1,error:"该昵称已被使用,请选择其他昵称"}:{success:!0,data:await ls.updateUserProfile(t),message:"用户配置更新成功"}:{success:!1,error:"用户未登录"}}catch(s){return console.error("更新用户配置异常:",s),{success:!1,error:"更新用户配置失败"}}}async getUserDisplayName(t,s="匿名用户"){var n;try{const r=await this.getUserProfile(t);return r.success&&((n=r.data)!=null&&n.nickname)?r.data.nickname:s||"匿名用户"}catch(r){return console.error("获取用户显示名称失败:",r),s||"匿名用户"}}async checkNicknameAvailability(t){try{return!t||t.trim().length===0?{success:!1,error:"昵称不能为空"}:t.length>50?{success:!1,error:"昵称长度不能超过50个字符"}:await xe.getCurrentUser()?{success:!0,available:(await ls.checkNicknameAvailability(t.trim())).available}:{success:!1,error:"用户未登录"}}catch(s){return console.error("检查昵称可用性失败:",s),{success:!1,error:"检查昵称可用性失败"}}}}const Zi=new Xi,pt=(e,t)=>{const s=e.__vccOpts||e;for(const[n,r]of t)s[n]=r;return s},ea={class:"auth-container"},ta={key:0,class:"user-info"},sa={class:"user-header"},na={class:"user-avatar"},ra={class:"user-details"},oa={class:"user-display-name"},la={key:0,class:"user-email"},ia={key:0,class:"nickname-edit-form"},aa={class:"form-group"},ua={class:"nickname-actions"},ca=["disabled"],fa={key:1,class:"auth-forms"},da={key:0,class:"auth-tabs"},pa={key:1,class:"back-button"},ha={class:"form-group"},va={class:"form-group"},ga=["disabled"],ma={class:"forgot-password-link"},_a={class:"form-group"},ba={class:"form-group"},ya={class:"form-group"},wa={class:"form-group"},xa={key:0,class:"proof-progress"},ka={class:"progress-bar"},Ca=["disabled"],Sa={class:"form-description"},Ta={class:"form-group"},Ea=["readonly"],$a={class:"form-group"},Pa=["disabled"],Aa={class:"resend-code"},Ia=["disabled"],Oa={class:"form-group"},Da={key:0,class:"proof-progress"},Ma={class:"progress-bar"},Ua=["disabled"],Va={class:"form-group"},Ra={class:"form-group"},La={class:"form-group"},Fa={class:"form-group"},Na=["disabled"],Ba={key:7,class:"error-message"},ja={key:8,class:"success-message"},Ha=pt({__name:"AuthComponent",setup(e){const t=j(null),s=j(null),n=j("login"),r=j(!1),o=j(""),l=j(""),i=j(!1),a=j({email:"",password:""});Es(()=>{stopWatching&&stopWatching()});const g=j({email:"",password:"",confirmPassword:"",username:""}),h=j({email:"",code:""}),_=j({email:""}),m=j({email:"",code:"",password:"",confirmPassword:""}),y=j(!1),E=j(0),M=j(""),ne=j({username:""});It(async()=>{await se.initAuth(),t.value=se.user.value,t.value&&await W(),Dt(()=>se.user.value,D=>{t.value=D,D?W():s.value=null},{immediate:!1})});const B=()=>{o.value="",l.value=""},W=async()=>{if(t.value)try{const D=await Zi.getUserProfile(t.value.id);D.success?s.value=D.data:console.error("加载用户资料失败:",D.error)}catch(D){console.error("加载用户资料失败:",D)}},K=()=>{var D;i.value=!i.value,i.value&&(ne.value.username=((D=t.value)==null?void 0:D.username)||""),B()},O=async()=>{var D,w;if(t.value){B(),r.value=!0;try{const me=ne.value.username.trim();if(!me){o.value="用户名不能为空";return}if(me.length<2||me.length>10){o.value="用户名长度必须在2-10个字符之间";return}const U=await ls.updateUserName({username:me});if(U.data.success){const J={...t.value,...U.data.data};t.value=J,se.user.value=J,l.value=U.data.message||"用户名更新成功!",i.value=!1,await W()}else o.value=U.data.message||"更新用户名失败"}catch(me){console.error("更新用户名错误:",me),(w=(D=me.response)==null?void 0:D.data)!=null&&w.message?o.value=me.response.data.message:o.value="更新用户名失败,请稍后重试"}finally{r.value=!1}}},G=async()=>{B(),r.value=!0;try{const D=await se.signIn(a.value.email,a.value.password);D.success?(t.value=D.user,l.value="登录成功!",a.value={email:"",password:""},await W()):o.value=D.error||"登录失败,请检查邮箱和密码"}catch(D){o.value="登录过程中发生错误",console.error("登录错误:",D)}finally{r.value=!1}},ke=async()=>{if(B(),g.value.password!==g.value.confirmPassword){o.value="两次输入的密码不一致";return}r.value=!0;try{const D=await se.signUpWithProof(g.value,w=>{y.value=!0,E.value=w});y.value=!1,E.value=0,D.success?(M.value=g.value.email,h.value.email=g.value.email,n.value="verify-email",l.value="注册成功!请查收邮件并验证邮箱",g.value={email:"",password:"",confirmPassword:"",username:""}):o.value=D.error||"注册失败,请稍后重试"}catch(D){y.value=!1,E.value=0,o.value="注册过程中发生错误",console.error("注册错误:",D)}finally{r.value=!1}},Te=async()=>{B(),r.value=!0;try{const D=await se.verifyEmail(h.value.email,h.value.code);D.success?(l.value="邮箱验证成功!请登录",n.value="login",h.value={email:"",code:""},M.value=""):o.value=D.error||"验证失败,请重试"}catch(D){o.value="验证过程中发生错误",console.error("验证错误:",D)}finally{r.value=!1}},Oe=async()=>{B(),r.value=!0;try{const D=h.value.email||M.value,w=await se.resendVerificationCode(D);w.success?l.value="验证码已重新发送,请查收邮件":o.value=w.error||"发送失败,请重试"}catch(D){o.value="发送过程中发生错误",console.error("重发验证码错误:",D)}finally{r.value=!1}},ht=async()=>{B(),r.value=!0;try{const D=await se.forgotPassword(_.value.email,w=>{y.value=!0,E.value=w});y.value=!1,E.value=0,D.success?(m.value.email=_.value.email,n.value="reset-password",l.value="重置码已发送,请查收邮件",_.value={email:""}):o.value=D.error||"发送失败,请重试"}catch(D){y.value=!1,E.value=0,o.value="发送过程中发生错误",console.error("忘记密码错误:",D)}finally{r.value=!1}},Re=async()=>{if(B(),m.value.password!==m.value.confirmPassword){o.value="两次输入的密码不一致";return}r.value=!0;try{const D=await se.resetPassword(m.value.email,m.value.code,m.value.password);D.success?(l.value="密码重置成功!请使用新密码登录",n.value="login",m.value={email:"",code:"",password:"",confirmPassword:""}):o.value=D.error||"重置失败,请重试"}catch(D){o.value="重置过程中发生错误",console.error("重置密码错误:",D)}finally{r.value=!1}},Le=()=>{n.value="login",B()},ae=()=>{se.signOut(),l.value="已成功登出",t.value=null,s.value=null};return(D,w)=>{var me;return P(),I("div",ea,[t.value?(P(),I("div",ta,[c("div",sa,[c("div",na,[c("span",null,F((((me=s.value)==null?void 0:me.nickname)||t.value.email).charAt(0).toUpperCase()),1)]),c("div",ra,[c("div",oa,F(t.value.username||t.value.email),1),t.value.username?(P(),I("div",la,F(t.value.email),1)):N("",!0),w[17]||(w[17]=c("div",{class:"user-status"},"已登录",-1))]),c("button",{onClick:K,class:"edit-nickname-btn"},F(i.value?"取消":"编辑用户名"),1)]),i.value?(P(),I("div",ia,[c("div",aa,[w[18]||(w[18]=c("label",null,"用户名",-1)),le(c("input",{"onUpdate:modelValue":w[0]||(w[0]=U=>ne.value.username=U),type:"text",placeholder:"请输入用户名",class:"form-input",maxlength:"10"},null,512),[[de,ne.value.username]]),w[19]||(w[19]=c("div",{class:"nickname-hint"},"用户名长度为2-10个字符",-1))]),c("div",ua,[c("button",{onClick:O,disabled:r.value,class:"save-nickname-btn"},F(r.value?"保存中...":"保存"),9,ca),c("button",{onClick:K,class:"cancel-nickname-btn"}," 取消 ")])])):N("",!0),c("button",{onClick:ae,class:"sign-out-btn"}," 退出登录 ")])):(P(),I("div",fa,[["verify-email","forgot-password","reset-password"].includes(n.value)?N("",!0):(P(),I("div",da,[c("button",{class:ce(["auth-tab",{active:n.value==="login"}]),onClick:w[1]||(w[1]=U=>n.value="login")}," 登录 ",2),c("button",{class:ce(["auth-tab",{active:n.value==="register"}]),onClick:w[2]||(w[2]=U=>n.value="register")}," 注册 ",2)])),["verify-email","forgot-password","reset-password"].includes(n.value)?(P(),I("div",pa,[c("button",{onClick:Le,class:"back-btn"}," ← 返回登录 ")])):N("",!0),n.value==="login"?(P(),I("form",{key:2,onSubmit:ft(G,["prevent"]),class:"auth-form"},[c("div",ha,[w[20]||(w[20]=c("label",null,"邮箱",-1)),le(c("input",{"onUpdate:modelValue":w[3]||(w[3]=U=>a.value.email=U),type:"email",required:"",placeholder:"请输入邮箱",class:"form-input"},null,512),[[de,a.value.email]])]),c("div",va,[w[21]||(w[21]=c("label",null,"密码",-1)),le(c("input",{"onUpdate:modelValue":w[4]||(w[4]=U=>a.value.password=U),type:"password",required:"",placeholder:"请输入密码",class:"form-input"},null,512),[[de,a.value.password]])]),c("button",{type:"submit",disabled:r.value,class:"auth-submit-btn"},F(r.value?"登录中...":"登录"),9,ga),c("div",ma,[c("button",{type:"button",onClick:w[5]||(w[5]=U=>n.value="forgot-password"),class:"link-btn"}," 忘记密码? ")])],32)):N("",!0),n.value==="register"?(P(),I("form",{key:3,onSubmit:ft(ke,["prevent"]),class:"auth-form"},[c("div",_a,[w[22]||(w[22]=c("label",null,"用户名",-1)),le(c("input",{"onUpdate:modelValue":w[6]||(w[6]=U=>g.value.username=U),type:"text",required:"",placeholder:"请输入用户名(3-10个字符)",class:"form-input",minlength:"3",maxlength:"10"},null,512),[[de,g.value.username]])]),c("div",ba,[w[23]||(w[23]=c("label",null,"邮箱",-1)),le(c("input",{"onUpdate:modelValue":w[7]||(w[7]=U=>g.value.email=U),type:"email",required:"",placeholder:"请输入邮箱",class:"form-input"},null,512),[[de,g.value.email]])]),c("div",ya,[w[24]||(w[24]=c("label",null,"密码",-1)),le(c("input",{"onUpdate:modelValue":w[8]||(w[8]=U=>g.value.password=U),type:"password",required:"",placeholder:"请输入密码(至少6位)",class:"form-input",minlength:"6"},null,512),[[de,g.value.password]])]),c("div",wa,[w[25]||(w[25]=c("label",null,"确认密码",-1)),le(c("input",{"onUpdate:modelValue":w[9]||(w[9]=U=>g.value.confirmPassword=U),type:"password",required:"",placeholder:"请再次输入密码",class:"form-input"},null,512),[[de,g.value.confirmPassword]])]),y.value?(P(),I("div",xa,[w[26]||(w[26]=c("div",{class:"progress-text"},"正在计算工作量证明...",-1)),c("div",ka,[c("div",{class:"progress-fill",style:jt({width:Math.min(E.value/1e3,100)+"%"})},null,4)])])):N("",!0),c("button",{type:"submit",disabled:r.value||y.value,class:"auth-submit-btn"},F(y.value?"计算中...":r.value?"注册中...":"注册"),9,Ca)],32)):N("",!0),n.value==="verify-email"?(P(),I("form",{key:4,onSubmit:ft(Te,["prevent"]),class:"auth-form"},[w[29]||(w[29]=c("div",{class:"form-title"},"邮箱验证",-1)),c("div",Sa," 我们已向 "+F(M.value||h.value.email)+" 发送了验证码,请查收邮件并输入验证码。 ",1),c("div",Ta,[w[27]||(w[27]=c("label",null,"邮箱",-1)),le(c("input",{"onUpdate:modelValue":w[10]||(w[10]=U=>h.value.email=U),type:"email",required:"",placeholder:"请输入邮箱",class:"form-input",readonly:!!M.value},null,8,Ea),[[de,h.value.email]])]),c("div",$a,[w[28]||(w[28]=c("label",null,"验证码",-1)),le(c("input",{"onUpdate:modelValue":w[11]||(w[11]=U=>h.value.code=U),type:"text",required:"",placeholder:"请输入6位验证码",class:"form-input",maxlength:"6"},null,512),[[de,h.value.code]])]),c("button",{type:"submit",disabled:r.value,class:"auth-submit-btn"},F(r.value?"验证中...":"验证邮箱"),9,Pa),c("div",Aa,[c("button",{type:"button",onClick:Oe,disabled:r.value,class:"link-btn"}," 重新发送验证码 ",8,Ia)])],32)):N("",!0),n.value==="forgot-password"?(P(),I("form",{key:5,onSubmit:ft(ht,["prevent"]),class:"auth-form"},[w[32]||(w[32]=c("div",{class:"form-title"},"忘记密码",-1)),w[33]||(w[33]=c("div",{class:"form-description"}," 请输入您的邮箱地址,我们将向您发送重置密码的验证码。 ",-1)),c("div",Oa,[w[30]||(w[30]=c("label",null,"邮箱",-1)),le(c("input",{"onUpdate:modelValue":w[12]||(w[12]=U=>_.value.email=U),type:"email",required:"",placeholder:"请输入注册时使用的邮箱",class:"form-input"},null,512),[[de,_.value.email]])]),y.value?(P(),I("div",Da,[w[31]||(w[31]=c("div",{class:"progress-text"},"正在计算工作量证明...",-1)),c("div",Ma,[c("div",{class:"progress-fill",style:jt({width:Math.min(E.value/1e3,100)+"%"})},null,4)])])):N("",!0),c("button",{type:"submit",disabled:r.value||y.value,class:"auth-submit-btn"},F(y.value?"计算中...":r.value?"发送中...":"发送重置码"),9,Ua)],32)):N("",!0),n.value==="reset-password"?(P(),I("form",{key:6,onSubmit:ft(Re,["prevent"]),class:"auth-form"},[w[38]||(w[38]=c("div",{class:"form-title"},"重置密码",-1)),w[39]||(w[39]=c("div",{class:"form-description"}," 请输入您收到的验证码和新密码。 ",-1)),c("div",Va,[w[34]||(w[34]=c("label",null,"邮箱",-1)),le(c("input",{"onUpdate:modelValue":w[13]||(w[13]=U=>m.value.email=U),type:"email",required:"",placeholder:"请输入邮箱",class:"form-input",readonly:""},null,512),[[de,m.value.email]])]),c("div",Ra,[w[35]||(w[35]=c("label",null,"验证码",-1)),le(c("input",{"onUpdate:modelValue":w[14]||(w[14]=U=>m.value.code=U),type:"text",required:"",placeholder:"请输入6位验证码",class:"form-input",maxlength:"6"},null,512),[[de,m.value.code]])]),c("div",La,[w[36]||(w[36]=c("label",null,"新密码",-1)),le(c("input",{"onUpdate:modelValue":w[15]||(w[15]=U=>m.value.password=U),type:"password",required:"",placeholder:"请输入新密码(至少6位)",class:"form-input",minlength:"6"},null,512),[[de,m.value.password]])]),c("div",Fa,[w[37]||(w[37]=c("label",null,"确认新密码",-1)),le(c("input",{"onUpdate:modelValue":w[16]||(w[16]=U=>m.value.confirmPassword=U),type:"password",required:"",placeholder:"请再次输入新密码",class:"form-input"},null,512),[[de,m.value.confirmPassword]])]),c("button",{type:"submit",disabled:r.value,class:"auth-submit-btn"},F(r.value?"重置中...":"重置密码"),9,Na)],32)):N("",!0),o.value?(P(),I("div",Ba,F(o.value),1)):N("",!0),l.value?(P(),I("div",ja,F(l.value),1)):N("",!0)]))])}}},[["__scopeId","data-v-680e5434"]]);class wt{static async getLinks(t,s={}){try{const n={},{linkType:r,platform:o,page:l=1,limit:i=5,sortBy:a="created_at",sortOrder:g="desc"}=s;l&&(n.page=l),i&&(n.limit=i),a&&(n.sort_by=a),g&&(n.sort_order=g),r&&(n.type=r==="bt"?"magnet":r),o&&(n.platform=o);const h=await yt.getMovieLinks(t,n);if(!h.success)throw console.error("获取链接失败:",h.error),new Error(`获取链接失败: ${h.error}`);const _=h.data||{};let m=_.links||[];const y=_.pagination||{};Array.isArray(m)||(console.warn("API返回的links不是数组格式:",m),m=[]);const E=m.map(M=>({...M,up_votes:M.likes_count||0,down_votes:M.dislikes_count||0,score:(M.likes_count||0)-(M.dislikes_count||0),user_vote_type:M.user_vote_type==="like"?"up":M.user_vote_type==="dislike"?"down":M.user_vote_type||"",user_display_name:M.username||"匿名用户"}));return{success:!0,data:E,pagination:y,count:E.length,total:y.total||0}}catch(n){return console.error("获取链接服务错误:",n),{success:!1,error:n.message||"获取链接失败",data:[],pagination:{page:1,limit:5,total:0,pages:0},count:0,total:0}}}static async addLink(t){try{const{movieId:s,linkType:n,platform:r,url:o,extractCode:l,title:i,quality:a,size:g,has_4k:h,has_hdr:_,has_dolby_atmos:m,has_subtitles:y}=t;if(!s||!n||!o)throw new Error("缺少必填字段:movieId, linkType, url");if(!["netdisk","bt","online"].includes(n))throw new Error("无效的链接类型");if(l&&l.length>10)throw new Error("提取码长度不能超过10个字符");const E=await xe.getChallenge();if(!E.success)throw new Error("获取工作量证明挑战失败");const{challenge:M,difficulty:ne}=E.data,B=await Fs(M,ne),W={title:i||"",url:o.trim(),type:n==="bt"?"magnet":n,password:l||"",quality:a||"",size:g||"",has_4k:!!h,has_hdr:!!_,has_dolby_atmos:!!m,has_subtitles:!!y,proof_of_work:B};n==="netdisk"&&r&&r.trim()&&(W.platform=r.trim());const K=await yt.addMovieLink(s,W);if(!K.success)throw console.error("添加链接失败:",K.error),new Error(`添加链接失败: ${K.error}`);return{success:!0,data:K.data,message:"链接添加成功"}}catch(s){return console.error("添加链接服务错误:",s),{success:!1,error:s.message||"添加链接失败"}}}static async deleteLink(t){try{if(!t)throw new Error("链接ID不能为空");if(!se.isAuthenticated.value)throw new Error("用户未登录");const s=await yt.deleteLink(t);if(!s.success)throw console.error("删除链接失败:",s.error),new Error(`删除链接失败: ${s.error}`);return{success:!0,message:"链接删除成功"}}catch(s){return console.error("删除链接服务错误:",s),{success:!1,error:s.message||"删除链接失败"}}}static async voteLink(t,s){try{if(!t||!s)throw new Error("链接ID和投票类型不能为空");if(!["up","down"].includes(s))throw new Error("无效的投票类型");if(!se.isAuthenticated.value)throw new Error("用户未登录");const n=s==="up"?"like":"dislike",r=await yt.voteLink(t,n);if(!r.success)throw console.error("投票失败:",r.error),new Error(`投票失败: ${r.error}`);const o=r.data||{};return{success:!0,message:`${s==="up"?"点赞":"点踩"}成功`,data:{up_votes:o.likes_count||0,down_votes:o.dislikes_count||0,user_vote_type:o.user_vote_type==="like"?"up":o.user_vote_type==="dislike"?"down":null}}}catch(n){return console.error("投票服务错误:",n),{success:!1,error:n.message||"投票失败"}}}static async removeVote(t){try{if(!t)throw new Error("链接ID不能为空");if(!se.isAuthenticated.value)throw new Error("用户未登录");const s=await yt.removeVote(t);if(!s.success)throw console.error("取消投票失败:",s.error),new Error(`取消投票失败: ${s.error}`);return{success:!0,message:"取消投票成功"}}catch(s){return console.error("取消投票服务错误:",s),{success:!1,error:s.message||"取消投票失败"}}}static async reportLink(t,s,n=""){try{if(!t||!s)throw new Error("链接ID和反馈类型不能为空");if(!se.isAuthenticated.value)throw new Error("用户未登录");const r={link_id:t,type:s.trim(),reason:n.trim()||null},o=await yt.reportLink(r);if(!o.success)throw console.error("反馈失败:",o.error),new Error(`反馈失败: ${o.error}`);return{success:!0,data:o.data,message:"反馈提交成功"}}catch(r){return console.error("反馈服务错误:",r),{success:!1,error:r.message||"反馈失败"}}}}const qa="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1756543843235'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='20280'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M512%20330.666667c14.933333%200%2029.866667%204.266667%2040.533333%2014.933333l277.33333399%20234.666667c27.733333%2023.466667%2029.866667%2064%208.53333301%2089.6-23.466667%2027.733333-64%2029.866667-89.6%208.53333299L512%20477.866667l-236.8%20200.53333299c-27.733333%2023.466667-68.266667%2019.19999999-89.6-8.53333299-23.466667-27.733333-19.19999999-68.266667%208.53333301-89.6l277.33333399-234.666667c10.666667-10.666667%2025.6-14.933333%2040.533333-14.933333z'%20fill='currentColor'%20p-id='20281'%3e%3c/path%3e%3c/svg%3e",Wa={name:"CustomSelect",props:{modelValue:{type:[String,Number],default:""},options:{type:Array,required:!0,default:()=>[]},placeholder:{type:String,default:"请选择"}},emits:["update:modelValue","change"],data(){return{isOpen:!1}},computed:{selectedLabel(){const e=this.options.find(t=>t.value===this.modelValue);return e?e.label:""}},mounted(){document.addEventListener("click",this.closeDropdown)},beforeUnmount(){document.removeEventListener("click",this.closeDropdown)},methods:{toggleDropdown(){this.isOpen=!this.isOpen},selectOption(e){this.$emit("update:modelValue",e.value),this.$emit("change",e.value),this.isOpen=!1},closeDropdown(){this.isOpen=!1}}},Ka={class:"selected-text"},Ga={class:"select-dropdown"},za=["onClick"];function Ja(e,t,s,n,r,o){return P(),I("div",{class:ce(["custom-select",{"is-open":r.isOpen}]),onClick:t[1]||(t[1]=ft(()=>{},["stop"]))},[c("div",{class:"select-trigger",onClick:t[0]||(t[0]=(...l)=>o.toggleDropdown&&o.toggleDropdown(...l))},[c("span",Ka,F(o.selectedLabel||s.placeholder),1),c("img",{src:qa,class:ce(["arrow",{"arrow-up":r.isOpen}]),alt:"箭头"},null,2)]),le(c("div",Ga,[(P(!0),I(Se,null,pn(s.options,l=>(P(),I("div",{class:ce(["select-option",{selected:l.value===s.modelValue}]),key:l.value,onClick:i=>o.selectOption(l)},F(l.label),11,za))),128))],512),[[Rs,r.isOpen]])],2)}const is=pt(Wa,[["render",Ja],["__scopeId","data-v-411df2ed"]]),Ya={name:"LinkItemSkeleton"},Qa={class:"link-item skeleton"};function Xa(e,t,s,n,r,o){return P(),I("div",Qa,t[0]||(t[0]=[ni('<div class="link-header" data-v-115afd35><div class="platform-badge skeleton-element" data-v-115afd35><div class="skeleton-icon" data-v-115afd35></div></div><div class="link-meta" data-v-115afd35><div class="skeleton-element skeleton-language" data-v-115afd35></div></div></div><div class="link-content" data-v-115afd35><div class="link-title-row" data-v-115afd35><div class="skeleton-element skeleton-title" data-v-115afd35></div><div class="expand-arrow" data-v-115afd35><div class="skeleton-element skeleton-arrow" data-v-115afd35></div></div></div></div>',2)]))}const Za=pt(Ya,[["render",Xa],["__scopeId","data-v-115afd35"]]),eu=["checked"],tu={key:0,class:"checkbox-label"},Ns=pt({__name:"CheckBox",props:{modelValue:{type:Boolean,default:!1},label:{type:String,default:""},color:{type:String,default:"blue",validator:e=>["blue","green","purple","red"].includes(e)}},emits:["update:modelValue"],setup(e){return(t,s)=>(P(),I("label",{class:ce(["ios-checkbox",e.color])},[c("input",{type:"checkbox",checked:e.modelValue,onChange:s[0]||(s[0]=n=>t.$emit("update:modelValue",n.target.checked))},null,40,eu),s[1]||(s[1]=c("div",{class:"checkbox-wrapper"},[c("div",{class:"checkbox-bg"}),c("svg",{fill:"none",viewBox:"0 0 24 24",class:"checkbox-icon"},[c("path",{"stroke-linejoin":"round","stroke-linecap":"round","stroke-width":"3",stroke:"currentColor",d:"M4 12L10 18L20 6",class:"check-path"})])],-1)),e.label?(P(),I("span",tu,F(e.label),1)):N("",!0)],2))}},[["__scopeId","data-v-77ac6b2a"]]),su={class:"link-manager"},nu={key:0,class:"modal-overlay"},ru={class:"modal-content"},ou={class:"modal-body"},lu={class:"form-row"},iu={class:"form-group"},au={key:0,class:"form-group"},uu={class:"form-group"},cu={class:"input-wrapper"},fu={class:"form-row"},du={key:0,class:"form-group"},pu={class:"input-wrapper"},hu={class:"form-group"},vu={class:"input-wrapper"},gu={class:"form-row"},mu={class:"form-group"},_u={class:"checkbox-group"},bu={class:"form-actions"},yu=["disabled"],wu={class:"links-section"},xu={class:"filter-bar"},ku={class:"filter-controls"},Cu=["disabled"],Su={key:0,class:"links-list"},Tu={key:1,class:"links-list"},Eu={class:"link-header"},$u={key:0,class:"platform-badge"},Pu=["src","alt"],Au={class:"link-meta"},Iu={key:0,class:"language"},Ou={key:1,class:"feature-tags"},Du={key:0,class:"feature-tag feature-4k"},Mu={key:1,class:"feature-tag feature-hdr"},Uu={key:2,class:"feature-tag feature-dolby"},Vu={key:3,class:"feature-tag feature-subtitle"},Ru={class:"link-content"},Lu=["onClick"],Fu={class:"link-details"},Nu={key:0,class:"extract-code"},Bu=["onClick"],ju={class:"link-url"},Hu=["href"],qu=["onClick"],Wu={class:"link-actions"},Ku={class:"vote-section"},Gu=["onClick","disabled"],zu=["onClick","disabled"],Ju={class:"score"},Yu={class:"action-buttons"},Qu=["onClick"],Xu=["onClick"],Zu=["onClick"],ec={class:"link-footer"},tc={class:"author"},sc={class:"date"},nc={key:0,class:"report-count"},rc={key:2,class:"empty-state"},oc={key:1,class:"pagination"},lc=["disabled"],ic={class:"pagination-info"},ac=["disabled"],uc={class:"toast-container"},cc={key:0,class:"modal-overlay"},fc={class:"modal-content"},dc={class:"modal-body"},pc={class:"form-group"},hc={class:"form-group"},vc={class:"input-wrapper"},gc={class:"form-actions"},mc=["disabled"],as="doubanflix_link_draft",_c=pt({__name:"LinkManager",props:{movieId:{type:String,required:!0},linkType:{type:String,default:"all"}},setup(e){const t=e,s=Ie(()=>t.linkType),n=j([]),r=j({total:0,netdisk:0,bt:0,online:0,platforms:{}}),o=j(!1),l=j(""),i=j(""),a=j(!1),g=j(!1),h=j(new Set),_=j({page:1,limit:5,total:0,pages:0}),m=Tt({linkType:"",platform:"",url:"",extractCode:"",title:"",has_4k:!1,has_hdr:!1,has_dolby_atmos:!1,has_subtitles:!1}),y=Tt({platform:"",sortBy:"created_at"}),E=[{value:"",label:"请选择类型"},{value:"netdisk",label:"网盘"},{value:"bt",label:"BT"},{value:"online",label:"在线"}],M=[{value:"",label:"请选择平台"},{value:"quark",label:"夸克网盘"},{value:"ali",label:"阿里云盘"},{value:"baidu",label:"百度网盘"},{value:"tianyi",label:"天翼云盘"},{value:"mobile",label:"移动云盘"},{value:"115",label:"115网盘"},{value:"xunlei",label:"迅雷网盘"},{value:"uc",label:"UC网盘"}],ne=(v,d,f)=>{const C=d+f;if(C===0)return 5;const k=d/C*10;return Math.round(k*10)/10},B=[{value:"created_at",label:"按时间"},{value:"likes_count",label:"按点赞数"},{value:"like_rate",label:"按点赞率"}],W=Ie(()=>{switch(m.linkType){case"netdisk":return M;default:return[{value:"",label:"请选择平台"}]}}),K=Ie(()=>{const v=[{value:"",label:"所有平台"}];switch(t.linkType){case"netdisk":return v.concat([{value:"quark",label:"夸克"},{value:"ali",label:"阿里"},{value:"baidu",label:"百度"},{value:"tianyi",label:"天翼"},{value:"mobile",label:"移动"},{value:"115",label:"115"},{value:"xunlei",label:"迅雷"},{value:"uc",label:"UC"}]);default:return v}}),O=Ie(()=>se.isAuthenticated.value),G=async(v=1)=>{if(t.movieId){o.value=!0,l.value="";try{const d=t.linkType==="all"?void 0:t.linkType,f=await wt.getLinks(t.movieId,{linkType:d,platform:y.platform||void 0,sortBy:y.sortBy,sortOrder:"desc",page:v,limit:_.value.limit});f.success?(n.value=f.data,f.pagination&&(_.value={page:f.pagination.page||1,limit:f.pagination.limit||5,total:f.pagination.total||0,pages:f.pagination.pages||0})):l.value=f.error}catch(d){l.value="加载链接失败",console.error("加载链接错误:",d)}finally{o.value=!1}}},ke=async()=>{if(t.movieId)try{const v=await wt.getLinkStats(t.movieId);v.success&&(r.value=v.data)}catch(v){console.error("加载统计失败:",v)}},Te=async()=>{if(!O.value){l.value="请先登录";return}g.value=!0,l.value="";try{const v=await wt.addLink({movieId:t.movieId,linkType:m.linkType,platform:m.platform,url:m.url,extractCode:m.extractCode,title:m.title,has_4k:m.has_4k,has_hdr:m.has_hdr,has_dolby_atmos:m.has_dolby_atmos,has_subtitles:m.has_subtitles});v.success?(i.value=v.message,Re(),Vt(),a.value=!1,await G(),await ke(),setTimeout(()=>{i.value=""},3e3)):l.value=v.error}catch(v){l.value="添加链接失败",console.error("添加链接错误:",v)}finally{g.value=!1}},Oe=async(v,d)=>{if(!O.value){l.value="请先登录";return}const f=n.value.find($=>$.id===v);if(!f)return;const C=f.user_vote_type,S=f.up_votes||0,k=f.down_votes||0,x=f.score||0;let A=S,T=k;if(f.user_vote_type===d)f.user_vote_type=null,d==="up"?A=Math.max(0,S-1):T=Math.max(0,k-1);else{const $=f.user_vote_type;f.user_vote_type=d,$==="up"?A=Math.max(0,S-1):$==="down"&&(T=Math.max(0,k-1)),d==="up"?A=A+1:T=T+1}f.up_votes=A,f.down_votes=T,f.score=A-T;try{let $;C===d?$=await wt.removeVote(v):$=await wt.voteLink(v,d),$.success?$.data&&(f.up_votes=$.data.up_votes,f.down_votes=$.data.down_votes,f.score=f.up_votes-f.down_votes,f.user_vote_type=$.data.user_vote_type||null):(f.user_vote_type=C,f.up_votes=S,f.down_votes=k,f.score=x,l.value=$.error)}catch($){f.user_vote_type=C,f.up_votes=S,f.down_votes=k,f.score=x,l.value="投票失败",console.error("投票错误:",$)}},ht=async v=>{if(confirm("确定要删除这个链接吗?"))try{const d=await wt.deleteLink(v);d.success?(i.value=d.message,await G(),await ke(),setTimeout(()=>{i.value=""},3e3)):l.value=d.error}catch(d){l.value="删除链接失败",console.error("删除链接错误:",d)}},Re=()=>{Object.assign(m,{linkType:"",platform:"",url:"",extractCode:"",title:"",has_4k:!1,has_hdr:!1,has_dolby_atmos:!1,has_subtitles:!1})},Le=j(!1),ae=Tt({linkId:"",type:"",reason:""}),D=j(!1),w=[{value:"invalid_link",label:"无效链接"},{value:"copyright_issue",label:"版权问题"},{value:"malicious_link",label:"恶意链接"},{value:"spam",label:"垃圾信息"},{value:"fake_content",label:"虚假内容"},{value:"other",label:"其他"}],me=v=>{if(!O.value){l.value="请先登录";return}ae.linkId=v,ae.type="invalid_link",ae.reason="",Le.value=!0},U=async()=>{if(!ae.type){l.value="请选择反馈类型";return}D.value=!0,l.value="";try{const v=await wt.reportLink(ae.linkId,ae.type,ae.reason);v.success?(i.value=v.message,Le.value=!1,await G(),setTimeout(()=>{i.value=""},3e3)):l.value=v.error}catch(v){l.value="反馈提交失败",console.error("反馈错误:",v)}finally{D.value=!1}},J=()=>{Le.value=!1,ae.linkId="",ae.reason="",ae.description=""},X=()=>{const v={linkType:m.linkType,platform:m.platform,url:m.url,extractCode:m.extractCode,title:m.title,language:m.language,has_4k:m.has_4k,has_hdr:m.has_hdr,has_dolby_atmos:m.has_dolby_atmos,has_subtitles:m.has_subtitles,timestamp:Date.now()};Object.values(v).some(f=>f&&f!==""&&typeof f!="number")&&localStorage.setItem(as,JSON.stringify(v))},st=()=>{try{const v=localStorage.getItem(as);if(v){const d=JSON.parse(v);if(Date.now()-d.timestamp>24*60*60*1e3)localStorage.removeItem(as);else return Object.assign(m,{linkType:d.linkType||"",platform:d.platform||"",url:d.url||"",extractCode:d.extractCode||"",title:d.title||"",language:d.language||"",has_4k:d.has_4k||!1,has_hdr:d.has_hdr||!1,has_dolby_atmos:d.has_dolby_atmos||!1,has_subtitles:d.has_subtitles||!1}),!0}}catch(v){console.error("恢复草稿失败:",v),localStorage.removeItem(as)}return!1},Vt=()=>{localStorage.removeItem(as)},nt=()=>{a.value=!0,st()&&console.log("已恢复草稿内容")},De=()=>{X(),a.value=!1,Re()},Rt=v=>O.value&&se.userId.value===v.user_id,Pn=v=>({quark:"夸克",ali:"阿里",baidu:"百度",tianyi:"天翼",mobile:"移动",115:"115",xunlei:"迅雷",uc:"UC",bilibili:"B站",iqiyi:"爱奇艺",youku:"优酷",tencent:"腾讯",bt:"磁力"})[v]||v,An=v=>{const d={quark:"data:image/svg+xml;base64,"+btoa('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1756540462038" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4774" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M469.134884 976.133953c-110.258605-9.763721-215.516279-59.534884-290.768372-137.168372-75.490233-78.109767-113.830698-154.552558-132.167442-263.858604-4.762791-28.338605-5.477209-95.970233-1.190698-123.832558 10.24-68.822326 33.101395-134.072558 64.297675-184.32 88.349767-142.407442 236.710698-226.470698 399.598139-226.470698 69.536744 0 132.167442 12.621395 192.416744 39.054884 52.628837 23.099535 110.496744 64.297674 149.313489 106.448372 60.725581 65.964651 91.92186 122.165581 114.783255 206.943256 18.098605 66.917209 18.574884 160.982326 1.428838 227.423255-19.289302 73.585116-45.484651 126.213953-92.636279 184.55814-40.96 50.96186-84.063256 86.92093-140.740466 117.402791-59.534884 32.148837-114.545116 48.104186-184.08186 53.819534-34.053953 2.857674-47.151628 2.857674-80.253023 0z m84.063256-238.615813c11.668837-5.00093 20.71814-19.051163 20.718139-32.625117 0-23.337674 4.524651-49.771163 10.47814-61.44 12.145116-23.813953 28.338605-32.148837 77.395348-39.769302 19.051163-2.857674 38.578605-6.906047 43.341396-8.811163 13.573953-5.953488 24.766512-17.384186 32.148837-33.339535 6.667907-14.526512 6.906047-15.955349 6.906047-53.105116-0.23814-41.19814-1.666977-50.247442-15.955349-87.15907-21.194419-55.486512-76.91907-110.734884-132.167442-130.738604-11.430698-4.048372-33.577674-9.525581-49.294884-12.383256-26.195349-4.286512-31.196279-4.524651-53.819535-1.905117-44.770233 5.23907-72.394419 14.050233-103.352558 32.625117-19.527442 11.906977-20.956279 13.097674-44.532093 36.435349-34.530233 34.053953-52.390698 67.155349-63.345116 116.688372-19.051163 86.92093 15.47907 178.604651 87.873488 233.853023 30.243721 23.099535 74.537674 41.674419 106.686512 44.770232 27.624186 2.857674 66.67907 1.190698 76.91907-3.095813z" fill="#3A25DD" p-id="4775"></path></svg>'),ali:"data:image/svg+xml;base64,"+btoa('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1756540539411" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5761" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M841.984 576.554667a18.816 18.816 0 0 1-13.184-21.973334c41.941333-200.448-75.605333-402.346667-269.226667-456.021333-199.509333-55.125333-405.333333 67.285333-459.52 273.109333v0.981334a460.586667 460.586667 0 0 0 62.464 371.2 439.893333 439.893333 0 0 0 208.768 167.765333c236.544 89.301333 491.178667-44.373333 566.272-283.349333a23.04 23.04 0 0 0-15.573333-29.269334l-80-22.442666z m-393.130667 194.133333c-72.704-20.010667-133.162667-68.266667-170.752-135.125333a298.112 298.112 0 0 1-28.288-219.989334C282.026667 293.12 404.48 220.501333 523.52 253.141333c112.64 31.232 182.4 146.346667 161.92 262.912a21.205333 21.205333 0 0 0 15.104 24.405334l75.605333 20.949333a17.493333 17.493333 0 0 1 11.733334 22.954667c-47.36 142.933333-195.114667 225.834667-338.986667 186.325333z" fill="#6666FF" p-id="5762"></path></svg>'),baidu:"data:image/svg+xml;base64,"+btoa('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1756540564286" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6851" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M292.571429 435.931429c-1.462857-11.702857-2.925714-24.868571-2.925715-38.034286C289.645714 275.017143 389.12 175.542857 512 175.542857c122.88 0 222.354286 99.474286 222.354286 223.817143 0 13.165714-1.462857 24.868571-2.925715 38.034286 112.64 0 204.8 92.16 204.8 206.262857 0 112.64-92.16 204.8-206.262857 204.8-57.051429 0-109.714286-23.405714-146.285714-61.44-19.017143-20.48-19.017143-52.662857 0-71.68 20.48-20.48 52.662857-20.48 71.68 0l1.462857 1.462857c19.017143 17.554286 43.885714 29.257143 71.68 29.257143 57.051429 0 103.862857-46.811429 103.862857-103.862857 0-57.051429-46.811429-103.862857-103.862857-103.862857-26.331429 0-49.737143 10.24-68.754286 26.331428l-1.462857 1.462857-5.851428 5.851429-4.388572 4.388571-207.725714 210.651429c-38.034286 38.034286-89.234286 61.44-146.285714 61.44C179.931429 848.457143 87.771429 756.297143 87.771429 642.194286c0-112.64 90.697143-204.8 204.8-206.262857m1.462857 310.125714c57.051429 0 103.862857-46.811429 103.862857-103.862857 0-57.051429-46.811429-103.862857-103.862857-103.862857-57.051429 0-103.862857 46.811429-103.862857 103.862857 0 57.051429 46.811429 103.862857 103.862857 103.862857M512 520.777143c67.291429 0 121.417143-54.125714 121.417143-121.417143 0-67.291429-54.125714-121.417143-121.417143-121.417143-67.291429 0-121.417143 54.125714-121.417143 121.417143 0 65.828571 54.125714 121.417143 121.417143 121.417143" fill="#06A7FF" p-id="6852"></path><path d="M631.954286 412.525714v-5.851428c0-27.794286 23.405714-51.2 51.2-51.2s51.2 23.405714 51.2 51.2v5.851428c-7.314286 117.028571-103.862857 209.188571-222.354286 209.188572s-215.04-92.16-222.354286-209.188572v-5.851428c0-27.794286 23.405714-51.2 51.2-51.2s51.2 23.405714 51.2 51.2v5.851428c5.851429 61.44 58.514286 108.251429 119.954286 108.251429 62.902857 0 114.102857-46.811429 119.954286-108.251429" fill="#FF436A" p-id="6853"></path></svg>'),tianyi:"data:image/svg+xml;base64,"+btoa('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1756540718396" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8675" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M833.39946667 423.28746667a185.00266667 185.00266667 0 0 0-205.55093334-134.07573333A226.304 226.304 0 0 0 463.0528 217.6c-93.52533333 0-176.5376 58.29973333-209.92 143.01866667A210.80746667 210.80746667 0 0 0 34.13333333 571.01653334c0 116.05333333 94.48106667 210.5344 210.5344 210.5344h281.87306667a41.09653333 41.09653333 0 0 0 0-82.1248H244.66773333a128.54613333 128.54613333 0 0 1-128.34133333-128.4096 128.54613333 128.54613333 0 0 1 157.01333333-125.20106667l40.82346667 9.35253333 8.46506667-41.09653333a143.7696 143.7696 0 0 1 140.42453333-114.34666667c45.73866667 0 89.15626667 22.18666667 116.05333333 59.32373334l17.47626667 24.02986666 28.2624-9.0112a101.5808 101.5808 0 0 1 132.36906667 88.95146667l2.79893333 35.97653333 36.0448 1.8432a117.62346667 117.62346667 0 0 1 111.68426667 117.62346667 117.89653333 117.89653333 0 0 1-128.88746667 117.21386667l-4.36906667-0.54613334a115.3024 115.3024 0 0 1-6.48533333-1.024l-5.12-1.09226666a128.88746667 128.88746667 0 0 1-15.83786667-4.98346667 133.46133333 133.46133333 0 0 1-10.4448-4.7104l-3.75466666-1.91146667a119.73973333 119.73973333 0 0 1-6.82666667-4.16426666l-2.2528-1.36533334a118.23786667 118.23786667 0 0 1-47.78666667-67.65226666h69.4272l-113.73226666-162.47466667-113.73226667 162.47466667h74.41066667c7.23626667 48.46933333 31.88053333 91.27253333 67.44746666 121.78773333l2.18453334 2.048 2.18453333 1.6384a182.39466667 182.39466667 0 0 0 9.216 7.03146667l4.02773333 2.8672c3.75466667 2.52586667 7.5776 4.98346667 11.53706667 7.30453333l3.072 1.77493333c4.36906667 2.4576 8.73813333 4.77866667 13.24373333 6.82666667l1.57013334 0.68266667c15.01866667 6.9632 31.06133333 12.01493333 47.78666666 15.01866666l1.36533334 0.2048c5.12 0.95573333 10.4448 1.6384 15.7696 2.11626667l2.048 0.13653333a203.22986667 203.22986667 0 0 0 46.55786666-1.57013333A200.22613333 200.22613333 0 0 0 989.86666667 618.46186667a199.81653333 199.81653333 0 0 0-156.4672-195.24266667" p-id="8676"></path></svg>'),mobile:"data:image/svg+xml;base64,"+btoa('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1756540741796" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9705" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M1020.16 266.88c-44.16 11.52-88.32 21.12-133.12 30.08-28.8 5.76-57.6 11.52-87.04 14.08-35.84 3.84-71.04 5.12-106.88 7.04-81.92 3.84-163.84 2.56-245.76 1.92-64.64-0.64-129.92 0-193.28 13.44-56.96 12.16-111.36 30.08-159.36 64-30.08 21.12-59.52 43.52-94.72 55.68 1.92 5.76 7.04 4.48 10.88 4.48 37.76 1.28 75.52-1.92 112.64-6.4 24.96-3.2 50.56-6.4 75.52-10.24 32-5.12 64-6.4 96-8.32 17.92-1.28 35.84-1.92 53.76 1.28 12.8 1.92 16.64 9.6 10.88 21.12-3.2 7.04-8.96 12.8-14.08 18.56-14.72 15.36-32 28.16-48 42.24-40.96 36.48-80.64 75.52-119.04 115.2-21.12 21.76-41.6 44.16-53.76 72.32-29.44 68.48-26.88 134.4 17.28 195.2 33.92 46.72 85.76 65.28 140.16 75.52 28.16 5.12 56.96 3.2 85.76 3.2 87.04 0 174.08-0.64 261.12 1.28 51.84 1.28 103.04 1.28 154.24-7.04 52.48-8.32 95.36-34.56 125.44-77.44 42.88-60.8 54.4-128.64 37.12-200.96-12.16-51.2-37.12-94.72-80.64-126.08-69.76-49.28-147.84-64-231.68-48.64-32.64 5.76-61.44 20.48-83.2 45.44-43.52 49.92-47.36 107.52-27.52 167.04 17.28 52.48 81.92 81.28 136.96 65.28 24.96-7.04 44.8-21.76 55.04-46.08 8.32-18.56 1.92-35.2-15.36-42.24-2.56 26.88-14.72 38.4-42.88 39.04H640a54.912 54.912 0 0 1-53.12-56.32c0-31.36 26.88-67.84 59.52-78.72 51.84-17.28 98.56-8.32 140.16 27.52 40.96 36.48 55.04 97.92 30.72 140.8-24.32 43.52-64 67.84-111.36 78.08-40.96 8.32-82.56 8.96-124.16 10.88-44.16 1.92-88.32 1.28-132.48-1.28-33.28-1.92-67.2-4.48-99.84-11.52-28.8-6.4-56.96-14.72-79.36-35.2a61.696 61.696 0 0 1-21.76-51.84c2.56-34.56 17.28-64.64 39.68-90.88a3790.08 3790.08 0 0 1 190.72-202.24c25.6-25.6 56.96-40.32 92.8-43.52 32-2.56 63.36-3.84 95.36-5.76 58.88-3.84 117.12-11.52 174.72-27.52 64-17.28 120.96-46.72 161.92-101.12 7.68-9.6 15.36-19.2 18.56-32h-3.84zM869.12 44.8c0 7.68-3.84 13.44-7.04 19.2-19.2 35.84-49.92 58.88-84.48 77.44-48 26.24-99.84 41.6-153.6 49.28-65.92 9.6-132.48 8.32-199.04 7.04-78.08-1.92-156.16 1.92-232.96 16.64-23.04 4.48-46.08 6.4-69.12 9.6-3.84 0-8.32 1.28-14.08 1.92 1.92-1.92 3.2-2.56 4.48-3.84 13.44-7.04 24.32-17.28 33.92-28.8 40.32-48.64 91.52-75.52 153.6-85.12 44.8-7.04 90.24-7.68 135.68-9.6 65.92-1.92 131.2-1.28 197.12-6.4 78.08-5.76 154.24-22.4 228.48-46.08 1.92 0 3.84-0.64 6.4-1.28z" fill="#0090FE" p-id="9706"></path></svg>'),115:"data:image/svg+xml;base64,"+btoa('<svg t="1758974307798" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13186" width="200" height="200"><path d="M701.004655 35.208896c29.184693-0.150426 57.568137-7.509021 84.900645-17.220197 20.924565 9.561773-3.704368 30.886451-7.559163 44.903699-9.81146 18.4717-18.371416 37.594223-29.084409 55.516408-10.562567 15.618723-29.785374 24.128537-48.4075 23.228027-75.139328-0.100284-150.228513 0-225.367841-0.050142-21.425985-0.851391-42.250266 12.565177-50.960649 32.03767-11.763928 24.329105-25.080212 47.957245-36.193317 72.586179 67.680449 13.216 137.012514 25.430182 198.886723 57.31845 58.670238 29.9358 109.880573 76.740802 139.615804 136.01172 37.294394 72.836889 39.797401 162.54298 5.106298 236.882082C696.149067 753.612827 625.013937 810.830993 545.56956 838.764182c-95.764064 32.989345-205.795063 33.939997-297.453622-12.214183-0.550539-0.751107-1.701758-2.252297-2.302439-3.053546 89.155553 11.914354 183.668113-3.604084 260.560364-51.611471 49.659003-30.836309 89.305979-80.195483 101.069907-138.214898 11.062963-44.803415 2.753717-93.411483-22.577205-131.957381-38.845727-60.021002-102.421694-100.519368-169.70203-121.895211-63.825654-21.926382-131.005706-30.036084-197.685361-37.594223 47.306422-93.110631 93.66117-186.721659 140.567479-280.032858 8.760524-17.020652 28.234041-27.432793 47.206138-26.78197C503.81969 35.208896 602.437755 35.609009 701.004655 35.208896z" fill="#224888" p-id="13187"></path></svg>'),xunlei:"data:image/svg+xml;base64,"+btoa('<svg t="1758974328647" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14190" width="200" height="200"><path d="M432.64 407.04s199.68-217.6 468.48-322.56c0 0 12.8-5.12 2.56 7.68s-56.32 84.48-66.56 97.28l-35.84 33.28 17.92-5.12-35.84 79.36-46.08 46.08 33.28-10.24-38.4 92.16-40.96 40.96 35.84-20.48s-17.92 38.4-35.84 66.56c0 0 163.84 17.92 302.08 81.92 0 0-76.8 20.48-107.52 28.16l-33.28-7.68 15.36 10.24-35.84 15.36c-2.56 0-28.16-7.68-40.96-2.56 0 0 15.36 5.12 17.92 10.24l-38.4 15.36s-7.68 5.12-15.36 5.12c-5.12 0-38.4-7.68-48.64-2.56 0 0 20.48 10.24 28.16 10.24 0 0-12.8 17.92-122.88 23.04 0 0 81.92 227.84 79.36 258.56-2.56 30.72-48.64-35.84-48.64-35.84s-69.12-76.8-89.6-92.16c-20.48-15.36-79.36-25.6-204.8-104.96s-125.44-181.76-117.76-230.4c7.68-48.64 7.68-84.48-23.04-94.72s-81.92-23.04-189.44-25.6c0 0-17.92-12.8 12.8-12.8 30.72 2.56 112.64 2.56 156.16-5.12 48.64-10.24 66.56-25.6 104.96-20.48 38.4 5.12 87.04 17.92 140.8 71.68z" fill="#1390F2" p-id="14191"></path></svg>'),uc:"data:image/svg+xml;base64,"+btoa('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1758974377018" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17084" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M240.32 674.282667c11.093333-57.856 42.837333-102.656 89.450667-136.896 28.458667-20.885333 58.709333-39.338667 88.362666-58.538667 47.36-30.634667 87.018667-67.989333 107.221334-122.304 22.592-60.650667 20.970667-119.701333-20.117334-171.818667-52.053333-66.005333-122.389333-86.208-203.648-71.658666-59.093333 10.581333-107.52 41.173333-149.397333 82.88-17.429333 17.344-32.256 36.778667-43.648 61.354666 3.925333-2.645333 6.037333-4.053333 8.106667-5.482666 22.549333-15.722667 47.36-23.253333 74.986666-22.186667 46.144 1.813333 84.352 41.088 85.397334 87.189333 0.682667 30.336-8.725333 57.386667-26.88 80.704-23.104 29.76-48 58.112-72.298667 86.933334-52.266667 62.08-79.338667 132.672-68.416 214.336 10.965333 82.090667 53.802667 144.064 126.528 183.808 45.845333 25.024 96.149333 33.344 150.378667 32.832-2.922667-1.237333-4.096-1.856-5.333334-2.197334-104.170667-28.672-159.253333-142.016-140.693333-238.933333zM653.184 473.6c42.176 13.888 80.213333 36.138667 118.826667 57.344 40.576 22.293333 83.285333 23.210667 127.018666 10.304 8.533333-2.517333 12.010667-7.168 11.178667-16.042667-1.066667-11.690667-0.448-23.594667-2.197333-35.157333-11.584-76.970667-53.141333-130.026667-126.997334-156.288-9.258667-3.285333-12.224-8.405333-14.976-17.194667-5.290667-16.853333-12.416-33.237333-19.925333-49.28-3.093333-6.613333-9.088-11.84-14.869333-19.050666-5.504 8.234667-10.176 14.357333-13.930667 21.013333-14.122667 24.917333-18.666667 52.373333-19.690667 80.426667-0.298667 8.618667-2.56 14.997333-9.408 19.754666-15.189333 10.538667-29.632 22.549333-45.888 31.082667-34.794667 18.218667-70.549333 34.624-104.96 51.285333 39.018667-0.213333 77.653333 9.237333 115.84 21.802667z m43.456 380.224c-14.826667-3.456-30.058667-5.162667-45.738667-7.765333 0.789333-2.986667 1.365333-5.546667 2.154667-8.064 11.52-36.458667 13.568-73.386667 8.789333-111.36-15.893333-126.421333-143.893333-202.218667-246.506666-180.288-54.613333 11.648-93.269333 42.154667-115.690667 93.226666 82.154667-81.365333 205.12-56.512 255.872 13.781334 33.493333 46.378667 42.602667 97.408 25.472 152-17.173333 54.762667-56.661333 88.533333-111.573333 109.653333 70.634667 1.984 266.624-4.16 290.432-11.733333-2.666667-5.12-4.672-10.453333-7.914667-14.869334-13.845333-18.730667-33.088-29.44-55.296-34.581333z m-158.72-97.877333c-0.490667-64.533333-49.024-117.546667-117.056-117.909334-73.429333-0.362667-118.229333 59.946667-118.229333 117.717334 0 61.76 51.136 118.186667 117.546666 117.12 65.194667-0.042667 118.250667-52.266667 117.76-116.928z m-118.336 53.397333a53.461333 53.461333 0 0 1-53.333333-54.144c0.128-29.312 25.386667-54.464 54.186666-53.973333 29.248 0.490667 54.08 25.344 54.293334 54.314666 0.213333 29.632-24.704 53.930667-55.146667 53.802667z m493.653333-168.576c-5.866667-23.061333-22.058667-35.882667-43.904-41.322667-15.210667-3.818667-31.04-5.290667-46.656-7.296-42.645333-5.504-80.149333-23.210667-116.096-45.994666-72.213333-45.76-150.976-65.92-236.373333-55.978667-14.784 1.728-29.098667 7.402667-43.626667 11.242667l0.768 3.072c9.386667 0 18.88-0.917333 28.16 0.170666 22.570667 2.666667 45.717333 3.861333 67.456 9.898667 77.056 21.44 132.288 71.104 171.669334 139.306667 5.610667 9.749333 11.968 16.277333 22.826666 16.853333 15.616 0.853333 31.488 2.432 46.826667 0.426667a125.013333 125.013333 0 0 0 39.125333-12.458667c35.072-17.6 70.677333-25.450667 109.077334-10.752 0.853333-2.026667 1.344-2.645333 1.322666-3.221333a19.626667 19.626667 0 0 0-0.597333-3.946667z" fill="#FC7A28" p-id="17085"></path></svg>')};return d[v]||d.quark},xt=v=>v.length>50?v.substring(0,47)+"...":v,Lt=v=>{const d=new Date(v);return d.toLocaleDateString("zh-CN")+" "+d.toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"})},Ft=async v=>{try{await navigator.clipboard.writeText(v),i.value="已复制到剪贴板",setTimeout(()=>{i.value=""},2e3)}catch(d){console.error("复制失败:",d),l.value="复制失败"}},Bs=v=>{h.value.has(v)?h.value.delete(v):h.value.add(v)},Ne=v=>h.value.has(v),Nt=()=>{h.value.clear()};Dt(()=>t.movieId,v=>{v&&(Nt(),G(),ke())},{immediate:!0}),Dt(()=>t.linkType,()=>{Nt(),y.platform="",_.value.page=1,t.movieId&&G()});const u=v=>{v>=1&&v<=_.value.pages&&(Nt(),G(v))},p=()=>{_.value.page>1&&u(_.value.page-1)},b=()=>{_.value.page<_.value.pages&&u(_.value.page+1)};return It(()=>{t.movieId&&(G(),ke())}),(v,d)=>(P(),I(Se,null,[c("div",su,[a.value?(P(),I("div",nu,[c("div",ru,[c("div",{class:"modal-header"},[d[18]||(d[18]=c("h4",null,"添加新链接",-1)),c("button",{class:"close-btn",onClick:De},"×")]),c("div",ou,[c("form",{onSubmit:ft(Te,["prevent"])},[c("div",lu,[c("div",iu,[d[19]||(d[19]=c("label",null,"链接类型 *",-1)),ie(is,{modelValue:m.linkType,"onUpdate:modelValue":d[0]||(d[0]=f=>m.linkType=f),options:E,placeholder:"请选择类型",onChange:d[1]||(d[1]=f=>m.platform="")},null,8,["modelValue"])]),m.linkType==="netdisk"?(P(),I("div",au,[d[20]||(d[20]=c("label",null,"平台",-1)),ie(is,{modelValue:m.platform,"onUpdate:modelValue":d[2]||(d[2]=f=>m.platform=f),options:W.value,placeholder:"请选择平台"},null,8,["modelValue","options"])])):N("",!0)]),c("div",uu,[d[21]||(d[21]=c("label",null,"链接地址 *",-1)),c("div",cu,[le(c("input",{type:"url","onUpdate:modelValue":d[3]||(d[3]=f=>m.url=f),placeholder:"请输入完整的链接地址",required:""},null,512),[[de,m.url]])])]),c("div",fu,[m.linkType==="netdisk"?(P(),I("div",du,[d[22]||(d[22]=c("label",null,"提取码",-1)),c("div",pu,[le(c("input",{type:"text","onUpdate:modelValue":d[4]||(d[4]=f=>m.extractCode=f),placeholder:"如有提取码请填写",maxlength:"10"},null,512),[[de,m.extractCode]])])])):N("",!0),c("div",hu,[d[23]||(d[23]=c("label",null,"标题描述",-1)),c("div",vu,[le(c("input",{type:"text","onUpdate:modelValue":d[5]||(d[5]=f=>m.title=f),placeholder:"简短描述这个链接"},null,512),[[de,m.title]])])])]),c("div",gu,[c("div",mu,[d[24]||(d[24]=c("label",null,"特性标签",-1)),c("div",_u,[ie(Ns,{modelValue:m.has_4k,"onUpdate:modelValue":d[6]||(d[6]=f=>m.has_4k=f),label:"4K画质",color:"blue"},null,8,["modelValue"]),ie(Ns,{modelValue:m.has_hdr,"onUpdate:modelValue":d[7]||(d[7]=f=>m.has_hdr=f),label:"HDR",color:"green"},null,8,["modelValue"]),ie(Ns,{modelValue:m.has_dolby_atmos,"onUpdate:modelValue":d[8]||(d[8]=f=>m.has_dolby_atmos=f),label:"杜比全景声",color:"purple"},null,8,["modelValue"]),ie(Ns,{modelValue:m.has_subtitles,"onUpdate:modelValue":d[9]||(d[9]=f=>m.has_subtitles=f),label:"外挂字幕",color:"red"},null,8,["modelValue"])])])]),c("div",bu,[c("button",{type:"submit",disabled:g.value},F(g.value?"添加中...":"添加链接"),9,yu),c("button",{type:"button",onClick:De},"取消")])],32)])])])):N("",!0),c("div",wu,[c("div",xu,[c("div",ku,[s.value==="netdisk"?(P(),xn(is,{key:0,modelValue:y.platform,"onUpdate:modelValue":d[10]||(d[10]=f=>y.platform=f),options:K.value,placeholder:"所有平台",onChange:d[11]||(d[11]=()=>{Nt(),G()})},null,8,["modelValue","options"])):N("",!0),ie(is,{modelValue:y.sortBy,"onUpdate:modelValue":d[12]||(d[12]=f=>y.sortBy=f),options:B,placeholder:"按时间",onChange:d[13]||(d[13]=()=>{Nt(),G()})},null,8,["modelValue"])]),c("button",{class:"add-link-btn-compact",onClick:nt,disabled:!O.value,title:"添加链接"},d[25]||(d[25]=[c("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor"},[c("path",{d:"M8 1a.5.5 0 0 1 .5.5v6h6a.5.5 0 0 1 0 1h-6v6a.5.5 0 0 1-1 0v-6h-6a.5.5 0 0 1 0-1h6v-6A.5.5 0 0 1 8 1z"})],-1)]),8,Cu)]),o.value?(P(),I("div",Su,[(P(),I(Se,null,pn(3,f=>ie(Za,{key:"skeleton-"+f})),64))])):n.value.length>0?(P(),I("div",Tu,[(P(!0),I(Se,null,pn(n.value,f=>(P(),I("div",{class:"link-item",key:f.id},[c("div",Eu,[f.platform&&t.linkType!=="bt"&&t.linkType!=="online"?(P(),I("div",$u,[c("img",{src:An(f.platform),alt:Pn(f.platform),class:"platform-icon"},null,8,Pu)])):N("",!0),c("div",Au,[f.language?(P(),I("span",Iu,F(f.language),1)):N("",!0),f.has_4k||f.has_hdr||f.has_dolby_atmos||f.has_subtitles?(P(),I("div",Ou,[f.has_4k?(P(),I("span",Du,"4K")):N("",!0),f.has_hdr?(P(),I("span",Mu,"HDR")):N("",!0),f.has_dolby_atmos?(P(),I("span",Uu,"杜比全景声")):N("",!0),f.has_subtitles?(P(),I("span",Vu,"外挂字幕")):N("",!0)])):N("",!0)])]),c("div",Ru,[c("div",{class:"link-title-row",onClick:C=>Bs(f.id)},[f.title?(P(),I("div",{key:0,class:ce(["link-title",{expanded:Ne(f.id)}])},F(f.title),3)):N("",!0),c("div",{class:ce(["expand-arrow",{expanded:Ne(f.id)}])},d[26]||(d[26]=[c("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16"},[c("path",{d:"M512 330.666667c14.933333 0 29.866667 4.266667 40.533333 14.933333l277.33333399 234.666667c27.733333 23.466667 29.866667 64 8.53333301 89.6-23.466667 27.733333-64 29.866667-89.6 8.53333299L512 477.866667l-236.8 200.53333299c-27.733333 23.466667-68.266667 19.19999999-89.6-8.53333299-23.466667-27.733333-19.19999999-68.266667 8.53333301-89.6l277.33333399-234.666667c10.666667-10.666667 25.6-14.933333 40.533333-14.933333z",fill:"currentColor"})],-1)]),2)],8,Lu),le(c("div",Fu,[f.password?(P(),I("div",Nu,[d[27]||(d[27]=c("span",null,"提取码: ",-1)),c("code",null,F(f.password),1),c("button",{class:"copy-btn",onClick:C=>Ft(f.password),title:"复制提取码"}," 📋 ",8,Bu)])):N("",!0),c("div",ju,[c("a",{href:f.url,target:"_blank",rel:"noopener noreferrer"},F(xt(f.url)),9,Hu),c("button",{class:"copy-btn",onClick:C=>Ft(f.url),title:"复制链接"}," 📋 ",8,qu)])],512),[[Rs,Ne(f.id)]])]),le(c("div",Wu,[c("div",Ku,[c("button",{class:ce(["vote-btn up",{active:f.user_vote_type==="up"}]),onClick:C=>Oe(f.id,"up"),disabled:!O.value}," 👍 "+F(f.up_votes||0),11,Gu),c("button",{class:ce(["vote-btn down",{active:f.user_vote_type==="down"}]),onClick:C=>Oe(f.id,"down"),disabled:!O.value}," 👎 "+F(f.down_votes||0),11,zu),c("span",Ju,"评分: "+F(ne(f.score||0,f.up_votes||0,f.down_votes||0)),1)]),c("div",Yu,[Rt(f)?(P(),I("button",{key:0,class:"edit-btn",onClick:C=>v.startEdit(f)}," 编辑 ",8,Qu)):N("",!0),Rt(f)?(P(),I("button",{key:1,class:"delete-btn",onClick:C=>ht(f.id)}," 删除 ",8,Xu)):N("",!0),!Rt(f)&&O.value?(P(),I("button",{key:2,class:"report-btn",onClick:C=>me(f.id)}," 反馈 ",8,Zu)):N("",!0)])],512),[[Rs,Ne(f.id)]]),le(c("div",ec,[c("span",tc,"by "+F(f.user_display_name||"匿名用户"),1),c("span",sc,F(Lt(f.created_at)),1),f.report_count>0?(P(),I("span",nc," 被反馈 "+F(f.report_count)+" 次 ",1)):N("",!0)],512),[[Rs,Ne(f.id)]])]))),128))])):!o.value&&n.value.length===0?(P(),I("div",rc,d[28]||(d[28]=[c("p",null,"暂无链接,成为第一个添加链接的人吧!",-1)]))):N("",!0)]),_.value.pages>1&&!o.value?(P(),I("div",oc,[c("button",{class:"pagination-btn",disabled:_.value.page<=1,onClick:p}," 上一页 ",8,lc),c("span",ic,F(_.value.page)+" / "+F(_.value.pages),1),c("button",{class:"pagination-btn",disabled:_.value.page>=_.value.pages,onClick:b}," 下一页 ",8,ac)])):N("",!0),c("div",uc,[l.value?(P(),I("div",{key:0,class:"toast error-toast",onClick:d[14]||(d[14]=f=>l.value="")},[c("span",null,F(l.value),1),d[29]||(d[29]=c("button",{class:"toast-close"},"×",-1))])):N("",!0),i.value?(P(),I("div",{key:1,class:"toast success-toast",onClick:d[15]||(d[15]=f=>i.value="")},[c("span",null,F(i.value),1),d[30]||(d[30]=c("button",{class:"toast-close"},"×",-1))])):N("",!0)])]),Le.value?(P(),I("div",cc,[c("div",fc,[c("div",{class:"modal-header"},[d[31]||(d[31]=c("h4",null,"反馈链接",-1)),c("button",{class:"close-btn",onClick:J},"×")]),c("div",dc,[c("form",{onSubmit:ft(U,["prevent"])},[c("div",pc,[d[32]||(d[32]=c("label",{for:"report-type"},"反馈类型 *",-1)),ie(is,{id:"report-type",modelValue:ae.type,"onUpdate:modelValue":d[16]||(d[16]=f=>ae.type=f),options:w,placeholder:"请选择反馈类型",required:""},null,8,["modelValue"])]),c("div",hc,[d[33]||(d[33]=c("label",{for:"report-reason"},"详细原因",-1)),c("div",vc,[le(c("input",{id:"report-reason","onUpdate:modelValue":d[17]||(d[17]=f=>ae.reason=f),placeholder:"请详细描述反馈原因(可选)",rows:"4"},null,512),[[de,ae.reason]])])]),c("div",gc,[c("button",{type:"submit",disabled:D.value||!ae.type},F(D.value?"提交中...":"提交反馈"),9,mc),c("button",{type:"button",onClick:J}," 取消 ")])],32)])])])):N("",!0)],64))}},[["__scopeId","data-v-caaf555a"]]),bc={class:"content-wrapper"},yc={class:"navigation-bar"},wc={class:"tab-content"},xc={key:0,class:"tab-panel"},kc={key:1,class:"no-subject"},Cc={key:1,class:"tab-panel"},Sc=pt({__name:"WindowContent",setup(e){const t=j("links"),s=j("netdisk"),n=j(""),r=j({title:"",year:"",rating:""}),o=(i,a=null)=>{t.value=i,i==="links"&&a&&(s.value=a)},l=()=>{try{const a=window.location.href.match(/\/subject\/(\d+)\/?/);a&&(n.value=a[1],console.log("检测到豆瓣电影ID:",n.value));const g=document.querySelector('h1 span[property="v:itemreviewed"]')||document.querySelector("h1 span")||document.querySelector("h1");g&&(r.value.title=g.textContent.trim());const h=document.querySelector(".year")||document.querySelector("span.year");if(h){const m=h.textContent.match(/(\d{4})/);m&&(r.value.year=m[1])}const _=document.querySelector(".rating_num")||document.querySelector('[property="v:average"]');_&&(r.value.rating=_.textContent.trim()),console.log("获取到的电影信息:",r.value)}catch(i){console.error("获取豆瓣电影信息失败:",i)}};return It(()=>{l(),new MutationObserver(()=>{window.location.href.includes("/subject/")&&setTimeout(l,500)}).observe(document.body,{childList:!0,subtree:!0})}),(i,a)=>(P(),I("div",bc,[c("div",yc,[c("button",{class:ce(["nav-btn",{active:t.value==="links"&&s.value==="netdisk"}]),onClick:a[0]||(a[0]=g=>o("links","netdisk"))}," 💾 网盘 ",2),c("button",{class:ce(["nav-btn",{active:t.value==="links"&&s.value==="bt"}]),onClick:a[1]||(a[1]=g=>o("links","bt"))}," 🧲 BT ",2),c("button",{class:ce(["nav-btn",{active:t.value==="links"&&s.value==="online"}]),onClick:a[2]||(a[2]=g=>o("links","online"))}," 📺 在线 ",2),c("button",{class:ce(["nav-btn",{active:t.value==="user"}]),onClick:a[3]||(a[3]=g=>o("user"))}," 👤 用户 ",2)]),c("div",wc,[t.value==="links"?(P(),I("div",xc,[n.value?(P(),xn(_c,{key:0,"movie-id":n.value,"link-type":s.value},null,8,["movie-id","link-type"])):(P(),I("div",kc,a[4]||(a[4]=[c("p",null,"未检测到豆瓣电影页面,请在豆瓣电影详情页使用此功能。",-1),c("p",{class:"hint"},"支持的页面格式:https://movie.douban.com/subject/[ID]/",-1)])))])):N("",!0),t.value==="user"?(P(),I("div",Cc,[ie(Ha)])):N("",!0)])]))}},[["__scopeId","data-v-2fb0e09c"]]),Tc={key:0,class:"debug-panel"},Ec={class:"debug-content"},$c={class:"debug-section"},Pc={class:"status-item"},Ac={class:"status-item"},Ic={class:"value"},Oc={class:"status-item"},Dc={class:"value token"},Mc={class:"status-item"},Uc={class:"value token"},Vc={class:"status-item"},Rc={class:"debug-section"},Lc={key:0,class:"test-result"},Fc={class:"debug-section"},Nc={class:"headers-preview"},Bc=pt({__name:"DebugPanel",setup(e){const t=j(!1),s=j(""),n=j(""),r=Ie(()=>se.isAuthenticated.value),o=Ie(()=>se.token.value),l=Ie(()=>se.user.value?`${se.user.value.email} (ID: ${se.user.value.id})`:"无用户信息"),i=Ie(()=>{const y=o.value,E=s.value;return y&&E&&y===E}),a=Ie(()=>{const y=s.value;return JSON.stringify(y?{Authorization:`Bearer ${y.substring(0,20)}...`,"Content-Type":"application/json"}:{"Content-Type":"application/json"},null,2)}),g=()=>{t.value=!t.value,t.value&&h()},h=()=>{s.value=localStorage.getItem("auth_token")||"",console.log("Token状态刷新:",{memory:o.value,localStorage:s.value,match:i.value})},_=async()=>{try{n.value="测试中...";const y=await yt.getLinks();n.value=JSON.stringify({success:!0,dataLength:(y==null?void 0:y.length)||0,message:"请求成功"},null,2)}catch(y){n.value=JSON.stringify({success:!1,error:y.message,status:y.status||"unknown"},null,2)}},m=()=>{localStorage.removeItem("auth_token"),se.token.value=null,se.user.value=null,h(),n.value="",console.log("所有Token已清除")};return It(()=>{h(),window.addEventListener("storage",y=>{y.key==="auth_token"&&h()})}),(y,E)=>t.value?(P(),I("div",Tc,[c("div",{class:"debug-header"},[E[0]||(E[0]=c("h3",null,"🔧 调试面板",-1)),c("button",{onClick:g,class:"close-btn"},"×")]),c("div",Ec,[c("div",$c,[E[6]||(E[6]=c("h4",null,"认证状态",-1)),c("div",Pc,[E[1]||(E[1]=c("span",{class:"label"},"登录状态:",-1)),c("span",{class:ce(["status",r.value?"success":"error"])},F(r.value?"已登录":"未登录"),3)]),c("div",Ac,[E[2]||(E[2]=c("span",{class:"label"},"用户信息:",-1)),c("span",Ic,F(l.value),1)]),c("div",Oc,[E[3]||(E[3]=c("span",{class:"label"},"Token (内存):",-1)),c("span",Dc,F(o.value||"无"),1)]),c("div",Mc,[E[4]||(E[4]=c("span",{class:"label"},"Token (localStorage):",-1)),c("span",Uc,F(s.value||"无"),1)]),c("div",Vc,[E[5]||(E[5]=c("span",{class:"label"},"Token匹配:",-1)),c("span",{class:ce(["status",i.value?"success":"error"])},F(i.value?"匹配":"不匹配"),3)])]),c("div",Rc,[E[8]||(E[8]=c("h4",null,"测试操作",-1)),c("div",{class:"button-group"},[c("button",{onClick:h,class:"debug-btn"},"刷新Token状态"),c("button",{onClick:_,class:"debug-btn"},"测试API请求"),c("button",{onClick:m,class:"debug-btn danger"},"清除所有Token")]),n.value?(P(),I("div",Lc,[E[7]||(E[7]=c("h5",null,"API测试结果:",-1)),c("pre",null,F(n.value),1)])):N("",!0)]),c("div",Fc,[E[9]||(E[9]=c("h4",null,"请求头预览",-1)),c("div",Nc,[c("code",null,F(a.value),1)])])])])):N("",!0)}},[["__scopeId","data-v-dba5723e"]]),jc={key:0,class:"custom-window"},Hc={class:"window-content"},qc={class:"window-header"},Wc={class:"window-title"},Kc=pt({__name:"App",setup(e){const t=j(!0),s=j("DoubanFlix"),n=()=>{t.value=!t.value,t.value&&cn(()=>{r()})},r=()=>{let i=document.querySelector(".aside")||document.querySelector("#aside")||document.querySelector(".sidebar")||document.querySelector("#sidebar")||document.querySelector(".right-col")||document.querySelector(".side-panel");i||(i=document.querySelector("#content .article")||document.querySelector(".grid-16-8 .aside")||document.querySelector('[class*="aside"]')||document.querySelector('[class*="side"]')),i||(i=document.createElement("div"),i.className="douban-movie-aside",i.style.cssText=`
      position: fixed;
      top: 100px;
      right: 20px;
      width: 400px;
      z-index: 9999;
    `,document.body.appendChild(i));const a=document.querySelector(".custom-window");a&&i&&a.parentNode!==i&&(i.firstChild?i.insertBefore(a,i.firstChild):i.appendChild(a),console.log("窗口已插入到第一个位置:",i.className||i.tagName))},o=()=>{t.value=!1},l=()=>{n()};return It(async()=>{await se.initAuth(),window.addEventListener("toggle-window",l),cn(()=>{r()})}),Es(()=>{window.removeEventListener("toggle-window",l)}),(i,a)=>(P(),I(Se,null,[t.value?(P(),I("div",jc,[c("div",Hc,[ie(Sc)]),c("div",qc,[c("span",Wc,F(s.value),1),c("button",{class:"close-btn",onClick:o},"×")])])):N("",!0),ie(Bc)],64))}},[["__scopeId","data-v-0af292b5"]]);function fo(){const e=document.querySelectorAll("h1"),t=document.querySelector(".article");t&&e.length>0&&e.forEach(r=>{t.insertBefore(r,t.firstChild)});const s=document.createElement("div");s.id="bilibili-custom-window",document.body.appendChild(s),Bi(Kc).mount("#bilibili-custom-window")}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",fo):fo()})()})();