@runfusion/fusion 0.76.0-beta.3 → 0.77.0-beta.0
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/dist/bin.js +13802 -9587
- package/dist/child-process-worker.js +6472 -4028
- package/dist/client/.vite/manifest.json +280 -269
- package/dist/client/assets/AgentDetailView-0G9qFd4j.js +13 -0
- package/dist/client/assets/{AgentDetailView-Cc3ATg8a.css → AgentDetailView-jzgy1BAS.css} +1 -1
- package/dist/client/assets/{AgentPermissionPolicyEditor--u9jyUf2.js → AgentPermissionPolicyEditor-BM68g7wo.js} +1 -1
- package/dist/client/assets/AgentsView-DkOUZWw4.js +24 -0
- package/dist/client/assets/ChatView-BPSm2JIH.js +13 -0
- package/dist/client/assets/{CommandCenter-CSRYoveB.js → CommandCenter-DxRSFWNc.js} +26 -26
- package/dist/client/assets/CommandCenter-ilm-DbtI.css +1 -0
- package/dist/client/assets/{DevServerView-B9So_oYx.js → DevServerView-DO-bqJFE.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-BhyDL_2m.js → DirectoryPicker-Cp2gddTE.js} +1 -1
- package/dist/client/assets/DocumentsView-D0E-3G96.js +1 -0
- package/dist/client/assets/EvalsView-BoFVq5hw.js +1 -0
- package/dist/client/assets/ExperimentalAgentOnboardingModal-CS1Sdogm.js +1 -0
- package/dist/client/assets/{GoalsView-B6X5_0Ve.js → GoalsView-sybf7JY4.js} +1 -1
- package/dist/client/assets/InsightsView-nHa7aShn.js +11 -0
- package/dist/client/assets/{MemoryView-DN_3IFmA.css → MemoryView-CdpQqPJJ.css} +1 -1
- package/dist/client/assets/MemoryView-D0IG44za.js +3 -0
- package/dist/client/assets/{PiExtensionsManager-B8At6fO8.js → PiExtensionsManager-CU76weJe.js} +2 -2
- package/dist/client/assets/PluginManager-DyT8XbcG.js +1 -0
- package/dist/client/assets/{PullRequestView-B1hZFrWo.js → PullRequestView-CnxWUSen.js} +2 -2
- package/dist/client/assets/{ReportModal-C46V_zEa.js → ReportModal-CMrmMQjD.js} +5 -5
- package/dist/client/assets/{ResearchView-D8G85BYN.js → ResearchView-BTytQSgy.js} +2 -2
- package/dist/client/assets/{SecretsView-CTri9LRK.js → SecretsView-BuSH5J87.js} +1 -1
- package/dist/client/assets/SessionTerminal-D04kYRrT.js +2 -0
- package/dist/client/assets/SettingsModal-C0FY8MPW.css +1 -0
- package/dist/client/assets/{SettingsModal-rUQcSTJp.js → SettingsModal-Dm-ngbRr.js} +1 -1
- package/dist/client/assets/{SettingsModal-DmfMotcd.css → SettingsModal-Ds0Yj47X.css} +1 -1
- package/dist/client/assets/SettingsModal-xSLhH7Tr.js +21 -0
- package/dist/client/assets/{SettingsTextareaRow-BirlBcem.js → SettingsTextareaRow-CHPgocEp.js} +1 -1
- package/dist/client/assets/{SetupWizardModal-xnCBM9EL.js → SetupWizardModal-y88aXNIQ.js} +2 -2
- package/dist/client/assets/{SkillsView-O5U0ep50.js → SkillsView-CYyQW1Hv.js} +1 -1
- package/dist/client/assets/{WorkflowNodeEditor-BX4d2qqF.js → WorkflowNodeEditor-hYeoz1X8.js} +3 -3
- package/dist/client/assets/{agent-import-generation-DnqVkPkz.js → agent-import-generation-CjiYXzCr.js} +1 -1
- package/dist/client/assets/agentsOrgChartLayout-C0UP_X3z.js +1 -0
- package/dist/client/assets/app-BgpuMvTU.js +13 -0
- package/dist/client/assets/app-BlexHhbW.js +13 -0
- package/dist/client/assets/app-BsuUOR0P.js +13 -0
- package/dist/client/assets/app-DQVOujmO.js +13 -0
- package/dist/client/assets/app-DjyTRx1N.js +5 -0
- package/dist/client/assets/app-Dniggype.js +13 -0
- package/dist/client/assets/app-EV-lyZ0T.js +5 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-gi467xY0.js → architectureDiagram-3BPJPVTR-Dd6GPcqM.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-B_gpcYiR.js → blockDiagram-GPEHLZMM-CC6pLxlz.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-DeylEYsQ.js → c4Diagram-AAUBKEIU-DxMP_l6y.js} +1 -1
- package/dist/client/assets/channel-DlCEMoEf.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-BL2WY0HN.js → chunk-2J33WTMH-BKYToL43.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-BkLExGMe.js → chunk-4BX2VUAB-Bg6rjQb3.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CSTvCF5T.js → chunk-55IACEB6-CPUwbbGa.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-9J8pKk4x.js → chunk-727SXJPM-DScQBCvv.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DXC1vPWr.js → chunk-AQP2D5EJ-DbX7uaXK.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-CFRUb-zD.js → chunk-FMBD7UC4-DvYKea1c.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-B87HFYS8.js → chunk-ND2GUHAM-CH-Tvw7w.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-CTjHiGbd.js → chunk-QZHKN3VN-CbyEvOoM.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-Bc92O8Ks.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Bc92O8Ks.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-D3Edq3L9.js → cose-bilkent-S5V4N54A-BPB5fV3A.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-CwwbeQfN.js → dagre-BM42HDAG-CilYJ3rR.js} +1 -1
- package/dist/client/assets/{dashboard-view-QxQwJFLz.js → dashboard-view-BnGe8cWo.js} +1 -1
- package/dist/client/assets/{dashboard-view-BLAoW3D4.js → dashboard-view-DnVf3tmI.js} +1 -1
- package/dist/client/assets/{dashboard-view-DAlJxqiJ.js → dashboard-view-DoLU6FxZ.js} +1 -1
- package/dist/client/assets/{dashboard-view-aPzfv99T.js → dashboard-view-dChSM_So.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-koJWWXE4.js → diagram-2AECGRRQ-m9u1Qhyx.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-Yob5cOKT.js → diagram-5GNKFQAL-DVr7Kf0N.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-DelvFSkK.js → diagram-KO2AKTUF-D7sgJDFx.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CMput2h2.js → diagram-LMA3HP47-DNKNDS6r.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-04VXDl79.js → diagram-OG6HWLK6-1Bff4FWn.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-C9iP8Uyp.js → erDiagram-TEJ5UH35-DGua1UHN.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-DENQvu_t.js → flowDiagram-I6XJVG4X-UDfDtwsE.js} +1 -1
- package/dist/client/assets/{folder-open-D-554oji.js → folder-open-CteOypVk.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-BqOttZAT.js → ganttDiagram-6RSMTGT7-COdmD328.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CDcydi-5.js → gitGraphDiagram-PVQCEYII-SUSls7Kw.js} +1 -1
- package/dist/client/assets/index-0ovTXt3t.css +1 -0
- package/dist/client/assets/index-DpCHwyiD.js +2818 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-B5LQQnxt.js → infoDiagram-5YYISTIA-e_DloXj7.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-DpFEt7D2.js → ishikawaDiagram-YF4QCWOH-DVWqihXg.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-MELtgu22.js → journeyDiagram-JHISSGLW-BcPY-XP0.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-h33PLATd.js → kanban-definition-UN3LZRKU-BCFG2Jle.js} +1 -1
- package/dist/client/assets/{mermaid.core-Dk2mUPOq.js → mermaid.core-5yPje9Bi.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-B_T4O2-B.js → mindmap-definition-RKZ34NQL-DDApeT3K.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-B1YIFkRl.js → pieDiagram-4H26LBE5-N61_jyeP.js} +1 -1
- package/dist/client/assets/{puzzle-hvecxlpJ.js → puzzle-BkaCP30D.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-BoGQR_hO.js → quadrantDiagram-W4KKPZXB-C5qHiApF.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-BSDmUBIx.js → requirementDiagram-4Y6WPE33-C71okgzt.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Dz_GqOa5.js → sankeyDiagram-5OEKKPKP-B2iKyLjB.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-B6twjYUH.js → sequenceDiagram-3UESZ5HK-DfdoYKKk.js} +1 -1
- package/dist/client/assets/{shield-alert-BX4WRJOv.js → shield-alert-BNSeDB8l.js} +1 -1
- package/dist/client/assets/standing-instructions-template-pZtzo1lK.js +20 -0
- package/dist/client/assets/standing-instructions-template-w7Ouw_37.css +1 -0
- package/dist/client/assets/{stateDiagram-AJRCARHV-DuwqWLx-.js → stateDiagram-AJRCARHV-lS-sUi12.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-Bu8Sk187.js → stateDiagram-v2-BHNVJYJU-DXJNDrV9.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-BS6VnqSI.js → timeline-definition-PNZ67QCA-CCwvX81K.js} +1 -1
- package/dist/client/assets/{upload-CaDoyaMW.js → upload-CDovVbu2.js} +1 -1
- package/dist/client/assets/useDiscoveredSkillsCache-BYqP-afh.js +1 -0
- package/dist/client/assets/{users-C5uCLwVM.js → users-CTqECGLo.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CUbzqT5Y.js → vennDiagram-CIIHVFJN-DaiR5nv9.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-Mv-NotFS.js → wardley-L42UT6IY-hA5IHyPW.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DuYpvLZX.js → wardleyDiagram-YWT4CUSO-CILUNESc.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-24_7QXdw.js → xychartDiagram-2RQKCTM6-72eNMmjz.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +10671 -6904
- package/dist/migrations/0059_fn_9037_tasks_source_agent_index.sql +3 -0
- package/dist/migrations/0060_fn_9059_workspace_coordination_leases.sql +10 -0
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/plugin-sdk/index.d.ts +190 -9
- package/dist/plugin-sdk/index.js +74 -28
- package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +83 -29
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +83 -29
- package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +1096 -73
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +83 -29
- package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +302 -71
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-linear-import/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
- package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +83 -29
- package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-quality/bundled.js +176 -46
- package/dist/plugins/fusion-plugin-quality/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-todos/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-todos/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +1 -1
- package/skill/fusion/references/extension-tools.md +2 -0
- package/dist/client/assets/AgentDetailView-T767kKTg.js +0 -13
- package/dist/client/assets/AgentsView-6Ifu7qDr.js +0 -24
- package/dist/client/assets/ChatView-BV3lixQi.js +0 -13
- package/dist/client/assets/CommandCenter-CE4rYjHn.css +0 -1
- package/dist/client/assets/DocumentsView-pbERA7O-.js +0 -1
- package/dist/client/assets/EvalsView-DJQ4ltCg.js +0 -1
- package/dist/client/assets/ExperimentalAgentOnboardingModal-BwJuzkzB.js +0 -1
- package/dist/client/assets/InsightsView-CJgI0J7S.js +0 -11
- package/dist/client/assets/MemoryView-BHq1AHPu.js +0 -3
- package/dist/client/assets/PluginManager-k7hV7_9e.js +0 -1
- package/dist/client/assets/SessionTerminal-BRf6r4Vp.js +0 -2
- package/dist/client/assets/SettingsModal-B30rPfYC.css +0 -1
- package/dist/client/assets/SettingsModal-D0RBeZik.js +0 -21
- package/dist/client/assets/agentsOrgChartLayout-CKuzbhFf.js +0 -1
- package/dist/client/assets/app-B2FwULu2.js +0 -5
- package/dist/client/assets/app-B6nJaqAl.js +0 -13
- package/dist/client/assets/app-CGXZeIRc.js +0 -13
- package/dist/client/assets/app-CGtkeBF5.js +0 -13
- package/dist/client/assets/app-CNzN1Plu.js +0 -13
- package/dist/client/assets/app-DLs-f5yM.js +0 -13
- package/dist/client/assets/app-DsvtcRUG.js +0 -5
- package/dist/client/assets/channel-BoE8DeM4.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-qnbLX_9_.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-qnbLX_9_.js +0 -1
- package/dist/client/assets/index-CXTd3LAB.css +0 -1
- package/dist/client/assets/index-CtYRoouR.js +0 -2818
- package/dist/client/assets/standing-instructions-template-BJY317CC.js +0 -20
- package/dist/client/assets/standing-instructions-template-Ddi_4TIk.css +0 -1
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
import{r as f,j as s,g as mn,a as
|
|
1
|
+
import{r as f,j as s,g as mn,a as aj,b as Jl,c as ij}from"./vendor-react-SZ_qB27O.js";import{c as Vt,h5 as sj,dZ as Nh,L as Ql,l as Mi,h6 as Ii,a as fr,w as mr,aX as vn,h7 as ec,h8 as oj,a$ as Zr,as as el,ae as Ph,a3 as La,F as tn,b2 as lj,b4 as cj,P as zn,b0 as uj,h9 as Ah,bV as Di,bh as qa,ag as tc,ha as $u,R as Gt,az as dj,hb as fj,aM as mj,aT as Ri,hc as Oh,ej as vj,aY as Eh,da as _h,bL as hj,aK as rc,bX as pj,hd as yj,ar as gj,fy as bj,he as xj,aj as Th,hf as jj,hg as wj,cV as Fu,hh as Bu,fJ as Cj,gN as Ps,hi as zu,hj as ga,hk as kj,hl as Sj,hm as Nj,hn as Pj,gO as Aj,ho as Oj,hp as Ej,hq as _j,gK as Tj,hr as Mj,G as Ij,aN as Dj,gP as Mh,hs as Rj,c3 as Lj,B as $j,ht as Fj,au as Bj,hu as As,hv as zj,hw as Kj,hx as Vj,hy as Uj,hz as qj,hA as Wj,hB as nc,hC as ac,hD as Ku,c_ as Wa,hE as Vu,hF as tl,hG as Ih,hH as rl,bi as Dh,bW as Rh,bY as Lh,dl as Hj,d6 as Gj,K as ic,C as sc,hI as Xj,hJ as Yj,D as Zj,e_ as Uu,X as $a,E as Jj,y as Qj,b1 as qu,aI as e0,hK as Wu,hL as t0,hM as r0,hN as n0,hO as a0,eh as i0,hP as Os,hQ as s0,hR as o0,hS as l0}from"./index-DpCHwyiD.js";import{u as se}from"./vendor-i18n-Duky4gdQ.js";import{a as $h,b as Fh,p as c0,w as u0}from"./vendor-reactflow-BlIeoTu4.js";import{w as Bh,n as zh,a as Me,A as oc,G as d0,H as f0,l as Kh,t as Li,b as _t,p as nl,s as Ha,c as Vh,q as m0,r as v0,u as h0,v as p0,x as y0,y as g0,z as b0,C as x0,D as j0,k as w0,E as C0,F as k0}from"./step-yuy0qJer.js";import{b as S0,p as N0}from"./band-CquvqAHh.js";import{d as Ga,n as P0,e as A0,f as al,g as Br,h as lc,a as cc,i as Hu,j as Ht,c as O0,k as $i,l as E0,m as _0}from"./linear-Dyk9wory.js";import{i as pr,a as Qt}from"./init-Dmth1JHB.js";import{m as Gu,a as Xu,p as T0,q as M0,u as I0,s as D0,r as R0,v as L0,w as $0,x as F0,y as B0,z as z0,A as K0,B as V0,t as U0}from"./time-2wBVBf9F.js";import{f as q0,b as W0}from"./defaultLocale-DX6XiGOO.js";import{i as H0,o as G0}from"./ordinal-DILIJJjt.js";import{g as X0,i as il,r as Y0}from"./agentsOrgChartLayout-C0UP_X3z.js";import{U as uc}from"./upload-CDovVbu2.js";import{S as Z0}from"./shield-alert-BNSeDB8l.js";import{b as J0}from"./agent-import-generation-CjiYXzCr.js";import{r as Q0,B as ew,R as tw,b as rw,a as nw}from"./ReportModal-CMrmMQjD.js";import{PluginManager as aw}from"./PluginManager-DyT8XbcG.js";import{v as iw}from"./projectDetection-G3XuxD2X.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-xterm-BNq00GSj.js";import"./DirectoryPicker-Cp2gddTE.js";import"./folder-open-CteOypVk.js";/**
|
|
2
2
|
* @license lucide-react v1.7.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
5
5
|
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const
|
|
6
|
+
*/const sw=[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]],Uh=Vt("arrow-right-left",sw);/**
|
|
7
7
|
* @license lucide-react v1.7.0 - ISC
|
|
8
8
|
*
|
|
9
9
|
* This source code is licensed under the ISC license.
|
|
10
10
|
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
-
*/const
|
|
11
|
+
*/const ow=[["path",{d:"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2",key:"1ah6g2"}],["rect",{x:"14",y:"2",width:"8",height:"8",rx:"1",key:"88lufb"}]],lw=Vt("blocks",ow);/**
|
|
12
12
|
* @license lucide-react v1.7.0 - ISC
|
|
13
13
|
*
|
|
14
14
|
* This source code is licensed under the ISC license.
|
|
15
15
|
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
-
*/const
|
|
16
|
+
*/const cw=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]],uw=Vt("circle-arrow-up",cw);/**
|
|
17
17
|
* @license lucide-react v1.7.0 - ISC
|
|
18
18
|
*
|
|
19
19
|
* This source code is licensed under the ISC license.
|
|
20
20
|
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
-
*/const
|
|
21
|
+
*/const dw=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],fw=Vt("database",dw);/**
|
|
22
22
|
* @license lucide-react v1.7.0 - ISC
|
|
23
23
|
*
|
|
24
24
|
* This source code is licensed under the ISC license.
|
|
25
25
|
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
-
*/const
|
|
26
|
+
*/const mw=[["path",{d:"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9",key:"1hayfq"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"15ts47"}]],vw=Vt("hammer",mw);/**
|
|
27
27
|
* @license lucide-react v1.7.0 - ISC
|
|
28
28
|
*
|
|
29
29
|
* This source code is licensed under the ISC license.
|
|
30
30
|
* See the LICENSE file in the root directory of this source tree.
|
|
31
|
-
*/const
|
|
31
|
+
*/const hw=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],pw=Vt("link-2",hw);/**
|
|
32
32
|
* @license lucide-react v1.7.0 - ISC
|
|
33
33
|
*
|
|
34
34
|
* This source code is licensed under the ISC license.
|
|
35
35
|
* See the LICENSE file in the root directory of this source tree.
|
|
36
|
-
*/const
|
|
36
|
+
*/const yw=[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]],gw=Vt("scroll-text",yw);/**
|
|
37
37
|
* @license lucide-react v1.7.0 - ISC
|
|
38
38
|
*
|
|
39
39
|
* This source code is licensed under the ISC license.
|
|
40
40
|
* See the LICENSE file in the root directory of this source tree.
|
|
41
|
-
*/const
|
|
41
|
+
*/const bw=[["path",{d:"m12.5 17-.5-1-.5 1h1z",key:"3me087"}],["path",{d:"M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z",key:"1o5pge"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}]],xw=Vt("skull",bw);/**
|
|
42
42
|
* @license lucide-react v1.7.0 - ISC
|
|
43
43
|
*
|
|
44
44
|
* This source code is licensed under the ISC license.
|
|
45
45
|
* See the LICENSE file in the root directory of this source tree.
|
|
46
|
-
*/const
|
|
46
|
+
*/const jw=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],ww=Vt("wifi-off",jw);/**
|
|
47
47
|
* @license lucide-react v1.7.0 - ISC
|
|
48
48
|
*
|
|
49
49
|
* This source code is licensed under the ISC license.
|
|
50
50
|
* See the LICENSE file in the root directory of this source tree.
|
|
51
|
-
*/const ww=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],Cw=Vt("wifi",ww);function kw(e=Ga){if(e===Ga)return Uh;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function Uh(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}function qh(e,t,r=0,n=1/0,a){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(a=a===void 0?Uh:kw(a);n>r;){if(n-r>600){const c=n-r+1,d=t-r+1,u=Math.log(c),m=.5*Math.exp(2*u/3),h=.5*Math.sqrt(u*m*(c-m)/c)*(d-c/2<0?-1:1),v=Math.max(r,Math.floor(t-d*m/c+h)),p=Math.min(n,Math.floor(t+(c-d)*m/c+h));qh(e,t,v,p,a)}const i=e[t];let o=r,l=n;for(kn(e,r,t),a(e[n],i)>0&&kn(e,r,n);o<l;){for(kn(e,o,l),++o,--l;a(e[o],i)<0;)++o;for(;a(e[l],i)>0;)--l}a(e[r],i)===0?kn(e,r,l):(++l,kn(e,l,n)),l<=t&&(r=l+1),t<=l&&(n=l-1)}return e}function kn(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function Sw(e,t,r){if(e=Float64Array.from(N0(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return Hu(e);if(t>=1)return Gu(e);var n,a=(n-1)*t,i=Math.floor(a),o=Gu(qh(e,i).subarray(0,i+1)),l=Hu(e.subarray(i+1));return o+(l-o)*(a-i)}}function Nw(e,t,r=P0){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,a=(n-1)*t,i=Math.floor(a),o=+r(e[i],i,e),l=+r(e[i+1],i+1,e);return o+(l-o)*(a-i)}}function Wh(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,al),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return Wh(e).unknown(t)},e=arguments.length?Array.from(e,al):[0,1],Br(r)}function Xu(e){return Math.log(e)}function Yu(e){return Math.exp(e)}function Pw(e){return-Math.log(-e)}function Aw(e){return-Math.exp(-e)}function Ow(e){return isFinite(e)?+("1e"+e):e<0?0:e}function Ew(e){return e===10?Ow:e===Math.E?Math.exp:t=>Math.pow(e,t)}function _w(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function Zu(e){return(t,r)=>-e(-t,r)}function uc(e){const t=e(Xu,Yu),r=t.domain;let n=10,a,i;function o(){return a=_w(n),i=Ew(n),r()[0]<0?(a=Zu(a),i=Zu(i),e(Pw,Aw)):e(Xu,Yu),t}return t.base=function(l){return arguments.length?(n=+l,o()):n},t.domain=function(l){return arguments.length?(r(l),o()):r()},t.ticks=l=>{const c=r();let d=c[0],u=c[c.length-1];const m=u<d;m&&([d,u]=[u,d]);let h=a(d),v=a(u),p,b;const y=l==null?10:+l;let g=[];if(!(n%1)&&v-h<y){if(h=Math.floor(h),v=Math.ceil(v),d>0){for(;h<=v;++h)for(p=1;p<n;++p)if(b=h<0?p/i(-h):p*i(h),!(b<d)){if(b>u)break;g.push(b)}}else for(;h<=v;++h)for(p=n-1;p>=1;--p)if(b=h>0?p/i(-h):p*i(h),!(b<d)){if(b>u)break;g.push(b)}g.length*2<y&&(g=Wu(d,u,y))}else g=Wu(h,v,Math.min(v-h,y)).map(i);return m?g.reverse():g},t.tickFormat=(l,c)=>{if(l==null&&(l=10),c==null&&(c=n===10?"s":","),typeof c!="function"&&(!(n%1)&&(c=U0(c)).precision==null&&(c.trim=!0),c=q0(c)),l===1/0)return c;const d=Math.max(1,n*l/t.ticks().length);return u=>{let m=u/i(Math.round(a(u)));return m*n<n-.5&&(m*=n),m<=d?c(u):""}},t.nice=()=>r(_0(r(),{floor:l=>i(Math.floor(a(l))),ceil:l=>i(Math.ceil(a(l)))})),t}function Hh(){const e=uc(oc()).domain([1,10]);return e.copy=()=>lc(e,Hh()).base(e.base()),pr.apply(e,arguments),e}function Ju(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Qu(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function dc(e){var t=1,r=e(Ju(t),Qu(t));return r.constant=function(n){return arguments.length?e(Ju(t=+n),Qu(t)):t},Br(r)}function Gh(){var e=dc(oc());return e.copy=function(){return lc(e,Gh()).constant(e.constant())},pr.apply(e,arguments)}function ed(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Tw(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Mw(e){return e<0?-e*e:e*e}function fc(e){var t=e(Ht,Ht),r=1;function n(){return r===1?e(Ht,Ht):r===.5?e(Tw,Mw):e(ed(r),ed(1/r))}return t.exponent=function(a){return arguments.length?(r=+a,n()):r},Br(t)}function mc(){var e=fc(oc());return e.copy=function(){return lc(e,mc()).exponent(e.exponent())},pr.apply(e,arguments),e}function Iw(){return mc.apply(null,arguments).exponent(.5)}function td(e){return Math.sign(e)*e*e}function Dw(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function Xh(){var e=A0(),t=[0,1],r=!1,n;function a(i){var o=Dw(e(i));return isNaN(o)?n:r?Math.round(o):o}return a.invert=function(i){return e.invert(td(i))},a.domain=function(i){return arguments.length?(e.domain(i),a):e.domain()},a.range=function(i){return arguments.length?(e.range((t=Array.from(i,al)).map(td)),a):t.slice()},a.rangeRound=function(i){return a.range(i).round(!0)},a.round=function(i){return arguments.length?(r=!!i,a):r},a.clamp=function(i){return arguments.length?(e.clamp(i),a):e.clamp()},a.unknown=function(i){return arguments.length?(n=i,a):n},a.copy=function(){return Xh(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},pr.apply(a,arguments),Br(a)}function Yh(){var e=[],t=[],r=[],n;function a(){var o=0,l=Math.max(1,t.length);for(r=new Array(l-1);++o<l;)r[o-1]=Nw(e,o/l);return i}function i(o){return o==null||isNaN(o=+o)?n:t[$i(r,o)]}return i.invertExtent=function(o){var l=t.indexOf(o);return l<0?[NaN,NaN]:[l>0?r[l-1]:e[0],l<r.length?r[l]:e[e.length-1]]},i.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let l of o)l!=null&&!isNaN(l=+l)&&e.push(l);return e.sort(Ga),a()},i.range=function(o){return arguments.length?(t=Array.from(o),a()):t.slice()},i.unknown=function(o){return arguments.length?(n=o,i):n},i.quantiles=function(){return r.slice()},i.copy=function(){return Yh().domain(e).range(t).unknown(n)},pr.apply(i,arguments)}function Zh(){var e=0,t=1,r=1,n=[.5],a=[0,1],i;function o(c){return c!=null&&c<=c?a[$i(n,c,0,r)]:i}function l(){var c=-1;for(n=new Array(r);++c<r;)n[c]=((c+1)*t-(c-r)*e)/(r+1);return o}return o.domain=function(c){return arguments.length?([e,t]=c,e=+e,t=+t,l()):[e,t]},o.range=function(c){return arguments.length?(r=(a=Array.from(c)).length-1,l()):a.slice()},o.invertExtent=function(c){var d=a.indexOf(c);return d<0?[NaN,NaN]:d<1?[e,n[0]]:d>=r?[n[r-1],t]:[n[d-1],n[d]]},o.unknown=function(c){return arguments.length&&(i=c),o},o.thresholds=function(){return n.slice()},o.copy=function(){return Zh().domain([e,t]).range(a).unknown(i)},pr.apply(Br(o),arguments)}function Jh(){var e=[.5],t=[0,1],r,n=1;function a(i){return i!=null&&i<=i?t[$i(e,i,0,n)]:r}return a.domain=function(i){return arguments.length?(e=Array.from(i),n=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(i){return arguments.length?(t=Array.from(i),n=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(i){var o=t.indexOf(i);return[e[o-1],e[o]]},a.unknown=function(i){return arguments.length?(r=i,a):r},a.copy=function(){return Jh().domain(e).range(t).unknown(r)},pr.apply(a,arguments)}function Rw(){return pr.apply(T0(K0,z0,B0,F0,$0,L0,R0,D0,I0,M0).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Fi(){var e=0,t=1,r,n,a,i,o=Ht,l=!1,c;function d(m){return m==null||isNaN(m=+m)?c:o(a===0?.5:(m=(i(m)-r)*a,l?Math.max(0,Math.min(1,m)):m))}d.domain=function(m){return arguments.length?([e,t]=m,r=i(e=+e),n=i(t=+t),a=r===n?0:1/(n-r),d):[e,t]},d.clamp=function(m){return arguments.length?(l=!!m,d):l},d.interpolator=function(m){return arguments.length?(o=m,d):o};function u(m){return function(h){var v,p;return arguments.length?([v,p]=h,o=m(v,p),d):[o(0),o(1)]}}return d.range=u(Lh),d.rangeRound=u($h),d.unknown=function(m){return arguments.length?(c=m,d):c},function(m){return i=m,r=m(e),n=m(t),a=r===n?0:1/(n-r),d}}function yr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Qh(){var e=Br(Fi()(Ht));return e.copy=function(){return yr(e,Qh())},Qt.apply(e,arguments)}function ep(){var e=uc(Fi()).domain([1,10]);return e.copy=function(){return yr(e,ep()).base(e.base())},Qt.apply(e,arguments)}function tp(){var e=dc(Fi());return e.copy=function(){return yr(e,tp()).constant(e.constant())},Qt.apply(e,arguments)}function vc(){var e=fc(Fi());return e.copy=function(){return yr(e,vc()).exponent(e.exponent())},Qt.apply(e,arguments)}function Lw(){return vc.apply(null,arguments).exponent(.5)}function rp(){var e=[],t=Ht;function r(n){if(n!=null&&!isNaN(n=+n))return t(($i(e,n,1)-1)/(e.length-1))}return r.domain=function(n){if(!arguments.length)return e.slice();e=[];for(let a of n)a!=null&&!isNaN(a=+a)&&e.push(a);return e.sort(Ga),r},r.interpolator=function(n){return arguments.length?(t=n,r):t},r.range=function(){return e.map((n,a)=>t(a/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(a,i)=>Sw(e,i/n))},r.copy=function(){return rp(t).domain(e)},Qt.apply(r,arguments)}function Bi(){var e=0,t=.5,r=1,n=1,a,i,o,l,c,d=Ht,u,m=!1,h;function v(b){return isNaN(b=+b)?h:(b=.5+((b=+u(b))-i)*(n*b<n*i?l:c),d(m?Math.max(0,Math.min(1,b)):b))}v.domain=function(b){return arguments.length?([e,t,r]=b,a=u(e=+e),i=u(t=+t),o=u(r=+r),l=a===i?0:.5/(i-a),c=i===o?0:.5/(o-i),n=i<a?-1:1,v):[e,t,r]},v.clamp=function(b){return arguments.length?(m=!!b,v):m},v.interpolator=function(b){return arguments.length?(d=b,v):d};function p(b){return function(y){var g,j,x;return arguments.length?([g,j,x]=y,d=l0(b,[g,j,x]),v):[d(0),d(.5),d(1)]}}return v.range=p(Lh),v.rangeRound=p($h),v.unknown=function(b){return arguments.length?(h=b,v):h},function(b){return u=b,a=b(e),i=b(t),o=b(r),l=a===i?0:.5/(i-a),c=i===o?0:.5/(o-i),n=i<a?-1:1,v}}function np(){var e=Br(Bi()(Ht));return e.copy=function(){return yr(e,np())},Qt.apply(e,arguments)}function ap(){var e=uc(Bi()).domain([.1,1,10]);return e.copy=function(){return yr(e,ap()).base(e.base())},Qt.apply(e,arguments)}function ip(){var e=dc(Bi());return e.copy=function(){return yr(e,ip()).constant(e.constant())},Qt.apply(e,arguments)}function hc(){var e=fc(Bi());return e.copy=function(){return yr(e,hc()).exponent(e.exponent())},Qt.apply(e,arguments)}function $w(){return hc.apply(null,arguments).exponent(.5)}function ba(e,t,r){var n=null,a=Me(!0),i=null,o=sc,l=null,c=Fh(d);e=typeof e=="function"?e:e===void 0?u0:Me(+e),t=typeof t=="function"?t:t===void 0?Me(0):Me(+t),r=typeof r=="function"?r:r===void 0?d0:Me(+r);function d(m){var h,v,p,b=(m=Bh(m)).length,y,g=!1,j,x=new Array(b),C=new Array(b);for(i==null&&(l=o(j=c())),h=0;h<=b;++h){if(!(h<b&&a(y=m[h],h,m))===g)if(g=!g)v=h,l.areaStart(),l.lineStart();else{for(l.lineEnd(),l.lineStart(),p=h-1;p>=v;--p)l.point(x[p],C[p]);l.lineEnd(),l.areaEnd()}g&&(x[h]=+e(y,h,m),C[h]=+t(y,h,m),l.point(n?+n(y,h,m):x[h],r?+r(y,h,m):C[h]))}if(j)return l=null,j+""||null}function u(){return zh().defined(a).curve(o).context(i)}return d.x=function(m){return arguments.length?(e=typeof m=="function"?m:Me(+m),n=null,d):e},d.x0=function(m){return arguments.length?(e=typeof m=="function"?m:Me(+m),d):e},d.x1=function(m){return arguments.length?(n=m==null?null:typeof m=="function"?m:Me(+m),d):n},d.y=function(m){return arguments.length?(t=typeof m=="function"?m:Me(+m),r=null,d):t},d.y0=function(m){return arguments.length?(t=typeof m=="function"?m:Me(+m),d):t},d.y1=function(m){return arguments.length?(r=m==null?null:typeof m=="function"?m:Me(+m),d):r},d.lineX0=d.lineY0=function(){return u().x(e).y(t)},d.lineY1=function(){return u().x(e).y(r)},d.lineX1=function(){return u().x(n).y(t)},d.defined=function(m){return arguments.length?(a=typeof m=="function"?m:Me(!!m),d):a},d.curve=function(m){return arguments.length?(o=m,i!=null&&(l=o(i)),d):o},d.context=function(m){return arguments.length?(m==null?i=l=null:l=o(i=m),d):i},d}const pc={draw(e,t){const r=_t(t/nl);e.moveTo(r,0),e.arc(0,0,r,0,Li)}},Fw={draw(e,t){const r=_t(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},sp=_t(1/3),Bw=sp*2,zw={draw(e,t){const r=_t(t/Bw),n=r*sp;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},Kw={draw(e,t){const r=_t(t),n=-r/2;e.rect(n,n,r,r)}},Vw=.8908130915292852,op=Ha(nl/10)/Ha(7*nl/10),Uw=Ha(Li/10)*op,qw=-Kh(Li/10)*op,Ww={draw(e,t){const r=_t(t*Vw),n=Uw*r,a=qw*r;e.moveTo(0,-r),e.lineTo(n,a);for(let i=1;i<5;++i){const o=Li*i/5,l=Kh(o),c=Ha(o);e.lineTo(c*r,-l*r),e.lineTo(l*n-c*a,c*n+l*a)}e.closePath()}},Es=_t(3),Hw={draw(e,t){const r=-_t(t/(Es*3));e.moveTo(0,r*2),e.lineTo(-Es*r,-r),e.lineTo(Es*r,-r),e.closePath()}},bt=-.5,xt=_t(3)/2,il=1/_t(12),Gw=(il/2+1)*3,Xw={draw(e,t){const r=_t(t/Gw),n=r/2,a=r*il,i=n,o=r*il+r,l=-i,c=o;e.moveTo(n,a),e.lineTo(i,o),e.lineTo(l,c),e.lineTo(bt*n-xt*a,xt*n+bt*a),e.lineTo(bt*i-xt*o,xt*i+bt*o),e.lineTo(bt*l-xt*c,xt*l+bt*c),e.lineTo(bt*n+xt*a,bt*a-xt*n),e.lineTo(bt*i+xt*o,bt*o-xt*i),e.lineTo(bt*l+xt*c,bt*c-xt*l),e.closePath()}};function Yw(e,t){let r=null,n=Fh(a);e=typeof e=="function"?e:Me(e||pc),t=typeof t=="function"?t:Me(t===void 0?64:+t);function a(){let i;if(r||(r=i=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),i)return r=null,i+""||null}return a.type=function(i){return arguments.length?(e=typeof i=="function"?i:Me(i),a):e},a.size=function(i){return arguments.length?(t=typeof i=="function"?i:Me(+i),a):t},a.context=function(i){return arguments.length?(r=i??null,a):r},a}function _r(e,t){if((o=e.length)>1)for(var r=1,n,a,i=e[t[0]],o,l=i.length;r<o;++r)for(a=i,i=e[t[r]],n=0;n<l;++n)i[n][1]+=i[n][0]=isNaN(a[n][1])?a[n][0]:a[n][1]}function sl(e){for(var t=e.length,r=new Array(t);--t>=0;)r[t]=t;return r}function Zw(e,t){return e[t]}function Jw(e){const t=[];return t.key=e,t}function Qw(){var e=Me([]),t=sl,r=_r,n=Zw;function a(i){var o=Array.from(e.apply(this,arguments),Jw),l,c=o.length,d=-1,u;for(const m of i)for(l=0,++d;l<c;++l)(o[l][d]=[0,+n(m,o[l].key,d,i)]).data=m;for(l=0,u=Bh(t(o));l<c;++l)o[u[l]].index=l;return r(o,u),o}return a.keys=function(i){return arguments.length?(e=typeof i=="function"?i:Me(Array.from(i)),a):e},a.value=function(i){return arguments.length?(n=typeof i=="function"?i:Me(+i),a):n},a.order=function(i){return arguments.length?(t=i==null?sl:typeof i=="function"?i:Me(Array.from(i)),a):t},a.offset=function(i){return arguments.length?(r=i??_r,a):r},a}function eC(e,t){if((n=e.length)>0){for(var r,n,a=0,i=e[0].length,o;a<i;++a){for(o=r=0;r<n;++r)o+=e[r][a][1]||0;if(o)for(r=0;r<n;++r)e[r][a][1]/=o}_r(e,t)}}function tC(e,t){if((a=e.length)>0){for(var r=0,n=e[t[0]],a,i=n.length;r<i;++r){for(var o=0,l=0;o<a;++o)l+=e[o][r][1]||0;n[r][1]+=n[r][0]=-l/2}_r(e,t)}}function rC(e,t){if(!(!((o=e.length)>0)||!((i=(a=e[t[0]]).length)>0))){for(var r=0,n=1,a,i,o;n<i;++n){for(var l=0,c=0,d=0;l<o;++l){for(var u=e[t[l]],m=u[n][1]||0,h=u[n-1][1]||0,v=(m-h)/2,p=0;p<l;++p){var b=e[t[p]],y=b[n][1]||0,g=b[n-1][1]||0;v+=y-g}c+=m,d+=v*m}a[n-1][1]+=a[n-1][0]=r,c&&(r-=d/c)}a[n-1][1]+=a[n-1][0]=r,_r(e,t)}}function ct(e){return!Number.isFinite(e)||e<0?"—":e<1024?`${Math.round(e)} B`:e<1024*1024?`${(e/1024).toFixed(0)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(0)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function ol(e){return[{id:"24h",label:e("commandCenter.range.last24h","Last 24h"),days:1},{id:"7d",label:e("commandCenter.range.last7d","Last 7 days"),days:7},{id:"30d",label:e("commandCenter.range.last30d","Last 30 days"),days:30},{id:"all",label:e("commandCenter.range.allTime","All time"),days:null}]}function ll(e){return e.days===null?{from:null,to:new Date(Date.now()).toISOString(),preset:e.id}:{from:new Date(Date.now()-e.days*864e5).toISOString().slice(0,10),to:null,preset:e.id}}function nC({value:e,onChange:t,presets:r}){const{t:n}=se("app"),a=r??ol(n),[i,o]=f.useState(!1),[l,c]=f.useState(null),d=f.useRef(null),u=f.useRef(null),m=f.useCallback(()=>{o(!1),d.current?.focus()},[]);f.useEffect(()=>{if(!i)return;const p=y=>{y.key==="Escape"&&m()},b=y=>{u.current&&!u.current.contains(y.target)&&d.current&&!d.current.contains(y.target)&&o(!1)};return document.addEventListener("keydown",p),document.addEventListener("pointerdown",b),()=>{document.removeEventListener("keydown",p),document.removeEventListener("pointerdown",b)}},[i,m]);const h=a.find(p=>p.id===e.preset)?.label??n("commandCenter.range.custom","Custom range"),v=f.useCallback((p,b)=>{if(p&&b&&p>b){c(n("commandCenter.range.invalidRange","Start date must be on or before end date"));return}c(null),t({from:p,to:b,preset:"custom"})},[t,n]);return s.jsxs("div",{className:"cc-date-range",children:[s.jsxs("button",{ref:d,type:"button",className:"btn btn-sm cc-date-range-trigger",onClick:()=>o(p=>!p),"aria-haspopup":"dialog","aria-expanded":i,"data-testid":"cc-date-range-trigger",children:[s.jsx(ij,{size:14}),s.jsx("span",{children:h})]}),i?s.jsxs("div",{ref:u,className:"cc-date-range-popover",role:"dialog","aria-label":n("commandCenter.range.dialogLabel","Select date range"),"data-testid":"cc-date-range-popover",children:[s.jsx("div",{className:"cc-date-range-presets",children:a.map(p=>s.jsx("button",{type:"button",className:`btn btn-sm${e.preset===p.id?" active":""}`,onClick:()=>{t(ll(p)),m()},"data-testid":`cc-date-range-preset-${p.id}`,children:p.label},p.id))}),s.jsxs("div",{className:"cc-date-range-custom",children:[s.jsxs("label",{className:"cc-date-range-field",children:[s.jsx("span",{children:n("commandCenter.range.from","From")}),s.jsx("input",{type:"date",value:e.from??"",onChange:p=>v(p.target.value||null,e.to),"data-testid":"cc-date-range-from"})]}),s.jsxs("label",{className:"cc-date-range-field",children:[s.jsx("span",{children:n("commandCenter.range.to","To")}),s.jsx("input",{type:"date",value:e.to?.slice(0,10)??"",onChange:p=>v(e.from,p.target.value||null),"data-testid":"cc-date-range-to"})]}),l?s.jsx("div",{className:"form-error",role:"alert","data-testid":"cc-date-range-error",children:l}):null]})]}):null]})}function rd(e){return Object.prototype.hasOwnProperty.call(e,"iconProvider")}function aC(e,t){if(!Number.isFinite(e)||e<=0)return 0;const r=Number.isFinite(t)&&t>0?t:1;return Math.max(0,Math.min(100,e/r*100))}function nt({data:e,max:t,ariaLabel:r}){const n=t??e.reduce((a,i)=>i.value>a?i.value:a,0);return s.jsx("ul",{className:"cc-bar-chart",role:"list","aria-label":r,children:e.map((a,i)=>{const o=aC(a.value,n),l=a.valueLabel??String(Number.isFinite(a.value)?a.value:0),c=a.label,d=a.iconProvider&&a.iconProvider!==c?`${a.iconProvider} ${c}`:c,u=rd(a)?d:c;return s.jsxs("li",{className:"cc-bar-row",children:[s.jsxs("span",{className:"cc-bar-label",children:[rd(a)?s.jsx(Sh,{provider:a.iconProvider??"",size:"sm"}):null,s.jsx("span",{className:"cc-bar-label-text",children:a.label})]}),s.jsx("div",{className:"cc-bar-track",children:s.jsx("div",{className:"cc-bar-fill",style:{width:`${o}%`},role:"img","aria-label":`${u}: ${l}`})}),s.jsx("span",{className:"cc-bar-value",children:l})]},`${u}-${a.value}-${i}`)})})}function iC(e){const t=new URLSearchParams;e.from&&t.set("from",e.from),e.to&&t.set("to",e.to);const r=t.toString();return r?`?${r}`:""}function U(e){return Number.isFinite(e)?Math.round(e).toLocaleString():"0"}function nd(e){if(e===null||!Number.isFinite(e))return"";const t=Math.max(0,Math.round(e/1e3)),r=Math.floor(t/3600),n=Math.floor(t%3600/60),a=t%60;return r>0?n>0?`${r}h ${n}m`:`${r}h`:n>0?a>0?`${n}m ${a}s`:`${n}m`:`${a}s`}function Tr(e,t){if(e===null||!Number.isFinite(e)||t&&Math.round(e*100)===0)return"—";const r=`$${e.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}`;return t?`${r}+`:r}function lp(e){return!!(e.from&&e.to&&e.from>e.to)}function sC(e,t){if(!Number.isFinite(e)||e<=0)return 0;const r=Number.isFinite(t)&&t>0?t:1;return Math.max(0,Math.min(100,e/r*100))}function oC({points:e,ariaLabel:t}){const r=e.reduce((n,a)=>a.totalTokens>n?a.totalTokens:n,0);return s.jsxs("div",{className:"cc-token-series",role:"img","aria-label":t,"data-testid":"cc-token-series-chart",children:[s.jsx("div",{className:"cc-token-series-plot",children:e.length===0?s.jsx("div",{className:"cc-token-series-empty","aria-hidden":"true","data-testid":"cc-token-series-empty"}):e.map((n,a)=>{const i=sC(n.totalTokens,r),o=`${n.bucket}: ${U(n.totalTokens)}`;return s.jsx("span",{className:"cc-token-series-bar",style:{height:`${i}%`},"aria-label":o,title:o},a)})}),s.jsxs("div",{className:"cc-token-series-axis","aria-hidden":"true",children:[s.jsx("span",{children:e[0]?.bucket??"—"}),s.jsx("span",{children:e.at(-1)?.bucket??"—"})]})]})}function cp(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(r=cp(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function ve(){for(var e,t,r=0,n="",a=arguments.length;r<a;r++)(e=arguments[r])&&(t=cp(e))&&(n&&(n+=" "),n+=t);return n}var lC=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function yc(e){if(typeof e!="string")return!1;var t=lC;return t.includes(e)}var cC=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],uC=new Set(cC);function up(e){return typeof e!="string"?!1:uC.has(e)}function dp(e){return typeof e=="string"&&e.startsWith("data-")}function kt(e){if(typeof e!="object"||e===null)return{};var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(up(r)||dp(r))&&(t[r]=e[r]);return t}function an(e){if(e==null)return null;if(f.isValidElement(e)&&typeof e.props=="object"&&e.props!==null){var t=e.props;return kt(t)}return typeof e=="object"&&!Array.isArray(e)?kt(e):null}function st(e){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(up(r)||dp(r)||yc(r))&&(t[r]=e[r]);return t}function dC(e){return e==null?null:f.isValidElement(e)?st(e.props):typeof e=="object"&&!Array.isArray(e)?st(e):null}var fC=["children","width","height","viewBox","className","style","title","desc"];function cl(){return cl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},cl.apply(null,arguments)}function mC(e,t){if(e==null)return{};var r,n,a=vC(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function vC(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var gc=f.forwardRef((e,t)=>{var{children:r,width:n,height:a,viewBox:i,className:o,style:l,title:c,desc:d}=e,u=mC(e,fC),m=i||{width:n,height:a,x:0,y:0},h=ve("recharts-surface",o);return f.createElement("svg",cl({},st(u),{className:h,width:n,height:a,style:l,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height),ref:t}),f.createElement("title",null,c),f.createElement("desc",null,d),r)}),hC=["children","className"];function ul(){return ul=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ul.apply(null,arguments)}function pC(e,t){if(e==null)return{};var r,n,a=yC(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function yC(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var ot=f.forwardRef((e,t)=>{var{children:r,className:n}=e,a=pC(e,hC),i=ve("recharts-layer",n);return f.createElement("g",ul({className:i},st(a),{ref:t}),r)}),fp=f.createContext(null),gC=()=>f.useContext(fp),_s={},Ts={},ad;function bC(){return ad||(ad=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r==="__proto__"}e.isUnsafeProperty=t})(Ts)),Ts}var Ms={},id;function mp(){return id||(id=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){switch(typeof r){case"number":case"symbol":return!1;case"string":return r.includes(".")||r.includes("[")||r.includes("]")}}e.isDeepKey=t})(Ms)),Ms}var Is={},sd;function bc(){return sd||(sd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return typeof r=="string"||typeof r=="symbol"?r:Object.is(r?.valueOf?.(),-0)?"-0":String(r)}e.toKey=t})(Is)),Is}var Ds={},Rs={},od;function xC(){return od||(od=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){if(r==null)return"";if(typeof r=="string")return r;if(Array.isArray(r))return r.map(t).join(",");const n=String(r);return n==="0"&&Object.is(Number(r),-0)?"-0":n}e.toString=t})(Rs)),Rs}var ld;function xc(){return ld||(ld=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=xC(),r=bc();function n(a){if(Array.isArray(a))return a.map(r.toKey);if(typeof a=="symbol")return[a];a=t.toString(a);const i=[],o=a.length;if(o===0)return i;let l=0,c="",d="",u=!1;for(a.charCodeAt(0)===46&&(i.push(""),l++);l<o;){const m=a[l];d?m==="\\"&&l+1<o?(l++,c+=a[l]):m===d?d="":c+=m:u?m==='"'||m==="'"?d=m:m==="]"?(u=!1,i.push(c),c=""):c+=m:m==="["?(u=!0,c&&(i.push(c),c="")):m==="."?c&&(i.push(c),c=""):c+=m,l++}return c&&i.push(c),i}e.toPath=n})(Ds)),Ds}var cd;function jc(){return cd||(cd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=bC(),r=mp(),n=bc(),a=xc();function i(l,c,d){if(l==null)return d;switch(typeof c){case"string":{if(t.isUnsafeProperty(c))return d;const u=l[c];return u===void 0?r.isDeepKey(c)?i(l,a.toPath(c),d):d:u}case"number":case"symbol":{typeof c=="number"&&(c=n.toKey(c));const u=l[c];return u===void 0?d:u}default:{if(Array.isArray(c))return o(l,c,d);if(Object.is(c?.valueOf(),-0)?c="-0":c=String(c),t.isUnsafeProperty(c))return d;const u=l[c];return u===void 0?d:u}}}function o(l,c,d){if(c.length===0)return d;let u=l;for(let m=0;m<c.length;m++){if(u==null||t.isUnsafeProperty(c[m]))return d;u=u[c[m]]}return u===void 0?d:u}e.get=i})(_s)),_s}var Ls,ud;function jC(){return ud||(ud=1,Ls=jc().get),Ls}var wC=jC();const Mr=mn(wC);var CC=4;function dr(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:CC,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function _e(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return e.reduce((a,i,o)=>{var l=r[o-1];return typeof l=="string"?a+l+i:l!==void 0?a+dr(l)+i:a+i},"")}var rt=e=>e===0?0:e>0?1:-1,Zt=e=>typeof e=="number"&&e!=+e,dl=e=>typeof e=="string"&&e.indexOf("%")===e.length-1,ee=e=>(typeof e=="number"||e instanceof Number)&&!Zt(e),Bt=e=>ee(e)||typeof e=="string",kC=0,Kn=e=>{var t=++kC;return"".concat(e||"").concat(t)},ht=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!ee(t)&&typeof t!="string")return n;var i;if(dl(t)){if(r==null)return n;var o=t.indexOf("%");i=r*parseFloat(t.slice(0,o))/100}else i=+t;return Zt(i)&&(i=n),a&&r!=null&&i>r&&(i=r),i},vp=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;n<t;n++)if(!r[String(e[n])])r[String(e[n])]=!0;else return!0;return!1};function tt(e,t,r){return ee(e)&&ee(t)?dr(e+r*(t-e)):t}function hp(e,t,r){if(!(!e||!e.length))return e.find(n=>n&&(typeof t=="function"?t(n):Mr(n,t))===r)}var ze=e=>e===null||typeof e>"u",ea=e=>ze(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function ut(e){return e!=null}function ta(){}var SC=["type","size","sizeType"];function fl(){return fl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},fl.apply(null,arguments)}function dd(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function fd(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?dd(Object(r),!0).forEach(function(n){NC(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):dd(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function NC(e,t,r){return(t=PC(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function PC(e){var t=AC(e,"string");return typeof t=="symbol"?t:t+""}function AC(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function OC(e,t){if(e==null)return{};var r,n,a=EC(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function EC(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var pp={symbolCircle:pc,symbolCross:Fw,symbolDiamond:zw,symbolSquare:Kw,symbolStar:Ww,symbolTriangle:Hw,symbolWye:Xw},_C=Math.PI/180,TC=e=>{var t="symbol".concat(ea(e));return pp[t]||pc},MC=(e,t,r)=>{if(t==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var n=18*_C;return 1.25*e*e*(Math.tan(n)-Math.tan(n*2)*Math.tan(n)**2)}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},IC=(e,t)=>{pp["symbol".concat(ea(e))]=t},wc=e=>{var{type:t="circle",size:r=64,sizeType:n="area"}=e,a=OC(e,SC),i=fd(fd({},a),{},{type:t,size:r,sizeType:n}),o="circle";typeof t=="string"&&(o=t);var l=()=>{var h=TC(o),v=Yw().type(h).size(MC(r,n,o)),p=v();if(p!==null)return p},{className:c,cx:d,cy:u}=i,m=st(i);return ee(d)&&ee(u)&&ee(r)?f.createElement("path",fl({},m,{className:ve("recharts-symbols",c),transform:"translate(".concat(d,", ").concat(u,")"),d:l()})):null};wc.registerSymbol=IC;var yp=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,Cc=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if(f.isValidElement(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(a=>{yc(a)&&typeof r[a]=="function"&&(n[a]=(i=>r[a](r,i)))}),n},DC=(e,t,r)=>n=>(e(t,r,n),null),kc=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(a=>{var i=e[a];yc(a)&&typeof i=="function"&&(n||(n={}),n[a]=DC(i,t,r))}),n};function md(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function RC(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?md(Object(r),!0).forEach(function(n){LC(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):md(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function LC(e,t,r){return(t=$C(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $C(e){var t=FC(e,"string");return typeof t=="symbol"?t:t+""}function FC(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ke(e,t){var r=RC({},e),n=t,a=Object.keys(t),i=a.reduce((o,l)=>(o[l]===void 0&&n[l]!==void 0&&(o[l]=n[l]),o),r);return i}function Xa(){return Xa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Xa.apply(null,arguments)}function vd(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function gp(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?vd(Object(r),!0).forEach(function(n){BC(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):vd(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function BC(e,t,r){return(t=zC(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function zC(e){var t=KC(e,"string");return typeof t=="symbol"?t:t+""}function KC(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var wt=32,VC={align:"center",iconSize:14,inactiveColor:"#ccc",layout:"horizontal",verticalAlign:"middle",labelStyle:{}};function UC(e){if(typeof e=="object"&&e!==null&&"strokeDasharray"in e)return String(e.strokeDasharray)}function qC(e){var{data:t,iconType:r,inactiveColor:n}=e,a=wt/2,i=wt/6,o=wt/3,l=t.inactive?n:t.color,c=r??t.type;if(c==="none")return null;if(c==="plainline")return f.createElement("line",{strokeWidth:4,fill:"none",stroke:l,strokeDasharray:UC(t.payload),x1:0,y1:a,x2:wt,y2:a,className:"recharts-legend-icon"});if(c==="line")return f.createElement("path",{strokeWidth:4,fill:"none",stroke:l,d:"M0,".concat(a,"h").concat(o,`
|
|
51
|
+
*/const Cw=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],kw=Vt("wifi",Cw);function Sw(e=Ga){if(e===Ga)return qh;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function qh(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}function Wh(e,t,r=0,n=1/0,a){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(a=a===void 0?qh:Sw(a);n>r;){if(n-r>600){const c=n-r+1,d=t-r+1,u=Math.log(c),m=.5*Math.exp(2*u/3),h=.5*Math.sqrt(u*m*(c-m)/c)*(d-c/2<0?-1:1),v=Math.max(r,Math.floor(t-d*m/c+h)),p=Math.min(n,Math.floor(t+(c-d)*m/c+h));Wh(e,t,v,p,a)}const i=e[t];let o=r,l=n;for(kn(e,r,t),a(e[n],i)>0&&kn(e,r,n);o<l;){for(kn(e,o,l),++o,--l;a(e[o],i)<0;)++o;for(;a(e[l],i)>0;)--l}a(e[r],i)===0?kn(e,r,l):(++l,kn(e,l,n)),l<=t&&(r=l+1),t<=l&&(n=l-1)}return e}function kn(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function Nw(e,t,r){if(e=Float64Array.from(P0(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return Gu(e);if(t>=1)return Xu(e);var n,a=(n-1)*t,i=Math.floor(a),o=Xu(Wh(e,i).subarray(0,i+1)),l=Gu(e.subarray(i+1));return o+(l-o)*(a-i)}}function Pw(e,t,r=A0){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,a=(n-1)*t,i=Math.floor(a),o=+r(e[i],i,e),l=+r(e[i+1],i+1,e);return o+(l-o)*(a-i)}}function Hh(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,al),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return Hh(e).unknown(t)},e=arguments.length?Array.from(e,al):[0,1],Br(r)}function Yu(e){return Math.log(e)}function Zu(e){return Math.exp(e)}function Aw(e){return-Math.log(-e)}function Ow(e){return-Math.exp(-e)}function Ew(e){return isFinite(e)?+("1e"+e):e<0?0:e}function _w(e){return e===10?Ew:e===Math.E?Math.exp:t=>Math.pow(e,t)}function Tw(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function Ju(e){return(t,r)=>-e(-t,r)}function dc(e){const t=e(Yu,Zu),r=t.domain;let n=10,a,i;function o(){return a=Tw(n),i=_w(n),r()[0]<0?(a=Ju(a),i=Ju(i),e(Aw,Ow)):e(Yu,Zu),t}return t.base=function(l){return arguments.length?(n=+l,o()):n},t.domain=function(l){return arguments.length?(r(l),o()):r()},t.ticks=l=>{const c=r();let d=c[0],u=c[c.length-1];const m=u<d;m&&([d,u]=[u,d]);let h=a(d),v=a(u),p,b;const y=l==null?10:+l;let g=[];if(!(n%1)&&v-h<y){if(h=Math.floor(h),v=Math.ceil(v),d>0){for(;h<=v;++h)for(p=1;p<n;++p)if(b=h<0?p/i(-h):p*i(h),!(b<d)){if(b>u)break;g.push(b)}}else for(;h<=v;++h)for(p=n-1;p>=1;--p)if(b=h>0?p/i(-h):p*i(h),!(b<d)){if(b>u)break;g.push(b)}g.length*2<y&&(g=Hu(d,u,y))}else g=Hu(h,v,Math.min(v-h,y)).map(i);return m?g.reverse():g},t.tickFormat=(l,c)=>{if(l==null&&(l=10),c==null&&(c=n===10?"s":","),typeof c!="function"&&(!(n%1)&&(c=q0(c)).precision==null&&(c.trim=!0),c=W0(c)),l===1/0)return c;const d=Math.max(1,n*l/t.ticks().length);return u=>{let m=u/i(Math.round(a(u)));return m*n<n-.5&&(m*=n),m<=d?c(u):""}},t.nice=()=>r(T0(r(),{floor:l=>i(Math.floor(a(l))),ceil:l=>i(Math.ceil(a(l)))})),t}function Gh(){const e=dc(lc()).domain([1,10]);return e.copy=()=>cc(e,Gh()).base(e.base()),pr.apply(e,arguments),e}function Qu(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function ed(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function fc(e){var t=1,r=e(Qu(t),ed(t));return r.constant=function(n){return arguments.length?e(Qu(t=+n),ed(t)):t},Br(r)}function Xh(){var e=fc(lc());return e.copy=function(){return cc(e,Xh()).constant(e.constant())},pr.apply(e,arguments)}function td(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Mw(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Iw(e){return e<0?-e*e:e*e}function mc(e){var t=e(Ht,Ht),r=1;function n(){return r===1?e(Ht,Ht):r===.5?e(Mw,Iw):e(td(r),td(1/r))}return t.exponent=function(a){return arguments.length?(r=+a,n()):r},Br(t)}function vc(){var e=mc(lc());return e.copy=function(){return cc(e,vc()).exponent(e.exponent())},pr.apply(e,arguments),e}function Dw(){return vc.apply(null,arguments).exponent(.5)}function rd(e){return Math.sign(e)*e*e}function Rw(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function Yh(){var e=O0(),t=[0,1],r=!1,n;function a(i){var o=Rw(e(i));return isNaN(o)?n:r?Math.round(o):o}return a.invert=function(i){return e.invert(rd(i))},a.domain=function(i){return arguments.length?(e.domain(i),a):e.domain()},a.range=function(i){return arguments.length?(e.range((t=Array.from(i,al)).map(rd)),a):t.slice()},a.rangeRound=function(i){return a.range(i).round(!0)},a.round=function(i){return arguments.length?(r=!!i,a):r},a.clamp=function(i){return arguments.length?(e.clamp(i),a):e.clamp()},a.unknown=function(i){return arguments.length?(n=i,a):n},a.copy=function(){return Yh(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},pr.apply(a,arguments),Br(a)}function Zh(){var e=[],t=[],r=[],n;function a(){var o=0,l=Math.max(1,t.length);for(r=new Array(l-1);++o<l;)r[o-1]=Pw(e,o/l);return i}function i(o){return o==null||isNaN(o=+o)?n:t[$i(r,o)]}return i.invertExtent=function(o){var l=t.indexOf(o);return l<0?[NaN,NaN]:[l>0?r[l-1]:e[0],l<r.length?r[l]:e[e.length-1]]},i.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let l of o)l!=null&&!isNaN(l=+l)&&e.push(l);return e.sort(Ga),a()},i.range=function(o){return arguments.length?(t=Array.from(o),a()):t.slice()},i.unknown=function(o){return arguments.length?(n=o,i):n},i.quantiles=function(){return r.slice()},i.copy=function(){return Zh().domain(e).range(t).unknown(n)},pr.apply(i,arguments)}function Jh(){var e=0,t=1,r=1,n=[.5],a=[0,1],i;function o(c){return c!=null&&c<=c?a[$i(n,c,0,r)]:i}function l(){var c=-1;for(n=new Array(r);++c<r;)n[c]=((c+1)*t-(c-r)*e)/(r+1);return o}return o.domain=function(c){return arguments.length?([e,t]=c,e=+e,t=+t,l()):[e,t]},o.range=function(c){return arguments.length?(r=(a=Array.from(c)).length-1,l()):a.slice()},o.invertExtent=function(c){var d=a.indexOf(c);return d<0?[NaN,NaN]:d<1?[e,n[0]]:d>=r?[n[r-1],t]:[n[d-1],n[d]]},o.unknown=function(c){return arguments.length&&(i=c),o},o.thresholds=function(){return n.slice()},o.copy=function(){return Jh().domain([e,t]).range(a).unknown(i)},pr.apply(Br(o),arguments)}function Qh(){var e=[.5],t=[0,1],r,n=1;function a(i){return i!=null&&i<=i?t[$i(e,i,0,n)]:r}return a.domain=function(i){return arguments.length?(e=Array.from(i),n=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(i){return arguments.length?(t=Array.from(i),n=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(i){var o=t.indexOf(i);return[e[o-1],e[o]]},a.unknown=function(i){return arguments.length?(r=i,a):r},a.copy=function(){return Qh().domain(e).range(t).unknown(r)},pr.apply(a,arguments)}function Lw(){return pr.apply(M0(V0,K0,z0,B0,F0,$0,L0,R0,D0,I0).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Fi(){var e=0,t=1,r,n,a,i,o=Ht,l=!1,c;function d(m){return m==null||isNaN(m=+m)?c:o(a===0?.5:(m=(i(m)-r)*a,l?Math.max(0,Math.min(1,m)):m))}d.domain=function(m){return arguments.length?([e,t]=m,r=i(e=+e),n=i(t=+t),a=r===n?0:1/(n-r),d):[e,t]},d.clamp=function(m){return arguments.length?(l=!!m,d):l},d.interpolator=function(m){return arguments.length?(o=m,d):o};function u(m){return function(h){var v,p;return arguments.length?([v,p]=h,o=m(v,p),d):[o(0),o(1)]}}return d.range=u($h),d.rangeRound=u(Fh),d.unknown=function(m){return arguments.length?(c=m,d):c},function(m){return i=m,r=m(e),n=m(t),a=r===n?0:1/(n-r),d}}function yr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function ep(){var e=Br(Fi()(Ht));return e.copy=function(){return yr(e,ep())},Qt.apply(e,arguments)}function tp(){var e=dc(Fi()).domain([1,10]);return e.copy=function(){return yr(e,tp()).base(e.base())},Qt.apply(e,arguments)}function rp(){var e=fc(Fi());return e.copy=function(){return yr(e,rp()).constant(e.constant())},Qt.apply(e,arguments)}function hc(){var e=mc(Fi());return e.copy=function(){return yr(e,hc()).exponent(e.exponent())},Qt.apply(e,arguments)}function $w(){return hc.apply(null,arguments).exponent(.5)}function np(){var e=[],t=Ht;function r(n){if(n!=null&&!isNaN(n=+n))return t(($i(e,n,1)-1)/(e.length-1))}return r.domain=function(n){if(!arguments.length)return e.slice();e=[];for(let a of n)a!=null&&!isNaN(a=+a)&&e.push(a);return e.sort(Ga),r},r.interpolator=function(n){return arguments.length?(t=n,r):t},r.range=function(){return e.map((n,a)=>t(a/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(a,i)=>Nw(e,i/n))},r.copy=function(){return np(t).domain(e)},Qt.apply(r,arguments)}function Bi(){var e=0,t=.5,r=1,n=1,a,i,o,l,c,d=Ht,u,m=!1,h;function v(b){return isNaN(b=+b)?h:(b=.5+((b=+u(b))-i)*(n*b<n*i?l:c),d(m?Math.max(0,Math.min(1,b)):b))}v.domain=function(b){return arguments.length?([e,t,r]=b,a=u(e=+e),i=u(t=+t),o=u(r=+r),l=a===i?0:.5/(i-a),c=i===o?0:.5/(o-i),n=i<a?-1:1,v):[e,t,r]},v.clamp=function(b){return arguments.length?(m=!!b,v):m},v.interpolator=function(b){return arguments.length?(d=b,v):d};function p(b){return function(y){var g,j,x;return arguments.length?([g,j,x]=y,d=c0(b,[g,j,x]),v):[d(0),d(.5),d(1)]}}return v.range=p($h),v.rangeRound=p(Fh),v.unknown=function(b){return arguments.length?(h=b,v):h},function(b){return u=b,a=b(e),i=b(t),o=b(r),l=a===i?0:.5/(i-a),c=i===o?0:.5/(o-i),n=i<a?-1:1,v}}function ap(){var e=Br(Bi()(Ht));return e.copy=function(){return yr(e,ap())},Qt.apply(e,arguments)}function ip(){var e=dc(Bi()).domain([.1,1,10]);return e.copy=function(){return yr(e,ip()).base(e.base())},Qt.apply(e,arguments)}function sp(){var e=fc(Bi());return e.copy=function(){return yr(e,sp()).constant(e.constant())},Qt.apply(e,arguments)}function pc(){var e=mc(Bi());return e.copy=function(){return yr(e,pc()).exponent(e.exponent())},Qt.apply(e,arguments)}function Fw(){return pc.apply(null,arguments).exponent(.5)}function ba(e,t,r){var n=null,a=Me(!0),i=null,o=oc,l=null,c=Bh(d);e=typeof e=="function"?e:e===void 0?d0:Me(+e),t=typeof t=="function"?t:t===void 0?Me(0):Me(+t),r=typeof r=="function"?r:r===void 0?f0:Me(+r);function d(m){var h,v,p,b=(m=zh(m)).length,y,g=!1,j,x=new Array(b),C=new Array(b);for(i==null&&(l=o(j=c())),h=0;h<=b;++h){if(!(h<b&&a(y=m[h],h,m))===g)if(g=!g)v=h,l.areaStart(),l.lineStart();else{for(l.lineEnd(),l.lineStart(),p=h-1;p>=v;--p)l.point(x[p],C[p]);l.lineEnd(),l.areaEnd()}g&&(x[h]=+e(y,h,m),C[h]=+t(y,h,m),l.point(n?+n(y,h,m):x[h],r?+r(y,h,m):C[h]))}if(j)return l=null,j+""||null}function u(){return Kh().defined(a).curve(o).context(i)}return d.x=function(m){return arguments.length?(e=typeof m=="function"?m:Me(+m),n=null,d):e},d.x0=function(m){return arguments.length?(e=typeof m=="function"?m:Me(+m),d):e},d.x1=function(m){return arguments.length?(n=m==null?null:typeof m=="function"?m:Me(+m),d):n},d.y=function(m){return arguments.length?(t=typeof m=="function"?m:Me(+m),r=null,d):t},d.y0=function(m){return arguments.length?(t=typeof m=="function"?m:Me(+m),d):t},d.y1=function(m){return arguments.length?(r=m==null?null:typeof m=="function"?m:Me(+m),d):r},d.lineX0=d.lineY0=function(){return u().x(e).y(t)},d.lineY1=function(){return u().x(e).y(r)},d.lineX1=function(){return u().x(n).y(t)},d.defined=function(m){return arguments.length?(a=typeof m=="function"?m:Me(!!m),d):a},d.curve=function(m){return arguments.length?(o=m,i!=null&&(l=o(i)),d):o},d.context=function(m){return arguments.length?(m==null?i=l=null:l=o(i=m),d):i},d}const yc={draw(e,t){const r=_t(t/nl);e.moveTo(r,0),e.arc(0,0,r,0,Li)}},Bw={draw(e,t){const r=_t(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},op=_t(1/3),zw=op*2,Kw={draw(e,t){const r=_t(t/zw),n=r*op;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},Vw={draw(e,t){const r=_t(t),n=-r/2;e.rect(n,n,r,r)}},Uw=.8908130915292852,lp=Ha(nl/10)/Ha(7*nl/10),qw=Ha(Li/10)*lp,Ww=-Vh(Li/10)*lp,Hw={draw(e,t){const r=_t(t*Uw),n=qw*r,a=Ww*r;e.moveTo(0,-r),e.lineTo(n,a);for(let i=1;i<5;++i){const o=Li*i/5,l=Vh(o),c=Ha(o);e.lineTo(c*r,-l*r),e.lineTo(l*n-c*a,c*n+l*a)}e.closePath()}},Es=_t(3),Gw={draw(e,t){const r=-_t(t/(Es*3));e.moveTo(0,r*2),e.lineTo(-Es*r,-r),e.lineTo(Es*r,-r),e.closePath()}},bt=-.5,xt=_t(3)/2,sl=1/_t(12),Xw=(sl/2+1)*3,Yw={draw(e,t){const r=_t(t/Xw),n=r/2,a=r*sl,i=n,o=r*sl+r,l=-i,c=o;e.moveTo(n,a),e.lineTo(i,o),e.lineTo(l,c),e.lineTo(bt*n-xt*a,xt*n+bt*a),e.lineTo(bt*i-xt*o,xt*i+bt*o),e.lineTo(bt*l-xt*c,xt*l+bt*c),e.lineTo(bt*n+xt*a,bt*a-xt*n),e.lineTo(bt*i+xt*o,bt*o-xt*i),e.lineTo(bt*l+xt*c,bt*c-xt*l),e.closePath()}};function Zw(e,t){let r=null,n=Bh(a);e=typeof e=="function"?e:Me(e||yc),t=typeof t=="function"?t:Me(t===void 0?64:+t);function a(){let i;if(r||(r=i=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),i)return r=null,i+""||null}return a.type=function(i){return arguments.length?(e=typeof i=="function"?i:Me(i),a):e},a.size=function(i){return arguments.length?(t=typeof i=="function"?i:Me(+i),a):t},a.context=function(i){return arguments.length?(r=i??null,a):r},a}function _r(e,t){if((o=e.length)>1)for(var r=1,n,a,i=e[t[0]],o,l=i.length;r<o;++r)for(a=i,i=e[t[r]],n=0;n<l;++n)i[n][1]+=i[n][0]=isNaN(a[n][1])?a[n][0]:a[n][1]}function ol(e){for(var t=e.length,r=new Array(t);--t>=0;)r[t]=t;return r}function Jw(e,t){return e[t]}function Qw(e){const t=[];return t.key=e,t}function eC(){var e=Me([]),t=ol,r=_r,n=Jw;function a(i){var o=Array.from(e.apply(this,arguments),Qw),l,c=o.length,d=-1,u;for(const m of i)for(l=0,++d;l<c;++l)(o[l][d]=[0,+n(m,o[l].key,d,i)]).data=m;for(l=0,u=zh(t(o));l<c;++l)o[u[l]].index=l;return r(o,u),o}return a.keys=function(i){return arguments.length?(e=typeof i=="function"?i:Me(Array.from(i)),a):e},a.value=function(i){return arguments.length?(n=typeof i=="function"?i:Me(+i),a):n},a.order=function(i){return arguments.length?(t=i==null?ol:typeof i=="function"?i:Me(Array.from(i)),a):t},a.offset=function(i){return arguments.length?(r=i??_r,a):r},a}function tC(e,t){if((n=e.length)>0){for(var r,n,a=0,i=e[0].length,o;a<i;++a){for(o=r=0;r<n;++r)o+=e[r][a][1]||0;if(o)for(r=0;r<n;++r)e[r][a][1]/=o}_r(e,t)}}function rC(e,t){if((a=e.length)>0){for(var r=0,n=e[t[0]],a,i=n.length;r<i;++r){for(var o=0,l=0;o<a;++o)l+=e[o][r][1]||0;n[r][1]+=n[r][0]=-l/2}_r(e,t)}}function nC(e,t){if(!(!((o=e.length)>0)||!((i=(a=e[t[0]]).length)>0))){for(var r=0,n=1,a,i,o;n<i;++n){for(var l=0,c=0,d=0;l<o;++l){for(var u=e[t[l]],m=u[n][1]||0,h=u[n-1][1]||0,v=(m-h)/2,p=0;p<l;++p){var b=e[t[p]],y=b[n][1]||0,g=b[n-1][1]||0;v+=y-g}c+=m,d+=v*m}a[n-1][1]+=a[n-1][0]=r,c&&(r-=d/c)}a[n-1][1]+=a[n-1][0]=r,_r(e,t)}}function ct(e){return!Number.isFinite(e)||e<0?"—":e<1024?`${Math.round(e)} B`:e<1024*1024?`${(e/1024).toFixed(0)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(0)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function ll(e){return[{id:"24h",label:e("commandCenter.range.last24h","Last 24h"),days:1},{id:"7d",label:e("commandCenter.range.last7d","Last 7 days"),days:7},{id:"30d",label:e("commandCenter.range.last30d","Last 30 days"),days:30},{id:"all",label:e("commandCenter.range.allTime","All time"),days:null}]}function cl(e){return e.days===null?{from:null,to:new Date(Date.now()).toISOString(),preset:e.id}:{from:new Date(Date.now()-e.days*864e5).toISOString().slice(0,10),to:null,preset:e.id}}function aC({value:e,onChange:t,presets:r}){const{t:n}=se("app"),a=r??ll(n),[i,o]=f.useState(!1),[l,c]=f.useState(null),d=f.useRef(null),u=f.useRef(null),m=f.useCallback(()=>{o(!1),d.current?.focus()},[]);f.useEffect(()=>{if(!i)return;const p=y=>{y.key==="Escape"&&m()},b=y=>{u.current&&!u.current.contains(y.target)&&d.current&&!d.current.contains(y.target)&&o(!1)};return document.addEventListener("keydown",p),document.addEventListener("pointerdown",b),()=>{document.removeEventListener("keydown",p),document.removeEventListener("pointerdown",b)}},[i,m]);const h=a.find(p=>p.id===e.preset)?.label??n("commandCenter.range.custom","Custom range"),v=f.useCallback((p,b)=>{if(p&&b&&p>b){c(n("commandCenter.range.invalidRange","Start date must be on or before end date"));return}c(null),t({from:p,to:b,preset:"custom"})},[t,n]);return s.jsxs("div",{className:"cc-date-range",children:[s.jsxs("button",{ref:d,type:"button",className:"btn btn-sm cc-date-range-trigger",onClick:()=>o(p=>!p),"aria-haspopup":"dialog","aria-expanded":i,"data-testid":"cc-date-range-trigger",children:[s.jsx(sj,{size:14}),s.jsx("span",{children:h})]}),i?s.jsxs("div",{ref:u,className:"cc-date-range-popover",role:"dialog","aria-label":n("commandCenter.range.dialogLabel","Select date range"),"data-testid":"cc-date-range-popover",children:[s.jsx("div",{className:"cc-date-range-presets",children:a.map(p=>s.jsx("button",{type:"button",className:`btn btn-sm${e.preset===p.id?" active":""}`,onClick:()=>{t(cl(p)),m()},"data-testid":`cc-date-range-preset-${p.id}`,children:p.label},p.id))}),s.jsxs("div",{className:"cc-date-range-custom",children:[s.jsxs("label",{className:"cc-date-range-field",children:[s.jsx("span",{children:n("commandCenter.range.from","From")}),s.jsx("input",{type:"date",value:e.from??"",onChange:p=>v(p.target.value||null,e.to),"data-testid":"cc-date-range-from"})]}),s.jsxs("label",{className:"cc-date-range-field",children:[s.jsx("span",{children:n("commandCenter.range.to","To")}),s.jsx("input",{type:"date",value:e.to?.slice(0,10)??"",onChange:p=>v(e.from,p.target.value||null),"data-testid":"cc-date-range-to"})]}),l?s.jsx("div",{className:"form-error",role:"alert","data-testid":"cc-date-range-error",children:l}):null]})]}):null]})}function nd(e){return Object.prototype.hasOwnProperty.call(e,"iconProvider")}function iC(e,t){if(!Number.isFinite(e)||e<=0)return 0;const r=Number.isFinite(t)&&t>0?t:1;return Math.max(0,Math.min(100,e/r*100))}function nt({data:e,max:t,ariaLabel:r}){const n=t??e.reduce((a,i)=>i.value>a?i.value:a,0);return s.jsx("ul",{className:"cc-bar-chart",role:"list","aria-label":r,children:e.map((a,i)=>{const o=iC(a.value,n),l=a.valueLabel??String(Number.isFinite(a.value)?a.value:0),c=a.label,d=a.iconProvider&&a.iconProvider!==c?`${a.iconProvider} ${c}`:c,u=nd(a)?d:c;return s.jsxs("li",{className:"cc-bar-row",children:[s.jsxs("span",{className:"cc-bar-label",children:[nd(a)?s.jsx(Nh,{provider:a.iconProvider??"",size:"sm"}):null,s.jsx("span",{className:"cc-bar-label-text",children:a.label})]}),s.jsx("div",{className:"cc-bar-track",children:s.jsx("div",{className:"cc-bar-fill",style:{width:`${o}%`},role:"img","aria-label":`${u}: ${l}`})}),s.jsx("span",{className:"cc-bar-value",children:l})]},`${u}-${a.value}-${i}`)})})}function sC(e){const t=new URLSearchParams;e.from&&t.set("from",e.from),e.to&&t.set("to",e.to);const r=t.toString();return r?`?${r}`:""}function U(e){return Number.isFinite(e)?Math.round(e).toLocaleString():"0"}function ad(e){if(e===null||!Number.isFinite(e))return"";const t=Math.max(0,Math.round(e/1e3)),r=Math.floor(t/3600),n=Math.floor(t%3600/60),a=t%60;return r>0?n>0?`${r}h ${n}m`:`${r}h`:n>0?a>0?`${n}m ${a}s`:`${n}m`:`${a}s`}function Tr(e,t){if(e===null||!Number.isFinite(e)||t&&Math.round(e*100)===0)return"—";const r=`$${e.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}`;return t?`${r}+`:r}function cp(e){return!!(e.from&&e.to&&e.from>e.to)}function oC(e,t){if(!Number.isFinite(e)||e<=0)return 0;const r=Number.isFinite(t)&&t>0?t:1;return Math.max(0,Math.min(100,e/r*100))}function lC({points:e,ariaLabel:t}){const r=e.reduce((n,a)=>a.totalTokens>n?a.totalTokens:n,0);return s.jsxs("div",{className:"cc-token-series",role:"img","aria-label":t,"data-testid":"cc-token-series-chart",children:[s.jsx("div",{className:"cc-token-series-plot",children:e.length===0?s.jsx("div",{className:"cc-token-series-empty","aria-hidden":"true","data-testid":"cc-token-series-empty"}):e.map((n,a)=>{const i=oC(n.totalTokens,r),o=`${n.bucket}: ${U(n.totalTokens)}`;return s.jsx("span",{className:"cc-token-series-bar",style:{height:`${i}%`},"aria-label":o,title:o},a)})}),s.jsxs("div",{className:"cc-token-series-axis","aria-hidden":"true",children:[s.jsx("span",{children:e[0]?.bucket??"—"}),s.jsx("span",{children:e.at(-1)?.bucket??"—"})]})]})}function up(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(r=up(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function ve(){for(var e,t,r=0,n="",a=arguments.length;r<a;r++)(e=arguments[r])&&(t=up(e))&&(n&&(n+=" "),n+=t);return n}var cC=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function gc(e){if(typeof e!="string")return!1;var t=cC;return t.includes(e)}var uC=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],dC=new Set(uC);function dp(e){return typeof e!="string"?!1:dC.has(e)}function fp(e){return typeof e=="string"&&e.startsWith("data-")}function kt(e){if(typeof e!="object"||e===null)return{};var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(dp(r)||fp(r))&&(t[r]=e[r]);return t}function an(e){if(e==null)return null;if(f.isValidElement(e)&&typeof e.props=="object"&&e.props!==null){var t=e.props;return kt(t)}return typeof e=="object"&&!Array.isArray(e)?kt(e):null}function st(e){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(dp(r)||fp(r)||gc(r))&&(t[r]=e[r]);return t}function fC(e){return e==null?null:f.isValidElement(e)?st(e.props):typeof e=="object"&&!Array.isArray(e)?st(e):null}var mC=["children","width","height","viewBox","className","style","title","desc"];function ul(){return ul=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ul.apply(null,arguments)}function vC(e,t){if(e==null)return{};var r,n,a=hC(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function hC(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var bc=f.forwardRef((e,t)=>{var{children:r,width:n,height:a,viewBox:i,className:o,style:l,title:c,desc:d}=e,u=vC(e,mC),m=i||{width:n,height:a,x:0,y:0},h=ve("recharts-surface",o);return f.createElement("svg",ul({},st(u),{className:h,width:n,height:a,style:l,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height),ref:t}),f.createElement("title",null,c),f.createElement("desc",null,d),r)}),pC=["children","className"];function dl(){return dl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},dl.apply(null,arguments)}function yC(e,t){if(e==null)return{};var r,n,a=gC(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function gC(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var ot=f.forwardRef((e,t)=>{var{children:r,className:n}=e,a=yC(e,pC),i=ve("recharts-layer",n);return f.createElement("g",dl({className:i},st(a),{ref:t}),r)}),mp=f.createContext(null),bC=()=>f.useContext(mp),_s={},Ts={},id;function xC(){return id||(id=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r==="__proto__"}e.isUnsafeProperty=t})(Ts)),Ts}var Ms={},sd;function vp(){return sd||(sd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){switch(typeof r){case"number":case"symbol":return!1;case"string":return r.includes(".")||r.includes("[")||r.includes("]")}}e.isDeepKey=t})(Ms)),Ms}var Is={},od;function xc(){return od||(od=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return typeof r=="string"||typeof r=="symbol"?r:Object.is(r?.valueOf?.(),-0)?"-0":String(r)}e.toKey=t})(Is)),Is}var Ds={},Rs={},ld;function jC(){return ld||(ld=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){if(r==null)return"";if(typeof r=="string")return r;if(Array.isArray(r))return r.map(t).join(",");const n=String(r);return n==="0"&&Object.is(Number(r),-0)?"-0":n}e.toString=t})(Rs)),Rs}var cd;function jc(){return cd||(cd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=jC(),r=xc();function n(a){if(Array.isArray(a))return a.map(r.toKey);if(typeof a=="symbol")return[a];a=t.toString(a);const i=[],o=a.length;if(o===0)return i;let l=0,c="",d="",u=!1;for(a.charCodeAt(0)===46&&(i.push(""),l++);l<o;){const m=a[l];d?m==="\\"&&l+1<o?(l++,c+=a[l]):m===d?d="":c+=m:u?m==='"'||m==="'"?d=m:m==="]"?(u=!1,i.push(c),c=""):c+=m:m==="["?(u=!0,c&&(i.push(c),c="")):m==="."?c&&(i.push(c),c=""):c+=m,l++}return c&&i.push(c),i}e.toPath=n})(Ds)),Ds}var ud;function wc(){return ud||(ud=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=xC(),r=vp(),n=xc(),a=jc();function i(l,c,d){if(l==null)return d;switch(typeof c){case"string":{if(t.isUnsafeProperty(c))return d;const u=l[c];return u===void 0?r.isDeepKey(c)?i(l,a.toPath(c),d):d:u}case"number":case"symbol":{typeof c=="number"&&(c=n.toKey(c));const u=l[c];return u===void 0?d:u}default:{if(Array.isArray(c))return o(l,c,d);if(Object.is(c?.valueOf(),-0)?c="-0":c=String(c),t.isUnsafeProperty(c))return d;const u=l[c];return u===void 0?d:u}}}function o(l,c,d){if(c.length===0)return d;let u=l;for(let m=0;m<c.length;m++){if(u==null||t.isUnsafeProperty(c[m]))return d;u=u[c[m]]}return u===void 0?d:u}e.get=i})(_s)),_s}var Ls,dd;function wC(){return dd||(dd=1,Ls=wc().get),Ls}var CC=wC();const Mr=mn(CC);var kC=4;function dr(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:kC,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function _e(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return e.reduce((a,i,o)=>{var l=r[o-1];return typeof l=="string"?a+l+i:l!==void 0?a+dr(l)+i:a+i},"")}var rt=e=>e===0?0:e>0?1:-1,Zt=e=>typeof e=="number"&&e!=+e,fl=e=>typeof e=="string"&&e.indexOf("%")===e.length-1,ee=e=>(typeof e=="number"||e instanceof Number)&&!Zt(e),Bt=e=>ee(e)||typeof e=="string",SC=0,Kn=e=>{var t=++SC;return"".concat(e||"").concat(t)},ht=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!ee(t)&&typeof t!="string")return n;var i;if(fl(t)){if(r==null)return n;var o=t.indexOf("%");i=r*parseFloat(t.slice(0,o))/100}else i=+t;return Zt(i)&&(i=n),a&&r!=null&&i>r&&(i=r),i},hp=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;n<t;n++)if(!r[String(e[n])])r[String(e[n])]=!0;else return!0;return!1};function tt(e,t,r){return ee(e)&&ee(t)?dr(e+r*(t-e)):t}function pp(e,t,r){if(!(!e||!e.length))return e.find(n=>n&&(typeof t=="function"?t(n):Mr(n,t))===r)}var ze=e=>e===null||typeof e>"u",ea=e=>ze(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function ut(e){return e!=null}function ta(){}var NC=["type","size","sizeType"];function ml(){return ml=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ml.apply(null,arguments)}function fd(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function md(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?fd(Object(r),!0).forEach(function(n){PC(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):fd(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function PC(e,t,r){return(t=AC(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function AC(e){var t=OC(e,"string");return typeof t=="symbol"?t:t+""}function OC(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function EC(e,t){if(e==null)return{};var r,n,a=_C(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function _C(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var yp={symbolCircle:yc,symbolCross:Bw,symbolDiamond:Kw,symbolSquare:Vw,symbolStar:Hw,symbolTriangle:Gw,symbolWye:Yw},TC=Math.PI/180,MC=e=>{var t="symbol".concat(ea(e));return yp[t]||yc},IC=(e,t,r)=>{if(t==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var n=18*TC;return 1.25*e*e*(Math.tan(n)-Math.tan(n*2)*Math.tan(n)**2)}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},DC=(e,t)=>{yp["symbol".concat(ea(e))]=t},Cc=e=>{var{type:t="circle",size:r=64,sizeType:n="area"}=e,a=EC(e,NC),i=md(md({},a),{},{type:t,size:r,sizeType:n}),o="circle";typeof t=="string"&&(o=t);var l=()=>{var h=MC(o),v=Zw().type(h).size(IC(r,n,o)),p=v();if(p!==null)return p},{className:c,cx:d,cy:u}=i,m=st(i);return ee(d)&&ee(u)&&ee(r)?f.createElement("path",ml({},m,{className:ve("recharts-symbols",c),transform:"translate(".concat(d,", ").concat(u,")"),d:l()})):null};Cc.registerSymbol=DC;var gp=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,kc=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if(f.isValidElement(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(a=>{gc(a)&&typeof r[a]=="function"&&(n[a]=(i=>r[a](r,i)))}),n},RC=(e,t,r)=>n=>(e(t,r,n),null),Sc=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(a=>{var i=e[a];gc(a)&&typeof i=="function"&&(n||(n={}),n[a]=RC(i,t,r))}),n};function vd(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function LC(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?vd(Object(r),!0).forEach(function(n){$C(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):vd(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function $C(e,t,r){return(t=FC(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function FC(e){var t=BC(e,"string");return typeof t=="symbol"?t:t+""}function BC(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ke(e,t){var r=LC({},e),n=t,a=Object.keys(t),i=a.reduce((o,l)=>(o[l]===void 0&&n[l]!==void 0&&(o[l]=n[l]),o),r);return i}function Xa(){return Xa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Xa.apply(null,arguments)}function hd(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function bp(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?hd(Object(r),!0).forEach(function(n){zC(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):hd(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function zC(e,t,r){return(t=KC(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function KC(e){var t=VC(e,"string");return typeof t=="symbol"?t:t+""}function VC(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var wt=32,UC={align:"center",iconSize:14,inactiveColor:"#ccc",layout:"horizontal",verticalAlign:"middle",labelStyle:{}};function qC(e){if(typeof e=="object"&&e!==null&&"strokeDasharray"in e)return String(e.strokeDasharray)}function WC(e){var{data:t,iconType:r,inactiveColor:n}=e,a=wt/2,i=wt/6,o=wt/3,l=t.inactive?n:t.color,c=r??t.type;if(c==="none")return null;if(c==="plainline")return f.createElement("line",{strokeWidth:4,fill:"none",stroke:l,strokeDasharray:qC(t.payload),x1:0,y1:a,x2:wt,y2:a,className:"recharts-legend-icon"});if(c==="line")return f.createElement("path",{strokeWidth:4,fill:"none",stroke:l,d:"M0,".concat(a,"h").concat(o,`
|
|
52
52
|
A`).concat(i,",").concat(i,",0,1,1,").concat(2*o,",").concat(a,`
|
|
53
53
|
H`).concat(wt,"M").concat(2*o,",").concat(a,`
|
|
54
|
-
A`).concat(i,",").concat(i,",0,1,1,").concat(o,",").concat(a),className:"recharts-legend-icon"});if(c==="rect")return f.createElement("path",{stroke:"none",fill:l,d:"M0,".concat(wt/8,"h").concat(wt,"v").concat(wt*3/4,"h").concat(-wt,"z"),className:"recharts-legend-icon"});if(f.isValidElement(t.legendIcon)){var d=gp({},t);return delete d.legendIcon,f.cloneElement(t.legendIcon,d)}return f.createElement(wc,{fill:l,cx:a,cy:a,size:wt,sizeType:"diameter",type:c})}function WC(e){var{payload:t,iconSize:r,layout:n,formatter:a,inactiveColor:i,iconType:o,labelStyle:l}=e,c={x:0,y:0,width:wt,height:wt},d={display:n==="horizontal"?"inline-block":"block",marginRight:10},u={display:"inline-block",verticalAlign:"middle",marginRight:4};return t.map((m,h)=>{var v=m.formatter||a,p=ve({"recharts-legend-item":!0,["legend-item-".concat(h)]:!0,inactive:m.inactive});if(m.type==="none")return null;var b=typeof l=="object"?gp({},l):{};b.color=m.inactive?i:b.color||m.color;var y=v?v(m.value,m,h):m.value;return f.createElement("li",Xa({className:p,style:d,key:"legend-item-".concat(h)},kc(e,m,h)),f.createElement(gc,{width:r,height:r,viewBox:c,style:u,"aria-label":"".concat(m.value," legend icon")},f.createElement(qC,{data:m,iconType:o,inactiveColor:i})),f.createElement("span",{className:"recharts-legend-item-text",style:b},y))})}var HC=e=>{var t=Ke(e,VC),{payload:r,layout:n,align:a}=t;if(!r||!r.length)return null;var i={padding:0,margin:0,textAlign:n==="horizontal"?a:"left"};return f.createElement("ul",{className:"recharts-default-legend",style:i},f.createElement(WC,Xa({},t,{payload:r})))},$s={},Fs={},hd;function GC(){return hd||(hd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,n){const a=new Map;for(let i=0;i<r.length;i++){const o=r[i],l=n(o,i,r);a.has(l)||a.set(l,o)}return Array.from(a.values())}e.uniqBy=t})(Fs)),Fs}var Bs={},pd;function XC(){return pd||(pd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,n){return function(...a){return r.apply(this,a.slice(0,n))}}e.ary=t})(Bs)),Bs}var zs={},yd;function bp(){return yd||(yd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r}e.identity=t})(zs)),zs}var Ks={},Vs={},Us={},gd;function YC(){return gd||(gd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return Number.isSafeInteger(r)&&r>=0}e.isLength=t})(Us)),Us}var bd;function xp(){return bd||(bd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=YC();function r(n){return n!=null&&typeof n!="function"&&t.isLength(n.length)}e.isArrayLike=r})(Vs)),Vs}var qs={},xd;function ZC(){return xd||(xd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return typeof r=="object"&&r!==null}e.isObjectLike=t})(qs)),qs}var jd;function JC(){return jd||(jd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=xp(),r=ZC();function n(a){return r.isObjectLike(a)&&t.isArrayLike(a)}e.isArrayLikeObject=n})(Ks)),Ks}var Ws={},Hs={},wd;function QC(){return wd||(wd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=jc();function r(n){return function(a){return t.get(a,n)}}e.property=r})(Hs)),Hs}var Gs={},Xs={},Ys={},Zs={},Cd;function jp(){return Cd||(Cd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r!==null&&(typeof r=="object"||typeof r=="function")}e.isObject=t})(Zs)),Zs}var Js={},kd;function wp(){return kd||(kd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r==null||typeof r!="object"&&typeof r!="function"}e.isPrimitive=t})(Js)),Js}var Qs={},Sd;function Cp(){return Sd||(Sd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,n){return r===n||Number.isNaN(r)&&Number.isNaN(n)}e.isEqualsSameValueZero=t})(Qs)),Qs}var Nd;function ek(){return Nd||(Nd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=jp(),r=wp(),n=Cp();function a(u,m,h){return typeof h!="function"?a(u,m,()=>{}):i(u,m,function v(p,b,y,g,j,x){const C=h(p,b,y,g,j,x);return C!==void 0?!!C:i(p,b,v,x)},new Map)}function i(u,m,h,v){if(m===u)return!0;switch(typeof m){case"object":return o(u,m,h,v);case"function":return Object.keys(m).length>0?i(u,{...m},h,v):n.isEqualsSameValueZero(u,m);default:return t.isObject(u)?typeof m=="string"?m==="":!0:n.isEqualsSameValueZero(u,m)}}function o(u,m,h,v){if(m==null)return!0;if(Array.isArray(m))return c(u,m,h,v);if(m instanceof Map)return l(u,m,h,v);if(m instanceof Set)return d(u,m,h,v);const p=Object.keys(m);if(u==null||r.isPrimitive(u))return p.length===0;if(p.length===0)return!0;if(v?.has(m))return v.get(m)===u;v?.set(m,u);try{for(let b=0;b<p.length;b++){const y=p[b];if(!r.isPrimitive(u)&&!(y in u)||m[y]===void 0&&u[y]!==void 0||m[y]===null&&u[y]!==null||!h(u[y],m[y],y,u,m,v))return!1}return!0}finally{v?.delete(m)}}function l(u,m,h,v){if(m.size===0)return!0;if(!(u instanceof Map))return!1;for(const[p,b]of m.entries()){const y=u.get(p);if(h(y,b,p,u,m,v)===!1)return!1}return!0}function c(u,m,h,v){if(m.length===0)return!0;if(!Array.isArray(u))return!1;const p=new Set;for(let b=0;b<m.length;b++){const y=m[b];let g=!1;for(let j=0;j<u.length;j++){if(p.has(j))continue;const x=u[j];let C=!1;if(h(x,y,b,u,m,v)&&(C=!0),C){p.add(j),g=!0;break}}if(!g)return!1}return!0}function d(u,m,h,v){return m.size===0?!0:u instanceof Set?c([...u],[...m],h,v):!1}e.isMatchWith=a,e.isSetMatch=d})(Ys)),Ys}var Pd;function kp(){return Pd||(Pd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=ek();function r(n,a){return t.isMatchWith(n,a,()=>{})}e.isMatch=r})(Xs)),Xs}var eo={},to={},ro={},Ad;function tk(){return Ad||(Ad=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return Object.getOwnPropertySymbols(r).filter(n=>Object.prototype.propertyIsEnumerable.call(r,n))}e.getSymbols=t})(ro)),ro}var no={},Od;function Sc(){return Od||(Od=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r==null?r===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(r)}e.getTag=t})(no)),no}var ao={},Ed;function Sp(){return Ed||(Ed=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t="[object RegExp]",r="[object String]",n="[object Number]",a="[object Boolean]",i="[object Arguments]",o="[object Symbol]",l="[object Date]",c="[object Map]",d="[object Set]",u="[object Array]",m="[object Function]",h="[object ArrayBuffer]",v="[object Object]",p="[object Error]",b="[object DataView]",y="[object Uint8Array]",g="[object Uint8ClampedArray]",j="[object Uint16Array]",x="[object Uint32Array]",C="[object BigUint64Array]",w="[object Int8Array]",P="[object Int16Array]",A="[object Int32Array]",S="[object BigInt64Array]",N="[object Float32Array]",E="[object Float64Array]";e.argumentsTag=i,e.arrayBufferTag=h,e.arrayTag=u,e.bigInt64ArrayTag=S,e.bigUint64ArrayTag=C,e.booleanTag=a,e.dataViewTag=b,e.dateTag=l,e.errorTag=p,e.float32ArrayTag=N,e.float64ArrayTag=E,e.functionTag=m,e.int16ArrayTag=P,e.int32ArrayTag=A,e.int8ArrayTag=w,e.mapTag=c,e.numberTag=n,e.objectTag=v,e.regexpTag=t,e.setTag=d,e.stringTag=r,e.symbolTag=o,e.uint16ArrayTag=j,e.uint32ArrayTag=x,e.uint8ArrayTag=y,e.uint8ClampedArrayTag=g})(ao)),ao}var io={},_d;function rk(){return _d||(_d=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}e.isTypedArray=t})(io)),io}var Td;function Np(){return Td||(Td=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=tk(),r=Sc(),n=Sp(),a=wp(),i=rk();function o(u,m){return l(u,void 0,u,new Map,m)}function l(u,m,h,v=new Map,p=void 0){const b=p?.(u,m,h,v);if(b!==void 0)return b;if(a.isPrimitive(u))return u;if(v.has(u))return v.get(u);if(Array.isArray(u)){const y=new Array(u.length);v.set(u,y);for(let g=0;g<u.length;g++)y[g]=l(u[g],g,h,v,p);return Object.hasOwn(u,"index")&&(y.index=u.index),Object.hasOwn(u,"input")&&(y.input=u.input),y}if(u instanceof Date)return new Date(u.getTime());if(u instanceof RegExp){const y=new RegExp(u.source,u.flags);return y.lastIndex=u.lastIndex,y}if(u instanceof Map){const y=new Map;v.set(u,y);for(const[g,j]of u)y.set(g,l(j,g,h,v,p));return y}if(u instanceof Set){const y=new Set;v.set(u,y);for(const g of u)y.add(l(g,void 0,h,v,p));return y}if(typeof Buffer<"u"&&Buffer.isBuffer(u))return u.subarray();if(i.isTypedArray(u)){const y=new(Object.getPrototypeOf(u)).constructor(u.length);v.set(u,y);for(let g=0;g<u.length;g++)y[g]=l(u[g],g,h,v,p);return y}if(u instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&u instanceof SharedArrayBuffer)return u.slice(0);if(u instanceof DataView){const y=new DataView(u.buffer.slice(0),u.byteOffset,u.byteLength);return v.set(u,y),c(y,u,h,v,p),y}if(typeof File<"u"&&u instanceof File){const y=new File([u],u.name,{type:u.type});return v.set(u,y),c(y,u,h,v,p),y}if(typeof Blob<"u"&&u instanceof Blob){const y=new Blob([u],{type:u.type});return v.set(u,y),c(y,u,h,v,p),y}if(u instanceof Error){const y=structuredClone(u);return v.set(u,y),y.message=u.message,y.name=u.name,y.stack=u.stack,y.cause=u.cause,y.constructor=u.constructor,c(y,u,h,v,p),y}if(u instanceof Boolean){const y=new Boolean(u.valueOf());return v.set(u,y),c(y,u,h,v,p),y}if(u instanceof Number){const y=new Number(u.valueOf());return v.set(u,y),c(y,u,h,v,p),y}if(u instanceof String){const y=new String(u.valueOf());return v.set(u,y),c(y,u,h,v,p),y}if(typeof u=="object"&&d(u)){const y=Object.create(Object.getPrototypeOf(u));return v.set(u,y),c(y,u,h,v,p),y}return u}function c(u,m,h=u,v,p){const b=[...Object.keys(m),...t.getSymbols(m)];for(let y=0;y<b.length;y++){const g=b[y],j=Object.getOwnPropertyDescriptor(u,g);(j==null||j.writable)&&(u[g]=l(m[g],g,h,v,p))}}function d(u){switch(r.getTag(u)){case n.argumentsTag:case n.arrayTag:case n.arrayBufferTag:case n.dataViewTag:case n.booleanTag:case n.dateTag:case n.float32ArrayTag:case n.float64ArrayTag:case n.int8ArrayTag:case n.int16ArrayTag:case n.int32ArrayTag:case n.mapTag:case n.numberTag:case n.objectTag:case n.regexpTag:case n.setTag:case n.stringTag:case n.symbolTag:case n.uint8ArrayTag:case n.uint8ClampedArrayTag:case n.uint16ArrayTag:case n.uint32ArrayTag:return!0;default:return!1}}e.cloneDeepWith=o,e.cloneDeepWithImpl=l,e.copyProperties=c})(to)),to}var Md;function nk(){return Md||(Md=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Np();function r(n){return t.cloneDeepWithImpl(n,void 0,n,new Map,void 0)}e.cloneDeep=r})(eo)),eo}var Id;function ak(){return Id||(Id=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=kp(),r=nk();function n(a){return a=r.cloneDeep(a),i=>t.isMatch(i,a)}e.matches=n})(Gs)),Gs}var so={},oo={},lo={},Dd;function ik(){return Dd||(Dd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Np(),r=Sc(),n=Sp();function a(i,o){return t.cloneDeepWith(i,(l,c,d,u)=>{const m=o?.(l,c,d,u);if(m!==void 0)return m;if(typeof i=="object"){if(r.getTag(i)===n.objectTag&&typeof i.constructor!="function"){const h={};return u.set(i,h),t.copyProperties(h,i,d,u),h}switch(Object.prototype.toString.call(i)){case n.numberTag:case n.stringTag:case n.booleanTag:{const h=new i.constructor(i?.valueOf());return t.copyProperties(h,i),h}case n.argumentsTag:{const h={};return t.copyProperties(h,i),h.length=i.length,h[Symbol.iterator]=i[Symbol.iterator],h}default:return}}})}e.cloneDeepWith=a})(lo)),lo}var Rd;function sk(){return Rd||(Rd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=ik();function r(n){return t.cloneDeepWith(n)}e.cloneDeep=r})(oo)),oo}var co={},uo={},Ld;function Pp(){return Ld||(Ld=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=/^(?:0|[1-9]\d*)$/;function r(n,a=Number.MAX_SAFE_INTEGER){switch(typeof n){case"number":return Number.isInteger(n)&&n>=0&&n<a;case"symbol":return!1;case"string":return t.test(n)}}e.isIndex=r})(uo)),uo}var fo={},$d;function ok(){return $d||($d=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Sc();function r(n){return n!==null&&typeof n=="object"&&t.getTag(n)==="[object Arguments]"}e.isArguments=r})(fo)),fo}var Fd;function lk(){return Fd||(Fd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=mp(),r=Pp(),n=ok(),a=xc();function i(o,l){let c;if(Array.isArray(l)?c=l:typeof l=="string"&&t.isDeepKey(l)&&o?.[l]==null?c=a.toPath(l):c=[l],c.length===0)return!1;let d=o;for(let u=0;u<c.length;u++){const m=c[u];if((d==null||!Object.hasOwn(d,m))&&!((Array.isArray(d)||n.isArguments(d))&&r.isIndex(m)&&m<d.length))return!1;d=d[m]}return!0}e.has=i})(co)),co}var Bd;function ck(){return Bd||(Bd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=kp(),r=bc(),n=sk(),a=jc(),i=lk();function o(l,c){switch(typeof l){case"object":{Object.is(l?.valueOf(),-0)&&(l="-0");break}case"number":{l=r.toKey(l);break}}return c=n.cloneDeep(c),function(d){const u=a.get(d,l);return u===void 0?i.has(d,l):c===void 0?u===void 0:t.isMatch(u,c)}}e.matchesProperty=o})(so)),so}var zd;function uk(){return zd||(zd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=bp(),r=QC(),n=ak(),a=ck();function i(o){if(o==null)return t.identity;switch(typeof o){case"function":return o;case"object":return Array.isArray(o)&&o.length===2?a.matchesProperty(o[0],o[1]):n.matches(o);case"string":case"symbol":case"number":return r.property(o)}}e.iteratee=i})(Ws)),Ws}var Kd;function dk(){return Kd||(Kd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=GC(),r=XC(),n=bp(),a=JC(),i=uk();function o(l,c=n.identity){return a.isArrayLikeObject(l)?t.uniqBy(Array.from(l),r.ary(i.iteratee(c),1)):[]}e.uniqBy=o})($s)),$s}var mo,Vd;function fk(){return Vd||(Vd=1,mo=dk().uniqBy),mo}var mk=fk();const Ud=mn(mk);function Ap(e,t,r){return t===!0?Ud(e,r):typeof t=="function"?Ud(e,t):e}var Nc=f.createContext(null),vk=e=>e,pe=()=>{var e=f.useContext(Nc);return e?e.store.dispatch:vk},Fa=()=>{},hk=()=>Fa,pk=(e,t)=>e===t;function Z(e){var t=f.useContext(Nc),r=f.useMemo(()=>t?n=>{if(n!=null)return e(n)}:Fa,[t,e]);return c0.useSyncExternalStoreWithSelector(t?t.subscription.addNestedSub:hk,t?t.store.getState:Fa,t?t.store.getState:Fa,r,pk)}function yk(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function gk(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!="object")throw new TypeError(t)}function bk(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){const r=e.map(n=>typeof n=="function"?`function ${n.name||"unnamed"}()`:typeof n).join(", ");throw new TypeError(`${t}[${r}]`)}}var qd=e=>Array.isArray(e)?e:[e];function xk(e){const t=Array.isArray(e[0])?e[0]:e;return bk(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function jk(e,t){const r=[],{length:n}=e;for(let a=0;a<n;a++)r.push(e[a].apply(null,t));return r}var wk=class{constructor(e){this.value=e}deref(){return this.value}},Ck=typeof WeakRef<"u"?WeakRef:wk,kk=0,Wd=1;function xa(){return{s:kk,v:void 0,o:null,p:null}}function Op(e,t={}){let r=xa();const{resultEqualityCheck:n}=t;let a,i=0;function o(){let l=r;const{length:c}=arguments;for(let m=0,h=c;m<h;m++){const v=arguments[m];if(typeof v=="function"||typeof v=="object"&&v!==null){let p=l.o;p===null&&(l.o=p=new WeakMap);const b=p.get(v);b===void 0?(l=xa(),p.set(v,l)):l=b}else{let p=l.p;p===null&&(l.p=p=new Map);const b=p.get(v);b===void 0?(l=xa(),p.set(v,l)):l=b}}const d=l;let u;if(l.s===Wd)u=l.v;else if(u=e.apply(null,arguments),i++,n){const m=a?.deref?.()??a;m!=null&&n(m,u)&&(u=m,i!==0&&i--),a=typeof u=="object"&&u!==null||typeof u=="function"?new Ck(u):u}return d.s=Wd,d.v=u,u}return o.clearCache=()=>{r=xa(),o.resetResultsCount()},o.resultsCount=()=>i,o.resetResultsCount=()=>{i=0},o}function Sk(e,...t){const r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...a)=>{let i=0,o=0,l,c={},d=a.pop();typeof d=="object"&&(c=d,d=a.pop()),yk(d,`createSelector expects an output function after the inputs, but received: [${typeof d}]`);const u={...r,...c},{memoize:m,memoizeOptions:h=[],argsMemoize:v=Op,argsMemoizeOptions:p=[]}=u,b=qd(h),y=qd(p),g=xk(a),j=m(function(){return i++,d.apply(null,arguments)},...b),x=v(function(){o++;const w=jk(g,arguments);return l=j.apply(null,w),l},...y);return Object.assign(x,{resultFunc:d,memoizedResultFunc:j,dependencies:g,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>l,recomputations:()=>i,resetRecomputations:()=>{i=0},memoize:m,argsMemoize:v})};return Object.assign(n,{withTypes:()=>n}),n}var _=Sk(Op),Nk=Object.assign((e,t=_)=>{gk(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);const r=Object.keys(e),n=r.map(i=>e[i]);return t(n,(...i)=>i.reduce((o,l,c)=>(o[r[c]]=l,o),{}))},{withTypes:()=>Nk}),vo={},ho={},po={},Hd;function Pk(){return Hd||(Hd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return typeof n=="symbol"?1:n===null?2:n===void 0?3:n!==n?4:0}const r=(n,a,i)=>{if(n!==a){const o=t(n),l=t(a);if(o===l&&o===0){if(n<a)return i==="desc"?1:-1;if(n>a)return i==="desc"?-1:1}return i==="desc"?l-o:o-l}return 0};e.compareValues=r})(po)),po}var yo={},go={},Gd;function Ep(){return Gd||(Gd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return typeof r=="symbol"||r instanceof Symbol}e.isSymbol=t})(go)),go}var Xd;function Ak(){return Xd||(Xd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Ep(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,n=/^\w*$/;function a(i,o){return Array.isArray(i)?!1:typeof i=="number"||typeof i=="boolean"||i==null||t.isSymbol(i)?!0:typeof i=="string"&&(n.test(i)||!r.test(i))||o!=null&&Object.hasOwn(o,i)}e.isKey=a})(yo)),yo}var Yd;function Ok(){return Yd||(Yd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Pk(),r=Ak(),n=xc();function a(i,o,l,c){if(i==null)return[];l=c?void 0:l,Array.isArray(i)||(i=Object.values(i)),Array.isArray(o)||(o=o==null?[null]:[o]),o.length===0&&(o=[null]),Array.isArray(l)||(l=l==null?[]:[l]),l=l.map(v=>String(v));const d=(v,p)=>{let b=v;for(let y=0;y<p.length&&b!=null;++y)b=b[p[y]];return b},u=(v,p)=>p==null||v==null?p:typeof v=="object"&&"key"in v?Object.hasOwn(p,v.key)?p[v.key]:d(p,v.path):typeof v=="function"?v(p):Array.isArray(v)?d(p,v):typeof p=="object"?p[v]:p,m=o.map(v=>(Array.isArray(v)&&v.length===1&&(v=v[0]),v==null||typeof v=="function"||Array.isArray(v)||r.isKey(v)?v:{key:v,path:n.toPath(v)}));return i.map(v=>({original:v,criteria:m.map(p=>u(p,v))})).slice().sort((v,p)=>{for(let b=0;b<m.length;b++){const y=t.compareValues(v.criteria[b],p.criteria[b],l[b]);if(y!==0)return y}return 0}).map(v=>v.original)}e.orderBy=a})(ho)),ho}var bo={},Zd;function Ek(){return Zd||(Zd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,n=1){const a=[],i=Math.floor(n),o=(l,c)=>{for(let d=0;d<l.length;d++){const u=l[d];Array.isArray(u)&&c<i?o(u,c+1):a.push(u)}};return o(r,0),a}e.flatten=t})(bo)),bo}var xo={},Jd;function _p(){return Jd||(Jd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Pp(),r=xp(),n=jp(),a=Cp();function i(o,l,c){return n.isObject(c)&&(typeof l=="number"&&r.isArrayLike(c)&&t.isIndex(l)&&l<c.length||typeof l=="string"&&l in c)?a.isEqualsSameValueZero(c[l],o):!1}e.isIterateeCall=i})(xo)),xo}var Qd;function _k(){return Qd||(Qd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Ok(),r=Ek(),n=_p();function a(i,...o){const l=o.length;return l>1&&n.isIterateeCall(i,o[0],o[1])?o=[]:l>2&&n.isIterateeCall(o[0],o[1],o[2])&&(o=[o[0]]),t.orderBy(i,r.flatten(o),["asc"])}e.sortBy=a})(vo)),vo}var jo,ef;function Tk(){return ef||(ef=1,jo=_k().sortBy),jo}var Mk=Tk();const zi=mn(Mk);var Tp=e=>e.legend.settings,Ik=e=>e.legend.size,Dk=e=>e.legend.payload,Rk=_([Dk,Tp],(e,t)=>{var{itemSorter:r}=t,n=e.flat(1);return r?zi(n,r):n});function Lk(){return Z(Rk)}var ja=1;function Mp(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],[t,r]=f.useState({height:0,left:0,top:0,width:0}),n=f.useCallback(a=>{if(a!=null){var i=a.getBoundingClientRect(),o={height:i.height,left:i.left,top:i.top,width:i.width};(Math.abs(o.height-t.height)>ja||Math.abs(o.left-t.left)>ja||Math.abs(o.top-t.top)>ja||Math.abs(o.width-t.width)>ja)&&r({height:o.height,left:o.left,top:o.top,width:o.width})}},[t.width,t.height,t.top,t.left,...e]);return[t,n]}function Xe(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var $k=typeof Symbol=="function"&&Symbol.observable||"@@observable",tf=$k,wo=()=>Math.random().toString(36).substring(7).split("").join("."),Fk={INIT:`@@redux/INIT${wo()}`,REPLACE:`@@redux/REPLACE${wo()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${wo()}`},Ya=Fk;function Pc(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function Ip(e,t,r){if(typeof e!="function")throw new Error(Xe(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(Xe(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(Xe(1));return r(Ip)(e,t)}let n=e,a=t,i=new Map,o=i,l=0,c=!1;function d(){o===i&&(o=new Map,i.forEach((y,g)=>{o.set(g,y)}))}function u(){if(c)throw new Error(Xe(3));return a}function m(y){if(typeof y!="function")throw new Error(Xe(4));if(c)throw new Error(Xe(5));let g=!0;d();const j=l++;return o.set(j,y),function(){if(g){if(c)throw new Error(Xe(6));g=!1,d(),o.delete(j),i=null}}}function h(y){if(!Pc(y))throw new Error(Xe(7));if(typeof y.type>"u")throw new Error(Xe(8));if(typeof y.type!="string")throw new Error(Xe(17));if(c)throw new Error(Xe(9));try{c=!0,a=n(a,y)}finally{c=!1}return(i=o).forEach(j=>{j()}),y}function v(y){if(typeof y!="function")throw new Error(Xe(10));n=y,h({type:Ya.REPLACE})}function p(){const y=m;return{subscribe(g){if(typeof g!="object"||g===null)throw new Error(Xe(11));function j(){const C=g;C.next&&C.next(u())}return j(),{unsubscribe:y(j)}},[tf](){return this}}}return h({type:Ya.INIT}),{dispatch:h,subscribe:m,getState:u,replaceReducer:v,[tf]:p}}function Bk(e){Object.keys(e).forEach(t=>{const r=e[t];if(typeof r(void 0,{type:Ya.INIT})>"u")throw new Error(Xe(12));if(typeof r(void 0,{type:Ya.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Xe(13))})}function Dp(e){const t=Object.keys(e),r={};for(let i=0;i<t.length;i++){const o=t[i];typeof e[o]=="function"&&(r[o]=e[o])}const n=Object.keys(r);let a;try{Bk(r)}catch(i){a=i}return function(o={},l){if(a)throw a;let c=!1;const d={};for(let u=0;u<n.length;u++){const m=n[u],h=r[m],v=o[m],p=h(v,l);if(typeof p>"u")throw l&&l.type,new Error(Xe(14));d[m]=p,c=c||p!==v}return c=c||n.length!==Object.keys(o).length,c?d:o}}function Za(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function zk(...e){return t=>(r,n)=>{const a=t(r,n);let i=()=>{throw new Error(Xe(15))};const o={getState:a.getState,dispatch:(c,...d)=>i(c,...d)},l=e.map(c=>c(o));return i=Za(...l)(a.dispatch),{...a,dispatch:i}}}function Rp(e){return Pc(e)&&"type"in e&&typeof e.type=="string"}var Lp=Symbol.for("immer-nothing"),rf=Symbol.for("immer-draftable"),lt=Symbol.for("immer-state");function Pt(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var vt=Object,sn=vt.getPrototypeOf,Ja="constructor",Ki="prototype",ml="configurable",Qa="enumerable",Ba="writable",Vn="value",Jt=e=>!!e&&!!e[lt];function Et(e){return e?$p(e)||Ui(e)||!!e[rf]||!!e[Ja]?.[rf]||qi(e)||Wi(e):!1}var Kk=vt[Ki][Ja].toString(),nf=new WeakMap;function $p(e){if(!e||!Ac(e))return!1;const t=sn(e);if(t===null||t===vt[Ki])return!0;const r=vt.hasOwnProperty.call(t,Ja)&&t[Ja];if(r===Object)return!0;if(!Xr(r))return!1;let n=nf.get(r);return n===void 0&&(n=Function.toString.call(r),nf.set(r,n)),n===Kk}function Vi(e,t,r=!0){ra(e)===0?(r?Reflect.ownKeys(e):vt.keys(e)).forEach(a=>{t(a,e[a],e)}):e.forEach((n,a)=>t(a,n,e))}function ra(e){const t=e[lt];return t?t.type_:Ui(e)?1:qi(e)?2:Wi(e)?3:0}var af=(e,t,r=ra(e))=>r===2?e.has(t):vt[Ki].hasOwnProperty.call(e,t),vl=(e,t,r=ra(e))=>r===2?e.get(t):e[t],ei=(e,t,r,n=ra(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function Vk(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var Ui=Array.isArray,qi=e=>e instanceof Map,Wi=e=>e instanceof Set,Ac=e=>typeof e=="object",Xr=e=>typeof e=="function",Co=e=>typeof e=="boolean";function Uk(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var qt=e=>e.copy_||e.base_,Oc=e=>e.modified_?e.copy_:e.base_;function hl(e,t){if(qi(e))return new Map(e);if(Wi(e))return new Set(e);if(Ui(e))return Array[Ki].slice.call(e);const r=$p(e);if(t===!0||t==="class_only"&&!r){const n=vt.getOwnPropertyDescriptors(e);delete n[lt];let a=Reflect.ownKeys(n);for(let i=0;i<a.length;i++){const o=a[i],l=n[o];l[Ba]===!1&&(l[Ba]=!0,l[ml]=!0),(l.get||l.set)&&(n[o]={[ml]:!0,[Ba]:!0,[Qa]:l[Qa],[Vn]:e[o]})}return vt.create(sn(e),n)}else{const n=sn(e);if(n!==null&&r)return{...e};const a=vt.create(n);return vt.assign(a,e)}}function Ec(e,t=!1){return Hi(e)||Jt(e)||!Et(e)||(ra(e)>1&&vt.defineProperties(e,{set:wa,add:wa,clear:wa,delete:wa}),vt.freeze(e),t&&Vi(e,(r,n)=>{Ec(n,!0)},!1)),e}function qk(){Pt(2)}var wa={[Vn]:qk};function Hi(e){return e===null||!Ac(e)?!0:vt.isFrozen(e)}var ti="MapSet",pl="Patches",sf="ArrayMethods",Fp={};function Ir(e){const t=Fp[e];return t||Pt(0,e),t}var of=e=>!!Fp[e],Un,Bp=()=>Un,Wk=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:of(ti)?Ir(ti):void 0,arrayMethodsPlugin_:of(sf)?Ir(sf):void 0});function lf(e,t){t&&(e.patchPlugin_=Ir(pl),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function yl(e){gl(e),e.drafts_.forEach(Hk),e.drafts_=null}function gl(e){e===Un&&(Un=e.parent_)}var cf=e=>Un=Wk(Un,e);function Hk(e){const t=e[lt];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function uf(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];if(e!==void 0&&e!==r){r[lt].modified_&&(yl(t),Pt(4)),Et(e)&&(e=df(t,e));const{patchPlugin_:a}=t;a&&a.generateReplacementPatches_(r[lt].base_,e,t)}else e=df(t,r);return Gk(t,e,!0),yl(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==Lp?e:void 0}function df(e,t){if(Hi(t))return t;const r=t[lt];if(!r)return ri(t,e.handledSet_,e);if(!Gi(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){const{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);Vp(r,e)}return r.copy_}function Gk(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Ec(t,r)}function zp(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Gi=(e,t)=>e.scope_===t,Xk=[];function Kp(e,t,r,n){const a=qt(e),i=e.type_;if(n!==void 0&&vl(a,n,i)===t){ei(a,n,r,i);return}if(!e.draftLocations_){const l=e.draftLocations_=new Map;Vi(a,(c,d)=>{if(Jt(d)){const u=l.get(d)||[];u.push(c),l.set(d,u)}})}const o=e.draftLocations_.get(t)??Xk;for(const l of o)ei(a,l,r,i)}function Yk(e,t,r){e.callbacks_.push(function(a){const i=t;if(!i||!Gi(i,a))return;a.mapSetPlugin_?.fixSetContents(i);const o=Oc(i);Kp(e,i.draft_??i,o,r),Vp(i,a)})}function Vp(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){const{patchPlugin_:n}=t;if(n){const a=n.getPath(e);a&&n.generatePatches_(e,a,t)}zp(e)}}function Zk(e,t,r){const{scope_:n}=e;if(Jt(r)){const a=r[lt];Gi(a,n)&&a.callbacks_.push(function(){za(e);const o=Oc(a);Kp(e,r,o,t)})}else Et(r)&&e.callbacks_.push(function(){const i=qt(e);e.type_===3?i.has(r)&&ri(r,n.handledSet_,n):vl(i,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&ri(vl(e.copy_,t,e.type_),n.handledSet_,n)})}function ri(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||Jt(e)||t.has(e)||!Et(e)||Hi(e)||(t.add(e),Vi(e,(n,a)=>{if(Jt(a)){const i=a[lt];if(Gi(i,r)){const o=Oc(i);ei(e,n,o,e.type_),zp(i)}}else Et(a)&&ri(a,t,r)})),e}function Jk(e,t){const r=Ui(e),n={type_:r?1:0,scope_:t?t.scope_:Bp(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let a=n,i=ni;r&&(a=[n],i=qn);const{revoke:o,proxy:l}=Proxy.revocable(a,i);return n.draft_=l,n.revoke_=o,[l,n]}var ni={get(e,t){if(t===lt)return e;let r=e.scope_.arrayMethodsPlugin_;const n=e.type_===1&&typeof t=="string";if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);const a=qt(e);if(!af(a,t,e.type_))return Qk(e,a,t);const i=a[t];if(e.finalized_||!Et(i)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&Uk(t))return i;if(i===ko(e.base_,t)){za(e);const o=e.type_===1?+t:t,l=xl(e.scope_,i,e,o);return e.copy_[o]=l}return i},has(e,t){return t in qt(e)},ownKeys(e){return Reflect.ownKeys(qt(e))},set(e,t,r){const n=Up(qt(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const a=ko(qt(e),t),i=a?.[lt];if(i&&i.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(Vk(r,a)&&(r!==void 0||af(e.base_,t,e.type_)))return!0;za(e),bl(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),Zk(e,t,r)),!0},deleteProperty(e,t){return za(e),ko(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),bl(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=qt(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[Ba]:!0,[ml]:e.type_!==1||t!=="length",[Qa]:n[Qa],[Vn]:r[t]}},defineProperty(){Pt(11)},getPrototypeOf(e){return sn(e.base_)},setPrototypeOf(){Pt(12)}},qn={};for(let e in ni){let t=ni[e];qn[e]=function(){const r=arguments;return r[0]=r[0][0],t.apply(this,r)}}qn.deleteProperty=function(e,t){return qn.set.call(this,e,t,void 0)};qn.set=function(e,t,r){return ni.set.call(this,e[0],t,r,e[0])};function ko(e,t){const r=e[lt];return(r?qt(r):e)[t]}function Qk(e,t,r){const n=Up(t,r);return n?Vn in n?n[Vn]:n.get?.call(e.draft_):void 0}function Up(e,t){if(!(t in e))return;let r=sn(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=sn(r)}}function bl(e){e.modified_||(e.modified_=!0,e.parent_&&bl(e.parent_))}function za(e){e.copy_||(e.assigned_=new Map,e.copy_=hl(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var eS=class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(r,n,a)=>{if(Xr(r)&&!Xr(n)){const o=n;n=r;const l=this;return function(d=o,...u){return l.produce(d,m=>n.call(this,m,...u))}}Xr(n)||Pt(6),a!==void 0&&!Xr(a)&&Pt(7);let i;if(Et(r)){const o=cf(this),l=xl(o,r,void 0);let c=!0;try{i=n(l),c=!1}finally{c?yl(o):gl(o)}return lf(o,a),uf(i,o)}else if(!r||!Ac(r)){if(i=n(r),i===void 0&&(i=r),i===Lp&&(i=void 0),this.autoFreeze_&&Ec(i,!0),a){const o=[],l=[];Ir(pl).generateReplacementPatches_(r,i,{patches_:o,inversePatches_:l}),a(o,l)}return i}else Pt(1,r)},this.produceWithPatches=(r,n)=>{if(Xr(r))return(l,...c)=>this.produceWithPatches(l,d=>r(d,...c));let a,i;return[this.produce(r,n,(l,c)=>{a=l,i=c}),a,i]},Co(t?.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),Co(t?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),Co(t?.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){Et(t)||Pt(8),Jt(t)&&(t=Ct(t));const r=cf(this),n=xl(r,t,void 0);return n[lt].isManual_=!0,gl(r),n}finishDraft(t,r){const n=t&&t[lt];(!n||!n.isManual_)&&Pt(9);const{scope_:a}=n;return lf(a,r),uf(void 0,a)}setAutoFreeze(t){this.autoFreeze_=t}setUseStrictShallowCopy(t){this.useStrictShallowCopy_=t}setUseStrictIteration(t){this.useStrictIteration_=t}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(t,r){let n;for(n=r.length-1;n>=0;n--){const i=r[n];if(i.path.length===0&&i.op==="replace"){t=i.value;break}}n>-1&&(r=r.slice(n+1));const a=Ir(pl).applyPatches_;return Jt(t)?a(t,r):this.produce(t,i=>a(i,r))}};function xl(e,t,r,n){const[a,i]=qi(t)?Ir(ti).proxyMap_(t,r):Wi(t)?Ir(ti).proxySet_(t,r):Jk(t,r);return(r?.scope_??Bp()).drafts_.push(a),i.callbacks_=r?.callbacks_??[],i.key_=n,r&&n!==void 0?Yk(r,i,n):i.callbacks_.push(function(c){c.mapSetPlugin_?.fixSetContents(i);const{patchPlugin_:d}=c;i.modified_&&d&&d.generatePatches_(i,[],c)}),a}function Ct(e){return Jt(e)||Pt(10,e),qp(e)}function qp(e){if(!Et(e)||Hi(e))return e;const t=e[lt];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=hl(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=hl(e,!0);return Vi(r,(a,i)=>{ei(r,a,qp(i))},n),t&&(t.finalized_=!1),r}var tS=new eS,Wp=tS.produce;function Hp(e){return({dispatch:r,getState:n})=>a=>i=>typeof i=="function"?i(r,n,e):a(i)}var rS=Hp(),nS=Hp,aS=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Za:Za.apply(null,arguments)};function yt(e,t){function r(...n){if(t){let a=t(...n);if(!a)throw new Error(pt(0));return{type:e,payload:a.payload,..."meta"in a&&{meta:a.meta},..."error"in a&&{error:a.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>Rp(n)&&n.type===e,r}var Gp=class Dn extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,Dn.prototype)}static get[Symbol.species](){return Dn}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new Dn(...t[0].concat(this)):new Dn(...t.concat(this))}};function ff(e){return Et(e)?Wp(e,()=>{}):e}function Ca(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function iS(e){return typeof e=="boolean"}var sS=()=>function(t){const{thunk:r=!0,immutableCheck:n=!0,serializableCheck:a=!0,actionCreatorCheck:i=!0}=t??{};let o=new Gp;return r&&(iS(r)?o.push(rS):o.push(nS(r.extraArgument))),o},Xp="RTK_autoBatch",je=()=>e=>({payload:e,meta:{[Xp]:!0}}),mf=e=>t=>{setTimeout(t,e)},oS=(e,t)=>r=>{let n=!1;const a=()=>{n||(n=!0,cancelAnimationFrame(i),clearTimeout(o),r())},i=e(a),o=setTimeout(a,t)},Yp=(e={type:"raf"})=>t=>(...r)=>{const n=t(...r);let a=!0,i=!1,o=!1;const l=new Set,c=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?oS(window.requestAnimationFrame,100):mf(10):e.type==="callback"?e.queueNotification:mf(e.timeout),d=()=>{o=!1,i&&(i=!1,l.forEach(u=>u()))};return Object.assign({},n,{subscribe(u){const m=()=>a&&u(),h=n.subscribe(m);return l.add(u),()=>{h(),l.delete(u)}},dispatch(u){try{return a=!u?.meta?.[Xp],i=!a,i&&(o||(o=!0,c(d))),n.dispatch(u)}finally{a=!0}}})},lS=e=>function(r){const{autoBatch:n=!0}=r??{};let a=new Gp(e);return n&&a.push(Yp(typeof n=="object"?n:void 0)),a};function cS(e){const t=sS(),{reducer:r=void 0,middleware:n,devTools:a=!0,preloadedState:i=void 0,enhancers:o=void 0}=e||{};let l;if(typeof r=="function")l=r;else if(Pc(r))l=Dp(r);else throw new Error(pt(1));let c;typeof n=="function"?c=n(t):c=t();let d=Za;a&&(d=aS({trace:!1,...typeof a=="object"&&a}));const u=zk(...c),m=lS(u);let h=typeof o=="function"?o(m):m();const v=d(...h);return Ip(l,i,v)}function Zp(e){const t={},r=[];let n;const a={addCase(i,o){const l=typeof i=="string"?i:i.type;if(!l)throw new Error(pt(28));if(l in t)throw new Error(pt(29));return t[l]=o,a},addAsyncThunk(i,o){return o.pending&&(t[i.pending.type]=o.pending),o.rejected&&(t[i.rejected.type]=o.rejected),o.fulfilled&&(t[i.fulfilled.type]=o.fulfilled),o.settled&&r.push({matcher:i.settled,reducer:o.settled}),a},addMatcher(i,o){return r.push({matcher:i,reducer:o}),a},addDefaultCase(i){return n=i,a}};return e(a),[t,r,n]}function uS(e){return typeof e=="function"}function dS(e,t){let[r,n,a]=Zp(t),i;if(uS(e))i=()=>ff(e());else{const l=ff(e);i=()=>l}function o(l=i(),c){let d=[r[c.type],...n.filter(({matcher:u})=>u(c)).map(({reducer:u})=>u)];return d.filter(u=>!!u).length===0&&(d=[a]),d.reduce((u,m)=>{if(m)if(Jt(u)){const v=m(u,c);return v===void 0?u:v}else{if(Et(u))return Wp(u,h=>m(h,c));{const h=m(u,c);if(h===void 0){if(u===null)return u;throw Error("A case reducer on a non-draftable value must not return undefined")}return h}}return u},l)}return o.getInitialState=i,o}var fS="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",mS=(e=21)=>{let t="",r=e;for(;r--;)t+=fS[Math.random()*64|0];return t},vS=Symbol.for("rtk-slice-createasyncthunk");function hS(e,t){return`${e}/${t}`}function pS({creators:e}={}){const t=e?.asyncThunk?.[vS];return function(n){const{name:a,reducerPath:i=a}=n;if(!a)throw new Error(pt(11));const o=(typeof n.reducers=="function"?n.reducers(gS()):n.reducers)||{},l=Object.keys(o),c={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},d={addCase(x,C){const w=typeof x=="string"?x:x.type;if(!w)throw new Error(pt(12));if(w in c.sliceCaseReducersByType)throw new Error(pt(13));return c.sliceCaseReducersByType[w]=C,d},addMatcher(x,C){return c.sliceMatchers.push({matcher:x,reducer:C}),d},exposeAction(x,C){return c.actionCreators[x]=C,d},exposeCaseReducer(x,C){return c.sliceCaseReducersByName[x]=C,d}};l.forEach(x=>{const C=o[x],w={reducerName:x,type:hS(a,x),createNotation:typeof n.reducers=="function"};xS(C)?wS(w,C,d,t):bS(w,C,d)});function u(){const[x={},C=[],w=void 0]=typeof n.extraReducers=="function"?Zp(n.extraReducers):[n.extraReducers],P={...x,...c.sliceCaseReducersByType};return dS(n.initialState,A=>{for(let S in P)A.addCase(S,P[S]);for(let S of c.sliceMatchers)A.addMatcher(S.matcher,S.reducer);for(let S of C)A.addMatcher(S.matcher,S.reducer);w&&A.addDefaultCase(w)})}const m=x=>x,h=new Map,v=new WeakMap;let p;function b(x,C){return p||(p=u()),p(x,C)}function y(){return p||(p=u()),p.getInitialState()}function g(x,C=!1){function w(A){let S=A[x];return typeof S>"u"&&C&&(S=Ca(v,w,y)),S}function P(A=m){const S=Ca(h,C,()=>new WeakMap);return Ca(S,A,()=>{const N={};for(const[E,T]of Object.entries(n.selectors??{}))N[E]=yS(T,A,()=>Ca(v,A,y),C);return N})}return{reducerPath:x,getSelectors:P,get selectors(){return P(w)},selectSlice:w}}const j={name:a,reducer:b,actions:c.actionCreators,caseReducers:c.sliceCaseReducersByName,getInitialState:y,...g(i),injectInto(x,{reducerPath:C,...w}={}){const P=C??i;return x.inject({reducerPath:P,reducer:b},w),{...j,...g(P,!0)}}};return j}}function yS(e,t,r,n){function a(i,...o){let l=t(i);return typeof l>"u"&&n&&(l=r()),e(l,...o)}return a.unwrapped=e,a}var at=pS();function gS(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function bS({type:e,reducerName:t,createNotation:r},n,a){let i,o;if("reducer"in n){if(r&&!jS(n))throw new Error(pt(17));i=n.reducer,o=n.prepare}else i=n;a.addCase(e,i).exposeCaseReducer(t,i).exposeAction(t,o?yt(e,o):yt(e))}function xS(e){return e._reducerDefinitionType==="asyncThunk"}function jS(e){return e._reducerDefinitionType==="reducerWithPrepare"}function wS({type:e,reducerName:t},r,n,a){if(!a)throw new Error(pt(18));const{payloadCreator:i,fulfilled:o,pending:l,rejected:c,settled:d,options:u}=r,m=a(e,i,u);n.exposeAction(t,m),o&&n.addCase(m.fulfilled,o),l&&n.addCase(m.pending,l),c&&n.addCase(m.rejected,c),d&&n.addMatcher(m.settled,d),n.exposeCaseReducer(t,{fulfilled:o||ka,pending:l||ka,rejected:c||ka,settled:d||ka})}function ka(){}var CS="task",Jp="listener",Qp="completed",_c="cancelled",kS=`task-${_c}`,SS=`task-${Qp}`,jl=`${Jp}-${_c}`,NS=`${Jp}-${Qp}`,Xi=class{constructor(e){this.code=e,this.message=`${CS} ${_c} (reason: ${e})`}code;name="TaskAbortError";message},Tc=(e,t)=>{if(typeof e!="function")throw new TypeError(pt(32))},ai=()=>{},ey=(e,t=ai)=>(e.catch(t),e),ty=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Or=e=>{if(e.aborted)throw new Xi(e.reason)};function ry(e,t){let r=ai;return new Promise((n,a)=>{const i=()=>a(new Xi(e.reason));if(e.aborted){i();return}r=ty(e,i),t.finally(()=>r()).then(n,a)}).finally(()=>{r=ai})}var PS=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof Xi?"cancelled":"rejected",error:r}}finally{t?.()}},ii=e=>t=>ey(ry(e,t).then(r=>(Or(e),r))),ny=e=>{const t=ii(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:rn}=Object,vf={},Yi="listenerMiddleware",AS=(e,t)=>{const r=n=>ty(e,()=>n.abort(e.reason));return(n,a)=>{Tc(n);const i=new AbortController;r(i);const o=PS(async()=>{Or(e),Or(i.signal);const l=await n({pause:ii(i.signal),delay:ny(i.signal),signal:i.signal});return Or(i.signal),l},()=>i.abort(SS));return a?.autoJoin&&t.push(o.catch(ai)),{result:ii(e)(o),cancel(){i.abort(kS)}}}},OS=(e,t)=>{const r=async(n,a)=>{Or(t);let i=()=>{};const l=[new Promise((c,d)=>{let u=e({predicate:n,effect:(m,h)=>{h.unsubscribe(),c([m,h.getState(),h.getOriginalState()])}});i=()=>{u(),d()}})];a!=null&&l.push(new Promise(c=>setTimeout(c,a,null)));try{const c=await ry(t,Promise.race(l));return Or(t),c}finally{i()}};return((n,a)=>ey(r(n,a)))},ay=e=>{let{type:t,actionCreator:r,matcher:n,predicate:a,effect:i}=e;if(t)a=yt(t).match;else if(r)t=r.type,a=r.match;else if(n)a=n;else if(!a)throw new Error(pt(21));return Tc(i),{predicate:a,type:t,effect:i}},iy=rn(e=>{const{type:t,predicate:r,effect:n}=ay(e);return{id:mS(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(pt(22))}}},{withTypes:()=>iy}),hf=(e,t)=>{const{type:r,effect:n,predicate:a}=ay(t);return Array.from(e.values()).find(i=>(typeof r=="string"?i.type===r:i.predicate===a)&&i.effect===n)},wl=e=>{e.pending.forEach(t=>{t.abort(jl)})},ES=(e,t)=>()=>{for(const r of t.keys())wl(r);e.clear()},pf=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},sy=rn(yt(`${Yi}/add`),{withTypes:()=>sy}),_S=yt(`${Yi}/removeAll`),oy=rn(yt(`${Yi}/remove`),{withTypes:()=>oy}),TS=(...e)=>{console.error(`${Yi}/error`,...e)},na=(e={})=>{const t=new Map,r=new Map,n=v=>{const p=r.get(v)??0;r.set(v,p+1)},a=v=>{const p=r.get(v)??1;p===1?r.delete(v):r.set(v,p-1)},{extra:i,onError:o=TS}=e;Tc(o);const l=v=>(v.unsubscribe=()=>t.delete(v.id),t.set(v.id,v),p=>{v.unsubscribe(),p?.cancelActive&&wl(v)}),c=(v=>{const p=hf(t,v)??iy(v);return l(p)});rn(c,{withTypes:()=>c});const d=v=>{const p=hf(t,v);return p&&(p.unsubscribe(),v.cancelActive&&wl(p)),!!p};rn(d,{withTypes:()=>d});const u=async(v,p,b,y)=>{const g=new AbortController,j=OS(c,g.signal),x=[];try{v.pending.add(g),n(v),await Promise.resolve(v.effect(p,rn({},b,{getOriginalState:y,condition:(C,w)=>j(C,w).then(Boolean),take:j,delay:ny(g.signal),pause:ii(g.signal),extra:i,signal:g.signal,fork:AS(g.signal,x),unsubscribe:v.unsubscribe,subscribe:()=>{t.set(v.id,v)},cancelActiveListeners:()=>{v.pending.forEach((C,w,P)=>{C!==g&&(C.abort(jl),P.delete(C))})},cancel:()=>{g.abort(jl),v.pending.delete(g)},throwIfCancelled:()=>{Or(g.signal)}})))}catch(C){C instanceof Xi||pf(o,C,{raisedBy:"effect"})}finally{await Promise.all(x),g.abort(NS),a(v),v.pending.delete(g)}},m=ES(t,r);return{middleware:v=>p=>b=>{if(!Rp(b))return p(b);if(sy.match(b))return c(b.payload);if(_S.match(b)){m();return}if(oy.match(b))return d(b.payload);let y=v.getState();const g=()=>{if(y===vf)throw new Error(pt(23));return y};let j;try{if(j=p(b),t.size>0){const x=v.getState(),C=Array.from(t.values());for(const w of C){let P=!1;try{P=w.predicate(b,x,y)}catch(A){P=!1,pf(o,A,{raisedBy:"predicate"})}P&&u(w,b,v,g)}}}finally{y=vf}return j},startListening:c,stopListening:d,clearListeners:m}};function pt(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var MS={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},ly=at({name:"chartLayout",initialState:MS,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,a,i;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(a=t.payload.bottom)!==null&&a!==void 0?a:0,e.margin.left=(i=t.payload.left)!==null&&i!==void 0?i:0},setScale(e,t){e.scale=t.payload}}}),{setMargin:IS,setLayout:DS,setChartSize:RS,setScale:LS}=ly.actions,$S=ly.reducer;function cy(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function me(e){return Number.isFinite(e)}function on(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function yf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Jr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?yf(Object(r),!0).forEach(function(n){FS(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):yf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function FS(e,t,r){return(t=BS(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function BS(e){var t=zS(e,"string");return typeof t=="symbol"?t:t+""}function zS(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ge(e,t,r){return ze(e)||ze(t)?r:Bt(t)?Mr(e,t,r):typeof t=="function"?t(e):r}var KS=(e,t,r)=>{if(t&&r){var{width:n,height:a}=r,{align:i,verticalAlign:o,layout:l}=t;if((l==="vertical"||l==="horizontal"&&o==="middle")&&i!=="center"&&ee(e[i]))return Jr(Jr({},e),{},{[i]:e[i]+(n||0)});if((l==="horizontal"||l==="vertical"&&i==="center")&&o!=="middle"&&ee(e[o]))return Jr(Jr({},e),{},{[o]:e[o]+(a||0)})}return e},er=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",uy=(e,t,r,n)=>{if(n)return e.map(l=>l.coordinate);var a,i,o=e.map(l=>(l.coordinate===t&&(a=!0),l.coordinate===r&&(i=!0),l.coordinate));return a||o.push(t),i||o.push(r),o},dy=(e,t,r)=>{if(!e)return null;var{duplicateDomain:n,type:a,range:i,scale:o,realScaleType:l,isCategorical:c,categoricalDomain:d,tickCount:u,ticks:m,niceTicks:h,axisType:v}=e;if(!o)return null;var p=l==="scaleBand"&&o.bandwidth?o.bandwidth()/2:2,b=a==="category"&&o.bandwidth?o.bandwidth()/p:0;if(b=v==="angleAxis"&&i&&i.length>=2?rt(i[0]-i[1])*2*b:b,m||h){var y=(m||h||[]).map((g,j)=>{var x=n?n.indexOf(g):g,C=o.map(x);return me(C)?{coordinate:C+b,value:g,offset:b,index:j}:null}).filter(ut);return y}return c&&d?d.map((g,j)=>{var x=o.map(g);return me(x)?{coordinate:x+b,value:g,index:j,offset:b}:null}).filter(ut):o.ticks&&u!=null?o.ticks(u).map((g,j)=>{var x=o.map(g);return me(x)?{coordinate:x+b,value:g,index:j,offset:b}:null}).filter(ut):o.domain().map((g,j)=>{var x=o.map(g);return me(x)?{coordinate:x+b,value:n?n[g]:g,index:j,offset:b}:null}).filter(ut)},VS=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var a=0;a<n;++a)for(var i=0,o=0,l=0;l<r;++l){var c=e[l],d=c?.[a];if(d!=null){var u=d[1],m=d[0],h=Zt(u)?m:u;h>=0?(d[0]=i,i+=h,d[1]=i):(d[0]=o,o+=h,d[1]=o)}}}},US=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var a=0;a<n;++a)for(var i=0,o=0;o<r;++o){var l=e[o],c=l?.[a];if(c!=null){var d=Zt(c[1])?c[0]:c[1];d>=0?(c[0]=i,i+=d,c[1]=i):(c[0]=0,c[1]=0)}}}},qS={sign:VS,expand:eC,none:_r,silhouette:tC,wiggle:rC,positive:US},WS=(e,t,r)=>{var n,a=(n=qS[r])!==null&&n!==void 0?n:_r,i=Qw().keys(t).value((l,c)=>Number(ge(l,c,0))).order(sl).offset(a),o=i(e);return o.forEach((l,c)=>{l.forEach((d,u)=>{var m=ge(e[u],t[c],0);Array.isArray(m)&&m.length===2&&ee(m[0])&&ee(m[1])&&(d[0]=m[0],d[1]=m[1])})}),o};function gf(e){var{axis:t,ticks:r,bandSize:n,entry:a,index:i,dataKey:o}=e;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!ze(a[t.dataKey])){var l=hp(r,"value",a[t.dataKey]);if(l)return l.coordinate+n/2}return r!=null&&r[i]?r[i].coordinate+n/2:null}var c=ge(a,ze(o)?t.dataKey:o),d=t.scale.map(c);return ee(d)?d:null}var HS=e=>{var t=e.flat(2).filter(ee);return[Math.min(...t),Math.max(...t)]},GS=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],XS=(e,t,r)=>{if(e!=null)return GS(Object.keys(e).reduce((n,a)=>{var i=e[a];if(!i)return n;var{stackedData:o}=i,l=o.reduce((c,d)=>{var u=cy(d,t,r),m=HS(u);return!me(m[0])||!me(m[1])?c:[Math.min(c[0],m[0]),Math.max(c[1],m[1])]},[1/0,-1/0]);return[Math.min(l[0],n[0]),Math.max(l[1],n[1])]},[1/0,-1/0]))},bf=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,xf=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,si=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var a=zi(t,u=>u.coordinate),i=1/0,o=1,l=a.length;o<l;o++){var c=a[o],d=a[o-1];i=Math.min((c?.coordinate||0)-(d?.coordinate||0),i)}return i===1/0?0:i}return r?void 0:0};function jf(e){var{tooltipEntrySettings:t,dataKey:r,payload:n,value:a,name:i}=e;return Jr(Jr({},t),{},{dataKey:r,payload:n,value:a,name:i})}function Zi(e,t){if(e)return String(e);if(typeof t=="string")return t}var YS=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},ZS=(e,t)=>t==="centric"?e.angle:e.radius,tr=e=>e.layout.width,rr=e=>e.layout.height,JS=e=>e.layout.scale,fy=e=>e.layout.margin,Ji=_(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Qi=_(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),my="data-recharts-item-index",vy="data-recharts-item-id",aa=60;function wf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Sa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?wf(Object(r),!0).forEach(function(n){QS(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):wf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function QS(e,t,r){return(t=eN(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function eN(e){var t=tN(e,"string");return typeof t=="symbol"?t:t+""}function tN(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var rN=e=>e.brush.height;function nN(e){var t=Qi(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:aa;return r+a}return r},0)}function aN(e){var t=Qi(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:aa;return r+a}return r},0)}function iN(e){var t=Ji(e);return t.reduce((r,n)=>n.orientation==="top"&&!n.mirror&&!n.hide?r+n.height:r,0)}function sN(e){var t=Ji(e);return t.reduce((r,n)=>n.orientation==="bottom"&&!n.mirror&&!n.hide?r+n.height:r,0)}var qe=_([tr,rr,fy,rN,nN,aN,iN,sN,Tp,Ik],(e,t,r,n,a,i,o,l,c,d)=>{var u={left:(r.left||0)+a,right:(r.right||0)+i},m={top:(r.top||0)+o,bottom:(r.bottom||0)+l},h=Sa(Sa({},m),u),v=h.bottom;h.bottom+=n,h=KS(h,c,d);var p=e-h.left-h.right,b=t-h.top-h.bottom;return Sa(Sa({brushBottom:v},h),{},{width:Math.max(p,0),height:Math.max(b,0)})}),oN=_(qe,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),hy=_(tr,rr,(e,t)=>({x:0,y:0,width:e,height:t})),lN=f.createContext(null),dt=()=>f.useContext(lN)!=null,es=e=>e.brush,ts=_([es,qe,fy],(e,t,r)=>({height:e.height,x:ee(e.x)?e.x:t.left,y:ee(e.y)?e.y:t.top+t.height+t.brushBottom-(r?.bottom||0),width:ee(e.width)?e.width:t.width})),Cf=function(t,r){for(var n=arguments.length,a=new Array(n>2?n-2:0),i=2;i<n;i++)a[i-2]=arguments[i];if(typeof console<"u"&&console.warn&&(r===void 0&&console.warn("LogUtils requires an error message argument"),!t))if(r===void 0)console.warn("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var o=0;console.warn(r.replace(/%s/g,()=>a[o++]))}},cN={initialDimension:{width:-1,height:-1}},uN=f.createContext(cN.initialDimension),py=()=>f.useContext(uN);function Mc(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var rs=()=>{var e,t=dt(),r=Z(oN),n=Z(ts),a=(e=Z(es))===null||e===void 0?void 0:e.padding;return!t||!n||!a?r:{width:n.width-a.left-a.right,height:n.height-a.top-a.bottom,x:a.left,y:a.top}},dN={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},yy=()=>{var e;return(e=Z(qe))!==null&&e!==void 0?e:dN},Ic=()=>Z(tr),Dc=()=>Z(rr),fN=()=>Z(e=>e.layout.margin),xe=e=>e.layout.layoutType,hn=()=>Z(xe),gy=()=>{var e=hn();if(e==="horizontal"||e==="vertical")return e},by=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},mN=()=>{var e=hn();return e!==void 0},ia=e=>{var t=pe(),r=dt(),{width:n,height:a}=e,i=py(),o=n,l=a;return i&&(o=i.width>0?i.width:n,l=i.height>0?i.height:a),f.useEffect(()=>{!r&&on(o)&&on(l)&&t(RS({width:o,height:l}))},[t,r,o,l]),null},xy=Symbol.for("immer-nothing"),kf=Symbol.for("immer-draftable"),gt=Symbol.for("immer-state");function At(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Wn=Object.getPrototypeOf;function ln(e){return!!e&&!!e[gt]}function Dr(e){return e?jy(e)||Array.isArray(e)||!!e[kf]||!!e.constructor?.[kf]||sa(e)||as(e):!1}var vN=Object.prototype.constructor.toString(),Sf=new WeakMap;function jy(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(r===Object)return!0;if(typeof r!="function")return!1;let n=Sf.get(r);return n===void 0&&(n=Function.toString.call(r),Sf.set(r,n)),n===vN}function oi(e,t,r=!0){ns(e)===0?(r?Reflect.ownKeys(e):Object.keys(e)).forEach(a=>{t(a,e[a],e)}):e.forEach((n,a)=>t(a,n,e))}function ns(e){const t=e[gt];return t?t.type_:Array.isArray(e)?1:sa(e)?2:as(e)?3:0}function Cl(e,t){return ns(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function wy(e,t,r){const n=ns(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function hN(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function sa(e){return e instanceof Map}function as(e){return e instanceof Set}function Sr(e){return e.copy_||e.base_}function kl(e,t){if(sa(e))return new Map(e);if(as(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const r=jy(e);if(t===!0||t==="class_only"&&!r){const n=Object.getOwnPropertyDescriptors(e);delete n[gt];let a=Reflect.ownKeys(n);for(let i=0;i<a.length;i++){const o=a[i],l=n[o];l.writable===!1&&(l.writable=!0,l.configurable=!0),(l.get||l.set)&&(n[o]={configurable:!0,writable:!0,enumerable:l.enumerable,value:e[o]})}return Object.create(Wn(e),n)}else{const n=Wn(e);if(n!==null&&r)return{...e};const a=Object.create(n);return Object.assign(a,e)}}function Rc(e,t=!1){return is(e)||ln(e)||!Dr(e)||(ns(e)>1&&Object.defineProperties(e,{set:Na,add:Na,clear:Na,delete:Na}),Object.freeze(e),t&&Object.values(e).forEach(r=>Rc(r,!0))),e}function pN(){At(2)}var Na={value:pN};function is(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var yN={};function Rr(e){const t=yN[e];return t||At(0,e),t}var Hn;function Cy(){return Hn}function gN(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function Nf(e,t){t&&(Rr("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Sl(e){Nl(e),e.drafts_.forEach(bN),e.drafts_=null}function Nl(e){e===Hn&&(Hn=e.parent_)}function Pf(e){return Hn=gN(Hn,e)}function bN(e){const t=e[gt];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Af(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];return e!==void 0&&e!==r?(r[gt].modified_&&(Sl(t),At(4)),Dr(e)&&(e=li(t,e),t.parent_||ci(t,e)),t.patches_&&Rr("Patches").generateReplacementPatches_(r[gt].base_,e,t.patches_,t.inversePatches_)):e=li(t,r,[]),Sl(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==xy?e:void 0}function li(e,t,r){if(is(t))return t;const n=e.immer_.shouldUseStrictIteration(),a=t[gt];if(!a)return oi(t,(i,o)=>Of(e,a,t,i,o,r),n),t;if(a.scope_!==e)return t;if(!a.modified_)return ci(e,a.base_,!0),a.base_;if(!a.finalized_){a.finalized_=!0,a.scope_.unfinalizedDrafts_--;const i=a.copy_;let o=i,l=!1;a.type_===3&&(o=new Set(i),i.clear(),l=!0),oi(o,(c,d)=>Of(e,a,i,c,d,r,l),n),ci(e,i,!1),r&&e.patches_&&Rr("Patches").generatePatches_(a,r,e.patches_,e.inversePatches_)}return a.copy_}function Of(e,t,r,n,a,i,o){if(a==null||typeof a!="object"&&!o)return;const l=is(a);if(!(l&&!o)){if(ln(a)){const c=i&&t&&t.type_!==3&&!Cl(t.assigned_,n)?i.concat(n):void 0,d=li(e,a,c);if(wy(r,n,d),ln(d))e.canAutoFreeze_=!1;else return}else o&&r.add(a);if(Dr(a)&&!l){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[n]===a&&l)return;li(e,a),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&(sa(r)?r.has(n):Object.prototype.propertyIsEnumerable.call(r,n))&&ci(e,a)}}}function ci(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Rc(t,r)}function xN(e,t){const r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:Cy(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let a=n,i=Lc;r&&(a=[n],i=Gn);const{revoke:o,proxy:l}=Proxy.revocable(a,i);return n.draft_=l,n.revoke_=o,l}var Lc={get(e,t){if(t===gt)return e;const r=Sr(e);if(!Cl(r,t))return jN(e,r,t);const n=r[t];return e.finalized_||!Dr(n)?n:n===So(e.base_,t)?(No(e),e.copy_[t]=Al(n,e)):n},has(e,t){return t in Sr(e)},ownKeys(e){return Reflect.ownKeys(Sr(e))},set(e,t,r){const n=ky(Sr(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const a=So(Sr(e),t),i=a?.[gt];if(i&&i.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(hN(r,a)&&(r!==void 0||Cl(e.base_,t)))return!0;No(e),Pl(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_[t]=!0),!0},deleteProperty(e,t){return So(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,No(e),Pl(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=Sr(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){At(11)},getPrototypeOf(e){return Wn(e.base_)},setPrototypeOf(){At(12)}},Gn={};oi(Lc,(e,t)=>{Gn[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});Gn.deleteProperty=function(e,t){return Gn.set.call(this,e,t,void 0)};Gn.set=function(e,t,r){return Lc.set.call(this,e[0],t,r,e[0])};function So(e,t){const r=e[gt];return(r?Sr(r):e)[t]}function jN(e,t,r){const n=ky(t,r);return n?"value"in n?n.value:n.get?.call(e.draft_):void 0}function ky(e,t){if(!(t in e))return;let r=Wn(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Wn(r)}}function Pl(e){e.modified_||(e.modified_=!0,e.parent_&&Pl(e.parent_))}function No(e){e.copy_||(e.copy_=kl(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var wN=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,r,n)=>{if(typeof t=="function"&&typeof r!="function"){const i=r;r=t;const o=this;return function(c=i,...d){return o.produce(c,u=>r.call(this,u,...d))}}typeof r!="function"&&At(6),n!==void 0&&typeof n!="function"&&At(7);let a;if(Dr(t)){const i=Pf(this),o=Al(t,void 0);let l=!0;try{a=r(o),l=!1}finally{l?Sl(i):Nl(i)}return Nf(i,n),Af(a,i)}else if(!t||typeof t!="object"){if(a=r(t),a===void 0&&(a=t),a===xy&&(a=void 0),this.autoFreeze_&&Rc(a,!0),n){const i=[],o=[];Rr("Patches").generateReplacementPatches_(t,a,i,o),n(i,o)}return a}else At(1,t)},this.produceWithPatches=(t,r)=>{if(typeof t=="function")return(o,...l)=>this.produceWithPatches(o,c=>t(c,...l));let n,a;return[this.produce(t,r,(o,l)=>{n=o,a=l}),n,a]},typeof e?.autoFreeze=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof e?.useStrictIteration=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){Dr(e)||At(8),ln(e)&&(e=CN(e));const t=Pf(this),r=Al(e,void 0);return r[gt].isManual_=!0,Nl(t),r}finishDraft(e,t){const r=e&&e[gt];(!r||!r.isManual_)&&At(9);const{scope_:n}=r;return Nf(n,t),Af(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const a=t[r];if(a.path.length===0&&a.op==="replace"){e=a.value;break}}r>-1&&(t=t.slice(r+1));const n=Rr("Patches").applyPatches_;return ln(e)?n(e,t):this.produce(e,a=>n(a,t))}};function Al(e,t){const r=sa(e)?Rr("MapSet").proxyMap_(e,t):as(e)?Rr("MapSet").proxySet_(e,t):xN(e,t);return(t?t.scope_:Cy()).drafts_.push(r),r}function CN(e){return ln(e)||At(10,e),Sy(e)}function Sy(e){if(!Dr(e)||is(e))return e;const t=e[gt];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=kl(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=kl(e,!0);return oi(r,(a,i)=>{wy(r,a,Sy(i))},n),t&&(t.finalized_=!1),r}var kN=new wN;kN.produce;var SN={settings:{layout:"horizontal",align:"center",verticalAlign:"middle",itemSorter:"value"},size:{width:0,height:0},payload:[]},Ny=at({name:"legend",initialState:SN,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push(t.payload)},prepare:je()},replaceLegendPayload:{reducer(e,t){var{prev:r,next:n}=t.payload,a=Ct(e).payload.indexOf(r);a>-1&&(e.payload[a]=n)},prepare:je()},removeLegendPayload:{reducer(e,t){var r=Ct(e).payload.indexOf(t.payload);r>-1&&e.payload.splice(r,1)},prepare:je()}}}),{setLegendSize:Ef,setLegendSettings:NN,addLegendPayload:Py,replaceLegendPayload:Ay,removeLegendPayload:Oy}=Ny.actions,PN=Ny.reducer,Po={exports:{}},Ao={};/**
|
|
54
|
+
A`).concat(i,",").concat(i,",0,1,1,").concat(o,",").concat(a),className:"recharts-legend-icon"});if(c==="rect")return f.createElement("path",{stroke:"none",fill:l,d:"M0,".concat(wt/8,"h").concat(wt,"v").concat(wt*3/4,"h").concat(-wt,"z"),className:"recharts-legend-icon"});if(f.isValidElement(t.legendIcon)){var d=bp({},t);return delete d.legendIcon,f.cloneElement(t.legendIcon,d)}return f.createElement(Cc,{fill:l,cx:a,cy:a,size:wt,sizeType:"diameter",type:c})}function HC(e){var{payload:t,iconSize:r,layout:n,formatter:a,inactiveColor:i,iconType:o,labelStyle:l}=e,c={x:0,y:0,width:wt,height:wt},d={display:n==="horizontal"?"inline-block":"block",marginRight:10},u={display:"inline-block",verticalAlign:"middle",marginRight:4};return t.map((m,h)=>{var v=m.formatter||a,p=ve({"recharts-legend-item":!0,["legend-item-".concat(h)]:!0,inactive:m.inactive});if(m.type==="none")return null;var b=typeof l=="object"?bp({},l):{};b.color=m.inactive?i:b.color||m.color;var y=v?v(m.value,m,h):m.value;return f.createElement("li",Xa({className:p,style:d,key:"legend-item-".concat(h)},Sc(e,m,h)),f.createElement(bc,{width:r,height:r,viewBox:c,style:u,"aria-label":"".concat(m.value," legend icon")},f.createElement(WC,{data:m,iconType:o,inactiveColor:i})),f.createElement("span",{className:"recharts-legend-item-text",style:b},y))})}var GC=e=>{var t=Ke(e,UC),{payload:r,layout:n,align:a}=t;if(!r||!r.length)return null;var i={padding:0,margin:0,textAlign:n==="horizontal"?a:"left"};return f.createElement("ul",{className:"recharts-default-legend",style:i},f.createElement(HC,Xa({},t,{payload:r})))},$s={},Fs={},pd;function XC(){return pd||(pd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,n){const a=new Map;for(let i=0;i<r.length;i++){const o=r[i],l=n(o,i,r);a.has(l)||a.set(l,o)}return Array.from(a.values())}e.uniqBy=t})(Fs)),Fs}var Bs={},yd;function YC(){return yd||(yd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,n){return function(...a){return r.apply(this,a.slice(0,n))}}e.ary=t})(Bs)),Bs}var zs={},gd;function xp(){return gd||(gd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r}e.identity=t})(zs)),zs}var Ks={},Vs={},Us={},bd;function ZC(){return bd||(bd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return Number.isSafeInteger(r)&&r>=0}e.isLength=t})(Us)),Us}var xd;function jp(){return xd||(xd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=ZC();function r(n){return n!=null&&typeof n!="function"&&t.isLength(n.length)}e.isArrayLike=r})(Vs)),Vs}var qs={},jd;function JC(){return jd||(jd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return typeof r=="object"&&r!==null}e.isObjectLike=t})(qs)),qs}var wd;function QC(){return wd||(wd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=jp(),r=JC();function n(a){return r.isObjectLike(a)&&t.isArrayLike(a)}e.isArrayLikeObject=n})(Ks)),Ks}var Ws={},Hs={},Cd;function ek(){return Cd||(Cd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=wc();function r(n){return function(a){return t.get(a,n)}}e.property=r})(Hs)),Hs}var Gs={},Xs={},Ys={},Zs={},kd;function wp(){return kd||(kd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r!==null&&(typeof r=="object"||typeof r=="function")}e.isObject=t})(Zs)),Zs}var Js={},Sd;function Cp(){return Sd||(Sd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r==null||typeof r!="object"&&typeof r!="function"}e.isPrimitive=t})(Js)),Js}var Qs={},Nd;function kp(){return Nd||(Nd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,n){return r===n||Number.isNaN(r)&&Number.isNaN(n)}e.isEqualsSameValueZero=t})(Qs)),Qs}var Pd;function tk(){return Pd||(Pd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=wp(),r=Cp(),n=kp();function a(u,m,h){return typeof h!="function"?a(u,m,()=>{}):i(u,m,function v(p,b,y,g,j,x){const C=h(p,b,y,g,j,x);return C!==void 0?!!C:i(p,b,v,x)},new Map)}function i(u,m,h,v){if(m===u)return!0;switch(typeof m){case"object":return o(u,m,h,v);case"function":return Object.keys(m).length>0?i(u,{...m},h,v):n.isEqualsSameValueZero(u,m);default:return t.isObject(u)?typeof m=="string"?m==="":!0:n.isEqualsSameValueZero(u,m)}}function o(u,m,h,v){if(m==null)return!0;if(Array.isArray(m))return c(u,m,h,v);if(m instanceof Map)return l(u,m,h,v);if(m instanceof Set)return d(u,m,h,v);const p=Object.keys(m);if(u==null||r.isPrimitive(u))return p.length===0;if(p.length===0)return!0;if(v?.has(m))return v.get(m)===u;v?.set(m,u);try{for(let b=0;b<p.length;b++){const y=p[b];if(!r.isPrimitive(u)&&!(y in u)||m[y]===void 0&&u[y]!==void 0||m[y]===null&&u[y]!==null||!h(u[y],m[y],y,u,m,v))return!1}return!0}finally{v?.delete(m)}}function l(u,m,h,v){if(m.size===0)return!0;if(!(u instanceof Map))return!1;for(const[p,b]of m.entries()){const y=u.get(p);if(h(y,b,p,u,m,v)===!1)return!1}return!0}function c(u,m,h,v){if(m.length===0)return!0;if(!Array.isArray(u))return!1;const p=new Set;for(let b=0;b<m.length;b++){const y=m[b];let g=!1;for(let j=0;j<u.length;j++){if(p.has(j))continue;const x=u[j];let C=!1;if(h(x,y,b,u,m,v)&&(C=!0),C){p.add(j),g=!0;break}}if(!g)return!1}return!0}function d(u,m,h,v){return m.size===0?!0:u instanceof Set?c([...u],[...m],h,v):!1}e.isMatchWith=a,e.isSetMatch=d})(Ys)),Ys}var Ad;function Sp(){return Ad||(Ad=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=tk();function r(n,a){return t.isMatchWith(n,a,()=>{})}e.isMatch=r})(Xs)),Xs}var eo={},to={},ro={},Od;function rk(){return Od||(Od=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return Object.getOwnPropertySymbols(r).filter(n=>Object.prototype.propertyIsEnumerable.call(r,n))}e.getSymbols=t})(ro)),ro}var no={},Ed;function Nc(){return Ed||(Ed=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r==null?r===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(r)}e.getTag=t})(no)),no}var ao={},_d;function Np(){return _d||(_d=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t="[object RegExp]",r="[object String]",n="[object Number]",a="[object Boolean]",i="[object Arguments]",o="[object Symbol]",l="[object Date]",c="[object Map]",d="[object Set]",u="[object Array]",m="[object Function]",h="[object ArrayBuffer]",v="[object Object]",p="[object Error]",b="[object DataView]",y="[object Uint8Array]",g="[object Uint8ClampedArray]",j="[object Uint16Array]",x="[object Uint32Array]",C="[object BigUint64Array]",w="[object Int8Array]",P="[object Int16Array]",A="[object Int32Array]",S="[object BigInt64Array]",N="[object Float32Array]",E="[object Float64Array]";e.argumentsTag=i,e.arrayBufferTag=h,e.arrayTag=u,e.bigInt64ArrayTag=S,e.bigUint64ArrayTag=C,e.booleanTag=a,e.dataViewTag=b,e.dateTag=l,e.errorTag=p,e.float32ArrayTag=N,e.float64ArrayTag=E,e.functionTag=m,e.int16ArrayTag=P,e.int32ArrayTag=A,e.int8ArrayTag=w,e.mapTag=c,e.numberTag=n,e.objectTag=v,e.regexpTag=t,e.setTag=d,e.stringTag=r,e.symbolTag=o,e.uint16ArrayTag=j,e.uint32ArrayTag=x,e.uint8ArrayTag=y,e.uint8ClampedArrayTag=g})(ao)),ao}var io={},Td;function nk(){return Td||(Td=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}e.isTypedArray=t})(io)),io}var Md;function Pp(){return Md||(Md=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=rk(),r=Nc(),n=Np(),a=Cp(),i=nk();function o(u,m){return l(u,void 0,u,new Map,m)}function l(u,m,h,v=new Map,p=void 0){const b=p?.(u,m,h,v);if(b!==void 0)return b;if(a.isPrimitive(u))return u;if(v.has(u))return v.get(u);if(Array.isArray(u)){const y=new Array(u.length);v.set(u,y);for(let g=0;g<u.length;g++)y[g]=l(u[g],g,h,v,p);return Object.hasOwn(u,"index")&&(y.index=u.index),Object.hasOwn(u,"input")&&(y.input=u.input),y}if(u instanceof Date)return new Date(u.getTime());if(u instanceof RegExp){const y=new RegExp(u.source,u.flags);return y.lastIndex=u.lastIndex,y}if(u instanceof Map){const y=new Map;v.set(u,y);for(const[g,j]of u)y.set(g,l(j,g,h,v,p));return y}if(u instanceof Set){const y=new Set;v.set(u,y);for(const g of u)y.add(l(g,void 0,h,v,p));return y}if(typeof Buffer<"u"&&Buffer.isBuffer(u))return u.subarray();if(i.isTypedArray(u)){const y=new(Object.getPrototypeOf(u)).constructor(u.length);v.set(u,y);for(let g=0;g<u.length;g++)y[g]=l(u[g],g,h,v,p);return y}if(u instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&u instanceof SharedArrayBuffer)return u.slice(0);if(u instanceof DataView){const y=new DataView(u.buffer.slice(0),u.byteOffset,u.byteLength);return v.set(u,y),c(y,u,h,v,p),y}if(typeof File<"u"&&u instanceof File){const y=new File([u],u.name,{type:u.type});return v.set(u,y),c(y,u,h,v,p),y}if(typeof Blob<"u"&&u instanceof Blob){const y=new Blob([u],{type:u.type});return v.set(u,y),c(y,u,h,v,p),y}if(u instanceof Error){const y=structuredClone(u);return v.set(u,y),y.message=u.message,y.name=u.name,y.stack=u.stack,y.cause=u.cause,y.constructor=u.constructor,c(y,u,h,v,p),y}if(u instanceof Boolean){const y=new Boolean(u.valueOf());return v.set(u,y),c(y,u,h,v,p),y}if(u instanceof Number){const y=new Number(u.valueOf());return v.set(u,y),c(y,u,h,v,p),y}if(u instanceof String){const y=new String(u.valueOf());return v.set(u,y),c(y,u,h,v,p),y}if(typeof u=="object"&&d(u)){const y=Object.create(Object.getPrototypeOf(u));return v.set(u,y),c(y,u,h,v,p),y}return u}function c(u,m,h=u,v,p){const b=[...Object.keys(m),...t.getSymbols(m)];for(let y=0;y<b.length;y++){const g=b[y],j=Object.getOwnPropertyDescriptor(u,g);(j==null||j.writable)&&(u[g]=l(m[g],g,h,v,p))}}function d(u){switch(r.getTag(u)){case n.argumentsTag:case n.arrayTag:case n.arrayBufferTag:case n.dataViewTag:case n.booleanTag:case n.dateTag:case n.float32ArrayTag:case n.float64ArrayTag:case n.int8ArrayTag:case n.int16ArrayTag:case n.int32ArrayTag:case n.mapTag:case n.numberTag:case n.objectTag:case n.regexpTag:case n.setTag:case n.stringTag:case n.symbolTag:case n.uint8ArrayTag:case n.uint8ClampedArrayTag:case n.uint16ArrayTag:case n.uint32ArrayTag:return!0;default:return!1}}e.cloneDeepWith=o,e.cloneDeepWithImpl=l,e.copyProperties=c})(to)),to}var Id;function ak(){return Id||(Id=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Pp();function r(n){return t.cloneDeepWithImpl(n,void 0,n,new Map,void 0)}e.cloneDeep=r})(eo)),eo}var Dd;function ik(){return Dd||(Dd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Sp(),r=ak();function n(a){return a=r.cloneDeep(a),i=>t.isMatch(i,a)}e.matches=n})(Gs)),Gs}var so={},oo={},lo={},Rd;function sk(){return Rd||(Rd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Pp(),r=Nc(),n=Np();function a(i,o){return t.cloneDeepWith(i,(l,c,d,u)=>{const m=o?.(l,c,d,u);if(m!==void 0)return m;if(typeof i=="object"){if(r.getTag(i)===n.objectTag&&typeof i.constructor!="function"){const h={};return u.set(i,h),t.copyProperties(h,i,d,u),h}switch(Object.prototype.toString.call(i)){case n.numberTag:case n.stringTag:case n.booleanTag:{const h=new i.constructor(i?.valueOf());return t.copyProperties(h,i),h}case n.argumentsTag:{const h={};return t.copyProperties(h,i),h.length=i.length,h[Symbol.iterator]=i[Symbol.iterator],h}default:return}}})}e.cloneDeepWith=a})(lo)),lo}var Ld;function ok(){return Ld||(Ld=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=sk();function r(n){return t.cloneDeepWith(n)}e.cloneDeep=r})(oo)),oo}var co={},uo={},$d;function Ap(){return $d||($d=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=/^(?:0|[1-9]\d*)$/;function r(n,a=Number.MAX_SAFE_INTEGER){switch(typeof n){case"number":return Number.isInteger(n)&&n>=0&&n<a;case"symbol":return!1;case"string":return t.test(n)}}e.isIndex=r})(uo)),uo}var fo={},Fd;function lk(){return Fd||(Fd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Nc();function r(n){return n!==null&&typeof n=="object"&&t.getTag(n)==="[object Arguments]"}e.isArguments=r})(fo)),fo}var Bd;function ck(){return Bd||(Bd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=vp(),r=Ap(),n=lk(),a=jc();function i(o,l){let c;if(Array.isArray(l)?c=l:typeof l=="string"&&t.isDeepKey(l)&&o?.[l]==null?c=a.toPath(l):c=[l],c.length===0)return!1;let d=o;for(let u=0;u<c.length;u++){const m=c[u];if((d==null||!Object.hasOwn(d,m))&&!((Array.isArray(d)||n.isArguments(d))&&r.isIndex(m)&&m<d.length))return!1;d=d[m]}return!0}e.has=i})(co)),co}var zd;function uk(){return zd||(zd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Sp(),r=xc(),n=ok(),a=wc(),i=ck();function o(l,c){switch(typeof l){case"object":{Object.is(l?.valueOf(),-0)&&(l="-0");break}case"number":{l=r.toKey(l);break}}return c=n.cloneDeep(c),function(d){const u=a.get(d,l);return u===void 0?i.has(d,l):c===void 0?u===void 0:t.isMatch(u,c)}}e.matchesProperty=o})(so)),so}var Kd;function dk(){return Kd||(Kd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=xp(),r=ek(),n=ik(),a=uk();function i(o){if(o==null)return t.identity;switch(typeof o){case"function":return o;case"object":return Array.isArray(o)&&o.length===2?a.matchesProperty(o[0],o[1]):n.matches(o);case"string":case"symbol":case"number":return r.property(o)}}e.iteratee=i})(Ws)),Ws}var Vd;function fk(){return Vd||(Vd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=XC(),r=YC(),n=xp(),a=QC(),i=dk();function o(l,c=n.identity){return a.isArrayLikeObject(l)?t.uniqBy(Array.from(l),r.ary(i.iteratee(c),1)):[]}e.uniqBy=o})($s)),$s}var mo,Ud;function mk(){return Ud||(Ud=1,mo=fk().uniqBy),mo}var vk=mk();const qd=mn(vk);function Op(e,t,r){return t===!0?qd(e,r):typeof t=="function"?qd(e,t):e}var Pc=f.createContext(null),hk=e=>e,pe=()=>{var e=f.useContext(Pc);return e?e.store.dispatch:hk},Fa=()=>{},pk=()=>Fa,yk=(e,t)=>e===t;function Z(e){var t=f.useContext(Pc),r=f.useMemo(()=>t?n=>{if(n!=null)return e(n)}:Fa,[t,e]);return u0.useSyncExternalStoreWithSelector(t?t.subscription.addNestedSub:pk,t?t.store.getState:Fa,t?t.store.getState:Fa,r,yk)}function gk(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function bk(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!="object")throw new TypeError(t)}function xk(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){const r=e.map(n=>typeof n=="function"?`function ${n.name||"unnamed"}()`:typeof n).join(", ");throw new TypeError(`${t}[${r}]`)}}var Wd=e=>Array.isArray(e)?e:[e];function jk(e){const t=Array.isArray(e[0])?e[0]:e;return xk(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function wk(e,t){const r=[],{length:n}=e;for(let a=0;a<n;a++)r.push(e[a].apply(null,t));return r}var Ck=class{constructor(e){this.value=e}deref(){return this.value}},kk=typeof WeakRef<"u"?WeakRef:Ck,Sk=0,Hd=1;function xa(){return{s:Sk,v:void 0,o:null,p:null}}function Ep(e,t={}){let r=xa();const{resultEqualityCheck:n}=t;let a,i=0;function o(){let l=r;const{length:c}=arguments;for(let m=0,h=c;m<h;m++){const v=arguments[m];if(typeof v=="function"||typeof v=="object"&&v!==null){let p=l.o;p===null&&(l.o=p=new WeakMap);const b=p.get(v);b===void 0?(l=xa(),p.set(v,l)):l=b}else{let p=l.p;p===null&&(l.p=p=new Map);const b=p.get(v);b===void 0?(l=xa(),p.set(v,l)):l=b}}const d=l;let u;if(l.s===Hd)u=l.v;else if(u=e.apply(null,arguments),i++,n){const m=a?.deref?.()??a;m!=null&&n(m,u)&&(u=m,i!==0&&i--),a=typeof u=="object"&&u!==null||typeof u=="function"?new kk(u):u}return d.s=Hd,d.v=u,u}return o.clearCache=()=>{r=xa(),o.resetResultsCount()},o.resultsCount=()=>i,o.resetResultsCount=()=>{i=0},o}function Nk(e,...t){const r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...a)=>{let i=0,o=0,l,c={},d=a.pop();typeof d=="object"&&(c=d,d=a.pop()),gk(d,`createSelector expects an output function after the inputs, but received: [${typeof d}]`);const u={...r,...c},{memoize:m,memoizeOptions:h=[],argsMemoize:v=Ep,argsMemoizeOptions:p=[]}=u,b=Wd(h),y=Wd(p),g=jk(a),j=m(function(){return i++,d.apply(null,arguments)},...b),x=v(function(){o++;const w=wk(g,arguments);return l=j.apply(null,w),l},...y);return Object.assign(x,{resultFunc:d,memoizedResultFunc:j,dependencies:g,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>l,recomputations:()=>i,resetRecomputations:()=>{i=0},memoize:m,argsMemoize:v})};return Object.assign(n,{withTypes:()=>n}),n}var _=Nk(Ep),Pk=Object.assign((e,t=_)=>{bk(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);const r=Object.keys(e),n=r.map(i=>e[i]);return t(n,(...i)=>i.reduce((o,l,c)=>(o[r[c]]=l,o),{}))},{withTypes:()=>Pk}),vo={},ho={},po={},Gd;function Ak(){return Gd||(Gd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return typeof n=="symbol"?1:n===null?2:n===void 0?3:n!==n?4:0}const r=(n,a,i)=>{if(n!==a){const o=t(n),l=t(a);if(o===l&&o===0){if(n<a)return i==="desc"?1:-1;if(n>a)return i==="desc"?-1:1}return i==="desc"?l-o:o-l}return 0};e.compareValues=r})(po)),po}var yo={},go={},Xd;function _p(){return Xd||(Xd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return typeof r=="symbol"||r instanceof Symbol}e.isSymbol=t})(go)),go}var Yd;function Ok(){return Yd||(Yd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=_p(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,n=/^\w*$/;function a(i,o){return Array.isArray(i)?!1:typeof i=="number"||typeof i=="boolean"||i==null||t.isSymbol(i)?!0:typeof i=="string"&&(n.test(i)||!r.test(i))||o!=null&&Object.hasOwn(o,i)}e.isKey=a})(yo)),yo}var Zd;function Ek(){return Zd||(Zd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Ak(),r=Ok(),n=jc();function a(i,o,l,c){if(i==null)return[];l=c?void 0:l,Array.isArray(i)||(i=Object.values(i)),Array.isArray(o)||(o=o==null?[null]:[o]),o.length===0&&(o=[null]),Array.isArray(l)||(l=l==null?[]:[l]),l=l.map(v=>String(v));const d=(v,p)=>{let b=v;for(let y=0;y<p.length&&b!=null;++y)b=b[p[y]];return b},u=(v,p)=>p==null||v==null?p:typeof v=="object"&&"key"in v?Object.hasOwn(p,v.key)?p[v.key]:d(p,v.path):typeof v=="function"?v(p):Array.isArray(v)?d(p,v):typeof p=="object"?p[v]:p,m=o.map(v=>(Array.isArray(v)&&v.length===1&&(v=v[0]),v==null||typeof v=="function"||Array.isArray(v)||r.isKey(v)?v:{key:v,path:n.toPath(v)}));return i.map(v=>({original:v,criteria:m.map(p=>u(p,v))})).slice().sort((v,p)=>{for(let b=0;b<m.length;b++){const y=t.compareValues(v.criteria[b],p.criteria[b],l[b]);if(y!==0)return y}return 0}).map(v=>v.original)}e.orderBy=a})(ho)),ho}var bo={},Jd;function _k(){return Jd||(Jd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,n=1){const a=[],i=Math.floor(n),o=(l,c)=>{for(let d=0;d<l.length;d++){const u=l[d];Array.isArray(u)&&c<i?o(u,c+1):a.push(u)}};return o(r,0),a}e.flatten=t})(bo)),bo}var xo={},Qd;function Tp(){return Qd||(Qd=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Ap(),r=jp(),n=wp(),a=kp();function i(o,l,c){return n.isObject(c)&&(typeof l=="number"&&r.isArrayLike(c)&&t.isIndex(l)&&l<c.length||typeof l=="string"&&l in c)?a.isEqualsSameValueZero(c[l],o):!1}e.isIterateeCall=i})(xo)),xo}var ef;function Tk(){return ef||(ef=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Ek(),r=_k(),n=Tp();function a(i,...o){const l=o.length;return l>1&&n.isIterateeCall(i,o[0],o[1])?o=[]:l>2&&n.isIterateeCall(o[0],o[1],o[2])&&(o=[o[0]]),t.orderBy(i,r.flatten(o),["asc"])}e.sortBy=a})(vo)),vo}var jo,tf;function Mk(){return tf||(tf=1,jo=Tk().sortBy),jo}var Ik=Mk();const zi=mn(Ik);var Mp=e=>e.legend.settings,Dk=e=>e.legend.size,Rk=e=>e.legend.payload,Lk=_([Rk,Mp],(e,t)=>{var{itemSorter:r}=t,n=e.flat(1);return r?zi(n,r):n});function $k(){return Z(Lk)}var ja=1;function Ip(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],[t,r]=f.useState({height:0,left:0,top:0,width:0}),n=f.useCallback(a=>{if(a!=null){var i=a.getBoundingClientRect(),o={height:i.height,left:i.left,top:i.top,width:i.width};(Math.abs(o.height-t.height)>ja||Math.abs(o.left-t.left)>ja||Math.abs(o.top-t.top)>ja||Math.abs(o.width-t.width)>ja)&&r({height:o.height,left:o.left,top:o.top,width:o.width})}},[t.width,t.height,t.top,t.left,...e]);return[t,n]}function Xe(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Fk=typeof Symbol=="function"&&Symbol.observable||"@@observable",rf=Fk,wo=()=>Math.random().toString(36).substring(7).split("").join("."),Bk={INIT:`@@redux/INIT${wo()}`,REPLACE:`@@redux/REPLACE${wo()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${wo()}`},Ya=Bk;function Ac(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function Dp(e,t,r){if(typeof e!="function")throw new Error(Xe(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(Xe(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(Xe(1));return r(Dp)(e,t)}let n=e,a=t,i=new Map,o=i,l=0,c=!1;function d(){o===i&&(o=new Map,i.forEach((y,g)=>{o.set(g,y)}))}function u(){if(c)throw new Error(Xe(3));return a}function m(y){if(typeof y!="function")throw new Error(Xe(4));if(c)throw new Error(Xe(5));let g=!0;d();const j=l++;return o.set(j,y),function(){if(g){if(c)throw new Error(Xe(6));g=!1,d(),o.delete(j),i=null}}}function h(y){if(!Ac(y))throw new Error(Xe(7));if(typeof y.type>"u")throw new Error(Xe(8));if(typeof y.type!="string")throw new Error(Xe(17));if(c)throw new Error(Xe(9));try{c=!0,a=n(a,y)}finally{c=!1}return(i=o).forEach(j=>{j()}),y}function v(y){if(typeof y!="function")throw new Error(Xe(10));n=y,h({type:Ya.REPLACE})}function p(){const y=m;return{subscribe(g){if(typeof g!="object"||g===null)throw new Error(Xe(11));function j(){const C=g;C.next&&C.next(u())}return j(),{unsubscribe:y(j)}},[rf](){return this}}}return h({type:Ya.INIT}),{dispatch:h,subscribe:m,getState:u,replaceReducer:v,[rf]:p}}function zk(e){Object.keys(e).forEach(t=>{const r=e[t];if(typeof r(void 0,{type:Ya.INIT})>"u")throw new Error(Xe(12));if(typeof r(void 0,{type:Ya.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Xe(13))})}function Rp(e){const t=Object.keys(e),r={};for(let i=0;i<t.length;i++){const o=t[i];typeof e[o]=="function"&&(r[o]=e[o])}const n=Object.keys(r);let a;try{zk(r)}catch(i){a=i}return function(o={},l){if(a)throw a;let c=!1;const d={};for(let u=0;u<n.length;u++){const m=n[u],h=r[m],v=o[m],p=h(v,l);if(typeof p>"u")throw l&&l.type,new Error(Xe(14));d[m]=p,c=c||p!==v}return c=c||n.length!==Object.keys(o).length,c?d:o}}function Za(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function Kk(...e){return t=>(r,n)=>{const a=t(r,n);let i=()=>{throw new Error(Xe(15))};const o={getState:a.getState,dispatch:(c,...d)=>i(c,...d)},l=e.map(c=>c(o));return i=Za(...l)(a.dispatch),{...a,dispatch:i}}}function Lp(e){return Ac(e)&&"type"in e&&typeof e.type=="string"}var $p=Symbol.for("immer-nothing"),nf=Symbol.for("immer-draftable"),lt=Symbol.for("immer-state");function Pt(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var vt=Object,sn=vt.getPrototypeOf,Ja="constructor",Ki="prototype",vl="configurable",Qa="enumerable",Ba="writable",Vn="value",Jt=e=>!!e&&!!e[lt];function Et(e){return e?Fp(e)||Ui(e)||!!e[nf]||!!e[Ja]?.[nf]||qi(e)||Wi(e):!1}var Vk=vt[Ki][Ja].toString(),af=new WeakMap;function Fp(e){if(!e||!Oc(e))return!1;const t=sn(e);if(t===null||t===vt[Ki])return!0;const r=vt.hasOwnProperty.call(t,Ja)&&t[Ja];if(r===Object)return!0;if(!Xr(r))return!1;let n=af.get(r);return n===void 0&&(n=Function.toString.call(r),af.set(r,n)),n===Vk}function Vi(e,t,r=!0){ra(e)===0?(r?Reflect.ownKeys(e):vt.keys(e)).forEach(a=>{t(a,e[a],e)}):e.forEach((n,a)=>t(a,n,e))}function ra(e){const t=e[lt];return t?t.type_:Ui(e)?1:qi(e)?2:Wi(e)?3:0}var sf=(e,t,r=ra(e))=>r===2?e.has(t):vt[Ki].hasOwnProperty.call(e,t),hl=(e,t,r=ra(e))=>r===2?e.get(t):e[t],ei=(e,t,r,n=ra(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function Uk(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var Ui=Array.isArray,qi=e=>e instanceof Map,Wi=e=>e instanceof Set,Oc=e=>typeof e=="object",Xr=e=>typeof e=="function",Co=e=>typeof e=="boolean";function qk(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var qt=e=>e.copy_||e.base_,Ec=e=>e.modified_?e.copy_:e.base_;function pl(e,t){if(qi(e))return new Map(e);if(Wi(e))return new Set(e);if(Ui(e))return Array[Ki].slice.call(e);const r=Fp(e);if(t===!0||t==="class_only"&&!r){const n=vt.getOwnPropertyDescriptors(e);delete n[lt];let a=Reflect.ownKeys(n);for(let i=0;i<a.length;i++){const o=a[i],l=n[o];l[Ba]===!1&&(l[Ba]=!0,l[vl]=!0),(l.get||l.set)&&(n[o]={[vl]:!0,[Ba]:!0,[Qa]:l[Qa],[Vn]:e[o]})}return vt.create(sn(e),n)}else{const n=sn(e);if(n!==null&&r)return{...e};const a=vt.create(n);return vt.assign(a,e)}}function _c(e,t=!1){return Hi(e)||Jt(e)||!Et(e)||(ra(e)>1&&vt.defineProperties(e,{set:wa,add:wa,clear:wa,delete:wa}),vt.freeze(e),t&&Vi(e,(r,n)=>{_c(n,!0)},!1)),e}function Wk(){Pt(2)}var wa={[Vn]:Wk};function Hi(e){return e===null||!Oc(e)?!0:vt.isFrozen(e)}var ti="MapSet",yl="Patches",of="ArrayMethods",Bp={};function Ir(e){const t=Bp[e];return t||Pt(0,e),t}var lf=e=>!!Bp[e],Un,zp=()=>Un,Hk=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:lf(ti)?Ir(ti):void 0,arrayMethodsPlugin_:lf(of)?Ir(of):void 0});function cf(e,t){t&&(e.patchPlugin_=Ir(yl),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function gl(e){bl(e),e.drafts_.forEach(Gk),e.drafts_=null}function bl(e){e===Un&&(Un=e.parent_)}var uf=e=>Un=Hk(Un,e);function Gk(e){const t=e[lt];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function df(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];if(e!==void 0&&e!==r){r[lt].modified_&&(gl(t),Pt(4)),Et(e)&&(e=ff(t,e));const{patchPlugin_:a}=t;a&&a.generateReplacementPatches_(r[lt].base_,e,t)}else e=ff(t,r);return Xk(t,e,!0),gl(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==$p?e:void 0}function ff(e,t){if(Hi(t))return t;const r=t[lt];if(!r)return ri(t,e.handledSet_,e);if(!Gi(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){const{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);Up(r,e)}return r.copy_}function Xk(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&_c(t,r)}function Kp(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Gi=(e,t)=>e.scope_===t,Yk=[];function Vp(e,t,r,n){const a=qt(e),i=e.type_;if(n!==void 0&&hl(a,n,i)===t){ei(a,n,r,i);return}if(!e.draftLocations_){const l=e.draftLocations_=new Map;Vi(a,(c,d)=>{if(Jt(d)){const u=l.get(d)||[];u.push(c),l.set(d,u)}})}const o=e.draftLocations_.get(t)??Yk;for(const l of o)ei(a,l,r,i)}function Zk(e,t,r){e.callbacks_.push(function(a){const i=t;if(!i||!Gi(i,a))return;a.mapSetPlugin_?.fixSetContents(i);const o=Ec(i);Vp(e,i.draft_??i,o,r),Up(i,a)})}function Up(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){const{patchPlugin_:n}=t;if(n){const a=n.getPath(e);a&&n.generatePatches_(e,a,t)}Kp(e)}}function Jk(e,t,r){const{scope_:n}=e;if(Jt(r)){const a=r[lt];Gi(a,n)&&a.callbacks_.push(function(){za(e);const o=Ec(a);Vp(e,r,o,t)})}else Et(r)&&e.callbacks_.push(function(){const i=qt(e);e.type_===3?i.has(r)&&ri(r,n.handledSet_,n):hl(i,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&ri(hl(e.copy_,t,e.type_),n.handledSet_,n)})}function ri(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||Jt(e)||t.has(e)||!Et(e)||Hi(e)||(t.add(e),Vi(e,(n,a)=>{if(Jt(a)){const i=a[lt];if(Gi(i,r)){const o=Ec(i);ei(e,n,o,e.type_),Kp(i)}}else Et(a)&&ri(a,t,r)})),e}function Qk(e,t){const r=Ui(e),n={type_:r?1:0,scope_:t?t.scope_:zp(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let a=n,i=ni;r&&(a=[n],i=qn);const{revoke:o,proxy:l}=Proxy.revocable(a,i);return n.draft_=l,n.revoke_=o,[l,n]}var ni={get(e,t){if(t===lt)return e;let r=e.scope_.arrayMethodsPlugin_;const n=e.type_===1&&typeof t=="string";if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);const a=qt(e);if(!sf(a,t,e.type_))return eS(e,a,t);const i=a[t];if(e.finalized_||!Et(i)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&qk(t))return i;if(i===ko(e.base_,t)){za(e);const o=e.type_===1?+t:t,l=jl(e.scope_,i,e,o);return e.copy_[o]=l}return i},has(e,t){return t in qt(e)},ownKeys(e){return Reflect.ownKeys(qt(e))},set(e,t,r){const n=qp(qt(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const a=ko(qt(e),t),i=a?.[lt];if(i&&i.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(Uk(r,a)&&(r!==void 0||sf(e.base_,t,e.type_)))return!0;za(e),xl(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),Jk(e,t,r)),!0},deleteProperty(e,t){return za(e),ko(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),xl(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=qt(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[Ba]:!0,[vl]:e.type_!==1||t!=="length",[Qa]:n[Qa],[Vn]:r[t]}},defineProperty(){Pt(11)},getPrototypeOf(e){return sn(e.base_)},setPrototypeOf(){Pt(12)}},qn={};for(let e in ni){let t=ni[e];qn[e]=function(){const r=arguments;return r[0]=r[0][0],t.apply(this,r)}}qn.deleteProperty=function(e,t){return qn.set.call(this,e,t,void 0)};qn.set=function(e,t,r){return ni.set.call(this,e[0],t,r,e[0])};function ko(e,t){const r=e[lt];return(r?qt(r):e)[t]}function eS(e,t,r){const n=qp(t,r);return n?Vn in n?n[Vn]:n.get?.call(e.draft_):void 0}function qp(e,t){if(!(t in e))return;let r=sn(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=sn(r)}}function xl(e){e.modified_||(e.modified_=!0,e.parent_&&xl(e.parent_))}function za(e){e.copy_||(e.assigned_=new Map,e.copy_=pl(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var tS=class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(r,n,a)=>{if(Xr(r)&&!Xr(n)){const o=n;n=r;const l=this;return function(d=o,...u){return l.produce(d,m=>n.call(this,m,...u))}}Xr(n)||Pt(6),a!==void 0&&!Xr(a)&&Pt(7);let i;if(Et(r)){const o=uf(this),l=jl(o,r,void 0);let c=!0;try{i=n(l),c=!1}finally{c?gl(o):bl(o)}return cf(o,a),df(i,o)}else if(!r||!Oc(r)){if(i=n(r),i===void 0&&(i=r),i===$p&&(i=void 0),this.autoFreeze_&&_c(i,!0),a){const o=[],l=[];Ir(yl).generateReplacementPatches_(r,i,{patches_:o,inversePatches_:l}),a(o,l)}return i}else Pt(1,r)},this.produceWithPatches=(r,n)=>{if(Xr(r))return(l,...c)=>this.produceWithPatches(l,d=>r(d,...c));let a,i;return[this.produce(r,n,(l,c)=>{a=l,i=c}),a,i]},Co(t?.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),Co(t?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),Co(t?.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){Et(t)||Pt(8),Jt(t)&&(t=Ct(t));const r=uf(this),n=jl(r,t,void 0);return n[lt].isManual_=!0,bl(r),n}finishDraft(t,r){const n=t&&t[lt];(!n||!n.isManual_)&&Pt(9);const{scope_:a}=n;return cf(a,r),df(void 0,a)}setAutoFreeze(t){this.autoFreeze_=t}setUseStrictShallowCopy(t){this.useStrictShallowCopy_=t}setUseStrictIteration(t){this.useStrictIteration_=t}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(t,r){let n;for(n=r.length-1;n>=0;n--){const i=r[n];if(i.path.length===0&&i.op==="replace"){t=i.value;break}}n>-1&&(r=r.slice(n+1));const a=Ir(yl).applyPatches_;return Jt(t)?a(t,r):this.produce(t,i=>a(i,r))}};function jl(e,t,r,n){const[a,i]=qi(t)?Ir(ti).proxyMap_(t,r):Wi(t)?Ir(ti).proxySet_(t,r):Qk(t,r);return(r?.scope_??zp()).drafts_.push(a),i.callbacks_=r?.callbacks_??[],i.key_=n,r&&n!==void 0?Zk(r,i,n):i.callbacks_.push(function(c){c.mapSetPlugin_?.fixSetContents(i);const{patchPlugin_:d}=c;i.modified_&&d&&d.generatePatches_(i,[],c)}),a}function Ct(e){return Jt(e)||Pt(10,e),Wp(e)}function Wp(e){if(!Et(e)||Hi(e))return e;const t=e[lt];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=pl(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=pl(e,!0);return Vi(r,(a,i)=>{ei(r,a,Wp(i))},n),t&&(t.finalized_=!1),r}var rS=new tS,Hp=rS.produce;function Gp(e){return({dispatch:r,getState:n})=>a=>i=>typeof i=="function"?i(r,n,e):a(i)}var nS=Gp(),aS=Gp,iS=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Za:Za.apply(null,arguments)};function yt(e,t){function r(...n){if(t){let a=t(...n);if(!a)throw new Error(pt(0));return{type:e,payload:a.payload,..."meta"in a&&{meta:a.meta},..."error"in a&&{error:a.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>Lp(n)&&n.type===e,r}var Xp=class Dn extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,Dn.prototype)}static get[Symbol.species](){return Dn}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new Dn(...t[0].concat(this)):new Dn(...t.concat(this))}};function mf(e){return Et(e)?Hp(e,()=>{}):e}function Ca(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function sS(e){return typeof e=="boolean"}var oS=()=>function(t){const{thunk:r=!0,immutableCheck:n=!0,serializableCheck:a=!0,actionCreatorCheck:i=!0}=t??{};let o=new Xp;return r&&(sS(r)?o.push(nS):o.push(aS(r.extraArgument))),o},Yp="RTK_autoBatch",je=()=>e=>({payload:e,meta:{[Yp]:!0}}),vf=e=>t=>{setTimeout(t,e)},lS=(e,t)=>r=>{let n=!1;const a=()=>{n||(n=!0,cancelAnimationFrame(i),clearTimeout(o),r())},i=e(a),o=setTimeout(a,t)},Zp=(e={type:"raf"})=>t=>(...r)=>{const n=t(...r);let a=!0,i=!1,o=!1;const l=new Set,c=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?lS(window.requestAnimationFrame,100):vf(10):e.type==="callback"?e.queueNotification:vf(e.timeout),d=()=>{o=!1,i&&(i=!1,l.forEach(u=>u()))};return Object.assign({},n,{subscribe(u){const m=()=>a&&u(),h=n.subscribe(m);return l.add(u),()=>{h(),l.delete(u)}},dispatch(u){try{return a=!u?.meta?.[Yp],i=!a,i&&(o||(o=!0,c(d))),n.dispatch(u)}finally{a=!0}}})},cS=e=>function(r){const{autoBatch:n=!0}=r??{};let a=new Xp(e);return n&&a.push(Zp(typeof n=="object"?n:void 0)),a};function uS(e){const t=oS(),{reducer:r=void 0,middleware:n,devTools:a=!0,preloadedState:i=void 0,enhancers:o=void 0}=e||{};let l;if(typeof r=="function")l=r;else if(Ac(r))l=Rp(r);else throw new Error(pt(1));let c;typeof n=="function"?c=n(t):c=t();let d=Za;a&&(d=iS({trace:!1,...typeof a=="object"&&a}));const u=Kk(...c),m=cS(u);let h=typeof o=="function"?o(m):m();const v=d(...h);return Dp(l,i,v)}function Jp(e){const t={},r=[];let n;const a={addCase(i,o){const l=typeof i=="string"?i:i.type;if(!l)throw new Error(pt(28));if(l in t)throw new Error(pt(29));return t[l]=o,a},addAsyncThunk(i,o){return o.pending&&(t[i.pending.type]=o.pending),o.rejected&&(t[i.rejected.type]=o.rejected),o.fulfilled&&(t[i.fulfilled.type]=o.fulfilled),o.settled&&r.push({matcher:i.settled,reducer:o.settled}),a},addMatcher(i,o){return r.push({matcher:i,reducer:o}),a},addDefaultCase(i){return n=i,a}};return e(a),[t,r,n]}function dS(e){return typeof e=="function"}function fS(e,t){let[r,n,a]=Jp(t),i;if(dS(e))i=()=>mf(e());else{const l=mf(e);i=()=>l}function o(l=i(),c){let d=[r[c.type],...n.filter(({matcher:u})=>u(c)).map(({reducer:u})=>u)];return d.filter(u=>!!u).length===0&&(d=[a]),d.reduce((u,m)=>{if(m)if(Jt(u)){const v=m(u,c);return v===void 0?u:v}else{if(Et(u))return Hp(u,h=>m(h,c));{const h=m(u,c);if(h===void 0){if(u===null)return u;throw Error("A case reducer on a non-draftable value must not return undefined")}return h}}return u},l)}return o.getInitialState=i,o}var mS="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",vS=(e=21)=>{let t="",r=e;for(;r--;)t+=mS[Math.random()*64|0];return t},hS=Symbol.for("rtk-slice-createasyncthunk");function pS(e,t){return`${e}/${t}`}function yS({creators:e}={}){const t=e?.asyncThunk?.[hS];return function(n){const{name:a,reducerPath:i=a}=n;if(!a)throw new Error(pt(11));const o=(typeof n.reducers=="function"?n.reducers(bS()):n.reducers)||{},l=Object.keys(o),c={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},d={addCase(x,C){const w=typeof x=="string"?x:x.type;if(!w)throw new Error(pt(12));if(w in c.sliceCaseReducersByType)throw new Error(pt(13));return c.sliceCaseReducersByType[w]=C,d},addMatcher(x,C){return c.sliceMatchers.push({matcher:x,reducer:C}),d},exposeAction(x,C){return c.actionCreators[x]=C,d},exposeCaseReducer(x,C){return c.sliceCaseReducersByName[x]=C,d}};l.forEach(x=>{const C=o[x],w={reducerName:x,type:pS(a,x),createNotation:typeof n.reducers=="function"};jS(C)?CS(w,C,d,t):xS(w,C,d)});function u(){const[x={},C=[],w=void 0]=typeof n.extraReducers=="function"?Jp(n.extraReducers):[n.extraReducers],P={...x,...c.sliceCaseReducersByType};return fS(n.initialState,A=>{for(let S in P)A.addCase(S,P[S]);for(let S of c.sliceMatchers)A.addMatcher(S.matcher,S.reducer);for(let S of C)A.addMatcher(S.matcher,S.reducer);w&&A.addDefaultCase(w)})}const m=x=>x,h=new Map,v=new WeakMap;let p;function b(x,C){return p||(p=u()),p(x,C)}function y(){return p||(p=u()),p.getInitialState()}function g(x,C=!1){function w(A){let S=A[x];return typeof S>"u"&&C&&(S=Ca(v,w,y)),S}function P(A=m){const S=Ca(h,C,()=>new WeakMap);return Ca(S,A,()=>{const N={};for(const[E,T]of Object.entries(n.selectors??{}))N[E]=gS(T,A,()=>Ca(v,A,y),C);return N})}return{reducerPath:x,getSelectors:P,get selectors(){return P(w)},selectSlice:w}}const j={name:a,reducer:b,actions:c.actionCreators,caseReducers:c.sliceCaseReducersByName,getInitialState:y,...g(i),injectInto(x,{reducerPath:C,...w}={}){const P=C??i;return x.inject({reducerPath:P,reducer:b},w),{...j,...g(P,!0)}}};return j}}function gS(e,t,r,n){function a(i,...o){let l=t(i);return typeof l>"u"&&n&&(l=r()),e(l,...o)}return a.unwrapped=e,a}var at=yS();function bS(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function xS({type:e,reducerName:t,createNotation:r},n,a){let i,o;if("reducer"in n){if(r&&!wS(n))throw new Error(pt(17));i=n.reducer,o=n.prepare}else i=n;a.addCase(e,i).exposeCaseReducer(t,i).exposeAction(t,o?yt(e,o):yt(e))}function jS(e){return e._reducerDefinitionType==="asyncThunk"}function wS(e){return e._reducerDefinitionType==="reducerWithPrepare"}function CS({type:e,reducerName:t},r,n,a){if(!a)throw new Error(pt(18));const{payloadCreator:i,fulfilled:o,pending:l,rejected:c,settled:d,options:u}=r,m=a(e,i,u);n.exposeAction(t,m),o&&n.addCase(m.fulfilled,o),l&&n.addCase(m.pending,l),c&&n.addCase(m.rejected,c),d&&n.addMatcher(m.settled,d),n.exposeCaseReducer(t,{fulfilled:o||ka,pending:l||ka,rejected:c||ka,settled:d||ka})}function ka(){}var kS="task",Qp="listener",ey="completed",Tc="cancelled",SS=`task-${Tc}`,NS=`task-${ey}`,wl=`${Qp}-${Tc}`,PS=`${Qp}-${ey}`,Xi=class{constructor(e){this.code=e,this.message=`${kS} ${Tc} (reason: ${e})`}code;name="TaskAbortError";message},Mc=(e,t)=>{if(typeof e!="function")throw new TypeError(pt(32))},ai=()=>{},ty=(e,t=ai)=>(e.catch(t),e),ry=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Or=e=>{if(e.aborted)throw new Xi(e.reason)};function ny(e,t){let r=ai;return new Promise((n,a)=>{const i=()=>a(new Xi(e.reason));if(e.aborted){i();return}r=ry(e,i),t.finally(()=>r()).then(n,a)}).finally(()=>{r=ai})}var AS=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof Xi?"cancelled":"rejected",error:r}}finally{t?.()}},ii=e=>t=>ty(ny(e,t).then(r=>(Or(e),r))),ay=e=>{const t=ii(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:rn}=Object,hf={},Yi="listenerMiddleware",OS=(e,t)=>{const r=n=>ry(e,()=>n.abort(e.reason));return(n,a)=>{Mc(n);const i=new AbortController;r(i);const o=AS(async()=>{Or(e),Or(i.signal);const l=await n({pause:ii(i.signal),delay:ay(i.signal),signal:i.signal});return Or(i.signal),l},()=>i.abort(NS));return a?.autoJoin&&t.push(o.catch(ai)),{result:ii(e)(o),cancel(){i.abort(SS)}}}},ES=(e,t)=>{const r=async(n,a)=>{Or(t);let i=()=>{};const l=[new Promise((c,d)=>{let u=e({predicate:n,effect:(m,h)=>{h.unsubscribe(),c([m,h.getState(),h.getOriginalState()])}});i=()=>{u(),d()}})];a!=null&&l.push(new Promise(c=>setTimeout(c,a,null)));try{const c=await ny(t,Promise.race(l));return Or(t),c}finally{i()}};return((n,a)=>ty(r(n,a)))},iy=e=>{let{type:t,actionCreator:r,matcher:n,predicate:a,effect:i}=e;if(t)a=yt(t).match;else if(r)t=r.type,a=r.match;else if(n)a=n;else if(!a)throw new Error(pt(21));return Mc(i),{predicate:a,type:t,effect:i}},sy=rn(e=>{const{type:t,predicate:r,effect:n}=iy(e);return{id:vS(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(pt(22))}}},{withTypes:()=>sy}),pf=(e,t)=>{const{type:r,effect:n,predicate:a}=iy(t);return Array.from(e.values()).find(i=>(typeof r=="string"?i.type===r:i.predicate===a)&&i.effect===n)},Cl=e=>{e.pending.forEach(t=>{t.abort(wl)})},_S=(e,t)=>()=>{for(const r of t.keys())Cl(r);e.clear()},yf=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},oy=rn(yt(`${Yi}/add`),{withTypes:()=>oy}),TS=yt(`${Yi}/removeAll`),ly=rn(yt(`${Yi}/remove`),{withTypes:()=>ly}),MS=(...e)=>{console.error(`${Yi}/error`,...e)},na=(e={})=>{const t=new Map,r=new Map,n=v=>{const p=r.get(v)??0;r.set(v,p+1)},a=v=>{const p=r.get(v)??1;p===1?r.delete(v):r.set(v,p-1)},{extra:i,onError:o=MS}=e;Mc(o);const l=v=>(v.unsubscribe=()=>t.delete(v.id),t.set(v.id,v),p=>{v.unsubscribe(),p?.cancelActive&&Cl(v)}),c=(v=>{const p=pf(t,v)??sy(v);return l(p)});rn(c,{withTypes:()=>c});const d=v=>{const p=pf(t,v);return p&&(p.unsubscribe(),v.cancelActive&&Cl(p)),!!p};rn(d,{withTypes:()=>d});const u=async(v,p,b,y)=>{const g=new AbortController,j=ES(c,g.signal),x=[];try{v.pending.add(g),n(v),await Promise.resolve(v.effect(p,rn({},b,{getOriginalState:y,condition:(C,w)=>j(C,w).then(Boolean),take:j,delay:ay(g.signal),pause:ii(g.signal),extra:i,signal:g.signal,fork:OS(g.signal,x),unsubscribe:v.unsubscribe,subscribe:()=>{t.set(v.id,v)},cancelActiveListeners:()=>{v.pending.forEach((C,w,P)=>{C!==g&&(C.abort(wl),P.delete(C))})},cancel:()=>{g.abort(wl),v.pending.delete(g)},throwIfCancelled:()=>{Or(g.signal)}})))}catch(C){C instanceof Xi||yf(o,C,{raisedBy:"effect"})}finally{await Promise.all(x),g.abort(PS),a(v),v.pending.delete(g)}},m=_S(t,r);return{middleware:v=>p=>b=>{if(!Lp(b))return p(b);if(oy.match(b))return c(b.payload);if(TS.match(b)){m();return}if(ly.match(b))return d(b.payload);let y=v.getState();const g=()=>{if(y===hf)throw new Error(pt(23));return y};let j;try{if(j=p(b),t.size>0){const x=v.getState(),C=Array.from(t.values());for(const w of C){let P=!1;try{P=w.predicate(b,x,y)}catch(A){P=!1,yf(o,A,{raisedBy:"predicate"})}P&&u(w,b,v,g)}}}finally{y=hf}return j},startListening:c,stopListening:d,clearListeners:m}};function pt(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var IS={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},cy=at({name:"chartLayout",initialState:IS,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,a,i;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(a=t.payload.bottom)!==null&&a!==void 0?a:0,e.margin.left=(i=t.payload.left)!==null&&i!==void 0?i:0},setScale(e,t){e.scale=t.payload}}}),{setMargin:DS,setLayout:RS,setChartSize:LS,setScale:$S}=cy.actions,FS=cy.reducer;function uy(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function me(e){return Number.isFinite(e)}function on(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function gf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Jr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?gf(Object(r),!0).forEach(function(n){BS(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):gf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function BS(e,t,r){return(t=zS(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function zS(e){var t=KS(e,"string");return typeof t=="symbol"?t:t+""}function KS(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ge(e,t,r){return ze(e)||ze(t)?r:Bt(t)?Mr(e,t,r):typeof t=="function"?t(e):r}var VS=(e,t,r)=>{if(t&&r){var{width:n,height:a}=r,{align:i,verticalAlign:o,layout:l}=t;if((l==="vertical"||l==="horizontal"&&o==="middle")&&i!=="center"&&ee(e[i]))return Jr(Jr({},e),{},{[i]:e[i]+(n||0)});if((l==="horizontal"||l==="vertical"&&i==="center")&&o!=="middle"&&ee(e[o]))return Jr(Jr({},e),{},{[o]:e[o]+(a||0)})}return e},er=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",dy=(e,t,r,n)=>{if(n)return e.map(l=>l.coordinate);var a,i,o=e.map(l=>(l.coordinate===t&&(a=!0),l.coordinate===r&&(i=!0),l.coordinate));return a||o.push(t),i||o.push(r),o},fy=(e,t,r)=>{if(!e)return null;var{duplicateDomain:n,type:a,range:i,scale:o,realScaleType:l,isCategorical:c,categoricalDomain:d,tickCount:u,ticks:m,niceTicks:h,axisType:v}=e;if(!o)return null;var p=l==="scaleBand"&&o.bandwidth?o.bandwidth()/2:2,b=a==="category"&&o.bandwidth?o.bandwidth()/p:0;if(b=v==="angleAxis"&&i&&i.length>=2?rt(i[0]-i[1])*2*b:b,m||h){var y=(m||h||[]).map((g,j)=>{var x=n?n.indexOf(g):g,C=o.map(x);return me(C)?{coordinate:C+b,value:g,offset:b,index:j}:null}).filter(ut);return y}return c&&d?d.map((g,j)=>{var x=o.map(g);return me(x)?{coordinate:x+b,value:g,index:j,offset:b}:null}).filter(ut):o.ticks&&u!=null?o.ticks(u).map((g,j)=>{var x=o.map(g);return me(x)?{coordinate:x+b,value:g,index:j,offset:b}:null}).filter(ut):o.domain().map((g,j)=>{var x=o.map(g);return me(x)?{coordinate:x+b,value:n?n[g]:g,index:j,offset:b}:null}).filter(ut)},US=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var a=0;a<n;++a)for(var i=0,o=0,l=0;l<r;++l){var c=e[l],d=c?.[a];if(d!=null){var u=d[1],m=d[0],h=Zt(u)?m:u;h>=0?(d[0]=i,i+=h,d[1]=i):(d[0]=o,o+=h,d[1]=o)}}}},qS=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var a=0;a<n;++a)for(var i=0,o=0;o<r;++o){var l=e[o],c=l?.[a];if(c!=null){var d=Zt(c[1])?c[0]:c[1];d>=0?(c[0]=i,i+=d,c[1]=i):(c[0]=0,c[1]=0)}}}},WS={sign:US,expand:tC,none:_r,silhouette:rC,wiggle:nC,positive:qS},HS=(e,t,r)=>{var n,a=(n=WS[r])!==null&&n!==void 0?n:_r,i=eC().keys(t).value((l,c)=>Number(ge(l,c,0))).order(ol).offset(a),o=i(e);return o.forEach((l,c)=>{l.forEach((d,u)=>{var m=ge(e[u],t[c],0);Array.isArray(m)&&m.length===2&&ee(m[0])&&ee(m[1])&&(d[0]=m[0],d[1]=m[1])})}),o};function bf(e){var{axis:t,ticks:r,bandSize:n,entry:a,index:i,dataKey:o}=e;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!ze(a[t.dataKey])){var l=pp(r,"value",a[t.dataKey]);if(l)return l.coordinate+n/2}return r!=null&&r[i]?r[i].coordinate+n/2:null}var c=ge(a,ze(o)?t.dataKey:o),d=t.scale.map(c);return ee(d)?d:null}var GS=e=>{var t=e.flat(2).filter(ee);return[Math.min(...t),Math.max(...t)]},XS=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],YS=(e,t,r)=>{if(e!=null)return XS(Object.keys(e).reduce((n,a)=>{var i=e[a];if(!i)return n;var{stackedData:o}=i,l=o.reduce((c,d)=>{var u=uy(d,t,r),m=GS(u);return!me(m[0])||!me(m[1])?c:[Math.min(c[0],m[0]),Math.max(c[1],m[1])]},[1/0,-1/0]);return[Math.min(l[0],n[0]),Math.max(l[1],n[1])]},[1/0,-1/0]))},xf=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,jf=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,si=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var a=zi(t,u=>u.coordinate),i=1/0,o=1,l=a.length;o<l;o++){var c=a[o],d=a[o-1];i=Math.min((c?.coordinate||0)-(d?.coordinate||0),i)}return i===1/0?0:i}return r?void 0:0};function wf(e){var{tooltipEntrySettings:t,dataKey:r,payload:n,value:a,name:i}=e;return Jr(Jr({},t),{},{dataKey:r,payload:n,value:a,name:i})}function Zi(e,t){if(e)return String(e);if(typeof t=="string")return t}var ZS=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},JS=(e,t)=>t==="centric"?e.angle:e.radius,tr=e=>e.layout.width,rr=e=>e.layout.height,QS=e=>e.layout.scale,my=e=>e.layout.margin,Ji=_(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Qi=_(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),vy="data-recharts-item-index",hy="data-recharts-item-id",aa=60;function Cf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Sa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Cf(Object(r),!0).forEach(function(n){eN(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Cf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function eN(e,t,r){return(t=tN(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function tN(e){var t=rN(e,"string");return typeof t=="symbol"?t:t+""}function rN(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var nN=e=>e.brush.height;function aN(e){var t=Qi(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:aa;return r+a}return r},0)}function iN(e){var t=Qi(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:aa;return r+a}return r},0)}function sN(e){var t=Ji(e);return t.reduce((r,n)=>n.orientation==="top"&&!n.mirror&&!n.hide?r+n.height:r,0)}function oN(e){var t=Ji(e);return t.reduce((r,n)=>n.orientation==="bottom"&&!n.mirror&&!n.hide?r+n.height:r,0)}var qe=_([tr,rr,my,nN,aN,iN,sN,oN,Mp,Dk],(e,t,r,n,a,i,o,l,c,d)=>{var u={left:(r.left||0)+a,right:(r.right||0)+i},m={top:(r.top||0)+o,bottom:(r.bottom||0)+l},h=Sa(Sa({},m),u),v=h.bottom;h.bottom+=n,h=VS(h,c,d);var p=e-h.left-h.right,b=t-h.top-h.bottom;return Sa(Sa({brushBottom:v},h),{},{width:Math.max(p,0),height:Math.max(b,0)})}),lN=_(qe,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),py=_(tr,rr,(e,t)=>({x:0,y:0,width:e,height:t})),cN=f.createContext(null),dt=()=>f.useContext(cN)!=null,es=e=>e.brush,ts=_([es,qe,my],(e,t,r)=>({height:e.height,x:ee(e.x)?e.x:t.left,y:ee(e.y)?e.y:t.top+t.height+t.brushBottom-(r?.bottom||0),width:ee(e.width)?e.width:t.width})),kf=function(t,r){for(var n=arguments.length,a=new Array(n>2?n-2:0),i=2;i<n;i++)a[i-2]=arguments[i];if(typeof console<"u"&&console.warn&&(r===void 0&&console.warn("LogUtils requires an error message argument"),!t))if(r===void 0)console.warn("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var o=0;console.warn(r.replace(/%s/g,()=>a[o++]))}},uN={initialDimension:{width:-1,height:-1}},dN=f.createContext(uN.initialDimension),yy=()=>f.useContext(dN);function Ic(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var rs=()=>{var e,t=dt(),r=Z(lN),n=Z(ts),a=(e=Z(es))===null||e===void 0?void 0:e.padding;return!t||!n||!a?r:{width:n.width-a.left-a.right,height:n.height-a.top-a.bottom,x:a.left,y:a.top}},fN={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},gy=()=>{var e;return(e=Z(qe))!==null&&e!==void 0?e:fN},Dc=()=>Z(tr),Rc=()=>Z(rr),mN=()=>Z(e=>e.layout.margin),xe=e=>e.layout.layoutType,hn=()=>Z(xe),by=()=>{var e=hn();if(e==="horizontal"||e==="vertical")return e},xy=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},vN=()=>{var e=hn();return e!==void 0},ia=e=>{var t=pe(),r=dt(),{width:n,height:a}=e,i=yy(),o=n,l=a;return i&&(o=i.width>0?i.width:n,l=i.height>0?i.height:a),f.useEffect(()=>{!r&&on(o)&&on(l)&&t(LS({width:o,height:l}))},[t,r,o,l]),null},jy=Symbol.for("immer-nothing"),Sf=Symbol.for("immer-draftable"),gt=Symbol.for("immer-state");function At(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Wn=Object.getPrototypeOf;function ln(e){return!!e&&!!e[gt]}function Dr(e){return e?wy(e)||Array.isArray(e)||!!e[Sf]||!!e.constructor?.[Sf]||sa(e)||as(e):!1}var hN=Object.prototype.constructor.toString(),Nf=new WeakMap;function wy(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(r===Object)return!0;if(typeof r!="function")return!1;let n=Nf.get(r);return n===void 0&&(n=Function.toString.call(r),Nf.set(r,n)),n===hN}function oi(e,t,r=!0){ns(e)===0?(r?Reflect.ownKeys(e):Object.keys(e)).forEach(a=>{t(a,e[a],e)}):e.forEach((n,a)=>t(a,n,e))}function ns(e){const t=e[gt];return t?t.type_:Array.isArray(e)?1:sa(e)?2:as(e)?3:0}function kl(e,t){return ns(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Cy(e,t,r){const n=ns(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function pN(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function sa(e){return e instanceof Map}function as(e){return e instanceof Set}function Sr(e){return e.copy_||e.base_}function Sl(e,t){if(sa(e))return new Map(e);if(as(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const r=wy(e);if(t===!0||t==="class_only"&&!r){const n=Object.getOwnPropertyDescriptors(e);delete n[gt];let a=Reflect.ownKeys(n);for(let i=0;i<a.length;i++){const o=a[i],l=n[o];l.writable===!1&&(l.writable=!0,l.configurable=!0),(l.get||l.set)&&(n[o]={configurable:!0,writable:!0,enumerable:l.enumerable,value:e[o]})}return Object.create(Wn(e),n)}else{const n=Wn(e);if(n!==null&&r)return{...e};const a=Object.create(n);return Object.assign(a,e)}}function Lc(e,t=!1){return is(e)||ln(e)||!Dr(e)||(ns(e)>1&&Object.defineProperties(e,{set:Na,add:Na,clear:Na,delete:Na}),Object.freeze(e),t&&Object.values(e).forEach(r=>Lc(r,!0))),e}function yN(){At(2)}var Na={value:yN};function is(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var gN={};function Rr(e){const t=gN[e];return t||At(0,e),t}var Hn;function ky(){return Hn}function bN(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function Pf(e,t){t&&(Rr("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Nl(e){Pl(e),e.drafts_.forEach(xN),e.drafts_=null}function Pl(e){e===Hn&&(Hn=e.parent_)}function Af(e){return Hn=bN(Hn,e)}function xN(e){const t=e[gt];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Of(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];return e!==void 0&&e!==r?(r[gt].modified_&&(Nl(t),At(4)),Dr(e)&&(e=li(t,e),t.parent_||ci(t,e)),t.patches_&&Rr("Patches").generateReplacementPatches_(r[gt].base_,e,t.patches_,t.inversePatches_)):e=li(t,r,[]),Nl(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==jy?e:void 0}function li(e,t,r){if(is(t))return t;const n=e.immer_.shouldUseStrictIteration(),a=t[gt];if(!a)return oi(t,(i,o)=>Ef(e,a,t,i,o,r),n),t;if(a.scope_!==e)return t;if(!a.modified_)return ci(e,a.base_,!0),a.base_;if(!a.finalized_){a.finalized_=!0,a.scope_.unfinalizedDrafts_--;const i=a.copy_;let o=i,l=!1;a.type_===3&&(o=new Set(i),i.clear(),l=!0),oi(o,(c,d)=>Ef(e,a,i,c,d,r,l),n),ci(e,i,!1),r&&e.patches_&&Rr("Patches").generatePatches_(a,r,e.patches_,e.inversePatches_)}return a.copy_}function Ef(e,t,r,n,a,i,o){if(a==null||typeof a!="object"&&!o)return;const l=is(a);if(!(l&&!o)){if(ln(a)){const c=i&&t&&t.type_!==3&&!kl(t.assigned_,n)?i.concat(n):void 0,d=li(e,a,c);if(Cy(r,n,d),ln(d))e.canAutoFreeze_=!1;else return}else o&&r.add(a);if(Dr(a)&&!l){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[n]===a&&l)return;li(e,a),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&(sa(r)?r.has(n):Object.prototype.propertyIsEnumerable.call(r,n))&&ci(e,a)}}}function ci(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Lc(t,r)}function jN(e,t){const r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:ky(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let a=n,i=$c;r&&(a=[n],i=Gn);const{revoke:o,proxy:l}=Proxy.revocable(a,i);return n.draft_=l,n.revoke_=o,l}var $c={get(e,t){if(t===gt)return e;const r=Sr(e);if(!kl(r,t))return wN(e,r,t);const n=r[t];return e.finalized_||!Dr(n)?n:n===So(e.base_,t)?(No(e),e.copy_[t]=Ol(n,e)):n},has(e,t){return t in Sr(e)},ownKeys(e){return Reflect.ownKeys(Sr(e))},set(e,t,r){const n=Sy(Sr(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const a=So(Sr(e),t),i=a?.[gt];if(i&&i.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(pN(r,a)&&(r!==void 0||kl(e.base_,t)))return!0;No(e),Al(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_[t]=!0),!0},deleteProperty(e,t){return So(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,No(e),Al(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=Sr(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){At(11)},getPrototypeOf(e){return Wn(e.base_)},setPrototypeOf(){At(12)}},Gn={};oi($c,(e,t)=>{Gn[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});Gn.deleteProperty=function(e,t){return Gn.set.call(this,e,t,void 0)};Gn.set=function(e,t,r){return $c.set.call(this,e[0],t,r,e[0])};function So(e,t){const r=e[gt];return(r?Sr(r):e)[t]}function wN(e,t,r){const n=Sy(t,r);return n?"value"in n?n.value:n.get?.call(e.draft_):void 0}function Sy(e,t){if(!(t in e))return;let r=Wn(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Wn(r)}}function Al(e){e.modified_||(e.modified_=!0,e.parent_&&Al(e.parent_))}function No(e){e.copy_||(e.copy_=Sl(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var CN=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,r,n)=>{if(typeof t=="function"&&typeof r!="function"){const i=r;r=t;const o=this;return function(c=i,...d){return o.produce(c,u=>r.call(this,u,...d))}}typeof r!="function"&&At(6),n!==void 0&&typeof n!="function"&&At(7);let a;if(Dr(t)){const i=Af(this),o=Ol(t,void 0);let l=!0;try{a=r(o),l=!1}finally{l?Nl(i):Pl(i)}return Pf(i,n),Of(a,i)}else if(!t||typeof t!="object"){if(a=r(t),a===void 0&&(a=t),a===jy&&(a=void 0),this.autoFreeze_&&Lc(a,!0),n){const i=[],o=[];Rr("Patches").generateReplacementPatches_(t,a,i,o),n(i,o)}return a}else At(1,t)},this.produceWithPatches=(t,r)=>{if(typeof t=="function")return(o,...l)=>this.produceWithPatches(o,c=>t(c,...l));let n,a;return[this.produce(t,r,(o,l)=>{n=o,a=l}),n,a]},typeof e?.autoFreeze=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof e?.useStrictIteration=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){Dr(e)||At(8),ln(e)&&(e=kN(e));const t=Af(this),r=Ol(e,void 0);return r[gt].isManual_=!0,Pl(t),r}finishDraft(e,t){const r=e&&e[gt];(!r||!r.isManual_)&&At(9);const{scope_:n}=r;return Pf(n,t),Of(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const a=t[r];if(a.path.length===0&&a.op==="replace"){e=a.value;break}}r>-1&&(t=t.slice(r+1));const n=Rr("Patches").applyPatches_;return ln(e)?n(e,t):this.produce(e,a=>n(a,t))}};function Ol(e,t){const r=sa(e)?Rr("MapSet").proxyMap_(e,t):as(e)?Rr("MapSet").proxySet_(e,t):jN(e,t);return(t?t.scope_:ky()).drafts_.push(r),r}function kN(e){return ln(e)||At(10,e),Ny(e)}function Ny(e){if(!Dr(e)||is(e))return e;const t=e[gt];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=Sl(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=Sl(e,!0);return oi(r,(a,i)=>{Cy(r,a,Ny(i))},n),t&&(t.finalized_=!1),r}var SN=new CN;SN.produce;var NN={settings:{layout:"horizontal",align:"center",verticalAlign:"middle",itemSorter:"value"},size:{width:0,height:0},payload:[]},Py=at({name:"legend",initialState:NN,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push(t.payload)},prepare:je()},replaceLegendPayload:{reducer(e,t){var{prev:r,next:n}=t.payload,a=Ct(e).payload.indexOf(r);a>-1&&(e.payload[a]=n)},prepare:je()},removeLegendPayload:{reducer(e,t){var r=Ct(e).payload.indexOf(t.payload);r>-1&&e.payload.splice(r,1)},prepare:je()}}}),{setLegendSize:_f,setLegendSettings:PN,addLegendPayload:Ay,replaceLegendPayload:Oy,removeLegendPayload:Ey}=Py.actions,AN=Py.reducer,Po={exports:{}},Ao={};/**
|
|
55
55
|
* @license React
|
|
56
56
|
* use-sync-external-store-with-selector.production.js
|
|
57
57
|
*
|
|
@@ -59,44 +59,44 @@ import{r as f,j as s,g as mn,a as nj,b as Zl,c as aj}from"./vendor-react-SZ_qB27
|
|
|
59
59
|
*
|
|
60
60
|
* This source code is licensed under the MIT license found in the
|
|
61
61
|
* LICENSE file in the root directory of this source tree.
|
|
62
|
-
*/var _f;function AN(){if(_f)return Ao;_f=1;var e=nj();function t(c,d){return c===d&&(c!==0||1/c===1/d)||c!==c&&d!==d}var r=typeof Object.is=="function"?Object.is:t,n=e.useSyncExternalStore,a=e.useRef,i=e.useEffect,o=e.useMemo,l=e.useDebugValue;return Ao.useSyncExternalStoreWithSelector=function(c,d,u,m,h){var v=a(null);if(v.current===null){var p={hasValue:!1,value:null};v.current=p}else p=v.current;v=o(function(){function y(w){if(!g){if(g=!0,j=w,w=m(w),h!==void 0&&p.hasValue){var P=p.value;if(h(P,w))return x=P}return x=w}if(P=x,r(j,w))return P;var A=m(w);return h!==void 0&&h(P,A)?(j=w,P):(j=w,x=A)}var g=!1,j,x,C=u===void 0?null:u;return[function(){return y(d())},C===null?void 0:function(){return y(C())}]},[d,u,m,h]);var b=n(c,v[0],v[1]);return i(function(){p.hasValue=!0,p.value=b},[b]),l(b),b},Ao}var Tf;function ON(){return Tf||(Tf=1,Po.exports=AN()),Po.exports}ON();function EN(e){e()}function _N(){let e=null,t=null;return{clear(){e=null,t=null},notify(){EN(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){const r=[];let n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0;const a=t={callback:r,next:null,prev:t};return a.prev?a.prev.next=a:e=a,function(){!n||e===null||(n=!1,a.next?a.next.prev=a.prev:t=a.prev,a.prev?a.prev.next=a.next:e=a.next)}}}}var Mf={notify(){},get:()=>[]};function TN(e,t){let r,n=Mf,a=0,i=!1;function o(b){u();const y=n.subscribe(b);let g=!1;return()=>{g||(g=!0,y(),m())}}function l(){n.notify()}function c(){p.onStateChange&&p.onStateChange()}function d(){return i}function u(){a++,r||(r=e.subscribe(c),n=_N())}function m(){a--,r&&a===0&&(r(),r=void 0,n.clear(),n=Mf)}function h(){i||(i=!0,u())}function v(){i&&(i=!1,m())}const p={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:c,isSubscribed:d,trySubscribe:h,tryUnsubscribe:v,getListeners:()=>n};return p}var MN=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",IN=MN(),DN=()=>typeof navigator<"u"&&navigator.product==="ReactNative",RN=DN(),LN=()=>IN||RN?f.useLayoutEffect:f.useEffect,$N=LN();function If(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function FN(e,t){if(If(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let a=0;a<r.length;a++)if(!Object.prototype.hasOwnProperty.call(t,r[a])||!If(e[r[a]],t[r[a]]))return!1;return!0}var BN=Symbol.for("react-redux-context"),zN=typeof globalThis<"u"?globalThis:{};function KN(){if(!f.createContext)return{};const e=zN[BN]??=new Map;let t=e.get(f.createContext);return t||(t=f.createContext(null),e.set(f.createContext,t)),t}var VN=KN();function UN(e){const{children:t,context:r,serverState:n,store:a}=e,i=f.useMemo(()=>{const c=TN(a);return{store:a,subscription:c,getServerState:n?()=>n:void 0}},[a,n]),o=f.useMemo(()=>a.getState(),[a]);$N(()=>{const{subscription:c}=i;return c.onStateChange=c.notifyNestedSubs,c.trySubscribe(),o!==a.getState()&&c.notifyNestedSubs(),()=>{c.tryUnsubscribe(),c.onStateChange=void 0}},[i,o]);const l=r||VN;return f.createElement(l.Provider,{value:i},t)}var qN=UN,WN=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function HN(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function oa(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(WN.has(n)){if(e[n]==null&&t[n]==null)continue;if(!FN(e[n],t[n]))return!1}else if(!HN(e[n],t[n]))return!1;return!0}var GN=["contextPayload"];function Ol(){return Ol=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ol.apply(null,arguments)}function Df(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function cn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Df(Object(r),!0).forEach(function(n){XN(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Df(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function XN(e,t,r){return(t=YN(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function YN(e){var t=ZN(e,"string");return typeof t=="symbol"?t:t+""}function ZN(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function JN(e,t){if(e==null)return{};var r,n,a=QN(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function QN(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function eP(e){return e.value}function tP(e){var{contextPayload:t}=e,r=JN(e,GN),n=Ap(t,e.payloadUniqBy,eP),a=cn(cn({},r),{},{payload:n});return f.isValidElement(e.content)?f.cloneElement(e.content,a):typeof e.content=="function"?f.createElement(e.content,a):f.createElement(HC,a)}function rP(e,t,r,n,a,i){var{layout:o,align:l,verticalAlign:c}=t,d,u;return(!e||(e.left===void 0||e.left===null)&&(e.right===void 0||e.right===null))&&(l==="center"&&o==="vertical"?d={left:((n||0)-i.width)/2}:d=l==="right"?{right:r&&r.right||0}:{left:r&&r.left||0}),(!e||(e.top===void 0||e.top===null)&&(e.bottom===void 0||e.bottom===null))&&(c==="middle"?u={top:((a||0)-i.height)/2}:u=c==="bottom"?{bottom:r&&r.bottom||0}:{top:r&&r.top||0}),cn(cn({},d),u)}function nP(e){var t=pe();return f.useEffect(()=>{t(NN(e))},[t,e]),null}function aP(e){var t=pe();return f.useEffect(()=>(t(Ef(e)),()=>{t(Ef({width:0,height:0}))}),[t,e]),null}function iP(e,t,r,n){return e==="vertical"&&t!=null?{height:t}:e==="horizontal"?{width:r||n}:null}var sP={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",layout:"horizontal",verticalAlign:"bottom"};function oP(e){var t=Ke(e,sP),r=Lk(),n=gC(),a=fN(),{width:i,height:o,wrapperStyle:l,portal:c}=t,[d,u]=Mp([r]),m=Ic(),h=Dc();if(m==null||h==null)return null;var v=m-(a?.left||0)-(a?.right||0),p=iP(t.layout,o,i,v),b=c?l:cn(cn({position:"absolute",width:p?.width||i||"auto",height:p?.height||o||"auto"},rP(l,t,a,m,h,d)),l),y=c??n;if(y==null||r==null)return null;var g=f.createElement("div",{className:"recharts-legend-wrapper",style:b,ref:u},f.createElement(nP,{layout:t.layout,align:t.align,verticalAlign:t.verticalAlign,itemSorter:t.itemSorter}),!c&&f.createElement(aP,{width:d.width,height:d.height}),f.createElement(tP,Ol({},t,p,{margin:a,chartWidth:m,chartHeight:h,contextPayload:r})));return Zl.createPortal(g,y)}var $c=f.memo(oP,oa);$c.displayName="Legend";function El(){return El=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},El.apply(null,arguments)}function Rf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Sn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Rf(Object(r),!0).forEach(function(n){lP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function lP(e,t,r){return(t=cP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function cP(e){var t=uP(e,"string");return typeof t=="symbol"?t:t+""}function uP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function dP(e){return Array.isArray(e)&&Bt(e[0])&&Bt(e[1])?e.join(" ~ "):e}var Vr={separator:" : ",contentStyle:{margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},itemStyle:{display:"block",paddingTop:4,paddingBottom:4,color:"#000"},labelStyle:{},accessibilityLayer:!1};function fP(e,t){return t==null?e:zi(e,t)}var mP=e=>{var{separator:t=Vr.separator,contentStyle:r,itemStyle:n,labelStyle:a=Vr.labelStyle,payload:i,formatter:o,itemSorter:l,wrapperClassName:c,labelClassName:d,label:u,labelFormatter:m,accessibilityLayer:h=Vr.accessibilityLayer}=e,v=()=>{if(i&&i.length){var w={padding:0,margin:0},P=fP(i,l),A=P.map((S,N)=>{if(!S||S.type==="none")return null;var E=S.formatter||o||dP,{value:T,name:O}=S,I=T,z=O;if(E){var D=E(T,O,S,N,i);if(Array.isArray(D))[I,z]=D;else if(D!=null)I=D;else return null}var V=Sn(Sn({},Vr.itemStyle),{},{color:S.color||Vr.itemStyle.color},n);return f.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(N),style:V},Bt(z)?f.createElement("span",{className:"recharts-tooltip-item-name"},z):null,Bt(z)?f.createElement("span",{className:"recharts-tooltip-item-separator"},t):null,f.createElement("span",{className:"recharts-tooltip-item-value"},I),f.createElement("span",{className:"recharts-tooltip-item-unit"},S.unit||""))});return f.createElement("ul",{className:"recharts-tooltip-item-list",style:w},A)}return null},p=Sn(Sn({},Vr.contentStyle),r),b=Sn({margin:0},a),y=!ze(u),g=y?u:"",j=ve("recharts-default-tooltip",c),x=ve("recharts-tooltip-label",d);y&&m&&i!==void 0&&i!==null&&(g=m(u,i));var C=h?{role:"status","aria-live":"assertive"}:{};return f.createElement("div",El({className:j,style:p},C),f.createElement("p",{className:x,style:b},f.isValidElement(g)?g:"".concat(g)),v())},Nn="recharts-tooltip-wrapper",vP={visibility:"hidden"};function hP(e){var{coordinate:t,translateX:r,translateY:n}=e;return ve(Nn,{["".concat(Nn,"-right")]:ee(r)&&t&&ee(t.x)&&r>=t.x,["".concat(Nn,"-left")]:ee(r)&&t&&ee(t.x)&&r<t.x,["".concat(Nn,"-bottom")]:ee(n)&&t&&ee(t.y)&&n>=t.y,["".concat(Nn,"-top")]:ee(n)&&t&&ee(t.y)&&n<t.y})}function Lf(e){var{allowEscapeViewBox:t,coordinate:r,key:n,offset:a,position:i,reverseDirection:o,tooltipDimension:l,viewBox:c,viewBoxDimension:d}=e;if(i&&ee(i[n]))return i[n];var u=r[n]-l-(a>0?a:0),m=r[n]+a;if(t[n])return o[n]?u:m;var h=c[n];if(h==null)return 0;if(o[n]){var v=u,p=h;return v<p?Math.max(m,h):Math.max(u,h)}if(d==null)return 0;var b=m+l,y=h+d;return b>y?Math.max(u,h):Math.max(m,h)}function pP(e){var{translateX:t,translateY:r,useTranslate3d:n}=e;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function yP(e){var{allowEscapeViewBox:t,coordinate:r,offsetTop:n,offsetLeft:a,position:i,reverseDirection:o,tooltipBox:l,useTranslate3d:c,viewBox:d}=e,u,m,h;return l.height>0&&l.width>0&&r?(m=Lf({allowEscapeViewBox:t,coordinate:r,key:"x",offset:a,position:i,reverseDirection:o,tooltipDimension:l.width,viewBox:d,viewBoxDimension:d.width}),h=Lf({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:i,reverseDirection:o,tooltipDimension:l.height,viewBox:d,viewBoxDimension:d.height}),u=pP({translateX:m,translateY:h,useTranslate3d:c})):u=vP,{cssProperties:u,cssClasses:hP({translateX:m,translateY:h,coordinate:r})}}var gP=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),la={isSsr:gP()};function Ey(){var[e,t]=f.useState(()=>la.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return f.useEffect(()=>{if(window.matchMedia){var r=window.matchMedia("(prefers-reduced-motion: reduce)"),n=()=>{t(r.matches)};return r.addEventListener("change",n),()=>{r.removeEventListener("change",n)}}},[]),e}function $f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ur(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$f(Object(r),!0).forEach(function(n){bP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$f(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function bP(e,t,r){return(t=xP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function xP(e){var t=jP(e,"string");return typeof t=="symbol"?t:t+""}function jP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function wP(e){if(!(e.prefersReducedMotion&&e.isAnimationActive==="auto")&&e.isAnimationActive&&e.active)return"transform ".concat(e.animationDuration,"ms ").concat(e.animationEasing)}function CP(e){var t,r,n,a,i,o,l=Ey(),[c,d]=f.useState(()=>({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}}));f.useEffect(()=>{var p=b=>{if(b.key==="Escape"){var y,g,j,x;d({dismissed:!0,dismissedAtCoordinate:{x:(y=(g=e.coordinate)===null||g===void 0?void 0:g.x)!==null&&y!==void 0?y:0,y:(j=(x=e.coordinate)===null||x===void 0?void 0:x.y)!==null&&j!==void 0?j:0}})}};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),c.dismissed&&(((n=(a=e.coordinate)===null||a===void 0?void 0:a.x)!==null&&n!==void 0?n:0)!==c.dismissedAtCoordinate.x||((i=(o=e.coordinate)===null||o===void 0?void 0:o.y)!==null&&i!==void 0?i:0)!==c.dismissedAtCoordinate.y)&&d(Ur(Ur({},c),{},{dismissed:!1}));var{cssClasses:u,cssProperties:m}=yP({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:{height:e.lastBoundingBox.height,width:e.lastBoundingBox.width},useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),h=e.hasPortalFromProps?{}:Ur(Ur({transition:wP({prefersReducedMotion:l,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},m),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),v=Ur(Ur({},h),{},{visibility:!c.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return f.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:u,style:v,ref:e.innerRef},e.children)}var kP=f.memo(CP),_y=()=>{var e;return(e=Z(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};function _l(){return _l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_l.apply(null,arguments)}function Ff(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Bf(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ff(Object(r),!0).forEach(function(n){SP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ff(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function SP(e,t,r){return(t=NP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function NP(e){var t=PP(e,"string");return typeof t=="symbol"?t:t+""}function PP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var zf={curveBasisClosed:C0,curveBasisOpen:w0,curveBasis:j0,curveBumpX:x0,curveBumpY:b0,curveLinearClosed:g0,curveLinear:sc,curveMonotoneX:y0,curveMonotoneY:p0,curveNatural:h0,curveStep:v0,curveStepAfter:m0,curveStepBefore:f0},ui=e=>me(e.x)&&me(e.y),Kf=e=>e.base!=null&&ui(e.base)&&ui(e),Pn=e=>e.x,An=e=>e.y,AP=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(ea(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=zf["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return zf[r]||sc},Vf={connectNulls:!1,type:"linear"},OP=e=>{var{type:t=Vf.type,points:r=[],baseLine:n,layout:a,connectNulls:i=Vf.connectNulls}=e,o=AP(t,a),l=i?r.filter(ui):r;if(Array.isArray(n)){var c,d=r.map((p,b)=>Bf(Bf({},p),{},{base:n[b]}));a==="vertical"?c=ba().y(An).x1(Pn).x0(p=>p.base.x):c=ba().x(Pn).y1(An).y0(p=>p.base.y);var u=c.defined(Kf).curve(o),m=i?d.filter(Kf):d;return u(m)}var h;a==="vertical"&&ee(n)?h=ba().y(An).x1(Pn).x0(n):ee(n)?h=ba().x(Pn).y1(An).y0(n):h=zh().x(Pn).y(An);var v=h.defined(ui).curve(o);return v(l)},Fc=e=>{var{className:t,points:r,path:n,pathRef:a}=e,i=hn();if((!r||!r.length)&&!n)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||i,connectNulls:e.connectNulls},l=r&&r.length?OP(o):n;return f.createElement("path",_l({},kt(e),Cc(e),{className:ve("recharts-curve",t),d:l===null?void 0:l,ref:a}))},EP=["x","y","top","left","width","height","className"];function Tl(){return Tl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Tl.apply(null,arguments)}function Uf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function _P(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Uf(Object(r),!0).forEach(function(n){TP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Uf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function TP(e,t,r){return(t=MP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function MP(e){var t=IP(e,"string");return typeof t=="symbol"?t:t+""}function IP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function DP(e,t){if(e==null)return{};var r,n,a=RP(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function RP(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var LP=(e,t,r,n,a,i)=>"M".concat(e,",").concat(a,"v").concat(n,"M").concat(i,",").concat(t,"h").concat(r),$P=e=>{var{x:t=0,y:r=0,top:n=0,left:a=0,width:i=0,height:o=0,className:l}=e,c=DP(e,EP),d=_P({x:t,y:r,top:n,left:a,width:i,height:o},c);return!ee(t)||!ee(r)||!ee(i)||!ee(o)||!ee(n)||!ee(a)?null:f.createElement("path",Tl({},st(d),{className:ve("recharts-cross",l),d:LP(t,r,i,o,n,a)}))};function FP(e,t,r,n){var a=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-a:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-a,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}function qf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Wf(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?qf(Object(r),!0).forEach(function(n){BP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):qf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function BP(e,t,r){return(t=zP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function zP(e){var t=KP(e,"string");return typeof t=="symbol"?t:t+""}function KP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var VP=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),Ty=(e,t,r)=>e.map(n=>"".concat(VP(n)," ").concat(t,"ms ").concat(r)).join(","),UP=(e,t)=>[Object.keys(e),Object.keys(t)].reduce((r,n)=>r.filter(a=>n.includes(a))),Xn=(e,t)=>Object.keys(t).reduce((r,n)=>Wf(Wf({},r),{},{[n]:e(n,t[n])}),{});function Hf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Be(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Hf(Object(r),!0).forEach(function(n){qP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Hf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function qP(e,t,r){return(t=WP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function WP(e){var t=HP(e,"string");return typeof t=="symbol"?t:t+""}function HP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var di=(e,t,r)=>e+(t-e)*r,Ml=e=>{var{from:t,to:r}=e;return t!==r},My=(e,t,r)=>{var n=Xn((a,i)=>{if(Ml(i)){var[o,l]=e(i.from,i.to,i.velocity);return Be(Be({},i),{},{from:o,velocity:l})}return i},t);return r<1?Xn((a,i)=>Ml(i)&&n[a]!=null?Be(Be({},i),{},{velocity:di(i.velocity,n[a].velocity,r),from:di(i.from,n[a].from,r)}):i,t):My(e,n,r-1)};function GP(e,t,r,n,a,i){var o,l=n.reduce((h,v)=>Be(Be({},h),{},{[v]:{from:e[v],velocity:0,to:t[v]}}),{}),c=()=>Xn((h,v)=>v.from,l),d=()=>!Object.values(l).filter(Ml).length,u=null,m=h=>{o||(o=h);var v=h-o,p=v/r.dt;l=My(r,l,p),a(Be(Be(Be({},e),t),c())),o=h,d()||(u=i.setTimeout(m))};return()=>(u=i.setTimeout(m),()=>{var h;(h=u)===null||h===void 0||h()})}function XP(e,t,r,n,a,i,o){var l=null,c=a.reduce((m,h)=>{var v=e[h],p=t[h];return v==null||p==null?m:Be(Be({},m),{},{[h]:[v,p]})},{}),d,u=m=>{d||(d=m);var h=(m-d)/n,v=Xn((b,y)=>di(...y,r(h)),c);if(i(Be(Be(Be({},e),t),v)),h<1)l=o.setTimeout(u);else{var p=Xn((b,y)=>di(...y,r(1)),c);i(Be(Be(Be({},e),t),p))}};return()=>(l=o.setTimeout(u),()=>{var m;(m=l)===null||m===void 0||m()})}const YP=(e,t,r,n,a,i)=>{var o=UP(e,t);return r==null?()=>(a(Be(Be({},e),t)),()=>{}):r.isStepper===!0?GP(e,t,r,o,a,i):XP(e,t,r,n,o,a,i)};var fi=1e-4,Iy=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],Dy=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),Gf=(e,t)=>r=>{var n=Iy(e,t);return Dy(n,r)},ZP=(e,t)=>r=>{var n=Iy(e,t),a=[...n.map((i,o)=>i*o).slice(1),0];return Dy(a,r)},JP=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var a=n.map(i=>parseFloat(i));return[a[0],a[1],a[2],a[3]]},QP=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];if(r.length===1)switch(r[0]){case"linear":return[0,0,1,1];case"ease":return[.25,.1,.25,1];case"ease-in":return[.42,0,1,1];case"ease-out":return[.42,0,.58,1];case"ease-in-out":return[0,0,.58,1];default:{var a=JP(r[0]);if(a)return a}}return r.length===4?r:[0,0,1,1]},eA=(e,t,r,n)=>{var a=Gf(e,r),i=Gf(t,n),o=ZP(e,r),l=d=>d>1?1:d<0?0:d,c=d=>{for(var u=d>1?1:d,m=u,h=0;h<8;++h){var v=a(m)-u,p=o(m);if(Math.abs(v-u)<fi||p<fi)return i(m);m=l(m-v/p)}return i(m)};return c.isStepper=!1,c},Xf=function(){return eA(...QP(...arguments))},tA=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{stiff:r=100,damping:n=8,dt:a=17}=t,i=(o,l,c)=>{var d=-(o-l)*r,u=c*n,m=c+(d-u)*a/1e3,h=c*a/1e3+o;return Math.abs(h-l)<fi&&Math.abs(m)<fi?[l,0]:[h,m]};return i.isStepper=!0,i.dt=a,i},rA=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return Xf(e);case"spring":return tA();default:if(e.split("(")[0]==="cubic-bezier")return Xf(e)}return typeof e=="function"?e:null};function nA(e){var t,r=()=>null,n=!1,a=null,i=o=>{if(!n){if(Array.isArray(o)){if(!o.length)return;var l=o,[c,...d]=l;if(typeof c=="number"){a=e.setTimeout(i.bind(null,d),c);return}i(c),a=e.setTimeout(i.bind(null,d));return}typeof o=="string"&&(t=o,r(t)),typeof o=="object"&&(t=o,r(t)),typeof o=="function"&&o()}};return{stop:()=>{n=!0},start:o=>{n=!1,a&&(a(),a=null),i(o)},subscribe:o=>(r=o,()=>{r=()=>null}),getTimeoutController:()=>e}}class aA{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),a=null,i=o=>{o-n>=r?t(o):typeof requestAnimationFrame=="function"&&(a=requestAnimationFrame(i))};return a=requestAnimationFrame(i),()=>{a!=null&&cancelAnimationFrame(a)}}}function iA(){return nA(new aA)}var sA=f.createContext(iA);function oA(e,t){var r=f.useContext(sA);return f.useMemo(()=>t??r(e),[e,t,r])}var lA={begin:0,duration:1e3,easing:"ease",isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},Yf={t:0},Oo={t:1};function ss(e){var t=Ke(e,lA),{isActive:r,canBegin:n,duration:a,easing:i,begin:o,onAnimationEnd:l,onAnimationStart:c,children:d}=t,u=Ey(),m=r==="auto"?!la.isSsr&&!u:r,h=oA(t.animationId,t.animationManager),[v,p]=f.useState(m?Yf:Oo),b=f.useRef(null);return f.useEffect(()=>{m||p(Oo)},[m]),f.useEffect(()=>{if(!m||!n)return ta;var y=YP(Yf,Oo,rA(i),a,p,h.getTimeoutController()),g=()=>{b.current=y()};return h.start([c,o,g,a,l]),()=>{h.stop(),b.current&&b.current(),l()}},[m,n,a,i,o,c,l,h]),d(v.t)}function os(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=f.useRef(Kn(t)),n=f.useRef(e);return n.current!==e&&(r.current=Kn(t),n.current=e),r.current}var cA=["radius"],uA=["radius"],Zf,Jf,Qf,em,tm,rm,nm,am,im,sm;function om(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function lm(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?om(Object(r),!0).forEach(function(n){dA(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):om(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function dA(e,t,r){return(t=fA(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function fA(e){var t=mA(e,"string");return typeof t=="symbol"?t:t+""}function mA(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function mi(){return mi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},mi.apply(null,arguments)}function cm(e,t){if(e==null)return{};var r,n,a=vA(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function vA(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function It(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var um=(e,t,r,n,a)=>{var i=dr(r),o=dr(n),l=Math.min(Math.abs(i)/2,Math.abs(o)/2),c=o>=0?1:-1,d=i>=0?1:-1,u=o>=0&&i>=0||o<0&&i<0?1:0,m;if(l>0&&Array.isArray(a)){for(var h=[0,0,0,0],v=0,p=4;v<p;v++){var b,y=(b=a[v])!==null&&b!==void 0?b:0;h[v]=y>l?l:y}m=_e(Zf||(Zf=It(["M",",",""])),e,t+c*h[0]),h[0]>0&&(m+=_e(Jf||(Jf=It(["A ",",",",0,0,",",",",",""])),h[0],h[0],u,e+d*h[0],t)),m+=_e(Qf||(Qf=It(["L ",",",""])),e+r-d*h[1],t),h[1]>0&&(m+=_e(em||(em=It(["A ",",",",0,0,",`,
|
|
63
|
-
`,",",""])),h[1],h[1],u,e+r,t+c*h[1])),m+=_e(
|
|
64
|
-
`,",",""])),h[2],h[2],u,e+r-d*h[2],t+n)),m+=_e(
|
|
65
|
-
`,",",""])),h[3],h[3],u,e,t+n-c*h[3])),m+="Z"}else if(l>0&&a===+a&&a>0){var g=Math.min(l,a);m=_e(
|
|
62
|
+
*/var Tf;function ON(){if(Tf)return Ao;Tf=1;var e=aj();function t(c,d){return c===d&&(c!==0||1/c===1/d)||c!==c&&d!==d}var r=typeof Object.is=="function"?Object.is:t,n=e.useSyncExternalStore,a=e.useRef,i=e.useEffect,o=e.useMemo,l=e.useDebugValue;return Ao.useSyncExternalStoreWithSelector=function(c,d,u,m,h){var v=a(null);if(v.current===null){var p={hasValue:!1,value:null};v.current=p}else p=v.current;v=o(function(){function y(w){if(!g){if(g=!0,j=w,w=m(w),h!==void 0&&p.hasValue){var P=p.value;if(h(P,w))return x=P}return x=w}if(P=x,r(j,w))return P;var A=m(w);return h!==void 0&&h(P,A)?(j=w,P):(j=w,x=A)}var g=!1,j,x,C=u===void 0?null:u;return[function(){return y(d())},C===null?void 0:function(){return y(C())}]},[d,u,m,h]);var b=n(c,v[0],v[1]);return i(function(){p.hasValue=!0,p.value=b},[b]),l(b),b},Ao}var Mf;function EN(){return Mf||(Mf=1,Po.exports=ON()),Po.exports}EN();function _N(e){e()}function TN(){let e=null,t=null;return{clear(){e=null,t=null},notify(){_N(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){const r=[];let n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0;const a=t={callback:r,next:null,prev:t};return a.prev?a.prev.next=a:e=a,function(){!n||e===null||(n=!1,a.next?a.next.prev=a.prev:t=a.prev,a.prev?a.prev.next=a.next:e=a.next)}}}}var If={notify(){},get:()=>[]};function MN(e,t){let r,n=If,a=0,i=!1;function o(b){u();const y=n.subscribe(b);let g=!1;return()=>{g||(g=!0,y(),m())}}function l(){n.notify()}function c(){p.onStateChange&&p.onStateChange()}function d(){return i}function u(){a++,r||(r=e.subscribe(c),n=TN())}function m(){a--,r&&a===0&&(r(),r=void 0,n.clear(),n=If)}function h(){i||(i=!0,u())}function v(){i&&(i=!1,m())}const p={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:c,isSubscribed:d,trySubscribe:h,tryUnsubscribe:v,getListeners:()=>n};return p}var IN=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",DN=IN(),RN=()=>typeof navigator<"u"&&navigator.product==="ReactNative",LN=RN(),$N=()=>DN||LN?f.useLayoutEffect:f.useEffect,FN=$N();function Df(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function BN(e,t){if(Df(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let a=0;a<r.length;a++)if(!Object.prototype.hasOwnProperty.call(t,r[a])||!Df(e[r[a]],t[r[a]]))return!1;return!0}var zN=Symbol.for("react-redux-context"),KN=typeof globalThis<"u"?globalThis:{};function VN(){if(!f.createContext)return{};const e=KN[zN]??=new Map;let t=e.get(f.createContext);return t||(t=f.createContext(null),e.set(f.createContext,t)),t}var UN=VN();function qN(e){const{children:t,context:r,serverState:n,store:a}=e,i=f.useMemo(()=>{const c=MN(a);return{store:a,subscription:c,getServerState:n?()=>n:void 0}},[a,n]),o=f.useMemo(()=>a.getState(),[a]);FN(()=>{const{subscription:c}=i;return c.onStateChange=c.notifyNestedSubs,c.trySubscribe(),o!==a.getState()&&c.notifyNestedSubs(),()=>{c.tryUnsubscribe(),c.onStateChange=void 0}},[i,o]);const l=r||UN;return f.createElement(l.Provider,{value:i},t)}var WN=qN,HN=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function GN(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function oa(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(HN.has(n)){if(e[n]==null&&t[n]==null)continue;if(!BN(e[n],t[n]))return!1}else if(!GN(e[n],t[n]))return!1;return!0}var XN=["contextPayload"];function El(){return El=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},El.apply(null,arguments)}function Rf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function cn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Rf(Object(r),!0).forEach(function(n){YN(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function YN(e,t,r){return(t=ZN(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ZN(e){var t=JN(e,"string");return typeof t=="symbol"?t:t+""}function JN(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function QN(e,t){if(e==null)return{};var r,n,a=eP(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function eP(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function tP(e){return e.value}function rP(e){var{contextPayload:t}=e,r=QN(e,XN),n=Op(t,e.payloadUniqBy,tP),a=cn(cn({},r),{},{payload:n});return f.isValidElement(e.content)?f.cloneElement(e.content,a):typeof e.content=="function"?f.createElement(e.content,a):f.createElement(GC,a)}function nP(e,t,r,n,a,i){var{layout:o,align:l,verticalAlign:c}=t,d,u;return(!e||(e.left===void 0||e.left===null)&&(e.right===void 0||e.right===null))&&(l==="center"&&o==="vertical"?d={left:((n||0)-i.width)/2}:d=l==="right"?{right:r&&r.right||0}:{left:r&&r.left||0}),(!e||(e.top===void 0||e.top===null)&&(e.bottom===void 0||e.bottom===null))&&(c==="middle"?u={top:((a||0)-i.height)/2}:u=c==="bottom"?{bottom:r&&r.bottom||0}:{top:r&&r.top||0}),cn(cn({},d),u)}function aP(e){var t=pe();return f.useEffect(()=>{t(PN(e))},[t,e]),null}function iP(e){var t=pe();return f.useEffect(()=>(t(_f(e)),()=>{t(_f({width:0,height:0}))}),[t,e]),null}function sP(e,t,r,n){return e==="vertical"&&t!=null?{height:t}:e==="horizontal"?{width:r||n}:null}var oP={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",layout:"horizontal",verticalAlign:"bottom"};function lP(e){var t=Ke(e,oP),r=$k(),n=bC(),a=mN(),{width:i,height:o,wrapperStyle:l,portal:c}=t,[d,u]=Ip([r]),m=Dc(),h=Rc();if(m==null||h==null)return null;var v=m-(a?.left||0)-(a?.right||0),p=sP(t.layout,o,i,v),b=c?l:cn(cn({position:"absolute",width:p?.width||i||"auto",height:p?.height||o||"auto"},nP(l,t,a,m,h,d)),l),y=c??n;if(y==null||r==null)return null;var g=f.createElement("div",{className:"recharts-legend-wrapper",style:b,ref:u},f.createElement(aP,{layout:t.layout,align:t.align,verticalAlign:t.verticalAlign,itemSorter:t.itemSorter}),!c&&f.createElement(iP,{width:d.width,height:d.height}),f.createElement(rP,El({},t,p,{margin:a,chartWidth:m,chartHeight:h,contextPayload:r})));return Jl.createPortal(g,y)}var Fc=f.memo(lP,oa);Fc.displayName="Legend";function _l(){return _l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_l.apply(null,arguments)}function Lf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Sn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Lf(Object(r),!0).forEach(function(n){cP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Lf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function cP(e,t,r){return(t=uP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function uP(e){var t=dP(e,"string");return typeof t=="symbol"?t:t+""}function dP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function fP(e){return Array.isArray(e)&&Bt(e[0])&&Bt(e[1])?e.join(" ~ "):e}var Vr={separator:" : ",contentStyle:{margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},itemStyle:{display:"block",paddingTop:4,paddingBottom:4,color:"#000"},labelStyle:{},accessibilityLayer:!1};function mP(e,t){return t==null?e:zi(e,t)}var vP=e=>{var{separator:t=Vr.separator,contentStyle:r,itemStyle:n,labelStyle:a=Vr.labelStyle,payload:i,formatter:o,itemSorter:l,wrapperClassName:c,labelClassName:d,label:u,labelFormatter:m,accessibilityLayer:h=Vr.accessibilityLayer}=e,v=()=>{if(i&&i.length){var w={padding:0,margin:0},P=mP(i,l),A=P.map((S,N)=>{if(!S||S.type==="none")return null;var E=S.formatter||o||fP,{value:T,name:O}=S,I=T,z=O;if(E){var D=E(T,O,S,N,i);if(Array.isArray(D))[I,z]=D;else if(D!=null)I=D;else return null}var V=Sn(Sn({},Vr.itemStyle),{},{color:S.color||Vr.itemStyle.color},n);return f.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(N),style:V},Bt(z)?f.createElement("span",{className:"recharts-tooltip-item-name"},z):null,Bt(z)?f.createElement("span",{className:"recharts-tooltip-item-separator"},t):null,f.createElement("span",{className:"recharts-tooltip-item-value"},I),f.createElement("span",{className:"recharts-tooltip-item-unit"},S.unit||""))});return f.createElement("ul",{className:"recharts-tooltip-item-list",style:w},A)}return null},p=Sn(Sn({},Vr.contentStyle),r),b=Sn({margin:0},a),y=!ze(u),g=y?u:"",j=ve("recharts-default-tooltip",c),x=ve("recharts-tooltip-label",d);y&&m&&i!==void 0&&i!==null&&(g=m(u,i));var C=h?{role:"status","aria-live":"assertive"}:{};return f.createElement("div",_l({className:j,style:p},C),f.createElement("p",{className:x,style:b},f.isValidElement(g)?g:"".concat(g)),v())},Nn="recharts-tooltip-wrapper",hP={visibility:"hidden"};function pP(e){var{coordinate:t,translateX:r,translateY:n}=e;return ve(Nn,{["".concat(Nn,"-right")]:ee(r)&&t&&ee(t.x)&&r>=t.x,["".concat(Nn,"-left")]:ee(r)&&t&&ee(t.x)&&r<t.x,["".concat(Nn,"-bottom")]:ee(n)&&t&&ee(t.y)&&n>=t.y,["".concat(Nn,"-top")]:ee(n)&&t&&ee(t.y)&&n<t.y})}function $f(e){var{allowEscapeViewBox:t,coordinate:r,key:n,offset:a,position:i,reverseDirection:o,tooltipDimension:l,viewBox:c,viewBoxDimension:d}=e;if(i&&ee(i[n]))return i[n];var u=r[n]-l-(a>0?a:0),m=r[n]+a;if(t[n])return o[n]?u:m;var h=c[n];if(h==null)return 0;if(o[n]){var v=u,p=h;return v<p?Math.max(m,h):Math.max(u,h)}if(d==null)return 0;var b=m+l,y=h+d;return b>y?Math.max(u,h):Math.max(m,h)}function yP(e){var{translateX:t,translateY:r,useTranslate3d:n}=e;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function gP(e){var{allowEscapeViewBox:t,coordinate:r,offsetTop:n,offsetLeft:a,position:i,reverseDirection:o,tooltipBox:l,useTranslate3d:c,viewBox:d}=e,u,m,h;return l.height>0&&l.width>0&&r?(m=$f({allowEscapeViewBox:t,coordinate:r,key:"x",offset:a,position:i,reverseDirection:o,tooltipDimension:l.width,viewBox:d,viewBoxDimension:d.width}),h=$f({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:i,reverseDirection:o,tooltipDimension:l.height,viewBox:d,viewBoxDimension:d.height}),u=yP({translateX:m,translateY:h,useTranslate3d:c})):u=hP,{cssProperties:u,cssClasses:pP({translateX:m,translateY:h,coordinate:r})}}var bP=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),la={isSsr:bP()};function _y(){var[e,t]=f.useState(()=>la.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return f.useEffect(()=>{if(window.matchMedia){var r=window.matchMedia("(prefers-reduced-motion: reduce)"),n=()=>{t(r.matches)};return r.addEventListener("change",n),()=>{r.removeEventListener("change",n)}}},[]),e}function Ff(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ur(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ff(Object(r),!0).forEach(function(n){xP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ff(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function xP(e,t,r){return(t=jP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function jP(e){var t=wP(e,"string");return typeof t=="symbol"?t:t+""}function wP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function CP(e){if(!(e.prefersReducedMotion&&e.isAnimationActive==="auto")&&e.isAnimationActive&&e.active)return"transform ".concat(e.animationDuration,"ms ").concat(e.animationEasing)}function kP(e){var t,r,n,a,i,o,l=_y(),[c,d]=f.useState(()=>({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}}));f.useEffect(()=>{var p=b=>{if(b.key==="Escape"){var y,g,j,x;d({dismissed:!0,dismissedAtCoordinate:{x:(y=(g=e.coordinate)===null||g===void 0?void 0:g.x)!==null&&y!==void 0?y:0,y:(j=(x=e.coordinate)===null||x===void 0?void 0:x.y)!==null&&j!==void 0?j:0}})}};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),c.dismissed&&(((n=(a=e.coordinate)===null||a===void 0?void 0:a.x)!==null&&n!==void 0?n:0)!==c.dismissedAtCoordinate.x||((i=(o=e.coordinate)===null||o===void 0?void 0:o.y)!==null&&i!==void 0?i:0)!==c.dismissedAtCoordinate.y)&&d(Ur(Ur({},c),{},{dismissed:!1}));var{cssClasses:u,cssProperties:m}=gP({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:{height:e.lastBoundingBox.height,width:e.lastBoundingBox.width},useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),h=e.hasPortalFromProps?{}:Ur(Ur({transition:CP({prefersReducedMotion:l,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},m),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),v=Ur(Ur({},h),{},{visibility:!c.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return f.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:u,style:v,ref:e.innerRef},e.children)}var SP=f.memo(kP),Ty=()=>{var e;return(e=Z(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};function Tl(){return Tl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Tl.apply(null,arguments)}function Bf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function zf(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Bf(Object(r),!0).forEach(function(n){NP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Bf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function NP(e,t,r){return(t=PP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function PP(e){var t=AP(e,"string");return typeof t=="symbol"?t:t+""}function AP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Kf={curveBasisClosed:k0,curveBasisOpen:C0,curveBasis:w0,curveBumpX:j0,curveBumpY:x0,curveLinearClosed:b0,curveLinear:oc,curveMonotoneX:g0,curveMonotoneY:y0,curveNatural:p0,curveStep:h0,curveStepAfter:v0,curveStepBefore:m0},ui=e=>me(e.x)&&me(e.y),Vf=e=>e.base!=null&&ui(e.base)&&ui(e),Pn=e=>e.x,An=e=>e.y,OP=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(ea(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=Kf["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return Kf[r]||oc},Uf={connectNulls:!1,type:"linear"},EP=e=>{var{type:t=Uf.type,points:r=[],baseLine:n,layout:a,connectNulls:i=Uf.connectNulls}=e,o=OP(t,a),l=i?r.filter(ui):r;if(Array.isArray(n)){var c,d=r.map((p,b)=>zf(zf({},p),{},{base:n[b]}));a==="vertical"?c=ba().y(An).x1(Pn).x0(p=>p.base.x):c=ba().x(Pn).y1(An).y0(p=>p.base.y);var u=c.defined(Vf).curve(o),m=i?d.filter(Vf):d;return u(m)}var h;a==="vertical"&&ee(n)?h=ba().y(An).x1(Pn).x0(n):ee(n)?h=ba().x(Pn).y1(An).y0(n):h=Kh().x(Pn).y(An);var v=h.defined(ui).curve(o);return v(l)},Bc=e=>{var{className:t,points:r,path:n,pathRef:a}=e,i=hn();if((!r||!r.length)&&!n)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||i,connectNulls:e.connectNulls},l=r&&r.length?EP(o):n;return f.createElement("path",Tl({},kt(e),kc(e),{className:ve("recharts-curve",t),d:l===null?void 0:l,ref:a}))},_P=["x","y","top","left","width","height","className"];function Ml(){return Ml=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ml.apply(null,arguments)}function qf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function TP(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?qf(Object(r),!0).forEach(function(n){MP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):qf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function MP(e,t,r){return(t=IP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function IP(e){var t=DP(e,"string");return typeof t=="symbol"?t:t+""}function DP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function RP(e,t){if(e==null)return{};var r,n,a=LP(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function LP(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var $P=(e,t,r,n,a,i)=>"M".concat(e,",").concat(a,"v").concat(n,"M").concat(i,",").concat(t,"h").concat(r),FP=e=>{var{x:t=0,y:r=0,top:n=0,left:a=0,width:i=0,height:o=0,className:l}=e,c=RP(e,_P),d=TP({x:t,y:r,top:n,left:a,width:i,height:o},c);return!ee(t)||!ee(r)||!ee(i)||!ee(o)||!ee(n)||!ee(a)?null:f.createElement("path",Ml({},st(d),{className:ve("recharts-cross",l),d:$P(t,r,i,o,n,a)}))};function BP(e,t,r,n){var a=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-a:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-a,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}function Wf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Hf(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Wf(Object(r),!0).forEach(function(n){zP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Wf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function zP(e,t,r){return(t=KP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function KP(e){var t=VP(e,"string");return typeof t=="symbol"?t:t+""}function VP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var UP=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),My=(e,t,r)=>e.map(n=>"".concat(UP(n)," ").concat(t,"ms ").concat(r)).join(","),qP=(e,t)=>[Object.keys(e),Object.keys(t)].reduce((r,n)=>r.filter(a=>n.includes(a))),Xn=(e,t)=>Object.keys(t).reduce((r,n)=>Hf(Hf({},r),{},{[n]:e(n,t[n])}),{});function Gf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Be(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Gf(Object(r),!0).forEach(function(n){WP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Gf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function WP(e,t,r){return(t=HP(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function HP(e){var t=GP(e,"string");return typeof t=="symbol"?t:t+""}function GP(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var di=(e,t,r)=>e+(t-e)*r,Il=e=>{var{from:t,to:r}=e;return t!==r},Iy=(e,t,r)=>{var n=Xn((a,i)=>{if(Il(i)){var[o,l]=e(i.from,i.to,i.velocity);return Be(Be({},i),{},{from:o,velocity:l})}return i},t);return r<1?Xn((a,i)=>Il(i)&&n[a]!=null?Be(Be({},i),{},{velocity:di(i.velocity,n[a].velocity,r),from:di(i.from,n[a].from,r)}):i,t):Iy(e,n,r-1)};function XP(e,t,r,n,a,i){var o,l=n.reduce((h,v)=>Be(Be({},h),{},{[v]:{from:e[v],velocity:0,to:t[v]}}),{}),c=()=>Xn((h,v)=>v.from,l),d=()=>!Object.values(l).filter(Il).length,u=null,m=h=>{o||(o=h);var v=h-o,p=v/r.dt;l=Iy(r,l,p),a(Be(Be(Be({},e),t),c())),o=h,d()||(u=i.setTimeout(m))};return()=>(u=i.setTimeout(m),()=>{var h;(h=u)===null||h===void 0||h()})}function YP(e,t,r,n,a,i,o){var l=null,c=a.reduce((m,h)=>{var v=e[h],p=t[h];return v==null||p==null?m:Be(Be({},m),{},{[h]:[v,p]})},{}),d,u=m=>{d||(d=m);var h=(m-d)/n,v=Xn((b,y)=>di(...y,r(h)),c);if(i(Be(Be(Be({},e),t),v)),h<1)l=o.setTimeout(u);else{var p=Xn((b,y)=>di(...y,r(1)),c);i(Be(Be(Be({},e),t),p))}};return()=>(l=o.setTimeout(u),()=>{var m;(m=l)===null||m===void 0||m()})}const ZP=(e,t,r,n,a,i)=>{var o=qP(e,t);return r==null?()=>(a(Be(Be({},e),t)),()=>{}):r.isStepper===!0?XP(e,t,r,o,a,i):YP(e,t,r,n,o,a,i)};var fi=1e-4,Dy=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],Ry=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),Xf=(e,t)=>r=>{var n=Dy(e,t);return Ry(n,r)},JP=(e,t)=>r=>{var n=Dy(e,t),a=[...n.map((i,o)=>i*o).slice(1),0];return Ry(a,r)},QP=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var a=n.map(i=>parseFloat(i));return[a[0],a[1],a[2],a[3]]},eA=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];if(r.length===1)switch(r[0]){case"linear":return[0,0,1,1];case"ease":return[.25,.1,.25,1];case"ease-in":return[.42,0,1,1];case"ease-out":return[.42,0,.58,1];case"ease-in-out":return[0,0,.58,1];default:{var a=QP(r[0]);if(a)return a}}return r.length===4?r:[0,0,1,1]},tA=(e,t,r,n)=>{var a=Xf(e,r),i=Xf(t,n),o=JP(e,r),l=d=>d>1?1:d<0?0:d,c=d=>{for(var u=d>1?1:d,m=u,h=0;h<8;++h){var v=a(m)-u,p=o(m);if(Math.abs(v-u)<fi||p<fi)return i(m);m=l(m-v/p)}return i(m)};return c.isStepper=!1,c},Yf=function(){return tA(...eA(...arguments))},rA=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{stiff:r=100,damping:n=8,dt:a=17}=t,i=(o,l,c)=>{var d=-(o-l)*r,u=c*n,m=c+(d-u)*a/1e3,h=c*a/1e3+o;return Math.abs(h-l)<fi&&Math.abs(m)<fi?[l,0]:[h,m]};return i.isStepper=!0,i.dt=a,i},nA=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return Yf(e);case"spring":return rA();default:if(e.split("(")[0]==="cubic-bezier")return Yf(e)}return typeof e=="function"?e:null};function aA(e){var t,r=()=>null,n=!1,a=null,i=o=>{if(!n){if(Array.isArray(o)){if(!o.length)return;var l=o,[c,...d]=l;if(typeof c=="number"){a=e.setTimeout(i.bind(null,d),c);return}i(c),a=e.setTimeout(i.bind(null,d));return}typeof o=="string"&&(t=o,r(t)),typeof o=="object"&&(t=o,r(t)),typeof o=="function"&&o()}};return{stop:()=>{n=!0},start:o=>{n=!1,a&&(a(),a=null),i(o)},subscribe:o=>(r=o,()=>{r=()=>null}),getTimeoutController:()=>e}}class iA{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),a=null,i=o=>{o-n>=r?t(o):typeof requestAnimationFrame=="function"&&(a=requestAnimationFrame(i))};return a=requestAnimationFrame(i),()=>{a!=null&&cancelAnimationFrame(a)}}}function sA(){return aA(new iA)}var oA=f.createContext(sA);function lA(e,t){var r=f.useContext(oA);return f.useMemo(()=>t??r(e),[e,t,r])}var cA={begin:0,duration:1e3,easing:"ease",isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},Zf={t:0},Oo={t:1};function ss(e){var t=Ke(e,cA),{isActive:r,canBegin:n,duration:a,easing:i,begin:o,onAnimationEnd:l,onAnimationStart:c,children:d}=t,u=_y(),m=r==="auto"?!la.isSsr&&!u:r,h=lA(t.animationId,t.animationManager),[v,p]=f.useState(m?Zf:Oo),b=f.useRef(null);return f.useEffect(()=>{m||p(Oo)},[m]),f.useEffect(()=>{if(!m||!n)return ta;var y=ZP(Zf,Oo,nA(i),a,p,h.getTimeoutController()),g=()=>{b.current=y()};return h.start([c,o,g,a,l]),()=>{h.stop(),b.current&&b.current(),l()}},[m,n,a,i,o,c,l,h]),d(v.t)}function os(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=f.useRef(Kn(t)),n=f.useRef(e);return n.current!==e&&(r.current=Kn(t),n.current=e),r.current}var uA=["radius"],dA=["radius"],Jf,Qf,em,tm,rm,nm,am,im,sm,om;function lm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function cm(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?lm(Object(r),!0).forEach(function(n){fA(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):lm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function fA(e,t,r){return(t=mA(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function mA(e){var t=vA(e,"string");return typeof t=="symbol"?t:t+""}function vA(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function mi(){return mi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},mi.apply(null,arguments)}function um(e,t){if(e==null)return{};var r,n,a=hA(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function hA(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function It(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var dm=(e,t,r,n,a)=>{var i=dr(r),o=dr(n),l=Math.min(Math.abs(i)/2,Math.abs(o)/2),c=o>=0?1:-1,d=i>=0?1:-1,u=o>=0&&i>=0||o<0&&i<0?1:0,m;if(l>0&&Array.isArray(a)){for(var h=[0,0,0,0],v=0,p=4;v<p;v++){var b,y=(b=a[v])!==null&&b!==void 0?b:0;h[v]=y>l?l:y}m=_e(Jf||(Jf=It(["M",",",""])),e,t+c*h[0]),h[0]>0&&(m+=_e(Qf||(Qf=It(["A ",",",",0,0,",",",",",""])),h[0],h[0],u,e+d*h[0],t)),m+=_e(em||(em=It(["L ",",",""])),e+r-d*h[1],t),h[1]>0&&(m+=_e(tm||(tm=It(["A ",",",",0,0,",`,
|
|
63
|
+
`,",",""])),h[1],h[1],u,e+r,t+c*h[1])),m+=_e(rm||(rm=It(["L ",",",""])),e+r,t+n-c*h[2]),h[2]>0&&(m+=_e(nm||(nm=It(["A ",",",",0,0,",`,
|
|
64
|
+
`,",",""])),h[2],h[2],u,e+r-d*h[2],t+n)),m+=_e(am||(am=It(["L ",",",""])),e+d*h[3],t+n),h[3]>0&&(m+=_e(im||(im=It(["A ",",",",0,0,",`,
|
|
65
|
+
`,",",""])),h[3],h[3],u,e,t+n-c*h[3])),m+="Z"}else if(l>0&&a===+a&&a>0){var g=Math.min(l,a);m=_e(sm||(sm=It(["M ",",",`
|
|
66
66
|
A `,",",",0,0,",",",",",`
|
|
67
67
|
L `,",",`
|
|
68
68
|
A `,",",",0,0,",",",",",`
|
|
69
69
|
L `,",",`
|
|
70
70
|
A `,",",",0,0,",",",",",`
|
|
71
71
|
L `,",",`
|
|
72
|
-
A `,",",",0,0,",",",","," Z"])),e,t+c*g,g,g,u,e+d*g,t,e+r-d*g,t,g,g,u,e+r,t+c*g,e+r,t+n-c*g,g,g,u,e+r-d*g,t+n,e+d*g,t+n,g,g,u,e,t+n-c*g)}else m=_e(
|
|
72
|
+
A `,",",",0,0,",",",","," Z"])),e,t+c*g,g,g,u,e+d*g,t,e+r-d*g,t,g,g,u,e+r,t+c*g,e+r,t+n-c*g,g,g,u,e+r-d*g,t+n,e+d*g,t+n,g,g,u,e,t+n-c*g)}else m=_e(om||(om=It(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return m},fm={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Ly=e=>{var t=Ke(e,fm),r=f.useRef(null),[n,a]=f.useState(-1);f.useEffect(()=>{if(r.current&&r.current.getTotalLength)try{var B=r.current.getTotalLength();B&&a(B)}catch{}},[]);var{x:i,y:o,width:l,height:c,radius:d,className:u}=t,{animationEasing:m,animationDuration:h,animationBegin:v,isAnimationActive:p,isUpdateAnimationActive:b}=t,y=f.useRef(l),g=f.useRef(c),j=f.useRef(i),x=f.useRef(o),C=f.useMemo(()=>({x:i,y:o,width:l,height:c,radius:d}),[i,o,l,c,d]),w=os(C,"rectangle-");if(i!==+i||o!==+o||l!==+l||c!==+c||l===0||c===0)return null;var P=ve("recharts-rectangle",u);if(!b){var A=st(t),{radius:S}=A,N=um(A,uA);return f.createElement("path",mi({},N,{x:dr(i),y:dr(o),width:dr(l),height:dr(c),radius:typeof d=="number"?d:void 0,className:P,d:dm(i,o,l,c,d)}))}var E=y.current,T=g.current,O=j.current,I=x.current,z="0px ".concat(n===-1?1:n,"px"),D="".concat(n,"px ").concat(n,"px"),V=My(["strokeDasharray"],h,typeof m=="string"?m:fm.animationEasing);return f.createElement(ss,{animationId:w,key:w,canBegin:n>0,duration:h,easing:m,isActive:b,begin:v},B=>{var W=tt(E,l,B),K=tt(T,c,B),te=tt(O,i,B),G=tt(I,o,B);r.current&&(y.current=W,g.current=K,j.current=te,x.current=G);var M;p?B>0?M={transition:V,strokeDasharray:D}:M={strokeDasharray:z}:M={strokeDasharray:D};var q=st(t),{radius:H}=q,re=um(q,dA);return f.createElement("path",mi({},re,{radius:typeof d=="number"?d:void 0,className:P,d:dm(te,G,W,K,d),ref:r,style:cm(cm({},M),t.style)}))})};function mm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function vm(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?mm(Object(r),!0).forEach(function(n){pA(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function pA(e,t,r){return(t=yA(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yA(e){var t=gA(e,"string");return typeof t=="symbol"?t:t+""}function gA(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var vi=Math.PI/180,bA=e=>e*180/Math.PI,Ie=(e,t,r,n)=>({x:e+Math.cos(-vi*n)*r,y:t+Math.sin(-vi*n)*r}),$y=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},xA=(e,t)=>{var{x:r,y:n}=e,{x:a,y:i}=t;return Math.sqrt((r-a)**2+(n-i)**2)},jA=(e,t)=>{var{x:r,y:n}=e,{cx:a,cy:i}=t,o=xA({x:r,y:n},{x:a,y:i});if(o<=0)return{radius:o,angle:0};var l=(r-a)/o,c=Math.acos(l);return n>i&&(c=2*Math.PI-c),{radius:o,angle:bA(c),angleInRadian:c}},wA=e=>{var{startAngle:t,endAngle:r}=e,n=Math.floor(t/360),a=Math.floor(r/360),i=Math.min(n,a);return{startAngle:t-i*360,endAngle:r-i*360}},CA=(e,t)=>{var{startAngle:r,endAngle:n}=t,a=Math.floor(r/360),i=Math.floor(n/360),o=Math.min(a,i);return e+o*360},kA=(e,t)=>{var{relativeX:r,relativeY:n}=e,{radius:a,angle:i}=jA({x:r,y:n},t),{innerRadius:o,outerRadius:l}=t;if(a<o||a>l||a===0)return null;var{startAngle:c,endAngle:d}=wA(t),u=i,m;if(c<=d){for(;u>d;)u-=360;for(;u<c;)u+=360;m=u>=c&&u<=d}else{for(;u>c;)u-=360;for(;u<d;)u+=360;m=u>=d&&u<=c}return m?vm(vm({},t),{},{radius:a,angle:CA(u,t)}):null};function Fy(e){var{cx:t,cy:r,radius:n,startAngle:a,endAngle:i}=e,o=Ie(t,r,n,a),l=Ie(t,r,n,i);return{points:[o,l],cx:t,cy:r,radius:n,startAngle:a,endAngle:i}}var hm,pm,ym,gm,bm,xm,jm;function Dl(){return Dl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Dl.apply(null,arguments)}function Pr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var SA=(e,t)=>{var r=rt(t-e),n=Math.min(Math.abs(t-e),359.999);return r*n},Pa=e=>{var{cx:t,cy:r,radius:n,angle:a,sign:i,isExternal:o,cornerRadius:l,cornerIsExternal:c}=e,d=l*(o?1:-1)+n,u=Math.asin(l/d)/vi,m=c?a:a+i*u,h=Ie(t,r,d,m),v=Ie(t,r,n,m),p=c?a-i*u:a,b=Ie(t,r,d*Math.cos(u*vi),p);return{center:h,circleTangency:v,lineTangency:b,theta:u}},By=e=>{var{cx:t,cy:r,innerRadius:n,outerRadius:a,startAngle:i,endAngle:o}=e,l=SA(i,o),c=i+l,d=Ie(t,r,a,i),u=Ie(t,r,a,c),m=_e(hm||(hm=Pr(["M ",",",`
|
|
73
73
|
A `,",",`,0,
|
|
74
74
|
`,",",`,
|
|
75
75
|
`,",",`
|
|
76
|
-
`])),d.x,d.y,a,a,+(Math.abs(l)>180),+(i>c),u.x,u.y);if(n>0){var h=Ie(t,r,n,i),v=Ie(t,r,n,c);m+=_e(
|
|
76
|
+
`])),d.x,d.y,a,a,+(Math.abs(l)>180),+(i>c),u.x,u.y);if(n>0){var h=Ie(t,r,n,i),v=Ie(t,r,n,c);m+=_e(pm||(pm=Pr(["L ",",",`
|
|
77
77
|
A `,",",`,0,
|
|
78
78
|
`,",",`,
|
|
79
|
-
`,","," Z"])),v.x,v.y,n,n,+(Math.abs(l)>180),+(i<=c),h.x,h.y)}else m+=_e(
|
|
79
|
+
`,","," Z"])),v.x,v.y,n,n,+(Math.abs(l)>180),+(i<=c),h.x,h.y)}else m+=_e(ym||(ym=Pr(["L ",","," Z"])),t,r);return m},NA=e=>{var{cx:t,cy:r,innerRadius:n,outerRadius:a,cornerRadius:i,forceCornerRadius:o,cornerIsExternal:l,startAngle:c,endAngle:d}=e,u=rt(d-c),{circleTangency:m,lineTangency:h,theta:v}=Pa({cx:t,cy:r,radius:a,angle:c,sign:u,cornerRadius:i,cornerIsExternal:l}),{circleTangency:p,lineTangency:b,theta:y}=Pa({cx:t,cy:r,radius:a,angle:d,sign:-u,cornerRadius:i,cornerIsExternal:l}),g=l?Math.abs(c-d):Math.abs(c-d)-v-y;if(g<0)return o?_e(gm||(gm=Pr(["M ",",",`
|
|
80
80
|
a`,",",",0,0,1,",`,0
|
|
81
81
|
a`,",",",0,0,1,",`,0
|
|
82
|
-
`])),h.x,h.y,i,i,i*2,i,i,-i*2):
|
|
82
|
+
`])),h.x,h.y,i,i,i*2,i,i,-i*2):By({cx:t,cy:r,innerRadius:n,outerRadius:a,startAngle:c,endAngle:d});var j=_e(bm||(bm=Pr(["M ",",",`
|
|
83
83
|
A`,",",",0,0,",",",",",`
|
|
84
84
|
A`,",",",0,",",",",",",",`
|
|
85
85
|
A`,",",",0,0,",",",",",`
|
|
86
|
-
`])),h.x,h.y,i,i,+(u<0),m.x,m.y,a,a,+(g>180),+(u<0),p.x,p.y,i,i,+(u<0),b.x,b.y);if(n>0){var{circleTangency:x,lineTangency:C,theta:w}=Pa({cx:t,cy:r,radius:n,angle:c,sign:u,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),{circleTangency:P,lineTangency:A,theta:S}=Pa({cx:t,cy:r,radius:n,angle:d,sign:-u,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),N=l?Math.abs(c-d):Math.abs(c-d)-w-S;if(N<0&&i===0)return"".concat(j,"L").concat(t,",").concat(r,"Z");j+=_e(
|
|
86
|
+
`])),h.x,h.y,i,i,+(u<0),m.x,m.y,a,a,+(g>180),+(u<0),p.x,p.y,i,i,+(u<0),b.x,b.y);if(n>0){var{circleTangency:x,lineTangency:C,theta:w}=Pa({cx:t,cy:r,radius:n,angle:c,sign:u,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),{circleTangency:P,lineTangency:A,theta:S}=Pa({cx:t,cy:r,radius:n,angle:d,sign:-u,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),N=l?Math.abs(c-d):Math.abs(c-d)-w-S;if(N<0&&i===0)return"".concat(j,"L").concat(t,",").concat(r,"Z");j+=_e(xm||(xm=Pr(["L",",",`
|
|
87
87
|
A`,",",",0,0,",",",",",`
|
|
88
88
|
A`,",",",0,",",",",",",",`
|
|
89
|
-
A`,",",",0,0,",",",",","Z"])),A.x,A.y,i,i,+(u<0),P.x,P.y,n,n,+(N>180),+(u>0),x.x,x.y,i,i,+(u<0),C.x,C.y)}else j+=_e(xm||(xm=Pr(["L",",","Z"])),t,r);return j},NA={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},By=e=>{var t=Ke(e,NA),{cx:r,cy:n,innerRadius:a,outerRadius:i,cornerRadius:o,forceCornerRadius:l,cornerIsExternal:c,startAngle:d,endAngle:u,className:m}=t;if(i<a||d===u)return null;var h=ve("recharts-sector",m),v=i-a,p=ht(o,v,0,!0),b;return p>0&&Math.abs(d-u)<360?b=SA({cx:r,cy:n,innerRadius:a,outerRadius:i,cornerRadius:Math.min(p,v/2),forceCornerRadius:l,cornerIsExternal:c,startAngle:d,endAngle:u}):b=Fy({cx:r,cy:n,innerRadius:a,outerRadius:i,startAngle:d,endAngle:u}),f.createElement("path",Il({},st(t),{className:h,d:b}))};function PA(e,t,r){if(e==="horizontal")return[{x:t.x,y:r.top},{x:t.x,y:r.top+r.height}];if(e==="vertical")return[{x:r.left,y:t.y},{x:r.left+r.width,y:t.y}];if(yp(t)){if(e==="centric"){var{cx:n,cy:a,innerRadius:i,outerRadius:o,angle:l}=t,c=Ie(n,a,i,l),d=Ie(n,a,o,l);return[{x:c.x,y:c.y},{x:d.x,y:d.y}]}return $y(t)}}var Eo={},_o={},To={},jm;function AA(){return jm||(jm=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Ep();function r(n){return t.isSymbol(n)?NaN:Number(n)}e.toNumber=r})(To)),To}var wm;function OA(){return wm||(wm=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=AA();function r(n){return n?(n=t.toNumber(n),n===1/0||n===-1/0?(n<0?-1:1)*Number.MAX_VALUE:n===n?n:0):n===0?n:0}e.toFinite=r})(_o)),_o}var Cm;function EA(){return Cm||(Cm=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=_p(),r=OA();function n(a,i,o){o&&typeof o!="number"&&t.isIterateeCall(a,i,o)&&(i=o=void 0),a=r.toFinite(a),i===void 0?(i=a,a=0):i=r.toFinite(i),o=o===void 0?a<i?1:-1:r.toFinite(o);const l=Math.max(Math.ceil((i-a)/(o||1)),0),c=new Array(l);for(let d=0;d<l;d++)c[d]=a,a+=o;return c}e.range=n})(Eo)),Eo}var Mo,km;function _A(){return km||(km=1,Mo=EA().range),Mo}var TA=_A();const zy=mn(TA);var Ut=e=>e.chartData,ls=_([Ut],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),ca=(e,t,r,n)=>n?ls(e):Ut(e),MA=_([ca],e=>{var{chartData:t,dataStartIndex:r,dataEndIndex:n}=e;return t!=null?t.slice(r,n+1):[]}),IA=_([ls],e=>{var{chartData:t,dataStartIndex:r,dataEndIndex:n}=e;return t!=null?t.slice(r,n+1):[]}),DA=_([Ut],e=>{var{chartData:t,dataStartIndex:r,dataEndIndex:n}=e;return t!=null?t.slice(r,n+1):[]});function Ft(e){if(Array.isArray(e)&&e.length===2){var[t,r]=e;if(me(t)&&me(r))return!0}return!1}function Sm(e,t,r){return r?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function Ky(e,t){if(t&&typeof e!="function"&&Array.isArray(e)&&e.length===2){var[r,n]=e,a,i;if(me(r))a=r;else if(typeof r=="function")return;if(me(n))i=n;else if(typeof n=="function")return;var o=[a,i];if(Ft(o))return o}}function RA(e,t,r){if(!(!r&&t==null)){if(typeof e=="function"&&t!=null)try{var n=e(t,r);if(Ft(n))return Sm(n,t,r)}catch{}if(Array.isArray(e)&&e.length===2){var[a,i]=e,o,l;if(a==="auto")t!=null&&(o=Math.min(...t));else if(ee(a))o=a;else if(typeof a=="function")try{t!=null&&(o=a(t?.[0]))}catch{}else if(typeof a=="string"&&bf.test(a)){var c=bf.exec(a);if(c==null||c[1]==null||t==null)o=void 0;else{var d=+c[1];o=t[0]-d}}else o=t?.[0];if(i==="auto")t!=null&&(l=Math.max(...t));else if(ee(i))l=i;else if(typeof i=="function")try{t!=null&&(l=i(t?.[1]))}catch{}else if(typeof i=="string"&&xf.test(i)){var u=xf.exec(i);if(u==null||u[1]==null||t==null)l=void 0;else{var m=+u[1];l=t[1]+m}}else l=t?.[1];var h=[o,l];if(Ft(h))return t==null?h:Sm(h,t,r)}}}var pn=1e9,LA={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},zc,Se=!0,St="[DecimalError] ",Er=St+"Invalid argument: ",Bc=St+"Exponent out of range: ",yn=Math.floor,Nr=Math.pow,$A=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,mt,Ue=1e7,we=7,Vy=9007199254740991,hi=yn(Vy/we),X={};X.absoluteValue=X.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e};X.comparedTo=X.cmp=function(e){var t,r,n,a,i=this;if(e=new i.constructor(e),i.s!==e.s)return i.s||-e.s;if(i.e!==e.e)return i.e>e.e^i.s<0?1:-1;for(n=i.d.length,a=e.d.length,t=0,r=n<a?n:a;t<r;++t)if(i.d[t]!==e.d[t])return i.d[t]>e.d[t]^i.s<0?1:-1;return n===a?0:n>a^i.s<0?1:-1};X.decimalPlaces=X.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*we;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};X.dividedBy=X.div=function(e){return Xt(this,new this.constructor(e))};X.dividedToIntegerBy=X.idiv=function(e){var t=this,r=t.constructor;return be(Xt(t,new r(e),0,1),r.precision)};X.equals=X.eq=function(e){return!this.cmp(e)};X.exponent=function(){return De(this)};X.greaterThan=X.gt=function(e){return this.cmp(e)>0};X.greaterThanOrEqualTo=X.gte=function(e){return this.cmp(e)>=0};X.isInteger=X.isint=function(){return this.e>this.d.length-2};X.isNegative=X.isneg=function(){return this.s<0};X.isPositive=X.ispos=function(){return this.s>0};X.isZero=function(){return this.s===0};X.lessThan=X.lt=function(e){return this.cmp(e)<0};X.lessThanOrEqualTo=X.lte=function(e){return this.cmp(e)<1};X.logarithm=X.log=function(e){var t,r=this,n=r.constructor,a=n.precision,i=a+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(mt))throw Error(St+"NaN");if(r.s<1)throw Error(St+(r.s?"NaN":"-Infinity"));return r.eq(mt)?new n(0):(Se=!1,t=Xt(Yn(r,i),Yn(e,i),i),Se=!0,be(t,a))};X.minus=X.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Wy(t,e):Uy(t,(e.s=-e.s,e))};X.modulo=X.mod=function(e){var t,r=this,n=r.constructor,a=n.precision;if(e=new n(e),!e.s)throw Error(St+"NaN");return r.s?(Se=!1,t=Xt(r,e,0,1).times(e),Se=!0,r.minus(t)):be(new n(r),a)};X.naturalExponential=X.exp=function(){return qy(this)};X.naturalLogarithm=X.ln=function(){return Yn(this)};X.negated=X.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};X.plus=X.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Uy(t,e):Wy(t,(e.s=-e.s,e))};X.precision=X.sd=function(e){var t,r,n,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Er+e);if(t=De(a)+1,n=a.d.length-1,r=n*we+1,n=a.d[n],n){for(;n%10==0;n/=10)r--;for(n=a.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};X.squareRoot=X.sqrt=function(){var e,t,r,n,a,i,o,l=this,c=l.constructor;if(l.s<1){if(!l.s)return new c(0);throw Error(St+"NaN")}for(e=De(l),Se=!1,a=Math.sqrt(+l),a==0||a==1/0?(t=$t(l.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=yn((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new c(t)):n=new c(a.toString()),r=c.precision,a=o=r+3;;)if(i=n,n=i.plus(Xt(l,i,o+2)).times(.5),$t(i.d).slice(0,o)===(t=$t(n.d)).slice(0,o)){if(t=t.slice(o-3,o+1),a==o&&t=="4999"){if(be(i,r+1,0),i.times(i).eq(l)){n=i;break}}else if(t!="9999")break;o+=4}return Se=!0,be(n,r)};X.times=X.mul=function(e){var t,r,n,a,i,o,l,c,d,u=this,m=u.constructor,h=u.d,v=(e=new m(e)).d;if(!u.s||!e.s)return new m(0);for(e.s*=u.s,r=u.e+e.e,c=h.length,d=v.length,c<d&&(i=h,h=v,v=i,o=c,c=d,d=o),i=[],o=c+d,n=o;n--;)i.push(0);for(n=d;--n>=0;){for(t=0,a=c+n;a>n;)l=i[a]+v[n]*h[a-n-1]+t,i[a--]=l%Ue|0,t=l/Ue|0;i[a]=(i[a]+t)%Ue|0}for(;!i[--o];)i.pop();return t?++r:i.shift(),e.d=i,e.e=r,Se?be(e,m.precision):e};X.toDecimalPlaces=X.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(zt(e,0,pn),t===void 0?t=n.rounding:zt(t,0,8),be(r,e+De(r)+1,t))};X.toExponential=function(e,t){var r,n=this,a=n.constructor;return e===void 0?r=Lr(n,!0):(zt(e,0,pn),t===void 0?t=a.rounding:zt(t,0,8),n=be(new a(n),e+1,t),r=Lr(n,!0,e+1)),r};X.toFixed=function(e,t){var r,n,a=this,i=a.constructor;return e===void 0?Lr(a):(zt(e,0,pn),t===void 0?t=i.rounding:zt(t,0,8),n=be(new i(a),e+De(a)+1,t),r=Lr(n.abs(),!1,e+De(n)+1),a.isneg()&&!a.isZero()?"-"+r:r)};X.toInteger=X.toint=function(){var e=this,t=e.constructor;return be(new t(e),De(e)+1,t.rounding)};X.toNumber=function(){return+this};X.toPower=X.pow=function(e){var t,r,n,a,i,o,l=this,c=l.constructor,d=12,u=+(e=new c(e));if(!e.s)return new c(mt);if(l=new c(l),!l.s){if(e.s<1)throw Error(St+"Infinity");return l}if(l.eq(mt))return l;if(n=c.precision,e.eq(mt))return be(l,n);if(t=e.e,r=e.d.length-1,o=t>=r,i=l.s,o){if((r=u<0?-u:u)<=Vy){for(a=new c(mt),t=Math.ceil(n/we+4),Se=!1;r%2&&(a=a.times(l),Pm(a.d,t)),r=yn(r/2),r!==0;)l=l.times(l),Pm(l.d,t);return Se=!0,e.s<0?new c(mt).div(a):be(a,n)}}else if(i<0)throw Error(St+"NaN");return i=i<0&&e.d[Math.max(t,r)]&1?-1:1,l.s=1,Se=!1,a=e.times(Yn(l,n+d)),Se=!0,a=qy(a),a.s=i,a};X.toPrecision=function(e,t){var r,n,a=this,i=a.constructor;return e===void 0?(r=De(a),n=Lr(a,r<=i.toExpNeg||r>=i.toExpPos)):(zt(e,1,pn),t===void 0?t=i.rounding:zt(t,0,8),a=be(new i(a),e,t),r=De(a),n=Lr(a,e<=r||r<=i.toExpNeg,e)),n};X.toSignificantDigits=X.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(zt(e,1,pn),t===void 0?t=n.rounding:zt(t,0,8)),be(new n(r),e,t)};X.toString=X.valueOf=X.val=X.toJSON=X[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=De(e),r=e.constructor;return Lr(e,t<=r.toExpNeg||t>=r.toExpPos)};function Uy(e,t){var r,n,a,i,o,l,c,d,u=e.constructor,m=u.precision;if(!e.s||!t.s)return t.s||(t=new u(e)),Se?be(t,m):t;if(c=e.d,d=t.d,o=e.e,a=t.e,c=c.slice(),i=o-a,i){for(i<0?(n=c,i=-i,l=d.length):(n=d,a=o,l=c.length),o=Math.ceil(m/we),l=o>l?o+1:l+1,i>l&&(i=l,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(l=c.length,i=d.length,l-i<0&&(i=l,n=d,d=c,c=n),r=0;i;)r=(c[--i]=c[i]+d[i]+r)/Ue|0,c[i]%=Ue;for(r&&(c.unshift(r),++a),l=c.length;c[--l]==0;)c.pop();return t.d=c,t.e=a,Se?be(t,m):t}function zt(e,t,r){if(e!==~~e||e<t||e>r)throw Error(Er+e)}function $t(e){var t,r,n,a=e.length-1,i="",o=e[0];if(a>0){for(i+=o,t=1;t<a;t++)n=e[t]+"",r=we-n.length,r&&(i+=lr(r)),i+=n;o=e[t],n=o+"",r=we-n.length,r&&(i+=lr(r))}else if(o===0)return"0";for(;o%10===0;)o/=10;return i+o}var Xt=(function(){function e(n,a){var i,o=0,l=n.length;for(n=n.slice();l--;)i=n[l]*a+o,n[l]=i%Ue|0,o=i/Ue|0;return o&&n.unshift(o),n}function t(n,a,i,o){var l,c;if(i!=o)c=i>o?1:-1;else for(l=c=0;l<i;l++)if(n[l]!=a[l]){c=n[l]>a[l]?1:-1;break}return c}function r(n,a,i){for(var o=0;i--;)n[i]-=o,o=n[i]<a[i]?1:0,n[i]=o*Ue+n[i]-a[i];for(;!n[0]&&n.length>1;)n.shift()}return function(n,a,i,o){var l,c,d,u,m,h,v,p,b,y,g,j,x,C,w,P,A,S,N=n.constructor,E=n.s==a.s?1:-1,T=n.d,O=a.d;if(!n.s)return new N(n);if(!a.s)throw Error(St+"Division by zero");for(c=n.e-a.e,A=O.length,w=T.length,v=new N(E),p=v.d=[],d=0;O[d]==(T[d]||0);)++d;if(O[d]>(T[d]||0)&&--c,i==null?j=i=N.precision:o?j=i+(De(n)-De(a))+1:j=i,j<0)return new N(0);if(j=j/we+2|0,d=0,A==1)for(u=0,O=O[0],j++;(d<w||u)&&j--;d++)x=u*Ue+(T[d]||0),p[d]=x/O|0,u=x%O|0;else{for(u=Ue/(O[0]+1)|0,u>1&&(O=e(O,u),T=e(T,u),A=O.length,w=T.length),C=A,b=T.slice(0,A),y=b.length;y<A;)b[y++]=0;S=O.slice(),S.unshift(0),P=O[0],O[1]>=Ue/2&&++P;do u=0,l=t(O,b,A,y),l<0?(g=b[0],A!=y&&(g=g*Ue+(b[1]||0)),u=g/P|0,u>1?(u>=Ue&&(u=Ue-1),m=e(O,u),h=m.length,y=b.length,l=t(m,b,h,y),l==1&&(u--,r(m,A<h?S:O,h))):(u==0&&(l=u=1),m=O.slice()),h=m.length,h<y&&m.unshift(0),r(b,m,y),l==-1&&(y=b.length,l=t(O,b,A,y),l<1&&(u++,r(b,A<y?S:O,y))),y=b.length):l===0&&(u++,b=[0]),p[d++]=u,l&&b[0]?b[y++]=T[C]||0:(b=[T[C]],y=1);while((C++<w||b[0]!==void 0)&&j--)}return p[0]||p.shift(),v.e=c,be(v,o?i+De(v)+1:i)}})();function qy(e,t){var r,n,a,i,o,l,c=0,d=0,u=e.constructor,m=u.precision;if(De(e)>16)throw Error(Bc+De(e));if(!e.s)return new u(mt);for(Se=!1,l=m,o=new u(.03125);e.abs().gte(.1);)e=e.times(o),d+=5;for(n=Math.log(Nr(2,d))/Math.LN10*2+5|0,l+=n,r=a=i=new u(mt),u.precision=l;;){if(a=be(a.times(e),l),r=r.times(++c),o=i.plus(Xt(a,r,l)),$t(o.d).slice(0,l)===$t(i.d).slice(0,l)){for(;d--;)i=be(i.times(i),l);return u.precision=m,t==null?(Se=!0,be(i,m)):i}i=o}}function De(e){for(var t=e.e*we,r=e.d[0];r>=10;r/=10)t++;return t}function Io(e,t,r){if(t>e.LN10.sd())throw Se=!0,r&&(e.precision=r),Error(St+"LN10 precision limit exceeded");return be(new e(e.LN10),t)}function lr(e){for(var t="";e--;)t+="0";return t}function Yn(e,t){var r,n,a,i,o,l,c,d,u,m=1,h=10,v=e,p=v.d,b=v.constructor,y=b.precision;if(v.s<1)throw Error(St+(v.s?"NaN":"-Infinity"));if(v.eq(mt))return new b(0);if(t==null?(Se=!1,d=y):d=t,v.eq(10))return t==null&&(Se=!0),Io(b,d);if(d+=h,b.precision=d,r=$t(p),n=r.charAt(0),i=De(v),Math.abs(i)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)v=v.times(e),r=$t(v.d),n=r.charAt(0),m++;i=De(v),n>1?(v=new b("0."+r),i++):v=new b(n+"."+r.slice(1))}else return c=Io(b,d+2,y).times(i+""),v=Yn(new b(n+"."+r.slice(1)),d-h).plus(c),b.precision=y,t==null?(Se=!0,be(v,y)):v;for(l=o=v=Xt(v.minus(mt),v.plus(mt),d),u=be(v.times(v),d),a=3;;){if(o=be(o.times(u),d),c=l.plus(Xt(o,new b(a),d)),$t(c.d).slice(0,d)===$t(l.d).slice(0,d))return l=l.times(2),i!==0&&(l=l.plus(Io(b,d+2,y).times(i+""))),l=Xt(l,new b(m),d),b.precision=y,t==null?(Se=!0,be(l,y)):l;l=c,a+=2}}function Nm(e,t){var r,n,a;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(n,a),t){if(a-=n,r=r-n-1,e.e=yn(r/we),e.d=[],n=(r+1)%we,r<0&&(n+=we),n<a){for(n&&e.d.push(+t.slice(0,n)),a-=we;n<a;)e.d.push(+t.slice(n,n+=we));t=t.slice(n),n=we-t.length}else n-=a;for(;n--;)t+="0";if(e.d.push(+t),Se&&(e.e>hi||e.e<-hi))throw Error(Bc+r)}else e.s=0,e.e=0,e.d=[0];return e}function be(e,t,r){var n,a,i,o,l,c,d,u,m=e.d;for(o=1,i=m[0];i>=10;i/=10)o++;if(n=t-o,n<0)n+=we,a=t,d=m[u=0];else{if(u=Math.ceil((n+1)/we),i=m.length,u>=i)return e;for(d=i=m[u],o=1;i>=10;i/=10)o++;n%=we,a=n-we+o}if(r!==void 0&&(i=Nr(10,o-a-1),l=d/i%10|0,c=t<0||m[u+1]!==void 0||d%i,c=r<4?(l||c)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||c||r==6&&(n>0?a>0?d/Nr(10,o-a):0:m[u-1])%10&1||r==(e.s<0?8:7))),t<1||!m[0])return c?(i=De(e),m.length=1,t=t-i-1,m[0]=Nr(10,(we-t%we)%we),e.e=yn(-t/we)||0):(m.length=1,m[0]=e.e=e.s=0),e;if(n==0?(m.length=u,i=1,u--):(m.length=u+1,i=Nr(10,we-n),m[u]=a>0?(d/Nr(10,o-a)%Nr(10,a)|0)*i:0),c)for(;;)if(u==0){(m[0]+=i)==Ue&&(m[0]=1,++e.e);break}else{if(m[u]+=i,m[u]!=Ue)break;m[u--]=0,i=1}for(n=m.length;m[--n]===0;)m.pop();if(Se&&(e.e>hi||e.e<-hi))throw Error(Bc+De(e));return e}function Wy(e,t){var r,n,a,i,o,l,c,d,u,m,h=e.constructor,v=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),Se?be(t,v):t;if(c=e.d,m=t.d,n=t.e,d=e.e,c=c.slice(),o=d-n,o){for(u=o<0,u?(r=c,o=-o,l=m.length):(r=m,n=d,l=c.length),a=Math.max(Math.ceil(v/we),l)+2,o>a&&(o=a,r.length=1),r.reverse(),a=o;a--;)r.push(0);r.reverse()}else{for(a=c.length,l=m.length,u=a<l,u&&(l=a),a=0;a<l;a++)if(c[a]!=m[a]){u=c[a]<m[a];break}o=0}for(u&&(r=c,c=m,m=r,t.s=-t.s),l=c.length,a=m.length-l;a>0;--a)c[l++]=0;for(a=m.length;a>o;){if(c[--a]<m[a]){for(i=a;i&&c[--i]===0;)c[i]=Ue-1;--c[i],c[a]+=Ue}c[a]-=m[a]}for(;c[--l]===0;)c.pop();for(;c[0]===0;c.shift())--n;return c[0]?(t.d=c,t.e=n,Se?be(t,v):t):new h(0)}function Lr(e,t,r){var n,a=De(e),i=$t(e.d),o=i.length;return t?(r&&(n=r-o)>0?i=i.charAt(0)+"."+i.slice(1)+lr(n):o>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(a<0?"e":"e+")+a):a<0?(i="0."+lr(-a-1)+i,r&&(n=r-o)>0&&(i+=lr(n))):a>=o?(i+=lr(a+1-o),r&&(n=r-a-1)>0&&(i=i+"."+lr(n))):((n=a+1)<o&&(i=i.slice(0,n)+"."+i.slice(n)),r&&(n=r-o)>0&&(a+1===o&&(i+="."),i+=lr(n))),e.s<0?"-"+i:i}function Pm(e,t){if(e.length>t)return e.length=t,!0}function Hy(e){var t,r,n;function a(i){var o=this;if(!(o instanceof a))return new a(i);if(o.constructor=a,i instanceof a){o.s=i.s,o.e=i.e,o.d=(i=i.d)?i.slice():i;return}if(typeof i=="number"){if(i*0!==0)throw Error(Er+i);if(i>0)o.s=1;else if(i<0)i=-i,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(i===~~i&&i<1e7){o.e=0,o.d=[i];return}return Nm(o,i.toString())}else if(typeof i!="string")throw Error(Er+i);if(i.charCodeAt(0)===45?(i=i.slice(1),o.s=-1):o.s=1,$A.test(i))Nm(o,i);else throw Error(Er+i)}if(a.prototype=X,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=Hy,a.config=a.set=FA,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t<n.length;)e.hasOwnProperty(r=n[t++])||(e[r]=this[r]);return a.config(e),a}function FA(e){if(!e||typeof e!="object")throw Error(St+"Object expected");var t,r,n,a=["precision",1,pn,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<a.length;t+=3)if((n=e[r=a[t]])!==void 0)if(yn(n)===n&&n>=a[t+1]&&n<=a[t+2])this[r]=n;else throw Error(Er+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(Er+r+": "+n);return this}var zc=Hy(LA);mt=new zc(1);const ue=zc;function Gy(e){var t;return e===0?t=1:t=Math.floor(new ue(e).abs().log(10).toNumber())+1,t}function Xy(e,t,r){for(var n=new ue(e),a=0,i=[];n.lt(t)&&a<1e5;)i.push(n.toNumber()),n=n.add(r),a++;return i}var Yy=e=>{var[t,r]=e,[n,a]=[t,r];return t>r&&([n,a]=[r,t]),[n,a]},Kc=(e,t,r)=>{if(e.lte(0))return new ue(0);var n=Gy(e.toNumber()),a=new ue(10).pow(n),i=e.div(a),o=n!==1?.05:.1,l=new ue(Math.ceil(i.div(o).toNumber())).add(r).mul(o),c=l.mul(a);return t?new ue(c.toNumber()):new ue(Math.ceil(c.toNumber()))},Zy=(e,t,r)=>{var n;if(e.lte(0))return new ue(0);var a=[1,2,2.5,5],i=e.toNumber(),o=Math.floor(new ue(i).abs().log(10).toNumber()),l=new ue(10).pow(o),c=e.div(l).toNumber(),d=a.findIndex(v=>v>=c-1e-10);if(d===-1&&(l=l.mul(10),d=0),d+=r,d>=a.length){var u=Math.floor(d/a.length);d%=a.length,l=l.mul(new ue(10).pow(u))}var m=(n=a[d])!==null&&n!==void 0?n:1,h=new ue(m).mul(l);return t?h:new ue(Math.ceil(h.toNumber()))},BA=(e,t,r)=>{var n=new ue(1),a=new ue(e);if(!a.isint()&&r){var i=Math.abs(e);i<1?(n=new ue(10).pow(Gy(e)-1),a=new ue(Math.floor(a.div(n).toNumber())).mul(n)):i>1&&(a=new ue(Math.floor(e)))}else e===0?a=new ue(Math.floor((t-1)/2)):r||(a=new ue(Math.floor(e)));for(var o=Math.floor((t-1)/2),l=[],c=0;c<t;c++)l.push(a.add(new ue(c-o).mul(n)).toNumber());return l},Jy=function(t,r,n,a){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:Kc;if(!Number.isFinite((r-t)/(n-1)))return{step:new ue(0),tickMin:new ue(0),tickMax:new ue(0)};var l=o(new ue(r).sub(t).div(n-1),a,i),c;t<=0&&r>=0?c=new ue(0):(c=new ue(t).add(r).div(2),c=c.sub(new ue(c).mod(l)));var d=Math.ceil(c.sub(t).div(l).toNumber()),u=Math.ceil(new ue(r).sub(c).div(l).toNumber()),m=d+u+1;return m>n?Jy(t,r,n,a,i+1,o):(m<n&&(u=r>0?u+(n-m):u,d=r>0?d:d+(n-m)),{step:l,tickMin:c.sub(new ue(d).mul(l)),tickMax:c.add(new ue(u).mul(l))})},Am=function(t){var[r,n]=t,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=Math.max(a,2),[c,d]=Yy([r,n]);if(c===-1/0||d===1/0){var u=d===1/0?[c,...Array(a-1).fill(1/0)]:[...Array(a-1).fill(-1/0),d];return r>n?u.reverse():u}if(c===d)return BA(c,a,i);var m=o==="snap125"?Zy:Kc,{step:h,tickMin:v,tickMax:p}=Jy(c,d,l,i,0,m),b=Xy(v,p.add(new ue(.1).mul(h)),h);return r>n?b.reverse():b},Om=function(t,r){var[n,a]=t,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",[l,c]=Yy([n,a]);if(l===-1/0||c===1/0)return[n,a];if(l===c)return[l];var d=o==="snap125"?Zy:Kc,u=Math.max(r,2),m=d(new ue(c).sub(l).div(u-1),i,0),h=[...Xy(new ue(l),new ue(c),m),c];return i===!1&&(h=h.map(v=>Math.round(v))),n>a?h.reverse():h},zA=e=>e.rootProps.barCategoryGap,ua=e=>e.rootProps.stackOffset,Qy=e=>e.rootProps.reverseStackOrder,Vc=e=>e.options.chartName,Uc=e=>e.rootProps.syncId,eg=e=>e.rootProps.syncMethod,qc=e=>e.options.eventEmitter,Ze={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},xr={allowDecimals:!1,allowDataOverflow:!1,angleAxisId:0,reversed:!1,scale:"auto",tick:!0,type:"auto"},Dt={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,includeHidden:!1,radiusAxisId:0,reversed:!1,scale:"auto",tick:!0,tickCount:5,type:"auto"},cs=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function us(e,t,r){if(r!=="auto")return r;if(e!=null)return er(e,t)?"category":"number"}function Em(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function pi(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Em(Object(r),!0).forEach(function(n){KA(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Em(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function KA(e,t,r){return(t=VA(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function VA(e){var t=UA(e,"string");return typeof t=="symbol"?t:t+""}function UA(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var _m={allowDataOverflow:xr.allowDataOverflow,allowDecimals:xr.allowDecimals,allowDuplicatedCategory:!1,dataKey:void 0,domain:void 0,id:xr.angleAxisId,includeHidden:!1,name:void 0,reversed:xr.reversed,scale:xr.scale,tick:xr.tick,tickCount:void 0,ticks:void 0,type:xr.type,unit:void 0,niceTicks:"auto"},Tm={allowDataOverflow:Dt.allowDataOverflow,allowDecimals:Dt.allowDecimals,allowDuplicatedCategory:Dt.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:Dt.radiusAxisId,includeHidden:Dt.includeHidden,name:void 0,reversed:Dt.reversed,scale:Dt.scale,tick:Dt.tick,tickCount:Dt.tickCount,ticks:void 0,type:Dt.type,unit:void 0,niceTicks:"auto"},qA=(e,t)=>{if(t!=null)return e.polarAxis.angleAxis[t]},Wc=_([qA,by],(e,t)=>{var r;if(e!=null)return e;var n=(r=us(t,"angleAxis",_m.type))!==null&&r!==void 0?r:"category";return pi(pi({},_m),{},{type:n})}),WA=(e,t)=>e.polarAxis.radiusAxis[t],Hc=_([WA,by],(e,t)=>{var r;if(e!=null)return e;var n=(r=us(t,"radiusAxis",Tm.type))!==null&&r!==void 0?r:"category";return pi(pi({},Tm),{},{type:n})}),ds=e=>e.polarOptions,Gc=_([tr,rr,qe],Ly),tg=_([ds,Gc],(e,t)=>{if(e!=null)return ht(e.innerRadius,t,0)}),rg=_([ds,Gc],(e,t)=>{if(e!=null)return ht(e.outerRadius,t,t*.8)}),HA=e=>{if(e==null)return[0,0];var{startAngle:t,endAngle:r}=e;return[t,r]},ng=_([ds],HA);_([Wc,ng],cs);var ag=_([Gc,tg,rg],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]});_([Hc,ag],cs);var ig=_([xe,ds,tg,rg,tr,rr],(e,t,r,n,a,i)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var{cx:o,cy:l,startAngle:c,endAngle:d}=t;return{cx:ht(o,a,a/2),cy:ht(l,i,i/2),innerRadius:r,outerRadius:n,startAngle:c,endAngle:d,clockWise:!1}}}),Ae=(e,t)=>t,da=(e,t,r)=>r;function sg(e){return e?.id}function og(e,t,r){var{chartData:n=[]}=t,{allowDuplicatedCategory:a,dataKey:i}=r,o=new Map;return e.forEach(l=>{var c,d=(c=l.data)!==null&&c!==void 0?c:n;if(!(d==null||d.length===0)){var u=sg(l);d.forEach((m,h)=>{var v=i==null||a?h:String(ge(m,i,null)),p=ge(m,l.dataKey,0),b;o.has(v)?b=o.get(v):b={},Object.assign(b,{[u]:p}),o.set(v,b)})}}),Array.from(o.values())}function Xc(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var fs=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function ms(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function GA(e,t){if(e.length===t.length){for(var r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}return!1}var We=e=>{var t=xe(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"},gn=e=>e.tooltip.settings.axisId;function Yc(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),a=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(i){function o(){return i.apply(this,arguments)}return o.toString=function(){return i.toString()},o})(()=>a),rangeMin:()=>a[0],rangeMax:()=>a[1],isInRange(i){var o=a[0],l=a[1];return o<=l?i>=o&&i<=l:i>=l&&i<=o},bandwidth:r?()=>r.call(e):void 0,ticks:t?i=>t.call(e,i):void 0,map:(i,o)=>{var l=e(i);if(l!=null){if(e.bandwidth&&o!==null&&o!==void 0&&o.position){var c=e.bandwidth();switch(o.position){case"middle":l+=c/2;break;case"end":l+=c;break}}return l}}}}}var lg=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!Ft(t)){for(var r,n,a=0;a<t.length;a++){var i=t[a];me(i)&&((r===void 0||i<r)&&(r=i),(n===void 0||i>n)&&(n=i))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};const cg=Object.freeze(Object.defineProperty({__proto__:null,scaleBand:k0,scaleDiverging:np,scaleDivergingLog:ap,scaleDivergingPow:hc,scaleDivergingSqrt:$w,scaleDivergingSymlog:ip,scaleIdentity:Wh,scaleImplicit:W0,scaleLinear:O0,scaleLog:Hh,scaleOrdinal:H0,scalePoint:S0,scalePow:mc,scaleQuantile:Yh,scaleQuantize:Zh,scaleRadial:Xh,scaleSequential:Qh,scaleSequentialLog:ep,scaleSequentialPow:vc,scaleSequentialQuantile:rp,scaleSequentialSqrt:Lw,scaleSequentialSymlog:tp,scaleSqrt:Iw,scaleSymlog:Gh,scaleThreshold:Jh,scaleTime:V0,scaleUtc:Rw,tickFormat:E0},Symbol.toStringTag,{value:"Module"}));function XA(e){var t=cg;if(e in t&&typeof t[e]=="function")return t[e]();var r="scale".concat(ea(e));if(r in t&&typeof t[r]=="function")return t[r]()}function Mm(e,t,r){if(typeof e=="function")return e.copy().domain(t).range(r);if(e!=null){var n=XA(e);if(n!=null)return n.domain(t).range(r),n}}function Zc(e,t,r,n){if(!(r==null||n==null))return typeof e.scale=="function"?Mm(e.scale,r,n):Mm(t,r,n)}function YA(e){return"scale".concat(ea(e))}function ZA(e){return YA(e)in cg}var ug=(e,t,r)=>{if(e!=null){var{scale:n,type:a}=e;if(n==="auto")return a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":a==="category"?"band":"linear";if(typeof n=="string")return ZA(n)?n:"point"}};function JA(e,t){for(var r=0,n=e.length,a=e[0]<e[e.length-1];r<n;){var i=Math.floor((r+n)/2);(a?e[i]<t:e[i]>t)?r=i+1:n=i}return r}function dg(e,t){if(e){var r=t??e.domain(),n=r.map(i=>{var o;return(o=e(i))!==null&&o!==void 0?o:0}),a=e.range();if(!(r.length===0||a.length<2))return i=>{var o,l,c=JA(n,i);if(c<=0)return r[0];if(c>=r.length)return r[r.length-1];var d=(o=n[c-1])!==null&&o!==void 0?o:0,u=(l=n[c])!==null&&l!==void 0?l:0;return Math.abs(i-d)<=Math.abs(i-u)?r[c-1]:r[c]}}}function QA(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):dg(e,void 0)}function Im(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function yi(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Im(Object(r),!0).forEach(function(n){eO(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Im(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function eO(e,t,r){return(t=tO(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function tO(e){var t=rO(e,"string");return typeof t=="symbol"?t:t+""}function rO(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Dl=[0,"auto"],$e={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:void 0,height:30,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"bottom",padding:{left:0,right:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"category",unit:void 0,niceTicks:"auto"},fg=(e,t)=>e.cartesianAxis.xAxis[t],nr=(e,t)=>{var r=fg(e,t);return r??$e},Fe={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:Dl,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:aa},mg=(e,t)=>e.cartesianAxis.yAxis[t],ar=(e,t)=>{var r=mg(e,t);return r??Fe},nO={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},Jc=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??nO},Te=(e,t,r)=>{switch(t){case"xAxis":return nr(e,r);case"yAxis":return ar(e,r);case"zAxis":return Jc(e,r);case"angleAxis":return Wc(e,r);case"radiusAxis":return Hc(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},aO=(e,t,r)=>{switch(t){case"xAxis":return nr(e,r);case"yAxis":return ar(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},bn=(e,t,r)=>{switch(t){case"xAxis":return nr(e,r);case"yAxis":return ar(e,r);case"angleAxis":return Wc(e,r);case"radiusAxis":return Hc(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},vg=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function Qc(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var hg=e=>e.graphicalItems.cartesianItems,iO=_([Ae,da],Qc),eu=(e,t,r)=>e.filter(r).filter(n=>t?.includeHidden===!0?!0:!n.hide),xn=_([hg,Te,iO],eu,{memoizeOptions:{resultEqualityCheck:ms}}),pg=_([xn],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(Xc)),yg=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),sO=_([xn],yg),tu=e=>e.map(t=>t.data).filter(Boolean).flat(1),oO=_([xn],e=>e.some(t=>!t.data)),gg=_([xn],tu,{memoizeOptions:{resultEqualityCheck:ms}}),ru=(e,t)=>{var{chartData:r=[],dataStartIndex:n,dataEndIndex:a}=t;return e.length>0?e:r.slice(n,a+1)},nu=_([gg,ca],ru),bg=(e,t,r)=>t?.dataKey!=null?e.map(n=>({value:ge(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(a=>({value:ge(a,n)}))):e.map(n=>({value:n})),xg=(e,t,r,n,a,i)=>{var{chartData:o=[],dataStartIndex:l,dataEndIndex:c}=n,d=bg(e,t,r);if(a&&t?.dataKey!=null&&i.length>0){var u=o.slice(l,c+1),m=u.map(h=>({value:ge(h,t.dataKey)})).filter(h=>h.value!=null);return[...m,...d]}return d},fa=_([nu,Te,xn,ca,oO,gg],xg);function nn(e){if(Bt(e)||e instanceof Date){var t=Number(e);if(me(t))return t}}function Dm(e){if(Array.isArray(e)){var t=[nn(e[0]),nn(e[1])];return Ft(t)?t:void 0}var r=nn(e);if(r!=null)return[r,r]}function Kt(e){return e.map(nn).filter(ut)}function lO(e,t){var r=nn(e),n=nn(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var cO=_([fa],e=>e?.map(t=>t.value).sort(lO));function jg(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function uO(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!Zt(t))n=t;else if(Array.isArray(t)){var a=Kt(t);a.length>0&&(n=Math.max(...a))}return n==null?[]:Kt(r.flatMap(i=>{var o=ge(e,i.dataKey),l,c;if(Array.isArray(o)?[l,c]=o:l=c=o,!(!me(l)||!me(c)))return[n-l,n+c]}))}var Ve=e=>{var t=We(e),r=gn(e);return bn(e,t,r)},un=_([Ve],e=>e?.dataKey),dO=_([pg,ca,Ve],og),wg=(e,t,r,n)=>{var a={},i=t.reduce((o,l)=>{if(l.stackId==null)return o;var c=o[l.stackId];return c==null&&(c=[]),c.push(l),o[l.stackId]=c,o},a);return Object.fromEntries(Object.entries(i).map(o=>{var[l,c]=o,d=n?[...c].reverse():c,u=d.map(sg);return[l,{stackedData:WS(e,u,r),graphicalItems:d}]}))},fO=_([dO,pg,ua,Qy],wg),Cg=(e,t,r,n)=>{var{dataStartIndex:a,dataEndIndex:i}=t;if(n==null&&r!=="zAxis"){var o=XS(e,a,i);if(!(o!=null&&o[0]===0&&o[1]===0))return o}},mO=_([Te],e=>e.allowDataOverflow),au=e=>{var t;if(e==null||!("domain"in e))return Dl;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=Kt(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e?.domain)!==null&&t!==void 0?t:Dl},iu=_([Te],au),su=_([iu,mO],Ky),vO=_([fO,Ut,Ae,su],Cg,{memoizeOptions:{resultEqualityCheck:fs}}),vs=e=>e.errorBars,hO=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>jg(r,n)),gi=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var a=r.filter(Boolean);if(a.length!==0){var i=a.flat(),o=Math.min(...i),l=Math.max(...i);return[o,l]}},ou=function(t,r,n,a,i){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:[],l,c;if(n.length>0&&n.forEach(d=>{var u,m=d.data!=null?[...d.data]:o,h=(u=a[d.id])===null||u===void 0?void 0:u.filter(v=>jg(i,v));m.forEach(v=>{var p,b=ge(v,(p=r.dataKey)!==null&&p!==void 0?p:d.dataKey),y=uO(v,b,h);if(y.length>=2){var g=Math.min(...y),j=Math.max(...y);(l==null||g<l)&&(l=g),(c==null||j>c)&&(c=j)}var x=Dm(b);x!=null&&(l=l==null?x[0]:Math.min(l,x[0]),c=c==null?x[1]:Math.max(c,x[1]))})}),r?.dataKey!=null&&n.length===0&&t.forEach(d=>{var u=Dm(ge(d,r.dataKey));u!=null&&(l=l==null?u[0]:Math.min(l,u[0]),c=c==null?u[1]:Math.max(c,u[1]))}),me(l)&&me(c))return[l,c]},pO=_([nu,Te,sO,vs,Ae,MA],ou,{memoizeOptions:{resultEqualityCheck:fs}});function yO(e){var{value:t}=e;if(Bt(t)||t instanceof Date)return t}var gO=(e,t,r)=>{var n=e.map(yO).filter(a=>a!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&vp(n))?zy(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},kg=e=>e.referenceElements.dots,jn=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),bO=_([kg,Ae,da],jn),Sg=e=>e.referenceElements.areas,xO=_([Sg,Ae,da],jn),Ng=e=>e.referenceElements.lines,jO=_([Ng,Ae,da],jn),Pg=(e,t)=>{if(e!=null){var r=Kt(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},wO=_(bO,Ae,Pg),Ag=(e,t)=>{if(e!=null){var r=Kt(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},CO=_([xO,Ae],Ag);function kO(e){var t;if(e.x!=null)return Kt([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:Kt(r)}function SO(e){var t;if(e.y!=null)return Kt([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:Kt(r)}var Og=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?kO(n):SO(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},NO=_([jO,Ae],Og),PO=_(wO,NO,CO,(e,t,r)=>gi(e,r,t)),lu=(e,t,r,n,a,i,o,l)=>{if(r!=null)return r;var c=o==="vertical"&&l==="xAxis"||o==="horizontal"&&l==="yAxis",d=c?gi(n,i,a):gi(i,a);return RA(t,d,e.allowDataOverflow)},AO=_([Te,iu,su,vO,pO,PO,xe,Ae],lu,{memoizeOptions:{resultEqualityCheck:fs}}),OO=[0,1],cu=(e,t,r,n,a,i,o)=>{if(!((e==null||r==null||r.length===0)&&o===void 0)){var{dataKey:l,type:c}=e,d=er(t,i);if(d&&l==null){var u;return zy(0,(u=r?.length)!==null&&u!==void 0?u:0)}return c==="category"?gO(n,e,d):a==="expand"&&!d?OO:o}},uu=_([Te,xe,nu,fa,ua,Ae,AO],cu),gr=_([Te,vg,Vc],ug),du=(e,t,r)=>{var{niceTicks:n}=t;if(n!=="none"){var a=au(t),i=Array.isArray(a)&&(a[0]==="auto"||a[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&Ft(e)){if(i)return Am(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return Om(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(i&&Ft(e))return Am(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&Ft(e))return Om(e,t.tickCount,t.allowDecimals,"adaptive")}}},fu=_([uu,bn,gr],du),mu=(e,t,r,n)=>{if(n!=="angleAxis"&&e?.type==="number"&&Ft(t)&&Array.isArray(r)&&r.length>0){var a,i,o=t[0],l=(a=r[0])!==null&&a!==void 0?a:0,c=t[1],d=(i=r[r.length-1])!==null&&i!==void 0?i:0;return[Math.min(o,l),Math.max(c,d)]}return t},EO=_([Te,uu,fu,Ae],mu),_O=_(fa,Te,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from(Kt(e.map(m=>m.value))).sort((m,h)=>m-h),a=n[0],i=n[n.length-1];if(a==null||i==null)return 1/0;var o=i-a;if(o===0)return 1/0;for(var l=0;l<n.length-1;l++){var c=n[l],d=n[l+1];if(!(c==null||d==null)){var u=d-c;r=Math.min(r,u)}}return r/o}}),Eg=_(_O,xe,zA,qe,(e,t,r,n,a)=>a,(e,t,r,n,a)=>{if(!me(e))return 0;var i=t==="vertical"?n.height:n.width;if(a==="gap")return e*i/2;if(a==="no-gap"){var o=ht(r,e*i),l=e*i/2;return l-o-(l-o)/i*o}return 0}),TO=(e,t,r)=>{var n=nr(e,t);return n==null||typeof n.padding!="string"?0:Eg(e,"xAxis",t,r,n.padding)},MO=(e,t,r)=>{var n=ar(e,t);return n==null||typeof n.padding!="string"?0:Eg(e,"yAxis",t,r,n.padding)},IO=_(nr,TO,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var{padding:a}=e;return typeof a=="string"?{left:t,right:t}:{left:((r=a.left)!==null&&r!==void 0?r:0)+t,right:((n=a.right)!==null&&n!==void 0?n:0)+t}}),DO=_(ar,MO,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var{padding:a}=e;return typeof a=="string"?{top:t,bottom:t}:{top:((r=a.top)!==null&&r!==void 0?r:0)+t,bottom:((n=a.bottom)!==null&&n!==void 0?n:0)+t}}),RO=_([qe,IO,ts,es,(e,t,r)=>r],(e,t,r,n,a)=>{var{padding:i}=n;return a?[i.left,r.width-i.right]:[e.left+t.left,e.left+e.width-t.right]}),LO=_([qe,xe,DO,ts,es,(e,t,r)=>r],(e,t,r,n,a,i)=>{var{padding:o}=a;return i?[n.height-o.bottom,o.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),ma=(e,t,r,n)=>{var a;switch(t){case"xAxis":return RO(e,r,n);case"yAxis":return LO(e,r,n);case"zAxis":return(a=Jc(e,r))===null||a===void 0?void 0:a.range;case"angleAxis":return ng(e);case"radiusAxis":return ag(e,r);default:return}},_g=_([Te,ma],cs),$O=_([gr,EO],lg),vu=_([Te,gr,$O,_g],Zc),Tg=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var{type:a,scale:i}=r,o=er(e,n);if(o&&(a==="number"||i!=="auto"))return t.map(l=>l.value)}},hu=_([xe,fa,bn,Ae],Tg),hs=_([vu],Yc);_([vu],QA);_([vu,cO],dg);_([xn,vs,Ae],hO);function Mg(e,t){return e.id<t.id?-1:e.id>t.id?1:0}var ps=(e,t)=>t,ys=(e,t,r)=>r,FO=_(Ji,ps,ys,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(Mg)),BO=_(Qi,ps,ys,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(Mg)),Ig=(e,t)=>({width:e.width,height:t.height}),zO=(e,t)=>{var r=typeof t.width=="number"?t.width:aa;return{width:r,height:e.height}},KO=_(qe,nr,Ig),VO=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},UO=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},qO=_(rr,qe,FO,ps,ys,(e,t,r,n,a)=>{var i={},o;return r.forEach(l=>{var c=Ig(t,l);o==null&&(o=VO(t,n,e));var d=n==="top"&&!a||n==="bottom"&&a;i[l.id]=o-Number(d)*c.height,o+=(d?-1:1)*c.height}),i}),WO=_(tr,qe,BO,ps,ys,(e,t,r,n,a)=>{var i={},o;return r.forEach(l=>{var c=zO(t,l);o==null&&(o=UO(t,n,e));var d=n==="left"&&!a||n==="right"&&a;i[l.id]=o-Number(d)*c.width,o+=(d?-1:1)*c.width}),i}),HO=(e,t)=>{var r=nr(e,t);if(r!=null)return qO(e,r.orientation,r.mirror)},GO=_([qe,nr,HO,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:e.left,y:0}:{x:e.left,y:a}}}),XO=(e,t)=>{var r=ar(e,t);if(r!=null)return WO(e,r.orientation,r.mirror)},YO=_([qe,ar,XO,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:0,y:e.top}:{x:a,y:e.top}}}),ZO=_(qe,ar,(e,t)=>{var r=typeof t.width=="number"?t.width:aa;return{width:r,height:e.height}}),Dg=(e,t,r,n)=>{if(r!=null){var{allowDuplicatedCategory:a,type:i,dataKey:o}=r,l=er(e,n),c=t.map(u=>u.value),d=c.filter(u=>u!=null);if(o&&l&&i==="category"&&a&&vp(d))return c}},pu=_([xe,fa,Te,Ae],Dg),Rm=_([xe,aO,gr,hs,pu,hu,ma,fu,Ae],(e,t,r,n,a,i,o,l,c)=>{if(t!=null){var d=er(e,c);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:c,categoricalDomain:i,duplicateDomain:a,isCategorical:d,niceTicks:l,range:o,realScaleType:r,scale:n}}}),JO=(e,t,r,n,a,i,o,l,c)=>{if(!(t==null||n==null)){var d=er(e,c),{type:u,ticks:m,tickCount:h}=t,v=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,p=u==="category"&&n.bandwidth?n.bandwidth()/v:0;p=c==="angleAxis"&&i!=null&&i.length>=2?rt(i[0]-i[1])*2*p:p;var b=m||a;return b?b.map((y,g)=>{var j=o?o.indexOf(y):y,x=n.map(j);return me(x)?{index:g,coordinate:x+p,value:y,offset:p}:null}).filter(ut):d&&l?l.map((y,g)=>{var j=n.map(y);return me(j)?{coordinate:j+p,value:y,index:g,offset:p}:null}).filter(ut):n.ticks?n.ticks(h).map((y,g)=>{var j=n.map(y);return me(j)?{coordinate:j+p,value:y,index:g,offset:p}:null}).filter(ut):n.domain().map((y,g)=>{var j=n.map(y);return me(j)?{coordinate:j+p,value:o?o[y]:y,index:g,offset:p}:null}).filter(ut)}},Rg=_([xe,bn,gr,hs,fu,ma,pu,hu,Ae],JO),QO=(e,t,r,n,a,i,o)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var l=er(e,o),{tickCount:c}=t,d=0;return d=o==="angleAxis"&&n?.length>=2?rt(n[0]-n[1])*2*d:d,l&&i?i.map((u,m)=>{var h=r.map(u);return me(h)?{coordinate:h+d,value:u,index:m,offset:d}:null}).filter(ut):r.ticks?r.ticks(c).map((u,m)=>{var h=r.map(u);return me(h)?{coordinate:h+d,value:u,index:m,offset:d}:null}).filter(ut):r.domain().map((u,m)=>{var h=r.map(u);return me(h)?{coordinate:h+d,value:a?a[u]:u,index:m,offset:d}:null}).filter(ut)}},Lg=_([xe,bn,hs,ma,pu,hu,Ae],QO),$g=_(Te,hs,(e,t)=>{if(!(e==null||t==null))return yi(yi({},e),{},{scale:t})}),eE=_([Te,gr,uu,_g],Zc),tE=_([eE],Yc);_((e,t,r)=>Jc(e,r),tE,(e,t)=>{if(!(e==null||t==null))return yi(yi({},e),{},{scale:t})});var rE=_([xe,Ji,Qi],(e,t,r)=>{switch(e){case"horizontal":return t.some(n=>n.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(n=>n.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),nE=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]};_([nE],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,a=e[0];for(var i of e){var o=Math.abs(i.coordinate-t);o<n&&(n=o,a=i)}return(r=a)===null||r===void 0?void 0:r.value}});var Fg=e=>e.options.defaultTooltipEventType,Bg=e=>e.options.validateTooltipEventTypes;function zg(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function va(e,t){var r=Fg(e),n=Bg(e);return zg(t,r,n)}function aE(e){return Z(t=>va(t,e))}var Kg=(e,t)=>{var r,n=Number(t);if(!(Zt(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0},iE=e=>e.tooltip.settings,ur={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},sE={itemInteraction:{click:ur,hover:ur},axisInteraction:{click:ur,hover:ur},keyboardInteraction:ur,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},Vg=at({name:"tooltip",initialState:sE,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(t.payload)},prepare:je()},replaceTooltipEntrySettings:{reducer(e,t){var{prev:r,next:n}=t.payload,a=Ct(e).tooltipItemPayloads.indexOf(r);a>-1&&(e.tooltipItemPayloads[a]=n)},prepare:je()},removeTooltipEntrySettings:{reducer(e,t){var r=Ct(e).tooltipItemPayloads.indexOf(t.payload);r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:je()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),{addTooltipEntrySettings:oE,replaceTooltipEntrySettings:lE,removeTooltipEntrySettings:cE,setTooltipSettingsState:uE,setActiveMouseOverItemIndex:Ug,mouseLeaveItem:dE,mouseLeaveChart:qg,setActiveClickItemIndex:fE,setMouseOverAxisIndex:Wg,setMouseClickAxisIndex:mE,setSyncInteraction:Rn,setKeyboardInteraction:bi}=Vg.actions,vE=Vg.reducer;function Lm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Aa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Lm(Object(r),!0).forEach(function(n){hE(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Lm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function hE(e,t,r){return(t=pE(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function pE(e){var t=yE(e,"string");return typeof t=="symbol"?t:t+""}function yE(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function gE(e,t,r){return t==="axis"?r==="click"?e.axisInteraction.click:e.axisInteraction.hover:r==="click"?e.itemInteraction.click:e.itemInteraction.hover}function bE(e){return e.index!=null}var Hg=(e,t,r,n)=>{if(t==null)return ur;var a=gE(e,t,r);if(a==null)return ur;if(a.active)return a;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var i=e.settings.active===!0;if(bE(a)){if(i)return Aa(Aa({},a),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return Aa(Aa({},ur),{},{coordinate:a.coordinate})};function xE(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}function jE(e,t){var r=xE(e),n=t[0],a=t[1];if(r===void 0)return!1;var i=Math.min(n,a),o=Math.max(n,a);return r>=i&&r<=o}function wE(e,t,r){if(r==null||t==null)return!0;var n=ge(e,t);return n==null||!Ft(r)?!0:jE(n,r)}var Fn=(e,t,r,n)=>{var a=e?.index;if(a==null)return null;var i=Number(a);if(!me(i))return a;var o=0,l=1/0;t.length>0&&(l=t.length-1);var c=Math.max(o,Math.min(i,l)),d=t[c];return d==null||wE(d,r,n)?String(c):null},Gg=(e,t,r,n,a,i,o)=>{if(i!=null){var l=o[0],c=l?.getPosition(i);if(c!=null)return c;var d=a?.[Number(i)];if(d)switch(r){case"horizontal":return{x:d.coordinate,y:(n.top+t)/2};default:return{x:(n.left+e)/2,y:d.coordinate}}}},Xg=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var a;if(r==="hover"?a=e.itemInteraction.hover.graphicalItemId:a=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&a==null)return e.tooltipItemPayloads;if(a==null&&(n!=null||e.keyboardInteraction.active)){var i=e.tooltipItemPayloads[0];return i!=null?[i]:[]}return e.tooltipItemPayloads.filter(o=>{var l;return((l=o.settings)===null||l===void 0?void 0:l.graphicalItemId)===a})},Yg=e=>e.options.tooltipPayloadSearcher,wn=e=>e.tooltip;function $m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Fm(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$m(Object(r),!0).forEach(function(n){CE(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$m(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function CE(e,t,r){return(t=kE(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function kE(e){var t=SE(e,"string");return typeof t=="symbol"?t:t+""}function SE(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function NE(e){if(typeof e=="string"||typeof e=="number")return e}function PE(e){if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e}function AE(e){if(typeof e=="string"||typeof e=="number")return e;if(typeof e=="function")return t=>e(t)}function Bm(e){if(typeof e=="string")return e}function OE(e){if(!(e==null||typeof e!="object")){var t="name"in e?NE(e.name):void 0,r="unit"in e?PE(e.unit):void 0,n="dataKey"in e?AE(e.dataKey):void 0,a="payload"in e?e.payload:void 0,i="color"in e?Bm(e.color):void 0,o="fill"in e?Bm(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:a,color:i,fill:o}}}function EE(e,t){return e??t}var Zg=(e,t,r,n,a,i,o)=>{if(!(t==null||i==null)){var{chartData:l,computedData:c,dataStartIndex:d,dataEndIndex:u}=r,m=[];return e.reduce((h,v)=>{var p,{dataDefinedOnItem:b,settings:y}=v,g=EE(b,l),j=Array.isArray(g)?cy(g,d,u):g,x=(p=y?.dataKey)!==null&&p!==void 0?p:n,C=y?.nameKey,w;if(n&&Array.isArray(j)&&!Array.isArray(j[0])&&o==="axis"?w=hp(j,n,a):w=i(j,t,c,C),Array.isArray(w))w.forEach(A=>{var S,N,E=OE(A),T=E?.name,O=E?.dataKey,I=E?.payload,z=Fm(Fm({},y),{},{name:T,unit:E?.unit,color:(S=E?.color)!==null&&S!==void 0?S:y?.color,fill:(N=E?.fill)!==null&&N!==void 0?N:y?.fill});h.push(jf({tooltipEntrySettings:z,dataKey:O,payload:I,value:ge(I,O),name:T==null?void 0:String(T)}))});else{var P;h.push(jf({tooltipEntrySettings:y,dataKey:x,payload:w,value:ge(w,x),name:(P=ge(w,C))!==null&&P!==void 0?P:y?.name}))}return h},m)}},yu=_([Ve,vg,Vc],ug),_E=_([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),TE=_([We,gn],Qc),zr=_([_E,Ve,TE],eu,{memoizeOptions:{resultEqualityCheck:ms}}),ME=_([zr],e=>e.filter(Xc)),Jg=_([zr],tu,{memoizeOptions:{resultEqualityCheck:ms}}),IE=_([zr],e=>e.some(t=>!t.data)),$r=_([Jg,Ut],ru),DE=_([ME,Ut,Ve],og),gu=_([$r,Ve,zr,Ut,IE,Jg],xg),Qg=_([Ve],au),RE=_([Ve],e=>e.allowDataOverflow),eb=_([Qg,RE],Ky),LE=_([zr],e=>e.filter(Xc)),$E=_([DE,LE,ua,Qy],wg),FE=_([$E,Ut,We,eb],Cg),BE=_([zr],yg),zE=_([$r,Ve,BE,vs,We,DA],ou,{memoizeOptions:{resultEqualityCheck:fs}}),KE=_([kg,We,gn],jn),VE=_([KE,We],Pg),UE=_([Sg,We,gn],jn),qE=_([UE,We],Ag),WE=_([Ng,We,gn],jn),HE=_([WE,We],Og),GE=_([VE,HE,qE],gi),XE=_([Ve,Qg,eb,FE,zE,GE,xe,We],lu),dn=_([Ve,xe,$r,gu,ua,We,XE],cu),YE=_([dn,Ve,yu],du),ZE=_([Ve,dn,YE,We],mu),tb=e=>{var t=We(e),r=gn(e),n=!1;return ma(e,t,r,n)},rb=_([Ve,tb],cs),JE=_([Ve,yu,ZE,rb],Zc),nb=_([JE],Yc),QE=_([xe,gu,Ve,We],Dg),e1=_([xe,gu,Ve,We],Tg),t1=(e,t,r,n,a,i,o,l)=>{if(t){var{type:c}=t,d=er(e,l);if(n){var u=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,m=c==="category"&&n.bandwidth?n.bandwidth()/u:0;return m=l==="angleAxis"&&a!=null&&a?.length>=2?rt(a[0]-a[1])*2*m:m,d&&o?o.map((h,v)=>{var p=n.map(h);return me(p)?{coordinate:p+m,value:h,index:v,offset:m}:null}).filter(ut):n.domain().map((h,v)=>{var p=n.map(h);return me(p)?{coordinate:p+m,value:i?i[h]:h,index:v,offset:m}:null}).filter(ut)}}},ir=_([xe,Ve,yu,nb,tb,QE,e1,We],t1),bu=_([Fg,Bg,iE],(e,t,r)=>zg(r.shared,e,t)),ab=e=>e.tooltip.settings.trigger,xu=e=>e.tooltip.settings.defaultIndex,ha=_([wn,bu,ab,xu],Hg),fn=_([ha,$r,un,dn],Fn),ib=_([ir,fn],Kg),sb=_([ha],e=>{if(e)return e.dataKey}),ob=_([ha],e=>{if(e)return e.graphicalItemId}),lb=_([wn,bu,ab,xu],Xg),r1=_([tr,rr,xe,qe,ir,xu,lb],Gg),n1=_([ha,r1],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),a1=_([ha],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),i1=_([lb,fn,Ut,un,ib,Yg,bu],Zg),s1=_([i1],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function zm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Km(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?zm(Object(r),!0).forEach(function(n){o1(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):zm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function o1(e,t,r){return(t=l1(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l1(e){var t=c1(e,"string");return typeof t=="symbol"?t:t+""}function c1(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var u1=()=>Z(Ve),d1=()=>{var e=u1(),t=Z(ir),r=Z(nb);return si(!e||!r?void 0:Km(Km({},e),{},{scale:r}),t)};function Vm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function qr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Vm(Object(r),!0).forEach(function(n){f1(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Vm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function f1(e,t,r){return(t=m1(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function m1(e){var t=v1(e,"string");return typeof t=="symbol"?t:t+""}function v1(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var h1=(e,t,r,n)=>{var a=t.find(i=>i&&i.index===r);if(a){if(e==="horizontal")return{x:a.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:a.coordinate}}return{x:0,y:0}},p1=(e,t,r,n)=>{var a=t.find(d=>d&&d.index===r);if(a){if(e==="centric"){var i=a.coordinate,{radius:o}=n;return qr(qr(qr({},n),Ie(n.cx,n.cy,o,i)),{},{angle:i,radius:o})}var l=a.coordinate,{angle:c}=n;return qr(qr(qr({},n),Ie(n.cx,n.cy,l,c)),{},{angle:c,radius:l})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function y1(e,t){var{relativeX:r,relativeY:n}=e;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}var cb=(e,t,r,n,a)=>{var i,o=(i=t?.length)!==null&&i!==void 0?i:0;if(o<=1||e==null)return 0;if(n==="angleAxis"&&a!=null&&Math.abs(Math.abs(a[1]-a[0])-360)<=1e-6)for(var l=0;l<o;l++){var c,d,u,m,h,v=l>0?(c=r[l-1])===null||c===void 0?void 0:c.coordinate:(d=r[o-1])===null||d===void 0?void 0:d.coordinate,p=(u=r[l])===null||u===void 0?void 0:u.coordinate,b=l>=o-1?(m=r[0])===null||m===void 0?void 0:m.coordinate:(h=r[l+1])===null||h===void 0?void 0:h.coordinate,y=void 0;if(!(v==null||p==null||b==null))if(rt(p-v)!==rt(b-p)){var g=[];if(rt(b-p)===rt(a[1]-a[0])){y=b;var j=p+a[1]-a[0];g[0]=Math.min(j,(j+v)/2),g[1]=Math.max(j,(j+v)/2)}else{y=v;var x=b+a[1]-a[0];g[0]=Math.min(p,(x+p)/2),g[1]=Math.max(p,(x+p)/2)}var C=[Math.min(p,(y+p)/2),Math.max(p,(y+p)/2)];if(e>C[0]&&e<=C[1]||e>=g[0]&&e<=g[1]){var w;return(w=r[l])===null||w===void 0?void 0:w.index}}else{var P=Math.min(v,b),A=Math.max(v,b);if(e>(P+p)/2&&e<=(A+p)/2){var S;return(S=r[l])===null||S===void 0?void 0:S.index}}}else if(t)for(var N=0;N<o;N++){var E=t[N];if(E!=null){var T=t[N+1],O=t[N-1];if(N===0&&T!=null&&e<=(E.coordinate+T.coordinate)/2||N===o-1&&O!=null&&e>(E.coordinate+O.coordinate)/2||N>0&&N<o-1&&O!=null&&T!=null&&e>(E.coordinate+O.coordinate)/2&&e<=(E.coordinate+T.coordinate)/2)return E.index}}return-1},g1=()=>Z(Vc),ju=(e,t)=>t,ub=(e,t,r)=>r,wu=(e,t,r,n)=>n,b1=_(ir,e=>zi(e,t=>t.coordinate)),Cu=_([wn,ju,ub,wu],Hg),ku=_([Cu,$r,un,dn],Fn),x1=(e,t,r)=>{if(t!=null){var n=wn(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},db=_([wn,ju,ub,wu],Xg),xi=_([tr,rr,xe,qe,ir,wu,db],Gg),j1=_([Cu,xi],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),fb=_([ir,ku],Kg),w1=_([db,ku,Ut,un,fb,Yg,ju],Zg),C1=_([Cu,ku],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),k1=(e,t,r,n,a,i,o)=>{if(!(!e||!r||!n||!a)&&y1(e,o)){var l=YS(e,t),c=cb(l,i,a,r,n),d=h1(t,a,c,e);return{activeIndex:String(c),activeCoordinate:d}}},S1=(e,t,r,n,a,i,o)=>{if(!(!e||!n||!a||!i||!r)){var l=CA(e,r);if(l){var c=ZS(l,t),d=cb(c,o,i,n,a),u=p1(t,i,d,l);return{activeIndex:String(d),activeCoordinate:u}}}},N1=(e,t,r,n,a,i,o,l)=>{if(!(!e||!t||!n||!a||!i))return t==="horizontal"||t==="vertical"?k1(e,t,n,a,i,o,l):S1(e,t,r,n,a,i,o)},P1=_(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),A1=_(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(Ze)),r=Array.from(new Set(t));return r.sort((n,a)=>n-a)},{memoizeOptions:{resultEqualityCheck:GA}});function Um(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function qm(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Um(Object(r),!0).forEach(function(n){O1(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Um(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function O1(e,t,r){return(t=E1(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function E1(e){var t=_1(e,"string");return typeof t=="symbol"?t:t+""}function _1(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var T1={},M1={zIndexMap:Object.values(Ze).reduce((e,t)=>qm(qm({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),T1)},I1=new Set(Object.values(Ze));function D1(e){return I1.has(e)}var mb=at({name:"zIndex",initialState:M1,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var{zIndex:r}=t.payload;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:je()},unregisterZIndexPortal:{reducer:(e,t)=>{var{zIndex:r}=t.payload;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!D1(r)&&delete e.zIndexMap[r])},prepare:je()},registerZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:r,element:n,isPanorama:a}=t.payload;e.zIndexMap[r]?a?e.zIndexMap[r].panoramaElement=n:e.zIndexMap[r].element=n:e.zIndexMap[r]={consumers:0,element:a?void 0:n,panoramaElement:a?n:void 0}},prepare:je()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:r}=t.payload;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:je()}}}),{registerZIndexPortal:R1,unregisterZIndexPortal:Do,registerZIndexPortalElement:L1,unregisterZIndexPortalElement:$1}=mb.actions,F1=mb.reducer;function Tt(e){var{zIndex:t,children:r}=e,n=mN(),a=n&&t!==void 0&&t!==0,i=dt(),o=f.useRef(void 0),l=f.useRef(new Set),c=pe(),d=Z(m=>P1(m,t,i));if(f.useLayoutEffect(()=>{if(!a){var m=l.current;m.forEach(v=>{c(Do({zIndex:v}))}),m.clear(),o.current=void 0;return}if(l.current.has(t)||(c(R1({zIndex:t})),l.current.add(t)),d){o.current=d;var h=l.current;h.forEach(v=>{v!==t&&(c(Do({zIndex:v})),h.delete(v))})}},[c,t,a,d]),f.useLayoutEffect(()=>{var m=l.current;return()=>{m.forEach(h=>{c(Do({zIndex:h}))}),m.clear()}},[c]),!a)return r;var u=d??o.current;return u?Zl.createPortal(r,u):null}function Rl(){return Rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Rl.apply(null,arguments)}function Wm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Oa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Wm(Object(r),!0).forEach(function(n){B1(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Wm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function B1(e,t,r){return(t=z1(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function z1(e){var t=K1(e,"string");return typeof t=="symbol"?t:t+""}function K1(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function V1(e){var{cursor:t,cursorComp:r,cursorProps:n}=e;return f.isValidElement(t)?f.cloneElement(t,n):f.createElement(r,n)}function U1(e){var t,{coordinate:r,payload:n,index:a,offset:i,tooltipAxisBandSize:o,layout:l,cursor:c,tooltipEventType:d,chartName:u}=e,m=r,h=n,v=a;if(!c||!m||u!=="ScatterChart"&&d!=="axis")return null;var p,b,y;if(u==="ScatterChart")p=m,b=$P,y=Ze.cursorLine;else if(u==="BarChart")p=FP(l,m,i,o),b=Ry,y=Ze.cursorRectangle;else if(l==="radial"&&yp(m)){var{cx:g,cy:j,radius:x,startAngle:C,endAngle:w}=$y(m);p={cx:g,cy:j,startAngle:C,endAngle:w,innerRadius:x,outerRadius:x},b=By,y=Ze.cursorLine}else p={points:PA(l,m,i)},b=Fc,y=Ze.cursorLine;var P=typeof c=="object"&&"className"in c?c.className:void 0,A=Oa(Oa(Oa(Oa({stroke:"#ccc",pointerEvents:"none"},i),p),an(c)),{},{payload:h,payloadIndex:v,className:ve("recharts-tooltip-cursor",P)});return f.createElement(Tt,{zIndex:(t=e.zIndex)!==null&&t!==void 0?t:y},f.createElement(V1,{cursor:c,cursorComp:b,cursorProps:A}))}function q1(e){var t=d1(),r=yy(),n=hn(),a=g1();return t==null||r==null||n==null||a==null?null:f.createElement(U1,Rl({},e,{offset:r,layout:n,tooltipAxisBandSize:t,chartName:a}))}var vb=f.createContext(null),W1=()=>f.useContext(vb),Ro={exports:{}},Hm;function H1(){return Hm||(Hm=1,(function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(r=!1));function a(c,d,u){this.fn=c,this.context=d,this.once=u||!1}function i(c,d,u,m,h){if(typeof u!="function")throw new TypeError("The listener must be a function");var v=new a(u,m||c,h),p=r?r+d:d;return c._events[p]?c._events[p].fn?c._events[p]=[c._events[p],v]:c._events[p].push(v):(c._events[p]=v,c._eventsCount++),c}function o(c,d){--c._eventsCount===0?c._events=new n:delete c._events[d]}function l(){this._events=new n,this._eventsCount=0}l.prototype.eventNames=function(){var d=[],u,m;if(this._eventsCount===0)return d;for(m in u=this._events)t.call(u,m)&&d.push(r?m.slice(1):m);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(u)):d},l.prototype.listeners=function(d){var u=r?r+d:d,m=this._events[u];if(!m)return[];if(m.fn)return[m.fn];for(var h=0,v=m.length,p=new Array(v);h<v;h++)p[h]=m[h].fn;return p},l.prototype.listenerCount=function(d){var u=r?r+d:d,m=this._events[u];return m?m.fn?1:m.length:0},l.prototype.emit=function(d,u,m,h,v,p){var b=r?r+d:d;if(!this._events[b])return!1;var y=this._events[b],g=arguments.length,j,x;if(y.fn){switch(y.once&&this.removeListener(d,y.fn,void 0,!0),g){case 1:return y.fn.call(y.context),!0;case 2:return y.fn.call(y.context,u),!0;case 3:return y.fn.call(y.context,u,m),!0;case 4:return y.fn.call(y.context,u,m,h),!0;case 5:return y.fn.call(y.context,u,m,h,v),!0;case 6:return y.fn.call(y.context,u,m,h,v,p),!0}for(x=1,j=new Array(g-1);x<g;x++)j[x-1]=arguments[x];y.fn.apply(y.context,j)}else{var C=y.length,w;for(x=0;x<C;x++)switch(y[x].once&&this.removeListener(d,y[x].fn,void 0,!0),g){case 1:y[x].fn.call(y[x].context);break;case 2:y[x].fn.call(y[x].context,u);break;case 3:y[x].fn.call(y[x].context,u,m);break;case 4:y[x].fn.call(y[x].context,u,m,h);break;default:if(!j)for(w=1,j=new Array(g-1);w<g;w++)j[w-1]=arguments[w];y[x].fn.apply(y[x].context,j)}}return!0},l.prototype.on=function(d,u,m){return i(this,d,u,m,!1)},l.prototype.once=function(d,u,m){return i(this,d,u,m,!0)},l.prototype.removeListener=function(d,u,m,h){var v=r?r+d:d;if(!this._events[v])return this;if(!u)return o(this,v),this;var p=this._events[v];if(p.fn)p.fn===u&&(!h||p.once)&&(!m||p.context===m)&&o(this,v);else{for(var b=0,y=[],g=p.length;b<g;b++)(p[b].fn!==u||h&&!p[b].once||m&&p[b].context!==m)&&y.push(p[b]);y.length?this._events[v]=y.length===1?y[0]:y:o(this,v)}return this},l.prototype.removeAllListeners=function(d){var u;return d?(u=r?r+d:d,this._events[u]&&o(this,u)):(this._events=new n,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=r,l.EventEmitter=l,e.exports=l})(Ro)),Ro.exports}var G1=H1();const X1=mn(G1);var Zn=new X1,Ll="recharts.syncEvent.tooltip",Gm="recharts.syncEvent.brush",hb=(e,t)=>{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!Zt(r))return e[r]}},Y1={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},pb=at({name:"options",initialState:Y1,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),Z1=pb.reducer,{createEventEmitter:J1}=pb.actions;function Q1(e){return e.tooltip.syncInteraction}var e_={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},yb=at({name:"chartData",initialState:e_,reducers:{setChartData(e,t){if(e.chartData=t.payload,t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var{startIndex:r,endIndex:n}=t.payload;r!=null&&(e.dataStartIndex=r),n!=null&&(e.dataEndIndex=n)}}}),{setChartData:Xm,setDataStartEndIndexes:t_,setComputedData:yB}=yb.actions,r_=yb.reducer,n_=["x","y"];function Ym(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Wr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ym(Object(r),!0).forEach(function(n){a_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ym(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function a_(e,t,r){return(t=i_(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i_(e){var t=s_(e,"string");return typeof t=="symbol"?t:t+""}function s_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function o_(e,t){if(e==null)return{};var r,n,a=l_(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function l_(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function c_(){var e=Z(Uc),t=Z(qc),r=pe(),n=Z(eg),a=Z(ir),i=hn(),o=rs(),l=Z(c=>c.rootProps.className);f.useEffect(()=>{if(e==null)return ta;var c=(d,u,m)=>{if(t!==m&&e===d){if(u.payload.active===!1){r(Rn({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var h;if(o&&u!==null&&u!==void 0&&(h=u.payload)!==null&&h!==void 0&&h.coordinate&&u.payload.sourceViewBox){var v=u.payload.coordinate,{x:p,y:b}=v,y=o_(v,n_),{x:g,y:j,width:x,height:C}=u.payload.sourceViewBox,w=Wr(Wr({},y),{},{x:o.x+(x?(p-g)/x:0)*o.width,y:o.y+(C?(b-j)/C:0)*o.height});r(Wr(Wr({},u),{},{payload:Wr(Wr({},u.payload),{},{coordinate:w})}))}else r(u);return}if(a!=null){var P;if(typeof n=="function"){var A={activeTooltipIndex:u.payload.index==null?void 0:Number(u.payload.index),isTooltipActive:u.payload.active,activeIndex:u.payload.index==null?void 0:Number(u.payload.index),activeLabel:u.payload.label,activeDataKey:u.payload.dataKey,activeCoordinate:u.payload.coordinate},S=n(a,A);P=a[S]}else n==="value"&&(P=a.find(V=>String(V.value)===u.payload.label));var{coordinate:N}=u.payload;if(N==null||o==null){r(Rn({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(P==null){r(Rn({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:u.payload.sourceViewBox,graphicalItemId:void 0}));return}var{x:E,y:T}=N,O=Math.min(E,o.x+o.width),I=Math.min(T,o.y+o.height),z={x:i==="horizontal"?P.coordinate:O,y:i==="horizontal"?I:P.coordinate},D=Rn({active:u.payload.active,coordinate:z,dataKey:u.payload.dataKey,index:String(P.index),label:u.payload.label,sourceViewBox:u.payload.sourceViewBox,graphicalItemId:u.payload.graphicalItemId});r(D)}}};return Zn.on(Ll,c),()=>{Zn.off(Ll,c)}},[l,r,t,e,n,a,i,o])}function u_(){var e=Z(Uc),t=Z(qc),r=pe();f.useEffect(()=>{if(e==null)return ta;var n=(a,i,o)=>{t!==o&&e===a&&r(t_(i))};return Zn.on(Gm,n),()=>{Zn.off(Gm,n)}},[r,t,e])}function d_(){var e=pe();f.useEffect(()=>{e(J1())},[e]),c_(),u_()}function f_(e,t,r,n,a,i){var o=Z(p=>x1(p,e,t)),l=Z(ob),c=Z(qc),d=Z(Uc),u=Z(eg),m=Z(Q1),h=m?.sourceViewBox!=null,v=rs();f.useEffect(()=>{if(!h&&d!=null&&c!=null){var p=Rn({active:i,coordinate:r,dataKey:o,index:a,label:typeof n=="number"?String(n):n,sourceViewBox:v,graphicalItemId:l});Zn.emit(Ll,d,p,c)}},[h,r,o,l,a,n,c,d,u,i,v])}function Zm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Jm(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Zm(Object(r),!0).forEach(function(n){m_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Zm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function m_(e,t,r){return(t=v_(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function v_(e){var t=h_(e,"string");return typeof t=="symbol"?t:t+""}function h_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function p_(e){return e.dataKey}function y_(e,t){return f.isValidElement(e)?f.cloneElement(e,t):typeof e=="function"?f.createElement(e,t):f.createElement(mP,t)}var Qm=[],g_={allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",axisId:0,contentStyle:{},cursor:!0,filterNull:!0,includeHidden:!1,isAnimationActive:"auto",itemSorter:"name",itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,wrapperStyle:{}};function gb(e){var t,r,n=Ke(e,g_),{active:a,allowEscapeViewBox:i,animationDuration:o,animationEasing:l,content:c,filterNull:d,isAnimationActive:u,offset:m,payloadUniqBy:h,position:v,reverseDirection:p,useTranslate3d:b,wrapperStyle:y,cursor:g,shared:j,trigger:x,defaultIndex:C,portal:w,axisId:P}=n,A=pe(),S=typeof C=="number"?String(C):C;f.useEffect(()=>{A(uE({shared:j,trigger:x,axisId:P,active:a,defaultIndex:S}))},[A,j,x,P,a,S]);var N=rs(),E=_y(),T=aE(j),{activeIndex:O,isActive:I}=(t=Z(oe=>C1(oe,T,x,S)))!==null&&t!==void 0?t:{},z=Z(oe=>w1(oe,T,x,S)),D=Z(oe=>fb(oe,T,x,S)),V=Z(oe=>j1(oe,T,x,S)),B=z,W=W1(),K=(r=a??I)!==null&&r!==void 0?r:!1,[te,G]=Mp([B,K]),M=T==="axis"?D:void 0;f_(T,x,V,M,O,K);var q=w??W;if(q==null||N==null||T==null)return null;var H=B??Qm;K||(H=Qm),d&&H.length&&(H=Ap(H.filter(oe=>oe.value!=null&&(oe.hide!==!0||n.includeHidden)),h,p_));var re=H.length>0,ae=Jm(Jm({},n),{},{payload:H,label:M,active:K,activeIndex:O,coordinate:V,accessibilityLayer:E}),ye=f.createElement(kP,{allowEscapeViewBox:i,animationDuration:o,animationEasing:l,isAnimationActive:u,active:K,coordinate:V,hasPayload:re,offset:m,position:v,reverseDirection:p,useTranslate3d:b,viewBox:N,wrapperStyle:y,lastBoundingBox:te,innerRef:G,hasPortalFromProps:!!w},y_(c,ae));return f.createElement(f.Fragment,null,Zl.createPortal(ye,q),K&&f.createElement(q1,{cursor:g,tooltipEventType:T,coordinate:V,payload:H,index:O}))}var gs=e=>null;gs.displayName="Cell";function b_(e,t,r){return(t=x_(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function x_(e){var t=j_(e,"string");return typeof t=="symbol"?t:t+""}function j_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}class w_{constructor(t){b_(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}}function ev(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function C_(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ev(Object(r),!0).forEach(function(n){k_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ev(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function k_(e,t,r){return(t=S_(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function S_(e){var t=N_(e,"string");return typeof t=="symbol"?t:t+""}function N_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var P_={cacheSize:2e3,enableCache:!0},bb=C_({},P_),tv=new w_(bb.cacheSize),A_={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},rv="recharts_measurement_span";function O_(e,t){var r=t.fontSize||"",n=t.fontFamily||"",a=t.fontWeight||"",i=t.fontStyle||"",o=t.letterSpacing||"",l=t.textTransform||"";return"".concat(e,"|").concat(r,"|").concat(n,"|").concat(a,"|").concat(i,"|").concat(o,"|").concat(l)}var nv=(e,t)=>{try{var r=document.getElementById(rv);r||(r=document.createElement("span"),r.setAttribute("id",rv),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,A_,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},Bn=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||la.isSsr)return{width:0,height:0};if(!bb.enableCache)return nv(t,r);var n=O_(t,r),a=tv.get(n);if(a)return a;var i=nv(t,r);return tv.set(n,i),i},xb;function E_(e,t,r){return(t=__(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function __(e){var t=T_(e,"string");return typeof t=="symbol"?t:t+""}function T_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var av=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,iv=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,M_=/^(px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q)$/,I_=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,D_={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},R_=["cm","mm","pt","pc","in","Q","px"];function L_(e){return R_.includes(e)}var Qr="NaN";function $_(e,t){return e*D_[t]}class Ye{static parse(t){var r,[,n,a]=(r=I_.exec(t))!==null&&r!==void 0?r:[];return n==null?Ye.NaN:new Ye(parseFloat(n),a??"")}constructor(t,r){this.num=t,this.unit=r,this.num=t,this.unit=r,Zt(t)&&(this.unit=""),r!==""&&!M_.test(r)&&(this.num=NaN,this.unit=""),L_(r)&&(this.num=$_(t,r),this.unit="px")}add(t){return this.unit!==t.unit?new Ye(NaN,""):new Ye(this.num+t.num,this.unit)}subtract(t){return this.unit!==t.unit?new Ye(NaN,""):new Ye(this.num-t.num,this.unit)}multiply(t){return this.unit!==""&&t.unit!==""&&this.unit!==t.unit?new Ye(NaN,""):new Ye(this.num*t.num,this.unit||t.unit)}divide(t){return this.unit!==""&&t.unit!==""&&this.unit!==t.unit?new Ye(NaN,""):new Ye(this.num/t.num,this.unit||t.unit)}toString(){return"".concat(this.num).concat(this.unit)}isNaN(){return Zt(this.num)}}xb=Ye;E_(Ye,"NaN",new xb(NaN,""));function jb(e){if(e==null||e.includes(Qr))return Qr;for(var t=e;t.includes("*")||t.includes("/");){var r,[,n,a,i]=(r=av.exec(t))!==null&&r!==void 0?r:[],o=Ye.parse(n??""),l=Ye.parse(i??""),c=a==="*"?o.multiply(l):o.divide(l);if(c.isNaN())return Qr;t=t.replace(av,c.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var d,[,u,m,h]=(d=iv.exec(t))!==null&&d!==void 0?d:[],v=Ye.parse(u??""),p=Ye.parse(h??""),b=m==="+"?v.add(p):v.subtract(p);if(b.isNaN())return Qr;t=t.replace(iv,b.toString())}return t}var sv=/\(([^()]*)\)/;function F_(e){for(var t=e,r;(r=sv.exec(t))!=null;){var[,n]=r;t=t.replace(sv,jb(n))}return t}function B_(e){var t=e.replace(/\s+/g,"");return t=F_(t),t=jb(t),t}function z_(e){try{return B_(e)}catch{return Qr}}function Lo(e){var t=z_(e.slice(5,-1));return t===Qr?"":t}var K_=["x","y","lineHeight","capHeight","fill","scaleToFit","textAnchor","verticalAnchor"],V_=["dx","dy","angle","className","breakAll"];function $l(){return $l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},$l.apply(null,arguments)}function ov(e,t){if(e==null)return{};var r,n,a=U_(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function U_(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var wb=/[ \f\n\r\t\v\u2028\u2029]+/,Cb=e=>{var{children:t,breakAll:r,style:n}=e;try{var a=[];ze(t)||(r?a=t.toString().split(""):a=t.toString().split(wb));var i=a.map(l=>({word:l,width:Bn(l,n).width})),o=r?0:Bn(" ",n).width;return{wordsWithComputedWidth:i,spaceWidth:o}}catch{return null}};function kb(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function q_(e){return ze(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var Sb=(e,t,r,n)=>e.reduce((a,i)=>{var{word:o,width:l}=i,c=a[a.length-1];if(c&&l!=null&&(t==null||n||c.width+l+r<Number(t)))c.words.push(o),c.width+=l+r;else{var d={words:[o],width:l};a.push(d)}return a},[]),Nb=e=>e.reduce((t,r)=>t.width>r.width?t:r),W_="…",lv=(e,t,r,n,a,i,o,l)=>{var c=e.slice(0,t),d=Cb({breakAll:r,style:n,children:c+W_});if(!d)return[!1,[]];var u=Sb(d.wordsWithComputedWidth,i,o,l),m=u.length>a||Nb(u).width>Number(i);return[m,u]},H_=(e,t,r,n,a)=>{var{maxLines:i,children:o,style:l,breakAll:c}=e,d=ee(i),u=String(o),m=Sb(t,n,r,a);if(!d||a)return m;var h=m.length>i||Nb(m).width>Number(n);if(!h)return m;for(var v=0,p=u.length-1,b=0,y;v<=p&&b<=u.length-1;){var g=Math.floor((v+p)/2),j=g-1,[x,C]=lv(u,j,c,l,i,n,r,a),[w]=lv(u,g,c,l,i,n,r,a);if(!x&&!w&&(v=g+1),x&&w&&(p=g-1),!x&&w){y=C;break}b++}return y||m},cv=e=>{var t=ze(e)?[]:e.toString().split(wb);return[{words:t,width:void 0}]},G_=e=>{var{width:t,scaleToFit:r,children:n,style:a,breakAll:i,maxLines:o}=e;if((t||r)&&!la.isSsr){var l,c,d=Cb({breakAll:i,children:n,style:a});if(d){var{wordsWithComputedWidth:u,spaceWidth:m}=d;l=u,c=m}else return cv(n);return H_({breakAll:i,children:n,maxLines:o,style:a},l,c,t,!!r)}return cv(n)},Pb="#808080",X_={angle:0,breakAll:!1,capHeight:"0.71em",fill:Pb,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},bs=f.forwardRef((e,t)=>{var r=Ke(e,X_),{x:n,y:a,lineHeight:i,capHeight:o,fill:l,scaleToFit:c,textAnchor:d,verticalAnchor:u}=r,m=ov(r,K_),h=f.useMemo(()=>G_({breakAll:m.breakAll,children:m.children,maxLines:m.maxLines,scaleToFit:c,style:m.style,width:m.width}),[m.breakAll,m.children,m.maxLines,c,m.style,m.width]),{dx:v,dy:p,angle:b,className:y,breakAll:g}=m,j=ov(m,V_);if(!Bt(n)||!Bt(a)||h.length===0)return null;var x=Number(n)+(ee(v)?v:0),C=Number(a)+(ee(p)?p:0);if(!me(x)||!me(C))return null;var w;switch(u){case"start":w=Lo("calc(".concat(o,")"));break;case"middle":w=Lo("calc(".concat((h.length-1)/2," * -").concat(i," + (").concat(o," / 2))"));break;default:w=Lo("calc(".concat(h.length-1," * -").concat(i,")"));break}var P=[],A=h[0];if(c&&A!=null){var S=A.width,{width:N}=m;P.push("scale(".concat(ee(N)&&ee(S)?N/S:1,")"))}return b&&P.push("rotate(".concat(b,", ").concat(x,", ").concat(C,")")),P.length&&(j.transform=P.join(" ")),f.createElement("text",$l({},st(j),{ref:t,x,y:C,className:ve("recharts-text",y),textAnchor:d,fill:l.includes("url")?Pb:l}),h.map((E,T)=>{var O=E.words.join(g?"":" ");return f.createElement("tspan",{x,dy:T===0?w:i,key:"".concat(O,"-").concat(T)},O)}))});bs.displayName="Text";function uv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Rt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?uv(Object(r),!0).forEach(function(n){Y_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):uv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Y_(e,t,r){return(t=Z_(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Z_(e){var t=J_(e,"string");return typeof t=="symbol"?t:t+""}function J_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Q_=e=>{var{viewBox:t,position:r,offset:n=0,parentViewBox:a}=e,{x:i,y:o,height:l,upperWidth:c,lowerWidth:d}=Mc(t),u=i,m=i+(c-d)/2,h=(u+m)/2,v=(c+d)/2,p=u+c/2,b=l>=0?1:-1,y=b*n,g=b>0?"end":"start",j=b>0?"start":"end",x=c>=0?1:-1,C=x*n,w=x>0?"end":"start",P=x>0?"start":"end",A=a;if(r==="top"){var S={x:u+c/2,y:o-y,horizontalAnchor:"middle",verticalAnchor:g};return A&&(S.height=Math.max(o-A.y,0),S.width=c),S}if(r==="bottom"){var N={x:m+d/2,y:o+l+y,horizontalAnchor:"middle",verticalAnchor:j};return A&&(N.height=Math.max(A.y+A.height-(o+l),0),N.width=d),N}if(r==="left"){var E={x:h-C,y:o+l/2,horizontalAnchor:w,verticalAnchor:"middle"};return A&&(E.width=Math.max(E.x-A.x,0),E.height=l),E}if(r==="right"){var T={x:h+v+C,y:o+l/2,horizontalAnchor:P,verticalAnchor:"middle"};return A&&(T.width=Math.max(A.x+A.width-T.x,0),T.height=l),T}var O=A?{width:v,height:l}:{};return r==="insideLeft"?Rt({x:h+C,y:o+l/2,horizontalAnchor:P,verticalAnchor:"middle"},O):r==="insideRight"?Rt({x:h+v-C,y:o+l/2,horizontalAnchor:w,verticalAnchor:"middle"},O):r==="insideTop"?Rt({x:u+c/2,y:o+y,horizontalAnchor:"middle",verticalAnchor:j},O):r==="insideBottom"?Rt({x:m+d/2,y:o+l-y,horizontalAnchor:"middle",verticalAnchor:g},O):r==="insideTopLeft"?Rt({x:u+C,y:o+y,horizontalAnchor:P,verticalAnchor:j},O):r==="insideTopRight"?Rt({x:u+c-C,y:o+y,horizontalAnchor:w,verticalAnchor:j},O):r==="insideBottomLeft"?Rt({x:m+C,y:o+l-y,horizontalAnchor:P,verticalAnchor:g},O):r==="insideBottomRight"?Rt({x:m+d-C,y:o+l-y,horizontalAnchor:w,verticalAnchor:g},O):r&&typeof r=="object"&&(ee(r.x)||dl(r.x))&&(ee(r.y)||dl(r.y))?Rt({x:i+ht(r.x,v),y:o+ht(r.y,l),horizontalAnchor:"end",verticalAnchor:"end"},O):Rt({x:p,y:o+l/2,horizontalAnchor:"middle",verticalAnchor:"middle"},O)},eT=["labelRef"],tT=["content"];function dv(e,t){if(e==null)return{};var r,n,a=rT(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function rT(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function fv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ln(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?fv(Object(r),!0).forEach(function(n){nT(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):fv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function nT(e,t,r){return(t=aT(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function aT(e){var t=iT(e,"string");return typeof t=="symbol"?t:t+""}function iT(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Wt(){return Wt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Wt.apply(null,arguments)}var Ab=f.createContext(null),sT=e=>{var{x:t,y:r,upperWidth:n,lowerWidth:a,width:i,height:o,children:l}=e,c=f.useMemo(()=>({x:t,y:r,upperWidth:n,lowerWidth:a,width:i,height:o}),[t,r,n,a,i,o]);return f.createElement(Ab.Provider,{value:c},l)},Ob=()=>{var e=f.useContext(Ab),t=rs();return e||(t?Mc(t):void 0)},oT=f.createContext(null),lT=()=>{var e=f.useContext(oT),t=Z(ig);return e||t},cT=e=>{var{value:t,formatter:r}=e,n=ze(e.children)?t:e.children;return typeof r=="function"?r(n):n},Su=e=>e!=null&&typeof e=="function",uT=(e,t)=>{var r=rt(t-e),n=Math.min(Math.abs(t-e),360);return r*n},dT=(e,t,r,n,a)=>{var{offset:i,className:o}=e,{cx:l,cy:c,innerRadius:d,outerRadius:u,startAngle:m,endAngle:h,clockWise:v}=a,p=(d+u)/2,b=uT(m,h),y=b>=0?1:-1,g,j;switch(t){case"insideStart":g=m+y*i,j=v;break;case"insideEnd":g=h-y*i,j=!v;break;case"end":g=h+y*i,j=v;break;default:throw new Error("Unsupported position ".concat(t))}j=b<=0?j:!j;var x=Ie(l,c,p,g),C=Ie(l,c,p,g+(j?1:-1)*359),w="M".concat(x.x,",").concat(x.y,`
|
|
89
|
+
A`,",",",0,0,",",",",","Z"])),A.x,A.y,i,i,+(u<0),P.x,P.y,n,n,+(N>180),+(u>0),x.x,x.y,i,i,+(u<0),C.x,C.y)}else j+=_e(jm||(jm=Pr(["L",",","Z"])),t,r);return j},PA={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},zy=e=>{var t=Ke(e,PA),{cx:r,cy:n,innerRadius:a,outerRadius:i,cornerRadius:o,forceCornerRadius:l,cornerIsExternal:c,startAngle:d,endAngle:u,className:m}=t;if(i<a||d===u)return null;var h=ve("recharts-sector",m),v=i-a,p=ht(o,v,0,!0),b;return p>0&&Math.abs(d-u)<360?b=NA({cx:r,cy:n,innerRadius:a,outerRadius:i,cornerRadius:Math.min(p,v/2),forceCornerRadius:l,cornerIsExternal:c,startAngle:d,endAngle:u}):b=By({cx:r,cy:n,innerRadius:a,outerRadius:i,startAngle:d,endAngle:u}),f.createElement("path",Dl({},st(t),{className:h,d:b}))};function AA(e,t,r){if(e==="horizontal")return[{x:t.x,y:r.top},{x:t.x,y:r.top+r.height}];if(e==="vertical")return[{x:r.left,y:t.y},{x:r.left+r.width,y:t.y}];if(gp(t)){if(e==="centric"){var{cx:n,cy:a,innerRadius:i,outerRadius:o,angle:l}=t,c=Ie(n,a,i,l),d=Ie(n,a,o,l);return[{x:c.x,y:c.y},{x:d.x,y:d.y}]}return Fy(t)}}var Eo={},_o={},To={},wm;function OA(){return wm||(wm=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=_p();function r(n){return t.isSymbol(n)?NaN:Number(n)}e.toNumber=r})(To)),To}var Cm;function EA(){return Cm||(Cm=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=OA();function r(n){return n?(n=t.toNumber(n),n===1/0||n===-1/0?(n<0?-1:1)*Number.MAX_VALUE:n===n?n:0):n===0?n:0}e.toFinite=r})(_o)),_o}var km;function _A(){return km||(km=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Tp(),r=EA();function n(a,i,o){o&&typeof o!="number"&&t.isIterateeCall(a,i,o)&&(i=o=void 0),a=r.toFinite(a),i===void 0?(i=a,a=0):i=r.toFinite(i),o=o===void 0?a<i?1:-1:r.toFinite(o);const l=Math.max(Math.ceil((i-a)/(o||1)),0),c=new Array(l);for(let d=0;d<l;d++)c[d]=a,a+=o;return c}e.range=n})(Eo)),Eo}var Mo,Sm;function TA(){return Sm||(Sm=1,Mo=_A().range),Mo}var MA=TA();const Ky=mn(MA);var Ut=e=>e.chartData,ls=_([Ut],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),ca=(e,t,r,n)=>n?ls(e):Ut(e),IA=_([ca],e=>{var{chartData:t,dataStartIndex:r,dataEndIndex:n}=e;return t!=null?t.slice(r,n+1):[]}),DA=_([ls],e=>{var{chartData:t,dataStartIndex:r,dataEndIndex:n}=e;return t!=null?t.slice(r,n+1):[]}),RA=_([Ut],e=>{var{chartData:t,dataStartIndex:r,dataEndIndex:n}=e;return t!=null?t.slice(r,n+1):[]});function Ft(e){if(Array.isArray(e)&&e.length===2){var[t,r]=e;if(me(t)&&me(r))return!0}return!1}function Nm(e,t,r){return r?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function Vy(e,t){if(t&&typeof e!="function"&&Array.isArray(e)&&e.length===2){var[r,n]=e,a,i;if(me(r))a=r;else if(typeof r=="function")return;if(me(n))i=n;else if(typeof n=="function")return;var o=[a,i];if(Ft(o))return o}}function LA(e,t,r){if(!(!r&&t==null)){if(typeof e=="function"&&t!=null)try{var n=e(t,r);if(Ft(n))return Nm(n,t,r)}catch{}if(Array.isArray(e)&&e.length===2){var[a,i]=e,o,l;if(a==="auto")t!=null&&(o=Math.min(...t));else if(ee(a))o=a;else if(typeof a=="function")try{t!=null&&(o=a(t?.[0]))}catch{}else if(typeof a=="string"&&xf.test(a)){var c=xf.exec(a);if(c==null||c[1]==null||t==null)o=void 0;else{var d=+c[1];o=t[0]-d}}else o=t?.[0];if(i==="auto")t!=null&&(l=Math.max(...t));else if(ee(i))l=i;else if(typeof i=="function")try{t!=null&&(l=i(t?.[1]))}catch{}else if(typeof i=="string"&&jf.test(i)){var u=jf.exec(i);if(u==null||u[1]==null||t==null)l=void 0;else{var m=+u[1];l=t[1]+m}}else l=t?.[1];var h=[o,l];if(Ft(h))return t==null?h:Nm(h,t,r)}}}var pn=1e9,$A={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},Kc,Se=!0,St="[DecimalError] ",Er=St+"Invalid argument: ",zc=St+"Exponent out of range: ",yn=Math.floor,Nr=Math.pow,FA=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,mt,Ue=1e7,we=7,Uy=9007199254740991,hi=yn(Uy/we),X={};X.absoluteValue=X.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e};X.comparedTo=X.cmp=function(e){var t,r,n,a,i=this;if(e=new i.constructor(e),i.s!==e.s)return i.s||-e.s;if(i.e!==e.e)return i.e>e.e^i.s<0?1:-1;for(n=i.d.length,a=e.d.length,t=0,r=n<a?n:a;t<r;++t)if(i.d[t]!==e.d[t])return i.d[t]>e.d[t]^i.s<0?1:-1;return n===a?0:n>a^i.s<0?1:-1};X.decimalPlaces=X.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*we;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};X.dividedBy=X.div=function(e){return Xt(this,new this.constructor(e))};X.dividedToIntegerBy=X.idiv=function(e){var t=this,r=t.constructor;return be(Xt(t,new r(e),0,1),r.precision)};X.equals=X.eq=function(e){return!this.cmp(e)};X.exponent=function(){return De(this)};X.greaterThan=X.gt=function(e){return this.cmp(e)>0};X.greaterThanOrEqualTo=X.gte=function(e){return this.cmp(e)>=0};X.isInteger=X.isint=function(){return this.e>this.d.length-2};X.isNegative=X.isneg=function(){return this.s<0};X.isPositive=X.ispos=function(){return this.s>0};X.isZero=function(){return this.s===0};X.lessThan=X.lt=function(e){return this.cmp(e)<0};X.lessThanOrEqualTo=X.lte=function(e){return this.cmp(e)<1};X.logarithm=X.log=function(e){var t,r=this,n=r.constructor,a=n.precision,i=a+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(mt))throw Error(St+"NaN");if(r.s<1)throw Error(St+(r.s?"NaN":"-Infinity"));return r.eq(mt)?new n(0):(Se=!1,t=Xt(Yn(r,i),Yn(e,i),i),Se=!0,be(t,a))};X.minus=X.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Hy(t,e):qy(t,(e.s=-e.s,e))};X.modulo=X.mod=function(e){var t,r=this,n=r.constructor,a=n.precision;if(e=new n(e),!e.s)throw Error(St+"NaN");return r.s?(Se=!1,t=Xt(r,e,0,1).times(e),Se=!0,r.minus(t)):be(new n(r),a)};X.naturalExponential=X.exp=function(){return Wy(this)};X.naturalLogarithm=X.ln=function(){return Yn(this)};X.negated=X.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};X.plus=X.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?qy(t,e):Hy(t,(e.s=-e.s,e))};X.precision=X.sd=function(e){var t,r,n,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Er+e);if(t=De(a)+1,n=a.d.length-1,r=n*we+1,n=a.d[n],n){for(;n%10==0;n/=10)r--;for(n=a.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};X.squareRoot=X.sqrt=function(){var e,t,r,n,a,i,o,l=this,c=l.constructor;if(l.s<1){if(!l.s)return new c(0);throw Error(St+"NaN")}for(e=De(l),Se=!1,a=Math.sqrt(+l),a==0||a==1/0?(t=$t(l.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=yn((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new c(t)):n=new c(a.toString()),r=c.precision,a=o=r+3;;)if(i=n,n=i.plus(Xt(l,i,o+2)).times(.5),$t(i.d).slice(0,o)===(t=$t(n.d)).slice(0,o)){if(t=t.slice(o-3,o+1),a==o&&t=="4999"){if(be(i,r+1,0),i.times(i).eq(l)){n=i;break}}else if(t!="9999")break;o+=4}return Se=!0,be(n,r)};X.times=X.mul=function(e){var t,r,n,a,i,o,l,c,d,u=this,m=u.constructor,h=u.d,v=(e=new m(e)).d;if(!u.s||!e.s)return new m(0);for(e.s*=u.s,r=u.e+e.e,c=h.length,d=v.length,c<d&&(i=h,h=v,v=i,o=c,c=d,d=o),i=[],o=c+d,n=o;n--;)i.push(0);for(n=d;--n>=0;){for(t=0,a=c+n;a>n;)l=i[a]+v[n]*h[a-n-1]+t,i[a--]=l%Ue|0,t=l/Ue|0;i[a]=(i[a]+t)%Ue|0}for(;!i[--o];)i.pop();return t?++r:i.shift(),e.d=i,e.e=r,Se?be(e,m.precision):e};X.toDecimalPlaces=X.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(zt(e,0,pn),t===void 0?t=n.rounding:zt(t,0,8),be(r,e+De(r)+1,t))};X.toExponential=function(e,t){var r,n=this,a=n.constructor;return e===void 0?r=Lr(n,!0):(zt(e,0,pn),t===void 0?t=a.rounding:zt(t,0,8),n=be(new a(n),e+1,t),r=Lr(n,!0,e+1)),r};X.toFixed=function(e,t){var r,n,a=this,i=a.constructor;return e===void 0?Lr(a):(zt(e,0,pn),t===void 0?t=i.rounding:zt(t,0,8),n=be(new i(a),e+De(a)+1,t),r=Lr(n.abs(),!1,e+De(n)+1),a.isneg()&&!a.isZero()?"-"+r:r)};X.toInteger=X.toint=function(){var e=this,t=e.constructor;return be(new t(e),De(e)+1,t.rounding)};X.toNumber=function(){return+this};X.toPower=X.pow=function(e){var t,r,n,a,i,o,l=this,c=l.constructor,d=12,u=+(e=new c(e));if(!e.s)return new c(mt);if(l=new c(l),!l.s){if(e.s<1)throw Error(St+"Infinity");return l}if(l.eq(mt))return l;if(n=c.precision,e.eq(mt))return be(l,n);if(t=e.e,r=e.d.length-1,o=t>=r,i=l.s,o){if((r=u<0?-u:u)<=Uy){for(a=new c(mt),t=Math.ceil(n/we+4),Se=!1;r%2&&(a=a.times(l),Am(a.d,t)),r=yn(r/2),r!==0;)l=l.times(l),Am(l.d,t);return Se=!0,e.s<0?new c(mt).div(a):be(a,n)}}else if(i<0)throw Error(St+"NaN");return i=i<0&&e.d[Math.max(t,r)]&1?-1:1,l.s=1,Se=!1,a=e.times(Yn(l,n+d)),Se=!0,a=Wy(a),a.s=i,a};X.toPrecision=function(e,t){var r,n,a=this,i=a.constructor;return e===void 0?(r=De(a),n=Lr(a,r<=i.toExpNeg||r>=i.toExpPos)):(zt(e,1,pn),t===void 0?t=i.rounding:zt(t,0,8),a=be(new i(a),e,t),r=De(a),n=Lr(a,e<=r||r<=i.toExpNeg,e)),n};X.toSignificantDigits=X.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(zt(e,1,pn),t===void 0?t=n.rounding:zt(t,0,8)),be(new n(r),e,t)};X.toString=X.valueOf=X.val=X.toJSON=X[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=De(e),r=e.constructor;return Lr(e,t<=r.toExpNeg||t>=r.toExpPos)};function qy(e,t){var r,n,a,i,o,l,c,d,u=e.constructor,m=u.precision;if(!e.s||!t.s)return t.s||(t=new u(e)),Se?be(t,m):t;if(c=e.d,d=t.d,o=e.e,a=t.e,c=c.slice(),i=o-a,i){for(i<0?(n=c,i=-i,l=d.length):(n=d,a=o,l=c.length),o=Math.ceil(m/we),l=o>l?o+1:l+1,i>l&&(i=l,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(l=c.length,i=d.length,l-i<0&&(i=l,n=d,d=c,c=n),r=0;i;)r=(c[--i]=c[i]+d[i]+r)/Ue|0,c[i]%=Ue;for(r&&(c.unshift(r),++a),l=c.length;c[--l]==0;)c.pop();return t.d=c,t.e=a,Se?be(t,m):t}function zt(e,t,r){if(e!==~~e||e<t||e>r)throw Error(Er+e)}function $t(e){var t,r,n,a=e.length-1,i="",o=e[0];if(a>0){for(i+=o,t=1;t<a;t++)n=e[t]+"",r=we-n.length,r&&(i+=lr(r)),i+=n;o=e[t],n=o+"",r=we-n.length,r&&(i+=lr(r))}else if(o===0)return"0";for(;o%10===0;)o/=10;return i+o}var Xt=(function(){function e(n,a){var i,o=0,l=n.length;for(n=n.slice();l--;)i=n[l]*a+o,n[l]=i%Ue|0,o=i/Ue|0;return o&&n.unshift(o),n}function t(n,a,i,o){var l,c;if(i!=o)c=i>o?1:-1;else for(l=c=0;l<i;l++)if(n[l]!=a[l]){c=n[l]>a[l]?1:-1;break}return c}function r(n,a,i){for(var o=0;i--;)n[i]-=o,o=n[i]<a[i]?1:0,n[i]=o*Ue+n[i]-a[i];for(;!n[0]&&n.length>1;)n.shift()}return function(n,a,i,o){var l,c,d,u,m,h,v,p,b,y,g,j,x,C,w,P,A,S,N=n.constructor,E=n.s==a.s?1:-1,T=n.d,O=a.d;if(!n.s)return new N(n);if(!a.s)throw Error(St+"Division by zero");for(c=n.e-a.e,A=O.length,w=T.length,v=new N(E),p=v.d=[],d=0;O[d]==(T[d]||0);)++d;if(O[d]>(T[d]||0)&&--c,i==null?j=i=N.precision:o?j=i+(De(n)-De(a))+1:j=i,j<0)return new N(0);if(j=j/we+2|0,d=0,A==1)for(u=0,O=O[0],j++;(d<w||u)&&j--;d++)x=u*Ue+(T[d]||0),p[d]=x/O|0,u=x%O|0;else{for(u=Ue/(O[0]+1)|0,u>1&&(O=e(O,u),T=e(T,u),A=O.length,w=T.length),C=A,b=T.slice(0,A),y=b.length;y<A;)b[y++]=0;S=O.slice(),S.unshift(0),P=O[0],O[1]>=Ue/2&&++P;do u=0,l=t(O,b,A,y),l<0?(g=b[0],A!=y&&(g=g*Ue+(b[1]||0)),u=g/P|0,u>1?(u>=Ue&&(u=Ue-1),m=e(O,u),h=m.length,y=b.length,l=t(m,b,h,y),l==1&&(u--,r(m,A<h?S:O,h))):(u==0&&(l=u=1),m=O.slice()),h=m.length,h<y&&m.unshift(0),r(b,m,y),l==-1&&(y=b.length,l=t(O,b,A,y),l<1&&(u++,r(b,A<y?S:O,y))),y=b.length):l===0&&(u++,b=[0]),p[d++]=u,l&&b[0]?b[y++]=T[C]||0:(b=[T[C]],y=1);while((C++<w||b[0]!==void 0)&&j--)}return p[0]||p.shift(),v.e=c,be(v,o?i+De(v)+1:i)}})();function Wy(e,t){var r,n,a,i,o,l,c=0,d=0,u=e.constructor,m=u.precision;if(De(e)>16)throw Error(zc+De(e));if(!e.s)return new u(mt);for(Se=!1,l=m,o=new u(.03125);e.abs().gte(.1);)e=e.times(o),d+=5;for(n=Math.log(Nr(2,d))/Math.LN10*2+5|0,l+=n,r=a=i=new u(mt),u.precision=l;;){if(a=be(a.times(e),l),r=r.times(++c),o=i.plus(Xt(a,r,l)),$t(o.d).slice(0,l)===$t(i.d).slice(0,l)){for(;d--;)i=be(i.times(i),l);return u.precision=m,t==null?(Se=!0,be(i,m)):i}i=o}}function De(e){for(var t=e.e*we,r=e.d[0];r>=10;r/=10)t++;return t}function Io(e,t,r){if(t>e.LN10.sd())throw Se=!0,r&&(e.precision=r),Error(St+"LN10 precision limit exceeded");return be(new e(e.LN10),t)}function lr(e){for(var t="";e--;)t+="0";return t}function Yn(e,t){var r,n,a,i,o,l,c,d,u,m=1,h=10,v=e,p=v.d,b=v.constructor,y=b.precision;if(v.s<1)throw Error(St+(v.s?"NaN":"-Infinity"));if(v.eq(mt))return new b(0);if(t==null?(Se=!1,d=y):d=t,v.eq(10))return t==null&&(Se=!0),Io(b,d);if(d+=h,b.precision=d,r=$t(p),n=r.charAt(0),i=De(v),Math.abs(i)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)v=v.times(e),r=$t(v.d),n=r.charAt(0),m++;i=De(v),n>1?(v=new b("0."+r),i++):v=new b(n+"."+r.slice(1))}else return c=Io(b,d+2,y).times(i+""),v=Yn(new b(n+"."+r.slice(1)),d-h).plus(c),b.precision=y,t==null?(Se=!0,be(v,y)):v;for(l=o=v=Xt(v.minus(mt),v.plus(mt),d),u=be(v.times(v),d),a=3;;){if(o=be(o.times(u),d),c=l.plus(Xt(o,new b(a),d)),$t(c.d).slice(0,d)===$t(l.d).slice(0,d))return l=l.times(2),i!==0&&(l=l.plus(Io(b,d+2,y).times(i+""))),l=Xt(l,new b(m),d),b.precision=y,t==null?(Se=!0,be(l,y)):l;l=c,a+=2}}function Pm(e,t){var r,n,a;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(n,a),t){if(a-=n,r=r-n-1,e.e=yn(r/we),e.d=[],n=(r+1)%we,r<0&&(n+=we),n<a){for(n&&e.d.push(+t.slice(0,n)),a-=we;n<a;)e.d.push(+t.slice(n,n+=we));t=t.slice(n),n=we-t.length}else n-=a;for(;n--;)t+="0";if(e.d.push(+t),Se&&(e.e>hi||e.e<-hi))throw Error(zc+r)}else e.s=0,e.e=0,e.d=[0];return e}function be(e,t,r){var n,a,i,o,l,c,d,u,m=e.d;for(o=1,i=m[0];i>=10;i/=10)o++;if(n=t-o,n<0)n+=we,a=t,d=m[u=0];else{if(u=Math.ceil((n+1)/we),i=m.length,u>=i)return e;for(d=i=m[u],o=1;i>=10;i/=10)o++;n%=we,a=n-we+o}if(r!==void 0&&(i=Nr(10,o-a-1),l=d/i%10|0,c=t<0||m[u+1]!==void 0||d%i,c=r<4?(l||c)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||c||r==6&&(n>0?a>0?d/Nr(10,o-a):0:m[u-1])%10&1||r==(e.s<0?8:7))),t<1||!m[0])return c?(i=De(e),m.length=1,t=t-i-1,m[0]=Nr(10,(we-t%we)%we),e.e=yn(-t/we)||0):(m.length=1,m[0]=e.e=e.s=0),e;if(n==0?(m.length=u,i=1,u--):(m.length=u+1,i=Nr(10,we-n),m[u]=a>0?(d/Nr(10,o-a)%Nr(10,a)|0)*i:0),c)for(;;)if(u==0){(m[0]+=i)==Ue&&(m[0]=1,++e.e);break}else{if(m[u]+=i,m[u]!=Ue)break;m[u--]=0,i=1}for(n=m.length;m[--n]===0;)m.pop();if(Se&&(e.e>hi||e.e<-hi))throw Error(zc+De(e));return e}function Hy(e,t){var r,n,a,i,o,l,c,d,u,m,h=e.constructor,v=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),Se?be(t,v):t;if(c=e.d,m=t.d,n=t.e,d=e.e,c=c.slice(),o=d-n,o){for(u=o<0,u?(r=c,o=-o,l=m.length):(r=m,n=d,l=c.length),a=Math.max(Math.ceil(v/we),l)+2,o>a&&(o=a,r.length=1),r.reverse(),a=o;a--;)r.push(0);r.reverse()}else{for(a=c.length,l=m.length,u=a<l,u&&(l=a),a=0;a<l;a++)if(c[a]!=m[a]){u=c[a]<m[a];break}o=0}for(u&&(r=c,c=m,m=r,t.s=-t.s),l=c.length,a=m.length-l;a>0;--a)c[l++]=0;for(a=m.length;a>o;){if(c[--a]<m[a]){for(i=a;i&&c[--i]===0;)c[i]=Ue-1;--c[i],c[a]+=Ue}c[a]-=m[a]}for(;c[--l]===0;)c.pop();for(;c[0]===0;c.shift())--n;return c[0]?(t.d=c,t.e=n,Se?be(t,v):t):new h(0)}function Lr(e,t,r){var n,a=De(e),i=$t(e.d),o=i.length;return t?(r&&(n=r-o)>0?i=i.charAt(0)+"."+i.slice(1)+lr(n):o>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(a<0?"e":"e+")+a):a<0?(i="0."+lr(-a-1)+i,r&&(n=r-o)>0&&(i+=lr(n))):a>=o?(i+=lr(a+1-o),r&&(n=r-a-1)>0&&(i=i+"."+lr(n))):((n=a+1)<o&&(i=i.slice(0,n)+"."+i.slice(n)),r&&(n=r-o)>0&&(a+1===o&&(i+="."),i+=lr(n))),e.s<0?"-"+i:i}function Am(e,t){if(e.length>t)return e.length=t,!0}function Gy(e){var t,r,n;function a(i){var o=this;if(!(o instanceof a))return new a(i);if(o.constructor=a,i instanceof a){o.s=i.s,o.e=i.e,o.d=(i=i.d)?i.slice():i;return}if(typeof i=="number"){if(i*0!==0)throw Error(Er+i);if(i>0)o.s=1;else if(i<0)i=-i,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(i===~~i&&i<1e7){o.e=0,o.d=[i];return}return Pm(o,i.toString())}else if(typeof i!="string")throw Error(Er+i);if(i.charCodeAt(0)===45?(i=i.slice(1),o.s=-1):o.s=1,FA.test(i))Pm(o,i);else throw Error(Er+i)}if(a.prototype=X,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=Gy,a.config=a.set=BA,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t<n.length;)e.hasOwnProperty(r=n[t++])||(e[r]=this[r]);return a.config(e),a}function BA(e){if(!e||typeof e!="object")throw Error(St+"Object expected");var t,r,n,a=["precision",1,pn,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<a.length;t+=3)if((n=e[r=a[t]])!==void 0)if(yn(n)===n&&n>=a[t+1]&&n<=a[t+2])this[r]=n;else throw Error(Er+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(Er+r+": "+n);return this}var Kc=Gy($A);mt=new Kc(1);const ue=Kc;function Xy(e){var t;return e===0?t=1:t=Math.floor(new ue(e).abs().log(10).toNumber())+1,t}function Yy(e,t,r){for(var n=new ue(e),a=0,i=[];n.lt(t)&&a<1e5;)i.push(n.toNumber()),n=n.add(r),a++;return i}var Zy=e=>{var[t,r]=e,[n,a]=[t,r];return t>r&&([n,a]=[r,t]),[n,a]},Vc=(e,t,r)=>{if(e.lte(0))return new ue(0);var n=Xy(e.toNumber()),a=new ue(10).pow(n),i=e.div(a),o=n!==1?.05:.1,l=new ue(Math.ceil(i.div(o).toNumber())).add(r).mul(o),c=l.mul(a);return t?new ue(c.toNumber()):new ue(Math.ceil(c.toNumber()))},Jy=(e,t,r)=>{var n;if(e.lte(0))return new ue(0);var a=[1,2,2.5,5],i=e.toNumber(),o=Math.floor(new ue(i).abs().log(10).toNumber()),l=new ue(10).pow(o),c=e.div(l).toNumber(),d=a.findIndex(v=>v>=c-1e-10);if(d===-1&&(l=l.mul(10),d=0),d+=r,d>=a.length){var u=Math.floor(d/a.length);d%=a.length,l=l.mul(new ue(10).pow(u))}var m=(n=a[d])!==null&&n!==void 0?n:1,h=new ue(m).mul(l);return t?h:new ue(Math.ceil(h.toNumber()))},zA=(e,t,r)=>{var n=new ue(1),a=new ue(e);if(!a.isint()&&r){var i=Math.abs(e);i<1?(n=new ue(10).pow(Xy(e)-1),a=new ue(Math.floor(a.div(n).toNumber())).mul(n)):i>1&&(a=new ue(Math.floor(e)))}else e===0?a=new ue(Math.floor((t-1)/2)):r||(a=new ue(Math.floor(e)));for(var o=Math.floor((t-1)/2),l=[],c=0;c<t;c++)l.push(a.add(new ue(c-o).mul(n)).toNumber());return l},Qy=function(t,r,n,a){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:Vc;if(!Number.isFinite((r-t)/(n-1)))return{step:new ue(0),tickMin:new ue(0),tickMax:new ue(0)};var l=o(new ue(r).sub(t).div(n-1),a,i),c;t<=0&&r>=0?c=new ue(0):(c=new ue(t).add(r).div(2),c=c.sub(new ue(c).mod(l)));var d=Math.ceil(c.sub(t).div(l).toNumber()),u=Math.ceil(new ue(r).sub(c).div(l).toNumber()),m=d+u+1;return m>n?Qy(t,r,n,a,i+1,o):(m<n&&(u=r>0?u+(n-m):u,d=r>0?d:d+(n-m)),{step:l,tickMin:c.sub(new ue(d).mul(l)),tickMax:c.add(new ue(u).mul(l))})},Om=function(t){var[r,n]=t,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=Math.max(a,2),[c,d]=Zy([r,n]);if(c===-1/0||d===1/0){var u=d===1/0?[c,...Array(a-1).fill(1/0)]:[...Array(a-1).fill(-1/0),d];return r>n?u.reverse():u}if(c===d)return zA(c,a,i);var m=o==="snap125"?Jy:Vc,{step:h,tickMin:v,tickMax:p}=Qy(c,d,l,i,0,m),b=Yy(v,p.add(new ue(.1).mul(h)),h);return r>n?b.reverse():b},Em=function(t,r){var[n,a]=t,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",[l,c]=Zy([n,a]);if(l===-1/0||c===1/0)return[n,a];if(l===c)return[l];var d=o==="snap125"?Jy:Vc,u=Math.max(r,2),m=d(new ue(c).sub(l).div(u-1),i,0),h=[...Yy(new ue(l),new ue(c),m),c];return i===!1&&(h=h.map(v=>Math.round(v))),n>a?h.reverse():h},KA=e=>e.rootProps.barCategoryGap,ua=e=>e.rootProps.stackOffset,eg=e=>e.rootProps.reverseStackOrder,Uc=e=>e.options.chartName,qc=e=>e.rootProps.syncId,tg=e=>e.rootProps.syncMethod,Wc=e=>e.options.eventEmitter,Ze={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},xr={allowDecimals:!1,allowDataOverflow:!1,angleAxisId:0,reversed:!1,scale:"auto",tick:!0,type:"auto"},Dt={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,includeHidden:!1,radiusAxisId:0,reversed:!1,scale:"auto",tick:!0,tickCount:5,type:"auto"},cs=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function us(e,t,r){if(r!=="auto")return r;if(e!=null)return er(e,t)?"category":"number"}function _m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function pi(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?_m(Object(r),!0).forEach(function(n){VA(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_m(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function VA(e,t,r){return(t=UA(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function UA(e){var t=qA(e,"string");return typeof t=="symbol"?t:t+""}function qA(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Tm={allowDataOverflow:xr.allowDataOverflow,allowDecimals:xr.allowDecimals,allowDuplicatedCategory:!1,dataKey:void 0,domain:void 0,id:xr.angleAxisId,includeHidden:!1,name:void 0,reversed:xr.reversed,scale:xr.scale,tick:xr.tick,tickCount:void 0,ticks:void 0,type:xr.type,unit:void 0,niceTicks:"auto"},Mm={allowDataOverflow:Dt.allowDataOverflow,allowDecimals:Dt.allowDecimals,allowDuplicatedCategory:Dt.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:Dt.radiusAxisId,includeHidden:Dt.includeHidden,name:void 0,reversed:Dt.reversed,scale:Dt.scale,tick:Dt.tick,tickCount:Dt.tickCount,ticks:void 0,type:Dt.type,unit:void 0,niceTicks:"auto"},WA=(e,t)=>{if(t!=null)return e.polarAxis.angleAxis[t]},Hc=_([WA,xy],(e,t)=>{var r;if(e!=null)return e;var n=(r=us(t,"angleAxis",Tm.type))!==null&&r!==void 0?r:"category";return pi(pi({},Tm),{},{type:n})}),HA=(e,t)=>e.polarAxis.radiusAxis[t],Gc=_([HA,xy],(e,t)=>{var r;if(e!=null)return e;var n=(r=us(t,"radiusAxis",Mm.type))!==null&&r!==void 0?r:"category";return pi(pi({},Mm),{},{type:n})}),ds=e=>e.polarOptions,Xc=_([tr,rr,qe],$y),rg=_([ds,Xc],(e,t)=>{if(e!=null)return ht(e.innerRadius,t,0)}),ng=_([ds,Xc],(e,t)=>{if(e!=null)return ht(e.outerRadius,t,t*.8)}),GA=e=>{if(e==null)return[0,0];var{startAngle:t,endAngle:r}=e;return[t,r]},ag=_([ds],GA);_([Hc,ag],cs);var ig=_([Xc,rg,ng],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]});_([Gc,ig],cs);var sg=_([xe,ds,rg,ng,tr,rr],(e,t,r,n,a,i)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var{cx:o,cy:l,startAngle:c,endAngle:d}=t;return{cx:ht(o,a,a/2),cy:ht(l,i,i/2),innerRadius:r,outerRadius:n,startAngle:c,endAngle:d,clockWise:!1}}}),Ae=(e,t)=>t,da=(e,t,r)=>r;function og(e){return e?.id}function lg(e,t,r){var{chartData:n=[]}=t,{allowDuplicatedCategory:a,dataKey:i}=r,o=new Map;return e.forEach(l=>{var c,d=(c=l.data)!==null&&c!==void 0?c:n;if(!(d==null||d.length===0)){var u=og(l);d.forEach((m,h)=>{var v=i==null||a?h:String(ge(m,i,null)),p=ge(m,l.dataKey,0),b;o.has(v)?b=o.get(v):b={},Object.assign(b,{[u]:p}),o.set(v,b)})}}),Array.from(o.values())}function Yc(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var fs=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function ms(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function XA(e,t){if(e.length===t.length){for(var r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}return!1}var We=e=>{var t=xe(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"},gn=e=>e.tooltip.settings.axisId;function Zc(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),a=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(i){function o(){return i.apply(this,arguments)}return o.toString=function(){return i.toString()},o})(()=>a),rangeMin:()=>a[0],rangeMax:()=>a[1],isInRange(i){var o=a[0],l=a[1];return o<=l?i>=o&&i<=l:i>=l&&i<=o},bandwidth:r?()=>r.call(e):void 0,ticks:t?i=>t.call(e,i):void 0,map:(i,o)=>{var l=e(i);if(l!=null){if(e.bandwidth&&o!==null&&o!==void 0&&o.position){var c=e.bandwidth();switch(o.position){case"middle":l+=c/2;break;case"end":l+=c;break}}return l}}}}}var cg=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!Ft(t)){for(var r,n,a=0;a<t.length;a++){var i=t[a];me(i)&&((r===void 0||i<r)&&(r=i),(n===void 0||i>n)&&(n=i))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};const ug=Object.freeze(Object.defineProperty({__proto__:null,scaleBand:S0,scaleDiverging:ap,scaleDivergingLog:ip,scaleDivergingPow:pc,scaleDivergingSqrt:Fw,scaleDivergingSymlog:sp,scaleIdentity:Hh,scaleImplicit:H0,scaleLinear:E0,scaleLog:Gh,scaleOrdinal:G0,scalePoint:N0,scalePow:vc,scaleQuantile:Zh,scaleQuantize:Jh,scaleRadial:Yh,scaleSequential:ep,scaleSequentialLog:tp,scaleSequentialPow:hc,scaleSequentialQuantile:np,scaleSequentialSqrt:$w,scaleSequentialSymlog:rp,scaleSqrt:Dw,scaleSymlog:Xh,scaleThreshold:Qh,scaleTime:U0,scaleUtc:Lw,tickFormat:_0},Symbol.toStringTag,{value:"Module"}));function YA(e){var t=ug;if(e in t&&typeof t[e]=="function")return t[e]();var r="scale".concat(ea(e));if(r in t&&typeof t[r]=="function")return t[r]()}function Im(e,t,r){if(typeof e=="function")return e.copy().domain(t).range(r);if(e!=null){var n=YA(e);if(n!=null)return n.domain(t).range(r),n}}function Jc(e,t,r,n){if(!(r==null||n==null))return typeof e.scale=="function"?Im(e.scale,r,n):Im(t,r,n)}function ZA(e){return"scale".concat(ea(e))}function JA(e){return ZA(e)in ug}var dg=(e,t,r)=>{if(e!=null){var{scale:n,type:a}=e;if(n==="auto")return a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":a==="category"?"band":"linear";if(typeof n=="string")return JA(n)?n:"point"}};function QA(e,t){for(var r=0,n=e.length,a=e[0]<e[e.length-1];r<n;){var i=Math.floor((r+n)/2);(a?e[i]<t:e[i]>t)?r=i+1:n=i}return r}function fg(e,t){if(e){var r=t??e.domain(),n=r.map(i=>{var o;return(o=e(i))!==null&&o!==void 0?o:0}),a=e.range();if(!(r.length===0||a.length<2))return i=>{var o,l,c=QA(n,i);if(c<=0)return r[0];if(c>=r.length)return r[r.length-1];var d=(o=n[c-1])!==null&&o!==void 0?o:0,u=(l=n[c])!==null&&l!==void 0?l:0;return Math.abs(i-d)<=Math.abs(i-u)?r[c-1]:r[c]}}}function eO(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):fg(e,void 0)}function Dm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function yi(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Dm(Object(r),!0).forEach(function(n){tO(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Dm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function tO(e,t,r){return(t=rO(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function rO(e){var t=nO(e,"string");return typeof t=="symbol"?t:t+""}function nO(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Rl=[0,"auto"],$e={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:void 0,height:30,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"bottom",padding:{left:0,right:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"category",unit:void 0,niceTicks:"auto"},mg=(e,t)=>e.cartesianAxis.xAxis[t],nr=(e,t)=>{var r=mg(e,t);return r??$e},Fe={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:Rl,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:aa},vg=(e,t)=>e.cartesianAxis.yAxis[t],ar=(e,t)=>{var r=vg(e,t);return r??Fe},aO={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},Qc=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??aO},Te=(e,t,r)=>{switch(t){case"xAxis":return nr(e,r);case"yAxis":return ar(e,r);case"zAxis":return Qc(e,r);case"angleAxis":return Hc(e,r);case"radiusAxis":return Gc(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},iO=(e,t,r)=>{switch(t){case"xAxis":return nr(e,r);case"yAxis":return ar(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},bn=(e,t,r)=>{switch(t){case"xAxis":return nr(e,r);case"yAxis":return ar(e,r);case"angleAxis":return Hc(e,r);case"radiusAxis":return Gc(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},hg=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function eu(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var pg=e=>e.graphicalItems.cartesianItems,sO=_([Ae,da],eu),tu=(e,t,r)=>e.filter(r).filter(n=>t?.includeHidden===!0?!0:!n.hide),xn=_([pg,Te,sO],tu,{memoizeOptions:{resultEqualityCheck:ms}}),yg=_([xn],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(Yc)),gg=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),oO=_([xn],gg),ru=e=>e.map(t=>t.data).filter(Boolean).flat(1),lO=_([xn],e=>e.some(t=>!t.data)),bg=_([xn],ru,{memoizeOptions:{resultEqualityCheck:ms}}),nu=(e,t)=>{var{chartData:r=[],dataStartIndex:n,dataEndIndex:a}=t;return e.length>0?e:r.slice(n,a+1)},au=_([bg,ca],nu),xg=(e,t,r)=>t?.dataKey!=null?e.map(n=>({value:ge(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(a=>({value:ge(a,n)}))):e.map(n=>({value:n})),jg=(e,t,r,n,a,i)=>{var{chartData:o=[],dataStartIndex:l,dataEndIndex:c}=n,d=xg(e,t,r);if(a&&t?.dataKey!=null&&i.length>0){var u=o.slice(l,c+1),m=u.map(h=>({value:ge(h,t.dataKey)})).filter(h=>h.value!=null);return[...m,...d]}return d},fa=_([au,Te,xn,ca,lO,bg],jg);function nn(e){if(Bt(e)||e instanceof Date){var t=Number(e);if(me(t))return t}}function Rm(e){if(Array.isArray(e)){var t=[nn(e[0]),nn(e[1])];return Ft(t)?t:void 0}var r=nn(e);if(r!=null)return[r,r]}function Kt(e){return e.map(nn).filter(ut)}function cO(e,t){var r=nn(e),n=nn(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var uO=_([fa],e=>e?.map(t=>t.value).sort(cO));function wg(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function dO(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!Zt(t))n=t;else if(Array.isArray(t)){var a=Kt(t);a.length>0&&(n=Math.max(...a))}return n==null?[]:Kt(r.flatMap(i=>{var o=ge(e,i.dataKey),l,c;if(Array.isArray(o)?[l,c]=o:l=c=o,!(!me(l)||!me(c)))return[n-l,n+c]}))}var Ve=e=>{var t=We(e),r=gn(e);return bn(e,t,r)},un=_([Ve],e=>e?.dataKey),fO=_([yg,ca,Ve],lg),Cg=(e,t,r,n)=>{var a={},i=t.reduce((o,l)=>{if(l.stackId==null)return o;var c=o[l.stackId];return c==null&&(c=[]),c.push(l),o[l.stackId]=c,o},a);return Object.fromEntries(Object.entries(i).map(o=>{var[l,c]=o,d=n?[...c].reverse():c,u=d.map(og);return[l,{stackedData:HS(e,u,r),graphicalItems:d}]}))},mO=_([fO,yg,ua,eg],Cg),kg=(e,t,r,n)=>{var{dataStartIndex:a,dataEndIndex:i}=t;if(n==null&&r!=="zAxis"){var o=YS(e,a,i);if(!(o!=null&&o[0]===0&&o[1]===0))return o}},vO=_([Te],e=>e.allowDataOverflow),iu=e=>{var t;if(e==null||!("domain"in e))return Rl;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=Kt(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e?.domain)!==null&&t!==void 0?t:Rl},su=_([Te],iu),ou=_([su,vO],Vy),hO=_([mO,Ut,Ae,ou],kg,{memoizeOptions:{resultEqualityCheck:fs}}),vs=e=>e.errorBars,pO=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>wg(r,n)),gi=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var a=r.filter(Boolean);if(a.length!==0){var i=a.flat(),o=Math.min(...i),l=Math.max(...i);return[o,l]}},lu=function(t,r,n,a,i){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:[],l,c;if(n.length>0&&n.forEach(d=>{var u,m=d.data!=null?[...d.data]:o,h=(u=a[d.id])===null||u===void 0?void 0:u.filter(v=>wg(i,v));m.forEach(v=>{var p,b=ge(v,(p=r.dataKey)!==null&&p!==void 0?p:d.dataKey),y=dO(v,b,h);if(y.length>=2){var g=Math.min(...y),j=Math.max(...y);(l==null||g<l)&&(l=g),(c==null||j>c)&&(c=j)}var x=Rm(b);x!=null&&(l=l==null?x[0]:Math.min(l,x[0]),c=c==null?x[1]:Math.max(c,x[1]))})}),r?.dataKey!=null&&n.length===0&&t.forEach(d=>{var u=Rm(ge(d,r.dataKey));u!=null&&(l=l==null?u[0]:Math.min(l,u[0]),c=c==null?u[1]:Math.max(c,u[1]))}),me(l)&&me(c))return[l,c]},yO=_([au,Te,oO,vs,Ae,IA],lu,{memoizeOptions:{resultEqualityCheck:fs}});function gO(e){var{value:t}=e;if(Bt(t)||t instanceof Date)return t}var bO=(e,t,r)=>{var n=e.map(gO).filter(a=>a!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&hp(n))?Ky(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},Sg=e=>e.referenceElements.dots,jn=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),xO=_([Sg,Ae,da],jn),Ng=e=>e.referenceElements.areas,jO=_([Ng,Ae,da],jn),Pg=e=>e.referenceElements.lines,wO=_([Pg,Ae,da],jn),Ag=(e,t)=>{if(e!=null){var r=Kt(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},CO=_(xO,Ae,Ag),Og=(e,t)=>{if(e!=null){var r=Kt(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},kO=_([jO,Ae],Og);function SO(e){var t;if(e.x!=null)return Kt([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:Kt(r)}function NO(e){var t;if(e.y!=null)return Kt([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:Kt(r)}var Eg=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?SO(n):NO(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},PO=_([wO,Ae],Eg),AO=_(CO,PO,kO,(e,t,r)=>gi(e,r,t)),cu=(e,t,r,n,a,i,o,l)=>{if(r!=null)return r;var c=o==="vertical"&&l==="xAxis"||o==="horizontal"&&l==="yAxis",d=c?gi(n,i,a):gi(i,a);return LA(t,d,e.allowDataOverflow)},OO=_([Te,su,ou,hO,yO,AO,xe,Ae],cu,{memoizeOptions:{resultEqualityCheck:fs}}),EO=[0,1],uu=(e,t,r,n,a,i,o)=>{if(!((e==null||r==null||r.length===0)&&o===void 0)){var{dataKey:l,type:c}=e,d=er(t,i);if(d&&l==null){var u;return Ky(0,(u=r?.length)!==null&&u!==void 0?u:0)}return c==="category"?bO(n,e,d):a==="expand"&&!d?EO:o}},du=_([Te,xe,au,fa,ua,Ae,OO],uu),gr=_([Te,hg,Uc],dg),fu=(e,t,r)=>{var{niceTicks:n}=t;if(n!=="none"){var a=iu(t),i=Array.isArray(a)&&(a[0]==="auto"||a[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&Ft(e)){if(i)return Om(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return Em(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(i&&Ft(e))return Om(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&Ft(e))return Em(e,t.tickCount,t.allowDecimals,"adaptive")}}},mu=_([du,bn,gr],fu),vu=(e,t,r,n)=>{if(n!=="angleAxis"&&e?.type==="number"&&Ft(t)&&Array.isArray(r)&&r.length>0){var a,i,o=t[0],l=(a=r[0])!==null&&a!==void 0?a:0,c=t[1],d=(i=r[r.length-1])!==null&&i!==void 0?i:0;return[Math.min(o,l),Math.max(c,d)]}return t},_O=_([Te,du,mu,Ae],vu),TO=_(fa,Te,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from(Kt(e.map(m=>m.value))).sort((m,h)=>m-h),a=n[0],i=n[n.length-1];if(a==null||i==null)return 1/0;var o=i-a;if(o===0)return 1/0;for(var l=0;l<n.length-1;l++){var c=n[l],d=n[l+1];if(!(c==null||d==null)){var u=d-c;r=Math.min(r,u)}}return r/o}}),_g=_(TO,xe,KA,qe,(e,t,r,n,a)=>a,(e,t,r,n,a)=>{if(!me(e))return 0;var i=t==="vertical"?n.height:n.width;if(a==="gap")return e*i/2;if(a==="no-gap"){var o=ht(r,e*i),l=e*i/2;return l-o-(l-o)/i*o}return 0}),MO=(e,t,r)=>{var n=nr(e,t);return n==null||typeof n.padding!="string"?0:_g(e,"xAxis",t,r,n.padding)},IO=(e,t,r)=>{var n=ar(e,t);return n==null||typeof n.padding!="string"?0:_g(e,"yAxis",t,r,n.padding)},DO=_(nr,MO,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var{padding:a}=e;return typeof a=="string"?{left:t,right:t}:{left:((r=a.left)!==null&&r!==void 0?r:0)+t,right:((n=a.right)!==null&&n!==void 0?n:0)+t}}),RO=_(ar,IO,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var{padding:a}=e;return typeof a=="string"?{top:t,bottom:t}:{top:((r=a.top)!==null&&r!==void 0?r:0)+t,bottom:((n=a.bottom)!==null&&n!==void 0?n:0)+t}}),LO=_([qe,DO,ts,es,(e,t,r)=>r],(e,t,r,n,a)=>{var{padding:i}=n;return a?[i.left,r.width-i.right]:[e.left+t.left,e.left+e.width-t.right]}),$O=_([qe,xe,RO,ts,es,(e,t,r)=>r],(e,t,r,n,a,i)=>{var{padding:o}=a;return i?[n.height-o.bottom,o.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),ma=(e,t,r,n)=>{var a;switch(t){case"xAxis":return LO(e,r,n);case"yAxis":return $O(e,r,n);case"zAxis":return(a=Qc(e,r))===null||a===void 0?void 0:a.range;case"angleAxis":return ag(e);case"radiusAxis":return ig(e,r);default:return}},Tg=_([Te,ma],cs),FO=_([gr,_O],cg),hu=_([Te,gr,FO,Tg],Jc),Mg=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var{type:a,scale:i}=r,o=er(e,n);if(o&&(a==="number"||i!=="auto"))return t.map(l=>l.value)}},pu=_([xe,fa,bn,Ae],Mg),hs=_([hu],Zc);_([hu],eO);_([hu,uO],fg);_([xn,vs,Ae],pO);function Ig(e,t){return e.id<t.id?-1:e.id>t.id?1:0}var ps=(e,t)=>t,ys=(e,t,r)=>r,BO=_(Ji,ps,ys,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(Ig)),zO=_(Qi,ps,ys,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(Ig)),Dg=(e,t)=>({width:e.width,height:t.height}),KO=(e,t)=>{var r=typeof t.width=="number"?t.width:aa;return{width:r,height:e.height}},VO=_(qe,nr,Dg),UO=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},qO=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},WO=_(rr,qe,BO,ps,ys,(e,t,r,n,a)=>{var i={},o;return r.forEach(l=>{var c=Dg(t,l);o==null&&(o=UO(t,n,e));var d=n==="top"&&!a||n==="bottom"&&a;i[l.id]=o-Number(d)*c.height,o+=(d?-1:1)*c.height}),i}),HO=_(tr,qe,zO,ps,ys,(e,t,r,n,a)=>{var i={},o;return r.forEach(l=>{var c=KO(t,l);o==null&&(o=qO(t,n,e));var d=n==="left"&&!a||n==="right"&&a;i[l.id]=o-Number(d)*c.width,o+=(d?-1:1)*c.width}),i}),GO=(e,t)=>{var r=nr(e,t);if(r!=null)return WO(e,r.orientation,r.mirror)},XO=_([qe,nr,GO,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:e.left,y:0}:{x:e.left,y:a}}}),YO=(e,t)=>{var r=ar(e,t);if(r!=null)return HO(e,r.orientation,r.mirror)},ZO=_([qe,ar,YO,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:0,y:e.top}:{x:a,y:e.top}}}),JO=_(qe,ar,(e,t)=>{var r=typeof t.width=="number"?t.width:aa;return{width:r,height:e.height}}),Rg=(e,t,r,n)=>{if(r!=null){var{allowDuplicatedCategory:a,type:i,dataKey:o}=r,l=er(e,n),c=t.map(u=>u.value),d=c.filter(u=>u!=null);if(o&&l&&i==="category"&&a&&hp(d))return c}},yu=_([xe,fa,Te,Ae],Rg),Lm=_([xe,iO,gr,hs,yu,pu,ma,mu,Ae],(e,t,r,n,a,i,o,l,c)=>{if(t!=null){var d=er(e,c);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:c,categoricalDomain:i,duplicateDomain:a,isCategorical:d,niceTicks:l,range:o,realScaleType:r,scale:n}}}),QO=(e,t,r,n,a,i,o,l,c)=>{if(!(t==null||n==null)){var d=er(e,c),{type:u,ticks:m,tickCount:h}=t,v=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,p=u==="category"&&n.bandwidth?n.bandwidth()/v:0;p=c==="angleAxis"&&i!=null&&i.length>=2?rt(i[0]-i[1])*2*p:p;var b=m||a;return b?b.map((y,g)=>{var j=o?o.indexOf(y):y,x=n.map(j);return me(x)?{index:g,coordinate:x+p,value:y,offset:p}:null}).filter(ut):d&&l?l.map((y,g)=>{var j=n.map(y);return me(j)?{coordinate:j+p,value:y,index:g,offset:p}:null}).filter(ut):n.ticks?n.ticks(h).map((y,g)=>{var j=n.map(y);return me(j)?{coordinate:j+p,value:y,index:g,offset:p}:null}).filter(ut):n.domain().map((y,g)=>{var j=n.map(y);return me(j)?{coordinate:j+p,value:o?o[y]:y,index:g,offset:p}:null}).filter(ut)}},Lg=_([xe,bn,gr,hs,mu,ma,yu,pu,Ae],QO),eE=(e,t,r,n,a,i,o)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var l=er(e,o),{tickCount:c}=t,d=0;return d=o==="angleAxis"&&n?.length>=2?rt(n[0]-n[1])*2*d:d,l&&i?i.map((u,m)=>{var h=r.map(u);return me(h)?{coordinate:h+d,value:u,index:m,offset:d}:null}).filter(ut):r.ticks?r.ticks(c).map((u,m)=>{var h=r.map(u);return me(h)?{coordinate:h+d,value:u,index:m,offset:d}:null}).filter(ut):r.domain().map((u,m)=>{var h=r.map(u);return me(h)?{coordinate:h+d,value:a?a[u]:u,index:m,offset:d}:null}).filter(ut)}},$g=_([xe,bn,hs,ma,yu,pu,Ae],eE),Fg=_(Te,hs,(e,t)=>{if(!(e==null||t==null))return yi(yi({},e),{},{scale:t})}),tE=_([Te,gr,du,Tg],Jc),rE=_([tE],Zc);_((e,t,r)=>Qc(e,r),rE,(e,t)=>{if(!(e==null||t==null))return yi(yi({},e),{},{scale:t})});var nE=_([xe,Ji,Qi],(e,t,r)=>{switch(e){case"horizontal":return t.some(n=>n.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(n=>n.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),aE=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]};_([aE],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,a=e[0];for(var i of e){var o=Math.abs(i.coordinate-t);o<n&&(n=o,a=i)}return(r=a)===null||r===void 0?void 0:r.value}});var Bg=e=>e.options.defaultTooltipEventType,zg=e=>e.options.validateTooltipEventTypes;function Kg(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function va(e,t){var r=Bg(e),n=zg(e);return Kg(t,r,n)}function iE(e){return Z(t=>va(t,e))}var Vg=(e,t)=>{var r,n=Number(t);if(!(Zt(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0},sE=e=>e.tooltip.settings,ur={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},oE={itemInteraction:{click:ur,hover:ur},axisInteraction:{click:ur,hover:ur},keyboardInteraction:ur,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},Ug=at({name:"tooltip",initialState:oE,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(t.payload)},prepare:je()},replaceTooltipEntrySettings:{reducer(e,t){var{prev:r,next:n}=t.payload,a=Ct(e).tooltipItemPayloads.indexOf(r);a>-1&&(e.tooltipItemPayloads[a]=n)},prepare:je()},removeTooltipEntrySettings:{reducer(e,t){var r=Ct(e).tooltipItemPayloads.indexOf(t.payload);r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:je()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),{addTooltipEntrySettings:lE,replaceTooltipEntrySettings:cE,removeTooltipEntrySettings:uE,setTooltipSettingsState:dE,setActiveMouseOverItemIndex:qg,mouseLeaveItem:fE,mouseLeaveChart:Wg,setActiveClickItemIndex:mE,setMouseOverAxisIndex:Hg,setMouseClickAxisIndex:vE,setSyncInteraction:Rn,setKeyboardInteraction:bi}=Ug.actions,hE=Ug.reducer;function $m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Aa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$m(Object(r),!0).forEach(function(n){pE(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$m(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function pE(e,t,r){return(t=yE(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yE(e){var t=gE(e,"string");return typeof t=="symbol"?t:t+""}function gE(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function bE(e,t,r){return t==="axis"?r==="click"?e.axisInteraction.click:e.axisInteraction.hover:r==="click"?e.itemInteraction.click:e.itemInteraction.hover}function xE(e){return e.index!=null}var Gg=(e,t,r,n)=>{if(t==null)return ur;var a=bE(e,t,r);if(a==null)return ur;if(a.active)return a;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var i=e.settings.active===!0;if(xE(a)){if(i)return Aa(Aa({},a),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return Aa(Aa({},ur),{},{coordinate:a.coordinate})};function jE(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}function wE(e,t){var r=jE(e),n=t[0],a=t[1];if(r===void 0)return!1;var i=Math.min(n,a),o=Math.max(n,a);return r>=i&&r<=o}function CE(e,t,r){if(r==null||t==null)return!0;var n=ge(e,t);return n==null||!Ft(r)?!0:wE(n,r)}var Fn=(e,t,r,n)=>{var a=e?.index;if(a==null)return null;var i=Number(a);if(!me(i))return a;var o=0,l=1/0;t.length>0&&(l=t.length-1);var c=Math.max(o,Math.min(i,l)),d=t[c];return d==null||CE(d,r,n)?String(c):null},Xg=(e,t,r,n,a,i,o)=>{if(i!=null){var l=o[0],c=l?.getPosition(i);if(c!=null)return c;var d=a?.[Number(i)];if(d)switch(r){case"horizontal":return{x:d.coordinate,y:(n.top+t)/2};default:return{x:(n.left+e)/2,y:d.coordinate}}}},Yg=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var a;if(r==="hover"?a=e.itemInteraction.hover.graphicalItemId:a=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&a==null)return e.tooltipItemPayloads;if(a==null&&(n!=null||e.keyboardInteraction.active)){var i=e.tooltipItemPayloads[0];return i!=null?[i]:[]}return e.tooltipItemPayloads.filter(o=>{var l;return((l=o.settings)===null||l===void 0?void 0:l.graphicalItemId)===a})},Zg=e=>e.options.tooltipPayloadSearcher,wn=e=>e.tooltip;function Fm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Bm(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Fm(Object(r),!0).forEach(function(n){kE(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Fm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function kE(e,t,r){return(t=SE(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function SE(e){var t=NE(e,"string");return typeof t=="symbol"?t:t+""}function NE(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function PE(e){if(typeof e=="string"||typeof e=="number")return e}function AE(e){if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e}function OE(e){if(typeof e=="string"||typeof e=="number")return e;if(typeof e=="function")return t=>e(t)}function zm(e){if(typeof e=="string")return e}function EE(e){if(!(e==null||typeof e!="object")){var t="name"in e?PE(e.name):void 0,r="unit"in e?AE(e.unit):void 0,n="dataKey"in e?OE(e.dataKey):void 0,a="payload"in e?e.payload:void 0,i="color"in e?zm(e.color):void 0,o="fill"in e?zm(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:a,color:i,fill:o}}}function _E(e,t){return e??t}var Jg=(e,t,r,n,a,i,o)=>{if(!(t==null||i==null)){var{chartData:l,computedData:c,dataStartIndex:d,dataEndIndex:u}=r,m=[];return e.reduce((h,v)=>{var p,{dataDefinedOnItem:b,settings:y}=v,g=_E(b,l),j=Array.isArray(g)?uy(g,d,u):g,x=(p=y?.dataKey)!==null&&p!==void 0?p:n,C=y?.nameKey,w;if(n&&Array.isArray(j)&&!Array.isArray(j[0])&&o==="axis"?w=pp(j,n,a):w=i(j,t,c,C),Array.isArray(w))w.forEach(A=>{var S,N,E=EE(A),T=E?.name,O=E?.dataKey,I=E?.payload,z=Bm(Bm({},y),{},{name:T,unit:E?.unit,color:(S=E?.color)!==null&&S!==void 0?S:y?.color,fill:(N=E?.fill)!==null&&N!==void 0?N:y?.fill});h.push(wf({tooltipEntrySettings:z,dataKey:O,payload:I,value:ge(I,O),name:T==null?void 0:String(T)}))});else{var P;h.push(wf({tooltipEntrySettings:y,dataKey:x,payload:w,value:ge(w,x),name:(P=ge(w,C))!==null&&P!==void 0?P:y?.name}))}return h},m)}},gu=_([Ve,hg,Uc],dg),TE=_([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),ME=_([We,gn],eu),zr=_([TE,Ve,ME],tu,{memoizeOptions:{resultEqualityCheck:ms}}),IE=_([zr],e=>e.filter(Yc)),Qg=_([zr],ru,{memoizeOptions:{resultEqualityCheck:ms}}),DE=_([zr],e=>e.some(t=>!t.data)),$r=_([Qg,Ut],nu),RE=_([IE,Ut,Ve],lg),bu=_([$r,Ve,zr,Ut,DE,Qg],jg),eb=_([Ve],iu),LE=_([Ve],e=>e.allowDataOverflow),tb=_([eb,LE],Vy),$E=_([zr],e=>e.filter(Yc)),FE=_([RE,$E,ua,eg],Cg),BE=_([FE,Ut,We,tb],kg),zE=_([zr],gg),KE=_([$r,Ve,zE,vs,We,RA],lu,{memoizeOptions:{resultEqualityCheck:fs}}),VE=_([Sg,We,gn],jn),UE=_([VE,We],Ag),qE=_([Ng,We,gn],jn),WE=_([qE,We],Og),HE=_([Pg,We,gn],jn),GE=_([HE,We],Eg),XE=_([UE,GE,WE],gi),YE=_([Ve,eb,tb,BE,KE,XE,xe,We],cu),dn=_([Ve,xe,$r,bu,ua,We,YE],uu),ZE=_([dn,Ve,gu],fu),JE=_([Ve,dn,ZE,We],vu),rb=e=>{var t=We(e),r=gn(e),n=!1;return ma(e,t,r,n)},nb=_([Ve,rb],cs),QE=_([Ve,gu,JE,nb],Jc),ab=_([QE],Zc),e1=_([xe,bu,Ve,We],Rg),t1=_([xe,bu,Ve,We],Mg),r1=(e,t,r,n,a,i,o,l)=>{if(t){var{type:c}=t,d=er(e,l);if(n){var u=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,m=c==="category"&&n.bandwidth?n.bandwidth()/u:0;return m=l==="angleAxis"&&a!=null&&a?.length>=2?rt(a[0]-a[1])*2*m:m,d&&o?o.map((h,v)=>{var p=n.map(h);return me(p)?{coordinate:p+m,value:h,index:v,offset:m}:null}).filter(ut):n.domain().map((h,v)=>{var p=n.map(h);return me(p)?{coordinate:p+m,value:i?i[h]:h,index:v,offset:m}:null}).filter(ut)}}},ir=_([xe,Ve,gu,ab,rb,e1,t1,We],r1),xu=_([Bg,zg,sE],(e,t,r)=>Kg(r.shared,e,t)),ib=e=>e.tooltip.settings.trigger,ju=e=>e.tooltip.settings.defaultIndex,ha=_([wn,xu,ib,ju],Gg),fn=_([ha,$r,un,dn],Fn),sb=_([ir,fn],Vg),ob=_([ha],e=>{if(e)return e.dataKey}),lb=_([ha],e=>{if(e)return e.graphicalItemId}),cb=_([wn,xu,ib,ju],Yg),n1=_([tr,rr,xe,qe,ir,ju,cb],Xg),a1=_([ha,n1],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),i1=_([ha],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),s1=_([cb,fn,Ut,un,sb,Zg,xu],Jg),o1=_([s1],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function Km(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Vm(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Km(Object(r),!0).forEach(function(n){l1(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Km(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function l1(e,t,r){return(t=c1(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c1(e){var t=u1(e,"string");return typeof t=="symbol"?t:t+""}function u1(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var d1=()=>Z(Ve),f1=()=>{var e=d1(),t=Z(ir),r=Z(ab);return si(!e||!r?void 0:Vm(Vm({},e),{},{scale:r}),t)};function Um(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function qr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Um(Object(r),!0).forEach(function(n){m1(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Um(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function m1(e,t,r){return(t=v1(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function v1(e){var t=h1(e,"string");return typeof t=="symbol"?t:t+""}function h1(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var p1=(e,t,r,n)=>{var a=t.find(i=>i&&i.index===r);if(a){if(e==="horizontal")return{x:a.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:a.coordinate}}return{x:0,y:0}},y1=(e,t,r,n)=>{var a=t.find(d=>d&&d.index===r);if(a){if(e==="centric"){var i=a.coordinate,{radius:o}=n;return qr(qr(qr({},n),Ie(n.cx,n.cy,o,i)),{},{angle:i,radius:o})}var l=a.coordinate,{angle:c}=n;return qr(qr(qr({},n),Ie(n.cx,n.cy,l,c)),{},{angle:c,radius:l})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function g1(e,t){var{relativeX:r,relativeY:n}=e;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}var ub=(e,t,r,n,a)=>{var i,o=(i=t?.length)!==null&&i!==void 0?i:0;if(o<=1||e==null)return 0;if(n==="angleAxis"&&a!=null&&Math.abs(Math.abs(a[1]-a[0])-360)<=1e-6)for(var l=0;l<o;l++){var c,d,u,m,h,v=l>0?(c=r[l-1])===null||c===void 0?void 0:c.coordinate:(d=r[o-1])===null||d===void 0?void 0:d.coordinate,p=(u=r[l])===null||u===void 0?void 0:u.coordinate,b=l>=o-1?(m=r[0])===null||m===void 0?void 0:m.coordinate:(h=r[l+1])===null||h===void 0?void 0:h.coordinate,y=void 0;if(!(v==null||p==null||b==null))if(rt(p-v)!==rt(b-p)){var g=[];if(rt(b-p)===rt(a[1]-a[0])){y=b;var j=p+a[1]-a[0];g[0]=Math.min(j,(j+v)/2),g[1]=Math.max(j,(j+v)/2)}else{y=v;var x=b+a[1]-a[0];g[0]=Math.min(p,(x+p)/2),g[1]=Math.max(p,(x+p)/2)}var C=[Math.min(p,(y+p)/2),Math.max(p,(y+p)/2)];if(e>C[0]&&e<=C[1]||e>=g[0]&&e<=g[1]){var w;return(w=r[l])===null||w===void 0?void 0:w.index}}else{var P=Math.min(v,b),A=Math.max(v,b);if(e>(P+p)/2&&e<=(A+p)/2){var S;return(S=r[l])===null||S===void 0?void 0:S.index}}}else if(t)for(var N=0;N<o;N++){var E=t[N];if(E!=null){var T=t[N+1],O=t[N-1];if(N===0&&T!=null&&e<=(E.coordinate+T.coordinate)/2||N===o-1&&O!=null&&e>(E.coordinate+O.coordinate)/2||N>0&&N<o-1&&O!=null&&T!=null&&e>(E.coordinate+O.coordinate)/2&&e<=(E.coordinate+T.coordinate)/2)return E.index}}return-1},b1=()=>Z(Uc),wu=(e,t)=>t,db=(e,t,r)=>r,Cu=(e,t,r,n)=>n,x1=_(ir,e=>zi(e,t=>t.coordinate)),ku=_([wn,wu,db,Cu],Gg),Su=_([ku,$r,un,dn],Fn),j1=(e,t,r)=>{if(t!=null){var n=wn(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},fb=_([wn,wu,db,Cu],Yg),xi=_([tr,rr,xe,qe,ir,Cu,fb],Xg),w1=_([ku,xi],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),mb=_([ir,Su],Vg),C1=_([fb,Su,Ut,un,mb,Zg,wu],Jg),k1=_([ku,Su],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),S1=(e,t,r,n,a,i,o)=>{if(!(!e||!r||!n||!a)&&g1(e,o)){var l=ZS(e,t),c=ub(l,i,a,r,n),d=p1(t,a,c,e);return{activeIndex:String(c),activeCoordinate:d}}},N1=(e,t,r,n,a,i,o)=>{if(!(!e||!n||!a||!i||!r)){var l=kA(e,r);if(l){var c=JS(l,t),d=ub(c,o,i,n,a),u=y1(t,i,d,l);return{activeIndex:String(d),activeCoordinate:u}}}},P1=(e,t,r,n,a,i,o,l)=>{if(!(!e||!t||!n||!a||!i))return t==="horizontal"||t==="vertical"?S1(e,t,n,a,i,o,l):N1(e,t,r,n,a,i,o)},A1=_(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),O1=_(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(Ze)),r=Array.from(new Set(t));return r.sort((n,a)=>n-a)},{memoizeOptions:{resultEqualityCheck:XA}});function qm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Wm(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?qm(Object(r),!0).forEach(function(n){E1(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):qm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function E1(e,t,r){return(t=_1(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _1(e){var t=T1(e,"string");return typeof t=="symbol"?t:t+""}function T1(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var M1={},I1={zIndexMap:Object.values(Ze).reduce((e,t)=>Wm(Wm({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),M1)},D1=new Set(Object.values(Ze));function R1(e){return D1.has(e)}var vb=at({name:"zIndex",initialState:I1,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var{zIndex:r}=t.payload;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:je()},unregisterZIndexPortal:{reducer:(e,t)=>{var{zIndex:r}=t.payload;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!R1(r)&&delete e.zIndexMap[r])},prepare:je()},registerZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:r,element:n,isPanorama:a}=t.payload;e.zIndexMap[r]?a?e.zIndexMap[r].panoramaElement=n:e.zIndexMap[r].element=n:e.zIndexMap[r]={consumers:0,element:a?void 0:n,panoramaElement:a?n:void 0}},prepare:je()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:r}=t.payload;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:je()}}}),{registerZIndexPortal:L1,unregisterZIndexPortal:Do,registerZIndexPortalElement:$1,unregisterZIndexPortalElement:F1}=vb.actions,B1=vb.reducer;function Tt(e){var{zIndex:t,children:r}=e,n=vN(),a=n&&t!==void 0&&t!==0,i=dt(),o=f.useRef(void 0),l=f.useRef(new Set),c=pe(),d=Z(m=>A1(m,t,i));if(f.useLayoutEffect(()=>{if(!a){var m=l.current;m.forEach(v=>{c(Do({zIndex:v}))}),m.clear(),o.current=void 0;return}if(l.current.has(t)||(c(L1({zIndex:t})),l.current.add(t)),d){o.current=d;var h=l.current;h.forEach(v=>{v!==t&&(c(Do({zIndex:v})),h.delete(v))})}},[c,t,a,d]),f.useLayoutEffect(()=>{var m=l.current;return()=>{m.forEach(h=>{c(Do({zIndex:h}))}),m.clear()}},[c]),!a)return r;var u=d??o.current;return u?Jl.createPortal(r,u):null}function Ll(){return Ll=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ll.apply(null,arguments)}function Hm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Oa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Hm(Object(r),!0).forEach(function(n){z1(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Hm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function z1(e,t,r){return(t=K1(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function K1(e){var t=V1(e,"string");return typeof t=="symbol"?t:t+""}function V1(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function U1(e){var{cursor:t,cursorComp:r,cursorProps:n}=e;return f.isValidElement(t)?f.cloneElement(t,n):f.createElement(r,n)}function q1(e){var t,{coordinate:r,payload:n,index:a,offset:i,tooltipAxisBandSize:o,layout:l,cursor:c,tooltipEventType:d,chartName:u}=e,m=r,h=n,v=a;if(!c||!m||u!=="ScatterChart"&&d!=="axis")return null;var p,b,y;if(u==="ScatterChart")p=m,b=FP,y=Ze.cursorLine;else if(u==="BarChart")p=BP(l,m,i,o),b=Ly,y=Ze.cursorRectangle;else if(l==="radial"&&gp(m)){var{cx:g,cy:j,radius:x,startAngle:C,endAngle:w}=Fy(m);p={cx:g,cy:j,startAngle:C,endAngle:w,innerRadius:x,outerRadius:x},b=zy,y=Ze.cursorLine}else p={points:AA(l,m,i)},b=Bc,y=Ze.cursorLine;var P=typeof c=="object"&&"className"in c?c.className:void 0,A=Oa(Oa(Oa(Oa({stroke:"#ccc",pointerEvents:"none"},i),p),an(c)),{},{payload:h,payloadIndex:v,className:ve("recharts-tooltip-cursor",P)});return f.createElement(Tt,{zIndex:(t=e.zIndex)!==null&&t!==void 0?t:y},f.createElement(U1,{cursor:c,cursorComp:b,cursorProps:A}))}function W1(e){var t=f1(),r=gy(),n=hn(),a=b1();return t==null||r==null||n==null||a==null?null:f.createElement(q1,Ll({},e,{offset:r,layout:n,tooltipAxisBandSize:t,chartName:a}))}var hb=f.createContext(null),H1=()=>f.useContext(hb),Ro={exports:{}},Gm;function G1(){return Gm||(Gm=1,(function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(r=!1));function a(c,d,u){this.fn=c,this.context=d,this.once=u||!1}function i(c,d,u,m,h){if(typeof u!="function")throw new TypeError("The listener must be a function");var v=new a(u,m||c,h),p=r?r+d:d;return c._events[p]?c._events[p].fn?c._events[p]=[c._events[p],v]:c._events[p].push(v):(c._events[p]=v,c._eventsCount++),c}function o(c,d){--c._eventsCount===0?c._events=new n:delete c._events[d]}function l(){this._events=new n,this._eventsCount=0}l.prototype.eventNames=function(){var d=[],u,m;if(this._eventsCount===0)return d;for(m in u=this._events)t.call(u,m)&&d.push(r?m.slice(1):m);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(u)):d},l.prototype.listeners=function(d){var u=r?r+d:d,m=this._events[u];if(!m)return[];if(m.fn)return[m.fn];for(var h=0,v=m.length,p=new Array(v);h<v;h++)p[h]=m[h].fn;return p},l.prototype.listenerCount=function(d){var u=r?r+d:d,m=this._events[u];return m?m.fn?1:m.length:0},l.prototype.emit=function(d,u,m,h,v,p){var b=r?r+d:d;if(!this._events[b])return!1;var y=this._events[b],g=arguments.length,j,x;if(y.fn){switch(y.once&&this.removeListener(d,y.fn,void 0,!0),g){case 1:return y.fn.call(y.context),!0;case 2:return y.fn.call(y.context,u),!0;case 3:return y.fn.call(y.context,u,m),!0;case 4:return y.fn.call(y.context,u,m,h),!0;case 5:return y.fn.call(y.context,u,m,h,v),!0;case 6:return y.fn.call(y.context,u,m,h,v,p),!0}for(x=1,j=new Array(g-1);x<g;x++)j[x-1]=arguments[x];y.fn.apply(y.context,j)}else{var C=y.length,w;for(x=0;x<C;x++)switch(y[x].once&&this.removeListener(d,y[x].fn,void 0,!0),g){case 1:y[x].fn.call(y[x].context);break;case 2:y[x].fn.call(y[x].context,u);break;case 3:y[x].fn.call(y[x].context,u,m);break;case 4:y[x].fn.call(y[x].context,u,m,h);break;default:if(!j)for(w=1,j=new Array(g-1);w<g;w++)j[w-1]=arguments[w];y[x].fn.apply(y[x].context,j)}}return!0},l.prototype.on=function(d,u,m){return i(this,d,u,m,!1)},l.prototype.once=function(d,u,m){return i(this,d,u,m,!0)},l.prototype.removeListener=function(d,u,m,h){var v=r?r+d:d;if(!this._events[v])return this;if(!u)return o(this,v),this;var p=this._events[v];if(p.fn)p.fn===u&&(!h||p.once)&&(!m||p.context===m)&&o(this,v);else{for(var b=0,y=[],g=p.length;b<g;b++)(p[b].fn!==u||h&&!p[b].once||m&&p[b].context!==m)&&y.push(p[b]);y.length?this._events[v]=y.length===1?y[0]:y:o(this,v)}return this},l.prototype.removeAllListeners=function(d){var u;return d?(u=r?r+d:d,this._events[u]&&o(this,u)):(this._events=new n,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=r,l.EventEmitter=l,e.exports=l})(Ro)),Ro.exports}var X1=G1();const Y1=mn(X1);var Zn=new Y1,$l="recharts.syncEvent.tooltip",Xm="recharts.syncEvent.brush",pb=(e,t)=>{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!Zt(r))return e[r]}},Z1={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},yb=at({name:"options",initialState:Z1,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),J1=yb.reducer,{createEventEmitter:Q1}=yb.actions;function e_(e){return e.tooltip.syncInteraction}var t_={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},gb=at({name:"chartData",initialState:t_,reducers:{setChartData(e,t){if(e.chartData=t.payload,t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var{startIndex:r,endIndex:n}=t.payload;r!=null&&(e.dataStartIndex=r),n!=null&&(e.dataEndIndex=n)}}}),{setChartData:Ym,setDataStartEndIndexes:r_,setComputedData:gB}=gb.actions,n_=gb.reducer,a_=["x","y"];function Zm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Wr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Zm(Object(r),!0).forEach(function(n){i_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Zm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function i_(e,t,r){return(t=s_(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s_(e){var t=o_(e,"string");return typeof t=="symbol"?t:t+""}function o_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function l_(e,t){if(e==null)return{};var r,n,a=c_(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function c_(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function u_(){var e=Z(qc),t=Z(Wc),r=pe(),n=Z(tg),a=Z(ir),i=hn(),o=rs(),l=Z(c=>c.rootProps.className);f.useEffect(()=>{if(e==null)return ta;var c=(d,u,m)=>{if(t!==m&&e===d){if(u.payload.active===!1){r(Rn({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var h;if(o&&u!==null&&u!==void 0&&(h=u.payload)!==null&&h!==void 0&&h.coordinate&&u.payload.sourceViewBox){var v=u.payload.coordinate,{x:p,y:b}=v,y=l_(v,a_),{x:g,y:j,width:x,height:C}=u.payload.sourceViewBox,w=Wr(Wr({},y),{},{x:o.x+(x?(p-g)/x:0)*o.width,y:o.y+(C?(b-j)/C:0)*o.height});r(Wr(Wr({},u),{},{payload:Wr(Wr({},u.payload),{},{coordinate:w})}))}else r(u);return}if(a!=null){var P;if(typeof n=="function"){var A={activeTooltipIndex:u.payload.index==null?void 0:Number(u.payload.index),isTooltipActive:u.payload.active,activeIndex:u.payload.index==null?void 0:Number(u.payload.index),activeLabel:u.payload.label,activeDataKey:u.payload.dataKey,activeCoordinate:u.payload.coordinate},S=n(a,A);P=a[S]}else n==="value"&&(P=a.find(V=>String(V.value)===u.payload.label));var{coordinate:N}=u.payload;if(N==null||o==null){r(Rn({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(P==null){r(Rn({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:u.payload.sourceViewBox,graphicalItemId:void 0}));return}var{x:E,y:T}=N,O=Math.min(E,o.x+o.width),I=Math.min(T,o.y+o.height),z={x:i==="horizontal"?P.coordinate:O,y:i==="horizontal"?I:P.coordinate},D=Rn({active:u.payload.active,coordinate:z,dataKey:u.payload.dataKey,index:String(P.index),label:u.payload.label,sourceViewBox:u.payload.sourceViewBox,graphicalItemId:u.payload.graphicalItemId});r(D)}}};return Zn.on($l,c),()=>{Zn.off($l,c)}},[l,r,t,e,n,a,i,o])}function d_(){var e=Z(qc),t=Z(Wc),r=pe();f.useEffect(()=>{if(e==null)return ta;var n=(a,i,o)=>{t!==o&&e===a&&r(r_(i))};return Zn.on(Xm,n),()=>{Zn.off(Xm,n)}},[r,t,e])}function f_(){var e=pe();f.useEffect(()=>{e(Q1())},[e]),u_(),d_()}function m_(e,t,r,n,a,i){var o=Z(p=>j1(p,e,t)),l=Z(lb),c=Z(Wc),d=Z(qc),u=Z(tg),m=Z(e_),h=m?.sourceViewBox!=null,v=rs();f.useEffect(()=>{if(!h&&d!=null&&c!=null){var p=Rn({active:i,coordinate:r,dataKey:o,index:a,label:typeof n=="number"?String(n):n,sourceViewBox:v,graphicalItemId:l});Zn.emit($l,d,p,c)}},[h,r,o,l,a,n,c,d,u,i,v])}function Jm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Qm(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Jm(Object(r),!0).forEach(function(n){v_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Jm(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function v_(e,t,r){return(t=h_(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h_(e){var t=p_(e,"string");return typeof t=="symbol"?t:t+""}function p_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function y_(e){return e.dataKey}function g_(e,t){return f.isValidElement(e)?f.cloneElement(e,t):typeof e=="function"?f.createElement(e,t):f.createElement(vP,t)}var ev=[],b_={allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",axisId:0,contentStyle:{},cursor:!0,filterNull:!0,includeHidden:!1,isAnimationActive:"auto",itemSorter:"name",itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,wrapperStyle:{}};function bb(e){var t,r,n=Ke(e,b_),{active:a,allowEscapeViewBox:i,animationDuration:o,animationEasing:l,content:c,filterNull:d,isAnimationActive:u,offset:m,payloadUniqBy:h,position:v,reverseDirection:p,useTranslate3d:b,wrapperStyle:y,cursor:g,shared:j,trigger:x,defaultIndex:C,portal:w,axisId:P}=n,A=pe(),S=typeof C=="number"?String(C):C;f.useEffect(()=>{A(dE({shared:j,trigger:x,axisId:P,active:a,defaultIndex:S}))},[A,j,x,P,a,S]);var N=rs(),E=Ty(),T=iE(j),{activeIndex:O,isActive:I}=(t=Z(oe=>k1(oe,T,x,S)))!==null&&t!==void 0?t:{},z=Z(oe=>C1(oe,T,x,S)),D=Z(oe=>mb(oe,T,x,S)),V=Z(oe=>w1(oe,T,x,S)),B=z,W=H1(),K=(r=a??I)!==null&&r!==void 0?r:!1,[te,G]=Ip([B,K]),M=T==="axis"?D:void 0;m_(T,x,V,M,O,K);var q=w??W;if(q==null||N==null||T==null)return null;var H=B??ev;K||(H=ev),d&&H.length&&(H=Op(H.filter(oe=>oe.value!=null&&(oe.hide!==!0||n.includeHidden)),h,y_));var re=H.length>0,ae=Qm(Qm({},n),{},{payload:H,label:M,active:K,activeIndex:O,coordinate:V,accessibilityLayer:E}),ye=f.createElement(SP,{allowEscapeViewBox:i,animationDuration:o,animationEasing:l,isAnimationActive:u,active:K,coordinate:V,hasPayload:re,offset:m,position:v,reverseDirection:p,useTranslate3d:b,viewBox:N,wrapperStyle:y,lastBoundingBox:te,innerRef:G,hasPortalFromProps:!!w},g_(c,ae));return f.createElement(f.Fragment,null,Jl.createPortal(ye,q),K&&f.createElement(W1,{cursor:g,tooltipEventType:T,coordinate:V,payload:H,index:O}))}var gs=e=>null;gs.displayName="Cell";function x_(e,t,r){return(t=j_(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function j_(e){var t=w_(e,"string");return typeof t=="symbol"?t:t+""}function w_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}class C_{constructor(t){x_(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}}function tv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function k_(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?tv(Object(r),!0).forEach(function(n){S_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):tv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function S_(e,t,r){return(t=N_(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function N_(e){var t=P_(e,"string");return typeof t=="symbol"?t:t+""}function P_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var A_={cacheSize:2e3,enableCache:!0},xb=k_({},A_),rv=new C_(xb.cacheSize),O_={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},nv="recharts_measurement_span";function E_(e,t){var r=t.fontSize||"",n=t.fontFamily||"",a=t.fontWeight||"",i=t.fontStyle||"",o=t.letterSpacing||"",l=t.textTransform||"";return"".concat(e,"|").concat(r,"|").concat(n,"|").concat(a,"|").concat(i,"|").concat(o,"|").concat(l)}var av=(e,t)=>{try{var r=document.getElementById(nv);r||(r=document.createElement("span"),r.setAttribute("id",nv),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,O_,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},Bn=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||la.isSsr)return{width:0,height:0};if(!xb.enableCache)return av(t,r);var n=E_(t,r),a=rv.get(n);if(a)return a;var i=av(t,r);return rv.set(n,i),i},jb;function __(e,t,r){return(t=T_(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function T_(e){var t=M_(e,"string");return typeof t=="symbol"?t:t+""}function M_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var iv=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,sv=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,I_=/^(px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q)$/,D_=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,R_={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},L_=["cm","mm","pt","pc","in","Q","px"];function $_(e){return L_.includes(e)}var Qr="NaN";function F_(e,t){return e*R_[t]}class Ye{static parse(t){var r,[,n,a]=(r=D_.exec(t))!==null&&r!==void 0?r:[];return n==null?Ye.NaN:new Ye(parseFloat(n),a??"")}constructor(t,r){this.num=t,this.unit=r,this.num=t,this.unit=r,Zt(t)&&(this.unit=""),r!==""&&!I_.test(r)&&(this.num=NaN,this.unit=""),$_(r)&&(this.num=F_(t,r),this.unit="px")}add(t){return this.unit!==t.unit?new Ye(NaN,""):new Ye(this.num+t.num,this.unit)}subtract(t){return this.unit!==t.unit?new Ye(NaN,""):new Ye(this.num-t.num,this.unit)}multiply(t){return this.unit!==""&&t.unit!==""&&this.unit!==t.unit?new Ye(NaN,""):new Ye(this.num*t.num,this.unit||t.unit)}divide(t){return this.unit!==""&&t.unit!==""&&this.unit!==t.unit?new Ye(NaN,""):new Ye(this.num/t.num,this.unit||t.unit)}toString(){return"".concat(this.num).concat(this.unit)}isNaN(){return Zt(this.num)}}jb=Ye;__(Ye,"NaN",new jb(NaN,""));function wb(e){if(e==null||e.includes(Qr))return Qr;for(var t=e;t.includes("*")||t.includes("/");){var r,[,n,a,i]=(r=iv.exec(t))!==null&&r!==void 0?r:[],o=Ye.parse(n??""),l=Ye.parse(i??""),c=a==="*"?o.multiply(l):o.divide(l);if(c.isNaN())return Qr;t=t.replace(iv,c.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var d,[,u,m,h]=(d=sv.exec(t))!==null&&d!==void 0?d:[],v=Ye.parse(u??""),p=Ye.parse(h??""),b=m==="+"?v.add(p):v.subtract(p);if(b.isNaN())return Qr;t=t.replace(sv,b.toString())}return t}var ov=/\(([^()]*)\)/;function B_(e){for(var t=e,r;(r=ov.exec(t))!=null;){var[,n]=r;t=t.replace(ov,wb(n))}return t}function z_(e){var t=e.replace(/\s+/g,"");return t=B_(t),t=wb(t),t}function K_(e){try{return z_(e)}catch{return Qr}}function Lo(e){var t=K_(e.slice(5,-1));return t===Qr?"":t}var V_=["x","y","lineHeight","capHeight","fill","scaleToFit","textAnchor","verticalAnchor"],U_=["dx","dy","angle","className","breakAll"];function Fl(){return Fl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Fl.apply(null,arguments)}function lv(e,t){if(e==null)return{};var r,n,a=q_(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function q_(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var Cb=/[ \f\n\r\t\v\u2028\u2029]+/,kb=e=>{var{children:t,breakAll:r,style:n}=e;try{var a=[];ze(t)||(r?a=t.toString().split(""):a=t.toString().split(Cb));var i=a.map(l=>({word:l,width:Bn(l,n).width})),o=r?0:Bn(" ",n).width;return{wordsWithComputedWidth:i,spaceWidth:o}}catch{return null}};function Sb(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function W_(e){return ze(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var Nb=(e,t,r,n)=>e.reduce((a,i)=>{var{word:o,width:l}=i,c=a[a.length-1];if(c&&l!=null&&(t==null||n||c.width+l+r<Number(t)))c.words.push(o),c.width+=l+r;else{var d={words:[o],width:l};a.push(d)}return a},[]),Pb=e=>e.reduce((t,r)=>t.width>r.width?t:r),H_="…",cv=(e,t,r,n,a,i,o,l)=>{var c=e.slice(0,t),d=kb({breakAll:r,style:n,children:c+H_});if(!d)return[!1,[]];var u=Nb(d.wordsWithComputedWidth,i,o,l),m=u.length>a||Pb(u).width>Number(i);return[m,u]},G_=(e,t,r,n,a)=>{var{maxLines:i,children:o,style:l,breakAll:c}=e,d=ee(i),u=String(o),m=Nb(t,n,r,a);if(!d||a)return m;var h=m.length>i||Pb(m).width>Number(n);if(!h)return m;for(var v=0,p=u.length-1,b=0,y;v<=p&&b<=u.length-1;){var g=Math.floor((v+p)/2),j=g-1,[x,C]=cv(u,j,c,l,i,n,r,a),[w]=cv(u,g,c,l,i,n,r,a);if(!x&&!w&&(v=g+1),x&&w&&(p=g-1),!x&&w){y=C;break}b++}return y||m},uv=e=>{var t=ze(e)?[]:e.toString().split(Cb);return[{words:t,width:void 0}]},X_=e=>{var{width:t,scaleToFit:r,children:n,style:a,breakAll:i,maxLines:o}=e;if((t||r)&&!la.isSsr){var l,c,d=kb({breakAll:i,children:n,style:a});if(d){var{wordsWithComputedWidth:u,spaceWidth:m}=d;l=u,c=m}else return uv(n);return G_({breakAll:i,children:n,maxLines:o,style:a},l,c,t,!!r)}return uv(n)},Ab="#808080",Y_={angle:0,breakAll:!1,capHeight:"0.71em",fill:Ab,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},bs=f.forwardRef((e,t)=>{var r=Ke(e,Y_),{x:n,y:a,lineHeight:i,capHeight:o,fill:l,scaleToFit:c,textAnchor:d,verticalAnchor:u}=r,m=lv(r,V_),h=f.useMemo(()=>X_({breakAll:m.breakAll,children:m.children,maxLines:m.maxLines,scaleToFit:c,style:m.style,width:m.width}),[m.breakAll,m.children,m.maxLines,c,m.style,m.width]),{dx:v,dy:p,angle:b,className:y,breakAll:g}=m,j=lv(m,U_);if(!Bt(n)||!Bt(a)||h.length===0)return null;var x=Number(n)+(ee(v)?v:0),C=Number(a)+(ee(p)?p:0);if(!me(x)||!me(C))return null;var w;switch(u){case"start":w=Lo("calc(".concat(o,")"));break;case"middle":w=Lo("calc(".concat((h.length-1)/2," * -").concat(i," + (").concat(o," / 2))"));break;default:w=Lo("calc(".concat(h.length-1," * -").concat(i,")"));break}var P=[],A=h[0];if(c&&A!=null){var S=A.width,{width:N}=m;P.push("scale(".concat(ee(N)&&ee(S)?N/S:1,")"))}return b&&P.push("rotate(".concat(b,", ").concat(x,", ").concat(C,")")),P.length&&(j.transform=P.join(" ")),f.createElement("text",Fl({},st(j),{ref:t,x,y:C,className:ve("recharts-text",y),textAnchor:d,fill:l.includes("url")?Ab:l}),h.map((E,T)=>{var O=E.words.join(g?"":" ");return f.createElement("tspan",{x,dy:T===0?w:i,key:"".concat(O,"-").concat(T)},O)}))});bs.displayName="Text";function dv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Rt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?dv(Object(r),!0).forEach(function(n){Z_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):dv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Z_(e,t,r){return(t=J_(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function J_(e){var t=Q_(e,"string");return typeof t=="symbol"?t:t+""}function Q_(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var eT=e=>{var{viewBox:t,position:r,offset:n=0,parentViewBox:a}=e,{x:i,y:o,height:l,upperWidth:c,lowerWidth:d}=Ic(t),u=i,m=i+(c-d)/2,h=(u+m)/2,v=(c+d)/2,p=u+c/2,b=l>=0?1:-1,y=b*n,g=b>0?"end":"start",j=b>0?"start":"end",x=c>=0?1:-1,C=x*n,w=x>0?"end":"start",P=x>0?"start":"end",A=a;if(r==="top"){var S={x:u+c/2,y:o-y,horizontalAnchor:"middle",verticalAnchor:g};return A&&(S.height=Math.max(o-A.y,0),S.width=c),S}if(r==="bottom"){var N={x:m+d/2,y:o+l+y,horizontalAnchor:"middle",verticalAnchor:j};return A&&(N.height=Math.max(A.y+A.height-(o+l),0),N.width=d),N}if(r==="left"){var E={x:h-C,y:o+l/2,horizontalAnchor:w,verticalAnchor:"middle"};return A&&(E.width=Math.max(E.x-A.x,0),E.height=l),E}if(r==="right"){var T={x:h+v+C,y:o+l/2,horizontalAnchor:P,verticalAnchor:"middle"};return A&&(T.width=Math.max(A.x+A.width-T.x,0),T.height=l),T}var O=A?{width:v,height:l}:{};return r==="insideLeft"?Rt({x:h+C,y:o+l/2,horizontalAnchor:P,verticalAnchor:"middle"},O):r==="insideRight"?Rt({x:h+v-C,y:o+l/2,horizontalAnchor:w,verticalAnchor:"middle"},O):r==="insideTop"?Rt({x:u+c/2,y:o+y,horizontalAnchor:"middle",verticalAnchor:j},O):r==="insideBottom"?Rt({x:m+d/2,y:o+l-y,horizontalAnchor:"middle",verticalAnchor:g},O):r==="insideTopLeft"?Rt({x:u+C,y:o+y,horizontalAnchor:P,verticalAnchor:j},O):r==="insideTopRight"?Rt({x:u+c-C,y:o+y,horizontalAnchor:w,verticalAnchor:j},O):r==="insideBottomLeft"?Rt({x:m+C,y:o+l-y,horizontalAnchor:P,verticalAnchor:g},O):r==="insideBottomRight"?Rt({x:m+d-C,y:o+l-y,horizontalAnchor:w,verticalAnchor:g},O):r&&typeof r=="object"&&(ee(r.x)||fl(r.x))&&(ee(r.y)||fl(r.y))?Rt({x:i+ht(r.x,v),y:o+ht(r.y,l),horizontalAnchor:"end",verticalAnchor:"end"},O):Rt({x:p,y:o+l/2,horizontalAnchor:"middle",verticalAnchor:"middle"},O)},tT=["labelRef"],rT=["content"];function fv(e,t){if(e==null)return{};var r,n,a=nT(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function nT(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function mv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ln(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?mv(Object(r),!0).forEach(function(n){aT(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function aT(e,t,r){return(t=iT(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function iT(e){var t=sT(e,"string");return typeof t=="symbol"?t:t+""}function sT(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Wt(){return Wt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Wt.apply(null,arguments)}var Ob=f.createContext(null),oT=e=>{var{x:t,y:r,upperWidth:n,lowerWidth:a,width:i,height:o,children:l}=e,c=f.useMemo(()=>({x:t,y:r,upperWidth:n,lowerWidth:a,width:i,height:o}),[t,r,n,a,i,o]);return f.createElement(Ob.Provider,{value:c},l)},Eb=()=>{var e=f.useContext(Ob),t=rs();return e||(t?Ic(t):void 0)},lT=f.createContext(null),cT=()=>{var e=f.useContext(lT),t=Z(sg);return e||t},uT=e=>{var{value:t,formatter:r}=e,n=ze(e.children)?t:e.children;return typeof r=="function"?r(n):n},Nu=e=>e!=null&&typeof e=="function",dT=(e,t)=>{var r=rt(t-e),n=Math.min(Math.abs(t-e),360);return r*n},fT=(e,t,r,n,a)=>{var{offset:i,className:o}=e,{cx:l,cy:c,innerRadius:d,outerRadius:u,startAngle:m,endAngle:h,clockWise:v}=a,p=(d+u)/2,b=dT(m,h),y=b>=0?1:-1,g,j;switch(t){case"insideStart":g=m+y*i,j=v;break;case"insideEnd":g=h-y*i,j=!v;break;case"end":g=h+y*i,j=v;break;default:throw new Error("Unsupported position ".concat(t))}j=b<=0?j:!j;var x=Ie(l,c,p,g),C=Ie(l,c,p,g+(j?1:-1)*359),w="M".concat(x.x,",").concat(x.y,`
|
|
90
90
|
A`).concat(p,",").concat(p,",0,1,").concat(j?0:1,`,
|
|
91
|
-
`).concat(C.x,",").concat(C.y),P=ze(e.id)?Kn("recharts-radial-line-"):e.id;return f.createElement("text",Wt({},n,{dominantBaseline:"central",className:ve("recharts-radial-bar-label",o)}),f.createElement("defs",null,f.createElement("path",{id:P,d:w})),f.createElement("textPath",{xlinkHref:"#".concat(P)},r))},
|
|
91
|
+
`).concat(C.x,",").concat(C.y),P=ze(e.id)?Kn("recharts-radial-line-"):e.id;return f.createElement("text",Wt({},n,{dominantBaseline:"central",className:ve("recharts-radial-bar-label",o)}),f.createElement("defs",null,f.createElement("path",{id:P,d:w})),f.createElement("textPath",{xlinkHref:"#".concat(P)},r))},mT=(e,t,r)=>{var{cx:n,cy:a,innerRadius:i,outerRadius:o,startAngle:l,endAngle:c}=e,d=(l+c)/2;if(r==="outside"){var{x:u,y:m}=Ie(n,a,o+t,d);return{x:u,y:m,textAnchor:u>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"end"};var h=(i+o)/2,{x:v,y:p}=Ie(n,a,h,d);return{x:v,y:p,textAnchor:"middle",verticalAnchor:"middle"}},Ka=e=>e!=null&&"cx"in e&&ee(e.cx),vT={angle:0,offset:5,zIndex:Ze.label,position:"middle",textBreakAll:!1};function hT(e){if(!Ka(e))return e;var{cx:t,cy:r,outerRadius:n}=e,a=n*2;return{x:t-n,y:r-n,width:a,upperWidth:a,lowerWidth:a,height:a}}function cr(e){var t=Ke(e,vT),{viewBox:r,parentViewBox:n,position:a,value:i,children:o,content:l,className:c="",textBreakAll:d,labelRef:u}=t,m=cT(),h=Eb(),v=a==="center"?h:m??h,p,b,y;r==null?p=v:Ka(r)?p=r:p=Ic(r);var g=hT(p);if(!p||ze(i)&&ze(o)&&!f.isValidElement(l)&&typeof l!="function")return null;var j=Ln(Ln({},t),{},{viewBox:p});if(f.isValidElement(l)){var{labelRef:x}=j,C=fv(j,tT);return f.cloneElement(l,C)}if(typeof l=="function"){var{content:w}=j,P=fv(j,rT);if(b=f.createElement(l,P),f.isValidElement(b))return b}else b=uT(t);var A=st(t);if(Ka(p)){if(a==="insideStart"||a==="insideEnd"||a==="end")return fT(t,a,b,A,p);y=mT(p,t.offset,t.position)}else{if(!g)return null;var S=eT({viewBox:g,position:a,offset:t.offset,parentViewBox:Ka(n)?void 0:n});y=Ln(Ln({x:S.x,y:S.y,textAnchor:S.horizontalAnchor,verticalAnchor:S.verticalAnchor},S.width!==void 0?{width:S.width}:{}),S.height!==void 0?{height:S.height}:{})}return f.createElement(Tt,{zIndex:t.zIndex},f.createElement(bs,Wt({ref:u,className:ve("recharts-label",c)},A,y,{textAnchor:Sb(A.textAnchor)?A.textAnchor:y.textAnchor,breakAll:d}),b))}cr.displayName="Label";var pT=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?f.createElement(cr,Wt({key:"label-implicit"},n)):Bt(e)?f.createElement(cr,Wt({key:"label-implicit",value:e},n)):f.isValidElement(e)?e.type===cr?f.cloneElement(e,Ln({key:"label-implicit"},n)):f.createElement(cr,Wt({key:"label-implicit",content:e},n)):Nu(e)?f.createElement(cr,Wt({key:"label-implicit",content:e},n)):e&&typeof e=="object"?f.createElement(cr,Wt({},e,{key:"label-implicit"},n)):null};function yT(e){var{label:t,labelRef:r}=e,n=Eb();return pT(t,n,r)||null}var gT=["valueAccessor"],bT=["dataKey","clockWise","id","textBreakAll","zIndex"];function ji(){return ji=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ji.apply(null,arguments)}function vv(e,t){if(e==null)return{};var r,n,a=xT(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function xT(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var jT=e=>{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(W_(t))return t},_b=f.createContext(void 0),wT=_b.Provider,Tb=f.createContext(void 0),CT=Tb.Provider;function kT(){return f.useContext(_b)}function ST(){return f.useContext(Tb)}function Va(e){var{valueAccessor:t=jT}=e,r=vv(e,gT),{dataKey:n,clockWise:a,id:i,textBreakAll:o,zIndex:l}=r,c=vv(r,bT),d=kT(),u=ST(),m=d||u;return!m||!m.length?null:f.createElement(Tt,{zIndex:l??Ze.label},f.createElement(ot,{className:"recharts-label-list"},m.map((h,v)=>{var p,b=ze(n)?t(h,v):ge(h.payload,n),y=ze(i)?{}:{id:"".concat(i,"-").concat(v)};return f.createElement(cr,ji({key:"label-".concat(v)},st(h),c,y,{fill:(p=r.fill)!==null&&p!==void 0?p:h.fill,parentViewBox:h.parentViewBox,value:b,textBreakAll:o,viewBox:h.viewBox,index:v,zIndex:0}))})))}Va.displayName="LabelList";function Mb(e){var{label:t}=e;return t?t===!0?f.createElement(Va,{key:"labelList-implicit"}):f.isValidElement(t)||Nu(t)?f.createElement(Va,{key:"labelList-implicit",content:t}):typeof t=="object"?f.createElement(Va,ji({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}function Bl(){return Bl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Bl.apply(null,arguments)}var Ib=e=>{var{cx:t,cy:r,r:n,className:a}=e,i=ve("recharts-dot",a);return ee(t)&&ee(r)&&ee(n)?f.createElement("circle",Bl({},kt(e),kc(e),{className:i,cx:t,cy:r,r:n})):null},Db=e=>e.graphicalItems.polarItems,NT=_([Ae,da],eu),xs=_([Db,Te,NT],tu),PT=_([xs],ru),js=_([PT,ls],nu),AT=_([js,Te,xs],xg);_([js,Te,xs],(e,t,r)=>r.length>0?e.flatMap(n=>r.flatMap(a=>{var i,o=ge(n,(i=t.dataKey)!==null&&i!==void 0?i:a.dataKey);return{value:o,errorDomain:[]}})).filter(Boolean):t?.dataKey!=null?e.map(n=>({value:ge(n,t.dataKey),errorDomain:[]})):e.map(n=>({value:n,errorDomain:[]})));var hv=()=>{},OT=_([js,Te,xs,vs,Ae,DA],lu),ET=_([Te,su,ou,hv,OT,hv,xe,Ae],cu),Rb=_([Te,xe,js,AT,ua,Ae,ET],uu),_T=_([Rb,bn,gr],fu),TT=_([Te,Rb,_T,Ae],vu);_([gr,TT],cg);var MT={radiusAxis:{},angleAxis:{}},Lb=at({name:"polarAxis",initialState:MT,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=t.payload},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=t.payload},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),{addRadiusAxis:bB,removeRadiusAxis:xB,addAngleAxis:jB,removeAngleAxis:wB}=Lb.actions,IT=Lb.reducer;function $b(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}function pv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function yv(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?pv(Object(r),!0).forEach(function(n){DT(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):pv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function DT(e,t,r){return(t=RT(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function RT(e){var t=LT(e,"string");return typeof t=="symbol"?t:t+""}function LT(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var $T=(e,t)=>t,Pu=_([Db,$T],(e,t)=>e.filter(r=>r.type==="pie").find(r=>r.id===t)),FT=[],Au=(e,t,r)=>r?.length===0?FT:r,Fb=_([ls,Pu,Au],(e,t,r)=>{var{chartData:n}=e;if(t!=null){var a;if(t?.data!=null&&t.data.length>0?a=t.data:a=n,(!a||!a.length)&&r!=null&&(a=r.map(i=>yv(yv({},t.presentationProps),i.props))),a!=null)return a}}),BT=_([Fb,Pu,Au],(e,t,r)=>{if(!(e==null||t==null))return e.map((n,a)=>{var i,o=ge(n,t.nameKey,t.name),l;return r!=null&&(i=r[a])!==null&&i!==void 0&&(i=i.props)!==null&&i!==void 0&&i.fill?l=r[a].props.fill:typeof n=="object"&&n!=null&&"fill"in n?l=n.fill:l=t.fill,{value:Zi(o,t.dataKey),color:l,payload:n,type:t.legendType}})}),zT=_([Fb,Pu,Au,qe],(e,t,r,n)=>{if(!(t==null||e==null))return YM({offset:n,pieSettings:t,displayedData:e,cells:r})}),$o={exports:{}},he={};/** @license React v17.0.2
|
|
92
92
|
* react-is.production.min.js
|
|
93
93
|
*
|
|
94
94
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
95
95
|
*
|
|
96
96
|
* This source code is licensed under the MIT license found in the
|
|
97
97
|
* LICENSE file in the root directory of this source tree.
|
|
98
|
-
*/var yv;function zT(){if(yv)return he;yv=1;var e=60103,t=60106,r=60107,n=60108,a=60114,i=60109,o=60110,l=60112,c=60113,d=60120,u=60115,m=60116,h=60121,v=60122,p=60117,b=60129,y=60131;if(typeof Symbol=="function"&&Symbol.for){var g=Symbol.for;e=g("react.element"),t=g("react.portal"),r=g("react.fragment"),n=g("react.strict_mode"),a=g("react.profiler"),i=g("react.provider"),o=g("react.context"),l=g("react.forward_ref"),c=g("react.suspense"),d=g("react.suspense_list"),u=g("react.memo"),m=g("react.lazy"),h=g("react.block"),v=g("react.server.block"),p=g("react.fundamental"),b=g("react.debug_trace_mode"),y=g("react.legacy_hidden")}function j(I){if(typeof I=="object"&&I!==null){var z=I.$$typeof;switch(z){case e:switch(I=I.type,I){case r:case a:case n:case c:case d:return I;default:switch(I=I&&I.$$typeof,I){case o:case l:case m:case u:case i:return I;default:return z}}case t:return z}}}var x=i,C=e,w=l,P=r,A=m,S=u,N=t,E=a,T=n,O=c;return he.ContextConsumer=o,he.ContextProvider=x,he.Element=C,he.ForwardRef=w,he.Fragment=P,he.Lazy=A,he.Memo=S,he.Portal=N,he.Profiler=E,he.StrictMode=T,he.Suspense=O,he.isAsyncMode=function(){return!1},he.isConcurrentMode=function(){return!1},he.isContextConsumer=function(I){return j(I)===o},he.isContextProvider=function(I){return j(I)===i},he.isElement=function(I){return typeof I=="object"&&I!==null&&I.$$typeof===e},he.isForwardRef=function(I){return j(I)===l},he.isFragment=function(I){return j(I)===r},he.isLazy=function(I){return j(I)===m},he.isMemo=function(I){return j(I)===u},he.isPortal=function(I){return j(I)===t},he.isProfiler=function(I){return j(I)===a},he.isStrictMode=function(I){return j(I)===n},he.isSuspense=function(I){return j(I)===c},he.isValidElementType=function(I){return typeof I=="string"||typeof I=="function"||I===r||I===a||I===b||I===n||I===c||I===d||I===y||typeof I=="object"&&I!==null&&(I.$$typeof===m||I.$$typeof===u||I.$$typeof===i||I.$$typeof===o||I.$$typeof===l||I.$$typeof===p||I.$$typeof===h||I[0]===v)},he.typeOf=j,he}var gv;function KT(){return gv||(gv=1,$o.exports=zT()),$o.exports}var VT=KT(),bv=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",xv=null,Fo=null,Fb=e=>{if(e===xv&&Array.isArray(Fo))return Fo;var t=[];return f.Children.forEach(e,r=>{ze(r)||(VT.isFragment(r)?t=t.concat(Fb(r.props.children)):t.push(r))}),Fo=t,xv=e,t};function Bb(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(a=>bv(a)):n=[bv(t)],Fb(e).forEach(a=>{var i=Mr(a,"type.displayName")||Mr(a,"type.name");i&&n.indexOf(i)!==-1&&r.push(a)}),r}var zb=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0,Bo={},jv;function UT(){return jv||(jv=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){if(typeof r!="object"||r==null)return!1;if(Object.getPrototypeOf(r)===null)return!0;if(Object.prototype.toString.call(r)!=="[object Object]"){const a=r[Symbol.toStringTag];return a==null||!Object.getOwnPropertyDescriptor(r,Symbol.toStringTag)?.writable?!1:r.toString()===`[object ${a}]`}let n=r;for(;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(r)===n}e.isPlainObject=t})(Bo)),Bo}var zo,wv;function qT(){return wv||(wv=1,zo=UT().isPlainObject),zo}var WT=qT();const HT=mn(WT);var Cv,kv,Sv,Nv,Pv;function Av(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ov(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Av(Object(r),!0).forEach(function(n){GT(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Av(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function GT(e,t,r){return(t=XT(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function XT(e){var t=YT(e,"string");return typeof t=="symbol"?t:t+""}function YT(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function wi(){return wi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},wi.apply(null,arguments)}function On(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Ev=(e,t,r,n,a)=>{var i=r-n,o;return o=_e(Cv||(Cv=On(["M ",",",""])),e,t),o+=_e(kv||(kv=On(["L ",",",""])),e+r,t),o+=_e(Sv||(Sv=On(["L ",",",""])),e+r-i/2,t+a),o+=_e(Nv||(Nv=On(["L ",",",""])),e+r-i/2-n,t+a),o+=_e(Pv||(Pv=On(["L ",","," Z"])),e,t),o},ZT={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},JT=e=>{var t=Ke(e,ZT),{x:r,y:n,upperWidth:a,lowerWidth:i,height:o,className:l}=t,{animationEasing:c,animationDuration:d,animationBegin:u,isUpdateAnimationActive:m}=t,h=f.useRef(null),[v,p]=f.useState(-1),b=f.useRef(a),y=f.useRef(i),g=f.useRef(o),j=f.useRef(r),x=f.useRef(n),C=os(e,"trapezoid-");if(f.useEffect(()=>{if(h.current&&h.current.getTotalLength)try{var z=h.current.getTotalLength();z&&p(z)}catch{}},[]),r!==+r||n!==+n||a!==+a||i!==+i||o!==+o||a===0&&i===0||o===0)return null;var w=ve("recharts-trapezoid",l);if(!m)return f.createElement("g",null,f.createElement("path",wi({},st(t),{className:w,d:Ev(r,n,a,i,o)})));var P=b.current,A=y.current,S=g.current,N=j.current,E=x.current,T="0px ".concat(v===-1?1:v,"px"),O="".concat(v,"px ").concat(v,"px"),I=Ty(["strokeDasharray"],d,c);return f.createElement(ss,{animationId:C,key:C,canBegin:v>0,duration:d,easing:c,isActive:m,begin:u},z=>{var D=tt(P,a,z),V=tt(A,i,z),B=tt(S,o,z),W=tt(N,r,z),K=tt(E,n,z);h.current&&(b.current=D,y.current=V,g.current=B,j.current=W,x.current=K);var te=z>0?{transition:I,strokeDasharray:O}:{strokeDasharray:T};return f.createElement("path",wi({},st(t),{className:w,d:Ev(W,K,D,V,B),ref:h,style:Ov(Ov({},te),t.style)}))})},QT=["option","shapeType","activeClassName","inActiveClassName"];function eM(e,t){if(e==null)return{};var r,n,a=tM(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function tM(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function _v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ci(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?_v(Object(r),!0).forEach(function(n){rM(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_v(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function rM(e,t,r){return(t=nM(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nM(e){var t=aM(e,"string");return typeof t=="symbol"?t:t+""}function aM(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function iM(e,t){return Ci(Ci({},t),e)}function sM(e,t){return e==="symbols"}function Tv(e){var{shapeType:t,elementProps:r}=e;switch(t){case"rectangle":return f.createElement(Ry,r);case"trapezoid":return f.createElement(JT,r);case"sector":return f.createElement(By,r);case"symbols":if(sM(t))return f.createElement(wc,r);break;case"curve":return f.createElement(Fc,r);default:return null}}function oM(e){return f.isValidElement(e)?e.props:e}function Kb(e){var{option:t,shapeType:r,activeClassName:n="recharts-active-shape",inActiveClassName:a="recharts-shape"}=e,i=eM(e,QT),o;if(f.isValidElement(t))o=f.cloneElement(t,Ci(Ci({},i),oM(t)));else if(typeof t=="function")o=t(i,i.index);else if(HT(t)&&typeof t!="boolean"){var l=iM(t,i);o=f.createElement(Tv,{shapeType:r,elementProps:l})}else{var c=i;o=f.createElement(Tv,{shapeType:r,elementProps:c})}return i.isActive?f.createElement(ot,{className:n},o):f.createElement(ot,{className:a},o)}var lM=(e,t,r)=>{var n=pe();return(a,i)=>o=>{e?.(a,i,o),n(Ug({activeIndex:String(i),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:r}))}},cM=e=>{var t=pe();return(r,n)=>a=>{e?.(r,n,a),t(dE())}},uM=(e,t,r)=>{var n=pe();return(a,i)=>o=>{e?.(a,i,o),n(fE({activeIndex:String(i),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:r}))}};function Vb(e){var{tooltipEntrySettings:t}=e,r=pe(),n=dt(),a=f.useRef(null);return f.useLayoutEffect(()=>{n||(a.current===null?r(oE(t)):a.current!==t&&r(lE({prev:a.current,next:t})),a.current=t)},[t,r,n]),f.useLayoutEffect(()=>()=>{a.current&&(r(cE(a.current)),a.current=null)},[r]),null}function dM(e){var{legendPayload:t}=e,r=pe(),n=dt(),a=f.useRef(null);return f.useLayoutEffect(()=>{n||(a.current===null?r(Py(t)):a.current!==t&&r(Ay({prev:a.current,next:t})),a.current=t)},[r,n,t]),f.useLayoutEffect(()=>()=>{a.current&&(r(Oy(a.current)),a.current=null)},[r]),null}function fM(e){var{legendPayload:t}=e,r=pe(),n=Z(xe),a=f.useRef(null);return f.useLayoutEffect(()=>{n!=="centric"&&n!=="radial"||(a.current===null?r(Py(t)):a.current!==t&&r(Ay({prev:a.current,next:t})),a.current=t)},[r,n,t]),f.useLayoutEffect(()=>()=>{a.current&&(r(Oy(a.current)),a.current=null)},[r]),null}var Ko,mM=()=>{var[e]=f.useState(()=>Kn("uid-"));return e},vM=(Ko=aj.useId)!==null&&Ko!==void 0?Ko:mM;function hM(e,t){var r=vM();return t||(e?"".concat(e,"-").concat(r):r)}var pM=f.createContext(void 0),Ub=e=>{var{id:t,type:r,children:n}=e,a=hM("recharts-".concat(r),t);return f.createElement(pM.Provider,{value:a},n(a))},yM={cartesianItems:[],polarItems:[]},qb=at({name:"graphicalItems",initialState:yM,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:je()},replaceCartesianGraphicalItem:{reducer(e,t){var{prev:r,next:n}=t.payload,a=Ct(e).cartesianItems.indexOf(r);a>-1&&(e.cartesianItems[a]=n)},prepare:je()},removeCartesianGraphicalItem:{reducer(e,t){var r=Ct(e).cartesianItems.indexOf(t.payload);r>-1&&e.cartesianItems.splice(r,1)},prepare:je()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:je()},removePolarGraphicalItem:{reducer(e,t){var r=Ct(e).polarItems.indexOf(t.payload);r>-1&&e.polarItems.splice(r,1)},prepare:je()},replacePolarGraphicalItem:{reducer(e,t){var{prev:r,next:n}=t.payload,a=Ct(e).polarItems.indexOf(r);a>-1&&(e.polarItems[a]=n)},prepare:je()}}}),{addCartesianGraphicalItem:gM,replaceCartesianGraphicalItem:bM,removeCartesianGraphicalItem:xM,addPolarGraphicalItem:jM,removePolarGraphicalItem:wM,replacePolarGraphicalItem:CM}=qb.actions,kM=qb.reducer,SM=e=>{var t=pe(),r=f.useRef(null);return f.useLayoutEffect(()=>{r.current===null?t(gM(e)):r.current!==e&&t(bM({prev:r.current,next:e})),r.current=e},[t,e]),f.useLayoutEffect(()=>()=>{r.current&&(t(xM(r.current)),r.current=null)},[t]),null},NM=f.memo(SM),PM=e=>{var t=pe(),r=f.useRef(null);return f.useLayoutEffect(()=>{r.current===null?t(jM(e)):r.current!==e&&t(CM({prev:r.current,next:e})),r.current=e},[t,e]),f.useLayoutEffect(()=>()=>{r.current&&(t(wM(r.current)),r.current=null)},[t]),null},AM=f.memo(PM),OM=["key"],EM=["onMouseEnter","onClick","onMouseLeave"],_M=["id"],TM=["id"];function hr(){return hr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},hr.apply(null,arguments)}function ws(e,t){if(e==null)return{};var r,n,a=MM(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function MM(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Mv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ke(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Mv(Object(r),!0).forEach(function(n){IM(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Mv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function IM(e,t,r){return(t=DM(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function DM(e){var t=RM(e,"string");return typeof t=="symbol"?t:t+""}function RM(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function LM(e){var t=f.useMemo(()=>Bb(e.children,gs),[e.children]),r=Z(n=>FT(n,e.id,t));return r==null?null:f.createElement(fM,{legendPayload:r})}function $M(e){if(!(e==null||typeof e=="boolean"||typeof e=="function")){if(f.isValidElement(e)){var t,r=(t=e.props)===null||t===void 0?void 0:t.fill;return typeof r=="string"?r:void 0}var{fill:n}=e;return typeof n=="string"?n:void 0}}var FM=f.memo(e=>{var{dataKey:t,nameKey:r,sectors:n,stroke:a,strokeWidth:i,fill:o,name:l,hide:c,tooltipType:d,id:u,activeShape:m}=e,h=$M(m),v=n.map(b=>{var y=b.tooltipPayload;return h==null||y==null?y:y.map(g=>ke(ke({},g),{},{color:h,fill:h}))}),p={dataDefinedOnItem:v,getPosition:b=>{var y;return(y=n[Number(b)])===null||y===void 0?void 0:y.tooltipPosition},settings:{stroke:a,strokeWidth:i,fill:o,dataKey:t,nameKey:r,name:Zi(l,t),hide:c,type:d,color:o,unit:"",graphicalItemId:u}};return f.createElement(Vb,{tooltipEntrySettings:p})}),BM=(e,t)=>e>t?"start":e<t?"end":"middle",zM=(e,t,r)=>ht(typeof t=="function"?t(e):t,r,r*.8),KM=(e,t,r)=>{var{top:n,left:a,width:i,height:o}=t,l=Ly(i,o),c=a+ht(e.cx,i,i/2),d=n+ht(e.cy,o,o/2),u=ht(e.innerRadius,l,0),m=zM(r,e.outerRadius,l),h=e.maxRadius||Math.sqrt(i*i+o*o)/2;return{cx:c,cy:d,innerRadius:u,outerRadius:m,maxRadius:h}},VM=(e,t)=>{var r=rt(t-e),n=Math.min(Math.abs(t-e),360);return r*n},UM=(e,t)=>{if(f.isValidElement(e))return f.cloneElement(e,t);if(typeof e=="function")return e(t);var r=ve("recharts-pie-label-line",typeof e!="boolean"?e.className:""),{key:n}=t,a=ws(t,OM);return f.createElement(Fc,hr({},a,{type:"linear",className:r}))},qM=(e,t,r)=>{if(f.isValidElement(e))return f.cloneElement(e,t);var n=r;if(typeof e=="function"&&(n=e(t),f.isValidElement(n)))return n;var a=ve("recharts-pie-label-text",Lb(e));return f.createElement(bs,hr({},t,{alignmentBaseline:"middle",className:a}),n)};function WM(e){var{sectors:t,props:r,showLabels:n}=e,{label:a,labelLine:i,dataKey:o}=r;if(!n||!a||!t)return null;var l=kt(r),c=an(a),d=an(i),u=typeof a=="object"&&"offsetRadius"in a&&typeof a.offsetRadius=="number"&&a.offsetRadius||20,m=t.map((h,v)=>{var p=(h.startAngle+h.endAngle)/2,b=Ie(h.cx,h.cy,h.outerRadius+u,p),y=ke(ke(ke(ke({},l),h),{},{stroke:"none"},c),{},{index:v,textAnchor:BM(b.x,h.cx)},b),g=ke(ke(ke(ke({},l),h),{},{fill:"none",stroke:h.fill},d),{},{index:v,points:[Ie(h.cx,h.cy,h.outerRadius,p),b],key:"line"});return f.createElement(Tt,{zIndex:Ze.label,key:"label-".concat(h.startAngle,"-").concat(h.endAngle,"-").concat(h.midAngle,"-").concat(v)},f.createElement(ot,null,i&&UM(i,g),qM(a,y,ge(h,o))))});return f.createElement(ot,{className:"recharts-pie-labels"},m)}function HM(e){var{sectors:t,props:r,showLabels:n}=e,{label:a}=r;return typeof a=="object"&&a!=null&&"position"in a?f.createElement(Tb,{label:a}):f.createElement(WM,{sectors:t,props:r,showLabels:n})}function GM(e){var{sectors:t,activeShape:r,inactiveShape:n,allOtherPieProps:a,shape:i,id:o}=e,l=Z(fn),c=Z(sb),d=Z(ob),{onMouseEnter:u,onClick:m,onMouseLeave:h}=a,v=ws(a,EM),p=lM(u,a.dataKey,o),b=cM(h),y=uM(m,a.dataKey,o);return t==null||t.length===0?null:f.createElement(f.Fragment,null,t.map((g,j)=>{if(g?.startAngle===0&&g?.endAngle===0&&t.length!==1)return null;var x=d==null||d===o,C=String(j)===l&&(c==null||a.dataKey===c)&&x,w=l?n:null,P=r&&C?r:w,A=ke(ke({},g),{},{stroke:g.stroke,tabIndex:-1,[my]:j,[vy]:o});return f.createElement(ot,hr({key:"sector-".concat(g?.startAngle,"-").concat(g?.endAngle,"-").concat(g.midAngle,"-").concat(j),tabIndex:-1,className:"recharts-pie-sector"},kc(v,g,j),{onMouseEnter:p(g,j),onMouseLeave:b(g,j),onClick:y(g,j)}),f.createElement(Kb,hr({option:i??P,index:j,shapeType:"sector",isActive:C},A)))}))}function XM(e){var t,{pieSettings:r,displayedData:n,cells:a,offset:i}=e,{cornerRadius:o,startAngle:l,endAngle:c,dataKey:d,nameKey:u,tooltipType:m}=r,h=Math.abs(r.minAngle),v=VM(l,c),p=Math.abs(v),b=n.length<=1?0:(t=r.paddingAngle)!==null&&t!==void 0?t:0,y=n.filter(S=>ge(S,d,0)!==0).length,g=(p>=360?y:y-1)*b,j=n.reduce((S,N)=>{var E=ge(N,d,0);return S+(ee(E)?E:0)},0),x=h>0&&j>0&&n.some(S=>{var N=ge(S,d,0),E=(ee(N)?N:0)/j;return N!==0&&E*p<h}),C=x?h:0,w=p-y*C-g,P;if(j>0){var A;P=n.map((S,N)=>{var E=ge(S,d,0),T=ge(S,u,N),O=KM(r,i,S),I=(ee(E)?E:0)/j,z,D=ke(ke({},S),a&&a[N]&&a[N].props),V=D!=null&&"fill"in D&&typeof D.fill=="string"?D.fill:r.fill;N?z=A.endAngle+rt(v)*b*(E!==0?1:0):z=l;var B=z+rt(v)*((E!==0?C:0)+I*w),W=(z+B)/2,K=(O.innerRadius+O.outerRadius)/2,te=[{name:T,value:E,payload:D,dataKey:d,type:m,color:V,fill:V,graphicalItemId:r.id}],G=Ie(O.cx,O.cy,K,W);return A=ke(ke(ke(ke({},r.presentationProps),{},{percent:I,cornerRadius:typeof o=="string"?parseFloat(o):o,name:T,tooltipPayload:te,midAngle:W,middleRadius:K,tooltipPosition:G},D),O),{},{value:E,dataKey:d,startAngle:z,endAngle:B,payload:D,paddingAngle:E!==0?rt(v)*b:0}),A})}return P}function YM(e){var{showLabels:t,sectors:r,children:n}=e,a=f.useMemo(()=>!t||!r?[]:r.map(i=>({value:i.value,payload:i.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:i.cx,cy:i.cy,innerRadius:i.innerRadius,outerRadius:i.outerRadius,startAngle:i.startAngle,endAngle:i.endAngle,clockWise:!1},fill:i.fill})),[r,t]);return f.createElement(wT,{value:t?a:void 0},n)}function ZM(e){var{props:t,previousSectorsRef:r,id:n}=e,{sectors:a,isAnimationActive:i,animationBegin:o,animationDuration:l,animationEasing:c,activeShape:d,inactiveShape:u,onAnimationStart:m,onAnimationEnd:h}=t,v=os(t,"recharts-pie-"),p=r.current,[b,y]=f.useState(!1),g=f.useCallback(()=>{typeof h=="function"&&h(),y(!1)},[h]),j=f.useCallback(()=>{typeof m=="function"&&m(),y(!0)},[m]);return f.createElement(YM,{showLabels:!b,sectors:a},f.createElement(ss,{animationId:v,begin:o,duration:l,isActive:i,easing:c,onAnimationStart:j,onAnimationEnd:g,key:v},x=>{var C,w=[],P=a&&a[0],A=(C=P?.startAngle)!==null&&C!==void 0?C:0;return a?.forEach((S,N)=>{var E=p&&p[N],T=N>0?Mr(S,"paddingAngle",0):0;if(E){var O=tt(E.endAngle-E.startAngle,S.endAngle-S.startAngle,x),I=ke(ke({},S),{},{startAngle:A+T,endAngle:A+O+T});w.push(I),A=I.endAngle}else{var{endAngle:z,startAngle:D}=S,V=tt(0,z-D,x),B=ke(ke({},S),{},{startAngle:A+T,endAngle:A+V+T});w.push(B),A=B.endAngle}}),r.current=w,f.createElement(ot,null,f.createElement(GM,{sectors:w,activeShape:d,inactiveShape:u,allOtherPieProps:t,shape:t.shape,id:n}))}),f.createElement(HM,{showLabels:!b,sectors:a,props:t}),t.children)}var JM={animationBegin:400,animationDuration:1500,animationEasing:"ease",cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:"#fff",zIndex:Ze.area};function QM(e){var{id:t}=e,r=ws(e,_M),{hide:n,className:a,rootTabIndex:i}=e,o=f.useMemo(()=>Bb(e.children,gs),[e.children]),l=Z(u=>BT(u,t,o)),c=f.useRef(null),d=ve("recharts-pie",a);return n||l==null?(c.current=null,f.createElement(ot,{tabIndex:i,className:d})):f.createElement(Tt,{zIndex:e.zIndex},f.createElement(FM,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:l,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,id:t,activeShape:e.activeShape}),f.createElement(ot,{tabIndex:i,className:d},f.createElement(ZM,{props:ke(ke({},r),{},{sectors:l}),previousSectorsRef:c,id:t})))}function eI(e){var t=Ke(e,JM),{id:r}=t,n=ws(t,TM),a=kt(n);return f.createElement(Ub,{id:r,type:"pie"},i=>f.createElement(f.Fragment,null,f.createElement(AM,{type:"pie",id:i,data:n.data,dataKey:n.dataKey,hide:n.hide,angleAxisId:0,radiusAxisId:0,name:n.name,nameKey:n.nameKey,tooltipType:n.tooltipType,legendType:n.legendType,fill:n.fill,cx:n.cx,cy:n.cy,startAngle:n.startAngle,endAngle:n.endAngle,paddingAngle:n.paddingAngle,minAngle:n.minAngle,innerRadius:n.innerRadius,outerRadius:n.outerRadius,cornerRadius:n.cornerRadius,presentationProps:a,maxRadius:t.maxRadius}),f.createElement(LM,hr({},n,{id:i})),f.createElement(QM,hr({},n,{id:i}))))}var Wb=eI;Wb.displayName="Pie";var tI=["points"];function Iv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Vo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Iv(Object(r),!0).forEach(function(n){rI(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Iv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function rI(e,t,r){return(t=nI(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nI(e){var t=aI(e,"string");return typeof t=="symbol"?t:t+""}function aI(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ki(){return ki=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ki.apply(null,arguments)}function iI(e,t){if(e==null)return{};var r,n,a=sI(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function sI(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function oI(e){var{option:t,dotProps:r,className:n}=e;if(f.isValidElement(t))return f.cloneElement(t,r);if(typeof t=="function")return t(r);var a=ve(n,typeof t!="boolean"?t.className:""),i=r??{},{points:o}=i,l=iI(i,tI);return f.createElement(Mb,ki({},l,{className:a}))}function lI(e,t){return e==null?!1:t?!0:e.length===1}function cI(e){var{points:t,dot:r,className:n,dotClassName:a,dataKey:i,baseProps:o,needClip:l,clipPathId:c,zIndex:d=Ze.scatter}=e;if(!lI(t,r))return null;var u=zb(r),m=dC(r),h=t.map((p,b)=>{var y,g,j=Vo(Vo(Vo({r:3},o),m),{},{index:b,cx:(y=p.x)!==null&&y!==void 0?y:void 0,cy:(g=p.y)!==null&&g!==void 0?g:void 0,dataKey:i,value:p.value,payload:p.payload,points:t});return f.createElement(oI,{key:"dot-".concat(b),option:r,dotProps:j,className:a})}),v={};return l&&c!=null&&(v.clipPath="url(#clipPath-".concat(u?"":"dots-").concat(c,")")),f.createElement(Tt,{zIndex:d},f.createElement(ot,ki({className:n},v),h))}function Dv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Rv(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Dv(Object(r),!0).forEach(function(n){uI(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Dv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function uI(e,t,r){return(t=dI(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function dI(e){var t=fI(e,"string");return typeof t=="symbol"?t:t+""}function fI(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var mI={xAxis:{},yAxis:{},zAxis:{}},Hb=at({name:"cartesianAxis",initialState:mI,reducers:{addXAxis:{reducer(e,t){e.xAxis[t.payload.id]=t.payload},prepare:je()},replaceXAxis:{reducer(e,t){var{prev:r,next:n}=t.payload;e.xAxis[r.id]!==void 0&&(r.id!==n.id&&delete e.xAxis[r.id],e.xAxis[n.id]=n)},prepare:je()},removeXAxis:{reducer(e,t){delete e.xAxis[t.payload.id]},prepare:je()},addYAxis:{reducer(e,t){e.yAxis[t.payload.id]=t.payload},prepare:je()},replaceYAxis:{reducer(e,t){var{prev:r,next:n}=t.payload;e.yAxis[r.id]!==void 0&&(r.id!==n.id&&delete e.yAxis[r.id],e.yAxis[n.id]=n)},prepare:je()},removeYAxis:{reducer(e,t){delete e.yAxis[t.payload.id]},prepare:je()},addZAxis:{reducer(e,t){e.zAxis[t.payload.id]=t.payload},prepare:je()},replaceZAxis:{reducer(e,t){var{prev:r,next:n}=t.payload;e.zAxis[r.id]!==void 0&&(r.id!==n.id&&delete e.zAxis[r.id],e.zAxis[n.id]=n)},prepare:je()},removeZAxis:{reducer(e,t){delete e.zAxis[t.payload.id]},prepare:je()},updateYAxisWidth(e,t){var{id:r,width:n}=t.payload,a=e.yAxis[r];if(a){var i,o=a.widthHistory||[];if(o.length===3&&o[0]===o[2]&&n===o[1]&&n!==a.width&&Math.abs(n-((i=o[0])!==null&&i!==void 0?i:0))<=1)return;var l=[...o,n].slice(-3);e.yAxis[r]=Rv(Rv({},a),{},{width:n,widthHistory:l})}}}}),{addXAxis:vI,replaceXAxis:hI,removeXAxis:pI,addYAxis:yI,replaceYAxis:gI,removeYAxis:bI,addZAxis:wB,replaceZAxis:CB,removeZAxis:kB,updateYAxisWidth:xI}=Hb.actions,jI=Hb.reducer,wI=_([qe],e=>({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),CI=_([wI,tr,rr],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}}),Au=()=>Z(CI),kI=()=>Z(s1);function Lv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Uo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Lv(Object(r),!0).forEach(function(n){SI(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Lv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function SI(e,t,r){return(t=NI(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function NI(e){var t=PI(e,"string");return typeof t=="symbol"?t:t+""}function PI(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var AI=e=>{var{point:t,childIndex:r,mainColor:n,activeDot:a,dataKey:i,clipPath:o}=e;if(a===!1||t.x==null||t.y==null)return null;var l={index:r,dataKey:i,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},c=Uo(Uo(Uo({},l),an(a)),Cc(a)),d;return f.isValidElement(a)?d=f.cloneElement(a,c):typeof a=="function"?d=a(c):d=f.createElement(Mb,c),f.createElement(ot,{className:"recharts-active-dot",clipPath:o},d)};function OI(e){var{points:t,mainColor:r,activeDot:n,itemDataKey:a,clipPath:i,zIndex:o=Ze.activeDot}=e,l=Z(fn),c=kI();if(t==null||c==null)return null;var d=t.find(u=>c.includes(u.payload));return ze(d)?null:f.createElement(Tt,{zIndex:o},f.createElement(AI,{point:d,childIndex:Number(l),mainColor:r,dataKey:a,activeDot:n,clipPath:i}))}var Gb=e=>{var{chartData:t}=e,r=pe(),n=dt();return f.useEffect(()=>n?()=>{}:(r(Xm(t)),()=>{r(Xm(void 0))}),[t,r,n]),null},$v={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},Xb=at({name:"brush",initialState:$v,reducers:{setBrushSettings(e,t){return t.payload==null?$v:t.payload}}}),{setBrushSettings:SB}=Xb.actions,EI=Xb.reducer;function _I(e){return(e%180+180)%180}var TI=function(t){var{width:r,height:n}=t,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=_I(a),o=i*Math.PI/180,l=Math.atan(n/r),c=o>l&&o<Math.PI-l?n/Math.sin(o):r/Math.cos(o);return Math.abs(c)},MI={dots:[],areas:[],lines:[]},Yb=at({name:"referenceElements",initialState:MI,reducers:{addDot:(e,t)=>{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=Ct(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=Ct(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var r=Ct(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),{addDot:NB,removeDot:PB,addArea:AB,removeArea:OB,addLine:EB,removeLine:_B}=Yb.actions,II=Yb.reducer,DI=f.createContext(void 0),RI=e=>{var{children:t}=e,[r]=f.useState("".concat(Kn("recharts"),"-clip")),n=Au();if(n==null)return null;var{x:a,y:i,width:o,height:l}=n;return f.createElement(DI.Provider,{value:r},f.createElement("defs",null,f.createElement("clipPath",{id:r},f.createElement("rect",{x:a,y:i,height:l,width:o}))),t)};function Zb(e,t){if(t<1)return[];if(t===1)return e;for(var r=[],n=0;n<e.length;n+=t){var a=e[n];a!==void 0&&r.push(a)}return r}function LI(e,t,r){var n={width:e.width+t.width,height:e.height+t.height};return TI(n,r)}function $I(e,t,r){var n=r==="width",{x:a,y:i,width:o,height:l}=e;return t===1?{start:n?a:i,end:n?a+o:i+l}:{start:n?a+o:i+l,end:n?a:i}}function Jn(e,t,r,n,a){if(e*t<e*n||e*t>e*a)return!1;var i=r();return e*(t-e*i/2-n)>=0&&e*(t+e*i/2-a)<=0}function FI(e,t){return Zb(e,t+1)}function BI(e,t,r,n,a){for(var i=(n||[]).slice(),{start:o,end:l}=t,c=0,d=1,u=o,m=function(){var p=n?.[c];if(p===void 0)return{v:Zb(n,d)};var b=c,y,g=()=>(y===void 0&&(y=r(p,b)),y),j=p.coordinate,x=c===0||Jn(e,j,g,u,l);x||(c=0,u=o,d+=1),x&&(u=j+e*(g()/2+a),c+=d)},h;d<=i.length;)if(h=m(),h)return h.v;return[]}function zI(e,t,r,n,a){var i=(n||[]).slice(),o=i.length;if(o===0)return[];for(var{start:l,end:c}=t,d=1;d<=o;d++){for(var u=(o-1)%d,m=l,h=!0,v=function(){var C=n[b];if(C==null)return 0;var w=b,P,A=()=>(P===void 0&&(P=r(C,w)),P),S=C.coordinate,N=b===u||Jn(e,S,A,m,c);if(!N)return h=!1,1;N&&(m=S+e*(A()/2+a))},p,b=u;b<o&&(p=v(),!(p!==0&&p===1));b+=d);if(h){for(var y=[],g=u;g<o;g+=d){var j=n[g];j!=null&&y.push(j)}return y}}return[]}function Fv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Qe(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Fv(Object(r),!0).forEach(function(n){KI(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Fv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function KI(e,t,r){return(t=VI(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function VI(e){var t=UI(e,"string");return typeof t=="symbol"?t:t+""}function UI(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function qI(e,t,r,n,a){for(var i=(n||[]).slice(),o=i.length,{start:l}=t,{end:c}=t,d=function(h){var v=i[h];if(v==null)return 1;var p=v,b,y=()=>(b===void 0&&(b=r(v,h)),b);if(h===o-1){var g=e*(p.coordinate+e*y()/2-c);i[h]=p=Qe(Qe({},p),{},{tickCoord:g>0?p.coordinate-g*e:p.coordinate})}else i[h]=p=Qe(Qe({},p),{},{tickCoord:p.coordinate});if(p.tickCoord!=null){var j=Jn(e,p.tickCoord,y,l,c);j&&(c=p.tickCoord-e*(y()/2+a),i[h]=Qe(Qe({},p),{},{isShow:!0}))}},u=o-1;u>=0;u--)d(u);return i}function WI(e,t,r,n,a,i){var o=(n||[]).slice(),l=o.length,{start:c,end:d}=t;if(i){var u=n[l-1];if(u!=null){var m=r(u,l-1),h=e*(u.coordinate+e*m/2-d);if(o[l-1]=u=Qe(Qe({},u),{},{tickCoord:h>0?u.coordinate-h*e:u.coordinate}),u.tickCoord!=null){var v=Jn(e,u.tickCoord,()=>m,c,d);v&&(d=u.tickCoord-e*(m/2+a),o[l-1]=Qe(Qe({},u),{},{isShow:!0}))}}}for(var p=i?l-1:l,b=function(j){var x=o[j];if(x==null)return 1;var C=x,w,P=()=>(w===void 0&&(w=r(x,j)),w);if(j===0){var A=e*(C.coordinate-e*P()/2-c);o[j]=C=Qe(Qe({},C),{},{tickCoord:A<0?C.coordinate-A*e:C.coordinate})}else o[j]=C=Qe(Qe({},C),{},{tickCoord:C.coordinate});if(C.tickCoord!=null){var S=Jn(e,C.tickCoord,P,c,d);S&&(c=C.tickCoord+e*(P()/2+a),o[j]=Qe(Qe({},C),{},{isShow:!0}))}},y=0;y<p;y++)b(y);return o}function Ou(e,t,r){var{tick:n,ticks:a,viewBox:i,minTickGap:o,orientation:l,interval:c,tickFormatter:d,unit:u,angle:m}=e;if(!a||!a.length||!n)return[];if(ee(c)||la.isSsr){var h;return(h=FI(a,ee(c)?c:0))!==null&&h!==void 0?h:[]}var v=[],p=l==="top"||l==="bottom"?"width":"height",b=u&&p==="width"?Bn(u,{fontSize:t,letterSpacing:r}):{width:0,height:0},y=(w,P)=>{var A=typeof d=="function"?d(w.value,P):w.value;return p==="width"?LI(Bn(A,{fontSize:t,letterSpacing:r}),b,m):Bn(A,{fontSize:t,letterSpacing:r})[p]},g=a[0],j=a[1],x=a.length>=2&&g!=null&&j!=null?rt(j.coordinate-g.coordinate):1,C=$I(i,x,p);return c==="equidistantPreserveStart"?BI(x,C,y,a,o):c==="equidistantPreserveEnd"?zI(x,C,y,a,o):(c==="preserveStart"||c==="preserveStartEnd"?v=WI(x,C,y,a,o,c==="preserveStartEnd"):v=qI(x,C,y,a,o),v.filter(w=>w.isShow))}var HI=e=>{var{ticks:t,label:r,labelGapWithTick:n=5,tickSize:a=0,tickMargin:i=0}=e,o=0;if(t){Array.from(t).forEach(u=>{if(u){var m=u.getBoundingClientRect();m.width>o&&(o=m.width)}});var l=r?r.getBoundingClientRect().width:0,c=a+i,d=o+c+l+(r?n:0);return Math.round(d)}return 0},GI={xAxis:{},yAxis:{}},Jb=at({name:"renderedTicks",initialState:GI,reducers:{setRenderedTicks:(e,t)=>{var{axisType:r,axisId:n,ticks:a}=t.payload;e[r][n]=a},removeRenderedTicks:(e,t)=>{var{axisType:r,axisId:n}=t.payload;delete e[r][n]}}}),{setRenderedTicks:XI,removeRenderedTicks:YI}=Jb.actions,ZI=Jb.reducer,JI=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function QI(e,t){if(e==null)return{};var r,n,a=eD(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function eD(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Fr(){return Fr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Fr.apply(null,arguments)}function Bv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ee(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Bv(Object(r),!0).forEach(function(n){tD(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Bv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function tD(e,t,r){return(t=rD(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function rD(e){var t=nD(e,"string");return typeof t=="symbol"?t:t+""}function nD(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Yt={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd",zIndex:Ze.axis};function aD(e){var{x:t,y:r,width:n,height:a,orientation:i,mirror:o,axisLine:l,otherSvgProps:c}=e;if(!l)return null;var d=Ee(Ee(Ee({},c),kt(l)),{},{fill:"none"});if(i==="top"||i==="bottom"){var u=+(i==="top"&&!o||i==="bottom"&&o);d=Ee(Ee({},d),{},{x1:t,y1:r+u*a,x2:t+n,y2:r+u*a})}else{var m=+(i==="left"&&!o||i==="right"&&o);d=Ee(Ee({},d),{},{x1:t+m*n,y1:r,x2:t+m*n,y2:r+a})}return f.createElement("line",Fr({},d,{className:ve("recharts-cartesian-axis-line",Mr(l,"className"))}))}function iD(e,t,r,n,a,i,o,l,c){var d,u,m,h,v,p,b=l?-1:1,y=e.tickSize||o,g=ee(e.tickCoord)?e.tickCoord:e.coordinate;switch(i){case"top":d=u=e.coordinate,h=r+ +!l*a,m=h-b*y,p=m-b*c,v=g;break;case"left":m=h=e.coordinate,u=t+ +!l*n,d=u-b*y,v=d-b*c,p=g;break;case"right":m=h=e.coordinate,u=t+ +l*n,d=u+b*y,v=d+b*c,p=g;break;default:d=u=e.coordinate,h=r+ +l*a,m=h+b*y,p=m+b*c,v=g;break}return{line:{x1:d,y1:m,x2:u,y2:h},tick:{x:v,y:p}}}function sD(e,t){switch(e){case"left":return t?"start":"end";case"right":return t?"end":"start";default:return"middle"}}function oD(e,t){switch(e){case"left":case"right":return"middle";case"top":return t?"start":"end";default:return t?"end":"start"}}function lD(e){var{option:t,tickProps:r,value:n}=e,a,i=ve(r.className,"recharts-cartesian-axis-tick-value");if(f.isValidElement(t))a=f.cloneElement(t,Ee(Ee({},r),{},{className:i}));else if(typeof t=="function")a=t(Ee(Ee({},r),{},{className:i}));else{var o="recharts-cartesian-axis-tick-value";typeof t!="boolean"&&(o=ve(o,Lb(t))),a=f.createElement(bs,Fr({},r,{className:o}),n)}return a}function cD(e){var{ticks:t,axisType:r,axisId:n}=e,a=pe();return f.useEffect(()=>{if(n==null||r==null)return ta;var i=t.map(o=>({value:o.value,coordinate:o.coordinate,offset:o.offset,index:o.index}));return a(XI({ticks:i,axisId:n,axisType:r})),()=>{a(YI({axisId:n,axisType:r}))}},[a,t,n,r]),null}var uD=f.forwardRef((e,t)=>{var{ticks:r=[],tick:n,tickLine:a,stroke:i,tickFormatter:o,unit:l,padding:c,tickTextProps:d,orientation:u,mirror:m,x:h,y:v,width:p,height:b,tickSize:y,tickMargin:g,fontSize:j,letterSpacing:x,getTicksConfig:C,events:w,axisType:P,axisId:A}=e,S=Ou(Ee(Ee({},C),{},{ticks:r}),j,x),N=kt(C),E=an(n),T=kb(N.textAnchor)?N.textAnchor:sD(u,m),O=oD(u,m),I={};typeof a=="object"&&(I=a);var z=Ee(Ee({},N),{},{fill:"none"},I),D=S.map(W=>Ee({entry:W},iD(W,h,v,p,b,u,y,m,g))),V=D.map(W=>{var{entry:K,line:te}=W;return f.createElement(ot,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(K.value,"-").concat(K.coordinate,"-").concat(K.tickCoord)},a&&f.createElement("line",Fr({},z,te,{className:ve("recharts-cartesian-axis-tick-line",Mr(a,"className"))})))}),B=D.map((W,K)=>{var te,G,{entry:M,tick:q}=W,H=Ee(Ee(Ee(Ee({verticalAnchor:O},N),{},{textAnchor:T,stroke:"none",fill:i},q),{},{index:K,payload:M,visibleTicksCount:S.length,tickFormatter:o,padding:c},d),{},{angle:(te=(G=d?.angle)!==null&&G!==void 0?G:N.angle)!==null&&te!==void 0?te:0}),re=Ee(Ee({},H),E);return f.createElement(ot,Fr({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(M.value,"-").concat(M.coordinate,"-").concat(M.tickCoord)},kc(w,M,K)),n&&f.createElement(lD,{option:n,tickProps:re,value:"".concat(typeof o=="function"?o(M.value,K):M.value).concat(l||"")}))});return f.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(P,"-ticks")},f.createElement(cD,{ticks:S,axisId:A,axisType:P}),B.length>0&&f.createElement(Tt,{zIndex:Ze.label},f.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(P,"-tick-labels"),ref:t},B)),V.length>0&&f.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(P,"-tick-lines")},V))}),dD=f.forwardRef((e,t)=>{var{axisLine:r,width:n,height:a,className:i,hide:o,ticks:l,axisType:c,axisId:d}=e,u=QI(e,JI),[m,h]=f.useState(""),[v,p]=f.useState(""),b=f.useRef(null);f.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var g;return HI({ticks:b.current,label:(g=e.labelRef)===null||g===void 0?void 0:g.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var y=f.useCallback(g=>{if(g){var j=g.getElementsByClassName("recharts-cartesian-axis-tick-value");b.current=j;var x=j[0];if(x){var C=window.getComputedStyle(x),w=C.fontSize,P=C.letterSpacing;(w!==m||P!==v)&&(h(w),p(P))}}},[m,v]);return o||n!=null&&n<=0||a!=null&&a<=0?null:f.createElement(Tt,{zIndex:e.zIndex},f.createElement(ot,{className:ve("recharts-cartesian-axis",i)},f.createElement(aD,{x:e.x,y:e.y,width:n,height:a,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:kt(e)}),f.createElement(uD,{ref:y,axisType:c,events:u,fontSize:m,getTicksConfig:e,height:e.height,letterSpacing:v,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:l,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:d}),f.createElement(sT,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},f.createElement(pT,{label:e.label,labelRef:e.labelRef}),e.children)))}),Eu=f.forwardRef((e,t)=>{var r=Ke(e,Yt);return f.createElement(dD,Fr({},r,{ref:t}))});Eu.displayName="CartesianAxis";var fD=["x1","y1","x2","y2","key"],mD=["offset"],vD=["xAxisId","yAxisId"],hD=["xAxisId","yAxisId"];function zv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function et(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?zv(Object(r),!0).forEach(function(n){pD(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):zv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function pD(e,t,r){return(t=yD(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yD(e){var t=gD(e,"string");return typeof t=="symbol"?t:t+""}function gD(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ar(){return Ar=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ar.apply(null,arguments)}function Si(e,t){if(e==null)return{};var r,n,a=bD(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function bD(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var xD=e=>{var{fill:t}=e;if(!t||t==="none")return null;var{fillOpacity:r,x:n,y:a,width:i,height:o,ry:l}=e;return f.createElement("rect",{x:n,y:a,ry:l,width:i,height:o,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function Qb(e){var{option:t,lineItemProps:r}=e,n;if(f.isValidElement(t))n=f.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var a,{x1:i,y1:o,x2:l,y2:c,key:d}=r,u=Si(r,fD),m=(a=kt(u))!==null&&a!==void 0?a:{},{offset:h}=m,v=Si(m,mD);n=f.createElement("line",Ar({},v,{x1:i,y1:o,x2:l,y2:c,fill:"none",key:d}))}return n}function jD(e){var{x:t,width:r,horizontal:n=!0,horizontalPoints:a}=e;if(!n||!a||!a.length)return null;var{xAxisId:i,yAxisId:o}=e,l=Si(e,vD),c=a.map((d,u)=>{var m=et(et({},l),{},{x1:t,y1:d,x2:t+r,y2:d,key:"line-".concat(u),index:u});return f.createElement(Qb,{key:"line-".concat(u),option:n,lineItemProps:m})});return f.createElement("g",{className:"recharts-cartesian-grid-horizontal"},c)}function wD(e){var{y:t,height:r,vertical:n=!0,verticalPoints:a}=e;if(!n||!a||!a.length)return null;var{xAxisId:i,yAxisId:o}=e,l=Si(e,hD),c=a.map((d,u)=>{var m=et(et({},l),{},{x1:d,y1:t,x2:d,y2:t+r,key:"line-".concat(u),index:u});return f.createElement(Qb,{option:n,lineItemProps:m,key:"line-".concat(u)})});return f.createElement("g",{className:"recharts-cartesian-grid-vertical"},c)}function CD(e){var{horizontalFill:t,fillOpacity:r,x:n,y:a,width:i,height:o,horizontalPoints:l,horizontal:c=!0}=e;if(!c||!t||!t.length||l==null)return null;var d=l.map(m=>Math.round(m+a-a)).sort((m,h)=>m-h);a!==d[0]&&d.unshift(0);var u=d.map((m,h)=>{var v=d[h+1],p=v==null,b=p?a+o-m:v-m;if(b<=0)return null;var y=h%t.length;return f.createElement("rect",{key:"react-".concat(h),y:m,x:n,height:b,width:i,stroke:"none",fill:t[y],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return f.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},u)}function kD(e){var{vertical:t=!0,verticalFill:r,fillOpacity:n,x:a,y:i,width:o,height:l,verticalPoints:c}=e;if(!t||!r||!r.length)return null;var d=c.map(m=>Math.round(m+a-a)).sort((m,h)=>m-h);a!==d[0]&&d.unshift(0);var u=d.map((m,h)=>{var v=d[h+1],p=v==null,b=p?a+o-m:v-m;if(b<=0)return null;var y=h%r.length;return f.createElement("rect",{key:"react-".concat(h),x:m,y:i,width:b,height:l,stroke:"none",fill:r[y],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return f.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},u)}var SD=(e,t)=>{var{xAxis:r,width:n,height:a,offset:i}=e;return uy(Ou(et(et(et({},Yt),r),{},{ticks:dy(r),viewBox:{x:0,y:0,width:n,height:a}})),i.left,i.left+i.width,t)},ND=(e,t)=>{var{yAxis:r,width:n,height:a,offset:i}=e;return uy(Ou(et(et(et({},Yt),r),{},{ticks:dy(r),viewBox:{x:0,y:0,width:n,height:a}})),i.top,i.top+i.height,t)},PD={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:Ze.grid};function ex(e){var t=Ic(),r=Dc(),n=yy(),a=et(et({},Ke(e,PD)),{},{x:ee(e.x)?e.x:n.left,y:ee(e.y)?e.y:n.top,width:ee(e.width)?e.width:n.width,height:ee(e.height)?e.height:n.height}),{xAxisId:i,yAxisId:o,x:l,y:c,width:d,height:u,syncWithTicks:m,horizontalValues:h,verticalValues:v}=a,p=dt(),b=Z(N=>Rm(N,"xAxis",i,p)),y=Z(N=>Rm(N,"yAxis",o,p));if(!on(d)||!on(u)||!ee(l)||!ee(c))return null;var g=a.verticalCoordinatesGenerator||SD,j=a.horizontalCoordinatesGenerator||ND,{horizontalPoints:x,verticalPoints:C}=a;if((!x||!x.length)&&typeof j=="function"){var w=h&&h.length,P=j({yAxis:y?et(et({},y),{},{ticks:w?h:y.ticks}):void 0,width:t??d,height:r??u,offset:n},w?!0:m);Cf(Array.isArray(P),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof P,"]")),Array.isArray(P)&&(x=P)}if((!C||!C.length)&&typeof g=="function"){var A=v&&v.length,S=g({xAxis:b?et(et({},b),{},{ticks:A?v:b.ticks}):void 0,width:t??d,height:r??u,offset:n},A?!0:m);Cf(Array.isArray(S),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof S,"]")),Array.isArray(S)&&(C=S)}return f.createElement(Tt,{zIndex:a.zIndex},f.createElement("g",{className:"recharts-cartesian-grid"},f.createElement(xD,{fill:a.fill,fillOpacity:a.fillOpacity,x:a.x,y:a.y,width:a.width,height:a.height,ry:a.ry}),f.createElement(CD,Ar({},a,{horizontalPoints:x})),f.createElement(kD,Ar({},a,{verticalPoints:C})),f.createElement(jD,Ar({},a,{offset:n,horizontalPoints:x,xAxis:b,yAxis:y})),f.createElement(wD,Ar({},a,{offset:n,verticalPoints:C,xAxis:b,yAxis:y}))))}ex.displayName="CartesianGrid";var AD={},tx=at({name:"errorBars",initialState:AD,reducers:{addErrorBar:(e,t)=>{var{itemId:r,errorBar:n}=t.payload;e[r]||(e[r]=[]),e[r].push(n)},replaceErrorBar:(e,t)=>{var{itemId:r,prev:n,next:a}=t.payload;e[r]&&(e[r]=e[r].map(i=>i.dataKey===n.dataKey&&i.direction===n.direction?a:i))},removeErrorBar:(e,t)=>{var{itemId:r,errorBar:n}=t.payload;e[r]&&(e[r]=e[r].filter(a=>a.dataKey!==n.dataKey||a.direction!==n.direction))}}}),{addErrorBar:TB,replaceErrorBar:MB,removeErrorBar:IB}=tx.actions,OD=tx.reducer,ED=["children"];function _D(e,t){if(e==null)return{};var r,n,a=TD(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function TD(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var MD={data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0},ID=f.createContext(MD);function DD(e){var{children:t}=e,r=_D(e,ED);return f.createElement(ID.Provider,{value:r},t)}function rx(e,t){var r,n,a=Z(d=>nr(d,e)),i=Z(d=>ar(d,t)),o=(r=a?.allowDataOverflow)!==null&&r!==void 0?r:$e.allowDataOverflow,l=(n=i?.allowDataOverflow)!==null&&n!==void 0?n:Fe.allowDataOverflow,c=o||l;return{needClip:c,needClipX:o,needClipY:l}}function RD(e){var{xAxisId:t,yAxisId:r,clipPathId:n}=e,a=Au(),{needClipX:i,needClipY:o,needClip:l}=rx(t,r);if(!l||!a)return null;var{x:c,y:d,width:u,height:m}=a;return f.createElement("clipPath",{id:"clipPath-".concat(n)},f.createElement("rect",{x:i?c:c-u/2,y:o?d:d-m/2,width:i?u:u*2,height:o?m:m*2}))}var nx=(e,t,r,n)=>$g(e,"xAxis",t,n),ax=(e,t,r,n)=>Lg(e,"xAxis",t,n),ix=(e,t,r,n)=>$g(e,"yAxis",r,n),sx=(e,t,r,n)=>Lg(e,"yAxis",r,n),LD=_([xe,nx,ix,ax,sx],(e,t,r,n,a)=>er(e,"xAxis")?si(t,n,!1):si(r,a,!1)),$D=(e,t,r,n,a)=>a;function FD(e){return e.type==="line"}var BD=_([hg,$D],(e,t)=>e.filter(FD).find(r=>r.id===t)),zD=_([xe,nx,ix,ax,sx,BD,LD,ca],(e,t,r,n,a,i,o,l)=>{var{chartData:c,dataStartIndex:d,dataEndIndex:u}=l;if(!(i==null||t==null||r==null||n==null||a==null||n.length===0||a.length===0||o==null||e!=="horizontal"&&e!=="vertical")){var{dataKey:m,data:h}=i,v;if(h!=null&&h.length>0?v=h:v=c?.slice(d,u+1),v!=null)return lR({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:a,dataKey:m,bandSize:o,displayedData:v})}});function KD(e){var t=an(e),r=3,n=2;if(t!=null){var{r:a,strokeWidth:i}=t,o=Number(a),l=Number(i);return(Number.isNaN(o)||o<0)&&(o=r),(Number.isNaN(l)||l<0)&&(l=n),{r:o,strokeWidth:l}}return{r,strokeWidth:n}}var VD=["id"],UD=["type","layout","connectNulls","needClip","shape"],qD=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function Qn(){return Qn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Qn.apply(null,arguments)}function Kv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Lt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Kv(Object(r),!0).forEach(function(n){WD(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Kv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function WD(e,t,r){return(t=HD(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function HD(e){var t=GD(e,"string");return typeof t=="symbol"?t:t+""}function GD(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function _u(e,t){if(e==null)return{};var r,n,a=XD(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function XD(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var YD=e=>{var{dataKey:t,name:r,stroke:n,legendType:a,hide:i}=e;return[{inactive:i,dataKey:t,type:a,color:n,value:Zi(r,t),payload:e}]},ZD=f.memo(e=>{var{dataKey:t,data:r,stroke:n,strokeWidth:a,fill:i,name:o,hide:l,unit:c,tooltipType:d,id:u}=e,m={dataDefinedOnItem:r,getPosition:ta,settings:{stroke:n,strokeWidth:a,fill:i,dataKey:t,nameKey:void 0,name:Zi(o,t),hide:l,type:d,color:n,unit:c,graphicalItemId:u}};return f.createElement(Vb,{tooltipEntrySettings:m})}),ox=(e,t)=>"".concat(t,"px ").concat(e,"px");function JD(e,t){for(var r=e.length%2!==0?[...e,0]:e,n=[],a=0;a<t;++a)n.push(...r);return n}var QD=(e,t,r)=>{var n=r.reduce((h,v)=>h+v,0);if(!n)return ox(t,e);for(var a=Math.floor(e/n),i=e%n,o=[],l=0,c=0;l<r.length;c+=(d=r[l])!==null&&d!==void 0?d:0,++l){var d,u=r[l];if(u!=null&&c+u>i){o=[...r.slice(0,l),i-c];break}}var m=o.length%2===0?[0,t]:[t];return[...JD(r,a),...o,...m].map(h=>"".concat(h,"px")).join(", ")};function eR(e){var{clipPathId:t,points:r,props:n}=e,{dot:a,dataKey:i,needClip:o}=n,{id:l}=n,c=_u(n,VD),d=kt(c);return f.createElement(cI,{points:r,dot:a,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:i,baseProps:d,needClip:o,clipPathId:t})}function tR(e){var{showLabels:t,children:r,points:n}=e,a=f.useMemo(()=>n?.map(i=>{var o,l,c={x:(o=i.x)!==null&&o!==void 0?o:0,y:(l=i.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Lt(Lt({},c),{},{value:i.value,payload:i.payload,viewBox:c,parentViewBox:void 0,fill:void 0})}),[n]);return f.createElement(jT,{value:t?a:void 0},r)}function Vv(e){var{clipPathId:t,pathRef:r,points:n,strokeDasharray:a,props:i}=e,{type:o,layout:l,connectNulls:c,needClip:d,shape:u}=i,m=_u(i,UD),h=Lt(Lt({},st(m)),{},{fill:"none",className:"recharts-line-curve",clipPath:d?"url(#clipPath-".concat(t,")"):void 0,points:n,type:o,layout:l,connectNulls:c,strokeDasharray:a??i.strokeDasharray});return f.createElement(f.Fragment,null,n?.length>1&&f.createElement(Kb,Qn({shapeType:"curve",option:u},h,{pathRef:r})),f.createElement(eR,{points:n,clipPathId:t,props:i}))}function rR(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function nR(e){var{clipPathId:t,props:r,pathRef:n,previousPointsRef:a,longestAnimatedLengthRef:i}=e,{points:o,strokeDasharray:l,isAnimationActive:c,animationBegin:d,animationDuration:u,animationEasing:m,animateNewValues:h,width:v,height:p,onAnimationEnd:b,onAnimationStart:y}=r,g=a.current,j=os(o,"recharts-line-"),x=f.useRef(j),[C,w]=f.useState(!1),P=!C,A=f.useCallback(()=>{typeof b=="function"&&b(),w(!1)},[b]),S=f.useCallback(()=>{typeof y=="function"&&y(),w(!0)},[y]),N=rR(n.current),E=f.useRef(0);x.current!==j&&(E.current=i.current,x.current=j);var T=E.current;return f.createElement(tR,{points:o,showLabels:P},r.children,f.createElement(ss,{animationId:j,begin:d,duration:u,isActive:c,easing:m,onAnimationEnd:A,onAnimationStart:S,key:j},O=>{var I=tt(T,N+T,O),z=Math.min(I,N),D;if(c)if(l){var V="".concat(l).split(/[,\s]+/gim).map(K=>parseFloat(K));D=QD(z,N,V)}else D=ox(N,z);else D=l==null?void 0:String(l);if(O>0&&N>0&&(a.current=o,i.current=Math.max(i.current,z)),g){var B=g.length/o.length,W=O===1?o:o.map((K,te)=>{var G=Math.floor(te*B);if(g[G]){var M=g[G];return Lt(Lt({},K),{},{x:tt(M.x,K.x,O),y:tt(M.y,K.y,O)})}return h?Lt(Lt({},K),{},{x:tt(v*2,K.x,O),y:tt(p/2,K.y,O)}):Lt(Lt({},K),{},{x:K.x,y:K.y})});return a.current=W,f.createElement(Vv,{props:r,points:W,clipPathId:t,pathRef:n,strokeDasharray:D})}return f.createElement(Vv,{props:r,points:o,clipPathId:t,pathRef:n,strokeDasharray:D})}),f.createElement(Tb,{label:r.label}))}function aR(e){var{clipPathId:t,props:r}=e,n=f.useRef(null),a=f.useRef(0),i=f.useRef(null);return f.createElement(nR,{props:r,clipPathId:t,previousPointsRef:n,longestAnimatedLengthRef:a,pathRef:i})}var iR=(e,t)=>{var r,n;return{x:(r=e.x)!==null&&r!==void 0?r:void 0,y:(n=e.y)!==null&&n!==void 0?n:void 0,value:e.value,errorVal:ge(e.payload,t)}};class sR extends f.Component{render(){var{hide:t,dot:r,points:n,className:a,xAxisId:i,yAxisId:o,top:l,left:c,width:d,height:u,id:m,needClip:h,zIndex:v}=this.props;if(t)return null;var p=ve("recharts-line",a),b=m,{r:y,strokeWidth:g}=KD(r),j=zb(r),x=y*2+g,C=h?"url(#clipPath-".concat(j?"":"dots-").concat(b,")"):void 0;return f.createElement(Tt,{zIndex:v},f.createElement(ot,{className:p},h&&f.createElement("defs",null,f.createElement(RD,{clipPathId:b,xAxisId:i,yAxisId:o}),!j&&f.createElement("clipPath",{id:"clipPath-dots-".concat(b)},f.createElement("rect",{x:c-x/2,y:l-x/2,width:d+x,height:u+x}))),f.createElement(DD,{xAxisId:i,yAxisId:o,data:n,dataPointFormatter:iR,errorBarOffset:0},f.createElement(aR,{props:this.props,clipPathId:b}))),f.createElement(OI,{activeDot:this.props.activeDot,points:n,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:C}))}}var lx={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:Ze.line,type:"linear"};function oR(e){var t=Ke(e,lx),{activeDot:r,animateNewValues:n,animationBegin:a,animationDuration:i,animationEasing:o,connectNulls:l,dot:c,hide:d,isAnimationActive:u,label:m,legendType:h,xAxisId:v,yAxisId:p,id:b}=t,y=_u(t,qD),{needClip:g}=rx(v,p),j=Au(),x=hn(),C=dt(),w=Z(E=>zD(E,v,p,C,b));if(x!=="horizontal"&&x!=="vertical"||w==null||j==null)return null;var{height:P,width:A,x:S,y:N}=j;return f.createElement(sR,Qn({},y,{id:b,connectNulls:l,dot:c,activeDot:r,animateNewValues:n,animationBegin:a,animationDuration:i,animationEasing:o,isAnimationActive:u,hide:d,label:m,legendType:h,xAxisId:v,yAxisId:p,points:w,layout:x,height:P,width:A,left:S,top:N,needClip:g}))}function lR(e){var{layout:t,xAxis:r,yAxis:n,xAxisTicks:a,yAxisTicks:i,dataKey:o,bandSize:l,displayedData:c}=e;return c.map((d,u)=>{var m=ge(d,o);if(t==="horizontal"){var h=gf({axis:r,ticks:a,bandSize:l,entry:d,index:u}),v=ze(m)?null:n.scale.map(m);return{x:h,y:v??null,value:m,payload:d}}var p=ze(m)?null:r.scale.map(m),b=gf({axis:n,ticks:i,bandSize:l,entry:d,index:u});return p==null||b==null?null:{x:p,y:b,value:m,payload:d}}).filter(Boolean)}function cR(e){var t=Ke(e,lx),r=dt();return f.createElement(Ub,{id:t.id,type:"line"},n=>f.createElement(f.Fragment,null,f.createElement(dM,{legendPayload:YD(t)}),f.createElement(ZD,{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:n}),f.createElement(NM,{type:"line",id:n,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:r}),f.createElement(oR,Qn({},t,{id:n}))))}var cx=f.memo(cR,oa);cx.displayName="Line";var uR=["domain","range"],dR=["domain","range"];function Uv(e,t){if(e==null)return{};var r,n,a=fR(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function fR(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function qv(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 ux(e,t){if(e===t)return!0;var{domain:r,range:n}=e,a=Uv(e,uR),{domain:i,range:o}=t,l=Uv(t,dR);return!qv(r,i)||!qv(n,o)?!1:oa(a,l)}var mR=["type"],vR=["dangerouslySetInnerHTML","ticks","scale"],hR=["id","scale"];function Bl(){return Bl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Bl.apply(null,arguments)}function Wv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Hv(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Wv(Object(r),!0).forEach(function(n){pR(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Wv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function pR(e,t,r){return(t=yR(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yR(e){var t=gR(e,"string");return typeof t=="symbol"?t:t+""}function gR(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function zl(e,t){if(e==null)return{};var r,n,a=bR(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function bR(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function xR(e){var t=pe(),r=f.useRef(null),n=gy(),{type:a}=e,i=zl(e,mR),o=us(n,"xAxis",a),l=f.useMemo(()=>{if(o!=null)return Hv(Hv({},i),{},{type:o})},[i,o]);return f.useLayoutEffect(()=>{l!=null&&(r.current===null?t(vI(l)):r.current!==l&&t(hI({prev:r.current,next:l})),r.current=l)},[l,t]),f.useLayoutEffect(()=>()=>{r.current&&(t(pI(r.current)),r.current=null)},[t]),null}var jR=e=>{var{xAxisId:t,className:r}=e,n=Z(hy),a=dt(),i="xAxis",o=Z(g=>Rg(g,i,t,a)),l=Z(g=>KO(g,t)),c=Z(g=>GO(g,t)),d=Z(g=>fg(g,t));if(l==null||c==null||d==null)return null;var{dangerouslySetInnerHTML:u,ticks:m,scale:h}=e,v=zl(e,vR),{id:p,scale:b}=d,y=zl(d,hR);return f.createElement(Eu,Bl({},v,y,{x:c.x,y:c.y,width:l.width,height:l.height,className:ve("recharts-".concat(i," ").concat(i),r),viewBox:n,ticks:o,axisType:i,axisId:t}))},wR={allowDataOverflow:$e.allowDataOverflow,allowDecimals:$e.allowDecimals,allowDuplicatedCategory:$e.allowDuplicatedCategory,angle:$e.angle,axisLine:Yt.axisLine,height:$e.height,hide:!1,includeHidden:$e.includeHidden,interval:$e.interval,label:!1,minTickGap:$e.minTickGap,mirror:$e.mirror,orientation:$e.orientation,padding:$e.padding,reversed:$e.reversed,scale:$e.scale,tick:$e.tick,tickCount:$e.tickCount,tickLine:Yt.tickLine,tickSize:Yt.tickSize,type:$e.type,niceTicks:$e.niceTicks,xAxisId:0},CR=e=>{var t=Ke(e,wR);return f.createElement(f.Fragment,null,f.createElement(xR,{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,niceTicks:t.niceTicks}),f.createElement(jR,t))},dx=f.memo(CR,ux);dx.displayName="XAxis";var kR=["type"],SR=["dangerouslySetInnerHTML","ticks","scale"],NR=["id","scale"];function Kl(){return Kl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Kl.apply(null,arguments)}function Gv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Xv(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Gv(Object(r),!0).forEach(function(n){PR(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Gv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function PR(e,t,r){return(t=AR(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function AR(e){var t=OR(e,"string");return typeof t=="symbol"?t:t+""}function OR(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Vl(e,t){if(e==null)return{};var r,n,a=ER(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function ER(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function _R(e){var t=pe(),r=f.useRef(null),n=gy(),{type:a}=e,i=Vl(e,kR),o=us(n,"yAxis",a),l=f.useMemo(()=>{if(o!=null)return Xv(Xv({},i),{},{type:o})},[o,i]);return f.useLayoutEffect(()=>{l!=null&&(r.current===null?t(yI(l)):r.current!==l&&t(gI({prev:r.current,next:l})),r.current=l)},[l,t]),f.useLayoutEffect(()=>()=>{r.current&&(t(bI(r.current)),r.current=null)},[t]),null}function TR(e){var{yAxisId:t,className:r,width:n,label:a}=e,i=f.useRef(null),o=f.useRef(null),l=Z(hy),c=dt(),d=pe(),u="yAxis",m=Z(P=>ZO(P,t)),h=Z(P=>YO(P,t)),v=Z(P=>Rg(P,u,t,c)),p=Z(P=>mg(P,t));if(f.useLayoutEffect(()=>{if(!(n!=="auto"||!m||Su(a)||f.isValidElement(a)||p==null)){var P=i.current;if(P){var A=P.getCalculatedWidth();Math.round(m.width)!==Math.round(A)&&d(xI({id:t,width:A}))}}},[v,m,d,a,t,n,p]),m==null||h==null||p==null)return null;var{dangerouslySetInnerHTML:b,ticks:y,scale:g}=e,j=Vl(e,SR),{id:x,scale:C}=p,w=Vl(p,NR);return f.createElement(Eu,Kl({},j,w,{ref:i,labelRef:o,x:h.x,y:h.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:m.width,height:m.height,className:ve("recharts-".concat(u," ").concat(u),r),viewBox:l,ticks:v,axisType:u,axisId:t}))}var MR={allowDataOverflow:Fe.allowDataOverflow,allowDecimals:Fe.allowDecimals,allowDuplicatedCategory:Fe.allowDuplicatedCategory,angle:Fe.angle,axisLine:Yt.axisLine,hide:!1,includeHidden:Fe.includeHidden,interval:Fe.interval,label:!1,minTickGap:Fe.minTickGap,mirror:Fe.mirror,orientation:Fe.orientation,padding:Fe.padding,reversed:Fe.reversed,scale:Fe.scale,tick:Fe.tick,tickCount:Fe.tickCount,tickLine:Yt.tickLine,tickSize:Yt.tickSize,type:Fe.type,niceTicks:Fe.niceTicks,width:Fe.width,yAxisId:0},IR=e=>{var t=Ke(e,MR);return f.createElement(f.Fragment,null,f.createElement(_R,{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,niceTicks:t.niceTicks}),f.createElement(TR,t))},fx=f.memo(IR,ux);fx.displayName="YAxis";var DR=(e,t)=>t,Tu=_([DR,xe,ig,We,rb,ir,b1,qe],N1);function RR(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Mu(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(RR(e)){var a=e.currentTarget.getBBox();r=a.width>0?t.width/a.width:1,n=a.height>0?t.height/a.height:1}else{var i=e.currentTarget;r=i.offsetWidth>0?t.width/i.offsetWidth:1,n=i.offsetHeight>0?t.height/i.offsetHeight:1}var o=(l,c)=>({relativeX:Math.round((l-t.left)/r),relativeY:Math.round((c-t.top)/n)});return"touches"in e?Array.from(e.touches).map(l=>o(l.clientX,l.clientY)):o(e.clientX,e.clientY)}var mx=yt("mouseClick"),vx=na();vx.startListening({actionCreator:mx,effect:(e,t)=>{var r=e.payload,n=Tu(t.getState(),Mu(r));n?.activeIndex!=null&&t.dispatch(mE({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var Ul=yt("mouseMove"),hx=na(),Hr=null,jr=null,qo=null;hx.startListening({actionCreator:Ul,effect:(e,t)=>{var r=e.payload,n=t.getState(),{throttleDelay:a,throttledEvents:i}=n.eventSettings,o=i==="all"||i?.includes("mousemove");Hr!==null&&(cancelAnimationFrame(Hr),Hr=null),jr!==null&&(typeof a!="number"||!o)&&(clearTimeout(jr),jr=null),qo=Mu(r);var l=()=>{var c=t.getState(),d=va(c,c.tooltip.settings.shared);if(!qo){Hr=null,jr=null;return}if(d==="axis"){var u=Tu(c,qo);u?.activeIndex!=null?t.dispatch(Wg({activeIndex:u.activeIndex,activeDataKey:void 0,activeCoordinate:u.activeCoordinate})):t.dispatch(qg())}Hr=null,jr=null};if(!o){l();return}a==="raf"?Hr=requestAnimationFrame(l):typeof a=="number"&&jr===null&&(jr=setTimeout(l,a))}});function LR(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 Yv={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},px=at({name:"rootProps",initialState:Yv,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:Yv.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}}}),$R=px.reducer,{updateOptions:FR}=px.actions,BR=null,zR={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},yx=at({name:"polarOptions",initialState:BR,reducers:zR}),{updatePolarOptions:KR}=yx.actions,VR=yx.reducer,gx=yt("keyDown"),bx=yt("focus"),xx=yt("blur"),Cs=na(),Gr=null,wr=null,Ea=null;Cs.startListening({actionCreator:gx,effect:(e,t)=>{Ea=e.payload,Gr!==null&&(cancelAnimationFrame(Gr),Gr=null);var r=t.getState(),{throttleDelay:n,throttledEvents:a}=r.eventSettings,i=a==="all"||a.includes("keydown");wr!==null&&(typeof n!="number"||!i)&&(clearTimeout(wr),wr=null);var o=()=>{try{var l=t.getState(),c=l.rootProps.accessibilityLayer!==!1;if(!c)return;var{keyboardInteraction:d}=l.tooltip,u=Ea;if(u!=="ArrowRight"&&u!=="ArrowLeft"&&u!=="Enter")return;var m=Fn(d,$r(l),un(l),dn(l)),h=m==null?-1:Number(m),v=!Number.isFinite(h)||h<0,p=ir(l),b=$r(l),y=va(l,l.tooltip.settings.shared);if(u==="Enter"){if(v)return;var g=xi(l,y,"hover",String(d.index));t.dispatch(bi({active:!d.active,activeIndex:d.index,activeCoordinate:g}));return}var j=rE(l),x=j==="left-to-right"?1:-1,C=u==="ArrowRight"?1:-1,w;if(v){var P=un(l),A=dn(l),S=C*x,N=z=>({active:!1,index:String(z),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(w=-1,S>0){for(var E=0;E<b.length;E++)if(Fn(N(E),b,P,A)!=null){w=E;break}}else for(var T=b.length-1;T>=0;T--)if(Fn(N(T),b,P,A)!=null){w=T;break}if(w<0)return}else{w=h+C*x;var O=p?.length||b.length;if(O===0||w>=O||w<0)return}var I=xi(l,y,"hover",String(w));t.dispatch(bi({active:!0,activeIndex:w.toString(),activeCoordinate:I}))}finally{Gr=null,wr=null}};if(!i){o();return}n==="raf"?Gr=requestAnimationFrame(o):typeof n=="number"&&wr===null&&(o(),Ea=null,wr=setTimeout(()=>{Ea?o():(wr=null,Gr=null)},n))}});Cs.startListening({actionCreator:bx,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var{keyboardInteraction:a}=r.tooltip;if(!a.active&&a.index==null){var i="0",o=va(r,r.tooltip.settings.shared),l=xi(r,o,"hover",String(i));t.dispatch(bi({active:!0,activeIndex:i,activeCoordinate:l}))}}}});Cs.startListening({actionCreator:xx,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var{keyboardInteraction:a}=r.tooltip;a.active&&t.dispatch(bi({active:!1,activeIndex:a.index,activeCoordinate:a.coordinate}))}}});function jx(e){e.persist();var{currentTarget:t}=e;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var a=Reflect.get(r,n);return typeof a=="function"?a.bind(r):a}})}var jt=yt("externalEvent"),wx=na(),_a=new Map,En=new Map,Wo=new Map;wx.startListening({actionCreator:jt,effect:(e,t)=>{var{handler:r,reactEvent:n}=e.payload;if(r!=null){var a=n.type,i=jx(n);Wo.set(a,{handler:r,reactEvent:i});var o=_a.get(a);o!==void 0&&(cancelAnimationFrame(o),_a.delete(a));var l=t.getState(),{throttleDelay:c,throttledEvents:d}=l.eventSettings,u=d,m=u==="all"||u?.includes(a),h=En.get(a);h!==void 0&&(typeof c!="number"||!m)&&(clearTimeout(h),En.delete(a));var v=()=>{var y=Wo.get(a);try{if(!y)return;var{handler:g,reactEvent:j}=y,x=t.getState(),C={activeCoordinate:n1(x),activeDataKey:sb(x),activeIndex:fn(x),activeLabel:ib(x),activeTooltipIndex:fn(x),isTooltipActive:a1(x)};g&&g(C,j)}finally{_a.delete(a),En.delete(a),Wo.delete(a)}};if(!m){v();return}if(c==="raf"){var p=requestAnimationFrame(v);_a.set(a,p)}else if(typeof c=="number"){if(!En.has(a)){v();var b=setTimeout(v,c);En.set(a,b)}}else v()}}});var UR=_([wn],e=>e.tooltipItemPayloads),qR=_([UR,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(i=>i.settings.graphicalItemId===r);if(n!=null){var{getPosition:a}=n;if(a!=null)return a(t)}}}),Cx=yt("touchMove"),kx=na(),Cr=null,or=null,Zv=null,_n=null;kx.startListening({actionCreator:Cx,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){_n=jx(r);var n=t.getState(),{throttleDelay:a,throttledEvents:i}=n.eventSettings,o=i==="all"||i.includes("touchmove");Cr!==null&&(cancelAnimationFrame(Cr),Cr=null),or!==null&&(typeof a!="number"||!o)&&(clearTimeout(or),or=null),Zv=Array.from(r.touches).map(c=>Mu({clientX:c.clientX,clientY:c.clientY,currentTarget:r.currentTarget}));var l=()=>{if(_n!=null){var c=t.getState(),d=va(c,c.tooltip.settings.shared);if(d==="axis"){var u,m=(u=Zv)===null||u===void 0?void 0:u[0];if(m==null){Cr=null,or=null;return}var h=Tu(c,m);h?.activeIndex!=null&&t.dispatch(Wg({activeIndex:h.activeIndex,activeDataKey:void 0,activeCoordinate:h.activeCoordinate}))}else if(d==="item"){var v,p=_n.touches[0];if(document.elementFromPoint==null||p==null)return;var b=document.elementFromPoint(p.clientX,p.clientY);if(!b||!b.getAttribute)return;var y=b.getAttribute(my),g=(v=b.getAttribute(vy))!==null&&v!==void 0?v:void 0,j=zr(c).find(w=>w.id===g);if(y==null||j==null||g==null)return;var{dataKey:x}=j,C=qR(c,y,g);t.dispatch(Ug({activeDataKey:x,activeIndex:y,activeCoordinate:C,activeGraphicalItemId:g}))}Cr=null,or=null}};if(!o){l();return}a==="raf"?Cr=requestAnimationFrame(l):typeof a=="number"&&or===null&&(l(),_n=null,or=setTimeout(()=>{_n?l():(or=null,Cr=null)},a))}}});var Iu={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},Sx=at({name:"eventSettings",initialState:Iu,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=t.payload.throttledEvents)}}}),{setEventSettings:WR}=Sx.actions,HR=Sx.reducer,GR=Dp({brush:EI,cartesianAxis:jI,chartData:r_,errorBars:OD,eventSettings:HR,graphicalItems:kM,layout:$S,legend:PN,options:Z1,polarAxis:MT,polarOptions:VR,referenceElements:II,renderedTicks:ZI,rootProps:$R,tooltip:vE,zIndex:F1}),XR=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return cS({reducer:GR,preloadedState:t,middleware:n=>{var a;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((a="es6")!==null&&a!==void 0?a:"")}).concat([vx.middleware,hx.middleware,Cs.middleware,wx.middleware,kx.middleware])},enhancers:n=>{var a=n;return typeof n=="function"&&(a=n()),a.concat(Yp({type:"raf"}))},devTools:{serialize:{replacer:LR},name:"recharts-".concat(r)}})};function Nx(e){var{preloadedState:t,children:r,reduxStoreName:n}=e,a=dt(),i=f.useRef(null);if(a)return r;i.current==null&&(i.current=XR(t,n));var o=Nc;return f.createElement(qN,{context:o,store:i.current},r)}function YR(e){var{layout:t,margin:r}=e,n=pe(),a=dt();return f.useEffect(()=>{a||(n(DS(t)),n(IS(r)))},[n,a,t,r]),null}var Px=f.memo(YR,oa);function Ax(e){var t=pe();return f.useEffect(()=>{t(FR(e))},[t,e]),null}var ZR=e=>{var t=pe();return f.useEffect(()=>{t(WR(e))},[t,e]),null},Ox=f.memo(ZR,oa);function Jv(e){var{zIndex:t,isPanorama:r}=e,n=f.useRef(null),a=pe();return f.useLayoutEffect(()=>(n.current&&a(L1({zIndex:t,element:n.current,isPanorama:r})),()=>{a($1({zIndex:t,isPanorama:r}))}),[a,t,r]),f.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function Qv(e){var{children:t,isPanorama:r}=e,n=Z(A1);if(!n||n.length===0)return t;var a=n.filter(o=>o<0),i=n.filter(o=>o>0);return f.createElement(f.Fragment,null,a.map(o=>f.createElement(Jv,{key:o,zIndex:o,isPanorama:r})),t,i.map(o=>f.createElement(Jv,{key:o,zIndex:o,isPanorama:r})))}var JR=["children"];function QR(e,t){if(e==null)return{};var r,n,a=eL(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function eL(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Ni(){return Ni=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ni.apply(null,arguments)}var tL={width:"100%",height:"100%",display:"block"},rL=f.forwardRef((e,t)=>{var r=Ic(),n=Dc(),a=_y();if(!on(r)||!on(n))return null;var{children:i,otherAttributes:o,title:l,desc:c}=e,d,u;return o!=null&&(typeof o.tabIndex=="number"?d=o.tabIndex:d=a?0:void 0,typeof o.role=="string"?u=o.role:u=a?"application":void 0),f.createElement(gc,Ni({},o,{title:l,desc:c,role:u,tabIndex:d,width:r,height:n,style:tL,ref:t}),i)}),nL=e=>{var{children:t}=e,r=Z(ts);if(!r)return null;var{width:n,height:a,y:i,x:o}=r;return f.createElement(gc,{width:n,height:a,x:o,y:i},t)},eh=f.forwardRef((e,t)=>{var{children:r}=e,n=QR(e,JR),a=dt();return a?f.createElement(nL,null,f.createElement(Qv,{isPanorama:!0},r)):f.createElement(rL,Ni({ref:t},n),f.createElement(Qv,{isPanorama:!1},r))});function aL(){var e=pe(),[t,r]=f.useState(null),n=Z(JS);return f.useEffect(()=>{if(t!=null){var a=t.getBoundingClientRect(),i=a.width/t.offsetWidth;me(i)&&i!==n&&e(LS(i))}},[t,e,n]),r}function th(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function iL(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?th(Object(r),!0).forEach(function(n){sL(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):th(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function sL(e,t,r){return(t=oL(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function oL(e){var t=lL(e,"string");return typeof t=="symbol"?t:t+""}function lL(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function vr(){return vr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},vr.apply(null,arguments)}var cL=()=>(d_(),null);function Pi(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var uL=f.forwardRef((e,t)=>{var r,n,a=f.useRef(null),[i,o]=f.useState({containerWidth:Pi((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:Pi((n=e.style)===null||n===void 0?void 0:n.height)}),l=f.useCallback((d,u)=>{o(m=>{var h=Math.round(d),v=Math.round(u);return m.containerWidth===h&&m.containerHeight===v?m:{containerWidth:h,containerHeight:v}})},[]),c=f.useCallback(d=>{if(typeof t=="function"&&t(d),a.current!=null&&(a.current.disconnect(),a.current=null),d!=null&&typeof ResizeObserver<"u"){var{width:u,height:m}=d.getBoundingClientRect();l(u,m);var h=p=>{var b=p[0];if(b!=null){var{width:y,height:g}=b.contentRect;l(y,g)}},v=new ResizeObserver(h);v.observe(d),a.current=v}},[t,l]);return f.useEffect(()=>()=>{var d=a.current;d?.disconnect()},[l]),f.createElement(f.Fragment,null,f.createElement(ia,{width:i.containerWidth,height:i.containerHeight}),f.createElement("div",vr({ref:c},e)))}),dL=f.forwardRef((e,t)=>{var{width:r,height:n}=e,[a,i]=f.useState({containerWidth:Pi(r),containerHeight:Pi(n)}),o=f.useCallback((c,d)=>{i(u=>{var m=Math.round(c),h=Math.round(d);return u.containerWidth===m&&u.containerHeight===h?u:{containerWidth:m,containerHeight:h}})},[]),l=f.useCallback(c=>{if(typeof t=="function"&&t(c),c!=null){var{width:d,height:u}=c.getBoundingClientRect();o(d,u)}},[t,o]);return f.createElement(f.Fragment,null,f.createElement(ia,{width:a.containerWidth,height:a.containerHeight}),f.createElement("div",vr({ref:l},e)))}),fL=f.forwardRef((e,t)=>{var{width:r,height:n}=e;return f.createElement(f.Fragment,null,f.createElement(ia,{width:r,height:n}),f.createElement("div",vr({ref:t},e)))}),mL=f.forwardRef((e,t)=>{var{width:r,height:n}=e;return typeof r=="string"||typeof n=="string"?f.createElement(dL,vr({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?f.createElement(fL,vr({},e,{width:r,height:n,ref:t})):f.createElement(f.Fragment,null,f.createElement(ia,{width:r,height:n}),f.createElement("div",vr({ref:t},e)))});function vL(e){return e?uL:mL}var hL=f.forwardRef((e,t)=>{var{children:r,className:n,height:a,onClick:i,onContextMenu:o,onDoubleClick:l,onMouseDown:c,onMouseEnter:d,onMouseLeave:u,onMouseMove:m,onMouseUp:h,onTouchEnd:v,onTouchMove:p,onTouchStart:b,style:y,width:g,responsive:j,dispatchTouchEvents:x=!0}=e,C=f.useRef(null),w=pe(),[P,A]=f.useState(null),[S,N]=f.useState(null),E=aL(),T=py(),O=T?.width>0?T.width:g,I=T?.height>0?T.height:a,z=f.useCallback(J=>{E(J),typeof t=="function"&&t(J),A(J),N(J),J!=null&&(C.current=J)},[E,t,A,N]),D=f.useCallback(J=>{w(mx(J)),w(jt({handler:i,reactEvent:J}))},[w,i]),V=f.useCallback(J=>{w(Ul(J)),w(jt({handler:d,reactEvent:J}))},[w,d]),B=f.useCallback(J=>{w(qg()),w(jt({handler:u,reactEvent:J}))},[w,u]),W=f.useCallback(J=>{w(Ul(J)),w(jt({handler:m,reactEvent:J}))},[w,m]),K=f.useCallback(()=>{w(bx())},[w]),te=f.useCallback(()=>{w(xx())},[w]),G=f.useCallback(J=>{w(gx(J.key))},[w]),M=f.useCallback(J=>{w(jt({handler:o,reactEvent:J}))},[w,o]),q=f.useCallback(J=>{w(jt({handler:l,reactEvent:J}))},[w,l]),H=f.useCallback(J=>{w(jt({handler:c,reactEvent:J}))},[w,c]),re=f.useCallback(J=>{w(jt({handler:h,reactEvent:J}))},[w,h]),ae=f.useCallback(J=>{w(jt({handler:b,reactEvent:J}))},[w,b]),ye=f.useCallback(J=>{x&&w(Cx(J)),w(jt({handler:p,reactEvent:J}))},[w,x,p]),oe=f.useCallback(J=>{w(jt({handler:v,reactEvent:J}))},[w,v]),He=vL(j);return f.createElement(vb.Provider,{value:P},f.createElement(fp.Provider,{value:S},f.createElement(He,{width:O??y?.width,height:I??y?.height,className:ve("recharts-wrapper",n),style:iL({position:"relative",cursor:"default",width:O,height:I},y),onClick:D,onContextMenu:M,onDoubleClick:q,onFocus:K,onBlur:te,onKeyDown:G,onMouseDown:H,onMouseEnter:V,onMouseLeave:B,onMouseMove:W,onMouseUp:re,onTouchEnd:oe,onTouchMove:ye,onTouchStart:ae,ref:z},f.createElement(cL,null),r)))}),pL=["width","height","responsive","children","className","style","compact","title","desc"];function yL(e,t){if(e==null)return{};var r,n,a=gL(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function gL(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var Ex=f.forwardRef((e,t)=>{var{width:r,height:n,responsive:a,children:i,className:o,style:l,compact:c,title:d,desc:u}=e,m=yL(e,pL),h=kt(m);return c?f.createElement(f.Fragment,null,f.createElement(ia,{width:r,height:n}),f.createElement(eh,{otherAttributes:h,title:d,desc:u},i)):f.createElement(hL,{className:o,style:l,width:r,height:n,responsive:a??!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},f.createElement(eh,{otherAttributes:h,title:d,desc:u,ref:t},f.createElement(RI,null,i)))});function ql(){return ql=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ql.apply(null,arguments)}function rh(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function bL(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?rh(Object(r),!0).forEach(function(n){xL(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):rh(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function xL(e,t,r){return(t=jL(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function jL(e){var t=wL(e,"string");return typeof t=="symbol"?t:t+""}function wL(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var CL={top:5,right:5,bottom:5,left:5},kL=bL({accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:CL,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},Iu),SL=f.forwardRef(function(t,r){var n,a=Ke(t.categoricalChartProps,kL),{chartName:i,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:c,categoricalChartProps:d}=t,u={chartName:i,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:c,eventEmitter:void 0};return f.createElement(Nx,{preloadedState:{options:u},reduxStoreName:(n=d.id)!==null&&n!==void 0?n:i},f.createElement(Gb,{chartData:d.data}),f.createElement(Px,{layout:a.layout,margin:a.margin}),f.createElement(Ox,{throttleDelay:a.throttleDelay,throttledEvents:a.throttledEvents}),f.createElement(Ax,{baseValue:a.baseValue,accessibilityLayer:a.accessibilityLayer,barCategoryGap:a.barCategoryGap,maxBarSize:a.maxBarSize,stackOffset:a.stackOffset,barGap:a.barGap,barSize:a.barSize,syncId:a.syncId,syncMethod:a.syncMethod,className:a.className,reverseStackOrder:a.reverseStackOrder}),f.createElement(Ex,ql({},a,{ref:r})))}),NL=["axis"],PL=f.forwardRef((e,t)=>f.createElement(SL,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:NL,tooltipPayloadSearcher:hb,categoricalChartProps:e,ref:t}));function AL(e){var t=pe();return f.useEffect(()=>{t(KR(e))},[t,e]),null}var OL=["layout"];function Wl(){return Wl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Wl.apply(null,arguments)}function EL(e,t){if(e==null)return{};var r,n,a=_L(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function _L(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function nh(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function TL(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?nh(Object(r),!0).forEach(function(n){ML(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):nh(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ML(e,t,r){return(t=IL(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function IL(e){var t=DL(e,"string");return typeof t=="symbol"?t:t+""}function DL(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var RL={top:5,right:5,bottom:5,left:5},_x=TL({accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:RL,reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},Iu),LL=f.forwardRef(function(t,r){var n,a=Ke(t.categoricalChartProps,_x),{layout:i}=a,o=EL(a,OL),{chartName:l,defaultTooltipEventType:c,validateTooltipEventTypes:d,tooltipPayloadSearcher:u}=t,m={chartName:l,defaultTooltipEventType:c,validateTooltipEventTypes:d,tooltipPayloadSearcher:u,eventEmitter:void 0};return f.createElement(Nx,{preloadedState:{options:m},reduxStoreName:(n=a.id)!==null&&n!==void 0?n:l},f.createElement(Gb,{chartData:a.data}),f.createElement(Px,{layout:i,margin:a.margin}),f.createElement(Ox,{throttleDelay:a.throttleDelay,throttledEvents:a.throttledEvents}),f.createElement(Ax,{baseValue:void 0,accessibilityLayer:a.accessibilityLayer,barCategoryGap:a.barCategoryGap,maxBarSize:a.maxBarSize,stackOffset:a.stackOffset,barGap:a.barGap,barSize:a.barSize,syncId:a.syncId,syncMethod:a.syncMethod,className:a.className,reverseStackOrder:a.reverseStackOrder}),f.createElement(AL,{cx:a.cx,cy:a.cy,startAngle:a.startAngle,endAngle:a.endAngle,innerRadius:a.innerRadius,outerRadius:a.outerRadius}),f.createElement(Ex,Wl({},o,{ref:r})))});function ah(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ih(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ah(Object(r),!0).forEach(function(n){$L(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ah(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function $L(e,t,r){return(t=FL(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function FL(e){var t=BL(e,"string");return typeof t=="symbol"?t:t+""}function BL(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var zL=["item"],KL=ih(ih({},_x),{},{layout:"centric",startAngle:0,endAngle:360}),VL=f.forwardRef((e,t)=>{var r=Ke(e,KL);return f.createElement(LL,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:zL,tooltipPayloadSearcher:hb,categoricalChartProps:r,ref:t})});const Ai="currentColor",UL=["--accent","--todo","--in-progress","--in-review","--triage","--color-success","--color-warning","--color-error"];function kr(e,t=Ai){if(typeof document>"u"||typeof getComputedStyle!="function")return t;const r=getComputedStyle(document.documentElement).getPropertyValue(e).trim();return r.length>0?r:t}function Du(){const e=kr("--text"),t=kr("--text-muted",e),r=kr("--accent"),n=kr("--surface-1",""),a=kr("--surface-2",n),i=kr("--border-subtle",""),o=UL.map(l=>kr(l)).filter(l=>l.length>0);return{stroke:r,fill:a,grid:i,tick:t,tooltipBackground:n,tooltipBorder:i,tooltipText:e,legendText:t,palette:o.length>0?o:[Ai]}}function Tx(e,t=Du()){if(t.palette.length===0)return Ai;const r=Number.isFinite(e)&&e>=0?Math.floor(e):0;return t.palette[r%t.palette.length]??Ai}const qL={width:320,height:220},Mx=120,Ix=120;function WL(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function HL(e){return e.map(t=>({label:t.label,value:Number.isFinite(t.value)&&t.value>0?t.value:0})).filter(t=>t.value>0)}function sh(e,t){return e!==void 0||t!==void 0?{width:e,height:t}:void 0}function oh(e){return typeof e=="number"||typeof e=="string"&&/^\d+(?:\.\d+)?%$/.test(e)?e:"100%"}function Oi(e,t){return Number.isFinite(e)&&e>=t?e:null}function GL(e,t,r){return{width:typeof t=="number"&&t>0?t:e.width,height:typeof r=="number"&&r>0?r:e.height}}function XL(e,t){return Math.abs(e.width-t.width)<.5&&Math.abs(e.height-t.height)<.5}function YL(e){const t=e.getBoundingClientRect(),r=Oi(t.width,Mx),n=Oi(t.height,Ix);return r===null||n===null?null:{width:r,height:n}}function ZL(){const e=f.useRef(null),[t,r]=f.useState(qL);return f.useLayoutEffect(()=>{const n=e.current;if(!n)return;const a=o=>{o&&r(l=>XL(l,o)?l:o)};if(a(YL(n)),typeof ResizeObserver>"u")return;const i=new ResizeObserver(o=>{const l=o[0];if(!l)return;const c=Oi(l.contentRect.width,Mx),d=Oi(l.contentRect.height,Ix);a(c===null||d===null?null:{width:c,height:d})});return i.observe(n),()=>i.disconnect()},[]),{ref:e,dimensions:t}}function Mt({data:e,ariaLabel:t,width:r,height:n,emptyLabel:a="No chart data"}){const i=Du(),{ref:o,dimensions:l}=ZL(),c=GL(l,r,n),d=HL(e);return d.length===0?s.jsx("div",{className:"cc-recharts-empty",role:"img","aria-label":t,style:sh(r,n),children:a}):s.jsx("div",{ref:o,className:"cc-recharts-chart",role:"img","aria-label":t,style:sh(r,n),"data-responsive-width":oh(r),"data-responsive-height":oh(n),children:s.jsxs(VL,{width:c.width,height:c.height,children:[s.jsx(Wb,{data:d,dataKey:"value",nameKey:"label",isAnimationActive:!WL(),children:d.map((u,m)=>s.jsx(gs,{fill:Tx(m,i),stroke:i.tooltipBorder},u.label))}),s.jsx(gb,{contentStyle:{background:i.tooltipBackground,borderColor:i.tooltipBorder,color:i.tooltipText},itemStyle:{color:i.tooltipText},labelStyle:{color:i.tooltipText}}),s.jsx($c,{wrapperStyle:{color:i.legendText}})]})})}const JL={width:360,height:220},Dx=120,Rx=120;function QL(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function e$(e){return Number.isFinite(e)&&e>0?e:0}function t$(e){const t=e.reduce((r,n)=>n>r?n:r,0);return t<=0?e.map(()=>0):e.map(r=>r/t*100)}function r$(e,t){return e.map((r,n)=>{const a=r.values.map(e$);return{label:r.label,dataKey:`series${n}`,values:a,plotKey:t==="series"?`series${n}Normalized`:`series${n}`,plotValues:t==="series"?t$(a):a}}).filter(r=>r.values.length>0)}function n$(e){const t=e.reduce((r,n)=>Math.max(r,n.values.length),0);return Array.from({length:t},(r,n)=>{const a={index:n+1};for(const i of e)a[i.dataKey]=i.values[n]??0,a[i.plotKey]=i.plotValues[n]??0;return a})}function lh(e,t){return e!==void 0||t!==void 0?{width:e,height:t}:void 0}function ch(e){return typeof e=="number"||typeof e=="string"&&/^\d+(?:\.\d+)?%$/.test(e)?e:"100%"}function Ei(e,t){return Number.isFinite(e)&&e>=t?e:null}function a$(e,t,r){return{width:typeof t=="number"&&t>0?t:e.width,height:typeof r=="number"&&r>0?r:e.height}}function i$(e,t){return Math.abs(e.width-t.width)<.5&&Math.abs(e.height-t.height)<.5}function s$(e){const t=e.getBoundingClientRect(),r=Ei(t.width,Dx),n=Ei(t.height,Rx);return r===null||n===null?null:{width:r,height:n}}function o$(){const e=f.useRef(null),[t,r]=f.useState(JL);return f.useLayoutEffect(()=>{const n=e.current;if(!n)return;const a=o=>{o&&r(l=>i$(l,o)?l:o)};if(a(s$(n)),typeof ResizeObserver>"u")return;const i=new ResizeObserver(o=>{const l=o[0];if(!l)return;const c=Ei(l.contentRect.width,Dx),d=Ei(l.contentRect.height,Rx);a(c===null||d===null?null:{width:c,height:d})});return i.observe(n),()=>i.disconnect()},[]),{ref:e,dimensions:t}}function br({series:e,ariaLabel:t,width:r,height:n,emptyLabel:a="No chart data",xAxisLabels:i,valueFormatter:o,scaleMode:l="shared"}){const c=Du(),{ref:d,dimensions:u}=o$(),m=a$(u,r,n),h=r$(e,l),v=n$(h),p=y=>{const g=typeof y=="number"?y:Number(y);return Number.isFinite(g)?i?.[g-1]??String(y):String(y)},b=y=>{const g=typeof y=="number"?y:Number(y);return o&&Number.isFinite(g)?o(g):String(y)};return h.length===0||v.length===0?s.jsx("div",{className:"cc-recharts-empty",role:"img","aria-label":t,style:lh(r,n),children:a}):s.jsx("div",{ref:d,className:"cc-recharts-chart",role:"img","aria-label":t,style:lh(r,n),"data-scale-mode":l,"data-responsive-width":ch(r),"data-responsive-height":ch(n),children:s.jsxs(PL,{width:m.width,height:m.height,data:v,children:[s.jsx(ex,{stroke:c.grid}),s.jsx(dx,{dataKey:"index",stroke:c.tick,tick:{fill:c.tick},tickFormatter:i?p:void 0}),s.jsx(fx,{stroke:c.tick,tick:{fill:c.tick},domain:l==="series"?[0,100]:void 0,tickFormatter:l==="series"?y=>`${y}%`:o}),s.jsx(gb,{contentStyle:{background:c.tooltipBackground,borderColor:c.tooltipBorder,color:c.tooltipText},itemStyle:{color:c.tooltipText},labelStyle:{color:c.tooltipText},formatter:o?y=>b(y):void 0,labelFormatter:i?p:void 0}),s.jsx($c,{wrapperStyle:{color:c.legendText}}),h.map((y,g)=>s.jsx(cx,{type:"monotone",dataKey:y.plotKey,name:y.label,stroke:Tx(g,c),isAnimationActive:!QL()},y.dataKey))]})})}function ft({testId:e,isLoading:t,error:r,isEmpty:n,emptyMessage:a,children:i}){const{t:o}=se("app");return t?s.jsxs("div",{className:"cc-loading-inline","data-testid":`cc-area-${e}-loading`,children:[s.jsx(Jl,{size:18,className:"spin"}),s.jsx("span",{children:o("commandCenter.area.loading","Loading…")})]}):r!==null?s.jsxs("div",{className:"cc-area-error","data-testid":`cc-area-${e}-error`,role:"alert",children:[s.jsx(Mi,{size:22}),s.jsx("p",{children:r})]}):n?s.jsxs("div",{className:"cc-area-empty","data-testid":`cc-area-${e}-empty`,children:[s.jsx(Ii,{size:24}),s.jsx("p",{children:a??o("commandCenter.area.empty","No data for the selected range.")})]}):s.jsx("div",{className:"cc-area","data-testid":`cc-area-${e}`,children:i})}function l$(e,t){if(t==="")return e;const r=t.slice(1);return`${e}${e.includes("?")?"&":"?"}${r}`}function Je(e,t,r={}){const[n,a]=f.useState(null),i=f.useRef(null),[o,l]=f.useState(!0),[c,d]=f.useState(null),u=iC(t),m=lp(t),{projectId:h}=r,v=f.useCallback(async()=>{if(m){l(!1);return}i.current!==null||l(!0),d(null);try{const y=await fr(mr(l$(e,u),h));i.current=y,a(y)}catch(y){d(y instanceof Error?y.message:"Failed to load analytics")}finally{l(!1)}},[e,u,m,h]);f.useEffect(()=>{v()},[v]),vn(v,r.pollMs??0,{enabled:!m&&r.pollMs!==void 0});const p=f.useCallback(()=>{v()},[v]);return{data:n,isLoading:o,error:c!==null&&n===null?c:null,reload:p}}const c$=15e3,u$=["hour","day","week"];function uh(e){return e.usd??-1}function dh(e){return e.key??"unknown"}function fh(e,t){return e.key??t}function Lx(e){return Ql(e.key??"")}function d$({group:e,unknownLabel:t}){const r=e.key??t;return s.jsxs("span",{className:"cc-model-label",children:[s.jsx(Sh,{provider:Lx(e),size:"sm"}),s.jsx("span",{className:"cc-model-label-text",children:r})]})}function f$(e,t,r){const n=[...e];return n.sort((a,i)=>{let o=0;return t==="key"?o=(a.key??"").localeCompare(i.key??""):t==="totalTokens"?o=a.totalTokens-i.totalTokens:o=uh(a.cost)-uh(i.cost),o===0&&(o=(a.key??"").localeCompare(i.key??"")),o*r}),n}function m$({range:e,projectId:t}){const{t:r}=se("app"),[n,a]=f.useState("day"),i=`/command-center/tokens?groupBy=model&granularity=${n}`,{data:o,isLoading:l,error:c}=Je(i,e,{pollMs:c$,projectId:t}),d=f.useMemo(()=>o?.groups??[],[o?.groups]),u=f.useMemo(()=>o?.series??[],[o?.series]),[m,h]=f.useState("totalTokens"),[v,p]=f.useState(-1),b=f.useMemo(()=>d.map(O=>O.key??"∅").join(" "),[d]),y=f.useRef(null);f.useEffect(()=>{if(y.current===null){y.current=b;return}y.current!==b&&(y.current=b,h("totalTokens"),p(-1))},[b]);const g=f.useMemo(()=>f$(d,m,v),[d,m,v]),j=f.useMemo(()=>[...d].sort((O,I)=>I.totalTokens-O.totalTokens||(O.key??"").localeCompare(I.key??"")),[d]),x=f.useMemo(()=>j.map(O=>({label:fh(O,r("commandCenter.tokens.unknownModel","(unknown)")),value:O.totalTokens,valueLabel:U(O.totalTokens),iconProvider:Lx(O)})),[j,r]),C=f.useMemo(()=>j.map(O=>({label:fh(O,r("commandCenter.tokens.unknownModel","(unknown)")),value:O.totalTokens})),[j,r]),w=f.useMemo(()=>[{label:r("commandCenter.tokens.input","Input"),values:u.map(O=>O.inputTokens)},{label:r("commandCenter.tokens.output","Output"),values:u.map(O=>O.outputTokens)},{label:r("commandCenter.tokens.cached","Cached"),values:u.map(O=>O.cachedTokens)},{label:r("commandCenter.tokens.total","Total"),values:u.map(O=>O.totalTokens)}],[u,r]);function P(O){O===m?p(I=>I===1?-1:1):(h(O),p(O==="key"?1:-1))}function A(O){return O!==m?null:s.jsx("span",{className:"cc-sort-caret",children:v===1?"▲":"▼"})}const S=o?.totals,N=f.useMemo(()=>u.map(O=>O.bucket).join(" "),[u]),E=S?.totalTokens??0,T=!o||E===0;return s.jsxs(ft,{testId:"tokens",isLoading:l,error:c,isEmpty:T,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.totalsTitle","Totals")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-tokens-total",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tokens.totalTokens","Total tokens")}),s.jsx("div",{className:"cc-stat-value cc-token-count-live",children:U(E)},E)]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-tokens-cost",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tokens.cost","Estimated cost")}),s.jsx("div",{className:"cc-stat-value",children:o?Tr(o.cost.usd,o.cost.unavailable):"—"}),o?.cost.stale?s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.tokens.stalePricing","pricing may be stale")}):null]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tokens.tasks","Tasks")}),s.jsx("div",{className:"cc-stat-value",children:U(S?.nTasks??0)})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tokens.chatMessages","Chat turns")}),s.jsx("div",{className:"cc-stat-value",children:U(S?.nChatMessages??0)})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsxs("div",{className:"cc-area-section-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.overTimeChart","Tokens over time")}),s.jsx("div",{className:"cc-token-granularity",role:"group","aria-label":r("commandCenter.tokens.granularity","Token chart granularity"),children:u$.map(O=>s.jsx("button",{type:"button",className:`btn ${O===n?"active":""}`,"aria-pressed":O===n,"data-testid":`cc-token-granularity-${O}`,onClick:()=>a(O),children:r(`commandCenter.tokens.granularity.${O}`,O)},O))})]}),s.jsx(oC,{points:u,ariaLabel:r("commandCenter.tokens.overTimeChart","Tokens over time")},N)]}),u.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-tokens-line",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.rechartsLine","Tokens trend")}),s.jsx(br,{series:w,ariaLabel:r("commandCenter.tokens.rechartsLine","Tokens trend")})]}):null,s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.byModelChart","Tokens by model")}),s.jsx(nt,{data:x,ariaLabel:r("commandCenter.tokens.byModelChart","Tokens by model")})]}),C.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-tokens-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.pieChart","Token share by model")}),s.jsx(Mt,{data:C,ariaLabel:r("commandCenter.tokens.pieChart","Token share by model")})]}):null,s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.tableTitle","Per-model breakdown")}),s.jsx("div",{className:"cc-table-wrap",children:s.jsxs("table",{className:"cc-table","data-testid":"cc-tokens-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsxs("th",{className:"cc-sortable",onClick:()=>P("key"),"data-testid":"cc-tokens-sort-key",children:[r("commandCenter.tokens.model","Model"),A("key")]}),s.jsx("th",{children:r("commandCenter.tokens.input","Input")}),s.jsx("th",{children:r("commandCenter.tokens.output","Output")}),s.jsx("th",{children:r("commandCenter.tokens.cached","Cached")}),s.jsxs("th",{className:"cc-sortable",onClick:()=>P("totalTokens"),"data-testid":"cc-tokens-sort-total",children:[r("commandCenter.tokens.total","Total"),A("totalTokens")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>P("cost"),"data-testid":"cc-tokens-sort-cost",children:[r("commandCenter.tokens.costCol","Cost"),A("cost")]})]})}),s.jsx("tbody",{children:g.map(O=>s.jsxs("tr",{"data-testid":`cc-tokens-row-${dh(O)}`,children:[s.jsx("td",{children:s.jsx(d$,{group:O,unknownLabel:r("commandCenter.tokens.unknownModel","(unknown)")})}),s.jsx("td",{children:U(O.inputTokens)}),s.jsx("td",{children:U(O.outputTokens)}),s.jsx("td",{children:U(O.cachedTokens)}),s.jsx("td",{children:U(O.totalTokens)}),s.jsx("td",{children:s.jsx("span",{className:O.cost.usd===null?"cc-unavailable":void 0,title:O.cost.unavailable?r("commandCenter.tokens.costUnavailable","No pricing for some or all usage"):void 0,children:Tr(O.cost.usd,O.cost.unavailable)})})]},dh(O)))})]})})]})]})}function v$({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i}=Je("/command-center/tools",e,{projectId:t}),o=f.useMemo(()=>[...n?.byCategory??[]].sort((m,h)=>h.count-m.count||m.category.localeCompare(h.category)),[n?.byCategory]),l=f.useMemo(()=>o.map(m=>({label:m.category,value:m.count,valueLabel:U(m.count)})),[o]),c=f.useMemo(()=>o.map(m=>({label:m.category,value:m.count})),[o]),d=!n||n.toolCalls===0,u=n?n.fullyAutonomous?r("commandCenter.tools.ratioAutonomous","{{ratio}} calls/session (fully autonomous)",{ratio:n.autonomyRatio.toFixed(1)}):`${n.autonomyRatio.toFixed(1)}:1`:"—";return s.jsxs(ft,{testId:"tools",isLoading:a,error:i,isEmpty:d,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tools.summaryTitle","Summary")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-tools-autonomy",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tools.autonomyRatio","Autonomy ratio")}),s.jsx("div",{className:"cc-stat-value",children:u}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.tools.autonomyHint","tool calls per human intervention")})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tools.toolCalls","Tool calls")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.toolCalls??0)})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tools.interventions","Interventions")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.interventions.total??0)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.tools.interventionBreakdown","{{approvals}} approvals · {{steers}} steers",{approvals:U(n?.interventions.approvals??0),steers:U(n?.interventions.userSteers??0)})})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tools.sessions","Sessions")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.sessions??0)})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tools.categoriesTitle","Tool categories")}),s.jsx(nt,{data:l,ariaLabel:r("commandCenter.tools.categoriesTitle","Tool categories")})]}),c.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-tools-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tools.pieChart","Tool category share")}),s.jsx(Mt,{data:c,ariaLabel:r("commandCenter.tools.pieChart","Tool category share")})]}):null]})}const h$=250,p$=100,Hl=1.8,en=3,y$={width:h$,height:p$};function g$(e,t){if(!Number.isFinite(e)||e<=0)return 0;const r=Number.isFinite(t)&&t>0?t:1;return Math.max(0,Math.min(100,e/r*100))}function mh(e){return Number.isFinite(e)?e:0}function b$(e,t){return!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0?null:{width:Math.max(e,en*2+Hl*2),height:Math.max(t,en*2+Hl*2)}}function x$(e,t,r,n,a){const i=Math.max(0,a.width-en*2),o=Math.max(0,a.height-en*2),l=r<=1?a.width/2:en+t/(r-1)*i,c=g$(e,n);return{x:mh(l),y:mh(en+o*(1-c/100))}}function j$(e,t,r){return e.map((n,a)=>x$(n,a,e.length,t,r))}function w$(e){return e.map(t=>`${t.x},${t.y}`).join(" ")}function C$(e,t){return Number.isFinite(t)&&t!==void 0&&t>0?t:e.reduce((r,n)=>{const a=n.values.reduce((i,o)=>Number.isFinite(o)&&o>i?o:i,0);return a>r?a:r},0)}function vh(e){return b$(e.width,e.height)}function k$(e,t){return Math.abs(e.width-t.width)<.5&&Math.abs(e.height-t.height)<.5}function Ta({series:e,ariaLabel:t,max:r}){const n=f.useRef(null),[a,i]=f.useState(y$),o=C$(e,r);return f.useLayoutEffect(()=>{const l=n.current;if(!l)return;const c=u=>{u&&i(m=>k$(m,u)?m:u)};if(c(vh(l.getBoundingClientRect())),typeof ResizeObserver>"u")return;const d=new ResizeObserver(u=>{const m=u[0];m&&c(vh(m.contentRect))});return d.observe(l),()=>d.disconnect()},[]),s.jsx("svg",{ref:n,className:"cc-line-chart",role:"img","aria-label":t,viewBox:`0 0 ${a.width} ${a.height}`,preserveAspectRatio:"none",children:e.map((l,c)=>{const d=j$(l.values,o,a),u=w$(d);return s.jsxs("g",{className:"cc-line-chart-series","aria-label":l.label,children:[d.length>1?s.jsx("polyline",{className:"cc-line-chart-path",points:u,pathLength:a.width,vectorEffect:"non-scaling-stroke","aria-hidden":"true"}):null,d.map((m,h)=>s.jsx("circle",{className:"cc-line-chart-point",cx:m.x,cy:m.y,r:Hl,vectorEffect:"non-scaling-stroke","aria-hidden":"true"},h))]},c)})})}function S$(e,t){if(!Number.isFinite(e)||e<=0)return 0;const r=Number.isFinite(t)&&t>0?t:1;return Math.max(0,Math.min(100,e/r*100))}function Ot({values:e,ariaLabel:t,max:r}){const n=r??e.reduce((a,i)=>i>a?i:a,0);return s.jsx("div",{className:"cc-sparkline",role:"img","aria-label":t,children:e.map((a,i)=>{const o=S$(a,n);return s.jsx("div",{className:"cc-sparkline-bar",style:{height:`${o}%`},"aria-hidden":"true"},i)})})}const N$=15e3;function P$({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i,reload:o}=Je("/command-center/activity",e,{projectId:t}),l=f.useMemo(()=>n?.daily??[],[n?.daily]),c=f.useMemo(()=>l.map(x=>x.messages),[l]),d=f.useMemo(()=>l.map(x=>x.activeAgents),[l]),u=f.useMemo(()=>l.map(x=>x.activeNodes),[l]),m=f.useMemo(()=>l.map(x=>x.agentRuns),[l]),h=f.useMemo(()=>l.map(x=>x.messages+x.activeAgents+x.activeNodes),[l]),v=f.useMemo(()=>[{label:r("commandCenter.activity.messages","Messages"),values:c},{label:r("commandCenter.activity.activeAgents","Active agents"),values:d},{label:r("commandCenter.activity.agentRuns","Agent runs"),values:m}],[m,d,c,r]),p=lp(e),b=a&&n===null;vn(o,N$,{enabled:!p});const y=n?.agentRuns??{total:0,active:0,completed:0,failed:0},g=f.useMemo(()=>[{label:r("commandCenter.activity.agentRunsActive","Active"),value:y.active},{label:r("commandCenter.activity.agentRunsCompleted","Completed"),value:y.completed},{label:r("commandCenter.activity.agentRunsFailed","Failed"),value:y.failed}].filter(x=>x.value>0),[y.active,y.completed,y.failed,r]),j=!n||n.sessions===0&&n.messages===0&&n.activeNodes===0&&n.activeAgents===0&&y.total===0;return s.jsxs(ft,{testId:"activity",isLoading:b,error:i,isEmpty:j,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.summaryTitle","Summary")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-sessions",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.sessions","Sessions")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.sessions??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-messages",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.messages","Messages")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.messages??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-nodes",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.activeNodes","Active nodes")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.activeNodes??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-agents",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.activeAgents","Active agents")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.activeAgents??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-agent-runs",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.agentRuns","Agent runs")}),s.jsx("div",{className:"cc-stat-value",children:U(y.total)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-agent-runs-active",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.agentRunsActive","Active")}),s.jsx("div",{className:"cc-stat-value",children:U(y.active)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-agent-runs-completed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.agentRunsCompleted","Completed")}),s.jsx("div",{className:"cc-stat-value",children:U(y.completed)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-agent-runs-failed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.agentRunsFailed","Failed")}),s.jsx("div",{className:"cc-stat-value",children:U(y.failed)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-stickiness",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.stickiness","Stickiness")}),s.jsx("div",{className:"cc-stat-value",children:n?`${Math.round(n.stickiness*100)}%`:"—"}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.activity.stickinessHint","DAU / MAU")})]})]})]}),l.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-line",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.rechartsLine","Activity trend")}),s.jsx(br,{series:v,ariaLabel:r("commandCenter.activity.rechartsLine","Activity trend"),scaleMode:"series"})]}):null,g.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.agentRunOutcomeShare","Agent run outcome share")}),s.jsx(Mt,{data:g,ariaLabel:r("commandCenter.activity.agentRunOutcomeShare","Agent run outcome share")})]}):null,s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-line-messages",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.messagesPerDay","Messages / day")}),s.jsx(Ta,{series:[{label:r("commandCenter.activity.messages","Messages"),values:c}],ariaLabel:r("commandCenter.activity.messagesPerDay","Messages / day")})]}),s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-line-agents",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.agentsPerDay","Active agents / day")}),s.jsx(Ta,{series:[{label:r("commandCenter.activity.activeAgents","Active agents"),values:d}],ariaLabel:r("commandCenter.activity.agentsPerDay","Active agents / day")})]}),s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-line-nodes",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.nodesPerDay","Active nodes / day")}),s.jsx(Ta,{series:[{label:r("commandCenter.activity.activeNodes","Active nodes"),values:u}],ariaLabel:r("commandCenter.activity.nodesPerDay","Active nodes / day")})]}),s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-agent-runs-sparkline",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.agentRunsPerDay","Agent runs / day")}),s.jsx(Ot,{values:m,ariaLabel:r("commandCenter.activity.agentRunsPerDay","Agent runs / day")})]}),s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-line-throughput",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.throughputPerDay","Throughput / day")}),s.jsx(Ta,{series:[{label:r("commandCenter.activity.throughput","Throughput"),values:h}],ariaLabel:r("commandCenter.activity.throughputPerDay","Throughput / day")})]})]})}const A$={"task:created":{label:"Created",icon:zn,color:"var(--todo)"},"task:moved":{label:"Moved",icon:Vh,color:"var(--in-progress)"},"task:updated":{label:"Updated",icon:La,color:"var(--text-muted)"},"task:merge-worktree-reacquired":{label:"Merge Worktree Reacquired",icon:La,color:"var(--color-info)"},"task:deleted":{label:"Deleted",icon:lj,color:"var(--color-error)"},"task:merged":{label:"Merged",icon:oj,color:"var(--color-success)"},"task:failed":{label:"Failed",icon:Zr,color:"var(--color-error)"},"task:duplicate-warning-overridden":{label:"Duplicate Override",icon:Zr,color:"var(--color-warning)"},"task:auto-archived-ghost-bug":{label:"Auto-Archived (Ghost Bug)",icon:Zr,color:"var(--color-warning)"},"task:auto-archived-duplicate":{label:"Auto-Archived (Duplicate)",icon:tn,color:"var(--text-muted)"},"task:auto-archived-deterministic-duplicate":{label:"Auto-Archived (Deterministic Duplicate)",icon:tn,color:"var(--text-muted)"},"task:auto-archived-near-duplicate":{label:"Auto-Archived (Near-Duplicate)",icon:tn,color:"var(--text-muted)"},"task:near-duplicate-flagged":{label:"Near-Duplicate Flagged",icon:Zr,color:"var(--color-warning)"},"settings:updated":{label:"Settings",icon:La,color:"var(--text-muted)"},"project:isolation-transition":{label:"Isolation",icon:Nh,color:"var(--color-info)"}};function O$(e){const t=sj(e);if(!t){const r=new Date(e);return Number.isFinite(r.getTime())?"Just now":r.toLocaleDateString()}switch(t.bucket){case"just-now":return"Just now";case"minutes":return`${t.count}m ago`;case"hours":return`${t.count}h ago`;case"days":return`${t.count}d ago`;case"weeks":case"older":return t.date.toLocaleDateString()}}function E$(e){return new Date(e).toLocaleString()}function $x({config:e,details:t,timestamp:r,headerSuffix:n}){const a=e.icon;return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"activity-feed-icon",style:{color:e.color},children:s.jsx(a,{size:16})}),s.jsxs("div",{className:"activity-feed-content",children:[s.jsxs("div",{className:"activity-feed-header",children:[s.jsx("span",{className:"activity-feed-type",children:e.label}),n]}),s.jsx("div",{className:"activity-feed-details",children:t}),s.jsx("div",{className:"activity-feed-meta",children:s.jsx("span",{className:"activity-feed-time",title:E$(r),children:O$(r)})})]})]})}function _$({entry:e,projectName:t}){const r=A$[e.type];return s.jsx("div",{className:"activity-feed-item","data-type":e.type,children:s.jsx($x,{config:r,timestamp:e.timestamp,headerSuffix:t?s.jsxs("span",{className:"activity-feed-project-badge",children:[s.jsx(Nh,{size:10}),t]}):void 0,details:s.jsxs(s.Fragment,{children:[e.taskId&&s.jsx("span",{className:"activity-feed-task-id",children:e.taskId}),e.taskTitle&&s.jsx("span",{className:"activity-feed-task-title",title:e.taskTitle,children:e.taskTitle}),s.jsx("span",{className:"activity-feed-description",children:e.details})]})})})}function T$(e,t){if(e.isLoading!==t.isLoading||e.error!==t.error||e.entries.length!==t.entries.length)return!1;for(let r=0;r<e.entries.length;r++){const n=e.entries[r],a=t.entries[r];if(n.id!==a.id||n.timestamp!==a.timestamp||n.type!==a.type||n.details!==a.details||n.taskId!==a.taskId||n.taskTitle!==a.taskTitle)return!1}return!0}function M$({entries:e,isLoading:t=!1,error:r=null,projectNames:n={},emptyMessage:a}){const{t:i}=se("app"),o=a??i("activityFeed.noRecentActivity","No recent activity"),l=f.useCallback(d=>n[d]||d,[n]),c=f.useMemo(()=>{const d=[];let u=null;for(const m of e){const h=new Date(m.timestamp).toLocaleDateString();(!u||u.date!==h)&&(u={date:h,entries:[]},d.push(u)),u.entries.push(m)}return d},[e]);return t?s.jsx("div",{className:"activity-feed activity-feed-loading",children:s.jsx("div",{className:"activity-feed-skeleton",children:[1,2,3].map(d=>s.jsxs("div",{className:"activity-feed-skeleton-item",children:[s.jsx("div",{className:"activity-feed-skeleton-icon"}),s.jsxs("div",{className:"activity-feed-skeleton-content",children:[s.jsx("div",{className:"activity-feed-skeleton-line"}),s.jsx("div",{className:"activity-feed-skeleton-line short"})]})]},d))})}):r?s.jsx("div",{className:"activity-feed activity-feed-error",children:s.jsxs("div",{className:"activity-feed-error-message",children:[s.jsx(Zr,{size:24}),s.jsx("p",{children:r})]})}):e.length===0?s.jsx("div",{className:"activity-feed activity-feed-empty",children:s.jsxs("div",{className:"activity-feed-empty-state",children:[s.jsx(el,{size:32}),s.jsx("p",{children:o}),s.jsx("span",{className:"activity-feed-empty-hint",children:i("activityFeed.emptyHint","Activity will appear here when tasks are created, moved, or completed")})]})}):s.jsx("div",{className:"activity-feed",children:c.map(d=>s.jsxs("div",{className:"activity-feed-group",children:[s.jsxs("div",{className:"activity-feed-group-header",children:[s.jsx("span",{className:"activity-feed-group-date",children:d.date}),s.jsx("span",{className:"activity-feed-group-count",children:i("activityFeed.eventCount",{count:d.entries.length,defaultValue_one:"{{count}} event",defaultValue_other:"{{count}} events"})})]}),s.jsx("div",{className:"activity-feed-list",children:d.entries.map(u=>s.jsx(_$,{entry:u,projectName:l(u.projectId)},u.id))})]},d.date))})}f.memo(M$,T$);const Ru={"task:started":{label:"Task started",icon:Di,color:"var(--in-progress)"},"task:handed-off":{label:"Task handed off",icon:Vh,color:"var(--in-progress)"},"task:completed":{label:"Task completed",icon:el,color:"var(--color-success)"},"agent:state-changed":{label:"Agent state changed",icon:Ph,color:"var(--text-muted)"},"workflow:gate-passed":{label:"Workflow gate passed",icon:el,color:"var(--color-success)"},"workflow:gate-failed":{label:"Workflow gate failed",icon:Zr,color:"var(--color-error)"},"approval:requested":{label:"Approval requested",icon:cj,color:"var(--color-warning)"}},I$={label:"Activity",icon:Ph,color:"var(--text-muted)"},D$=50,R$=3;function L$(e,t){const r=BigInt(e.seq),n=BigInt(t.seq);return r===n?0:r>n?-1:1}function Fx(e,t){const r=new Map;for(const n of e)r.set(n.eventId,n);for(const n of t)r.set(n.eventId,n);return[...r.values()].sort(L$)}function $$(e,t){return t===null||BigInt(e)<BigInt(t)}function F$(e){return e===null?{}:{before:e}}function B$(e){return typeof e=="object"&&e!==null&&e.truncated===!0}function z$(e){const{requestedCursor:t,existing:r,page:n,consecutiveNoProgress:a}=e,i=Fx(r,n.events),o=i.length-r.length;if(n.nextCursor===null)return{merged:i,nextCursor:null,hasMore:!1,reason:"end-of-history",consecutiveNoProgress:0};const l=a+1,c=$$(n.nextCursor,t);return(o===0||!c)&&l>=R$?{merged:i,nextCursor:t,hasMore:!1,reason:"attempt-cap",consecutiveNoProgress:l}:o===0?{merged:i,nextCursor:n.nextCursor,hasMore:!0,reason:"no-progress",consecutiveNoProgress:l}:c?{merged:i,nextCursor:n.nextCursor,hasMore:!0,reason:null,consecutiveNoProgress:0}:{merged:i,nextCursor:t,hasMore:!0,reason:"cursor-rewind",consecutiveNoProgress:l}}const K$=5;function V$(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Invalid agent activity response");const t=e;if(!Array.isArray(t.events)||t.nextCursor!==null&&(typeof t.nextCursor!="string"||!/^\d+$/.test(t.nextCursor)))throw new Error("Invalid agent activity response");return{events:t.events.filter(Bx),nextCursor:t.nextCursor}}function Bx(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;const t=e,r=n=>n===null||typeof n=="string";return typeof t.seq=="string"&&/^\d+$/.test(t.seq)&&typeof t.eventId=="string"&&typeof t.projectId=="string"&&typeof t.agentId=="string"&&typeof t.type=="string"&&typeof t.summary=="string"&&typeof t.occurredAt=="string"&&r(t.taskId)&&r(t.fromAgentId)&&r(t.toAgentId)&&(t.metadata===null||typeof t.metadata=="object"&&!Array.isArray(t.metadata))}function U$({projectId:e,filters:t,range:r}){const[n,a]=f.useState([]),i=f.useRef([]),[o,l]=f.useState(!0),[c,d]=f.useState(!1),[u,m]=f.useState(null),[h,v]=f.useState(null),[p,b]=f.useState(!1),[y,g]=f.useState(null),j=f.useRef(0),x=f.useRef(null),C=f.useRef(0),w=f.useRef(0),P=f.useRef(t);P.current=t;const A=JSON.stringify([e,t.agentId,t.taskId,t.type]),S=`${r?.from??""}|${r?.to??""}|${r?.preset??""}`,N=f.useCallback(z=>{i.current=z,a(z)},[]),E=f.useCallback(async(z,D)=>{const V=j.current;if(!e){N([]),l(!1);return}if(!(!D&&(z===null||x.current===z))){D?(l(!0),m(null)):(x.current=z,d(!0));try{const B=await G0({projectId:e,limit:D$,...P.current,...F$(z)}),W=V$(B);if(V!==j.current)return;const K=z$({requestedCursor:z,existing:i.current,page:W,consecutiveNoProgress:C.current});N(K.merged),v(K.nextCursor),b(K.hasMore),g(K.reason),C.current=K.consecutiveNoProgress}catch(B){V===j.current&&m(B instanceof Error?B.message:"Failed to load agent activity")}finally{V===j.current&&(l(!1),d(!1),x.current=null)}}},[N,A,e]),T=f.useCallback(()=>{j.current+=1,x.current=null,C.current=0,w.current=0,v(null),b(!1),g(null),N([]),E(null,!0)},[N,E]);f.useEffect(()=>{T()},[A,T]);const O=f.useCallback(()=>{!p||h===null||E(h,!1)},[p,h,E]);f.useEffect(()=>qa("/api/events",{events:{"agent:activity":D=>{let V;try{V=JSON.parse(D.data)}catch{return}if(B$(V)){T();return}if(!Bx(V))return;const B=V,W=P.current;B.projectId!==e||!B.eventId||!B.seq||W.agentId&&B.agentId!==W.agentId||W.taskId&&B.taskId!==W.taskId||W.type&&B.type!==W.type||N(Fx(i.current,[B]))}},onReconnect:T}),[N,e,T]);const I=f.useMemo(()=>{if(!r||!r.from&&!r.to)return n;const z=r.from?Date.parse(r.from):-1/0,D=r.to?Date.parse(r.to):1/0;return Number.isNaN(z)||Number.isNaN(D)?n:n.filter(V=>{const B=Date.parse(V.occurredAt);return Number.isFinite(B)&&B>=z&&B<=D})},[n,r]);return f.useEffect(()=>{w.current=0},[S]),f.useEffect(()=>{if(!r?.from||!p||h===null||w.current>=K$)return;const z=Date.parse(r.from),D=n.at(-1);!Number.isFinite(z)||!D||Date.parse(D.occurredAt)<=z||(w.current+=1,O())},[n,p,O,h,r?.from,S]),{events:n,visibleEvents:I,isLoading:o,isLoadingOlder:c,error:u,hasMore:p,exhaustedReason:y,loadOlder:O,reload:T}}const q$=100,Ho=100,W$=Object.keys(Ru);function H$({projectId:e,range:t,onOpenAgent:r,onOpenTask:n}){const{t:a}=se("app"),[i,o]=f.useState("live"),[l,c]=f.useState({}),[d,u]=f.useState(Ho),m=U$({projectId:e,filters:l,range:t});f.useEffect(()=>{u(Ho)},[l.agentId,l.taskId,l.type,t.from,t.to]);const h=f.useMemo(()=>[...new Set(m.events.map(p=>p.agentId).filter(Boolean))].sort(),[m.events]),v=i==="live"?m.events.slice(0,q$):m.visibleEvents.slice(0,d);return s.jsxs("section",{className:"cc-agent-activity",children:[s.jsxs("div",{className:"cc-agent-activity-mode",role:"group","aria-label":a("commandCenter.agentActivity.mode","Activity mode"),children:[s.jsx("button",{type:"button",className:"btn btn-sm","aria-pressed":i==="live",onClick:()=>o("live"),children:a("commandCenter.agentActivity.live","Live")}),s.jsx("button",{type:"button",className:"btn btn-sm","aria-pressed":i==="timeline",onClick:()=>o("timeline"),children:a("commandCenter.agentActivity.timeline","Timeline")})]}),i==="timeline"?s.jsxs("div",{className:"cc-agent-activity-filters",children:[s.jsxs("select",{className:"input","aria-label":a("commandCenter.agentActivity.agentFilter","Filter by agent"),value:l.agentId??"",onChange:p=>c(b=>({...b,agentId:p.target.value||void 0})),children:[s.jsx("option",{value:"",children:a("commandCenter.agentActivity.allAgents","All agents")}),h.map(p=>s.jsx("option",{value:p,children:p},p))]}),s.jsx("input",{className:"input","aria-label":a("commandCenter.agentActivity.taskFilter","Filter by task"),value:l.taskId??"",placeholder:a("commandCenter.agentActivity.taskFilter","Filter by task"),onChange:p=>c(b=>({...b,taskId:p.target.value||void 0}))}),s.jsxs("select",{className:"input","aria-label":a("commandCenter.agentActivity.typeFilter","Filter by event type"),value:l.type??"",onChange:p=>c(b=>({...b,type:p.target.value||void 0})),children:[s.jsx("option",{value:"",children:a("commandCenter.agentActivity.allTypes","All event types")}),W$.map(p=>s.jsx("option",{value:p,children:Ru[p].label},p))]}),s.jsx("span",{className:"cc-agent-activity-range-note",children:a("commandCenter.agentActivity.rangeNote","Time range filters loaded events; it is not sent to the server.")})]}):null,s.jsxs(ft,{testId:"agent-activity",isLoading:m.isLoading,error:m.error,isEmpty:!v.length&&!m.hasMore,emptyMessage:a("commandCenter.agentActivity.empty","No agent activity yet."),children:[s.jsx("div",{className:"cc-agent-activity-list",children:v.map(p=>s.jsx(G$,{event:p,onOpenAgent:r,onOpenTask:n},p.eventId))}),i==="timeline"&&d<m.visibleEvents.length?s.jsx("button",{type:"button",className:"btn",onClick:()=>u(p=>p+Ho),children:a("commandCenter.agentActivity.showMore","Show more loaded activity")}):null,i==="timeline"&&m.hasMore?s.jsx("button",{type:"button",className:"btn",onClick:m.loadOlder,disabled:m.isLoadingOlder,children:m.isLoadingOlder?a("commandCenter.agentActivity.loadingOlder","Loading…"):a("commandCenter.agentActivity.loadOlder","Load older")}):null,i==="timeline"&&!m.hasMore&&m.exhaustedReason?s.jsx("p",{className:"cc-agent-activity-end",children:a("commandCenter.agentActivity.end","End of activity history")}):null]})]})}function G$({event:e,onOpenAgent:t,onOpenTask:r}){const{t:n}=se("app"),a=Ru[e.type]??I$,i={...a,label:n(`commandCenter.agentActivity.eventTypes.${e.type}`,a.label)},o=n("commandCenter.agentActivity.openTask","Open task {{taskId}}",{taskId:e.taskId}),l=n("commandCenter.agentActivity.openAgent","Open agent {{agentId}}",{agentId:e.agentId}),c=s.jsx($x,{config:i,timestamp:e.occurredAt,details:s.jsx("span",{className:"activity-feed-description",children:e.summary})});return e.taskId&&r?s.jsxs("div",{className:"cc-agent-activity-target",children:[s.jsx("button",{type:"button",className:"cc-agent-activity-row","aria-label":o,onClick:()=>r(e.taskId),children:c}),t?s.jsx("button",{type:"button",className:"btn btn-sm","aria-label":l,onClick:()=>t(e.agentId),children:e.agentId}):null]}):e.agentId&&t?s.jsx("button",{type:"button",className:"cc-agent-activity-row","aria-label":l,onClick:()=>t(e.agentId),children:c}):s.jsx("div",{className:"cc-agent-activity-row",children:c})}function X$({range:e,projectId:t}){const{t:r}=se("app"),{confirm:n}=ec(),{data:a,isLoading:i,error:o}=Je("/command-center/productivity",e,{projectId:t}),[l,c]=f.useState(!1),[d,u]=f.useState(null),[m,h]=f.useState(null),v=f.useCallback(async()=>{if(!l){c(!0),h(null),u(null);try{const D=await Lu({dryRun:!0});u(D)}catch(D){h(D instanceof Error?D.message:r("commandCenter.productivity.backfillFailed","Failed to backfill historical LOC stats"))}finally{c(!1)}}},[l,r]),p=f.useCallback(async()=>{if(!(l||!await n({title:r("commandCenter.productivity.backfillConfirmTitle","Apply LOC backfill?"),message:r("commandCenter.productivity.backfillConfirmMessage","This will persist diff stats to task_commit_associations for historical commit associations. Review the dry-run counts before applying."),confirmLabel:r("commandCenter.productivity.backfillApply","Apply backfill"),cancelLabel:r("common.cancel","Cancel"),danger:!0}))){c(!0),h(null);try{const V=await Lu({dryRun:!1});u(V)}catch(V){h(V instanceof Error?V.message:r("commandCenter.productivity.backfillFailed","Failed to backfill historical LOC stats"))}finally{c(!1)}}},[n,l,r]),b=f.useMemo(()=>(a?.byLanguage??[]).slice(0,12).map(D=>({label:D.language,value:D.count,valueLabel:U(D.count)})),[a?.byLanguage]),y=f.useMemo(()=>(a?.byLanguage??[]).slice(0,12).map(D=>({label:D.language,value:D.count})),[a?.byLanguage]),g=a?.taskDuration??{completedTasks:0,averageMs:null,medianMs:null,p90Ms:null,totalMs:null,unavailable:!0},j=f.useMemo(()=>(a?.taskDurationTrend??[]).filter(D=>!D.unavailable&&D.completedTasks>0&&D.averageMs!==null&&D.medianMs!==null&&Number.isFinite(D.averageMs)&&Number.isFinite(D.medianMs)),[a?.taskDurationTrend]),x=f.useMemo(()=>[{label:r("commandCenter.productivity.averageDuration","Average"),values:j.map(D=>D.averageMs??0)},{label:r("commandCenter.productivity.medianDuration","Median"),values:j.map(D=>D.medianMs??0)}],[r,j]),C=f.useMemo(()=>j.map(D=>D.bucket),[j]),w=j.length>0,P=a?.loc??{value:null,unavailable:!0},A=a?.hoursSaved??{value:null,unavailable:!0},S=!a||a.modifiedFiles===0&&a.commits===0&&a.pullRequests===0&&g.completedTasks===0,N=!a||P.unavailable||P.value===null,E=!a||A.unavailable||A.value===null,T=!a||g.unavailable,O=r("commandCenter.productivity.durationUnavailable","Task duration is unavailable until completed tasks have active execution time recorded"),I=m?"cc-productivity-backfill-status--error":l?"cc-productivity-backfill-status--warning":"",z=(D,V)=>T||D===null?s.jsx("span",{className:"cc-unavailable",title:O,"data-testid":V,children:"—"}):nd(D);return s.jsxs(ft,{testId:"productivity",isLoading:i,error:o,isEmpty:S,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.outcomesTitle","Outcomes")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-commits",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.commits","Commits")}),s.jsx("div",{className:"cc-stat-value",children:U(a?.commits??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-prs",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.pullRequests","Pull requests")}),s.jsx("div",{className:"cc-stat-value",children:U(a?.pullRequests??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-hours-saved",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.hoursSaved","Human hours saved")}),s.jsx("div",{className:"cc-stat-value",children:E?s.jsx("span",{className:"cc-unavailable",title:r("commandCenter.productivity.hoursSavedUnavailable","Estimated human hours saved is unavailable until commit diff stats exist"),"data-testid":"cc-productivity-hours-saved-unavailable",children:"—"}):U(A.value??0)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.productivity.hoursSavedEstimate","estimate from lines changed")})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.volumeTitle","Volume (proxy)")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-files",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.modifiedFiles","Files modified")}),s.jsx("div",{className:"cc-stat-value",children:U(a?.modifiedFiles??0)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.productivity.volumeHint","volume, not outcome")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-loc",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.loc","Lines changed")}),s.jsx("div",{className:"cc-stat-value",children:N?s.jsx("span",{className:"cc-unavailable",title:r("commandCenter.productivity.locUnavailable","LOC is unavailable until commit diff stats are recorded"),"data-testid":"cc-productivity-loc-unavailable",children:"—"}):U(P.value??0)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.productivity.volumeHint","volume, not outcome")}),s.jsxs("div",{className:"cc-productivity-backfill-actions",children:[s.jsxs("button",{type:"button",className:"btn","data-testid":"cc-productivity-backfill-button",onClick:()=>void v(),disabled:l,children:[s.jsx(Gt,{className:l?"spin":void 0}),s.jsx("span",{children:l?r("commandCenter.productivity.backfillBusy","Checking historical LOC…"):r("commandCenter.productivity.backfillButton","Preview LOC backfill")})]}),d?.dryRun?s.jsx("button",{type:"button",className:"btn","data-testid":"cc-productivity-backfill-apply-button",onClick:()=>void p(),disabled:l,children:r("commandCenter.productivity.backfillApply","Apply backfill")}):null]}),l||d||m?s.jsxs("div",{className:`cc-productivity-backfill-status ${I}`.trim(),"data-testid":"cc-productivity-backfill-result",role:"status",children:[l?s.jsx("span",{children:r("commandCenter.productivity.backfillPending","LOC backfill check is running.")}):null,m?s.jsx("span",{children:m}):null,d?s.jsxs(s.Fragment,{children:[s.jsx("span",{children:r("commandCenter.productivity.backfillResult","Backfill report")}),s.jsx("span",{children:d.dryRun?r("commandCenter.productivity.backfillPreviewLabel","Dry-run preview"):r("commandCenter.productivity.backfillAppliedLabel","Applied")}),s.jsxs("span",{children:[r("commandCenter.productivity.backfillScannedRows","Scanned rows"),": ",d.scannedRows]}),s.jsxs("span",{children:[r("commandCenter.productivity.backfillDistinctCommits","Distinct commits"),": ",d.distinctCommits]}),s.jsxs("span",{children:[r("commandCenter.productivity.backfillUpdatedRows","Updated rows"),": ",d.updatedRows]}),s.jsxs("span",{children:[r("commandCenter.productivity.backfillSkippedUnavailableCommits","Skipped unavailable commits"),": ",d.skippedUnavailableCommits]}),s.jsxs("span",{children:[r("commandCenter.productivity.backfillSkippedInvalidShas","Skipped invalid SHAs"),": ",d.skippedInvalidShas]})]}):null]}):null]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.durationTitle","Task duration")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-duration-completed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.completedTasks","Completed tasks")}),s.jsx("div",{className:"cc-stat-value",children:U(g.completedTasks)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-duration-avg",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.averageDuration","Average")}),s.jsx("div",{className:"cc-stat-value",children:z(g.averageMs,"cc-productivity-duration-avg-unavailable")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-duration-median",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.medianDuration","Median")}),s.jsx("div",{className:"cc-stat-value",children:z(g.medianMs,"cc-productivity-duration-median-unavailable")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-duration-p90",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.p90Duration","P90")}),s.jsx("div",{className:"cc-stat-value",children:z(g.p90Ms,"cc-productivity-duration-p90-unavailable")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-duration-total",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.totalDuration","Total active")}),s.jsx("div",{className:"cc-stat-value",children:z(g.totalMs,"cc-productivity-duration-total-unavailable")})]})]})]}),w?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-productivity-duration-trend",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.durationTrendTitle","Task duration over time")}),s.jsx(br,{series:x,ariaLabel:r("commandCenter.productivity.durationTrendTitle","Task duration over time"),xAxisLabels:C,valueFormatter:nd})]}):null,s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.byLanguage","Files by language")}),s.jsx(nt,{data:b,ariaLabel:r("commandCenter.productivity.byLanguage","Files by language")})]}),y.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-productivity-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.languagePie","Language share")}),s.jsx(Mt,{data:y,ariaLabel:r("commandCenter.productivity.languagePie","Language share")})]}):null]})}function Y$({projectId:e,addToast:t=()=>{}}){const{t:r}=se("app"),{artifacts:n,loading:a,error:i}=uj({projectId:e}),[o,l]=f.useState(()=>typeof window<"u"&&window.matchMedia?.("(max-width: 768px)").matches===!0),c=f.useMemo(()=>n.filter(u=>!!u.taskId&&dj(u)),[n]),d=f.useMemo(()=>c.map(({taskId:u,taskTitle:m,...h})=>h),[c]);return f.useEffect(()=>{const u=typeof window>"u"?void 0:window.matchMedia?.("(max-width: 768px)");if(!u)return;const m=()=>l(u.matches);return m(),u.addEventListener("change",m),()=>u.removeEventListener("change",m)},[]),s.jsx(ft,{testId:"review-artifacts",isLoading:a,error:i,isEmpty:c.length===0,emptyMessage:r("commandCenter.reviewArtifacts.empty","No review artifacts are available yet."),children:s.jsxs("section",{"aria-label":r("commandCenter.reviewArtifacts.title","Review artifacts"),children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.reviewArtifacts.title","Review artifacts")}),s.jsx(fj,{artifacts:d,projectId:e,isMobile:o,addToast:t,onOpenTask:()=>{}})]})})}function Z$(e){const t=URL.createObjectURL(new Blob([JSON.stringify(e,null,2)],{type:"application/json"})),r=document.createElement("a");r.href=t,r.download="fusion-org-bundle.json",r.click(),URL.revokeObjectURL(t)}function J$({projectId:e,onSettingsRefresh:t}){const{t:r}=se("app"),{confirm:n}=ec(),[a,i]=f.useState("idle"),[o,l]=f.useState("idle"),[c,d]=f.useState(""),[u,m]=f.useState(null),[h,v]=f.useState(null),[p,b]=f.useState(null),y=f.useRef(0),g=async()=>{i("working");try{const P=await fr(mr("/org/export",e),{method:"POST"});Z$(P.bundle),i("success")}catch{i("error")}},j=()=>{try{const P=JSON.parse(c);if(!P||typeof P!="object"||Array.isArray(P))throw new Error("invalid");return P}catch{return m(r("commandCenter.portability.import.invalid","Paste a valid org bundle JSON document")),l("error"),null}},x=async()=>{const P=j();if(!P)return;const A=y.current;l("previewing"),m(null);try{const S=await fr(mr("/org/import",e),{method:"POST",body:JSON.stringify({bundle:P,dryRun:!0})});if(y.current!==A)return;v(S.result),b(P),l("previewed")}catch(S){if(y.current!==A)return;m(S instanceof Error?S.message:r("commandCenter.portability.import.error","Unable to preview import")),l("error")}},C=async()=>{if(!(!p||!await n({title:r("commandCenter.portability.import.confirmTitle","Import organization bundle?"),message:r("commandCenter.portability.import.confirmMessage","This applies the previewed configuration to this project."),confirmLabel:r("commandCenter.portability.import.confirmApply","Import bundle"),cancelLabel:r("actions.cancel","Cancel")}))){l("importing");try{await fr(mr("/org/import",e),{method:"POST",body:JSON.stringify({bundle:p,dryRun:!1})}),await t(),l("success")}catch(A){m(A instanceof Error?A.message:r("commandCenter.portability.import.error","Unable to import bundle")),l("error")}}},w=a==="working"?r("commandCenter.portability.export.working","Exporting…"):r("commandCenter.portability.export.action","Export org bundle");return s.jsx(s.Fragment,{children:s.jsxs("section",{className:"card cc-controls-card cc-portability-card","data-testid":"cc-controls-org-portability",children:[s.jsxs("div",{className:"cc-controls-card-header",children:[s.jsxs("div",{children:[s.jsx("h3",{children:r("commandCenter.portability.title","Org export / import")}),s.jsx("p",{children:r("commandCenter.portability.description","Download or preview a secret-scrubbed organization bundle.")})]}),s.jsx("span",{className:`cc-controls-save-state cc-controls-save-state--${a}`,"aria-live":"polite",children:a==="success"?r("commandCenter.portability.export.success","Export ready"):a==="error"?r("commandCenter.portability.export.error","Export failed"):r("commandCenter.controls.status.ready","Ready")})]}),s.jsxs("div",{className:"cc-portability-actions",children:[s.jsxs("button",{type:"button",className:"btn btn-secondary cc-controls-action",onClick:()=>void g(),disabled:a==="working",children:[s.jsx(Ri,{size:16,"aria-hidden":"true"}),w]}),s.jsx("label",{className:"cc-portability-import-label",htmlFor:"cc-org-bundle",children:r("commandCenter.portability.import.label","Org bundle JSON")}),s.jsx("textarea",{id:"cc-org-bundle",className:"input cc-portability-import-input",value:c,onChange:P=>{y.current+=1,d(P.target.value),v(null),b(null),m(null),l("idle")},placeholder:r("commandCenter.portability.import.placeholder","Paste a secret-scrubbed org bundle")}),s.jsxs("div",{className:"cc-portability-actions",children:[s.jsxs("button",{type:"button",className:"btn btn-secondary cc-controls-action",onClick:()=>void x(),disabled:!c||o==="previewing",children:[s.jsx(cc,{size:16,"aria-hidden":"true"}),o==="previewing"?r("commandCenter.portability.import.previewing","Previewing…"):r("commandCenter.portability.import.preview","Preview import")]}),s.jsx("button",{type:"button",className:"btn cc-controls-action",onClick:()=>void C(),disabled:o!=="previewed"&&o!=="success",children:o==="importing"?r("commandCenter.portability.import.importing","Importing…"):r("commandCenter.portability.import.apply","Apply import")})]})]}),h?s.jsx("p",{className:"cc-controls-muted","data-testid":"cc-org-import-preview",children:r("commandCenter.portability.import.previewReady","Preview ready. Confirm to apply this bundle.")}):null,u?s.jsx("p",{className:"cc-controls-error",role:"alert",children:u}):null]})})}const Q$=15e3,e2=1e4,t2=4,Go=[.1,.25,.5,1,2,3,5,10];function hh(e){return e.usd??-1}function _i(e,t){return e.agentName??e.agentId??t}function r2(e){switch(e){case"running":return"status-dot status-dot--connecting";case"active":case"idle":return"status-dot status-dot--online";case"error":case"failed":return"status-dot status-dot--error";case"starting":case"pending":return"status-dot status-dot--pending";default:return"status-dot status-dot--pending"}}function n2(e,t,r,n){const a=[...e];return a.sort((i,o)=>{let l=0;return t==="agent"?l=_i(i,n).localeCompare(_i(o,n)):t==="tokens"?l=i.tokens.totalTokens-o.tokens.totalTokens:t==="cost"?l=hh(i.cost)-hh(o.cost):t==="filesChanged"?l=i.filesChanged-o.filesChanged:t==="tasksCompleted"?l=i.tasksCompleted-o.tasksCompleted:l=i.tasksInProgress-o.tasksInProgress,l===0&&(l=i.agentId.localeCompare(o.agentId)),l*r}),a}function ph(e,t,r){return[...e].sort((n,a)=>t(a)-t(n)||n.agentId.localeCompare(a.agentId)).slice(0,12).map(n=>{const a=t(n);return{label:_i(n,r),value:a,valueLabel:U(a)}})}function a2(e,t){if(!e)return t;const r=new Date(e);return Number.isNaN(r.getTime())?t:r.toLocaleString()}function i2({paused:e,label:t}){return s.jsxs("span",{className:"cc-team-status-pill",children:[s.jsx("span",{className:`status-dot ${e?"status-dot--pending":"status-dot--online"}`,"aria-hidden":"true"}),s.jsx("span",{children:t})]})}function zx({node:e}){const t=e.children.length>0;return s.jsxs("li",{className:"cc-team-org-item",children:[s.jsx("div",{className:"cc-team-org-card",children:s.jsxs("div",{className:"cc-team-org-card-header",children:[s.jsx("span",{className:"cc-team-org-avatar",children:s.jsx(yj,{agent:e.agent,size:20})}),s.jsx("span",{className:"cc-team-org-name",children:e.agent.name}),s.jsx("span",{className:"cc-team-org-badge",children:e.agent.state})]})}),t?s.jsx("ul",{className:"cc-team-org-children",children:e.children.map(r=>s.jsx(zx,{node:r},r.agent.id))}):null]})}function s2({range:e,projectId:t,addToast:r}){const{t:n}=se("app"),{globalPaused:a,enginePaused:i,toggleEnginePause:o,refresh:l}=Ah(t),[c,d]=f.useState(1),[u,m]=f.useState(!1),[h,v]=f.useState({status:"loading",data:null,error:null}),[p,b]=f.useState({status:"loading",data:null,error:null}),y=f.useRef(null),g=f.useRef(!0);f.useEffect(()=>(g.current=!0,()=>{g.current=!1,y.current&&clearTimeout(y.current)}),[]);const j=f.useRef(null),x=f.useRef(null),C=f.useRef(!1),[w,P]=f.useState(!1),[A,S]=f.useState(0),{data:N,isLoading:E,error:T}=Je("/command-center/team",e,{pollMs:Q$,projectId:t});f.useEffect(()=>{let k=!1;return v({status:"loading",data:null,error:null}),(async()=>{try{const $=await mj(t);k||v({status:"loaded",data:$,error:null})}catch($){k||v({status:"error",data:null,error:$ instanceof Error?$.message:n("commandCenter.controls.orgChart.error","Unable to load org chart")})}})(),()=>{k=!0}},[t,n]),f.useEffect(()=>{const k=j.current;if(!k)return;const $=()=>{S(k.clientWidth)};$();const de=typeof ResizeObserver<"u"?new ResizeObserver($):null;return de?.observe(k),window.addEventListener("resize",$),()=>{de?.disconnect(),window.removeEventListener("resize",$)}},[h.status]),f.useEffect(()=>{let k=!1,$;const de=async()=>{try{const Le=await pj(t);k||b({status:"loaded",data:Le,error:null})}catch(Le){k||b({status:"error",data:null,error:Le instanceof Error?Le.message:n("commandCenter.controls.status.error","Unable to load live scheduler status")})}finally{k||($=setTimeout(de,e2))}};return b({status:"loading",data:null,error:null}),de(),()=>{k=!0,$&&clearTimeout($)}},[t,n]),f.useEffect(()=>{let k=!1;return Oh(t).then($=>{k||d($.heartbeatMultiplier??1)}).catch(()=>{}),()=>{k=!0}},[t]);const O=f.useCallback(k=>{const $=Number.isFinite(k)&&k>0?k:1;d($),y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{y.current=null,g.current&&m(!0),(async()=>{try{await Eh({heartbeatMultiplier:$},t),g.current&&r?.(n("agents.heartbeatSpeedSet","Heartbeat speed set to ×{{value}}",{value:$.toFixed(1)}),"success")}catch(de){g.current&&r?.(n("agents.heartbeatSpeedSaveFailed","Failed to save heartbeat multiplier: {{error}}",{error:vj(de)}),"error")}finally{g.current&&m(!1)}})()},300)},[t,r,n]),I=f.useMemo(()=>N?.agents??[],[N?.agents]),z=n("commandCenter.team.unknownAgent","(unknown agent)"),D=n("commandCenter.team.unknownRole","Unknown role"),V=n("commandCenter.team.noChartData","No non-zero values for this chart yet."),[B,W]=f.useState("tokens"),[K,te]=f.useState(-1),G=f.useMemo(()=>I.map(k=>k.agentId).join(" "),[I]),M=f.useRef(null);f.useEffect(()=>{if(M.current===null){M.current=G;return}M.current!==G&&(M.current=G,W("tokens"),te(-1))},[G]);const q=f.useMemo(()=>n2(I,B,K,z),[I,K,B,z]),H=f.useMemo(()=>ph(I,k=>k.tokens.totalTokens,z),[I,z]),re=f.useMemo(()=>H.map(k=>({label:k.label,value:k.value})),[H]),ae=f.useMemo(()=>ph(I,k=>k.tasksCompleted,z),[I,z]),ye=H.some(k=>k.value>0),oe=ae.some(k=>k.value>0),He=f.useMemo(()=>I.flatMap(k=>[k.tokens.totalTokens,k.filesChanged,k.tasksCompleted]),[I]);function J(k){k===B?te($=>$===1?-1:1):(W(k),te(k==="agent"?1:-1))}function Ce(k){return k!==B?null:s.jsx("span",{className:"cc-sort-caret",children:K===1?"▲":"▼"})}const Re=f.useCallback(k=>{const $=x.current;!$||$.pointerId!==k.pointerId||(k.currentTarget.hasPointerCapture?.(k.pointerId)&&k.currentTarget.releasePointerCapture?.(k.pointerId),x.current=null,P(!1))},[]),L=f.useCallback(k=>{if(k.pointerType==="touch"||k.button!==0)return;const $=k.currentTarget;C.current=!1,x.current={pointerId:k.pointerId,startX:k.clientX,startY:k.clientY,startScrollLeft:$.scrollLeft,startScrollTop:$.scrollTop,isPanning:!1},$.setPointerCapture?.(k.pointerId)},[]),Y=f.useCallback(k=>{const $=x.current;if(!$||$.pointerId!==k.pointerId)return;const de=k.clientX-$.startX,Le=k.clientY-$.startY;if(!$.isPanning&&Math.hypot(de,Le)<t2)return;$.isPanning||($.isPanning=!0,C.current=!0,P(!0)),k.preventDefault();const Nt=k.currentTarget;Nt.scrollLeft=$.startScrollLeft-de,Nt.scrollTop=$.startScrollTop-Le},[]),ne=f.useCallback(k=>{C.current&&(C.current=!1,k.preventDefault(),k.stopPropagation())},[]),Ne=f.useMemo(()=>h.status!=="loaded"||A<=0&&h.data.length>1?"vertical":X0({tree:h.data,availableWidth:A,preference:"auto"}),[A,h]),Q=p.data?.globalPause??a,le=p.data?.enginePaused??i,Oe=a2(p.data?.lastActivityAt,n("commandCenter.controls.status.noActivity","No recent activity"));return s.jsxs("div",{className:"cc-team-area",children:[s.jsxs("div",{className:"cc-team-ops-grid","data-testid":"cc-team-ops",children:[s.jsxs("section",{className:"card cc-team-ops-card cc-team-ops-card--org","data-testid":"cc-team-org-chart",children:[s.jsx("div",{className:"cc-team-ops-card-header",children:s.jsx("div",{children:s.jsx("h3",{children:n("commandCenter.controls.orgChart.title","Agent org chart")})})}),s.jsx("div",{className:`cc-team-org-scroll${w?" is-dragging":""}`,"data-layout":Ne,ref:j,"aria-live":"polite",onPointerDown:L,onPointerMove:Y,onPointerUp:Re,onPointerCancel:Re,onPointerLeave:Re,onClickCapture:ne,children:h.status==="loading"?s.jsx("p",{className:"cc-team-muted",children:s.jsx(tc,{label:n("commandCenter.controls.orgChart.loading","Loading org chart…")})}):h.status==="error"?s.jsx("p",{className:"cc-team-error",role:"alert",children:h.error}):h.data.length===0?s.jsx("p",{className:"cc-team-muted",children:n("commandCenter.controls.orgChart.empty","No agents are reporting in yet.")}):s.jsx("ul",{className:"cc-team-org-roots",children:h.data.map(k=>s.jsx(zx,{node:k},k.agent.id))})})]}),s.jsxs("section",{className:"card cc-team-ops-card cc-team-ops-card--heartbeat","data-testid":"cc-team-heartbeat",children:[s.jsxs("div",{className:"cc-team-ops-card-header",children:[s.jsxs("div",{children:[s.jsx("h3",{children:n("commandCenter.controls.heartbeat.title","Heartbeat control")}),s.jsx("p",{children:n("commandCenter.controls.heartbeat.description","Pause or resume the scheduling heartbeat.")})]}),s.jsx(i2,{paused:le,label:le?n("commandCenter.controls.status.paused","Paused"):n("commandCenter.controls.status.running","Running")})]}),s.jsxs("dl",{className:"cc-team-facts",children:[s.jsxs("div",{children:[s.jsx("dt",{children:n("commandCenter.controls.status.lastActivity","Last activity")}),s.jsx("dd",{children:p.status==="loading"?n("commandCenter.controls.status.loading","Loading…"):Oe})]}),s.jsxs("div",{children:[s.jsx("dt",{children:n("commandCenter.controls.status.maxConcurrent","Max concurrent")}),s.jsx("dd",{children:p.data?.maxConcurrent??"—"})]})]}),p.status==="error"?s.jsx("p",{className:"cc-team-error",role:"alert",children:p.error}):null,s.jsxs("button",{type:"button",className:"btn btn-secondary cc-team-action",onClick:()=>void o(),disabled:Q,children:[le?s.jsx(Di,{size:16,"aria-hidden":"true"}):s.jsx(hj,{size:16,"aria-hidden":"true"}),s.jsx("span",{children:le?n("commandCenter.controls.heartbeat.resume","Resume heartbeat"):n("commandCenter.controls.heartbeat.pause","Pause heartbeat")})]}),Q?s.jsx("p",{className:"cc-team-muted",children:n("commandCenter.controls.heartbeat.disabledByStop","Start the AI engine before resuming the heartbeat.")}):null,s.jsxs("div",{className:"cc-team-heartbeat-multiplier heartbeat-multiplier-group",children:[s.jsxs("div",{className:"heartbeat-multiplier-controls",children:[s.jsx("label",{htmlFor:"ccHeartbeatMultiplier",className:"heartbeat-multiplier-label",children:n("agents.heartbeatSpeed","Heartbeat Speed")}),s.jsx("input",{id:"ccHeartbeatMultiplier",className:"heartbeat-multiplier-slider touch-target",type:"range",min:.1,max:10,step:.1,value:c,onChange:k=>{const $=Number(k.target.value);O(Number.isFinite($)&&$>0?$:1)},disabled:u}),s.jsxs("span",{className:"heartbeat-multiplier-value",children:["×",c.toFixed(1)]}),s.jsx("select",{className:"heartbeat-multiplier-preset",value:String(Go.reduce((k,$)=>Math.abs($-c)<Math.abs(k-c)?$:k,Go[0])),onChange:k=>{const $=Number(k.target.value);O(Number.isFinite($)&&$>0?$:1)},disabled:u,"aria-label":n("agents.heartbeatSpeedPreset","Heartbeat speed preset"),children:Go.map(k=>s.jsxs("option",{value:String(k),children:["×",k]},k))})]}),s.jsx("small",{className:"text-secondary",children:n("agents.heartbeatSpeedHint","Scales all agent heartbeat intervals. ×0.5 = twice as fast, ×2.0 = twice as slow. Default: ×1.0")})]})]})]}),s.jsx(J$,{projectId:t,onSettingsRefresh:l}),s.jsxs(ft,{testId:"team",isLoading:E,error:T,isEmpty:!N||N.agents.length===0,emptyMessage:n("commandCenter.team.empty","No agents have reported team analytics yet."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.totalsTitle","Team totals")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-team-total-tokens",children:[s.jsx("div",{className:"cc-stat-label",children:n("commandCenter.team.totalTokens","Total tokens")}),s.jsx("div",{className:"cc-stat-value",children:U(N?.totals.tokens.totalTokens??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-team-total-cost",children:[s.jsx("div",{className:"cc-stat-label",children:n("commandCenter.team.totalCost","Estimated cost")}),s.jsx("div",{className:"cc-stat-value",children:N?Tr(N.totals.cost.usd,N.totals.cost.unavailable):"—"})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-team-total-files",children:[s.jsx("div",{className:"cc-stat-label",children:n("commandCenter.team.filesChanged","Files changed")}),s.jsx("div",{className:"cc-stat-value",children:U(N?.totals.filesChanged??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-team-total-completed",children:[s.jsx("div",{className:"cc-stat-label",children:n("commandCenter.team.tasksCompleted","Tasks done")}),s.jsx("div",{className:"cc-stat-value",children:U(N?.totals.tasksCompleted??0)})]})]})]}),s.jsxs("div",{className:"cc-area-section cc-team-chart-grid",children:[ye?s.jsxs("div",{className:"cc-team-chart-panel","data-testid":"cc-team-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.tokenShareByAgent","Token share by agent")}),s.jsx(Mt,{data:re,ariaLabel:n("commandCenter.team.tokenShareByAgent","Token share by agent")})]}):null,s.jsxs("div",{className:"cc-team-chart-panel","data-testid":"cc-team-tokens-chart",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.tokensByAgent","Tokens by agent")}),ye?s.jsx(nt,{data:H,ariaLabel:n("commandCenter.team.tokensByAgent","Tokens by agent")}):s.jsx("p",{className:"cc-muted-hint",children:V})]}),s.jsxs("div",{className:"cc-team-chart-panel","data-testid":"cc-team-completed-chart",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.completedByAgent","Tasks done by agent")}),oe?s.jsx(nt,{data:ae,ariaLabel:n("commandCenter.team.completedByAgent","Tasks done by agent")}):s.jsx("p",{className:"cc-muted-hint",children:V})]}),s.jsxs("div",{className:"cc-team-chart-panel cc-team-spark-panel","data-testid":"cc-team-spread-chart",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.spread","Team spread")}),s.jsx(Ot,{values:He,ariaLabel:n("commandCenter.team.spread","Team spread")})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.tableTitle","Per-agent breakdown")}),s.jsx("div",{className:"cc-table-wrap",children:s.jsxs("table",{className:"cc-table","data-testid":"cc-team-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsxs("th",{className:"cc-sortable",onClick:()=>J("agent"),"data-testid":"cc-team-sort-agent",children:[n("commandCenter.team.agent","Agent"),Ce("agent")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>J("tokens"),"data-testid":"cc-team-sort-tokens",children:[n("commandCenter.team.tokens","Tokens"),Ce("tokens")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>J("cost"),"data-testid":"cc-team-sort-cost",children:[n("commandCenter.team.cost","Cost"),Ce("cost")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>J("filesChanged"),"data-testid":"cc-team-sort-files",children:[n("commandCenter.team.files","Files changed"),Ce("filesChanged")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>J("tasksCompleted"),"data-testid":"cc-team-sort-completed",children:[n("commandCenter.team.done","Tasks done"),Ce("tasksCompleted")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>J("tasksInProgress"),"data-testid":"cc-team-sort-progress",children:[n("commandCenter.team.inProgress","In progress"),Ce("tasksInProgress")]})]})}),s.jsx("tbody",{children:q.map(k=>s.jsxs("tr",{"data-testid":`cc-team-row-${k.agentId}`,children:[s.jsx("td",{children:s.jsxs("span",{className:"cc-team-agent-cell",children:[s.jsx("span",{className:r2(k.state),"aria-label":n("commandCenter.team.state","Agent state: {{state}}",{state:k.state??n("commandCenter.team.unknownState","unknown")})}),s.jsxs("span",{children:[s.jsx("span",{className:"cc-team-agent-name",children:_i(k,z)}),s.jsx("span",{className:"cc-team-agent-role",children:k.role??D})]})]})}),s.jsx("td",{children:U(k.tokens.totalTokens)}),s.jsx("td",{children:Tr(k.cost.usd,k.cost.unavailable)}),s.jsx("td",{children:U(k.filesChanged)}),s.jsx("td",{children:U(k.tasksCompleted)}),s.jsx("td",{children:U(k.tasksInProgress)})]},k.agentId))})]})})]})]})]})}function Kx(e,t){return e.workflowName||e.workflowId||t}function o2(e,t,r,n){const a=[...e];return a.sort((i,o)=>{let l=0;return l=i.tokens.totalTokens-o.tokens.totalTokens,l===0&&(l=i.workflowId.localeCompare(o.workflowId)),l*r}),a}function yh(e,t,r){return[...e].sort((n,a)=>t(a)-t(n)||n.workflowId.localeCompare(a.workflowId)).slice(0,12).map(n=>{const a=t(n);return{label:Kx(n,r),value:a,valueLabel:U(a)}})}function l2({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i}=Je("/command-center/workflows",e,{projectId:t}),o=r("commandCenter.workflows.unknownWorkflow","(unknown workflow)"),l=r("commandCenter.workflows.noChartData","No non-zero values for this chart yet."),c=n?.workflows??[],d=o2(c,"tokens",-1),u=yh(c,p=>p.tokens.totalTokens,o),m=yh(c,p=>p.tasksCompleted,o),h=u.some(p=>p.value>0),v=m.some(p=>p.value>0);return s.jsxs(ft,{testId:"workflows",isLoading:a,error:i,isEmpty:!n||n.workflows.length===0,emptyMessage:r("commandCenter.workflows.empty","No workflow analytics have been recorded for this range yet."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.workflows.totalsTitle","Workflow totals")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-workflows-total-tokens",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.workflows.totalTokens","Total tokens")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.totals.tokens.totalTokens??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-workflows-total-cost",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.workflows.totalCost","Estimated cost")}),s.jsx("div",{className:"cc-stat-value",children:n?Tr(n.totals.cost.usd,n.totals.cost.unavailable):"—"})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-workflows-total-files",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.workflows.filesChanged","Files changed")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.totals.filesChanged??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-workflows-total-completed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.workflows.tasksCompleted","Tasks done")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.totals.tasksCompleted??0)})]})]})]}),s.jsxs("div",{className:"cc-area-section cc-team-chart-grid",children:[s.jsxs("div",{className:"cc-team-chart-panel","data-testid":"cc-workflows-tokens-chart",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.workflows.tokensByWorkflow","Tokens by workflow")}),h?s.jsx(nt,{data:u,ariaLabel:r("commandCenter.workflows.tokensByWorkflow","Tokens by workflow")}):s.jsx("p",{className:"cc-muted-hint",children:l})]}),s.jsxs("div",{className:"cc-team-chart-panel","data-testid":"cc-workflows-completed-chart",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.workflows.completedByWorkflow","Tasks done by workflow")}),v?s.jsx(nt,{data:m,ariaLabel:r("commandCenter.workflows.completedByWorkflow","Tasks done by workflow")}):s.jsx("p",{className:"cc-muted-hint",children:l})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.workflows.tableTitle","Per-workflow breakdown")}),s.jsx("div",{className:"cc-table-wrap",children:s.jsxs("table",{className:"cc-table","data-testid":"cc-workflows-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:r("commandCenter.workflows.workflow","Workflow")}),s.jsx("th",{children:r("commandCenter.workflows.tokens","Tokens")}),s.jsx("th",{children:r("commandCenter.workflows.cost","Cost")}),s.jsx("th",{children:r("commandCenter.workflows.files","Files changed")}),s.jsx("th",{children:r("commandCenter.workflows.done","Tasks done")}),s.jsx("th",{children:r("commandCenter.workflows.inProgress","In progress")}),s.jsx("th",{children:r("commandCenter.workflows.inReview","In review")})]})}),s.jsx("tbody",{children:d.map(p=>s.jsxs("tr",{"data-testid":`cc-workflows-row-${p.workflowId}`,children:[s.jsx("td",{children:s.jsxs("span",{className:"cc-team-agent-cell",children:[s.jsx(gj,{workflowId:p.workflowId,icon:p.workflowIcon,decorative:!0}),s.jsxs("span",{children:[s.jsx("span",{className:"cc-team-agent-name",children:Kx(p,o)}),s.jsx("span",{className:"cc-team-agent-role",children:p.workflowId})]})]})}),s.jsx("td",{children:U(p.tokens.totalTokens)}),s.jsx("td",{children:Tr(p.cost.usd,p.cost.unavailable)}),s.jsx("td",{children:U(p.filesChanged)}),s.jsx("td",{children:U(p.tasksCompleted)}),s.jsx("td",{children:U(p.tasksInProgress)}),s.jsx("td",{children:U(p.tasksInReview)})]},p.workflowId))})]})})]})]})}function c2({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i}=Je("/command-center/tokens?groupBy=model&granularity=day",e,{projectId:t}),{data:o,isLoading:l}=Je("/command-center/plugin-activations",e,{projectId:t}),c=f.useMemo(()=>(n?.groups??[]).filter(j=>(j.key??"").trim().length>0),[n?.groups]),d=c.length,u=f.useMemo(()=>[...c].sort((j,x)=>x.nTasks-j.nTasks||(j.key??"").localeCompare(x.key??"")).slice(0,12).map(j=>({label:j.key??r("commandCenter.tokens.unknownModel","(unknown)"),value:j.nTasks,valueLabel:U(j.nTasks),iconProvider:Ql(j.key??"")})),[c,r]),m=f.useMemo(()=>u.map(j=>({label:j.label,value:j.value})),[u]),h=f.useMemo(()=>[{label:r("commandCenter.ecosystem.tokenTrendSeries","Tokens"),values:(n?.series??[]).map(j=>j.totalTokens)},{label:r("commandCenter.ecosystem.taskTrendSeries","Tasks"),values:(n?.series??[]).map(j=>j.nTasks)}],[n?.series,r]),v=m.some(j=>j.value>0),p=(n?.series??[]).length>0,b=o?.unavailable===!1,y=(!n||d===0)&&!b,g=a||l&&!n;return s.jsxs(ft,{testId:"ecosystem",isLoading:g,error:i,isEmpty:y,emptyMessage:r("commandCenter.ecosystem.empty","No models or plugins active in the selected range."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.ecosystem.breadthTitle","Ecosystem breadth")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-ecosystem-unique-models",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.ecosystem.uniqueModels","Active models")}),s.jsx("div",{className:"cc-stat-value",children:U(d)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-ecosystem-plugins",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.ecosystem.plugins","Plugin activations")}),s.jsx("div",{className:"cc-stat-value",children:b?s.jsx("span",{"data-testid":"cc-ecosystem-plugins-value",children:U(o?.activations??0)}):s.jsx("span",{className:"cc-unavailable",title:r("commandCenter.ecosystem.pluginsUnavailable","Plugin-activation metrics are not yet recorded"),"data-testid":"cc-ecosystem-plugins-unavailable",children:"—"})})]})]})]}),v?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-ecosystem-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.ecosystem.modelShareTitle","Task share by model")}),s.jsx(Mt,{data:m,ariaLabel:r("commandCenter.ecosystem.modelShareTitle","Task share by model")})]}):null,p?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-ecosystem-line",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.ecosystem.trendTitle","Ecosystem trend")}),s.jsx(br,{series:h,ariaLabel:r("commandCenter.ecosystem.trendTitle","Ecosystem trend")})]}):null,s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.ecosystem.perModelTitle","Tasks per model")}),s.jsx(nt,{data:u,ariaLabel:r("commandCenter.ecosystem.perModelTitle","Tasks per model")})]})]})}const gh=100,u2=1e3;function d2(e,t){const r=new Date(e);return Number.isNaN(r.getTime())?t:r.toLocaleString()}function f2({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i}=Je("/command-center/github",e,{projectId:t}),[o,l]=f.useState(!1),[c,d]=f.useState(null),[u,m]=f.useState(null),h=f.useCallback(async()=>{if(!o){l(!0),d(null),m(null);try{let D=0;const V={scanned:0,filled:0,skipped:0,errors:0};for(let B=0;B<u2;B+=1){const W=await bj({offset:D,limit:gh});if(V.scanned+=W.scanned,V.filled+=W.filled,V.skipped+=W.skipped,V.errors+=W.errors,!W.hasMore){d(V);return}D+=gh}d(V),m(r("commandCenter.github.backfillMaxBatches","Backfill stopped after the safety limit; rerun after checking server logs."))}catch(D){m(D instanceof Error?D.message:r("commandCenter.github.backfillFailed","Failed to backfill GitHub source issue close times"))}finally{l(!1)}}},[o,r]),v=f.useMemo(()=>n?.daily??[],[n?.daily]),p=f.useMemo(()=>n?.byRepo??[],[n?.byRepo]),b=f.useMemo(()=>n?.resolved??[],[n?.resolved]),y=f.useMemo(()=>v.map(D=>D.filed),[v]),g=f.useMemo(()=>v.map(D=>D.fixed),[v]),j=f.useMemo(()=>Math.max(0,...y,...g),[y,g]),x=f.useMemo(()=>p.slice(0,12).map(D=>({label:D.repo,value:D.filed+D.fixed,valueLabel:r("commandCenter.github.repoValue","{{filed}} filed / {{fixed}} fixed",{filed:U(D.filed),fixed:U(D.fixed)})})),[p,r]),C=f.useMemo(()=>[{label:r("commandCenter.github.filed","Filed by Fusion"),value:n?.filed??0},{label:r("commandCenter.github.fixed","Fixed by Fusion"),value:n?.fixed??0}],[n?.filed,n?.fixed,r]),w=f.useMemo(()=>[{label:r("commandCenter.github.filedTrend","Filed"),values:y},{label:r("commandCenter.github.fixedTrend","Fixed"),values:g}],[y,g,r]),P=n?.filed??0,A=n?.fixed??0,S=n?.net??P-A,N=!n||P===0&&A===0,E=v.length>0,T=P+A>0,O=x.length>0,I=b.length>0,z=u||(c?.errors??0)>0?"cc-github-backfill-status--error":o?"cc-github-backfill-status--warning":"";return s.jsxs(ft,{testId:"github",isLoading:a,error:i,isEmpty:!1,emptyMessage:r("commandCenter.github.empty","No GitHub issue activity in the selected range."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.totalsTitle","GitHub issue flow")}),N?s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.github.empty","No GitHub issue activity in the selected range.")}):null,s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-github-filed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.github.filed","Filed by Fusion")}),s.jsx("div",{className:"cc-stat-value",children:U(P)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-github-fixed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.github.fixed","Fixed by Fusion")}),s.jsx("div",{className:"cc-stat-value",children:U(A)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.github.fixedApproximation","Uses done tasks updated in range")}),s.jsx("div",{className:"cc-github-backfill-actions",children:s.jsxs("button",{type:"button",className:"btn","data-testid":"cc-github-backfill-button",onClick:()=>void h(),disabled:o,children:[s.jsx(Gt,{className:o?"spin":void 0}),s.jsx("span",{children:o?r("commandCenter.github.backfillBusy","Backfilling close times…"):r("commandCenter.github.backfillButton","Backfill exact close times")})]})}),o||c||u?s.jsxs("div",{className:`cc-github-backfill-status ${z}`.trim(),"data-testid":"cc-github-backfill-result",role:"status",children:[o?s.jsx("span",{children:r("commandCenter.github.backfillPending","Backfill is running in paginated batches.")}):null,u?s.jsx("span",{children:u}):null,c?s.jsx("span",{children:c.scanned===0&&c.filled===0?r("commandCenter.github.backfillNothing","Nothing to backfill. Scanned {{scanned}}, filled {{filled}}, skipped {{skipped}}, errors {{errors}}.",c):r("commandCenter.github.backfillResult","Backfill complete. Scanned {{scanned}}, filled {{filled}}, skipped {{skipped}}, errors {{errors}}.",c)}):null]}):null]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-github-net",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.github.net","Net")}),s.jsx("div",{className:"cc-stat-value",children:U(S)})]})]})]}),T?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-github-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.issueFlowShare","Filed vs fixed share")}),s.jsx(Mt,{data:C,ariaLabel:r("commandCenter.github.issueFlowShare","Filed vs fixed share")})]}):null,E?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-github-line",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.dailyLine","Filed vs fixed line")}),s.jsx(br,{series:w,ariaLabel:r("commandCenter.github.dailyLine","Filed vs fixed line")})]}):null,E?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-github-daily-trend",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.dailyTrend","Filed vs fixed trend")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.github.filedTrend","Filed")}),s.jsx(Ot,{values:y,max:j,ariaLabel:r("commandCenter.github.filedTrend","Filed")})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.github.fixedTrend","Fixed")}),s.jsx(Ot,{values:g,max:j,ariaLabel:r("commandCenter.github.fixedTrend","Fixed")})]})]})]}):null,O?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-github-by-repo",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.byRepo","By repository")}),s.jsx(nt,{data:x,ariaLabel:r("commandCenter.github.byRepo","By repository")})]}):null,I?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-github-resolved",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.resolvedTitle","Resolved issues")}),s.jsx("div",{className:"cc-table-wrap cc-github-resolved-table-wrap","data-testid":"cc-github-resolved-table-wrap",children:s.jsxs("table",{className:"cc-table cc-github-resolved-table","data-testid":"cc-github-resolved-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{scope:"col",children:r("commandCenter.github.resolvedIssue","Issue")}),s.jsx("th",{scope:"col",children:r("commandCenter.github.resolvedTask","Resolving task")}),s.jsx("th",{scope:"col",children:r("commandCenter.github.resolvedAt","Resolved at")})]})}),s.jsx("tbody",{children:b.map(D=>{const V=D.issueNumber===null?D.repo:`${D.repo}#${D.issueNumber}`,B=d2(D.resolvedAt,r("commandCenter.github.resolvedAtUnknown","Unknown")),W=!!D.taskTitle;return s.jsxs("tr",{children:[s.jsx("td",{className:"cc-github-resolved-issue-cell",children:D.url?s.jsx("a",{className:"cc-github-resolved-issue-link",href:D.url,target:"_blank",rel:"noopener noreferrer","aria-label":r("commandCenter.github.openResolvedIssue","Open GitHub issue {{issue}}",{issue:V}),children:V}):s.jsx("span",{className:"cc-github-resolved-issue-ref",children:V})}),s.jsx("td",{className:"cc-github-resolved-task-cell",children:s.jsxs("span",{className:"cc-github-resolved-task",children:[s.jsx("span",{className:"cc-github-resolved-task-title",children:D.taskTitle||D.taskId}),W?s.jsx("span",{className:"cc-stat-sub cc-github-resolved-task-id",children:D.taskId}):null]})}),s.jsx("td",{className:"cc-github-resolved-date-cell",children:s.jsxs("span",{className:"cc-github-resolved-date",children:[s.jsx("span",{children:B}),D.resolvedAtExact?null:s.jsx("span",{className:"cc-stat-sub cc-github-resolved-date-approx",children:r("commandCenter.github.resolvedApprox","approx")})]})})]},D.taskId)})})]})})]}):null]})}function m2(e,t){const r=new Date(e);return Number.isNaN(r.getTime())?t:r.toLocaleString()}function v2({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i}=Je("/command-center/gitlab",e,{projectId:t}),o=f.useMemo(()=>n?.daily??[],[n?.daily]),l=f.useMemo(()=>n?.byProject??[],[n?.byProject]),c=f.useMemo(()=>n?.resolved??[],[n?.resolved]),d=f.useMemo(()=>o.map(g=>g.filed),[o]),u=f.useMemo(()=>o.map(g=>g.fixed),[o]),m=f.useMemo(()=>Math.max(0,...d,...u),[d,u]),h=f.useMemo(()=>l.slice(0,12).map(g=>({label:g.project,value:g.filed+g.fixed,valueLabel:r("commandCenter.gitlab.projectValue","{{filed}} filed / {{fixed}} fixed",{filed:U(g.filed),fixed:U(g.fixed)})})),[l,r]),v=n?.filed??0,p=n?.fixed??0,b=n?.net??v-p,y=!n||v===0&&p===0;return s.jsxs(ft,{testId:"gitlab",isLoading:a,error:i,isEmpty:!1,emptyMessage:r("commandCenter.gitlab.empty","No GitLab issue or merge request activity in the selected range."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.gitlab.totalsTitle","GitLab issue and MR flow")}),y?s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.gitlab.empty","No GitLab issue or merge request activity in the selected range.")}):null,s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-gitlab-filed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.gitlab.filed","Filed by Fusion")}),s.jsx("div",{className:"cc-stat-value",children:U(v)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-gitlab-fixed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.gitlab.fixed","Fixed by Fusion")}),s.jsx("div",{className:"cc-stat-value",children:U(p)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.gitlab.fixedApproximation","Uses persisted GitLab close times when available")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-gitlab-net",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.gitlab.net","Net")}),s.jsx("div",{className:"cc-stat-value",children:U(b)})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.gitlab.dailyTitle","Daily GitLab flow")}),o.length>0?s.jsxs("div",{className:"cc-chart-grid",children:[s.jsxs("div",{className:"card cc-chart-card",children:[s.jsx("h4",{children:r("commandCenter.gitlab.filedTrend","Filed")}),s.jsx(Ot,{values:d,max:m})]}),s.jsxs("div",{className:"card cc-chart-card",children:[s.jsx("h4",{children:r("commandCenter.gitlab.fixedTrend","Fixed")}),s.jsx(Ot,{values:u,max:m})]})]}):s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.gitlab.noDaily","No daily GitLab trend data yet.")})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.gitlab.projectsTitle","Projects and groups")}),h.length>0?s.jsx(nt,{data:h}):s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.gitlab.noProjects","No GitLab project activity yet.")})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.gitlab.resolvedTitle","Resolved GitLab source items")}),c.length>0?s.jsx("div",{className:"cc-resolved-list","data-testid":"cc-gitlab-resolved-list",children:c.slice(0,12).map(g=>{const x=`${g.issueNumber===null?g.project:`${g.project}#${g.issueNumber}`} · ${g.taskId}`;return s.jsxs("div",{className:"card cc-resolved-item",children:[s.jsxs("div",{children:[g.url?s.jsx("a",{href:g.url,target:"_blank",rel:"noopener noreferrer",children:x}):s.jsx("strong",{children:x}),s.jsx("div",{className:"cc-stat-sub",children:g.taskTitle})]}),s.jsxs("span",{className:"cc-stat-sub",children:[m2(g.resolvedAt,g.resolvedAt),g.resolvedAtExact?"":` ${r("commandCenter.gitlab.approximate","(approx.)")}`]})]},`${g.taskId}:${g.resolvedAt}`)})}):s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.gitlab.noResolved","No resolved GitLab source items in range.")})]})]})}function h2({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a}=Je("/command-center/signals",e,{projectId:t}),{data:i,isLoading:o}=Je("/command-center/signals/connectors",e,{projectId:t}),l=f.useMemo(()=>(n?.bySource??[]).map(y=>({label:y.source,value:y.count,valueLabel:U(y.count)})),[n?.bySource]),c=f.useMemo(()=>(n?.bySeverity??[]).map(y=>({label:y.severity,value:y.count,valueLabel:U(y.count)})),[n?.bySeverity]),d=f.useMemo(()=>[{label:r("commandCenter.signals.open","Open"),value:n?.open??0},{label:r("commandCenter.signals.resolved","Resolved"),value:n?.resolved??0}],[n?.open,n?.resolved,r]),u=!n||n.totalSignals===0,h=(Array.isArray(i?.connectors)?i.connectors.filter(y=>y.configured).map(y=>y.provider):void 0)??n?.connectors?.configured??[],p=h.length>0||n?.connectors?.anyConfigured===!0?r("commandCenter.signals.emptyAwaitingSignals","Connector configured, awaiting signals in this range. Configured providers: {{providers}}.",{providers:h.length>0?h.join(", "):r("commandCenter.signals.providersUnknown","unknown")}):r("commandCenter.signals.emptyNoConnectorConfigured","No signal connector configured. Connect GitLab, Sentry, Datadog, PagerDuty, or a generic webhook to see incident metrics here."),b=!u&&d.some(y=>y.value>0);return s.jsxs(ft,{testId:"signals",isLoading:a||o,error:null,isEmpty:u,emptyMessage:p,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.signals.summaryTitle","Summary")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-signals-total",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.signals.total","Total signals")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.totalSignals??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-signals-open",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.signals.open","Open")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.open??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-signals-resolved",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.signals.resolved","Resolved")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.resolved??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-signals-mttr",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.signals.mttr","MTTR")}),s.jsx("div",{className:"cc-stat-value",children:n&&n.mttr.value!==null&&!n.mttr.unavailable?r("commandCenter.signals.mttrValue","{{min}} min",{min:Math.round(n.mttr.value)}):s.jsx("span",{className:"cc-unavailable",title:r("commandCenter.signals.mttrUnavailable","MTTR is unavailable until incident data is recorded"),children:"—"})})]})]})]}),b?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-signals-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.signals.statusShare","Signal status share")}),s.jsx(Mt,{data:d,ariaLabel:r("commandCenter.signals.statusShare","Signal status share")})]}):null,s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.signals.bySource","By source")}),s.jsx(nt,{data:l,ariaLabel:r("commandCenter.signals.bySource","By source")})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.signals.bySeverity","By severity")}),s.jsx(nt,{data:c,ariaLabel:r("commandCenter.signals.bySeverity","By severity")})]})]})}function Vx(e){return e===null||!Number.isFinite(e)||e<=0?0:Math.max(0,Math.min(1,e))}function p2(e){if(e===null)return"—";const t=Vx(e);return`${Math.round(t*100)}%`}function Ua({value:e,label:t,ariaLabel:r}){const n=Vx(e),a=p2(e),i={"--cc-radial-value":`${n*100}%`};return s.jsxs("div",{className:"cc-radial-gauge",role:"img","aria-label":r,style:i,children:[s.jsx("div",{className:"cc-radial-gauge-ring","aria-hidden":"true",children:s.jsx("div",{className:"cc-radial-gauge-core",children:s.jsx("span",{className:"cc-radial-gauge-value",children:a})})}),s.jsx("span",{className:"cc-radial-gauge-label",children:t})]})}const y2=5e3,g2=30,b2=["triage","todo","in-progress","in-review","done"],x2=["idle","active","running","error"];function bh(e,t){return!Number.isFinite(e)||!Number.isFinite(t)||t<=0?"—":`${(e/t*100).toFixed(1)}%`}function j2(e,t){if(t<=0)return"normal";const r=e/t;return r>=.85?"critical":r>=.65?"warning":"normal"}function w2(e,t){if(t<=0)return"normal";const r=e/t;return r>=.5?"critical":r>=.25?"warning":"normal"}function C2(e,t){if(t<=0)return"normal";const r=e/t;return r>=.9?"critical":r>=.75?"warning":"normal"}function k2(e,t){if(e===null||!Number.isFinite(e)||e<0)return"normal";const r=t>0?e/t:e;return r>=80?"critical":r>=50?"warning":"normal"}function Ma(e){return e==="critical"?"cc-system-value--critical":e==="warning"?"cc-system-value--warning":""}function S2(e,t){if(!e)return t;const r=new Date(e);return Number.isNaN(r.getTime())?t:r.toLocaleString()}function Ti(e,t){return!Number.isFinite(e)||!Number.isFinite(t)||t<=0?0:Math.max(0,Math.min(1,e/t))}function $n(e){return e==null||!Number.isFinite(e)?0:Math.max(0,Math.min(100,e))}function N2(e){const t=e.systemStats,r=t.systemTotalMem-t.systemFreeMem;return{cpuPercent:$n(t.cpuPercent),usedSystemMemPercent:Ti(r,t.systemTotalMem)*100,heapUsedPercent:Ti(t.heapUsed,t.heapLimit)*100}}function P2({projectId:e}){const{t}=se("app"),[r,n]=f.useState(null),[a,i]=f.useState([]),[o,l]=f.useState(!0),[c,d]=f.useState(null),[u,m]=f.useState(!0),[h,v]=f.useState(90),[p,b]=f.useState(!1),[y,g]=f.useState(!1),[j,x]=f.useState(null),[C,w]=f.useState(null),[P,A]=f.useState(null),[S,N]=f.useState(null),{nodes:E}=_h(),T=f.useMemo(()=>E.find(k=>k.type==="local")?.id,[E]),O=S??T??null,I=E.find(k=>k.id===O)??null,z=E.length>1,D=I?.name??t("systemStats.localNodeFallback","Local node"),V=f.useCallback(k=>{const $=[];return k.type==="local"&&$.push(t("systemStats.thisNodeSuffix","this node")),k.status&&k.status!=="online"&&$.push(t("systemStats.nodeStatusSuffix","{{status}}",{status:k.status})),$.length>0?`${k.name} (${$.join(" · ")})`:k.name},[E,t]),B=f.useCallback(async k=>{l(!0);try{const $=O&&O!==T?await xj(O,e):await jj(e);n($),i(de=>[...de,N2($)].slice(-g2)),d(null),A(Date.now()),k?.preserveKillResult||x(null)}catch($){d($ instanceof Error?$.message:t("systemStats.errorLoadStats","Failed to load system stats"))}finally{l(!1)}},[O,T,e,t]);f.useEffect(()=>{B()},[B]);const W=f.useCallback(()=>{B()},[B]);vn(W,y2),f.useEffect(()=>{N(k=>k&&E.some($=>$.id===k)?k:null)},[E]),f.useEffect(()=>{i([]),d(null),x(null),g(!1)},[O]),f.useEffect(()=>{let k=!1;return(async()=>{try{const de=await wj();if(k)return;m(de.vitestAutoKillEnabled??!0),v(de.vitestKillThresholdPct??90),w(null)}catch(de){k||w(de instanceof Error?de.message:t("systemStats.errorLoadVitestSettings","Failed to load vitest settings"))}})(),()=>{k=!0}},[t]);const K=f.useCallback(async k=>{m(k);try{await $u({vitestAutoKillEnabled:k}),w(null)}catch($){w($ instanceof Error?$.message:t("systemStats.errorSaveVitestSettings","Failed to save vitest settings"))}},[t]),te=f.useCallback(async k=>{const $=Math.min(99,Math.max(50,Number.isFinite(k)?Math.round(k):90));v($);try{await $u({vitestKillThresholdPct:$}),w(null)}catch(de){w(de instanceof Error?de.message:t("systemStats.errorSaveVitestSettings","Failed to save vitest settings"))}},[t]),G=f.useCallback(async()=>{if(!p){if(!y){g(!0);return}b(!0);try{const k=O&&O!==T?await Fu(e,O,T):await Fu(e);x(k),g(!1),await B({preserveKillResult:!0})}catch(k){d(k instanceof Error?k.message:t("systemStats.errorKillVitest","Failed to kill vitest processes"))}finally{b(!1)}}},[y,O,p,B,T,e,t]),M=r?.systemStats,q=r?.taskStats,H=M?M.systemTotalMem-M.systemFreeMem:0,re=M?Ti(H,M.systemTotalMem):0,ae=M?Ti(M.heapUsed,M.heapLimit):0,ye=M?.cpuPercent===null||M?.cpuPercent===void 0?null:$n(M.cpuPercent)/100,oe=M?.cpuPercent===null||M?.cpuPercent===void 0?t("systemStats.cpuSampling","Sampling…"):`${M.cpuPercent.toFixed(1)}%`,He=P?t("systemStats.updatedAt","Updated {{time}}",{time:new Date(P).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}):t("systemStats.waitingFirstUpdate","Waiting for first update"),J=f.useMemo(()=>{const k=q?.byColumn??{};return(Object.keys(k).length>0?Object.keys(k):b2).map(de=>({label:de,value:k[de]??0,valueLabel:U(k[de]??0)}))},[q?.byColumn]),Ce=f.useMemo(()=>J.map(k=>({label:k.label,value:k.value})),[J]),Re=f.useMemo(()=>[{label:t("commandCenter.system.cpuSeries","CPU"),values:a.map(k=>$n(k.cpuPercent))},{label:t("commandCenter.system.memorySeries","Memory"),values:a.map(k=>$n(k.usedSystemMemPercent))},{label:t("commandCenter.system.heapSeries","Heap"),values:a.map(k=>$n(k.heapUsedPercent))}],[a,t]),L=Ce.some(k=>k.value>0),Y=a.length>0,ne=f.useMemo(()=>{const k=q?.agents;return x2.map($=>({label:t(`systemStats.agent${$[0].toUpperCase()}${$.slice(1)}`,$),value:k?.[$]??0,valueLabel:U(k?.[$]??0)}))},[q?.agents,t]),Ne=f.useMemo(()=>{const k=M?Ma(j2(M.heapUsed,M.heapLimit)):"",$=M?Ma(w2(M.rss,M.systemTotalMem)):"",de=M?Ma(C2(H,M.systemTotalMem)):"",Le=M?Ma(k2(M.cpuPercent,M.cpuCount)):"";return[{label:t("systemStats.rowAppCpu","App CPU"),value:oe,detail:M?.cpuPercent===null?t("systemStats.cpuFirstSamplePending","First sample pending"):t("systemStats.cpuProcessUsage","process usage"),className:Le},{label:t("systemStats.rowRss","RSS"),value:M?ct(M.rss):"—",detail:M?bh(M.rss,M.systemTotalMem):"—",className:$},{label:t("systemStats.rowHeapUsed","Heap Used"),value:M?ct(M.heapUsed):"—",detail:M?t("systemStats.rowHeapUsedDetail","of {{total}}",{total:ct(M.heapTotal)}):"—",className:k},{label:t("systemStats.rowHeapLimit","Heap Limit"),value:M?ct(M.heapLimit):"—",detail:t("systemStats.rowHeapLimitDetail","V8 limit")},{label:t("systemStats.rowExternal","External"),value:M?ct(M.external):"—"},{label:t("systemStats.rowArrayBuffers","Array Buffers"),value:M?ct(M.arrayBuffers):"—"},{label:t("systemStats.rowLoadAvg","Load Avg"),value:M?.loadAvg.map(Nt=>Nt.toFixed(2)).join(" ")??"—"},{label:t("systemStats.rowCores","Cores"),value:M?.cpuCount??"—"},{label:t("systemStats.rowPlatform","Platform"),value:M?.platform??"—"},{label:t("systemStats.rowNode","Node"),value:M?.nodeVersion??"—"},{label:t("systemStats.rowPid","PID"),value:M?.pid??"—"},{label:t("systemStats.rowMemoryUsed","Memory Used"),value:M?ct(H):"—",detail:M?`${bh(H,M.systemTotalMem)} of ${ct(M.systemTotalMem)}`:"—",className:de},{label:t("systemStats.rowMemoryFree","Memory Free"),value:M?ct(M.systemFreeMem):"—"}]},[oe,M,t,H]),Q=r?.vitestProcessCount,le=S2(r?.vitestLastAutoKillAt,t("systemStats.notYet","Not yet")),Oe=o&&!!r;return s.jsxs(ft,{testId:"system",isLoading:o&&!r,error:r?null:c,isEmpty:!1,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsxs("div",{className:"cc-area-section-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.system.healthTitle","Live system health")}),s.jsxs("div",{className:"cc-system-refresh","aria-live":"polite",children:[z?s.jsxs("label",{className:"cc-system-node-selector",htmlFor:"cc-system-node-select",children:[s.jsx("span",{children:t("systemStats.nodeSelectorLabel","Node")}),s.jsx("select",{id:"cc-system-node-select",className:"input","data-testid":"cc-system-node-select","aria-label":t("systemStats.nodeSelectorAriaLabel","Select system stats node"),value:O??"",onChange:k=>{i([]),x(null),g(!1),N(k.target.value||null)},children:E.map(k=>s.jsx("option",{value:k.id,children:V(k)},k.id))})]}):null,s.jsx("span",{children:t("systemStats.viewingNode","Viewing {{node}}",{node:D})}),s.jsx("span",{children:t("systemStats.autoRefresh","Auto-refresh · 5s")}),s.jsx("span",{children:He}),s.jsx("button",{type:"button",className:"btn-icon",onClick:()=>void B(),title:t("systemStats.refreshTitle","Refresh"),"aria-label":t("systemStats.refreshAriaLabel","Refresh system stats"),children:s.jsx(Gt,{size:16,className:Oe?"spin":void 0})})]})]}),c&&r?s.jsx("p",{className:"cc-system-note cc-system-note--error",role:"status",children:t("systemStats.footerRefreshFailed","Latest refresh failed: {{error}}",{error:c})}):null,s.jsxs("div",{className:"cc-stat-grid cc-system-gauges",children:[s.jsxs("div",{className:"card cc-stat-card cc-stat-card--gauge","data-testid":"cc-system-cpu-gauge",children:[s.jsx(Ua,{value:ye,label:t("systemStats.rowAppCpu","App CPU"),ariaLabel:t("commandCenter.system.cpuGauge","App CPU usage")}),s.jsx("span",{className:"cc-stat-sub",children:oe})]}),s.jsxs("div",{className:"card cc-stat-card cc-stat-card--gauge","data-testid":"cc-system-mem-gauge",children:[s.jsx(Ua,{value:re,label:t("systemStats.rowMemoryUsed","Memory Used"),ariaLabel:t("commandCenter.system.memoryGauge","System memory used")}),s.jsx("span",{className:"cc-stat-sub",children:M?`${ct(H)} / ${ct(M.systemTotalMem)}`:"—"})]}),s.jsxs("div",{className:"card cc-stat-card cc-stat-card--gauge","data-testid":"cc-system-heap-gauge",children:[s.jsx(Ua,{value:ae,label:t("systemStats.rowHeapUsed","Heap Used"),ariaLabel:t("commandCenter.system.heapGauge","Heap used")}),s.jsx("span",{className:"cc-stat-sub",children:M?`${ct(M.heapUsed)} / ${ct(M.heapLimit)}`:"—"})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.system.trendsTitle","Live trends")}),Y?s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-line",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.system.resourceTrend","Resource trend")}),s.jsx(br,{series:Re,ariaLabel:t("commandCenter.system.resourceTrend","Resource trend")})]}):null,s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-cpu-trend",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.system.cpuTrend","CPU over time")}),s.jsx(Ot,{values:a.map(k=>k.cpuPercent),max:100,ariaLabel:t("commandCenter.system.cpuTrend","CPU over time")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-memory-trend",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.system.memoryTrend","Memory over time")}),s.jsx(Ot,{values:a.map(k=>k.usedSystemMemPercent),max:100,ariaLabel:t("commandCenter.system.memoryTrend","Memory over time")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-heap-trend",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.system.heapTrend","Heap over time")}),s.jsx(Ot,{values:a.map(k=>k.heapUsedPercent),max:100,ariaLabel:t("commandCenter.system.heapTrend","Heap over time")})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.system.workloadTitle","Workload")}),s.jsxs("div",{className:"cc-system-chart-grid",children:[L?s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-pie",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.system.taskShare","Task distribution")}),s.jsx(Mt,{data:Ce,ariaLabel:t("commandCenter.system.taskShare","Task distribution")})]}):null,s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-tasks-bar",children:[s.jsx("div",{className:"cc-stat-label",children:t("systemStats.sectionTasks","Tasks")}),s.jsx(nt,{data:J,ariaLabel:t("systemStats.sectionTasksAriaLabel","Task stats")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-agents-bar",children:[s.jsx("div",{className:"cc-stat-label",children:t("systemStats.sectionAgents","Agents")}),s.jsx(nt,{data:ne,ariaLabel:t("systemStats.sectionAgentsAriaLabel","Agent stats")})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.system.detailsTitle","Runtime details")}),s.jsx("div",{className:"cc-stat-grid","data-testid":"cc-system-details-grid",children:Ne.map(k=>s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:k.label}),s.jsx("div",{className:`cc-stat-value ${k.className??""}`.trim(),children:k.value}),k.detail?s.jsx("span",{className:"cc-stat-sub",children:k.detail}):null]},k.label))})]}),s.jsxs("div",{className:"cc-area-section","data-testid":"cc-system-vitest-controls",children:[s.jsxs("h3",{className:"cc-area-section-title cc-system-section-title-with-icon",children:[s.jsx(Y0,{}),s.jsx("span",{children:t("systemStats.sectionVitest","Vitest Controls")})]}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:t("systemStats.vitestProcesses","Vitest Processes")}),s.jsx("div",{className:"cc-stat-value",children:Q??"—"})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:t("systemStats.lastAutoKill","Last auto-kill: {{time}}",{time:""}).trim()}),s.jsx("div",{className:"cc-stat-value",children:le})]})]}),s.jsxs("div",{className:"card cc-system-vitest-card",children:[s.jsxs("button",{type:"button",className:"btn btn-danger","data-testid":"cc-system-kill-vitest",onClick:()=>void G(),disabled:p||Q===0,children:[s.jsx(bw,{}),s.jsx("span",{children:y?t("systemStats.confirmKill","Confirm Kill?"):t("systemStats.killVitest","Kill Vitest Processes")})]}),s.jsxs("label",{className:"cc-system-toggle-row",children:[s.jsx("input",{type:"checkbox",checked:u,onChange:k=>{K(k.target.checked)}}),s.jsx("span",{children:t("systemStats.autoKillLabel","Auto-kill vitest on memory pressure")})]}),s.jsxs("div",{className:"cc-system-threshold-row",children:[s.jsx("label",{htmlFor:"cc-system-vitest-threshold-number",children:t("systemStats.killThresholdLabel","Kill threshold (%)")}),s.jsxs("div",{className:"cc-system-threshold-controls",children:[s.jsx("input",{id:"cc-system-vitest-threshold-range",type:"range",min:50,max:99,value:h,"aria-label":t("systemStats.killThresholdSliderAriaLabel","Kill threshold slider (%)"),onChange:k=>{const $=Number.parseInt(k.target.value,10);te(Number.isNaN($)?90:$)}}),s.jsx("input",{id:"cc-system-vitest-threshold-number",type:"number",className:"input",min:50,max:99,value:h,"aria-label":t("systemStats.killThresholdInputAriaLabel","Kill threshold (%)"),onChange:k=>{const $=Number.parseInt(k.target.value,10);te(Number.isNaN($)?90:$)},onBlur:()=>{te(h)}})]})]}),j?s.jsx("p",{className:`cc-system-note ${j.killed>0?"cc-system-note--success":"cc-system-note--error"}`,children:t("systemStats.killedProcesses","Killed {{count}} processes",{count:j.killed})}):null,C?s.jsx("p",{className:"cc-system-note cc-system-note--error",children:C}):null]})]})]})}const Tn=500,A2=1500,O2=3e3,E2=9e4,_2=50,T2=3e3;function xh(e){return e.scrollHeight-(e.scrollTop+e.clientHeight)<=_2}function M2(e){const t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleTimeString()}function I2({projectId:e,addToast:t}){const{t:r}=se("app"),n=f.useCallback((R,ce)=>t?.(R,ce),[t]),[a,i]=f.useState(null),[o,l]=f.useState(null),[c,d]=f.useState(null),[u,m]=f.useState(null),h=typeof window>"u"?void 0:J0(window.location),[v,p]=f.useState(null),[b,y]=f.useState([]),g=f.useRef(new Set),j=f.useRef(null),x=f.useRef(!0),C=f.useRef(null),[w,P]=f.useState(null),A=f.useRef(null),S=f.useRef(null),N=f.useRef(null),E=f.useRef(new Set),T=f.useRef(!1),O=f.useRef(0),[I,z]=f.useState(!1),[D,V]=f.useState([]),B=f.useRef(null),W=f.useRef(!0),[K,te]=f.useState(null),G=f.useCallback(()=>{const R=j.current;R&&(x.current=xh(R))},[]),M=f.useCallback(()=>{const R=B.current;R&&(W.current=xh(R))},[]),q=f.useCallback(async()=>{try{const R=await Ps();return i(R),l(null),R.activeRebuild&&p(ce=>ce&&ce.id===R.activeRebuild.id?ce:(y([]),g.current=new Set,x.current=!0,R.activeRebuild)),R}catch(R){return l(R instanceof Error?R.message:String(R)),null}},[]);f.useEffect(()=>{let R=!1;return(async()=>{await q();try{const{job:ce}=await Bu();if(!R&&ce){p(ce);const Pe=ce.lines??[];g.current=new Set(Pe.map(Ge=>Ge.i)),y(ga(Pe,Tn))}}catch{}})(),()=>{R=!0}},[q]),f.useEffect(()=>{S.current=v},[v]),f.useEffect(()=>{N.current=a},[a]);const H=f.useCallback(R=>{if(E.current.has(R.id)){p(R);return}if(E.current.add(R.id),p(R),R.status==="succeeded"&&R.restartScheduled)A.current=N.current?.pid??null,P("waiting");else if(R.status==="succeeded"){const ce=R.kind==="fn-binary"&&R.scope==="link-local"?r("systemControls.fnLinkLocalSucceeded","Local fn binary built and linked"):R.kind==="fn-binary"&&R.scope==="use-global"?r("systemControls.fnUseGlobalSucceeded","Switched default fn to global npm install"):r("systemControls.rebuildSucceeded","Rebuild finished successfully");n(ce,"success")}else n(r("systemControls.rebuildFailed","Job failed — see output for details"),"error")},[r,n]),re=f.useCallback(async()=>{const R=S.current;if(!R||R.status!=="running"||T.current)return;const ce=Date.now();if(ce-O.current<T2)return;O.current=ce,T.current=!0;const Pe=N.current?.pid;try{let Ge=null;try{({job:Ge}=await Bu())}catch{O.current=0;return}if(S.current?.id!==R.id)return;if(Ge&&Ge.id===R.id){const Cn=Ge.lines;Cn&&(g.current=new Set(Cn.map(Ss=>Ss.i)),y(ga(Cn,Tn))),Ge.status!=="running"&&H(Ge);return}const Kr=await Ps().catch(()=>null);if(!Kr||S.current?.id!==R.id)return;if(i(Kr),Pe!==void 0&&Kr.pid!==Pe){p(null),y([]),g.current=new Set,R.restartAfter?(A.current=Kr.pid,P("back")):n(r("systemControls.jobLostToRestart","The server restarted while the job was streaming — its output is gone"),"warning");return}const ya=r("systemControls.jobOutcomeUnknown","Lost the job stream before a result arrived — the outcome is unknown");E.current.add(R.id),p({...R,status:"failed",finishedAt:Date.now(),error:ya}),n(ya,"warning")}finally{T.current=!1}},[H,r,n]);f.useEffect(()=>!v||v.status!=="running"?void 0:qa(`/api/system/jobs/${v.id}/stream`,{events:{line:ce=>{try{const Pe=JSON.parse(ce.data);if(g.current.has(Pe.i))return;g.current.add(Pe.i),y(Ge=>ga([...Ge,Pe],Tn))}catch{}},end:ce=>{try{const Pe=JSON.parse(ce.data);H(Pe)}catch{}}},onReconnect:()=>{re()},onError:()=>{re()}}),[v?.id,v?.status,H,re]),f.useEffect(()=>{const R=j.current;R&&x.current&&(R.scrollTop=R.scrollHeight)},[b]),f.useEffect(()=>{if(w!=="waiting")return;let R=!1;const ce=Date.now(),Pe=setInterval(()=>{(async()=>{if(Date.now()-ce>E2){R||P("timeout");return}try{const Ge=await Ps();if(R)return;(A.current===null||Ge.pid!==A.current)&&(i(Ge),P("back"))}catch{}})()},A2);return()=>{R=!0,clearInterval(Pe)}},[w]),f.useEffect(()=>{if(w!=="back")return;const R=setTimeout(()=>window.location.reload(),O2);return()=>clearTimeout(R)},[w]),f.useEffect(()=>!I||!a?.logsSupported?void 0:(W.current=!0,V([]),qa("/api/system/logs/stream",{events:{log:ce=>{try{const Pe=JSON.parse(ce.data);V(Ge=>ga([...Ge,Pe],Tn))}catch{}}},onReconnect:()=>V([])})),[I,a?.logsSupported]),f.useEffect(()=>{const R=B.current;R&&W.current&&(R.scrollTop=R.scrollHeight)},[D]);const ae=f.useCallback(async(R,ce)=>{if(!c){d(R);try{await ce()}catch(Pe){n(Pe instanceof Error?Pe.message:String(Pe),"error")}finally{d(null)}}},[c,n]);f.useEffect(()=>{if(!v||v.status!=="running")return;const R=requestAnimationFrame(()=>{C.current?.scrollIntoView({behavior:"smooth",block:"nearest"})});return()=>cancelAnimationFrame(R)},[v?.id,v?.status]);const ye=f.useCallback(R=>{x.current=!0,y([]),p(R)},[]),oe=f.useCallback(R=>ae(`rebuild-${R}`,async()=>{const ce=await Cj(R,a?.restartSupported??!1);ye(ce)}),[ye,a?.restartSupported,ae]),He=f.useCallback(()=>ae("fn-link-local",async()=>{const R=await kj();ye(R)}),[ye,ae]),J=f.useCallback(()=>ae("fn-use-global",async()=>{const R=await Sj();ye(R)}),[ye,ae]),Ce=f.useCallback(()=>ae("check-updates",async()=>{const R=await Nj();if(te(R),R.error){n(R.error,"error");return}if(R.disabled){n(r("systemControls.updatesDisabled","Update checks are disabled in global settings"),"warning");return}if(R.updateAvailable&&R.latestVersion){n(r("systemControls.updateAvailable","Update available: v{{version}} (current: v{{current}})",{version:R.latestVersion,current:R.currentVersion}),"success");return}n(r("systemControls.upToDate","You're up to date (v{{version}})",{version:R.currentVersion}),"success")}),[ae,r,n]),Re=f.useCallback(()=>ae("restart",async()=>{A.current=a?.pid??null,await Pj("system-panel"),P("waiting")}),[a?.pid,ae]),L=f.useCallback(()=>ae("engine",async()=>{const R=await Aj();n(r("systemControls.engineRestarted","Restarted {{count}} engine(s){{failed}}",{count:R.restarted.length,failed:R.failed.length?` — ${R.failed.length} failed`:""}),R.failed.length?"warning":"success")}),[ae,r,n]),Y=f.useCallback(()=>ae("agents",async()=>{const R=await Oj(e);n(r("systemControls.agentsRestarted","Restarted {{count}} active agent(s){{failed}}",{count:R.restarted.length,failed:R.failed.length?` — ${R.failed.length} failed`:""}),R.failed.length?"warning":"success")}),[e,ae,r,n]),ne=f.useCallback(()=>ae("plugins-reload",async()=>{const R=await Ej();n(r("systemControls.pluginsReloaded","Reloaded {{count}} plugin(s){{failed}}",{count:R.reloaded.length,failed:R.failed.length?` — ${R.failed.length} failed`:""}),R.failed.length?"warning":"success")}),[ae,r,n]),Ne=f.useCallback(()=>ae("backup",async()=>{await Z0(e),n(r("systemControls.backupCreated","Database backup created"),"success")}),[e,ae,r,n]),Q=f.useCallback(async()=>{const R=await _j().catch(()=>null),ce=a?.logsSupported?await Tj(100).then(Pe=>Pe.entries).catch(()=>[]):[];return{capturedAt:new Date().toISOString(),version:R?.version,health:R??void 0,system:a??void 0,recentLogs:ce}},[a]),le=f.useCallback(()=>ae("diagnostics",async()=>{const R=await Q();if(await Mj(JSON.stringify(R,null,2))){n(r("systemControls.diagnosticsCopied","Diagnostics copied to clipboard"),"success");return}n(r("systemControls.diagnosticsCopyFailed","Could not copy diagnostics to clipboard"),"error")}),[Q,ae,r,n]),Oe=a&&!a.restartSupported?r("systemControls.restartUnavailable","Needs a supervising parent — restart the dashboard without --no-supervise."):void 0,k=a?.rebuildSupported??!1,$=a?.fnBinaryLinkLocalSupported??a?.rebuildSupported??!1,de=a?.fnBinaryUseGlobalSupported!==!1,Le=v?.status==="running",Nt=f.useMemo(()=>[{key:"rebuild-app",icon:mw,title:r("systemControls.rebuildRestart","Rebuild & restart"),description:r("systemControls.rebuildRestartDesc","Rebuild core, engine, dashboard and changed plugins, then restart the server."),cta:r("systemControls.rebuildRestartCta","Rebuild"),hidden:!k,disabled:Le,run:()=>void oe("app"),testId:"cc-syscontrol-rebuild-app"},{key:"rebuild-full",icon:Ij,title:r("systemControls.fullRebuild","Full rebuild & restart"),description:r("systemControls.fullRebuildDesc","Rebuild the entire workspace (slower), then restart."),cta:r("systemControls.fullRebuildCta","Full rebuild"),hidden:!k,disabled:Le,run:()=>void oe("full"),testId:"cc-syscontrol-rebuild-full"},{key:"fn-link-local",icon:hw,title:r("systemControls.fnLinkLocal","Build & link local fn"),description:r("systemControls.fnLinkLocalDesc","Build the standalone fn binary from this source checkout and install it as your default PATH binary (~/.local)."),cta:r("systemControls.fnLinkLocalCta","Build & link"),hidden:!$,disabled:Le,run:()=>void He(),testId:"cc-syscontrol-fn-link-local"},{key:"fn-use-global",icon:Ri,title:r("systemControls.fnUseGlobal","Use global npm fn"),description:r("systemControls.fnUseGlobalDesc","Remove the local-build shims and reinstall the published runfusion.ai package globally."),cta:r("systemControls.fnUseGlobalCta","Install global"),hidden:!de,disabled:Le,run:()=>void J(),testId:"cc-syscontrol-fn-use-global"},{key:"check-updates",icon:cw,title:r("systemControls.checkUpdates","Check for updates"),description:r("systemControls.checkUpdatesDesc","Query the registry for a newer published Fusion version."),cta:r("systemControls.checkUpdatesCta","Check now"),disabled:!1,run:()=>void Ce(),testId:"cc-syscontrol-check-updates"},{key:"restart",icon:Th,title:r("systemControls.restartServer","Restart server"),description:r("systemControls.restartServerDesc","Gracefully restart the dashboard and engine process."),cta:r("systemControls.restartServerCta","Restart"),disabled:!a?.restartSupported,note:Oe,run:()=>void Re(),testId:"cc-syscontrol-restart"},{key:"engine",icon:Dj,title:r("systemControls.restartEngine","Restart engine"),description:r("systemControls.restartEngineDesc","Stop and restart all running project engines in place."),cta:r("systemControls.restartEngineCta","Restart engine"),disabled:!a?.engineAvailable,note:a&&!a.engineAvailable?r("systemControls.engineUnavailable","Engine is not running in this process."):void 0,run:()=>void L(),testId:"cc-syscontrol-engine"},{key:"agents",icon:Rj,title:r("systemControls.restartAgents","Restart all agents"),description:r("systemControls.restartAgentsDesc","Stop active runs and bounce every active agent. Paused agents stay paused."),cta:r("systemControls.restartAgentsCta","Restart agents"),disabled:!1,run:()=>void Y(),testId:"cc-syscontrol-agents"},{key:"rebuild-plugins",icon:ow,title:r("systemControls.rebuildPlugins","Rebuild & reload plugins"),description:r("systemControls.rebuildPluginsDesc","Rebuild changed plugin bundles and hot-reload them without a server restart."),cta:r("systemControls.rebuildPluginsCta","Rebuild plugins"),hidden:!k,disabled:Le,run:()=>void oe("plugins"),testId:"cc-syscontrol-rebuild-plugins"},{key:"plugins-reload",icon:Gt,title:r("systemControls.reloadPlugins","Reload plugins"),description:r("systemControls.reloadPluginsDesc","Hot-reload every started plugin from its current build."),cta:r("systemControls.reloadPluginsCta","Reload"),disabled:!a?.pluginReloadSupported,note:a&&!a.pluginReloadSupported?r("systemControls.pluginReloadUnavailable","Plugin runner is unavailable in this mode."):void 0,run:()=>void ne(),testId:"cc-syscontrol-plugins-reload"},{key:"backup",icon:dw,title:r("systemControls.backupDb","Backup database"),description:r("systemControls.backupDbDesc","Create an integrity-checked backup of the database now."),cta:r("systemControls.backupDbCta","Backup now"),disabled:!1,run:()=>void Ne(),testId:"cc-syscontrol-backup"},{key:"diagnostics",icon:Lj,title:r("systemControls.copyDiagnostics","Copy diagnostics"),description:r("systemControls.copyDiagnosticsDesc","Copy a JSON bundle with health, runtime info and recent logs."),cta:r("systemControls.copyDiagnosticsCta","Copy"),disabled:!1,run:()=>void le(),testId:"cc-syscontrol-diagnostics"}],[He,J,oe,Y,Ne,Ce,le,L,ne,Re,a,$,de,k,Le,Oe,r]),pa=v?v.status==="running"?r("systemControls.jobRunning","Running…"):v.status==="succeeded"?r("systemControls.jobSucceeded","Succeeded"):r("systemControls.jobFailed","Failed"):null,ks=v?.kind==="fn-binary"&&v.scope==="link-local"?r("systemControls.fnLinkLocalOutput","Local fn build output"):v?.kind==="fn-binary"&&v.scope==="use-global"?r("systemControls.fnUseGlobalOutput","Global npm install output"):r("systemControls.rebuildOutput","Rebuild output");return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"cc-area-section","data-testid":"cc-system-controls",children:[s.jsxs("div",{className:"cc-area-section-header cc-system-controls-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("systemControls.title","System controls")}),s.jsx("button",{type:"button",className:"btn-icon","data-testid":"cc-system-refresh",onClick:()=>void q(),title:r("systemControls.refresh","Refresh capabilities"),"aria-label":r("systemControls.refresh","Refresh capabilities"),children:s.jsx(Gt,{size:16})})]}),o?s.jsx("p",{className:"cc-system-note cc-system-note--error",role:"status",children:r("systemControls.infoError","Failed to load system info: {{error}}",{error:o})}):null,w==="waiting"?s.jsxs("div",{className:"cc-syscontrols-banner cc-syscontrols-banner--waiting",role:"status","data-testid":"cc-system-restart-waiting",children:[s.jsx(Gt,{size:16,className:"spin"}),s.jsx("span",{children:r("systemControls.restartWaiting","Restarting server — waiting for it to come back…")})]}):null,w==="back"?s.jsxs("div",{className:"cc-syscontrols-banner cc-syscontrols-banner--back",role:"status","data-testid":"cc-system-restart-back",children:[s.jsx("span",{children:r("systemControls.restartBack","Server is back online — reloading…")}),s.jsx("button",{type:"button",className:"btn",onClick:()=>window.location.reload(),children:r("systemControls.reloadNow","Reload now")})]}):null,w==="timeout"?s.jsxs("div",{className:"cc-syscontrols-banner cc-syscontrols-banner--error",role:"status","data-testid":"cc-system-restart-timeout",children:[s.jsx("span",{children:r("systemControls.restartTimeout","The server did not come back within the expected time. It may still be restarting, or the restart may have stopped it.")}),s.jsx("button",{type:"button",className:"btn",onClick:()=>window.location.reload(),children:r("systemControls.reloadNow","Reload now")})]}):null,K&&!K.error?s.jsx("div",{className:`cc-syscontrols-banner ${K.updateAvailable?"cc-syscontrols-banner--back":""}`,role:"status","data-testid":"cc-system-update-check-result",children:s.jsx("span",{children:K.disabled?r("systemControls.updatesDisabled","Update checks are disabled in global settings"):K.updateAvailable&&K.latestVersion?r("systemControls.updateAvailable","Update available: v{{version}} (current: v{{current}})",{version:K.latestVersion,current:K.currentVersion}):r("systemControls.upToDate","You're up to date (v{{version}})",{version:K.currentVersion})})}):null,s.jsxs("div",{className:"cc-syscontrols-grid",children:[Nt.filter(R=>!("hidden"in R&&R.hidden)).map(R=>s.jsxs("div",{className:"card cc-syscontrol-card","data-testid":R.testId,children:[s.jsxs("div",{className:"cc-syscontrol-head",children:[s.jsx(R.icon,{size:18,className:"cc-syscontrol-icon","aria-hidden":!0}),s.jsx("span",{className:"cc-syscontrol-title",children:R.title})]}),s.jsx("p",{className:"cc-syscontrol-desc",children:R.description}),R.note?s.jsx("p",{className:"cc-syscontrol-note",children:R.note}):null,s.jsx("button",{type:"button",className:"btn cc-syscontrol-cta",disabled:R.disabled||c!==null||w==="waiting",onClick:R.run,children:c===R.key?r("systemControls.working","Working…"):R.cta})]},R.key)),s.jsxs("div",{className:"card cc-syscontrol-card","data-testid":"cc-syscontrol-report-bug",children:[s.jsxs("div",{className:"cc-syscontrol-head",children:[s.jsx(Q0,{size:18,className:"cc-syscontrol-icon","aria-hidden":!0}),s.jsx("span",{className:"cc-syscontrol-title",children:r("systemControls.reportBug","Report")})]}),s.jsx("p",{className:"cc-syscontrol-desc",children:r("systemControls.reportBugDesc","Report a bug, send feedback, share an idea, or get help through a guided prompt.")}),s.jsx("div",{className:"cc-syscontrol-cta",children:s.jsx(ew,{onSelect:m})})]})]}),u?s.jsx(tw,{actionType:u,contextRefs:h,onClose:()=>m(null)}):null]}),v?s.jsxs("div",{ref:C,className:"cc-area-section","data-testid":"cc-system-rebuild-output",children:[s.jsxs("div",{className:"cc-area-section-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:ks}),s.jsx("span",{className:`cc-syscontrols-job-status cc-syscontrols-job-status--${v.status}`,children:pa})]}),(b[0]?.i??0)>0?s.jsx("p",{className:"cc-system-note","data-testid":"cc-system-rebuild-output-truncated",children:r("systemControls.jobOutputTruncated","Showing the most recent {{count}} lines — earlier output trimmed",{count:Tn})}):null,s.jsx("pre",{ref:j,className:"cc-syscontrols-output","aria-live":"polite",onScroll:G,children:b.map(R=>`${R.stream==="stderr"?"! ":""}${R.text}`).join(`
|
|
99
|
-
`)}),v.status==="failed"&&v.error?s.jsx("p",{className:"cc-system-note cc-system-note--error",children:v.error}):null]}):null,s.jsxs("div",{className:"cc-area-section","data-testid":"cc-system-logs",children:[s.jsxs("div",{className:"cc-area-section-header",children:[s.jsxs("h3",{className:"cc-area-section-title cc-system-section-title-with-icon",children:[s.jsx(yw,{size:16}),s.jsx("span",{children:r("systemControls.serverLogs","Server logs")})]}),s.jsx("button",{type:"button",className:"btn",disabled:a?!a.logsSupported:!1,onClick:()=>z(R=>!R),"data-testid":"cc-system-logs-toggle",children:I?r("systemControls.hideLogs","Hide logs"):r("systemControls.viewLogs","View logs")})]}),a&&!a.logsSupported?s.jsx("p",{className:"cc-system-note",children:r("systemControls.logsUnavailable","Host-process logs are not available in this mode.")}):null,I&&a?.logsSupported?s.jsxs("div",{ref:B,className:"cc-syscontrols-output cc-syscontrols-logs","aria-live":"polite",onScroll:M,children:[D.map((R,ce)=>s.jsxs("div",{className:`cc-syscontrols-log-line cc-syscontrols-log-line--${R.level}`,children:[s.jsx("span",{className:"cc-syscontrols-log-time",children:M2(R.timestamp)}),R.prefix?s.jsxs("span",{className:"cc-syscontrols-log-prefix",children:["[",R.prefix,"]"]}):null,s.jsx("span",{className:"cc-syscontrols-log-message",children:R.message})]},`${R.timestamp}-${ce}`)),D.length===0?s.jsx("div",{className:"cc-syscontrols-log-line",children:r("systemControls.noLogs","No log entries yet.")}):null]}):null]})]})}function D2(e,t){if(!Number.isFinite(e)||e<=0)return 0;const r=Number.isFinite(t)&&t>0?t:1;return Math.max(0,Math.min(100,e/r*100))}function R2(e,t){return t===null?null:!Number.isFinite(t)||t<=0?"—":`${Math.max(0,Math.min(100,e/t*100)).toFixed(0)}%`}function Ux({stages:e,ariaLabel:t}){const r=e.reduce((n,a)=>a.value>n?a.value:n,0);return s.jsx("ol",{className:"cc-funnel","aria-label":t,children:e.map((n,a)=>{const i=D2(n.value,r),o=a>0?e[a-1].value:null,l=R2(n.value,o),c=String(Number.isFinite(n.value)?n.value:0);return s.jsxs("li",{className:"cc-funnel-stage",children:[s.jsxs("div",{className:"cc-funnel-header",children:[s.jsx("span",{className:"cc-funnel-label",children:n.label}),l!==null?s.jsx("span",{className:"cc-funnel-conversion",children:l}):null]}),s.jsx("div",{className:"cc-funnel-track",children:s.jsx("div",{className:"cc-funnel-fill",style:{width:`${i}%`},role:"img","aria-label":`${n.label}: ${c}`})}),s.jsx("span",{className:"cc-funnel-value",children:c})]},n.label)})})}function qx(e){const t=e.trim().toLowerCase();return t==="in-progress"||t==="in progress"||t==="doing"}function L2(e){return(e??[]).reduce((t,r)=>t+(qx(r.column)?r.count:0),0)}function $2(e){return(e?.activeSessions??0)+(e?.activeRuns??0)}const F2=5e3,B2=3e4,z2=["session:updated","session:completed","run:created","run:updated","run:completed","run:cancelled","run:failed","agent:stateChanged","task:moved","task:updated","task:created","task:deleted"],K2=new Set(["triage","signal","backlog"]),Xo=[{id:"triage",match:e=>K2.has(e)},{id:"todo",match:e=>e==="todo"||e==="to-do"||e==="to do"||e==="ready"},{id:"in-progress",match:qx},{id:"in-review",match:e=>e==="in-review"||e==="in review"||e==="review"},{id:"done",match:e=>e==="done"||e==="complete"||e==="completed"||e==="shipped"}];function Wx(e){const[t,r]=f.useState(null),[n,a]=f.useState(!0),[i,o]=f.useState(null),[l,c]=f.useState(!1),d=f.useRef(null),u=f.useRef(null),m=f.useRef(Symbol("no-live-snapshot-request")),h=f.useRef(m.current),{capture:v}=Fj(e,"useLiveSnapshot"),p=f.useCallback(()=>{u.current!==null&&(clearInterval(u.current),u.current=null,c(!1))},[]),b=f.useCallback(async()=>{const g=v(),j=g.projectIdAtStart;if(h.current!==j){h.current=j;try{const x=await fr(mr("/command-center/live",j));if(g.isStale())return;d.current=x,r(x),o(null)}catch(x){if(g.isStale())return;o(x instanceof Error?x.message:"Failed to load live snapshot")}finally{if(h.current===j&&(h.current=m.current),!g.isStale()){a(!1);const x=d.current;(typeof document>"u"||document.visibilityState!=="hidden")&&!!x&&(x.activeSessions>0||x.activeRuns>0)?u.current===null&&(u.current=setInterval(()=>{b()},F2),c(!0)):p()}}}},[v,p]);f.useEffect(()=>{d.current=null,r(null),a(!0),o(null),b();const g=qa("/api/events",{events:Object.fromEntries(z2.map(x=>[x,()=>void b()])),onReconnect:()=>void b()}),j=()=>{if(document.visibilityState==="hidden"){p();return}b()};return typeof document<"u"&&document.addEventListener("visibilitychange",j),()=>{typeof document<"u"&&document.removeEventListener("visibilitychange",j),g(),p()}},[b,e,p]);const y=f.useCallback(()=>{b()},[b]);return{snapshot:t,isLoading:n,error:i!==null&&t===null?i:null,polling:l,reload:y}}function V2(e){const t=e.split(/[/\\]/).filter(Boolean);return t.length>0?t[t.length-1]:e}function U2(e,t){const r=Date.parse(t),n=new Map;for(const a of e){if(!a.worktreePath)continue;const i=n.get(a.worktreePath)??{count:0,freshestMs:0},o=Date.parse(a.updatedAt);n.set(a.worktreePath,{count:i.count+1,freshestMs:Number.isFinite(o)?Math.max(i.freshestMs,o):i.freshestMs})}return Array.from(n.entries()).map(([a,i])=>{const o=Number.isFinite(r)&&i.freshestMs>0?r-i.freshestMs:0;return{path:a,label:V2(a),sessionCount:i.count,inactive:o>B2}}).sort((a,i)=>i.sessionCount-a.sessionCount)}function q2(e,t){const r=new Map;for(const i of Xo)r.set(i.id,0);let n=0;for(const i of e){const o=i.column.trim().toLowerCase(),l=Xo.find(c=>c.match(o));l?r.set(l.id,(r.get(l.id)??0)+i.count):n+=i.count}const a=Xo.map(i=>({label:t(`commandCenter.missionControl.stage.${i.id}`,i.id),value:r.get(i.id)??0}));return n>0&&a.push({label:t("commandCenter.missionControl.stage.other","Other"),value:n}),a}function W2({projectId:e}={}){const{t}=se("app"),{snapshot:r,isLoading:n,error:a}=Wx(e),i=f.useMemo(()=>r?.sessions??[],[r?.sessions]),o=f.useMemo(()=>r?U2(r.sessions,r.capturedAt):[],[r]),l=f.useMemo(()=>r?q2(r.columns,t):[],[r,t]);if(n&&!r)return s.jsxs("div",{className:"cc-loading-inline","data-testid":"mission-control-loading",children:[s.jsx(Jl,{size:18,className:"spin"}),s.jsx("span",{children:t("commandCenter.missionControl.loading","Loading live activity…")})]});if(a!==null)return s.jsxs("div",{className:"cc-area-error","data-testid":"mission-control-error",role:"alert",children:[s.jsx(Mi,{size:22}),s.jsx("p",{children:a})]});const c=(r?.activeSessions??0)>0||(r?.activeRuns??0)>0;return s.jsxs("div",{className:"cc-mission-control","data-testid":"mission-control",children:[s.jsxs("div",{className:"cc-stat-grid","data-testid":"mission-control-summary",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"mission-control-active-sessions",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.missionControl.activeSessions","Active sessions")}),s.jsx("div",{className:"cc-stat-value",children:r?.activeSessions??0})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"mission-control-active-runs",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.missionControl.activeRuns","Active runs")}),s.jsx("div",{className:"cc-stat-value",children:r?.activeRuns??0})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"mission-control-active-nodes",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.missionControl.activeNodes","Active nodes")}),s.jsx("div",{className:"cc-stat-value",children:r?.activeNodes??0})]})]}),c?null:s.jsxs("div",{className:"cc-area-empty","data-testid":"mission-control-idle",children:[s.jsx($j,{size:24}),s.jsx("p",{children:t("commandCenter.missionControl.idle","No active sessions. Live updates resume when work starts.")})]}),s.jsxs("div",{className:"cc-mc-columns",children:[s.jsxs("section",{className:"cc-mc-section","data-testid":"mission-control-sessions",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.missionControl.sessionsTitle","Sessions")}),i.length===0?s.jsx("p",{className:"cc-mc-muted","data-testid":"mission-control-sessions-empty",children:t("commandCenter.missionControl.noSessions","No active sessions.")}):s.jsx("ul",{className:"cc-mc-list",children:i.map(d=>s.jsxs("li",{className:"cc-mc-session","data-testid":`mission-control-session-${d.id}`,children:[s.jsx("span",{className:"cc-mc-session-purpose",children:d.purpose||d.adapterId}),s.jsxs("span",{className:"cc-mc-session-meta",children:[s.jsx("span",{className:"cc-mc-badge",children:d.agentState}),d.taskId?s.jsx("span",{className:"cc-mc-task",children:d.taskId}):null]})]},d.id))})]}),s.jsxs("section",{className:"cc-mc-section","data-testid":"mission-control-nodes",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.missionControl.nodesTitle","Nodes")}),o.length===0?s.jsx("p",{className:"cc-mc-muted","data-testid":"mission-control-nodes-empty",children:t("commandCenter.missionControl.noNodes","No active nodes.")}):s.jsx("ul",{className:"cc-mc-list",children:o.map(d=>s.jsxs("li",{className:`cc-mc-node${d.inactive?" inactive":""}`,"data-testid":`mission-control-node-${d.label}`,"data-inactive":d.inactive?"true":"false",children:[s.jsx("span",{className:"cc-mc-node-label",children:d.label}),s.jsxs("span",{className:"cc-mc-node-meta",children:[d.inactive?s.jsx("span",{className:"cc-mc-badge inactive",children:t("commandCenter.missionControl.inactive","inactive")}):null,s.jsx("span",{className:"cc-mc-node-count",children:t("commandCenter.missionControl.sessionCount","{{count}} session",{count:d.sessionCount})})]})]},d.path))})]})]}),s.jsxs("section",{className:"cc-mc-section","data-testid":"mission-control-funnel",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.missionControl.funnelTitle","SDLC funnel (live)")}),s.jsx(Ux,{stages:l,ariaLabel:t("commandCenter.missionControl.funnelTitle","SDLC funnel (live)")})]})]})}const H2=500,Mn={maxConcurrent:As.maxConcurrent,maxWorktrees:As.maxWorktrees,worktreeLimitEnabled:!!As.worktreeLimitEnabled},Yr={maxConcurrent:{min:1,max:50},maxWorktrees:{min:1,max:50}},Hx={maxConcurrent:{key:"commandCenter.controls.concurrency.maxConcurrent",defaultValue:"Max concurrent tasks"},maxWorktrees:{key:"commandCenter.controls.concurrency.maxWorktrees",defaultValue:"Max worktrees"}};function Gx(e,t,r){return Math.min(r,Math.max(t,e))}function Yo(e,t){return Math.max(Yr[e].max,t)}function G2(e,t,r,n){return n<=r?0:Gx((Math.min(e,t)-r)/(n-r),0,1)}function X2(e){return{"--use-pct":`${e*100}%`,"--use-offset":`calc((var(--cc-controls-range-thumb-size) / 2) + ((100% - var(--cc-controls-range-thumb-size)) * ${e}))`}}function Y2(e,t){return Object.keys(Hx).filter(r=>e[r]!==t[r])}function Z2({paused:e,label:t}){return s.jsxs("span",{className:"cc-controls-status-pill",children:[s.jsx("span",{className:`status-dot ${e?"status-dot--pending":"status-dot--online"}`,"aria-hidden":"true"}),s.jsx("span",{children:t})]})}function J2({projectId:e,colorTheme:t,themeMode:r,shadcnCustomColors:n={},resolvedThemeMode:a=r==="light"?"light":"dark",onColorThemeChange:i,onThemeModeChange:o,onShadcnCustomColorsChange:l=()=>{},onChangeView:c}){const{t:d}=se("app"),{confirm:u}=ec(),{globalPaused:m,toggleGlobalPause:h,refresh:v}=Ah(e),[p,b]=f.useState({status:"loading",data:null,error:null}),[y,g]=f.useState(!1),[j,x]=f.useState("idle"),C=f.useRef(Mn),w=f.useRef(null),P=f.useRef(!1),A=Bj();f.useEffect(()=>{let B=!1;return g(!1),x("idle"),b({status:"loading",data:null,error:null}),(async()=>{try{const[W,K]=await Promise.all([zj(e),Oh(e)]);if(!B){const te={maxConcurrent:K.maxConcurrent??W.maxConcurrent??Mn.maxConcurrent,maxWorktrees:K.maxWorktrees??Mn.maxWorktrees,worktreeLimitEnabled:K.worktreeLimitEnabled!==!1};C.current=te,w.current=null,P.current=!1,b({status:"loaded",data:te,error:null})}}catch(W){B||b({status:"error",data:C.current,error:W instanceof Error?W.message:d("commandCenter.controls.concurrency.error","Unable to load concurrency settings")})}})(),()=>{B=!0}},[e,d]),f.useEffect(()=>{if(!y||!p.data||P.current)return;const B=p.data,W=setTimeout(()=>{const K=C.current,te=Y2(B,K);if(te.length===0){g(!1),w.current=null;return}P.current=!0;const G=te.map(q=>{const H=Hx[q];return d("commandCenter.controls.concurrency.confirmChangeSummaryItem","{{setting}} from {{oldValue}} to {{newValue}}",{setting:d(H.key,H.defaultValue),oldValue:K[q],newValue:B[q]})}),M=te.length===1?d("commandCenter.controls.concurrency.confirmMessage","Change {{setting}}?",{setting:G[0]}):d("commandCenter.controls.concurrency.confirmMultipleMessage","Change these concurrency settings: {{settings}}?",{settings:G.join("; ")});u({title:d("commandCenter.controls.concurrency.confirmTitle","Confirm concurrency change"),message:M,confirmLabel:d("commandCenter.controls.concurrency.confirmSave","Save change"),cancelLabel:d("commandCenter.controls.concurrency.confirmCancel","Cancel")}).then(q=>{if(P.current=!1,!q){b({status:"loaded",data:C.current,error:null}),g(!1),w.current=null,x("idle");return}x("saving"),Eh(B,e).then(async()=>{await v(),C.current=B,g(!1),w.current=null,x("saved")}).catch(()=>{x("error")})})},H2);return()=>clearTimeout(W)},[u,y,p.data,e,v,d]);const S=(B,W,K,te)=>{const G=Gx(Number(W),K,te);w.current=B,b(M=>({status:"loaded",data:{...M.data??Mn,[B]:G},error:null})),g(!0),x("idle")},N=m,E=p.data??Mn,T=A.status==="loaded",O=A.projectActiveCount(e),I=Yo("maxConcurrent",E.maxConcurrent),z=p.status==="loaded"&&E.worktreeLimitEnabled,D=p.status==="loaded",V=G2(O,E.maxConcurrent,Yr.maxConcurrent.min,I);return s.jsx("section",{className:"cc-controls","data-testid":"command-center-controls","aria-label":d("commandCenter.controls.title","Operator controls"),children:s.jsxs("div",{className:"cc-controls-grid",children:[s.jsxs("section",{className:"card cc-controls-card","data-testid":"cc-controls-engine",children:[s.jsxs("div",{className:"cc-controls-card-header",children:[s.jsxs("div",{children:[s.jsx("h3",{children:d("commandCenter.controls.engine.title","AI engine")}),s.jsx("p",{children:d("commandCenter.controls.engine.description","Stopping the engine halts all AI work.")})]}),s.jsx(Z2,{paused:N,label:N?d("commandCenter.controls.status.stopped","Stopped"):d("commandCenter.controls.status.running","Running")})]}),s.jsxs("button",{type:"button",className:"btn btn-secondary cc-controls-action",onClick:()=>void h(),children:[s.jsx(Th,{size:16,"aria-hidden":"true"}),s.jsx("span",{children:N?d("header.startAiEngine","Start AI Engine"):d("header.stopAiEngine","Stop AI Engine")})]}),c?s.jsxs("div",{className:"cc-overview-engine-nav","data-testid":"command-center-engine-panel",children:[s.jsx("button",{type:"button",className:"btn btn-secondary cc-overview-engine-nav-btn",onClick:()=>c("board"),children:d("commandCenter.controls.engine.viewBoard","View Board")}),s.jsx("button",{type:"button",className:"btn btn-secondary cc-overview-engine-nav-btn",onClick:()=>c("agents"),children:d("commandCenter.controls.engine.viewAgents","View Agents")})]}):null]}),s.jsxs("section",{className:"card cc-controls-card","data-testid":"cc-controls-theme",children:[s.jsx("div",{className:"cc-controls-card-header",children:s.jsxs("div",{children:[s.jsx("h3",{children:d("commandCenter.controls.theme.title","Theme")}),s.jsx("p",{children:d("commandCenter.controls.theme.description","Switch the dashboard theme with live color previews.")})]})}),s.jsx(rw,{colorTheme:t,themeMode:r,shadcnCustomColors:n,resolvedThemeMode:a,onColorThemeChange:i,onThemeModeChange:o,onShadcnCustomColorsChange:l})]}),s.jsxs("section",{className:"card cc-controls-card cc-controls-card--concurrency","data-testid":"cc-controls-concurrency",children:[s.jsxs("div",{className:"cc-controls-card-header",children:[s.jsxs("div",{children:[s.jsx("h3",{children:d("commandCenter.controls.concurrency.title","Concurrency")}),s.jsx("p",{children:d("commandCenter.controls.concurrency.description","Tune live scheduler capacity.")})]}),s.jsx("span",{className:`cc-controls-save-state cc-controls-save-state--${j}`,"aria-live":"polite",children:p.status==="loading"?d("commandCenter.controls.status.loading","Loading…"):j==="saving"?d("commandCenter.controls.status.saving","Saving…"):j==="saved"?d("commandCenter.controls.status.saved","Saved"):j==="error"?d("commandCenter.controls.status.saveError","Save failed"):d("commandCenter.controls.status.ready","Ready")})]}),s.jsxs("div",{className:"cc-controls-sliders",children:[s.jsxs("label",{className:"cc-controls-slider",htmlFor:"cc-max-concurrent",children:[s.jsxs("span",{className:"cc-controls-slider-label",children:[d("commandCenter.controls.concurrency.maxConcurrent","Max concurrent tasks"),s.jsx("strong",{children:E.maxConcurrent})]}),T?s.jsxs(s.Fragment,{children:[s.jsx("small",{className:"cc-controls-slider-caption","data-testid":"cc-project-running",children:d("commandCenter.controls.concurrency.runningProject","{{count}} running (this project)",{count:O})}),s.jsx("small",{className:"cc-controls-slider-caption","data-testid":"cc-global-running",children:d("commandCenter.controls.concurrency.runningGlobal","{{count}} running (all projects)",{count:A.currentlyActive})})]}):null,s.jsxs("span",{className:"cc-controls-range-wrap",children:[s.jsx("input",{id:"cc-max-concurrent",className:"cc-controls-touch-slider",type:"range",min:Yr.maxConcurrent.min,max:I,value:E.maxConcurrent,disabled:!D,onChange:B=>S("maxConcurrent",B.target.value,Yr.maxConcurrent.min,I)}),T?s.jsx("span",{className:"status-dot status-dot--online cc-controls-use-marker",style:X2(V),"data-testid":"cc-project-use-marker","aria-hidden":"true"}):null]})]}),s.jsxs("label",{className:"cc-controls-slider",htmlFor:"cc-max-worktrees",children:[s.jsxs("span",{className:"cc-controls-slider-label",children:[d("commandCenter.controls.concurrency.maxWorktrees","Max worktrees"),s.jsx("strong",{children:E.maxWorktrees})]}),s.jsx("span",{className:"cc-controls-range-wrap",children:s.jsx("input",{id:"cc-max-worktrees",className:"cc-controls-touch-slider",type:"range",min:Yr.maxWorktrees.min,max:Yo("maxWorktrees",E.maxWorktrees),value:E.maxWorktrees,disabled:!z,onChange:B=>S("maxWorktrees",B.target.value,Yr.maxWorktrees.min,Yo("maxWorktrees",E.maxWorktrees))})}),!E.worktreeLimitEnabled&&p.status==="loaded"?s.jsx("small",{className:"cc-controls-slider-caption",children:d("commandCenter.controls.concurrency.worktreeLimitDisabled","Enable the worktree limit in Settings to edit this capacity.")}):null]})]}),p.status==="error"?s.jsx("p",{className:"cc-controls-error",role:"alert",children:p.error}):null]})]})})}function jh(e){return`${(e*100).toFixed(1)}%`}function wh(e){return e===null?"—":`${(e/6e4).toFixed(1)}m`}function Ia(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function Q2({projectId:e}={}){const{t}=se("app"),[r,n]=f.useState(null),[a,i]=f.useState(!0),[o,l]=f.useState(null),[c,d]=f.useState(!1),[u,m]=f.useState(!1),[h,v]=f.useState(null),p=f.useCallback(async()=>{i(!0),l(null);try{const T=await fr(mr("/health/reliability",e));n(T)}catch(T){l(T instanceof Error?T.message:t("reliability.failedToLoad","Failed to load reliability metrics"))}finally{i(!1)}},[t,e]),b=f.useCallback(async()=>{v(null),await fr(mr("/health/reliability/reset",e),{method:"POST"}),await p(),m(!1)},[p,e]);f.useEffect(()=>{p();const T=setInterval(()=>{p()},6e4);return()=>clearInterval(T)},[p]);const y=r?.headline.inReviewFailureRate7d,g=f.useMemo(()=>y==null?null:Math.max(0,Math.min(1,1-y)),[y]),j=f.useMemo(()=>g===null?"var(--text-muted)":g>=.95?"var(--color-success)":g>=.9?"var(--color-warning)":"var(--color-error)",[g]),x=f.useMemo(()=>(r?.perDay??[]).reduce((T,O)=>T+O.tasksEnteredInReview,0),[r?.perDay]),C=f.useMemo(()=>(r?.perDay??[]).reduce((T,O)=>T+O.tasksBouncedToInProgress,0),[r?.perDay]),w=f.useMemo(()=>r?.perDay?[...c?r.perDay:r.perDay.filter(O=>O.hasSamples!==!1)].sort((O,I)=>O.date.localeCompare(I.date)):[],[r?.perDay,c]),P=f.useMemo(()=>w.some(O=>O.tasksEnteredInReview>0||O.tasksBouncedToInProgress>0)?[{label:t("reliability.flowChart.entered","Entered"),values:w.map(O=>O.tasksEnteredInReview)},{label:t("reliability.flowChart.bounced","Bounced"),values:w.map(O=>O.tasksBouncedToInProgress)}]:[],[w,t]),A=f.useMemo(()=>Object.entries(r?.mergeAttempts.histogram??{}).sort(([T],[O])=>T.localeCompare(O,void 0,{numeric:!0})),[r?.mergeAttempts.histogram]),S=f.useMemo(()=>A.map(([T,O])=>({label:T,value:O})),[A]),N=f.useMemo(()=>A.reduce((T,[,O])=>T+O,0),[A]),E=r?Ia(r.resetAt??new Date(Date.parse(r.generatedAt)-r.windowDays*864e5).toISOString()):"—";return a&&r===null?s.jsxs("div",{className:"reliability-loading","data-testid":"reliability-loading",children:[s.jsx(Jl,{size:24,className:"spin"}),s.jsx("p",{children:t("reliability.loading","Loading reliability data...")})]}):o!==null&&r===null?s.jsxs("div",{className:"reliability-error","data-testid":"reliability-error",role:"alert",children:[s.jsx(Mi,{size:24}),s.jsx("p",{children:o})]}):s.jsxs("section",{className:"reliability-view",children:[s.jsxs("div",{className:"card reliability-card reliability-headline-card",children:[s.jsxs("div",{className:"reliability-section-header",children:[s.jsx("h2",{children:t("reliability.heading","Reliability")}),s.jsx("button",{className:"btn btn-danger btn-sm",onClick:()=>m(!0),children:t("reliability.resetStats","Reset stats")})]}),s.jsx("div",{className:"reliability-headline",style:{color:j},children:y==null?t("reliability.insufficientData","Insufficient data — {{reason}}",{reason:r?.headline.reason??"unknown"}):jh(g??0)}),g!==null?s.jsx("div",{className:"reliability-muted",children:t("reliability.successRateLabel","In-review success rate (last 7d)")}):null,r?.resetAt?s.jsx("div",{className:"reliability-muted",children:t("reliability.countingSince","Counting since {{date}}",{date:Ia(r.resetAt)})}):null,s.jsxs("details",{className:"reliability-details",children:[s.jsx("summary",{children:t("reliability.details","Details")}),s.jsxs("div",{className:"reliability-details-content",children:[s.jsx("div",{children:t("reliability.bouncedEntered","{{bounced}} bounced / {{entered}} entered (last {{days}}d)",{bounced:C,entered:x,days:r?.windowDays??7})}),y!=null?s.jsx("div",{children:t("reliability.failureRate","Failure rate: {{rate}}",{rate:jh(y)})}):null,s.jsx("div",{children:t("reliability.window","Window: {{start}} → {{end}}",{start:E,end:Ia(r?.generatedAt)})}),r?.resetAt?s.jsx("div",{children:t("reliability.resetBaseline","Reset baseline: {{date}}",{date:Ia(r.resetAt)})}):null,r?.headline.reason?s.jsx("div",{children:t("reliability.reason","Reason: {{reason}}",{reason:r.headline.reason})}):null]})]})]}),s.jsxs("div",{className:"reliability-grid",children:[s.jsxs("div",{className:"card reliability-card",children:[s.jsxs("div",{className:"reliability-section-header",children:[s.jsx("h3",{children:t("reliability.inReviewFlow","In-review flow")}),s.jsx("button",{className:"btn btn-sm",onClick:()=>d(T=>!T),children:c?t("reliability.hideEmptyDays","Hide empty days"):t("reliability.showEmptyDays","Show empty days")})]}),s.jsxs("div",{className:"reliability-chart-section","data-testid":"reliability-flow-chart",children:[s.jsx("h4",{children:t("reliability.flowChart.heading","Entered vs bounced trend")}),s.jsx(br,{series:P,ariaLabel:t("reliability.flowChart.aria","In-review entered vs bounced per day"),emptyLabel:t("reliability.flowChart.empty","No in-review flow data")})]}),s.jsxs("table",{className:"reliability-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:t("reliability.table.date","Date")}),s.jsx("th",{children:t("reliability.table.entered","Entered")}),s.jsx("th",{children:t("reliability.table.bounced","Bounced")})]})}),s.jsx("tbody",{children:w.map(T=>s.jsxs("tr",{children:[s.jsx("td",{children:T.date}),s.jsx("td",{children:T.tasksEnteredInReview}),s.jsx("td",{children:T.tasksBouncedToInProgress})]},T.date))})]})]}),s.jsxs("div",{className:"card reliability-card",children:[s.jsx("h3",{children:t("reliability.duration.heading","Duration")}),s.jsxs("div",{className:"reliability-stat-row",children:[s.jsx("span",{children:t("reliability.duration.p50","P50")}),s.jsx("strong",{children:wh(r?.duration.p50Ms??null)})]}),s.jsxs("div",{className:"reliability-stat-row",children:[s.jsx("span",{children:t("reliability.duration.p95","P95")}),s.jsx("strong",{children:wh(r?.duration.p95Ms??null)})]}),s.jsx("div",{className:"reliability-muted",children:t("reliability.duration.samples","Samples: {{count}}",{count:r?.duration.sampleCount??0})}),s.jsxs("details",{className:"reliability-details",children:[s.jsx("summary",{children:t("reliability.duration.moreStats","More stats")}),s.jsxs("div",{className:"reliability-details-content",children:[s.jsx("div",{children:t("reliability.duration.p50Raw","P50 raw: {{value}} ms",{value:r?.duration.p50Ms??"—"})}),s.jsx("div",{children:t("reliability.duration.p95Raw","P95 raw: {{value}} ms",{value:r?.duration.p95Ms??"—"})}),s.jsx("div",{children:t("reliability.duration.sampleCount","Sample count: {{count}}",{count:r?.duration.sampleCount??0})}),r?.duration.reason?s.jsx("div",{children:t("reliability.duration.reason","Reason: {{reason}}",{reason:r.duration.reason})}):null]})]})]}),s.jsxs("div",{className:"card reliability-card",children:[s.jsx("h3",{children:t("reliability.mergeAttempts.heading","Merge attempts")}),s.jsxs("div",{className:"reliability-stat-row",children:[s.jsx("span",{children:t("reliability.mergeAttempts.mean","Mean")}),s.jsx("strong",{children:r?.mergeAttempts.mean?.toFixed(2)??"—"})]}),s.jsxs("div",{className:"reliability-stat-row",children:[s.jsx("span",{children:t("reliability.mergeAttempts.max","Max")}),s.jsx("strong",{children:r?.mergeAttempts.max??"—"})]}),s.jsxs("div",{className:"reliability-chart-section","data-testid":"reliability-merge-attempts-chart",children:[s.jsx("h4",{children:t("reliability.mergeAttemptsChart.heading","Attempts distribution")}),s.jsx(Mt,{data:S,ariaLabel:t("reliability.mergeAttemptsChart.aria","Merge attempts histogram"),emptyLabel:t("reliability.mergeAttemptsChart.empty","No merge attempt data")})]}),s.jsx("ul",{className:"reliability-histogram",children:A.map(([T,O])=>s.jsxs("li",{children:[s.jsx("span",{children:T}),s.jsx("div",{className:"reliability-histogram-bar-wrap",children:s.jsx("div",{className:"reliability-histogram-bar",style:{width:`${Math.min(O*20,100)}%`}})}),s.jsx("strong",{children:O})]},T))}),s.jsxs("details",{className:"reliability-details",children:[s.jsx("summary",{children:t("reliability.mergeAttempts.moreStats","More stats")}),s.jsxs("div",{className:"reliability-details-content",children:[s.jsx("div",{children:t("reliability.mergeAttempts.tasksCounted","Tasks counted: {{count}}",{count:N})}),s.jsx("div",{children:t("reliability.mergeAttempts.histogramTotal","Histogram total: {{count}}",{count:N})}),r?.mergeAttempts.reason?s.jsx("div",{children:t("reliability.mergeAttempts.reason","Reason: {{reason}}",{reason:r.mergeAttempts.reason})}):null]})]})]})]}),u?s.jsx("div",{className:"modal-overlay open",role:"presentation",children:s.jsxs("div",{className:"modal",role:"dialog","aria-modal":"true","aria-labelledby":"reliability-reset-title",children:[s.jsx("div",{className:"modal-header",children:s.jsx("h2",{id:"reliability-reset-title",children:t("reliability.resetModal.title","Reset reliability stats?")})}),s.jsx("p",{children:t("reliability.resetModal.description","This sets a new baseline for reliability statistics. Historical events older than the reset time are excluded from counts but are not deleted.")}),h?s.jsx("div",{className:"form-error",children:h}):null,s.jsxs("div",{className:"modal-actions",children:[s.jsx("button",{className:"btn",onClick:()=>m(!1),children:t("common.cancel","Cancel")}),s.jsx("button",{className:"btn btn-danger",onClick:()=>{b().catch(T=>{v(T instanceof Error?T.message:t("reliability.resetModal.failedError","Failed to reset reliability stats"))})},children:t("reliability.resetModal.confirm","Confirm reset")})]})]})}):null]})}function Zo(e){const{lastSyncAt:t,remoteReachable:r,diff:n}=e,a=Object.values(n.workflowSettings).reduce((o,l)=>o+l.length,0),i=n.global.length+n.project.length+a;return t===null?{syncState:"never-synced",lastSyncAt:t,diffCount:0}:r?i>0?{syncState:"diff",lastSyncAt:t,diffCount:i}:{syncState:"synced",lastSyncAt:t,diffCount:0}:{syncState:"error",lastSyncAt:t,diffCount:i}}function Gl(e){if(e===null)return"Never synced";const t=new Date(e);if(Number.isNaN(t.getTime()))return"Never synced";const n=Date.now()-t.getTime(),a=Math.floor(n/1e3),i=Math.floor(a/60),o=Math.floor(i/60),l=Math.floor(o/24);return i<1?"Synced just now":i<60?`Synced ${i}m ago`:o<24?`Synced ${o}h ago`:`Synced ${l}d ago`}function eF(e){switch(e){case"synced":return"var(--color-success)";case"pending":return"var(--color-warning)";case"diff":return"var(--color-warning)";case"error":return"var(--color-error)";case"never-synced":return"var(--text-muted)"}}const tF=3e4;function rF(){const{t:e}=se("app"),[t,r]=f.useState({}),[n,a]=f.useState(!1),[i,o]=f.useState({}),[l,c]=f.useState(null),d=f.useRef(new Set),u=f.useRef(!1),m=f.useRef(null),[h,v]=f.useState(!0),p=f.useCallback(async(S,N)=>{try{const E=await Kj(S);r(T=>({...T,[S]:E})),c(null)}catch(E){if(E?.status===409){d.current.delete(S);return}console.error(`Failed to fetch sync status for node ${S}:`,E),c(E instanceof Error?E.message:e("nodeSync.error.failedToFetchStatus","Failed to fetch sync status"))}},[e]),b=f.useCallback(async()=>{const S=Array.from(d.current);if(S.length===0)return;m.current&&m.current.abort(),m.current=new AbortController;const N=!u.current;N&&a(!0),c(null);try{const E=await Promise.allSettled(S.map(O=>p(O,N)));u.current=!0,E.filter(O=>O.status==="rejected").length>0&&c(e("nodeSync.error.someRequestsFailed","Some sync status requests failed"))}catch(E){if(E instanceof Error&&E.name==="AbortError")return;c(E instanceof Error?E.message:e("nodeSync.error.failedToFetchStatus","Failed to fetch sync status")),u.current=!0}finally{a(!1)}},[p,e]),y=f.useCallback(()=>{v(!1)},[]);f.useEffect(()=>(b(),()=>{m.current&&m.current.abort()}),[b]),vn(b,tF,{enabled:h});const g=f.useCallback(S=>{d.current.has(S)||(d.current.add(S),p(S,!u.current))},[p]),j=f.useCallback(S=>{d.current.delete(S),r(N=>{const E={...N};return delete E[S],E}),d.current.size===0&&y()},[y]),x=f.useCallback(async S=>{o(N=>({...N,[S]:!0})),c(null);try{const N=await Vj(S);return p(S,!1),!N.success&&N.error&&c(N.error),N}catch(N){const E=N instanceof Error?N.message:e("nodeSync.error.pushFailed","Push settings failed");throw c(E),N}finally{o(N=>{const E={...N};return delete E[S],E})}},[p,e]),C=f.useCallback(async S=>{o(N=>({...N,[S]:!0})),c(null);try{const N=await Uj(S);return p(S,!1),!N.success&&N.error&&c(N.error),N}catch(N){const E=N instanceof Error?N.message:e("nodeSync.error.pullFailed","Pull settings failed");throw c(E),N}finally{o(N=>{const E={...N};return delete E[S],E})}},[p,e]),w=f.useCallback(async S=>{o(N=>({...N,[S]:!0})),c(null);try{return await qj(S)}catch(N){const E=N instanceof Error?N.message:e("nodeSync.error.authSyncFailed","Auth sync failed");throw c(E),N}finally{o(N=>{const E={...N};return delete E[S],E})}},[e]),P=f.useCallback(S=>t[S]?.authMatch,[t]),A=f.useCallback(S=>t[S]?.authDiff,[t]);return{syncStatusMap:t,loading:n,actionLoading:i,error:l,refresh:b,trackNode:g,untrackNode:j,pushSettings:x,pullSettings:C,syncAuth:w,getAuthSyncState:P,getAuthProviders:A}}const nF=1e4,aF=1e3;function iF(){const{t:e}=se("app"),[t,r]=f.useState([]),[n,a]=f.useState(!0),[i,o]=f.useState(null),l=f.useRef(0),c=f.useRef(t),d=rc();f.useEffect(()=>{c.current=t},[t]);const u=f.useCallback(h=>c.current.length>0&&nc(h,d.wasRecentlyHidden()),[d]),m=f.useCallback(async()=>{try{o(null);const h=await zu();r(h.nodes)}catch(h){const v=h instanceof Error?h.message:e("mesh.failedToFetchMeshState","Failed to fetch mesh state");u(v)||o(v)}},[u,e]);return f.useEffect(()=>{let h=!1;async function v(){a(!0);try{const b=await zu();h||(r(b.nodes),o(null))}catch(b){const y=b instanceof Error?b.message:e("mesh.failedToFetchMeshState","Failed to fetch mesh state");!h&&!u(y)&&o(y)}finally{h||a(!1)}}v();const p=()=>{if(document.visibilityState!=="visible")return;const b=Date.now(),y=b-l.current;if(y<aF){Wa({view:"useMeshState",trigger:"visibility",projectId:void 0,replayAttempted:!1,reason:"debounce-skipped",detail:{timeSinceLastRefreshMs:y}});return}l.current=b,Wa({view:"useMeshState",trigger:"visibility",projectId:void 0,replayAttempted:!1,reason:"debounced-refresh"}),m()};return document.addEventListener("visibilitychange",p),()=>{h=!0,document.removeEventListener("visibilitychange",p)}},[m,u,e]),vn(m,nF,{enabled:!n,refreshOnVisible:!1}),{meshState:t,loading:n,error:i,refresh:m}}const sF=1e4,oF=1e3;function lF(){const{t:e}=se("app"),[t,r]=f.useState([]),[n,a]=f.useState(!0),[i,o]=f.useState(null),l=f.useRef(null),c=f.useRef(0),d=f.useRef(t),u=rc();f.useEffect(()=>{d.current=t},[t]);const m=f.useCallback(v=>d.current.length>0&&nc(v,u.wasRecentlyHidden()),[u]),h=f.useCallback(async()=>{try{o(null);const v=await Ku();r(v.engines)}catch(v){const p=v instanceof Error?v.message:e("mesh.failedToFetchEngines","Failed to fetch engine status");m(p)||o(p)}},[m,e]);return f.useEffect(()=>{let v=!1;async function p(){a(!0);try{const y=await Ku();v||(r(y.engines),o(null))}catch(y){const g=y instanceof Error?y.message:e("mesh.failedToFetchEngines","Failed to fetch engine status");!v&&!m(g)&&o(g)}finally{v||a(!1)}}p();const b=()=>{if(document.visibilityState!=="visible")return;const y=Date.now();y-c.current<oF||(c.current=y,h())};return document.addEventListener("visibilitychange",b),()=>{v=!0,document.removeEventListener("visibilitychange",b)}},[h,m,e]),f.useEffect(()=>{if(!n)return l.current=setInterval(()=>{h()},sF),()=>{l.current&&(clearInterval(l.current),l.current=null)}},[n,h]),{engines:t,loading:n,error:i,refresh:h}}function cF(e){return{online:{label:e("nodes.status.online","Online"),color:"var(--color-success)",className:"node-card__status--online"},offline:{label:e("nodes.status.offline","Offline"),color:"var(--color-error)",className:"node-card__status--offline"},connecting:{label:e("nodes.status.connecting","Connecting"),color:"var(--color-warning)",className:"node-card__status--connecting"},error:{label:e("nodes.status.error","Error"),color:"var(--color-error)",className:"node-card__status--error"},creating:{label:e("nodes.status.creating","Creating"),color:"var(--color-warning)",className:"node-card__status--creating"},recreating:{label:e("nodes.status.recreating","Recreating"),color:"var(--color-warning)",className:"node-card__status--recreating"},deleting:{label:e("nodes.status.deleting","Deleting"),color:"var(--color-error)",className:"node-card__status--deleting"},running:{label:e("nodes.status.running","Running"),color:"var(--color-success)",className:"node-card__status--online"},stopped:{label:e("nodes.status.stopped","Stopped"),color:"var(--color-error)",className:"node-card__status--offline"},exited:{label:e("nodes.status.exited","Exited"),color:"var(--color-error)",className:"node-card__status--offline"}}}const uF={match:"var(--color-success)",differs:"var(--color-warning)","not-synced":"var(--text-muted)"};function dF(e,t,r){if(e==="match")return r?r("nodes.auth.match","Auth credentials match"):"Auth credentials match";if(e==="not-synced")return r?r("nodes.auth.notSynced","Auth not synced"):"Auth not synced";if(t&&Object.keys(t).length>0){const n=Object.entries(t).filter(([,a])=>a==="differs").map(([a])=>a);if(n.length>0)return r?r("nodes.auth.differProviders","Auth credentials differ: {{providers}}",{providers:n.join(", ")}):`Auth credentials differ: ${n.join(", ")}`}return r?r("nodes.auth.differ","Auth credentials differ"):"Auth credentials differ"}function fF(e,t=42){return e.length<=t?e:`${e.slice(0,t-3)}...`}function mF(e,t){const r=e.node,n=t.node;if(r.id!==n.id||r.name!==n.name||r.type!==n.type||r.url!==n.url||r.status!==n.status||r.maxConcurrent!==n.maxConcurrent||r.updatedAt!==n.updatedAt||e.isLoading!==t.isLoading)return!1;const a=e.managedDockerNode,i=t.managedDockerNode;if(!!a!=!!i||a&&i&&(a.id!==i.id||a.status!==i.status||a.imageTag!==i.imageTag||a.updatedAt!==i.updatedAt))return!1;const o=e.syncStatus,l=t.syncStatus;if(!(!o&&!l)){if(!o||!l)return!1;if(o.syncState!==l.syncState||o.lastSyncAt!==l.lastSyncAt||o.diffCount!==l.diffCount)return!1}if(e.authSyncState!==t.authSyncState)return!1;const c=e.authSyncProviders,d=t.authSyncProviders;if(c!==d){if(!c||!d)return!1;{const h=Object.keys(c),v=Object.keys(d);if(h.length!==v.length||h.some(p=>c[p]!==d[p]))return!1}}const u=tl(e.projects,r),m=tl(t.projects,n);return u===m}function vF({node:e,projects:t,onHealthCheck:r,onEdit:n,onRemove:a,isLoading:i=!1,syncStatus:o,authSyncState:l,authSyncProviders:c,managedDockerNode:d}){const{t:u}=se("app"),[m,h]=f.useState(!1),v=cF(u),p=v[e.status]??v.offline,b=d?v[d.status]??v.error:null,y=d?.hostConfig.type==="remote"?u("nodes.dockerHost.remote","Remote: {{host}}",{host:d.hostConfig.host??"unknown"}):u("nodes.dockerHost.local","Local Docker"),g=f.useMemo(()=>tl(t,e),[t,e]),j=f.useCallback(()=>{n(e)},[n,e]),x=f.useCallback(A=>{A.stopPropagation(),r(e.id)},[r,e.id]),C=f.useCallback(A=>{A.stopPropagation(),n(e)},[n,e]),w=f.useCallback(A=>{if(A.stopPropagation(),!m){h(!0);return}a(e.id),h(!1)},[m,a,e.id]),P=f.useCallback(A=>{(A.key==="Enter"||A.key===" ")&&(A.preventDefault(),n(e))},[n,e]);return s.jsxs("article",{className:`node-card ${i?"node-card--loading":""}`,"data-node-id":e.id,role:"button",tabIndex:0,onClick:j,onKeyDown:P,children:[s.jsx("header",{className:"node-card__header",children:s.jsxs("div",{className:"node-card__title-wrap",children:[s.jsx("div",{className:"node-card__icon",children:s.jsx(Mh,{size:18})}),s.jsxs("div",{children:[s.jsx("h3",{className:"node-card__name",title:e.name,children:e.name}),s.jsxs("div",{className:"node-card__meta-row",children:[s.jsx("span",{className:"node-card__type-badge",children:e.type==="local"?u("nodes.type.local","Local"):u("nodes.type.remote","Remote")}),d&&s.jsxs("span",{className:"node-card__docker-badge",title:u("nodes.dockerBadge","Managed Docker node"),children:[s.jsx(rl,{size:12,"aria-hidden":!0}),u("nodes.dockerLabel","Docker")]}),s.jsxs("span",{className:`node-card__status ${p.className}`,style:{color:p.color},"data-status":e.status,children:[s.jsx("span",{className:"node-card__status-indicator",style:{backgroundColor:p.color},"aria-hidden":!0}),p.label]}),d&&b&&s.jsxs("span",{className:`node-card__status ${b.className}`,style:{color:b.color},"data-status":d.status,children:[s.jsx("span",{className:"node-card__status-indicator",style:{backgroundColor:b.color},"aria-hidden":!0}),b.label]}),e.type==="remote"&&l&&s.jsx("span",{className:`node-card__auth-indicator node-card__auth-indicator--${l}`,title:dF(l,c,u),"aria-label":u("nodes.authSync.label","Auth sync: {{status}}",{status:l==="match"?u("nodes.authSync.match","credentials match"):l==="differs"?u("nodes.authSync.differ","credentials differ"):u("nodes.authSync.notSynced","not synced")}),style:{color:uF[l]},children:s.jsx(Ih,{size:14})})]})]})]})}),s.jsxs("div",{className:"node-card__body",children:[e.type==="remote"&&e.url&&s.jsx("div",{className:"node-card__url",title:e.url,children:fF(e.url)}),d&&s.jsxs("div",{className:"node-card__docker-meta",children:[s.jsxs("span",{title:`${d.imageName}:${d.imageTag}`,children:[d.imageName,":",d.imageTag]}),s.jsx("span",{title:y,children:y})]}),s.jsxs("div",{className:"node-card__metrics",children:[s.jsxs("div",{className:"node-card__metric",children:[s.jsx("span",{className:"node-card__metric-label",children:u("nodes.metrics.projects","Projects")}),s.jsx("span",{className:"node-card__metric-value",children:g})]}),s.jsxs("div",{className:"node-card__metric",children:[s.jsx("span",{className:"node-card__metric-label",children:u("nodes.metrics.concurrency","Concurrency")}),s.jsx("span",{className:"node-card__metric-value",children:e.maxConcurrent})]})]}),e.type==="remote"&&o&&s.jsxs("div",{className:"node-card__sync","data-sync-state":o.syncState,"data-testid":"node-card-sync",children:[s.jsx("span",{className:"node-card__sync-dot",style:{backgroundColor:eF(o.syncState)},"aria-hidden":!0}),s.jsx("span",{className:"node-card__sync-time",children:Gl(o.lastSyncAt)})]})]}),s.jsxs("footer",{className:"node-card__actions",children:[s.jsxs("button",{className:"btn btn-sm node-card__action",type:"button",onClick:x,disabled:i,"aria-label":u("nodes.actions.health.ariaLabel","Run node health check"),title:u("nodes.actions.health.title","Health Check"),children:[s.jsx(Dh,{size:14}),s.jsx("span",{children:u("nodes.actions.health.label","Health")})]}),s.jsxs("button",{className:"btn btn-sm node-card__action",type:"button",onClick:C,disabled:i,"aria-label":u("nodes.actions.edit.ariaLabel","Edit node"),title:u("nodes.actions.edit.title","Edit"),children:[s.jsx(La,{size:14}),s.jsx("span",{children:u("nodes.actions.edit.label","Edit")})]}),d&&s.jsxs(s.Fragment,{children:[s.jsxs("button",{className:"btn btn-sm node-card__action",type:"button",disabled:!0,"aria-label":u("nodes.actions.start.ariaLabel","Start node container"),title:u("nodes.actions.start.title","Available after FN-3113"),children:[s.jsx(Di,{size:14}),s.jsx("span",{children:u("nodes.actions.start.label","Start")})]}),s.jsxs("button",{className:"btn btn-sm node-card__action",type:"button",disabled:!0,"aria-label":u("nodes.actions.stop.ariaLabel","Stop node container"),title:u("nodes.actions.stop.title","Available after FN-3113"),children:[s.jsx(Rh,{size:14}),s.jsx("span",{children:u("nodes.actions.stop.label","Stop")})]}),s.jsxs("button",{className:"btn btn-sm node-card__action",type:"button",disabled:!0,"aria-label":u("nodes.actions.restart.ariaLabel","Restart node container"),title:u("nodes.actions.restart.title","Available after FN-3113"),children:[s.jsx(Wj,{size:14}),s.jsx("span",{children:u("nodes.actions.restart.label","Restart")})]})]}),s.jsxs("button",{className:`btn btn-sm node-card__action node-card__action--remove ${m?"btn-danger is-armed":""}`,type:"button",onClick:w,disabled:i,"aria-label":m?u("nodes.actions.remove.ariaLabelConfirm","Confirm remove node"):u("nodes.actions.remove.ariaLabel","Remove node"),title:m?u("nodes.actions.remove.titleConfirm","Confirm remove"):u("nodes.actions.remove.title","Remove"),children:[s.jsx(tn,{size:14}),s.jsx("span",{children:m?u("nodes.actions.remove.labelConfirm","Confirm"):u("nodes.actions.remove.label","Remove")})]})]})]})}const hF=f.memo(vF,mF),In={online:"var(--success, var(--color-success))",offline:"var(--text-dim)",connecting:"var(--color-warning)",error:"var(--color-error)"},Da=28,pF=12,yF=300,gF=120;function bF({nodes:e,engines:t,className:r}){const{t:n}=se("app"),a=f.useMemo(()=>e.find(v=>v.nodeType==="local")??e[0],[e]),i=f.useMemo(()=>e.filter(v=>v.nodeId!==a?.nodeId),[e,a?.nodeId]),o=f.useMemo(()=>(t??[]).reduce((v,p)=>v+(p.inFlightTasks??0),0),[t]),l=f.useMemo(()=>(t??[]).reduce((v,p)=>v+(p.activeAgents??0),0),[t]),c=f.useMemo(()=>yF+Math.max(0,i.length-4)*20,[i.length]),d=c/2,u=c/2,m=f.useMemo(()=>{const v=new Map;if(a&&v.set(a.nodeId,{x:d,y:u,node:a}),i.length>0){const p=Math.min(gF,c/2-Da-10),b=2*Math.PI/i.length,y=-Math.PI/2;i.forEach((g,j)=>{const x=y+j*b;v.set(g.nodeId,{node:g,x:d+p*Math.cos(x),y:u+p*Math.sin(x)})})}return v},[d,u,a,i,c]),h=f.useMemo(()=>{const v=new Set,p=[];for(const b of e){const y=m.get(b.nodeId);if(y)for(const g of b.knownPeers){const j=m.get(g.peerNodeId);if(!j)continue;const x=[b.nodeId,g.peerNodeId].sort().join("::");v.has(x)||(v.add(x),p.push({key:x,from:y,to:j}))}}return p},[m,e]);return e.length===0?s.jsx("div",{className:`mesh-topology mesh-topology--empty ${r??""}`,children:s.jsx("div",{className:"mesh-topology__empty-state",children:s.jsx("p",{children:n("mesh.noNodes","No nodes to display")})})}):s.jsxs("div",{className:`mesh-topology ${r??""}`,children:[s.jsxs("svg",{className:"mesh-topology__svg",viewBox:`0 0 ${c} ${c}`,preserveAspectRatio:"xMidYMid meet","aria-label":n("mesh.ariaLabel","Node mesh topology visualization"),children:[h.map(v=>s.jsx("line",{className:"mesh-topology__link mesh-topology__peer-line",x1:v.from.x,y1:v.from.y,x2:v.to.x,y2:v.to.y},v.key)),Array.from(m.values()).map(({node:v,x:p,y:b})=>s.jsxs("g",{className:"mesh-topology__node",transform:`translate(${p}, ${b})`,children:[s.jsx("circle",{className:"mesh-topology__node-circle",r:Da,fill:In[v.status],"aria-label":`${v.nodeName} (${v.status})`}),s.jsx("text",{className:"mesh-topology__node-label",y:Da+pF,textAnchor:"middle",children:v.nodeName.length>12?`${v.nodeName.slice(0,10)}…`:v.nodeName}),s.jsxs("g",{className:"mesh-topology__node-type",transform:`translate(0 ${-Da-10})`,children:[s.jsx("circle",{className:"mesh-topology__node-type-badge",r:"8"}),s.jsx("text",{className:"mesh-topology__node-type-text",textAnchor:"middle",dominantBaseline:"middle",children:v.nodeType==="local"?"L":"R"})]})]},v.nodeId))]}),(t??[]).length>0&&s.jsxs("div",{className:"mesh-topology__engines","aria-label":n("mesh.enginesAriaLabel","Active engine connections"),children:[s.jsxs("div",{className:"mesh-topology__engines-summary",children:[s.jsx("span",{className:"mesh-topology__engines-count",children:n("mesh.enginesConnected",{count:(t??[]).length,defaultValue:"{{count}} engine(s) connected to shared PG"})}),s.jsx("span",{className:"mesh-topology__engines-metric",children:n("mesh.inFlightTasks",{count:o,defaultValue:"{{count}} in-flight"})}),s.jsx("span",{className:"mesh-topology__engines-metric",children:n("mesh.activeAgents",{count:l,defaultValue:"{{count}} agents"})})]}),s.jsx("ul",{className:"mesh-topology__engines-list",children:(t??[]).map(v=>s.jsxs("li",{className:"mesh-topology__engine-item",children:[s.jsx("span",{className:"mesh-topology__engine-name",children:v.projectName??v.projectId}),s.jsx("span",{className:"mesh-topology__engine-status","data-runtime-status":v.runtimeStatus,children:v.runtimeStatus}),s.jsxs("span",{className:"mesh-topology__engine-tasks",children:[v.inFlightTasks," tasks"]})]},v.projectId))})]}),s.jsxs("div",{className:"mesh-topology__legend",children:[s.jsxs("div",{className:"mesh-topology__legend-item",children:[s.jsx("span",{className:"mesh-topology__legend-dot",style:{background:In.online}}),s.jsx("span",{children:n("mesh.online","Online")})]}),s.jsxs("div",{className:"mesh-topology__legend-item",children:[s.jsx("span",{className:"mesh-topology__legend-dot",style:{background:In.offline}}),s.jsx("span",{children:n("mesh.offline","Offline")})]}),s.jsxs("div",{className:"mesh-topology__legend-item",children:[s.jsx("span",{className:"mesh-topology__legend-dot",style:{background:In.connecting}}),s.jsx("span",{children:n("mesh.connecting","Connecting")})]}),s.jsxs("div",{className:"mesh-topology__legend-item",children:[s.jsx("span",{className:"mesh-topology__legend-dot",style:{background:In.error}}),s.jsx("span",{children:n("mesh.error","Error")})]})]}),h.length===0&&s.jsx("p",{className:"mesh-topology__notice",children:n("mesh.noPeers","Peer-to-peer discovery data unavailable.")})]})}const xF=f.memo(bF),Xl=1,Yl=10;function jF(e,t){const r={projectMappings:{}};e.name.trim()||(r.name=t("nodes.nameRequired","Name is required")),e.type==="remote"&&!e.url?.trim()&&(r.url=t("nodes.urlRequired","URL is required for remote nodes")),(!Number.isFinite(e.maxConcurrent)||e.maxConcurrent<Xl||e.maxConcurrent>Yl)&&(r.maxConcurrent=t("nodes.concurrencyRange","Concurrency must be between {{min}} and {{max}}",{min:Xl,max:Yl}));for(const n of e.projectMappings){const a=aw(n.path);a.valid||(r.projectMappings[n.projectId]=a.error??t("nodes.pathInvalid","Path is invalid"))}return r}function wF({isOpen:e,onClose:t,onSubmit:r,onDiscoverRemoteProjects:n,addToast:a,projects:i}){const{t:o}=se("app");Hj(e);const[l,c]=f.useState(""),[d,u]=f.useState("local"),[m,h]=f.useState(""),[v,p]=f.useState(""),[b,y]=f.useState(2),[g,j]=f.useState("auto-generate"),[x,C]=f.useState({}),[w,P]=f.useState({projectMappings:{}}),[A,S]=f.useState(!1),[N,E]=f.useState("idle"),[T,O]=f.useState(null),[I,z]=f.useState([]),D=f.useCallback(()=>{c(""),u("local"),h(""),p(""),y(2),j("auto-generate"),C({}),P({projectMappings:{}}),S(!1),E("idle"),O(null),z([])},[]),V=f.useCallback(()=>{A||(D(),t())},[A,t,D]);f.useEffect(()=>{if(!e){D();return}const M=q=>{q.key==="Escape"&&(q.preventDefault(),V())};return document.addEventListener("keydown",M),()=>{document.removeEventListener("keydown",M)}},[V,e,D]);const B=f.useMemo(()=>({name:l.trim(),type:d,url:d==="remote"&&m.trim()||void 0,apiKey:d==="remote"&&g==="provide"&&v||void 0,maxConcurrent:b,apiKeyMode:g,projectMappings:Object.entries(x).map(([M,q])=>({projectId:M,path:q.trim()}))}),[v,g,b,l,x,d,m]),W=f.useCallback(async()=>{if(A||N==="loading")return;const M=m.trim();if(!M){P(q=>({...q,url:o("nodes.urlRequired","URL is required for remote nodes")}));return}E("loading"),O(null);try{const q=await n({url:M,apiKey:g==="provide"&&v.trim().length>0?v:void 0});z(q.projects),E("success"),C(H=>{if(Object.keys(H).length===0)return H;const re={...H};for(const ae of i){if(!(ae.id in re))continue;const ye=q.projects.filter(oe=>oe.name===ae.name);ye.length===1&&(re[ae.id]=ye[0].path)}return re})}catch(q){E("error"),z([]),O(q instanceof Error?q.message:o("nodes.discoveryFailed","Failed to discover remote projects"))}},[v,g,N,A,n,i,o,m]);f.useEffect(()=>{if(d!=="remote"){E("idle"),O(null),z([]);return}E("idle"),O(null),z([])},[v,g,d,m]);const K=f.useCallback(async()=>{if(A)return;const M=jF(B,o);if(P(M),!(M.name||M.url||M.maxConcurrent||Object.keys(M.projectMappings).length>0)){if(B.type==="remote"&&N!=="success"){O(o("nodes.discoverBeforeAdding","Discover remote projects before adding this node."));return}S(!0);try{await r(B),a(o("nodes.registered",'Node "{{name}}" registered',{name:B.name}),"success"),V()}catch(q){const H=q instanceof Error?q.message:o("nodes.registerFailed","Failed to register node");a(H,"error")}finally{S(!1)}}},[a,V,N,B,A,r,o]),te=M=>{C(q=>{if(M.id in q){const{[M.id]:H,...re}=q;return re}if(d==="remote"&&N==="success"){const H=I.filter(re=>re.name===M.name);return H.length===1?{...q,[M.id]:H[0].path}:{...q,[M.id]:""}}return{...q,[M.id]:M.path}})},G=(M,q)=>{C(H=>({...H,[M]:q}))};return e?s.jsx(ac,{windowKey:"add-node",title:o("nodes.addNode","Add Node"),ariaLabel:o("nodes.addNode","Add Node"),onClose:V,hideHeader:!0,dragHandleSelector:".modal-header",className:"floating-window--add-node",defaultSize:{width:720,height:560},minSize:{width:360,height:280},persistGeometryKey:"floating-window:add-node",suspendGeometryPersistenceOnMobile:!0,suspendGeometryPersistenceOnShortViewport:!0,closeOnOutsidePointerDown:!0,children:s.jsxs("div",{className:"modal modal-md add-node-modal",children:[s.jsxs("div",{className:"modal-header",children:[s.jsx("h3",{children:o("nodes.addNode","Add Node")}),s.jsx("button",{className:"modal-close",onClick:V,disabled:A,"aria-label":o("nodes.closeNodeModal","Close add node modal"),children:"×"})]}),s.jsxs("div",{className:"modal-body add-node-modal__body",children:[s.jsx("p",{className:"add-node-modal__description",children:o("nodes.description","Register an existing Fusion node by providing its connection details and concurrency settings.")}),s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.name","Name")}),s.jsx("input",{className:"input",type:"text",value:l,onChange:M=>c(M.target.value),placeholder:o("nodes.namePlaceholder","Build Machine"),disabled:A,"aria-invalid":!!w.name,autoFocus:!0}),w.name&&s.jsx("span",{className:"form-error add-node-modal__error",children:w.name})]}),s.jsxs("div",{className:"add-node-modal__type-toggle",children:[s.jsx("button",{type:"button",className:`add-node-modal__type-btn ${d==="local"?"active":""}`,"data-type":"local",onClick:()=>u("local"),disabled:A,"aria-pressed":d==="local",children:o("nodes.local","Local")}),s.jsx("button",{type:"button",className:`add-node-modal__type-btn ${d==="remote"?"active":""}`,"data-type":"remote",onClick:()=>u("remote"),disabled:A,"aria-pressed":d==="remote",children:o("nodes.remote","Remote")})]}),d==="remote"&&s.jsxs("div",{className:"add-node-modal__remote-fields","data-testid":"remote-fields-container","data-visible":!0,children:[s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.reachableUrl","Reachable URL / Hostname")}),s.jsx("input",{className:"input",type:"text",value:m,onChange:M=>h(M.target.value),placeholder:"https://node.example.com",disabled:A,"aria-invalid":!!w.url}),w.url&&s.jsx("span",{className:"form-error add-node-modal__error",children:w.url})]}),s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.apiKeyMode","API Key Mode")}),s.jsxs("select",{className:"select",value:g,onChange:M=>j(M.target.value),disabled:A,children:[s.jsx("option",{value:"auto-generate",children:o("nodes.autoGenerate","Auto-generate")}),s.jsx("option",{value:"provide",children:o("nodes.provideManually","Provide key manually")})]})]}),g==="provide"&&s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.apiKey","API Key")}),s.jsx("input",{className:"input",type:"password",value:v,onChange:M=>p(M.target.value),placeholder:o("nodes.apiKeyPlaceholder","Enter node API key"),disabled:A})]}),s.jsxs("div",{className:"add-node-modal__discovery-actions",children:[s.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>void W(),disabled:A||N==="loading",children:N==="loading"?o("nodes.discovering","Discovering..."):o("nodes.discoverRemoteProjects","Discover Remote Projects")}),N==="success"&&s.jsx("span",{className:"add-node-modal__discovery-state","data-state":"success",children:I.length>0?o("nodes.discoveredCount","Discovered {{count}} remote project{{plural}}",{count:I.length,plural:I.length===1?"":"s"}):o("nodes.noProjectsDiscovered","No projects discovered on remote node.")}),N==="error"&&T&&s.jsx("span",{className:"form-error add-node-modal__error",children:T}),N==="idle"&&s.jsx("span",{className:"add-node-modal__hint",children:o("nodes.discoverBeforeAdding","Discover remote projects before adding this node.")})]}),N==="success"&&I.length>0&&s.jsx("div",{className:"add-node-modal__discovered-list","aria-label":o("nodes.discoveredRemoteProjectsLabel","Discovered remote projects"),children:I.map(M=>s.jsxs("div",{className:"card add-node-modal__discovered-card",children:[s.jsxs("div",{className:"add-node-modal__discovered-row",children:[s.jsx("strong",{children:M.name}),s.jsx("span",{className:"card-status-badge card-status-badge--in-review",children:M.status})]}),s.jsx("div",{className:"add-node-modal__hint",children:M.path})]},`${M.id}-${M.path}`))})]}),s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.maxConcurrent","Max Concurrent")}),s.jsx("input",{className:"input",type:"number",min:Xl,max:Yl,value:b,onChange:M=>y(Number(M.target.value)),disabled:A,"aria-invalid":!!w.maxConcurrent}),s.jsx("span",{className:"add-node-modal__hint",children:o("nodes.maxConcurrentHint","Max simultaneous task agents (1–10)")}),w.maxConcurrent&&s.jsx("span",{className:"form-error add-node-modal__error",children:w.maxConcurrent})]}),s.jsxs("section",{className:"add-node-modal__projects","aria-label":o("nodes.projectPathMappingsLabel","Project path mappings"),children:[s.jsx("h4",{className:"add-node-modal__projects-title",children:o("nodes.attachProjects","Attach Existing Projects")}),s.jsx("p",{className:"add-node-modal__hint",children:o("nodes.attachProjectsHint","Select existing projects to run on this node and provide the node-specific absolute path for each one.")}),i.length===0?s.jsx("p",{className:"add-node-modal__hint",children:o("nodes.noProjects","No projects are currently registered.")}):s.jsx("div",{className:"add-node-modal__project-list",children:i.map(M=>{const q=M.id in x,H=w.projectMappings[M.id];return s.jsxs("div",{className:"card add-node-modal__project-card",children:[s.jsxs("label",{className:"checkbox-label add-node-modal__project-toggle",children:[s.jsx("input",{type:"checkbox",checked:q,onChange:()=>te(M),disabled:A}),s.jsx("span",{children:M.name})]}),q&&s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.pathOnNode","Path on this node")}),d==="remote"&&N==="success"&&s.jsx("span",{className:"add-node-modal__hint",children:(()=>{const re=I.filter(ae=>ae.name===M.name);return re.length===1?o("nodes.pathDiscovered","Remote-authoritative path discovered: {{path}}",{path:re[0].path}):re.length>1?o("nodes.multipleMatches","Multiple remote projects matched this name. Enter the correct path manually."):o("nodes.noMatch","No exact remote name match. Enter this path manually.")})()}),s.jsx("input",{className:"input",type:"text",value:x[M.id]??"",onChange:re=>G(M.id,re.target.value),disabled:A,placeholder:"/absolute/path/to/project","aria-invalid":!!H}),H&&s.jsx("span",{className:"form-error add-node-modal__error",children:H})]})]},M.id)})})]})]}),s.jsxs("div",{className:"modal-actions",children:[s.jsx("button",{className:"btn btn-sm",onClick:V,disabled:A,children:o("common.cancel","Cancel")}),s.jsx("button",{className:"btn btn-primary btn-sm","data-testid":"add-node-submit",onClick:K,disabled:A,children:A?o("nodes.adding","Adding..."):o("nodes.addNode","Add Node")})]})]})}):null}function CF(){const[e,t]=f.useState([]),[r,n]=f.useState(!1),[a,i]=f.useState(null),[o,l]=f.useState(!1),[c,d]=f.useState(null),[u,m]=f.useState(!1),h=f.useCallback(async()=>{n(!0),i(null);try{const b=await fetch("/api/docker/contexts");if(!b.ok)throw new Error(`Failed to load Docker contexts (${b.status})`);const y=await b.json();return t(y),y}catch(b){const y=b instanceof Error?b.message:String(b);throw i(y),b}finally{n(!1)}},[]),v=f.useCallback(async b=>{l(!0);try{const y=await fetch("/api/docker/test-connection",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({hostConfig:b})});if(!y.ok)throw new Error(`Failed to test Docker connection (${y.status})`);const g=await y.json();return d(g),g}finally{l(!1)}},[]),p=f.useCallback(async()=>{m(!0);try{const b=await fetch("/api/docker/local-available");if(!b.ok)throw new Error(`Failed to check local Docker availability (${b.status})`);return await b.json()}finally{m(!1)}},[]);return{contexts:e,isLoadingContexts:r,contextsError:a,loadContexts:h,isTestingConnection:o,lastTestResult:c,testConnection:v,isCheckingLocal:u,checkLocalDocker:p}}function kF({value:e,onChange:t}){const{t:r}=se("app"),[n,a]=f.useState(!!(e?.tlsCaPath||e?.tlsCertPath||e?.tlsKeyPath||e?.tlsVerify));f.useEffect(()=>{n||t({tlsVerify:void 0,tlsCaPath:void 0,tlsCertPath:void 0,tlsKeyPath:void 0})},[n,t]);const i=f.useMemo(()=>({tlsVerify:e?.tlsVerify??!0,tlsCaPath:e?.tlsCaPath??"",tlsCertPath:e?.tlsCertPath??"",tlsKeyPath:e?.tlsKeyPath??""}),[e]);return s.jsxs("div",{className:"docker-tls-config",children:[s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"checkbox",checked:n,onChange:o=>a(o.target.checked)}),r("docker.useTls","Use TLS")]}),n&&s.jsxs("div",{className:"docker-tls-config__fields",children:[s.jsxs("div",{className:"docker-tls-config__field",children:[s.jsx("label",{htmlFor:"docker-tls-ca-path",children:r("docker.caPath","CA Certificate Path")}),s.jsx("input",{id:"docker-tls-ca-path",className:"input",value:i.tlsCaPath,onChange:o=>t({...i,tlsCaPath:o.target.value}),placeholder:"/etc/docker/ca.pem"})]}),s.jsxs("div",{className:"docker-tls-config__field",children:[s.jsx("label",{htmlFor:"docker-tls-cert-path",children:r("docker.certPath","Client Certificate Path")}),s.jsx("input",{id:"docker-tls-cert-path",className:"input",value:i.tlsCertPath,onChange:o=>t({...i,tlsCertPath:o.target.value}),placeholder:"/etc/docker/cert.pem"})]}),s.jsxs("div",{className:"docker-tls-config__field",children:[s.jsx("label",{htmlFor:"docker-tls-key-path",children:r("docker.keyPath","Client Key Path")}),s.jsx("input",{id:"docker-tls-key-path",className:"input",value:i.tlsKeyPath,onChange:o=>t({...i,tlsKeyPath:o.target.value}),placeholder:"/etc/docker/key.pem"})]}),s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"checkbox",checked:i.tlsVerify,onChange:o=>t({...i,tlsVerify:o.target.checked})}),r("docker.verifyTls","Verify TLS Certificate")]})]})]})}function SF({value:e,onChange:t,onError:r}){const{t:n}=se("app"),a=e?.context?"context":e?.host?"host":"local",[i,o]=f.useState(a),[l,c]=f.useState(e?.context??""),[d,u]=f.useState(e?.host??""),[m,h]=f.useState(null),{contexts:v,isLoadingContexts:p,contextsError:b,loadContexts:y,testConnection:g,isTestingConnection:j,lastTestResult:x,checkLocalDocker:C,isCheckingLocal:w}=CF(),P=f.useMemo(()=>({tlsVerify:e?.tlsVerify,tlsCaPath:e?.tlsCaPath,tlsCertPath:e?.tlsCertPath,tlsKeyPath:e?.tlsKeyPath}),[e]);f.useEffect(()=>{if(i==="local"){t({});return}if(i==="context"){y().catch(S=>r?.(S instanceof Error?S.message:String(S))),t(l?{context:l}:{});return}t({host:d,...P})},[i]);const A=f.useCallback(S=>{i==="host"&&t({host:d,...S})},[d,i,t]);return s.jsxs("div",{className:"docker-target-selector",children:[s.jsxs("div",{className:"docker-target-selector__modes",role:"group","aria-label":n("docker.targetMode","Docker target mode"),children:[s.jsx("button",{type:"button",className:`btn btn-sm ${i==="local"?"docker-target-selector__mode-active":""}`,onClick:()=>{o("local"),C().then(S=>{if(S.available){const N=S.version?` (${S.version})`:"";h(n("docker.available","Docker is available{{version}}",{version:N}))}else{const N=S.error?`: ${S.error}`:"";h(n("docker.notFound","Docker not found{{error}}",{error:N}))}}).catch(S=>{const N=S instanceof Error?S.message:String(S);h(n("docker.notFoundError","Docker not found: {{message}}",{message:N})),r?.(N)})},children:n("docker.local","Local Docker")}),s.jsx("button",{type:"button",className:`btn btn-sm ${i==="context"?"docker-target-selector__mode-active":""}`,onClick:()=>o("context"),children:n("docker.context","Docker Context")}),s.jsx("button",{type:"button",className:`btn btn-sm ${i==="host"?"docker-target-selector__mode-active":""}`,onClick:()=>o("host"),children:n("docker.remote","Remote Host")})]}),i==="local"&&m&&s.jsx("div",{className:"docker-target-selector__status",children:m}),i==="context"&&s.jsxs("div",{className:"docker-target-selector__panel",children:[s.jsxs("div",{className:"docker-target-selector__context-row",children:[s.jsxs("select",{className:"select",value:l,onChange:S=>{const N=S.target.value;c(N),t(N?{context:N}:{})},children:[s.jsx("option",{value:"",children:n("docker.selectContext","Select context")}),v.map(S=>s.jsxs("option",{value:S.name,children:[S.name,S.isCurrentContext?" (current)":"",S.dockerHost?` — ${S.dockerHost}`:""]},S.name))]}),s.jsx("button",{type:"button",className:"btn btn-sm btn-icon",onClick:()=>void y(),disabled:p,"aria-label":n("docker.refreshContexts","Refresh contexts"),children:s.jsx(Gt,{size:14})})]}),b&&s.jsx("div",{className:"docker-target-selector__error",children:b})]}),i==="host"&&s.jsxs("div",{className:"docker-target-selector__panel",children:[s.jsxs("div",{className:"docker-target-selector__field",children:[s.jsx("label",{htmlFor:"docker-target-selector-host",children:n("docker.host","Docker Host")}),s.jsx("input",{id:"docker-target-selector-host",className:"input",placeholder:n("docker.hostPlaceholder","tcp://host:2376"),value:d,onChange:S=>{const N=S.target.value;u(N),t({host:N,...P})}})]}),s.jsx(kF,{value:P,onChange:A})]}),s.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>void g(i==="local"?void 0:i==="context"?{context:l}:{host:d,...P}),disabled:j||w,children:j?n("docker.testing","Testing..."):n("docker.testConnection","Test Connection")}),x&&s.jsx("div",{className:x.success?"docker-target-selector__success":"docker-target-selector__error",children:x.success?n("docker.connected","Connected{{version}}",{version:x.dockerVersion?` (Docker ${x.dockerVersion})`:""}):x.error??n("docker.connectionFailed","Connection failed")})]})}const Jo="http://localhost:4040",Ch={readWrite:"rw",readOnly:"ro"};function NF({isOpen:e,onClose:t,onSubmit:r,addToast:n}){const{t:a}=se("app"),[i,o]=f.useState(""),[l,c]=f.useState({}),[d,u]=f.useState(Jo),[m,h]=f.useState("auto"),[v,p]=f.useState(""),[b,y]=f.useState(!1),[g,j]=f.useState(!1),[x,C]=f.useState(!0),[w,P]=f.useState(4096),[A,S]=f.useState(2),[N,E]=f.useState(!1),[T,O]=f.useState("runfusion/fusion"),[I,z]=f.useState("latest"),[D,V]=f.useState([]),[B,W]=f.useState([]),[K,te]=f.useState({}),[G,M]=f.useState(!1),q=f.useCallback(()=>{o(""),c({}),u(Jo),h("auto"),p(""),y(!1),j(!1),C(!0),P(4096),S(2),E(!1),O("runfusion/fusion"),z("latest"),V([]),W([]),te({}),M(!1)},[]),H=f.useCallback(()=>{G||(q(),t())},[t,q,G]);f.useEffect(()=>{if(!e){q();return}const L=Y=>{Y.key==="Escape"&&(Y.preventDefault(),H())};return document.addEventListener("keydown",L),()=>document.removeEventListener("keydown",L)},[H,e,q]);const re=f.useMemo(()=>({nodeId:null,name:i.trim(),imageName:T.trim()||"runfusion/fusion",imageTag:I.trim()||"latest",hostConfig:{context:l.context?.trim()||void 0,host:l.host?.trim()||void 0,tlsVerify:l.tlsVerify,tlsCaPath:l.tlsCaPath?.trim()||void 0,tlsCertPath:l.tlsCertPath?.trim()||void 0,tlsKeyPath:l.tlsKeyPath?.trim()||void 0},envVars:Object.fromEntries(D.map(L=>[L.key.trim(),L.value]).filter(([L])=>!!L)),volumeMounts:B.map(L=>({hostPath:L.hostPath.trim(),containerPath:L.containerPath.trim(),mode:L.mode})).filter(L=>L.hostPath&&L.containerPath),resourceSizing:{memoryMB:w,cpus:A},extraClis:[b?"claude-cli":null,g?"droid-cli":null].filter(Boolean),persistentStorage:x,reachableUrl:d.trim()||null,apiKey:m==="manual"&&v.trim()||null}),[v,m,A,l,D,T,I,b,g,w,B,i,x,d]),ae=f.useCallback(()=>{V(L=>[...L,{key:"",value:""}])},[]),ye=f.useCallback((L,Y)=>{V(ne=>ne.map((Ne,Q)=>Q===L?Y:Ne))},[]),oe=f.useCallback(L=>{V(Y=>Y.filter((ne,Ne)=>Ne!==L))},[]),He=f.useCallback(()=>{W(L=>[...L,{hostPath:"",containerPath:"",mode:"rw"}])},[]),J=f.useCallback((L,Y)=>{W(ne=>ne.map((Ne,Q)=>Q===L?Y:Ne))},[]),Ce=f.useCallback(L=>{W(Y=>Y.filter((ne,Ne)=>Ne!==L))},[]),Re=f.useCallback(async()=>{if(G)return;const L={};if((!re.name||re.name.length>64)&&(L.name=a("docker.errors.nameRequired","Name is required and must be 64 characters or fewer")),re.reachableUrl||(L.reachableUrl=a("docker.errors.urlRequired","URL is required")),w<512&&(L.memoryMB=a("docker.errors.memoryMinimum","Memory must be at least 512 MB")),A<.5&&(L.cpus=a("docker.errors.cpusMinimum","CPUs must be at least 0.5")),te(L),!(Object.keys(L).length>0)){M(!0);try{await r(re),H()}catch{}finally{M(!1)}}},[H,A,re,w,r,G,a]);return e?s.jsx(ac,{windowKey:"docker-node-onboarding",modal:!0,title:a("docker.titles.provisionNode","Provision Docker Node"),ariaLabel:a("docker.ariaLabels.modal","Docker node onboarding"),onClose:()=>{G||H()},hideHeader:!0,dragHandleSelector:".docker-onboarding .modal-header",className:"floating-window--docker-node-onboarding",defaultSize:{width:720,height:640},minSize:{width:420,height:320},persistGeometryKey:"floating-window:docker-node-onboarding",suspendGeometryPersistenceOnMobile:!0,suspendGeometryPersistenceOnShortViewport:!0,closeOnOutsidePointerDown:!0,children:s.jsxs("div",{className:"modal docker-onboarding",children:[s.jsxs("div",{className:"modal-header",children:[s.jsx("h3",{children:a("docker.titles.provisionNode","Provision Docker Node")}),s.jsx("button",{className:"modal-close",onClick:H,disabled:G,"aria-label":a("docker.ariaLabels.closeModal","Close onboarding modal"),children:"×"})]}),s.jsxs("div",{className:"modal-body docker-onboarding__body",children:[s.jsxs("section",{className:"docker-onboarding__section",children:[s.jsx("h4",{className:"docker-onboarding__section-title",children:a("docker.sections.requiredSettings","Required Settings")}),s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.nodeName","Node Name")}),s.jsx("input",{className:"input",value:i,onChange:L=>o(L.target.value),disabled:G,placeholder:a("docker.placeholders.nodeName","my-docker-node"),autoFocus:!0})]}),K.name&&s.jsx("div",{className:"form-error",children:K.name}),s.jsx(SF,{value:l,onChange:c}),s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.reachableUrl","Reachable URL")}),s.jsx("input",{className:"input",value:d,onChange:L=>u(L.target.value),disabled:G,placeholder:Jo})]}),K.reachableUrl&&s.jsx("div",{className:"form-error",children:K.reachableUrl}),s.jsxs("div",{className:"docker-onboarding__radio-group",children:[s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"radio",checked:m==="auto",onChange:()=>h("auto"),disabled:G}),a("docker.options.autoGenerate","Auto-generate")]}),s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"radio",checked:m==="manual",onChange:()=>h("manual"),disabled:G}),a("docker.options.provideManually","Provide manually")]})]}),m==="manual"&&s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.apiKey","API Key")}),s.jsx("input",{className:"input",type:"password",value:v,onChange:L=>p(L.target.value),disabled:G,placeholder:a("docker.placeholders.apiKey","Enter API key")})]}),s.jsxs("div",{className:"docker-onboarding__checkbox-group",children:[s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"checkbox",checked:b,onChange:L=>y(L.target.checked),disabled:G}),a("docker.options.claudeCli","Claude CLI")]}),s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"checkbox",checked:g,onChange:L=>j(L.target.checked),disabled:G}),a("docker.options.droidCli","Droid CLI")]}),s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"checkbox",checked:x,onChange:L=>C(L.target.checked),disabled:G}),a("docker.options.persistentStorage","Keep data across container recreations")]})]}),s.jsxs("div",{className:"docker-onboarding__inline-fields",children:[s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.memory","Memory (MB)")}),s.jsx("input",{className:"input",type:"number",min:512,value:w,onChange:L=>P(Number(L.target.value)),disabled:G})]}),s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.cpus","CPUs")}),s.jsx("input",{className:"input",type:"number",min:.5,step:.5,value:A,onChange:L=>S(Number(L.target.value)),disabled:G})]})]}),K.memoryMB&&s.jsx("div",{className:"form-error",children:K.memoryMB}),K.cpus&&s.jsx("div",{className:"form-error",children:K.cpus})]}),s.jsxs("section",{className:"docker-onboarding__section",children:[s.jsxs("button",{type:"button",className:`docker-onboarding__advanced-toggle ${N?"is-expanded":""}`,onClick:()=>E(L=>!L),disabled:G,children:[s.jsx("span",{children:a("docker.sections.advanced","Advanced")}),s.jsx(ic,{})]}),s.jsx("div",{className:`docker-onboarding__advanced-content ${N?"is-expanded":""}`,children:s.jsxs("div",{children:[s.jsxs("div",{className:"docker-onboarding__inline-fields",children:[s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.image","Image")}),s.jsx("input",{className:"input",value:T,onChange:L=>O(L.target.value),disabled:G,placeholder:a("docker.placeholders.image","runfusion/fusion")})]}),s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.tag","Tag")}),s.jsx("input",{className:"input",value:I,onChange:L=>z(L.target.value),disabled:G,placeholder:a("docker.placeholders.tag","latest")})]})]}),s.jsxs("div",{className:"docker-onboarding__kv-list",children:[s.jsx("h5",{children:a("docker.sections.environmentVariables","Environment Variables")}),D.map((L,Y)=>s.jsxs("div",{className:"docker-onboarding__kv-row docker-onboarding__kv-row--env",children:[s.jsx("input",{className:"input",placeholder:a("docker.placeholders.envVarKey","KEY"),value:L.key,disabled:G,onChange:ne=>ye(Y,{key:ne.target.value,value:L.value})}),s.jsx("input",{className:"input",placeholder:a("docker.placeholders.envVarValue","Value"),value:L.value,disabled:G,onChange:ne=>ye(Y,{key:L.key,value:ne.target.value})}),s.jsx("button",{type:"button",className:"btn btn-icon","aria-label":a("docker.ariaLabels.removeVariable","Remove environment variable"),onClick:()=>oe(Y),disabled:G,children:s.jsx(tn,{size:14})})]},`env-${Y}`)),s.jsxs("button",{type:"button",className:"btn btn-sm docker-onboarding__kv-add",onClick:ae,disabled:G,children:[s.jsx(zn,{size:14}),a("docker.actions.addVariable","Add variable")]})]}),s.jsxs("div",{className:"docker-onboarding__kv-list",children:[s.jsx("h5",{children:a("docker.sections.volumeMounts","Volume Mounts")}),B.map((L,Y)=>s.jsxs("div",{className:"docker-onboarding__kv-row docker-onboarding__kv-row--mount",children:[s.jsx("input",{className:"input",placeholder:a("docker.placeholders.hostPath","Host path"),value:L.hostPath,disabled:G,onChange:ne=>J(Y,{hostPath:ne.target.value,containerPath:L.containerPath,mode:L.mode})}),s.jsx("input",{className:"input",placeholder:a("docker.placeholders.containerPath","Container path"),value:L.containerPath,disabled:G,onChange:ne=>J(Y,{hostPath:L.hostPath,containerPath:ne.target.value,mode:L.mode})}),s.jsxs("select",{className:"select",value:L.mode,disabled:G,onChange:ne=>J(Y,{hostPath:L.hostPath,containerPath:L.containerPath,mode:ne.target.value==="ro"?"ro":"rw"}),children:[s.jsx("option",{value:"rw",children:Ch.readWrite}),s.jsx("option",{value:"ro",children:Ch.readOnly})]}),s.jsx("button",{type:"button",className:"btn btn-icon","aria-label":a("docker.ariaLabels.removeMount","Remove volume mount"),onClick:()=>Ce(Y),disabled:G,children:s.jsx(tn,{size:14})})]},`mount-${Y}`)),s.jsxs("button",{type:"button",className:"btn btn-sm docker-onboarding__kv-add",onClick:He,disabled:G,children:[s.jsx(zn,{size:14}),a("docker.actions.addMount","Add mount")]})]})]})})]})]}),s.jsxs("div",{className:"modal-actions",children:[s.jsx("button",{className:"btn",onClick:H,disabled:G,children:a("docker.actions.cancel","Cancel")}),s.jsx("button",{className:"btn btn-primary",onClick:()=>void Re(),disabled:G,children:G?a("docker.states.creating","Creating..."):a("docker.actions.createNode","Create Docker Node")})]})]})}):null}function PF({nodeId:e,entries:t,loading:r=!1,singleNode:n=!1}){const{t:a}=se("app"),[i,o]=f.useState(!1),[l,c]=f.useState("all"),[d,u]=f.useState("all"),m=f.useCallback(()=>{o(g=>!g)},[]),h=f.useMemo(()=>{const g=new Set;for(const j of t)g.add(j.nodeName);return Array.from(g).sort()},[t]),v=f.useMemo(()=>{let g=[...t];return l!=="all"&&(g=g.filter(j=>j.direction===l)),!n&&d!=="all"&&(g=g.filter(j=>j.nodeName===d)),g.sort((j,x)=>{const C=new Date(j.timestamp).getTime();return new Date(x.timestamp).getTime()-C}),g},[t,l,d,n]),p=f.useCallback(g=>new Date(g).toLocaleString(),[]),b=f.useCallback(g=>{switch(g){case"success":return"settings-sync-log__badge--success";case"conflict":return"settings-sync-log__badge--conflict";case"error":return"settings-sync-log__badge--error";default:return""}},[]),y=f.useCallback(g=>{switch(g){case"success":return a("syncLog.resultSuccess","Success");case"conflict":return a("syncLog.resultConflict","Conflict");case"error":return a("syncLog.resultError","Error");default:return g}},[a]);return s.jsxs("div",{className:"settings-sync-log",children:[s.jsxs("button",{className:"settings-sync-log__header",type:"button",onClick:m,"aria-expanded":i,"data-testid":"settings-sync-log-header",children:[s.jsx(ic,{size:16,className:`settings-sync-log__chevron ${i?"settings-sync-log__chevron--expanded":""}`}),s.jsx("span",{children:a("syncLog.entryCount",{count:t.length,defaultValue_one:"{{count}} entry",defaultValue_other:"{{count}} entries"})})]}),i&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"settings-sync-log__filters",children:[s.jsxs("label",{children:[a("syncLog.filterDirection","Direction:"),s.jsxs("select",{value:l,onChange:g=>c(g.target.value),children:[s.jsx("option",{value:"all",children:a("syncLog.filterAll","All")}),s.jsx("option",{value:"push",children:a("syncLog.filterPush","Push")}),s.jsx("option",{value:"pull",children:a("syncLog.filterPull","Pull")})]})]}),!n&&s.jsxs("label",{children:[a("syncLog.filterNode","Node:"),s.jsxs("select",{value:d,onChange:g=>u(g.target.value),children:[s.jsx("option",{value:"all",children:a("syncLog.filterAllNodes","All Nodes")}),h.map(g=>s.jsx("option",{value:g,children:g},g))]})]})]}),r&&t.length===0?s.jsx("div",{className:"settings-sync-log__empty",children:s.jsx(tc,{label:a("syncLog.loading","Loading...")})}):v.length===0?s.jsx("div",{className:"settings-sync-log__empty",children:a("syncLog.noHistory","No sync history available")}):s.jsx("div",{className:"settings-sync-log__list",children:v.map(g=>s.jsxs("div",{className:"settings-sync-log__entry",children:[s.jsx("span",{className:"settings-sync-log__entry-timestamp",children:p(g.timestamp)}),s.jsx("span",{className:"settings-sync-log__entry-direction",children:g.direction==="push"?s.jsx(cc,{size:14,"data-testid":"upload-icon"}):s.jsx(Ri,{size:14,"data-testid":"download-icon"})}),s.jsx("span",{className:`settings-sync-log__entry-result ${b(g.result)}`,children:y(g.result)}),!n&&s.jsx("span",{className:"settings-sync-log__entry-node",children:g.nodeName}),g.details&&s.jsx("span",{className:"settings-sync-log__entry-details",title:g.details,children:Gj(g.details??"")})]},g.id))})]})]})}function AF(e,t){const r=typeof e=="string"?e:JSON.stringify(e,null,2),n=typeof t=="string"?t:JSON.stringify(t,null,2);if(r===n)return r;const a=r.split(`
|
|
98
|
+
*/var gv;function KT(){if(gv)return he;gv=1;var e=60103,t=60106,r=60107,n=60108,a=60114,i=60109,o=60110,l=60112,c=60113,d=60120,u=60115,m=60116,h=60121,v=60122,p=60117,b=60129,y=60131;if(typeof Symbol=="function"&&Symbol.for){var g=Symbol.for;e=g("react.element"),t=g("react.portal"),r=g("react.fragment"),n=g("react.strict_mode"),a=g("react.profiler"),i=g("react.provider"),o=g("react.context"),l=g("react.forward_ref"),c=g("react.suspense"),d=g("react.suspense_list"),u=g("react.memo"),m=g("react.lazy"),h=g("react.block"),v=g("react.server.block"),p=g("react.fundamental"),b=g("react.debug_trace_mode"),y=g("react.legacy_hidden")}function j(I){if(typeof I=="object"&&I!==null){var z=I.$$typeof;switch(z){case e:switch(I=I.type,I){case r:case a:case n:case c:case d:return I;default:switch(I=I&&I.$$typeof,I){case o:case l:case m:case u:case i:return I;default:return z}}case t:return z}}}var x=i,C=e,w=l,P=r,A=m,S=u,N=t,E=a,T=n,O=c;return he.ContextConsumer=o,he.ContextProvider=x,he.Element=C,he.ForwardRef=w,he.Fragment=P,he.Lazy=A,he.Memo=S,he.Portal=N,he.Profiler=E,he.StrictMode=T,he.Suspense=O,he.isAsyncMode=function(){return!1},he.isConcurrentMode=function(){return!1},he.isContextConsumer=function(I){return j(I)===o},he.isContextProvider=function(I){return j(I)===i},he.isElement=function(I){return typeof I=="object"&&I!==null&&I.$$typeof===e},he.isForwardRef=function(I){return j(I)===l},he.isFragment=function(I){return j(I)===r},he.isLazy=function(I){return j(I)===m},he.isMemo=function(I){return j(I)===u},he.isPortal=function(I){return j(I)===t},he.isProfiler=function(I){return j(I)===a},he.isStrictMode=function(I){return j(I)===n},he.isSuspense=function(I){return j(I)===c},he.isValidElementType=function(I){return typeof I=="string"||typeof I=="function"||I===r||I===a||I===b||I===n||I===c||I===d||I===y||typeof I=="object"&&I!==null&&(I.$$typeof===m||I.$$typeof===u||I.$$typeof===i||I.$$typeof===o||I.$$typeof===l||I.$$typeof===p||I.$$typeof===h||I[0]===v)},he.typeOf=j,he}var bv;function VT(){return bv||(bv=1,$o.exports=KT()),$o.exports}var UT=VT(),xv=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",jv=null,Fo=null,Bb=e=>{if(e===jv&&Array.isArray(Fo))return Fo;var t=[];return f.Children.forEach(e,r=>{ze(r)||(UT.isFragment(r)?t=t.concat(Bb(r.props.children)):t.push(r))}),Fo=t,jv=e,t};function zb(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(a=>xv(a)):n=[xv(t)],Bb(e).forEach(a=>{var i=Mr(a,"type.displayName")||Mr(a,"type.name");i&&n.indexOf(i)!==-1&&r.push(a)}),r}var Kb=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0,Bo={},wv;function qT(){return wv||(wv=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){if(typeof r!="object"||r==null)return!1;if(Object.getPrototypeOf(r)===null)return!0;if(Object.prototype.toString.call(r)!=="[object Object]"){const a=r[Symbol.toStringTag];return a==null||!Object.getOwnPropertyDescriptor(r,Symbol.toStringTag)?.writable?!1:r.toString()===`[object ${a}]`}let n=r;for(;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(r)===n}e.isPlainObject=t})(Bo)),Bo}var zo,Cv;function WT(){return Cv||(Cv=1,zo=qT().isPlainObject),zo}var HT=WT();const GT=mn(HT);var kv,Sv,Nv,Pv,Av;function Ov(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ev(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ov(Object(r),!0).forEach(function(n){XT(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ov(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function XT(e,t,r){return(t=YT(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function YT(e){var t=ZT(e,"string");return typeof t=="symbol"?t:t+""}function ZT(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function wi(){return wi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},wi.apply(null,arguments)}function On(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var _v=(e,t,r,n,a)=>{var i=r-n,o;return o=_e(kv||(kv=On(["M ",",",""])),e,t),o+=_e(Sv||(Sv=On(["L ",",",""])),e+r,t),o+=_e(Nv||(Nv=On(["L ",",",""])),e+r-i/2,t+a),o+=_e(Pv||(Pv=On(["L ",",",""])),e+r-i/2-n,t+a),o+=_e(Av||(Av=On(["L ",","," Z"])),e,t),o},JT={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},QT=e=>{var t=Ke(e,JT),{x:r,y:n,upperWidth:a,lowerWidth:i,height:o,className:l}=t,{animationEasing:c,animationDuration:d,animationBegin:u,isUpdateAnimationActive:m}=t,h=f.useRef(null),[v,p]=f.useState(-1),b=f.useRef(a),y=f.useRef(i),g=f.useRef(o),j=f.useRef(r),x=f.useRef(n),C=os(e,"trapezoid-");if(f.useEffect(()=>{if(h.current&&h.current.getTotalLength)try{var z=h.current.getTotalLength();z&&p(z)}catch{}},[]),r!==+r||n!==+n||a!==+a||i!==+i||o!==+o||a===0&&i===0||o===0)return null;var w=ve("recharts-trapezoid",l);if(!m)return f.createElement("g",null,f.createElement("path",wi({},st(t),{className:w,d:_v(r,n,a,i,o)})));var P=b.current,A=y.current,S=g.current,N=j.current,E=x.current,T="0px ".concat(v===-1?1:v,"px"),O="".concat(v,"px ").concat(v,"px"),I=My(["strokeDasharray"],d,c);return f.createElement(ss,{animationId:C,key:C,canBegin:v>0,duration:d,easing:c,isActive:m,begin:u},z=>{var D=tt(P,a,z),V=tt(A,i,z),B=tt(S,o,z),W=tt(N,r,z),K=tt(E,n,z);h.current&&(b.current=D,y.current=V,g.current=B,j.current=W,x.current=K);var te=z>0?{transition:I,strokeDasharray:O}:{strokeDasharray:T};return f.createElement("path",wi({},st(t),{className:w,d:_v(W,K,D,V,B),ref:h,style:Ev(Ev({},te),t.style)}))})},eM=["option","shapeType","activeClassName","inActiveClassName"];function tM(e,t){if(e==null)return{};var r,n,a=rM(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function rM(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Tv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ci(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Tv(Object(r),!0).forEach(function(n){nM(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Tv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function nM(e,t,r){return(t=aM(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function aM(e){var t=iM(e,"string");return typeof t=="symbol"?t:t+""}function iM(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function sM(e,t){return Ci(Ci({},t),e)}function oM(e,t){return e==="symbols"}function Mv(e){var{shapeType:t,elementProps:r}=e;switch(t){case"rectangle":return f.createElement(Ly,r);case"trapezoid":return f.createElement(QT,r);case"sector":return f.createElement(zy,r);case"symbols":if(oM(t))return f.createElement(Cc,r);break;case"curve":return f.createElement(Bc,r);default:return null}}function lM(e){return f.isValidElement(e)?e.props:e}function Vb(e){var{option:t,shapeType:r,activeClassName:n="recharts-active-shape",inActiveClassName:a="recharts-shape"}=e,i=tM(e,eM),o;if(f.isValidElement(t))o=f.cloneElement(t,Ci(Ci({},i),lM(t)));else if(typeof t=="function")o=t(i,i.index);else if(GT(t)&&typeof t!="boolean"){var l=sM(t,i);o=f.createElement(Mv,{shapeType:r,elementProps:l})}else{var c=i;o=f.createElement(Mv,{shapeType:r,elementProps:c})}return i.isActive?f.createElement(ot,{className:n},o):f.createElement(ot,{className:a},o)}var cM=(e,t,r)=>{var n=pe();return(a,i)=>o=>{e?.(a,i,o),n(qg({activeIndex:String(i),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:r}))}},uM=e=>{var t=pe();return(r,n)=>a=>{e?.(r,n,a),t(fE())}},dM=(e,t,r)=>{var n=pe();return(a,i)=>o=>{e?.(a,i,o),n(mE({activeIndex:String(i),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:r}))}};function Ub(e){var{tooltipEntrySettings:t}=e,r=pe(),n=dt(),a=f.useRef(null);return f.useLayoutEffect(()=>{n||(a.current===null?r(lE(t)):a.current!==t&&r(cE({prev:a.current,next:t})),a.current=t)},[t,r,n]),f.useLayoutEffect(()=>()=>{a.current&&(r(uE(a.current)),a.current=null)},[r]),null}function fM(e){var{legendPayload:t}=e,r=pe(),n=dt(),a=f.useRef(null);return f.useLayoutEffect(()=>{n||(a.current===null?r(Ay(t)):a.current!==t&&r(Oy({prev:a.current,next:t})),a.current=t)},[r,n,t]),f.useLayoutEffect(()=>()=>{a.current&&(r(Ey(a.current)),a.current=null)},[r]),null}function mM(e){var{legendPayload:t}=e,r=pe(),n=Z(xe),a=f.useRef(null);return f.useLayoutEffect(()=>{n!=="centric"&&n!=="radial"||(a.current===null?r(Ay(t)):a.current!==t&&r(Oy({prev:a.current,next:t})),a.current=t)},[r,n,t]),f.useLayoutEffect(()=>()=>{a.current&&(r(Ey(a.current)),a.current=null)},[r]),null}var Ko,vM=()=>{var[e]=f.useState(()=>Kn("uid-"));return e},hM=(Ko=ij.useId)!==null&&Ko!==void 0?Ko:vM;function pM(e,t){var r=hM();return t||(e?"".concat(e,"-").concat(r):r)}var yM=f.createContext(void 0),qb=e=>{var{id:t,type:r,children:n}=e,a=pM("recharts-".concat(r),t);return f.createElement(yM.Provider,{value:a},n(a))},gM={cartesianItems:[],polarItems:[]},Wb=at({name:"graphicalItems",initialState:gM,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:je()},replaceCartesianGraphicalItem:{reducer(e,t){var{prev:r,next:n}=t.payload,a=Ct(e).cartesianItems.indexOf(r);a>-1&&(e.cartesianItems[a]=n)},prepare:je()},removeCartesianGraphicalItem:{reducer(e,t){var r=Ct(e).cartesianItems.indexOf(t.payload);r>-1&&e.cartesianItems.splice(r,1)},prepare:je()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:je()},removePolarGraphicalItem:{reducer(e,t){var r=Ct(e).polarItems.indexOf(t.payload);r>-1&&e.polarItems.splice(r,1)},prepare:je()},replacePolarGraphicalItem:{reducer(e,t){var{prev:r,next:n}=t.payload,a=Ct(e).polarItems.indexOf(r);a>-1&&(e.polarItems[a]=n)},prepare:je()}}}),{addCartesianGraphicalItem:bM,replaceCartesianGraphicalItem:xM,removeCartesianGraphicalItem:jM,addPolarGraphicalItem:wM,removePolarGraphicalItem:CM,replacePolarGraphicalItem:kM}=Wb.actions,SM=Wb.reducer,NM=e=>{var t=pe(),r=f.useRef(null);return f.useLayoutEffect(()=>{r.current===null?t(bM(e)):r.current!==e&&t(xM({prev:r.current,next:e})),r.current=e},[t,e]),f.useLayoutEffect(()=>()=>{r.current&&(t(jM(r.current)),r.current=null)},[t]),null},PM=f.memo(NM),AM=e=>{var t=pe(),r=f.useRef(null);return f.useLayoutEffect(()=>{r.current===null?t(wM(e)):r.current!==e&&t(kM({prev:r.current,next:e})),r.current=e},[t,e]),f.useLayoutEffect(()=>()=>{r.current&&(t(CM(r.current)),r.current=null)},[t]),null},OM=f.memo(AM),EM=["key"],_M=["onMouseEnter","onClick","onMouseLeave"],TM=["id"],MM=["id"];function hr(){return hr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},hr.apply(null,arguments)}function ws(e,t){if(e==null)return{};var r,n,a=IM(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function IM(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Iv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ke(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Iv(Object(r),!0).forEach(function(n){DM(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Iv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function DM(e,t,r){return(t=RM(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function RM(e){var t=LM(e,"string");return typeof t=="symbol"?t:t+""}function LM(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function $M(e){var t=f.useMemo(()=>zb(e.children,gs),[e.children]),r=Z(n=>BT(n,e.id,t));return r==null?null:f.createElement(mM,{legendPayload:r})}function FM(e){if(!(e==null||typeof e=="boolean"||typeof e=="function")){if(f.isValidElement(e)){var t,r=(t=e.props)===null||t===void 0?void 0:t.fill;return typeof r=="string"?r:void 0}var{fill:n}=e;return typeof n=="string"?n:void 0}}var BM=f.memo(e=>{var{dataKey:t,nameKey:r,sectors:n,stroke:a,strokeWidth:i,fill:o,name:l,hide:c,tooltipType:d,id:u,activeShape:m}=e,h=FM(m),v=n.map(b=>{var y=b.tooltipPayload;return h==null||y==null?y:y.map(g=>ke(ke({},g),{},{color:h,fill:h}))}),p={dataDefinedOnItem:v,getPosition:b=>{var y;return(y=n[Number(b)])===null||y===void 0?void 0:y.tooltipPosition},settings:{stroke:a,strokeWidth:i,fill:o,dataKey:t,nameKey:r,name:Zi(l,t),hide:c,type:d,color:o,unit:"",graphicalItemId:u}};return f.createElement(Ub,{tooltipEntrySettings:p})}),zM=(e,t)=>e>t?"start":e<t?"end":"middle",KM=(e,t,r)=>ht(typeof t=="function"?t(e):t,r,r*.8),VM=(e,t,r)=>{var{top:n,left:a,width:i,height:o}=t,l=$y(i,o),c=a+ht(e.cx,i,i/2),d=n+ht(e.cy,o,o/2),u=ht(e.innerRadius,l,0),m=KM(r,e.outerRadius,l),h=e.maxRadius||Math.sqrt(i*i+o*o)/2;return{cx:c,cy:d,innerRadius:u,outerRadius:m,maxRadius:h}},UM=(e,t)=>{var r=rt(t-e),n=Math.min(Math.abs(t-e),360);return r*n},qM=(e,t)=>{if(f.isValidElement(e))return f.cloneElement(e,t);if(typeof e=="function")return e(t);var r=ve("recharts-pie-label-line",typeof e!="boolean"?e.className:""),{key:n}=t,a=ws(t,EM);return f.createElement(Bc,hr({},a,{type:"linear",className:r}))},WM=(e,t,r)=>{if(f.isValidElement(e))return f.cloneElement(e,t);var n=r;if(typeof e=="function"&&(n=e(t),f.isValidElement(n)))return n;var a=ve("recharts-pie-label-text",$b(e));return f.createElement(bs,hr({},t,{alignmentBaseline:"middle",className:a}),n)};function HM(e){var{sectors:t,props:r,showLabels:n}=e,{label:a,labelLine:i,dataKey:o}=r;if(!n||!a||!t)return null;var l=kt(r),c=an(a),d=an(i),u=typeof a=="object"&&"offsetRadius"in a&&typeof a.offsetRadius=="number"&&a.offsetRadius||20,m=t.map((h,v)=>{var p=(h.startAngle+h.endAngle)/2,b=Ie(h.cx,h.cy,h.outerRadius+u,p),y=ke(ke(ke(ke({},l),h),{},{stroke:"none"},c),{},{index:v,textAnchor:zM(b.x,h.cx)},b),g=ke(ke(ke(ke({},l),h),{},{fill:"none",stroke:h.fill},d),{},{index:v,points:[Ie(h.cx,h.cy,h.outerRadius,p),b],key:"line"});return f.createElement(Tt,{zIndex:Ze.label,key:"label-".concat(h.startAngle,"-").concat(h.endAngle,"-").concat(h.midAngle,"-").concat(v)},f.createElement(ot,null,i&&qM(i,g),WM(a,y,ge(h,o))))});return f.createElement(ot,{className:"recharts-pie-labels"},m)}function GM(e){var{sectors:t,props:r,showLabels:n}=e,{label:a}=r;return typeof a=="object"&&a!=null&&"position"in a?f.createElement(Mb,{label:a}):f.createElement(HM,{sectors:t,props:r,showLabels:n})}function XM(e){var{sectors:t,activeShape:r,inactiveShape:n,allOtherPieProps:a,shape:i,id:o}=e,l=Z(fn),c=Z(ob),d=Z(lb),{onMouseEnter:u,onClick:m,onMouseLeave:h}=a,v=ws(a,_M),p=cM(u,a.dataKey,o),b=uM(h),y=dM(m,a.dataKey,o);return t==null||t.length===0?null:f.createElement(f.Fragment,null,t.map((g,j)=>{if(g?.startAngle===0&&g?.endAngle===0&&t.length!==1)return null;var x=d==null||d===o,C=String(j)===l&&(c==null||a.dataKey===c)&&x,w=l?n:null,P=r&&C?r:w,A=ke(ke({},g),{},{stroke:g.stroke,tabIndex:-1,[vy]:j,[hy]:o});return f.createElement(ot,hr({key:"sector-".concat(g?.startAngle,"-").concat(g?.endAngle,"-").concat(g.midAngle,"-").concat(j),tabIndex:-1,className:"recharts-pie-sector"},Sc(v,g,j),{onMouseEnter:p(g,j),onMouseLeave:b(g,j),onClick:y(g,j)}),f.createElement(Vb,hr({option:i??P,index:j,shapeType:"sector",isActive:C},A)))}))}function YM(e){var t,{pieSettings:r,displayedData:n,cells:a,offset:i}=e,{cornerRadius:o,startAngle:l,endAngle:c,dataKey:d,nameKey:u,tooltipType:m}=r,h=Math.abs(r.minAngle),v=UM(l,c),p=Math.abs(v),b=n.length<=1?0:(t=r.paddingAngle)!==null&&t!==void 0?t:0,y=n.filter(S=>ge(S,d,0)!==0).length,g=(p>=360?y:y-1)*b,j=n.reduce((S,N)=>{var E=ge(N,d,0);return S+(ee(E)?E:0)},0),x=h>0&&j>0&&n.some(S=>{var N=ge(S,d,0),E=(ee(N)?N:0)/j;return N!==0&&E*p<h}),C=x?h:0,w=p-y*C-g,P;if(j>0){var A;P=n.map((S,N)=>{var E=ge(S,d,0),T=ge(S,u,N),O=VM(r,i,S),I=(ee(E)?E:0)/j,z,D=ke(ke({},S),a&&a[N]&&a[N].props),V=D!=null&&"fill"in D&&typeof D.fill=="string"?D.fill:r.fill;N?z=A.endAngle+rt(v)*b*(E!==0?1:0):z=l;var B=z+rt(v)*((E!==0?C:0)+I*w),W=(z+B)/2,K=(O.innerRadius+O.outerRadius)/2,te=[{name:T,value:E,payload:D,dataKey:d,type:m,color:V,fill:V,graphicalItemId:r.id}],G=Ie(O.cx,O.cy,K,W);return A=ke(ke(ke(ke({},r.presentationProps),{},{percent:I,cornerRadius:typeof o=="string"?parseFloat(o):o,name:T,tooltipPayload:te,midAngle:W,middleRadius:K,tooltipPosition:G},D),O),{},{value:E,dataKey:d,startAngle:z,endAngle:B,payload:D,paddingAngle:E!==0?rt(v)*b:0}),A})}return P}function ZM(e){var{showLabels:t,sectors:r,children:n}=e,a=f.useMemo(()=>!t||!r?[]:r.map(i=>({value:i.value,payload:i.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:i.cx,cy:i.cy,innerRadius:i.innerRadius,outerRadius:i.outerRadius,startAngle:i.startAngle,endAngle:i.endAngle,clockWise:!1},fill:i.fill})),[r,t]);return f.createElement(CT,{value:t?a:void 0},n)}function JM(e){var{props:t,previousSectorsRef:r,id:n}=e,{sectors:a,isAnimationActive:i,animationBegin:o,animationDuration:l,animationEasing:c,activeShape:d,inactiveShape:u,onAnimationStart:m,onAnimationEnd:h}=t,v=os(t,"recharts-pie-"),p=r.current,[b,y]=f.useState(!1),g=f.useCallback(()=>{typeof h=="function"&&h(),y(!1)},[h]),j=f.useCallback(()=>{typeof m=="function"&&m(),y(!0)},[m]);return f.createElement(ZM,{showLabels:!b,sectors:a},f.createElement(ss,{animationId:v,begin:o,duration:l,isActive:i,easing:c,onAnimationStart:j,onAnimationEnd:g,key:v},x=>{var C,w=[],P=a&&a[0],A=(C=P?.startAngle)!==null&&C!==void 0?C:0;return a?.forEach((S,N)=>{var E=p&&p[N],T=N>0?Mr(S,"paddingAngle",0):0;if(E){var O=tt(E.endAngle-E.startAngle,S.endAngle-S.startAngle,x),I=ke(ke({},S),{},{startAngle:A+T,endAngle:A+O+T});w.push(I),A=I.endAngle}else{var{endAngle:z,startAngle:D}=S,V=tt(0,z-D,x),B=ke(ke({},S),{},{startAngle:A+T,endAngle:A+V+T});w.push(B),A=B.endAngle}}),r.current=w,f.createElement(ot,null,f.createElement(XM,{sectors:w,activeShape:d,inactiveShape:u,allOtherPieProps:t,shape:t.shape,id:n}))}),f.createElement(GM,{showLabels:!b,sectors:a,props:t}),t.children)}var QM={animationBegin:400,animationDuration:1500,animationEasing:"ease",cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:"#fff",zIndex:Ze.area};function eI(e){var{id:t}=e,r=ws(e,TM),{hide:n,className:a,rootTabIndex:i}=e,o=f.useMemo(()=>zb(e.children,gs),[e.children]),l=Z(u=>zT(u,t,o)),c=f.useRef(null),d=ve("recharts-pie",a);return n||l==null?(c.current=null,f.createElement(ot,{tabIndex:i,className:d})):f.createElement(Tt,{zIndex:e.zIndex},f.createElement(BM,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:l,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,id:t,activeShape:e.activeShape}),f.createElement(ot,{tabIndex:i,className:d},f.createElement(JM,{props:ke(ke({},r),{},{sectors:l}),previousSectorsRef:c,id:t})))}function tI(e){var t=Ke(e,QM),{id:r}=t,n=ws(t,MM),a=kt(n);return f.createElement(qb,{id:r,type:"pie"},i=>f.createElement(f.Fragment,null,f.createElement(OM,{type:"pie",id:i,data:n.data,dataKey:n.dataKey,hide:n.hide,angleAxisId:0,radiusAxisId:0,name:n.name,nameKey:n.nameKey,tooltipType:n.tooltipType,legendType:n.legendType,fill:n.fill,cx:n.cx,cy:n.cy,startAngle:n.startAngle,endAngle:n.endAngle,paddingAngle:n.paddingAngle,minAngle:n.minAngle,innerRadius:n.innerRadius,outerRadius:n.outerRadius,cornerRadius:n.cornerRadius,presentationProps:a,maxRadius:t.maxRadius}),f.createElement($M,hr({},n,{id:i})),f.createElement(eI,hr({},n,{id:i}))))}var Hb=tI;Hb.displayName="Pie";var rI=["points"];function Dv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Vo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Dv(Object(r),!0).forEach(function(n){nI(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Dv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function nI(e,t,r){return(t=aI(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function aI(e){var t=iI(e,"string");return typeof t=="symbol"?t:t+""}function iI(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ki(){return ki=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ki.apply(null,arguments)}function sI(e,t){if(e==null)return{};var r,n,a=oI(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function oI(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function lI(e){var{option:t,dotProps:r,className:n}=e;if(f.isValidElement(t))return f.cloneElement(t,r);if(typeof t=="function")return t(r);var a=ve(n,typeof t!="boolean"?t.className:""),i=r??{},{points:o}=i,l=sI(i,rI);return f.createElement(Ib,ki({},l,{className:a}))}function cI(e,t){return e==null?!1:t?!0:e.length===1}function uI(e){var{points:t,dot:r,className:n,dotClassName:a,dataKey:i,baseProps:o,needClip:l,clipPathId:c,zIndex:d=Ze.scatter}=e;if(!cI(t,r))return null;var u=Kb(r),m=fC(r),h=t.map((p,b)=>{var y,g,j=Vo(Vo(Vo({r:3},o),m),{},{index:b,cx:(y=p.x)!==null&&y!==void 0?y:void 0,cy:(g=p.y)!==null&&g!==void 0?g:void 0,dataKey:i,value:p.value,payload:p.payload,points:t});return f.createElement(lI,{key:"dot-".concat(b),option:r,dotProps:j,className:a})}),v={};return l&&c!=null&&(v.clipPath="url(#clipPath-".concat(u?"":"dots-").concat(c,")")),f.createElement(Tt,{zIndex:d},f.createElement(ot,ki({className:n},v),h))}function Rv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Lv(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Rv(Object(r),!0).forEach(function(n){dI(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function dI(e,t,r){return(t=fI(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function fI(e){var t=mI(e,"string");return typeof t=="symbol"?t:t+""}function mI(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var vI={xAxis:{},yAxis:{},zAxis:{}},Gb=at({name:"cartesianAxis",initialState:vI,reducers:{addXAxis:{reducer(e,t){e.xAxis[t.payload.id]=t.payload},prepare:je()},replaceXAxis:{reducer(e,t){var{prev:r,next:n}=t.payload;e.xAxis[r.id]!==void 0&&(r.id!==n.id&&delete e.xAxis[r.id],e.xAxis[n.id]=n)},prepare:je()},removeXAxis:{reducer(e,t){delete e.xAxis[t.payload.id]},prepare:je()},addYAxis:{reducer(e,t){e.yAxis[t.payload.id]=t.payload},prepare:je()},replaceYAxis:{reducer(e,t){var{prev:r,next:n}=t.payload;e.yAxis[r.id]!==void 0&&(r.id!==n.id&&delete e.yAxis[r.id],e.yAxis[n.id]=n)},prepare:je()},removeYAxis:{reducer(e,t){delete e.yAxis[t.payload.id]},prepare:je()},addZAxis:{reducer(e,t){e.zAxis[t.payload.id]=t.payload},prepare:je()},replaceZAxis:{reducer(e,t){var{prev:r,next:n}=t.payload;e.zAxis[r.id]!==void 0&&(r.id!==n.id&&delete e.zAxis[r.id],e.zAxis[n.id]=n)},prepare:je()},removeZAxis:{reducer(e,t){delete e.zAxis[t.payload.id]},prepare:je()},updateYAxisWidth(e,t){var{id:r,width:n}=t.payload,a=e.yAxis[r];if(a){var i,o=a.widthHistory||[];if(o.length===3&&o[0]===o[2]&&n===o[1]&&n!==a.width&&Math.abs(n-((i=o[0])!==null&&i!==void 0?i:0))<=1)return;var l=[...o,n].slice(-3);e.yAxis[r]=Lv(Lv({},a),{},{width:n,widthHistory:l})}}}}),{addXAxis:hI,replaceXAxis:pI,removeXAxis:yI,addYAxis:gI,replaceYAxis:bI,removeYAxis:xI,addZAxis:CB,replaceZAxis:kB,removeZAxis:SB,updateYAxisWidth:jI}=Gb.actions,wI=Gb.reducer,CI=_([qe],e=>({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),kI=_([CI,tr,rr],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}}),Ou=()=>Z(kI),SI=()=>Z(o1);function $v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Uo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$v(Object(r),!0).forEach(function(n){NI(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$v(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function NI(e,t,r){return(t=PI(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function PI(e){var t=AI(e,"string");return typeof t=="symbol"?t:t+""}function AI(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var OI=e=>{var{point:t,childIndex:r,mainColor:n,activeDot:a,dataKey:i,clipPath:o}=e;if(a===!1||t.x==null||t.y==null)return null;var l={index:r,dataKey:i,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},c=Uo(Uo(Uo({},l),an(a)),kc(a)),d;return f.isValidElement(a)?d=f.cloneElement(a,c):typeof a=="function"?d=a(c):d=f.createElement(Ib,c),f.createElement(ot,{className:"recharts-active-dot",clipPath:o},d)};function EI(e){var{points:t,mainColor:r,activeDot:n,itemDataKey:a,clipPath:i,zIndex:o=Ze.activeDot}=e,l=Z(fn),c=SI();if(t==null||c==null)return null;var d=t.find(u=>c.includes(u.payload));return ze(d)?null:f.createElement(Tt,{zIndex:o},f.createElement(OI,{point:d,childIndex:Number(l),mainColor:r,dataKey:a,activeDot:n,clipPath:i}))}var Xb=e=>{var{chartData:t}=e,r=pe(),n=dt();return f.useEffect(()=>n?()=>{}:(r(Ym(t)),()=>{r(Ym(void 0))}),[t,r,n]),null},Fv={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},Yb=at({name:"brush",initialState:Fv,reducers:{setBrushSettings(e,t){return t.payload==null?Fv:t.payload}}}),{setBrushSettings:NB}=Yb.actions,_I=Yb.reducer;function TI(e){return(e%180+180)%180}var MI=function(t){var{width:r,height:n}=t,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=TI(a),o=i*Math.PI/180,l=Math.atan(n/r),c=o>l&&o<Math.PI-l?n/Math.sin(o):r/Math.cos(o);return Math.abs(c)},II={dots:[],areas:[],lines:[]},Zb=at({name:"referenceElements",initialState:II,reducers:{addDot:(e,t)=>{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=Ct(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=Ct(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var r=Ct(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),{addDot:PB,removeDot:AB,addArea:OB,removeArea:EB,addLine:_B,removeLine:TB}=Zb.actions,DI=Zb.reducer,RI=f.createContext(void 0),LI=e=>{var{children:t}=e,[r]=f.useState("".concat(Kn("recharts"),"-clip")),n=Ou();if(n==null)return null;var{x:a,y:i,width:o,height:l}=n;return f.createElement(RI.Provider,{value:r},f.createElement("defs",null,f.createElement("clipPath",{id:r},f.createElement("rect",{x:a,y:i,height:l,width:o}))),t)};function Jb(e,t){if(t<1)return[];if(t===1)return e;for(var r=[],n=0;n<e.length;n+=t){var a=e[n];a!==void 0&&r.push(a)}return r}function $I(e,t,r){var n={width:e.width+t.width,height:e.height+t.height};return MI(n,r)}function FI(e,t,r){var n=r==="width",{x:a,y:i,width:o,height:l}=e;return t===1?{start:n?a:i,end:n?a+o:i+l}:{start:n?a+o:i+l,end:n?a:i}}function Jn(e,t,r,n,a){if(e*t<e*n||e*t>e*a)return!1;var i=r();return e*(t-e*i/2-n)>=0&&e*(t+e*i/2-a)<=0}function BI(e,t){return Jb(e,t+1)}function zI(e,t,r,n,a){for(var i=(n||[]).slice(),{start:o,end:l}=t,c=0,d=1,u=o,m=function(){var p=n?.[c];if(p===void 0)return{v:Jb(n,d)};var b=c,y,g=()=>(y===void 0&&(y=r(p,b)),y),j=p.coordinate,x=c===0||Jn(e,j,g,u,l);x||(c=0,u=o,d+=1),x&&(u=j+e*(g()/2+a),c+=d)},h;d<=i.length;)if(h=m(),h)return h.v;return[]}function KI(e,t,r,n,a){var i=(n||[]).slice(),o=i.length;if(o===0)return[];for(var{start:l,end:c}=t,d=1;d<=o;d++){for(var u=(o-1)%d,m=l,h=!0,v=function(){var C=n[b];if(C==null)return 0;var w=b,P,A=()=>(P===void 0&&(P=r(C,w)),P),S=C.coordinate,N=b===u||Jn(e,S,A,m,c);if(!N)return h=!1,1;N&&(m=S+e*(A()/2+a))},p,b=u;b<o&&(p=v(),!(p!==0&&p===1));b+=d);if(h){for(var y=[],g=u;g<o;g+=d){var j=n[g];j!=null&&y.push(j)}return y}}return[]}function Bv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Qe(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Bv(Object(r),!0).forEach(function(n){VI(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Bv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function VI(e,t,r){return(t=UI(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function UI(e){var t=qI(e,"string");return typeof t=="symbol"?t:t+""}function qI(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function WI(e,t,r,n,a){for(var i=(n||[]).slice(),o=i.length,{start:l}=t,{end:c}=t,d=function(h){var v=i[h];if(v==null)return 1;var p=v,b,y=()=>(b===void 0&&(b=r(v,h)),b);if(h===o-1){var g=e*(p.coordinate+e*y()/2-c);i[h]=p=Qe(Qe({},p),{},{tickCoord:g>0?p.coordinate-g*e:p.coordinate})}else i[h]=p=Qe(Qe({},p),{},{tickCoord:p.coordinate});if(p.tickCoord!=null){var j=Jn(e,p.tickCoord,y,l,c);j&&(c=p.tickCoord-e*(y()/2+a),i[h]=Qe(Qe({},p),{},{isShow:!0}))}},u=o-1;u>=0;u--)d(u);return i}function HI(e,t,r,n,a,i){var o=(n||[]).slice(),l=o.length,{start:c,end:d}=t;if(i){var u=n[l-1];if(u!=null){var m=r(u,l-1),h=e*(u.coordinate+e*m/2-d);if(o[l-1]=u=Qe(Qe({},u),{},{tickCoord:h>0?u.coordinate-h*e:u.coordinate}),u.tickCoord!=null){var v=Jn(e,u.tickCoord,()=>m,c,d);v&&(d=u.tickCoord-e*(m/2+a),o[l-1]=Qe(Qe({},u),{},{isShow:!0}))}}}for(var p=i?l-1:l,b=function(j){var x=o[j];if(x==null)return 1;var C=x,w,P=()=>(w===void 0&&(w=r(x,j)),w);if(j===0){var A=e*(C.coordinate-e*P()/2-c);o[j]=C=Qe(Qe({},C),{},{tickCoord:A<0?C.coordinate-A*e:C.coordinate})}else o[j]=C=Qe(Qe({},C),{},{tickCoord:C.coordinate});if(C.tickCoord!=null){var S=Jn(e,C.tickCoord,P,c,d);S&&(c=C.tickCoord+e*(P()/2+a),o[j]=Qe(Qe({},C),{},{isShow:!0}))}},y=0;y<p;y++)b(y);return o}function Eu(e,t,r){var{tick:n,ticks:a,viewBox:i,minTickGap:o,orientation:l,interval:c,tickFormatter:d,unit:u,angle:m}=e;if(!a||!a.length||!n)return[];if(ee(c)||la.isSsr){var h;return(h=BI(a,ee(c)?c:0))!==null&&h!==void 0?h:[]}var v=[],p=l==="top"||l==="bottom"?"width":"height",b=u&&p==="width"?Bn(u,{fontSize:t,letterSpacing:r}):{width:0,height:0},y=(w,P)=>{var A=typeof d=="function"?d(w.value,P):w.value;return p==="width"?$I(Bn(A,{fontSize:t,letterSpacing:r}),b,m):Bn(A,{fontSize:t,letterSpacing:r})[p]},g=a[0],j=a[1],x=a.length>=2&&g!=null&&j!=null?rt(j.coordinate-g.coordinate):1,C=FI(i,x,p);return c==="equidistantPreserveStart"?zI(x,C,y,a,o):c==="equidistantPreserveEnd"?KI(x,C,y,a,o):(c==="preserveStart"||c==="preserveStartEnd"?v=HI(x,C,y,a,o,c==="preserveStartEnd"):v=WI(x,C,y,a,o),v.filter(w=>w.isShow))}var GI=e=>{var{ticks:t,label:r,labelGapWithTick:n=5,tickSize:a=0,tickMargin:i=0}=e,o=0;if(t){Array.from(t).forEach(u=>{if(u){var m=u.getBoundingClientRect();m.width>o&&(o=m.width)}});var l=r?r.getBoundingClientRect().width:0,c=a+i,d=o+c+l+(r?n:0);return Math.round(d)}return 0},XI={xAxis:{},yAxis:{}},Qb=at({name:"renderedTicks",initialState:XI,reducers:{setRenderedTicks:(e,t)=>{var{axisType:r,axisId:n,ticks:a}=t.payload;e[r][n]=a},removeRenderedTicks:(e,t)=>{var{axisType:r,axisId:n}=t.payload;delete e[r][n]}}}),{setRenderedTicks:YI,removeRenderedTicks:ZI}=Qb.actions,JI=Qb.reducer,QI=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function eD(e,t){if(e==null)return{};var r,n,a=tD(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function tD(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Fr(){return Fr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Fr.apply(null,arguments)}function zv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ee(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?zv(Object(r),!0).forEach(function(n){rD(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):zv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function rD(e,t,r){return(t=nD(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nD(e){var t=aD(e,"string");return typeof t=="symbol"?t:t+""}function aD(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Yt={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd",zIndex:Ze.axis};function iD(e){var{x:t,y:r,width:n,height:a,orientation:i,mirror:o,axisLine:l,otherSvgProps:c}=e;if(!l)return null;var d=Ee(Ee(Ee({},c),kt(l)),{},{fill:"none"});if(i==="top"||i==="bottom"){var u=+(i==="top"&&!o||i==="bottom"&&o);d=Ee(Ee({},d),{},{x1:t,y1:r+u*a,x2:t+n,y2:r+u*a})}else{var m=+(i==="left"&&!o||i==="right"&&o);d=Ee(Ee({},d),{},{x1:t+m*n,y1:r,x2:t+m*n,y2:r+a})}return f.createElement("line",Fr({},d,{className:ve("recharts-cartesian-axis-line",Mr(l,"className"))}))}function sD(e,t,r,n,a,i,o,l,c){var d,u,m,h,v,p,b=l?-1:1,y=e.tickSize||o,g=ee(e.tickCoord)?e.tickCoord:e.coordinate;switch(i){case"top":d=u=e.coordinate,h=r+ +!l*a,m=h-b*y,p=m-b*c,v=g;break;case"left":m=h=e.coordinate,u=t+ +!l*n,d=u-b*y,v=d-b*c,p=g;break;case"right":m=h=e.coordinate,u=t+ +l*n,d=u+b*y,v=d+b*c,p=g;break;default:d=u=e.coordinate,h=r+ +l*a,m=h+b*y,p=m+b*c,v=g;break}return{line:{x1:d,y1:m,x2:u,y2:h},tick:{x:v,y:p}}}function oD(e,t){switch(e){case"left":return t?"start":"end";case"right":return t?"end":"start";default:return"middle"}}function lD(e,t){switch(e){case"left":case"right":return"middle";case"top":return t?"start":"end";default:return t?"end":"start"}}function cD(e){var{option:t,tickProps:r,value:n}=e,a,i=ve(r.className,"recharts-cartesian-axis-tick-value");if(f.isValidElement(t))a=f.cloneElement(t,Ee(Ee({},r),{},{className:i}));else if(typeof t=="function")a=t(Ee(Ee({},r),{},{className:i}));else{var o="recharts-cartesian-axis-tick-value";typeof t!="boolean"&&(o=ve(o,$b(t))),a=f.createElement(bs,Fr({},r,{className:o}),n)}return a}function uD(e){var{ticks:t,axisType:r,axisId:n}=e,a=pe();return f.useEffect(()=>{if(n==null||r==null)return ta;var i=t.map(o=>({value:o.value,coordinate:o.coordinate,offset:o.offset,index:o.index}));return a(YI({ticks:i,axisId:n,axisType:r})),()=>{a(ZI({axisId:n,axisType:r}))}},[a,t,n,r]),null}var dD=f.forwardRef((e,t)=>{var{ticks:r=[],tick:n,tickLine:a,stroke:i,tickFormatter:o,unit:l,padding:c,tickTextProps:d,orientation:u,mirror:m,x:h,y:v,width:p,height:b,tickSize:y,tickMargin:g,fontSize:j,letterSpacing:x,getTicksConfig:C,events:w,axisType:P,axisId:A}=e,S=Eu(Ee(Ee({},C),{},{ticks:r}),j,x),N=kt(C),E=an(n),T=Sb(N.textAnchor)?N.textAnchor:oD(u,m),O=lD(u,m),I={};typeof a=="object"&&(I=a);var z=Ee(Ee({},N),{},{fill:"none"},I),D=S.map(W=>Ee({entry:W},sD(W,h,v,p,b,u,y,m,g))),V=D.map(W=>{var{entry:K,line:te}=W;return f.createElement(ot,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(K.value,"-").concat(K.coordinate,"-").concat(K.tickCoord)},a&&f.createElement("line",Fr({},z,te,{className:ve("recharts-cartesian-axis-tick-line",Mr(a,"className"))})))}),B=D.map((W,K)=>{var te,G,{entry:M,tick:q}=W,H=Ee(Ee(Ee(Ee({verticalAnchor:O},N),{},{textAnchor:T,stroke:"none",fill:i},q),{},{index:K,payload:M,visibleTicksCount:S.length,tickFormatter:o,padding:c},d),{},{angle:(te=(G=d?.angle)!==null&&G!==void 0?G:N.angle)!==null&&te!==void 0?te:0}),re=Ee(Ee({},H),E);return f.createElement(ot,Fr({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(M.value,"-").concat(M.coordinate,"-").concat(M.tickCoord)},Sc(w,M,K)),n&&f.createElement(cD,{option:n,tickProps:re,value:"".concat(typeof o=="function"?o(M.value,K):M.value).concat(l||"")}))});return f.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(P,"-ticks")},f.createElement(uD,{ticks:S,axisId:A,axisType:P}),B.length>0&&f.createElement(Tt,{zIndex:Ze.label},f.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(P,"-tick-labels"),ref:t},B)),V.length>0&&f.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(P,"-tick-lines")},V))}),fD=f.forwardRef((e,t)=>{var{axisLine:r,width:n,height:a,className:i,hide:o,ticks:l,axisType:c,axisId:d}=e,u=eD(e,QI),[m,h]=f.useState(""),[v,p]=f.useState(""),b=f.useRef(null);f.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var g;return GI({ticks:b.current,label:(g=e.labelRef)===null||g===void 0?void 0:g.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var y=f.useCallback(g=>{if(g){var j=g.getElementsByClassName("recharts-cartesian-axis-tick-value");b.current=j;var x=j[0];if(x){var C=window.getComputedStyle(x),w=C.fontSize,P=C.letterSpacing;(w!==m||P!==v)&&(h(w),p(P))}}},[m,v]);return o||n!=null&&n<=0||a!=null&&a<=0?null:f.createElement(Tt,{zIndex:e.zIndex},f.createElement(ot,{className:ve("recharts-cartesian-axis",i)},f.createElement(iD,{x:e.x,y:e.y,width:n,height:a,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:kt(e)}),f.createElement(dD,{ref:y,axisType:c,events:u,fontSize:m,getTicksConfig:e,height:e.height,letterSpacing:v,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:l,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:d}),f.createElement(oT,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},f.createElement(yT,{label:e.label,labelRef:e.labelRef}),e.children)))}),_u=f.forwardRef((e,t)=>{var r=Ke(e,Yt);return f.createElement(fD,Fr({},r,{ref:t}))});_u.displayName="CartesianAxis";var mD=["x1","y1","x2","y2","key"],vD=["offset"],hD=["xAxisId","yAxisId"],pD=["xAxisId","yAxisId"];function Kv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function et(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Kv(Object(r),!0).forEach(function(n){yD(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Kv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function yD(e,t,r){return(t=gD(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function gD(e){var t=bD(e,"string");return typeof t=="symbol"?t:t+""}function bD(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ar(){return Ar=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ar.apply(null,arguments)}function Si(e,t){if(e==null)return{};var r,n,a=xD(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function xD(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var jD=e=>{var{fill:t}=e;if(!t||t==="none")return null;var{fillOpacity:r,x:n,y:a,width:i,height:o,ry:l}=e;return f.createElement("rect",{x:n,y:a,ry:l,width:i,height:o,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function ex(e){var{option:t,lineItemProps:r}=e,n;if(f.isValidElement(t))n=f.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var a,{x1:i,y1:o,x2:l,y2:c,key:d}=r,u=Si(r,mD),m=(a=kt(u))!==null&&a!==void 0?a:{},{offset:h}=m,v=Si(m,vD);n=f.createElement("line",Ar({},v,{x1:i,y1:o,x2:l,y2:c,fill:"none",key:d}))}return n}function wD(e){var{x:t,width:r,horizontal:n=!0,horizontalPoints:a}=e;if(!n||!a||!a.length)return null;var{xAxisId:i,yAxisId:o}=e,l=Si(e,hD),c=a.map((d,u)=>{var m=et(et({},l),{},{x1:t,y1:d,x2:t+r,y2:d,key:"line-".concat(u),index:u});return f.createElement(ex,{key:"line-".concat(u),option:n,lineItemProps:m})});return f.createElement("g",{className:"recharts-cartesian-grid-horizontal"},c)}function CD(e){var{y:t,height:r,vertical:n=!0,verticalPoints:a}=e;if(!n||!a||!a.length)return null;var{xAxisId:i,yAxisId:o}=e,l=Si(e,pD),c=a.map((d,u)=>{var m=et(et({},l),{},{x1:d,y1:t,x2:d,y2:t+r,key:"line-".concat(u),index:u});return f.createElement(ex,{option:n,lineItemProps:m,key:"line-".concat(u)})});return f.createElement("g",{className:"recharts-cartesian-grid-vertical"},c)}function kD(e){var{horizontalFill:t,fillOpacity:r,x:n,y:a,width:i,height:o,horizontalPoints:l,horizontal:c=!0}=e;if(!c||!t||!t.length||l==null)return null;var d=l.map(m=>Math.round(m+a-a)).sort((m,h)=>m-h);a!==d[0]&&d.unshift(0);var u=d.map((m,h)=>{var v=d[h+1],p=v==null,b=p?a+o-m:v-m;if(b<=0)return null;var y=h%t.length;return f.createElement("rect",{key:"react-".concat(h),y:m,x:n,height:b,width:i,stroke:"none",fill:t[y],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return f.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},u)}function SD(e){var{vertical:t=!0,verticalFill:r,fillOpacity:n,x:a,y:i,width:o,height:l,verticalPoints:c}=e;if(!t||!r||!r.length)return null;var d=c.map(m=>Math.round(m+a-a)).sort((m,h)=>m-h);a!==d[0]&&d.unshift(0);var u=d.map((m,h)=>{var v=d[h+1],p=v==null,b=p?a+o-m:v-m;if(b<=0)return null;var y=h%r.length;return f.createElement("rect",{key:"react-".concat(h),x:m,y:i,width:b,height:l,stroke:"none",fill:r[y],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return f.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},u)}var ND=(e,t)=>{var{xAxis:r,width:n,height:a,offset:i}=e;return dy(Eu(et(et(et({},Yt),r),{},{ticks:fy(r),viewBox:{x:0,y:0,width:n,height:a}})),i.left,i.left+i.width,t)},PD=(e,t)=>{var{yAxis:r,width:n,height:a,offset:i}=e;return dy(Eu(et(et(et({},Yt),r),{},{ticks:fy(r),viewBox:{x:0,y:0,width:n,height:a}})),i.top,i.top+i.height,t)},AD={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:Ze.grid};function tx(e){var t=Dc(),r=Rc(),n=gy(),a=et(et({},Ke(e,AD)),{},{x:ee(e.x)?e.x:n.left,y:ee(e.y)?e.y:n.top,width:ee(e.width)?e.width:n.width,height:ee(e.height)?e.height:n.height}),{xAxisId:i,yAxisId:o,x:l,y:c,width:d,height:u,syncWithTicks:m,horizontalValues:h,verticalValues:v}=a,p=dt(),b=Z(N=>Lm(N,"xAxis",i,p)),y=Z(N=>Lm(N,"yAxis",o,p));if(!on(d)||!on(u)||!ee(l)||!ee(c))return null;var g=a.verticalCoordinatesGenerator||ND,j=a.horizontalCoordinatesGenerator||PD,{horizontalPoints:x,verticalPoints:C}=a;if((!x||!x.length)&&typeof j=="function"){var w=h&&h.length,P=j({yAxis:y?et(et({},y),{},{ticks:w?h:y.ticks}):void 0,width:t??d,height:r??u,offset:n},w?!0:m);kf(Array.isArray(P),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof P,"]")),Array.isArray(P)&&(x=P)}if((!C||!C.length)&&typeof g=="function"){var A=v&&v.length,S=g({xAxis:b?et(et({},b),{},{ticks:A?v:b.ticks}):void 0,width:t??d,height:r??u,offset:n},A?!0:m);kf(Array.isArray(S),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof S,"]")),Array.isArray(S)&&(C=S)}return f.createElement(Tt,{zIndex:a.zIndex},f.createElement("g",{className:"recharts-cartesian-grid"},f.createElement(jD,{fill:a.fill,fillOpacity:a.fillOpacity,x:a.x,y:a.y,width:a.width,height:a.height,ry:a.ry}),f.createElement(kD,Ar({},a,{horizontalPoints:x})),f.createElement(SD,Ar({},a,{verticalPoints:C})),f.createElement(wD,Ar({},a,{offset:n,horizontalPoints:x,xAxis:b,yAxis:y})),f.createElement(CD,Ar({},a,{offset:n,verticalPoints:C,xAxis:b,yAxis:y}))))}tx.displayName="CartesianGrid";var OD={},rx=at({name:"errorBars",initialState:OD,reducers:{addErrorBar:(e,t)=>{var{itemId:r,errorBar:n}=t.payload;e[r]||(e[r]=[]),e[r].push(n)},replaceErrorBar:(e,t)=>{var{itemId:r,prev:n,next:a}=t.payload;e[r]&&(e[r]=e[r].map(i=>i.dataKey===n.dataKey&&i.direction===n.direction?a:i))},removeErrorBar:(e,t)=>{var{itemId:r,errorBar:n}=t.payload;e[r]&&(e[r]=e[r].filter(a=>a.dataKey!==n.dataKey||a.direction!==n.direction))}}}),{addErrorBar:MB,replaceErrorBar:IB,removeErrorBar:DB}=rx.actions,ED=rx.reducer,_D=["children"];function TD(e,t){if(e==null)return{};var r,n,a=MD(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function MD(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var ID={data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0},DD=f.createContext(ID);function RD(e){var{children:t}=e,r=TD(e,_D);return f.createElement(DD.Provider,{value:r},t)}function nx(e,t){var r,n,a=Z(d=>nr(d,e)),i=Z(d=>ar(d,t)),o=(r=a?.allowDataOverflow)!==null&&r!==void 0?r:$e.allowDataOverflow,l=(n=i?.allowDataOverflow)!==null&&n!==void 0?n:Fe.allowDataOverflow,c=o||l;return{needClip:c,needClipX:o,needClipY:l}}function LD(e){var{xAxisId:t,yAxisId:r,clipPathId:n}=e,a=Ou(),{needClipX:i,needClipY:o,needClip:l}=nx(t,r);if(!l||!a)return null;var{x:c,y:d,width:u,height:m}=a;return f.createElement("clipPath",{id:"clipPath-".concat(n)},f.createElement("rect",{x:i?c:c-u/2,y:o?d:d-m/2,width:i?u:u*2,height:o?m:m*2}))}var ax=(e,t,r,n)=>Fg(e,"xAxis",t,n),ix=(e,t,r,n)=>$g(e,"xAxis",t,n),sx=(e,t,r,n)=>Fg(e,"yAxis",r,n),ox=(e,t,r,n)=>$g(e,"yAxis",r,n),$D=_([xe,ax,sx,ix,ox],(e,t,r,n,a)=>er(e,"xAxis")?si(t,n,!1):si(r,a,!1)),FD=(e,t,r,n,a)=>a;function BD(e){return e.type==="line"}var zD=_([pg,FD],(e,t)=>e.filter(BD).find(r=>r.id===t)),KD=_([xe,ax,sx,ix,ox,zD,$D,ca],(e,t,r,n,a,i,o,l)=>{var{chartData:c,dataStartIndex:d,dataEndIndex:u}=l;if(!(i==null||t==null||r==null||n==null||a==null||n.length===0||a.length===0||o==null||e!=="horizontal"&&e!=="vertical")){var{dataKey:m,data:h}=i,v;if(h!=null&&h.length>0?v=h:v=c?.slice(d,u+1),v!=null)return cR({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:a,dataKey:m,bandSize:o,displayedData:v})}});function VD(e){var t=an(e),r=3,n=2;if(t!=null){var{r:a,strokeWidth:i}=t,o=Number(a),l=Number(i);return(Number.isNaN(o)||o<0)&&(o=r),(Number.isNaN(l)||l<0)&&(l=n),{r:o,strokeWidth:l}}return{r,strokeWidth:n}}var UD=["id"],qD=["type","layout","connectNulls","needClip","shape"],WD=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function Qn(){return Qn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Qn.apply(null,arguments)}function Vv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Lt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Vv(Object(r),!0).forEach(function(n){HD(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Vv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function HD(e,t,r){return(t=GD(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function GD(e){var t=XD(e,"string");return typeof t=="symbol"?t:t+""}function XD(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Tu(e,t){if(e==null)return{};var r,n,a=YD(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function YD(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var ZD=e=>{var{dataKey:t,name:r,stroke:n,legendType:a,hide:i}=e;return[{inactive:i,dataKey:t,type:a,color:n,value:Zi(r,t),payload:e}]},JD=f.memo(e=>{var{dataKey:t,data:r,stroke:n,strokeWidth:a,fill:i,name:o,hide:l,unit:c,tooltipType:d,id:u}=e,m={dataDefinedOnItem:r,getPosition:ta,settings:{stroke:n,strokeWidth:a,fill:i,dataKey:t,nameKey:void 0,name:Zi(o,t),hide:l,type:d,color:n,unit:c,graphicalItemId:u}};return f.createElement(Ub,{tooltipEntrySettings:m})}),lx=(e,t)=>"".concat(t,"px ").concat(e,"px");function QD(e,t){for(var r=e.length%2!==0?[...e,0]:e,n=[],a=0;a<t;++a)n.push(...r);return n}var eR=(e,t,r)=>{var n=r.reduce((h,v)=>h+v,0);if(!n)return lx(t,e);for(var a=Math.floor(e/n),i=e%n,o=[],l=0,c=0;l<r.length;c+=(d=r[l])!==null&&d!==void 0?d:0,++l){var d,u=r[l];if(u!=null&&c+u>i){o=[...r.slice(0,l),i-c];break}}var m=o.length%2===0?[0,t]:[t];return[...QD(r,a),...o,...m].map(h=>"".concat(h,"px")).join(", ")};function tR(e){var{clipPathId:t,points:r,props:n}=e,{dot:a,dataKey:i,needClip:o}=n,{id:l}=n,c=Tu(n,UD),d=kt(c);return f.createElement(uI,{points:r,dot:a,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:i,baseProps:d,needClip:o,clipPathId:t})}function rR(e){var{showLabels:t,children:r,points:n}=e,a=f.useMemo(()=>n?.map(i=>{var o,l,c={x:(o=i.x)!==null&&o!==void 0?o:0,y:(l=i.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Lt(Lt({},c),{},{value:i.value,payload:i.payload,viewBox:c,parentViewBox:void 0,fill:void 0})}),[n]);return f.createElement(wT,{value:t?a:void 0},r)}function Uv(e){var{clipPathId:t,pathRef:r,points:n,strokeDasharray:a,props:i}=e,{type:o,layout:l,connectNulls:c,needClip:d,shape:u}=i,m=Tu(i,qD),h=Lt(Lt({},st(m)),{},{fill:"none",className:"recharts-line-curve",clipPath:d?"url(#clipPath-".concat(t,")"):void 0,points:n,type:o,layout:l,connectNulls:c,strokeDasharray:a??i.strokeDasharray});return f.createElement(f.Fragment,null,n?.length>1&&f.createElement(Vb,Qn({shapeType:"curve",option:u},h,{pathRef:r})),f.createElement(tR,{points:n,clipPathId:t,props:i}))}function nR(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function aR(e){var{clipPathId:t,props:r,pathRef:n,previousPointsRef:a,longestAnimatedLengthRef:i}=e,{points:o,strokeDasharray:l,isAnimationActive:c,animationBegin:d,animationDuration:u,animationEasing:m,animateNewValues:h,width:v,height:p,onAnimationEnd:b,onAnimationStart:y}=r,g=a.current,j=os(o,"recharts-line-"),x=f.useRef(j),[C,w]=f.useState(!1),P=!C,A=f.useCallback(()=>{typeof b=="function"&&b(),w(!1)},[b]),S=f.useCallback(()=>{typeof y=="function"&&y(),w(!0)},[y]),N=nR(n.current),E=f.useRef(0);x.current!==j&&(E.current=i.current,x.current=j);var T=E.current;return f.createElement(rR,{points:o,showLabels:P},r.children,f.createElement(ss,{animationId:j,begin:d,duration:u,isActive:c,easing:m,onAnimationEnd:A,onAnimationStart:S,key:j},O=>{var I=tt(T,N+T,O),z=Math.min(I,N),D;if(c)if(l){var V="".concat(l).split(/[,\s]+/gim).map(K=>parseFloat(K));D=eR(z,N,V)}else D=lx(N,z);else D=l==null?void 0:String(l);if(O>0&&N>0&&(a.current=o,i.current=Math.max(i.current,z)),g){var B=g.length/o.length,W=O===1?o:o.map((K,te)=>{var G=Math.floor(te*B);if(g[G]){var M=g[G];return Lt(Lt({},K),{},{x:tt(M.x,K.x,O),y:tt(M.y,K.y,O)})}return h?Lt(Lt({},K),{},{x:tt(v*2,K.x,O),y:tt(p/2,K.y,O)}):Lt(Lt({},K),{},{x:K.x,y:K.y})});return a.current=W,f.createElement(Uv,{props:r,points:W,clipPathId:t,pathRef:n,strokeDasharray:D})}return f.createElement(Uv,{props:r,points:o,clipPathId:t,pathRef:n,strokeDasharray:D})}),f.createElement(Mb,{label:r.label}))}function iR(e){var{clipPathId:t,props:r}=e,n=f.useRef(null),a=f.useRef(0),i=f.useRef(null);return f.createElement(aR,{props:r,clipPathId:t,previousPointsRef:n,longestAnimatedLengthRef:a,pathRef:i})}var sR=(e,t)=>{var r,n;return{x:(r=e.x)!==null&&r!==void 0?r:void 0,y:(n=e.y)!==null&&n!==void 0?n:void 0,value:e.value,errorVal:ge(e.payload,t)}};class oR extends f.Component{render(){var{hide:t,dot:r,points:n,className:a,xAxisId:i,yAxisId:o,top:l,left:c,width:d,height:u,id:m,needClip:h,zIndex:v}=this.props;if(t)return null;var p=ve("recharts-line",a),b=m,{r:y,strokeWidth:g}=VD(r),j=Kb(r),x=y*2+g,C=h?"url(#clipPath-".concat(j?"":"dots-").concat(b,")"):void 0;return f.createElement(Tt,{zIndex:v},f.createElement(ot,{className:p},h&&f.createElement("defs",null,f.createElement(LD,{clipPathId:b,xAxisId:i,yAxisId:o}),!j&&f.createElement("clipPath",{id:"clipPath-dots-".concat(b)},f.createElement("rect",{x:c-x/2,y:l-x/2,width:d+x,height:u+x}))),f.createElement(RD,{xAxisId:i,yAxisId:o,data:n,dataPointFormatter:sR,errorBarOffset:0},f.createElement(iR,{props:this.props,clipPathId:b}))),f.createElement(EI,{activeDot:this.props.activeDot,points:n,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:C}))}}var cx={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:Ze.line,type:"linear"};function lR(e){var t=Ke(e,cx),{activeDot:r,animateNewValues:n,animationBegin:a,animationDuration:i,animationEasing:o,connectNulls:l,dot:c,hide:d,isAnimationActive:u,label:m,legendType:h,xAxisId:v,yAxisId:p,id:b}=t,y=Tu(t,WD),{needClip:g}=nx(v,p),j=Ou(),x=hn(),C=dt(),w=Z(E=>KD(E,v,p,C,b));if(x!=="horizontal"&&x!=="vertical"||w==null||j==null)return null;var{height:P,width:A,x:S,y:N}=j;return f.createElement(oR,Qn({},y,{id:b,connectNulls:l,dot:c,activeDot:r,animateNewValues:n,animationBegin:a,animationDuration:i,animationEasing:o,isAnimationActive:u,hide:d,label:m,legendType:h,xAxisId:v,yAxisId:p,points:w,layout:x,height:P,width:A,left:S,top:N,needClip:g}))}function cR(e){var{layout:t,xAxis:r,yAxis:n,xAxisTicks:a,yAxisTicks:i,dataKey:o,bandSize:l,displayedData:c}=e;return c.map((d,u)=>{var m=ge(d,o);if(t==="horizontal"){var h=bf({axis:r,ticks:a,bandSize:l,entry:d,index:u}),v=ze(m)?null:n.scale.map(m);return{x:h,y:v??null,value:m,payload:d}}var p=ze(m)?null:r.scale.map(m),b=bf({axis:n,ticks:i,bandSize:l,entry:d,index:u});return p==null||b==null?null:{x:p,y:b,value:m,payload:d}}).filter(Boolean)}function uR(e){var t=Ke(e,cx),r=dt();return f.createElement(qb,{id:t.id,type:"line"},n=>f.createElement(f.Fragment,null,f.createElement(fM,{legendPayload:ZD(t)}),f.createElement(JD,{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:n}),f.createElement(PM,{type:"line",id:n,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:r}),f.createElement(lR,Qn({},t,{id:n}))))}var ux=f.memo(uR,oa);ux.displayName="Line";var dR=["domain","range"],fR=["domain","range"];function qv(e,t){if(e==null)return{};var r,n,a=mR(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function mR(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Wv(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 dx(e,t){if(e===t)return!0;var{domain:r,range:n}=e,a=qv(e,dR),{domain:i,range:o}=t,l=qv(t,fR);return!Wv(r,i)||!Wv(n,o)?!1:oa(a,l)}var vR=["type"],hR=["dangerouslySetInnerHTML","ticks","scale"],pR=["id","scale"];function zl(){return zl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},zl.apply(null,arguments)}function Hv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Gv(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Hv(Object(r),!0).forEach(function(n){yR(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Hv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function yR(e,t,r){return(t=gR(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function gR(e){var t=bR(e,"string");return typeof t=="symbol"?t:t+""}function bR(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Kl(e,t){if(e==null)return{};var r,n,a=xR(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function xR(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function jR(e){var t=pe(),r=f.useRef(null),n=by(),{type:a}=e,i=Kl(e,vR),o=us(n,"xAxis",a),l=f.useMemo(()=>{if(o!=null)return Gv(Gv({},i),{},{type:o})},[i,o]);return f.useLayoutEffect(()=>{l!=null&&(r.current===null?t(hI(l)):r.current!==l&&t(pI({prev:r.current,next:l})),r.current=l)},[l,t]),f.useLayoutEffect(()=>()=>{r.current&&(t(yI(r.current)),r.current=null)},[t]),null}var wR=e=>{var{xAxisId:t,className:r}=e,n=Z(py),a=dt(),i="xAxis",o=Z(g=>Lg(g,i,t,a)),l=Z(g=>VO(g,t)),c=Z(g=>XO(g,t)),d=Z(g=>mg(g,t));if(l==null||c==null||d==null)return null;var{dangerouslySetInnerHTML:u,ticks:m,scale:h}=e,v=Kl(e,hR),{id:p,scale:b}=d,y=Kl(d,pR);return f.createElement(_u,zl({},v,y,{x:c.x,y:c.y,width:l.width,height:l.height,className:ve("recharts-".concat(i," ").concat(i),r),viewBox:n,ticks:o,axisType:i,axisId:t}))},CR={allowDataOverflow:$e.allowDataOverflow,allowDecimals:$e.allowDecimals,allowDuplicatedCategory:$e.allowDuplicatedCategory,angle:$e.angle,axisLine:Yt.axisLine,height:$e.height,hide:!1,includeHidden:$e.includeHidden,interval:$e.interval,label:!1,minTickGap:$e.minTickGap,mirror:$e.mirror,orientation:$e.orientation,padding:$e.padding,reversed:$e.reversed,scale:$e.scale,tick:$e.tick,tickCount:$e.tickCount,tickLine:Yt.tickLine,tickSize:Yt.tickSize,type:$e.type,niceTicks:$e.niceTicks,xAxisId:0},kR=e=>{var t=Ke(e,CR);return f.createElement(f.Fragment,null,f.createElement(jR,{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,niceTicks:t.niceTicks}),f.createElement(wR,t))},fx=f.memo(kR,dx);fx.displayName="XAxis";var SR=["type"],NR=["dangerouslySetInnerHTML","ticks","scale"],PR=["id","scale"];function Vl(){return Vl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Vl.apply(null,arguments)}function Xv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Yv(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Xv(Object(r),!0).forEach(function(n){AR(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xv(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function AR(e,t,r){return(t=OR(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function OR(e){var t=ER(e,"string");return typeof t=="symbol"?t:t+""}function ER(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ul(e,t){if(e==null)return{};var r,n,a=_R(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function _R(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function TR(e){var t=pe(),r=f.useRef(null),n=by(),{type:a}=e,i=Ul(e,SR),o=us(n,"yAxis",a),l=f.useMemo(()=>{if(o!=null)return Yv(Yv({},i),{},{type:o})},[o,i]);return f.useLayoutEffect(()=>{l!=null&&(r.current===null?t(gI(l)):r.current!==l&&t(bI({prev:r.current,next:l})),r.current=l)},[l,t]),f.useLayoutEffect(()=>()=>{r.current&&(t(xI(r.current)),r.current=null)},[t]),null}function MR(e){var{yAxisId:t,className:r,width:n,label:a}=e,i=f.useRef(null),o=f.useRef(null),l=Z(py),c=dt(),d=pe(),u="yAxis",m=Z(P=>JO(P,t)),h=Z(P=>ZO(P,t)),v=Z(P=>Lg(P,u,t,c)),p=Z(P=>vg(P,t));if(f.useLayoutEffect(()=>{if(!(n!=="auto"||!m||Nu(a)||f.isValidElement(a)||p==null)){var P=i.current;if(P){var A=P.getCalculatedWidth();Math.round(m.width)!==Math.round(A)&&d(jI({id:t,width:A}))}}},[v,m,d,a,t,n,p]),m==null||h==null||p==null)return null;var{dangerouslySetInnerHTML:b,ticks:y,scale:g}=e,j=Ul(e,NR),{id:x,scale:C}=p,w=Ul(p,PR);return f.createElement(_u,Vl({},j,w,{ref:i,labelRef:o,x:h.x,y:h.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:m.width,height:m.height,className:ve("recharts-".concat(u," ").concat(u),r),viewBox:l,ticks:v,axisType:u,axisId:t}))}var IR={allowDataOverflow:Fe.allowDataOverflow,allowDecimals:Fe.allowDecimals,allowDuplicatedCategory:Fe.allowDuplicatedCategory,angle:Fe.angle,axisLine:Yt.axisLine,hide:!1,includeHidden:Fe.includeHidden,interval:Fe.interval,label:!1,minTickGap:Fe.minTickGap,mirror:Fe.mirror,orientation:Fe.orientation,padding:Fe.padding,reversed:Fe.reversed,scale:Fe.scale,tick:Fe.tick,tickCount:Fe.tickCount,tickLine:Yt.tickLine,tickSize:Yt.tickSize,type:Fe.type,niceTicks:Fe.niceTicks,width:Fe.width,yAxisId:0},DR=e=>{var t=Ke(e,IR);return f.createElement(f.Fragment,null,f.createElement(TR,{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,niceTicks:t.niceTicks}),f.createElement(MR,t))},mx=f.memo(DR,dx);mx.displayName="YAxis";var RR=(e,t)=>t,Mu=_([RR,xe,sg,We,nb,ir,x1,qe],P1);function LR(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Iu(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(LR(e)){var a=e.currentTarget.getBBox();r=a.width>0?t.width/a.width:1,n=a.height>0?t.height/a.height:1}else{var i=e.currentTarget;r=i.offsetWidth>0?t.width/i.offsetWidth:1,n=i.offsetHeight>0?t.height/i.offsetHeight:1}var o=(l,c)=>({relativeX:Math.round((l-t.left)/r),relativeY:Math.round((c-t.top)/n)});return"touches"in e?Array.from(e.touches).map(l=>o(l.clientX,l.clientY)):o(e.clientX,e.clientY)}var vx=yt("mouseClick"),hx=na();hx.startListening({actionCreator:vx,effect:(e,t)=>{var r=e.payload,n=Mu(t.getState(),Iu(r));n?.activeIndex!=null&&t.dispatch(vE({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var ql=yt("mouseMove"),px=na(),Hr=null,jr=null,qo=null;px.startListening({actionCreator:ql,effect:(e,t)=>{var r=e.payload,n=t.getState(),{throttleDelay:a,throttledEvents:i}=n.eventSettings,o=i==="all"||i?.includes("mousemove");Hr!==null&&(cancelAnimationFrame(Hr),Hr=null),jr!==null&&(typeof a!="number"||!o)&&(clearTimeout(jr),jr=null),qo=Iu(r);var l=()=>{var c=t.getState(),d=va(c,c.tooltip.settings.shared);if(!qo){Hr=null,jr=null;return}if(d==="axis"){var u=Mu(c,qo);u?.activeIndex!=null?t.dispatch(Hg({activeIndex:u.activeIndex,activeDataKey:void 0,activeCoordinate:u.activeCoordinate})):t.dispatch(Wg())}Hr=null,jr=null};if(!o){l();return}a==="raf"?Hr=requestAnimationFrame(l):typeof a=="number"&&jr===null&&(jr=setTimeout(l,a))}});function $R(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 Zv={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},yx=at({name:"rootProps",initialState:Zv,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:Zv.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}}}),FR=yx.reducer,{updateOptions:BR}=yx.actions,zR=null,KR={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},gx=at({name:"polarOptions",initialState:zR,reducers:KR}),{updatePolarOptions:VR}=gx.actions,UR=gx.reducer,bx=yt("keyDown"),xx=yt("focus"),jx=yt("blur"),Cs=na(),Gr=null,wr=null,Ea=null;Cs.startListening({actionCreator:bx,effect:(e,t)=>{Ea=e.payload,Gr!==null&&(cancelAnimationFrame(Gr),Gr=null);var r=t.getState(),{throttleDelay:n,throttledEvents:a}=r.eventSettings,i=a==="all"||a.includes("keydown");wr!==null&&(typeof n!="number"||!i)&&(clearTimeout(wr),wr=null);var o=()=>{try{var l=t.getState(),c=l.rootProps.accessibilityLayer!==!1;if(!c)return;var{keyboardInteraction:d}=l.tooltip,u=Ea;if(u!=="ArrowRight"&&u!=="ArrowLeft"&&u!=="Enter")return;var m=Fn(d,$r(l),un(l),dn(l)),h=m==null?-1:Number(m),v=!Number.isFinite(h)||h<0,p=ir(l),b=$r(l),y=va(l,l.tooltip.settings.shared);if(u==="Enter"){if(v)return;var g=xi(l,y,"hover",String(d.index));t.dispatch(bi({active:!d.active,activeIndex:d.index,activeCoordinate:g}));return}var j=nE(l),x=j==="left-to-right"?1:-1,C=u==="ArrowRight"?1:-1,w;if(v){var P=un(l),A=dn(l),S=C*x,N=z=>({active:!1,index:String(z),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(w=-1,S>0){for(var E=0;E<b.length;E++)if(Fn(N(E),b,P,A)!=null){w=E;break}}else for(var T=b.length-1;T>=0;T--)if(Fn(N(T),b,P,A)!=null){w=T;break}if(w<0)return}else{w=h+C*x;var O=p?.length||b.length;if(O===0||w>=O||w<0)return}var I=xi(l,y,"hover",String(w));t.dispatch(bi({active:!0,activeIndex:w.toString(),activeCoordinate:I}))}finally{Gr=null,wr=null}};if(!i){o();return}n==="raf"?Gr=requestAnimationFrame(o):typeof n=="number"&&wr===null&&(o(),Ea=null,wr=setTimeout(()=>{Ea?o():(wr=null,Gr=null)},n))}});Cs.startListening({actionCreator:xx,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var{keyboardInteraction:a}=r.tooltip;if(!a.active&&a.index==null){var i="0",o=va(r,r.tooltip.settings.shared),l=xi(r,o,"hover",String(i));t.dispatch(bi({active:!0,activeIndex:i,activeCoordinate:l}))}}}});Cs.startListening({actionCreator:jx,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var{keyboardInteraction:a}=r.tooltip;a.active&&t.dispatch(bi({active:!1,activeIndex:a.index,activeCoordinate:a.coordinate}))}}});function wx(e){e.persist();var{currentTarget:t}=e;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var a=Reflect.get(r,n);return typeof a=="function"?a.bind(r):a}})}var jt=yt("externalEvent"),Cx=na(),_a=new Map,En=new Map,Wo=new Map;Cx.startListening({actionCreator:jt,effect:(e,t)=>{var{handler:r,reactEvent:n}=e.payload;if(r!=null){var a=n.type,i=wx(n);Wo.set(a,{handler:r,reactEvent:i});var o=_a.get(a);o!==void 0&&(cancelAnimationFrame(o),_a.delete(a));var l=t.getState(),{throttleDelay:c,throttledEvents:d}=l.eventSettings,u=d,m=u==="all"||u?.includes(a),h=En.get(a);h!==void 0&&(typeof c!="number"||!m)&&(clearTimeout(h),En.delete(a));var v=()=>{var y=Wo.get(a);try{if(!y)return;var{handler:g,reactEvent:j}=y,x=t.getState(),C={activeCoordinate:a1(x),activeDataKey:ob(x),activeIndex:fn(x),activeLabel:sb(x),activeTooltipIndex:fn(x),isTooltipActive:i1(x)};g&&g(C,j)}finally{_a.delete(a),En.delete(a),Wo.delete(a)}};if(!m){v();return}if(c==="raf"){var p=requestAnimationFrame(v);_a.set(a,p)}else if(typeof c=="number"){if(!En.has(a)){v();var b=setTimeout(v,c);En.set(a,b)}}else v()}}});var qR=_([wn],e=>e.tooltipItemPayloads),WR=_([qR,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(i=>i.settings.graphicalItemId===r);if(n!=null){var{getPosition:a}=n;if(a!=null)return a(t)}}}),kx=yt("touchMove"),Sx=na(),Cr=null,or=null,Jv=null,_n=null;Sx.startListening({actionCreator:kx,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){_n=wx(r);var n=t.getState(),{throttleDelay:a,throttledEvents:i}=n.eventSettings,o=i==="all"||i.includes("touchmove");Cr!==null&&(cancelAnimationFrame(Cr),Cr=null),or!==null&&(typeof a!="number"||!o)&&(clearTimeout(or),or=null),Jv=Array.from(r.touches).map(c=>Iu({clientX:c.clientX,clientY:c.clientY,currentTarget:r.currentTarget}));var l=()=>{if(_n!=null){var c=t.getState(),d=va(c,c.tooltip.settings.shared);if(d==="axis"){var u,m=(u=Jv)===null||u===void 0?void 0:u[0];if(m==null){Cr=null,or=null;return}var h=Mu(c,m);h?.activeIndex!=null&&t.dispatch(Hg({activeIndex:h.activeIndex,activeDataKey:void 0,activeCoordinate:h.activeCoordinate}))}else if(d==="item"){var v,p=_n.touches[0];if(document.elementFromPoint==null||p==null)return;var b=document.elementFromPoint(p.clientX,p.clientY);if(!b||!b.getAttribute)return;var y=b.getAttribute(vy),g=(v=b.getAttribute(hy))!==null&&v!==void 0?v:void 0,j=zr(c).find(w=>w.id===g);if(y==null||j==null||g==null)return;var{dataKey:x}=j,C=WR(c,y,g);t.dispatch(qg({activeDataKey:x,activeIndex:y,activeCoordinate:C,activeGraphicalItemId:g}))}Cr=null,or=null}};if(!o){l();return}a==="raf"?Cr=requestAnimationFrame(l):typeof a=="number"&&or===null&&(l(),_n=null,or=setTimeout(()=>{_n?l():(or=null,Cr=null)},a))}}});var Du={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},Nx=at({name:"eventSettings",initialState:Du,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=t.payload.throttledEvents)}}}),{setEventSettings:HR}=Nx.actions,GR=Nx.reducer,XR=Rp({brush:_I,cartesianAxis:wI,chartData:n_,errorBars:ED,eventSettings:GR,graphicalItems:SM,layout:FS,legend:AN,options:J1,polarAxis:IT,polarOptions:UR,referenceElements:DI,renderedTicks:JI,rootProps:FR,tooltip:hE,zIndex:B1}),YR=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return uS({reducer:XR,preloadedState:t,middleware:n=>{var a;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((a="es6")!==null&&a!==void 0?a:"")}).concat([hx.middleware,px.middleware,Cs.middleware,Cx.middleware,Sx.middleware])},enhancers:n=>{var a=n;return typeof n=="function"&&(a=n()),a.concat(Zp({type:"raf"}))},devTools:{serialize:{replacer:$R},name:"recharts-".concat(r)}})};function Px(e){var{preloadedState:t,children:r,reduxStoreName:n}=e,a=dt(),i=f.useRef(null);if(a)return r;i.current==null&&(i.current=YR(t,n));var o=Pc;return f.createElement(WN,{context:o,store:i.current},r)}function ZR(e){var{layout:t,margin:r}=e,n=pe(),a=dt();return f.useEffect(()=>{a||(n(RS(t)),n(DS(r)))},[n,a,t,r]),null}var Ax=f.memo(ZR,oa);function Ox(e){var t=pe();return f.useEffect(()=>{t(BR(e))},[t,e]),null}var JR=e=>{var t=pe();return f.useEffect(()=>{t(HR(e))},[t,e]),null},Ex=f.memo(JR,oa);function Qv(e){var{zIndex:t,isPanorama:r}=e,n=f.useRef(null),a=pe();return f.useLayoutEffect(()=>(n.current&&a($1({zIndex:t,element:n.current,isPanorama:r})),()=>{a(F1({zIndex:t,isPanorama:r}))}),[a,t,r]),f.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function eh(e){var{children:t,isPanorama:r}=e,n=Z(O1);if(!n||n.length===0)return t;var a=n.filter(o=>o<0),i=n.filter(o=>o>0);return f.createElement(f.Fragment,null,a.map(o=>f.createElement(Qv,{key:o,zIndex:o,isPanorama:r})),t,i.map(o=>f.createElement(Qv,{key:o,zIndex:o,isPanorama:r})))}var QR=["children"];function eL(e,t){if(e==null)return{};var r,n,a=tL(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function tL(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Ni(){return Ni=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ni.apply(null,arguments)}var rL={width:"100%",height:"100%",display:"block"},nL=f.forwardRef((e,t)=>{var r=Dc(),n=Rc(),a=Ty();if(!on(r)||!on(n))return null;var{children:i,otherAttributes:o,title:l,desc:c}=e,d,u;return o!=null&&(typeof o.tabIndex=="number"?d=o.tabIndex:d=a?0:void 0,typeof o.role=="string"?u=o.role:u=a?"application":void 0),f.createElement(bc,Ni({},o,{title:l,desc:c,role:u,tabIndex:d,width:r,height:n,style:rL,ref:t}),i)}),aL=e=>{var{children:t}=e,r=Z(ts);if(!r)return null;var{width:n,height:a,y:i,x:o}=r;return f.createElement(bc,{width:n,height:a,x:o,y:i},t)},th=f.forwardRef((e,t)=>{var{children:r}=e,n=eL(e,QR),a=dt();return a?f.createElement(aL,null,f.createElement(eh,{isPanorama:!0},r)):f.createElement(nL,Ni({ref:t},n),f.createElement(eh,{isPanorama:!1},r))});function iL(){var e=pe(),[t,r]=f.useState(null),n=Z(QS);return f.useEffect(()=>{if(t!=null){var a=t.getBoundingClientRect(),i=a.width/t.offsetWidth;me(i)&&i!==n&&e($S(i))}},[t,e,n]),r}function rh(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function sL(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?rh(Object(r),!0).forEach(function(n){oL(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):rh(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function oL(e,t,r){return(t=lL(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function lL(e){var t=cL(e,"string");return typeof t=="symbol"?t:t+""}function cL(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function vr(){return vr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},vr.apply(null,arguments)}var uL=()=>(f_(),null);function Pi(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var dL=f.forwardRef((e,t)=>{var r,n,a=f.useRef(null),[i,o]=f.useState({containerWidth:Pi((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:Pi((n=e.style)===null||n===void 0?void 0:n.height)}),l=f.useCallback((d,u)=>{o(m=>{var h=Math.round(d),v=Math.round(u);return m.containerWidth===h&&m.containerHeight===v?m:{containerWidth:h,containerHeight:v}})},[]),c=f.useCallback(d=>{if(typeof t=="function"&&t(d),a.current!=null&&(a.current.disconnect(),a.current=null),d!=null&&typeof ResizeObserver<"u"){var{width:u,height:m}=d.getBoundingClientRect();l(u,m);var h=p=>{var b=p[0];if(b!=null){var{width:y,height:g}=b.contentRect;l(y,g)}},v=new ResizeObserver(h);v.observe(d),a.current=v}},[t,l]);return f.useEffect(()=>()=>{var d=a.current;d?.disconnect()},[l]),f.createElement(f.Fragment,null,f.createElement(ia,{width:i.containerWidth,height:i.containerHeight}),f.createElement("div",vr({ref:c},e)))}),fL=f.forwardRef((e,t)=>{var{width:r,height:n}=e,[a,i]=f.useState({containerWidth:Pi(r),containerHeight:Pi(n)}),o=f.useCallback((c,d)=>{i(u=>{var m=Math.round(c),h=Math.round(d);return u.containerWidth===m&&u.containerHeight===h?u:{containerWidth:m,containerHeight:h}})},[]),l=f.useCallback(c=>{if(typeof t=="function"&&t(c),c!=null){var{width:d,height:u}=c.getBoundingClientRect();o(d,u)}},[t,o]);return f.createElement(f.Fragment,null,f.createElement(ia,{width:a.containerWidth,height:a.containerHeight}),f.createElement("div",vr({ref:l},e)))}),mL=f.forwardRef((e,t)=>{var{width:r,height:n}=e;return f.createElement(f.Fragment,null,f.createElement(ia,{width:r,height:n}),f.createElement("div",vr({ref:t},e)))}),vL=f.forwardRef((e,t)=>{var{width:r,height:n}=e;return typeof r=="string"||typeof n=="string"?f.createElement(fL,vr({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?f.createElement(mL,vr({},e,{width:r,height:n,ref:t})):f.createElement(f.Fragment,null,f.createElement(ia,{width:r,height:n}),f.createElement("div",vr({ref:t},e)))});function hL(e){return e?dL:vL}var pL=f.forwardRef((e,t)=>{var{children:r,className:n,height:a,onClick:i,onContextMenu:o,onDoubleClick:l,onMouseDown:c,onMouseEnter:d,onMouseLeave:u,onMouseMove:m,onMouseUp:h,onTouchEnd:v,onTouchMove:p,onTouchStart:b,style:y,width:g,responsive:j,dispatchTouchEvents:x=!0}=e,C=f.useRef(null),w=pe(),[P,A]=f.useState(null),[S,N]=f.useState(null),E=iL(),T=yy(),O=T?.width>0?T.width:g,I=T?.height>0?T.height:a,z=f.useCallback(J=>{E(J),typeof t=="function"&&t(J),A(J),N(J),J!=null&&(C.current=J)},[E,t,A,N]),D=f.useCallback(J=>{w(vx(J)),w(jt({handler:i,reactEvent:J}))},[w,i]),V=f.useCallback(J=>{w(ql(J)),w(jt({handler:d,reactEvent:J}))},[w,d]),B=f.useCallback(J=>{w(Wg()),w(jt({handler:u,reactEvent:J}))},[w,u]),W=f.useCallback(J=>{w(ql(J)),w(jt({handler:m,reactEvent:J}))},[w,m]),K=f.useCallback(()=>{w(xx())},[w]),te=f.useCallback(()=>{w(jx())},[w]),G=f.useCallback(J=>{w(bx(J.key))},[w]),M=f.useCallback(J=>{w(jt({handler:o,reactEvent:J}))},[w,o]),q=f.useCallback(J=>{w(jt({handler:l,reactEvent:J}))},[w,l]),H=f.useCallback(J=>{w(jt({handler:c,reactEvent:J}))},[w,c]),re=f.useCallback(J=>{w(jt({handler:h,reactEvent:J}))},[w,h]),ae=f.useCallback(J=>{w(jt({handler:b,reactEvent:J}))},[w,b]),ye=f.useCallback(J=>{x&&w(kx(J)),w(jt({handler:p,reactEvent:J}))},[w,x,p]),oe=f.useCallback(J=>{w(jt({handler:v,reactEvent:J}))},[w,v]),He=hL(j);return f.createElement(hb.Provider,{value:P},f.createElement(mp.Provider,{value:S},f.createElement(He,{width:O??y?.width,height:I??y?.height,className:ve("recharts-wrapper",n),style:sL({position:"relative",cursor:"default",width:O,height:I},y),onClick:D,onContextMenu:M,onDoubleClick:q,onFocus:K,onBlur:te,onKeyDown:G,onMouseDown:H,onMouseEnter:V,onMouseLeave:B,onMouseMove:W,onMouseUp:re,onTouchEnd:oe,onTouchMove:ye,onTouchStart:ae,ref:z},f.createElement(uL,null),r)))}),yL=["width","height","responsive","children","className","style","compact","title","desc"];function gL(e,t){if(e==null)return{};var r,n,a=bL(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function bL(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var _x=f.forwardRef((e,t)=>{var{width:r,height:n,responsive:a,children:i,className:o,style:l,compact:c,title:d,desc:u}=e,m=gL(e,yL),h=kt(m);return c?f.createElement(f.Fragment,null,f.createElement(ia,{width:r,height:n}),f.createElement(th,{otherAttributes:h,title:d,desc:u},i)):f.createElement(pL,{className:o,style:l,width:r,height:n,responsive:a??!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},f.createElement(th,{otherAttributes:h,title:d,desc:u,ref:t},f.createElement(LI,null,i)))});function Wl(){return Wl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Wl.apply(null,arguments)}function nh(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function xL(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?nh(Object(r),!0).forEach(function(n){jL(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):nh(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function jL(e,t,r){return(t=wL(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function wL(e){var t=CL(e,"string");return typeof t=="symbol"?t:t+""}function CL(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var kL={top:5,right:5,bottom:5,left:5},SL=xL({accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:kL,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},Du),NL=f.forwardRef(function(t,r){var n,a=Ke(t.categoricalChartProps,SL),{chartName:i,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:c,categoricalChartProps:d}=t,u={chartName:i,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:c,eventEmitter:void 0};return f.createElement(Px,{preloadedState:{options:u},reduxStoreName:(n=d.id)!==null&&n!==void 0?n:i},f.createElement(Xb,{chartData:d.data}),f.createElement(Ax,{layout:a.layout,margin:a.margin}),f.createElement(Ex,{throttleDelay:a.throttleDelay,throttledEvents:a.throttledEvents}),f.createElement(Ox,{baseValue:a.baseValue,accessibilityLayer:a.accessibilityLayer,barCategoryGap:a.barCategoryGap,maxBarSize:a.maxBarSize,stackOffset:a.stackOffset,barGap:a.barGap,barSize:a.barSize,syncId:a.syncId,syncMethod:a.syncMethod,className:a.className,reverseStackOrder:a.reverseStackOrder}),f.createElement(_x,Wl({},a,{ref:r})))}),PL=["axis"],AL=f.forwardRef((e,t)=>f.createElement(NL,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:PL,tooltipPayloadSearcher:pb,categoricalChartProps:e,ref:t}));function OL(e){var t=pe();return f.useEffect(()=>{t(VR(e))},[t,e]),null}var EL=["layout"];function Hl(){return Hl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Hl.apply(null,arguments)}function _L(e,t){if(e==null)return{};var r,n,a=TL(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function TL(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function ah(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ML(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ah(Object(r),!0).forEach(function(n){IL(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ah(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function IL(e,t,r){return(t=DL(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function DL(e){var t=RL(e,"string");return typeof t=="symbol"?t:t+""}function RL(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var LL={top:5,right:5,bottom:5,left:5},Tx=ML({accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:LL,reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},Du),$L=f.forwardRef(function(t,r){var n,a=Ke(t.categoricalChartProps,Tx),{layout:i}=a,o=_L(a,EL),{chartName:l,defaultTooltipEventType:c,validateTooltipEventTypes:d,tooltipPayloadSearcher:u}=t,m={chartName:l,defaultTooltipEventType:c,validateTooltipEventTypes:d,tooltipPayloadSearcher:u,eventEmitter:void 0};return f.createElement(Px,{preloadedState:{options:m},reduxStoreName:(n=a.id)!==null&&n!==void 0?n:l},f.createElement(Xb,{chartData:a.data}),f.createElement(Ax,{layout:i,margin:a.margin}),f.createElement(Ex,{throttleDelay:a.throttleDelay,throttledEvents:a.throttledEvents}),f.createElement(Ox,{baseValue:void 0,accessibilityLayer:a.accessibilityLayer,barCategoryGap:a.barCategoryGap,maxBarSize:a.maxBarSize,stackOffset:a.stackOffset,barGap:a.barGap,barSize:a.barSize,syncId:a.syncId,syncMethod:a.syncMethod,className:a.className,reverseStackOrder:a.reverseStackOrder}),f.createElement(OL,{cx:a.cx,cy:a.cy,startAngle:a.startAngle,endAngle:a.endAngle,innerRadius:a.innerRadius,outerRadius:a.outerRadius}),f.createElement(_x,Hl({},o,{ref:r})))});function ih(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function sh(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ih(Object(r),!0).forEach(function(n){FL(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ih(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function FL(e,t,r){return(t=BL(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function BL(e){var t=zL(e,"string");return typeof t=="symbol"?t:t+""}function zL(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var KL=["item"],VL=sh(sh({},Tx),{},{layout:"centric",startAngle:0,endAngle:360}),UL=f.forwardRef((e,t)=>{var r=Ke(e,VL);return f.createElement($L,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:KL,tooltipPayloadSearcher:pb,categoricalChartProps:r,ref:t})});const Ai="currentColor",qL=["--accent","--todo","--in-progress","--in-review","--triage","--color-success","--color-warning","--color-error"];function kr(e,t=Ai){if(typeof document>"u"||typeof getComputedStyle!="function")return t;const r=getComputedStyle(document.documentElement).getPropertyValue(e).trim();return r.length>0?r:t}function Ru(){const e=kr("--text"),t=kr("--text-muted",e),r=kr("--accent"),n=kr("--surface-1",""),a=kr("--surface-2",n),i=kr("--border-subtle",""),o=qL.map(l=>kr(l)).filter(l=>l.length>0);return{stroke:r,fill:a,grid:i,tick:t,tooltipBackground:n,tooltipBorder:i,tooltipText:e,legendText:t,palette:o.length>0?o:[Ai]}}function Mx(e,t=Ru()){if(t.palette.length===0)return Ai;const r=Number.isFinite(e)&&e>=0?Math.floor(e):0;return t.palette[r%t.palette.length]??Ai}const WL={width:320,height:220},Ix=120,Dx=120;function HL(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function GL(e){return e.map(t=>({label:t.label,value:Number.isFinite(t.value)&&t.value>0?t.value:0})).filter(t=>t.value>0)}function oh(e,t){return e!==void 0||t!==void 0?{width:e,height:t}:void 0}function lh(e){return typeof e=="number"||typeof e=="string"&&/^\d+(?:\.\d+)?%$/.test(e)?e:"100%"}function Oi(e,t){return Number.isFinite(e)&&e>=t?e:null}function XL(e,t,r){return{width:typeof t=="number"&&t>0?t:e.width,height:typeof r=="number"&&r>0?r:e.height}}function YL(e,t){return Math.abs(e.width-t.width)<.5&&Math.abs(e.height-t.height)<.5}function ZL(e){const t=e.getBoundingClientRect(),r=Oi(t.width,Ix),n=Oi(t.height,Dx);return r===null||n===null?null:{width:r,height:n}}function JL(){const e=f.useRef(null),[t,r]=f.useState(WL);return f.useLayoutEffect(()=>{const n=e.current;if(!n)return;const a=o=>{o&&r(l=>YL(l,o)?l:o)};if(a(ZL(n)),typeof ResizeObserver>"u")return;const i=new ResizeObserver(o=>{const l=o[0];if(!l)return;const c=Oi(l.contentRect.width,Ix),d=Oi(l.contentRect.height,Dx);a(c===null||d===null?null:{width:c,height:d})});return i.observe(n),()=>i.disconnect()},[]),{ref:e,dimensions:t}}function Mt({data:e,ariaLabel:t,width:r,height:n,emptyLabel:a="No chart data"}){const i=Ru(),{ref:o,dimensions:l}=JL(),c=XL(l,r,n),d=GL(e);return d.length===0?s.jsx("div",{className:"cc-recharts-empty",role:"img","aria-label":t,style:oh(r,n),children:a}):s.jsx("div",{ref:o,className:"cc-recharts-chart",role:"img","aria-label":t,style:oh(r,n),"data-responsive-width":lh(r),"data-responsive-height":lh(n),children:s.jsxs(UL,{width:c.width,height:c.height,children:[s.jsx(Hb,{data:d,dataKey:"value",nameKey:"label",isAnimationActive:!HL(),children:d.map((u,m)=>s.jsx(gs,{fill:Mx(m,i),stroke:i.tooltipBorder},u.label))}),s.jsx(bb,{contentStyle:{background:i.tooltipBackground,borderColor:i.tooltipBorder,color:i.tooltipText},itemStyle:{color:i.tooltipText},labelStyle:{color:i.tooltipText}}),s.jsx(Fc,{wrapperStyle:{color:i.legendText}})]})})}const QL={width:360,height:220},Rx=120,Lx=120;function e$(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function t$(e){return Number.isFinite(e)&&e>0?e:0}function r$(e){const t=e.reduce((r,n)=>n>r?n:r,0);return t<=0?e.map(()=>0):e.map(r=>r/t*100)}function n$(e,t){return e.map((r,n)=>{const a=r.values.map(t$);return{label:r.label,dataKey:`series${n}`,values:a,plotKey:t==="series"?`series${n}Normalized`:`series${n}`,plotValues:t==="series"?r$(a):a}}).filter(r=>r.values.length>0)}function a$(e){const t=e.reduce((r,n)=>Math.max(r,n.values.length),0);return Array.from({length:t},(r,n)=>{const a={index:n+1};for(const i of e)a[i.dataKey]=i.values[n]??0,a[i.plotKey]=i.plotValues[n]??0;return a})}function ch(e,t){return e!==void 0||t!==void 0?{width:e,height:t}:void 0}function uh(e){return typeof e=="number"||typeof e=="string"&&/^\d+(?:\.\d+)?%$/.test(e)?e:"100%"}function Ei(e,t){return Number.isFinite(e)&&e>=t?e:null}function i$(e,t,r){return{width:typeof t=="number"&&t>0?t:e.width,height:typeof r=="number"&&r>0?r:e.height}}function s$(e,t){return Math.abs(e.width-t.width)<.5&&Math.abs(e.height-t.height)<.5}function o$(e){const t=e.getBoundingClientRect(),r=Ei(t.width,Rx),n=Ei(t.height,Lx);return r===null||n===null?null:{width:r,height:n}}function l$(){const e=f.useRef(null),[t,r]=f.useState(QL);return f.useLayoutEffect(()=>{const n=e.current;if(!n)return;const a=o=>{o&&r(l=>s$(l,o)?l:o)};if(a(o$(n)),typeof ResizeObserver>"u")return;const i=new ResizeObserver(o=>{const l=o[0];if(!l)return;const c=Ei(l.contentRect.width,Rx),d=Ei(l.contentRect.height,Lx);a(c===null||d===null?null:{width:c,height:d})});return i.observe(n),()=>i.disconnect()},[]),{ref:e,dimensions:t}}function br({series:e,ariaLabel:t,width:r,height:n,emptyLabel:a="No chart data",xAxisLabels:i,valueFormatter:o,scaleMode:l="shared"}){const c=Ru(),{ref:d,dimensions:u}=l$(),m=i$(u,r,n),h=n$(e,l),v=a$(h),p=y=>{const g=typeof y=="number"?y:Number(y);return Number.isFinite(g)?i?.[g-1]??String(y):String(y)},b=y=>{const g=typeof y=="number"?y:Number(y);return o&&Number.isFinite(g)?o(g):String(y)};return h.length===0||v.length===0?s.jsx("div",{className:"cc-recharts-empty",role:"img","aria-label":t,style:ch(r,n),children:a}):s.jsx("div",{ref:d,className:"cc-recharts-chart",role:"img","aria-label":t,style:ch(r,n),"data-scale-mode":l,"data-responsive-width":uh(r),"data-responsive-height":uh(n),children:s.jsxs(AL,{width:m.width,height:m.height,data:v,children:[s.jsx(tx,{stroke:c.grid}),s.jsx(fx,{dataKey:"index",stroke:c.tick,tick:{fill:c.tick},tickFormatter:i?p:void 0}),s.jsx(mx,{stroke:c.tick,tick:{fill:c.tick},domain:l==="series"?[0,100]:void 0,tickFormatter:l==="series"?y=>`${y}%`:o}),s.jsx(bb,{contentStyle:{background:c.tooltipBackground,borderColor:c.tooltipBorder,color:c.tooltipText},itemStyle:{color:c.tooltipText},labelStyle:{color:c.tooltipText},formatter:o?y=>b(y):void 0,labelFormatter:i?p:void 0}),s.jsx(Fc,{wrapperStyle:{color:c.legendText}}),h.map((y,g)=>s.jsx(ux,{type:"monotone",dataKey:y.plotKey,name:y.label,stroke:Mx(g,c),isAnimationActive:!e$()},y.dataKey))]})})}function ft({testId:e,isLoading:t,error:r,isEmpty:n,emptyMessage:a,children:i}){const{t:o}=se("app");return t?s.jsxs("div",{className:"cc-loading-inline","data-testid":`cc-area-${e}-loading`,children:[s.jsx(Ql,{size:18,className:"spin"}),s.jsx("span",{children:o("commandCenter.area.loading","Loading…")})]}):r!==null?s.jsxs("div",{className:"cc-area-error","data-testid":`cc-area-${e}-error`,role:"alert",children:[s.jsx(Mi,{size:22}),s.jsx("p",{children:r})]}):n?s.jsxs("div",{className:"cc-area-empty","data-testid":`cc-area-${e}-empty`,children:[s.jsx(Ii,{size:24}),s.jsx("p",{children:a??o("commandCenter.area.empty","No data for the selected range.")})]}):s.jsx("div",{className:"cc-area","data-testid":`cc-area-${e}`,children:i})}function c$(e,t){if(t==="")return e;const r=t.slice(1);return`${e}${e.includes("?")?"&":"?"}${r}`}function Je(e,t,r={}){const[n,a]=f.useState(null),i=f.useRef(null),[o,l]=f.useState(!0),[c,d]=f.useState(null),u=sC(t),m=cp(t),{projectId:h}=r,v=f.useCallback(async()=>{if(m){l(!1);return}i.current!==null||l(!0),d(null);try{const y=await fr(mr(c$(e,u),h));i.current=y,a(y)}catch(y){d(y instanceof Error?y.message:"Failed to load analytics")}finally{l(!1)}},[e,u,m,h]);f.useEffect(()=>{v()},[v]),vn(v,r.pollMs??0,{enabled:!m&&r.pollMs!==void 0});const p=f.useCallback(()=>{v()},[v]);return{data:n,isLoading:o,error:c!==null&&n===null?c:null,reload:p}}const u$=15e3,d$=["hour","day","week"];function dh(e){return e.usd??-1}function fh(e){return e.key??"unknown"}function mh(e,t){return e.key??t}function $x(e){return ec(e.key??"")}function f$({group:e,unknownLabel:t}){const r=e.key??t;return s.jsxs("span",{className:"cc-model-label",children:[s.jsx(Nh,{provider:$x(e),size:"sm"}),s.jsx("span",{className:"cc-model-label-text",children:r})]})}function m$(e,t,r){const n=[...e];return n.sort((a,i)=>{let o=0;return t==="key"?o=(a.key??"").localeCompare(i.key??""):t==="totalTokens"?o=a.totalTokens-i.totalTokens:o=dh(a.cost)-dh(i.cost),o===0&&(o=(a.key??"").localeCompare(i.key??"")),o*r}),n}function v$({range:e,projectId:t}){const{t:r}=se("app"),[n,a]=f.useState("day"),i=`/command-center/tokens?groupBy=model&granularity=${n}`,{data:o,isLoading:l,error:c}=Je(i,e,{pollMs:u$,projectId:t}),d=f.useMemo(()=>o?.groups??[],[o?.groups]),u=f.useMemo(()=>o?.series??[],[o?.series]),[m,h]=f.useState("totalTokens"),[v,p]=f.useState(-1),b=f.useMemo(()=>d.map(O=>O.key??"∅").join(" "),[d]),y=f.useRef(null);f.useEffect(()=>{if(y.current===null){y.current=b;return}y.current!==b&&(y.current=b,h("totalTokens"),p(-1))},[b]);const g=f.useMemo(()=>m$(d,m,v),[d,m,v]),j=f.useMemo(()=>[...d].sort((O,I)=>I.totalTokens-O.totalTokens||(O.key??"").localeCompare(I.key??"")),[d]),x=f.useMemo(()=>j.map(O=>({label:mh(O,r("commandCenter.tokens.unknownModel","(unknown)")),value:O.totalTokens,valueLabel:U(O.totalTokens),iconProvider:$x(O)})),[j,r]),C=f.useMemo(()=>j.map(O=>({label:mh(O,r("commandCenter.tokens.unknownModel","(unknown)")),value:O.totalTokens})),[j,r]),w=f.useMemo(()=>[{label:r("commandCenter.tokens.input","Input"),values:u.map(O=>O.inputTokens)},{label:r("commandCenter.tokens.output","Output"),values:u.map(O=>O.outputTokens)},{label:r("commandCenter.tokens.cached","Cached"),values:u.map(O=>O.cachedTokens)},{label:r("commandCenter.tokens.total","Total"),values:u.map(O=>O.totalTokens)}],[u,r]);function P(O){O===m?p(I=>I===1?-1:1):(h(O),p(O==="key"?1:-1))}function A(O){return O!==m?null:s.jsx("span",{className:"cc-sort-caret",children:v===1?"▲":"▼"})}const S=o?.totals,N=f.useMemo(()=>u.map(O=>O.bucket).join(" "),[u]),E=S?.totalTokens??0,T=!o||E===0;return s.jsxs(ft,{testId:"tokens",isLoading:l,error:c,isEmpty:T,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.totalsTitle","Totals")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-tokens-total",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tokens.totalTokens","Total tokens")}),s.jsx("div",{className:"cc-stat-value cc-token-count-live",children:U(E)},E)]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-tokens-cost",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tokens.cost","Estimated cost")}),s.jsx("div",{className:"cc-stat-value",children:o?Tr(o.cost.usd,o.cost.unavailable):"—"}),o?.cost.stale?s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.tokens.stalePricing","pricing may be stale")}):null]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tokens.tasks","Tasks")}),s.jsx("div",{className:"cc-stat-value",children:U(S?.nTasks??0)})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tokens.chatMessages","Chat turns")}),s.jsx("div",{className:"cc-stat-value",children:U(S?.nChatMessages??0)})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsxs("div",{className:"cc-area-section-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.overTimeChart","Tokens over time")}),s.jsx("div",{className:"cc-token-granularity",role:"group","aria-label":r("commandCenter.tokens.granularity","Token chart granularity"),children:d$.map(O=>s.jsx("button",{type:"button",className:`btn ${O===n?"active":""}`,"aria-pressed":O===n,"data-testid":`cc-token-granularity-${O}`,onClick:()=>a(O),children:r(`commandCenter.tokens.granularity.${O}`,O)},O))})]}),s.jsx(lC,{points:u,ariaLabel:r("commandCenter.tokens.overTimeChart","Tokens over time")},N)]}),u.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-tokens-line",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.rechartsLine","Tokens trend")}),s.jsx(br,{series:w,ariaLabel:r("commandCenter.tokens.rechartsLine","Tokens trend")})]}):null,s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.byModelChart","Tokens by model")}),s.jsx(nt,{data:x,ariaLabel:r("commandCenter.tokens.byModelChart","Tokens by model")})]}),C.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-tokens-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.pieChart","Token share by model")}),s.jsx(Mt,{data:C,ariaLabel:r("commandCenter.tokens.pieChart","Token share by model")})]}):null,s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tokens.tableTitle","Per-model breakdown")}),s.jsx("div",{className:"cc-table-wrap",children:s.jsxs("table",{className:"cc-table","data-testid":"cc-tokens-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsxs("th",{className:"cc-sortable",onClick:()=>P("key"),"data-testid":"cc-tokens-sort-key",children:[r("commandCenter.tokens.model","Model"),A("key")]}),s.jsx("th",{children:r("commandCenter.tokens.input","Input")}),s.jsx("th",{children:r("commandCenter.tokens.output","Output")}),s.jsx("th",{children:r("commandCenter.tokens.cached","Cached")}),s.jsxs("th",{className:"cc-sortable",onClick:()=>P("totalTokens"),"data-testid":"cc-tokens-sort-total",children:[r("commandCenter.tokens.total","Total"),A("totalTokens")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>P("cost"),"data-testid":"cc-tokens-sort-cost",children:[r("commandCenter.tokens.costCol","Cost"),A("cost")]})]})}),s.jsx("tbody",{children:g.map(O=>s.jsxs("tr",{"data-testid":`cc-tokens-row-${fh(O)}`,children:[s.jsx("td",{children:s.jsx(f$,{group:O,unknownLabel:r("commandCenter.tokens.unknownModel","(unknown)")})}),s.jsx("td",{children:U(O.inputTokens)}),s.jsx("td",{children:U(O.outputTokens)}),s.jsx("td",{children:U(O.cachedTokens)}),s.jsx("td",{children:U(O.totalTokens)}),s.jsx("td",{children:s.jsx("span",{className:O.cost.usd===null?"cc-unavailable":void 0,title:O.cost.unavailable?r("commandCenter.tokens.costUnavailable","No pricing for some or all usage"):void 0,children:Tr(O.cost.usd,O.cost.unavailable)})})]},fh(O)))})]})})]})]})}function h$({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i}=Je("/command-center/tools",e,{projectId:t}),o=f.useMemo(()=>[...n?.byCategory??[]].sort((m,h)=>h.count-m.count||m.category.localeCompare(h.category)),[n?.byCategory]),l=f.useMemo(()=>o.map(m=>({label:m.category,value:m.count,valueLabel:U(m.count)})),[o]),c=f.useMemo(()=>o.map(m=>({label:m.category,value:m.count})),[o]),d=!n||n.toolCalls===0,u=n?n.fullyAutonomous?r("commandCenter.tools.ratioAutonomous","{{ratio}} calls/session (fully autonomous)",{ratio:n.autonomyRatio.toFixed(1)}):`${n.autonomyRatio.toFixed(1)}:1`:"—";return s.jsxs(ft,{testId:"tools",isLoading:a,error:i,isEmpty:d,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tools.summaryTitle","Summary")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-tools-autonomy",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tools.autonomyRatio","Autonomy ratio")}),s.jsx("div",{className:"cc-stat-value",children:u}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.tools.autonomyHint","tool calls per human intervention")})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tools.toolCalls","Tool calls")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.toolCalls??0)})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tools.interventions","Interventions")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.interventions.total??0)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.tools.interventionBreakdown","{{approvals}} approvals · {{steers}} steers",{approvals:U(n?.interventions.approvals??0),steers:U(n?.interventions.userSteers??0)})})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.tools.sessions","Sessions")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.sessions??0)})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tools.categoriesTitle","Tool categories")}),s.jsx(nt,{data:l,ariaLabel:r("commandCenter.tools.categoriesTitle","Tool categories")})]}),c.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-tools-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.tools.pieChart","Tool category share")}),s.jsx(Mt,{data:c,ariaLabel:r("commandCenter.tools.pieChart","Tool category share")})]}):null]})}const p$=250,y$=100,Gl=1.8,en=3,g$={width:p$,height:y$};function b$(e,t){if(!Number.isFinite(e)||e<=0)return 0;const r=Number.isFinite(t)&&t>0?t:1;return Math.max(0,Math.min(100,e/r*100))}function vh(e){return Number.isFinite(e)?e:0}function x$(e,t){return!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0?null:{width:Math.max(e,en*2+Gl*2),height:Math.max(t,en*2+Gl*2)}}function j$(e,t,r,n,a){const i=Math.max(0,a.width-en*2),o=Math.max(0,a.height-en*2),l=r<=1?a.width/2:en+t/(r-1)*i,c=b$(e,n);return{x:vh(l),y:vh(en+o*(1-c/100))}}function w$(e,t,r){return e.map((n,a)=>j$(n,a,e.length,t,r))}function C$(e){return e.map(t=>`${t.x},${t.y}`).join(" ")}function k$(e,t){return Number.isFinite(t)&&t!==void 0&&t>0?t:e.reduce((r,n)=>{const a=n.values.reduce((i,o)=>Number.isFinite(o)&&o>i?o:i,0);return a>r?a:r},0)}function hh(e){return x$(e.width,e.height)}function S$(e,t){return Math.abs(e.width-t.width)<.5&&Math.abs(e.height-t.height)<.5}function Ta({series:e,ariaLabel:t,max:r}){const n=f.useRef(null),[a,i]=f.useState(g$),o=k$(e,r);return f.useLayoutEffect(()=>{const l=n.current;if(!l)return;const c=u=>{u&&i(m=>S$(m,u)?m:u)};if(c(hh(l.getBoundingClientRect())),typeof ResizeObserver>"u")return;const d=new ResizeObserver(u=>{const m=u[0];m&&c(hh(m.contentRect))});return d.observe(l),()=>d.disconnect()},[]),s.jsx("svg",{ref:n,className:"cc-line-chart",role:"img","aria-label":t,viewBox:`0 0 ${a.width} ${a.height}`,preserveAspectRatio:"none",children:e.map((l,c)=>{const d=w$(l.values,o,a),u=C$(d);return s.jsxs("g",{className:"cc-line-chart-series","aria-label":l.label,children:[d.length>1?s.jsx("polyline",{className:"cc-line-chart-path",points:u,pathLength:a.width,vectorEffect:"non-scaling-stroke","aria-hidden":"true"}):null,d.map((m,h)=>s.jsx("circle",{className:"cc-line-chart-point",cx:m.x,cy:m.y,r:Gl,vectorEffect:"non-scaling-stroke","aria-hidden":"true"},h))]},c)})})}function N$(e,t){if(!Number.isFinite(e)||e<=0)return 0;const r=Number.isFinite(t)&&t>0?t:1;return Math.max(0,Math.min(100,e/r*100))}function Ot({values:e,ariaLabel:t,max:r}){const n=r??e.reduce((a,i)=>i>a?i:a,0);return s.jsx("div",{className:"cc-sparkline",role:"img","aria-label":t,children:e.map((a,i)=>{const o=N$(a,n);return s.jsx("div",{className:"cc-sparkline-bar",style:{height:`${o}%`},"aria-hidden":"true"},i)})})}const P$=15e3;function A$({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i,reload:o}=Je("/command-center/activity",e,{projectId:t}),l=f.useMemo(()=>n?.daily??[],[n?.daily]),c=f.useMemo(()=>l.map(x=>x.messages),[l]),d=f.useMemo(()=>l.map(x=>x.activeAgents),[l]),u=f.useMemo(()=>l.map(x=>x.activeNodes),[l]),m=f.useMemo(()=>l.map(x=>x.agentRuns),[l]),h=f.useMemo(()=>l.map(x=>x.messages+x.activeAgents+x.activeNodes),[l]),v=f.useMemo(()=>[{label:r("commandCenter.activity.messages","Messages"),values:c},{label:r("commandCenter.activity.activeAgents","Active agents"),values:d},{label:r("commandCenter.activity.agentRuns","Agent runs"),values:m}],[m,d,c,r]),p=cp(e),b=a&&n===null;vn(o,P$,{enabled:!p});const y=n?.agentRuns??{total:0,active:0,completed:0,failed:0},g=f.useMemo(()=>[{label:r("commandCenter.activity.agentRunsActive","Active"),value:y.active},{label:r("commandCenter.activity.agentRunsCompleted","Completed"),value:y.completed},{label:r("commandCenter.activity.agentRunsFailed","Failed"),value:y.failed}].filter(x=>x.value>0),[y.active,y.completed,y.failed,r]),j=!n||n.sessions===0&&n.messages===0&&n.activeNodes===0&&n.activeAgents===0&&y.total===0;return s.jsxs(ft,{testId:"activity",isLoading:b,error:i,isEmpty:j,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.summaryTitle","Summary")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-sessions",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.sessions","Sessions")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.sessions??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-messages",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.messages","Messages")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.messages??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-nodes",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.activeNodes","Active nodes")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.activeNodes??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-agents",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.activeAgents","Active agents")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.activeAgents??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-agent-runs",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.agentRuns","Agent runs")}),s.jsx("div",{className:"cc-stat-value",children:U(y.total)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-agent-runs-active",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.agentRunsActive","Active")}),s.jsx("div",{className:"cc-stat-value",children:U(y.active)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-agent-runs-completed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.agentRunsCompleted","Completed")}),s.jsx("div",{className:"cc-stat-value",children:U(y.completed)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-agent-runs-failed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.agentRunsFailed","Failed")}),s.jsx("div",{className:"cc-stat-value",children:U(y.failed)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-activity-stickiness",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.activity.stickiness","Stickiness")}),s.jsx("div",{className:"cc-stat-value",children:n?`${Math.round(n.stickiness*100)}%`:"—"}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.activity.stickinessHint","DAU / MAU")})]})]})]}),l.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-line",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.rechartsLine","Activity trend")}),s.jsx(br,{series:v,ariaLabel:r("commandCenter.activity.rechartsLine","Activity trend"),scaleMode:"series"})]}):null,g.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.agentRunOutcomeShare","Agent run outcome share")}),s.jsx(Mt,{data:g,ariaLabel:r("commandCenter.activity.agentRunOutcomeShare","Agent run outcome share")})]}):null,s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-line-messages",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.messagesPerDay","Messages / day")}),s.jsx(Ta,{series:[{label:r("commandCenter.activity.messages","Messages"),values:c}],ariaLabel:r("commandCenter.activity.messagesPerDay","Messages / day")})]}),s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-line-agents",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.agentsPerDay","Active agents / day")}),s.jsx(Ta,{series:[{label:r("commandCenter.activity.activeAgents","Active agents"),values:d}],ariaLabel:r("commandCenter.activity.agentsPerDay","Active agents / day")})]}),s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-line-nodes",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.nodesPerDay","Active nodes / day")}),s.jsx(Ta,{series:[{label:r("commandCenter.activity.activeNodes","Active nodes"),values:u}],ariaLabel:r("commandCenter.activity.nodesPerDay","Active nodes / day")})]}),s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-agent-runs-sparkline",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.agentRunsPerDay","Agent runs / day")}),s.jsx(Ot,{values:m,ariaLabel:r("commandCenter.activity.agentRunsPerDay","Agent runs / day")})]}),s.jsxs("div",{className:"cc-area-section","data-testid":"cc-activity-line-throughput",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.activity.throughputPerDay","Throughput / day")}),s.jsx(Ta,{series:[{label:r("commandCenter.activity.throughput","Throughput"),values:h}],ariaLabel:r("commandCenter.activity.throughputPerDay","Throughput / day")})]})]})}const O$={"task:created":{label:"Created",icon:zn,color:"var(--todo)"},"task:moved":{label:"Moved",icon:Uh,color:"var(--in-progress)"},"task:updated":{label:"Updated",icon:La,color:"var(--text-muted)"},"task:merge-worktree-reacquired":{label:"Merge Worktree Reacquired",icon:La,color:"var(--color-info)"},"task:deleted":{label:"Deleted",icon:cj,color:"var(--color-error)"},"task:merged":{label:"Merged",icon:lj,color:"var(--color-success)"},"task:failed":{label:"Failed",icon:Zr,color:"var(--color-error)"},"task:duplicate-warning-overridden":{label:"Duplicate Override",icon:Zr,color:"var(--color-warning)"},"task:auto-archived-ghost-bug":{label:"Auto-Archived (Ghost Bug)",icon:Zr,color:"var(--color-warning)"},"task:auto-archived-duplicate":{label:"Auto-Archived (Duplicate)",icon:tn,color:"var(--text-muted)"},"task:auto-archived-deterministic-duplicate":{label:"Auto-Archived (Deterministic Duplicate)",icon:tn,color:"var(--text-muted)"},"task:auto-archived-near-duplicate":{label:"Auto-Archived (Near-Duplicate)",icon:tn,color:"var(--text-muted)"},"task:near-duplicate-flagged":{label:"Near-Duplicate Flagged",icon:Zr,color:"var(--color-warning)"},"settings:updated":{label:"Settings",icon:La,color:"var(--text-muted)"},"project:isolation-transition":{label:"Isolation",icon:Ph,color:"var(--color-info)"}};function E$(e){const t=oj(e);if(!t){const r=new Date(e);return Number.isFinite(r.getTime())?"Just now":r.toLocaleDateString()}switch(t.bucket){case"just-now":return"Just now";case"minutes":return`${t.count}m ago`;case"hours":return`${t.count}h ago`;case"days":return`${t.count}d ago`;case"weeks":case"older":return t.date.toLocaleDateString()}}function _$(e){return new Date(e).toLocaleString()}function Fx({config:e,details:t,timestamp:r,headerSuffix:n}){const a=e.icon;return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"activity-feed-icon",style:{color:e.color},children:s.jsx(a,{size:16})}),s.jsxs("div",{className:"activity-feed-content",children:[s.jsxs("div",{className:"activity-feed-header",children:[s.jsx("span",{className:"activity-feed-type",children:e.label}),n]}),s.jsx("div",{className:"activity-feed-details",children:t}),s.jsx("div",{className:"activity-feed-meta",children:s.jsx("span",{className:"activity-feed-time",title:_$(r),children:E$(r)})})]})]})}function T$({entry:e,projectName:t}){const r=O$[e.type];return s.jsx("div",{className:"activity-feed-item","data-type":e.type,children:s.jsx(Fx,{config:r,timestamp:e.timestamp,headerSuffix:t?s.jsxs("span",{className:"activity-feed-project-badge",children:[s.jsx(Ph,{size:10}),t]}):void 0,details:s.jsxs(s.Fragment,{children:[e.taskId&&s.jsx("span",{className:"activity-feed-task-id",children:e.taskId}),e.taskTitle&&s.jsx("span",{className:"activity-feed-task-title",title:e.taskTitle,children:e.taskTitle}),s.jsx("span",{className:"activity-feed-description",children:e.details})]})})})}function M$(e,t){if(e.isLoading!==t.isLoading||e.error!==t.error||e.entries.length!==t.entries.length)return!1;for(let r=0;r<e.entries.length;r++){const n=e.entries[r],a=t.entries[r];if(n.id!==a.id||n.timestamp!==a.timestamp||n.type!==a.type||n.details!==a.details||n.taskId!==a.taskId||n.taskTitle!==a.taskTitle)return!1}return!0}function I$({entries:e,isLoading:t=!1,error:r=null,projectNames:n={},emptyMessage:a}){const{t:i}=se("app"),o=a??i("activityFeed.noRecentActivity","No recent activity"),l=f.useCallback(d=>n[d]||d,[n]),c=f.useMemo(()=>{const d=[];let u=null;for(const m of e){const h=new Date(m.timestamp).toLocaleDateString();(!u||u.date!==h)&&(u={date:h,entries:[]},d.push(u)),u.entries.push(m)}return d},[e]);return t?s.jsx("div",{className:"activity-feed activity-feed-loading",children:s.jsx("div",{className:"activity-feed-skeleton",children:[1,2,3].map(d=>s.jsxs("div",{className:"activity-feed-skeleton-item",children:[s.jsx("div",{className:"activity-feed-skeleton-icon"}),s.jsxs("div",{className:"activity-feed-skeleton-content",children:[s.jsx("div",{className:"activity-feed-skeleton-line"}),s.jsx("div",{className:"activity-feed-skeleton-line short"})]})]},d))})}):r?s.jsx("div",{className:"activity-feed activity-feed-error",children:s.jsxs("div",{className:"activity-feed-error-message",children:[s.jsx(Zr,{size:24}),s.jsx("p",{children:r})]})}):e.length===0?s.jsx("div",{className:"activity-feed activity-feed-empty",children:s.jsxs("div",{className:"activity-feed-empty-state",children:[s.jsx(el,{size:32}),s.jsx("p",{children:o}),s.jsx("span",{className:"activity-feed-empty-hint",children:i("activityFeed.emptyHint","Activity will appear here when tasks are created, moved, or completed")})]})}):s.jsx("div",{className:"activity-feed",children:c.map(d=>s.jsxs("div",{className:"activity-feed-group",children:[s.jsxs("div",{className:"activity-feed-group-header",children:[s.jsx("span",{className:"activity-feed-group-date",children:d.date}),s.jsx("span",{className:"activity-feed-group-count",children:i("activityFeed.eventCount",{count:d.entries.length,defaultValue_one:"{{count}} event",defaultValue_other:"{{count}} events"})})]}),s.jsx("div",{className:"activity-feed-list",children:d.entries.map(u=>s.jsx(T$,{entry:u,projectName:l(u.projectId)},u.id))})]},d.date))})}f.memo(I$,M$);const Lu={"task:started":{label:"Task started",icon:Di,color:"var(--in-progress)"},"task:handed-off":{label:"Task handed off",icon:Uh,color:"var(--in-progress)"},"task:completed":{label:"Task completed",icon:el,color:"var(--color-success)"},"agent:state-changed":{label:"Agent state changed",icon:Ah,color:"var(--text-muted)"},"workflow:gate-passed":{label:"Workflow gate passed",icon:el,color:"var(--color-success)"},"workflow:gate-failed":{label:"Workflow gate failed",icon:Zr,color:"var(--color-error)"},"approval:requested":{label:"Approval requested",icon:uj,color:"var(--color-warning)"}},D$={label:"Activity",icon:Ah,color:"var(--text-muted)"},R$=50,L$=3;function $$(e,t){const r=BigInt(e.seq),n=BigInt(t.seq);return r===n?0:r>n?-1:1}function Bx(e,t){const r=new Map;for(const n of e)r.set(n.eventId,n);for(const n of t)r.set(n.eventId,n);return[...r.values()].sort($$)}function F$(e,t){return t===null||BigInt(e)<BigInt(t)}function B$(e){return e===null?{}:{before:e}}function z$(e){return typeof e=="object"&&e!==null&&e.truncated===!0}function K$(e){const{requestedCursor:t,existing:r,page:n,consecutiveNoProgress:a}=e,i=Bx(r,n.events),o=i.length-r.length;if(n.nextCursor===null)return{merged:i,nextCursor:null,hasMore:!1,reason:"end-of-history",consecutiveNoProgress:0};const l=a+1,c=F$(n.nextCursor,t);return(o===0||!c)&&l>=L$?{merged:i,nextCursor:t,hasMore:!1,reason:"attempt-cap",consecutiveNoProgress:l}:o===0?{merged:i,nextCursor:n.nextCursor,hasMore:!0,reason:"no-progress",consecutiveNoProgress:l}:c?{merged:i,nextCursor:n.nextCursor,hasMore:!0,reason:null,consecutiveNoProgress:0}:{merged:i,nextCursor:t,hasMore:!0,reason:"cursor-rewind",consecutiveNoProgress:l}}const V$=5;function U$(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Invalid agent activity response");const t=e;if(!Array.isArray(t.events)||t.nextCursor!==null&&(typeof t.nextCursor!="string"||!/^\d+$/.test(t.nextCursor)))throw new Error("Invalid agent activity response");return{events:t.events.filter(zx),nextCursor:t.nextCursor}}function zx(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;const t=e,r=n=>n===null||typeof n=="string";return typeof t.seq=="string"&&/^\d+$/.test(t.seq)&&typeof t.eventId=="string"&&typeof t.projectId=="string"&&typeof t.agentId=="string"&&typeof t.type=="string"&&typeof t.summary=="string"&&typeof t.occurredAt=="string"&&r(t.taskId)&&r(t.fromAgentId)&&r(t.toAgentId)&&(t.metadata===null||typeof t.metadata=="object"&&!Array.isArray(t.metadata))}function q$({projectId:e,filters:t,range:r}){const[n,a]=f.useState([]),i=f.useRef([]),[o,l]=f.useState(!0),[c,d]=f.useState(!1),[u,m]=f.useState(null),[h,v]=f.useState(null),[p,b]=f.useState(!1),[y,g]=f.useState(null),j=f.useRef(0),x=f.useRef(null),C=f.useRef(0),w=f.useRef(0),P=f.useRef(t);P.current=t;const A=JSON.stringify([e,t.agentId,t.taskId,t.type]),S=`${r?.from??""}|${r?.to??""}|${r?.preset??""}`,N=f.useCallback(z=>{i.current=z,a(z)},[]),E=f.useCallback(async(z,D)=>{const V=j.current;if(!e){N([]),l(!1);return}if(!(!D&&(z===null||x.current===z))){D?(l(!0),m(null)):(x.current=z,d(!0));try{const B=await X0({projectId:e,limit:R$,...P.current,...B$(z)}),W=U$(B);if(V!==j.current)return;const K=K$({requestedCursor:z,existing:i.current,page:W,consecutiveNoProgress:C.current});N(K.merged),v(K.nextCursor),b(K.hasMore),g(K.reason),C.current=K.consecutiveNoProgress}catch(B){V===j.current&&m(B instanceof Error?B.message:"Failed to load agent activity")}finally{V===j.current&&(l(!1),d(!1),x.current=null)}}},[N,A,e]),T=f.useCallback(()=>{j.current+=1,x.current=null,C.current=0,w.current=0,v(null),b(!1),g(null),N([]),E(null,!0)},[N,E]);f.useEffect(()=>{T()},[A,T]);const O=f.useCallback(()=>{!p||h===null||E(h,!1)},[p,h,E]);f.useEffect(()=>qa("/api/events",{events:{"agent:activity":D=>{let V;try{V=JSON.parse(D.data)}catch{return}if(z$(V)){T();return}if(!zx(V))return;const B=V,W=P.current;B.projectId!==e||!B.eventId||!B.seq||W.agentId&&B.agentId!==W.agentId||W.taskId&&B.taskId!==W.taskId||W.type&&B.type!==W.type||N(Bx(i.current,[B]))}},onReconnect:T}),[N,e,T]);const I=f.useMemo(()=>{if(!r||!r.from&&!r.to)return n;const z=r.from?Date.parse(r.from):-1/0,D=r.to?Date.parse(r.to):1/0;return Number.isNaN(z)||Number.isNaN(D)?n:n.filter(V=>{const B=Date.parse(V.occurredAt);return Number.isFinite(B)&&B>=z&&B<=D})},[n,r]);return f.useEffect(()=>{w.current=0},[S]),f.useEffect(()=>{if(!r?.from||!p||h===null||w.current>=V$)return;const z=Date.parse(r.from),D=n.at(-1);!Number.isFinite(z)||!D||Date.parse(D.occurredAt)<=z||(w.current+=1,O())},[n,p,O,h,r?.from,S]),{events:n,visibleEvents:I,isLoading:o,isLoadingOlder:c,error:u,hasMore:p,exhaustedReason:y,loadOlder:O,reload:T}}const W$=100,Ho=100,H$=Object.keys(Lu).filter(e=>!il(e));function G$({projectId:e,range:t,onOpenAgent:r,onOpenTask:n}){const{t:a}=se("app"),[i,o]=f.useState("live"),[l,c]=f.useState({}),[d,u]=f.useState(Ho),m=q$({projectId:e,filters:l,range:t});f.useEffect(()=>{u(Ho)},[l.agentId,l.taskId,l.type,t.from,t.to]);const h=f.useMemo(()=>[...new Set(m.events.map(b=>b.agentId).filter(Boolean))].sort(),[m.events]),v=m.visibleEvents.filter(b=>!il(b.type)),p=i==="live"?m.events.filter(b=>!il(b.type)).slice(0,W$):v.slice(0,d);return s.jsxs("section",{className:"cc-agent-activity",children:[s.jsxs("div",{className:"cc-agent-activity-mode",role:"group","aria-label":a("commandCenter.agentActivity.mode","Activity mode"),children:[s.jsx("button",{type:"button",className:"btn btn-sm","aria-pressed":i==="live",onClick:()=>o("live"),children:a("commandCenter.agentActivity.live","Live")}),s.jsx("button",{type:"button",className:"btn btn-sm","aria-pressed":i==="timeline",onClick:()=>o("timeline"),children:a("commandCenter.agentActivity.timeline","Timeline")})]}),i==="timeline"?s.jsxs("div",{className:"cc-agent-activity-filters",children:[s.jsxs("select",{className:"input","aria-label":a("commandCenter.agentActivity.agentFilter","Filter by agent"),value:l.agentId??"",onChange:b=>c(y=>({...y,agentId:b.target.value||void 0})),children:[s.jsx("option",{value:"",children:a("commandCenter.agentActivity.allAgents","All agents")}),h.map(b=>s.jsx("option",{value:b,children:b},b))]}),s.jsx("input",{className:"input","aria-label":a("commandCenter.agentActivity.taskFilter","Filter by task"),value:l.taskId??"",placeholder:a("commandCenter.agentActivity.taskFilter","Filter by task"),onChange:b=>c(y=>({...y,taskId:b.target.value||void 0}))}),s.jsxs("select",{className:"input","aria-label":a("commandCenter.agentActivity.typeFilter","Filter by event type"),value:l.type??"",onChange:b=>c(y=>({...y,type:b.target.value||void 0})),children:[s.jsx("option",{value:"",children:a("commandCenter.agentActivity.allTypes","All event types")}),H$.map(b=>s.jsx("option",{value:b,children:Lu[b].label},b))]}),s.jsx("span",{className:"cc-agent-activity-range-note",children:a("commandCenter.agentActivity.rangeNote","Time range filters loaded events; it is not sent to the server.")})]}):null,s.jsxs(ft,{testId:"agent-activity",isLoading:m.isLoading,error:m.error,isEmpty:!p.length&&!m.hasMore,emptyMessage:a("commandCenter.agentActivity.empty","No agent activity yet."),children:[p.length?s.jsx("div",{className:"cc-agent-activity-list",children:p.map(b=>s.jsx(X$,{event:b,onOpenAgent:r,onOpenTask:n},b.eventId))}):s.jsx("div",{className:"cc-area-empty","data-testid":"cc-area-agent-activity-empty",children:s.jsx("p",{children:a("commandCenter.agentActivity.empty","No agent activity yet.")})}),i==="timeline"&&d<v.length?s.jsx("button",{type:"button",className:"btn",onClick:()=>u(b=>b+Ho),children:a("commandCenter.agentActivity.showMore","Show more loaded activity")}):null,i==="timeline"&&m.hasMore?s.jsx("button",{type:"button",className:"btn",onClick:m.loadOlder,disabled:m.isLoadingOlder,children:m.isLoadingOlder?a("commandCenter.agentActivity.loadingOlder","Loading…"):a("commandCenter.agentActivity.loadOlder","Load older")}):null,i==="timeline"&&!m.hasMore&&m.exhaustedReason?s.jsx("p",{className:"cc-agent-activity-end",children:a("commandCenter.agentActivity.end","End of activity history")}):null]})]})}function X$({event:e,onOpenAgent:t,onOpenTask:r}){const{t:n}=se("app"),a=Lu[e.type]??D$,i={...a,label:n(`commandCenter.agentActivity.eventTypes.${e.type}`,a.label)},o=n("commandCenter.agentActivity.openTask","Open task {{taskId}}",{taskId:e.taskId}),l=n("commandCenter.agentActivity.openAgent","Open agent {{agentId}}",{agentId:e.agentId}),c=s.jsx(Fx,{config:i,timestamp:e.occurredAt,details:s.jsx("span",{className:"activity-feed-description",children:e.summary})});return e.taskId&&r?s.jsxs("div",{className:"cc-agent-activity-target",children:[s.jsx("button",{type:"button",className:"cc-agent-activity-row","aria-label":o,onClick:()=>r(e.taskId),children:c}),t?s.jsx("button",{type:"button",className:"btn btn-sm","aria-label":l,onClick:()=>t(e.agentId),children:e.agentId}):null]}):e.agentId&&t?s.jsx("button",{type:"button",className:"cc-agent-activity-row","aria-label":l,onClick:()=>t(e.agentId),children:c}):s.jsx("div",{className:"cc-agent-activity-row",children:c})}function Y$({range:e,projectId:t}){const{t:r}=se("app"),{confirm:n}=tc(),{data:a,isLoading:i,error:o}=Je("/command-center/productivity",e,{projectId:t}),[l,c]=f.useState(!1),[d,u]=f.useState(null),[m,h]=f.useState(null),v=f.useCallback(async()=>{if(!l){c(!0),h(null),u(null);try{const D=await $u({dryRun:!0});u(D)}catch(D){h(D instanceof Error?D.message:r("commandCenter.productivity.backfillFailed","Failed to backfill historical LOC stats"))}finally{c(!1)}}},[l,r]),p=f.useCallback(async()=>{if(!(l||!await n({title:r("commandCenter.productivity.backfillConfirmTitle","Apply LOC backfill?"),message:r("commandCenter.productivity.backfillConfirmMessage","This will persist diff stats to task_commit_associations for historical commit associations. Review the dry-run counts before applying."),confirmLabel:r("commandCenter.productivity.backfillApply","Apply backfill"),cancelLabel:r("common.cancel","Cancel"),danger:!0}))){c(!0),h(null);try{const V=await $u({dryRun:!1});u(V)}catch(V){h(V instanceof Error?V.message:r("commandCenter.productivity.backfillFailed","Failed to backfill historical LOC stats"))}finally{c(!1)}}},[n,l,r]),b=f.useMemo(()=>(a?.byLanguage??[]).slice(0,12).map(D=>({label:D.language,value:D.count,valueLabel:U(D.count)})),[a?.byLanguage]),y=f.useMemo(()=>(a?.byLanguage??[]).slice(0,12).map(D=>({label:D.language,value:D.count})),[a?.byLanguage]),g=a?.taskDuration??{completedTasks:0,averageMs:null,medianMs:null,p90Ms:null,totalMs:null,unavailable:!0},j=f.useMemo(()=>(a?.taskDurationTrend??[]).filter(D=>!D.unavailable&&D.completedTasks>0&&D.averageMs!==null&&D.medianMs!==null&&Number.isFinite(D.averageMs)&&Number.isFinite(D.medianMs)),[a?.taskDurationTrend]),x=f.useMemo(()=>[{label:r("commandCenter.productivity.averageDuration","Average"),values:j.map(D=>D.averageMs??0)},{label:r("commandCenter.productivity.medianDuration","Median"),values:j.map(D=>D.medianMs??0)}],[r,j]),C=f.useMemo(()=>j.map(D=>D.bucket),[j]),w=j.length>0,P=a?.loc??{value:null,unavailable:!0},A=a?.hoursSaved??{value:null,unavailable:!0},S=!a||a.modifiedFiles===0&&a.commits===0&&a.pullRequests===0&&g.completedTasks===0,N=!a||P.unavailable||P.value===null,E=!a||A.unavailable||A.value===null,T=!a||g.unavailable,O=r("commandCenter.productivity.durationUnavailable","Task duration is unavailable until completed tasks have active execution time recorded"),I=m?"cc-productivity-backfill-status--error":l?"cc-productivity-backfill-status--warning":"",z=(D,V)=>T||D===null?s.jsx("span",{className:"cc-unavailable",title:O,"data-testid":V,children:"—"}):ad(D);return s.jsxs(ft,{testId:"productivity",isLoading:i,error:o,isEmpty:S,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.outcomesTitle","Outcomes")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-commits",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.commits","Commits")}),s.jsx("div",{className:"cc-stat-value",children:U(a?.commits??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-prs",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.pullRequests","Pull requests")}),s.jsx("div",{className:"cc-stat-value",children:U(a?.pullRequests??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-hours-saved",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.hoursSaved","Human hours saved")}),s.jsx("div",{className:"cc-stat-value",children:E?s.jsx("span",{className:"cc-unavailable",title:r("commandCenter.productivity.hoursSavedUnavailable","Estimated human hours saved is unavailable until commit diff stats exist"),"data-testid":"cc-productivity-hours-saved-unavailable",children:"—"}):U(A.value??0)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.productivity.hoursSavedEstimate","estimate from lines changed")})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.volumeTitle","Volume (proxy)")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-files",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.modifiedFiles","Files modified")}),s.jsx("div",{className:"cc-stat-value",children:U(a?.modifiedFiles??0)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.productivity.volumeHint","volume, not outcome")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-loc",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.loc","Lines changed")}),s.jsx("div",{className:"cc-stat-value",children:N?s.jsx("span",{className:"cc-unavailable",title:r("commandCenter.productivity.locUnavailable","LOC is unavailable until commit diff stats are recorded"),"data-testid":"cc-productivity-loc-unavailable",children:"—"}):U(P.value??0)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.productivity.volumeHint","volume, not outcome")}),s.jsxs("div",{className:"cc-productivity-backfill-actions",children:[s.jsxs("button",{type:"button",className:"btn","data-testid":"cc-productivity-backfill-button",onClick:()=>void v(),disabled:l,children:[s.jsx(Gt,{className:l?"spin":void 0}),s.jsx("span",{children:l?r("commandCenter.productivity.backfillBusy","Checking historical LOC…"):r("commandCenter.productivity.backfillButton","Preview LOC backfill")})]}),d?.dryRun?s.jsx("button",{type:"button",className:"btn","data-testid":"cc-productivity-backfill-apply-button",onClick:()=>void p(),disabled:l,children:r("commandCenter.productivity.backfillApply","Apply backfill")}):null]}),l||d||m?s.jsxs("div",{className:`cc-productivity-backfill-status ${I}`.trim(),"data-testid":"cc-productivity-backfill-result",role:"status",children:[l?s.jsx("span",{children:r("commandCenter.productivity.backfillPending","LOC backfill check is running.")}):null,m?s.jsx("span",{children:m}):null,d?s.jsxs(s.Fragment,{children:[s.jsx("span",{children:r("commandCenter.productivity.backfillResult","Backfill report")}),s.jsx("span",{children:d.dryRun?r("commandCenter.productivity.backfillPreviewLabel","Dry-run preview"):r("commandCenter.productivity.backfillAppliedLabel","Applied")}),s.jsxs("span",{children:[r("commandCenter.productivity.backfillScannedRows","Scanned rows"),": ",d.scannedRows]}),s.jsxs("span",{children:[r("commandCenter.productivity.backfillDistinctCommits","Distinct commits"),": ",d.distinctCommits]}),s.jsxs("span",{children:[r("commandCenter.productivity.backfillUpdatedRows","Updated rows"),": ",d.updatedRows]}),s.jsxs("span",{children:[r("commandCenter.productivity.backfillSkippedUnavailableCommits","Skipped unavailable commits"),": ",d.skippedUnavailableCommits]}),s.jsxs("span",{children:[r("commandCenter.productivity.backfillSkippedInvalidShas","Skipped invalid SHAs"),": ",d.skippedInvalidShas]})]}):null]}):null]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.durationTitle","Task duration")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-duration-completed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.completedTasks","Completed tasks")}),s.jsx("div",{className:"cc-stat-value",children:U(g.completedTasks)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-duration-avg",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.averageDuration","Average")}),s.jsx("div",{className:"cc-stat-value",children:z(g.averageMs,"cc-productivity-duration-avg-unavailable")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-duration-median",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.medianDuration","Median")}),s.jsx("div",{className:"cc-stat-value",children:z(g.medianMs,"cc-productivity-duration-median-unavailable")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-duration-p90",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.p90Duration","P90")}),s.jsx("div",{className:"cc-stat-value",children:z(g.p90Ms,"cc-productivity-duration-p90-unavailable")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-productivity-duration-total",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.productivity.totalDuration","Total active")}),s.jsx("div",{className:"cc-stat-value",children:z(g.totalMs,"cc-productivity-duration-total-unavailable")})]})]})]}),w?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-productivity-duration-trend",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.durationTrendTitle","Task duration over time")}),s.jsx(br,{series:x,ariaLabel:r("commandCenter.productivity.durationTrendTitle","Task duration over time"),xAxisLabels:C,valueFormatter:ad})]}):null,s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.byLanguage","Files by language")}),s.jsx(nt,{data:b,ariaLabel:r("commandCenter.productivity.byLanguage","Files by language")})]}),y.length>0?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-productivity-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.productivity.languagePie","Language share")}),s.jsx(Mt,{data:y,ariaLabel:r("commandCenter.productivity.languagePie","Language share")})]}):null]})}function Z$({projectId:e,addToast:t=()=>{}}){const{t:r}=se("app"),{artifacts:n,loading:a,error:i}=dj({projectId:e}),[o,l]=f.useState(()=>typeof window<"u"&&window.matchMedia?.("(max-width: 768px)").matches===!0),c=f.useMemo(()=>n.filter(u=>!!u.taskId&&fj(u)),[n]),d=f.useMemo(()=>c.map(({taskId:u,taskTitle:m,...h})=>h),[c]);return f.useEffect(()=>{const u=typeof window>"u"?void 0:window.matchMedia?.("(max-width: 768px)");if(!u)return;const m=()=>l(u.matches);return m(),u.addEventListener("change",m),()=>u.removeEventListener("change",m)},[]),s.jsx(ft,{testId:"review-artifacts",isLoading:a,error:i,isEmpty:c.length===0,emptyMessage:r("commandCenter.reviewArtifacts.empty","No review artifacts are available yet."),children:s.jsxs("section",{"aria-label":r("commandCenter.reviewArtifacts.title","Review artifacts"),children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.reviewArtifacts.title","Review artifacts")}),s.jsx(mj,{artifacts:d,projectId:e,isMobile:o,addToast:t,onOpenTask:()=>{}})]})})}function J$(e){const t=URL.createObjectURL(new Blob([JSON.stringify(e,null,2)],{type:"application/json"})),r=document.createElement("a");r.href=t,r.download="fusion-org-bundle.json",r.click(),URL.revokeObjectURL(t)}function Q$({projectId:e,onSettingsRefresh:t}){const{t:r}=se("app"),{confirm:n}=tc(),[a,i]=f.useState("idle"),[o,l]=f.useState("idle"),[c,d]=f.useState(""),[u,m]=f.useState(null),[h,v]=f.useState(null),[p,b]=f.useState(null),y=f.useRef(0),g=async()=>{i("working");try{const P=await fr(mr("/org/export",e),{method:"POST"});J$(P.bundle),i("success")}catch{i("error")}},j=()=>{try{const P=JSON.parse(c);if(!P||typeof P!="object"||Array.isArray(P))throw new Error("invalid");return P}catch{return m(r("commandCenter.portability.import.invalid","Paste a valid org bundle JSON document")),l("error"),null}},x=async()=>{const P=j();if(!P)return;const A=y.current;l("previewing"),m(null);try{const S=await fr(mr("/org/import",e),{method:"POST",body:JSON.stringify({bundle:P,dryRun:!0})});if(y.current!==A)return;v(S.result),b(P),l("previewed")}catch(S){if(y.current!==A)return;m(S instanceof Error?S.message:r("commandCenter.portability.import.error","Unable to preview import")),l("error")}},C=async()=>{if(!(!p||!await n({title:r("commandCenter.portability.import.confirmTitle","Import organization bundle?"),message:r("commandCenter.portability.import.confirmMessage","This applies the previewed configuration to this project."),confirmLabel:r("commandCenter.portability.import.confirmApply","Import bundle"),cancelLabel:r("actions.cancel","Cancel")}))){l("importing");try{await fr(mr("/org/import",e),{method:"POST",body:JSON.stringify({bundle:p,dryRun:!1})}),await t(),l("success")}catch(A){m(A instanceof Error?A.message:r("commandCenter.portability.import.error","Unable to import bundle")),l("error")}}},w=a==="working"?r("commandCenter.portability.export.working","Exporting…"):r("commandCenter.portability.export.action","Export org bundle");return s.jsx(s.Fragment,{children:s.jsxs("section",{className:"card cc-controls-card cc-portability-card","data-testid":"cc-controls-org-portability",children:[s.jsxs("div",{className:"cc-controls-card-header",children:[s.jsxs("div",{children:[s.jsx("h3",{children:r("commandCenter.portability.title","Org export / import")}),s.jsx("p",{children:r("commandCenter.portability.description","Download or preview a secret-scrubbed organization bundle.")})]}),s.jsx("span",{className:`cc-controls-save-state cc-controls-save-state--${a}`,"aria-live":"polite",children:a==="success"?r("commandCenter.portability.export.success","Export ready"):a==="error"?r("commandCenter.portability.export.error","Export failed"):r("commandCenter.controls.status.ready","Ready")})]}),s.jsxs("div",{className:"cc-portability-actions",children:[s.jsxs("button",{type:"button",className:"btn btn-secondary cc-controls-action",onClick:()=>void g(),disabled:a==="working",children:[s.jsx(Ri,{size:16,"aria-hidden":"true"}),w]}),s.jsx("label",{className:"cc-portability-import-label",htmlFor:"cc-org-bundle",children:r("commandCenter.portability.import.label","Org bundle JSON")}),s.jsx("textarea",{id:"cc-org-bundle",className:"input cc-portability-import-input",value:c,onChange:P=>{y.current+=1,d(P.target.value),v(null),b(null),m(null),l("idle")},placeholder:r("commandCenter.portability.import.placeholder","Paste a secret-scrubbed org bundle")}),s.jsxs("div",{className:"cc-portability-actions",children:[s.jsxs("button",{type:"button",className:"btn btn-secondary cc-controls-action",onClick:()=>void x(),disabled:!c||o==="previewing",children:[s.jsx(uc,{size:16,"aria-hidden":"true"}),o==="previewing"?r("commandCenter.portability.import.previewing","Previewing…"):r("commandCenter.portability.import.preview","Preview import")]}),s.jsx("button",{type:"button",className:"btn cc-controls-action",onClick:()=>void C(),disabled:o!=="previewed"&&o!=="success",children:o==="importing"?r("commandCenter.portability.import.importing","Importing…"):r("commandCenter.portability.import.apply","Apply import")})]})]}),h?s.jsx("p",{className:"cc-controls-muted","data-testid":"cc-org-import-preview",children:r("commandCenter.portability.import.previewReady","Preview ready. Confirm to apply this bundle.")}):null,u?s.jsx("p",{className:"cc-controls-error",role:"alert",children:u}):null]})})}const e2=15e3,t2=1e4,r2=4,Go=[.1,.25,.5,1,2,3,5,10];function ph(e){return e.usd??-1}function _i(e,t){return e.agentName??e.agentId??t}function n2(e){switch(e){case"running":return"status-dot status-dot--connecting";case"active":case"idle":return"status-dot status-dot--online";case"error":case"failed":return"status-dot status-dot--error";case"starting":case"pending":return"status-dot status-dot--pending";default:return"status-dot status-dot--pending"}}function a2(e,t,r,n){const a=[...e];return a.sort((i,o)=>{let l=0;return t==="agent"?l=_i(i,n).localeCompare(_i(o,n)):t==="tokens"?l=i.tokens.totalTokens-o.tokens.totalTokens:t==="cost"?l=ph(i.cost)-ph(o.cost):t==="filesChanged"?l=i.filesChanged-o.filesChanged:t==="tasksCompleted"?l=i.tasksCompleted-o.tasksCompleted:l=i.tasksInProgress-o.tasksInProgress,l===0&&(l=i.agentId.localeCompare(o.agentId)),l*r}),a}function yh(e,t,r){return[...e].sort((n,a)=>t(a)-t(n)||n.agentId.localeCompare(a.agentId)).slice(0,12).map(n=>{const a=t(n);return{label:_i(n,r),value:a,valueLabel:U(a)}})}function i2(e,t){if(!e)return t;const r=new Date(e);return Number.isNaN(r.getTime())?t:r.toLocaleString()}function s2({paused:e,label:t}){return s.jsxs("span",{className:"cc-team-status-pill",children:[s.jsx("span",{className:`status-dot ${e?"status-dot--pending":"status-dot--online"}`,"aria-hidden":"true"}),s.jsx("span",{children:t})]})}function Kx({node:e}){const t=e.children.length>0;return s.jsxs("li",{className:"cc-team-org-item",children:[s.jsx("div",{className:"cc-team-org-card",children:s.jsxs("div",{className:"cc-team-org-card-header",children:[s.jsx("span",{className:"cc-team-org-avatar",children:s.jsx(gj,{agent:e.agent,size:20})}),s.jsx("span",{className:"cc-team-org-name",children:e.agent.name}),s.jsx("span",{className:"cc-team-org-badge",children:e.agent.state})]})}),t?s.jsx("ul",{className:"cc-team-org-children",children:e.children.map(r=>s.jsx(Kx,{node:r},r.agent.id))}):null]})}function o2({range:e,projectId:t,addToast:r}){const{t:n}=se("app"),{globalPaused:a,enginePaused:i,toggleEnginePause:o,refresh:l}=Oh(t),[c,d]=f.useState(1),[u,m]=f.useState(!1),[h,v]=f.useState({status:"loading",data:null,error:null}),[p,b]=f.useState({status:"loading",data:null,error:null}),y=f.useRef(null),g=f.useRef(!0);f.useEffect(()=>(g.current=!0,()=>{g.current=!1,y.current&&clearTimeout(y.current)}),[]);const j=f.useRef(null),x=f.useRef(null),C=f.useRef(!1),[w,P]=f.useState(!1),[A,S]=f.useState(0),{data:N,isLoading:E,error:T}=Je("/command-center/team",e,{pollMs:e2,projectId:t});f.useEffect(()=>{let k=!1;return v({status:"loading",data:null,error:null}),(async()=>{try{const $=await vj(t);k||v({status:"loaded",data:$,error:null})}catch($){k||v({status:"error",data:null,error:$ instanceof Error?$.message:n("commandCenter.controls.orgChart.error","Unable to load org chart")})}})(),()=>{k=!0}},[t,n]),f.useEffect(()=>{const k=j.current;if(!k)return;const $=()=>{S(k.clientWidth)};$();const de=typeof ResizeObserver<"u"?new ResizeObserver($):null;return de?.observe(k),window.addEventListener("resize",$),()=>{de?.disconnect(),window.removeEventListener("resize",$)}},[h.status]),f.useEffect(()=>{let k=!1,$;const de=async()=>{try{const Le=await yj(t);k||b({status:"loaded",data:Le,error:null})}catch(Le){k||b({status:"error",data:null,error:Le instanceof Error?Le.message:n("commandCenter.controls.status.error","Unable to load live scheduler status")})}finally{k||($=setTimeout(de,t2))}};return b({status:"loading",data:null,error:null}),de(),()=>{k=!0,$&&clearTimeout($)}},[t,n]),f.useEffect(()=>{let k=!1;return Eh(t).then($=>{k||d($.heartbeatMultiplier??1)}).catch(()=>{}),()=>{k=!0}},[t]);const O=f.useCallback(k=>{const $=Number.isFinite(k)&&k>0?k:1;d($),y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{y.current=null,g.current&&m(!0),(async()=>{try{await _h({heartbeatMultiplier:$},t),g.current&&r?.(n("agents.heartbeatSpeedSet","Heartbeat speed set to ×{{value}}",{value:$.toFixed(1)}),"success")}catch(de){g.current&&r?.(n("agents.heartbeatSpeedSaveFailed","Failed to save heartbeat multiplier: {{error}}",{error:hj(de)}),"error")}finally{g.current&&m(!1)}})()},300)},[t,r,n]),I=f.useMemo(()=>N?.agents??[],[N?.agents]),z=n("commandCenter.team.unknownAgent","(unknown agent)"),D=n("commandCenter.team.unknownRole","Unknown role"),V=n("commandCenter.team.noChartData","No non-zero values for this chart yet."),[B,W]=f.useState("tokens"),[K,te]=f.useState(-1),G=f.useMemo(()=>I.map(k=>k.agentId).join(" "),[I]),M=f.useRef(null);f.useEffect(()=>{if(M.current===null){M.current=G;return}M.current!==G&&(M.current=G,W("tokens"),te(-1))},[G]);const q=f.useMemo(()=>a2(I,B,K,z),[I,K,B,z]),H=f.useMemo(()=>yh(I,k=>k.tokens.totalTokens,z),[I,z]),re=f.useMemo(()=>H.map(k=>({label:k.label,value:k.value})),[H]),ae=f.useMemo(()=>yh(I,k=>k.tasksCompleted,z),[I,z]),ye=H.some(k=>k.value>0),oe=ae.some(k=>k.value>0),He=f.useMemo(()=>I.flatMap(k=>[k.tokens.totalTokens,k.filesChanged,k.tasksCompleted]),[I]);function J(k){k===B?te($=>$===1?-1:1):(W(k),te(k==="agent"?1:-1))}function Ce(k){return k!==B?null:s.jsx("span",{className:"cc-sort-caret",children:K===1?"▲":"▼"})}const Re=f.useCallback(k=>{const $=x.current;!$||$.pointerId!==k.pointerId||(k.currentTarget.hasPointerCapture?.(k.pointerId)&&k.currentTarget.releasePointerCapture?.(k.pointerId),x.current=null,P(!1))},[]),L=f.useCallback(k=>{if(k.pointerType==="touch"||k.button!==0)return;const $=k.currentTarget;C.current=!1,x.current={pointerId:k.pointerId,startX:k.clientX,startY:k.clientY,startScrollLeft:$.scrollLeft,startScrollTop:$.scrollTop,isPanning:!1},$.setPointerCapture?.(k.pointerId)},[]),Y=f.useCallback(k=>{const $=x.current;if(!$||$.pointerId!==k.pointerId)return;const de=k.clientX-$.startX,Le=k.clientY-$.startY;if(!$.isPanning&&Math.hypot(de,Le)<r2)return;$.isPanning||($.isPanning=!0,C.current=!0,P(!0)),k.preventDefault();const Nt=k.currentTarget;Nt.scrollLeft=$.startScrollLeft-de,Nt.scrollTop=$.startScrollTop-Le},[]),ne=f.useCallback(k=>{C.current&&(C.current=!1,k.preventDefault(),k.stopPropagation())},[]),Ne=f.useMemo(()=>h.status!=="loaded"||A<=0&&h.data.length>1?"vertical":Y0({tree:h.data,availableWidth:A,preference:"auto"}),[A,h]),Q=p.data?.globalPause??a,le=p.data?.enginePaused??i,Oe=i2(p.data?.lastActivityAt,n("commandCenter.controls.status.noActivity","No recent activity"));return s.jsxs("div",{className:"cc-team-area",children:[s.jsxs("div",{className:"cc-team-ops-grid","data-testid":"cc-team-ops",children:[s.jsxs("section",{className:"card cc-team-ops-card cc-team-ops-card--org","data-testid":"cc-team-org-chart",children:[s.jsx("div",{className:"cc-team-ops-card-header",children:s.jsx("div",{children:s.jsx("h3",{children:n("commandCenter.controls.orgChart.title","Agent org chart")})})}),s.jsx("div",{className:`cc-team-org-scroll${w?" is-dragging":""}`,"data-layout":Ne,ref:j,"aria-live":"polite",onPointerDown:L,onPointerMove:Y,onPointerUp:Re,onPointerCancel:Re,onPointerLeave:Re,onClickCapture:ne,children:h.status==="loading"?s.jsx("p",{className:"cc-team-muted",children:s.jsx(rc,{label:n("commandCenter.controls.orgChart.loading","Loading org chart…")})}):h.status==="error"?s.jsx("p",{className:"cc-team-error",role:"alert",children:h.error}):h.data.length===0?s.jsx("p",{className:"cc-team-muted",children:n("commandCenter.controls.orgChart.empty","No agents are reporting in yet.")}):s.jsx("ul",{className:"cc-team-org-roots",children:h.data.map(k=>s.jsx(Kx,{node:k},k.agent.id))})})]}),s.jsxs("section",{className:"card cc-team-ops-card cc-team-ops-card--heartbeat","data-testid":"cc-team-heartbeat",children:[s.jsxs("div",{className:"cc-team-ops-card-header",children:[s.jsxs("div",{children:[s.jsx("h3",{children:n("commandCenter.controls.heartbeat.title","Heartbeat control")}),s.jsx("p",{children:n("commandCenter.controls.heartbeat.description","Pause or resume the scheduling heartbeat.")})]}),s.jsx(s2,{paused:le,label:le?n("commandCenter.controls.status.paused","Paused"):n("commandCenter.controls.status.running","Running")})]}),s.jsxs("dl",{className:"cc-team-facts",children:[s.jsxs("div",{children:[s.jsx("dt",{children:n("commandCenter.controls.status.lastActivity","Last activity")}),s.jsx("dd",{children:p.status==="loading"?n("commandCenter.controls.status.loading","Loading…"):Oe})]}),s.jsxs("div",{children:[s.jsx("dt",{children:n("commandCenter.controls.status.maxConcurrent","Max concurrent")}),s.jsx("dd",{children:p.data?.maxConcurrent??"—"})]})]}),p.status==="error"?s.jsx("p",{className:"cc-team-error",role:"alert",children:p.error}):null,s.jsxs("button",{type:"button",className:"btn btn-secondary cc-team-action",onClick:()=>void o(),disabled:Q,children:[le?s.jsx(Di,{size:16,"aria-hidden":"true"}):s.jsx(pj,{size:16,"aria-hidden":"true"}),s.jsx("span",{children:le?n("commandCenter.controls.heartbeat.resume","Resume heartbeat"):n("commandCenter.controls.heartbeat.pause","Pause heartbeat")})]}),Q?s.jsx("p",{className:"cc-team-muted",children:n("commandCenter.controls.heartbeat.disabledByStop","Start the AI engine before resuming the heartbeat.")}):null,s.jsxs("div",{className:"cc-team-heartbeat-multiplier heartbeat-multiplier-group",children:[s.jsxs("div",{className:"heartbeat-multiplier-controls",children:[s.jsx("label",{htmlFor:"ccHeartbeatMultiplier",className:"heartbeat-multiplier-label",children:n("agents.heartbeatSpeed","Heartbeat Speed")}),s.jsx("input",{id:"ccHeartbeatMultiplier",className:"heartbeat-multiplier-slider touch-target",type:"range",min:.1,max:10,step:.1,value:c,onChange:k=>{const $=Number(k.target.value);O(Number.isFinite($)&&$>0?$:1)},disabled:u}),s.jsxs("span",{className:"heartbeat-multiplier-value",children:["×",c.toFixed(1)]}),s.jsx("select",{className:"heartbeat-multiplier-preset",value:String(Go.reduce((k,$)=>Math.abs($-c)<Math.abs(k-c)?$:k,Go[0])),onChange:k=>{const $=Number(k.target.value);O(Number.isFinite($)&&$>0?$:1)},disabled:u,"aria-label":n("agents.heartbeatSpeedPreset","Heartbeat speed preset"),children:Go.map(k=>s.jsxs("option",{value:String(k),children:["×",k]},k))})]}),s.jsx("small",{className:"text-secondary",children:n("agents.heartbeatSpeedHint","Scales all agent heartbeat intervals. ×0.5 = twice as fast, ×2.0 = twice as slow. Default: ×1.0")})]})]})]}),s.jsx(Q$,{projectId:t,onSettingsRefresh:l}),s.jsxs(ft,{testId:"team",isLoading:E,error:T,isEmpty:!N||N.agents.length===0,emptyMessage:n("commandCenter.team.empty","No agents have reported team analytics yet."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.totalsTitle","Team totals")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-team-total-tokens",children:[s.jsx("div",{className:"cc-stat-label",children:n("commandCenter.team.totalTokens","Total tokens")}),s.jsx("div",{className:"cc-stat-value",children:U(N?.totals.tokens.totalTokens??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-team-total-cost",children:[s.jsx("div",{className:"cc-stat-label",children:n("commandCenter.team.totalCost","Estimated cost")}),s.jsx("div",{className:"cc-stat-value",children:N?Tr(N.totals.cost.usd,N.totals.cost.unavailable):"—"})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-team-total-files",children:[s.jsx("div",{className:"cc-stat-label",children:n("commandCenter.team.filesChanged","Files changed")}),s.jsx("div",{className:"cc-stat-value",children:U(N?.totals.filesChanged??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-team-total-completed",children:[s.jsx("div",{className:"cc-stat-label",children:n("commandCenter.team.tasksCompleted","Tasks done")}),s.jsx("div",{className:"cc-stat-value",children:U(N?.totals.tasksCompleted??0)})]})]})]}),s.jsxs("div",{className:"cc-area-section cc-team-chart-grid",children:[ye?s.jsxs("div",{className:"cc-team-chart-panel","data-testid":"cc-team-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.tokenShareByAgent","Token share by agent")}),s.jsx(Mt,{data:re,ariaLabel:n("commandCenter.team.tokenShareByAgent","Token share by agent")})]}):null,s.jsxs("div",{className:"cc-team-chart-panel","data-testid":"cc-team-tokens-chart",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.tokensByAgent","Tokens by agent")}),ye?s.jsx(nt,{data:H,ariaLabel:n("commandCenter.team.tokensByAgent","Tokens by agent")}):s.jsx("p",{className:"cc-muted-hint",children:V})]}),s.jsxs("div",{className:"cc-team-chart-panel","data-testid":"cc-team-completed-chart",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.completedByAgent","Tasks done by agent")}),oe?s.jsx(nt,{data:ae,ariaLabel:n("commandCenter.team.completedByAgent","Tasks done by agent")}):s.jsx("p",{className:"cc-muted-hint",children:V})]}),s.jsxs("div",{className:"cc-team-chart-panel cc-team-spark-panel","data-testid":"cc-team-spread-chart",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.spread","Team spread")}),s.jsx(Ot,{values:He,ariaLabel:n("commandCenter.team.spread","Team spread")})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:n("commandCenter.team.tableTitle","Per-agent breakdown")}),s.jsx("div",{className:"cc-table-wrap",children:s.jsxs("table",{className:"cc-table","data-testid":"cc-team-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsxs("th",{className:"cc-sortable",onClick:()=>J("agent"),"data-testid":"cc-team-sort-agent",children:[n("commandCenter.team.agent","Agent"),Ce("agent")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>J("tokens"),"data-testid":"cc-team-sort-tokens",children:[n("commandCenter.team.tokens","Tokens"),Ce("tokens")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>J("cost"),"data-testid":"cc-team-sort-cost",children:[n("commandCenter.team.cost","Cost"),Ce("cost")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>J("filesChanged"),"data-testid":"cc-team-sort-files",children:[n("commandCenter.team.files","Files changed"),Ce("filesChanged")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>J("tasksCompleted"),"data-testid":"cc-team-sort-completed",children:[n("commandCenter.team.done","Tasks done"),Ce("tasksCompleted")]}),s.jsxs("th",{className:"cc-sortable",onClick:()=>J("tasksInProgress"),"data-testid":"cc-team-sort-progress",children:[n("commandCenter.team.inProgress","In progress"),Ce("tasksInProgress")]})]})}),s.jsx("tbody",{children:q.map(k=>s.jsxs("tr",{"data-testid":`cc-team-row-${k.agentId}`,children:[s.jsx("td",{children:s.jsxs("span",{className:"cc-team-agent-cell",children:[s.jsx("span",{className:n2(k.state),"aria-label":n("commandCenter.team.state","Agent state: {{state}}",{state:k.state??n("commandCenter.team.unknownState","unknown")})}),s.jsxs("span",{children:[s.jsx("span",{className:"cc-team-agent-name",children:_i(k,z)}),s.jsx("span",{className:"cc-team-agent-role",children:k.role??D})]})]})}),s.jsx("td",{children:U(k.tokens.totalTokens)}),s.jsx("td",{children:Tr(k.cost.usd,k.cost.unavailable)}),s.jsx("td",{children:U(k.filesChanged)}),s.jsx("td",{children:U(k.tasksCompleted)}),s.jsx("td",{children:U(k.tasksInProgress)})]},k.agentId))})]})})]})]})]})}function Vx(e,t){return e.workflowName||e.workflowId||t}function l2(e,t,r,n){const a=[...e];return a.sort((i,o)=>{let l=0;return l=i.tokens.totalTokens-o.tokens.totalTokens,l===0&&(l=i.workflowId.localeCompare(o.workflowId)),l*r}),a}function gh(e,t,r){return[...e].sort((n,a)=>t(a)-t(n)||n.workflowId.localeCompare(a.workflowId)).slice(0,12).map(n=>{const a=t(n);return{label:Vx(n,r),value:a,valueLabel:U(a)}})}function c2({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i}=Je("/command-center/workflows",e,{projectId:t}),o=r("commandCenter.workflows.unknownWorkflow","(unknown workflow)"),l=r("commandCenter.workflows.noChartData","No non-zero values for this chart yet."),c=n?.workflows??[],d=l2(c,"tokens",-1),u=gh(c,p=>p.tokens.totalTokens,o),m=gh(c,p=>p.tasksCompleted,o),h=u.some(p=>p.value>0),v=m.some(p=>p.value>0);return s.jsxs(ft,{testId:"workflows",isLoading:a,error:i,isEmpty:!n||n.workflows.length===0,emptyMessage:r("commandCenter.workflows.empty","No workflow analytics have been recorded for this range yet."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.workflows.totalsTitle","Workflow totals")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-workflows-total-tokens",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.workflows.totalTokens","Total tokens")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.totals.tokens.totalTokens??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-workflows-total-cost",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.workflows.totalCost","Estimated cost")}),s.jsx("div",{className:"cc-stat-value",children:n?Tr(n.totals.cost.usd,n.totals.cost.unavailable):"—"})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-workflows-total-files",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.workflows.filesChanged","Files changed")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.totals.filesChanged??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-workflows-total-completed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.workflows.tasksCompleted","Tasks done")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.totals.tasksCompleted??0)})]})]})]}),s.jsxs("div",{className:"cc-area-section cc-team-chart-grid",children:[s.jsxs("div",{className:"cc-team-chart-panel","data-testid":"cc-workflows-tokens-chart",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.workflows.tokensByWorkflow","Tokens by workflow")}),h?s.jsx(nt,{data:u,ariaLabel:r("commandCenter.workflows.tokensByWorkflow","Tokens by workflow")}):s.jsx("p",{className:"cc-muted-hint",children:l})]}),s.jsxs("div",{className:"cc-team-chart-panel","data-testid":"cc-workflows-completed-chart",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.workflows.completedByWorkflow","Tasks done by workflow")}),v?s.jsx(nt,{data:m,ariaLabel:r("commandCenter.workflows.completedByWorkflow","Tasks done by workflow")}):s.jsx("p",{className:"cc-muted-hint",children:l})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.workflows.tableTitle","Per-workflow breakdown")}),s.jsx("div",{className:"cc-table-wrap",children:s.jsxs("table",{className:"cc-table","data-testid":"cc-workflows-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:r("commandCenter.workflows.workflow","Workflow")}),s.jsx("th",{children:r("commandCenter.workflows.tokens","Tokens")}),s.jsx("th",{children:r("commandCenter.workflows.cost","Cost")}),s.jsx("th",{children:r("commandCenter.workflows.files","Files changed")}),s.jsx("th",{children:r("commandCenter.workflows.done","Tasks done")}),s.jsx("th",{children:r("commandCenter.workflows.inProgress","In progress")}),s.jsx("th",{children:r("commandCenter.workflows.inReview","In review")})]})}),s.jsx("tbody",{children:d.map(p=>s.jsxs("tr",{"data-testid":`cc-workflows-row-${p.workflowId}`,children:[s.jsx("td",{children:s.jsxs("span",{className:"cc-team-agent-cell",children:[s.jsx(bj,{workflowId:p.workflowId,icon:p.workflowIcon,decorative:!0}),s.jsxs("span",{children:[s.jsx("span",{className:"cc-team-agent-name",children:Vx(p,o)}),s.jsx("span",{className:"cc-team-agent-role",children:p.workflowId})]})]})}),s.jsx("td",{children:U(p.tokens.totalTokens)}),s.jsx("td",{children:Tr(p.cost.usd,p.cost.unavailable)}),s.jsx("td",{children:U(p.filesChanged)}),s.jsx("td",{children:U(p.tasksCompleted)}),s.jsx("td",{children:U(p.tasksInProgress)}),s.jsx("td",{children:U(p.tasksInReview)})]},p.workflowId))})]})})]})]})}function u2({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i}=Je("/command-center/tokens?groupBy=model&granularity=day",e,{projectId:t}),{data:o,isLoading:l}=Je("/command-center/plugin-activations",e,{projectId:t}),c=f.useMemo(()=>(n?.groups??[]).filter(j=>(j.key??"").trim().length>0),[n?.groups]),d=c.length,u=f.useMemo(()=>[...c].sort((j,x)=>x.nTasks-j.nTasks||(j.key??"").localeCompare(x.key??"")).slice(0,12).map(j=>({label:j.key??r("commandCenter.tokens.unknownModel","(unknown)"),value:j.nTasks,valueLabel:U(j.nTasks),iconProvider:ec(j.key??"")})),[c,r]),m=f.useMemo(()=>u.map(j=>({label:j.label,value:j.value})),[u]),h=f.useMemo(()=>[{label:r("commandCenter.ecosystem.tokenTrendSeries","Tokens"),values:(n?.series??[]).map(j=>j.totalTokens)},{label:r("commandCenter.ecosystem.taskTrendSeries","Tasks"),values:(n?.series??[]).map(j=>j.nTasks)}],[n?.series,r]),v=m.some(j=>j.value>0),p=(n?.series??[]).length>0,b=o?.unavailable===!1,y=(!n||d===0)&&!b,g=a||l&&!n;return s.jsxs(ft,{testId:"ecosystem",isLoading:g,error:i,isEmpty:y,emptyMessage:r("commandCenter.ecosystem.empty","No models or plugins active in the selected range."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.ecosystem.breadthTitle","Ecosystem breadth")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-ecosystem-unique-models",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.ecosystem.uniqueModels","Active models")}),s.jsx("div",{className:"cc-stat-value",children:U(d)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-ecosystem-plugins",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.ecosystem.plugins","Plugin activations")}),s.jsx("div",{className:"cc-stat-value",children:b?s.jsx("span",{"data-testid":"cc-ecosystem-plugins-value",children:U(o?.activations??0)}):s.jsx("span",{className:"cc-unavailable",title:r("commandCenter.ecosystem.pluginsUnavailable","Plugin-activation metrics are not yet recorded"),"data-testid":"cc-ecosystem-plugins-unavailable",children:"—"})})]})]})]}),v?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-ecosystem-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.ecosystem.modelShareTitle","Task share by model")}),s.jsx(Mt,{data:m,ariaLabel:r("commandCenter.ecosystem.modelShareTitle","Task share by model")})]}):null,p?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-ecosystem-line",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.ecosystem.trendTitle","Ecosystem trend")}),s.jsx(br,{series:h,ariaLabel:r("commandCenter.ecosystem.trendTitle","Ecosystem trend")})]}):null,s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.ecosystem.perModelTitle","Tasks per model")}),s.jsx(nt,{data:u,ariaLabel:r("commandCenter.ecosystem.perModelTitle","Tasks per model")})]})]})}const bh=100,d2=1e3;function f2(e,t){const r=new Date(e);return Number.isNaN(r.getTime())?t:r.toLocaleString()}function m2({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i}=Je("/command-center/github",e,{projectId:t}),[o,l]=f.useState(!1),[c,d]=f.useState(null),[u,m]=f.useState(null),h=f.useCallback(async()=>{if(!o){l(!0),d(null),m(null);try{let D=0;const V={scanned:0,filled:0,skipped:0,errors:0};for(let B=0;B<d2;B+=1){const W=await xj({offset:D,limit:bh});if(V.scanned+=W.scanned,V.filled+=W.filled,V.skipped+=W.skipped,V.errors+=W.errors,!W.hasMore){d(V);return}D+=bh}d(V),m(r("commandCenter.github.backfillMaxBatches","Backfill stopped after the safety limit; rerun after checking server logs."))}catch(D){m(D instanceof Error?D.message:r("commandCenter.github.backfillFailed","Failed to backfill GitHub source issue close times"))}finally{l(!1)}}},[o,r]),v=f.useMemo(()=>n?.daily??[],[n?.daily]),p=f.useMemo(()=>n?.byRepo??[],[n?.byRepo]),b=f.useMemo(()=>n?.resolved??[],[n?.resolved]),y=f.useMemo(()=>v.map(D=>D.filed),[v]),g=f.useMemo(()=>v.map(D=>D.fixed),[v]),j=f.useMemo(()=>Math.max(0,...y,...g),[y,g]),x=f.useMemo(()=>p.slice(0,12).map(D=>({label:D.repo,value:D.filed+D.fixed,valueLabel:r("commandCenter.github.repoValue","{{filed}} filed / {{fixed}} fixed",{filed:U(D.filed),fixed:U(D.fixed)})})),[p,r]),C=f.useMemo(()=>[{label:r("commandCenter.github.filed","Filed by Fusion"),value:n?.filed??0},{label:r("commandCenter.github.fixed","Fixed by Fusion"),value:n?.fixed??0}],[n?.filed,n?.fixed,r]),w=f.useMemo(()=>[{label:r("commandCenter.github.filedTrend","Filed"),values:y},{label:r("commandCenter.github.fixedTrend","Fixed"),values:g}],[y,g,r]),P=n?.filed??0,A=n?.fixed??0,S=n?.net??P-A,N=!n||P===0&&A===0,E=v.length>0,T=P+A>0,O=x.length>0,I=b.length>0,z=u||(c?.errors??0)>0?"cc-github-backfill-status--error":o?"cc-github-backfill-status--warning":"";return s.jsxs(ft,{testId:"github",isLoading:a,error:i,isEmpty:!1,emptyMessage:r("commandCenter.github.empty","No GitHub issue activity in the selected range."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.totalsTitle","GitHub issue flow")}),N?s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.github.empty","No GitHub issue activity in the selected range.")}):null,s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-github-filed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.github.filed","Filed by Fusion")}),s.jsx("div",{className:"cc-stat-value",children:U(P)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-github-fixed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.github.fixed","Fixed by Fusion")}),s.jsx("div",{className:"cc-stat-value",children:U(A)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.github.fixedApproximation","Uses done tasks updated in range")}),s.jsx("div",{className:"cc-github-backfill-actions",children:s.jsxs("button",{type:"button",className:"btn","data-testid":"cc-github-backfill-button",onClick:()=>void h(),disabled:o,children:[s.jsx(Gt,{className:o?"spin":void 0}),s.jsx("span",{children:o?r("commandCenter.github.backfillBusy","Backfilling close times…"):r("commandCenter.github.backfillButton","Backfill exact close times")})]})}),o||c||u?s.jsxs("div",{className:`cc-github-backfill-status ${z}`.trim(),"data-testid":"cc-github-backfill-result",role:"status",children:[o?s.jsx("span",{children:r("commandCenter.github.backfillPending","Backfill is running in paginated batches.")}):null,u?s.jsx("span",{children:u}):null,c?s.jsx("span",{children:c.scanned===0&&c.filled===0?r("commandCenter.github.backfillNothing","Nothing to backfill. Scanned {{scanned}}, filled {{filled}}, skipped {{skipped}}, errors {{errors}}.",c):r("commandCenter.github.backfillResult","Backfill complete. Scanned {{scanned}}, filled {{filled}}, skipped {{skipped}}, errors {{errors}}.",c)}):null]}):null]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-github-net",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.github.net","Net")}),s.jsx("div",{className:"cc-stat-value",children:U(S)})]})]})]}),T?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-github-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.issueFlowShare","Filed vs fixed share")}),s.jsx(Mt,{data:C,ariaLabel:r("commandCenter.github.issueFlowShare","Filed vs fixed share")})]}):null,E?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-github-line",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.dailyLine","Filed vs fixed line")}),s.jsx(br,{series:w,ariaLabel:r("commandCenter.github.dailyLine","Filed vs fixed line")})]}):null,E?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-github-daily-trend",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.dailyTrend","Filed vs fixed trend")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.github.filedTrend","Filed")}),s.jsx(Ot,{values:y,max:j,ariaLabel:r("commandCenter.github.filedTrend","Filed")})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.github.fixedTrend","Fixed")}),s.jsx(Ot,{values:g,max:j,ariaLabel:r("commandCenter.github.fixedTrend","Fixed")})]})]})]}):null,O?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-github-by-repo",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.byRepo","By repository")}),s.jsx(nt,{data:x,ariaLabel:r("commandCenter.github.byRepo","By repository")})]}):null,I?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-github-resolved",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.github.resolvedTitle","Resolved issues")}),s.jsx("div",{className:"cc-table-wrap cc-github-resolved-table-wrap","data-testid":"cc-github-resolved-table-wrap",children:s.jsxs("table",{className:"cc-table cc-github-resolved-table","data-testid":"cc-github-resolved-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{scope:"col",children:r("commandCenter.github.resolvedIssue","Issue")}),s.jsx("th",{scope:"col",children:r("commandCenter.github.resolvedTask","Resolving task")}),s.jsx("th",{scope:"col",children:r("commandCenter.github.resolvedAt","Resolved at")})]})}),s.jsx("tbody",{children:b.map(D=>{const V=D.issueNumber===null?D.repo:`${D.repo}#${D.issueNumber}`,B=f2(D.resolvedAt,r("commandCenter.github.resolvedAtUnknown","Unknown")),W=!!D.taskTitle;return s.jsxs("tr",{children:[s.jsx("td",{className:"cc-github-resolved-issue-cell",children:D.url?s.jsx("a",{className:"cc-github-resolved-issue-link",href:D.url,target:"_blank",rel:"noopener noreferrer","aria-label":r("commandCenter.github.openResolvedIssue","Open GitHub issue {{issue}}",{issue:V}),children:V}):s.jsx("span",{className:"cc-github-resolved-issue-ref",children:V})}),s.jsx("td",{className:"cc-github-resolved-task-cell",children:s.jsxs("span",{className:"cc-github-resolved-task",children:[s.jsx("span",{className:"cc-github-resolved-task-title",children:D.taskTitle||D.taskId}),W?s.jsx("span",{className:"cc-stat-sub cc-github-resolved-task-id",children:D.taskId}):null]})}),s.jsx("td",{className:"cc-github-resolved-date-cell",children:s.jsxs("span",{className:"cc-github-resolved-date",children:[s.jsx("span",{children:B}),D.resolvedAtExact?null:s.jsx("span",{className:"cc-stat-sub cc-github-resolved-date-approx",children:r("commandCenter.github.resolvedApprox","approx")})]})})]},D.taskId)})})]})})]}):null]})}function v2(e,t){const r=new Date(e);return Number.isNaN(r.getTime())?t:r.toLocaleString()}function h2({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a,error:i}=Je("/command-center/gitlab",e,{projectId:t}),o=f.useMemo(()=>n?.daily??[],[n?.daily]),l=f.useMemo(()=>n?.byProject??[],[n?.byProject]),c=f.useMemo(()=>n?.resolved??[],[n?.resolved]),d=f.useMemo(()=>o.map(g=>g.filed),[o]),u=f.useMemo(()=>o.map(g=>g.fixed),[o]),m=f.useMemo(()=>Math.max(0,...d,...u),[d,u]),h=f.useMemo(()=>l.slice(0,12).map(g=>({label:g.project,value:g.filed+g.fixed,valueLabel:r("commandCenter.gitlab.projectValue","{{filed}} filed / {{fixed}} fixed",{filed:U(g.filed),fixed:U(g.fixed)})})),[l,r]),v=n?.filed??0,p=n?.fixed??0,b=n?.net??v-p,y=!n||v===0&&p===0;return s.jsxs(ft,{testId:"gitlab",isLoading:a,error:i,isEmpty:!1,emptyMessage:r("commandCenter.gitlab.empty","No GitLab issue or merge request activity in the selected range."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.gitlab.totalsTitle","GitLab issue and MR flow")}),y?s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.gitlab.empty","No GitLab issue or merge request activity in the selected range.")}):null,s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-gitlab-filed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.gitlab.filed","Filed by Fusion")}),s.jsx("div",{className:"cc-stat-value",children:U(v)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-gitlab-fixed",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.gitlab.fixed","Fixed by Fusion")}),s.jsx("div",{className:"cc-stat-value",children:U(p)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.gitlab.fixedApproximation","Uses persisted GitLab close times when available")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-gitlab-net",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.gitlab.net","Net")}),s.jsx("div",{className:"cc-stat-value",children:U(b)})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.gitlab.dailyTitle","Daily GitLab flow")}),o.length>0?s.jsxs("div",{className:"cc-chart-grid",children:[s.jsxs("div",{className:"card cc-chart-card",children:[s.jsx("h4",{children:r("commandCenter.gitlab.filedTrend","Filed")}),s.jsx(Ot,{values:d,max:m})]}),s.jsxs("div",{className:"card cc-chart-card",children:[s.jsx("h4",{children:r("commandCenter.gitlab.fixedTrend","Fixed")}),s.jsx(Ot,{values:u,max:m})]})]}):s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.gitlab.noDaily","No daily GitLab trend data yet.")})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.gitlab.projectsTitle","Projects and groups")}),h.length>0?s.jsx(nt,{data:h}):s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.gitlab.noProjects","No GitLab project activity yet.")})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.gitlab.resolvedTitle","Resolved GitLab source items")}),c.length>0?s.jsx("div",{className:"cc-resolved-list","data-testid":"cc-gitlab-resolved-list",children:c.slice(0,12).map(g=>{const x=`${g.issueNumber===null?g.project:`${g.project}#${g.issueNumber}`} · ${g.taskId}`;return s.jsxs("div",{className:"card cc-resolved-item",children:[s.jsxs("div",{children:[g.url?s.jsx("a",{href:g.url,target:"_blank",rel:"noopener noreferrer",children:x}):s.jsx("strong",{children:x}),s.jsx("div",{className:"cc-stat-sub",children:g.taskTitle})]}),s.jsxs("span",{className:"cc-stat-sub",children:[v2(g.resolvedAt,g.resolvedAt),g.resolvedAtExact?"":` ${r("commandCenter.gitlab.approximate","(approx.)")}`]})]},`${g.taskId}:${g.resolvedAt}`)})}):s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.gitlab.noResolved","No resolved GitLab source items in range.")})]})]})}function p2({range:e,projectId:t}){const{t:r}=se("app"),{data:n,isLoading:a}=Je("/command-center/signals",e,{projectId:t}),{data:i,isLoading:o}=Je("/command-center/signals/connectors",e,{projectId:t}),l=f.useMemo(()=>(n?.bySource??[]).map(y=>({label:y.source,value:y.count,valueLabel:U(y.count)})),[n?.bySource]),c=f.useMemo(()=>(n?.bySeverity??[]).map(y=>({label:y.severity,value:y.count,valueLabel:U(y.count)})),[n?.bySeverity]),d=f.useMemo(()=>[{label:r("commandCenter.signals.open","Open"),value:n?.open??0},{label:r("commandCenter.signals.resolved","Resolved"),value:n?.resolved??0}],[n?.open,n?.resolved,r]),u=!n||n.totalSignals===0,h=(Array.isArray(i?.connectors)?i.connectors.filter(y=>y.configured).map(y=>y.provider):void 0)??n?.connectors?.configured??[],p=h.length>0||n?.connectors?.anyConfigured===!0?r("commandCenter.signals.emptyAwaitingSignals","Connector configured, awaiting signals in this range. Configured providers: {{providers}}.",{providers:h.length>0?h.join(", "):r("commandCenter.signals.providersUnknown","unknown")}):r("commandCenter.signals.emptyNoConnectorConfigured","No signal connector configured. Connect GitLab, Sentry, Datadog, PagerDuty, or a generic webhook to see incident metrics here."),b=!u&&d.some(y=>y.value>0);return s.jsxs(ft,{testId:"signals",isLoading:a||o,error:null,isEmpty:u,emptyMessage:p,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.signals.summaryTitle","Summary")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-signals-total",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.signals.total","Total signals")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.totalSignals??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-signals-open",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.signals.open","Open")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.open??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-signals-resolved",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.signals.resolved","Resolved")}),s.jsx("div",{className:"cc-stat-value",children:U(n?.resolved??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-signals-mttr",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.signals.mttr","MTTR")}),s.jsx("div",{className:"cc-stat-value",children:n&&n.mttr.value!==null&&!n.mttr.unavailable?r("commandCenter.signals.mttrValue","{{min}} min",{min:Math.round(n.mttr.value)}):s.jsx("span",{className:"cc-unavailable",title:r("commandCenter.signals.mttrUnavailable","MTTR is unavailable until incident data is recorded"),children:"—"})})]})]})]}),b?s.jsxs("div",{className:"cc-area-section","data-testid":"cc-signals-pie",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.signals.statusShare","Signal status share")}),s.jsx(Mt,{data:d,ariaLabel:r("commandCenter.signals.statusShare","Signal status share")})]}):null,s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.signals.bySource","By source")}),s.jsx(nt,{data:l,ariaLabel:r("commandCenter.signals.bySource","By source")})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.signals.bySeverity","By severity")}),s.jsx(nt,{data:c,ariaLabel:r("commandCenter.signals.bySeverity","By severity")})]})]})}function Ux(e){return e===null||!Number.isFinite(e)||e<=0?0:Math.max(0,Math.min(1,e))}function y2(e){if(e===null)return"—";const t=Ux(e);return`${Math.round(t*100)}%`}function Ua({value:e,label:t,ariaLabel:r}){const n=Ux(e),a=y2(e),i={"--cc-radial-value":`${n*100}%`};return s.jsxs("div",{className:"cc-radial-gauge",role:"img","aria-label":r,style:i,children:[s.jsx("div",{className:"cc-radial-gauge-ring","aria-hidden":"true",children:s.jsx("div",{className:"cc-radial-gauge-core",children:s.jsx("span",{className:"cc-radial-gauge-value",children:a})})}),s.jsx("span",{className:"cc-radial-gauge-label",children:t})]})}const g2=5e3,b2=30,x2=["triage","todo","in-progress","in-review","done"],j2=["idle","active","running","error"];function xh(e,t){return!Number.isFinite(e)||!Number.isFinite(t)||t<=0?"—":`${(e/t*100).toFixed(1)}%`}function w2(e,t){if(t<=0)return"normal";const r=e/t;return r>=.85?"critical":r>=.65?"warning":"normal"}function C2(e,t){if(t<=0)return"normal";const r=e/t;return r>=.5?"critical":r>=.25?"warning":"normal"}function k2(e,t){if(t<=0)return"normal";const r=e/t;return r>=.9?"critical":r>=.75?"warning":"normal"}function S2(e,t){if(e===null||!Number.isFinite(e)||e<0)return"normal";const r=t>0?e/t:e;return r>=80?"critical":r>=50?"warning":"normal"}function Ma(e){return e==="critical"?"cc-system-value--critical":e==="warning"?"cc-system-value--warning":""}function N2(e,t){if(!e)return t;const r=new Date(e);return Number.isNaN(r.getTime())?t:r.toLocaleString()}function Ti(e,t){return!Number.isFinite(e)||!Number.isFinite(t)||t<=0?0:Math.max(0,Math.min(1,e/t))}function $n(e){return e==null||!Number.isFinite(e)?0:Math.max(0,Math.min(100,e))}function P2(e){const t=e.systemStats,r=t.systemTotalMem-t.systemFreeMem;return{cpuPercent:$n(t.cpuPercent),usedSystemMemPercent:Ti(r,t.systemTotalMem)*100,heapUsedPercent:Ti(t.heapUsed,t.heapLimit)*100}}function A2({projectId:e}){const{t}=se("app"),[r,n]=f.useState(null),[a,i]=f.useState([]),[o,l]=f.useState(!0),[c,d]=f.useState(null),[u,m]=f.useState(!0),[h,v]=f.useState(90),[p,b]=f.useState(!1),[y,g]=f.useState(!1),[j,x]=f.useState(null),[C,w]=f.useState(null),[P,A]=f.useState(null),[S,N]=f.useState(null),{nodes:E}=Th(),T=f.useMemo(()=>E.find(k=>k.type==="local")?.id,[E]),O=S??T??null,I=E.find(k=>k.id===O)??null,z=E.length>1,D=I?.name??t("systemStats.localNodeFallback","Local node"),V=f.useCallback(k=>{const $=[];return k.type==="local"&&$.push(t("systemStats.thisNodeSuffix","this node")),k.status&&k.status!=="online"&&$.push(t("systemStats.nodeStatusSuffix","{{status}}",{status:k.status})),$.length>0?`${k.name} (${$.join(" · ")})`:k.name},[E,t]),B=f.useCallback(async k=>{l(!0);try{const $=O&&O!==T?await jj(O,e):await wj(e);n($),i(de=>[...de,P2($)].slice(-b2)),d(null),A(Date.now()),k?.preserveKillResult||x(null)}catch($){d($ instanceof Error?$.message:t("systemStats.errorLoadStats","Failed to load system stats"))}finally{l(!1)}},[O,T,e,t]);f.useEffect(()=>{B()},[B]);const W=f.useCallback(()=>{B()},[B]);vn(W,g2),f.useEffect(()=>{N(k=>k&&E.some($=>$.id===k)?k:null)},[E]),f.useEffect(()=>{i([]),d(null),x(null),g(!1)},[O]),f.useEffect(()=>{let k=!1;return(async()=>{try{const de=await Cj();if(k)return;m(de.vitestAutoKillEnabled??!0),v(de.vitestKillThresholdPct??90),w(null)}catch(de){k||w(de instanceof Error?de.message:t("systemStats.errorLoadVitestSettings","Failed to load vitest settings"))}})(),()=>{k=!0}},[t]);const K=f.useCallback(async k=>{m(k);try{await Fu({vitestAutoKillEnabled:k}),w(null)}catch($){w($ instanceof Error?$.message:t("systemStats.errorSaveVitestSettings","Failed to save vitest settings"))}},[t]),te=f.useCallback(async k=>{const $=Math.min(99,Math.max(50,Number.isFinite(k)?Math.round(k):90));v($);try{await Fu({vitestKillThresholdPct:$}),w(null)}catch(de){w(de instanceof Error?de.message:t("systemStats.errorSaveVitestSettings","Failed to save vitest settings"))}},[t]),G=f.useCallback(async()=>{if(!p){if(!y){g(!0);return}b(!0);try{const k=O&&O!==T?await Bu(e,O,T):await Bu(e);x(k),g(!1),await B({preserveKillResult:!0})}catch(k){d(k instanceof Error?k.message:t("systemStats.errorKillVitest","Failed to kill vitest processes"))}finally{b(!1)}}},[y,O,p,B,T,e,t]),M=r?.systemStats,q=r?.taskStats,H=M?M.systemTotalMem-M.systemFreeMem:0,re=M?Ti(H,M.systemTotalMem):0,ae=M?Ti(M.heapUsed,M.heapLimit):0,ye=M?.cpuPercent===null||M?.cpuPercent===void 0?null:$n(M.cpuPercent)/100,oe=M?.cpuPercent===null||M?.cpuPercent===void 0?t("systemStats.cpuSampling","Sampling…"):`${M.cpuPercent.toFixed(1)}%`,He=P?t("systemStats.updatedAt","Updated {{time}}",{time:new Date(P).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}):t("systemStats.waitingFirstUpdate","Waiting for first update"),J=f.useMemo(()=>{const k=q?.byColumn??{};return(Object.keys(k).length>0?Object.keys(k):x2).map(de=>({label:de,value:k[de]??0,valueLabel:U(k[de]??0)}))},[q?.byColumn]),Ce=f.useMemo(()=>J.map(k=>({label:k.label,value:k.value})),[J]),Re=f.useMemo(()=>[{label:t("commandCenter.system.cpuSeries","CPU"),values:a.map(k=>$n(k.cpuPercent))},{label:t("commandCenter.system.memorySeries","Memory"),values:a.map(k=>$n(k.usedSystemMemPercent))},{label:t("commandCenter.system.heapSeries","Heap"),values:a.map(k=>$n(k.heapUsedPercent))}],[a,t]),L=Ce.some(k=>k.value>0),Y=a.length>0,ne=f.useMemo(()=>{const k=q?.agents;return j2.map($=>({label:t(`systemStats.agent${$[0].toUpperCase()}${$.slice(1)}`,$),value:k?.[$]??0,valueLabel:U(k?.[$]??0)}))},[q?.agents,t]),Ne=f.useMemo(()=>{const k=M?Ma(w2(M.heapUsed,M.heapLimit)):"",$=M?Ma(C2(M.rss,M.systemTotalMem)):"",de=M?Ma(k2(H,M.systemTotalMem)):"",Le=M?Ma(S2(M.cpuPercent,M.cpuCount)):"";return[{label:t("systemStats.rowAppCpu","App CPU"),value:oe,detail:M?.cpuPercent===null?t("systemStats.cpuFirstSamplePending","First sample pending"):t("systemStats.cpuProcessUsage","process usage"),className:Le},{label:t("systemStats.rowRss","RSS"),value:M?ct(M.rss):"—",detail:M?xh(M.rss,M.systemTotalMem):"—",className:$},{label:t("systemStats.rowHeapUsed","Heap Used"),value:M?ct(M.heapUsed):"—",detail:M?t("systemStats.rowHeapUsedDetail","of {{total}}",{total:ct(M.heapTotal)}):"—",className:k},{label:t("systemStats.rowHeapLimit","Heap Limit"),value:M?ct(M.heapLimit):"—",detail:t("systemStats.rowHeapLimitDetail","V8 limit")},{label:t("systemStats.rowExternal","External"),value:M?ct(M.external):"—"},{label:t("systemStats.rowArrayBuffers","Array Buffers"),value:M?ct(M.arrayBuffers):"—"},{label:t("systemStats.rowLoadAvg","Load Avg"),value:M?.loadAvg.map(Nt=>Nt.toFixed(2)).join(" ")??"—"},{label:t("systemStats.rowCores","Cores"),value:M?.cpuCount??"—"},{label:t("systemStats.rowPlatform","Platform"),value:M?.platform??"—"},{label:t("systemStats.rowNode","Node"),value:M?.nodeVersion??"—"},{label:t("systemStats.rowPid","PID"),value:M?.pid??"—"},{label:t("systemStats.rowMemoryUsed","Memory Used"),value:M?ct(H):"—",detail:M?`${xh(H,M.systemTotalMem)} of ${ct(M.systemTotalMem)}`:"—",className:de},{label:t("systemStats.rowMemoryFree","Memory Free"),value:M?ct(M.systemFreeMem):"—"}]},[oe,M,t,H]),Q=r?.vitestProcessCount,le=N2(r?.vitestLastAutoKillAt,t("systemStats.notYet","Not yet")),Oe=o&&!!r;return s.jsxs(ft,{testId:"system",isLoading:o&&!r,error:r?null:c,isEmpty:!1,children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsxs("div",{className:"cc-area-section-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.system.healthTitle","Live system health")}),s.jsxs("div",{className:"cc-system-refresh","aria-live":"polite",children:[z?s.jsxs("label",{className:"cc-system-node-selector",htmlFor:"cc-system-node-select",children:[s.jsx("span",{children:t("systemStats.nodeSelectorLabel","Node")}),s.jsx("select",{id:"cc-system-node-select",className:"input","data-testid":"cc-system-node-select","aria-label":t("systemStats.nodeSelectorAriaLabel","Select system stats node"),value:O??"",onChange:k=>{i([]),x(null),g(!1),N(k.target.value||null)},children:E.map(k=>s.jsx("option",{value:k.id,children:V(k)},k.id))})]}):null,s.jsx("span",{children:t("systemStats.viewingNode","Viewing {{node}}",{node:D})}),s.jsx("span",{children:t("systemStats.autoRefresh","Auto-refresh · 5s")}),s.jsx("span",{children:He}),s.jsx("button",{type:"button",className:"btn-icon",onClick:()=>void B(),title:t("systemStats.refreshTitle","Refresh"),"aria-label":t("systemStats.refreshAriaLabel","Refresh system stats"),children:s.jsx(Gt,{size:16,className:Oe?"spin":void 0})})]})]}),c&&r?s.jsx("p",{className:"cc-system-note cc-system-note--error",role:"status",children:t("systemStats.footerRefreshFailed","Latest refresh failed: {{error}}",{error:c})}):null,s.jsxs("div",{className:"cc-stat-grid cc-system-gauges",children:[s.jsxs("div",{className:"card cc-stat-card cc-stat-card--gauge","data-testid":"cc-system-cpu-gauge",children:[s.jsx(Ua,{value:ye,label:t("systemStats.rowAppCpu","App CPU"),ariaLabel:t("commandCenter.system.cpuGauge","App CPU usage")}),s.jsx("span",{className:"cc-stat-sub",children:oe})]}),s.jsxs("div",{className:"card cc-stat-card cc-stat-card--gauge","data-testid":"cc-system-mem-gauge",children:[s.jsx(Ua,{value:re,label:t("systemStats.rowMemoryUsed","Memory Used"),ariaLabel:t("commandCenter.system.memoryGauge","System memory used")}),s.jsx("span",{className:"cc-stat-sub",children:M?`${ct(H)} / ${ct(M.systemTotalMem)}`:"—"})]}),s.jsxs("div",{className:"card cc-stat-card cc-stat-card--gauge","data-testid":"cc-system-heap-gauge",children:[s.jsx(Ua,{value:ae,label:t("systemStats.rowHeapUsed","Heap Used"),ariaLabel:t("commandCenter.system.heapGauge","Heap used")}),s.jsx("span",{className:"cc-stat-sub",children:M?`${ct(M.heapUsed)} / ${ct(M.heapLimit)}`:"—"})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.system.trendsTitle","Live trends")}),Y?s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-line",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.system.resourceTrend","Resource trend")}),s.jsx(br,{series:Re,ariaLabel:t("commandCenter.system.resourceTrend","Resource trend")})]}):null,s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-cpu-trend",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.system.cpuTrend","CPU over time")}),s.jsx(Ot,{values:a.map(k=>k.cpuPercent),max:100,ariaLabel:t("commandCenter.system.cpuTrend","CPU over time")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-memory-trend",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.system.memoryTrend","Memory over time")}),s.jsx(Ot,{values:a.map(k=>k.usedSystemMemPercent),max:100,ariaLabel:t("commandCenter.system.memoryTrend","Memory over time")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-heap-trend",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.system.heapTrend","Heap over time")}),s.jsx(Ot,{values:a.map(k=>k.heapUsedPercent),max:100,ariaLabel:t("commandCenter.system.heapTrend","Heap over time")})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.system.workloadTitle","Workload")}),s.jsxs("div",{className:"cc-system-chart-grid",children:[L?s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-pie",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.system.taskShare","Task distribution")}),s.jsx(Mt,{data:Ce,ariaLabel:t("commandCenter.system.taskShare","Task distribution")})]}):null,s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-tasks-bar",children:[s.jsx("div",{className:"cc-stat-label",children:t("systemStats.sectionTasks","Tasks")}),s.jsx(nt,{data:J,ariaLabel:t("systemStats.sectionTasksAriaLabel","Task stats")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-system-agents-bar",children:[s.jsx("div",{className:"cc-stat-label",children:t("systemStats.sectionAgents","Agents")}),s.jsx(nt,{data:ne,ariaLabel:t("systemStats.sectionAgentsAriaLabel","Agent stats")})]})]})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.system.detailsTitle","Runtime details")}),s.jsx("div",{className:"cc-stat-grid","data-testid":"cc-system-details-grid",children:Ne.map(k=>s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:k.label}),s.jsx("div",{className:`cc-stat-value ${k.className??""}`.trim(),children:k.value}),k.detail?s.jsx("span",{className:"cc-stat-sub",children:k.detail}):null]},k.label))})]}),s.jsxs("div",{className:"cc-area-section","data-testid":"cc-system-vitest-controls",children:[s.jsxs("h3",{className:"cc-area-section-title cc-system-section-title-with-icon",children:[s.jsx(Z0,{}),s.jsx("span",{children:t("systemStats.sectionVitest","Vitest Controls")})]}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:t("systemStats.vitestProcesses","Vitest Processes")}),s.jsx("div",{className:"cc-stat-value",children:Q??"—"})]}),s.jsxs("div",{className:"card cc-stat-card",children:[s.jsx("div",{className:"cc-stat-label",children:t("systemStats.lastAutoKill","Last auto-kill: {{time}}",{time:""}).trim()}),s.jsx("div",{className:"cc-stat-value",children:le})]})]}),s.jsxs("div",{className:"card cc-system-vitest-card",children:[s.jsxs("button",{type:"button",className:"btn btn-danger","data-testid":"cc-system-kill-vitest",onClick:()=>void G(),disabled:p||Q===0,children:[s.jsx(xw,{}),s.jsx("span",{children:y?t("systemStats.confirmKill","Confirm Kill?"):t("systemStats.killVitest","Kill Vitest Processes")})]}),s.jsxs("label",{className:"cc-system-toggle-row",children:[s.jsx("input",{type:"checkbox",checked:u,onChange:k=>{K(k.target.checked)}}),s.jsx("span",{children:t("systemStats.autoKillLabel","Auto-kill vitest on memory pressure")})]}),s.jsxs("div",{className:"cc-system-threshold-row",children:[s.jsx("label",{htmlFor:"cc-system-vitest-threshold-number",children:t("systemStats.killThresholdLabel","Kill threshold (%)")}),s.jsxs("div",{className:"cc-system-threshold-controls",children:[s.jsx("input",{id:"cc-system-vitest-threshold-range",type:"range",min:50,max:99,value:h,"aria-label":t("systemStats.killThresholdSliderAriaLabel","Kill threshold slider (%)"),onChange:k=>{const $=Number.parseInt(k.target.value,10);te(Number.isNaN($)?90:$)}}),s.jsx("input",{id:"cc-system-vitest-threshold-number",type:"number",className:"input",min:50,max:99,value:h,"aria-label":t("systemStats.killThresholdInputAriaLabel","Kill threshold (%)"),onChange:k=>{const $=Number.parseInt(k.target.value,10);te(Number.isNaN($)?90:$)},onBlur:()=>{te(h)}})]})]}),j?s.jsx("p",{className:`cc-system-note ${j.killed>0?"cc-system-note--success":"cc-system-note--error"}`,children:t("systemStats.killedProcesses","Killed {{count}} processes",{count:j.killed})}):null,C?s.jsx("p",{className:"cc-system-note cc-system-note--error",children:C}):null]})]})]})}const Tn=500,O2=1500,E2=3e3,_2=9e4,T2=50,M2=3e3;function jh(e){return e.scrollHeight-(e.scrollTop+e.clientHeight)<=T2}function I2(e){const t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleTimeString()}function D2({projectId:e,addToast:t}){const{t:r}=se("app"),n=f.useCallback((R,ce)=>t?.(R,ce),[t]),[a,i]=f.useState(null),[o,l]=f.useState(null),[c,d]=f.useState(null),[u,m]=f.useState(null),h=typeof window>"u"?void 0:Q0(window.location),[v,p]=f.useState(null),[b,y]=f.useState([]),g=f.useRef(new Set),j=f.useRef(null),x=f.useRef(!0),C=f.useRef(null),[w,P]=f.useState(null),A=f.useRef(null),S=f.useRef(null),N=f.useRef(null),E=f.useRef(new Set),T=f.useRef(!1),O=f.useRef(0),[I,z]=f.useState(!1),[D,V]=f.useState([]),B=f.useRef(null),W=f.useRef(!0),[K,te]=f.useState(null),G=f.useCallback(()=>{const R=j.current;R&&(x.current=jh(R))},[]),M=f.useCallback(()=>{const R=B.current;R&&(W.current=jh(R))},[]),q=f.useCallback(async()=>{try{const R=await Ps();return i(R),l(null),R.activeRebuild&&p(ce=>ce&&ce.id===R.activeRebuild.id?ce:(y([]),g.current=new Set,x.current=!0,R.activeRebuild)),R}catch(R){return l(R instanceof Error?R.message:String(R)),null}},[]);f.useEffect(()=>{let R=!1;return(async()=>{await q();try{const{job:ce}=await zu();if(!R&&ce){p(ce);const Pe=ce.lines??[];g.current=new Set(Pe.map(Ge=>Ge.i)),y(ga(Pe,Tn))}}catch{}})(),()=>{R=!0}},[q]),f.useEffect(()=>{S.current=v},[v]),f.useEffect(()=>{N.current=a},[a]);const H=f.useCallback(R=>{if(E.current.has(R.id)){p(R);return}if(E.current.add(R.id),p(R),R.status==="succeeded"&&R.restartScheduled)A.current=N.current?.pid??null,P("waiting");else if(R.status==="succeeded"){const ce=R.kind==="fn-binary"&&R.scope==="link-local"?r("systemControls.fnLinkLocalSucceeded","Local fn binary built and linked"):R.kind==="fn-binary"&&R.scope==="use-global"?r("systemControls.fnUseGlobalSucceeded","Switched default fn to global npm install"):r("systemControls.rebuildSucceeded","Rebuild finished successfully");n(ce,"success")}else n(r("systemControls.rebuildFailed","Job failed — see output for details"),"error")},[r,n]),re=f.useCallback(async()=>{const R=S.current;if(!R||R.status!=="running"||T.current)return;const ce=Date.now();if(ce-O.current<M2)return;O.current=ce,T.current=!0;const Pe=N.current?.pid;try{let Ge=null;try{({job:Ge}=await zu())}catch{O.current=0;return}if(S.current?.id!==R.id)return;if(Ge&&Ge.id===R.id){const Cn=Ge.lines;Cn&&(g.current=new Set(Cn.map(Ss=>Ss.i)),y(ga(Cn,Tn))),Ge.status!=="running"&&H(Ge);return}const Kr=await Ps().catch(()=>null);if(!Kr||S.current?.id!==R.id)return;if(i(Kr),Pe!==void 0&&Kr.pid!==Pe){p(null),y([]),g.current=new Set,R.restartAfter?(A.current=Kr.pid,P("back")):n(r("systemControls.jobLostToRestart","The server restarted while the job was streaming — its output is gone"),"warning");return}const ya=r("systemControls.jobOutcomeUnknown","Lost the job stream before a result arrived — the outcome is unknown");E.current.add(R.id),p({...R,status:"failed",finishedAt:Date.now(),error:ya}),n(ya,"warning")}finally{T.current=!1}},[H,r,n]);f.useEffect(()=>!v||v.status!=="running"?void 0:qa(`/api/system/jobs/${v.id}/stream`,{events:{line:ce=>{try{const Pe=JSON.parse(ce.data);if(g.current.has(Pe.i))return;g.current.add(Pe.i),y(Ge=>ga([...Ge,Pe],Tn))}catch{}},end:ce=>{try{const Pe=JSON.parse(ce.data);H(Pe)}catch{}}},onReconnect:()=>{re()},onError:()=>{re()}}),[v?.id,v?.status,H,re]),f.useEffect(()=>{const R=j.current;R&&x.current&&(R.scrollTop=R.scrollHeight)},[b]),f.useEffect(()=>{if(w!=="waiting")return;let R=!1;const ce=Date.now(),Pe=setInterval(()=>{(async()=>{if(Date.now()-ce>_2){R||P("timeout");return}try{const Ge=await Ps();if(R)return;(A.current===null||Ge.pid!==A.current)&&(i(Ge),P("back"))}catch{}})()},O2);return()=>{R=!0,clearInterval(Pe)}},[w]),f.useEffect(()=>{if(w!=="back")return;const R=setTimeout(()=>window.location.reload(),E2);return()=>clearTimeout(R)},[w]),f.useEffect(()=>!I||!a?.logsSupported?void 0:(W.current=!0,V([]),qa("/api/system/logs/stream",{events:{log:ce=>{try{const Pe=JSON.parse(ce.data);V(Ge=>ga([...Ge,Pe],Tn))}catch{}}},onReconnect:()=>V([])})),[I,a?.logsSupported]),f.useEffect(()=>{const R=B.current;R&&W.current&&(R.scrollTop=R.scrollHeight)},[D]);const ae=f.useCallback(async(R,ce)=>{if(!c){d(R);try{await ce()}catch(Pe){n(Pe instanceof Error?Pe.message:String(Pe),"error")}finally{d(null)}}},[c,n]);f.useEffect(()=>{if(!v||v.status!=="running")return;const R=requestAnimationFrame(()=>{C.current?.scrollIntoView({behavior:"smooth",block:"nearest"})});return()=>cancelAnimationFrame(R)},[v?.id,v?.status]);const ye=f.useCallback(R=>{x.current=!0,y([]),p(R)},[]),oe=f.useCallback(R=>ae(`rebuild-${R}`,async()=>{const ce=await kj(R,a?.restartSupported??!1);ye(ce)}),[ye,a?.restartSupported,ae]),He=f.useCallback(()=>ae("fn-link-local",async()=>{const R=await Sj();ye(R)}),[ye,ae]),J=f.useCallback(()=>ae("fn-use-global",async()=>{const R=await Nj();ye(R)}),[ye,ae]),Ce=f.useCallback(()=>ae("check-updates",async()=>{const R=await Pj();if(te(R),R.error){n(R.error,"error");return}if(R.disabled){n(r("systemControls.updatesDisabled","Update checks are disabled in global settings"),"warning");return}if(R.updateAvailable&&R.latestVersion){n(r("systemControls.updateAvailable","Update available: v{{version}} (current: v{{current}})",{version:R.latestVersion,current:R.currentVersion}),"success");return}n(r("systemControls.upToDate","You're up to date (v{{version}})",{version:R.currentVersion}),"success")}),[ae,r,n]),Re=f.useCallback(()=>ae("restart",async()=>{A.current=a?.pid??null,await Aj("system-panel"),P("waiting")}),[a?.pid,ae]),L=f.useCallback(()=>ae("engine",async()=>{const R=await Oj();n(r("systemControls.engineRestarted","Restarted {{count}} engine(s){{failed}}",{count:R.restarted.length,failed:R.failed.length?` — ${R.failed.length} failed`:""}),R.failed.length?"warning":"success")}),[ae,r,n]),Y=f.useCallback(()=>ae("agents",async()=>{const R=await Ej(e);n(r("systemControls.agentsRestarted","Restarted {{count}} active agent(s){{failed}}",{count:R.restarted.length,failed:R.failed.length?` — ${R.failed.length} failed`:""}),R.failed.length?"warning":"success")}),[e,ae,r,n]),ne=f.useCallback(()=>ae("plugins-reload",async()=>{const R=await _j();n(r("systemControls.pluginsReloaded","Reloaded {{count}} plugin(s){{failed}}",{count:R.reloaded.length,failed:R.failed.length?` — ${R.failed.length} failed`:""}),R.failed.length?"warning":"success")}),[ae,r,n]),Ne=f.useCallback(()=>ae("backup",async()=>{await J0(e),n(r("systemControls.backupCreated","Database backup created"),"success")}),[e,ae,r,n]),Q=f.useCallback(async()=>{const R=await Tj().catch(()=>null),ce=a?.logsSupported?await Mj(100).then(Pe=>Pe.entries).catch(()=>[]):[];return{capturedAt:new Date().toISOString(),version:R?.version,health:R??void 0,system:a??void 0,recentLogs:ce}},[a]),le=f.useCallback(()=>ae("diagnostics",async()=>{const R=await Q();if(await Ij(JSON.stringify(R,null,2))){n(r("systemControls.diagnosticsCopied","Diagnostics copied to clipboard"),"success");return}n(r("systemControls.diagnosticsCopyFailed","Could not copy diagnostics to clipboard"),"error")}),[Q,ae,r,n]),Oe=a&&!a.restartSupported?r("systemControls.restartUnavailable","Needs a supervising parent — restart the dashboard without --no-supervise."):void 0,k=a?.rebuildSupported??!1,$=a?.fnBinaryLinkLocalSupported??a?.rebuildSupported??!1,de=a?.fnBinaryUseGlobalSupported!==!1,Le=v?.status==="running",Nt=f.useMemo(()=>[{key:"rebuild-app",icon:vw,title:r("systemControls.rebuildRestart","Rebuild & restart"),description:r("systemControls.rebuildRestartDesc","Rebuild core, engine, dashboard and changed plugins, then restart the server."),cta:r("systemControls.rebuildRestartCta","Rebuild"),hidden:!k,disabled:Le,run:()=>void oe("app"),testId:"cc-syscontrol-rebuild-app"},{key:"rebuild-full",icon:Dj,title:r("systemControls.fullRebuild","Full rebuild & restart"),description:r("systemControls.fullRebuildDesc","Rebuild the entire workspace (slower), then restart."),cta:r("systemControls.fullRebuildCta","Full rebuild"),hidden:!k,disabled:Le,run:()=>void oe("full"),testId:"cc-syscontrol-rebuild-full"},{key:"fn-link-local",icon:pw,title:r("systemControls.fnLinkLocal","Build & link local fn"),description:r("systemControls.fnLinkLocalDesc","Build the standalone fn binary from this source checkout and install it as your default PATH binary (~/.local)."),cta:r("systemControls.fnLinkLocalCta","Build & link"),hidden:!$,disabled:Le,run:()=>void He(),testId:"cc-syscontrol-fn-link-local"},{key:"fn-use-global",icon:Ri,title:r("systemControls.fnUseGlobal","Use global npm fn"),description:r("systemControls.fnUseGlobalDesc","Remove the local-build shims and reinstall the published runfusion.ai package globally."),cta:r("systemControls.fnUseGlobalCta","Install global"),hidden:!de,disabled:Le,run:()=>void J(),testId:"cc-syscontrol-fn-use-global"},{key:"check-updates",icon:uw,title:r("systemControls.checkUpdates","Check for updates"),description:r("systemControls.checkUpdatesDesc","Query the registry for a newer published Fusion version."),cta:r("systemControls.checkUpdatesCta","Check now"),disabled:!1,run:()=>void Ce(),testId:"cc-syscontrol-check-updates"},{key:"restart",icon:Mh,title:r("systemControls.restartServer","Restart server"),description:r("systemControls.restartServerDesc","Gracefully restart the dashboard and engine process."),cta:r("systemControls.restartServerCta","Restart"),disabled:!a?.restartSupported,note:Oe,run:()=>void Re(),testId:"cc-syscontrol-restart"},{key:"engine",icon:Rj,title:r("systemControls.restartEngine","Restart engine"),description:r("systemControls.restartEngineDesc","Stop and restart all running project engines in place."),cta:r("systemControls.restartEngineCta","Restart engine"),disabled:!a?.engineAvailable,note:a&&!a.engineAvailable?r("systemControls.engineUnavailable","Engine is not running in this process."):void 0,run:()=>void L(),testId:"cc-syscontrol-engine"},{key:"agents",icon:Lj,title:r("systemControls.restartAgents","Restart all agents"),description:r("systemControls.restartAgentsDesc","Stop active runs and bounce every active agent. Paused agents stay paused."),cta:r("systemControls.restartAgentsCta","Restart agents"),disabled:!1,run:()=>void Y(),testId:"cc-syscontrol-agents"},{key:"rebuild-plugins",icon:lw,title:r("systemControls.rebuildPlugins","Rebuild & reload plugins"),description:r("systemControls.rebuildPluginsDesc","Rebuild changed plugin bundles and hot-reload them without a server restart."),cta:r("systemControls.rebuildPluginsCta","Rebuild plugins"),hidden:!k,disabled:Le,run:()=>void oe("plugins"),testId:"cc-syscontrol-rebuild-plugins"},{key:"plugins-reload",icon:Gt,title:r("systemControls.reloadPlugins","Reload plugins"),description:r("systemControls.reloadPluginsDesc","Hot-reload every started plugin from its current build."),cta:r("systemControls.reloadPluginsCta","Reload"),disabled:!a?.pluginReloadSupported,note:a&&!a.pluginReloadSupported?r("systemControls.pluginReloadUnavailable","Plugin runner is unavailable in this mode."):void 0,run:()=>void ne(),testId:"cc-syscontrol-plugins-reload"},{key:"backup",icon:fw,title:r("systemControls.backupDb","Backup database"),description:r("systemControls.backupDbDesc","Create an integrity-checked backup of the database now."),cta:r("systemControls.backupDbCta","Backup now"),disabled:!1,run:()=>void Ne(),testId:"cc-syscontrol-backup"},{key:"diagnostics",icon:$j,title:r("systemControls.copyDiagnostics","Copy diagnostics"),description:r("systemControls.copyDiagnosticsDesc","Copy a JSON bundle with health, runtime info and recent logs."),cta:r("systemControls.copyDiagnosticsCta","Copy"),disabled:!1,run:()=>void le(),testId:"cc-syscontrol-diagnostics"}],[He,J,oe,Y,Ne,Ce,le,L,ne,Re,a,$,de,k,Le,Oe,r]),pa=v?v.status==="running"?r("systemControls.jobRunning","Running…"):v.status==="succeeded"?r("systemControls.jobSucceeded","Succeeded"):r("systemControls.jobFailed","Failed"):null,ks=v?.kind==="fn-binary"&&v.scope==="link-local"?r("systemControls.fnLinkLocalOutput","Local fn build output"):v?.kind==="fn-binary"&&v.scope==="use-global"?r("systemControls.fnUseGlobalOutput","Global npm install output"):r("systemControls.rebuildOutput","Rebuild output");return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"cc-area-section","data-testid":"cc-system-controls",children:[s.jsxs("div",{className:"cc-area-section-header cc-system-controls-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("systemControls.title","System controls")}),s.jsx("button",{type:"button",className:"btn-icon","data-testid":"cc-system-refresh",onClick:()=>void q(),title:r("systemControls.refresh","Refresh capabilities"),"aria-label":r("systemControls.refresh","Refresh capabilities"),children:s.jsx(Gt,{size:16})})]}),o?s.jsx("p",{className:"cc-system-note cc-system-note--error",role:"status",children:r("systemControls.infoError","Failed to load system info: {{error}}",{error:o})}):null,w==="waiting"?s.jsxs("div",{className:"cc-syscontrols-banner cc-syscontrols-banner--waiting",role:"status","data-testid":"cc-system-restart-waiting",children:[s.jsx(Gt,{size:16,className:"spin"}),s.jsx("span",{children:r("systemControls.restartWaiting","Restarting server — waiting for it to come back…")})]}):null,w==="back"?s.jsxs("div",{className:"cc-syscontrols-banner cc-syscontrols-banner--back",role:"status","data-testid":"cc-system-restart-back",children:[s.jsx("span",{children:r("systemControls.restartBack","Server is back online — reloading…")}),s.jsx("button",{type:"button",className:"btn",onClick:()=>window.location.reload(),children:r("systemControls.reloadNow","Reload now")})]}):null,w==="timeout"?s.jsxs("div",{className:"cc-syscontrols-banner cc-syscontrols-banner--error",role:"status","data-testid":"cc-system-restart-timeout",children:[s.jsx("span",{children:r("systemControls.restartTimeout","The server did not come back within the expected time. It may still be restarting, or the restart may have stopped it.")}),s.jsx("button",{type:"button",className:"btn",onClick:()=>window.location.reload(),children:r("systemControls.reloadNow","Reload now")})]}):null,K&&!K.error?s.jsx("div",{className:`cc-syscontrols-banner ${K.updateAvailable?"cc-syscontrols-banner--back":""}`,role:"status","data-testid":"cc-system-update-check-result",children:s.jsx("span",{children:K.disabled?r("systemControls.updatesDisabled","Update checks are disabled in global settings"):K.updateAvailable&&K.latestVersion?r("systemControls.updateAvailable","Update available: v{{version}} (current: v{{current}})",{version:K.latestVersion,current:K.currentVersion}):r("systemControls.upToDate","You're up to date (v{{version}})",{version:K.currentVersion})})}):null,s.jsxs("div",{className:"cc-syscontrols-grid",children:[Nt.filter(R=>!("hidden"in R&&R.hidden)).map(R=>s.jsxs("div",{className:"card cc-syscontrol-card","data-testid":R.testId,children:[s.jsxs("div",{className:"cc-syscontrol-head",children:[s.jsx(R.icon,{size:18,className:"cc-syscontrol-icon","aria-hidden":!0}),s.jsx("span",{className:"cc-syscontrol-title",children:R.title})]}),s.jsx("p",{className:"cc-syscontrol-desc",children:R.description}),R.note?s.jsx("p",{className:"cc-syscontrol-note",children:R.note}):null,s.jsx("button",{type:"button",className:"btn cc-syscontrol-cta",disabled:R.disabled||c!==null||w==="waiting",onClick:R.run,children:c===R.key?r("systemControls.working","Working…"):R.cta})]},R.key)),s.jsxs("div",{className:"card cc-syscontrol-card","data-testid":"cc-syscontrol-report-bug",children:[s.jsxs("div",{className:"cc-syscontrol-head",children:[s.jsx(ew,{size:18,className:"cc-syscontrol-icon","aria-hidden":!0}),s.jsx("span",{className:"cc-syscontrol-title",children:r("systemControls.reportBug","Report")})]}),s.jsx("p",{className:"cc-syscontrol-desc",children:r("systemControls.reportBugDesc","Report a bug, send feedback, share an idea, or get help through a guided prompt.")}),s.jsx("div",{className:"cc-syscontrol-cta",children:s.jsx(tw,{onSelect:m})})]})]}),u?s.jsx(rw,{actionType:u,contextRefs:h,onClose:()=>m(null)}):null]}),v?s.jsxs("div",{ref:C,className:"cc-area-section","data-testid":"cc-system-rebuild-output",children:[s.jsxs("div",{className:"cc-area-section-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:ks}),s.jsx("span",{className:`cc-syscontrols-job-status cc-syscontrols-job-status--${v.status}`,children:pa})]}),(b[0]?.i??0)>0?s.jsx("p",{className:"cc-system-note","data-testid":"cc-system-rebuild-output-truncated",children:r("systemControls.jobOutputTruncated","Showing the most recent {{count}} lines — earlier output trimmed",{count:Tn})}):null,s.jsx("pre",{ref:j,className:"cc-syscontrols-output","aria-live":"polite",onScroll:G,children:b.map(R=>`${R.stream==="stderr"?"! ":""}${R.text}`).join(`
|
|
99
|
+
`)}),v.status==="failed"&&v.error?s.jsx("p",{className:"cc-system-note cc-system-note--error",children:v.error}):null]}):null,s.jsxs("div",{className:"cc-area-section","data-testid":"cc-system-logs",children:[s.jsxs("div",{className:"cc-area-section-header",children:[s.jsxs("h3",{className:"cc-area-section-title cc-system-section-title-with-icon",children:[s.jsx(gw,{size:16}),s.jsx("span",{children:r("systemControls.serverLogs","Server logs")})]}),s.jsx("button",{type:"button",className:"btn",disabled:a?!a.logsSupported:!1,onClick:()=>z(R=>!R),"data-testid":"cc-system-logs-toggle",children:I?r("systemControls.hideLogs","Hide logs"):r("systemControls.viewLogs","View logs")})]}),a&&!a.logsSupported?s.jsx("p",{className:"cc-system-note",children:r("systemControls.logsUnavailable","Host-process logs are not available in this mode.")}):null,I&&a?.logsSupported?s.jsxs("div",{ref:B,className:"cc-syscontrols-output cc-syscontrols-logs","aria-live":"polite",onScroll:M,children:[D.map((R,ce)=>s.jsxs("div",{className:`cc-syscontrols-log-line cc-syscontrols-log-line--${R.level}`,children:[s.jsx("span",{className:"cc-syscontrols-log-time",children:I2(R.timestamp)}),R.prefix?s.jsxs("span",{className:"cc-syscontrols-log-prefix",children:["[",R.prefix,"]"]}):null,s.jsx("span",{className:"cc-syscontrols-log-message",children:R.message})]},`${R.timestamp}-${ce}`)),D.length===0?s.jsx("div",{className:"cc-syscontrols-log-line",children:r("systemControls.noLogs","No log entries yet.")}):null]}):null]})]})}function R2(e,t){if(!Number.isFinite(e)||e<=0)return 0;const r=Number.isFinite(t)&&t>0?t:1;return Math.max(0,Math.min(100,e/r*100))}function L2(e,t){return t===null?null:!Number.isFinite(t)||t<=0?"—":`${Math.max(0,Math.min(100,e/t*100)).toFixed(0)}%`}function qx({stages:e,ariaLabel:t}){const r=e.reduce((n,a)=>a.value>n?a.value:n,0);return s.jsx("ol",{className:"cc-funnel","aria-label":t,children:e.map((n,a)=>{const i=R2(n.value,r),o=a>0?e[a-1].value:null,l=L2(n.value,o),c=String(Number.isFinite(n.value)?n.value:0);return s.jsxs("li",{className:"cc-funnel-stage",children:[s.jsxs("div",{className:"cc-funnel-header",children:[s.jsx("span",{className:"cc-funnel-label",children:n.label}),l!==null?s.jsx("span",{className:"cc-funnel-conversion",children:l}):null]}),s.jsx("div",{className:"cc-funnel-track",children:s.jsx("div",{className:"cc-funnel-fill",style:{width:`${i}%`},role:"img","aria-label":`${n.label}: ${c}`})}),s.jsx("span",{className:"cc-funnel-value",children:c})]},n.label)})})}function Wx(e){const t=e.trim().toLowerCase();return t==="in-progress"||t==="in progress"||t==="doing"}function $2(e){return(e??[]).reduce((t,r)=>t+(Wx(r.column)?r.count:0),0)}function F2(e){return(e?.activeSessions??0)+(e?.activeRuns??0)}const B2=5e3,z2=3e4,K2=["session:updated","session:completed","run:created","run:updated","run:completed","run:cancelled","run:failed","agent:stateChanged","task:moved","task:updated","task:created","task:deleted"],V2=new Set(["triage","signal","backlog"]),Xo=[{id:"triage",match:e=>V2.has(e)},{id:"todo",match:e=>e==="todo"||e==="to-do"||e==="to do"||e==="ready"},{id:"in-progress",match:Wx},{id:"in-review",match:e=>e==="in-review"||e==="in review"||e==="review"},{id:"done",match:e=>e==="done"||e==="complete"||e==="completed"||e==="shipped"}];function Hx(e){const[t,r]=f.useState(null),[n,a]=f.useState(!0),[i,o]=f.useState(null),[l,c]=f.useState(!1),d=f.useRef(null),u=f.useRef(null),m=f.useRef(Symbol("no-live-snapshot-request")),h=f.useRef(m.current),{capture:v}=Bj(e,"useLiveSnapshot"),p=f.useCallback(()=>{u.current!==null&&(clearInterval(u.current),u.current=null,c(!1))},[]),b=f.useCallback(async()=>{const g=v(),j=g.projectIdAtStart;if(h.current!==j){h.current=j;try{const x=await fr(mr("/command-center/live",j));if(g.isStale())return;d.current=x,r(x),o(null)}catch(x){if(g.isStale())return;o(x instanceof Error?x.message:"Failed to load live snapshot")}finally{if(h.current===j&&(h.current=m.current),!g.isStale()){a(!1);const x=d.current;(typeof document>"u"||document.visibilityState!=="hidden")&&!!x&&(x.activeSessions>0||x.activeRuns>0)?u.current===null&&(u.current=setInterval(()=>{b()},B2),c(!0)):p()}}}},[v,p]);f.useEffect(()=>{d.current=null,r(null),a(!0),o(null),b();const g=qa("/api/events",{events:Object.fromEntries(K2.map(x=>[x,()=>void b()])),onReconnect:()=>void b()}),j=()=>{if(document.visibilityState==="hidden"){p();return}b()};return typeof document<"u"&&document.addEventListener("visibilitychange",j),()=>{typeof document<"u"&&document.removeEventListener("visibilitychange",j),g(),p()}},[b,e,p]);const y=f.useCallback(()=>{b()},[b]);return{snapshot:t,isLoading:n,error:i!==null&&t===null?i:null,polling:l,reload:y}}function U2(e){const t=e.split(/[/\\]/).filter(Boolean);return t.length>0?t[t.length-1]:e}function q2(e,t){const r=Date.parse(t),n=new Map;for(const a of e){if(!a.worktreePath)continue;const i=n.get(a.worktreePath)??{count:0,freshestMs:0},o=Date.parse(a.updatedAt);n.set(a.worktreePath,{count:i.count+1,freshestMs:Number.isFinite(o)?Math.max(i.freshestMs,o):i.freshestMs})}return Array.from(n.entries()).map(([a,i])=>{const o=Number.isFinite(r)&&i.freshestMs>0?r-i.freshestMs:0;return{path:a,label:U2(a),sessionCount:i.count,inactive:o>z2}}).sort((a,i)=>i.sessionCount-a.sessionCount)}function W2(e,t){const r=new Map;for(const i of Xo)r.set(i.id,0);let n=0;for(const i of e){const o=i.column.trim().toLowerCase(),l=Xo.find(c=>c.match(o));l?r.set(l.id,(r.get(l.id)??0)+i.count):n+=i.count}const a=Xo.map(i=>({label:t(`commandCenter.missionControl.stage.${i.id}`,i.id),value:r.get(i.id)??0}));return n>0&&a.push({label:t("commandCenter.missionControl.stage.other","Other"),value:n}),a}function H2({projectId:e}={}){const{t}=se("app"),{snapshot:r,isLoading:n,error:a}=Hx(e),i=f.useMemo(()=>r?.sessions??[],[r?.sessions]),o=f.useMemo(()=>r?q2(r.sessions,r.capturedAt):[],[r]),l=f.useMemo(()=>r?W2(r.columns,t):[],[r,t]);if(n&&!r)return s.jsxs("div",{className:"cc-loading-inline","data-testid":"mission-control-loading",children:[s.jsx(Ql,{size:18,className:"spin"}),s.jsx("span",{children:t("commandCenter.missionControl.loading","Loading live activity…")})]});if(a!==null)return s.jsxs("div",{className:"cc-area-error","data-testid":"mission-control-error",role:"alert",children:[s.jsx(Mi,{size:22}),s.jsx("p",{children:a})]});const c=(r?.activeSessions??0)>0||(r?.activeRuns??0)>0;return s.jsxs("div",{className:"cc-mission-control","data-testid":"mission-control",children:[s.jsxs("div",{className:"cc-stat-grid","data-testid":"mission-control-summary",children:[s.jsxs("div",{className:"card cc-stat-card","data-testid":"mission-control-active-sessions",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.missionControl.activeSessions","Active sessions")}),s.jsx("div",{className:"cc-stat-value",children:r?.activeSessions??0})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"mission-control-active-runs",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.missionControl.activeRuns","Active runs")}),s.jsx("div",{className:"cc-stat-value",children:r?.activeRuns??0})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"mission-control-active-nodes",children:[s.jsx("div",{className:"cc-stat-label",children:t("commandCenter.missionControl.activeNodes","Active nodes")}),s.jsx("div",{className:"cc-stat-value",children:r?.activeNodes??0})]})]}),c?null:s.jsxs("div",{className:"cc-area-empty","data-testid":"mission-control-idle",children:[s.jsx(Fj,{size:24}),s.jsx("p",{children:t("commandCenter.missionControl.idle","No active sessions. Live updates resume when work starts.")})]}),s.jsxs("div",{className:"cc-mc-columns",children:[s.jsxs("section",{className:"cc-mc-section","data-testid":"mission-control-sessions",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.missionControl.sessionsTitle","Sessions")}),i.length===0?s.jsx("p",{className:"cc-mc-muted","data-testid":"mission-control-sessions-empty",children:t("commandCenter.missionControl.noSessions","No active sessions.")}):s.jsx("ul",{className:"cc-mc-list",children:i.map(d=>s.jsxs("li",{className:"cc-mc-session","data-testid":`mission-control-session-${d.id}`,children:[s.jsx("span",{className:"cc-mc-session-purpose",children:d.purpose||d.adapterId}),s.jsxs("span",{className:"cc-mc-session-meta",children:[s.jsx("span",{className:"cc-mc-badge",children:d.agentState}),d.taskId?s.jsx("span",{className:"cc-mc-task",children:d.taskId}):null]})]},d.id))})]}),s.jsxs("section",{className:"cc-mc-section","data-testid":"mission-control-nodes",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.missionControl.nodesTitle","Nodes")}),o.length===0?s.jsx("p",{className:"cc-mc-muted","data-testid":"mission-control-nodes-empty",children:t("commandCenter.missionControl.noNodes","No active nodes.")}):s.jsx("ul",{className:"cc-mc-list",children:o.map(d=>s.jsxs("li",{className:`cc-mc-node${d.inactive?" inactive":""}`,"data-testid":`mission-control-node-${d.label}`,"data-inactive":d.inactive?"true":"false",children:[s.jsx("span",{className:"cc-mc-node-label",children:d.label}),s.jsxs("span",{className:"cc-mc-node-meta",children:[d.inactive?s.jsx("span",{className:"cc-mc-badge inactive",children:t("commandCenter.missionControl.inactive","inactive")}):null,s.jsx("span",{className:"cc-mc-node-count",children:t("commandCenter.missionControl.sessionCount","{{count}} session",{count:d.sessionCount})})]})]},d.path))})]})]}),s.jsxs("section",{className:"cc-mc-section","data-testid":"mission-control-funnel",children:[s.jsx("h3",{className:"cc-area-section-title",children:t("commandCenter.missionControl.funnelTitle","SDLC funnel (live)")}),s.jsx(qx,{stages:l,ariaLabel:t("commandCenter.missionControl.funnelTitle","SDLC funnel (live)")})]})]})}const G2=500,Mn={maxConcurrent:As.maxConcurrent,maxWorktrees:As.maxWorktrees,worktreeLimitEnabled:!!As.worktreeLimitEnabled},Yr={maxConcurrent:{min:1,max:50},maxWorktrees:{min:1,max:50}},Gx={maxConcurrent:{key:"commandCenter.controls.concurrency.maxConcurrent",defaultValue:"Max concurrent tasks"},maxWorktrees:{key:"commandCenter.controls.concurrency.maxWorktrees",defaultValue:"Max worktrees"}};function Xx(e,t,r){return Math.min(r,Math.max(t,e))}function Yo(e,t){return Math.max(Yr[e].max,t)}function X2(e,t,r,n){return n<=r?0:Xx((Math.min(e,t)-r)/(n-r),0,1)}function Y2(e){return{"--use-pct":`${e*100}%`,"--use-offset":`calc((var(--cc-controls-range-thumb-size) / 2) + ((100% - var(--cc-controls-range-thumb-size)) * ${e}))`}}function Z2(e,t){return Object.keys(Gx).filter(r=>e[r]!==t[r])}function J2({paused:e,label:t}){return s.jsxs("span",{className:"cc-controls-status-pill",children:[s.jsx("span",{className:`status-dot ${e?"status-dot--pending":"status-dot--online"}`,"aria-hidden":"true"}),s.jsx("span",{children:t})]})}function Q2({projectId:e,colorTheme:t,themeMode:r,shadcnCustomColors:n={},resolvedThemeMode:a=r==="light"?"light":"dark",onColorThemeChange:i,onThemeModeChange:o,onShadcnCustomColorsChange:l=()=>{},onChangeView:c}){const{t:d}=se("app"),{confirm:u}=tc(),{globalPaused:m,toggleGlobalPause:h,refresh:v}=Oh(e),[p,b]=f.useState({status:"loading",data:null,error:null}),[y,g]=f.useState(!1),[j,x]=f.useState("idle"),C=f.useRef(Mn),w=f.useRef(null),P=f.useRef(!1),A=zj();f.useEffect(()=>{let B=!1;return g(!1),x("idle"),b({status:"loading",data:null,error:null}),(async()=>{try{const[W,K]=await Promise.all([Kj(e),Eh(e)]);if(!B){const te={maxConcurrent:K.maxConcurrent??W.maxConcurrent??Mn.maxConcurrent,maxWorktrees:K.maxWorktrees??Mn.maxWorktrees,worktreeLimitEnabled:K.worktreeLimitEnabled!==!1};C.current=te,w.current=null,P.current=!1,b({status:"loaded",data:te,error:null})}}catch(W){B||b({status:"error",data:C.current,error:W instanceof Error?W.message:d("commandCenter.controls.concurrency.error","Unable to load concurrency settings")})}})(),()=>{B=!0}},[e,d]),f.useEffect(()=>{if(!y||!p.data||P.current)return;const B=p.data,W=setTimeout(()=>{const K=C.current,te=Z2(B,K);if(te.length===0){g(!1),w.current=null;return}P.current=!0;const G=te.map(q=>{const H=Gx[q];return d("commandCenter.controls.concurrency.confirmChangeSummaryItem","{{setting}} from {{oldValue}} to {{newValue}}",{setting:d(H.key,H.defaultValue),oldValue:K[q],newValue:B[q]})}),M=te.length===1?d("commandCenter.controls.concurrency.confirmMessage","Change {{setting}}?",{setting:G[0]}):d("commandCenter.controls.concurrency.confirmMultipleMessage","Change these concurrency settings: {{settings}}?",{settings:G.join("; ")});u({title:d("commandCenter.controls.concurrency.confirmTitle","Confirm concurrency change"),message:M,confirmLabel:d("commandCenter.controls.concurrency.confirmSave","Save change"),cancelLabel:d("commandCenter.controls.concurrency.confirmCancel","Cancel")}).then(q=>{if(P.current=!1,!q){b({status:"loaded",data:C.current,error:null}),g(!1),w.current=null,x("idle");return}x("saving"),_h(B,e).then(async()=>{await v(),C.current=B,g(!1),w.current=null,x("saved")}).catch(()=>{x("error")})})},G2);return()=>clearTimeout(W)},[u,y,p.data,e,v,d]);const S=(B,W,K,te)=>{const G=Xx(Number(W),K,te);w.current=B,b(M=>({status:"loaded",data:{...M.data??Mn,[B]:G},error:null})),g(!0),x("idle")},N=m,E=p.data??Mn,T=A.status==="loaded",O=A.projectActiveCount(e),I=Yo("maxConcurrent",E.maxConcurrent),z=p.status==="loaded"&&E.worktreeLimitEnabled,D=p.status==="loaded",V=X2(O,E.maxConcurrent,Yr.maxConcurrent.min,I);return s.jsx("section",{className:"cc-controls","data-testid":"command-center-controls","aria-label":d("commandCenter.controls.title","Operator controls"),children:s.jsxs("div",{className:"cc-controls-grid",children:[s.jsxs("section",{className:"card cc-controls-card","data-testid":"cc-controls-engine",children:[s.jsxs("div",{className:"cc-controls-card-header",children:[s.jsxs("div",{children:[s.jsx("h3",{children:d("commandCenter.controls.engine.title","AI engine")}),s.jsx("p",{children:d("commandCenter.controls.engine.description","Stopping the engine halts all AI work.")})]}),s.jsx(J2,{paused:N,label:N?d("commandCenter.controls.status.stopped","Stopped"):d("commandCenter.controls.status.running","Running")})]}),s.jsxs("button",{type:"button",className:"btn btn-secondary cc-controls-action",onClick:()=>void h(),children:[s.jsx(Mh,{size:16,"aria-hidden":"true"}),s.jsx("span",{children:N?d("header.startAiEngine","Start AI Engine"):d("header.stopAiEngine","Stop AI Engine")})]}),c?s.jsxs("div",{className:"cc-overview-engine-nav","data-testid":"command-center-engine-panel",children:[s.jsx("button",{type:"button",className:"btn btn-secondary cc-overview-engine-nav-btn",onClick:()=>c("board"),children:d("commandCenter.controls.engine.viewBoard","View Board")}),s.jsx("button",{type:"button",className:"btn btn-secondary cc-overview-engine-nav-btn",onClick:()=>c("agents"),children:d("commandCenter.controls.engine.viewAgents","View Agents")})]}):null]}),s.jsxs("section",{className:"card cc-controls-card","data-testid":"cc-controls-theme",children:[s.jsx("div",{className:"cc-controls-card-header",children:s.jsxs("div",{children:[s.jsx("h3",{children:d("commandCenter.controls.theme.title","Theme")}),s.jsx("p",{children:d("commandCenter.controls.theme.description","Switch the dashboard theme with live color previews.")})]})}),s.jsx(nw,{colorTheme:t,themeMode:r,shadcnCustomColors:n,resolvedThemeMode:a,onColorThemeChange:i,onThemeModeChange:o,onShadcnCustomColorsChange:l})]}),s.jsxs("section",{className:"card cc-controls-card cc-controls-card--concurrency","data-testid":"cc-controls-concurrency",children:[s.jsxs("div",{className:"cc-controls-card-header",children:[s.jsxs("div",{children:[s.jsx("h3",{children:d("commandCenter.controls.concurrency.title","Concurrency")}),s.jsx("p",{children:d("commandCenter.controls.concurrency.description","Tune live scheduler capacity.")})]}),s.jsx("span",{className:`cc-controls-save-state cc-controls-save-state--${j}`,"aria-live":"polite",children:p.status==="loading"?d("commandCenter.controls.status.loading","Loading…"):j==="saving"?d("commandCenter.controls.status.saving","Saving…"):j==="saved"?d("commandCenter.controls.status.saved","Saved"):j==="error"?d("commandCenter.controls.status.saveError","Save failed"):d("commandCenter.controls.status.ready","Ready")})]}),s.jsxs("div",{className:"cc-controls-sliders",children:[s.jsxs("label",{className:"cc-controls-slider",htmlFor:"cc-max-concurrent",children:[s.jsxs("span",{className:"cc-controls-slider-label",children:[d("commandCenter.controls.concurrency.maxConcurrent","Max concurrent tasks"),s.jsx("strong",{children:E.maxConcurrent})]}),T?s.jsxs(s.Fragment,{children:[s.jsx("small",{className:"cc-controls-slider-caption","data-testid":"cc-project-running",children:d("commandCenter.controls.concurrency.runningProject","{{count}} running (this project)",{count:O})}),s.jsx("small",{className:"cc-controls-slider-caption","data-testid":"cc-global-running",children:d("commandCenter.controls.concurrency.runningGlobal","{{count}} running (all projects)",{count:A.currentlyActive})})]}):null,s.jsxs("span",{className:"cc-controls-range-wrap",children:[s.jsx("input",{id:"cc-max-concurrent",className:"cc-controls-touch-slider",type:"range",min:Yr.maxConcurrent.min,max:I,value:E.maxConcurrent,disabled:!D,onChange:B=>S("maxConcurrent",B.target.value,Yr.maxConcurrent.min,I)}),T?s.jsx("span",{className:"status-dot status-dot--online cc-controls-use-marker",style:Y2(V),"data-testid":"cc-project-use-marker","aria-hidden":"true"}):null]})]}),s.jsxs("label",{className:"cc-controls-slider",htmlFor:"cc-max-worktrees",children:[s.jsxs("span",{className:"cc-controls-slider-label",children:[d("commandCenter.controls.concurrency.maxWorktrees","Max worktrees"),s.jsx("strong",{children:E.maxWorktrees})]}),s.jsx("span",{className:"cc-controls-range-wrap",children:s.jsx("input",{id:"cc-max-worktrees",className:"cc-controls-touch-slider",type:"range",min:Yr.maxWorktrees.min,max:Yo("maxWorktrees",E.maxWorktrees),value:E.maxWorktrees,disabled:!z,onChange:B=>S("maxWorktrees",B.target.value,Yr.maxWorktrees.min,Yo("maxWorktrees",E.maxWorktrees))})}),!E.worktreeLimitEnabled&&p.status==="loaded"?s.jsx("small",{className:"cc-controls-slider-caption",children:d("commandCenter.controls.concurrency.worktreeLimitDisabled","Enable the worktree limit in Settings to edit this capacity.")}):null]})]}),p.status==="error"?s.jsx("p",{className:"cc-controls-error",role:"alert",children:p.error}):null]})]})})}function wh(e){return`${(e*100).toFixed(1)}%`}function Ch(e){return e===null?"—":`${(e/6e4).toFixed(1)}m`}function Ia(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function eF({projectId:e}={}){const{t}=se("app"),[r,n]=f.useState(null),[a,i]=f.useState(!0),[o,l]=f.useState(null),[c,d]=f.useState(!1),[u,m]=f.useState(!1),[h,v]=f.useState(null),p=f.useCallback(async()=>{i(!0),l(null);try{const T=await fr(mr("/health/reliability",e));n(T)}catch(T){l(T instanceof Error?T.message:t("reliability.failedToLoad","Failed to load reliability metrics"))}finally{i(!1)}},[t,e]),b=f.useCallback(async()=>{v(null),await fr(mr("/health/reliability/reset",e),{method:"POST"}),await p(),m(!1)},[p,e]);f.useEffect(()=>{p();const T=setInterval(()=>{p()},6e4);return()=>clearInterval(T)},[p]);const y=r?.headline.inReviewFailureRate7d,g=f.useMemo(()=>y==null?null:Math.max(0,Math.min(1,1-y)),[y]),j=f.useMemo(()=>g===null?"var(--text-muted)":g>=.95?"var(--color-success)":g>=.9?"var(--color-warning)":"var(--color-error)",[g]),x=f.useMemo(()=>(r?.perDay??[]).reduce((T,O)=>T+O.tasksEnteredInReview,0),[r?.perDay]),C=f.useMemo(()=>(r?.perDay??[]).reduce((T,O)=>T+O.tasksBouncedToInProgress,0),[r?.perDay]),w=f.useMemo(()=>r?.perDay?[...c?r.perDay:r.perDay.filter(O=>O.hasSamples!==!1)].sort((O,I)=>O.date.localeCompare(I.date)):[],[r?.perDay,c]),P=f.useMemo(()=>w.some(O=>O.tasksEnteredInReview>0||O.tasksBouncedToInProgress>0)?[{label:t("reliability.flowChart.entered","Entered"),values:w.map(O=>O.tasksEnteredInReview)},{label:t("reliability.flowChart.bounced","Bounced"),values:w.map(O=>O.tasksBouncedToInProgress)}]:[],[w,t]),A=f.useMemo(()=>Object.entries(r?.mergeAttempts.histogram??{}).sort(([T],[O])=>T.localeCompare(O,void 0,{numeric:!0})),[r?.mergeAttempts.histogram]),S=f.useMemo(()=>A.map(([T,O])=>({label:T,value:O})),[A]),N=f.useMemo(()=>A.reduce((T,[,O])=>T+O,0),[A]),E=r?Ia(r.resetAt??new Date(Date.parse(r.generatedAt)-r.windowDays*864e5).toISOString()):"—";return a&&r===null?s.jsxs("div",{className:"reliability-loading","data-testid":"reliability-loading",children:[s.jsx(Ql,{size:24,className:"spin"}),s.jsx("p",{children:t("reliability.loading","Loading reliability data...")})]}):o!==null&&r===null?s.jsxs("div",{className:"reliability-error","data-testid":"reliability-error",role:"alert",children:[s.jsx(Mi,{size:24}),s.jsx("p",{children:o})]}):s.jsxs("section",{className:"reliability-view",children:[s.jsxs("div",{className:"card reliability-card reliability-headline-card",children:[s.jsxs("div",{className:"reliability-section-header",children:[s.jsx("h2",{children:t("reliability.heading","Reliability")}),s.jsx("button",{className:"btn btn-danger btn-sm",onClick:()=>m(!0),children:t("reliability.resetStats","Reset stats")})]}),s.jsx("div",{className:"reliability-headline",style:{color:j},children:y==null?t("reliability.insufficientData","Insufficient data — {{reason}}",{reason:r?.headline.reason??"unknown"}):wh(g??0)}),g!==null?s.jsx("div",{className:"reliability-muted",children:t("reliability.successRateLabel","In-review success rate (last 7d)")}):null,r?.resetAt?s.jsx("div",{className:"reliability-muted",children:t("reliability.countingSince","Counting since {{date}}",{date:Ia(r.resetAt)})}):null,s.jsxs("details",{className:"reliability-details",children:[s.jsx("summary",{children:t("reliability.details","Details")}),s.jsxs("div",{className:"reliability-details-content",children:[s.jsx("div",{children:t("reliability.bouncedEntered","{{bounced}} bounced / {{entered}} entered (last {{days}}d)",{bounced:C,entered:x,days:r?.windowDays??7})}),y!=null?s.jsx("div",{children:t("reliability.failureRate","Failure rate: {{rate}}",{rate:wh(y)})}):null,s.jsx("div",{children:t("reliability.window","Window: {{start}} → {{end}}",{start:E,end:Ia(r?.generatedAt)})}),r?.resetAt?s.jsx("div",{children:t("reliability.resetBaseline","Reset baseline: {{date}}",{date:Ia(r.resetAt)})}):null,r?.headline.reason?s.jsx("div",{children:t("reliability.reason","Reason: {{reason}}",{reason:r.headline.reason})}):null]})]})]}),s.jsxs("div",{className:"reliability-grid",children:[s.jsxs("div",{className:"card reliability-card",children:[s.jsxs("div",{className:"reliability-section-header",children:[s.jsx("h3",{children:t("reliability.inReviewFlow","In-review flow")}),s.jsx("button",{className:"btn btn-sm",onClick:()=>d(T=>!T),children:c?t("reliability.hideEmptyDays","Hide empty days"):t("reliability.showEmptyDays","Show empty days")})]}),s.jsxs("div",{className:"reliability-chart-section","data-testid":"reliability-flow-chart",children:[s.jsx("h4",{children:t("reliability.flowChart.heading","Entered vs bounced trend")}),s.jsx(br,{series:P,ariaLabel:t("reliability.flowChart.aria","In-review entered vs bounced per day"),emptyLabel:t("reliability.flowChart.empty","No in-review flow data")})]}),s.jsxs("table",{className:"reliability-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:t("reliability.table.date","Date")}),s.jsx("th",{children:t("reliability.table.entered","Entered")}),s.jsx("th",{children:t("reliability.table.bounced","Bounced")})]})}),s.jsx("tbody",{children:w.map(T=>s.jsxs("tr",{children:[s.jsx("td",{children:T.date}),s.jsx("td",{children:T.tasksEnteredInReview}),s.jsx("td",{children:T.tasksBouncedToInProgress})]},T.date))})]})]}),s.jsxs("div",{className:"card reliability-card",children:[s.jsx("h3",{children:t("reliability.duration.heading","Duration")}),s.jsxs("div",{className:"reliability-stat-row",children:[s.jsx("span",{children:t("reliability.duration.p50","P50")}),s.jsx("strong",{children:Ch(r?.duration.p50Ms??null)})]}),s.jsxs("div",{className:"reliability-stat-row",children:[s.jsx("span",{children:t("reliability.duration.p95","P95")}),s.jsx("strong",{children:Ch(r?.duration.p95Ms??null)})]}),s.jsx("div",{className:"reliability-muted",children:t("reliability.duration.samples","Samples: {{count}}",{count:r?.duration.sampleCount??0})}),s.jsxs("details",{className:"reliability-details",children:[s.jsx("summary",{children:t("reliability.duration.moreStats","More stats")}),s.jsxs("div",{className:"reliability-details-content",children:[s.jsx("div",{children:t("reliability.duration.p50Raw","P50 raw: {{value}} ms",{value:r?.duration.p50Ms??"—"})}),s.jsx("div",{children:t("reliability.duration.p95Raw","P95 raw: {{value}} ms",{value:r?.duration.p95Ms??"—"})}),s.jsx("div",{children:t("reliability.duration.sampleCount","Sample count: {{count}}",{count:r?.duration.sampleCount??0})}),r?.duration.reason?s.jsx("div",{children:t("reliability.duration.reason","Reason: {{reason}}",{reason:r.duration.reason})}):null]})]})]}),s.jsxs("div",{className:"card reliability-card",children:[s.jsx("h3",{children:t("reliability.mergeAttempts.heading","Merge attempts")}),s.jsxs("div",{className:"reliability-stat-row",children:[s.jsx("span",{children:t("reliability.mergeAttempts.mean","Mean")}),s.jsx("strong",{children:r?.mergeAttempts.mean?.toFixed(2)??"—"})]}),s.jsxs("div",{className:"reliability-stat-row",children:[s.jsx("span",{children:t("reliability.mergeAttempts.max","Max")}),s.jsx("strong",{children:r?.mergeAttempts.max??"—"})]}),s.jsxs("div",{className:"reliability-chart-section","data-testid":"reliability-merge-attempts-chart",children:[s.jsx("h4",{children:t("reliability.mergeAttemptsChart.heading","Attempts distribution")}),s.jsx(Mt,{data:S,ariaLabel:t("reliability.mergeAttemptsChart.aria","Merge attempts histogram"),emptyLabel:t("reliability.mergeAttemptsChart.empty","No merge attempt data")})]}),s.jsx("ul",{className:"reliability-histogram",children:A.map(([T,O])=>s.jsxs("li",{children:[s.jsx("span",{children:T}),s.jsx("div",{className:"reliability-histogram-bar-wrap",children:s.jsx("div",{className:"reliability-histogram-bar",style:{width:`${Math.min(O*20,100)}%`}})}),s.jsx("strong",{children:O})]},T))}),s.jsxs("details",{className:"reliability-details",children:[s.jsx("summary",{children:t("reliability.mergeAttempts.moreStats","More stats")}),s.jsxs("div",{className:"reliability-details-content",children:[s.jsx("div",{children:t("reliability.mergeAttempts.tasksCounted","Tasks counted: {{count}}",{count:N})}),s.jsx("div",{children:t("reliability.mergeAttempts.histogramTotal","Histogram total: {{count}}",{count:N})}),r?.mergeAttempts.reason?s.jsx("div",{children:t("reliability.mergeAttempts.reason","Reason: {{reason}}",{reason:r.mergeAttempts.reason})}):null]})]})]})]}),u?s.jsx("div",{className:"modal-overlay open",role:"presentation",children:s.jsxs("div",{className:"modal",role:"dialog","aria-modal":"true","aria-labelledby":"reliability-reset-title",children:[s.jsx("div",{className:"modal-header",children:s.jsx("h2",{id:"reliability-reset-title",children:t("reliability.resetModal.title","Reset reliability stats?")})}),s.jsx("p",{children:t("reliability.resetModal.description","This sets a new baseline for reliability statistics. Historical events older than the reset time are excluded from counts but are not deleted.")}),h?s.jsx("div",{className:"form-error",children:h}):null,s.jsxs("div",{className:"modal-actions",children:[s.jsx("button",{className:"btn",onClick:()=>m(!1),children:t("common.cancel","Cancel")}),s.jsx("button",{className:"btn btn-danger",onClick:()=>{b().catch(T=>{v(T instanceof Error?T.message:t("reliability.resetModal.failedError","Failed to reset reliability stats"))})},children:t("reliability.resetModal.confirm","Confirm reset")})]})]})}):null]})}function Zo(e){const{lastSyncAt:t,remoteReachable:r,diff:n}=e,a=Object.values(n.workflowSettings).reduce((o,l)=>o+l.length,0),i=n.global.length+n.project.length+a;return t===null?{syncState:"never-synced",lastSyncAt:t,diffCount:0}:r?i>0?{syncState:"diff",lastSyncAt:t,diffCount:i}:{syncState:"synced",lastSyncAt:t,diffCount:0}:{syncState:"error",lastSyncAt:t,diffCount:i}}function Xl(e){if(e===null)return"Never synced";const t=new Date(e);if(Number.isNaN(t.getTime()))return"Never synced";const n=Date.now()-t.getTime(),a=Math.floor(n/1e3),i=Math.floor(a/60),o=Math.floor(i/60),l=Math.floor(o/24);return i<1?"Synced just now":i<60?`Synced ${i}m ago`:o<24?`Synced ${o}h ago`:`Synced ${l}d ago`}function tF(e){switch(e){case"synced":return"var(--color-success)";case"pending":return"var(--color-warning)";case"diff":return"var(--color-warning)";case"error":return"var(--color-error)";case"never-synced":return"var(--text-muted)"}}const rF=3e4;function nF(){const{t:e}=se("app"),[t,r]=f.useState({}),[n,a]=f.useState(!1),[i,o]=f.useState({}),[l,c]=f.useState(null),d=f.useRef(new Set),u=f.useRef(!1),m=f.useRef(null),[h,v]=f.useState(!0),p=f.useCallback(async(S,N)=>{try{const E=await Vj(S);r(T=>({...T,[S]:E})),c(null)}catch(E){if(E?.status===409){d.current.delete(S);return}console.error(`Failed to fetch sync status for node ${S}:`,E),c(E instanceof Error?E.message:e("nodeSync.error.failedToFetchStatus","Failed to fetch sync status"))}},[e]),b=f.useCallback(async()=>{const S=Array.from(d.current);if(S.length===0)return;m.current&&m.current.abort(),m.current=new AbortController;const N=!u.current;N&&a(!0),c(null);try{const E=await Promise.allSettled(S.map(O=>p(O,N)));u.current=!0,E.filter(O=>O.status==="rejected").length>0&&c(e("nodeSync.error.someRequestsFailed","Some sync status requests failed"))}catch(E){if(E instanceof Error&&E.name==="AbortError")return;c(E instanceof Error?E.message:e("nodeSync.error.failedToFetchStatus","Failed to fetch sync status")),u.current=!0}finally{a(!1)}},[p,e]),y=f.useCallback(()=>{v(!1)},[]);f.useEffect(()=>(b(),()=>{m.current&&m.current.abort()}),[b]),vn(b,rF,{enabled:h});const g=f.useCallback(S=>{d.current.has(S)||(d.current.add(S),p(S,!u.current))},[p]),j=f.useCallback(S=>{d.current.delete(S),r(N=>{const E={...N};return delete E[S],E}),d.current.size===0&&y()},[y]),x=f.useCallback(async S=>{o(N=>({...N,[S]:!0})),c(null);try{const N=await Uj(S);return p(S,!1),!N.success&&N.error&&c(N.error),N}catch(N){const E=N instanceof Error?N.message:e("nodeSync.error.pushFailed","Push settings failed");throw c(E),N}finally{o(N=>{const E={...N};return delete E[S],E})}},[p,e]),C=f.useCallback(async S=>{o(N=>({...N,[S]:!0})),c(null);try{const N=await qj(S);return p(S,!1),!N.success&&N.error&&c(N.error),N}catch(N){const E=N instanceof Error?N.message:e("nodeSync.error.pullFailed","Pull settings failed");throw c(E),N}finally{o(N=>{const E={...N};return delete E[S],E})}},[p,e]),w=f.useCallback(async S=>{o(N=>({...N,[S]:!0})),c(null);try{return await Wj(S)}catch(N){const E=N instanceof Error?N.message:e("nodeSync.error.authSyncFailed","Auth sync failed");throw c(E),N}finally{o(N=>{const E={...N};return delete E[S],E})}},[e]),P=f.useCallback(S=>t[S]?.authMatch,[t]),A=f.useCallback(S=>t[S]?.authDiff,[t]);return{syncStatusMap:t,loading:n,actionLoading:i,error:l,refresh:b,trackNode:g,untrackNode:j,pushSettings:x,pullSettings:C,syncAuth:w,getAuthSyncState:P,getAuthProviders:A}}const aF=1e4,iF=1e3;function sF(){const{t:e}=se("app"),[t,r]=f.useState([]),[n,a]=f.useState(!0),[i,o]=f.useState(null),l=f.useRef(0),c=f.useRef(t),d=nc();f.useEffect(()=>{c.current=t},[t]);const u=f.useCallback(h=>c.current.length>0&&ac(h,d.wasRecentlyHidden()),[d]),m=f.useCallback(async()=>{try{o(null);const h=await Ku();r(h.nodes)}catch(h){const v=h instanceof Error?h.message:e("mesh.failedToFetchMeshState","Failed to fetch mesh state");u(v)||o(v)}},[u,e]);return f.useEffect(()=>{let h=!1;async function v(){a(!0);try{const b=await Ku();h||(r(b.nodes),o(null))}catch(b){const y=b instanceof Error?b.message:e("mesh.failedToFetchMeshState","Failed to fetch mesh state");!h&&!u(y)&&o(y)}finally{h||a(!1)}}v();const p=()=>{if(document.visibilityState!=="visible")return;const b=Date.now(),y=b-l.current;if(y<iF){Wa({view:"useMeshState",trigger:"visibility",projectId:void 0,replayAttempted:!1,reason:"debounce-skipped",detail:{timeSinceLastRefreshMs:y}});return}l.current=b,Wa({view:"useMeshState",trigger:"visibility",projectId:void 0,replayAttempted:!1,reason:"debounced-refresh"}),m()};return document.addEventListener("visibilitychange",p),()=>{h=!0,document.removeEventListener("visibilitychange",p)}},[m,u,e]),vn(m,aF,{enabled:!n,refreshOnVisible:!1}),{meshState:t,loading:n,error:i,refresh:m}}const oF=1e4,lF=1e3;function cF(){const{t:e}=se("app"),[t,r]=f.useState([]),[n,a]=f.useState(!0),[i,o]=f.useState(null),l=f.useRef(null),c=f.useRef(0),d=f.useRef(t),u=nc();f.useEffect(()=>{d.current=t},[t]);const m=f.useCallback(v=>d.current.length>0&&ac(v,u.wasRecentlyHidden()),[u]),h=f.useCallback(async()=>{try{o(null);const v=await Vu();r(v.engines)}catch(v){const p=v instanceof Error?v.message:e("mesh.failedToFetchEngines","Failed to fetch engine status");m(p)||o(p)}},[m,e]);return f.useEffect(()=>{let v=!1;async function p(){a(!0);try{const y=await Vu();v||(r(y.engines),o(null))}catch(y){const g=y instanceof Error?y.message:e("mesh.failedToFetchEngines","Failed to fetch engine status");!v&&!m(g)&&o(g)}finally{v||a(!1)}}p();const b=()=>{if(document.visibilityState!=="visible")return;const y=Date.now();y-c.current<lF||(c.current=y,h())};return document.addEventListener("visibilitychange",b),()=>{v=!0,document.removeEventListener("visibilitychange",b)}},[h,m,e]),f.useEffect(()=>{if(!n)return l.current=setInterval(()=>{h()},oF),()=>{l.current&&(clearInterval(l.current),l.current=null)}},[n,h]),{engines:t,loading:n,error:i,refresh:h}}function uF(e){return{online:{label:e("nodes.status.online","Online"),color:"var(--color-success)",className:"node-card__status--online"},offline:{label:e("nodes.status.offline","Offline"),color:"var(--color-error)",className:"node-card__status--offline"},connecting:{label:e("nodes.status.connecting","Connecting"),color:"var(--color-warning)",className:"node-card__status--connecting"},error:{label:e("nodes.status.error","Error"),color:"var(--color-error)",className:"node-card__status--error"},creating:{label:e("nodes.status.creating","Creating"),color:"var(--color-warning)",className:"node-card__status--creating"},recreating:{label:e("nodes.status.recreating","Recreating"),color:"var(--color-warning)",className:"node-card__status--recreating"},deleting:{label:e("nodes.status.deleting","Deleting"),color:"var(--color-error)",className:"node-card__status--deleting"},running:{label:e("nodes.status.running","Running"),color:"var(--color-success)",className:"node-card__status--online"},stopped:{label:e("nodes.status.stopped","Stopped"),color:"var(--color-error)",className:"node-card__status--offline"},exited:{label:e("nodes.status.exited","Exited"),color:"var(--color-error)",className:"node-card__status--offline"}}}const dF={match:"var(--color-success)",differs:"var(--color-warning)","not-synced":"var(--text-muted)"};function fF(e,t,r){if(e==="match")return r?r("nodes.auth.match","Auth credentials match"):"Auth credentials match";if(e==="not-synced")return r?r("nodes.auth.notSynced","Auth not synced"):"Auth not synced";if(t&&Object.keys(t).length>0){const n=Object.entries(t).filter(([,a])=>a==="differs").map(([a])=>a);if(n.length>0)return r?r("nodes.auth.differProviders","Auth credentials differ: {{providers}}",{providers:n.join(", ")}):`Auth credentials differ: ${n.join(", ")}`}return r?r("nodes.auth.differ","Auth credentials differ"):"Auth credentials differ"}function mF(e,t=42){return e.length<=t?e:`${e.slice(0,t-3)}...`}function vF(e,t){const r=e.node,n=t.node;if(r.id!==n.id||r.name!==n.name||r.type!==n.type||r.url!==n.url||r.status!==n.status||r.maxConcurrent!==n.maxConcurrent||r.updatedAt!==n.updatedAt||e.isLoading!==t.isLoading)return!1;const a=e.managedDockerNode,i=t.managedDockerNode;if(!!a!=!!i||a&&i&&(a.id!==i.id||a.status!==i.status||a.imageTag!==i.imageTag||a.updatedAt!==i.updatedAt))return!1;const o=e.syncStatus,l=t.syncStatus;if(!(!o&&!l)){if(!o||!l)return!1;if(o.syncState!==l.syncState||o.lastSyncAt!==l.lastSyncAt||o.diffCount!==l.diffCount)return!1}if(e.authSyncState!==t.authSyncState)return!1;const c=e.authSyncProviders,d=t.authSyncProviders;if(c!==d){if(!c||!d)return!1;{const h=Object.keys(c),v=Object.keys(d);if(h.length!==v.length||h.some(p=>c[p]!==d[p]))return!1}}const u=tl(e.projects,r),m=tl(t.projects,n);return u===m}function hF({node:e,projects:t,onHealthCheck:r,onEdit:n,onRemove:a,isLoading:i=!1,syncStatus:o,authSyncState:l,authSyncProviders:c,managedDockerNode:d}){const{t:u}=se("app"),[m,h]=f.useState(!1),v=uF(u),p=v[e.status]??v.offline,b=d?v[d.status]??v.error:null,y=d?.hostConfig.type==="remote"?u("nodes.dockerHost.remote","Remote: {{host}}",{host:d.hostConfig.host??"unknown"}):u("nodes.dockerHost.local","Local Docker"),g=f.useMemo(()=>tl(t,e),[t,e]),j=f.useCallback(()=>{n(e)},[n,e]),x=f.useCallback(A=>{A.stopPropagation(),r(e.id)},[r,e.id]),C=f.useCallback(A=>{A.stopPropagation(),n(e)},[n,e]),w=f.useCallback(A=>{if(A.stopPropagation(),!m){h(!0);return}a(e.id),h(!1)},[m,a,e.id]),P=f.useCallback(A=>{(A.key==="Enter"||A.key===" ")&&(A.preventDefault(),n(e))},[n,e]);return s.jsxs("article",{className:`node-card ${i?"node-card--loading":""}`,"data-node-id":e.id,role:"button",tabIndex:0,onClick:j,onKeyDown:P,children:[s.jsx("header",{className:"node-card__header",children:s.jsxs("div",{className:"node-card__title-wrap",children:[s.jsx("div",{className:"node-card__icon",children:s.jsx(Ih,{size:18})}),s.jsxs("div",{children:[s.jsx("h3",{className:"node-card__name",title:e.name,children:e.name}),s.jsxs("div",{className:"node-card__meta-row",children:[s.jsx("span",{className:"node-card__type-badge",children:e.type==="local"?u("nodes.type.local","Local"):u("nodes.type.remote","Remote")}),d&&s.jsxs("span",{className:"node-card__docker-badge",title:u("nodes.dockerBadge","Managed Docker node"),children:[s.jsx(rl,{size:12,"aria-hidden":!0}),u("nodes.dockerLabel","Docker")]}),s.jsxs("span",{className:`node-card__status ${p.className}`,style:{color:p.color},"data-status":e.status,children:[s.jsx("span",{className:"node-card__status-indicator",style:{backgroundColor:p.color},"aria-hidden":!0}),p.label]}),d&&b&&s.jsxs("span",{className:`node-card__status ${b.className}`,style:{color:b.color},"data-status":d.status,children:[s.jsx("span",{className:"node-card__status-indicator",style:{backgroundColor:b.color},"aria-hidden":!0}),b.label]}),e.type==="remote"&&l&&s.jsx("span",{className:`node-card__auth-indicator node-card__auth-indicator--${l}`,title:fF(l,c,u),"aria-label":u("nodes.authSync.label","Auth sync: {{status}}",{status:l==="match"?u("nodes.authSync.match","credentials match"):l==="differs"?u("nodes.authSync.differ","credentials differ"):u("nodes.authSync.notSynced","not synced")}),style:{color:dF[l]},children:s.jsx(Dh,{size:14})})]})]})]})}),s.jsxs("div",{className:"node-card__body",children:[e.type==="remote"&&e.url&&s.jsx("div",{className:"node-card__url",title:e.url,children:mF(e.url)}),d&&s.jsxs("div",{className:"node-card__docker-meta",children:[s.jsxs("span",{title:`${d.imageName}:${d.imageTag}`,children:[d.imageName,":",d.imageTag]}),s.jsx("span",{title:y,children:y})]}),s.jsxs("div",{className:"node-card__metrics",children:[s.jsxs("div",{className:"node-card__metric",children:[s.jsx("span",{className:"node-card__metric-label",children:u("nodes.metrics.projects","Projects")}),s.jsx("span",{className:"node-card__metric-value",children:g})]}),s.jsxs("div",{className:"node-card__metric",children:[s.jsx("span",{className:"node-card__metric-label",children:u("nodes.metrics.concurrency","Concurrency")}),s.jsx("span",{className:"node-card__metric-value",children:e.maxConcurrent})]})]}),e.type==="remote"&&o&&s.jsxs("div",{className:"node-card__sync","data-sync-state":o.syncState,"data-testid":"node-card-sync",children:[s.jsx("span",{className:"node-card__sync-dot",style:{backgroundColor:tF(o.syncState)},"aria-hidden":!0}),s.jsx("span",{className:"node-card__sync-time",children:Xl(o.lastSyncAt)})]})]}),s.jsxs("footer",{className:"node-card__actions",children:[s.jsxs("button",{className:"btn btn-sm node-card__action",type:"button",onClick:x,disabled:i,"aria-label":u("nodes.actions.health.ariaLabel","Run node health check"),title:u("nodes.actions.health.title","Health Check"),children:[s.jsx(Rh,{size:14}),s.jsx("span",{children:u("nodes.actions.health.label","Health")})]}),s.jsxs("button",{className:"btn btn-sm node-card__action",type:"button",onClick:C,disabled:i,"aria-label":u("nodes.actions.edit.ariaLabel","Edit node"),title:u("nodes.actions.edit.title","Edit"),children:[s.jsx(La,{size:14}),s.jsx("span",{children:u("nodes.actions.edit.label","Edit")})]}),d&&s.jsxs(s.Fragment,{children:[s.jsxs("button",{className:"btn btn-sm node-card__action",type:"button",disabled:!0,"aria-label":u("nodes.actions.start.ariaLabel","Start node container"),title:u("nodes.actions.start.title","Available after FN-3113"),children:[s.jsx(Di,{size:14}),s.jsx("span",{children:u("nodes.actions.start.label","Start")})]}),s.jsxs("button",{className:"btn btn-sm node-card__action",type:"button",disabled:!0,"aria-label":u("nodes.actions.stop.ariaLabel","Stop node container"),title:u("nodes.actions.stop.title","Available after FN-3113"),children:[s.jsx(Lh,{size:14}),s.jsx("span",{children:u("nodes.actions.stop.label","Stop")})]}),s.jsxs("button",{className:"btn btn-sm node-card__action",type:"button",disabled:!0,"aria-label":u("nodes.actions.restart.ariaLabel","Restart node container"),title:u("nodes.actions.restart.title","Available after FN-3113"),children:[s.jsx(Hj,{size:14}),s.jsx("span",{children:u("nodes.actions.restart.label","Restart")})]})]}),s.jsxs("button",{className:`btn btn-sm node-card__action node-card__action--remove ${m?"btn-danger is-armed":""}`,type:"button",onClick:w,disabled:i,"aria-label":m?u("nodes.actions.remove.ariaLabelConfirm","Confirm remove node"):u("nodes.actions.remove.ariaLabel","Remove node"),title:m?u("nodes.actions.remove.titleConfirm","Confirm remove"):u("nodes.actions.remove.title","Remove"),children:[s.jsx(tn,{size:14}),s.jsx("span",{children:m?u("nodes.actions.remove.labelConfirm","Confirm"):u("nodes.actions.remove.label","Remove")})]})]})]})}const pF=f.memo(hF,vF),In={online:"var(--success, var(--color-success))",offline:"var(--text-dim)",connecting:"var(--color-warning)",error:"var(--color-error)"},Da=28,yF=12,gF=300,bF=120;function xF({nodes:e,engines:t,className:r}){const{t:n}=se("app"),a=f.useMemo(()=>e.find(v=>v.nodeType==="local")??e[0],[e]),i=f.useMemo(()=>e.filter(v=>v.nodeId!==a?.nodeId),[e,a?.nodeId]),o=f.useMemo(()=>(t??[]).reduce((v,p)=>v+(p.inFlightTasks??0),0),[t]),l=f.useMemo(()=>(t??[]).reduce((v,p)=>v+(p.activeAgents??0),0),[t]),c=f.useMemo(()=>gF+Math.max(0,i.length-4)*20,[i.length]),d=c/2,u=c/2,m=f.useMemo(()=>{const v=new Map;if(a&&v.set(a.nodeId,{x:d,y:u,node:a}),i.length>0){const p=Math.min(bF,c/2-Da-10),b=2*Math.PI/i.length,y=-Math.PI/2;i.forEach((g,j)=>{const x=y+j*b;v.set(g.nodeId,{node:g,x:d+p*Math.cos(x),y:u+p*Math.sin(x)})})}return v},[d,u,a,i,c]),h=f.useMemo(()=>{const v=new Set,p=[];for(const b of e){const y=m.get(b.nodeId);if(y)for(const g of b.knownPeers){const j=m.get(g.peerNodeId);if(!j)continue;const x=[b.nodeId,g.peerNodeId].sort().join("::");v.has(x)||(v.add(x),p.push({key:x,from:y,to:j}))}}return p},[m,e]);return e.length===0?s.jsx("div",{className:`mesh-topology mesh-topology--empty ${r??""}`,children:s.jsx("div",{className:"mesh-topology__empty-state",children:s.jsx("p",{children:n("mesh.noNodes","No nodes to display")})})}):s.jsxs("div",{className:`mesh-topology ${r??""}`,children:[s.jsxs("svg",{className:"mesh-topology__svg",viewBox:`0 0 ${c} ${c}`,preserveAspectRatio:"xMidYMid meet","aria-label":n("mesh.ariaLabel","Node mesh topology visualization"),children:[h.map(v=>s.jsx("line",{className:"mesh-topology__link mesh-topology__peer-line",x1:v.from.x,y1:v.from.y,x2:v.to.x,y2:v.to.y},v.key)),Array.from(m.values()).map(({node:v,x:p,y:b})=>s.jsxs("g",{className:"mesh-topology__node",transform:`translate(${p}, ${b})`,children:[s.jsx("circle",{className:"mesh-topology__node-circle",r:Da,fill:In[v.status],"aria-label":`${v.nodeName} (${v.status})`}),s.jsx("text",{className:"mesh-topology__node-label",y:Da+yF,textAnchor:"middle",children:v.nodeName.length>12?`${v.nodeName.slice(0,10)}…`:v.nodeName}),s.jsxs("g",{className:"mesh-topology__node-type",transform:`translate(0 ${-Da-10})`,children:[s.jsx("circle",{className:"mesh-topology__node-type-badge",r:"8"}),s.jsx("text",{className:"mesh-topology__node-type-text",textAnchor:"middle",dominantBaseline:"middle",children:v.nodeType==="local"?"L":"R"})]})]},v.nodeId))]}),(t??[]).length>0&&s.jsxs("div",{className:"mesh-topology__engines","aria-label":n("mesh.enginesAriaLabel","Active engine connections"),children:[s.jsxs("div",{className:"mesh-topology__engines-summary",children:[s.jsx("span",{className:"mesh-topology__engines-count",children:n("mesh.enginesConnected",{count:(t??[]).length,defaultValue:"{{count}} engine(s) connected to shared PG"})}),s.jsx("span",{className:"mesh-topology__engines-metric",children:n("mesh.inFlightTasks",{count:o,defaultValue:"{{count}} in-flight"})}),s.jsx("span",{className:"mesh-topology__engines-metric",children:n("mesh.activeAgents",{count:l,defaultValue:"{{count}} agents"})})]}),s.jsx("ul",{className:"mesh-topology__engines-list",children:(t??[]).map(v=>s.jsxs("li",{className:"mesh-topology__engine-item",children:[s.jsx("span",{className:"mesh-topology__engine-name",children:v.projectName??v.projectId}),s.jsx("span",{className:"mesh-topology__engine-status","data-runtime-status":v.runtimeStatus,children:v.runtimeStatus}),s.jsxs("span",{className:"mesh-topology__engine-tasks",children:[v.inFlightTasks," tasks"]})]},v.projectId))})]}),s.jsxs("div",{className:"mesh-topology__legend",children:[s.jsxs("div",{className:"mesh-topology__legend-item",children:[s.jsx("span",{className:"mesh-topology__legend-dot",style:{background:In.online}}),s.jsx("span",{children:n("mesh.online","Online")})]}),s.jsxs("div",{className:"mesh-topology__legend-item",children:[s.jsx("span",{className:"mesh-topology__legend-dot",style:{background:In.offline}}),s.jsx("span",{children:n("mesh.offline","Offline")})]}),s.jsxs("div",{className:"mesh-topology__legend-item",children:[s.jsx("span",{className:"mesh-topology__legend-dot",style:{background:In.connecting}}),s.jsx("span",{children:n("mesh.connecting","Connecting")})]}),s.jsxs("div",{className:"mesh-topology__legend-item",children:[s.jsx("span",{className:"mesh-topology__legend-dot",style:{background:In.error}}),s.jsx("span",{children:n("mesh.error","Error")})]})]}),h.length===0&&s.jsx("p",{className:"mesh-topology__notice",children:n("mesh.noPeers","Peer-to-peer discovery data unavailable.")})]})}const jF=f.memo(xF),Yl=1,Zl=10;function wF(e,t){const r={projectMappings:{}};e.name.trim()||(r.name=t("nodes.nameRequired","Name is required")),e.type==="remote"&&!e.url?.trim()&&(r.url=t("nodes.urlRequired","URL is required for remote nodes")),(!Number.isFinite(e.maxConcurrent)||e.maxConcurrent<Yl||e.maxConcurrent>Zl)&&(r.maxConcurrent=t("nodes.concurrencyRange","Concurrency must be between {{min}} and {{max}}",{min:Yl,max:Zl}));for(const n of e.projectMappings){const a=iw(n.path);a.valid||(r.projectMappings[n.projectId]=a.error??t("nodes.pathInvalid","Path is invalid"))}return r}function CF({isOpen:e,onClose:t,onSubmit:r,onDiscoverRemoteProjects:n,addToast:a,projects:i}){const{t:o}=se("app");Gj(e);const[l,c]=f.useState(""),[d,u]=f.useState("local"),[m,h]=f.useState(""),[v,p]=f.useState(""),[b,y]=f.useState(2),[g,j]=f.useState("auto-generate"),[x,C]=f.useState({}),[w,P]=f.useState({projectMappings:{}}),[A,S]=f.useState(!1),[N,E]=f.useState("idle"),[T,O]=f.useState(null),[I,z]=f.useState([]),D=f.useCallback(()=>{c(""),u("local"),h(""),p(""),y(2),j("auto-generate"),C({}),P({projectMappings:{}}),S(!1),E("idle"),O(null),z([])},[]),V=f.useCallback(()=>{A||(D(),t())},[A,t,D]);f.useEffect(()=>{if(!e){D();return}const M=q=>{q.key==="Escape"&&(q.preventDefault(),V())};return document.addEventListener("keydown",M),()=>{document.removeEventListener("keydown",M)}},[V,e,D]);const B=f.useMemo(()=>({name:l.trim(),type:d,url:d==="remote"&&m.trim()||void 0,apiKey:d==="remote"&&g==="provide"&&v||void 0,maxConcurrent:b,apiKeyMode:g,projectMappings:Object.entries(x).map(([M,q])=>({projectId:M,path:q.trim()}))}),[v,g,b,l,x,d,m]),W=f.useCallback(async()=>{if(A||N==="loading")return;const M=m.trim();if(!M){P(q=>({...q,url:o("nodes.urlRequired","URL is required for remote nodes")}));return}E("loading"),O(null);try{const q=await n({url:M,apiKey:g==="provide"&&v.trim().length>0?v:void 0});z(q.projects),E("success"),C(H=>{if(Object.keys(H).length===0)return H;const re={...H};for(const ae of i){if(!(ae.id in re))continue;const ye=q.projects.filter(oe=>oe.name===ae.name);ye.length===1&&(re[ae.id]=ye[0].path)}return re})}catch(q){E("error"),z([]),O(q instanceof Error?q.message:o("nodes.discoveryFailed","Failed to discover remote projects"))}},[v,g,N,A,n,i,o,m]);f.useEffect(()=>{if(d!=="remote"){E("idle"),O(null),z([]);return}E("idle"),O(null),z([])},[v,g,d,m]);const K=f.useCallback(async()=>{if(A)return;const M=wF(B,o);if(P(M),!(M.name||M.url||M.maxConcurrent||Object.keys(M.projectMappings).length>0)){if(B.type==="remote"&&N!=="success"){O(o("nodes.discoverBeforeAdding","Discover remote projects before adding this node."));return}S(!0);try{await r(B),a(o("nodes.registered",'Node "{{name}}" registered',{name:B.name}),"success"),V()}catch(q){const H=q instanceof Error?q.message:o("nodes.registerFailed","Failed to register node");a(H,"error")}finally{S(!1)}}},[a,V,N,B,A,r,o]),te=M=>{C(q=>{if(M.id in q){const{[M.id]:H,...re}=q;return re}if(d==="remote"&&N==="success"){const H=I.filter(re=>re.name===M.name);return H.length===1?{...q,[M.id]:H[0].path}:{...q,[M.id]:""}}return{...q,[M.id]:M.path}})},G=(M,q)=>{C(H=>({...H,[M]:q}))};return e?s.jsx(ic,{windowKey:"add-node",title:o("nodes.addNode","Add Node"),ariaLabel:o("nodes.addNode","Add Node"),onClose:V,hideHeader:!0,dragHandleSelector:".modal-header",className:"floating-window--add-node",defaultSize:{width:720,height:560},minSize:{width:360,height:280},persistGeometryKey:"floating-window:add-node",suspendGeometryPersistenceOnMobile:!0,suspendGeometryPersistenceOnShortViewport:!0,closeOnOutsidePointerDown:!0,children:s.jsxs("div",{className:"modal modal-md add-node-modal",children:[s.jsxs("div",{className:"modal-header",children:[s.jsx("h3",{children:o("nodes.addNode","Add Node")}),s.jsx("button",{className:"modal-close",onClick:V,disabled:A,"aria-label":o("nodes.closeNodeModal","Close add node modal"),children:"×"})]}),s.jsxs("div",{className:"modal-body add-node-modal__body",children:[s.jsx("p",{className:"add-node-modal__description",children:o("nodes.description","Register an existing Fusion node by providing its connection details and concurrency settings.")}),s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.name","Name")}),s.jsx("input",{className:"input",type:"text",value:l,onChange:M=>c(M.target.value),placeholder:o("nodes.namePlaceholder","Build Machine"),disabled:A,"aria-invalid":!!w.name,autoFocus:!0}),w.name&&s.jsx("span",{className:"form-error add-node-modal__error",children:w.name})]}),s.jsxs("div",{className:"add-node-modal__type-toggle",children:[s.jsx("button",{type:"button",className:`add-node-modal__type-btn ${d==="local"?"active":""}`,"data-type":"local",onClick:()=>u("local"),disabled:A,"aria-pressed":d==="local",children:o("nodes.local","Local")}),s.jsx("button",{type:"button",className:`add-node-modal__type-btn ${d==="remote"?"active":""}`,"data-type":"remote",onClick:()=>u("remote"),disabled:A,"aria-pressed":d==="remote",children:o("nodes.remote","Remote")})]}),d==="remote"&&s.jsxs("div",{className:"add-node-modal__remote-fields","data-testid":"remote-fields-container","data-visible":!0,children:[s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.reachableUrl","Reachable URL / Hostname")}),s.jsx("input",{className:"input",type:"text",value:m,onChange:M=>h(M.target.value),placeholder:"https://node.example.com",disabled:A,"aria-invalid":!!w.url}),w.url&&s.jsx("span",{className:"form-error add-node-modal__error",children:w.url})]}),s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.apiKeyMode","API Key Mode")}),s.jsxs("select",{className:"select",value:g,onChange:M=>j(M.target.value),disabled:A,children:[s.jsx("option",{value:"auto-generate",children:o("nodes.autoGenerate","Auto-generate")}),s.jsx("option",{value:"provide",children:o("nodes.provideManually","Provide key manually")})]})]}),g==="provide"&&s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.apiKey","API Key")}),s.jsx("input",{className:"input",type:"password",value:v,onChange:M=>p(M.target.value),placeholder:o("nodes.apiKeyPlaceholder","Enter node API key"),disabled:A})]}),s.jsxs("div",{className:"add-node-modal__discovery-actions",children:[s.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>void W(),disabled:A||N==="loading",children:N==="loading"?o("nodes.discovering","Discovering..."):o("nodes.discoverRemoteProjects","Discover Remote Projects")}),N==="success"&&s.jsx("span",{className:"add-node-modal__discovery-state","data-state":"success",children:I.length>0?o("nodes.discoveredCount","Discovered {{count}} remote project{{plural}}",{count:I.length,plural:I.length===1?"":"s"}):o("nodes.noProjectsDiscovered","No projects discovered on remote node.")}),N==="error"&&T&&s.jsx("span",{className:"form-error add-node-modal__error",children:T}),N==="idle"&&s.jsx("span",{className:"add-node-modal__hint",children:o("nodes.discoverBeforeAdding","Discover remote projects before adding this node.")})]}),N==="success"&&I.length>0&&s.jsx("div",{className:"add-node-modal__discovered-list","aria-label":o("nodes.discoveredRemoteProjectsLabel","Discovered remote projects"),children:I.map(M=>s.jsxs("div",{className:"card add-node-modal__discovered-card",children:[s.jsxs("div",{className:"add-node-modal__discovered-row",children:[s.jsx("strong",{children:M.name}),s.jsx("span",{className:"card-status-badge card-status-badge--in-review",children:M.status})]}),s.jsx("div",{className:"add-node-modal__hint",children:M.path})]},`${M.id}-${M.path}`))})]}),s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.maxConcurrent","Max Concurrent")}),s.jsx("input",{className:"input",type:"number",min:Yl,max:Zl,value:b,onChange:M=>y(Number(M.target.value)),disabled:A,"aria-invalid":!!w.maxConcurrent}),s.jsx("span",{className:"add-node-modal__hint",children:o("nodes.maxConcurrentHint","Max simultaneous task agents (1–10)")}),w.maxConcurrent&&s.jsx("span",{className:"form-error add-node-modal__error",children:w.maxConcurrent})]}),s.jsxs("section",{className:"add-node-modal__projects","aria-label":o("nodes.projectPathMappingsLabel","Project path mappings"),children:[s.jsx("h4",{className:"add-node-modal__projects-title",children:o("nodes.attachProjects","Attach Existing Projects")}),s.jsx("p",{className:"add-node-modal__hint",children:o("nodes.attachProjectsHint","Select existing projects to run on this node and provide the node-specific absolute path for each one.")}),i.length===0?s.jsx("p",{className:"add-node-modal__hint",children:o("nodes.noProjects","No projects are currently registered.")}):s.jsx("div",{className:"add-node-modal__project-list",children:i.map(M=>{const q=M.id in x,H=w.projectMappings[M.id];return s.jsxs("div",{className:"card add-node-modal__project-card",children:[s.jsxs("label",{className:"checkbox-label add-node-modal__project-toggle",children:[s.jsx("input",{type:"checkbox",checked:q,onChange:()=>te(M),disabled:A}),s.jsx("span",{children:M.name})]}),q&&s.jsxs("label",{className:"add-node-modal__field",children:[s.jsx("span",{children:o("nodes.pathOnNode","Path on this node")}),d==="remote"&&N==="success"&&s.jsx("span",{className:"add-node-modal__hint",children:(()=>{const re=I.filter(ae=>ae.name===M.name);return re.length===1?o("nodes.pathDiscovered","Remote-authoritative path discovered: {{path}}",{path:re[0].path}):re.length>1?o("nodes.multipleMatches","Multiple remote projects matched this name. Enter the correct path manually."):o("nodes.noMatch","No exact remote name match. Enter this path manually.")})()}),s.jsx("input",{className:"input",type:"text",value:x[M.id]??"",onChange:re=>G(M.id,re.target.value),disabled:A,placeholder:"/absolute/path/to/project","aria-invalid":!!H}),H&&s.jsx("span",{className:"form-error add-node-modal__error",children:H})]})]},M.id)})})]})]}),s.jsxs("div",{className:"modal-actions",children:[s.jsx("button",{className:"btn btn-sm",onClick:V,disabled:A,children:o("common.cancel","Cancel")}),s.jsx("button",{className:"btn btn-primary btn-sm","data-testid":"add-node-submit",onClick:K,disabled:A,children:A?o("nodes.adding","Adding..."):o("nodes.addNode","Add Node")})]})]})}):null}function kF(){const[e,t]=f.useState([]),[r,n]=f.useState(!1),[a,i]=f.useState(null),[o,l]=f.useState(!1),[c,d]=f.useState(null),[u,m]=f.useState(!1),h=f.useCallback(async()=>{n(!0),i(null);try{const b=await fetch("/api/docker/contexts");if(!b.ok)throw new Error(`Failed to load Docker contexts (${b.status})`);const y=await b.json();return t(y),y}catch(b){const y=b instanceof Error?b.message:String(b);throw i(y),b}finally{n(!1)}},[]),v=f.useCallback(async b=>{l(!0);try{const y=await fetch("/api/docker/test-connection",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({hostConfig:b})});if(!y.ok)throw new Error(`Failed to test Docker connection (${y.status})`);const g=await y.json();return d(g),g}finally{l(!1)}},[]),p=f.useCallback(async()=>{m(!0);try{const b=await fetch("/api/docker/local-available");if(!b.ok)throw new Error(`Failed to check local Docker availability (${b.status})`);return await b.json()}finally{m(!1)}},[]);return{contexts:e,isLoadingContexts:r,contextsError:a,loadContexts:h,isTestingConnection:o,lastTestResult:c,testConnection:v,isCheckingLocal:u,checkLocalDocker:p}}function SF({value:e,onChange:t}){const{t:r}=se("app"),[n,a]=f.useState(!!(e?.tlsCaPath||e?.tlsCertPath||e?.tlsKeyPath||e?.tlsVerify));f.useEffect(()=>{n||t({tlsVerify:void 0,tlsCaPath:void 0,tlsCertPath:void 0,tlsKeyPath:void 0})},[n,t]);const i=f.useMemo(()=>({tlsVerify:e?.tlsVerify??!0,tlsCaPath:e?.tlsCaPath??"",tlsCertPath:e?.tlsCertPath??"",tlsKeyPath:e?.tlsKeyPath??""}),[e]);return s.jsxs("div",{className:"docker-tls-config",children:[s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"checkbox",checked:n,onChange:o=>a(o.target.checked)}),r("docker.useTls","Use TLS")]}),n&&s.jsxs("div",{className:"docker-tls-config__fields",children:[s.jsxs("div",{className:"docker-tls-config__field",children:[s.jsx("label",{htmlFor:"docker-tls-ca-path",children:r("docker.caPath","CA Certificate Path")}),s.jsx("input",{id:"docker-tls-ca-path",className:"input",value:i.tlsCaPath,onChange:o=>t({...i,tlsCaPath:o.target.value}),placeholder:"/etc/docker/ca.pem"})]}),s.jsxs("div",{className:"docker-tls-config__field",children:[s.jsx("label",{htmlFor:"docker-tls-cert-path",children:r("docker.certPath","Client Certificate Path")}),s.jsx("input",{id:"docker-tls-cert-path",className:"input",value:i.tlsCertPath,onChange:o=>t({...i,tlsCertPath:o.target.value}),placeholder:"/etc/docker/cert.pem"})]}),s.jsxs("div",{className:"docker-tls-config__field",children:[s.jsx("label",{htmlFor:"docker-tls-key-path",children:r("docker.keyPath","Client Key Path")}),s.jsx("input",{id:"docker-tls-key-path",className:"input",value:i.tlsKeyPath,onChange:o=>t({...i,tlsKeyPath:o.target.value}),placeholder:"/etc/docker/key.pem"})]}),s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"checkbox",checked:i.tlsVerify,onChange:o=>t({...i,tlsVerify:o.target.checked})}),r("docker.verifyTls","Verify TLS Certificate")]})]})]})}function NF({value:e,onChange:t,onError:r}){const{t:n}=se("app"),a=e?.context?"context":e?.host?"host":"local",[i,o]=f.useState(a),[l,c]=f.useState(e?.context??""),[d,u]=f.useState(e?.host??""),[m,h]=f.useState(null),{contexts:v,isLoadingContexts:p,contextsError:b,loadContexts:y,testConnection:g,isTestingConnection:j,lastTestResult:x,checkLocalDocker:C,isCheckingLocal:w}=kF(),P=f.useMemo(()=>({tlsVerify:e?.tlsVerify,tlsCaPath:e?.tlsCaPath,tlsCertPath:e?.tlsCertPath,tlsKeyPath:e?.tlsKeyPath}),[e]);f.useEffect(()=>{if(i==="local"){t({});return}if(i==="context"){y().catch(S=>r?.(S instanceof Error?S.message:String(S))),t(l?{context:l}:{});return}t({host:d,...P})},[i]);const A=f.useCallback(S=>{i==="host"&&t({host:d,...S})},[d,i,t]);return s.jsxs("div",{className:"docker-target-selector",children:[s.jsxs("div",{className:"docker-target-selector__modes",role:"group","aria-label":n("docker.targetMode","Docker target mode"),children:[s.jsx("button",{type:"button",className:`btn btn-sm ${i==="local"?"docker-target-selector__mode-active":""}`,onClick:()=>{o("local"),C().then(S=>{if(S.available){const N=S.version?` (${S.version})`:"";h(n("docker.available","Docker is available{{version}}",{version:N}))}else{const N=S.error?`: ${S.error}`:"";h(n("docker.notFound","Docker not found{{error}}",{error:N}))}}).catch(S=>{const N=S instanceof Error?S.message:String(S);h(n("docker.notFoundError","Docker not found: {{message}}",{message:N})),r?.(N)})},children:n("docker.local","Local Docker")}),s.jsx("button",{type:"button",className:`btn btn-sm ${i==="context"?"docker-target-selector__mode-active":""}`,onClick:()=>o("context"),children:n("docker.context","Docker Context")}),s.jsx("button",{type:"button",className:`btn btn-sm ${i==="host"?"docker-target-selector__mode-active":""}`,onClick:()=>o("host"),children:n("docker.remote","Remote Host")})]}),i==="local"&&m&&s.jsx("div",{className:"docker-target-selector__status",children:m}),i==="context"&&s.jsxs("div",{className:"docker-target-selector__panel",children:[s.jsxs("div",{className:"docker-target-selector__context-row",children:[s.jsxs("select",{className:"select",value:l,onChange:S=>{const N=S.target.value;c(N),t(N?{context:N}:{})},children:[s.jsx("option",{value:"",children:n("docker.selectContext","Select context")}),v.map(S=>s.jsxs("option",{value:S.name,children:[S.name,S.isCurrentContext?" (current)":"",S.dockerHost?` — ${S.dockerHost}`:""]},S.name))]}),s.jsx("button",{type:"button",className:"btn btn-sm btn-icon",onClick:()=>void y(),disabled:p,"aria-label":n("docker.refreshContexts","Refresh contexts"),children:s.jsx(Gt,{size:14})})]}),b&&s.jsx("div",{className:"docker-target-selector__error",children:b})]}),i==="host"&&s.jsxs("div",{className:"docker-target-selector__panel",children:[s.jsxs("div",{className:"docker-target-selector__field",children:[s.jsx("label",{htmlFor:"docker-target-selector-host",children:n("docker.host","Docker Host")}),s.jsx("input",{id:"docker-target-selector-host",className:"input",placeholder:n("docker.hostPlaceholder","tcp://host:2376"),value:d,onChange:S=>{const N=S.target.value;u(N),t({host:N,...P})}})]}),s.jsx(SF,{value:P,onChange:A})]}),s.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>void g(i==="local"?void 0:i==="context"?{context:l}:{host:d,...P}),disabled:j||w,children:j?n("docker.testing","Testing..."):n("docker.testConnection","Test Connection")}),x&&s.jsx("div",{className:x.success?"docker-target-selector__success":"docker-target-selector__error",children:x.success?n("docker.connected","Connected{{version}}",{version:x.dockerVersion?` (Docker ${x.dockerVersion})`:""}):x.error??n("docker.connectionFailed","Connection failed")})]})}const Jo="http://localhost:4040",kh={readWrite:"rw",readOnly:"ro"};function PF({isOpen:e,onClose:t,onSubmit:r,addToast:n}){const{t:a}=se("app"),[i,o]=f.useState(""),[l,c]=f.useState({}),[d,u]=f.useState(Jo),[m,h]=f.useState("auto"),[v,p]=f.useState(""),[b,y]=f.useState(!1),[g,j]=f.useState(!1),[x,C]=f.useState(!0),[w,P]=f.useState(4096),[A,S]=f.useState(2),[N,E]=f.useState(!1),[T,O]=f.useState("runfusion/fusion"),[I,z]=f.useState("latest"),[D,V]=f.useState([]),[B,W]=f.useState([]),[K,te]=f.useState({}),[G,M]=f.useState(!1),q=f.useCallback(()=>{o(""),c({}),u(Jo),h("auto"),p(""),y(!1),j(!1),C(!0),P(4096),S(2),E(!1),O("runfusion/fusion"),z("latest"),V([]),W([]),te({}),M(!1)},[]),H=f.useCallback(()=>{G||(q(),t())},[t,q,G]);f.useEffect(()=>{if(!e){q();return}const L=Y=>{Y.key==="Escape"&&(Y.preventDefault(),H())};return document.addEventListener("keydown",L),()=>document.removeEventListener("keydown",L)},[H,e,q]);const re=f.useMemo(()=>({nodeId:null,name:i.trim(),imageName:T.trim()||"runfusion/fusion",imageTag:I.trim()||"latest",hostConfig:{context:l.context?.trim()||void 0,host:l.host?.trim()||void 0,tlsVerify:l.tlsVerify,tlsCaPath:l.tlsCaPath?.trim()||void 0,tlsCertPath:l.tlsCertPath?.trim()||void 0,tlsKeyPath:l.tlsKeyPath?.trim()||void 0},envVars:Object.fromEntries(D.map(L=>[L.key.trim(),L.value]).filter(([L])=>!!L)),volumeMounts:B.map(L=>({hostPath:L.hostPath.trim(),containerPath:L.containerPath.trim(),mode:L.mode})).filter(L=>L.hostPath&&L.containerPath),resourceSizing:{memoryMB:w,cpus:A},extraClis:[b?"claude-cli":null,g?"droid-cli":null].filter(Boolean),persistentStorage:x,reachableUrl:d.trim()||null,apiKey:m==="manual"&&v.trim()||null}),[v,m,A,l,D,T,I,b,g,w,B,i,x,d]),ae=f.useCallback(()=>{V(L=>[...L,{key:"",value:""}])},[]),ye=f.useCallback((L,Y)=>{V(ne=>ne.map((Ne,Q)=>Q===L?Y:Ne))},[]),oe=f.useCallback(L=>{V(Y=>Y.filter((ne,Ne)=>Ne!==L))},[]),He=f.useCallback(()=>{W(L=>[...L,{hostPath:"",containerPath:"",mode:"rw"}])},[]),J=f.useCallback((L,Y)=>{W(ne=>ne.map((Ne,Q)=>Q===L?Y:Ne))},[]),Ce=f.useCallback(L=>{W(Y=>Y.filter((ne,Ne)=>Ne!==L))},[]),Re=f.useCallback(async()=>{if(G)return;const L={};if((!re.name||re.name.length>64)&&(L.name=a("docker.errors.nameRequired","Name is required and must be 64 characters or fewer")),re.reachableUrl||(L.reachableUrl=a("docker.errors.urlRequired","URL is required")),w<512&&(L.memoryMB=a("docker.errors.memoryMinimum","Memory must be at least 512 MB")),A<.5&&(L.cpus=a("docker.errors.cpusMinimum","CPUs must be at least 0.5")),te(L),!(Object.keys(L).length>0)){M(!0);try{await r(re),H()}catch{}finally{M(!1)}}},[H,A,re,w,r,G,a]);return e?s.jsx(ic,{windowKey:"docker-node-onboarding",modal:!0,title:a("docker.titles.provisionNode","Provision Docker Node"),ariaLabel:a("docker.ariaLabels.modal","Docker node onboarding"),onClose:()=>{G||H()},hideHeader:!0,dragHandleSelector:".docker-onboarding .modal-header",className:"floating-window--docker-node-onboarding",defaultSize:{width:720,height:640},minSize:{width:420,height:320},persistGeometryKey:"floating-window:docker-node-onboarding",suspendGeometryPersistenceOnMobile:!0,suspendGeometryPersistenceOnShortViewport:!0,closeOnOutsidePointerDown:!0,children:s.jsxs("div",{className:"modal docker-onboarding",children:[s.jsxs("div",{className:"modal-header",children:[s.jsx("h3",{children:a("docker.titles.provisionNode","Provision Docker Node")}),s.jsx("button",{className:"modal-close",onClick:H,disabled:G,"aria-label":a("docker.ariaLabels.closeModal","Close onboarding modal"),children:"×"})]}),s.jsxs("div",{className:"modal-body docker-onboarding__body",children:[s.jsxs("section",{className:"docker-onboarding__section",children:[s.jsx("h4",{className:"docker-onboarding__section-title",children:a("docker.sections.requiredSettings","Required Settings")}),s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.nodeName","Node Name")}),s.jsx("input",{className:"input",value:i,onChange:L=>o(L.target.value),disabled:G,placeholder:a("docker.placeholders.nodeName","my-docker-node"),autoFocus:!0})]}),K.name&&s.jsx("div",{className:"form-error",children:K.name}),s.jsx(NF,{value:l,onChange:c}),s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.reachableUrl","Reachable URL")}),s.jsx("input",{className:"input",value:d,onChange:L=>u(L.target.value),disabled:G,placeholder:Jo})]}),K.reachableUrl&&s.jsx("div",{className:"form-error",children:K.reachableUrl}),s.jsxs("div",{className:"docker-onboarding__radio-group",children:[s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"radio",checked:m==="auto",onChange:()=>h("auto"),disabled:G}),a("docker.options.autoGenerate","Auto-generate")]}),s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"radio",checked:m==="manual",onChange:()=>h("manual"),disabled:G}),a("docker.options.provideManually","Provide manually")]})]}),m==="manual"&&s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.apiKey","API Key")}),s.jsx("input",{className:"input",type:"password",value:v,onChange:L=>p(L.target.value),disabled:G,placeholder:a("docker.placeholders.apiKey","Enter API key")})]}),s.jsxs("div",{className:"docker-onboarding__checkbox-group",children:[s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"checkbox",checked:b,onChange:L=>y(L.target.checked),disabled:G}),a("docker.options.claudeCli","Claude CLI")]}),s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"checkbox",checked:g,onChange:L=>j(L.target.checked),disabled:G}),a("docker.options.droidCli","Droid CLI")]}),s.jsxs("label",{className:"checkbox-label",children:[s.jsx("input",{type:"checkbox",checked:x,onChange:L=>C(L.target.checked),disabled:G}),a("docker.options.persistentStorage","Keep data across container recreations")]})]}),s.jsxs("div",{className:"docker-onboarding__inline-fields",children:[s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.memory","Memory (MB)")}),s.jsx("input",{className:"input",type:"number",min:512,value:w,onChange:L=>P(Number(L.target.value)),disabled:G})]}),s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.cpus","CPUs")}),s.jsx("input",{className:"input",type:"number",min:.5,step:.5,value:A,onChange:L=>S(Number(L.target.value)),disabled:G})]})]}),K.memoryMB&&s.jsx("div",{className:"form-error",children:K.memoryMB}),K.cpus&&s.jsx("div",{className:"form-error",children:K.cpus})]}),s.jsxs("section",{className:"docker-onboarding__section",children:[s.jsxs("button",{type:"button",className:`docker-onboarding__advanced-toggle ${N?"is-expanded":""}`,onClick:()=>E(L=>!L),disabled:G,children:[s.jsx("span",{children:a("docker.sections.advanced","Advanced")}),s.jsx(sc,{})]}),s.jsx("div",{className:`docker-onboarding__advanced-content ${N?"is-expanded":""}`,children:s.jsxs("div",{children:[s.jsxs("div",{className:"docker-onboarding__inline-fields",children:[s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.image","Image")}),s.jsx("input",{className:"input",value:T,onChange:L=>O(L.target.value),disabled:G,placeholder:a("docker.placeholders.image","runfusion/fusion")})]}),s.jsxs("label",{className:"docker-onboarding__field",children:[s.jsx("span",{children:a("docker.labels.tag","Tag")}),s.jsx("input",{className:"input",value:I,onChange:L=>z(L.target.value),disabled:G,placeholder:a("docker.placeholders.tag","latest")})]})]}),s.jsxs("div",{className:"docker-onboarding__kv-list",children:[s.jsx("h5",{children:a("docker.sections.environmentVariables","Environment Variables")}),D.map((L,Y)=>s.jsxs("div",{className:"docker-onboarding__kv-row docker-onboarding__kv-row--env",children:[s.jsx("input",{className:"input",placeholder:a("docker.placeholders.envVarKey","KEY"),value:L.key,disabled:G,onChange:ne=>ye(Y,{key:ne.target.value,value:L.value})}),s.jsx("input",{className:"input",placeholder:a("docker.placeholders.envVarValue","Value"),value:L.value,disabled:G,onChange:ne=>ye(Y,{key:L.key,value:ne.target.value})}),s.jsx("button",{type:"button",className:"btn btn-icon","aria-label":a("docker.ariaLabels.removeVariable","Remove environment variable"),onClick:()=>oe(Y),disabled:G,children:s.jsx(tn,{size:14})})]},`env-${Y}`)),s.jsxs("button",{type:"button",className:"btn btn-sm docker-onboarding__kv-add",onClick:ae,disabled:G,children:[s.jsx(zn,{size:14}),a("docker.actions.addVariable","Add variable")]})]}),s.jsxs("div",{className:"docker-onboarding__kv-list",children:[s.jsx("h5",{children:a("docker.sections.volumeMounts","Volume Mounts")}),B.map((L,Y)=>s.jsxs("div",{className:"docker-onboarding__kv-row docker-onboarding__kv-row--mount",children:[s.jsx("input",{className:"input",placeholder:a("docker.placeholders.hostPath","Host path"),value:L.hostPath,disabled:G,onChange:ne=>J(Y,{hostPath:ne.target.value,containerPath:L.containerPath,mode:L.mode})}),s.jsx("input",{className:"input",placeholder:a("docker.placeholders.containerPath","Container path"),value:L.containerPath,disabled:G,onChange:ne=>J(Y,{hostPath:L.hostPath,containerPath:ne.target.value,mode:L.mode})}),s.jsxs("select",{className:"select",value:L.mode,disabled:G,onChange:ne=>J(Y,{hostPath:L.hostPath,containerPath:L.containerPath,mode:ne.target.value==="ro"?"ro":"rw"}),children:[s.jsx("option",{value:"rw",children:kh.readWrite}),s.jsx("option",{value:"ro",children:kh.readOnly})]}),s.jsx("button",{type:"button",className:"btn btn-icon","aria-label":a("docker.ariaLabels.removeMount","Remove volume mount"),onClick:()=>Ce(Y),disabled:G,children:s.jsx(tn,{size:14})})]},`mount-${Y}`)),s.jsxs("button",{type:"button",className:"btn btn-sm docker-onboarding__kv-add",onClick:He,disabled:G,children:[s.jsx(zn,{size:14}),a("docker.actions.addMount","Add mount")]})]})]})})]})]}),s.jsxs("div",{className:"modal-actions",children:[s.jsx("button",{className:"btn",onClick:H,disabled:G,children:a("docker.actions.cancel","Cancel")}),s.jsx("button",{className:"btn btn-primary",onClick:()=>void Re(),disabled:G,children:G?a("docker.states.creating","Creating..."):a("docker.actions.createNode","Create Docker Node")})]})]})}):null}function AF({nodeId:e,entries:t,loading:r=!1,singleNode:n=!1}){const{t:a}=se("app"),[i,o]=f.useState(!1),[l,c]=f.useState("all"),[d,u]=f.useState("all"),m=f.useCallback(()=>{o(g=>!g)},[]),h=f.useMemo(()=>{const g=new Set;for(const j of t)g.add(j.nodeName);return Array.from(g).sort()},[t]),v=f.useMemo(()=>{let g=[...t];return l!=="all"&&(g=g.filter(j=>j.direction===l)),!n&&d!=="all"&&(g=g.filter(j=>j.nodeName===d)),g.sort((j,x)=>{const C=new Date(j.timestamp).getTime();return new Date(x.timestamp).getTime()-C}),g},[t,l,d,n]),p=f.useCallback(g=>new Date(g).toLocaleString(),[]),b=f.useCallback(g=>{switch(g){case"success":return"settings-sync-log__badge--success";case"conflict":return"settings-sync-log__badge--conflict";case"error":return"settings-sync-log__badge--error";default:return""}},[]),y=f.useCallback(g=>{switch(g){case"success":return a("syncLog.resultSuccess","Success");case"conflict":return a("syncLog.resultConflict","Conflict");case"error":return a("syncLog.resultError","Error");default:return g}},[a]);return s.jsxs("div",{className:"settings-sync-log",children:[s.jsxs("button",{className:"settings-sync-log__header",type:"button",onClick:m,"aria-expanded":i,"data-testid":"settings-sync-log-header",children:[s.jsx(sc,{size:16,className:`settings-sync-log__chevron ${i?"settings-sync-log__chevron--expanded":""}`}),s.jsx("span",{children:a("syncLog.entryCount",{count:t.length,defaultValue_one:"{{count}} entry",defaultValue_other:"{{count}} entries"})})]}),i&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"settings-sync-log__filters",children:[s.jsxs("label",{children:[a("syncLog.filterDirection","Direction:"),s.jsxs("select",{value:l,onChange:g=>c(g.target.value),children:[s.jsx("option",{value:"all",children:a("syncLog.filterAll","All")}),s.jsx("option",{value:"push",children:a("syncLog.filterPush","Push")}),s.jsx("option",{value:"pull",children:a("syncLog.filterPull","Pull")})]})]}),!n&&s.jsxs("label",{children:[a("syncLog.filterNode","Node:"),s.jsxs("select",{value:d,onChange:g=>u(g.target.value),children:[s.jsx("option",{value:"all",children:a("syncLog.filterAllNodes","All Nodes")}),h.map(g=>s.jsx("option",{value:g,children:g},g))]})]})]}),r&&t.length===0?s.jsx("div",{className:"settings-sync-log__empty",children:s.jsx(rc,{label:a("syncLog.loading","Loading...")})}):v.length===0?s.jsx("div",{className:"settings-sync-log__empty",children:a("syncLog.noHistory","No sync history available")}):s.jsx("div",{className:"settings-sync-log__list",children:v.map(g=>s.jsxs("div",{className:"settings-sync-log__entry",children:[s.jsx("span",{className:"settings-sync-log__entry-timestamp",children:p(g.timestamp)}),s.jsx("span",{className:"settings-sync-log__entry-direction",children:g.direction==="push"?s.jsx(uc,{size:14,"data-testid":"upload-icon"}):s.jsx(Ri,{size:14,"data-testid":"download-icon"})}),s.jsx("span",{className:`settings-sync-log__entry-result ${b(g.result)}`,children:y(g.result)}),!n&&s.jsx("span",{className:"settings-sync-log__entry-node",children:g.nodeName}),g.details&&s.jsx("span",{className:"settings-sync-log__entry-details",title:g.details,children:Xj(g.details??"")})]},g.id))})]})]})}function OF(e,t){const r=typeof e=="string"?e:JSON.stringify(e,null,2),n=typeof t=="string"?t:JSON.stringify(t,null,2);if(r===n)return r;const a=r.split(`
|
|
100
100
|
`),i=n.split(`
|
|
101
101
|
`),o=[],l=Math.max(a.length,i.length);for(let c=0;c<l;c++){const d=a[c],u=i[c];d!==void 0&&d!==u&&o.push(`- ${d}`),u!==void 0&&u!==d&&o.push(`+ ${u}`),d!==void 0&&d===u&&o.push(` ${d}`)}return o.join(`
|
|
102
|
-
`)}function OF({isOpen:e,onClose:t,onResolve:r,conflicts:n,localNodeName:a,remoteNodeName:i,addToast:o}){const{t:l}=se("app"),[c,d]=f.useState({}),[u,m]=f.useState(!1);f.useEffect(()=>{const g={};for(const j of n)c[j.key]||(g[j.key]={resolution:"local"});Object.keys(g).length>0&&d(j=>({...j,...g}))},[n,c]),f.useEffect(()=>{if(!e)return;const g=j=>{j.key==="Escape"&&(j.preventDefault(),t())};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[e,t]);const h=f.useCallback((g,j)=>{d(x=>{const C=x[g]??{};return j==="manual"?{...x,[g]:{resolution:"manual",manualValue:C.manualValue??JSON.stringify(n.find(w=>w.key===g)?.localValue??null,null,2)}}:{...x,[g]:{resolution:j}}})},[n]),v=f.useCallback((g,j)=>{d(x=>({...x,[g]:{...x[g],resolution:"manual",manualValue:j}}))},[]),p=f.useCallback(g=>{const j={};for(const x of n)j[x.key]={resolution:g};d(j)},[n]),b=f.useCallback(async()=>{m(!0);try{const g=n.map(j=>{const x=c[j.key]??{resolution:"local"};let C;switch(x.resolution){case"remote":C=j.remoteValue;break;case"manual":try{C=JSON.parse(x.manualValue??"null")}catch{C=x.manualValue??null}break;case"local":default:C=j.localValue;break}return{key:j.key,value:C}});await r(g),o(l("settings.resolvedSuccess","Settings conflicts resolved successfully"),"success"),t()}catch(g){const j=g instanceof Error?g.message:l("settings.resolveFailed","Failed to resolve conflicts");o(j,"error")}finally{m(!1)}},[o,n,t,r,c]),y=f.useMemo(()=>{const g={};for(const j of n)g[j.key]=AF(j.localValue,j.remoteValue);return g},[n]);return!e||n.length===0?null:s.jsx("div",{className:"modal-overlay open",onClick:t,children:s.jsxs("div",{className:"modal modal-lg settings-sync-conflict-modal",onClick:g=>g.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":l("settings.conflictModalTitle","Resolve Settings Conflicts"),children:[s.jsxs("div",{className:"modal-header",children:[s.jsx("h3",{children:l("settings.conflictModalTitle","Resolve Settings Conflicts")}),s.jsx("button",{className:"modal-close",onClick:t,"aria-label":l("settings.closeModal","Close conflict modal"),children:"×"})]}),s.jsxs("div",{className:"modal-body",children:[s.jsx("div",{className:"settings-sync-conflict-modal__conflict-list",children:n.map(g=>{const j=c[g.key]??{resolution:"local"},x=y[g.key];return s.jsxs("div",{className:"settings-sync-conflict-modal__conflict-item",children:[s.jsx("div",{className:"settings-sync-conflict-modal__key",children:g.key}),s.jsxs("div",{className:"settings-sync-conflict-modal__diff-panel",children:[s.jsxs("div",{className:"settings-sync-conflict-modal__diff-side",children:[s.jsx("div",{className:"settings-sync-conflict-modal__diff-label",children:a}),s.jsx("div",{className:"settings-sync-conflict-modal__diff-content",children:s.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap"},children:x})})]}),s.jsxs("div",{className:"settings-sync-conflict-modal__diff-side",children:[s.jsx("div",{className:"settings-sync-conflict-modal__diff-label",children:i}),s.jsx("div",{className:"settings-sync-conflict-modal__diff-content",children:s.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap"},children:x})})]})]}),s.jsxs("div",{className:"settings-sync-conflict-modal__resolution",children:[s.jsxs("label",{children:[s.jsx("input",{type:"radio",name:`resolution-${g.key}`,checked:j.resolution==="local",onChange:()=>h(g.key,"local")}),l("settings.keepLocal","Keep Local")]}),s.jsxs("label",{children:[s.jsx("input",{type:"radio",name:`resolution-${g.key}`,checked:j.resolution==="remote",onChange:()=>h(g.key,"remote")}),l("settings.keepRemote","Keep Remote")]}),s.jsxs("label",{children:[s.jsx("input",{type:"radio",name:`resolution-${g.key}`,checked:j.resolution==="manual",onChange:()=>h(g.key,"manual")}),l("settings.mergeManually","Merge Manually")]})]}),j.resolution==="manual"&&s.jsx("textarea",{className:"settings-sync-conflict-modal__manual-input",value:j.manualValue??"",onChange:C=>v(g.key,C.target.value),placeholder:l("settings.jsonPlaceholder","Enter JSON value...")})]},g.key)})}),s.jsxs("div",{className:"settings-sync-conflict-modal__bulk-actions",children:[s.jsx("button",{className:"btn btn-sm",onClick:()=>p("local"),type:"button",children:l("settings.resolveAllLocal","Resolve All: Keep Local")}),s.jsx("button",{className:"btn btn-sm",onClick:()=>p("remote"),type:"button",children:l("settings.resolveAllRemote","Resolve All: Keep Remote")})]})]}),s.jsxs("div",{className:"modal-actions settings-sync-conflict-modal__footer",children:[s.jsx("button",{className:"btn btn-sm",onClick:t,children:l("actions.cancel","Cancel")}),s.jsx("button",{className:"btn btn-primary btn-sm",onClick:b,disabled:u,children:u?l("settings.resolving","Resolving..."):l("actions.confirm","Confirm")})]})]})})}const Ra={readWrite:"rw",readOnly:"ro",volume:"volume",bind:"bind"},Xx=/(KEY|TOKEN|SECRET|PASSWORD)/i;function Qo(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?"—":t.toLocaleString()}function EF(e){if(!e)return"—";const t=new Date(e),r=Date.now();if(Number.isNaN(t.getTime())||t.getTime()>r)return"—";const n=Math.floor((r-t.getTime())/1e3);if(n<60)return`${n}s`;const a=Math.floor(n/60);if(a<60)return`${a}m`;const i=Math.floor(a/60);return i<24?`${i}h ${a%60}m`:`${Math.floor(i/24)}d ${i%24}h`}function _F(e){switch(e){case"synced":return"node-detail-modal__sync-dot--synced";case"diff":return"node-detail-modal__sync-dot--diff";case"error":return"node-detail-modal__sync-dot--error";case"pending":return"node-detail-modal__sync-dot--pending";case"never-synced":default:return"node-detail-modal__sync-dot--never"}}function TF(e){return e==="running"?"success":e==="creating"||e==="recreating"||e==="restarting"?"warning":"error"}function MF(e){return e?`${e.charAt(0).toUpperCase()}${e.slice(1)}`:"Unknown"}function IF(e){if(!e)return"—";try{const t=new URL(e);return t.port?t.port:t.protocol==="https:"?"443":t.protocol==="http:"?"80":"—"}catch{return"—"}}function DF(e,t){return Xx.test(e)?"••••••••":t}function RF({isOpen:e,onClose:t,node:r,projects:n,onUpdate:a,onHealthCheck:i,addToast:o,syncStatus:l,onPushSettings:c,onPullSettings:d,onSyncAuth:u,syncHistory:m=[],onResolveConflicts:h,managedDockerNode:v,containerStatus:p,onFetchContainerStatus:b,onFetchLogs:y,onUpdateDockerConfig:g,onFetchDockerConfigDiff:j}){const{t:x}=se("app"),C=f.useRef(!0),[w,P]=f.useState(!1),[A,S]=f.useState(""),[N,E]=f.useState(""),[T,O]=f.useState(""),[I,z]=f.useState(2),[D,V]=f.useState(!1),[B,W]=f.useState(!1),[K,te]=f.useState(!1),[G,M]=f.useState(!1),[q,H]=f.useState(null),[re,ae]=f.useState(!1),[ye]=f.useState([]),[oe,He]=f.useState(p),[J,Ce]=f.useState(!1),[Re,L]=f.useState(!1),[Y,ne]=f.useState(""),[Ne,Q]=f.useState(!1),[le,Oe]=f.useState(!1),[k,$]=f.useState(r?.dockerConfig??null),[de,Le]=f.useState({}),[Nt,pa]=f.useState(!1),[ks,R]=f.useState(!1);f.useEffect(()=>(C.current=!0,()=>{C.current=!1}),[]),f.useEffect(()=>{He(p)},[p]),f.useEffect(()=>{if(!r||!e){P(!1),L(!1),ne("");return}S(r.name),E(r.url??""),O(r.apiKey??""),z(r.maxConcurrent),P(!1),$(r.dockerConfig??null),Oe(!1),Le({})},[e,r]),f.useEffect(()=>{if(!e)return;const F=ie=>{ie.key==="Escape"&&(ie.preventDefault(),t())};return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[e,t]);const ce=f.useMemo(()=>r?Xj(n,r):[],[r,n]),Pe=f.useMemo(()=>v?v.hostConfig.type==="remote"?v.hostConfig.host??"—":x("nodes.localDocker","Local Docker"):"—",[v,x]),Ge=f.useMemo(()=>!v?.resourceSizing?.cpuLimit&&!v?.resourceSizing?.memoryLimit?x("nodes.dockerResourceDefault","Default"):`${v.resourceSizing?.cpuLimit??x("nodes.dockerDefaultCpu","Default CPU")} / ${v.resourceSizing?.memoryLimit??x("nodes.dockerDefaultMemory","Default memory")}`,[v,x]),Kr=f.useCallback(async()=>{if(r)try{if(await i(r.id),!C.current)return;o(x("nodes.healthCheckSuccess","Health check completed for {{name}}",{name:r.name}),"success")}catch(F){if(!C.current)return;const ie=F instanceof Error?F.message:x("nodes.healthCheckFailed","Health check failed");o(ie,"error")}},[o,r,i]),ya=f.useCallback(async()=>{if(!(!r||!c)){H(null),W(!0);try{if(await c(r.id),!C.current)return;o(x("nodes.pushSettingsSuccess","Settings pushed successfully"),"success")}catch(F){if(!C.current)return;const ie=F instanceof Error?F.message:x("nodes.pushSettingsFailed","Push settings failed");H(ie),o(ie,"error")}finally{C.current&&W(!1)}}},[o,r,c]),Cn=f.useCallback(async()=>{if(!(!r||!d)){H(null),te(!0);try{if(await d(r.id),!C.current)return;o(x("nodes.pullSettingsSuccess","Settings pulled successfully"),"success")}catch(F){if(!C.current)return;const ie=F instanceof Error?F.message:x("nodes.pullSettingsFailed","Pull settings failed");H(ie),o(ie,"error")}finally{C.current&&te(!1)}}},[o,r,d]),Ss=f.useCallback(async()=>{if(!(!r||!u)){H(null),M(!0);try{if(await u(r.id),!C.current)return;o(x("nodes.syncAuthSuccess","Auth credentials synced successfully"),"success")}catch(F){if(!C.current)return;const ie=F instanceof Error?F.message:x("nodes.syncAuthFailed","Auth sync failed");H(ie),o(ie,"error")}finally{C.current&&M(!1)}}},[o,r,u]),Yx=f.useCallback(()=>{H(null)},[]),Zx=f.useCallback(async()=>{if(!(!v||!b)){Ce(!0);try{const F=await b(v.id);if(!C.current)return;He(F)}catch(F){const ie=F instanceof Error?F.message:x("nodes.fetchContainerStatusFailed","Failed to fetch container status");o(ie,"error")}finally{C.current&&Ce(!1)}}},[o,v,b]),Jx=f.useCallback(async()=>{if(!(!v||!y)){L(!0),Q(!0);try{const F=await y(v.id);if(!C.current)return;ne(F)}catch(F){if(!C.current)return;ne("");const ie=F instanceof Error?F.message:x("nodes.fetchContainerLogsFailed","Failed to fetch container logs");o(ie,"error")}finally{C.current&&Q(!1)}}},[o,v,y]),Qx=f.useCallback(async()=>{if(!r||D)return;const F=A.trim();if(!F){o(x("nodes.nameRequired","Name is required"),"error");return}if(r.type==="remote"&&!N.trim()){o(x("nodes.urlRequired","URL is required for remote nodes"),"error");return}if(!Number.isFinite(I)||I<1){o(x("nodes.concurrencyMin","Concurrency must be at least 1"),"error");return}V(!0);try{await a(r.id,{name:F,url:r.type==="remote"&&N.trim()||void 0,apiKey:r.type==="remote"&&T||void 0,maxConcurrent:I}),o(x("nodes.updateSuccess","Updated {{name}}",{name:F}),"success"),P(!1)}catch(ie){const it=ie instanceof Error?ie.message:x("nodes.updateFailed","Failed to update node");o(it,"error")}finally{V(!1)}},[o,T,D,I,A,r,a,N]);f.useEffect(()=>{!r?.dockerConfig||!j||!e||j(r.id).then(F=>{C.current&&R(F.needsRecreate)}).catch(()=>{C.current&&R(!1)})},[e,r,j]);const ej=f.useCallback(async()=>{if(!(!r||!k||!g||Nt)){pa(!0);try{const F=await g(r.id,{image:k.image,volumeMounts:k.volumeMounts,environment:k.environment,resources:k.resources,host:k.host,extraClis:k.extraClis,persistence:k.persistence,containerName:k.containerName});if(!C.current)return;$(F),o(x("nodes.dockerConfigSaveSuccess","Docker config saved"),"success")}catch(F){if(!C.current)return;const ie=F instanceof Error?F.message:x("nodes.dockerConfigSaveFailed","Failed to save Docker config");o(ie,"error")}finally{C.current&&pa(!1)}}},[o,k,Nt,r,g]),tj=f.useCallback(()=>{r&&(S(r.name),E(r.url??""),O(r.apiKey??""),z(r.maxConcurrent),P(!1))},[r]);if(!e||!r)return null;const sr=oe?.status??v?.status,rj=TF(sr);return s.jsxs(ac,{windowKey:"node-detail",title:x("nodes.modalTitle","Node Details"),ariaLabel:x("nodes.modalAriaLabel","Node details for {{name}}",{name:r.name}),onClose:t,hideHeader:!0,dragHandleSelector:".modal-header",className:"floating-window--node-detail",defaultSize:{width:720,height:560},minSize:{width:360,height:280},persistGeometryKey:"floating-window:node-detail",suspendGeometryPersistenceOnMobile:!0,suspendGeometryPersistenceOnShortViewport:!0,closeOnOutsidePointerDown:!0,children:[s.jsxs("div",{className:"modal modal-lg node-detail-modal",children:[s.jsxs("div",{className:"modal-header",children:[s.jsx("h3",{children:x("nodes.modalTitle","Node Details")}),s.jsx("button",{className:"modal-close",onClick:t,"aria-label":x("nodes.closeModalAriaLabel","Close node detail modal"),children:"×"})]}),s.jsxs("div",{className:"modal-body node-detail-modal__body",children:[s.jsxs("section",{className:"node-detail-modal__section",children:[s.jsxs("div",{className:"node-detail-modal__section-header",children:[s.jsx("h4",{children:x("nodes.sectionOverview","Overview")}),!w&&s.jsxs("button",{className:"btn btn-sm",onClick:()=>P(!0),children:[s.jsx(Yj,{size:14}),x("nodes.editButton","Edit")]})]}),s.jsxs("div",{className:"node-detail-modal__grid",children:[s.jsxs("label",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldName","Name")}),w?s.jsx("input",{className:"input",value:A,onChange:F=>S(F.target.value),disabled:D}):s.jsx("strong",{children:r.name})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldType","Type")}),s.jsx("strong",{children:r.type==="local"?x("nodes.typeLocal","Local"):x("nodes.typeRemote","Remote")})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldStatus","Status")}),s.jsx("strong",{children:r.status})]}),s.jsxs("label",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldMaxConcurrent","Max Concurrent")}),w?s.jsx("input",{className:"input",type:"number",min:1,max:10,value:I,onChange:F=>z(Number(F.target.value)),disabled:D}):s.jsx("strong",{children:r.maxConcurrent})]}),r.type==="remote"&&s.jsxs(s.Fragment,{children:[s.jsxs("label",{className:"node-detail-modal__field node-detail-modal__field--full",children:[s.jsx("span",{children:x("nodes.fieldUrl","URL")}),w?s.jsx("input",{className:"input",value:N,onChange:F=>E(F.target.value),disabled:D}):s.jsx("strong",{children:r.url??"—"})]}),s.jsxs("label",{className:"node-detail-modal__field node-detail-modal__field--full",children:[s.jsx("span",{children:x("nodes.fieldApiKey","API Key")}),w?s.jsx("input",{className:"input",type:"password",value:T,onChange:F=>O(F.target.value),placeholder:x("nodes.apiKeyPlaceholder","Leave blank to keep unchanged"),disabled:D}):s.jsx("strong",{children:r.apiKey?"••••••••":x("nodes.apiKeyNotConfigured","Not configured")})]})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldCreated","Created")}),s.jsx("strong",{children:Qo(r.createdAt)})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldUpdated","Updated")}),s.jsx("strong",{children:Qo(r.updatedAt)})]})]}),w&&s.jsxs("div",{className:"node-detail-modal__edit-actions",children:[s.jsxs("button",{className:"btn btn-primary btn-sm",onClick:Qx,disabled:D,children:[s.jsx(Vu,{size:14}),D?x("nodes.saving","Saving..."):x("nodes.saveButton","Save")]}),s.jsxs("button",{className:"btn btn-sm",onClick:tj,disabled:D,children:[s.jsx($a,{size:14}),x("nodes.cancelButton","Cancel")]})]})]}),s.jsxs("section",{className:"node-detail-modal__section",children:[s.jsxs("h4",{children:[r.type==="local"?x("nodes.sectionProjects","Projects"):x("nodes.sectionAssignedProjects","Assigned Projects")," (",ce.length,")"]}),ce.length===0?s.jsx("p",{className:"node-detail-modal__empty",children:r.type==="local"?x("nodes.noProjectsRunning","No projects are running on this node."):x("nodes.noProjectsAssigned","No projects are assigned to this node.")}):s.jsx("ul",{className:"node-detail-modal__project-list",children:ce.map(F=>s.jsxs("li",{className:"node-detail-modal__project-item",children:[s.jsx("span",{children:F.name}),s.jsx("code",{children:F.id})]},F.id))})]}),s.jsxs("section",{className:"node-detail-modal__section",children:[s.jsx("h4",{children:x("nodes.sectionHealth","Health")}),s.jsxs("div",{className:"node-detail-modal__health-row",children:[s.jsxs("span",{children:[x("nodes.healthStatus","Status:")," ",s.jsx("strong",{children:r.status})]}),s.jsxs("span",{children:[x("nodes.healthLastCheck","Last check:")," ",s.jsx("strong",{children:Qo(r.updatedAt)})]})]})]}),k&&s.jsxs("section",{className:"node-detail-modal__section node-detail-modal__docker-config",children:[s.jsxs("button",{className:"btn btn-sm node-detail-modal__docker-toggle",onClick:()=>Oe(F=>!F),"aria-expanded":le,children:[s.jsx(ic,{size:14,className:le?"node-detail-modal__docker-toggle-icon--expanded":""}),x("nodes.dockerConfiguration","Docker Configuration")]}),le&&s.jsxs("div",{className:"node-detail-modal__docker-config-content",children:[s.jsx("div",{className:"node-detail-modal__grid",children:s.jsxs("label",{className:"node-detail-modal__field node-detail-modal__field--full",children:[s.jsx("span",{children:x("nodes.dockerFieldImage","Image")}),s.jsx("input",{className:"input",value:k.image,onChange:F=>$({...k,image:F.target.value})})]})}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerVolumeMounts","Volume Mounts")}),s.jsxs("div",{className:"node-detail-modal__docker-list",children:[k.volumeMounts.map((F,ie)=>s.jsxs("div",{className:"node-detail-modal__docker-row",children:[s.jsx("input",{className:"input",value:F.hostPath,placeholder:x("nodes.dockerHostPath","Host path"),onChange:it=>{const fe=[...k.volumeMounts];fe[ie]={...fe[ie],hostPath:it.target.value},$({...k,volumeMounts:fe})}}),s.jsx("input",{className:"input",value:F.containerPath,placeholder:x("nodes.dockerContainerPath","Container path"),onChange:it=>{const fe=[...k.volumeMounts];fe[ie]={...fe[ie],containerPath:it.target.value},$({...k,volumeMounts:fe})}}),s.jsxs("select",{className:"input",value:F.mode??"rw",onChange:it=>{const fe=[...k.volumeMounts];fe[ie]={...fe[ie],mode:it.target.value},$({...k,volumeMounts:fe})},children:[s.jsx("option",{value:"rw",children:Ra.readWrite}),s.jsx("option",{value:"ro",children:Ra.readOnly})]}),s.jsxs("select",{className:"input",value:F.type??"volume",onChange:it=>{const fe=[...k.volumeMounts];fe[ie]={...fe[ie],type:it.target.value},$({...k,volumeMounts:fe})},children:[s.jsx("option",{value:"volume",children:Ra.volume}),s.jsx("option",{value:"bind",children:Ra.bind})]}),s.jsx("button",{className:"btn btn-sm",onClick:()=>$({...k,volumeMounts:k.volumeMounts.filter((it,fe)=>fe!==ie)}),children:x("nodes.removeButton","Remove")})]},`${F.hostPath}-${F.containerPath}-${ie}`)),s.jsx("button",{className:"btn btn-sm",onClick:()=>$({...k,volumeMounts:[...k.volumeMounts,{hostPath:"",containerPath:"",mode:"rw",type:"volume"}]}),children:x("nodes.addMountButton","Add Mount")})]})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerEnvVars","Environment Variables")}),s.jsxs("div",{className:"node-detail-modal__docker-list",children:[Object.entries(k.environment).map(([F,ie])=>{const it=Xx.test(F)&&!de[F];return s.jsxs("div",{className:"node-detail-modal__docker-row",children:[s.jsx("input",{className:"input",value:F,onChange:fe=>{const Ns={...k.environment};delete Ns[F],Ns[fe.target.value]=ie,$({...k,environment:Ns})}}),s.jsx("input",{className:"input",value:it?"***":String(ie),onChange:fe=>$({...k,environment:{...k.environment,[F]:fe.target.value}})}),s.jsx("button",{className:"btn btn-sm",onClick:()=>Le(fe=>({...fe,[F]:!fe[F]})),children:de[F]?s.jsx(Zj,{size:14}):s.jsx(Jj,{size:14})}),s.jsx("button",{className:"btn btn-sm",onClick:()=>{const fe={...k.environment};delete fe[F],$({...k,environment:fe})},children:x("nodes.removeButton","Remove")})]},F)}),s.jsx("button",{className:"btn btn-sm",onClick:()=>{const F=`NEW_VAR_${Object.keys(k.environment).length+1}`;$({...k,environment:{...k.environment,[F]:""}})},children:x("nodes.addVariableButton","Add Variable")})]})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerResources","Resources")}),s.jsxs("div",{className:"node-detail-modal__docker-stack",children:[s.jsx("input",{className:"input",type:"number",placeholder:x("nodes.dockerMemoryBytes","Memory bytes (2 GB = 2147483648)"),value:k.resources?.memoryBytes??"",onChange:F=>$({...k,resources:{...k.resources,memoryBytes:F.target.value?Number(F.target.value):void 0}})}),s.jsx("input",{className:"input",type:"number",placeholder:x("nodes.dockerCpuCount","CPU count"),value:k.resources?.cpuCount??"",onChange:F=>$({...k,resources:{...k.resources,cpuCount:F.target.value?Number(F.target.value):void 0}})}),s.jsx("input",{className:"input",type:"number",placeholder:x("nodes.dockerPidsLimit","PIDs limit"),value:k.resources?.pidsLimit??"",onChange:F=>$({...k,resources:{...k.resources,pidsLimit:F.target.value?Number(F.target.value):void 0}})})]})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerHostConfig","Host Config")}),s.jsxs("div",{className:"node-detail-modal__docker-stack",children:[s.jsx("input",{className:"input",placeholder:x("nodes.dockerContextName","Context name"),value:k.host?.contextName??"",onChange:F=>$({...k,host:{...k.host,contextName:F.target.value}})}),s.jsx("input",{className:"input",placeholder:x("nodes.dockerHostUrl","Docker host URL"),value:k.host?.dockerHost??"",onChange:F=>$({...k,host:{...k.host,dockerHost:F.target.value}})}),s.jsx("input",{className:"input",placeholder:x("nodes.dockerTlsCaCert","TLS CA cert path"),value:k.host?.tlsCaCert??"",onChange:F=>$({...k,host:{...k.host,tlsCaCert:F.target.value}})}),s.jsx("input",{className:"input",placeholder:x("nodes.dockerTlsCert","TLS cert path"),value:k.host?.tlsCert??"",onChange:F=>$({...k,host:{...k.host,tlsCert:F.target.value}})}),s.jsx("input",{className:"input",placeholder:x("nodes.dockerTlsKey","TLS key path"),value:k.host?.tlsKey??"",onChange:F=>$({...k,host:{...k.host,tlsKey:F.target.value}})}),s.jsxs("label",{className:"node-detail-modal__checkbox",children:[s.jsx("input",{type:"checkbox",checked:k.host?.tlsVerify??!0,onChange:F=>$({...k,host:{...k.host,tlsVerify:F.target.checked}})}),x("nodes.dockerTlsVerify","TLS verify")]})]})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerExtraClis","Extra CLIs")}),s.jsxs("div",{className:"node-detail-modal__docker-list",children:[(k.extraClis??[]).map((F,ie)=>s.jsxs("div",{className:"node-detail-modal__docker-row",children:[s.jsx("input",{className:"input",value:F,onChange:it=>{const fe=[...k.extraClis??[]];fe[ie]=it.target.value,$({...k,extraClis:fe})}}),s.jsx("button",{className:"btn btn-sm",onClick:()=>$({...k,extraClis:(k.extraClis??[]).filter((it,fe)=>fe!==ie)}),children:x("nodes.removeButton","Remove")})]},`${F}-${ie}`)),s.jsx("button",{className:"btn btn-sm",onClick:()=>$({...k,extraClis:[...k.extraClis??[],""]}),children:x("nodes.addCliButton","Add CLI")})]})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerPersistence","Persistence")}),s.jsxs("div",{className:"node-detail-modal__docker-stack",children:[s.jsx("input",{className:"input",placeholder:x("nodes.dockerVolumeName","Volume name"),value:k.persistence?.volumeName??"",onChange:F=>$({...k,persistence:{...k.persistence,volumeName:F.target.value}})}),s.jsxs("label",{className:"node-detail-modal__checkbox",children:[s.jsx("input",{type:"checkbox",checked:k.persistence?.retainOnDelete??!1,onChange:F=>$({...k,persistence:{...k.persistence,retainOnDelete:F.target.checked}})}),x("nodes.dockerRetainOnDelete","Retain on delete")]})]})]}),s.jsxs("div",{className:"node-detail-modal__docker-meta",children:[s.jsx("span",{children:x("nodes.dockerConfigMeta","Config v{{version}} • Updated {{updated}}",{version:k.configVersion,updated:Gl(k.lastUpdated??r.updatedAt)})}),ks&&s.jsx("span",{className:"node-detail-modal__docker-recreate",children:x("nodes.dockerNeedsRecreate","Needs Recreate")})]}),s.jsxs("button",{className:"btn btn-primary btn-sm",onClick:()=>void ej(),disabled:Nt,children:[s.jsx(Vu,{size:14}),Nt?x("nodes.saving","Saving..."):x("nodes.saveDockerConfig","Save Docker Config")]})]})]}),v&&s.jsxs("section",{className:"node-detail-modal__section docker-management",children:[s.jsx("h4",{children:x("nodes.sectionDockerManagement","Docker Management")}),s.jsxs("div",{className:"docker-management__status-card",children:[s.jsxs("div",{className:"docker-management__status-row",children:[s.jsx("span",{className:`docker-management__status-dot docker-management__status-dot--${rj}`,"aria-hidden":!0}),s.jsx("strong",{children:sr?MF(sr):x("nodes.dockerStatusUnknown","Unknown")}),(sr==="creating"||sr==="recreating"||sr==="restarting")&&s.jsx(Uu,{size:14,className:"spin","aria-hidden":!0})]}),s.jsxs("div",{className:"docker-management__status-meta",children:[sr==="running"&&s.jsxs("span",{children:[x("nodes.dockerUptime","Uptime:")," ",EF(oe?.startedAt)]}),sr!=="running"&&oe?.exitCode!==void 0&&s.jsxs("span",{children:[x("nodes.dockerExitCode","Exit code:")," ",oe.exitCode]}),(oe?.error||v.errorMessage)&&s.jsx("span",{children:oe?.error??v.errorMessage})]}),s.jsx("button",{className:"btn btn-sm",onClick:()=>void Zx(),disabled:!b||J,children:J?x("nodes.refreshing","Refreshing..."):x("nodes.refreshStatus","Refresh Status")})]}),s.jsxs("div",{className:"node-detail-modal__grid docker-management__info-grid",children:[s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerFieldImage","Image")}),s.jsx("strong",{children:s.jsxs("code",{children:[v.imageName,":",v.imageTag]})})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerContainerId","Container ID")}),s.jsx("strong",{children:s.jsx("code",{children:v.containerId?v.containerId.slice(0,12):"—"})})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerHostLabel","Host")}),s.jsx("strong",{children:Pe})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerPersistentStorage","Persistent Storage")}),s.jsx("strong",{children:v.persistentStorage?x("nodes.yes","Yes"):x("nodes.no","No")})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerPort","Port")}),s.jsx("strong",{children:IF(v.reachableUrl)})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerResourceSizing","Resource Sizing")}),s.jsx("strong",{children:Ge})]})]}),s.jsxs("div",{className:"docker-management__actions",children:[s.jsxs("button",{className:"btn btn-sm",disabled:!0,title:x("nodes.availableSoon","Available after FN-3113"),children:[s.jsx(Di,{size:14}),x("nodes.startButton","Start")]}),s.jsxs("button",{className:"btn btn-sm",disabled:!0,title:x("nodes.availableSoon","Available after FN-3113"),children:[s.jsx(Rh,{size:14}),x("nodes.stopButton","Stop")]}),s.jsxs("button",{className:"btn btn-sm",disabled:!0,title:x("nodes.availableSoon","Available after FN-3113"),children:[s.jsx(Uu,{size:14}),x("nodes.restartButton","Restart")]}),s.jsxs("button",{className:"btn btn-sm",onClick:()=>void Jx(),disabled:!y,children:[s.jsx(Qj,{size:14}),x("nodes.viewLogsButton","View Logs")]})]}),Re&&s.jsxs("div",{className:"docker-management__log-viewer",children:[s.jsxs("div",{className:"docker-management__log-viewer-header",children:[s.jsx("strong",{children:x("nodes.containerLogs","Container Logs")}),s.jsx("button",{className:"btn-icon",onClick:()=>L(!1),"aria-label":x("nodes.closeLogsAriaLabel","Close logs"),children:s.jsx($a,{size:14})})]}),Ne?s.jsx("p",{children:x("nodes.fetchingLogs","Fetching logs...")}):s.jsx("pre",{children:Y.trim()||x("nodes.noLogsAvailable","No logs available")})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerEnvVars","Environment Variables")}),s.jsx("dl",{className:"docker-management__env-list",children:Object.entries(v.envVars).map(([F,ie])=>s.jsxs("div",{children:[s.jsx("dt",{children:F}),s.jsx("dd",{children:DF(F,ie)})]},F))})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerVolumeMounts","Volume Mounts")}),s.jsx("ul",{className:"docker-management__mounts-list",children:v.volumeMounts.map(F=>s.jsxs("li",{children:[s.jsxs("span",{children:[F.hostPath," → ",F.containerPath]}),F.readOnly&&s.jsx("span",{className:"node-card__type-badge",children:x("nodes.readOnly","Read-only")})]},`${F.hostPath}:${F.containerPath}`))})]})]}),r.type==="remote"&&s.jsxs("section",{className:"node-detail-modal__section",children:[s.jsx("h4",{children:x("nodes.sectionSettingsSync","Settings Sync")}),l&&s.jsxs("div",{className:"node-detail-modal__sync-status",children:[s.jsx("span",{className:`node-detail-modal__sync-dot ${_F(l.syncState)}`,"aria-hidden":!0}),s.jsxs("span",{children:[x("nodes.syncLastSync","Last sync:")," ",s.jsx("strong",{children:l.lastSyncAt?Gl(l.lastSyncAt):x("nodes.syncNeverSynced","Never synced")})]}),l.diffCount>0&&s.jsxs("span",{className:"node-detail-modal__sync-diff",children:[x("nodes.syncDifferences","Differences:")," ",s.jsx("strong",{children:l.diffCount})]})]}),s.jsxs("div",{className:"node-detail-modal__sync-actions",children:[s.jsxs("button",{className:"btn btn-sm",onClick:ya,disabled:B||!c,children:[s.jsx(cc,{size:14}),B?x("nodes.pushing","Pushing..."):x("nodes.pushSettings","Push Settings")]}),s.jsxs("button",{className:"btn btn-sm",onClick:Cn,disabled:K||!d,children:[s.jsx(Ri,{size:14}),K?x("nodes.pulling","Pulling..."):x("nodes.pullSettings","Pull Settings")]}),s.jsxs("button",{className:"btn btn-sm",onClick:Ss,disabled:G||!u,children:[s.jsx(Ih,{size:14}),G?x("nodes.syncing","Syncing..."):x("nodes.syncAuth","Sync Auth")]})]}),q&&s.jsxs("div",{className:"node-detail-modal__sync-error",children:[s.jsx("span",{children:q}),s.jsx("button",{className:"node-detail-modal__sync-error-dismiss",onClick:Yx,"aria-label":x("nodes.dismissError","Dismiss error"),children:s.jsx($a,{size:14})})]})]}),r.type==="remote"&&s.jsxs("section",{className:"node-detail-modal__section",children:[s.jsx("h4",{children:x("nodes.sectionSyncHistory","Sync History")}),s.jsx(PF,{nodeId:r.id,entries:m,singleNode:!0})]})]}),s.jsxs("div",{className:"modal-actions node-detail-modal__actions",children:[s.jsxs("button",{className:"btn btn-sm",onClick:Kr,children:[s.jsx(Dh,{size:14}),x("nodes.healthCheckButton","Health Check")]}),s.jsx("button",{className:"btn btn-sm",onClick:t,children:x("nodes.closeButton","Close")})]})]}),r.type==="remote"&&s.jsx(OF,{isOpen:re,onClose:()=>ae(!1),onResolve:h??(async()=>{}),conflicts:ye,localNodeName:x("nodes.localNodeName","Local"),remoteNodeName:r.name,addToast:o})]})}const LF=15e3,$F=1e3;function FF(){const[e,t]=f.useState([]),[r,n]=f.useState(!0),[a,i]=f.useState(null),o=f.useRef(null),l=f.useRef(0),c=f.useRef(e),d=rc();f.useEffect(()=>{c.current=e},[e]);const u=f.useCallback(b=>c.current.length>0&&nc(b,d.wasRecentlyHidden()),[d]),m=f.useCallback(async()=>{try{i(null);const b=await qu();t(b)}catch(b){const y=b instanceof Error?b.message:"Failed to fetch managed Docker nodes";u(y)||i(y)}},[u]);f.useEffect(()=>{let b=!1;async function y(){n(!0);try{const j=await qu();b||(t(j),i(null))}catch(j){const x=j instanceof Error?j.message:"Failed to fetch managed Docker nodes";!b&&!u(x)&&i(x)}finally{b||n(!1)}}y();const g=()=>{if(document.visibilityState!=="visible")return;const j=Date.now(),x=j-l.current;if(x<$F){Wa({view:"useManagedDockerNodes",trigger:"visibility",projectId:void 0,replayAttempted:!1,reason:"debounce-skipped",detail:{timeSinceLastRefreshMs:x}});return}l.current=j,Wa({view:"useManagedDockerNodes",trigger:"visibility",projectId:void 0,replayAttempted:!1,reason:"debounced-refresh"}),m()};return document.addEventListener("visibilitychange",g),()=>{b=!0,document.removeEventListener("visibilitychange",g)}},[m,u]),f.useEffect(()=>{if(!r)return o.current=setInterval(()=>{m()},LF),()=>{o.current&&(clearInterval(o.current),o.current=null)}},[r,m]);const h=f.useCallback(async b=>e0(b),[]),v=f.useCallback(async(b,y)=>(await t0(b,y)).logs,[]),p=f.useCallback(async b=>{const y=await r0(b),g={...y,nodeId:y.nodeId??void 0,containerId:y.containerId??void 0,status:y.status,hostConfig:{type:y.hostConfig.host||y.hostConfig.context?"remote":"local",host:y.hostConfig.host,context:y.hostConfig.context},reachableUrl:y.reachableUrl??void 0,volumeMounts:y.volumeMounts.map(j=>({hostPath:j.hostPath,containerPath:j.containerPath,readOnly:j.mode==="ro"?!0:void 0})),persistentStorage:y.persistentStorage,resourceSizing:{cpuLimit:y.resourceSizing.cpus!==void 0?String(y.resourceSizing.cpus):void 0,memoryLimit:y.resourceSizing.memoryMB!==void 0?`${y.resourceSizing.memoryMB}MB`:void 0},errorMessage:y.errorMessage??void 0};return t(j=>[...j,g]),g},[]);return{dockerNodes:e,loading:r,error:a,refresh:m,getContainerStatus:h,getLogs:v,create:p}}function BF({addToast:e,onClose:t}){const{t:r}=se("app"),{nodes:n,loading:a,error:i,refresh:o,register:l,update:c,unregister:d,healthCheck:u,patchDockerConfig:m,fetchDockerDiff:h,discoverRemoteProjects:v}=_h(),{projects:p,refresh:b}=n0(),{meshState:y,loading:g,error:j}=iF(),{engines:x,loading:C,error:w}=lF(),{syncStatusMap:P,pushSettings:A,pullSettings:S,syncAuth:N,trackNode:E,getAuthSyncState:T,getAuthProviders:O}=rF(),{dockerNodes:I,loading:z,refresh:D,getContainerStatus:V,getLogs:B,create:W}=FF(),[K,te]=f.useState(!1),[G,M]=f.useState(!1),[q,H]=f.useState(null);f.useEffect(()=>{const L=n.filter(Y=>Y.type==="remote");for(const Y of L)E(Y.id)},[n,E]),f.useEffect(()=>{if(!q)return;const L=n.find(Y=>Y.id===q.id)??null;H(L)},[n,q]);const re=f.useMemo(()=>{const L=n.length,Y=n.filter(Oe=>Oe.status==="online").length,ne=n.filter(Oe=>Oe.status==="offline"||Oe.status==="error").length,Ne=n.filter(Oe=>Oe.type==="remote").length,Q=n.filter(Oe=>Oe.type==="remote"&&P[Oe.id]&&Zo(P[Oe.id]).syncState==="synced").length,le=I.length;return{total:L,online:Y,offline:ne,remote:Ne,synced:Q,docker:le}},[I.length,n,P]),ae=f.useCallback(async L=>{await l(L),await b()},[b,l]),ye=f.useCallback(async L=>{try{await W(L),e(r("nodes.dockerNodeCreated",'Docker node "{{name}}" created',{name:L.name}),"success"),M(!1)}catch(Y){const ne=Y instanceof Error?Y.message:r("nodes.failedCreateDocker","Failed to create Docker node");throw e(ne,"error"),Y}},[e,W,r]),oe=f.useMemo(()=>{const L=new Map;for(const Y of I)Y.nodeId&&L.set(Y.nodeId,Y);return L},[I]),He=f.useCallback(async()=>{try{await Promise.all([o(),D()])}catch{e(r("nodes.failedRefresh","Failed to refresh nodes"),"error")}},[e,o,D,r]),J=f.useCallback(async L=>{try{await u(L),e(r("nodes.healthCheckComplete","Node health check complete"),"success")}catch(Y){const ne=Y instanceof Error?Y.message:r("nodes.healthCheckFailed","Health check failed");e(ne,"error")}},[e,u,r]),Ce=f.useCallback(async L=>{try{await d(L),e(r("nodes.removed","Node removed"),"success"),q?.id===L&&H(null)}catch(Y){const ne=Y instanceof Error?Y.message:r("nodes.failedRemove","Failed to remove node");e(ne,"error")}},[e,q?.id,d,r]),Re=f.useCallback(async(L,Y)=>{await c(L,Y)},[c]);return s.jsxs("div",{className:"nodes-view","data-testid":"nodes-view",children:[s.jsxs("div",{className:"nodes-view-header",children:[s.jsxs("div",{className:"nodes-view-title",children:[s.jsxs("h2",{children:[s.jsx(Mh,{size:20}),r("nodes.heading","Nodes")]}),s.jsx("span",{className:"nodes-view-count",children:r("nodes.registeredCount","{{count}} registered",{count:n.length})})]}),s.jsxs("div",{className:"nodes-view-actions",children:[t?s.jsx("button",{className:"btn-icon nodes-view-close",onClick:t,"aria-label":r("nodes.closeAriaLabel","Close nodes view"),children:s.jsx($a,{size:16})}):null,s.jsxs("button",{className:"btn btn-sm",onClick:()=>void He(),disabled:a||z,children:[s.jsx(Gt,{size:14,className:a?"spin":""}),r("nodes.refresh","Refresh")]}),s.jsxs("button",{className:"btn btn-sm",onClick:()=>te(!0),children:[s.jsx(zn,{size:14}),r("nodes.addNode","Add Node")]}),s.jsxs("button",{className:"btn btn-sm",onClick:()=>M(!0),title:r("nodes.addDockerNodeTitle","Add a managed Docker node"),children:[s.jsx(rl,{size:14}),r("nodes.addDockerNode","Add Docker Node")]})]})]}),s.jsxs("div",{className:"nodes-view-stats",children:[s.jsxs("div",{className:"nodes-view-stat","data-testid":"nodes-stat-total",children:[s.jsx("span",{children:r("nodes.total","Total")}),s.jsx("strong",{children:re.total})]}),s.jsxs("div",{className:"nodes-view-stat nodes-view-stat--online","data-testid":"nodes-stat-online",children:[s.jsxs("span",{children:[s.jsx(Cw,{size:14})," ",r("nodes.online","Online")]}),s.jsx("strong",{children:re.online})]}),s.jsxs("div",{className:"nodes-view-stat nodes-view-stat--offline","data-testid":"nodes-stat-offline",children:[s.jsxs("span",{children:[s.jsx(jw,{size:14})," ",r("nodes.offline","Offline")]}),s.jsx("strong",{children:re.offline})]}),s.jsxs("div",{className:"nodes-view-stat","data-testid":"nodes-stat-remote",children:[s.jsxs("span",{children:[s.jsx(a0,{size:14})," ",r("nodes.remote","Remote")]}),s.jsx("strong",{children:re.remote})]}),s.jsxs("div",{className:"nodes-view-stat nodes-view-stat--synced","data-testid":"nodes-stat-synced",children:[s.jsxs("span",{children:[s.jsx(Gt,{size:14})," ",r("nodes.synced","Synced")]}),s.jsx("strong",{children:re.synced})]}),s.jsxs("div",{className:"nodes-view-stat","data-testid":"nodes-stat-docker",children:[s.jsxs("span",{children:[s.jsx(rl,{size:14})," ",r("nodes.docker","Docker")]}),s.jsx("strong",{children:re.docker})]})]}),(i||j||w)&&s.jsx("div",{className:"nodes-view-error",children:i??j??w}),!g&&y.length>0&&s.jsxs("section",{className:"nodes-view-topology","aria-label":r("nodes.meshTopologyAriaLabel","Mesh Topology"),children:[s.jsx("h3",{className:"nodes-view-section-title",children:r("nodes.meshTopology","Mesh Topology")}),s.jsx(xF,{nodes:y,engines:C?void 0:x})]}),a?s.jsx("div",{className:"nodes-view-grid",children:Array.from({length:4}).map((L,Y)=>s.jsx("div",{className:"node-card node-card--loading","aria-hidden":!0},Y))}):n.length===0?s.jsxs("div",{className:"nodes-view-empty",children:[s.jsx("p",{children:r("nodes.noRegistered","No nodes are registered yet.")}),s.jsxs("button",{className:"btn btn-primary",onClick:()=>te(!0),children:[s.jsx(zn,{size:14}),r("nodes.addFirstNode","Add First Node")]})]}):s.jsx("div",{className:"nodes-view-grid",children:n.map(L=>{const Y=L.type==="remote"&&P[L.id]?Zo(P[L.id]):void 0;return s.jsx(hF,{node:L,projects:p,onHealthCheck:ne=>{J(ne)},onEdit:ne=>H(ne),onRemove:ne=>{Ce(ne)},isLoading:a,syncStatus:Y,authSyncState:L.type==="remote"?T(L.id):void 0,authSyncProviders:L.type==="remote"?O(L.id):void 0,managedDockerNode:oe.get(L.id)},L.id)})}),s.jsx(wF,{isOpen:K,onClose:()=>te(!1),onSubmit:ae,onDiscoverRemoteProjects:v,addToast:e,projects:p}),s.jsx(NF,{isOpen:G,onClose:()=>M(!1),onSubmit:ye,addToast:e}),s.jsx(RF,{isOpen:q!==null,onClose:()=>H(null),node:q,projects:p,onUpdate:Re,onHealthCheck:J,addToast:e,syncStatus:q?.type==="remote"&&q&&P[q.id]?Zo(P[q.id]):void 0,onPushSettings:A,onPullSettings:S,onSyncAuth:N,managedDockerNode:q?oe.get(q.id):void 0,onFetchContainerStatus:V,onFetchLogs:B,onUpdateDockerConfig:m,onFetchDockerConfigDiff:h})]})}function zF(){const{t:e}=se("app");return t=>{switch(t){case"triage":return e("commandCenter.funnel.stage.triage","Planning");case"todo":return e("commandCenter.funnel.stage.todo","Todo");case"in-progress":return e("commandCenter.funnel.stage.inProgress","In progress");case"in-review":return e("commandCenter.funnel.stage.inReview","In review");case"done":return e("commandCenter.funnel.stage.done","Done");case"other":return e("commandCenter.funnel.stage.other","Other");default:return t}}}function KF(e){return Number.isFinite(e)?e.toFixed(2):"—"}function VF({range:e,projectId:t}){const{t:r}=se("app"),n=zF(),{data:a,isLoading:i,error:o}=Je("/command-center/activity",e,{projectId:t}),l=a?.funnel??null,c=f.useMemo(()=>(l?.stages??[]).map(u=>({label:n(u.stage),value:u.entered})),[l?.stages,n]),d=!l||l.stages.every(u=>u.entered===0);return s.jsxs(ft,{testId:"funnel",isLoading:i,error:o,isEmpty:d,emptyMessage:r("commandCenter.funnel.empty","No task transitions in the selected range."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.funnel.title","SDLC funnel")}),s.jsx(Ux,{stages:c,ariaLabel:r("commandCenter.funnel.ariaLabel","Tasks per workflow stage")})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.funnel.throughputTitle","Throughput")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card cc-stat-card--gauge","data-testid":"cc-funnel-completion-rate",children:[s.jsx(Ua,{value:l?.completionRate??null,label:r("commandCenter.funnel.completionRate","Completion rate"),ariaLabel:r("commandCenter.funnel.completionRateAria","Completion rate for in-range planning entrants")}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.funnel.completionRateHint","Done ÷ entered (in range)")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-funnel-throughput",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.funnel.throughputPerDay","Tasks done / day")}),s.jsx("div",{className:"cc-stat-value",children:KF(l?.throughputPerDay??0)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.funnel.rangeDays","{{count}} day range",{count:l?.rangeDays??0})})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-funnel-done",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.funnel.doneInRange","Reached done")}),s.jsx("div",{className:"cc-stat-value",children:U(l?.doneInRange??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-funnel-entered",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.funnel.enteredInRange","Entered planning")}),s.jsx("div",{className:"cc-stat-value",children:U(l?.enteredInRange??0)})]})]})]})]})}const UF=8;function qF(e){const{t}=se("app");return[{id:"overview",label:t("commandCenter.tabs.overview","Overview")},{id:"tokens",label:t("commandCenter.tabs.tokens","Tokens")},{id:"tools",label:t("commandCenter.tabs.tools","Tools")},{id:"activity",label:t("commandCenter.tabs.activity","Activity")},{id:"agent-activity",label:t("commandCenter.tabs.agentActivity","Agent Activity")},{id:"productivity",label:t("commandCenter.tabs.productivity","Productivity")},{id:"review-artifacts",label:t("commandCenter.tabs.reviewArtifacts","Review artifacts")},{id:"team",label:t("commandCenter.tabs.team","Team")},{id:"workflows",label:t("commandCenter.tabs.workflows","Workflows")},{id:"ecosystem",label:t("commandCenter.tabs.ecosystem","Ecosystem")},{id:"github",label:t("commandCenter.tabs.github","GitHub")},{id:"gitlab",label:t("commandCenter.tabs.gitlab","GitLab")},{id:"signals",label:t("commandCenter.tabs.signals","Signals")},{id:"system",label:t("commandCenter.tabs.system","System")},{id:"plugins",label:t("commandCenter.tabs.plugins","Plugins")},...e?[{id:"nodes",label:t("commandCenter.tabs.nodes","Nodes")}]:[],{id:"reliability",label:t("commandCenter.tabs.reliability","Reliability")},{id:"mission-control",label:t("commandCenter.tabs.missionControl","Mission Control")}]}const kh=15e3;function WF({range:e,projectId:t,colorTheme:r="default",themeMode:n="system",shadcnCustomColors:a={},resolvedThemeMode:i=n==="light"?"light":"dark",onColorThemeChange:o=()=>{},onThemeModeChange:l=()=>{},onShadcnCustomColorsChange:c=()=>{},onChangeView:d}){const{t:u}=se("app"),m=Je("/command-center/tokens?groupBy=model",e,{pollMs:kh,projectId:t}),h=Je("/command-center/tools",e,{projectId:t}),v=Je("/command-center/activity",e,{projectId:t}),p=Je("/command-center/signals",e,{projectId:t}),{snapshot:b,isLoading:y}=Wx(t),[g,j]=f.useState(null),[x,C]=f.useState([]),w=f.useRef(0),P=f.useCallback(()=>{const Q=w.current,le=()=>w.current!==Q;fr(mr("/command-center/verification-requests",t)).then(Oe=>{le()||C(Oe.requests)}).catch(()=>{le()||C([])})},[t]);f.useEffect(()=>(P(),()=>{w.current+=1}),[P]),vn(P,kh),f.useEffect(()=>{let Q=!1;return j(null),t?(s0(t).then(le=>{Q||j(le)},()=>{Q||j(null)}),()=>{Q=!0}):()=>{Q=!0}},[t]);const A=m.data?.totals?.totalTokens??0,S=h.data?.toolCalls??0,N=v.data?.activeNodes??0,E=v.data?.activeAgents??0,T=$2(b),O=v.data?.sessions??0,I=v.data?.agentRuns?.total??0,z=v.data?.funnel?.doneInRange??0,D=L2(b?.columns),V=m.data?.groups?.length??0,B=f.useMemo(()=>[...m.data?.groups??[]].sort((Q,le)=>le.totalTokens-Q.totalTokens||(Q.key??"").localeCompare(le.key??"")).slice(0,UF).map(Q=>({label:Q.key??u("commandCenter.tokens.unknownModel","(unknown)"),value:Q.totalTokens,valueLabel:U(Q.totalTokens),iconProvider:Ql(Q.key??"")})),[m.data?.groups,u]),W=f.useMemo(()=>[...h.data?.byCategory??[]].sort((Q,le)=>le.count-Q.count||Q.category.localeCompare(le.category)).map(Q=>({label:Q.category,value:Q.count,valueLabel:U(Q.count)})),[h.data?.byCategory]),K=f.useMemo(()=>B.map(Q=>({label:Q.label,value:Q.value})),[B]),te=f.useMemo(()=>(v.data?.daily??[]).map(Q=>Q.messages+Q.activeAgents+(Q.agentRuns??0)),[v.data?.daily]),G=f.useMemo(()=>[{label:u("commandCenter.activity.messages","Messages"),values:(v.data?.daily??[]).map(Q=>Q.messages)},{label:u("commandCenter.activity.activeAgents","Active agents"),values:(v.data?.daily??[]).map(Q=>Q.activeAgents)},{label:u("commandCenter.activity.agentRuns","Agent runs"),values:(v.data?.daily??[]).map(Q=>Q.agentRuns)}],[v.data?.daily,u]),M=te.length>0?te:[O,v.data?.messages??0,E,N,z],q=B.length>0||W.length>0||te.length>0,H=O>0||(v.data?.messages??0)>0||N>0||E>0||I>0||z>0,re=A>0||S>0||H,ye=!(m.data!==null&&h.data!==null&&v.data!==null)&&(m.isLoading||h.isLoading||v.isLoading),oe=m.error??h.error??v.error,He=m.data?Tr(m.data.cost?.usd??null,m.data.cost?.unavailable??!0):"—",J=h.data?h.data.fullyAutonomous?u("commandCenter.tools.ratioAutonomous","{{ratio}} calls/session (fully autonomous)",{ratio:h.data.autonomyRatio.toFixed(1)}):`${h.data.autonomyRatio.toFixed(1)}:1`:"—",Ce=[{id:"codebaseTokens",testId:"cc-overview-codebase-tokens",label:u("commandCenter.overview.codebaseTokens","Codebase tokens"),value:g?U(g.tokenEstimate):"—",subLabel:g?.truncated?u("commandCenter.overview.metricsPartial","Approx. (partial)"):g?u("commandCenter.overview.codebaseTokensHint","Local estimate calibrated to cl100k_base"):void 0},{id:"diskSize",testId:"cc-overview-disk-size",label:u("commandCenter.overview.diskSize","Disk size"),value:g?ct(g.diskBytes):"—",subLabel:g?.truncated?u("commandCenter.overview.metricsPartial","Approx. (partial)"):g?u("commandCenter.overview.diskSizeHint","Apparent local size"):void 0}],Re=Q=>s.jsx("div",{className:"cc-stat-grid",children:Q.map(le=>s.jsxs("div",{className:"card cc-stat-card","data-testid":le.testId??`command-center-stat-${le.id}`,children:[s.jsx("div",{className:"cc-stat-label",children:le.label}),s.jsx("div",{className:`cc-stat-value ${le.id==="tokens"?"cc-token-count-live":""}`,children:le.value},le.value),le.subLabel?s.jsx("span",{className:"cc-stat-sub",children:le.subLabel}):null]},le.id))}),L=[{id:"tokens",label:u("commandCenter.overview.tokensCost","Tokens & cost"),value:U(A),subLabel:He},{id:"autonomy",label:u("commandCenter.overview.autonomy","Autonomy ratio"),value:J},{id:"agentRuns",label:u("commandCenter.overview.agentRuns","Agent runs"),value:U(I)},{id:"tasksDone",label:u("commandCenter.overview.tasksDone","Tasks done"),value:U(z)},{id:"models",label:u("commandCenter.overview.uniqueModels","Unique models"),value:U(V)},{id:"signals",label:u("commandCenter.overview.openSignals","Open signals"),value:p.isLoading?"—":p.data?U(p.data.open??0):"—"}],Y=s.jsx(J2,{projectId:t,colorTheme:r,themeMode:n,shadcnCustomColors:a,resolvedThemeMode:i,onColorThemeChange:o,onThemeModeChange:l,onShadcnCustomColorsChange:c,onChangeView:d}),ne=s.jsx("div",{className:"cc-overview-throughput","data-testid":"command-center-throughput",children:s.jsx(VF,{range:e,projectId:t})}),Ne=x.length>0?s.jsxs("section",{className:"cc-verification-requests card","data-testid":"command-center-verification-requests",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:"Task verification"}),s.jsx("p",{children:"Latest executor-owned verification requests"})]}),x.map(Q=>s.jsxs("div",{className:"cc-verification-requests__item",children:[s.jsx("span",{className:"cc-verification-requests__task",children:Q.taskId}),s.jsx(o0,{request:Q,compact:!0})]},Q.requestId))]}):null;return ye?s.jsxs("div",{className:"cc-overview",children:[Y,Re(Ce),s.jsxs("div",{className:"cc-loading","data-testid":"command-center-overview-loading",children:[s.jsx("div",{className:"cc-chart-skeleton"}),s.jsx("p",{children:s.jsx(tc,{label:u("commandCenter.loading","Loading dashboard...")})})]}),Ne,ne]}):oe!==null&&!re?s.jsxs("div",{className:"cc-overview",children:[Y,Re(Ce),s.jsxs("div",{className:"cc-error","data-testid":"command-center-overview-error",role:"alert",children:[s.jsx(Mi,{size:24}),s.jsx("p",{children:oe})]}),Ne,ne]}):re?s.jsxs("div",{className:"cc-overview",children:[Y,Re([...Ce,...L]),s.jsxs("div",{className:"cc-live-strip","data-testid":"command-center-live-strip",children:[s.jsxs("div",{className:"cc-live-strip-heading",children:[s.jsx("span",{className:"status-dot status-dot--connecting","aria-hidden":"true"}),s.jsx("span",{className:"cc-live-strip-label",children:u("commandCenter.overview.liveStrip","Live activity snapshot")})]}),s.jsxs("div",{className:"cc-live-strip-metrics","data-testid":"command-center-live-snapshot",children:[s.jsxs("span",{className:"cc-live-metric","data-testid":"command-center-live-tasks-in-progress",children:[s.jsx("span",{className:"cc-live-metric-value",children:y?"—":U(D)}),s.jsx("span",{className:"cc-live-metric-label",children:u("commandCenter.overview.tasksInProgress","tasks in progress")})]}),s.jsxs("span",{className:"cc-live-metric","data-testid":"command-center-live-agents-working",children:[s.jsx("span",{className:"cc-live-metric-value",children:y?"—":U(T)}),s.jsx("span",{className:"cc-live-metric-label",children:u("commandCenter.overview.agentsWorking","agents working")})]}),s.jsxs("span",{className:"cc-live-metric","data-testid":"command-center-live-tokens",children:[s.jsx("span",{className:"cc-live-metric-value cc-token-count-live",children:U(A)},A),s.jsx("span",{className:"cc-live-metric-label",children:u("commandCenter.overview.liveTokens","tokens")})]}),s.jsxs("span",{className:"cc-live-metric","data-testid":"command-center-live-open-signals",children:[s.jsx("span",{className:"cc-live-metric-value",children:p.isLoading?"—":p.data?U(p.data.open??0):"—"}),s.jsx("span",{className:"cc-live-metric-label",children:u("commandCenter.overview.openSignals","open signals")})]})]}),s.jsxs("div",{className:"cc-live-trend","data-testid":"command-center-throughput-trend",children:[s.jsx("span",{className:"cc-live-trend-label",children:u("commandCenter.overview.throughputTrend","throughput trend")}),s.jsx(Ot,{values:M,ariaLabel:u("commandCenter.overview.throughputTrendAria","Recent activity throughput trend")})]})]}),Ne,q?s.jsxs("section",{className:"cc-overview-charts","data-testid":"command-center-overview-charts",children:[B.length>0?s.jsxs("div",{className:"card cc-overview-chart-card","data-testid":"command-center-overview-chart-tokens",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:u("commandCenter.overview.tokensByModel","Tokens by model")}),s.jsx("p",{children:u("commandCenter.overview.tokensByModelHint","Top model token consumers in this range")})]}),s.jsx(nt,{data:B,ariaLabel:u("commandCenter.overview.tokensByModel","Tokens by model")})]}):null,K.length>0?s.jsxs("div",{className:"card cc-overview-chart-card","data-testid":"cc-overview-pie",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:u("commandCenter.overview.tokensByModelPie","Token share by model")}),s.jsx("p",{children:u("commandCenter.overview.tokensByModelPieHint","Top model token share in this range")})]}),s.jsx(Mt,{data:K,ariaLabel:u("commandCenter.overview.tokensByModelPie","Token share by model")})]}):null,W.length>0?s.jsxs("div",{className:"card cc-overview-chart-card","data-testid":"command-center-overview-chart-tools",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:u("commandCenter.overview.toolCategories","Tool categories")}),s.jsx("p",{children:u("commandCenter.overview.toolCategoriesHint","Autonomous work grouped by tool family")})]}),s.jsx(nt,{data:W,ariaLabel:u("commandCenter.overview.toolCategories","Tool categories")})]}):null,te.length>0?s.jsxs("div",{className:"card cc-overview-chart-card cc-overview-chart-card--trend","data-testid":"cc-overview-line",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:u("commandCenter.overview.dailyActivityLine","Daily activity line")}),s.jsx("p",{children:u("commandCenter.overview.dailyActivityLineHint","Messages, agents, and runs by day")})]}),s.jsx(br,{series:G,ariaLabel:u("commandCenter.overview.dailyActivityLine","Daily activity line")})]}):null,te.length>0?s.jsxs("div",{className:"card cc-overview-chart-card cc-overview-chart-card--trend","data-testid":"command-center-overview-chart-activity",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:u("commandCenter.overview.dailyActivity","Daily activity trend")}),s.jsx("p",{children:u("commandCenter.overview.dailyActivityHint","Messages plus active agents per day")})]}),s.jsx(Ot,{values:te,ariaLabel:u("commandCenter.overview.dailyActivityAria","Daily activity trend")})]}):null]}):null,ne]}):s.jsxs("div",{className:"cc-overview",children:[Y,Re(Ce),s.jsxs("div",{className:"cc-empty","data-testid":"command-center-empty",children:[s.jsx(Ii,{size:28}),s.jsx("p",{children:u("commandCenter.empty","No usage data yet. Run some agents to populate the Dashboard.")})]}),Ne,ne]})}function HF({tabId:e}){const{t}=se("app");return s.jsxs("div",{className:"cc-empty","data-testid":`command-center-placeholder-${e}`,children:[s.jsx(Ii,{size:28}),s.jsx("p",{children:t("commandCenter.areaPending","This area renders once metrics data is available.")})]})}function DB({projectId:e,colorTheme:t="default",themeMode:r="system",shadcnCustomColors:n={},resolvedThemeMode:a=r==="light"?"light":"dark",onColorThemeChange:i=()=>{},onThemeModeChange:o=()=>{},onShadcnCustomColorsChange:l=()=>{},addToast:c=()=>{},nodesEnabled:d=!1,onChangeView:u,onOpenAgent:m,onOpenTask:h}={}){const{t:v}=se("app"),p=qF(d),[b,y]=f.useState(()=>Os(e)?.activeTab??"overview"),[g,j]=f.useState(()=>Os(e)?.range??ll(ol((S,N)=>N)[1])),x=f.useRef(e);f.useEffect(()=>{if(x.current===e)return;x.current=e;const S=Os(e);y(S?.activeTab??"overview"),j(S?.range??ll(ol((N,E)=>E)[1]))},[e]),f.useEffect(()=>{x.current===e&&i0({activeTab:b,range:g},e)},[b,e,g]),f.useEffect(()=>{p.some(S=>S.id===b)||y("overview")},[b,p]);const C=f.useRef([]),w=f.useCallback(S=>{const N=(S+p.length)%p.length;y(p[N].id),C.current[N]?.focus()},[p]),P=f.useCallback((S,N)=>{switch(S.key){case"ArrowRight":case"ArrowDown":S.preventDefault(),w(N+1);break;case"ArrowLeft":case"ArrowUp":S.preventDefault(),w(N-1);break;case"Home":S.preventDefault(),w(0);break;case"End":S.preventDefault(),w(p.length-1);break;case"Enter":case" ":S.preventDefault(),y(p[N].id);break}},[w,p]);function A(){switch(b){case"overview":return s.jsx(WF,{range:g,projectId:e,colorTheme:t,themeMode:r,shadcnCustomColors:n,resolvedThemeMode:a,onColorThemeChange:i,onThemeModeChange:o,onShadcnCustomColorsChange:l,onChangeView:u});case"tokens":return s.jsx(m$,{range:g,projectId:e});case"tools":return s.jsx(v$,{range:g,projectId:e});case"activity":return s.jsx(P$,{range:g,projectId:e});case"agent-activity":return s.jsx(H$,{projectId:e,range:g,onOpenAgent:m,onOpenTask:h});case"productivity":return s.jsx(X$,{range:g,projectId:e});case"review-artifacts":return s.jsx(Y$,{projectId:e,addToast:c});case"team":return s.jsx(s2,{range:g,projectId:e,addToast:c});case"workflows":return s.jsx(l2,{range:g,projectId:e});case"ecosystem":return s.jsx(c2,{range:g,projectId:e});case"github":return s.jsx(f2,{range:g,projectId:e});case"gitlab":return s.jsx(v2,{range:g,projectId:e});case"signals":return s.jsx(h2,{range:g,projectId:e});case"system":return s.jsxs("div",{className:"cc-system-tab","data-testid":"cc-system-tab",children:[s.jsx(I2,{projectId:e,addToast:c}),s.jsx(P2,{})]});case"plugins":return s.jsx(nw,{addToast:c??(()=>{}),projectId:e});case"nodes":return s.jsx(BF,{addToast:c});case"reliability":return s.jsx(Q2,{projectId:e});case"mission-control":return s.jsx(W2,{projectId:e});default:return s.jsx(HF,{tabId:b})}}return s.jsxs("section",{className:"command-center","data-testid":"command-center",children:[s.jsxs("header",{className:"cc-header",children:[s.jsxs("h2",{className:"cc-title",children:[s.jsx(Ii,{size:20}),v("commandCenter.heading","Dashboard")]}),s.jsx(nC,{value:g,onChange:j})]}),s.jsx("div",{className:"cc-tablist",role:"tablist","aria-label":v("commandCenter.tablistLabel","Dashboard sections"),children:p.map((S,N)=>{const E=S.id===b;return s.jsx("button",{ref:T=>{C.current[N]=T},role:"tab",id:`cc-tab-${S.id}`,"aria-selected":E,"aria-controls":`cc-tabpanel-${S.id}`,tabIndex:E?0:-1,className:`cc-tab${E?" active":""}`,onClick:()=>y(S.id),onKeyDown:T=>P(T,N),"data-testid":`command-center-tab-${S.id}`,children:S.label},S.id)})}),s.jsx("div",{role:"tabpanel",id:`cc-tabpanel-${b}`,"aria-labelledby":`cc-tab-${b}`,tabIndex:0,className:"cc-tabpanel","data-testid":`command-center-panel-${b}`,children:A()})]})}export{DB as CommandCenter};
|
|
102
|
+
`)}function EF({isOpen:e,onClose:t,onResolve:r,conflicts:n,localNodeName:a,remoteNodeName:i,addToast:o}){const{t:l}=se("app"),[c,d]=f.useState({}),[u,m]=f.useState(!1);f.useEffect(()=>{const g={};for(const j of n)c[j.key]||(g[j.key]={resolution:"local"});Object.keys(g).length>0&&d(j=>({...j,...g}))},[n,c]),f.useEffect(()=>{if(!e)return;const g=j=>{j.key==="Escape"&&(j.preventDefault(),t())};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[e,t]);const h=f.useCallback((g,j)=>{d(x=>{const C=x[g]??{};return j==="manual"?{...x,[g]:{resolution:"manual",manualValue:C.manualValue??JSON.stringify(n.find(w=>w.key===g)?.localValue??null,null,2)}}:{...x,[g]:{resolution:j}}})},[n]),v=f.useCallback((g,j)=>{d(x=>({...x,[g]:{...x[g],resolution:"manual",manualValue:j}}))},[]),p=f.useCallback(g=>{const j={};for(const x of n)j[x.key]={resolution:g};d(j)},[n]),b=f.useCallback(async()=>{m(!0);try{const g=n.map(j=>{const x=c[j.key]??{resolution:"local"};let C;switch(x.resolution){case"remote":C=j.remoteValue;break;case"manual":try{C=JSON.parse(x.manualValue??"null")}catch{C=x.manualValue??null}break;case"local":default:C=j.localValue;break}return{key:j.key,value:C}});await r(g),o(l("settings.resolvedSuccess","Settings conflicts resolved successfully"),"success"),t()}catch(g){const j=g instanceof Error?g.message:l("settings.resolveFailed","Failed to resolve conflicts");o(j,"error")}finally{m(!1)}},[o,n,t,r,c]),y=f.useMemo(()=>{const g={};for(const j of n)g[j.key]=OF(j.localValue,j.remoteValue);return g},[n]);return!e||n.length===0?null:s.jsx("div",{className:"modal-overlay open",onClick:t,children:s.jsxs("div",{className:"modal modal-lg settings-sync-conflict-modal",onClick:g=>g.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":l("settings.conflictModalTitle","Resolve Settings Conflicts"),children:[s.jsxs("div",{className:"modal-header",children:[s.jsx("h3",{children:l("settings.conflictModalTitle","Resolve Settings Conflicts")}),s.jsx("button",{className:"modal-close",onClick:t,"aria-label":l("settings.closeModal","Close conflict modal"),children:"×"})]}),s.jsxs("div",{className:"modal-body",children:[s.jsx("div",{className:"settings-sync-conflict-modal__conflict-list",children:n.map(g=>{const j=c[g.key]??{resolution:"local"},x=y[g.key];return s.jsxs("div",{className:"settings-sync-conflict-modal__conflict-item",children:[s.jsx("div",{className:"settings-sync-conflict-modal__key",children:g.key}),s.jsxs("div",{className:"settings-sync-conflict-modal__diff-panel",children:[s.jsxs("div",{className:"settings-sync-conflict-modal__diff-side",children:[s.jsx("div",{className:"settings-sync-conflict-modal__diff-label",children:a}),s.jsx("div",{className:"settings-sync-conflict-modal__diff-content",children:s.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap"},children:x})})]}),s.jsxs("div",{className:"settings-sync-conflict-modal__diff-side",children:[s.jsx("div",{className:"settings-sync-conflict-modal__diff-label",children:i}),s.jsx("div",{className:"settings-sync-conflict-modal__diff-content",children:s.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap"},children:x})})]})]}),s.jsxs("div",{className:"settings-sync-conflict-modal__resolution",children:[s.jsxs("label",{children:[s.jsx("input",{type:"radio",name:`resolution-${g.key}`,checked:j.resolution==="local",onChange:()=>h(g.key,"local")}),l("settings.keepLocal","Keep Local")]}),s.jsxs("label",{children:[s.jsx("input",{type:"radio",name:`resolution-${g.key}`,checked:j.resolution==="remote",onChange:()=>h(g.key,"remote")}),l("settings.keepRemote","Keep Remote")]}),s.jsxs("label",{children:[s.jsx("input",{type:"radio",name:`resolution-${g.key}`,checked:j.resolution==="manual",onChange:()=>h(g.key,"manual")}),l("settings.mergeManually","Merge Manually")]})]}),j.resolution==="manual"&&s.jsx("textarea",{className:"settings-sync-conflict-modal__manual-input",value:j.manualValue??"",onChange:C=>v(g.key,C.target.value),placeholder:l("settings.jsonPlaceholder","Enter JSON value...")})]},g.key)})}),s.jsxs("div",{className:"settings-sync-conflict-modal__bulk-actions",children:[s.jsx("button",{className:"btn btn-sm",onClick:()=>p("local"),type:"button",children:l("settings.resolveAllLocal","Resolve All: Keep Local")}),s.jsx("button",{className:"btn btn-sm",onClick:()=>p("remote"),type:"button",children:l("settings.resolveAllRemote","Resolve All: Keep Remote")})]})]}),s.jsxs("div",{className:"modal-actions settings-sync-conflict-modal__footer",children:[s.jsx("button",{className:"btn btn-sm",onClick:t,children:l("actions.cancel","Cancel")}),s.jsx("button",{className:"btn btn-primary btn-sm",onClick:b,disabled:u,children:u?l("settings.resolving","Resolving..."):l("actions.confirm","Confirm")})]})]})})}const Ra={readWrite:"rw",readOnly:"ro",volume:"volume",bind:"bind"},Yx=/(KEY|TOKEN|SECRET|PASSWORD)/i;function Qo(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?"—":t.toLocaleString()}function _F(e){if(!e)return"—";const t=new Date(e),r=Date.now();if(Number.isNaN(t.getTime())||t.getTime()>r)return"—";const n=Math.floor((r-t.getTime())/1e3);if(n<60)return`${n}s`;const a=Math.floor(n/60);if(a<60)return`${a}m`;const i=Math.floor(a/60);return i<24?`${i}h ${a%60}m`:`${Math.floor(i/24)}d ${i%24}h`}function TF(e){switch(e){case"synced":return"node-detail-modal__sync-dot--synced";case"diff":return"node-detail-modal__sync-dot--diff";case"error":return"node-detail-modal__sync-dot--error";case"pending":return"node-detail-modal__sync-dot--pending";case"never-synced":default:return"node-detail-modal__sync-dot--never"}}function MF(e){return e==="running"?"success":e==="creating"||e==="recreating"||e==="restarting"?"warning":"error"}function IF(e){return e?`${e.charAt(0).toUpperCase()}${e.slice(1)}`:"Unknown"}function DF(e){if(!e)return"—";try{const t=new URL(e);return t.port?t.port:t.protocol==="https:"?"443":t.protocol==="http:"?"80":"—"}catch{return"—"}}function RF(e,t){return Yx.test(e)?"••••••••":t}function LF({isOpen:e,onClose:t,node:r,projects:n,onUpdate:a,onHealthCheck:i,addToast:o,syncStatus:l,onPushSettings:c,onPullSettings:d,onSyncAuth:u,syncHistory:m=[],onResolveConflicts:h,managedDockerNode:v,containerStatus:p,onFetchContainerStatus:b,onFetchLogs:y,onUpdateDockerConfig:g,onFetchDockerConfigDiff:j}){const{t:x}=se("app"),C=f.useRef(!0),[w,P]=f.useState(!1),[A,S]=f.useState(""),[N,E]=f.useState(""),[T,O]=f.useState(""),[I,z]=f.useState(2),[D,V]=f.useState(!1),[B,W]=f.useState(!1),[K,te]=f.useState(!1),[G,M]=f.useState(!1),[q,H]=f.useState(null),[re,ae]=f.useState(!1),[ye]=f.useState([]),[oe,He]=f.useState(p),[J,Ce]=f.useState(!1),[Re,L]=f.useState(!1),[Y,ne]=f.useState(""),[Ne,Q]=f.useState(!1),[le,Oe]=f.useState(!1),[k,$]=f.useState(r?.dockerConfig??null),[de,Le]=f.useState({}),[Nt,pa]=f.useState(!1),[ks,R]=f.useState(!1);f.useEffect(()=>(C.current=!0,()=>{C.current=!1}),[]),f.useEffect(()=>{He(p)},[p]),f.useEffect(()=>{if(!r||!e){P(!1),L(!1),ne("");return}S(r.name),E(r.url??""),O(r.apiKey??""),z(r.maxConcurrent),P(!1),$(r.dockerConfig??null),Oe(!1),Le({})},[e,r]),f.useEffect(()=>{if(!e)return;const F=ie=>{ie.key==="Escape"&&(ie.preventDefault(),t())};return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[e,t]);const ce=f.useMemo(()=>r?Yj(n,r):[],[r,n]),Pe=f.useMemo(()=>v?v.hostConfig.type==="remote"?v.hostConfig.host??"—":x("nodes.localDocker","Local Docker"):"—",[v,x]),Ge=f.useMemo(()=>!v?.resourceSizing?.cpuLimit&&!v?.resourceSizing?.memoryLimit?x("nodes.dockerResourceDefault","Default"):`${v.resourceSizing?.cpuLimit??x("nodes.dockerDefaultCpu","Default CPU")} / ${v.resourceSizing?.memoryLimit??x("nodes.dockerDefaultMemory","Default memory")}`,[v,x]),Kr=f.useCallback(async()=>{if(r)try{if(await i(r.id),!C.current)return;o(x("nodes.healthCheckSuccess","Health check completed for {{name}}",{name:r.name}),"success")}catch(F){if(!C.current)return;const ie=F instanceof Error?F.message:x("nodes.healthCheckFailed","Health check failed");o(ie,"error")}},[o,r,i]),ya=f.useCallback(async()=>{if(!(!r||!c)){H(null),W(!0);try{if(await c(r.id),!C.current)return;o(x("nodes.pushSettingsSuccess","Settings pushed successfully"),"success")}catch(F){if(!C.current)return;const ie=F instanceof Error?F.message:x("nodes.pushSettingsFailed","Push settings failed");H(ie),o(ie,"error")}finally{C.current&&W(!1)}}},[o,r,c]),Cn=f.useCallback(async()=>{if(!(!r||!d)){H(null),te(!0);try{if(await d(r.id),!C.current)return;o(x("nodes.pullSettingsSuccess","Settings pulled successfully"),"success")}catch(F){if(!C.current)return;const ie=F instanceof Error?F.message:x("nodes.pullSettingsFailed","Pull settings failed");H(ie),o(ie,"error")}finally{C.current&&te(!1)}}},[o,r,d]),Ss=f.useCallback(async()=>{if(!(!r||!u)){H(null),M(!0);try{if(await u(r.id),!C.current)return;o(x("nodes.syncAuthSuccess","Auth credentials synced successfully"),"success")}catch(F){if(!C.current)return;const ie=F instanceof Error?F.message:x("nodes.syncAuthFailed","Auth sync failed");H(ie),o(ie,"error")}finally{C.current&&M(!1)}}},[o,r,u]),Zx=f.useCallback(()=>{H(null)},[]),Jx=f.useCallback(async()=>{if(!(!v||!b)){Ce(!0);try{const F=await b(v.id);if(!C.current)return;He(F)}catch(F){const ie=F instanceof Error?F.message:x("nodes.fetchContainerStatusFailed","Failed to fetch container status");o(ie,"error")}finally{C.current&&Ce(!1)}}},[o,v,b]),Qx=f.useCallback(async()=>{if(!(!v||!y)){L(!0),Q(!0);try{const F=await y(v.id);if(!C.current)return;ne(F)}catch(F){if(!C.current)return;ne("");const ie=F instanceof Error?F.message:x("nodes.fetchContainerLogsFailed","Failed to fetch container logs");o(ie,"error")}finally{C.current&&Q(!1)}}},[o,v,y]),ej=f.useCallback(async()=>{if(!r||D)return;const F=A.trim();if(!F){o(x("nodes.nameRequired","Name is required"),"error");return}if(r.type==="remote"&&!N.trim()){o(x("nodes.urlRequired","URL is required for remote nodes"),"error");return}if(!Number.isFinite(I)||I<1){o(x("nodes.concurrencyMin","Concurrency must be at least 1"),"error");return}V(!0);try{await a(r.id,{name:F,url:r.type==="remote"&&N.trim()||void 0,apiKey:r.type==="remote"&&T||void 0,maxConcurrent:I}),o(x("nodes.updateSuccess","Updated {{name}}",{name:F}),"success"),P(!1)}catch(ie){const it=ie instanceof Error?ie.message:x("nodes.updateFailed","Failed to update node");o(it,"error")}finally{V(!1)}},[o,T,D,I,A,r,a,N]);f.useEffect(()=>{!r?.dockerConfig||!j||!e||j(r.id).then(F=>{C.current&&R(F.needsRecreate)}).catch(()=>{C.current&&R(!1)})},[e,r,j]);const tj=f.useCallback(async()=>{if(!(!r||!k||!g||Nt)){pa(!0);try{const F=await g(r.id,{image:k.image,volumeMounts:k.volumeMounts,environment:k.environment,resources:k.resources,host:k.host,extraClis:k.extraClis,persistence:k.persistence,containerName:k.containerName});if(!C.current)return;$(F),o(x("nodes.dockerConfigSaveSuccess","Docker config saved"),"success")}catch(F){if(!C.current)return;const ie=F instanceof Error?F.message:x("nodes.dockerConfigSaveFailed","Failed to save Docker config");o(ie,"error")}finally{C.current&&pa(!1)}}},[o,k,Nt,r,g]),rj=f.useCallback(()=>{r&&(S(r.name),E(r.url??""),O(r.apiKey??""),z(r.maxConcurrent),P(!1))},[r]);if(!e||!r)return null;const sr=oe?.status??v?.status,nj=MF(sr);return s.jsxs(ic,{windowKey:"node-detail",title:x("nodes.modalTitle","Node Details"),ariaLabel:x("nodes.modalAriaLabel","Node details for {{name}}",{name:r.name}),onClose:t,hideHeader:!0,dragHandleSelector:".modal-header",className:"floating-window--node-detail",defaultSize:{width:720,height:560},minSize:{width:360,height:280},persistGeometryKey:"floating-window:node-detail",suspendGeometryPersistenceOnMobile:!0,suspendGeometryPersistenceOnShortViewport:!0,closeOnOutsidePointerDown:!0,children:[s.jsxs("div",{className:"modal modal-lg node-detail-modal",children:[s.jsxs("div",{className:"modal-header",children:[s.jsx("h3",{children:x("nodes.modalTitle","Node Details")}),s.jsx("button",{className:"modal-close",onClick:t,"aria-label":x("nodes.closeModalAriaLabel","Close node detail modal"),children:"×"})]}),s.jsxs("div",{className:"modal-body node-detail-modal__body",children:[s.jsxs("section",{className:"node-detail-modal__section",children:[s.jsxs("div",{className:"node-detail-modal__section-header",children:[s.jsx("h4",{children:x("nodes.sectionOverview","Overview")}),!w&&s.jsxs("button",{className:"btn btn-sm",onClick:()=>P(!0),children:[s.jsx(Zj,{size:14}),x("nodes.editButton","Edit")]})]}),s.jsxs("div",{className:"node-detail-modal__grid",children:[s.jsxs("label",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldName","Name")}),w?s.jsx("input",{className:"input",value:A,onChange:F=>S(F.target.value),disabled:D}):s.jsx("strong",{children:r.name})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldType","Type")}),s.jsx("strong",{children:r.type==="local"?x("nodes.typeLocal","Local"):x("nodes.typeRemote","Remote")})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldStatus","Status")}),s.jsx("strong",{children:r.status})]}),s.jsxs("label",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldMaxConcurrent","Max Concurrent")}),w?s.jsx("input",{className:"input",type:"number",min:1,max:10,value:I,onChange:F=>z(Number(F.target.value)),disabled:D}):s.jsx("strong",{children:r.maxConcurrent})]}),r.type==="remote"&&s.jsxs(s.Fragment,{children:[s.jsxs("label",{className:"node-detail-modal__field node-detail-modal__field--full",children:[s.jsx("span",{children:x("nodes.fieldUrl","URL")}),w?s.jsx("input",{className:"input",value:N,onChange:F=>E(F.target.value),disabled:D}):s.jsx("strong",{children:r.url??"—"})]}),s.jsxs("label",{className:"node-detail-modal__field node-detail-modal__field--full",children:[s.jsx("span",{children:x("nodes.fieldApiKey","API Key")}),w?s.jsx("input",{className:"input",type:"password",value:T,onChange:F=>O(F.target.value),placeholder:x("nodes.apiKeyPlaceholder","Leave blank to keep unchanged"),disabled:D}):s.jsx("strong",{children:r.apiKey?"••••••••":x("nodes.apiKeyNotConfigured","Not configured")})]})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldCreated","Created")}),s.jsx("strong",{children:Qo(r.createdAt)})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.fieldUpdated","Updated")}),s.jsx("strong",{children:Qo(r.updatedAt)})]})]}),w&&s.jsxs("div",{className:"node-detail-modal__edit-actions",children:[s.jsxs("button",{className:"btn btn-primary btn-sm",onClick:ej,disabled:D,children:[s.jsx(Uu,{size:14}),D?x("nodes.saving","Saving..."):x("nodes.saveButton","Save")]}),s.jsxs("button",{className:"btn btn-sm",onClick:rj,disabled:D,children:[s.jsx($a,{size:14}),x("nodes.cancelButton","Cancel")]})]})]}),s.jsxs("section",{className:"node-detail-modal__section",children:[s.jsxs("h4",{children:[r.type==="local"?x("nodes.sectionProjects","Projects"):x("nodes.sectionAssignedProjects","Assigned Projects")," (",ce.length,")"]}),ce.length===0?s.jsx("p",{className:"node-detail-modal__empty",children:r.type==="local"?x("nodes.noProjectsRunning","No projects are running on this node."):x("nodes.noProjectsAssigned","No projects are assigned to this node.")}):s.jsx("ul",{className:"node-detail-modal__project-list",children:ce.map(F=>s.jsxs("li",{className:"node-detail-modal__project-item",children:[s.jsx("span",{children:F.name}),s.jsx("code",{children:F.id})]},F.id))})]}),s.jsxs("section",{className:"node-detail-modal__section",children:[s.jsx("h4",{children:x("nodes.sectionHealth","Health")}),s.jsxs("div",{className:"node-detail-modal__health-row",children:[s.jsxs("span",{children:[x("nodes.healthStatus","Status:")," ",s.jsx("strong",{children:r.status})]}),s.jsxs("span",{children:[x("nodes.healthLastCheck","Last check:")," ",s.jsx("strong",{children:Qo(r.updatedAt)})]})]})]}),k&&s.jsxs("section",{className:"node-detail-modal__section node-detail-modal__docker-config",children:[s.jsxs("button",{className:"btn btn-sm node-detail-modal__docker-toggle",onClick:()=>Oe(F=>!F),"aria-expanded":le,children:[s.jsx(sc,{size:14,className:le?"node-detail-modal__docker-toggle-icon--expanded":""}),x("nodes.dockerConfiguration","Docker Configuration")]}),le&&s.jsxs("div",{className:"node-detail-modal__docker-config-content",children:[s.jsx("div",{className:"node-detail-modal__grid",children:s.jsxs("label",{className:"node-detail-modal__field node-detail-modal__field--full",children:[s.jsx("span",{children:x("nodes.dockerFieldImage","Image")}),s.jsx("input",{className:"input",value:k.image,onChange:F=>$({...k,image:F.target.value})})]})}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerVolumeMounts","Volume Mounts")}),s.jsxs("div",{className:"node-detail-modal__docker-list",children:[k.volumeMounts.map((F,ie)=>s.jsxs("div",{className:"node-detail-modal__docker-row",children:[s.jsx("input",{className:"input",value:F.hostPath,placeholder:x("nodes.dockerHostPath","Host path"),onChange:it=>{const fe=[...k.volumeMounts];fe[ie]={...fe[ie],hostPath:it.target.value},$({...k,volumeMounts:fe})}}),s.jsx("input",{className:"input",value:F.containerPath,placeholder:x("nodes.dockerContainerPath","Container path"),onChange:it=>{const fe=[...k.volumeMounts];fe[ie]={...fe[ie],containerPath:it.target.value},$({...k,volumeMounts:fe})}}),s.jsxs("select",{className:"input",value:F.mode??"rw",onChange:it=>{const fe=[...k.volumeMounts];fe[ie]={...fe[ie],mode:it.target.value},$({...k,volumeMounts:fe})},children:[s.jsx("option",{value:"rw",children:Ra.readWrite}),s.jsx("option",{value:"ro",children:Ra.readOnly})]}),s.jsxs("select",{className:"input",value:F.type??"volume",onChange:it=>{const fe=[...k.volumeMounts];fe[ie]={...fe[ie],type:it.target.value},$({...k,volumeMounts:fe})},children:[s.jsx("option",{value:"volume",children:Ra.volume}),s.jsx("option",{value:"bind",children:Ra.bind})]}),s.jsx("button",{className:"btn btn-sm",onClick:()=>$({...k,volumeMounts:k.volumeMounts.filter((it,fe)=>fe!==ie)}),children:x("nodes.removeButton","Remove")})]},`${F.hostPath}-${F.containerPath}-${ie}`)),s.jsx("button",{className:"btn btn-sm",onClick:()=>$({...k,volumeMounts:[...k.volumeMounts,{hostPath:"",containerPath:"",mode:"rw",type:"volume"}]}),children:x("nodes.addMountButton","Add Mount")})]})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerEnvVars","Environment Variables")}),s.jsxs("div",{className:"node-detail-modal__docker-list",children:[Object.entries(k.environment).map(([F,ie])=>{const it=Yx.test(F)&&!de[F];return s.jsxs("div",{className:"node-detail-modal__docker-row",children:[s.jsx("input",{className:"input",value:F,onChange:fe=>{const Ns={...k.environment};delete Ns[F],Ns[fe.target.value]=ie,$({...k,environment:Ns})}}),s.jsx("input",{className:"input",value:it?"***":String(ie),onChange:fe=>$({...k,environment:{...k.environment,[F]:fe.target.value}})}),s.jsx("button",{className:"btn btn-sm",onClick:()=>Le(fe=>({...fe,[F]:!fe[F]})),children:de[F]?s.jsx(Jj,{size:14}):s.jsx(Qj,{size:14})}),s.jsx("button",{className:"btn btn-sm",onClick:()=>{const fe={...k.environment};delete fe[F],$({...k,environment:fe})},children:x("nodes.removeButton","Remove")})]},F)}),s.jsx("button",{className:"btn btn-sm",onClick:()=>{const F=`NEW_VAR_${Object.keys(k.environment).length+1}`;$({...k,environment:{...k.environment,[F]:""}})},children:x("nodes.addVariableButton","Add Variable")})]})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerResources","Resources")}),s.jsxs("div",{className:"node-detail-modal__docker-stack",children:[s.jsx("input",{className:"input",type:"number",placeholder:x("nodes.dockerMemoryBytes","Memory bytes (2 GB = 2147483648)"),value:k.resources?.memoryBytes??"",onChange:F=>$({...k,resources:{...k.resources,memoryBytes:F.target.value?Number(F.target.value):void 0}})}),s.jsx("input",{className:"input",type:"number",placeholder:x("nodes.dockerCpuCount","CPU count"),value:k.resources?.cpuCount??"",onChange:F=>$({...k,resources:{...k.resources,cpuCount:F.target.value?Number(F.target.value):void 0}})}),s.jsx("input",{className:"input",type:"number",placeholder:x("nodes.dockerPidsLimit","PIDs limit"),value:k.resources?.pidsLimit??"",onChange:F=>$({...k,resources:{...k.resources,pidsLimit:F.target.value?Number(F.target.value):void 0}})})]})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerHostConfig","Host Config")}),s.jsxs("div",{className:"node-detail-modal__docker-stack",children:[s.jsx("input",{className:"input",placeholder:x("nodes.dockerContextName","Context name"),value:k.host?.contextName??"",onChange:F=>$({...k,host:{...k.host,contextName:F.target.value}})}),s.jsx("input",{className:"input",placeholder:x("nodes.dockerHostUrl","Docker host URL"),value:k.host?.dockerHost??"",onChange:F=>$({...k,host:{...k.host,dockerHost:F.target.value}})}),s.jsx("input",{className:"input",placeholder:x("nodes.dockerTlsCaCert","TLS CA cert path"),value:k.host?.tlsCaCert??"",onChange:F=>$({...k,host:{...k.host,tlsCaCert:F.target.value}})}),s.jsx("input",{className:"input",placeholder:x("nodes.dockerTlsCert","TLS cert path"),value:k.host?.tlsCert??"",onChange:F=>$({...k,host:{...k.host,tlsCert:F.target.value}})}),s.jsx("input",{className:"input",placeholder:x("nodes.dockerTlsKey","TLS key path"),value:k.host?.tlsKey??"",onChange:F=>$({...k,host:{...k.host,tlsKey:F.target.value}})}),s.jsxs("label",{className:"node-detail-modal__checkbox",children:[s.jsx("input",{type:"checkbox",checked:k.host?.tlsVerify??!0,onChange:F=>$({...k,host:{...k.host,tlsVerify:F.target.checked}})}),x("nodes.dockerTlsVerify","TLS verify")]})]})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerExtraClis","Extra CLIs")}),s.jsxs("div",{className:"node-detail-modal__docker-list",children:[(k.extraClis??[]).map((F,ie)=>s.jsxs("div",{className:"node-detail-modal__docker-row",children:[s.jsx("input",{className:"input",value:F,onChange:it=>{const fe=[...k.extraClis??[]];fe[ie]=it.target.value,$({...k,extraClis:fe})}}),s.jsx("button",{className:"btn btn-sm",onClick:()=>$({...k,extraClis:(k.extraClis??[]).filter((it,fe)=>fe!==ie)}),children:x("nodes.removeButton","Remove")})]},`${F}-${ie}`)),s.jsx("button",{className:"btn btn-sm",onClick:()=>$({...k,extraClis:[...k.extraClis??[],""]}),children:x("nodes.addCliButton","Add CLI")})]})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerPersistence","Persistence")}),s.jsxs("div",{className:"node-detail-modal__docker-stack",children:[s.jsx("input",{className:"input",placeholder:x("nodes.dockerVolumeName","Volume name"),value:k.persistence?.volumeName??"",onChange:F=>$({...k,persistence:{...k.persistence,volumeName:F.target.value}})}),s.jsxs("label",{className:"node-detail-modal__checkbox",children:[s.jsx("input",{type:"checkbox",checked:k.persistence?.retainOnDelete??!1,onChange:F=>$({...k,persistence:{...k.persistence,retainOnDelete:F.target.checked}})}),x("nodes.dockerRetainOnDelete","Retain on delete")]})]})]}),s.jsxs("div",{className:"node-detail-modal__docker-meta",children:[s.jsx("span",{children:x("nodes.dockerConfigMeta","Config v{{version}} • Updated {{updated}}",{version:k.configVersion,updated:Xl(k.lastUpdated??r.updatedAt)})}),ks&&s.jsx("span",{className:"node-detail-modal__docker-recreate",children:x("nodes.dockerNeedsRecreate","Needs Recreate")})]}),s.jsxs("button",{className:"btn btn-primary btn-sm",onClick:()=>void tj(),disabled:Nt,children:[s.jsx(Uu,{size:14}),Nt?x("nodes.saving","Saving..."):x("nodes.saveDockerConfig","Save Docker Config")]})]})]}),v&&s.jsxs("section",{className:"node-detail-modal__section docker-management",children:[s.jsx("h4",{children:x("nodes.sectionDockerManagement","Docker Management")}),s.jsxs("div",{className:"docker-management__status-card",children:[s.jsxs("div",{className:"docker-management__status-row",children:[s.jsx("span",{className:`docker-management__status-dot docker-management__status-dot--${nj}`,"aria-hidden":!0}),s.jsx("strong",{children:sr?IF(sr):x("nodes.dockerStatusUnknown","Unknown")}),(sr==="creating"||sr==="recreating"||sr==="restarting")&&s.jsx(qu,{size:14,className:"spin","aria-hidden":!0})]}),s.jsxs("div",{className:"docker-management__status-meta",children:[sr==="running"&&s.jsxs("span",{children:[x("nodes.dockerUptime","Uptime:")," ",_F(oe?.startedAt)]}),sr!=="running"&&oe?.exitCode!==void 0&&s.jsxs("span",{children:[x("nodes.dockerExitCode","Exit code:")," ",oe.exitCode]}),(oe?.error||v.errorMessage)&&s.jsx("span",{children:oe?.error??v.errorMessage})]}),s.jsx("button",{className:"btn btn-sm",onClick:()=>void Jx(),disabled:!b||J,children:J?x("nodes.refreshing","Refreshing..."):x("nodes.refreshStatus","Refresh Status")})]}),s.jsxs("div",{className:"node-detail-modal__grid docker-management__info-grid",children:[s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerFieldImage","Image")}),s.jsx("strong",{children:s.jsxs("code",{children:[v.imageName,":",v.imageTag]})})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerContainerId","Container ID")}),s.jsx("strong",{children:s.jsx("code",{children:v.containerId?v.containerId.slice(0,12):"—"})})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerHostLabel","Host")}),s.jsx("strong",{children:Pe})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerPersistentStorage","Persistent Storage")}),s.jsx("strong",{children:v.persistentStorage?x("nodes.yes","Yes"):x("nodes.no","No")})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerPort","Port")}),s.jsx("strong",{children:DF(v.reachableUrl)})]}),s.jsxs("div",{className:"node-detail-modal__field",children:[s.jsx("span",{children:x("nodes.dockerResourceSizing","Resource Sizing")}),s.jsx("strong",{children:Ge})]})]}),s.jsxs("div",{className:"docker-management__actions",children:[s.jsxs("button",{className:"btn btn-sm",disabled:!0,title:x("nodes.availableSoon","Available after FN-3113"),children:[s.jsx(Di,{size:14}),x("nodes.startButton","Start")]}),s.jsxs("button",{className:"btn btn-sm",disabled:!0,title:x("nodes.availableSoon","Available after FN-3113"),children:[s.jsx(Lh,{size:14}),x("nodes.stopButton","Stop")]}),s.jsxs("button",{className:"btn btn-sm",disabled:!0,title:x("nodes.availableSoon","Available after FN-3113"),children:[s.jsx(qu,{size:14}),x("nodes.restartButton","Restart")]}),s.jsxs("button",{className:"btn btn-sm",onClick:()=>void Qx(),disabled:!y,children:[s.jsx(e0,{size:14}),x("nodes.viewLogsButton","View Logs")]})]}),Re&&s.jsxs("div",{className:"docker-management__log-viewer",children:[s.jsxs("div",{className:"docker-management__log-viewer-header",children:[s.jsx("strong",{children:x("nodes.containerLogs","Container Logs")}),s.jsx("button",{className:"btn-icon",onClick:()=>L(!1),"aria-label":x("nodes.closeLogsAriaLabel","Close logs"),children:s.jsx($a,{size:14})})]}),Ne?s.jsx("p",{children:x("nodes.fetchingLogs","Fetching logs...")}):s.jsx("pre",{children:Y.trim()||x("nodes.noLogsAvailable","No logs available")})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerEnvVars","Environment Variables")}),s.jsx("dl",{className:"docker-management__env-list",children:Object.entries(v.envVars).map(([F,ie])=>s.jsxs("div",{children:[s.jsx("dt",{children:F}),s.jsx("dd",{children:RF(F,ie)})]},F))})]}),s.jsxs("details",{children:[s.jsx("summary",{children:x("nodes.dockerVolumeMounts","Volume Mounts")}),s.jsx("ul",{className:"docker-management__mounts-list",children:v.volumeMounts.map(F=>s.jsxs("li",{children:[s.jsxs("span",{children:[F.hostPath," → ",F.containerPath]}),F.readOnly&&s.jsx("span",{className:"node-card__type-badge",children:x("nodes.readOnly","Read-only")})]},`${F.hostPath}:${F.containerPath}`))})]})]}),r.type==="remote"&&s.jsxs("section",{className:"node-detail-modal__section",children:[s.jsx("h4",{children:x("nodes.sectionSettingsSync","Settings Sync")}),l&&s.jsxs("div",{className:"node-detail-modal__sync-status",children:[s.jsx("span",{className:`node-detail-modal__sync-dot ${TF(l.syncState)}`,"aria-hidden":!0}),s.jsxs("span",{children:[x("nodes.syncLastSync","Last sync:")," ",s.jsx("strong",{children:l.lastSyncAt?Xl(l.lastSyncAt):x("nodes.syncNeverSynced","Never synced")})]}),l.diffCount>0&&s.jsxs("span",{className:"node-detail-modal__sync-diff",children:[x("nodes.syncDifferences","Differences:")," ",s.jsx("strong",{children:l.diffCount})]})]}),s.jsxs("div",{className:"node-detail-modal__sync-actions",children:[s.jsxs("button",{className:"btn btn-sm",onClick:ya,disabled:B||!c,children:[s.jsx(uc,{size:14}),B?x("nodes.pushing","Pushing..."):x("nodes.pushSettings","Push Settings")]}),s.jsxs("button",{className:"btn btn-sm",onClick:Cn,disabled:K||!d,children:[s.jsx(Ri,{size:14}),K?x("nodes.pulling","Pulling..."):x("nodes.pullSettings","Pull Settings")]}),s.jsxs("button",{className:"btn btn-sm",onClick:Ss,disabled:G||!u,children:[s.jsx(Dh,{size:14}),G?x("nodes.syncing","Syncing..."):x("nodes.syncAuth","Sync Auth")]})]}),q&&s.jsxs("div",{className:"node-detail-modal__sync-error",children:[s.jsx("span",{children:q}),s.jsx("button",{className:"node-detail-modal__sync-error-dismiss",onClick:Zx,"aria-label":x("nodes.dismissError","Dismiss error"),children:s.jsx($a,{size:14})})]})]}),r.type==="remote"&&s.jsxs("section",{className:"node-detail-modal__section",children:[s.jsx("h4",{children:x("nodes.sectionSyncHistory","Sync History")}),s.jsx(AF,{nodeId:r.id,entries:m,singleNode:!0})]})]}),s.jsxs("div",{className:"modal-actions node-detail-modal__actions",children:[s.jsxs("button",{className:"btn btn-sm",onClick:Kr,children:[s.jsx(Rh,{size:14}),x("nodes.healthCheckButton","Health Check")]}),s.jsx("button",{className:"btn btn-sm",onClick:t,children:x("nodes.closeButton","Close")})]})]}),r.type==="remote"&&s.jsx(EF,{isOpen:re,onClose:()=>ae(!1),onResolve:h??(async()=>{}),conflicts:ye,localNodeName:x("nodes.localNodeName","Local"),remoteNodeName:r.name,addToast:o})]})}const $F=15e3,FF=1e3;function BF(){const[e,t]=f.useState([]),[r,n]=f.useState(!0),[a,i]=f.useState(null),o=f.useRef(null),l=f.useRef(0),c=f.useRef(e),d=nc();f.useEffect(()=>{c.current=e},[e]);const u=f.useCallback(b=>c.current.length>0&&ac(b,d.wasRecentlyHidden()),[d]),m=f.useCallback(async()=>{try{i(null);const b=await Wu();t(b)}catch(b){const y=b instanceof Error?b.message:"Failed to fetch managed Docker nodes";u(y)||i(y)}},[u]);f.useEffect(()=>{let b=!1;async function y(){n(!0);try{const j=await Wu();b||(t(j),i(null))}catch(j){const x=j instanceof Error?j.message:"Failed to fetch managed Docker nodes";!b&&!u(x)&&i(x)}finally{b||n(!1)}}y();const g=()=>{if(document.visibilityState!=="visible")return;const j=Date.now(),x=j-l.current;if(x<FF){Wa({view:"useManagedDockerNodes",trigger:"visibility",projectId:void 0,replayAttempted:!1,reason:"debounce-skipped",detail:{timeSinceLastRefreshMs:x}});return}l.current=j,Wa({view:"useManagedDockerNodes",trigger:"visibility",projectId:void 0,replayAttempted:!1,reason:"debounced-refresh"}),m()};return document.addEventListener("visibilitychange",g),()=>{b=!0,document.removeEventListener("visibilitychange",g)}},[m,u]),f.useEffect(()=>{if(!r)return o.current=setInterval(()=>{m()},$F),()=>{o.current&&(clearInterval(o.current),o.current=null)}},[r,m]);const h=f.useCallback(async b=>t0(b),[]),v=f.useCallback(async(b,y)=>(await r0(b,y)).logs,[]),p=f.useCallback(async b=>{const y=await n0(b),g={...y,nodeId:y.nodeId??void 0,containerId:y.containerId??void 0,status:y.status,hostConfig:{type:y.hostConfig.host||y.hostConfig.context?"remote":"local",host:y.hostConfig.host,context:y.hostConfig.context},reachableUrl:y.reachableUrl??void 0,volumeMounts:y.volumeMounts.map(j=>({hostPath:j.hostPath,containerPath:j.containerPath,readOnly:j.mode==="ro"?!0:void 0})),persistentStorage:y.persistentStorage,resourceSizing:{cpuLimit:y.resourceSizing.cpus!==void 0?String(y.resourceSizing.cpus):void 0,memoryLimit:y.resourceSizing.memoryMB!==void 0?`${y.resourceSizing.memoryMB}MB`:void 0},errorMessage:y.errorMessage??void 0};return t(j=>[...j,g]),g},[]);return{dockerNodes:e,loading:r,error:a,refresh:m,getContainerStatus:h,getLogs:v,create:p}}function zF({addToast:e,onClose:t}){const{t:r}=se("app"),{nodes:n,loading:a,error:i,refresh:o,register:l,update:c,unregister:d,healthCheck:u,patchDockerConfig:m,fetchDockerDiff:h,discoverRemoteProjects:v}=Th(),{projects:p,refresh:b}=a0(),{meshState:y,loading:g,error:j}=sF(),{engines:x,loading:C,error:w}=cF(),{syncStatusMap:P,pushSettings:A,pullSettings:S,syncAuth:N,trackNode:E,getAuthSyncState:T,getAuthProviders:O}=nF(),{dockerNodes:I,loading:z,refresh:D,getContainerStatus:V,getLogs:B,create:W}=BF(),[K,te]=f.useState(!1),[G,M]=f.useState(!1),[q,H]=f.useState(null);f.useEffect(()=>{const L=n.filter(Y=>Y.type==="remote");for(const Y of L)E(Y.id)},[n,E]),f.useEffect(()=>{if(!q)return;const L=n.find(Y=>Y.id===q.id)??null;H(L)},[n,q]);const re=f.useMemo(()=>{const L=n.length,Y=n.filter(Oe=>Oe.status==="online").length,ne=n.filter(Oe=>Oe.status==="offline"||Oe.status==="error").length,Ne=n.filter(Oe=>Oe.type==="remote").length,Q=n.filter(Oe=>Oe.type==="remote"&&P[Oe.id]&&Zo(P[Oe.id]).syncState==="synced").length,le=I.length;return{total:L,online:Y,offline:ne,remote:Ne,synced:Q,docker:le}},[I.length,n,P]),ae=f.useCallback(async L=>{await l(L),await b()},[b,l]),ye=f.useCallback(async L=>{try{await W(L),e(r("nodes.dockerNodeCreated",'Docker node "{{name}}" created',{name:L.name}),"success"),M(!1)}catch(Y){const ne=Y instanceof Error?Y.message:r("nodes.failedCreateDocker","Failed to create Docker node");throw e(ne,"error"),Y}},[e,W,r]),oe=f.useMemo(()=>{const L=new Map;for(const Y of I)Y.nodeId&&L.set(Y.nodeId,Y);return L},[I]),He=f.useCallback(async()=>{try{await Promise.all([o(),D()])}catch{e(r("nodes.failedRefresh","Failed to refresh nodes"),"error")}},[e,o,D,r]),J=f.useCallback(async L=>{try{await u(L),e(r("nodes.healthCheckComplete","Node health check complete"),"success")}catch(Y){const ne=Y instanceof Error?Y.message:r("nodes.healthCheckFailed","Health check failed");e(ne,"error")}},[e,u,r]),Ce=f.useCallback(async L=>{try{await d(L),e(r("nodes.removed","Node removed"),"success"),q?.id===L&&H(null)}catch(Y){const ne=Y instanceof Error?Y.message:r("nodes.failedRemove","Failed to remove node");e(ne,"error")}},[e,q?.id,d,r]),Re=f.useCallback(async(L,Y)=>{await c(L,Y)},[c]);return s.jsxs("div",{className:"nodes-view","data-testid":"nodes-view",children:[s.jsxs("div",{className:"nodes-view-header",children:[s.jsxs("div",{className:"nodes-view-title",children:[s.jsxs("h2",{children:[s.jsx(Ih,{size:20}),r("nodes.heading","Nodes")]}),s.jsx("span",{className:"nodes-view-count",children:r("nodes.registeredCount","{{count}} registered",{count:n.length})})]}),s.jsxs("div",{className:"nodes-view-actions",children:[t?s.jsx("button",{className:"btn-icon nodes-view-close",onClick:t,"aria-label":r("nodes.closeAriaLabel","Close nodes view"),children:s.jsx($a,{size:16})}):null,s.jsxs("button",{className:"btn btn-sm",onClick:()=>void He(),disabled:a||z,children:[s.jsx(Gt,{size:14,className:a?"spin":""}),r("nodes.refresh","Refresh")]}),s.jsxs("button",{className:"btn btn-sm",onClick:()=>te(!0),children:[s.jsx(zn,{size:14}),r("nodes.addNode","Add Node")]}),s.jsxs("button",{className:"btn btn-sm",onClick:()=>M(!0),title:r("nodes.addDockerNodeTitle","Add a managed Docker node"),children:[s.jsx(rl,{size:14}),r("nodes.addDockerNode","Add Docker Node")]})]})]}),s.jsxs("div",{className:"nodes-view-stats",children:[s.jsxs("div",{className:"nodes-view-stat","data-testid":"nodes-stat-total",children:[s.jsx("span",{children:r("nodes.total","Total")}),s.jsx("strong",{children:re.total})]}),s.jsxs("div",{className:"nodes-view-stat nodes-view-stat--online","data-testid":"nodes-stat-online",children:[s.jsxs("span",{children:[s.jsx(kw,{size:14})," ",r("nodes.online","Online")]}),s.jsx("strong",{children:re.online})]}),s.jsxs("div",{className:"nodes-view-stat nodes-view-stat--offline","data-testid":"nodes-stat-offline",children:[s.jsxs("span",{children:[s.jsx(ww,{size:14})," ",r("nodes.offline","Offline")]}),s.jsx("strong",{children:re.offline})]}),s.jsxs("div",{className:"nodes-view-stat","data-testid":"nodes-stat-remote",children:[s.jsxs("span",{children:[s.jsx(i0,{size:14})," ",r("nodes.remote","Remote")]}),s.jsx("strong",{children:re.remote})]}),s.jsxs("div",{className:"nodes-view-stat nodes-view-stat--synced","data-testid":"nodes-stat-synced",children:[s.jsxs("span",{children:[s.jsx(Gt,{size:14})," ",r("nodes.synced","Synced")]}),s.jsx("strong",{children:re.synced})]}),s.jsxs("div",{className:"nodes-view-stat","data-testid":"nodes-stat-docker",children:[s.jsxs("span",{children:[s.jsx(rl,{size:14})," ",r("nodes.docker","Docker")]}),s.jsx("strong",{children:re.docker})]})]}),(i||j||w)&&s.jsx("div",{className:"nodes-view-error",children:i??j??w}),!g&&y.length>0&&s.jsxs("section",{className:"nodes-view-topology","aria-label":r("nodes.meshTopologyAriaLabel","Mesh Topology"),children:[s.jsx("h3",{className:"nodes-view-section-title",children:r("nodes.meshTopology","Mesh Topology")}),s.jsx(jF,{nodes:y,engines:C?void 0:x})]}),a?s.jsx("div",{className:"nodes-view-grid",children:Array.from({length:4}).map((L,Y)=>s.jsx("div",{className:"node-card node-card--loading","aria-hidden":!0},Y))}):n.length===0?s.jsxs("div",{className:"nodes-view-empty",children:[s.jsx("p",{children:r("nodes.noRegistered","No nodes are registered yet.")}),s.jsxs("button",{className:"btn btn-primary",onClick:()=>te(!0),children:[s.jsx(zn,{size:14}),r("nodes.addFirstNode","Add First Node")]})]}):s.jsx("div",{className:"nodes-view-grid",children:n.map(L=>{const Y=L.type==="remote"&&P[L.id]?Zo(P[L.id]):void 0;return s.jsx(pF,{node:L,projects:p,onHealthCheck:ne=>{J(ne)},onEdit:ne=>H(ne),onRemove:ne=>{Ce(ne)},isLoading:a,syncStatus:Y,authSyncState:L.type==="remote"?T(L.id):void 0,authSyncProviders:L.type==="remote"?O(L.id):void 0,managedDockerNode:oe.get(L.id)},L.id)})}),s.jsx(CF,{isOpen:K,onClose:()=>te(!1),onSubmit:ae,onDiscoverRemoteProjects:v,addToast:e,projects:p}),s.jsx(PF,{isOpen:G,onClose:()=>M(!1),onSubmit:ye,addToast:e}),s.jsx(LF,{isOpen:q!==null,onClose:()=>H(null),node:q,projects:p,onUpdate:Re,onHealthCheck:J,addToast:e,syncStatus:q?.type==="remote"&&q&&P[q.id]?Zo(P[q.id]):void 0,onPushSettings:A,onPullSettings:S,onSyncAuth:N,managedDockerNode:q?oe.get(q.id):void 0,onFetchContainerStatus:V,onFetchLogs:B,onUpdateDockerConfig:m,onFetchDockerConfigDiff:h})]})}function KF(){const{t:e}=se("app");return t=>{switch(t){case"triage":return e("commandCenter.funnel.stage.triage","Planning");case"todo":return e("commandCenter.funnel.stage.todo","Todo");case"in-progress":return e("commandCenter.funnel.stage.inProgress","In progress");case"in-review":return e("commandCenter.funnel.stage.inReview","In review");case"done":return e("commandCenter.funnel.stage.done","Done");case"other":return e("commandCenter.funnel.stage.other","Other");default:return t}}}function VF(e){return Number.isFinite(e)?e.toFixed(2):"—"}function UF({range:e,projectId:t}){const{t:r}=se("app"),n=KF(),{data:a,isLoading:i,error:o}=Je("/command-center/activity",e,{projectId:t}),l=a?.funnel??null,c=f.useMemo(()=>(l?.stages??[]).map(u=>({label:n(u.stage),value:u.entered})),[l?.stages,n]),d=!l||l.stages.every(u=>u.entered===0);return s.jsxs(ft,{testId:"funnel",isLoading:i,error:o,isEmpty:d,emptyMessage:r("commandCenter.funnel.empty","No task transitions in the selected range."),children:[s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.funnel.title","SDLC funnel")}),s.jsx(qx,{stages:c,ariaLabel:r("commandCenter.funnel.ariaLabel","Tasks per workflow stage")})]}),s.jsxs("div",{className:"cc-area-section",children:[s.jsx("h3",{className:"cc-area-section-title",children:r("commandCenter.funnel.throughputTitle","Throughput")}),s.jsxs("div",{className:"cc-stat-grid",children:[s.jsxs("div",{className:"card cc-stat-card cc-stat-card--gauge","data-testid":"cc-funnel-completion-rate",children:[s.jsx(Ua,{value:l?.completionRate??null,label:r("commandCenter.funnel.completionRate","Completion rate"),ariaLabel:r("commandCenter.funnel.completionRateAria","Completion rate for in-range planning entrants")}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.funnel.completionRateHint","Done ÷ entered (in range)")})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-funnel-throughput",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.funnel.throughputPerDay","Tasks done / day")}),s.jsx("div",{className:"cc-stat-value",children:VF(l?.throughputPerDay??0)}),s.jsx("span",{className:"cc-stat-sub",children:r("commandCenter.funnel.rangeDays","{{count}} day range",{count:l?.rangeDays??0})})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-funnel-done",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.funnel.doneInRange","Reached done")}),s.jsx("div",{className:"cc-stat-value",children:U(l?.doneInRange??0)})]}),s.jsxs("div",{className:"card cc-stat-card","data-testid":"cc-funnel-entered",children:[s.jsx("div",{className:"cc-stat-label",children:r("commandCenter.funnel.enteredInRange","Entered planning")}),s.jsx("div",{className:"cc-stat-value",children:U(l?.enteredInRange??0)})]})]})]})]})}const qF=8;function WF(e){const{t}=se("app");return[{id:"overview",label:t("commandCenter.tabs.overview","Overview")},{id:"tokens",label:t("commandCenter.tabs.tokens","Tokens")},{id:"tools",label:t("commandCenter.tabs.tools","Tools")},{id:"activity",label:t("commandCenter.tabs.activity","Activity")},{id:"agent-activity",label:t("commandCenter.tabs.agentActivity","Agent Activity")},{id:"productivity",label:t("commandCenter.tabs.productivity","Productivity")},{id:"review-artifacts",label:t("commandCenter.tabs.reviewArtifacts","Review artifacts")},{id:"team",label:t("commandCenter.tabs.team","Team")},{id:"workflows",label:t("commandCenter.tabs.workflows","Workflows")},{id:"ecosystem",label:t("commandCenter.tabs.ecosystem","Ecosystem")},{id:"github",label:t("commandCenter.tabs.github","GitHub")},{id:"gitlab",label:t("commandCenter.tabs.gitlab","GitLab")},{id:"signals",label:t("commandCenter.tabs.signals","Signals")},{id:"system",label:t("commandCenter.tabs.system","System")},{id:"plugins",label:t("commandCenter.tabs.plugins","Plugins")},...e?[{id:"nodes",label:t("commandCenter.tabs.nodes","Nodes")}]:[],{id:"reliability",label:t("commandCenter.tabs.reliability","Reliability")},{id:"mission-control",label:t("commandCenter.tabs.missionControl","Mission Control")}]}const Sh=15e3;function HF({range:e,projectId:t,colorTheme:r="default",themeMode:n="system",shadcnCustomColors:a={},resolvedThemeMode:i=n==="light"?"light":"dark",onColorThemeChange:o=()=>{},onThemeModeChange:l=()=>{},onShadcnCustomColorsChange:c=()=>{},onChangeView:d}){const{t:u}=se("app"),m=Je("/command-center/tokens?groupBy=model",e,{pollMs:Sh,projectId:t}),h=Je("/command-center/tools",e,{projectId:t}),v=Je("/command-center/activity",e,{projectId:t}),p=Je("/command-center/signals",e,{projectId:t}),{snapshot:b,isLoading:y}=Hx(t),[g,j]=f.useState(null),[x,C]=f.useState([]),w=f.useRef(0),P=f.useCallback(()=>{const Q=w.current,le=()=>w.current!==Q;fr(mr("/command-center/verification-requests",t)).then(Oe=>{le()||C(Oe.requests)}).catch(()=>{le()||C([])})},[t]);f.useEffect(()=>(P(),()=>{w.current+=1}),[P]),vn(P,Sh),f.useEffect(()=>{let Q=!1;return j(null),t?(o0(t).then(le=>{Q||j(le)},()=>{Q||j(null)}),()=>{Q=!0}):()=>{Q=!0}},[t]);const A=m.data?.totals?.totalTokens??0,S=h.data?.toolCalls??0,N=v.data?.activeNodes??0,E=v.data?.activeAgents??0,T=F2(b),O=v.data?.sessions??0,I=v.data?.agentRuns?.total??0,z=v.data?.funnel?.doneInRange??0,D=$2(b?.columns),V=m.data?.groups?.length??0,B=f.useMemo(()=>[...m.data?.groups??[]].sort((Q,le)=>le.totalTokens-Q.totalTokens||(Q.key??"").localeCompare(le.key??"")).slice(0,qF).map(Q=>({label:Q.key??u("commandCenter.tokens.unknownModel","(unknown)"),value:Q.totalTokens,valueLabel:U(Q.totalTokens),iconProvider:ec(Q.key??"")})),[m.data?.groups,u]),W=f.useMemo(()=>[...h.data?.byCategory??[]].sort((Q,le)=>le.count-Q.count||Q.category.localeCompare(le.category)).map(Q=>({label:Q.category,value:Q.count,valueLabel:U(Q.count)})),[h.data?.byCategory]),K=f.useMemo(()=>B.map(Q=>({label:Q.label,value:Q.value})),[B]),te=f.useMemo(()=>(v.data?.daily??[]).map(Q=>Q.messages+Q.activeAgents+(Q.agentRuns??0)),[v.data?.daily]),G=f.useMemo(()=>[{label:u("commandCenter.activity.messages","Messages"),values:(v.data?.daily??[]).map(Q=>Q.messages)},{label:u("commandCenter.activity.activeAgents","Active agents"),values:(v.data?.daily??[]).map(Q=>Q.activeAgents)},{label:u("commandCenter.activity.agentRuns","Agent runs"),values:(v.data?.daily??[]).map(Q=>Q.agentRuns)}],[v.data?.daily,u]),M=te.length>0?te:[O,v.data?.messages??0,E,N,z],q=B.length>0||W.length>0||te.length>0,H=O>0||(v.data?.messages??0)>0||N>0||E>0||I>0||z>0,re=A>0||S>0||H,ye=!(m.data!==null&&h.data!==null&&v.data!==null)&&(m.isLoading||h.isLoading||v.isLoading),oe=m.error??h.error??v.error,He=m.data?Tr(m.data.cost?.usd??null,m.data.cost?.unavailable??!0):"—",J=h.data?h.data.fullyAutonomous?u("commandCenter.tools.ratioAutonomous","{{ratio}} calls/session (fully autonomous)",{ratio:h.data.autonomyRatio.toFixed(1)}):`${h.data.autonomyRatio.toFixed(1)}:1`:"—",Ce=[{id:"codebaseTokens",testId:"cc-overview-codebase-tokens",label:u("commandCenter.overview.codebaseTokens","Codebase tokens"),value:g?U(g.tokenEstimate):"—",subLabel:g?.truncated?u("commandCenter.overview.metricsPartial","Approx. (partial)"):g?u("commandCenter.overview.codebaseTokensHint","Local estimate calibrated to cl100k_base"):void 0},{id:"diskSize",testId:"cc-overview-disk-size",label:u("commandCenter.overview.diskSize","Disk size"),value:g?ct(g.diskBytes):"—",subLabel:g?.truncated?u("commandCenter.overview.metricsPartial","Approx. (partial)"):g?u("commandCenter.overview.diskSizeHint","Apparent local size"):void 0}],Re=Q=>s.jsx("div",{className:"cc-stat-grid",children:Q.map(le=>s.jsxs("div",{className:"card cc-stat-card","data-testid":le.testId??`command-center-stat-${le.id}`,children:[s.jsx("div",{className:"cc-stat-label",children:le.label}),s.jsx("div",{className:`cc-stat-value ${le.id==="tokens"?"cc-token-count-live":""}`,children:le.value},le.value),le.subLabel?s.jsx("span",{className:"cc-stat-sub",children:le.subLabel}):null]},le.id))}),L=[{id:"tokens",label:u("commandCenter.overview.tokensCost","Tokens & cost"),value:U(A),subLabel:He},{id:"autonomy",label:u("commandCenter.overview.autonomy","Autonomy ratio"),value:J},{id:"agentRuns",label:u("commandCenter.overview.agentRuns","Agent runs"),value:U(I)},{id:"tasksDone",label:u("commandCenter.overview.tasksDone","Tasks done"),value:U(z)},{id:"models",label:u("commandCenter.overview.uniqueModels","Unique models"),value:U(V)},{id:"signals",label:u("commandCenter.overview.openSignals","Open signals"),value:p.isLoading?"—":p.data?U(p.data.open??0):"—"}],Y=s.jsx(Q2,{projectId:t,colorTheme:r,themeMode:n,shadcnCustomColors:a,resolvedThemeMode:i,onColorThemeChange:o,onThemeModeChange:l,onShadcnCustomColorsChange:c,onChangeView:d}),ne=s.jsx("div",{className:"cc-overview-throughput","data-testid":"command-center-throughput",children:s.jsx(UF,{range:e,projectId:t})}),Ne=x.length>0?s.jsxs("section",{className:"cc-verification-requests card","data-testid":"command-center-verification-requests",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:"Task verification"}),s.jsx("p",{children:"Latest executor-owned verification requests"})]}),x.map(Q=>s.jsxs("div",{className:"cc-verification-requests__item",children:[s.jsx("span",{className:"cc-verification-requests__task",children:Q.taskId}),s.jsx(l0,{request:Q,compact:!0})]},Q.requestId))]}):null;return ye?s.jsxs("div",{className:"cc-overview",children:[Y,Re(Ce),s.jsxs("div",{className:"cc-loading","data-testid":"command-center-overview-loading",children:[s.jsx("div",{className:"cc-chart-skeleton"}),s.jsx("p",{children:s.jsx(rc,{label:u("commandCenter.loading","Loading dashboard...")})})]}),Ne,ne]}):oe!==null&&!re?s.jsxs("div",{className:"cc-overview",children:[Y,Re(Ce),s.jsxs("div",{className:"cc-error","data-testid":"command-center-overview-error",role:"alert",children:[s.jsx(Mi,{size:24}),s.jsx("p",{children:oe})]}),Ne,ne]}):re?s.jsxs("div",{className:"cc-overview",children:[Y,Re([...Ce,...L]),s.jsxs("div",{className:"cc-live-strip","data-testid":"command-center-live-strip",children:[s.jsxs("div",{className:"cc-live-strip-heading",children:[s.jsx("span",{className:"status-dot status-dot--connecting","aria-hidden":"true"}),s.jsx("span",{className:"cc-live-strip-label",children:u("commandCenter.overview.liveStrip","Live activity snapshot")})]}),s.jsxs("div",{className:"cc-live-strip-metrics","data-testid":"command-center-live-snapshot",children:[s.jsxs("span",{className:"cc-live-metric","data-testid":"command-center-live-tasks-in-progress",children:[s.jsx("span",{className:"cc-live-metric-value",children:y?"—":U(D)}),s.jsx("span",{className:"cc-live-metric-label",children:u("commandCenter.overview.tasksInProgress","tasks in progress")})]}),s.jsxs("span",{className:"cc-live-metric","data-testid":"command-center-live-agents-working",children:[s.jsx("span",{className:"cc-live-metric-value",children:y?"—":U(T)}),s.jsx("span",{className:"cc-live-metric-label",children:u("commandCenter.overview.agentsWorking","agents working")})]}),s.jsxs("span",{className:"cc-live-metric","data-testid":"command-center-live-tokens",children:[s.jsx("span",{className:"cc-live-metric-value cc-token-count-live",children:U(A)},A),s.jsx("span",{className:"cc-live-metric-label",children:u("commandCenter.overview.liveTokens","tokens")})]}),s.jsxs("span",{className:"cc-live-metric","data-testid":"command-center-live-open-signals",children:[s.jsx("span",{className:"cc-live-metric-value",children:p.isLoading?"—":p.data?U(p.data.open??0):"—"}),s.jsx("span",{className:"cc-live-metric-label",children:u("commandCenter.overview.openSignals","open signals")})]})]}),s.jsxs("div",{className:"cc-live-trend","data-testid":"command-center-throughput-trend",children:[s.jsx("span",{className:"cc-live-trend-label",children:u("commandCenter.overview.throughputTrend","throughput trend")}),s.jsx(Ot,{values:M,ariaLabel:u("commandCenter.overview.throughputTrendAria","Recent activity throughput trend")})]})]}),Ne,q?s.jsxs("section",{className:"cc-overview-charts","data-testid":"command-center-overview-charts",children:[B.length>0?s.jsxs("div",{className:"card cc-overview-chart-card","data-testid":"command-center-overview-chart-tokens",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:u("commandCenter.overview.tokensByModel","Tokens by model")}),s.jsx("p",{children:u("commandCenter.overview.tokensByModelHint","Top model token consumers in this range")})]}),s.jsx(nt,{data:B,ariaLabel:u("commandCenter.overview.tokensByModel","Tokens by model")})]}):null,K.length>0?s.jsxs("div",{className:"card cc-overview-chart-card","data-testid":"cc-overview-pie",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:u("commandCenter.overview.tokensByModelPie","Token share by model")}),s.jsx("p",{children:u("commandCenter.overview.tokensByModelPieHint","Top model token share in this range")})]}),s.jsx(Mt,{data:K,ariaLabel:u("commandCenter.overview.tokensByModelPie","Token share by model")})]}):null,W.length>0?s.jsxs("div",{className:"card cc-overview-chart-card","data-testid":"command-center-overview-chart-tools",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:u("commandCenter.overview.toolCategories","Tool categories")}),s.jsx("p",{children:u("commandCenter.overview.toolCategoriesHint","Autonomous work grouped by tool family")})]}),s.jsx(nt,{data:W,ariaLabel:u("commandCenter.overview.toolCategories","Tool categories")})]}):null,te.length>0?s.jsxs("div",{className:"card cc-overview-chart-card cc-overview-chart-card--trend","data-testid":"cc-overview-line",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:u("commandCenter.overview.dailyActivityLine","Daily activity line")}),s.jsx("p",{children:u("commandCenter.overview.dailyActivityLineHint","Messages, agents, and runs by day")})]}),s.jsx(br,{series:G,ariaLabel:u("commandCenter.overview.dailyActivityLine","Daily activity line")})]}):null,te.length>0?s.jsxs("div",{className:"card cc-overview-chart-card cc-overview-chart-card--trend","data-testid":"command-center-overview-chart-activity",children:[s.jsxs("div",{className:"cc-overview-chart-header",children:[s.jsx("h3",{className:"cc-area-section-title",children:u("commandCenter.overview.dailyActivity","Daily activity trend")}),s.jsx("p",{children:u("commandCenter.overview.dailyActivityHint","Messages plus active agents per day")})]}),s.jsx(Ot,{values:te,ariaLabel:u("commandCenter.overview.dailyActivityAria","Daily activity trend")})]}):null]}):null,ne]}):s.jsxs("div",{className:"cc-overview",children:[Y,Re(Ce),s.jsxs("div",{className:"cc-empty","data-testid":"command-center-empty",children:[s.jsx(Ii,{size:28}),s.jsx("p",{children:u("commandCenter.empty","No usage data yet. Run some agents to populate the Dashboard.")})]}),Ne,ne]})}function GF({tabId:e}){const{t}=se("app");return s.jsxs("div",{className:"cc-empty","data-testid":`command-center-placeholder-${e}`,children:[s.jsx(Ii,{size:28}),s.jsx("p",{children:t("commandCenter.areaPending","This area renders once metrics data is available.")})]})}function RB({projectId:e,colorTheme:t="default",themeMode:r="system",shadcnCustomColors:n={},resolvedThemeMode:a=r==="light"?"light":"dark",onColorThemeChange:i=()=>{},onThemeModeChange:o=()=>{},onShadcnCustomColorsChange:l=()=>{},addToast:c=()=>{},nodesEnabled:d=!1,onChangeView:u,onOpenAgent:m,onOpenTask:h}={}){const{t:v}=se("app"),p=WF(d),[b,y]=f.useState(()=>Os(e)?.activeTab??"overview"),[g,j]=f.useState(()=>Os(e)?.range??cl(ll((S,N)=>N)[1])),x=f.useRef(e);f.useEffect(()=>{if(x.current===e)return;x.current=e;const S=Os(e);y(S?.activeTab??"overview"),j(S?.range??cl(ll((N,E)=>E)[1]))},[e]),f.useEffect(()=>{x.current===e&&s0({activeTab:b,range:g},e)},[b,e,g]),f.useEffect(()=>{p.some(S=>S.id===b)||y("overview")},[b,p]);const C=f.useRef([]),w=f.useCallback(S=>{const N=(S+p.length)%p.length;y(p[N].id),C.current[N]?.focus()},[p]),P=f.useCallback((S,N)=>{switch(S.key){case"ArrowRight":case"ArrowDown":S.preventDefault(),w(N+1);break;case"ArrowLeft":case"ArrowUp":S.preventDefault(),w(N-1);break;case"Home":S.preventDefault(),w(0);break;case"End":S.preventDefault(),w(p.length-1);break;case"Enter":case" ":S.preventDefault(),y(p[N].id);break}},[w,p]);function A(){switch(b){case"overview":return s.jsx(HF,{range:g,projectId:e,colorTheme:t,themeMode:r,shadcnCustomColors:n,resolvedThemeMode:a,onColorThemeChange:i,onThemeModeChange:o,onShadcnCustomColorsChange:l,onChangeView:u});case"tokens":return s.jsx(v$,{range:g,projectId:e});case"tools":return s.jsx(h$,{range:g,projectId:e});case"activity":return s.jsx(A$,{range:g,projectId:e});case"agent-activity":return s.jsx(G$,{projectId:e,range:g,onOpenAgent:m,onOpenTask:h});case"productivity":return s.jsx(Y$,{range:g,projectId:e});case"review-artifacts":return s.jsx(Z$,{projectId:e,addToast:c});case"team":return s.jsx(o2,{range:g,projectId:e,addToast:c});case"workflows":return s.jsx(c2,{range:g,projectId:e});case"ecosystem":return s.jsx(u2,{range:g,projectId:e});case"github":return s.jsx(m2,{range:g,projectId:e});case"gitlab":return s.jsx(h2,{range:g,projectId:e});case"signals":return s.jsx(p2,{range:g,projectId:e});case"system":return s.jsxs("div",{className:"cc-system-tab","data-testid":"cc-system-tab",children:[s.jsx(D2,{projectId:e,addToast:c}),s.jsx(A2,{})]});case"plugins":return s.jsx(aw,{addToast:c??(()=>{}),projectId:e});case"nodes":return s.jsx(zF,{addToast:c});case"reliability":return s.jsx(eF,{projectId:e});case"mission-control":return s.jsx(H2,{projectId:e});default:return s.jsx(GF,{tabId:b})}}return s.jsxs("section",{className:"command-center","data-testid":"command-center",children:[s.jsxs("header",{className:"cc-header",children:[s.jsxs("h2",{className:"cc-title",children:[s.jsx(Ii,{size:20}),v("commandCenter.heading","Dashboard")]}),s.jsx(aC,{value:g,onChange:j})]}),s.jsx("div",{className:"cc-tablist",role:"tablist","aria-label":v("commandCenter.tablistLabel","Dashboard sections"),children:p.map((S,N)=>{const E=S.id===b;return s.jsx("button",{ref:T=>{C.current[N]=T},role:"tab",id:`cc-tab-${S.id}`,"aria-selected":E,"aria-controls":`cc-tabpanel-${S.id}`,tabIndex:E?0:-1,className:`cc-tab${E?" active":""}`,onClick:()=>y(S.id),onKeyDown:T=>P(T,N),"data-testid":`command-center-tab-${S.id}`,children:S.label},S.id)})}),s.jsx("div",{role:"tabpanel",id:`cc-tabpanel-${b}`,"aria-labelledby":`cc-tab-${b}`,tabIndex:0,className:"cc-tabpanel","data-testid":`command-center-panel-${b}`,children:A()})]})}export{RB as CommandCenter};
|