@undp/data-viz 2.3.19 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/BarGraph.cjs +1 -1
  2. package/dist/BarGraph.cjs.map +1 -1
  3. package/dist/BarGraph.js +1360 -1363
  4. package/dist/BarGraph.js.map +1 -1
  5. package/dist/BeeSwarmChart.cjs +1 -1
  6. package/dist/BeeSwarmChart.cjs.map +1 -1
  7. package/dist/BeeSwarmChart.js +302 -305
  8. package/dist/BeeSwarmChart.js.map +1 -1
  9. package/dist/BiVariateChoroplethMap.cjs +1 -1
  10. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  11. package/dist/BiVariateChoroplethMap.js +4 -4
  12. package/dist/BiVariateChoroplethMap.js.map +1 -1
  13. package/dist/BulletChart.cjs +1 -1
  14. package/dist/BulletChart.cjs.map +1 -1
  15. package/dist/BulletChart.js +591 -594
  16. package/dist/BulletChart.js.map +1 -1
  17. package/dist/ChoroplethMap.cjs +1 -1
  18. package/dist/ChoroplethMap.cjs.map +1 -1
  19. package/dist/ChoroplethMap.js +4 -4
  20. package/dist/ChoroplethMap.js.map +1 -1
  21. package/dist/CirclePackingGraph.cjs +1 -1
  22. package/dist/CirclePackingGraph.js +1 -1
  23. package/dist/DotDensityMap.cjs +1 -1
  24. package/dist/DotDensityMap.cjs.map +1 -1
  25. package/dist/DotDensityMap.js +255 -258
  26. package/dist/DotDensityMap.js.map +1 -1
  27. package/dist/DumbbellChart.cjs +1 -1
  28. package/dist/DumbbellChart.cjs.map +1 -1
  29. package/dist/DumbbellChart.js +553 -556
  30. package/dist/DumbbellChart.js.map +1 -1
  31. package/dist/{GraphEl-Dorm_qQE.js → GraphEl-B73N4RIA.js} +2 -2
  32. package/dist/{GraphEl-Dorm_qQE.js.map → GraphEl-B73N4RIA.js.map} +1 -1
  33. package/dist/{GraphEl-D8WRC8-j.cjs → GraphEl-Lt1og0C-.cjs} +2 -2
  34. package/dist/{GraphEl-D8WRC8-j.cjs.map → GraphEl-Lt1og0C-.cjs.map} +1 -1
  35. package/dist/GriddedGraphs.cjs +1 -1
  36. package/dist/GriddedGraphs.js +1 -1
  37. package/dist/Histogram.cjs +1 -1
  38. package/dist/Histogram.js +1 -1
  39. package/dist/HybridMap.cjs +1 -1
  40. package/dist/HybridMap.cjs.map +1 -1
  41. package/dist/HybridMap.js +310 -313
  42. package/dist/HybridMap.js.map +1 -1
  43. package/dist/MultiLineAltChart.cjs +1 -1
  44. package/dist/MultiLineAltChart.cjs.map +1 -1
  45. package/dist/MultiLineAltChart.js +269 -272
  46. package/dist/MultiLineAltChart.js.map +1 -1
  47. package/dist/MultiLineChart.cjs +1 -1
  48. package/dist/MultiLineChart.cjs.map +1 -1
  49. package/dist/MultiLineChart.js +319 -322
  50. package/dist/MultiLineChart.js.map +1 -1
  51. package/dist/RadarChart.cjs +1 -1
  52. package/dist/RadarChart.cjs.map +1 -1
  53. package/dist/RadarChart.js +3 -3
  54. package/dist/RadarChart.js.map +1 -1
  55. package/dist/SankeyChart.cjs +1 -1
  56. package/dist/SankeyChart.cjs.map +1 -1
  57. package/dist/SankeyChart.js +274 -280
  58. package/dist/SankeyChart.js.map +1 -1
  59. package/dist/ScatterPlot.cjs +1 -1
  60. package/dist/ScatterPlot.cjs.map +1 -1
  61. package/dist/ScatterPlot.js +341 -344
  62. package/dist/ScatterPlot.js.map +1 -1
  63. package/dist/SingleGraphDashboard.cjs +1 -1
  64. package/dist/SingleGraphDashboard.js +1 -1
  65. package/dist/SlopeChart.cjs +1 -1
  66. package/dist/SlopeChart.cjs.map +1 -1
  67. package/dist/SlopeChart.js +251 -254
  68. package/dist/SlopeChart.js.map +1 -1
  69. package/dist/StripChart.cjs +1 -1
  70. package/dist/StripChart.cjs.map +1 -1
  71. package/dist/StripChart.js +292 -295
  72. package/dist/StripChart.js.map +1 -1
  73. package/dist/ThreeDGlobe.cjs +1 -1
  74. package/dist/ThreeDGlobe.cjs.map +1 -1
  75. package/dist/ThreeDGlobe.js +3 -3
  76. package/dist/ThreeDGlobe.js.map +1 -1
  77. package/dist/TreeMapGraph.cjs +1 -1
  78. package/dist/TreeMapGraph.cjs.map +1 -1
  79. package/dist/TreeMapGraph.js +196 -199
  80. package/dist/TreeMapGraph.js.map +1 -1
  81. package/dist/WaterfallChart.cjs +1 -1
  82. package/dist/WaterfallChart.cjs.map +1 -1
  83. package/dist/WaterfallChart.js +274 -277
  84. package/dist/WaterfallChart.js.map +1 -1
  85. package/dist/index-B0Awa_de.js +377 -0
  86. package/dist/index-B0Awa_de.js.map +1 -0
  87. package/dist/index-CP8cmNzt.cjs +2 -0
  88. package/dist/index-CP8cmNzt.cjs.map +1 -0
  89. package/dist/index.cjs +1 -1
  90. package/dist/index.js +1 -1
  91. package/package.json +1 -1
  92. package/dist/index-Bdo_HXb_.cjs +0 -2
  93. package/dist/index-Bdo_HXb_.cjs.map +0 -1
  94. package/dist/index-CGrBpeUa.js +0 -380
  95. package/dist/index-CGrBpeUa.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index-CHPV5EwG-D4pAp7u0.cjs"),p=require("react"),ze=require("./index-DQA8q5sC.cjs"),We=require("./index-Cno4Q0YE.cjs"),Ze=require("./Spinner-WHzzloYQ.cjs"),lt=require("./Typography-BqmyF1gP.cjs"),Je=require("./numberFormattingFunction-Cn9R7CM9.cjs"),Ke=require("./Tooltip-Hr46paWP.cjs"),v=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),Qe=require("./getTextColorBasedOnBgColor-nqY-bsM_.cjs"),je=require("./Colors.cjs"),_e=require("./Axis-BTaS9oPQ.cjs"),et=require("./ReferenceLine-CpU4G01Y.cjs"),at=require("./YTicksAndGridLines-DFjm8RCc.cjs"),ct=require("./XTicksAndGridLines-C5DuC5oY.cjs"),tt=require("./DetailsModal-jmmKRMRM.cjs"),it=require("./pow-BnyPO-NX.cjs"),ot=require("./linear-CgUCbw9F.cjs"),se=require("./y-QcCbqrzx.cjs"),Ye=require("./uniqBy-O05lp2S5.cjs"),ut=require("./GraphHeader.cjs"),He=require("./GraphContainer-Cul9b74X.cjs"),dt=require("./EmptyState-CFmiFPHz.cjs"),xt=require("./ColorLegendWithMouseOver.cjs"),mt=require("./GraphFooter.cjs");function ft(t){const e=n.compilerRuntimeExports.c(28),{data:i,circleColors:j,showTicks:re,width:S,height:w,colorDomain:G,topMargin:C,bottomMargin:_,leftMargin:ee,rightMargin:le,suffix:h,prefix:A,showLabels:T,tooltip:P,onSeriesMouseOver:ae,refValues:D,selectedColor:g,startFromZero:L,radius:m,maxRadiusValue:X,maxValue:Y,minValue:H,highlightedDataPoints:ge,onSeriesMouseClick:fe,resetSelectionOnDoubleClick:z,detailsOnClick:V,styles:R,classNames:u,noOfTicks:y,dimmedOpacity:ce,precision:ue,customLayers:pe,hideAxisLine:ve,locale:ye}=t,de=C===void 0?25:C,I=_===void 0?10:_,te=ee===void 0?100:ee,ie=le===void 0?40:le,xe=p.useRef(null),[me,W]=p.useState(void 0),[F,a]=p.useState(void 0),[c,he]=p.useState(null),[oe,Z]=p.useState(void 0),[$,J]=p.useState(void 0);let K;e[0]!==I||e[1]!==te||e[2]!==ie||e[3]!==de?(K={top:de,bottom:I,left:te,right:ie},e[0]=I,e[1]=te,e[2]=ie,e[3]=de,e[4]=K):K=e[4];const d=K,x=S-d.left-d.right,ne=w-d.top-d.bottom,q=i.filter(Vt).length===0?i:We.orderBy(i.filter(Tt),"radius","desc");let Q;e[5]!==i||e[6]!==Y||e[7]!==L?(Q=v.checkIfNullOrUndefined(Y)?Math.max(...i.filter(At).map(qt))<0&&!L?0:Math.max(...i.filter($t).map(Lt)):Y,e[5]=i,e[6]=Y,e[7]=L,e[8]=Q):Q=e[8];const U=Q;let B;e[9]!==i||e[10]!==H||e[11]!==L?(B=v.checkIfNullOrUndefined(H)?Math.min(...i.filter(Dt).map(wt))>=0&&!L?0:Math.min(...i.filter(St).map(Nt)):H,e[9]=i,e[10]=H,e[11]=L,e[12]=B):B=e[12];const f=B,r=i.filter(Ct).length!==i.length?it.sqrt().domain([0,v.checkIfNullOrUndefined(X)?Math.max(...i.map(kt).filter(Ot)):X]).range([.25,m]).nice():void 0,l=ot.linear().domain([f,U]).range([ne,0]).nice(),b=l.ticks(y);p.useEffect(()=>{const s=q.map(Rt).filter(Et);se.forceSimulation(s).force("y",se.forceY(o=>l(o.position)).strength(5)).force("x",se.forceX(o=>x/2).strength(1)).force("collide",se.forceCollide(o=>r?r(o.radius||0)+1:m+1)).force("charge",se.forceManyBody().strength(-15)).alphaDecay(.05).tick(1e4).on("tick",()=>{he(s)}).on("end",()=>{he(s)})},[i,m,ne,x,f,U,q,l,r]);const M=c?n.jsxRuntimeExports.jsx("svg",{width:`${S}px`,height:`${w}px`,viewBox:`0 0 ${S} ${w}`,direction:"ltr",ref:xe,children:n.jsxRuntimeExports.jsxs("g",{transform:`translate(${d.left},${d.top})`,children:[re?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(_e.Axis,{hideAxisLine:ve,y1:l(f<0?0:f),y2:l(f<0?0:f),x1:0-d.left,x2:x+d.right,label:re?Je.numberFormattingFunction(f<0?0:f,void 0,ue,A,h,ye):void 0,labelPos:{x:0-d.left,y:l(f<0?0:f),dx:0,dy:U<0?"1em":-5},classNames:{axis:u?.xAxis?.axis,label:u?.yAxis?.labels},styles:{axis:R?.xAxis?.axis,label:R?.yAxis?.labels}}),n.jsxRuntimeExports.jsx(at.YTicksAndGridLines,{values:b.filter(Mt),y:b.filter(bt).map(s=>l(s)),x1:0-d.left,x2:x+d.right,styles:{gridLines:R?.yAxis?.gridLines,labels:R?.yAxis?.labels},classNames:{gridLines:u?.yAxis?.gridLines,labels:u?.yAxis?.labels},suffix:h,prefix:A,labelType:"secondary",showGridLines:!0,labelPos:"vertical",precision:ue,locale:ye})]}):null,pe.filter(jt).map(yt),c.map(s=>n.jsxRuntimeExports.jsxs("g",{className:"undp-viz-g-with-hover",transform:`translate(${s.x},${s.y})`,opacity:g?s.color&&j[G.indexOf(s.color)]===g?1:ce:ge.length!==0?ge.indexOf(s.label)!==-1?.85:ce:.85,onMouseEnter:o=>{W(s),J(o.clientY),Z(o.clientX),ae?.(s)},onMouseMove:o=>{W(s),J(o.clientY),Z(o.clientX)},onClick:()=>{(fe||V)&&(ze.isEqual(F,s)&&z?(a(void 0),fe?.(void 0)):(a(s),fe?.(s)))},onMouseLeave:()=>{W(void 0),Z(void 0),J(void 0),ae?.(void 0)},children:[n.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,r:r?r(s.radius||0):m,fill:i.filter(vt).length===0?j[0]:s.color?j[G.indexOf(s.color)]:je.Colors.gray}),(r?r(s.radius||0):m)>10&&T?n.jsxRuntimeExports.jsx("g",{children:n.jsxRuntimeExports.jsx("foreignObject",{y:0-(r?r(s.radius||0):m),x:0-(r?r(s.radius||0):m),width:2*(r?r(s.radius||0):m),height:2*(r?r(s.radius||0):m),children:n.jsxRuntimeExports.jsx("div",{className:"flex flex-col justify-center items-center h-inherit py-0 px-1.5",children:T?n.jsxRuntimeExports.jsx("p",{className:n.mo("text-center leading-none m-0",u?.graphObjectValues),style:{fontSize:`${Math.min(Math.max(Math.round((r?r(s.radius||0):m)/4),10),Math.max(Math.round((r?r(s.radius||0):m)*12/`${s.label}`.length),10),20)}px`,hyphens:"auto",color:Qe.getTextColorBasedOnBgColor(i.filter(gt).length===0?j[0]:s.color?j[G.indexOf(s.color)]:je.Colors.gray),...R?.graphObjectValues||{}},children:s.label}):null})})}):null]},s.label)),D?n.jsxRuntimeExports.jsx(n.jsxRuntimeExports.Fragment,{children:D.map((s,o)=>n.jsxRuntimeExports.jsx(et.RefLineY,{text:s.text,color:s.color,y:l(s.value),x1:0-d.left,x2:x+d.right,classNames:s.classNames,styles:s.styles,isInView:!0},o))}):null,pe.filter(ht).map(pt)]})}):n.jsxRuntimeExports.jsx("div",{style:{width:`${S}px`,height:`${w}px`},children:n.jsxRuntimeExports.jsx("div",{className:"flex m-auto items-center justify-center p-0 leading-none text-base h-40",children:n.jsxRuntimeExports.jsx(Ze.w,{})})});let N;e[13]!==u?.tooltip||e[14]!==oe||e[15]!==$||e[16]!==me||e[17]!==R?.tooltip||e[18]!==P?(N=me&&P&&oe&&$?n.jsxRuntimeExports.jsx(Ke.Tooltip,{data:me,body:P,xPos:oe,yPos:$,backgroundStyle:R?.tooltip,className:u?.tooltip}):null,e[13]=u?.tooltip,e[14]=oe,e[15]=$,e[16]=me,e[17]=R?.tooltip,e[18]=P,e[19]=N):N=e[19];let O;e[20]!==u?.modal||e[21]!==V||e[22]!==F?(O=V&&F!==void 0?n.jsxRuntimeExports.jsx(tt.DetailsModal,{body:V,data:F,setData:a,className:u?.modal}):null,e[20]=u?.modal,e[21]=V,e[22]=F,e[23]=O):O=e[23];let k;return e[24]!==M||e[25]!==N||e[26]!==O?(k=n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[M,N,O]}),e[24]=M,e[25]=N,e[26]=O,e[27]=k):k=e[27],k}function pt(t){return t.layer}function ht(t){return t.position==="after"}function gt(t){return t.color}function vt(t){return t.color}function yt(t){return t.layer}function jt(t){return t.position==="before"}function bt(t){return t!==0}function Mt(t){return t!==0}function Et(t){return t.position}function Rt(t){return{...t,...t.data&&{data:{...t.data}}}}function Ot(t){return t!=null}function kt(t){return t.radius}function Ct(t){return t.radius===void 0||t.radius===null}function Nt(t){return t.position}function St(t){return!v.checkIfNullOrUndefined(t.position)}function wt(t){return t.position}function Dt(t){return!v.checkIfNullOrUndefined(t.position)}function Lt(t){return t.position}function $t(t){return!v.checkIfNullOrUndefined(t.position)}function qt(t){return t.position}function At(t){return!v.checkIfNullOrUndefined(t.position)}function Tt(t){return!v.checkIfNullOrUndefined(t.radius)}function Vt(t){return!v.checkIfNullOrUndefined(t.radius)}function It(t){const e=n.compilerRuntimeExports.c(28),{data:i,circleColors:j,showTicks:re,width:S,height:w,colorDomain:G,topMargin:C,bottomMargin:_,leftMargin:ee,rightMargin:le,showLabels:h,tooltip:A,onSeriesMouseOver:T,refValues:P,selectedColor:ae,startFromZero:D,radius:g,maxRadiusValue:L,maxValue:m,minValue:X,highlightedDataPoints:Y,onSeriesMouseClick:H,rtl:ge,resetSelectionOnDoubleClick:fe,detailsOnClick:z,suffix:V,prefix:R,styles:u,classNames:y,noOfTicks:ce,dimmedOpacity:ue,precision:pe,customLayers:ve,hideAxisLine:ye,locale:de}=t,I=C===void 0?25:C,te=_===void 0?10:_,ie=ee===void 0?10:ee,xe=le===void 0?10:le,me=p.useRef(null),[W,F]=p.useState(void 0),[a,c]=p.useState(void 0),[he,oe]=p.useState(null),[Z,$]=p.useState(void 0),[J,K]=p.useState(void 0);let d;e[0]!==te||e[1]!==ie||e[2]!==xe||e[3]!==I?(d={top:I,bottom:te,left:ie,right:xe},e[0]=te,e[1]=ie,e[2]=xe,e[3]=I,e[4]=d):d=e[4];const x=d,ne=S-x.left-x.right,q=w-x.top-x.bottom,Q=i.filter(li).length===0?i:We.orderBy(i.filter(ri),"radius","desc");let U;e[5]!==i||e[6]!==m||e[7]!==D?(U=v.checkIfNullOrUndefined(m)?Math.max(...i.filter(si).map(ni))<0&&!D?0:Math.max(...i.filter(oi).map(ii)):m,e[5]=i,e[6]=m,e[7]=D,e[8]=U):U=e[8];const B=U;let f;e[9]!==i||e[10]!==X||e[11]!==D?(f=v.checkIfNullOrUndefined(X)?Math.min(...i.filter(ti).map(ei))>=0&&!D?0:Math.min(...i.filter(_t).map(Qt)):X,e[9]=i,e[10]=X,e[11]=D,e[12]=f):f=e[12];const r=f,l=i.filter(Kt).length!==i.length?it.sqrt().domain([0,v.checkIfNullOrUndefined(L)?Math.max(...i.map(Jt).filter(Zt)):L]).range([.25,g]).nice():void 0,b=ot.linear().domain([r,B]).range([0,ne]).nice(),M=b.ticks(ce);p.useEffect(()=>{const o=Q.map(Wt).filter(zt);se.forceSimulation(o).force("x",se.forceX(E=>b(E.position)).strength(5)).force("y",se.forceY(E=>q/2).strength(1)).force("collide",se.forceCollide(E=>l?l(E.radius||0)+1:g+1)).force("charge",se.forceManyBody().strength(-15)).alphaDecay(.05).tick(1e4).on("tick",()=>{oe(o)}).on("end",()=>{oe(o)})},[i,g,q,ne,r,B,Q,b,l]);const N=he?n.jsxRuntimeExports.jsx("svg",{width:`${S}px`,height:`${w}px`,viewBox:`0 0 ${S} ${w}`,direction:"ltr",ref:me,children:n.jsxRuntimeExports.jsxs("g",{transform:`translate(${x.left},${x.top})`,children:[re?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(_e.Axis,{hideAxisLine:ye,x1:b(r<0?0:r),x2:b(r<0?0:r),y1:0-x.top,y2:q+x.bottom,label:re?Je.numberFormattingFunction(r<0?0:r,void 0,pe,R,V,de):void 0,labelPos:{x:b(r<0?0:r),y:0-I,dy:"0.75em",dx:3},classNames:{axis:y?.xAxis?.axis,label:y?.yAxis?.labels},styles:{axis:u?.xAxis?.axis,label:u?.yAxis?.labels}}),n.jsxRuntimeExports.jsx(ct.XTicksAndGridLines,{values:M.filter(Ht),x:M.filter(Yt).map(o=>b(o)),y1:0-I,y2:q+x.bottom,styles:{gridLines:u?.xAxis?.gridLines,labels:u?.xAxis?.labels},classNames:{gridLines:y?.xAxis?.gridLines,labels:y?.xAxis?.labels},suffix:V,prefix:R,labelType:"secondary",showGridLines:!0,precision:pe,locale:de})]}):null,ve.filter(Xt).map(Pt),he.map(o=>n.jsxRuntimeExports.jsxs("g",{className:"undp-viz-g-with-hover",transform:`translate(${o.x},${o.y})`,opacity:ae?o.color&&j[G.indexOf(o.color)]===ae?1:ue:Y.length!==0?Y.indexOf(o.label)!==-1?.85:ue:.85,onMouseEnter:E=>{F(o),K(E.clientY),$(E.clientX),T?.(o)},onMouseMove:E=>{F(o),K(E.clientY),$(E.clientX)},onClick:()=>{(H||z)&&(ze.isEqual(a,o)&&fe?(c(void 0),H?.(void 0)):(c(o),H?.(o)))},onMouseLeave:()=>{F(void 0),$(void 0),K(void 0),T?.(void 0)},children:[n.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,fill:i.filter(Gt).length===0?j[0]:o.color?j[G.indexOf(o.color)]:je.Colors.gray,radius:l?l(o.radius||0):g}),(l?l(o.radius||0):g)>10&&h?n.jsxRuntimeExports.jsx("g",{children:n.jsxRuntimeExports.jsx("foreignObject",{y:0-(l?l(o.radius||0):g),x:0-(l?l(o.radius||0):g),width:2*(l?l(o.radius||0):g),height:2*(l?l(o.radius||0):g),children:n.jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-1.5",children:h?n.jsxRuntimeExports.jsx(lt._,{className:n.mo("text-center leading-none m-0",y?.graphObjectValues),marginBottom:"none",style:{fontSize:`${Math.min(Math.max(Math.round((l?l(o.radius||0):g)/4),10),Math.max(Math.round((l?l(o.radius||0):g)*12/`${o.label}`.length),10),20)}px`,color:Qe.getTextColorBasedOnBgColor(i.filter(Bt).length===0?j[0]:o.color?j[G.indexOf(o.color)]:je.Colors.gray),hyphens:"auto",...u?.graphObjectValues||{}},children:o.label}):null})})}):null]},o.label)),P?n.jsxRuntimeExports.jsx(n.jsxRuntimeExports.Fragment,{children:P.map((o,E)=>n.jsxRuntimeExports.jsx(et.RefLineX,{text:o.text,color:o.color,x:b(o.value),y1:0-x.top,y2:q+x.bottom,textSide:b(o.value)>ne*.75||ge?"left":"right",classNames:o.classNames,styles:o.styles,isInView:!0},E))}):null,ve.filter(Ut).map(Ft)]})}):n.jsxRuntimeExports.jsx("div",{style:{width:`${S}px`,height:`${w}px`},children:n.jsxRuntimeExports.jsx("div",{className:"flex m-auto items-center justify-center p-0 leading-none text-base h-40",children:n.jsxRuntimeExports.jsx(Ze.w,{})})});let O;e[13]!==y?.tooltip||e[14]!==Z||e[15]!==J||e[16]!==W||e[17]!==u?.tooltip||e[18]!==A?(O=W&&A&&Z&&J?n.jsxRuntimeExports.jsx(Ke.Tooltip,{data:W,body:A,xPos:Z,yPos:J,backgroundStyle:u?.tooltip,className:y?.tooltip}):null,e[13]=y?.tooltip,e[14]=Z,e[15]=J,e[16]=W,e[17]=u?.tooltip,e[18]=A,e[19]=O):O=e[19];let k;e[20]!==y?.modal||e[21]!==z||e[22]!==a?(k=z&&a!==void 0?n.jsxRuntimeExports.jsx(tt.DetailsModal,{body:z,data:a,setData:c,className:y?.modal}):null,e[20]=y?.modal,e[21]=z,e[22]=a,e[23]=k):k=e[23];let s;return e[24]!==N||e[25]!==O||e[26]!==k?(s=n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[N,O,k]}),e[24]=N,e[25]=O,e[26]=k,e[27]=s):s=e[27],s}function Ft(t){return t.layer}function Ut(t){return t.position==="after"}function Bt(t){return t.color}function Gt(t){return t.color}function Pt(t){return t.layer}function Xt(t){return t.position==="before"}function Yt(t){return t!==0}function Ht(t){return t!==0}function zt(t){return t.position}function Wt(t){return{...t,...t.data&&{data:{...t.data}}}}function Zt(t){return t!=null}function Jt(t){return t.radius}function Kt(t){return t.radius===void 0||t.radius===null}function Qt(t){return t.position}function _t(t){return!v.checkIfNullOrUndefined(t.position)}function ei(t){return t.position}function ti(t){return!v.checkIfNullOrUndefined(t.position)}function ii(t){return t.position}function oi(t){return!v.checkIfNullOrUndefined(t.position)}function ni(t){return t.position}function si(t){return!v.checkIfNullOrUndefined(t.position)}function ri(t){return!v.checkIfNullOrUndefined(t.radius)}function li(t){return!v.checkIfNullOrUndefined(t.radius)}function ai(t){const e=n.compilerRuntimeExports.c(93),{data:i,graphTitle:j,topMargin:re,bottomMargin:S,leftMargin:w,rightMargin:G,colors:C,sources:_,graphDescription:ee,height:le,width:h,footNote:A,colorDomain:T,colorLegendTitle:P,padding:ae,relativeHeight:D,tooltip:g,onSeriesMouseOver:L,refValues:m,showColorScale:X,graphID:Y,radius:H,showLabels:ge,showTicks:fe,maxRadiusValue:z,maxValue:V,minValue:R,highlightedDataPoints:u,onSeriesMouseClick:y,ariaLabel:ce,backgroundColor:ue,graphDownload:pe,dataDownload:ve,language:ye,showNAColor:de,minHeight:I,theme:te,resetSelectionOnDoubleClick:ie,detailsOnClick:xe,orientation:me,suffix:W,prefix:F,styles:a,classNames:c,noOfTicks:he,dimmedOpacity:oe,precision:Z,customLayers:$,hideAxisLine:J,locale:K}=t,d=H===void 0?5:H,x=ge===void 0?!0:ge,ne=fe===void 0?!0:fe;let q;e[0]!==u?(q=u===void 0?[]:u,e[0]=u,e[1]=q):q=e[1];const Q=q,U=ue===void 0?!1:ue,B=pe===void 0?!1:pe,f=ve===void 0?!1:ve,r=ye===void 0?"en":ye,l=de===void 0?!0:de,b=I===void 0?0:I,M=te===void 0?"light":te,N=ie===void 0?!0:ie,O=me===void 0?"vertical":me,k=W===void 0?"":W,s=F===void 0?"":F,o=he===void 0?5:he,E=oe===void 0?.3:oe,$e=Z===void 0?2:Z;let Ce;e[2]!==$?(Ce=$===void 0?[]:$,e[2]=$,e[3]=Ce):Ce=e[3];const qe=Ce,Ae=J===void 0?!1:J,Te=K===void 0?"en":K,[Ne,nt]=p.useState(0),[Se,st]=p.useState(0),[Ve,rt]=p.useState(void 0),Ie=p.useRef(null),Ge=p.useRef(null),Fe=O==="horizontal"?It:ft;let we,De;e[4]===Symbol.for("react.memo_cache_sentinel")?(we=()=>{const Pe=new ResizeObserver(Xe=>{nt(Xe[0].target.clientWidth||620),st(Xe[0].target.clientHeight||480)});return Ie.current&&Pe.observe(Ie.current),()=>Pe.disconnect()},De=[],e[4]=we,e[5]=De):(we=e[4],De=e[5]),p.useEffect(we,De);const Ue=c?.graphContainer,Be=a?.graphContainer;let be;e[6]!==c?.description||e[7]!==c?.title||e[8]!==i||e[9]!==f||e[10]!==ee||e[11]!==B||e[12]!==j||e[13]!==a?.description||e[14]!==a?.title||e[15]!==h?(be=j||ee||B||f?n.jsxRuntimeExports.jsx(ut.GraphHeader,{styles:{title:a?.title,description:a?.description},classNames:{title:c?.title,description:c?.description},graphTitle:j,graphDescription:ee,width:h,graphDownload:B?Ge:void 0,dataDownload:f?i.map(hi).filter(pi).length>0?i.map(fi).filter(mi):i.filter(xi):null}):null,e[6]=c?.description,e[7]=c?.title,e[8]=i,e[9]=f,e[10]=ee,e[11]=B,e[12]=j,e[13]=a?.description,e[14]=a?.title,e[15]=h,e[16]=be):be=e[16];let Me;e[17]!==c?.colorLegend||e[18]!==T||e[19]!==P||e[20]!==C||e[21]!==i||e[22]!==X||e[23]!==l||e[24]!==M||e[25]!==h?(Me=X!==!1&&i.filter(di).length!==0&&i.length>0?n.jsxRuntimeExports.jsx(xt.ColorLegendWithMouseOver,{width:h,colorLegendTitle:P,colors:C||je.Colors[M].categoricalColors.colors,colorDomain:T||Ye.uniqBy(i,"color",!0),setSelectedColor:rt,showNAColor:l,className:c?.colorLegend}):null,e[17]=c?.colorLegend,e[18]=T,e[19]=P,e[20]=C,e[21]=i,e[22]=X,e[23]=l,e[24]=M,e[25]=h,e[26]=Me):Me=e[26];let Ee;e[27]!==i.length?(Ee=i.length===0&&n.jsxRuntimeExports.jsx(dt.EmptyState,{}),e[27]=i.length,e[28]=Ee):Ee=e[28];let Re;e[29]!==Fe||e[30]!==S||e[31]!==c||e[32]!==T||e[33]!==C||e[34]!==qe||e[35]!==i||e[36]!==xe||e[37]!==E||e[38]!==Ae||e[39]!==Q||e[40]!==w||e[41]!==Te||e[42]!==z||e[43]!==V||e[44]!==R||e[45]!==o||e[46]!==y||e[47]!==L||e[48]!==$e||e[49]!==s||e[50]!==d||e[51]!==m||e[52]!==N||e[53]!==G||e[54]!==Ve||e[55]!==x||e[56]!==ne||e[57]!==a||e[58]!==k||e[59]!==Se||e[60]!==Ne||e[61]!==M||e[62]!==g||e[63]!==re?(Re=Ne&&Se&&i.length>0?n.jsxRuntimeExports.jsx(Fe,{hideAxisLine:Ae,data:i,circleColors:i.filter(ui).length===0?C?[C]:[je.Colors.primaryColors["blue-600"]]:C||je.Colors[M].categoricalColors.colors,colorDomain:i.filter(ci).length===0?[]:T||Ye.uniqBy(i,"color",!0),width:Ne,selectedColor:Ve,height:Se,showTicks:ne,leftMargin:w,rightMargin:G,topMargin:re,bottomMargin:S,showLabels:x,tooltip:g,onSeriesMouseOver:L,refValues:m,startFromZero:!1,radius:d,maxRadiusValue:z,maxValue:V,minValue:R,highlightedDataPoints:Q,onSeriesMouseClick:y,resetSelectionOnDoubleClick:N,detailsOnClick:xe,styles:a,classNames:c,suffix:k,prefix:s,noOfTicks:o||5,dimmedOpacity:E,precision:$e,customLayers:qe,locale:Te}):null,e[29]=Fe,e[30]=S,e[31]=c,e[32]=T,e[33]=C,e[34]=qe,e[35]=i,e[36]=xe,e[37]=E,e[38]=Ae,e[39]=Q,e[40]=w,e[41]=Te,e[42]=z,e[43]=V,e[44]=R,e[45]=o,e[46]=y,e[47]=L,e[48]=$e,e[49]=s,e[50]=d,e[51]=m,e[52]=N,e[53]=G,e[54]=Ve,e[55]=x,e[56]=ne,e[57]=a,e[58]=k,e[59]=Se,e[60]=Ne,e[61]=M,e[62]=g,e[63]=re,e[64]=Re):Re=e[64];let Oe;e[65]!==Ee||e[66]!==Re?(Oe=n.jsxRuntimeExports.jsxs(He.GraphArea,{ref:Ie,children:[Ee,Re]}),e[65]=Ee,e[66]=Re,e[67]=Oe):Oe=e[67];let ke;e[68]!==c?.footnote||e[69]!==c?.source||e[70]!==A||e[71]!==_||e[72]!==a?.footnote||e[73]!==a?.source||e[74]!==h?(ke=_||A?n.jsxRuntimeExports.jsx(mt.GraphFooter,{styles:{footnote:a?.footnote,source:a?.source},classNames:{footnote:c?.footnote,source:c?.source},sources:_,footNote:A,width:h}):null,e[68]=c?.footnote,e[69]=c?.source,e[70]=A,e[71]=_,e[72]=a?.footnote,e[73]=a?.source,e[74]=h,e[75]=ke):ke=e[75];let Le;return e[76]!==ce||e[77]!==U||e[78]!==Y||e[79]!==le||e[80]!==r||e[81]!==b||e[82]!==ae||e[83]!==D||e[84]!==Ue||e[85]!==Be||e[86]!==be||e[87]!==Me||e[88]!==Oe||e[89]!==ke||e[90]!==M||e[91]!==h?(Le=n.jsxRuntimeExports.jsxs(He.GraphContainer,{className:Ue,style:Be,id:Y,ref:Ge,"aria-label":ce,backgroundColor:U,theme:M,language:r,minHeight:b,width:h,height:le,relativeHeight:D,padding:ae,children:[be,Me,Oe,ke]}),e[76]=ce,e[77]=U,e[78]=Y,e[79]=le,e[80]=r,e[81]=b,e[82]=ae,e[83]=D,e[84]=Ue,e[85]=Be,e[86]=be,e[87]=Me,e[88]=Oe,e[89]=ke,e[90]=M,e[91]=h,e[92]=Le):Le=e[92],Le}function ci(t){return t.color}function ui(t){return t.color}function di(t){return t.color}function xi(t){return t!==void 0}function mi(t){return t!==void 0}function fi(t){return t.data}function pi(t){return t!==void 0}function hi(t){return t.data}exports.BeeSwarmChart=ai;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index-CHPV5EwG-D4pAp7u0.cjs"),f=require("react"),Ye=require("./index-DQA8q5sC.cjs"),He=require("./index-Cno4Q0YE.cjs"),ze=require("./Spinner-WHzzloYQ.cjs"),st=require("./Typography-BqmyF1gP.cjs"),We=require("./numberFormattingFunction-Cn9R7CM9.cjs"),Ze=require("./Tooltip-Hr46paWP.cjs"),v=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),Je=require("./getTextColorBasedOnBgColor-nqY-bsM_.cjs"),je=require("./Colors.cjs"),Ke=require("./Axis-BTaS9oPQ.cjs"),Qe=require("./ReferenceLine-CpU4G01Y.cjs"),rt=require("./YTicksAndGridLines-DFjm8RCc.cjs"),lt=require("./XTicksAndGridLines-C5DuC5oY.cjs"),_e=require("./DetailsModal-jmmKRMRM.cjs"),et=require("./pow-BnyPO-NX.cjs"),tt=require("./linear-CgUCbw9F.cjs"),ne=require("./y-QcCbqrzx.cjs"),Pe=require("./uniqBy-O05lp2S5.cjs"),at=require("./GraphHeader.cjs"),Xe=require("./GraphContainer-Cul9b74X.cjs"),ct=require("./EmptyState-CFmiFPHz.cjs"),ut=require("./ColorLegendWithMouseOver.cjs"),dt=require("./GraphFooter.cjs");function xt(t){const e=n.compilerRuntimeExports.c(28),{data:i,circleColors:M,showTicks:se,width:N,height:S,colorDomain:B,topMargin:k,bottomMargin:Q,leftMargin:_,rightMargin:re,suffix:h,prefix:q,showLabels:A,tooltip:G,onSeriesMouseOver:le,refValues:w,selectedColor:g,startFromZero:D,radius:m,maxRadiusValue:P,maxValue:X,minValue:Y,highlightedDataPoints:ge,onSeriesMouseClick:me,resetSelectionOnDoubleClick:H,detailsOnClick:T,styles:R,classNames:u,noOfTicks:y,dimmedOpacity:ae,precision:ce,customLayers:fe,hideAxisLine:ve,locale:ye}=t,ue=k===void 0?25:k,V=Q===void 0?10:Q,ee=_===void 0?100:_,te=re===void 0?40:re,de=f.useRef(null),[xe,z]=f.useState(void 0),[I,a]=f.useState(void 0),[c,pe]=f.useState(null),[ie,W]=f.useState(void 0),[L,Z]=f.useState(void 0);let J;e[0]!==V||e[1]!==ee||e[2]!==te||e[3]!==ue?(J={top:ue,bottom:V,left:ee,right:te},e[0]=V,e[1]=ee,e[2]=te,e[3]=ue,e[4]=J):J=e[4];const d=J,x=N-d.left-d.right,oe=S-d.top-d.bottom,F=i.filter(At).length===0?i:He.orderBy(i.filter(qt),"radius","desc");let U;e[5]!==i||e[6]!==X||e[7]!==D?(U=v.checkIfNullOrUndefined(X)?Math.max(...i.filter($t).map(Lt))<0&&!D?0:Math.max(...i.filter(Dt).map(wt)):X,e[5]=i,e[6]=X,e[7]=D,e[8]=U):U=e[8];const $=U;let K;e[9]!==i||e[10]!==Y||e[11]!==D?(K=v.checkIfNullOrUndefined(Y)?Math.min(...i.filter(St).map(Nt))>=0&&!D?0:Math.min(...i.filter(Ct).map(kt)):Y,e[9]=i,e[10]=Y,e[11]=D,e[12]=K):K=e[12];const p=K,l=i.filter(Ot).length!==i.length?et.sqrt().domain([0,v.checkIfNullOrUndefined(P)?Math.max(...i.map(Rt).filter(Et)):P]).range([.25,m]).nice():void 0,r=tt.linear().domain([p,$]).range([oe,0]).nice(),E=r.ticks(y);f.useEffect(()=>{const s=F.map(Mt).filter(bt);ne.forceSimulation(s).force("y",ne.forceY(o=>r(o.position)).strength(5)).force("x",ne.forceX(o=>x/2).strength(1)).force("collide",ne.forceCollide(o=>l?l(o.radius||0)+1:m+1)).force("charge",ne.forceManyBody().strength(-15)).alphaDecay(.05).tick(1e4).on("tick",()=>{pe(s)}).on("end",()=>{pe(s)})},[i,m,oe,x,p,$,F,r,l]);const he=c?n.jsxRuntimeExports.jsx("svg",{width:`${N}px`,height:`${S}px`,viewBox:`0 0 ${N} ${S}`,direction:"ltr",ref:de,children:n.jsxRuntimeExports.jsxs("g",{transform:`translate(${d.left},${d.top})`,children:[se?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(Ke.Axis,{hideAxisLine:ve,y1:r(p<0?0:p),y2:r(p<0?0:p),x1:0-d.left,x2:x+d.right,label:se?We.numberFormattingFunction(p<0?0:p,void 0,ce,q,h,ye):void 0,labelPos:{x:0-d.left,y:r(p<0?0:p),dx:0,dy:$<0?"1em":-5},classNames:{axis:u?.xAxis?.axis,label:u?.yAxis?.labels},styles:{axis:R?.xAxis?.axis,label:R?.yAxis?.labels}}),n.jsxRuntimeExports.jsx(rt.YTicksAndGridLines,{values:E.filter(jt),y:E.filter(yt).map(s=>r(s)),x1:0-d.left,x2:x+d.right,styles:{gridLines:R?.yAxis?.gridLines,labels:R?.yAxis?.labels},classNames:{gridLines:u?.yAxis?.gridLines,labels:u?.yAxis?.labels},suffix:h,prefix:q,labelType:"secondary",showGridLines:!0,labelPos:"vertical",precision:ce,locale:ye})]}):null,fe.filter(vt).map(gt),c.map(s=>n.jsxRuntimeExports.jsxs("g",{className:"undp-viz-g-with-hover",transform:`translate(${s.x},${s.y})`,opacity:g?s.color&&M[B.indexOf(s.color)]===g?1:ae:ge?ge.indexOf(s.label)!==-1?.85:ae:.85,onMouseEnter:o=>{z(s),Z(o.clientY),W(o.clientX),le?.(s)},onMouseMove:o=>{z(s),Z(o.clientY),W(o.clientX)},onClick:()=>{(me||T)&&(Ye.isEqual(I,s)&&H?(a(void 0),me?.(void 0)):(a(s),me?.(s)))},onMouseLeave:()=>{z(void 0),W(void 0),Z(void 0),le?.(void 0)},children:[n.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,r:l?l(s.radius||0):m,fill:i.filter(ht).length===0?M[0]:s.color?M[B.indexOf(s.color)]:je.Colors.gray}),(l?l(s.radius||0):m)>10&&A?n.jsxRuntimeExports.jsx("g",{children:n.jsxRuntimeExports.jsx("foreignObject",{y:0-(l?l(s.radius||0):m),x:0-(l?l(s.radius||0):m),width:2*(l?l(s.radius||0):m),height:2*(l?l(s.radius||0):m),children:n.jsxRuntimeExports.jsx("div",{className:"flex flex-col justify-center items-center h-inherit py-0 px-1.5",children:A?n.jsxRuntimeExports.jsx("p",{className:n.mo("text-center leading-none m-0",u?.graphObjectValues),style:{fontSize:`${Math.min(Math.max(Math.round((l?l(s.radius||0):m)/4),10),Math.max(Math.round((l?l(s.radius||0):m)*12/`${s.label}`.length),10),20)}px`,hyphens:"auto",color:Je.getTextColorBasedOnBgColor(i.filter(pt).length===0?M[0]:s.color?M[B.indexOf(s.color)]:je.Colors.gray),...R?.graphObjectValues||{}},children:s.label}):null})})}):null]},s.label)),w?n.jsxRuntimeExports.jsx(n.jsxRuntimeExports.Fragment,{children:w.map((s,o)=>n.jsxRuntimeExports.jsx(Qe.RefLineY,{text:s.text,color:s.color,y:r(s.value),x1:0-d.left,x2:x+d.right,classNames:s.classNames,styles:s.styles,isInView:!0},o))}):null,fe.filter(ft).map(mt)]})}):n.jsxRuntimeExports.jsx("div",{style:{width:`${N}px`,height:`${S}px`},children:n.jsxRuntimeExports.jsx("div",{className:"flex m-auto items-center justify-center p-0 leading-none text-base h-40",children:n.jsxRuntimeExports.jsx(ze.w,{})})});let C;e[13]!==u?.tooltip||e[14]!==ie||e[15]!==L||e[16]!==xe||e[17]!==R?.tooltip||e[18]!==G?(C=xe&&G&&ie&&L?n.jsxRuntimeExports.jsx(Ze.Tooltip,{data:xe,body:G,xPos:ie,yPos:L,backgroundStyle:R?.tooltip,className:u?.tooltip}):null,e[13]=u?.tooltip,e[14]=ie,e[15]=L,e[16]=xe,e[17]=R?.tooltip,e[18]=G,e[19]=C):C=e[19];let j;e[20]!==u?.modal||e[21]!==T||e[22]!==I?(j=T&&I!==void 0?n.jsxRuntimeExports.jsx(_e.DetailsModal,{body:T,data:I,setData:a,className:u?.modal}):null,e[20]=u?.modal,e[21]=T,e[22]=I,e[23]=j):j=e[23];let O;return e[24]!==he||e[25]!==C||e[26]!==j?(O=n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[he,C,j]}),e[24]=he,e[25]=C,e[26]=j,e[27]=O):O=e[27],O}function mt(t){return t.layer}function ft(t){return t.position==="after"}function pt(t){return t.color}function ht(t){return t.color}function gt(t){return t.layer}function vt(t){return t.position==="before"}function yt(t){return t!==0}function jt(t){return t!==0}function bt(t){return t.position}function Mt(t){return{...t,...t.data&&{data:{...t.data}}}}function Et(t){return t!=null}function Rt(t){return t.radius}function Ot(t){return t.radius===void 0||t.radius===null}function kt(t){return t.position}function Ct(t){return!v.checkIfNullOrUndefined(t.position)}function Nt(t){return t.position}function St(t){return!v.checkIfNullOrUndefined(t.position)}function wt(t){return t.position}function Dt(t){return!v.checkIfNullOrUndefined(t.position)}function Lt(t){return t.position}function $t(t){return!v.checkIfNullOrUndefined(t.position)}function qt(t){return!v.checkIfNullOrUndefined(t.radius)}function At(t){return!v.checkIfNullOrUndefined(t.radius)}function Tt(t){const e=n.compilerRuntimeExports.c(28),{data:i,circleColors:M,showTicks:se,width:N,height:S,colorDomain:B,topMargin:k,bottomMargin:Q,leftMargin:_,rightMargin:re,showLabels:h,tooltip:q,onSeriesMouseOver:A,refValues:G,selectedColor:le,startFromZero:w,radius:g,maxRadiusValue:D,maxValue:m,minValue:P,highlightedDataPoints:X,onSeriesMouseClick:Y,rtl:ge,resetSelectionOnDoubleClick:me,detailsOnClick:H,suffix:T,prefix:R,styles:u,classNames:y,noOfTicks:ae,dimmedOpacity:ce,precision:fe,customLayers:ve,hideAxisLine:ye,locale:ue}=t,V=k===void 0?25:k,ee=Q===void 0?10:Q,te=_===void 0?10:_,de=re===void 0?10:re,xe=f.useRef(null),[z,I]=f.useState(void 0),[a,c]=f.useState(void 0),[pe,ie]=f.useState(null),[W,L]=f.useState(void 0),[Z,J]=f.useState(void 0);let d;e[0]!==ee||e[1]!==te||e[2]!==de||e[3]!==V?(d={top:V,bottom:ee,left:te,right:de},e[0]=ee,e[1]=te,e[2]=de,e[3]=V,e[4]=d):d=e[4];const x=d,oe=N-x.left-x.right,F=S-x.top-x.bottom,U=i.filter(si).length===0?i:He.orderBy(i.filter(ni),"radius","desc");let $;e[5]!==i||e[6]!==m||e[7]!==w?($=v.checkIfNullOrUndefined(m)?Math.max(...i.filter(oi).map(ii))<0&&!w?0:Math.max(...i.filter(ti).map(ei)):m,e[5]=i,e[6]=m,e[7]=w,e[8]=$):$=e[8];const K=$;let p;e[9]!==i||e[10]!==P||e[11]!==w?(p=v.checkIfNullOrUndefined(P)?Math.min(...i.filter(_t).map(Qt))>=0&&!w?0:Math.min(...i.filter(Kt).map(Jt)):P,e[9]=i,e[10]=P,e[11]=w,e[12]=p):p=e[12];const l=p,r=i.filter(Zt).length!==i.length?et.sqrt().domain([0,v.checkIfNullOrUndefined(D)?Math.max(...i.map(Wt).filter(zt)):D]).range([.25,g]).nice():void 0,E=tt.linear().domain([l,K]).range([0,oe]).nice(),he=E.ticks(ae);f.useEffect(()=>{const o=U.map(Ht).filter(Yt);ne.forceSimulation(o).force("x",ne.forceX(b=>E(b.position)).strength(5)).force("y",ne.forceY(b=>F/2).strength(1)).force("collide",ne.forceCollide(b=>r?r(b.radius||0)+1:g+1)).force("charge",ne.forceManyBody().strength(-15)).alphaDecay(.05).tick(1e4).on("tick",()=>{ie(o)}).on("end",()=>{ie(o)})},[i,g,F,oe,l,K,U,E,r]);const C=pe?n.jsxRuntimeExports.jsx("svg",{width:`${N}px`,height:`${S}px`,viewBox:`0 0 ${N} ${S}`,direction:"ltr",ref:xe,children:n.jsxRuntimeExports.jsxs("g",{transform:`translate(${x.left},${x.top})`,children:[se?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(Ke.Axis,{hideAxisLine:ye,x1:E(l<0?0:l),x2:E(l<0?0:l),y1:0-x.top,y2:F+x.bottom,label:se?We.numberFormattingFunction(l<0?0:l,void 0,fe,R,T,ue):void 0,labelPos:{x:E(l<0?0:l),y:0-V,dy:"0.75em",dx:3},classNames:{axis:y?.xAxis?.axis,label:y?.yAxis?.labels},styles:{axis:u?.xAxis?.axis,label:u?.yAxis?.labels}}),n.jsxRuntimeExports.jsx(lt.XTicksAndGridLines,{values:he.filter(Xt),x:he.filter(Pt).map(o=>E(o)),y1:0-V,y2:F+x.bottom,styles:{gridLines:u?.xAxis?.gridLines,labels:u?.xAxis?.labels},classNames:{gridLines:y?.xAxis?.gridLines,labels:y?.xAxis?.labels},suffix:T,prefix:R,labelType:"secondary",showGridLines:!0,precision:fe,locale:ue})]}):null,ve.filter(Gt).map(Bt),pe.map(o=>n.jsxRuntimeExports.jsxs("g",{className:"undp-viz-g-with-hover",transform:`translate(${o.x},${o.y})`,opacity:le?o.color&&M[B.indexOf(o.color)]===le?1:ce:X?X.indexOf(o.label)!==-1?.85:ce:.85,onMouseEnter:b=>{I(o),J(b.clientY),L(b.clientX),A?.(o)},onMouseMove:b=>{I(o),J(b.clientY),L(b.clientX)},onClick:()=>{(Y||H)&&(Ye.isEqual(a,o)&&me?(c(void 0),Y?.(void 0)):(c(o),Y?.(o)))},onMouseLeave:()=>{I(void 0),L(void 0),J(void 0),A?.(void 0)},children:[n.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,fill:i.filter(Ut).length===0?M[0]:o.color?M[B.indexOf(o.color)]:je.Colors.gray,radius:r?r(o.radius||0):g}),(r?r(o.radius||0):g)>10&&h?n.jsxRuntimeExports.jsx("g",{children:n.jsxRuntimeExports.jsx("foreignObject",{y:0-(r?r(o.radius||0):g),x:0-(r?r(o.radius||0):g),width:2*(r?r(o.radius||0):g),height:2*(r?r(o.radius||0):g),children:n.jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-1.5",children:h?n.jsxRuntimeExports.jsx(st._,{className:n.mo("text-center leading-none m-0",y?.graphObjectValues),marginBottom:"none",style:{fontSize:`${Math.min(Math.max(Math.round((r?r(o.radius||0):g)/4),10),Math.max(Math.round((r?r(o.radius||0):g)*12/`${o.label}`.length),10),20)}px`,color:Je.getTextColorBasedOnBgColor(i.filter(Ft).length===0?M[0]:o.color?M[B.indexOf(o.color)]:je.Colors.gray),hyphens:"auto",...u?.graphObjectValues||{}},children:o.label}):null})})}):null]},o.label)),G?n.jsxRuntimeExports.jsx(n.jsxRuntimeExports.Fragment,{children:G.map((o,b)=>n.jsxRuntimeExports.jsx(Qe.RefLineX,{text:o.text,color:o.color,x:E(o.value),y1:0-x.top,y2:F+x.bottom,textSide:E(o.value)>oe*.75||ge?"left":"right",classNames:o.classNames,styles:o.styles,isInView:!0},b))}):null,ve.filter(It).map(Vt)]})}):n.jsxRuntimeExports.jsx("div",{style:{width:`${N}px`,height:`${S}px`},children:n.jsxRuntimeExports.jsx("div",{className:"flex m-auto items-center justify-center p-0 leading-none text-base h-40",children:n.jsxRuntimeExports.jsx(ze.w,{})})});let j;e[13]!==y?.tooltip||e[14]!==W||e[15]!==Z||e[16]!==z||e[17]!==u?.tooltip||e[18]!==q?(j=z&&q&&W&&Z?n.jsxRuntimeExports.jsx(Ze.Tooltip,{data:z,body:q,xPos:W,yPos:Z,backgroundStyle:u?.tooltip,className:y?.tooltip}):null,e[13]=y?.tooltip,e[14]=W,e[15]=Z,e[16]=z,e[17]=u?.tooltip,e[18]=q,e[19]=j):j=e[19];let O;e[20]!==y?.modal||e[21]!==H||e[22]!==a?(O=H&&a!==void 0?n.jsxRuntimeExports.jsx(_e.DetailsModal,{body:H,data:a,setData:c,className:y?.modal}):null,e[20]=y?.modal,e[21]=H,e[22]=a,e[23]=O):O=e[23];let s;return e[24]!==C||e[25]!==j||e[26]!==O?(s=n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[C,j,O]}),e[24]=C,e[25]=j,e[26]=O,e[27]=s):s=e[27],s}function Vt(t){return t.layer}function It(t){return t.position==="after"}function Ft(t){return t.color}function Ut(t){return t.color}function Bt(t){return t.layer}function Gt(t){return t.position==="before"}function Pt(t){return t!==0}function Xt(t){return t!==0}function Yt(t){return t.position}function Ht(t){return{...t,...t.data&&{data:{...t.data}}}}function zt(t){return t!=null}function Wt(t){return t.radius}function Zt(t){return t.radius===void 0||t.radius===null}function Jt(t){return t.position}function Kt(t){return!v.checkIfNullOrUndefined(t.position)}function Qt(t){return t.position}function _t(t){return!v.checkIfNullOrUndefined(t.position)}function ei(t){return t.position}function ti(t){return!v.checkIfNullOrUndefined(t.position)}function ii(t){return t.position}function oi(t){return!v.checkIfNullOrUndefined(t.position)}function ni(t){return!v.checkIfNullOrUndefined(t.radius)}function si(t){return!v.checkIfNullOrUndefined(t.radius)}function ri(t){const e=n.compilerRuntimeExports.c(91),{data:i,graphTitle:M,topMargin:se,bottomMargin:N,leftMargin:S,rightMargin:B,colors:k,sources:Q,graphDescription:_,height:re,width:h,footNote:q,colorDomain:A,colorLegendTitle:G,padding:le,relativeHeight:w,tooltip:g,onSeriesMouseOver:D,refValues:m,showColorScale:P,graphID:X,radius:Y,showLabels:ge,showTicks:me,maxRadiusValue:H,maxValue:T,minValue:R,highlightedDataPoints:u,onSeriesMouseClick:y,ariaLabel:ae,backgroundColor:ce,graphDownload:fe,dataDownload:ve,language:ye,showNAColor:ue,minHeight:V,theme:ee,resetSelectionOnDoubleClick:te,detailsOnClick:de,orientation:xe,suffix:z,prefix:I,styles:a,classNames:c,noOfTicks:pe,dimmedOpacity:ie,precision:W,customLayers:L,hideAxisLine:Z,locale:J}=t,d=Y===void 0?5:Y,x=ge===void 0?!0:ge,oe=me===void 0?!0:me,F=ce===void 0?!1:ce,U=fe===void 0?!1:fe,$=ve===void 0?!1:ve,K=ye===void 0?"en":ye,p=ue===void 0?!0:ue,l=V===void 0?0:V,r=ee===void 0?"light":ee,E=te===void 0?!0:te,he=xe===void 0?"vertical":xe,C=z===void 0?"":z,j=I===void 0?"":I,O=pe===void 0?5:pe,s=ie===void 0?.3:ie,o=W===void 0?2:W;let b;e[0]!==L?(b=L===void 0?[]:L,e[0]=L,e[1]=b):b=e[1];const Le=b,$e=Z===void 0?!1:Z,qe=J===void 0?"en":J,[Ce,it]=f.useState(0),[Ne,ot]=f.useState(0),[Ae,nt]=f.useState(void 0),Te=f.useRef(null),Ue=f.useRef(null),Ve=he==="horizontal"?Tt:xt;let Se,we;e[2]===Symbol.for("react.memo_cache_sentinel")?(Se=()=>{const Be=new ResizeObserver(Ge=>{it(Ge[0].target.clientWidth||620),ot(Ge[0].target.clientHeight||480)});return Te.current&&Be.observe(Te.current),()=>Be.disconnect()},we=[],e[2]=Se,e[3]=we):(Se=e[2],we=e[3]),f.useEffect(Se,we);const Ie=c?.graphContainer,Fe=a?.graphContainer;let be;e[4]!==c?.description||e[5]!==c?.title||e[6]!==i||e[7]!==$||e[8]!==_||e[9]!==U||e[10]!==M||e[11]!==a?.description||e[12]!==a?.title||e[13]!==h?(be=M||_||U||$?n.jsxRuntimeExports.jsx(at.GraphHeader,{styles:{title:a?.title,description:a?.description},classNames:{title:c?.title,description:c?.description},graphTitle:M,graphDescription:_,width:h,graphDownload:U?Ue:void 0,dataDownload:$?i.map(fi).filter(mi).length>0?i.map(xi).filter(di):i.filter(ui):null}):null,e[4]=c?.description,e[5]=c?.title,e[6]=i,e[7]=$,e[8]=_,e[9]=U,e[10]=M,e[11]=a?.description,e[12]=a?.title,e[13]=h,e[14]=be):be=e[14];let Me;e[15]!==c?.colorLegend||e[16]!==A||e[17]!==G||e[18]!==k||e[19]!==i||e[20]!==P||e[21]!==p||e[22]!==r||e[23]!==h?(Me=P!==!1&&i.filter(ci).length!==0&&i.length>0?n.jsxRuntimeExports.jsx(ut.ColorLegendWithMouseOver,{width:h,colorLegendTitle:G,colors:k||je.Colors[r].categoricalColors.colors,colorDomain:A||Pe.uniqBy(i,"color",!0),setSelectedColor:nt,showNAColor:p,className:c?.colorLegend}):null,e[15]=c?.colorLegend,e[16]=A,e[17]=G,e[18]=k,e[19]=i,e[20]=P,e[21]=p,e[22]=r,e[23]=h,e[24]=Me):Me=e[24];let Ee;e[25]!==i.length?(Ee=i.length===0&&n.jsxRuntimeExports.jsx(ct.EmptyState,{}),e[25]=i.length,e[26]=Ee):Ee=e[26];let Re;e[27]!==Ve||e[28]!==N||e[29]!==c||e[30]!==A||e[31]!==k||e[32]!==Le||e[33]!==i||e[34]!==de||e[35]!==s||e[36]!==$e||e[37]!==u||e[38]!==S||e[39]!==qe||e[40]!==H||e[41]!==T||e[42]!==R||e[43]!==O||e[44]!==y||e[45]!==D||e[46]!==o||e[47]!==j||e[48]!==d||e[49]!==m||e[50]!==E||e[51]!==B||e[52]!==Ae||e[53]!==x||e[54]!==oe||e[55]!==a||e[56]!==C||e[57]!==Ne||e[58]!==Ce||e[59]!==r||e[60]!==g||e[61]!==se?(Re=Ce&&Ne&&i.length>0?n.jsxRuntimeExports.jsx(Ve,{hideAxisLine:$e,data:i,circleColors:i.filter(ai).length===0?k?[k]:[je.Colors.primaryColors["blue-600"]]:k||je.Colors[r].categoricalColors.colors,colorDomain:i.filter(li).length===0?[]:A||Pe.uniqBy(i,"color",!0),width:Ce,selectedColor:Ae,height:Ne,showTicks:oe,leftMargin:S,rightMargin:B,topMargin:se,bottomMargin:N,showLabels:x,tooltip:g,onSeriesMouseOver:D,refValues:m,startFromZero:!1,radius:d,maxRadiusValue:H,maxValue:T,minValue:R,highlightedDataPoints:u,onSeriesMouseClick:y,resetSelectionOnDoubleClick:E,detailsOnClick:de,styles:a,classNames:c,suffix:C,prefix:j,noOfTicks:O||5,dimmedOpacity:s,precision:o,customLayers:Le,locale:qe}):null,e[27]=Ve,e[28]=N,e[29]=c,e[30]=A,e[31]=k,e[32]=Le,e[33]=i,e[34]=de,e[35]=s,e[36]=$e,e[37]=u,e[38]=S,e[39]=qe,e[40]=H,e[41]=T,e[42]=R,e[43]=O,e[44]=y,e[45]=D,e[46]=o,e[47]=j,e[48]=d,e[49]=m,e[50]=E,e[51]=B,e[52]=Ae,e[53]=x,e[54]=oe,e[55]=a,e[56]=C,e[57]=Ne,e[58]=Ce,e[59]=r,e[60]=g,e[61]=se,e[62]=Re):Re=e[62];let Oe;e[63]!==Ee||e[64]!==Re?(Oe=n.jsxRuntimeExports.jsxs(Xe.GraphArea,{ref:Te,children:[Ee,Re]}),e[63]=Ee,e[64]=Re,e[65]=Oe):Oe=e[65];let ke;e[66]!==c?.footnote||e[67]!==c?.source||e[68]!==q||e[69]!==Q||e[70]!==a?.footnote||e[71]!==a?.source||e[72]!==h?(ke=Q||q?n.jsxRuntimeExports.jsx(dt.GraphFooter,{styles:{footnote:a?.footnote,source:a?.source},classNames:{footnote:c?.footnote,source:c?.source},sources:Q,footNote:q,width:h}):null,e[66]=c?.footnote,e[67]=c?.source,e[68]=q,e[69]=Q,e[70]=a?.footnote,e[71]=a?.source,e[72]=h,e[73]=ke):ke=e[73];let De;return e[74]!==ae||e[75]!==F||e[76]!==X||e[77]!==re||e[78]!==K||e[79]!==l||e[80]!==le||e[81]!==w||e[82]!==Ie||e[83]!==Fe||e[84]!==be||e[85]!==Me||e[86]!==Oe||e[87]!==ke||e[88]!==r||e[89]!==h?(De=n.jsxRuntimeExports.jsxs(Xe.GraphContainer,{className:Ie,style:Fe,id:X,ref:Ue,"aria-label":ae,backgroundColor:F,theme:r,language:K,minHeight:l,width:h,height:re,relativeHeight:w,padding:le,children:[be,Me,Oe,ke]}),e[74]=ae,e[75]=F,e[76]=X,e[77]=re,e[78]=K,e[79]=l,e[80]=le,e[81]=w,e[82]=Ie,e[83]=Fe,e[84]=be,e[85]=Me,e[86]=Oe,e[87]=ke,e[88]=r,e[89]=h,e[90]=De):De=e[90],De}function li(t){return t.color}function ai(t){return t.color}function ci(t){return t.color}function ui(t){return t!==void 0}function di(t){return t!==void 0}function xi(t){return t.data}function mi(t){return t!==void 0}function fi(t){return t.data}exports.BeeSwarmChart=ri;
