@verifiedinc-public/shared-ui-elements 3.18.2-beta.11 → 3.18.2-beta.13
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.
@@ -1 +1 @@
|
|
1
|
-
"use strict";import{j as r}from"../../shared/jsx-runtime-DHlBLioN.mjs";import*as K from"react";import{useCallback as ie,useMemo as oe,createElement as ze,useState as Z,useRef as Ze,useEffect as je}from"react";import{Box as V,Stack as G,Typography as P,useTheme as W,Paper as we,TableContainer as He,Table as Xe,TableHead as Ye,TableRow as ke,TableCell as E,TableBody as Je}from"@mui/material";import{ResponsiveContainer as H,LineChart as Qe,CartesianGrid as le,XAxis as se,YAxis as ce,Label as de,Tooltip as ue,Legend as Oe,Line as et,AreaChart as tt,Area as nt,ComposedChart as rt,ReferenceLine as Se,ReferenceArea as Te,Bar as at,Sector as $e,PieChart as it,Pie as ot,Cell as lt}from"recharts";import{b as Ce,c as Ae,u as st}from"../../shared/uuidColor-Dw38-aYm.mjs";import X,{Decimal as pe}from"decimal.js";import{AnimatePresence as ct}from"framer-motion";import{u as dt}from"../../shared/useCopyToClipboard-BALOSYVW.mjs";import"qrcode";import{u as me}from"../../shared/usePrevious-DyvR1iCQ.mjs";import{a as ut,C as Re}from"../../shared/motions-BBPeWBPV.mjs";import{c as De,i as pt,_ as Y,s as mt,a as T,d as ht,e as ft,f as xt,h as gt,j as yt,k as vt,l as bt,m as jt,n as wt,o as kt,p as Ot,u as St,q as Tt}from"../../shared/index-C1wV5bJ6.mjs";import{u as $t}from"../../shared/useCounter-BV32zXDQ.mjs";import{k as Le}from"../../shared/formatKebabToPretty-Du43TgPC.mjs";const Ct=["ownerState"],At=["variants"],Rt=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function Dt(e){return Object.keys(e).length===0}function Lt(e){return typeof e=="string"&&e.charCodeAt(0)>96}function he(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const Nt=De(),Et=e=>e&&e.charAt(0).toLowerCase()+e.slice(1);function J({defaultTheme:e,theme:t,themeId:n}){return Dt(t)?e:t[n]||t}function _t(e){return e?(t,n)=>n[e]:null}function Q(e,t){let{ownerState:n}=t,a=Y(t,Ct);const o=typeof e=="function"?e(T({ownerState:n},a)):e;if(Array.isArray(o))return o.flatMap(l=>Q(l,T({ownerState:n},a)));if(o&&typeof o=="object"&&Array.isArray(o.variants)){const{variants:l=[]}=o;let i=Y(o,At);return l.forEach(s=>{let c=!0;typeof s.props=="function"?c=s.props(T({ownerState:n},a,n)):Object.keys(s.props).forEach(u=>{n?.[u]!==s.props[u]&&a[u]!==s.props[u]&&(c=!1)}),c&&(Array.isArray(i)||(i=[i]),i.push(typeof s.style=="function"?s.style(T({ownerState:n},a,n)):s.style))}),i}return o}function Mt(e={}){const{themeId:t,defaultTheme:n=Nt,rootShouldForwardProp:a=he,slotShouldForwardProp:o=he}=e,l=i=>ht(T({},i,{theme:J(T({},i,{defaultTheme:n,themeId:t}))}));return l.__mui_systemSx=!0,(i,s={})=>{pt(i,g=>g.filter(k=>!(k!=null&&k.__mui_systemSx)));const{name:c,slot:u,skipVariantsResolver:m,skipSx:h,overridesResolver:p=_t(Et(u))}=s,f=Y(s,Rt),S=m!==void 0?m:u&&u!=="Root"&&u!=="root"||!1,y=h||!1;let j,v=he;u==="Root"||u==="root"?v=a:u?v=o:Lt(i)&&(v=void 0);const b=mt(i,T({shouldForwardProp:v,label:j},f)),w=g=>typeof g=="function"&&g.__emotion_real!==g||ft(g)?k=>Q(g,T({},k,{theme:J({theme:k.theme,defaultTheme:n,themeId:t})})):g,C=(g,...k)=>{let N=w(g);const $=k?k.map(w):[];c&&p&&$.push(d=>{const x=J(T({},d,{defaultTheme:n,themeId:t}));if(!x.components||!x.components[c]||!x.components[c].styleOverrides)return null;const O=x.components[c].styleOverrides,I={};return Object.entries(O).forEach(([_,D])=>{I[_]=Q(D,T({},d,{theme:x}))}),p(d,I)}),c&&!S&&$.push(d=>{var x;const O=J(T({},d,{defaultTheme:n,themeId:t})),I=O==null||(x=O.components)==null||(x=x[c])==null?void 0:x.variants;return Q({variants:I},T({},d,{theme:O}))}),y||$.push(l);const R=$.length-k.length;if(Array.isArray(g)&&R>0){const d=new Array(R).fill("");N=[...g,...d],N.raw=[...g.raw,...d]}const A=b(N,...$);return i.muiName&&(A.muiName=i.muiName),A};return b.withConfig&&(C.withConfig=b.withConfig),C}}const It=Mt(),Ft=(e,t)=>e.filter(n=>t.includes(n)),U=(e,t,n)=>{const a=e.keys[0];Array.isArray(t)?t.forEach((o,l)=>{n((i,s)=>{l<=e.keys.length-1&&(l===0?Object.assign(i,s):i[e.up(e.keys[l])]=s)},o)}):t&&typeof t=="object"?(Object.keys(t).length>e.keys.length?e.keys:Ft(e.keys,Object.keys(t))).forEach(o=>{if(e.keys.indexOf(o)!==-1){const l=t[o];l!==void 0&&n((i,s)=>{a===o?Object.assign(i,s):i[e.up(o)]=s},l)}}):(typeof t=="number"||typeof t=="string")&&n((o,l)=>{Object.assign(o,l)},t)};function F(e){return e?`Level${e}`:""}function z(e){return e.unstable_level>0&&e.container}function Ne(e){return function(t){return`var(--Grid-${t}Spacing${F(e.unstable_level)})`}}function fe(e){return function(t){return e.unstable_level===0?`var(--Grid-${t}Spacing)`:`var(--Grid-${t}Spacing${F(e.unstable_level-1)})`}}function xe(e){return e.unstable_level===0?"var(--Grid-columns)":`var(--Grid-columns${F(e.unstable_level-1)})`}const Gt=({theme:e,ownerState:t})=>{const n=Ne(t),a={};return U(e.breakpoints,t.gridSize,(o,l)=>{let i={};l===!0&&(i={flexBasis:0,flexGrow:1,maxWidth:"100%"}),l==="auto"&&(i={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"}),typeof l=="number"&&(i={flexGrow:0,flexBasis:"auto",width:`calc(100% * ${l} / ${xe(t)}${z(t)?` + ${n("column")}`:""})`}),o(a,i)}),a},Pt=({theme:e,ownerState:t})=>{const n={};return U(e.breakpoints,t.gridOffset,(a,o)=>{let l={};o==="auto"&&(l={marginLeft:"auto"}),typeof o=="number"&&(l={marginLeft:o===0?"0px":`calc(100% * ${o} / ${xe(t)})`}),a(n,l)}),n},Wt=({theme:e,ownerState:t})=>{if(!t.container)return{};const n=z(t)?{[`--Grid-columns${F(t.unstable_level)}`]:xe(t)}:{"--Grid-columns":12};return U(e.breakpoints,t.columns,(a,o)=>{a(n,{[`--Grid-columns${F(t.unstable_level)}`]:o})}),n},Bt=({theme:e,ownerState:t})=>{if(!t.container)return{};const n=fe(t),a=z(t)?{[`--Grid-rowSpacing${F(t.unstable_level)}`]:n("row")}:{};return U(e.breakpoints,t.rowSpacing,(o,l)=>{var i;o(a,{[`--Grid-rowSpacing${F(t.unstable_level)}`]:typeof l=="string"?l:(i=e.spacing)==null?void 0:i.call(e,l)})}),a},Kt=({theme:e,ownerState:t})=>{if(!t.container)return{};const n=fe(t),a=z(t)?{[`--Grid-columnSpacing${F(t.unstable_level)}`]:n("column")}:{};return U(e.breakpoints,t.columnSpacing,(o,l)=>{var i;o(a,{[`--Grid-columnSpacing${F(t.unstable_level)}`]:typeof l=="string"?l:(i=e.spacing)==null?void 0:i.call(e,l)})}),a},Vt=({theme:e,ownerState:t})=>{if(!t.container)return{};const n={};return U(e.breakpoints,t.direction,(a,o)=>{a(n,{flexDirection:o})}),n},Ut=({ownerState:e})=>{const t=Ne(e),n=fe(e);return T({minWidth:0,boxSizing:"border-box"},e.container&&T({display:"flex",flexWrap:"wrap"},e.wrap&&e.wrap!=="wrap"&&{flexWrap:e.wrap},{margin:`calc(${t("row")} / -2) calc(${t("column")} / -2)`},e.disableEqualOverflow&&{margin:`calc(${t("row")} * -1) 0px 0px calc(${t("column")} * -1)`}),(!e.container||z(e))&&T({padding:`calc(${n("row")} / 2) calc(${n("column")} / 2)`},(e.disableEqualOverflow||e.parentDisableEqualOverflow)&&{padding:`${n("row")} 0px 0px ${n("column")}`}))},qt=e=>{const t=[];return Object.entries(e).forEach(([n,a])=>{a!==!1&&a!==void 0&&t.push(`grid-${n}-${String(a)}`)}),t},zt=(e,t="xs")=>{function n(a){return a===void 0?!1:typeof a=="string"&&!Number.isNaN(Number(a))||typeof a=="number"&&a>0}if(n(e))return[`spacing-${t}-${String(e)}`];if(typeof e=="object"&&!Array.isArray(e)){const a=[];return Object.entries(e).forEach(([o,l])=>{n(l)&&a.push(`spacing-${o}-${String(l)}`)}),a}return[]},Zt=e=>e===void 0?[]:typeof e=="object"?Object.entries(e).map(([t,n])=>`direction-${t}-${n}`):[`direction-xs-${String(e)}`],Ht=["className","children","columns","container","component","direction","wrap","spacing","rowSpacing","columnSpacing","disableEqualOverflow","unstable_level"],Xt=De(),Yt=It("div",{name:"MuiGrid",slot:"Root",overridesResolver:(e,t)=>t.root});function Jt(e){return bt({props:e,name:"MuiGrid",defaultTheme:Xt})}function Qt(e={}){const{createStyledComponent:t=Yt,useThemeProps:n=Jt,componentName:a="MuiGrid"}=e,o=K.createContext(void 0),l=(c,u)=>{const{container:m,direction:h,spacing:p,wrap:f,gridSize:S}=c,y={root:["root",m&&"container",f!=="wrap"&&`wrap-xs-${String(f)}`,...Zt(h),...qt(S),...m?zt(p,u.breakpoints.keys[0]):[]]};return jt(y,j=>wt(a,j),{})},i=t(Wt,Kt,Bt,Gt,Vt,Ut,Pt),s=K.forwardRef(function(c,u){var m,h,p,f,S,y,j,v;const b=xt(),w=n(c),C=gt(w),g=K.useContext(o),{className:k,children:N,columns:$=12,container:R=!1,component:A="div",direction:d="row",wrap:x="wrap",spacing:O=0,rowSpacing:I=O,columnSpacing:_=O,disableEqualOverflow:D,unstable_level:L=0}=C,re=Y(C,Ht);let q=D;L&&D!==void 0&&(q=c.disableEqualOverflow);const ge={},ye={},ve={};Object.entries(re).forEach(([M,B])=>{b.breakpoints.values[M]!==void 0?ge[M]=B:b.breakpoints.values[M.replace("Offset","")]!==void 0?ye[M.replace("Offset","")]=B:ve[M]=B});const Be=(m=c.columns)!=null?m:L?void 0:$,Ke=(h=c.spacing)!=null?h:L?void 0:O,Ve=(p=(f=c.rowSpacing)!=null?f:c.spacing)!=null?p:L?void 0:I,Ue=(S=(y=c.columnSpacing)!=null?y:c.spacing)!=null?S:L?void 0:_,be=T({},C,{level:L,columns:Be,container:R,direction:d,wrap:x,spacing:Ke,rowSpacing:Ve,columnSpacing:Ue,gridSize:ge,gridOffset:ye,disableEqualOverflow:(j=(v=q)!=null?v:g)!=null?j:!1,parentDisableEqualOverflow:g}),qe=l(be,b);let ae=r.jsx(i,T({ref:u,as:A,ownerState:be,className:yt(qe.root,k)},ve,{children:K.Children.map(N,M=>{if(K.isValidElement(M)&&vt(M,["Grid"])){var B;return K.cloneElement(M,{unstable_level:(B=M.props.unstable_level)!=null?B:L+1})}return M})}));return q!==void 0&&q!==(g??!1)&&(ae=r.jsx(o.Provider,{value:q,children:ae})),ae});return s.muiName="Grid",s}const Ee=Qt({createStyledComponent:kt("div",{name:"MuiGrid2",slot:"Root",overridesResolver:(e,t)=>t.root}),componentName:"MuiGrid2",useThemeProps:e=>Ot({props:e,name:"MuiGrid2"})});function en({entry:e,payload:t}){const n=ie(h=>{var p,f,S;return(S=(f=(p=h.payload)==null?void 0:p.data)==null?void 0:f.reduce)==null?void 0:S.call(f,(y,j)=>y+j.value,0)},[]),a=ie(h=>{const p=new pe(n(h)||0),f=t?.reduce((j,v)=>j+n(v),0)||0,S=new pe(f),y=Number(p.div(S).times(100).toFixed(2,pe.ROUND_DOWN));return isNaN(y)||!isFinite(y)?0:y},[n,t]),o=oe(()=>n(e),[e,n]),l=me(o),i=oe(()=>Number(a(e)),[e,a]),s=me(i),c=ie(h=>Math.floor(h).toLocaleString(),[]),u=dt({type:"text/plain"}),m=St();return r.jsxs(ut,{component:"li",direction:"row",spacing:1,sx:{color:e.color},layout:"position",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},children:[r.jsx(V,{sx:{width:"3px",height:"100%",backgroundColor:e.color,borderRadius:3}}),r.jsxs(G,{children:[r.jsxs(P,{component:"p",variant:"caption",children:[r.jsx(G,{component:"span",display:"inline-flex",mr:.5,children:r.jsx(Re,{from:l??0,to:o,map:c,children:"0"})}),r.jsxs(G,{component:"span",direction:"row",display:"inline-flex",children:["(",r.jsx(Re,{from:s??0,to:i,map:c,children:"0"}),"%)"]})]}),r.jsx(P,{variant:"body1",children:e.value}),e.payload.integrationType&&r.jsx(P,{variant:"body2",children:e.payload.integrationType}),e.payload.uuid&&r.jsxs(P,{variant:"body2",sx:{cursor:"pointer","&:hover":{textDecoration:"underline"}},onClick:()=>{u.copy(e.payload.uuid).catch(()=>{}),m.enqueueSnackbar("UUID copied to clipboard","success")},children:[e.payload.uuid.slice(0,5),"..."]})]})]})}function _e(e){const{payload:t}=e;return r.jsx(Ee,{container:!0,direction:"row",component:"ul",gap:2,sx:{mt:2,justifyContent:"flex-start",alignItem:"center",flexWrap:"wrap"},children:r.jsx(ct,{children:t?.map(n=>r.jsx(Ee,{children:r.jsx(en,{entry:n,payload:t})},`item-${n.value}`))})})}function Me(e){const t=W();return r.jsx(V,{sx:{width:"100%",height:"100%",...e.sx},children:r.jsx(H,{children:r.jsxs(Qe,{width:500,height:300,margin:{top:5,right:60,left:20,bottom:5},children:[r.jsx(le,{vertical:!1}),r.jsx(se,{dataKey:"date",type:"number",domain:["dataMin","dataMax"],tickFormatter:n=>Ce(n,{timeZone:e.filter.timezone,hour12:!1,hour:"numeric"}),allowDuplicatedCategory:!1,tickLine:!1,fontSize:12,tickMargin:12}),r.jsx(ce,{textAnchor:"end",dataKey:"value",tickLine:!1,tickFormatter:n=>Number(n).toLocaleString(),allowDecimals:!1,domain:[1,"dataMax"],children:e.label&&r.jsx(de,{value:e.label,angle:-90,position:"insideLeft",style:{textAnchor:"middle"}})}),r.jsx(ue,{cursor:{stroke:t.palette.neutral.main,strokeWidth:1},formatter:n=>Number(n).toLocaleString(),labelFormatter:n=>Ae(n,{timeZone:e.filter.timezone,hour12:!1})}),r.jsx(Oe,{content:r.jsx(_e,{})}),e.data.map(n=>ze(et,{uuid:n.uuid,integrationType:n.integrationType,key:n.uuid,name:n.name,dataKey:"value",data:n.chartData,type:"monotone",stroke:n.color,strokeWidth:2}))]})})})}const tn=(e,t)=>{const n=new Map;return e.forEach(a=>{a.chartData.forEach(o=>{const l=new Date(o.date).getTime().toString();if(!n.has(l)){const i={date:l,total:0,diff:0,totalKey:"",originalTotal:0};t.forEach(({key:s})=>{i[s]=0,i[`${s}_absolute`]=0}),n.set(l,i)}t.forEach(({key:i})=>{const s=n.get(l),c=o[i],u=typeof c=="string"?c.trim()===""?0:parseInt(c,10):typeof c=="number"?c:0;s[`${i}_absolute`]=u,s[i]=0})})}),Array.from(n.values()).map(a=>{var o;const l=(o=t.find(c=>c.isTotal))==null?void 0:o.key,i=t.filter(c=>!c.isTotal).map(c=>c.key);if(!l||i.length===0)return a;const s=a[`${l}_absolute`];return a.originalTotal=s,a.total=s,a[l]=100,i.forEach(c=>{const u=a[`${c}_absolute`],m=s>0?new X(u.toString()).div(s).mul(100).toFixed(2,X.ROUND_DOWN):"0.00";a[c]=parseFloat(m)}),{...a,totalKey:l}}).sort((a,o)=>parseInt(a.date)-parseInt(o.date))};function nn(e){const t=W(),n=oe(()=>e.data?tn(e.data,e.keyValues):[],[e.data,e.keyValues]);return r.jsx(V,{sx:{width:"100%",height:"100%",...e.sx},children:r.jsx(H,{width:"100%",height:"100%",children:r.jsxs(tt,{data:n,width:500,height:300,margin:{top:5,right:60,left:20,bottom:5},children:[r.jsx(le,{strokeDasharray:"3 3"}),r.jsx(se,{dataKey:"date",type:"number",domain:["dataMin","dataMax"],tickFormatter:a=>Ce(a,{timeZone:e.filter.timezone,hour12:!1,hour:"numeric"}),allowDuplicatedCategory:!1,tickLine:!1,fontSize:12,tickMargin:12}),r.jsx(ce,{textAnchor:"end",tickLine:!1,tickFormatter:a=>`${a.toFixed(2)}%`}),r.jsx(ue,{cursor:{stroke:t.palette.neutral.main,strokeWidth:1},labelFormatter:a=>Ae(a,{timeZone:e.filter.timezone,hour12:!1}),formatter:(a,o,l)=>{const i=l.payload.totalKey,s=l.dataKey,c=s===i,u=l.payload[`${s}_absolute`],m=l.payload.originalTotal,h=c?null:m===0?"0.00":new X(u.toString()).div(m).mul(100).toFixed(2,X.ROUND_DOWN);return[h?`${u.toLocaleString()} (${h}%)`:`${u.toLocaleString()} (TOTAL)`,o]}}),e.keyValues.sort((a,o)=>a.isTotal?-1:o.isTotal?1:0).map(a=>r.jsx(nt,{type:"monotone",dataKey:a.key,name:a.name,stroke:a.color,fill:a.color,strokeWidth:2,fillOpacity:.6},a.key))]})})})}function rn(e){const t=me(e.value),{ref:n}=$t({from:t??0,to:e.value,duration:1,map:e.map});return r.jsx(we,{sx:{p:3,flex:1,...e.sx},children:r.jsxs(G,{spacing:1,alignItems:"center",children:[r.jsx(P,{ref:n,variant:"h4",fontWeight:"bold",children:e.initialValue}),r.jsx(P,{color:"text.secondary",children:e.label})]})})}const Ie={margin:{top:5,right:30,left:20,bottom:5}},an={tickLine:!1,fontSize:12,tickMargin:12},on={textAnchor:"end",tickLine:!1};function ee({data:e,series:t,xAxis:n,yAxis:a,tooltip:o,bar:l,referenceLines:i,referenceAreas:s,sx:c}){const u=W(),m=p=>!p.isFront,h=p=>!!p.isFront;return r.jsx(V,{sx:{width:"100%",height:"100%",...c},children:r.jsx(H,{children:r.jsxs(rt,{data:e,...Ie,children:[r.jsx(le,{strokeDasharray:"3 3",vertical:!1}),r.jsx(se,{...an,...n}),r.jsx(ce,{...on,...a}),r.jsx(ue,{cursor:{stroke:u.palette.neutral.main,strokeWidth:1},...o}),i?.filter(m).map((p,f)=>r.jsx(Se,{...p},p.label??f)),s?.filter(m).map((p,f)=>r.jsx(Te,{...p},p.label??f)),t.map(p=>r.jsx(at,{name:p.key,dataKey:p.dataKey,fill:p.color,stackId:"stack",isAnimationActive:!1,...l},p.key)),i?.filter(h).map((p,f)=>r.jsx(Se,{...p},p.label??f)),s?.filter(h).map((p,f)=>r.jsx(Te,{...p},p.label??f))]})})})}function ln({data:e,threshold:t=100,sx:n}){const a=W(),o=Object.entries(e??{}).map(([i,s])=>({key:i,[i]:s})),l=o.map(({key:i})=>({key:i,dataKey:i,color:a.palette.error.light}));return r.jsx(ee,{sx:n,data:o,series:l,xAxis:{tickLine:!1,dataKey:"key"},yAxis:{tickLine:!1,domain:[0,`dataMax + ${t}`]},tooltip:{labelFormatter:i=>"Total"},referenceLines:[{y:t,stroke:a.palette.error.dark,strokeDasharray:"3 3",label:r.jsx(de,{value:"Unhealthy threshold",position:"insideBottomRight"}),isFront:!0}]})}function sn({data:e,threshold:t=100,sx:n}){const a=W(),o=Object.entries(e??{}).map(([i,s])=>({key:i,[i]:s})),l=o.map(({key:i})=>({key:i,dataKey:i,color:a.palette.warning.light}));return r.jsx(ee,{sx:n,data:o,series:l,xAxis:{tickLine:!1,dataKey:"key"},yAxis:{tickLine:!1,domain:[0,`dataMax + ${t}`]},tooltip:{labelFormatter:i=>"Total"},referenceLines:[{y:t,stroke:a.palette.error.dark,strokeDasharray:"3 3",label:r.jsx(de,{value:"Unhealthy threshold",position:"insideBottomRight"}),isFront:!0}]})}function Fe({payload:e=[],hiddenItems:t,onToggle:n,legendLabel:a}){return r.jsx(V,{sx:{display:"flex",justifyContent:"center",gap:"20px",paddingTop:"20px"},children:e.map((o,l)=>{const i=t.has(o.payload.name);return r.jsxs("div",{style:{display:"flex",alignItems:"center",cursor:"pointer",opacity:i?.4:1},onClick:()=>{n?.(o.payload)},children:[r.jsx("div",{style:{width:"12px",height:"12px",backgroundColor:o.color,marginRight:"8px",borderRadius:"2px"}}),r.jsx("span",{style:{color:o.color},children:a?`${a}: ${o.value}`:o.value})]},`legend-${l}`)})})}const cn=e=>{const t=Math.PI/180,{cx:n,cy:a,midAngle:o,innerRadius:l,outerRadius:i,startAngle:s,endAngle:c,fill:u,payload:m,percent:h,value:p,valueText:f,valuePercentage:S,needleVisible:y,customText:j,allActive:v}=e,b=Math.sin(-t*o),w=Math.cos(-t*o),C=n+(i+5)*w,g=a+(i+5)*b,k=n+(i+15)*w,N=a+(i+15)*b,$=k+(w>=0?1:-1)*22,R=N,A=w>=0?"start":"end",d=p.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0}),x=()=>y||v?null:r.jsx("text",{x:n,y:a,dy:8,textAnchor:"middle",fill:"#333",fontSize:14,children:m.name});return r.jsxs("g",{children:[x(),r.jsx($e,{cx:n,cy:a,innerRadius:l,outerRadius:i,startAngle:s,endAngle:c,fill:u}),r.jsx($e,{cx:n,cy:a,startAngle:s,endAngle:c,innerRadius:i+2,outerRadius:i+6,fill:u}),r.jsx("path",{d:`M${C},${g}L${k},${N}L${$},${R}`,stroke:u,fill:"none"}),r.jsx("circle",{cx:$,cy:R,r:2,fill:u,stroke:"none"}),r.jsx("text",{x:$+(w>=0?1:-1)*12,y:R,textAnchor:A,fill:"#333",fontSize:12,children:j||(f?`${f} ${d}`:d)}),S&&r.jsxs("text",{x:$+(w>=0?1:-1)*12,y:R,dy:16,textAnchor:A,fill:"#999",fontSize:11,children:[`${(h*100).toFixed(2)}%`," (",d,")"]})]})},dn=e=>{const{value:t,data:n,color:a,innerRadius:o,outerRadius:l,boxDimensions:i,legendDimensions:s,valueText:c}=e,u=Math.PI/180;let m=0;n.forEach(x=>{m+=x.value});const h=i?i.width/2:150,p=(i?i.height/2:200)-s.height/2,f=180*(1-Math.max(0,Math.min(1,t/m))),S=(Number(o)+2*Number(l))/3,y=Math.sin(-u*f),j=Math.cos(-u*f),v=5,b=h-v,w=p,C=b+v*y,g=w-v*j,k=b-v*y,N=w+v*j,$=b+S*j,R=w+S*y,A=t.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0}),d=c??A;return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:b,cy:w,r:v,fill:a,stroke:"none",style:{pointerEvents:"none"}},"needle-circle"),r.jsx("path",{d:`M${C} ${g}L${k} ${N} L${$} ${R} L${C} ${g}`,stroke:"none",fill:a,style:{pointerEvents:"none"}},"needle-path"),r.jsx("text",{x:b+v,y:w+26,textAnchor:"middle",fill:"#333",fontSize:12,children:d},"needle-value")]})},un=(e,t)=>({Allow:t.palette.success.main,Flag:t.palette.warning.main,Block:t.palette.error.main})[e]??t.palette.primary.main;function Ge({data:e,sx:t,legendLabel:n,legendToggle:a=!1,valueText:o="",valuePercentage:l=!0,pie:i,needleVisible:s=!1,needleValue:c,needleColor:u="#aaa",allActive:m=!1}){const{innerRadius:h=60,outerRadius:p=100}=i??{},f=W(),[S,y]=Z(void 0),[j,v]=Z(new Set),b=Ze(null),[w,C]=Z(null),[g,k]=Z(null),N=(d,x)=>{m||y(x)},$=()=>{m||y(void 0)},R=d=>{a&&d&&v(x=>{const O=new Set(x);return O.has(d.name)?O.delete(d.name):O.size<e.length-1&&O.add(d.name),O})},A=e.map((d,x)=>({...d,index:x,value:j.has(d.name)?0:d.value}));return je(()=>{const d=b.current;if(!d)return;const x=new ResizeObserver(I=>{var _;const D=(_=I[0])==null?void 0:_.contentRect;D&&C(D)});x.observe(d);const O=d.getBoundingClientRect();return C(O),()=>{x.disconnect()}},[]),je(()=>{var d;const x=(d=b.current)==null?void 0:d.querySelector(".recharts-legend-wrapper");if(!x){const _=setInterval(()=>{var D;const L=(D=b.current)==null?void 0:D.querySelector(".recharts-legend-wrapper");if(L){const re=L.getBoundingClientRect();k(re),clearInterval(_)}},100);return()=>{clearInterval(_)}}const O=new ResizeObserver(_=>{var D;const L=(D=_[0])==null?void 0:D.contentRect;L&&k(L)});O.observe(x);const I=x.getBoundingClientRect();return k(I),()=>{O.disconnect()}},[]),r.jsx(V,{ref:b,sx:{width:"100%",height:"100%","& g":{outline:"none"},...t},children:r.jsx(H,{children:r.jsxs(it,{...Ie,children:[r.jsx(ot,{data:A,nameKey:"name",dataKey:"value",innerRadius:h,outerRadius:p,activeIndex:m?A.filter(d=>d.value>0).map(d=>d.index):S,activeShape:d=>cn({...d,valueText:o,valuePercentage:l,needleVisible:s,allActive:m}),paddingAngle:0,onMouseEnter:N,onMouseLeave:$,...i,children:A.map(d=>r.jsx(lt,{fill:d.color??un(d.name,f),opacity:j.has(d.name)?.5:1,stroke:"none"},d.name))}),r.jsx(Oe,{content:r.jsx(Fe,{legendLabel:n,hiddenItems:j,onToggle:R})}),s&&c!==void 0&&w&&g&&dn({data:A,value:c,color:u,innerRadius:h,outerRadius:p,boxDimensions:w,legendDimensions:g,valueText:o})]})})})}function pn({sx:e,data:t,score:n=200,legendLabel:a}){const o=W(),l=[{name:"Allow",customText:"0-299",value:t[0].value,color:o.palette.primary.main},{name:"Flag",customText:"300-599",value:t[1].value,color:o.palette.warning.main},{name:"Block",customText:"Over 600",value:t[2].value,color:o.palette.error.main}];return r.jsx(Ge,{data:l,legendToggle:!0,needleValue:n,legendLabel:a,allActive:!0,sx:e})}function mn({data:e,sx:t}){const n=W(),a=(l=>{const i={};return l.forEach(s=>{Object.entries(s).forEach(([c,u])=>{const m=parseInt(c);m<=1e3&&(i[m]=(i[m]||0)+u)})}),Array.from({length:1001},(s,c)=>({key:c.toString(),value:i[c]||0}))})(e),o=[{key:"Risk Score",dataKey:"value",color:n.palette.error.main}];return r.jsx(ee,{data:a,series:o,sx:t,yAxis:{label:{value:"Count",angle:-90,position:"insideLeft"},domain:[0,"dataMax + 10"]},xAxis:{domain:[0,"dataMax"],interval:"preserveStartEnd"},tooltip:{labelFormatter:()=>"Risk Score",formatter:(l,i,s)=>[l,s.payload.key]},referenceAreas:[{x1:0,x2:299,fill:"#ffffff00",isFront:!1,label:"Allow"},{x1:300,x2:600,fill:n.palette.warning.light,isFront:!1,label:"Flag"},{x1:600,fill:n.palette.error.light,isFront:!1,label:"Block"}]})}const Pe=()=>({regularChartWrapper:{justifyContent:"center",alignItems:"center",width:"100%",height:500},smallChartWrapper:{justifyContent:"center",alignItems:"center",width:"100%",height:300}});function te(e){return r.jsx(P,{variant:"h6",fontWeight:"900",...e})}function ne(e){return r.jsx(P,{variant:"h6",fontWeight:"400",...e})}function hn(){const e=Pe();return r.jsxs(G,{sx:e.smallChartWrapper,children:[r.jsx(te,{children:"No data available for the selected period and brands"}),r.jsx(ne,{children:"Please select a different period or brand"})]})}function fn(){const e=Pe();return r.jsxs(G,{sx:e.smallChartWrapper,children:[r.jsx(te,{children:"Loading..."}),r.jsx(ne,{children:"Preparing your chart data"})]})}const xn={chartWrapper:{justifyContent:"center",alignItems:"center",width:"100%",height:500}};function gn({data:e,isLoading:t,filter:n}){return t?r.jsx(fn,{}):e.length?r.jsx(Me,{label:"Uniques",data:e,filter:n,sx:{...xn.chartWrapper,opacity:t?.4:1}}):r.jsx(hn,{})}function yn(e){const{brands:t,data:n,keyValue:a,defaultColor:o}=e,l=t.flatMap(({_raw:i})=>{var s,c;const u=n?.find(h=>h.brandUuid===i.brandUuid),m=(u?.interval??[]).map(h=>({date:+new Date(h.date),value:Number(h[a]||0)})).filter(h=>h.value>0);return{uuid:i.brandUuid,name:i.brandName,integrationType:Le(i.integrationType),color:i.integrationType==="hosted"&&(s=i.additionalData)!=null&&s.primaryColor?(c=i.additionalData)==null?void 0:c.primaryColor:o??st(i.brandUuid),chartData:m}});return Tt.chain(l).sortBy(i=>i.name).toArray().value()}const We={tableWrapper:{height:400,alignItems:"center",justifyContent:"center"}},vn=({data:e,isLoading:t})=>t?r.jsxs(G,{sx:We.tableWrapper,children:[r.jsx(te,{children:"Loading..."}),r.jsx(ne,{children:"Preparing your chart data"})]}):e!=null&&e.length?r.jsx(He,{component:we,children:r.jsxs(Xe,{children:[r.jsx(Ye,{children:r.jsxs(ke,{children:[r.jsx(E,{children:"Month"}),r.jsx(E,{children:"Brand"}),r.jsx(E,{children:"Integration Type"}),r.jsx(E,{align:"right",children:"Started"}),r.jsx(E,{align:"right",children:"Finished"}),r.jsx(E,{align:"right",children:"Total Cost"})]})}),r.jsx(Je,{children:e.map(n=>r.jsxs(ke,{children:[r.jsx(E,{children:new Date(n.month).toLocaleDateString(void 0,{month:"short",year:"numeric",timeZone:"UTC"})}),r.jsx(E,{children:n.brand}),r.jsx(E,{children:n.integrationType}),r.jsx(E,{align:"right",children:n.total}),r.jsx(E,{align:"right",children:n.finished}),r.jsx(E,{align:"right",children:n.totalCost})]},`${n.brand}-${n.month}`))})]})}):r.jsxs(G,{sx:We.tableWrapper,children:[r.jsx(te,{children:"No data available for the selected period and brands"}),r.jsx(ne,{children:"Please select a different period or brand"})]}),bn=({data:e,brands:t})=>e.flatMap(n=>{const a=t.find(o=>o.brandUuid===n.brandUuid);return!a||!n.interval?[]:n.interval.map(o=>({month:new Date(o.date).toISOString(),brand:a.brandName,integrationType:Le(a.integrationType),total:o.oneClickCreated,finished:o.oneClickSuccess,totalCost:o.totalCost}))});export{rn as BigNumber,ln as ErrorCodesChart,vn as MonthlyBillableSignupsTable,gn as OneClickOverTimeChart,Ge as PieChart,sn as ReasonCodesChart,mn as RiskScoreBarChart,pn as RiskScorePieChart,Me as SeriesChart,_e as SeriesChartLegend,nn as SeriesPercentageChart,ee as SimpleBarChart,Fe as SimpleLegend,bn as mapMonthlyBillableSignupsData,yn as mapTimeSeriesData};
|
1
|
+
"use strict";import{j as r}from"../../shared/jsx-runtime-DHlBLioN.mjs";import*as K from"react";import{useCallback as oe,useMemo as ie,createElement as ze,useState as Z,useRef as Ze,useEffect as je}from"react";import{Box as V,Stack as G,Typography as P,useTheme as W,Paper as we,TableContainer as He,Table as Xe,TableHead as Ye,TableRow as ke,TableCell as E,TableBody as Je}from"@mui/material";import{ResponsiveContainer as H,LineChart as Qe,CartesianGrid as se,XAxis as le,YAxis as ce,Label as de,Tooltip as ue,Legend as Oe,Line as et,AreaChart as tt,Area as nt,ComposedChart as rt,ReferenceLine as Se,ReferenceArea as Te,Bar as at,Sector as $e,PieChart as ot,Pie as it,Cell as st}from"recharts";import{b as Ce,c as Ae,u as lt}from"../../shared/uuidColor-Dw38-aYm.mjs";import X,{Decimal as pe}from"decimal.js";import{AnimatePresence as ct}from"framer-motion";import{u as dt}from"../../shared/useCopyToClipboard-BALOSYVW.mjs";import"qrcode";import{u as me}from"../../shared/usePrevious-DyvR1iCQ.mjs";import{a as ut,C as Re}from"../../shared/motions-BBPeWBPV.mjs";import{c as De,i as pt,_ as Y,s as mt,a as T,d as ht,e as ft,f as xt,h as gt,j as yt,k as vt,l as bt,m as jt,n as wt,o as kt,p as Ot,u as St,q as Tt}from"../../shared/index-C1wV5bJ6.mjs";import{u as $t}from"../../shared/useCounter-BV32zXDQ.mjs";import{k as Le}from"../../shared/formatKebabToPretty-Du43TgPC.mjs";const Ct=["ownerState"],At=["variants"],Rt=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function Dt(e){return Object.keys(e).length===0}function Lt(e){return typeof e=="string"&&e.charCodeAt(0)>96}function he(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const Nt=De(),Et=e=>e&&e.charAt(0).toLowerCase()+e.slice(1);function J({defaultTheme:e,theme:t,themeId:n}){return Dt(t)?e:t[n]||t}function _t(e){return e?(t,n)=>n[e]:null}function Q(e,t){let{ownerState:n}=t,a=Y(t,Ct);const i=typeof e=="function"?e(T({ownerState:n},a)):e;if(Array.isArray(i))return i.flatMap(s=>Q(s,T({ownerState:n},a)));if(i&&typeof i=="object"&&Array.isArray(i.variants)){const{variants:s=[]}=i;let o=Y(i,At);return s.forEach(l=>{let c=!0;typeof l.props=="function"?c=l.props(T({ownerState:n},a,n)):Object.keys(l.props).forEach(u=>{n?.[u]!==l.props[u]&&a[u]!==l.props[u]&&(c=!1)}),c&&(Array.isArray(o)||(o=[o]),o.push(typeof l.style=="function"?l.style(T({ownerState:n},a,n)):l.style))}),o}return i}function Mt(e={}){const{themeId:t,defaultTheme:n=Nt,rootShouldForwardProp:a=he,slotShouldForwardProp:i=he}=e,s=o=>ht(T({},o,{theme:J(T({},o,{defaultTheme:n,themeId:t}))}));return s.__mui_systemSx=!0,(o,l={})=>{pt(o,g=>g.filter(k=>!(k!=null&&k.__mui_systemSx)));const{name:c,slot:u,skipVariantsResolver:m,skipSx:h,overridesResolver:p=_t(Et(u))}=l,f=Y(l,Rt),S=m!==void 0?m:u&&u!=="Root"&&u!=="root"||!1,y=h||!1;let j,v=he;u==="Root"||u==="root"?v=a:u?v=i:Lt(o)&&(v=void 0);const b=mt(o,T({shouldForwardProp:v,label:j},f)),w=g=>typeof g=="function"&&g.__emotion_real!==g||ft(g)?k=>Q(g,T({},k,{theme:J({theme:k.theme,defaultTheme:n,themeId:t})})):g,C=(g,...k)=>{let N=w(g);const $=k?k.map(w):[];c&&p&&$.push(d=>{const x=J(T({},d,{defaultTheme:n,themeId:t}));if(!x.components||!x.components[c]||!x.components[c].styleOverrides)return null;const O=x.components[c].styleOverrides,I={};return Object.entries(O).forEach(([_,D])=>{I[_]=Q(D,T({},d,{theme:x}))}),p(d,I)}),c&&!S&&$.push(d=>{var x;const O=J(T({},d,{defaultTheme:n,themeId:t})),I=O==null||(x=O.components)==null||(x=x[c])==null?void 0:x.variants;return Q({variants:I},T({},d,{theme:O}))}),y||$.push(s);const R=$.length-k.length;if(Array.isArray(g)&&R>0){const d=new Array(R).fill("");N=[...g,...d],N.raw=[...g.raw,...d]}const A=b(N,...$);return o.muiName&&(A.muiName=o.muiName),A};return b.withConfig&&(C.withConfig=b.withConfig),C}}const It=Mt(),Ft=(e,t)=>e.filter(n=>t.includes(n)),U=(e,t,n)=>{const a=e.keys[0];Array.isArray(t)?t.forEach((i,s)=>{n((o,l)=>{s<=e.keys.length-1&&(s===0?Object.assign(o,l):o[e.up(e.keys[s])]=l)},i)}):t&&typeof t=="object"?(Object.keys(t).length>e.keys.length?e.keys:Ft(e.keys,Object.keys(t))).forEach(i=>{if(e.keys.indexOf(i)!==-1){const s=t[i];s!==void 0&&n((o,l)=>{a===i?Object.assign(o,l):o[e.up(i)]=l},s)}}):(typeof t=="number"||typeof t=="string")&&n((i,s)=>{Object.assign(i,s)},t)};function F(e){return e?`Level${e}`:""}function z(e){return e.unstable_level>0&&e.container}function Ne(e){return function(t){return`var(--Grid-${t}Spacing${F(e.unstable_level)})`}}function fe(e){return function(t){return e.unstable_level===0?`var(--Grid-${t}Spacing)`:`var(--Grid-${t}Spacing${F(e.unstable_level-1)})`}}function xe(e){return e.unstable_level===0?"var(--Grid-columns)":`var(--Grid-columns${F(e.unstable_level-1)})`}const Gt=({theme:e,ownerState:t})=>{const n=Ne(t),a={};return U(e.breakpoints,t.gridSize,(i,s)=>{let o={};s===!0&&(o={flexBasis:0,flexGrow:1,maxWidth:"100%"}),s==="auto"&&(o={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"}),typeof s=="number"&&(o={flexGrow:0,flexBasis:"auto",width:`calc(100% * ${s} / ${xe(t)}${z(t)?` + ${n("column")}`:""})`}),i(a,o)}),a},Pt=({theme:e,ownerState:t})=>{const n={};return U(e.breakpoints,t.gridOffset,(a,i)=>{let s={};i==="auto"&&(s={marginLeft:"auto"}),typeof i=="number"&&(s={marginLeft:i===0?"0px":`calc(100% * ${i} / ${xe(t)})`}),a(n,s)}),n},Wt=({theme:e,ownerState:t})=>{if(!t.container)return{};const n=z(t)?{[`--Grid-columns${F(t.unstable_level)}`]:xe(t)}:{"--Grid-columns":12};return U(e.breakpoints,t.columns,(a,i)=>{a(n,{[`--Grid-columns${F(t.unstable_level)}`]:i})}),n},Bt=({theme:e,ownerState:t})=>{if(!t.container)return{};const n=fe(t),a=z(t)?{[`--Grid-rowSpacing${F(t.unstable_level)}`]:n("row")}:{};return U(e.breakpoints,t.rowSpacing,(i,s)=>{var o;i(a,{[`--Grid-rowSpacing${F(t.unstable_level)}`]:typeof s=="string"?s:(o=e.spacing)==null?void 0:o.call(e,s)})}),a},Kt=({theme:e,ownerState:t})=>{if(!t.container)return{};const n=fe(t),a=z(t)?{[`--Grid-columnSpacing${F(t.unstable_level)}`]:n("column")}:{};return U(e.breakpoints,t.columnSpacing,(i,s)=>{var o;i(a,{[`--Grid-columnSpacing${F(t.unstable_level)}`]:typeof s=="string"?s:(o=e.spacing)==null?void 0:o.call(e,s)})}),a},Vt=({theme:e,ownerState:t})=>{if(!t.container)return{};const n={};return U(e.breakpoints,t.direction,(a,i)=>{a(n,{flexDirection:i})}),n},Ut=({ownerState:e})=>{const t=Ne(e),n=fe(e);return T({minWidth:0,boxSizing:"border-box"},e.container&&T({display:"flex",flexWrap:"wrap"},e.wrap&&e.wrap!=="wrap"&&{flexWrap:e.wrap},{margin:`calc(${t("row")} / -2) calc(${t("column")} / -2)`},e.disableEqualOverflow&&{margin:`calc(${t("row")} * -1) 0px 0px calc(${t("column")} * -1)`}),(!e.container||z(e))&&T({padding:`calc(${n("row")} / 2) calc(${n("column")} / 2)`},(e.disableEqualOverflow||e.parentDisableEqualOverflow)&&{padding:`${n("row")} 0px 0px ${n("column")}`}))},qt=e=>{const t=[];return Object.entries(e).forEach(([n,a])=>{a!==!1&&a!==void 0&&t.push(`grid-${n}-${String(a)}`)}),t},zt=(e,t="xs")=>{function n(a){return a===void 0?!1:typeof a=="string"&&!Number.isNaN(Number(a))||typeof a=="number"&&a>0}if(n(e))return[`spacing-${t}-${String(e)}`];if(typeof e=="object"&&!Array.isArray(e)){const a=[];return Object.entries(e).forEach(([i,s])=>{n(s)&&a.push(`spacing-${i}-${String(s)}`)}),a}return[]},Zt=e=>e===void 0?[]:typeof e=="object"?Object.entries(e).map(([t,n])=>`direction-${t}-${n}`):[`direction-xs-${String(e)}`],Ht=["className","children","columns","container","component","direction","wrap","spacing","rowSpacing","columnSpacing","disableEqualOverflow","unstable_level"],Xt=De(),Yt=It("div",{name:"MuiGrid",slot:"Root",overridesResolver:(e,t)=>t.root});function Jt(e){return bt({props:e,name:"MuiGrid",defaultTheme:Xt})}function Qt(e={}){const{createStyledComponent:t=Yt,useThemeProps:n=Jt,componentName:a="MuiGrid"}=e,i=K.createContext(void 0),s=(c,u)=>{const{container:m,direction:h,spacing:p,wrap:f,gridSize:S}=c,y={root:["root",m&&"container",f!=="wrap"&&`wrap-xs-${String(f)}`,...Zt(h),...qt(S),...m?zt(p,u.breakpoints.keys[0]):[]]};return jt(y,j=>wt(a,j),{})},o=t(Wt,Kt,Bt,Gt,Vt,Ut,Pt),l=K.forwardRef(function(c,u){var m,h,p,f,S,y,j,v;const b=xt(),w=n(c),C=gt(w),g=K.useContext(i),{className:k,children:N,columns:$=12,container:R=!1,component:A="div",direction:d="row",wrap:x="wrap",spacing:O=0,rowSpacing:I=O,columnSpacing:_=O,disableEqualOverflow:D,unstable_level:L=0}=C,re=Y(C,Ht);let q=D;L&&D!==void 0&&(q=c.disableEqualOverflow);const ge={},ye={},ve={};Object.entries(re).forEach(([M,B])=>{b.breakpoints.values[M]!==void 0?ge[M]=B:b.breakpoints.values[M.replace("Offset","")]!==void 0?ye[M.replace("Offset","")]=B:ve[M]=B});const Be=(m=c.columns)!=null?m:L?void 0:$,Ke=(h=c.spacing)!=null?h:L?void 0:O,Ve=(p=(f=c.rowSpacing)!=null?f:c.spacing)!=null?p:L?void 0:I,Ue=(S=(y=c.columnSpacing)!=null?y:c.spacing)!=null?S:L?void 0:_,be=T({},C,{level:L,columns:Be,container:R,direction:d,wrap:x,spacing:Ke,rowSpacing:Ve,columnSpacing:Ue,gridSize:ge,gridOffset:ye,disableEqualOverflow:(j=(v=q)!=null?v:g)!=null?j:!1,parentDisableEqualOverflow:g}),qe=s(be,b);let ae=r.jsx(o,T({ref:u,as:A,ownerState:be,className:yt(qe.root,k)},ve,{children:K.Children.map(N,M=>{if(K.isValidElement(M)&&vt(M,["Grid"])){var B;return K.cloneElement(M,{unstable_level:(B=M.props.unstable_level)!=null?B:L+1})}return M})}));return q!==void 0&&q!==(g??!1)&&(ae=r.jsx(i.Provider,{value:q,children:ae})),ae});return l.muiName="Grid",l}const Ee=Qt({createStyledComponent:kt("div",{name:"MuiGrid2",slot:"Root",overridesResolver:(e,t)=>t.root}),componentName:"MuiGrid2",useThemeProps:e=>Ot({props:e,name:"MuiGrid2"})});function en({entry:e,payload:t}){const n=oe(h=>{var p,f,S;return(S=(f=(p=h.payload)==null?void 0:p.data)==null?void 0:f.reduce)==null?void 0:S.call(f,(y,j)=>y+j.value,0)},[]),a=oe(h=>{const p=new pe(n(h)||0),f=t?.reduce((j,v)=>j+n(v),0)||0,S=new pe(f),y=Number(p.div(S).times(100).toFixed(2,pe.ROUND_DOWN));return isNaN(y)||!isFinite(y)?0:y},[n,t]),i=ie(()=>n(e),[e,n]),s=me(i),o=ie(()=>Number(a(e)),[e,a]),l=me(o),c=oe(h=>Math.floor(h).toLocaleString(),[]),u=dt({type:"text/plain"}),m=St();return r.jsxs(ut,{component:"li",direction:"row",spacing:1,sx:{color:e.color},layout:"position",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},children:[r.jsx(V,{sx:{width:"3px",height:"100%",backgroundColor:e.color,borderRadius:3}}),r.jsxs(G,{children:[r.jsxs(P,{component:"p",variant:"caption",children:[r.jsx(G,{component:"span",display:"inline-flex",mr:.5,children:r.jsx(Re,{from:s??0,to:i,map:c,children:"0"})}),r.jsxs(G,{component:"span",direction:"row",display:"inline-flex",children:["(",r.jsx(Re,{from:l??0,to:o,map:c,children:"0"}),"%)"]})]}),r.jsx(P,{variant:"body1",children:e.value}),e.payload.integrationType&&r.jsx(P,{variant:"body2",children:e.payload.integrationType}),e.payload.uuid&&r.jsxs(P,{variant:"body2",sx:{cursor:"pointer","&:hover":{textDecoration:"underline"}},onClick:()=>{u.copy(e.payload.uuid).catch(()=>{}),m.enqueueSnackbar("UUID copied to clipboard","success")},children:[e.payload.uuid.slice(0,5),"..."]})]})]})}function _e(e){const{payload:t}=e;return r.jsx(Ee,{container:!0,direction:"row",component:"ul",gap:2,sx:{mt:2,justifyContent:"flex-start",alignItem:"center",flexWrap:"wrap"},children:r.jsx(ct,{children:t?.map(n=>r.jsx(Ee,{children:r.jsx(en,{entry:n,payload:t})},`item-${n.value}`))})})}function Me(e){const t=W();return r.jsx(V,{sx:{width:"100%",height:"100%",...e.sx},children:r.jsx(H,{children:r.jsxs(Qe,{width:500,height:300,margin:{top:5,right:60,left:20,bottom:5},children:[r.jsx(se,{vertical:!1}),r.jsx(le,{dataKey:"date",type:"number",domain:["dataMin","dataMax"],tickFormatter:n=>Ce(n,{timeZone:e.filter.timezone,hour12:!1,hour:"numeric"}),allowDuplicatedCategory:!1,tickLine:!1,fontSize:12,tickMargin:12}),r.jsx(ce,{textAnchor:"end",dataKey:"value",tickLine:!1,tickFormatter:n=>Number(n).toLocaleString(),allowDecimals:!1,domain:[1,"dataMax"],children:e.label&&r.jsx(de,{value:e.label,angle:-90,position:"insideLeft",style:{textAnchor:"middle"}})}),r.jsx(ue,{cursor:{stroke:t.palette.neutral.main,strokeWidth:1},formatter:n=>Number(n).toLocaleString(),labelFormatter:n=>Ae(n,{timeZone:e.filter.timezone,hour12:!1})}),r.jsx(Oe,{content:r.jsx(_e,{})}),e.data.map(n=>ze(et,{uuid:n.uuid,integrationType:n.integrationType,key:n.uuid,name:n.name,dataKey:"value",data:n.chartData,type:"monotone",stroke:n.color,strokeWidth:2}))]})})})}const tn=(e,t)=>{const n=new Map;return e.forEach(a=>{a.chartData.forEach(i=>{const s=new Date(i.date).getTime().toString();if(!n.has(s)){const o={date:s,total:0,diff:0,totalKey:"",originalTotal:0};t.forEach(({key:l})=>{o[l]=0,o[`${l}_absolute`]=0}),n.set(s,o)}t.forEach(({key:o})=>{const l=n.get(s),c=i[o],u=typeof c=="string"?c.trim()===""?0:parseInt(c,10):typeof c=="number"?c:0;l[`${o}_absolute`]=u,l[o]=0})})}),Array.from(n.values()).map(a=>{var i;const s=(i=t.find(c=>c.isTotal))==null?void 0:i.key,o=t.filter(c=>!c.isTotal).map(c=>c.key);if(!s||o.length===0)return a;const l=a[`${s}_absolute`];return a.originalTotal=l,a.total=l,a[s]=100,o.forEach(c=>{const u=a[`${c}_absolute`],m=l>0?new X(u.toString()).div(l).mul(100).toFixed(2,X.ROUND_DOWN):"0.00";a[c]=parseFloat(m)}),{...a,totalKey:s}}).sort((a,i)=>parseInt(a.date)-parseInt(i.date))};function nn(e){const t=W(),n=ie(()=>e.data?tn(e.data,e.keyValues):[],[e.data,e.keyValues]);return r.jsx(V,{sx:{width:"100%",height:"100%",...e.sx},children:r.jsx(H,{width:"100%",height:"100%",children:r.jsxs(tt,{data:n,width:500,height:300,margin:{top:5,right:60,left:20,bottom:5},children:[r.jsx(se,{strokeDasharray:"3 3"}),r.jsx(le,{dataKey:"date",type:"number",domain:["dataMin","dataMax"],tickFormatter:a=>Ce(a,{timeZone:e.filter.timezone,hour12:!1,hour:"numeric"}),allowDuplicatedCategory:!1,tickLine:!1,fontSize:12,tickMargin:12}),r.jsx(ce,{textAnchor:"end",tickLine:!1,tickFormatter:a=>`${a.toFixed(2)}%`}),r.jsx(ue,{cursor:{stroke:t.palette.neutral.main,strokeWidth:1},labelFormatter:a=>Ae(a,{timeZone:e.filter.timezone,hour12:!1}),formatter:(a,i,s)=>{const o=s.payload.totalKey,l=s.dataKey,c=l===o,u=s.payload[`${l}_absolute`],m=s.payload.originalTotal,h=c?null:m===0?"0.00":new X(u.toString()).div(m).mul(100).toFixed(2,X.ROUND_DOWN);return[h?`${u.toLocaleString()} (${h}%)`:`${u.toLocaleString()} (TOTAL)`,i]}}),e.keyValues.sort((a,i)=>a.isTotal?-1:i.isTotal?1:0).map(a=>r.jsx(nt,{type:"monotone",dataKey:a.key,name:a.name,stroke:a.color,fill:a.color,strokeWidth:2,fillOpacity:.6},a.key))]})})})}function rn(e){const t=me(e.value),{ref:n}=$t({from:t??0,to:e.value,duration:1,map:e.map});return r.jsx(we,{sx:{p:3,flex:1,...e.sx},children:r.jsxs(G,{spacing:1,alignItems:"center",children:[r.jsx(P,{ref:n,variant:"h4",fontWeight:"bold",children:e.initialValue}),r.jsx(P,{color:"text.secondary",children:e.label})]})})}const Ie={margin:{top:5,right:30,left:20,bottom:5}},an={tickLine:!1,fontSize:12,tickMargin:12},on={textAnchor:"end",tickLine:!1};function ee({data:e,series:t,xAxis:n,yAxis:a,tooltip:i,bar:s,referenceLines:o,referenceAreas:l,sx:c}){const u=W(),m=p=>!p.isFront,h=p=>!!p.isFront;return r.jsx(V,{sx:{width:"100%",height:"100%",...c},children:r.jsx(H,{children:r.jsxs(rt,{data:e,...Ie,children:[r.jsx(se,{strokeDasharray:"3 3",vertical:!1}),r.jsx(le,{...an,...n}),r.jsx(ce,{...on,...a}),r.jsx(ue,{cursor:{stroke:u.palette.neutral.main,strokeWidth:1},...i}),o?.filter(m).map((p,f)=>r.jsx(Se,{...p},p.label??f)),l?.filter(m).map((p,f)=>r.jsx(Te,{...p},p.label??f)),t.map(p=>r.jsx(at,{name:p.key,dataKey:p.dataKey,fill:p.color,stackId:"stack",isAnimationActive:!1,...s},p.key)),o?.filter(h).map((p,f)=>r.jsx(Se,{...p},p.label??f)),l?.filter(h).map((p,f)=>r.jsx(Te,{...p},p.label??f))]})})})}function sn({data:e,threshold:t=100,sx:n}){const a=W(),i=Object.entries(e??{}).map(([o,l])=>({key:o,[o]:l})),s=i.map(({key:o})=>({key:o,dataKey:o,color:a.palette.error.light}));return r.jsx(ee,{sx:n,data:i,series:s,xAxis:{tickLine:!1,dataKey:"key"},yAxis:{tickLine:!1,domain:[0,`dataMax + ${t}`]},tooltip:{labelFormatter:o=>"Total"},referenceLines:[{y:t,stroke:a.palette.error.dark,strokeDasharray:"3 3",label:r.jsx(de,{value:"Unhealthy threshold",position:"insideBottomRight"}),isFront:!0}]})}function ln({data:e,threshold:t=100,sx:n}){const a=W(),i=Object.entries(e??{}).map(([o,l])=>({key:o,[o]:l})),s=i.map(({key:o})=>({key:o,dataKey:o,color:a.palette.warning.light}));return r.jsx(ee,{sx:n,data:i,series:s,xAxis:{tickLine:!1,dataKey:"key"},yAxis:{tickLine:!1,domain:[0,`dataMax + ${t}`]},tooltip:{labelFormatter:o=>"Total"},referenceLines:[{y:t,stroke:a.palette.error.dark,strokeDasharray:"3 3",label:r.jsx(de,{value:"Unhealthy threshold",position:"insideBottomRight"}),isFront:!0}]})}function Fe({payload:e=[],hiddenItems:t,onToggle:n,legendLabel:a}){return r.jsx(V,{sx:{display:"flex",justifyContent:"center",gap:"20px",paddingTop:"20px"},children:e.map((i,s)=>{const o=t.has(i.payload.name);return r.jsxs("div",{style:{display:"flex",alignItems:"center",cursor:"pointer",opacity:o?.4:1},onClick:()=>{n?.(i.payload)},children:[r.jsx("div",{style:{width:"12px",height:"12px",backgroundColor:i.color,marginRight:"8px",borderRadius:"2px"}}),r.jsx("span",{style:{color:i.color},children:a?`${a}: ${i.value}`:i.value})]},`legend-${s}`)})})}const cn=e=>{const t=Math.PI/180,{cx:n,cy:a,midAngle:i,innerRadius:s,outerRadius:o,startAngle:l,endAngle:c,fill:u,payload:m,percent:h,value:p,valueText:f,valuePercentage:S,needleVisible:y,customText:j,allActive:v}=e,b=Math.sin(-t*i),w=Math.cos(-t*i),C=n+(o+5)*w,g=a+(o+5)*b,k=n+(o+15)*w,N=a+(o+15)*b,$=k+(w>=0?1:-1)*22,R=N,A=w>=0?"start":"end",d=p.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0}),x=()=>y||v?null:r.jsx("text",{x:n,y:a,dy:8,textAnchor:"middle",fill:"#333",fontSize:14,children:m.name});return r.jsxs("g",{children:[x(),r.jsx($e,{cx:n,cy:a,innerRadius:s,outerRadius:o,startAngle:l,endAngle:c,fill:u}),r.jsx($e,{cx:n,cy:a,startAngle:l,endAngle:c,innerRadius:o+2,outerRadius:o+6,fill:u}),r.jsx("path",{d:`M${C},${g}L${k},${N}L${$},${R}`,stroke:u,fill:"none"}),r.jsx("circle",{cx:$,cy:R,r:2,fill:u,stroke:"none"}),r.jsx("text",{x:$+(w>=0?1:-1)*12,y:R,textAnchor:A,fill:"#333",fontSize:12,children:j||(f?`${f} ${d}`:d)}),S&&r.jsxs("text",{x:$+(w>=0?1:-1)*12,y:R,dy:16,textAnchor:A,fill:"#999",fontSize:11,children:[`${(h*100).toFixed(2)}%`," (",d,")"]})]})},dn=e=>{const{value:t,data:n,color:a,innerRadius:i,outerRadius:s,boxDimensions:o,legendDimensions:l,valueText:c}=e,u=Math.PI/180;let m=0;n.forEach(x=>{m+=x.value});const h=o?o.width/2:150,p=(o?o.height/2:200)-l.height/2,f=180*(1-Math.max(0,Math.min(1,t/m))),S=(Number(i)+2*Number(s))/3,y=Math.sin(-u*f),j=Math.cos(-u*f),v=5,b=h-v,w=p,C=b+v*y,g=w-v*j,k=b-v*y,N=w+v*j,$=b+S*j,R=w+S*y,A=t.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0}),d=c??A;return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:b,cy:w,r:v,fill:a,stroke:"none",style:{pointerEvents:"none"}},"needle-circle"),r.jsx("path",{d:`M${C} ${g}L${k} ${N} L${$} ${R} L${C} ${g}`,stroke:"none",fill:a,style:{pointerEvents:"none"}},"needle-path"),r.jsx("text",{x:b+v,y:w+26,textAnchor:"middle",fill:"#333",fontSize:12,children:d},"needle-value")]})},un=(e,t)=>({Allow:t.palette.success.main,Flag:t.palette.warning.main,Block:t.palette.error.main})[e]??t.palette.primary.main;function Ge({data:e,sx:t,legendLabel:n,legendToggle:a=!1,valueText:i="",valuePercentage:s=!0,pie:o,needleVisible:l=!1,needleValue:c,needleColor:u="#aaa",allActive:m=!1}){const{innerRadius:h=60,outerRadius:p=100}=o??{},f=W(),[S,y]=Z(void 0),[j,v]=Z(new Set),b=Ze(null),[w,C]=Z(null),[g,k]=Z(null),N=(d,x)=>{m||y(x)},$=()=>{m||y(void 0)},R=d=>{a&&d&&v(x=>{const O=new Set(x);return O.has(d.name)?O.delete(d.name):O.size<e.length-1&&O.add(d.name),O})},A=e.map((d,x)=>({...d,index:x,value:j.has(d.name)?0:d.value}));return je(()=>{const d=b.current;if(!d)return;const x=new ResizeObserver(I=>{var _;const D=(_=I[0])==null?void 0:_.contentRect;D&&C(D)});x.observe(d);const O=d.getBoundingClientRect();return C(O),()=>{x.disconnect()}},[]),je(()=>{var d;const x=(d=b.current)==null?void 0:d.querySelector(".recharts-legend-wrapper");if(!x){const _=setInterval(()=>{var D;const L=(D=b.current)==null?void 0:D.querySelector(".recharts-legend-wrapper");if(L){const re=L.getBoundingClientRect();k(re),clearInterval(_)}},100);return()=>{clearInterval(_)}}const O=new ResizeObserver(_=>{var D;const L=(D=_[0])==null?void 0:D.contentRect;L&&k(L)});O.observe(x);const I=x.getBoundingClientRect();return k(I),()=>{O.disconnect()}},[]),r.jsx(V,{ref:b,sx:{width:"100%",height:"100%","& g":{outline:"none"},...t},children:r.jsx(H,{children:r.jsxs(ot,{...Ie,children:[r.jsx(it,{data:A,nameKey:"name",dataKey:"value",innerRadius:h,outerRadius:p,activeIndex:m?A.filter(d=>d.value>0).map(d=>d.index):S,activeShape:d=>cn({...d,valueText:i,valuePercentage:s,needleVisible:l,allActive:m}),paddingAngle:0,onMouseEnter:N,onMouseLeave:$,...o,children:A.map(d=>r.jsx(st,{fill:d.color??un(d.name,f),opacity:j.has(d.name)?.5:1,stroke:"none"},d.name))}),r.jsx(Oe,{content:r.jsx(Fe,{legendLabel:n,hiddenItems:j,onToggle:R})}),l&&c!==void 0&&w&&g&&dn({data:A,value:c,color:u,innerRadius:h,outerRadius:p,boxDimensions:w,legendDimensions:g,valueText:i})]})})})}function pn({sx:e,data:t,score:n=200,legendLabel:a}){const i=W(),s=[{name:"Allow",customText:"0-299",value:t[0].value,color:i.palette.primary.main},{name:"Flag",customText:"300-599",value:t[1].value,color:i.palette.warning.main},{name:"Block",customText:"Over 600",value:t[2].value,color:i.palette.error.main}];return r.jsx(Ge,{data:s,legendToggle:!0,needleValue:n,legendLabel:a,allActive:!0,sx:e})}function mn({data:e,sx:t}){const n=W(),a=(s=>{const o={};return s.forEach(l=>{Object.entries(l).forEach(([c,u])=>{const m=parseInt(c);m<=1e3&&(o[m]=(o[m]||0)+u)})}),Array.from({length:1001},(l,c)=>({key:c.toString(),value:o[c]||0}))})(e),i=[{key:"Risk Score",dataKey:"value",color:n.palette.error.main}];return r.jsx(ee,{data:a,series:i,sx:t,yAxis:{label:{value:"Count",angle:-90,position:"insideLeft"},domain:[0,"dataMax + 10"]},xAxis:{domain:[0,"dataMax"],interval:"preserveStartEnd"},tooltip:{labelFormatter:()=>"Risk Score",formatter:(s,o,l)=>[s,l.payload.key]},referenceAreas:[{x1:0,x2:299,fill:"#ffffff00",isFront:!1,label:"Allow"},{x1:300,x2:600,fill:n.palette.warning.light,isFront:!1,label:"Flag"},{x1:600,fill:n.palette.error.light,isFront:!1,label:"Block"}]})}const Pe=()=>({regularChartWrapper:{justifyContent:"center",alignItems:"center",width:"100%",height:500},smallChartWrapper:{justifyContent:"center",alignItems:"center",width:"100%",height:300}});function te(e){return r.jsx(P,{variant:"h6",fontWeight:"900",...e})}function ne(e){return r.jsx(P,{variant:"h6",fontWeight:"400",...e})}function hn(){const e=Pe();return r.jsxs(G,{sx:e.smallChartWrapper,children:[r.jsx(te,{children:"No data available for the selected period and brands"}),r.jsx(ne,{children:"Please select a different period or brand"})]})}function fn(){const e=Pe();return r.jsxs(G,{sx:e.smallChartWrapper,children:[r.jsx(te,{children:"Loading..."}),r.jsx(ne,{children:"Preparing your chart data"})]})}const xn={chartWrapper:{justifyContent:"center",alignItems:"center",width:"100%",height:500}};function gn({data:e,isLoading:t,isFetching:n,isSuccess:a,filter:i}){return t?r.jsx(fn,{}):!e.length||!a?r.jsx(hn,{}):r.jsx(Me,{label:"Uniques",data:e,filter:i,sx:{...xn.chartWrapper,opacity:n?.4:1}})}function yn(e){const{brands:t,data:n,keyValue:a,defaultColor:i}=e,s=t.flatMap(({_raw:o})=>{var l,c;const u=n?.find(h=>h.brandUuid===o.brandUuid),m=(u?.interval??[]).map(h=>({date:+new Date(h.date),value:Number(h[a]||0)})).filter(h=>h.value>0);return{uuid:o.brandUuid,name:o.brandName,integrationType:Le(o.integrationType),color:o.integrationType==="hosted"&&(l=o.additionalData)!=null&&l.primaryColor?(c=o.additionalData)==null?void 0:c.primaryColor:i??lt(o.brandUuid),chartData:m}});return Tt.chain(s).sortBy(o=>o.name).toArray().value()}const We={tableWrapper:{height:400,alignItems:"center",justifyContent:"center"}},vn=({data:e,isLoading:t})=>t?r.jsxs(G,{sx:We.tableWrapper,children:[r.jsx(te,{children:"Loading..."}),r.jsx(ne,{children:"Preparing your chart data"})]}):e!=null&&e.length?r.jsx(He,{component:we,children:r.jsxs(Xe,{children:[r.jsx(Ye,{children:r.jsxs(ke,{children:[r.jsx(E,{children:"Month"}),r.jsx(E,{children:"Brand"}),r.jsx(E,{children:"Integration Type"}),r.jsx(E,{align:"right",children:"Started"}),r.jsx(E,{align:"right",children:"Finished"}),r.jsx(E,{align:"right",children:"Total Cost"})]})}),r.jsx(Je,{children:e.map(n=>r.jsxs(ke,{children:[r.jsx(E,{children:new Date(n.month).toLocaleDateString(void 0,{month:"short",year:"numeric",timeZone:"UTC"})}),r.jsx(E,{children:n.brand}),r.jsx(E,{children:n.integrationType}),r.jsx(E,{align:"right",children:n.total}),r.jsx(E,{align:"right",children:n.finished}),r.jsx(E,{align:"right",children:n.totalCost})]},`${n.brand}-${n.month}`))})]})}):r.jsxs(G,{sx:We.tableWrapper,children:[r.jsx(te,{children:"No data available for the selected period and brands"}),r.jsx(ne,{children:"Please select a different period or brand"})]}),bn=({data:e,brands:t})=>e.flatMap(n=>{const a=t.find(i=>i.brandUuid===n.brandUuid);return!a||!n.interval?[]:n.interval.map(i=>({month:new Date(i.date).toISOString(),brand:a.brandName,integrationType:Le(a.integrationType),total:i.oneClickCreated,finished:i.oneClickSuccess,totalCost:i.totalCost}))});export{rn as BigNumber,sn as ErrorCodesChart,vn as MonthlyBillableSignupsTable,gn as OneClickOverTimeChart,Ge as PieChart,ln as ReasonCodesChart,mn as RiskScoreBarChart,pn as RiskScorePieChart,Me as SeriesChart,_e as SeriesChartLegend,nn as SeriesPercentageChart,ee as SimpleBarChart,Fe as SimpleLegend,bn as mapMonthlyBillableSignupsData,yn as mapTimeSeriesData};
|
@@ -4,9 +4,11 @@ import { BrandFilter } from './OneClickTimeSeriesDataMapper';
|
|
4
4
|
export interface OneClickOverTimeChartProps {
|
5
5
|
data: SeriesChartData[];
|
6
6
|
isLoading: boolean;
|
7
|
+
isSuccess: boolean;
|
8
|
+
isFetching: boolean;
|
7
9
|
filter: {
|
8
10
|
timezone: string;
|
9
11
|
brands: BrandFilter[];
|
10
12
|
};
|
11
13
|
}
|
12
|
-
export declare function OneClickOverTimeChart({ data, isLoading, filter, }: Readonly<OneClickOverTimeChartProps>): React.ReactNode;
|
14
|
+
export declare function OneClickOverTimeChart({ data, isLoading, isFetching, isSuccess, filter, }: Readonly<OneClickOverTimeChartProps>): React.ReactNode;
|
package/package.json
CHANGED