@harperfast/harper 5.1.23 → 5.1.24

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.
Files changed (43) hide show
  1. package/dist/resources/Table.js +6 -2
  2. package/dist/resources/Table.js.map +1 -1
  3. package/npm-shrinkwrap.json +38 -38
  4. package/package.json +2 -2
  5. package/resources/Table.ts +5 -1
  6. package/studio/web/assets/{Chat-CHWxBSOY.js → Chat-WK3X972M.js} +5 -5
  7. package/studio/web/assets/{Chat-CHWxBSOY.js.map → Chat-WK3X972M.js.map} +1 -1
  8. package/studio/web/assets/{FloatingChat-DVCy2mvk.js → FloatingChat-Bqjk6Bf4.js} +5 -5
  9. package/studio/web/assets/{FloatingChat-DVCy2mvk.js.map → FloatingChat-Bqjk6Bf4.js.map} +1 -1
  10. package/studio/web/assets/{apiToken-QLwwxtxT.js → apiToken-S_hqpnVV.js} +2 -2
  11. package/studio/web/assets/{apiToken-QLwwxtxT.js.map → apiToken-S_hqpnVV.js.map} +1 -1
  12. package/studio/web/assets/{applications-EmZVBabu.js → applications-C6zKD9Rb.js} +12 -12
  13. package/studio/web/assets/applications-C6zKD9Rb.js.map +1 -0
  14. package/studio/web/assets/{index-CndJ7kZK.js → index-BbsxXAVZ.js} +31 -31
  15. package/studio/web/assets/index-BbsxXAVZ.js.map +1 -0
  16. package/studio/web/assets/index.lazy-BPnXo1Wj.js +14 -0
  17. package/studio/web/assets/{index.lazy-CGmTtyPL.js.map → index.lazy-BPnXo1Wj.js.map} +1 -1
  18. package/studio/web/assets/jsonMode-X_blmtuO.js +2 -0
  19. package/studio/web/assets/jsonMode-X_blmtuO.js.map +1 -0
  20. package/studio/web/assets/{profile-Dgjkaqud.js → profile-CY1FwgRs.js} +2 -2
  21. package/studio/web/assets/{profile-Dgjkaqud.js.map → profile-CY1FwgRs.js.map} +1 -1
  22. package/studio/web/assets/{setComponentFile-BMFCm_Yi.js → setComponentFile-ZBQ4KXnC.js} +2 -2
  23. package/studio/web/assets/{setComponentFile-BMFCm_Yi.js.map → setComponentFile-ZBQ4KXnC.js.map} +1 -1
  24. package/studio/web/assets/setup-B_NOw8rV.js +3 -0
  25. package/studio/web/assets/setup-B_NOw8rV.js.map +1 -0
  26. package/studio/web/assets/{status-CtgqjZ6q.js → status-D7A8OktU.js} +4 -4
  27. package/studio/web/assets/{status-CtgqjZ6q.js.map → status-D7A8OktU.js.map} +1 -1
  28. package/studio/web/assets/{swagger-ui-react-BermOHTv.js → swagger-ui-react-iD3vGtu-.js} +2 -2
  29. package/studio/web/assets/{swagger-ui-react-BermOHTv.js.map → swagger-ui-react-iD3vGtu-.js.map} +1 -1
  30. package/studio/web/assets/tokenization-uOBOyHAS.js +8 -0
  31. package/studio/web/assets/tokenization-uOBOyHAS.js.map +1 -0
  32. package/studio/web/assets/{tsMode-CWC0nCN1.js → tsMode-CevZSdk5.js} +2 -2
  33. package/studio/web/assets/{tsMode-CWC0nCN1.js.map → tsMode-CevZSdk5.js.map} +1 -1
  34. package/studio/web/assets/{useEntityRestURL-DaMIzJ2I.js → useEntityRestURL-CswKSb0j.js} +2 -2
  35. package/studio/web/assets/{useEntityRestURL-DaMIzJ2I.js.map → useEntityRestURL-CswKSb0j.js.map} +1 -1
  36. package/studio/web/index.html +2 -1
  37. package/studio/web/assets/applications-EmZVBabu.js.map +0 -1
  38. package/studio/web/assets/index-CndJ7kZK.js.map +0 -1
  39. package/studio/web/assets/index.lazy-CGmTtyPL.js +0 -14
  40. package/studio/web/assets/jsonMode-DD1NLQKv.js +0 -8
  41. package/studio/web/assets/jsonMode-DD1NLQKv.js.map +0 -1
  42. package/studio/web/assets/setup-C2E-6wan.js +0 -3
  43. package/studio/web/assets/setup-C2E-6wan.js.map +0 -1
