@undp/data-viz 2.1.2 → 2.1.4

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 (162) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.cjs.map +1 -1
  3. package/dist/AreaChart.js +281 -274
  4. package/dist/AreaChart.js.map +1 -1
  5. package/dist/BarGraph.cjs +1 -1
  6. package/dist/BarGraph.cjs.map +1 -1
  7. package/dist/BarGraph.d.ts +2 -0
  8. package/dist/BarGraph.js +1795 -1724
  9. package/dist/BarGraph.js.map +1 -1
  10. package/dist/BeeSwarmChart.cjs +1 -1
  11. package/dist/BeeSwarmChart.cjs.map +1 -1
  12. package/dist/BeeSwarmChart.js +312 -305
  13. package/dist/BeeSwarmChart.js.map +1 -1
  14. package/dist/BulletChart.cjs +1 -1
  15. package/dist/BulletChart.cjs.map +1 -1
  16. package/dist/BulletChart.js +367 -356
  17. package/dist/BulletChart.js.map +1 -1
  18. package/dist/ButterflyChart.cjs +1 -1
  19. package/dist/ButterflyChart.cjs.map +1 -1
  20. package/dist/ButterflyChart.js +224 -217
  21. package/dist/ButterflyChart.js.map +1 -1
  22. package/dist/CirclePackingGraph.cjs +1 -1
  23. package/dist/CirclePackingGraph.js +2 -2
  24. package/dist/DifferenceLineChart.cjs +1 -1
  25. package/dist/DifferenceLineChart.cjs.map +1 -1
  26. package/dist/DifferenceLineChart.js +406 -399
  27. package/dist/DifferenceLineChart.js.map +1 -1
  28. package/dist/DonutChart.cjs +1 -1
  29. package/dist/DonutChart.cjs.map +1 -1
  30. package/dist/DonutChart.d.ts +10 -0
  31. package/dist/DonutChart.js +232 -263
  32. package/dist/DonutChart.js.map +1 -1
  33. package/dist/DualAxisLineChart.cjs +1 -1
  34. package/dist/DualAxisLineChart.cjs.map +1 -1
  35. package/dist/DualAxisLineChart.js +320 -313
  36. package/dist/DualAxisLineChart.js.map +1 -1
  37. package/dist/DumbbellChart.cjs +1 -1
  38. package/dist/DumbbellChart.cjs.map +1 -1
  39. package/dist/DumbbellChart.js +298 -291
  40. package/dist/DumbbellChart.js.map +1 -1
  41. package/dist/{EmptyState-BZo1BbAn.js → EmptyState-C7ZXkZWd.js} +4 -4
  42. package/dist/EmptyState-C7ZXkZWd.js.map +1 -0
  43. package/dist/EmptyState-gLDRXBHm.cjs +2 -0
  44. package/dist/EmptyState-gLDRXBHm.cjs.map +1 -0
  45. package/dist/GraphEl-C2Fgg8PA.cjs +2 -0
  46. package/dist/GraphEl-C2Fgg8PA.cjs.map +1 -0
  47. package/dist/{GraphEl-sVZvlyWe.js → GraphEl-oZwZiTHI.js} +6 -3
  48. package/dist/GraphEl-oZwZiTHI.js.map +1 -0
  49. package/dist/GriddedGraphs.cjs +1 -1
  50. package/dist/GriddedGraphs.d.ts +1 -0
  51. package/dist/GriddedGraphs.js +1 -1
  52. package/dist/GriddedGraphsFromConfig.d.ts +1 -0
  53. package/dist/HeatMap.cjs +1 -1
  54. package/dist/HeatMap.cjs.map +1 -1
  55. package/dist/HeatMap.js +179 -172
  56. package/dist/HeatMap.js.map +1 -1
  57. package/dist/Histogram.cjs +1 -1
  58. package/dist/Histogram.js +1 -1
  59. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  60. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
  61. package/dist/LineChartWithConfidenceInterval.js +370 -363
  62. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  63. package/dist/MultiGraphDashboard.d.ts +1 -0
  64. package/dist/MultiGraphDashboardFromConfig.d.ts +1 -0
  65. package/dist/MultiLineAltChart.cjs +1 -1
  66. package/dist/MultiLineAltChart.cjs.map +1 -1
  67. package/dist/MultiLineAltChart.js +328 -321
  68. package/dist/MultiLineAltChart.js.map +1 -1
  69. package/dist/MultiLineChart.cjs +1 -1
  70. package/dist/MultiLineChart.cjs.map +1 -1
  71. package/dist/MultiLineChart.js +375 -368
  72. package/dist/MultiLineChart.js.map +1 -1
  73. package/dist/ParetoChart.cjs +1 -1
  74. package/dist/ParetoChart.cjs.map +1 -1
  75. package/dist/ParetoChart.js +385 -378
  76. package/dist/ParetoChart.js.map +1 -1
  77. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -0
  78. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -0
  79. package/dist/PerformanceIntensiveScrollStory.d.ts +1 -0
  80. package/dist/RadarChart.cjs +1 -1
  81. package/dist/RadarChart.cjs.map +1 -1
  82. package/dist/RadarChart.js +35 -34
  83. package/dist/RadarChart.js.map +1 -1
  84. package/dist/SankeyChart.cjs +1 -1
  85. package/dist/SankeyChart.cjs.map +1 -1
  86. package/dist/SankeyChart.js +176 -169
  87. package/dist/SankeyChart.js.map +1 -1
  88. package/dist/ScatterPlot.cjs +1 -1
  89. package/dist/ScatterPlot.cjs.map +1 -1
  90. package/dist/ScatterPlot.js +367 -360
  91. package/dist/ScatterPlot.js.map +1 -1
  92. package/dist/ScrollStory.d.ts +1 -0
  93. package/dist/SimpleLineChart.cjs +1 -1
  94. package/dist/SimpleLineChart.cjs.map +1 -1
  95. package/dist/SimpleLineChart.js +286 -279
  96. package/dist/SimpleLineChart.js.map +1 -1
  97. package/dist/SingleGraphDashboard.cjs +1 -1
  98. package/dist/SingleGraphDashboard.d.ts +1 -0
  99. package/dist/SingleGraphDashboard.js +1 -1
  100. package/dist/SingleGraphDashboardFromConfig.d.ts +1 -0
  101. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +1 -0
  102. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +1 -0
  103. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -0
  104. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -0
  105. package/dist/SlopeChart.cjs +1 -1
  106. package/dist/SlopeChart.cjs.map +1 -1
  107. package/dist/SlopeChart.js +243 -236
  108. package/dist/SlopeChart.js.map +1 -1
  109. package/dist/SparkLine.cjs +1 -1
  110. package/dist/SparkLine.js +2 -2
  111. package/dist/StripChart.cjs +1 -1
  112. package/dist/StripChart.cjs.map +1 -1
  113. package/dist/StripChart.js +293 -286
  114. package/dist/StripChart.js.map +1 -1
  115. package/dist/TreeMapGraph.cjs +1 -1
  116. package/dist/TreeMapGraph.cjs.map +1 -1
  117. package/dist/TreeMapGraph.js +222 -215
  118. package/dist/TreeMapGraph.js.map +1 -1
  119. package/dist/Types.d.ts +1 -0
  120. package/dist/{area-BE2wo7fv.js → area-B6r7cv2o.js} +5 -5
  121. package/dist/{area-BE2wo7fv.js.map → area-B6r7cv2o.js.map} +1 -1
  122. package/dist/area-C1gxfNGD.cjs +2 -0
  123. package/dist/{area-D3Qx7k7K.cjs.map → area-C1gxfNGD.cjs.map} +1 -1
  124. package/dist/array-DMyR1sql.cjs +2 -0
  125. package/dist/array-DMyR1sql.cjs.map +1 -0
  126. package/dist/array-USo-Szhp.js +13 -0
  127. package/dist/array-USo-Szhp.js.map +1 -0
  128. package/dist/{ensureCompleteData-DS7gCvVd.js → ensureCompleteData-DH5c52Ub.js} +6 -6
  129. package/dist/{ensureCompleteData-DS7gCvVd.js.map → ensureCompleteData-DH5c52Ub.js.map} +1 -1
  130. package/dist/{ensureCompleteData-Oib-vGb0.cjs → ensureCompleteData-pZ9QO6kB.cjs} +2 -2
  131. package/dist/{ensureCompleteData-Oib-vGb0.cjs.map → ensureCompleteData-pZ9QO6kB.cjs.map} +1 -1
  132. package/dist/index-Blvf-Q3U.cjs +2 -0
  133. package/dist/{index-CF5hnGvG.cjs.map → index-Blvf-Q3U.cjs.map} +1 -1
  134. package/dist/index-D1RrKgK6.js +337 -0
  135. package/dist/index-D1RrKgK6.js.map +1 -0
  136. package/dist/index.cjs +1 -1
  137. package/dist/index.d.ts +7 -0
  138. package/dist/index.js +1 -1
  139. package/dist/line-DFlZsxI1.js +144 -0
  140. package/dist/line-DFlZsxI1.js.map +1 -0
  141. package/dist/line-DaEMhXmx.cjs +2 -0
  142. package/dist/line-DaEMhXmx.cjs.map +1 -0
  143. package/dist/style.css +1 -1
  144. package/package.json +1 -1
  145. package/dist/EmptyState-BZo1BbAn.js.map +0 -1
  146. package/dist/EmptyState-sAEZ_5rU.cjs +0 -2
  147. package/dist/EmptyState-sAEZ_5rU.cjs.map +0 -1
  148. package/dist/GraphEl-YKUlz-37.cjs +0 -2
  149. package/dist/GraphEl-YKUlz-37.cjs.map +0 -1
  150. package/dist/GraphEl-sVZvlyWe.js.map +0 -1
  151. package/dist/area-D3Qx7k7K.cjs +0 -2
  152. package/dist/array-B7TkkRH0.js +0 -89
  153. package/dist/array-B7TkkRH0.js.map +0 -1
  154. package/dist/array-DKbXV8lR.cjs +0 -2
  155. package/dist/array-DKbXV8lR.cjs.map +0 -1
  156. package/dist/index-CF5hnGvG.cjs +0 -2
  157. package/dist/index-DPGq3eIL.js +0 -330
  158. package/dist/index-DPGq3eIL.js.map +0 -1
  159. package/dist/line-CPfhohvF.js +0 -68
  160. package/dist/line-CPfhohvF.js.map +0 -1
  161. package/dist/line-DHV4JwCR.cjs +0 -2
  162. package/dist/line-DHV4JwCR.cjs.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index-CHPV5EwG-CTPQjnHt.cjs"),f=require("react"),Ue=require("./index-DQA8q5sC.cjs"),Be=require("./index-Cno4Q0YE.cjs"),Ge=require("./Spinner-DRMBUsX7.cjs"),et=require("./Typography-DX7PlgQU.cjs"),Pe=require("./numberFormattingFunction-02t-wJta.cjs"),Xe=require("./Tooltip-uUdw6wJL.cjs"),j=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),Ye=require("./getTextColorBasedOnBgColor-nqY-bsM_.cjs"),je=require("./Colors.cjs"),He=require("./Axis-DxRV2yMi.cjs"),ze=require("./ReferenceLine-BH0qdf4R.cjs"),tt=require("./YTicksAndGridLines-4pxTRlRK.cjs"),ot=require("./XTicksAndGridLines-B6CELS7q.cjs"),We=require("./DetailsModal-BN0HDFlV.cjs"),Ze=require("./pow-DgrUorRi.cjs"),Je=require("./linear-BwPAspcq.cjs"),se=require("./y-QcCbqrzx.cjs"),Ie=require("./uniqBy-O05lp2S5.cjs"),it=require("./GraphHeader.cjs"),Fe=require("./GraphContainer-d8A46BK2.cjs"),nt=require("./EmptyState-sAEZ_5rU.cjs"),st=require("./ColorLegendWithMouseOver.cjs"),rt=require("./GraphFooter.cjs");function lt(t){const e=o.compilerRuntimeExports.c(28),{data:n,circleColors:y,showTicks:he,width:N,height:S,colorDomain:P,topMargin:L,bottomMargin:_,leftMargin:ee,rightMargin:re,suffix:h,prefix:T,showLabels:te,tooltip:X,onSeriesMouseOver:le,refValues:w,selectedColor:g,startFromZero:D,radius:d,maxRadiusValue:Y,maxValue:H,minValue:z,highlightedDataPoints:ge,onSeriesMouseClick:de,resetSelectionOnDoubleClick:W,detailsOnClick:A,styles:M,classNames:a,noOfTicks:v,dimmedOpacity:ae,precision:ce,customLayers:pe}=t,ue=L===void 0?25:L,V=_===void 0?10:_,oe=ee===void 0?100:ee,ie=re===void 0?40:re,fe=f.useRef(null),[xe,I]=f.useState(void 0),[F,U]=f.useState(void 0),[me,u]=f.useState(null),[c,Z]=f.useState(void 0),[J,K]=f.useState(void 0);let $;e[0]!==V||e[1]!==oe||e[2]!==ie||e[3]!==ue?($={top:ue,bottom:V,left:oe,right:ie},e[0]=V,e[1]=oe,e[2]=ie,e[3]=ue,e[4]=$):$=e[4];const x=$,m=N-x.left-x.right,ne=S-x.top-x.bottom,q=n.filter(wt).length===0?n:Be.orderBy(n.filter(St),"radius","desc");let Q;e[5]!==n||e[6]!==H||e[7]!==D?(Q=j.checkIfNullOrUndefined(H)?Math.max(...n.filter(Nt).map(Ct))<0&&!D?0:Math.max(...n.filter(kt).map(Ot)):H,e[5]=n,e[6]=H,e[7]=D,e[8]=Q):Q=e[8];const B=Q;let G;e[9]!==n||e[10]!==z||e[11]!==D?(G=j.checkIfNullOrUndefined(z)?Math.min(...n.filter(Rt).map(Mt))>=0&&!D?0:Math.min(...n.filter(Et).map(bt)):z,e[9]=n,e[10]=z,e[11]=D,e[12]=G):G=e[12];const p=G,r=n.filter(yt).length!==n.length?Ze.sqrt().domain([0,j.checkIfNullOrUndefined(Y)?Math.max(...n.map(vt).filter(jt)):Y]).range([.25,d]).nice():void 0,l=Je.linear().domain([p,B]).range([ne,0]).nice(),b=l.ticks(v);f.useEffect(()=>{const s=q.map(gt).filter(ht);se.forceSimulation(s).force("y",se.forceY(i=>l(i.position)).strength(5)).force("x",se.forceX(i=>m/2).strength(1)).force("collide",se.forceCollide(i=>r?r(i.radius||0)+1:d+1)).force("charge",se.forceManyBody().strength(-15)).alphaDecay(.05).tick(1e4).on("tick",()=>{u(s)}).on("end",()=>{u(s)})},[n,d,ne,m,p,B,q,l,r]);const k=me?o.jsxRuntimeExports.jsx("svg",{width:`${N}px`,height:`${S}px`,viewBox:`0 0 ${N} ${S}`,direction:"ltr",ref:fe,children:o.jsxRuntimeExports.jsxs("g",{transform:`translate(${x.left},${x.top})`,children:[he?o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[o.jsxRuntimeExports.jsx(He.Axis,{y1:l(p<0?0:p),y2:l(p<0?0:p),x1:0-x.left,x2:m+x.right,label:Pe.numberFormattingFunction(p<0?0:p,"NA",ce,T,h),labelPos:{x:0-x.left,y:l(p<0?0:p),dx:0,dy:B<0?"1em":-5},classNames:{axis:a?.xAxis?.axis,label:a?.yAxis?.labels},styles:{axis:M?.xAxis?.axis,label:M?.yAxis?.labels}}),o.jsxRuntimeExports.jsx(tt.YTicksAndGridLines,{values:b.filter(ft),y:b.filter(pt).map(s=>l(s)),x1:0-x.left,x2:m+x.right,styles:{gridLines:M?.yAxis?.gridLines,labels:M?.yAxis?.labels},classNames:{gridLines:a?.yAxis?.gridLines,labels:a?.yAxis?.labels},suffix:h,prefix:T,labelType:"secondary",showGridLines:!0,labelPos:"vertical",precision:ce})]}):null,pe.filter(dt).map(mt),me.map(s=>o.jsxRuntimeExports.jsxs("g",{className:"undp-viz-g-with-hover",transform:`translate(${s.x},${s.y})`,opacity:g?s.color&&y[P.indexOf(s.color)]===g?1:ae:ge.length!==0?ge.indexOf(s.label)!==-1?.85:ae:.85,onMouseEnter:i=>{I(s),K(i.clientY),Z(i.clientX),le?.(s)},onMouseMove:i=>{I(s),K(i.clientY),Z(i.clientX)},onClick:()=>{(de||A)&&(Ue.isEqual(F,s)&&W?(U(void 0),de?.(void 0)):(U(s),de?.(s)))},onMouseLeave:()=>{I(void 0),Z(void 0),K(void 0),le?.(void 0)},children:[o.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,r:r?r(s.radius||0):d,fill:n.filter(xt).length===0?y[0]:s.color?y[P.indexOf(s.color)]:je.Colors.gray}),(r?r(s.radius||0):d)>10&&te?o.jsxRuntimeExports.jsx("g",{children:o.jsxRuntimeExports.jsx("foreignObject",{y:0-(r?r(s.radius||0):d),x:0-(r?r(s.radius||0):d),width:2*(r?r(s.radius||0):d),height:2*(r?r(s.radius||0):d),children:o.jsxRuntimeExports.jsx("div",{className:"flex flex-col justify-center items-center h-inherit py-0 px-1.5",children:te?o.jsxRuntimeExports.jsx("p",{className:o.mo("text-center leading-none m-0",a?.graphObjectValues),style:{fontSize:`${Math.min(Math.max(Math.round((r?r(s.radius||0):d)/4),10),Math.max(Math.round((r?r(s.radius||0):d)*12/`${s.label}`.length),10),20)}px`,hyphens:"auto",color:Ye.getTextColorBasedOnBgColor(n.filter(ut).length===0?y[0]:s.color?y[P.indexOf(s.color)]:je.Colors.gray),...M?.graphObjectValues||{}},children:s.label}):null})})}):null]},s.label)),w?o.jsxRuntimeExports.jsx(o.jsxRuntimeExports.Fragment,{children:w.map((s,i)=>o.jsxRuntimeExports.jsx(ze.RefLineY,{text:s.text,color:s.color,y:l(s.value),x1:0-x.left,x2:m+x.right,classNames:s.classNames,styles:s.styles,isInView:!0},i))}):null,pe.filter(ct).map(at)]})}):o.jsxRuntimeExports.jsx("div",{style:{width:`${N}px`,height:`${S}px`},children:o.jsxRuntimeExports.jsx("div",{className:"flex m-auto items-center justify-center p-0 leading-none text-base h-40",children:o.jsxRuntimeExports.jsx(Ge.w,{})})});let C;e[13]!==a?.tooltip||e[14]!==c||e[15]!==J||e[16]!==xe||e[17]!==M?.tooltip||e[18]!==X?(C=xe&&X&&c&&J?o.jsxRuntimeExports.jsx(Xe.Tooltip,{data:xe,body:X,xPos:c,yPos:J,backgroundStyle:M?.tooltip,className:a?.tooltip}):null,e[13]=a?.tooltip,e[14]=c,e[15]=J,e[16]=xe,e[17]=M?.tooltip,e[18]=X,e[19]=C):C=e[19];let R;e[20]!==a?.modal||e[21]!==A||e[22]!==F?(R=A&&F!==void 0?o.jsxRuntimeExports.jsx(We.DetailsModal,{body:A,data:F,setData:U,className:a?.modal}):null,e[20]=a?.modal,e[21]=A,e[22]=F,e[23]=R):R=e[23];let O;return e[24]!==k||e[25]!==C||e[26]!==R?(O=o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[k,C,R]}),e[24]=k,e[25]=C,e[26]=R,e[27]=O):O=e[27],O}function at(t){return t.layer}function ct(t){return t.position==="after"}function ut(t){return t.color}function xt(t){return t.color}function mt(t){return t.layer}function dt(t){return t.position==="before"}function pt(t){return t!==0}function ft(t){return t!==0}function ht(t){return t.position}function gt(t){return{...t,...t.data&&{data:{...t.data}}}}function jt(t){return t!=null}function vt(t){return t.radius}function yt(t){return t.radius===void 0||t.radius===null}function bt(t){return t.position}function Et(t){return!j.checkIfNullOrUndefined(t.position)}function Mt(t){return t.position}function Rt(t){return!j.checkIfNullOrUndefined(t.position)}function Ot(t){return t.position}function kt(t){return!j.checkIfNullOrUndefined(t.position)}function Ct(t){return t.position}function Nt(t){return!j.checkIfNullOrUndefined(t.position)}function St(t){return!j.checkIfNullOrUndefined(t.radius)}function wt(t){return!j.checkIfNullOrUndefined(t.radius)}function Dt(t){const e=o.compilerRuntimeExports.c(28),{data:n,circleColors:y,showTicks:he,width:N,height:S,colorDomain:P,topMargin:L,bottomMargin:_,leftMargin:ee,rightMargin:re,showLabels:h,tooltip:T,onSeriesMouseOver:te,refValues:X,selectedColor:le,startFromZero:w,radius:g,maxRadiusValue:D,maxValue:d,minValue:Y,highlightedDataPoints:H,onSeriesMouseClick:z,rtl:ge,resetSelectionOnDoubleClick:de,detailsOnClick:W,suffix:A,prefix:M,styles:a,classNames:v,noOfTicks:ae,dimmedOpacity:ce,precision:pe,customLayers:ue}=t,V=L===void 0?25:L,oe=_===void 0?10:_,ie=ee===void 0?10:ee,fe=re===void 0?10:re,xe=f.useRef(null),[I,F]=f.useState(void 0),[U,me]=f.useState(void 0),[u,c]=f.useState(null),[Z,J]=f.useState(void 0),[K,$]=f.useState(void 0);let x;e[0]!==oe||e[1]!==ie||e[2]!==fe||e[3]!==V?(x={top:V,bottom:oe,left:ie,right:fe},e[0]=oe,e[1]=ie,e[2]=fe,e[3]=V,e[4]=x):x=e[4];const m=x,ne=N-m.left-m.right,q=S-m.top-m.bottom,Q=n.filter(eo).length===0?n:Be.orderBy(n.filter(_t),"radius","desc");let B;e[5]!==n||e[6]!==d||e[7]!==w?(B=j.checkIfNullOrUndefined(d)?Math.max(...n.filter(Qt).map(Kt))<0&&!w?0:Math.max(...n.filter(Jt).map(Zt)):d,e[5]=n,e[6]=d,e[7]=w,e[8]=B):B=e[8];const G=B;let p;e[9]!==n||e[10]!==Y||e[11]!==w?(p=j.checkIfNullOrUndefined(Y)?Math.min(...n.filter(Wt).map(zt))>=0&&!w?0:Math.min(...n.filter(Ht).map(Yt)):Y,e[9]=n,e[10]=Y,e[11]=w,e[12]=p):p=e[12];const r=p,l=n.filter(Xt).length!==n.length?Ze.sqrt().domain([0,j.checkIfNullOrUndefined(D)?Math.max(...n.map(Pt).filter(Gt)):D]).range([.25,g]).nice():void 0,b=Je.linear().domain([r,G]).range([0,ne]).nice(),k=b.ticks(ae);f.useEffect(()=>{const i=Q.map(Bt).filter(Ut);se.forceSimulation(i).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",()=>{c(i)}).on("end",()=>{c(i)})},[n,g,q,ne,r,G,Q,b,l]);const C=u?o.jsxRuntimeExports.jsx("svg",{width:`${N}px`,height:`${S}px`,viewBox:`0 0 ${N} ${S}`,direction:"ltr",ref:xe,children:o.jsxRuntimeExports.jsxs("g",{transform:`translate(${m.left},${m.top})`,children:[he?o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[o.jsxRuntimeExports.jsx(He.Axis,{x1:b(r<0?0:r),x2:b(r<0?0:r),y1:0-m.top,y2:q+m.bottom,label:Pe.numberFormattingFunction(r<0?0:r,"NA",pe,M,A),labelPos:{x:b(r<0?0:r),y:0-V,dy:"0.75em",dx:3},classNames:{axis:v?.xAxis?.axis,label:v?.yAxis?.labels},styles:{axis:a?.xAxis?.axis,label:a?.yAxis?.labels}}),o.jsxRuntimeExports.jsx(ot.XTicksAndGridLines,{values:k.filter(Ft),x:k.filter(It).map(i=>b(i)),y1:0-V,y2:q+m.bottom,styles:{gridLines:a?.xAxis?.gridLines,labels:a?.xAxis?.labels},classNames:{gridLines:v?.xAxis?.gridLines,labels:v?.xAxis?.labels},suffix:A,prefix:M,labelType:"secondary",showGridLines:!0,precision:pe})]}):null,ue.filter(Vt).map(At),u.map(i=>o.jsxRuntimeExports.jsxs("g",{className:"undp-viz-g-with-hover",transform:`translate(${i.x},${i.y})`,opacity:le?i.color&&y[P.indexOf(i.color)]===le?1:ce:H.length!==0?H.indexOf(i.label)!==-1?.85:ce:.85,onMouseEnter:E=>{F(i),$(E.clientY),J(E.clientX),te?.(i)},onMouseMove:E=>{F(i),$(E.clientY),J(E.clientX)},onClick:()=>{(z||W)&&(Ue.isEqual(U,i)&&de?(me(void 0),z?.(void 0)):(me(i),z?.(i)))},onMouseLeave:()=>{F(void 0),J(void 0),$(void 0),te?.(void 0)},children:[o.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,fill:n.filter(Tt).length===0?y[0]:i.color?y[P.indexOf(i.color)]:je.Colors.gray,radius:l?l(i.radius||0):g}),(l?l(i.radius||0):g)>10&&h?o.jsxRuntimeExports.jsx("g",{children:o.jsxRuntimeExports.jsx("foreignObject",{y:0-(l?l(i.radius||0):g),x:0-(l?l(i.radius||0):g),width:2*(l?l(i.radius||0):g),height:2*(l?l(i.radius||0):g),children:o.jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-1.5",children:h?o.jsxRuntimeExports.jsx(et.j,{className:o.mo("text-center leading-none m-0",v?.graphObjectValues),marginBottom:"none",style:{fontSize:`${Math.min(Math.max(Math.round((l?l(i.radius||0):g)/4),10),Math.max(Math.round((l?l(i.radius||0):g)*12/`${i.label}`.length),10),20)}px`,color:Ye.getTextColorBasedOnBgColor(n.filter(Lt).length===0?y[0]:i.color?y[P.indexOf(i.color)]:je.Colors.gray),hyphens:"auto",...a?.graphObjectValues||{}},children:i.label}):null})})}):null]},i.label)),X?o.jsxRuntimeExports.jsx(o.jsxRuntimeExports.Fragment,{children:X.map((i,E)=>o.jsxRuntimeExports.jsx(ze.RefLineX,{text:i.text,color:i.color,x:b(i.value),y1:0-m.top,y2:q+m.bottom,textSide:b(i.value)>ne*.75||ge?"left":"right",classNames:i.classNames,styles:i.styles,isInView:!0},E))}):null,ue.filter(qt).map($t)]})}):o.jsxRuntimeExports.jsx("div",{style:{width:`${N}px`,height:`${S}px`},children:o.jsxRuntimeExports.jsx("div",{className:"flex m-auto items-center justify-center p-0 leading-none text-base h-40",children:o.jsxRuntimeExports.jsx(Ge.w,{})})});let R;e[13]!==v?.tooltip||e[14]!==Z||e[15]!==K||e[16]!==I||e[17]!==a?.tooltip||e[18]!==T?(R=I&&T&&Z&&K?o.jsxRuntimeExports.jsx(Xe.Tooltip,{data:I,body:T,xPos:Z,yPos:K,backgroundStyle:a?.tooltip,className:v?.tooltip}):null,e[13]=v?.tooltip,e[14]=Z,e[15]=K,e[16]=I,e[17]=a?.tooltip,e[18]=T,e[19]=R):R=e[19];let O;e[20]!==v?.modal||e[21]!==W||e[22]!==U?(O=W&&U!==void 0?o.jsxRuntimeExports.jsx(We.DetailsModal,{body:W,data:U,setData:me,className:v?.modal}):null,e[20]=v?.modal,e[21]=W,e[22]=U,e[23]=O):O=e[23];let s;return e[24]!==C||e[25]!==R||e[26]!==O?(s=o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[C,R,O]}),e[24]=C,e[25]=R,e[26]=O,e[27]=s):s=e[27],s}function $t(t){return t.layer}function qt(t){return t.position==="after"}function Lt(t){return t.color}function Tt(t){return t.color}function At(t){return t.layer}function Vt(t){return t.position==="before"}function It(t){return t!==0}function Ft(t){return t!==0}function Ut(t){return t.position}function Bt(t){return{...t,...t.data&&{data:{...t.data}}}}function Gt(t){return t!=null}function Pt(t){return t.radius}function Xt(t){return t.radius===void 0||t.radius===null}function Yt(t){return t.position}function Ht(t){return!j.checkIfNullOrUndefined(t.position)}function zt(t){return t.position}function Wt(t){return!j.checkIfNullOrUndefined(t.position)}function Zt(t){return t.position}function Jt(t){return!j.checkIfNullOrUndefined(t.position)}function Kt(t){return t.position}function Qt(t){return!j.checkIfNullOrUndefined(t.position)}function _t(t){return!j.checkIfNullOrUndefined(t.radius)}function eo(t){return!j.checkIfNullOrUndefined(t.radius)}function to(t){const e=o.compilerRuntimeExports.c(79),{data:n,graphTitle:y,topMargin:he,bottomMargin:N,leftMargin:S,rightMargin:P,colors:L,sources:_,graphDescription:ee,height:re,width:h,footNote:T,colorDomain:te,colorLegendTitle:X,padding:le,relativeHeight:w,tooltip:g,onSeriesMouseOver:D,refValues:d,showColorScale:Y,graphID:H,radius:z,showLabels:ge,showTicks:de,maxRadiusValue:W,maxValue:A,minValue:M,highlightedDataPoints:a,onSeriesMouseClick:v,ariaLabel:ae,backgroundColor:ce,graphDownload:pe,dataDownload:ue,language:V,showNAColor:oe,minHeight:ie,theme:fe,resetSelectionOnDoubleClick:xe,detailsOnClick:I,orientation:F,suffix:U,prefix:me,styles:u,classNames:c,noOfTicks:Z,dimmedOpacity:J,precision:K,customLayers:$}=t,x=z===void 0?5:z,m=ge===void 0?!0:ge,ne=de===void 0?!0:de;let q;e[0]!==a?(q=a===void 0?[]:a,e[0]=a,e[1]=q):q=e[1];const Q=q,B=ce===void 0?!1:ce,G=pe===void 0?!1:pe,p=ue===void 0?!1:ue,r=V===void 0?"en":V,l=oe===void 0?!0:oe,b=ie===void 0?0:ie,k=fe===void 0?"light":fe,C=xe===void 0?!0:xe,R=F===void 0?"vertical":F,O=U===void 0?"":U,s=me===void 0?"":me,i=Z===void 0?5:Z,E=J===void 0?.3:J,Ne=K===void 0?2:K;let Ee;e[2]!==$?(Ee=$===void 0?[]:$,e[2]=$,e[3]=Ee):Ee=e[3];const Se=Ee,[Me,Ke]=f.useState(0),[Re,Qe]=f.useState(0),[we,_e]=f.useState(void 0),De=f.useRef(null),Te=f.useRef(null),$e=R==="horizontal"?Dt:lt;let Oe,ke;e[4]===Symbol.for("react.memo_cache_sentinel")?(Oe=()=>{const Ae=new ResizeObserver(Ve=>{Ke(Ve[0].target.clientWidth||620),Qe(Ve[0].target.clientHeight||480)});return De.current&&Ae.observe(De.current),()=>Ae.disconnect()},ke=[],e[4]=Oe,e[5]=ke):(Oe=e[4],ke=e[5]),f.useEffect(Oe,ke);const qe=c?.graphContainer,Le=u?.graphContainer;let ve;e[6]!==c?.description||e[7]!==c?.title||e[8]!==n||e[9]!==p||e[10]!==ee||e[11]!==G||e[12]!==y||e[13]!==u?.description||e[14]!==u?.title||e[15]!==h?(ve=y||ee||G||p?o.jsxRuntimeExports.jsx(it.GraphHeader,{styles:{title:u?.title,description:u?.description},classNames:{title:c?.title,description:c?.description},graphTitle:y,graphDescription:ee,width:h,graphDownload:G?Te:void 0,dataDownload:p?n.map(co).filter(ao).length>0?n.map(lo).filter(ro):n.filter(so):null}):null,e[6]=c?.description,e[7]=c?.title,e[8]=n,e[9]=p,e[10]=ee,e[11]=G,e[12]=y,e[13]=u?.description,e[14]=u?.title,e[15]=h,e[16]=ve):ve=e[16];let ye;e[17]!==$e||e[18]!==N||e[19]!==c||e[20]!==te||e[21]!==X||e[22]!==L||e[23]!==Se||e[24]!==n||e[25]!==I||e[26]!==E||e[27]!==Q||e[28]!==S||e[29]!==W||e[30]!==A||e[31]!==M||e[32]!==i||e[33]!==v||e[34]!==D||e[35]!==Ne||e[36]!==s||e[37]!==x||e[38]!==d||e[39]!==C||e[40]!==P||e[41]!==we||e[42]!==Y||e[43]!==m||e[44]!==l||e[45]!==ne||e[46]!==u||e[47]!==O||e[48]!==Re||e[49]!==Me||e[50]!==k||e[51]!==g||e[52]!==he||e[53]!==h?(ye=n.length===0?o.jsxRuntimeExports.jsx(nt.EmptyState,{}):o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[Y!==!1&&n.filter(no).length!==0?o.jsxRuntimeExports.jsx(st.ColorLegendWithMouseOver,{width:h,colorLegendTitle:X,colors:L||je.Colors[k].categoricalColors.colors,colorDomain:te||Ie.uniqBy(n,"color",!0),setSelectedColor:_e,showNAColor:l,className:c?.colorLegend}):null,o.jsxRuntimeExports.jsx(Fe.GraphArea,{ref:De,children:Me&&Re?o.jsxRuntimeExports.jsx($e,{data:n,circleColors:n.filter(io).length===0?L?[L]:[je.Colors.primaryColors["blue-600"]]:L||je.Colors[k].categoricalColors.colors,colorDomain:n.filter(oo).length===0?[]:te||Ie.uniqBy(n,"color",!0),width:Me,selectedColor:we,height:Re,showTicks:ne,leftMargin:S,rightMargin:P,topMargin:he,bottomMargin:N,showLabels:m,tooltip:g,onSeriesMouseOver:D,refValues:d,startFromZero:!1,radius:x,maxRadiusValue:W,maxValue:A,minValue:M,highlightedDataPoints:Q,onSeriesMouseClick:v,resetSelectionOnDoubleClick:C,detailsOnClick:I,styles:u,classNames:c,suffix:O,prefix:s,noOfTicks:i||5,dimmedOpacity:E,precision:Ne,customLayers:Se}):null})]}),e[17]=$e,e[18]=N,e[19]=c,e[20]=te,e[21]=X,e[22]=L,e[23]=Se,e[24]=n,e[25]=I,e[26]=E,e[27]=Q,e[28]=S,e[29]=W,e[30]=A,e[31]=M,e[32]=i,e[33]=v,e[34]=D,e[35]=Ne,e[36]=s,e[37]=x,e[38]=d,e[39]=C,e[40]=P,e[41]=we,e[42]=Y,e[43]=m,e[44]=l,e[45]=ne,e[46]=u,e[47]=O,e[48]=Re,e[49]=Me,e[50]=k,e[51]=g,e[52]=he,e[53]=h,e[54]=ye):ye=e[54];let be;e[55]!==c?.footnote||e[56]!==c?.source||e[57]!==T||e[58]!==_||e[59]!==u?.footnote||e[60]!==u?.source||e[61]!==h?(be=_||T?o.jsxRuntimeExports.jsx(rt.GraphFooter,{styles:{footnote:u?.footnote,source:u?.source},classNames:{footnote:c?.footnote,source:c?.source},sources:_,footNote:T,width:h}):null,e[55]=c?.footnote,e[56]=c?.source,e[57]=T,e[58]=_,e[59]=u?.footnote,e[60]=u?.source,e[61]=h,e[62]=be):be=e[62];let Ce;return e[63]!==ae||e[64]!==B||e[65]!==H||e[66]!==re||e[67]!==r||e[68]!==b||e[69]!==le||e[70]!==w||e[71]!==qe||e[72]!==Le||e[73]!==ve||e[74]!==ye||e[75]!==be||e[76]!==k||e[77]!==h?(Ce=o.jsxRuntimeExports.jsxs(Fe.GraphContainer,{className:qe,style:Le,id:H,ref:Te,"aria-label":ae,backgroundColor:B,theme:k,language:r,minHeight:b,width:h,height:re,relativeHeight:w,padding:le,children:[ve,ye,be]}),e[63]=ae,e[64]=B,e[65]=H,e[66]=re,e[67]=r,e[68]=b,e[69]=le,e[70]=w,e[71]=qe,e[72]=Le,e[73]=ve,e[74]=ye,e[75]=be,e[76]=k,e[77]=h,e[78]=Ce):Ce=e[78],Ce}function oo(t){return t.color}function io(t){return t.color}function no(t){return t.color}function so(t){return t!==void 0}function ro(t){return t!==void 0}function lo(t){return t.data}function ao(t){return t!==void 0}function co(t){return t.data}exports.BeeSwarmChart=to;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index-CHPV5EwG-CTPQjnHt.cjs"),p=require("react"),Pe=require("./index-DQA8q5sC.cjs"),Xe=require("./index-Cno4Q0YE.cjs"),Ye=require("./Spinner-DRMBUsX7.cjs"),it=require("./Typography-DX7PlgQU.cjs"),He=require("./numberFormattingFunction-02t-wJta.cjs"),ze=require("./Tooltip-uUdw6wJL.cjs"),v=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),We=require("./getTextColorBasedOnBgColor-nqY-bsM_.cjs"),ve=require("./Colors.cjs"),Ze=require("./Axis-DxRV2yMi.cjs"),Je=require("./ReferenceLine-BH0qdf4R.cjs"),nt=require("./YTicksAndGridLines-4pxTRlRK.cjs"),st=require("./XTicksAndGridLines-B6CELS7q.cjs"),Ke=require("./DetailsModal-BN0HDFlV.cjs"),Qe=require("./pow-DgrUorRi.cjs"),_e=require("./linear-BwPAspcq.cjs"),se=require("./y-QcCbqrzx.cjs"),Be=require("./uniqBy-O05lp2S5.cjs"),rt=require("./GraphHeader.cjs"),Ge=require("./GraphContainer-d8A46BK2.cjs"),lt=require("./EmptyState-gLDRXBHm.cjs"),at=require("./ColorLegendWithMouseOver.cjs"),ct=require("./GraphFooter.cjs");function ut(t){const e=n.compilerRuntimeExports.c(28),{data:o,circleColors:j,showTicks:he,width:S,height:w,colorDomain:X,topMargin:C,bottomMargin:ee,leftMargin:te,rightMargin:re,suffix:h,prefix:T,showLabels:A,tooltip:Y,onSeriesMouseOver:le,refValues:D,selectedColor:g,startFromZero:$,radius:x,maxRadiusValue:H,maxValue:z,minValue:W,highlightedDataPoints:ge,onSeriesMouseClick:xe,resetSelectionOnDoubleClick:Z,detailsOnClick:V,styles:R,classNames:c,noOfTicks:y,dimmedOpacity:ae,precision:ce,customLayers:fe}=t,ue=C===void 0?25:C,I=ee===void 0?10:ee,oe=te===void 0?100:te,ie=re===void 0?40:re,pe=p.useRef(null),[de,F]=p.useState(void 0),[U,B]=p.useState(void 0),[me,u]=p.useState(null),[a,J]=p.useState(void 0),[K,Q]=p.useState(void 0);let L;e[0]!==I||e[1]!==oe||e[2]!==ie||e[3]!==ue?(L={top:ue,bottom:I,left:oe,right:ie},e[0]=I,e[1]=oe,e[2]=ie,e[3]=ue,e[4]=L):L=e[4];const d=L,m=S-d.left-d.right,ne=w-d.top-d.bottom,q=o.filter(Lt).length===0?o:Xe.orderBy(o.filter($t),"radius","desc");let _;e[5]!==o||e[6]!==z||e[7]!==$?(_=v.checkIfNullOrUndefined(z)?Math.max(...o.filter(Dt).map(wt))<0&&!$?0:Math.max(...o.filter(St).map(Nt)):z,e[5]=o,e[6]=z,e[7]=$,e[8]=_):_=e[8];const G=_;let P;e[9]!==o||e[10]!==W||e[11]!==$?(P=v.checkIfNullOrUndefined(W)?Math.min(...o.filter(Ct).map(kt))>=0&&!$?0:Math.min(...o.filter(Ot).map(Rt)):W,e[9]=o,e[10]=W,e[11]=$,e[12]=P):P=e[12];const f=P,r=o.filter(Et).length!==o.length?Qe.sqrt().domain([0,v.checkIfNullOrUndefined(H)?Math.max(...o.map(Mt).filter(bt)):H]).range([.25,x]).nice():void 0,l=_e.linear().domain([f,G]).range([ne,0]).nice(),b=l.ticks(y);p.useEffect(()=>{const s=q.map(jt).filter(yt);se.forceSimulation(s).force("y",se.forceY(i=>l(i.position)).strength(5)).force("x",se.forceX(i=>m/2).strength(1)).force("collide",se.forceCollide(i=>r?r(i.radius||0)+1:x+1)).force("charge",se.forceManyBody().strength(-15)).alphaDecay(.05).tick(1e4).on("tick",()=>{u(s)}).on("end",()=>{u(s)})},[o,x,ne,m,f,G,q,l,r]);const M=me?n.jsxRuntimeExports.jsx("svg",{width:`${S}px`,height:`${w}px`,viewBox:`0 0 ${S} ${w}`,direction:"ltr",ref:pe,children:n.jsxRuntimeExports.jsxs("g",{transform:`translate(${d.left},${d.top})`,children:[he?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(Ze.Axis,{y1:l(f<0?0:f),y2:l(f<0?0:f),x1:0-d.left,x2:m+d.right,label:He.numberFormattingFunction(f<0?0:f,"NA",ce,T,h),labelPos:{x:0-d.left,y:l(f<0?0:f),dx:0,dy:G<0?"1em":-5},classNames:{axis:c?.xAxis?.axis,label:c?.yAxis?.labels},styles:{axis:R?.xAxis?.axis,label:R?.yAxis?.labels}}),n.jsxRuntimeExports.jsx(nt.YTicksAndGridLines,{values:b.filter(vt),y:b.filter(gt).map(s=>l(s)),x1:0-d.left,x2:m+d.right,styles:{gridLines:R?.yAxis?.gridLines,labels:R?.yAxis?.labels},classNames:{gridLines:c?.yAxis?.gridLines,labels:c?.yAxis?.labels},suffix:h,prefix:T,labelType:"secondary",showGridLines:!0,labelPos:"vertical",precision:ce})]}):null,fe.filter(ht).map(pt),me.map(s=>n.jsxRuntimeExports.jsxs("g",{className:"undp-viz-g-with-hover",transform:`translate(${s.x},${s.y})`,opacity:g?s.color&&j[X.indexOf(s.color)]===g?1:ae:ge.length!==0?ge.indexOf(s.label)!==-1?.85:ae:.85,onMouseEnter:i=>{F(s),Q(i.clientY),J(i.clientX),le?.(s)},onMouseMove:i=>{F(s),Q(i.clientY),J(i.clientX)},onClick:()=>{(xe||V)&&(Pe.isEqual(U,s)&&Z?(B(void 0),xe?.(void 0)):(B(s),xe?.(s)))},onMouseLeave:()=>{F(void 0),J(void 0),Q(void 0),le?.(void 0)},children:[n.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,r:r?r(s.radius||0):x,fill:o.filter(ft).length===0?j[0]:s.color?j[X.indexOf(s.color)]:ve.Colors.gray}),(r?r(s.radius||0):x)>10&&A?n.jsxRuntimeExports.jsx("g",{children:n.jsxRuntimeExports.jsx("foreignObject",{y:0-(r?r(s.radius||0):x),x:0-(r?r(s.radius||0):x),width:2*(r?r(s.radius||0):x),height:2*(r?r(s.radius||0):x),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",c?.graphObjectValues),style:{fontSize:`${Math.min(Math.max(Math.round((r?r(s.radius||0):x)/4),10),Math.max(Math.round((r?r(s.radius||0):x)*12/`${s.label}`.length),10),20)}px`,hyphens:"auto",color:We.getTextColorBasedOnBgColor(o.filter(xt).length===0?j[0]:s.color?j[X.indexOf(s.color)]:ve.Colors.gray),...R?.graphObjectValues||{}},children:s.label}):null})})}):null]},s.label)),D?n.jsxRuntimeExports.jsx(n.jsxRuntimeExports.Fragment,{children:D.map((s,i)=>n.jsxRuntimeExports.jsx(Je.RefLineY,{text:s.text,color:s.color,y:l(s.value),x1:0-d.left,x2:m+d.right,classNames:s.classNames,styles:s.styles,isInView:!0},i))}):null,fe.filter(mt).map(dt)]})}):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(Ye.w,{})})});let N;e[13]!==c?.tooltip||e[14]!==a||e[15]!==K||e[16]!==de||e[17]!==R?.tooltip||e[18]!==Y?(N=de&&Y&&a&&K?n.jsxRuntimeExports.jsx(ze.Tooltip,{data:de,body:Y,xPos:a,yPos:K,backgroundStyle:R?.tooltip,className:c?.tooltip}):null,e[13]=c?.tooltip,e[14]=a,e[15]=K,e[16]=de,e[17]=R?.tooltip,e[18]=Y,e[19]=N):N=e[19];let O;e[20]!==c?.modal||e[21]!==V||e[22]!==U?(O=V&&U!==void 0?n.jsxRuntimeExports.jsx(Ke.DetailsModal,{body:V,data:U,setData:B,className:c?.modal}):null,e[20]=c?.modal,e[21]=V,e[22]=U,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 dt(t){return t.layer}function mt(t){return t.position==="after"}function xt(t){return t.color}function ft(t){return t.color}function pt(t){return t.layer}function ht(t){return t.position==="before"}function gt(t){return t!==0}function vt(t){return t!==0}function yt(t){return t.position}function jt(t){return{...t,...t.data&&{data:{...t.data}}}}function bt(t){return t!=null}function Mt(t){return t.radius}function Et(t){return t.radius===void 0||t.radius===null}function Rt(t){return t.position}function Ot(t){return!v.checkIfNullOrUndefined(t.position)}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 $t(t){return!v.checkIfNullOrUndefined(t.radius)}function Lt(t){return!v.checkIfNullOrUndefined(t.radius)}function qt(t){const e=n.compilerRuntimeExports.c(28),{data:o,circleColors:j,showTicks:he,width:S,height:w,colorDomain:X,topMargin:C,bottomMargin:ee,leftMargin:te,rightMargin:re,showLabels:h,tooltip:T,onSeriesMouseOver:A,refValues:Y,selectedColor:le,startFromZero:D,radius:g,maxRadiusValue:$,maxValue:x,minValue:H,highlightedDataPoints:z,onSeriesMouseClick:W,rtl:ge,resetSelectionOnDoubleClick:xe,detailsOnClick:Z,suffix:V,prefix:R,styles:c,classNames:y,noOfTicks:ae,dimmedOpacity:ce,precision:fe,customLayers:ue}=t,I=C===void 0?25:C,oe=ee===void 0?10:ee,ie=te===void 0?10:te,pe=re===void 0?10:re,de=p.useRef(null),[F,U]=p.useState(void 0),[B,me]=p.useState(void 0),[u,a]=p.useState(null),[J,K]=p.useState(void 0),[Q,L]=p.useState(void 0);let d;e[0]!==oe||e[1]!==ie||e[2]!==pe||e[3]!==I?(d={top:I,bottom:oe,left:ie,right:pe},e[0]=oe,e[1]=ie,e[2]=pe,e[3]=I,e[4]=d):d=e[4];const m=d,ne=S-m.left-m.right,q=w-m.top-m.bottom,_=o.filter(io).length===0?o:Xe.orderBy(o.filter(oo),"radius","desc");let G;e[5]!==o||e[6]!==x||e[7]!==D?(G=v.checkIfNullOrUndefined(x)?Math.max(...o.filter(to).map(eo))<0&&!D?0:Math.max(...o.filter(_t).map(Qt)):x,e[5]=o,e[6]=x,e[7]=D,e[8]=G):G=e[8];const P=G;let f;e[9]!==o||e[10]!==H||e[11]!==D?(f=v.checkIfNullOrUndefined(H)?Math.min(...o.filter(Kt).map(Jt))>=0&&!D?0:Math.min(...o.filter(Zt).map(Wt)):H,e[9]=o,e[10]=H,e[11]=D,e[12]=f):f=e[12];const r=f,l=o.filter(zt).length!==o.length?Qe.sqrt().domain([0,v.checkIfNullOrUndefined($)?Math.max(...o.map(Ht).filter(Yt)):$]).range([.25,g]).nice():void 0,b=_e.linear().domain([r,P]).range([0,ne]).nice(),M=b.ticks(ae);p.useEffect(()=>{const i=_.map(Xt).filter(Pt);se.forceSimulation(i).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",()=>{a(i)}).on("end",()=>{a(i)})},[o,g,q,ne,r,P,_,b,l]);const N=u?n.jsxRuntimeExports.jsx("svg",{width:`${S}px`,height:`${w}px`,viewBox:`0 0 ${S} ${w}`,direction:"ltr",ref:de,children:n.jsxRuntimeExports.jsxs("g",{transform:`translate(${m.left},${m.top})`,children:[he?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(Ze.Axis,{x1:b(r<0?0:r),x2:b(r<0?0:r),y1:0-m.top,y2:q+m.bottom,label:He.numberFormattingFunction(r<0?0:r,"NA",fe,R,V),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:c?.xAxis?.axis,label:c?.yAxis?.labels}}),n.jsxRuntimeExports.jsx(st.XTicksAndGridLines,{values:M.filter(Gt),x:M.filter(Bt).map(i=>b(i)),y1:0-I,y2:q+m.bottom,styles:{gridLines:c?.xAxis?.gridLines,labels:c?.xAxis?.labels},classNames:{gridLines:y?.xAxis?.gridLines,labels:y?.xAxis?.labels},suffix:V,prefix:R,labelType:"secondary",showGridLines:!0,precision:fe})]}):null,ue.filter(Ut).map(Ft),u.map(i=>n.jsxRuntimeExports.jsxs("g",{className:"undp-viz-g-with-hover",transform:`translate(${i.x},${i.y})`,opacity:le?i.color&&j[X.indexOf(i.color)]===le?1:ce:z.length!==0?z.indexOf(i.label)!==-1?.85:ce:.85,onMouseEnter:E=>{U(i),L(E.clientY),K(E.clientX),A?.(i)},onMouseMove:E=>{U(i),L(E.clientY),K(E.clientX)},onClick:()=>{(W||Z)&&(Pe.isEqual(B,i)&&xe?(me(void 0),W?.(void 0)):(me(i),W?.(i)))},onMouseLeave:()=>{U(void 0),K(void 0),L(void 0),A?.(void 0)},children:[n.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,fill:o.filter(It).length===0?j[0]:i.color?j[X.indexOf(i.color)]:ve.Colors.gray,radius:l?l(i.radius||0):g}),(l?l(i.radius||0):g)>10&&h?n.jsxRuntimeExports.jsx("g",{children:n.jsxRuntimeExports.jsx("foreignObject",{y:0-(l?l(i.radius||0):g),x:0-(l?l(i.radius||0):g),width:2*(l?l(i.radius||0):g),height:2*(l?l(i.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(it.j,{className:n.mo("text-center leading-none m-0",y?.graphObjectValues),marginBottom:"none",style:{fontSize:`${Math.min(Math.max(Math.round((l?l(i.radius||0):g)/4),10),Math.max(Math.round((l?l(i.radius||0):g)*12/`${i.label}`.length),10),20)}px`,color:We.getTextColorBasedOnBgColor(o.filter(Vt).length===0?j[0]:i.color?j[X.indexOf(i.color)]:ve.Colors.gray),hyphens:"auto",...c?.graphObjectValues||{}},children:i.label}):null})})}):null]},i.label)),Y?n.jsxRuntimeExports.jsx(n.jsxRuntimeExports.Fragment,{children:Y.map((i,E)=>n.jsxRuntimeExports.jsx(Je.RefLineX,{text:i.text,color:i.color,x:b(i.value),y1:0-m.top,y2:q+m.bottom,textSide:b(i.value)>ne*.75||ge?"left":"right",classNames:i.classNames,styles:i.styles,isInView:!0},E))}):null,ue.filter(At).map(Tt)]})}):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(Ye.w,{})})});let O;e[13]!==y?.tooltip||e[14]!==J||e[15]!==Q||e[16]!==F||e[17]!==c?.tooltip||e[18]!==T?(O=F&&T&&J&&Q?n.jsxRuntimeExports.jsx(ze.Tooltip,{data:F,body:T,xPos:J,yPos:Q,backgroundStyle:c?.tooltip,className:y?.tooltip}):null,e[13]=y?.tooltip,e[14]=J,e[15]=Q,e[16]=F,e[17]=c?.tooltip,e[18]=T,e[19]=O):O=e[19];let k;e[20]!==y?.modal||e[21]!==Z||e[22]!==B?(k=Z&&B!==void 0?n.jsxRuntimeExports.jsx(Ke.DetailsModal,{body:Z,data:B,setData:me,className:y?.modal}):null,e[20]=y?.modal,e[21]=Z,e[22]=B,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 Tt(t){return t.layer}function At(t){return t.position==="after"}function Vt(t){return t.color}function It(t){return t.color}function Ft(t){return t.layer}function Ut(t){return t.position==="before"}function Bt(t){return t!==0}function Gt(t){return t!==0}function Pt(t){return t.position}function Xt(t){return{...t,...t.data&&{data:{...t.data}}}}function Yt(t){return t!=null}function Ht(t){return t.radius}function zt(t){return t.radius===void 0||t.radius===null}function Wt(t){return t.position}function Zt(t){return!v.checkIfNullOrUndefined(t.position)}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 eo(t){return t.position}function to(t){return!v.checkIfNullOrUndefined(t.position)}function oo(t){return!v.checkIfNullOrUndefined(t.radius)}function io(t){return!v.checkIfNullOrUndefined(t.radius)}function no(t){const e=n.compilerRuntimeExports.c(91),{data:o,graphTitle:j,topMargin:he,bottomMargin:S,leftMargin:w,rightMargin:X,colors:C,sources:ee,graphDescription:te,height:re,width:h,footNote:T,colorDomain:A,colorLegendTitle:Y,padding:le,relativeHeight:D,tooltip:g,onSeriesMouseOver:$,refValues:x,showColorScale:H,graphID:z,radius:W,showLabels:ge,showTicks:xe,maxRadiusValue:Z,maxValue:V,minValue:R,highlightedDataPoints:c,onSeriesMouseClick:y,ariaLabel:ae,backgroundColor:ce,graphDownload:fe,dataDownload:ue,language:I,showNAColor:oe,minHeight:ie,theme:pe,resetSelectionOnDoubleClick:de,detailsOnClick:F,orientation:U,suffix:B,prefix:me,styles:u,classNames:a,noOfTicks:J,dimmedOpacity:K,precision:Q,customLayers:L}=t,d=W===void 0?5:W,m=ge===void 0?!0:ge,ne=xe===void 0?!0:xe;let q;e[0]!==c?(q=c===void 0?[]:c,e[0]=c,e[1]=q):q=e[1];const _=q,G=ce===void 0?!1:ce,P=fe===void 0?!1:fe,f=ue===void 0?!1:ue,r=I===void 0?"en":I,l=oe===void 0?!0:oe,b=ie===void 0?0:ie,M=pe===void 0?"light":pe,N=de===void 0?!0:de,O=U===void 0?"vertical":U,k=B===void 0?"":B,s=me===void 0?"":me,i=J===void 0?5:J,E=K===void 0?.3:K,De=Q===void 0?2:Q;let Oe;e[2]!==L?(Oe=L===void 0?[]:L,e[2]=L,e[3]=Oe):Oe=e[3];const $e=Oe,[ke,et]=p.useState(0),[Ce,tt]=p.useState(0),[Le,ot]=p.useState(void 0),qe=p.useRef(null),Ie=p.useRef(null),Te=O==="horizontal"?qt:ut;let Ne,Se;e[4]===Symbol.for("react.memo_cache_sentinel")?(Ne=()=>{const Fe=new ResizeObserver(Ue=>{et(Ue[0].target.clientWidth||620),tt(Ue[0].target.clientHeight||480)});return qe.current&&Fe.observe(qe.current),()=>Fe.disconnect()},Se=[],e[4]=Ne,e[5]=Se):(Ne=e[4],Se=e[5]),p.useEffect(Ne,Se);const Ae=a?.graphContainer,Ve=u?.graphContainer;let ye;e[6]!==a?.description||e[7]!==a?.title||e[8]!==o||e[9]!==f||e[10]!==te||e[11]!==P||e[12]!==j||e[13]!==u?.description||e[14]!==u?.title||e[15]!==h?(ye=j||te||P||f?n.jsxRuntimeExports.jsx(rt.GraphHeader,{styles:{title:u?.title,description:u?.description},classNames:{title:a?.title,description:a?.description},graphTitle:j,graphDescription:te,width:h,graphDownload:P?Ie:void 0,dataDownload:f?o.map(xo).filter(mo).length>0?o.map(uo).filter(co):o.filter(ao):null}):null,e[6]=a?.description,e[7]=a?.title,e[8]=o,e[9]=f,e[10]=te,e[11]=P,e[12]=j,e[13]=u?.description,e[14]=u?.title,e[15]=h,e[16]=ye):ye=e[16];let je;e[17]!==a?.colorLegend||e[18]!==A||e[19]!==Y||e[20]!==C||e[21]!==o||e[22]!==H||e[23]!==l||e[24]!==M||e[25]!==h?(je=H!==!1&&o.filter(lo).length!==0&&o.length>0?n.jsxRuntimeExports.jsx(at.ColorLegendWithMouseOver,{width:h,colorLegendTitle:Y,colors:C||ve.Colors[M].categoricalColors.colors,colorDomain:A||Be.uniqBy(o,"color",!0),setSelectedColor:ot,showNAColor:l,className:a?.colorLegend}):null,e[17]=a?.colorLegend,e[18]=A,e[19]=Y,e[20]=C,e[21]=o,e[22]=H,e[23]=l,e[24]=M,e[25]=h,e[26]=je):je=e[26];let be;e[27]!==o.length?(be=o.length===0&&n.jsxRuntimeExports.jsx(lt.EmptyState,{}),e[27]=o.length,e[28]=be):be=e[28];let Me;e[29]!==Te||e[30]!==S||e[31]!==a||e[32]!==A||e[33]!==C||e[34]!==$e||e[35]!==o||e[36]!==F||e[37]!==E||e[38]!==_||e[39]!==w||e[40]!==Z||e[41]!==V||e[42]!==R||e[43]!==i||e[44]!==y||e[45]!==$||e[46]!==De||e[47]!==s||e[48]!==d||e[49]!==x||e[50]!==N||e[51]!==X||e[52]!==Le||e[53]!==m||e[54]!==ne||e[55]!==u||e[56]!==k||e[57]!==Ce||e[58]!==ke||e[59]!==M||e[60]!==g||e[61]!==he?(Me=ke&&Ce&&o.length>0?n.jsxRuntimeExports.jsx(Te,{data:o,circleColors:o.filter(ro).length===0?C?[C]:[ve.Colors.primaryColors["blue-600"]]:C||ve.Colors[M].categoricalColors.colors,colorDomain:o.filter(so).length===0?[]:A||Be.uniqBy(o,"color",!0),width:ke,selectedColor:Le,height:Ce,showTicks:ne,leftMargin:w,rightMargin:X,topMargin:he,bottomMargin:S,showLabels:m,tooltip:g,onSeriesMouseOver:$,refValues:x,startFromZero:!1,radius:d,maxRadiusValue:Z,maxValue:V,minValue:R,highlightedDataPoints:_,onSeriesMouseClick:y,resetSelectionOnDoubleClick:N,detailsOnClick:F,styles:u,classNames:a,suffix:k,prefix:s,noOfTicks:i||5,dimmedOpacity:E,precision:De,customLayers:$e}):null,e[29]=Te,e[30]=S,e[31]=a,e[32]=A,e[33]=C,e[34]=$e,e[35]=o,e[36]=F,e[37]=E,e[38]=_,e[39]=w,e[40]=Z,e[41]=V,e[42]=R,e[43]=i,e[44]=y,e[45]=$,e[46]=De,e[47]=s,e[48]=d,e[49]=x,e[50]=N,e[51]=X,e[52]=Le,e[53]=m,e[54]=ne,e[55]=u,e[56]=k,e[57]=Ce,e[58]=ke,e[59]=M,e[60]=g,e[61]=he,e[62]=Me):Me=e[62];let Ee;e[63]!==be||e[64]!==Me?(Ee=n.jsxRuntimeExports.jsxs(Ge.GraphArea,{ref:qe,children:[be,Me]}),e[63]=be,e[64]=Me,e[65]=Ee):Ee=e[65];let Re;e[66]!==a?.footnote||e[67]!==a?.source||e[68]!==T||e[69]!==ee||e[70]!==u?.footnote||e[71]!==u?.source||e[72]!==h?(Re=ee||T?n.jsxRuntimeExports.jsx(ct.GraphFooter,{styles:{footnote:u?.footnote,source:u?.source},classNames:{footnote:a?.footnote,source:a?.source},sources:ee,footNote:T,width:h}):null,e[66]=a?.footnote,e[67]=a?.source,e[68]=T,e[69]=ee,e[70]=u?.footnote,e[71]=u?.source,e[72]=h,e[73]=Re):Re=e[73];let we;return e[74]!==ae||e[75]!==G||e[76]!==z||e[77]!==re||e[78]!==r||e[79]!==b||e[80]!==le||e[81]!==D||e[82]!==Ae||e[83]!==Ve||e[84]!==ye||e[85]!==je||e[86]!==Ee||e[87]!==Re||e[88]!==M||e[89]!==h?(we=n.jsxRuntimeExports.jsxs(Ge.GraphContainer,{className:Ae,style:Ve,id:z,ref:Ie,"aria-label":ae,backgroundColor:G,theme:M,language:r,minHeight:b,width:h,height:re,relativeHeight:D,padding:le,children:[ye,je,Ee,Re]}),e[74]=ae,e[75]=G,e[76]=z,e[77]=re,e[78]=r,e[79]=b,e[80]=le,e[81]=D,e[82]=Ae,e[83]=Ve,e[84]=ye,e[85]=je,e[86]=Ee,e[87]=Re,e[88]=M,e[89]=h,e[90]=we):we=e[90],we}function so(t){return t.color}function ro(t){return t.color}function lo(t){return t.color}function ao(t){return t!==void 0}function co(t){return t!==void 0}function uo(t){return t.data}function mo(t){return t!==void 0}function xo(t){return t.data}exports.BeeSwarmChart=no;
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}\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 } = 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 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={numberFormattingFunction(\r\n yMinValue < 0 ? 0 : yMinValue,\r\n 'NA',\r\n precision,\r\n prefix,\r\n suffix,\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 />\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 } = 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 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={numberFormattingFunction(\r\n xMinValue < 0 ? 0 : xMinValue,\r\n 'NA',\r\n precision,\r\n prefix,\r\n suffix,\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 />\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 /** 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 /** 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 } = 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 {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {showColorScale !== false && data.filter(el => el.color).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 {svgWidth && svgHeight ? (\r\n <Comp\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 />\r\n ) : null}\r\n </GraphArea>\r\n </>\r\n )}\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","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","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","EmptyState","ColorLegendWithMouseOver","categoricalColors","uniqBy","colorLegend","GraphArea","primaryColors","t27","footnote","source","GraphFooter","t28","GraphContainer"],"mappings":"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"}
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}\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 } = 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 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={numberFormattingFunction(\r\n yMinValue < 0 ? 0 : yMinValue,\r\n 'NA',\r\n precision,\r\n prefix,\r\n suffix,\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 />\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 } = 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 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={numberFormattingFunction(\r\n xMinValue < 0 ? 0 : xMinValue,\r\n 'NA',\r\n precision,\r\n prefix,\r\n suffix,\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 />\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 /** 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 /** 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 } = 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 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 />\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","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","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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"}