2
2
  //# sourceMappingURL=BeeSwarmChart.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BeeSwarmChart.cjs","sources":["../src/Components/Graphs/BeeSwarmChart/Graph.tsx","../src/Components/Graphs/BeeSwarmChart/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleSqrt } from 'd3-scale';\r\nimport { forceCollide, forceManyBody, forceSimulation, forceX, forceY } from 'd3-force';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport orderBy from 'lodash.orderby';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { P } from '@undp/design-system-react/Typography';\r\n\r\nimport {\r\n BeeSwarmChartDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface BeeSwarmChartDataTypeForBubbleChart extends BeeSwarmChartDataType {\r\n x: number;\r\n y: number;\r\n vx: number;\r\n vy: number;\r\n}\r\n\r\ninterface Props {\r\n data: BeeSwarmChartDataType[];\r\n circleColors: string[];\r\n colorDomain: string[];\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n showLabels: boolean;\r\n width: number;\r\n height: number;\r\n suffix: string;\r\n prefix: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n selectedColor?: string;\r\n startFromZero: boolean;\r\n radius: number;\r\n maxRadiusValue?: number;\r\n maxValue?: number;\r\n minValue?: number;\r\n highlightedDataPoints: (string | number)[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n noOfTicks: number;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n rtl?: boolean;\r\n hideAxisLine: boolean;\r\n locale: string;\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n data,\r\n circleColors,\r\n showTicks,\r\n width,\r\n height,\r\n colorDomain,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n suffix,\r\n prefix,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n startFromZero,\r\n radius,\r\n maxRadiusValue,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n noOfTicks,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n hideAxisLine,\r\n locale,\r\n } = props;\r\n const svgRef = useRef(null);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [finalData, setFinalData] = useState<BeeSwarmChartDataTypeForBubbleChart[] | null>(null);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataOrdered =\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)).length === 0\r\n ? data\r\n : orderBy(\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)),\r\n 'radius',\r\n 'desc',\r\n );\r\n const yMaxValue = !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) < 0 &&\r\n !startFromZero\r\n ? 0\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n const yMinValue = !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) >=\r\n 0 && !startFromZero\r\n ? 0\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n\r\n const radiusScale =\r\n data.filter(d => d.radius === undefined || d.radius === null).length !== data.length\r\n ? scaleSqrt()\r\n .domain([\r\n 0,\r\n checkIfNullOrUndefined(maxRadiusValue)\r\n ? Math.max(...data.map(d => d.radius).filter(d => d !== undefined && d !== null))\r\n : (maxRadiusValue as number),\r\n ])\r\n .range([0.25, radius])\r\n .nice()\r\n : undefined;\r\n const y = scaleLinear().domain([yMinValue, yMaxValue]).range([graphHeight, 0]).nice();\r\n const yTicks = y.ticks(noOfTicks);\r\n\r\n useEffect(() => {\r\n const dataTemp = (\r\n dataOrdered.map(d => ({\r\n ...d,\r\n ...(d.data && { data: { ...d.data } }),\r\n })) as BeeSwarmChartDataType[]\r\n ).filter(d => d.position);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceSimulation(dataTemp as any)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .force('y', forceY((d: any) => y(d.position as number)).strength(5))\r\n .force('x', forceX(_d => graphWidth / 2).strength(1))\r\n .force(\r\n 'collide',\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceCollide((d: any) => (radiusScale ? radiusScale(d.radius || 0) + 1 : radius + 1)),\r\n )\r\n .force('charge', forceManyBody().strength(-15))\r\n .alphaDecay(0.05)\r\n .tick(10000)\r\n .on('tick', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n })\r\n .on('end', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n });\r\n }, [data, radius, graphHeight, graphWidth, yMinValue, yMaxValue, dataOrdered, y, radiusScale]);\r\n\r\n return (\r\n <>\r\n {finalData ? (\r\n <svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <>\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n y1={y(yMinValue < 0 ? 0 : yMinValue)}\r\n y2={y(yMinValue < 0 ? 0 : yMinValue)}\r\n x1={0 - margin.left}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n yMinValue < 0 ? 0 : yMinValue,\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - margin.left,\r\n y: y(yMinValue < 0 ? 0 : yMinValue),\r\n dx: 0,\r\n dy: yMaxValue < 0 ? '1em' : -5,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{\r\n axis: styles?.xAxis?.axis,\r\n label: styles?.yAxis?.labels,\r\n }}\r\n />\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - margin.left}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n locale={locale}\r\n />\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n {finalData.map(d => (\r\n <g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n transform={`translate(${d.x},${d.y})`}\r\n opacity={\r\n selectedColor\r\n ? d.color\r\n ? circleColors[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85\r\n }\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <circle\r\n cx={0}\r\n cy={0}\r\n r={radiusScale ? radiusScale(d.radius || 0) : radius}\r\n fill={\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)]\r\n }\r\n />\r\n {(radiusScale ? radiusScale(d.radius || 0) : radius) > 10 && showLabels ? (\r\n <g>\r\n <foreignObject\r\n y={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n x={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n width={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n height={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n >\r\n <div className='flex flex-col justify-center items-center h-inherit py-0 px-1.5'>\r\n {showLabels ? (\r\n <p\r\n className={cn(\r\n 'text-center leading-none m-0',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n fontSize: `${Math.min(\r\n Math.max(\r\n Math.round(\r\n (radiusScale ? radiusScale(d.radius || 0) : radius) / 4,\r\n ),\r\n 10,\r\n ),\r\n Math.max(\r\n Math.round(\r\n ((radiusScale ? radiusScale(d.radius || 0) : radius) * 12) /\r\n `${d.label}`.length,\r\n ),\r\n 10,\r\n ),\r\n 20,\r\n )}px`,\r\n hyphens: 'auto',\r\n color: getTextColorBasedOnBgColor(\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)],\r\n ),\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {d.label}\r\n </p>\r\n ) : null}\r\n </div>\r\n </foreignObject>\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - margin.left}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n isInView={true}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </svg>\r\n ) : (\r\n <div style={{ width: `${width}px`, height: `${height}px` }}>\r\n <div className='flex m-auto items-center justify-center p-0 leading-none text-base h-40'>\r\n <Spinner />\r\n </div>\r\n </div>\r\n )}\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n circleColors,\r\n showTicks,\r\n width,\r\n height,\r\n colorDomain,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 10,\r\n rightMargin = 10,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n startFromZero,\r\n radius,\r\n maxRadiusValue,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n rtl,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n suffix,\r\n prefix,\r\n styles,\r\n classNames,\r\n noOfTicks,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n hideAxisLine,\r\n locale,\r\n } = props;\r\n const svgRef = useRef(null);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [finalData, setFinalData] = useState<BeeSwarmChartDataTypeForBubbleChart[] | null>(null);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataOrdered =\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)).length === 0\r\n ? data\r\n : orderBy(\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)),\r\n 'radius',\r\n 'desc',\r\n );\r\n const xMaxValue = !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) < 0 &&\r\n !startFromZero\r\n ? 0\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n const xMinValue = !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) >=\r\n 0 && !startFromZero\r\n ? 0\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n\r\n const radiusScale =\r\n data.filter(d => d.radius === undefined || d.radius === null).length !== data.length\r\n ? scaleSqrt()\r\n .domain([\r\n 0,\r\n checkIfNullOrUndefined(maxRadiusValue)\r\n ? Math.max(...data.map(d => d.radius).filter(d => d !== undefined && d !== null))\r\n : (maxRadiusValue as number),\r\n ])\r\n .range([0.25, radius])\r\n .nice()\r\n : undefined;\r\n const x = scaleLinear().domain([xMinValue, xMaxValue]).range([0, graphWidth]).nice();\r\n const xTicks = x.ticks(noOfTicks);\r\n\r\n useEffect(() => {\r\n const dataTemp = (\r\n dataOrdered.map(d => ({\r\n ...d,\r\n ...(d.data && { data: { ...d.data } }),\r\n })) as BeeSwarmChartDataType[]\r\n ).filter(d => d.position);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceSimulation(dataTemp as any)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .force('x', forceX((d: any) => x(d.position as number)).strength(5))\r\n .force('y', forceY(_d => graphHeight / 2).strength(1))\r\n .force(\r\n 'collide',\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceCollide((d: any) => (radiusScale ? radiusScale(d.radius || 0) + 1 : radius + 1)),\r\n )\r\n .force('charge', forceManyBody().strength(-15))\r\n .alphaDecay(0.05)\r\n .tick(10000)\r\n .on('tick', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n })\r\n .on('end', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n });\r\n }, [data, radius, graphHeight, graphWidth, xMinValue, xMaxValue, dataOrdered, x, radiusScale]);\r\n\r\n return (\r\n <>\r\n {finalData ? (\r\n <svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <>\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n x1={x(xMinValue < 0 ? 0 : xMinValue)}\r\n x2={x(xMinValue < 0 ? 0 : xMinValue)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n xMinValue < 0 ? 0 : xMinValue,\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )\r\n : undefined\r\n }\r\n labelPos={{\r\n x: x(xMinValue < 0 ? 0 : xMinValue),\r\n y: 0 - topMargin,\r\n dy: '0.75em',\r\n dx: 3,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{\r\n axis: styles?.xAxis?.axis,\r\n label: styles?.yAxis?.labels,\r\n }}\r\n />\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n locale={locale}\r\n />\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n {finalData.map(d => (\r\n <g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n transform={`translate(${d.x},${d.y})`}\r\n opacity={\r\n selectedColor\r\n ? d.color\r\n ? circleColors[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85\r\n }\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <circle\r\n cx={0}\r\n cy={0}\r\n fill={\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)]\r\n }\r\n radius={radiusScale ? radiusScale(d.radius || 0) : radius}\r\n />\r\n {(radiusScale ? radiusScale(d.radius || 0) : radius) > 10 && showLabels ? (\r\n <g>\r\n <foreignObject\r\n y={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n x={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n width={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n height={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n >\r\n <div className='flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-1.5'>\r\n {showLabels ? (\r\n <P\r\n className={cn(\r\n 'text-center leading-none m-0',\r\n classNames?.graphObjectValues,\r\n )}\r\n marginBottom='none'\r\n style={{\r\n fontSize: `${Math.min(\r\n Math.max(\r\n Math.round(\r\n (radiusScale ? radiusScale(d.radius || 0) : radius) / 4,\r\n ),\r\n 10,\r\n ),\r\n Math.max(\r\n Math.round(\r\n ((radiusScale ? radiusScale(d.radius || 0) : radius) * 12) /\r\n `${d.label}`.length,\r\n ),\r\n 10,\r\n ),\r\n 20,\r\n )}px`,\r\n color: getTextColorBasedOnBgColor(\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)],\r\n ),\r\n hyphens: 'auto',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {d.label}\r\n </P>\r\n ) : null}\r\n </div>\r\n </foreignObject>\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n isInView={true}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </svg>\r\n ) : (\r\n <div style={{ width: `${width}px`, height: `${height}px` }}>\r\n <div className='flex m-auto items-center justify-center p-0 leading-none text-base h-40'>\r\n <Spinner />\r\n </div>\r\n </div>\r\n )}\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\nimport {\r\n ReferenceDataType,\r\n SourcesDataType,\r\n Languages,\r\n BeeSwarmChartDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n} from '@/Types';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: BeeSwarmChartDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color or array of colors for circle */\r\n colors?: string | string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the radius of the circle */\r\n maxRadiusValue?: number;\r\n /** Minimum value for position of the circle */\r\n minValue?: number;\r\n /** Maximum value for position of the circle */\r\n maxValue?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showTicks?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Data points to highlight. Use the label value from data to highlight the data point */\r\n highlightedDataPoints?: (string | number)[];\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Maximum radius of the circles */\r\n radius?: number;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function BeeSwarmChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n rightMargin,\r\n colors,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale,\r\n graphID,\r\n radius = 5,\r\n showLabels = true,\r\n showTicks = true,\r\n maxRadiusValue,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints = [],\r\n onSeriesMouseClick,\r\n ariaLabel,\r\n backgroundColor = false,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n orientation = 'vertical',\r\n suffix = '',\r\n prefix = '',\r\n styles,\r\n classNames,\r\n noOfTicks = 5,\r\n dimmedOpacity = 0.3,\r\n precision = 2,\r\n customLayers = [],\r\n hideAxisLine = false,\r\n locale = 'en',\r\n } = props;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {showColorScale !== false && data.filter(el => el.color).length !== 0 && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={(colors as string[] | undefined) || Colors[theme].categoricalColors.colors}\r\n colorDomain={colorDomain || (uniqBy(data, 'color', true) as string[])}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={data}\r\n circleColors={\r\n data.filter(el => el.color).length === 0\r\n ? colors\r\n ? [colors as string]\r\n : [Colors.primaryColors['blue-600']]\r\n : (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain || (uniqBy(data, 'color', true) as string[])\r\n }\r\n width={svgWidth}\r\n selectedColor={selectedColor}\r\n height={svgHeight}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n startFromZero={false}\r\n radius={radius}\r\n maxRadiusValue={maxRadiusValue}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n styles={styles}\r\n classNames={classNames}\r\n suffix={suffix}\r\n prefix={prefix}\r\n noOfTicks={noOfTicks || 5}\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n locale={locale}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["VerticalGraph","props","$","_c","data","circleColors","showTicks","width","height","colorDomain","topMargin","t0","bottomMargin","t1","leftMargin","t2","rightMargin","t3","suffix","prefix","showLabels","tooltip","onSeriesMouseOver","refValues","selectedColor","startFromZero","radius","maxRadiusValue","maxValue","minValue","highlightedDataPoints","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","noOfTicks","dimmedOpacity","precision","customLayers","hideAxisLine","locale","undefined","svgRef","useRef","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","finalData","setFinalData","eventX","setEventX","eventY","setEventY","t4","top","bottom","left","right","margin","graphWidth","graphHeight","dataOrdered","filter","_temp","length","orderBy","_temp2","t5","checkIfNullOrUndefined","Math","max","_temp3","map","_temp4","_temp5","_temp6","yMaxValue","t6","min","_temp7","_temp8","_temp9","_temp0","yMinValue","radiusScale","_temp1","scaleSqrt","domain","_temp10","_temp11","range","nice","y","scaleLinear","yTicks","ticks","useEffect","dataTemp","_temp12","_temp13","forceSimulation","force","forceY","d_14","d","position","strength","forceX","_d","forceCollide","d_15","forceManyBody","alphaDecay","tick","on","t7","jsx","jsxs","Fragment","Axis","numberFormattingFunction","x","dx","dy","axis","xAxis","label","yAxis","labels","YTicksAndGridLines","_temp14","_temp15","gridLines","_temp16","_temp17","d_21","color","indexOf","event","clientY","clientX","event_0","isEqual","_temp18","Colors","gray","cn","graphObjectValues","fontSize","round","hyphens","getTextColorBasedOnBgColor","_temp19","el_1","i","RefLineY","el","text","value","_temp20","_temp21","Spinner","t8","Tooltip","t9","modal","DetailsModal","t10","d_23","layer","d_22","el_0","d_20","d_19","d_17","d_16","d_13","d_12","d_10","d_9","d_11","d_6","d_5","d_8","d_7","d_2","d_1","d_4","d_3","d_0","HorizontalGraph","rtl","_temp22","_temp23","_temp24","_temp25","_temp26","_temp27","xMaxValue","_temp28","_temp29","_temp30","_temp31","xMinValue","_temp32","_temp33","_temp34","xTicks","_temp35","_temp36","XTicksAndGridLines","_temp37","_temp38","d_18","_temp39","_temp40","_temp41","P","_temp42","RefLineX","_temp43","_temp44","BeeSwarmChart","graphTitle","colors","sources","graphDescription","footNote","colorLegendTitle","padding","relativeHeight","showColorScale","graphID","ariaLabel","backgroundColor","graphDownload","dataDownload","language","showNAColor","minHeight","theme","t11","orientation","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","Comp","t23","t24","Symbol","for","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","t25","graphContainer","t26","t27","description","title","GraphHeader","t28","colorLegend","ColorLegendWithMouseOver","categoricalColors","uniqBy","t29","EmptyState","t30","primaryColors","t31","GraphArea","t32","footnote","source","GraphFooter","t33","GraphContainer"],"mappings":"wiCA4EO,SAAAA,GAAAC,EAAA,CAAA,MAAAC,EAAAC,EAAAA,uBAAAA,EAAA,EAAA,EACL,CAAAC,KAAAA,EAAAC,aAAAA,EAAAC,UAAAA,GAAAC,MAAAA,EAAAC,OAAAA,EAAAC,YAAAA,EAAAC,UAAAC,EAAAC,aAAAC,EAAAC,WAAAC,GAAAC,YAAAC,GAAAC,OAAAA,EAAAC,OAAAA,EAAAC,WAAAA,EAAAC,QAAAA,EAAAC,kBAAAA,GAAAC,UAAAA,EAAAC,cAAAA,EAAAC,cAAAA,EAAAC,OAAAA,EAAAC,eAAAA,EAAAC,SAAAA,EAAAC,SAAAA,EAAAC,sBAAAA,GAAAC,mBAAAA,GAAAC,4BAAAA,EAAAC,eAAAA,EAAAC,OAAAA,EAAAC,WAAAA,EAAAC,UAAAA,EAAAC,cAAAA,GAAAC,UAAAA,GAAAC,aAAAA,GAAAC,aAAAA,GAAAC,OAAAA,EAAAA,EAmCIxC,EA5BFS,GAAAC,IAAA+B,OAAA,GAAA/B,EACAC,EAAAC,IAAA6B,OAAA,GAAA7B,EACAC,GAAAC,KAAA2B,OAAA,IAAA3B,GACAC,GAAAC,KAAAyB,OAAA,GAAAzB,GA0BF0B,GAAeC,EAAAA,OAAO,IAAI,EAE1B,CAAAC,GAAAC,CAAA,EAA0CC,EAAAA,SAAcL,MAAS,EAEjE,CAAAM,EAAAC,CAAA,EAA4CF,EAAAA,SAAcL,MAAS,EACnE,CAAAQ,EAAAC,EAAA,EAAkCJ,EAAAA,SAAuD,IAAI,EAC7F,CAAAK,GAAAC,CAAA,EAA4BN,EAAAA,SAA6BL,MAAS,EAClE,CAAAY,EAAAC,CAAA,EAA4BR,EAAAA,SAA6BL,MAAS,EAAE,IAAAc,EAAAtD,EAAA,CAAA,IAAAU,GAAAV,EAAA,CAAA,IAAAY,IAAAZ,EAAA,CAAA,IAAAc,IAAAd,OAAAQ,IACrD8C,EAAA,CAAAC,IACR/C,GAASgD,OACN9C,EAAY+C,KACd7C,GAAU8C,MACT5C,EAAAA,EACRd,KAAAU,EAAAV,KAAAY,GAAAZ,KAAAc,GAAAd,KAAAQ,GAAAR,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EALD,MAAA2D,EAAeL,EAMfM,EAAmBvD,EAAQsD,EAAMF,KAAQE,EAAMD,MAC/CG,GAAoBvD,EAASqD,EAAMJ,IAAOI,EAAMH,OAEhDM,EACE5D,EAAI6D,OAAQC,EAAsC,EAACC,SAAY,EAA/D/D,EAEIgE,GAAAA,QACEhE,EAAI6D,OAAQI,EAAsC,EAClD,SACA,MACF,EAAE,IAAAC,EAAApE,EAAA,CAAA,IAAAE,GAAAF,OAAA0B,GAAA1B,EAAA,CAAA,IAAAuB,GACU6C,EAACC,EAAAA,uBAAuB3C,CAAQ,EAE9C4C,KAAIC,IAAI,GAAIrE,EAAI6D,OAAQS,EAAwC,EAACC,IAAKC,EAAe,CAAC,EAAI,GAA1F,CACGnD,EADH,EAGE+C,KAAIC,OAAQrE,EAAI6D,OAAQY,EAAwC,EAACF,IAAKG,EAAe,CAAC,EAJvFlD,EAIwF1B,KAAAE,EAAAF,KAAA0B,EAAA1B,KAAAuB,EAAAvB,KAAAoE,GAAAA,EAAApE,EAAA,CAAA,EAL7F,MAAA6E,EAAkBT,EAK4E,IAAAU,EAAA9E,EAAA,CAAA,IAAAE,GAAAF,QAAA2B,GAAA3B,EAAA,EAAA,IAAAuB,GAC5EuD,EAACT,EAAAA,uBAAuB1C,CAAQ,EAE9C2C,KAAIS,IAAI,GAAI7E,EAAI6D,OAAQiB,EAAwC,EAACP,IAAKQ,EAAe,CAAC,GAClF,GADJ,CACU1D,EADV,EAGE+C,KAAIS,OAAQ7E,EAAI6D,OAAQmB,EAAwC,EAACT,IAAKU,EAAe,CAAC,EAJvFxD,EAIwF3B,KAAAE,EAAAF,MAAA2B,EAAA3B,MAAAuB,EAAAvB,MAAA8E,GAAAA,EAAA9E,EAAA,EAAA,EAL7F,MAAAoF,EAAkBN,EAOlBO,EACEnF,EAAI6D,OAAQuB,EAAgD,EAACrB,SAAY/D,EAAI+D,OACzEsB,GAAAA,KAAAA,EAAWC,OACD,CACN,EACAnB,EAAAA,uBAAuB5C,CAEM,EADzB6C,KAAIC,IAAI,GAAIrE,EAAIuE,IAAKgB,EAAa,EAAC1B,OAAQ2B,EAAkC,CACpD,EAAxBjE,CAAyB,CAC/B,EAACkE,MACK,CAAC,IAAMnE,CAAM,CAAC,EAACoE,OAR5BpD,OAWFqD,EAAUC,GAAAA,OAAAA,EAAaN,OAAQ,CAACJ,EAAWP,CAAS,CAAC,EAACc,MAAO,CAAC9B,GAAa,CAAC,CAAC,EAAC+B,KAAAA,EAC9EG,EAAeF,EAACG,MAAO9D,CAAS,EAEhC+D,EAAAA,UAAU,IAAA,CACR,MAAAC,EACEpC,EAAWW,IAAK0B,EAGd,EAA4BpC,OACvBqC,EAAe,EAExBC,GAAAA,gBAAgBH,CAAe,EAACI,MAEvB,IAAKC,GAAAA,OAAOC,GAAYX,EAAEY,EAACC,QAAmB,CAAC,EAACC,SAAU,CAAC,CAAC,EAACL,MAC7D,IAAKM,GAAAA,OAAOC,GAAMjD,EAAa,CAAC,EAAC+C,SAAU,CAAC,CAAC,EAACL,MAEnD,UAEAQ,GAAAA,aAAaC,GAAa1B,EAAcA,EAAYoB,EAACjF,QAAD,CAAa,EAAI,EAAIA,EAAS,CAAE,CACtF,EAAC8E,MACM,SAAUU,GAAAA,gBAAeL,SAAU,GAAG,CAAC,EAACM,WACnC,GAAI,EAACC,KACX,GAAK,EAACC,GACR,OAAQ,IAAA,CACVlE,GAAaiD,CAAiD,CAAC,CAChE,EAACiB,GACE,MAAO,IAAA,CACTlE,GAAaiD,CAAiD,CAAC,CAChE,CAAC,EACH,CAAChG,EAAMsB,EAAQqC,GAAaD,EAAYwB,EAAWP,EAAWf,EAAa+B,EAAGR,CAAW,CAAC,EAIxF,MAAA+B,EAAApE,EACCqE,EAAAA,kBAAAA,WACS,MAAA,GAAGhH,CAAK,KACP,OAAA,GAAGC,CAAM,KACR,eAAOD,CAAK,IAAIC,CAAM,GACrB,UAAA,MACLmC,IAAAA,GAEL,SAAA6E,EAAAA,kBAAAA,KAAA,IAAA,CAAc,UAAA,aAAa3D,EAAMF,IAAK,IAAIE,EAAMJ,GAAI,IACjDnD,SAAAA,CAAAA,GAAAkH,EAAAA,kBAAAA,KAAAC,6BAAA,CAEG,SAAA,CAAAF,wBAACG,GAAAA,MACelF,aAAAA,GACV,GAAAuD,EAAET,EAAY,EAAZ,EAAAA,CAA6B,EAC/B,GAAAS,EAAET,EAAY,EAAZ,EAAAA,CAA6B,EAC/B,KAAIzB,EAAMF,KACV,GAAAG,EAAaD,EAAMD,MAErB,MAAAtD,GACIqH,GAAAA,yBACErC,EAAY,EAAZ,EAAAA,EACA5C,OACAJ,GACAnB,EACAD,EACAuB,EAEM,EATZC,OAWQ,SAAA,CAAAkF,EACL,EAAI/D,EAAMF,KAAKoC,EACfA,EAAET,EAAY,EAAZ,EAAAA,CAA6B,EAACuC,GAC/B,EAACC,GACD/C,EAAY,EAAZ,MAAA,EAAA,EAEM,WAAA,CAAAgD,KACJ5F,GAAU6F,OAAaD,KAAAE,MACtB9F,GAAU+F,OAAeC,MAAAA,EAE1B,OAAA,CAAAJ,KACA7F,GAAM8F,OAAaD,KAAAE,MAClB/F,GAAMgG,OAAeC,MAAAA,EAC7B,EAEHZ,EAAAA,kBAAAA,IAACa,GAAAA,mBAAA,CACS,OAAAnC,EAAMhC,OAAQoE,EAAY,EAC/B,EAAApC,EAAMhC,OAAQqE,EAAY,EAAC3D,OAAUoB,EAAEY,CAAC,CAAC,EACxC,GAAA,EAAI9C,EAAMF,KACV,GAAAG,EAAaD,EAAMD,MACf,OAAA,CAAA2E,UACKrG,GAAMgG,OAAkBK,UAAAJ,OAC3BjG,GAAMgG,OAAeC,MAAAA,EAEnB,WAAA,CAAAI,UACCpG,GAAU+F,OAAkBK,UAAAJ,OAC/BhG,GAAU+F,OAAeC,MAAAA,EAE3BjH,OAAAA,EACAC,OAAAA,EACE,UAAA,YACV,cAAA,GACS,SAAA,WACEmB,UAAAA,GACHG,OAAAA,EAAAA,CAAM,CAAA,CAAA,CACd,EAvDL,KA0DAF,GAAY0B,OAAQuE,EAA4B,EAAC7D,IAAK8D,EAAY,EAClEvF,EAASyB,IAAK+D,4BACb,IAAA,CACY,UAAA,wBAEC,UAAA,aAAa/B,EAACiB,CAAE,IAAIjB,EAACZ,CAAE,IAEhC,QAAAvE,EACImF,EAACgC,OACCtI,EAAaI,EAAWmI,QAASjC,EAACgC,KAAM,CAAC,IAAMnH,EAA/C,EADFa,GAKAP,GAAqBqC,SAAY,EAC/BrC,GAAqB8G,QAASjC,EAACsB,KAAM,IAAM,GAA3C,IAAA5F,GADF,IAMQ,aAAAwG,GAAA,CACZ/F,EAAiB6D,CAAC,EAClBpD,EAAUsF,EAAKC,OAAQ,EACvBzF,EAAUwF,EAAKE,OAAQ,EACvBzH,KAAoBqF,CAAC,CAAC,EAEX,YAAAqC,GAAA,CACXlG,EAAiB6D,CAAC,EAClBpD,EAAUsF,EAAKC,OAAQ,EACvBzF,EAAUwF,EAAKE,OAAQ,CAAC,EAEjB,QAAA,IAAA,EACHhH,IAAAE,KACEgH,WAAQjG,EAAgB2D,CAAgC,GAAxD3E,GACFiB,EAAkBP,MAAS,EAC3BX,KAAqBW,MAAS,IAE9BO,EAAkB0D,CAAC,EACnB5E,KAAqB4E,CAAC,GAEzB,EAEW,aAAA,IAAA,CACZ7D,EAAiBJ,MAAS,EAC1BW,EAAUX,MAAS,EACnBa,EAAUb,MAAS,EACnBpB,KAAoBoB,MAAS,CAAC,EAGhC,SAAA,CAAA6E,EAAAA,kBAAAA,IAAA,SAAA,CACM,KACA,GAAA,EACD,EAAAhC,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,EAED,KAAAtB,EAAI6D,OAAQiF,EAAc,EAAC/E,SAAY,EACnC9D,EAAY,CAAA,EACXsG,EAACgC,MAEAtI,EAAaI,EAAWmI,QAASjC,EAACgC,KAAM,CAAC,EADzCQ,GAAAA,OAAMC,KACoC,GAGlD7D,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GAAqD,IAAtDN,EACCmG,EAAAA,kBAAAA,IAAA,IAAA,CACE,SAAAA,EAAAA,kBAAAA,IAAA,gBAAA,CACK,EAAA,GAAKhC,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GACL,KAAK6D,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GACD,SAAK6D,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GACJ,UAAK6D,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GAEb,SAAA6F,EAAAA,kBAAAA,IAAA,MAAA,CAAe,UAAA,kEACZnG,SAAAA,EACCmG,EAAAA,kBAAAA,IAAA,IAAA,CACa,UAAA8B,KACT,+BACAlH,GAAUmH,iBACZ,EACO,MAAA,CAAAC,SACK,GAAG/E,KAAIS,IACfT,KAAIC,IACFD,KAAIgF,OACDjE,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GAAqD,CACxD,EACA,EACF,EACA8C,KAAIC,IACFD,KAAIgF,OACAjE,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GAAqD,GACrD,GAAGiF,EAACsB,KAAM,GAAE9D,MAChB,EACA,EACF,EACA,EACF,CAAC,KAAIsF,QACI,OAAMd,MACRe,GAAAA,2BACLtJ,EAAI6D,OAAQ0F,EAAc,EAACxF,SAAY,EACnC9D,KACCsG,EAACgC,MAEAtI,EAAaI,EAAWmI,QAASjC,EAACgC,KAAM,CAAC,EADzCQ,UAAMC,IAEd,EAAC,GACGlH,GAAMoH,mBAAN,CAAA,CAA8B,EAGnC3C,SAAAA,EAACsB,KAAAA,CACJ,EAnCD,KAqCH,CAAA,CACF,EACF,EAhDD,IAAA,GAxDItB,EAACsB,KA0GR,CACD,EACA1G,EAAAgG,EAAAA,kBAAAA,IAAAE,EAAAA,kBAAAA,SAAA,CAEIlG,SAAAA,EAASoD,IAAK,CAAAiF,EAAAC,IACbtC,EAAAA,kBAAAA,IAACuC,GAAAA,SAAA,CAEO,KAAAC,EAAEC,KACD,MAAAD,EAAEpB,MACN,EAAA5C,EAAEgE,EAAEE,KAAgB,EACnB,GAAA,EAAIpG,EAAMF,KACV,GAAAG,EAAaD,EAAMD,MACX,WAAAmG,EAAE5H,WACN,OAAA4H,EAAE7H,OACA,aARL2H,CAQS,CAEjB,EAAC,EAdL,KAiBAtH,GAAY0B,OAAQiG,EAA2B,EAACvF,IAAKwF,EAAY,CAAA,CAAA,CACpE,CAAA,CACF,EAEA5C,EAAAA,kBAAAA,IAAA,MAAA,CAAY,MAAA,CAAAhH,MAAS,GAAGA,CAAK,KAAIC,OAAU,GAAGA,CAAM,IAAA,EAClD,iCAAA,MAAA,CAAe,UAAA,0EACb,SAAA+G,EAAAA,kBAAAA,IAAC6C,GAAAA,EAAA,IACH,CAAA,CACF,EACD,IAAAC,EAAAnK,EAAA,EAAA,IAAAiC,GAAAd,SAAAnB,EAAA,EAAA,IAAAkD,IAAAlD,EAAA,EAAA,IAAAoD,GAAApD,EAAA,EAAA,IAAA2C,IAAA3C,EAAA,EAAA,IAAAgC,GAAAb,SAAAnB,EAAA,EAAA,IAAAmB,GACAgJ,EAAAxH,IAAAxB,GAAA+B,IAAAE,0BACEgH,GAAAA,QAAA,CACOzH,QACAxB,KAAAA,EACA+B,QACAE,KAAAA,EACW,gBAAApB,GAAMb,QACZ,UAAAc,GAAUd,QAAS,EAPjC,KASOnB,EAAA,EAAA,EAAAiC,GAAAd,QAAAnB,MAAAkD,GAAAlD,MAAAoD,EAAApD,MAAA2C,GAAA3C,EAAA,EAAA,EAAAgC,GAAAb,QAAAnB,MAAAmB,EAAAnB,MAAAmK,GAAAA,EAAAnK,EAAA,EAAA,EAAA,IAAAqK,EAAArK,EAAA,EAAA,IAAAiC,GAAAqI,OAAAtK,EAAA,EAAA,IAAA+B,GAAA/B,EAAA,EAAA,IAAA8C,GACPuH,EAAAtI,GAAkBe,IAAmBN,OACpC6E,EAAAA,kBAAAA,IAACkD,GAAAA,cACOxI,KAAAA,EACAe,KAAAA,EACGC,QAAAA,EACE,UAAAd,GAAUqI,MAAO,EAL/B,KAOOtK,EAAA,EAAA,EAAAiC,GAAAqI,MAAAtK,MAAA+B,EAAA/B,MAAA8C,EAAA9C,MAAAqK,GAAAA,EAAArK,EAAA,EAAA,EAAA,IAAAwK,EAAA,OAAAxK,EAAA,EAAA,IAAAoH,GAAApH,QAAAmK,GAAAnK,EAAA,EAAA,IAAAqK,GAhOVG,EAAAlD,EAAAA,kBAAAA,KAAAC,6BAAA,CACGH,SAAAA,CAAAA,EA8MA+C,EAUAE,CAAAA,EAOO,EACPrK,MAAAoH,EAAApH,MAAAmK,EAAAnK,MAAAqK,EAAArK,MAAAwK,GAAAA,EAAAxK,EAAA,EAAA,EAjOHwK,CAiOG,CAxVA,SAAAP,GAAAQ,EAAA,CAAA,OA4TgEhE,EAACiE,KAAM,CA5TvE,SAAAV,GAAAW,EAAA,CAAA,OA4T+BlE,EAACC,WAAc,OAAO,CA5TrD,SAAA+C,GAAAmB,EAAA,CAAA,OAyR2Cf,EAAEpB,KAAM,CAzRnD,SAAAO,GAAAa,EAAA,CAAA,OAgP+BA,EAAEpB,KAAM,CAhPvC,SAAAF,GAAAsC,EAAA,CAAA,OA2LiEpE,EAACiE,KAAM,CA3LxE,SAAApC,GAAAwC,EAAA,CAAA,OA2L+BrE,EAACC,WAAc,QAAQ,CA3LtD,SAAA0B,GAAA2C,EAAA,CAAA,OAsKiCtE,IAAM,CAAC,CAtKxC,SAAA0B,GAAA6C,EAAA,CAAA,OAqKsCvE,IAAM,CAAC,CArK7C,SAAAL,GAAA6E,EAAA,CAAA,OAgGWxE,EAACC,QAAS,CAhGrB,SAAAP,GAAA+E,EAAA,CAAA,MA4FqB,CAAA,GACjBzE,EAAC,GACAA,EAACvG,MAAD,CAAAA,KAAkB,CAAA,GAAKuG,EAACvG,IAAAA,CAAM,CAAE,CACrC,CA/FA,SAAAwF,GAAAyF,EAAA,CAAA,OAiF4E1E,GAAM,IAAI,CAjFtF,SAAAhB,GAAA2F,EAAA,CAAA,OAiFmC3E,EAACjF,MAAO,CAjF3C,SAAA8D,GAAA+F,EAAA,CAAA,OA4Ec5E,EAACjF,SAAYgB,QAAaiE,EAACjF,SAAY,IAAI,CA5EzD,SAAA2D,GAAAmG,EAAA,CAAA,OAyE4E7E,EAACC,QAAS,CAzEtF,SAAAxB,GAAAqG,EAAA,CAAA,MAyE8B,CAAClH,EAAAA,uBAAuBoC,EAACC,QAAS,CAAC,CAzEjE,SAAAzB,GAAAuG,EAAA,CAAA,OAsE0E/E,EAACC,QAAS,CAtEpF,SAAA1B,GAAAyG,EAAA,CAAA,MAsE4B,CAACpH,EAAAA,uBAAuBoC,EAACC,QAAS,CAAC,CAtE/D,SAAA9B,GAAA8G,EAAA,CAAA,OAmE4EjF,EAACC,QAAS,CAnEtF,SAAA/B,GAAAgH,EAAA,CAAA,MAmE8B,CAACtH,EAAAA,uBAAuBoC,EAACC,QAAS,CAAC,CAnEjE,SAAAhC,GAAAkH,EAAA,CAAA,OAgE0EnF,EAACC,QAAS,CAhEpF,SAAAlC,GAAAqH,EAAA,CAAA,MAgE4B,CAACxH,EAAAA,uBAAuBoC,EAACC,QAAS,CAAC,CAhE/D,SAAAvC,GAAAsC,EAAA,CAAA,MA0DoB,CAACpC,EAAAA,uBAAuBoC,EAACjF,MAAO,CAAC,CA1DrD,SAAAwC,GAAA8H,EAAA,CAAA,MAuDc,CAACzH,EAAAA,uBAAuBoC,EAACjF,MAAO,CAAC,CAqS/C,SAAAuK,GAAAhM,EAAA,CAAA,MAAAC,EAAAC,EAAAA,uBAAAA,EAAA,EAAA,EACL,CAAAC,KAAAA,EAAAC,aAAAA,EAAAC,UAAAA,GAAAC,MAAAA,EAAAC,OAAAA,EAAAC,YAAAA,EAAAC,UAAAC,EAAAC,aAAAC,EAAAC,WAAAC,GAAAC,YAAAC,GAAAG,WAAAA,EAAAC,QAAAA,EAAAC,kBAAAA,EAAAC,UAAAA,EAAAC,cAAAA,GAAAC,cAAAA,EAAAC,OAAAA,EAAAC,eAAAA,EAAAC,SAAAA,EAAAC,SAAAA,EAAAC,sBAAAA,EAAAC,mBAAAA,EAAAmK,IAAAA,GAAAlK,4BAAAA,GAAAC,eAAAA,EAAAf,OAAAA,EAAAC,OAAAA,EAAAe,OAAAA,EAAAC,WAAAA,EAAAC,UAAAA,GAAAC,cAAAA,GAAAC,UAAAA,GAAAC,aAAAA,GAAAC,aAAAA,GAAAC,OAAAA,EAAAA,EAoCIxC,EA7BFS,EAAAC,IAAA+B,OAAA,GAAA/B,EACAC,GAAAC,IAAA6B,OAAA,GAAA7B,EACAC,GAAAC,KAAA2B,OAAA,GAAA3B,GACAC,GAAAC,KAAAyB,OAAA,GAAAzB,GA2BF0B,GAAeC,EAAAA,OAAO,IAAI,EAE1B,CAAAC,EAAAC,CAAA,EAA0CC,EAAAA,SAAcL,MAAS,EAEjE,CAAAM,EAAAC,CAAA,EAA4CF,EAAAA,SAAcL,MAAS,EACnE,CAAAQ,GAAAC,EAAA,EAAkCJ,EAAAA,SAAuD,IAAI,EAC7F,CAAAK,EAAAC,CAAA,EAA4BN,EAAAA,SAA6BL,MAAS,EAClE,CAAAY,EAAAC,CAAA,EAA4BR,EAAAA,SAA6BL,MAAS,EAAE,IAAAc,EAAAtD,EAAA,CAAA,IAAAU,IAAAV,EAAA,CAAA,IAAAY,IAAAZ,EAAA,CAAA,IAAAc,IAAAd,OAAAQ,GACrD8C,EAAA,CAAAC,IACR/C,EAASgD,OACN9C,GAAY+C,KACd7C,GAAU8C,MACT5C,EAAAA,EACRd,KAAAU,GAAAV,KAAAY,GAAAZ,KAAAc,GAAAd,KAAAQ,EAAAR,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EALD,MAAA2D,EAAeL,EAMfM,GAAmBvD,EAAQsD,EAAMF,KAAQE,EAAMD,MAC/CG,EAAoBvD,EAASqD,EAAMJ,IAAOI,EAAMH,OAEhDM,EACE5D,EAAI6D,OAAQkI,EAAsC,EAAChI,SAAY,EAA/D/D,EAEIgE,GAAAA,QACEhE,EAAI6D,OAAQmI,EAAsC,EAClD,SACA,MACF,EAAE,IAAA9H,EAAApE,EAAA,CAAA,IAAAE,GAAAF,OAAA0B,GAAA1B,EAAA,CAAA,IAAAuB,GACU6C,EAACC,EAAAA,uBAAuB3C,CAAQ,EAE9C4C,KAAIC,IAAI,GAAIrE,EAAI6D,OAAQoI,EAAwC,EAAC1H,IAAK2H,EAAe,CAAC,EAAI,GAA1F,CACG7K,EADH,EAGE+C,KAAIC,OAAQrE,EAAI6D,OAAQsI,EAAwC,EAAC5H,IAAK6H,EAAe,CAAC,EAJvF5K,EAIwF1B,KAAAE,EAAAF,KAAA0B,EAAA1B,KAAAuB,EAAAvB,KAAAoE,GAAAA,EAAApE,EAAA,CAAA,EAL7F,MAAAuM,EAAkBnI,EAK4E,IAAAU,EAAA9E,EAAA,CAAA,IAAAE,GAAAF,QAAA2B,GAAA3B,EAAA,EAAA,IAAAuB,GAC5EuD,EAACT,EAAAA,uBAAuB1C,CAAQ,EAE9C2C,KAAIS,IAAI,GAAI7E,EAAI6D,OAAQyI,EAAwC,EAAC/H,IAAKgI,EAAe,CAAC,GAClF,GADJ,CACUlL,EADV,EAGE+C,KAAIS,OAAQ7E,EAAI6D,OAAQ2I,EAAwC,EAACjI,IAAKkI,EAAe,CAAC,EAJvFhL,EAIwF3B,KAAAE,EAAAF,MAAA2B,EAAA3B,MAAAuB,EAAAvB,MAAA8E,GAAAA,EAAA9E,EAAA,EAAA,EAL7F,MAAA4M,EAAkB9H,EAOlBO,EACEnF,EAAI6D,OAAQ8I,EAAgD,EAAC5I,SAAY/D,EAAI+D,OACzEsB,GAAAA,KAAAA,EAAWC,OACD,CACN,EACAnB,EAAAA,uBAAuB5C,CAEM,EADzB6C,KAAIC,IAAI,GAAIrE,EAAIuE,IAAKqI,EAAa,EAAC/I,OAAQgJ,EAAkC,CACpD,EAAxBtL,CAAyB,CAC/B,EAACkE,MACK,CAAC,IAAMnE,CAAM,CAAC,EAACoE,OAR5BpD,OAWFkF,EAAU5B,GAAAA,OAAAA,EAAaN,OAAQ,CAACoH,EAAWL,CAAS,CAAC,EAAC5G,MAAO,CAAC,EAAG/B,EAAU,CAAC,EAACgC,KAAAA,EAC7EoH,EAAetF,EAAC1B,MAAO9D,EAAS,EAEhC+D,EAAAA,UAAU,IAAA,CACR,MAAAC,EACEpC,EAAWW,IAAKwI,EAGd,EAA4BlJ,OACvBmJ,EAAe,EAExB7G,GAAAA,gBAAgBH,CAAe,EAACI,MAEvB,IAAKM,GAAAA,OAAOJ,GAAYkB,EAAEjB,EAACC,QAAmB,CAAC,EAACC,SAAU,CAAC,CAAC,EAACL,MAC7D,IAAKC,GAAAA,OAAOM,GAAMhD,EAAc,CAAC,EAAC8C,SAAU,CAAC,CAAC,EAACL,MAEpD,UAEAQ,GAAAA,aAAaC,GAAa1B,EAAcA,EAAYoB,EAACjF,QAAD,CAAa,EAAI,EAAIA,EAAS,CAAE,CACtF,EAAC8E,MACM,SAAUU,GAAAA,gBAAeL,SAAU,GAAG,CAAC,EAACM,WACnC,GAAI,EAACC,KACX,GAAK,EAACC,GACR,OAAQ,IAAA,CACVlE,GAAaiD,CAAiD,CAAC,CAChE,EAACiB,GACE,MAAO,IAAA,CACTlE,GAAaiD,CAAiD,CAAC,CAChE,CAAC,EACH,CAAChG,EAAMsB,EAAQqC,EAAaD,GAAYgJ,EAAWL,EAAWzI,EAAa4D,EAAGrC,CAAW,CAAC,EAIxF,MAAA+B,EAAApE,GACCqE,EAAAA,kBAAAA,WACS,MAAA,GAAGhH,CAAK,KACP,OAAA,GAAGC,CAAM,KACR,eAAOD,CAAK,IAAIC,CAAM,GACrB,UAAA,MACLmC,IAAAA,GAEL,SAAA6E,EAAAA,kBAAAA,KAAA,IAAA,CAAc,UAAA,aAAa3D,EAAMF,IAAK,IAAIE,EAAMJ,GAAI,IACjDnD,SAAAA,CAAAA,GAAAkH,EAAAA,kBAAAA,KAAAC,6BAAA,CAEG,SAAA,CAAAF,wBAACG,GAAAA,MACelF,aAAAA,GACV,GAAAoF,EAAEkF,EAAY,EAAZ,EAAAA,CAA6B,EAC/B,GAAAlF,EAAEkF,EAAY,EAAZ,EAAAA,CAA6B,EAC/B,KAAIjJ,EAAMJ,IACV,GAAAM,EAAcF,EAAMH,OAEtB,MAAApD,GACIqH,GAAAA,yBACEmF,EAAY,EAAZ,EAAAA,EACApK,OACAJ,GACAnB,EACAD,EACAuB,EAEM,EATZC,OAWQ,SAAA,CAAAkF,EACLA,EAAEkF,EAAY,EAAZ,EAAAA,CAA6B,EAAC/G,EAChC,EAAIrF,EAASoH,GACZ,SAAQD,GACR,CAAA,EAEM,WAAA,CAAAE,KACJ5F,GAAU6F,OAAaD,KAAAE,MACtB9F,GAAU+F,OAAeC,MAAAA,EAE1B,OAAA,CAAAJ,KACA7F,GAAM8F,OAAaD,KAAAE,MAClB/F,GAAMgG,OAAeC,MAAAA,EAC7B,EAEHZ,EAAAA,kBAAAA,IAAC8F,GAAAA,mBAAA,CACS,OAAAH,EAAMjJ,OAAQqJ,EAAY,EAC/B,EAAAJ,EAAMjJ,OAAQsJ,EAAY,EAAC5I,IAAK6I,GAAK5F,EAAEjB,CAAC,CAAC,EACxC,GAAA,EAAIjG,EACJ,GAAAqD,EAAcF,EAAMH,OAChB,OAAA,CAAA6E,UACKrG,GAAM8F,OAAkBO,UAAAJ,OAC3BjG,GAAM8F,OAAeG,MAAAA,EAEnB,WAAA,CAAAI,UACCpG,GAAU6F,OAAkBO,UAAAJ,OAC/BhG,GAAU6F,OAAeG,MAAAA,EAE3BjH,OAAAA,EACAC,OAAAA,EACE,UAAA,YACV,cAAA,GACWmB,UAAAA,GACHG,OAAAA,EAAAA,CAAM,CAAA,CAAA,CACd,EAtDL,KAyDAF,GAAY0B,OAAQwJ,EAA4B,EAAC9I,IAAK+I,EAAY,EAClExK,GAASyB,IAAK+D,4BACb,IAAA,CACY,UAAA,wBAEC,UAAA,aAAa/B,EAACiB,CAAE,IAAIjB,EAACZ,CAAE,IAEhC,QAAAvE,GACImF,EAACgC,OACCtI,EAAaI,EAAWmI,QAASjC,EAACgC,KAAM,CAAC,IAAMnH,GAA/C,EADFa,GAKAP,EAAqBqC,SAAY,EAC/BrC,EAAqB8G,QAASjC,EAACsB,KAAM,IAAM,GAA3C,IAAA5F,GADF,IAMQ,aAAAwG,GAAA,CACZ/F,EAAiB6D,CAAC,EAClBpD,EAAUsF,EAAKC,OAAQ,EACvBzF,EAAUwF,EAAKE,OAAQ,EACvBzH,IAAoBqF,CAAC,CAAC,EAEX,YAAAqC,GAAA,CACXlG,EAAiB6D,CAAC,EAClBpD,EAAUsF,EAAKC,OAAQ,EACvBzF,EAAUwF,EAAKE,OAAQ,CAAC,EAEjB,QAAA,IAAA,EACHhH,GAAAE,KACEgH,WAAQjG,EAAgB2D,CAAgC,GAAxD3E,IACFiB,EAAkBP,MAAS,EAC3BX,IAAqBW,MAAS,IAE9BO,EAAkB0D,CAAC,EACnB5E,IAAqB4E,CAAC,GAEzB,EAEW,aAAA,IAAA,CACZ7D,EAAiBJ,MAAS,EAC1BW,EAAUX,MAAS,EACnBa,EAAUb,MAAS,EACnBpB,IAAoBoB,MAAS,CAAC,EAGhC,SAAA,CAAA6E,EAAAA,kBAAAA,IAAA,SAAA,CACM,GAAA,EACA,KAEF,KAAAnH,EAAI6D,OAAQ0J,EAAc,EAACxJ,SAAY,EACnC9D,EAAY,CAAA,EACXsG,EAACgC,MAEAtI,EAAaI,EAAWmI,QAASjC,EAACgC,KAAM,CAAC,EADzCQ,GAAAA,OAAMC,KAGN,OAAA7D,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,EAAiD,GAEzD6D,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GAAqD,IAAtDN,EACCmG,EAAAA,kBAAAA,SACE,SAAAA,EAAAA,kBAAAA,IAAA,iBACK,EAAA,GAAKhC,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GACL,EAAA,GAAK6D,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GACD,MAAA,GAAK6D,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GACJ,OAAA,GAAK6D,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GAEb,SAAA6F,EAAAA,kBAAAA,WAAe,UAAA,0EACZnG,SAAAA,EACCmG,EAAAA,kBAAAA,IAACqG,KAAA,CACY,UAAAvE,EAAAA,GACT,+BACAlH,GAAUmH,iBACZ,EACa,aAAA,OACN,MAAA,CAAAC,SACK,GAAG/E,KAAIS,IACfT,KAAIC,IACFD,KAAIgF,OACDjE,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GAAqD,CACxD,EACA,EACF,EACA8C,KAAIC,IACFD,KAAIgF,OACAjE,EAAcA,EAAYoB,EAACjF,QAAD,CAAsB,EAAhDA,GAAqD,GACrD,GAAGiF,EAACsB,KAAM,GAAE9D,MAChB,EACA,EACF,EACA,EACF,CAAC,KAAIwE,MACEe,GAAAA,2BACLtJ,EAAI6D,OAAQ4J,EAAc,EAAC1J,SAAY,EACnC9D,KACCsG,EAACgC,MAEAtI,EAAaI,EAAWmI,QAASjC,EAACgC,KAAM,CAAC,EADzCQ,UAAMC,IAEd,EAACK,QACQ,OAAM,GACXvH,GAAMoH,mBAAN,CAAA,CAA8B,EAGnC3C,SAAAA,EAACsB,KAAAA,CACJ,EApCD,KAsCH,CAAA,CACF,EACF,EAjDD,IAAA,GAxDItB,EAACsB,KA2GR,CACD,EACA1G,wDAEIA,SAAAA,EAASoD,IAAK,CAAAiF,EAAAC,IACbtC,EAAAA,kBAAAA,IAACuG,GAAAA,SAAA,CAEO,KAAA/D,EAAEC,KACD,MAAAD,EAAEpB,MACN,EAAAf,EAAEmC,EAAEE,KAAgB,EACnB,GAAA,EAAIpG,EAAMJ,IACV,GAAAM,EAAcF,EAAMH,OACd,SAAAkE,EAAEmC,EAAEE,KAAgB,EAAInG,GAAa,KAArCoI,GAAA,OAAA,QACE,WAAAnC,EAAE5H,WACN,OAAA4H,EAAE7H,OACA,SAAA,EAAA,EATL2H,CASS,CAEjB,CAAA,CAAC,EAfL,KAkBAtH,GAAY0B,OAAQ8J,EAA2B,EAACpJ,IAAKqJ,EAAY,CAAA,CAAA,CACpE,CAAA,CACF,EAEAzG,EAAAA,kBAAAA,IAAA,MAAA,CAAY,MAAA,CAAAhH,MAAS,GAAGA,CAAK,KAAIC,OAAU,GAAGA,CAAM,IAAA,EAClD,iCAAA,MAAA,CAAe,UAAA,0EACb,SAAA+G,EAAAA,kBAAAA,IAAC6C,GAAAA,EAAA,IACH,CAAA,CACF,EACD,IAAAC,EAAAnK,EAAA,EAAA,IAAAiC,GAAAd,SAAAnB,EAAA,EAAA,IAAAkD,GAAAlD,EAAA,EAAA,IAAAoD,GAAApD,EAAA,EAAA,IAAA2C,GAAA3C,EAAA,EAAA,IAAAgC,GAAAb,SAAAnB,EAAA,EAAA,IAAAmB,GACAgJ,EAAAxH,GAAAxB,GAAA+B,GAAAE,0BACEgH,GAAAA,QAAA,CACOzH,OACAxB,KAAAA,EACA+B,OACAE,KAAAA,EACW,gBAAApB,GAAMb,QACZ,UAAAc,GAAUd,QAAS,EAPjC,KASOnB,EAAA,EAAA,EAAAiC,GAAAd,QAAAnB,MAAAkD,EAAAlD,MAAAoD,EAAApD,MAAA2C,EAAA3C,EAAA,EAAA,EAAAgC,GAAAb,QAAAnB,MAAAmB,EAAAnB,MAAAmK,GAAAA,EAAAnK,EAAA,EAAA,EAAA,IAAAqK,EAAArK,EAAA,EAAA,IAAAiC,GAAAqI,OAAAtK,EAAA,EAAA,IAAA+B,GAAA/B,EAAA,EAAA,IAAA8C,GACPuH,EAAAtI,GAAkBe,IAAmBN,OACpC6E,EAAAA,kBAAAA,IAACkD,GAAAA,cACOxI,KAAAA,EACAe,KAAAA,EACGC,QAAAA,EACE,UAAAd,GAAUqI,MAAO,EAL/B,KAOOtK,EAAA,EAAA,EAAAiC,GAAAqI,MAAAtK,MAAA+B,EAAA/B,MAAA8C,EAAA9C,MAAAqK,GAAAA,EAAArK,EAAA,EAAA,EAAA,IAAAwK,EAAA,OAAAxK,EAAA,EAAA,IAAAoH,GAAApH,QAAAmK,GAAAnK,EAAA,EAAA,IAAAqK,GAjOVG,EAAAlD,EAAAA,kBAAAA,KAAAC,6BAAA,CACGH,SAAAA,CAAAA,EA+MA+C,EAUAE,CAAAA,EAOO,EACPrK,MAAAoH,EAAApH,MAAAmK,EAAAnK,MAAAqK,EAAArK,MAAAwK,GAAAA,EAAAxK,EAAA,EAAA,EAlOHwK,CAkOG,CA1VA,SAAAsD,GAAArD,EAAA,CAAA,OA8TgEhE,EAACiE,KAAM,CA9TvE,SAAAmD,GAAAlD,EAAA,CAAA,OA8T+BlE,EAACC,WAAc,OAAO,CA9TrD,SAAAiH,GAAA/C,EAAA,CAAA,OAyR2Cf,EAAEpB,KAAM,CAzRnD,SAAAgF,GAAA5D,EAAA,CAAA,OA+O+BA,EAAEpB,KAAM,CA/OvC,SAAA+E,GAAA3C,EAAA,CAAA,OA2LiEpE,EAACiE,KAAM,CA3LxE,SAAA6C,GAAAzC,EAAA,CAAA,OA2L+BrE,EAACC,WAAc,QAAQ,CA3LtD,SAAA2G,GAAAtC,EAAA,CAAA,OAuKiCtE,IAAM,CAAC,CAvKxC,SAAA2G,GAAApC,EAAA,CAAA,OAsKsCvE,IAAM,CAAC,CAtK7C,SAAAyG,GAAAjC,EAAA,CAAA,OAiGWxE,EAACC,QAAS,CAjGrB,SAAAuG,GAAA/B,EAAA,CAAA,MA6FqB,CAAA,GACjBzE,EAAC,GACAA,EAACvG,MAAD,CAAAA,KAAkB,CAAA,GAAKuG,EAACvG,IAAAA,CAAM,CAAE,CACrC,CAhGA,SAAA6M,GAAA5B,EAAA,CAAA,OAkF4E1E,GAAM,IAAI,CAlFtF,SAAAqG,GAAA1B,EAAA,CAAA,OAkFmC3E,EAACjF,MAAO,CAlF3C,SAAAqL,GAAAxB,EAAA,CAAA,OA6Ec5E,EAACjF,SAAYgB,QAAaiE,EAACjF,SAAY,IAAI,CA7EzD,SAAAmL,GAAArB,EAAA,CAAA,OA0E4E7E,EAACC,QAAS,CA1EtF,SAAAgG,GAAAnB,EAAA,CAAA,MA0E8B,CAAClH,EAAAA,uBAAuBoC,EAACC,QAAS,CAAC,CA1EjE,SAAA+F,GAAAjB,EAAA,CAAA,OAuE0E/E,EAACC,QAAS,CAvEpF,SAAA8F,GAAAf,EAAA,CAAA,MAuE4B,CAACpH,EAAAA,uBAAuBoC,EAACC,QAAS,CAAC,CAvE/D,SAAA4F,GAAAZ,EAAA,CAAA,OAoE4EjF,EAACC,QAAS,CApEtF,SAAA2F,GAAAV,EAAA,CAAA,MAoE8B,CAACtH,EAAAA,uBAAuBoC,EAACC,QAAS,CAAC,CApEjE,SAAA0F,GAAAR,EAAA,CAAA,OAiE0EnF,EAACC,QAAS,CAjEpF,SAAAyF,GAAAN,EAAA,CAAA,MAiE4B,CAACxH,EAAAA,uBAAuBoC,EAACC,QAAS,CAAC,CAjE/D,SAAAwF,GAAAzF,EAAA,CAAA,MA2DoB,CAACpC,EAAAA,uBAAuBoC,EAACjF,MAAO,CAAC,CA3DrD,SAAAyK,GAAAH,EAAA,CAAA,MAwDc,CAACzH,EAAAA,uBAAuBoC,EAACjF,MAAO,CAAC,CChV/C,SAAAuM,GAAAhO,EAAA,CAAA,MAAAC,EAAAC,EAAAA,uBAAAA,EAAA,EAAA,EACL,CAAAC,KAAAA,EAAA8N,WAAAA,EAAAxN,UAAAA,GAAAE,aAAAA,EAAAE,WAAAA,EAAAE,YAAAA,EAAAmN,OAAAA,EAAAC,QAAAA,EAAAC,iBAAAA,GAAA7N,OAAAA,GAAAD,MAAAA,EAAA+N,SAAAA,EAAA7N,YAAAA,EAAA8N,iBAAAA,EAAAC,QAAAA,GAAAC,eAAAA,EAAApN,QAAAA,EAAAC,kBAAAA,EAAAC,UAAAA,EAAAmN,eAAAA,EAAAC,QAAAA,EAAAjN,OAAAf,EAAAS,WAAAP,GAAAP,UAAAS,GAAAY,eAAAA,EAAAC,SAAAA,EAAAC,SAAAA,EAAAC,sBAAAb,EAAAc,mBAAAA,EAAA6M,UAAAA,GAAAC,gBAAArL,GAAAsL,cAAAxK,GAAAyK,aAAA/J,GAAAgK,SAAA1H,GAAA2H,YAAA5E,GAAA6E,UAAA3E,EAAA4E,MAAAzE,GAAA1I,4BAAAoN,GAAAnN,eAAAA,GAAAoN,YAAAC,GAAApO,OAAAqO,EAAApO,OAAAqO,EAAAtN,OAAAA,EAAAC,WAAAA,EAAAC,UAAAqN,GAAApN,cAAAqN,GAAApN,UAAAqN,EAAApN,aAAAqN,EAAApN,aAAAqN,EAAApN,OAAAqN,CAAAA,EAmDI7P,EA7BFyB,EAAAf,IAAA+B,OAAA,EAAA/B,EACAS,EAAAP,KAAA6B,OAAA,GAAA7B,GACAP,GAAAS,KAAA2B,OAAA,GAAA3B,GAAgB,IAAAgP,EAAA7P,OAAAe,GAIhB8O,EAAA9O,IAAAyB,OAAA,CAAA,EAAAzB,EAA0Bf,KAAAe,EAAAf,KAAA6P,GAAAA,EAAA7P,EAAA,CAAA,EAA1B,MAAA4B,EAAAiO,EAGAlB,EAAArL,KAAAd,OAAA,GAAAc,GACAsL,EAAAxK,KAAA5B,OAAA,GAAA4B,GACAyK,EAAA/J,KAAAtC,OAAA,GAAAsC,GACAgK,EAAA1H,KAAA5E,OAAA,KAAA4E,GACA2H,EAAA5E,KAAA3H,OAAA,GAAA2H,GACA6E,EAAA3E,IAAA7H,OAAA,EAAA6H,EACA4E,EAAAzE,KAAAhI,OAAA,QAAAgI,GACA1I,EAAAoN,KAAA1M,OAAA,GAAA0M,GAEAC,EAAAC,KAAA5M,OAAA,WAAA4M,GACApO,EAAAqO,IAAA7M,OAAA,GAAA6M,EACApO,EAAAqO,IAAA9M,OAAA,GAAA8M,EAGApN,EAAAqN,KAAA/M,OAAA,EAAA+M,GACApN,EAAAqN,KAAAhN,OAAA,GAAAgN,GACApN,GAAAqN,IAAAjN,OAAA,EAAAiN,EAAa,IAAAK,GAAA9P,OAAA0P,GACbI,GAAAJ,IAAAlN,OAAA,CAAA,EAAAkN,EAAiB1P,KAAA0P,EAAA1P,KAAA8P,IAAAA,GAAA9P,EAAA,CAAA,EAAjB,MAAAqC,GAAAyN,GACAxN,GAAAqN,IAAAnN,OAAA,GAAAmN,EACApN,GAAAqN,IAAApN,OAAA,KAAAoN,EAEF,CAAAG,GAAAC,EAAA,EAAgCnN,EAAAA,SAAS,CAAC,EAC1C,CAAAoN,GAAAC,EAAA,EAAkCrN,EAAAA,SAAS,CAAC,EAC5C,CAAAvB,GAAA6O,EAAA,EAA0CtN,EAAAA,SAA6BL,MAAS,EAEhF4N,GAAiB1N,EAAAA,OAAuB,IAAI,EAC5C2N,GAAuB3N,EAAAA,OAAuB,IAAI,EAClD4N,GAAanB,IAAgB,aAAhBpD,GAAAjM,GAA+D,IAAAyQ,GAAAC,GAAAxQ,EAAA,CAAA,IAAAyQ,OAAAC,IAAA,2BAAA,GAElEH,GAAAA,IAAA,CACR,MAAAI,GAAuB,IAAIC,eAAeC,IAAA,CACxCb,GAAYa,GAAO,CAAA,EAAGC,OAAOC,aAAjB,GAAoC,EAChDb,GAAaW,GAAO,CAAA,EAAGC,OAAOE,cAAjB,GAAqC,CAAC,CACpD,EACD,OAAIZ,GAAQa,SACVN,GAAcO,QAASd,GAAQa,OAAQ,EAElC,IAAMN,GAAcQ,WAAAA,CAAa,EACvCX,GAAA,CAAA,EAAExQ,KAAAuQ,GAAAvQ,KAAAwQ,KAAAD,GAAAvQ,EAAA,CAAA,EAAAwQ,GAAAxQ,EAAA,CAAA,GATLiG,EAAAA,UAAUsK,GASPC,EAAE,EAGU,MAAAY,GAAAnP,GAAUoP,eACdC,GAAAtP,GAAMqP,eAAgB,IAAAE,GAAAvR,OAAAiC,GAAAuP,aAAAxR,OAAAiC,GAAAwP,OAAAzR,OAAAE,GAAAF,EAAA,CAAA,IAAA6O,GAAA7O,EAAA,EAAA,IAAAmO,IAAAnO,EAAA,EAAA,IAAA4O,GAAA5O,QAAAgO,GAAAhO,EAAA,EAAA,IAAAgC,GAAAwP,aAAAxR,EAAA,EAAA,IAAAgC,GAAAyP,OAAAzR,EAAA,EAAA,IAAAK,GAa5BkR,GAAAvD,GAAAG,IAAAS,GAAAC,EACCxH,wBAACqK,GAAAA,aACS,OAAA,CAAAD,MACCzP,GAAMyP,MAAOD,YACPxP,GAAMwP,WAAAA,EAET,WAAA,CAAAC,MACHxP,GAAUwP,MAAOD,YACXvP,GAAUuP,WAAAA,EAEbxD,WAAAA,EACMG,iBAAAA,GACX9N,MAAAA,EACQ,cAAAuO,EAAAyB,GAAA7N,OAEb,aAAAqM,EACI3O,EAAIuE,IAAKT,EAAW,EAACD,OAAQI,EAAoB,EAACF,OAAU,EAC1D/D,EAAIuE,IAAKD,EAAW,EAACT,OAAQW,EACG,EAAhCxE,EAAI6D,OAAQY,EAAoB,EAHtC,KAIQ,EAnBb,KAsBO3E,EAAA,CAAA,EAAAiC,GAAAuP,YAAAxR,EAAA,CAAA,EAAAiC,GAAAwP,MAAAzR,KAAAE,EAAAF,KAAA6O,EAAA7O,MAAAmO,GAAAnO,MAAA4O,EAAA5O,MAAAgO,EAAAhO,EAAA,EAAA,EAAAgC,GAAAwP,YAAAxR,EAAA,EAAA,EAAAgC,GAAAyP,MAAAzR,MAAAK,EAAAL,MAAAuR,IAAAA,GAAAvR,EAAA,EAAA,EAAA,IAAA2R,GAAA3R,EAAA,EAAA,IAAAiC,GAAA2P,aAAA5R,EAAA,EAAA,IAAAO,GAAAP,EAAA,EAAA,IAAAqO,GAAArO,QAAAiO,GAAAjO,EAAA,EAAA,IAAAE,GAAAF,EAAA,EAAA,IAAAwO,GAAAxO,EAAA,EAAA,IAAA+O,GAAA/O,EAAA,EAAA,IAAAiP,GAAAjP,QAAAK,GACPsR,GAAAnD,IAAmB,IAAStO,EAAI6D,OAAQa,EAAc,EAACX,SAAY,GAAK/D,EAAI+D,OAAU,EACrFoD,EAAAA,kBAAAA,IAACwK,GAAAA,yBAAA,CACQxR,MAAAA,EACWgO,iBAAAA,EACV,OAACJ,GAAmChF,GAAAA,OAAOgG,CAAK,EAAC6C,kBAAkB7D,OAC9D,YAAA1N,GAAgBwR,GAAAA,OAAO7R,EAAM,QAAS,EAAI,EACrCiQ,iBAAAA,GACLpB,YAAAA,EACF,UAAA9M,GAAU2P,YAAa,EARrC,KAUO5R,EAAA,EAAA,EAAAiC,GAAA2P,YAAA5R,MAAAO,EAAAP,MAAAqO,EAAArO,MAAAiO,EAAAjO,MAAAE,EAAAF,MAAAwO,EAAAxO,MAAA+O,EAAA/O,MAAAiP,EAAAjP,MAAAK,EAAAL,MAAA2R,IAAAA,GAAA3R,EAAA,EAAA,EAAA,IAAAgS,GAAAhS,EAAA,EAAA,IAAAE,EAAA+D,QAEL+N,GAAA9R,EAAI+D,SAAY,GAAKoD,EAAAA,kBAAAA,IAAC4K,GAAAA,WAAA,EAAU,EAAGjS,EAAA,EAAA,EAAAE,EAAA+D,OAAAjE,MAAAgS,IAAAA,GAAAhS,EAAA,EAAA,EAAA,IAAAkS,GAAAlS,EAAA,EAAA,IAAAsQ,IAAAtQ,EAAA,EAAA,IAAAU,GAAAV,EAAA,EAAA,IAAAiC,GAAAjC,EAAA,EAAA,IAAAO,GAAAP,EAAA,EAAA,IAAAiO,GAAAjO,QAAAqC,IAAArC,EAAA,EAAA,IAAAE,GAAAF,EAAA,EAAA,IAAA+B,IAAA/B,EAAA,EAAA,IAAAmC,GAAAnC,EAAA,EAAA,IAAAsC,IAAAtC,EAAA,EAAA,IAAA4B,GAAA5B,EAAA,EAAA,IAAAY,GAAAZ,EAAA,EAAA,IAAAuC,IAAAvC,EAAA,EAAA,IAAAyB,GAAAzB,QAAA0B,GAAA1B,EAAA,EAAA,IAAA2B,GAAA3B,EAAA,EAAA,IAAAkC,GAAAlC,EAAA,EAAA,IAAA6B,GAAA7B,EAAA,EAAA,IAAAoB,GAAApB,EAAA,EAAA,IAAAoC,IAAApC,EAAA,EAAA,IAAAiB,GAAAjB,EAAA,EAAA,IAAAwB,GAAAxB,EAAA,EAAA,IAAAqB,GAAArB,EAAA,EAAA,IAAA8B,GAAA9B,EAAA,EAAA,IAAAc,GAAAd,QAAAsB,IAAAtB,EAAA,EAAA,IAAAkB,GAAAlB,EAAA,EAAA,IAAAI,IAAAJ,EAAA,EAAA,IAAAgC,GAAAhC,EAAA,EAAA,IAAAgB,GAAAhB,EAAA,EAAA,IAAAiQ,IAAAjQ,EAAA,EAAA,IAAA+P,IAAA/P,EAAA,EAAA,IAAAiP,GAAAjP,EAAA,EAAA,IAAAmB,GAAAnB,QAAAQ,IACnC0R,GAAAnC,IAAAE,IAAyB/P,EAAI+D,OAAU,0BACrCqM,GAAA,CACehO,aAAAA,GACRpC,KAAAA,EAEJ,aAAAA,EAAI6D,OAAQiB,EAAc,EAACf,SAAY,EACnCgK,EAAA,CACGA,CAAgB,EADnB,CAEGhF,GAAAA,OAAMkJ,cAAe,UAAU,CAAC,EAClClE,GAAmChF,GAAAA,OAAOgG,CAAK,EAAC6C,kBAAkB7D,OAGvE,YAAA/N,EAAI6D,OAAQkB,EAAc,EAAChB,SAAY,EAAvC,GAEI1D,GAAgBwR,GAAAA,OAAO7R,EAAM,QAAS,EAAI,EAEzC6P,MAAAA,GACQzO,cAAAA,GACP2O,OAAAA,GACG7P,UAAAA,GACCQ,WAAAA,EACCE,YAAAA,EACFN,UAAAA,GACGE,aAAAA,EACFQ,WAAAA,EACHC,QAAAA,EACUC,kBAAAA,EACRC,UAAAA,EACI,cAAA,GACPG,OAAAA,EACQC,eAAAA,EACNC,SAAAA,EACAC,SAAAA,EACaC,sBAAAA,EACHC,mBAAAA,EACSC,4BAAAA,EACbC,eAAAA,GACRC,OAAAA,EACIC,WAAAA,EACJjB,OAAAA,EACAC,OAAAA,EACG,UAAAiB,GAAA,EACIC,cAAAA,EACJC,UAAAA,GACGC,aAAAA,GACNE,OAAAA,GAAM,EA7CjB,KA+COvC,MAAAsQ,GAAAtQ,MAAAU,EAAAV,MAAAiC,EAAAjC,MAAAO,EAAAP,MAAAiO,EAAAjO,MAAAqC,GAAArC,MAAAE,EAAAF,MAAA+B,GAAA/B,MAAAmC,EAAAnC,MAAAsC,GAAAtC,MAAA4B,EAAA5B,MAAAY,EAAAZ,MAAAuC,GAAAvC,MAAAyB,EAAAzB,MAAA0B,EAAA1B,MAAA2B,EAAA3B,MAAAkC,EAAAlC,MAAA6B,EAAA7B,MAAAoB,EAAApB,MAAAoC,GAAApC,MAAAiB,EAAAjB,MAAAwB,EAAAxB,MAAAqB,EAAArB,MAAA8B,EAAA9B,MAAAc,EAAAd,MAAAsB,GAAAtB,MAAAkB,EAAAlB,MAAAI,GAAAJ,MAAAgC,EAAAhC,MAAAgB,EAAAhB,MAAAiQ,GAAAjQ,MAAA+P,GAAA/P,MAAAiP,EAAAjP,MAAAmB,EAAAnB,MAAAQ,GAAAR,MAAAkS,IAAAA,GAAAlS,EAAA,EAAA,EAAA,IAAAoS,GAAApS,EAAA,EAAA,IAAAgS,IAAAhS,QAAAkS,IAjDVE,4BAACC,GAAAA,UAAA,CAAejC,OACb4B,SAAAA,CAAAA,GACAE,EAAAA,EAgDH,EAAYlS,MAAAgS,GAAAhS,MAAAkS,GAAAlS,MAAAoS,IAAAA,GAAApS,EAAA,EAAA,EAAA,IAAAsS,GAAAtS,EAAA,EAAA,IAAAiC,GAAAsQ,UAAAvS,EAAA,EAAA,IAAAiC,GAAAuQ,QAAAxS,EAAA,EAAA,IAAAoO,GAAApO,EAAA,EAAA,IAAAkO,GAAAlO,EAAA,EAAA,IAAAgC,GAAAuQ,UAAAvS,EAAA,EAAA,IAAAgC,GAAAwQ,QAAAxS,QAAAK,GACXiS,GAAApE,GAAAE,EACC/G,EAAAA,kBAAAA,IAACoL,GAAAA,YAAA,CACS,OAAA,CAAAF,SAAYvQ,GAAMuQ,SAAUC,OAAUxQ,GAAMwQ,MAAAA,EACxC,WAAA,CAAAD,SACAtQ,GAAUsQ,SAAUC,OACtBvQ,GAAUuQ,MAAAA,EAEXtE,QAAAA,EACCE,SAAAA,EACH/N,MAAAA,CAAAA,CAAK,EATf,KAWOL,EAAA,EAAA,EAAAiC,GAAAsQ,SAAAvS,EAAA,EAAA,EAAAiC,GAAAuQ,OAAAxS,MAAAoO,EAAApO,MAAAkO,EAAAlO,EAAA,EAAA,EAAAgC,GAAAuQ,SAAAvS,EAAA,EAAA,EAAAgC,GAAAwQ,OAAAxS,MAAAK,EAAAL,MAAAsS,IAAAA,GAAAtS,EAAA,EAAA,EAAA,IAAA0S,GAAA,OAAA1S,EAAA,EAAA,IAAA0O,IAAA1O,EAAA,EAAA,IAAA2O,GAAA3O,EAAA,EAAA,IAAAyO,GAAAzO,EAAA,EAAA,IAAAM,IAAAN,EAAA,EAAA,IAAA8O,GAAA9O,EAAA,EAAA,IAAAgP,GAAAhP,EAAA,EAAA,IAAAsO,IAAAtO,EAAA,EAAA,IAAAuO,GAAAvO,EAAA,EAAA,IAAAoR,IAAApR,EAAA,EAAA,IAAAsR,IAAAtR,EAAA,EAAA,IAAAuR,IAAAvR,EAAA,EAAA,IAAA2R,IAAA3R,EAAA,EAAA,IAAAoS,IAAApS,EAAA,EAAA,IAAAsS,IAAAtS,EAAA,EAAA,IAAAiP,GAAAjP,QAAAK,GA/GVqS,4BAACC,kBAAA,CACY,UAAAvB,GACJ,MAAAE,GACH7C,KACC4B,OACO3B,aAAAA,GACKC,gBAAAA,EACVM,MAAAA,EACGH,SAAAA,EACCE,UAAAA,EACJ3O,MAAAA,EACCC,OAAAA,GACQiO,eAAAA,EACPD,QAAAA,GAERiD,SAAAA,CAAAA,GAuBAI,GAWDS,GAmDCE,EAAAA,EAYH,EAAiBtS,MAAA0O,GAAA1O,MAAA2O,EAAA3O,MAAAyO,EAAAzO,MAAAM,GAAAN,MAAA8O,EAAA9O,MAAAgP,EAAAhP,MAAAsO,GAAAtO,MAAAuO,EAAAvO,MAAAoR,GAAApR,MAAAsR,GAAAtR,MAAAuR,GAAAvR,MAAA2R,GAAA3R,MAAAoS,GAAApS,MAAAsS,GAAAtS,MAAAiP,EAAAjP,MAAAK,EAAAL,MAAA0S,IAAAA,GAAA1S,EAAA,EAAA,EAhHjB0S,EAgHiB,CAxLd,SAAAzN,GAAAyE,EAAA,CAAA,OAuIyBG,EAAEpB,KAAM,CAvIjC,SAAAzD,GAAA4F,EAAA,CAAA,OAgIyBf,EAAEpB,KAAM,CAhIjC,SAAA7D,GAAAiF,EAAA,CAAA,OA8G8CA,EAAEpB,KAAM,CA9GtD,SAAA9D,GAAAgH,EAAA,CAAA,OAyG4BlF,IAAMjE,MAAS,CAzG3C,SAAAkC,GAAAoH,EAAA,CAAA,OAwG6CrF,IAAMjE,MAAS,CAxG5D,SAAAgC,GAAAiC,EAAA,CAAA,OAwGyBA,EAACvG,IAAK,CAxG/B,SAAAiE,GAAA0H,EAAA,CAAA,OAuG2CpF,IAAMjE,MAAS,CAvG1D,SAAAwB,GAAA0H,EAAA,CAAA,OAuGuBjF,EAACvG,IAAK"}
