@unblind/react 0.1.0-alpha.21 → 0.1.0-alpha.22
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/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +25 -10
- package/dist/index.d.ts +25 -10
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{QueryClient as xe,QueryClientProvider as Je,useQueryClient as Ze}from"@tanstack/react-query";import{createContext as et,useCallback as tt,useContext as rt,useMemo as Se}from"react";import{jsx as Pe}from"react/jsx-runtime";var Re=et(void 0);function oe({children:e,queryClient:t,queryClientConfig:r,apiBaseUrl:o="/api/unblind",fetchImpl:i}){let n=Se(()=>{if(t)return t;let s={refetchOnWindowFocus:!1,refetchOnReconnect:!1,refetchOnMount:!1},l={defaultOptions:{queries:s}};return r?new xe({...r,defaultOptions:{...r.defaultOptions,queries:{...s,...r.defaultOptions?.queries}}}):new xe(l)},[t,r]),a=Se(()=>({apiBaseUrl:o,fetchImpl:i}),[o,i]);return Pe(Je,{client:n,children:Pe(Re.Provider,{value:a,children:e})})}function D(){let e=rt(Re);if(!e)throw new Error("useUnblindConfig must be used within an UnblindClientProvider. Please wrap your app or component tree with <UnblindClientProvider>.");return e}function ke(){let e=Ze();return tt(async()=>{await e.refetchQueries({queryKey:["unblind","timeseries"]})},[e])}import{createContext as it,useContext as Ae,useMemo as K}from"react";import{jsx as z,jsxs as ot}from"react/jsx-runtime";function ie(){return z("div",{className:"ub-default",children:ot("div",{className:"ub-empty-content",children:[z("div",{className:"ub-empty-icon-wrapper",children:z("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"ub-icon",children:z("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})})}),z("p",{className:"ub-empty-text","data-text":"No data available for this time range"})]})})}function ne(){return z("div",{className:"ub-default-error"})}function se(){return z("div",{className:"ub-default-loading","data-text":"Loading"})}import{jsx as st}from"react/jsx-runtime";var ae=it(void 0);function X({children:e,timeRange:t,startTime:r,endTime:o,interval:i,attributes:n,groupBy:a,operator:s,appearance:l,tooltip:m,colors:f,fill:g,hideAxis:h,hideCursor:c,relativeTimeAxis:b,invertSort:y}){let d=Ae(ae),v=l?.components?.Loading||d?.appearance?.components?.Loading,T=l?.components?.Error||d?.appearance?.components?.Error,x=l?.components?.Tooltip||d?.appearance?.components?.Tooltip,p=l?.components?.Empty||d?.appearance?.components?.Empty,C=typeof m?.hide=="boolean"?m?.hide:d?.tooltip?.hide,R=typeof m?.visibilityLimit=="number"?m?.visibilityLimit:d?.tooltip?.visibilityLimit,k=K(()=>({components:{...v&&{Loading:v},...T&&{Error:T},...x&&{Tooltip:x},...p&&{Empty:p}}}),[v,T,x,p]),A=K(()=>({hide:C,visibilityLimit:R}),[C,R]),w=K(()=>({timeRange:t??d?.timeRange,startTime:r??d?.startTime,endTime:o??d?.endTime,interval:i??d?.interval,attributes:n??d?.attributes,groupBy:a??d?.groupBy,operator:s??d?.operator,colors:f??d?.colors,relativeTimeAxis:typeof b=="boolean"?b:d?.relativeTimeAxis,fill:typeof g=="boolean"?g:d?.fill,hideAxis:typeof h=="boolean"?h:d?.hideAxis,hideCursor:typeof c=="boolean"?c:d?.hideCursor,invertSort:typeof y=="boolean"?y:d?.invertSort,appearance:k,tooltip:A}),[t,r,o,i,n,a,s,f,g,b,h,c,k,A,d,y]);return st(ae.Provider,{value:w,children:e})}var nt="6h";function I(){let e=Ae(ae);return K(()=>({...e,timeRange:e?.timeRange||nt,appearance:{components:{Loading:e?.appearance?.components?.Loading??se,Error:e?.appearance?.components?.Error??ne,Empty:e?.appearance?.components?.Empty??ie,Tooltip:e?.appearance?.components?.Tooltip}}}),[e])}import{jsx as Le}from"react/jsx-runtime";function at({children:e,queryClient:t,apiBaseUrl:r,fetchImpl:o,timeRange:i,startTime:n,endTime:a,interval:s,attributes:l,groupBy:m,operator:f,appearance:g,tooltip:h,colors:c,fill:b,hideAxis:y,hideCursor:d,relativeTimeAxis:v,invertSort:T}){return Le(oe,{queryClient:t,apiBaseUrl:r,fetchImpl:o,children:Le(X,{timeRange:i,startTime:n,endTime:a,interval:s,attributes:l,groupBy:m,operator:f,appearance:g,tooltip:h,colors:c,fill:b,hideAxis:y,hideCursor:d,relativeTimeAxis:v,invertSort:T,children:e})})}import{useQuery as lt}from"@tanstack/react-query";function ct(){let{apiBaseUrl:e,fetchImpl:t=fetch}=D(),r=lt({queryKey:["unblind","metrics"],queryFn:async()=>{let o=await t(`${e}/metrics`,{headers:{"Content-Type":"application/json"}});if(!o.ok)throw new Error("Error loading metrics metadata");if(o.status===200){let{data:i}=await o.json();return i}else throw new Error("Unexpected status code")}});return{metrics:r.data,isLoading:r.isLoading,hasError:r.isError,refetch:r.refetch}}import{useQuery as dt}from"@tanstack/react-query";import{useMemo as j}from"react";import ut from"ms";function we({scope:e,props:t}){return t.timeRange||t.startTime&&t.endTime?t:e}function pt(e){let t=Math.floor(Date.now()/1e3);return[t-Math.floor(ut(e)/1e3),t]}function _(e,t,r){let o,i;if(typeof t=="number"&&typeof r=="number")o=t,i=r;else if(e){let[n,a]=pt(e);o=n,i=a}else throw new Error("Either timeRange or both startTime and endTime must be provided");return[o,i]}import{useMemo as mt}from"react";function Q(e){let t=I(),{timeRange:r,startTime:o,endTime:i}=we({props:e,scope:t});return mt(()=>({timeRange:r,startTime:o,endTime:i}),[r,o,i])}function le(e){let{apiBaseUrl:t,fetchImpl:r=fetch}=D(),{startTime:o,endTime:i,timeRange:n}=Q(e),{queries:a,interval:s}=e,l=j(()=>a.map(p=>p.metrics.join(",")).join(","),[a]),m=j(()=>a.map(p=>{let C=p.attributes;if(!C)return"";let R=Object.keys(C);return R.length===0?"":R.map(k=>k+":"+C[k]?.join(",")).join(",")}).join(","),[a]),f=j(()=>a.map(p=>p.operator),[a]),g=j(()=>a.map(p=>p.groupBy).join(", "),[a]),c=dt({queryKey:["unblind","timeseries",l,m,o,i,n,s,f,g],queryFn:async()=>{if(!l)throw new Error("Missing required parameters");if(l.length===0)throw new Error("No series provided");let[p,C]=_(n,o,i),R={queries:a,startTime:p,endTime:C,interval:s},k=await r(`${t}/tenants/timeseries`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(R)});if(!k.ok)throw new Error("Error fetching metric");let{series:A,times:w,metadata:M}=await k.json();if(!A)throw console.error("Series not found"),new Error("Series not found");return{series:A,times:w,metadata:M}},enabled:!!l&&(typeof o=="number"&&typeof i=="number"||!!n)}),{metadata:b,series:y,times:d}=j(()=>c.data?{series:c.data.series,times:c.data.times,metadata:c.data.metadata}:{series:[],times:[],metadata:{}},[c]),v=c.isLoading,T=c.isFetching,x=c.isError;return{data:{series:y,times:d,metadata:b},isLoading:v,isFetching:T,hasError:x,refetch:c.refetch}}import{useQuery as ht}from"@tanstack/react-query";import{useMemo as ft}from"react";function gt(e){let{apiBaseUrl:t,fetchImpl:r=fetch}=D(),{startTime:o,endTime:i,timeRange:n}=Q(e),s=ht({queryKey:["unblind","usage",n,o,i],queryFn:async()=>{let[g,h]=_(n,o,i),c=`${t}/tenants/usage`,b=await r(c,{headers:{"Content-Type":"application/json"},body:JSON.stringify({startTime:g,endTime:h})});if(!b.ok)throw new Error("Error fetching usage");let{data:y}=await b.json();if(!y)throw new Error("usage not found");return y},enabled:typeof o=="number"&&typeof i=="number"||!!n}),l=ft(()=>s.data?s.data||[]:[],[s]),m=s.isLoading||s.isRefetching,f=s.isError;return{usage:l,isLoading:m,hasError:f,refetch:s.refetch}}import{useInfiniteQuery as bt}from"@tanstack/react-query";import{useMemo as yt}from"react";function Tt(e){let{apiBaseUrl:t,fetchImpl:r=fetch}=D(),{timeRange:o,startTime:i,endTime:n}=Q(e),{attributes:a,body:s,severity:l,traceId:m,spanId:f,logId:g}=e,h=bt({queryKey:["unblind","logs",o,i,n,s,l,g,JSON.stringify(a)],queryFn:async({pageParam:b})=>{let[y,d]=_(o,i,n),v=await r(`${t}/tenants/logs`,{method:"POST",body:JSON.stringify({attributes:a,body:s,severity:l,traceId:m,spanId:f,logId:g,startTime:y,endTime:d,pagination:{page:b}}),headers:{"Content-Type":"application/json"}});if(!v.ok)throw new Error("Error fetching logs");let{data:T,nextPage:x}=await v.json();if(!T)throw new Error("data not found");return{data:T,nextPage:x}},initialPageParam:void 0,getNextPageParam:b=>b.nextPage});return{logs:yt(()=>h.data?h.data.pages.flatMap(b=>b.data||[]):[],[h.data]),isLoading:h.isLoading,hasError:h.isError,hasNextPage:h.hasNextPage??!1,fetchNextPage:h.fetchNextPage,isFetchingNextPage:h.isFetchingNextPage,refetch:h.refetch}}import{useEffect as gr,useMemo as br}from"react";import{useEffect as mr,useRef as dr}from"react";import hr from"uplot";var G=e=>"value"in e,Y=e=>"from"in e&&"to"in e;import Z from"uplot";import{getValueFormat as jt}from"@unblind/units";import{dateTimeFormat as vt,dateTimeFormatTimeAgo as Ct,systemDateFormats as ce}from"@unblind/units";var L={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,month:24192e5,year:31536e6},$={second:[1,2,5,10,15,30],minute:[1,2,5,10,15,30],hour:[1,2,3,4,6,8,12],day:[1,2,3,7,14],month:[1,2,3,6],year:[1,2,5,10,20,50,100]};function xt(e,t,r,o){if(t>7*L.day){let i=ce.interval.year,n=Math.round(L.year/L.day)*L.day;if(Math.round(t/L.day)*L.day===n)i=ce.interval.year;else{if(t<=L.year)return e.map(s=>{let l=new Date(s);return(o==="UTC"?l.getUTCDate():l.getDate())===1?l.toLocaleDateString(void 0,{month:"short",year:"numeric",timeZone:o}):l.toLocaleDateString(void 0,{day:"numeric",month:"short",timeZone:o})});i=ce.interval.day}return e.map(s=>vt(s,{format:i,timeZone:o}))}return e.map(i=>{let n=new Date(i),a=t<L.minute,s=t<L.second,l=n.toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:o});return(l==="00:00"||l==="24:00")&&!a&&!s?n.toLocaleDateString(void 0,{day:"2-digit",month:"short",timeZone:o}):n.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:a?"2-digit":void 0,fractionalSecondDigits:s?3:void 0,hour12:!1,timeZone:o})})}function St(e){let t=[{size:L.second/1e3,increments:$.second},{size:L.minute/1e3,increments:$.minute},{size:L.hour/1e3,increments:$.hour},{size:L.day/1e3,increments:$.day},{size:L.month/1e3,increments:$.month},{size:L.year/1e3,increments:$.year}];for(let i of t)for(let n of i.increments){let a=i.size*n;if(a>=e)return{increment:a*1e3,multiplier:n}}let r=t[t.length-1],o=r.increments[r.increments.length-1];return{increment:r.size*o*1e3,multiplier:o}}function Pt(e,t,r){return[t,r]}function Rt(e,t,r){return t.length===0?[]:t.map((o,i)=>i===0||i===t.length-1?Ct(o*1e3,{timeZone:r}):"")}function kt(e,t,r){let o=e.scales.x,i=((o?.max??0)-(o?.min??0))*1e3,n=Math.floor(e.width/100),a=i/1e3/n,{increment:s}=St(a),l=t.map(m=>m*1e3);return xt(l,s,i,r)}function Ue(e,t,r=!1,o=!1){let i=r?(a,s,l,m)=>Pt(a,l,m):void 0,n=r?(a,s)=>Rt(a,s,t):(a,s)=>kt(a,s,t);return{font:H(e),labelFont:H(e),grid:{show:!1,width:.5},ticks:{width:.5},splits:i,values:n,size:20,show:!o,align:r?2:void 0,space:(a,s,l,m,f)=>f<400?100:f<800?150:250}}import{computePosition as At,flip as Lt,offset as wt}from"@floating-ui/dom";import{createRoot as Ut}from"react-dom/client";var Et=4,Mt=8,ue=class{overlay=null;reactRoot=null;renderedUplot=null;initialize(){this.overlay||(this.overlay=document.createElement("div"),this.overlay.id="unblind-tooltip-overlay",this.overlay.style.display="none",this.overlay.style.position="fixed",this.overlay.style.pointerEvents="none",this.overlay.style.zIndex="9999",document.body.appendChild(this.overlay),this.reactRoot=Ut(this.overlay))}getOverlay(){return this.overlay}render(t,r){this.reactRoot?(this.reactRoot.render(r),this.renderedUplot=t):this.renderedUplot=null}show(){this.overlay&&(this.overlay.style.display="block")}hide(t){if(t!==this.renderedUplot){console.warn("Hide call plot");return}this.overlay&&(this.overlay.style.display="none"),this.render(null,null)}getRenderedUplot(){return this.renderedUplot}async positionTooltip(t){let r=this.getOverlay();if(r){let{x:o,y:i}=await At({getBoundingClientRect:()=>({x:t.left,y:t.top,width:0,height:0,top:t.top,left:t.left,right:t.left,bottom:t.top})},r,{placement:"top-start",strategy:"fixed",middleware:[wt({mainAxis:Et,crossAxis:Mt}),Lt()]});r.style.left=`${o}px`,r.style.top=`${i}px`}}},E=new ue;import{dateTimeFormat as Ee}from"@unblind/units";import{createContext as Nt,Fragment as Dt,useContext as Vt}from"react";import{Fragment as Qt,jsx as u,jsxs as S}from"react/jsx-runtime";var Ot=6,Me=Nt(null);function J(){let e=Vt(Me);if(!e)throw new Error("useTooltipSerie must be used within a SerieProvider");return e}function It({serie:e,children:t}){return u(Me.Provider,{value:e,children:t})}function pe({className:e="ub-tooltip-divider",...t}){return u("hr",{role:"presentation",...t,className:e})}function zt({formattedTime:e,unitCategory:t,tooltipSerieList:r,visibilityLimit:o,invertSort:i}){let n=r.slice(0,o),a=r.slice(o);return S("div",{className:"ub-tooltip ub-tooltip-multiple-metrics",children:[S(fe,{children:[u(ge,{children:e}),u("div",{className:"ub-tooltip-header-right",children:u(Bt,{children:t})})]}),u(pe,{}),S(he,{children:[n.map(s=>S(de,{serie:s,children:[u(ye,{}),u(Te,{children:u(Ne,{})}),u(be,{})]},s.metric.name)),u(me,{series:a,invertSort:i})]})]})}function qt({formattedTime:e,tooltipSerieList:t,visibilityLimit:r,invertSort:o}){let i=t[0],n=t.slice(0,r),a=t.slice(r);return S("div",{className:"ub-tooltip ub-tooltip-multiple-attributes",children:[S(fe,{children:[u(ge,{children:e}),u("div",{className:"ub-tooltip-header-right",children:u("span",{className:"ub-tooltip-serie-metric",children:Ve(i?.metric.name||"")})})]}),u(pe,{}),S(he,{children:[n.map((s,l)=>S(de,{serie:s,children:[u(ye,{}),u(Te,{children:u(De,{})}),u(be,{})]},"serie_"+l)),u(me,{series:a,invertSort:o})]})]})}function Ft({formattedTime:e,tooltipSerieList:t,unitCategory:r,visibilityLimit:o,invertSort:i}){let n=t.slice(0,o),a=t.slice(o);return S("div",{className:"ub-tooltip ub-tooltip-multiple-attributes",children:[S(fe,{children:[u(ge,{children:e}),u("div",{className:"ub-tooltip-header-right",children:u("span",{className:"ub-tooltip-unit-category",children:r})})]}),u(pe,{}),S(he,{children:[n.map((s,l)=>S(de,{serie:s,children:[u(ye,{}),S(Te,{children:[u(Ne,{}),u(De,{})]}),u(be,{})]},"serie"+l)),u(me,{series:a,invertSort:i})]})]})}function Bt(e){return u("span",{className:"ub-tooltip-unit-category",children:e.children})}function me({series:e,invertSort:t}){let r=e[0]?.formattedValue,o=!e.some(n=>(n.value||0)>0),i=!e.some(n=>n.value!==void 0);return e.length>0?i?u("span",{className:"ub-tooltip-summary",children:S("span",{children:["+",e.length," more with no data"]})}):o?u("span",{className:"ub-tooltip-summary",children:S("span",{children:["+",e.length," more with zero values"]})}):S("span",{className:"ub-tooltip-summary",children:[S("span",{children:["+",e.length," more with "]}),u("span",{children:`${t?"\u2265":"\u2264"} ${r}`})]}):u(Qt,{})}function de(e){return u(It,{serie:e.serie,children:u("div",{className:"ub-tooltip-serie",children:e.children})})}function he(e){return u("div",{className:"ub-tooltip-content",children:e.children})}function fe(e){return u("div",{className:"ub-tooltip-header",children:e.children})}function ge(e){return u("div",{className:"ub-tooltip-datetime",children:e.children})}function Ne(){let e=J();return u("span",{className:"ub-tooltip-serie-metric",children:Ve(e.metric.name)})}function be(){let e=J();return e.formattedValue?u("span",{className:"ub-tooltip-serie-value",children:e.formattedValue}):u("span",{className:"ub-tooltip-serie-value-empty",children:"\u2013"})}function ye(){let e=J();return u("span",{style:{backgroundColor:e.color},className:"ub-tooltip-serie-color"})}function Te(e){return u("span",{className:"ub-tooltip-serie-label ub-truncate",children:e.children})}function De(){let{attributes:e}=J();if(!e)return null;let t=Object.values(e);return u("div",{className:"ub-tooltip-serie-attributes ub-truncate",children:t.map((r,o)=>S(Dt,{children:[u("span",{className:"ub-tooltip-serie-attribute-value",children:r}),o<t.length-1&&u("span",{"data-text":", ",className:"ub-tooltip-serie-attribute-divider"})]},"tooltip-"+r))})}function _t({tooltipSerieList:e,invertSort:t}){return t?e.sort((r,o)=>(Number(r.value)||0)-(Number(o.value)||0)):e.sort((r,o)=>(Number(o.value)||0)-(Number(r.value)||0))}function Ve(e,t){let r=e.split(/[._-]/),o=r[r.length-1]||"";return t?o:o.charAt(0).toUpperCase()+o.slice(1).toLowerCase()}function Oe({timestamp:e,tooltipSerieList:t,timeZone:r,spansMultipleDays:o,hasMultipleMetrics:i,hasAttributes:n,invertSort:a,visibilityLimit:s}){let l=_t({tooltipSerieList:t,invertSort:a}),m=o?Ee(e*1e3,{format:"MMM DD, HH:mm",timeZone:r}):Ee(e*1e3,{format:"HH:mm",timeZone:r}),f=s||Ot;return n?n&&!i?u(qt,{formattedTime:m,tooltipSerieList:l,visibilityLimit:f,invertSort:a}):u(Ft,{formattedTime:m,unitCategory:"",tooltipSerieList:l,visibilityLimit:f,invertSort:a}):u(zt,{formattedTime:m,unitCategory:"",tooltipSerieList:l,visibilityLimit:f,invertSort:a})}import{jsx as Ie}from"react/jsx-runtime";function $t(e,t){if(!e||e.length===0)return!1;let r=e[0],o=e[e.length-1];if(r==null||o==null)return!1;let i=new Date(r*1e3),n=new Date(o*1e3),a=s=>t==="UTC"?`${s.getUTCFullYear()}-${s.getUTCMonth()}-${s.getUTCDate()}`:s.toLocaleDateString(void 0,{timeZone:t});return a(i)!==a(n)}function Ht(e,t){let r=!1;for(let i=1;i<e.series.length;i++)if(e.data[i]?.[t]!=null){r=!0;break}if(r)return t;let o=e.data[0].length;for(let i=1;t+i<o||t-i>=0;i++){let n=t-i,a=t+i;if(n>=0){for(let s=1;s<e.series.length;s++)if(e.data[s]?.[n]!=null)return n}if(a<o){for(let s=1;s<e.series.length;s++)if(e.data[s]?.[a]!=null)return a}}return t}function Wt(e,t,r,o,i,n,a){let s=[],l=e.data[0],m=new Set,f=new Set,g=!1;for(let h=1;h<e.series.length;h++){let c=e.data[h]?.[t]??null;if(o&&c!=null&&h>1){let C=e.data[h-1]?.[t]??0;c=c-C}let b=e.series[h],y=n?.[h-1];if(!y){console.warn("Original serie not found");continue}let d=i[y.metric];if(!d){console.warn("Metric metadata not found");continue}m.add(y.metric);let v=y?.attributes;if(v&&Object.keys(v).length>0){g=!0;for(let C in v)f.add(C)}let T=b?.stroke,x=typeof T=="function"?T(e,h):T??"#ffffff00",p=c==null?void 0:r?r(c):String(c);s.push({metric:d,color:x,value:c===null?void 0:c,formattedValue:p,attributes:v,serie:b})}return{tooltipSerieList:s,hasAttributes:g,hasMultipleMetrics:m.size>1,hasMultipleAttributes:f.size>1,spansMultipleDays:$t(l,a)}}function ze(e,t,r,o,i,n,a,s){let l,m,f,g=!1;function h(){let c=l.getBoundingClientRect();m=c.left,f=c.top}return{hooks:{init:c=>{E.initialize(),l=c.over,window.addEventListener("scroll",h,!0),window.addEventListener("resize",h),l.onmouseenter=()=>{g=!0,E.show()},l.onmouseleave=()=>{g=!1,E.getRenderedUplot()===c&&E.hide(c)},h()},setSize:()=>{h()},setCursor:c=>{let{left:b,top:y,idx:d}=c.cursor;if(!g||d==null){E.getRenderedUplot()===c&&E.hide(c);return}let T=Ht(c,d),x=c.data[0][T];if(x===void 0)return;let{tooltipSerieList:p,hasAttributes:C,hasMultipleAttributes:R,hasMultipleMetrics:k,spansMultipleDays:A}=Wt(c,T,e,t,r,n,o);E.show();let w=i,M=w?Ie(w,{timestamp:x,tooltipSerieList:p,timeZone:o}):Ie(Oe,{timestamp:x,tooltipSerieList:p,timeZone:o,spansMultipleDays:A,stacked:t,hasAttributes:C,hasMultipleAttributes:R,hasMultipleMetrics:k,visibilityLimit:a,invertSort:s});E.render(c,M),E.positionTooltip({left:(b||0)+m,top:(y||0)+f})},destroy(c){window.removeEventListener("scroll",h,!0),window.removeEventListener("resize",h),l&&(l.onmouseenter=null,l.onmouseleave=null),E.getRenderedUplot()===c&&E.hide(c)}}}}var ee=["oklch(0.70 0.24 293)","oklch(0.85 0.18 95)","oklch(0.65 0.25 255)","oklch(0.72 0.26 27)","oklch(0.70 0.22 150)","oklch(0.78 0.18 50)","oklch(0.72 0.18 215)","oklch(0.70 0.27 301)","oklch(0.75 0.20 90)","oklch(0.68 0.23 277)","oklch(0.70 0.18 193)","oklch(0.68 0.25 4)"],H=e=>`${getComputedStyle(document.documentElement).getPropertyValue("--ub-chart-font-size").trim()} ${e}`,qe=(e,t)=>{let r=e;return t&&t.unit&&t.unit.code&&t.unit.code!=="1"&&(!r&&t.unit?r=t.unit.code:r&&t.unit.code!==r&&(r=void 0)),r};function Gt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Array.isArray(e.fill)&&Array.isArray(e.border)}function Kt(e){return Array.isArray(e)}var Xt=12,Yt=({isFilling:e,useSolid:t,index:r})=>{let o=r%Xt+1;return e?t?`--ub-chart-serie-color-${o}`:`--ub-chart-serie-fill-color-${o}`:`--ub-chart-serie-color-${o}`},Fe=(e,t,r,o,i,n)=>{let a=o==="bar"||o==="area";if(r)return Kt(r)?r[t]:Gt(r)?n?r.fill[t]:r.border[t]:r(e,t,o,n);let s=Yt({isFilling:n,useSolid:a,index:t}),l=i.getPropertyValue(s).trim();return l||(n&&a?ee[t%ee.length]?.replace(")"," / 0.4)"):ee[t%ee.length])},Jt=e=>{let t=Z.paths.bars({size:[.6,100],radius:0,gap:0}),r=Z.paths.linear({alignGaps:0}),o=Z.paths.spline({alignGaps:1}),i=Z.paths.stepped({alignGaps:1});switch(e){case"line":return r;case"bar":return t;case"area":return r;case"step":return i;case"spline":return o;default:return r}},Zt=(e,t,r,o,i)=>Fe(e,t,r,o,i,!0),er=(e,t)=>{switch(e){case"bar":return 1;case"line":return t?1.5:2;case"spline":return t?1.5:2;case"area":return 1;case"step":return 1.5;default:return 1}},tr=(e,t,r)=>{if(t<0||r<0)return[t,r];let o=e.posToVal(t,"x"),i=e.data[0];if(!i||i.length===0)return[t,r];let n=0,a=0,s=i.length-1;for(;s-a>1;){let c=Math.floor((a+s)/2),b=i[c];b!=null&&b<o?a=c:s=c}let l=i[a],m=i[s];l!=null&&m!=null?n=Math.abs(l-o)<Math.abs(m-o)?a:s:l!=null?n=a:m!=null&&(n=s);let f=n;for(let c=n;c>=0;c--){let b=!1;for(let y=1;y<e.data.length;y++){let d=e.data[y];if(d&&d[c]!=null){b=!0;break}}if(b){f=c;break}}let g=i[f];return g==null?[t,r]:[e.valToPos(g,"x"),r]},rr=(e,t)=>{let r=t.getPropertyValue("--ub-chart-font-color").trim(),o=t.getPropertyValue("--ub-chart-grid-color").trim(),i=e.axes?.[0],n=e.axes?.[1];return i&&(i.stroke=r,i.grid?i.grid.stroke=o:i.grid={stroke:o}),n&&(n.stroke=r,n.grid?n.grid.stroke=o:n.grid={stroke:o}),e},or=(e,t)=>e.getPropertyValue(`--ub-chart-threshold-${t}`).trim()||e.getPropertyValue("--ub-chart-threshold-default").trim(),ir=(e,t)=>e.getPropertyValue(`--ub-chart-threshold-${t}-fill`).trim()||e.getPropertyValue("--ub-chart-threshold-default-fill").trim(),nr=e=>{switch(e){case"bold":return 2;case"line":return 1;case"dashed":return 1;default:return 1}},sr=e=>e==="line"?void 0:[5,5],ar=(e,t)=>{if(t){let r=[];return t.forEach(o=>{let i={label:o.label,stroke:or(e,o.level),width:nr(),dash:sr(o.type),points:{show:!1,size:0},spanGaps:!0,show:!0,auto:!1};G(o)||r.push(i),r.push(i)}),r}else return[]},lr=(e,t,r,o)=>{if(!o||!o.some(n=>Y(n)))return t.bands;let i=o.map((n,a)=>G(n)?null:{series:[e.length+a*2+1,e.length+a*2+2],fill:ir(r,n.level),dir:1}).filter(n=>n!==null);return[...t.bands,...i]},cr=(e,t,r,o,i,n,a)=>{let s=er(t,o);return[{},...e.map((l,m)=>({label:l.metric,stroke:Fe(l,m,r,t,n),width:s,points:{show:!1},spanGaps:!0,paths:Jt(t),fill:o||i?Zt(l,m,r,t,n):void 0})),...ar(n,a)]},ur=e=>typeof e=="string"&&String(e).toLowerCase().trim()==="by"?"bytes":e,Be=(e,t,r,o,i,n,a,s,l,m,f,g,h,c,b,y,d,v,T,x)=>{let p=window.getComputedStyle(e),C=p.fontFamily,R=e?.clientWidth??1050,k=e?.clientHeight??250,A=ur(o),w=jt(A==="1"?null:A),M=V=>{let N=w(V);return N.text+(N.suffix?.trim()||"")},F={width:R,height:k,scales:{y:{range:_e(o,b,y)}},plugins:h?[]:[ze(M,a,t,m,f,i,T,x)],padding:g?[8,10,8,48]:[8,10,8,18],cursor:{y:!1,sync:{key:"_"},drag:{setScale:!0,x:!0,y:!1},move:tr,show:!v},series:cr(i,n,s,l,a,p,c),bands:lr(i,r,p,c),axes:[Ue(C,m,g,d),Qe(w,C,d)],legend:{show:!1}};return rr(F,p)};var $e=(e,t=4)=>{let r=e/t,o=Math.pow(10,Math.floor(Math.log10(r))),i=r/o,n;return i>5?n=10*o:i>2?n=5*o:i>1?n=2*o:n=o,Math.ceil(e/n)*n},P=(e,t)=>typeof e=="number"?e:t,_e=(e,t,r)=>(o,i,n)=>{if(i===0&&n===0)return[P(t,0),P(r,100)];let a=1,s=n*(1+a),l=i<0?i*(1+a):i*(1-a);if(e==="percent"||e==="percentunit"){let g=e==="percent"?100:1;return n>g?i<0?[P(t,l),P(r,s)]:[P(t,0),P(r,s)]:i<0?[P(t,l),P(r,g)]:[P(t,0),P(r,g)]}if(n<=.9999)return i<=0?[P(t,l),P(r,1)]:[P(t,0),P(r,1)];let m=$e(s),f=$e(Math.abs(l));return i<0?[P(r,-f),P(r,m)]:[P(t,0),P(r,m)]},pr=(e,t,r,o)=>{let i=e.axes[r];if(o>1)return i?._size||0;let n=(i?.ticks?.size||0)+(i?.gap||0),a=(t??[]).reduce((s,l)=>l.length>s.length?l:s,"");return a!=""&&(e.ctx.font=i?.font?.[0]??e.ctx.font,n+=e.ctx.measureText(a).width/devicePixelRatio),Math.ceil(n)};function Qe(e,t,r){return{gap:0,font:H(t),labelFont:H(t),grid:{show:!0,width:.5},ticks:{width:.5},values:(o,i)=>i.map(n=>{let a=e(n);return a.text+(a.suffix?.trim()||"")}),size:pr,space:(o,i,n,a,s)=>{let l=o.height;return l<=100?30:l<=150?35:l<=200?45:l<=250?55:l<=300?60:70},show:!r}}function He(e,t){let r=[],o=e[0],i=o.length,n=Array(i).fill(0),a=[o];if(e.forEach((s,l)=>{l!==0&&(t?a.push(s):a.push(s.map((m,f)=>n[f]=n[f]+(m||0))))}),!t)for(let s=1;s<e.length-1;s++)r.push({series:[s+1,s]});return{data:a,bands:r.filter(s=>s.series[1]>-1)}}import{jsx as fr}from"react/jsx-runtime";function ve(e){let{times:t,series:r,metadata:o,type:i,className:n,timeZone:a,options:s,tooltip:l,colors:m,tooltipComponent:f,unit:g,fill:h=!1,thresholds:c,min:b,max:y,hideAxis:d,hideCursor:v,relativeTimeAxis:T,invertSort:x}=e,{hide:p,visibilityLimit:C}=l||{},R=dr(null),k=I(),A=m||k.colors;return mr(()=>{if(!r||r.length===0){console.warn("No series provided");return}let w=[t],M=g;r.forEach(U=>{let B=o[U.metric];g||(M=qe(M,B)),w.push(U.values)});let F=i==="bar"||i==="area",V=He(w,!F);c&&c.forEach(U=>{G(U)?V.data.push(new Array(t.length).fill(U.value)):Y(U)&&(V.data.push(new Array(t.length).fill(U.from)),V.data.push(new Array(t.length).fill(U.to)))});let N=R.current,W=null;if(N){let U=Be(N,o,V,M,r,i,F,A,h,a,f,T,p,c,b,y,d,v,C,x);W=new hr({...U,...s},V.data,N);let B=new ResizeObserver(()=>{W?.setSize({width:N.clientWidth,height:N.clientHeight})});return B.observe(N),()=>{W?.destroy(),B.disconnect()}}},[r,t,i,o,a,f,T,A,h,g,p,c,b,y,s,d,v]),fr("div",{ref:R,className:"ub-chart-container"+(n?` ${n}`:"")})}import{jsx as q}from"react/jsx-runtime";function yr({metrics:e,operator:t,attributes:r,groupBy:o,interval:i,type:n="line",className:a,appearance:s,unit:l,thresholds:m,min:f,max:g,colors:h,tooltip:c,fill:b,hideAxis:y,hideCursor:d,relativeTimeAxis:v,onResponse:T,invertSort:x}){let p=I(),C=i??p.interval,R=r??p.attributes,k=o??p.groupBy,A=t??p.operator,w=typeof v=="boolean"?v:p.relativeTimeAxis,M=h??p.colors,F=typeof b=="boolean"?b:p.fill,V=typeof x=="boolean"?x:p.invertSort,N=typeof y=="boolean"?y:p.hideAxis,W=typeof d=="boolean"?d:p.hideCursor,U=s?.components?.Tooltip??p.appearance.components.Tooltip,B=br(()=>({hide:c?.hide??p.tooltip?.hide,visibilityLimit:c?.visibilityLimit??p.tooltip?.visibilityLimit}),[c?.hide,p.tooltip?.hide,c?.visibilityLimit,p.tooltip?.visibilityLimit]),te=le({queries:(Array.isArray(e)?e:[e]).map(O=>({metrics:[O],operator:A,attributes:R,groupBy:k})),timeRange:p.timeRange,startTime:p.startTime,endTime:p.endTime,interval:C}),{isLoading:We,data:je,hasError:Ge}=te,{series:Ce,times:Ke,metadata:Xe}=je,Ye=Ce.every(O=>O.isEmpty),re=`ub-chart-container${a?` ${a}`:""}`;if(gr(()=>{T&&T(te)},[te,T]),We){let O=s?.components?.Loading??p.appearance.components.Loading;return q("div",{className:re,children:q(O,{})})}if(Ge){let O=s?.components?.Error??p.appearance.components.Error;return q("div",{className:re,children:q(O,{})})}if(Ye){let O=s?.components?.Empty??p.appearance.components.Empty;return q("div",{className:re,children:q(O,{})})}return q(ve,{times:Ke,series:Ce,metadata:Xe,type:n,className:a,tooltip:B,colors:M,relativeTimeAxis:w,unit:l,fill:F,tooltipComponent:U,thresholds:m,min:f,max:g,hideAxis:N,hideCursor:W,invertSort:V})}export{ve as Chart,ie as Empty,ne as Error,se as Loading,X as Scope,yr as Timeseries,at as UnblindProvider,Tt as useLogs,ct as useMetrics,ke as useRefresh,I as useScope,le as useTimeseries,gt as useUsage};
|
|
1
|
+
import{QueryClient as Me,QueryClientProvider as rt,useQueryClient as ot}from"@tanstack/react-query";import{createContext as it,useCallback as nt,useContext as st,useMemo as Ue}from"react";import{jsx as Ee}from"react/jsx-runtime";var Ne=it(void 0);function ce({children:e,queryClient:t,queryClientConfig:r,apiBaseUrl:i="/api/unblind",fetchImpl:o}){let n=Ue(()=>{if(t)return t;let a={refetchOnWindowFocus:!1,refetchOnReconnect:!1,refetchOnMount:!1},l={defaultOptions:{queries:a}};return r?new Me({...r,defaultOptions:{...r.defaultOptions,queries:{...a,...r.defaultOptions?.queries}}}):new Me(l)},[t,r]),s=Ue(()=>({apiBaseUrl:i,fetchImpl:o}),[i,o]);return Ee(rt,{client:n,children:Ee(Ne.Provider,{value:s,children:e})})}function D(){let e=st(Ne);if(!e)throw new Error("useUnblindConfig must be used within an UnblindClientProvider. Please wrap your app or component tree with <UnblindClientProvider>.");return e}function De(){let e=ot();return nt(async()=>{await e.refetchQueries({queryKey:["unblind","timeseries"]})},[e])}import{createContext as lt,useContext as Ve,useMemo as ee}from"react";import{jsx as F,jsxs as at}from"react/jsx-runtime";function ue(){return F("div",{className:"ub-default",children:at("div",{className:"ub-empty-content",children:[F("div",{className:"ub-empty-icon-wrapper",children:F("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"ub-icon",children:F("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})})}),F("p",{className:"ub-empty-text","data-text":"No data available for this time range"})]})})}function pe(){return F("div",{className:"ub-default-error"})}function me(){return F("div",{className:"ub-default-loading","data-text":"Loading"})}import{jsx as ut}from"react/jsx-runtime";var de=lt(void 0);function te({children:e,timeRange:t,startTime:r,endTime:i,interval:o,attributes:n,groupBy:s,operator:a,appearance:l,tooltip:c,colors:g,fill:d,hideAxis:h,hideCursor:u,relativeTimeAxis:m,invertSort:b,disableSuggestedLabel:v}){let f=Ve(de),x=l?.components?.Loading||f?.appearance?.components?.Loading,C=l?.components?.Error||f?.appearance?.components?.Error,y=l?.components?.Tooltip||f?.appearance?.components?.Tooltip,T=l?.components?.Empty||f?.appearance?.components?.Empty,R=typeof c?.hide=="boolean"?c?.hide:f?.tooltip?.hide,k=typeof c?.visibilityLimit=="number"?c?.visibilityLimit:f?.tooltip?.visibilityLimit,S=ee(()=>({components:{...x&&{Loading:x},...C&&{Error:C},...y&&{Tooltip:y},...T&&{Empty:T}}}),[x,C,y,T]),U=ee(()=>({hide:R,visibilityLimit:k}),[R,k]),w=ee(()=>({timeRange:t??f?.timeRange,startTime:r??f?.startTime,endTime:i??f?.endTime,interval:o??f?.interval,attributes:n??f?.attributes,groupBy:s??f?.groupBy,operator:a??f?.operator,colors:g??f?.colors,relativeTimeAxis:typeof m=="boolean"?m:f?.relativeTimeAxis,fill:typeof d=="boolean"?d:f?.fill,hideAxis:typeof h=="boolean"?h:f?.hideAxis,hideCursor:typeof u=="boolean"?u:f?.hideCursor,invertSort:typeof b=="boolean"?b:f?.invertSort,disableSuggestedLabel:typeof v=="boolean"?v:f?.disableSuggestedLabel,appearance:S,tooltip:U}),[t,r,i,o,n,s,a,g,d,m,h,u,S,U,f,b,v]);return ut(de.Provider,{value:w,children:e})}var ct="6h";function V(){let e=Ve(de);return ee(()=>({...e,timeRange:e?.timeRange||ct,appearance:{components:{Loading:e?.appearance?.components?.Loading??me,Error:e?.appearance?.components?.Error??pe,Empty:e?.appearance?.components?.Empty??ue,Tooltip:e?.appearance?.components?.Tooltip}}}),[e])}import{jsx as Oe}from"react/jsx-runtime";function pt({children:e,queryClient:t,apiBaseUrl:r,fetchImpl:i,timeRange:o,startTime:n,endTime:s,interval:a,attributes:l,groupBy:c,operator:g,appearance:d,tooltip:h,colors:u,fill:m,hideAxis:b,hideCursor:v,relativeTimeAxis:f,invertSort:x,disableSuggestedLabel:C}){return Oe(ce,{queryClient:t,apiBaseUrl:r,fetchImpl:i,children:Oe(te,{timeRange:o,startTime:n,endTime:s,interval:a,attributes:l,groupBy:c,operator:g,appearance:d,tooltip:h,colors:u,fill:m,hideAxis:b,hideCursor:v,relativeTimeAxis:f,invertSort:x,disableSuggestedLabel:C,children:e})})}import{useQuery as mt}from"@tanstack/react-query";function dt(){let{apiBaseUrl:e,fetchImpl:t=fetch}=D(),r=mt({queryKey:["unblind","metrics"],queryFn:async()=>{let i=await t(`${e}/metrics`,{headers:{"Content-Type":"application/json"}});if(!i.ok)throw new Error("Error loading metrics metadata");if(i.status===200){let{data:o}=await i.json();return o}else throw new Error("Unexpected status code")}});return{metrics:r.data,isLoading:r.isLoading,hasError:r.isError,refetch:r.refetch}}import{useQuery as bt}from"@tanstack/react-query";import{useMemo as X}from"react";import ft from"ms";function Ie({scope:e,props:t}){return t.timeRange||t.startTime&&t.endTime?t:e}function ht(e){let t=Math.floor(Date.now()/1e3);return[t-Math.floor(ft(e)/1e3),t]}function Q(e,t,r){let i,o;if(typeof t=="number"&&typeof r=="number")i=t,o=r;else if(e){let[n,s]=ht(e);i=n,o=s}else throw new Error("Either timeRange or both startTime and endTime must be provided");return[i,o]}import{useMemo as gt}from"react";function $(e){let t=V(),{timeRange:r,startTime:i,endTime:o}=Ie({props:e,scope:t});return gt(()=>({timeRange:r,startTime:i,endTime:o}),[r,i,o])}function fe(e){let{apiBaseUrl:t,fetchImpl:r=fetch}=D(),{startTime:i,endTime:o,timeRange:n}=$(e),{queries:s,interval:a}=e,l=X(()=>s.map(y=>y.metrics.join(",")).join(","),[s]),c=X(()=>s.map(y=>{let T=y.attributes;if(!T)return"";let R=Object.keys(T);return R.length===0?"":R.map(k=>k+":"+T[k]?.join(",")).join(",")}).join(","),[s]),g=X(()=>s.map(y=>y.operator),[s]),d=X(()=>s.map(y=>y.groupBy).join(", "),[s]),u=bt({queryKey:["unblind","timeseries",l,c,i,o,n,a,g,d],queryFn:async()=>{if(!l)throw new Error("Missing required parameters");if(l.length===0)throw new Error("No series provided");let[y,T]=Q(n,i,o),R={queries:s,startTime:y,endTime:T,interval:a},k=await r(`${t}/tenants/timeseries`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(R)});if(!k.ok)throw new Error("Error fetching metric");let{series:S,times:U,metadata:w}=await k.json();if(!S)throw console.error("Series not found"),new Error("Series not found");return{series:S,times:U,metadata:w}},enabled:!!l&&(typeof i=="number"&&typeof o=="number"||!!n)}),{metadata:m,series:b,times:v}=X(()=>u.data?{series:u.data.series,times:u.data.times,metadata:u.data.metadata}:{series:[],times:[],metadata:{}},[u]),f=u.isLoading,x=u.isFetching,C=u.isError;return{data:{series:b,times:v,metadata:m},isLoading:f,isFetching:x,hasError:C,refetch:u.refetch}}import{useQuery as yt}from"@tanstack/react-query";import{useMemo as Tt}from"react";function vt(e){let{apiBaseUrl:t,fetchImpl:r=fetch}=D(),{startTime:i,endTime:o,timeRange:n}=$(e),a=yt({queryKey:["unblind","usage",n,i,o],queryFn:async()=>{let[d,h]=Q(n,i,o),u=`${t}/tenants/usage`,m=await r(u,{headers:{"Content-Type":"application/json"},body:JSON.stringify({startTime:d,endTime:h})});if(!m.ok)throw new Error("Error fetching usage");let{data:b}=await m.json();if(!b)throw new Error("usage not found");return b},enabled:typeof i=="number"&&typeof o=="number"||!!n}),l=Tt(()=>a.data?a.data||[]:[],[a]),c=a.isLoading||a.isRefetching,g=a.isError;return{usage:l,isLoading:c,hasError:g,refetch:a.refetch}}import{useInfiniteQuery as Ct}from"@tanstack/react-query";import{useMemo as xt}from"react";function St(e){let{apiBaseUrl:t,fetchImpl:r=fetch}=D(),{timeRange:i,startTime:o,endTime:n}=$(e),{attributes:s,body:a,severity:l,traceId:c,spanId:g,logId:d}=e,h=Ct({queryKey:["unblind","logs",i,o,n,a,l,d,JSON.stringify(s)],queryFn:async({pageParam:m})=>{let[b,v]=Q(i,o,n),f=await r(`${t}/tenants/logs`,{method:"POST",body:JSON.stringify({attributes:s,body:a,severity:l,traceId:c,spanId:g,logId:d,startTime:b,endTime:v,pagination:{page:m}}),headers:{"Content-Type":"application/json"}});if(!f.ok)throw new Error("Error fetching logs");let{data:x,nextPage:C}=await f.json();if(!x)throw new Error("data not found");return{data:x,nextPage:C}},initialPageParam:void 0,getNextPageParam:m=>m.nextPage});return{logs:xt(()=>h.data?h.data.pages.flatMap(m=>m.data||[]):[],[h.data]),isLoading:h.isLoading,hasError:h.isError,hasNextPage:h.hasNextPage??!1,fetchNextPage:h.fetchNextPage,isFetchingNextPage:h.isFetchingNextPage,refetch:h.refetch}}var Y=e=>"value"in e,re=e=>"from"in e&&"to"in e;function he(e){return typeof e=="object"&&e!==null&&typeof e.name=="string"&&typeof e.label=="string"}import{useEffect as yr,useMemo as Ae}from"react";import{useEffect as fr,useRef as hr}from"react";import gr from"uplot";import ie from"uplot";import{getValueFormat as Kt}from"@unblind/units";import{dateTimeFormat as Pt,dateTimeFormatTimeAgo as Lt,systemDateFormats as ge}from"@unblind/units";var M={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,month:24192e5,year:31536e6},W={second:[1,2,5,10,15,30],minute:[1,2,5,10,15,30],hour:[1,2,3,4,6,8,12],day:[1,2,3,7,14],month:[1,2,3,6],year:[1,2,5,10,20,50,100]};function Rt(e,t,r,i){if(t>7*M.day){let o=ge.interval.year,n=Math.round(M.year/M.day)*M.day;if(Math.round(t/M.day)*M.day===n)o=ge.interval.year;else{if(t<=M.year)return e.map(a=>{let l=new Date(a);return(i==="UTC"?l.getUTCDate():l.getDate())===1?l.toLocaleDateString(void 0,{month:"short",year:"numeric",timeZone:i}):l.toLocaleDateString(void 0,{day:"numeric",month:"short",timeZone:i})});o=ge.interval.day}return e.map(a=>Pt(a,{format:o,timeZone:i}))}return e.map(o=>{let n=new Date(o),s=t<M.minute,a=t<M.second,l=n.toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:i});return(l==="00:00"||l==="24:00")&&!s&&!a?n.toLocaleDateString(void 0,{day:"2-digit",month:"short",timeZone:i}):n.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:s?"2-digit":void 0,fractionalSecondDigits:a?3:void 0,hour12:!1,timeZone:i})})}function kt(e){let t=[{size:M.second/1e3,increments:W.second},{size:M.minute/1e3,increments:W.minute},{size:M.hour/1e3,increments:W.hour},{size:M.day/1e3,increments:W.day},{size:M.month/1e3,increments:W.month},{size:M.year/1e3,increments:W.year}];for(let o of t)for(let n of o.increments){let s=o.size*n;if(s>=e)return{increment:s*1e3,multiplier:n}}let r=t[t.length-1],i=r.increments[r.increments.length-1];return{increment:r.size*i*1e3,multiplier:i}}function At(e,t,r){return[t,r]}function wt(e,t,r){return t.length===0?[]:t.map((i,o)=>o===0||o===t.length-1?Lt(i*1e3,{timeZone:r}):"")}function Mt(e,t,r){let i=e.scales.x,o=((i?.max??0)-(i?.min??0))*1e3,n=Math.floor(e.width/100),s=o/1e3/n,{increment:a}=kt(s),l=t.map(c=>c*1e3);return Rt(l,a,o,r)}function ze(e,t,r=!1,i=!1){let o=r?(s,a,l,c)=>At(s,l,c):void 0,n=r?(s,a)=>wt(s,a,t):(s,a)=>Mt(s,a,t);return{font:j(e),labelFont:j(e),grid:{show:!1,width:.5},ticks:{width:.5},splits:o,values:n,size:20,show:!i,align:r?2:void 0,space:(s,a,l,c,g)=>g<400?100:g<800?150:250}}import{computePosition as Ut,flip as Et,offset as Nt}from"@floating-ui/dom";import{createRoot as Dt}from"react-dom/client";var Vt=4,Ot=8,be=class{overlay=null;reactRoot=null;renderedUplot=null;initialize(){this.overlay||(this.overlay=document.createElement("div"),this.overlay.id="unblind-tooltip-overlay",this.overlay.style.display="none",this.overlay.style.position="fixed",this.overlay.style.pointerEvents="none",this.overlay.style.zIndex="9999",document.body.appendChild(this.overlay),this.reactRoot=Dt(this.overlay))}getOverlay(){return this.overlay}render(t,r){this.reactRoot?(this.reactRoot.render(r),this.renderedUplot=t):this.renderedUplot=null}show(){this.overlay&&(this.overlay.style.display="block")}hide(t){if(t!==this.renderedUplot){console.warn("Hide call plot");return}this.overlay&&(this.overlay.style.display="none"),this.render(null,null)}getRenderedUplot(){return this.renderedUplot}async positionTooltip(t){let r=this.getOverlay();if(r){let{x:i,y:o}=await Ut({getBoundingClientRect:()=>({x:t.left,y:t.top,width:0,height:0,top:t.top,left:t.left,right:t.left,bottom:t.top})},r,{placement:"top-start",strategy:"fixed",middleware:[Nt({mainAxis:Vt,crossAxis:Ot}),Et()]});r.style.left=`${i}px`,r.style.top=`${o}px`}}},E=new be;import{dateTimeFormat as qe}from"@unblind/units";import{createContext as Fe,Fragment as It,useContext as Be}from"react";import{Fragment as $t,jsx as p,jsxs as A}from"react/jsx-runtime";var zt=6,_e=Fe(null);function oe(){let e=Be(_e);if(!e)throw new Error("useTooltipSerie must be used within a SerieProvider");return e}function qt({serie:e,children:t}){return p(_e.Provider,{value:e,children:t})}var He=Fe(null);function J(){let e=Be(He);if(!e)throw new Error("useTooltipSerie must be used within a SerieProvider");return e}function ye({formattedTime:e,tooltip:t,children:r}){return p(He.Provider,{value:{formattedTime:e,disableSuggestedLabel:t.disableSuggestedLabel,invertSort:t.invertSort,visibilityLimit:t.visibilityLimit||zt},children:r})}function Te({className:e="ub-tooltip-divider",...t}){return p("hr",{role:"presentation",...t,className:e})}function Ft({unitCategory:e,tooltipSerieList:t}){let{visibilityLimit:r,formattedTime:i}=J(),o=t.slice(0,r),n=t.slice(r);return A("div",{className:"ub-tooltip ub-tooltip-multiple-metrics",children:[A(Se,{children:[p(Pe,{children:i}),p("div",{className:"ub-tooltip-header-right",children:p(Ht,{children:e})})]}),p(Te,{}),A("div",{children:[p(xe,{children:o.map(s=>A(Ce,{serie:s,children:[p(Re,{}),p(Qe,{}),p(Le,{})]},s.metric.name))}),p(ve,{series:n})]})]})}function Bt({tooltipSerieList:e}){let{visibilityLimit:t,disableSuggestedLabel:r,formattedTime:i}=J(),o=e[0],n=e.slice(0,t),s=e.slice(t);return A("div",{className:"ub-tooltip ub-tooltip-multiple-attributes",children:[A(Se,{children:[p(Pe,{children:i}),p("div",{className:"ub-tooltip-header-right",children:p("span",{className:"ub-tooltip-serie-metric",children:o?.metric.label||!r&&o?.metric.suggestedLabel||o?.metric.name})})]}),p(Te,{}),A("div",{children:[p(xe,{children:n.map((a,l)=>A(Ce,{serie:a,children:[p(Re,{}),p($e,{}),p(Le,{})]},"serie_"+l))}),p(ve,{series:s})]})]})}function _t({tooltipSerieList:e,unitCategory:t}){let{visibilityLimit:r,formattedTime:i}=J(),o=e.slice(0,r),n=e.slice(r);return A("div",{className:"ub-tooltip ub-tooltip-multiple-metrics-attributes",children:[A(Se,{children:[p(Pe,{children:i}),p("div",{className:"ub-tooltip-header-right",children:p("span",{className:"ub-tooltip-unit-category",children:t})})]}),p(Te,{}),A("div",{children:[p(xe,{children:o.map((s,a)=>A(Ce,{serie:s,children:[p(Re,{}),p(Qe,{}),p($e,{}),p(Le,{})]},"serie"+a))}),p(ve,{series:n})]})]})}function Ht(e){return p("span",{className:"ub-tooltip-unit-category",children:e.children})}function ve({series:e}){let t=e[0]?.formattedValue,r=!e.some(n=>(n.value||0)>0),i=!e.some(n=>n.value!==void 0),{invertSort:o}=J();return e.length>0?i?p("span",{className:"ub-tooltip-summary",children:A("span",{children:["+",e.length," more with no data"]})}):r?p("span",{className:"ub-tooltip-summary",children:A("span",{children:["+",e.length," more with zero values"]})}):A("span",{className:"ub-tooltip-summary",children:[A("span",{children:["+",e.length," more with "]}),p("span",{children:`${o?"\u2265":"\u2264"} ${t}`})]}):p($t,{})}function Ce(e){return p(qt,{serie:e.serie,children:p("div",{className:"ub-tooltip-serie",children:e.children})})}function xe(e){return p("div",{className:"ub-tooltip-content",children:e.children})}function Se(e){return p("div",{className:"ub-tooltip-header",children:e.children})}function Pe(e){return p("div",{className:"ub-tooltip-datetime",children:e.children})}function Qe(){let e=oe(),{disableSuggestedLabel:t}=J();return p("span",{className:"ub-tooltip-serie-metric ub-truncate",children:e.metric.label||!t&&e.metric.suggestedLabel||e.metric.name})}function Le(){let e=oe();return e.formattedValue?p("span",{className:"ub-tooltip-serie-value ub-truncate",children:e.formattedValue}):p("span",{className:"ub-tooltip-serie-value-empty",children:"\u2013"})}function Re(){let e=oe();return p("span",{style:{backgroundColor:e.color},className:"ub-tooltip-serie-color"})}function $e(){let{attributes:e}=oe();if(!e)return null;let t=Object.values(e);return p("div",{className:"ub-tooltip-serie-attributes ub-truncate",children:t.map((r,i)=>A(It,{children:[p("span",{className:"ub-tooltip-serie-attribute-value",children:r}),i<t.length-1&&p("span",{"data-text":", ",className:"ub-tooltip-serie-attribute-divider"})]},"tooltip-"+r))})}function Qt({tooltipSerieList:e,invertSort:t}){return t?e.sort((r,i)=>(Number(r.value)||0)-(Number(i.value)||0)):e.sort((r,i)=>(Number(i.value)||0)-(Number(r.value)||0))}function We({timestamp:e,tooltipSerieList:t,timeZone:r,spansMultipleDays:i,hasMultipleMetrics:o,hasAttributes:n,invertSort:s,visibilityLimit:a,disableSuggestedLabel:l}){let c=Qt({tooltipSerieList:t,invertSort:s}),g=i?qe(e*1e3,{format:"MMM DD, HH:mm",timeZone:r}):qe(e*1e3,{format:"HH:mm",timeZone:r});return n?n&&!o?p(ye,{tooltip:{invertSort:s,visibilityLimit:a,disableSuggestedLabel:l},formattedTime:g,children:p(Bt,{tooltipSerieList:c})}):p(ye,{tooltip:{invertSort:s,visibilityLimit:a,disableSuggestedLabel:l},formattedTime:g,children:p(_t,{unitCategory:"",tooltipSerieList:c})}):p(ye,{tooltip:{invertSort:s,visibilityLimit:a,disableSuggestedLabel:l},formattedTime:g,children:p(Ft,{unitCategory:"",tooltipSerieList:c})})}import{jsx as je}from"react/jsx-runtime";function Wt(e,t){if(!e||e.length===0)return!1;let r=e[0],i=e[e.length-1];if(r==null||i==null)return!1;let o=new Date(r*1e3),n=new Date(i*1e3),s=a=>t==="UTC"?`${a.getUTCFullYear()}-${a.getUTCMonth()}-${a.getUTCDate()}`:a.toLocaleDateString(void 0,{timeZone:t});return s(o)!==s(n)}function jt(e,t){let r=!1;for(let o=1;o<e.series.length;o++)if(e.data[o]?.[t]!=null){r=!0;break}if(r)return t;let i=e.data[0].length;for(let o=1;t+o<i||t-o>=0;o++){let n=t-o,s=t+o;if(n>=0){for(let a=1;a<e.series.length;a++)if(e.data[a]?.[n]!=null)return n}if(s<i){for(let a=1;a<e.series.length;a++)if(e.data[a]?.[s]!=null)return s}}return t}function Gt(e,t,r,i,o,n,s){let a=[],l=e.data[0],c=new Set,g=new Set,d=!1;for(let h=1;h<e.series.length;h++){let u=e.data[h]?.[t]??null;if(i&&u!=null&&h>1){let T=e.data[h-1]?.[t]??0;u=u-T}let m=e.series[h],b=n?.[h-1];if(!b){console.warn("Original serie not found");continue}let v=o[b.metric];if(!v){console.warn("Metric metadata not found");continue}c.add(b.metric);let f=b?.attributes;if(f&&Object.keys(f).length>0){d=!0;for(let T in f)g.add(T)}let x=m?.stroke,C=typeof x=="function"?x(e,h):x??"#ffffff00",y=u==null?void 0:r?r(u):String(u);a.push({metric:v,color:C,value:u===null?void 0:u,formattedValue:y,attributes:f,serie:m})}return{tooltipSerieList:a,hasAttributes:d,hasMultipleMetrics:c.size>1,hasMultipleAttributes:g.size>1,spansMultipleDays:Wt(l,s)}}function Ge(e,t,r,i,o,n,s,a,l){let c,g,d,h=!1;function u(){let m=c.getBoundingClientRect();g=m.left,d=m.top}return{hooks:{init:m=>{E.initialize(),c=m.over,window.addEventListener("scroll",u,!0),window.addEventListener("resize",u),c.onmouseenter=()=>{h=!0,E.show()},c.onmouseleave=()=>{h=!1,E.getRenderedUplot()===m&&E.hide(m)},u()},setSize:()=>{u()},setCursor:m=>{let{left:b,top:v,idx:f}=m.cursor;if(!h||f==null){E.getRenderedUplot()===m&&E.hide(m);return}let C=jt(m,f),y=m.data[0][C];if(y===void 0)return;let{tooltipSerieList:T,hasAttributes:R,hasMultipleAttributes:k,hasMultipleMetrics:S,spansMultipleDays:U}=Gt(m,C,e,t,r,n,i);E.show();let w=o,O=w?je(w,{timestamp:y,tooltipSerieList:T,timeZone:i}):je(We,{timestamp:y,tooltipSerieList:T,timeZone:i,spansMultipleDays:U,stacked:t,hasAttributes:R,hasMultipleAttributes:k,hasMultipleMetrics:S,visibilityLimit:s,invertSort:a,disableSuggestedLabel:l});E.render(m,O),E.positionTooltip({left:(b||0)+g,top:(v||0)+d})},destroy(m){window.removeEventListener("scroll",u,!0),window.removeEventListener("resize",u),c&&(c.onmouseenter=null,c.onmouseleave=null),E.getRenderedUplot()===m&&E.hide(m)}}}}var ne=["oklch(0.70 0.24 293)","oklch(0.85 0.18 95)","oklch(0.65 0.25 255)","oklch(0.72 0.26 27)","oklch(0.70 0.22 150)","oklch(0.78 0.18 50)","oklch(0.72 0.18 215)","oklch(0.70 0.27 301)","oklch(0.75 0.20 90)","oklch(0.68 0.23 277)","oklch(0.70 0.18 193)","oklch(0.68 0.25 4)"],j=e=>`${getComputedStyle(document.documentElement).getPropertyValue("--ub-chart-font-size").trim()} ${e}`,Ke=(e,t)=>{let r=e;return t&&t.unit&&t.unit.code&&t.unit.code!=="1"&&(!r&&t.unit?r=t.unit.code:r&&t.unit.code!==r&&(r=void 0)),r};function Xt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Array.isArray(e.fill)&&Array.isArray(e.border)}function Yt(e){return Array.isArray(e)}var Jt=12,Zt=({isFilling:e,useSolid:t,index:r})=>{let i=r%Jt+1;return e?t?`--ub-chart-serie-color-${i}`:`--ub-chart-serie-fill-color-${i}`:`--ub-chart-serie-color-${i}`},Xe=(e,t,r,i,o,n)=>{let s=i==="bar"||i==="area";if(r)return Yt(r)?r[t]:Xt(r)?n?r.fill[t]:r.border[t]:r(e,t,i,n);let a=Zt({isFilling:n,useSolid:s,index:t}),l=o.getPropertyValue(a).trim();return l||(n&&s?ne[t%ne.length]?.replace(")"," / 0.4)"):ne[t%ne.length])},er=e=>{let t=ie.paths.bars({size:[.6,100],radius:0,gap:0}),r=ie.paths.linear({alignGaps:0}),i=ie.paths.spline({alignGaps:1}),o=ie.paths.stepped({alignGaps:1});switch(e){case"line":return r;case"bar":return t;case"area":return r;case"step":return o;case"spline":return i;default:return r}},tr=(e,t,r,i,o)=>Xe(e,t,r,i,o,!0),rr=(e,t)=>{switch(e){case"bar":return 1;case"line":return t?1.5:2;case"spline":return t?1.5:2;case"area":return 1;case"step":return 1.5;default:return 1}},or=(e,t,r)=>{if(t<0||r<0)return[t,r];let i=e.posToVal(t,"x"),o=e.data[0];if(!o||o.length===0)return[t,r];let n=0,s=0,a=o.length-1;for(;a-s>1;){let u=Math.floor((s+a)/2),m=o[u];m!=null&&m<i?s=u:a=u}let l=o[s],c=o[a];l!=null&&c!=null?n=Math.abs(l-i)<Math.abs(c-i)?s:a:l!=null?n=s:c!=null&&(n=a);let g=n;for(let u=n;u>=0;u--){let m=!1;for(let b=1;b<e.data.length;b++){let v=e.data[b];if(v&&v[u]!=null){m=!0;break}}if(m){g=u;break}}let d=o[g];return d==null?[t,r]:[e.valToPos(d,"x"),r]},ir=(e,t)=>{let r=t.getPropertyValue("--ub-chart-font-color").trim(),i=t.getPropertyValue("--ub-chart-grid-color").trim(),o=e.axes?.[0],n=e.axes?.[1];return o&&(o.stroke=r,o.grid?o.grid.stroke=i:o.grid={stroke:i}),n&&(n.stroke=r,n.grid?n.grid.stroke=i:n.grid={stroke:i}),e},nr=(e,t)=>e.getPropertyValue(`--ub-chart-threshold-${t}`).trim()||e.getPropertyValue("--ub-chart-threshold-default").trim(),sr=(e,t)=>e.getPropertyValue(`--ub-chart-threshold-${t}-fill`).trim()||e.getPropertyValue("--ub-chart-threshold-default-fill").trim(),ar=e=>{switch(e){case"bold":return 2;case"line":return 1;case"dashed":return 1;default:return 1}},lr=e=>e==="line"?void 0:[5,5],cr=(e,t)=>{if(t){let r=[];return t.forEach(i=>{let o={label:i.label,stroke:nr(e,i.level),width:ar(),dash:lr(i.type),points:{show:!1,size:0},spanGaps:!0,show:!0,auto:!1};Y(i)||r.push(o),r.push(o)}),r}else return[]},ur=(e,t,r,i)=>{if(!i||!i.some(n=>re(n)))return t.bands;let o=i.map((n,s)=>Y(n)?null:{series:[e.length+s*2+1,e.length+s*2+2],fill:sr(r,n.level),dir:1}).filter(n=>n!==null);return[...t.bands,...o]},pr=(e,t,r,i,o,n,s)=>{let a=rr(t,i);return[{},...e.map((l,c)=>({label:l.metric,stroke:Xe(l,c,r,t,n),width:a,points:{show:!1},spanGaps:!0,paths:er(t),fill:i||o?tr(l,c,r,t,n):void 0})),...cr(n,s)]},mr=e=>typeof e=="string"&&String(e).toLowerCase().trim()==="by"?"bytes":e,Ye=(e,t,r,i,o,n,s,a,l,c,g,d,h,u,m,b,v,f,x,C,y)=>{let T=window.getComputedStyle(e),R=T.fontFamily,k=e?.clientWidth??1050,S=e?.clientHeight??250,U=mr(i),w=Kt(U==="1"?null:U),O=I=>{let P=w(I);return P.text+(P.suffix?.trim()||"")},_={width:k,height:S,scales:{y:{range:Je(i,m,b)}},plugins:h?[]:[Ge(O,s,t,c,g,o,x,C,y)],padding:d?[8,10,8,48]:[8,10,8,18],cursor:{y:!1,sync:{key:"_"},drag:{setScale:!0,x:!0,y:!1},move:or,show:!f},series:pr(o,n,a,l,s,T,u),bands:ur(o,r,T,u),axes:[ze(R,c,d,v),Ze(w,R,v)],legend:{show:!1}};return ir(_,T)};var et=(e,t=4)=>{let r=e/t,i=Math.pow(10,Math.floor(Math.log10(r))),o=r/i,n;return o>5?n=10*i:o>2?n=5*i:o>1?n=2*i:n=i,Math.ceil(e/n)*n},L=(e,t)=>typeof e=="number"?e:t,Je=(e,t,r)=>(i,o,n)=>{if(o===0&&n===0)return[L(t,0),L(r,100)];let s=1,a=n*(1+s),l=o<0?o*(1+s):o*(1-s);if(e==="percent"||e==="percentunit"){let d=e==="percent"?100:1;return n>d?o<0?[L(t,l),L(r,a)]:[L(t,0),L(r,a)]:o<0?[L(t,l),L(r,d)]:[L(t,0),L(r,d)]}if(n<=.9999)return o<=0?[L(t,l),L(r,1)]:[L(t,0),L(r,1)];let c=et(a),g=et(Math.abs(l));return o<0?[L(r,-g),L(r,c)]:[L(t,0),L(r,c)]},dr=(e,t,r,i)=>{let o=e.axes[r];if(i>1)return o?._size||0;let n=(o?.ticks?.size||0)+(o?.gap||0),s=(t??[]).reduce((a,l)=>l.length>a.length?l:a,"");return s!=""&&(e.ctx.font=o?.font?.[0]??e.ctx.font,n+=e.ctx.measureText(s).width/devicePixelRatio),Math.ceil(n)};function Ze(e,t,r){return{gap:0,font:j(t),labelFont:j(t),grid:{show:!0,width:.5},ticks:{width:.5},values:(i,o)=>o.map(n=>{let s=e(n);return s.text+(s.suffix?.trim()||"")}),size:dr,space:(i,o,n,s,a)=>{let l=i.height;return l<=100?30:l<=150?35:l<=200?45:l<=250?55:l<=300?60:70},show:!r}}function tt(e,t){let r=[],i=e[0],o=i.length,n=Array(o).fill(0),s=[i];if(e.forEach((a,l)=>{l!==0&&(t?s.push(a):s.push(a.map((c,g)=>n[g]=n[g]+(c||0))))}),!t)for(let a=1;a<e.length-1;a++)r.push({series:[a+1,a]});return{data:s,bands:r.filter(a=>a.series[1]>-1)}}import{jsx as br}from"react/jsx-runtime";function ke(e){let{times:t,series:r,metadata:i,type:o,className:n,timeZone:s,options:a,tooltip:l,colors:c,tooltipComponent:g,unit:d,fill:h,thresholds:u,min:m,max:b,hideAxis:v,hideCursor:f,relativeTimeAxis:x,invertSort:C,disableSuggestedLabel:y}=e,{hide:T,visibilityLimit:R}=l||{},k=hr(null),S=V(),U=typeof x=="boolean"?x:S.relativeTimeAxis,w=c??S.colors,O=typeof h=="boolean"?h:S.fill||!1,_=typeof C=="boolean"?C:S.invertSort,I=typeof y=="boolean"?y:S.disableSuggestedLabel,P=typeof v=="boolean"?v:S.hideAxis,z=typeof f=="boolean"?f:S.hideCursor,se=typeof R=="boolean"?R:S.tooltip?.visibilityLimit,q=typeof T=="boolean"?T:S.tooltip?.hide;return fr(()=>{if(!r||r.length===0){console.warn("No series provided");return}let G=[t],ae=d;r.forEach(N=>{let Z=i[N.metric];d||(ae=Ke(ae,Z)),G.push(N.values)});let we=o==="bar"||o==="area",K=tt(G,!we);u&&u.forEach(N=>{Y(N)?K.data.push(new Array(t.length).fill(N.value)):re(N)&&(K.data.push(new Array(t.length).fill(N.from)),K.data.push(new Array(t.length).fill(N.to)))});let H=k.current,le=null;if(H){let N=Ye(H,i,K,ae,r,o,we,w,O,s,g,U,q,u,m,b,P,z,se,_,I);le=new gr({...N,...a},K.data,H);let Z=new ResizeObserver(()=>{le?.setSize({width:H.clientWidth,height:H.clientHeight})});return Z.observe(H),()=>{le?.destroy(),Z.disconnect()}}},[r,t,o,i,s,g,U,w,O,d,q,u,m,b,a,P,z,_,se,I]),br("div",{ref:k,className:"ub-chart-container"+(n?` ${n}`:"")})}import{jsx as B}from"react/jsx-runtime";function Tr({metrics:e,operator:t,attributes:r,groupBy:i,interval:o,type:n="line",className:s,appearance:a,tooltip:l,onResponse:c,...g}){let d=V(),h=o??d.interval,u=r??d.attributes,m=i??d.groupBy,b=t??d.operator,v=a?.components?.Tooltip??d.appearance.components.Tooltip,f=Ae(()=>({hide:l?.hide??d.tooltip?.hide,visibilityLimit:l?.visibilityLimit??d.tooltip?.visibilityLimit}),[l?.hide,d.tooltip?.hide,l?.visibilityLimit,d.tooltip?.visibilityLimit]),{queries:x,metadataLabels:C}=Ae(()=>{let P=Array.isArray(e)?e:[e],z={};return{queries:P.map(q=>{let G=he(q)?q.name:q;return he(q)&&(z[G]=q.label),{metrics:[G],operator:b,attributes:u,groupBy:m}}),metadataLabels:z}},[e,b,u,m]),y=fe({queries:x,timeRange:d.timeRange,startTime:d.startTime,endTime:d.endTime,interval:h}),{isLoading:T,data:R,hasError:k}=y,{series:S,times:U,metadata:w}=R,O=S.every(P=>P.isEmpty),_=Ae(()=>Object.keys(C).length===0?w:Object.fromEntries(Object.entries(w).map(([P,z])=>[P,{...z,label:C[P]??z.suggestedLabel??P}])),[C,w]),I=`ub-chart-container${s?` ${s}`:""}`;if(yr(()=>{c&&c(y)},[y,c]),T){let P=a?.components?.Loading??d.appearance.components.Loading;return B("div",{className:I,children:B(P,{})})}if(k){let P=a?.components?.Error??d.appearance.components.Error;return B("div",{className:I,children:B(P,{})})}if(O){let P=a?.components?.Empty??d.appearance.components.Empty;return B("div",{className:I,children:B(P,{})})}return B(ke,{times:U,series:S,metadata:_,type:n,className:s,tooltip:f,tooltipComponent:v,...g})}export{ke as Chart,ue as Empty,pe as Error,me as Loading,te as Scope,Tr as Timeseries,pt as UnblindProvider,St as useLogs,dt as useMetrics,De as useRefresh,V as useScope,fe as useTimeseries,vt as useUsage};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|