@harperfast/harper 5.2.0 → 5.2.1
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/bin/copyDb.ts +21 -4
- package/bin/harper.ts +20 -51
- package/bin/help.ts +216 -0
- package/components/Application.ts +236 -46
- package/components/ApplicationScope.ts +26 -0
- package/components/EntryHandler.ts +410 -105
- package/components/RuntimeModuleTracker.ts +189 -0
- package/components/Scope.ts +68 -24
- package/components/componentLoader.ts +70 -16
- package/components/deployLifecycle.ts +119 -33
- package/components/mcp/tools/operations.ts +6 -0
- package/components/operations.js +4 -6
- package/config/configUtils.ts +12 -9
- package/config-root.schema.json +10 -0
- package/dataLayer/harperBridge/ResourceBridge.ts +26 -5
- package/dataLayer/hdbInfoController.ts +8 -0
- package/dataLayer/schemaDescribe.ts +2 -1
- package/dist/bin/copyDb.js +13 -2
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/bin/harper.d.ts +6 -0
- package/dist/bin/harper.js +18 -50
- package/dist/bin/harper.js.map +1 -1
- package/dist/bin/help.d.ts +8 -0
- package/dist/bin/help.js +192 -0
- package/dist/bin/help.js.map +1 -0
- package/dist/components/Application.d.ts +16 -1
- package/dist/components/Application.js +210 -38
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.d.ts +7 -0
- package/dist/components/ApplicationScope.js +22 -0
- package/dist/components/ApplicationScope.js.map +1 -1
- package/dist/components/EntryHandler.d.ts +4 -4
- package/dist/components/EntryHandler.js +386 -95
- package/dist/components/EntryHandler.js.map +1 -1
- package/dist/components/RuntimeModuleTracker.d.ts +11 -0
- package/dist/components/RuntimeModuleTracker.js +189 -0
- package/dist/components/RuntimeModuleTracker.js.map +1 -0
- package/dist/components/Scope.d.ts +1 -0
- package/dist/components/Scope.js +69 -22
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/componentLoader.js +69 -10
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/deployLifecycle.d.ts +6 -2
- package/dist/components/deployLifecycle.js +109 -31
- package/dist/components/deployLifecycle.js.map +1 -1
- package/dist/components/mcp/tools/operations.js +6 -0
- package/dist/components/mcp/tools/operations.js.map +1 -1
- package/dist/components/operations.js +4 -6
- package/dist/components/operations.js.map +1 -1
- package/dist/config/configUtils.js +13 -9
- package/dist/config/configUtils.js.map +1 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.js +12 -5
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/hdbInfoController.js +4 -0
- package/dist/dataLayer/hdbInfoController.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.js +2 -1
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +55 -0
- package/dist/resources/DatabaseTransaction.js +282 -103
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +8 -2
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Resources.js +22 -4
- package/dist/resources/Resources.js.map +1 -1
- package/dist/resources/Table.d.ts +6 -5
- package/dist/resources/Table.js +92 -15
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/write.js +6 -6
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/blob.d.ts +0 -1
- package/dist/resources/blob.js +15 -7
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/databases.d.ts +22 -5
- package/dist/resources/databases.js +118 -9
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/jsResource.d.ts +4 -26
- package/dist/resources/jsResource.js +5 -59
- package/dist/resources/jsResource.js.map +1 -1
- package/dist/resources/models/Models.d.ts +11 -1
- package/dist/resources/models/Models.js +10 -1
- package/dist/resources/models/Models.js.map +1 -1
- package/dist/resources/models/backendRegistry.d.ts +9 -0
- package/dist/resources/models/backendRegistry.js +10 -0
- package/dist/resources/models/backendRegistry.js.map +1 -1
- package/dist/resources/models/openaiStream.d.ts +16 -1
- package/dist/resources/models/openaiStream.js +113 -21
- package/dist/resources/models/openaiStream.js.map +1 -1
- package/dist/resources/models/v1/chatCompletions.d.ts +54 -0
- package/dist/resources/models/v1/chatCompletions.js +115 -0
- package/dist/resources/models/v1/chatCompletions.js.map +1 -0
- package/dist/resources/models/v1/embeddings.d.ts +11 -0
- package/dist/resources/models/v1/embeddings.js +71 -0
- package/dist/resources/models/v1/embeddings.js.map +1 -0
- package/dist/resources/models/v1/errors.d.ts +54 -0
- package/dist/resources/models/v1/errors.js +130 -0
- package/dist/resources/models/v1/errors.js.map +1 -0
- package/dist/resources/models/v1/index.d.ts +36 -0
- package/dist/resources/models/v1/index.js +75 -0
- package/dist/resources/models/v1/index.js.map +1 -0
- package/dist/resources/models/v1/models.d.ts +26 -0
- package/dist/resources/models/v1/models.js +44 -0
- package/dist/resources/models/v1/models.js.map +1 -0
- package/dist/resources/models/v1/translation.d.ts +133 -0
- package/dist/resources/models/v1/translation.js +298 -0
- package/dist/resources/models/v1/translation.js.map +1 -0
- package/dist/resources/roles.d.ts +1 -1
- package/dist/resources/roles.js +54 -7
- package/dist/resources/roles.js.map +1 -1
- package/dist/security/jsLoader.js +84 -33
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/role.js +4 -0
- package/dist/security/role.js.map +1 -1
- package/dist/security/superUserGuard.d.ts +7 -0
- package/dist/security/superUserGuard.js +23 -0
- package/dist/security/superUserGuard.js.map +1 -0
- package/dist/security/tokenAuthentication.d.ts +0 -1
- package/dist/security/tokenAuthentication.js +6 -2
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/security/user.d.ts +6 -1
- package/dist/security/user.js +23 -1
- package/dist/security/user.js.map +1 -1
- package/dist/server/http.d.ts +23 -2
- package/dist/server/http.js +99 -12
- package/dist/server/http.js.map +1 -1
- package/dist/server/operationsServer.d.ts +0 -2
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/multipartParser.js +9 -0
- package/dist/server/serverHelpers/multipartParser.js.map +1 -1
- package/dist/server/serverHelpers/operationAuthorizationState.d.ts +2 -0
- package/dist/server/serverHelpers/operationAuthorizationState.js +13 -0
- package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -0
- package/dist/server/serverHelpers/registeredOperations.d.ts +3 -2
- package/dist/server/serverHelpers/registeredOperations.js +14 -13
- package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
- package/dist/server/serverHelpers/serverHandlers.js +19 -3
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +1 -1
- package/dist/server/serverHelpers/serverUtilities.js +10 -7
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/static.js +57 -18
- package/dist/server/static.js.map +1 -1
- package/dist/server/storageReclamation.d.ts +17 -0
- package/dist/server/storageReclamation.js +90 -6
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/socketRouter.js +20 -0
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadServer.js +12 -0
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/sqlEngine/diff/differential.js +7 -3
- package/dist/sqlEngine/diff/differential.js.map +1 -1
- package/dist/sqlTranslator/index.js +6 -1
- package/dist/sqlTranslator/index.js.map +1 -1
- package/dist/upgrade/upgradePrompt.d.ts +2 -2
- package/dist/upgrade/upgradePrompt.js +22 -3
- package/dist/upgrade/upgradePrompt.js.map +1 -1
- package/dist/utility/errors/commonErrors.d.ts +1 -0
- package/dist/utility/errors/commonErrors.js +1 -0
- package/dist/utility/errors/commonErrors.js.map +1 -1
- package/dist/utility/hdbTerms.d.ts +2 -0
- package/dist/utility/hdbTerms.js +2 -0
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/install/installer.js +32 -0
- package/dist/utility/install/installer.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +7 -0
- package/dist/utility/logging/harper_logger.js +57 -24
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/npm-shrinkwrap.json +197 -193
- package/package.json +9 -7
- package/resources/DatabaseTransaction.ts +310 -101
- package/resources/ResourceInterface.ts +8 -2
- package/resources/Resources.ts +22 -4
- package/resources/Table.ts +321 -243
- package/resources/analytics/write.ts +22 -20
- package/resources/blob.ts +15 -8
- package/resources/databases.ts +123 -12
- package/resources/jsResource.ts +5 -62
- package/resources/models/Models.ts +14 -1
- package/resources/models/backendRegistry.ts +10 -0
- package/resources/models/openaiStream.ts +131 -19
- package/resources/models/v1/chatCompletions.ts +128 -0
- package/resources/models/v1/embeddings.ts +70 -0
- package/resources/models/v1/errors.ts +141 -0
- package/resources/models/v1/index.ts +72 -0
- package/resources/models/v1/models.ts +53 -0
- package/resources/models/v1/translation.ts +362 -0
- package/resources/roles.ts +67 -7
- package/security/jsLoader.ts +84 -30
- package/security/role.ts +7 -0
- package/security/superUserGuard.ts +20 -0
- package/security/tokenAuthentication.ts +6 -3
- package/security/user.ts +26 -1
- package/server/DESIGN.md +45 -34
- package/server/http.ts +100 -13
- package/server/operationsServer.ts +0 -2
- package/server/serverHelpers/multipartParser.ts +9 -0
- package/server/serverHelpers/operationAuthorizationState.ts +11 -0
- package/server/serverHelpers/registeredOperations.ts +19 -15
- package/server/serverHelpers/serverHandlers.js +20 -3
- package/server/serverHelpers/serverUtilities.ts +10 -7
- package/server/static.ts +75 -20
- package/server/storageReclamation.ts +104 -8
- package/server/threads/socketRouter.ts +20 -0
- package/server/threads/threadServer.js +11 -0
- package/sqlTranslator/index.ts +6 -1
- package/static/defaultConfig.yaml +2 -0
- package/studio/web/assets/{Chat-DoVWScmq.js → Chat-aApwhRmz.js} +2 -2
- package/studio/web/assets/{Chat-DoVWScmq.js.map → Chat-aApwhRmz.js.map} +1 -1
- package/studio/web/assets/{FloatingChat-UZ2NsUOZ.js → FloatingChat-sC0H91n9.js} +4 -4
- package/studio/web/assets/{FloatingChat-UZ2NsUOZ.js.map → FloatingChat-sC0H91n9.js.map} +1 -1
- package/studio/web/assets/{apiToken-BUI_04o7.js → apiToken-DZ8JhHOI.js} +2 -2
- package/studio/web/assets/{apiToken-BUI_04o7.js.map → apiToken-DZ8JhHOI.js.map} +1 -1
- package/studio/web/assets/{applications-D03NA7wW.js → applications-9SEVLIO5.js} +2 -2
- package/studio/web/assets/{applications-D03NA7wW.js.map → applications-9SEVLIO5.js.map} +1 -1
- package/studio/web/assets/{index-Bh_CNAHr.js → index-Dy3uDGXb.js} +6 -6
- package/studio/web/assets/{index-Bh_CNAHr.js.map → index-Dy3uDGXb.js.map} +1 -1
- package/studio/web/assets/{index.lazy-Dx3MpyDC.js → index.lazy-CN1zq4I4.js} +4 -4
- package/studio/web/assets/{index.lazy-Dx3MpyDC.js.map → index.lazy-CN1zq4I4.js.map} +1 -1
- package/studio/web/assets/{notifications-0edoFTsb.js → notifications-BFAF07xr.js} +2 -2
- package/studio/web/assets/{notifications-0edoFTsb.js.map → notifications-BFAF07xr.js.map} +1 -1
- package/studio/web/assets/{notifications-CwKhipK7.js → notifications-CKlYVvVN.js} +2 -2
- package/studio/web/assets/{notifications-CwKhipK7.js.map → notifications-CKlYVvVN.js.map} +1 -1
- package/studio/web/assets/{profile-DUfEPQtx.js → profile-A1zhEdFG.js} +2 -2
- package/studio/web/assets/{profile-DUfEPQtx.js.map → profile-A1zhEdFG.js.map} +1 -1
- package/studio/web/assets/{setComponentFile-DMPo4UjC.js → setComponentFile-SEtBt_GV.js} +2 -2
- package/studio/web/assets/{setComponentFile-DMPo4UjC.js.map → setComponentFile-SEtBt_GV.js.map} +1 -1
- package/studio/web/assets/{setup-B56Oz1_u.js → setup-BisINqdH.js} +2 -2
- package/studio/web/assets/{setup-B56Oz1_u.js.map → setup-BisINqdH.js.map} +1 -1
- package/studio/web/assets/{status-BAod7p3o.js → status-BuQoCc7l.js} +2 -2
- package/studio/web/assets/{status-BAod7p3o.js.map → status-BuQoCc7l.js.map} +1 -1
- package/studio/web/assets/{swagger-ui-react-lQrBxfwM.js → swagger-ui-react-CAi_s1PC.js} +2 -2
- package/studio/web/assets/{swagger-ui-react-lQrBxfwM.js.map → swagger-ui-react-CAi_s1PC.js.map} +1 -1
- package/studio/web/assets/{tsMode-CrHCRjTK.js → tsMode-DT74tlkM.js} +2 -2
- package/studio/web/assets/{tsMode-CrHCRjTK.js.map → tsMode-DT74tlkM.js.map} +1 -1
- package/studio/web/assets/{useEntityRestURL-DoaBMEvU.js → useEntityRestURL-CGRGc1n7.js} +2 -2
- package/studio/web/assets/{useEntityRestURL-DoaBMEvU.js.map → useEntityRestURL-CGRGc1n7.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/upgradePrompt.ts +22 -3
- package/utility/errors/commonErrors.ts +2 -0
- package/utility/hdbTerms.ts +2 -0
- package/utility/install/installer.ts +37 -0
- package/utility/logging/harper_logger.ts +57 -26
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,r as t,t as n}from"./rolldown-runtime-CNC7AqOf.js";import{j as r}from"./vendor-core-xUefYpUO.js";import{n as i,t as a}from"./button-oQgW4t1x.js";import{B as o,I as s,M as c,N as l,S as u,T as d,V as f,j as p,x as m}from"./vendor-tanstack-0SjDjtT0.js";import{a as h}from"./vendor-datadog-DyjkTkvg.js";import{n as g,r as _}from"./vendor-react-DeL8Gtgl.js";import{Rt as v,a as y,i as b,n as x,r as S,t as C}from"./vendor-ui-Bj22lHGK.js";import{a as w,i as T,n as E,r as D,t as O}from"./card-BHplR9Xd.js";import{t as k}from"./createLucideIcon-BDx8noBh.js";import{c as A,f as j,g as M,h as N,i as ee,l as te,n as ne,o as re,p as ie,s as ae,t as oe,u as se}from"./select-y6NKMkG_.js";import{r as ce,t as le}from"./x-C3uc0qMD.js";import{a as ue,i as de,n as fe,r as pe,t as me}from"./tabs-CxZ4MxTw.js";import{t as he}from"./errorText-NpBmvk9I.js";import{o as ge,r as _e}from"./pollUnlessForbidden-HHdQZW1N.js";import{Bt as ve,Et as ye,Ht as be,I as xe,It as Se,Qn as Ce,a as we,hn as Te,i as Ee,mn as De,n as Oe,pn as ke,r as Ae}from"./index-Bh_CNAHr.js";import{_ as je,a as Me,c as Ne,f as Pe,h as Fe,i as Ie,l as Le,m as Re,n as ze,o as Be,p as Ve,r as He,s as Ue,t as We,u as Ge}from"./linear-Clj7BvYC.js";import{n as Ke,t as qe}from"./ordinal-BeZAVUpG.js";import{C as Je,D as Ye,E as Xe,O as Ze,_ as Qe,a as $e,i as et,l as tt,n as nt,o as rt,s as it,t as at,w as ot,x as st,y as ct}from"./time-V48BpMN7.js";import{n as lt,t as ut}from"./band-CcbG6rPL.js";import{n as P,t as dt}from"./path-BWPyau1x.js";import{r as ft,t as pt}from"./defaultLocale-C8Fc0cco.js";import{n as mt,t as ht}from"./init-Cs1-1e_z.js";import{a as gt,d as _t,f as vt,p as yt,u as bt}from"./math-Bi_r_ZWc.js";import{t as xt}from"./array-BifhSqXX.js";import{a as St,c as Ct,d as wt,h as Tt,i as Et,l as Dt,m as Ot,n as kt,o as At,p as jt,r as Mt,s as Nt,t as Pt}from"./step-D4Q0arzR.js";import{n as Ft,r as It,t as Lt}from"./line-BMvOdiSv.js";import{a as Rt,c as zt,d as Bt,i as F,l as Vt,r as Ht,s as Ut,t as Wt,u as Gt}from"./react-redux-Co6ou4E8.js";import{r as Kt,t as qt}from"./getAnalytics-ChWFgfXd.js";var Jt=k(`clipboard-copy`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2`,key:`4jdomd`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v4`,key:`3hqy98`}],[`path`,{d:`M21 14H11`,key:`1bme5i`}],[`path`,{d:`m15 10-4 4 4 4`,key:`5dvupr`}]]),Yt=k(`file-spreadsheet`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]),Xt=k(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),Zt=k(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]);function Qt(e=je){if(e===je)return $t;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function $t(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:+(e>t))}function en(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?$t:Qt(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));en(e,t,u,d,i)}let a=e[t],o=n,s=r;for(tn(e,n,t),i(e[r],a)>0&&tn(e,n,r);o<s;){for(tn(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[n],a)===0?tn(e,n,s):(++s,tn(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function tn(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function nn(e,t,n){if(e=Float64Array.from(Fe(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return Ye(e);if(t>=1)return Ze(e);var r,i=(r-1)*t,a=Math.floor(i),o=Ze(en(e,a).subarray(0,a+1));return o+(Ye(e.subarray(a+1))-o)*(i-a)}}function rn(e,t,n=Re){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function an(e,t){t===void 0&&(t=e,e=Ge);for(var n=0,r=t.length-1,i=t[0],a=Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return a[t](e-t)}}function on(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,Ne),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return on(e).unknown(t)},e=arguments.length?Array.from(e,Ne):[0,1],ze(n)}function sn(e){return Math.log(e)}function cn(e){return Math.exp(e)}function ln(e){return-Math.log(-e)}function un(e){return-Math.exp(-e)}function dn(e){return isFinite(e)?+(`1e`+e):e<0?0:e}function fn(e){return e===10?dn:e===Math.E?Math.exp:t=>e**+t}function pn(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 mn(e){return(t,n)=>-e(-t,n)}function hn(e){let t=e(sn,cn),n=t.domain,r=10,i,a;function o(){return i=pn(r),a=fn(r),n()[0]<0?(i=mn(i),a=mn(a),e(ln,un)):e(sn,cn),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s<o;c&&([o,s]=[s,o]);let l=i(o),u=i(s),d,f,p=e==null?10:+e,m=[];if(!(r%1)&&u-l<p){if(l=Math.floor(l),u=Math.ceil(u),o>0){for(;l<=u;++l)for(d=1;d<r;++d)if(f=l<0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}m.length*2<p&&(m=Pe(o,s,p))}else m=Pe(l,u,Math.min(u-l,p)).map(a);return c?m.reverse():m},t.tickFormat=(e,n)=>{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=ft(n)).precision==null&&(n.trim=!0),n=pt(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*r<r-.5&&(t*=r),t<=o?n(e):``}},t.nice=()=>n(Xe(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function gn(){let e=hn(Ue()).domain([1,10]);return e.copy=()=>Me(e,gn()).base(e.base()),mt.apply(e,arguments),e}function _n(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function vn(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function yn(e){var t=1,n=e(_n(t),vn(t));return n.constant=function(n){return arguments.length?e(_n(t=+n),vn(t)):t},ze(n)}function bn(){var e=yn(Ue());return e.copy=function(){return Me(e,bn()).constant(e.constant())},mt.apply(e,arguments)}function xn(e){return function(t){return t<0?-((-t)**+e):t**+e}}function Sn(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Cn(e){return e<0?-e*e:e*e}function wn(e){var t=e(Be,Be),n=1;function r(){return n===1?e(Be,Be):n===.5?e(Sn,Cn):e(xn(n),xn(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},ze(t)}function Tn(){var e=wn(Ue());return e.copy=function(){return Me(e,Tn()).exponent(e.exponent())},mt.apply(e,arguments),e}function En(){return Tn.apply(null,arguments).exponent(.5)}function Dn(e){return Math.sign(e)*e*e}function On(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function kn(){var e=Ie(),t=[0,1],n=!1,r;function i(t){var i=On(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(Dn(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,Ne)).map(Dn)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return kn(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},mt.apply(i,arguments),ze(i)}function An(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r<i;)n[r-1]=rn(e,r/i);return a}function a(e){return e==null||isNaN(e=+e)?r:t[Ve(n,e)]}return a.invertExtent=function(r){var i=t.indexOf(r);return i<0?[NaN,NaN]:[i>0?n[i-1]:e[0],i<n.length?n[i]:e[e.length-1]]},a.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(je),i()},a.range=function(e){return arguments.length?(t=Array.from(e),i()):t.slice()},a.unknown=function(e){return arguments.length?(r=e,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return An().domain(e).range(t).unknown(r)},mt.apply(a,arguments)}function jn(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(e){return e!=null&&e<=e?i[Ve(r,e,0,n)]:a}function s(){var i=-1;for(r=Array(n);++i<n;)r[i]=((i+1)*t-(i-n)*e)/(n+1);return o}return o.domain=function(n){return arguments.length?([e,t]=n,e=+e,t=+t,s()):[e,t]},o.range=function(e){return arguments.length?(n=(i=Array.from(e)).length-1,s()):i.slice()},o.invertExtent=function(a){var o=i.indexOf(a);return o<0?[NaN,NaN]:o<1?[e,r[0]]:o>=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return jn().domain([e,t]).range(i).unknown(a)},mt.apply(ze(o),arguments)}function Mn(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[Ve(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return Mn().domain(e).range(t).unknown(n)},mt.apply(i,arguments)}function Nn(){return mt.apply(at(rt,$e,it,tt,Qe,ct,st,Je,ot,et).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Pn(){var e=0,t=1,n,r,i,a,o=Be,s=!1,c;function l(e){return e==null||isNaN(e=+e)?c:o(i===0?.5:(e=(a(e)-n)*i,s?Math.max(0,Math.min(1,e)):e))}l.domain=function(o){return arguments.length?([e,t]=o,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(e){return arguments.length?(s=!!e,l):s},l.interpolator=function(e){return arguments.length?(o=e,l):o};function u(e){return function(t){var n,r;return arguments.length?([n,r]=t,o=e(n,r),l):[o(0),o(1)]}}return l.range=u(Ge),l.rangeRound=u(Le),l.unknown=function(e){return arguments.length?(c=e,l):c},function(o){return a=o,n=o(e),r=o(t),i=n===r?0:1/(r-n),l}}function Fn(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function In(){var e=ze(Pn()(Be));return e.copy=function(){return Fn(e,In())},ht.apply(e,arguments)}function Ln(){var e=hn(Pn()).domain([1,10]);return e.copy=function(){return Fn(e,Ln()).base(e.base())},ht.apply(e,arguments)}function Rn(){var e=yn(Pn());return e.copy=function(){return Fn(e,Rn()).constant(e.constant())},ht.apply(e,arguments)}function zn(){var e=wn(Pn());return e.copy=function(){return Fn(e,zn()).exponent(e.exponent())},ht.apply(e,arguments)}function Bn(){return zn.apply(null,arguments).exponent(.5)}function Vn(){var e=[],t=Be;function n(n){if(n!=null&&!isNaN(n=+n))return t((Ve(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(je),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map((n,r)=>t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>nn(e,r/t))},n.copy=function(){return Vn(t).domain(e)},ht.apply(n,arguments)}function Hn(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=Be,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*e<r*a?s:c),l(d?Math.max(0,Math.min(1,e)):e))}p.domain=function(l){return arguments.length?([e,t,n]=l,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p):[e,t,n]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(l=e,p):l};function m(e){return function(t){var n,r,i;return arguments.length?([n,r,i]=t,l=an(e,[n,r,i]),p):[l(0),l(.5),l(1)]}}return p.range=m(Ge),p.rangeRound=m(Le),p.unknown=function(e){return arguments.length?(f=e,p):f},function(l){return u=l,i=l(e),a=l(t),o=l(n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p}}function Un(){var e=ze(Hn()(Be));return e.copy=function(){return Fn(e,Un())},ht.apply(e,arguments)}function Wn(){var e=hn(Hn()).domain([.1,1,10]);return e.copy=function(){return Fn(e,Wn()).base(e.base())},ht.apply(e,arguments)}function Gn(){var e=yn(Hn());return e.copy=function(){return Fn(e,Gn()).constant(e.constant())},ht.apply(e,arguments)}function Kn(){var e=wn(Hn());return e.copy=function(){return Fn(e,Kn()).exponent(e.exponent())},ht.apply(e,arguments)}function qn(){return Kn.apply(null,arguments).exponent(.5)}function Jn(e,t,n){var r=null,i=P(!0),a=null,o=Tt,s=null,c=dt(l);e=typeof e==`function`?e:e===void 0?Ft:P(+e),t=typeof t==`function`?t:P(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?It:P(+n);function l(l){var u,d,f,p=(l=xt(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h)if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return Lt().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:P(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:P(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:P(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:P(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:P(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var Yn={draw(e,t){let n=vt(t/bt);e.moveTo(n,0),e.arc(0,0,n,0,yt)}},Xn={draw(e,t){let n=vt(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},Zn=vt(1/3),Qn=Zn*2,$n={draw(e,t){let n=vt(t/Qn),r=n*Zn;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},er={draw(e,t){let n=vt(t),r=-n/2;e.rect(r,r,n,n)}},tr=.8908130915292852,nr=_t(bt/10)/_t(7*bt/10),rr=_t(yt/10)*nr,ir=-gt(yt/10)*nr,ar={draw(e,t){let n=vt(t*tr),r=rr*n,i=ir*n;e.moveTo(0,-n),e.lineTo(r,i);for(let t=1;t<5;++t){let a=yt*t/5,o=gt(a),s=_t(a);e.lineTo(s*n,-o*n),e.lineTo(o*r-s*i,s*r+o*i)}e.closePath()}},or=vt(3),sr={draw(e,t){let n=-vt(t/(or*3));e.moveTo(0,n*2),e.lineTo(-or*n,-n),e.lineTo(or*n,-n),e.closePath()}},cr=-.5,lr=vt(3)/2,ur=1/vt(12),dr=(ur/2+1)*3,fr={draw(e,t){let n=vt(t/dr),r=n/2,i=n*ur,a=r,o=n*ur+n,s=-a,c=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,c),e.lineTo(cr*r-lr*i,lr*r+cr*i),e.lineTo(cr*a-lr*o,lr*a+cr*o),e.lineTo(cr*s-lr*c,lr*s+cr*c),e.lineTo(cr*r+lr*i,cr*i-lr*r),e.lineTo(cr*a+lr*o,cr*o-lr*a),e.lineTo(cr*s+lr*c,cr*c-lr*s),e.closePath()}};function pr(e,t){let n=null,r=dt(i);e=typeof e==`function`?e:P(e||Yn),t=typeof t==`function`?t:P(t===void 0?64:+t);function i(){let i;if(n||=i=r(),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),i)return n=null,i+``||null}return i.type=function(t){return arguments.length?(e=typeof t==`function`?t:P(t),i):e},i.size=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),i):t},i.context=function(e){return arguments.length?(n=e??null,i):n},i}function mr(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n<o;++n)for(i=a,a=e[t[n]],r=0;r<s;++r)a[r][1]+=a[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function hr(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function gr(e,t){return e[t]}function _r(e){let t=[];return t.key=e,t}function vr(){var e=P([]),t=hr,n=mr,r=gr;function i(i){var a=Array.from(e.apply(this,arguments),_r),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o<s;++o)(a[o][c]=[0,+r(e,a[o].key,c,i)]).data=e;for(o=0,l=xt(t(a));o<s;++o)a[l[o]].index=o;return n(a,l),a}return i.keys=function(t){return arguments.length?(e=typeof t==`function`?t:P(Array.from(t)),i):e},i.value=function(e){return arguments.length?(r=typeof e==`function`?e:P(+e),i):r},i.order=function(e){return arguments.length?(t=e==null?hr:typeof e==`function`?e:P(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(n=e??mr,i):n},i}function yr(e,t){if((r=e.length)>0){for(var n,r,i=0,a=e[0].length,o;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}mr(e,t)}}function br(e,t){if((i=e.length)>0){for(var n=0,r=e[t[0]],i,a=r.length;n<a;++n){for(var o=0,s=0;o<i;++o)s+=e[o][n][1]||0;r[n][1]+=r[n][0]=-s/2}mr(e,t)}}function xr(e,t){if(!(!((o=e.length)>0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r<a;++r){for(var s=0,c=0,l=0;s<o;++s){for(var u=e[t[s]],d=u[r][1]||0,f=(d-(u[r-1][1]||0))/2,p=0;p<s;++p){var m=e[t[p]],h=m[r][1]||0,g=m[r-1][1]||0;f+=h-g}c+=d,l+=f*d}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,mr(e,t)}}var I=e(h(),1),L=_(),Sr=`studio:analytics:onboarding-dismissed:v2`;function Cr(){let[e,t]=(0,I.useState)(null);return(0,I.useEffect)(()=>{try{t(window.localStorage.getItem(Sr)===`1`)}catch{t(!0)}},[]),e===!1?(0,L.jsxs)(`div`,{role:`status`,className:`mb-3 flex items-start gap-3 rounded-md border border-border bg-muted/30 px-3 py-2 text-sm text-muted-foreground`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(`span`,{className:`font-medium text-foreground`,children:`Tip:`}),` Click a legend entry to isolate one node, `,(0,L.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`⌘`}),` / `,(0,L.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`Ctrl`}),`-click to compare a few. In the storage charts, click a bar segment to pin that table's trend. In the replication heatmap, click a cell to see that node pair's latency over time.`]}),(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:()=>{try{window.localStorage.setItem(Sr,`1`)}catch{}t(!0)},"aria-label":`Dismiss tip`,className:`-mt-1 h-7 w-7 shrink-0`,children:(0,L.jsx)(le,{className:`h-4 w-4`})})]}):null}var wr=(0,I.createContext)(null);function Tr({value:e,children:t}){let n=(0,I.useMemo)(()=>e,[e.timeRange.startTime,e.timeRange.endTime,e.bucketMs,e.instanceParams.entityId,e.instanceParams.instanceClient,e.syncId]);return(0,L.jsx)(wr.Provider,{value:n,children:t})}function Er(){let e=(0,I.useContext)(wr);if(!e)throw Error(`useAnalyticsContext must be used inside <AnalyticsProvider>`);return e}function Dr(){return(0,I.useContext)(wr)?.syncId}function Or(e){let t=Dr();return t===void 0?{}:{syncId:e?`${t}:expanded`:t,syncMethod:`value`}}var kr=qt;function Ar(e){let t=s(),n=(0,I.useCallback)(t=>Array.isArray(t.queryKey)&&t.queryKey[0]===kr&&t.queryKey[1]===e,[e]),r=(0,I.useCallback)(e=>{let r=o.batchCalls(e);return t.getQueryCache().subscribe(e=>{!e?.query||!n(e.query)||r()})},[t,n]),i=(0,I.useCallback)(()=>{for(let e of t.getQueryCache().getAll())if(n(e)&&e.state.fetchStatus===`fetching`)return!0;return!1},[t,n]),a=(0,I.useCallback)(()=>{let e=null;for(let r of t.getQueryCache().getAll())n(r)&&r.state.dataUpdatedAt>0&&(e===null||r.state.dataUpdatedAt>e)&&(e=r.state.dataUpdatedAt);return e},[t,n]),c=(0,I.useSyncExternalStore)(r,i,i),l=(0,I.useSyncExternalStore)(r,a,a),[u,d]=(0,I.useState)(()=>Date.now());return(0,I.useEffect)(()=>{let e=!1,t,n=()=>{if(e)return;d(Date.now());let r=l===null?0:Date.now()-l,i=r<6e4?1e3:r<6e5?5e3:3e4;t=window.setTimeout(n,i)};return t=window.setTimeout(n,1e3),()=>{e=!0,t!==void 0&&window.clearTimeout(t)}},[l]),{isFetching:c,lastFetchedAt:l,now:u}}function jr(e,t){if(e===null)return null;let n=Math.max(0,Math.floor((t-e)/1e3));if(n<5)return`just now`;if(n<60)return`${n}s ago`;let r=Math.floor(n/60);return r<60?`${r}m ago`:`${Math.floor(r/60)}h ago`}function Mr({presetId:e,onPresetChange:t,refreshMs:n,onRefreshChange:r,onManualRefresh:o}){let{instanceParams:s}=Er(),{isFetching:c,lastFetchedAt:l,now:u}=Ar(s.entityId),d=jr(l,u);return(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[d&&(0,L.jsxs)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,title:l?new Date(l).toLocaleString():void 0,"aria-label":l?`Last updated ${new Date(l).toLocaleString()}`:void 0,children:[`Updated `,d]}),(0,L.jsxs)(oe,{value:e,onValueChange:e=>t(e),children:[(0,L.jsx)(re,{className:`w-[180px]`,children:(0,L.jsx)(ae,{})}),(0,L.jsx)(ne,{children:Ee.map(e=>(0,L.jsx)(ee,{value:e.id,children:e.label},e.id))})]}),(0,L.jsxs)(oe,{value:String(n),onValueChange:e=>r(Number(e)),children:[(0,L.jsx)(re,{className:`w-[100px]`,children:(0,L.jsx)(ae,{})}),(0,L.jsx)(ne,{children:Ae.map(e=>(0,L.jsx)(ee,{value:String(e.value),children:e.label},e.value))})]}),(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:o,disabled:c,"aria-busy":c,"aria-label":c?`Refreshing…`:`Refresh now`,title:c?`Refreshing…`:`Refresh now`,children:(0,L.jsx)(Ce,{className:i(`h-4 w-4`,c&&`animate-spin`)})})]})}var Nr=[`utilization`,`cpu-usage`,`memory`,`main-thread-utilization`],Pr=30*6e4;function Fr(e){return e?.response?.status??e?.status}function Ir(e){let t=Fr(e);return t===401||t===403}function Lr(e){let t=Fr(e);return typeof t==`number`&&t>=400&&t<500&&!Ir(e)}function Rr(e){let t=l({queryKey:[`analytics-capability`,e.entityId],queryFn:async()=>{let t=Date.now(),n=t-5*6e4,r=null;for(let i of Nr)try{return await e.instanceClient.post(`/`,{operation:`get_analytics`,metric:i,start_time:n,end_time:t}),!0}catch(e){if(r=e,!Lr(e))throw e}throw r instanceof Error?r:Error(`Analytics probe failed for all metrics`)},retry:(e,t)=>!Ir(t)&&e<2,retryDelay:e=>Math.min(1e3*2**e,8e3),staleTime:Pr,gcTime:Pr});return{supported:t.isSuccess===!0,error:t.error,isAuthError:t.error!=null&&Ir(t.error),isLoading:t.isLoading,isFetching:t.isFetching,retry:()=>{t.refetch()}}}var zr=new Set([`time`,`node`]),Br=Object.freeze([]);function Vr({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,requiredFields:a,bucketMs:o}){let s=l({...Kt({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,bucketMs:o}),staleTime:1/0,gcTime:6e4,refetchOnWindowFocus:!1,refetchOnReconnect:!1,placeholderData:f}),c=s.data??Br,{fieldKeys:u,missingFields:d}=(0,I.useMemo)(()=>{let e=new Set;for(let t of c)for(let n of Object.keys(t))zr.has(n)||e.add(n);let t=[];if(a&&c.length>0)for(let n of a)e.has(n)||t.push(n);return{fieldKeys:e,missingFields:t}},[c,a]);return(0,I.useEffect)(()=>{!s.isLoading&&c.length===0&&d.length>0&&console.warn(`[analytics] panel rendered empty with missing fields`,{metric:e,instanceId:i.entityId,missingFields:d})},[c.length,s.isLoading,e,i.entityId,d]),{data:c,isLoading:s.isLoading,isError:s.isError,error:s.error,isEmpty:c.length===0,fieldKeys:u,missingFields:d,isPlaceholderData:s.isPlaceholderData,refetch:s.refetch}}var Hr=[`var(--chart-node-1)`,`var(--chart-node-2)`,`var(--chart-node-3)`,`var(--chart-node-4)`,`var(--chart-node-5)`,`var(--chart-node-6)`,`var(--chart-node-7)`,`var(--chart-node-8)`,`var(--chart-node-9)`,`var(--chart-node-10)`];function Ur(e,t){return Hr[[...t].sort().indexOf(e)%Hr.length]}function Wr(e){let t=e.indexOf(`.`);return t===-1?e:e.slice(0,t)}function Gr(e){let t=new Map,n=[...new Set(e)];for(let e=1;n.length>0;e++){let r=new Map;for(let t of n){let n=t.split(`.`).slice(0,e).join(`.`),i=r.get(n);i?i.push(t):r.set(n,[t])}n=[];for(let[i,a]of r){if(a.length===1){t.set(a[0],i);continue}for(let r of a)r.split(`.`).length<=e?t.set(r,r):n.push(r)}}return t}function Kr({nodeIds:e,isActive:t,onClickNode:n,disabled:r}){let i=Gr(e);return(0,L.jsxs)(`div`,{role:`group`,"aria-label":r?`Node filter (unavailable on this tab)`:`Node filter`,className:`flex flex-wrap justify-center gap-x-4 gap-y-1 pt-2 text-[11px]`,children:[r&&(0,L.jsx)(`span`,{className:`sr-only`,"aria-live":`polite`,children:`Per-node filter is unavailable on this tab. Buttons remain visible to preserve selection state.`}),e.map(a=>{let o=Ur(a,e),s=t(a);return(0,L.jsxs)(`button`,{type:`button`,"aria-pressed":s,"aria-disabled":r?`true`:void 0,title:r?`Per-node filter unavailable on this tab's panels`:a,onClick:e=>{r||n(a,e.ctrlKey||e.metaKey)},className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:r?{color:o,opacity:.5,cursor:`not-allowed`}:{color:o,opacity:s?1:.3},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:o}}),(0,L.jsx)(`span`,{children:i.get(a)??a})]},a)})]})}function qr(e){let[t,n]=(0,I.useState)(null),r=(0,I.useRef)(e);return r.current=e,{isActive:(0,I.useCallback)(e=>t===null||t.has(e),[t]),handleClick:(0,I.useCallback)((e,t)=>{let i=r.current;n(n=>{if(t){if(n===null)return new Set(i.filter(t=>t!==e));let t=new Set(n);if(t.has(e)){if(t.delete(e),t.size===0)return null}else if(t.add(e),t.size===i.length)return null;return t}return n!==null&&n.size===1&&n.has(e)?null:new Set([e])})},[]),activeSet:t}}function Jr(e){let{isActive:t,handleClick:n,activeSet:r}=qr(e);return{isActive:t,handleLegendClick:n,activeNodes:r}}function Yr(e,t){let{isActive:n,handleLegendClick:r}=Jr(t);return{data:(0,I.useMemo)(()=>({...e,series:e.series.map(e=>e.node===void 0?e:{...e,label:Wr(e.node),color:Ur(e.node,t)}).filter(e=>e.node===void 0||n(e.node))}),[e,t,n]),isActive:n,handleLegendClick:r}}function Xr(e,t,n){let r=(0,I.useRef)([]);(0,I.useEffect)(()=>{r.current=r.current.slice(0,e.length)},[e.length]);let i=t===null?-1:e.indexOf(t),a=i>=0?i:0;function o(t,i){if(t.key===`Enter`||t.key===` `){t.preventDefault(),n(e[i]);return}if(t.key!==`ArrowLeft`&&t.key!==`ArrowRight`&&t.key!==`ArrowDown`&&t.key!==`ArrowUp`)return;t.preventDefault();let a=e.length;if(a===0)return;let o=(i+(t.key===`ArrowRight`||t.key===`ArrowDown`?1:-1)+a)%a;r.current[o]?.focus(),n(e[o])}function s(t){return{role:`radio`,"aria-checked":t===i,tabIndex:t===a?0:-1,ref:e=>{r.current[t]=e},onKeyDown:e=>o(e,t),onClick:()=>n(e[t])}}return{getRadioProps:s,selectedIdx:i}}var Zr=`var(--color-text-secondary)`;function Qr({dimensionValues:e,selected:t,onSelect:n,otherKey:r,colorFor:i,ariaLabel:a=`Dimension selector`}){let{getRadioProps:o}=Xr(e,t,n);return e.length===0&&!r?null:(0,L.jsxs)(`div`,{role:`radiogroup`,"aria-label":a,"data-testid":`dimension-chip-row`,className:`flex flex-wrap justify-center gap-x-3 gap-y-1 pt-2 text-[11px]`,children:[e.map((e,n)=>{let r=e===t,a=i?i(e):Zr;return(0,L.jsxs)(`button`,{type:`button`,...o(n),"data-testid":`dimension-chip`,"data-value":e,title:`Click to select`,className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:{color:a,opacity:r?1:.55},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:a}}),(0,L.jsx)(`span`,{children:e})]},e)}),r&&(0,L.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":!1,"aria-disabled":`true`,tabIndex:-1,"data-testid":`dimension-chip`,"data-value":r,title:`Aggregate of smaller buckets; not selectable.`,className:`inline-flex items-center gap-1.5 cursor-not-allowed border-none bg-transparent p-0`,style:{color:Zr,opacity:.4},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:Zr}}),(0,L.jsx)(`span`,{children:r})]})]})}var $r=`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`.split(`.`);function ei(e){return typeof e==`string`&&$r.includes(e)}var ti=new Set(`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`.split(`.`));function ni(e){return typeof e==`string`&&ti.has(e)}function ri(e){return typeof e==`string`&&e.startsWith(`data-`)}function ii(e){if(typeof e!=`object`||!e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(ni(n)||ri(n))&&(t[n]=e[n]);return t}function ai(e){if(e==null)return null;if((0,I.isValidElement)(e)&&typeof e.props==`object`&&e.props!==null){var t=e.props;return ii(t)}return typeof e==`object`&&!Array.isArray(e)?ii(e):null}function oi(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(ni(n)||ri(n)||ei(n))&&(t[n]=e[n]);return t}function si(e){return e==null?null:(0,I.isValidElement)(e)?oi(e.props):typeof e==`object`&&!Array.isArray(e)?oi(e):null}var ci=[`children`,`width`,`height`,`viewBox`,`className`,`style`,`title`,`desc`];function li(){return li=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},li.apply(null,arguments)}function ui(e,t){if(e==null)return{};var n,r,i=di(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function di(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var fi=(0,I.forwardRef)((e,t)=>{var n=e.children,i=e.width,a=e.height,o=e.viewBox,s=e.className,c=e.style,l=e.title,u=e.desc,d=ui(e,ci),f=o||{width:i,height:a,x:0,y:0},p=r(`recharts-surface`,s);return I.createElement(`svg`,li({},oi(d),{className:p,width:i,height:a,style:c,viewBox:`${f.x} ${f.y} ${f.width} ${f.height}`,ref:t}),I.createElement(`title`,null,l),I.createElement(`desc`,null,u),n)}),pi=[`children`,`className`];function mi(){return mi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},mi.apply(null,arguments)}function hi(e,t){if(e==null)return{};var n,r,i=gi(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function gi(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var _i=I.forwardRef((e,t)=>{var n=e.children,i=e.className,a=hi(e,pi),o=r(`recharts-layer`,i);return I.createElement(`g`,mi({className:o},oi(a),{ref:t}),n)});function vi(e){return e===`__proto__`}var yi=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function bi(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e===``||e.startsWith(`.`)||e.endsWith(`.`)?!1:yi.test(e);default:return!1}}function xi(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}function Si(e){if(e==null)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(Si).join(`,`);let t=String(e);return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function Ci(e){if(Array.isArray(e))return e.map(xi);if(typeof e==`symbol`)return[e];e=Si(e);let t=[],n=e.length;if(n===0)return t;let r=0,i=``,a=``,o=!1;for(e.charCodeAt(0)===46&&t.push(``);r<n;){let s=e[r];if(a)s===`\\`&&r+1<n?(r++,i+=e[r]):s===a?a=``:i+=s;else if(o)s===`"`||s===`'`?a=s:s===`]`?(o=!1,t.push(i),i=``):i+=s;else if(s===`[`)o=!0,i&&=(t.push(i),``);else if(s===`.`){i&&=(t.push(i),``);let n=e[r+1];(n===void 0||n===`.`)&&t.push(``)}else i+=s;r++}return i&&t.push(i),t}function wi(e,t,n){if(e==null)return n;switch(typeof t){case`string`:{if(vi(t))return n;let r=e[t];return r===void 0?bi(t)&&!Object.hasOwn(e,t)?wi(e,Ci(t),n):n:r}case`number`:case`symbol`:{typeof t==`number`&&(t=xi(t));let r=e[t];return r===void 0?n:r}default:{if(Array.isArray(t))return Ti(e,t,n);if(t=Object.is(t?.valueOf(),-0)?`-0`:String(t),vi(t))return n;let r=e[t];return r===void 0?n:r}}}function Ti(e,t,n){if(t.length===0)return n;let r=e;for(let e=0;e<t.length;e++){if(r==null||vi(t[e]))return n;r=r[t[e]]}return r===void 0?n:r}var Ei=4;function Di(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ei),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function Oi(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+Di(i)+n},``)}var ki=e=>e===0?0:e>0?1:-1,Ai=e=>typeof e==`number`&&e!=+e,ji=e=>typeof e==`string`&&e.length>1&&e.indexOf(`%`)===e.length-1,R=e=>(typeof e==`number`||e instanceof Number)&&!Ai(e),Mi=e=>R(e)||typeof e==`string`,Ni=0,Pi=e=>{var t=++Ni;return`${e||``}${t}`},Fi=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!R(e)&&typeof e!=`string`)return n;var i;if(ji(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return Ai(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},Ii=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;r<t;r++)if(!n[String(e[r])])n[String(e[r])]=!0;else return!0;return!1};function z(e,t,n){return R(e)&&R(t)?Di(e+n*(t-e)):t}function Li(e,t,n){if(!(!e||!e.length))return e.find(e=>e&&(typeof t==`function`?t(e):wi(e,t))===n)}var B=e=>e==null,Ri=e=>B(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function zi(e){return e!=null}function Bi(){}function Vi(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}}function Hi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ui(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Hi(Object(n),!0).forEach(function(t){Wi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Hi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Wi(e,t,n){return(t=Gi(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Gi(e){var t=Ki(e,`string`);return typeof t==`symbol`?t:t+``}function Ki(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var qi=e=>{var t=e.viewBox,n=e.position,r=e.offset,i=r===void 0?0:r,a=e.parentViewBox,o=e.clamp,s=Vi(t),c=s.x,l=s.y,u=s.height,d=s.upperWidth,f=s.lowerWidth,p=c,m=c+(d-f)/2,h=(p+m)/2,g=(d+f)/2,_=p+d/2,v=u>=0?1:-1,y=v*i,b=v>0?`end`:`start`,x=v>0?`start`:`end`,S=d>=0?1:-1,C=S*i,w=S>0?`end`:`start`,T=S>0?`start`:`end`,E=a;if(n===`top`){var D={x:p+d/2,y:l-y,horizontalAnchor:`middle`,verticalAnchor:b};return o&&E&&(D.height=Math.max(l-E.y,0),D.width=d),D}if(n===`bottom`){var O={x:m+f/2,y:l+u+y,horizontalAnchor:`middle`,verticalAnchor:x};return o&&E&&(O.height=Math.max(E.y+E.height-(l+u),0),O.width=f),O}if(n===`left`){var k={x:h-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`};return o&&E&&(k.width=Math.max(k.x-E.x,0),k.height=u),k}if(n===`right`){var A={x:h+g+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`};return o&&E&&(A.width=Math.max(E.x+E.width-A.x,0),A.height=u),A}var j=o&&E?{width:g,height:u}:{};return n===`insideLeft`?Ui({x:h+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`},j):n===`insideRight`?Ui({x:h+g-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`},j):n===`insideTop`?Ui({x:p+d/2,y:l+y,horizontalAnchor:`middle`,verticalAnchor:x},j):n===`insideBottom`?Ui({x:m+f/2,y:l+u-y,horizontalAnchor:`middle`,verticalAnchor:b},j):n===`insideTopLeft`?Ui({x:p+C,y:l+y,horizontalAnchor:T,verticalAnchor:x},j):n===`insideTopRight`?Ui({x:p+d-C,y:l+y,horizontalAnchor:w,verticalAnchor:x},j):n===`insideBottomLeft`?Ui({x:m+C,y:l+u-y,horizontalAnchor:T,verticalAnchor:b},j):n===`insideBottomRight`?Ui({x:m+f-C,y:l+u-y,horizontalAnchor:w,verticalAnchor:b},j):n&&typeof n==`object`&&(R(n.x)||ji(n.x))&&(R(n.y)||ji(n.y))?Ui({x:c+Fi(n.x,g),y:l+Fi(n.y,u),horizontalAnchor:`end`,verticalAnchor:`end`},j):Ui({x:_,y:l+u/2,horizontalAnchor:`middle`,verticalAnchor:`middle`},j)},Ji=[`top`,`left`,`right`,`bottom`];function Yi(e){return e==null?!1:typeof e==`object`||Ji.includes(e)}var Xi=(0,I.createContext)(null),Zi=()=>(0,I.useContext)(Xi),Qi=[`type`,`size`,`sizeType`];function $i(){return $i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$i.apply(null,arguments)}function ea(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ta(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ea(Object(n),!0).forEach(function(t){na(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ea(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function na(e,t,n){return(t=ra(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ra(e){var t=ia(e,`string`);return typeof t==`symbol`?t:t+``}function ia(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function aa(e,t){if(e==null)return{};var n,r,i=oa(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function oa(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var sa={symbolCircle:Yn,symbolCross:Xn,symbolDiamond:$n,symbolSquare:er,symbolStar:ar,symbolTriangle:sr,symbolWye:fr},ca=Math.PI/180,la=e=>sa[`symbol${Ri(e)}`]||Yn,ua=(e,t,n)=>{if(t===`area`)return e;switch(n){case`cross`:return 5*e*e/9;case`diamond`:return .5*e*e/Math.sqrt(3);case`square`:return e*e;case`star`:var r=18*ca;return 1.25*e*e*(Math.tan(r)-Math.tan(r*2)*Math.tan(r)**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}},da=(e,t)=>{sa[`symbol${Ri(e)}`]=t},fa=e=>{var t=e.type,n=t===void 0?`circle`:t,i=e.size,a=i===void 0?64:i,o=e.sizeType,s=o===void 0?`area`:o,c=ta(ta({},aa(e,Qi)),{},{type:n,size:a,sizeType:s}),l=`circle`;typeof n==`string`&&(l=n);var u=()=>{var e=la(l),t=pr().type(e).size(ua(a,s,l))();if(t!==null)return t},d=c.className,f=c.cx,p=c.cy,m=oi(c);return R(f)&&R(p)&&R(a)?I.createElement(`path`,$i({},m,{className:r(`recharts-symbols`,d),transform:`translate(${f}, ${p})`,d:u()})):null};fa.registerSymbol=da;var pa=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,ma=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,I.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{ei(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},ha=(e,t,n)=>r=>(e(t,n,r),null),ga=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];ei(i)&&typeof a==`function`&&(r||={},r[i]=ha(a,t,n))}),r};function _a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function va(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?_a(Object(n),!0).forEach(function(t){ya(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_a(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ya(e,t,n){return(t=ba(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ba(e){var t=xa(e,`string`);return typeof t==`symbol`?t:t+``}function xa(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Sa(e,t){var n=va({},e),r=t;return Object.keys(t).reduce((e,t)=>(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function Ca(){return Ca=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ca.apply(null,arguments)}function wa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ta(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?wa(Object(n),!0).forEach(function(t){Ea(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wa(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ea(e,t,n){return(t=Da(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Da(e){var t=Oa(e,`string`);return typeof t==`symbol`?t:t+``}function Oa(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var ka=32,Aa={align:`center`,iconSize:14,inactiveColor:`#ccc`,layout:`horizontal`,verticalAlign:`middle`,labelStyle:{}};function ja(e){if(typeof e==`object`&&e&&`strokeDasharray`in e)return String(e.strokeDasharray)}function Ma(e){var t=e.data,n=e.iconType,r=e.inactiveColor,i=ka/2,a=ka/6,o=ka/3,s=t.inactive?r:t.color,c=n??t.type;if(c===`none`)return null;if(c===`plainline`)return I.createElement(`line`,{strokeWidth:4,fill:`none`,stroke:s,strokeDasharray:ja(t.payload),x1:0,y1:i,x2:ka,y2:i,className:`recharts-legend-icon`});if(c===`line`)return I.createElement(`path`,{strokeWidth:4,fill:`none`,stroke:s,d:`M0,${i}h${o}
|
|
1
|
+
import{a as e,r as t,t as n}from"./rolldown-runtime-CNC7AqOf.js";import{j as r}from"./vendor-core-xUefYpUO.js";import{n as i,t as a}from"./button-oQgW4t1x.js";import{B as o,I as s,M as c,N as l,S as u,T as d,V as f,j as p,x as m}from"./vendor-tanstack-0SjDjtT0.js";import{a as h}from"./vendor-datadog-DyjkTkvg.js";import{n as g,r as _}from"./vendor-react-DeL8Gtgl.js";import{Rt as v,a as y,i as b,n as x,r as S,t as C}from"./vendor-ui-Bj22lHGK.js";import{a as w,i as T,n as E,r as D,t as O}from"./card-BHplR9Xd.js";import{t as k}from"./createLucideIcon-BDx8noBh.js";import{c as A,f as j,g as M,h as N,i as ee,l as te,n as ne,o as re,p as ie,s as ae,t as oe,u as se}from"./select-y6NKMkG_.js";import{r as ce,t as le}from"./x-C3uc0qMD.js";import{a as ue,i as de,n as fe,r as pe,t as me}from"./tabs-CxZ4MxTw.js";import{t as he}from"./errorText-NpBmvk9I.js";import{o as ge,r as _e}from"./pollUnlessForbidden-HHdQZW1N.js";import{Bt as ve,Et as ye,Ht as be,I as xe,It as Se,Qn as Ce,a as we,hn as Te,i as Ee,mn as De,n as Oe,pn as ke,r as Ae}from"./index-Dy3uDGXb.js";import{_ as je,a as Me,c as Ne,f as Pe,h as Fe,i as Ie,l as Le,m as Re,n as ze,o as Be,p as Ve,r as He,s as Ue,t as We,u as Ge}from"./linear-Clj7BvYC.js";import{n as Ke,t as qe}from"./ordinal-BeZAVUpG.js";import{C as Je,D as Ye,E as Xe,O as Ze,_ as Qe,a as $e,i as et,l as tt,n as nt,o as rt,s as it,t as at,w as ot,x as st,y as ct}from"./time-V48BpMN7.js";import{n as lt,t as ut}from"./band-CcbG6rPL.js";import{n as P,t as dt}from"./path-BWPyau1x.js";import{r as ft,t as pt}from"./defaultLocale-C8Fc0cco.js";import{n as mt,t as ht}from"./init-Cs1-1e_z.js";import{a as gt,d as _t,f as vt,p as yt,u as bt}from"./math-Bi_r_ZWc.js";import{t as xt}from"./array-BifhSqXX.js";import{a as St,c as Ct,d as wt,h as Tt,i as Et,l as Dt,m as Ot,n as kt,o as At,p as jt,r as Mt,s as Nt,t as Pt}from"./step-D4Q0arzR.js";import{n as Ft,r as It,t as Lt}from"./line-BMvOdiSv.js";import{a as Rt,c as zt,d as Bt,i as F,l as Vt,r as Ht,s as Ut,t as Wt,u as Gt}from"./react-redux-Co6ou4E8.js";import{r as Kt,t as qt}from"./getAnalytics-ChWFgfXd.js";var Jt=k(`clipboard-copy`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2`,key:`4jdomd`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v4`,key:`3hqy98`}],[`path`,{d:`M21 14H11`,key:`1bme5i`}],[`path`,{d:`m15 10-4 4 4 4`,key:`5dvupr`}]]),Yt=k(`file-spreadsheet`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]),Xt=k(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),Zt=k(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]);function Qt(e=je){if(e===je)return $t;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function $t(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:+(e>t))}function en(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?$t:Qt(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));en(e,t,u,d,i)}let a=e[t],o=n,s=r;for(tn(e,n,t),i(e[r],a)>0&&tn(e,n,r);o<s;){for(tn(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[n],a)===0?tn(e,n,s):(++s,tn(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function tn(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function nn(e,t,n){if(e=Float64Array.from(Fe(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return Ye(e);if(t>=1)return Ze(e);var r,i=(r-1)*t,a=Math.floor(i),o=Ze(en(e,a).subarray(0,a+1));return o+(Ye(e.subarray(a+1))-o)*(i-a)}}function rn(e,t,n=Re){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function an(e,t){t===void 0&&(t=e,e=Ge);for(var n=0,r=t.length-1,i=t[0],a=Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return a[t](e-t)}}function on(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,Ne),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return on(e).unknown(t)},e=arguments.length?Array.from(e,Ne):[0,1],ze(n)}function sn(e){return Math.log(e)}function cn(e){return Math.exp(e)}function ln(e){return-Math.log(-e)}function un(e){return-Math.exp(-e)}function dn(e){return isFinite(e)?+(`1e`+e):e<0?0:e}function fn(e){return e===10?dn:e===Math.E?Math.exp:t=>e**+t}function pn(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 mn(e){return(t,n)=>-e(-t,n)}function hn(e){let t=e(sn,cn),n=t.domain,r=10,i,a;function o(){return i=pn(r),a=fn(r),n()[0]<0?(i=mn(i),a=mn(a),e(ln,un)):e(sn,cn),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s<o;c&&([o,s]=[s,o]);let l=i(o),u=i(s),d,f,p=e==null?10:+e,m=[];if(!(r%1)&&u-l<p){if(l=Math.floor(l),u=Math.ceil(u),o>0){for(;l<=u;++l)for(d=1;d<r;++d)if(f=l<0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}m.length*2<p&&(m=Pe(o,s,p))}else m=Pe(l,u,Math.min(u-l,p)).map(a);return c?m.reverse():m},t.tickFormat=(e,n)=>{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=ft(n)).precision==null&&(n.trim=!0),n=pt(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*r<r-.5&&(t*=r),t<=o?n(e):``}},t.nice=()=>n(Xe(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function gn(){let e=hn(Ue()).domain([1,10]);return e.copy=()=>Me(e,gn()).base(e.base()),mt.apply(e,arguments),e}function _n(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function vn(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function yn(e){var t=1,n=e(_n(t),vn(t));return n.constant=function(n){return arguments.length?e(_n(t=+n),vn(t)):t},ze(n)}function bn(){var e=yn(Ue());return e.copy=function(){return Me(e,bn()).constant(e.constant())},mt.apply(e,arguments)}function xn(e){return function(t){return t<0?-((-t)**+e):t**+e}}function Sn(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Cn(e){return e<0?-e*e:e*e}function wn(e){var t=e(Be,Be),n=1;function r(){return n===1?e(Be,Be):n===.5?e(Sn,Cn):e(xn(n),xn(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},ze(t)}function Tn(){var e=wn(Ue());return e.copy=function(){return Me(e,Tn()).exponent(e.exponent())},mt.apply(e,arguments),e}function En(){return Tn.apply(null,arguments).exponent(.5)}function Dn(e){return Math.sign(e)*e*e}function On(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function kn(){var e=Ie(),t=[0,1],n=!1,r;function i(t){var i=On(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(Dn(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,Ne)).map(Dn)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return kn(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},mt.apply(i,arguments),ze(i)}function An(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r<i;)n[r-1]=rn(e,r/i);return a}function a(e){return e==null||isNaN(e=+e)?r:t[Ve(n,e)]}return a.invertExtent=function(r){var i=t.indexOf(r);return i<0?[NaN,NaN]:[i>0?n[i-1]:e[0],i<n.length?n[i]:e[e.length-1]]},a.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(je),i()},a.range=function(e){return arguments.length?(t=Array.from(e),i()):t.slice()},a.unknown=function(e){return arguments.length?(r=e,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return An().domain(e).range(t).unknown(r)},mt.apply(a,arguments)}function jn(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(e){return e!=null&&e<=e?i[Ve(r,e,0,n)]:a}function s(){var i=-1;for(r=Array(n);++i<n;)r[i]=((i+1)*t-(i-n)*e)/(n+1);return o}return o.domain=function(n){return arguments.length?([e,t]=n,e=+e,t=+t,s()):[e,t]},o.range=function(e){return arguments.length?(n=(i=Array.from(e)).length-1,s()):i.slice()},o.invertExtent=function(a){var o=i.indexOf(a);return o<0?[NaN,NaN]:o<1?[e,r[0]]:o>=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return jn().domain([e,t]).range(i).unknown(a)},mt.apply(ze(o),arguments)}function Mn(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[Ve(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return Mn().domain(e).range(t).unknown(n)},mt.apply(i,arguments)}function Nn(){return mt.apply(at(rt,$e,it,tt,Qe,ct,st,Je,ot,et).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Pn(){var e=0,t=1,n,r,i,a,o=Be,s=!1,c;function l(e){return e==null||isNaN(e=+e)?c:o(i===0?.5:(e=(a(e)-n)*i,s?Math.max(0,Math.min(1,e)):e))}l.domain=function(o){return arguments.length?([e,t]=o,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(e){return arguments.length?(s=!!e,l):s},l.interpolator=function(e){return arguments.length?(o=e,l):o};function u(e){return function(t){var n,r;return arguments.length?([n,r]=t,o=e(n,r),l):[o(0),o(1)]}}return l.range=u(Ge),l.rangeRound=u(Le),l.unknown=function(e){return arguments.length?(c=e,l):c},function(o){return a=o,n=o(e),r=o(t),i=n===r?0:1/(r-n),l}}function Fn(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function In(){var e=ze(Pn()(Be));return e.copy=function(){return Fn(e,In())},ht.apply(e,arguments)}function Ln(){var e=hn(Pn()).domain([1,10]);return e.copy=function(){return Fn(e,Ln()).base(e.base())},ht.apply(e,arguments)}function Rn(){var e=yn(Pn());return e.copy=function(){return Fn(e,Rn()).constant(e.constant())},ht.apply(e,arguments)}function zn(){var e=wn(Pn());return e.copy=function(){return Fn(e,zn()).exponent(e.exponent())},ht.apply(e,arguments)}function Bn(){return zn.apply(null,arguments).exponent(.5)}function Vn(){var e=[],t=Be;function n(n){if(n!=null&&!isNaN(n=+n))return t((Ve(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(je),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map((n,r)=>t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>nn(e,r/t))},n.copy=function(){return Vn(t).domain(e)},ht.apply(n,arguments)}function Hn(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=Be,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*e<r*a?s:c),l(d?Math.max(0,Math.min(1,e)):e))}p.domain=function(l){return arguments.length?([e,t,n]=l,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p):[e,t,n]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(l=e,p):l};function m(e){return function(t){var n,r,i;return arguments.length?([n,r,i]=t,l=an(e,[n,r,i]),p):[l(0),l(.5),l(1)]}}return p.range=m(Ge),p.rangeRound=m(Le),p.unknown=function(e){return arguments.length?(f=e,p):f},function(l){return u=l,i=l(e),a=l(t),o=l(n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p}}function Un(){var e=ze(Hn()(Be));return e.copy=function(){return Fn(e,Un())},ht.apply(e,arguments)}function Wn(){var e=hn(Hn()).domain([.1,1,10]);return e.copy=function(){return Fn(e,Wn()).base(e.base())},ht.apply(e,arguments)}function Gn(){var e=yn(Hn());return e.copy=function(){return Fn(e,Gn()).constant(e.constant())},ht.apply(e,arguments)}function Kn(){var e=wn(Hn());return e.copy=function(){return Fn(e,Kn()).exponent(e.exponent())},ht.apply(e,arguments)}function qn(){return Kn.apply(null,arguments).exponent(.5)}function Jn(e,t,n){var r=null,i=P(!0),a=null,o=Tt,s=null,c=dt(l);e=typeof e==`function`?e:e===void 0?Ft:P(+e),t=typeof t==`function`?t:P(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?It:P(+n);function l(l){var u,d,f,p=(l=xt(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h)if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return Lt().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:P(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:P(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:P(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:P(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:P(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var Yn={draw(e,t){let n=vt(t/bt);e.moveTo(n,0),e.arc(0,0,n,0,yt)}},Xn={draw(e,t){let n=vt(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},Zn=vt(1/3),Qn=Zn*2,$n={draw(e,t){let n=vt(t/Qn),r=n*Zn;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},er={draw(e,t){let n=vt(t),r=-n/2;e.rect(r,r,n,n)}},tr=.8908130915292852,nr=_t(bt/10)/_t(7*bt/10),rr=_t(yt/10)*nr,ir=-gt(yt/10)*nr,ar={draw(e,t){let n=vt(t*tr),r=rr*n,i=ir*n;e.moveTo(0,-n),e.lineTo(r,i);for(let t=1;t<5;++t){let a=yt*t/5,o=gt(a),s=_t(a);e.lineTo(s*n,-o*n),e.lineTo(o*r-s*i,s*r+o*i)}e.closePath()}},or=vt(3),sr={draw(e,t){let n=-vt(t/(or*3));e.moveTo(0,n*2),e.lineTo(-or*n,-n),e.lineTo(or*n,-n),e.closePath()}},cr=-.5,lr=vt(3)/2,ur=1/vt(12),dr=(ur/2+1)*3,fr={draw(e,t){let n=vt(t/dr),r=n/2,i=n*ur,a=r,o=n*ur+n,s=-a,c=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,c),e.lineTo(cr*r-lr*i,lr*r+cr*i),e.lineTo(cr*a-lr*o,lr*a+cr*o),e.lineTo(cr*s-lr*c,lr*s+cr*c),e.lineTo(cr*r+lr*i,cr*i-lr*r),e.lineTo(cr*a+lr*o,cr*o-lr*a),e.lineTo(cr*s+lr*c,cr*c-lr*s),e.closePath()}};function pr(e,t){let n=null,r=dt(i);e=typeof e==`function`?e:P(e||Yn),t=typeof t==`function`?t:P(t===void 0?64:+t);function i(){let i;if(n||=i=r(),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),i)return n=null,i+``||null}return i.type=function(t){return arguments.length?(e=typeof t==`function`?t:P(t),i):e},i.size=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),i):t},i.context=function(e){return arguments.length?(n=e??null,i):n},i}function mr(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n<o;++n)for(i=a,a=e[t[n]],r=0;r<s;++r)a[r][1]+=a[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function hr(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function gr(e,t){return e[t]}function _r(e){let t=[];return t.key=e,t}function vr(){var e=P([]),t=hr,n=mr,r=gr;function i(i){var a=Array.from(e.apply(this,arguments),_r),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o<s;++o)(a[o][c]=[0,+r(e,a[o].key,c,i)]).data=e;for(o=0,l=xt(t(a));o<s;++o)a[l[o]].index=o;return n(a,l),a}return i.keys=function(t){return arguments.length?(e=typeof t==`function`?t:P(Array.from(t)),i):e},i.value=function(e){return arguments.length?(r=typeof e==`function`?e:P(+e),i):r},i.order=function(e){return arguments.length?(t=e==null?hr:typeof e==`function`?e:P(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(n=e??mr,i):n},i}function yr(e,t){if((r=e.length)>0){for(var n,r,i=0,a=e[0].length,o;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}mr(e,t)}}function br(e,t){if((i=e.length)>0){for(var n=0,r=e[t[0]],i,a=r.length;n<a;++n){for(var o=0,s=0;o<i;++o)s+=e[o][n][1]||0;r[n][1]+=r[n][0]=-s/2}mr(e,t)}}function xr(e,t){if(!(!((o=e.length)>0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r<a;++r){for(var s=0,c=0,l=0;s<o;++s){for(var u=e[t[s]],d=u[r][1]||0,f=(d-(u[r-1][1]||0))/2,p=0;p<s;++p){var m=e[t[p]],h=m[r][1]||0,g=m[r-1][1]||0;f+=h-g}c+=d,l+=f*d}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,mr(e,t)}}var I=e(h(),1),L=_(),Sr=`studio:analytics:onboarding-dismissed:v2`;function Cr(){let[e,t]=(0,I.useState)(null);return(0,I.useEffect)(()=>{try{t(window.localStorage.getItem(Sr)===`1`)}catch{t(!0)}},[]),e===!1?(0,L.jsxs)(`div`,{role:`status`,className:`mb-3 flex items-start gap-3 rounded-md border border-border bg-muted/30 px-3 py-2 text-sm text-muted-foreground`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(`span`,{className:`font-medium text-foreground`,children:`Tip:`}),` Click a legend entry to isolate one node, `,(0,L.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`⌘`}),` / `,(0,L.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`Ctrl`}),`-click to compare a few. In the storage charts, click a bar segment to pin that table's trend. In the replication heatmap, click a cell to see that node pair's latency over time.`]}),(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:()=>{try{window.localStorage.setItem(Sr,`1`)}catch{}t(!0)},"aria-label":`Dismiss tip`,className:`-mt-1 h-7 w-7 shrink-0`,children:(0,L.jsx)(le,{className:`h-4 w-4`})})]}):null}var wr=(0,I.createContext)(null);function Tr({value:e,children:t}){let n=(0,I.useMemo)(()=>e,[e.timeRange.startTime,e.timeRange.endTime,e.bucketMs,e.instanceParams.entityId,e.instanceParams.instanceClient,e.syncId]);return(0,L.jsx)(wr.Provider,{value:n,children:t})}function Er(){let e=(0,I.useContext)(wr);if(!e)throw Error(`useAnalyticsContext must be used inside <AnalyticsProvider>`);return e}function Dr(){return(0,I.useContext)(wr)?.syncId}function Or(e){let t=Dr();return t===void 0?{}:{syncId:e?`${t}:expanded`:t,syncMethod:`value`}}var kr=qt;function Ar(e){let t=s(),n=(0,I.useCallback)(t=>Array.isArray(t.queryKey)&&t.queryKey[0]===kr&&t.queryKey[1]===e,[e]),r=(0,I.useCallback)(e=>{let r=o.batchCalls(e);return t.getQueryCache().subscribe(e=>{!e?.query||!n(e.query)||r()})},[t,n]),i=(0,I.useCallback)(()=>{for(let e of t.getQueryCache().getAll())if(n(e)&&e.state.fetchStatus===`fetching`)return!0;return!1},[t,n]),a=(0,I.useCallback)(()=>{let e=null;for(let r of t.getQueryCache().getAll())n(r)&&r.state.dataUpdatedAt>0&&(e===null||r.state.dataUpdatedAt>e)&&(e=r.state.dataUpdatedAt);return e},[t,n]),c=(0,I.useSyncExternalStore)(r,i,i),l=(0,I.useSyncExternalStore)(r,a,a),[u,d]=(0,I.useState)(()=>Date.now());return(0,I.useEffect)(()=>{let e=!1,t,n=()=>{if(e)return;d(Date.now());let r=l===null?0:Date.now()-l,i=r<6e4?1e3:r<6e5?5e3:3e4;t=window.setTimeout(n,i)};return t=window.setTimeout(n,1e3),()=>{e=!0,t!==void 0&&window.clearTimeout(t)}},[l]),{isFetching:c,lastFetchedAt:l,now:u}}function jr(e,t){if(e===null)return null;let n=Math.max(0,Math.floor((t-e)/1e3));if(n<5)return`just now`;if(n<60)return`${n}s ago`;let r=Math.floor(n/60);return r<60?`${r}m ago`:`${Math.floor(r/60)}h ago`}function Mr({presetId:e,onPresetChange:t,refreshMs:n,onRefreshChange:r,onManualRefresh:o}){let{instanceParams:s}=Er(),{isFetching:c,lastFetchedAt:l,now:u}=Ar(s.entityId),d=jr(l,u);return(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[d&&(0,L.jsxs)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,title:l?new Date(l).toLocaleString():void 0,"aria-label":l?`Last updated ${new Date(l).toLocaleString()}`:void 0,children:[`Updated `,d]}),(0,L.jsxs)(oe,{value:e,onValueChange:e=>t(e),children:[(0,L.jsx)(re,{className:`w-[180px]`,children:(0,L.jsx)(ae,{})}),(0,L.jsx)(ne,{children:Ee.map(e=>(0,L.jsx)(ee,{value:e.id,children:e.label},e.id))})]}),(0,L.jsxs)(oe,{value:String(n),onValueChange:e=>r(Number(e)),children:[(0,L.jsx)(re,{className:`w-[100px]`,children:(0,L.jsx)(ae,{})}),(0,L.jsx)(ne,{children:Ae.map(e=>(0,L.jsx)(ee,{value:String(e.value),children:e.label},e.value))})]}),(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:o,disabled:c,"aria-busy":c,"aria-label":c?`Refreshing…`:`Refresh now`,title:c?`Refreshing…`:`Refresh now`,children:(0,L.jsx)(Ce,{className:i(`h-4 w-4`,c&&`animate-spin`)})})]})}var Nr=[`utilization`,`cpu-usage`,`memory`,`main-thread-utilization`],Pr=30*6e4;function Fr(e){return e?.response?.status??e?.status}function Ir(e){let t=Fr(e);return t===401||t===403}function Lr(e){let t=Fr(e);return typeof t==`number`&&t>=400&&t<500&&!Ir(e)}function Rr(e){let t=l({queryKey:[`analytics-capability`,e.entityId],queryFn:async()=>{let t=Date.now(),n=t-5*6e4,r=null;for(let i of Nr)try{return await e.instanceClient.post(`/`,{operation:`get_analytics`,metric:i,start_time:n,end_time:t}),!0}catch(e){if(r=e,!Lr(e))throw e}throw r instanceof Error?r:Error(`Analytics probe failed for all metrics`)},retry:(e,t)=>!Ir(t)&&e<2,retryDelay:e=>Math.min(1e3*2**e,8e3),staleTime:Pr,gcTime:Pr});return{supported:t.isSuccess===!0,error:t.error,isAuthError:t.error!=null&&Ir(t.error),isLoading:t.isLoading,isFetching:t.isFetching,retry:()=>{t.refetch()}}}var zr=new Set([`time`,`node`]),Br=Object.freeze([]);function Vr({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,requiredFields:a,bucketMs:o}){let s=l({...Kt({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,bucketMs:o}),staleTime:1/0,gcTime:6e4,refetchOnWindowFocus:!1,refetchOnReconnect:!1,placeholderData:f}),c=s.data??Br,{fieldKeys:u,missingFields:d}=(0,I.useMemo)(()=>{let e=new Set;for(let t of c)for(let n of Object.keys(t))zr.has(n)||e.add(n);let t=[];if(a&&c.length>0)for(let n of a)e.has(n)||t.push(n);return{fieldKeys:e,missingFields:t}},[c,a]);return(0,I.useEffect)(()=>{!s.isLoading&&c.length===0&&d.length>0&&console.warn(`[analytics] panel rendered empty with missing fields`,{metric:e,instanceId:i.entityId,missingFields:d})},[c.length,s.isLoading,e,i.entityId,d]),{data:c,isLoading:s.isLoading,isError:s.isError,error:s.error,isEmpty:c.length===0,fieldKeys:u,missingFields:d,isPlaceholderData:s.isPlaceholderData,refetch:s.refetch}}var Hr=[`var(--chart-node-1)`,`var(--chart-node-2)`,`var(--chart-node-3)`,`var(--chart-node-4)`,`var(--chart-node-5)`,`var(--chart-node-6)`,`var(--chart-node-7)`,`var(--chart-node-8)`,`var(--chart-node-9)`,`var(--chart-node-10)`];function Ur(e,t){return Hr[[...t].sort().indexOf(e)%Hr.length]}function Wr(e){let t=e.indexOf(`.`);return t===-1?e:e.slice(0,t)}function Gr(e){let t=new Map,n=[...new Set(e)];for(let e=1;n.length>0;e++){let r=new Map;for(let t of n){let n=t.split(`.`).slice(0,e).join(`.`),i=r.get(n);i?i.push(t):r.set(n,[t])}n=[];for(let[i,a]of r){if(a.length===1){t.set(a[0],i);continue}for(let r of a)r.split(`.`).length<=e?t.set(r,r):n.push(r)}}return t}function Kr({nodeIds:e,isActive:t,onClickNode:n,disabled:r}){let i=Gr(e);return(0,L.jsxs)(`div`,{role:`group`,"aria-label":r?`Node filter (unavailable on this tab)`:`Node filter`,className:`flex flex-wrap justify-center gap-x-4 gap-y-1 pt-2 text-[11px]`,children:[r&&(0,L.jsx)(`span`,{className:`sr-only`,"aria-live":`polite`,children:`Per-node filter is unavailable on this tab. Buttons remain visible to preserve selection state.`}),e.map(a=>{let o=Ur(a,e),s=t(a);return(0,L.jsxs)(`button`,{type:`button`,"aria-pressed":s,"aria-disabled":r?`true`:void 0,title:r?`Per-node filter unavailable on this tab's panels`:a,onClick:e=>{r||n(a,e.ctrlKey||e.metaKey)},className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:r?{color:o,opacity:.5,cursor:`not-allowed`}:{color:o,opacity:s?1:.3},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:o}}),(0,L.jsx)(`span`,{children:i.get(a)??a})]},a)})]})}function qr(e){let[t,n]=(0,I.useState)(null),r=(0,I.useRef)(e);return r.current=e,{isActive:(0,I.useCallback)(e=>t===null||t.has(e),[t]),handleClick:(0,I.useCallback)((e,t)=>{let i=r.current;n(n=>{if(t){if(n===null)return new Set(i.filter(t=>t!==e));let t=new Set(n);if(t.has(e)){if(t.delete(e),t.size===0)return null}else if(t.add(e),t.size===i.length)return null;return t}return n!==null&&n.size===1&&n.has(e)?null:new Set([e])})},[]),activeSet:t}}function Jr(e){let{isActive:t,handleClick:n,activeSet:r}=qr(e);return{isActive:t,handleLegendClick:n,activeNodes:r}}function Yr(e,t){let{isActive:n,handleLegendClick:r}=Jr(t);return{data:(0,I.useMemo)(()=>({...e,series:e.series.map(e=>e.node===void 0?e:{...e,label:Wr(e.node),color:Ur(e.node,t)}).filter(e=>e.node===void 0||n(e.node))}),[e,t,n]),isActive:n,handleLegendClick:r}}function Xr(e,t,n){let r=(0,I.useRef)([]);(0,I.useEffect)(()=>{r.current=r.current.slice(0,e.length)},[e.length]);let i=t===null?-1:e.indexOf(t),a=i>=0?i:0;function o(t,i){if(t.key===`Enter`||t.key===` `){t.preventDefault(),n(e[i]);return}if(t.key!==`ArrowLeft`&&t.key!==`ArrowRight`&&t.key!==`ArrowDown`&&t.key!==`ArrowUp`)return;t.preventDefault();let a=e.length;if(a===0)return;let o=(i+(t.key===`ArrowRight`||t.key===`ArrowDown`?1:-1)+a)%a;r.current[o]?.focus(),n(e[o])}function s(t){return{role:`radio`,"aria-checked":t===i,tabIndex:t===a?0:-1,ref:e=>{r.current[t]=e},onKeyDown:e=>o(e,t),onClick:()=>n(e[t])}}return{getRadioProps:s,selectedIdx:i}}var Zr=`var(--color-text-secondary)`;function Qr({dimensionValues:e,selected:t,onSelect:n,otherKey:r,colorFor:i,ariaLabel:a=`Dimension selector`}){let{getRadioProps:o}=Xr(e,t,n);return e.length===0&&!r?null:(0,L.jsxs)(`div`,{role:`radiogroup`,"aria-label":a,"data-testid":`dimension-chip-row`,className:`flex flex-wrap justify-center gap-x-3 gap-y-1 pt-2 text-[11px]`,children:[e.map((e,n)=>{let r=e===t,a=i?i(e):Zr;return(0,L.jsxs)(`button`,{type:`button`,...o(n),"data-testid":`dimension-chip`,"data-value":e,title:`Click to select`,className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:{color:a,opacity:r?1:.55},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:a}}),(0,L.jsx)(`span`,{children:e})]},e)}),r&&(0,L.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":!1,"aria-disabled":`true`,tabIndex:-1,"data-testid":`dimension-chip`,"data-value":r,title:`Aggregate of smaller buckets; not selectable.`,className:`inline-flex items-center gap-1.5 cursor-not-allowed border-none bg-transparent p-0`,style:{color:Zr,opacity:.4},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:Zr}}),(0,L.jsx)(`span`,{children:r})]})]})}var $r=`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`.split(`.`);function ei(e){return typeof e==`string`&&$r.includes(e)}var ti=new Set(`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`.split(`.`));function ni(e){return typeof e==`string`&&ti.has(e)}function ri(e){return typeof e==`string`&&e.startsWith(`data-`)}function ii(e){if(typeof e!=`object`||!e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(ni(n)||ri(n))&&(t[n]=e[n]);return t}function ai(e){if(e==null)return null;if((0,I.isValidElement)(e)&&typeof e.props==`object`&&e.props!==null){var t=e.props;return ii(t)}return typeof e==`object`&&!Array.isArray(e)?ii(e):null}function oi(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(ni(n)||ri(n)||ei(n))&&(t[n]=e[n]);return t}function si(e){return e==null?null:(0,I.isValidElement)(e)?oi(e.props):typeof e==`object`&&!Array.isArray(e)?oi(e):null}var ci=[`children`,`width`,`height`,`viewBox`,`className`,`style`,`title`,`desc`];function li(){return li=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},li.apply(null,arguments)}function ui(e,t){if(e==null)return{};var n,r,i=di(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function di(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var fi=(0,I.forwardRef)((e,t)=>{var n=e.children,i=e.width,a=e.height,o=e.viewBox,s=e.className,c=e.style,l=e.title,u=e.desc,d=ui(e,ci),f=o||{width:i,height:a,x:0,y:0},p=r(`recharts-surface`,s);return I.createElement(`svg`,li({},oi(d),{className:p,width:i,height:a,style:c,viewBox:`${f.x} ${f.y} ${f.width} ${f.height}`,ref:t}),I.createElement(`title`,null,l),I.createElement(`desc`,null,u),n)}),pi=[`children`,`className`];function mi(){return mi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},mi.apply(null,arguments)}function hi(e,t){if(e==null)return{};var n,r,i=gi(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function gi(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var _i=I.forwardRef((e,t)=>{var n=e.children,i=e.className,a=hi(e,pi),o=r(`recharts-layer`,i);return I.createElement(`g`,mi({className:o},oi(a),{ref:t}),n)});function vi(e){return e===`__proto__`}var yi=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function bi(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e===``||e.startsWith(`.`)||e.endsWith(`.`)?!1:yi.test(e);default:return!1}}function xi(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}function Si(e){if(e==null)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(Si).join(`,`);let t=String(e);return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function Ci(e){if(Array.isArray(e))return e.map(xi);if(typeof e==`symbol`)return[e];e=Si(e);let t=[],n=e.length;if(n===0)return t;let r=0,i=``,a=``,o=!1;for(e.charCodeAt(0)===46&&t.push(``);r<n;){let s=e[r];if(a)s===`\\`&&r+1<n?(r++,i+=e[r]):s===a?a=``:i+=s;else if(o)s===`"`||s===`'`?a=s:s===`]`?(o=!1,t.push(i),i=``):i+=s;else if(s===`[`)o=!0,i&&=(t.push(i),``);else if(s===`.`){i&&=(t.push(i),``);let n=e[r+1];(n===void 0||n===`.`)&&t.push(``)}else i+=s;r++}return i&&t.push(i),t}function wi(e,t,n){if(e==null)return n;switch(typeof t){case`string`:{if(vi(t))return n;let r=e[t];return r===void 0?bi(t)&&!Object.hasOwn(e,t)?wi(e,Ci(t),n):n:r}case`number`:case`symbol`:{typeof t==`number`&&(t=xi(t));let r=e[t];return r===void 0?n:r}default:{if(Array.isArray(t))return Ti(e,t,n);if(t=Object.is(t?.valueOf(),-0)?`-0`:String(t),vi(t))return n;let r=e[t];return r===void 0?n:r}}}function Ti(e,t,n){if(t.length===0)return n;let r=e;for(let e=0;e<t.length;e++){if(r==null||vi(t[e]))return n;r=r[t[e]]}return r===void 0?n:r}var Ei=4;function Di(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ei),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function Oi(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+Di(i)+n},``)}var ki=e=>e===0?0:e>0?1:-1,Ai=e=>typeof e==`number`&&e!=+e,ji=e=>typeof e==`string`&&e.length>1&&e.indexOf(`%`)===e.length-1,R=e=>(typeof e==`number`||e instanceof Number)&&!Ai(e),Mi=e=>R(e)||typeof e==`string`,Ni=0,Pi=e=>{var t=++Ni;return`${e||``}${t}`},Fi=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!R(e)&&typeof e!=`string`)return n;var i;if(ji(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return Ai(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},Ii=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;r<t;r++)if(!n[String(e[r])])n[String(e[r])]=!0;else return!0;return!1};function z(e,t,n){return R(e)&&R(t)?Di(e+n*(t-e)):t}function Li(e,t,n){if(!(!e||!e.length))return e.find(e=>e&&(typeof t==`function`?t(e):wi(e,t))===n)}var B=e=>e==null,Ri=e=>B(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function zi(e){return e!=null}function Bi(){}function Vi(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}}function Hi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ui(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Hi(Object(n),!0).forEach(function(t){Wi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Hi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Wi(e,t,n){return(t=Gi(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Gi(e){var t=Ki(e,`string`);return typeof t==`symbol`?t:t+``}function Ki(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var qi=e=>{var t=e.viewBox,n=e.position,r=e.offset,i=r===void 0?0:r,a=e.parentViewBox,o=e.clamp,s=Vi(t),c=s.x,l=s.y,u=s.height,d=s.upperWidth,f=s.lowerWidth,p=c,m=c+(d-f)/2,h=(p+m)/2,g=(d+f)/2,_=p+d/2,v=u>=0?1:-1,y=v*i,b=v>0?`end`:`start`,x=v>0?`start`:`end`,S=d>=0?1:-1,C=S*i,w=S>0?`end`:`start`,T=S>0?`start`:`end`,E=a;if(n===`top`){var D={x:p+d/2,y:l-y,horizontalAnchor:`middle`,verticalAnchor:b};return o&&E&&(D.height=Math.max(l-E.y,0),D.width=d),D}if(n===`bottom`){var O={x:m+f/2,y:l+u+y,horizontalAnchor:`middle`,verticalAnchor:x};return o&&E&&(O.height=Math.max(E.y+E.height-(l+u),0),O.width=f),O}if(n===`left`){var k={x:h-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`};return o&&E&&(k.width=Math.max(k.x-E.x,0),k.height=u),k}if(n===`right`){var A={x:h+g+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`};return o&&E&&(A.width=Math.max(E.x+E.width-A.x,0),A.height=u),A}var j=o&&E?{width:g,height:u}:{};return n===`insideLeft`?Ui({x:h+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`},j):n===`insideRight`?Ui({x:h+g-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`},j):n===`insideTop`?Ui({x:p+d/2,y:l+y,horizontalAnchor:`middle`,verticalAnchor:x},j):n===`insideBottom`?Ui({x:m+f/2,y:l+u-y,horizontalAnchor:`middle`,verticalAnchor:b},j):n===`insideTopLeft`?Ui({x:p+C,y:l+y,horizontalAnchor:T,verticalAnchor:x},j):n===`insideTopRight`?Ui({x:p+d-C,y:l+y,horizontalAnchor:w,verticalAnchor:x},j):n===`insideBottomLeft`?Ui({x:m+C,y:l+u-y,horizontalAnchor:T,verticalAnchor:b},j):n===`insideBottomRight`?Ui({x:m+f-C,y:l+u-y,horizontalAnchor:w,verticalAnchor:b},j):n&&typeof n==`object`&&(R(n.x)||ji(n.x))&&(R(n.y)||ji(n.y))?Ui({x:c+Fi(n.x,g),y:l+Fi(n.y,u),horizontalAnchor:`end`,verticalAnchor:`end`},j):Ui({x:_,y:l+u/2,horizontalAnchor:`middle`,verticalAnchor:`middle`},j)},Ji=[`top`,`left`,`right`,`bottom`];function Yi(e){return e==null?!1:typeof e==`object`||Ji.includes(e)}var Xi=(0,I.createContext)(null),Zi=()=>(0,I.useContext)(Xi),Qi=[`type`,`size`,`sizeType`];function $i(){return $i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$i.apply(null,arguments)}function ea(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ta(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ea(Object(n),!0).forEach(function(t){na(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ea(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function na(e,t,n){return(t=ra(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ra(e){var t=ia(e,`string`);return typeof t==`symbol`?t:t+``}function ia(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function aa(e,t){if(e==null)return{};var n,r,i=oa(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function oa(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var sa={symbolCircle:Yn,symbolCross:Xn,symbolDiamond:$n,symbolSquare:er,symbolStar:ar,symbolTriangle:sr,symbolWye:fr},ca=Math.PI/180,la=e=>sa[`symbol${Ri(e)}`]||Yn,ua=(e,t,n)=>{if(t===`area`)return e;switch(n){case`cross`:return 5*e*e/9;case`diamond`:return .5*e*e/Math.sqrt(3);case`square`:return e*e;case`star`:var r=18*ca;return 1.25*e*e*(Math.tan(r)-Math.tan(r*2)*Math.tan(r)**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}},da=(e,t)=>{sa[`symbol${Ri(e)}`]=t},fa=e=>{var t=e.type,n=t===void 0?`circle`:t,i=e.size,a=i===void 0?64:i,o=e.sizeType,s=o===void 0?`area`:o,c=ta(ta({},aa(e,Qi)),{},{type:n,size:a,sizeType:s}),l=`circle`;typeof n==`string`&&(l=n);var u=()=>{var e=la(l),t=pr().type(e).size(ua(a,s,l))();if(t!==null)return t},d=c.className,f=c.cx,p=c.cy,m=oi(c);return R(f)&&R(p)&&R(a)?I.createElement(`path`,$i({},m,{className:r(`recharts-symbols`,d),transform:`translate(${f}, ${p})`,d:u()})):null};fa.registerSymbol=da;var pa=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,ma=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,I.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{ei(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},ha=(e,t,n)=>r=>(e(t,n,r),null),ga=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];ei(i)&&typeof a==`function`&&(r||={},r[i]=ha(a,t,n))}),r};function _a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function va(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?_a(Object(n),!0).forEach(function(t){ya(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_a(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ya(e,t,n){return(t=ba(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ba(e){var t=xa(e,`string`);return typeof t==`symbol`?t:t+``}function xa(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Sa(e,t){var n=va({},e),r=t;return Object.keys(t).reduce((e,t)=>(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function Ca(){return Ca=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ca.apply(null,arguments)}function wa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ta(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?wa(Object(n),!0).forEach(function(t){Ea(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wa(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ea(e,t,n){return(t=Da(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Da(e){var t=Oa(e,`string`);return typeof t==`symbol`?t:t+``}function Oa(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var ka=32,Aa={align:`center`,iconSize:14,inactiveColor:`#ccc`,layout:`horizontal`,verticalAlign:`middle`,labelStyle:{}};function ja(e){if(typeof e==`object`&&e&&`strokeDasharray`in e)return String(e.strokeDasharray)}function Ma(e){var t=e.data,n=e.iconType,r=e.inactiveColor,i=ka/2,a=ka/6,o=ka/3,s=t.inactive?r:t.color,c=n??t.type;if(c===`none`)return null;if(c===`plainline`)return I.createElement(`line`,{strokeWidth:4,fill:`none`,stroke:s,strokeDasharray:ja(t.payload),x1:0,y1:i,x2:ka,y2:i,className:`recharts-legend-icon`});if(c===`line`)return I.createElement(`path`,{strokeWidth:4,fill:`none`,stroke:s,d:`M0,${i}h${o}
|
|
2
2
|
A${a},${a},0,1,1,${2*o},${i}
|
|
3
3
|
H${ka}M${2*o},${i}
|
|
4
4
|
A${a},${a},0,1,1,${o},${i}`,className:`recharts-legend-icon`});if(c===`rect`)return I.createElement(`path`,{stroke:`none`,fill:s,d:`M0,${ka/8}h${ka}v${ka*3/4}h${-ka}z`,className:`recharts-legend-icon`});if(I.isValidElement(t.legendIcon)){var l=Ta({},t);return delete l.legendIcon,I.cloneElement(t.legendIcon,l)}return I.createElement(fa,{fill:s,cx:i,cy:i,size:ka,sizeType:`diameter`,type:c})}function Na(e){var t=e.payload,n=e.iconSize,i=e.layout,a=e.formatter,o=e.inactiveColor,s=e.iconType,c=e.labelStyle,l={x:0,y:0,width:ka,height:ka},u={display:i===`horizontal`?`inline-block`:`block`,marginRight:10,whiteSpace:`nowrap`},d={display:`inline-block`,verticalAlign:`middle`,marginRight:4};return t.map((t,i)=>{var f=t.formatter||a,p=r({"recharts-legend-item":!0,[`legend-item-${i}`]:!0,inactive:t.inactive});if(t.type===`none`)return null;var m=typeof c==`object`?Ta({},c):{};m.color=t.inactive?o:m.color||t.color,m.whiteSpace??=`normal`,m.overflowWrap??=`break-word`;var h=f?f(t.value,t,i):t.value;return I.createElement(`li`,Ca({className:p,style:u,key:`legend-item-${i}`},ga(e,t,i)),I.createElement(fi,{width:n,height:n,viewBox:l,style:d,"aria-label":t.value==null?`legend icon`:`${t.value} legend icon`},I.createElement(Ma,{data:t,iconType:s,inactiveColor:o})),I.createElement(`span`,{className:`recharts-legend-item-text`,style:m},h))})}var Pa=e=>{var t=Sa(e,Aa),n=t.payload,r=t.layout,i=t.align;if(!n||!n.length)return null;var a={padding:0,margin:0,textAlign:r===`horizontal`?i:`left`};return I.createElement(`ul`,{className:`recharts-default-legend`,style:a},I.createElement(Na,Ca({},t,{payload:n})))};function Fa(e,t){let n=new Map;for(let r=0;r<e.length;r++){let i=e[r],a=t(i,r,e);n.has(a)||n.set(a,i)}return Array.from(n.values())}function Ia(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function La(e){return e}function Ra(e){return function(t){return wi(t,e)}}function za(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function Ba(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Va(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function Ha(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var Ua=`[object RegExp]`,Wa=`[object String]`,Ga=`[object Number]`,Ka=`[object Boolean]`,qa=`[object Arguments]`,Ja=`[object Symbol]`,Ya=`[object Date]`,Xa=`[object Map]`,Za=`[object Set]`,Qa=`[object Array]`,$a=`[object Function]`,eo=`[object ArrayBuffer]`,to=`[object Object]`,no=`[object Error]`,ro=`[object DataView]`,io=`[object Uint8Array]`,ao=`[object Uint8ClampedArray]`,oo=`[object Uint16Array]`,so=`[object Uint32Array]`,co=`[object BigUint64Array]`,lo=`[object Int8Array]`,uo=`[object Int16Array]`,fo=`[object Int32Array]`,po=`[object BigInt64Array]`,mo=`[object Float32Array]`,ho=`[object Float64Array]`,go=typeof globalThis==`object`&&globalThis||typeof window==`object`&&window||typeof self==`object`&&self||typeof global==`object`&&global||(function(){return this})();function _o(e){return go.Buffer!==void 0&&go.Buffer.isBuffer(e)}function vo(e,t){return yo(e,void 0,e,new Map,t)}function yo(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!==void 0)return a;if(za(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=yo(e[a],a,n,r,i);return Object.hasOwn(e,`index`)&&(t.index=e.index),Object.hasOwn(e,`input`)&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;r.set(e,t);for(let[a,o]of e)t.set(a,yo(o,a,n,r,i));return t}if(e instanceof Set){let t=new Set;r.set(e,t);for(let a of e)t.add(yo(a,void 0,n,r,i));return t}if(_o(e))return e.subarray();if(Ba(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=yo(e[a],a,n,r,i);return t}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),bo(t,e,n,r,i),t}if(typeof File<`u`&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),bo(t,e,n,r,i),t}if(typeof Blob<`u`&&e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),bo(t,e,n,r,i),t}if(e instanceof Error){let t=structuredClone(e);return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,t.constructor=e.constructor,bo(t,e,n,r,i),t}if(e instanceof Boolean){let t=new Boolean(e.valueOf());return r.set(e,t),bo(t,e,n,r,i),t}if(e instanceof Number){let t=new Number(e.valueOf());return r.set(e,t),bo(t,e,n,r,i),t}if(e instanceof String){let t=new String(e.valueOf());return r.set(e,t),bo(t,e,n,r,i),t}if(typeof e==`object`&&xo(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),bo(t,e,n,r,i),t}return e}function bo(e,t,n=e,r,i){let a=[...Object.keys(t),...Va(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=yo(t[s],s,n,r,i))}}function xo(e){switch(Ha(e)){case qa:case Qa:case eo:case ro:case Ka:case Ya:case mo:case ho:case lo:case uo:case fo:case Xa:case Ga:case to:case Ua:case Za:case Wa:case Ja:case io:case ao:case oo:case so:return!0;default:return!1}}function So(e){return yo(e,void 0,e,new Map,void 0)}function Co(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function wo(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}function To(e,t,n){return typeof n==`function`?Eo(e,t,function e(t,r,i,a,o,s){let c=n(t,r,i,a,o,s);return c===void 0?Eo(t,r,e,s,!1):!!c},new Map,!0):To(e,t,()=>void 0)}function Eo(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return Do(e,t,n,r);case`function`:return Object.keys(t).length>0?Eo(e,{...t},n,r,i):Co(e,t);default:return wo(e)&&i?typeof t!=`string`||t===``:Co(e,t)}}function Do(e,t,n,r){if(t==null)return!0;if(Array.isArray(t))return ko(e,t,n,r);if(t instanceof Map)return Oo(e,t,n,r);if(t instanceof Set)return Ao(e,t,n,r);let i=Object.keys(t);if(e==null||za(e))return i.length===0;if(i.length===0)return!0;if(r?.has(t))return r.get(t)===e;r?.set(t,e);try{for(let a=0;a<i.length;a++){let o=i[a];if(!za(e)&&!(o in e)||t[o]===void 0&&e[o]!==void 0||t[o]===null&&e[o]!==null||!n(e[o],t[o],o,e,t,r))return!1}return!0}finally{r?.delete(t)}}function Oo(e,t,n,r){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,a]of t.entries())if(n(e.get(i),a,i,e,t,r)===!1)return!1;return!0}function ko(e,t,n,r){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let a=0;a<t.length;a++){let o=t[a],s=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let l=e[c],u=!1;if(n(l,o,a,e,t,r)&&(u=!0),u){i.add(c),s=!0;break}}if(!s)return!1}return!0}function Ao(e,t,n,r){return t.size===0||e instanceof Set&&ko([...e],[...t],n,r)}function jo(e,t){return To(e,t,()=>void 0)}function Mo(e){return e=So(e),t=>jo(t,e)}function No(e,t){return vo(e,(n,r,i,a)=>{let o=t?.(n,r,i,a);if(o!==void 0)return o;if(typeof e==`object`){if(Ha(e)===`[object Object]`&&typeof e.constructor!=`function`){let t={};return a.set(e,t),bo(t,e,i,a),t}switch(Object.prototype.toString.call(e)){case Ga:case Wa:case Ka:{let t=new e.constructor(e?.valueOf());return bo(t,e),t}case qa:{let t={};return bo(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}}})}function Po(e){return No(e)}var Fo=/^(?:0|[1-9]\d*)$/;function Io(e,t=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e<t;case`symbol`:return!1;case`string`:return Fo.test(e)}}function Lo(e){return typeof e==`object`&&!!e&&Ha(e)===`[object Arguments]`}function Ro(e,t){let n;if(n=Array.isArray(t)?t:typeof t==`string`&&bi(t)&&!(t in Object(e))?Ci(t):[t],n.length===0)return!1;let r=e;for(let e=0;e<n.length;e++){let t=n[e];if((r==null||!Object.hasOwn(r,t))&&!((Array.isArray(r)||Lo(r))&&Io(t)&&t<r.length))return!1;r=r[t]}return!0}function zo(e,t){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=xi(e);break}return t=Po(t),function(n){let r=wi(n,e);return r===void 0?Ro(n,e):t===void 0?r===void 0:jo(r,t)}}function Bo(e){if(e==null)return La;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?zo(e[0],e[1]):Mo(e);case`string`:case`symbol`:case`number`:return Ra(e)}}function Vo(e){return Number.isSafeInteger(e)&&e>=0}function Ho(e){return e!=null&&typeof e!=`function`&&Vo(e.length)}function Uo(e){return typeof e==`object`&&!!e}function Wo(e){return Uo(e)&&Ho(e)}function Go(e,t=La){return Wo(e)?Fa(Array.from(e),Ia(Bo(t),1)):[]}function Ko(e,t,n){return t===!0?Go(e,n):typeof t==`function`?Go(e,t):e}var qo=(0,I.createContext)(null),Jo=d(),Yo=e=>e,V=()=>{var e=(0,I.useContext)(qo);return e?e.store.dispatch:Yo},Xo=()=>{},Zo=()=>Xo,Qo=(e,t)=>e===t;function H(e){var t=(0,I.useContext)(qo),n=(0,I.useMemo)(()=>t?t=>{if(t!=null)return e(t)}:Xo,[t,e]);return(0,Jo.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:Zo,t?t.store.getState:Xo,t?t.store.getState:Xo,n,Qo)}function $o(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a<e.length;a++){let o=e[a];Array.isArray(o)&&t<r?i(o,t+1):n.push(o)}};return i(e,0),n}function es(e,t,n){return wo(n)&&(typeof t==`number`&&Ho(n)&&Io(t)&&t<n.length||typeof t==`string`&&t in n)?Co(n[t],e):!1}function ts(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}var ns=(e,t,n)=>{if(e!==t){let r=ts(e),i=ts(t);if(r===i&&r===0){if(e<t)return n===`desc`?1:-1;if(e>t)return n===`desc`?-1:1}return n===`desc`?i-r:r-i}return 0};function rs(e){return typeof e==`symbol`||e instanceof Symbol}var is=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,as=/^\w*$/;function os(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||rs(e)?!0:typeof e==`string`&&(as.test(e)||!is.test(e))||t!=null&&Object.hasOwn(t,e)}function ss(e,t,n,r){if(e==null)return[];n=r?void 0:n,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(n)||(n=n==null?[]:[n]),n=n.map(e=>String(e));let i=(e,t)=>{let n=e;for(let e=0;e<t.length&&n!=null;++e)n=n[t[e]];return n},a=(e,t)=>t==null||e==null?t:typeof e==`object`&&`key`in e?Object.hasOwn(t,e.key)?t[e.key]:i(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?i(t,e):typeof t==`object`?t[e]:t,o=t.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||os(e)?e:{key:e,path:Ci(e)}));return e.map(e=>({original:e,criteria:o.map(t=>a(t,e))})).slice().sort((e,t)=>{for(let r=0;r<o.length;r++){let i=ns(e.criteria[r],t.criteria[r],n[r]);if(i!==0)return i}return 0}).map(e=>e.original)}function cs(e,...t){let n=t.length;return n>1&&es(e,t[0],t[1])?t=[]:n>2&&es(t[0],t[1],t[2])&&(t=[t[0]]),ss(e,$o(t),[`asc`])}var ls=e=>e.legend.settings,us=e=>e.legend.size,ds=F([e=>e.legend.payload,ls],(e,t)=>{var n=t.itemSorter,r=e.flat(1);return n?cs(r,n):r});function fs(){return H(ds)}function ps(e,t){return vs(e)||_s(e,t)||hs(e,t)||ms()}function ms(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
@@ -59,4 +59,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
59
59
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function WP(e,t){if(e){if(typeof e==`string`)return GP(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?GP(e,t):void 0}}function GP(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function KP(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function qP(e){if(Array.isArray(e))return e}var JP=()=>(XS(),null);function YP(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var XP=(0,I.forwardRef)((e,t)=>{var n=(0,I.useRef)(null),r=HP((0,I.useState)({containerWidth:YP(e.style?.width),containerHeight:YP(e.style?.height)}),2),i=r[0],a=r[1],o=(0,I.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,I.useCallback)(e=>{if(typeof t==`function`&&t(e),n.current!=null&&(n.current.disconnect(),n.current=null),e!=null&&typeof ResizeObserver<`u`){var r=e.getBoundingClientRect(),i=r.width,a=r.height;o(i,a);var s=new ResizeObserver(e=>{var t=e[0];if(t!=null){var n=t.contentRect,r=n.width,i=n.height;o(r,i)}});s.observe(e),n.current=s}},[t,o]);return(0,I.useEffect)(()=>()=>{n.current?.disconnect()},[o]),I.createElement(I.Fragment,null,I.createElement(Zd,{width:i.containerWidth,height:i.containerHeight}),I.createElement(`div`,VP({ref:s},e)))}),ZP=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=HP((0,I.useState)({containerWidth:YP(n),containerHeight:YP(r)}),2),a=i[0],o=i[1],s=(0,I.useCallback)((e,t)=>{o(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),c=(0,I.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var n=e.getBoundingClientRect(),r=n.width,i=n.height;s(r,i)}},[t,s]);return I.createElement(I.Fragment,null,I.createElement(Zd,{width:a.containerWidth,height:a.containerHeight}),I.createElement(`div`,VP({ref:c},e)))}),QP=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height;return I.createElement(I.Fragment,null,I.createElement(Zd,{width:n,height:r}),I.createElement(`div`,VP({ref:t},e)))}),$P=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?I.createElement(ZP,VP({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?I.createElement(QP,VP({},e,{width:n,height:r,ref:t})):I.createElement(I.Fragment,null,I.createElement(Zd,{width:n,height:r}),I.createElement(`div`,VP({ref:t},e)))});function eF(e){return e?XP:$P}var tF=(0,I.forwardRef)((e,t)=>{var n=e.children,i=e.className,a=e.height,o=e.onClick,s=e.onContextMenu,c=e.onDoubleClick,l=e.onMouseDown,u=e.onMouseEnter,d=e.onMouseLeave,f=e.onMouseMove,p=e.onMouseUp,m=e.onTouchEnd,h=e.onTouchMove,g=e.onTouchStart,_=e.style,v=e.width,y=e.responsive,b=e.dispatchTouchEvents,x=b===void 0||b,S=(0,I.useRef)(null),C=V(),w=HP((0,I.useState)(null),2),T=w[0],E=w[1],D=HP((0,I.useState)(null),2),O=D[0],k=D[1],A=FP(),j=Rd(),M=j?.width>0?j.width:v,N=j?.height>0?j.height:a,ee=(0,I.useCallback)(e=>{A(e),typeof t==`function`&&t(e),E(e),k(e),e!=null&&(S.current=e)},[A,t,E,k]),te=(0,I.useCallback)(e=>{C(ON(e)),C(XN({handler:o,reactEvent:e}))},[C,o]),ne=(0,I.useCallback)(e=>{C(AN(e)),C(XN({handler:u,reactEvent:e}))},[C,u]),re=(0,I.useCallback)(e=>{C(ab()),C(XN({handler:d,reactEvent:e}))},[C,d]),ie=(0,I.useCallback)(e=>{C(AN(e)),C(XN({handler:f,reactEvent:e}))},[C,f]),ae=(0,I.useCallback)(()=>{C(UN())},[C]),oe=(0,I.useCallback)(()=>{C(WN())},[C]),se=(0,I.useCallback)(e=>{C(HN(e.key))},[C]),ce=(0,I.useCallback)(e=>{C(XN({handler:s,reactEvent:e}))},[C,s]),le=(0,I.useCallback)(e=>{C(XN({handler:c,reactEvent:e}))},[C,c]),ue=(0,I.useCallback)(e=>{C(XN({handler:l,reactEvent:e}))},[C,l]),de=(0,I.useCallback)(e=>{C(XN({handler:p,reactEvent:e}))},[C,p]),fe=(0,I.useCallback)(e=>{C(XN({handler:g,reactEvent:e}))},[C,g]),pe=(0,I.useCallback)(e=>{x&&C(nP(e)),C(XN({handler:h,reactEvent:e}))},[C,x,h]),me=(0,I.useCallback)(e=>{C(XN({handler:m,reactEvent:e}))},[C,m]),he=eF(y);return I.createElement(wS.Provider,{value:T},I.createElement(Xi.Provider,{value:O},I.createElement(he,{width:M??_?.width,height:N??_?.height,className:r(`recharts-wrapper`,i),style:LP({position:`relative`,cursor:`default`,width:M,height:N},_),onClick:te,onContextMenu:ce,onDoubleClick:le,onFocus:ae,onBlur:oe,onKeyDown:se,onMouseDown:ue,onMouseEnter:ne,onMouseLeave:re,onMouseMove:ie,onMouseUp:de,onTouchEnd:me,onTouchMove:pe,onTouchStart:fe,ref:ee},I.createElement(JP,null),n)))}),nF=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function rF(e,t){if(e==null)return{};var n,r,i=iF(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function iF(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var aF=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=e.responsive,a=e.children,o=e.className,s=e.style,c=e.compact,l=e.title,u=e.desc,d=ii(rF(e,nF));return c?I.createElement(I.Fragment,null,I.createElement(Zd,{width:n,height:r}),I.createElement(OP,{otherAttributes:d,title:l,desc:u},a)):I.createElement(tF,{className:o,style:s,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},I.createElement(OP,{otherAttributes:d,title:l,desc:u,ref:t},I.createElement(ZD,null,a)))});function oF(){return oF=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},oF.apply(null,arguments)}function sF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cF(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?sF(Object(n),!0).forEach(function(t){lF(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sF(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function lF(e,t,n){return(t=uF(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uF(e){var t=dF(e,`string`);return typeof t==`symbol`?t:t+``}function dF(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var fF=cF({accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,layout:`horizontal`,margin:{top:5,right:5,bottom:5,left:5},responsive:!1,reverseStackOrder:!1,stackOffset:`none`,syncMethod:`index`},cP),pF=(0,I.forwardRef)(function(e,t){var n=Sa(e.categoricalChartProps,fF),r=e.chartName,i=e.defaultTooltipEventType,a=e.validateTooltipEventTypes,o=e.tooltipPayloadSearcher,s=e.categoricalChartProps,c={chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:a,tooltipPayloadSearcher:o,eventEmitter:void 0};return I.createElement(mP,{preloadedState:{options:c},reduxStoreName:s.id??r},I.createElement(jD,{chartData:s.data}),I.createElement(gP,{layout:n.layout,margin:n.margin}),I.createElement(vP,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),I.createElement(_P,{baseValue:n.baseValue,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),I.createElement(aF,oF({},n,{ref:t})))}),mF=[`axis`],hF=(0,I.forwardRef)((e,t)=>I.createElement(pF,{chartName:`LineChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:mF,tooltipPayloadSearcher:AS,categoricalChartProps:e,ref:t})),gF=[`axis`,`item`],_F=(0,I.forwardRef)((e,t)=>I.createElement(pF,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:gF,tooltipPayloadSearcher:AS,categoricalChartProps:e,ref:t})),vF=[`axis`],yF=(0,I.forwardRef)((e,t)=>I.createElement(pF,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:vF,tooltipPayloadSearcher:AS,categoricalChartProps:e,ref:t}));function bF(){return{axisColor:`var(--chart-axis, #6b7280)`,gridColor:`var(--chart-grid, #e5e7eb)`}}var xF=new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}),SF=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`,second:`2-digit`});new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`}),new Intl.DateTimeFormat(void 0,{timeZoneName:`short`});function CF(e){return xF.format(new Date(e))}function wF(e){return SF.format(new Date(e))}var TF={background:`var(--chart-tooltip-bg)`,color:`var(--chart-tooltip-fg)`,border:`1px solid var(--border)`,borderRadius:6,boxShadow:`0 4px 12px rgba(0, 0, 0, 0.25)`,padding:8,fontSize:12},EF={color:`var(--chart-tooltip-fg)`,opacity:.7,marginBottom:4,fontSize:11},DF={color:`var(--chart-tooltip-fg)`};function OF(){let[e,t]=(0,I.useState)(!1);return{hovered:e,gateProps:(0,I.useMemo)(()=>{let e=()=>t(!0),n=()=>t(!1);return{onMouseEnter:e,onMouseLeave:n,onTouchStart:e,onFocus:e,onBlur:n}},[])}}function kF(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function AF({active:e,payload:t,label:n,formatter:r,unitSuffix:i,resolveEntryFormat:a,nodeNames:o,showTotal:s,hidden:c}){let l=(0,I.useMemo)(()=>[...Gr(o??[]).entries()].filter(([e,t])=>t!==e).sort((e,t)=>t[0].length-e[0].length).map(([e,t])=>({re:RegExp(`(?<![\\w.-])${kF(e)}(?![\\w.-])`,`g`),short:t})),[o]);if(c||!e||!t||t.length===0)return null;let u=e=>{let t=e;for(let{re:e,short:n}of l)t=t.replace(e,n);return t},d=e=>a?.(e)??{formatter:r,unitSuffix:i},f=t.map(e=>typeof e.value==`number`?e.value:null),p=f.reduce((e,t)=>e+(t??0),0),m=r===`count-si`?`count`:r;return(0,L.jsxs)(`div`,{style:TF,children:[(0,L.jsx)(`div`,{style:EF,children:n===void 0?``:wF(Number(n))}),t.map((e,t)=>{let n=d(e);return(0,L.jsxs)(`div`,{style:{...DF,display:`flex`,justifyContent:`space-between`,gap:12},children:[(0,L.jsx)(`span`,{style:{color:e.color},children:u(String(e.name??e.dataKey??``))}),(0,L.jsx)(`span`,{children:xe(f[t],n.formatter,n.unitSuffix)})]},`${String(e.dataKey??``)}-${String(e.name??t)}`)}),s&&t.length>1?(0,L.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,gap:12,marginTop:4,paddingTop:4,borderTop:`1px solid var(--border)`,fontWeight:600},children:[(0,L.jsx)(`span`,{children:`Total`}),(0,L.jsx)(`span`,{children:xe(p,m,i)})]}):null]})}function jF(e){return!!e&&typeof e==`object`&&`left`in e}function MF(e){let t=e.series.map(e=>e.label);return`${t.length===1?`Chart of ${t[0]}`:`Chart with ${t.length} series: ${t.slice(0,5).join(`, `)}${t.length>5?`…`:``}`}${e.thresholds&&e.thresholds.length>0?`. ${e.thresholds.length} threshold${e.thresholds.length===1?``:`s`}.`:``}`}function NF({data:e,yAxis:t,height:n=240,ariaLabel:r,hideLegend:i,xDomain:a,fillParent:o}){let s=Or(!!o),{hovered:c,gateProps:l}=OF(),u=(0,I.useMemo)(()=>[...new Set(e.series.flatMap(e=>e.node===void 0?[]:[e.node]))],[e.series]);if(e.series.length===0)return(0,L.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:`text-(--color-text-secondary) text-sm p-4`,children:`No data in window`});let d=jF(t),f=d?t.left:t,p=d?t.right:void 0,m=bF();return(0,L.jsx)(`div`,{role:`img`,"aria-label":r??MF(e),style:o?{width:`100%`,height:`100%`,minHeight:0,flex:`1 1 auto`,display:`flex`,flexDirection:`column`}:{width:`100%`,height:n},...l,children:(0,L.jsx)(`div`,{"aria-hidden":`true`,style:{width:`100%`,height:`100%`},children:(0,L.jsx)(Bd,{width:`100%`,height:`100%`,children:(0,L.jsxs)(hF,{margin:{top:12,right:12,bottom:8,left:8},...s,children:[(0,L.jsx)(Ik,{stroke:m.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(lN,{dataKey:`x`,type:`number`,domain:a??[`dataMin`,`dataMax`],allowDataOverflow:!!a,allowDuplicatedCategory:!1,tickFormatter:CF,stroke:m.axisColor,tick:{fontSize:11}}),(0,L.jsx)(wN,{yAxisId:`left`,tickFormatter:e=>xe(e,f?.formatter,f?.unit),scale:f?.scale??`linear`,domain:f?.domain,stroke:m.axisColor,tick:{fontSize:11},width:70}),d&&p?(0,L.jsx)(wN,{yAxisId:`right`,orientation:`right`,tickFormatter:e=>xe(e,p.formatter,p.unit),scale:p.scale??`linear`,domain:p.domain,stroke:m.axisColor,tick:{fontSize:11},width:70}):null,(0,L.jsx)(pC,{isAnimationActive:!1,content:(0,L.jsx)(AF,{hidden:!c,nodeNames:u,resolveEntryFormat:t=>{let n=String(t.name??``),r=e.series.find(e=>e.label===n||e.key===n)?.axis===`right`?p:f;return{formatter:r?.formatter,unitSuffix:r?.unit}}})}),!i&&(0,L.jsx)(zf,{}),e.thresholds?.map((e,t)=>{let n=xe(e.value,f?.formatter,f?.unit),r=e.direction===`above-is-bad`?`↑ bad`:`↓ bad`,i=`${e.label} (${n}, ${r})`,a=t%2==0?`insideTopRight`:`insideBottomRight`;return(0,L.jsx)(mO,{yAxisId:`left`,y:e.value,stroke:e.direction===`above-is-bad`?`var(--color-error)`:`var(--color-success)`,strokeDasharray:`4 2`,label:{value:i,position:a,fontSize:11}},`th-${t}`)}),e.series.map((e,t)=>{let n=e.points.length<=5;return(0,L.jsx)(BA,{data:e.points,type:`monotone`,dataKey:`y`,name:e.label,yAxisId:e.axis===`right`?`right`:`left`,stroke:e.color??Hr[t%Hr.length],strokeWidth:2,strokeOpacity:e.opacity??1,dot:n?{r:2}:!1,connectNulls:!1},e.key)})]})})})})}function PF(e,t){let n=t.filter(e=>typeof e.value==`number`&&Number.isFinite(e.value));if(n.length===0)return null;let r=n.map(e=>e.value);switch(e){case`sum`:return r.reduce((e,t)=>e+t,0);case`mean`:return r.reduce((e,t)=>e+t,0)/r.length;case`max`:{let e=r[0];for(let t=1;t<r.length;t++)r[t]>e&&(e=r[t]);return e}case`min`:{let e=r[0];for(let t=1;t<r.length;t++)r[t]<e&&(e=r[t]);return e}case`last`:return r[r.length-1];case`p50`:return FF(r,.5);case`p95`:return FF(r,.95);case`p99`:return FF(r,.99);case`count-weighted-mean`:{let e=0,t=0;for(let r of n){let n=Number.isFinite(r.count)?r.count:1;e+=r.value*n,t+=n}return t===0?null:e/t}}}function FF(e,t){let n=[...e].sort((e,t)=>e-t);return n[Math.max(1,Math.ceil(t*n.length))-1]}function IF(e){return e===`count-weighted-mean`}function LF(e,t){return IF(t)?e.endsWith(`(approx)`)?e:`${e} (approx)`:e}function RF(e,t){if(!t)return`ok`;if(e===void 0)return`suppress`;let{suppressBelow:n,greyBelow:r}=t;return n!==void 0&&e<n?r!==void 0&&e>=r?`grey`:`suppress`:r!==void 0&&e<r?`grey`:`ok`}function zF(e,t){switch(e.kind){case`const`:return e.value;case`ref`:{let n=t[e.field];return typeof n==`number`&&Number.isFinite(n)?n:null}case`op`:{let n=zF(e.left,t),r=zF(e.right,t);if(n===null||r===null)return null;switch(e.op){case`+`:return n+r;case`-`:return n-r;case`*`:return n*r;case`/`:return r===0?null:n/r;default:{let t=e.op;throw Error(`unknown op: ${String(t)}`)}}}default:throw Error(`unknown FieldExpr kind: ${e.kind}`)}}var BF={"percent-of-core":e=>e*100};function VF(e,t,n){if(t===null)return null;switch(e.kind){case`raw`:return t;case`scale`:return t*e.factor;case`rate`:return!Number.isFinite(n)||n<=0?null:t/n*1e3;case`ratio`:return t;case`compose`:{let r=t;for(let t of e.steps)if(r=VF(t,r,n),r===null)return null;return r}case`named`:{let n=BF[e.name];if(!n)throw Error(`unknown named transform: ${e.name}`);return n(t)}default:throw Error(`unknown transform kind: ${e.kind}`)}}function HF(e,t){return`${e}|${t}`}function $(e,t,n,r,i){return e.series.kind===`field`?YF(e,e.series.fields,t,i?.perNode??!1,i?.snapToPeriod??!1):JF(e,e.series,t,i?.perNode??!1,i?.snapToPeriod??!1)}function UF(e,t,n){let r=WF(e,t);return Math.round(n/r)*r}function WF(e,t){let n=t.period;if(typeof n==`number`&&Number.isFinite(n)&&n>0)return n;let r=e.bucket?.fallbackMs;return typeof r==`number`&&Number.isFinite(r)&&r>0?r:6e4}function GF(e,t){let n=e.timestamp??`time`;if(n===`time`){let e=t.time;return typeof e==`number`&&Number.isFinite(e)?e:null}if(n===`id`){let e=t.id;return typeof e==`number`&&Number.isFinite(e)?e:null}let r=t.time;if(typeof r==`number`&&Number.isFinite(r))return r;let i=t.id;return typeof i==`number`&&Number.isFinite(i)?i:null}function KF(e,t,n){let r=0,i,a=n.map(e=>{let n=GF(t,e);return n===null&&(r++,i??=e),n});return r>0&&console.warn(`[${e}] Dropping ${r} record(s) with no resolvable timestamp:`,{sample:i&&{time:i.time,id:i.id,node:i.node},timestamp:t.timestamp??`time`}),a}function qF(e,t,n){let r=typeof t.field==`string`?typeof n[t.field]==`number`?n[t.field]:null:zF(t.field,n);return VF(t.transform??{kind:`raw`},r,WF(e,n))}function JF(e,t,n,r,i){let a=new Map,o=new Map,s=KF(`runGroupBy`,e,n);for(let r=0;r<n.length;r++){let c=n[r],l=c[t.dimension];if(typeof l!=`string`&&typeof l!=`number`)continue;let u=qF(e,t.field,c);if(u===null)continue;let d=s[r];if(d===null)continue;let f=i?UF(e,c,d):d,p=typeof c.count==`number`&&Number.isFinite(c.count)?c.count:1,m=typeof c.node==`string`?c.node:`_no_node`;o.set(l,(o.get(l)??0)+p);let h=a.get(l);h||(h=new Map,a.set(l,h));let g=h.get(f);g||(g=new Map,h.set(f,g));let _=g.get(m);_||(_={items:[],totalCount:0},g.set(m,_)),_.items.push({value:u,count:p}),_.totalCount+=p}let c=t.field.aggregator?.temporal??e.aggregator.temporal,l=t.field.aggregator?.crossNode??e.aggregator.crossNode,u=c===`count-weighted-mean`||l===`count-weighted-mean`,d=[...o.entries()].sort((e,t)=>t[1]-e[1]),f=t.topN??1/0,p=d.slice(0,f),m=d.slice(f),h=[],g=0;for(let[n,i]of p){if(RF(i,e.confidence)===`suppress`){g++;continue}let o=a.get(n);if(!o)continue;let s=t.dimension===`node`;if(r&&!s){let e=new Map;for(let[t,n]of o)for(let[r,i]of n){let n=e.get(r);n||(n=new Map,e.set(r,n)),n.set(t,i)}for(let[t,r]of e){let e=[],i=[...r.keys()].sort((e,t)=>e-t);for(let t of i){let n=r.get(t),i=PF(c,n.items);e.push({x:t,y:i,count:n.totalCount})}h.push({key:HF(String(n),t),label:LF(t,c),dim:String(n),node:t,points:e,approx:u})}}else{let e=[],t=[...o.keys()].sort((e,t)=>e-t);for(let n of t){let{y:t,count:r}=XF(c,l,o.get(n));e.push({x:n,y:t,count:r})}h.push({key:String(n),label:LF(String(n),c),dim:String(n),...s?{node:String(n)}:{},points:e,approx:u})}}if(t.otherBucket&&m.length>0)if(RF(m.reduce((e,[,t])=>e+t,0),e.confidence)!==`suppress`){let e=new Map;for(let[t]of m){let n=a.get(t);if(n)for(let[t,r]of n){let n=e.get(t);n||(n=new Map,e.set(t,n));for(let[e,t]of r){let r=n.get(e);r||(r={items:[],totalCount:0},n.set(e,r));for(let e of t.items)r.items.push(e);r.totalCount+=t.totalCount}}}let t=[],n=[...e.keys()].sort((e,t)=>e-t);for(let r of n){let{y:n,count:i}=XF(c,l,e.get(r));t.push({x:r,y:n,count:i})}h.push({key:`Other`,label:LF(`Other`,c),dim:`Other`,points:t,approx:u})}else g++;return{series:h,thresholds:e.thresholds,...g>0?{suppressedSeriesCount:g}:{}}}function YF(e,t,n,r,i){let a=KF(`runFieldSpecs`,e,n);return{series:t.map(t=>{let o=new Map;for(let r=0;r<n.length;r++){let s=n[r],c=a[r];if(c===null)continue;let l=qF(e,t,s);if(l===null)continue;let u=typeof s.count==`number`&&Number.isFinite(s.count)?s.count:1,d=typeof s.node==`string`?s.node:`_no_node`,f=i?UF(e,s,c):c,p=o.get(f);p||(p=new Map,o.set(f,p));let m=p.get(d);m||(m={items:[],totalCount:0},p.set(d,m)),m.items.push({value:l,count:u}),m.totalCount+=u}let s=t.aggregator?.temporal??e.aggregator.temporal,c=t.aggregator?.crossNode??e.aggregator.crossNode,l=s===`count-weighted-mean`||c===`count-weighted-mean`,u=typeof t.field==`string`?t.field:t.label;if(r){let e=new Map;for(let[t,n]of o)for(let[r,i]of n){let n=e.get(r);n||(n=new Map,e.set(r,n)),n.set(t,i)}let n=[];for(let[r,i]of e){let e=[],a=[...i.keys()].sort((e,t)=>e-t);for(let t of a){let n=i.get(t),r=PF(s,n.items);e.push({x:t,y:r,count:n.totalCount})}n.push({key:HF(u,r),label:LF(`${t.label} — ${r}`,s),dim:u,node:r,axis:t.axis,points:e,approx:l})}return n}let d=[],f=[...o.keys()].sort((e,t)=>e-t);for(let e of f){let{y:t,count:n}=XF(s,c,o.get(e));d.push({x:e,y:t,count:n})}return[{key:u,label:LF(t.label,s),dim:u,axis:t.axis,points:d,approx:l}]}).flat(),thresholds:e.thresholds}}function XF(e,t,n){let r=[],i=0;for(let[,t]of n){let n=PF(e,t.items);typeof n==`number`&&Number.isFinite(n)&&r.push({value:n,count:t.totalCount}),i+=t.totalCount}return{y:PF(t,r),count:i}}var ZF=`pathMethod`,QF=` · `,$F={title:`Connection success ratio`,description:`Per-(path, method) connection ratio (count-weighted-mean). MQTT thresholds: connect ≥0.99, disconnect ≥0.2.`,tab:`traffic`,primaryDimension:`path`,subDimension:`method`,series:{kind:`groupBy`,dimension:ZF,field:{field:`ratio`,label:`success ratio`,transform:{kind:`ratio`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:100,suppressBelow:500},primitive:`line`,yAxis:{unit:``,formatter:`percent`},thresholds:[{value:.99,label:`connect`,direction:`below-is-bad`,minCount:1e3,scope:{path:`mqtt`,method:`connect`}},{value:.2,label:`disconnect`,direction:`below-is-bad`,minCount:500,scope:{path:`mqtt`,method:`disconnect`}}]};function eI(e,t){return typeof e!=`string`&&typeof e!=`number`||typeof t!=`string`&&typeof t!=`number`?null:`${e}${QF}${t}`}function tI(e){let t=[],n=new Map;for(let r of e){let{path:e,method:i}=r,a=eI(e,i);if(a===null)continue;n.has(a)||n.set(a,{path:String(e),method:String(i)});let{total:o,count:s}=r,c=o===0&&typeof s==`number`&&s>0;t.push({...r,[ZF]:a,ratio:c?null:r.ratio})}return{records:t,dimParts:n}}function nI({records:e,timeRange:t,nodes:n,viewMode:r=`per-node`,fillParent:i}){let a=r===`per-node`,{records:o,dimParts:s}=(0,I.useMemo)(()=>tI(e),[e]),c=(0,I.useMemo)(()=>$($F,o,t,n,{perNode:a,snapToPeriod:!0}),[o,t,n,a]),l=(0,I.useMemo)(()=>{let e=new Set;for(let t of c.series)e.add(t.dim??t.key);return[...e]},[c.series]),[u,d]=(0,I.useState)(()=>l[0]??``),f=l.includes(u)?u:l[0]??``,p=s.get(f)??null,{data:m,isActive:h,handleLegendClick:g}=Yr((0,I.useMemo)(()=>{function e(e){if(!e.scope)return!0;if(!p)return!1;for(let[t,n]of Object.entries(e.scope))if(p[t]!==String(n))return!1;return!0}return{...c,series:c.series.filter(e=>(e.dim??e.key)===f),thresholds:(c.thresholds??[]).filter(e)}},[c,f,p]),n);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)(Qr,{dimensionValues:l,selected:f,onSelect:d,ariaLabel:`Path · method`}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(NF,{data:m,yAxis:$F.yAxis,xDomain:[t.startTime,t.endTime],fillParent:i,hideLegend:a})}),a&&n.length>0&&(0,L.jsx)(Kr,{nodeIds:n,isActive:h,onClickNode:g})]})}function rI(e,t,n){let r=new Map;for(let t of e){let e=typeof t.path==`string`?t.path:null;if(!e||typeof t.time!=`number`||!Number.isFinite(t.time))continue;let n=typeof t.count==`number`&&Number.isFinite(t.count)?t.count:0,i=typeof t.total==`number`&&Number.isFinite(t.total)?t.total:0,a=r.get(e);a||(a=new Map,r.set(e,a));let o=a.get(t.time);o||(o={sumCount:0,sumTotal:0},a.set(t.time,o)),o.sumCount+=n,o.sumTotal+=i}return{series:[...r.entries()].map(([e,t])=>({key:e,label:e,points:[...t.keys()].sort((e,t)=>e-t).map(e=>{let n=t.get(e);return{x:e,y:n.sumCount===0?null:1-n.sumTotal/n.sumCount,count:n.sumCount}})})),thresholds:[{value:.001,label:`0.1% error SLO`,direction:`above-is-bad`,minCount:1e3}]}}var iI={id:`error-rate`,title:`Error rate (≥1000 req)`,subtitle:`errored-request fraction — 1 − Σtotal/Σcount`,tab:`requests`,sourceMetric:`success`,recompute:rI,primitive:`line`,yAxis:{unit:``,formatter:`percent`}},aI=[`var(--chart-type-1)`,`var(--chart-type-2)`,`var(--chart-type-3)`,`var(--chart-type-4)`,`var(--chart-type-5)`,`var(--chart-type-6)`];function oI(e,t){let n=[...t].sort().indexOf(e);return aI[(n<0?0:n)%aI.length]}function sI({panels:e,minPanelWidth:t=320,panelHeight:n=240,xDomain:r,fillParent:i}){let a=(0,I.useMemo)(()=>{let t=new Set;for(let n of e)for(let e of n.data.series)e.node&&t.add(e.node);return[...t].sort()},[e]),{isActive:o,handleLegendClick:s}=Jr(a),c=(0,I.useMemo)(()=>e.map(e=>({...e,data:{...e.data,series:e.data.series.filter(e=>e.node===void 0||o(e.node)).map(e=>e.node===void 0?e:{...e,color:e.color??Ur(e.node,a)})}})),[e,o,a]);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)(`div`,{className:`flex-1 min-h-0`,style:{display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(${t}px, 1fr))`,gap:`1rem`},children:c.map((e,t)=>(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{id:`sm-panel-${t}-title`,"data-testid":`small-multiple-title`,style:{fontSize:12,fontWeight:600,marginBottom:4},children:e.title}),(0,L.jsx)(NF,{data:e.data,yAxis:e.yAxis,xDomain:r,height:n,fillParent:i,ariaLabel:`${e.title}: chart with ${e.data.series.length} series`,hideLegend:!0})]},e.title))}),a.length>0&&(0,L.jsx)(Kr,{nodeIds:a,isActive:o,onClickNode:s})]})}function cI(){let[e,t]=(0,I.useState)(()=>typeof document<`u`&&document.documentElement.classList.contains(`dark`));return(0,I.useEffect)(()=>{let e=document.documentElement;t(e.classList.contains(`dark`));let n=new MutationObserver(()=>{t(e.classList.contains(`dark`))});return n.observe(e,{attributes:!0,attributeFilter:[`class`]}),()=>n.disconnect()},[]),e?`dark`:`light`}function lI(e){return[...e].sort((e,t)=>uI(t)-uI(e))}function uI(e){return e.points.reduce((e,t)=>e+(typeof t.y==`number`?t.y:0),0)}function dI(e){let t=e.series.map(e=>e.label);return t.length===0?`Empty stacked area chart`:`Stacked area chart with ${t.length} series: ${t.slice(0,5).join(`, `)}${t.length>5?`…`:``}`}function fI({data:e,yAxis:t,height:n=240,ariaLabel:r,xDomain:i,fillParent:a,lineOnly:o}){let s=(0,I.useMemo)(()=>lI(e.series),[e.series]),c=cI(),l=Or(!!a),{hovered:u,gateProps:d}=OF(),f=(0,I.useMemo)(()=>[...new Set(e.series.flatMap(e=>e.node===void 0?[]:[e.node]))],[e.series]);if(e.series.length===0)return(0,L.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:`text-(--color-text-secondary) text-sm p-4`,children:`No data in window`});let p=bF(),m=new Set;for(let t of e.series)for(let e of t.points)m.add(e.x);if(e.ceiling)for(let t of e.ceiling.points)m.add(t.x);let h=e.series.map(e=>{let t=new Map;for(let n of e.points)t.set(n.x,n.y);return t}),g=e.ceiling?new Map(e.ceiling.points.map(e=>[e.x,e.y])):null,_=e.series.map(()=>null),v=null,y=[...m].sort((e,t)=>e-t).map(t=>{let n={x:t};return e.series.forEach((e,r)=>{let i=h[r];i.has(t)&&(_[r]=i.get(t)??null),n[e.key]=_[r]}),g&&e.ceiling&&(g.has(t)&&(v=g.get(t)??null),n.__ceiling__=v),n}),b=t?.formatter,x=t?.unit,S=c===`dark`?.5:.35;return(0,L.jsx)(`div`,{role:`img`,"aria-label":r??dI(e),style:a?{width:`100%`,height:`100%`,minHeight:0,flex:`1 1 auto`,display:`flex`,flexDirection:`column`}:{width:`100%`,height:n},...d,children:(0,L.jsx)(`div`,{"aria-hidden":`true`,style:{width:`100%`,height:`100%`},children:(0,L.jsx)(Bd,{width:`100%`,height:`100%`,children:(0,L.jsxs)(yF,{data:y,...l,children:[(0,L.jsx)(Ik,{stroke:p.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(lN,{dataKey:`x`,type:`number`,domain:i??[`dataMin`,`dataMax`],allowDataOverflow:!!i,tickFormatter:CF,stroke:p.axisColor,tick:{fontSize:11}}),(0,L.jsx)(wN,{tickFormatter:e=>xe(e,b,x),stroke:p.axisColor,tick:{fontSize:11},width:70}),(0,L.jsx)(pC,{isAnimationActive:!1,content:(0,L.jsx)(AF,{hidden:!u,formatter:b,unitSuffix:x,nodeNames:f,showTotal:!0})}),(0,L.jsx)(zf,{}),s.map((e,t)=>(0,L.jsx)(Nj,{type:`monotone`,dataKey:e.key,name:e.label,stackId:`1`,stroke:e.color??Hr[t%Hr.length],strokeWidth:o?2:1,fill:o?`none`:e.color??Hr[t%Hr.length],fillOpacity:o?0:S,connectNulls:!1},e.key)),e.ceiling?(0,L.jsx)(BA,{type:`monotone`,dataKey:`__ceiling__`,name:e.ceiling.label,stroke:p.axisColor,strokeWidth:2,strokeDasharray:`6 3`,dot:!1}):null]})})})})}function pI({values:e,isActive:t,onClick:n,colorFor:r,ariaLabel:i=`Type filter`}){return e.length===0?null:(0,L.jsx)(`div`,{role:`group`,"aria-label":i,className:`flex flex-wrap justify-center gap-x-3 gap-y-1 pt-2 text-[11px]`,children:e.map(e=>{let i=t(e),a=r?r(e):`var(--color-text-secondary)`;return(0,L.jsxs)(`button`,{type:`button`,"aria-pressed":i,"data-testid":`type-filter-chip`,"data-value":e,title:`Click to solo · Ctrl-click to toggle`,onClick:t=>n(e,t.ctrlKey||t.metaKey),className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:{color:a,opacity:i?1:.55},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:a}}),(0,L.jsx)(`span`,{children:e})]},e)})})}function mI({spec:e,typeField:t,records:n,timeRange:r,nodes:i,viewMode:a=`aggregate`,fillParent:o}){let[s,c]=(0,I.useState)(a===`per-node`?`node`:`type`),l=(0,I.useMemo)(()=>{let e=new Set;for(let r of n){let n=r[t];typeof n==`string`&&e.add(n)}return[...e].sort()},[n,t]),{isActive:u,handleClick:d}=qr(l),{isActive:f,handleLegendClick:p}=Jr(i),m=l.length>0&&l.every(u),h=i.every(e=>f(e)),g=!(m&&h),_=(0,I.useMemo)(()=>n.filter(e=>{let n=e[t];return!(typeof n==`string`&&!u(n)||typeof e.node==`string`&&!f(e.node))}),[n,t,u,f]),v=(0,I.useMemo)(()=>s!==`node`||e.series.kind!==`groupBy`?e:{...e,series:{...e.series,dimension:`node`}},[e,s]),y=(0,I.useMemo)(()=>$(v,_,r,i,{snapToPeriod:!0}),[v,_,r,i]),b=(0,I.useMemo)(()=>({...y,series:y.series.map(e=>({...e,color:e.color??(s===`node`?Ur(e.key,i):oI(e.key,l))}))}),[y,s,i,l]),x=(0,I.useMemo)(()=>s===`grid`?i.filter(f).map(t=>{let n=$(e,_.filter(e=>e.node===t),r,[t],{snapToPeriod:!0});return{title:t,data:{...n,series:n.series.map(e=>({...e,color:e.color??oI(e.key,l)}))},yAxis:e.yAxis}}):null,[s,i,f,_,e,r,l]),S=i.length>1,C=[r.startTime,r.endTime],w=`left`in e.yAxis?e.yAxis.left:e.yAxis;return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)(pI,{values:l,isActive:u,onClick:d,colorFor:e=>oI(e,l),ariaLabel:t===`type`?`Traffic type`:t===`database`?`Database`:`Protocol`}),S&&(0,L.jsx)(_I,{stackBy:s,onChange:c}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:s===`grid`&&x?(0,L.jsx)(sI,{panels:x,xDomain:C,fillParent:o}):(0,L.jsx)(fI,{data:b,yAxis:w,xDomain:C,fillParent:o,lineOnly:g})}),i.length>0&&(0,L.jsx)(Kr,{nodeIds:i,isActive:f,onClickNode:p})]})}var hI=[{value:`type`,label:`Type`},{value:`node`,label:`Node`},{value:`grid`,label:`Per-node grid`}],gI=hI.map(e=>e.value);function _I({stackBy:e,onChange:t}){let{getRadioProps:n}=Xr(gI,e,t);return(0,L.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Stack by`,className:`flex flex-wrap items-center gap-x-3 gap-y-1 pt-2 text-[11px]`,children:[(0,L.jsx)(`span`,{className:`text-muted-foreground`,children:`Stack by:`}),hI.map((t,r)=>{let i=e===t.value;return(0,L.jsx)(`button`,{type:`button`,...n(r),"data-testid":`stack-by-button`,"data-value":t.value,className:`inline-flex items-center cursor-pointer border-none bg-transparent p-0 text-(--color-text-secondary)`,style:{opacity:i?1:.55},children:t.label},t.value)})]})}function vI({id:e,title:t,subtitle:n,sourceMetric:r,innerTitle:i,innerDescription:a}){let o={title:i,description:a,tab:`traffic`,primaryDimension:`node`,subDimension:`type`,series:{kind:`groupBy`,dimension:`type`,field:{field:`count`,label:`messages/sec`,transform:{kind:`rate`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`sum`,crossNode:`sum`},primitive:`stacked-area`,yAxis:{unit:` msg/s`,formatter:`count-si`}};return{id:e,title:t,subtitle:n,tab:`traffic`,sourceMetric:r,recompute:(e,t,n,r)=>{let i=(r??`per-node`)===`per-node`,a=o;return i&&o.series.kind===`groupBy`&&(a={...o,series:{...o.series,dimension:`node`}}),$(a,e,t,n,{snapToPeriod:!0})},Renderer:e=>(0,L.jsx)(mI,{spec:o,typeField:`type`,...e}),primitive:`stacked-area`,yAxis:{unit:` msg/s`,formatter:`count-si`}}}var yI=vI({id:`mqtt-traffic-sent`,title:`Messages sent by type`,subtitle:`Outbound message rate. Type chips solo / Ctrl-toggle; viewMode flips type/node stack.`,sourceMetric:`bytes-sent`,innerTitle:`Messages sent by type (inner)`,innerDescription:`Outbound message rate — cluster total across nodes. Internal spec used by mqtt-traffic-sent.recompute; not registered.`}),bI=vI({id:`mqtt-traffic-received`,title:`Messages received by type`,subtitle:`Inbound message rate. Type chips solo / Ctrl-toggle; viewMode flips type/node stack.`,sourceMetric:`bytes-received`,innerTitle:`Messages received by type (inner)`,innerDescription:`Inbound message rate — cluster total across nodes. Internal spec used by mqtt-traffic-received.recompute; not registered.`});function xI({records:e,timeRange:t,nodes:n,viewMode:r=`per-node`,yAxis:i,thresholds:a,compute:o,fillParent:s}){let c=t?[t.startTime,t.endTime]:void 0,l=r===`per-node`,u=(0,I.useMemo)(()=>{let t=new Map;for(let n of e){let e=n.path;if(typeof e!=`string`)continue;let r=n.count,i=typeof r==`number`&&Number.isFinite(r)?r:0;t.set(e,(t.get(e)??0)+i)}return[...t.entries()].sort((e,t)=>t[1]-e[1]).map(([e])=>e)},[e]),[d,f]=(0,I.useState)(``),p=u.includes(d)?d:l?u[0]??``:``,m=(0,I.useMemo)(()=>o(e,{perNode:l,selectedPath:p||null}),[e,l,p,o]),{isActive:h,handleLegendClick:g}=Jr(n),_=(0,I.useMemo)(()=>({...m,thresholds:a??m.thresholds,series:m.series.map(e=>l?{...e,label:Wr(e.key),color:Ur(e.key,n)}:e).filter(e=>!l||h(e.key))}),[m,l,n,h,a]);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[u.length>0&&(0,L.jsx)(Qr,{dimensionValues:u,selected:p,onSelect:f,ariaLabel:`Path`}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:u.length>0?8:0},children:(0,L.jsx)(NF,{data:_,yAxis:i,xDomain:c,fillParent:s,hideLegend:l})}),l&&n.length>0&&(0,L.jsx)(Kr,{nodeIds:n,isActive:h,onClickNode:g})]})}function SI(e,t,n){let r=new Map;for(let t of e){let e=typeof t.path==`string`?t.path:null;if(!e||typeof t.time!=`number`||!Number.isFinite(t.time))continue;let n=typeof t.count==`number`&&Number.isFinite(t.count)?t.count:0,i=typeof t.period==`number`&&t.period>0?t.period:6e4,a=r.get(e);a||(a=new Map,r.set(e,a));let o=a.get(t.time);o||(o={sumCount:0,period:i},a.set(t.time,o)),o.sumCount+=n}return{series:[...r.entries()].map(([e,t])=>({key:e,label:e,points:[...t.keys()].sort((e,t)=>e-t).map(e=>{let n=t.get(e),r=n.period/1e3;return{x:e,y:r>0?n.sumCount/r:null,count:n.sumCount}})}))}}function CI(e,{perNode:t,selectedPath:n}){if(t&&n){let t=new Map;for(let r of e){if(r.path!==n||typeof r.time!=`number`||!Number.isFinite(r.time))continue;let e=typeof r.node==`string`?r.node:`_no_node`,i=typeof r.count==`number`&&Number.isFinite(r.count)?r.count:0,a=typeof r.period==`number`&&r.period>0?r.period:6e4,o=t.get(e);o||(o=new Map,t.set(e,o));let s=o.get(r.time);s||(s={sumCount:0,period:a},o.set(r.time,s)),s.sumCount+=i}return{series:[...t.entries()].map(([e,t])=>({key:e,label:e,points:[...t.keys()].sort((e,t)=>e-t).map(e=>{let n=t.get(e),r=n.period/1e3;return{x:e,y:r>0?n.sumCount/r:null,count:n.sumCount}})}))}}return SI(n?e.filter(e=>e.path===n):e,{startTime:0,endTime:2**53-1},[])}var wI={id:`request-rate`,title:`Request rate (req/s)`,subtitle:`Per-path req/s. Chip selects path; viewMode flips per-node lines / cluster aggregate.`,tab:`requests`,sourceMetric:`duration`,recompute:SI,Renderer:({records:e,timeRange:t,nodes:n,viewMode:r})=>(0,L.jsx)(xI,{records:e,timeRange:t,nodes:n,viewMode:r,yAxis:{unit:`/s`,formatter:`count-si`},compute:CI}),primitive:`line`,yAxis:{unit:`/s`,formatter:`count-si`}};function TI(e,t,n){let r=new Map;for(let t of e){let e=typeof t.database==`string`?t.database:null;if(!e)continue;let n=typeof t.id==`number`?t.id:typeof t.time==`number`?t.time:null;if(n===null)continue;let i=typeof t.node==`string`?t.node:`_no_node`,a=typeof t.transactionLog==`number`&&Number.isFinite(t.transactionLog)?t.transactionLog:null;if(a===null)continue;let o=r.get(e);o||(o=new Map,r.set(e,o));let s=o.get(i);s||(s=[],o.set(i,s)),s.push({time:n,logBytes:a})}let i=6e4,a=[];for(let[e,t]of r.entries()){let n=new Map;for(let e of t.values()){e.sort((e,t)=>e.time-t.time);for(let t=1;t<e.length;t++){let r=e[t-1],a=e[t],o=a.time-r.time;if(o<=0)continue;let s=a.logBytes-r.logBytes;if(!Number.isFinite(s)||s<0)continue;let c=s*1e3/o;if(!Number.isFinite(c))continue;let l=o>=i?Math.round(a.time/i)*i:a.time;n.set(l,(n.get(l)??0)+c)}}let r=[...n.keys()].sort((e,t)=>e-t).map(e=>({x:e,y:n.get(e)}));a.push({key:e,label:e,points:r})}return{series:a}}var EI={"mqtt-traffic-sent":yI,"mqtt-traffic-received":bI,"request-rate":wI,"error-rate":iI,"transaction-log-growth":{id:`transaction-log-growth`,title:`Transaction log growth`,subtitle:"Per-database transaction-log write rate (bytes/sec) — derived from `transactionLog` deltas in the database-size response.",tab:`storage`,sourceMetric:`database-size`,recompute:TI,primitive:`line`,yAxis:{unit:`/s`,formatter:`bytes-si`}}},DI=[{key:`utilization`,label:`Utilization`,field:{kind:`op`,op:`/`,left:{kind:`ref`,field:`active`},right:{kind:`op`,op:`+`,left:{kind:`ref`,field:`active`},right:{kind:`ref`,field:`idle`}}},yAxis:{unit:``,formatter:`percent`}},{key:`taskQueueLatency`,label:`Queue lag`,field:`taskQueueLatency`,yAxis:{unit:``,formatter:`ms`}},{key:`active`,label:`Active time`,field:`active`,yAxis:{unit:``,formatter:`ms`}},{key:`idle`,label:`Idle time`,field:`idle`,yAxis:{unit:``,formatter:`ms`}}],OI=DI.map(e=>e.key),kI={title:`Main thread utilization`,description:`Per-node main-thread metrics — chip selector picks utilization / queue lag / active time / idle time.`,tab:`health`,primaryDimension:`node`,series:{kind:`field`,fields:[{field:DI[0].field,label:DI[0].label}]},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`mean`,crossNode:`mean`},primitive:`line`,yAxis:DI[0].yAxis,layout:{colSpan:2}};function AI({records:e,timeRange:t,nodes:n,viewMode:r=`per-node`,fillParent:i}){let a=r===`per-node`,[o,s]=(0,I.useState)(DI[0].key),c=OI.includes(o)?o:DI[0].key,l=DI.find(e=>e.key===c),{data:u,isActive:d,handleLegendClick:f}=Yr((0,I.useMemo)(()=>$({...kI,series:{kind:`field`,fields:[{field:l.field,label:l.label}]},yAxis:l.yAxis},e,t,n,{perNode:a,snapToPeriod:!0}),[l,e,t,n,a]),n);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)(Qr,{dimensionValues:OI.map(e=>DI.find(t=>t.key===e).label),selected:l.label,onSelect:e=>{let t=DI.find(t=>t.label===e);t&&s(t.key)},ariaLabel:`Main thread metric`}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(NF,{data:u,yAxis:l.yAxis,xDomain:[t.startTime,t.endTime],fillParent:i,hideLegend:a})}),a&&n.length>0&&(0,L.jsx)(Kr,{nodeIds:n,isActive:d,onClickNode:f})]})}var jI=[{field:`heapUsed`,label:`heap used`},{field:`heapTotal`,label:`heap total`},{field:`external`,label:`external`},{field:`arrayBuffers`,label:`arrayBuffers`}],MI={title:`Process memory`,description:`Per-node V8 memory — chip selector picks the field. Default heap used.`,tab:`health`,primaryDimension:`node`,series:{kind:`field`,fields:[...jI]},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`last`,crossNode:`mean`},primitive:`line`,yAxis:{unit:` B`,formatter:`bytes-si`}},NI=jI.map(e=>e.label);function PI({records:e,timeRange:t,nodes:n,viewMode:r=`per-node`,fillParent:i}){let a=r===`per-node`,[o,s]=(0,I.useState)(jI[0].label),c=NI.includes(o)?o:jI[0].label,l=jI.find(e=>e.label===c),{data:u,isActive:d,handleLegendClick:f}=Yr((0,I.useMemo)(()=>$({...MI,series:{kind:`field`,fields:[l]}},e,t,n,{perNode:a,snapToPeriod:!0}),[l,e,t,n,a]),n);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)(Qr,{dimensionValues:NI,selected:c,onSelect:s,ariaLabel:`Memory field`}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(NF,{data:u,yAxis:MI.yAxis,xDomain:[t.startTime,t.endTime],fillParent:i,hideLegend:a})}),a&&n.length>0&&(0,L.jsx)(Kr,{nodeIds:n,isActive:d,onClickNode:f})]})}function FI({source:e,target:t,open:n,onOpenChange:r,description:i,children:a}){return(0,L.jsx)(A,{open:n,onOpenChange:r,children:(0,L.jsxs)(te,{className:`!max-w-[95vw] sm:!max-w-[95vw] h-[90vh] flex flex-col`,children:[(0,L.jsxs)(j,{children:[(0,L.jsx)(ie,{children:`${e} → ${t}`}),i&&(0,L.jsx)(se,{children:i})]}),(0,L.jsx)(`div`,{className:`flex-1 min-h-0 overflow-hidden flex flex-col`,children:a})]})})}function II(e,t,n){return{marginBottom:8,padding:`4px 8px`,fontSize:12,borderLeft:`3px solid var(${e}, ${t})`,background:`color-mix(in srgb, var(${e}, ${t}) ${n}%, transparent)`,color:`currentColor`}}var LI=II(`--color-warning`,`#f59e0b`,12),RI=II(`--color-info`,`#3b82f6`,10);function zI(e,t,n,r,i,a){if(t<=0)return a;let o=e-n-r*Math.max(0,t-1),s=Math.floor(o/t);return Math.max(i,Math.min(a,s))}var BI=`var(--chart-heatmap-muted-bg, #f3f4f6)`,VI=`var(--chart-heatmap-muted-stroke, #9ca3af)`,HI=`var(--chart-heatmap-grey-stroke, #9ca3af)`,UI=[`#fef3c7`,`#fcd34d`,`#f59e0b`,`#dc2626`,`#7f1d1d`],WI=[`#713f12`,`#b45309`,`#d97706`,`#f59e0b`,`#fef3c7`];function GI(e){let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4}function KI(e){let t=e.replace(`#`,``),n=parseInt(t.slice(0,2),16),r=parseInt(t.slice(2,4),16),i=parseInt(t.slice(4,6),16);return .2126*GI(n)+.7152*GI(r)+.0722*GI(i)}function qI(e){let t=e.replace(`#`,``);return[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16)]}function JI(e,t,n){let r=e=>Math.round(Math.max(0,Math.min(255,e))).toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`}function YI(e,t){if(t<=0)return e[0];if(t>=1)return e[e.length-1];let n=t*(e.length-1),r=Math.floor(n),i=n-r,[a,o,s]=qI(e[r]),[c,l,u]=qI(e[r+1]);return JI(a+(c-a)*i,o+(l-o)*i,s+(u-s)*i)}function XI(e,t,n){if(!e||e.value===null||e.value===void 0)return`absent`;let r=e.count??0;return r<t?`suppress`:r<n?`grey`:`ok`}function ZI(e){return e===`ok`||e===`grey`}function QI(e,t){return e.length>t?e.slice(0,t-1)+`…`:e}function $I(e,t,n,r,i,a,o,s){let c=`${e} → ${t}: `,l=o?` (approx)`:``;if(r===`absent`)return`${c}no data`;if(r===`suppress`)return`${c}insufficient samples (n<${a}), value hidden`;let u=n?.value??0,d=n?.count??0;return r===`grey`?`${c}${u} ${i} ${s} (approx, low-confidence: ${d} samples below threshold)`:`${c}${u} ${i} ${s}${l}, ${d} samples`}function eL({stops:e,vmin:t,vmax:n,width:r,axis:i,approx:a,measureLabel:o}){let s=(0,I.useId)(),c=i?.unit??``,l=e=>xe(e,i?.formatter),u=(t+n)/2,d=Math.max(200,Math.min(r,480));return(0,L.jsxs)(`svg`,{role:`img`,"aria-label":`${a?`${o} (count-weighted-mean, approx)`:o}: ${l(t)}–${l(n)} ${c}. Higher value = worse latency.`,width:d+80,height:40,style:{overflow:`visible`},children:[(0,L.jsx)(`defs`,{children:(0,L.jsx)(`linearGradient`,{id:s,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`,children:e.map((t,n)=>(0,L.jsx)(`stop`,{offset:`${n/(e.length-1)*100}%`,stopColor:t},t+n))})}),(0,L.jsx)(`text`,{x:0,y:14,fontSize:10,fill:`currentColor`,"aria-hidden":`true`,children:`low`}),(0,L.jsx)(`rect`,{x:30,y:0,width:d,height:12,fill:`url(#${s})`,"aria-hidden":`true`}),(0,L.jsx)(`text`,{x:30+d+4,y:14,fontSize:10,fill:`currentColor`,"aria-hidden":`true`,children:`high`}),(0,L.jsx)(`text`,{x:30,y:30,fontSize:10,fill:`currentColor`,"aria-hidden":`true`,children:l(t)}),(0,L.jsx)(`text`,{x:30+d/2,y:30,fontSize:10,fill:`currentColor`,textAnchor:`middle`,"aria-hidden":`true`,children:l(u)}),(0,L.jsx)(`text`,{x:30+d,y:30,fontSize:10,fill:`currentColor`,textAnchor:`end`,"aria-hidden":`true`,children:l(n)})]})}var tL=40,nL=80,rL=4,iL=200,aL=11,oL=45,sL=7.2,cL=8,lL=6,uL=72;function dL(e){return e<56?8:20}function fL(e,t){let n=(e.reduce((e,n)=>Math.max(e,Math.min(n.length,dL(t))),0)*sL+aL)*Math.SQRT1_2;return Math.max(uL,Math.ceil(n)+cL+lL)}function pL({data:e,title:t,height:n,onCellSelect:r}){let i=(0,I.useId)(),a=(0,I.useId)(),o=(0,I.useId)(),s=cI(),c=e.confidence?.greyBelow??0,l=e.confidence?.suppressBelow??0,u=s===`dark`?WI:UI,d=e.approx===!0,f=e.axis?.unit??``,p=e.measureLabel??`p95 latency`,m=(0,I.useMemo)(()=>{let t=new Map;for(let n of e.cells)t.set(`${n.row}|${n.col}`,n);return t},[e.cells]),[h,g]=(0,I.useMemo)(()=>{if(e.valueRange)return[e.valueRange.min,e.valueRange.max];let t=1/0,n=-1/0;for(let r of e.cells)r.value!==null&&r.value!==void 0&&Number.isFinite(r.value)&&(r.value<t&&(t=r.value),r.value>n&&(n=r.value));return!Number.isFinite(t)||!Number.isFinite(n)?[0,1]:t===n?[t,t+1]:[t,n]},[e.cells,e.valueRange]),_=e.rows,v=e.cols,y=(0,I.useMemo)(()=>v.map(Wr),[v]),b=(0,I.useRef)(null),[x,S]=(0,I.useState)(nL),C=(0,I.useRef)(null);(0,I.useLayoutEffect)(()=>{let e=b.current?.clientWidth??0;S(zI(e,v.length,iL,rL,tL,nL))},[v.length]),(0,I.useEffect)(()=>{let e=b.current;if(!e)return;let t=new ResizeObserver(()=>{C.current!==null&&cancelAnimationFrame(C.current),C.current=requestAnimationFrame(()=>{C.current=null;let t=e.clientWidth;S(zI(t,v.length,iL,rL,tL,nL))})});return t.observe(e),()=>{t.disconnect(),C.current!==null&&cancelAnimationFrame(C.current)}},[v.length]);let w=v.length*x+(v.length-1)*rL,T=_.length*x+(_.length-1)*rL,E=fL(y,x),D=iL+w+8,O=E+T+8,[k,A]=(0,I.useState)([0,0]),j=Math.max(0,Math.min(k[0],_.length-1)),M=Math.max(0,Math.min(k[1],v.length-1)),N=(0,I.useRef)(new Map),ee=(0,I.useCallback)((e,t)=>{let n=N.current.get(`${e}|${t}`);n&&(A([e,t]),n.focus())},[]),te=(0,I.useCallback)((e,t,n)=>{let i=e.key;if(i===`Enter`||i===` `){if(!r)return;e.preventDefault(),e.stopPropagation();let i=_[t],a=v[n];ZI(XI(m.get(`${i}|${a}`),c,l))&&r(i,a);return}let a=!1,o=t,s=n;i===`ArrowRight`?(a=!0,s=Math.min(v.length-1,n+1)):i===`ArrowLeft`?(a=!0,s=Math.max(0,n-1)):i===`ArrowDown`?(a=!0,o=Math.min(_.length-1,t+1)):i===`ArrowUp`?(a=!0,o=Math.max(0,t-1)):i===`Home`?(a=!0,s=0):i===`End`?(a=!0,s=v.length-1):i===`PageUp`?(a=!0,o=Math.max(0,t-5)):i===`PageDown`&&(a=!0,o=Math.min(_.length-1,t+5)),a&&(e.preventDefault(),e.stopPropagation(),(o!==t||s!==n)&&ee(o,s))},[_,v,ee,m,c,l,r]),ne=e=>e.startsWith(`#`)?KI(e)>.5?`#000000`:`#ffffff`:`#000000`;return(0,L.jsxs)(`div`,{style:{position:`relative`},children:[e.skippedRecordsCount>0?(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:LI,children:`${e.skippedRecordsCount} record(s) omitted — source node unrecognized (cluster node list may be outdated).`},e.skippedRecordsCount):null,(0,L.jsx)(`p`,{id:i,style:{position:`absolute`,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,border:0},children:t??`Heatmap`}),(0,L.jsx)(`p`,{id:a,"data-testid":`heatmap-desc`,style:{position:`absolute`,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,border:0},children:(()=>{let e=`${d?`Cells show count-weighted-mean ${p} (approx).`:`Cells show ${p}.`} Cells with fewer than ${l} samples are blank; ${c}–${l-1} render grey.`;return r?`${e} Click a populated cell, or press Enter or Space on it, to open its trend.`:e})()}),(0,L.jsx)(`div`,{ref:b,style:{width:`100%`,display:`block`,overflowX:`auto`},children:(0,L.jsxs)(`svg`,{role:`grid`,"aria-labelledby":i,"aria-describedby":a,width:D,height:n??O,viewBox:`0 0 ${D} ${O}`,"data-cell-size":x,style:{overflow:`visible`,display:`block`},children:[(0,L.jsx)(`defs`,{children:(0,L.jsxs)(`pattern`,{id:o,patternUnits:`userSpaceOnUse`,width:8,height:8,patternTransform:`rotate(45)`,children:[(0,L.jsx)(`rect`,{width:8,height:8,fill:BI}),(0,L.jsx)(`line`,{x1:0,y1:0,x2:0,y2:8,stroke:VI,strokeWidth:2})]})}),(0,L.jsxs)(`g`,{role:`row`,children:[(0,L.jsx)(`rect`,{x:0,y:0,width:iL,height:E,fill:`transparent`,"aria-hidden":`true`}),v.map((e,t)=>{let n=iL+t*(x+rL)+x/2,r=E-lL,i=dL(x);return(0,L.jsx)(`g`,{role:`columnheader`,"aria-label":e,children:(0,L.jsxs)(`text`,{x:n,y:r,fontSize:aL,textAnchor:`end`,transform:`rotate(${oL}, ${n}, ${r})`,fill:`currentColor`,children:[QI(Wr(e),i),(0,L.jsx)(`title`,{children:e})]})},e)})]}),_.map((e,t)=>{let n=E+t*(x+rL);return(0,L.jsxs)(`g`,{role:`row`,children:[(0,L.jsx)(`g`,{role:`rowheader`,"aria-label":e,children:(0,L.jsxs)(`text`,{x:iL-8,y:n+x/2+4,fontSize:12,textAnchor:`end`,fill:`currentColor`,children:[QI(Wr(e),24),(0,L.jsx)(`title`,{children:e})]})}),v.map((i,a)=>{let s=m.get(`${e}|${i}`),_=XI(s,c,l),v=iL+a*(x+rL),y=n,b=$I(e,i,s,_,f,l,d,p),S=j===t&&M===a,C=`transparent`,w,T=1,E,D=0;if(_===`absent`)C=`transparent`,w=`3 3`,E=VI,D=1;else if(_===`suppress`)C=`url(#${o})`,w=`3 3`,E=VI,D=1;else{let e=g>h?((s?.value??0)-h)/(g-h):0;C=YI(u,e),_===`grey`&&(T=.55,w=`4 2`,E=HI,D=1)}let O=_===`ok`||_===`grey`?YI(u,g>h?((s?.value??0)-h)/(g-h):0):`#808080`,k=ne(O),ee=e=>{e?N.current.set(`${t}|${a}`,e):N.current.delete(`${t}|${a}`)},re=r!==void 0&&ZI(_);return(0,L.jsxs)(`g`,{ref:ee,role:`gridcell`,"aria-label":b,"aria-disabled":r!==void 0&&!re||void 0,"data-confidence":_,tabIndex:S?0:-1,onClick:re?()=>r(e,i):void 0,onKeyDown:e=>te(e,t,a),onFocus:()=>A([t,a]),style:{outline:`none`,cursor:re?`pointer`:`default`},children:[(0,L.jsx)(`rect`,{x:v,y,width:x,height:x,rx:4,ry:4,style:{fill:C},opacity:T,stroke:E,strokeWidth:D,strokeDasharray:w,children:(0,L.jsx)(`title`,{children:b})}),S?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`rect`,{x:v-1,y:y-1,width:x+2,height:x+2,rx:5,ry:5,fill:`none`,stroke:k,strokeWidth:1,pointerEvents:`none`}),(0,L.jsx)(`rect`,{x:v,y,width:x,height:x,rx:4,ry:4,fill:`none`,stroke:`var(--color-accent, #3b82f6)`,strokeWidth:1,pointerEvents:`none`})]}):null]},i)})]},e)})]})}),(0,L.jsx)(`div`,{style:{marginTop:8},children:(0,L.jsx)(eL,{stops:u,vmin:h,vmax:g,width:w,axis:e.axis,approx:d,measureLabel:p})})]})}var mL=new WeakMap;function hL(e){let t=mL.get(e);return t||(t=[...e].sort((e,t)=>t.length-e.length),mL.set(e,t)),t}function gL(e,t){if(typeof e!=`string`||e.length===0)return null;let n=hL(t);for(let t of n){if(!e.startsWith(t+`.`))continue;let n=e.slice(t.length+1),r=n.indexOf(`.`);if(r===-1)return null;let i=n.slice(0,r),a=n.slice(r+1);return i.length===0||a.length===0?null:{source:t,database:i,table:a}}let r=e.split(`.`);if(r.length<3)return null;let i=r[r.length-1],a=r[r.length-2],o=r.slice(0,-2).join(`.`);return!o||!a||!i?null:{source:o,database:a,table:i}}var _L=[{field:`p1`,label:`p1`},{field:`p10`,label:`p10`},{field:`p25`,label:`p25`},{field:`median`,label:`p50`},{field:`p75`,label:`p75`},{field:`p90`,label:`p90`},{field:`p95`,label:`p95`},{field:`p99`,label:`p99`},{field:`p999`,label:`p999`}],vL={greyBelow:40,suppressBelow:100},yL={title:`Replication latency`,description:`Source → destination p95 latency, count-weighted-mean across the window. Approximate.`,tab:`replication`,primaryDimension:`path`,subDimension:`node`,series:{kind:`groupBy`,dimension:`path`,field:{field:`p95`,label:`p95 latency`}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:vL,primitive:`heatmap`,yAxis:{unit:``,formatter:`ms`}};function bL(e,t,n){return e===1?t:n}function xL(e,t,n){let r=0,i=0,a=[],o=new Set,s=new Set(t);for(let c of e){let e=gL(typeof c.path==`string`?c.path:``,t);if(!e){r++;continue}s.has(e.source)||o.add(e.source);let l=c[n],u=typeof l==`number`?l:NaN,d=typeof c.count==`number`?c.count:0;if(!Number.isFinite(u)){i++;continue}a.push({source:e.source,destination:c.node,value:u,count:d,time:typeof c.time==`number`?c.time:null})}return{parsed:a,unparseablePathCount:r,missingValueCount:i,unrecognizedSources:[...o].sort()}}function SL(e){let{parsed:t,unparseablePathCount:n,missingValueCount:r,unrecognizedSources:i}=e,a=n+r;if(t.length===0)return{rows:[],cols:[],cells:[],axis:{unit:``,formatter:`ms`},confidence:vL,rowAxisLabel:`Source`,colAxisLabel:`Destination`,skippedRecordsCount:a,unparseablePathCount:n,missingValueCount:r,unrecognizedSources:i,approx:!0};let o=new Map,s=new Set,c=new Set;for(let e of t){s.add(e.source),c.add(e.destination);let t=`${e.source}|${e.destination}`,n=o.get(t);n||(n={items:[],totalCount:0},o.set(t,n)),n.items.push({value:e.value,count:e.count}),n.totalCount+=e.count}let l=[...s].sort(),u=[...c].sort(),d=!1,f=[];for(let e of l)for(let t of u){let n=o.get(`${e}|${t}`);n?(n.items.length>1&&(d=!0),f.push({row:e,col:t,value:PF(`count-weighted-mean`,n.items),count:n.totalCount})):f.push({row:e,col:t,value:null,count:0})}return{rows:l,cols:u,cells:f,axis:{unit:``,formatter:`ms`},confidence:vL,rowAxisLabel:`Source`,colAxisLabel:`Destination`,skippedRecordsCount:a,unparseablePathCount:n,missingValueCount:r,unrecognizedSources:i,approx:d}}function CL(e,t,n=`p95`){return SL(xL(e,t,n))}function wL(e){let t=new Map,n=new Map;for(let r of e){if(r.time===null)continue;let e=t.get(r.time);e||(e=[],t.set(r.time,e)),e.push({value:r.value,count:r.count}),n.set(r.time,(n.get(r.time)??0)+r.count)}let r=!1,i=[...t.keys()].sort((e,t)=>e-t),a=[];for(let e of i){let i=t.get(e);i.length>1&&(r=!0),a.push({x:e,y:PF(`count-weighted-mean`,i),count:n.get(e)??0})}return{points:a,approx:r}}var TL=12;function EL(e,t){let n=t.confidence?.greyBelow??0,r=t.confidence?.suppressBelow??1/0,i=new Map;for(let t of e){let e=`${t.source}|${t.destination}`,n=i.get(e);n||(n=[],i.set(e,n)),n.push(t)}let a=[],o=0;for(let e of t.cells){let t=e.count??0;if(t===0)continue;if(t<n){o+=1;continue}let s=wL(i.get(`${e.row}|${e.col}`)??[]);if(s.points.length===0)continue;let c=`${e.row}→${e.col}`;t<r?a.push({key:c,label:c,points:s.points,approx:s.approx,opacity:.55}):a.push({key:c,label:c,points:s.points,approx:s.approx})}return{seriesData:{series:a},omittedPairsCount:o}}function DL(e){let{records:t,nodes:n,timeRange:r,fillParent:i}=e,[a,o]=(0,I.useState)(`p95`),[s,c]=(0,I.useState)(null),[l,u]=(0,I.useState)(!1),d=(0,I.useMemo)(()=>xL(t,n,a),[t,n,a]),f=(0,I.useMemo)(()=>SL(d),[d]),p=(0,I.useRef)(null),m=(0,I.useMemo)(()=>{if(!s)return null;if(!l)return p.current;let e=d.parsed.filter(e=>e.source===s.source&&e.destination===s.dest),t=e.reduce((e,t)=>e+t.count,0),{points:n,approx:r}=wL(e),i=`${s.source} → ${s.dest}`,a={suppressed:t<vL.greyBelow,sampleCount:t,seriesData:{series:n.length===0?[]:[{key:i,label:i,points:n,approx:r}]}};return p.current=a,a},[s,l,d]),h=_L.find(e=>e.field===a)?.label??a,g=s&&m?(0,L.jsx)(FI,{source:s.source,target:s.dest,open:l,onOpenChange:e=>{e||u(!1)},description:`${h} replication latency over the selected window, count-weighted-mean per time bucket.`,children:m.suppressed?(0,L.jsx)(`div`,{role:`status`,className:`text-(--color-text-secondary) text-sm p-4`,children:`Fewer than ${vL.greyBelow} samples for this pair in the current window (${m.sampleCount}) — series hidden.`}):(0,L.jsx)(NF,{data:m.seriesData,yAxis:f.axis,height:320,xDomain:[r.startTime,r.endTime],fillParent:!0})}):null;if(f.rows.length===0||f.cols.length===0)return(0,L.jsxs)(`div`,{children:[(0,L.jsx)(OL,{data:f}),(0,L.jsx)(`div`,{children:`No data in window`}),g]});let _=f.rows.length*f.cols.length>TL;if(f.rows.length<2||f.cols.length<2||_){let{seriesData:e,omittedPairsCount:t}=EL(d.parsed,f),n=f.confidence?.greyBelow??vL.greyBelow,a=_?`Too many source-destination pairs for a heatmap — showing as lines.`:`Only one source node emitted data in this window. This is typical for clusters with a single write origin — each line below shows latency from that source to one destination.`,o=e.series.length===0&&t>0,s=e.series.length===0&&t===0;return(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{style:{fontSize:11,opacity:.7,marginBottom:4},children:`Showing as lines`}),(0,L.jsx)(OL,{data:f}),t>0&&!o?(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:LI,children:`${t} source-destination ${bL(t,`pair`,`pairs`)} hidden — fewer than ${n} samples.`},t):null,(0,L.jsx)(`div`,{style:RI,children:a}),o?(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:LI,children:`No source-destination pairs cleared the confidence threshold (${n}+ samples). All ${t} ${bL(t,`pair`,`pairs`)} had fewer than ${n} samples in this window.`}):s?(0,L.jsx)(`div`,{children:`No data in window`}):(0,L.jsx)(`div`,{style:{marginTop:20},children:(0,L.jsx)(NF,{data:e,yAxis:f.axis,height:320,xDomain:[r.startTime,r.endTime],fillParent:i})}),g]})}return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)(kL,{value:a,onChange:o}),(0,L.jsx)(OL,{data:f}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,L.jsx)(pL,{data:{...f,skippedRecordsCount:0,measureLabel:`${h} latency`},title:`Replication latency`,onCellSelect:(e,t)=>{c({source:e,dest:t}),u(!0)}})}),g]})}function OL({data:e}){let t=e.unparseablePathCount??0,n=e.missingValueCount??0,r=e.unrecognizedSources??[];if(t===0&&n===0&&r.length===0)return null;let i=[];return t>0&&i.push(`${t} ${bL(t,`record`,`records`)} omitted (unparseable replication path).`),n>0&&i.push(`${n} ${bL(n,`record`,`records`)} omitted (no value for the selected percentile).`),r.length>0&&i.push(`Recovered ${r.length} source${r.length===1?``:`s`} not in the cluster snapshot: ${r.join(`, `)}.`),(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:LI,children:i.join(` `)},`${t}-${n}-${r.length}`)}function kL({value:e,onChange:t}){let{getRadioProps:n}=Xr(_L.map(e=>e.field),e,t);return(0,L.jsx)(`div`,{role:`radiogroup`,"aria-label":`Quantile`,className:`flex flex-wrap gap-1 pb-2`,children:_L.map((t,r)=>{let i=t.field===e;return(0,L.jsx)(`button`,{type:`button`,"data-testid":`quantile-button`,"data-value":t.field,...n(r),className:`rounded px-2 py-0.5 text-[11px] ${i?`bg-(--color-accent)/20 text-(--color-text-primary) font-semibold`:`bg-(--color-bg-tertiary) text-(--color-text-secondary) hover:text-(--color-text-primary)`}`,children:t.label},t.field)})})}var AL={title:`Resource usage`,description:`CPU + I/O + page faults + context switches per node — small-multiples view.`,tab:`health`,primaryDimension:`node`,series:{kind:`field`,fields:[{field:`cpuUtilization`,label:`Process CPU (cores used)`,aggregator:{temporal:`max`,crossNode:`max`},yAxis:{unit:``,formatter:`cores`}},{field:`fsWrite`,label:`Disk write (B/s)`,transform:{kind:`rate`},aggregator:{temporal:`sum`,crossNode:`sum`},yAxis:{unit:`/s`,formatter:`bytes-si`}},{field:`majorPageFault`,label:`Major page faults /s`,transform:{kind:`rate`},aggregator:{temporal:`sum`,crossNode:`max`},yAxis:{unit:`/s`,formatter:`count-si`}},{field:{kind:`op`,op:`+`,left:{kind:`ref`,field:`voluntaryContextSwitches`},right:{kind:`ref`,field:`involuntaryContextSwitches`}},label:`Context switches /s`,transform:{kind:`rate`},aggregator:{temporal:`sum`,crossNode:`max`},yAxis:{unit:`/s`,formatter:`count-si`}}]},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`sum`,crossNode:`sum`},primitive:`small-multiples`,yAxis:{unit:``,formatter:`count`},layout:{colSpan:2}},jL={title:`Storage volume (available)`,description:`Per-node disk available bytes (latest snapshot in window; mean across nodes).`,tab:`storage`,primaryDimension:`node`,series:{kind:`groupBy`,dimension:`node`,field:{field:`available`,label:`available (bytes)`}},timestamp:`id`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`last`,crossNode:`mean`},primitive:`line`,yAxis:{unit:` B`,formatter:`bytes-si`}},ML={title:`TLS session reuse ratio`,description:`Fraction of TLS handshakes resumed via session ticket — higher is better.`,tab:`traffic`,primaryDimension:`node`,series:{kind:`groupBy`,dimension:`node`,field:{field:`ratio`,label:`reuse ratio`,transform:{kind:`ratio`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:20,suppressBelow:50},primitive:`line`,yAxis:{unit:``,formatter:`percent`},thresholds:[{value:.5,label:`50% reuse target`,direction:`below-is-bad`,minCount:50}]},NL={title:`Cluster utilization`,description:`Active / (active + idle) per node — count-weighted-mean across time.`,tab:`health`,primaryDimension:`node`,series:{kind:`groupBy`,dimension:`node`,field:{field:`utilization`,label:`utilization`,transform:{kind:`ratio`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`mean`,crossNode:`max`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`percent`}},PL=`var(--color-text-secondary)`;function FL({dimensionValues:e,selected:t,onSelect:n,otherKey:r,colorFor:i,ariaLabel:a=`Dimension selector`}){let[o,s]=(0,I.useState)(!1),[c,l]=(0,I.useState)(``),[u,d]=(0,I.useState)(0),f=(0,I.useId)(),p=(0,I.useId)(),m=(0,I.useRef)(null),h=(0,I.useRef)(null),g=(0,I.useRef)(null),_=e.filter(e=>e.toLowerCase().includes(c.toLowerCase()));(0,I.useEffect)(()=>{o?h.current?.focus():l(``)},[o]),(0,I.useEffect)(()=>{if(!o)return;let e=e=>{let t=e.target;t&&(g.current?.contains(t)||m.current?.contains(t)||s(!1))},t=e=>{e.key===`Escape`&&(s(!1),m.current?.focus())};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[o]),(0,I.useEffect)(()=>{d(0)},[c]);function v(e){n(e),s(!1),m.current?.focus()}function y(e){if(e.key===`Escape`){e.preventDefault(),s(!1),m.current?.focus();return}if(e.key===`ArrowDown`){e.preventDefault(),d(e=>Math.min(e+1,Math.max(0,_.length-1)));return}if(e.key===`ArrowUp`){e.preventDefault(),d(e=>Math.max(0,e-1));return}e.key===`Enter`&&_[u]!==void 0&&(e.preventDefault(),v(_[u]))}let b=i?i(t):PL;return(0,L.jsxs)(`div`,{className:`relative pt-3`,children:[(0,L.jsxs)(`button`,{ref:m,type:`button`,"aria-label":t?`${a}: ${t}`:a,"aria-expanded":o,"aria-controls":f,"aria-haspopup":`listbox`,onClick:()=>s(e=>!e),className:`inline-flex min-h-8 items-center gap-1.5 rounded-full border border-(--color-border) px-2.5 py-1 text-xs text-(--color-text-primary)`,children:[(0,L.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:b}}),t||`— select —`,(0,L.jsx)(`span`,{"aria-hidden":!0,children:`▾`})]}),o&&(0,L.jsxs)(`div`,{ref:g,className:`absolute z-10 mt-1 w-72 rounded-md border border-(--color-border) bg-(--color-surface) p-2 shadow-lg`,children:[(0,L.jsx)(`input`,{ref:h,role:`combobox`,type:`text`,"aria-label":`Filter ${a}`,"aria-expanded":o,"aria-controls":f,"aria-autocomplete":`list`,"aria-activedescendant":_[u]===void 0?``:`${p}-${u}`,value:c,onChange:e=>l(e.target.value),onKeyDown:y,placeholder:`Filter…`,className:`mb-2 w-full rounded border border-(--color-border) px-2 py-1 text-xs`}),_.length===0&&(0,L.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:`px-2 py-1 text-xs text-(--color-text-secondary)`,children:`No matches`}),(0,L.jsx)(`ul`,{id:f,role:`listbox`,className:`max-h-56 overflow-auto`,children:_.map((e,n)=>{let r=e===t,a=n===u,o=i?i(e):PL;return(0,L.jsxs)(`li`,{id:`${p}-${n}`,role:`option`,"aria-selected":r,"data-active":a?`true`:void 0,onMouseDown:t=>{t.preventDefault(),v(e)},className:`flex cursor-pointer items-center gap-2 rounded px-2 py-1 text-xs ${a?`bg-(--color-surface-alt)`:``} ${r?`font-semibold`:``}`,children:[(0,L.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:o}}),(0,L.jsx)(`span`,{className:`truncate`,children:e})]},e)})}),r&&(0,L.jsxs)(`div`,{className:`mt-2 border-t border-(--color-border) pt-2 text-xs text-(--color-text-secondary)/60`,title:`Aggregate of smaller buckets; not selectable.`,children:[r,` (aggregate; not selectable)`]})]})]})}var IL=`Other`,LL=12;function RL({spec:e,records:t,timeRange:n,nodes:r,ariaLabel:i=`Dimension`,viewMode:a=`per-node`,fillParent:o}){let s=a===`per-node`,c=e.quantileSelector?.fields,[l,u]=(0,I.useState)(e.quantileSelector?.default??``),d=c?.some(e=>e.field===l)?l:e.quantileSelector?.default??``,{getRadioProps:f}=Xr((0,I.useMemo)(()=>c?.map(e=>e.field)??[],[c]),d,u),p=(0,I.useMemo)(()=>{if(!c||d===``||e.series.kind!==`groupBy`)return e;let t=c.find(e=>e.field===d);return t?{...e,series:{...e.series,field:{...e.series.field,field:t.field,label:t.label}}}:e},[e,c,d]),m=(0,I.useMemo)(()=>$(p,t,n,r,{perNode:s,snapToPeriod:!0}),[p,t,n,r,s]),h=(0,I.useMemo)(()=>{let e=new Set;for(let t of m.series){let n=t.dim??t.key;n!==IL&&e.add(n)}return[...e]},[m.series]),g=m.series.some(e=>(e.dim??e.key)===IL),[_,v]=(0,I.useState)(()=>h[0]??``),y=h.includes(_)?_:h[0]??``,{data:b,isActive:x,handleLegendClick:S}=Yr((0,I.useMemo)(()=>({...m,series:m.series.filter(e=>(e.dim??e.key)===y)}),[m,y]),r);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[e.quantileSelector&&c&&c.length>1&&(0,L.jsx)(`div`,{role:`radiogroup`,"aria-label":`Quantile`,className:`flex flex-wrap justify-center gap-x-3 gap-y-1 pt-2 text-[11px]`,children:c.map((e,t)=>{let n=e.field===d;return(0,L.jsx)(`button`,{type:`button`,...f(t),"data-testid":`quantile-button`,"data-value":e.field,className:`inline-flex items-center cursor-pointer border-none bg-transparent p-0 text-(--color-text-secondary)`,style:{opacity:n?1:.3},children:e.label},e.field)})}),h.length>LL?(0,L.jsx)(FL,{dimensionValues:h,selected:y,onSelect:v,otherKey:g?IL:void 0,ariaLabel:i}):(0,L.jsx)(Qr,{dimensionValues:h,selected:y,onSelect:v,otherKey:g?IL:void 0,ariaLabel:i}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(NF,{data:b,yAxis:e.yAxis,xDomain:[n.startTime,n.endTime],fillParent:o,hideLegend:s})}),s&&r.length>0&&(0,L.jsx)(Kr,{nodeIds:r,isActive:x,onClickNode:S})]})}function zL({ariaLabel:e,...t}){return{spec:t,Renderer:n=>(0,L.jsx)(RL,{spec:t,...n,ariaLabel:e})}}function BL({typeField:e,defaultViewMode:t,...n}){return{spec:n,Renderer:r=>(0,L.jsx)(mI,{spec:n,typeField:e,...r,viewMode:r.viewMode??t})}}function VL({label:e,...t}){return zL({...t,primaryDimension:`path`,subDimension:`method`,series:{kind:`groupBy`,dimension:`path`,field:{field:`p95`,label:e},topN:10,otherBucket:!0},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`ms`},quantileSelector:{fields:_L,default:`p95`}})}function HL(e){return BL({...e,typeField:`type`,tab:`traffic`,primaryDimension:`node`,subDimension:`type`,series:{kind:`groupBy`,dimension:`type`,field:{field:{kind:`op`,op:`*`,left:{kind:`ref`,field:`count`},right:{kind:`ref`,field:`mean`}},label:`bytes/sec`,transform:{kind:`rate`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`sum`,crossNode:`sum`},primitive:`stacked-area`,yAxis:{unit:`/s`,formatter:`bytes-si`}})}var UL={"db-read":VL({ariaLabel:`Table`,title:`DB read p95`,description:`Per-table DB read p95 (count-weighted-mean) — top 10 tables + Other.`,tab:`db-activity`,label:`p95 read (ms)`}),"db-write":VL({ariaLabel:`Table`,title:`DB write p95`,description:`Per-table DB write p95 (count-weighted-mean) — top 10 tables + Other.`,tab:`db-activity`,label:`p95 write (ms)`}),"db-message":VL({ariaLabel:`Table`,title:`DB message p95`,description:`Per-table DB message p95 (count-weighted-mean) — top 10 tables + Other.`,tab:`db-activity`,label:`p95 message (ms)`}),duration:VL({ariaLabel:`Path`,title:`Request duration (p95)`,description:`Per-path request duration p95 (count-weighted-mean) — top 10 paths + Other bucket.`,tab:`requests`,label:`p95 duration (ms)`}),transfer:VL({ariaLabel:`Path`,title:`Transfer duration (p95)`,description:`Per-path transfer p95 (count-weighted-mean) — top 10 paths + Other.`,tab:`requests`,label:`p95 transfer (ms)`}),"cache-resolution":VL({ariaLabel:`Path`,title:`Cache miss resolution (p95)`,description:`Per-path time-to-resolve a cache miss (count-weighted-mean) — top 10 paths + Other.`,tab:`requests`,label:`p95 resolution (ms)`}),"cache-hit":zL({ariaLabel:`Path`,title:`Cache hit rate`,description:`Per-path cache-hit ratio (count-weighted-mean) — top 10 paths + Other.`,tab:`requests`,primaryDimension:`path`,series:{kind:`groupBy`,dimension:`path`,field:{field:`ratio`,label:`hit ratio`},topN:10,otherBucket:!0},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`percent`,domain:[0,1]}}),"cpu-usage":zL({ariaLabel:`Scope`,title:`CPU — by scope (harper vs user)`,description:`Per-path CPU utilization (count-weighted-mean) — chip selector picks scope; quantile selector picks percentile.`,tab:`health`,primaryDimension:`path`,series:{kind:`groupBy`,dimension:`path`,field:{field:`p95`,label:`CPU %`}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`percent`},quantileSelector:{fields:_L,default:`p95`}}),success:zL({ariaLabel:`Path`,title:`Request success rate`,description:`Per-path success ratio (count-weighted-mean) — alert when ≥0.001 errors and Σcount ≥1000.`,tab:`requests`,primaryDimension:`path`,subDimension:`method`,series:{kind:`groupBy`,dimension:`path`,field:{field:{kind:`op`,op:`/`,left:{kind:`ref`,field:`total`},right:{kind:`ref`,field:`count`}},label:`success ratio`},topN:10,otherBucket:!0},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`percent`},thresholds:[{value:.999,label:`99.9% SLO`,direction:`below-is-bad`,minCount:1e3}]}),response_200:zL({ariaLabel:`Path`,title:`HTTP 200 ratio`,description:`Per-path 2xx ratio (mean across nodes; count-weighted across time). Threshold 99.9%, min count 1000.`,tab:`requests`,primaryDimension:`path`,subDimension:`method`,series:{kind:`groupBy`,dimension:`path`,field:{field:{kind:`op`,op:`/`,left:{kind:`ref`,field:`total`},right:{kind:`ref`,field:`count`}},label:`200 ratio`},topN:10,otherBucket:!0},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`percent`},thresholds:[{value:.999,label:`99.9% SLO`,direction:`below-is-bad`,minCount:1e3}]}),"bytes-sent":HL({title:`Bytes sent by type`,description:`Outbound byte rate (count × mean) — cluster total. Type chips solo / Ctrl-toggle.`}),"bytes-received":HL({title:`Bytes received by type`,description:`Inbound byte rate (count × mean) — cluster total. Type chips solo / Ctrl-toggle.`}),connections:BL({typeField:`type`,title:`Connections`,description:`Active sessions by type — chips solo / Ctrl-toggle. viewMode flips type/node stack.`,tab:`traffic`,primaryDimension:`node`,subDimension:`type`,series:{kind:`groupBy`,dimension:`type`,field:{field:`connections`,label:`connections`,aggregator:{temporal:`max`,crossNode:`sum`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`max`,crossNode:`sum`},primitive:`stacked-area`,yAxis:{unit:``,formatter:`count-si`}}),"database-size":BL({typeField:`database`,defaultViewMode:`aggregate`,title:`Database size`,description:`Per-database size in bytes — chips solo / Ctrl-toggle databases; node legend filters by node.`,tab:`storage`,primaryDimension:`database`,series:{kind:`groupBy`,dimension:`database`,field:{field:`size`,label:`size (bytes)`}},timestamp:`id`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`last`,crossNode:`sum`},primitive:`stacked-area`,yAxis:{unit:` B`,formatter:`bytes-si`}})},WL={"replication-latency":{spec:yL,Renderer:DL},"bytes-sent":UL[`bytes-sent`],"bytes-received":UL[`bytes-received`],"resource-usage":{spec:AL},connections:UL.connections,duration:UL.duration,success:UL.success,transfer:UL.transfer,"tls-reused":{spec:ML},connection:{spec:$F,Renderer:nI},"cpu-usage":UL[`cpu-usage`],"db-read":UL[`db-read`],"db-write":UL[`db-write`],"db-message":UL[`db-message`],response_200:UL.response_200,utilization:{spec:NL},"database-size":UL[`database-size`],"storage-volume":{spec:jL},memory:{spec:MI,Renderer:PI},"main-thread-utilization":{spec:kI,Renderer:AI},"cache-hit":UL[`cache-hit`],"cache-resolution":UL[`cache-resolution`]},GL=new Set([`time`,`node`,`id`,`period`,`metric`,`count`,`threadId`,`path`,`method`,`type`,`database`,`table`,`source`]),KL=8;function qL(e){let t=new Map;for(let n of e)for(let e of Object.keys(n))GL.has(e)||typeof n[e]==`number`&&Number.isFinite(n[e])&&t.set(e,(t.get(e)??0)+1);let n=Math.max(1,Math.floor(e.length/2));return[...t.entries()].filter(([,e])=>e>=n).map(([e])=>e)}function JL(e){let t=qL(e),n=t.slice(0,KL);return{panels:n.map(t=>({title:t,data:{series:[{key:t,label:t,points:e.filter(e=>typeof e[t]==`number`&&typeof e.time==`number`).map(e=>({x:e.time,y:e[t]}))}]}})),overflowCount:t.length-n.length}}function YL({metric:e,records:t,hint:n}){let{panels:r,overflowCount:i}=JL(t),a=e.replace(/_/g,`-`);return(0,L.jsxs)(`div`,{children:[n&&(0,L.jsx)(`div`,{role:`status`,style:{fontSize:12,padding:`4px 8px`,marginBottom:8,background:`color-mix(in srgb, var(--color-text-secondary) 10%, transparent)`,color:`var(--color-text-secondary)`,border:`1px solid color-mix(in srgb, var(--color-text-secondary) 30%, transparent)`,borderRadius:4},children:n}),null,(0,L.jsx)(sI,{panels:r}),i>0&&(0,L.jsx)(`div`,{style:{fontSize:11,marginTop:4,opacity:.7},children:`… and ${i} more fields not shown. Add a spec (wrapperMetrics.tsx entry, or pipeline/${a}.tsx / .ts) to customize.`})]})}function XL(e){return e.node??e.key}function ZL({data:e,yAxis:t,xDomain:n,fillParent:r}){let i=(0,I.useMemo)(()=>{let t=new Set;for(let n of e.series){let e=XL(n);e&&t.add(e)}return[...t].sort()},[e]),{isActive:a,handleLegendClick:o}=Jr(i);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,L.jsx)(NF,{data:(0,I.useMemo)(()=>({...e,series:e.series.filter(e=>a(XL(e))).map(e=>({...e,color:e.color??Ur(XL(e),i)}))}),[e,a,i]),yAxis:t,xDomain:n,fillParent:r,hideLegend:!0})}),i.length>0&&(0,L.jsx)(Kr,{nodeIds:i,isActive:a,onClickNode:o})]})}function QL(e,t,n,r,i){switch(e){case`line`:return(0,L.jsx)(ZL,{data:t,yAxis:n,xDomain:r,fillParent:i});case`stacked-area`:return(0,L.jsx)(fI,{data:t,yAxis:n,xDomain:r,fillParent:i});case`small-multiples`:throw Error(`small-multiples is dispatched at the spec branch, not via renderPrimitive`);case`heatmap`:throw Error(`heatmap dispatch is via custom Renderer (replication-latency)`);default:throw Error(`Unknown primitive: ${e}`)}}function $L(e,t){return e.primitive===`stacked-area`&&t&&e.series.kind===`groupBy`&&e.series.dimension!==`node`}function eR(e,t){return e.primitive===`line`&&!t&&e.series.kind===`groupBy`&&e.series.dimension===`node`}function tR(e){return e.primitive===`line`&&e.series.kind===`groupBy`&&e.series.dimension!==`node`}var nR=class extends I.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e){console.error(`[MetricRenderer] render failed; falling back:`,e)}render(){return this.state.failed?this.props.fallback:this.props.children}};function rR({metric:e,records:t,window:n,nodes:r,viewMode:i,fillParent:a}){let o=(0,L.jsx)(YL,{metric:e,records:t,hint:`Render failed — showing fallback.`}),s=[n.startTime,n.endTime],c,l=EI[e];if(l)if(l.Renderer)c=(0,L.jsx)(l.Renderer,{records:t,timeRange:n,nodes:r,viewMode:i,fillParent:a});else{let e=l.recompute(t,n,r,i);c=QL(l.primitive,e,l.yAxis,s,a)}else{let o=WL[e];if(o?.Renderer)c=(0,L.jsx)(o.Renderer,{records:t,timeRange:n,nodes:r,viewMode:i,fillParent:a});else if(o?.spec){let e=(i??`per-node`)===`per-node`;if(o.spec.primitive===`small-multiples`){let i=o.spec,l=i.series;if(l.kind!==`field`)throw Error(`small-multiples requires kind='field' series source`);c=(0,L.jsx)(sI,{panels:l.fields.map(a=>{let o={...i,series:{kind:`field`,fields:[a]},aggregator:{temporal:a.aggregator?.temporal??i.aggregator.temporal,crossNode:a.aggregator?.crossNode??i.aggregator.crossNode}};return{title:a.label,data:$(o,t,n,r,{perNode:e,snapToPeriod:!0}),yAxis:a.yAxis??i.yAxis}}),xDomain:s,fillParent:a})}else if($L(o.spec,e)&&o.spec.series.kind===`groupBy`)c=QL(`stacked-area`,$({...o.spec,series:{...o.spec.series,dimension:`node`}},t,n,r,{snapToPeriod:!0}),o.spec.yAxis,s,a);else if(eR(o.spec,e)&&o.spec.series.kind===`groupBy`){let e=o.spec.series,i=$({...o.spec,series:{kind:`field`,fields:[{...e.field,label:`cluster`}]}},t,n,r,{snapToPeriod:!0});c=QL(o.spec.primitive,i,o.spec.yAxis,s,a)}else if(tR(o.spec))c=QL(`line`,$(o.spec,t,n,r,{perNode:!1,snapToPeriod:!0}),o.spec.yAxis,s,a);else{let i=$(o.spec,t,n,r,{perNode:e,snapToPeriod:!0});c=QL(o.spec.primitive,i,o.spec.yAxis,s,a)}}else c=(0,L.jsx)(YL,{metric:e,records:t})}return(0,L.jsx)(nR,{fallback:o,children:c},e)}function iR(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;let n=document.implementation.createHTMLDocument(),r=n.createElement(`base`),i=n.createElement(`a`);return n.head.appendChild(r),n.body.appendChild(i),t&&(r.href=t),i.href=e,i.href}var aR=(()=>{let e=0,t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function oR(e){let t=[];for(let n=0,r=e.length;n<r;n++)t.push(e[n]);return t}var sR=null;function cR(e={}){return sR||(e.includeStyleProperties?(sR=e.includeStyleProperties,sR):(sR=oR(window.getComputedStyle(document.documentElement)),sR))}function lR(e,t){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return n?parseFloat(n.replace(`px`,``)):0}function uR(e){let t=lR(e,`border-left-width`),n=lR(e,`border-right-width`);return e.clientWidth+t+n}function dR(e){let t=lR(e,`border-top-width`),n=lR(e,`border-bottom-width`);return e.clientHeight+t+n}function fR(e,t={}){return{width:t.width||uR(e),height:t.height||dR(e)}}function pR(){let e,t;try{t=process}catch{}let n=t&&t.env?t.env.devicePixelRatio:null;return n&&(e=parseInt(n,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}var mR=16384;function hR(e){(e.width>mR||e.height>mR)&&(e.width>mR&&e.height>mR?e.width>e.height?(e.height*=mR/e.width,e.width=mR):(e.width*=mR/e.height,e.height=mR):e.width>mR?(e.height*=mR/e.width,e.width=mR):(e.width*=mR/e.height,e.height=mR))}function gR(e,t={}){return e.toBlob?new Promise(n=>{e.toBlob(n,t.type?t.type:`image/png`,t.quality?t.quality:1)}):new Promise(n=>{let r=window.atob(e.toDataURL(t.type?t.type:void 0,t.quality?t.quality:void 0).split(`,`)[1]),i=r.length,a=new Uint8Array(i);for(let e=0;e<i;e+=1)a[e]=r.charCodeAt(e);n(new Blob([a],{type:t.type?t.type:`image/png`}))})}function _R(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{r.decode().then(()=>{requestAnimationFrame(()=>t(r))})},r.onerror=n,r.crossOrigin=`anonymous`,r.decoding=`async`,r.src=e})}async function vR(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(e=>`data:image/svg+xml;charset=utf-8,${e}`)}async function yR(e,t,n){let r=`http://www.w3.org/2000/svg`,i=document.createElementNS(r,`svg`),a=document.createElementNS(r,`foreignObject`);return i.setAttribute(`width`,`${t}`),i.setAttribute(`height`,`${n}`),i.setAttribute(`viewBox`,`0 0 ${t} ${n}`),a.setAttribute(`width`,`100%`),a.setAttribute(`height`,`100%`),a.setAttribute(`x`,`0`),a.setAttribute(`y`,`0`),a.setAttribute(`externalResourcesRequired`,`true`),i.appendChild(a),a.appendChild(e),vR(i)}var bR=(e,t)=>{if(e instanceof t)return!0;let n=Object.getPrototypeOf(e);return n===null?!1:n.constructor.name===t.name||bR(n,t)};function xR(e){let t=e.getPropertyValue(`content`);return`${e.cssText} content: '${t.replace(/'|"/g,``)}';`}function SR(e,t){return cR(t).map(t=>`${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t)?` !important`:``};`).join(` `)}function CR(e,t,n,r){let i=`.${e}:${t}`,a=n.cssText?xR(n):SR(n,r);return document.createTextNode(`${i}{${a}}`)}function wR(e,t,n,r){let i=window.getComputedStyle(e,n),a=i.getPropertyValue(`content`);if(a===``||a===`none`)return;let o=aR();try{t.className=`${t.className} ${o}`}catch{return}let s=document.createElement(`style`);s.appendChild(CR(o,n,i,r)),t.appendChild(s)}function TR(e,t,n){wR(e,t,`:before`,n),wR(e,t,`:after`,n)}var ER=`application/font-woff`,DR=`image/jpeg`,OR={woff:ER,woff2:ER,ttf:`application/font-truetype`,eot:`application/vnd.ms-fontobject`,png:`image/png`,jpg:DR,jpeg:DR,gif:`image/gif`,tiff:`image/tiff`,svg:`image/svg+xml`,webp:`image/webp`};function kR(e){let t=/\.([^./]*?)$/g.exec(e);return t?t[1]:``}function AR(e){return OR[kR(e).toLowerCase()]||``}function jR(e){return e.split(/,/)[1]}function MR(e){return e.search(/^(data:)/)!==-1}function NR(e,t){return`data:${t};base64,${e}`}async function PR(e,t,n){let r=await fetch(e,t);if(r.status===404)throw Error(`Resource "${r.url}" not found`);let i=await r.blob();return new Promise((e,t)=>{let a=new FileReader;a.onerror=t,a.onloadend=()=>{try{e(n({res:r,result:a.result}))}catch(e){t(e)}},a.readAsDataURL(i)})}var FR={};function IR(e,t,n){let r=e.replace(/\?.*/,``);return n&&(r=e),/ttf|otf|eot|woff2?/i.test(r)&&(r=r.replace(/.*\//,``)),t?`[${t}]${r}`:r}async function LR(e,t,n){let r=IR(e,t,n.includeQueryParams);if(FR[r]!=null)return FR[r];n.cacheBust&&(e+=(/\?/.test(e)?`&`:`?`)+new Date().getTime());let i;try{i=NR(await PR(e,n.fetchRequestInit,({res:e,result:n})=>(t||=e.headers.get(`Content-Type`)||``,jR(n))),t)}catch(t){i=n.imagePlaceholder||``;let r=`Failed to fetch resource: ${e}`;t&&(r=typeof t==`string`?t:t.message),r&&console.warn(r)}return FR[r]=i,i}async function RR(e){let t=e.toDataURL();return t===`data:,`?e.cloneNode(!1):_R(t)}async function zR(e,t){if(e.currentSrc){let t=document.createElement(`canvas`),n=t.getContext(`2d`);return t.width=e.clientWidth,t.height=e.clientHeight,n?.drawImage(e,0,0,t.width,t.height),_R(t.toDataURL())}let n=e.poster;return _R(await LR(n,AR(n),t))}async function BR(e,t){try{if(e?.contentDocument?.body)return await XR(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function VR(e,t){return bR(e,HTMLCanvasElement)?RR(e):bR(e,HTMLVideoElement)?zR(e,t):bR(e,HTMLIFrameElement)?BR(e,t):e.cloneNode(UR(e))}var HR=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SLOT`,UR=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SVG`;async function WR(e,t,n){if(UR(t))return t;let r=[];return r=HR(e)&&e.assignedNodes?oR(e.assignedNodes()):bR(e,HTMLIFrameElement)&&e.contentDocument?.body?oR(e.contentDocument.body.childNodes):oR((e.shadowRoot??e).childNodes),r.length===0||bR(e,HTMLVideoElement)||await r.reduce((e,r)=>e.then(()=>XR(r,n)).then(e=>{e&&t.appendChild(e)}),Promise.resolve()),t}function GR(e,t,n){let r=t.style;if(!r)return;let i=window.getComputedStyle(e);i.cssText?(r.cssText=i.cssText,r.transformOrigin=i.transformOrigin):cR(n).forEach(n=>{let a=i.getPropertyValue(n);n===`font-size`&&a.endsWith(`px`)&&(a=`${Math.floor(parseFloat(a.substring(0,a.length-2)))-.1}px`),bR(e,HTMLIFrameElement)&&n===`display`&&a===`inline`&&(a=`block`),n===`d`&&t.getAttribute(`d`)&&(a=`path(${t.getAttribute(`d`)})`),r.setProperty(n,a,i.getPropertyPriority(n))})}function KR(e,t){bR(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),bR(e,HTMLInputElement)&&t.setAttribute(`value`,e.value)}function qR(e,t){if(bR(e,HTMLSelectElement)){let n=t,r=Array.from(n.children).find(t=>e.value===t.getAttribute(`value`));r&&r.setAttribute(`selected`,``)}}function JR(e,t,n){return bR(t,Element)&&(GR(e,t,n),TR(e,t,n),KR(e,t),qR(e,t)),t}async function YR(e,t){let n=e.querySelectorAll?e.querySelectorAll(`use`):[];if(n.length===0)return e;let r={};for(let i=0;i<n.length;i++){let a=n[i].getAttribute(`xlink:href`);if(a){let n=e.querySelector(a),i=document.querySelector(a);!n&&i&&!r[a]&&(r[a]=await XR(i,t,!0))}}let i=Object.values(r);if(i.length){let t=`http://www.w3.org/1999/xhtml`,n=document.createElementNS(t,`svg`);n.setAttribute(`xmlns`,t),n.style.position=`absolute`,n.style.width=`0`,n.style.height=`0`,n.style.overflow=`hidden`,n.style.display=`none`;let r=document.createElementNS(t,`defs`);n.appendChild(r);for(let e=0;e<i.length;e++)r.appendChild(i[e]);e.appendChild(n)}return e}async function XR(e,t,n){return!n&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(e=>VR(e,t)).then(n=>WR(e,n,t)).then(n=>JR(e,n,t)).then(e=>YR(e,t))}var ZR=/url\((['"]?)([^'"]+?)\1\)/g,QR=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,$R=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function ez(e){let t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,`\\$1`);return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,`g`)}function tz(e){let t=[];return e.replace(ZR,(e,n,r)=>(t.push(r),e)),t.filter(e=>!MR(e))}async function nz(e,t,n,r,i){try{let a=n?iR(t,n):t,o=AR(t),s;return s=i?NR(await i(a),o):await LR(a,o,r),e.replace(ez(t),`$1${s}$3`)}catch{}return e}function rz(e,{preferredFontFormat:t}){return t?e.replace($R,e=>{for(;;){let[n,,r]=QR.exec(e)||[];if(!r)return``;if(r===t)return`src: ${n};`}}):e}function iz(e){return e.search(ZR)!==-1}async function az(e,t,n){if(!iz(e))return e;let r=rz(e,n);return tz(r).reduce((e,r)=>e.then(e=>nz(e,r,t,n)),Promise.resolve(r))}async function oz(e,t,n){let r=t.style?.getPropertyValue(e);if(r){let i=await az(r,null,n);return t.style.setProperty(e,i,t.style.getPropertyPriority(e)),!0}return!1}async function sz(e,t){await oz(`background`,e,t)||await oz(`background-image`,e,t),await oz(`mask`,e,t)||await oz(`-webkit-mask`,e,t)||await oz(`mask-image`,e,t)||await oz(`-webkit-mask-image`,e,t)}async function cz(e,t){let n=bR(e,HTMLImageElement);if(!(n&&!MR(e.src))&&!(bR(e,SVGImageElement)&&!MR(e.href.baseVal)))return;let r=n?e.src:e.href.baseVal,i=await LR(r,AR(r),t);await new Promise((r,a)=>{e.onload=r,e.onerror=t.onImageErrorHandler?(...e)=>{try{r(t.onImageErrorHandler(...e))}catch(e){a(e)}}:a;let o=e;o.decode&&=r,o.loading===`lazy`&&(o.loading=`eager`),n?(e.srcset=``,e.src=i):e.href.baseVal=i})}async function lz(e,t){let n=oR(e.childNodes).map(e=>uz(e,t));await Promise.all(n).then(()=>e)}async function uz(e,t){bR(e,Element)&&(await sz(e,t),await cz(e,t),await lz(e,t))}function dz(e,t){let{style:n}=e;t.backgroundColor&&(n.backgroundColor=t.backgroundColor),t.width&&(n.width=`${t.width}px`),t.height&&(n.height=`${t.height}px`);let r=t.style;return r!=null&&Object.keys(r).forEach(e=>{n[e]=r[e]}),e}var fz={};async function pz(e){let t=fz[e];return t??(t={url:e,cssText:await(await fetch(e)).text()},fz[e]=t,t)}async function mz(e,t){let n=e.cssText,r=/url\(["']?([^"')]+)["']?\)/g,i=(n.match(/url\([^)]+\)/g)||[]).map(async i=>{let a=i.replace(r,`$1`);return a.startsWith(`https://`)||(a=new URL(a,e.url).href),PR(a,t.fetchRequestInit,({result:e})=>(n=n.replace(i,`url(${e})`),[i,e]))});return Promise.all(i).then(()=>n)}function hz(e){if(e==null)return[];let t=[],n=e.replace(/(\/\*[\s\S]*?\*\/)/gi,``),r=RegExp(`((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})`,`gi`);for(;;){let e=r.exec(n);if(e===null)break;t.push(e[0])}n=n.replace(r,``);let i=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,a=RegExp(`((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})`,`gi`);for(;;){let e=i.exec(n);if(e===null){if(e=a.exec(n),e===null)break;i.lastIndex=a.lastIndex}else a.lastIndex=i.lastIndex;t.push(e[0])}return t}async function gz(e,t){let n=[],r=[];return e.forEach(n=>{if(`cssRules`in n)try{oR(n.cssRules||[]).forEach((e,i)=>{if(e.type===CSSRule.IMPORT_RULE){let a=i+1,o=e.href,s=pz(o).then(e=>mz(e,t)).then(e=>hz(e).forEach(e=>{try{n.insertRule(e,e.startsWith(`@import`)?a+=1:n.cssRules.length)}catch(t){console.error(`Error inserting rule from remote css`,{rule:e,error:t})}})).catch(e=>{console.error(`Error loading remote css`,e.toString())});r.push(s)}})}catch(i){let a=e.find(e=>e.href==null)||document.styleSheets[0];n.href!=null&&r.push(pz(n.href).then(e=>mz(e,t)).then(e=>hz(e).forEach(e=>{a.insertRule(e,a.cssRules.length)})).catch(e=>{console.error(`Error loading remote stylesheet`,e)})),console.error(`Error inlining remote css file`,i)}}),Promise.all(r).then(()=>(e.forEach(e=>{if(`cssRules`in e)try{oR(e.cssRules||[]).forEach(e=>{n.push(e)})}catch(t){console.error(`Error while reading CSS rules from ${e.href}`,t)}}),n))}function _z(e){return e.filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>iz(e.style.getPropertyValue(`src`)))}async function vz(e,t){if(e.ownerDocument==null)throw Error(`Provided element is not within a Document`);return _z(await gz(oR(e.ownerDocument.styleSheets),t))}function yz(e){return e.trim().replace(/["']/g,``)}function bz(e){let t=new Set;function n(e){(e.style.fontFamily||getComputedStyle(e).fontFamily).split(`,`).forEach(e=>{t.add(yz(e))}),Array.from(e.children).forEach(e=>{e instanceof HTMLElement&&n(e)})}return n(e),t}async function xz(e,t){let n=await vz(e,t),r=bz(e);return(await Promise.all(n.filter(e=>r.has(yz(e.style.fontFamily))).map(e=>{let n=e.parentStyleSheet?e.parentStyleSheet.href:null;return az(e.cssText,n,t)}))).join(`
|
|
60
60
|
`)}async function Sz(e,t){let n=t.fontEmbedCSS==null?t.skipFonts?null:await xz(e,t):t.fontEmbedCSS;if(n){let t=document.createElement(`style`),r=document.createTextNode(n);t.appendChild(r),e.firstChild?e.insertBefore(t,e.firstChild):e.appendChild(t)}}async function Cz(e,t={}){let{width:n,height:r}=fR(e,t),i=await XR(e,t,!0);return await Sz(i,t),await uz(i,t),dz(i,t),await yR(i,n,r)}async function wz(e,t={}){let{width:n,height:r}=fR(e,t),i=await _R(await Cz(e,t)),a=document.createElement(`canvas`),o=a.getContext(`2d`),s=t.pixelRatio||pR(),c=t.canvasWidth||n,l=t.canvasHeight||r;return a.width=c*s,a.height=l*s,t.skipAutoScale||hR(a),a.style.width=`${c}`,a.style.height=`${l}`,t.backgroundColor&&(o.fillStyle=t.backgroundColor,o.fillRect(0,0,a.width,a.height)),o.drawImage(i,0,0,a.width,a.height),a}async function Tz(e,t={}){return await gR(await wz(e,t))}function Ez(e){let t=e;for(;t;){let e=getComputedStyle(t).backgroundColor;if(e&&e!==`rgba(0, 0, 0, 0)`&&e!==`transparent`)return e;t=t.parentElement}let n=typeof document<`u`?getComputedStyle(document.body).backgroundColor:``;return n&&n!==`rgba(0, 0, 0, 0)`?n:`#ffffff`}async function Dz(e,t=3){let n=await Tz(e,{pixelRatio:t,backgroundColor:Ez(e)});if(!n)throw Error(`Failed to capture chart as image`);return n}function Oz(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),window.setTimeout(()=>URL.revokeObjectURL(n),1e4)}async function kz(e,t){Oz(await Dz(e),t)}async function Az(e){if(typeof ClipboardItem>`u`||!navigator.clipboard?.write)return!1;try{let t=await Dz(e);return await navigator.clipboard.write([new ClipboardItem({"image/png":t})]),!0}catch{return!1}}function jz(e){return e.replace(/[^a-z0-9-]+/gi,`-`).replace(/(^-|-$)/g,``).toLowerCase()}function Mz(e){return new Date(e).toISOString().replace(/[:.]/g,`-`)}function Nz(e,t){return`${jz(e)}-${Mz(t.endTime)}.png`}function Pz(e){if(e==null)return``;let t=String(e),n=/^[=+\-@\t\r]/.test(t)?`'${t}`:t;return/[",\r\n]/.test(n)?`"${n.replace(/"/g,`""`)}"`:n}function Fz(e){return e==null?``:String(e)}var Iz=`\r
|
|
61
61
|
`;function Lz(e){let t=new Map;for(let n of e)t.set(n.label,(t.get(n.label)??0)+1);return e.map(e=>(t.get(e.label)??0)>1&&e.key!==e.label?`${e.label} (${e.key})`:e.label)}function Rz(e){let t=e.ceiling?[...e.series,e.ceiling]:[...e.series],n=[`timestamp`,...Lz(t)].map(Pz).join(`,`),r=new Set,i=t.map(e=>{let t=new Map;for(let n of e.points)r.add(n.x),t.set(n.x,n.y);return t});return[n,...[...r].sort((e,t)=>e-t).map(e=>{let t=[Pz(new Date(e).toISOString())];for(let n of i)t.push(Fz(n.get(e)));return t.join(`,`)})].join(Iz)+Iz}function zz(e,t,n,r){if(e==null)return`absent`;let i=t??0;return i<n?`suppress`:i<r?`grey`:`ok`}function Bz(e,t=`value`){let n=e.confidence,r=[`row`,`col`,Pz(t),`count`];return n&&r.push(`confidence`),[r.join(`,`),...e.cells.map(e=>{let t=[Pz(e.row),Pz(e.col),Fz(e.value),Fz(e.count)];return n&&t.push(zz(e.value,e.count,n.greyBelow??0,n.suppressBelow??0)),t.join(`,`)})].join(Iz)+Iz}function Vz(e){return e.kind===`heatmap`?Bz(e.data,e.valueColumn):Rz(e.data)}function Hz(e,t){return`${jz(e)}-${Mz(t.startTime)}-${Mz(t.endTime)}.csv`}function Uz(e,t){Oz(new Blob([``,e],{type:`text/csv;charset=utf-8`}),t)}var Wz=`p95`;function Gz(e,t,n,r,i){if(t.length===0)return null;let a=EI[e];if(a)return{kind:`series`,data:a.recompute(t,n,r,i)};let o=WL[e],s=o?.spec;if(!s)return null;if(s.primitive===`heatmap`)return{kind:`heatmap`,data:CL(t,r,Wz),valueColumn:Wz};if(o.Renderer)return{kind:`series`,data:$(s,e===`connection`?tI(t).records:t,n,r,{snapToPeriod:!0})};let c=(i??`per-node`)===`per-node`;if(s.primitive===`small-multiples`){if(s.series.kind!==`field`)return null;let e=[];for(let i of s.series.fields){let a=$({...s,series:{kind:`field`,fields:[i]},aggregator:{temporal:i.aggregator?.temporal??s.aggregator.temporal,crossNode:i.aggregator?.crossNode??s.aggregator.crossNode}},t,n,r,{perNode:c,snapToPeriod:!0});e.push(...a.series),a.ceiling&&e.push(a.ceiling)}return{kind:`series`,data:{series:e}}}return $L(s,c)&&s.series.kind===`groupBy`?{kind:`series`,data:$({...s,series:{...s.series,dimension:`node`}},t,n,r,{snapToPeriod:!0})}:eR(s,c)&&s.series.kind===`groupBy`?{kind:`series`,data:$({...s,series:{kind:`field`,fields:[{...s.series.field,label:`cluster`}]}},t,n,r,{snapToPeriod:!0})}:tR(s)?{kind:`series`,data:$(s,t,n,r,{perNode:!1,snapToPeriod:!0})}:{kind:`series`,data:$(s,t,n,r,{perNode:c,snapToPeriod:!0})}}var Kz={"request-rate":[`count`,`period`],"error-rate":[`count`,`total`]},qz=new Map;function Jz(e){let t=qz.get(e);return t||(t=Yz(e),qz.set(e,t)),t}function Yz(e){let t=Kz[e];if(t)return t;if(EI[e])return[];let n=WL[e];return n?.spec?Xz(n.spec):[]}function Xz(e){let t=new Set,n=e.series,r=!1;if(n.kind===`field`)for(let e of n.fields)Qz(e,t),Zz(e.transform)&&(r=!0);else Qz(n.field,t),Zz(n.field.transform)&&(r=!0),n.dimension&&n.dimension!==`node`&&t.add(n.dimension);return r&&t.add(`period`),[...t]}function Zz(e){if(!e)return!1;switch(e.kind){case`rate`:return!0;case`compose`:return e.steps.some(Zz);default:return!1}}function Qz(e,t){$z(e.field,t)}function $z(e,t){if(typeof e==`string`){t.add(e);return}switch(e.kind){case`ref`:t.add(e.field);return;case`const`:return;case`op`:$z(e.left,t),$z(e.right,t);return}}var eB=class extends I.Component{state={failed:!1};static getDerivedStateFromError(e){return{failed:!0,message:e instanceof Error?e.message:String(e)}}static getDerivedStateFromProps(e,t){return t.lastResetKey===e.resetKey?null:{failed:!1,message:void 0,lastResetKey:e.resetKey}}componentDidCatch(e){console.error(`[panel:${this.props.metric}] render failed`,e)}render(){return this.state.failed?(0,L.jsxs)(`div`,{className:`rounded-lg border border-destructive/40 bg-destructive/10 p-4 text-sm text-destructive`,children:[(0,L.jsx)(`div`,{className:`font-medium mb-1`,children:`Panel "${this.props.metric}" is unavailable`}),(0,L.jsx)(`div`,{className:`text-xs opacity-80`,children:this.state.message})]}):this.props.children}};function tB({captureRef:e,exportSlug:t}){let[n,r]=(0,I.useState)(!1);return(0,L.jsxs)(ke,{children:[(0,L.jsx)(Te,{asChild:!0,children:(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:async()=>{if(n)return;let t=e.current;if(t){r(!0);try{await Az(t)?v.success(`Chart copied to clipboard`):v.error(`Could not copy chart`,{description:`Your browser blocked the clipboard write. Try Download or check site permissions.`})}catch(e){console.error(`[chart-copy] capture failed`,e),v.error(`Could not copy chart`,{description:e instanceof Error?e.message:`Unknown error`})}finally{r(!1)}}},"aria-disabled":n,"aria-busy":n,"aria-label":`Copy ${t} chart to clipboard`,children:(0,L.jsx)(Jt,{className:`h-4 w-4`})})}),(0,L.jsx)(De,{side:`top`,children:`Copy to clipboard`})]})}function nB({exportSlug:e,getCsvData:t}){let{timeRange:n}=Er();return(0,L.jsxs)(ke,{children:[(0,L.jsx)(Te,{asChild:!0,children:(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:()=>{let r=Hz(e,n);try{let e=t();if(!e){v.error(`No data to export`);return}Uz(Vz(e),r),v.success(`Saved ${r}`)}catch(e){console.error(`[chart-csv] export failed`,e),v.error(`Could not export CSV`,{description:e instanceof Error?e.message:`Unknown error`})}},"aria-label":`Download ${e} as CSV`,children:(0,L.jsx)(Yt,{className:`h-4 w-4`})})}),(0,L.jsx)(De,{side:`top`,children:`Download as CSV`})]})}function rB({captureRef:e,exportSlug:t}){let{timeRange:n}=Er(),[r,i]=(0,I.useState)(!1);return(0,L.jsxs)(ke,{children:[(0,L.jsx)(Te,{asChild:!0,children:(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:async()=>{if(r)return;let a=e.current;if(!a)return;i(!0);let o=Nz(t,n);try{await kz(a,o),v.success(`Saved ${o}`)}catch(e){console.error(`[chart-export] capture failed`,e),v.error(`Could not export chart`,{description:e instanceof Error?e.message:`Unknown error`})}finally{i(!1)}},"aria-disabled":r,"aria-busy":r,"aria-label":`Download ${t} as PNG`,children:(0,L.jsx)(ue,{className:`h-4 w-4`})})}),(0,L.jsx)(De,{side:`top`,children:`Download as PNG`})]})}function iB({exportSlug:e,title:t,description:n,renderChart:r,getCsvData:i}){let[o,s]=(0,I.useState)(!1),c=(0,I.useRef)(null);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(ke,{children:[(0,L.jsx)(Te,{asChild:!0,children:(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:()=>s(!0),"aria-label":`Expand ${e}`,children:(0,L.jsx)(Xt,{className:`h-4 w-4`})})}),(0,L.jsx)(De,{side:`top`,children:`Expand`})]}),(0,L.jsx)(A,{open:o,onOpenChange:s,children:(0,L.jsxs)(te,{className:`!max-w-[95vw] sm:!max-w-[95vw] h-[90vh] flex flex-col`,children:[(0,L.jsx)(j,{children:(0,L.jsxs)(`div`,{className:`flex items-start justify-between gap-2 pr-6`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(ie,{children:t}),n&&(0,L.jsx)(se,{children:n})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(tB,{captureRef:c,exportSlug:`${e}-expanded`}),(0,L.jsx)(rB,{captureRef:c,exportSlug:`${e}-expanded`}),i&&(0,L.jsx)(nB,{exportSlug:e,getCsvData:i})]})]})}),(0,L.jsx)(`div`,{ref:c,className:`flex-1 min-h-0 overflow-hidden flex flex-col`,children:r({fillParent:!0})})]})})]})}function aB({title:e,description:t,expandDescription:n=t,exportSlug:r,canExport:i,renderChart:a,getCsvData:o,children:s}){let c=(0,I.useRef)(null);return(0,L.jsxs)(O,{children:[(0,L.jsxs)(T,{className:`flex flex-row items-start justify-between gap-2`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(w,{children:e}),t&&(0,L.jsx)(D,{children:t})]}),i&&(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(iB,{exportSlug:r,title:e,description:n,renderChart:a,getCsvData:o}),(0,L.jsx)(tB,{captureRef:c,exportSlug:r}),(0,L.jsx)(rB,{captureRef:c,exportSlug:r}),o&&(0,L.jsx)(nB,{exportSlug:r,getCsvData:o})]})]}),(0,L.jsx)(E,{children:(0,L.jsx)(`div`,{ref:c,children:s})})]})}function oB({isLoading:e,isError:t,error:n,isEmpty:r,missingFields:i=[],emptyMessage:o=`No data in the selected time range.`,onRetry:s,children:c}){return e?(0,L.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:`h-64 rounded-md bg-muted/30 animate-pulse`,"aria-label":`Loading`}):t?(0,L.jsxs)(`div`,{className:`h-64 rounded-md border border-destructive/40 bg-destructive/10 p-4 text-sm text-destructive flex flex-col items-start justify-center gap-3`,children:[(0,L.jsx)(`div`,{children:`Failed to load: ${he(n)??`unknown error`}`}),(0,L.jsx)(a,{variant:`defaultOutline`,size:`sm`,onClick:s,children:`Retry`})]}):r?(0,L.jsx)(`div`,{className:`h-64 rounded-md border border-border bg-muted/20 p-4 text-sm text-muted-foreground flex items-center justify-center`,children:i.length>0?`No data — server response is missing required field(s): ${i.join(`, `)}.`:o}):(0,L.jsx)(L.Fragment,{children:c})}function sB(e){let t=new Set;for(let n of e)typeof n.node==`string`&&t.add(n.node);return[...t].sort()}function cB({metric:e,titleOverride:t}){let{timeRange:n}=Er();return(0,L.jsx)(eB,{metric:e,resetKey:`${n.startTime}-${n.endTime}`,children:(0,L.jsx)(lB,{metric:e,titleOverride:t})})}function lB({metric:e,titleOverride:t}){let{timeRange:n,bucketMs:r,instanceParams:i}=Er(),a=EI[e]?.sourceMetric??e,o=Jz(e),{data:s,isLoading:c,isError:l,error:u,isEmpty:d,missingFields:f,isPlaceholderData:p,refetch:m}=Vr({metric:a,startTime:n.startTime,endTime:n.endTime,instanceParams:i,bucketMs:r,requiredFields:o}),h=WL[e],g=EI[e],_=t??h?.spec?.title??g?.title??e,v=h?.spec?.description??g?.subtitle,y=(0,I.useMemo)(()=>sB(s),[s]),b=!c&&!l&&!d&&!p,x=()=>Gz(e,s,n,y),S=(t={fillParent:!1})=>(0,L.jsx)(rR,{metric:e,records:s,window:n,nodes:y,fillParent:t.fillParent});return(0,L.jsx)(aB,{title:_,description:v,exportSlug:e,canExport:b,renderChart:S,getCsvData:x,children:(0,L.jsx)(oB,{isLoading:c,isError:l,error:u,isEmpty:d,missingFields:f,onRetry:m,children:S()})})}var uB=[`db-read`,`db-write`,`db-message`];function dB(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:uB.map(e=>(0,L.jsx)(cB,{metric:e},e))})}function fB(e,t,n){let r=n?e.series.filter(e=>e.dim!==void 0&&n.includes(e.dim)):e.series,i=new Map;for(let e of r)for(let t of e.points)if(typeof t.y==`number`&&Number.isFinite(t.y)){let n=i.get(t.x);n||(n={ys:[],dims:new Set},i.set(t.x,n)),n.ys.push(t.y),e.dim!==void 0&&n.dims.add(e.dim)}return[...i.entries()].filter(([,{dims:e}])=>!n||e.size===n.length).sort((e,t)=>e[0]-t[0]).map(([e,{ys:n}])=>{let r=n.reduce((e,t)=>e+t,0);return{x:e,y:t===`sum`?r:r/n.length}})}function pB(e){return e.length>0?e[e.length-1].y:null}function mB(e){return e.length===0?null:e.reduce((e,t)=>e+t.y,0)/e.length}var hB=.05;function gB(e,t){if(e===null||t===null||!Number.isFinite(e)||!Number.isFinite(t))return null;if(t===0)return e===0?{pct:0,direction:`flat`}:null;let n=(e-t)/Math.abs(t)*100;return{pct:n,direction:Math.abs(n)<hB?`flat`:n>0?`up`:`down`}}var _B=6e4,vB=60*_B,yB=24*vB;function bB(e){return e%vB===0&&e<=48*vB?`${e/vB}h`:e%yB===0?`${e/yB}d`:`${Math.max(1,Math.round(e/_B))}m`}var xB=120,SB=32,CB=2;function wB({points:e,xDomain:t}){if(e.length<2)return(0,L.jsx)(`div`,{className:`h-8`,"aria-hidden":`true`});let[n,r]=t,i=r-n||1,a=1/0,o=-1/0;for(let t of e)t.y<a&&(a=t.y),t.y>o&&(o=t.y);let s=o-a||1,c=e.map(e=>[(e.x-n)/i*xB,o===a?SB/2:CB+(1-(e.y-a)/s)*(SB-2*CB)]),l=e=>e.map(([e,t],n)=>`${n===0?`M`:`L`}${e.toFixed(2)},${t.toFixed(2)}`).join(` `);return(0,L.jsxs)(`svg`,{viewBox:`0 0 ${xB} ${SB}`,preserveAspectRatio:`none`,className:`h-8 w-full text-muted-foreground/60`,"aria-hidden":`true`,focusable:`false`,children:[e.length>2&&(0,L.jsx)(`path`,{d:l(c.slice(0,-1)),fill:`none`,stroke:`currentColor`,strokeWidth:1.5,vectorEffect:`non-scaling-stroke`,strokeLinejoin:`round`,strokeLinecap:`round`}),(0,L.jsx)(`path`,{d:l(c.slice(-2)),fill:`none`,stroke:`var(--chart-node-1)`,strokeWidth:1.5,vectorEffect:`non-scaling-stroke`,strokeLinejoin:`round`,strokeLinecap:`round`})]})}function TB(e){let{timeRange:t,bucketMs:n,instanceParams:r}=Er(),i=t.endTime-t.startTime,a=Math.floor(t.startTime/n)*n,o=a-i,s=Vr({metric:e.metric,startTime:t.startTime,endTime:t.endTime,instanceParams:r,bucketMs:n}),c=Vr({metric:e.metric,startTime:o,endTime:a,instanceParams:r,bucketMs:n}),l=(0,I.useMemo)(()=>s.isError?[]:fB($(e.spec,s.data,t,[],{snapToPeriod:!0}),e.combine,e.includeDims),[e,s.data,s.isError,t]),u=(0,I.useMemo)(()=>{if(c.isLoading||c.isError)return null;let t={startTime:o,endTime:a};return mB(fB($(e.spec,c.data,t,[],{snapToPeriod:!0}),e.combine,e.includeDims))},[e,c.data,c.isLoading,c.isError,o,a]),d=(0,I.useRef)(null),f;return s.isPlaceholderData||c.isPlaceholderData?f=d.current:(f=gB(mB(l),u),d.current=f),{latest:pB(l),delta:f,sparkPoints:l,isLoading:s.isLoading,timeRange:t,windowMs:i}}function EB({def:e}){let{latest:t,delta:n,sparkPoints:r,isLoading:i,timeRange:a,windowMs:o}=TB(e);return(0,L.jsx)(O,{className:`gap-2 py-4`,children:(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 px-4`,children:[(0,L.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.label}),i?(0,L.jsxs)(`div`,{role:`status`,"aria-live":`polite`,"aria-label":`Loading ${e.label}`,className:`flex flex-col gap-2`,children:[(0,L.jsx)(Se,{className:`h-7 w-20`}),(0,L.jsx)(Se,{className:`h-4 w-24`}),(0,L.jsx)(Se,{className:`h-8 w-full`})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`text-2xl font-semibold leading-tight`,children:xe(t,e.formatter)}),(0,L.jsx)(DB,{delta:t===null?null:n,windowMs:o}),(0,L.jsx)(wB,{points:r,xDomain:[a.startTime,a.endTime]})]})]})})}function DB({delta:e,windowMs:t}){if(!e)return(0,L.jsx)(`div`,{className:`h-4`,"aria-hidden":`true`});let n=bB(t),r=e.pct.toFixed(1),i=r===`0.0`||r===`-0.0`?`0.0%`:`${e.pct>=0?`+`:``}${r}%`,a=e.direction===`up`?`text-destructive`:e.direction===`down`?`text-green`:`text-muted-foreground`,o=e.direction===`up`?N:e.direction===`down`?M:Zt;return(0,L.jsxs)(`div`,{role:`img`,className:`flex h-4 items-center gap-1 text-xs`,"aria-label":`${e.direction} ${i} vs previous ${n}`,children:[(0,L.jsx)(o,{className:`size-3 shrink-0 ${a}`,"aria-hidden":`true`}),(0,L.jsx)(`span`,{className:`font-medium ${a}`,children:i}),(0,L.jsxs)(`span`,{className:`truncate text-muted-foreground`,children:[`vs prev `,n]})]})}function OB(e){return{title:``,description:``,tab:`health`,primaryDimension:`node`,timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},primitive:`line`,yAxis:{unit:``},...e}}var kB=[{id:`cpu`,label:`CPU (p95)`,metric:`cpu-usage`,spec:OB({series:{kind:`groupBy`,dimension:`path`,field:{field:`p95`,label:`CPU %`}},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`}}),combine:`sum`,includeDims:[`harper`,`user`],formatter:`percent`},{id:`memory`,label:`Heap used`,metric:`memory`,spec:OB({series:{kind:`field`,fields:[{field:`heapUsed`,label:`heap used`}]},aggregator:{temporal:`last`,crossNode:`mean`}}),combine:`mean`,formatter:`bytes-si`},{id:`main-thread`,label:`Main thread`,metric:`main-thread-utilization`,spec:OB({series:{kind:`field`,fields:[{field:{kind:`op`,op:`/`,left:{kind:`ref`,field:`active`},right:{kind:`op`,op:`+`,left:{kind:`ref`,field:`active`},right:{kind:`ref`,field:`idle`}}},label:`utilization`}]},aggregator:{temporal:`mean`,crossNode:`mean`}}),combine:`mean`,formatter:`percent`},{id:`error-rate`,label:`Error rate`,metric:`success`,spec:OB({series:{kind:`field`,fields:[{field:{kind:`op`,op:`-`,left:{kind:`const`,value:1},right:{kind:`op`,op:`/`,left:{kind:`ref`,field:`total`},right:{kind:`ref`,field:`count`}}},label:`error rate`}]},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`}}),combine:`mean`,formatter:`percent`},{id:`p95-duration`,label:`Request p95`,metric:`duration`,spec:OB({series:{kind:`field`,fields:[{field:`p95`,label:`p95 duration (ms)`}]},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`}}),combine:`mean`,formatter:`ms`}];function AB(){return(0,L.jsx)(`div`,{className:`grid grid-cols-2 gap-4 sm:grid-cols-3 xl:grid-cols-5`,"data-testid":`kpi-strip`,children:kB.map(e=>(0,L.jsx)(EB,{def:e},e.id))})}var jB=[`resource-usage`,`memory`,`main-thread-utilization`,`cpu-usage`,`utilization`];function MB(){return(0,L.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,L.jsx)(AB,{}),(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:jB.map(e=>(0,L.jsx)(cB,{metric:e},e))})]})}function NB({...e}){return(0,L.jsx)(C,{"data-slot":`accordion`,...e})}function PB({className:e,...t}){return(0,L.jsx)(b,{"data-slot":`accordion-item`,className:i(`border-b last:border-b-0`,e),...t})}function FB({className:e,children:t,...n}){return(0,L.jsx)(S,{className:`flex`,children:(0,L.jsxs)(y,{"data-slot":`accordion-trigger`,className:i(`focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180`,e),...n,children:[t,(0,L.jsx)(ce,{className:`text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200`})]})})}function IB({className:e,children:t,...n}){return(0,L.jsx)(x,{"data-slot":`accordion-content`,className:`data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm`,...n,children:(0,L.jsx)(`div`,{className:i(`pt-0 pb-4`,e),children:t})})}function LB({entityId:e,instanceClient:t}){return p({queryKey:[`system_information`,e],queryFn:async()=>{let{data:e}=await t.post(`/`,{operation:`system_information`,attributes:[`network`,`disk`,`cpu`,`memory`,`system`]});return e}})}var RB=new Date(2025,0).getTime(),zB=1440*60*1e3;function BB(e){let t=[];for(let n in e){let r=e[n];t.push(...HB(n,r,0))}return t}function VB(e){return!!e.title}function HB(e,t,n,r){if(t&&Array.isArray(t)){let r=t;return[r.length>1&&{title:e,depth:n},...t.map((t,i)=>HB(r.length>1?String(i+1):e,t,n+1,e)).flat(1)].filter(_e)}if(UB(t)){let r=t;return[{title:e,depth:n},...Object.keys(t).map(t=>HB(String(t),r[t],n+1,e)).flat(1)]}return(e===`__updatedtime__`||e===`__createdtime__`)&&(e=e.replace(/_/g,``).replace(`time`,``)),typeof t==`number`?t>RB&&t<Date.now()+zB?t=ve(Date.now()-t,t):r===`memory`?t=be(t):!e.startsWith(`raw`)&&e.toLowerCase().includes(`load`)&&(t=Math.round(t*10)/10+`%`):typeof t==`boolean`&&(t=t?`Yes`:`No`),[{name:e,value:String(t),depth:n}]}function UB(e){return!!e&&typeof e==`object`}function WB({instanceParams:e,isLocalStudio:t}){let{timeRange:n}=Er();return(0,L.jsx)(eB,{metric:`overview`,resetKey:`${String(e.entityId)}-${n.startTime}-${n.endTime}`,children:(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(GB,{}),children:t?(0,L.jsx)(KB,{instanceParams:e}):(0,L.jsx)(qB,{instanceParams:e})})})}function GB(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[0,1,2,3].map(e=>(0,L.jsx)(`div`,{className:`h-40 rounded-lg bg-muted/30 animate-pulse`},e))})}function KB({instanceParams:e}){let{data:t}=c(LB(e));return(0,L.jsx)(JB,{data:t})}function qB({instanceParams:e}){let{data:t}=c(ye(e));return(0,L.jsx)(JB,{data:t})}function JB({data:e}){let t=(0,I.useMemo)(()=>XB(e),[e]);return(0,L.jsxs)(`div`,{className:`space-y-4`,children:[(0,L.jsx)(NB,{type:`multiple`,defaultValue:t.slice(0,1).map(e=>e.title),children:t.map(e=>(0,L.jsxs)(PB,{value:e.title,children:[(0,L.jsx)(FB,{className:`text-base font-semibold`,children:e.title}),(0,L.jsx)(IB,{children:(0,L.jsx)(YB,{section:e})})]},e.title))}),(0,L.jsxs)(`details`,{className:`rounded-lg border border-border bg-card`,children:[(0,L.jsx)(`summary`,{className:`cursor-pointer px-4 py-2 text-sm text-muted-foreground hover:text-foreground`,children:`View raw JSON`}),(0,L.jsx)(`pre`,{className:`px-4 pb-4 text-xs overflow-auto max-h-96`,children:JSON.stringify(e,null,2)})]})]})}function YB({section:e}){return(0,L.jsxs)(`div`,{className:`space-y-3`,children:[e.rows.length>0&&(0,L.jsx)(O,{children:(0,L.jsx)(E,{className:`pt-4`,children:(0,L.jsx)(`dl`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-2 text-sm`,children:e.rows.map(e=>(0,L.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,L.jsx)(`dt`,{className:`text-muted-foreground`,children:e.name}),(0,L.jsx)(`dd`,{className:`font-mono text-right truncate`,title:e.value,children:e.value})]},e.name))})})}),e.subSections.map(e=>(0,L.jsxs)(`div`,{className:`pl-3 border-l border-border`,children:[(0,L.jsx)(`div`,{className:`text-sm font-semibold mb-2 text-muted-foreground`,children:e.title}),(0,L.jsx)(YB,{section:e})]},e.title))]})}function XB(e){let t=BB(e),n=[],r=[],i=null;for(let e of t)if(VB(e)){for(;r.length>0&&r[r.length-1]._depth>=e.depth;)r.pop();let t={title:e.title,rows:[],subSections:[],_depth:e.depth};r.length===0?n.push(t):r[r.length-1].subSections.push(t),r.push(t)}else{let t=r[r.length-1];t?t.rows.push({name:e.name,value:e.value}):(i||(i={title:`General`,rows:[],subSections:[]},n.unshift(i)),i.rows.push({name:e.name,value:e.value}))}return n}function ZB(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:(0,L.jsx)(cB,{metric:`replication-latency`})})}var QB=[`request-rate`,`error-rate`,`duration`,`success`,`transfer`,`response_200`,`cache-hit`,`cache-resolution`];function $B(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:QB.map(e=>(0,L.jsx)(cB,{metric:e},e))})}var eV=[`var(--chart-table-1)`,`var(--chart-table-2)`,`var(--chart-table-3)`,`var(--chart-table-4)`,`var(--chart-table-5)`,`var(--chart-table-6)`,`var(--chart-table-7)`,`var(--chart-table-8)`,`var(--chart-table-9)`,`var(--chart-table-10)`],tV=`var(--chart-other)`;function nV(e){return eV[e%eV.length]}var rV=`__other__`,iV=4096;function aV(e,t){let n=Math.max(6e4,Math.ceil(e/90));return typeof t==`number`&&Number.isFinite(t)&&t>0?Math.ceil(n/t)*t:n}function oV(e){return`${e.database}.${e.table}`}function sV(e){let t=e.map(e=>({database:e.database,table:e.table,tableKey:oV(e),node:e.node==null?``:String(e.node),time:e.id,size:e.size}));return t.sort((e,t)=>e.time-t.time),t}function cV(e){let t=new Map,n=[];for(let r of e){let e=`${r.node}\0${r.tableKey}`;t.get(e)!==r.size&&(n.push(r),t.set(e,r.size))}return n}function lV(e){let t=new Map,n=new Map;for(let t of e){let e=`${t.tableKey}\0${t.node}`,r=n.get(e);(r===void 0||t.size>r)&&n.set(e,t.size)}for(let[e,r]of n){let[n]=e.split(`\0`),i=t.get(n);(i===void 0||r>i)&&t.set(n,r)}let r=[...t.entries()].filter(([,e])=>e>iV);r.sort((e,t)=>t[1]===e[1]?e[0].localeCompare(t[0]):t[1]-e[1]);let i=r.map(([e])=>e),a=[...t.keys()].filter(e=>!i.includes(e));if(a.sort((e,t)=>e.localeCompare(t)),i.length<=9)return{tableSet:i,hasOther:a.length>0,otherMembers:a};let o=i.slice(0,8),s=[...i.slice(8),...a];return{tableSet:o,hasOther:s.length>0,otherMembers:s}}function uV(e,t,n){let r=new Map;for(let t of e){let e=`${t.node}\0${t.tableKey}`,n=r.get(e);(!n||t.time>=n.time)&&r.set(e,{size:t.size,time:t.time,tableKey:t.tableKey,node:t.node})}let i=new Set(t),a=new Map;for(let{size:e,tableKey:t,node:o}of r.values()){a.has(o)||a.set(o,{node:o,stacks:{},total:0});let r=a.get(o);r.total+=e,i.has(t)?r.stacks[t]=e:n&&(r.stacks[rV]=(r.stacks.__other__??0)+e)}return[...a.values()].sort((e,t)=>e.node.localeCompare(t.node))}function dV(e,t,n){let r=aV(t.endTime-t.startTime,n);return function(n){let i=new Map;for(let a of e){if(a.tableKey!==n||a.time<t.startTime||a.time>t.endTime)continue;let e=Math.round(a.time/r)*r;i.has(e)||i.set(e,new Map);let o=i.get(e),s=o.get(a.node);(!s||a.time>=s.time)&&o.set(a.node,{size:a.size,time:a.time})}let a=[],o=[...i.keys()].sort((e,t)=>e-t);for(let e of o){let t=i.get(e),n={};for(let[e,{size:r}]of t)n[e]=r;Object.keys(n).length>0&&a.push({time:e,values:n})}return a}}function fV(e,t){if(e.length===0)return null;let n=new Map;for(let t of e){let e=`${t.tableKey}\0${t.node}`,r=n.get(e);r||(r={min:t.size,max:t.size,distinctTimes:new Set},n.set(e,r)),t.size<r.min&&(r.min=t.size),t.size>r.max&&(r.max=t.size),r.distinctTimes.add(t.time)}let r=new Map;for(let[e,i]of n){let[n]=e.split(`\0`),a=i.distinctTimes.size>=2&&i.max>i.min,o=i.max-i.min,s=i.max>0?o/i.max:0,c=t===`bytes`?o:s,l=r.get(n);l?(c>l.delta&&(l.delta=c),i.max>l.maxSize&&(l.maxSize=i.max),a&&(l.hasDelta=!0)):r.set(n,{tableKey:n,delta:c,maxSize:i.max,hasDelta:a})}let i=[...r.values()],a=i.filter(e=>e.hasDelta);return a.length>0?(a.sort((e,t)=>t.delta===e.delta?e.tableKey.localeCompare(t.tableKey):t.delta-e.delta),a[0].tableKey):(i.sort((e,t)=>t.maxSize===e.maxSize?e.tableKey.localeCompare(t.tableKey):t.maxSize-e.maxSize),i[0]?.tableKey??null)}function pV(e,t,n){return e===0?`upstream-empty`:t.length===0&&n?`all-other`:null}function mV(e,t,n){let r=cV(sV(e)),{tableSet:i,hasOther:a,otherMembers:o}=lV(r),s=uV(r,i,a),c=dV(r,t,n),l=pV(e.length,i,a),u=e.reduce((e,t)=>t.id>e?t.id:e,0),d=`${t.startTime}:${t.endTime}:${e.length}:${u}`;return{snapshot:{byNode:s,tableSet:i,hasOther:a,otherMembers:o},trend:c,defaultSelection:e=>fV(r,e),emptyCause:l,signature:d}}function hV(e){let{points:t,node:n,windowMs:r,rankBy:i,formatBytes:a}=e,o=t.map(e=>e.values[n]).filter(e=>typeof e==`number`);if(o.length<2)return``;let s=o[0],c=o[0];for(let e of o)e<s&&(s=e),e>c&&(c=e);let l=c-s;if(l<=0)return``;if(i===`percent`)return`+${(c>0?l/c*100:0).toFixed(1)}%/window`;if(r<=0)return``;let u=l/(r/(1e3*60*60));return`+${a(l)} (${a(u)}/hr)`}function gV({tableSet:e,hasOther:t,selectedTable:n,onSelectTable:r}){let{getRadioProps:i}=Xr(e,n,r);return e.length===0&&!t?null:(0,L.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Table selector`,"data-testid":`table-size-chip-row`,className:`flex flex-wrap gap-2 pt-3`,children:[e.map((e,t)=>{let r=e===n,a=nV(t);return(0,L.jsxs)(`button`,{type:`button`,...i(t),"data-testid":`table-size-chip`,"data-table":e,className:`inline-flex min-h-8 items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs ${r?`font-semibold text-(--color-text-primary)`:`border-(--color-border) text-(--color-text-secondary) hover:text-(--color-text-primary)`}`,style:{borderColor:r?a:void 0},children:[(0,L.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:a}}),e]},e)}),t&&(0,L.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":!1,"aria-disabled":`true`,tabIndex:-1,"data-testid":`table-size-chip`,"data-table":`__other__`,title:`Aggregate of smaller tables; not selectable.`,className:`inline-flex min-h-8 items-center gap-1.5 rounded-full border border-dashed border-(--color-border) px-2.5 py-1 text-xs text-(--color-text-secondary)/60 cursor-not-allowed`,children:[(0,L.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:`var(--chart-other)`}}),`Other`]})]})}var _V=e=>xe(e,`bytes-si`);function vV(e,t,n){return e.byNode.filter(e=>t(e.node)).map(e=>{let t={};return n.forEach((n,r)=>{t[`t_${r}`]=e.stacks[n]??0}),{node:e.node,...t,__total__:e.total}})}function yV({snapshot:e,viewMode:t,selectedTable:n,onChipSelect:r,onBarClick:i,allOtherHint:a}){let o=bF(),s=e.byNode.map(e=>e.node),{isActive:c,handleLegendClick:l}=Jr(s),u=t===`aggregate`;if(a)return(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center text-sm text-(--color-text-secondary)`,children:`All tables are small within this window — widen the range to see growth.`});let d=[...e.tableSet,...e.hasOther?[rV]:[]],f=vV(e,c,d),p=f.reduce((e,t)=>Math.max(e,t.__total__),0)||1;return(0,L.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,L.jsx)(`div`,{style:{width:`100%`,height:300},children:(0,L.jsx)(Bd,{width:`100%`,height:`100%`,minWidth:0,children:(0,L.jsxs)(_F,{data:f,barCategoryGap:`20%`,children:[(0,L.jsx)(Ik,{stroke:o.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(lN,{dataKey:`node`,stroke:o.axisColor,tick:{fontSize:11}}),(0,L.jsx)(wN,{stroke:o.axisColor,tick:{fontSize:11},tickFormatter:e=>{let t=Number(e);return u?`${Math.round(t/p*100)}%`:_V(t)},domain:u?[0,p]:[`auto`,`auto`]}),(0,L.jsx)(pC,{contentStyle:TF,labelStyle:EF,itemStyle:DF,formatter:(e,t,n)=>{let r=String(t),i=r===`__other__`?`Other`:r,a=Number(e),o=n?.payload?.__total__??0,s=o>0?(a/o*100).toFixed(1):`0`;return[`${_V(a)} (${s}% of node total ${_V(o)})`,i]}}),d.map((e,t)=>{let r=e===`__other__`?tV:nV(t),a=e===n;return(0,L.jsx)(HM,{dataKey:`t_${t}`,name:e,stackId:`size`,fill:r,stroke:a?r:`transparent`,strokeWidth:a?2:0,onClick:()=>{e!==`__other__`&&i(e)},style:{cursor:e===`__other__`?`not-allowed`:`pointer`},children:f.map(t=>(0,L.jsx)(mC,{"data-testid":`table-size-segment`,"data-table":e,"data-node":t.node},t.node))},e)})]})})}),(0,L.jsx)(Kr,{nodeIds:s,isActive:c,onClickNode:l}),(0,L.jsx)(gV,{tableSet:e.tableSet,hasOther:e.hasOther,selectedTable:n,onSelectTable:r})]})}var bV=e=>xe(e,`bytes-si`);function xV({derived:e,viewMode:t,selectedTable:n,onChipSelect:r,manualSelection:i,range:a,clusterNodeIds:o,rankBy:s,onRankChange:c,fillParent:l}){let u=bF(),d=Or(!!l),{hovered:f,gateProps:p}=OF(),m=(0,I.useMemo)(()=>n?e.trend(n):[],[e,n]),h=(0,I.useMemo)(()=>{let e=new Set;for(let t of m)for(let n of Object.keys(t.values))e.add(n);return[...e].sort()},[m]),{isActive:g,handleLegendClick:_}=Jr(h),v=Math.max(0,a.endTime-a.startTime),y=(0,I.useMemo)(()=>{let e=new Map;return h.forEach((t,n)=>e.set(t,`n_${n}`)),e},[h]),b=(0,I.useMemo)(()=>m.map(e=>{let t={};for(let[n,r]of y)t[r]=e.values[n]??null;return{time:e.time,...t}}),[m,y]);return n?(0,L.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,L.jsxs)(`div`,{"aria-live":`polite`,"data-testid":`table-size-trend-title`,className:`sr-only`,children:[`Trend selection: `,n,i?``:` (auto-selected — ${s===`bytes`?`largest bytes change`:`largest percent change`})`]}),!i&&(0,L.jsxs)(`div`,{className:`mb-1 text-[10px] text-(--color-text-secondary)`,children:[`Auto-selected by `,s===`bytes`?`largest bytes change`:`largest % change`]}),(0,L.jsxs)(`div`,{className:`mb-2 flex items-center gap-2`,children:[(0,L.jsx)(`span`,{className:`text-[11px] text-(--color-text-secondary)`,children:`Rank by:`}),(0,L.jsxs)(`div`,{className:`inline-flex rounded border border-(--color-border) bg-(--color-bg-tertiary) p-0.5`,"data-testid":`table-size-rank-toggle`,children:[(0,L.jsx)(`button`,{type:`button`,"aria-pressed":s===`bytes`,onClick:()=>c(`bytes`),className:`rounded px-2 py-0.5 text-[11px] ${s===`bytes`?`bg-(--color-bg-secondary) text-(--color-text-primary)`:`text-(--color-text-secondary)`}`,children:`Bytes changed`}),(0,L.jsx)(`button`,{type:`button`,"aria-pressed":s===`percent`,onClick:()=>c(`percent`),className:`rounded px-2 py-0.5 text-[11px] ${s===`percent`?`bg-(--color-bg-secondary) text-(--color-text-primary)`:`text-(--color-text-secondary)`}`,children:`% change`})]})]}),(0,L.jsx)(`div`,{style:{width:`100%`,height:300},...p,children:(0,L.jsx)(Bd,{width:`100%`,height:`100%`,minWidth:0,children:(0,L.jsxs)(hF,{data:b,...d,children:[(0,L.jsx)(Ik,{stroke:u.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(lN,{dataKey:`time`,type:`number`,domain:[a.startTime,a.endTime],allowDataOverflow:!0,tickFormatter:CF,stroke:u.axisColor,tick:{fontSize:11},allowDuplicatedCategory:!1}),(0,L.jsx)(wN,{stroke:u.axisColor,tick:{fontSize:11},tickFormatter:bV,scale:t===`per-node`?`log`:`auto`,domain:t===`per-node`?[1,`auto`]:[`auto`,`auto`],allowDataOverflow:!0}),(0,L.jsx)(pC,{isAnimationActive:!1,content:(0,L.jsx)(AF,{hidden:!f,formatter:`bytes-si`,nodeNames:h})}),h.filter(e=>g(e)).map(e=>(0,L.jsx)(BA,{dataKey:y.get(e),name:`${e} ${hV({points:m,node:e,windowMs:v,rankBy:s,formatBytes:bV})}`.trim(),stroke:Ur(e,o),strokeWidth:2,dot:!1,type:`monotone`,connectNulls:!1},e))]})})}),(0,L.jsx)(Kr,{nodeIds:h,isActive:g,onClickNode:_}),(0,L.jsx)(gV,{tableSet:e.snapshot.tableSet,hasOther:e.snapshot.hasOther,selectedTable:n,onSelectTable:r})]}):(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center text-sm text-(--color-text-secondary)`,children:`Select a table to view trend.`})}function SV(e){return e.snapshot.byNode.map(e=>e.node)}function CV(){return(0,L.jsxs)(`div`,{className:`grid grid-cols-1 gap-4`,children:[(0,L.jsx)(eB,{metric:`table-size`,children:(0,L.jsx)(wV,{})}),(0,L.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:[(0,L.jsx)(cB,{metric:`database-size`}),(0,L.jsx)(cB,{metric:`transaction-log-growth`}),(0,L.jsx)(cB,{metric:`storage-volume`})]})]})}function wV(){let{timeRange:e,bucketMs:t,instanceParams:n}=Er(),{data:r,isLoading:i,isError:a}=Vr({metric:`table-size`,startTime:e.startTime,endTime:e.endTime,instanceParams:n,bucketMs:t}),o=(0,I.useMemo)(()=>{let e=r??[],t=[],n=0;for(let r of e)typeof r.id==`number`?t.push(r):typeof r.time==`number`?t.push({...r,id:r.time}):n++;return n>0&&console.warn(`[table-size] dropped rows missing both id and time`,{dropped:n,total:e.length}),t},[r]),s=(0,I.useMemo)(()=>mV(o,e,t),[o,e.startTime,e.endTime,t]),[c,l]=(0,I.useState)(`bytes`),[u,d]=(0,I.useState)(null),f=(0,I.useRef)(null),p=(0,I.useRef)(null),m=(0,I.useMemo)(()=>u&&s.snapshot.tableSet.includes(u)?u:s.defaultSelection(c),[u,s,c]);if(i)return(0,L.jsxs)(O,{children:[(0,L.jsx)(T,{children:(0,L.jsx)(w,{children:`Table sizes`})}),(0,L.jsx)(E,{children:(0,L.jsx)(`div`,{className:`h-64 rounded-md bg-muted/30 animate-pulse`,"aria-label":`Loading`})})]});if(a)return(0,L.jsxs)(O,{children:[(0,L.jsxs)(T,{children:[(0,L.jsx)(w,{children:`Table sizes`}),(0,L.jsx)(D,{children:`Per-table storage breakdown.`})]}),(0,L.jsx)(E,{children:(0,L.jsx)(`div`,{className:`h-32 rounded-md border border-destructive/40 bg-destructive/10 p-4 text-sm text-destructive flex items-center justify-center`,children:`Failed to load table-size data. Try a different time window or refresh.`})})]});if(s.emptyCause===`upstream-empty`)return(0,L.jsxs)(O,{children:[(0,L.jsxs)(T,{children:[(0,L.jsx)(w,{children:`Table sizes`}),(0,L.jsx)(D,{children:`Per-table storage breakdown.`})]}),(0,L.jsx)(E,{children:(0,L.jsx)(`div`,{className:`h-32 rounded-md border border-border bg-muted/20 p-4 text-sm text-muted-foreground flex items-center justify-center`,children:`No table-size data in the selected window.`})})]});let h=e=>(0,L.jsx)(yV,{snapshot:s.snapshot,viewMode:`per-node`,selectedTable:m,onChipSelect:d,onBarClick:d,allOtherHint:s.emptyCause===`all-other`}),g=t=>m?(0,L.jsx)(xV,{derived:s,viewMode:`per-node`,selectedTable:m,onChipSelect:d,manualSelection:u!==null,range:e,clusterNodeIds:SV(s),rankBy:c,onRankChange:l,fillParent:t?.fillParent??!1}):(0,L.jsx)(`div`,{className:`h-64 rounded-md border border-border bg-muted/20 p-4 text-sm text-muted-foreground flex items-center justify-center`,children:`No table selected.`});return(0,L.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:[(0,L.jsxs)(O,{ref:f,children:[(0,L.jsxs)(T,{className:`flex flex-row items-start justify-between gap-2`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(w,{children:`Table size — snapshot`}),(0,L.jsx)(D,{children:`Bytes per table, per node. Click a segment to pin the trend below.`})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(iB,{exportSlug:`table-size-snapshot`,title:`Table size — snapshot`,description:`Bytes per table, per node.`,renderChart:h}),(0,L.jsx)(tB,{captureRef:f,exportSlug:`table-size-snapshot`}),(0,L.jsx)(rB,{captureRef:f,exportSlug:`table-size-snapshot`})]})]}),(0,L.jsx)(E,{children:h()})]}),(0,L.jsxs)(O,{ref:p,children:[(0,L.jsxs)(T,{className:`flex flex-row items-start justify-between gap-2`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(w,{children:`Table size — trend`}),(0,L.jsx)(D,{children:m?`Growth of ${m} over the selected window.`:`Pick a table to see its trend.`})]}),m&&(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(iB,{exportSlug:`table-size-trend`,title:`Table size — trend: ${m}`,description:`Growth of ${m} over the selected window.`,renderChart:g}),(0,L.jsx)(tB,{captureRef:p,exportSlug:`table-size-trend`}),(0,L.jsx)(rB,{captureRef:p,exportSlug:`table-size-trend`})]})]}),(0,L.jsx)(E,{children:g()})]})]})}var TV=UL.connections.Renderer;function EV(){let{timeRange:e}=Er();return(0,L.jsx)(eB,{metric:`connections`,resetKey:`${e.startTime}-${e.endTime}`,children:(0,L.jsx)(DV,{})})}function DV(){let{timeRange:e,bucketMs:t,instanceParams:n}=Er(),r=Vr({metric:`mqtt-connections`,startTime:e.startTime,endTime:e.endTime,instanceParams:n,bucketMs:t}),i=Vr({metric:`ws-connections`,startTime:e.startTime,endTime:e.endTime,instanceParams:n,bucketMs:t}),a=r.isLoading||i.isLoading,o=r.isError||i.isError,s=r.error||i.error,c=(0,I.useMemo)(()=>{let e=[];for(let t of r.data)e.push({...t,type:`mqtt`});for(let t of i.data)e.push({...t,type:`ws`});return e},[r.data,i.data]),l=c.length===0,u=(0,I.useMemo)(()=>sB(c),[c]),d=!a&&!o&&!l&&!r.isPlaceholderData&&!i.isPlaceholderData,f=()=>Gz(`connections`,c,e,u),p=(t={fillParent:!1})=>(0,L.jsx)(TV,{records:c,timeRange:e,nodes:u,fillParent:t.fillParent});return(0,L.jsx)(aB,{title:`Connections`,description:`Active MQTT + WebSocket sessions — chips solo / Ctrl-toggle.`,expandDescription:`Active MQTT + WebSocket sessions.`,exportSlug:`connections`,canExport:d,renderChart:p,getCsvData:f,children:(0,L.jsx)(oB,{isLoading:a,isError:o,error:s,isEmpty:l,emptyMessage:`No active sessions in the selected time range.`,onRetry:()=>{r.refetch(),i.refetch()},children:p()})})}var OV=[`mqtt-traffic-sent`,`mqtt-traffic-received`,`bytes-sent`,`bytes-received`,`tls-reused`,`connection`];function kV(){return(0,L.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:[(0,L.jsx)(EV,{}),OV.map(e=>(0,L.jsx)(cB,{metric:e},e))]})}var AV=[{id:`health`,label:`Health`},{id:`traffic`,label:`Traffic`},{id:`requests`,label:`Requests`},{id:`database`,label:`Database`},{id:`replication`,label:`Replication`},{id:`storage`,label:`Storage`},{id:`overview`,label:`Overview`}];function jV({instanceParams:e,isLocalStudio:t}){return(0,L.jsx)(NV,{instanceParams:e,isLocalStudio:t,capability:Rr(e)})}function MV({capability:e}){return(0,L.jsxs)(`div`,{role:`alert`,className:`px-4 py-8 text-sm text-muted-foreground`,children:[e.isAuthError?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Analytics request was not authorized.`}),(0,L.jsxs)(`p`,{children:[`The Harper instance rejected `,(0,L.jsx)(`code`,{children:`get_analytics`}),` `,`as unauthorized. Your credentials for this instance may have expired — re-enter them, then retry.`]})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Analytics unavailable on this instance.`}),(0,L.jsxs)(`p`,{children:[`The Harper instance returned an error from`,` `,(0,L.jsx)(`code`,{children:`get_analytics`}),`. Check that the instance is reachable and that analytics is enabled, then retry.`]})]}),(0,L.jsx)(a,{type:`button`,variant:`defaultOutline`,size:`sm`,className:`mt-3`,onClick:e.retry,disabled:e.isFetching,children:e.isFetching?`Retrying…`:`Retry`})]})}function NV({instanceParams:e,isLocalStudio:t,capability:n}){let r=m(),{tab:i,range:a,refresh:o}=Oe(u({strict:!1})),[c,l]=(0,I.useState)(0),d=s(),f=(0,I.useRef)(Date.now()),p=(0,I.useCallback)(()=>{f.current=Date.now(),l(e=>e+1)},[]);(0,I.useEffect)(()=>{if(o<=0)return;let t=()=>!document.hidden&&d.isFetching({queryKey:[`get_analytics_raw`,e.entityId]})===0,n=setInterval(()=>{t()&&p()},o),r=()=>{t()&&Date.now()-f.current>=o&&p()};return document.addEventListener(`visibilitychange`,r),()=>{clearInterval(n),document.removeEventListener(`visibilitychange`,r)}},[o,p,d,c,e.entityId]);let h=(0,I.useCallback)(e=>{r({to:`.`,search:{tab:i,range:e,refresh:o}})},[r,i,o]),g=(0,I.useCallback)(e=>{r({to:`.`,search:{tab:e,range:a,refresh:o}})},[r,a,o]),_=(0,I.useCallback)(e=>{r({to:`.`,search:{tab:i,range:a,refresh:e}})},[r,i,a]),v=(0,I.useRef)(!1);(0,I.useEffect)(()=>{if(!n.error){v.current=!1;return}v.current||(v.current=!0,i!==`overview`&&r({to:`.`,search:{tab:`overview`,range:a,refresh:o},replace:!0}))},[n.error,i,r,a,o]);let{timeRange:y,bucketMs:b}=(0,I.useMemo)(()=>{let e=we(a),t=Date.now();return{timeRange:{startTime:t-e.durationMs,endTime:t},bucketMs:e.bucketMs}},[a,c]),x=(0,I.useMemo)(()=>({timeRange:y,bucketMs:b,instanceParams:e,syncId:`${e.entityId}:${i}`}),[y,b,e,i]),S=i===`overview`?null:(0,L.jsx)(Mr,{presetId:a,onPresetChange:h,refreshMs:o,onRefreshChange:_,onManualRefresh:p}),C=e=>n.isLoading?(0,L.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:`px-4 py-8 text-sm text-muted-foreground`,children:`Checking analytics availability…`}):n.error?(0,L.jsx)(MV,{capability:n}):(0,L.jsx)(PV,{picker:S,children:e});return(0,L.jsx)(Tr,{value:x,children:(0,L.jsxs)(me,{value:i,onValueChange:e=>g(e),className:`px-4 py-2`,children:[i!==`overview`&&!n.isLoading&&!n.error&&(0,L.jsx)(Cr,{}),(0,L.jsx)(`div`,{className:`md:hidden mb-3`,children:(0,L.jsxs)(oe,{value:i,onValueChange:e=>g(e),children:[(0,L.jsx)(re,{className:`w-full`,"aria-label":`Select status tab`,children:(0,L.jsx)(ae,{})}),(0,L.jsx)(ne,{children:AV.map(e=>(0,L.jsx)(ee,{value:e.id,children:e.label},e.id))})]})}),(0,L.jsx)(pe,{className:`hidden md:inline-flex max-w-full overflow-x-auto mb-4`,children:AV.map(e=>(0,L.jsx)(de,{value:e.id,children:e.label},e.id))}),(0,L.jsx)(fe,{value:`health`,children:C((0,L.jsx)(MB,{}))}),(0,L.jsx)(fe,{value:`traffic`,children:C((0,L.jsx)(kV,{}))}),(0,L.jsx)(fe,{value:`requests`,children:C((0,L.jsx)($B,{}))}),(0,L.jsx)(fe,{value:`database`,children:C((0,L.jsx)(dB,{}))}),(0,L.jsx)(fe,{value:`replication`,children:C((0,L.jsx)(ZB,{}))}),(0,L.jsx)(fe,{value:`storage`,children:C((0,L.jsx)(CV,{}))}),(0,L.jsx)(fe,{value:`overview`,children:(0,L.jsx)(WB,{instanceParams:e,isLocalStudio:t})})]})})}function PV({picker:e,children:t}){return(0,L.jsxs)(L.Fragment,{children:[e&&(0,L.jsx)(`div`,{className:`sticky top-0 z-10 -mx-4 px-4 py-2 mb-3 bg-background border-b border-border shadow-sm flex items-center justify-end gap-2`,children:e}),t]})}function FV(){return(0,L.jsx)(jV,{instanceParams:ge(),isLocalStudio:!0})}export{FV as StatusIndex};
|
|
62
|
-
//# sourceMappingURL=status-
|
|
62
|
+
//# sourceMappingURL=status-BuQoCc7l.js.map
|