1
+ {"version":3,"file":"BeeSwarmChart.cjs","sources":["../src/Components/Graphs/BeeSwarmChart/Graph.tsx","../src/Components/Graphs/BeeSwarmChart/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleSqrt } from 'd3-scale';\r\nimport { forceCollide, forceManyBody, forceSimulation, forceX, forceY } from 'd3-force';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport orderBy from 'lodash.orderby';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { P } from '@undp/design-system-react/Typography';\r\n\r\nimport {\r\n BeeSwarmChartDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface BeeSwarmChartDataTypeForBubbleChart extends BeeSwarmChartDataType {\r\n x: number;\r\n y: number;\r\n vx: number;\r\n vy: number;\r\n}\r\n\r\ninterface Props {\r\n data: BeeSwarmChartDataType[];\r\n circleColors: string[];\r\n colorDomain: string[];\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n showLabels: boolean;\r\n width: number;\r\n height: number;\r\n suffix: string;\r\n prefix: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n selectedColor?: string;\r\n startFromZero: boolean;\r\n radius: number;\r\n maxRadiusValue?: number;\r\n maxValue?: number;\r\n minValue?: number;\r\n highlightedDataPoints?: (string | number)[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n noOfTicks: number;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n rtl?: boolean;\r\n hideAxisLine: boolean;\r\n locale: string;\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n data,\r\n circleColors,\r\n showTicks,\r\n width,\r\n height,\r\n colorDomain,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n suffix,\r\n prefix,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n startFromZero,\r\n radius,\r\n maxRadiusValue,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n noOfTicks,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n hideAxisLine,\r\n locale,\r\n } = props;\r\n const svgRef = useRef(null);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [finalData, setFinalData] = useState<BeeSwarmChartDataTypeForBubbleChart[] | null>(null);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataOrdered =\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)).length === 0\r\n ? data\r\n : orderBy(\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)),\r\n 'radius',\r\n 'desc',\r\n );\r\n const yMaxValue = !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) < 0 &&\r\n !startFromZero\r\n ? 0\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n const yMinValue = !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) >=\r\n 0 && !startFromZero\r\n ? 0\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n\r\n const radiusScale =\r\n data.filter(d => d.radius === undefined || d.radius === null).length !== data.length\r\n ? scaleSqrt()\r\n .domain([\r\n 0,\r\n checkIfNullOrUndefined(maxRadiusValue)\r\n ? Math.max(...data.map(d => d.radius).filter(d => d !== undefined && d !== null))\r\n : (maxRadiusValue as number),\r\n ])\r\n .range([0.25, radius])\r\n .nice()\r\n : undefined;\r\n const y = scaleLinear().domain([yMinValue, yMaxValue]).range([graphHeight, 0]).nice();\r\n const yTicks = y.ticks(noOfTicks);\r\n\r\n useEffect(() => {\r\n const dataTemp = (\r\n dataOrdered.map(d => ({\r\n ...d,\r\n ...(d.data && { data: { ...d.data } }),\r\n })) as BeeSwarmChartDataType[]\r\n ).filter(d => d.position);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceSimulation(dataTemp as any)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .force('y', forceY((d: any) => y(d.position as number)).strength(5))\r\n .force('x', forceX(_d => graphWidth / 2).strength(1))\r\n .force(\r\n 'collide',\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceCollide((d: any) => (radiusScale ? radiusScale(d.radius || 0) + 1 : radius + 1)),\r\n )\r\n .force('charge', forceManyBody().strength(-15))\r\n .alphaDecay(0.05)\r\n .tick(10000)\r\n .on('tick', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n })\r\n .on('end', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n });\r\n }, [data, radius, graphHeight, graphWidth, yMinValue, yMaxValue, dataOrdered, y, radiusScale]);\r\n\r\n return (\r\n <>\r\n {finalData ? (\r\n <svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <>\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n y1={y(yMinValue < 0 ? 0 : yMinValue)}\r\n y2={y(yMinValue < 0 ? 0 : yMinValue)}\r\n x1={0 - margin.left}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n yMinValue < 0 ? 0 : yMinValue,\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - margin.left,\r\n y: y(yMinValue < 0 ? 0 : yMinValue),\r\n dx: 0,\r\n dy: yMaxValue < 0 ? '1em' : -5,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{\r\n axis: styles?.xAxis?.axis,\r\n label: styles?.yAxis?.labels,\r\n }}\r\n />\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - margin.left}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n locale={locale}\r\n />\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n {finalData.map(d => (\r\n <g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n transform={`translate(${d.x},${d.y})`}\r\n opacity={\r\n selectedColor\r\n ? d.color\r\n ? circleColors[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85\r\n }\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <circle\r\n cx={0}\r\n cy={0}\r\n r={radiusScale ? radiusScale(d.radius || 0) : radius}\r\n fill={\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)]\r\n }\r\n />\r\n {(radiusScale ? radiusScale(d.radius || 0) : radius) > 10 && showLabels ? (\r\n <g>\r\n <foreignObject\r\n y={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n x={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n width={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n height={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n >\r\n <div className='flex flex-col justify-center items-center h-inherit py-0 px-1.5'>\r\n {showLabels ? (\r\n <p\r\n className={cn(\r\n 'text-center leading-none m-0',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n fontSize: `${Math.min(\r\n Math.max(\r\n Math.round(\r\n (radiusScale ? radiusScale(d.radius || 0) : radius) / 4,\r\n ),\r\n 10,\r\n ),\r\n Math.max(\r\n Math.round(\r\n ((radiusScale ? radiusScale(d.radius || 0) : radius) * 12) /\r\n `${d.label}`.length,\r\n ),\r\n 10,\r\n ),\r\n 20,\r\n )}px`,\r\n hyphens: 'auto',\r\n color: getTextColorBasedOnBgColor(\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)],\r\n ),\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {d.label}\r\n </p>\r\n ) : null}\r\n </div>\r\n </foreignObject>\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - margin.left}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n isInView={true}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </svg>\r\n ) : (\r\n <div style={{ width: `${width}px`, height: `${height}px` }}>\r\n <div className='flex m-auto items-center justify-center p-0 leading-none text-base h-40'>\r\n <Spinner />\r\n </div>\r\n </div>\r\n )}\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n circleColors,\r\n showTicks,\r\n width,\r\n height,\r\n colorDomain,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 10,\r\n rightMargin = 10,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n startFromZero,\r\n radius,\r\n maxRadiusValue,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n rtl,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n suffix,\r\n prefix,\r\n styles,\r\n classNames,\r\n noOfTicks,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n hideAxisLine,\r\n locale,\r\n } = props;\r\n const svgRef = useRef(null);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [finalData, setFinalData] = useState<BeeSwarmChartDataTypeForBubbleChart[] | null>(null);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataOrdered =\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)).length === 0\r\n ? data\r\n : orderBy(\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)),\r\n 'radius',\r\n 'desc',\r\n );\r\n const xMaxValue = !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) < 0 &&\r\n !startFromZero\r\n ? 0\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n const xMinValue = !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) >=\r\n 0 && !startFromZero\r\n ? 0\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n\r\n const radiusScale =\r\n data.filter(d => d.radius === undefined || d.radius === null).length !== data.length\r\n ? scaleSqrt()\r\n .domain([\r\n 0,\r\n checkIfNullOrUndefined(maxRadiusValue)\r\n ? Math.max(...data.map(d => d.radius).filter(d => d !== undefined && d !== null))\r\n : (maxRadiusValue as number),\r\n ])\r\n .range([0.25, radius])\r\n .nice()\r\n : undefined;\r\n const x = scaleLinear().domain([xMinValue, xMaxValue]).range([0, graphWidth]).nice();\r\n const xTicks = x.ticks(noOfTicks);\r\n\r\n useEffect(() => {\r\n const dataTemp = (\r\n dataOrdered.map(d => ({\r\n ...d,\r\n ...(d.data && { data: { ...d.data } }),\r\n })) as BeeSwarmChartDataType[]\r\n ).filter(d => d.position);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceSimulation(dataTemp as any)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .force('x', forceX((d: any) => x(d.position as number)).strength(5))\r\n .force('y', forceY(_d => graphHeight / 2).strength(1))\r\n .force(\r\n 'collide',\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceCollide((d: any) => (radiusScale ? radiusScale(d.radius || 0) + 1 : radius + 1)),\r\n )\r\n .force('charge', forceManyBody().strength(-15))\r\n .alphaDecay(0.05)\r\n .tick(10000)\r\n .on('tick', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n })\r\n .on('end', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n });\r\n }, [data, radius, graphHeight, graphWidth, xMinValue, xMaxValue, dataOrdered, x, radiusScale]);\r\n\r\n return (\r\n <>\r\n {finalData ? (\r\n <svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <>\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n x1={x(xMinValue < 0 ? 0 : xMinValue)}\r\n x2={x(xMinValue < 0 ? 0 : xMinValue)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n xMinValue < 0 ? 0 : xMinValue,\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )\r\n : undefined\r\n }\r\n labelPos={{\r\n x: x(xMinValue < 0 ? 0 : xMinValue),\r\n y: 0 - topMargin,\r\n dy: '0.75em',\r\n dx: 3,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{\r\n axis: styles?.xAxis?.axis,\r\n label: styles?.yAxis?.labels,\r\n }}\r\n />\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n locale={locale}\r\n />\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n {finalData.map(d => (\r\n <g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n transform={`translate(${d.x},${d.y})`}\r\n opacity={\r\n selectedColor\r\n ? d.color\r\n ? circleColors[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85\r\n }\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <circle\r\n cx={0}\r\n cy={0}\r\n fill={\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)]\r\n }\r\n radius={radiusScale ? radiusScale(d.radius || 0) : radius}\r\n />\r\n {(radiusScale ? radiusScale(d.radius || 0) : radius) > 10 && showLabels ? (\r\n <g>\r\n <foreignObject\r\n y={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n x={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n width={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n height={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n >\r\n <div className='flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-1.5'>\r\n {showLabels ? (\r\n <P\r\n className={cn(\r\n 'text-center leading-none m-0',\r\n classNames?.graphObjectValues,\r\n )}\r\n marginBottom='none'\r\n style={{\r\n fontSize: `${Math.min(\r\n Math.max(\r\n Math.round(\r\n (radiusScale ? radiusScale(d.radius || 0) : radius) / 4,\r\n ),\r\n 10,\r\n ),\r\n Math.max(\r\n Math.round(\r\n ((radiusScale ? radiusScale(d.radius || 0) : radius) * 12) /\r\n `${d.label}`.length,\r\n ),\r\n 10,\r\n ),\r\n 20,\r\n )}px`,\r\n color: getTextColorBasedOnBgColor(\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)],\r\n ),\r\n hyphens: 'auto',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {d.label}\r\n </P>\r\n ) : null}\r\n </div>\r\n </foreignObject>\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n isInView={true}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </svg>\r\n ) : (\r\n <div style={{ width: `${width}px`, height: `${height}px` }}>\r\n <div className='flex m-auto items-center justify-center p-0 leading-none text-base h-40'>\r\n <Spinner />\r\n </div>\r\n </div>\r\n )}\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\nimport {\r\n ReferenceDataType,\r\n SourcesDataType,\r\n Languages,\r\n BeeSwarmChartDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n} from '@/Types';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: BeeSwarmChartDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color or array of colors for circle */\r\n colors?: string | string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the radius of the circle */\r\n maxRadiusValue?: number;\r\n /** Minimum value for position of the circle */\r\n minValue?: number;\r\n /** Maximum value for position of the circle */\r\n maxValue?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showTicks?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Data points to highlight. Use the label value from data to highlight the data point */\r\n highlightedDataPoints?: (string | number)[];\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Maximum radius of the circles */\r\n radius?: number;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function BeeSwarmChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n rightMargin,\r\n colors,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale,\r\n graphID,\r\n radius = 5,\r\n showLabels = true,\r\n showTicks = true,\r\n maxRadiusValue,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n ariaLabel,\r\n backgroundColor = false,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n orientation = 'vertical',\r\n suffix = '',\r\n prefix = '',\r\n styles,\r\n classNames,\r\n noOfTicks = 5,\r\n dimmedOpacity = 0.3,\r\n precision = 2,\r\n customLayers = [],\r\n hideAxisLine = false,\r\n locale = 'en',\r\n } = props;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {showColorScale !== false && data.filter(el => el.color).length !== 0 && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={(colors as string[] | undefined) || Colors[theme].categoricalColors.colors}\r\n colorDomain={colorDomain || (uniqBy(data, 'color', true) as string[])}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={data}\r\n circleColors={\r\n data.filter(el => el.color).length === 0\r\n ? colors\r\n ? [colors as string]\r\n : [Colors.primaryColors['blue-600']]\r\n : (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain || (uniqBy(data, 'color', true) as string[])\r\n }\r\n width={svgWidth}\r\n selectedColor={selectedColor}\r\n height={svgHeight}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n startFromZero={false}\r\n radius={radius}\r\n maxRadiusValue={maxRadiusValue}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n styles={styles}\r\n classNames={classNames}\r\n suffix={suffix}\r\n prefix={prefix}\r\n noOfTicks={noOfTicks || 5}\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n locale={locale}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["VerticalGraph","props","$","_c","data","circleColors","showTicks","width","height","colorDomain","topMargin","t0","bottomMargin","t1","leftMargin","t2","rightMargin","t3","suffix","prefix","showLabels","tooltip","onSeriesMouseOver","refValues","selectedColor","startFromZero","radius","maxRadiusValue","maxValue","minValue","highlightedDataPoints","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","noOfTicks","dimmedOpacity","precision","customLayers","hideAxisLine","locale","undefined","svgRef","useRef","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","finalData","setFinalData","eventX","setEventX","eventY","setEventY","t4","top","bottom","left","right","margin","graphWidth","graphHeight","dataOrdered","filter","_temp","length","orderBy","_temp2","t5","checkIfNullOrUndefined","Math","max","_temp3","map","_temp4","_temp5","_temp6","yMaxValue","t6","min","_temp7","_temp8","_temp9","_temp0","yMinValue","radiusScale","_temp1","scaleSqrt","domain","_temp10","_temp11","range","nice","y","scaleLinear","yTicks","ticks","useEffect","dataTemp","_temp12","_temp13","forceSimulation","force","forceY","d_14","d","position","strength","forceX","_d","forceCollide","d_15","forceManyBody","alphaDecay","tick","on","t7","jsx","jsxs","Fragment","Axis","numberFormattingFunction","x","dx","dy","axis","xAxis","label","yAxis","labels","YTicksAndGridLines","_temp14","_temp15","gridLines","_temp16","_temp17","d_21","color","indexOf","event","clientY","clientX","event_0","isEqual","_temp18","Colors","gray","cn","graphObjectValues","fontSize","round","hyphens","getTextColorBasedOnBgColor","_temp19","el_1","i","RefLineY","el","text","value","_temp20","_temp21","Spinner","t8","Tooltip","t9","modal","DetailsModal","t10","d_23","layer","d_22","el_0","d_20","d_19","d_17","d_16","d_13","d_12","d_10","d_9","d_11","d_6","d_5","d_8","d_7","d_2","d_1","d_4","d_3","d_0","HorizontalGraph","rtl","_temp22","_temp23","_temp24","_temp25","_temp26","_temp27","xMaxValue","_temp28","_temp29","_temp30","_temp31","xMinValue","_temp32","_temp33","_temp34","xTicks","_temp35","_temp36","XTicksAndGridLines","_temp37","_temp38","d_18","_temp39","_temp40","_temp41","P","_temp42","RefLineX","_temp43","_temp44","BeeSwarmChart","graphTitle","colors","sources","graphDescription","footNote","colorLegendTitle","padding","relativeHeight","showColorScale","graphID","ariaLabel","backgroundColor","graphDownload","dataDownload","language","showNAColor","minHeight","theme","orientation","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","Comp","t21","t22","Symbol","for","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","t23","graphContainer","t24","t25","description","title","GraphHeader","t26","colorLegend","ColorLegendWithMouseOver","categoricalColors","uniqBy","t27","EmptyState","t28","primaryColors","t29","GraphArea","t30","footnote","source","GraphFooter","t31","GraphContainer"],"mappings":"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"}