@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.
- package/dist/resources/Table.js +6 -2
- package/dist/resources/Table.js.map +1 -1
- package/npm-shrinkwrap.json +38 -38
- package/package.json +2 -2
- package/resources/Table.ts +5 -1
- package/studio/web/assets/{Chat-CHWxBSOY.js → Chat-WK3X972M.js} +5 -5
- package/studio/web/assets/{Chat-CHWxBSOY.js.map → Chat-WK3X972M.js.map} +1 -1
- package/studio/web/assets/{FloatingChat-DVCy2mvk.js → FloatingChat-Bqjk6Bf4.js} +5 -5
- package/studio/web/assets/{FloatingChat-DVCy2mvk.js.map → FloatingChat-Bqjk6Bf4.js.map} +1 -1
- package/studio/web/assets/{apiToken-QLwwxtxT.js → apiToken-S_hqpnVV.js} +2 -2
- package/studio/web/assets/{apiToken-QLwwxtxT.js.map → apiToken-S_hqpnVV.js.map} +1 -1
- package/studio/web/assets/{applications-EmZVBabu.js → applications-C6zKD9Rb.js} +12 -12
- package/studio/web/assets/applications-C6zKD9Rb.js.map +1 -0
- package/studio/web/assets/{index-CndJ7kZK.js → index-BbsxXAVZ.js} +31 -31
- package/studio/web/assets/index-BbsxXAVZ.js.map +1 -0
- package/studio/web/assets/index.lazy-BPnXo1Wj.js +14 -0
- package/studio/web/assets/{index.lazy-CGmTtyPL.js.map → index.lazy-BPnXo1Wj.js.map} +1 -1
- package/studio/web/assets/jsonMode-X_blmtuO.js +2 -0
- package/studio/web/assets/jsonMode-X_blmtuO.js.map +1 -0
- package/studio/web/assets/{profile-Dgjkaqud.js → profile-CY1FwgRs.js} +2 -2
- package/studio/web/assets/{profile-Dgjkaqud.js.map → profile-CY1FwgRs.js.map} +1 -1
- package/studio/web/assets/{setComponentFile-BMFCm_Yi.js → setComponentFile-ZBQ4KXnC.js} +2 -2
- package/studio/web/assets/{setComponentFile-BMFCm_Yi.js.map → setComponentFile-ZBQ4KXnC.js.map} +1 -1
- package/studio/web/assets/setup-B_NOw8rV.js +3 -0
- package/studio/web/assets/setup-B_NOw8rV.js.map +1 -0
- package/studio/web/assets/{status-CtgqjZ6q.js → status-D7A8OktU.js} +4 -4
- package/studio/web/assets/{status-CtgqjZ6q.js.map → status-D7A8OktU.js.map} +1 -1
- package/studio/web/assets/{swagger-ui-react-BermOHTv.js → swagger-ui-react-iD3vGtu-.js} +2 -2
- package/studio/web/assets/{swagger-ui-react-BermOHTv.js.map → swagger-ui-react-iD3vGtu-.js.map} +1 -1
- package/studio/web/assets/tokenization-uOBOyHAS.js +8 -0
- package/studio/web/assets/tokenization-uOBOyHAS.js.map +1 -0
- package/studio/web/assets/{tsMode-CWC0nCN1.js → tsMode-CevZSdk5.js} +2 -2
- package/studio/web/assets/{tsMode-CWC0nCN1.js.map → tsMode-CevZSdk5.js.map} +1 -1
- package/studio/web/assets/{useEntityRestURL-DaMIzJ2I.js → useEntityRestURL-CswKSb0j.js} +2 -2
- package/studio/web/assets/{useEntityRestURL-DaMIzJ2I.js.map → useEntityRestURL-CswKSb0j.js.map} +1 -1
- package/studio/web/index.html +2 -1
- package/studio/web/assets/applications-EmZVBabu.js.map +0 -1
- package/studio/web/assets/index-CndJ7kZK.js.map +0 -1
- package/studio/web/assets/index.lazy-CGmTtyPL.js +0 -14
- package/studio/web/assets/jsonMode-DD1NLQKv.js +0 -8
- package/studio/web/assets/jsonMode-DD1NLQKv.js.map +0 -1
- package/studio/web/assets/setup-C2E-6wan.js +0 -3
- 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-
|
|
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
|