@undp/data-viz 2.0.8 → 2.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.js +1 -1
- package/dist/DataCards.cjs +1 -1
- package/dist/DataCards.js +1 -1
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.cjs.map +1 -1
- package/dist/GriddedGraphs.d.ts +1 -0
- package/dist/GriddedGraphs.js +152 -140
- package/dist/GriddedGraphs.js.map +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +1 -0
- package/dist/HybridMap.cjs +1 -1
- package/dist/HybridMap.js +1 -1
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.cjs.map +1 -1
- package/dist/MultiGraphDashboard.d.ts +1 -0
- package/dist/MultiGraphDashboard.js +88 -83
- package/dist/MultiGraphDashboard.js.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +74 -70
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.cjs.map +1 -1
- package/dist/SingleGraphDashboard.d.ts +1 -0
- package/dist/SingleGraphDashboard.js +120 -117
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js +124 -120
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -0
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.js +1 -1
- package/dist/Types.d.ts +1 -0
- package/dist/getUniqValue-DsqSii6M.js +11 -0
- package/dist/getUniqValue-DsqSii6M.js.map +1 -0
- package/dist/getUniqValue-NX8DgwND.cjs +2 -0
- package/dist/getUniqValue-NX8DgwND.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/dist/getUniqValue-BKHCm3zE.js +0 -11
- package/dist/getUniqValue-BKHCm3zE.js.map +0 -1
- package/dist/getUniqValue-RViz8tTw.cjs +0 -2
- package/dist/getUniqValue-RViz8tTw.cjs.map +0 -1
package/dist/ChoroplethMap.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index-CHPV5EwG-CTPQjnHt.cjs"),p=require("react"),st=require("./getSliderMarks-BmADcPQt.cjs"),pt=require("./Spinner-DRMBUsX7.cjs"),it=require("./parse-hMnG_lRV.cjs"),mt=require("./index-DQA8q5sC.cjs"),re=require("./zoom-DPw8bba-.cjs"),ht=require("./Modal-JW_IExO3.cjs"),at=require("./Typography-DX7PlgQU.cjs"),xt=require("./index-DxXnJ8Ti.cjs"),gt=require("./numberFormattingFunction-02t-wJta.cjs"),yt=require("./Tooltip-4dJo4_AF.cjs"),ft=require("./string2HTML-CPGr_I5E.cjs"),jt=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),rt=require("./index-DRXx7m-C.cjs"),vt=require("./ordinal-CrsysVE-.cjs"),bt=require("./threshold-DNsSUf8Q.cjs"),ot=require("./select-Bnfk0lJx.cjs"),Et=require("./use-in-view-QcfiW0w3.cjs"),Ge=require("./proxy-BxvUI_9l.cjs"),kt=require("./index-DG2bgAva.cjs"),Rt=require("./GraphFooter.cjs"),wt=require("./GraphHeader.cjs"),Ue=require("./Colors.cjs"),Ct=require("./fetchAndParseData-l5HGMAEs.cjs"),St=require("./getUniqValue-RViz8tTw.cjs"),$t=require("./getJenks-GYmdwBqm.cjs"),Nt=require("./uniqBy-O05lp2S5.cjs"),lt=require("./GraphContainer-d8A46BK2.cjs"),Dt=require("./sort-O96oMZLb.cjs"),Mt=require("./init-DU0ybBc_.cjs");function qt(h){const{data:e,colorDomain:c,colors:d,mapData:w,colorLegendTitle:N,categorical:W,height:E,width:g,scale:v,centerPoint:B,tooltip:ne,mapBorderWidth:F,mapBorderColor:G,mapNoDataColor:se,onSeriesMouseOver:ie,showColorScale:ve,zoomScaleExtend:Ne,zoomTranslateExtend:De,highlightedIds:U,onSeriesMouseClick:ae,mapProperty:k,resetSelectionOnDoubleClick:be,detailsOnClick:D,styles:Me,classNames:Ee,mapProjection:O,zoomInteraction:P,animate:S,dimmedOpacity:I,customLayers:le,collapseColorScaleByDefault:ke}=h,[M,L]=p.useState(void 0),ce=p.useRef(null),[qe,Re]=p.useState(ke===void 0?!(g<680):!ke),[V,X]=p.useState(void 0),[Y,J]=p.useState(void 0),[x,m]=p.useState(void 0),[de,ue]=p.useState(void 0),A=p.useRef(null),pe=Et.useInView(A,{once:S.once,amount:S.amount}),K=p.useRef(null),Oe=W?vt.ordinal().domain(c).range(d):bt.threshold().domain(c).range(d);p.useEffect(()=>{const o=ot.select(K.current),a=ot.select(A.current),y=r=>{if(P==="noZoom")return!1;if(P==="button")return!r.type.includes("wheel");const i=r.type==="wheel",l=r.type.startsWith("touch"),s=r.type==="mousedown"||r.type==="mousemove";return l?!0:i?P==="scroll"?!0:r.ctrlKey:s&&!r.button&&!r.ctrlKey},n=re.zoom().scaleExtent(Ne).translateExtent(De||[[-20,-20],[g+20,E+20]]).filter(y).on("zoom",({transform:r})=>{o.attr("transform",r)});a.call(n),ce.current=n},[E,g,P]);const H=re.turf_bbox_default(w),R=xt.turf_center_of_mass_default(w),me=H[2]-H[0],z=H[3]-H[1],we=g*190/960*360/me,Ce=E*190/678*180/z,_=v*Math.min(we,Ce),q=O==="mercator"?re.geoMercator().rotate([0,0]).center(B||R.geometry.coordinates).translate([g/2,E/2]).scale(_):O==="equalEarth"?re.geoEqualEarth().rotate([0,0]).center(B||R.geometry.coordinates).translate([g/2,E/2]).scale(_):O==="naturalEarth"?re.geoNaturalEarth1().rotate([0,0]).center(B||R.geometry.coordinates).translate([g/2,E/2]).scale(_):O==="orthographic"?re.geoOrthographic().rotate([0,0]).center(B||R.geometry.coordinates).translate([g/2,E/2]).scale(_):re.geoAlbersUsa().rotate([0,0]).center(B||R.geometry.coordinates).translate([g/2,E/2]).scale(_),he=o=>{if(!A.current||!ce.current)return;ot.select(A.current).call(ce.current.scaleBy,o==="in"?1.2:1/1.2)};return t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsxs("div",{className:"relative",children:[t.jsxRuntimeExports.jsx(Ge.motion.svg,{width:`${g}px`,height:`${E}px`,viewBox:`0 0 ${g} ${E}`,ref:A,direction:"ltr",children:t.jsxRuntimeExports.jsxs("g",{ref:K,children:[le.filter(o=>o.position==="before").map(o=>o.layer),w.features.map((o,a)=>e.findIndex(n=>n.id===o.properties[k])!==-1?null:t.jsxRuntimeExports.jsx("g",{opacity:M?I:U.length!==0?U.indexOf(o.properties[k])!==-1?1:I:1,children:o.geometry.type==="MultiPolygon"?o.geometry.coordinates.map((n,r)=>{let i="";return n.forEach(l=>{let s=" M";l.forEach((u,$)=>{const C=q([u[0],u[1]]);$!==l.length-1?s=`${s}${C[0]} ${C[1]}L`:s=`${s}${C[0]} ${C[1]}`}),i+=s}),t.jsxRuntimeExports.jsx("path",{d:i,style:{stroke:G,strokeWidth:F,fill:se}},r)}):o.geometry.coordinates.map((n,r)=>{let i="M";return n.forEach((l,s)=>{const u=q([l[0],l[1]]);s!==n.length-1?i=`${i}${u[0]} ${u[1]}L`:i=`${i}${u[0]} ${u[1]}`}),t.jsxRuntimeExports.jsx("path",{d:i,style:{stroke:G,strokeWidth:F,fill:se}},r)})},a)),t.jsxRuntimeExports.jsx(kt.AnimatePresence,{children:e.map(o=>{const a=w.features.findIndex(n=>o.id===n.properties[k]),y=jt.checkIfNullOrUndefined(o.x)?se:Oe(o.x);return t.jsxRuntimeExports.jsx(Ge.motion.g,{variants:{initial:{opacity:0},whileInView:{opacity:M?M===y?1:I:U.length!==0?U.indexOf(o.id)!==-1?1:I:1,transition:{duration:S.duration}}},initial:"initial",animate:pe?"whileInView":"initial",exit:{opacity:0,transition:{duration:S.duration}},onMouseEnter:n=>{J(o),ue(n.clientY),m(n.clientX),ie?.(o)},onMouseMove:n=>{J(o),ue(n.clientY),m(n.clientX)},onMouseLeave:()=>{J(void 0),m(void 0),ue(void 0),ie?.(void 0)},onClick:()=>{(ae||D)&&(mt.isEqual(V,o)&&be?(X(void 0),ae?.(void 0)):(X(o),ae?.(o)))},children:a===-1?null:w.features[a].geometry.type==="MultiPolygon"?w.features[a].geometry.coordinates.map((n,r)=>{let i="";return n.forEach(l=>{let s=" M";l.forEach((u,$)=>{const C=q([u[0],u[1]]);$!==l.length-1?s=`${s}${C[0]} ${C[1]}L`:s=`${s}${C[0]} ${C[1]}`}),i+=s}),t.jsxRuntimeExports.jsx(Ge.motion.path,{d:i,variants:{initial:{fill:y,opacity:0},whileInView:{fill:y,opacity:1,transition:{duration:S.duration}}},initial:"initial",animate:pe?"whileInView":"initial",exit:{opacity:0,transition:{duration:S.duration}},style:{stroke:G,strokeWidth:F}},`${o.id}-${r}`)}):w.features[a].geometry.coordinates.map((n,r)=>{let i="M";return n.forEach((l,s)=>{const u=q([l[0],l[1]]);s!==n.length-1?i=`${i}${u[0]} ${u[1]}L`:i=`${i}${u[0]} ${u[1]}`}),t.jsxRuntimeExports.jsx(Ge.motion.path,{d:i,variants:{initial:{fill:y,opacity:0},whileInView:{fill:y,opacity:1,transition:{duration:S.duration}}},initial:"initial",animate:pe?"whileInView":"initial",exit:{opacity:0,transition:{duration:S.duration}},style:{stroke:G,strokeWidth:F}},`${o.id}-${r}`)})},o.id)})}),Y?w.features.filter(o=>o.properties[k]===Y.id).map((o,a)=>t.jsxRuntimeExports.jsx("g",{children:o.geometry.type==="MultiPolygon"?o.geometry.coordinates.map((y,n)=>{let r="";return y.forEach(i=>{let l=" M";i.forEach((s,u)=>{const $=q([s[0],s[1]]);u!==i.length-1?l=`${l}${$[0]} ${$[1]}L`:l=`${l}${$[0]} ${$[1]}`}),r+=l}),t.jsxRuntimeExports.jsx("path",{d:r,className:"stroke-primary-gray-700 dark:stroke-primary-gray-300",style:{fill:"none",fillOpacity:0,strokeWidth:"0.5"}},n)}):o.geometry.coordinates.map((y,n)=>{let r="M";return y.forEach((i,l)=>{const s=q([i[0],i[1]]);l!==y.length-1?r=`${r}${s[0]} ${s[1]}L`:r=`${r}${s[0]} ${s[1]}`}),t.jsxRuntimeExports.jsx("path",{d:r,className:"stroke-primary-gray-700 dark:stroke-primary-gray-300",style:{fill:"none",fillOpacity:0,strokeWidth:"0.5"}},n)})},a)):null,le.filter(o=>o.position==="after").map(o=>o.layer)]})}),ve===!1?null:t.jsxRuntimeExports.jsx("div",{className:t.mo("absolute left-4 bottom-4 map-color-legend",Ee?.colorLegend),children:qe?t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx("div",{className:"color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]",onClick:()=>{Re(!1)},children:t.jsxRuntimeExports.jsx(rt.X,{})}),t.jsxRuntimeExports.jsxs("div",{className:"color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]",style:{width:W?void 0:"340px"},children:[N&&N!==""?t.jsxRuntimeExports.jsx(at.j,{size:"xs",marginBottom:"xs",className:"p-0 leading-normal overflow-hidden text-primary-gray-700 dark:text-primary-gray-300",style:{display:"-webkit-box",WebkitLineClamp:"1",WebkitBoxOrient:"vertical"},children:N}):null,W?t.jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-3",children:c.map((o,a)=>t.jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",onMouseOver:()=>{L(d[a%d.length])},onMouseLeave:()=>{L(void 0)},children:[t.jsxRuntimeExports.jsx("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:d[a%d.length]}}),t.jsxRuntimeExports.jsx(at.j,{size:"sm",marginBottom:"none",leading:"none",children:o})]},a))}):t.jsxRuntimeExports.jsx("svg",{width:"100%",viewBox:"0 0 320 30",direction:"ltr",children:t.jsxRuntimeExports.jsxs("g",{children:[c.map((o,a)=>t.jsxRuntimeExports.jsxs("g",{onMouseOver:()=>{L(d[a])},onMouseLeave:()=>{L(void 0)},className:"cursor-pointer",children:[t.jsxRuntimeExports.jsx("rect",{x:a*320/d.length+1,y:1,width:320/d.length-2,height:8,className:M===d[a]?"stroke-primary-gray-700 dark:stroke-primary-gray-300":"",style:{fill:d[a],...M===d[a]?{}:{stroke:d[a]}}}),t.jsxRuntimeExports.jsx("text",{x:(a+1)*320/d.length,y:25,className:"fill-primary-gray-700 dark:fill-primary-gray-300 text-xs",style:{textAnchor:"middle"},children:gt.numberFormattingFunction(o,"NA")})]},a)),t.jsxRuntimeExports.jsx("g",{children:t.jsxRuntimeExports.jsx("rect",{onMouseOver:()=>{L(d[c.length])},onMouseLeave:()=>{L(void 0)},x:c.length*320/d.length+1,y:1,width:320/d.length-2,height:8,className:`cursor-pointer ${M===d[c.length]?"stroke-1 stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,style:{fill:d[c.length],...M===d[c.length]?{}:{stroke:d[c.length]}}})})]})})]})]}):t.jsxRuntimeExports.jsx("button",{type:"button",className:"mb-0 border-0 bg-transparent p-0 self-start map-legend-button",onClick:()=>{Re(!0)},children:t.jsxRuntimeExports.jsx("div",{className:"show-color-legend-button items-start text-sm font-medium cursor-pointer p-2 mb-0 flex text-primary-black dark:text-primary-gray-300 bg-primary-gray-300 dark:bg-primary-gray-600 border-primary-gray-400 dark:border-primary-gray-500",children:"Show Legend"})})}),P==="button"&&t.jsxRuntimeExports.jsxs("div",{className:"absolute left-4 top-4 flex flex-col zoom-buttons",children:[t.jsxRuntimeExports.jsx("button",{onClick:()=>he("in"),className:"leading-0 px-2 py-3.5 text-primary-gray-700 border border-primary-gray-400 bg-primary-gray-200 dark:border-primary-gray-550 dark:bg-primary-gray-600 dark:text-primary-gray-100",children:"+"}),t.jsxRuntimeExports.jsx("button",{onClick:()=>he("out"),className:"leading-0 px-2 py-3.5 text-primary-gray-700 border border-t-0 border-primary-gray-400 bg-primary-gray-200 dark:border-primary-gray-550 dark:bg-primary-gray-600 dark:text-primary-gray-100",children:"–"})]})]}),D&&V!==void 0?t.jsxRuntimeExports.jsx(ht.le,{open:V!==void 0,onClose:()=>{X(void 0)},children:t.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof D=="string"?{__html:ft.string2HTML(D,V)}:void 0,children:typeof D=="function"?D(V):null})}):null,Y&&ne&&x&&de?t.jsxRuntimeExports.jsx(yt.Tooltip,{data:Y,body:ne,xPos:x,yPos:de,backgroundStyle:Me?.tooltip,className:Ee?.tooltip}):null]})}function Ot(h){const e=t.compilerRuntimeExports.c(106),{data:c,mapData:d,graphTitle:w,colors:N,sources:W,graphDescription:E,height:g,width:v,footNote:B,colorDomain:ne,colorLegendTitle:F,scaleType:G,scale:se,centerPoint:ie,padding:ve,mapBorderWidth:Ne,mapNoDataColor:De,backgroundColor:U,mapBorderColor:ae,relativeHeight:k,tooltip:be,onSeriesMouseOver:D,isWorldMap:Me,showColorScale:Ee,zoomScaleExtend:O,zoomTranslateExtend:P,graphID:S,highlightedIds:I,onSeriesMouseClick:le,mapProperty:ke,graphDownload:M,dataDownload:L,showAntarctica:ce,language:qe,minHeight:Re,theme:V,ariaLabel:X,resetSelectionOnDoubleClick:Y,detailsOnClick:J,styles:x,classNames:m,mapProjection:de,zoomInteraction:ue,animate:A,dimmedOpacity:pe,customLayers:K,timeline:Oe,collapseColorScaleByDefault:H}=h,R=d===void 0?"https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap.json":d,me=B===void 0?"The designations employed and the presentation of material on this map do not imply the expression of any opinion whatsoever on the part of the Secretariat of the United Nations or UNDP concerning the legal status of any country, territory, city or area or its authorities, or concerning the delimitation of its frontiers or boundaries.":B,z=G===void 0?"threshold":G,we=se===void 0?.95:se,Ce=Ne===void 0?.5:Ne,_=De===void 0?Ue.Colors.light.graphNoData:De,q=U===void 0?!1:U,he=ae===void 0?Ue.Colors.light.grays["gray-500"]:ae,o=Me===void 0?!0:Me,a=Ee===void 0?!0:Ee;let y;e[0]!==O?(y=O===void 0?[.8,6]:O,e[0]=O,e[1]=y):y=e[1];const n=y;let r;e[2]!==I?(r=I===void 0?[]:I,e[2]=I,e[3]=r):r=e[3];const i=r,l=ke===void 0?"ISO3":ke,s=M===void 0?!1:M,u=L===void 0?!1:L,$=ce===void 0?!1:ce,C=qe===void 0?"en":qe,T=Re===void 0?0:Re,Z=V===void 0?"light":V,Xe=Y===void 0?!0:Y,Ye=ue===void 0?"button":ue,Pe=A===void 0?!1:A,Je=pe===void 0?.3:pe;let Ie;e[4]!==K?(Ie=K===void 0?[]:K,e[4]=K,e[5]=Ie):Ie=e[5];const Ke=Ie,b=Oe===void 0?{enabled:!1,autoplay:!1,showOnlyActiveDate:!0}:Oe,[Q,ct]=p.useState(0),[Se,dt]=p.useState(0),[ee,Ze]=p.useState(b.autoplay),f=Dt.sort(Nt.uniqBy(c,"date",!0).map(j=>it.parse(`${j}`,b.dateFormat||"yyyy",new Date).getTime()),Bt),[te,$e]=p.useState(b.autoplay?0:f.length-1),[xe,ut]=p.useState(void 0),Qe=p.useRef(null),nt=p.useRef(null);let Le,ze;e[6]===Symbol.for("react.memo_cache_sentinel")?(Le=()=>{const j=new ResizeObserver(oe=>{ct(oe[0].target.clientWidth||620),dt(oe[0].target.clientHeight||480)});return Qe.current&&j.observe(Qe.current),()=>j.disconnect()},ze=[],e[6]=Le,e[7]=ze):(Le=e[6],ze=e[7]),p.useEffect(Le,ze);let _e;e[8]===Symbol.for("react.memo_cache_sentinel")?(_e=j=>{ut(j)},e[8]=_e):_e=e[8];const Te=p.useEffectEvent(_e);let We;e[9]!==R||e[10]!==Te?(We=()=>{typeof R=="string"?Ct.fetchAndParseJSON(R).then(oe=>{Te(oe)}):Te(R)},e[9]=R,e[10]=Te,e[11]=We):We=e[11];let Be;e[12]!==R?(Be=[R],e[12]=R,e[13]=Be):Be=e[13],p.useEffect(We,Be);let Fe;e[14]!==ne||e[15]!==N?.length||e[16]!==c||e[17]!==z?(Fe=ne||(z==="categorical"?St.getUniqValue(c,"x"):$t.getJenks(c.map(Wt),N?.length||4)),e[14]=ne,e[15]=N?.length,e[16]=c,e[17]=z,e[18]=Fe):Fe=e[18];const Ve=Fe;p.useEffect(()=>{const j=setInterval(()=>{$e(oe=>oe<f.length-1?oe+1:0)},(b.speed||2)*1e3);return ee||clearInterval(j),()=>clearInterval(j)},[f,ee,b.speed]);const Ae=st.getSliderMarks(f,te,b.showOnlyActiveDate,b.dateFormat||"yyyy"),et=m?.graphContainer,tt=x?.graphContainer;let ge;e[19]!==m?.description||e[20]!==m?.title||e[21]!==c||e[22]!==u||e[23]!==E||e[24]!==s||e[25]!==w||e[26]!==x?.description||e[27]!==x?.title||e[28]!==v?(ge=w||E||s||u?t.jsxRuntimeExports.jsx(wt.GraphHeader,{styles:{title:x?.title,description:x?.description},classNames:{title:m?.title,description:m?.description},graphTitle:w,graphDescription:E,width:v,graphDownload:s?nt:void 0,dataDownload:u?c.map(Tt).filter(_t).length>0?c.map(zt).filter(Lt):c.filter(It):null}):null,e[19]=m?.description,e[20]=m?.title,e[21]=c,e[22]=u,e[23]=E,e[24]=s,e[25]=w,e[26]=x?.description,e[27]=x?.title,e[28]=v,e[29]=ge):ge=e[29];let ye;e[30]!==te||e[31]!==Ae||e[32]!==ee||e[33]!==$e||e[34]!==Ze||e[35]!==b.enabled||e[36]!==f?(ye=b.enabled&&f.length>0&&Ae?t.jsxRuntimeExports.jsxs("div",{className:"flex gap-6 items-center",dir:"ltr",children:[t.jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>{Ze(!ee)},className:"p-0 border-0 cursor-pointer bg-transparent","aria-label":ee?"Click to pause animation":"Click to play animation",children:ee?t.jsxRuntimeExports.jsx(rt.Pause,{}):t.jsxRuntimeExports.jsx(rt.Play,{})}),t.jsxRuntimeExports.jsx(st.Nr,{min:f[0],max:f[f.length-1],marks:Ae,step:null,defaultValue:f[f.length-1],value:f[te],onChangeComplete:j=>{$e(f.indexOf(j))},onChange:j=>{$e(f.indexOf(j))},"aria-label":"Time slider. Use arrow keys to adjust selected time period."})]}):null,e[30]=te,e[31]=Ae,e[32]=ee,e[33]=$e,e[34]=Ze,e[35]=b.enabled,e[36]=f,e[37]=ye):ye=e[37];let fe;e[38]!==Pe||e[39]!==ie||e[40]!==m||e[41]!==H||e[42]!==F||e[43]!==N||e[44]!==Ke||e[45]!==c||e[46]!==J||e[47]!==Je||e[48]!==Ve||e[49]!==g||e[50]!==i||e[51]!==te||e[52]!==o||e[53]!==he||e[54]!==Ce||e[55]!==_||e[56]!==de||e[57]!==l||e[58]!==xe||e[59]!==T||e[60]!==le||e[61]!==D||e[62]!==k||e[63]!==Xe||e[64]!==we||e[65]!==z||e[66]!==$||e[67]!==a||e[68]!==x||e[69]!==Se||e[70]!==Q||e[71]!==Z||e[72]!==b.dateFormat||e[73]!==b.enabled||e[74]!==be||e[75]!==f||e[76]!==v||e[77]!==Ye||e[78]!==n||e[79]!==P?(fe=t.jsxRuntimeExports.jsx(lt.GraphArea,{ref:Qe,children:Q&&Se&&xe?t.jsxRuntimeExports.jsx(qt,{data:c.filter(j=>b.enabled?j.date===it.format(new Date(f[te]),b.dateFormat||"yyyy"):j),mapData:$?xe:{...xe,features:xe.features.filter(Pt)},colorDomain:Ve,width:Q,height:Se,scale:we,centerPoint:ie,colors:N||(z==="categorical"?Ue.Colors[Z].categoricalColors.colors:Ue.Colors[Z].sequentialColors[`neutralColorsx0${Ve.length+1}`]),colorLegendTitle:F,mapBorderWidth:Ce,mapNoDataColor:_,categorical:z==="categorical",mapBorderColor:he,tooltip:be,onSeriesMouseOver:D,isWorldMap:o,showColorScale:a,zoomScaleExtend:n,zoomTranslateExtend:P,onSeriesMouseClick:le,mapProperty:l,highlightedIds:i,resetSelectionOnDoubleClick:Xe,styles:x,classNames:m,detailsOnClick:J,mapProjection:de||(o?"naturalEarth":"mercator"),zoomInteraction:Ye,dimmedOpacity:Je,animate:Pe===!0?{duration:.5,once:!0,amount:.5}:Pe||{duration:0,once:!0,amount:0},customLayers:Ke,collapseColorScaleByDefault:H}):t.jsxRuntimeExports.jsx("div",{style:{height:`${Math.max(T,g||(k?T?(v||Q)*k>T?(v||Q)*k:T:(v||Q)*k:Se))}px`},className:"flex items-center justify-center",children:t.jsxRuntimeExports.jsx(pt.w,{"aria-label":"Loading graph"})})}),e[38]=Pe,e[39]=ie,e[40]=m,e[41]=H,e[42]=F,e[43]=N,e[44]=Ke,e[45]=c,e[46]=J,e[47]=Je,e[48]=Ve,e[49]=g,e[50]=i,e[51]=te,e[52]=o,e[53]=he,e[54]=Ce,e[55]=_,e[56]=de,e[57]=l,e[58]=xe,e[59]=T,e[60]=le,e[61]=D,e[62]=k,e[63]=Xe,e[64]=we,e[65]=z,e[66]=$,e[67]=a,e[68]=x,e[69]=Se,e[70]=Q,e[71]=Z,e[72]=b.dateFormat,e[73]=b.enabled,e[74]=be,e[75]=f,e[76]=v,e[77]=Ye,e[78]=n,e[79]=P,e[80]=fe):fe=e[80];let je;e[81]!==m?.footnote||e[82]!==m?.source||e[83]!==me||e[84]!==W||e[85]!==x?.footnote||e[86]!==x?.source||e[87]!==v?(je=W||me?t.jsxRuntimeExports.jsx(Rt.GraphFooter,{styles:{footnote:x?.footnote,source:x?.source},classNames:{footnote:m?.footnote,source:m?.source},sources:W,footNote:me,width:v}):null,e[81]=m?.footnote,e[82]=m?.source,e[83]=me,e[84]=W,e[85]=x?.footnote,e[86]=x?.source,e[87]=v,e[88]=je):je=e[88];let He;return e[89]!==X||e[90]!==q||e[91]!==S||e[92]!==g||e[93]!==C||e[94]!==T||e[95]!==ve||e[96]!==k||e[97]!==et||e[98]!==tt||e[99]!==ge||e[100]!==ye||e[101]!==fe||e[102]!==je||e[103]!==Z||e[104]!==v?(He=t.jsxRuntimeExports.jsxs(lt.GraphContainer,{className:et,style:tt,id:S,ref:nt,"aria-label":X,backgroundColor:q,theme:Z,language:C,minHeight:T,width:v,height:g,relativeHeight:k,padding:ve,children:[ge,ye,fe,je]}),e[89]=X,e[90]=q,e[91]=S,e[92]=g,e[93]=C,e[94]=T,e[95]=ve,e[96]=k,e[97]=et,e[98]=tt,e[99]=ge,e[100]=ye,e[101]=fe,e[102]=je,e[103]=Z,e[104]=v,e[105]=He):He=e[105],He}function Pt(h){return h.properties.NAME!=="Antarctica"}function It(h){return h!==void 0}function Lt(h){return h!==void 0}function zt(h){return h.data}function _t(h){return h!==void 0}function Tt(h){return h.data}function Wt(h){return h.x}function Bt(h,e){return Mt.ascending(h,e)}exports.ChoroplethMap=Ot;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index-CHPV5EwG-CTPQjnHt.cjs"),p=require("react"),st=require("./getSliderMarks-BmADcPQt.cjs"),pt=require("./Spinner-DRMBUsX7.cjs"),it=require("./parse-hMnG_lRV.cjs"),mt=require("./index-DQA8q5sC.cjs"),re=require("./zoom-DPw8bba-.cjs"),ht=require("./Modal-JW_IExO3.cjs"),at=require("./Typography-DX7PlgQU.cjs"),xt=require("./index-DxXnJ8Ti.cjs"),gt=require("./numberFormattingFunction-02t-wJta.cjs"),yt=require("./Tooltip-4dJo4_AF.cjs"),ft=require("./string2HTML-CPGr_I5E.cjs"),jt=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),rt=require("./index-DRXx7m-C.cjs"),vt=require("./ordinal-CrsysVE-.cjs"),bt=require("./threshold-DNsSUf8Q.cjs"),ot=require("./select-Bnfk0lJx.cjs"),Et=require("./use-in-view-QcfiW0w3.cjs"),Ge=require("./proxy-BxvUI_9l.cjs"),kt=require("./index-DG2bgAva.cjs"),Rt=require("./GraphFooter.cjs"),wt=require("./GraphHeader.cjs"),Ue=require("./Colors.cjs"),Ct=require("./fetchAndParseData-l5HGMAEs.cjs"),St=require("./getUniqValue-NX8DgwND.cjs"),$t=require("./getJenks-GYmdwBqm.cjs"),Nt=require("./uniqBy-O05lp2S5.cjs"),lt=require("./GraphContainer-d8A46BK2.cjs"),Dt=require("./sort-O96oMZLb.cjs"),Mt=require("./init-DU0ybBc_.cjs");function qt(h){const{data:e,colorDomain:c,colors:d,mapData:w,colorLegendTitle:N,categorical:W,height:E,width:g,scale:v,centerPoint:B,tooltip:ne,mapBorderWidth:F,mapBorderColor:G,mapNoDataColor:se,onSeriesMouseOver:ie,showColorScale:ve,zoomScaleExtend:Ne,zoomTranslateExtend:De,highlightedIds:U,onSeriesMouseClick:ae,mapProperty:k,resetSelectionOnDoubleClick:be,detailsOnClick:D,styles:Me,classNames:Ee,mapProjection:O,zoomInteraction:P,animate:S,dimmedOpacity:I,customLayers:le,collapseColorScaleByDefault:ke}=h,[M,L]=p.useState(void 0),ce=p.useRef(null),[qe,Re]=p.useState(ke===void 0?!(g<680):!ke),[V,X]=p.useState(void 0),[Y,J]=p.useState(void 0),[x,m]=p.useState(void 0),[de,ue]=p.useState(void 0),A=p.useRef(null),pe=Et.useInView(A,{once:S.once,amount:S.amount}),K=p.useRef(null),Oe=W?vt.ordinal().domain(c).range(d):bt.threshold().domain(c).range(d);p.useEffect(()=>{const o=ot.select(K.current),a=ot.select(A.current),y=r=>{if(P==="noZoom")return!1;if(P==="button")return!r.type.includes("wheel");const i=r.type==="wheel",l=r.type.startsWith("touch"),s=r.type==="mousedown"||r.type==="mousemove";return l?!0:i?P==="scroll"?!0:r.ctrlKey:s&&!r.button&&!r.ctrlKey},n=re.zoom().scaleExtent(Ne).translateExtent(De||[[-20,-20],[g+20,E+20]]).filter(y).on("zoom",({transform:r})=>{o.attr("transform",r)});a.call(n),ce.current=n},[E,g,P]);const H=re.turf_bbox_default(w),R=xt.turf_center_of_mass_default(w),me=H[2]-H[0],z=H[3]-H[1],we=g*190/960*360/me,Ce=E*190/678*180/z,_=v*Math.min(we,Ce),q=O==="mercator"?re.geoMercator().rotate([0,0]).center(B||R.geometry.coordinates).translate([g/2,E/2]).scale(_):O==="equalEarth"?re.geoEqualEarth().rotate([0,0]).center(B||R.geometry.coordinates).translate([g/2,E/2]).scale(_):O==="naturalEarth"?re.geoNaturalEarth1().rotate([0,0]).center(B||R.geometry.coordinates).translate([g/2,E/2]).scale(_):O==="orthographic"?re.geoOrthographic().rotate([0,0]).center(B||R.geometry.coordinates).translate([g/2,E/2]).scale(_):re.geoAlbersUsa().rotate([0,0]).center(B||R.geometry.coordinates).translate([g/2,E/2]).scale(_),he=o=>{if(!A.current||!ce.current)return;ot.select(A.current).call(ce.current.scaleBy,o==="in"?1.2:1/1.2)};return t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsxs("div",{className:"relative",children:[t.jsxRuntimeExports.jsx(Ge.motion.svg,{width:`${g}px`,height:`${E}px`,viewBox:`0 0 ${g} ${E}`,ref:A,direction:"ltr",children:t.jsxRuntimeExports.jsxs("g",{ref:K,children:[le.filter(o=>o.position==="before").map(o=>o.layer),w.features.map((o,a)=>e.findIndex(n=>n.id===o.properties[k])!==-1?null:t.jsxRuntimeExports.jsx("g",{opacity:M?I:U.length!==0?U.indexOf(o.properties[k])!==-1?1:I:1,children:o.geometry.type==="MultiPolygon"?o.geometry.coordinates.map((n,r)=>{let i="";return n.forEach(l=>{let s=" M";l.forEach((u,$)=>{const C=q([u[0],u[1]]);$!==l.length-1?s=`${s}${C[0]} ${C[1]}L`:s=`${s}${C[0]} ${C[1]}`}),i+=s}),t.jsxRuntimeExports.jsx("path",{d:i,style:{stroke:G,strokeWidth:F,fill:se}},r)}):o.geometry.coordinates.map((n,r)=>{let i="M";return n.forEach((l,s)=>{const u=q([l[0],l[1]]);s!==n.length-1?i=`${i}${u[0]} ${u[1]}L`:i=`${i}${u[0]} ${u[1]}`}),t.jsxRuntimeExports.jsx("path",{d:i,style:{stroke:G,strokeWidth:F,fill:se}},r)})},a)),t.jsxRuntimeExports.jsx(kt.AnimatePresence,{children:e.map(o=>{const a=w.features.findIndex(n=>o.id===n.properties[k]),y=jt.checkIfNullOrUndefined(o.x)?se:Oe(o.x);return t.jsxRuntimeExports.jsx(Ge.motion.g,{variants:{initial:{opacity:0},whileInView:{opacity:M?M===y?1:I:U.length!==0?U.indexOf(o.id)!==-1?1:I:1,transition:{duration:S.duration}}},initial:"initial",animate:pe?"whileInView":"initial",exit:{opacity:0,transition:{duration:S.duration}},onMouseEnter:n=>{J(o),ue(n.clientY),m(n.clientX),ie?.(o)},onMouseMove:n=>{J(o),ue(n.clientY),m(n.clientX)},onMouseLeave:()=>{J(void 0),m(void 0),ue(void 0),ie?.(void 0)},onClick:()=>{(ae||D)&&(mt.isEqual(V,o)&&be?(X(void 0),ae?.(void 0)):(X(o),ae?.(o)))},children:a===-1?null:w.features[a].geometry.type==="MultiPolygon"?w.features[a].geometry.coordinates.map((n,r)=>{let i="";return n.forEach(l=>{let s=" M";l.forEach((u,$)=>{const C=q([u[0],u[1]]);$!==l.length-1?s=`${s}${C[0]} ${C[1]}L`:s=`${s}${C[0]} ${C[1]}`}),i+=s}),t.jsxRuntimeExports.jsx(Ge.motion.path,{d:i,variants:{initial:{fill:y,opacity:0},whileInView:{fill:y,opacity:1,transition:{duration:S.duration}}},initial:"initial",animate:pe?"whileInView":"initial",exit:{opacity:0,transition:{duration:S.duration}},style:{stroke:G,strokeWidth:F}},`${o.id}-${r}`)}):w.features[a].geometry.coordinates.map((n,r)=>{let i="M";return n.forEach((l,s)=>{const u=q([l[0],l[1]]);s!==n.length-1?i=`${i}${u[0]} ${u[1]}L`:i=`${i}${u[0]} ${u[1]}`}),t.jsxRuntimeExports.jsx(Ge.motion.path,{d:i,variants:{initial:{fill:y,opacity:0},whileInView:{fill:y,opacity:1,transition:{duration:S.duration}}},initial:"initial",animate:pe?"whileInView":"initial",exit:{opacity:0,transition:{duration:S.duration}},style:{stroke:G,strokeWidth:F}},`${o.id}-${r}`)})},o.id)})}),Y?w.features.filter(o=>o.properties[k]===Y.id).map((o,a)=>t.jsxRuntimeExports.jsx("g",{children:o.geometry.type==="MultiPolygon"?o.geometry.coordinates.map((y,n)=>{let r="";return y.forEach(i=>{let l=" M";i.forEach((s,u)=>{const $=q([s[0],s[1]]);u!==i.length-1?l=`${l}${$[0]} ${$[1]}L`:l=`${l}${$[0]} ${$[1]}`}),r+=l}),t.jsxRuntimeExports.jsx("path",{d:r,className:"stroke-primary-gray-700 dark:stroke-primary-gray-300",style:{fill:"none",fillOpacity:0,strokeWidth:"0.5"}},n)}):o.geometry.coordinates.map((y,n)=>{let r="M";return y.forEach((i,l)=>{const s=q([i[0],i[1]]);l!==y.length-1?r=`${r}${s[0]} ${s[1]}L`:r=`${r}${s[0]} ${s[1]}`}),t.jsxRuntimeExports.jsx("path",{d:r,className:"stroke-primary-gray-700 dark:stroke-primary-gray-300",style:{fill:"none",fillOpacity:0,strokeWidth:"0.5"}},n)})},a)):null,le.filter(o=>o.position==="after").map(o=>o.layer)]})}),ve===!1?null:t.jsxRuntimeExports.jsx("div",{className:t.mo("absolute left-4 bottom-4 map-color-legend",Ee?.colorLegend),children:qe?t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx("div",{className:"color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]",onClick:()=>{Re(!1)},children:t.jsxRuntimeExports.jsx(rt.X,{})}),t.jsxRuntimeExports.jsxs("div",{className:"color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]",style:{width:W?void 0:"340px"},children:[N&&N!==""?t.jsxRuntimeExports.jsx(at.j,{size:"xs",marginBottom:"xs",className:"p-0 leading-normal overflow-hidden text-primary-gray-700 dark:text-primary-gray-300",style:{display:"-webkit-box",WebkitLineClamp:"1",WebkitBoxOrient:"vertical"},children:N}):null,W?t.jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-3",children:c.map((o,a)=>t.jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",onMouseOver:()=>{L(d[a%d.length])},onMouseLeave:()=>{L(void 0)},children:[t.jsxRuntimeExports.jsx("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:d[a%d.length]}}),t.jsxRuntimeExports.jsx(at.j,{size:"sm",marginBottom:"none",leading:"none",children:o})]},a))}):t.jsxRuntimeExports.jsx("svg",{width:"100%",viewBox:"0 0 320 30",direction:"ltr",children:t.jsxRuntimeExports.jsxs("g",{children:[c.map((o,a)=>t.jsxRuntimeExports.jsxs("g",{onMouseOver:()=>{L(d[a])},onMouseLeave:()=>{L(void 0)},className:"cursor-pointer",children:[t.jsxRuntimeExports.jsx("rect",{x:a*320/d.length+1,y:1,width:320/d.length-2,height:8,className:M===d[a]?"stroke-primary-gray-700 dark:stroke-primary-gray-300":"",style:{fill:d[a],...M===d[a]?{}:{stroke:d[a]}}}),t.jsxRuntimeExports.jsx("text",{x:(a+1)*320/d.length,y:25,className:"fill-primary-gray-700 dark:fill-primary-gray-300 text-xs",style:{textAnchor:"middle"},children:gt.numberFormattingFunction(o,"NA")})]},a)),t.jsxRuntimeExports.jsx("g",{children:t.jsxRuntimeExports.jsx("rect",{onMouseOver:()=>{L(d[c.length])},onMouseLeave:()=>{L(void 0)},x:c.length*320/d.length+1,y:1,width:320/d.length-2,height:8,className:`cursor-pointer ${M===d[c.length]?"stroke-1 stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,style:{fill:d[c.length],...M===d[c.length]?{}:{stroke:d[c.length]}}})})]})})]})]}):t.jsxRuntimeExports.jsx("button",{type:"button",className:"mb-0 border-0 bg-transparent p-0 self-start map-legend-button",onClick:()=>{Re(!0)},children:t.jsxRuntimeExports.jsx("div",{className:"show-color-legend-button items-start text-sm font-medium cursor-pointer p-2 mb-0 flex text-primary-black dark:text-primary-gray-300 bg-primary-gray-300 dark:bg-primary-gray-600 border-primary-gray-400 dark:border-primary-gray-500",children:"Show Legend"})})}),P==="button"&&t.jsxRuntimeExports.jsxs("div",{className:"absolute left-4 top-4 flex flex-col zoom-buttons",children:[t.jsxRuntimeExports.jsx("button",{onClick:()=>he("in"),className:"leading-0 px-2 py-3.5 text-primary-gray-700 border border-primary-gray-400 bg-primary-gray-200 dark:border-primary-gray-550 dark:bg-primary-gray-600 dark:text-primary-gray-100",children:"+"}),t.jsxRuntimeExports.jsx("button",{onClick:()=>he("out"),className:"leading-0 px-2 py-3.5 text-primary-gray-700 border border-t-0 border-primary-gray-400 bg-primary-gray-200 dark:border-primary-gray-550 dark:bg-primary-gray-600 dark:text-primary-gray-100",children:"–"})]})]}),D&&V!==void 0?t.jsxRuntimeExports.jsx(ht.le,{open:V!==void 0,onClose:()=>{X(void 0)},children:t.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof D=="string"?{__html:ft.string2HTML(D,V)}:void 0,children:typeof D=="function"?D(V):null})}):null,Y&&ne&&x&&de?t.jsxRuntimeExports.jsx(yt.Tooltip,{data:Y,body:ne,xPos:x,yPos:de,backgroundStyle:Me?.tooltip,className:Ee?.tooltip}):null]})}function Ot(h){const e=t.compilerRuntimeExports.c(106),{data:c,mapData:d,graphTitle:w,colors:N,sources:W,graphDescription:E,height:g,width:v,footNote:B,colorDomain:ne,colorLegendTitle:F,scaleType:G,scale:se,centerPoint:ie,padding:ve,mapBorderWidth:Ne,mapNoDataColor:De,backgroundColor:U,mapBorderColor:ae,relativeHeight:k,tooltip:be,onSeriesMouseOver:D,isWorldMap:Me,showColorScale:Ee,zoomScaleExtend:O,zoomTranslateExtend:P,graphID:S,highlightedIds:I,onSeriesMouseClick:le,mapProperty:ke,graphDownload:M,dataDownload:L,showAntarctica:ce,language:qe,minHeight:Re,theme:V,ariaLabel:X,resetSelectionOnDoubleClick:Y,detailsOnClick:J,styles:x,classNames:m,mapProjection:de,zoomInteraction:ue,animate:A,dimmedOpacity:pe,customLayers:K,timeline:Oe,collapseColorScaleByDefault:H}=h,R=d===void 0?"https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap.json":d,me=B===void 0?"The designations employed and the presentation of material on this map do not imply the expression of any opinion whatsoever on the part of the Secretariat of the United Nations or UNDP concerning the legal status of any country, territory, city or area or its authorities, or concerning the delimitation of its frontiers or boundaries.":B,z=G===void 0?"threshold":G,we=se===void 0?.95:se,Ce=Ne===void 0?.5:Ne,_=De===void 0?Ue.Colors.light.graphNoData:De,q=U===void 0?!1:U,he=ae===void 0?Ue.Colors.light.grays["gray-500"]:ae,o=Me===void 0?!0:Me,a=Ee===void 0?!0:Ee;let y;e[0]!==O?(y=O===void 0?[.8,6]:O,e[0]=O,e[1]=y):y=e[1];const n=y;let r;e[2]!==I?(r=I===void 0?[]:I,e[2]=I,e[3]=r):r=e[3];const i=r,l=ke===void 0?"ISO3":ke,s=M===void 0?!1:M,u=L===void 0?!1:L,$=ce===void 0?!1:ce,C=qe===void 0?"en":qe,T=Re===void 0?0:Re,Z=V===void 0?"light":V,Xe=Y===void 0?!0:Y,Ye=ue===void 0?"button":ue,Pe=A===void 0?!1:A,Je=pe===void 0?.3:pe;let Ie;e[4]!==K?(Ie=K===void 0?[]:K,e[4]=K,e[5]=Ie):Ie=e[5];const Ke=Ie,b=Oe===void 0?{enabled:!1,autoplay:!1,showOnlyActiveDate:!0}:Oe,[Q,ct]=p.useState(0),[Se,dt]=p.useState(0),[ee,Ze]=p.useState(b.autoplay),f=Dt.sort(Nt.uniqBy(c,"date",!0).map(j=>it.parse(`${j}`,b.dateFormat||"yyyy",new Date).getTime()),Bt),[te,$e]=p.useState(b.autoplay?0:f.length-1),[xe,ut]=p.useState(void 0),Qe=p.useRef(null),nt=p.useRef(null);let Le,ze;e[6]===Symbol.for("react.memo_cache_sentinel")?(Le=()=>{const j=new ResizeObserver(oe=>{ct(oe[0].target.clientWidth||620),dt(oe[0].target.clientHeight||480)});return Qe.current&&j.observe(Qe.current),()=>j.disconnect()},ze=[],e[6]=Le,e[7]=ze):(Le=e[6],ze=e[7]),p.useEffect(Le,ze);let _e;e[8]===Symbol.for("react.memo_cache_sentinel")?(_e=j=>{ut(j)},e[8]=_e):_e=e[8];const Te=p.useEffectEvent(_e);let We;e[9]!==R||e[10]!==Te?(We=()=>{typeof R=="string"?Ct.fetchAndParseJSON(R).then(oe=>{Te(oe)}):Te(R)},e[9]=R,e[10]=Te,e[11]=We):We=e[11];let Be;e[12]!==R?(Be=[R],e[12]=R,e[13]=Be):Be=e[13],p.useEffect(We,Be);let Fe;e[14]!==ne||e[15]!==N?.length||e[16]!==c||e[17]!==z?(Fe=ne||(z==="categorical"?St.getUniqValue(c,"x"):$t.getJenks(c.map(Wt),N?.length||4)),e[14]=ne,e[15]=N?.length,e[16]=c,e[17]=z,e[18]=Fe):Fe=e[18];const Ve=Fe;p.useEffect(()=>{const j=setInterval(()=>{$e(oe=>oe<f.length-1?oe+1:0)},(b.speed||2)*1e3);return ee||clearInterval(j),()=>clearInterval(j)},[f,ee,b.speed]);const Ae=st.getSliderMarks(f,te,b.showOnlyActiveDate,b.dateFormat||"yyyy"),et=m?.graphContainer,tt=x?.graphContainer;let ge;e[19]!==m?.description||e[20]!==m?.title||e[21]!==c||e[22]!==u||e[23]!==E||e[24]!==s||e[25]!==w||e[26]!==x?.description||e[27]!==x?.title||e[28]!==v?(ge=w||E||s||u?t.jsxRuntimeExports.jsx(wt.GraphHeader,{styles:{title:x?.title,description:x?.description},classNames:{title:m?.title,description:m?.description},graphTitle:w,graphDescription:E,width:v,graphDownload:s?nt:void 0,dataDownload:u?c.map(Tt).filter(_t).length>0?c.map(zt).filter(Lt):c.filter(It):null}):null,e[19]=m?.description,e[20]=m?.title,e[21]=c,e[22]=u,e[23]=E,e[24]=s,e[25]=w,e[26]=x?.description,e[27]=x?.title,e[28]=v,e[29]=ge):ge=e[29];let ye;e[30]!==te||e[31]!==Ae||e[32]!==ee||e[33]!==$e||e[34]!==Ze||e[35]!==b.enabled||e[36]!==f?(ye=b.enabled&&f.length>0&&Ae?t.jsxRuntimeExports.jsxs("div",{className:"flex gap-6 items-center",dir:"ltr",children:[t.jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>{Ze(!ee)},className:"p-0 border-0 cursor-pointer bg-transparent","aria-label":ee?"Click to pause animation":"Click to play animation",children:ee?t.jsxRuntimeExports.jsx(rt.Pause,{}):t.jsxRuntimeExports.jsx(rt.Play,{})}),t.jsxRuntimeExports.jsx(st.Nr,{min:f[0],max:f[f.length-1],marks:Ae,step:null,defaultValue:f[f.length-1],value:f[te],onChangeComplete:j=>{$e(f.indexOf(j))},onChange:j=>{$e(f.indexOf(j))},"aria-label":"Time slider. Use arrow keys to adjust selected time period."})]}):null,e[30]=te,e[31]=Ae,e[32]=ee,e[33]=$e,e[34]=Ze,e[35]=b.enabled,e[36]=f,e[37]=ye):ye=e[37];let fe;e[38]!==Pe||e[39]!==ie||e[40]!==m||e[41]!==H||e[42]!==F||e[43]!==N||e[44]!==Ke||e[45]!==c||e[46]!==J||e[47]!==Je||e[48]!==Ve||e[49]!==g||e[50]!==i||e[51]!==te||e[52]!==o||e[53]!==he||e[54]!==Ce||e[55]!==_||e[56]!==de||e[57]!==l||e[58]!==xe||e[59]!==T||e[60]!==le||e[61]!==D||e[62]!==k||e[63]!==Xe||e[64]!==we||e[65]!==z||e[66]!==$||e[67]!==a||e[68]!==x||e[69]!==Se||e[70]!==Q||e[71]!==Z||e[72]!==b.dateFormat||e[73]!==b.enabled||e[74]!==be||e[75]!==f||e[76]!==v||e[77]!==Ye||e[78]!==n||e[79]!==P?(fe=t.jsxRuntimeExports.jsx(lt.GraphArea,{ref:Qe,children:Q&&Se&&xe?t.jsxRuntimeExports.jsx(qt,{data:c.filter(j=>b.enabled?j.date===it.format(new Date(f[te]),b.dateFormat||"yyyy"):j),mapData:$?xe:{...xe,features:xe.features.filter(Pt)},colorDomain:Ve,width:Q,height:Se,scale:we,centerPoint:ie,colors:N||(z==="categorical"?Ue.Colors[Z].categoricalColors.colors:Ue.Colors[Z].sequentialColors[`neutralColorsx0${Ve.length+1}`]),colorLegendTitle:F,mapBorderWidth:Ce,mapNoDataColor:_,categorical:z==="categorical",mapBorderColor:he,tooltip:be,onSeriesMouseOver:D,isWorldMap:o,showColorScale:a,zoomScaleExtend:n,zoomTranslateExtend:P,onSeriesMouseClick:le,mapProperty:l,highlightedIds:i,resetSelectionOnDoubleClick:Xe,styles:x,classNames:m,detailsOnClick:J,mapProjection:de||(o?"naturalEarth":"mercator"),zoomInteraction:Ye,dimmedOpacity:Je,animate:Pe===!0?{duration:.5,once:!0,amount:.5}:Pe||{duration:0,once:!0,amount:0},customLayers:Ke,collapseColorScaleByDefault:H}):t.jsxRuntimeExports.jsx("div",{style:{height:`${Math.max(T,g||(k?T?(v||Q)*k>T?(v||Q)*k:T:(v||Q)*k:Se))}px`},className:"flex items-center justify-center",children:t.jsxRuntimeExports.jsx(pt.w,{"aria-label":"Loading graph"})})}),e[38]=Pe,e[39]=ie,e[40]=m,e[41]=H,e[42]=F,e[43]=N,e[44]=Ke,e[45]=c,e[46]=J,e[47]=Je,e[48]=Ve,e[49]=g,e[50]=i,e[51]=te,e[52]=o,e[53]=he,e[54]=Ce,e[55]=_,e[56]=de,e[57]=l,e[58]=xe,e[59]=T,e[60]=le,e[61]=D,e[62]=k,e[63]=Xe,e[64]=we,e[65]=z,e[66]=$,e[67]=a,e[68]=x,e[69]=Se,e[70]=Q,e[71]=Z,e[72]=b.dateFormat,e[73]=b.enabled,e[74]=be,e[75]=f,e[76]=v,e[77]=Ye,e[78]=n,e[79]=P,e[80]=fe):fe=e[80];let je;e[81]!==m?.footnote||e[82]!==m?.source||e[83]!==me||e[84]!==W||e[85]!==x?.footnote||e[86]!==x?.source||e[87]!==v?(je=W||me?t.jsxRuntimeExports.jsx(Rt.GraphFooter,{styles:{footnote:x?.footnote,source:x?.source},classNames:{footnote:m?.footnote,source:m?.source},sources:W,footNote:me,width:v}):null,e[81]=m?.footnote,e[82]=m?.source,e[83]=me,e[84]=W,e[85]=x?.footnote,e[86]=x?.source,e[87]=v,e[88]=je):je=e[88];let He;return e[89]!==X||e[90]!==q||e[91]!==S||e[92]!==g||e[93]!==C||e[94]!==T||e[95]!==ve||e[96]!==k||e[97]!==et||e[98]!==tt||e[99]!==ge||e[100]!==ye||e[101]!==fe||e[102]!==je||e[103]!==Z||e[104]!==v?(He=t.jsxRuntimeExports.jsxs(lt.GraphContainer,{className:et,style:tt,id:S,ref:nt,"aria-label":X,backgroundColor:q,theme:Z,language:C,minHeight:T,width:v,height:g,relativeHeight:k,padding:ve,children:[ge,ye,fe,je]}),e[89]=X,e[90]=q,e[91]=S,e[92]=g,e[93]=C,e[94]=T,e[95]=ve,e[96]=k,e[97]=et,e[98]=tt,e[99]=ge,e[100]=ye,e[101]=fe,e[102]=je,e[103]=Z,e[104]=v,e[105]=He):He=e[105],He}function Pt(h){return h.properties.NAME!=="Antarctica"}function It(h){return h!==void 0}function Lt(h){return h!==void 0}function zt(h){return h.data}function _t(h){return h!==void 0}function Tt(h){return h.data}function Wt(h){return h.x}function Bt(h,e){return Mt.ascending(h,e)}exports.ChoroplethMap=Ot;
|
|
2
2
|
//# sourceMappingURL=ChoroplethMap.cjs.map
|
package/dist/ChoroplethMap.js
CHANGED
|
@@ -23,7 +23,7 @@ import { GraphFooter as Bt } from "./GraphFooter.js";
|
|
|
23
23
|
import { GraphHeader as Tt } from "./GraphHeader.js";
|
|
24
24
|
import { Colors as Xe } from "./Colors.js";
|
|
25
25
|
import { f as At } from "./fetchAndParseData-BpqkBPQL.js";
|
|
26
|
-
import { g as Ft } from "./getUniqValue-
|
|
26
|
+
import { g as Ft } from "./getUniqValue-DsqSii6M.js";
|
|
27
27
|
import { g as Vt } from "./getJenks-BbngDoBQ.js";
|
|
28
28
|
import { u as Ht } from "./uniqBy-BHy4I8PK.js";
|
|
29
29
|
import { a as Gt, G as Ut } from "./GraphContainer-CRqzdKu2.js";
|
package/dist/DataCards.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-CHPV5EwG-CTPQjnHt.cjs"),R=require("react"),He=require("./index-CyZ1lmi_.cjs"),be=require("./index-BS2TADPj.cjs"),ce=require("./DropdownSelect-Doz3mCrM.cjs"),Ce=require("./Typography-DX7PlgQU.cjs"),me=require("./x-BBpi7a_7-mTo40uId.cjs"),_e=require("./index-DRXx7m-C.cjs"),Ae=require("./index-Cno4Q0YE.cjs"),ue=require("./Source-DYMJRrsq.cjs"),Ke=require("./Modal-JW_IExO3.cjs"),Ue=require("./CsvDownloadButton.cjs"),Ee=require("./string2HTML-CPGr_I5E.cjs"),We=require("./GraphFooter.cjs"),Qe=require("./GraphHeader.cjs"),Je=require("./getUniqValue-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-CHPV5EwG-CTPQjnHt.cjs"),R=require("react"),He=require("./index-CyZ1lmi_.cjs"),be=require("./index-BS2TADPj.cjs"),ce=require("./DropdownSelect-Doz3mCrM.cjs"),Ce=require("./Typography-DX7PlgQU.cjs"),me=require("./x-BBpi7a_7-mTo40uId.cjs"),_e=require("./index-DRXx7m-C.cjs"),Ae=require("./index-Cno4Q0YE.cjs"),ue=require("./Source-DYMJRrsq.cjs"),Ke=require("./Modal-JW_IExO3.cjs"),Ue=require("./CsvDownloadButton.cjs"),Ee=require("./string2HTML-CPGr_I5E.cjs"),We=require("./GraphFooter.cjs"),Qe=require("./GraphHeader.cjs"),Je=require("./getUniqValue-NX8DgwND.cjs"),Ve=require("./transformDataForSelect-YmStusCI.cjs"),Xe=require("./GraphContainer-d8A46BK2.cjs");/**
|
|
2
2
|
* @license lucide-react v0.542.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
package/dist/DataCards.js
CHANGED
|
@@ -13,7 +13,7 @@ import { CsvDownloadButton as lt } from "./CsvDownloadButton.js";
|
|
|
13
13
|
import { s as Me } from "./string2HTML-DhG75NqA.js";
|
|
14
14
|
import { GraphFooter as st } from "./GraphFooter.js";
|
|
15
15
|
import { GraphHeader as it } from "./GraphHeader.js";
|
|
16
|
-
import { g as ot } from "./getUniqValue-
|
|
16
|
+
import { g as ot } from "./getUniqValue-DsqSii6M.js";
|
|
17
17
|
import { t as Re } from "./transformDataForSelect-D8AuvYdf.js";
|
|
18
18
|
import { G as nt } from "./GraphContainer-CRqzdKu2.js";
|
|
19
19
|
/**
|
package/dist/GriddedGraphs.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index-CHPV5EwG-CTPQjnHt.cjs"),c=require("react"),ee=require("./index-CyZ1lmi_.cjs"),G=require("./index-BS2TADPj.cjs"),h=require("./checkIfMultiple-wg6hJLXy.cjs"),ae=require("./Spinner-DRMBUsX7.cjs"),f=require("./DropdownSelect-Doz3mCrM.cjs"),te=require("./GraphContainer-d8A46BK2.cjs"),le=require("./GraphEl-BcKU0bG1.cjs"),I=require("./fetchAndParseData-l5HGMAEs.cjs"),oe=require("./Colors.cjs"),P=require("./transformDataForAggregation-XNg0OGYE.cjs"),W=require("./getUniqValue-RViz8tTw.cjs"),re=require("./GraphHeader.cjs"),ne=require("./GraphFooter.cjs"),z=require("./filterData-T5DQBE9b.cjs"),se=require("./ColorLegend.cjs"),ie=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),B=require("./transformDataForSelect-YmStusCI.cjs");function ue(J){const{graphSettings:t,dataSettings:n,filters:T,graphType:q,dataTransform:y,graphDataConfiguration:i,noOfColumns:V,columnGridBy:v,dataFilters:A,showCommonColorScale:F,minGraphHeight:K,minGraphWidth:$,debugMode:b,dataSelectionOptions:k,advancedDataSelectionOptions:O,readableHeader:Q,noOfFiltersPerRow:p=4,uiMode:g="normal",theme:X="light"}=J,[C,Y]=c.useState(void 0),[S,Z]=c.useState(void 0),[w,_]=c.useState([]),M=c.useRef(null),[m,x]=c.useState(i),[j,H]=c.useState([]),[d,D]=c.useState({}),E=c.useMemo(()=>({ignoreCase:!0,ignoreAccents:!0,trim:!0}),[]),L=c.useMemo(()=>!S||j.length===0?S:S.filter(u=>j.every(a=>a.value&&G.flattenDeep([a.value]).length>0?ee.intersection(G.flattenDeep([u[a.filter]]),G.flattenDeep([a.value]).map(l=>l.value)).length>0:!0)),[j,S]);c.useEffect(()=>{Y(L)},[L]);const U=c.useCallback(async()=>{if(n)try{const u=await(n.dataURL?typeof n.dataURL=="string"?n.fileType==="json"?I.fetchAndParseJSON(n.dataURL,n.columnsToArray,n.dataTransformation,b):n.fileType==="api"?I.fetchAndTransformDataFromAPI(n.dataURL,n.apiHeaders,n.columnsToArray,n.dataTransformation,b):I.fetchAndParseCSV(n.dataURL,n.dataTransformation,n.columnsToArray,b,n.delimiter,!0):I.fetchAndParseMultipleDataSources(n.dataURL,n.idColumnTitle):I.transformColumnsToArray(n.data,n.columnsToArray));Z(u);const a=W.getUniqValue(u,v);_(a);const l=(T||[]).map(r=>({filter:r.column,label:r.label||`Filter by ${r.column}`,singleSelect:r.singleSelect,clearable:r.clearable,defaultValue:B.transformDefaultValue(r.defaultValue),value:B.transformDefaultValue(r.defaultValue),availableValues:W.getUniqValue(u,r.column).filter(s=>!r.excludeValues?.includes(`${s}`)).map(s=>({value:s,label:s})),allowSelectAll:r.allowSelectAll,width:r.width}));H(l)}catch(e){console.error("Data fetching error:",e)}},[n,b,v,T]);c.useEffect(()=>{U()},[U]),c.useEffect(()=>{x(i)},[i]);const N=c.useCallback((e,u)=>{H(a=>a.map(l=>l.filter===e?{...l,value:u}:l))},[]);return o.jsxRuntimeExports.jsxs(te.GraphContainer,{className:t?.classNames?.graphContainer,style:t?.styles?.graphContainer,id:t?.graphID,ref:M,"aria-label":t?.ariaLabel||"This is a gridded graph",backgroundColor:t?.backgroundColor??!1,theme:t?.theme||"light",language:t?.language||"en",width:t?.width,height:t?.height,padding:t?.padding,children:[d?.graphTitle||d?.graphDescription||t?.graphTitle||t?.graphDescription||t?.graphDownload||t?.dataDownload?o.jsxRuntimeExports.jsx(re.GraphHeader,{styles:{title:d?.styles?.title||t?.styles?.title,description:d?.styles?.description||t?.styles?.description},classNames:{title:d?.classNames?.title||t?.classNames?.title,description:d?.classNames?.description||t?.classNames?.description},graphTitle:d?.graphTitle||t?.graphTitle,graphDescription:d?.graphDescription||t?.graphDescription,width:d?.width||t?.width,graphDownload:t?.graphDownload?M:void 0,dataDownload:t?.dataDownload&&C&&C.length>0?C:null}):null,C&&w.length>0?o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[j.length!==0||(k||[]).length!==0||(O||[]).length!==0?o.jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-start gap-x-4 gap-y-0 w-full",children:[O?.map((e,u)=>o.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},className:"pb-4",children:[o.jsxRuntimeExports.jsx(h.b,{className:"mb-2",children:e.label||"Graph by"}),e.ui!=="radio"?o.jsxRuntimeExports.jsx(f.ja,{options:e.options.map(a=>({...a,value:a.label})),isClearable:!1,isSearchable:!0,variant:g,controlShouldRenderValue:!0,defaultValue:e.defaultValue?{...e.defaultValue,value:e.defaultValue?.label}:{...e.options[0],value:e.options[0].label},onChange:a=>{D(a?.graphSettings||{}),x(a?.dataConfiguration)}}):o.jsxRuntimeExports.jsx(h.ye,{defaultValue:e.defaultValue?.label||e.options[0].label,variant:g,onValueChange:a=>{const l=e.options[e.options.findIndex(r=>r.label===a)];D(l.graphSettings||{}),x(l.dataConfiguration)},children:e.options.map((a,l)=>o.jsxRuntimeExports.jsx(h.he,{label:a.label,value:a.label},l))})]},u)),k?.map((e,u)=>o.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},className:"pb-4",children:[o.jsxRuntimeExports.jsx(h.b,{className:"mb-2",children:e.label||`Visualize ${e.chartConfigId} by`}),h.checkIfMultiple(e.chartConfigId,m||[])?e.ui!=="radio"?o.jsxRuntimeExports.jsx(f.ja,{options:e.allowedColumnIds,isMulti:!0,variant:g,isSearchable:!0,controlShouldRenderValue:!0,defaultValue:i?i[i.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(l=>l.value===a)]):void 0,filterOption:f.Du(E),onChange:a=>{const l={columnId:a.map(s=>s.value),chartConfigId:e.chartConfigId},r=m?.map(s=>s.chartConfigId===l.chartConfigId?l:s);x(r)},isRtl:t?.language==="ar"||t?.language==="he"}):o.jsxRuntimeExports.jsx(h.$,{variant:g,defaultValue:i?i[i.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(l=>l.value===a)]).map(a=>a.value):[],onValueChange:a=>{const l={columnId:a||[],chartConfigId:e.chartConfigId},r=m?.map(s=>s.chartConfigId===l.chartConfigId?l:s);x(r)},children:e.allowedColumnIds.map((a,l)=>o.jsxRuntimeExports.jsx(h.P,{label:a.label,value:a.label},l))}):e.ui!=="radio"?o.jsxRuntimeExports.jsx(f.ja,{options:e.allowedColumnIds,isClearable:!1,isSearchable:!0,variant:g,defaultValue:i?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===i[i.findIndex(l=>l.chartConfigId===e.chartConfigId)].columnId)]:void 0,controlShouldRenderValue:!0,onChange:a=>{const l={columnId:a?.value,chartConfigId:e.chartConfigId},r=m?.map(s=>s.chartConfigId===l.chartConfigId?l:s);D(a?.graphSettings||{}),x(r)}}):o.jsxRuntimeExports.jsx(h.ye,{variant:g,defaultValue:i?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===i[i.findIndex(l=>l.chartConfigId===e.chartConfigId)].columnId)].label:"",onValueChange:a=>{const l=e.allowedColumnIds[e.allowedColumnIds.findIndex(R=>R.label===a)],r={columnId:l.value,chartConfigId:e.chartConfigId},s=m?.map(R=>R.chartConfigId===r.chartConfigId?r:R);D(l.graphSettings||{}),x(s)},children:e.allowedColumnIds.map((a,l)=>o.jsxRuntimeExports.jsx(h.he,{label:a.label,value:a.label},l))})]},u)),j?.map((e,u)=>o.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:0,flexWrap:"wrap"},className:"pb-4",children:[o.jsxRuntimeExports.jsx(h.b,{className:"mb-2",children:e.label}),e.singleSelect?o.jsxRuntimeExports.jsx(f.ja,{variant:g,options:e.availableValues,isClearable:e.clearable===void 0?!0:e.clearable,isRtl:t?.language==="ar"||t?.language==="he",isSearchable:!0,controlShouldRenderValue:!0,filterOption:f.Du(E),onChange:a=>{N(e.filter,a)},defaultValue:e.defaultValue}):o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[o.jsxRuntimeExports.jsx(f.ja,{variant:g,options:e.availableValues,isMulti:!0,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:f.Du(E),onChange:a=>{N(e.filter,a)},defaultValue:e.defaultValue,isRtl:t?.language==="ar"||t?.language==="he"}),e.allowSelectAll?o.jsxRuntimeExports.jsx("button",{className:"bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400",type:"button",onClick:()=>{N(e.filter,e.availableValues)},children:"Select all options"}):null]})]},u))]}):null,F!==!1&&t?.showColorScale!==!1?o.jsxRuntimeExports.jsx(se.ColorLegend,{width:t?.width,colorLegendTitle:t?.colorLegendTitle,colors:t?.colors||t?.lineColors||oe.Colors[t?.theme||"light"].categoricalColors.colors,colorDomain:t?.colorDomain||t?.labels||[],showNAColor:t?.showNAColor===void 0||t?.showNAColor===null?!0:t?.showNAColor}):null,o.jsxRuntimeExports.jsx("div",{className:`flex flex-wrap gap-4 justify-center ${t?.language==="ar"||t?.language==="he"?"flex-row-reverse":"flex-row"}`,children:w.map((e,u)=>o.jsxRuntimeExports.jsx("div",{style:{width:`calc(${100/(V||Math.min(4,w.length||0))}% - ${((V||Math.min(4,w.length||0))-1)/(V||Math.min(4,w.length||0))}rem)`,minWidth:ie.checkIfNullOrUndefined($)?"280px":`${$}px`},children:o.jsxRuntimeExports.jsx(le.GraphEl,{graph:q,graphDataConfiguration:m,graphData:P.transformDataForGraph(y?P.transformDataForAggregation(z.filterData(C,A||[]).filter(a=>a[v]===e),y.keyColumn,y.aggregationColumnsSetting):z.filterData(C,A||[]).filter(a=>a[v]===e),q,m)||[],debugMode:b,settings:{...t||{},...d,theme:t?.theme||X,width:void 0,height:void 0,relativeHeight:t?.relativeHeight||.67,minHeight:K,graphTitle:`${e}`,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,padding:"0",footNote:void 0,sources:void 0,showColorScale:t?.showColorScale===!1?!1:F===!1},readableHeader:Q||[]})},u))})]}):o.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:o.jsxRuntimeExports.jsx(ae.w,{})}),t?.sources||t?.footNote?o.jsxRuntimeExports.jsx(ne.GraphFooter,{styles:{footnote:t?.styles?.footnote,source:t?.styles?.source},classNames:{footnote:t?.classNames?.footnote,source:t?.classNames?.source},sources:t?.sources,footNote:t?.footNote,width:t?.width}):null]})}exports.GriddedGraphs=ue;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index-CHPV5EwG-CTPQjnHt.cjs"),i=require("react"),ae=require("./index-CyZ1lmi_.cjs"),G=require("./index-BS2TADPj.cjs"),u=require("./checkIfMultiple-wg6hJLXy.cjs"),te=require("./Spinner-DRMBUsX7.cjs"),m=require("./DropdownSelect-Doz3mCrM.cjs"),le=require("./GraphContainer-d8A46BK2.cjs"),oe=require("./GraphEl-BcKU0bG1.cjs"),S=require("./fetchAndParseData-l5HGMAEs.cjs"),re=require("./Colors.cjs"),H=require("./transformDataForAggregation-XNg0OGYE.cjs"),W=require("./getUniqValue-NX8DgwND.cjs"),ne=require("./GraphHeader.cjs"),ie=require("./GraphFooter.cjs"),z=require("./filterData-T5DQBE9b.cjs"),se=require("./ColorLegend.cjs"),ue=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),B=require("./transformDataForSelect-YmStusCI.cjs");function ce(J){const{graphSettings:t,dataSettings:n,filters:T,graphType:$,dataTransform:D,graphDataConfiguration:s,noOfColumns:y,columnGridBy:E,dataFilters:q,showCommonColorScale:A,minGraphHeight:K,minGraphWidth:F,debugMode:b,dataSelectionOptions:O,advancedDataSelectionOptions:k,readableHeader:Q,noOfFiltersPerRow:f=4,uiMode:d="normal",theme:X="light"}=J,[v,Y]=i.useState(void 0),[g,Z]=i.useState(void 0),[j,_]=i.useState([]),M=i.useRef(null),[x,C]=i.useState(s),[w,L]=i.useState([]),[h,R]=i.useState({}),N=i.useMemo(()=>({ignoreCase:!0,ignoreAccents:!0,trim:!0}),[]),P=i.useMemo(()=>!g||w.length===0?g:g.filter(r=>w.every(a=>a.value&&G.flattenDeep([a.value]).length>0?ae.intersection(G.flattenDeep([r[a.filter]]),G.flattenDeep([a.value]).map(l=>l.value)).length>0:!0)),[w,g]);i.useEffect(()=>{Y(P)},[P]);const U=i.useEffectEvent(()=>{const e=(T||[]).map(r=>({filter:r.column,label:r.label||`Filter by ${r.column}`,singleSelect:r.singleSelect,clearable:r.clearable,ui:r.ui,defaultValue:B.transformDefaultValue(r.defaultValue),value:B.transformDefaultValue(r.defaultValue),availableValues:W.getUniqValue(g,r.column).filter(a=>!r.excludeValues?.includes(`${a}`)).map(a=>({value:a,label:a})),allowSelectAll:r.allowSelectAll,width:r.width}));L(e)});i.useEffect(()=>{(async()=>{try{const r=n.dataURL?typeof n.dataURL=="string"?n.fileType==="json"?await S.fetchAndParseJSON(n.dataURL,n.columnsToArray,n.dataTransformation,b):n.fileType==="api"?await S.fetchAndTransformDataFromAPI(n.dataURL,n.apiHeaders,n.columnsToArray,n.dataTransformation,b):await S.fetchAndParseCSV(n.dataURL,n.dataTransformation,n.columnsToArray,b,n.delimiter,!0):await S.fetchAndParseMultipleDataSources(n.dataURL,n.idColumnTitle):await S.transformColumnsToArray(n.data,n.columnsToArray);Z(r)}catch(r){console.error("Data fetching error:",r)}})(),U()},[n,b]),i.useEffect(()=>{U()},[T,g]);const ee=i.useEffectEvent(()=>{const e=W.getUniqValue(g,E);_(e)});i.useEffect(()=>{ee()},[E,g]),i.useEffect(()=>{C(s)},[s]);const I=i.useCallback((e,r)=>{L(a=>a.map(l=>l.filter===e?{...l,value:r}:l))},[]);return o.jsxRuntimeExports.jsxs(le.GraphContainer,{className:t?.classNames?.graphContainer,style:t?.styles?.graphContainer,id:t?.graphID,ref:M,"aria-label":t?.ariaLabel||"This is a gridded graph",backgroundColor:t?.backgroundColor??!1,theme:t?.theme||"light",language:t?.language||"en",width:t?.width,height:t?.height,padding:t?.padding,children:[h?.graphTitle||h?.graphDescription||t?.graphTitle||t?.graphDescription||t?.graphDownload||t?.dataDownload?o.jsxRuntimeExports.jsx(ne.GraphHeader,{styles:{title:h?.styles?.title||t?.styles?.title,description:h?.styles?.description||t?.styles?.description},classNames:{title:h?.classNames?.title||t?.classNames?.title,description:h?.classNames?.description||t?.classNames?.description},graphTitle:h?.graphTitle||t?.graphTitle,graphDescription:h?.graphDescription||t?.graphDescription,width:h?.width||t?.width,graphDownload:t?.graphDownload?M:void 0,dataDownload:t?.dataDownload&&v&&v.length>0?v:null}):null,v&&j.length>0?o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[w.length!==0||(O||[]).length!==0||(k||[]).length!==0?o.jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-start gap-x-4 gap-y-0 w-full",children:[k?.map((e,r)=>o.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/f}% - ${(f-1)/f}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},className:"pb-4",children:[o.jsxRuntimeExports.jsx(u.b,{className:"mb-2",children:e.label||"Graph by"}),e.ui!=="radio"?o.jsxRuntimeExports.jsx(m.ja,{options:e.options.map(a=>({...a,value:a.label})),isClearable:!1,isSearchable:!0,variant:d,controlShouldRenderValue:!0,defaultValue:e.defaultValue?{...e.defaultValue,value:e.defaultValue?.label}:{...e.options[0],value:e.options[0].label},onChange:a=>{R(a?.graphSettings||{}),C(a?.dataConfiguration)}}):o.jsxRuntimeExports.jsx(u.ye,{defaultValue:e.defaultValue?.label||e.options[0].label,variant:d,onValueChange:a=>{const l=e.options[e.options.findIndex(p=>p.label===a)];R(l.graphSettings||{}),C(l.dataConfiguration)},children:e.options.map((a,l)=>o.jsxRuntimeExports.jsx(u.he,{label:a.label,value:a.label},l))})]},r)),O?.map((e,r)=>o.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/f}% - ${(f-1)/f}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},className:"pb-4",children:[o.jsxRuntimeExports.jsx(u.b,{className:"mb-2",children:e.label||`Visualize ${e.chartConfigId} by`}),u.checkIfMultiple(e.chartConfigId,x||[])?e.ui!=="radio"?o.jsxRuntimeExports.jsx(m.ja,{options:e.allowedColumnIds,isMulti:!0,variant:d,isSearchable:!0,controlShouldRenderValue:!0,defaultValue:s?s[s.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(l=>l.value===a)]):void 0,filterOption:m.Du(N),onChange:a=>{const l={columnId:a.map(c=>c.value),chartConfigId:e.chartConfigId},p=x?.map(c=>c.chartConfigId===l.chartConfigId?l:c);C(p)},isRtl:t?.language==="ar"||t?.language==="he"}):o.jsxRuntimeExports.jsx(u.$,{variant:d,defaultValue:s?s[s.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(l=>l.value===a)]).map(a=>a.value):[],onValueChange:a=>{const l={columnId:a||[],chartConfigId:e.chartConfigId},p=x?.map(c=>c.chartConfigId===l.chartConfigId?l:c);C(p)},children:e.allowedColumnIds.map((a,l)=>o.jsxRuntimeExports.jsx(u.P,{label:a.label,value:a.label},l))}):e.ui!=="radio"?o.jsxRuntimeExports.jsx(m.ja,{options:e.allowedColumnIds,isClearable:!1,isSearchable:!0,variant:d,defaultValue:s?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===s[s.findIndex(l=>l.chartConfigId===e.chartConfigId)].columnId)]:void 0,controlShouldRenderValue:!0,onChange:a=>{const l={columnId:a?.value,chartConfigId:e.chartConfigId},p=x?.map(c=>c.chartConfigId===l.chartConfigId?l:c);R(a?.graphSettings||{}),C(p)}}):o.jsxRuntimeExports.jsx(u.ye,{variant:d,defaultValue:s?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===s[s.findIndex(l=>l.chartConfigId===e.chartConfigId)].columnId)].label:"",onValueChange:a=>{const l=e.allowedColumnIds[e.allowedColumnIds.findIndex(V=>V.label===a)],p={columnId:l.value,chartConfigId:e.chartConfigId},c=x?.map(V=>V.chartConfigId===p.chartConfigId?p:V);R(l.graphSettings||{}),C(c)},children:e.allowedColumnIds.map((a,l)=>o.jsxRuntimeExports.jsx(u.he,{label:a.label,value:a.label},l))})]},r)),w?.map((e,r)=>o.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/f}% - ${(f-1)/f}rem)`,flexGrow:1,flexShrink:0,flexWrap:"wrap"},className:"pb-4",children:[o.jsxRuntimeExports.jsx(u.b,{className:"mb-2",children:e.label}),e.singleSelect?e.ui!=="radio"?o.jsxRuntimeExports.jsx(m.ja,{options:e.availableValues,variant:d,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:m.Du(N),onChange:a=>{I(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):o.jsxRuntimeExports.jsx(u.ye,{variant:d,defaultValue:e.defaultValue.value,onValueChange:a=>{I(e.filter,e.availableValues.filter(l=>l.value===a))},children:e.availableValues.map((a,l)=>o.jsxRuntimeExports.jsx(u.he,{label:`${a.label}`,value:`${a.value}`},l))}):o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[e.ui!=="radio"?o.jsxRuntimeExports.jsx(m.ja,{options:e.availableValues,variant:d,size:"sm",isMulti:!0,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:m.Du(N),onChange:a=>{I(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):o.jsxRuntimeExports.jsx(u.$,{variant:d,defaultValue:e.defaultValue?e.defaultValue.map(a=>`${a.value}`):[],value:e.value?e.value.map(a=>`${a.value}`):void 0,onValueChange:a=>{I(e.filter,e.availableValues.filter(l=>a.indexOf(`${l.value}`)!==-1))},children:e.availableValues.map((a,l)=>o.jsxRuntimeExports.jsx(u.P,{label:`${a.label}`,value:`${a.value}`},l))}),e.allowSelectAll?o.jsxRuntimeExports.jsx("button",{type:"button",className:"bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400",onClick:()=>{I(e.filter,e.availableValues)},children:"Select all options"}):null]})]},r))]}):null,A!==!1&&t?.showColorScale!==!1?o.jsxRuntimeExports.jsx(se.ColorLegend,{width:t?.width,colorLegendTitle:t?.colorLegendTitle,colors:t?.colors||t?.lineColors||re.Colors[t?.theme||"light"].categoricalColors.colors,colorDomain:t?.colorDomain||t?.labels||[],showNAColor:t?.showNAColor===void 0||t?.showNAColor===null?!0:t?.showNAColor}):null,o.jsxRuntimeExports.jsx("div",{className:`flex flex-wrap gap-4 justify-center ${t?.language==="ar"||t?.language==="he"?"flex-row-reverse":"flex-row"}`,children:j.map((e,r)=>o.jsxRuntimeExports.jsx("div",{style:{width:`calc(${100/(y||Math.min(4,j.length||0))}% - ${((y||Math.min(4,j.length||0))-1)/(y||Math.min(4,j.length||0))}rem)`,minWidth:ue.checkIfNullOrUndefined(F)?"280px":`${F}px`},children:o.jsxRuntimeExports.jsx(oe.GraphEl,{graph:$,graphDataConfiguration:x,graphData:H.transformDataForGraph(D?H.transformDataForAggregation(z.filterData(v,q||[]).filter(a=>a[E]===e),D.keyColumn,D.aggregationColumnsSetting):z.filterData(v,q||[]).filter(a=>a[E]===e),$,x)||[],debugMode:b,settings:{...t||{},...h,theme:t?.theme||X,width:void 0,height:void 0,relativeHeight:t?.relativeHeight||.67,minHeight:K,graphTitle:`${e}`,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,padding:"0",footNote:void 0,sources:void 0,showColorScale:t?.showColorScale===!1?!1:A===!1},readableHeader:Q||[]})},r))})]}):o.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:o.jsxRuntimeExports.jsx(te.w,{})}),t?.sources||t?.footNote?o.jsxRuntimeExports.jsx(ie.GraphFooter,{styles:{footnote:t?.styles?.footnote,source:t?.styles?.source},classNames:{footnote:t?.classNames?.footnote,source:t?.classNames?.source},sources:t?.sources,footNote:t?.footNote,width:t?.width}):null]})}exports.GriddedGraphs=ce;
|
|
2
2
|
//# sourceMappingURL=GriddedGraphs.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GriddedGraphs.cjs","sources":["../src/Components/Dashboard/GriddedGraphs.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n noOfColumns?: number;\r\n columnGridBy: string;\r\n graphSettings?: GraphSettingsDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n graphType: Exclude<GraphType, 'geoHubMap' | 'geoHubCompareMap' | 'geoHubMapWithLayerSelection'>;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n showCommonColorScale?: boolean;\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n minGraphHeight?: number;\r\n minGraphWidth?: number;\r\n debugMode?: boolean;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n theme?: 'dark' | 'light';\r\n}\r\n\r\nexport function GriddedGraphs(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n noOfColumns,\r\n columnGridBy,\r\n dataFilters,\r\n showCommonColorScale,\r\n minGraphHeight,\r\n minGraphWidth,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n uiMode = 'normal',\r\n theme = 'light',\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [dataFromFile, setDataFromFile] = useState<any>(undefined);\r\n const [gridOption, setGridOption] = useState<(string | number)[]>([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n\r\n const filteredData = useMemo(() => {\r\n if (!dataFromFile || filterSettings.length === 0) return dataFromFile;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = dataFromFile.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n return result;\r\n }, [filterSettings, dataFromFile]);\r\n useEffect(() => {\r\n setData(filteredData);\r\n }, [filteredData]);\r\n\r\n const fetchDataHandler = useCallback(async () => {\r\n if (dataSettings) {\r\n try {\r\n const fetchData = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : fetchAndParseMultipleDataSources(dataSettings.dataURL, dataSettings.idColumnTitle)\r\n : transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n\r\n const d = await fetchData;\r\n setDataFromFile(d);\r\n\r\n const gridValue = getUniqValue(d, columnGridBy) as (string | number)[];\r\n setGridOption(gridValue);\r\n // Optimize filter settings generation\r\n const newFilterSettings = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(d, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n\r\n setFilterSettings(newFilterSettings);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n }\r\n }, [dataSettings, debugMode, columnGridBy, filters]);\r\n useEffect(() => {\r\n fetchDataHandler();\r\n }, [fetchDataHandler]);\r\n useEffect(() => {\r\n setGraphConfig(graphDataConfiguration);\r\n }, [graphDataConfiguration]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = useCallback((filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n }, []);\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel || 'This is a gridded graph'}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n >\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {data && gridOption.length > 0 ? (\r\n <>\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n controlShouldRenderValue\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isMulti\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el.map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n flexWrap: 'wrap',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n <DropdownSelect\r\n variant={uiMode}\r\n options={d.availableValues}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <>\r\n <DropdownSelect\r\n variant={uiMode}\r\n options={d.availableValues}\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n />\r\n {d.allowSelectAll ? (\r\n <button\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n type='button'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ) : null}\r\n {showCommonColorScale !== false && graphSettings?.showColorScale !== false ? (\r\n <ColorLegend\r\n width={graphSettings?.width}\r\n colorLegendTitle={graphSettings?.colorLegendTitle}\r\n colors={\r\n (graphSettings?.colors as string[] | undefined) ||\r\n (graphSettings?.lineColors as string[] | undefined) ||\r\n Colors[(graphSettings?.theme as 'light' | 'dark' | undefined) || 'light']\r\n .categoricalColors.colors\r\n }\r\n colorDomain={graphSettings?.colorDomain || graphSettings?.labels || []}\r\n showNAColor={\r\n graphSettings?.showNAColor === undefined || graphSettings?.showNAColor === null\r\n ? true\r\n : graphSettings?.showNAColor\r\n }\r\n />\r\n ) : null}\r\n <div\r\n className={`flex flex-wrap gap-4 justify-center ${graphSettings?.language === 'ar' || graphSettings?.language === 'he' ? 'flex-row-reverse' : 'flex-row'}`}\r\n >\r\n {gridOption.map((el, i) => (\r\n <div\r\n key={i}\r\n style={{\r\n width: `calc(${\r\n 100 / (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }% - ${\r\n ((noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number)) - 1) /\r\n (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }rem)`,\r\n minWidth: checkIfNullOrUndefined(minGraphWidth) ? '280px' : `${minGraphWidth}px`,\r\n }}\r\n >\r\n <GraphEl\r\n graph={graphType}\r\n graphDataConfiguration={graphConfig}\r\n graphData={\r\n transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n graphType,\r\n graphConfig,\r\n ) || []\r\n }\r\n debugMode={debugMode}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n theme: graphSettings?.theme || theme,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: graphSettings?.relativeHeight || 0.67,\r\n minHeight: minGraphHeight,\r\n graphTitle: `${el}`,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n footNote: undefined,\r\n sources: undefined,\r\n showColorScale:\r\n graphSettings?.showColorScale === false\r\n ? false\r\n : showCommonColorScale === false,\r\n }}\r\n readableHeader={readableHeader || []}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n {graphSettings?.sources || graphSettings?.footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: graphSettings?.styles?.footnote,\r\n source: graphSettings?.styles?.source,\r\n }}\r\n classNames={{\r\n footnote: graphSettings?.classNames?.footnote,\r\n source: graphSettings?.classNames?.source,\r\n }}\r\n sources={graphSettings?.sources}\r\n footNote={graphSettings?.footNote}\r\n width={graphSettings?.width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["GriddedGraphs","props","graphSettings","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","noOfColumns","columnGridBy","dataFilters","showCommonColorScale","minGraphHeight","minGraphWidth","debugMode","dataSelectionOptions","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","uiMode","theme","data","setData","useState","undefined","dataFromFile","setDataFromFile","gridOption","setGridOption","graphParentDiv","useRef","graphConfig","setGraphConfig","filterSettings","setFilterSettings","advancedGraphSettings","setAdvancedGraphSettings","filterConfig","useMemo","ignoreCase","ignoreAccents","trim","filteredData","length","filter","item","every","value","flattenDeep","intersection","map","el","useEffect","fetchDataHandler","useCallback","d","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","gridValue","getUniqValue","newFilterSettings","column","label","singleSelect","clearable","defaultValue","transformDefaultValue","availableValues","v","excludeValues","includes","allowSelectAll","width","error","console","handleFilterChange","values","prev","f","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","language","height","padding","graphTitle","graphDescription","graphDownload","dataDownload","jsx","GraphHeader","title","description","jsxs","Fragment","i","flexGrow","flexShrink","ui","minWidth","Label","DropdownSelect","options","opt","dataConfiguration","RadioGroup","selectedOption","findIndex","j","RadioGroupItem","chartConfigId","checkIfMultiple","allowedColumnIds","columnId","createFilter","newGraphConfig","updatedConfig","CheckboxGroup","CheckboxGroupItem","flexWrap","showColorScale","ColorLegend","colorLegendTitle","colors","lineColors","Colors","categoricalColors","colorDomain","labels","showNAColor","Math","min","checkIfNullOrUndefined","GraphEl","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","relativeHeight","minHeight","footNote","sources","Spinner","GraphFooter","footnote","source"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GriddedGraphs.cjs","sources":["../src/Components/Dashboard/GriddedGraphs.tsx"],"sourcesContent":["import { useCallback, useEffect, useEffectEvent, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n noOfColumns?: number;\r\n columnGridBy: string;\r\n graphSettings?: GraphSettingsDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n graphType: Exclude<GraphType, 'geoHubMap' | 'geoHubCompareMap' | 'geoHubMapWithLayerSelection'>;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n showCommonColorScale?: boolean;\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n minGraphHeight?: number;\r\n minGraphWidth?: number;\r\n debugMode?: boolean;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n theme?: 'dark' | 'light';\r\n}\r\n\r\nexport function GriddedGraphs(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n noOfColumns,\r\n columnGridBy,\r\n dataFilters,\r\n showCommonColorScale,\r\n minGraphHeight,\r\n minGraphWidth,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n uiMode = 'normal',\r\n theme = 'light',\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [dataFromFile, setDataFromFile] = useState<any>(undefined);\r\n const [gridOption, setGridOption] = useState<(string | number)[]>([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n\r\n const filteredData = useMemo(() => {\r\n if (!dataFromFile || filterSettings.length === 0) return dataFromFile;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = dataFromFile.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n return result;\r\n }, [filterSettings, dataFromFile]);\r\n useEffect(() => {\r\n setData(filteredData);\r\n }, [filteredData]);\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n ui: el.ui,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(dataFromFile, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const fetchDataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setDataFromFile(fetchDataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters, dataFromFile]);\r\n\r\n const updateGridOptionEvent = useEffectEvent(() => {\r\n const gridValue = getUniqValue(dataFromFile, columnGridBy) as (string | number)[];\r\n setGridOption(gridValue);\r\n });\r\n useEffect(() => {\r\n updateGridOptionEvent();\r\n }, [columnGridBy, dataFromFile]);\r\n useEffect(() => {\r\n setGraphConfig(graphDataConfiguration);\r\n }, [graphDataConfiguration]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = useCallback((filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n }, []);\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel || 'This is a gridded graph'}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n >\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {data && gridOption.length > 0 ? (\r\n <>\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n controlShouldRenderValue\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isMulti\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el.map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n flexWrap: 'wrap',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={(d.defaultValue as { value: string; label: string }).value}\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => v.value === el),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <RadioGroupItem label={`${el.label}`} value={`${el.value}`} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ) : null}\r\n {showCommonColorScale !== false && graphSettings?.showColorScale !== false ? (\r\n <ColorLegend\r\n width={graphSettings?.width}\r\n colorLegendTitle={graphSettings?.colorLegendTitle}\r\n colors={\r\n (graphSettings?.colors as string[] | undefined) ||\r\n (graphSettings?.lineColors as string[] | undefined) ||\r\n Colors[(graphSettings?.theme as 'light' | 'dark' | undefined) || 'light']\r\n .categoricalColors.colors\r\n }\r\n colorDomain={graphSettings?.colorDomain || graphSettings?.labels || []}\r\n showNAColor={\r\n graphSettings?.showNAColor === undefined || graphSettings?.showNAColor === null\r\n ? true\r\n : graphSettings?.showNAColor\r\n }\r\n />\r\n ) : null}\r\n <div\r\n className={`flex flex-wrap gap-4 justify-center ${graphSettings?.language === 'ar' || graphSettings?.language === 'he' ? 'flex-row-reverse' : 'flex-row'}`}\r\n >\r\n {gridOption.map((el, i) => (\r\n <div\r\n key={i}\r\n style={{\r\n width: `calc(${\r\n 100 / (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }% - ${\r\n ((noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number)) - 1) /\r\n (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }rem)`,\r\n minWidth: checkIfNullOrUndefined(minGraphWidth) ? '280px' : `${minGraphWidth}px`,\r\n }}\r\n >\r\n <GraphEl\r\n graph={graphType}\r\n graphDataConfiguration={graphConfig}\r\n graphData={\r\n transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n graphType,\r\n graphConfig,\r\n ) || []\r\n }\r\n debugMode={debugMode}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n theme: graphSettings?.theme || theme,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: graphSettings?.relativeHeight || 0.67,\r\n minHeight: minGraphHeight,\r\n graphTitle: `${el}`,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n footNote: undefined,\r\n sources: undefined,\r\n showColorScale:\r\n graphSettings?.showColorScale === false\r\n ? false\r\n : showCommonColorScale === false,\r\n }}\r\n readableHeader={readableHeader || []}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n {graphSettings?.sources || graphSettings?.footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: graphSettings?.styles?.footnote,\r\n source: graphSettings?.styles?.source,\r\n }}\r\n classNames={{\r\n footnote: graphSettings?.classNames?.footnote,\r\n source: graphSettings?.classNames?.source,\r\n }}\r\n sources={graphSettings?.sources}\r\n footNote={graphSettings?.footNote}\r\n width={graphSettings?.width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["GriddedGraphs","props","graphSettings","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","noOfColumns","columnGridBy","dataFilters","showCommonColorScale","minGraphHeight","minGraphWidth","debugMode","dataSelectionOptions","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","uiMode","theme","data","setData","useState","undefined","dataFromFile","setDataFromFile","gridOption","setGridOption","graphParentDiv","useRef","graphConfig","setGraphConfig","filterSettings","setFilterSettings","advancedGraphSettings","setAdvancedGraphSettings","filterConfig","useMemo","ignoreCase","ignoreAccents","trim","filteredData","length","filter","item","every","value","flattenDeep","intersection","map","el","useEffect","updateFiltersEvent","useEffectEvent","filterSettingsTemp","column","label","singleSelect","clearable","ui","defaultValue","transformDefaultValue","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","fetchDataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","updateGridOptionEvent","gridValue","handleFilterChange","useCallback","values","prev","f","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","language","height","padding","graphTitle","graphDescription","graphDownload","dataDownload","jsx","GraphHeader","title","description","jsxs","Fragment","d","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","options","opt","dataConfiguration","RadioGroup","selectedOption","findIndex","j","RadioGroupItem","chartConfigId","checkIfMultiple","allowedColumnIds","columnId","createFilter","newGraphConfig","updatedConfig","CheckboxGroup","CheckboxGroupItem","flexWrap","indexOf","showColorScale","ColorLegend","colorLegendTitle","colors","lineColors","Colors","categoricalColors","colorDomain","labels","showNAColor","Math","min","checkIfNullOrUndefined","GraphEl","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","relativeHeight","minHeight","footNote","sources","Spinner","GraphFooter","footnote","source"],"mappings":"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"}
|