@@ -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-CArycxS5.js";import{n as i,t as a}from"./button-Bh1J5cEt.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-hI9zAWEc.js";import{a as h}from"./vendor-datadog-DBn-aOxh.js";import{n as g,r as _}from"./vendor-react-B36dp27u.js";import{a as v,i as y,n as b,r as x,t as S,zt as C}from"./vendor-ui-D-BiU2GW.js";import{a as w,i as T,n as E,r as D,t as O}from"./card-BNyq5IF8.js";import{t as k}from"./createLucideIcon-B49W6uF4.js";import{_ as A,a as j,b as M,c as N,d as ee,g as te,l as ne,m as re,n as ie,p as ae,r as oe,s as se,t as ce,u as le,v as ue,y as de}from"./humanFileSize-DIJdoExS.js";import{i as fe,n as pe,t as me}from"./x-Bru-nCti.js";import{a as he,i as ge,n as _e,r as ve,t as ye}from"./tabs-DOFA4930.js";import{t as be}from"./errorText-NpBmvk9I.js";import{Pt as xe,R as Se,Rt as Ce,Tt as we,a as Te,i as Ee,n as De,pn as Oe,r as ke,un as Ae}from"./index-CndJ7kZK.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{B as St,F as Ct,G as wt,H as Tt,I as Et,J as Dt,L as Ot,R as kt,U as At,V as jt,Y as Mt,a as Nt,c as Pt,i as Ft,l as It,q as Lt,r as Rt,s as zt,t as Bt,z as Vt}from"./isArrayLikeObject-BuP4GVJp.js";import{n as Ht,r as Ut,t as Wt}from"./line-D7sRByN6.js";import{a as Gt,c as Kt,d as qt,i as F,l as Jt,r as Yt,s as Xt,t as Zt,u as Qt}from"./react-redux-DGXfzMhm.js";import{r as $t,t as en}from"./getAnalytics-Bmxt-5P2.js";var tn=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`}]]),nn=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`}]]),rn=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`}]]),an=k(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]);function on(e=je){if(e===je)return sn;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 sn(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:+(e>t))}function cn(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?sn:on(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));cn(e,t,u,d,i)}let a=e[t],o=n,s=r;for(ln(e,n,t),i(e[r],a)>0&&ln(e,n,r);o<s;){for(ln(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[n],a)===0?ln(e,n,s):(++s,ln(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function ln(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function un(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(cn(e,a).subarray(0,a+1));return o+(Ye(e.subarray(a+1))-o)*(i-a)}}function dn(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 fn(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 pn(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 pn(e).unknown(t)},e=arguments.length?Array.from(e,Ne):[0,1],ze(n)}function mn(e){return Math.log(e)}function hn(e){return Math.exp(e)}function gn(e){return-Math.log(-e)}function _n(e){return-Math.exp(-e)}function vn(e){return isFinite(e)?+(`1e`+e):e<0?0:e}function yn(e){return e===10?vn:e===Math.E?Math.exp:t=>e**+t}function bn(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 xn(e){return(t,n)=>-e(-t,n)}function Sn(e){let t=e(mn,hn),n=t.domain,r=10,i,a;function o(){return i=bn(r),a=yn(r),n()[0]<0?(i=xn(i),a=xn(a),e(gn,_n)):e(mn,hn),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 Cn(){let e=Sn(Ue()).domain([1,10]);return e.copy=()=>Me(e,Cn()).base(e.base()),mt.apply(e,arguments),e}function wn(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Tn(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function En(e){var t=1,n=e(wn(t),Tn(t));return n.constant=function(n){return arguments.length?e(wn(t=+n),Tn(t)):t},ze(n)}function Dn(){var e=En(Ue());return e.copy=function(){return Me(e,Dn()).constant(e.constant())},mt.apply(e,arguments)}function On(e){return function(t){return t<0?-((-t)**+e):t**+e}}function kn(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function An(e){return e<0?-e*e:e*e}function jn(e){var t=e(Be,Be),n=1;function r(){return n===1?e(Be,Be):n===.5?e(kn,An):e(On(n),On(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},ze(t)}function Mn(){var e=jn(Ue());return e.copy=function(){return Me(e,Mn()).exponent(e.exponent())},mt.apply(e,arguments),e}function Nn(){return Mn.apply(null,arguments).exponent(.5)}function Pn(e){return Math.sign(e)*e*e}function Fn(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function In(){var e=Ie(),t=[0,1],n=!1,r;function i(t){var i=Fn(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(Pn(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(Pn)),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 In(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},mt.apply(i,arguments),ze(i)}function Ln(){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]=dn(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 Ln().domain(e).range(t).unknown(r)},mt.apply(a,arguments)}function Rn(){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 Rn().domain([e,t]).range(i).unknown(a)},mt.apply(ze(o),arguments)}function zn(){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 zn().domain(e).range(t).unknown(n)},mt.apply(i,arguments)}function Bn(){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 Vn(){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 Hn(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Un(){var e=ze(Vn()(Be));return e.copy=function(){return Hn(e,Un())},ht.apply(e,arguments)}function Wn(){var e=Sn(Vn()).domain([1,10]);return e.copy=function(){return Hn(e,Wn()).base(e.base())},ht.apply(e,arguments)}function Gn(){var e=En(Vn());return e.copy=function(){return Hn(e,Gn()).constant(e.constant())},ht.apply(e,arguments)}function Kn(){var e=jn(Vn());return e.copy=function(){return Hn(e,Kn()).exponent(e.exponent())},ht.apply(e,arguments)}function qn(){return Kn.apply(null,arguments).exponent(.5)}function Jn(){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)=>un(e,r/t))},n.copy=function(){return Jn(t).domain(e)},ht.apply(n,arguments)}function Yn(){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=fn(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 Xn(){var e=ze(Yn()(Be));return e.copy=function(){return Hn(e,Xn())},ht.apply(e,arguments)}function Zn(){var e=Sn(Yn()).domain([.1,1,10]);return e.copy=function(){return Hn(e,Zn()).base(e.base())},ht.apply(e,arguments)}function Qn(){var e=En(Yn());return e.copy=function(){return Hn(e,Qn()).constant(e.constant())},ht.apply(e,arguments)}function $n(){var e=jn(Yn());return e.copy=function(){return Hn(e,$n()).exponent(e.exponent())},ht.apply(e,arguments)}function er(){return $n.apply(null,arguments).exponent(.5)}function tr(e,t,n){var r=null,i=P(!0),a=null,o=Mt,s=null,c=dt(l);e=typeof e==`function`?e:e===void 0?Ht:P(+e),t=typeof t==`function`?t:P(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?Ut: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 Wt().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 nr={draw(e,t){let n=vt(t/bt);e.moveTo(n,0),e.arc(0,0,n,0,yt)}},rr={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()}},ir=vt(1/3),ar=ir*2,or={draw(e,t){let n=vt(t/ar),r=n*ir;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},sr={draw(e,t){let n=vt(t),r=-n/2;e.rect(r,r,n,n)}},cr=.8908130915292852,lr=_t(bt/10)/_t(7*bt/10),ur=_t(yt/10)*lr,dr=-gt(yt/10)*lr,fr={draw(e,t){let n=vt(t*cr),r=ur*n,i=dr*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()}},pr=vt(3),mr={draw(e,t){let n=-vt(t/(pr*3));e.moveTo(0,n*2),e.lineTo(-pr*n,-n),e.lineTo(pr*n,-n),e.closePath()}},hr=-.5,gr=vt(3)/2,_r=1/vt(12),vr=(_r/2+1)*3,yr={draw(e,t){let n=vt(t/vr),r=n/2,i=n*_r,a=r,o=n*_r+n,s=-a,c=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,c),e.lineTo(hr*r-gr*i,gr*r+hr*i),e.lineTo(hr*a-gr*o,gr*a+hr*o),e.lineTo(hr*s-gr*c,gr*s+hr*c),e.lineTo(hr*r+gr*i,hr*i-gr*r),e.lineTo(hr*a+gr*o,hr*o-gr*a),e.lineTo(hr*s+gr*c,hr*c-gr*s),e.closePath()}};function br(e,t){let n=null,r=dt(i);e=typeof e==`function`?e:P(e||nr),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 xr(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 Sr(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function Cr(e,t){return e[t]}function wr(e){let t=[];return t.key=e,t}function Tr(){var e=P([]),t=Sr,n=xr,r=Cr;function i(i){var a=Array.from(e.apply(this,arguments),wr),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?Sr:typeof e==`function`?e:P(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(n=e??xr,i):n},i}function Er(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}xr(e,t)}}function Dr(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}xr(e,t)}}function Or(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,xr(e,t)}}function kr(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function Ar(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 jr(e){if(e==null)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(jr).join(`,`);let t=String(e);return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function Mr(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}function Nr(e){if(Array.isArray(e))return e.map(Mr);if(typeof e==`symbol`)return[e];e=jr(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 Pr(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e.includes(`.`)||e.includes(`[`)||e.includes(`]`)}}function Fr(e,t,n){if(e==null)return n;switch(typeof t){case`string`:{if(Pt(t))return n;let r=e[t];return r===void 0?Pr(t)&&!Object.hasOwn(e,t)?Fr(e,Nr(t),n):n:r}case`number`:case`symbol`:{typeof t==`number`&&(t=Mr(t));let r=e[t];return r===void 0?n:r}default:{if(Array.isArray(t))return Ir(e,t,n);if(t=Object.is(t?.valueOf(),-0)?`-0`:String(t),Pt(t))return n;let r=e[t];return r===void 0?n:r}}}function Ir(e,t,n){if(t.length===0)return n;let r=e;for(let e=0;e<t.length;e++){if(r==null||Pt(t[e]))return n;r=r[t[e]]}return r===void 0?n:r}function Lr(e){return function(t){return Fr(t,e)}}function Rr(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}function zr(e,t,n){return typeof n==`function`?Br(e,t,function e(t,r,i,a,o,s){let c=n(t,r,i,a,o,s);return c===void 0?Br(t,r,e,s,!1):!!c},new Map,!0):zr(e,t,()=>void 0)}function Br(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return Vr(e,t,n,r);case`function`:return Object.keys(t).length>0?Br(e,{...t},n,r,i):kr(e,t);default:return Rr(e)&&i?typeof t!=`string`||t===``:kr(e,t)}}function Vr(e,t,n,r){if(t==null)return!0;if(Array.isArray(t))return Ur(e,t,n,r);if(t instanceof Map)return Hr(e,t,n,r);if(t instanceof Set)return Wr(e,t,n,r);let i=Object.keys(t);if(e==null||zt(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(!zt(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 Hr(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 Ur(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 Wr(e,t,n,r){return t.size===0||e instanceof Set&&Ur([...e],[...t],n,r)}function Gr(e,t){return zr(e,t,()=>void 0)}function Kr(e){return Nt(e,void 0,e,new Map,void 0)}function qr(e){return e=Kr(e),t=>Gr(t,e)}var Jr=/^(?:0|[1-9]\d*)$/;function Yr(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 Jr.test(e)}}function Xr(e,t){let n;if(n=Array.isArray(t)?t:typeof t==`string`&&Pr(t)&&e?.[t]==null?Nr(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)||Rt(r))&&Yr(t)&&t<r.length))return!1;r=r[t]}return!0}function Zr(e,t){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=Mr(e);break}return t=Ft(t),function(n){let r=Fr(n,e);return r===void 0?Xr(n,e):t===void 0?r===void 0:Gr(r,t)}}function Qr(e){return e}function $r(e){if(e==null)return Qr;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?Zr(e[0],e[1]):qr(e);case`string`:case`symbol`:case`number`:return Lr(e)}}function ei(e){return typeof e==`symbol`||e instanceof Symbol}function ti(e){return ei(e)?NaN:Number(e)}function ni(e){return e?(e=ti(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function ri(e,t,n){return Rr(n)&&(typeof t==`number`&&It(n)&&Yr(t)&&t<n.length||typeof t==`string`&&t in n)?kr(n[t],e):!1}function ii(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}var ai=(e,t,n)=>{if(e!==t){let r=ii(e),i=ii(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},oi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,si=/^\w*$/;function ci(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||ei(e)?!0:typeof e==`string`&&(si.test(e)||!oi.test(e))||t!=null&&Object.hasOwn(t,e)}function li(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)||ci(e)?e:{key:e,path:Nr(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=ai(e.criteria[r],t.criteria[r],n[r]);if(i!==0)return i}return 0}).map(e=>e.original)}function ui(e,...t){let n=t.length;return n>1&&ri(e,t[0],t[1])?t=[]:n>2&&ri(t[0],t[1],t[2])&&(t=[t[0]]),li(e,Ar(t),[`asc`])}function di(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 fi(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function pi(e,t=Qr){return Bt(e)?di(Array.from(e),fi($r(t),1)):[]}function mi(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function hi(e,t=0,n={}){typeof n!=`object`&&(n={});let{leading:r=!1,trailing:i=!0,maxWait:a}=n,o=[,,];r&&(o[0]=`leading`),i&&(o[1]=`trailing`);let s,c=null,l=mi(function(...t){s=e.apply(this,t),c=null},t,{edges:o}),u=function(...t){return a!=null&&(c===null&&(c=Date.now()),Date.now()-c>=a)?(s=e.apply(this,t),c=Date.now(),l.cancel(),l.schedule(),s):(l.apply(this,t),s)};return u.cancel=l.cancel,u.flush=()=>(l.flush(),s),u}function gi(e,t=0,n={}){let{leading:r=!0,trailing:i=!0}=n;return hi(e,t,{leading:r,maxWait:t,trailing:i})}function _i(e,t,n){n&&typeof n!=`number`&&ri(e,t,n)&&(t=n=void 0),e=ni(e),t===void 0?(t=e,e=0):t=ni(t),n=n===void 0?e<t?1:-1:ni(n);let r=Math.max(Math.ceil((t-e)/(n||1)),0),i=Array(r);for(let t=0;t<r;t++)i[t]=e,e+=n;return i}var I=e(h(),1),L=_(),vi=`studio:analytics:onboarding-dismissed:v2`;function yi(){let[e,t]=(0,I.useState)(null);return(0,I.useEffect)(()=>{try{t(window.localStorage.getItem(vi)===`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(vi,`1`)}catch{}t(!0)},"aria-label":`Dismiss tip`,className:`-mt-1 h-7 w-7 shrink-0`,children:(0,L.jsx)(me,{className:`h-4 w-4`})})]}):null}var bi=(0,I.createContext)(null);function xi({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)(bi.Provider,{value:n,children:t})}function Si(){let e=(0,I.useContext)(bi);if(!e)throw Error(`useAnalyticsContext must be used inside <AnalyticsProvider>`);return e}function Ci(){return(0,I.useContext)(bi)?.syncId}function wi(e){let t=Ci();return t===void 0?{}:{syncId:e?`${t}:expanded`:t,syncMethod:`value`}}var Ti=en;function Ei(e){let t=s(),n=(0,I.useCallback)(t=>Array.isArray(t.queryKey)&&t.queryKey[0]===Ti&&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 Di(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 Oi({presetId:e,onPresetChange:t,refreshMs:n,onRefreshChange:r,onManualRefresh:o}){let{instanceParams:s}=Si(),{isFetching:c,lastFetchedAt:l,now:u}=Ei(s.entityId),d=Di(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)(ie,{value:e,onValueChange:e=>t(e),children:[(0,L.jsx)(se,{className:`w-[180px]`,children:(0,L.jsx)(N,{})}),(0,L.jsx)(oe,{children:Ee.map(e=>(0,L.jsx)(j,{value:e.id,children:e.label},e.id))})]}),(0,L.jsxs)(ie,{value:String(n),onValueChange:e=>r(Number(e)),children:[(0,L.jsx)(se,{className:`w-[100px]`,children:(0,L.jsx)(N,{})}),(0,L.jsx)(oe,{children:ke.map(e=>(0,L.jsx)(j,{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)(pe,{className:i(`h-4 w-4`,c&&`animate-spin`)})})]})}var ki=[`utilization`,`cpu-usage`,`memory`,`main-thread-utilization`],Ai=30*6e4;function ji(e){return e?.response?.status??e?.status}function Mi(e){let t=ji(e);return t===401||t===403}function Ni(e){let t=ji(e);return typeof t==`number`&&t>=400&&t<500&&!Mi(e)}function Pi(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 ki)try{return await e.instanceClient.post(`/`,{operation:`get_analytics`,metric:i,start_time:n,end_time:t}),!0}catch(e){if(r=e,!Ni(e))throw e}throw r instanceof Error?r:Error(`Analytics probe failed for all metrics`)},retry:(e,t)=>!Mi(t)&&e<2,retryDelay:e=>Math.min(1e3*2**e,8e3),staleTime:Ai,gcTime:Ai});return{supported:t.isSuccess===!0,error:t.error,isAuthError:t.error!=null&&Mi(t.error),isLoading:t.isLoading,isFetching:t.isFetching,retry:()=>{t.refetch()}}}var Fi=new Set([`time`,`node`]),Ii=Object.freeze([]);function Li({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,requiredFields:a,bucketMs:o}){let s=l({...$t({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??Ii,{fieldKeys:u,missingFields:d}=(0,I.useMemo)(()=>{let e=new Set;for(let t of c)for(let n of Object.keys(t))Fi.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 Ri=[`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 zi(e,t){return Ri[[...t].sort().indexOf(e)%Ri.length]}function Bi(e){let t=e.indexOf(`.`);return t===-1?e:e.slice(0,t)}function Vi(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 Hi({nodeIds:e,isActive:t,onClickNode:n,disabled:r}){let i=Vi(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=zi(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 Ui(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 Wi(e){let{isActive:t,handleClick:n,activeSet:r}=Ui(e);return{isActive:t,handleLegendClick:n,activeNodes:r}}function Gi(e,t){let{isActive:n,handleLegendClick:r}=Wi(t);return{data:(0,I.useMemo)(()=>({...e,series:e.series.map(e=>e.node===void 0?e:{...e,label:Bi(e.node),color:zi(e.node,t)}).filter(e=>e.node===void 0||n(e.node))}),[e,t,n]),isActive:n,handleLegendClick:r}}function Ki(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 qi=`var(--color-text-secondary)`;function Ji({dimensionValues:e,selected:t,onSelect:n,otherKey:r,colorFor:i,ariaLabel:a=`Dimension selector`}){let{getRadioProps:o}=Ki(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):qi;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:qi,opacity:.4},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:qi}}),(0,L.jsx)(`span`,{children:r})]})]})}var Yi=`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 Xi(e){return typeof e==`string`&&Yi.includes(e)}var Zi=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 Qi(e){return typeof e==`string`&&Zi.has(e)}function $i(e){return typeof e==`string`&&e.startsWith(`data-`)}function ea(e){if(typeof e!=`object`||!e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(Qi(n)||$i(n))&&(t[n]=e[n]);return t}function ta(e){if(e==null)return null;if((0,I.isValidElement)(e)&&typeof e.props==`object`&&e.props!==null){var t=e.props;return ea(t)}return typeof e==`object`&&!Array.isArray(e)?ea(e):null}function na(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(Qi(n)||$i(n)||Xi(n))&&(t[n]=e[n]);return t}function ra(e){return e==null?null:(0,I.isValidElement)(e)?na(e.props):typeof e==`object`&&!Array.isArray(e)?na(e):null}var ia=[`children`,`width`,`height`,`viewBox`,`className`,`style`,`title`,`desc`];function aa(){return aa=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},aa.apply(null,arguments)}function oa(e,t){if(e==null)return{};var n,r,i=sa(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 sa(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 ca=(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=oa(e,ia),f=o||{width:i,height:a,x:0,y:0},p=r(`recharts-surface`,s);return I.createElement(`svg`,aa({},na(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)}),la=[`children`,`className`];function ua(){return ua=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},ua.apply(null,arguments)}function da(e,t){if(e==null)return{};var n,r,i=fa(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 fa(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 pa=I.forwardRef((e,t)=>{var n=e.children,i=e.className,a=da(e,la),o=r(`recharts-layer`,i);return I.createElement(`g`,ua({className:o},na(a),{ref:t}),n)}),ma=(0,I.createContext)(null),ha=()=>(0,I.useContext)(ma),ga=4;function _a(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:ga),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function va(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+_a(i)+n},``)}var ya=e=>e===0?0:e>0?1:-1,ba=e=>typeof e==`number`&&e!=+e,xa=e=>typeof e==`string`&&e.length>1&&e.indexOf(`%`)===e.length-1,R=e=>(typeof e==`number`||e instanceof Number)&&!ba(e),Sa=e=>R(e)||typeof e==`string`,Ca=0,wa=e=>{var t=++Ca;return`${e||``}${t}`},Ta=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(xa(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return ba(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},Ea=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)?_a(e+n*(t-e)):t}function Da(e,t,n){if(!(!e||!e.length))return e.find(e=>e&&(typeof t==`function`?t(e):Fr(e,t))===n)}var B=e=>e==null,Oa=e=>B(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function ka(e){return e!=null}function Aa(){}var ja=[`type`,`size`,`sizeType`];function Ma(){return Ma=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},Ma.apply(null,arguments)}function Na(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 Pa(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Na(Object(n),!0).forEach(function(t){Fa(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Na(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Fa(e,t,n){return(t=Ia(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ia(e){var t=La(e,`string`);return typeof t==`symbol`?t:t+``}function La(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 Ra(e,t){if(e==null)return{};var n,r,i=za(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 za(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 Ba={symbolCircle:nr,symbolCross:rr,symbolDiamond:or,symbolSquare:sr,symbolStar:fr,symbolTriangle:mr,symbolWye:yr},Va=Math.PI/180,Ha=e=>Ba[`symbol${Oa(e)}`]||nr,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*Va;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}},Wa=(e,t)=>{Ba[`symbol${Oa(e)}`]=t},Ga=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=Pa(Pa({},Ra(e,ja)),{},{type:n,size:a,sizeType:s}),l=`circle`;typeof n==`string`&&(l=n);var u=()=>{var e=Ha(l),t=br().type(e).size(Ua(a,s,l))();if(t!==null)return t},d=c.className,f=c.cx,p=c.cy,m=na(c);return R(f)&&R(p)&&R(a)?I.createElement(`path`,Ma({},m,{className:r(`recharts-symbols`,d),transform:`translate(${f}, ${p})`,d:u()})):null};Ga.registerSymbol=Wa;var Ka=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,qa=(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=>{Xi(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},Ja=(e,t,n)=>r=>(e(t,n,r),null),Ya=(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];Xi(i)&&typeof a==`function`&&(r||={},r[i]=Ja(a,t,n))}),r};function Xa(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 Za(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Xa(Object(n),!0).forEach(function(t){Qa(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xa(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Qa(e,t,n){return(t=$a(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $a(e){var t=eo(e,`string`);return typeof t==`symbol`?t:t+``}function eo(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 to(e,t){var n=Za({},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 no(){return no=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},no.apply(null,arguments)}function ro(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 io(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ro(Object(n),!0).forEach(function(t){ao(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ro(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ao(e,t,n){return(t=oo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oo(e){var t=so(e,`string`);return typeof t==`symbol`?t:t+``}function so(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 co=32,lo={align:`center`,iconSize:14,inactiveColor:`#ccc`,layout:`horizontal`,verticalAlign:`middle`,labelStyle:{}};function uo(e){if(typeof e==`object`&&e&&`strokeDasharray`in e)return String(e.strokeDasharray)}function fo(e){var t=e.data,n=e.iconType,r=e.inactiveColor,i=co/2,a=co/6,o=co/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:uo(t.payload),x1:0,y1:i,x2:co,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-CArycxS5.js";import{n as i,t as a}from"./button-Bh1J5cEt.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-hI9zAWEc.js";import{a as h}from"./vendor-datadog-DBn-aOxh.js";import{n as g,r as _}from"./vendor-react-B36dp27u.js";import{a as v,i as y,n as b,r as x,t as S,zt as C}from"./vendor-ui-D-BiU2GW.js";import{a as w,i as T,n as E,r as D,t as O}from"./card-BNyq5IF8.js";import{t as k}from"./createLucideIcon-B49W6uF4.js";import{_ as A,a as j,b as M,c as N,d as ee,g as te,l as ne,m as re,n as ie,p as ae,r as oe,s as se,t as ce,u as le,v as ue,y as de}from"./humanFileSize-DIJdoExS.js";import{i as fe,n as pe,t as me}from"./x-Bru-nCti.js";import{a as he,i as ge,n as _e,r as ve,t as ye}from"./tabs-DOFA4930.js";import{t as be}from"./errorText-NpBmvk9I.js";import{Et as xe,Ft as Se,I as Ce,a as we,dn as Te,i as Ee,mn as De,n as Oe,r as ke,zt as Ae}from"./index-BbsxXAVZ.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{B as St,F as Ct,G as wt,H as Tt,I as Et,J as Dt,L as Ot,R as kt,U as At,V as jt,Y as Mt,a as Nt,c as Pt,i as Ft,l as It,q as Lt,r as Rt,s as zt,t as Bt,z as Vt}from"./isArrayLikeObject-BuP4GVJp.js";import{n as Ht,r as Ut,t as Wt}from"./line-D7sRByN6.js";import{a as Gt,c as Kt,d as qt,i as F,l as Jt,r as Yt,s as Xt,t as Zt,u as Qt}from"./react-redux-DGXfzMhm.js";import{r as $t,t as en}from"./getAnalytics-Bmxt-5P2.js";var tn=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`}]]),nn=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`}]]),rn=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`}]]),an=k(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]);function on(e=je){if(e===je)return sn;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 sn(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:+(e>t))}function cn(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?sn:on(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));cn(e,t,u,d,i)}let a=e[t],o=n,s=r;for(ln(e,n,t),i(e[r],a)>0&&ln(e,n,r);o<s;){for(ln(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[n],a)===0?ln(e,n,s):(++s,ln(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function ln(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function un(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(cn(e,a).subarray(0,a+1));return o+(Ye(e.subarray(a+1))-o)*(i-a)}}function dn(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 fn(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 pn(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 pn(e).unknown(t)},e=arguments.length?Array.from(e,Ne):[0,1],ze(n)}function mn(e){return Math.log(e)}function hn(e){return Math.exp(e)}function gn(e){return-Math.log(-e)}function _n(e){return-Math.exp(-e)}function vn(e){return isFinite(e)?+(`1e`+e):e<0?0:e}function yn(e){return e===10?vn:e===Math.E?Math.exp:t=>e**+t}function bn(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 xn(e){return(t,n)=>-e(-t,n)}function Sn(e){let t=e(mn,hn),n=t.domain,r=10,i,a;function o(){return i=bn(r),a=yn(r),n()[0]<0?(i=xn(i),a=xn(a),e(gn,_n)):e(mn,hn),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 Cn(){let e=Sn(Ue()).domain([1,10]);return e.copy=()=>Me(e,Cn()).base(e.base()),mt.apply(e,arguments),e}function wn(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Tn(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function En(e){var t=1,n=e(wn(t),Tn(t));return n.constant=function(n){return arguments.length?e(wn(t=+n),Tn(t)):t},ze(n)}function Dn(){var e=En(Ue());return e.copy=function(){return Me(e,Dn()).constant(e.constant())},mt.apply(e,arguments)}function On(e){return function(t){return t<0?-((-t)**+e):t**+e}}function kn(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function An(e){return e<0?-e*e:e*e}function jn(e){var t=e(Be,Be),n=1;function r(){return n===1?e(Be,Be):n===.5?e(kn,An):e(On(n),On(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},ze(t)}function Mn(){var e=jn(Ue());return e.copy=function(){return Me(e,Mn()).exponent(e.exponent())},mt.apply(e,arguments),e}function Nn(){return Mn.apply(null,arguments).exponent(.5)}function Pn(e){return Math.sign(e)*e*e}function Fn(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function In(){var e=Ie(),t=[0,1],n=!1,r;function i(t){var i=Fn(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(Pn(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(Pn)),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 In(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},mt.apply(i,arguments),ze(i)}function Ln(){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]=dn(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 Ln().domain(e).range(t).unknown(r)},mt.apply(a,arguments)}function Rn(){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 Rn().domain([e,t]).range(i).unknown(a)},mt.apply(ze(o),arguments)}function zn(){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 zn().domain(e).range(t).unknown(n)},mt.apply(i,arguments)}function Bn(){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 Vn(){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 Hn(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Un(){var e=ze(Vn()(Be));return e.copy=function(){return Hn(e,Un())},ht.apply(e,arguments)}function Wn(){var e=Sn(Vn()).domain([1,10]);return e.copy=function(){return Hn(e,Wn()).base(e.base())},ht.apply(e,arguments)}function Gn(){var e=En(Vn());return e.copy=function(){return Hn(e,Gn()).constant(e.constant())},ht.apply(e,arguments)}function Kn(){var e=jn(Vn());return e.copy=function(){return Hn(e,Kn()).exponent(e.exponent())},ht.apply(e,arguments)}function qn(){return Kn.apply(null,arguments).exponent(.5)}function Jn(){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)=>un(e,r/t))},n.copy=function(){return Jn(t).domain(e)},ht.apply(n,arguments)}function Yn(){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=fn(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 Xn(){var e=ze(Yn()(Be));return e.copy=function(){return Hn(e,Xn())},ht.apply(e,arguments)}function Zn(){var e=Sn(Yn()).domain([.1,1,10]);return e.copy=function(){return Hn(e,Zn()).base(e.base())},ht.apply(e,arguments)}function Qn(){var e=En(Yn());return e.copy=function(){return Hn(e,Qn()).constant(e.constant())},ht.apply(e,arguments)}function $n(){var e=jn(Yn());return e.copy=function(){return Hn(e,$n()).exponent(e.exponent())},ht.apply(e,arguments)}function er(){return $n.apply(null,arguments).exponent(.5)}function tr(e,t,n){var r=null,i=P(!0),a=null,o=Mt,s=null,c=dt(l);e=typeof e==`function`?e:e===void 0?Ht:P(+e),t=typeof t==`function`?t:P(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?Ut: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 Wt().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 nr={draw(e,t){let n=vt(t/bt);e.moveTo(n,0),e.arc(0,0,n,0,yt)}},rr={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()}},ir=vt(1/3),ar=ir*2,or={draw(e,t){let n=vt(t/ar),r=n*ir;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},sr={draw(e,t){let n=vt(t),r=-n/2;e.rect(r,r,n,n)}},cr=.8908130915292852,lr=_t(bt/10)/_t(7*bt/10),ur=_t(yt/10)*lr,dr=-gt(yt/10)*lr,fr={draw(e,t){let n=vt(t*cr),r=ur*n,i=dr*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()}},pr=vt(3),mr={draw(e,t){let n=-vt(t/(pr*3));e.moveTo(0,n*2),e.lineTo(-pr*n,-n),e.lineTo(pr*n,-n),e.closePath()}},hr=-.5,gr=vt(3)/2,_r=1/vt(12),vr=(_r/2+1)*3,yr={draw(e,t){let n=vt(t/vr),r=n/2,i=n*_r,a=r,o=n*_r+n,s=-a,c=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,c),e.lineTo(hr*r-gr*i,gr*r+hr*i),e.lineTo(hr*a-gr*o,gr*a+hr*o),e.lineTo(hr*s-gr*c,gr*s+hr*c),e.lineTo(hr*r+gr*i,hr*i-gr*r),e.lineTo(hr*a+gr*o,hr*o-gr*a),e.lineTo(hr*s+gr*c,hr*c-gr*s),e.closePath()}};function br(e,t){let n=null,r=dt(i);e=typeof e==`function`?e:P(e||nr),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 xr(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 Sr(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function Cr(e,t){return e[t]}function wr(e){let t=[];return t.key=e,t}function Tr(){var e=P([]),t=Sr,n=xr,r=Cr;function i(i){var a=Array.from(e.apply(this,arguments),wr),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?Sr:typeof e==`function`?e:P(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(n=e??xr,i):n},i}function Er(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}xr(e,t)}}function Dr(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}xr(e,t)}}function Or(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,xr(e,t)}}function kr(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function Ar(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 jr(e){if(e==null)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(jr).join(`,`);let t=String(e);return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function Mr(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}function Nr(e){if(Array.isArray(e))return e.map(Mr);if(typeof e==`symbol`)return[e];e=jr(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 Pr(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e.includes(`.`)||e.includes(`[`)||e.includes(`]`)}}function Fr(e,t,n){if(e==null)return n;switch(typeof t){case`string`:{if(Pt(t))return n;let r=e[t];return r===void 0?Pr(t)&&!Object.hasOwn(e,t)?Fr(e,Nr(t),n):n:r}case`number`:case`symbol`:{typeof t==`number`&&(t=Mr(t));let r=e[t];return r===void 0?n:r}default:{if(Array.isArray(t))return Ir(e,t,n);if(t=Object.is(t?.valueOf(),-0)?`-0`:String(t),Pt(t))return n;let r=e[t];return r===void 0?n:r}}}function Ir(e,t,n){if(t.length===0)return n;let r=e;for(let e=0;e<t.length;e++){if(r==null||Pt(t[e]))return n;r=r[t[e]]}return r===void 0?n:r}function Lr(e){return function(t){return Fr(t,e)}}function Rr(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}function zr(e,t,n){return typeof n==`function`?Br(e,t,function e(t,r,i,a,o,s){let c=n(t,r,i,a,o,s);return c===void 0?Br(t,r,e,s,!1):!!c},new Map,!0):zr(e,t,()=>void 0)}function Br(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return Vr(e,t,n,r);case`function`:return Object.keys(t).length>0?Br(e,{...t},n,r,i):kr(e,t);default:return Rr(e)&&i?typeof t!=`string`||t===``:kr(e,t)}}function Vr(e,t,n,r){if(t==null)return!0;if(Array.isArray(t))return Ur(e,t,n,r);if(t instanceof Map)return Hr(e,t,n,r);if(t instanceof Set)return Wr(e,t,n,r);let i=Object.keys(t);if(e==null||zt(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(!zt(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 Hr(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 Ur(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 Wr(e,t,n,r){return t.size===0||e instanceof Set&&Ur([...e],[...t],n,r)}function Gr(e,t){return zr(e,t,()=>void 0)}function Kr(e){return Nt(e,void 0,e,new Map,void 0)}function qr(e){return e=Kr(e),t=>Gr(t,e)}var Jr=/^(?:0|[1-9]\d*)$/;function Yr(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 Jr.test(e)}}function Xr(e,t){let n;if(n=Array.isArray(t)?t:typeof t==`string`&&Pr(t)&&e?.[t]==null?Nr(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)||Rt(r))&&Yr(t)&&t<r.length))return!1;r=r[t]}return!0}function Zr(e,t){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=Mr(e);break}return t=Ft(t),function(n){let r=Fr(n,e);return r===void 0?Xr(n,e):t===void 0?r===void 0:Gr(r,t)}}function Qr(e){return e}function $r(e){if(e==null)return Qr;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?Zr(e[0],e[1]):qr(e);case`string`:case`symbol`:case`number`:return Lr(e)}}function ei(e){return typeof e==`symbol`||e instanceof Symbol}function ti(e){return ei(e)?NaN:Number(e)}function ni(e){return e?(e=ti(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function ri(e,t,n){return Rr(n)&&(typeof t==`number`&&It(n)&&Yr(t)&&t<n.length||typeof t==`string`&&t in n)?kr(n[t],e):!1}function ii(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}var ai=(e,t,n)=>{if(e!==t){let r=ii(e),i=ii(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},oi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,si=/^\w*$/;function ci(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||ei(e)?!0:typeof e==`string`&&(si.test(e)||!oi.test(e))||t!=null&&Object.hasOwn(t,e)}function li(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)||ci(e)?e:{key:e,path:Nr(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=ai(e.criteria[r],t.criteria[r],n[r]);if(i!==0)return i}return 0}).map(e=>e.original)}function ui(e,...t){let n=t.length;return n>1&&ri(e,t[0],t[1])?t=[]:n>2&&ri(t[0],t[1],t[2])&&(t=[t[0]]),li(e,Ar(t),[`asc`])}function di(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 fi(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function pi(e,t=Qr){return Bt(e)?di(Array.from(e),fi($r(t),1)):[]}function mi(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function hi(e,t=0,n={}){typeof n!=`object`&&(n={});let{leading:r=!1,trailing:i=!0,maxWait:a}=n,o=[,,];r&&(o[0]=`leading`),i&&(o[1]=`trailing`);let s,c=null,l=mi(function(...t){s=e.apply(this,t),c=null},t,{edges:o}),u=function(...t){return a!=null&&(c===null&&(c=Date.now()),Date.now()-c>=a)?(s=e.apply(this,t),c=Date.now(),l.cancel(),l.schedule(),s):(l.apply(this,t),s)};return u.cancel=l.cancel,u.flush=()=>(l.flush(),s),u}function gi(e,t=0,n={}){let{leading:r=!0,trailing:i=!0}=n;return hi(e,t,{leading:r,maxWait:t,trailing:i})}function _i(e,t,n){n&&typeof n!=`number`&&ri(e,t,n)&&(t=n=void 0),e=ni(e),t===void 0?(t=e,e=0):t=ni(t),n=n===void 0?e<t?1:-1:ni(n);let r=Math.max(Math.ceil((t-e)/(n||1)),0),i=Array(r);for(let t=0;t<r;t++)i[t]=e,e+=n;return i}var I=e(h(),1),L=_(),vi=`studio:analytics:onboarding-dismissed:v2`;function yi(){let[e,t]=(0,I.useState)(null);return(0,I.useEffect)(()=>{try{t(window.localStorage.getItem(vi)===`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(vi,`1`)}catch{}t(!0)},"aria-label":`Dismiss tip`,className:`-mt-1 h-7 w-7 shrink-0`,children:(0,L.jsx)(me,{className:`h-4 w-4`})})]}):null}var bi=(0,I.createContext)(null);function xi({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)(bi.Provider,{value:n,children:t})}function Si(){let e=(0,I.useContext)(bi);if(!e)throw Error(`useAnalyticsContext must be used inside <AnalyticsProvider>`);return e}function Ci(){return(0,I.useContext)(bi)?.syncId}function wi(e){let t=Ci();return t===void 0?{}:{syncId:e?`${t}:expanded`:t,syncMethod:`value`}}var Ti=en;function Ei(e){let t=s(),n=(0,I.useCallback)(t=>Array.isArray(t.queryKey)&&t.queryKey[0]===Ti&&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 Di(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 Oi({presetId:e,onPresetChange:t,refreshMs:n,onRefreshChange:r,onManualRefresh:o}){let{instanceParams:s}=Si(),{isFetching:c,lastFetchedAt:l,now:u}=Ei(s.entityId),d=Di(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)(ie,{value:e,onValueChange:e=>t(e),children:[(0,L.jsx)(se,{className:`w-[180px]`,children:(0,L.jsx)(N,{})}),(0,L.jsx)(oe,{children:Ee.map(e=>(0,L.jsx)(j,{value:e.id,children:e.label},e.id))})]}),(0,L.jsxs)(ie,{value:String(n),onValueChange:e=>r(Number(e)),children:[(0,L.jsx)(se,{className:`w-[100px]`,children:(0,L.jsx)(N,{})}),(0,L.jsx)(oe,{children:ke.map(e=>(0,L.jsx)(j,{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)(pe,{className:i(`h-4 w-4`,c&&`animate-spin`)})})]})}var ki=[`utilization`,`cpu-usage`,`memory`,`main-thread-utilization`],Ai=30*6e4;function ji(e){return e?.response?.status??e?.status}function Mi(e){let t=ji(e);return t===401||t===403}function Ni(e){let t=ji(e);return typeof t==`number`&&t>=400&&t<500&&!Mi(e)}function Pi(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 ki)try{return await e.instanceClient.post(`/`,{operation:`get_analytics`,metric:i,start_time:n,end_time:t}),!0}catch(e){if(r=e,!Ni(e))throw e}throw r instanceof Error?r:Error(`Analytics probe failed for all metrics`)},retry:(e,t)=>!Mi(t)&&e<2,retryDelay:e=>Math.min(1e3*2**e,8e3),staleTime:Ai,gcTime:Ai});return{supported:t.isSuccess===!0,error:t.error,isAuthError:t.error!=null&&Mi(t.error),isLoading:t.isLoading,isFetching:t.isFetching,retry:()=>{t.refetch()}}}var Fi=new Set([`time`,`node`]),Ii=Object.freeze([]);function Li({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,requiredFields:a,bucketMs:o}){let s=l({...$t({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??Ii,{fieldKeys:u,missingFields:d}=(0,I.useMemo)(()=>{let e=new Set;for(let t of c)for(let n of Object.keys(t))Fi.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 Ri=[`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 zi(e,t){return Ri[[...t].sort().indexOf(e)%Ri.length]}function Bi(e){let t=e.indexOf(`.`);return t===-1?e:e.slice(0,t)}function Vi(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 Hi({nodeIds:e,isActive:t,onClickNode:n,disabled:r}){let i=Vi(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=zi(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 Ui(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 Wi(e){let{isActive:t,handleClick:n,activeSet:r}=Ui(e);return{isActive:t,handleLegendClick:n,activeNodes:r}}function Gi(e,t){let{isActive:n,handleLegendClick:r}=Wi(t);return{data:(0,I.useMemo)(()=>({...e,series:e.series.map(e=>e.node===void 0?e:{...e,label:Bi(e.node),color:zi(e.node,t)}).filter(e=>e.node===void 0||n(e.node))}),[e,t,n]),isActive:n,handleLegendClick:r}}function Ki(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 qi=`var(--color-text-secondary)`;function Ji({dimensionValues:e,selected:t,onSelect:n,otherKey:r,colorFor:i,ariaLabel:a=`Dimension selector`}){let{getRadioProps:o}=Ki(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):qi;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:qi,opacity:.4},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:qi}}),(0,L.jsx)(`span`,{children:r})]})]})}var Yi=`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 Xi(e){return typeof e==`string`&&Yi.includes(e)}var Zi=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 Qi(e){return typeof e==`string`&&Zi.has(e)}function $i(e){return typeof e==`string`&&e.startsWith(`data-`)}function ea(e){if(typeof e!=`object`||!e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(Qi(n)||$i(n))&&(t[n]=e[n]);return t}function ta(e){if(e==null)return null;if((0,I.isValidElement)(e)&&typeof e.props==`object`&&e.props!==null){var t=e.props;return ea(t)}return typeof e==`object`&&!Array.isArray(e)?ea(e):null}function na(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(Qi(n)||$i(n)||Xi(n))&&(t[n]=e[n]);return t}function ra(e){return e==null?null:(0,I.isValidElement)(e)?na(e.props):typeof e==`object`&&!Array.isArray(e)?na(e):null}var ia=[`children`,`width`,`height`,`viewBox`,`className`,`style`,`title`,`desc`];function aa(){return aa=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},aa.apply(null,arguments)}function oa(e,t){if(e==null)return{};var n,r,i=sa(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 sa(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 ca=(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=oa(e,ia),f=o||{width:i,height:a,x:0,y:0},p=r(`recharts-surface`,s);return I.createElement(`svg`,aa({},na(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)}),la=[`children`,`className`];function ua(){return ua=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},ua.apply(null,arguments)}function da(e,t){if(e==null)return{};var n,r,i=fa(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 fa(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 pa=I.forwardRef((e,t)=>{var n=e.children,i=e.className,a=da(e,la),o=r(`recharts-layer`,i);return I.createElement(`g`,ua({className:o},na(a),{ref:t}),n)}),ma=(0,I.createContext)(null),ha=()=>(0,I.useContext)(ma),ga=4;function _a(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:ga),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function va(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+_a(i)+n},``)}var ya=e=>e===0?0:e>0?1:-1,ba=e=>typeof e==`number`&&e!=+e,xa=e=>typeof e==`string`&&e.length>1&&e.indexOf(`%`)===e.length-1,R=e=>(typeof e==`number`||e instanceof Number)&&!ba(e),Sa=e=>R(e)||typeof e==`string`,Ca=0,wa=e=>{var t=++Ca;return`${e||``}${t}`},Ta=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(xa(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return ba(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},Ea=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)?_a(e+n*(t-e)):t}function Da(e,t,n){if(!(!e||!e.length))return e.find(e=>e&&(typeof t==`function`?t(e):Fr(e,t))===n)}var B=e=>e==null,Oa=e=>B(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function ka(e){return e!=null}function Aa(){}var ja=[`type`,`size`,`sizeType`];function Ma(){return Ma=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},Ma.apply(null,arguments)}function Na(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 Pa(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Na(Object(n),!0).forEach(function(t){Fa(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Na(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Fa(e,t,n){return(t=Ia(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ia(e){var t=La(e,`string`);return typeof t==`symbol`?t:t+``}function La(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 Ra(e,t){if(e==null)return{};var n,r,i=za(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 za(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 Ba={symbolCircle:nr,symbolCross:rr,symbolDiamond:or,symbolSquare:sr,symbolStar:fr,symbolTriangle:mr,symbolWye:yr},Va=Math.PI/180,Ha=e=>Ba[`symbol${Oa(e)}`]||nr,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*Va;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}},Wa=(e,t)=>{Ba[`symbol${Oa(e)}`]=t},Ga=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=Pa(Pa({},Ra(e,ja)),{},{type:n,size:a,sizeType:s}),l=`circle`;typeof n==`string`&&(l=n);var u=()=>{var e=Ha(l),t=br().type(e).size(Ua(a,s,l))();if(t!==null)return t},d=c.className,f=c.cx,p=c.cy,m=na(c);return R(f)&&R(p)&&R(a)?I.createElement(`path`,Ma({},m,{className:r(`recharts-symbols`,d),transform:`translate(${f}, ${p})`,d:u()})):null};Ga.registerSymbol=Wa;var Ka=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,qa=(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=>{Xi(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},Ja=(e,t,n)=>r=>(e(t,n,r),null),Ya=(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];Xi(i)&&typeof a==`function`&&(r||={},r[i]=Ja(a,t,n))}),r};function Xa(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 Za(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Xa(Object(n),!0).forEach(function(t){Qa(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xa(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Qa(e,t,n){return(t=$a(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $a(e){var t=eo(e,`string`);return typeof t==`symbol`?t:t+``}function eo(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 to(e,t){var n=Za({},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 no(){return no=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},no.apply(null,arguments)}function ro(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 io(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ro(Object(n),!0).forEach(function(t){ao(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ro(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ao(e,t,n){return(t=oo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oo(e){var t=so(e,`string`);return typeof t==`symbol`?t:t+``}function so(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 co=32,lo={align:`center`,iconSize:14,inactiveColor:`#ccc`,layout:`horizontal`,verticalAlign:`middle`,labelStyle:{}};function uo(e){if(typeof e==`object`&&e&&`strokeDasharray`in e)return String(e.strokeDasharray)}function fo(e){var t=e.data,n=e.iconType,r=e.inactiveColor,i=co/2,a=co/6,o=co/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:uo(t.payload),x1:0,y1:i,x2:co,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${co}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,${co/8}h${co}v${co*3/4}h${-co}z`,className:`recharts-legend-icon`});if(I.isValidElement(t.legendIcon)){var l=io({},t);return delete l.legendIcon,I.cloneElement(t.legendIcon,l)}return I.createElement(Ga,{fill:s,cx:i,cy:i,size:co,sizeType:`diameter`,type:c})}function po(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:co,height:co},u={display:i===`horizontal`?`inline-block`:`block`,marginRight:10},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`?io({},c):{};m.color=t.inactive?o:m.color||t.color;var h=f?f(t.value,t,i):t.value;return I.createElement(`li`,no({className:p,style:u,key:`legend-item-${i}`},Ya(e,t,i)),I.createElement(ca,{width:n,height:n,viewBox:l,style:d,"aria-label":t.value==null?`legend icon`:`${t.value} legend icon`},I.createElement(fo,{data:t,iconType:s,inactiveColor:o})),I.createElement(`span`,{className:`recharts-legend-item-text`,style:m},h))})}var mo=e=>{var t=to(e,lo),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(po,no({},t,{payload:n})))};function ho(e,t,n){return t===!0?pi(e,n):typeof t==`function`?pi(e,t):e}var go=(0,I.createContext)(null),_o=d(),vo=e=>e,V=()=>{var e=(0,I.useContext)(go);return e?e.store.dispatch:vo},yo=()=>{},bo=()=>yo,xo=(e,t)=>e===t;function H(e){var t=(0,I.useContext)(go),n=(0,I.useMemo)(()=>t?t=>{if(t!=null)return e(t)}:yo,[t,e]);return(0,_o.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:bo,t?t.store.getState:yo,t?t.store.getState:yo,n,xo)}var So=e=>e.legend.settings,Co=e=>e.legend.size,wo=F([e=>e.legend.payload,So],(e,t)=>{var n=t.itemSorter,r=e.flat(1);return n?ui(r,n):r});function To(){return H(wo)}function Eo(e,t){return jo(e)||Ao(e,t)||Oo(e,t)||Do()}function Do(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
@@ -56,7 +56,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
56
56
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function KD(e,t){if(e){if(typeof e==`string`)return qD(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)?qD(e,t):void 0}}function qD(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 JD(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 YD(e){if(Array.isArray(e))return e}function XD(e,t){if(e==null)return{};var n,r,i=ZD(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 ZD(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function QD(){return QD=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},QD.apply(null,arguments)}function $D(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 Q(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?$D(Object(n),!0).forEach(function(t){eO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$D(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function eO(e,t,n){return(t=tO(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function tO(e){var t=nO(e,`string`);return typeof t==`symbol`?t:t+``}function nO(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 rO={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:`bottom`,ticks:[],stroke:`#666`,tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:`preserveEnd`,zIndex:X.axis};function iO(e){var t=e.x,n=e.y,i=e.width,a=e.height,o=e.orientation,s=e.mirror,c=e.axisLine,l=e.otherSvgProps;if(!c)return null;var u=Q(Q(Q({},l),ea(c)),{},{fill:`none`});if(o===`top`||o===`bottom`){var d=+(o===`top`&&!s||o===`bottom`&&s);u=Q(Q({},u),{},{x1:t,y1:n+d*a,x2:t+i,y2:n+d*a})}else{var f=+(o===`left`&&!s||o===`right`&&s);u=Q(Q({},u),{},{x1:t+f*i,y1:n,x2:t+f*i,y2:n+a})}return I.createElement(`line`,QD({},u,{className:r(`recharts-cartesian-axis-line`,Fr(c,`className`))}))}function aO(e,t,n,r,i,a,o,s,c){var l,u,d,f,p,m,h=s?-1:1,g=e.tickSize||o,_=R(e.tickCoord)?e.tickCoord:e.coordinate;switch(a){case`top`:l=u=e.coordinate,f=n+ +!s*i,d=f-h*g,m=d-h*c,p=_;break;case`left`:d=f=e.coordinate,u=t+ +!s*r,l=u-h*g,p=l-h*c,m=_;break;case`right`:d=f=e.coordinate,u=t+ +s*r,l=u+h*g,p=l+h*c,m=_;break;default:l=u=e.coordinate,f=n+ +s*i,d=f+h*g,m=d+h*c,p=_;break}return{line:{x1:l,y1:d,x2:u,y2:f},tick:{x:p,y:m}}}function oO(e,t){switch(e){case`left`:return t?`start`:`end`;case`right`:return t?`end`:`start`;default:return`middle`}}function sO(e,t){switch(e){case`left`:case`right`:return`middle`;case`top`:return t?`start`:`end`;default:return t?`end`:`start`}}function cO(e){var t=e.option,n=e.tickProps,i=e.value,a,o=r(n.className,`recharts-cartesian-axis-tick-value`);if(I.isValidElement(t))a=I.cloneElement(t,Q(Q({},n),{},{className:o}));else if(typeof t==`function`)a=t(Q(Q({},n),{},{className:o}));else{var s=`recharts-cartesian-axis-tick-value`;typeof t!=`boolean`&&(s=r(s,Ew(t))),a=I.createElement(kC,QD({},n,{className:s}),i)}return a}function lO(e){var t=e.ticks,n=e.axisType,r=e.axisId,i=V();return(0,I.useEffect)(()=>r==null||n==null?Aa:(i(BD({ticks:t.map(e=>({value:e.value,coordinate:e.coordinate,offset:e.offset,index:e.index})),axisId:r,axisType:n})),()=>{i(VD({axisId:r,axisType:n}))}),[i,t,r,n]),null}var uO=(0,I.forwardRef)((e,t)=>{var n=e.ticks,i=n===void 0?[]:n,a=e.tick,o=e.tickLine,s=e.stroke,c=e.tickFormatter,l=e.unit,u=e.padding,d=e.tickTextProps,f=e.orientation,p=e.mirror,m=e.x,h=e.y,g=e.width,_=e.height,v=e.tickSize,y=e.tickMargin,b=e.fontSize,x=e.letterSpacing,S=e.getTicksConfig,C=e.events,w=e.axisType,T=e.axisId,E=ID(Q(Q({},S),{},{ticks:i}),b,x),D=ea(S),O=ta(a),k=vC(D.textAnchor)?D.textAnchor:oO(f,p),A=sO(f,p),j={};typeof o==`object`&&(j=o);var M=Q(Q({},D),{},{fill:`none`},j),N=E.map(e=>Q({entry:e},aO(e,m,h,g,_,f,v,p,y))),ee=N.map(e=>{var t=e.entry,n=e.line;return I.createElement(pa,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},o&&I.createElement(`line`,QD({},M,n,{className:r(`recharts-cartesian-axis-tick-line`,Fr(o,`className`))})))}),te=N.map((e,t)=>{var n=e.entry,r=e.tick,i=Q(Q({},Q(Q(Q(Q({verticalAnchor:A},D),{},{textAnchor:k,stroke:`none`,fill:s},r),{},{index:t,payload:n,visibleTicksCount:E.length,tickFormatter:c,padding:u},d),{},{angle:d?.angle??D.angle??0})),O);return I.createElement(pa,QD({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},Ya(C,n,t)),a&&I.createElement(cO,{option:a,tickProps:i,value:`${typeof c==`function`?c(n.value,t):n.value}${l||``}`}))});return I.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${w}-ticks`},I.createElement(lO,{ticks:E,axisId:T,axisType:w}),te.length>0&&I.createElement(gx,{zIndex:X.label},I.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${w}-tick-labels`,ref:t},te)),ee.length>0&&I.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${w}-tick-lines`},ee))}),dO=(0,I.forwardRef)((e,t)=>{var n=e.axisLine,i=e.width,a=e.height,o=e.className,s=e.hide,c=e.ticks,l=e.axisType,u=e.axisId,d=XD(e,UD),f=WD((0,I.useState)(``),2),p=f[0],m=f[1],h=WD((0,I.useState)(``),2),g=h[0],_=h[1],v=(0,I.useRef)(null);(0,I.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>LD({ticks:v.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var y=(0,I.useCallback)(e=>{if(e){var t=e.getElementsByClassName(`recharts-cartesian-axis-tick-value`);v.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),i=r.fontSize,a=r.letterSpacing;(i!==p||a!==g)&&(m(i),_(a))}}},[p,g]);return s||i!=null&&i<=0||a!=null&&a<=0?null:I.createElement(gx,{zIndex:e.zIndex},I.createElement(pa,{className:r(`recharts-cartesian-axis`,o)},I.createElement(iO,{x:e.x,y:e.y,width:i,height:a,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:ea(e)}),I.createElement(uO,{ref:y,axisType:l,events:d,fontSize:p,getTicksConfig:e,height:e.height,letterSpacing:g,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:c,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:u}),I.createElement(qC,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},I.createElement(sw,{label:e.label,labelRef:e.labelRef}),e.children)))}),fO=I.forwardRef((e,t)=>{var n=to(e,rO);return I.createElement(dO,QD({},n,{ref:t}))});fO.displayName=`CartesianAxis`;var pO=[`x1`,`y1`,`x2`,`y2`,`key`],mO=[`offset`],hO=[`xAxisId`,`yAxisId`],gO=[`xAxisId`,`yAxisId`];function _O(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 vO(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?_O(Object(n),!0).forEach(function(t){yO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_O(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function yO(e,t,n){return(t=bO(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function bO(e){var t=xO(e,`string`);return typeof t==`symbol`?t:t+``}function xO(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 SO(){return SO=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},SO.apply(null,arguments)}function CO(e,t){if(e==null)return{};var n,r,i=wO(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 wO(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 TO=e=>{var t=e.fill;if(!t||t===`none`)return null;var n=e.fillOpacity,r=e.x,i=e.y,a=e.width,o=e.height,s=e.ry;return I.createElement(`rect`,{x:r,y:i,ry:s,width:a,height:o,stroke:`none`,fill:t,fillOpacity:n,className:`recharts-cartesian-grid-bg`})};function EO(e){var t=e.option,n=e.lineItemProps,r;if(I.isValidElement(t))r=I.cloneElement(t,n);else if(typeof t==`function`)r=t(n);else{var i=n.x1,a=n.y1,o=n.x2,s=n.y2,c=n.key,l=ea(CO(n,pO))??{};l.offset;var u=CO(l,mO);r=I.createElement(`line`,SO({},u,{x1:i,y1:a,x2:o,y2:s,fill:`none`,key:c}))}return r}function DO(e){var t=e.x,n=e.width,r=e.horizontal,i=r===void 0||r,a=e.horizontalPoints;if(!i||!a||!a.length)return null;e.xAxisId,e.yAxisId;var o=CO(e,hO),s=a.map((e,r)=>{var a=vO(vO({},o),{},{x1:t,y1:e,x2:t+n,y2:e,key:`line-${r}`,index:r});return I.createElement(EO,{key:`line-${r}`,option:i,lineItemProps:a})});return I.createElement(`g`,{className:`recharts-cartesian-grid-horizontal`},s)}function OO(e){var t=e.y,n=e.height,r=e.vertical,i=r===void 0||r,a=e.verticalPoints;if(!i||!a||!a.length)return null;e.xAxisId,e.yAxisId;var o=CO(e,gO),s=a.map((e,r)=>{var a=vO(vO({},o),{},{x1:e,y1:t,x2:e,y2:t+n,key:`line-${r}`,index:r});return I.createElement(EO,{option:i,lineItemProps:a,key:`line-${r}`})});return I.createElement(`g`,{className:`recharts-cartesian-grid-vertical`},s)}function kO(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,i=e.y,a=e.width,o=e.height,s=e.horizontalPoints,c=e.horizontal;if(!(c===void 0||c)||!t||!t.length||s==null)return null;var l=s.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,s)=>{var c=l[s+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=s%t.length;return I.createElement(`rect`,{key:`react-${s}`,y:e,x:r,height:u,width:a,stroke:`none`,fill:t[d],fillOpacity:n,className:`recharts-cartesian-grid-bg`})});return I.createElement(`g`,{className:`recharts-cartesian-gridstripes-horizontal`},u)}function AO(e){var t=e.vertical,n=t===void 0||t,r=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,s=e.width,c=e.height,l=e.verticalPoints;if(!n||!r||!r.length)return null;var u=l.map(e=>Math.round(e+a-a)).sort((e,t)=>e-t);a!==u[0]&&u.unshift(0);var d=u.map((e,t)=>{var n=u[t+1],l=n==null?a+s-e:n-e;if(l<=0)return null;var d=t%r.length;return I.createElement(`rect`,{key:`react-${t}`,x:e,y:o,width:l,height:c,stroke:`none`,fill:r[d],fillOpacity:i,className:`recharts-cartesian-grid-bg`})});return I.createElement(`g`,{className:`recharts-cartesian-gridstripes-vertical`},d)}var jO=(e,t)=>{var n=e.xAxis,r=e.width,i=e.height,a=e.offset;return Ml(ID(vO(vO(vO({},rO),n),{},{ticks:Nl(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.left,a.left+a.width,t)},MO=(e,t)=>{var n=e.yAxis,r=e.width,i=e.height,a=e.offset;return Ml(ID(vO(vO(vO({},rO),n),{},{ticks:Nl(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.top,a.top+a.height,t)},NO={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:`#ccc`,fill:`none`,verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:X.grid};function PO(e){var t=ed(),n=td(),r=$u(),i=vO(vO({},to(e,NO)),{},{x:R(e.x)?e.x:r.left,y:R(e.y)?e.y:r.top,width:R(e.width)?e.width:r.width,height:R(e.height)?e.height:r.height}),a=i.xAxisId,o=i.yAxisId,s=i.x,c=i.y,l=i.width,u=i.height,d=i.syncWithTicks,f=i.horizontalValues,p=i.verticalValues,m=q(),h=H(e=>Bv(e,`xAxis`,a,m)),g=H(e=>Bv(e,`yAxis`,o,m));if(!wl(l)||!wl(u)||!R(s)||!R(c))return null;var _=i.verticalCoordinatesGenerator||jO,v=i.horizontalCoordinatesGenerator||MO,y=i.horizontalPoints,b=i.verticalPoints;if((!y||!y.length)&&typeof v==`function`){var x=f&&f.length,S=v({yAxis:g?vO(vO({},g),{},{ticks:x?f:g.ticks}):void 0,width:t??l,height:n??u,offset:r},x?!0:d);bu(Array.isArray(S),`horizontalCoordinatesGenerator should return Array but instead it returned [${typeof S}]`),Array.isArray(S)&&(y=S)}if((!b||!b.length)&&typeof _==`function`){var C=p&&p.length,w=_({xAxis:h?vO(vO({},h),{},{ticks:C?p:h.ticks}):void 0,width:t??l,height:n??u,offset:r},C?!0:d);bu(Array.isArray(w),`verticalCoordinatesGenerator should return Array but instead it returned [${typeof w}]`),Array.isArray(w)&&(b=w)}return I.createElement(gx,{zIndex:i.zIndex},I.createElement(`g`,{className:`recharts-cartesian-grid`},I.createElement(TO,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),I.createElement(kO,SO({},i,{horizontalPoints:y})),I.createElement(AO,SO({},i,{verticalPoints:b})),I.createElement(DO,SO({},i,{offset:r,horizontalPoints:y,xAxis:h,yAxis:g})),I.createElement(OO,SO({},i,{offset:r,verticalPoints:b,xAxis:h,yAxis:g}))))}PO.displayName=`CartesianGrid`;var FO=[`animationElapsedTime`,`isAnimating`,`isEntrance`,`visibleLength`,`strokeDasharray`,`connectNulls`];function IO(){return IO=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},IO.apply(null,arguments)}function LO(e,t){if(e==null)return{};var n,r,i=RO(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 RO(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function zO(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function BO(e,t){return`${t}px ${e}px`}function VO(e){return e.length%2==0?e:[...e,...e]}function HO(e,t){for(var n=[],r=0;r<t;++r)n.push(...e);return n}function UO(e,t,n){var r=VO(n),i=r.reduce((e,t)=>e+t,0);if(!i)return BO(t,e);for(var a=Math.floor(e/i),o=e%i,s=[],c=0,l=0;c<r.length;l+=(u=r[c])??0,++c){var u,d=r[c];if(d!=null&&l+d>o){s=[...r.slice(0,c),o-l];break}}var f=s.length%2==0?[0,t]:[t];return[...HO(r,a),...s,...f].map(e=>`${e}px`).join(`, `)}function WO(e,t,n){return e?UO(n,t,`${e}`.split(/[,\s]+/gim).map(e=>parseFloat(e))):BO(t,n)}function GO(e){e.animationElapsedTime,e.isAnimating,e.isEntrance;var t=e.visibleLength,n=e.strokeDasharray,r=e.connectNulls,i=LO(e,FO),a=r??!1,o;if(t!=null){var s=i.pathRef;o=WO(n,zO(s?.current??null),t)}else n!=null&&(o=String(n));return I.createElement(Xf,IO({},i,{connectNulls:a,strokeDasharray:o}))}function KO(e){var t=(0,I.useRef)(0),n=(0,I.useRef)(0),r=(0,I.useRef)(!1),i=(0,I.useRef)(e);return i.current!==e&&(t.current=n.current,i.current=e),(0,I.useCallback)((e,i)=>{if(r.current)return null;var a=Math.min(_a(t.current+e*i),i);return e>0&&i>0&&(n.current=Math.max(n.current,a),a>=i)?(r.current=!0,null):a},[])}var qO=Oc({name:`errorBars`,initialState:{},reducers:{addErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]||(e[r]=[]),e[r].push(i)},replaceErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.prev,a=n.next;e[r]&&(e[r]=e[r].map(e=>e.dataKey===i.dataKey&&e.direction===i.direction?a:e))},removeErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]&&(e[r]=e[r].filter(e=>e.dataKey!==i.dataKey||e.direction!==i.direction))}}}),JO=qO.actions;JO.addErrorBar,JO.replaceErrorBar,JO.removeErrorBar;var YO=qO.reducer,XO=[`children`];function ZO(e,t){if(e==null)return{};var n,r,i=QO(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 QO(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 $O=(0,I.createContext)({data:[],xAxisId:`xAxis-0`,yAxisId:`yAxis-0`,dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0});function ek(e){var t=e.children,n=ZO(e,XO);return I.createElement($O.Provider,{value:n},t)}function tk(e,t){var n=H(t=>Hg(t,e)),r=H(e=>Gg(e,t)),i=n?.allowDataOverflow??Bg.allowDataOverflow,a=r?.allowDataOverflow??Ug.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function nk(e){var t=e.xAxisId,n=e.yAxisId,r=e.clipPathId,i=dE(),a=tk(t,n),o=a.needClipX,s=a.needClipY,c=a.needClip,l=H(e=>mv(e,t,!1)),u=H(e=>hv(e,n,!1));if(!c||!i)return null;var d=i.x,f=i.y,p=i.width,m=i.height,h=o&&l?Math.min(l[0],l[1]):d-p/2,g=s&&u?Math.min(u[0],u[1]):f-m/2,_=o&&l?Math.abs(l[1]-l[0]):p*2,v=s&&u?Math.abs(u[1]-u[0]):m*2;return I.createElement(`clipPath`,{id:`clipPath-${r}`},I.createElement(`rect`,{x:h,y:g,width:_,height:v}))}var rk=(e,t,n,r)=>Uv(e,`xAxis`,t,r),ik=(e,t,n,r)=>Hv(e,`xAxis`,t,r),ak=(e,t,n,r)=>Uv(e,`yAxis`,n,r),ok=(e,t,n,r)=>Hv(e,`yAxis`,n,r),sk=F([J,rk,ak,ik,ok],(e,t,n,r,i)=>jl(e,`xAxis`)?Kl(t,r,!1):Kl(n,i,!1)),ck=(e,t,n,r,i)=>i;function lk(e){return e.type===`line`}var uk=F([J,rk,ak,ik,ok,F([$g,ck],(e,t)=>e.filter(lk).find(e=>e.id===t)),sk,eh],(e,t,n,r,i,a,o,s)=>{var c=s.chartData,l=s.dataStartIndex,u=s.dataEndIndex;if(!(a==null||t==null||n==null||r==null||i==null||r.length===0||i.length===0||o==null||e!==`horizontal`&&e!==`vertical`)){var d=a.dataKey,f=a.data,p=f!=null&&f.length>0?f:c?.slice(l,u+1);if(p!=null)return Ik({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataKey:d,bandSize:o,displayedData:p})}});function dk(e){var t=ta(e),n=3,r=2;if(t!=null){var i=t.r,a=t.strokeWidth,o=Number(i),s=Number(a);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(s)||s<0)&&(s=r),{r:o,strokeWidth:s}}return{r:n,strokeWidth:r}}var fk=[`id`],pk=[`type`,`layout`,`connectNulls`,`needClip`,`shape`,`strokeDasharray`],mk=[`activeDot`,`animateNewValues`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`hide`,`isAnimationActive`,`label`,`legendType`,`xAxisId`,`yAxisId`,`id`];function hk(){return hk=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},hk.apply(null,arguments)}function gk(e,t){if(e==null)return{};var n,r,i=_k(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 _k(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function vk(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 yk(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?vk(Object(n),!0).forEach(function(t){bk(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vk(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function bk(e,t,n){return(t=xk(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xk(e){var t=Sk(e,`string`);return typeof t==`symbol`?t:t+``}function Sk(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 Ck(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function wk(e){var t=0,n=0;for(var r of e)r.status===`matched`&&r.prev.x!=null&&r.next.x!=null&&(t+=r.next.x-r.prev.x,n++);return n>0?t/n:0}var Tk={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,animationInterpolateFn:(e,t)=>{if(e==null)return[];if(t===1)return e.flatMap(e=>e.status===`removed`?[]:[e.next]);var n=wk(e),r=[];for(var i of e)if(i.status===`matched`)r.push(yk(yk({},i.next),{},{x:z(i.prev.x,i.next.x,t),y:z(i.prev.y,i.next.y,t)}));else if(i.status===`added`)if(i.next.x!=null){var a=i.next.x-n;r.push(yk(yk({},i.next),{},{x:z(a,i.next.x,t),y:i.next.y}))}else r.push(i.next);else if(i.status===`removed`&&i.prev.x!=null){var o=i.prev.x+n;r.push(yk(yk({},i.prev),{},{x:z(i.prev.x,o,t),y:i.prev.y}))}return r},animationMatchBy:rT,connectNulls:!1,dot:!0,fill:`#fff`,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`line`,shape:GO,stroke:`#3182bd`,strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:X.line,type:`linear`},Ek=e=>{var t=e.dataKey,n=e.name,r=e.stroke,i=e.legendType;return[{inactive:e.hide,dataKey:t,type:i,color:r,value:Jl(n,t),payload:e}]},Dk=I.memo(e=>{var t=e.dataKey,n=e.data,r=e.stroke,i=e.strokeWidth,a=e.fill,o=e.name,s=e.hide,c=e.unit,l=e.formatter,u=e.tooltipType,d=e.id,f={dataDefinedOnItem:n,getPosition:Aa,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:Jl(o,t),hide:s,type:u,color:r,unit:c,formatter:l,graphicalItemId:d}};return I.createElement(Yw,{tooltipEntrySettings:f})});function Ok(e){var t=e.clipPathId,n=e.points,r=e.props,i=r.dot,a=r.dataKey,o=r.needClip;r.id;var s=ea(gk(r,fk));return I.createElement(JT,{points:n,dot:i,className:`recharts-line-dots`,dotClassName:`recharts-line-dot`,dataKey:a,baseProps:s,needClip:o,clipPathId:t})}function kk(e){var t=e.showLabels,n=e.children,r=e.points,i=(0,I.useMemo)(()=>r?.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return yk(yk({},t),{},{value:e.value,payload:e.payload,viewBox:t,parentViewBox:void 0,fill:void 0})}),[r]);return I.createElement(hw,{value:t?i:void 0},n)}function Ak(e){var t=e.clipPathId,n=e.pathRef,r=e.points,i=e.props,a=e.animationElapsedTime,o=e.isAnimating,s=e.isEntrance,c=e.visibleLength,l=i.type,u=i.layout,d=i.connectNulls,f=i.needClip,p=i.shape,m=i.strokeDasharray,h=yk(yk({},na(gk(i,pk))),{},{fill:`none`,className:`recharts-line-curve`,clipPath:f?`url(#clipPath-${t})`:void 0,points:r,type:l,layout:u,connectNulls:d,strokeDasharray:m??i.strokeDasharray,pathRef:n,animationElapsedTime:a,isAnimating:o,isEntrance:i.animateNewValues?s:!1,visibleLength:c});return I.createElement(I.Fragment,null,r?.length>1&&I.createElement(Gw,{option:p,DefaultShape:Tk.shape,shapeProps:h}),I.createElement(Ok,{points:r,clipPathId:t,props:i}))}function jk(e){var t=e.clipPathId,n=e.props,r=e.pathRef,i=e.previousPointsRef,a=n.points,o=n.isAnimationActive,s=n.animationBegin,c=n.animationDuration,l=n.animationEasing,u=n.animationMatchBy,d=n.animationInterpolateFn,f=n.layout,p=Ck(r.current),m=vT(n.onAnimationStart,n.onAnimationEnd),h=m.isAnimating,g=m.handleAnimationStart,_=m.handleAnimationEnd,v=!h,y=KO(a),b=(0,I.useCallback)(e=>e>0&&p>0,[p]);return I.createElement(kk,{points:a,showLabels:v},n.children,I.createElement(yT,{animationInput:a,animationIdPrefix:`recharts-line-`,items:a,previousItemsRef:i,isAnimationActive:o,animationBegin:s,animationDuration:c,animationEasing:l,onAnimationStart:g,onAnimationEnd:_,animationInterpolateFn:d,animationMatchBy:u,shouldUpdatePreviousRef:b,layout:f},(e,i,a)=>{var o=h||i<1,s=o?y(i,p):null;return I.createElement(Ak,{props:n,points:e,clipPathId:t,pathRef:r,animationElapsedTime:i,isAnimating:o,isEntrance:a,visibleLength:s})}),I.createElement(bw,{label:n.label}))}function Mk(e){var t=e.clipPathId,n=e.props,r=(0,I.useRef)(null),i=(0,I.useRef)(null);return I.createElement(jk,{props:n,clipPathId:t,previousPointsRef:r,pathRef:i})}var Nk=(e,t)=>({x:e.x??void 0,y:e.y??void 0,value:e.value,errorVal:K(e.payload,t)}),Pk=class extends I.Component{render(){var e=this.props,t=e.hide,n=e.dot,i=e.points,a=e.className,o=e.xAxisId,s=e.yAxisId,c=e.top,l=e.left,u=e.width,d=e.height,f=e.id,p=e.needClip,m=e.zIndex;if(t)return null;var h=r(`recharts-line`,a),g=f,_=dk(n),v=_.r,y=_.strokeWidth,b=Pw(n),x=v*2+y,S=p?`url(#clipPath-${b?``:`dots-`}${g})`:void 0;return I.createElement(gx,{zIndex:m},I.createElement(pa,{className:h},p&&I.createElement(`defs`,null,I.createElement(nk,{clipPathId:g,xAxisId:o,yAxisId:s}),!b&&I.createElement(`clipPath`,{id:`clipPath-dots-${g}`},I.createElement(`rect`,{x:l-x/2,y:c-x/2,width:u+x,height:d+x}))),I.createElement(ek,{xAxisId:o,yAxisId:s,data:i,dataPointFormatter:Nk,errorBarOffset:0},I.createElement(Mk,{props:this.props,clipPathId:g}))),I.createElement(yE,{activeDot:this.props.activeDot,points:i,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:S}))}};function Fk(e){var t=to(e,Tk),n=t.activeDot,r=t.animateNewValues,i=t.animationBegin,a=t.animationDuration,o=t.animationEasing,s=t.connectNulls,c=t.dot,l=t.hide,u=t.isAnimationActive,d=t.label,f=t.legendType,p=t.xAxisId,m=t.yAxisId,h=t.id,g=gk(t,mk),_=tk(p,m).needClip,v=dE(),y=rd(),b=q(),x=H(e=>uk(e,p,m,b,h));if(y!==`horizontal`&&y!==`vertical`||x==null||v==null)return null;var S=v.height,C=v.width,w=v.x,T=v.y;return I.createElement(Pk,hk({},g,{id:h,connectNulls:s,dot:c,activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,isAnimationActive:u,hide:l,label:d,legendType:f,xAxisId:p,yAxisId:m,points:x,layout:y,height:S,width:C,left:w,top:T,needClip:_}))}function Ik(e){var t=e.layout,n=e.xAxis,r=e.yAxis,i=e.xAxisTicks,a=e.yAxisTicks,o=e.dataKey,s=e.bandSize;return e.displayedData.map((e,c)=>{var l=K(e,o);if(t===`horizontal`)return{x:Rl({axis:n,ticks:i,bandSize:s,entry:e,index:c}),y:(B(l)?null:r.scale.map(l))??null,value:l,payload:e};var u=B(l)?null:n.scale.map(l),d=Rl({axis:r,ticks:a,bandSize:s,entry:e,index:c});return u==null||d==null?null:{x:u,y:d,value:l,payload:e}}).filter(Boolean)}function Lk(e){var t=to(e,Tk),n=q();return I.createElement(kT,{id:t.id,type:`line`},e=>I.createElement(I.Fragment,null,I.createElement(Xw,{legendPayload:Ek(t)}),I.createElement(Dk,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:e}),I.createElement(IT,{type:`line`,id:e,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:n}),I.createElement(Fk,hk({},t,{id:e}))))}var Rk=I.memo(Lk,vd);Rk.displayName=`Line`;function zk(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function Bk(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var Vk=(e,t,n)=>Uv(e,`xAxis`,zk(e,t),n),Hk=(e,t,n)=>Hv(e,`xAxis`,zk(e,t),n),Uk=(e,t,n)=>Uv(e,`yAxis`,Bk(e,t),n),Wk=(e,t,n)=>Hv(e,`yAxis`,Bk(e,t),n),Gk=F([J,Vk,Uk,Hk,Wk],(e,t,n,r,i)=>jl(e,`xAxis`)?Kl(t,r,!1):Kl(n,i,!1)),Kk=F([$g,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`area`).find(e=>e.id===t)),qk=e=>jl(J(e),`xAxis`)?`yAxis`:`xAxis`,Jk=(e,t)=>qk(e)===`yAxis`?Bk(e,t):zk(e,t),Yk=F([J,Vk,Uk,Hk,Wk,F([Kk,(e,t,n)=>w_(e,qk(e),Jk(e,t),n)],(e,t)=>{if(!(e==null||t==null)){var n=e.stackId,r=cg(e);if(!(n==null||r==null)){var i=(t[n]?.stackedData)?.find(e=>e.key===r);if(i!=null)return i.map(e=>[e[0],e[1]])}}}),th,Gk,Kk,zh],(e,t,n,r,i,a,o,s,c,l)=>{var u=o.chartData,d=o.dataStartIndex,f=o.dataEndIndex;if(!(c==null||e!==`horizontal`&&e!==`vertical`||t==null||n==null||r==null||i==null||r.length===0||i.length===0||s==null)){var p=c.data,m=p&&p.length>0?p:u?.slice(d,f+1);if(m!=null)return OA({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataStartIndex:d,areaSettings:c,stackedData:a,displayedData:m,chartBaseValue:l,bandSize:s})}}),Xk=[`animationElapsedTime`,`isAnimating`,`isEntrance`,`layout`,`isRange`,`stroke`,`connectNulls`],Zk=[`id`,`baseLine`];function Qk(){return Qk=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},Qk.apply(null,arguments)}function $k(e,t){if(e==null)return{};var n,r,i=eA(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 eA(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function tA(e){var t=e.alpha,n=e.baseLine,r=e.points,i=e.strokeWidth,a=r[0]?.x,o=r[r.length-1]?.x;if(!G(a)||!G(o))return null;var s=t*Math.abs(a-o),c=Math.max(...r.map(e=>e.y||0));return R(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.y||0),c)),R(c)?I.createElement(`rect`,{x:a<o?a:a-s,y:0,width:s,height:Math.floor(c+(i?parseInt(`${i}`,10):1))}):null}function nA(e){var t=e.alpha,n=e.baseLine,r=e.points,i=e.strokeWidth,a=r[0]?.y,o=r[r.length-1]?.y;if(!G(a)||!G(o))return null;var s=t*Math.abs(a-o),c=Math.max(...r.map(e=>e.x||0));return R(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.x||0),c)),R(c)?I.createElement(`rect`,{x:0,y:a<o?a:a-s,width:c+(i?parseInt(`${i}`,10):1),height:Math.floor(s)}):null}function rA(e){var t=e.alpha,n=e.layout,r=e.points,i=e.baseLine,a=e.strokeWidth;return n===`vertical`?I.createElement(nA,{alpha:t,points:r,baseLine:i,strokeWidth:a}):I.createElement(tA,{alpha:t,points:r,baseLine:i,strokeWidth:a})}function iA(e){var t=e.animationElapsedTime,n=t===void 0?1:t,r=e.isAnimating,i=r!==void 0&&r,a=e.isEntrance,o=a!==void 0&&a,s=e.layout,c=e.isRange,l=e.stroke,u=e.connectNulls,d=$k(e,Xk),f=s===`vertical`?`vertical`:`horizontal`,p=u??!1,m=ET(),h=d.id,g=d.baseLine,_=ea($k(d,Zk)),v=I.createElement(Xf,Qk({},d,{id:h,baseLine:g,connectNulls:p,stroke:`none`,className:`recharts-area-area`,layout:f})),y=l!==`none`&&I.createElement(Xf,Qk({},_,{className:`recharts-area-curve`,layout:f,type:d.type,connectNulls:p,fill:`none`,stroke:l,points:d.points})),b=l!==`none`&&c&&Array.isArray(g)&&I.createElement(Xf,Qk({},_,{className:`recharts-area-curve`,layout:f,type:d.type,connectNulls:p,fill:`none`,stroke:l,points:g}));return o&&(i||n<1)?I.createElement(pa,null,I.createElement(`defs`,null,I.createElement(`clipPath`,{id:m},I.createElement(rA,{alpha:n,points:d.points??[],baseLine:g,layout:f,strokeWidth:d.strokeWidth}))),I.createElement(pa,{clipPath:`url(#${m})`},v,y,b)):I.createElement(I.Fragment,null,v,y,b)}var aA=[`id`],oA=[`activeDot`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`fill`,`fillOpacity`,`hide`,`isAnimationActive`,`legendType`,`stroke`,`xAxisId`,`yAxisId`];function sA(){return sA=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},sA.apply(null,arguments)}function cA(e,t){if(e==null)return{};var n,r,i=lA(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 lA(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function uA(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 dA(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?uA(Object(n),!0).forEach(function(t){fA(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uA(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function fA(e,t,n){return(t=pA(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pA(e){var t=mA(e,`string`);return typeof t==`symbol`?t:t+``}function mA(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 hA={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,animationMatchBy:rT,animationInterpolateFn:(e,t)=>e==null?[]:t===1?e.flatMap(e=>e.status===`removed`?[]:[e.next]):e.flatMap(e=>e.status===`matched`?[dA(dA({},e.next),{},{x:z(e.prev.x,e.next.x,t),y:z(e.prev.y,e.next.y,t)})]:e.status===`added`?[e.next]:[]),connectNulls:!1,dot:!1,fill:`#3182bd`,fillOpacity:.6,hide:!1,isAnimationActive:`auto`,legendType:`line`,stroke:`#3182bd`,strokeWidth:1,type:`linear`,label:!1,shape:iA,xAxisId:0,yAxisId:0,zIndex:X.area};function gA(e,t){return e&&e!==`none`?e:t}var _A=e=>{var t=e.dataKey,n=e.name,r=e.stroke,i=e.fill,a=e.legendType;return[{inactive:e.hide,dataKey:t,type:a,color:gA(r,i),value:Jl(n,t),payload:e}]},vA=I.memo(e=>{var t=e.dataKey,n=e.data,r=e.stroke,i=e.strokeWidth,a=e.fill,o=e.name,s=e.hide,c=e.unit,l=e.formatter,u=e.tooltipType,d=e.id,f={dataDefinedOnItem:n,getPosition:Aa,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:Jl(o,t),hide:s,type:u,color:gA(r,a),unit:c,formatter:l,graphicalItemId:d}};return I.createElement(Yw,{tooltipEntrySettings:f})});function yA(e){var t=e.clipPathId,n=e.points,r=e.props,i=r.needClip,a=r.dot,o=r.dataKey,s=ea(r);return I.createElement(JT,{points:n,dot:a,className:`recharts-area-dots`,dotClassName:`recharts-area-dot`,dataKey:o,baseProps:s,needClip:i,clipPathId:t})}function bA(e){var t=e.showLabels,n=e.children,r=e.points.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return dA(dA({},t),{},{value:e.value,payload:e.payload,parentViewBox:void 0,viewBox:t,fill:void 0})});return I.createElement(hw,{value:t?r:void 0},n)}function xA(e){var t=e.points,n=e.baseLine,r=e.needClip,i=e.clipPathId,a=e.props,o=e.animationElapsedTime,s=e.isAnimating,c=e.isEntrance,l=a.layout,u=a.type,d=a.stroke,f=a.connectNulls,p=a.isRange,m=a.shape,h=a.id,g=cA(a,aA),_=dA(dA({},na(g)),{},{id:h,points:t,connectNulls:f,type:u,baseLine:n,layout:l,stroke:d,isRange:p,animationElapsedTime:o,isAnimating:s,isEntrance:c});return I.createElement(I.Fragment,null,t?.length>1&&I.createElement(pa,{clipPath:r?`url(#clipPath-${i})`:void 0},I.createElement(Gw,{option:m,DefaultShape:hA.shape,shapeProps:_})),I.createElement(yA,{points:t,props:g,clipPathId:i}))}function SA(e,t,n){return R(e)?z(R(t)?t:void 0,e,n):B(e)||ba(e)?z(R(t)?t:void 0,0,n):e}function CA(e){var t=e.needClip,n=e.clipPathId,r=e.props,i=e.previousPointsRef,a=e.previousBaselineRef,o=r.points,s=r.baseLine,c=r.isAnimationActive,l=r.animationBegin,u=r.animationDuration,d=r.animationEasing,f=r.animationMatchBy,p=r.animationInterpolateFn,m=(0,I.useMemo)(()=>({points:o,baseLine:s}),[o,s]),h=dT(m,a),g=id(),_=vT(r.onAnimationStart,r.onAnimationEnd),v=_.isAnimating,y=_.handleAnimationStart,b=_.handleAnimationEnd,x=h.startValue;if(g==null)return null;var S=Array.isArray(s)&&Array.isArray(x)?uT(x,s,f):Array.isArray(s)?uT(null,s,f):null;return I.createElement(yT,{animationInput:m,animationIdPrefix:`recharts-area-`,items:o,previousItemsRef:i,isAnimationActive:c,animationBegin:l,animationDuration:u,animationEasing:d,onAnimationStart:y,onAnimationEnd:b,animationInterpolateFn:p,animationMatchBy:f,layout:g},(e,i,a)=>{var c=i===1?s:Array.isArray(s)?p(S,i,g):a?s:SA(s,x,i);return h.syncStepValue(c,i),I.createElement(bA,{showLabels:!v,points:o},r.children,I.createElement(xA,{points:e,baseLine:c,needClip:t,clipPathId:n,props:r,animationElapsedTime:i,isAnimating:v||i<1,isEntrance:a}),I.createElement(bw,{label:r.label}))})}function wA(e){var t=e.needClip,n=e.clipPathId,r=e.props,i=(0,I.useRef)(null),a=(0,I.useRef)();return I.createElement(CA,{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:a})}var TA=class extends I.PureComponent{render(){var e=this.props,t=e.hide,n=e.dot,i=e.points,a=e.className,o=e.top,s=e.left,c=e.needClip,l=e.xAxisId,u=e.yAxisId,d=e.width,f=e.height,p=e.id,m=e.baseLine,h=e.zIndex;if(t)return null;var g=r(`recharts-area`,a),_=p,v=dk(n),y=v.r,b=v.strokeWidth,x=Pw(n),S=y*2+b,C=c?`url(#clipPath-${x?``:`dots-`}${_})`:void 0;return I.createElement(gx,{zIndex:h},I.createElement(pa,{className:g},c&&I.createElement(`defs`,null,I.createElement(nk,{clipPathId:_,xAxisId:l,yAxisId:u}),!x&&I.createElement(`clipPath`,{id:`clipPath-dots-${_}`},I.createElement(`rect`,{x:s-S/2,y:o-S/2,width:d+S,height:f+S}))),I.createElement(wA,{needClip:c,clipPathId:_,props:this.props})),I.createElement(yE,{points:i,mainColor:gA(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:C}),this.props.isRange&&Array.isArray(m)&&I.createElement(yE,{points:m,mainColor:gA(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:C}))}};function EA(e){var t=e.activeDot,n=e.animationBegin,r=e.animationDuration,i=e.animationEasing,a=e.connectNulls,o=e.dot,s=e.fill,c=e.fillOpacity,l=e.hide,u=e.isAnimationActive,d=e.legendType,f=e.stroke,p=e.xAxisId,m=e.yAxisId,h=cA(e,oA),g=rd(),_=Ib(),v=tk(p,m).needClip,y=q(),b=H(t=>Yk(t,e.id,y))??{},x=b.points,S=b.isRange,C=b.baseLine,w=dE();if(g!==`horizontal`&&g!==`vertical`||w==null||_!==`AreaChart`&&_!==`ComposedChart`)return null;var T=w.height,E=w.width,D=w.x,O=w.y;return!x||!x.length?null:I.createElement(TA,sA({},h,{activeDot:t,animationBegin:n,animationDuration:r,animationEasing:i,baseLine:C,connectNulls:a,dot:o,fill:s,fillOpacity:c,height:T,hide:l,layout:g,isAnimationActive:u,isRange:S,legendType:d,needClip:v,points:x,stroke:f,width:E,left:D,top:O,xAxisId:p,yAxisId:m}))}var DA=(e,t,n,r,i)=>{var a=n??t;if(R(a))return a;var o=e===`horizontal`?i:r,s=o.scale.domain();if(o.type===`number`){var c=Math.max(s[0],s[1]),l=Math.min(s[0],s[1]);return a===`dataMin`?l:a===`dataMax`||c<0?c:Math.max(Math.min(s[0],s[1]),0)}return a===`dataMin`?s[0]:a===`dataMax`?s[1]:s[0]};function OA(e){var t=e.areaSettings,n=t.connectNulls,r=t.baseValue,i=t.dataKey,a=e.stackedData,o=e.layout,s=e.chartBaseValue,c=e.xAxis,l=e.yAxis,u=e.displayedData,d=e.dataStartIndex,f=e.xAxisTicks,p=e.yAxisTicks,m=e.bandSize,h=a&&a.length,g=DA(o,s,r,c,l),_=o===`horizontal`,v=!1,y=u.map((e,t)=>{var r;if(h)r=a[d+t];else{var o=K(e,i);Array.isArray(o)?(r=o,v=!0):r=[g,o]}var s=r?.[1]??null,u=s==null||h&&!n&&K(e,i)==null;return _?{x:Rl({axis:c,ticks:f,bandSize:m,entry:e,index:t}),y:u?null:l.scale.map(s)??null,value:r,payload:e}:{x:u?null:c.scale.map(s)??null,y:Rl({axis:l,ticks:p,bandSize:m,entry:e,index:t}),value:r,payload:e}});return{points:y,baseLine:(h||v?y.map(e=>{var t=Array.isArray(e.value)?e.value[0]:null;return _?{x:e.x,y:t!=null&&e.y!=null?l.scale.map(t)??null:null,payload:e.payload}:{x:t==null?null:c.scale.map(t)??null,y:e.y,payload:e.payload}}):_?l.scale.map(g):c.scale.map(g))??0,isRange:v}}function kA(e){var t=to(e,hA),n=q();return I.createElement(kT,{id:t.id,type:`area`},e=>I.createElement(I.Fragment,null,I.createElement(Xw,{legendPayload:_A(t)}),I.createElement(vA,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:e}),I.createElement(IT,{type:`area`,id:e,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:Ll(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),I.createElement(EA,sA({},t,{id:e}))))}var AA=I.memo(kA,vd);AA.displayName=`Area`;var jA=`Invariant failed`;function MA(e,t){if(!e)throw Error(jA)}var NA=[`option`];function PA(e,t){if(e==null)return{};var n,r,i=FA(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 FA(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 IA=bm;function LA(e){var t=e.option,n=PA(e,NA);return I.createElement(Gw,{option:t,DefaultShape:IA,shapeProps:n,activeClassName:`recharts-active-bar`,inActiveClassName:`recharts-inactive-bar`})}var RA=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(n,r)=>{if(R(e))return e;var i=R(n)||B(n);return i?e(n,r):(!i&&MA(!1,`minPointSize callback function received a value with type of ${typeof n}. Currently only numbers or null/undefined are supported.`),t)}},zA=(e,t,n)=>n,BA=F([$g,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`bar`).find(e=>e.id===t)),VA=F([BA],e=>e?.maxBarSize),HA=(e,t,n,r)=>r,UA=F([J,$g,zk,Bk,zA],(e,t,n,r,i)=>t.filter(t=>e===`horizontal`?t.xAxisId===n:t.yAxisId===r).filter(e=>e.isPanorama===i).filter(e=>e.hide===!1).filter(e=>e.type===`bar`)),WA=(e,t,n)=>{var r=J(e),i=zk(e,t),a=Bk(e,t);if(!(i==null||a==null))return r===`horizontal`?w_(e,`yAxis`,a,n):w_(e,`xAxis`,i,n)},GA=F([UA,Mh,(e,t)=>{var n=J(e),r=zk(e,t),i=Bk(e,t);if(!(r==null||i==null))return n===`horizontal`?Lv(e,`xAxis`,r):Lv(e,`yAxis`,i)}],DE),KA=(e,t,n)=>{var r=BA(e,t);if(r==null)return 0;var i=zk(e,t),a=Bk(e,t);if(i==null||a==null)return 0;var o=J(e),s=kh(e),c=r.maxBarSize,l=B(c)?s:c,u,d;return o===`horizontal`?(u=Uv(e,`xAxis`,i,n),d=Hv(e,`xAxis`,i,n)):(u=Uv(e,`yAxis`,a,n),d=Hv(e,`yAxis`,a,n)),Kl(u,d,!0)??l??0},qA=(e,t,n)=>{var r=J(e),i=zk(e,t),a=Bk(e,t);if(!(i==null||a==null)){var o,s;return r===`horizontal`?(o=Uv(e,`xAxis`,i,n),s=Hv(e,`xAxis`,i,n)):(o=Uv(e,`yAxis`,a,n),s=Hv(e,`yAxis`,a,n)),Kl(o,s)}},JA=F([mu,gu,(e,t,n)=>{var r=zk(e,t);if(r!=null)return Uv(e,`xAxis`,r,n)},(e,t,n)=>{var r=Bk(e,t);if(r!=null)return Uv(e,`yAxis`,r,n)},(e,t,n)=>{var r=zk(e,t);if(r!=null)return Hv(e,`xAxis`,r,n)},(e,t,n)=>{var r=Bk(e,t);if(r!=null)return Hv(e,`yAxis`,r,n)},F([F([GA,kh,Ah,jh,KA,qA,VA],PE),BA],IE),J,th,qA,F([WA,BA],FE),BA,HA],(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{var p=c.chartData,m=c.dataStartIndex,h=c.dataEndIndex;if(!(d==null||o==null||t==null||s!==`horizontal`&&s!==`vertical`||n==null||r==null||i==null||a==null||l==null)){var g=d.data,_=g!=null&&g.length>0?g:p?.slice(m,h+1);if(_!=null)return Lj({layout:s,barSettings:d,pos:o,parentViewBox:t,bandSize:l,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,stackedData:u,displayedData:_,offset:e,cells:f,dataStartIndex:m})}}),YA=[`index`];function XA(){return XA=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},XA.apply(null,arguments)}function ZA(e,t){if(e==null)return{};var n,r,i=QA(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 QA(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 $A=(0,I.createContext)(void 0),ej=e=>{var t=(0,I.useContext)($A);if(t!=null)return t.stackId;if(e!=null)return Ll(e)},tj=(e,t)=>`recharts-bar-stack-clip-path-${e}-${t}`,nj=e=>{var t=(0,I.useContext)($A);if(t!=null){var n=t.stackId;return`url(#${tj(n,e)})`}},rj=e=>{var t=e.index,n=ZA(e,YA),r=nj(t);return I.createElement(pa,XA({className:`recharts-bar-stack-layer`,clipPath:r},n))},ij=[`onMouseEnter`,`onMouseLeave`,`onClick`],aj=[`value`,`background`,`tooltipPosition`],oj=[`id`],sj=[`onMouseEnter`,`onClick`,`onMouseLeave`];function cj(e,t){return pj(e)||fj(e,t)||uj(e,t)||lj()}function lj(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
57
57
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function uj(e,t){if(e){if(typeof e==`string`)return dj(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)?dj(e,t):void 0}}function dj(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 fj(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 pj(e){if(Array.isArray(e))return e}function mj(){return mj=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},mj.apply(null,arguments)}function hj(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 gj(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?hj(Object(n),!0).forEach(function(t){_j(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hj(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _j(e,t,n){return(t=vj(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vj(e){var t=yj(e,`string`);return typeof t==`symbol`?t:t+``}function yj(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 bj(e,t){if(e==null)return{};var n,r,i=xj(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 xj(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 Sj=e=>{var t=e.dataKey,n=e.name,r=e.fill,i=e.legendType;return[{inactive:e.hide,dataKey:t,type:i,color:r,value:Jl(n,t),payload:e}]},Cj=I.memo(e=>{var t=e.dataKey,n=e.stroke,r=e.strokeWidth,i=e.fill,a=e.name,o=e.hide,s=e.unit,c=e.formatter,l=e.tooltipType,u=e.id,d={dataDefinedOnItem:void 0,getPosition:Aa,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:Jl(a,t),hide:o,type:l,color:i,unit:s,formatter:c,graphicalItemId:u}};return I.createElement(Yw,{tooltipEntrySettings:d})});function wj(e){var t=H(fb),n=e.data,r=e.dataKey,i=e.background,a=e.allOtherBarProps,o=a.onMouseEnter,s=a.onMouseLeave,c=a.onClick,l=bj(a,ij),u=Kw(o,r,a.id),d=qw(s),f=Jw(c,r,a.id);if(!i||n==null)return null;var p=ta(i);return I.createElement(gx,{zIndex:LE(i,X.barBackground)},n.map((e,n)=>{e.value;var a=e.background;e.tooltipPosition;var o=bj(e,aj);if(!a)return null;var s=u(e,e.originalDataIndex),c=d(e,e.originalDataIndex),m=f(e,e.originalDataIndex),h=gj(gj(gj(gj(gj({option:i,isActive:String(e.originalDataIndex)===t},o),{},{fill:`#eee`},a),p),Ya(l,e,n)),{},{onMouseEnter:s,onMouseLeave:c,onClick:m,dataKey:r,index:n,className:`recharts-bar-background-rectangle`});return I.createElement(LA,mj({key:`background-bar-${n}`},h))}))}function Tj(e){var t=e.showLabels,n=e.children,r=e.rects?.map(e=>{var t={x:e.x,y:e.y,width:e.width,lowerWidth:e.width,upperWidth:e.width,height:e.height};return gj(gj({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return I.createElement(hw,{value:t?r:void 0},n)}function Ej(e){var t=e.shape,n=e.activeBar,r=e.baseProps,i=e.entry,a=e.index,o=e.dataKey,s=H(fb),c=H(mb),l=n&&String(i.originalDataIndex)===s&&(c==null||o===c),u=cj((0,I.useState)(!1),2),d=u[0],f=u[1],p=cj((0,I.useState)(!1),2),m=p[0],h=p[1];(0,I.useEffect)(()=>{var e;return l?(f(!0),e=requestAnimationFrame(()=>{h(!0)})):h(!1),()=>{cancelAnimationFrame(e)}},[l]);var g=(0,I.useCallback)(()=>{l||f(!1)},[l]),_=l&&m,v=l||d,y=l?n===!0?t:n:t,b=I.createElement(LA,mj({},r,{name:String(r.name)},i,{isActive:_,option:y,index:a,dataKey:o,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance,onTransitionEnd:g}));return v?I.createElement(gx,{zIndex:X.activeBar},I.createElement(rj,{index:i.originalDataIndex},b)):b}function Dj(e){var t=e.shape,n=e.baseProps,r=e.entry,i=e.index,a=e.dataKey;return I.createElement(LA,mj({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function Oj(e){var t=e.data,n=e.props,r=e.animationElapsedTime,i=e.isAnimating,a=e.isEntrance,o=ea(n)??{},s=o.id,c=bj(o,oj),l=n.shape,u=n.dataKey,d=n.activeBar,f=n.onMouseEnter,p=n.onClick,m=n.onMouseLeave,h=bj(n,sj),g=Kw(f,u,s),_=qw(m),v=Jw(p,u,s);return t?I.createElement(I.Fragment,null,t.map((e,t)=>I.createElement(rj,mj({index:e.originalDataIndex,key:`rectangle-${e?.x}-${e?.y}-${e?.value}-${t}`,className:`recharts-bar-rectangle`},Ya(h,e,t),{onMouseEnter:g(e,e.originalDataIndex),onMouseLeave:_(e,e.originalDataIndex),onClick:v(e,e.originalDataIndex)}),d?I.createElement(Ej,{shape:l,activeBar:d,baseProps:c,entry:e,index:t,dataKey:u,animationElapsedTime:r,isAnimating:i,isEntrance:a}):I.createElement(Dj,{shape:l,baseProps:c,entry:e,index:t,dataKey:u,animationElapsedTime:r,isAnimating:i,isEntrance:a})))):null}var kj=(e,t,n)=>e==null?[]:t===1?e.flatMap(e=>e.status===`removed`?[]:[e.next]):e.flatMap(e=>{if(e.status===`removed`)return n===`horizontal`?[gj(gj({},e.prev),{},{height:z(e.prev.height,0,t),y:z(e.prev.y,e.prev.y+e.prev.height,t)})]:[gj(gj({},e.prev),{},{width:z(e.prev.width,0,t)})];if(e.status===`matched`)return[gj(gj({},e.next),{},{x:z(e.prev.x,e.next.x,t),y:z(e.prev.y,e.next.y,t),width:z(e.prev.width,e.next.width,t),height:z(e.prev.height,e.next.height,t)})];var r=e.next;return n===`horizontal`?[gj(gj({},r),{},{height:z(0,r.height,t),y:z(r.stackedBarStart,r.y,t)})]:[gj(gj({},r),{},{width:z(0,r.width,t),x:z(r.stackedBarStart,r.x,t)})]});function Aj(e){var t=e.props,n=e.previousRectanglesRef,r=t.data,i=t.isAnimationActive,a=t.animationBegin,o=t.animationDuration,s=t.animationEasing,c=t.animationInterpolateFn,l=t.layout,u=vT(t.onAnimationStart,t.onAnimationEnd),d=u.isAnimating,f=u.handleAnimationStart,p=u.handleAnimationEnd;return I.createElement(Tj,{showLabels:!d,rects:r},I.createElement(yT,{animationInput:r,animationIdPrefix:`recharts-bar-`,items:r,previousItemsRef:n,isAnimationActive:i,animationBegin:a,animationDuration:o,animationEasing:s,onAnimationStart:f,onAnimationEnd:p,animationInterpolateFn:c,animationMatchBy:t.animationMatchBy,layout:l},(e,n,r)=>I.createElement(pa,null,I.createElement(Oj,{props:t,data:e,animationElapsedTime:n,isAnimating:d||n<1,isEntrance:r}))),I.createElement(bw,{label:t.label}),t.children)}function jj(e){var t=(0,I.useRef)(null);return I.createElement(Aj,{previousRectanglesRef:t,props:e})}var Mj=0,Nj=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:K(e,t)}},Pj=class extends I.PureComponent{render(){var e=this.props,t=e.hide,n=e.data,i=e.dataKey,a=e.className,o=e.xAxisId,s=e.yAxisId,c=e.needClip,l=e.background,u=e.id;if(t||n==null)return null;var d=r(`recharts-bar`,a),f=u;return I.createElement(pa,{className:d,id:u},c&&I.createElement(`defs`,null,I.createElement(nk,{clipPathId:f,xAxisId:o,yAxisId:s})),I.createElement(pa,{className:`recharts-bar-rectangles`,clipPath:c?`url(#clipPath-${f})`:void 0},I.createElement(wj,{data:n,dataKey:i,background:l,allOtherBarProps:this.props}),I.createElement(jj,this.props)))}},Fj={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:`ease`,animationInterpolateFn:kj,animationMatchBy:iT,background:!1,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`rect`,minPointSize:Mj,shape:IA,xAxisId:0,yAxisId:0,zIndex:X.bar};function Ij(e){var t=e.xAxisId,n=e.yAxisId,r=e.hide,i=e.legendType,a=e.minPointSize,o=e.activeBar,s=e.animationBegin,c=e.animationDuration,l=e.animationEasing,u=e.isAnimationActive,d=tk(t,n).needClip,f=rd(),p=q(),m=Nw(e.children,gS),h=H(t=>JA(t,e.id,p,m));if(f!==`vertical`&&f!==`horizontal`)return null;var g,_=h?.[0];return g=_==null||_.height==null||_.width==null?0:f===`vertical`?_.height/2:_.width/2,I.createElement(ek,{xAxisId:t,yAxisId:n,data:h,dataPointFormatter:Nj,errorBarOffset:g},I.createElement(Pj,mj({},e,{layout:f,needClip:d,data:h,xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u})))}function Lj(e){var t=e.layout,n=e.barSettings,r=n.dataKey,i=n.minPointSize,a=n.hasCustomShape,o=e.pos,s=e.bandSize,c=e.xAxis,l=e.yAxis,u=e.xAxisTicks,d=e.yAxisTicks,f=e.stackedData,p=e.displayedData,m=e.offset,h=e.cells,g=e.parentViewBox,_=e.dataStartIndex,v=t===`horizontal`?l:c,y=f?v.scale.domain():null,b=Bl({numericAxis:v}),x=v.scale.map(b);return p.map((e,n)=>{var p,v,S,C,w,T;if(f){var E=f[n+_];if(E==null)return null;p=Pl(E,y)}else p=K(e,r),Array.isArray(p)||(p=[b,p]);var D=RA(i,Mj)(p[1],n);if(t===`horizontal`){var O=l.scale.map(p[0]),k=l.scale.map(p[1]);if(O==null||k==null)return null;v=zl({axis:c,ticks:u,bandSize:s,offset:o.offset,entry:e,index:n}),S=k??O??void 0,C=o.size;var A=O-k;if(w=ba(A)?0:A,T={x:v,y:m.top,width:C,height:m.height},Math.abs(D)>0&&Math.abs(w)<Math.abs(D)){var j=ya(w||D)*(Math.abs(D)-Math.abs(w));S-=j,w+=j}}else{var M=c.scale.map(p[0]),N=c.scale.map(p[1]);if(M==null||N==null)return null;if(v=M,S=zl({axis:l,ticks:d,bandSize:s,offset:o.offset,entry:e,index:n}),C=N-M,w=o.size,T={x:m.left,y:S,width:m.width,height:w},Math.abs(D)>0&&Math.abs(C)<Math.abs(D)){var ee=ya(C||D)*(Math.abs(D)-Math.abs(C));C+=ee}}return v==null||S==null||C==null||w==null||!a&&(C===0||w===0)?null:gj(gj({},e),{},{stackedBarStart:x,x:v,y:S,width:C,height:w,value:f?p:p[1],payload:e,background:T,tooltipPosition:{x:v+C/2,y:S+w/2},parentViewBox:g,originalDataIndex:n},h&&h[n]&&h[n].props)}).filter(Boolean)}function Rj(e){var t=to(e,Fj),n=ej(t.stackId),r=q();return I.createElement(kT,{id:t.id,type:`bar`},e=>I.createElement(I.Fragment,null,I.createElement(Xw,{legendPayload:Sj(t)}),I.createElement(Cj,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:e}),I.createElement(IT,{type:`bar`,id:e,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r,hasCustomShape:t.shape!=null&&t.shape!==IA}),I.createElement(gx,{zIndex:t.zIndex},I.createElement(Ij,mj({},t,{id:e})))))}var zj=I.memo(Rj,vd);zj.displayName=`Bar`;var Bj=[`domain`,`range`],Vj=[`domain`,`range`];function Hj(e,t){if(e==null)return{};var n,r,i=Uj(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 Uj(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Wj(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function Gj(e,t){if(e===t)return!0;var n=e.domain,r=e.range,i=Hj(e,Bj),a=t.domain,o=t.range,s=Hj(t,Vj);return!Wj(n,a)||!Wj(r,o)?!1:vd(i,s)}var Kj=[`type`],qj=[`dangerouslySetInnerHTML`,`ticks`,`scale`],Jj=[`id`,`scale`];function Yj(){return Yj=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},Yj.apply(null,arguments)}function Xj(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 Zj(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Xj(Object(n),!0).forEach(function(t){Qj(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xj(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Qj(e,t,n){return(t=$j(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $j(e){var t=eM(e,`string`);return typeof t==`symbol`?t:t+``}function eM(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 tM(e,t){if(e==null)return{};var n,r,i=nM(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 nM(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function rM(e){var t=V(),n=(0,I.useRef)(null),r=id(),i=e.type,a=tM(e,Kj),o=Uh(r,`xAxis`,i),s=(0,I.useMemo)(()=>{if(o!=null)return Zj(Zj({},a),{},{type:o})},[a,o]);return(0,I.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(nE(s)):n.current!==s&&t(rE({prev:n.current,next:s})),n.current=s)},[s,t]),(0,I.useLayoutEffect)(()=>()=>{n.current&&=(t(iE(n.current)),null)},[t]),null}var iM=e=>{var t=e.xAxisId,n=e.className,i=H(gu),a=q(),o=`xAxis`,s=H(e=>Vv(e,o,t,a)),c=H(e=>kv(e,t)),l=H(e=>Pv(e,t)),u=H(e=>Vg(e,t));if(c==null||l==null||u==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var d=tM(e,qj);u.id,u.scale;var f=tM(u,Jj);return I.createElement(fO,Yj({},d,f,{x:l.x,y:l.y,width:c.width,height:c.height,className:r(`recharts-${o} ${o}`,n),viewBox:i,ticks:s,axisType:o,axisId:t}))},aM={allowDataOverflow:Bg.allowDataOverflow,allowDecimals:Bg.allowDecimals,allowDuplicatedCategory:Bg.allowDuplicatedCategory,angle:Bg.angle,axisLine:rO.axisLine,height:Bg.height,hide:!1,includeHidden:Bg.includeHidden,interval:Bg.interval,label:!1,minTickGap:Bg.minTickGap,mirror:Bg.mirror,orientation:Bg.orientation,padding:Bg.padding,reversed:Bg.reversed,scale:Bg.scale,tick:Bg.tick,tickCount:Bg.tickCount,tickLine:rO.tickLine,tickSize:rO.tickSize,type:Bg.type,niceTicks:Bg.niceTicks,xAxisId:0},oM=I.memo(e=>{var t=to(e,aM);return I.createElement(I.Fragment,null,I.createElement(rM,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),I.createElement(iM,t))},Gj);oM.displayName=`XAxis`;var sM=[`type`],cM=[`dangerouslySetInnerHTML`,`ticks`,`scale`],lM=[`id`,`scale`];function uM(){return uM=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},uM.apply(null,arguments)}function dM(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 fM(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?dM(Object(n),!0).forEach(function(t){pM(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dM(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function pM(e,t,n){return(t=mM(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mM(e){var t=hM(e,`string`);return typeof t==`symbol`?t:t+``}function hM(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 gM(e,t){if(e==null)return{};var n,r,i=_M(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 _M(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function vM(e){var t=V(),n=(0,I.useRef)(null),r=id(),i=e.type,a=gM(e,sM),o=Uh(r,`yAxis`,i),s=(0,I.useMemo)(()=>{if(o!=null)return fM(fM({},a),{},{type:o})},[o,a]);return(0,I.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(aE(s)):n.current!==s&&t(oE({prev:n.current,next:s})),n.current=s)},[s,t]),(0,I.useLayoutEffect)(()=>()=>{n.current&&=(t(sE(n.current)),null)},[t]),null}function yM(e){var t=e.yAxisId,n=e.className,i=e.width,a=e.label,o=(0,I.useRef)(null),s=(0,I.useRef)(null),c=H(gu),l=q(),u=V(),d=`yAxis`,f=H(e=>Iv(e,t)),p=H(e=>Fv(e,t)),m=H(e=>Vv(e,d,t,l)),h=H(e=>Wg(e,t));if((0,I.useLayoutEffect)(()=>{if(!(i!==`auto`||!f||QC(a)||(0,I.isValidElement)(a)||h==null)){var e=o.current;if(e){var n=e.getCalculatedWidth();Math.round(f.width)!==Math.round(n)&&u(cE({id:t,width:n}))}}},[m,f,u,a,t,i,h]),f==null||p==null||h==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var g=gM(e,cM);h.id,h.scale;var _=gM(h,lM);return I.createElement(fO,uM({},g,_,{ref:o,labelRef:s,x:p.x,y:p.y,tickTextProps:i===`auto`?{width:void 0}:{width:i},width:f.width,height:f.height,className:r(`recharts-${d} ${d}`,n),viewBox:c,ticks:m,axisType:d,axisId:t}))}var bM={allowDataOverflow:Ug.allowDataOverflow,allowDecimals:Ug.allowDecimals,allowDuplicatedCategory:Ug.allowDuplicatedCategory,angle:Ug.angle,axisLine:rO.axisLine,hide:!1,includeHidden:Ug.includeHidden,interval:Ug.interval,label:!1,minTickGap:Ug.minTickGap,mirror:Ug.mirror,orientation:Ug.orientation,padding:Ug.padding,reversed:Ug.reversed,scale:Ug.scale,tick:Ug.tick,tickCount:Ug.tickCount,tickLine:rO.tickLine,tickSize:rO.tickSize,type:Ug.type,niceTicks:Ug.niceTicks,width:Ug.width,yAxisId:0},xM=I.memo(e=>{var t=to(e,bM);return I.createElement(I.Fragment,null,I.createElement(vM,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),I.createElement(yM,t))},Gj);xM.displayName=`YAxis`;var SM=F([(e,t)=>t,J,ag,mg,ab,sb,Bb,mu],Qb);function CM(e){return`getBBox`in e.currentTarget&&typeof e.currentTarget.getBBox==`function`}function wM(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if(CM(e)){var i=e.currentTarget.getBBox();n=i.width>0?t.width/i.width:1,r=i.height>0?t.height/i.height:1}else{var a=e.currentTarget;n=a.offsetWidth>0?t.width/a.offsetWidth:1,r=a.offsetHeight>0?t.height/a.offsetHeight:1}var o=(e,i)=>({relativeX:Math.round((e-t.left)/n),relativeY:Math.round((i-t.top)/r)});return`touches`in e?Array.from(e.touches).map(e=>o(e.clientX,e.clientY)):o(e.clientX,e.clientY)}var TM=sc(`mouseClick`),EM=ml();EM.startListening({actionCreator:TM,effect:(e,t)=>{var n=e.payload,r=SM(t.getState(),wM(n));r?.activeIndex!=null&&t.dispatch(uy({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var DM=sc(`mouseMove`),OM=ml(),kM=null,AM=null,jM=null;OM.startListening({actionCreator:DM,effect:(e,t)=>{var n=e.payload,r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a?.includes(`mousemove`);kM!==null&&(cancelAnimationFrame(kM),kM=null),AM!==null&&(typeof i!=`number`||!o)&&(clearTimeout(AM),AM=null),jM=wM(n);var s=()=>{var e=t.getState(),n=Jv(e,e.tooltip.settings.shared);if(!jM){kM=null,AM=null;return}if(n===`axis`){var r=SM(e,jM);r?.activeIndex==null?t.dispatch(sy()):t.dispatch(ly({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}kM=null,AM=null};if(!o){s();return}i===`raf`?kM=requestAnimationFrame(s):typeof i==`number`&&AM===null&&(AM=setTimeout(s,i))}});function MM(e,t){return t instanceof HTMLElement?`HTMLElement <${t.tagName} class="${t.className}">`:t===window?`global.window`:e===`children`&&typeof t==`object`&&t?`<<CHILDREN>>`:t}var NM={accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:`none`,syncId:void 0,syncMethod:`index`,baseValue:void 0,reverseStackOrder:!1},PM=Oc({name:`rootProps`,initialState:NM,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??NM.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),FM=PM.reducer,IM=PM.actions.updateOptions,LM=Oc({name:`polarOptions`,initialState:null,reducers:{updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)}});LM.actions.updatePolarOptions;var RM=LM.reducer,zM=sc(`keyDown`),BM=sc(`focus`),VM=sc(`blur`),HM=ml(),UM=null,WM=null,GM=null;HM.startListening({actionCreator:zM,effect:(e,t)=>{GM=e.payload,UM!==null&&(cancelAnimationFrame(UM),UM=null);var n=t.getState().eventSettings,r=n.throttleDelay,i=n.throttledEvents,a=i===`all`||i.includes(`keydown`);WM!==null&&(typeof r!=`number`||!a)&&(clearTimeout(WM),WM=null);var o=()=>{try{var e=t.getState();if(e.rootProps.accessibilityLayer===!1)return;var n=e.tooltip.keyboardInteraction,r=GM;if(r!==`ArrowRight`&&r!==`ArrowLeft`&&r!==`Enter`)return;var i=Ty(n,qy(e),x_(e),nb(e)),a=i==null?-1:Number(i),o=!Number.isFinite(a)||a<0,s=sb(e),c=qy(e),l=Jv(e,e.tooltip.settings.shared);if(r===`Enter`){if(o)return;var u=Gb(e,l,`hover`,String(n.index));t.dispatch(fy({active:!n.active,activeIndex:n.index,activeCoordinate:u}));return}var d=Wv(e)===`left-to-right`?1:-1,f=r===`ArrowRight`?1:-1,p;if(o){var m=x_(e),h=nb(e),g=f*d,_=e=>({active:!1,index:String(e),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(p=-1,g>0){for(var v=0;v<c.length;v++)if(Ty(_(v),c,m,h)!=null){p=v;break}}else for(var y=c.length-1;y>=0;y--)if(Ty(_(y),c,m,h)!=null){p=y;break}if(p<0)return}else{p=a+f*d;var b=s?.length||c.length;if(b===0||p>=b||p<0)return}var x=Gb(e,l,`hover`,String(p));t.dispatch(fy({active:!0,activeIndex:p.toString(),activeCoordinate:x}))}finally{UM=null,WM=null}};if(!a){o();return}r===`raf`?UM=requestAnimationFrame(o):typeof r==`number`&&WM===null&&(o(),GM=null,WM=setTimeout(()=>{GM?o():(WM=null,UM=null)},r))}}),HM.startListening({actionCreator:BM,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;if(!r.active&&r.index==null){var i=`0`,a=Gb(n,Jv(n,n.tooltip.settings.shared),`hover`,String(i));t.dispatch(fy({active:!0,activeIndex:i,activeCoordinate:a}))}}}}),HM.startListening({actionCreator:VM,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;r.active&&t.dispatch(fy({active:!1,activeIndex:r.index,activeCoordinate:r.coordinate}))}}});function KM(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(e,n)=>{if(n===`currentTarget`)return t;var r=Reflect.get(e,n);return typeof r==`function`?r.bind(e):r}})}var qM=sc(`externalEvent`),JM=ml(),YM=new Map,XM=new Map,ZM=new Map;JM.startListening({actionCreator:qM,effect:(e,t)=>{var n=e.payload,r=n.handler,i=n.reactEvent;if(r!=null){var a=i.type,o=KM(i);ZM.set(a,{handler:r,reactEvent:o});var s=YM.get(a);s!==void 0&&(cancelAnimationFrame(s),YM.delete(a));var c=t.getState().eventSettings,l=c.throttleDelay,u=c.throttledEvents,d=u===`all`||u?.includes(a),f=XM.get(a);f!==void 0&&(typeof l!=`number`||!d)&&(clearTimeout(f),XM.delete(a));var p=()=>{var e=ZM.get(a);try{if(!e)return;var n=e.handler,r=e.reactEvent,i=t.getState(),o={activeCoordinate:_b(i),activeDataKey:mb(i),activeIndex:fb(i),activeLabel:pb(i),activeTooltipIndex:fb(i),isTooltipActive:vb(i)};n&&n(o,r)}finally{YM.delete(a),XM.delete(a),ZM.delete(a)}};if(!d){p();return}if(l===`raf`){var m=requestAnimationFrame(p);YM.set(a,m)}else if(typeof l==`number`){if(!XM.has(a)){p();var h=setTimeout(p,l);XM.set(a,h)}}else p()}}});var QM=F([F([ky],e=>e.tooltipItemPayloads),(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(e=>e.settings.graphicalItemId===n);if(r!=null){var i=r.getPosition;if(i!=null)return i(t)}}}),$M=sc(`touchMove`),eN=ml(),tN=null,nN=null,rN=null,iN=null;eN.startListening({actionCreator:$M,effect:(e,t)=>{var n=e.payload;if(!(n.touches==null||n.touches.length===0)){iN=KM(n);var r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a.includes(`touchmove`);tN!==null&&(cancelAnimationFrame(tN),tN=null),nN!==null&&(typeof i!=`number`||!o)&&(clearTimeout(nN),nN=null),rN=Array.from(n.touches).map(e=>wM({clientX:e.clientX,clientY:e.clientY,currentTarget:n.currentTarget}));var s=()=>{if(iN!=null){var e=t.getState(),n=Jv(e,e.tooltip.settings.shared);if(n===`axis`){var r=rN?.[0];if(r==null){tN=null,nN=null;return}var i=SM(e,r);i?.activeIndex!=null&&t.dispatch(ly({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if(n===`item`){var a=iN.touches[0];if(document.elementFromPoint==null||a==null)return;var o=document.elementFromPoint(a.clientX,a.clientY);if(!o||!o.getAttribute)return;var s=o.getAttribute(ru),c=o.getAttribute(`data-recharts-item-id`)??void 0,l=Uy(e).find(e=>e.id===c);if(s==null||l==null||c==null)return;var u=l.dataKey,d=QM(e,s,c);t.dispatch(ay({activeDataKey:u,activeIndex:s,activeCoordinate:d,activeGraphicalItemId:c}))}tN=null,nN=null}};if(!o){s();return}i===`raf`?tN=requestAnimationFrame(s):typeof i==`number`&&nN===null&&(s(),iN=null,nN=setTimeout(()=>{iN?s():(nN=null,tN=null)},i))}}});var aN={throttleDelay:`raf`,throttledEvents:[`mousemove`,`touchmove`,`pointermove`,`scroll`,`wheel`]},oN=Oc({name:`eventSettings`,initialState:aN,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=U(t.payload.throttledEvents))}}}),sN=oN.actions.setEventSettings,cN=oN.reducer,lN=Xt({brush:VE,cartesianAxis:lE,chartData:Vx,errorBars:YO,eventSettings:cN,graphicalItems:FT,layout:Sl,legend:hd,options:Px,polarAxis:Tw,polarOptions:RM,referenceElements:XE,renderedTicks:HD,rootProps:FM,tooltip:py,zIndex:hx}),uN=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return vc({reducer:lN,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([EM.middleware,OM.middleware,HM.middleware,JM.middleware,eN.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(gc({type:`raf`}))},devTools:pf.devToolsEnabled&&{serialize:{replacer:MM},name:`recharts-${t}`}})};function dN(e){var t=e.preloadedState,n=e.children,r=e.reduxStoreName,i=q(),a=(0,I.useRef)(null);if(i)return n;a.current??=uN(t,r);var o=go;return I.createElement(Zt,{context:o,store:a.current},n)}function fN(e){var t=e.layout,n=e.margin,r=V(),i=q();return(0,I.useEffect)(()=>{i||(r(yl(t)),r(vl(n)))},[r,i,t,n]),null}var pN=(0,I.memo)(fN,vd);function mN(e){var t=V();return(0,I.useEffect)(()=>{t(IM(e))},[t,e]),null}var hN=(0,I.memo)(e=>{var t=V();return(0,I.useEffect)(()=>{t(sN(e))},[t,e]),null},vd);function gN(e){var t=e.zIndex,n=e.isPanorama,r=(0,I.useRef)(null),i=V();return(0,I.useLayoutEffect)(()=>(r.current&&i(px({zIndex:t,element:r.current,isPanorama:n})),()=>{i(mx({zIndex:t,isPanorama:n}))}),[i,t,n]),I.createElement(`g`,{tabIndex:-1,ref:r,className:`recharts-zIndex-layer_${t}`})}function _N(e){var t=e.children,n=e.isPanorama,r=H(ex);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),a=r.filter(e=>e>0);return I.createElement(I.Fragment,null,i.map(e=>I.createElement(gN,{key:e,zIndex:e,isPanorama:n})),t,a.map(e=>I.createElement(gN,{key:e,zIndex:e,isPanorama:n})))}var vN=[`children`];function yN(e,t){if(e==null)return{};var n,r,i=bN(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 bN(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function xN(){return xN=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},xN.apply(null,arguments)}var SN={width:`100%`,height:`100%`,display:`block`},CN=(0,I.forwardRef)((e,t)=>{var n=ed(),r=td(),i=Ff();if(!wl(n)||!wl(r))return null;var a=e.children,o=e.otherAttributes,s=e.title,c=e.desc,l,u;return o!=null&&(l=typeof o.tabIndex==`number`?o.tabIndex:i?0:void 0,u=typeof o.role==`string`?o.role:i?`application`:void 0),I.createElement(ca,xN({},o,{title:s,desc:c,role:u,tabIndex:l,width:n,height:r,style:SN,ref:t}),a)}),wN=e=>{var t=e.children,n=H(yu);if(!n)return null;var r=n.width,i=n.height,a=n.y,o=n.x;return I.createElement(ca,{width:r,height:i,x:o,y:a},t)},TN=(0,I.forwardRef)((e,t)=>{var n=e.children,r=yN(e,vN);return q()?I.createElement(wN,null,I.createElement(_N,{isPanorama:!0},n)):I.createElement(CN,xN({ref:t},r),I.createElement(_N,{isPanorama:!1},n))});function EN(e,t){return jN(e)||AN(e,t)||ON(e,t)||DN()}function DN(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
58
58
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ON(e,t){if(e){if(typeof e==`string`)return kN(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)?kN(e,t):void 0}}function kN(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 AN(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 jN(e){if(Array.isArray(e))return e}function MN(){var e=V(),t=EN((0,I.useState)(null),2),n=t[0],r=t[1],i=H($l);return(0,I.useEffect)(()=>{if(n!=null){var t=n.getBoundingClientRect().width/n.offsetWidth;G(t)&&t!==i&&e(xl(t))}},[n,e,i]),r}function NN(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 PN(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?NN(Object(n),!0).forEach(function(t){FN(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):NN(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function FN(e,t,n){return(t=IN(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function IN(e){var t=LN(e,`string`);return typeof t==`symbol`?t:t+``}function LN(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 RN(){return RN=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},RN.apply(null,arguments)}function zN(e,t){return WN(e)||UN(e,t)||VN(e,t)||BN()}function BN(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
59
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function VN(e,t){if(e){if(typeof e==`string`)return HN(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)?HN(e,t):void 0}}function HN(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 UN(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 WN(e){if(Array.isArray(e))return e}var GN=()=>(Qx(),null);function KN(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var qN=(0,I.forwardRef)((e,t)=>{var n=(0,I.useRef)(null),r=zN((0,I.useState)({containerWidth:KN(e.style?.width),containerHeight:KN(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(sd,{width:i.containerWidth,height:i.containerHeight}),I.createElement(`div`,RN({ref:s},e)))}),JN=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=zN((0,I.useState)({containerWidth:KN(n),containerHeight:KN(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(sd,{width:a.containerWidth,height:a.containerHeight}),I.createElement(`div`,RN({ref:c},e)))}),YN=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height;return I.createElement(I.Fragment,null,I.createElement(sd,{width:n,height:r}),I.createElement(`div`,RN({ref:t},e)))}),XN=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?I.createElement(JN,RN({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?I.createElement(YN,RN({},e,{width:n,height:r,ref:t})):I.createElement(I.Fragment,null,I.createElement(sd,{width:n,height:r}),I.createElement(`div`,RN({ref:t},e)))});function ZN(e){return e?qN:XN}var QN=(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=zN((0,I.useState)(null),2),T=w[0],E=w[1],D=zN((0,I.useState)(null),2),O=D[0],k=D[1],A=MN(),j=qu(),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(TM(e)),C(qM({handler:o,reactEvent:e}))},[C,o]),ne=(0,I.useCallback)(e=>{C(DM(e)),C(qM({handler:u,reactEvent:e}))},[C,u]),re=(0,I.useCallback)(e=>{C(sy()),C(qM({handler:d,reactEvent:e}))},[C,d]),ie=(0,I.useCallback)(e=>{C(DM(e)),C(qM({handler:f,reactEvent:e}))},[C,f]),ae=(0,I.useCallback)(()=>{C(BM())},[C]),oe=(0,I.useCallback)(()=>{C(VM())},[C]),se=(0,I.useCallback)(e=>{C(zM(e.key))},[C]),ce=(0,I.useCallback)(e=>{C(qM({handler:s,reactEvent:e}))},[C,s]),le=(0,I.useCallback)(e=>{C(qM({handler:c,reactEvent:e}))},[C,c]),ue=(0,I.useCallback)(e=>{C(qM({handler:l,reactEvent:e}))},[C,l]),de=(0,I.useCallback)(e=>{C(qM({handler:p,reactEvent:e}))},[C,p]),fe=(0,I.useCallback)(e=>{C(qM({handler:g,reactEvent:e}))},[C,g]),pe=(0,I.useCallback)(e=>{x&&C($M(e)),C(qM({handler:h,reactEvent:e}))},[C,x,h]),me=(0,I.useCallback)(e=>{C(qM({handler:m,reactEvent:e}))},[C,m]),he=ZN(y);return I.createElement(Ex.Provider,{value:T},I.createElement(ma.Provider,{value:O},I.createElement(he,{width:M??_?.width,height:N??_?.height,className:r(`recharts-wrapper`,i),style:PN({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(GN,null),n)))}),$N=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function eP(e,t){if(e==null)return{};var n,r,i=tP(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 tP(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 nP=(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=ea(eP(e,$N));return c?I.createElement(I.Fragment,null,I.createElement(sd,{width:n,height:r}),I.createElement(TN,{otherAttributes:d,title:l,desc:u},a)):I.createElement(QN,{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(TN,{otherAttributes:d,title:l,desc:u,ref:t},I.createElement(iD,null,a)))});function rP(){return rP=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},rP.apply(null,arguments)}function iP(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 aP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?iP(Object(n),!0).forEach(function(t){oP(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):iP(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function oP(e,t,n){return(t=sP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function sP(e){var t=cP(e,`string`);return typeof t==`symbol`?t:t+``}function cP(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 lP=aP({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`},aN),uP=(0,I.forwardRef)(function(e,t){var n=to(e.categoricalChartProps,lP),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(dN,{preloadedState:{options:c},reduxStoreName:s.id??r},I.createElement(RE,{chartData:s.data}),I.createElement(pN,{layout:n.layout,margin:n.margin}),I.createElement(hN,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),I.createElement(mN,{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(nP,rP({},n,{ref:t})))}),dP=[`axis`],fP=(0,I.forwardRef)((e,t)=>I.createElement(uP,{chartName:`LineChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:dP,tooltipPayloadSearcher:Mx,categoricalChartProps:e,ref:t})),pP=[`axis`,`item`],mP=(0,I.forwardRef)((e,t)=>I.createElement(uP,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:pP,tooltipPayloadSearcher:Mx,categoricalChartProps:e,ref:t})),hP=[`axis`],gP=(0,I.forwardRef)((e,t)=>I.createElement(uP,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:hP,tooltipPayloadSearcher:Mx,categoricalChartProps:e,ref:t}));function _P(){return{axisColor:`var(--chart-axis, #6b7280)`,gridColor:`var(--chart-grid, #e5e7eb)`}}var vP=new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}),yP=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 bP(e){return vP.format(new Date(e))}function xP(e){return yP.format(new Date(e))}var SP={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},CP={color:`var(--chart-tooltip-fg)`,opacity:.7,marginBottom:4,fontSize:11},wP={color:`var(--chart-tooltip-fg)`};function TP(){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 EP(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function DP({active:e,payload:t,label:n,formatter:r,unitSuffix:i,resolveEntryFormat:a,nodeNames:o,showTotal:s,hidden:c}){let l=(0,I.useMemo)(()=>[...Vi(o??[]).entries()].filter(([e,t])=>t!==e).sort((e,t)=>t[0].length-e[0].length).map(([e,t])=>({re:RegExp(`(?<![\\w.-])${EP(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:SP,children:[(0,L.jsx)(`div`,{style:CP,children:n===void 0?``:xP(Number(n))}),t.map((e,t)=>{let n=d(e);return(0,L.jsxs)(`div`,{style:{...wP,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:Se(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:Se(p,m,i)})]}):null]})}function OP(e){return!!e&&typeof e==`object`&&`left`in e}function kP(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 AP({data:e,yAxis:t,height:n=240,ariaLabel:r,hideLegend:i,xDomain:a,fillParent:o}){let s=wi(!!o),{hovered:c,gateProps:l}=TP(),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=OP(t),f=d?t.left:t,p=d?t.right:void 0,m=_P();return(0,L.jsx)(`div`,{role:`img`,"aria-label":r??kP(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)(Yu,{width:`100%`,height:`100%`,children:(0,L.jsxs)(fP,{margin:{top:12,right:12,bottom:8,left:8},...s,children:[(0,L.jsx)(PO,{stroke:m.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(oM,{dataKey:`x`,type:`number`,domain:a??[`dataMin`,`dataMax`],allowDataOverflow:!!a,allowDuplicatedCategory:!1,tickFormatter:bP,stroke:m.axisColor,tick:{fontSize:11}}),(0,L.jsx)(xM,{yAxisId:`left`,tickFormatter:e=>Se(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)(xM,{yAxisId:`right`,orientation:`right`,tickFormatter:e=>Se(e,p.formatter,p.unit),scale:p.scale??`linear`,domain:p.domain,stroke:m.axisColor,tick:{fontSize:11},width:70}):null,(0,L.jsx)(hS,{isAnimationActive:!1,content:(0,L.jsx)(DP,{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)(Ud,{}),e.thresholds?.map((e,t)=>{let n=Se(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)(xD,{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)(Rk,{data:e.points,type:`monotone`,dataKey:`y`,name:e.label,yAxisId:e.axis===`right`?`right`:`left`,stroke:e.color??Ri[t%Ri.length],strokeWidth:2,strokeOpacity:e.opacity??1,dot:n?{r:2}:!1,connectNulls:!1},e.key)})]})})})})}function jP(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 MP(r,.5);case`p95`:return MP(r,.95);case`p99`:return MP(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 MP(e,t){let n=[...e].sort((e,t)=>e-t);return n[Math.max(1,Math.ceil(t*n.length))-1]}function NP(e){return e===`count-weighted-mean`}function PP(e,t){return NP(t)?e.endsWith(`(approx)`)?e:`${e} (approx)`:e}function FP(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 IP(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=IP(e.left,t),r=IP(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 LP={"percent-of-core":e=>e*100};function RP(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=RP(t,r,n),r===null)return null;return r}case`named`:{let n=LP[e.name];if(!n)throw Error(`unknown named transform: ${e.name}`);return n(t)}default:throw Error(`unknown transform kind: ${e.kind}`)}}function zP(e,t){return`${e}|${t}`}function $(e,t,n,r,i){return e.series.kind===`field`?KP(e,e.series.fields,t,i?.perNode??!1,i?.snapToPeriod??!1):GP(e,e.series,t,i?.perNode??!1,i?.snapToPeriod??!1)}function BP(e,t,n){let r=VP(e,t);return Math.round(n/r)*r}function VP(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 HP(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 UP(e,t,n){let r=0,i,a=n.map(e=>{let n=HP(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 WP(e,t,n){let r=typeof t.field==`string`?typeof n[t.field]==`number`?n[t.field]:null:IP(t.field,n);return RP(t.transform??{kind:`raw`},r,VP(e,n))}function GP(e,t,n,r,i){let a=new Map,o=new Map,s=UP(`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=WP(e,t.field,c);if(u===null)continue;let d=s[r];if(d===null)continue;let f=i?BP(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(FP(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=jP(c,n.items);e.push({x:t,y:i,count:n.totalCount})}h.push({key:zP(String(n),t),label:PP(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}=qP(c,l,o.get(n));e.push({x:n,y:t,count:r})}h.push({key:String(n),label:PP(String(n),c),dim:String(n),...s?{node:String(n)}:{},points:e,approx:u})}}if(t.otherBucket&&m.length>0)if(FP(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}=qP(c,l,e.get(r));t.push({x:r,y:n,count:i})}h.push({key:`Other`,label:PP(`Other`,c),dim:`Other`,points:t,approx:u})}else g++;return{series:h,thresholds:e.thresholds,...g>0?{suppressedSeriesCount:g}:{}}}function KP(e,t,n,r,i){let a=UP(`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=WP(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?BP(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=jP(s,n.items);e.push({x:t,y:r,count:n.totalCount})}n.push({key:zP(u,r),label:PP(`${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}=qP(s,c,o.get(e));d.push({x:e,y:t,count:n})}return[{key:u,label:PP(t.label,s),dim:u,axis:t.axis,points:d,approx:l}]}).flat(),thresholds:e.thresholds}}function qP(e,t,n){let r=[],i=0;for(let[,t]of n){let n=jP(e,t.items);typeof n==`number`&&Number.isFinite(n)&&r.push({value:n,count:t.totalCount}),i+=t.totalCount}return{y:jP(t,r),count:i}}var JP=`pathMethod`,YP=` · `,XP={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:JP,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 ZP(e,t){return typeof e!=`string`&&typeof e!=`number`||typeof t!=`string`&&typeof t!=`number`?null:`${e}${YP}${t}`}function QP(e){let t=[],n=new Map;for(let r of e){let{path:e,method:i}=r,a=ZP(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,[JP]:a,ratio:c?null:r.ratio})}return{records:t,dimParts:n}}function $P({records:e,timeRange:t,nodes:n,viewMode:r=`per-node`,fillParent:i}){let a=r===`per-node`,{records:o,dimParts:s}=(0,I.useMemo)(()=>QP(e),[e]),c=(0,I.useMemo)(()=>$(XP,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}=Gi((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)(Ji,{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)(AP,{data:m,yAxis:XP.yAxis,xDomain:[t.startTime,t.endTime],fillParent:i,hideLegend:a})}),a&&n.length>0&&(0,L.jsx)(Hi,{nodeIds:n,isActive:h,onClickNode:g})]})}function eF(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 tF={id:`error-rate`,title:`Error rate (≥1000 req)`,subtitle:`errored-request fraction — 1 − Σtotal/Σcount`,tab:`requests`,sourceMetric:`success`,recompute:eF,primitive:`line`,yAxis:{unit:``,formatter:`percent`}},nF=[`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 rF(e,t){let n=[...t].sort().indexOf(e);return nF[(n<0?0:n)%nF.length]}function iF({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}=Wi(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??zi(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)(AP,{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)(Hi,{nodeIds:a,isActive:o,onClickNode:s})]})}function aF(){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 oF(e){return[...e].sort((e,t)=>sF(t)-sF(e))}function sF(e){return e.points.reduce((e,t)=>e+(typeof t.y==`number`?t.y:0),0)}function cF(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 lF({data:e,yAxis:t,height:n=240,ariaLabel:r,xDomain:i,fillParent:a,lineOnly:o}){let s=(0,I.useMemo)(()=>oF(e.series),[e.series]),c=aF(),l=wi(!!a),{hovered:u,gateProps:d}=TP(),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=_P(),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??cF(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)(Yu,{width:`100%`,height:`100%`,children:(0,L.jsxs)(gP,{data:y,...l,children:[(0,L.jsx)(PO,{stroke:p.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(oM,{dataKey:`x`,type:`number`,domain:i??[`dataMin`,`dataMax`],allowDataOverflow:!!i,tickFormatter:bP,stroke:p.axisColor,tick:{fontSize:11}}),(0,L.jsx)(xM,{tickFormatter:e=>Se(e,b,x),stroke:p.axisColor,tick:{fontSize:11},width:70}),(0,L.jsx)(hS,{isAnimationActive:!1,content:(0,L.jsx)(DP,{hidden:!u,formatter:b,unitSuffix:x,nodeNames:f,showTotal:!0})}),(0,L.jsx)(Ud,{}),s.map((e,t)=>(0,L.jsx)(AA,{type:`monotone`,dataKey:e.key,name:e.label,stackId:`1`,stroke:e.color??Ri[t%Ri.length],strokeWidth:o?2:1,fill:o?`none`:e.color??Ri[t%Ri.length],fillOpacity:o?0:S,connectNulls:!1},e.key)),e.ceiling?(0,L.jsx)(Rk,{type:`monotone`,dataKey:`__ceiling__`,name:e.ceiling.label,stroke:p.axisColor,strokeWidth:2,strokeDasharray:`6 3`,dot:!1}):null]})})})})}function uF({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 dF({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}=Ui(l),{isActive:f,handleLegendClick:p}=Wi(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`?zi(e.key,i):rF(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??rF(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)(uF,{values:l,isActive:u,onClick:d,colorFor:e=>rF(e,l),ariaLabel:t===`type`?`Traffic type`:t===`database`?`Database`:`Protocol`}),S&&(0,L.jsx)(mF,{stackBy:s,onChange:c}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:s===`grid`&&x?(0,L.jsx)(iF,{panels:x,xDomain:C,fillParent:o}):(0,L.jsx)(lF,{data:b,yAxis:w,xDomain:C,fillParent:o,lineOnly:g})}),i.length>0&&(0,L.jsx)(Hi,{nodeIds:i,isActive:f,onClickNode:p})]})}var fF=[{value:`type`,label:`Type`},{value:`node`,label:`Node`},{value:`grid`,label:`Per-node grid`}],pF=fF.map(e=>e.value);function mF({stackBy:e,onChange:t}){let{getRadioProps:n}=Ki(pF,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:`}),fF.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 hF({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)(dF,{spec:o,typeField:`type`,...e}),primitive:`stacked-area`,yAxis:{unit:` msg/s`,formatter:`count-si`}}}var gF=hF({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.`}),_F=hF({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 vF({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}=Wi(n),_=(0,I.useMemo)(()=>({...m,thresholds:a??m.thresholds,series:m.series.map(e=>l?{...e,label:Bi(e.key),color:zi(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)(Ji,{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)(AP,{data:_,yAxis:i,xDomain:c,fillParent:s,hideLegend:l})}),l&&n.length>0&&(0,L.jsx)(Hi,{nodeIds:n,isActive:h,onClickNode:g})]})}function yF(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 bF(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 yF(n?e.filter(e=>e.path===n):e,{startTime:0,endTime:2**53-1},[])}var xF={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:yF,Renderer:({records:e,timeRange:t,nodes:n,viewMode:r})=>(0,L.jsx)(vF,{records:e,timeRange:t,nodes:n,viewMode:r,yAxis:{unit:`/s`,formatter:`count-si`},compute:bF}),primitive:`line`,yAxis:{unit:`/s`,formatter:`count-si`}};function SF(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 CF={"mqtt-traffic-sent":gF,"mqtt-traffic-received":_F,"request-rate":xF,"error-rate":tF,"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:SF,primitive:`line`,yAxis:{unit:`/s`,formatter:`bytes-si`}}},wF=[{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`}}],TF=wF.map(e=>e.key),EF={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:wF[0].field,label:wF[0].label}]},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`mean`,crossNode:`mean`},primitive:`line`,yAxis:wF[0].yAxis,layout:{colSpan:2}};function DF({records:e,timeRange:t,nodes:n,viewMode:r=`per-node`,fillParent:i}){let a=r===`per-node`,[o,s]=(0,I.useState)(wF[0].key),c=TF.includes(o)?o:wF[0].key,l=wF.find(e=>e.key===c),{data:u,isActive:d,handleLegendClick:f}=Gi((0,I.useMemo)(()=>$({...EF,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)(Ji,{dimensionValues:TF.map(e=>wF.find(t=>t.key===e).label),selected:l.label,onSelect:e=>{let t=wF.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)(AP,{data:u,yAxis:l.yAxis,xDomain:[t.startTime,t.endTime],fillParent:i,hideLegend:a})}),a&&n.length>0&&(0,L.jsx)(Hi,{nodeIds:n,isActive:d,onClickNode:f})]})}var OF=[{field:`heapUsed`,label:`heap used`},{field:`heapTotal`,label:`heap total`},{field:`external`,label:`external`},{field:`arrayBuffers`,label:`arrayBuffers`}],kF={title:`Process memory`,description:`Per-node V8 memory — chip selector picks the field. Default heap used.`,tab:`health`,primaryDimension:`node`,series:{kind:`field`,fields:[...OF]},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`last`,crossNode:`mean`},primitive:`line`,yAxis:{unit:` B`,formatter:`bytes-si`}},AF=OF.map(e=>e.label);function jF({records:e,timeRange:t,nodes:n,viewMode:r=`per-node`,fillParent:i}){let a=r===`per-node`,[o,s]=(0,I.useState)(OF[0].label),c=AF.includes(o)?o:OF[0].label,l=OF.find(e=>e.label===c),{data:u,isActive:d,handleLegendClick:f}=Gi((0,I.useMemo)(()=>$({...kF,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)(Ji,{dimensionValues:AF,selected:c,onSelect:s,ariaLabel:`Memory field`}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(AP,{data:u,yAxis:kF.yAxis,xDomain:[t.startTime,t.endTime],fillParent:i,hideLegend:a})}),a&&n.length>0&&(0,L.jsx)(Hi,{nodeIds:n,isActive:d,onClickNode:f})]})}function MF({source:e,target:t,open:n,onOpenChange:r,description:i,children:a}){return(0,L.jsx)(ne,{open:n,onOpenChange:r,children:(0,L.jsxs)(le,{className:`!max-w-[95vw] sm:!max-w-[95vw] h-[90vh] flex flex-col`,children:[(0,L.jsxs)(ae,{children:[(0,L.jsx)(re,{children:`${e} → ${t}`}),i&&(0,L.jsx)(ee,{children:i})]}),(0,L.jsx)(`div`,{className:`flex-1 min-h-0 overflow-hidden flex flex-col`,children:a})]})})}function NF(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 PF=NF(`--color-warning`,`#f59e0b`,12),FF=NF(`--color-info`,`#3b82f6`,10);function IF(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 LF=`var(--chart-heatmap-muted-bg, #f3f4f6)`,RF=`var(--chart-heatmap-muted-stroke, #9ca3af)`,zF=`var(--chart-heatmap-grey-stroke, #9ca3af)`,BF=[`#fef3c7`,`#fcd34d`,`#f59e0b`,`#dc2626`,`#7f1d1d`],VF=[`#713f12`,`#b45309`,`#d97706`,`#f59e0b`,`#fef3c7`];function HF(e){let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4}function UF(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*HF(n)+.7152*HF(r)+.0722*HF(i)}function WF(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 GF(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 KF(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]=WF(e[r]),[c,l,u]=WF(e[r+1]);return GF(a+(c-a)*i,o+(l-o)*i,s+(u-s)*i)}function qF(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 JF(e){return e===`ok`||e===`grey`}function YF(e,t){return e.length>t?e.slice(0,t-1)+`…`:e}function XF(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 ZF({stops:e,vmin:t,vmax:n,width:r,axis:i,approx:a,measureLabel:o}){let s=(0,I.useId)(),c=i?.unit??``,l=e=>Se(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 QF=40,$F=80,eI=4,tI=200,nI=11,rI=45,iI=7.2,aI=8,oI=6,sI=72;function cI(e){return e<56?8:20}function lI(e,t){let n=(e.reduce((e,n)=>Math.max(e,Math.min(n.length,cI(t))),0)*iI+nI)*Math.SQRT1_2;return Math.max(sI,Math.ceil(n)+aI+oI)}function uI({data:e,title:t,height:n,onCellSelect:r}){let i=(0,I.useId)(),a=(0,I.useId)(),o=(0,I.useId)(),s=aF(),c=e.confidence?.greyBelow??0,l=e.confidence?.suppressBelow??0,u=s===`dark`?VF:BF,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(Bi),[v]),b=(0,I.useRef)(null),[x,S]=(0,I.useState)($F),C=(0,I.useRef)(null);(0,I.useLayoutEffect)(()=>{let e=b.current?.clientWidth??0;S(IF(e,v.length,tI,eI,QF,$F))},[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(IF(t,v.length,tI,eI,QF,$F))})});return t.observe(e),()=>{t.disconnect(),C.current!==null&&cancelAnimationFrame(C.current)}},[v.length]);let w=v.length*x+(v.length-1)*eI,T=_.length*x+(_.length-1)*eI,E=lI(y,x),D=tI+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];JF(qF(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(`#`)?UF(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:PF,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:LF}),(0,L.jsx)(`line`,{x1:0,y1:0,x2:0,y2:8,stroke:RF,strokeWidth:2})]})}),(0,L.jsxs)(`g`,{role:`row`,children:[(0,L.jsx)(`rect`,{x:0,y:0,width:tI,height:E,fill:`transparent`,"aria-hidden":`true`}),v.map((e,t)=>{let n=tI+t*(x+eI)+x/2,r=E-oI,i=cI(x);return(0,L.jsx)(`g`,{role:`columnheader`,"aria-label":e,children:(0,L.jsxs)(`text`,{x:n,y:r,fontSize:nI,textAnchor:`end`,transform:`rotate(${rI}, ${n}, ${r})`,fill:`currentColor`,children:[YF(Bi(e),i),(0,L.jsx)(`title`,{children:e})]})},e)})]}),_.map((e,t)=>{let n=E+t*(x+eI);return(0,L.jsxs)(`g`,{role:`row`,children:[(0,L.jsx)(`g`,{role:`rowheader`,"aria-label":e,children:(0,L.jsxs)(`text`,{x:tI-8,y:n+x/2+4,fontSize:12,textAnchor:`end`,fill:`currentColor`,children:[YF(Bi(e),24),(0,L.jsx)(`title`,{children:e})]})}),v.map((i,a)=>{let s=m.get(`${e}|${i}`),_=qF(s,c,l),v=tI+a*(x+eI),y=n,b=XF(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=RF,D=1;else if(_===`suppress`)C=`url(#${o})`,w=`3 3`,E=RF,D=1;else{let e=g>h?((s?.value??0)-h)/(g-h):0;C=KF(u,e),_===`grey`&&(T=.55,w=`4 2`,E=zF,D=1)}let O=_===`ok`||_===`grey`?KF(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&&JF(_);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)(ZF,{stops:u,vmin:h,vmax:g,width:w,axis:e.axis,approx:d,measureLabel:p})})]})}var dI=new WeakMap;function fI(e){let t=dI.get(e);return t||(t=[...e].sort((e,t)=>t.length-e.length),dI.set(e,t)),t}function pI(e,t){if(typeof e!=`string`||e.length===0)return null;let n=fI(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 mI=[{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`}],hI={greyBelow:40,suppressBelow:100},gI={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:hI,primitive:`heatmap`,yAxis:{unit:``,formatter:`ms`}};function _I(e,t,n){return e===1?t:n}function vI(e,t,n){let r=0,i=0,a=[],o=new Set,s=new Set(t);for(let c of e){let e=pI(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 yI(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:hI,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:jP(`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:hI,rowAxisLabel:`Source`,colAxisLabel:`Destination`,skippedRecordsCount:a,unparseablePathCount:n,missingValueCount:r,unrecognizedSources:i,approx:d}}function bI(e,t,n=`p95`){return yI(vI(e,t,n))}function xI(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:jP(`count-weighted-mean`,i),count:n.get(e)??0})}return{points:a,approx:r}}var SI=12;function CI(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=xI(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 wI(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)(()=>vI(t,n,a),[t,n,a]),f=(0,I.useMemo)(()=>yI(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}=xI(e),i=`${s.source} → ${s.dest}`,a={suppressed:t<hI.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=mI.find(e=>e.field===a)?.label??a,g=s&&m?(0,L.jsx)(MF,{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 ${hI.greyBelow} samples for this pair in the current window (${m.sampleCount}) — series hidden.`}):(0,L.jsx)(AP,{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)(TI,{data:f}),(0,L.jsx)(`div`,{children:`No data in window`}),g]});let _=f.rows.length*f.cols.length>SI;if(f.rows.length<2||f.cols.length<2||_){let{seriesData:e,omittedPairsCount:t}=CI(d.parsed,f),n=f.confidence?.greyBelow??hI.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)(TI,{data:f}),t>0&&!o?(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:PF,children:`${t} source-destination ${_I(t,`pair`,`pairs`)} hidden — fewer than ${n} samples.`},t):null,(0,L.jsx)(`div`,{style:FF,children:a}),o?(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:PF,children:`No source-destination pairs cleared the confidence threshold (${n}+ samples). All ${t} ${_I(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)(AP,{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)(EI,{value:a,onChange:o}),(0,L.jsx)(TI,{data:f}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,L.jsx)(uI,{data:{...f,skippedRecordsCount:0,measureLabel:`${h} latency`},title:`Replication latency`,onCellSelect:(e,t)=>{c({source:e,dest:t}),u(!0)}})}),g]})}function TI({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} ${_I(t,`record`,`records`)} omitted (unparseable replication path).`),n>0&&i.push(`${n} ${_I(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:PF,children:i.join(` `)},`${t}-${n}-${r.length}`)}function EI({value:e,onChange:t}){let{getRadioProps:n}=Ki(mI.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:mI.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 DI={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}},OI={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`}},kI={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}]},AI={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`}},jI=`var(--color-text-secondary)`;function MI({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):jI;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):jI;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 NI=`Other`,PI=12;function FI({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}=Ki((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!==NI&&e.add(n)}return[...e]},[m.series]),g=m.series.some(e=>(e.dim??e.key)===NI),[_,v]=(0,I.useState)(()=>h[0]??``),y=h.includes(_)?_:h[0]??``,{data:b,isActive:x,handleLegendClick:S}=Gi((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>PI?(0,L.jsx)(MI,{dimensionValues:h,selected:y,onSelect:v,otherKey:g?NI:void 0,ariaLabel:i}):(0,L.jsx)(Ji,{dimensionValues:h,selected:y,onSelect:v,otherKey:g?NI:void 0,ariaLabel:i}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(AP,{data:b,yAxis:e.yAxis,xDomain:[n.startTime,n.endTime],fillParent:o,hideLegend:s})}),s&&r.length>0&&(0,L.jsx)(Hi,{nodeIds:r,isActive:x,onClickNode:S})]})}function II({ariaLabel:e,...t}){return{spec:t,Renderer:n=>(0,L.jsx)(FI,{spec:t,...n,ariaLabel:e})}}function LI({typeField:e,defaultViewMode:t,...n}){return{spec:n,Renderer:r=>(0,L.jsx)(dF,{spec:n,typeField:e,...r,viewMode:r.viewMode??t})}}function RI({label:e,...t}){return II({...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:mI,default:`p95`}})}function zI(e){return LI({...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 BI={"db-read":RI({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":RI({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":RI({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:RI({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:RI({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":RI({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":II({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":II({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:mI,default:`p95`}}),success:II({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:II({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":zI({title:`Bytes sent by type`,description:`Outbound byte rate (count × mean) — cluster total. Type chips solo / Ctrl-toggle.`}),"bytes-received":zI({title:`Bytes received by type`,description:`Inbound byte rate (count × mean) — cluster total. Type chips solo / Ctrl-toggle.`}),connections:LI({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":LI({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`}})},VI={"replication-latency":{spec:gI,Renderer:wI},"bytes-sent":BI[`bytes-sent`],"bytes-received":BI[`bytes-received`],"resource-usage":{spec:DI},connections:BI.connections,duration:BI.duration,success:BI.success,transfer:BI.transfer,"tls-reused":{spec:kI},connection:{spec:XP,Renderer:$P},"cpu-usage":BI[`cpu-usage`],"db-read":BI[`db-read`],"db-write":BI[`db-write`],"db-message":BI[`db-message`],response_200:BI.response_200,utilization:{spec:AI},"database-size":BI[`database-size`],"storage-volume":{spec:OI},memory:{spec:kF,Renderer:jF},"main-thread-utilization":{spec:EF,Renderer:DF},"cache-hit":BI[`cache-hit`],"cache-resolution":BI[`cache-resolution`]},HI=new Set([`time`,`node`,`id`,`period`,`metric`,`count`,`threadId`,`path`,`method`,`type`,`database`,`table`,`source`]),UI=8;function WI(e){let t=new Map;for(let n of e)for(let e of Object.keys(n))HI.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 GI(e){let t=WI(e),n=t.slice(0,UI);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 KI({metric:e,records:t,hint:n}){let{panels:r,overflowCount:i}=GI(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)(iF,{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 qI(e){return e.node??e.key}function JI({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=qI(n);e&&t.add(e)}return[...t].sort()},[e]),{isActive:a,handleLegendClick:o}=Wi(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)(AP,{data:(0,I.useMemo)(()=>({...e,series:e.series.filter(e=>a(qI(e))).map(e=>({...e,color:e.color??zi(qI(e),i)}))}),[e,a,i]),yAxis:t,xDomain:n,fillParent:r,hideLegend:!0})}),i.length>0&&(0,L.jsx)(Hi,{nodeIds:i,isActive:a,onClickNode:o})]})}function YI(e,t,n,r,i){switch(e){case`line`:return(0,L.jsx)(JI,{data:t,yAxis:n,xDomain:r,fillParent:i});case`stacked-area`:return(0,L.jsx)(lF,{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 XI(e,t){return e.primitive===`stacked-area`&&t&&e.series.kind===`groupBy`&&e.series.dimension!==`node`}function ZI(e,t){return e.primitive===`line`&&!t&&e.series.kind===`groupBy`&&e.series.dimension===`node`}function QI(e){return e.primitive===`line`&&e.series.kind===`groupBy`&&e.series.dimension!==`node`}var $I=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 eL({metric:e,records:t,window:n,nodes:r,viewMode:i,fillParent:a}){let o=(0,L.jsx)(KI,{metric:e,records:t,hint:`Render failed — showing fallback.`}),s=[n.startTime,n.endTime],c,l=CF[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=YI(l.primitive,e,l.yAxis,s,a)}else{let o=VI[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)(iF,{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(XI(o.spec,e)&&o.spec.series.kind===`groupBy`)c=YI(`stacked-area`,$({...o.spec,series:{...o.spec.series,dimension:`node`}},t,n,r,{snapToPeriod:!0}),o.spec.yAxis,s,a);else if(ZI(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=YI(o.spec.primitive,i,o.spec.yAxis,s,a)}else if(QI(o.spec))c=YI(`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=YI(o.spec.primitive,i,o.spec.yAxis,s,a)}}else c=(0,L.jsx)(KI,{metric:e,records:t})}return(0,L.jsx)($I,{fallback:o,children:c},e)}function tL(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 nL=(()=>{let e=0,t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function rL(e){let t=[];for(let n=0,r=e.length;n<r;n++)t.push(e[n]);return t}var iL=null;function aL(e={}){return iL||(e.includeStyleProperties?(iL=e.includeStyleProperties,iL):(iL=rL(window.getComputedStyle(document.documentElement)),iL))}function oL(e,t){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return n?parseFloat(n.replace(`px`,``)):0}function sL(e){let t=oL(e,`border-left-width`),n=oL(e,`border-right-width`);return e.clientWidth+t+n}function cL(e){let t=oL(e,`border-top-width`),n=oL(e,`border-bottom-width`);return e.clientHeight+t+n}function lL(e,t={}){return{width:t.width||sL(e),height:t.height||cL(e)}}function uL(){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 dL=16384;function fL(e){(e.width>dL||e.height>dL)&&(e.width>dL&&e.height>dL?e.width>e.height?(e.height*=dL/e.width,e.width=dL):(e.width*=dL/e.height,e.height=dL):e.width>dL?(e.height*=dL/e.width,e.width=dL):(e.width*=dL/e.height,e.height=dL))}function pL(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 mL(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 hL(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(e=>`data:image/svg+xml;charset=utf-8,${e}`)}async function gL(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),hL(i)}var _L=(e,t)=>{if(e instanceof t)return!0;let n=Object.getPrototypeOf(e);return n===null?!1:n.constructor.name===t.name||_L(n,t)};function vL(e){let t=e.getPropertyValue(`content`);return`${e.cssText} content: '${t.replace(/'|"/g,``)}';`}function yL(e,t){return aL(t).map(t=>`${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t)?` !important`:``};`).join(` `)}function bL(e,t,n,r){let i=`.${e}:${t}`,a=n.cssText?vL(n):yL(n,r);return document.createTextNode(`${i}{${a}}`)}function xL(e,t,n,r){let i=window.getComputedStyle(e,n),a=i.getPropertyValue(`content`);if(a===``||a===`none`)return;let o=nL();try{t.className=`${t.className} ${o}`}catch{return}let s=document.createElement(`style`);s.appendChild(bL(o,n,i,r)),t.appendChild(s)}function SL(e,t,n){xL(e,t,`:before`,n),xL(e,t,`:after`,n)}var CL=`application/font-woff`,wL=`image/jpeg`,TL={woff:CL,woff2:CL,ttf:`application/font-truetype`,eot:`application/vnd.ms-fontobject`,png:`image/png`,jpg:wL,jpeg:wL,gif:`image/gif`,tiff:`image/tiff`,svg:`image/svg+xml`,webp:`image/webp`};function EL(e){let t=/\.([^./]*?)$/g.exec(e);return t?t[1]:``}function DL(e){return TL[EL(e).toLowerCase()]||``}function OL(e){return e.split(/,/)[1]}function kL(e){return e.search(/^(data:)/)!==-1}function AL(e,t){return`data:${t};base64,${e}`}async function jL(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 ML={};function NL(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 PL(e,t,n){let r=NL(e,t,n.includeQueryParams);if(ML[r]!=null)return ML[r];n.cacheBust&&(e+=(/\?/.test(e)?`&`:`?`)+new Date().getTime());let i;try{i=AL(await jL(e,n.fetchRequestInit,({res:e,result:n})=>(t||=e.headers.get(`Content-Type`)||``,OL(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 ML[r]=i,i}async function FL(e){let t=e.toDataURL();return t===`data:,`?e.cloneNode(!1):mL(t)}async function IL(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),mL(t.toDataURL())}let n=e.poster;return mL(await PL(n,DL(n),t))}async function LL(e,t){try{if(e?.contentDocument?.body)return await qL(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function RL(e,t){return _L(e,HTMLCanvasElement)?FL(e):_L(e,HTMLVideoElement)?IL(e,t):_L(e,HTMLIFrameElement)?LL(e,t):e.cloneNode(BL(e))}var zL=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SLOT`,BL=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SVG`;async function VL(e,t,n){if(BL(t))return t;let r=[];return r=zL(e)&&e.assignedNodes?rL(e.assignedNodes()):_L(e,HTMLIFrameElement)&&e.contentDocument?.body?rL(e.contentDocument.body.childNodes):rL((e.shadowRoot??e).childNodes),r.length===0||_L(e,HTMLVideoElement)||await r.reduce((e,r)=>e.then(()=>qL(r,n)).then(e=>{e&&t.appendChild(e)}),Promise.resolve()),t}function HL(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):aL(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`),_L(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 UL(e,t){_L(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),_L(e,HTMLInputElement)&&t.setAttribute(`value`,e.value)}function WL(e,t){if(_L(e,HTMLSelectElement)){let n=t,r=Array.from(n.children).find(t=>e.value===t.getAttribute(`value`));r&&r.setAttribute(`selected`,``)}}function GL(e,t,n){return _L(t,Element)&&(HL(e,t,n),SL(e,t,n),UL(e,t),WL(e,t)),t}async function KL(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 qL(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 qL(e,t,n){return!n&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(e=>RL(e,t)).then(n=>VL(e,n,t)).then(n=>GL(e,n,t)).then(e=>KL(e,t))}var JL=/url\((['"]?)([^'"]+?)\1\)/g,YL=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,XL=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function ZL(e){let t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,`\\$1`);return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,`g`)}function QL(e){let t=[];return e.replace(JL,(e,n,r)=>(t.push(r),e)),t.filter(e=>!kL(e))}async function $L(e,t,n,r,i){try{let a=n?tL(t,n):t,o=DL(t),s;return s=i?AL(await i(a),o):await PL(a,o,r),e.replace(ZL(t),`$1${s}$3`)}catch{}return e}function eR(e,{preferredFontFormat:t}){return t?e.replace(XL,e=>{for(;;){let[n,,r]=YL.exec(e)||[];if(!r)return``;if(r===t)return`src: ${n};`}}):e}function tR(e){return e.search(JL)!==-1}async function nR(e,t,n){if(!tR(e))return e;let r=eR(e,n);return QL(r).reduce((e,r)=>e.then(e=>$L(e,r,t,n)),Promise.resolve(r))}async function rR(e,t,n){let r=t.style?.getPropertyValue(e);if(r){let i=await nR(r,null,n);return t.style.setProperty(e,i,t.style.getPropertyPriority(e)),!0}return!1}async function iR(e,t){await rR(`background`,e,t)||await rR(`background-image`,e,t),await rR(`mask`,e,t)||await rR(`-webkit-mask`,e,t)||await rR(`mask-image`,e,t)||await rR(`-webkit-mask-image`,e,t)}async function aR(e,t){let n=_L(e,HTMLImageElement);if(!(n&&!kL(e.src))&&!(_L(e,SVGImageElement)&&!kL(e.href.baseVal)))return;let r=n?e.src:e.href.baseVal,i=await PL(r,DL(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 oR(e,t){let n=rL(e.childNodes).map(e=>sR(e,t));await Promise.all(n).then(()=>e)}async function sR(e,t){_L(e,Element)&&(await iR(e,t),await aR(e,t),await oR(e,t))}function cR(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 lR={};async function uR(e){let t=lR[e];return t??(t={url:e,cssText:await(await fetch(e)).text()},lR[e]=t,t)}async function dR(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),jL(a,t.fetchRequestInit,({result:e})=>(n=n.replace(i,`url(${e})`),[i,e]))});return Promise.all(i).then(()=>n)}function fR(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 pR(e,t){let n=[],r=[];return e.forEach(n=>{if(`cssRules`in n)try{rL(n.cssRules||[]).forEach((e,i)=>{if(e.type===CSSRule.IMPORT_RULE){let a=i+1,o=e.href,s=uR(o).then(e=>dR(e,t)).then(e=>fR(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(uR(n.href).then(e=>dR(e,t)).then(e=>fR(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{rL(e.cssRules||[]).forEach(e=>{n.push(e)})}catch(t){console.error(`Error while reading CSS rules from ${e.href}`,t)}}),n))}function mR(e){return e.filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>tR(e.style.getPropertyValue(`src`)))}async function hR(e,t){if(e.ownerDocument==null)throw Error(`Provided element is not within a Document`);return mR(await pR(rL(e.ownerDocument.styleSheets),t))}function gR(e){return e.trim().replace(/["']/g,``)}function _R(e){let t=new Set;function n(e){(e.style.fontFamily||getComputedStyle(e).fontFamily).split(`,`).forEach(e=>{t.add(gR(e))}),Array.from(e.children).forEach(e=>{e instanceof HTMLElement&&n(e)})}return n(e),t}async function vR(e,t){let n=await hR(e,t),r=_R(e);return(await Promise.all(n.filter(e=>r.has(gR(e.style.fontFamily))).map(e=>{let n=e.parentStyleSheet?e.parentStyleSheet.href:null;return nR(e.cssText,n,t)}))).join(`
59
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function VN(e,t){if(e){if(typeof e==`string`)return HN(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)?HN(e,t):void 0}}function HN(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 UN(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 WN(e){if(Array.isArray(e))return e}var GN=()=>(Qx(),null);function KN(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var qN=(0,I.forwardRef)((e,t)=>{var n=(0,I.useRef)(null),r=zN((0,I.useState)({containerWidth:KN(e.style?.width),containerHeight:KN(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(sd,{width:i.containerWidth,height:i.containerHeight}),I.createElement(`div`,RN({ref:s},e)))}),JN=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=zN((0,I.useState)({containerWidth:KN(n),containerHeight:KN(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(sd,{width:a.containerWidth,height:a.containerHeight}),I.createElement(`div`,RN({ref:c},e)))}),YN=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height;return I.createElement(I.Fragment,null,I.createElement(sd,{width:n,height:r}),I.createElement(`div`,RN({ref:t},e)))}),XN=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?I.createElement(JN,RN({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?I.createElement(YN,RN({},e,{width:n,height:r,ref:t})):I.createElement(I.Fragment,null,I.createElement(sd,{width:n,height:r}),I.createElement(`div`,RN({ref:t},e)))});function ZN(e){return e?qN:XN}var QN=(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=zN((0,I.useState)(null),2),T=w[0],E=w[1],D=zN((0,I.useState)(null),2),O=D[0],k=D[1],A=MN(),j=qu(),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(TM(e)),C(qM({handler:o,reactEvent:e}))},[C,o]),ne=(0,I.useCallback)(e=>{C(DM(e)),C(qM({handler:u,reactEvent:e}))},[C,u]),re=(0,I.useCallback)(e=>{C(sy()),C(qM({handler:d,reactEvent:e}))},[C,d]),ie=(0,I.useCallback)(e=>{C(DM(e)),C(qM({handler:f,reactEvent:e}))},[C,f]),ae=(0,I.useCallback)(()=>{C(BM())},[C]),oe=(0,I.useCallback)(()=>{C(VM())},[C]),se=(0,I.useCallback)(e=>{C(zM(e.key))},[C]),ce=(0,I.useCallback)(e=>{C(qM({handler:s,reactEvent:e}))},[C,s]),le=(0,I.useCallback)(e=>{C(qM({handler:c,reactEvent:e}))},[C,c]),ue=(0,I.useCallback)(e=>{C(qM({handler:l,reactEvent:e}))},[C,l]),de=(0,I.useCallback)(e=>{C(qM({handler:p,reactEvent:e}))},[C,p]),fe=(0,I.useCallback)(e=>{C(qM({handler:g,reactEvent:e}))},[C,g]),pe=(0,I.useCallback)(e=>{x&&C($M(e)),C(qM({handler:h,reactEvent:e}))},[C,x,h]),me=(0,I.useCallback)(e=>{C(qM({handler:m,reactEvent:e}))},[C,m]),he=ZN(y);return I.createElement(Ex.Provider,{value:T},I.createElement(ma.Provider,{value:O},I.createElement(he,{width:M??_?.width,height:N??_?.height,className:r(`recharts-wrapper`,i),style:PN({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(GN,null),n)))}),$N=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function eP(e,t){if(e==null)return{};var n,r,i=tP(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 tP(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 nP=(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=ea(eP(e,$N));return c?I.createElement(I.Fragment,null,I.createElement(sd,{width:n,height:r}),I.createElement(TN,{otherAttributes:d,title:l,desc:u},a)):I.createElement(QN,{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(TN,{otherAttributes:d,title:l,desc:u,ref:t},I.createElement(iD,null,a)))});function rP(){return rP=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},rP.apply(null,arguments)}function iP(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 aP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?iP(Object(n),!0).forEach(function(t){oP(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):iP(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function oP(e,t,n){return(t=sP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function sP(e){var t=cP(e,`string`);return typeof t==`symbol`?t:t+``}function cP(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 lP=aP({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`},aN),uP=(0,I.forwardRef)(function(e,t){var n=to(e.categoricalChartProps,lP),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(dN,{preloadedState:{options:c},reduxStoreName:s.id??r},I.createElement(RE,{chartData:s.data}),I.createElement(pN,{layout:n.layout,margin:n.margin}),I.createElement(hN,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),I.createElement(mN,{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(nP,rP({},n,{ref:t})))}),dP=[`axis`],fP=(0,I.forwardRef)((e,t)=>I.createElement(uP,{chartName:`LineChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:dP,tooltipPayloadSearcher:Mx,categoricalChartProps:e,ref:t})),pP=[`axis`,`item`],mP=(0,I.forwardRef)((e,t)=>I.createElement(uP,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:pP,tooltipPayloadSearcher:Mx,categoricalChartProps:e,ref:t})),hP=[`axis`],gP=(0,I.forwardRef)((e,t)=>I.createElement(uP,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:hP,tooltipPayloadSearcher:Mx,categoricalChartProps:e,ref:t}));function _P(){return{axisColor:`var(--chart-axis, #6b7280)`,gridColor:`var(--chart-grid, #e5e7eb)`}}var vP=new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}),yP=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 bP(e){return vP.format(new Date(e))}function xP(e){return yP.format(new Date(e))}var SP={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},CP={color:`var(--chart-tooltip-fg)`,opacity:.7,marginBottom:4,fontSize:11},wP={color:`var(--chart-tooltip-fg)`};function TP(){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 EP(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function DP({active:e,payload:t,label:n,formatter:r,unitSuffix:i,resolveEntryFormat:a,nodeNames:o,showTotal:s,hidden:c}){let l=(0,I.useMemo)(()=>[...Vi(o??[]).entries()].filter(([e,t])=>t!==e).sort((e,t)=>t[0].length-e[0].length).map(([e,t])=>({re:RegExp(`(?<![\\w.-])${EP(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:SP,children:[(0,L.jsx)(`div`,{style:CP,children:n===void 0?``:xP(Number(n))}),t.map((e,t)=>{let n=d(e);return(0,L.jsxs)(`div`,{style:{...wP,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:Ce(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:Ce(p,m,i)})]}):null]})}function OP(e){return!!e&&typeof e==`object`&&`left`in e}function kP(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 AP({data:e,yAxis:t,height:n=240,ariaLabel:r,hideLegend:i,xDomain:a,fillParent:o}){let s=wi(!!o),{hovered:c,gateProps:l}=TP(),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=OP(t),f=d?t.left:t,p=d?t.right:void 0,m=_P();return(0,L.jsx)(`div`,{role:`img`,"aria-label":r??kP(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)(Yu,{width:`100%`,height:`100%`,children:(0,L.jsxs)(fP,{margin:{top:12,right:12,bottom:8,left:8},...s,children:[(0,L.jsx)(PO,{stroke:m.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(oM,{dataKey:`x`,type:`number`,domain:a??[`dataMin`,`dataMax`],allowDataOverflow:!!a,allowDuplicatedCategory:!1,tickFormatter:bP,stroke:m.axisColor,tick:{fontSize:11}}),(0,L.jsx)(xM,{yAxisId:`left`,tickFormatter:e=>Ce(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)(xM,{yAxisId:`right`,orientation:`right`,tickFormatter:e=>Ce(e,p.formatter,p.unit),scale:p.scale??`linear`,domain:p.domain,stroke:m.axisColor,tick:{fontSize:11},width:70}):null,(0,L.jsx)(hS,{isAnimationActive:!1,content:(0,L.jsx)(DP,{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)(Ud,{}),e.thresholds?.map((e,t)=>{let n=Ce(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)(xD,{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)(Rk,{data:e.points,type:`monotone`,dataKey:`y`,name:e.label,yAxisId:e.axis===`right`?`right`:`left`,stroke:e.color??Ri[t%Ri.length],strokeWidth:2,strokeOpacity:e.opacity??1,dot:n?{r:2}:!1,connectNulls:!1},e.key)})]})})})})}function jP(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 MP(r,.5);case`p95`:return MP(r,.95);case`p99`:return MP(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 MP(e,t){let n=[...e].sort((e,t)=>e-t);return n[Math.max(1,Math.ceil(t*n.length))-1]}function NP(e){return e===`count-weighted-mean`}function PP(e,t){return NP(t)?e.endsWith(`(approx)`)?e:`${e} (approx)`:e}function FP(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 IP(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=IP(e.left,t),r=IP(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 LP={"percent-of-core":e=>e*100};function RP(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=RP(t,r,n),r===null)return null;return r}case`named`:{let n=LP[e.name];if(!n)throw Error(`unknown named transform: ${e.name}`);return n(t)}default:throw Error(`unknown transform kind: ${e.kind}`)}}function zP(e,t){return`${e}|${t}`}function $(e,t,n,r,i){return e.series.kind===`field`?KP(e,e.series.fields,t,i?.perNode??!1,i?.snapToPeriod??!1):GP(e,e.series,t,i?.perNode??!1,i?.snapToPeriod??!1)}function BP(e,t,n){let r=VP(e,t);return Math.round(n/r)*r}function VP(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 HP(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 UP(e,t,n){let r=0,i,a=n.map(e=>{let n=HP(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 WP(e,t,n){let r=typeof t.field==`string`?typeof n[t.field]==`number`?n[t.field]:null:IP(t.field,n);return RP(t.transform??{kind:`raw`},r,VP(e,n))}function GP(e,t,n,r,i){let a=new Map,o=new Map,s=UP(`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=WP(e,t.field,c);if(u===null)continue;let d=s[r];if(d===null)continue;let f=i?BP(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(FP(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=jP(c,n.items);e.push({x:t,y:i,count:n.totalCount})}h.push({key:zP(String(n),t),label:PP(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}=qP(c,l,o.get(n));e.push({x:n,y:t,count:r})}h.push({key:String(n),label:PP(String(n),c),dim:String(n),...s?{node:String(n)}:{},points:e,approx:u})}}if(t.otherBucket&&m.length>0)if(FP(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}=qP(c,l,e.get(r));t.push({x:r,y:n,count:i})}h.push({key:`Other`,label:PP(`Other`,c),dim:`Other`,points:t,approx:u})}else g++;return{series:h,thresholds:e.thresholds,...g>0?{suppressedSeriesCount:g}:{}}}function KP(e,t,n,r,i){let a=UP(`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=WP(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?BP(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=jP(s,n.items);e.push({x:t,y:r,count:n.totalCount})}n.push({key:zP(u,r),label:PP(`${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}=qP(s,c,o.get(e));d.push({x:e,y:t,count:n})}return[{key:u,label:PP(t.label,s),dim:u,axis:t.axis,points:d,approx:l}]}).flat(),thresholds:e.thresholds}}function qP(e,t,n){let r=[],i=0;for(let[,t]of n){let n=jP(e,t.items);typeof n==`number`&&Number.isFinite(n)&&r.push({value:n,count:t.totalCount}),i+=t.totalCount}return{y:jP(t,r),count:i}}var JP=`pathMethod`,YP=` · `,XP={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:JP,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 ZP(e,t){return typeof e!=`string`&&typeof e!=`number`||typeof t!=`string`&&typeof t!=`number`?null:`${e}${YP}${t}`}function QP(e){let t=[],n=new Map;for(let r of e){let{path:e,method:i}=r,a=ZP(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,[JP]:a,ratio:c?null:r.ratio})}return{records:t,dimParts:n}}function $P({records:e,timeRange:t,nodes:n,viewMode:r=`per-node`,fillParent:i}){let a=r===`per-node`,{records:o,dimParts:s}=(0,I.useMemo)(()=>QP(e),[e]),c=(0,I.useMemo)(()=>$(XP,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}=Gi((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)(Ji,{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)(AP,{data:m,yAxis:XP.yAxis,xDomain:[t.startTime,t.endTime],fillParent:i,hideLegend:a})}),a&&n.length>0&&(0,L.jsx)(Hi,{nodeIds:n,isActive:h,onClickNode:g})]})}function eF(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 tF={id:`error-rate`,title:`Error rate (≥1000 req)`,subtitle:`errored-request fraction — 1 − Σtotal/Σcount`,tab:`requests`,sourceMetric:`success`,recompute:eF,primitive:`line`,yAxis:{unit:``,formatter:`percent`}},nF=[`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 rF(e,t){let n=[...t].sort().indexOf(e);return nF[(n<0?0:n)%nF.length]}function iF({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}=Wi(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??zi(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)(AP,{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)(Hi,{nodeIds:a,isActive:o,onClickNode:s})]})}function aF(){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 oF(e){return[...e].sort((e,t)=>sF(t)-sF(e))}function sF(e){return e.points.reduce((e,t)=>e+(typeof t.y==`number`?t.y:0),0)}function cF(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 lF({data:e,yAxis:t,height:n=240,ariaLabel:r,xDomain:i,fillParent:a,lineOnly:o}){let s=(0,I.useMemo)(()=>oF(e.series),[e.series]),c=aF(),l=wi(!!a),{hovered:u,gateProps:d}=TP(),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=_P(),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??cF(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)(Yu,{width:`100%`,height:`100%`,children:(0,L.jsxs)(gP,{data:y,...l,children:[(0,L.jsx)(PO,{stroke:p.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(oM,{dataKey:`x`,type:`number`,domain:i??[`dataMin`,`dataMax`],allowDataOverflow:!!i,tickFormatter:bP,stroke:p.axisColor,tick:{fontSize:11}}),(0,L.jsx)(xM,{tickFormatter:e=>Ce(e,b,x),stroke:p.axisColor,tick:{fontSize:11},width:70}),(0,L.jsx)(hS,{isAnimationActive:!1,content:(0,L.jsx)(DP,{hidden:!u,formatter:b,unitSuffix:x,nodeNames:f,showTotal:!0})}),(0,L.jsx)(Ud,{}),s.map((e,t)=>(0,L.jsx)(AA,{type:`monotone`,dataKey:e.key,name:e.label,stackId:`1`,stroke:e.color??Ri[t%Ri.length],strokeWidth:o?2:1,fill:o?`none`:e.color??Ri[t%Ri.length],fillOpacity:o?0:S,connectNulls:!1},e.key)),e.ceiling?(0,L.jsx)(Rk,{type:`monotone`,dataKey:`__ceiling__`,name:e.ceiling.label,stroke:p.axisColor,strokeWidth:2,strokeDasharray:`6 3`,dot:!1}):null]})})})})}function uF({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 dF({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}=Ui(l),{isActive:f,handleLegendClick:p}=Wi(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`?zi(e.key,i):rF(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??rF(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)(uF,{values:l,isActive:u,onClick:d,colorFor:e=>rF(e,l),ariaLabel:t===`type`?`Traffic type`:t===`database`?`Database`:`Protocol`}),S&&(0,L.jsx)(mF,{stackBy:s,onChange:c}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:s===`grid`&&x?(0,L.jsx)(iF,{panels:x,xDomain:C,fillParent:o}):(0,L.jsx)(lF,{data:b,yAxis:w,xDomain:C,fillParent:o,lineOnly:g})}),i.length>0&&(0,L.jsx)(Hi,{nodeIds:i,isActive:f,onClickNode:p})]})}var fF=[{value:`type`,label:`Type`},{value:`node`,label:`Node`},{value:`grid`,label:`Per-node grid`}],pF=fF.map(e=>e.value);function mF({stackBy:e,onChange:t}){let{getRadioProps:n}=Ki(pF,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:`}),fF.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 hF({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)(dF,{spec:o,typeField:`type`,...e}),primitive:`stacked-area`,yAxis:{unit:` msg/s`,formatter:`count-si`}}}var gF=hF({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.`}),_F=hF({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 vF({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}=Wi(n),_=(0,I.useMemo)(()=>({...m,thresholds:a??m.thresholds,series:m.series.map(e=>l?{...e,label:Bi(e.key),color:zi(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)(Ji,{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)(AP,{data:_,yAxis:i,xDomain:c,fillParent:s,hideLegend:l})}),l&&n.length>0&&(0,L.jsx)(Hi,{nodeIds:n,isActive:h,onClickNode:g})]})}function yF(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 bF(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 yF(n?e.filter(e=>e.path===n):e,{startTime:0,endTime:2**53-1},[])}var xF={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:yF,Renderer:({records:e,timeRange:t,nodes:n,viewMode:r})=>(0,L.jsx)(vF,{records:e,timeRange:t,nodes:n,viewMode:r,yAxis:{unit:`/s`,formatter:`count-si`},compute:bF}),primitive:`line`,yAxis:{unit:`/s`,formatter:`count-si`}};function SF(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 CF={"mqtt-traffic-sent":gF,"mqtt-traffic-received":_F,"request-rate":xF,"error-rate":tF,"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:SF,primitive:`line`,yAxis:{unit:`/s`,formatter:`bytes-si`}}},wF=[{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`}}],TF=wF.map(e=>e.key),EF={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:wF[0].field,label:wF[0].label}]},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`mean`,crossNode:`mean`},primitive:`line`,yAxis:wF[0].yAxis,layout:{colSpan:2}};function DF({records:e,timeRange:t,nodes:n,viewMode:r=`per-node`,fillParent:i}){let a=r===`per-node`,[o,s]=(0,I.useState)(wF[0].key),c=TF.includes(o)?o:wF[0].key,l=wF.find(e=>e.key===c),{data:u,isActive:d,handleLegendClick:f}=Gi((0,I.useMemo)(()=>$({...EF,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)(Ji,{dimensionValues:TF.map(e=>wF.find(t=>t.key===e).label),selected:l.label,onSelect:e=>{let t=wF.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)(AP,{data:u,yAxis:l.yAxis,xDomain:[t.startTime,t.endTime],fillParent:i,hideLegend:a})}),a&&n.length>0&&(0,L.jsx)(Hi,{nodeIds:n,isActive:d,onClickNode:f})]})}var OF=[{field:`heapUsed`,label:`heap used`},{field:`heapTotal`,label:`heap total`},{field:`external`,label:`external`},{field:`arrayBuffers`,label:`arrayBuffers`}],kF={title:`Process memory`,description:`Per-node V8 memory — chip selector picks the field. Default heap used.`,tab:`health`,primaryDimension:`node`,series:{kind:`field`,fields:[...OF]},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`last`,crossNode:`mean`},primitive:`line`,yAxis:{unit:` B`,formatter:`bytes-si`}},AF=OF.map(e=>e.label);function jF({records:e,timeRange:t,nodes:n,viewMode:r=`per-node`,fillParent:i}){let a=r===`per-node`,[o,s]=(0,I.useState)(OF[0].label),c=AF.includes(o)?o:OF[0].label,l=OF.find(e=>e.label===c),{data:u,isActive:d,handleLegendClick:f}=Gi((0,I.useMemo)(()=>$({...kF,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)(Ji,{dimensionValues:AF,selected:c,onSelect:s,ariaLabel:`Memory field`}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(AP,{data:u,yAxis:kF.yAxis,xDomain:[t.startTime,t.endTime],fillParent:i,hideLegend:a})}),a&&n.length>0&&(0,L.jsx)(Hi,{nodeIds:n,isActive:d,onClickNode:f})]})}function MF({source:e,target:t,open:n,onOpenChange:r,description:i,children:a}){return(0,L.jsx)(ne,{open:n,onOpenChange:r,children:(0,L.jsxs)(le,{className:`!max-w-[95vw] sm:!max-w-[95vw] h-[90vh] flex flex-col`,children:[(0,L.jsxs)(ae,{children:[(0,L.jsx)(re,{children:`${e} → ${t}`}),i&&(0,L.jsx)(ee,{children:i})]}),(0,L.jsx)(`div`,{className:`flex-1 min-h-0 overflow-hidden flex flex-col`,children:a})]})})}function NF(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 PF=NF(`--color-warning`,`#f59e0b`,12),FF=NF(`--color-info`,`#3b82f6`,10);function IF(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 LF=`var(--chart-heatmap-muted-bg, #f3f4f6)`,RF=`var(--chart-heatmap-muted-stroke, #9ca3af)`,zF=`var(--chart-heatmap-grey-stroke, #9ca3af)`,BF=[`#fef3c7`,`#fcd34d`,`#f59e0b`,`#dc2626`,`#7f1d1d`],VF=[`#713f12`,`#b45309`,`#d97706`,`#f59e0b`,`#fef3c7`];function HF(e){let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4}function UF(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*HF(n)+.7152*HF(r)+.0722*HF(i)}function WF(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 GF(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 KF(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]=WF(e[r]),[c,l,u]=WF(e[r+1]);return GF(a+(c-a)*i,o+(l-o)*i,s+(u-s)*i)}function qF(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 JF(e){return e===`ok`||e===`grey`}function YF(e,t){return e.length>t?e.slice(0,t-1)+`…`:e}function XF(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 ZF({stops:e,vmin:t,vmax:n,width:r,axis:i,approx:a,measureLabel:o}){let s=(0,I.useId)(),c=i?.unit??``,l=e=>Ce(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 QF=40,$F=80,eI=4,tI=200,nI=11,rI=45,iI=7.2,aI=8,oI=6,sI=72;function cI(e){return e<56?8:20}function lI(e,t){let n=(e.reduce((e,n)=>Math.max(e,Math.min(n.length,cI(t))),0)*iI+nI)*Math.SQRT1_2;return Math.max(sI,Math.ceil(n)+aI+oI)}function uI({data:e,title:t,height:n,onCellSelect:r}){let i=(0,I.useId)(),a=(0,I.useId)(),o=(0,I.useId)(),s=aF(),c=e.confidence?.greyBelow??0,l=e.confidence?.suppressBelow??0,u=s===`dark`?VF:BF,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(Bi),[v]),b=(0,I.useRef)(null),[x,S]=(0,I.useState)($F),C=(0,I.useRef)(null);(0,I.useLayoutEffect)(()=>{let e=b.current?.clientWidth??0;S(IF(e,v.length,tI,eI,QF,$F))},[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(IF(t,v.length,tI,eI,QF,$F))})});return t.observe(e),()=>{t.disconnect(),C.current!==null&&cancelAnimationFrame(C.current)}},[v.length]);let w=v.length*x+(v.length-1)*eI,T=_.length*x+(_.length-1)*eI,E=lI(y,x),D=tI+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];JF(qF(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(`#`)?UF(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:PF,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:LF}),(0,L.jsx)(`line`,{x1:0,y1:0,x2:0,y2:8,stroke:RF,strokeWidth:2})]})}),(0,L.jsxs)(`g`,{role:`row`,children:[(0,L.jsx)(`rect`,{x:0,y:0,width:tI,height:E,fill:`transparent`,"aria-hidden":`true`}),v.map((e,t)=>{let n=tI+t*(x+eI)+x/2,r=E-oI,i=cI(x);return(0,L.jsx)(`g`,{role:`columnheader`,"aria-label":e,children:(0,L.jsxs)(`text`,{x:n,y:r,fontSize:nI,textAnchor:`end`,transform:`rotate(${rI}, ${n}, ${r})`,fill:`currentColor`,children:[YF(Bi(e),i),(0,L.jsx)(`title`,{children:e})]})},e)})]}),_.map((e,t)=>{let n=E+t*(x+eI);return(0,L.jsxs)(`g`,{role:`row`,children:[(0,L.jsx)(`g`,{role:`rowheader`,"aria-label":e,children:(0,L.jsxs)(`text`,{x:tI-8,y:n+x/2+4,fontSize:12,textAnchor:`end`,fill:`currentColor`,children:[YF(Bi(e),24),(0,L.jsx)(`title`,{children:e})]})}),v.map((i,a)=>{let s=m.get(`${e}|${i}`),_=qF(s,c,l),v=tI+a*(x+eI),y=n,b=XF(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=RF,D=1;else if(_===`suppress`)C=`url(#${o})`,w=`3 3`,E=RF,D=1;else{let e=g>h?((s?.value??0)-h)/(g-h):0;C=KF(u,e),_===`grey`&&(T=.55,w=`4 2`,E=zF,D=1)}let O=_===`ok`||_===`grey`?KF(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&&JF(_);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)(ZF,{stops:u,vmin:h,vmax:g,width:w,axis:e.axis,approx:d,measureLabel:p})})]})}var dI=new WeakMap;function fI(e){let t=dI.get(e);return t||(t=[...e].sort((e,t)=>t.length-e.length),dI.set(e,t)),t}function pI(e,t){if(typeof e!=`string`||e.length===0)return null;let n=fI(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 mI=[{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`}],hI={greyBelow:40,suppressBelow:100},gI={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:hI,primitive:`heatmap`,yAxis:{unit:``,formatter:`ms`}};function _I(e,t,n){return e===1?t:n}function vI(e,t,n){let r=0,i=0,a=[],o=new Set,s=new Set(t);for(let c of e){let e=pI(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 yI(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:hI,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:jP(`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:hI,rowAxisLabel:`Source`,colAxisLabel:`Destination`,skippedRecordsCount:a,unparseablePathCount:n,missingValueCount:r,unrecognizedSources:i,approx:d}}function bI(e,t,n=`p95`){return yI(vI(e,t,n))}function xI(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:jP(`count-weighted-mean`,i),count:n.get(e)??0})}return{points:a,approx:r}}var SI=12;function CI(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=xI(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 wI(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)(()=>vI(t,n,a),[t,n,a]),f=(0,I.useMemo)(()=>yI(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}=xI(e),i=`${s.source} → ${s.dest}`,a={suppressed:t<hI.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=mI.find(e=>e.field===a)?.label??a,g=s&&m?(0,L.jsx)(MF,{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 ${hI.greyBelow} samples for this pair in the current window (${m.sampleCount}) — series hidden.`}):(0,L.jsx)(AP,{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)(TI,{data:f}),(0,L.jsx)(`div`,{children:`No data in window`}),g]});let _=f.rows.length*f.cols.length>SI;if(f.rows.length<2||f.cols.length<2||_){let{seriesData:e,omittedPairsCount:t}=CI(d.parsed,f),n=f.confidence?.greyBelow??hI.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)(TI,{data:f}),t>0&&!o?(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:PF,children:`${t} source-destination ${_I(t,`pair`,`pairs`)} hidden — fewer than ${n} samples.`},t):null,(0,L.jsx)(`div`,{style:FF,children:a}),o?(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:PF,children:`No source-destination pairs cleared the confidence threshold (${n}+ samples). All ${t} ${_I(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)(AP,{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)(EI,{value:a,onChange:o}),(0,L.jsx)(TI,{data:f}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,L.jsx)(uI,{data:{...f,skippedRecordsCount:0,measureLabel:`${h} latency`},title:`Replication latency`,onCellSelect:(e,t)=>{c({source:e,dest:t}),u(!0)}})}),g]})}function TI({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} ${_I(t,`record`,`records`)} omitted (unparseable replication path).`),n>0&&i.push(`${n} ${_I(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:PF,children:i.join(` `)},`${t}-${n}-${r.length}`)}function EI({value:e,onChange:t}){let{getRadioProps:n}=Ki(mI.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:mI.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 DI={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}},OI={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`}},kI={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}]},AI={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`}},jI=`var(--color-text-secondary)`;function MI({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):jI;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):jI;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 NI=`Other`,PI=12;function FI({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}=Ki((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!==NI&&e.add(n)}return[...e]},[m.series]),g=m.series.some(e=>(e.dim??e.key)===NI),[_,v]=(0,I.useState)(()=>h[0]??``),y=h.includes(_)?_:h[0]??``,{data:b,isActive:x,handleLegendClick:S}=Gi((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>PI?(0,L.jsx)(MI,{dimensionValues:h,selected:y,onSelect:v,otherKey:g?NI:void 0,ariaLabel:i}):(0,L.jsx)(Ji,{dimensionValues:h,selected:y,onSelect:v,otherKey:g?NI:void 0,ariaLabel:i}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(AP,{data:b,yAxis:e.yAxis,xDomain:[n.startTime,n.endTime],fillParent:o,hideLegend:s})}),s&&r.length>0&&(0,L.jsx)(Hi,{nodeIds:r,isActive:x,onClickNode:S})]})}function II({ariaLabel:e,...t}){return{spec:t,Renderer:n=>(0,L.jsx)(FI,{spec:t,...n,ariaLabel:e})}}function LI({typeField:e,defaultViewMode:t,...n}){return{spec:n,Renderer:r=>(0,L.jsx)(dF,{spec:n,typeField:e,...r,viewMode:r.viewMode??t})}}function RI({label:e,...t}){return II({...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:mI,default:`p95`}})}function zI(e){return LI({...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 BI={"db-read":RI({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":RI({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":RI({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:RI({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:RI({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":RI({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":II({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":II({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:mI,default:`p95`}}),success:II({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:II({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":zI({title:`Bytes sent by type`,description:`Outbound byte rate (count × mean) — cluster total. Type chips solo / Ctrl-toggle.`}),"bytes-received":zI({title:`Bytes received by type`,description:`Inbound byte rate (count × mean) — cluster total. Type chips solo / Ctrl-toggle.`}),connections:LI({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":LI({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`}})},VI={"replication-latency":{spec:gI,Renderer:wI},"bytes-sent":BI[`bytes-sent`],"bytes-received":BI[`bytes-received`],"resource-usage":{spec:DI},connections:BI.connections,duration:BI.duration,success:BI.success,transfer:BI.transfer,"tls-reused":{spec:kI},connection:{spec:XP,Renderer:$P},"cpu-usage":BI[`cpu-usage`],"db-read":BI[`db-read`],"db-write":BI[`db-write`],"db-message":BI[`db-message`],response_200:BI.response_200,utilization:{spec:AI},"database-size":BI[`database-size`],"storage-volume":{spec:OI},memory:{spec:kF,Renderer:jF},"main-thread-utilization":{spec:EF,Renderer:DF},"cache-hit":BI[`cache-hit`],"cache-resolution":BI[`cache-resolution`]},HI=new Set([`time`,`node`,`id`,`period`,`metric`,`count`,`threadId`,`path`,`method`,`type`,`database`,`table`,`source`]),UI=8;function WI(e){let t=new Map;for(let n of e)for(let e of Object.keys(n))HI.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 GI(e){let t=WI(e),n=t.slice(0,UI);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 KI({metric:e,records:t,hint:n}){let{panels:r,overflowCount:i}=GI(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)(iF,{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 qI(e){return e.node??e.key}function JI({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=qI(n);e&&t.add(e)}return[...t].sort()},[e]),{isActive:a,handleLegendClick:o}=Wi(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)(AP,{data:(0,I.useMemo)(()=>({...e,series:e.series.filter(e=>a(qI(e))).map(e=>({...e,color:e.color??zi(qI(e),i)}))}),[e,a,i]),yAxis:t,xDomain:n,fillParent:r,hideLegend:!0})}),i.length>0&&(0,L.jsx)(Hi,{nodeIds:i,isActive:a,onClickNode:o})]})}function YI(e,t,n,r,i){switch(e){case`line`:return(0,L.jsx)(JI,{data:t,yAxis:n,xDomain:r,fillParent:i});case`stacked-area`:return(0,L.jsx)(lF,{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 XI(e,t){return e.primitive===`stacked-area`&&t&&e.series.kind===`groupBy`&&e.series.dimension!==`node`}function ZI(e,t){return e.primitive===`line`&&!t&&e.series.kind===`groupBy`&&e.series.dimension===`node`}function QI(e){return e.primitive===`line`&&e.series.kind===`groupBy`&&e.series.dimension!==`node`}var $I=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 eL({metric:e,records:t,window:n,nodes:r,viewMode:i,fillParent:a}){let o=(0,L.jsx)(KI,{metric:e,records:t,hint:`Render failed — showing fallback.`}),s=[n.startTime,n.endTime],c,l=CF[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=YI(l.primitive,e,l.yAxis,s,a)}else{let o=VI[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)(iF,{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(XI(o.spec,e)&&o.spec.series.kind===`groupBy`)c=YI(`stacked-area`,$({...o.spec,series:{...o.spec.series,dimension:`node`}},t,n,r,{snapToPeriod:!0}),o.spec.yAxis,s,a);else if(ZI(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=YI(o.spec.primitive,i,o.spec.yAxis,s,a)}else if(QI(o.spec))c=YI(`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=YI(o.spec.primitive,i,o.spec.yAxis,s,a)}}else c=(0,L.jsx)(KI,{metric:e,records:t})}return(0,L.jsx)($I,{fallback:o,children:c},e)}function tL(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 nL=(()=>{let e=0,t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function rL(e){let t=[];for(let n=0,r=e.length;n<r;n++)t.push(e[n]);return t}var iL=null;function aL(e={}){return iL||(e.includeStyleProperties?(iL=e.includeStyleProperties,iL):(iL=rL(window.getComputedStyle(document.documentElement)),iL))}function oL(e,t){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return n?parseFloat(n.replace(`px`,``)):0}function sL(e){let t=oL(e,`border-left-width`),n=oL(e,`border-right-width`);return e.clientWidth+t+n}function cL(e){let t=oL(e,`border-top-width`),n=oL(e,`border-bottom-width`);return e.clientHeight+t+n}function lL(e,t={}){return{width:t.width||sL(e),height:t.height||cL(e)}}function uL(){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 dL=16384;function fL(e){(e.width>dL||e.height>dL)&&(e.width>dL&&e.height>dL?e.width>e.height?(e.height*=dL/e.width,e.width=dL):(e.width*=dL/e.height,e.height=dL):e.width>dL?(e.height*=dL/e.width,e.width=dL):(e.width*=dL/e.height,e.height=dL))}function pL(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 mL(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 hL(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(e=>`data:image/svg+xml;charset=utf-8,${e}`)}async function gL(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),hL(i)}var _L=(e,t)=>{if(e instanceof t)return!0;let n=Object.getPrototypeOf(e);return n===null?!1:n.constructor.name===t.name||_L(n,t)};function vL(e){let t=e.getPropertyValue(`content`);return`${e.cssText} content: '${t.replace(/'|"/g,``)}';`}function yL(e,t){return aL(t).map(t=>`${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t)?` !important`:``};`).join(` `)}function bL(e,t,n,r){let i=`.${e}:${t}`,a=n.cssText?vL(n):yL(n,r);return document.createTextNode(`${i}{${a}}`)}function xL(e,t,n,r){let i=window.getComputedStyle(e,n),a=i.getPropertyValue(`content`);if(a===``||a===`none`)return;let o=nL();try{t.className=`${t.className} ${o}`}catch{return}let s=document.createElement(`style`);s.appendChild(bL(o,n,i,r)),t.appendChild(s)}function SL(e,t,n){xL(e,t,`:before`,n),xL(e,t,`:after`,n)}var CL=`application/font-woff`,wL=`image/jpeg`,TL={woff:CL,woff2:CL,ttf:`application/font-truetype`,eot:`application/vnd.ms-fontobject`,png:`image/png`,jpg:wL,jpeg:wL,gif:`image/gif`,tiff:`image/tiff`,svg:`image/svg+xml`,webp:`image/webp`};function EL(e){let t=/\.([^./]*?)$/g.exec(e);return t?t[1]:``}function DL(e){return TL[EL(e).toLowerCase()]||``}function OL(e){return e.split(/,/)[1]}function kL(e){return e.search(/^(data:)/)!==-1}function AL(e,t){return`data:${t};base64,${e}`}async function jL(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 ML={};function NL(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 PL(e,t,n){let r=NL(e,t,n.includeQueryParams);if(ML[r]!=null)return ML[r];n.cacheBust&&(e+=(/\?/.test(e)?`&`:`?`)+new Date().getTime());let i;try{i=AL(await jL(e,n.fetchRequestInit,({res:e,result:n})=>(t||=e.headers.get(`Content-Type`)||``,OL(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 ML[r]=i,i}async function FL(e){let t=e.toDataURL();return t===`data:,`?e.cloneNode(!1):mL(t)}async function IL(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),mL(t.toDataURL())}let n=e.poster;return mL(await PL(n,DL(n),t))}async function LL(e,t){try{if(e?.contentDocument?.body)return await qL(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function RL(e,t){return _L(e,HTMLCanvasElement)?FL(e):_L(e,HTMLVideoElement)?IL(e,t):_L(e,HTMLIFrameElement)?LL(e,t):e.cloneNode(BL(e))}var zL=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SLOT`,BL=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SVG`;async function VL(e,t,n){if(BL(t))return t;let r=[];return r=zL(e)&&e.assignedNodes?rL(e.assignedNodes()):_L(e,HTMLIFrameElement)&&e.contentDocument?.body?rL(e.contentDocument.body.childNodes):rL((e.shadowRoot??e).childNodes),r.length===0||_L(e,HTMLVideoElement)||await r.reduce((e,r)=>e.then(()=>qL(r,n)).then(e=>{e&&t.appendChild(e)}),Promise.resolve()),t}function HL(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):aL(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`),_L(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 UL(e,t){_L(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),_L(e,HTMLInputElement)&&t.setAttribute(`value`,e.value)}function WL(e,t){if(_L(e,HTMLSelectElement)){let n=t,r=Array.from(n.children).find(t=>e.value===t.getAttribute(`value`));r&&r.setAttribute(`selected`,``)}}function GL(e,t,n){return _L(t,Element)&&(HL(e,t,n),SL(e,t,n),UL(e,t),WL(e,t)),t}async function KL(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 qL(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 qL(e,t,n){return!n&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(e=>RL(e,t)).then(n=>VL(e,n,t)).then(n=>GL(e,n,t)).then(e=>KL(e,t))}var JL=/url\((['"]?)([^'"]+?)\1\)/g,YL=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,XL=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function ZL(e){let t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,`\\$1`);return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,`g`)}function QL(e){let t=[];return e.replace(JL,(e,n,r)=>(t.push(r),e)),t.filter(e=>!kL(e))}async function $L(e,t,n,r,i){try{let a=n?tL(t,n):t,o=DL(t),s;return s=i?AL(await i(a),o):await PL(a,o,r),e.replace(ZL(t),`$1${s}$3`)}catch{}return e}function eR(e,{preferredFontFormat:t}){return t?e.replace(XL,e=>{for(;;){let[n,,r]=YL.exec(e)||[];if(!r)return``;if(r===t)return`src: ${n};`}}):e}function tR(e){return e.search(JL)!==-1}async function nR(e,t,n){if(!tR(e))return e;let r=eR(e,n);return QL(r).reduce((e,r)=>e.then(e=>$L(e,r,t,n)),Promise.resolve(r))}async function rR(e,t,n){let r=t.style?.getPropertyValue(e);if(r){let i=await nR(r,null,n);return t.style.setProperty(e,i,t.style.getPropertyPriority(e)),!0}return!1}async function iR(e,t){await rR(`background`,e,t)||await rR(`background-image`,e,t),await rR(`mask`,e,t)||await rR(`-webkit-mask`,e,t)||await rR(`mask-image`,e,t)||await rR(`-webkit-mask-image`,e,t)}async function aR(e,t){let n=_L(e,HTMLImageElement);if(!(n&&!kL(e.src))&&!(_L(e,SVGImageElement)&&!kL(e.href.baseVal)))return;let r=n?e.src:e.href.baseVal,i=await PL(r,DL(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 oR(e,t){let n=rL(e.childNodes).map(e=>sR(e,t));await Promise.all(n).then(()=>e)}async function sR(e,t){_L(e,Element)&&(await iR(e,t),await aR(e,t),await oR(e,t))}function cR(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 lR={};async function uR(e){let t=lR[e];return t??(t={url:e,cssText:await(await fetch(e)).text()},lR[e]=t,t)}async function dR(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),jL(a,t.fetchRequestInit,({result:e})=>(n=n.replace(i,`url(${e})`),[i,e]))});return Promise.all(i).then(()=>n)}function fR(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 pR(e,t){let n=[],r=[];return e.forEach(n=>{if(`cssRules`in n)try{rL(n.cssRules||[]).forEach((e,i)=>{if(e.type===CSSRule.IMPORT_RULE){let a=i+1,o=e.href,s=uR(o).then(e=>dR(e,t)).then(e=>fR(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(uR(n.href).then(e=>dR(e,t)).then(e=>fR(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{rL(e.cssRules||[]).forEach(e=>{n.push(e)})}catch(t){console.error(`Error while reading CSS rules from ${e.href}`,t)}}),n))}function mR(e){return e.filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>tR(e.style.getPropertyValue(`src`)))}async function hR(e,t){if(e.ownerDocument==null)throw Error(`Provided element is not within a Document`);return mR(await pR(rL(e.ownerDocument.styleSheets),t))}function gR(e){return e.trim().replace(/["']/g,``)}function _R(e){let t=new Set;function n(e){(e.style.fontFamily||getComputedStyle(e).fontFamily).split(`,`).forEach(e=>{t.add(gR(e))}),Array.from(e.children).forEach(e=>{e instanceof HTMLElement&&n(e)})}return n(e),t}async function vR(e,t){let n=await hR(e,t),r=_R(e);return(await Promise.all(n.filter(e=>r.has(gR(e.style.fontFamily))).map(e=>{let n=e.parentStyleSheet?e.parentStyleSheet.href:null;return nR(e.cssText,n,t)}))).join(`
60
60
  `)}async function yR(e,t){let n=t.fontEmbedCSS==null?t.skipFonts?null:await vR(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 bR(e,t={}){let{width:n,height:r}=lL(e,t),i=await qL(e,t,!0);return await yR(i,t),await sR(i,t),cR(i,t),await gL(i,n,r)}async function xR(e,t={}){let{width:n,height:r}=lL(e,t),i=await mL(await bR(e,t)),a=document.createElement(`canvas`),o=a.getContext(`2d`),s=t.pixelRatio||uL(),c=t.canvasWidth||n,l=t.canvasHeight||r;return a.width=c*s,a.height=l*s,t.skipAutoScale||fL(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 SR(e,t={}){return await pL(await xR(e,t))}function CR(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 wR(e,t=3){let n=await SR(e,{pixelRatio:t,backgroundColor:CR(e)});if(!n)throw Error(`Failed to capture chart as image`);return n}function TR(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 ER(e,t){TR(await wR(e),t)}async function DR(e){if(typeof ClipboardItem>`u`||!navigator.clipboard?.write)return!1;try{let t=await wR(e);return await navigator.clipboard.write([new ClipboardItem({"image/png":t})]),!0}catch{return!1}}function OR(e){return e.replace(/[^a-z0-9-]+/gi,`-`).replace(/(^-|-$)/g,``).toLowerCase()}function kR(e){return new Date(e).toISOString().replace(/[:.]/g,`-`)}function AR(e,t){return`${OR(e)}-${kR(t.endTime)}.png`}function jR(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 MR(e){return e==null?``:String(e)}var NR=`\r
61
- `;function PR(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 FR(e){let t=e.ceiling?[...e.series,e.ceiling]:[...e.series],n=[`timestamp`,...PR(t)].map(jR).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=[jR(new Date(e).toISOString())];for(let n of i)t.push(MR(n.get(e)));return t.join(`,`)})].join(NR)+NR}function IR(e,t,n,r){if(e==null)return`absent`;let i=t??0;return i<n?`suppress`:i<r?`grey`:`ok`}function LR(e,t=`value`){let n=e.confidence,r=[`row`,`col`,jR(t),`count`];return n&&r.push(`confidence`),[r.join(`,`),...e.cells.map(e=>{let t=[jR(e.row),jR(e.col),MR(e.value),MR(e.count)];return n&&t.push(IR(e.value,e.count,n.greyBelow??0,n.suppressBelow??0)),t.join(`,`)})].join(NR)+NR}function RR(e){return e.kind===`heatmap`?LR(e.data,e.valueColumn):FR(e.data)}function zR(e,t){return`${OR(e)}-${kR(t.startTime)}-${kR(t.endTime)}.csv`}function BR(e,t){TR(new Blob([``,e],{type:`text/csv;charset=utf-8`}),t)}var VR=`p95`;function HR(e,t,n,r,i){if(t.length===0)return null;let a=CF[e];if(a)return{kind:`series`,data:a.recompute(t,n,r,i)};let o=VI[e],s=o?.spec;if(!s)return null;if(s.primitive===`heatmap`)return{kind:`heatmap`,data:bI(t,r,VR),valueColumn:VR};if(o.Renderer)return{kind:`series`,data:$(s,e===`connection`?QP(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 XI(s,c)&&s.series.kind===`groupBy`?{kind:`series`,data:$({...s,series:{...s.series,dimension:`node`}},t,n,r,{snapToPeriod:!0})}:ZI(s,c)&&s.series.kind===`groupBy`?{kind:`series`,data:$({...s,series:{kind:`field`,fields:[{...s.series.field,label:`cluster`}]}},t,n,r,{snapToPeriod:!0})}:QI(s)?{kind:`series`,data:$(s,t,n,r,{perNode:!1,snapToPeriod:!0})}:{kind:`series`,data:$(s,t,n,r,{perNode:c,snapToPeriod:!0})}}var UR={"request-rate":[`count`,`period`],"error-rate":[`count`,`total`]},WR=new Map;function GR(e){let t=WR.get(e);return t||(t=KR(e),WR.set(e,t)),t}function KR(e){let t=UR[e];if(t)return t;if(CF[e])return[];let n=VI[e];return n?.spec?qR(n.spec):[]}function qR(e){let t=new Set,n=e.series,r=!1;if(n.kind===`field`)for(let e of n.fields)YR(e,t),JR(e.transform)&&(r=!0);else YR(n.field,t),JR(n.field.transform)&&(r=!0),n.dimension&&n.dimension!==`node`&&t.add(n.dimension);return r&&t.add(`period`),[...t]}function JR(e){if(!e)return!1;switch(e.kind){case`rate`:return!0;case`compose`:return e.steps.some(JR);default:return!1}}function YR(e,t){XR(e.field,t)}function XR(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`:XR(e.left,t),XR(e.right,t);return}}var ZR=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 QR({captureRef:e,exportSlug:t}){let[n,r]=(0,I.useState)(!1);return(0,L.jsxs)(te,{children:[(0,L.jsx)(ue,{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 DR(t)?C.success(`Chart copied to clipboard`):C.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),C.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)(tn,{className:`h-4 w-4`})})}),(0,L.jsx)(A,{side:`top`,children:`Copy to clipboard`})]})}function $R({exportSlug:e,getCsvData:t}){let{timeRange:n}=Si();return(0,L.jsxs)(te,{children:[(0,L.jsx)(ue,{asChild:!0,children:(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:()=>{let r=zR(e,n);try{let e=t();if(!e){C.error(`No data to export`);return}BR(RR(e),r),C.success(`Saved ${r}`)}catch(e){console.error(`[chart-csv] export failed`,e),C.error(`Could not export CSV`,{description:e instanceof Error?e.message:`Unknown error`})}},"aria-label":`Download ${e} as CSV`,children:(0,L.jsx)(nn,{className:`h-4 w-4`})})}),(0,L.jsx)(A,{side:`top`,children:`Download as CSV`})]})}function ez({captureRef:e,exportSlug:t}){let{timeRange:n}=Si(),[r,i]=(0,I.useState)(!1);return(0,L.jsxs)(te,{children:[(0,L.jsx)(ue,{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=AR(t,n);try{await ER(a,o),C.success(`Saved ${o}`)}catch(e){console.error(`[chart-export] capture failed`,e),C.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)(he,{className:`h-4 w-4`})})}),(0,L.jsx)(A,{side:`top`,children:`Download as PNG`})]})}function tz({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)(te,{children:[(0,L.jsx)(ue,{asChild:!0,children:(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:()=>s(!0),"aria-label":`Expand ${e}`,children:(0,L.jsx)(rn,{className:`h-4 w-4`})})}),(0,L.jsx)(A,{side:`top`,children:`Expand`})]}),(0,L.jsx)(ne,{open:o,onOpenChange:s,children:(0,L.jsxs)(le,{className:`!max-w-[95vw] sm:!max-w-[95vw] h-[90vh] flex flex-col`,children:[(0,L.jsx)(ae,{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)(re,{children:t}),n&&(0,L.jsx)(ee,{children:n})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(QR,{captureRef:c,exportSlug:`${e}-expanded`}),(0,L.jsx)(ez,{captureRef:c,exportSlug:`${e}-expanded`}),i&&(0,L.jsx)($R,{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 nz({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)(tz,{exportSlug:r,title:e,description:n,renderChart:a,getCsvData:o}),(0,L.jsx)(QR,{captureRef:c,exportSlug:r}),(0,L.jsx)(ez,{captureRef:c,exportSlug:r}),o&&(0,L.jsx)($R,{exportSlug:r,getCsvData:o})]})]}),(0,L.jsx)(E,{children:(0,L.jsx)(`div`,{ref:c,children:s})})]})}function rz({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: ${be(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 iz(e){let t=new Set;for(let n of e)typeof n.node==`string`&&t.add(n.node);return[...t].sort()}function az({metric:e,titleOverride:t}){let{timeRange:n}=Si();return(0,L.jsx)(ZR,{metric:e,resetKey:`${n.startTime}-${n.endTime}`,children:(0,L.jsx)(oz,{metric:e,titleOverride:t})})}function oz({metric:e,titleOverride:t}){let{timeRange:n,bucketMs:r,instanceParams:i}=Si(),a=CF[e]?.sourceMetric??e,o=GR(e),{data:s,isLoading:c,isError:l,error:u,isEmpty:d,missingFields:f,isPlaceholderData:p,refetch:m}=Li({metric:a,startTime:n.startTime,endTime:n.endTime,instanceParams:i,bucketMs:r,requiredFields:o}),h=VI[e],g=CF[e],_=t??h?.spec?.title??g?.title??e,v=h?.spec?.description??g?.subtitle,y=(0,I.useMemo)(()=>iz(s),[s]),b=!c&&!l&&!d&&!p,x=()=>HR(e,s,n,y),S=(t={fillParent:!1})=>(0,L.jsx)(eL,{metric:e,records:s,window:n,nodes:y,fillParent:t.fillParent});return(0,L.jsx)(nz,{title:_,description:v,exportSlug:e,canExport:b,renderChart:S,getCsvData:x,children:(0,L.jsx)(rz,{isLoading:c,isError:l,error:u,isEmpty:d,missingFields:f,onRetry:m,children:S()})})}var sz=[`db-read`,`db-write`,`db-message`];function cz(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:sz.map(e=>(0,L.jsx)(az,{metric:e},e))})}function lz(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 uz(e){return e.length>0?e[e.length-1].y:null}function dz(e){return e.length===0?null:e.reduce((e,t)=>e+t.y,0)/e.length}var fz=.05;function pz(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)<fz?`flat`:n>0?`up`:`down`}}var mz=6e4,hz=60*mz,gz=24*hz;function _z(e){return e%hz===0&&e<=48*hz?`${e/hz}h`:e%gz===0?`${e/gz}d`:`${Math.max(1,Math.round(e/mz))}m`}var vz=120,yz=32,bz=2;function xz({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*vz,o===a?yz/2:bz+(1-(e.y-a)/s)*(yz-2*bz)]),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 ${vz} ${yz}`,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 Sz(e){let{timeRange:t,bucketMs:n,instanceParams:r}=Si(),i=t.endTime-t.startTime,a=Math.floor(t.startTime/n)*n,o=a-i,s=Li({metric:e.metric,startTime:t.startTime,endTime:t.endTime,instanceParams:r,bucketMs:n}),c=Li({metric:e.metric,startTime:o,endTime:a,instanceParams:r,bucketMs:n}),l=(0,I.useMemo)(()=>s.isError?[]:lz($(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 dz(lz($(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=pz(dz(l),u),d.current=f),{latest:uz(l),delta:f,sparkPoints:l,isLoading:s.isLoading,timeRange:t,windowMs:i}}function Cz({def:e}){let{latest:t,delta:n,sparkPoints:r,isLoading:i,timeRange:a,windowMs:o}=Sz(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)(xe,{className:`h-7 w-20`}),(0,L.jsx)(xe,{className:`h-4 w-24`}),(0,L.jsx)(xe,{className:`h-8 w-full`})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`text-2xl font-semibold leading-tight`,children:Se(t,e.formatter)}),(0,L.jsx)(wz,{delta:t===null?null:n,windowMs:o}),(0,L.jsx)(xz,{points:r,xDomain:[a.startTime,a.endTime]})]})]})})}function wz({delta:e,windowMs:t}){if(!e)return(0,L.jsx)(`div`,{className:`h-4`,"aria-hidden":`true`});let n=_z(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`?de:e.direction===`down`?M:an;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 Tz(e){return{title:``,description:``,tab:`health`,primaryDimension:`node`,timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},primitive:`line`,yAxis:{unit:``},...e}}var Ez=[{id:`cpu`,label:`CPU (p95)`,metric:`cpu-usage`,spec:Tz({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:Tz({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:Tz({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:Tz({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:Tz({series:{kind:`field`,fields:[{field:`p95`,label:`p95 duration (ms)`}]},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`}}),combine:`mean`,formatter:`ms`}];function Dz(){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:Ez.map(e=>(0,L.jsx)(Cz,{def:e},e.id))})}var Oz=[`resource-usage`,`memory`,`main-thread-utilization`,`cpu-usage`,`utilization`];function kz(){return(0,L.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,L.jsx)(Dz,{}),(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:Oz.map(e=>(0,L.jsx)(az,{metric:e},e))})]})}function Az({...e}){return(0,L.jsx)(y,{"data-slot":`accordion`,...e})}function jz({className:e,...t}){return(0,L.jsx)(x,{"data-slot":`accordion-item`,className:i(`border-b last:border-b-0`,e),...t})}function Mz({className:e,children:t,...n}){return(0,L.jsx)(b,{className:`flex`,children:(0,L.jsxs)(v,{"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)(fe,{className:`text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200`})]})})}function Nz({className:e,children:t,...n}){return(0,L.jsx)(S,{"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 Pz({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 Fz=new Date(2025,0).getTime(),Iz=1440*60*1e3;function Lz(e){let t=[];for(let n in e){let r=e[n];t.push(...zz(n,r,0))}return t}function Rz(e){return!!e.title}function zz(e,t,n,r){if(t&&Array.isArray(t)){let r=t;return[r.length>1&&{title:e,depth:n},...t.map((t,i)=>zz(r.length>1?String(i+1):e,t,n+1,e)).flat(1)].filter(Ae)}if(Bz(t)){let r=t;return[{title:e,depth:n},...Object.keys(t).map(t=>zz(String(t),r[t],n+1,e)).flat(1)]}return(e===`__updatedtime__`||e===`__createdtime__`)&&(e=e.replace(/_/g,``).replace(`time`,``)),typeof t==`number`?t>Fz&&t<Date.now()+Iz?t=Ce(Date.now()-t,t):r===`memory`?t=ce(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 Bz(e){return!!e&&typeof e==`object`}function Vz({instanceParams:e,isLocalStudio:t}){let{timeRange:n}=Si();return(0,L.jsx)(ZR,{metric:`overview`,resetKey:`${String(e.entityId)}-${n.startTime}-${n.endTime}`,children:(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(Hz,{}),children:t?(0,L.jsx)(Uz,{instanceParams:e}):(0,L.jsx)(Wz,{instanceParams:e})})})}function Hz(){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 Uz({instanceParams:e}){let{data:t}=c(Pz(e));return(0,L.jsx)(Gz,{data:t})}function Wz({instanceParams:e}){let{data:t}=c(we(e));return(0,L.jsx)(Gz,{data:t})}function Gz({data:e}){let t=(0,I.useMemo)(()=>qz(e),[e]);return(0,L.jsxs)(`div`,{className:`space-y-4`,children:[(0,L.jsx)(Az,{type:`multiple`,defaultValue:t.slice(0,1).map(e=>e.title),children:t.map(e=>(0,L.jsxs)(jz,{value:e.title,children:[(0,L.jsx)(Mz,{className:`text-base font-semibold`,children:e.title}),(0,L.jsx)(Nz,{children:(0,L.jsx)(Kz,{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 Kz({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)(Kz,{section:e})]},e.title))]})}function qz(e){let t=Lz(e),n=[],r=[],i=null;for(let e of t)if(Rz(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 Jz(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:(0,L.jsx)(az,{metric:`replication-latency`})})}var Yz=[`request-rate`,`error-rate`,`duration`,`success`,`transfer`,`response_200`,`cache-hit`,`cache-resolution`];function Xz(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:Yz.map(e=>(0,L.jsx)(az,{metric:e},e))})}var Zz=[`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)`],Qz=`var(--chart-other)`;function $z(e){return Zz[e%Zz.length]}var eB=`__other__`,tB=4096;function nB(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 rB(e){return`${e.database}.${e.table}`}function iB(e){let t=e.map(e=>({database:e.database,table:e.table,tableKey:rB(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 aB(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 oB(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>tB);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 sB(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[eB]=(r.stacks.__other__??0)+e)}return[...a.values()].sort((e,t)=>e.node.localeCompare(t.node))}function cB(e,t,n){let r=nB(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 lB(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 uB(e,t,n){return e===0?`upstream-empty`:t.length===0&&n?`all-other`:null}function dB(e,t,n){let r=aB(iB(e)),{tableSet:i,hasOther:a,otherMembers:o}=oB(r),s=sB(r,i,a),c=cB(r,t,n),l=uB(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=>lB(r,e),emptyCause:l,signature:d}}function fB(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 pB({tableSet:e,hasOther:t,selectedTable:n,onSelectTable:r}){let{getRadioProps:i}=Ki(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=$z(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 mB=e=>Se(e,`bytes-si`);function hB(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 gB({snapshot:e,viewMode:t,selectedTable:n,onChipSelect:r,onBarClick:i,allOtherHint:a}){let o=_P(),s=e.byNode.map(e=>e.node),{isActive:c,handleLegendClick:l}=Wi(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?[eB]:[]],f=hB(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)(Yu,{width:`100%`,height:`100%`,minWidth:0,children:(0,L.jsxs)(mP,{data:f,barCategoryGap:`20%`,children:[(0,L.jsx)(PO,{stroke:o.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(oM,{dataKey:`node`,stroke:o.axisColor,tick:{fontSize:11}}),(0,L.jsx)(xM,{stroke:o.axisColor,tick:{fontSize:11},tickFormatter:e=>{let t=Number(e);return u?`${Math.round(t/p*100)}%`:mB(t)},domain:u?[0,p]:[`auto`,`auto`]}),(0,L.jsx)(hS,{contentStyle:SP,labelStyle:CP,itemStyle:wP,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[`${mB(a)} (${s}% of node total ${mB(o)})`,i]}}),d.map((e,t)=>{let r=e===`__other__`?Qz:$z(t),a=e===n;return(0,L.jsx)(zj,{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)(gS,{"data-testid":`table-size-segment`,"data-table":e,"data-node":t.node},t.node))},e)})]})})}),(0,L.jsx)(Hi,{nodeIds:s,isActive:c,onClickNode:l}),(0,L.jsx)(pB,{tableSet:e.tableSet,hasOther:e.hasOther,selectedTable:n,onSelectTable:r})]})}var _B=e=>Se(e,`bytes-si`);function vB({derived:e,viewMode:t,selectedTable:n,onChipSelect:r,manualSelection:i,range:a,clusterNodeIds:o,rankBy:s,onRankChange:c,fillParent:l}){let u=_P(),d=wi(!!l),{hovered:f,gateProps:p}=TP(),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:_}=Wi(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)(Yu,{width:`100%`,height:`100%`,minWidth:0,children:(0,L.jsxs)(fP,{data:b,...d,children:[(0,L.jsx)(PO,{stroke:u.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(oM,{dataKey:`time`,type:`number`,domain:[a.startTime,a.endTime],allowDataOverflow:!0,tickFormatter:bP,stroke:u.axisColor,tick:{fontSize:11},allowDuplicatedCategory:!1}),(0,L.jsx)(xM,{stroke:u.axisColor,tick:{fontSize:11},tickFormatter:_B,scale:t===`per-node`?`log`:`auto`,domain:t===`per-node`?[1,`auto`]:[`auto`,`auto`],allowDataOverflow:!0}),(0,L.jsx)(hS,{isAnimationActive:!1,content:(0,L.jsx)(DP,{hidden:!f,formatter:`bytes-si`,nodeNames:h})}),h.filter(e=>g(e)).map(e=>(0,L.jsx)(Rk,{dataKey:y.get(e),name:`${e} ${fB({points:m,node:e,windowMs:v,rankBy:s,formatBytes:_B})}`.trim(),stroke:zi(e,o),strokeWidth:2,dot:!1,type:`monotone`,connectNulls:!1},e))]})})}),(0,L.jsx)(Hi,{nodeIds:h,isActive:g,onClickNode:_}),(0,L.jsx)(pB,{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 yB(e){return e.snapshot.byNode.map(e=>e.node)}function bB(){return(0,L.jsxs)(`div`,{className:`grid grid-cols-1 gap-4`,children:[(0,L.jsx)(ZR,{metric:`table-size`,children:(0,L.jsx)(xB,{})}),(0,L.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:[(0,L.jsx)(az,{metric:`database-size`}),(0,L.jsx)(az,{metric:`transaction-log-growth`}),(0,L.jsx)(az,{metric:`storage-volume`})]})]})}function xB(){let{timeRange:e,bucketMs:t,instanceParams:n}=Si(),{data:r,isLoading:i,isError:a}=Li({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)(()=>dB(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)(gB,{snapshot:s.snapshot,viewMode:`per-node`,selectedTable:m,onChipSelect:d,onBarClick:d,allOtherHint:s.emptyCause===`all-other`}),g=t=>m?(0,L.jsx)(vB,{derived:s,viewMode:`per-node`,selectedTable:m,onChipSelect:d,manualSelection:u!==null,range:e,clusterNodeIds:yB(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)(tz,{exportSlug:`table-size-snapshot`,title:`Table size — snapshot`,description:`Bytes per table, per node.`,renderChart:h}),(0,L.jsx)(QR,{captureRef:f,exportSlug:`table-size-snapshot`}),(0,L.jsx)(ez,{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)(tz,{exportSlug:`table-size-trend`,title:`Table size — trend: ${m}`,description:`Growth of ${m} over the selected window.`,renderChart:g}),(0,L.jsx)(QR,{captureRef:p,exportSlug:`table-size-trend`}),(0,L.jsx)(ez,{captureRef:p,exportSlug:`table-size-trend`})]})]}),(0,L.jsx)(E,{children:g()})]})]})}var SB=BI.connections.Renderer;function CB(){let{timeRange:e}=Si();return(0,L.jsx)(ZR,{metric:`connections`,resetKey:`${e.startTime}-${e.endTime}`,children:(0,L.jsx)(wB,{})})}function wB(){let{timeRange:e,bucketMs:t,instanceParams:n}=Si(),r=Li({metric:`mqtt-connections`,startTime:e.startTime,endTime:e.endTime,instanceParams:n,bucketMs:t}),i=Li({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)(()=>iz(c),[c]),d=!a&&!o&&!l&&!r.isPlaceholderData&&!i.isPlaceholderData,f=()=>HR(`connections`,c,e,u),p=(t={fillParent:!1})=>(0,L.jsx)(SB,{records:c,timeRange:e,nodes:u,fillParent:t.fillParent});return(0,L.jsx)(nz,{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)(rz,{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 TB=[`mqtt-traffic-sent`,`mqtt-traffic-received`,`bytes-sent`,`bytes-received`,`tls-reused`,`connection`];function EB(){return(0,L.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:[(0,L.jsx)(CB,{}),TB.map(e=>(0,L.jsx)(az,{metric:e},e))]})}var DB=[{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 OB({instanceParams:e,isLocalStudio:t}){return(0,L.jsx)(AB,{instanceParams:e,isLocalStudio:t,capability:Pi(e)})}function kB({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 AB({instanceParams:e,isLocalStudio:t,capability:n}){let r=m(),{tab:i,range:a,refresh:o}=De(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=Te(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)(Oi,{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)(kB,{capability:n}):(0,L.jsx)(jB,{picker:S,children:e});return(0,L.jsx)(xi,{value:x,children:(0,L.jsxs)(ye,{value:i,onValueChange:e=>g(e),className:`px-4 py-2`,children:[i!==`overview`&&!n.isLoading&&!n.error&&(0,L.jsx)(yi,{}),(0,L.jsx)(`div`,{className:`md:hidden mb-3`,children:(0,L.jsxs)(ie,{value:i,onValueChange:e=>g(e),children:[(0,L.jsx)(se,{className:`w-full`,"aria-label":`Select status tab`,children:(0,L.jsx)(N,{})}),(0,L.jsx)(oe,{children:DB.map(e=>(0,L.jsx)(j,{value:e.id,children:e.label},e.id))})]})}),(0,L.jsx)(ve,{className:`hidden md:inline-flex max-w-full overflow-x-auto mb-4`,children:DB.map(e=>(0,L.jsx)(ge,{value:e.id,children:e.label},e.id))}),(0,L.jsx)(_e,{value:`health`,children:C((0,L.jsx)(kz,{}))}),(0,L.jsx)(_e,{value:`traffic`,children:C((0,L.jsx)(EB,{}))}),(0,L.jsx)(_e,{value:`requests`,children:C((0,L.jsx)(Xz,{}))}),(0,L.jsx)(_e,{value:`database`,children:C((0,L.jsx)(cz,{}))}),(0,L.jsx)(_e,{value:`replication`,children:C((0,L.jsx)(Jz,{}))}),(0,L.jsx)(_e,{value:`storage`,children:C((0,L.jsx)(bB,{}))}),(0,L.jsx)(_e,{value:`overview`,children:(0,L.jsx)(Vz,{instanceParams:e,isLocalStudio:t})})]})})}function jB({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 MB(){return(0,L.jsx)(OB,{instanceParams:Oe(),isLocalStudio:!0})}export{MB as StatusIndex};
62
- //# sourceMappingURL=status-CtgqjZ6q.js.map
61
+ `;function PR(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 FR(e){let t=e.ceiling?[...e.series,e.ceiling]:[...e.series],n=[`timestamp`,...PR(t)].map(jR).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=[jR(new Date(e).toISOString())];for(let n of i)t.push(MR(n.get(e)));return t.join(`,`)})].join(NR)+NR}function IR(e,t,n,r){if(e==null)return`absent`;let i=t??0;return i<n?`suppress`:i<r?`grey`:`ok`}function LR(e,t=`value`){let n=e.confidence,r=[`row`,`col`,jR(t),`count`];return n&&r.push(`confidence`),[r.join(`,`),...e.cells.map(e=>{let t=[jR(e.row),jR(e.col),MR(e.value),MR(e.count)];return n&&t.push(IR(e.value,e.count,n.greyBelow??0,n.suppressBelow??0)),t.join(`,`)})].join(NR)+NR}function RR(e){return e.kind===`heatmap`?LR(e.data,e.valueColumn):FR(e.data)}function zR(e,t){return`${OR(e)}-${kR(t.startTime)}-${kR(t.endTime)}.csv`}function BR(e,t){TR(new Blob([``,e],{type:`text/csv;charset=utf-8`}),t)}var VR=`p95`;function HR(e,t,n,r,i){if(t.length===0)return null;let a=CF[e];if(a)return{kind:`series`,data:a.recompute(t,n,r,i)};let o=VI[e],s=o?.spec;if(!s)return null;if(s.primitive===`heatmap`)return{kind:`heatmap`,data:bI(t,r,VR),valueColumn:VR};if(o.Renderer)return{kind:`series`,data:$(s,e===`connection`?QP(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 XI(s,c)&&s.series.kind===`groupBy`?{kind:`series`,data:$({...s,series:{...s.series,dimension:`node`}},t,n,r,{snapToPeriod:!0})}:ZI(s,c)&&s.series.kind===`groupBy`?{kind:`series`,data:$({...s,series:{kind:`field`,fields:[{...s.series.field,label:`cluster`}]}},t,n,r,{snapToPeriod:!0})}:QI(s)?{kind:`series`,data:$(s,t,n,r,{perNode:!1,snapToPeriod:!0})}:{kind:`series`,data:$(s,t,n,r,{perNode:c,snapToPeriod:!0})}}var UR={"request-rate":[`count`,`period`],"error-rate":[`count`,`total`]},WR=new Map;function GR(e){let t=WR.get(e);return t||(t=KR(e),WR.set(e,t)),t}function KR(e){let t=UR[e];if(t)return t;if(CF[e])return[];let n=VI[e];return n?.spec?qR(n.spec):[]}function qR(e){let t=new Set,n=e.series,r=!1;if(n.kind===`field`)for(let e of n.fields)YR(e,t),JR(e.transform)&&(r=!0);else YR(n.field,t),JR(n.field.transform)&&(r=!0),n.dimension&&n.dimension!==`node`&&t.add(n.dimension);return r&&t.add(`period`),[...t]}function JR(e){if(!e)return!1;switch(e.kind){case`rate`:return!0;case`compose`:return e.steps.some(JR);default:return!1}}function YR(e,t){XR(e.field,t)}function XR(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`:XR(e.left,t),XR(e.right,t);return}}var ZR=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 QR({captureRef:e,exportSlug:t}){let[n,r]=(0,I.useState)(!1);return(0,L.jsxs)(te,{children:[(0,L.jsx)(ue,{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 DR(t)?C.success(`Chart copied to clipboard`):C.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),C.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)(tn,{className:`h-4 w-4`})})}),(0,L.jsx)(A,{side:`top`,children:`Copy to clipboard`})]})}function $R({exportSlug:e,getCsvData:t}){let{timeRange:n}=Si();return(0,L.jsxs)(te,{children:[(0,L.jsx)(ue,{asChild:!0,children:(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:()=>{let r=zR(e,n);try{let e=t();if(!e){C.error(`No data to export`);return}BR(RR(e),r),C.success(`Saved ${r}`)}catch(e){console.error(`[chart-csv] export failed`,e),C.error(`Could not export CSV`,{description:e instanceof Error?e.message:`Unknown error`})}},"aria-label":`Download ${e} as CSV`,children:(0,L.jsx)(nn,{className:`h-4 w-4`})})}),(0,L.jsx)(A,{side:`top`,children:`Download as CSV`})]})}function ez({captureRef:e,exportSlug:t}){let{timeRange:n}=Si(),[r,i]=(0,I.useState)(!1);return(0,L.jsxs)(te,{children:[(0,L.jsx)(ue,{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=AR(t,n);try{await ER(a,o),C.success(`Saved ${o}`)}catch(e){console.error(`[chart-export] capture failed`,e),C.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)(he,{className:`h-4 w-4`})})}),(0,L.jsx)(A,{side:`top`,children:`Download as PNG`})]})}function tz({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)(te,{children:[(0,L.jsx)(ue,{asChild:!0,children:(0,L.jsx)(a,{variant:`ghost`,size:`icon`,onClick:()=>s(!0),"aria-label":`Expand ${e}`,children:(0,L.jsx)(rn,{className:`h-4 w-4`})})}),(0,L.jsx)(A,{side:`top`,children:`Expand`})]}),(0,L.jsx)(ne,{open:o,onOpenChange:s,children:(0,L.jsxs)(le,{className:`!max-w-[95vw] sm:!max-w-[95vw] h-[90vh] flex flex-col`,children:[(0,L.jsx)(ae,{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)(re,{children:t}),n&&(0,L.jsx)(ee,{children:n})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(QR,{captureRef:c,exportSlug:`${e}-expanded`}),(0,L.jsx)(ez,{captureRef:c,exportSlug:`${e}-expanded`}),i&&(0,L.jsx)($R,{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 nz({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)(tz,{exportSlug:r,title:e,description:n,renderChart:a,getCsvData:o}),(0,L.jsx)(QR,{captureRef:c,exportSlug:r}),(0,L.jsx)(ez,{captureRef:c,exportSlug:r}),o&&(0,L.jsx)($R,{exportSlug:r,getCsvData:o})]})]}),(0,L.jsx)(E,{children:(0,L.jsx)(`div`,{ref:c,children:s})})]})}function rz({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: ${be(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 iz(e){let t=new Set;for(let n of e)typeof n.node==`string`&&t.add(n.node);return[...t].sort()}function az({metric:e,titleOverride:t}){let{timeRange:n}=Si();return(0,L.jsx)(ZR,{metric:e,resetKey:`${n.startTime}-${n.endTime}`,children:(0,L.jsx)(oz,{metric:e,titleOverride:t})})}function oz({metric:e,titleOverride:t}){let{timeRange:n,bucketMs:r,instanceParams:i}=Si(),a=CF[e]?.sourceMetric??e,o=GR(e),{data:s,isLoading:c,isError:l,error:u,isEmpty:d,missingFields:f,isPlaceholderData:p,refetch:m}=Li({metric:a,startTime:n.startTime,endTime:n.endTime,instanceParams:i,bucketMs:r,requiredFields:o}),h=VI[e],g=CF[e],_=t??h?.spec?.title??g?.title??e,v=h?.spec?.description??g?.subtitle,y=(0,I.useMemo)(()=>iz(s),[s]),b=!c&&!l&&!d&&!p,x=()=>HR(e,s,n,y),S=(t={fillParent:!1})=>(0,L.jsx)(eL,{metric:e,records:s,window:n,nodes:y,fillParent:t.fillParent});return(0,L.jsx)(nz,{title:_,description:v,exportSlug:e,canExport:b,renderChart:S,getCsvData:x,children:(0,L.jsx)(rz,{isLoading:c,isError:l,error:u,isEmpty:d,missingFields:f,onRetry:m,children:S()})})}var sz=[`db-read`,`db-write`,`db-message`];function cz(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:sz.map(e=>(0,L.jsx)(az,{metric:e},e))})}function lz(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 uz(e){return e.length>0?e[e.length-1].y:null}function dz(e){return e.length===0?null:e.reduce((e,t)=>e+t.y,0)/e.length}var fz=.05;function pz(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)<fz?`flat`:n>0?`up`:`down`}}var mz=6e4,hz=60*mz,gz=24*hz;function _z(e){return e%hz===0&&e<=48*hz?`${e/hz}h`:e%gz===0?`${e/gz}d`:`${Math.max(1,Math.round(e/mz))}m`}var vz=120,yz=32,bz=2;function xz({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*vz,o===a?yz/2:bz+(1-(e.y-a)/s)*(yz-2*bz)]),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 ${vz} ${yz}`,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 Sz(e){let{timeRange:t,bucketMs:n,instanceParams:r}=Si(),i=t.endTime-t.startTime,a=Math.floor(t.startTime/n)*n,o=a-i,s=Li({metric:e.metric,startTime:t.startTime,endTime:t.endTime,instanceParams:r,bucketMs:n}),c=Li({metric:e.metric,startTime:o,endTime:a,instanceParams:r,bucketMs:n}),l=(0,I.useMemo)(()=>s.isError?[]:lz($(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 dz(lz($(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=pz(dz(l),u),d.current=f),{latest:uz(l),delta:f,sparkPoints:l,isLoading:s.isLoading,timeRange:t,windowMs:i}}function Cz({def:e}){let{latest:t,delta:n,sparkPoints:r,isLoading:i,timeRange:a,windowMs:o}=Sz(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:Ce(t,e.formatter)}),(0,L.jsx)(wz,{delta:t===null?null:n,windowMs:o}),(0,L.jsx)(xz,{points:r,xDomain:[a.startTime,a.endTime]})]})]})})}function wz({delta:e,windowMs:t}){if(!e)return(0,L.jsx)(`div`,{className:`h-4`,"aria-hidden":`true`});let n=_z(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`?de:e.direction===`down`?M:an;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 Tz(e){return{title:``,description:``,tab:`health`,primaryDimension:`node`,timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},primitive:`line`,yAxis:{unit:``},...e}}var Ez=[{id:`cpu`,label:`CPU (p95)`,metric:`cpu-usage`,spec:Tz({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:Tz({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:Tz({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:Tz({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:Tz({series:{kind:`field`,fields:[{field:`p95`,label:`p95 duration (ms)`}]},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`}}),combine:`mean`,formatter:`ms`}];function Dz(){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:Ez.map(e=>(0,L.jsx)(Cz,{def:e},e.id))})}var Oz=[`resource-usage`,`memory`,`main-thread-utilization`,`cpu-usage`,`utilization`];function kz(){return(0,L.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,L.jsx)(Dz,{}),(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:Oz.map(e=>(0,L.jsx)(az,{metric:e},e))})]})}function Az({...e}){return(0,L.jsx)(y,{"data-slot":`accordion`,...e})}function jz({className:e,...t}){return(0,L.jsx)(x,{"data-slot":`accordion-item`,className:i(`border-b last:border-b-0`,e),...t})}function Mz({className:e,children:t,...n}){return(0,L.jsx)(b,{className:`flex`,children:(0,L.jsxs)(v,{"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)(fe,{className:`text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200`})]})})}function Nz({className:e,children:t,...n}){return(0,L.jsx)(S,{"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 Pz({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 Fz=new Date(2025,0).getTime(),Iz=1440*60*1e3;function Lz(e){let t=[];for(let n in e){let r=e[n];t.push(...zz(n,r,0))}return t}function Rz(e){return!!e.title}function zz(e,t,n,r){if(t&&Array.isArray(t)){let r=t;return[r.length>1&&{title:e,depth:n},...t.map((t,i)=>zz(r.length>1?String(i+1):e,t,n+1,e)).flat(1)].filter(Te)}if(Bz(t)){let r=t;return[{title:e,depth:n},...Object.keys(t).map(t=>zz(String(t),r[t],n+1,e)).flat(1)]}return(e===`__updatedtime__`||e===`__createdtime__`)&&(e=e.replace(/_/g,``).replace(`time`,``)),typeof t==`number`?t>Fz&&t<Date.now()+Iz?t=Ae(Date.now()-t,t):r===`memory`?t=ce(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 Bz(e){return!!e&&typeof e==`object`}function Vz({instanceParams:e,isLocalStudio:t}){let{timeRange:n}=Si();return(0,L.jsx)(ZR,{metric:`overview`,resetKey:`${String(e.entityId)}-${n.startTime}-${n.endTime}`,children:(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(Hz,{}),children:t?(0,L.jsx)(Uz,{instanceParams:e}):(0,L.jsx)(Wz,{instanceParams:e})})})}function Hz(){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 Uz({instanceParams:e}){let{data:t}=c(Pz(e));return(0,L.jsx)(Gz,{data:t})}function Wz({instanceParams:e}){let{data:t}=c(xe(e));return(0,L.jsx)(Gz,{data:t})}function Gz({data:e}){let t=(0,I.useMemo)(()=>qz(e),[e]);return(0,L.jsxs)(`div`,{className:`space-y-4`,children:[(0,L.jsx)(Az,{type:`multiple`,defaultValue:t.slice(0,1).map(e=>e.title),children:t.map(e=>(0,L.jsxs)(jz,{value:e.title,children:[(0,L.jsx)(Mz,{className:`text-base font-semibold`,children:e.title}),(0,L.jsx)(Nz,{children:(0,L.jsx)(Kz,{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 Kz({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)(Kz,{section:e})]},e.title))]})}function qz(e){let t=Lz(e),n=[],r=[],i=null;for(let e of t)if(Rz(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 Jz(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:(0,L.jsx)(az,{metric:`replication-latency`})})}var Yz=[`request-rate`,`error-rate`,`duration`,`success`,`transfer`,`response_200`,`cache-hit`,`cache-resolution`];function Xz(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:Yz.map(e=>(0,L.jsx)(az,{metric:e},e))})}var Zz=[`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)`],Qz=`var(--chart-other)`;function $z(e){return Zz[e%Zz.length]}var eB=`__other__`,tB=4096;function nB(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 rB(e){return`${e.database}.${e.table}`}function iB(e){let t=e.map(e=>({database:e.database,table:e.table,tableKey:rB(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 aB(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 oB(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>tB);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 sB(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[eB]=(r.stacks.__other__??0)+e)}return[...a.values()].sort((e,t)=>e.node.localeCompare(t.node))}function cB(e,t,n){let r=nB(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 lB(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 uB(e,t,n){return e===0?`upstream-empty`:t.length===0&&n?`all-other`:null}function dB(e,t,n){let r=aB(iB(e)),{tableSet:i,hasOther:a,otherMembers:o}=oB(r),s=sB(r,i,a),c=cB(r,t,n),l=uB(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=>lB(r,e),emptyCause:l,signature:d}}function fB(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 pB({tableSet:e,hasOther:t,selectedTable:n,onSelectTable:r}){let{getRadioProps:i}=Ki(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=$z(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 mB=e=>Ce(e,`bytes-si`);function hB(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 gB({snapshot:e,viewMode:t,selectedTable:n,onChipSelect:r,onBarClick:i,allOtherHint:a}){let o=_P(),s=e.byNode.map(e=>e.node),{isActive:c,handleLegendClick:l}=Wi(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?[eB]:[]],f=hB(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)(Yu,{width:`100%`,height:`100%`,minWidth:0,children:(0,L.jsxs)(mP,{data:f,barCategoryGap:`20%`,children:[(0,L.jsx)(PO,{stroke:o.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(oM,{dataKey:`node`,stroke:o.axisColor,tick:{fontSize:11}}),(0,L.jsx)(xM,{stroke:o.axisColor,tick:{fontSize:11},tickFormatter:e=>{let t=Number(e);return u?`${Math.round(t/p*100)}%`:mB(t)},domain:u?[0,p]:[`auto`,`auto`]}),(0,L.jsx)(hS,{contentStyle:SP,labelStyle:CP,itemStyle:wP,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[`${mB(a)} (${s}% of node total ${mB(o)})`,i]}}),d.map((e,t)=>{let r=e===`__other__`?Qz:$z(t),a=e===n;return(0,L.jsx)(zj,{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)(gS,{"data-testid":`table-size-segment`,"data-table":e,"data-node":t.node},t.node))},e)})]})})}),(0,L.jsx)(Hi,{nodeIds:s,isActive:c,onClickNode:l}),(0,L.jsx)(pB,{tableSet:e.tableSet,hasOther:e.hasOther,selectedTable:n,onSelectTable:r})]})}var _B=e=>Ce(e,`bytes-si`);function vB({derived:e,viewMode:t,selectedTable:n,onChipSelect:r,manualSelection:i,range:a,clusterNodeIds:o,rankBy:s,onRankChange:c,fillParent:l}){let u=_P(),d=wi(!!l),{hovered:f,gateProps:p}=TP(),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:_}=Wi(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)(Yu,{width:`100%`,height:`100%`,minWidth:0,children:(0,L.jsxs)(fP,{data:b,...d,children:[(0,L.jsx)(PO,{stroke:u.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(oM,{dataKey:`time`,type:`number`,domain:[a.startTime,a.endTime],allowDataOverflow:!0,tickFormatter:bP,stroke:u.axisColor,tick:{fontSize:11},allowDuplicatedCategory:!1}),(0,L.jsx)(xM,{stroke:u.axisColor,tick:{fontSize:11},tickFormatter:_B,scale:t===`per-node`?`log`:`auto`,domain:t===`per-node`?[1,`auto`]:[`auto`,`auto`],allowDataOverflow:!0}),(0,L.jsx)(hS,{isAnimationActive:!1,content:(0,L.jsx)(DP,{hidden:!f,formatter:`bytes-si`,nodeNames:h})}),h.filter(e=>g(e)).map(e=>(0,L.jsx)(Rk,{dataKey:y.get(e),name:`${e} ${fB({points:m,node:e,windowMs:v,rankBy:s,formatBytes:_B})}`.trim(),stroke:zi(e,o),strokeWidth:2,dot:!1,type:`monotone`,connectNulls:!1},e))]})})}),(0,L.jsx)(Hi,{nodeIds:h,isActive:g,onClickNode:_}),(0,L.jsx)(pB,{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 yB(e){return e.snapshot.byNode.map(e=>e.node)}function bB(){return(0,L.jsxs)(`div`,{className:`grid grid-cols-1 gap-4`,children:[(0,L.jsx)(ZR,{metric:`table-size`,children:(0,L.jsx)(xB,{})}),(0,L.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:[(0,L.jsx)(az,{metric:`database-size`}),(0,L.jsx)(az,{metric:`transaction-log-growth`}),(0,L.jsx)(az,{metric:`storage-volume`})]})]})}function xB(){let{timeRange:e,bucketMs:t,instanceParams:n}=Si(),{data:r,isLoading:i,isError:a}=Li({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)(()=>dB(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)(gB,{snapshot:s.snapshot,viewMode:`per-node`,selectedTable:m,onChipSelect:d,onBarClick:d,allOtherHint:s.emptyCause===`all-other`}),g=t=>m?(0,L.jsx)(vB,{derived:s,viewMode:`per-node`,selectedTable:m,onChipSelect:d,manualSelection:u!==null,range:e,clusterNodeIds:yB(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)(tz,{exportSlug:`table-size-snapshot`,title:`Table size — snapshot`,description:`Bytes per table, per node.`,renderChart:h}),(0,L.jsx)(QR,{captureRef:f,exportSlug:`table-size-snapshot`}),(0,L.jsx)(ez,{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)(tz,{exportSlug:`table-size-trend`,title:`Table size — trend: ${m}`,description:`Growth of ${m} over the selected window.`,renderChart:g}),(0,L.jsx)(QR,{captureRef:p,exportSlug:`table-size-trend`}),(0,L.jsx)(ez,{captureRef:p,exportSlug:`table-size-trend`})]})]}),(0,L.jsx)(E,{children:g()})]})]})}var SB=BI.connections.Renderer;function CB(){let{timeRange:e}=Si();return(0,L.jsx)(ZR,{metric:`connections`,resetKey:`${e.startTime}-${e.endTime}`,children:(0,L.jsx)(wB,{})})}function wB(){let{timeRange:e,bucketMs:t,instanceParams:n}=Si(),r=Li({metric:`mqtt-connections`,startTime:e.startTime,endTime:e.endTime,instanceParams:n,bucketMs:t}),i=Li({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)(()=>iz(c),[c]),d=!a&&!o&&!l&&!r.isPlaceholderData&&!i.isPlaceholderData,f=()=>HR(`connections`,c,e,u),p=(t={fillParent:!1})=>(0,L.jsx)(SB,{records:c,timeRange:e,nodes:u,fillParent:t.fillParent});return(0,L.jsx)(nz,{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)(rz,{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 TB=[`mqtt-traffic-sent`,`mqtt-traffic-received`,`bytes-sent`,`bytes-received`,`tls-reused`,`connection`];function EB(){return(0,L.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:[(0,L.jsx)(CB,{}),TB.map(e=>(0,L.jsx)(az,{metric:e},e))]})}var DB=[{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 OB({instanceParams:e,isLocalStudio:t}){return(0,L.jsx)(AB,{instanceParams:e,isLocalStudio:t,capability:Pi(e)})}function kB({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 AB({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)(Oi,{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)(kB,{capability:n}):(0,L.jsx)(jB,{picker:S,children:e});return(0,L.jsx)(xi,{value:x,children:(0,L.jsxs)(ye,{value:i,onValueChange:e=>g(e),className:`px-4 py-2`,children:[i!==`overview`&&!n.isLoading&&!n.error&&(0,L.jsx)(yi,{}),(0,L.jsx)(`div`,{className:`md:hidden mb-3`,children:(0,L.jsxs)(ie,{value:i,onValueChange:e=>g(e),children:[(0,L.jsx)(se,{className:`w-full`,"aria-label":`Select status tab`,children:(0,L.jsx)(N,{})}),(0,L.jsx)(oe,{children:DB.map(e=>(0,L.jsx)(j,{value:e.id,children:e.label},e.id))})]})}),(0,L.jsx)(ve,{className:`hidden md:inline-flex max-w-full overflow-x-auto mb-4`,children:DB.map(e=>(0,L.jsx)(ge,{value:e.id,children:e.label},e.id))}),(0,L.jsx)(_e,{value:`health`,children:C((0,L.jsx)(kz,{}))}),(0,L.jsx)(_e,{value:`traffic`,children:C((0,L.jsx)(EB,{}))}),(0,L.jsx)(_e,{value:`requests`,children:C((0,L.jsx)(Xz,{}))}),(0,L.jsx)(_e,{value:`database`,children:C((0,L.jsx)(cz,{}))}),(0,L.jsx)(_e,{value:`replication`,children:C((0,L.jsx)(Jz,{}))}),(0,L.jsx)(_e,{value:`storage`,children:C((0,L.jsx)(bB,{}))}),(0,L.jsx)(_e,{value:`overview`,children:(0,L.jsx)(Vz,{instanceParams:e,isLocalStudio:t})})]})})}function jB({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 MB(){return(0,L.jsx)(OB,{instanceParams:De(),isLocalStudio:!0})}export{MB as StatusIndex};
62
+ //# sourceMappingURL=status-D7A8OktU.js.map