aicodeswitch 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### 2.0.3 (2026-01-27)
6
+
5
7
  ### 2.0.2 (2026-01-27)
6
8
 
7
9
  ### 2.0.1 (2026-01-27)
@@ -502,10 +502,15 @@ const registerRoutes = (dbManager, proxyServer) => {
502
502
  const currentHash = (0, crypto_1.createHash)('sha256').update(content).digest('hex');
503
503
  // 读取之前保存的 hash
504
504
  const hashPath = getMigrationHashPath();
505
- let savedHash = '';
506
- if (fs_1.default.existsSync(hashPath)) {
507
- savedHash = fs_1.default.readFileSync(hashPath, 'utf-8').trim();
505
+ // 如果 hash 文件不存在,说明是第一次安装
506
+ if (!fs_1.default.existsSync(hashPath)) {
507
+ // 第一次安装,直接保存当前 hash,不显示弹窗
508
+ fs_1.default.writeFileSync(hashPath, currentHash, 'utf-8');
509
+ res.json({ shouldShow: false, content: '' });
510
+ return;
508
511
  }
512
+ // 读取已保存的 hash
513
+ const savedHash = fs_1.default.readFileSync(hashPath, 'utf-8').trim();
509
514
  // 如果 hash 不同,需要显示弹窗
510
515
  const shouldShow = savedHash !== currentHash;
511
516
  res.json({ shouldShow, content: shouldShow ? content : '' });
@@ -1 +1 @@
1
- .app{display:flex;width:100%;height:100%}.sidebar{width:260px;background:var(--bg-sidebar);color:var(--text-primary);display:flex;flex-direction:column;padding:0 0 80px;border-radius:20px;box-shadow:0 8px 32px var(--shadow-primary),0 0 20px #0478574d;margin:16px;position:relative;z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.logo{padding:28px 20px;border-bottom:2px solid rgba(255,255,255,.2);text-align:center;position:relative;overflow:hidden}.logo:before{content:"✨";position:absolute;top:12px;left:12px;font-size:16px;opacity:.7;transition:all .3s ease}.logo:after{content:"🌟";position:absolute;top:12px;right:12px;font-size:16px;opacity:.7;transition:all .3s ease}.logo:hover:before,.logo:focus:before{animation:sparkle 3s ease-in-out infinite}.logo:hover:after,.logo:focus:after{animation:sparkle 3s ease-in-out infinite 1.5s}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);opacity:.7}50%{transform:scale(1.2) rotate(180deg);opacity:1}}.logo h2{font-size:22px;font-weight:800;background:linear-gradient(135deg,#fff,#f8f8ff,#e6e6fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 2px 4px rgba(0,0,0,.1),0 0 20px rgba(4,120,87,.3);position:relative;z-index:1;letter-spacing:1px;text-transform:uppercase;transition:all .3s ease}.logo:hover h2,.logo:focus h2{animation:logoGlow 4s ease-in-out infinite}@keyframes logoGlow{0%,to{text-shadow:0 2px 4px rgba(0,0,0,.1),0 0 20px rgba(4,120,87,.3)}50%{text-shadow:0 2px 4px rgba(0,0,0,.1),0 0 30px rgba(4,120,87,.5),0 0 40px rgba(4,120,87,.3)}}.nav-menu{list-style:none;padding:16px 0;margin:0}.nav-menu li{margin:8px 12px}.nav-menu a{display:block;padding:14px 20px;color:var(--text-sidebar);text-decoration:none;border-radius:12px;transition:all .3s ease-out;font-weight:500;position:relative;overflow:hidden}.nav-menu a:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:left .5s ease-out}.nav-menu a:hover:before{left:100%}.nav-menu a:hover{background-color:#ffffff1a;transform:translate(4px);box-shadow:0 4px 12px #0f172a33}.nav-menu a.active{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));box-shadow:0 4px 16px var(--shadow-primary)}.main-content{flex:1;padding:24px;overflow-y:auto;background:var(--bg-primary);position:relative;z-index:1;margin:16px 16px 16px 0;border-radius:20px}.main-content:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 80%,rgba(255,206,92,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(134,204,202,.1) 0%,transparent 50%),radial-gradient(circle at 40% 40%,rgba(255,113,206,.05) 0%,transparent 50%);pointer-events:none}.page-header{margin-bottom:24px;position:relative;z-index:1}.page-header h1{font-family:Fredoka,sans-serif;font-size:28px;font-weight:700;color:var(--accent-primary);margin-bottom:8px;text-shadow:0 2px 4px var(--shadow-primary)}.page-header p{color:var(--text-muted);font-size:16px;font-weight:400}.card{background:var(--bg-card);border-radius:20px;padding:24px;box-shadow:0 8px 32px var(--shadow-secondary),0 0 16px #0478571a;margin-bottom:24px;border:1px solid var(--border-primary);position:relative;overflow:hidden;transition:all .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary),var(--accent-primary));border-radius:20px 20px 0 0;background-size:200% 100%;transition:all .3s ease}.card:hover:before{animation:gradientShift 3s ease-in-out infinite}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.card:hover{transform:translateY(-2px);box-shadow:0 12px 40px #6a7bb433,0 8px 24px #ff71ce26}.btn{padding:10px 20px;border:none;border-radius:12px;cursor:pointer;font-size:14px;font-weight:600;transition:all .3s ease-out;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000001a;white-space:nowrap}.btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn:hover:before{width:300px;height:300px}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #00000026}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.btn-primary:hover:before{left:100%}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #04785766}.btn-danger{background:var(--accent-danger);color:#fff}.btn-danger:hover{background:#ea580c}.btn-success{background:var(--accent-success);color:#fff}.btn-success:hover{background:#059669}.btn-secondary{background:var(--accent-secondary);color:#fff}.btn-secondary:hover{background:var(--accent-primary)}.btn-sm{padding:4px 8px}table{width:100%;border-collapse:collapse;margin-top:16px;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #6a7bb41a}table th,table td{padding:16px;text-align:left;border-bottom:1px solid var(--border-secondary);color:var(--text-primary)}table th{background:var(--bg-table-header);font-weight:700;color:var(--text-secondary);font-family:Fredoka,sans-serif;font-size:14px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:var(--text-primary);font-size:14px;font-weight:600;font-family:Nunito,sans-serif}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border:2px solid var(--border-primary);border-radius:12px;font-size:14px;font-family:Nunito,sans-serif;background:var(--bg-secondary);color:var(--text-primary);transition:all .3s ease-out}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--shadow-secondary);background:var(--bg-secondary)}.form-group input:disabled{background:var(--bg-card);cursor:not-allowed;color:var(--text-muted)}.form-group label small{font-size:.8em;color:var(--text-light)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-secondary);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:32px 28px 32px 32px;min-width:500px;width:800px;max-width:90%;max-height:90vh;box-shadow:0 20px 60px var(--shadow-primary),0 8px 32px var(--shadow-secondary);border:1px solid var(--border-secondary);animation:modalSlideIn .4s ease-out;overflow:hidden;display:flex;flex-direction:column}.modal-container{overflow-y:auto;overflow-x:hidden;margin-right:-8px;padding-right:8px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--border-secondary) transparent}.modal-container::-webkit-scrollbar{width:8px}.modal-container::-webkit-scrollbar-track{background:transparent;border-radius:4px;margin:4px}.modal-container::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:4px;border:2px solid transparent}.modal-container::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:modalFadeIn .3s ease-out}.modal-close-btn{position:absolute;top:20px;right:20px;width:48px;height:48px;border:none;background:var(--accent-light);color:var(--text-primary);font-size:32px;line-height:1;cursor:pointer;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0;box-shadow:0 4px 16px #0003;border:2px solid rgba(255,255,255,.3);z-index:1001}.modal-close-btn:hover{background:var(--accent-danger);color:#fff;transform:scale(1.1);box-shadow:0 6px 20px #0000004d}.modal-close-btn:active{transform:scale(.95)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;position:relative}.modal-header h2{font-size:20px;color:var(--text-primary);flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.action-buttons{display:flex;gap:8px}.badge{display:inline-block;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 8px #0000001a;white-space:nowrap}.badge-success{background:var(--accent-success);color:#fff}.badge-warning{background:var(--accent-warning);color:#fff}.badge-danger{background:var(--accent-danger);color:#fff}.badge-claude-code{background:#ce653c;color:#fff}.badge-codex{background:#1f2937;color:#fff}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted);font-family:Nunito,sans-serif}.empty-state p{margin-bottom:20px;font-size:16px;font-weight:500}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding:16px;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-primary);gap:20px;flex-wrap:wrap}.pagination-info{color:var(--text-muted);font-size:14px;font-weight:500}.pagination-controls{display:flex;align-items:center;gap:10px}.pagination-btn{padding:6px 14px;border:1px solid var(--border-primary);background:var(--bg-card);color:var(--text-primary);border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed;background:var(--bg-secondary)}.pagination-size{display:flex;align-items:center;gap:8px;color:var(--text-primary);font-size:14px;font-weight:500}.pagination-select{padding:6px 10px;border:1px solid var(--border-primary);background:var(--bg-card);color:var(--text-primary);border-radius:8px;cursor:pointer;font-size:14px;outline:none;transition:all .2s ease}.pagination-select:hover{border-color:var(--accent-primary)}.pagination-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #3498db1a}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.theme-toggle{position:absolute;bottom:20px;left:20px;right:20px;display:flex;align-items:center;gap:12px}.theme-toggle button{background:none;border:none;color:var(--text-sidebar);cursor:pointer;padding:8px;border-radius:8px;transition:all .3s ease-out;display:flex;align-items:center;justify-content:center}.theme-toggle button:hover{background:#ffffff26}.theme-toggle button.active{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;box-shadow:0 2px 8px var(--shadow-primary),0 0 8px #04785780;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.update-notification{position:absolute;bottom:80px;left:20px;right:20px;background:linear-gradient(135deg,#10b98126,#05966926);border:1px solid rgba(16,185,129,.4);border-radius:12px;padding:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slideUp .3s ease-out;box-shadow:0 4px 12px #10b98133;margin-bottom:12px}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.update-notification-content{display:flex;align-items:center;gap:10px;margin-bottom:8px}.update-icon{font-size:18px;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.update-text{flex:1}.update-title{font-size:13px;font-weight:600;color:var(--text-sidebar);margin-bottom:2px}.update-versions{font-size:11px;color:#ffffffb3;font-family:Monaco,Menlo,monospace}.update-message{font-size:10px;color:var(--text-sidebar);margin-bottom:2px}.update-message code{background:#ffffff1a;padding:2px 4px;border-radius:4px;font-family:Monaco,Menlo,monospace;margin-top:2px;display:inline-block}.update-link{display:block;text-align:center;padding:6px 12px;background:linear-gradient(135deg,var(--accent-success),#059669);color:#fff;text-decoration:none;border-radius:8px;font-size:12px;font-weight:600;transition:all .3s ease-out}.update-link:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}@media (prefers-reduced-motion: reduce){.nav-menu a,.card,.btn,.form-group input,.form-group select,.form-group textarea,.modal-overlay,.modal,table tr{transition:none;animation:none}.nav-menu a:hover,.card:hover,.btn:hover,table tr:hover{transform:none}.btn:before{display:none}}.markdown-content{line-height:1.7;color:var(--text-primary);max-width:100%;overflow-x:auto}.markdown-content h1{font-size:2em;font-weight:700;margin-top:0;margin-bottom:.8em;color:var(--text-primary);border-bottom:2px solid var(--border-color);padding-bottom:.3em}.markdown-content h2{font-size:1.6em;font-weight:600;margin-top:1.5em;margin-bottom:.6em;color:var(--text-primary);border-bottom:1px solid var(--border-color);padding-bottom:.25em}.markdown-content h3{font-size:1.3em;font-weight:600;margin-top:1.2em;margin-bottom:.5em;color:var(--text-primary)}.markdown-content h4{font-size:1.1em;font-weight:600;margin-top:1em;margin-bottom:.4em;color:var(--text-primary)}.markdown-content p{margin-bottom:1em;line-height:1.8}.markdown-content ul,.markdown-content ol{margin-bottom:1em;padding-left:2em}.markdown-content li{margin-bottom:.5em;line-height:1.7}.markdown-content code{background:var(--bg-secondary);padding:.2em .4em;border-radius:4px;font-size:.9em;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;color:var(--accent-secondary);border:1px solid var(--border-color)}.markdown-content pre{background:var(--bg-secondary);padding:1em;border-radius:8px;overflow-x:auto;margin-bottom:1em;border:1px solid var(--border-color)}.markdown-content pre code{background:none;padding:0;border:none;color:var(--text-primary);font-size:.95em}.markdown-content blockquote{border-left:4px solid var(--accent-primary);padding-left:1em;margin-left:0;margin-bottom:1em;color:var(--text-secondary);font-style:italic}.markdown-content a{color:var(--accent-primary);text-decoration:none;border-bottom:1px solid var(--accent-secondary);transition:all .2s ease}.markdown-content a:hover{color:var(--accent-secondary)}.markdown-content table{width:100%;border-collapse:collapse;margin-bottom:1em}.markdown-content table th,.markdown-content table td{padding:.75em;text-align:left;border:1px solid var(--border-color)}.markdown-content table th{background:var(--bg-secondary);font-weight:600}.markdown-content hr{border:none;border-top:2px solid var(--border-color);margin:2em 0}.markdown-content strong{font-weight:600;color:var(--text-primary)}.markdown-content em{font-style:italic}.markdown-content img{max-width:100%;height:auto;border-radius:8px;margin:1em 0}.config-status-indicator{display:inline-block}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;box-shadow:0 2px 4px #0000001a}.status-active{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.status-backup{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.status-inactive{background:linear-gradient(135deg,#9e9e9e,#757575);color:#fff}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: linear-gradient(135deg, #F7FEE7 0%, #F0FDF4 100%);--bg-secondary: rgba(255, 255, 255, .95);--bg-sidebar: linear-gradient(135deg, #0F5132 0%, #065F46 100%);--bg-card: rgba(255, 255, 255, .98);--bg-code: #f4fff7;--bg-table-header: linear-gradient(135deg, #A7F3D0 0%, #6EE7B7 100%);--text-primary: #14532D;--text-secondary: #064E3B;--text-muted: #065F46;--text-sidebar: #FFFFFF;--text-on-dark: #FFFFFF;--border-primary: rgba(15, 81, 50, .2);--border-secondary: rgba(6, 95, 70, .2);--accent-primary: #0F5132;--accent-secondary: #047857;--accent-light: #a1e9c7;--accent-success: #047857;--accent-warning: #D97706;--accent-danger: #DC2626;--shadow-primary: rgba(15, 81, 50, .3);--shadow-secondary: rgba(15, 81, 50, .15);--bg-route-item: rgba(248, 249, 250, .9);--bg-route-item-hover: rgba(230, 244, 234, .95);--bg-route-item-selected: rgba(161, 233, 199, .25);--text-route-muted: #6c757d;--text-info: #2faeee;--text-light: #018038;--bg-info-box: #f8f9fa;--border-info-box: #e0e0e0;--text-info-box: #666;--bg-info-blue: #e3f2fd;--border-info-blue: #2196f3;--bg-info-green: #f1f8e9;--border-info-green: #8bc34a;--bg-info-orange: #fff3e0;--border-info-orange: #ff9800;--bg-info-yellow: #fff8e1;--border-info-yellow: #ffc107;--bg-assembled-text: #f8f9fa;--bg-thinking-box: #fff9e6;--border-thinking-box: #e0e0e0;--text-thinking-title: #f39c12;--bg-thinking-content: #fff;--border-thinking-content: #f0e6d3;--text-thinking-content: #555;--text-reply-title: #333;--bg-reply-content: #fff;--border-reply-content: #ddd;--text-reply-content: #333}[data-theme=dark]{--bg-primary: linear-gradient(135deg, #0A1A0F 0%, #0F2415 100%);--bg-secondary: rgba(15, 36, 21, .9);--bg-sidebar: linear-gradient(135deg, #0F5132 0%, #065F46 100%);--bg-card: rgba(25, 51, 31, .95);--bg-code: #0f172a;--bg-table-header: linear-gradient(135deg, #0F5132 0%, #047857 100%);--text-primary: #ECFEF5;--text-secondary: #A7F3D0;--text-muted: #6EE7B7;--text-sidebar: #FFFFFF;--text-on-dark: #ECFEF5;--border-primary: rgba(15, 81, 50, .5);--border-secondary: rgba(6, 95, 70, .5);--accent-primary: #0F5132;--accent-secondary: #047857;--accent-light: #002d18;--accent-success: #10B981;--accent-warning: #F59E0B;--accent-danger: #EF4444;--shadow-primary: rgba(15, 81, 50, .4);--shadow-secondary: rgba(6, 95, 70, .3);--bg-route-item: rgba(20, 46, 28, .7);--bg-route-item-hover: rgba(30, 60, 38, .85);--bg-route-item-selected: rgba(16, 185, 129, .15);--text-route-muted: #A7F3D0;--text-light: #999999;--bg-info-box: rgba(20, 46, 28, .6);--border-info-box: rgba(161, 233, 199, .2);--text-info-box: #A7F3D0;--bg-info-blue: rgba(13, 71, 161, .25);--border-info-blue: #1976d2;--bg-info-green: rgba(27, 94, 32, .25);--border-info-green: #689f38;--bg-info-orange: rgba(230, 81, 0, .2);--border-info-orange: #f57c00;--bg-info-yellow: rgba(255, 193, 7, .15);--border-info-yellow: #ffb300;--bg-assembled-text: rgba(15, 23, 42, .5);--bg-thinking-box: rgba(230, 81, 0, .15);--border-thinking-box: rgba(245, 158, 11, .3);--text-thinking-title: #fbbf24;--bg-thinking-content: rgba(15, 23, 42, .4);--border-thinking-content: rgba(245, 158, 11, .2);--text-thinking-content: #d1d5db;--text-reply-title: #e5e7eb;--bg-reply-content: rgba(15, 23, 42, .4);--border-reply-content: rgba(161, 233, 199, .2);--text-reply-content: #e5e7eb}body{font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary);transition:all .3s ease;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{width:100vw;height:100vh;overflow:hidden}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:8px}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-radius:8px;border:2px solid var(--bg-secondary);box-shadow:0 2px 4px #0000001a;transition:all .3s ease}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,var(--accent-secondary),var(--accent-primary));box-shadow:0 4px 8px #0003;transform:scale(1.1)}::-webkit-scrollbar-thumb:active{background:var(--accent-primary);box-shadow:0 6px 12px #0000004d}::-webkit-scrollbar-corner{background:var(--bg-secondary)}*{scrollbar-width:thin;scrollbar-color:var(--accent-primary) var(--bg-secondary)}::-webkit-scrollbar-button{display:none}html{scroll-behavior:smooth}.datetime-picker-input{cursor:pointer}.datetime-picker-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:1;filter:brightness(0);padding:2px 4px}.datetime-picker-input::-webkit-calendar-picker-indicator:hover{filter:brightness(.3)}.datetime-picker-input::-moz-calendar-picker-indicator{cursor:pointer;opacity:1;filter:brightness(0);padding:2px 4px}.datetime-picker-input::-moz-calendar-picker-indicator:hover{filter:brightness(.3)}[data-theme=dark] .datetime-picker-input::-webkit-calendar-picker-indicator{filter:brightness(0) invert(1)}[data-theme=dark] .datetime-picker-input::-webkit-calendar-picker-indicator:hover{filter:brightness(.2) invert(1)}[data-theme=dark] .datetime-picker-input::-moz-calendar-picker-indicator{filter:brightness(0) invert(1)}[data-theme=dark] .datetime-picker-input::-moz-calendar-picker-indicator:hover{filter:brightness(.2) invert(1)}
1
+ .app{display:flex;width:100%;height:100%}.sidebar{width:260px;background:var(--bg-sidebar);color:var(--text-primary);display:flex;flex-direction:column;padding:0 0 80px;border-radius:20px;box-shadow:0 8px 32px var(--shadow-primary),0 0 20px #0478574d;margin:16px;position:relative;z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.logo{padding:28px 20px;border-bottom:2px solid rgba(255,255,255,.2);text-align:center;position:relative;overflow:hidden}.logo:before{content:"✨";position:absolute;top:12px;left:12px;font-size:16px;opacity:.7;transition:all .3s ease}.logo:after{content:"🌟";position:absolute;top:12px;right:12px;font-size:16px;opacity:.7;transition:all .3s ease}.logo:hover:before,.logo:focus:before{animation:sparkle 3s ease-in-out infinite}.logo:hover:after,.logo:focus:after{animation:sparkle 3s ease-in-out infinite 1.5s}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);opacity:.7}50%{transform:scale(1.2) rotate(180deg);opacity:1}}.logo h2{font-size:22px;font-weight:800;background:linear-gradient(135deg,#fff,#f8f8ff,#e6e6fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 2px 4px rgba(0,0,0,.1),0 0 20px rgba(4,120,87,.3);position:relative;z-index:1;letter-spacing:1px;text-transform:uppercase;transition:all .3s ease}.logo:hover h2,.logo:focus h2{animation:logoGlow 4s ease-in-out infinite}@keyframes logoGlow{0%,to{text-shadow:0 2px 4px rgba(0,0,0,.1),0 0 20px rgba(4,120,87,.3)}50%{text-shadow:0 2px 4px rgba(0,0,0,.1),0 0 30px rgba(4,120,87,.5),0 0 40px rgba(4,120,87,.3)}}.nav-menu{list-style:none;padding:16px 0;margin:0}.nav-menu li{margin:8px 12px}.nav-menu a{display:block;padding:14px 20px;color:var(--text-sidebar);text-decoration:none;border-radius:12px;transition:all .3s ease-out;font-weight:500;position:relative;overflow:hidden}.nav-menu a:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:left .5s ease-out}.nav-menu a:hover:before{left:100%}.nav-menu a:hover{background-color:#ffffff1a;transform:translate(4px);box-shadow:0 4px 12px #0f172a33}.nav-menu a.active{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));box-shadow:0 4px 16px var(--shadow-primary)}.main-content{flex:1;padding:24px;overflow-y:auto;background:var(--bg-primary);position:relative;z-index:1;margin:16px 16px 16px 0;border-radius:20px}.main-content:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 80%,rgba(255,206,92,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(134,204,202,.1) 0%,transparent 50%),radial-gradient(circle at 40% 40%,rgba(255,113,206,.05) 0%,transparent 50%);pointer-events:none}.page-header{margin-bottom:24px;position:relative;z-index:1}.page-header h1{font-family:Fredoka,sans-serif;font-size:28px;font-weight:700;color:var(--accent-primary);margin-bottom:8px;text-shadow:0 2px 4px var(--shadow-primary)}.page-header p{color:var(--text-muted);font-size:16px;font-weight:400}.card{background:var(--bg-card);border-radius:20px;padding:24px;box-shadow:0 8px 32px var(--shadow-secondary),0 0 16px #0478571a;margin-bottom:24px;border:1px solid var(--border-primary);position:relative;overflow:hidden;transition:all .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary),var(--accent-primary));border-radius:20px 20px 0 0;background-size:200% 100%;transition:all .3s ease}.card:hover:before{animation:gradientShift 3s ease-in-out infinite}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.card:hover{transform:translateY(-2px);box-shadow:0 12px 40px #6a7bb433,0 8px 24px #ff71ce26}.btn{padding:10px 20px;border:none;border-radius:12px;cursor:pointer;font-size:14px;font-weight:600;transition:all .3s ease-out;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000001a;white-space:nowrap}.btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn:hover:before{width:300px;height:300px}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #00000026}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.btn-primary:hover:before{left:100%}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #04785766}.btn-danger{background:var(--accent-danger);color:#fff}.btn-danger:hover{background:#ea580c}.btn-success{background:var(--accent-success);color:#fff}.btn-success:hover{background:#059669}.btn-secondary{background:var(--accent-secondary);color:#fff}.btn-secondary:hover{background:var(--accent-primary)}.btn-sm{padding:4px 8px}table{width:100%;border-collapse:collapse;margin-top:16px;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #6a7bb41a}table th,table td{padding:16px;text-align:left;border-bottom:1px solid var(--border-secondary);color:var(--text-primary)}table th{background:var(--bg-table-header);font-weight:700;color:var(--text-secondary);font-family:Fredoka,sans-serif;font-size:14px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:var(--text-primary);font-size:14px;font-weight:600;font-family:Nunito,sans-serif}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border:2px solid var(--border-primary);border-radius:12px;font-size:14px;font-family:Nunito,sans-serif;background:var(--bg-secondary);color:var(--text-primary);transition:all .3s ease-out}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--shadow-secondary);background:var(--bg-secondary)}.form-group input:disabled{background:var(--bg-card);cursor:not-allowed;color:var(--text-muted)}.form-group label small{font-size:.8em;color:var(--text-light)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-secondary);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:32px 28px 32px 32px;min-width:500px;width:800px;max-width:90%;max-height:90vh;box-shadow:0 20px 60px var(--shadow-primary),0 8px 32px var(--shadow-secondary);border:1px solid var(--border-secondary);animation:modalSlideIn .4s ease-out;overflow:hidden;display:flex;flex-direction:column}.modal-container{overflow-y:auto;overflow-x:hidden;margin-right:-8px;padding-right:8px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--border-secondary) transparent}.modal-container::-webkit-scrollbar{width:8px}.modal-container::-webkit-scrollbar-track{background:transparent;border-radius:4px;margin:4px}.modal-container::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:4px;border:2px solid transparent}.modal-container::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:modalFadeIn .3s ease-out}.modal-close-btn{position:absolute;top:20px;right:20px;width:48px;height:48px;border:none;background:var(--accent-light);color:var(--text-primary);font-size:32px;line-height:1;cursor:pointer;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0;box-shadow:0 4px 16px #0003;border:2px solid rgba(255,255,255,.3);z-index:1001}.modal-close-btn:hover{background:var(--accent-danger);color:#fff;transform:scale(1.1);box-shadow:0 6px 20px #0000004d}.modal-close-btn:active{transform:scale(.95)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;position:relative}.modal-header h2{font-size:20px;color:var(--text-primary);flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.action-buttons{display:flex;gap:8px}.badge{display:inline-block;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 8px #0000001a;white-space:nowrap}.badge-success{background:var(--accent-success);color:#fff}.badge-warning{background:var(--accent-warning);color:#fff}.badge-danger{background:var(--accent-danger);color:#fff}.badge-claude-code{background:#ce653c;color:#fff}.badge-codex{background:#1f2937;color:#fff}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted);font-family:Nunito,sans-serif}.empty-state p{margin-bottom:20px;font-size:16px;font-weight:500}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding:16px;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-primary);gap:20px;flex-wrap:wrap}.pagination-info{color:var(--text-muted);font-size:14px;font-weight:500}.pagination-controls{display:flex;align-items:center;gap:10px}.pagination-btn{padding:6px 14px;border:1px solid var(--border-primary);background:var(--bg-card);color:var(--text-primary);border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed;background:var(--bg-secondary)}.pagination-size{display:flex;align-items:center;gap:8px;color:var(--text-primary);font-size:14px;font-weight:500}.pagination-select{padding:6px 10px;border:1px solid var(--border-primary);background:var(--bg-card);color:var(--text-primary);border-radius:8px;cursor:pointer;font-size:14px;outline:none;transition:all .2s ease}.pagination-select:hover{border-color:var(--accent-primary)}.pagination-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #3498db1a}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.theme-toggle{position:absolute;bottom:20px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.theme-toggle button{background:none;border:none;color:var(--text-sidebar);cursor:pointer;padding:8px;border-radius:8px;transition:all .3s ease-out;display:flex;align-items:center;justify-content:center}.version-info{font-size:12px;color:var(--text-sidebar);opacity:.7;font-family:Monaco,Menlo,monospace;font-weight:500;-webkit-user-select:none;user-select:none;transition:opacity .3s ease}.version-info:hover{opacity:1}.theme-toggle button:hover{background:#ffffff26}.theme-toggle button.active{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;box-shadow:0 2px 8px var(--shadow-primary),0 0 8px #04785780;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.update-notification{position:absolute;bottom:80px;left:20px;right:20px;background:linear-gradient(135deg,#10b98126,#05966926);border:1px solid rgba(16,185,129,.4);border-radius:12px;padding:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slideUp .3s ease-out;box-shadow:0 4px 12px #10b98133;margin-bottom:12px}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.update-notification-content{display:flex;align-items:center;gap:10px;margin-bottom:8px}.update-icon{font-size:18px;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.update-text{flex:1}.update-title{font-size:13px;font-weight:600;color:var(--text-sidebar);margin-bottom:2px}.update-versions{font-size:11px;color:#ffffffb3;font-family:Monaco,Menlo,monospace}.update-message{font-size:10px;color:var(--text-sidebar);margin-bottom:2px}.update-message code{background:#ffffff1a;padding:2px 4px;border-radius:4px;font-family:Monaco,Menlo,monospace;margin-top:2px;display:inline-block}.update-link{display:block;text-align:center;padding:6px 12px;background:linear-gradient(135deg,var(--accent-success),#059669);color:#fff;text-decoration:none;border-radius:8px;font-size:12px;font-weight:600;transition:all .3s ease-out}.update-link:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}@media (prefers-reduced-motion: reduce){.nav-menu a,.card,.btn,.form-group input,.form-group select,.form-group textarea,.modal-overlay,.modal,table tr{transition:none;animation:none}.nav-menu a:hover,.card:hover,.btn:hover,table tr:hover{transform:none}.btn:before{display:none}}.markdown-content{line-height:1.7;color:var(--text-primary);max-width:100%;overflow-x:auto}.markdown-content h1{font-size:2em;font-weight:700;margin-top:0;margin-bottom:.8em;color:var(--text-primary);border-bottom:2px solid var(--border-color);padding-bottom:.3em}.markdown-content h2{font-size:1.6em;font-weight:600;margin-top:1.5em;margin-bottom:.6em;color:var(--text-primary);border-bottom:1px solid var(--border-color);padding-bottom:.25em}.markdown-content h3{font-size:1.3em;font-weight:600;margin-top:1.2em;margin-bottom:.5em;color:var(--text-primary)}.markdown-content h4{font-size:1.1em;font-weight:600;margin-top:1em;margin-bottom:.4em;color:var(--text-primary)}.markdown-content p{margin-bottom:1em;line-height:1.8}.markdown-content ul,.markdown-content ol{margin-bottom:1em;padding-left:2em}.markdown-content li{margin-bottom:.5em;line-height:1.7}.markdown-content code{background:var(--bg-secondary);padding:.2em .4em;border-radius:4px;font-size:.9em;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;color:var(--accent-secondary);border:1px solid var(--border-color)}.markdown-content pre{background:var(--bg-secondary);padding:1em;border-radius:8px;overflow-x:auto;margin-bottom:1em;border:1px solid var(--border-color)}.markdown-content pre code{background:none;padding:0;border:none;color:var(--text-primary);font-size:.95em}.markdown-content blockquote{border-left:4px solid var(--accent-primary);padding-left:1em;margin-left:0;margin-bottom:1em;color:var(--text-secondary);font-style:italic}.markdown-content a{color:var(--accent-primary);text-decoration:none;border-bottom:1px solid var(--accent-secondary);transition:all .2s ease}.markdown-content a:hover{color:var(--accent-secondary)}.markdown-content table{width:100%;border-collapse:collapse;margin-bottom:1em}.markdown-content table th,.markdown-content table td{padding:.75em;text-align:left;border:1px solid var(--border-color)}.markdown-content table th{background:var(--bg-secondary);font-weight:600}.markdown-content hr{border:none;border-top:2px solid var(--border-color);margin:2em 0}.markdown-content strong{font-weight:600;color:var(--text-primary)}.markdown-content em{font-style:italic}.markdown-content img{max-width:100%;height:auto;border-radius:8px;margin:1em 0}.config-status-indicator{display:inline-block}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;box-shadow:0 2px 4px #0000001a}.status-active{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.status-backup{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.status-inactive{background:linear-gradient(135deg,#9e9e9e,#757575);color:#fff}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: linear-gradient(135deg, #F7FEE7 0%, #F0FDF4 100%);--bg-secondary: rgba(255, 255, 255, .95);--bg-sidebar: linear-gradient(135deg, #0F5132 0%, #065F46 100%);--bg-card: rgba(255, 255, 255, .98);--bg-code: #f4fff7;--bg-table-header: linear-gradient(135deg, #A7F3D0 0%, #6EE7B7 100%);--text-primary: #14532D;--text-secondary: #064E3B;--text-muted: #065F46;--text-sidebar: #FFFFFF;--text-on-dark: #FFFFFF;--border-primary: rgba(15, 81, 50, .2);--border-secondary: rgba(6, 95, 70, .2);--accent-primary: #0F5132;--accent-secondary: #047857;--accent-light: #a1e9c7;--accent-success: #047857;--accent-warning: #D97706;--accent-danger: #DC2626;--shadow-primary: rgba(15, 81, 50, .3);--shadow-secondary: rgba(15, 81, 50, .15);--bg-route-item: rgba(248, 249, 250, .9);--bg-route-item-hover: rgba(230, 244, 234, .95);--bg-route-item-selected: rgba(161, 233, 199, .25);--text-route-muted: #6c757d;--text-info: #2faeee;--text-light: #018038;--bg-info-box: #f8f9fa;--border-info-box: #e0e0e0;--text-info-box: #666;--bg-info-blue: #e3f2fd;--border-info-blue: #2196f3;--bg-info-green: #f1f8e9;--border-info-green: #8bc34a;--bg-info-orange: #fff3e0;--border-info-orange: #ff9800;--bg-info-yellow: #fff8e1;--border-info-yellow: #ffc107;--bg-assembled-text: #f8f9fa;--bg-thinking-box: #fff9e6;--border-thinking-box: #e0e0e0;--text-thinking-title: #f39c12;--bg-thinking-content: #fff;--border-thinking-content: #f0e6d3;--text-thinking-content: #555;--text-reply-title: #333;--bg-reply-content: #fff;--border-reply-content: #ddd;--text-reply-content: #333}[data-theme=dark]{--bg-primary: linear-gradient(135deg, #0A1A0F 0%, #0F2415 100%);--bg-secondary: rgba(15, 36, 21, .9);--bg-sidebar: linear-gradient(135deg, #0F5132 0%, #065F46 100%);--bg-card: rgba(25, 51, 31, .95);--bg-code: #0f172a;--bg-table-header: linear-gradient(135deg, #0F5132 0%, #047857 100%);--text-primary: #ECFEF5;--text-secondary: #A7F3D0;--text-muted: #6EE7B7;--text-sidebar: #FFFFFF;--text-on-dark: #ECFEF5;--border-primary: rgba(15, 81, 50, .5);--border-secondary: rgba(6, 95, 70, .5);--accent-primary: #0F5132;--accent-secondary: #047857;--accent-light: #002d18;--accent-success: #10B981;--accent-warning: #F59E0B;--accent-danger: #EF4444;--shadow-primary: rgba(15, 81, 50, .4);--shadow-secondary: rgba(6, 95, 70, .3);--bg-route-item: rgba(20, 46, 28, .7);--bg-route-item-hover: rgba(30, 60, 38, .85);--bg-route-item-selected: rgba(16, 185, 129, .15);--text-route-muted: #A7F3D0;--text-light: #999999;--bg-info-box: rgba(20, 46, 28, .6);--border-info-box: rgba(161, 233, 199, .2);--text-info-box: #A7F3D0;--bg-info-blue: rgba(13, 71, 161, .25);--border-info-blue: #1976d2;--bg-info-green: rgba(27, 94, 32, .25);--border-info-green: #689f38;--bg-info-orange: rgba(230, 81, 0, .2);--border-info-orange: #f57c00;--bg-info-yellow: rgba(255, 193, 7, .15);--border-info-yellow: #ffb300;--bg-assembled-text: rgba(15, 23, 42, .5);--bg-thinking-box: rgba(230, 81, 0, .15);--border-thinking-box: rgba(245, 158, 11, .3);--text-thinking-title: #fbbf24;--bg-thinking-content: rgba(15, 23, 42, .4);--border-thinking-content: rgba(245, 158, 11, .2);--text-thinking-content: #d1d5db;--text-reply-title: #e5e7eb;--bg-reply-content: rgba(15, 23, 42, .4);--border-reply-content: rgba(161, 233, 199, .2);--text-reply-content: #e5e7eb}body{font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary);transition:all .3s ease;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{width:100vw;height:100vh;overflow:hidden}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:8px}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-radius:8px;border:2px solid var(--bg-secondary);box-shadow:0 2px 4px #0000001a;transition:all .3s ease}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,var(--accent-secondary),var(--accent-primary));box-shadow:0 4px 8px #0003;transform:scale(1.1)}::-webkit-scrollbar-thumb:active{background:var(--accent-primary);box-shadow:0 6px 12px #0000004d}::-webkit-scrollbar-corner{background:var(--bg-secondary)}*{scrollbar-width:thin;scrollbar-color:var(--accent-primary) var(--bg-secondary)}::-webkit-scrollbar-button{display:none}html{scroll-behavior:smooth}.datetime-picker-input{cursor:pointer}.datetime-picker-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:1;filter:brightness(0);padding:2px 4px}.datetime-picker-input::-webkit-calendar-picker-indicator:hover{filter:brightness(.3)}.datetime-picker-input::-moz-calendar-picker-indicator{cursor:pointer;opacity:1;filter:brightness(0);padding:2px 4px}.datetime-picker-input::-moz-calendar-picker-indicator:hover{filter:brightness(.3)}[data-theme=dark] .datetime-picker-input::-webkit-calendar-picker-indicator{filter:brightness(0) invert(1)}[data-theme=dark] .datetime-picker-input::-webkit-calendar-picker-indicator:hover{filter:brightness(.2) invert(1)}[data-theme=dark] .datetime-picker-input::-moz-calendar-picker-indicator{filter:brightness(0) invert(1)}[data-theme=dark] .datetime-picker-input::-moz-calendar-picker-indicator:hover{filter:brightness(.2) invert(1)}
@@ -420,4 +420,4 @@ PORT=4567
420
420
  *
421
421
  * This source code is licensed under the MIT license found in the
422
422
  * LICENSE file in the root directory of this source tree.
423
- */var mu=m;function bX(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var wX=typeof Object.is=="function"?Object.is:bX,SX=mu.useSyncExternalStore,kX=mu.useRef,PX=mu.useEffect,jX=mu.useMemo,OX=mu.useDebugValue;xX.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var a=kX(null);if(a.current===null){var o={hasValue:!1,value:null};a.current=o}else o=a.current;a=jX(function(){function s(h){if(!u){if(u=!0,c=h,h=r(h),i!==void 0&&o.hasValue){var v=o.value;if(i(v,h))return d=v}return d=h}if(v=d,wX(c,h))return v;var y=r(h);return i!==void 0&&i(v,y)?(c=h,v):(c=h,d=y)}var u=!1,c,d,p=n===void 0?null:n;return[function(){return s(t())},p===null?void 0:function(){return s(p())}]},[t,n,r,i]);var l=SX(e,a[0],a[1]);return PX(function(){o.hasValue=!0,o.value=l},[l]),OX(l),l};function CX(e){e()}function EX(){let e=null,t=null;return{clear(){e=null,t=null},notify(){CX(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let r=e;for(;r;)n.push(r),r=r.next;return n},subscribe(n){let r=!0;const i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var yP={notify(){},get:()=>[]};function AX(e,t){let n,r=yP,i=0,a=!1;function o(y){c();const x=r.subscribe(y);let g=!1;return()=>{g||(g=!0,x(),d())}}function l(){r.notify()}function s(){v.onStateChange&&v.onStateChange()}function u(){return a}function c(){i++,n||(n=e.subscribe(s),r=EX())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=yP)}function p(){a||(a=!0,c())}function h(){a&&(a=!1,d())}const v={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:s,isSubscribed:u,trySubscribe:p,tryUnsubscribe:h,getListeners:()=>r};return v}var TX=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",_X=TX(),IX=()=>typeof navigator<"u"&&navigator.product==="ReactNative",NX=IX(),MX=()=>_X||NX?m.useLayoutEffect:m.useEffect,DX=MX();function xP(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function LX(e,t){if(xP(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let i=0;i<n.length;i++)if(!Object.prototype.hasOwnProperty.call(t,n[i])||!xP(e[n[i]],t[n[i]]))return!1;return!0}var Qh=Symbol.for("react-redux-context"),Zh=typeof globalThis<"u"?globalThis:{};function RX(){if(!m.createContext)return{};const e=Zh[Qh]??(Zh[Qh]=new Map);let t=e.get(m.createContext);return t||(t=m.createContext(null),e.set(m.createContext,t)),t}var zX=RX();function $X(e){const{children:t,context:n,serverState:r,store:i}=e,a=m.useMemo(()=>{const s=AX(i);return{store:i,subscription:s,getServerState:r?()=>r:void 0}},[i,r]),o=m.useMemo(()=>i.getState(),[i]);DX(()=>{const{subscription:s}=a;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),o!==i.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}},[a,o]);const l=n||zX;return m.createElement(l.Provider,{value:a},t)}var BX=$X,FX=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius"]);function UX(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function vu(e,t){var n=new Set([...Object.keys(e),...Object.keys(t)]);for(var r of n)if(FX.has(r)){if(e[r]==null&&t[r]==null)continue;if(!LX(e[r],t[r]))return!1}else if(!UX(e[r],t[r]))return!1;return!0}var WX=["id"],HX=["type","layout","connectNulls","needClip","shape"],VX=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function zs(){return zs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},zs.apply(null,arguments)}function bP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Tr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?bP(Object(n),!0).forEach(function(r){KX(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function KX(e,t,n){return(t=qX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qX(e){var t=YX(e,"string");return typeof t=="symbol"?t:t+""}function YX(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function C0(e,t){if(e==null)return{};var n,r,i=GX(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function GX(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var XX=e=>{var{dataKey:t,name:n,stroke:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:oa(n,t),payload:e}]},QX=m.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:i,fill:a,name:o,hide:l,unit:s,tooltipType:u,id:c}=e,d={dataDefinedOnItem:n,getPosition:aa,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:oa(o,t),hide:l,type:u,color:r,unit:s,graphicalItemId:c}};return m.createElement(Tp,{tooltipEntrySettings:d})}),sN=(e,t)=>"".concat(t,"px ").concat(e-t,"px");function ZX(e,t){for(var n=e.length%2!==0?[...e,0]:e,r=[],i=0;i<t;++i)r=[...r,...n];return r}var JX=(e,t,n)=>{var r=n.reduce((h,v)=>h+v);if(!r)return sN(t,e);for(var i=Math.floor(e/r),a=e%r,o=t-e,l=[],s=0,u=0;s<n.length;u+=(c=n[s])!==null&&c!==void 0?c:0,++s){var c,d=n[s];if(d!=null&&u+d>a){l=[...n.slice(0,s),a-u];break}}var p=l.length%2===0?[0,o]:[o];return[...ZX(n,i),...l,...p].map(h=>"".concat(h,"px")).join(", ")};function eQ(e){var{clipPathId:t,points:n,props:r}=e,{dot:i,dataKey:a,needClip:o}=r,{id:l}=r,s=C0(r,WX),u=un(s);return m.createElement(qI,{points:n,dot:i,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:a,baseProps:u,needClip:o,clipPathId:t})}function tQ(e){var{showLabels:t,children:n,points:r}=e,i=m.useMemo(()=>r==null?void 0:r.map(a=>{var o,l,s={x:(o=a.x)!==null&&o!==void 0?o:0,y:(l=a.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Tr(Tr({},s),{},{value:a.value,payload:a.payload,viewBox:s,parentViewBox:void 0,fill:void 0})}),[r]);return m.createElement(d0,{value:t?i:void 0},n)}function wP(e){var{clipPathId:t,pathRef:n,points:r,strokeDasharray:i,props:a}=e,{type:o,layout:l,connectNulls:s,needClip:u,shape:c}=a,d=C0(a,HX),p=Tr(Tr({},nn(d)),{},{fill:"none",className:"recharts-line-curve",clipPath:u?"url(#clipPath-".concat(t,")"):void 0,points:r,type:o,layout:l,connectNulls:s,strokeDasharray:i??a.strokeDasharray});return m.createElement(m.Fragment,null,(r==null?void 0:r.length)>1&&m.createElement(y0,zs({shapeType:"curve",option:c},p,{pathRef:n})),m.createElement(eQ,{points:r,clipPathId:t,props:a}))}function nQ(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function rQ(e){var{clipPathId:t,props:n,pathRef:r,previousPointsRef:i,longestAnimatedLengthRef:a}=e,{points:o,strokeDasharray:l,isAnimationActive:s,animationBegin:u,animationDuration:c,animationEasing:d,animateNewValues:p,width:h,height:v,onAnimationEnd:y,onAnimationStart:x}=n,g=i.current,b=nl(o,"recharts-line-"),w=m.useRef(b),[k,P]=m.useState(!1),S=!k,O=m.useCallback(()=>{typeof y=="function"&&y(),P(!1)},[y]),E=m.useCallback(()=>{typeof x=="function"&&x(),P(!0)},[x]),N=nQ(r.current),M=m.useRef(0);w.current!==b&&(M.current=a.current,w.current=b);var I=M.current;return m.createElement(tQ,{points:o,showLabels:S},n.children,m.createElement(tl,{animationId:b,begin:u,duration:c,isActive:s,easing:d,onAnimationEnd:O,onAnimationStart:E,key:b},A=>{var K=Re(I,N+I,A),B=Math.min(K,N),D;if(s)if(l){var F="".concat(l).split(/[,\s]+/gim).map(R=>parseFloat(R));D=JX(B,N,F)}else D=sN(N,B);else D=l==null?void 0:String(l);if(A>0&&N>0&&(i.current=o,a.current=Math.max(a.current,B)),g){var z=g.length/o.length,T=A===1?o:o.map((R,j)=>{var q=Math.floor(j*z);if(g[q]){var Q=g[q];return Tr(Tr({},R),{},{x:Re(Q.x,R.x,A),y:Re(Q.y,R.y,A)})}return p?Tr(Tr({},R),{},{x:Re(h*2,R.x,A),y:Re(v/2,R.y,A)}):Tr(Tr({},R),{},{x:R.x,y:R.y})});return i.current=T,m.createElement(wP,{props:n,points:T,clipPathId:t,pathRef:r,strokeDasharray:D})}return m.createElement(wP,{props:n,points:o,clipPathId:t,pathRef:r,strokeDasharray:D})}),m.createElement(gp,{label:n.label}))}function iQ(e){var{clipPathId:t,props:n}=e,r=m.useRef(null),i=m.useRef(0),a=m.useRef(null);return m.createElement(rQ,{props:n,clipPathId:t,previousPointsRef:r,longestAnimatedLengthRef:i,pathRef:a})}var aQ=(e,t)=>{var n,r;return{x:(n=e.x)!==null&&n!==void 0?n:void 0,y:(r=e.y)!==null&&r!==void 0?r:void 0,value:e.value,errorVal:ze(e.payload,t)}};class oQ extends m.Component{render(){var{hide:t,dot:n,points:r,className:i,xAxisId:a,yAxisId:o,top:l,left:s,width:u,height:c,id:d,needClip:p,zIndex:h}=this.props;if(t)return null;var v=Me("recharts-line",i),y=d,{r:x,strokeWidth:g}=lN(n),b=g0(n),w=x*2+g,k=p?"url(#clipPath-".concat(b?"":"dots-").concat(y,")"):void 0;return m.createElement(pn,{zIndex:h},m.createElement(mt,{className:v},p&&m.createElement("defs",null,m.createElement(O0,{clipPathId:y,xAxisId:a,yAxisId:o}),!b&&m.createElement("clipPath",{id:"clipPath-dots-".concat(y)},m.createElement("rect",{x:s-w/2,y:l-w/2,width:u+w,height:c+w}))),m.createElement(nN,{xAxisId:a,yAxisId:o,data:r,dataPointFormatter:aQ,errorBarOffset:0},m.createElement(iQ,{props:this.props,clipPathId:y}))),m.createElement(eg,{activeDot:this.props.activeDot,points:r,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:k}))}}var uN={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:xt.line,type:"linear"};function lQ(e){var t=vt(e,uN),{activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,connectNulls:l,dot:s,hide:u,isAnimationActive:c,label:d,legendType:p,xAxisId:h,yAxisId:v,id:y}=t,x=C0(t,VX),{needClip:g}=Mp(h,v),b=Np(),w=la(),k=$t(),P=oe(M=>yX(M,h,v,k,y));if(w!=="horizontal"&&w!=="vertical"||P==null||b==null)return null;var{height:S,width:O,x:E,y:N}=b;return m.createElement(oQ,zs({},x,{id:y,connectNulls:l,dot:s,activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,isAnimationActive:c,hide:u,label:d,legendType:p,xAxisId:h,yAxisId:v,points:P,layout:w,height:S,width:O,left:E,top:N,needClip:g}))}function sQ(e){var{layout:t,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,dataKey:o,bandSize:l,displayedData:s}=e;return s.map((u,c)=>{var d=ze(u,o);if(t==="horizontal"){var p=md({axis:n,ticks:i,bandSize:l,entry:u,index:c}),h=it(d)?null:r.scale.map(d);return{x:p,y:h??null,value:d,payload:u}}var v=it(d)?null:n.scale.map(d),y=md({axis:r,ticks:a,bandSize:l,entry:u,index:c});return v==null||y==null?null:{x:v,y,value:d,payload:u}}).filter(Boolean)}function uQ(e){var t=vt(e,uN),n=$t();return m.createElement(_p,{id:t.id,type:"line"},r=>m.createElement(m.Fragment,null,m.createElement(S0,{legendPayload:XX(t)}),m.createElement(QX,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:r}),m.createElement(k0,{type:"line",id:r,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:n}),m.createElement(lQ,zs({},t,{id:r}))))}var kc=m.memo(uQ,vu);kc.displayName="Line";function Hr(e,t){var n,r;return(n=(r=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||r===void 0?void 0:r.xAxisId)!==null&&n!==void 0?n:YI}function Vr(e,t){var n,r;return(n=(r=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||r===void 0?void 0:r.yAxisId)!==null&&n!==void 0?n:YI}var cN=(e,t,n)=>Wr(e,"xAxis",Hr(e,t),n),dN=(e,t,n)=>Ur(e,"xAxis",Hr(e,t),n),fN=(e,t,n)=>Wr(e,"yAxis",Vr(e,t),n),pN=(e,t,n)=>Ur(e,"yAxis",Vr(e,t),n),cQ=L([_e,cN,fN,dN,pN],(e,t,n,r,i)=>xr(e,"xAxis")?Qi(t,r,!1):Qi(n,i,!1)),dQ=(e,t)=>t,hN=L([su,dQ],(e,t)=>e.filter(n=>n.type==="area").find(n=>n.id===t)),mN=e=>{var t=_e(e),n=xr(t,"xAxis");return n?"yAxis":"xAxis"},fQ=(e,t)=>{var n=mN(e);return n==="yAxis"?Vr(e,t):Hr(e,t)},pQ=(e,t,n)=>zd(e,mN(e),fQ(e,t),n),hQ=L([hN,pQ],(e,t)=>{var n;if(!(e==null||t==null)){var{stackId:r}=e,i=op(e);if(!(r==null||i==null)){var a=(n=t[r])===null||n===void 0?void 0:n.stackedData,o=a==null?void 0:a.find(l=>l.key===i);if(o!=null)return o.map(l=>[l[0],l[1]])}}}),mQ=L([_e,cN,fN,dN,pN,hQ,QT,cQ,hN,WH],(e,t,n,r,i,a,o,l,s,u)=>{var{chartData:c,dataStartIndex:d,dataEndIndex:p}=o;if(!(s==null||e!=="horizontal"&&e!=="vertical"||t==null||n==null||r==null||i==null||r.length===0||i.length===0||l==null)){var{data:h}=s,v;if(h&&h.length>0?v=h:v=c==null?void 0:c.slice(d,p+1),v!=null)return MQ({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataStartIndex:d,areaSettings:s,stackedData:a,displayedData:v,chartBaseValue:u,bandSize:l})}}),vQ=["id"],gQ=["activeDot","animationBegin","animationDuration","animationEasing","connectNulls","dot","fill","fillOpacity","hide","isAnimationActive","legendType","stroke","xAxisId","yAxisId"];function _a(){return _a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_a.apply(null,arguments)}function vN(e,t){if(e==null)return{};var n,r,i=yQ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function yQ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function SP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function So(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?SP(Object(n),!0).forEach(function(r){xQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):SP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function xQ(e,t,n){return(t=bQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function bQ(e){var t=wQ(e,"string");return typeof t=="symbol"?t:t+""}function wQ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Kd(e,t){return e&&e!=="none"?e:t}var SQ=e=>{var{dataKey:t,name:n,stroke:r,fill:i,legendType:a,hide:o}=e;return[{inactive:o,dataKey:t,type:a,color:Kd(r,i),value:oa(n,t),payload:e}]},kQ=m.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:i,fill:a,name:o,hide:l,unit:s,tooltipType:u,id:c}=e,d={dataDefinedOnItem:n,getPosition:aa,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:oa(o,t),hide:l,type:u,color:Kd(r,a),unit:s,graphicalItemId:c}};return m.createElement(Tp,{tooltipEntrySettings:d})});function PQ(e){var{clipPathId:t,points:n,props:r}=e,{needClip:i,dot:a,dataKey:o}=r,l=un(r);return m.createElement(qI,{points:n,dot:a,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:o,baseProps:l,needClip:i,clipPathId:t})}function jQ(e){var{showLabels:t,children:n,points:r}=e,i=r.map(a=>{var o,l,s={x:(o=a.x)!==null&&o!==void 0?o:0,y:(l=a.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return So(So({},s),{},{value:a.value,payload:a.payload,parentViewBox:void 0,viewBox:s,fill:void 0})});return m.createElement(d0,{value:t?i:void 0},n)}function kP(e){var{points:t,baseLine:n,needClip:r,clipPathId:i,props:a}=e,{layout:o,type:l,stroke:s,connectNulls:u,isRange:c}=a,{id:d}=a,p=vN(a,vQ),h=un(p),v=nn(p);return m.createElement(m.Fragment,null,(t==null?void 0:t.length)>1&&m.createElement(mt,{clipPath:r?"url(#clipPath-".concat(i,")"):void 0},m.createElement(Io,_a({},v,{id:d,points:t,connectNulls:u,type:l,baseLine:n,layout:o,stroke:"none",className:"recharts-area-area"})),s!=="none"&&m.createElement(Io,_a({},h,{className:"recharts-area-curve",layout:o,type:l,connectNulls:u,fill:"none",points:t})),s!=="none"&&c&&m.createElement(Io,_a({},h,{className:"recharts-area-curve",layout:o,type:l,connectNulls:u,fill:"none",points:n}))),m.createElement(PQ,{points:t,props:p,clipPathId:i}))}function OQ(e){var t,n,{alpha:r,baseLine:i,points:a,strokeWidth:o}=e,l=(t=a[0])===null||t===void 0?void 0:t.y,s=(n=a[a.length-1])===null||n===void 0?void 0:n.y;if(!Pe(l)||!Pe(s))return null;var u=r*Math.abs(l-s),c=Math.max(...a.map(d=>d.x||0));return J(i)?c=Math.max(i,c):i&&Array.isArray(i)&&i.length&&(c=Math.max(...i.map(d=>d.x||0),c)),J(c)?m.createElement("rect",{x:0,y:l<s?l:l-u,width:c+(o?parseInt("".concat(o),10):1),height:Math.floor(u)}):null}function CQ(e){var t,n,{alpha:r,baseLine:i,points:a,strokeWidth:o}=e,l=(t=a[0])===null||t===void 0?void 0:t.x,s=(n=a[a.length-1])===null||n===void 0?void 0:n.x;if(!Pe(l)||!Pe(s))return null;var u=r*Math.abs(l-s),c=Math.max(...a.map(d=>d.y||0));return J(i)?c=Math.max(i,c):i&&Array.isArray(i)&&i.length&&(c=Math.max(...i.map(d=>d.y||0),c)),J(c)?m.createElement("rect",{x:l<s?l:l-u,y:0,width:u,height:Math.floor(c+(o?parseInt("".concat(o),10):1))}):null}function EQ(e){var{alpha:t,layout:n,points:r,baseLine:i,strokeWidth:a}=e;return n==="vertical"?m.createElement(OQ,{alpha:t,points:r,baseLine:i,strokeWidth:a}):m.createElement(CQ,{alpha:t,points:r,baseLine:i,strokeWidth:a})}function AQ(e){var{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:a}=e,{points:o,baseLine:l,isAnimationActive:s,animationBegin:u,animationDuration:c,animationEasing:d,onAnimationStart:p,onAnimationEnd:h}=r,v=m.useMemo(()=>({points:o,baseLine:l}),[o,l]),y=nl(v,"recharts-area-"),x=Zy(),[g,b]=m.useState(!1),w=!g,k=m.useCallback(()=>{typeof h=="function"&&h(),b(!1)},[h]),P=m.useCallback(()=>{typeof p=="function"&&p(),b(!0)},[p]);if(x==null)return null;var S=i.current,O=a.current;return m.createElement(jQ,{showLabels:w,points:o},r.children,m.createElement(tl,{animationId:y,begin:u,duration:c,isActive:s,easing:d,onAnimationEnd:k,onAnimationStart:P,key:y},E=>{if(S){var N=S.length/o.length,M=E===1?o:o.map((A,K)=>{var B=Math.floor(K*N);if(S[B]){var D=S[B];return So(So({},A),{},{x:Re(D.x,A.x,E),y:Re(D.y,A.y,E)})}return A}),I;return J(l)?I=Re(O,l,E):it(l)||vr(l)?I=Re(O,0,E):I=l.map((A,K)=>{var B=Math.floor(K*N);if(Array.isArray(O)&&O[B]){var D=O[B];return So(So({},A),{},{x:Re(D.x,A.x,E),y:Re(D.y,A.y,E)})}return A}),E>0&&(i.current=M,a.current=I),m.createElement(kP,{points:M,baseLine:I,needClip:t,clipPathId:n,props:r})}return E>0&&(i.current=o,a.current=l),m.createElement(mt,null,s&&m.createElement("defs",null,m.createElement("clipPath",{id:"animationClipPath-".concat(n)},m.createElement(EQ,{alpha:E,points:o,baseLine:l,layout:x,strokeWidth:r.strokeWidth}))),m.createElement(mt,{clipPath:"url(#animationClipPath-".concat(n,")")},m.createElement(kP,{points:o,baseLine:l,needClip:t,clipPathId:n,props:r})))}),m.createElement(gp,{label:r.label}))}function TQ(e){var{needClip:t,clipPathId:n,props:r}=e,i=m.useRef(null),a=m.useRef();return m.createElement(AQ,{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:a})}class _Q extends m.PureComponent{render(){var{hide:t,dot:n,points:r,className:i,top:a,left:o,needClip:l,xAxisId:s,yAxisId:u,width:c,height:d,id:p,baseLine:h,zIndex:v}=this.props;if(t)return null;var y=Me("recharts-area",i),x=p,{r:g,strokeWidth:b}=lN(n),w=g0(n),k=g*2+b,P=l?"url(#clipPath-".concat(w?"":"dots-").concat(x,")"):void 0;return m.createElement(pn,{zIndex:v},m.createElement(mt,{className:y},l&&m.createElement("defs",null,m.createElement(O0,{clipPathId:x,xAxisId:s,yAxisId:u}),!w&&m.createElement("clipPath",{id:"clipPath-dots-".concat(x)},m.createElement("rect",{x:o-k/2,y:a-k/2,width:c+k,height:d+k}))),m.createElement(TQ,{needClip:l,clipPathId:x,props:this.props})),m.createElement(eg,{points:r,mainColor:Kd(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:P}),this.props.isRange&&Array.isArray(h)&&m.createElement(eg,{points:h,mainColor:Kd(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:P}))}}var gN={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,xAxisId:0,yAxisId:0,zIndex:xt.area};function IQ(e){var t,n=vt(e,gN),{activeDot:r,animationBegin:i,animationDuration:a,animationEasing:o,connectNulls:l,dot:s,fill:u,fillOpacity:c,hide:d,isAnimationActive:p,legendType:h,stroke:v,xAxisId:y,yAxisId:x}=n,g=vN(n,gQ),b=la(),w=fI(),{needClip:k}=Mp(y,x),P=$t(),{points:S,isRange:O,baseLine:E}=(t=oe(B=>mQ(B,e.id,P)))!==null&&t!==void 0?t:{},N=Np();if(b!=="horizontal"&&b!=="vertical"||N==null||w!=="AreaChart"&&w!=="ComposedChart")return null;var{height:M,width:I,x:A,y:K}=N;return!S||!S.length?null:m.createElement(_Q,_a({},g,{activeDot:r,animationBegin:i,animationDuration:a,animationEasing:o,baseLine:E,connectNulls:l,dot:s,fill:u,fillOpacity:c,height:M,hide:d,layout:b,isAnimationActive:p==="auto"?!tu.isSsr:p,isRange:O,legendType:h,needClip:k,points:S,stroke:v,width:I,left:A,top:K,xAxisId:y,yAxisId:x}))}var NQ=(e,t,n,r,i)=>{var a=n??t;if(J(a))return a;var o=e==="horizontal"?i:r,l=o.scale.domain();if(o.type==="number"){var s=Math.max(l[0],l[1]),u=Math.min(l[0],l[1]);return a==="dataMin"?u:a==="dataMax"||s<0?s:Math.max(Math.min(l[0],l[1]),0)}return a==="dataMin"?l[0]:a==="dataMax"?l[1]:l[0]};function MQ(e){var{areaSettings:{connectNulls:t,baseValue:n,dataKey:r},stackedData:i,layout:a,chartBaseValue:o,xAxis:l,yAxis:s,displayedData:u,dataStartIndex:c,xAxisTicks:d,yAxisTicks:p,bandSize:h}=e,v=i&&i.length,y=NQ(a,o,n,l,s),x=a==="horizontal",g=!1,b=u.map((k,P)=>{var S,O,E,N;if(v)N=i[c+P];else{var M=ze(k,r);Array.isArray(M)?(N=M,g=!0):N=[y,M]}var I=(S=(O=N)===null||O===void 0?void 0:O[1])!==null&&S!==void 0?S:null,A=I==null||v&&!t&&ze(k,r)==null;if(x){var K;return{x:md({axis:l,ticks:d,bandSize:h,entry:k,index:P}),y:A?null:(K=s.scale.map(I))!==null&&K!==void 0?K:null,value:N,payload:k}}return{x:A?null:(E=l.scale.map(I))!==null&&E!==void 0?E:null,y:md({axis:s,ticks:p,bandSize:h,entry:k,index:P}),value:N,payload:k}}),w;return v||g?w=b.map(k=>{var P,S=Array.isArray(k.value)?k.value[0]:null;if(x){var O;return{x:k.x,y:S!=null&&k.y!=null&&(O=s.scale.map(S))!==null&&O!==void 0?O:null,payload:k.payload}}return{x:S!=null&&(P=l.scale.map(S))!==null&&P!==void 0?P:null,y:k.y,payload:k.payload}}):w=x?s.scale.map(y):l.scale.map(y),{points:b,baseLine:w??0,isRange:g}}function DQ(e){var t=vt(e,gN),n=$t();return m.createElement(_p,{id:t.id,type:"area"},r=>m.createElement(m.Fragment,null,m.createElement(S0,{legendPayload:SQ(t)}),m.createElement(kQ,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:r}),m.createElement(k0,{type:"area",id:r,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:LA(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),m.createElement(IQ,_a({},t,{id:r}))))}var tg=m.memo(DQ,vu);tg.displayName="Area";var LQ="Invariant failed";function RQ(e,t){throw new Error(LQ)}function ng(){return ng=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ng.apply(null,arguments)}function qd(e){return m.createElement(y0,ng({shapeType:"rectangle",activeClassName:"recharts-active-bar"},e))}var zQ=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(r,i)=>{if(J(t))return t;var a=J(r)||it(r);return a?t(r,i):(a||RQ(),n)}},$Q=(e,t,n)=>n,BQ=(e,t)=>t,gu=L([su,BQ],(e,t)=>e.filter(n=>n.type==="bar").find(n=>n.id===t)),FQ=L([gu],e=>e==null?void 0:e.maxBarSize),UQ=(e,t,n,r)=>r,WQ=L([_e,su,Hr,Vr,$Q],(e,t,n,r,i)=>t.filter(a=>e==="horizontal"?a.xAxisId===n:a.yAxisId===r).filter(a=>a.isPanorama===i).filter(a=>a.hide===!1).filter(a=>a.type==="bar")),HQ=(e,t,n)=>{var r=_e(e),i=Hr(e,t),a=Vr(e,t);if(!(i==null||a==null))return r==="horizontal"?zd(e,"yAxis",a,n):zd(e,"xAxis",i,n)},VQ=(e,t)=>{var n=_e(e),r=Hr(e,t),i=Vr(e,t);if(!(r==null||i==null))return n==="horizontal"?mk(e,"xAxis",r):mk(e,"yAxis",i)},KQ=L([WQ,UH,VQ],aG),qQ=(e,t,n)=>{var r,i,a=gu(e,t);if(a==null)return 0;var o=Hr(e,t),l=Vr(e,t);if(o==null||l==null)return 0;var s=_e(e),u=u_(e),{maxBarSize:c}=a,d=it(c)?u:c,p,h;return s==="horizontal"?(p=Wr(e,"xAxis",o,n),h=Ur(e,"xAxis",o,n)):(p=Wr(e,"yAxis",l,n),h=Ur(e,"yAxis",l,n)),(r=(i=Qi(p,h,!0))!==null&&i!==void 0?i:d)!==null&&r!==void 0?r:0},yN=(e,t,n)=>{var r=_e(e),i=Hr(e,t),a=Vr(e,t);if(!(i==null||a==null)){var o,l;return r==="horizontal"?(o=Wr(e,"xAxis",i,n),l=Ur(e,"xAxis",i,n)):(o=Wr(e,"yAxis",a,n),l=Ur(e,"yAxis",a,n)),Qi(o,l)}},YQ=L([KQ,u_,FH,c_,qQ,yN,FQ],cG),GQ=(e,t,n)=>{var r=Hr(e,t);if(r!=null)return Wr(e,"xAxis",r,n)},XQ=(e,t,n)=>{var r=Vr(e,t);if(r!=null)return Wr(e,"yAxis",r,n)},QQ=(e,t,n)=>{var r=Hr(e,t);if(r!=null)return Ur(e,"xAxis",r,n)},ZQ=(e,t,n)=>{var r=Vr(e,t);if(r!=null)return Ur(e,"yAxis",r,n)},JQ=L([YQ,gu],fG),eZ=L([HQ,gu],dG),tZ=L([At,qy,GQ,XQ,QQ,ZQ,JQ,_e,QT,yN,eZ,gu,UQ],(e,t,n,r,i,a,o,l,s,u,c,d,p)=>{var{chartData:h,dataStartIndex:v,dataEndIndex:y}=s;if(!(d==null||o==null||t==null||l!=="horizontal"&&l!=="vertical"||n==null||r==null||i==null||a==null||u==null)){var{data:x}=d,g;if(x!=null&&x.length>0?g=x:g=h==null?void 0:h.slice(v,y+1),g!=null)return AZ({layout:l,barSettings:d,pos:o,parentViewBox:t,bandSize:u,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,stackedData:c,displayedData:g,offset:e,cells:p,dataStartIndex:v})}}),nZ=["index"];function rg(){return rg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rg.apply(null,arguments)}function rZ(e,t){if(e==null)return{};var n,r,i=iZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function iZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var xN=m.createContext(void 0),aZ=e=>{var t=m.useContext(xN);if(t!=null)return t.stackId;if(e!=null)return LA(e)},oZ=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),lZ=e=>{var t=m.useContext(xN);if(t!=null){var{stackId:n}=t;return"url(#".concat(oZ(n,e),")")}},bN=e=>{var{index:t}=e,n=rZ(e,nZ),r=lZ(t);return m.createElement(mt,rg({className:"recharts-bar-stack-layer",clipPath:r},n))},sZ=["onMouseEnter","onMouseLeave","onClick"],uZ=["value","background","tooltipPosition"],cZ=["id"],dZ=["onMouseEnter","onClick","onMouseLeave"];function hi(){return hi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},hi.apply(null,arguments)}function PP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function on(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?PP(Object(n),!0).forEach(function(r){fZ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):PP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function fZ(e,t,n){return(t=pZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pZ(e){var t=hZ(e,"string");return typeof t=="symbol"?t:t+""}function hZ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Yd(e,t){if(e==null)return{};var n,r,i=mZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function mZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var vZ=e=>{var{dataKey:t,name:n,fill:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:oa(n,t),payload:e}]},gZ=m.memo(e=>{var{dataKey:t,stroke:n,strokeWidth:r,fill:i,name:a,hide:o,unit:l,tooltipType:s,id:u}=e,c={dataDefinedOnItem:void 0,getPosition:aa,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:oa(a,t),hide:o,type:s,color:i,unit:l,graphicalItemId:u}};return m.createElement(Tp,{tooltipEntrySettings:c})});function yZ(e){var t=oe(Zi),{data:n,dataKey:r,background:i,allOtherBarProps:a}=e,{onMouseEnter:o,onMouseLeave:l,onClick:s}=a,u=Yd(a,sZ),c=x0(o,r,a.id),d=b0(l),p=w0(s,r,a.id);if(!i||n==null)return null;var h=Ra(i);return m.createElement(pn,{zIndex:pG(i,xt.barBackground)},n.map((v,y)=>{var{value:x,background:g,tooltipPosition:b}=v,w=Yd(v,uZ);if(!g)return null;var k=c(v,y),P=d(v,y),S=p(v,y),O=on(on(on(on(on({option:i,isActive:String(y)===t},w),{},{fill:"#eee"},g),h),Gs(u,v,y)),{},{onMouseEnter:k,onMouseLeave:P,onClick:S,dataKey:r,index:y,className:"recharts-bar-background-rectangle"});return m.createElement(qd,hi({key:"background-bar-".concat(y)},O))}))}function xZ(e){var{showLabels:t,children:n,rects:r}=e,i=r==null?void 0:r.map(a=>{var o={x:a.x,y:a.y,width:a.width,lowerWidth:a.width,upperWidth:a.width,height:a.height};return on(on({},o),{},{value:a.value,payload:a.payload,parentViewBox:a.parentViewBox,viewBox:o,fill:a.fill})});return m.createElement(d0,{value:t?i:void 0},n)}function bZ(e){var{shape:t,activeBar:n,baseProps:r,entry:i,index:a,dataKey:o}=e,l=oe(Zi),s=oe(a0),u=n&&String(a)===l&&(s==null||o===s),c=u?n:t;return u?m.createElement(pn,{zIndex:xt.activeBar},m.createElement(bN,{index:a},m.createElement(qd,hi({},r,{name:String(r.name)},i,{isActive:u,option:c,index:a,dataKey:o})))):m.createElement(qd,hi({},r,{name:String(r.name)},i,{isActive:u,option:c,index:a,dataKey:o}))}function wZ(e){var{shape:t,baseProps:n,entry:r,index:i,dataKey:a}=e;return m.createElement(qd,hi({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a}))}function SZ(e){var t,{data:n,props:r}=e,i=(t=un(r))!==null&&t!==void 0?t:{},{id:a}=i,o=Yd(i,cZ),{shape:l,dataKey:s,activeBar:u}=r,{onMouseEnter:c,onClick:d,onMouseLeave:p}=r,h=Yd(r,dZ),v=x0(c,s,a),y=b0(p),x=w0(d,s,a);return n?m.createElement(m.Fragment,null,n.map((g,b)=>m.createElement(bN,hi({index:b,key:"rectangle-".concat(g==null?void 0:g.x,"-").concat(g==null?void 0:g.y,"-").concat(g==null?void 0:g.value,"-").concat(b),className:"recharts-bar-rectangle"},Gs(h,g,b),{onMouseEnter:v(g,b),onMouseLeave:y(g,b),onClick:x(g,b)}),u?m.createElement(bZ,{shape:l,activeBar:u,baseProps:o,entry:g,index:b,dataKey:s}):m.createElement(wZ,{shape:l,baseProps:o,entry:g,index:b,dataKey:s})))):null}function kZ(e){var{props:t,previousRectanglesRef:n}=e,{data:r,layout:i,isAnimationActive:a,animationBegin:o,animationDuration:l,animationEasing:s,onAnimationEnd:u,onAnimationStart:c}=t,d=n.current,p=nl(t,"recharts-bar-"),[h,v]=m.useState(!1),y=!h,x=m.useCallback(()=>{typeof u=="function"&&u(),v(!1)},[u]),g=m.useCallback(()=>{typeof c=="function"&&c(),v(!0)},[c]);return m.createElement(xZ,{showLabels:y,rects:r},m.createElement(tl,{animationId:p,begin:o,duration:l,isActive:a,easing:s,onAnimationEnd:x,onAnimationStart:g,key:p},b=>{var w=b===1?r:r==null?void 0:r.map((k,P)=>{var S=d&&d[P];if(S)return on(on({},k),{},{x:Re(S.x,k.x,b),y:Re(S.y,k.y,b),width:Re(S.width,k.width,b),height:Re(S.height,k.height,b)});if(i==="horizontal"){var O=Re(0,k.height,b),E=Re(k.stackedBarStart,k.y,b);return on(on({},k),{},{y:E,height:O})}var N=Re(0,k.width,b),M=Re(k.stackedBarStart,k.x,b);return on(on({},k),{},{width:N,x:M})});return b>0&&(n.current=w??null),w==null?null:m.createElement(mt,null,m.createElement(SZ,{props:t,data:w}))}),m.createElement(gp,{label:t.label}),t.children)}function PZ(e){var t=m.useRef(null);return m.createElement(kZ,{previousRectanglesRef:t,props:e})}var wN=0,jZ=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:ze(e,t)}};class OZ extends m.PureComponent{render(){var{hide:t,data:n,dataKey:r,className:i,xAxisId:a,yAxisId:o,needClip:l,background:s,id:u}=this.props;if(t||n==null)return null;var c=Me("recharts-bar",i),d=u;return m.createElement(mt,{className:c,id:u},l&&m.createElement("defs",null,m.createElement(O0,{clipPathId:d,xAxisId:a,yAxisId:o})),m.createElement(mt,{className:"recharts-bar-rectangles",clipPath:l?"url(#clipPath-".concat(d,")"):void 0},m.createElement(yZ,{data:n,dataKey:r,background:s,allOtherBarProps:this.props}),m.createElement(PZ,this.props)))}}var CZ={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:wN,xAxisId:0,yAxisId:0,zIndex:xt.bar};function EZ(e){var{xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:l,animationDuration:s,animationEasing:u,isAnimationActive:c}=e,{needClip:d}=Mp(t,n),p=la(),h=$t(),v=v0(e.children,hu),y=oe(b=>tZ(b,e.id,h,v));if(p!=="vertical"&&p!=="horizontal")return null;var x,g=y==null?void 0:y[0];return g==null||g.height==null||g.width==null?x=0:x=p==="vertical"?g.height/2:g.width/2,m.createElement(nN,{xAxisId:t,yAxisId:n,data:y,dataPointFormatter:jZ,errorBarOffset:x},m.createElement(OZ,hi({},e,{layout:p,needClip:d,data:y,xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:l,animationDuration:s,animationEasing:u,isAnimationActive:c})))}function AZ(e){var{layout:t,barSettings:{dataKey:n,minPointSize:r},pos:i,bandSize:a,xAxis:o,yAxis:l,xAxisTicks:s,yAxisTicks:u,stackedData:c,displayedData:d,offset:p,cells:h,parentViewBox:v,dataStartIndex:y}=e,x=t==="horizontal"?l:o,g=c?x.scale.domain():null,b=R6({numericAxis:x}),w=x.scale.map(b);return d.map((k,P)=>{var S,O,E,N,M,I;if(c){var A=c[P+y];if(A==null)return null;S=I6(A,g)}else S=ze(k,n),Array.isArray(S)||(S=[b,S]);var K=zQ(r,wN)(S[1],P);if(t==="horizontal"){var B,D=l.scale.map(S[0]),F=l.scale.map(S[1]);if(D==null||F==null)return null;O=S1({axis:o,ticks:s,bandSize:a,offset:i.offset,entry:k,index:P}),E=(B=F??D)!==null&&B!==void 0?B:void 0,N=i.size;var z=D-F;if(M=vr(z)?0:z,I={x:O,y:p.top,width:N,height:p.height},Math.abs(K)>0&&Math.abs(M)<Math.abs(K)){var T=Rt(M||K)*(Math.abs(K)-Math.abs(M));E-=T,M+=T}}else{var R=o.scale.map(S[0]),j=o.scale.map(S[1]);if(R==null||j==null)return null;if(O=R,E=S1({axis:l,ticks:u,bandSize:a,offset:i.offset,entry:k,index:P}),N=j-R,M=i.size,I={x:p.left,y:E,width:p.width,height:M},Math.abs(K)>0&&Math.abs(N)<Math.abs(K)){var q=Rt(N||K)*(Math.abs(K)-Math.abs(N));N+=q}}if(O==null||E==null||N==null||M==null)return null;var Q=on(on({},k),{},{stackedBarStart:w,x:O,y:E,width:N,height:M,value:c?S:S[1],payload:k,background:I,tooltipPosition:{x:O+N/2,y:E+M/2},parentViewBox:v},h&&h[P]&&h[P].props);return Q}).filter(Boolean)}function TZ(e){var t=vt(e,CZ),n=aZ(t.stackId),r=$t();return m.createElement(_p,{id:t.id,type:"bar"},i=>m.createElement(m.Fragment,null,m.createElement(S0,{legendPayload:vZ(t)}),m.createElement(gZ,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:i}),m.createElement(k0,{type:"bar",id:i,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r}),m.createElement(pn,{zIndex:t.zIndex},m.createElement(EZ,hi({},t,{id:i})))))}var SN=m.memo(TZ,vu);SN.displayName="Bar";var _Z=["domain","range"],IZ=["domain","range"];function jP(e,t){if(e==null)return{};var n,r,i=NZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function NZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function OP(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function kN(e,t){if(e===t)return!0;var{domain:n,range:r}=e,i=jP(e,_Z),{domain:a,range:o}=t,l=jP(t,IZ);return!OP(n,a)||!OP(r,o)?!1:vu(i,l)}var MZ=["type"],DZ=["dangerouslySetInnerHTML","ticks","scale"],LZ=["id","scale"];function ig(){return ig=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ig.apply(null,arguments)}function CP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function EP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?CP(Object(n),!0).forEach(function(r){RZ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):CP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function RZ(e,t,n){return(t=zZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zZ(e){var t=$Z(e,"string");return typeof t=="symbol"?t:t+""}function $Z(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ag(e,t){if(e==null)return{};var n,r,i=BZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function BZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function FZ(e){var t=Xe(),n=m.useRef(null),r=Zy(),{type:i}=e,a=ag(e,MZ),o=ip(r,"xAxis",i),l=m.useMemo(()=>{if(o!=null)return EP(EP({},a),{},{type:o})},[a,o]);return m.useLayoutEffect(()=>{l!=null&&(n.current===null?t(HY(l)):n.current!==l&&t(VY({prev:n.current,next:l})),n.current=l)},[l,t]),m.useLayoutEffect(()=>()=>{n.current&&(t(KY(n.current)),n.current=null)},[t]),null}var UZ=e=>{var{xAxisId:t,className:n}=e,r=oe(qy),i=$t(),a="xAxis",o=oe(g=>W_(g,a,t,i)),l=oe(g=>$_(g,t)),s=oe(g=>WV(g,t)),u=oe(g=>b_(g,t));if(l==null||s==null||u==null)return null;var{dangerouslySetInnerHTML:c,ticks:d,scale:p}=e,h=ag(e,DZ),{id:v,scale:y}=u,x=ag(u,LZ);return m.createElement(j0,ig({},h,x,{x:s.x,y:s.y,width:l.width,height:l.height,className:Me("recharts-".concat(a," ").concat(a),n),viewBox:r,ticks:o,axisType:a}))},WZ={allowDataOverflow:Nt.allowDataOverflow,allowDecimals:Nt.allowDecimals,allowDuplicatedCategory:Nt.allowDuplicatedCategory,angle:Nt.angle,axisLine:ri.axisLine,height:Nt.height,hide:!1,includeHidden:Nt.includeHidden,interval:Nt.interval,label:!1,minTickGap:Nt.minTickGap,mirror:Nt.mirror,orientation:Nt.orientation,padding:Nt.padding,reversed:Nt.reversed,scale:Nt.scale,tick:Nt.tick,tickCount:Nt.tickCount,tickLine:ri.tickLine,tickSize:ri.tickSize,type:Nt.type,xAxisId:0},HZ=e=>{var t=vt(e,WZ);return m.createElement(m.Fragment,null,m.createElement(FZ,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit}),m.createElement(UZ,t))},Ul=m.memo(HZ,kN);Ul.displayName="XAxis";var VZ=["type"],KZ=["dangerouslySetInnerHTML","ticks","scale"],qZ=["id","scale"];function og(){return og=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},og.apply(null,arguments)}function AP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function TP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?AP(Object(n),!0).forEach(function(r){YZ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):AP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function YZ(e,t,n){return(t=GZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function GZ(e){var t=XZ(e,"string");return typeof t=="symbol"?t:t+""}function XZ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function lg(e,t){if(e==null)return{};var n,r,i=QZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function QZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function ZZ(e){var t=Xe(),n=m.useRef(null),r=Zy(),{type:i}=e,a=lg(e,VZ),o=ip(r,"yAxis",i),l=m.useMemo(()=>{if(o!=null)return TP(TP({},a),{},{type:o})},[o,a]);return m.useLayoutEffect(()=>{l!=null&&(n.current===null?t(qY(l)):n.current!==l&&t(YY({prev:n.current,next:l})),n.current=l)},[l,t]),m.useLayoutEffect(()=>()=>{n.current&&(t(GY(n.current)),n.current=null)},[t]),null}function JZ(e){var{yAxisId:t,className:n,width:r,label:i}=e,a=m.useRef(null),o=m.useRef(null),l=oe(qy),s=$t(),u=Xe(),c="yAxis",d=oe(S=>B_(S,t)),p=oe(S=>VV(S,t)),h=oe(S=>W_(S,c,t,s)),v=oe(S=>w_(S,t));if(m.useLayoutEffect(()=>{if(!(r!=="auto"||!d||c0(i)||m.isValidElement(i)||v==null)){var S=a.current;if(S){var O=S.getCalculatedWidth();Math.round(d.width)!==Math.round(O)&&u(XY({id:t,width:O}))}}},[h,d,u,i,t,r,v]),d==null||p==null||v==null)return null;var{dangerouslySetInnerHTML:y,ticks:x,scale:g}=e,b=lg(e,KZ),{id:w,scale:k}=v,P=lg(v,qZ);return m.createElement(j0,og({},b,P,{ref:a,labelRef:o,x:p.x,y:p.y,tickTextProps:r==="auto"?{width:void 0}:{width:r},width:d.width,height:d.height,className:Me("recharts-".concat(c," ").concat(c),n),viewBox:l,ticks:h,axisType:c}))}var eJ={allowDataOverflow:Mt.allowDataOverflow,allowDecimals:Mt.allowDecimals,allowDuplicatedCategory:Mt.allowDuplicatedCategory,angle:Mt.angle,axisLine:ri.axisLine,hide:!1,includeHidden:Mt.includeHidden,interval:Mt.interval,label:!1,minTickGap:Mt.minTickGap,mirror:Mt.mirror,orientation:Mt.orientation,padding:Mt.padding,reversed:Mt.reversed,scale:Mt.scale,tick:Mt.tick,tickCount:Mt.tickCount,tickLine:ri.tickLine,tickSize:ri.tickSize,type:Mt.type,width:Mt.width,yAxisId:0},tJ=e=>{var t=vt(e,eJ);return m.createElement(m.Fragment,null,m.createElement(ZZ,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter}),m.createElement(JZ,t))},Wl=m.memo(tJ,kN);Wl.displayName="YAxis";var nJ=(e,t)=>t,E0=L([nJ,_e,g_,Ft,oI,Si,oK,At],pK),A0=e=>{var t=e.currentTarget.getBoundingClientRect(),n=t.width/e.currentTarget.offsetWidth,r=t.height/e.currentTarget.offsetHeight;return{chartX:Math.round((e.clientX-t.left)/n),chartY:Math.round((e.clientY-t.top)/r)}},PN=Jn("mouseClick"),jN=Qs();jN.startListening({actionCreator:PN,effect:(e,t)=>{var n=e.payload,r=E0(t.getState(),A0(n));(r==null?void 0:r.activeIndex)!=null&&t.dispatch(a9({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var sg=Jn("mouseMove"),ON=Qs(),nc=null;ON.startListening({actionCreator:sg,effect:(e,t)=>{var n=e.payload;nc!==null&&cancelAnimationFrame(nc);var r=A0(n);nc=requestAnimationFrame(()=>{var i=t.getState(),a=Jx(i,i.tooltip.settings.shared);if(a==="axis"){var o=E0(i,r);(o==null?void 0:o.activeIndex)!=null?t.dispatch(Q_({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate})):t.dispatch(X_())}nc=null})}});function rJ(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<<CHILDREN>>":t}var _P={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},CN=jn({name:"rootProps",initialState:_P,reducers:{updateOptions:(e,t)=>{var n;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(n=t.payload.barGap)!==null&&n!==void 0?n:_P.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),iJ=CN.reducer,{updateOptions:aJ}=CN.actions,oJ=null,lJ={updatePolarOptions:(e,t)=>t.payload},EN=jn({name:"polarOptions",initialState:oJ,reducers:lJ}),{updatePolarOptions:sJ}=EN.actions,uJ=EN.reducer,AN=Jn("keyDown"),TN=Jn("focus"),T0=Qs();T0.startListening({actionCreator:AN,effect:(e,t)=>{var n=t.getState(),r=n.rootProps.accessibilityLayer!==!1;if(r){var{keyboardInteraction:i}=n.tooltip,a=e.payload;if(!(a!=="ArrowRight"&&a!=="ArrowLeft"&&a!=="Enter")){var o=e0(i,dl(n),cu(n),fu(n)),l=o==null?-1:Number(o);if(!(!Number.isFinite(l)||l<0)){var s=Si(n);if(a==="Enter"){var u=Bd(n,"axis","hover",String(i.index));t.dispatch(Gv({active:!i.active,activeIndex:i.index,activeCoordinate:u}));return}var c=GV(n),d=c==="left-to-right"?1:-1,p=a==="ArrowRight"?1:-1,h=l+p*d;if(!(s==null||h>=s.length||h<0)){var v=Bd(n,"axis","hover",String(h));t.dispatch(Gv({active:!0,activeIndex:h.toString(),activeCoordinate:v}))}}}}}});T0.startListening({actionCreator:TN,effect:(e,t)=>{var n=t.getState(),r=n.rootProps.accessibilityLayer!==!1;if(r){var{keyboardInteraction:i}=n.tooltip;if(!i.active&&i.index==null){var a="0",o=Bd(n,"axis","hover",String(a));t.dispatch(Gv({active:!0,activeIndex:a,activeCoordinate:o}))}}}});var Wn=Jn("externalEvent"),_N=Qs(),Jh=new Map;_N.startListening({actionCreator:Wn,effect:(e,t)=>{var{handler:n,reactEvent:r}=e.payload;if(n!=null){r.persist();var i=r.type,a=Jh.get(i);a!==void 0&&cancelAnimationFrame(a);var o=requestAnimationFrame(()=>{try{var l=t.getState(),s={activeCoordinate:V9(l),activeDataKey:a0(l),activeIndex:Zi(l),activeLabel:uI(l),activeTooltipIndex:Zi(l),isTooltipActive:K9(l)};n(s,r)}finally{Jh.delete(i)}});Jh.set(i,o)}}});var cJ=L([ul],e=>e.tooltipItemPayloads),dJ=L([cJ,(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(a=>a.settings.graphicalItemId===n);if(r!=null){var{getPosition:i}=r;if(i!=null)return i(t)}}}),IN=Jn("touchMove"),NN=Qs();NN.startListening({actionCreator:IN,effect:(e,t)=>{var n=e.payload;if(!(n.touches==null||n.touches.length===0)){var r=t.getState(),i=Jx(r,r.tooltip.settings.shared);if(i==="axis"){var a=n.touches[0];if(a==null)return;var o=E0(r,A0({clientX:a.clientX,clientY:a.clientY,currentTarget:n.currentTarget}));(o==null?void 0:o.activeIndex)!=null&&t.dispatch(Q_({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate}))}else if(i==="item"){var l,s=n.touches[0];if(document.elementFromPoint==null||s==null)return;var u=document.elementFromPoint(s.clientX,s.clientY);if(!u||!u.getAttribute)return;var c=u.getAttribute(zA),d=(l=u.getAttribute($A))!==null&&l!==void 0?l:void 0,p=cl(r).find(y=>y.id===d);if(c==null||p==null||d==null)return;var{dataKey:h}=p,v=dJ(r,c,d);t.dispatch(G_({activeDataKey:h,activeIndex:c,activeCoordinate:v,activeGraphicalItemId:d}))}}}});var fJ=aA({brush:hG,cartesianAxis:QY,chartData:WK,errorBars:sX,graphicalItems:aY,layout:C6,legend:A5,options:zK,polarAxis:wq,polarOptions:uJ,referenceElements:yG,rootProps:iJ,tooltip:o9,zIndex:CK}),pJ=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return ZF({reducer:fJ,preloadedState:t,middleware:r=>{var i;return r({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((i="es6")!==null&&i!==void 0?i:"")}).concat([jN.middleware,ON.middleware,T0.middleware,_N.middleware,NN.middleware])},enhancers:r=>{var i=r;return typeof r=="function"&&(i=r()),i.concat(bA({type:"raf"}))},devTools:{serialize:{replacer:rJ},name:"recharts-".concat(n)}})};function MN(e){var{preloadedState:t,children:n,reduxStoreName:r}=e,i=$t(),a=m.useRef(null);if(i)return n;a.current==null&&(a.current=pJ(t,r));var o=zy;return m.createElement(BX,{context:o,store:a.current},n)}function hJ(e){var{layout:t,margin:n}=e,r=Xe(),i=$t();return m.useEffect(()=>{i||(r(P6(t)),r(k6(n)))},[r,i,t,n]),null}var DN=m.memo(hJ,vu);function LN(e){var t=Xe();return m.useEffect(()=>{t(aJ(e))},[t,e]),null}function IP(e){var{zIndex:t,isPanorama:n}=e,r=m.useRef(null),i=Xe();return m.useLayoutEffect(()=>(r.current&&i(jK({zIndex:t,element:r.current,isPanorama:n})),()=>{i(OK({zIndex:t,isPanorama:n}))}),[i,t,n]),m.createElement("g",{tabIndex:-1,ref:r})}function NP(e){var{children:t,isPanorama:n}=e,r=oe(mK);if(!r||r.length===0)return t;var i=r.filter(o=>o<0),a=r.filter(o=>o>0);return m.createElement(m.Fragment,null,i.map(o=>m.createElement(IP,{key:o,zIndex:o,isPanorama:n})),t,a.map(o=>m.createElement(IP,{key:o,zIndex:o,isPanorama:n})))}var mJ=["children"];function vJ(e,t){if(e==null)return{};var n,r,i=gJ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function gJ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Gd(){return Gd=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Gd.apply(null,arguments)}var yJ={width:"100%",height:"100%",display:"block"},xJ=m.forwardRef((e,t)=>{var n=Xy(),r=Qy(),i=iT();if(!Br(n)||!Br(r))return null;var{children:a,otherAttributes:o,title:l,desc:s}=e,u,c;return o!=null&&(typeof o.tabIndex=="number"?u=o.tabIndex:u=i?0:void 0,typeof o.role=="string"?c=o.role:c=i?"application":void 0),m.createElement(ky,Gd({},o,{title:l,desc:s,role:c,tabIndex:u,width:n,height:r,style:yJ,ref:t}),a)}),bJ=e=>{var{children:t}=e,n=oe(Vf);if(!n)return null;var{width:r,height:i,y:a,x:o}=n;return m.createElement(ky,{width:r,height:i,x:o,y:a},t)},MP=m.forwardRef((e,t)=>{var{children:n}=e,r=vJ(e,mJ),i=$t();return i?m.createElement(bJ,null,m.createElement(NP,{isPanorama:!0},n)):m.createElement(xJ,Gd({ref:t},r),m.createElement(NP,{isPanorama:!1},n))});function wJ(){var e=Xe(),[t,n]=m.useState(null),r=oe(W6);return m.useEffect(()=>{if(t!=null){var i=t.getBoundingClientRect(),a=i.width/t.offsetWidth;Pe(a)&&a!==r&&e(O6(a))}},[t,e,r]),n}function DP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function SJ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?DP(Object(n),!0).forEach(function(r){kJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):DP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function kJ(e,t,n){return(t=PJ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PJ(e){var t=jJ(e,"string");return typeof t=="symbol"?t:t+""}function jJ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Yi(){return Yi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Yi.apply(null,arguments)}var OJ=()=>(ZK(),null);function Xd(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var CJ=m.forwardRef((e,t)=>{var n,r,i=m.useRef(null),[a,o]=m.useState({containerWidth:Xd((n=e.style)===null||n===void 0?void 0:n.width),containerHeight:Xd((r=e.style)===null||r===void 0?void 0:r.height)}),l=m.useCallback((u,c)=>{o(d=>{var p=Math.round(u),h=Math.round(c);return d.containerWidth===p&&d.containerHeight===h?d:{containerWidth:p,containerHeight:h}})},[]),s=m.useCallback(u=>{if(typeof t=="function"&&t(u),u!=null&&typeof ResizeObserver<"u"){var{width:c,height:d}=u.getBoundingClientRect();l(c,d);var p=v=>{var y=v[0];if(y!=null){var{width:x,height:g}=y.contentRect;l(x,g)}},h=new ResizeObserver(p);h.observe(u),i.current=h}},[t,l]);return m.useEffect(()=>()=>{var u=i.current;u!=null&&u.disconnect()},[l]),m.createElement(m.Fragment,null,m.createElement(Js,{width:a.containerWidth,height:a.containerHeight}),m.createElement("div",Yi({ref:s},e)))}),EJ=m.forwardRef((e,t)=>{var{width:n,height:r}=e,[i,a]=m.useState({containerWidth:Xd(n),containerHeight:Xd(r)}),o=m.useCallback((s,u)=>{a(c=>{var d=Math.round(s),p=Math.round(u);return c.containerWidth===d&&c.containerHeight===p?c:{containerWidth:d,containerHeight:p}})},[]),l=m.useCallback(s=>{if(typeof t=="function"&&t(s),s!=null){var{width:u,height:c}=s.getBoundingClientRect();o(u,c)}},[t,o]);return m.createElement(m.Fragment,null,m.createElement(Js,{width:i.containerWidth,height:i.containerHeight}),m.createElement("div",Yi({ref:l},e)))}),AJ=m.forwardRef((e,t)=>{var{width:n,height:r}=e;return m.createElement(m.Fragment,null,m.createElement(Js,{width:n,height:r}),m.createElement("div",Yi({ref:t},e)))}),TJ=m.forwardRef((e,t)=>{var{width:n,height:r}=e;return typeof n=="string"||typeof r=="string"?m.createElement(EJ,Yi({},e,{ref:t})):typeof n=="number"&&typeof r=="number"?m.createElement(AJ,Yi({},e,{width:n,height:r,ref:t})):m.createElement(m.Fragment,null,m.createElement(Js,{width:n,height:r}),m.createElement("div",Yi({ref:t},e)))});function _J(e){return e?CJ:TJ}var IJ=m.forwardRef((e,t)=>{var{children:n,className:r,height:i,onClick:a,onContextMenu:o,onDoubleClick:l,onMouseDown:s,onMouseEnter:u,onMouseLeave:c,onMouseMove:d,onMouseUp:p,onTouchEnd:h,onTouchMove:v,onTouchStart:y,style:x,width:g,responsive:b,dispatchTouchEvents:w=!0}=e,k=m.useRef(null),P=Xe(),[S,O]=m.useState(null),[E,N]=m.useState(null),M=wJ(),I=Yy(),A=(I==null?void 0:I.width)>0?I.width:g,K=(I==null?void 0:I.height)>0?I.height:i,B=m.useCallback(H=>{M(H),typeof t=="function"&&t(H),O(H),N(H),H!=null&&(k.current=H)},[M,t,O,N]),D=m.useCallback(H=>{P(PN(H)),P(Wn({handler:a,reactEvent:H}))},[P,a]),F=m.useCallback(H=>{P(sg(H)),P(Wn({handler:u,reactEvent:H}))},[P,u]),z=m.useCallback(H=>{P(X_()),P(Wn({handler:c,reactEvent:H}))},[P,c]),T=m.useCallback(H=>{P(sg(H)),P(Wn({handler:d,reactEvent:H}))},[P,d]),R=m.useCallback(()=>{P(TN())},[P]),j=m.useCallback(H=>{P(AN(H.key))},[P]),q=m.useCallback(H=>{P(Wn({handler:o,reactEvent:H}))},[P,o]),Q=m.useCallback(H=>{P(Wn({handler:l,reactEvent:H}))},[P,l]),C=m.useCallback(H=>{P(Wn({handler:s,reactEvent:H}))},[P,s]),ae=m.useCallback(H=>{P(Wn({handler:p,reactEvent:H}))},[P,p]),he=m.useCallback(H=>{P(Wn({handler:y,reactEvent:H}))},[P,y]),fe=m.useCallback(H=>{w&&P(IN(H)),P(Wn({handler:v,reactEvent:H}))},[P,w,v]),ge=m.useCallback(H=>{P(Wn({handler:h,reactEvent:H}))},[P,h]),Fe=_J(b);return m.createElement(gI.Provider,{value:S},m.createElement(iE.Provider,{value:E},m.createElement(Fe,{width:A??(x==null?void 0:x.width),height:K??(x==null?void 0:x.height),className:Me("recharts-wrapper",r),style:SJ({position:"relative",cursor:"default",width:A,height:K},x),onClick:D,onContextMenu:q,onDoubleClick:Q,onFocus:R,onKeyDown:j,onMouseDown:C,onMouseEnter:F,onMouseLeave:z,onMouseMove:T,onMouseUp:ae,onTouchEnd:ge,onTouchMove:fe,onTouchStart:he,ref:B},m.createElement(OJ,null),n)))}),NJ=["width","height","responsive","children","className","style","compact","title","desc"];function MJ(e,t){if(e==null)return{};var n,r,i=DJ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function DJ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var RN=m.forwardRef((e,t)=>{var{width:n,height:r,responsive:i,children:a,className:o,style:l,compact:s,title:u,desc:c}=e,d=MJ(e,NJ),p=un(d);return s?m.createElement(m.Fragment,null,m.createElement(Js,{width:n,height:r}),m.createElement(MP,{otherAttributes:p,title:u,desc:c},a)):m.createElement(IJ,{className:o,style:l,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},m.createElement(MP,{otherAttributes:p,title:u,desc:c,ref:t},m.createElement(bG,null,a)))});function ug(){return ug=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ug.apply(null,arguments)}var LJ={top:5,right:5,bottom:5,left:5},RJ={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:LJ,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},_0=m.forwardRef(function(t,n){var r,i=vt(t.categoricalChartProps,RJ),{chartName:a,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:s,categoricalChartProps:u}=t,c={chartName:a,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:s,eventEmitter:void 0};return m.createElement(MN,{preloadedState:{options:c},reduxStoreName:(r=u.id)!==null&&r!==void 0?r:a},m.createElement(XI,{chartData:u.data}),m.createElement(DN,{layout:i.layout,margin:i.margin}),m.createElement(LN,{baseValue:i.baseValue,accessibilityLayer:i.accessibilityLayer,barCategoryGap:i.barCategoryGap,maxBarSize:i.maxBarSize,stackOffset:i.stackOffset,barGap:i.barGap,barSize:i.barSize,syncId:i.syncId,syncMethod:i.syncMethod,className:i.className,reverseStackOrder:i.reverseStackOrder}),m.createElement(RN,ug({},i,{ref:n})))}),zJ=["axis"],LP=m.forwardRef((e,t)=>m.createElement(_0,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:zJ,tooltipPayloadSearcher:mp,categoricalChartProps:e,ref:t})),$J=["axis","item"],BJ=m.forwardRef((e,t)=>m.createElement(_0,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:$J,tooltipPayloadSearcher:mp,categoricalChartProps:e,ref:t}));function FJ(e){var t=Xe();return m.useEffect(()=>{t(sJ(e))},[t,e]),null}var UJ=["layout"];function cg(){return cg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},cg.apply(null,arguments)}function WJ(e,t){if(e==null)return{};var n,r,i=HJ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function HJ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var VJ={top:5,right:5,bottom:5,left:5},zN={accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:VJ,reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},KJ=m.forwardRef(function(t,n){var r,i=vt(t.categoricalChartProps,zN),{layout:a}=i,o=WJ(i,UJ),{chartName:l,defaultTooltipEventType:s,validateTooltipEventTypes:u,tooltipPayloadSearcher:c}=t,d={chartName:l,defaultTooltipEventType:s,validateTooltipEventTypes:u,tooltipPayloadSearcher:c,eventEmitter:void 0};return m.createElement(MN,{preloadedState:{options:d},reduxStoreName:(r=i.id)!==null&&r!==void 0?r:l},m.createElement(XI,{chartData:i.data}),m.createElement(DN,{layout:a,margin:i.margin}),m.createElement(LN,{baseValue:void 0,accessibilityLayer:i.accessibilityLayer,barCategoryGap:i.barCategoryGap,maxBarSize:i.maxBarSize,stackOffset:i.stackOffset,barGap:i.barGap,barSize:i.barSize,syncId:i.syncId,syncMethod:i.syncMethod,className:i.className,reverseStackOrder:i.reverseStackOrder}),m.createElement(FJ,{cx:i.cx,cy:i.cy,startAngle:i.startAngle,endAngle:i.endAngle,innerRadius:i.innerRadius,outerRadius:i.outerRadius}),m.createElement(RN,cg({},o,{ref:n})))});function RP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function zP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?RP(Object(n),!0).forEach(function(r){qJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):RP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function qJ(e,t,n){return(t=YJ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function YJ(e){var t=GJ(e,"string");return typeof t=="symbol"?t:t+""}function GJ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var XJ=["item"],QJ=zP(zP({},zN),{},{layout:"centric",startAngle:0,endAngle:360}),ZJ=m.forwardRef((e,t)=>{var n=vt(e,QJ);return m.createElement(KJ,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:XJ,tooltipPayloadSearcher:mp,categoricalChartProps:n,ref:t})}),JJ=["axis"],eee=m.forwardRef((e,t)=>m.createElement(_0,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:JJ,tooltipPayloadSearcher:mp,categoricalChartProps:e,ref:t}));const $P=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#f97316"];function tee(){const[e,t]=m.useState(null),[n,r]=m.useState(!0),[i,a]=m.useState(30);m.useEffect(()=>{o()},[i]);const o=async()=>{try{r(!0);const d=await te.getStatistics(i);t(d)}catch(d){console.error("Failed to load statistics:",d)}finally{r(!1)}},l=d=>d>=1e6?`${(d/1e6).toFixed(1)}M`:d>=1e3?`${(d/1e3).toFixed(1)}K`:d.toString(),s=d=>{if(d>=60){const p=Math.floor(d/60),h=d%60;return`${p}h ${h}m`}return`${d}m`};if(n)return f.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"60vh"},children:f.jsx("div",{style:{fontSize:"18px",color:"var(--text-muted)"},children:"加载统计数据中..."})});if(!e)return f.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"60vh"},children:f.jsx("div",{style:{fontSize:"18px",color:"var(--text-muted)"},children:"暂无统计数据"})});const u={default:"默认请求","image-understanding":"图像理解",thinking:"思考模式","long-context":"长上下文",background:"后台任务","model-mapping":"模型映射"},c=e.timeline.map(d=>({date:d.date,codingTime:Math.round(d.totalInputTokens/250+d.totalOutputTokens/100)}));return f.jsxs("div",{children:[f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"24px"},children:[f.jsxs("div",{children:[f.jsx("h1",{style:{margin:0,fontSize:"28px",fontWeight:"bold",color:"var(--text-primary)"},children:"📊 数据统计"}),f.jsx("p",{style:{margin:"4px 0 0 0",color:"var(--text-muted)"},children:"查看您的 AI 编程助手使用情况分析"})]}),f.jsxs("div",{style:{display:"flex",gap:"12px",alignItems:"center"},children:[f.jsx("label",{style:{color:"var(--text-primary)",fontWeight:"500"},children:"统计周期:"}),f.jsxs("select",{value:i,onChange:d=>a(Number(d.target.value)),style:{padding:"8px 16px",borderRadius:"8px",border:"1px solid var(--border-primary)",background:"var(--bg-card)",color:"var(--text-primary)",fontSize:"14px",cursor:"pointer"},children:[f.jsx("option",{value:7,children:"最近 7 天"}),f.jsx("option",{value:30,children:"最近 30 天"}),f.jsx("option",{value:90,children:"最近 90 天"})]}),f.jsx("button",{onClick:o,style:{padding:"8px 16px",borderRadius:"8px",border:"1px solid var(--border-primary)",background:"var(--bg-card)",color:"var(--text-primary)",fontSize:"14px",cursor:"pointer"},children:"🔄 刷新"})]})]}),f.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(240px, 1fr))",gap:"16px",marginBottom:"24px"},children:[f.jsxs("div",{style:{background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"总请求数"}),f.jsx("div",{style:{fontSize:"32px",fontWeight:"bold"},children:l(e.overview.totalRequests)})]}),f.jsxs("div",{style:{background:"linear-gradient(135deg, #f093fb 0%, #f5576c 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"总 Tokens"}),f.jsx("div",{style:{fontSize:"32px",fontWeight:"bold"},children:l(e.overview.totalTokens)})]}),f.jsxs("div",{style:{background:"linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"编程时长"}),f.jsx("div",{style:{fontSize:"32px",fontWeight:"bold"},children:s(e.overview.totalCodingTime)})]}),f.jsxs("div",{style:{background:"linear-gradient(135deg, #14a042 0%, #38f9d7 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"成功率"}),f.jsxs("div",{style:{fontSize:"32px",fontWeight:"bold"},children:[e.overview.successRate.toFixed(1),"%"]})]}),f.jsxs("div",{style:{background:"linear-gradient(135deg, #fa709a 0%, #fee140 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"平均响应时间"}),f.jsxs("div",{style:{fontSize:"32px",fontWeight:"bold"},children:[e.overview.avgResponseTime,"ms"]})]}),f.jsxs("div",{style:{background:"linear-gradient(135deg, #30cfd0 0%, #330867 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"配置统计"}),f.jsxs("div",{style:{fontSize:"14px",marginTop:"8px"},children:[e.overview.totalVendors," 供应商 · ",e.overview.totalServices," 服务 · ",e.overview.totalRoutes," 路由"]})]})]}),f.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(500px, 1fr))",gap:"20px",marginBottom:"24px"},children:[f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"📈 请求趋势"}),f.jsx(Sl,{width:"100%",height:300,children:f.jsxs(eee,{data:e.timeline,children:[f.jsx("defs",{children:f.jsxs("linearGradient",{id:"colorRequests",x1:"0",y1:"0",x2:"0",y2:"1",children:[f.jsx("stop",{offset:"5%",stopColor:"#8884d8",stopOpacity:.8}),f.jsx("stop",{offset:"95%",stopColor:"#8884d8",stopOpacity:0})]})}),f.jsx(Fl,{strokeDasharray:"3 3",stroke:"var(--border-primary)"}),f.jsx(Ul,{dataKey:"date",stroke:"var(--text-muted)",fontSize:12,tickFormatter:d=>Qt(d).format("MM/DD")}),f.jsx(Wl,{stroke:"var(--text-muted)",fontSize:12}),f.jsx(_l,{contentStyle:{background:"var(--bg-card)",border:"1px solid var(--border-primary)",borderRadius:"8px",color:"var(--text-primary)"},labelFormatter:d=>Qt(d).format("YYYY-MM-DD")}),f.jsx(zl,{}),f.jsx(tg,{type:"monotone",dataKey:"totalRequests",name:"请求数",stroke:"#8884d8",fillOpacity:1,fill:"url(#colorRequests)"})]})})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"🔢 Token 使用趋势"}),f.jsx(Sl,{width:"100%",height:300,children:f.jsxs(LP,{data:e.timeline,children:[f.jsx(Fl,{strokeDasharray:"3 3",stroke:"var(--border-primary)"}),f.jsx(Ul,{dataKey:"date",stroke:"var(--text-muted)",fontSize:12,tickFormatter:d=>Qt(d).format("MM/DD")}),f.jsx(Wl,{stroke:"var(--text-muted)",fontSize:12,tickFormatter:d=>d?l(Number(d)):""}),f.jsx(_l,{contentStyle:{background:"var(--bg-card)",border:"1px solid var(--border-primary)",borderRadius:"8px",color:"var(--text-primary)"},labelFormatter:d=>Qt(d).format("YYYY-MM-DD"),formatter:d=>d?l(Number(d)):""}),f.jsx(zl,{}),f.jsx(kc,{type:"monotone",dataKey:"totalInputTokens",name:"输入 Tokens",stroke:"#10b981",strokeWidth:2,dot:!1}),f.jsx(kc,{type:"monotone",dataKey:"totalOutputTokens",name:"输出 Tokens",stroke:"#f59e0b",strokeWidth:2,dot:!1})]})})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"⏱️ 每日编程时长趋势"}),f.jsx(Sl,{width:"100%",height:300,children:f.jsxs(LP,{data:c,children:[f.jsx("defs",{children:f.jsxs("linearGradient",{id:"colorCodingTime",x1:"0",y1:"0",x2:"0",y2:"1",children:[f.jsx("stop",{offset:"5%",stopColor:"#8b5cf6",stopOpacity:.8}),f.jsx("stop",{offset:"95%",stopColor:"#8b5cf6",stopOpacity:0})]})}),f.jsx(Fl,{strokeDasharray:"3 3",stroke:"var(--border-primary)"}),f.jsx(Ul,{dataKey:"date",stroke:"var(--text-muted)",fontSize:12,tickFormatter:d=>Qt(d).format("MM/DD")}),f.jsx(Wl,{stroke:"var(--text-muted)",fontSize:12,tickFormatter:d=>d!=null?d>=60?`${Math.round(Number(d)/60)}h`:`${Number(d)}m`:""}),f.jsx(_l,{contentStyle:{background:"var(--bg-card)",border:"1px solid var(--border-primary)",borderRadius:"8px",color:"var(--text-primary)"},labelFormatter:d=>Qt(d).format("YYYY-MM-DD"),formatter:d=>d!=null?s(Number(d)):""}),f.jsx(zl,{}),f.jsx(tg,{type:"monotone",dataKey:"codingTime",name:"编程时长",stroke:"#8b5cf6",fillOpacity:1,fill:"url(#colorCodingTime)"}),f.jsx(kc,{type:"monotone",dataKey:"codingTime",name:"编程时长",stroke:"#8b5cf6",strokeWidth:3,dot:{fill:"#8b5cf6",r:4},activeDot:{r:6}})]})}),f.jsx("div",{style:{marginTop:"12px",padding:"12px",background:"var(--bg-secondary)",borderRadius:"8px",fontSize:"14px",color:"var(--text-muted)",textAlign:"center"},children:"💡 编程时长基于 tokens 估算(阅读速度 250 tokens/分钟,编码速度 100 tokens/分钟)"})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"🏢 供应商使用分布"}),f.jsx(Sl,{width:"100%",height:300,children:f.jsxs(BJ,{data:e.byVendor,children:[f.jsx(Fl,{strokeDasharray:"3 3",stroke:"var(--border-primary)"}),f.jsx(Ul,{dataKey:"vendorName",stroke:"var(--text-muted)",fontSize:12,angle:-45,textAnchor:"end",height:80}),f.jsx(Wl,{stroke:"var(--text-muted)",fontSize:12}),f.jsx(_l,{contentStyle:{background:"var(--bg-card)",border:"1px solid var(--border-primary)",borderRadius:"8px",color:"var(--text-primary)"}}),f.jsx(zl,{}),f.jsx(SN,{dataKey:"totalRequests",name:"请求数",fill:"#3b82f6"})]})})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"📋 请求类型分布"}),f.jsx(Sl,{width:"100%",height:300,children:f.jsxs(ZJ,{children:[f.jsx(KI,{data:e.contentTypeDistribution,cx:"50%",cy:"50%",labelLine:!0,label:d=>`${u[d.contentType]||d.contentType} (${d.percentage}%)`,outerRadius:80,fill:"#8884d8",dataKey:"count",children:e.contentTypeDistribution.map((d,p)=>f.jsx(hu,{fill:$P[p%$P.length]},`cell-${p}`))}),f.jsx(_l,{contentStyle:{background:"var(--bg-card)",border:"1px solid var(--border-primary)",borderRadius:"8px",color:"var(--text-primary)"},formatter:(d,p,h)=>{var b,w;const v=d??0,y=((b=h.payload)==null?void 0:b.percentage)??0,x=((w=h.payload)==null?void 0:w.contentType)||"",g=u[x]||x;return`${v} (${y}%) - ${g}`}})]})})]})]}),f.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(400px, 1fr))",gap:"20px"},children:[f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"🎯 按目标类型统计"}),f.jsxs("table",{style:{width:"100%",borderCollapse:"collapse"},children:[f.jsx("thead",{children:f.jsxs("tr",{style:{borderBottom:"2px solid var(--border-primary)"},children:[f.jsx("th",{style:{padding:"12px",textAlign:"left",color:"var(--text-muted)",fontSize:"14px"},children:"类型"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"请求数"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"Tokens"})]})}),f.jsx("tbody",{children:e.byTargetType.map(d=>f.jsxs("tr",{style:{borderBottom:"1px solid var(--border-secondary)"},children:[f.jsx("td",{style:{padding:"12px",color:"var(--text-primary)"},children:d.targetType==="claude-code"?"Claude Code":"Codex"}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalRequests)}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalTokens)})]},d.targetType))})]})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"🤖 按模型统计"}),f.jsxs("table",{style:{width:"100%",borderCollapse:"collapse"},children:[f.jsx("thead",{children:f.jsxs("tr",{style:{borderBottom:"2px solid var(--border-primary)"},children:[f.jsx("th",{style:{padding:"12px",textAlign:"left",color:"var(--text-muted)",fontSize:"14px"},children:"模型"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"请求数"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"Tokens"})]})}),f.jsx("tbody",{children:e.byModel.slice(0,10).map(d=>f.jsxs("tr",{style:{borderBottom:"1px solid var(--border-secondary)"},children:[f.jsx("td",{style:{padding:"12px",color:"var(--text-primary)",maxWidth:"200px",overflow:"hidden",textOverflow:"ellipsis"},children:d.modelName}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalRequests)}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalTokens)})]},d.modelName))})]})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"🔧 按服务统计"}),f.jsxs("table",{style:{width:"100%",borderCollapse:"collapse"},children:[f.jsx("thead",{children:f.jsxs("tr",{style:{borderBottom:"2px solid var(--border-primary)"},children:[f.jsx("th",{style:{padding:"12px",textAlign:"left",color:"var(--text-muted)",fontSize:"14px"},children:"服务"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"请求数"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"Tokens"})]})}),f.jsx("tbody",{children:e.byService.slice(0,10).map(d=>f.jsxs("tr",{style:{borderBottom:"1px solid var(--border-secondary)"},children:[f.jsxs("td",{style:{padding:"12px",color:"var(--text-primary)"},children:[f.jsx("div",{style:{fontSize:"14px",fontWeight:"bold"},children:d.serviceName}),f.jsx("div",{style:{fontSize:"12px",color:"var(--text-muted)"},children:d.vendorName})]}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalRequests)}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalTokens)})]},d.serviceId))})]})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"💰 Token 详细统计"}),f.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",padding:"12px",background:"var(--bg-secondary)",borderRadius:"8px"},children:[f.jsx("span",{style:{color:"var(--text-muted)"},children:"输入 Tokens"}),f.jsx("span",{style:{color:"var(--text-primary)",fontWeight:"bold"},children:l(e.overview.totalInputTokens)})]}),f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",padding:"12px",background:"var(--bg-secondary)",borderRadius:"8px"},children:[f.jsx("span",{style:{color:"var(--text-muted)"},children:"输出 Tokens"}),f.jsx("span",{style:{color:"var(--text-primary)",fontWeight:"bold"},children:l(e.overview.totalOutputTokens)})]}),e.overview.totalCacheReadTokens>0&&f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",padding:"12px",background:"var(--bg-secondary)",borderRadius:"8px"},children:[f.jsx("span",{style:{color:"var(--text-muted)"},children:"缓存读取 Tokens"}),f.jsx("span",{style:{color:"var(--text-primary)",fontWeight:"bold"},children:l(e.overview.totalCacheReadTokens)})]}),f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",padding:"12px",background:"var(--bg-secondary)",borderRadius:"8px"},children:[f.jsx("span",{style:{color:"var(--text-muted)"},children:"总计 Tokens"}),f.jsx("span",{style:{color:"var(--text-primary)",fontWeight:"bold"},children:l(e.overview.totalTokens)})]}),f.jsxs("div",{style:{marginTop:"8px",padding:"12px",background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",borderRadius:"8px",color:"white"},children:[f.jsx("div",{style:{fontSize:"12px",opacity:.9},children:"预估节省"}),f.jsxs("div",{style:{fontSize:"20px",fontWeight:"bold",marginTop:"4px"},children:["$",(e.overview.totalTokens/1e6*15).toFixed(2)]}),f.jsx("div",{style:{fontSize:"12px",opacity:.9,marginTop:"4px"},children:"按 $15/1M tokens 估算"})]})]})]})]})]})}function nee(){const e=sC(),[t,n]=m.useState("light"),[r,i]=m.useState(!1),[a,o]=m.useState(!1),[l,s]=m.useState(!1),[u,c]=m.useState(null),[d,p]=m.useState(null),[h,v]=m.useState(!1),[y,x]=m.useState(!1),[g,b]=m.useState(""),[w,k]=m.useState(""),[P,S]=m.useState(!0),[O,E]=m.useState(!1),[N,M]=m.useState(""),[I,A]=m.useState(!1);m.useEffect(()=>{const z=localStorage.getItem("theme")||"light";n(z),document.documentElement.setAttribute("data-theme",z)},[]),m.useEffect(()=>{const z=async()=>{try{const R=await te.checkVersion();s(R.hasUpdate),c(R.latestVersion),p(R.currentVersion)}catch(R){console.error("Failed to check version:",R)}};z();const T=setInterval(z,6e4);return()=>clearInterval(T)},[]),m.useEffect(()=>{(async()=>{try{const T=await te.getAuthStatus();if(v(T.enabled),!T.enabled){x(!0),S(!1);return}if(!localStorage.getItem("auth_token")){S(!1);return}try{await te.getVendors(),x(!0)}catch{}}catch(T){console.error("Failed to check auth status:",T)}finally{S(!1)}})()},[]),m.useEffect(()=>{(async()=>{if(!I)try{const T=await te.getMigration();T.shouldShow&&T.content&&(M(T.content),E(!0)),A(!0)}catch(T){console.error("Failed to check migration:",T)}})()},[I]),m.useEffect(()=>{(async()=>{try{(await te.getVendors()).length===0&&!a&&(i(!0),o(!0))}catch(T){console.error("Failed to check vendors:",T)}})()},[a]);const K=()=>{const z=t==="light"?"dark":"light";n(z),document.documentElement.setAttribute("data-theme",z),localStorage.setItem("theme",z)},B=()=>{i(!1),e("/vendors")},D=async()=>{try{await te.acknowledgeMigration()}catch(z){console.error("Failed to acknowledge migration:",z)}E(!1)},F=async z=>{if(z.preventDefault(),k(""),!g.trim()){k("请输入鉴权码");return}try{const T=await te.login(g);localStorage.setItem("auth_token",T.token),x(!0),b("")}catch(T){T instanceof Error?k(T.message||"登录失败,请检查鉴权码"):k("登录失败,请检查鉴权码")}};return P?f.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh",fontSize:"18px",color:"var(--text-secondary)"},children:"加载中..."}):h&&!y?f.jsxs("div",{className:"modal-overlay",children:[f.jsx("button",{type:"button",className:"modal-close-btn",onClick:()=>{},"aria-label":"关闭",disabled:!0,style:{opacity:.3,cursor:"not-allowed"},children:"×"}),f.jsx("div",{className:"modal",style:{maxWidth:"400px"},children:f.jsxs("div",{className:"modal-container",children:[f.jsx("div",{className:"modal-header",children:f.jsx("h2",{children:"🔐 系统鉴权"})}),f.jsxs("form",{onSubmit:F,children:[f.jsxs("div",{style:{padding:"20px 0"},children:[f.jsx("p",{style:{marginBottom:"16px",lineHeight:"1.6",color:"var(--text-secondary)"},children:"系统已启用鉴权保护,请输入鉴权码以继续访问。"}),f.jsxs("div",{style:{marginBottom:"16px"},children:[f.jsx("label",{style:{display:"block",marginBottom:"8px",fontWeight:"500"},children:"鉴权码"}),f.jsx("input",{type:"password",value:g,onChange:z=>b(z.target.value),placeholder:"请输入鉴权码",style:{width:"100%",padding:"10px 12px",border:"1px solid var(--border-color)",borderRadius:"6px",fontSize:"14px",boxSizing:"border-box"},autoFocus:!0})]}),w&&f.jsx("div",{style:{padding:"10px 12px",backgroundColor:"#fee",border:"1px solid #fcc",borderRadius:"6px",color:"#c33",fontSize:"14px",marginBottom:"16px"},children:w})]}),f.jsx("div",{className:"modal-footer",children:f.jsx("button",{type:"submit",className:"btn btn-primary",style:{width:"100%"},children:"登录"})})]})]})})]}):f.jsxs("div",{className:"app",children:[f.jsxs("nav",{className:"sidebar",children:[f.jsx("div",{className:"logo",children:f.jsx("h2",{children:"AI Code Switch"})}),f.jsxs("ul",{className:"nav-menu",children:[f.jsx("li",{children:f.jsx(eo,{to:"/",children:"🌏 路由管理"})}),f.jsx("li",{children:f.jsx(eo,{to:"/vendors",children:"🏭 供应商管理"})}),f.jsx("li",{children:f.jsx(eo,{to:"/statistics",children:"📊 数据统计"})}),f.jsx("li",{children:f.jsx(eo,{to:"/logs",children:"🪵 日志"})}),f.jsx("li",{children:f.jsx(eo,{to:"/settings",children:"⚙️ 设置"})}),f.jsx("li",{children:f.jsx(eo,{to:"/usage",children:"📖 使用说明"})})]}),l&&f.jsxs("div",{className:"update-notification",children:[f.jsxs("div",{className:"update-notification-content",children:[f.jsx("span",{className:"update-icon",children:"⬆️"}),f.jsxs("div",{className:"update-text",children:[f.jsx("div",{className:"update-title",children:"新版本可用"}),f.jsxs("div",{className:"update-versions",children:[d," → ",u]}),f.jsxs("div",{className:"update-message",children:["命令行执行如下更新到最新版本",f.jsx("br",{}),f.jsx("code",{children:"npm i -g aicodeswitch"})]})]})]}),f.jsx("a",{href:"https://npmjs.com/package/aicodeswitch",target:"_blank",rel:"noopener noreferrer",className:"update-link",children:"查看详情"})]}),f.jsx("div",{className:"theme-toggle",children:f.jsx("button",{onClick:K,children:t==="dark"?"🌙":"☀️"})})]}),f.jsx("main",{className:"main-content",children:f.jsxs(iL,{children:[f.jsx(Kr,{path:"/",element:f.jsx(Yw,{})}),f.jsx(Kr,{path:"/statistics",element:f.jsx(tee,{})}),f.jsx(Kr,{path:"/routes",element:f.jsx(Yw,{})}),f.jsx(Kr,{path:"/vendors",element:f.jsx(m3,{})}),f.jsx(Kr,{path:"/logs",element:f.jsx(k3,{})}),f.jsx(Kr,{path:"/write-config",element:f.jsx(O3,{})}),f.jsx(Kr,{path:"/settings",element:f.jsx(j3,{})}),f.jsx(Kr,{path:"/usage",element:f.jsx(C3,{})})]})}),r&&f.jsxs("div",{className:"modal-overlay",children:[f.jsx("button",{type:"button",className:"modal-close-btn",onClick:()=>i(!1),"aria-label":"关闭",children:"×"}),f.jsx("div",{className:"modal",children:f.jsxs("div",{className:"modal-container",children:[f.jsx("div",{className:"modal-header",children:f.jsx("h2",{children:"⚠️ 需要配置供应商"})}),f.jsxs("div",{style:{padding:"20px 0"},children:[f.jsx("p",{style:{marginBottom:"16px",lineHeight:"1.6"},children:"检测到系统中没有配置任何API供应商。在没有供应商的情况下,路由将无法正常工作。"}),f.jsx("p",{style:{marginBottom:"0",lineHeight:"1.6",fontWeight:"500"},children:"请先添加至少一个供应商,然后再配置路由规则。"})]}),f.jsxs("div",{className:"modal-footer",children:[f.jsx("button",{type:"button",className:"btn btn-secondary",onClick:()=>i(!1),children:"稍后"}),f.jsx("button",{type:"button",className:"btn btn-primary",onClick:B,children:"前往供应商管理"})]})]})})]}),O&&f.jsx("div",{className:"modal-overlay",children:f.jsx("div",{className:"modal",style:{maxWidth:"800px",maxHeight:"80vh",overflow:"auto"},children:f.jsxs("div",{className:"modal-container",children:[f.jsx("div",{className:"modal-header",children:f.jsx("h2",{children:"📋 升级提示"})}),f.jsx("div",{className:"modal-body",children:f.jsx("div",{className:"markdown-content",children:f.jsx(by,{children:N})})}),f.jsx("div",{className:"modal-footer",children:f.jsx("button",{type:"button",className:"btn btn-primary",onClick:D,children:"我知道了"})})]})})})]})}function ree(){return f.jsx(fL,{children:f.jsxs(d3,{children:[f.jsx(nee,{}),f.jsx(p3,{})]})})}em.createRoot(document.getElementById("root")).render(f.jsx(XP.StrictMode,{children:f.jsx(ree,{})}));
423
+ */var mu=m;function bX(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var wX=typeof Object.is=="function"?Object.is:bX,SX=mu.useSyncExternalStore,kX=mu.useRef,PX=mu.useEffect,jX=mu.useMemo,OX=mu.useDebugValue;xX.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var a=kX(null);if(a.current===null){var o={hasValue:!1,value:null};a.current=o}else o=a.current;a=jX(function(){function s(h){if(!u){if(u=!0,c=h,h=r(h),i!==void 0&&o.hasValue){var v=o.value;if(i(v,h))return d=v}return d=h}if(v=d,wX(c,h))return v;var y=r(h);return i!==void 0&&i(v,y)?(c=h,v):(c=h,d=y)}var u=!1,c,d,p=n===void 0?null:n;return[function(){return s(t())},p===null?void 0:function(){return s(p())}]},[t,n,r,i]);var l=SX(e,a[0],a[1]);return PX(function(){o.hasValue=!0,o.value=l},[l]),OX(l),l};function CX(e){e()}function EX(){let e=null,t=null;return{clear(){e=null,t=null},notify(){CX(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let r=e;for(;r;)n.push(r),r=r.next;return n},subscribe(n){let r=!0;const i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var yP={notify(){},get:()=>[]};function AX(e,t){let n,r=yP,i=0,a=!1;function o(y){c();const x=r.subscribe(y);let g=!1;return()=>{g||(g=!0,x(),d())}}function l(){r.notify()}function s(){v.onStateChange&&v.onStateChange()}function u(){return a}function c(){i++,n||(n=e.subscribe(s),r=EX())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=yP)}function p(){a||(a=!0,c())}function h(){a&&(a=!1,d())}const v={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:s,isSubscribed:u,trySubscribe:p,tryUnsubscribe:h,getListeners:()=>r};return v}var TX=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",_X=TX(),IX=()=>typeof navigator<"u"&&navigator.product==="ReactNative",NX=IX(),MX=()=>_X||NX?m.useLayoutEffect:m.useEffect,DX=MX();function xP(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function LX(e,t){if(xP(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let i=0;i<n.length;i++)if(!Object.prototype.hasOwnProperty.call(t,n[i])||!xP(e[n[i]],t[n[i]]))return!1;return!0}var Qh=Symbol.for("react-redux-context"),Zh=typeof globalThis<"u"?globalThis:{};function RX(){if(!m.createContext)return{};const e=Zh[Qh]??(Zh[Qh]=new Map);let t=e.get(m.createContext);return t||(t=m.createContext(null),e.set(m.createContext,t)),t}var zX=RX();function $X(e){const{children:t,context:n,serverState:r,store:i}=e,a=m.useMemo(()=>{const s=AX(i);return{store:i,subscription:s,getServerState:r?()=>r:void 0}},[i,r]),o=m.useMemo(()=>i.getState(),[i]);DX(()=>{const{subscription:s}=a;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),o!==i.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}},[a,o]);const l=n||zX;return m.createElement(l.Provider,{value:a},t)}var BX=$X,FX=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius"]);function UX(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function vu(e,t){var n=new Set([...Object.keys(e),...Object.keys(t)]);for(var r of n)if(FX.has(r)){if(e[r]==null&&t[r]==null)continue;if(!LX(e[r],t[r]))return!1}else if(!UX(e[r],t[r]))return!1;return!0}var WX=["id"],HX=["type","layout","connectNulls","needClip","shape"],VX=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function zs(){return zs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},zs.apply(null,arguments)}function bP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Tr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?bP(Object(n),!0).forEach(function(r){KX(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function KX(e,t,n){return(t=qX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qX(e){var t=YX(e,"string");return typeof t=="symbol"?t:t+""}function YX(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function C0(e,t){if(e==null)return{};var n,r,i=GX(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function GX(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var XX=e=>{var{dataKey:t,name:n,stroke:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:oa(n,t),payload:e}]},QX=m.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:i,fill:a,name:o,hide:l,unit:s,tooltipType:u,id:c}=e,d={dataDefinedOnItem:n,getPosition:aa,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:oa(o,t),hide:l,type:u,color:r,unit:s,graphicalItemId:c}};return m.createElement(Tp,{tooltipEntrySettings:d})}),sN=(e,t)=>"".concat(t,"px ").concat(e-t,"px");function ZX(e,t){for(var n=e.length%2!==0?[...e,0]:e,r=[],i=0;i<t;++i)r=[...r,...n];return r}var JX=(e,t,n)=>{var r=n.reduce((h,v)=>h+v);if(!r)return sN(t,e);for(var i=Math.floor(e/r),a=e%r,o=t-e,l=[],s=0,u=0;s<n.length;u+=(c=n[s])!==null&&c!==void 0?c:0,++s){var c,d=n[s];if(d!=null&&u+d>a){l=[...n.slice(0,s),a-u];break}}var p=l.length%2===0?[0,o]:[o];return[...ZX(n,i),...l,...p].map(h=>"".concat(h,"px")).join(", ")};function eQ(e){var{clipPathId:t,points:n,props:r}=e,{dot:i,dataKey:a,needClip:o}=r,{id:l}=r,s=C0(r,WX),u=un(s);return m.createElement(qI,{points:n,dot:i,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:a,baseProps:u,needClip:o,clipPathId:t})}function tQ(e){var{showLabels:t,children:n,points:r}=e,i=m.useMemo(()=>r==null?void 0:r.map(a=>{var o,l,s={x:(o=a.x)!==null&&o!==void 0?o:0,y:(l=a.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Tr(Tr({},s),{},{value:a.value,payload:a.payload,viewBox:s,parentViewBox:void 0,fill:void 0})}),[r]);return m.createElement(d0,{value:t?i:void 0},n)}function wP(e){var{clipPathId:t,pathRef:n,points:r,strokeDasharray:i,props:a}=e,{type:o,layout:l,connectNulls:s,needClip:u,shape:c}=a,d=C0(a,HX),p=Tr(Tr({},nn(d)),{},{fill:"none",className:"recharts-line-curve",clipPath:u?"url(#clipPath-".concat(t,")"):void 0,points:r,type:o,layout:l,connectNulls:s,strokeDasharray:i??a.strokeDasharray});return m.createElement(m.Fragment,null,(r==null?void 0:r.length)>1&&m.createElement(y0,zs({shapeType:"curve",option:c},p,{pathRef:n})),m.createElement(eQ,{points:r,clipPathId:t,props:a}))}function nQ(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function rQ(e){var{clipPathId:t,props:n,pathRef:r,previousPointsRef:i,longestAnimatedLengthRef:a}=e,{points:o,strokeDasharray:l,isAnimationActive:s,animationBegin:u,animationDuration:c,animationEasing:d,animateNewValues:p,width:h,height:v,onAnimationEnd:y,onAnimationStart:x}=n,g=i.current,b=nl(o,"recharts-line-"),w=m.useRef(b),[k,P]=m.useState(!1),S=!k,O=m.useCallback(()=>{typeof y=="function"&&y(),P(!1)},[y]),E=m.useCallback(()=>{typeof x=="function"&&x(),P(!0)},[x]),N=nQ(r.current),M=m.useRef(0);w.current!==b&&(M.current=a.current,w.current=b);var I=M.current;return m.createElement(tQ,{points:o,showLabels:S},n.children,m.createElement(tl,{animationId:b,begin:u,duration:c,isActive:s,easing:d,onAnimationEnd:O,onAnimationStart:E,key:b},A=>{var K=Re(I,N+I,A),B=Math.min(K,N),D;if(s)if(l){var F="".concat(l).split(/[,\s]+/gim).map(R=>parseFloat(R));D=JX(B,N,F)}else D=sN(N,B);else D=l==null?void 0:String(l);if(A>0&&N>0&&(i.current=o,a.current=Math.max(a.current,B)),g){var z=g.length/o.length,T=A===1?o:o.map((R,j)=>{var q=Math.floor(j*z);if(g[q]){var Q=g[q];return Tr(Tr({},R),{},{x:Re(Q.x,R.x,A),y:Re(Q.y,R.y,A)})}return p?Tr(Tr({},R),{},{x:Re(h*2,R.x,A),y:Re(v/2,R.y,A)}):Tr(Tr({},R),{},{x:R.x,y:R.y})});return i.current=T,m.createElement(wP,{props:n,points:T,clipPathId:t,pathRef:r,strokeDasharray:D})}return m.createElement(wP,{props:n,points:o,clipPathId:t,pathRef:r,strokeDasharray:D})}),m.createElement(gp,{label:n.label}))}function iQ(e){var{clipPathId:t,props:n}=e,r=m.useRef(null),i=m.useRef(0),a=m.useRef(null);return m.createElement(rQ,{props:n,clipPathId:t,previousPointsRef:r,longestAnimatedLengthRef:i,pathRef:a})}var aQ=(e,t)=>{var n,r;return{x:(n=e.x)!==null&&n!==void 0?n:void 0,y:(r=e.y)!==null&&r!==void 0?r:void 0,value:e.value,errorVal:ze(e.payload,t)}};class oQ extends m.Component{render(){var{hide:t,dot:n,points:r,className:i,xAxisId:a,yAxisId:o,top:l,left:s,width:u,height:c,id:d,needClip:p,zIndex:h}=this.props;if(t)return null;var v=Me("recharts-line",i),y=d,{r:x,strokeWidth:g}=lN(n),b=g0(n),w=x*2+g,k=p?"url(#clipPath-".concat(b?"":"dots-").concat(y,")"):void 0;return m.createElement(pn,{zIndex:h},m.createElement(mt,{className:v},p&&m.createElement("defs",null,m.createElement(O0,{clipPathId:y,xAxisId:a,yAxisId:o}),!b&&m.createElement("clipPath",{id:"clipPath-dots-".concat(y)},m.createElement("rect",{x:s-w/2,y:l-w/2,width:u+w,height:c+w}))),m.createElement(nN,{xAxisId:a,yAxisId:o,data:r,dataPointFormatter:aQ,errorBarOffset:0},m.createElement(iQ,{props:this.props,clipPathId:y}))),m.createElement(eg,{activeDot:this.props.activeDot,points:r,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:k}))}}var uN={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:xt.line,type:"linear"};function lQ(e){var t=vt(e,uN),{activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,connectNulls:l,dot:s,hide:u,isAnimationActive:c,label:d,legendType:p,xAxisId:h,yAxisId:v,id:y}=t,x=C0(t,VX),{needClip:g}=Mp(h,v),b=Np(),w=la(),k=$t(),P=oe(M=>yX(M,h,v,k,y));if(w!=="horizontal"&&w!=="vertical"||P==null||b==null)return null;var{height:S,width:O,x:E,y:N}=b;return m.createElement(oQ,zs({},x,{id:y,connectNulls:l,dot:s,activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,isAnimationActive:c,hide:u,label:d,legendType:p,xAxisId:h,yAxisId:v,points:P,layout:w,height:S,width:O,left:E,top:N,needClip:g}))}function sQ(e){var{layout:t,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,dataKey:o,bandSize:l,displayedData:s}=e;return s.map((u,c)=>{var d=ze(u,o);if(t==="horizontal"){var p=md({axis:n,ticks:i,bandSize:l,entry:u,index:c}),h=it(d)?null:r.scale.map(d);return{x:p,y:h??null,value:d,payload:u}}var v=it(d)?null:n.scale.map(d),y=md({axis:r,ticks:a,bandSize:l,entry:u,index:c});return v==null||y==null?null:{x:v,y,value:d,payload:u}}).filter(Boolean)}function uQ(e){var t=vt(e,uN),n=$t();return m.createElement(_p,{id:t.id,type:"line"},r=>m.createElement(m.Fragment,null,m.createElement(S0,{legendPayload:XX(t)}),m.createElement(QX,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:r}),m.createElement(k0,{type:"line",id:r,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:n}),m.createElement(lQ,zs({},t,{id:r}))))}var kc=m.memo(uQ,vu);kc.displayName="Line";function Hr(e,t){var n,r;return(n=(r=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||r===void 0?void 0:r.xAxisId)!==null&&n!==void 0?n:YI}function Vr(e,t){var n,r;return(n=(r=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||r===void 0?void 0:r.yAxisId)!==null&&n!==void 0?n:YI}var cN=(e,t,n)=>Wr(e,"xAxis",Hr(e,t),n),dN=(e,t,n)=>Ur(e,"xAxis",Hr(e,t),n),fN=(e,t,n)=>Wr(e,"yAxis",Vr(e,t),n),pN=(e,t,n)=>Ur(e,"yAxis",Vr(e,t),n),cQ=L([_e,cN,fN,dN,pN],(e,t,n,r,i)=>xr(e,"xAxis")?Qi(t,r,!1):Qi(n,i,!1)),dQ=(e,t)=>t,hN=L([su,dQ],(e,t)=>e.filter(n=>n.type==="area").find(n=>n.id===t)),mN=e=>{var t=_e(e),n=xr(t,"xAxis");return n?"yAxis":"xAxis"},fQ=(e,t)=>{var n=mN(e);return n==="yAxis"?Vr(e,t):Hr(e,t)},pQ=(e,t,n)=>zd(e,mN(e),fQ(e,t),n),hQ=L([hN,pQ],(e,t)=>{var n;if(!(e==null||t==null)){var{stackId:r}=e,i=op(e);if(!(r==null||i==null)){var a=(n=t[r])===null||n===void 0?void 0:n.stackedData,o=a==null?void 0:a.find(l=>l.key===i);if(o!=null)return o.map(l=>[l[0],l[1]])}}}),mQ=L([_e,cN,fN,dN,pN,hQ,QT,cQ,hN,WH],(e,t,n,r,i,a,o,l,s,u)=>{var{chartData:c,dataStartIndex:d,dataEndIndex:p}=o;if(!(s==null||e!=="horizontal"&&e!=="vertical"||t==null||n==null||r==null||i==null||r.length===0||i.length===0||l==null)){var{data:h}=s,v;if(h&&h.length>0?v=h:v=c==null?void 0:c.slice(d,p+1),v!=null)return MQ({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataStartIndex:d,areaSettings:s,stackedData:a,displayedData:v,chartBaseValue:u,bandSize:l})}}),vQ=["id"],gQ=["activeDot","animationBegin","animationDuration","animationEasing","connectNulls","dot","fill","fillOpacity","hide","isAnimationActive","legendType","stroke","xAxisId","yAxisId"];function _a(){return _a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_a.apply(null,arguments)}function vN(e,t){if(e==null)return{};var n,r,i=yQ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function yQ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function SP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function So(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?SP(Object(n),!0).forEach(function(r){xQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):SP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function xQ(e,t,n){return(t=bQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function bQ(e){var t=wQ(e,"string");return typeof t=="symbol"?t:t+""}function wQ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Kd(e,t){return e&&e!=="none"?e:t}var SQ=e=>{var{dataKey:t,name:n,stroke:r,fill:i,legendType:a,hide:o}=e;return[{inactive:o,dataKey:t,type:a,color:Kd(r,i),value:oa(n,t),payload:e}]},kQ=m.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:i,fill:a,name:o,hide:l,unit:s,tooltipType:u,id:c}=e,d={dataDefinedOnItem:n,getPosition:aa,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:oa(o,t),hide:l,type:u,color:Kd(r,a),unit:s,graphicalItemId:c}};return m.createElement(Tp,{tooltipEntrySettings:d})});function PQ(e){var{clipPathId:t,points:n,props:r}=e,{needClip:i,dot:a,dataKey:o}=r,l=un(r);return m.createElement(qI,{points:n,dot:a,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:o,baseProps:l,needClip:i,clipPathId:t})}function jQ(e){var{showLabels:t,children:n,points:r}=e,i=r.map(a=>{var o,l,s={x:(o=a.x)!==null&&o!==void 0?o:0,y:(l=a.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return So(So({},s),{},{value:a.value,payload:a.payload,parentViewBox:void 0,viewBox:s,fill:void 0})});return m.createElement(d0,{value:t?i:void 0},n)}function kP(e){var{points:t,baseLine:n,needClip:r,clipPathId:i,props:a}=e,{layout:o,type:l,stroke:s,connectNulls:u,isRange:c}=a,{id:d}=a,p=vN(a,vQ),h=un(p),v=nn(p);return m.createElement(m.Fragment,null,(t==null?void 0:t.length)>1&&m.createElement(mt,{clipPath:r?"url(#clipPath-".concat(i,")"):void 0},m.createElement(Io,_a({},v,{id:d,points:t,connectNulls:u,type:l,baseLine:n,layout:o,stroke:"none",className:"recharts-area-area"})),s!=="none"&&m.createElement(Io,_a({},h,{className:"recharts-area-curve",layout:o,type:l,connectNulls:u,fill:"none",points:t})),s!=="none"&&c&&m.createElement(Io,_a({},h,{className:"recharts-area-curve",layout:o,type:l,connectNulls:u,fill:"none",points:n}))),m.createElement(PQ,{points:t,props:p,clipPathId:i}))}function OQ(e){var t,n,{alpha:r,baseLine:i,points:a,strokeWidth:o}=e,l=(t=a[0])===null||t===void 0?void 0:t.y,s=(n=a[a.length-1])===null||n===void 0?void 0:n.y;if(!Pe(l)||!Pe(s))return null;var u=r*Math.abs(l-s),c=Math.max(...a.map(d=>d.x||0));return J(i)?c=Math.max(i,c):i&&Array.isArray(i)&&i.length&&(c=Math.max(...i.map(d=>d.x||0),c)),J(c)?m.createElement("rect",{x:0,y:l<s?l:l-u,width:c+(o?parseInt("".concat(o),10):1),height:Math.floor(u)}):null}function CQ(e){var t,n,{alpha:r,baseLine:i,points:a,strokeWidth:o}=e,l=(t=a[0])===null||t===void 0?void 0:t.x,s=(n=a[a.length-1])===null||n===void 0?void 0:n.x;if(!Pe(l)||!Pe(s))return null;var u=r*Math.abs(l-s),c=Math.max(...a.map(d=>d.y||0));return J(i)?c=Math.max(i,c):i&&Array.isArray(i)&&i.length&&(c=Math.max(...i.map(d=>d.y||0),c)),J(c)?m.createElement("rect",{x:l<s?l:l-u,y:0,width:u,height:Math.floor(c+(o?parseInt("".concat(o),10):1))}):null}function EQ(e){var{alpha:t,layout:n,points:r,baseLine:i,strokeWidth:a}=e;return n==="vertical"?m.createElement(OQ,{alpha:t,points:r,baseLine:i,strokeWidth:a}):m.createElement(CQ,{alpha:t,points:r,baseLine:i,strokeWidth:a})}function AQ(e){var{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:a}=e,{points:o,baseLine:l,isAnimationActive:s,animationBegin:u,animationDuration:c,animationEasing:d,onAnimationStart:p,onAnimationEnd:h}=r,v=m.useMemo(()=>({points:o,baseLine:l}),[o,l]),y=nl(v,"recharts-area-"),x=Zy(),[g,b]=m.useState(!1),w=!g,k=m.useCallback(()=>{typeof h=="function"&&h(),b(!1)},[h]),P=m.useCallback(()=>{typeof p=="function"&&p(),b(!0)},[p]);if(x==null)return null;var S=i.current,O=a.current;return m.createElement(jQ,{showLabels:w,points:o},r.children,m.createElement(tl,{animationId:y,begin:u,duration:c,isActive:s,easing:d,onAnimationEnd:k,onAnimationStart:P,key:y},E=>{if(S){var N=S.length/o.length,M=E===1?o:o.map((A,K)=>{var B=Math.floor(K*N);if(S[B]){var D=S[B];return So(So({},A),{},{x:Re(D.x,A.x,E),y:Re(D.y,A.y,E)})}return A}),I;return J(l)?I=Re(O,l,E):it(l)||vr(l)?I=Re(O,0,E):I=l.map((A,K)=>{var B=Math.floor(K*N);if(Array.isArray(O)&&O[B]){var D=O[B];return So(So({},A),{},{x:Re(D.x,A.x,E),y:Re(D.y,A.y,E)})}return A}),E>0&&(i.current=M,a.current=I),m.createElement(kP,{points:M,baseLine:I,needClip:t,clipPathId:n,props:r})}return E>0&&(i.current=o,a.current=l),m.createElement(mt,null,s&&m.createElement("defs",null,m.createElement("clipPath",{id:"animationClipPath-".concat(n)},m.createElement(EQ,{alpha:E,points:o,baseLine:l,layout:x,strokeWidth:r.strokeWidth}))),m.createElement(mt,{clipPath:"url(#animationClipPath-".concat(n,")")},m.createElement(kP,{points:o,baseLine:l,needClip:t,clipPathId:n,props:r})))}),m.createElement(gp,{label:r.label}))}function TQ(e){var{needClip:t,clipPathId:n,props:r}=e,i=m.useRef(null),a=m.useRef();return m.createElement(AQ,{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:a})}class _Q extends m.PureComponent{render(){var{hide:t,dot:n,points:r,className:i,top:a,left:o,needClip:l,xAxisId:s,yAxisId:u,width:c,height:d,id:p,baseLine:h,zIndex:v}=this.props;if(t)return null;var y=Me("recharts-area",i),x=p,{r:g,strokeWidth:b}=lN(n),w=g0(n),k=g*2+b,P=l?"url(#clipPath-".concat(w?"":"dots-").concat(x,")"):void 0;return m.createElement(pn,{zIndex:v},m.createElement(mt,{className:y},l&&m.createElement("defs",null,m.createElement(O0,{clipPathId:x,xAxisId:s,yAxisId:u}),!w&&m.createElement("clipPath",{id:"clipPath-dots-".concat(x)},m.createElement("rect",{x:o-k/2,y:a-k/2,width:c+k,height:d+k}))),m.createElement(TQ,{needClip:l,clipPathId:x,props:this.props})),m.createElement(eg,{points:r,mainColor:Kd(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:P}),this.props.isRange&&Array.isArray(h)&&m.createElement(eg,{points:h,mainColor:Kd(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:P}))}}var gN={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,xAxisId:0,yAxisId:0,zIndex:xt.area};function IQ(e){var t,n=vt(e,gN),{activeDot:r,animationBegin:i,animationDuration:a,animationEasing:o,connectNulls:l,dot:s,fill:u,fillOpacity:c,hide:d,isAnimationActive:p,legendType:h,stroke:v,xAxisId:y,yAxisId:x}=n,g=vN(n,gQ),b=la(),w=fI(),{needClip:k}=Mp(y,x),P=$t(),{points:S,isRange:O,baseLine:E}=(t=oe(B=>mQ(B,e.id,P)))!==null&&t!==void 0?t:{},N=Np();if(b!=="horizontal"&&b!=="vertical"||N==null||w!=="AreaChart"&&w!=="ComposedChart")return null;var{height:M,width:I,x:A,y:K}=N;return!S||!S.length?null:m.createElement(_Q,_a({},g,{activeDot:r,animationBegin:i,animationDuration:a,animationEasing:o,baseLine:E,connectNulls:l,dot:s,fill:u,fillOpacity:c,height:M,hide:d,layout:b,isAnimationActive:p==="auto"?!tu.isSsr:p,isRange:O,legendType:h,needClip:k,points:S,stroke:v,width:I,left:A,top:K,xAxisId:y,yAxisId:x}))}var NQ=(e,t,n,r,i)=>{var a=n??t;if(J(a))return a;var o=e==="horizontal"?i:r,l=o.scale.domain();if(o.type==="number"){var s=Math.max(l[0],l[1]),u=Math.min(l[0],l[1]);return a==="dataMin"?u:a==="dataMax"||s<0?s:Math.max(Math.min(l[0],l[1]),0)}return a==="dataMin"?l[0]:a==="dataMax"?l[1]:l[0]};function MQ(e){var{areaSettings:{connectNulls:t,baseValue:n,dataKey:r},stackedData:i,layout:a,chartBaseValue:o,xAxis:l,yAxis:s,displayedData:u,dataStartIndex:c,xAxisTicks:d,yAxisTicks:p,bandSize:h}=e,v=i&&i.length,y=NQ(a,o,n,l,s),x=a==="horizontal",g=!1,b=u.map((k,P)=>{var S,O,E,N;if(v)N=i[c+P];else{var M=ze(k,r);Array.isArray(M)?(N=M,g=!0):N=[y,M]}var I=(S=(O=N)===null||O===void 0?void 0:O[1])!==null&&S!==void 0?S:null,A=I==null||v&&!t&&ze(k,r)==null;if(x){var K;return{x:md({axis:l,ticks:d,bandSize:h,entry:k,index:P}),y:A?null:(K=s.scale.map(I))!==null&&K!==void 0?K:null,value:N,payload:k}}return{x:A?null:(E=l.scale.map(I))!==null&&E!==void 0?E:null,y:md({axis:s,ticks:p,bandSize:h,entry:k,index:P}),value:N,payload:k}}),w;return v||g?w=b.map(k=>{var P,S=Array.isArray(k.value)?k.value[0]:null;if(x){var O;return{x:k.x,y:S!=null&&k.y!=null&&(O=s.scale.map(S))!==null&&O!==void 0?O:null,payload:k.payload}}return{x:S!=null&&(P=l.scale.map(S))!==null&&P!==void 0?P:null,y:k.y,payload:k.payload}}):w=x?s.scale.map(y):l.scale.map(y),{points:b,baseLine:w??0,isRange:g}}function DQ(e){var t=vt(e,gN),n=$t();return m.createElement(_p,{id:t.id,type:"area"},r=>m.createElement(m.Fragment,null,m.createElement(S0,{legendPayload:SQ(t)}),m.createElement(kQ,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:r}),m.createElement(k0,{type:"area",id:r,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:LA(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),m.createElement(IQ,_a({},t,{id:r}))))}var tg=m.memo(DQ,vu);tg.displayName="Area";var LQ="Invariant failed";function RQ(e,t){throw new Error(LQ)}function ng(){return ng=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ng.apply(null,arguments)}function qd(e){return m.createElement(y0,ng({shapeType:"rectangle",activeClassName:"recharts-active-bar"},e))}var zQ=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(r,i)=>{if(J(t))return t;var a=J(r)||it(r);return a?t(r,i):(a||RQ(),n)}},$Q=(e,t,n)=>n,BQ=(e,t)=>t,gu=L([su,BQ],(e,t)=>e.filter(n=>n.type==="bar").find(n=>n.id===t)),FQ=L([gu],e=>e==null?void 0:e.maxBarSize),UQ=(e,t,n,r)=>r,WQ=L([_e,su,Hr,Vr,$Q],(e,t,n,r,i)=>t.filter(a=>e==="horizontal"?a.xAxisId===n:a.yAxisId===r).filter(a=>a.isPanorama===i).filter(a=>a.hide===!1).filter(a=>a.type==="bar")),HQ=(e,t,n)=>{var r=_e(e),i=Hr(e,t),a=Vr(e,t);if(!(i==null||a==null))return r==="horizontal"?zd(e,"yAxis",a,n):zd(e,"xAxis",i,n)},VQ=(e,t)=>{var n=_e(e),r=Hr(e,t),i=Vr(e,t);if(!(r==null||i==null))return n==="horizontal"?mk(e,"xAxis",r):mk(e,"yAxis",i)},KQ=L([WQ,UH,VQ],aG),qQ=(e,t,n)=>{var r,i,a=gu(e,t);if(a==null)return 0;var o=Hr(e,t),l=Vr(e,t);if(o==null||l==null)return 0;var s=_e(e),u=u_(e),{maxBarSize:c}=a,d=it(c)?u:c,p,h;return s==="horizontal"?(p=Wr(e,"xAxis",o,n),h=Ur(e,"xAxis",o,n)):(p=Wr(e,"yAxis",l,n),h=Ur(e,"yAxis",l,n)),(r=(i=Qi(p,h,!0))!==null&&i!==void 0?i:d)!==null&&r!==void 0?r:0},yN=(e,t,n)=>{var r=_e(e),i=Hr(e,t),a=Vr(e,t);if(!(i==null||a==null)){var o,l;return r==="horizontal"?(o=Wr(e,"xAxis",i,n),l=Ur(e,"xAxis",i,n)):(o=Wr(e,"yAxis",a,n),l=Ur(e,"yAxis",a,n)),Qi(o,l)}},YQ=L([KQ,u_,FH,c_,qQ,yN,FQ],cG),GQ=(e,t,n)=>{var r=Hr(e,t);if(r!=null)return Wr(e,"xAxis",r,n)},XQ=(e,t,n)=>{var r=Vr(e,t);if(r!=null)return Wr(e,"yAxis",r,n)},QQ=(e,t,n)=>{var r=Hr(e,t);if(r!=null)return Ur(e,"xAxis",r,n)},ZQ=(e,t,n)=>{var r=Vr(e,t);if(r!=null)return Ur(e,"yAxis",r,n)},JQ=L([YQ,gu],fG),eZ=L([HQ,gu],dG),tZ=L([At,qy,GQ,XQ,QQ,ZQ,JQ,_e,QT,yN,eZ,gu,UQ],(e,t,n,r,i,a,o,l,s,u,c,d,p)=>{var{chartData:h,dataStartIndex:v,dataEndIndex:y}=s;if(!(d==null||o==null||t==null||l!=="horizontal"&&l!=="vertical"||n==null||r==null||i==null||a==null||u==null)){var{data:x}=d,g;if(x!=null&&x.length>0?g=x:g=h==null?void 0:h.slice(v,y+1),g!=null)return AZ({layout:l,barSettings:d,pos:o,parentViewBox:t,bandSize:u,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,stackedData:c,displayedData:g,offset:e,cells:p,dataStartIndex:v})}}),nZ=["index"];function rg(){return rg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rg.apply(null,arguments)}function rZ(e,t){if(e==null)return{};var n,r,i=iZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function iZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var xN=m.createContext(void 0),aZ=e=>{var t=m.useContext(xN);if(t!=null)return t.stackId;if(e!=null)return LA(e)},oZ=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),lZ=e=>{var t=m.useContext(xN);if(t!=null){var{stackId:n}=t;return"url(#".concat(oZ(n,e),")")}},bN=e=>{var{index:t}=e,n=rZ(e,nZ),r=lZ(t);return m.createElement(mt,rg({className:"recharts-bar-stack-layer",clipPath:r},n))},sZ=["onMouseEnter","onMouseLeave","onClick"],uZ=["value","background","tooltipPosition"],cZ=["id"],dZ=["onMouseEnter","onClick","onMouseLeave"];function hi(){return hi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},hi.apply(null,arguments)}function PP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function on(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?PP(Object(n),!0).forEach(function(r){fZ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):PP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function fZ(e,t,n){return(t=pZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pZ(e){var t=hZ(e,"string");return typeof t=="symbol"?t:t+""}function hZ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Yd(e,t){if(e==null)return{};var n,r,i=mZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function mZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var vZ=e=>{var{dataKey:t,name:n,fill:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:oa(n,t),payload:e}]},gZ=m.memo(e=>{var{dataKey:t,stroke:n,strokeWidth:r,fill:i,name:a,hide:o,unit:l,tooltipType:s,id:u}=e,c={dataDefinedOnItem:void 0,getPosition:aa,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:oa(a,t),hide:o,type:s,color:i,unit:l,graphicalItemId:u}};return m.createElement(Tp,{tooltipEntrySettings:c})});function yZ(e){var t=oe(Zi),{data:n,dataKey:r,background:i,allOtherBarProps:a}=e,{onMouseEnter:o,onMouseLeave:l,onClick:s}=a,u=Yd(a,sZ),c=x0(o,r,a.id),d=b0(l),p=w0(s,r,a.id);if(!i||n==null)return null;var h=Ra(i);return m.createElement(pn,{zIndex:pG(i,xt.barBackground)},n.map((v,y)=>{var{value:x,background:g,tooltipPosition:b}=v,w=Yd(v,uZ);if(!g)return null;var k=c(v,y),P=d(v,y),S=p(v,y),O=on(on(on(on(on({option:i,isActive:String(y)===t},w),{},{fill:"#eee"},g),h),Gs(u,v,y)),{},{onMouseEnter:k,onMouseLeave:P,onClick:S,dataKey:r,index:y,className:"recharts-bar-background-rectangle"});return m.createElement(qd,hi({key:"background-bar-".concat(y)},O))}))}function xZ(e){var{showLabels:t,children:n,rects:r}=e,i=r==null?void 0:r.map(a=>{var o={x:a.x,y:a.y,width:a.width,lowerWidth:a.width,upperWidth:a.width,height:a.height};return on(on({},o),{},{value:a.value,payload:a.payload,parentViewBox:a.parentViewBox,viewBox:o,fill:a.fill})});return m.createElement(d0,{value:t?i:void 0},n)}function bZ(e){var{shape:t,activeBar:n,baseProps:r,entry:i,index:a,dataKey:o}=e,l=oe(Zi),s=oe(a0),u=n&&String(a)===l&&(s==null||o===s),c=u?n:t;return u?m.createElement(pn,{zIndex:xt.activeBar},m.createElement(bN,{index:a},m.createElement(qd,hi({},r,{name:String(r.name)},i,{isActive:u,option:c,index:a,dataKey:o})))):m.createElement(qd,hi({},r,{name:String(r.name)},i,{isActive:u,option:c,index:a,dataKey:o}))}function wZ(e){var{shape:t,baseProps:n,entry:r,index:i,dataKey:a}=e;return m.createElement(qd,hi({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a}))}function SZ(e){var t,{data:n,props:r}=e,i=(t=un(r))!==null&&t!==void 0?t:{},{id:a}=i,o=Yd(i,cZ),{shape:l,dataKey:s,activeBar:u}=r,{onMouseEnter:c,onClick:d,onMouseLeave:p}=r,h=Yd(r,dZ),v=x0(c,s,a),y=b0(p),x=w0(d,s,a);return n?m.createElement(m.Fragment,null,n.map((g,b)=>m.createElement(bN,hi({index:b,key:"rectangle-".concat(g==null?void 0:g.x,"-").concat(g==null?void 0:g.y,"-").concat(g==null?void 0:g.value,"-").concat(b),className:"recharts-bar-rectangle"},Gs(h,g,b),{onMouseEnter:v(g,b),onMouseLeave:y(g,b),onClick:x(g,b)}),u?m.createElement(bZ,{shape:l,activeBar:u,baseProps:o,entry:g,index:b,dataKey:s}):m.createElement(wZ,{shape:l,baseProps:o,entry:g,index:b,dataKey:s})))):null}function kZ(e){var{props:t,previousRectanglesRef:n}=e,{data:r,layout:i,isAnimationActive:a,animationBegin:o,animationDuration:l,animationEasing:s,onAnimationEnd:u,onAnimationStart:c}=t,d=n.current,p=nl(t,"recharts-bar-"),[h,v]=m.useState(!1),y=!h,x=m.useCallback(()=>{typeof u=="function"&&u(),v(!1)},[u]),g=m.useCallback(()=>{typeof c=="function"&&c(),v(!0)},[c]);return m.createElement(xZ,{showLabels:y,rects:r},m.createElement(tl,{animationId:p,begin:o,duration:l,isActive:a,easing:s,onAnimationEnd:x,onAnimationStart:g,key:p},b=>{var w=b===1?r:r==null?void 0:r.map((k,P)=>{var S=d&&d[P];if(S)return on(on({},k),{},{x:Re(S.x,k.x,b),y:Re(S.y,k.y,b),width:Re(S.width,k.width,b),height:Re(S.height,k.height,b)});if(i==="horizontal"){var O=Re(0,k.height,b),E=Re(k.stackedBarStart,k.y,b);return on(on({},k),{},{y:E,height:O})}var N=Re(0,k.width,b),M=Re(k.stackedBarStart,k.x,b);return on(on({},k),{},{width:N,x:M})});return b>0&&(n.current=w??null),w==null?null:m.createElement(mt,null,m.createElement(SZ,{props:t,data:w}))}),m.createElement(gp,{label:t.label}),t.children)}function PZ(e){var t=m.useRef(null);return m.createElement(kZ,{previousRectanglesRef:t,props:e})}var wN=0,jZ=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:ze(e,t)}};class OZ extends m.PureComponent{render(){var{hide:t,data:n,dataKey:r,className:i,xAxisId:a,yAxisId:o,needClip:l,background:s,id:u}=this.props;if(t||n==null)return null;var c=Me("recharts-bar",i),d=u;return m.createElement(mt,{className:c,id:u},l&&m.createElement("defs",null,m.createElement(O0,{clipPathId:d,xAxisId:a,yAxisId:o})),m.createElement(mt,{className:"recharts-bar-rectangles",clipPath:l?"url(#clipPath-".concat(d,")"):void 0},m.createElement(yZ,{data:n,dataKey:r,background:s,allOtherBarProps:this.props}),m.createElement(PZ,this.props)))}}var CZ={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:wN,xAxisId:0,yAxisId:0,zIndex:xt.bar};function EZ(e){var{xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:l,animationDuration:s,animationEasing:u,isAnimationActive:c}=e,{needClip:d}=Mp(t,n),p=la(),h=$t(),v=v0(e.children,hu),y=oe(b=>tZ(b,e.id,h,v));if(p!=="vertical"&&p!=="horizontal")return null;var x,g=y==null?void 0:y[0];return g==null||g.height==null||g.width==null?x=0:x=p==="vertical"?g.height/2:g.width/2,m.createElement(nN,{xAxisId:t,yAxisId:n,data:y,dataPointFormatter:jZ,errorBarOffset:x},m.createElement(OZ,hi({},e,{layout:p,needClip:d,data:y,xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:l,animationDuration:s,animationEasing:u,isAnimationActive:c})))}function AZ(e){var{layout:t,barSettings:{dataKey:n,minPointSize:r},pos:i,bandSize:a,xAxis:o,yAxis:l,xAxisTicks:s,yAxisTicks:u,stackedData:c,displayedData:d,offset:p,cells:h,parentViewBox:v,dataStartIndex:y}=e,x=t==="horizontal"?l:o,g=c?x.scale.domain():null,b=R6({numericAxis:x}),w=x.scale.map(b);return d.map((k,P)=>{var S,O,E,N,M,I;if(c){var A=c[P+y];if(A==null)return null;S=I6(A,g)}else S=ze(k,n),Array.isArray(S)||(S=[b,S]);var K=zQ(r,wN)(S[1],P);if(t==="horizontal"){var B,D=l.scale.map(S[0]),F=l.scale.map(S[1]);if(D==null||F==null)return null;O=S1({axis:o,ticks:s,bandSize:a,offset:i.offset,entry:k,index:P}),E=(B=F??D)!==null&&B!==void 0?B:void 0,N=i.size;var z=D-F;if(M=vr(z)?0:z,I={x:O,y:p.top,width:N,height:p.height},Math.abs(K)>0&&Math.abs(M)<Math.abs(K)){var T=Rt(M||K)*(Math.abs(K)-Math.abs(M));E-=T,M+=T}}else{var R=o.scale.map(S[0]),j=o.scale.map(S[1]);if(R==null||j==null)return null;if(O=R,E=S1({axis:l,ticks:u,bandSize:a,offset:i.offset,entry:k,index:P}),N=j-R,M=i.size,I={x:p.left,y:E,width:p.width,height:M},Math.abs(K)>0&&Math.abs(N)<Math.abs(K)){var q=Rt(N||K)*(Math.abs(K)-Math.abs(N));N+=q}}if(O==null||E==null||N==null||M==null)return null;var Q=on(on({},k),{},{stackedBarStart:w,x:O,y:E,width:N,height:M,value:c?S:S[1],payload:k,background:I,tooltipPosition:{x:O+N/2,y:E+M/2},parentViewBox:v},h&&h[P]&&h[P].props);return Q}).filter(Boolean)}function TZ(e){var t=vt(e,CZ),n=aZ(t.stackId),r=$t();return m.createElement(_p,{id:t.id,type:"bar"},i=>m.createElement(m.Fragment,null,m.createElement(S0,{legendPayload:vZ(t)}),m.createElement(gZ,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:i}),m.createElement(k0,{type:"bar",id:i,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r}),m.createElement(pn,{zIndex:t.zIndex},m.createElement(EZ,hi({},t,{id:i})))))}var SN=m.memo(TZ,vu);SN.displayName="Bar";var _Z=["domain","range"],IZ=["domain","range"];function jP(e,t){if(e==null)return{};var n,r,i=NZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function NZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function OP(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function kN(e,t){if(e===t)return!0;var{domain:n,range:r}=e,i=jP(e,_Z),{domain:a,range:o}=t,l=jP(t,IZ);return!OP(n,a)||!OP(r,o)?!1:vu(i,l)}var MZ=["type"],DZ=["dangerouslySetInnerHTML","ticks","scale"],LZ=["id","scale"];function ig(){return ig=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ig.apply(null,arguments)}function CP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function EP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?CP(Object(n),!0).forEach(function(r){RZ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):CP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function RZ(e,t,n){return(t=zZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zZ(e){var t=$Z(e,"string");return typeof t=="symbol"?t:t+""}function $Z(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ag(e,t){if(e==null)return{};var n,r,i=BZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function BZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function FZ(e){var t=Xe(),n=m.useRef(null),r=Zy(),{type:i}=e,a=ag(e,MZ),o=ip(r,"xAxis",i),l=m.useMemo(()=>{if(o!=null)return EP(EP({},a),{},{type:o})},[a,o]);return m.useLayoutEffect(()=>{l!=null&&(n.current===null?t(HY(l)):n.current!==l&&t(VY({prev:n.current,next:l})),n.current=l)},[l,t]),m.useLayoutEffect(()=>()=>{n.current&&(t(KY(n.current)),n.current=null)},[t]),null}var UZ=e=>{var{xAxisId:t,className:n}=e,r=oe(qy),i=$t(),a="xAxis",o=oe(g=>W_(g,a,t,i)),l=oe(g=>$_(g,t)),s=oe(g=>WV(g,t)),u=oe(g=>b_(g,t));if(l==null||s==null||u==null)return null;var{dangerouslySetInnerHTML:c,ticks:d,scale:p}=e,h=ag(e,DZ),{id:v,scale:y}=u,x=ag(u,LZ);return m.createElement(j0,ig({},h,x,{x:s.x,y:s.y,width:l.width,height:l.height,className:Me("recharts-".concat(a," ").concat(a),n),viewBox:r,ticks:o,axisType:a}))},WZ={allowDataOverflow:Nt.allowDataOverflow,allowDecimals:Nt.allowDecimals,allowDuplicatedCategory:Nt.allowDuplicatedCategory,angle:Nt.angle,axisLine:ri.axisLine,height:Nt.height,hide:!1,includeHidden:Nt.includeHidden,interval:Nt.interval,label:!1,minTickGap:Nt.minTickGap,mirror:Nt.mirror,orientation:Nt.orientation,padding:Nt.padding,reversed:Nt.reversed,scale:Nt.scale,tick:Nt.tick,tickCount:Nt.tickCount,tickLine:ri.tickLine,tickSize:ri.tickSize,type:Nt.type,xAxisId:0},HZ=e=>{var t=vt(e,WZ);return m.createElement(m.Fragment,null,m.createElement(FZ,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit}),m.createElement(UZ,t))},Ul=m.memo(HZ,kN);Ul.displayName="XAxis";var VZ=["type"],KZ=["dangerouslySetInnerHTML","ticks","scale"],qZ=["id","scale"];function og(){return og=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},og.apply(null,arguments)}function AP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function TP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?AP(Object(n),!0).forEach(function(r){YZ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):AP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function YZ(e,t,n){return(t=GZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function GZ(e){var t=XZ(e,"string");return typeof t=="symbol"?t:t+""}function XZ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function lg(e,t){if(e==null)return{};var n,r,i=QZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function QZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function ZZ(e){var t=Xe(),n=m.useRef(null),r=Zy(),{type:i}=e,a=lg(e,VZ),o=ip(r,"yAxis",i),l=m.useMemo(()=>{if(o!=null)return TP(TP({},a),{},{type:o})},[o,a]);return m.useLayoutEffect(()=>{l!=null&&(n.current===null?t(qY(l)):n.current!==l&&t(YY({prev:n.current,next:l})),n.current=l)},[l,t]),m.useLayoutEffect(()=>()=>{n.current&&(t(GY(n.current)),n.current=null)},[t]),null}function JZ(e){var{yAxisId:t,className:n,width:r,label:i}=e,a=m.useRef(null),o=m.useRef(null),l=oe(qy),s=$t(),u=Xe(),c="yAxis",d=oe(S=>B_(S,t)),p=oe(S=>VV(S,t)),h=oe(S=>W_(S,c,t,s)),v=oe(S=>w_(S,t));if(m.useLayoutEffect(()=>{if(!(r!=="auto"||!d||c0(i)||m.isValidElement(i)||v==null)){var S=a.current;if(S){var O=S.getCalculatedWidth();Math.round(d.width)!==Math.round(O)&&u(XY({id:t,width:O}))}}},[h,d,u,i,t,r,v]),d==null||p==null||v==null)return null;var{dangerouslySetInnerHTML:y,ticks:x,scale:g}=e,b=lg(e,KZ),{id:w,scale:k}=v,P=lg(v,qZ);return m.createElement(j0,og({},b,P,{ref:a,labelRef:o,x:p.x,y:p.y,tickTextProps:r==="auto"?{width:void 0}:{width:r},width:d.width,height:d.height,className:Me("recharts-".concat(c," ").concat(c),n),viewBox:l,ticks:h,axisType:c}))}var eJ={allowDataOverflow:Mt.allowDataOverflow,allowDecimals:Mt.allowDecimals,allowDuplicatedCategory:Mt.allowDuplicatedCategory,angle:Mt.angle,axisLine:ri.axisLine,hide:!1,includeHidden:Mt.includeHidden,interval:Mt.interval,label:!1,minTickGap:Mt.minTickGap,mirror:Mt.mirror,orientation:Mt.orientation,padding:Mt.padding,reversed:Mt.reversed,scale:Mt.scale,tick:Mt.tick,tickCount:Mt.tickCount,tickLine:ri.tickLine,tickSize:ri.tickSize,type:Mt.type,width:Mt.width,yAxisId:0},tJ=e=>{var t=vt(e,eJ);return m.createElement(m.Fragment,null,m.createElement(ZZ,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter}),m.createElement(JZ,t))},Wl=m.memo(tJ,kN);Wl.displayName="YAxis";var nJ=(e,t)=>t,E0=L([nJ,_e,g_,Ft,oI,Si,oK,At],pK),A0=e=>{var t=e.currentTarget.getBoundingClientRect(),n=t.width/e.currentTarget.offsetWidth,r=t.height/e.currentTarget.offsetHeight;return{chartX:Math.round((e.clientX-t.left)/n),chartY:Math.round((e.clientY-t.top)/r)}},PN=Jn("mouseClick"),jN=Qs();jN.startListening({actionCreator:PN,effect:(e,t)=>{var n=e.payload,r=E0(t.getState(),A0(n));(r==null?void 0:r.activeIndex)!=null&&t.dispatch(a9({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var sg=Jn("mouseMove"),ON=Qs(),nc=null;ON.startListening({actionCreator:sg,effect:(e,t)=>{var n=e.payload;nc!==null&&cancelAnimationFrame(nc);var r=A0(n);nc=requestAnimationFrame(()=>{var i=t.getState(),a=Jx(i,i.tooltip.settings.shared);if(a==="axis"){var o=E0(i,r);(o==null?void 0:o.activeIndex)!=null?t.dispatch(Q_({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate})):t.dispatch(X_())}nc=null})}});function rJ(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<<CHILDREN>>":t}var _P={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},CN=jn({name:"rootProps",initialState:_P,reducers:{updateOptions:(e,t)=>{var n;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(n=t.payload.barGap)!==null&&n!==void 0?n:_P.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),iJ=CN.reducer,{updateOptions:aJ}=CN.actions,oJ=null,lJ={updatePolarOptions:(e,t)=>t.payload},EN=jn({name:"polarOptions",initialState:oJ,reducers:lJ}),{updatePolarOptions:sJ}=EN.actions,uJ=EN.reducer,AN=Jn("keyDown"),TN=Jn("focus"),T0=Qs();T0.startListening({actionCreator:AN,effect:(e,t)=>{var n=t.getState(),r=n.rootProps.accessibilityLayer!==!1;if(r){var{keyboardInteraction:i}=n.tooltip,a=e.payload;if(!(a!=="ArrowRight"&&a!=="ArrowLeft"&&a!=="Enter")){var o=e0(i,dl(n),cu(n),fu(n)),l=o==null?-1:Number(o);if(!(!Number.isFinite(l)||l<0)){var s=Si(n);if(a==="Enter"){var u=Bd(n,"axis","hover",String(i.index));t.dispatch(Gv({active:!i.active,activeIndex:i.index,activeCoordinate:u}));return}var c=GV(n),d=c==="left-to-right"?1:-1,p=a==="ArrowRight"?1:-1,h=l+p*d;if(!(s==null||h>=s.length||h<0)){var v=Bd(n,"axis","hover",String(h));t.dispatch(Gv({active:!0,activeIndex:h.toString(),activeCoordinate:v}))}}}}}});T0.startListening({actionCreator:TN,effect:(e,t)=>{var n=t.getState(),r=n.rootProps.accessibilityLayer!==!1;if(r){var{keyboardInteraction:i}=n.tooltip;if(!i.active&&i.index==null){var a="0",o=Bd(n,"axis","hover",String(a));t.dispatch(Gv({active:!0,activeIndex:a,activeCoordinate:o}))}}}});var Wn=Jn("externalEvent"),_N=Qs(),Jh=new Map;_N.startListening({actionCreator:Wn,effect:(e,t)=>{var{handler:n,reactEvent:r}=e.payload;if(n!=null){r.persist();var i=r.type,a=Jh.get(i);a!==void 0&&cancelAnimationFrame(a);var o=requestAnimationFrame(()=>{try{var l=t.getState(),s={activeCoordinate:V9(l),activeDataKey:a0(l),activeIndex:Zi(l),activeLabel:uI(l),activeTooltipIndex:Zi(l),isTooltipActive:K9(l)};n(s,r)}finally{Jh.delete(i)}});Jh.set(i,o)}}});var cJ=L([ul],e=>e.tooltipItemPayloads),dJ=L([cJ,(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(a=>a.settings.graphicalItemId===n);if(r!=null){var{getPosition:i}=r;if(i!=null)return i(t)}}}),IN=Jn("touchMove"),NN=Qs();NN.startListening({actionCreator:IN,effect:(e,t)=>{var n=e.payload;if(!(n.touches==null||n.touches.length===0)){var r=t.getState(),i=Jx(r,r.tooltip.settings.shared);if(i==="axis"){var a=n.touches[0];if(a==null)return;var o=E0(r,A0({clientX:a.clientX,clientY:a.clientY,currentTarget:n.currentTarget}));(o==null?void 0:o.activeIndex)!=null&&t.dispatch(Q_({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate}))}else if(i==="item"){var l,s=n.touches[0];if(document.elementFromPoint==null||s==null)return;var u=document.elementFromPoint(s.clientX,s.clientY);if(!u||!u.getAttribute)return;var c=u.getAttribute(zA),d=(l=u.getAttribute($A))!==null&&l!==void 0?l:void 0,p=cl(r).find(y=>y.id===d);if(c==null||p==null||d==null)return;var{dataKey:h}=p,v=dJ(r,c,d);t.dispatch(G_({activeDataKey:h,activeIndex:c,activeCoordinate:v,activeGraphicalItemId:d}))}}}});var fJ=aA({brush:hG,cartesianAxis:QY,chartData:WK,errorBars:sX,graphicalItems:aY,layout:C6,legend:A5,options:zK,polarAxis:wq,polarOptions:uJ,referenceElements:yG,rootProps:iJ,tooltip:o9,zIndex:CK}),pJ=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return ZF({reducer:fJ,preloadedState:t,middleware:r=>{var i;return r({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((i="es6")!==null&&i!==void 0?i:"")}).concat([jN.middleware,ON.middleware,T0.middleware,_N.middleware,NN.middleware])},enhancers:r=>{var i=r;return typeof r=="function"&&(i=r()),i.concat(bA({type:"raf"}))},devTools:{serialize:{replacer:rJ},name:"recharts-".concat(n)}})};function MN(e){var{preloadedState:t,children:n,reduxStoreName:r}=e,i=$t(),a=m.useRef(null);if(i)return n;a.current==null&&(a.current=pJ(t,r));var o=zy;return m.createElement(BX,{context:o,store:a.current},n)}function hJ(e){var{layout:t,margin:n}=e,r=Xe(),i=$t();return m.useEffect(()=>{i||(r(P6(t)),r(k6(n)))},[r,i,t,n]),null}var DN=m.memo(hJ,vu);function LN(e){var t=Xe();return m.useEffect(()=>{t(aJ(e))},[t,e]),null}function IP(e){var{zIndex:t,isPanorama:n}=e,r=m.useRef(null),i=Xe();return m.useLayoutEffect(()=>(r.current&&i(jK({zIndex:t,element:r.current,isPanorama:n})),()=>{i(OK({zIndex:t,isPanorama:n}))}),[i,t,n]),m.createElement("g",{tabIndex:-1,ref:r})}function NP(e){var{children:t,isPanorama:n}=e,r=oe(mK);if(!r||r.length===0)return t;var i=r.filter(o=>o<0),a=r.filter(o=>o>0);return m.createElement(m.Fragment,null,i.map(o=>m.createElement(IP,{key:o,zIndex:o,isPanorama:n})),t,a.map(o=>m.createElement(IP,{key:o,zIndex:o,isPanorama:n})))}var mJ=["children"];function vJ(e,t){if(e==null)return{};var n,r,i=gJ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function gJ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Gd(){return Gd=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Gd.apply(null,arguments)}var yJ={width:"100%",height:"100%",display:"block"},xJ=m.forwardRef((e,t)=>{var n=Xy(),r=Qy(),i=iT();if(!Br(n)||!Br(r))return null;var{children:a,otherAttributes:o,title:l,desc:s}=e,u,c;return o!=null&&(typeof o.tabIndex=="number"?u=o.tabIndex:u=i?0:void 0,typeof o.role=="string"?c=o.role:c=i?"application":void 0),m.createElement(ky,Gd({},o,{title:l,desc:s,role:c,tabIndex:u,width:n,height:r,style:yJ,ref:t}),a)}),bJ=e=>{var{children:t}=e,n=oe(Vf);if(!n)return null;var{width:r,height:i,y:a,x:o}=n;return m.createElement(ky,{width:r,height:i,x:o,y:a},t)},MP=m.forwardRef((e,t)=>{var{children:n}=e,r=vJ(e,mJ),i=$t();return i?m.createElement(bJ,null,m.createElement(NP,{isPanorama:!0},n)):m.createElement(xJ,Gd({ref:t},r),m.createElement(NP,{isPanorama:!1},n))});function wJ(){var e=Xe(),[t,n]=m.useState(null),r=oe(W6);return m.useEffect(()=>{if(t!=null){var i=t.getBoundingClientRect(),a=i.width/t.offsetWidth;Pe(a)&&a!==r&&e(O6(a))}},[t,e,r]),n}function DP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function SJ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?DP(Object(n),!0).forEach(function(r){kJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):DP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function kJ(e,t,n){return(t=PJ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PJ(e){var t=jJ(e,"string");return typeof t=="symbol"?t:t+""}function jJ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Yi(){return Yi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Yi.apply(null,arguments)}var OJ=()=>(ZK(),null);function Xd(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var CJ=m.forwardRef((e,t)=>{var n,r,i=m.useRef(null),[a,o]=m.useState({containerWidth:Xd((n=e.style)===null||n===void 0?void 0:n.width),containerHeight:Xd((r=e.style)===null||r===void 0?void 0:r.height)}),l=m.useCallback((u,c)=>{o(d=>{var p=Math.round(u),h=Math.round(c);return d.containerWidth===p&&d.containerHeight===h?d:{containerWidth:p,containerHeight:h}})},[]),s=m.useCallback(u=>{if(typeof t=="function"&&t(u),u!=null&&typeof ResizeObserver<"u"){var{width:c,height:d}=u.getBoundingClientRect();l(c,d);var p=v=>{var y=v[0];if(y!=null){var{width:x,height:g}=y.contentRect;l(x,g)}},h=new ResizeObserver(p);h.observe(u),i.current=h}},[t,l]);return m.useEffect(()=>()=>{var u=i.current;u!=null&&u.disconnect()},[l]),m.createElement(m.Fragment,null,m.createElement(Js,{width:a.containerWidth,height:a.containerHeight}),m.createElement("div",Yi({ref:s},e)))}),EJ=m.forwardRef((e,t)=>{var{width:n,height:r}=e,[i,a]=m.useState({containerWidth:Xd(n),containerHeight:Xd(r)}),o=m.useCallback((s,u)=>{a(c=>{var d=Math.round(s),p=Math.round(u);return c.containerWidth===d&&c.containerHeight===p?c:{containerWidth:d,containerHeight:p}})},[]),l=m.useCallback(s=>{if(typeof t=="function"&&t(s),s!=null){var{width:u,height:c}=s.getBoundingClientRect();o(u,c)}},[t,o]);return m.createElement(m.Fragment,null,m.createElement(Js,{width:i.containerWidth,height:i.containerHeight}),m.createElement("div",Yi({ref:l},e)))}),AJ=m.forwardRef((e,t)=>{var{width:n,height:r}=e;return m.createElement(m.Fragment,null,m.createElement(Js,{width:n,height:r}),m.createElement("div",Yi({ref:t},e)))}),TJ=m.forwardRef((e,t)=>{var{width:n,height:r}=e;return typeof n=="string"||typeof r=="string"?m.createElement(EJ,Yi({},e,{ref:t})):typeof n=="number"&&typeof r=="number"?m.createElement(AJ,Yi({},e,{width:n,height:r,ref:t})):m.createElement(m.Fragment,null,m.createElement(Js,{width:n,height:r}),m.createElement("div",Yi({ref:t},e)))});function _J(e){return e?CJ:TJ}var IJ=m.forwardRef((e,t)=>{var{children:n,className:r,height:i,onClick:a,onContextMenu:o,onDoubleClick:l,onMouseDown:s,onMouseEnter:u,onMouseLeave:c,onMouseMove:d,onMouseUp:p,onTouchEnd:h,onTouchMove:v,onTouchStart:y,style:x,width:g,responsive:b,dispatchTouchEvents:w=!0}=e,k=m.useRef(null),P=Xe(),[S,O]=m.useState(null),[E,N]=m.useState(null),M=wJ(),I=Yy(),A=(I==null?void 0:I.width)>0?I.width:g,K=(I==null?void 0:I.height)>0?I.height:i,B=m.useCallback(H=>{M(H),typeof t=="function"&&t(H),O(H),N(H),H!=null&&(k.current=H)},[M,t,O,N]),D=m.useCallback(H=>{P(PN(H)),P(Wn({handler:a,reactEvent:H}))},[P,a]),F=m.useCallback(H=>{P(sg(H)),P(Wn({handler:u,reactEvent:H}))},[P,u]),z=m.useCallback(H=>{P(X_()),P(Wn({handler:c,reactEvent:H}))},[P,c]),T=m.useCallback(H=>{P(sg(H)),P(Wn({handler:d,reactEvent:H}))},[P,d]),R=m.useCallback(()=>{P(TN())},[P]),j=m.useCallback(H=>{P(AN(H.key))},[P]),q=m.useCallback(H=>{P(Wn({handler:o,reactEvent:H}))},[P,o]),Q=m.useCallback(H=>{P(Wn({handler:l,reactEvent:H}))},[P,l]),C=m.useCallback(H=>{P(Wn({handler:s,reactEvent:H}))},[P,s]),ae=m.useCallback(H=>{P(Wn({handler:p,reactEvent:H}))},[P,p]),he=m.useCallback(H=>{P(Wn({handler:y,reactEvent:H}))},[P,y]),fe=m.useCallback(H=>{w&&P(IN(H)),P(Wn({handler:v,reactEvent:H}))},[P,w,v]),ge=m.useCallback(H=>{P(Wn({handler:h,reactEvent:H}))},[P,h]),Fe=_J(b);return m.createElement(gI.Provider,{value:S},m.createElement(iE.Provider,{value:E},m.createElement(Fe,{width:A??(x==null?void 0:x.width),height:K??(x==null?void 0:x.height),className:Me("recharts-wrapper",r),style:SJ({position:"relative",cursor:"default",width:A,height:K},x),onClick:D,onContextMenu:q,onDoubleClick:Q,onFocus:R,onKeyDown:j,onMouseDown:C,onMouseEnter:F,onMouseLeave:z,onMouseMove:T,onMouseUp:ae,onTouchEnd:ge,onTouchMove:fe,onTouchStart:he,ref:B},m.createElement(OJ,null),n)))}),NJ=["width","height","responsive","children","className","style","compact","title","desc"];function MJ(e,t){if(e==null)return{};var n,r,i=DJ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function DJ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var RN=m.forwardRef((e,t)=>{var{width:n,height:r,responsive:i,children:a,className:o,style:l,compact:s,title:u,desc:c}=e,d=MJ(e,NJ),p=un(d);return s?m.createElement(m.Fragment,null,m.createElement(Js,{width:n,height:r}),m.createElement(MP,{otherAttributes:p,title:u,desc:c},a)):m.createElement(IJ,{className:o,style:l,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},m.createElement(MP,{otherAttributes:p,title:u,desc:c,ref:t},m.createElement(bG,null,a)))});function ug(){return ug=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ug.apply(null,arguments)}var LJ={top:5,right:5,bottom:5,left:5},RJ={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:LJ,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},_0=m.forwardRef(function(t,n){var r,i=vt(t.categoricalChartProps,RJ),{chartName:a,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:s,categoricalChartProps:u}=t,c={chartName:a,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:s,eventEmitter:void 0};return m.createElement(MN,{preloadedState:{options:c},reduxStoreName:(r=u.id)!==null&&r!==void 0?r:a},m.createElement(XI,{chartData:u.data}),m.createElement(DN,{layout:i.layout,margin:i.margin}),m.createElement(LN,{baseValue:i.baseValue,accessibilityLayer:i.accessibilityLayer,barCategoryGap:i.barCategoryGap,maxBarSize:i.maxBarSize,stackOffset:i.stackOffset,barGap:i.barGap,barSize:i.barSize,syncId:i.syncId,syncMethod:i.syncMethod,className:i.className,reverseStackOrder:i.reverseStackOrder}),m.createElement(RN,ug({},i,{ref:n})))}),zJ=["axis"],LP=m.forwardRef((e,t)=>m.createElement(_0,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:zJ,tooltipPayloadSearcher:mp,categoricalChartProps:e,ref:t})),$J=["axis","item"],BJ=m.forwardRef((e,t)=>m.createElement(_0,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:$J,tooltipPayloadSearcher:mp,categoricalChartProps:e,ref:t}));function FJ(e){var t=Xe();return m.useEffect(()=>{t(sJ(e))},[t,e]),null}var UJ=["layout"];function cg(){return cg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},cg.apply(null,arguments)}function WJ(e,t){if(e==null)return{};var n,r,i=HJ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function HJ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var VJ={top:5,right:5,bottom:5,left:5},zN={accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:VJ,reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},KJ=m.forwardRef(function(t,n){var r,i=vt(t.categoricalChartProps,zN),{layout:a}=i,o=WJ(i,UJ),{chartName:l,defaultTooltipEventType:s,validateTooltipEventTypes:u,tooltipPayloadSearcher:c}=t,d={chartName:l,defaultTooltipEventType:s,validateTooltipEventTypes:u,tooltipPayloadSearcher:c,eventEmitter:void 0};return m.createElement(MN,{preloadedState:{options:d},reduxStoreName:(r=i.id)!==null&&r!==void 0?r:l},m.createElement(XI,{chartData:i.data}),m.createElement(DN,{layout:a,margin:i.margin}),m.createElement(LN,{baseValue:void 0,accessibilityLayer:i.accessibilityLayer,barCategoryGap:i.barCategoryGap,maxBarSize:i.maxBarSize,stackOffset:i.stackOffset,barGap:i.barGap,barSize:i.barSize,syncId:i.syncId,syncMethod:i.syncMethod,className:i.className,reverseStackOrder:i.reverseStackOrder}),m.createElement(FJ,{cx:i.cx,cy:i.cy,startAngle:i.startAngle,endAngle:i.endAngle,innerRadius:i.innerRadius,outerRadius:i.outerRadius}),m.createElement(RN,cg({},o,{ref:n})))});function RP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function zP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?RP(Object(n),!0).forEach(function(r){qJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):RP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function qJ(e,t,n){return(t=YJ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function YJ(e){var t=GJ(e,"string");return typeof t=="symbol"?t:t+""}function GJ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var XJ=["item"],QJ=zP(zP({},zN),{},{layout:"centric",startAngle:0,endAngle:360}),ZJ=m.forwardRef((e,t)=>{var n=vt(e,QJ);return m.createElement(KJ,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:XJ,tooltipPayloadSearcher:mp,categoricalChartProps:n,ref:t})}),JJ=["axis"],eee=m.forwardRef((e,t)=>m.createElement(_0,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:JJ,tooltipPayloadSearcher:mp,categoricalChartProps:e,ref:t}));const $P=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#f97316"];function tee(){const[e,t]=m.useState(null),[n,r]=m.useState(!0),[i,a]=m.useState(30);m.useEffect(()=>{o()},[i]);const o=async()=>{try{r(!0);const d=await te.getStatistics(i);t(d)}catch(d){console.error("Failed to load statistics:",d)}finally{r(!1)}},l=d=>d>=1e6?`${(d/1e6).toFixed(1)}M`:d>=1e3?`${(d/1e3).toFixed(1)}K`:d.toString(),s=d=>{if(d>=60){const p=Math.floor(d/60),h=d%60;return`${p}h ${h}m`}return`${d}m`};if(n)return f.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"60vh"},children:f.jsx("div",{style:{fontSize:"18px",color:"var(--text-muted)"},children:"加载统计数据中..."})});if(!e)return f.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"60vh"},children:f.jsx("div",{style:{fontSize:"18px",color:"var(--text-muted)"},children:"暂无统计数据"})});const u={default:"默认请求","image-understanding":"图像理解",thinking:"思考模式","long-context":"长上下文",background:"后台任务","model-mapping":"模型映射"},c=e.timeline.map(d=>({date:d.date,codingTime:Math.round(d.totalInputTokens/250+d.totalOutputTokens/100)}));return f.jsxs("div",{children:[f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"24px"},children:[f.jsxs("div",{children:[f.jsx("h1",{style:{margin:0,fontSize:"28px",fontWeight:"bold",color:"var(--text-primary)"},children:"📊 数据统计"}),f.jsx("p",{style:{margin:"4px 0 0 0",color:"var(--text-muted)"},children:"查看您的 AI 编程助手使用情况分析"})]}),f.jsxs("div",{style:{display:"flex",gap:"12px",alignItems:"center"},children:[f.jsx("label",{style:{color:"var(--text-primary)",fontWeight:"500"},children:"统计周期:"}),f.jsxs("select",{value:i,onChange:d=>a(Number(d.target.value)),style:{padding:"8px 16px",borderRadius:"8px",border:"1px solid var(--border-primary)",background:"var(--bg-card)",color:"var(--text-primary)",fontSize:"14px",cursor:"pointer"},children:[f.jsx("option",{value:7,children:"最近 7 天"}),f.jsx("option",{value:30,children:"最近 30 天"}),f.jsx("option",{value:90,children:"最近 90 天"})]}),f.jsx("button",{onClick:o,style:{padding:"8px 16px",borderRadius:"8px",border:"1px solid var(--border-primary)",background:"var(--bg-card)",color:"var(--text-primary)",fontSize:"14px",cursor:"pointer"},children:"🔄 刷新"})]})]}),f.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(240px, 1fr))",gap:"16px",marginBottom:"24px"},children:[f.jsxs("div",{style:{background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"总请求数"}),f.jsx("div",{style:{fontSize:"32px",fontWeight:"bold"},children:l(e.overview.totalRequests)})]}),f.jsxs("div",{style:{background:"linear-gradient(135deg, #f093fb 0%, #f5576c 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"总 Tokens"}),f.jsx("div",{style:{fontSize:"32px",fontWeight:"bold"},children:l(e.overview.totalTokens)})]}),f.jsxs("div",{style:{background:"linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"编程时长"}),f.jsx("div",{style:{fontSize:"32px",fontWeight:"bold"},children:s(e.overview.totalCodingTime)})]}),f.jsxs("div",{style:{background:"linear-gradient(135deg, #14a042 0%, #38f9d7 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"成功率"}),f.jsxs("div",{style:{fontSize:"32px",fontWeight:"bold"},children:[e.overview.successRate.toFixed(1),"%"]})]}),f.jsxs("div",{style:{background:"linear-gradient(135deg, #fa709a 0%, #fee140 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"平均响应时间"}),f.jsxs("div",{style:{fontSize:"32px",fontWeight:"bold"},children:[e.overview.avgResponseTime,"ms"]})]}),f.jsxs("div",{style:{background:"linear-gradient(135deg, #30cfd0 0%, #330867 100%)",padding:"20px",borderRadius:"16px",color:"white",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[f.jsx("div",{style:{fontSize:"14px",opacity:.9,marginBottom:"8px"},children:"配置统计"}),f.jsxs("div",{style:{fontSize:"14px",marginTop:"8px"},children:[e.overview.totalVendors," 供应商 · ",e.overview.totalServices," 服务 · ",e.overview.totalRoutes," 路由"]})]})]}),f.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(500px, 1fr))",gap:"20px",marginBottom:"24px"},children:[f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"📈 请求趋势"}),f.jsx(Sl,{width:"100%",height:300,children:f.jsxs(eee,{data:e.timeline,children:[f.jsx("defs",{children:f.jsxs("linearGradient",{id:"colorRequests",x1:"0",y1:"0",x2:"0",y2:"1",children:[f.jsx("stop",{offset:"5%",stopColor:"#8884d8",stopOpacity:.8}),f.jsx("stop",{offset:"95%",stopColor:"#8884d8",stopOpacity:0})]})}),f.jsx(Fl,{strokeDasharray:"3 3",stroke:"var(--border-primary)"}),f.jsx(Ul,{dataKey:"date",stroke:"var(--text-muted)",fontSize:12,tickFormatter:d=>Qt(d).format("MM/DD")}),f.jsx(Wl,{stroke:"var(--text-muted)",fontSize:12}),f.jsx(_l,{contentStyle:{background:"var(--bg-card)",border:"1px solid var(--border-primary)",borderRadius:"8px",color:"var(--text-primary)"},labelFormatter:d=>Qt(d).format("YYYY-MM-DD")}),f.jsx(zl,{}),f.jsx(tg,{type:"monotone",dataKey:"totalRequests",name:"请求数",stroke:"#8884d8",fillOpacity:1,fill:"url(#colorRequests)"})]})})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"🔢 Token 使用趋势"}),f.jsx(Sl,{width:"100%",height:300,children:f.jsxs(LP,{data:e.timeline,children:[f.jsx(Fl,{strokeDasharray:"3 3",stroke:"var(--border-primary)"}),f.jsx(Ul,{dataKey:"date",stroke:"var(--text-muted)",fontSize:12,tickFormatter:d=>Qt(d).format("MM/DD")}),f.jsx(Wl,{stroke:"var(--text-muted)",fontSize:12,tickFormatter:d=>d?l(Number(d)):""}),f.jsx(_l,{contentStyle:{background:"var(--bg-card)",border:"1px solid var(--border-primary)",borderRadius:"8px",color:"var(--text-primary)"},labelFormatter:d=>Qt(d).format("YYYY-MM-DD"),formatter:d=>d?l(Number(d)):""}),f.jsx(zl,{}),f.jsx(kc,{type:"monotone",dataKey:"totalInputTokens",name:"输入 Tokens",stroke:"#10b981",strokeWidth:2,dot:!1}),f.jsx(kc,{type:"monotone",dataKey:"totalOutputTokens",name:"输出 Tokens",stroke:"#f59e0b",strokeWidth:2,dot:!1})]})})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"⏱️ 每日编程时长趋势"}),f.jsx(Sl,{width:"100%",height:300,children:f.jsxs(LP,{data:c,children:[f.jsx("defs",{children:f.jsxs("linearGradient",{id:"colorCodingTime",x1:"0",y1:"0",x2:"0",y2:"1",children:[f.jsx("stop",{offset:"5%",stopColor:"#8b5cf6",stopOpacity:.8}),f.jsx("stop",{offset:"95%",stopColor:"#8b5cf6",stopOpacity:0})]})}),f.jsx(Fl,{strokeDasharray:"3 3",stroke:"var(--border-primary)"}),f.jsx(Ul,{dataKey:"date",stroke:"var(--text-muted)",fontSize:12,tickFormatter:d=>Qt(d).format("MM/DD")}),f.jsx(Wl,{stroke:"var(--text-muted)",fontSize:12,tickFormatter:d=>d!=null?d>=60?`${Math.round(Number(d)/60)}h`:`${Number(d)}m`:""}),f.jsx(_l,{contentStyle:{background:"var(--bg-card)",border:"1px solid var(--border-primary)",borderRadius:"8px",color:"var(--text-primary)"},labelFormatter:d=>Qt(d).format("YYYY-MM-DD"),formatter:d=>d!=null?s(Number(d)):""}),f.jsx(zl,{}),f.jsx(tg,{type:"monotone",dataKey:"codingTime",name:"编程时长",stroke:"#8b5cf6",fillOpacity:1,fill:"url(#colorCodingTime)"}),f.jsx(kc,{type:"monotone",dataKey:"codingTime",name:"编程时长",stroke:"#8b5cf6",strokeWidth:3,dot:{fill:"#8b5cf6",r:4},activeDot:{r:6}})]})}),f.jsx("div",{style:{marginTop:"12px",padding:"12px",background:"var(--bg-secondary)",borderRadius:"8px",fontSize:"14px",color:"var(--text-muted)",textAlign:"center"},children:"💡 编程时长基于 tokens 估算(阅读速度 250 tokens/分钟,编码速度 100 tokens/分钟)"})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"🏢 供应商使用分布"}),f.jsx(Sl,{width:"100%",height:300,children:f.jsxs(BJ,{data:e.byVendor,children:[f.jsx(Fl,{strokeDasharray:"3 3",stroke:"var(--border-primary)"}),f.jsx(Ul,{dataKey:"vendorName",stroke:"var(--text-muted)",fontSize:12,angle:-45,textAnchor:"end",height:80}),f.jsx(Wl,{stroke:"var(--text-muted)",fontSize:12}),f.jsx(_l,{contentStyle:{background:"var(--bg-card)",border:"1px solid var(--border-primary)",borderRadius:"8px",color:"var(--text-primary)"}}),f.jsx(zl,{}),f.jsx(SN,{dataKey:"totalRequests",name:"请求数",fill:"#3b82f6"})]})})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"📋 请求类型分布"}),f.jsx(Sl,{width:"100%",height:300,children:f.jsxs(ZJ,{children:[f.jsx(KI,{data:e.contentTypeDistribution,cx:"50%",cy:"50%",labelLine:!0,label:d=>`${u[d.contentType]||d.contentType} (${d.percentage}%)`,outerRadius:80,fill:"#8884d8",dataKey:"count",children:e.contentTypeDistribution.map((d,p)=>f.jsx(hu,{fill:$P[p%$P.length]},`cell-${p}`))}),f.jsx(_l,{contentStyle:{background:"var(--bg-card)",border:"1px solid var(--border-primary)",borderRadius:"8px",color:"var(--text-primary)"},formatter:(d,p,h)=>{var b,w;const v=d??0,y=((b=h.payload)==null?void 0:b.percentage)??0,x=((w=h.payload)==null?void 0:w.contentType)||"",g=u[x]||x;return`${v} (${y}%) - ${g}`}})]})})]})]}),f.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(400px, 1fr))",gap:"20px"},children:[f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"🎯 按目标类型统计"}),f.jsxs("table",{style:{width:"100%",borderCollapse:"collapse"},children:[f.jsx("thead",{children:f.jsxs("tr",{style:{borderBottom:"2px solid var(--border-primary)"},children:[f.jsx("th",{style:{padding:"12px",textAlign:"left",color:"var(--text-muted)",fontSize:"14px"},children:"类型"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"请求数"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"Tokens"})]})}),f.jsx("tbody",{children:e.byTargetType.map(d=>f.jsxs("tr",{style:{borderBottom:"1px solid var(--border-secondary)"},children:[f.jsx("td",{style:{padding:"12px",color:"var(--text-primary)"},children:d.targetType==="claude-code"?"Claude Code":"Codex"}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalRequests)}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalTokens)})]},d.targetType))})]})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"🤖 按模型统计"}),f.jsxs("table",{style:{width:"100%",borderCollapse:"collapse"},children:[f.jsx("thead",{children:f.jsxs("tr",{style:{borderBottom:"2px solid var(--border-primary)"},children:[f.jsx("th",{style:{padding:"12px",textAlign:"left",color:"var(--text-muted)",fontSize:"14px"},children:"模型"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"请求数"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"Tokens"})]})}),f.jsx("tbody",{children:e.byModel.slice(0,10).map(d=>f.jsxs("tr",{style:{borderBottom:"1px solid var(--border-secondary)"},children:[f.jsx("td",{style:{padding:"12px",color:"var(--text-primary)",maxWidth:"200px",overflow:"hidden",textOverflow:"ellipsis"},children:d.modelName}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalRequests)}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalTokens)})]},d.modelName))})]})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"🔧 按服务统计"}),f.jsxs("table",{style:{width:"100%",borderCollapse:"collapse"},children:[f.jsx("thead",{children:f.jsxs("tr",{style:{borderBottom:"2px solid var(--border-primary)"},children:[f.jsx("th",{style:{padding:"12px",textAlign:"left",color:"var(--text-muted)",fontSize:"14px"},children:"服务"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"请求数"}),f.jsx("th",{style:{padding:"12px",textAlign:"right",color:"var(--text-muted)",fontSize:"14px"},children:"Tokens"})]})}),f.jsx("tbody",{children:e.byService.slice(0,10).map(d=>f.jsxs("tr",{style:{borderBottom:"1px solid var(--border-secondary)"},children:[f.jsxs("td",{style:{padding:"12px",color:"var(--text-primary)"},children:[f.jsx("div",{style:{fontSize:"14px",fontWeight:"bold"},children:d.serviceName}),f.jsx("div",{style:{fontSize:"12px",color:"var(--text-muted)"},children:d.vendorName})]}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalRequests)}),f.jsx("td",{style:{padding:"12px",textAlign:"right",color:"var(--text-primary)"},children:l(d.totalTokens)})]},d.serviceId))})]})]}),f.jsxs("div",{style:{background:"var(--bg-card)",padding:"20px",borderRadius:"16px",border:"1px solid var(--border-primary)"},children:[f.jsx("h3",{style:{margin:"0 0 16px 0",fontSize:"18px",color:"var(--text-primary)"},children:"💰 Token 详细统计"}),f.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",padding:"12px",background:"var(--bg-secondary)",borderRadius:"8px"},children:[f.jsx("span",{style:{color:"var(--text-muted)"},children:"输入 Tokens"}),f.jsx("span",{style:{color:"var(--text-primary)",fontWeight:"bold"},children:l(e.overview.totalInputTokens)})]}),f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",padding:"12px",background:"var(--bg-secondary)",borderRadius:"8px"},children:[f.jsx("span",{style:{color:"var(--text-muted)"},children:"输出 Tokens"}),f.jsx("span",{style:{color:"var(--text-primary)",fontWeight:"bold"},children:l(e.overview.totalOutputTokens)})]}),e.overview.totalCacheReadTokens>0&&f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",padding:"12px",background:"var(--bg-secondary)",borderRadius:"8px"},children:[f.jsx("span",{style:{color:"var(--text-muted)"},children:"缓存读取 Tokens"}),f.jsx("span",{style:{color:"var(--text-primary)",fontWeight:"bold"},children:l(e.overview.totalCacheReadTokens)})]}),f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",padding:"12px",background:"var(--bg-secondary)",borderRadius:"8px"},children:[f.jsx("span",{style:{color:"var(--text-muted)"},children:"总计 Tokens"}),f.jsx("span",{style:{color:"var(--text-primary)",fontWeight:"bold"},children:l(e.overview.totalTokens)})]}),f.jsxs("div",{style:{marginTop:"8px",padding:"12px",background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",borderRadius:"8px",color:"white"},children:[f.jsx("div",{style:{fontSize:"12px",opacity:.9},children:"预估节省"}),f.jsxs("div",{style:{fontSize:"20px",fontWeight:"bold",marginTop:"4px"},children:["$",(e.overview.totalTokens/1e6*15).toFixed(2)]}),f.jsx("div",{style:{fontSize:"12px",opacity:.9,marginTop:"4px"},children:"按 $15/1M tokens 估算"})]})]})]})]})]})}function nee(){const e=sC(),[t,n]=m.useState("light"),[r,i]=m.useState(!1),[a,o]=m.useState(!1),[l,s]=m.useState(!1),[u,c]=m.useState(null),[d,p]=m.useState(null),[h,v]=m.useState(!1),[y,x]=m.useState(!1),[g,b]=m.useState(""),[w,k]=m.useState(""),[P,S]=m.useState(!0),[O,E]=m.useState(!1),[N,M]=m.useState(""),[I,A]=m.useState(!1);m.useEffect(()=>{const z=localStorage.getItem("theme")||"light";n(z),document.documentElement.setAttribute("data-theme",z)},[]),m.useEffect(()=>{const z=async()=>{try{const R=await te.checkVersion();s(R.hasUpdate),c(R.latestVersion),p(R.currentVersion)}catch(R){console.error("Failed to check version:",R)}};z();const T=setInterval(z,6e4);return()=>clearInterval(T)},[]),m.useEffect(()=>{(async()=>{try{const T=await te.getAuthStatus();if(v(T.enabled),!T.enabled){x(!0),S(!1);return}if(!localStorage.getItem("auth_token")){S(!1);return}try{await te.getVendors(),x(!0)}catch{}}catch(T){console.error("Failed to check auth status:",T)}finally{S(!1)}})()},[]),m.useEffect(()=>{(async()=>{if(!I)try{const T=await te.getMigration();T.shouldShow&&T.content&&(M(T.content),E(!0)),A(!0)}catch(T){console.error("Failed to check migration:",T)}})()},[I]),m.useEffect(()=>{(async()=>{try{(await te.getVendors()).length===0&&!a&&(i(!0),o(!0))}catch(T){console.error("Failed to check vendors:",T)}})()},[a]);const K=()=>{const z=t==="light"?"dark":"light";n(z),document.documentElement.setAttribute("data-theme",z),localStorage.setItem("theme",z)},B=()=>{i(!1),e("/vendors")},D=async()=>{try{await te.acknowledgeMigration()}catch(z){console.error("Failed to acknowledge migration:",z)}E(!1)},F=async z=>{if(z.preventDefault(),k(""),!g.trim()){k("请输入鉴权码");return}try{const T=await te.login(g);localStorage.setItem("auth_token",T.token),x(!0),b("")}catch(T){T instanceof Error?k(T.message||"登录失败,请检查鉴权码"):k("登录失败,请检查鉴权码")}};return P?f.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh",fontSize:"18px",color:"var(--text-secondary)"},children:"加载中..."}):h&&!y?f.jsxs("div",{className:"modal-overlay",children:[f.jsx("button",{type:"button",className:"modal-close-btn",onClick:()=>{},"aria-label":"关闭",disabled:!0,style:{opacity:.3,cursor:"not-allowed"},children:"×"}),f.jsx("div",{className:"modal",style:{maxWidth:"400px"},children:f.jsxs("div",{className:"modal-container",children:[f.jsx("div",{className:"modal-header",children:f.jsx("h2",{children:"🔐 系统鉴权"})}),f.jsxs("form",{onSubmit:F,children:[f.jsxs("div",{style:{padding:"20px 0"},children:[f.jsx("p",{style:{marginBottom:"16px",lineHeight:"1.6",color:"var(--text-secondary)"},children:"系统已启用鉴权保护,请输入鉴权码以继续访问。"}),f.jsxs("div",{style:{marginBottom:"16px"},children:[f.jsx("label",{style:{display:"block",marginBottom:"8px",fontWeight:"500"},children:"鉴权码"}),f.jsx("input",{type:"password",value:g,onChange:z=>b(z.target.value),placeholder:"请输入鉴权码",style:{width:"100%",padding:"10px 12px",border:"1px solid var(--border-color)",borderRadius:"6px",fontSize:"14px",boxSizing:"border-box"},autoFocus:!0})]}),w&&f.jsx("div",{style:{padding:"10px 12px",backgroundColor:"#fee",border:"1px solid #fcc",borderRadius:"6px",color:"#c33",fontSize:"14px",marginBottom:"16px"},children:w})]}),f.jsx("div",{className:"modal-footer",children:f.jsx("button",{type:"submit",className:"btn btn-primary",style:{width:"100%"},children:"登录"})})]})]})})]}):f.jsxs("div",{className:"app",children:[f.jsxs("nav",{className:"sidebar",children:[f.jsx("div",{className:"logo",children:f.jsx("h2",{children:"AI Code Switch"})}),f.jsxs("ul",{className:"nav-menu",children:[f.jsx("li",{children:f.jsx(eo,{to:"/",children:"🌏 路由管理"})}),f.jsx("li",{children:f.jsx(eo,{to:"/vendors",children:"🏭 供应商管理"})}),f.jsx("li",{children:f.jsx(eo,{to:"/statistics",children:"📊 数据统计"})}),f.jsx("li",{children:f.jsx(eo,{to:"/logs",children:"🪵 日志"})}),f.jsx("li",{children:f.jsx(eo,{to:"/settings",children:"⚙️ 设置"})}),f.jsx("li",{children:f.jsx(eo,{to:"/usage",children:"📖 使用说明"})})]}),l&&f.jsxs("div",{className:"update-notification",children:[f.jsxs("div",{className:"update-notification-content",children:[f.jsx("span",{className:"update-icon",children:"⬆️"}),f.jsxs("div",{className:"update-text",children:[f.jsx("div",{className:"update-title",children:"新版本可用"}),f.jsxs("div",{className:"update-versions",children:[d," → ",u]}),f.jsxs("div",{className:"update-message",children:["命令行执行如下更新到最新版本",f.jsx("br",{}),f.jsx("code",{children:"npm i -g aicodeswitch"})]})]})]}),f.jsx("a",{href:"https://npmjs.com/package/aicodeswitch",target:"_blank",rel:"noopener noreferrer",className:"update-link",children:"查看详情"})]}),f.jsxs("div",{className:"theme-toggle",children:[f.jsx("button",{onClick:K,children:t==="dark"?"🌙":"☀️"}),d&&f.jsxs("div",{className:"version-info",children:["v",d]})]})]}),f.jsx("main",{className:"main-content",children:f.jsxs(iL,{children:[f.jsx(Kr,{path:"/",element:f.jsx(Yw,{})}),f.jsx(Kr,{path:"/statistics",element:f.jsx(tee,{})}),f.jsx(Kr,{path:"/routes",element:f.jsx(Yw,{})}),f.jsx(Kr,{path:"/vendors",element:f.jsx(m3,{})}),f.jsx(Kr,{path:"/logs",element:f.jsx(k3,{})}),f.jsx(Kr,{path:"/write-config",element:f.jsx(O3,{})}),f.jsx(Kr,{path:"/settings",element:f.jsx(j3,{})}),f.jsx(Kr,{path:"/usage",element:f.jsx(C3,{})})]})}),r&&f.jsxs("div",{className:"modal-overlay",children:[f.jsx("button",{type:"button",className:"modal-close-btn",onClick:()=>i(!1),"aria-label":"关闭",children:"×"}),f.jsx("div",{className:"modal",children:f.jsxs("div",{className:"modal-container",children:[f.jsx("div",{className:"modal-header",children:f.jsx("h2",{children:"⚠️ 需要配置供应商"})}),f.jsxs("div",{style:{padding:"20px 0"},children:[f.jsx("p",{style:{marginBottom:"16px",lineHeight:"1.6"},children:"检测到系统中没有配置任何API供应商。在没有供应商的情况下,路由将无法正常工作。"}),f.jsx("p",{style:{marginBottom:"0",lineHeight:"1.6",fontWeight:"500"},children:"请先添加至少一个供应商,然后再配置路由规则。"})]}),f.jsxs("div",{className:"modal-footer",children:[f.jsx("button",{type:"button",className:"btn btn-secondary",onClick:()=>i(!1),children:"稍后"}),f.jsx("button",{type:"button",className:"btn btn-primary",onClick:B,children:"前往供应商管理"})]})]})})]}),O&&f.jsx("div",{className:"modal-overlay",children:f.jsx("div",{className:"modal",style:{maxWidth:"800px",maxHeight:"80vh",overflow:"auto"},children:f.jsxs("div",{className:"modal-container",children:[f.jsx("div",{className:"modal-header",children:f.jsx("h2",{children:"📋 升级提示"})}),f.jsx("div",{className:"modal-body",children:f.jsx("div",{className:"markdown-content",children:f.jsx(by,{children:N})})}),f.jsx("div",{className:"modal-footer",children:f.jsx("button",{type:"button",className:"btn btn-primary",onClick:D,children:"我知道了"})})]})})})]})}function ree(){return f.jsx(fL,{children:f.jsxs(d3,{children:[f.jsx(nee,{}),f.jsx(p3,{})]})})}em.createRoot(document.getElementById("root")).render(f.jsx(XP.StrictMode,{children:f.jsx(ree,{})}));
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>AI Code Switch</title>
7
- <script type="module" crossorigin src="./assets/index-BLqGemLn.js"></script>
8
- <link rel="stylesheet" crossorigin href="./assets/index-IVPeH7yC.css">
7
+ <script type="module" crossorigin src="./assets/index-DtRNBdrH.js"></script>
8
+ <link rel="stylesheet" crossorigin href="./assets/index-CO1PHif-.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aicodeswitch",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "A tool to help you manage AI programming tools to access large language models locally. It allows your Claude Code, Codex and other tools to no longer be limited to official models.",
5
5
  "author": "tangshuang",
6
6
  "license": "GPL-3.0",