@unblind/react 0.1.0-alpha.9 → 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var rt=Object.create;var W=Object.defineProperty;var it=Object.getOwnPropertyDescriptor;var nt=Object.getOwnPropertyNames;var st=Object.getPrototypeOf,at=Object.prototype.hasOwnProperty;var lt=(e,t)=>{for(var o in t)W(e,o,{get:t[o],enumerable:!0})},he=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of nt(t))!at.call(e,r)&&r!==o&&W(e,r,{get:()=>t[r],enumerable:!(i=it(t,r))||i.enumerable});return e};var X=(e,t,o)=>(o=e!=null?rt(st(e)):{},he(t||!e||!e.__esModule?W(o,"default",{value:e,enumerable:!0}):o,e)),ut=e=>he(W({},"__esModule",{value:!0}),e);var Dt={};lt(Dt,{Chart:()=>se,Empty:()=>Y,Error:()=>J,Loading:()=>Z,TimeseriesChart:()=>ot,UnblindProvider:()=>xe,UnblindScope:()=>ee,useLogs:()=>Ee,useMetrics:()=>we,useRefresh:()=>ue,useScope:()=>O,useTheme:()=>re,useTimeseries:()=>te,useUsage:()=>Me});module.exports=ut(Dt);var z=require("@tanstack/react-query"),E=require("react"),le=require("react/jsx-runtime"),ye=(0,E.createContext)(void 0);function Te({children:e,queryClient:t,queryClientConfig:o,apiBaseUrl:i="/api/unblind",fetchImpl:r}){let u=(0,E.useMemo)(()=>{if(t)return t;let n={refetchOnWindowFocus:!1,refetchOnReconnect:!1,refetchOnMount:!1},l={defaultOptions:{queries:n}};return o?new z.QueryClient({...o,defaultOptions:{...o.defaultOptions,queries:{...n,...o.defaultOptions?.queries}}}):new z.QueryClient(l)},[t,o]),s=(0,E.useMemo)(()=>({apiBaseUrl:i,fetchImpl:r}),[i,r]);return(0,le.jsx)(z.QueryClientProvider,{client:u,children:(0,le.jsx)(ye.Provider,{value:s,children:e})})}function L(){let e=(0,E.useContext)(ye);if(!e)throw new Error("useUnblindConfig must be used within an UnblindClientProvider. Please wrap your app or component tree with <UnblindClientProvider>.");return e}function ue(){let e=(0,z.useQueryClient)();return(0,E.useCallback)(async()=>{await e.refetchQueries({queryKey:["unblind","timeseries"]})},[e])}var I=require("react");var k=require("react/jsx-runtime");function Y(){return(0,k.jsx)("div",{className:"ub-default",children:(0,k.jsxs)("div",{className:"ub-empty-content",children:[(0,k.jsx)("div",{className:"ub-empty-icon-wrapper",children:(0,k.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"ub-icon",children:(0,k.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})})}),(0,k.jsx)("p",{className:"ub-empty-text","data-text":"No data available for this time range"})]})})}function J(){return(0,k.jsx)("div",{className:"ub-error"})}function Z(){return(0,k.jsx)("div",{className:"ub-default","data-text":"Loading"})}var ve=require("react/jsx-runtime"),ce=(0,I.createContext)(void 0);function ee({children:e,timeRange:t,startTime:o,endTime:i,interval:r,attributes:u,groupBy:s,operator:n,appearance:l}){let a=(0,I.useContext)(ce),m=l?.components?.Loading,d=l?.components?.Error,p=l?.components?.Tooltip,c=l?.tooltip?.layout,f=l?.tooltip?.format,y=l?.tooltip?.hideAttributes,h=l?.tooltip?.hideAttributeKey,x=l?.tooltip?.hideMetric,C=(0,I.useMemo)(()=>{if(!(!m&&!d&&!p))return{components:{...m&&{Loading:m},...d&&{Error:d},...p&&{Tooltip:p}},tooltip:{layout:c,format:f,hideAttributes:y,hideAttributeKey:h,hideMetric:x}}},[m,d,p,c,f,y,h,x]),g=(0,I.useMemo)(()=>({timeRange:t??a?.timeRange,startTime:o??a?.startTime,endTime:i??a?.endTime,interval:r??a?.interval,attributes:u??a?.attributes,groupBy:s??a?.groupBy,operator:n??a?.operator,appearance:C??a?.appearance}),[t,o,i,r,u,s,n,C,a]);return(0,ve.jsx)(ce.Provider,{value:g,children:e})}var ct=["#7c3aed","#eab308","#2563eb","#dc2626","#16a34a","#f97316","#0891b2","#9333ea","#ca8a04","#4f46e5","#0d9488","#be185d"],pt="6h";function O(){let e=(0,I.useContext)(ce);return{timeRange:e?.timeRange||pt,startTime:e?.startTime,endTime:e?.endTime,interval:e?.interval,attributes:e?.attributes,groupBy:e?.groupBy,operator:e?.operator,appearance:{components:{Loading:e?.appearance?.components?.Loading??Z,Error:e?.appearance?.components?.Error??J,Empty:e?.appearance?.components?.Empty??Y,Tooltip:e?.appearance?.components?.Tooltip},colors:e?.appearance?.colors||ct,tooltip:e?.appearance?.tooltip}}}var pe=require("react/jsx-runtime");function xe({children:e,queryClient:t,apiBaseUrl:o,fetchImpl:i,timeRange:r,startTime:u,endTime:s,interval:n,attributes:l,groupBy:a,operator:m,appearance:d}){return(0,pe.jsx)(Te,{queryClient:t,apiBaseUrl:o,fetchImpl:i,children:(0,pe.jsx)(ee,{timeRange:r,startTime:u,endTime:s,interval:n,attributes:l,groupBy:a,operator:m,appearance:d,children:e})})}var Ce=require("@tanstack/react-query");function we(){let{apiBaseUrl:e,fetchImpl:t=fetch}=L(),o=(0,Ce.useQuery)({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:r}=await i.json();return r}else throw new Error("Unexpected status code")}});return{metrics:o.data,isLoading:o.isLoading,hasError:o.isError,refetch:o.refetch}}var Ue=require("@tanstack/react-query"),q=require("react");var Pe=X(require("ms"));function mt(e){let t=Math.floor(Date.now()/1e3);return[t-Math.floor((0,Pe.default)(e)/1e3),t]}function H(e,t,o){let i,r;if(typeof t=="number"&&typeof o=="number")i=t,r=o;else if(e){let[u,s]=mt(e);i=u,r=s}else throw new Error("Either timeRange or both startTime and endTime must be provided");return[i,r]}function te({queries:e,timeRange:t,startTime:o,endTime:i,interval:r}){let{apiBaseUrl:u,fetchImpl:s=fetch}=L(),n=(0,q.useMemo)(()=>e.map(g=>g.metrics.join(",")).join(","),[e]),l=(0,q.useMemo)(()=>e.map(g=>{let P=g.attributes;if(!P)return"";let R=Object.keys(P);return R.length===0?"":R.map(w=>w+":"+P[w]?.join(",")).join(",")}).join(","),[e]),a=(0,q.useMemo)(()=>e.map(g=>g.operator),[e]),m=(0,q.useMemo)(()=>e.map(g=>g.groupBy).join(", "),[e]),p=(0,Ue.useQuery)({queryKey:["unblind","timeseries",n,l,o,i,t,r,a,m],queryFn:async()=>{if(!n)throw new Error("Missing required parameters");if(n.length===0)throw new Error("No series provided");let[g,P]=H(t,o,i),R={queries:e,startTime:g,endTime:P,interval:r},w=await s(`${u}/tenants/timeseries`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(R)});if(!w.ok)throw new Error("Error fetching metric");let{series:U,times:S,metadata:M}=await w.json();if(!U)throw console.error("Series not found"),new Error("Series not found");return{series:U,times:S,metadata:M}},enabled:!!n&&(typeof o=="number"&&typeof i=="number"||!!t)}),{metadata:c,series:f,times:y}=(0,q.useMemo)(()=>p.data?{series:p.data.series,times:p.data.times,metadata:p.data.metadata}:{series:[],times:[],metadata:{}},[p]),h=p.isLoading,x=p.isFetching,C=p.isError;return{data:{series:f,times:y,metadata:c},isLoading:h,isFetching:x,hasError:C,refetch:p.refetch}}var Ae=require("@tanstack/react-query"),Re=require("react");function Me({timeRange:e,startTime:t,endTime:o}){let{apiBaseUrl:i,fetchImpl:r=fetch}=L(),s=(0,Ae.useQuery)({queryKey:["unblind","usage",e,t,o],queryFn:async()=>{let[m,d]=H(e,t,o),p=`${i}/tenants/usage`,c=await r(p,{headers:{"Content-Type":"application/json"},body:JSON.stringify({startTime:m,endTime:d})});if(!c.ok)throw new Error("Error fetching usage");let{data:f}=await c.json();if(!f)throw new Error("usage not found");return f},enabled:typeof t=="number"&&typeof o=="number"||!!e}),n=(0,Re.useMemo)(()=>s.data?s.data||[]:[],[s]),l=s.isLoading||s.isRefetching,a=s.isError;return{usage:n,isLoading:l,hasError:a,refetch:s.refetch}}var Se=require("@tanstack/react-query"),ke=require("react");function Ee({timeRange:e,filters:t,startTime:o,endTime:i}){let{apiBaseUrl:r,fetchImpl:u=fetch}=L(),s=typeof o=="number"&&typeof i=="number"||!!e,n=(0,Se.useInfiniteQuery)({queryKey:["unblind","logs",e,t.map(a=>a.name+":"+a.value).sort().join(",")],queryFn:async({pageParam:a})=>{let m=t.reduce((w,U)=>(w[U.name]||(w[U.name]=[]),w[U.name].push(U.value),w),{}),{body:d=[],severity:p=[],"service.name":c=[],"trace.id":f=[],"span.id":y=[],...h}=m,[x,C]=H(e,o,i),g=await u(`${r}/tenants/logs`,{method:"POST",body:JSON.stringify({filter:{attributes:h,body:d,severity:p,traceId:f,spanId:y,service:c},startTime:x,endTime:C,pagination:{page:a}}),headers:{"Content-Type":"application/json"}});if(!g.ok)throw new Error("Error fetching logs");let{data:P,next_page:R}=await g.json();if(!P)throw new Error("logs not found");return{data:P,next_page:R}},enabled:s,initialPageParam:void 0,getNextPageParam:a=>a.next_page});return{logs:(0,ke.useMemo)(()=>n.data?n.data.pages.flatMap(a=>a.data||[]):[],[n.data]),isLoading:n.isLoading,hasError:n.isError,hasNextPage:n.hasNextPage??!1,fetchNextPage:n.fetchNextPage,isFetchingNextPage:n.isFetchingNextPage,refetch:n.refetch}}var oe=require("react");function re(){let[e,t]=(0,oe.useState)(!1);return(0,oe.useEffect)(()=>{let o=()=>t(document.documentElement.classList.contains("dark"));return o(),window.addEventListener("storage",o),window.addEventListener("theme-change",o),()=>{window.removeEventListener("storage",o),window.removeEventListener("theme-change",o)}},[]),e}var tt=require("react");var ne=require("react"),Ze=X(require("uplot"));var $=X(require("uplot")),Ge=require("@grafana/data");var N=require("@grafana/data");var A={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,month:24192e5,year:31536e6},j={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 dt(e,t,o,i){if(t>7*A.day){let r=N.systemDateFormats.interval.year,u=Math.round(A.year/A.day)*A.day;return Math.round(t/A.day)*A.day===u?r=N.systemDateFormats.interval.year:t<=A.year?r=N.systemDateFormats.interval.month:r=N.systemDateFormats.interval.day,e.map(n=>(0,N.dateTimeFormat)(n,{format:r,timeZone:i}))}return e.map(r=>{let u=new Date(r),s=t<A.minute,n=t<A.second,l=u.toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:i});return(l==="00:00"||l==="24:00")&&!s&&!n?u.toLocaleDateString(void 0,{day:"2-digit",month:"short",timeZone:i}):u.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:s?"2-digit":void 0,fractionalSecondDigits:n?3:void 0,hour12:!1,timeZone:i})})}function Ie(e){let t=[{size:A.second/1e3,increments:j.second},{size:A.minute/1e3,increments:j.minute},{size:A.hour/1e3,increments:j.hour},{size:A.day/1e3,increments:j.day},{size:A.month/1e3,increments:j.month},{size:A.year/1e3,increments:j.year}];for(let r of t)for(let u of r.increments){let s=r.size*u;if(s>=e)return{increment:s*1e3,multiplier:u}}let o=t[t.length-1],i=o.increments[o.increments.length-1];return{increment:o.size*i*1e3,multiplier:i}}function Le(e,t,o){return[t,o]}function ft(e,t,o,i){let r=o-t,u=e.width,s=Math.floor(u/100),n=r/s,{increment:l,multiplier:a}=Ie(n),m=l/1e3,d=[];if(r<12*3600){let c=Math.ceil(t/m)*m;for(;c<=o;c+=m)d.push(c);return d}if(r<3*86400){if(l>=6*3600*1e3){let f=l/1e3/3600,y=new Date(t*1e3);if(i==="UTC"){let x=y.getUTCHours(),C=Math.floor(x/f)*f;y.setUTCHours(C,0,0,0)}else{let x=y.getHours(),C=Math.floor(x/f)*f;y.setHours(C,0,0,0)}let h=y.getTime()/1e3;for(h<t&&(h+=m);h<=o;)d.push(h),h+=m;return d}let c=Math.ceil(t/m)*m;for(;c<=o;c+=m)d.push(c);return d}if(l>=A.day){let c=new Date(t*1e3);i==="UTC"?(c.setUTCHours(0,0,0,0),c.getTime()/1e3<t&&c.setUTCDate(c.getUTCDate()+a)):(c.setHours(0,0,0,0),c.getTime()/1e3<t&&c.setDate(c.getDate()+a));let f=c.getTime()/1e3;for(;f<=o;)d.push(f),i==="UTC"?c.setUTCDate(c.getUTCDate()+a):c.setDate(c.getDate()+a),f=c.getTime()/1e3;return d}let p=Math.ceil(t/m)*m;for(;p<=o;p+=m)d.push(p);return d}function Ne(e,t,o){return t.length===0?[]:t.map((i,r)=>r===0||r===t.length-1?(0,N.dateTimeFormatTimeAgo)(i*1e3,{timeZone:o}):"")}function bt(e,t,o){let i=e.scales.x,r=((i?.max??0)-(i?.min??0))*1e3,u=Math.floor(e.width/100),s=r/1e3/u,{increment:n}=Ie(s),l=t.map(a=>a*1e3);return dt(l,n,r,o)}function De(e,t,o=!1){let i=o?(s,n,l,a)=>Le(s,l,a):(s,n,l,a)=>ft(s,l,a,t),r=o?(s,n)=>Ne(s,n,t):(s,n)=>bt(s,n,t),u=o?(s,n,l,a,m)=>{let p=document.createElement("canvas").getContext("2d");if(!p)return 0;p.font=F(e);let c=Ne(s,Le(s,l,a),t),f=Math.max(p.measureText(c[0]||"").width,p.measureText(c[1]||"").width);return Math.ceil(f/2)+15}:void 0;return{font:F(e),labelFont:F(e),grid:{show:!1,width:.5},ticks:{width:.5},splits:i,values:r,size:20}}var _=require("@floating-ui/dom"),qe=X(require("uplot"));var Ve=require("react-dom/client"),me=class{overlay=null;reactRoot=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=(0,Ve.createRoot)(this.overlay))}getOverlay(){return this.overlay}render(t){this.reactRoot&&this.reactRoot.render(t)}show(){this.overlay&&(this.overlay.style.display="block")}hide(){this.overlay&&(this.overlay.style.display="none"),this.render(null)}destroy(){this.reactRoot&&(this.reactRoot.unmount(),this.reactRoot=null),this.overlay&&(this.overlay.remove(),this.overlay=null)}},G=new me;var de=require("@grafana/data"),fe=require("react");var T=require("react/jsx-runtime");function Ke(e){return e.metric.displayName||e.metric.name||(typeof e.serie.label=="string"?e.serie.label:e.serie.label?.textContent||"Unknown")}function ze(e){let t=e.attributes||{};if(t["service.name"])return String(t["service.name"]);let i=Object.keys(t)[0];return i?String(t[i]):"z-fallback"}function Oe(e){return[...e].sort((t,o)=>(Number(o.value)||0)-(Number(t.value)||0))}function Fe(e){return[...e].sort((t,o)=>ze(t).localeCompare(ze(o)))}function gt(e){let t={};return e.forEach(o=>{let i=Ke(o);t[i]||(t[i]=[]),t[i].push(o)}),t}function ht(e,t,o,i="original"){if(o==="flat")return[{label:"",items:t?Oe(e):Fe(e)}];let r=gt(e);return Object.keys(r).sort((s,n)=>s.localeCompare(n)).map(s=>{let n=r[s];if(!n)return{label:ie(s,i),items:[]};let l=t?Oe(n):Fe(n);return{label:ie(s,i),items:l}})}function ie(e,t,o){switch(t){case"suffix":{let i=e.split(/[._-]/),r=i[i.length-1]||"";return o?r:r.charAt(0).toUpperCase()+r.slice(1).toLowerCase()}case"title":return e.split(/[._-]/).map(i=>o?i:i.charAt(0).toUpperCase()+i.slice(1).toLowerCase()).join(" ");default:return e}}function yt(e,t){if(t&&t!=="auto")return t;let o=e.some(r=>r.attributes&&Object.keys(r.attributes).length>0),i=new Set(e.map(Ke));return o&&i.size>=1?"group-by-metric":"flat"}function Be({hideAttributeKey:e,attribute:t,format:o,isLastAttribute:i}){let[r,u]=t;return(0,T.jsxs)("div",{className:"ub-tooltip-item-attribute-container",children:[(0,T.jsxs)("div",{className:e?"ub-tooltip-item-hidden-attribute-key":"ub-tooltip-item-attribute-with-key",children:[!e&&(0,T.jsxs)("span",{className:"ub-tooltip-item-attribute-key",children:[ie(r,o),":"]}),(0,T.jsx)("span",{className:"ub-tooltip-item-attribute-value",children:u})]}),!i&&e&&(0,T.jsx)("span",{"data-text":", ",className:"ub-tooltip-item-attribute-divider"})]})}function Tt({item:e,hideMetric:t,hideAttributeKey:o,hideAttributes:i,format:r}){let s=Object.entries(e.attributes||{}),n=s.length>0&&!i;return i&&t&&console.warn("Invalid configuration. Attributes and metrics are hidden."),(0,T.jsxs)("div",{className:"ub-tooltip-item-row",children:[(0,T.jsxs)("div",{className:"ub-tooltip-item-left"+(t?" ub-tooltip-item-hidden-metric":""),children:[(0,T.jsxs)("div",{className:"ub-tooltip-item-heading",children:[(0,T.jsx)("span",{className:"ub-tooltip-item-dot",style:{backgroundColor:e.color}}),t?(0,T.jsx)("div",{className:"ub-tooltip-item-attributes",children:s.map((l,a)=>(0,T.jsx)(Be,{hideAttributeKey:o,attribute:l,format:r,isLastAttribute:a>=s.length-1},"attr_"+l[0]))}):(0,T.jsx)("span",{className:n?"ub-tooltip-item-metric-name-label":"ub-tooltip-item-metric-name",children:ie(e.metric.name,r)})]}),n&&!t&&(0,T.jsx)("div",{className:"ub-tooltip-item-attributes",children:s.map((l,a)=>(0,T.jsx)(Be,{hideAttributeKey:o,attribute:l,format:r,isLastAttribute:a>=s.length-1},"attr_"+l[0]))})]}),(0,T.jsx)("div",{className:"ub-tooltip-item-value",children:e.formattedValue??(0,T.jsx)("span",{className:"ub-tooltip-item-value--empty",children:"\u2014"})})]})}function vt({className:e="ub-tooltip-divider",...t}){return(0,T.jsx)("hr",{role:"presentation",...t,className:e})}function xt({group:e,groupIdx:t,hideAttributeKey:o,hideMetric:i,hideAttributes:r,format:u,hideGroupLabel:s}){return(0,T.jsxs)("div",{className:"ub-tooltip-group",children:[!s&&(0,T.jsx)("div",{className:`ub-tooltip-group-header${t>0?" ub-tooltip-group-header--separator":""}`,children:e.label}),(0,T.jsx)("div",{className:"ub-tooltip-items",children:e.items.map((n,l)=>(0,T.jsx)(Tt,{item:n,format:u,hideAttributeKey:o,hideMetric:i,hideAttributes:r},`item-${t}-${l}`))})]},e.label)}function He({timestamp:e,items:t,timeZone:o,spansMultipleDays:i,sortByValues:r,format:u="original",layout:s="flat",hideAttributeKey:n,hideMetric:l,hideAttributes:a}){let m=i?(0,de.dateTimeFormat)(e*1e3,{format:"MMM DD, HH:mm",timeZone:o}):(0,de.dateTimeFormat)(e*1e3,{format:"HH:mm",timeZone:o}),d=(0,fe.useMemo)(()=>yt(t,s),[t,s]),p=d==="flat",f=typeof l=="boolean"?l:d==="group-by-metric",y=typeof n=="boolean"?n:!1,h=typeof a=="boolean"?a:!1,x=(0,fe.useMemo)(()=>ht(t,r,d,u),[t,r,d,u]);return(0,T.jsxs)("div",{className:"ub-tooltip",children:[(0,T.jsx)("div",{className:"ub-tooltip-datetime",children:m}),(0,T.jsx)(vt,{}),x.length>0?(0,T.jsx)("div",{className:"ub-tooltip-content",children:x.map((C,g)=>(0,T.jsx)(xt,{group:C,groupIdx:g,hideAttributeKey:y,hideMetric:f,hideAttributes:h,hideGroupLabel:p,format:u},C.label))}):(0,T.jsx)("div",{className:"ub-tooltip-no-data",children:"No data available"})]})}var be=require("react/jsx-runtime"),Ct=4,wt=8;function Pt(e,t){if(!e||e.length===0)return!1;let o=e[0],i=e[e.length-1];if(o==null||i==null)return!1;let r=new Date(o*1e3),u=new Date(i*1e3),s=n=>t==="UTC"?`${n.getUTCFullYear()}-${n.getUTCMonth()}-${n.getUTCDate()}`:n.toLocaleDateString(void 0,{timeZone:t});return s(r)!==s(u)}function Ut(e,t){let o=!1;for(let r=1;r<e.series.length;r++)if(e.data[r]?.[t]!=null){o=!0;break}if(o)return t;let i=e.data[0].length;for(let r=1;t+r<i||t-r>=0;r++){let u=t-r,s=t+r;if(u>=0){for(let n=1;n<e.series.length;n++)if(e.data[n]?.[u]!=null)return u}if(s<i){for(let n=1;n<e.series.length;n++)if(e.data[n]?.[s]!=null)return s}}return t}function At(e,t,o,i,r,u){let s=!1,n=[];for(let l=1;l<e.series.length;l++){let a=e.data[l]?.[t]??null;if(i&&a!=null&&l>1){let h=e.data[l-1]?.[t]??0;a=a-h}let m=e.series[l],d=u?.[l-1];if(!d){console.warn("Original serie not found");continue}let p=r[d.metric];if(!p){console.warn("Metric metadata not found");continue}let c=m?.stroke,f=typeof c=="function"?c(qe.default,l):c??"#ffffff00",y=a==null?void 0:o?o(a):String(a);d?.attributes&&Object.keys(d?.attributes).length>0&&(s=!0),n.push({metric:p,color:f,value:a===null?void 0:a,formattedValue:y,attributes:d?.attributes,serie:m})}return{items:n,hasAttributes:s}}async function Rt(e,t){let{x:o,y:i}=await(0,_.computePosition)({getBoundingClientRect:()=>({x:t.left,y:t.top,width:0,height:0,top:t.top,left:t.left,right:t.left,bottom:t.top})},e,{placement:"top-start",strategy:"fixed",middleware:[(0,_.offset)({mainAxis:Ct,crossAxis:wt}),(0,_.flip)()]});e.style.left=`${o}px`,e.style.top=`${i}px`}function je(e,t,o,i,r,u,s,n,l,a,m,d){let p,c,f,y=!1;function h(){let g=p.getBoundingClientRect();c=g.left,f=g.top}function x(){G.hide()}function C(){G.show()}return{hooks:{init:g=>{G.initialize(),p=g.over,window.addEventListener("scroll",h,!0),window.addEventListener("resize",h);let P=new MutationObserver(()=>{p&&!document.body.contains(p)&&(y=!1,x(),P.disconnect())});p.onmouseenter=()=>{y=!0,C()},p.onmouseleave=()=>{y=!1,x()},h()},setSize:()=>{h()},setCursor:g=>{let{left:P,top:R,idx:w}=g.cursor;if(!y||w==null){x();return}let S=g.data[0],M=Pt(S,r),v=Ut(g,w),b=g.data[0][v];if(b===void 0)return;let{items:B}=At(g,v,e,t,o,s),V={left:(P||0)+c,top:(R||0)+f};C();let K=u,ae=K?(0,be.jsx)(K,{timestamp:b,items:B,timeZone:r}):(0,be.jsx)(He,{timestamp:b,items:B,timeZone:r,spansMultipleDays:M,stacked:t,sortByValues:i,layout:n,format:l,hideAttributeKey:a,hideAttributes:m,hideMetric:d});G.render(ae);let Q=G.getOverlay();Q&&Rt(Q,V)},destroy(){window.removeEventListener("scroll",h,!0),window.removeEventListener("resize",h),p&&(p.onmouseenter=null,p.onmouseleave=null)}}}}var F=e=>`${getComputedStyle(document.documentElement).getPropertyValue("--ub-chart-font-size").trim()} ${e}`,_e=(e,t)=>{let o=e;return t&&t.unit&&t.unit.code&&t.unit.code!=="1"&&(!o&&t.unit?o=t.unit.code:o&&t.unit.code!==o&&(o=void 0)),o};function Mt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Array.isArray(e.fill)&&Array.isArray(e.border)}function St(e){return Array.isArray(e)}var Qe=(e,t,o,i,r)=>St(o)?r&&(i==="step"||i==="line"||i==="spline")?o[t]+"66":o[t]:Mt(o)?r?o.fill[t]:o.border[t]:o(e,t,i,r),kt=e=>{let t=$.default.paths.bars({size:[.6,100],radius:0,gap:0}),o=$.default.paths.linear({alignGaps:0}),i=$.default.paths.spline({alignGaps:1}),r=$.default.paths.stepped({alignGaps:1});switch(e){case"line":return o;case"bar":return t;case"area":return o;case"step":return r;case"spline":return i;default:return o}},Et=(e,t,o,i)=>Qe(e,t,o,i,!0),Lt=(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}},Nt=(e,t,o)=>{if(t<0||o<0)return[t,o];let i=e.posToVal(t,"x"),r=e.data[0];if(!r||r.length===0)return[t,o];let u=0,s=0,n=r.length-1;for(;n-s>1;){let c=Math.floor((s+n)/2),f=r[c];f!=null&&f<i?s=c:n=c}let l=r[s],a=r[n];l!=null&&a!=null?u=Math.abs(l-i)<Math.abs(a-i)?s:n:l!=null?u=s:a!=null&&(u=n);let m=u;for(let c=u;c>=0;c--){let f=!1;for(let y=1;y<e.data.length;y++){let h=e.data[y];if(h&&h[c]!=null){f=!0;break}}if(f){m=c;break}}let d=r[m];return d==null?[t,o]:[e.valToPos(d,"x"),o]},$e=(e,t,o,i,r,u,s,n,l,a,m,d,p,c,f,y,h,x,C,g)=>{let P=e?.clientWidth??1050,R=e?.clientHeight??250,w=typeof o=="string"?String(o).toLowerCase().replaceAll("by","bytes"):o,U=(0,Ge.getValueFormat)(w==="1"?null:w),S=Lt(r,a),M={width:P,height:R,scales:{y:{range:We(o)}},plugins:[je(v=>{let b=U(v,Number.isInteger(v)?0:2);return b.text+(b.suffix?.trim()||"")},u,t,d,p,c,i,h,y,x,C,g)],padding:f?[10,15,10,15]:[8,15,8,15],cursor:{y:!1,sync:{key:"_"},drag:{setScale:!0,x:!0,y:!1},move:Nt},series:[{},...i.map((v,b)=>({label:v.metric,stroke:Qe(v,b,n,r),width:S,points:{show:!1},spanGaps:!0,paths:kt(r),fill:a||u?Et(v,b,n,r):void 0}))],axes:[De(m,p,f),Xe(U,m,o)],legend:{show:!1}};if(s){let v=M.axes?.[0],b=M.axes?.[1];v&&(v.stroke=l,v.grid&&(v.grid.stroke="#2c3235")),b&&(b.stroke=l,b.grid&&(b.grid.stroke="#2c3235"))}else{let v=M.axes?.[0],b=M.axes?.[1];v&&(v.stroke=l),b&&(b.stroke=l)}return M};var Ye=e=>{let t=e/4,o=Math.pow(10,Math.floor(Math.log10(t))),i=t/o,r;return i>5?r=10*o:i>2?r=5*o:i>1?r=2*o:r=o,Math.ceil(e/r)*r},We=e=>(t,o,i)=>{let u=i*2,s=o<0?o*2:o*0;if(e==="percent"||e==="percentunit")return i>100?o<0?[s,u]:[0,u]:o<0?[s,100]:[0,100];if(i<=.9999)return o<=0?[s,1]:[0,1];let n=Ye(u),l=Ye(Math.abs(s));return o<0?[-l,n]:[0,n]},It=(e,t,o,i)=>{let r=e.axes[o];if(i>1)return r?._size;let u=(r?.ticks?.size||0)+(r?.gap||0),s=(t??[]).reduce((n,l)=>l.length>n.length?l:n,"");return s!=""&&(e.ctx.font=r?.font?.[0]??e.ctx.font,u+=e.ctx.measureText(s).width/devicePixelRatio),Math.ceil(u)};function Xe(e,t,o){return{gap:0,font:F(t),labelFont:F(t),grid:{show:!0,width:.5},ticks:{width:.5},values:(i,r)=>r.map(u=>{let s=e(u);return s.text+(s.suffix?.trim()||"")}),size:It}}function Je(e,t){let o=[],i=e[0],r=i.length,u=Array(r).fill(0),s=[i];return e.forEach((n,l)=>{l!==0&&(t?s.push(n):s.push(n.map((a,m)=>u[m]=u[m]+(a||0))))}),e.forEach((n,l)=>{l===0||t||o.push({series:[e.findIndex((a,m)=>m>l),l]})}),{data:s,bands:o.filter(n=>n.series[1]>-1)}}var et=require("react/jsx-runtime");function se(e){let{times:t,series:o,metadata:i,type:r,className:u,timeZone:s,options:n,tooltip:l,colors:a,tooltipAppearance:m,sortByValues:d=!1,unit:p,fill:c=!1}=e,{layout:f,format:y,hideAttributeKey:h,hideAttributes:x,hideMetric:C}=l||{},g=(0,ne.useRef)(null),P=re(),R=O(),w=a||R.appearance.colors;return(0,ne.useEffect)(()=>{if(!o||o.length===0){console.warn("No series provided");return}let U=[t],S=p;o.forEach(V=>{let K=i[V.metric];p||(S=_e(S,K)),U.push(V.values)});let M=r==="bar"||r==="area",v=Je(U,!M),b=g.current,B=null;if(b){let V=window.getComputedStyle(b),K=V.fontFamily,ae=V.getPropertyValue("--ub-chart-font-color").trim(),Q=$e(b,i,S,o,r,M,P,w,ae,c,K,d,s,m,!1,y,f,h,x,C);Q.bands=v.bands,B=new Ze.default({...Q,...n},v.data,b);let ge=new ResizeObserver(()=>{B?.setSize({width:b.clientWidth,height:b.clientHeight})});return ge.observe(b),()=>{B?.destroy(),ge.disconnect()}}},[o,t,r,P,i,s,m,w,c,d,p,y,f,h,x,C]),(0,et.jsx)("div",{ref:g,className:"ub-chart-container"+(u?` ${u}`:"")})}var D=require("react/jsx-runtime");function ot({metrics:e,operator:t,attributes:o,groupBy:i,interval:r,type:u="line",className:s,appearance:n,unit:l}){let a=O(),m=r??a.interval,d=o??a.attributes,p=i??a.groupBy,c=t??a.operator,f=n?.colors??a.appearance.colors,y=typeof n?.sortByValues=="boolean"?n?.sortByValues:a.appearance.sortByValues,h=typeof n?.fill=="boolean"?n.fill:a.appearance.fill,x=n?.components?.Tooltip??a.appearance.components.Tooltip,C=(0,tt.useMemo)(()=>({layout:n?.tooltip?.layout??a.appearance.tooltip?.layout,format:n?.tooltip?.format??a.appearance.tooltip?.format,hideAttributes:n?.tooltip?.hideAttributes??a.appearance.tooltip?.hideAttributes,hideAttributeKey:n?.tooltip?.hideAttributeKey??a.appearance.tooltip?.hideAttributeKey,hideMetric:n?.tooltip?.hideMetric??a.appearance.tooltip?.hideMetric}),[n?.tooltip?.layout,n?.tooltip?.format,n?.tooltip?.hideAttributes,n?.tooltip?.hideAttributeKey,n?.tooltip?.hideMetric,a.appearance.tooltip?.layout,a.appearance.tooltip?.format,a.appearance.tooltip?.hideAttributes,a.appearance.tooltip?.hideAttributeKey,a.appearance.tooltip?.hideMetric]),{isLoading:g,data:P,hasError:R}=te({queries:(Array.isArray(e)?e:[e]).map(b=>({metrics:[b],operator:c,attributes:d,groupBy:p})),timeRange:a.timeRange,startTime:a.startTime,endTime:a.endTime,interval:m}),{series:w,times:U,metadata:S}=P,M=w.every(b=>b.isEmpty),v=`ub-chart-container${s?` ${s}`:""}`;if(g){let b=n?.components?.Loading??a.appearance.components.Loading;return(0,D.jsx)("div",{className:v,children:(0,D.jsx)(b,{})})}if(M){let b=n?.components?.Empty??a.appearance.components.Empty;return(0,D.jsx)("div",{className:v,children:(0,D.jsx)(b,{})})}if(R){let b=n?.components?.Error??a.appearance.components.Error;return(0,D.jsx)("div",{className:v,children:(0,D.jsx)(b,{})})}return(0,D.jsx)(se,{times:U,series:w,metadata:S,type:u,className:v,tooltip:C,colors:f,sortByValues:y,unit:l,fill:h,tooltipAppearance:x})}0&&(module.exports={Chart,Empty,Error,Loading,TimeseriesChart,UnblindProvider,UnblindScope,useLogs,useMetrics,useRefresh,useScope,useTheme,useTimeseries,useUsage});
1
+ "use strict";var xt=Object.create;var le=Object.defineProperty;var St=Object.getOwnPropertyDescriptor;var Pt=Object.getOwnPropertyNames;var Lt=Object.getPrototypeOf,Rt=Object.prototype.hasOwnProperty;var kt=(e,t)=>{for(var r in t)le(e,r,{get:t[r],enumerable:!0})},Be=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Pt(t))!Rt.call(e,o)&&o!==r&&le(e,o,{get:()=>t[o],enumerable:!(i=St(t,o))||i.enumerable});return e};var Ce=(e,t,r)=>(r=e!=null?xt(Lt(e)):{},Be(t||!e||!e.__esModule?le(r,"default",{value:e,enumerable:!0}):r,e)),At=e=>Be(le({},"__esModule",{value:!0}),e);var mr={};kt(mr,{Chart:()=>be,Empty:()=>ce,Error:()=>ue,Loading:()=>pe,Scope:()=>oe,Timeseries:()=>Ct,UnblindProvider:()=>Qe,useLogs:()=>rt,useMetrics:()=>We,useRefresh:()=>Pe,useScope:()=>O,useTimeseries:()=>me,useUsage:()=>Ze});module.exports=At(mr);var $=require("@tanstack/react-query"),I=require("react"),xe=require("react/jsx-runtime"),_e=(0,I.createContext)(void 0);function Se({children:e,queryClient:t,queryClientConfig:r,apiBaseUrl:i="/api/unblind",fetchImpl:o}){let n=(0,I.useMemo)(()=>{if(t)return t;let a={refetchOnWindowFocus:!1,refetchOnReconnect:!1,refetchOnMount:!1},l={defaultOptions:{queries:a}};return r?new $.QueryClient({...r,defaultOptions:{...r.defaultOptions,queries:{...a,...r.defaultOptions?.queries}}}):new $.QueryClient(l)},[t,r]),s=(0,I.useMemo)(()=>({apiBaseUrl:i,fetchImpl:o}),[i,o]);return(0,xe.jsx)($.QueryClientProvider,{client:n,children:(0,xe.jsx)(_e.Provider,{value:s,children:e})})}function N(){let e=(0,I.useContext)(_e);if(!e)throw new Error("useUnblindConfig must be used within an UnblindClientProvider. Please wrap your app or component tree with <UnblindClientProvider>.");return e}function Pe(){let e=(0,$.useQueryClient)();return(0,I.useCallback)(async()=>{await e.refetchQueries({queryKey:["unblind","timeseries"]})},[e])}var V=require("react");var D=require("react/jsx-runtime");function ce(){return(0,D.jsx)("div",{className:"ub-default",children:(0,D.jsxs)("div",{className:"ub-empty-content",children:[(0,D.jsx)("div",{className:"ub-empty-icon-wrapper",children:(0,D.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"ub-icon",children:(0,D.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})})}),(0,D.jsx)("p",{className:"ub-empty-text","data-text":"No data available for this time range"})]})})}function ue(){return(0,D.jsx)("div",{className:"ub-default-error"})}function pe(){return(0,D.jsx)("div",{className:"ub-default-loading","data-text":"Loading"})}var He=require("react/jsx-runtime"),Le=(0,V.createContext)(void 0);function oe({children:e,timeRange:t,startTime:r,endTime:i,interval:o,attributes:n,groupBy:s,operator:a,appearance:l,tooltip:u,colors:g,fill:d,hideAxis:h,hideCursor:p,relativeTimeAxis:m,invertSort:b,disableSuggestedLabel:v}){let f=(0,V.useContext)(Le),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 u?.hide=="boolean"?u?.hide:f?.tooltip?.hide,k=typeof u?.visibilityLimit=="number"?u?.visibilityLimit:f?.tooltip?.visibilityLimit,S=(0,V.useMemo)(()=>({components:{...x&&{Loading:x},...C&&{Error:C},...y&&{Tooltip:y},...T&&{Empty:T}}}),[x,C,y,T]),M=(0,V.useMemo)(()=>({hide:R,visibilityLimit:k}),[R,k]),A=(0,V.useMemo)(()=>({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 p=="boolean"?p:f?.hideCursor,invertSort:typeof b=="boolean"?b:f?.invertSort,disableSuggestedLabel:typeof v=="boolean"?v:f?.disableSuggestedLabel,appearance:S,tooltip:M}),[t,r,i,o,n,s,a,g,d,m,h,p,S,M,f,b,v]);return(0,He.jsx)(Le.Provider,{value:A,children:e})}var wt="6h";function O(){let e=(0,V.useContext)(Le);return(0,V.useMemo)(()=>({...e,timeRange:e?.timeRange||wt,appearance:{components:{Loading:e?.appearance?.components?.Loading??pe,Error:e?.appearance?.components?.Error??ue,Empty:e?.appearance?.components?.Empty??ce,Tooltip:e?.appearance?.components?.Tooltip}}}),[e])}var Re=require("react/jsx-runtime");function Qe({children:e,queryClient:t,apiBaseUrl:r,fetchImpl:i,timeRange:o,startTime:n,endTime:s,interval:a,attributes:l,groupBy:u,operator:g,appearance:d,tooltip:h,colors:p,fill:m,hideAxis:b,hideCursor:v,relativeTimeAxis:f,invertSort:x,disableSuggestedLabel:C}){return(0,Re.jsx)(Se,{queryClient:t,apiBaseUrl:r,fetchImpl:i,children:(0,Re.jsx)(oe,{timeRange:o,startTime:n,endTime:s,interval:a,attributes:l,groupBy:u,operator:g,appearance:d,tooltip:h,colors:p,fill:m,hideAxis:b,hideCursor:v,relativeTimeAxis:f,invertSort:x,disableSuggestedLabel:C,children:e})})}var $e=require("@tanstack/react-query");function We(){let{apiBaseUrl:e,fetchImpl:t=fetch}=N(),r=(0,$e.useQuery)({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}}var Xe=require("@tanstack/react-query"),X=require("react");var je=Ce(require("ms"));function Ge({scope:e,props:t}){return t.timeRange||t.startTime&&t.endTime?t:e}function Mt(e){let t=Math.floor(Date.now()/1e3);return[t-Math.floor((0,je.default)(e)/1e3),t]}function G(e,t,r){let i,o;if(typeof t=="number"&&typeof r=="number")i=t,o=r;else if(e){let[n,s]=Mt(e);i=n,o=s}else throw new Error("Either timeRange or both startTime and endTime must be provided");return[i,o]}var Ke=require("react");function K(e){let t=O(),{timeRange:r,startTime:i,endTime:o}=Ge({props:e,scope:t});return(0,Ke.useMemo)(()=>({timeRange:r,startTime:i,endTime:o}),[r,i,o])}function me(e){let{apiBaseUrl:t,fetchImpl:r=fetch}=N(),{startTime:i,endTime:o,timeRange:n}=K(e),{queries:s,interval:a}=e,l=(0,X.useMemo)(()=>s.map(y=>y.metrics.join(",")).join(","),[s]),u=(0,X.useMemo)(()=>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=(0,X.useMemo)(()=>s.map(y=>y.operator),[s]),d=(0,X.useMemo)(()=>s.map(y=>y.groupBy).join(", "),[s]),p=(0,Xe.useQuery)({queryKey:["unblind","timeseries",l,u,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]=G(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:M,metadata:A}=await k.json();if(!S)throw console.error("Series not found"),new Error("Series not found");return{series:S,times:M,metadata:A}},enabled:!!l&&(typeof i=="number"&&typeof o=="number"||!!n)}),{metadata:m,series:b,times:v}=(0,X.useMemo)(()=>p.data?{series:p.data.series,times:p.data.times,metadata:p.data.metadata}:{series:[],times:[],metadata:{}},[p]),f=p.isLoading,x=p.isFetching,C=p.isError;return{data:{series:b,times:v,metadata:m},isLoading:f,isFetching:x,hasError:C,refetch:p.refetch}}var Ye=require("@tanstack/react-query"),Je=require("react");function Ze(e){let{apiBaseUrl:t,fetchImpl:r=fetch}=N(),{startTime:i,endTime:o,timeRange:n}=K(e),a=(0,Ye.useQuery)({queryKey:["unblind","usage",n,i,o],queryFn:async()=>{let[d,h]=G(n,i,o),p=`${t}/tenants/usage`,m=await r(p,{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=(0,Je.useMemo)(()=>a.data?a.data||[]:[],[a]),u=a.isLoading||a.isRefetching,g=a.isError;return{usage:l,isLoading:u,hasError:g,refetch:a.refetch}}var et=require("@tanstack/react-query"),tt=require("react");function rt(e){let{apiBaseUrl:t,fetchImpl:r=fetch}=N(),{timeRange:i,startTime:o,endTime:n}=K(e),{attributes:s,body:a,severity:l,traceId:u,spanId:g,logId:d}=e,h=(0,et.useInfiniteQuery)({queryKey:["unblind","logs",i,o,n,a,l,d,JSON.stringify(s)],queryFn:async({pageParam:m})=>{let[b,v]=G(i,o,n),f=await r(`${t}/tenants/logs`,{method:"POST",body:JSON.stringify({attributes:s,body:a,severity:l,traceId:u,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:(0,tt.useMemo)(()=>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 ie=e=>"value"in e,de=e=>"from"in e&&"to"in e;function ke(e){return typeof e=="object"&&e!==null&&typeof e.name=="string"&&typeof e.label=="string"}var ee=require("react");var ge=require("react"),Tt=Ce(require("uplot"));var se=Ce(require("uplot")),pt=require("@unblind/units");var _=require("@unblind/units");var w={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,month:24192e5,year:31536e6},Y={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 Ut(e,t,r,i){if(t>7*w.day){let o=_.systemDateFormats.interval.year,n=Math.round(w.year/w.day)*w.day;if(Math.round(t/w.day)*w.day===n)o=_.systemDateFormats.interval.year;else{if(t<=w.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=_.systemDateFormats.interval.day}return e.map(a=>(0,_.dateTimeFormat)(a,{format:o,timeZone:i}))}return e.map(o=>{let n=new Date(o),s=t<w.minute,a=t<w.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 Et(e){let t=[{size:w.second/1e3,increments:Y.second},{size:w.minute/1e3,increments:Y.minute},{size:w.hour/1e3,increments:Y.hour},{size:w.day/1e3,increments:Y.day},{size:w.month/1e3,increments:Y.month},{size:w.year/1e3,increments:Y.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 Nt(e,t,r){return[t,r]}function Dt(e,t,r){return t.length===0?[]:t.map((i,o)=>o===0||o===t.length-1?(0,_.dateTimeFormatTimeAgo)(i*1e3,{timeZone:r}):"")}function Vt(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}=Et(s),l=t.map(u=>u*1e3);return Ut(l,a,o,r)}function ot(e,t,r=!1,i=!1){let o=r?(s,a,l,u)=>Nt(s,l,u):void 0,n=r?(s,a)=>Dt(s,a,t):(s,a)=>Vt(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,u,g)=>g<400?100:g<800?150:250}}var Z=require("@floating-ui/dom"),it=require("react-dom/client"),Ot=4,It=8,Ae=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=(0,it.createRoot)(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(0,Z.computePosition)({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:[(0,Z.offset)({mainAxis:Ot,crossAxis:It}),(0,Z.flip)()]});r.style.left=`${i}px`,r.style.top=`${o}px`}}},U=new Ae;var Me=require("@unblind/units"),H=require("react"),c=require("react/jsx-runtime"),zt=6,nt=(0,H.createContext)(null);function fe(){let e=(0,H.useContext)(nt);if(!e)throw new Error("useTooltipSerie must be used within a SerieProvider");return e}function qt({serie:e,children:t}){return(0,c.jsx)(nt.Provider,{value:e,children:t})}var st=(0,H.createContext)(null);function ne(){let e=(0,H.useContext)(st);if(!e)throw new Error("useTooltipSerie must be used within a SerieProvider");return e}function we({formattedTime:e,tooltip:t,children:r}){return(0,c.jsx)(st.Provider,{value:{formattedTime:e,disableSuggestedLabel:t.disableSuggestedLabel,invertSort:t.invertSort,visibilityLimit:t.visibilityLimit||zt},children:r})}function Ue({className:e="ub-tooltip-divider",...t}){return(0,c.jsx)("hr",{role:"presentation",...t,className:e})}function Ft({unitCategory:e,tooltipSerieList:t}){let{visibilityLimit:r,formattedTime:i}=ne(),o=t.slice(0,r),n=t.slice(r);return(0,c.jsxs)("div",{className:"ub-tooltip ub-tooltip-multiple-metrics",children:[(0,c.jsxs)(Ve,{children:[(0,c.jsx)(Oe,{children:i}),(0,c.jsx)("div",{className:"ub-tooltip-header-right",children:(0,c.jsx)(Ht,{children:e})})]}),(0,c.jsx)(Ue,{}),(0,c.jsxs)("div",{children:[(0,c.jsx)(De,{children:o.map(s=>(0,c.jsxs)(Ne,{serie:s,children:[(0,c.jsx)(ze,{}),(0,c.jsx)(at,{}),(0,c.jsx)(Ie,{})]},s.metric.name))}),(0,c.jsx)(Ee,{series:n})]})]})}function Bt({tooltipSerieList:e}){let{visibilityLimit:t,disableSuggestedLabel:r,formattedTime:i}=ne(),o=e[0],n=e.slice(0,t),s=e.slice(t);return(0,c.jsxs)("div",{className:"ub-tooltip ub-tooltip-multiple-attributes",children:[(0,c.jsxs)(Ve,{children:[(0,c.jsx)(Oe,{children:i}),(0,c.jsx)("div",{className:"ub-tooltip-header-right",children:(0,c.jsx)("span",{className:"ub-tooltip-serie-metric",children:o?.metric.label||!r&&o?.metric.suggestedLabel||o?.metric.name})})]}),(0,c.jsx)(Ue,{}),(0,c.jsxs)("div",{children:[(0,c.jsx)(De,{children:n.map((a,l)=>(0,c.jsxs)(Ne,{serie:a,children:[(0,c.jsx)(ze,{}),(0,c.jsx)(lt,{}),(0,c.jsx)(Ie,{})]},"serie_"+l))}),(0,c.jsx)(Ee,{series:s})]})]})}function _t({tooltipSerieList:e,unitCategory:t}){let{visibilityLimit:r,formattedTime:i}=ne(),o=e.slice(0,r),n=e.slice(r);return(0,c.jsxs)("div",{className:"ub-tooltip ub-tooltip-multiple-metrics-attributes",children:[(0,c.jsxs)(Ve,{children:[(0,c.jsx)(Oe,{children:i}),(0,c.jsx)("div",{className:"ub-tooltip-header-right",children:(0,c.jsx)("span",{className:"ub-tooltip-unit-category",children:t})})]}),(0,c.jsx)(Ue,{}),(0,c.jsxs)("div",{children:[(0,c.jsx)(De,{children:o.map((s,a)=>(0,c.jsxs)(Ne,{serie:s,children:[(0,c.jsx)(ze,{}),(0,c.jsx)(at,{}),(0,c.jsx)(lt,{}),(0,c.jsx)(Ie,{})]},"serie"+a))}),(0,c.jsx)(Ee,{series:n})]})]})}function Ht(e){return(0,c.jsx)("span",{className:"ub-tooltip-unit-category",children:e.children})}function Ee({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}=ne();return e.length>0?i?(0,c.jsx)("span",{className:"ub-tooltip-summary",children:(0,c.jsxs)("span",{children:["+",e.length," more with no data"]})}):r?(0,c.jsx)("span",{className:"ub-tooltip-summary",children:(0,c.jsxs)("span",{children:["+",e.length," more with zero values"]})}):(0,c.jsxs)("span",{className:"ub-tooltip-summary",children:[(0,c.jsxs)("span",{children:["+",e.length," more with "]}),(0,c.jsx)("span",{children:`${o?"\u2265":"\u2264"} ${t}`})]}):(0,c.jsx)(c.Fragment,{})}function Ne(e){return(0,c.jsx)(qt,{serie:e.serie,children:(0,c.jsx)("div",{className:"ub-tooltip-serie",children:e.children})})}function De(e){return(0,c.jsx)("div",{className:"ub-tooltip-content",children:e.children})}function Ve(e){return(0,c.jsx)("div",{className:"ub-tooltip-header",children:e.children})}function Oe(e){return(0,c.jsx)("div",{className:"ub-tooltip-datetime",children:e.children})}function at(){let e=fe(),{disableSuggestedLabel:t}=ne();return(0,c.jsx)("span",{className:"ub-tooltip-serie-metric ub-truncate",children:e.metric.label||!t&&e.metric.suggestedLabel||e.metric.name})}function Ie(){let e=fe();return e.formattedValue?(0,c.jsx)("span",{className:"ub-tooltip-serie-value ub-truncate",children:e.formattedValue}):(0,c.jsx)("span",{className:"ub-tooltip-serie-value-empty",children:"\u2013"})}function ze(){let e=fe();return(0,c.jsx)("span",{style:{backgroundColor:e.color},className:"ub-tooltip-serie-color"})}function lt(){let{attributes:e}=fe();if(!e)return null;let t=Object.values(e);return(0,c.jsx)("div",{className:"ub-tooltip-serie-attributes ub-truncate",children:t.map((r,i)=>(0,c.jsxs)(H.Fragment,{children:[(0,c.jsx)("span",{className:"ub-tooltip-serie-attribute-value",children:r}),i<t.length-1&&(0,c.jsx)("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 ct({timestamp:e,tooltipSerieList:t,timeZone:r,spansMultipleDays:i,hasMultipleMetrics:o,hasAttributes:n,invertSort:s,visibilityLimit:a,disableSuggestedLabel:l}){let u=Qt({tooltipSerieList:t,invertSort:s}),g=i?(0,Me.dateTimeFormat)(e*1e3,{format:"MMM DD, HH:mm",timeZone:r}):(0,Me.dateTimeFormat)(e*1e3,{format:"HH:mm",timeZone:r});return n?n&&!o?(0,c.jsx)(we,{tooltip:{invertSort:s,visibilityLimit:a,disableSuggestedLabel:l},formattedTime:g,children:(0,c.jsx)(Bt,{tooltipSerieList:u})}):(0,c.jsx)(we,{tooltip:{invertSort:s,visibilityLimit:a,disableSuggestedLabel:l},formattedTime:g,children:(0,c.jsx)(_t,{unitCategory:"",tooltipSerieList:u})}):(0,c.jsx)(we,{tooltip:{invertSort:s,visibilityLimit:a,disableSuggestedLabel:l},formattedTime:g,children:(0,c.jsx)(Ft,{unitCategory:"",tooltipSerieList:u})})}var qe=require("react/jsx-runtime");function $t(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 Wt(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 jt(e,t,r,i,o,n,s){let a=[],l=e.data[0],u=new Set,g=new Set,d=!1;for(let h=1;h<e.series.length;h++){let p=e.data[h]?.[t]??null;if(i&&p!=null&&h>1){let T=e.data[h-1]?.[t]??0;p=p-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}u.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=p==null?void 0:r?r(p):String(p);a.push({metric:v,color:C,value:p===null?void 0:p,formattedValue:y,attributes:f,serie:m})}return{tooltipSerieList:a,hasAttributes:d,hasMultipleMetrics:u.size>1,hasMultipleAttributes:g.size>1,spansMultipleDays:$t(l,s)}}function ut(e,t,r,i,o,n,s,a,l){let u,g,d,h=!1;function p(){let m=u.getBoundingClientRect();g=m.left,d=m.top}return{hooks:{init:m=>{U.initialize(),u=m.over,window.addEventListener("scroll",p,!0),window.addEventListener("resize",p),u.onmouseenter=()=>{h=!0,U.show()},u.onmouseleave=()=>{h=!1,U.getRenderedUplot()===m&&U.hide(m)},p()},setSize:()=>{p()},setCursor:m=>{let{left:b,top:v,idx:f}=m.cursor;if(!h||f==null){U.getRenderedUplot()===m&&U.hide(m);return}let C=Wt(m,f),y=m.data[0][C];if(y===void 0)return;let{tooltipSerieList:T,hasAttributes:R,hasMultipleAttributes:k,hasMultipleMetrics:S,spansMultipleDays:M}=jt(m,C,e,t,r,n,i);U.show();let A=o,z=A?(0,qe.jsx)(A,{timestamp:y,tooltipSerieList:T,timeZone:i}):(0,qe.jsx)(ct,{timestamp:y,tooltipSerieList:T,timeZone:i,spansMultipleDays:M,stacked:t,hasAttributes:R,hasMultipleAttributes:k,hasMultipleMetrics:S,visibilityLimit:s,invertSort:a,disableSuggestedLabel:l});U.render(m,z),U.positionTooltip({left:(b||0)+g,top:(v||0)+d})},destroy(m){window.removeEventListener("scroll",p,!0),window.removeEventListener("resize",p),u&&(u.onmouseenter=null,u.onmouseleave=null),U.getRenderedUplot()===m&&U.hide(m)}}}}var he=["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}`,mt=(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 i=r%Xt+1;return e?t?`--ub-chart-serie-color-${i}`:`--ub-chart-serie-fill-color-${i}`:`--ub-chart-serie-color-${i}`},dt=(e,t,r,i,o,n)=>{let s=i==="bar"||i==="area";if(r)return Kt(r)?r[t]:Gt(r)?n?r.fill[t]:r.border[t]:r(e,t,i,n);let a=Yt({isFilling:n,useSolid:s,index:t}),l=o.getPropertyValue(a).trim();return l||(n&&s?he[t%he.length]?.replace(")"," / 0.4)"):he[t%he.length])},Jt=e=>{let t=se.default.paths.bars({size:[.6,100],radius:0,gap:0}),r=se.default.paths.linear({alignGaps:0}),i=se.default.paths.spline({alignGaps:1}),o=se.default.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}},Zt=(e,t,r,i,o)=>dt(e,t,r,i,o,!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 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 p=Math.floor((s+a)/2),m=o[p];m!=null&&m<i?s=p:a=p}let l=o[s],u=o[a];l!=null&&u!=null?n=Math.abs(l-i)<Math.abs(u-i)?s:a:l!=null?n=s:u!=null&&(n=a);let g=n;for(let p=n;p>=0;p--){let m=!1;for(let b=1;b<e.data.length;b++){let v=e.data[b];if(v&&v[p]!=null){m=!0;break}}if(m){g=p;break}}let d=o[g];return d==null?[t,r]:[e.valToPos(d,"x"),r]},rr=(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},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(i=>{let o={label:i.label,stroke:or(e,i.level),width:nr(),dash:sr(i.type),points:{show:!1,size:0},spanGaps:!0,show:!0,auto:!1};ie(i)||r.push(o),r.push(o)}),r}else return[]},lr=(e,t,r,i)=>{if(!i||!i.some(n=>de(n)))return t.bands;let o=i.map((n,s)=>ie(n)?null:{series:[e.length+s*2+1,e.length+s*2+2],fill:ir(r,n.level),dir:1}).filter(n=>n!==null);return[...t.bands,...o]},cr=(e,t,r,i,o,n,s)=>{let a=er(t,i);return[{},...e.map((l,u)=>({label:l.metric,stroke:dt(l,u,r,t,n),width:a,points:{show:!1},spanGaps:!0,paths:Jt(t),fill:i||o?Zt(l,u,r,t,n):void 0})),...ar(n,s)]},ur=e=>{if(typeof e=="string"){let t=String(e).toLowerCase().trim();if(t==="by")return"bytes";if(t.startsWith("{")&&t.endsWith("}"))return"short"}return e},ft=(e,t,r,i,o,n,s,a,l,u,g,d,h,p,m,b,v,f,x,C,y)=>{let T=window.getComputedStyle(e),R=T.fontFamily,k=e?.clientWidth??1050,S=e?.clientHeight??250,M=ur(i),A=(0,pt.getValueFormat)(M==="1"?null:M),z=q=>{let P=A(q);return P.text+(P.suffix?.trim()||"")},W={width:k,height:S,scales:{y:{range:ht(i,m,b)}},plugins:h?[]:[ut(z,s,t,u,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:tr,show:!f},series:cr(o,n,a,l,s,T,p),bands:lr(o,r,T,p),axes:[ot(R,u,d,v),gt(A,R,v)],legend:{show:!1}};return rr(W,T)};var bt=(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,ht=(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 u=bt(a),g=bt(Math.abs(l));return o<0?[L(r,-g),L(r,u)]:[L(t,0),L(r,u)]},pr=(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 gt(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:pr,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 yt(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((u,g)=>n[g]=n[g]+(u||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)}}var vt=require("react/jsx-runtime");function be(e){let{times:t,series:r,metadata:i,type:o,className:n,timeZone:s,options:a,tooltip:l,colors:u,tooltipComponent:g,unit:d,fill:h,thresholds:p,min:m,max:b,hideAxis:v,hideCursor:f,relativeTimeAxis:x,invertSort:C,disableSuggestedLabel:y}=e,{hide:T,visibilityLimit:R}=l||{},k=(0,ge.useRef)(null),S=O(),M=typeof x=="boolean"?x:S.relativeTimeAxis,A=u??S.colors,z=typeof h=="boolean"?h:S.fill||!1,W=typeof C=="boolean"?C:S.invertSort,q=typeof y=="boolean"?y:S.disableSuggestedLabel,P=typeof v=="boolean"?v:S.hideAxis,F=typeof f=="boolean"?f:S.hideCursor,ye=typeof R=="boolean"?R:S.tooltip?.visibilityLimit,B=typeof T=="boolean"?T:S.tooltip?.hide;return(0,ge.useEffect)(()=>{if(!r||r.length===0){console.warn("No series provided");return}let te=[t],Te=d;r.forEach(E=>{let ae=i[E.metric];d||(Te=mt(Te,ae)),te.push(E.values)});let Fe=o==="bar"||o==="area",re=yt(te,!Fe);p&&p.forEach(E=>{ie(E)?re.data.push(new Array(t.length).fill(E.value)):de(E)&&(re.data.push(new Array(t.length).fill(E.from)),re.data.push(new Array(t.length).fill(E.to)))});let j=k.current,ve=null;if(j){let E=ft(j,i,re,Te,r,o,Fe,A,z,s,g,M,B,p,m,b,P,F,ye,W,q);ve=new Tt.default({...E,...a},re.data,j);let ae=new ResizeObserver(()=>{ve?.setSize({width:j.clientWidth,height:j.clientHeight})});return ae.observe(j),()=>{ve?.destroy(),ae.disconnect()}}},[r,t,o,i,s,g,M,A,z,d,B,p,m,b,a,P,F,W,ye,q]),(0,vt.jsx)("div",{ref:k,className:"ub-chart-container"+(n?` ${n}`:"")})}var Q=require("react/jsx-runtime");function Ct({metrics:e,operator:t,attributes:r,groupBy:i,interval:o,type:n="line",className:s,appearance:a,tooltip:l,onResponse:u,...g}){let d=O(),h=o??d.interval,p=r??d.attributes,m=i??d.groupBy,b=t??d.operator,v=a?.components?.Tooltip??d.appearance.components.Tooltip,f=(0,ee.useMemo)(()=>({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}=(0,ee.useMemo)(()=>{let P=Array.isArray(e)?e:[e],F={};return{queries:P.map(B=>{let te=ke(B)?B.name:B;return ke(B)&&(F[te]=B.label),{metrics:[te],operator:b,attributes:p,groupBy:m}}),metadataLabels:F}},[e,b,p,m]),y=me({queries:x,timeRange:d.timeRange,startTime:d.startTime,endTime:d.endTime,interval:h}),{isLoading:T,data:R,hasError:k}=y,{series:S,times:M,metadata:A}=R,z=S.every(P=>P.isEmpty),W=(0,ee.useMemo)(()=>Object.keys(C).length===0?A:Object.fromEntries(Object.entries(A).map(([P,F])=>[P,{...F,label:C[P]??F.suggestedLabel??P}])),[C,A]),q=`ub-chart-container${s?` ${s}`:""}`;if((0,ee.useEffect)(()=>{u&&u(y)},[y,u]),T){let P=a?.components?.Loading??d.appearance.components.Loading;return(0,Q.jsx)("div",{className:q,children:(0,Q.jsx)(P,{})})}if(k){let P=a?.components?.Error??d.appearance.components.Error;return(0,Q.jsx)("div",{className:q,children:(0,Q.jsx)(P,{})})}if(z){let P=a?.components?.Empty??d.appearance.components.Empty;return(0,Q.jsx)("div",{className:q,children:(0,Q.jsx)(P,{})})}return(0,Q.jsx)(be,{times:M,series:S,metadata:W,type:n,className:s,tooltip:f,tooltipComponent:v,...g})}0&&(module.exports={Chart,Empty,Error,Loading,Scope,Timeseries,UnblindProvider,useLogs,useMetrics,useRefresh,useScope,useTimeseries,useUsage});
2
2
  //# sourceMappingURL=index.js.map