diff --git a/frontend/dist/assets/index.9a05129d.css b/frontend/dist/assets/index.2ad61d14.css similarity index 80% rename from frontend/dist/assets/index.9a05129d.css rename to frontend/dist/assets/index.2ad61d14.css index 15b09bb..24ac7c6 100644 --- a/frontend/dist/assets/index.9a05129d.css +++ b/frontend/dist/assets/index.2ad61d14.css @@ -1 +1 @@ -*{margin:0;padding:0;box-sizing:border-box}#app{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:#f5f7fa;min-height:100vh}.login-container[data-v-bb5c78dc]{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-radius:20px;box-shadow:0 15px 35px #0003;padding:40px;width:100%;max-width:400px;text-align:center;animation:fadeIn-bb5c78dc .5s ease-out;margin:100px auto}@keyframes fadeIn-bb5c78dc{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.logo[data-v-bb5c78dc]{width:80px;height:80px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:30px;font-weight:700}h1[data-v-bb5c78dc]{color:#333;margin-bottom:10px;font-size:28px}.subtitle[data-v-bb5c78dc]{color:#666;margin-bottom:30px;font-size:14px}.form-group[data-v-bb5c78dc]{margin-bottom:20px;text-align:left}label[data-v-bb5c78dc]{display:block;margin-bottom:8px;color:#555;font-weight:500}input[data-v-bb5c78dc]{width:100%;padding:15px;border:2px solid #e1e1e1;border-radius:10px;font-size:16px;transition:all .3s ease;outline:none}input[data-v-bb5c78dc]:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}button[data-v-bb5c78dc]{width:100%;padding:15px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:10px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}button[data-v-bb5c78dc]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}button[data-v-bb5c78dc]:disabled{opacity:.7;cursor:not-allowed}.error-message[data-v-bb5c78dc]{color:#dc3545;margin-top:15px;padding:10px;background-color:#f8d7da;border-radius:5px}.success-message[data-v-bb5c78dc]{color:#28a745;margin-top:15px;padding:10px;background-color:#d4edda;border-radius:5px}.header[data-v-904f2d71]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:20px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;align-items:center}.header h1[data-v-904f2d71]{font-size:24px;display:flex;align-items:center;gap:10px}.user-info[data-v-904f2d71]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-904f2d71]{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 15px;border-radius:5px;cursor:pointer;transition:all .3s ease}.logout-btn[data-v-904f2d71]:hover{background:rgba(255,255,255,.3)}.nav[data-v-904f2d71]{background:white;padding:15px 20px;box-shadow:0 2px 5px #0000000d}.nav ul[data-v-904f2d71]{display:flex;list-style:none;gap:20px}.nav a[data-v-904f2d71]{text-decoration:none;color:#666;padding:8px 15px;border-radius:5px;transition:all .3s ease}.nav a[data-v-904f2d71]:hover,.nav a.active[data-v-904f2d71]{background:#667eea;color:#fff}.container[data-v-904f2d71]{max-width:1200px;margin:30px auto;padding:0 20px}.dashboard-grid[data-v-904f2d71]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:30px}.card[data-v-904f2d71]{background:white;border-radius:15px;box-shadow:0 5px 15px #00000014;padding:25px;transition:transform .3s ease,box-shadow .3s ease}.card[data-v-904f2d71]:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0000001f}.card h3[data-v-904f2d71]{color:#333;margin-bottom:15px;display:flex;align-items:center;gap:10px}.card p[data-v-904f2d71]{color:#666;line-height:1.6}.device-control[data-v-904f2d71]{background:white;border-radius:15px;box-shadow:0 5px 15px #00000014;padding:25px;margin-bottom:30px}.control-grid[data-v-904f2d71]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:20px}.control-item[data-v-904f2d71]{background:#f8f9fa;border-radius:10px;padding:20px;text-align:center}.control-item h4[data-v-904f2d71]{margin-bottom:15px;color:#333}.control-buttons[data-v-904f2d71]{display:flex;gap:10px;justify-content:center}.control-btn[data-v-904f2d71]{padding:8px 15px;border:none;border-radius:5px;cursor:pointer;font-size:14px;transition:all .3s ease}.on-btn[data-v-904f2d71]{background:#28a745;color:#fff}.off-btn[data-v-904f2d71]{background:#dc3545;color:#fff}.control-btn[data-v-904f2d71]:hover{opacity:.9;transform:translateY(-2px)}@media (max-width: 768px){.dashboard-grid[data-v-904f2d71]{grid-template-columns:1fr}.header[data-v-904f2d71]{flex-direction:column;gap:15px}}.device-management[data-v-a2f9bd42]{height:100vh;display:flex;flex-direction:column;background-color:#f5f7fa}.nav[data-v-a2f9bd42]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-a2f9bd42]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-a2f9bd42]{margin:0}.nav a[data-v-a2f9bd42]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-a2f9bd42]:hover{background-color:#495057}.nav a.active[data-v-a2f9bd42]{background-color:#007bff}.header[data-v-a2f9bd42]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px #0000001a}.header h1[data-v-a2f9bd42]{margin:0;font-size:1.5rem;display:flex;align-items:center;gap:10px}.user-info[data-v-a2f9bd42]{display:flex;align-items:center;gap:1rem}.logout-btn[data-v-a2f9bd42]{background:rgba(255,255,255,.2);color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:all .3s ease}.logout-btn[data-v-a2f9bd42]:hover{background:rgba(255,255,255,.3)}.main-content[data-v-a2f9bd42]{flex:1;padding:1.5rem;overflow-y:auto}.toolbar[data-v-a2f9bd42]{margin-bottom:1.5rem;display:flex;justify-content:flex-end}.btn[data-v-a2f9bd42]{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px}.btn-primary[data-v-a2f9bd42]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;box-shadow:0 4px 15px #0003}.btn-primary[data-v-a2f9bd42]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000040}.btn-secondary[data-v-a2f9bd42]{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary[data-v-a2f9bd42]:hover{background:#e0e0e0}.device-tree[data-v-a2f9bd42]{background:white;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:1.5rem;overflow:hidden}.tree-node[data-v-a2f9bd42]{margin-bottom:.75rem;border-radius:8px;transition:all .3s ease;box-shadow:0 1px 3px #0000001a}.tree-node[data-v-a2f9bd42]:hover{box-shadow:0 2px 8px #00000026}.tree-node.relay-node[data-v-a2f9bd42]{background:#fff3e0;border-left:4px solid #ff9800}.tree-node.controller-node[data-v-a2f9bd42]{background:#e3f2fd;border-left:4px solid #2196f3;margin-left:1.5rem}.tree-node.device-node[data-v-a2f9bd42]{background:#e8f5e9;border-left:4px solid #4caf50;margin-left:3rem}.node-header[data-v-a2f9bd42]{display:flex;justify-content:space-between;align-items:center;padding:1rem;cursor:pointer}.node-header[data-v-a2f9bd42]:hover{background-color:#00000005}.node-info[data-v-a2f9bd42]{display:flex;align-items:center;gap:.75rem}.toggle-icon[data-v-a2f9bd42]{width:20px;text-align:center;font-size:.8rem;color:#666}.node-title[data-v-a2f9bd42]{font-weight:600;color:#333;font-size:1.1rem}.node-address[data-v-a2f9bd42]{font-size:.9rem;color:#666;background:rgba(0,0,0,.05);padding:.2rem .5rem;border-radius:4px}.node-type[data-v-a2f9bd42]{font-size:.8rem;padding:.3rem .6rem;border-radius:12px;font-weight:500;text-transform:uppercase}.node-status[data-v-a2f9bd42]{font-size:.8rem;padding:.3rem .6rem;border-radius:12px;font-weight:500}.status-active[data-v-a2f9bd42]{background:#4caf50;color:#fff}.status-inactive[data-v-a2f9bd42]{background:#9e9e9e;color:#fff}.relay-type[data-v-a2f9bd42]{background:#ff9800;color:#fff}.controller-type[data-v-a2f9bd42]{background:#2196f3;color:#fff}.device-type[data-v-a2f9bd42]{background:#4caf50;color:#fff}.node-actions[data-v-a2f9bd42]{display:flex;gap:.5rem}.action-btn[data-v-a2f9bd42]{padding:.4rem .8rem;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s ease}.edit-btn[data-v-a2f9bd42]{background:#1976d2;color:#fff}.edit-btn[data-v-a2f9bd42]:hover{background:#1565c0;transform:translateY(-1px)}.delete-btn[data-v-a2f9bd42]{background:#d32f2f;color:#fff}.delete-btn[data-v-a2f9bd42]:hover{background:#c62828;transform:translateY(-1px)}.children-container[data-v-a2f9bd42]{padding:.5rem 0 .5rem 1rem;border-left:2px dashed rgba(0,0,0,.1);margin-left:1rem}.modal[data-v-a2f9bd42]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn-a2f9bd42 .3s ease}@keyframes fadeIn-a2f9bd42{0%{opacity:0}to{opacity:1}}.modal-content[data-v-a2f9bd42]{background:white;border-radius:10px;width:90%;max-width:500px;box-shadow:0 10px 30px #0000004d;animation:slideIn-a2f9bd42 .3s ease}@keyframes slideIn-a2f9bd42{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-a2f9bd42]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #eee}.modal-header h3[data-v-a2f9bd42]{margin:0;color:#333;font-size:1.3rem}.close-btn[data-v-a2f9bd42]{background:none;border:none;font-size:1.8rem;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:#999;transition:color .2s ease}.close-btn[data-v-a2f9bd42]:hover{color:#333}.modal-body[data-v-a2f9bd42]{padding:1.5rem}.form-group[data-v-a2f9bd42]{margin-bottom:1.5rem}.form-group label[data-v-a2f9bd42]{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input[data-v-a2f9bd42],.form-group select[data-v-a2f9bd42]{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.form-group input[data-v-a2f9bd42]:focus,.form-group select[data-v-a2f9bd42]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.modal-footer[data-v-a2f9bd42]{padding:1.5rem;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:.75rem}.no-devices[data-v-a2f9bd42]{text-align:center;color:#7f8c8d;padding:3rem;font-style:italic;font-size:1.1rem}@media (max-width: 768px){.main-content[data-v-a2f9bd42],.header[data-v-a2f9bd42]{padding:1rem}.node-header[data-v-a2f9bd42]{flex-direction:column;align-items:flex-start;gap:.75rem}.node-actions[data-v-a2f9bd42]{align-self:flex-end}.tree-node.controller-node[data-v-a2f9bd42],.tree-node.device-node[data-v-a2f9bd42]{margin-left:1rem}}.feed-plan-management[data-v-32cbd47e]{padding:20px}.header[data-v-32cbd47e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.header h1[data-v-32cbd47e]{margin:0;color:#333}.user-info[data-v-32cbd47e]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-32cbd47e]{padding:8px 16px;background-color:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.logout-btn[data-v-32cbd47e]:hover{background-color:#c82333}.nav[data-v-32cbd47e]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-32cbd47e]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-32cbd47e]{margin:0}.nav a[data-v-32cbd47e]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-32cbd47e]:hover{background-color:#495057}.nav a.active[data-v-32cbd47e]{background-color:#007bff}.toolbar[data-v-32cbd47e]{margin-bottom:20px}.btn[data-v-32cbd47e]{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s}.btn-primary[data-v-32cbd47e]{background-color:#007bff;color:#fff}.btn-primary[data-v-32cbd47e]:hover{background-color:#0069d9}.plan-list[data-v-32cbd47e]{min-height:400px}.loading[data-v-32cbd47e],.no-plans[data-v-32cbd47e]{text-align:center;padding:50px;color:#666;font-size:16px}.plans-container[data-v-32cbd47e]{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.plan-card[data-v-32cbd47e]{border:1px solid #ddd;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;background-color:#fff;transition:box-shadow .3s,transform .3s}.plan-card[data-v-32cbd47e]:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.plan-header[data-v-32cbd47e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.plan-header h3[data-v-32cbd47e]{margin:0;color:#333;font-size:18px}.plan-status[data-v-32cbd47e]{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:700}.plan-status.enabled[data-v-32cbd47e]{background-color:#d4edda;color:#155724}.plan-status.disabled[data-v-32cbd47e]{background-color:#f8d7da;color:#721c24}.plan-details[data-v-32cbd47e]{margin-bottom:20px}.plan-description[data-v-32cbd47e]{margin:0 0 15px;color:#666;line-height:1.5}.plan-meta[data-v-32cbd47e]{display:flex;flex-wrap:wrap;gap:10px}.plan-type[data-v-32cbd47e],.plan-cron[data-v-32cbd47e]{padding:4px 8px;background-color:#e9ecef;border-radius:4px;font-size:12px;color:#495057}.plan-actions[data-v-32cbd47e]{display:flex;gap:10px;justify-content:flex-end}.action-btn[data-v-32cbd47e]{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:13px;transition:background-color .3s}.detail-btn[data-v-32cbd47e]{background-color:#17a2b8;color:#fff}.detail-btn[data-v-32cbd47e]:hover{background-color:#138496}.edit-btn[data-v-32cbd47e]{background-color:#ffc107;color:#212529}.edit-btn[data-v-32cbd47e]:hover{background-color:#e0a800}.delete-btn[data-v-32cbd47e]{background-color:#dc3545;color:#fff}.delete-btn[data-v-32cbd47e]:hover{background-color:#c82333}@media (max-width: 768px){.plans-container[data-v-32cbd47e]{grid-template-columns:1fr}.header[data-v-32cbd47e]{flex-direction:column;gap:15px;align-items:flex-start}.nav ul[data-v-32cbd47e]{flex-direction:column}}.feed-plan-detail[data-v-6912d473]{padding:20px}.header[data-v-6912d473]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.header h1[data-v-6912d473]{margin:0;color:#333}.user-info[data-v-6912d473]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-6912d473]{padding:8px 16px;background-color:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.logout-btn[data-v-6912d473]:hover{background-color:#c82333}.nav[data-v-6912d473]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-6912d473]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-6912d473]{margin:0}.nav a[data-v-6912d473]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-6912d473]:hover{background-color:#495057}.nav a.active[data-v-6912d473]{background-color:#007bff}.loading[data-v-6912d473],.error[data-v-6912d473]{text-align:center;padding:50px;font-size:16px}.loading[data-v-6912d473]{color:#666}.error[data-v-6912d473]{color:#dc3545}.plan-detail-container[data-v-6912d473]{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:30px}.plan-header[data-v-6912d473]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.plan-header h2[data-v-6912d473]{margin:0;color:#333}.plan-status[data-v-6912d473]{padding:6px 12px;border-radius:4px;font-size:14px;font-weight:700}.plan-status.enabled[data-v-6912d473]{background-color:#d4edda;color:#155724}.plan-status.disabled[data-v-6912d473]{background-color:#f8d7da;color:#721c24}.plan-info[data-v-6912d473]{margin-bottom:30px}.info-item[data-v-6912d473]{display:flex;margin-bottom:15px;align-items:center}.info-item label[data-v-6912d473]{width:150px;font-weight:700;color:#333}.info-item span[data-v-6912d473]{flex:1;color:#666}.plan-steps[data-v-6912d473],.sub-plans[data-v-6912d473]{margin-bottom:30px}.plan-steps h3[data-v-6912d473],.sub-plans h3[data-v-6912d473]{margin-top:0;margin-bottom:20px;color:#333;padding-bottom:10px;border-bottom:1px solid #eee}.steps-list[data-v-6912d473]{display:flex;flex-direction:column;gap:20px}.step-item[data-v-6912d473]{border:1px solid #ddd;border-radius:6px;padding:20px;background-color:#f8f9fa}.step-header[data-v-6912d473]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #eee}.step-number[data-v-6912d473]{font-weight:700;color:#007bff}.step-cron[data-v-6912d473]{font-size:12px;color:#666;background-color:#e9ecef;padding:2px 6px;border-radius:3px}.step-details[data-v-6912d473]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.detail-item[data-v-6912d473]{display:flex;flex-direction:column}.detail-item label[data-v-6912d473]{font-size:12px;color:#666;margin-bottom:3px}.detail-item span[data-v-6912d473]{font-weight:500;color:#333}.no-steps[data-v-6912d473]{text-align:center;padding:30px;color:#666;font-style:italic}.sub-plans-list[data-v-6912d473]{display:flex;flex-direction:column;gap:25px}.sub-plan-item[data-v-6912d473]{border:1px solid #ddd;border-radius:8px;padding:20px;background-color:#fff;box-shadow:0 1px 3px #0000001a}.sub-plan-header[data-v-6912d473]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #eee}.sub-plan-header h4[data-v-6912d473]{margin:0;color:#333}.sub-plan-info[data-v-6912d473]{margin-bottom:20px}.sub-plan-info .info-item[data-v-6912d473]{margin-bottom:10px}.sub-plan-steps h5[data-v-6912d473]{margin-top:0;margin-bottom:15px;color:#333}.actions[data-v-6912d473]{display:flex;justify-content:flex-end;gap:15px;padding-top:20px;border-top:1px solid #eee}.btn[data-v-6912d473]{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s}.btn-primary[data-v-6912d473]{background-color:#007bff;color:#fff}.btn-primary[data-v-6912d473]:hover{background-color:#0069d9}.btn-secondary[data-v-6912d473]{background-color:#6c757d;color:#fff}.btn-secondary[data-v-6912d473]:hover{background-color:#5a6268}@media (max-width: 768px){.header[data-v-6912d473]{flex-direction:column;gap:15px;align-items:flex-start}.nav ul[data-v-6912d473]{flex-direction:column}.info-item[data-v-6912d473]{flex-direction:column;align-items:flex-start;gap:5px}.info-item label[data-v-6912d473]{width:auto}.step-details[data-v-6912d473]{grid-template-columns:1fr}.actions[data-v-6912d473]{flex-direction:column}} +*{margin:0;padding:0;box-sizing:border-box}#app{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:#f5f7fa;min-height:100vh}.login-container[data-v-bb5c78dc]{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-radius:20px;box-shadow:0 15px 35px #0003;padding:40px;width:100%;max-width:400px;text-align:center;animation:fadeIn-bb5c78dc .5s ease-out;margin:100px auto}@keyframes fadeIn-bb5c78dc{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.logo[data-v-bb5c78dc]{width:80px;height:80px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:30px;font-weight:700}h1[data-v-bb5c78dc]{color:#333;margin-bottom:10px;font-size:28px}.subtitle[data-v-bb5c78dc]{color:#666;margin-bottom:30px;font-size:14px}.form-group[data-v-bb5c78dc]{margin-bottom:20px;text-align:left}label[data-v-bb5c78dc]{display:block;margin-bottom:8px;color:#555;font-weight:500}input[data-v-bb5c78dc]{width:100%;padding:15px;border:2px solid #e1e1e1;border-radius:10px;font-size:16px;transition:all .3s ease;outline:none}input[data-v-bb5c78dc]:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}button[data-v-bb5c78dc]{width:100%;padding:15px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:10px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}button[data-v-bb5c78dc]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}button[data-v-bb5c78dc]:disabled{opacity:.7;cursor:not-allowed}.error-message[data-v-bb5c78dc]{color:#dc3545;margin-top:15px;padding:10px;background-color:#f8d7da;border-radius:5px}.success-message[data-v-bb5c78dc]{color:#28a745;margin-top:15px;padding:10px;background-color:#d4edda;border-radius:5px}.header[data-v-904f2d71]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:20px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;align-items:center}.header h1[data-v-904f2d71]{font-size:24px;display:flex;align-items:center;gap:10px}.user-info[data-v-904f2d71]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-904f2d71]{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 15px;border-radius:5px;cursor:pointer;transition:all .3s ease}.logout-btn[data-v-904f2d71]:hover{background:rgba(255,255,255,.3)}.nav[data-v-904f2d71]{background:white;padding:15px 20px;box-shadow:0 2px 5px #0000000d}.nav ul[data-v-904f2d71]{display:flex;list-style:none;gap:20px}.nav a[data-v-904f2d71]{text-decoration:none;color:#666;padding:8px 15px;border-radius:5px;transition:all .3s ease}.nav a[data-v-904f2d71]:hover,.nav a.active[data-v-904f2d71]{background:#667eea;color:#fff}.container[data-v-904f2d71]{max-width:1200px;margin:30px auto;padding:0 20px}.dashboard-grid[data-v-904f2d71]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:30px}.card[data-v-904f2d71]{background:white;border-radius:15px;box-shadow:0 5px 15px #00000014;padding:25px;transition:transform .3s ease,box-shadow .3s ease}.card[data-v-904f2d71]:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0000001f}.card h3[data-v-904f2d71]{color:#333;margin-bottom:15px;display:flex;align-items:center;gap:10px}.card p[data-v-904f2d71]{color:#666;line-height:1.6}.device-control[data-v-904f2d71]{background:white;border-radius:15px;box-shadow:0 5px 15px #00000014;padding:25px;margin-bottom:30px}.control-grid[data-v-904f2d71]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:20px}.control-item[data-v-904f2d71]{background:#f8f9fa;border-radius:10px;padding:20px;text-align:center}.control-item h4[data-v-904f2d71]{margin-bottom:15px;color:#333}.control-buttons[data-v-904f2d71]{display:flex;gap:10px;justify-content:center}.control-btn[data-v-904f2d71]{padding:8px 15px;border:none;border-radius:5px;cursor:pointer;font-size:14px;transition:all .3s ease}.on-btn[data-v-904f2d71]{background:#28a745;color:#fff}.off-btn[data-v-904f2d71]{background:#dc3545;color:#fff}.control-btn[data-v-904f2d71]:hover{opacity:.9;transform:translateY(-2px)}@media (max-width: 768px){.dashboard-grid[data-v-904f2d71]{grid-template-columns:1fr}.header[data-v-904f2d71]{flex-direction:column;gap:15px}}.device-management[data-v-a2f9bd42]{height:100vh;display:flex;flex-direction:column;background-color:#f5f7fa}.nav[data-v-a2f9bd42]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-a2f9bd42]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-a2f9bd42]{margin:0}.nav a[data-v-a2f9bd42]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-a2f9bd42]:hover{background-color:#495057}.nav a.active[data-v-a2f9bd42]{background-color:#007bff}.header[data-v-a2f9bd42]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px #0000001a}.header h1[data-v-a2f9bd42]{margin:0;font-size:1.5rem;display:flex;align-items:center;gap:10px}.user-info[data-v-a2f9bd42]{display:flex;align-items:center;gap:1rem}.logout-btn[data-v-a2f9bd42]{background:rgba(255,255,255,.2);color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:all .3s ease}.logout-btn[data-v-a2f9bd42]:hover{background:rgba(255,255,255,.3)}.main-content[data-v-a2f9bd42]{flex:1;padding:1.5rem;overflow-y:auto}.toolbar[data-v-a2f9bd42]{margin-bottom:1.5rem;display:flex;justify-content:flex-end}.btn[data-v-a2f9bd42]{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px}.btn-primary[data-v-a2f9bd42]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;box-shadow:0 4px 15px #0003}.btn-primary[data-v-a2f9bd42]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000040}.btn-secondary[data-v-a2f9bd42]{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary[data-v-a2f9bd42]:hover{background:#e0e0e0}.device-tree[data-v-a2f9bd42]{background:white;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:1.5rem;overflow:hidden}.tree-node[data-v-a2f9bd42]{margin-bottom:.75rem;border-radius:8px;transition:all .3s ease;box-shadow:0 1px 3px #0000001a}.tree-node[data-v-a2f9bd42]:hover{box-shadow:0 2px 8px #00000026}.tree-node.relay-node[data-v-a2f9bd42]{background:#fff3e0;border-left:4px solid #ff9800}.tree-node.controller-node[data-v-a2f9bd42]{background:#e3f2fd;border-left:4px solid #2196f3;margin-left:1.5rem}.tree-node.device-node[data-v-a2f9bd42]{background:#e8f5e9;border-left:4px solid #4caf50;margin-left:3rem}.node-header[data-v-a2f9bd42]{display:flex;justify-content:space-between;align-items:center;padding:1rem;cursor:pointer}.node-header[data-v-a2f9bd42]:hover{background-color:#00000005}.node-info[data-v-a2f9bd42]{display:flex;align-items:center;gap:.75rem}.toggle-icon[data-v-a2f9bd42]{width:20px;text-align:center;font-size:.8rem;color:#666}.node-title[data-v-a2f9bd42]{font-weight:600;color:#333;font-size:1.1rem}.node-address[data-v-a2f9bd42]{font-size:.9rem;color:#666;background:rgba(0,0,0,.05);padding:.2rem .5rem;border-radius:4px}.node-type[data-v-a2f9bd42]{font-size:.8rem;padding:.3rem .6rem;border-radius:12px;font-weight:500;text-transform:uppercase}.node-status[data-v-a2f9bd42]{font-size:.8rem;padding:.3rem .6rem;border-radius:12px;font-weight:500}.status-active[data-v-a2f9bd42]{background:#4caf50;color:#fff}.status-inactive[data-v-a2f9bd42]{background:#9e9e9e;color:#fff}.relay-type[data-v-a2f9bd42]{background:#ff9800;color:#fff}.controller-type[data-v-a2f9bd42]{background:#2196f3;color:#fff}.device-type[data-v-a2f9bd42]{background:#4caf50;color:#fff}.node-actions[data-v-a2f9bd42]{display:flex;gap:.5rem}.action-btn[data-v-a2f9bd42]{padding:.4rem .8rem;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s ease}.edit-btn[data-v-a2f9bd42]{background:#1976d2;color:#fff}.edit-btn[data-v-a2f9bd42]:hover{background:#1565c0;transform:translateY(-1px)}.delete-btn[data-v-a2f9bd42]{background:#d32f2f;color:#fff}.delete-btn[data-v-a2f9bd42]:hover{background:#c62828;transform:translateY(-1px)}.children-container[data-v-a2f9bd42]{padding:.5rem 0 .5rem 1rem;border-left:2px dashed rgba(0,0,0,.1);margin-left:1rem}.modal[data-v-a2f9bd42]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn-a2f9bd42 .3s ease}@keyframes fadeIn-a2f9bd42{0%{opacity:0}to{opacity:1}}.modal-content[data-v-a2f9bd42]{background:white;border-radius:10px;width:90%;max-width:500px;box-shadow:0 10px 30px #0000004d;animation:slideIn-a2f9bd42 .3s ease}@keyframes slideIn-a2f9bd42{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-a2f9bd42]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #eee}.modal-header h3[data-v-a2f9bd42]{margin:0;color:#333;font-size:1.3rem}.close-btn[data-v-a2f9bd42]{background:none;border:none;font-size:1.8rem;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:#999;transition:color .2s ease}.close-btn[data-v-a2f9bd42]:hover{color:#333}.modal-body[data-v-a2f9bd42]{padding:1.5rem}.form-group[data-v-a2f9bd42]{margin-bottom:1.5rem}.form-group label[data-v-a2f9bd42]{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input[data-v-a2f9bd42],.form-group select[data-v-a2f9bd42]{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.form-group input[data-v-a2f9bd42]:focus,.form-group select[data-v-a2f9bd42]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.modal-footer[data-v-a2f9bd42]{padding:1.5rem;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:.75rem}.no-devices[data-v-a2f9bd42]{text-align:center;color:#7f8c8d;padding:3rem;font-style:italic;font-size:1.1rem}@media (max-width: 768px){.main-content[data-v-a2f9bd42],.header[data-v-a2f9bd42]{padding:1rem}.node-header[data-v-a2f9bd42]{flex-direction:column;align-items:flex-start;gap:.75rem}.node-actions[data-v-a2f9bd42]{align-self:flex-end}.tree-node.controller-node[data-v-a2f9bd42],.tree-node.device-node[data-v-a2f9bd42]{margin-left:1rem}}.feed-plan-management[data-v-32cbd47e]{padding:20px}.header[data-v-32cbd47e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.header h1[data-v-32cbd47e]{margin:0;color:#333}.user-info[data-v-32cbd47e]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-32cbd47e]{padding:8px 16px;background-color:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.logout-btn[data-v-32cbd47e]:hover{background-color:#c82333}.nav[data-v-32cbd47e]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-32cbd47e]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-32cbd47e]{margin:0}.nav a[data-v-32cbd47e]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-32cbd47e]:hover{background-color:#495057}.nav a.active[data-v-32cbd47e]{background-color:#007bff}.toolbar[data-v-32cbd47e]{margin-bottom:20px}.btn[data-v-32cbd47e]{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s}.btn-primary[data-v-32cbd47e]{background-color:#007bff;color:#fff}.btn-primary[data-v-32cbd47e]:hover{background-color:#0069d9}.plan-list[data-v-32cbd47e]{min-height:400px}.loading[data-v-32cbd47e],.no-plans[data-v-32cbd47e]{text-align:center;padding:50px;color:#666;font-size:16px}.plans-container[data-v-32cbd47e]{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.plan-card[data-v-32cbd47e]{border:1px solid #ddd;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;background-color:#fff;transition:box-shadow .3s,transform .3s}.plan-card[data-v-32cbd47e]:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.plan-header[data-v-32cbd47e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.plan-header h3[data-v-32cbd47e]{margin:0;color:#333;font-size:18px}.plan-status[data-v-32cbd47e]{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:700}.plan-status.enabled[data-v-32cbd47e]{background-color:#d4edda;color:#155724}.plan-status.disabled[data-v-32cbd47e]{background-color:#f8d7da;color:#721c24}.plan-details[data-v-32cbd47e]{margin-bottom:20px}.plan-description[data-v-32cbd47e]{margin:0 0 15px;color:#666;line-height:1.5}.plan-meta[data-v-32cbd47e]{display:flex;flex-wrap:wrap;gap:10px}.plan-type[data-v-32cbd47e],.plan-cron[data-v-32cbd47e]{padding:4px 8px;background-color:#e9ecef;border-radius:4px;font-size:12px;color:#495057}.plan-actions[data-v-32cbd47e]{display:flex;gap:10px;justify-content:flex-end}.action-btn[data-v-32cbd47e]{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:13px;transition:background-color .3s}.detail-btn[data-v-32cbd47e]{background-color:#17a2b8;color:#fff}.detail-btn[data-v-32cbd47e]:hover{background-color:#138496}.edit-btn[data-v-32cbd47e]{background-color:#ffc107;color:#212529}.edit-btn[data-v-32cbd47e]:hover{background-color:#e0a800}.delete-btn[data-v-32cbd47e]{background-color:#dc3545;color:#fff}.delete-btn[data-v-32cbd47e]:hover{background-color:#c82333}@media (max-width: 768px){.plans-container[data-v-32cbd47e]{grid-template-columns:1fr}.header[data-v-32cbd47e]{flex-direction:column;gap:15px;align-items:flex-start}.nav ul[data-v-32cbd47e]{flex-direction:column}}.feed-plan-detail[data-v-c22942b5]{padding:20px}.header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.header h1[data-v-c22942b5]{margin:0;color:#333}.user-info[data-v-c22942b5]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-c22942b5]{padding:8px 16px;background-color:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.logout-btn[data-v-c22942b5]:hover{background-color:#c82333}.nav[data-v-c22942b5]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-c22942b5]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-c22942b5]{margin:0}.nav a[data-v-c22942b5]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-c22942b5]:hover{background-color:#495057}.nav a.active[data-v-c22942b5]{background-color:#007bff}.loading[data-v-c22942b5],.error[data-v-c22942b5]{text-align:center;padding:50px;font-size:16px}.loading[data-v-c22942b5]{color:#666}.error[data-v-c22942b5]{color:#dc3545}.plan-detail-container[data-v-c22942b5]{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:30px}.plan-header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.plan-header h2[data-v-c22942b5]{margin:0;color:#333}.plan-status[data-v-c22942b5]{padding:6px 12px;border-radius:4px;font-size:14px;font-weight:700}.plan-status.enabled[data-v-c22942b5]{background-color:#d4edda;color:#155724}.plan-status.disabled[data-v-c22942b5]{background-color:#f8d7da;color:#721c24}.plan-info[data-v-c22942b5]{margin-bottom:30px}.info-item[data-v-c22942b5]{display:flex;margin-bottom:15px;align-items:center}.info-item label[data-v-c22942b5]{width:150px;font-weight:700;color:#333}.info-item span[data-v-c22942b5]{flex:1;color:#666}.plan-steps[data-v-c22942b5],.sub-plans[data-v-c22942b5]{margin-bottom:30px}.plan-steps h3[data-v-c22942b5],.sub-plans h3[data-v-c22942b5]{margin-top:0;margin-bottom:20px;color:#333;padding-bottom:10px;border-bottom:1px solid #eee}.steps-list[data-v-c22942b5]{display:flex;flex-direction:column;gap:20px}.step-item[data-v-c22942b5]{border:1px solid #ddd;border-radius:6px;padding:20px;background-color:#f8f9fa}.step-header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #eee}.step-number[data-v-c22942b5]{font-weight:700;color:#007bff}.step-cron[data-v-c22942b5]{font-size:12px;color:#666;background-color:#e9ecef;padding:2px 6px;border-radius:3px}.step-details[data-v-c22942b5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.detail-item[data-v-c22942b5]{display:flex;flex-direction:column}.detail-item label[data-v-c22942b5]{font-size:12px;color:#666;margin-bottom:3px}.detail-item span[data-v-c22942b5]{font-weight:500;color:#333}.no-steps[data-v-c22942b5]{text-align:center;padding:30px;color:#666;font-style:italic}.sub-plans-list[data-v-c22942b5]{display:flex;flex-direction:column;gap:25px}.sub-plan-item[data-v-c22942b5]{border:1px solid #ddd;border-radius:8px;padding:20px;background-color:#fff;box-shadow:0 1px 3px #0000001a}.sub-plan-header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #eee}.sub-plan-header h4[data-v-c22942b5]{margin:0;color:#333}.sub-plan-info[data-v-c22942b5]{margin-bottom:20px}.sub-plan-info .info-item[data-v-c22942b5]{margin-bottom:10px}.sub-plan-steps h5[data-v-c22942b5]{margin-top:0;margin-bottom:15px;color:#333}.actions[data-v-c22942b5]{display:flex;justify-content:flex-end;gap:15px;padding-top:20px;border-top:1px solid #eee}.btn[data-v-c22942b5]{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s}.btn-primary[data-v-c22942b5]{background-color:#007bff;color:#fff}.btn-primary[data-v-c22942b5]:hover{background-color:#0069d9}.btn-secondary[data-v-c22942b5]{background-color:#6c757d;color:#fff}.btn-secondary[data-v-c22942b5]:hover{background-color:#5a6268}@media (max-width: 768px){.header[data-v-c22942b5]{flex-direction:column;gap:15px;align-items:flex-start}.nav ul[data-v-c22942b5]{flex-direction:column}.info-item[data-v-c22942b5]{flex-direction:column;align-items:flex-start;gap:5px}.info-item label[data-v-c22942b5]{width:auto}.step-details[data-v-c22942b5]{grid-template-columns:1fr}.actions[data-v-c22942b5]{flex-direction:column}} diff --git a/frontend/dist/assets/index.48fb8fe6.js b/frontend/dist/assets/index.48fb8fe6.js new file mode 100644 index 0000000..ddee3f7 --- /dev/null +++ b/frontend/dist/assets/index.48fb8fe6.js @@ -0,0 +1,21 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerpolicy&&(i.referrerPolicy=o.referrerpolicy),o.crossorigin==="use-credentials"?i.credentials="include":o.crossorigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();/** +* @vue/shared v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ps(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ee={},Dt=[],Ne=()=>{},qo=()=>!1,Vn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ts=e=>e.startsWith("onUpdate:"),ue=Object.assign,As=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},pr=Object.prototype.hasOwnProperty,Y=(e,t)=>pr.call(e,t),V=Array.isArray,Mt=e=>pn(e)==="[object Map]",Bn=e=>pn(e)==="[object Set]",Ys=e=>pn(e)==="[object Date]",U=e=>typeof e=="function",le=e=>typeof e=="string",ze=e=>typeof e=="symbol",se=e=>e!==null&&typeof e=="object",zo=e=>(se(e)||U(e))&&U(e.then)&&U(e.catch),Go=Object.prototype.toString,pn=e=>Go.call(e),hr=e=>pn(e).slice(8,-1),Jo=e=>pn(e)==="[object Object]",Rs=e=>le(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Yt=Ps(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Un=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},gr=/-\w/g,De=Un(e=>e.replace(gr,t=>t.slice(1).toUpperCase())),mr=/\B([A-Z])/g,Et=Un(e=>e.replace(mr,"-$1").toLowerCase()),Kn=Un(e=>e.charAt(0).toUpperCase()+e.slice(1)),es=Un(e=>e?`on${Kn(e)}`:""),gt=(e,t)=>!Object.is(e,t),Sn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},An=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Qs;const hn=()=>Qs||(Qs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Os(e){if(V(e)){const t={};for(let n=0;n{if(n){const s=n.split(vr);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function tt(e){let t="";if(le(e))t=e;else if(V(e))for(let n=0;nWn(n,t))}const Xo=e=>!!(e&&e.__v_isRef===!0),F=e=>le(e)?e:e==null?"":V(e)||se(e)&&(e.toString===Go||!U(e.toString))?Xo(e)?F(e.value):JSON.stringify(e,Zo,2):String(e),Zo=(e,t)=>Xo(t)?Zo(e,t.value):Mt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o],i)=>(n[ts(s,i)+" =>"]=o,n),{})}:Bn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ts(n))}:ze(t)?ts(t):se(t)&&!V(t)&&!Jo(t)?String(t):t,ts=(e,t="")=>{var n;return ze(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Se;class Er{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Se,!t&&Se&&(this.index=(Se.scopes||(Se.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(Se=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(Xt){let t=Xt;for(Xt=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Qt;){let t=Qt;for(Qt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function si(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function oi(e){let t,n=e.depsTail,s=n;for(;s;){const o=s.prevDep;s.version===-1?(s===n&&(n=o),Ms(s),Tr(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=o}e.deps=t,e.depsTail=n}function ps(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ii(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ii(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===rn)||(e.globalVersion=rn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ps(e))))return;e.flags|=2;const t=e.dep,n=ne,s=$e;ne=e,$e=!0;try{si(e);const o=e.fn(e._value);(t.version===0||gt(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{ne=n,$e=s,oi(e),e.flags&=-3}}function Ms(e,t=!1){const{dep:n,prevSub:s,nextSub:o}=e;if(s&&(s.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Ms(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Tr(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let $e=!0;const ri=[];function st(){ri.push($e),$e=!1}function ot(){const e=ri.pop();$e=e===void 0?!0:e}function Xs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ne;ne=void 0;try{t()}finally{ne=n}}}let rn=0;class Ar{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Fs{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(!ne||!$e||ne===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ne)n=this.activeLink=new Ar(ne,this),ne.deps?(n.prevDep=ne.depsTail,ne.depsTail.nextDep=n,ne.depsTail=n):ne.deps=ne.depsTail=n,li(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=ne.depsTail,n.nextDep=void 0,ne.depsTail.nextDep=n,ne.depsTail=n,ne.deps===n&&(ne.deps=s)}return n}trigger(t){this.version++,rn++,this.notify(t)}notify(t){Is();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ds()}}}function li(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)li(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const hs=new WeakMap,Ct=Symbol(""),gs=Symbol(""),ln=Symbol("");function ge(e,t,n){if($e&&ne){let s=hs.get(e);s||hs.set(e,s=new Map);let o=s.get(n);o||(s.set(n,o=new Fs),o.map=s,o.key=n),o.track()}}function Ze(e,t,n,s,o,i){const l=hs.get(e);if(!l){rn++;return}const r=c=>{c&&c.trigger()};if(Is(),t==="clear")l.forEach(r);else{const c=V(e),p=c&&Rs(n);if(c&&n==="length"){const u=Number(s);l.forEach((h,m)=>{(m==="length"||m===ln||!ze(m)&&m>=u)&&r(h)})}else switch((n!==void 0||l.has(void 0))&&r(l.get(n)),p&&r(l.get(ln)),t){case"add":c?p&&r(l.get("length")):(r(l.get(Ct)),Mt(e)&&r(l.get(gs)));break;case"delete":c||(r(l.get(Ct)),Mt(e)&&r(l.get(gs)));break;case"set":Mt(e)&&r(l.get(Ct));break}}Ds()}function Rt(e){const t=J(e);return t===e?t:(ge(t,"iterate",ln),Ie(e)?t:t.map(de))}function qn(e){return ge(e=J(e),"iterate",ln),e}const Rr={__proto__:null,[Symbol.iterator](){return ss(this,Symbol.iterator,de)},concat(...e){return Rt(this).concat(...e.map(t=>V(t)?Rt(t):t))},entries(){return ss(this,"entries",e=>(e[1]=de(e[1]),e))},every(e,t){return Ye(this,"every",e,t,void 0,arguments)},filter(e,t){return Ye(this,"filter",e,t,n=>n.map(de),arguments)},find(e,t){return Ye(this,"find",e,t,de,arguments)},findIndex(e,t){return Ye(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ye(this,"findLast",e,t,de,arguments)},findLastIndex(e,t){return Ye(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ye(this,"forEach",e,t,void 0,arguments)},includes(...e){return os(this,"includes",e)},indexOf(...e){return os(this,"indexOf",e)},join(e){return Rt(this).join(e)},lastIndexOf(...e){return os(this,"lastIndexOf",e)},map(e,t){return Ye(this,"map",e,t,void 0,arguments)},pop(){return Wt(this,"pop")},push(...e){return Wt(this,"push",e)},reduce(e,...t){return Zs(this,"reduce",e,t)},reduceRight(e,...t){return Zs(this,"reduceRight",e,t)},shift(){return Wt(this,"shift")},some(e,t){return Ye(this,"some",e,t,void 0,arguments)},splice(...e){return Wt(this,"splice",e)},toReversed(){return Rt(this).toReversed()},toSorted(e){return Rt(this).toSorted(e)},toSpliced(...e){return Rt(this).toSpliced(...e)},unshift(...e){return Wt(this,"unshift",e)},values(){return ss(this,"values",de)}};function ss(e,t,n){const s=qn(e),o=s[t]();return s!==e&&!Ie(e)&&(o._next=o.next,o.next=()=>{const i=o._next();return i.value&&(i.value=n(i.value)),i}),o}const Or=Array.prototype;function Ye(e,t,n,s,o,i){const l=qn(e),r=l!==e&&!Ie(e),c=l[t];if(c!==Or[t]){const h=c.apply(e,i);return r?de(h):h}let p=n;l!==e&&(r?p=function(h,m){return n.call(this,de(h),m,e)}:n.length>2&&(p=function(h,m){return n.call(this,h,m,e)}));const u=c.call(l,p,s);return r&&o?o(u):u}function Zs(e,t,n,s){const o=qn(e);let i=n;return o!==e&&(Ie(e)?n.length>3&&(i=function(l,r,c){return n.call(this,l,r,c,e)}):i=function(l,r,c){return n.call(this,l,de(r),c,e)}),o[t](i,...s)}function os(e,t,n){const s=J(e);ge(s,"iterate",ln);const o=s[t](...n);return(o===-1||o===!1)&&$s(n[0])?(n[0]=J(n[0]),s[t](...n)):o}function Wt(e,t,n=[]){st(),Is();const s=J(e)[t].apply(e,n);return Ds(),ot(),s}const Ir=Ps("__proto__,__v_isRef,__isVue"),ci=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ze));function Dr(e){ze(e)||(e=String(e));const t=J(this);return ge(t,"has",e),t.hasOwnProperty(e)}class ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const o=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(o?i?Br:pi:i?di:fi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const l=V(t);if(!o){let c;if(l&&(c=Rr[n]))return c;if(n==="hasOwnProperty")return Dr}const r=Reflect.get(t,n,_e(t)?t:s);return(ze(n)?ci.has(n):Ir(n))||(o||ge(t,"get",n),i)?r:_e(r)?l&&Rs(n)?r:r.value:se(r)?o?gi(r):zn(r):r}}class ui extends ai{constructor(t=!1){super(!1,t)}set(t,n,s,o){let i=t[n];if(!this._isShallow){const c=mt(i);if(!Ie(s)&&!mt(s)&&(i=J(i),s=J(s)),!V(t)&&_e(i)&&!_e(s))return c||(i.value=s),!0}const l=V(t)&&Rs(n)?Number(n)e,yn=e=>Reflect.getPrototypeOf(e);function $r(e,t,n){return function(...s){const o=this.__v_raw,i=J(o),l=Mt(i),r=e==="entries"||e===Symbol.iterator&&l,c=e==="keys"&&l,p=o[e](...s),u=n?ms:t?Rn:de;return!t&&ge(i,"iterate",c?gs:Ct),{next(){const{value:h,done:m}=p.next();return m?{value:h,done:m}:{value:r?[u(h[0]),u(h[1])]:u(h),done:m}},[Symbol.iterator](){return this}}}}function bn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Lr(e,t){const n={get(o){const i=this.__v_raw,l=J(i),r=J(o);e||(gt(o,r)&&ge(l,"get",o),ge(l,"get",r));const{has:c}=yn(l),p=t?ms:e?Rn:de;if(c.call(l,o))return p(i.get(o));if(c.call(l,r))return p(i.get(r));i!==l&&i.get(o)},get size(){const o=this.__v_raw;return!e&&ge(J(o),"iterate",Ct),o.size},has(o){const i=this.__v_raw,l=J(i),r=J(o);return e||(gt(o,r)&&ge(l,"has",o),ge(l,"has",r)),o===r?i.has(o):i.has(o)||i.has(r)},forEach(o,i){const l=this,r=l.__v_raw,c=J(r),p=t?ms:e?Rn:de;return!e&&ge(c,"iterate",Ct),r.forEach((u,h)=>o.call(i,p(u),p(h),l))}};return ue(n,e?{add:bn("add"),set:bn("set"),delete:bn("delete"),clear:bn("clear")}:{add(o){!t&&!Ie(o)&&!mt(o)&&(o=J(o));const i=J(this);return yn(i).has.call(i,o)||(i.add(o),Ze(i,"add",o,o)),this},set(o,i){!t&&!Ie(i)&&!mt(i)&&(i=J(i));const l=J(this),{has:r,get:c}=yn(l);let p=r.call(l,o);p||(o=J(o),p=r.call(l,o));const u=c.call(l,o);return l.set(o,i),p?gt(i,u)&&Ze(l,"set",o,i):Ze(l,"add",o,i),this},delete(o){const i=J(this),{has:l,get:r}=yn(i);let c=l.call(i,o);c||(o=J(o),c=l.call(i,o)),r&&r.call(i,o);const p=i.delete(o);return c&&Ze(i,"delete",o,void 0),p},clear(){const o=J(this),i=o.size!==0,l=o.clear();return i&&Ze(o,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=$r(o,e,t)}),n}function ks(e,t){const n=Lr(e,t);return(s,o,i)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(Y(n,o)&&o in s?n:s,o,i)}const jr={get:ks(!1,!1)},Hr={get:ks(!1,!0)},Vr={get:ks(!0,!1)};const fi=new WeakMap,di=new WeakMap,pi=new WeakMap,Br=new WeakMap;function Ur(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Kr(e){return e.__v_skip||!Object.isExtensible(e)?0:Ur(hr(e))}function zn(e){return mt(e)?e:Ns(e,!1,Fr,jr,fi)}function hi(e){return Ns(e,!1,Nr,Hr,di)}function gi(e){return Ns(e,!0,kr,Vr,pi)}function Ns(e,t,n,s,o){if(!se(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=Kr(e);if(i===0)return e;const l=o.get(e);if(l)return l;const r=new Proxy(e,i===2?s:n);return o.set(e,r),r}function Ft(e){return mt(e)?Ft(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function Ie(e){return!!(e&&e.__v_isShallow)}function $s(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function Wr(e){return!Y(e,"__v_skip")&&Object.isExtensible(e)&&Yo(e,"__v_skip",!0),e}const de=e=>se(e)?zn(e):e,Rn=e=>se(e)?gi(e):e;function _e(e){return e?e.__v_isRef===!0:!1}function qr(e){return mi(e,!1)}function zr(e){return mi(e,!0)}function mi(e,t){return _e(e)?e:new Gr(e,t)}class Gr{constructor(t,n){this.dep=new Fs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:J(t),this._value=n?t:de(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Ie(t)||mt(t);t=s?t:J(t),gt(t,n)&&(this._rawValue=t,this._value=s?t:de(t),this.dep.trigger())}}function kt(e){return _e(e)?e.value:e}const Jr={get:(e,t,n)=>t==="__v_raw"?e:kt(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const o=e[t];return _e(o)&&!_e(n)?(o.value=n,!0):Reflect.set(e,t,n,s)}};function _i(e){return Ft(e)?e:new Proxy(e,Jr)}class Yr{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Fs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=rn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&ne!==this)return ni(this,!0),!0}get value(){const t=this.dep.track();return ii(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Qr(e,t,n=!1){let s,o;return U(e)?s=e:(s=e.get,o=e.set),new Yr(s,o,n)}const xn={},On=new WeakMap;let xt;function Xr(e,t=!1,n=xt){if(n){let s=On.get(n);s||On.set(n,s=[]),s.push(e)}}function Zr(e,t,n=ee){const{immediate:s,deep:o,once:i,scheduler:l,augmentJob:r,call:c}=n,p=M=>o?M:Ie(M)||o===!1||o===0?et(M,1):et(M);let u,h,m,_,A=!1,O=!1;if(_e(e)?(h=()=>e.value,A=Ie(e)):Ft(e)?(h=()=>p(e),A=!0):V(e)?(O=!0,A=e.some(M=>Ft(M)||Ie(M)),h=()=>e.map(M=>{if(_e(M))return M.value;if(Ft(M))return p(M);if(U(M))return c?c(M,2):M()})):U(e)?t?h=c?()=>c(e,2):e:h=()=>{if(m){st();try{m()}finally{ot()}}const M=xt;xt=u;try{return c?c(e,3,[_]):e(_)}finally{xt=M}}:h=Ne,t&&o){const M=h,Z=o===!0?1/0:o;h=()=>et(M(),Z)}const K=Pr(),N=()=>{u.stop(),K&&K.active&&As(K.effects,u)};if(i&&t){const M=t;t=(...Z)=>{M(...Z),N()}}let I=O?new Array(e.length).fill(xn):xn;const j=M=>{if(!(!(u.flags&1)||!u.dirty&&!M))if(t){const Z=u.run();if(o||A||(O?Z.some((fe,re)=>gt(fe,I[re])):gt(Z,I))){m&&m();const fe=xt;xt=u;try{const re=[Z,I===xn?void 0:O&&I[0]===xn?[]:I,_];I=Z,c?c(t,3,re):t(...re)}finally{xt=fe}}}else u.run()};return r&&r(j),u=new ei(h),u.scheduler=l?()=>l(j,!1):j,_=M=>Xr(M,!1,u),m=u.onStop=()=>{const M=On.get(u);if(M){if(c)c(M,4);else for(const Z of M)Z();On.delete(u)}},t?s?j(!0):I=u.run():l?l(j.bind(null,!0),!0):u.run(),N.pause=u.pause.bind(u),N.resume=u.resume.bind(u),N.stop=N,N}function et(e,t=1/0,n){if(t<=0||!se(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,_e(e))et(e.value,t,n);else if(V(e))for(let s=0;s{et(s,t,n)});else if(Jo(e)){for(const s in e)et(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&et(e[s],t,n)}return e}/** +* @vue/runtime-core v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function gn(e,t,n,s){try{return s?e(...s):e()}catch(o){Gn(o,t,n)}}function Ge(e,t,n,s){if(U(e)){const o=gn(e,t,n,s);return o&&zo(o)&&o.catch(i=>{Gn(i,t,n)}),o}if(V(e)){const o=[];for(let i=0;i>>1,o=ye[s],i=cn(o);i=cn(n)?ye.push(e):ye.splice(tl(t),0,e),e.flags|=1,yi()}}function yi(){In||(In=vi.then(xi))}function nl(e){V(e)?Nt.push(...e):ft&&e.id===-1?ft.splice(Ot+1,0,e):e.flags&1||(Nt.push(e),e.flags|=1),yi()}function eo(e,t,n=We+1){for(;ncn(n)-cn(s));if(Nt.length=0,ft){ft.push(...t);return}for(ft=t,Ot=0;Ote.id==null?e.flags&2?-1:1/0:e.id;function xi(e){const t=Ne;try{for(We=0;We{s._d&&kn(-1);const i=Dn(t);let l;try{l=e(...o)}finally{Dn(i),s._d&&kn(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function Fe(e,t){if(Ae===null)return e;const n=Xn(Ae),s=e.dirs||(e.dirs=[]);for(let o=0;oe.__isTeleport,il=Symbol("_leaveCb");function Hs(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Hs(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 wi(e,t){return U(e)?(()=>ue({name:e.name},t,{setup:e}))():e}function Ci(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Mn=new WeakMap;function Zt(e,t,n,s,o=!1){if(V(e)){e.forEach((A,O)=>Zt(A,t&&(V(t)?t[O]:t),n,s,o));return}if(en(s)&&!o){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Zt(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?Xn(s.component):s.el,l=o?null:i,{i:r,r:c}=e,p=t&&t.r,u=r.refs===ee?r.refs={}:r.refs,h=r.setupState,m=J(h),_=h===ee?qo:A=>Y(m,A);if(p!=null&&p!==c){if(to(t),le(p))u[p]=null,_(p)&&(h[p]=null);else if(_e(p)){p.value=null;const A=t;A.k&&(u[A.k]=null)}}if(U(c))gn(c,r,12,[l,u]);else{const A=le(c),O=_e(c);if(A||O){const K=()=>{if(e.f){const N=A?_(c)?h[c]:u[c]:c.value;if(o)V(N)&&As(N,i);else if(V(N))N.includes(i)||N.push(i);else if(A)u[c]=[i],_(c)&&(h[c]=u[c]);else{const I=[i];c.value=I,e.k&&(u[e.k]=I)}}else A?(u[c]=l,_(c)&&(h[c]=l)):O&&(c.value=l,e.k&&(u[e.k]=l))};if(l){const N=()=>{K(),Mn.delete(e)};N.id=-1,Mn.set(e,N),Te(N,n)}else to(e),K()}}}function to(e){const t=Mn.get(e);t&&(t.flags|=8,Mn.delete(e))}hn().requestIdleCallback;hn().cancelIdleCallback;const en=e=>!!e.type.__asyncLoader,Ei=e=>e.type.__isKeepAlive;function rl(e,t){Pi(e,"a",t)}function ll(e,t){Pi(e,"da",t)}function Pi(e,t,n=me){const s=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Jn(t,s,n),n){let o=n.parent;for(;o&&o.parent;)Ei(o.parent.vnode)&&cl(s,t,n,o),o=o.parent}}function cl(e,t,n,s){const o=Jn(t,e,s,!0);Ti(()=>{As(s[t],o)},n)}function Jn(e,t,n=me,s=!1){if(n){const o=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{st();const r=_n(n),c=Ge(t,n,e,l);return r(),ot(),c});return s?o.unshift(i):o.push(i),i}}const it=e=>(t,n=me)=>{(!un||e==="sp")&&Jn(e,(...s)=>t(...s),n)},al=it("bm"),ul=it("m"),fl=it("bu"),dl=it("u"),pl=it("bum"),Ti=it("um"),hl=it("sp"),gl=it("rtg"),ml=it("rtc");function _l(e,t=me){Jn("ec",e,t)}const Ai="components";function mn(e,t){return yl(Ai,e,!0,t)||e}const vl=Symbol.for("v-ndc");function yl(e,t,n=!0,s=!1){const o=Ae||me;if(o){const i=o.type;if(e===Ai){const r=uc(i,!1);if(r&&(r===t||r===De(t)||r===Kn(De(t))))return i}const l=no(o[e]||i[e],t)||no(o.appContext[e],t);return!l&&s?i:l}}function no(e,t){return e&&(e[t]||e[De(t)]||e[Kn(De(t))])}function ht(e,t,n,s){let o;const i=n&&n[s],l=V(e);if(l||le(e)){const r=l&&Ft(e);let c=!1,p=!1;r&&(c=!Ie(e),p=mt(e),e=qn(e)),o=new Array(e.length);for(let u=0,h=e.length;ut(r,c,void 0,i&&i[c]));else{const r=Object.keys(e);o=new Array(r.length);for(let c=0,p=r.length;ce?zi(e)?Xn(e):_s(e.parent):null,tn=ue(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=>_s(e.parent),$root:e=>_s(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Vs(e),$forceUpdate:e=>e.f||(e.f=()=>{js(e.update)}),$nextTick:e=>e.n||(e.n=Ls.bind(e.proxy)),$watch:e=>Vl.bind(e)}),is=(e,t)=>e!==ee&&!e.__isScriptSetup&&Y(e,t),bl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:o,props:i,accessCache:l,type:r,appContext:c}=e;let p;if(t[0]!=="$"){const _=l[t];if(_!==void 0)switch(_){case 1:return s[t];case 2:return o[t];case 4:return n[t];case 3:return i[t]}else{if(is(s,t))return l[t]=1,s[t];if(o!==ee&&Y(o,t))return l[t]=2,o[t];if((p=e.propsOptions[0])&&Y(p,t))return l[t]=3,i[t];if(n!==ee&&Y(n,t))return l[t]=4,n[t];vs&&(l[t]=0)}}const u=tn[t];let h,m;if(u)return t==="$attrs"&&ge(e.attrs,"get",""),u(e);if((h=r.__cssModules)&&(h=h[t]))return h;if(n!==ee&&Y(n,t))return l[t]=4,n[t];if(m=c.config.globalProperties,Y(m,t))return m[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:i}=e;return is(o,t)?(o[t]=n,!0):s!==ee&&Y(s,t)?(s[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:o,propsOptions:i,type:l}},r){let c,p;return!!(n[r]||e!==ee&&r[0]!=="$"&&Y(e,r)||is(t,r)||(c=i[0])&&Y(c,r)||Y(s,r)||Y(tn,r)||Y(o.config.globalProperties,r)||(p=l.__cssModules)&&p[r])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function so(e){return V(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let vs=!0;function xl(e){const t=Vs(e),n=e.proxy,s=e.ctx;vs=!1,t.beforeCreate&&oo(t.beforeCreate,e,"bc");const{data:o,computed:i,methods:l,watch:r,provide:c,inject:p,created:u,beforeMount:h,mounted:m,beforeUpdate:_,updated:A,activated:O,deactivated:K,beforeDestroy:N,beforeUnmount:I,destroyed:j,unmounted:M,render:Z,renderTracked:fe,renderTriggered:re,errorCaptured:je,serverPrefetch:rt,expose:He,inheritAttrs:lt,components:vt,directives:Ve,filters:Ut}=t;if(p&&Sl(p,s,null),l)for(const X in l){const q=l[X];U(q)&&(s[X]=q.bind(n))}if(o){const X=o.call(n,n);se(X)&&(e.data=zn(X))}if(vs=!0,i)for(const X in i){const q=i[X],Je=U(q)?q.bind(n,n):U(q.get)?q.get.bind(n,n):Ne,ct=!U(q)&&U(q.set)?q.set.bind(n):Ne,Be=ke({get:Je,set:ct});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>Be.value,set:be=>Be.value=be})}if(r)for(const X in r)Ri(r[X],s,n,X);if(c){const X=U(c)?c.call(n):c;Reflect.ownKeys(X).forEach(q=>{wn(q,X[q])})}u&&oo(u,e,"c");function ce(X,q){V(q)?q.forEach(Je=>X(Je.bind(n))):q&&X(q.bind(n))}if(ce(al,h),ce(ul,m),ce(fl,_),ce(dl,A),ce(rl,O),ce(ll,K),ce(_l,je),ce(ml,fe),ce(gl,re),ce(pl,I),ce(Ti,M),ce(hl,rt),V(He))if(He.length){const X=e.exposed||(e.exposed={});He.forEach(q=>{Object.defineProperty(X,q,{get:()=>n[q],set:Je=>n[q]=Je,enumerable:!0})})}else e.exposed||(e.exposed={});Z&&e.render===Ne&&(e.render=Z),lt!=null&&(e.inheritAttrs=lt),vt&&(e.components=vt),Ve&&(e.directives=Ve),rt&&Ci(e)}function Sl(e,t,n=Ne){V(e)&&(e=ys(e));for(const s in e){const o=e[s];let i;se(o)?"default"in o?i=nt(o.from||s,o.default,!0):i=nt(o.from||s):i=nt(o),_e(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[s]=i}}function oo(e,t,n){Ge(V(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ri(e,t,n,s){let o=s.includes(".")?Bi(n,s):()=>n[s];if(le(e)){const i=t[e];U(i)&&Cn(o,i)}else if(U(e))Cn(o,e.bind(n));else if(se(e))if(V(e))e.forEach(i=>Ri(i,t,n,s));else{const i=U(e.handler)?e.handler.bind(n):t[e.handler];U(i)&&Cn(o,i,e)}}function Vs(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:o,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,r=i.get(t);let c;return r?c=r:!o.length&&!n&&!s?c=t:(c={},o.length&&o.forEach(p=>Fn(c,p,l,!0)),Fn(c,t,l)),se(t)&&i.set(t,c),c}function Fn(e,t,n,s=!1){const{mixins:o,extends:i}=t;i&&Fn(e,i,n,!0),o&&o.forEach(l=>Fn(e,l,n,!0));for(const l in t)if(!(s&&l==="expose")){const r=wl[l]||n&&n[l];e[l]=r?r(e[l],t[l]):t[l]}return e}const wl={data:io,props:ro,emits:ro,methods:Jt,computed:Jt,beforeCreate:ve,created:ve,beforeMount:ve,mounted:ve,beforeUpdate:ve,updated:ve,beforeDestroy:ve,beforeUnmount:ve,destroyed:ve,unmounted:ve,activated:ve,deactivated:ve,errorCaptured:ve,serverPrefetch:ve,components:Jt,directives:Jt,watch:El,provide:io,inject:Cl};function io(e,t){return t?e?function(){return ue(U(e)?e.call(this,this):e,U(t)?t.call(this,this):t)}:t:e}function Cl(e,t){return Jt(ys(e),ys(t))}function ys(e){if(V(e)){const t={};for(let n=0;n1)return n&&U(t)?t.call(s&&s.proxy):t}}const Ii={},Di=()=>Object.create(Ii),Mi=e=>Object.getPrototypeOf(e)===Ii;function Al(e,t,n,s=!1){const o={},i=Di();e.propsDefaults=Object.create(null),Fi(e,t,o,i);for(const l in e.propsOptions[0])l in o||(o[l]=void 0);n?e.props=s?o:hi(o):e.type.props?e.props=o:e.props=i,e.attrs=i}function Rl(e,t,n,s){const{props:o,attrs:i,vnode:{patchFlag:l}}=e,r=J(o),[c]=e.propsOptions;let p=!1;if((s||l>0)&&!(l&16)){if(l&8){const u=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,_]=ki(h,t,!0);ue(l,m),_&&r.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!c)return se(e)&&s.set(e,Dt),Dt;if(V(i))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Us=e=>V(e)?e.map(qe):[qe(e)],Il=(e,t,n)=>{if(t._n)return t;const s=we((...o)=>Us(t(...o)),n);return s._c=!1,s},Ni=(e,t,n)=>{const s=e._ctx;for(const o in e){if(Bs(o))continue;const i=e[o];if(U(i))t[o]=Il(o,i,s);else if(i!=null){const l=Us(i);t[o]=()=>l}}},$i=(e,t)=>{const n=Us(t);e.slots.default=()=>n},Li=(e,t,n)=>{for(const s in t)(n||!Bs(s))&&(e[s]=t[s])},Dl=(e,t,n)=>{const s=e.slots=Di();if(e.vnode.shapeFlag&32){const o=t._;o?(Li(s,t,n),n&&Yo(s,"_",o,!0)):Ni(t,s)}else t&&$i(e,t)},Ml=(e,t,n)=>{const{vnode:s,slots:o}=e;let i=!0,l=ee;if(s.shapeFlag&32){const r=t._;r?n&&r===1?i=!1:Li(o,t,n):(i=!t.$stable,Ni(t,o)),l=t}else t&&($i(e,t),l={default:1});if(i)for(const r in o)!Bs(r)&&l[r]==null&&delete o[r]};function Fl(){typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__!="boolean"&&(hn().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1)}const Te=Jl;function kl(e){return Nl(e)}function Nl(e,t){Fl();const n=hn();n.__VUE__=!0;const{insert:s,remove:o,patchProp:i,createElement:l,createText:r,createComment:c,setText:p,setElementText:u,parentNode:h,nextSibling:m,setScopeId:_=Ne,insertStaticContent:A}=e,O=(a,d,g,b=null,v=null,x=null,E=void 0,C=null,w=!!d.dynamicChildren)=>{if(a===d)return;a&&!qt(a,d)&&(b=y(a),be(a,v,x,!0),a=null),d.patchFlag===-2&&(w=!1,d.dynamicChildren=null);const{type:S,ref:H,shapeFlag:T}=d;switch(S){case Qn:K(a,d,g,b);break;case _t:N(a,d,g,b);break;case En:a==null&&I(d,g,b,E);break;case pe:vt(a,d,g,b,v,x,E,C,w);break;default:T&1?Z(a,d,g,b,v,x,E,C,w):T&6?Ve(a,d,g,b,v,x,E,C,w):(T&64||T&128)&&S.process(a,d,g,b,v,x,E,C,w,D)}H!=null&&v?Zt(H,a&&a.ref,x,d||a,!d):H==null&&a&&a.ref!=null&&Zt(a.ref,null,x,a,!0)},K=(a,d,g,b)=>{if(a==null)s(d.el=r(d.children),g,b);else{const v=d.el=a.el;d.children!==a.children&&p(v,d.children)}},N=(a,d,g,b)=>{a==null?s(d.el=c(d.children||""),g,b):d.el=a.el},I=(a,d,g,b)=>{[a.el,a.anchor]=A(a.children,d,g,b,a.el,a.anchor)},j=({el:a,anchor:d},g,b)=>{let v;for(;a&&a!==d;)v=m(a),s(a,g,b),a=v;s(d,g,b)},M=({el:a,anchor:d})=>{let g;for(;a&&a!==d;)g=m(a),o(a),a=g;o(d)},Z=(a,d,g,b,v,x,E,C,w)=>{d.type==="svg"?E="svg":d.type==="math"&&(E="mathml"),a==null?fe(d,g,b,v,x,E,C,w):rt(a,d,v,x,E,C,w)},fe=(a,d,g,b,v,x,E,C)=>{let w,S;const{props:H,shapeFlag:T,transition:k,dirs:B}=a;if(w=a.el=l(a.type,x,H&&H.is,H),T&8?u(w,a.children):T&16&&je(a.children,w,null,b,v,rs(a,x),E,C),B&&yt(a,null,b,"created"),re(w,a,a.scopeId,E,b),H){for(const te in H)te!=="value"&&!Yt(te)&&i(w,te,null,H[te],x,b);"value"in H&&i(w,"value",null,H.value,x),(S=H.onVnodeBeforeMount)&&Ke(S,b,a)}B&&yt(a,null,b,"beforeMount");const W=$l(v,k);W&&k.beforeEnter(w),s(w,d,g),((S=H&&H.onVnodeMounted)||W||B)&&Te(()=>{S&&Ke(S,b,a),W&&k.enter(w),B&&yt(a,null,b,"mounted")},v)},re=(a,d,g,b,v)=>{if(g&&_(a,g),b)for(let x=0;x{for(let S=w;S{const C=d.el=a.el;let{patchFlag:w,dynamicChildren:S,dirs:H}=d;w|=a.patchFlag&16;const T=a.props||ee,k=d.props||ee;let B;if(g&&bt(g,!1),(B=k.onVnodeBeforeUpdate)&&Ke(B,g,d,a),H&&yt(d,a,g,"beforeUpdate"),g&&bt(g,!0),(T.innerHTML&&k.innerHTML==null||T.textContent&&k.textContent==null)&&u(C,""),S?He(a.dynamicChildren,S,C,g,b,rs(d,v),x):E||q(a,d,C,null,g,b,rs(d,v),x,!1),w>0){if(w&16)lt(C,T,k,g,v);else if(w&2&&T.class!==k.class&&i(C,"class",null,k.class,v),w&4&&i(C,"style",T.style,k.style,v),w&8){const W=d.dynamicProps;for(let te=0;te{B&&Ke(B,g,d,a),H&&yt(d,a,g,"updated")},b)},He=(a,d,g,b,v,x,E)=>{for(let C=0;C{if(d!==g){if(d!==ee)for(const x in d)!Yt(x)&&!(x in g)&&i(a,x,d[x],null,v,b);for(const x in g){if(Yt(x))continue;const E=g[x],C=d[x];E!==C&&x!=="value"&&i(a,x,C,E,v,b)}"value"in g&&i(a,"value",d.value,g.value,v)}},vt=(a,d,g,b,v,x,E,C,w)=>{const S=d.el=a?a.el:r(""),H=d.anchor=a?a.anchor:r("");let{patchFlag:T,dynamicChildren:k,slotScopeIds:B}=d;B&&(C=C?C.concat(B):B),a==null?(s(S,g,b),s(H,g,b),je(d.children||[],g,H,v,x,E,C,w)):T>0&&T&64&&k&&a.dynamicChildren?(He(a.dynamicChildren,k,g,v,x,E,C),(d.key!=null||v&&d===v.subTree)&&ji(a,d,!0)):q(a,d,g,H,v,x,E,C,w)},Ve=(a,d,g,b,v,x,E,C,w)=>{d.slotScopeIds=C,a==null?d.shapeFlag&512?v.ctx.activate(d,g,b,E,w):Ut(d,g,b,v,x,E,w):Pt(a,d,w)},Ut=(a,d,g,b,v,x,E)=>{const C=a.component=oc(a,b,v);if(Ei(a)&&(C.ctx.renderer=D),rc(C,!1,E),C.asyncDep){if(v&&v.registerDep(C,ce,E),!a.el){const w=C.subTree=oe(_t);N(null,w,d,g),a.placeholder=w.el}}else ce(C,a,d,g,v,x,E)},Pt=(a,d,g)=>{const b=d.component=a.component;if(zl(a,d,g))if(b.asyncDep&&!b.asyncResolved){X(b,d,g);return}else b.next=d,b.update();else d.el=a.el,b.vnode=d},ce=(a,d,g,b,v,x,E)=>{const C=()=>{if(a.isMounted){let{next:T,bu:k,u:B,parent:W,vnode:te}=a;{const Ee=Hi(a);if(Ee){T&&(T.el=te.el,X(a,T,E)),Ee.asyncDep.then(()=>{a.isUnmounted||C()});return}}let Q=T,xe;bt(a,!1),T?(T.el=te.el,X(a,T,E)):T=te,k&&Sn(k),(xe=T.props&&T.props.onVnodeBeforeUpdate)&&Ke(xe,W,T,te),bt(a,!0);const he=ls(a),Me=a.subTree;a.subTree=he,O(Me,he,h(Me.el),y(Me),a,v,x),T.el=he.el,Q===null&&Gl(a,he.el),B&&Te(B,v),(xe=T.props&&T.props.onVnodeUpdated)&&Te(()=>Ke(xe,W,T,te),v)}else{let T;const{el:k,props:B}=d,{bm:W,m:te,parent:Q,root:xe,type:he}=a,Me=en(d);if(bt(a,!1),W&&Sn(W),!Me&&(T=B&&B.onVnodeBeforeMount)&&Ke(T,Q,d),bt(a,!0),k&&ie){const Ee=()=>{a.subTree=ls(a),ie(k,a.subTree,a,v,null)};Me&&he.__asyncHydrate?he.__asyncHydrate(k,a,Ee):Ee()}else{xe.ce&&xe.ce._def.shadowRoot!==!1&&xe.ce._injectChildStyle(he);const Ee=a.subTree=ls(a);O(null,Ee,g,b,a,v,x),d.el=Ee.el}if(te&&Te(te,v),!Me&&(T=B&&B.onVnodeMounted)){const Ee=d;Te(()=>Ke(T,Q,Ee),v)}(d.shapeFlag&256||Q&&en(Q.vnode)&&Q.vnode.shapeFlag&256)&&a.a&&Te(a.a,v),a.isMounted=!0,d=g=b=null}};a.scope.on();const w=a.effect=new ei(C);a.scope.off();const S=a.update=w.run.bind(w),H=a.job=w.runIfDirty.bind(w);H.i=a,H.id=a.uid,w.scheduler=()=>js(H),bt(a,!0),S()},X=(a,d,g)=>{d.component=a;const b=a.vnode.props;a.vnode=d,a.next=null,Rl(a,d.props,b,g),Ml(a,d.children,g),st(),eo(a),ot()},q=(a,d,g,b,v,x,E,C,w=!1)=>{const S=a&&a.children,H=a?a.shapeFlag:0,T=d.children,{patchFlag:k,shapeFlag:B}=d;if(k>0){if(k&128){ct(S,T,g,b,v,x,E,C,w);return}else if(k&256){Je(S,T,g,b,v,x,E,C,w);return}}B&8?(H&16&&Oe(S,v,x),T!==S&&u(g,T)):H&16?B&16?ct(S,T,g,b,v,x,E,C,w):Oe(S,v,x,!0):(H&8&&u(g,""),B&16&&je(T,g,b,v,x,E,C,w))},Je=(a,d,g,b,v,x,E,C,w)=>{a=a||Dt,d=d||Dt;const S=a.length,H=d.length,T=Math.min(S,H);let k;for(k=0;kH?Oe(a,v,x,!0,!1,T):je(d,g,b,v,x,E,C,w,T)},ct=(a,d,g,b,v,x,E,C,w)=>{let S=0;const H=d.length;let T=a.length-1,k=H-1;for(;S<=T&&S<=k;){const B=a[S],W=d[S]=w?dt(d[S]):qe(d[S]);if(qt(B,W))O(B,W,g,null,v,x,E,C,w);else break;S++}for(;S<=T&&S<=k;){const B=a[T],W=d[k]=w?dt(d[k]):qe(d[k]);if(qt(B,W))O(B,W,g,null,v,x,E,C,w);else break;T--,k--}if(S>T){if(S<=k){const B=k+1,W=Bk)for(;S<=T;)be(a[S],v,x,!0),S++;else{const B=S,W=S,te=new Map;for(S=W;S<=k;S++){const Pe=d[S]=w?dt(d[S]):qe(d[S]);Pe.key!=null&&te.set(Pe.key,S)}let Q,xe=0;const he=k-W+1;let Me=!1,Ee=0;const Kt=new Array(he);for(S=0;S=he){be(Pe,v,x,!0);continue}let Ue;if(Pe.key!=null)Ue=te.get(Pe.key);else for(Q=W;Q<=k;Q++)if(Kt[Q-W]===0&&qt(Pe,d[Q])){Ue=Q;break}Ue===void 0?be(Pe,v,x,!0):(Kt[Ue-W]=S+1,Ue>=Ee?Ee=Ue:Me=!0,O(Pe,d[Ue],g,null,v,x,E,C,w),xe++)}const zs=Me?Ll(Kt):Dt;for(Q=zs.length-1,S=he-1;S>=0;S--){const Pe=W+S,Ue=d[Pe],Gs=d[Pe+1],Js=Pe+1{const{el:x,type:E,transition:C,children:w,shapeFlag:S}=a;if(S&6){Be(a.component.subTree,d,g,b);return}if(S&128){a.suspense.move(d,g,b);return}if(S&64){E.move(a,d,g,D);return}if(E===pe){s(x,d,g);for(let T=0;TC.enter(x),v);else{const{leave:T,delayLeave:k,afterLeave:B}=C,W=()=>{a.ctx.isUnmounted?o(x):s(x,d,g)},te=()=>{x._isLeaving&&x[il](!0),T(x,()=>{W(),B&&B()})};k?k(x,W,te):te()}else s(x,d,g)},be=(a,d,g,b=!1,v=!1)=>{const{type:x,props:E,ref:C,children:w,dynamicChildren:S,shapeFlag:H,patchFlag:T,dirs:k,cacheIndex:B}=a;if(T===-2&&(v=!1),C!=null&&(st(),Zt(C,null,g,a,!0),ot()),B!=null&&(d.renderCache[B]=void 0),H&256){d.ctx.deactivate(a);return}const W=H&1&&k,te=!en(a);let Q;if(te&&(Q=E&&E.onVnodeBeforeUnmount)&&Ke(Q,d,a),H&6)vn(a.component,g,b);else{if(H&128){a.suspense.unmount(g,b);return}W&&yt(a,null,d,"beforeUnmount"),H&64?a.type.remove(a,d,g,D,b):S&&!S.hasOnce&&(x!==pe||T>0&&T&64)?Oe(S,d,g,!1,!0):(x===pe&&T&384||!v&&H&16)&&Oe(w,d,g),b&&Tt(a)}(te&&(Q=E&&E.onVnodeUnmounted)||W)&&Te(()=>{Q&&Ke(Q,d,a),W&&yt(a,null,d,"unmounted")},g)},Tt=a=>{const{type:d,el:g,anchor:b,transition:v}=a;if(d===pe){At(g,b);return}if(d===En){M(a);return}const x=()=>{o(g),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(a.shapeFlag&1&&v&&!v.persisted){const{leave:E,delayLeave:C}=v,w=()=>E(g,x);C?C(a.el,x,w):w()}else x()},At=(a,d)=>{let g;for(;a!==d;)g=m(a),o(a),a=g;o(d)},vn=(a,d,g)=>{const{bum:b,scope:v,job:x,subTree:E,um:C,m:w,a:S}=a;co(w),co(S),b&&Sn(b),v.stop(),x&&(x.flags|=8,be(E,a,d,g)),C&&Te(C,d),Te(()=>{a.isUnmounted=!0},d)},Oe=(a,d,g,b=!1,v=!1,x=0)=>{for(let E=x;E{if(a.shapeFlag&6)return y(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const d=m(a.anchor||a.el),g=d&&d[sl];return g?m(g):d};let R=!1;const P=(a,d,g)=>{a==null?d._vnode&&be(d._vnode,null,null,!0):O(d._vnode||null,a,d,null,null,null,g),d._vnode=a,R||(R=!0,eo(),bi(),R=!1)},D={p:O,um:be,m:Be,r:Tt,mt:Ut,mc:je,pc:q,pbc:He,n:y,o:e};let z,ie;return t&&([z,ie]=t(D)),{render:P,hydrate:z,createApp:Tl(P,z)}}function rs({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function bt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function $l(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ji(e,t,n=!1){const s=e.children,o=t.children;if(V(s)&&V(o))for(let i=0;i>1,e[n[r]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,l=n[i-1];i-- >0;)n[i]=l,l=t[l];return n}function Hi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Hi(t)}function co(e){if(e)for(let t=0;tnt(jl);function Cn(e,t,n){return Vi(e,t,n)}function Vi(e,t,n=ee){const{immediate:s,deep:o,flush:i,once:l}=n,r=ue({},n),c=t&&s||!t&&i!=="post";let p;if(un){if(i==="sync"){const _=Hl();p=_.__watcherHandles||(_.__watcherHandles=[])}else if(!c){const _=()=>{};return _.stop=Ne,_.resume=Ne,_.pause=Ne,_}}const u=me;r.call=(_,A,O)=>Ge(_,u,A,O);let h=!1;i==="post"?r.scheduler=_=>{Te(_,u&&u.suspense)}:i!=="sync"&&(h=!0,r.scheduler=(_,A)=>{A?_():js(_)}),r.augmentJob=_=>{t&&(_.flags|=4),h&&(_.flags|=2,u&&(_.id=u.uid,_.i=u))};const m=Zr(e,t,r);return un&&(p?p.push(m):c&&m()),m}function Vl(e,t,n){const s=this.proxy,o=le(e)?e.includes(".")?Bi(s,e):()=>s[e]:e.bind(s,s);let i;U(t)?i=t:(i=t.handler,n=t);const l=_n(this),r=Vi(o,i.bind(s),n);return l(),r}function Bi(e,t){const n=t.split(".");return()=>{let s=e;for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${De(t)}Modifiers`]||e[`${Et(t)}Modifiers`];function Ul(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||ee;let o=n;const i=t.startsWith("update:"),l=i&&Bl(s,t.slice(7));l&&(l.trim&&(o=n.map(u=>le(u)?u.trim():u)),l.number&&(o=n.map(An)));let r,c=s[r=es(t)]||s[r=es(De(t))];!c&&i&&(c=s[r=es(Et(t))]),c&&Ge(c,e,6,o);const p=s[r+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,Ge(p,e,6,o)}}const Kl=new WeakMap;function Ui(e,t,n=!1){const s=n?Kl:t.emitsCache,o=s.get(e);if(o!==void 0)return o;const i=e.emits;let l={},r=!1;if(!U(e)){const c=p=>{const u=Ui(p,t,!0);u&&(r=!0,ue(l,u))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!r?(se(e)&&s.set(e,null),null):(V(i)?i.forEach(c=>l[c]=null):ue(l,i),se(e)&&s.set(e,l),l)}function Yn(e,t){return!e||!Vn(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,Et(t))||Y(e,t))}function ls(e){const{type:t,vnode:n,proxy:s,withProxy:o,propsOptions:[i],slots:l,attrs:r,emit:c,render:p,renderCache:u,props:h,data:m,setupState:_,ctx:A,inheritAttrs:O}=e,K=Dn(e);let N,I;try{if(n.shapeFlag&4){const M=o||s,Z=M;N=qe(p.call(Z,M,u,h,_,m,A)),I=r}else{const M=t;N=qe(M.length>1?M(h,{attrs:r,slots:l,emit:c}):M(h,null)),I=t.props?r:Wl(r)}}catch(M){nn.length=0,Gn(M,e,1),N=oe(_t)}let j=N;if(I&&O!==!1){const M=Object.keys(I),{shapeFlag:Z}=j;M.length&&Z&7&&(i&&M.some(Ts)&&(I=ql(I,i)),j=jt(j,I,!1,!0))}return n.dirs&&(j=jt(j,null,!1,!0),j.dirs=j.dirs?j.dirs.concat(n.dirs):n.dirs),n.transition&&Hs(j,n.transition),N=j,Dn(K),N}const Wl=e=>{let t;for(const n in e)(n==="class"||n==="style"||Vn(n))&&((t||(t={}))[n]=e[n]);return t},ql=(e,t)=>{const n={};for(const s in e)(!Ts(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function zl(e,t,n){const{props:s,children:o,component:i}=e,{props:l,children:r,patchFlag:c}=t,p=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?ao(s,l,p):!!l;if(c&8){const u=t.dynamicProps;for(let h=0;he.__isSuspense;function Jl(e,t){t&&t.pendingBranch?V(e)?t.effects.push(...e):t.effects.push(e):nl(e)}const pe=Symbol.for("v-fgt"),Qn=Symbol.for("v-txt"),_t=Symbol.for("v-cmt"),En=Symbol.for("v-stc"),nn=[];let Re=null;function $(e=!1){nn.push(Re=e?null:[])}function Yl(){nn.pop(),Re=nn[nn.length-1]||null}let an=1;function kn(e,t=!1){an+=e,e<0&&Re&&t&&(Re.hasOnce=!0)}function Wi(e){return e.dynamicChildren=an>0?Re||Dt:null,Yl(),an>0&&Re&&Re.push(e),e}function L(e,t,n,s,o,i){return Wi(f(e,t,n,s,o,i,!0))}function Ql(e,t,n,s,o){return Wi(oe(e,t,n,s,o,!0))}function Nn(e){return e?e.__v_isVNode===!0:!1}function qt(e,t){return e.type===t.type&&e.key===t.key}const qi=({key:e})=>e!=null?e:null,Pn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?le(e)||_e(e)||U(e)?{i:Ae,r:e,k:t,f:!!n}:e:null);function f(e,t=null,n=null,s=0,o=null,i=e===pe?0:1,l=!1,r=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qi(t),ref:t&&Pn(t),scopeId:Si,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Ae};return r?(Ks(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=le(n)?8:16),an>0&&!l&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const oe=Xl;function Xl(e,t=null,n=null,s=0,o=null,i=!1){if((!e||e===vl)&&(e=_t),Nn(e)){const r=jt(e,t,!0);return n&&Ks(r,n),an>0&&!i&&Re&&(r.shapeFlag&6?Re[Re.indexOf(e)]=r:Re.push(r)),r.patchFlag=-2,r}if(fc(e)&&(e=e.__vccOpts),t){t=Zl(t);let{class:r,style:c}=t;r&&!le(r)&&(t.class=tt(r)),se(c)&&($s(c)&&!V(c)&&(c=ue({},c)),t.style=Os(c))}const l=le(e)?1:Ki(e)?128:ol(e)?64:se(e)?4:U(e)?2:0;return f(e,t,n,s,o,l,i,!0)}function Zl(e){return e?$s(e)||Mi(e)?ue({},e):e:null}function jt(e,t,n=!1,s=!1){const{props:o,ref:i,patchFlag:l,children:r,transition:c}=e,p=t?tc(o||{},t):o,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:p,key:p&&qi(p),ref:t&&t.ref?n&&i?V(i)?i.concat(Pn(t)):[i,Pn(t)]:Pn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==pe?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&jt(e.ssContent),ssFallback:e.ssFallback&&jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&Hs(u,c.clone(u)),u}function Ce(e=" ",t=0){return oe(Qn,null,e,t)}function ec(e,t){const n=oe(En,null,e);return n.staticCount=t,n}function ae(e="",t=!1){return t?($(),Ql(_t,null,e)):oe(_t,null,e)}function qe(e){return e==null||typeof e=="boolean"?oe(_t):V(e)?oe(pe,null,e.slice()):Nn(e)?dt(e):oe(Qn,null,String(e))}function dt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:jt(e)}function Ks(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(V(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),Ks(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!Mi(t)?t._ctx=Ae:o===3&&Ae&&(Ae.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else U(t)?(t={default:t,_ctx:Ae},n=32):(t=String(t),s&64?(n=16,t=[Ce(t)]):n=8);e.children=t,e.shapeFlag|=n}function tc(...e){const t={};for(let n=0;nme||Ae;let $n,xs;{const e=hn(),t=(n,s)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(s),i=>{o.length>1?o.forEach(l=>l(i)):o[0](i)}};$n=t("__VUE_INSTANCE_SETTERS__",n=>me=n),xs=t("__VUE_SSR_SETTERS__",n=>un=n)}const _n=e=>{const t=me;return $n(e),e.scope.on(),()=>{e.scope.off(),$n(t)}},uo=()=>{me&&me.scope.off(),$n(null)};function zi(e){return e.vnode.shapeFlag&4}let un=!1;function rc(e,t=!1,n=!1){t&&xs(t);const{props:s,children:o}=e.vnode,i=zi(e);Al(e,s,i,t),Dl(e,o,n||t);const l=i?lc(e,t):void 0;return t&&xs(!1),l}function lc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,bl);const{setup:s}=n;if(s){st();const o=e.setupContext=s.length>1?ac(e):null,i=_n(e),l=gn(s,e,0,[e.props,o]),r=zo(l);if(ot(),i(),(r||e.sp)&&!en(e)&&Ci(e),r){if(l.then(uo,uo),t)return l.then(c=>{fo(e,c,t)}).catch(c=>{Gn(c,e,0)});e.asyncDep=l}else fo(e,l,t)}else Gi(e,t)}function fo(e,t,n){U(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:se(t)&&(e.setupState=_i(t)),Gi(e,n)}let po;function Gi(e,t,n){const s=e.type;if(!e.render){if(!t&&po&&!s.render){const o=s.template||Vs(e).template;if(o){const{isCustomElement:i,compilerOptions:l}=e.appContext.config,{delimiters:r,compilerOptions:c}=s,p=ue(ue({isCustomElement:i,delimiters:r},l),c);s.render=po(o,p)}}e.render=s.render||Ne}{const o=_n(e);st();try{xl(e)}finally{ot(),o()}}}const cc={get(e,t){return ge(e,"get",""),e[t]}};function ac(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,cc),slots:e.slots,emit:e.emit,expose:t}}function Xn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(_i(Wr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in tn)return tn[n](e)},has(t,n){return n in t||n in tn}})):e.proxy}function uc(e,t=!0){return U(e)?e.displayName||e.name:e.name||t&&e.__name}function fc(e){return U(e)&&"__vccOpts"in e}const ke=(e,t)=>Qr(e,t,un);function Ji(e,t,n){const s=(i,l,r)=>{kn(-1);try{return oe(i,l,r)}finally{kn(1)}},o=arguments.length;return o===2?se(t)&&!V(t)?Nn(t)?s(e,null,[t]):s(e,t):s(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Nn(n)&&(n=[n]),s(e,t,n))}const dc="3.5.21";/** +* @vue/runtime-dom v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ss;const ho=typeof window<"u"&&window.trustedTypes;if(ho)try{Ss=ho.createPolicy("vue",{createHTML:e=>e})}catch{}const Yi=Ss?e=>Ss.createHTML(e):e=>e,pc="http://www.w3.org/2000/svg",hc="http://www.w3.org/1998/Math/MathML",Xe=typeof document<"u"?document:null,go=Xe&&Xe.createElement("template"),gc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const o=t==="svg"?Xe.createElementNS(pc,e):t==="mathml"?Xe.createElementNS(hc,e):n?Xe.createElement(e,{is:n}):Xe.createElement(e);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>Xe.createTextNode(e),createComment:e=>Xe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Xe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,o,i){const l=n?n.previousSibling:t.lastChild;if(o&&(o===i||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===i||!(o=o.nextSibling)););else{go.innerHTML=Yi(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const r=go.content;if(s==="svg"||s==="mathml"){const c=r.firstChild;for(;c.firstChild;)r.appendChild(c.firstChild);r.removeChild(c)}t.insertBefore(r,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},mc=Symbol("_vtc");function _c(e,t,n){const s=e[mc];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ln=Symbol("_vod"),Qi=Symbol("_vsh"),mo={name:"show",beforeMount(e,{value:t},{transition:n}){e[Ln]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):zt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),zt(e,!0),s.enter(e)):s.leave(e,()=>{zt(e,!1)}):zt(e,t))},beforeUnmount(e,{value:t}){zt(e,t)}};function zt(e,t){e.style.display=t?e[Ln]:"none",e[Qi]=!t}const vc=Symbol(""),yc=/(?:^|;)\s*display\s*:/;function bc(e,t,n){const s=e.style,o=le(n);let i=!1;if(n&&!o){if(t)if(le(t))for(const l of t.split(";")){const r=l.slice(0,l.indexOf(":")).trim();n[r]==null&&Tn(s,r,"")}else for(const l in t)n[l]==null&&Tn(s,l,"");for(const l in n)l==="display"&&(i=!0),Tn(s,l,n[l])}else if(o){if(t!==n){const l=s[vc];l&&(n+=";"+l),s.cssText=n,i=yc.test(n)}}else t&&e.removeAttribute("style");Ln in e&&(e[Ln]=i?s.display:"",e[Qi]&&(s.display="none"))}const _o=/\s*!important$/;function Tn(e,t,n){if(V(n))n.forEach(s=>Tn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=xc(e,t);_o.test(n)?e.setProperty(Et(s),n.replace(_o,""),"important"):e[s]=n}}const vo=["Webkit","Moz","ms"],cs={};function xc(e,t){const n=cs[t];if(n)return n;let s=De(t);if(s!=="filter"&&s in e)return cs[t]=s;s=Kn(s);for(let o=0;oas||(Ec.then(()=>as=0),as=Date.now());function Tc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ge(Ac(s,n.value),t,5,[s])};return n.value=e,n.attached=Pc(),n}function Ac(e,t){if(V(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>o=>!o._stopped&&s&&s(o))}else return t}const Co=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Rc=(e,t,n,s,o,i)=>{const l=o==="svg";t==="class"?_c(e,s,l):t==="style"?bc(e,n,s):Vn(t)?Ts(t)||wc(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Oc(e,t,s,l))?(xo(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&bo(e,t,s,l,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!le(s))?xo(e,De(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),bo(e,t,s,l))};function Oc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Co(t)&&U(n));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 o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Co(t)&&le(n)?!1:t in e}const jn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return V(t)?n=>Sn(t,n):t};function Ic(e){e.target.composing=!0}function Eo(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lt=Symbol("_assign"),wt={created(e,{modifiers:{lazy:t,trim:n,number:s}},o){e[Lt]=jn(o);const i=s||o.props&&o.props.type==="number";St(e,t?"change":"input",l=>{if(l.target.composing)return;let r=e.value;n&&(r=r.trim()),i&&(r=An(r)),e[Lt](r)}),n&&St(e,"change",()=>{e.value=e.value.trim()}),t||(St(e,"compositionstart",Ic),St(e,"compositionend",Eo),St(e,"change",Eo))},mounted(e,{value:t}){e.value=t==null?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:o,number:i}},l){if(e[Lt]=jn(l),e.composing)return;const r=(i||e.type==="number")&&!/^0\d/.test(e.value)?An(e.value):e.value,c=t==null?"":t;r!==c&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||o&&e.value.trim()===c)||(e.value=c))}},Po={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const o=Bn(t);St(e,"change",()=>{const i=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?An(Hn(l)):Hn(l));e[Lt](e.multiple?o?new Set(i):i:i[0]),e._assigning=!0,Ls(()=>{e._assigning=!1})}),e[Lt]=jn(s)},mounted(e,{value:t}){To(e,t)},beforeUpdate(e,t,n){e[Lt]=jn(n)},updated(e,{value:t}){e._assigning||To(e,t)}};function To(e,t){const n=e.multiple,s=V(t);if(!(n&&!s&&!Bn(t))){for(let o=0,i=e.options.length;oString(p)===String(r)):l.selected=Cr(t,r)>-1}else l.selected=t.has(r);else if(Wn(Hn(l),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Hn(e){return"_value"in e?e._value:e.value}const Dc=["ctrl","shift","alt","meta"],Mc={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)=>Dc.some(n=>e[`${n}Key`]&&!t.includes(n))},ut=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(o,...i)=>{for(let l=0;l{const t=kc().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=Lc(s);if(!o)return;const i=t._component;!U(i)&&!i.render&&!i.template&&(i.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const l=n(o,!1,$c(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},t};function $c(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Lc(e){return le(e)?document.querySelector(e):e}const Bt=(e,t)=>{const n=e.__vccOpts||e;for(const[s,o]of t)n[s]=o;return n},jc={name:"App"},Hc={id:"app"};function Vc(e,t,n,s,o,i){const l=mn("router-view");return $(),L("div",Hc,[oe(l)])}const Bc=Bt(jc,[["render",Vc]]);/*! + * vue-router v4.5.1 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */const It=typeof document<"u";function Xi(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Uc(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Xi(e.default)}const G=Object.assign;function us(e,t){const n={};for(const s in t){const o=t[s];n[s]=Le(o)?o.map(e):e(o)}return n}const sn=()=>{},Le=Array.isArray,Zi=/#/g,Kc=/&/g,Wc=/\//g,qc=/=/g,zc=/\?/g,er=/\+/g,Gc=/%5B/g,Jc=/%5D/g,tr=/%5E/g,Yc=/%60/g,nr=/%7B/g,Qc=/%7C/g,sr=/%7D/g,Xc=/%20/g;function Ws(e){return encodeURI(""+e).replace(Qc,"|").replace(Gc,"[").replace(Jc,"]")}function Zc(e){return Ws(e).replace(nr,"{").replace(sr,"}").replace(tr,"^")}function ws(e){return Ws(e).replace(er,"%2B").replace(Xc,"+").replace(Zi,"%23").replace(Kc,"%26").replace(Yc,"`").replace(nr,"{").replace(sr,"}").replace(tr,"^")}function ea(e){return ws(e).replace(qc,"%3D")}function ta(e){return Ws(e).replace(Zi,"%23").replace(zc,"%3F")}function na(e){return e==null?"":ta(e).replace(Wc,"%2F")}function fn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const sa=/\/$/,oa=e=>e.replace(sa,"");function fs(e,t,n="/"){let s,o={},i="",l="";const r=t.indexOf("#");let c=t.indexOf("?");return r=0&&(c=-1),c>-1&&(s=t.slice(0,c),i=t.slice(c+1,r>-1?r:t.length),o=e(i)),r>-1&&(s=s||t.slice(0,r),l=t.slice(r,t.length)),s=ca(s!=null?s:t,n),{fullPath:s+(i&&"?")+i+l,path:s,query:o,hash:fn(l)}}function ia(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Ro(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ra(e,t,n){const s=t.matched.length-1,o=n.matched.length-1;return s>-1&&s===o&&Ht(t.matched[s],n.matched[o])&&or(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Ht(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function or(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!la(e[n],t[n]))return!1;return!0}function la(e,t){return Le(e)?Oo(e,t):Le(t)?Oo(t,e):e===t}function Oo(e,t){return Le(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function ca(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),o=s[s.length-1];(o===".."||o===".")&&s.push("");let i=n.length-1,l,r;for(l=0;l1&&i--;else break;return n.slice(0,i).join("/")+"/"+s.slice(l).join("/")}const at={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var dn;(function(e){e.pop="pop",e.push="push"})(dn||(dn={}));var on;(function(e){e.back="back",e.forward="forward",e.unknown=""})(on||(on={}));function aa(e){if(!e)if(It){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),oa(e)}const ua=/^[^#]+#/;function fa(e,t){return e.replace(ua,"#")+t}function da(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const Zn=()=>({left:window.scrollX,top:window.scrollY});function pa(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=da(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Io(e,t){return(history.state?history.state.position-t:-1)+e}const Cs=new Map;function ha(e,t){Cs.set(e,t)}function ga(e){const t=Cs.get(e);return Cs.delete(e),t}let ma=()=>location.protocol+"//"+location.host;function ir(e,t){const{pathname:n,search:s,hash:o}=t,i=e.indexOf("#");if(i>-1){let r=o.includes(e.slice(i))?e.slice(i).length:1,c=o.slice(r);return c[0]!=="/"&&(c="/"+c),Ro(c,"")}return Ro(n,e)+s+o}function _a(e,t,n,s){let o=[],i=[],l=null;const r=({state:m})=>{const _=ir(e,location),A=n.value,O=t.value;let K=0;if(m){if(n.value=_,t.value=m,l&&l===A){l=null;return}K=O?m.position-O.position:0}else s(_);o.forEach(N=>{N(n.value,A,{delta:K,type:dn.pop,direction:K?K>0?on.forward:on.back:on.unknown})})};function c(){l=n.value}function p(m){o.push(m);const _=()=>{const A=o.indexOf(m);A>-1&&o.splice(A,1)};return i.push(_),_}function u(){const{history:m}=window;!m.state||m.replaceState(G({},m.state,{scroll:Zn()}),"")}function h(){for(const m of i)m();i=[],window.removeEventListener("popstate",r),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",r),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:c,listen:p,destroy:h}}function Do(e,t,n,s=!1,o=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:o?Zn():null}}function va(e){const{history:t,location:n}=window,s={value:ir(e,n)},o={value:t.state};o.value||i(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(c,p,u){const h=e.indexOf("#"),m=h>-1?(n.host&&document.querySelector("base")?e:e.slice(h))+c:ma()+e+c;try{t[u?"replaceState":"pushState"](p,"",m),o.value=p}catch(_){console.error(_),n[u?"replace":"assign"](m)}}function l(c,p){const u=G({},t.state,Do(o.value.back,c,o.value.forward,!0),p,{position:o.value.position});i(c,u,!0),s.value=c}function r(c,p){const u=G({},o.value,t.state,{forward:c,scroll:Zn()});i(u.current,u,!0);const h=G({},Do(s.value,c,null),{position:u.position+1},p);i(c,h,!1),s.value=c}return{location:s,state:o,push:r,replace:l}}function ya(e){e=aa(e);const t=va(e),n=_a(e,t.state,t.location,t.replace);function s(i,l=!0){l||n.pauseListeners(),history.go(i)}const o=G({location:"",base:e,go:s,createHref:fa.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function ba(e){return typeof e=="string"||e&&typeof e=="object"}function rr(e){return typeof e=="string"||typeof e=="symbol"}const lr=Symbol("");var Mo;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Mo||(Mo={}));function Vt(e,t){return G(new Error,{type:e,[lr]:!0},t)}function Qe(e,t){return e instanceof Error&&lr in e&&(t==null||!!(e.type&t))}const Fo="[^/]+?",xa={sensitive:!1,strict:!1,start:!0,end:!0},Sa=/[.+*?^${}()[\]/\\]/g;function wa(e,t){const n=G({},xa,t),s=[];let o=n.start?"^":"";const i=[];for(const p of e){const u=p.length?[]:[90];n.strict&&!p.length&&(o+="/");for(let h=0;ht.length?t.length===1&&t[0]===40+40?1:-1:0}function cr(e,t){let n=0;const s=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const Ea={type:0,value:""},Pa=/[a-zA-Z0-9_]/;function Ta(e){if(!e)return[[]];if(e==="/")return[[Ea]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(_){throw new Error(`ERR (${n})/"${p}": ${_}`)}let n=0,s=n;const o=[];let i;function l(){i&&o.push(i),i=[]}let r=0,c,p="",u="";function h(){!p||(n===0?i.push({type:0,value:p}):n===1||n===2||n===3?(i.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${p}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:p,regexp:u,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),p="")}function m(){p+=c}for(;r{l(j)}:sn}function l(h){if(rr(h)){const m=s.get(h);m&&(s.delete(h),n.splice(n.indexOf(m),1),m.children.forEach(l),m.alias.forEach(l))}else{const m=n.indexOf(h);m>-1&&(n.splice(m,1),h.record.name&&s.delete(h.record.name),h.children.forEach(l),h.alias.forEach(l))}}function r(){return n}function c(h){const m=Da(h,n);n.splice(m,0,h),h.record.name&&!Lo(h)&&s.set(h.record.name,h)}function p(h,m){let _,A={},O,K;if("name"in h&&h.name){if(_=s.get(h.name),!_)throw Vt(1,{location:h});K=_.record.name,A=G(No(m.params,_.keys.filter(j=>!j.optional).concat(_.parent?_.parent.keys.filter(j=>j.optional):[]).map(j=>j.name)),h.params&&No(h.params,_.keys.map(j=>j.name))),O=_.stringify(A)}else if(h.path!=null)O=h.path,_=n.find(j=>j.re.test(O)),_&&(A=_.parse(O),K=_.record.name);else{if(_=m.name?s.get(m.name):n.find(j=>j.re.test(m.path)),!_)throw Vt(1,{location:h,currentLocation:m});K=_.record.name,A=G({},m.params,h.params),O=_.stringify(A)}const N=[];let I=_;for(;I;)N.unshift(I.record),I=I.parent;return{name:K,path:O,params:A,matched:N,meta:Ia(N)}}e.forEach(h=>i(h));function u(){n.length=0,s.clear()}return{addRoute:i,resolve:p,removeRoute:l,clearRoutes:u,getRoutes:r,getRecordMatcher:o}}function No(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function $o(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Oa(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Oa(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function Lo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ia(e){return e.reduce((t,n)=>G(t,n.meta),{})}function jo(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}function Da(e,t){let n=0,s=t.length;for(;n!==s;){const i=n+s>>1;cr(e,t[i])<0?s=i:n=i+1}const o=Ma(e);return o&&(s=t.lastIndexOf(o,s-1)),s}function Ma(e){let t=e;for(;t=t.parent;)if(ar(t)&&cr(e,t)===0)return t}function ar({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Fa(e){const t={};if(e===""||e==="?")return t;const s=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;oi&&ws(i)):[s&&ws(s)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function ka(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Le(s)?s.map(o=>o==null?null:""+o):s==null?s:""+s)}return t}const Na=Symbol(""),Vo=Symbol(""),qs=Symbol(""),ur=Symbol(""),Es=Symbol("");function Gt(){let e=[];function t(s){return e.push(s),()=>{const o=e.indexOf(s);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function pt(e,t,n,s,o,i=l=>l()){const l=s&&(s.enterCallbacks[o]=s.enterCallbacks[o]||[]);return()=>new Promise((r,c)=>{const p=m=>{m===!1?c(Vt(4,{from:n,to:t})):m instanceof Error?c(m):ba(m)?c(Vt(2,{from:t,to:m})):(l&&s.enterCallbacks[o]===l&&typeof m=="function"&&l.push(m),r())},u=i(()=>e.call(s&&s.instances[o],t,n,p));let h=Promise.resolve(u);e.length<3&&(h=h.then(p)),h.catch(m=>c(m))})}function ds(e,t,n,s,o=i=>i()){const i=[];for(const l of e)for(const r in l.components){let c=l.components[r];if(!(t!=="beforeRouteEnter"&&!l.instances[r]))if(Xi(c)){const u=(c.__vccOpts||c)[t];u&&i.push(pt(u,n,s,l,r,o))}else{let p=c();i.push(()=>p.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${r}" at "${l.path}"`);const h=Uc(u)?u.default:u;l.mods[r]=u,l.components[r]=h;const _=(h.__vccOpts||h)[t];return _&&pt(_,n,s,l,r,o)()}))}}return i}function Bo(e){const t=nt(qs),n=nt(ur),s=ke(()=>{const c=kt(e.to);return t.resolve(c)}),o=ke(()=>{const{matched:c}=s.value,{length:p}=c,u=c[p-1],h=n.matched;if(!u||!h.length)return-1;const m=h.findIndex(Ht.bind(null,u));if(m>-1)return m;const _=Uo(c[p-2]);return p>1&&Uo(u)===_&&h[h.length-1].path!==_?h.findIndex(Ht.bind(null,c[p-2])):m}),i=ke(()=>o.value>-1&&Va(n.params,s.value.params)),l=ke(()=>o.value>-1&&o.value===n.matched.length-1&&or(n.params,s.value.params));function r(c={}){if(Ha(c)){const p=t[kt(e.replace)?"replace":"push"](kt(e.to)).catch(sn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>p),p}return Promise.resolve()}return{route:s,href:ke(()=>s.value.href),isActive:i,isExactActive:l,navigate:r}}function $a(e){return e.length===1?e[0]:e}const La=wi({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Bo,setup(e,{slots:t}){const n=zn(Bo(e)),{options:s}=nt(qs),o=ke(()=>({[Ko(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[Ko(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&$a(t.default(n));return e.custom?i:Ji("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},i)}}}),ja=La;function Ha(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Va(e,t){for(const n in t){const s=t[n],o=e[n];if(typeof s=="string"){if(s!==o)return!1}else if(!Le(o)||o.length!==s.length||s.some((i,l)=>i!==o[l]))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ko=(e,t,n)=>e!=null?e:t!=null?t:n,Ba=wi({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=nt(Es),o=ke(()=>e.route||s.value),i=nt(Vo,0),l=ke(()=>{let p=kt(i);const{matched:u}=o.value;let h;for(;(h=u[p])&&!h.components;)p++;return p}),r=ke(()=>o.value.matched[l.value]);wn(Vo,ke(()=>l.value+1)),wn(Na,r),wn(Es,o);const c=qr();return Cn(()=>[c.value,r.value,e.name],([p,u,h],[m,_,A])=>{u&&(u.instances[h]=p,_&&_!==u&&p&&p===m&&(u.leaveGuards.size||(u.leaveGuards=_.leaveGuards),u.updateGuards.size||(u.updateGuards=_.updateGuards))),p&&u&&(!_||!Ht(u,_)||!m)&&(u.enterCallbacks[h]||[]).forEach(O=>O(p))},{flush:"post"}),()=>{const p=o.value,u=e.name,h=r.value,m=h&&h.components[u];if(!m)return Wo(n.default,{Component:m,route:p});const _=h.props[u],A=_?_===!0?p.params:typeof _=="function"?_(p):_:null,K=Ji(m,G({},A,t,{onVnodeUnmounted:N=>{N.component.isUnmounted&&(h.instances[u]=null)},ref:c}));return Wo(n.default,{Component:K,route:p})||K}}});function Wo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Ua=Ba;function Ka(e){const t=Ra(e.routes,e),n=e.parseQuery||Fa,s=e.stringifyQuery||Ho,o=e.history,i=Gt(),l=Gt(),r=Gt(),c=zr(at);let p=at;It&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=us.bind(null,y=>""+y),h=us.bind(null,na),m=us.bind(null,fn);function _(y,R){let P,D;return rr(y)?(P=t.getRecordMatcher(y),D=R):D=y,t.addRoute(D,P)}function A(y){const R=t.getRecordMatcher(y);R&&t.removeRoute(R)}function O(){return t.getRoutes().map(y=>y.record)}function K(y){return!!t.getRecordMatcher(y)}function N(y,R){if(R=G({},R||c.value),typeof y=="string"){const d=fs(n,y,R.path),g=t.resolve({path:d.path},R),b=o.createHref(d.fullPath);return G(d,g,{params:m(g.params),hash:fn(d.hash),redirectedFrom:void 0,href:b})}let P;if(y.path!=null)P=G({},y,{path:fs(n,y.path,R.path).path});else{const d=G({},y.params);for(const g in d)d[g]==null&&delete d[g];P=G({},y,{params:h(d)}),R.params=h(R.params)}const D=t.resolve(P,R),z=y.hash||"";D.params=u(m(D.params));const ie=ia(s,G({},y,{hash:Zc(z),path:D.path})),a=o.createHref(ie);return G({fullPath:ie,hash:z,query:s===Ho?ka(y.query):y.query||{}},D,{redirectedFrom:void 0,href:a})}function I(y){return typeof y=="string"?fs(n,y,c.value.path):G({},y)}function j(y,R){if(p!==y)return Vt(8,{from:R,to:y})}function M(y){return re(y)}function Z(y){return M(G(I(y),{replace:!0}))}function fe(y){const R=y.matched[y.matched.length-1];if(R&&R.redirect){const{redirect:P}=R;let D=typeof P=="function"?P(y):P;return typeof D=="string"&&(D=D.includes("?")||D.includes("#")?D=I(D):{path:D},D.params={}),G({query:y.query,hash:y.hash,params:D.path!=null?{}:y.params},D)}}function re(y,R){const P=p=N(y),D=c.value,z=y.state,ie=y.force,a=y.replace===!0,d=fe(P);if(d)return re(G(I(d),{state:typeof d=="object"?G({},z,d.state):z,force:ie,replace:a}),R||P);const g=P;g.redirectedFrom=R;let b;return!ie&&ra(s,D,P)&&(b=Vt(16,{to:g,from:D}),Be(D,D,!0,!1)),(b?Promise.resolve(b):He(g,D)).catch(v=>Qe(v)?Qe(v,2)?v:ct(v):q(v,g,D)).then(v=>{if(v){if(Qe(v,2))return re(G({replace:a},I(v.to),{state:typeof v.to=="object"?G({},z,v.to.state):z,force:ie}),R||g)}else v=vt(g,D,!0,a,z);return lt(g,D,v),v})}function je(y,R){const P=j(y,R);return P?Promise.reject(P):Promise.resolve()}function rt(y){const R=At.values().next().value;return R&&typeof R.runWithContext=="function"?R.runWithContext(y):y()}function He(y,R){let P;const[D,z,ie]=Wa(y,R);P=ds(D.reverse(),"beforeRouteLeave",y,R);for(const d of D)d.leaveGuards.forEach(g=>{P.push(pt(g,y,R))});const a=je.bind(null,y,R);return P.push(a),Oe(P).then(()=>{P=[];for(const d of i.list())P.push(pt(d,y,R));return P.push(a),Oe(P)}).then(()=>{P=ds(z,"beforeRouteUpdate",y,R);for(const d of z)d.updateGuards.forEach(g=>{P.push(pt(g,y,R))});return P.push(a),Oe(P)}).then(()=>{P=[];for(const d of ie)if(d.beforeEnter)if(Le(d.beforeEnter))for(const g of d.beforeEnter)P.push(pt(g,y,R));else P.push(pt(d.beforeEnter,y,R));return P.push(a),Oe(P)}).then(()=>(y.matched.forEach(d=>d.enterCallbacks={}),P=ds(ie,"beforeRouteEnter",y,R,rt),P.push(a),Oe(P))).then(()=>{P=[];for(const d of l.list())P.push(pt(d,y,R));return P.push(a),Oe(P)}).catch(d=>Qe(d,8)?d:Promise.reject(d))}function lt(y,R,P){r.list().forEach(D=>rt(()=>D(y,R,P)))}function vt(y,R,P,D,z){const ie=j(y,R);if(ie)return ie;const a=R===at,d=It?history.state:{};P&&(D||a?o.replace(y.fullPath,G({scroll:a&&d&&d.scroll},z)):o.push(y.fullPath,z)),c.value=y,Be(y,R,P,a),ct()}let Ve;function Ut(){Ve||(Ve=o.listen((y,R,P)=>{if(!vn.listening)return;const D=N(y),z=fe(D);if(z){re(G(z,{replace:!0,force:!0}),D).catch(sn);return}p=D;const ie=c.value;It&&ha(Io(ie.fullPath,P.delta),Zn()),He(D,ie).catch(a=>Qe(a,12)?a:Qe(a,2)?(re(G(I(a.to),{force:!0}),D).then(d=>{Qe(d,20)&&!P.delta&&P.type===dn.pop&&o.go(-1,!1)}).catch(sn),Promise.reject()):(P.delta&&o.go(-P.delta,!1),q(a,D,ie))).then(a=>{a=a||vt(D,ie,!1),a&&(P.delta&&!Qe(a,8)?o.go(-P.delta,!1):P.type===dn.pop&&Qe(a,20)&&o.go(-1,!1)),lt(D,ie,a)}).catch(sn)}))}let Pt=Gt(),ce=Gt(),X;function q(y,R,P){ct(y);const D=ce.list();return D.length?D.forEach(z=>z(y,R,P)):console.error(y),Promise.reject(y)}function Je(){return X&&c.value!==at?Promise.resolve():new Promise((y,R)=>{Pt.add([y,R])})}function ct(y){return X||(X=!y,Ut(),Pt.list().forEach(([R,P])=>y?P(y):R()),Pt.reset()),y}function Be(y,R,P,D){const{scrollBehavior:z}=e;if(!It||!z)return Promise.resolve();const ie=!P&&ga(Io(y.fullPath,0))||(D||!P)&&history.state&&history.state.scroll||null;return Ls().then(()=>z(y,R,ie)).then(a=>a&&pa(a)).catch(a=>q(a,y,R))}const be=y=>o.go(y);let Tt;const At=new Set,vn={currentRoute:c,listening:!0,addRoute:_,removeRoute:A,clearRoutes:t.clearRoutes,hasRoute:K,getRoutes:O,resolve:N,options:e,push:M,replace:Z,go:be,back:()=>be(-1),forward:()=>be(1),beforeEach:i.add,beforeResolve:l.add,afterEach:r.add,onError:ce.add,isReady:Je,install(y){const R=this;y.component("RouterLink",ja),y.component("RouterView",Ua),y.config.globalProperties.$router=R,Object.defineProperty(y.config.globalProperties,"$route",{enumerable:!0,get:()=>kt(c)}),It&&!Tt&&c.value===at&&(Tt=!0,M(o.location).catch(z=>{}));const P={};for(const z in at)Object.defineProperty(P,z,{get:()=>c.value[z],enumerable:!0});y.provide(qs,R),y.provide(ur,hi(P)),y.provide(Es,c);const D=y.unmount;At.add(y),y.unmount=function(){At.delete(y),At.size<1&&(p=at,Ve&&Ve(),Ve=null,c.value=at,Tt=!1,X=!1),D()}}};function Oe(y){return y.reduce((R,P)=>R.then(()=>rt(P)),Promise.resolve())}return vn}function Wa(e,t){const n=[],s=[],o=[],i=Math.max(t.matched.length,e.matched.length);for(let l=0;lHt(p,r))?s.push(r):n.push(r));const c=e.matched[l];c&&(t.matched.find(p=>Ht(p,c))||o.push(c))}return[n,s,o]}const qa={name:"Login",data(){return{loginForm:{username:"",password:""},loading:!1,error:"",success:""}},methods:{async handleLogin(){this.loading=!0,this.error="",this.success="";try{const e=await fetch("/api/v1/user/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(this.loginForm)}),t=await e.json();e.ok&&t.code===0?(this.success=t.message,localStorage.setItem("authToken",t.data.token),localStorage.setItem("userId",t.data.id),localStorage.setItem("username",t.data.username),setTimeout(()=>{this.$router.push("/dashboard")},500)):this.error=t.message||"\u767B\u5F55\u5931\u8D25"}catch{this.error="\u7F51\u7EDC\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"}finally{this.loading=!1}}}},za={class:"login-container"},Ga={class:"form-group"},Ja={class:"form-group"},Ya=["disabled"],Qa={key:0,class:"error-message"},Xa={key:1,class:"success-message"};function Za(e,t,n,s,o,i){return $(),L("div",za,[t[5]||(t[5]=f("div",{class:"logo"},"\u{1F437}",-1)),t[6]||(t[6]=f("h1",null,"\u732A\u573A\u7BA1\u7406\u7CFB\u7EDF",-1)),t[7]||(t[7]=f("p",{class:"subtitle"},"\u8BF7\u767B\u5F55\u60A8\u7684\u8D26\u6237",-1)),f("form",{onSubmit:t[2]||(t[2]=ut((...l)=>i.handleLogin&&i.handleLogin(...l),["prevent"]))},[f("div",Ga,[t[3]||(t[3]=f("label",{for:"username"},"\u7528\u6237\u540D",-1)),Fe(f("input",{type:"text",id:"username","onUpdate:modelValue":t[0]||(t[0]=l=>o.loginForm.username=l),required:"",placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u540D"},null,512),[[wt,o.loginForm.username]])]),f("div",Ja,[t[4]||(t[4]=f("label",{for:"password"},"\u5BC6\u7801",-1)),Fe(f("input",{type:"password",id:"password","onUpdate:modelValue":t[1]||(t[1]=l=>o.loginForm.password=l),required:"",placeholder:"\u8BF7\u8F93\u5165\u5BC6\u7801"},null,512),[[wt,o.loginForm.password]])]),f("button",{type:"submit",disabled:o.loading},F(o.loading?"\u767B\u5F55\u4E2D...":"\u767B\u5F55"),9,Ya)],32),o.error?($(),L("div",Qa,F(o.error),1)):ae("",!0),o.success?($(),L("div",Xa,F(o.success),1)):ae("",!0)])}const eu=Bt(qa,[["render",Za],["__scopeId","data-v-bb5c78dc"]]);const tu={name:"Dashboard",data(){return{username:localStorage.getItem("username")||"\u7BA1\u7406\u5458"}},methods:{logout(){localStorage.removeItem("authToken"),localStorage.removeItem("userId"),localStorage.removeItem("username"),this.$router.push("/")},controlDevice(e,t){alert(`\u6B63\u5728${t==="on"?"\u5F00\u542F":"\u5173\u95ED"}${e==="fan"?"\u98CE\u673A":"\u6C34\u5E18"}`)}}},nu={class:"header"},su={class:"user-info"},ou={class:"nav"},iu={class:"container"},ru={class:"device-control"},lu={class:"control-grid"},cu={class:"control-item"},au={class:"control-buttons"},uu={class:"control-item"},fu={class:"control-buttons"};function du(e,t,n,s,o,i){const l=mn("router-link");return $(),L("div",null,[f("div",nu,[t[5]||(t[5]=f("h1",null,"\u{1F437} \u732A\u573A\u7BA1\u7406\u7CFB\u7EDF",-1)),f("div",su,[f("span",null,F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...r)=>i.logout&&i.logout(...r))},"\u9000\u51FA\u767B\u5F55")])]),f("div",ou,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard",class:"active"},{default:we(()=>[...t[6]||(t[6]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device"},{default:we(()=>[...t[7]||(t[7]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan"},{default:we(()=>[...t[8]||(t[8]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),f("div",iu,[t[12]||(t[12]=f("div",{class:"dashboard-grid"},[f("div",{class:"card"},[f("h3",null,"\u{1F4C8} \u73AF\u5883\u76D1\u63A7"),f("p",null,"\u5B9E\u65F6\u76D1\u63A7\u732A\u820D\u73AF\u5883\u53C2\u6570\uFF0C\u5305\u62EC\u6E29\u5EA6\u3001\u6E7F\u5EA6\u3001\u6C28\u6C14\u6D53\u5EA6\u7B49\u5173\u952E\u6307\u6807\u3002")]),f("div",{class:"card"},[f("h3",null,"\u{1F514} \u544A\u8B66\u4FE1\u606F"),f("p",null,"\u67E5\u770B\u7CFB\u7EDF\u544A\u8B66\u548C\u5F02\u5E38\u60C5\u51B5\uFF0C\u53CA\u65F6\u5904\u7406\u5404\u79CD\u8BBE\u5907\u6545\u969C\u548C\u73AF\u5883\u5F02\u5E38\u3002")]),f("div",{class:"card"},[f("h3",null,"\u{1F4CA} \u6570\u636E\u5206\u6790"),f("p",null,"\u5206\u6790\u5386\u53F2\u6570\u636E\uFF0C\u751F\u6210\u8D8B\u52BF\u56FE\u8868\uFF0C\u4E3A\u517B\u6B96\u51B3\u7B56\u63D0\u4F9B\u6570\u636E\u652F\u6301\u3002")])],-1)),f("div",ru,[t[11]||(t[11]=f("h3",null,"\u2699\uFE0F \u8BBE\u5907\u63A7\u5236",-1)),f("div",lu,[f("div",cu,[t[9]||(t[9]=f("h4",null,"\u98CE\u673A\u63A7\u5236",-1)),f("div",au,[f("button",{class:"control-btn on-btn",onClick:t[1]||(t[1]=r=>i.controlDevice("fan","on"))},"\u5F00\u542F"),f("button",{class:"control-btn off-btn",onClick:t[2]||(t[2]=r=>i.controlDevice("fan","off"))},"\u5173\u95ED")])]),f("div",uu,[t[10]||(t[10]=f("h4",null,"\u6C34\u5E18\u63A7\u5236",-1)),f("div",fu,[f("button",{class:"control-btn on-btn",onClick:t[3]||(t[3]=r=>i.controlDevice("water_curtain","on"))},"\u5F00\u542F"),f("button",{class:"control-btn off-btn",onClick:t[4]||(t[4]=r=>i.controlDevice("water_curtain","off"))},"\u5173\u95ED")])])])])])])}const pu=Bt(tu,[["render",du],["__scopeId","data-v-904f2d71"]]);const hu={name:"Device",data(){return{username:localStorage.getItem("username")||"\u7BA1\u7406\u5458",devices:[],showModal:!1,editingDevice:null,deviceForm:{id:null,name:"",type:"",parent_id:null,address:null,bus_number:null,device_address:null},expandedNodes:new Set}},computed:{relayDevices(){return this.devices.filter(e=>e.type==="relay")}},mounted(){this.loadDevices()},methods:{logout(){localStorage.removeItem("authToken"),localStorage.removeItem("userId"),localStorage.removeItem("username"),this.$router.push("/")},toggleNode(e){this.expandedNodes.has(e)?this.expandedNodes.delete(e):this.expandedNodes.add(e)},getControllerDevices(e){return this.devices.filter(t=>t.parent_id===e&&(t.type==="pig_pen_controller"||t.type==="feed_mill_controller"))},getLeafDevices(e){return this.devices.filter(t=>t.parent_id===e&&(t.type==="fan"||t.type==="water_curtain"))},getDeviceTypeText(e){return{relay:"\u4E2D\u7EE7",pig_pen_controller:"\u732A\u820D\u4E3B\u63A7",feed_mill_controller:"\u505A\u6599\u8F66\u95F4\u4E3B\u63A7",fan:"\u98CE\u673A",water_curtain:"\u6C34\u5E18"}[e]||e},getParentDevices(e){return e==="pig_pen_controller"||e==="feed_mill_controller"?this.devices.filter(t=>t.type==="relay"):e==="fan"||e==="water_curtain"?this.devices.filter(t=>t.type==="pig_pen_controller"||t.type==="feed_mill_controller"):[]},getParentDevicesWithDisplayName(e){const t=this.getParentDevices(e);return e==="pig_pen_controller"||e==="feed_mill_controller"?t.map(n=>({...n,display_name:n.name})):e==="fan"||e==="water_curtain"?t.map(n=>{const s=this.devices.find(i=>i.id===n.parent_id),o=s?s.name:"\u672A\u77E5\u4E2D\u7EE7";return{...n,display_name:`${o} - ${n.name}`}}):[]},async loadDevices(){try{const e=await fetch("/api/v1/device/list",{headers:{Authorization:"Bearer "+localStorage.getItem("authToken")}}),t=await e.json();e.ok&&t.code===0?(this.devices=t.data.devices,this.expandAllNodes()):console.error("\u83B7\u53D6\u8BBE\u5907\u5217\u8868\u5931\u8D25:",t.message)}catch(e){console.error("\u83B7\u53D6\u8BBE\u5907\u5217\u8868\u5931\u8D25:",e)}},expandAllNodes(){this.expandedNodes.clear(),this.relayDevices.forEach(e=>{this.expandedNodes.add(e.id),this.getControllerDevices(e.id).forEach(n=>{this.expandedNodes.add(n.id)})})},openAddDeviceModal(){this.editingDevice=null,this.deviceForm={id:null,name:"",type:"",parent_id:null,address:null,bus_number:null,device_address:null},this.showModal=!0},editDevice(e){if(this.editingDevice=e,this.deviceForm={...e},(e.type==="fan"||e.type==="water_curtain")&&e.address){const t=e.address.split(":");t.length===2?(this.deviceForm.bus_number=parseInt(t[0]),this.deviceForm.device_address=t[1]):this.deviceForm.device_address=e.address}this.showModal=!0},initializeDeviceForm(){return{id:null,name:"",type:"",parent_id:null,address:null}},closeDeviceModal(){this.showModal=!1},async saveDevice(){if(!this.deviceForm.name||!this.deviceForm.type){alert("\u8BF7\u586B\u5199\u5FC5\u586B\u5B57\u6BB5");return}if(this.deviceForm.type!=="relay"&&!this.deviceForm.parent_id){alert("\u8BF7\u9009\u62E9\u4E0A\u7EA7\u8BBE\u5907");return}try{let e,t;const n={name:this.deviceForm.name,type:this.deviceForm.type,parent_id:this.deviceForm.parent_id,address:this.deviceForm.address,bus_number:this.deviceForm.bus_number,device_address:this.deviceForm.device_address};this.editingDevice?(e="/api/v1/device/update",t="POST",n.id=this.deviceForm.id):(e="/api/v1/device/create",t="POST");const s=await fetch(e,{method:t,headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify(n)}),o=await s.json();s.ok&&o.code===0?(await this.loadDevices(),this.closeDeviceModal()):alert("\u4FDD\u5B58\u5931\u8D25: "+o.message)}catch(e){console.error("\u4FDD\u5B58\u8BBE\u5907\u5931\u8D25:",e),alert("\u4FDD\u5B58\u8BBE\u5907\u5931\u8D25: "+e.message)}},async deleteDevice(e){if(!!confirm("\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u8BBE\u5907\u5417\uFF1F"))try{const t=await fetch("/api/v1/device/delete",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify({id:e})}),n=await t.json();t.ok&&n.code===0?await this.loadDevices():alert("\u5220\u9664\u5931\u8D25: "+n.message)}catch(t){console.error("\u5220\u9664\u8BBE\u5907\u5931\u8D25:",t),alert("\u5220\u9664\u8BBE\u5907\u5931\u8D25: "+t.message)}},toggleParentField(){this.deviceForm.type==="relay"&&(this.deviceForm.parent_id=null)},toggleNode(e){this.expandedNodes.has(e)?this.expandedNodes.delete(e):this.expandedNodes.add(e)}}},gu={class:"device-management"},mu={class:"header"},_u={class:"user-info"},vu={class:"nav"},yu={class:"main-content"},bu={class:"toolbar"},xu={class:"device-tree"},Su={key:0,class:"no-devices"},wu={key:1},Cu=["onClick"],Eu={class:"node-info"},Pu={class:"toggle-icon"},Tu={class:"node-title"},Au={class:"node-type relay-type"},Ru={key:0,class:"node-address"},Ou={class:"node-actions"},Iu=["onClick"],Du=["onClick"],Mu={class:"children-container"},Fu=["onClick"],ku={class:"node-info"},Nu={class:"toggle-icon"},$u={class:"node-title"},Lu={class:"node-type controller-type"},ju={key:0,class:"node-address"},Hu={class:"node-actions"},Vu=["onClick"],Bu=["onClick"],Uu={class:"children-container"},Ku={class:"node-header"},Wu={class:"node-info"},qu={class:"node-title"},zu={class:"node-type device-type"},Gu={key:0,class:"node-address"},Ju={class:"node-actions"},Yu=["onClick"],Qu=["onClick"],Xu={key:0,class:"modal"},Zu={class:"modal-content"},ef={class:"modal-header"},tf={class:"modal-body"},nf={class:"form-group"},sf={class:"form-group"},of={key:0,class:"form-group"},rf={key:1,class:"form-group"},lf={key:2,class:"form-group"},cf={key:3,class:"form-group"},af=["value"],uf={class:"modal-footer"};function ff(e,t,n,s,o,i){const l=mn("router-link");return $(),L("div",gu,[f("header",mu,[t[14]||(t[14]=f("h1",null,"\u8BBE\u5907\u7BA1\u7406",-1)),f("div",_u,[f("span",null,"\u6B22\u8FCE, "+F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...r)=>i.logout&&i.logout(...r))},"\u9000\u51FA")])]),f("nav",vu,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard"},{default:we(()=>[...t[15]||(t[15]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device",class:"active"},{default:we(()=>[...t[16]||(t[16]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan"},{default:we(()=>[...t[17]||(t[17]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),f("main",yu,[f("div",bu,[f("button",{class:"btn btn-primary",onClick:t[1]||(t[1]=(...r)=>i.openAddDeviceModal&&i.openAddDeviceModal(...r))},"\u6DFB\u52A0\u8BBE\u5907")]),f("div",xu,[o.devices.length===0?($(),L("div",Su," \u6682\u65E0\u8BBE\u5907\u6570\u636E ")):($(),L("div",wu,[($(!0),L(pe,null,ht(i.relayDevices,r=>($(),L("div",{key:r.id,class:"tree-node relay-node"},[f("div",{class:"node-header",onClick:c=>i.toggleNode(r.id)},[f("div",Eu,[f("span",Pu,F(o.expandedNodes.has(r.id)?"\u25BC":"\u25BA"),1),f("span",Tu,F(r.name),1),f("span",Au,F(i.getDeviceTypeText(r.type)),1),r.address?($(),L("span",Ru,"["+F(r.address)+"]",1)):ae("",!0),f("span",{class:tt(["node-status",{"status-active":r.active,"status-inactive":!r.active}])},F(r.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),f("div",Ou,[f("button",{class:"action-btn edit-btn",onClick:ut(c=>i.editDevice(r),["stop"])},"\u7F16\u8F91",8,Iu),f("button",{class:"action-btn delete-btn",onClick:ut(c=>i.deleteDevice(r.id),["stop"])},"\u5220\u9664",8,Du)])],8,Cu),Fe(f("div",Mu,[($(!0),L(pe,null,ht(i.getControllerDevices(r.id),c=>($(),L("div",{key:c.id,class:"tree-node controller-node"},[f("div",{class:"node-header",onClick:p=>i.toggleNode(c.id)},[f("div",ku,[f("span",Nu,F(o.expandedNodes.has(c.id)?"\u25BC":"\u25BA"),1),f("span",$u,F(c.name),1),f("span",Lu,F(i.getDeviceTypeText(c.type)),1),c.address?($(),L("span",ju,"["+F(c.address)+"]",1)):ae("",!0),f("span",{class:tt(["node-status",{"status-active":c.active,"status-inactive":!c.active}])},F(c.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),f("div",Hu,[f("button",{class:"action-btn edit-btn",onClick:ut(p=>i.editDevice(c),["stop"])},"\u7F16\u8F91",8,Vu),f("button",{class:"action-btn delete-btn",onClick:ut(p=>i.deleteDevice(c.id),["stop"])},"\u5220\u9664",8,Bu)])],8,Fu),Fe(f("div",Uu,[($(!0),L(pe,null,ht(i.getLeafDevices(c.id),p=>($(),L("div",{key:p.id,class:"tree-node device-node"},[f("div",Ku,[f("div",Wu,[f("span",qu,F(p.name),1),f("span",zu,F(i.getDeviceTypeText(p.type)),1),p.address?($(),L("span",Gu,"["+F(p.address)+"]",1)):ae("",!0),f("span",{class:tt(["node-status",{"status-active":p.active,"status-inactive":!p.active}])},F(p.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),f("div",Ju,[f("button",{class:"action-btn edit-btn",onClick:ut(u=>i.editDevice(p),["stop"])},"\u7F16\u8F91",8,Yu),f("button",{class:"action-btn delete-btn",onClick:ut(u=>i.deleteDevice(p.id),["stop"])},"\u5220\u9664",8,Qu)])])]))),128))],512),[[mo,o.expandedNodes.has(c.id)]])]))),128))],512),[[mo,o.expandedNodes.has(r.id)]])]))),128))]))])]),o.showModal?($(),L("div",Xu,[f("div",Zu,[f("div",ef,[f("h3",null,F(o.editingDevice?"\u7F16\u8F91\u8BBE\u5907":"\u6DFB\u52A0\u8BBE\u5907"),1),f("button",{class:"close-btn",onClick:t[2]||(t[2]=(...r)=>i.closeDeviceModal&&i.closeDeviceModal(...r))},"\xD7")]),f("div",tf,[f("form",{onSubmit:t[11]||(t[11]=ut((...r)=>i.saveDevice&&i.saveDevice(...r),["prevent"]))},[Fe(f("input",{type:"hidden","onUpdate:modelValue":t[3]||(t[3]=r=>o.deviceForm.id=r)},null,512),[[wt,o.deviceForm.id]]),f("div",nf,[t[18]||(t[18]=f("label",{for:"deviceName"},"\u8BBE\u5907\u540D\u79F0",-1)),Fe(f("input",{type:"text",id:"deviceName","onUpdate:modelValue":t[4]||(t[4]=r=>o.deviceForm.name=r),required:""},null,512),[[wt,o.deviceForm.name]])]),f("div",sf,[t[20]||(t[20]=f("label",{for:"deviceType"},"\u8BBE\u5907\u7C7B\u578B",-1)),Fe(f("select",{id:"deviceType","onUpdate:modelValue":t[5]||(t[5]=r=>o.deviceForm.type=r),required:"",onChange:t[6]||(t[6]=(...r)=>i.toggleParentField&&i.toggleParentField(...r))},[...t[19]||(t[19]=[ec('',6)])],544),[[Po,o.deviceForm.type]])]),(o.deviceForm.type==="fan"||o.deviceForm.type==="water_curtain")&&o.deviceForm.type!==""?($(),L("div",of,[t[21]||(t[21]=f("label",{for:"busNumber"},"485\u603B\u7EBF\u53F7",-1)),Fe(f("input",{type:"number",id:"busNumber","onUpdate:modelValue":t[7]||(t[7]=r=>o.deviceForm.bus_number=r),placeholder:"\u8BF7\u8F93\u5165485\u603B\u7EBF\u53F7"},null,512),[[wt,o.deviceForm.bus_number,void 0,{number:!0}]])])):ae("",!0),(o.deviceForm.type==="fan"||o.deviceForm.type==="water_curtain")&&o.deviceForm.type!==""?($(),L("div",rf,[t[22]||(t[22]=f("label",{for:"device485Address"},"485\u8BBE\u5907\u5730\u5740",-1)),Fe(f("input",{type:"text",id:"device485Address","onUpdate:modelValue":t[8]||(t[8]=r=>o.deviceForm.device_address=r),placeholder:"\u8BF7\u8F93\u5165485\u8BBE\u5907\u5730\u5740"},null,512),[[wt,o.deviceForm.device_address]])])):ae("",!0),o.deviceForm.type!=="relay"&&o.deviceForm.type!==""&&o.deviceForm.type!=="fan"&&o.deviceForm.type!=="water_curtain"?($(),L("div",lf,[t[23]||(t[23]=f("label",{for:"deviceAddress"},"\u8BBE\u5907\u5730\u5740",-1)),Fe(f("input",{type:"text",id:"deviceAddress","onUpdate:modelValue":t[9]||(t[9]=r=>o.deviceForm.address=r),placeholder:"\u8BF7\u8F93\u5165\u8BBE\u5907\u5730\u5740"},null,512),[[wt,o.deviceForm.address]])])):ae("",!0),o.deviceForm.type!=="relay"&&o.deviceForm.type!==""?($(),L("div",cf,[t[25]||(t[25]=f("label",{for:"parentId"},"\u4E0A\u7EA7\u8BBE\u5907",-1)),Fe(f("select",{id:"parentId","onUpdate:modelValue":t[10]||(t[10]=r=>o.deviceForm.parent_id=r)},[t[24]||(t[24]=f("option",{value:""},"\u8BF7\u9009\u62E9\u4E0A\u7EA7\u8BBE\u5907",-1)),($(!0),L(pe,null,ht(i.getParentDevicesWithDisplayName(o.deviceForm.type),r=>($(),L("option",{key:r.id,value:r.id},F(r.display_name),9,af))),128))],512),[[Po,o.deviceForm.parent_id]])])):ae("",!0)],32)]),f("div",uf,[f("button",{class:"btn btn-secondary",onClick:t[12]||(t[12]=(...r)=>i.closeDeviceModal&&i.closeDeviceModal(...r))},"\u53D6\u6D88"),f("button",{class:"btn btn-primary",onClick:t[13]||(t[13]=(...r)=>i.saveDevice&&i.saveDevice(...r))},"\u4FDD\u5B58")])])])):ae("",!0)])}const df=Bt(hu,[["render",ff],["__scopeId","data-v-a2f9bd42"]]);const pf={name:"FeedPlan",data(){return{username:"",plans:[],loading:!0}},mounted(){this.username=localStorage.getItem("username")||"\u7BA1\u7406\u5458",this.loadPlans()},methods:{async loadPlans(){this.loading=!0;try{const e=await fetch("/api/v1/feed/plan/list",{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")}}),t=await e.json();e.ok&&t.code===0?this.plans=t.data.plans||[]:console.error("\u83B7\u53D6\u9972\u5582\u8BA1\u5212\u5217\u8868\u5931\u8D25:",t.message)}catch(e){console.error("\u83B7\u53D6\u9972\u5582\u8BA1\u5212\u5217\u8868\u5931\u8D25:",e)}finally{this.loading=!1}},viewDetail(e){this.$router.push(`/feed/plan/detail/${e}`)},createPlan(){alert("\u521B\u5EFA\u8BA1\u5212\u529F\u80FD\u5F85\u5B9E\u73B0")},editPlan(e){alert(`\u7F16\u8F91\u8BA1\u5212: ${e.name}`)},async deletePlan(e){var t,n,s;if(!!confirm("\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u9972\u5582\u8BA1\u5212\u5417\uFF1F"))try{const o=await fetch("/api/v1/feed/plan/delete",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify({id:e})}),i=await o.json();o.ok&&i.code===0?(await this.loadPlans(),(t=this.$message)!=null&&t.success("\u5220\u9664\u6210\u529F")||alert("\u5220\u9664\u6210\u529F")):(n=this.$message)!=null&&n.error("\u5220\u9664\u5931\u8D25: "+i.message)||alert("\u5220\u9664\u5931\u8D25: "+i.message)}catch(o){console.error("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25:",o),(s=this.$message)!=null&&s.error("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25: "+o.message)||alert("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25: "+o.message)}},logout(){localStorage.removeItem("authToken"),localStorage.removeItem("username"),this.$router.push("/")}}},hf={class:"feed-plan-management"},gf={class:"header"},mf={class:"user-info"},_f={class:"nav"},vf={class:"main-content"},yf={class:"toolbar"},bf={class:"plan-list"},xf={key:0,class:"loading"},Sf={key:1,class:"no-plans"},wf={key:2,class:"plans-container"},Cf={class:"plan-header"},Ef={class:"plan-details"},Pf={class:"plan-description"},Tf={class:"plan-meta"},Af={class:"plan-type"},Rf={key:0,class:"plan-cron"},Of={class:"plan-actions"},If=["onClick"],Df=["onClick"],Mf=["onClick"];function Ff(e,t,n,s,o,i){const l=mn("router-link");return $(),L("div",hf,[f("div",gf,[t[2]||(t[2]=f("h1",null,"\u9972\u5582\u8BA1\u5212\u7BA1\u7406",-1)),f("div",mf,[f("span",null,"\u6B22\u8FCE, "+F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...r)=>i.logout&&i.logout(...r))},"\u9000\u51FA")])]),f("nav",_f,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard"},{default:we(()=>[...t[3]||(t[3]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device"},{default:we(()=>[...t[4]||(t[4]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan",class:"active"},{default:we(()=>[...t[5]||(t[5]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),f("main",vf,[f("div",yf,[f("button",{class:"btn btn-primary",onClick:t[1]||(t[1]=(...r)=>i.createPlan&&i.createPlan(...r))},"\u521B\u5EFA\u8BA1\u5212")]),f("div",bf,[o.loading?($(),L("div",xf," \u52A0\u8F7D\u4E2D... ")):o.plans.length===0?($(),L("div",Sf," \u6682\u65E0\u9972\u5582\u8BA1\u5212 ")):($(),L("div",wf,[($(!0),L(pe,null,ht(o.plans,r=>($(),L("div",{key:r.id,class:"plan-card"},[f("div",Cf,[f("h3",null,F(r.name),1),f("span",{class:tt(["plan-status",{enabled:r.enabled,disabled:!r.enabled}])},F(r.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),f("div",Ef,[f("p",Pf,F(r.description||"\u6682\u65E0\u63CF\u8FF0"),1),f("div",Tf,[f("span",Af,F(r.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1),r.schedule_cron?($(),L("span",Rf,"\u5B9A\u65F6: "+F(r.schedule_cron),1)):ae("",!0)])]),f("div",Of,[f("button",{class:"action-btn detail-btn",onClick:c=>i.viewDetail(r.id)},"\u8BE6\u60C5",8,If),f("button",{class:"action-btn edit-btn",onClick:c=>i.editPlan(r)},"\u7F16\u8F91",8,Df),f("button",{class:"action-btn delete-btn",onClick:c=>i.deletePlan(r.id)},"\u5220\u9664",8,Mf)])]))),128))]))])])])}const kf=Bt(pf,[["render",Ff],["__scopeId","data-v-32cbd47e"]]);const Nf={name:"FeedPlanDetail",data(){return{username:"",plan:null,loading:!0,error:null}},mounted(){this.username=localStorage.getItem("username")||"\u7BA1\u7406\u5458",this.loadPlanDetail()},methods:{async loadPlanDetail(){this.loading=!0,this.error=null;try{const e=this.$route.query.id||this.$route.params.id;if(!e){this.error="\u65E0\u6548\u7684\u8BA1\u5212ID";return}const t=await fetch(`/api/v1/feed/plan/detail?id=${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")}}),n=await t.json();t.ok&&n.code===0?(this.plan=n.data,await this.loadSubPlanDetails()):this.error=n.message||"\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25"}catch(e){console.error("\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25:",e),this.error="\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25: "+e.message}finally{this.loading=!1}},async loadSubPlanDetails(){if(!(!this.plan||!this.plan.sub_plans||this.plan.sub_plans.length===0))for(let e=0;en.id===e);if(t)return t.name}return"\u672A\u77E5\u7236\u8BA1\u5212"},editPlan(){alert("\u7F16\u8F91\u8BA1\u5212\u529F\u80FD\u5F85\u5B9E\u73B0")},logout(){localStorage.removeItem("authToken"),localStorage.removeItem("username"),this.$router.push("/")}}},$f={class:"feed-plan-detail"},Lf={class:"header"},jf={class:"user-info"},Hf={class:"nav"},Vf={class:"main-content"},Bf={key:0,class:"loading"},Uf={key:1,class:"error"},Kf={key:2,class:"plan-detail-container"},Wf={class:"plan-header"},qf={class:"plan-info"},zf={class:"info-item"},Gf={class:"info-item"},Jf={key:0,class:"info-item"},Yf={class:"info-item"},Qf={class:"plan-steps"},Xf={key:0,class:"steps-list"},Zf={class:"step-header"},ed={class:"step-number"},td={key:0,class:"step-cron"},nd={class:"step-details"},sd={class:"detail-item"},od={class:"detail-item"},id={class:"detail-item"},rd={class:"detail-item"},ld={key:1,class:"no-steps"},cd={key:0,class:"sub-plans"},ad={class:"sub-plans-list"},ud={class:"sub-plan-header"},fd={class:"sub-plan-info"},dd={class:"info-item"},pd={class:"info-item"},hd={key:0,class:"info-item"},gd={class:"info-item"},md={key:1,class:"info-item"},_d={class:"sub-plan-steps"},vd={key:0,class:"steps-list"},yd={class:"step-header"},bd={class:"step-number"},xd={key:0,class:"step-cron"},Sd={class:"step-details"},wd={class:"detail-item"},Cd={class:"detail-item"},Ed={class:"detail-item"},Pd={class:"detail-item"},Td={key:1,class:"no-steps"},Ad={class:"actions"};function Rd(e,t,n,s,o,i){const l=mn("router-link");return $(),L("div",$f,[f("div",Lf,[t[3]||(t[3]=f("h1",null,"\u9972\u5582\u8BA1\u5212\u8BE6\u60C5",-1)),f("div",jf,[f("span",null,"\u6B22\u8FCE, "+F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...r)=>i.logout&&i.logout(...r))},"\u9000\u51FA")])]),f("nav",Hf,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard"},{default:we(()=>[...t[4]||(t[4]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device"},{default:we(()=>[...t[5]||(t[5]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan"},{default:we(()=>[...t[6]||(t[6]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan/detail",class:"active"},{default:we(()=>[...t[7]||(t[7]=[Ce("\u8BA1\u5212\u8BE6\u60C5",-1)])]),_:1})])])]),f("main",Vf,[o.loading?($(),L("div",Bf," \u52A0\u8F7D\u4E2D... ")):o.error?($(),L("div",Uf,F(o.error),1)):o.plan?($(),L("div",Kf,[f("div",Wf,[f("h2",null,F(o.plan.name),1),f("span",{class:tt(["plan-status",{enabled:o.plan.enabled,disabled:!o.plan.enabled}])},F(o.plan.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),f("div",qf,[f("div",zf,[t[8]||(t[8]=f("label",null,"\u8BA1\u5212\u63CF\u8FF0:",-1)),f("span",null,F(o.plan.description||"\u65E0\u63CF\u8FF0"),1)]),f("div",Gf,[t[9]||(t[9]=f("label",null,"\u8BA1\u5212\u7C7B\u578B:",-1)),f("span",null,F(o.plan.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1)]),o.plan.schedule_cron?($(),L("div",Jf,[t[10]||(t[10]=f("label",null,"\u5B9A\u65F6\u8868\u8FBE\u5F0F:",-1)),f("span",null,F(o.plan.schedule_cron),1)])):ae("",!0),f("div",Yf,[t[11]||(t[11]=f("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),f("span",null,F(o.plan.execution_limit>0?o.plan.execution_limit:"\u65E0\u9650\u5236"),1)])]),f("div",Qf,[t[16]||(t[16]=f("h3",null,"\u8BA1\u5212\u6B65\u9AA4",-1)),o.plan.steps&&o.plan.steps.length>0?($(),L("div",Xf,[($(!0),L(pe,null,ht(o.plan.steps,(r,c)=>($(),L("div",{key:r.id,class:"step-item"},[f("div",Zf,[f("span",ed,"\u6B65\u9AA4 "+F(c+1),1),r.schedule_cron?($(),L("span",td,"\u5B9A\u65F6: "+F(r.schedule_cron),1)):ae("",!0)]),f("div",nd,[f("div",sd,[t[12]||(t[12]=f("label",null,"\u8BBE\u5907ID:",-1)),f("span",null,F(r.device_id),1)]),f("div",od,[t[13]||(t[13]=f("label",null,"\u76EE\u6807\u503C:",-1)),f("span",null,F(r.target_value),1)]),f("div",id,[t[14]||(t[14]=f("label",null,"\u52A8\u4F5C:",-1)),f("span",null,F(r.action),1)]),f("div",rd,[t[15]||(t[15]=f("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),f("span",null,F(r.execution_limit>0?r.execution_limit:"\u65E0\u9650\u5236"),1)])])]))),128))])):($(),L("div",ld," \u8BE5\u8BA1\u5212\u6682\u65E0\u6B65\u9AA4 "))]),o.plan.sub_plans&&o.plan.sub_plans.length>0?($(),L("div",cd,[t[27]||(t[27]=f("h3",null,"\u5B50\u8BA1\u5212",-1)),f("div",ad,[($(!0),L(pe,null,ht(o.plan.sub_plans,r=>($(),L("div",{key:r.id,class:"sub-plan-item"},[f("div",ud,[f("h4",null,F(r.name),1),f("span",{class:tt(["plan-status",{enabled:r.enabled,disabled:!r.enabled}])},F(r.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),f("div",fd,[f("div",dd,[t[17]||(t[17]=f("label",null,"\u63CF\u8FF0:",-1)),f("span",null,F(r.description||"\u65E0\u63CF\u8FF0"),1)]),f("div",pd,[t[18]||(t[18]=f("label",null,"\u7C7B\u578B:",-1)),f("span",null,F(r.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1)]),r.schedule_cron?($(),L("div",hd,[t[19]||(t[19]=f("label",null,"\u5B9A\u65F6\u8868\u8FBE\u5F0F:",-1)),f("span",null,F(r.schedule_cron),1)])):ae("",!0),f("div",gd,[t[20]||(t[20]=f("label",null,"\u987A\u5E8F:",-1)),f("span",null,F((r.order_in_parent||0)+1),1)]),r.parent_id?($(),L("div",md,[t[21]||(t[21]=f("label",null,"\u7236\u8BA1\u5212:",-1)),f("span",null,F(i.getParentPlanName(r.parent_id))+"(id:"+F(r.parent_id)+")",1)])):ae("",!0)]),f("div",_d,[t[26]||(t[26]=f("h5",null,"\u5B50\u8BA1\u5212\u6B65\u9AA4",-1)),r.steps&&r.steps.length>0?($(),L("div",vd,[($(!0),L(pe,null,ht(r.steps,(c,p)=>($(),L("div",{key:c.id,class:"step-item"},[f("div",yd,[f("span",bd,"\u6B65\u9AA4 "+F(p+1),1),c.schedule_cron?($(),L("span",xd,"\u5B9A\u65F6: "+F(c.schedule_cron),1)):ae("",!0)]),f("div",Sd,[f("div",wd,[t[22]||(t[22]=f("label",null,"\u8BBE\u5907ID:",-1)),f("span",null,F(c.device_id),1)]),f("div",Cd,[t[23]||(t[23]=f("label",null,"\u76EE\u6807\u503C:",-1)),f("span",null,F(c.target_value),1)]),f("div",Ed,[t[24]||(t[24]=f("label",null,"\u52A8\u4F5C:",-1)),f("span",null,F(c.action),1)]),f("div",Pd,[t[25]||(t[25]=f("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),f("span",null,F(c.execution_limit>0?c.execution_limit:"\u65E0\u9650\u5236"),1)])])]))),128))])):($(),L("div",Td," \u8BE5\u5B50\u8BA1\u5212\u6682\u65E0\u6B65\u9AA4 "))])]))),128))])])):ae("",!0),f("div",Ad,[f("button",{class:"btn btn-secondary",onClick:t[1]||(t[1]=(...r)=>i.goBack&&i.goBack(...r))},"\u8FD4\u56DE\u5217\u8868"),f("button",{class:"btn btn-primary",onClick:t[2]||(t[2]=(...r)=>i.editPlan&&i.editPlan(...r))},"\u7F16\u8F91\u8BA1\u5212")])])):ae("",!0)])])}const Od=Bt(Nf,[["render",Rd],["__scopeId","data-v-c22942b5"]]),Id=[{path:"/",name:"Login",component:eu},{path:"/dashboard",name:"Dashboard",component:pu,meta:{requiresAuth:!0}},{path:"/device",name:"Device",component:df,meta:{requiresAuth:!0}},{path:"/feed/plan",name:"FeedPlan",component:kf,meta:{requiresAuth:!0}},{path:"/feed/plan/detail/:id",name:"FeedPlanDetail",component:Od,meta:{requiresAuth:!0},props:!0}],fr=Ka({history:ya(),routes:Id});fr.beforeEach((e,t,n)=>{const s=localStorage.getItem("authToken");e.matched.some(o=>o.meta.requiresAuth)?s?n():n("/"):s&&e.name==="Login"?n("/dashboard"):n()});const dr=Nc(Bc);dr.use(fr);dr.mount("#app"); diff --git a/frontend/dist/assets/index.9fd2dfb4.js b/frontend/dist/assets/index.9fd2dfb4.js deleted file mode 100644 index 7adc3eb..0000000 --- a/frontend/dist/assets/index.9fd2dfb4.js +++ /dev/null @@ -1,21 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const l of r.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function n(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerpolicy&&(r.referrerPolicy=o.referrerpolicy),o.crossorigin==="use-credentials"?r.credentials="include":o.crossorigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(o){if(o.ep)return;o.ep=!0;const r=n(o);fetch(o.href,r)}})();/** -* @vue/shared v3.5.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Ps(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ee={},Dt=[],Ne=()=>{},qo=()=>!1,Vn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),As=e=>e.startsWith("onUpdate:"),ue=Object.assign,Ts=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},pi=Object.prototype.hasOwnProperty,Y=(e,t)=>pi.call(e,t),V=Array.isArray,Mt=e=>pn(e)==="[object Map]",Bn=e=>pn(e)==="[object Set]",Ys=e=>pn(e)==="[object Date]",U=e=>typeof e=="function",le=e=>typeof e=="string",ze=e=>typeof e=="symbol",se=e=>e!==null&&typeof e=="object",zo=e=>(se(e)||U(e))&&U(e.then)&&U(e.catch),Go=Object.prototype.toString,pn=e=>Go.call(e),hi=e=>pn(e).slice(8,-1),Jo=e=>pn(e)==="[object Object]",Rs=e=>le(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Yt=Ps(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Un=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},gi=/-\w/g,De=Un(e=>e.replace(gi,t=>t.slice(1).toUpperCase())),mi=/\B([A-Z])/g,Et=Un(e=>e.replace(mi,"-$1").toLowerCase()),Kn=Un(e=>e.charAt(0).toUpperCase()+e.slice(1)),es=Un(e=>e?`on${Kn(e)}`:""),gt=(e,t)=>!Object.is(e,t),Sn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},Tn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Qs;const hn=()=>Qs||(Qs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Os(e){if(V(e)){const t={};for(let n=0;n{if(n){const s=n.split(vi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function tt(e){let t="";if(le(e))t=e;else if(V(e))for(let n=0;nWn(n,t))}const Xo=e=>!!(e&&e.__v_isRef===!0),F=e=>le(e)?e:e==null?"":V(e)||se(e)&&(e.toString===Go||!U(e.toString))?Xo(e)?F(e.value):JSON.stringify(e,Zo,2):String(e),Zo=(e,t)=>Xo(t)?Zo(e,t.value):Mt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o],r)=>(n[ts(s,r)+" =>"]=o,n),{})}:Bn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ts(n))}:ze(t)?ts(t):se(t)&&!V(t)&&!Jo(t)?String(t):t,ts=(e,t="")=>{var n;return ze(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.5.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Se;class Ei{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Se,!t&&Se&&(this.index=(Se.scopes||(Se.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(Se=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(Xt){let t=Xt;for(Xt=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Qt;){let t=Qt;for(Qt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function sr(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function or(e){let t,n=e.depsTail,s=n;for(;s;){const o=s.prevDep;s.version===-1?(s===n&&(n=o),Ms(s),Ai(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=o}e.deps=t,e.depsTail=n}function ps(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(rr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function rr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===rn)||(e.globalVersion=rn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ps(e))))return;e.flags|=2;const t=e.dep,n=ne,s=$e;ne=e,$e=!0;try{sr(e);const o=e.fn(e._value);(t.version===0||gt(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{ne=n,$e=s,or(e),e.flags&=-3}}function Ms(e,t=!1){const{dep:n,prevSub:s,nextSub:o}=e;if(s&&(s.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)Ms(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ai(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let $e=!0;const ir=[];function st(){ir.push($e),$e=!1}function ot(){const e=ir.pop();$e=e===void 0?!0:e}function Xs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ne;ne=void 0;try{t()}finally{ne=n}}}let rn=0;class Ti{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Fs{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(!ne||!$e||ne===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ne)n=this.activeLink=new Ti(ne,this),ne.deps?(n.prevDep=ne.depsTail,ne.depsTail.nextDep=n,ne.depsTail=n):ne.deps=ne.depsTail=n,lr(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=ne.depsTail,n.nextDep=void 0,ne.depsTail.nextDep=n,ne.depsTail=n,ne.deps===n&&(ne.deps=s)}return n}trigger(t){this.version++,rn++,this.notify(t)}notify(t){Is();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ds()}}}function lr(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)lr(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const hs=new WeakMap,Ct=Symbol(""),gs=Symbol(""),ln=Symbol("");function ge(e,t,n){if($e&&ne){let s=hs.get(e);s||hs.set(e,s=new Map);let o=s.get(n);o||(s.set(n,o=new Fs),o.map=s,o.key=n),o.track()}}function Ze(e,t,n,s,o,r){const l=hs.get(e);if(!l){rn++;return}const i=c=>{c&&c.trigger()};if(Is(),t==="clear")l.forEach(i);else{const c=V(e),p=c&&Rs(n);if(c&&n==="length"){const u=Number(s);l.forEach((h,m)=>{(m==="length"||m===ln||!ze(m)&&m>=u)&&i(h)})}else switch((n!==void 0||l.has(void 0))&&i(l.get(n)),p&&i(l.get(ln)),t){case"add":c?p&&i(l.get("length")):(i(l.get(Ct)),Mt(e)&&i(l.get(gs)));break;case"delete":c||(i(l.get(Ct)),Mt(e)&&i(l.get(gs)));break;case"set":Mt(e)&&i(l.get(Ct));break}}Ds()}function Rt(e){const t=J(e);return t===e?t:(ge(t,"iterate",ln),Ie(e)?t:t.map(de))}function qn(e){return ge(e=J(e),"iterate",ln),e}const Ri={__proto__:null,[Symbol.iterator](){return ss(this,Symbol.iterator,de)},concat(...e){return Rt(this).concat(...e.map(t=>V(t)?Rt(t):t))},entries(){return ss(this,"entries",e=>(e[1]=de(e[1]),e))},every(e,t){return Ye(this,"every",e,t,void 0,arguments)},filter(e,t){return Ye(this,"filter",e,t,n=>n.map(de),arguments)},find(e,t){return Ye(this,"find",e,t,de,arguments)},findIndex(e,t){return Ye(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ye(this,"findLast",e,t,de,arguments)},findLastIndex(e,t){return Ye(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ye(this,"forEach",e,t,void 0,arguments)},includes(...e){return os(this,"includes",e)},indexOf(...e){return os(this,"indexOf",e)},join(e){return Rt(this).join(e)},lastIndexOf(...e){return os(this,"lastIndexOf",e)},map(e,t){return Ye(this,"map",e,t,void 0,arguments)},pop(){return Wt(this,"pop")},push(...e){return Wt(this,"push",e)},reduce(e,...t){return Zs(this,"reduce",e,t)},reduceRight(e,...t){return Zs(this,"reduceRight",e,t)},shift(){return Wt(this,"shift")},some(e,t){return Ye(this,"some",e,t,void 0,arguments)},splice(...e){return Wt(this,"splice",e)},toReversed(){return Rt(this).toReversed()},toSorted(e){return Rt(this).toSorted(e)},toSpliced(...e){return Rt(this).toSpliced(...e)},unshift(...e){return Wt(this,"unshift",e)},values(){return ss(this,"values",de)}};function ss(e,t,n){const s=qn(e),o=s[t]();return s!==e&&!Ie(e)&&(o._next=o.next,o.next=()=>{const r=o._next();return r.value&&(r.value=n(r.value)),r}),o}const Oi=Array.prototype;function Ye(e,t,n,s,o,r){const l=qn(e),i=l!==e&&!Ie(e),c=l[t];if(c!==Oi[t]){const h=c.apply(e,r);return i?de(h):h}let p=n;l!==e&&(i?p=function(h,m){return n.call(this,de(h),m,e)}:n.length>2&&(p=function(h,m){return n.call(this,h,m,e)}));const u=c.call(l,p,s);return i&&o?o(u):u}function Zs(e,t,n,s){const o=qn(e);let r=n;return o!==e&&(Ie(e)?n.length>3&&(r=function(l,i,c){return n.call(this,l,i,c,e)}):r=function(l,i,c){return n.call(this,l,de(i),c,e)}),o[t](r,...s)}function os(e,t,n){const s=J(e);ge(s,"iterate",ln);const o=s[t](...n);return(o===-1||o===!1)&&$s(n[0])?(n[0]=J(n[0]),s[t](...n)):o}function Wt(e,t,n=[]){st(),Is();const s=J(e)[t].apply(e,n);return Ds(),ot(),s}const Ii=Ps("__proto__,__v_isRef,__isVue"),cr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ze));function Di(e){ze(e)||(e=String(e));const t=J(this);return ge(t,"has",e),t.hasOwnProperty(e)}class ar{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const o=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return r;if(n==="__v_raw")return s===(o?r?Bi:pr:r?dr:fr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const l=V(t);if(!o){let c;if(l&&(c=Ri[n]))return c;if(n==="hasOwnProperty")return Di}const i=Reflect.get(t,n,_e(t)?t:s);return(ze(n)?cr.has(n):Ii(n))||(o||ge(t,"get",n),r)?i:_e(i)?l&&Rs(n)?i:i.value:se(i)?o?gr(i):zn(i):i}}class ur extends ar{constructor(t=!1){super(!1,t)}set(t,n,s,o){let r=t[n];if(!this._isShallow){const c=mt(r);if(!Ie(s)&&!mt(s)&&(r=J(r),s=J(s)),!V(t)&&_e(r)&&!_e(s))return c||(r.value=s),!0}const l=V(t)&&Rs(n)?Number(n)e,yn=e=>Reflect.getPrototypeOf(e);function $i(e,t,n){return function(...s){const o=this.__v_raw,r=J(o),l=Mt(r),i=e==="entries"||e===Symbol.iterator&&l,c=e==="keys"&&l,p=o[e](...s),u=n?ms:t?Rn:de;return!t&&ge(r,"iterate",c?gs:Ct),{next(){const{value:h,done:m}=p.next();return m?{value:h,done:m}:{value:i?[u(h[0]),u(h[1])]:u(h),done:m}},[Symbol.iterator](){return this}}}}function bn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Li(e,t){const n={get(o){const r=this.__v_raw,l=J(r),i=J(o);e||(gt(o,i)&&ge(l,"get",o),ge(l,"get",i));const{has:c}=yn(l),p=t?ms:e?Rn:de;if(c.call(l,o))return p(r.get(o));if(c.call(l,i))return p(r.get(i));r!==l&&r.get(o)},get size(){const o=this.__v_raw;return!e&&ge(J(o),"iterate",Ct),o.size},has(o){const r=this.__v_raw,l=J(r),i=J(o);return e||(gt(o,i)&&ge(l,"has",o),ge(l,"has",i)),o===i?r.has(o):r.has(o)||r.has(i)},forEach(o,r){const l=this,i=l.__v_raw,c=J(i),p=t?ms:e?Rn:de;return!e&&ge(c,"iterate",Ct),i.forEach((u,h)=>o.call(r,p(u),p(h),l))}};return ue(n,e?{add:bn("add"),set:bn("set"),delete:bn("delete"),clear:bn("clear")}:{add(o){!t&&!Ie(o)&&!mt(o)&&(o=J(o));const r=J(this);return yn(r).has.call(r,o)||(r.add(o),Ze(r,"add",o,o)),this},set(o,r){!t&&!Ie(r)&&!mt(r)&&(r=J(r));const l=J(this),{has:i,get:c}=yn(l);let p=i.call(l,o);p||(o=J(o),p=i.call(l,o));const u=c.call(l,o);return l.set(o,r),p?gt(r,u)&&Ze(l,"set",o,r):Ze(l,"add",o,r),this},delete(o){const r=J(this),{has:l,get:i}=yn(r);let c=l.call(r,o);c||(o=J(o),c=l.call(r,o)),i&&i.call(r,o);const p=r.delete(o);return c&&Ze(r,"delete",o,void 0),p},clear(){const o=J(this),r=o.size!==0,l=o.clear();return r&&Ze(o,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=$i(o,e,t)}),n}function ks(e,t){const n=Li(e,t);return(s,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(Y(n,o)&&o in s?n:s,o,r)}const ji={get:ks(!1,!1)},Hi={get:ks(!1,!0)},Vi={get:ks(!0,!1)};const fr=new WeakMap,dr=new WeakMap,pr=new WeakMap,Bi=new WeakMap;function Ui(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ki(e){return e.__v_skip||!Object.isExtensible(e)?0:Ui(hi(e))}function zn(e){return mt(e)?e:Ns(e,!1,Fi,ji,fr)}function hr(e){return Ns(e,!1,Ni,Hi,dr)}function gr(e){return Ns(e,!0,ki,Vi,pr)}function Ns(e,t,n,s,o){if(!se(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=Ki(e);if(r===0)return e;const l=o.get(e);if(l)return l;const i=new Proxy(e,r===2?s:n);return o.set(e,i),i}function Ft(e){return mt(e)?Ft(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function Ie(e){return!!(e&&e.__v_isShallow)}function $s(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function Wi(e){return!Y(e,"__v_skip")&&Object.isExtensible(e)&&Yo(e,"__v_skip",!0),e}const de=e=>se(e)?zn(e):e,Rn=e=>se(e)?gr(e):e;function _e(e){return e?e.__v_isRef===!0:!1}function qi(e){return mr(e,!1)}function zi(e){return mr(e,!0)}function mr(e,t){return _e(e)?e:new Gi(e,t)}class Gi{constructor(t,n){this.dep=new Fs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:J(t),this._value=n?t:de(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Ie(t)||mt(t);t=s?t:J(t),gt(t,n)&&(this._rawValue=t,this._value=s?t:de(t),this.dep.trigger())}}function kt(e){return _e(e)?e.value:e}const Ji={get:(e,t,n)=>t==="__v_raw"?e:kt(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const o=e[t];return _e(o)&&!_e(n)?(o.value=n,!0):Reflect.set(e,t,n,s)}};function _r(e){return Ft(e)?e:new Proxy(e,Ji)}class Yi{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Fs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=rn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&ne!==this)return nr(this,!0),!0}get value(){const t=this.dep.track();return rr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Qi(e,t,n=!1){let s,o;return U(e)?s=e:(s=e.get,o=e.set),new Yi(s,o,n)}const xn={},On=new WeakMap;let xt;function Xi(e,t=!1,n=xt){if(n){let s=On.get(n);s||On.set(n,s=[]),s.push(e)}}function Zi(e,t,n=ee){const{immediate:s,deep:o,once:r,scheduler:l,augmentJob:i,call:c}=n,p=M=>o?M:Ie(M)||o===!1||o===0?et(M,1):et(M);let u,h,m,_,T=!1,O=!1;if(_e(e)?(h=()=>e.value,T=Ie(e)):Ft(e)?(h=()=>p(e),T=!0):V(e)?(O=!0,T=e.some(M=>Ft(M)||Ie(M)),h=()=>e.map(M=>{if(_e(M))return M.value;if(Ft(M))return p(M);if(U(M))return c?c(M,2):M()})):U(e)?t?h=c?()=>c(e,2):e:h=()=>{if(m){st();try{m()}finally{ot()}}const M=xt;xt=u;try{return c?c(e,3,[_]):e(_)}finally{xt=M}}:h=Ne,t&&o){const M=h,Z=o===!0?1/0:o;h=()=>et(M(),Z)}const K=Pi(),N=()=>{u.stop(),K&&K.active&&Ts(K.effects,u)};if(r&&t){const M=t;t=(...Z)=>{M(...Z),N()}}let I=O?new Array(e.length).fill(xn):xn;const j=M=>{if(!(!(u.flags&1)||!u.dirty&&!M))if(t){const Z=u.run();if(o||T||(O?Z.some((fe,ie)=>gt(fe,I[ie])):gt(Z,I))){m&&m();const fe=xt;xt=u;try{const ie=[Z,I===xn?void 0:O&&I[0]===xn?[]:I,_];I=Z,c?c(t,3,ie):t(...ie)}finally{xt=fe}}}else u.run()};return i&&i(j),u=new er(h),u.scheduler=l?()=>l(j,!1):j,_=M=>Xi(M,!1,u),m=u.onStop=()=>{const M=On.get(u);if(M){if(c)c(M,4);else for(const Z of M)Z();On.delete(u)}},t?s?j(!0):I=u.run():l?l(j.bind(null,!0),!0):u.run(),N.pause=u.pause.bind(u),N.resume=u.resume.bind(u),N.stop=N,N}function et(e,t=1/0,n){if(t<=0||!se(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,_e(e))et(e.value,t,n);else if(V(e))for(let s=0;s{et(s,t,n)});else if(Jo(e)){for(const s in e)et(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&et(e[s],t,n)}return e}/** -* @vue/runtime-core v3.5.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function gn(e,t,n,s){try{return s?e(...s):e()}catch(o){Gn(o,t,n)}}function Ge(e,t,n,s){if(U(e)){const o=gn(e,t,n,s);return o&&zo(o)&&o.catch(r=>{Gn(r,t,n)}),o}if(V(e)){const o=[];for(let r=0;r>>1,o=ye[s],r=cn(o);r=cn(n)?ye.push(e):ye.splice(tl(t),0,e),e.flags|=1,yr()}}function yr(){In||(In=vr.then(xr))}function nl(e){V(e)?Nt.push(...e):ft&&e.id===-1?ft.splice(Ot+1,0,e):e.flags&1||(Nt.push(e),e.flags|=1),yr()}function eo(e,t,n=We+1){for(;ncn(n)-cn(s));if(Nt.length=0,ft){ft.push(...t);return}for(ft=t,Ot=0;Ote.id==null?e.flags&2?-1:1/0:e.id;function xr(e){const t=Ne;try{for(We=0;We{s._d&&kn(-1);const r=Dn(t);let l;try{l=e(...o)}finally{Dn(r),s._d&&kn(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function Fe(e,t){if(Te===null)return e;const n=Xn(Te),s=e.dirs||(e.dirs=[]);for(let o=0;oe.__isTeleport,rl=Symbol("_leaveCb");function Hs(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Hs(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 wr(e,t){return U(e)?(()=>ue({name:e.name},t,{setup:e}))():e}function Cr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Mn=new WeakMap;function Zt(e,t,n,s,o=!1){if(V(e)){e.forEach((T,O)=>Zt(T,t&&(V(t)?t[O]:t),n,s,o));return}if(en(s)&&!o){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Zt(e,t,n,s.component.subTree);return}const r=s.shapeFlag&4?Xn(s.component):s.el,l=o?null:r,{i,r:c}=e,p=t&&t.r,u=i.refs===ee?i.refs={}:i.refs,h=i.setupState,m=J(h),_=h===ee?qo:T=>Y(m,T);if(p!=null&&p!==c){if(to(t),le(p))u[p]=null,_(p)&&(h[p]=null);else if(_e(p)){p.value=null;const T=t;T.k&&(u[T.k]=null)}}if(U(c))gn(c,i,12,[l,u]);else{const T=le(c),O=_e(c);if(T||O){const K=()=>{if(e.f){const N=T?_(c)?h[c]:u[c]:c.value;if(o)V(N)&&Ts(N,r);else if(V(N))N.includes(r)||N.push(r);else if(T)u[c]=[r],_(c)&&(h[c]=u[c]);else{const I=[r];c.value=I,e.k&&(u[e.k]=I)}}else T?(u[c]=l,_(c)&&(h[c]=l)):O&&(c.value=l,e.k&&(u[e.k]=l))};if(l){const N=()=>{K(),Mn.delete(e)};N.id=-1,Mn.set(e,N),Ae(N,n)}else to(e),K()}}}function to(e){const t=Mn.get(e);t&&(t.flags|=8,Mn.delete(e))}hn().requestIdleCallback;hn().cancelIdleCallback;const en=e=>!!e.type.__asyncLoader,Er=e=>e.type.__isKeepAlive;function il(e,t){Pr(e,"a",t)}function ll(e,t){Pr(e,"da",t)}function Pr(e,t,n=me){const s=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Jn(t,s,n),n){let o=n.parent;for(;o&&o.parent;)Er(o.parent.vnode)&&cl(s,t,n,o),o=o.parent}}function cl(e,t,n,s){const o=Jn(t,e,s,!0);Ar(()=>{Ts(s[t],o)},n)}function Jn(e,t,n=me,s=!1){if(n){const o=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...l)=>{st();const i=_n(n),c=Ge(t,n,e,l);return i(),ot(),c});return s?o.unshift(r):o.push(r),r}}const rt=e=>(t,n=me)=>{(!un||e==="sp")&&Jn(e,(...s)=>t(...s),n)},al=rt("bm"),ul=rt("m"),fl=rt("bu"),dl=rt("u"),pl=rt("bum"),Ar=rt("um"),hl=rt("sp"),gl=rt("rtg"),ml=rt("rtc");function _l(e,t=me){Jn("ec",e,t)}const Tr="components";function mn(e,t){return yl(Tr,e,!0,t)||e}const vl=Symbol.for("v-ndc");function yl(e,t,n=!0,s=!1){const o=Te||me;if(o){const r=o.type;if(e===Tr){const i=uc(r,!1);if(i&&(i===t||i===De(t)||i===Kn(De(t))))return r}const l=no(o[e]||r[e],t)||no(o.appContext[e],t);return!l&&s?r:l}}function no(e,t){return e&&(e[t]||e[De(t)]||e[Kn(De(t))])}function ht(e,t,n,s){let o;const r=n&&n[s],l=V(e);if(l||le(e)){const i=l&&Ft(e);let c=!1,p=!1;i&&(c=!Ie(e),p=mt(e),e=qn(e)),o=new Array(e.length);for(let u=0,h=e.length;ut(i,c,void 0,r&&r[c]));else{const i=Object.keys(e);o=new Array(i.length);for(let c=0,p=i.length;ce?zr(e)?Xn(e):_s(e.parent):null,tn=ue(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=>_s(e.parent),$root:e=>_s(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Vs(e),$forceUpdate:e=>e.f||(e.f=()=>{js(e.update)}),$nextTick:e=>e.n||(e.n=Ls.bind(e.proxy)),$watch:e=>Vl.bind(e)}),rs=(e,t)=>e!==ee&&!e.__isScriptSetup&&Y(e,t),bl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:o,props:r,accessCache:l,type:i,appContext:c}=e;let p;if(t[0]!=="$"){const _=l[t];if(_!==void 0)switch(_){case 1:return s[t];case 2:return o[t];case 4:return n[t];case 3:return r[t]}else{if(rs(s,t))return l[t]=1,s[t];if(o!==ee&&Y(o,t))return l[t]=2,o[t];if((p=e.propsOptions[0])&&Y(p,t))return l[t]=3,r[t];if(n!==ee&&Y(n,t))return l[t]=4,n[t];vs&&(l[t]=0)}}const u=tn[t];let h,m;if(u)return t==="$attrs"&&ge(e.attrs,"get",""),u(e);if((h=i.__cssModules)&&(h=h[t]))return h;if(n!==ee&&Y(n,t))return l[t]=4,n[t];if(m=c.config.globalProperties,Y(m,t))return m[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:r}=e;return rs(o,t)?(o[t]=n,!0):s!==ee&&Y(s,t)?(s[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:o,propsOptions:r,type:l}},i){let c,p;return!!(n[i]||e!==ee&&i[0]!=="$"&&Y(e,i)||rs(t,i)||(c=r[0])&&Y(c,i)||Y(s,i)||Y(tn,i)||Y(o.config.globalProperties,i)||(p=l.__cssModules)&&p[i])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function so(e){return V(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let vs=!0;function xl(e){const t=Vs(e),n=e.proxy,s=e.ctx;vs=!1,t.beforeCreate&&oo(t.beforeCreate,e,"bc");const{data:o,computed:r,methods:l,watch:i,provide:c,inject:p,created:u,beforeMount:h,mounted:m,beforeUpdate:_,updated:T,activated:O,deactivated:K,beforeDestroy:N,beforeUnmount:I,destroyed:j,unmounted:M,render:Z,renderTracked:fe,renderTriggered:ie,errorCaptured:je,serverPrefetch:it,expose:He,inheritAttrs:lt,components:vt,directives:Ve,filters:Ut}=t;if(p&&Sl(p,s,null),l)for(const X in l){const q=l[X];U(q)&&(s[X]=q.bind(n))}if(o){const X=o.call(n,n);se(X)&&(e.data=zn(X))}if(vs=!0,r)for(const X in r){const q=r[X],Je=U(q)?q.bind(n,n):U(q.get)?q.get.bind(n,n):Ne,ct=!U(q)&&U(q.set)?q.set.bind(n):Ne,Be=ke({get:Je,set:ct});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>Be.value,set:be=>Be.value=be})}if(i)for(const X in i)Rr(i[X],s,n,X);if(c){const X=U(c)?c.call(n):c;Reflect.ownKeys(X).forEach(q=>{wn(q,X[q])})}u&&oo(u,e,"c");function ae(X,q){V(q)?q.forEach(Je=>X(Je.bind(n))):q&&X(q.bind(n))}if(ae(al,h),ae(ul,m),ae(fl,_),ae(dl,T),ae(il,O),ae(ll,K),ae(_l,je),ae(ml,fe),ae(gl,ie),ae(pl,I),ae(Ar,M),ae(hl,it),V(He))if(He.length){const X=e.exposed||(e.exposed={});He.forEach(q=>{Object.defineProperty(X,q,{get:()=>n[q],set:Je=>n[q]=Je,enumerable:!0})})}else e.exposed||(e.exposed={});Z&&e.render===Ne&&(e.render=Z),lt!=null&&(e.inheritAttrs=lt),vt&&(e.components=vt),Ve&&(e.directives=Ve),it&&Cr(e)}function Sl(e,t,n=Ne){V(e)&&(e=ys(e));for(const s in e){const o=e[s];let r;se(o)?"default"in o?r=nt(o.from||s,o.default,!0):r=nt(o.from||s):r=nt(o),_e(r)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>r.value,set:l=>r.value=l}):t[s]=r}}function oo(e,t,n){Ge(V(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Rr(e,t,n,s){let o=s.includes(".")?Br(n,s):()=>n[s];if(le(e)){const r=t[e];U(r)&&Cn(o,r)}else if(U(e))Cn(o,e.bind(n));else if(se(e))if(V(e))e.forEach(r=>Rr(r,t,n,s));else{const r=U(e.handler)?e.handler.bind(n):t[e.handler];U(r)&&Cn(o,r,e)}}function Vs(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:l}}=e.appContext,i=r.get(t);let c;return i?c=i:!o.length&&!n&&!s?c=t:(c={},o.length&&o.forEach(p=>Fn(c,p,l,!0)),Fn(c,t,l)),se(t)&&r.set(t,c),c}function Fn(e,t,n,s=!1){const{mixins:o,extends:r}=t;r&&Fn(e,r,n,!0),o&&o.forEach(l=>Fn(e,l,n,!0));for(const l in t)if(!(s&&l==="expose")){const i=wl[l]||n&&n[l];e[l]=i?i(e[l],t[l]):t[l]}return e}const wl={data:ro,props:io,emits:io,methods:Jt,computed:Jt,beforeCreate:ve,created:ve,beforeMount:ve,mounted:ve,beforeUpdate:ve,updated:ve,beforeDestroy:ve,beforeUnmount:ve,destroyed:ve,unmounted:ve,activated:ve,deactivated:ve,errorCaptured:ve,serverPrefetch:ve,components:Jt,directives:Jt,watch:El,provide:ro,inject:Cl};function ro(e,t){return t?e?function(){return ue(U(e)?e.call(this,this):e,U(t)?t.call(this,this):t)}:t:e}function Cl(e,t){return Jt(ys(e),ys(t))}function ys(e){if(V(e)){const t={};for(let n=0;n1)return n&&U(t)?t.call(s&&s.proxy):t}}const Ir={},Dr=()=>Object.create(Ir),Mr=e=>Object.getPrototypeOf(e)===Ir;function Tl(e,t,n,s=!1){const o={},r=Dr();e.propsDefaults=Object.create(null),Fr(e,t,o,r);for(const l in e.propsOptions[0])l in o||(o[l]=void 0);n?e.props=s?o:hr(o):e.type.props?e.props=o:e.props=r,e.attrs=r}function Rl(e,t,n,s){const{props:o,attrs:r,vnode:{patchFlag:l}}=e,i=J(o),[c]=e.propsOptions;let p=!1;if((s||l>0)&&!(l&16)){if(l&8){const u=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,_]=kr(h,t,!0);ue(l,m),_&&i.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!c)return se(e)&&s.set(e,Dt),Dt;if(V(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Us=e=>V(e)?e.map(qe):[qe(e)],Il=(e,t,n)=>{if(t._n)return t;const s=we((...o)=>Us(t(...o)),n);return s._c=!1,s},Nr=(e,t,n)=>{const s=e._ctx;for(const o in e){if(Bs(o))continue;const r=e[o];if(U(r))t[o]=Il(o,r,s);else if(r!=null){const l=Us(r);t[o]=()=>l}}},$r=(e,t)=>{const n=Us(t);e.slots.default=()=>n},Lr=(e,t,n)=>{for(const s in t)(n||!Bs(s))&&(e[s]=t[s])},Dl=(e,t,n)=>{const s=e.slots=Dr();if(e.vnode.shapeFlag&32){const o=t._;o?(Lr(s,t,n),n&&Yo(s,"_",o,!0)):Nr(t,s)}else t&&$r(e,t)},Ml=(e,t,n)=>{const{vnode:s,slots:o}=e;let r=!0,l=ee;if(s.shapeFlag&32){const i=t._;i?n&&i===1?r=!1:Lr(o,t,n):(r=!t.$stable,Nr(t,o)),l=t}else t&&($r(e,t),l={default:1});if(r)for(const i in o)!Bs(i)&&l[i]==null&&delete o[i]};function Fl(){typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__!="boolean"&&(hn().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1)}const Ae=Jl;function kl(e){return Nl(e)}function Nl(e,t){Fl();const n=hn();n.__VUE__=!0;const{insert:s,remove:o,patchProp:r,createElement:l,createText:i,createComment:c,setText:p,setElementText:u,parentNode:h,nextSibling:m,setScopeId:_=Ne,insertStaticContent:T}=e,O=(a,d,g,b=null,v=null,x=null,E=void 0,C=null,w=!!d.dynamicChildren)=>{if(a===d)return;a&&!qt(a,d)&&(b=y(a),be(a,v,x,!0),a=null),d.patchFlag===-2&&(w=!1,d.dynamicChildren=null);const{type:S,ref:H,shapeFlag:A}=d;switch(S){case Qn:K(a,d,g,b);break;case _t:N(a,d,g,b);break;case En:a==null&&I(d,g,b,E);break;case pe:vt(a,d,g,b,v,x,E,C,w);break;default:A&1?Z(a,d,g,b,v,x,E,C,w):A&6?Ve(a,d,g,b,v,x,E,C,w):(A&64||A&128)&&S.process(a,d,g,b,v,x,E,C,w,D)}H!=null&&v?Zt(H,a&&a.ref,x,d||a,!d):H==null&&a&&a.ref!=null&&Zt(a.ref,null,x,a,!0)},K=(a,d,g,b)=>{if(a==null)s(d.el=i(d.children),g,b);else{const v=d.el=a.el;d.children!==a.children&&p(v,d.children)}},N=(a,d,g,b)=>{a==null?s(d.el=c(d.children||""),g,b):d.el=a.el},I=(a,d,g,b)=>{[a.el,a.anchor]=T(a.children,d,g,b,a.el,a.anchor)},j=({el:a,anchor:d},g,b)=>{let v;for(;a&&a!==d;)v=m(a),s(a,g,b),a=v;s(d,g,b)},M=({el:a,anchor:d})=>{let g;for(;a&&a!==d;)g=m(a),o(a),a=g;o(d)},Z=(a,d,g,b,v,x,E,C,w)=>{d.type==="svg"?E="svg":d.type==="math"&&(E="mathml"),a==null?fe(d,g,b,v,x,E,C,w):it(a,d,v,x,E,C,w)},fe=(a,d,g,b,v,x,E,C)=>{let w,S;const{props:H,shapeFlag:A,transition:k,dirs:B}=a;if(w=a.el=l(a.type,x,H&&H.is,H),A&8?u(w,a.children):A&16&&je(a.children,w,null,b,v,is(a,x),E,C),B&&yt(a,null,b,"created"),ie(w,a,a.scopeId,E,b),H){for(const te in H)te!=="value"&&!Yt(te)&&r(w,te,null,H[te],x,b);"value"in H&&r(w,"value",null,H.value,x),(S=H.onVnodeBeforeMount)&&Ke(S,b,a)}B&&yt(a,null,b,"beforeMount");const W=$l(v,k);W&&k.beforeEnter(w),s(w,d,g),((S=H&&H.onVnodeMounted)||W||B)&&Ae(()=>{S&&Ke(S,b,a),W&&k.enter(w),B&&yt(a,null,b,"mounted")},v)},ie=(a,d,g,b,v)=>{if(g&&_(a,g),b)for(let x=0;x{for(let S=w;S{const C=d.el=a.el;let{patchFlag:w,dynamicChildren:S,dirs:H}=d;w|=a.patchFlag&16;const A=a.props||ee,k=d.props||ee;let B;if(g&&bt(g,!1),(B=k.onVnodeBeforeUpdate)&&Ke(B,g,d,a),H&&yt(d,a,g,"beforeUpdate"),g&&bt(g,!0),(A.innerHTML&&k.innerHTML==null||A.textContent&&k.textContent==null)&&u(C,""),S?He(a.dynamicChildren,S,C,g,b,is(d,v),x):E||q(a,d,C,null,g,b,is(d,v),x,!1),w>0){if(w&16)lt(C,A,k,g,v);else if(w&2&&A.class!==k.class&&r(C,"class",null,k.class,v),w&4&&r(C,"style",A.style,k.style,v),w&8){const W=d.dynamicProps;for(let te=0;te{B&&Ke(B,g,d,a),H&&yt(d,a,g,"updated")},b)},He=(a,d,g,b,v,x,E)=>{for(let C=0;C{if(d!==g){if(d!==ee)for(const x in d)!Yt(x)&&!(x in g)&&r(a,x,d[x],null,v,b);for(const x in g){if(Yt(x))continue;const E=g[x],C=d[x];E!==C&&x!=="value"&&r(a,x,C,E,v,b)}"value"in g&&r(a,"value",d.value,g.value,v)}},vt=(a,d,g,b,v,x,E,C,w)=>{const S=d.el=a?a.el:i(""),H=d.anchor=a?a.anchor:i("");let{patchFlag:A,dynamicChildren:k,slotScopeIds:B}=d;B&&(C=C?C.concat(B):B),a==null?(s(S,g,b),s(H,g,b),je(d.children||[],g,H,v,x,E,C,w)):A>0&&A&64&&k&&a.dynamicChildren?(He(a.dynamicChildren,k,g,v,x,E,C),(d.key!=null||v&&d===v.subTree)&&jr(a,d,!0)):q(a,d,g,H,v,x,E,C,w)},Ve=(a,d,g,b,v,x,E,C,w)=>{d.slotScopeIds=C,a==null?d.shapeFlag&512?v.ctx.activate(d,g,b,E,w):Ut(d,g,b,v,x,E,w):Pt(a,d,w)},Ut=(a,d,g,b,v,x,E)=>{const C=a.component=oc(a,b,v);if(Er(a)&&(C.ctx.renderer=D),ic(C,!1,E),C.asyncDep){if(v&&v.registerDep(C,ae,E),!a.el){const w=C.subTree=oe(_t);N(null,w,d,g),a.placeholder=w.el}}else ae(C,a,d,g,v,x,E)},Pt=(a,d,g)=>{const b=d.component=a.component;if(zl(a,d,g))if(b.asyncDep&&!b.asyncResolved){X(b,d,g);return}else b.next=d,b.update();else d.el=a.el,b.vnode=d},ae=(a,d,g,b,v,x,E)=>{const C=()=>{if(a.isMounted){let{next:A,bu:k,u:B,parent:W,vnode:te}=a;{const Ee=Hr(a);if(Ee){A&&(A.el=te.el,X(a,A,E)),Ee.asyncDep.then(()=>{a.isUnmounted||C()});return}}let Q=A,xe;bt(a,!1),A?(A.el=te.el,X(a,A,E)):A=te,k&&Sn(k),(xe=A.props&&A.props.onVnodeBeforeUpdate)&&Ke(xe,W,A,te),bt(a,!0);const he=ls(a),Me=a.subTree;a.subTree=he,O(Me,he,h(Me.el),y(Me),a,v,x),A.el=he.el,Q===null&&Gl(a,he.el),B&&Ae(B,v),(xe=A.props&&A.props.onVnodeUpdated)&&Ae(()=>Ke(xe,W,A,te),v)}else{let A;const{el:k,props:B}=d,{bm:W,m:te,parent:Q,root:xe,type:he}=a,Me=en(d);if(bt(a,!1),W&&Sn(W),!Me&&(A=B&&B.onVnodeBeforeMount)&&Ke(A,Q,d),bt(a,!0),k&&re){const Ee=()=>{a.subTree=ls(a),re(k,a.subTree,a,v,null)};Me&&he.__asyncHydrate?he.__asyncHydrate(k,a,Ee):Ee()}else{xe.ce&&xe.ce._def.shadowRoot!==!1&&xe.ce._injectChildStyle(he);const Ee=a.subTree=ls(a);O(null,Ee,g,b,a,v,x),d.el=Ee.el}if(te&&Ae(te,v),!Me&&(A=B&&B.onVnodeMounted)){const Ee=d;Ae(()=>Ke(A,Q,Ee),v)}(d.shapeFlag&256||Q&&en(Q.vnode)&&Q.vnode.shapeFlag&256)&&a.a&&Ae(a.a,v),a.isMounted=!0,d=g=b=null}};a.scope.on();const w=a.effect=new er(C);a.scope.off();const S=a.update=w.run.bind(w),H=a.job=w.runIfDirty.bind(w);H.i=a,H.id=a.uid,w.scheduler=()=>js(H),bt(a,!0),S()},X=(a,d,g)=>{d.component=a;const b=a.vnode.props;a.vnode=d,a.next=null,Rl(a,d.props,b,g),Ml(a,d.children,g),st(),eo(a),ot()},q=(a,d,g,b,v,x,E,C,w=!1)=>{const S=a&&a.children,H=a?a.shapeFlag:0,A=d.children,{patchFlag:k,shapeFlag:B}=d;if(k>0){if(k&128){ct(S,A,g,b,v,x,E,C,w);return}else if(k&256){Je(S,A,g,b,v,x,E,C,w);return}}B&8?(H&16&&Oe(S,v,x),A!==S&&u(g,A)):H&16?B&16?ct(S,A,g,b,v,x,E,C,w):Oe(S,v,x,!0):(H&8&&u(g,""),B&16&&je(A,g,b,v,x,E,C,w))},Je=(a,d,g,b,v,x,E,C,w)=>{a=a||Dt,d=d||Dt;const S=a.length,H=d.length,A=Math.min(S,H);let k;for(k=0;kH?Oe(a,v,x,!0,!1,A):je(d,g,b,v,x,E,C,w,A)},ct=(a,d,g,b,v,x,E,C,w)=>{let S=0;const H=d.length;let A=a.length-1,k=H-1;for(;S<=A&&S<=k;){const B=a[S],W=d[S]=w?dt(d[S]):qe(d[S]);if(qt(B,W))O(B,W,g,null,v,x,E,C,w);else break;S++}for(;S<=A&&S<=k;){const B=a[A],W=d[k]=w?dt(d[k]):qe(d[k]);if(qt(B,W))O(B,W,g,null,v,x,E,C,w);else break;A--,k--}if(S>A){if(S<=k){const B=k+1,W=Bk)for(;S<=A;)be(a[S],v,x,!0),S++;else{const B=S,W=S,te=new Map;for(S=W;S<=k;S++){const Pe=d[S]=w?dt(d[S]):qe(d[S]);Pe.key!=null&&te.set(Pe.key,S)}let Q,xe=0;const he=k-W+1;let Me=!1,Ee=0;const Kt=new Array(he);for(S=0;S=he){be(Pe,v,x,!0);continue}let Ue;if(Pe.key!=null)Ue=te.get(Pe.key);else for(Q=W;Q<=k;Q++)if(Kt[Q-W]===0&&qt(Pe,d[Q])){Ue=Q;break}Ue===void 0?be(Pe,v,x,!0):(Kt[Ue-W]=S+1,Ue>=Ee?Ee=Ue:Me=!0,O(Pe,d[Ue],g,null,v,x,E,C,w),xe++)}const zs=Me?Ll(Kt):Dt;for(Q=zs.length-1,S=he-1;S>=0;S--){const Pe=W+S,Ue=d[Pe],Gs=d[Pe+1],Js=Pe+1{const{el:x,type:E,transition:C,children:w,shapeFlag:S}=a;if(S&6){Be(a.component.subTree,d,g,b);return}if(S&128){a.suspense.move(d,g,b);return}if(S&64){E.move(a,d,g,D);return}if(E===pe){s(x,d,g);for(let A=0;AC.enter(x),v);else{const{leave:A,delayLeave:k,afterLeave:B}=C,W=()=>{a.ctx.isUnmounted?o(x):s(x,d,g)},te=()=>{x._isLeaving&&x[rl](!0),A(x,()=>{W(),B&&B()})};k?k(x,W,te):te()}else s(x,d,g)},be=(a,d,g,b=!1,v=!1)=>{const{type:x,props:E,ref:C,children:w,dynamicChildren:S,shapeFlag:H,patchFlag:A,dirs:k,cacheIndex:B}=a;if(A===-2&&(v=!1),C!=null&&(st(),Zt(C,null,g,a,!0),ot()),B!=null&&(d.renderCache[B]=void 0),H&256){d.ctx.deactivate(a);return}const W=H&1&&k,te=!en(a);let Q;if(te&&(Q=E&&E.onVnodeBeforeUnmount)&&Ke(Q,d,a),H&6)vn(a.component,g,b);else{if(H&128){a.suspense.unmount(g,b);return}W&&yt(a,null,d,"beforeUnmount"),H&64?a.type.remove(a,d,g,D,b):S&&!S.hasOnce&&(x!==pe||A>0&&A&64)?Oe(S,d,g,!1,!0):(x===pe&&A&384||!v&&H&16)&&Oe(w,d,g),b&&At(a)}(te&&(Q=E&&E.onVnodeUnmounted)||W)&&Ae(()=>{Q&&Ke(Q,d,a),W&&yt(a,null,d,"unmounted")},g)},At=a=>{const{type:d,el:g,anchor:b,transition:v}=a;if(d===pe){Tt(g,b);return}if(d===En){M(a);return}const x=()=>{o(g),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(a.shapeFlag&1&&v&&!v.persisted){const{leave:E,delayLeave:C}=v,w=()=>E(g,x);C?C(a.el,x,w):w()}else x()},Tt=(a,d)=>{let g;for(;a!==d;)g=m(a),o(a),a=g;o(d)},vn=(a,d,g)=>{const{bum:b,scope:v,job:x,subTree:E,um:C,m:w,a:S}=a;co(w),co(S),b&&Sn(b),v.stop(),x&&(x.flags|=8,be(E,a,d,g)),C&&Ae(C,d),Ae(()=>{a.isUnmounted=!0},d)},Oe=(a,d,g,b=!1,v=!1,x=0)=>{for(let E=x;E{if(a.shapeFlag&6)return y(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const d=m(a.anchor||a.el),g=d&&d[sl];return g?m(g):d};let R=!1;const P=(a,d,g)=>{a==null?d._vnode&&be(d._vnode,null,null,!0):O(d._vnode||null,a,d,null,null,null,g),d._vnode=a,R||(R=!0,eo(),br(),R=!1)},D={p:O,um:be,m:Be,r:At,mt:Ut,mc:je,pc:q,pbc:He,n:y,o:e};let z,re;return t&&([z,re]=t(D)),{render:P,hydrate:z,createApp:Al(P,z)}}function is({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function bt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function $l(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function jr(e,t,n=!1){const s=e.children,o=t.children;if(V(s)&&V(o))for(let r=0;r>1,e[n[i]]0&&(t[s]=n[r-1]),n[r]=s)}}for(r=n.length,l=n[r-1];r-- >0;)n[r]=l,l=t[l];return n}function Hr(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Hr(t)}function co(e){if(e)for(let t=0;tnt(jl);function Cn(e,t,n){return Vr(e,t,n)}function Vr(e,t,n=ee){const{immediate:s,deep:o,flush:r,once:l}=n,i=ue({},n),c=t&&s||!t&&r!=="post";let p;if(un){if(r==="sync"){const _=Hl();p=_.__watcherHandles||(_.__watcherHandles=[])}else if(!c){const _=()=>{};return _.stop=Ne,_.resume=Ne,_.pause=Ne,_}}const u=me;i.call=(_,T,O)=>Ge(_,u,T,O);let h=!1;r==="post"?i.scheduler=_=>{Ae(_,u&&u.suspense)}:r!=="sync"&&(h=!0,i.scheduler=(_,T)=>{T?_():js(_)}),i.augmentJob=_=>{t&&(_.flags|=4),h&&(_.flags|=2,u&&(_.id=u.uid,_.i=u))};const m=Zi(e,t,i);return un&&(p?p.push(m):c&&m()),m}function Vl(e,t,n){const s=this.proxy,o=le(e)?e.includes(".")?Br(s,e):()=>s[e]:e.bind(s,s);let r;U(t)?r=t:(r=t.handler,n=t);const l=_n(this),i=Vr(o,r.bind(s),n);return l(),i}function Br(e,t){const n=t.split(".");return()=>{let s=e;for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${De(t)}Modifiers`]||e[`${Et(t)}Modifiers`];function Ul(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||ee;let o=n;const r=t.startsWith("update:"),l=r&&Bl(s,t.slice(7));l&&(l.trim&&(o=n.map(u=>le(u)?u.trim():u)),l.number&&(o=n.map(Tn)));let i,c=s[i=es(t)]||s[i=es(De(t))];!c&&r&&(c=s[i=es(Et(t))]),c&&Ge(c,e,6,o);const p=s[i+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,Ge(p,e,6,o)}}const Kl=new WeakMap;function Ur(e,t,n=!1){const s=n?Kl:t.emitsCache,o=s.get(e);if(o!==void 0)return o;const r=e.emits;let l={},i=!1;if(!U(e)){const c=p=>{const u=Ur(p,t,!0);u&&(i=!0,ue(l,u))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!r&&!i?(se(e)&&s.set(e,null),null):(V(r)?r.forEach(c=>l[c]=null):ue(l,r),se(e)&&s.set(e,l),l)}function Yn(e,t){return!e||!Vn(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,Et(t))||Y(e,t))}function ls(e){const{type:t,vnode:n,proxy:s,withProxy:o,propsOptions:[r],slots:l,attrs:i,emit:c,render:p,renderCache:u,props:h,data:m,setupState:_,ctx:T,inheritAttrs:O}=e,K=Dn(e);let N,I;try{if(n.shapeFlag&4){const M=o||s,Z=M;N=qe(p.call(Z,M,u,h,_,m,T)),I=i}else{const M=t;N=qe(M.length>1?M(h,{attrs:i,slots:l,emit:c}):M(h,null)),I=t.props?i:Wl(i)}}catch(M){nn.length=0,Gn(M,e,1),N=oe(_t)}let j=N;if(I&&O!==!1){const M=Object.keys(I),{shapeFlag:Z}=j;M.length&&Z&7&&(r&&M.some(As)&&(I=ql(I,r)),j=jt(j,I,!1,!0))}return n.dirs&&(j=jt(j,null,!1,!0),j.dirs=j.dirs?j.dirs.concat(n.dirs):n.dirs),n.transition&&Hs(j,n.transition),N=j,Dn(K),N}const Wl=e=>{let t;for(const n in e)(n==="class"||n==="style"||Vn(n))&&((t||(t={}))[n]=e[n]);return t},ql=(e,t)=>{const n={};for(const s in e)(!As(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function zl(e,t,n){const{props:s,children:o,component:r}=e,{props:l,children:i,patchFlag:c}=t,p=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?ao(s,l,p):!!l;if(c&8){const u=t.dynamicProps;for(let h=0;he.__isSuspense;function Jl(e,t){t&&t.pendingBranch?V(e)?t.effects.push(...e):t.effects.push(e):nl(e)}const pe=Symbol.for("v-fgt"),Qn=Symbol.for("v-txt"),_t=Symbol.for("v-cmt"),En=Symbol.for("v-stc"),nn=[];let Re=null;function $(e=!1){nn.push(Re=e?null:[])}function Yl(){nn.pop(),Re=nn[nn.length-1]||null}let an=1;function kn(e,t=!1){an+=e,e<0&&Re&&t&&(Re.hasOnce=!0)}function Wr(e){return e.dynamicChildren=an>0?Re||Dt:null,Yl(),an>0&&Re&&Re.push(e),e}function L(e,t,n,s,o,r){return Wr(f(e,t,n,s,o,r,!0))}function Ql(e,t,n,s,o){return Wr(oe(e,t,n,s,o,!0))}function Nn(e){return e?e.__v_isVNode===!0:!1}function qt(e,t){return e.type===t.type&&e.key===t.key}const qr=({key:e})=>e!=null?e:null,Pn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?le(e)||_e(e)||U(e)?{i:Te,r:e,k:t,f:!!n}:e:null);function f(e,t=null,n=null,s=0,o=null,r=e===pe?0:1,l=!1,i=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qr(t),ref:t&&Pn(t),scopeId:Sr,slotScopeIds:null,children:n,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:r,patchFlag:s,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Te};return i?(Ks(c,n),r&128&&e.normalize(c)):n&&(c.shapeFlag|=le(n)?8:16),an>0&&!l&&Re&&(c.patchFlag>0||r&6)&&c.patchFlag!==32&&Re.push(c),c}const oe=Xl;function Xl(e,t=null,n=null,s=0,o=null,r=!1){if((!e||e===vl)&&(e=_t),Nn(e)){const i=jt(e,t,!0);return n&&Ks(i,n),an>0&&!r&&Re&&(i.shapeFlag&6?Re[Re.indexOf(e)]=i:Re.push(i)),i.patchFlag=-2,i}if(fc(e)&&(e=e.__vccOpts),t){t=Zl(t);let{class:i,style:c}=t;i&&!le(i)&&(t.class=tt(i)),se(c)&&($s(c)&&!V(c)&&(c=ue({},c)),t.style=Os(c))}const l=le(e)?1:Kr(e)?128:ol(e)?64:se(e)?4:U(e)?2:0;return f(e,t,n,s,o,l,r,!0)}function Zl(e){return e?$s(e)||Mr(e)?ue({},e):e:null}function jt(e,t,n=!1,s=!1){const{props:o,ref:r,patchFlag:l,children:i,transition:c}=e,p=t?tc(o||{},t):o,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:p,key:p&&qr(p),ref:t&&t.ref?n&&r?V(r)?r.concat(Pn(t)):[r,Pn(t)]:Pn(t):r,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!==pe?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&jt(e.ssContent),ssFallback:e.ssFallback&&jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&Hs(u,c.clone(u)),u}function Ce(e=" ",t=0){return oe(Qn,null,e,t)}function ec(e,t){const n=oe(En,null,e);return n.staticCount=t,n}function ce(e="",t=!1){return t?($(),Ql(_t,null,e)):oe(_t,null,e)}function qe(e){return e==null||typeof e=="boolean"?oe(_t):V(e)?oe(pe,null,e.slice()):Nn(e)?dt(e):oe(Qn,null,String(e))}function dt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:jt(e)}function Ks(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(V(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),Ks(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!Mr(t)?t._ctx=Te:o===3&&Te&&(Te.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else U(t)?(t={default:t,_ctx:Te},n=32):(t=String(t),s&64?(n=16,t=[Ce(t)]):n=8);e.children=t,e.shapeFlag|=n}function tc(...e){const t={};for(let n=0;nme||Te;let $n,xs;{const e=hn(),t=(n,s)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(s),r=>{o.length>1?o.forEach(l=>l(r)):o[0](r)}};$n=t("__VUE_INSTANCE_SETTERS__",n=>me=n),xs=t("__VUE_SSR_SETTERS__",n=>un=n)}const _n=e=>{const t=me;return $n(e),e.scope.on(),()=>{e.scope.off(),$n(t)}},uo=()=>{me&&me.scope.off(),$n(null)};function zr(e){return e.vnode.shapeFlag&4}let un=!1;function ic(e,t=!1,n=!1){t&&xs(t);const{props:s,children:o}=e.vnode,r=zr(e);Tl(e,s,r,t),Dl(e,o,n||t);const l=r?lc(e,t):void 0;return t&&xs(!1),l}function lc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,bl);const{setup:s}=n;if(s){st();const o=e.setupContext=s.length>1?ac(e):null,r=_n(e),l=gn(s,e,0,[e.props,o]),i=zo(l);if(ot(),r(),(i||e.sp)&&!en(e)&&Cr(e),i){if(l.then(uo,uo),t)return l.then(c=>{fo(e,c,t)}).catch(c=>{Gn(c,e,0)});e.asyncDep=l}else fo(e,l,t)}else Gr(e,t)}function fo(e,t,n){U(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:se(t)&&(e.setupState=_r(t)),Gr(e,n)}let po;function Gr(e,t,n){const s=e.type;if(!e.render){if(!t&&po&&!s.render){const o=s.template||Vs(e).template;if(o){const{isCustomElement:r,compilerOptions:l}=e.appContext.config,{delimiters:i,compilerOptions:c}=s,p=ue(ue({isCustomElement:r,delimiters:i},l),c);s.render=po(o,p)}}e.render=s.render||Ne}{const o=_n(e);st();try{xl(e)}finally{ot(),o()}}}const cc={get(e,t){return ge(e,"get",""),e[t]}};function ac(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,cc),slots:e.slots,emit:e.emit,expose:t}}function Xn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(_r(Wi(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in tn)return tn[n](e)},has(t,n){return n in t||n in tn}})):e.proxy}function uc(e,t=!0){return U(e)?e.displayName||e.name:e.name||t&&e.__name}function fc(e){return U(e)&&"__vccOpts"in e}const ke=(e,t)=>Qi(e,t,un);function Jr(e,t,n){const s=(r,l,i)=>{kn(-1);try{return oe(r,l,i)}finally{kn(1)}},o=arguments.length;return o===2?se(t)&&!V(t)?Nn(t)?s(e,null,[t]):s(e,t):s(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Nn(n)&&(n=[n]),s(e,t,n))}const dc="3.5.21";/** -* @vue/runtime-dom v3.5.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Ss;const ho=typeof window<"u"&&window.trustedTypes;if(ho)try{Ss=ho.createPolicy("vue",{createHTML:e=>e})}catch{}const Yr=Ss?e=>Ss.createHTML(e):e=>e,pc="http://www.w3.org/2000/svg",hc="http://www.w3.org/1998/Math/MathML",Xe=typeof document<"u"?document:null,go=Xe&&Xe.createElement("template"),gc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const o=t==="svg"?Xe.createElementNS(pc,e):t==="mathml"?Xe.createElementNS(hc,e):n?Xe.createElement(e,{is:n}):Xe.createElement(e);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>Xe.createTextNode(e),createComment:e=>Xe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Xe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,o,r){const l=n?n.previousSibling:t.lastChild;if(o&&(o===r||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===r||!(o=o.nextSibling)););else{go.innerHTML=Yr(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const i=go.content;if(s==="svg"||s==="mathml"){const c=i.firstChild;for(;c.firstChild;)i.appendChild(c.firstChild);i.removeChild(c)}t.insertBefore(i,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},mc=Symbol("_vtc");function _c(e,t,n){const s=e[mc];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ln=Symbol("_vod"),Qr=Symbol("_vsh"),mo={name:"show",beforeMount(e,{value:t},{transition:n}){e[Ln]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):zt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),zt(e,!0),s.enter(e)):s.leave(e,()=>{zt(e,!1)}):zt(e,t))},beforeUnmount(e,{value:t}){zt(e,t)}};function zt(e,t){e.style.display=t?e[Ln]:"none",e[Qr]=!t}const vc=Symbol(""),yc=/(?:^|;)\s*display\s*:/;function bc(e,t,n){const s=e.style,o=le(n);let r=!1;if(n&&!o){if(t)if(le(t))for(const l of t.split(";")){const i=l.slice(0,l.indexOf(":")).trim();n[i]==null&&An(s,i,"")}else for(const l in t)n[l]==null&&An(s,l,"");for(const l in n)l==="display"&&(r=!0),An(s,l,n[l])}else if(o){if(t!==n){const l=s[vc];l&&(n+=";"+l),s.cssText=n,r=yc.test(n)}}else t&&e.removeAttribute("style");Ln in e&&(e[Ln]=r?s.display:"",e[Qr]&&(s.display="none"))}const _o=/\s*!important$/;function An(e,t,n){if(V(n))n.forEach(s=>An(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=xc(e,t);_o.test(n)?e.setProperty(Et(s),n.replace(_o,""),"important"):e[s]=n}}const vo=["Webkit","Moz","ms"],cs={};function xc(e,t){const n=cs[t];if(n)return n;let s=De(t);if(s!=="filter"&&s in e)return cs[t]=s;s=Kn(s);for(let o=0;oas||(Ec.then(()=>as=0),as=Date.now());function Ac(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ge(Tc(s,n.value),t,5,[s])};return n.value=e,n.attached=Pc(),n}function Tc(e,t){if(V(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>o=>!o._stopped&&s&&s(o))}else return t}const Co=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Rc=(e,t,n,s,o,r)=>{const l=o==="svg";t==="class"?_c(e,s,l):t==="style"?bc(e,n,s):Vn(t)?As(t)||wc(e,t,n,s,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Oc(e,t,s,l))?(xo(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&bo(e,t,s,l,r,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!le(s))?xo(e,De(t),s,r,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),bo(e,t,s,l))};function Oc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Co(t)&&U(n));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 o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Co(t)&&le(n)?!1:t in e}const jn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return V(t)?n=>Sn(t,n):t};function Ic(e){e.target.composing=!0}function Eo(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lt=Symbol("_assign"),wt={created(e,{modifiers:{lazy:t,trim:n,number:s}},o){e[Lt]=jn(o);const r=s||o.props&&o.props.type==="number";St(e,t?"change":"input",l=>{if(l.target.composing)return;let i=e.value;n&&(i=i.trim()),r&&(i=Tn(i)),e[Lt](i)}),n&&St(e,"change",()=>{e.value=e.value.trim()}),t||(St(e,"compositionstart",Ic),St(e,"compositionend",Eo),St(e,"change",Eo))},mounted(e,{value:t}){e.value=t==null?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:o,number:r}},l){if(e[Lt]=jn(l),e.composing)return;const i=(r||e.type==="number")&&!/^0\d/.test(e.value)?Tn(e.value):e.value,c=t==null?"":t;i!==c&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||o&&e.value.trim()===c)||(e.value=c))}},Po={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const o=Bn(t);St(e,"change",()=>{const r=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?Tn(Hn(l)):Hn(l));e[Lt](e.multiple?o?new Set(r):r:r[0]),e._assigning=!0,Ls(()=>{e._assigning=!1})}),e[Lt]=jn(s)},mounted(e,{value:t}){Ao(e,t)},beforeUpdate(e,t,n){e[Lt]=jn(n)},updated(e,{value:t}){e._assigning||Ao(e,t)}};function Ao(e,t){const n=e.multiple,s=V(t);if(!(n&&!s&&!Bn(t))){for(let o=0,r=e.options.length;oString(p)===String(i)):l.selected=Ci(t,i)>-1}else l.selected=t.has(i);else if(Wn(Hn(l),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Hn(e){return"_value"in e?e._value:e.value}const Dc=["ctrl","shift","alt","meta"],Mc={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)=>Dc.some(n=>e[`${n}Key`]&&!t.includes(n))},ut=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(o,...r)=>{for(let l=0;l{const t=kc().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=Lc(s);if(!o)return;const r=t._component;!U(r)&&!r.render&&!r.template&&(r.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const l=n(o,!1,$c(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},t};function $c(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Lc(e){return le(e)?document.querySelector(e):e}const Bt=(e,t)=>{const n=e.__vccOpts||e;for(const[s,o]of t)n[s]=o;return n},jc={name:"App"},Hc={id:"app"};function Vc(e,t,n,s,o,r){const l=mn("router-view");return $(),L("div",Hc,[oe(l)])}const Bc=Bt(jc,[["render",Vc]]);/*! - * vue-router v4.5.1 - * (c) 2025 Eduardo San Martin Morote - * @license MIT - */const It=typeof document<"u";function Xr(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Uc(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Xr(e.default)}const G=Object.assign;function us(e,t){const n={};for(const s in t){const o=t[s];n[s]=Le(o)?o.map(e):e(o)}return n}const sn=()=>{},Le=Array.isArray,Zr=/#/g,Kc=/&/g,Wc=/\//g,qc=/=/g,zc=/\?/g,ei=/\+/g,Gc=/%5B/g,Jc=/%5D/g,ti=/%5E/g,Yc=/%60/g,ni=/%7B/g,Qc=/%7C/g,si=/%7D/g,Xc=/%20/g;function Ws(e){return encodeURI(""+e).replace(Qc,"|").replace(Gc,"[").replace(Jc,"]")}function Zc(e){return Ws(e).replace(ni,"{").replace(si,"}").replace(ti,"^")}function ws(e){return Ws(e).replace(ei,"%2B").replace(Xc,"+").replace(Zr,"%23").replace(Kc,"%26").replace(Yc,"`").replace(ni,"{").replace(si,"}").replace(ti,"^")}function ea(e){return ws(e).replace(qc,"%3D")}function ta(e){return Ws(e).replace(Zr,"%23").replace(zc,"%3F")}function na(e){return e==null?"":ta(e).replace(Wc,"%2F")}function fn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const sa=/\/$/,oa=e=>e.replace(sa,"");function fs(e,t,n="/"){let s,o={},r="",l="";const i=t.indexOf("#");let c=t.indexOf("?");return i=0&&(c=-1),c>-1&&(s=t.slice(0,c),r=t.slice(c+1,i>-1?i:t.length),o=e(r)),i>-1&&(s=s||t.slice(0,i),l=t.slice(i,t.length)),s=ca(s!=null?s:t,n),{fullPath:s+(r&&"?")+r+l,path:s,query:o,hash:fn(l)}}function ra(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Ro(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ia(e,t,n){const s=t.matched.length-1,o=n.matched.length-1;return s>-1&&s===o&&Ht(t.matched[s],n.matched[o])&&oi(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Ht(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oi(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!la(e[n],t[n]))return!1;return!0}function la(e,t){return Le(e)?Oo(e,t):Le(t)?Oo(t,e):e===t}function Oo(e,t){return Le(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function ca(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),o=s[s.length-1];(o===".."||o===".")&&s.push("");let r=n.length-1,l,i;for(l=0;l1&&r--;else break;return n.slice(0,r).join("/")+"/"+s.slice(l).join("/")}const at={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var dn;(function(e){e.pop="pop",e.push="push"})(dn||(dn={}));var on;(function(e){e.back="back",e.forward="forward",e.unknown=""})(on||(on={}));function aa(e){if(!e)if(It){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),oa(e)}const ua=/^[^#]+#/;function fa(e,t){return e.replace(ua,"#")+t}function da(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const Zn=()=>({left:window.scrollX,top:window.scrollY});function pa(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=da(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Io(e,t){return(history.state?history.state.position-t:-1)+e}const Cs=new Map;function ha(e,t){Cs.set(e,t)}function ga(e){const t=Cs.get(e);return Cs.delete(e),t}let ma=()=>location.protocol+"//"+location.host;function ri(e,t){const{pathname:n,search:s,hash:o}=t,r=e.indexOf("#");if(r>-1){let i=o.includes(e.slice(r))?e.slice(r).length:1,c=o.slice(i);return c[0]!=="/"&&(c="/"+c),Ro(c,"")}return Ro(n,e)+s+o}function _a(e,t,n,s){let o=[],r=[],l=null;const i=({state:m})=>{const _=ri(e,location),T=n.value,O=t.value;let K=0;if(m){if(n.value=_,t.value=m,l&&l===T){l=null;return}K=O?m.position-O.position:0}else s(_);o.forEach(N=>{N(n.value,T,{delta:K,type:dn.pop,direction:K?K>0?on.forward:on.back:on.unknown})})};function c(){l=n.value}function p(m){o.push(m);const _=()=>{const T=o.indexOf(m);T>-1&&o.splice(T,1)};return r.push(_),_}function u(){const{history:m}=window;!m.state||m.replaceState(G({},m.state,{scroll:Zn()}),"")}function h(){for(const m of r)m();r=[],window.removeEventListener("popstate",i),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",i),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:c,listen:p,destroy:h}}function Do(e,t,n,s=!1,o=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:o?Zn():null}}function va(e){const{history:t,location:n}=window,s={value:ri(e,n)},o={value:t.state};o.value||r(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(c,p,u){const h=e.indexOf("#"),m=h>-1?(n.host&&document.querySelector("base")?e:e.slice(h))+c:ma()+e+c;try{t[u?"replaceState":"pushState"](p,"",m),o.value=p}catch(_){console.error(_),n[u?"replace":"assign"](m)}}function l(c,p){const u=G({},t.state,Do(o.value.back,c,o.value.forward,!0),p,{position:o.value.position});r(c,u,!0),s.value=c}function i(c,p){const u=G({},o.value,t.state,{forward:c,scroll:Zn()});r(u.current,u,!0);const h=G({},Do(s.value,c,null),{position:u.position+1},p);r(c,h,!1),s.value=c}return{location:s,state:o,push:i,replace:l}}function ya(e){e=aa(e);const t=va(e),n=_a(e,t.state,t.location,t.replace);function s(r,l=!0){l||n.pauseListeners(),history.go(r)}const o=G({location:"",base:e,go:s,createHref:fa.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function ba(e){return typeof e=="string"||e&&typeof e=="object"}function ii(e){return typeof e=="string"||typeof e=="symbol"}const li=Symbol("");var Mo;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Mo||(Mo={}));function Vt(e,t){return G(new Error,{type:e,[li]:!0},t)}function Qe(e,t){return e instanceof Error&&li in e&&(t==null||!!(e.type&t))}const Fo="[^/]+?",xa={sensitive:!1,strict:!1,start:!0,end:!0},Sa=/[.+*?^${}()[\]/\\]/g;function wa(e,t){const n=G({},xa,t),s=[];let o=n.start?"^":"";const r=[];for(const p of e){const u=p.length?[]:[90];n.strict&&!p.length&&(o+="/");for(let h=0;ht.length?t.length===1&&t[0]===40+40?1:-1:0}function ci(e,t){let n=0;const s=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const Ea={type:0,value:""},Pa=/[a-zA-Z0-9_]/;function Aa(e){if(!e)return[[]];if(e==="/")return[[Ea]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(_){throw new Error(`ERR (${n})/"${p}": ${_}`)}let n=0,s=n;const o=[];let r;function l(){r&&o.push(r),r=[]}let i=0,c,p="",u="";function h(){!p||(n===0?r.push({type:0,value:p}):n===1||n===2||n===3?(r.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${p}) must be alone in its segment. eg: '/:ids+.`),r.push({type:1,value:p,regexp:u,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),p="")}function m(){p+=c}for(;i{l(j)}:sn}function l(h){if(ii(h)){const m=s.get(h);m&&(s.delete(h),n.splice(n.indexOf(m),1),m.children.forEach(l),m.alias.forEach(l))}else{const m=n.indexOf(h);m>-1&&(n.splice(m,1),h.record.name&&s.delete(h.record.name),h.children.forEach(l),h.alias.forEach(l))}}function i(){return n}function c(h){const m=Da(h,n);n.splice(m,0,h),h.record.name&&!Lo(h)&&s.set(h.record.name,h)}function p(h,m){let _,T={},O,K;if("name"in h&&h.name){if(_=s.get(h.name),!_)throw Vt(1,{location:h});K=_.record.name,T=G(No(m.params,_.keys.filter(j=>!j.optional).concat(_.parent?_.parent.keys.filter(j=>j.optional):[]).map(j=>j.name)),h.params&&No(h.params,_.keys.map(j=>j.name))),O=_.stringify(T)}else if(h.path!=null)O=h.path,_=n.find(j=>j.re.test(O)),_&&(T=_.parse(O),K=_.record.name);else{if(_=m.name?s.get(m.name):n.find(j=>j.re.test(m.path)),!_)throw Vt(1,{location:h,currentLocation:m});K=_.record.name,T=G({},m.params,h.params),O=_.stringify(T)}const N=[];let I=_;for(;I;)N.unshift(I.record),I=I.parent;return{name:K,path:O,params:T,matched:N,meta:Ia(N)}}e.forEach(h=>r(h));function u(){n.length=0,s.clear()}return{addRoute:r,resolve:p,removeRoute:l,clearRoutes:u,getRoutes:i,getRecordMatcher:o}}function No(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function $o(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Oa(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Oa(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function Lo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ia(e){return e.reduce((t,n)=>G(t,n.meta),{})}function jo(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}function Da(e,t){let n=0,s=t.length;for(;n!==s;){const r=n+s>>1;ci(e,t[r])<0?s=r:n=r+1}const o=Ma(e);return o&&(s=t.lastIndexOf(o,s-1)),s}function Ma(e){let t=e;for(;t=t.parent;)if(ai(t)&&ci(e,t)===0)return t}function ai({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Fa(e){const t={};if(e===""||e==="?")return t;const s=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;or&&ws(r)):[s&&ws(s)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function ka(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Le(s)?s.map(o=>o==null?null:""+o):s==null?s:""+s)}return t}const Na=Symbol(""),Vo=Symbol(""),qs=Symbol(""),ui=Symbol(""),Es=Symbol("");function Gt(){let e=[];function t(s){return e.push(s),()=>{const o=e.indexOf(s);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function pt(e,t,n,s,o,r=l=>l()){const l=s&&(s.enterCallbacks[o]=s.enterCallbacks[o]||[]);return()=>new Promise((i,c)=>{const p=m=>{m===!1?c(Vt(4,{from:n,to:t})):m instanceof Error?c(m):ba(m)?c(Vt(2,{from:t,to:m})):(l&&s.enterCallbacks[o]===l&&typeof m=="function"&&l.push(m),i())},u=r(()=>e.call(s&&s.instances[o],t,n,p));let h=Promise.resolve(u);e.length<3&&(h=h.then(p)),h.catch(m=>c(m))})}function ds(e,t,n,s,o=r=>r()){const r=[];for(const l of e)for(const i in l.components){let c=l.components[i];if(!(t!=="beforeRouteEnter"&&!l.instances[i]))if(Xr(c)){const u=(c.__vccOpts||c)[t];u&&r.push(pt(u,n,s,l,i,o))}else{let p=c();r.push(()=>p.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${i}" at "${l.path}"`);const h=Uc(u)?u.default:u;l.mods[i]=u,l.components[i]=h;const _=(h.__vccOpts||h)[t];return _&&pt(_,n,s,l,i,o)()}))}}return r}function Bo(e){const t=nt(qs),n=nt(ui),s=ke(()=>{const c=kt(e.to);return t.resolve(c)}),o=ke(()=>{const{matched:c}=s.value,{length:p}=c,u=c[p-1],h=n.matched;if(!u||!h.length)return-1;const m=h.findIndex(Ht.bind(null,u));if(m>-1)return m;const _=Uo(c[p-2]);return p>1&&Uo(u)===_&&h[h.length-1].path!==_?h.findIndex(Ht.bind(null,c[p-2])):m}),r=ke(()=>o.value>-1&&Va(n.params,s.value.params)),l=ke(()=>o.value>-1&&o.value===n.matched.length-1&&oi(n.params,s.value.params));function i(c={}){if(Ha(c)){const p=t[kt(e.replace)?"replace":"push"](kt(e.to)).catch(sn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>p),p}return Promise.resolve()}return{route:s,href:ke(()=>s.value.href),isActive:r,isExactActive:l,navigate:i}}function $a(e){return e.length===1?e[0]:e}const La=wr({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Bo,setup(e,{slots:t}){const n=zn(Bo(e)),{options:s}=nt(qs),o=ke(()=>({[Ko(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[Ko(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const r=t.default&&$a(t.default(n));return e.custom?r:Jr("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},r)}}}),ja=La;function Ha(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Va(e,t){for(const n in t){const s=t[n],o=e[n];if(typeof s=="string"){if(s!==o)return!1}else if(!Le(o)||o.length!==s.length||s.some((r,l)=>r!==o[l]))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ko=(e,t,n)=>e!=null?e:t!=null?t:n,Ba=wr({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=nt(Es),o=ke(()=>e.route||s.value),r=nt(Vo,0),l=ke(()=>{let p=kt(r);const{matched:u}=o.value;let h;for(;(h=u[p])&&!h.components;)p++;return p}),i=ke(()=>o.value.matched[l.value]);wn(Vo,ke(()=>l.value+1)),wn(Na,i),wn(Es,o);const c=qi();return Cn(()=>[c.value,i.value,e.name],([p,u,h],[m,_,T])=>{u&&(u.instances[h]=p,_&&_!==u&&p&&p===m&&(u.leaveGuards.size||(u.leaveGuards=_.leaveGuards),u.updateGuards.size||(u.updateGuards=_.updateGuards))),p&&u&&(!_||!Ht(u,_)||!m)&&(u.enterCallbacks[h]||[]).forEach(O=>O(p))},{flush:"post"}),()=>{const p=o.value,u=e.name,h=i.value,m=h&&h.components[u];if(!m)return Wo(n.default,{Component:m,route:p});const _=h.props[u],T=_?_===!0?p.params:typeof _=="function"?_(p):_:null,K=Jr(m,G({},T,t,{onVnodeUnmounted:N=>{N.component.isUnmounted&&(h.instances[u]=null)},ref:c}));return Wo(n.default,{Component:K,route:p})||K}}});function Wo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Ua=Ba;function Ka(e){const t=Ra(e.routes,e),n=e.parseQuery||Fa,s=e.stringifyQuery||Ho,o=e.history,r=Gt(),l=Gt(),i=Gt(),c=zi(at);let p=at;It&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=us.bind(null,y=>""+y),h=us.bind(null,na),m=us.bind(null,fn);function _(y,R){let P,D;return ii(y)?(P=t.getRecordMatcher(y),D=R):D=y,t.addRoute(D,P)}function T(y){const R=t.getRecordMatcher(y);R&&t.removeRoute(R)}function O(){return t.getRoutes().map(y=>y.record)}function K(y){return!!t.getRecordMatcher(y)}function N(y,R){if(R=G({},R||c.value),typeof y=="string"){const d=fs(n,y,R.path),g=t.resolve({path:d.path},R),b=o.createHref(d.fullPath);return G(d,g,{params:m(g.params),hash:fn(d.hash),redirectedFrom:void 0,href:b})}let P;if(y.path!=null)P=G({},y,{path:fs(n,y.path,R.path).path});else{const d=G({},y.params);for(const g in d)d[g]==null&&delete d[g];P=G({},y,{params:h(d)}),R.params=h(R.params)}const D=t.resolve(P,R),z=y.hash||"";D.params=u(m(D.params));const re=ra(s,G({},y,{hash:Zc(z),path:D.path})),a=o.createHref(re);return G({fullPath:re,hash:z,query:s===Ho?ka(y.query):y.query||{}},D,{redirectedFrom:void 0,href:a})}function I(y){return typeof y=="string"?fs(n,y,c.value.path):G({},y)}function j(y,R){if(p!==y)return Vt(8,{from:R,to:y})}function M(y){return ie(y)}function Z(y){return M(G(I(y),{replace:!0}))}function fe(y){const R=y.matched[y.matched.length-1];if(R&&R.redirect){const{redirect:P}=R;let D=typeof P=="function"?P(y):P;return typeof D=="string"&&(D=D.includes("?")||D.includes("#")?D=I(D):{path:D},D.params={}),G({query:y.query,hash:y.hash,params:D.path!=null?{}:y.params},D)}}function ie(y,R){const P=p=N(y),D=c.value,z=y.state,re=y.force,a=y.replace===!0,d=fe(P);if(d)return ie(G(I(d),{state:typeof d=="object"?G({},z,d.state):z,force:re,replace:a}),R||P);const g=P;g.redirectedFrom=R;let b;return!re&&ia(s,D,P)&&(b=Vt(16,{to:g,from:D}),Be(D,D,!0,!1)),(b?Promise.resolve(b):He(g,D)).catch(v=>Qe(v)?Qe(v,2)?v:ct(v):q(v,g,D)).then(v=>{if(v){if(Qe(v,2))return ie(G({replace:a},I(v.to),{state:typeof v.to=="object"?G({},z,v.to.state):z,force:re}),R||g)}else v=vt(g,D,!0,a,z);return lt(g,D,v),v})}function je(y,R){const P=j(y,R);return P?Promise.reject(P):Promise.resolve()}function it(y){const R=Tt.values().next().value;return R&&typeof R.runWithContext=="function"?R.runWithContext(y):y()}function He(y,R){let P;const[D,z,re]=Wa(y,R);P=ds(D.reverse(),"beforeRouteLeave",y,R);for(const d of D)d.leaveGuards.forEach(g=>{P.push(pt(g,y,R))});const a=je.bind(null,y,R);return P.push(a),Oe(P).then(()=>{P=[];for(const d of r.list())P.push(pt(d,y,R));return P.push(a),Oe(P)}).then(()=>{P=ds(z,"beforeRouteUpdate",y,R);for(const d of z)d.updateGuards.forEach(g=>{P.push(pt(g,y,R))});return P.push(a),Oe(P)}).then(()=>{P=[];for(const d of re)if(d.beforeEnter)if(Le(d.beforeEnter))for(const g of d.beforeEnter)P.push(pt(g,y,R));else P.push(pt(d.beforeEnter,y,R));return P.push(a),Oe(P)}).then(()=>(y.matched.forEach(d=>d.enterCallbacks={}),P=ds(re,"beforeRouteEnter",y,R,it),P.push(a),Oe(P))).then(()=>{P=[];for(const d of l.list())P.push(pt(d,y,R));return P.push(a),Oe(P)}).catch(d=>Qe(d,8)?d:Promise.reject(d))}function lt(y,R,P){i.list().forEach(D=>it(()=>D(y,R,P)))}function vt(y,R,P,D,z){const re=j(y,R);if(re)return re;const a=R===at,d=It?history.state:{};P&&(D||a?o.replace(y.fullPath,G({scroll:a&&d&&d.scroll},z)):o.push(y.fullPath,z)),c.value=y,Be(y,R,P,a),ct()}let Ve;function Ut(){Ve||(Ve=o.listen((y,R,P)=>{if(!vn.listening)return;const D=N(y),z=fe(D);if(z){ie(G(z,{replace:!0,force:!0}),D).catch(sn);return}p=D;const re=c.value;It&&ha(Io(re.fullPath,P.delta),Zn()),He(D,re).catch(a=>Qe(a,12)?a:Qe(a,2)?(ie(G(I(a.to),{force:!0}),D).then(d=>{Qe(d,20)&&!P.delta&&P.type===dn.pop&&o.go(-1,!1)}).catch(sn),Promise.reject()):(P.delta&&o.go(-P.delta,!1),q(a,D,re))).then(a=>{a=a||vt(D,re,!1),a&&(P.delta&&!Qe(a,8)?o.go(-P.delta,!1):P.type===dn.pop&&Qe(a,20)&&o.go(-1,!1)),lt(D,re,a)}).catch(sn)}))}let Pt=Gt(),ae=Gt(),X;function q(y,R,P){ct(y);const D=ae.list();return D.length?D.forEach(z=>z(y,R,P)):console.error(y),Promise.reject(y)}function Je(){return X&&c.value!==at?Promise.resolve():new Promise((y,R)=>{Pt.add([y,R])})}function ct(y){return X||(X=!y,Ut(),Pt.list().forEach(([R,P])=>y?P(y):R()),Pt.reset()),y}function Be(y,R,P,D){const{scrollBehavior:z}=e;if(!It||!z)return Promise.resolve();const re=!P&&ga(Io(y.fullPath,0))||(D||!P)&&history.state&&history.state.scroll||null;return Ls().then(()=>z(y,R,re)).then(a=>a&&pa(a)).catch(a=>q(a,y,R))}const be=y=>o.go(y);let At;const Tt=new Set,vn={currentRoute:c,listening:!0,addRoute:_,removeRoute:T,clearRoutes:t.clearRoutes,hasRoute:K,getRoutes:O,resolve:N,options:e,push:M,replace:Z,go:be,back:()=>be(-1),forward:()=>be(1),beforeEach:r.add,beforeResolve:l.add,afterEach:i.add,onError:ae.add,isReady:Je,install(y){const R=this;y.component("RouterLink",ja),y.component("RouterView",Ua),y.config.globalProperties.$router=R,Object.defineProperty(y.config.globalProperties,"$route",{enumerable:!0,get:()=>kt(c)}),It&&!At&&c.value===at&&(At=!0,M(o.location).catch(z=>{}));const P={};for(const z in at)Object.defineProperty(P,z,{get:()=>c.value[z],enumerable:!0});y.provide(qs,R),y.provide(ui,hr(P)),y.provide(Es,c);const D=y.unmount;Tt.add(y),y.unmount=function(){Tt.delete(y),Tt.size<1&&(p=at,Ve&&Ve(),Ve=null,c.value=at,At=!1,X=!1),D()}}};function Oe(y){return y.reduce((R,P)=>R.then(()=>it(P)),Promise.resolve())}return vn}function Wa(e,t){const n=[],s=[],o=[],r=Math.max(t.matched.length,e.matched.length);for(let l=0;lHt(p,i))?s.push(i):n.push(i));const c=e.matched[l];c&&(t.matched.find(p=>Ht(p,c))||o.push(c))}return[n,s,o]}const qa={name:"Login",data(){return{loginForm:{username:"",password:""},loading:!1,error:"",success:""}},methods:{async handleLogin(){this.loading=!0,this.error="",this.success="";try{const e=await fetch("/api/v1/user/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(this.loginForm)}),t=await e.json();e.ok&&t.code===0?(this.success=t.message,localStorage.setItem("authToken",t.data.token),localStorage.setItem("userId",t.data.id),localStorage.setItem("username",t.data.username),setTimeout(()=>{this.$router.push("/dashboard")},500)):this.error=t.message||"\u767B\u5F55\u5931\u8D25"}catch{this.error="\u7F51\u7EDC\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"}finally{this.loading=!1}}}},za={class:"login-container"},Ga={class:"form-group"},Ja={class:"form-group"},Ya=["disabled"],Qa={key:0,class:"error-message"},Xa={key:1,class:"success-message"};function Za(e,t,n,s,o,r){return $(),L("div",za,[t[5]||(t[5]=f("div",{class:"logo"},"\u{1F437}",-1)),t[6]||(t[6]=f("h1",null,"\u732A\u573A\u7BA1\u7406\u7CFB\u7EDF",-1)),t[7]||(t[7]=f("p",{class:"subtitle"},"\u8BF7\u767B\u5F55\u60A8\u7684\u8D26\u6237",-1)),f("form",{onSubmit:t[2]||(t[2]=ut((...l)=>r.handleLogin&&r.handleLogin(...l),["prevent"]))},[f("div",Ga,[t[3]||(t[3]=f("label",{for:"username"},"\u7528\u6237\u540D",-1)),Fe(f("input",{type:"text",id:"username","onUpdate:modelValue":t[0]||(t[0]=l=>o.loginForm.username=l),required:"",placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u540D"},null,512),[[wt,o.loginForm.username]])]),f("div",Ja,[t[4]||(t[4]=f("label",{for:"password"},"\u5BC6\u7801",-1)),Fe(f("input",{type:"password",id:"password","onUpdate:modelValue":t[1]||(t[1]=l=>o.loginForm.password=l),required:"",placeholder:"\u8BF7\u8F93\u5165\u5BC6\u7801"},null,512),[[wt,o.loginForm.password]])]),f("button",{type:"submit",disabled:o.loading},F(o.loading?"\u767B\u5F55\u4E2D...":"\u767B\u5F55"),9,Ya)],32),o.error?($(),L("div",Qa,F(o.error),1)):ce("",!0),o.success?($(),L("div",Xa,F(o.success),1)):ce("",!0)])}const eu=Bt(qa,[["render",Za],["__scopeId","data-v-bb5c78dc"]]);const tu={name:"Dashboard",data(){return{username:localStorage.getItem("username")||"\u7BA1\u7406\u5458"}},methods:{logout(){localStorage.removeItem("authToken"),localStorage.removeItem("userId"),localStorage.removeItem("username"),this.$router.push("/")},controlDevice(e,t){alert(`\u6B63\u5728${t==="on"?"\u5F00\u542F":"\u5173\u95ED"}${e==="fan"?"\u98CE\u673A":"\u6C34\u5E18"}`)}}},nu={class:"header"},su={class:"user-info"},ou={class:"nav"},ru={class:"container"},iu={class:"device-control"},lu={class:"control-grid"},cu={class:"control-item"},au={class:"control-buttons"},uu={class:"control-item"},fu={class:"control-buttons"};function du(e,t,n,s,o,r){const l=mn("router-link");return $(),L("div",null,[f("div",nu,[t[5]||(t[5]=f("h1",null,"\u{1F437} \u732A\u573A\u7BA1\u7406\u7CFB\u7EDF",-1)),f("div",su,[f("span",null,F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...i)=>r.logout&&r.logout(...i))},"\u9000\u51FA\u767B\u5F55")])]),f("div",ou,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard",class:"active"},{default:we(()=>[...t[6]||(t[6]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device"},{default:we(()=>[...t[7]||(t[7]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan"},{default:we(()=>[...t[8]||(t[8]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),f("div",ru,[t[12]||(t[12]=f("div",{class:"dashboard-grid"},[f("div",{class:"card"},[f("h3",null,"\u{1F4C8} \u73AF\u5883\u76D1\u63A7"),f("p",null,"\u5B9E\u65F6\u76D1\u63A7\u732A\u820D\u73AF\u5883\u53C2\u6570\uFF0C\u5305\u62EC\u6E29\u5EA6\u3001\u6E7F\u5EA6\u3001\u6C28\u6C14\u6D53\u5EA6\u7B49\u5173\u952E\u6307\u6807\u3002")]),f("div",{class:"card"},[f("h3",null,"\u{1F514} \u544A\u8B66\u4FE1\u606F"),f("p",null,"\u67E5\u770B\u7CFB\u7EDF\u544A\u8B66\u548C\u5F02\u5E38\u60C5\u51B5\uFF0C\u53CA\u65F6\u5904\u7406\u5404\u79CD\u8BBE\u5907\u6545\u969C\u548C\u73AF\u5883\u5F02\u5E38\u3002")]),f("div",{class:"card"},[f("h3",null,"\u{1F4CA} \u6570\u636E\u5206\u6790"),f("p",null,"\u5206\u6790\u5386\u53F2\u6570\u636E\uFF0C\u751F\u6210\u8D8B\u52BF\u56FE\u8868\uFF0C\u4E3A\u517B\u6B96\u51B3\u7B56\u63D0\u4F9B\u6570\u636E\u652F\u6301\u3002")])],-1)),f("div",iu,[t[11]||(t[11]=f("h3",null,"\u2699\uFE0F \u8BBE\u5907\u63A7\u5236",-1)),f("div",lu,[f("div",cu,[t[9]||(t[9]=f("h4",null,"\u98CE\u673A\u63A7\u5236",-1)),f("div",au,[f("button",{class:"control-btn on-btn",onClick:t[1]||(t[1]=i=>r.controlDevice("fan","on"))},"\u5F00\u542F"),f("button",{class:"control-btn off-btn",onClick:t[2]||(t[2]=i=>r.controlDevice("fan","off"))},"\u5173\u95ED")])]),f("div",uu,[t[10]||(t[10]=f("h4",null,"\u6C34\u5E18\u63A7\u5236",-1)),f("div",fu,[f("button",{class:"control-btn on-btn",onClick:t[3]||(t[3]=i=>r.controlDevice("water_curtain","on"))},"\u5F00\u542F"),f("button",{class:"control-btn off-btn",onClick:t[4]||(t[4]=i=>r.controlDevice("water_curtain","off"))},"\u5173\u95ED")])])])])])])}const pu=Bt(tu,[["render",du],["__scopeId","data-v-904f2d71"]]);const hu={name:"Device",data(){return{username:localStorage.getItem("username")||"\u7BA1\u7406\u5458",devices:[],showModal:!1,editingDevice:null,deviceForm:{id:null,name:"",type:"",parent_id:null,address:null,bus_number:null,device_address:null},expandedNodes:new Set}},computed:{relayDevices(){return this.devices.filter(e=>e.type==="relay")}},mounted(){this.loadDevices()},methods:{logout(){localStorage.removeItem("authToken"),localStorage.removeItem("userId"),localStorage.removeItem("username"),this.$router.push("/")},toggleNode(e){this.expandedNodes.has(e)?this.expandedNodes.delete(e):this.expandedNodes.add(e)},getControllerDevices(e){return this.devices.filter(t=>t.parent_id===e&&(t.type==="pig_pen_controller"||t.type==="feed_mill_controller"))},getLeafDevices(e){return this.devices.filter(t=>t.parent_id===e&&(t.type==="fan"||t.type==="water_curtain"))},getDeviceTypeText(e){return{relay:"\u4E2D\u7EE7",pig_pen_controller:"\u732A\u820D\u4E3B\u63A7",feed_mill_controller:"\u505A\u6599\u8F66\u95F4\u4E3B\u63A7",fan:"\u98CE\u673A",water_curtain:"\u6C34\u5E18"}[e]||e},getParentDevices(e){return e==="pig_pen_controller"||e==="feed_mill_controller"?this.devices.filter(t=>t.type==="relay"):e==="fan"||e==="water_curtain"?this.devices.filter(t=>t.type==="pig_pen_controller"||t.type==="feed_mill_controller"):[]},getParentDevicesWithDisplayName(e){const t=this.getParentDevices(e);return e==="pig_pen_controller"||e==="feed_mill_controller"?t.map(n=>({...n,display_name:n.name})):e==="fan"||e==="water_curtain"?t.map(n=>{const s=this.devices.find(r=>r.id===n.parent_id),o=s?s.name:"\u672A\u77E5\u4E2D\u7EE7";return{...n,display_name:`${o} - ${n.name}`}}):[]},async loadDevices(){try{const e=await fetch("/api/v1/device/list",{headers:{Authorization:"Bearer "+localStorage.getItem("authToken")}}),t=await e.json();e.ok&&t.code===0?(this.devices=t.data.devices,this.expandAllNodes()):console.error("\u83B7\u53D6\u8BBE\u5907\u5217\u8868\u5931\u8D25:",t.message)}catch(e){console.error("\u83B7\u53D6\u8BBE\u5907\u5217\u8868\u5931\u8D25:",e)}},expandAllNodes(){this.expandedNodes.clear(),this.relayDevices.forEach(e=>{this.expandedNodes.add(e.id),this.getControllerDevices(e.id).forEach(n=>{this.expandedNodes.add(n.id)})})},openAddDeviceModal(){this.editingDevice=null,this.deviceForm={id:null,name:"",type:"",parent_id:null,address:null,bus_number:null,device_address:null},this.showModal=!0},editDevice(e){if(this.editingDevice=e,this.deviceForm={...e},(e.type==="fan"||e.type==="water_curtain")&&e.address){const t=e.address.split(":");t.length===2?(this.deviceForm.bus_number=parseInt(t[0]),this.deviceForm.device_address=t[1]):this.deviceForm.device_address=e.address}this.showModal=!0},initializeDeviceForm(){return{id:null,name:"",type:"",parent_id:null,address:null}},closeDeviceModal(){this.showModal=!1},async saveDevice(){if(!this.deviceForm.name||!this.deviceForm.type){alert("\u8BF7\u586B\u5199\u5FC5\u586B\u5B57\u6BB5");return}if(this.deviceForm.type!=="relay"&&!this.deviceForm.parent_id){alert("\u8BF7\u9009\u62E9\u4E0A\u7EA7\u8BBE\u5907");return}try{let e,t;const n={name:this.deviceForm.name,type:this.deviceForm.type,parent_id:this.deviceForm.parent_id,address:this.deviceForm.address,bus_number:this.deviceForm.bus_number,device_address:this.deviceForm.device_address};this.editingDevice?(e="/api/v1/device/update",t="POST",n.id=this.deviceForm.id):(e="/api/v1/device/create",t="POST");const s=await fetch(e,{method:t,headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify(n)}),o=await s.json();s.ok&&o.code===0?(await this.loadDevices(),this.closeDeviceModal()):alert("\u4FDD\u5B58\u5931\u8D25: "+o.message)}catch(e){console.error("\u4FDD\u5B58\u8BBE\u5907\u5931\u8D25:",e),alert("\u4FDD\u5B58\u8BBE\u5907\u5931\u8D25: "+e.message)}},async deleteDevice(e){if(!!confirm("\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u8BBE\u5907\u5417\uFF1F"))try{const t=await fetch("/api/v1/device/delete",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify({id:e})}),n=await t.json();t.ok&&n.code===0?await this.loadDevices():alert("\u5220\u9664\u5931\u8D25: "+n.message)}catch(t){console.error("\u5220\u9664\u8BBE\u5907\u5931\u8D25:",t),alert("\u5220\u9664\u8BBE\u5907\u5931\u8D25: "+t.message)}},toggleParentField(){this.deviceForm.type==="relay"&&(this.deviceForm.parent_id=null)},toggleNode(e){this.expandedNodes.has(e)?this.expandedNodes.delete(e):this.expandedNodes.add(e)}}},gu={class:"device-management"},mu={class:"header"},_u={class:"user-info"},vu={class:"nav"},yu={class:"main-content"},bu={class:"toolbar"},xu={class:"device-tree"},Su={key:0,class:"no-devices"},wu={key:1},Cu=["onClick"],Eu={class:"node-info"},Pu={class:"toggle-icon"},Au={class:"node-title"},Tu={class:"node-type relay-type"},Ru={key:0,class:"node-address"},Ou={class:"node-actions"},Iu=["onClick"],Du=["onClick"],Mu={class:"children-container"},Fu=["onClick"],ku={class:"node-info"},Nu={class:"toggle-icon"},$u={class:"node-title"},Lu={class:"node-type controller-type"},ju={key:0,class:"node-address"},Hu={class:"node-actions"},Vu=["onClick"],Bu=["onClick"],Uu={class:"children-container"},Ku={class:"node-header"},Wu={class:"node-info"},qu={class:"node-title"},zu={class:"node-type device-type"},Gu={key:0,class:"node-address"},Ju={class:"node-actions"},Yu=["onClick"],Qu=["onClick"],Xu={key:0,class:"modal"},Zu={class:"modal-content"},ef={class:"modal-header"},tf={class:"modal-body"},nf={class:"form-group"},sf={class:"form-group"},of={key:0,class:"form-group"},rf={key:1,class:"form-group"},lf={key:2,class:"form-group"},cf={key:3,class:"form-group"},af=["value"],uf={class:"modal-footer"};function ff(e,t,n,s,o,r){const l=mn("router-link");return $(),L("div",gu,[f("header",mu,[t[14]||(t[14]=f("h1",null,"\u8BBE\u5907\u7BA1\u7406",-1)),f("div",_u,[f("span",null,"\u6B22\u8FCE, "+F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...i)=>r.logout&&r.logout(...i))},"\u9000\u51FA")])]),f("nav",vu,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard"},{default:we(()=>[...t[15]||(t[15]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device",class:"active"},{default:we(()=>[...t[16]||(t[16]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan"},{default:we(()=>[...t[17]||(t[17]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),f("main",yu,[f("div",bu,[f("button",{class:"btn btn-primary",onClick:t[1]||(t[1]=(...i)=>r.openAddDeviceModal&&r.openAddDeviceModal(...i))},"\u6DFB\u52A0\u8BBE\u5907")]),f("div",xu,[o.devices.length===0?($(),L("div",Su," \u6682\u65E0\u8BBE\u5907\u6570\u636E ")):($(),L("div",wu,[($(!0),L(pe,null,ht(r.relayDevices,i=>($(),L("div",{key:i.id,class:"tree-node relay-node"},[f("div",{class:"node-header",onClick:c=>r.toggleNode(i.id)},[f("div",Eu,[f("span",Pu,F(o.expandedNodes.has(i.id)?"\u25BC":"\u25BA"),1),f("span",Au,F(i.name),1),f("span",Tu,F(r.getDeviceTypeText(i.type)),1),i.address?($(),L("span",Ru,"["+F(i.address)+"]",1)):ce("",!0),f("span",{class:tt(["node-status",{"status-active":i.active,"status-inactive":!i.active}])},F(i.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),f("div",Ou,[f("button",{class:"action-btn edit-btn",onClick:ut(c=>r.editDevice(i),["stop"])},"\u7F16\u8F91",8,Iu),f("button",{class:"action-btn delete-btn",onClick:ut(c=>r.deleteDevice(i.id),["stop"])},"\u5220\u9664",8,Du)])],8,Cu),Fe(f("div",Mu,[($(!0),L(pe,null,ht(r.getControllerDevices(i.id),c=>($(),L("div",{key:c.id,class:"tree-node controller-node"},[f("div",{class:"node-header",onClick:p=>r.toggleNode(c.id)},[f("div",ku,[f("span",Nu,F(o.expandedNodes.has(c.id)?"\u25BC":"\u25BA"),1),f("span",$u,F(c.name),1),f("span",Lu,F(r.getDeviceTypeText(c.type)),1),c.address?($(),L("span",ju,"["+F(c.address)+"]",1)):ce("",!0),f("span",{class:tt(["node-status",{"status-active":c.active,"status-inactive":!c.active}])},F(c.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),f("div",Hu,[f("button",{class:"action-btn edit-btn",onClick:ut(p=>r.editDevice(c),["stop"])},"\u7F16\u8F91",8,Vu),f("button",{class:"action-btn delete-btn",onClick:ut(p=>r.deleteDevice(c.id),["stop"])},"\u5220\u9664",8,Bu)])],8,Fu),Fe(f("div",Uu,[($(!0),L(pe,null,ht(r.getLeafDevices(c.id),p=>($(),L("div",{key:p.id,class:"tree-node device-node"},[f("div",Ku,[f("div",Wu,[f("span",qu,F(p.name),1),f("span",zu,F(r.getDeviceTypeText(p.type)),1),p.address?($(),L("span",Gu,"["+F(p.address)+"]",1)):ce("",!0),f("span",{class:tt(["node-status",{"status-active":p.active,"status-inactive":!p.active}])},F(p.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),f("div",Ju,[f("button",{class:"action-btn edit-btn",onClick:ut(u=>r.editDevice(p),["stop"])},"\u7F16\u8F91",8,Yu),f("button",{class:"action-btn delete-btn",onClick:ut(u=>r.deleteDevice(p.id),["stop"])},"\u5220\u9664",8,Qu)])])]))),128))],512),[[mo,o.expandedNodes.has(c.id)]])]))),128))],512),[[mo,o.expandedNodes.has(i.id)]])]))),128))]))])]),o.showModal?($(),L("div",Xu,[f("div",Zu,[f("div",ef,[f("h3",null,F(o.editingDevice?"\u7F16\u8F91\u8BBE\u5907":"\u6DFB\u52A0\u8BBE\u5907"),1),f("button",{class:"close-btn",onClick:t[2]||(t[2]=(...i)=>r.closeDeviceModal&&r.closeDeviceModal(...i))},"\xD7")]),f("div",tf,[f("form",{onSubmit:t[11]||(t[11]=ut((...i)=>r.saveDevice&&r.saveDevice(...i),["prevent"]))},[Fe(f("input",{type:"hidden","onUpdate:modelValue":t[3]||(t[3]=i=>o.deviceForm.id=i)},null,512),[[wt,o.deviceForm.id]]),f("div",nf,[t[18]||(t[18]=f("label",{for:"deviceName"},"\u8BBE\u5907\u540D\u79F0",-1)),Fe(f("input",{type:"text",id:"deviceName","onUpdate:modelValue":t[4]||(t[4]=i=>o.deviceForm.name=i),required:""},null,512),[[wt,o.deviceForm.name]])]),f("div",sf,[t[20]||(t[20]=f("label",{for:"deviceType"},"\u8BBE\u5907\u7C7B\u578B",-1)),Fe(f("select",{id:"deviceType","onUpdate:modelValue":t[5]||(t[5]=i=>o.deviceForm.type=i),required:"",onChange:t[6]||(t[6]=(...i)=>r.toggleParentField&&r.toggleParentField(...i))},[...t[19]||(t[19]=[ec('',6)])],544),[[Po,o.deviceForm.type]])]),(o.deviceForm.type==="fan"||o.deviceForm.type==="water_curtain")&&o.deviceForm.type!==""?($(),L("div",of,[t[21]||(t[21]=f("label",{for:"busNumber"},"485\u603B\u7EBF\u53F7",-1)),Fe(f("input",{type:"number",id:"busNumber","onUpdate:modelValue":t[7]||(t[7]=i=>o.deviceForm.bus_number=i),placeholder:"\u8BF7\u8F93\u5165485\u603B\u7EBF\u53F7"},null,512),[[wt,o.deviceForm.bus_number,void 0,{number:!0}]])])):ce("",!0),(o.deviceForm.type==="fan"||o.deviceForm.type==="water_curtain")&&o.deviceForm.type!==""?($(),L("div",rf,[t[22]||(t[22]=f("label",{for:"device485Address"},"485\u8BBE\u5907\u5730\u5740",-1)),Fe(f("input",{type:"text",id:"device485Address","onUpdate:modelValue":t[8]||(t[8]=i=>o.deviceForm.device_address=i),placeholder:"\u8BF7\u8F93\u5165485\u8BBE\u5907\u5730\u5740"},null,512),[[wt,o.deviceForm.device_address]])])):ce("",!0),o.deviceForm.type!=="relay"&&o.deviceForm.type!==""&&o.deviceForm.type!=="fan"&&o.deviceForm.type!=="water_curtain"?($(),L("div",lf,[t[23]||(t[23]=f("label",{for:"deviceAddress"},"\u8BBE\u5907\u5730\u5740",-1)),Fe(f("input",{type:"text",id:"deviceAddress","onUpdate:modelValue":t[9]||(t[9]=i=>o.deviceForm.address=i),placeholder:"\u8BF7\u8F93\u5165\u8BBE\u5907\u5730\u5740"},null,512),[[wt,o.deviceForm.address]])])):ce("",!0),o.deviceForm.type!=="relay"&&o.deviceForm.type!==""?($(),L("div",cf,[t[25]||(t[25]=f("label",{for:"parentId"},"\u4E0A\u7EA7\u8BBE\u5907",-1)),Fe(f("select",{id:"parentId","onUpdate:modelValue":t[10]||(t[10]=i=>o.deviceForm.parent_id=i)},[t[24]||(t[24]=f("option",{value:""},"\u8BF7\u9009\u62E9\u4E0A\u7EA7\u8BBE\u5907",-1)),($(!0),L(pe,null,ht(r.getParentDevicesWithDisplayName(o.deviceForm.type),i=>($(),L("option",{key:i.id,value:i.id},F(i.display_name),9,af))),128))],512),[[Po,o.deviceForm.parent_id]])])):ce("",!0)],32)]),f("div",uf,[f("button",{class:"btn btn-secondary",onClick:t[12]||(t[12]=(...i)=>r.closeDeviceModal&&r.closeDeviceModal(...i))},"\u53D6\u6D88"),f("button",{class:"btn btn-primary",onClick:t[13]||(t[13]=(...i)=>r.saveDevice&&r.saveDevice(...i))},"\u4FDD\u5B58")])])])):ce("",!0)])}const df=Bt(hu,[["render",ff],["__scopeId","data-v-a2f9bd42"]]);const pf={name:"FeedPlan",data(){return{username:"",plans:[],loading:!0}},mounted(){this.username=localStorage.getItem("username")||"\u7BA1\u7406\u5458",this.loadPlans()},methods:{async loadPlans(){this.loading=!0;try{const e=await fetch("/api/v1/feed/plan/list",{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")}}),t=await e.json();e.ok&&t.code===0?this.plans=t.data.plans||[]:console.error("\u83B7\u53D6\u9972\u5582\u8BA1\u5212\u5217\u8868\u5931\u8D25:",t.message)}catch(e){console.error("\u83B7\u53D6\u9972\u5582\u8BA1\u5212\u5217\u8868\u5931\u8D25:",e)}finally{this.loading=!1}},viewDetail(e){this.$router.push(`/feed/plan/detail/${e}`)},createPlan(){alert("\u521B\u5EFA\u8BA1\u5212\u529F\u80FD\u5F85\u5B9E\u73B0")},editPlan(e){alert(`\u7F16\u8F91\u8BA1\u5212: ${e.name}`)},async deletePlan(e){var t,n,s;if(!!confirm("\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u9972\u5582\u8BA1\u5212\u5417\uFF1F"))try{const o=await fetch("/api/v1/feed/plan/delete",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify({id:e})}),r=await o.json();o.ok&&r.code===0?(await this.loadPlans(),(t=this.$message)!=null&&t.success("\u5220\u9664\u6210\u529F")||alert("\u5220\u9664\u6210\u529F")):(n=this.$message)!=null&&n.error("\u5220\u9664\u5931\u8D25: "+r.message)||alert("\u5220\u9664\u5931\u8D25: "+r.message)}catch(o){console.error("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25:",o),(s=this.$message)!=null&&s.error("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25: "+o.message)||alert("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25: "+o.message)}},logout(){localStorage.removeItem("authToken"),localStorage.removeItem("username"),this.$router.push("/")}}},hf={class:"feed-plan-management"},gf={class:"header"},mf={class:"user-info"},_f={class:"nav"},vf={class:"main-content"},yf={class:"toolbar"},bf={class:"plan-list"},xf={key:0,class:"loading"},Sf={key:1,class:"no-plans"},wf={key:2,class:"plans-container"},Cf={class:"plan-header"},Ef={class:"plan-details"},Pf={class:"plan-description"},Af={class:"plan-meta"},Tf={class:"plan-type"},Rf={key:0,class:"plan-cron"},Of={class:"plan-actions"},If=["onClick"],Df=["onClick"],Mf=["onClick"];function Ff(e,t,n,s,o,r){const l=mn("router-link");return $(),L("div",hf,[f("div",gf,[t[2]||(t[2]=f("h1",null,"\u9972\u5582\u8BA1\u5212\u7BA1\u7406",-1)),f("div",mf,[f("span",null,"\u6B22\u8FCE, "+F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...i)=>r.logout&&r.logout(...i))},"\u9000\u51FA")])]),f("nav",_f,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard"},{default:we(()=>[...t[3]||(t[3]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device"},{default:we(()=>[...t[4]||(t[4]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan",class:"active"},{default:we(()=>[...t[5]||(t[5]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),f("main",vf,[f("div",yf,[f("button",{class:"btn btn-primary",onClick:t[1]||(t[1]=(...i)=>r.createPlan&&r.createPlan(...i))},"\u521B\u5EFA\u8BA1\u5212")]),f("div",bf,[o.loading?($(),L("div",xf," \u52A0\u8F7D\u4E2D... ")):o.plans.length===0?($(),L("div",Sf," \u6682\u65E0\u9972\u5582\u8BA1\u5212 ")):($(),L("div",wf,[($(!0),L(pe,null,ht(o.plans,i=>($(),L("div",{key:i.id,class:"plan-card"},[f("div",Cf,[f("h3",null,F(i.name),1),f("span",{class:tt(["plan-status",{enabled:i.enabled,disabled:!i.enabled}])},F(i.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),f("div",Ef,[f("p",Pf,F(i.description||"\u6682\u65E0\u63CF\u8FF0"),1),f("div",Af,[f("span",Tf,F(i.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1),i.schedule_cron?($(),L("span",Rf,"\u5B9A\u65F6: "+F(i.schedule_cron),1)):ce("",!0)])]),f("div",Of,[f("button",{class:"action-btn detail-btn",onClick:c=>r.viewDetail(i.id)},"\u8BE6\u60C5",8,If),f("button",{class:"action-btn edit-btn",onClick:c=>r.editPlan(i)},"\u7F16\u8F91",8,Df),f("button",{class:"action-btn delete-btn",onClick:c=>r.deletePlan(i.id)},"\u5220\u9664",8,Mf)])]))),128))]))])])])}const kf=Bt(pf,[["render",Ff],["__scopeId","data-v-32cbd47e"]]);const Nf={name:"FeedPlanDetail",data(){return{username:"",plan:null,loading:!0,error:null}},mounted(){this.username=localStorage.getItem("username")||"\u7BA1\u7406\u5458",this.loadPlanDetail()},methods:{async loadPlanDetail(){this.loading=!0,this.error=null;try{const e=this.$route.query.id||this.$route.params.id;if(!e){this.error="\u65E0\u6548\u7684\u8BA1\u5212ID";return}const t=await fetch(`/api/v1/feed/plan/detail?id=${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")}}),n=await t.json();t.ok&&n.code===0?this.plan=n.data:this.error=n.message||"\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25"}catch(e){console.error("\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25:",e),this.error="\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25: "+e.message}finally{this.loading=!1}},goBack(){this.$router.push("/feed/plan")},editPlan(){alert("\u7F16\u8F91\u8BA1\u5212\u529F\u80FD\u5F85\u5B9E\u73B0")},logout(){localStorage.removeItem("authToken"),localStorage.removeItem("username"),this.$router.push("/")}}},$f={class:"feed-plan-detail"},Lf={class:"header"},jf={class:"user-info"},Hf={class:"nav"},Vf={class:"main-content"},Bf={key:0,class:"loading"},Uf={key:1,class:"error"},Kf={key:2,class:"plan-detail-container"},Wf={class:"plan-header"},qf={class:"plan-info"},zf={class:"info-item"},Gf={class:"info-item"},Jf={key:0,class:"info-item"},Yf={class:"info-item"},Qf={key:1,class:"info-item"},Xf={key:2,class:"info-item"},Zf={class:"plan-steps"},ed={key:0,class:"steps-list"},td={class:"step-header"},nd={class:"step-number"},sd={key:0,class:"step-cron"},od={class:"step-details"},rd={class:"detail-item"},id={class:"detail-item"},ld={class:"detail-item"},cd={class:"detail-item"},ad={key:1,class:"no-steps"},ud={key:0,class:"sub-plans"},fd={class:"sub-plans-list"},dd={class:"sub-plan-header"},pd={class:"sub-plan-info"},hd={class:"info-item"},gd={class:"info-item"},md={key:0,class:"info-item"},_d={class:"info-item"},vd={class:"sub-plan-steps"},yd={key:0,class:"steps-list"},bd={class:"step-header"},xd={class:"step-number"},Sd={key:0,class:"step-cron"},wd={class:"step-details"},Cd={class:"detail-item"},Ed={class:"detail-item"},Pd={class:"detail-item"},Ad={class:"detail-item"},Td={key:1,class:"no-steps"},Rd={class:"actions"};function Od(e,t,n,s,o,r){const l=mn("router-link");return $(),L("div",$f,[f("div",Lf,[t[3]||(t[3]=f("h1",null,"\u9972\u5582\u8BA1\u5212\u8BE6\u60C5",-1)),f("div",jf,[f("span",null,"\u6B22\u8FCE, "+F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...i)=>r.logout&&r.logout(...i))},"\u9000\u51FA")])]),f("nav",Hf,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard"},{default:we(()=>[...t[4]||(t[4]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device"},{default:we(()=>[...t[5]||(t[5]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan"},{default:we(()=>[...t[6]||(t[6]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan/detail",class:"active"},{default:we(()=>[...t[7]||(t[7]=[Ce("\u8BA1\u5212\u8BE6\u60C5",-1)])]),_:1})])])]),f("main",Vf,[o.loading?($(),L("div",Bf," \u52A0\u8F7D\u4E2D... ")):o.error?($(),L("div",Uf,F(o.error),1)):o.plan?($(),L("div",Kf,[f("div",Wf,[f("h2",null,F(o.plan.name),1),f("span",{class:tt(["plan-status",{enabled:o.plan.enabled,disabled:!o.plan.enabled}])},F(o.plan.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),f("div",qf,[f("div",zf,[t[8]||(t[8]=f("label",null,"\u8BA1\u5212\u63CF\u8FF0:",-1)),f("span",null,F(o.plan.description||"\u65E0\u63CF\u8FF0"),1)]),f("div",Gf,[t[9]||(t[9]=f("label",null,"\u8BA1\u5212\u7C7B\u578B:",-1)),f("span",null,F(o.plan.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1)]),o.plan.schedule_cron?($(),L("div",Jf,[t[10]||(t[10]=f("label",null,"\u5B9A\u65F6\u8868\u8FBE\u5F0F:",-1)),f("span",null,F(o.plan.schedule_cron),1)])):ce("",!0),f("div",Yf,[t[11]||(t[11]=f("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),f("span",null,F(o.plan.execution_limit>0?o.plan.execution_limit:"\u65E0\u9650\u5236"),1)]),o.plan.parent_id?($(),L("div",Qf,[t[12]||(t[12]=f("label",null,"\u7236\u8BA1\u5212ID:",-1)),f("span",null,F(o.plan.parent_id),1)])):ce("",!0),o.plan.order_in_parent!==null?($(),L("div",Xf,[t[13]||(t[13]=f("label",null,"\u7236\u8BA1\u5212\u4E2D\u987A\u5E8F:",-1)),f("span",null,F(o.plan.order_in_parent),1)])):ce("",!0)]),f("div",Zf,[t[18]||(t[18]=f("h3",null,"\u8BA1\u5212\u6B65\u9AA4",-1)),o.plan.steps&&o.plan.steps.length>0?($(),L("div",ed,[($(!0),L(pe,null,ht(o.plan.steps,(i,c)=>($(),L("div",{key:i.id,class:"step-item"},[f("div",td,[f("span",nd,"\u6B65\u9AA4 "+F(c+1),1),i.schedule_cron?($(),L("span",sd,"\u5B9A\u65F6: "+F(i.schedule_cron),1)):ce("",!0)]),f("div",od,[f("div",rd,[t[14]||(t[14]=f("label",null,"\u8BBE\u5907ID:",-1)),f("span",null,F(i.device_id),1)]),f("div",id,[t[15]||(t[15]=f("label",null,"\u76EE\u6807\u503C:",-1)),f("span",null,F(i.target_value),1)]),f("div",ld,[t[16]||(t[16]=f("label",null,"\u52A8\u4F5C:",-1)),f("span",null,F(i.action),1)]),f("div",cd,[t[17]||(t[17]=f("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),f("span",null,F(i.execution_limit>0?i.execution_limit:"\u65E0\u9650\u5236"),1)])])]))),128))])):($(),L("div",ad," \u8BE5\u8BA1\u5212\u6682\u65E0\u6B65\u9AA4 "))]),o.plan.sub_plans&&o.plan.sub_plans.length>0?($(),L("div",ud,[t[28]||(t[28]=f("h3",null,"\u5B50\u8BA1\u5212",-1)),f("div",fd,[($(!0),L(pe,null,ht(o.plan.sub_plans,i=>($(),L("div",{key:i.id,class:"sub-plan-item"},[f("div",dd,[f("h4",null,F(i.name),1),f("span",{class:tt(["plan-status",{enabled:i.enabled,disabled:!i.enabled}])},F(i.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),f("div",pd,[f("div",hd,[t[19]||(t[19]=f("label",null,"\u63CF\u8FF0:",-1)),f("span",null,F(i.description||"\u65E0\u63CF\u8FF0"),1)]),f("div",gd,[t[20]||(t[20]=f("label",null,"\u7C7B\u578B:",-1)),f("span",null,F(i.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1)]),i.schedule_cron?($(),L("div",md,[t[21]||(t[21]=f("label",null,"\u5B9A\u65F6\u8868\u8FBE\u5F0F:",-1)),f("span",null,F(i.schedule_cron),1)])):ce("",!0),f("div",_d,[t[22]||(t[22]=f("label",null,"\u987A\u5E8F:",-1)),f("span",null,F(i.order_in_parent),1)])]),f("div",vd,[t[27]||(t[27]=f("h5",null,"\u5B50\u8BA1\u5212\u6B65\u9AA4",-1)),i.steps&&i.steps.length>0?($(),L("div",yd,[($(!0),L(pe,null,ht(i.steps,(c,p)=>($(),L("div",{key:c.id,class:"step-item"},[f("div",bd,[f("span",xd,"\u6B65\u9AA4 "+F(p+1),1),c.schedule_cron?($(),L("span",Sd,"\u5B9A\u65F6: "+F(c.schedule_cron),1)):ce("",!0)]),f("div",wd,[f("div",Cd,[t[23]||(t[23]=f("label",null,"\u8BBE\u5907ID:",-1)),f("span",null,F(c.device_id),1)]),f("div",Ed,[t[24]||(t[24]=f("label",null,"\u76EE\u6807\u503C:",-1)),f("span",null,F(c.target_value),1)]),f("div",Pd,[t[25]||(t[25]=f("label",null,"\u52A8\u4F5C:",-1)),f("span",null,F(c.action),1)]),f("div",Ad,[t[26]||(t[26]=f("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),f("span",null,F(c.execution_limit>0?c.execution_limit:"\u65E0\u9650\u5236"),1)])])]))),128))])):($(),L("div",Td," \u8BE5\u5B50\u8BA1\u5212\u6682\u65E0\u6B65\u9AA4 "))])]))),128))])])):ce("",!0),f("div",Rd,[f("button",{class:"btn btn-secondary",onClick:t[1]||(t[1]=(...i)=>r.goBack&&r.goBack(...i))},"\u8FD4\u56DE\u5217\u8868"),f("button",{class:"btn btn-primary",onClick:t[2]||(t[2]=(...i)=>r.editPlan&&r.editPlan(...i))},"\u7F16\u8F91\u8BA1\u5212")])])):ce("",!0)])])}const Id=Bt(Nf,[["render",Od],["__scopeId","data-v-6912d473"]]),Dd=[{path:"/",name:"Login",component:eu},{path:"/dashboard",name:"Dashboard",component:pu,meta:{requiresAuth:!0}},{path:"/device",name:"Device",component:df,meta:{requiresAuth:!0}},{path:"/feed/plan",name:"FeedPlan",component:kf,meta:{requiresAuth:!0}},{path:"/feed/plan/detail/:id",name:"FeedPlanDetail",component:Id,meta:{requiresAuth:!0},props:!0}],fi=Ka({history:ya(),routes:Dd});fi.beforeEach((e,t,n)=>{const s=localStorage.getItem("authToken");e.matched.some(o=>o.meta.requiresAuth)?s?n():n("/"):s&&e.name==="Login"?n("/dashboard"):n()});const di=Nc(Bc);di.use(fi);di.mount("#app"); diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 6ca10f8..bf4fef8 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -4,8 +4,8 @@ 猪场管理系统 - - + +
diff --git a/frontend/src/pages/FeedPlanDetail.vue b/frontend/src/pages/FeedPlanDetail.vue index f81633e..94a135b 100644 --- a/frontend/src/pages/FeedPlanDetail.vue +++ b/frontend/src/pages/FeedPlanDetail.vue @@ -55,15 +55,7 @@ {{ plan.execution_limit > 0 ? plan.execution_limit : '无限制' }} -
- - {{ plan.parent_id }} -
- -
- - {{ plan.order_in_parent }} -
+
@@ -140,7 +132,12 @@
- {{ subPlan.order_in_parent }} + {{ (subPlan.order_in_parent || 0) + 1 }} +
+ +
+ + {{ getParentPlanName(subPlan.parent_id) }}(id:{{ subPlan.parent_id }})
@@ -239,6 +236,8 @@ export default { if (response.ok && data.code === 0) { this.plan = data.data + // 加载子计划的详细信息(包括步骤) + await this.loadSubPlanDetails() } else { this.error = data.message || '获取计划详情失败' } @@ -250,11 +249,63 @@ export default { } }, + // 加载子计划详情 + async loadSubPlanDetails() { + if (!this.plan || !this.plan.sub_plans || this.plan.sub_plans.length === 0) { + return + } + + // 遍历所有子计划 + for (let i = 0; i < this.plan.sub_plans.length; i++) { + const subPlan = this.plan.sub_plans[i] + // 如果子计划没有步骤或步骤为空,则加载详细信息 + if (!subPlan.steps || subPlan.steps.length === 0) { + try { + const response = await fetch(`/api/v1/feed/plan/detail?id=${subPlan.id}`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + localStorage.getItem('authToken') + } + }) + + const data = await response.json() + + if (response.ok && data.code === 0) { + // 用详细信息替换原来的简略信息 + this.plan.sub_plans[i] = data.data + } + } catch (error) { + console.error(`获取子计划 ${subPlan.id} 详情失败:`, error) + } + } + } + }, + // 返回列表 goBack() { this.$router.push('/feed/plan') }, + // 获取父计划名称 + getParentPlanName(parentId) { + // 如果父计划就是当前主计划 + if (this.plan && this.plan.id === parentId) { + return this.plan.name + } + + // 检查是否在子计划中 + if (this.plan && this.plan.sub_plans) { + const parentPlan = this.plan.sub_plans.find(plan => plan.id === parentId) + if (parentPlan) { + return parentPlan.name + } + } + + // 默认返回"未知父计划" + return '未知父计划' + }, + // 编辑计划 editPlan() { // TODO: 实现编辑计划逻辑