@undp/data-viz 1.4.2 → 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/BarGraph.cjs +1 -1
  2. package/dist/BarGraph.cjs.map +1 -1
  3. package/dist/BarGraph.d.ts +2 -0
  4. package/dist/BarGraph.js +1180 -1170
  5. package/dist/BarGraph.js.map +1 -1
  6. package/dist/DumbbellChart.cjs +1 -1
  7. package/dist/DumbbellChart.cjs.map +1 -1
  8. package/dist/DumbbellChart.d.ts +2 -0
  9. package/dist/DumbbellChart.js +354 -345
  10. package/dist/DumbbellChart.js.map +1 -1
  11. package/dist/GraphEl-C0FNZlDn.cjs +2 -0
  12. package/dist/GraphEl-C0FNZlDn.cjs.map +1 -0
  13. package/dist/{GraphEl-BdIyscdt.js → GraphEl-DfPT8ffl.js} +3 -1
  14. package/dist/GraphEl-DfPT8ffl.js.map +1 -0
  15. package/dist/GriddedGraphs.cjs +1 -1
  16. package/dist/GriddedGraphs.d.ts +4 -7
  17. package/dist/GriddedGraphs.js +1 -1
  18. package/dist/GriddedGraphsFromConfig.d.ts +4 -7
  19. package/dist/MultiGraphDashboard.d.ts +4 -7
  20. package/dist/MultiGraphDashboardFromConfig.d.ts +4 -7
  21. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +4 -7
  22. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +4 -7
  23. package/dist/PerformanceIntensiveScrollStory.d.ts +4 -7
  24. package/dist/ScrollStory.d.ts +4 -7
  25. package/dist/SingleGraphDashboard.cjs +1 -1
  26. package/dist/SingleGraphDashboard.d.ts +4 -7
  27. package/dist/SingleGraphDashboard.js +1 -1
  28. package/dist/SingleGraphDashboardFromConfig.d.ts +4 -7
  29. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +4 -7
  30. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +4 -7
  31. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  32. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
  33. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +4 -7
  34. package/dist/SingleGraphDashboardThreeDGraphs.js +28 -25
  35. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
  36. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +4 -7
  37. package/dist/ThreeDGlobe.cjs +1 -1
  38. package/dist/ThreeDGlobe.cjs.map +1 -1
  39. package/dist/ThreeDGlobe.d.ts +11 -2
  40. package/dist/ThreeDGlobe.js +316 -282
  41. package/dist/ThreeDGlobe.js.map +1 -1
  42. package/dist/Types.d.ts +4 -7
  43. package/dist/index.d.ts +19 -9
  44. package/package.json +1 -1
  45. package/dist/GraphEl-B5gAX1IQ.cjs +0 -2
  46. package/dist/GraphEl-B5gAX1IQ.cjs.map +0 -1
  47. package/dist/GraphEl-BdIyscdt.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index-CHPV5EwG-DDoeWRVt.cjs"),o=require("react"),ae=require("./index-Ds0uHjK9.cjs"),A=require("./index-B0rbzOoC.cjs"),te=require("./index-BXns0-ng.cjs"),C=require("./DropdownSelect-BmE5JaeE.cjs"),h=require("./checkIfMultiple-BXbHUCWM.cjs"),le=require("./Typography-k-kOjICQ.cjs"),ne=require("./Spinner-DA6Z5E4n.cjs"),re=require("./GraphEl-B5gAX1IQ.cjs"),G=require("./fetchAndParseData-CQyVGCul.cjs"),U=require("./transformDataForAggregation-Du-Hei-W.cjs"),z=require("./getUniqValue-CHqgSss5.cjs"),ie=require("./GraphHeader.cjs"),W=require("./filterData-DN6py7y_.cjs"),oe=require("./getGraphList-gf02xgT2.cjs"),Z=require("./transformDataForSelect-YmStusCI.cjs"),se=s=>{if(s.findIndex(r=>r.chartConfigId==="yMin")!==-1&&s.findIndex(r=>r.chartConfigId==="yMax")!==-1)return s;const l=[...s];return s.findIndex(r=>r.chartConfigId==="yMin")===-1&&l.push({chartConfigId:"yMin",columnId:`${s[s.findIndex(r=>r.chartConfigId==="y")].columnId}Min`}),s.findIndex(r=>r.chartConfigId==="yMax")===-1&&l.push({chartConfigId:"yMax",columnId:`${s[s.findIndex(r=>r.chartConfigId==="y")].columnId}Max`}),l},F=(s,l)=>{const r=l?.map(y=>{const f=s?.findIndex(i=>i.chartConfigId===y.chartConfigId);if(f===-1)return{};const v=s[f]?.allowedColumnIds?.findIndex(i=>i.value===y.columnId);return v===-1?{}:s[f].allowedColumnIds[v].graphSettings||{}})||[];return Object.assign({},...r)};function ue(s){const{graphSettings:l,dataSettings:r,filters:y,graphType:f,dataTransform:v,graphDataConfiguration:i,dataFilters:q,debugMode:D,dataSelectionOptions:j,advancedDataSelectionOptions:N,readableHeader:J,noOfFiltersPerRow:p=4,updateFilters:B,uiMode:g="normal",highlightDataPointSettings:I}=s,[b,K]=o.useState(void 0),[S,Q]=o.useState(void 0),[m,w]=o.useState(i),[x,R]=o.useState({}),[V,X]=o.useState(void 0),[Y,_]=o.useState([]),P=o.useRef(null),H=o.useRef(i),[E,O]=o.useState([]),k=o.useMemo(()=>({ignoreCase:!0,ignoreAccents:!0,trim:!0}),[]),L=o.useCallback(async()=>{if(r)try{const d=await(r.dataURL?typeof r.dataURL=="string"?r.fileType==="json"?G.fetchAndParseJSON(r.dataURL,r.columnsToArray,r.dataTransformation,D):r.fileType==="api"?G.fetchAndTransformDataFromAPI(r.dataURL,r.apiHeaders,r.columnsToArray,r.dataTransformation,D):G.fetchAndParseCSV(r.dataURL,r.dataTransformation,r.columnsToArray,D,r.delimiter,!0):G.fetchAndParseMultipleDataSources(r.dataURL,r.idColumnTitle):G.transformColumnsToArray(r.data,r.columnsToArray));Q(d);const a=(y||[]).map(t=>({filter:t.column,label:t.label||`Filter by ${t.column}`,singleSelect:t.singleSelect,clearable:t.clearable,defaultValue:Z.transformDefaultValue(t.defaultValue),value:Z.transformDefaultValue(t.defaultValue),availableValues:z.getUniqValue(d,t.column).filter(u=>!t.excludeValues?.includes(`${u}`)).map(u=>({value:u,label:u})),allowSelectAll:t.allowSelectAll,width:t.width}));O(a)}catch(e){console.error("Data fetching error:",e)}},[r,y,D]);o.useEffect(()=>{L()},[L]);const $=o.useMemo(()=>!S||E.length===0?S:S.filter(d=>E.every(a=>a.value&&A.flattenDeep([a.value]).length>0?ae.intersection(A.flattenDeep([d[a.filter]]),A.flattenDeep([a.value]).map(t=>t.value)).length>0:!0)),[E,S]);o.useEffect(()=>{j&&R(F(j,i))},[j,i]),o.useEffect(()=>{S&&K($)},[$,f,S]),o.useEffect(()=>{I?.column&&$&&_(z.getUniqValue($,I.column).filter(e=>!I?.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})))},[$,I]),o.useEffect(()=>{te.isEqual(H.current,i)||(w(i),H.current=i)},[i]);const M=o.useCallback((e,d)=>{O(a=>a.map(t=>t.filter===e?{...t,value:d}:t))},[]),ee=o.useMemo(()=>{if(!b)return;const e=f==="lineChartWithConfidenceInterval"&&m?se(m):m;return U.transformDataForGraph(v?U.transformDataForAggregation(W.filterData(b,q||[]),v.keyColumn,v.aggregationColumnsSetting):W.filterData(b,q||[]),f,e)},[f,m,b,q,v]);return r?n.jsxRuntimeExports.jsx("div",{className:`${l?.theme||"light"} flex ${l?.width?"w-fit grow-0":"w-full grow"}${l?.height?"":" h-full"}`,dir:l?.language==="he"||l?.language==="ar"?"rtl":void 0,children:n.jsxRuntimeExports.jsx("div",{className:n.mo(`${l?.backgroundColor?l?.backgroundColor===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${l?.language||"en"}`,l?.classNames?.graphContainer),style:{...l?.styles?.graphContainer||{},...l?.backgroundColor&&l?.backgroundColor!==!0?{backgroundColor:l?.backgroundColor}:{}},id:l?.graphID,ref:P,children:n.jsxRuntimeExports.jsx("div",{style:{padding:l?.backgroundColor?l?.padding||"1rem":l?.padding||0,flexGrow:1,display:"flex"},children:n.jsxRuntimeExports.jsx("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:b||oe.graphList.filter(e=>e.geoHubMapPresentation).map(e=>e.graphID).indexOf(f)!==-1?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[x?.graphTitle||x?.graphDescription||l?.graphTitle||l?.graphDescription||l?.graphDownload||l?.dataDownload?n.jsxRuntimeExports.jsx(ie.GraphHeader,{styles:{title:x?.styles?.title||l?.styles?.title,description:x?.styles?.description||l?.styles?.description},classNames:{title:x?.classNames?.title||l?.classNames?.title,description:x?.classNames?.description||l?.classNames?.description},graphTitle:x?.graphTitle||l?.graphTitle,graphDescription:x?.graphDescription||l?.graphDescription,width:x?.width||l?.width,graphDownload:l?.graphDownload?P.current:void 0,dataDownload:l?.dataDownload&&b&&b.length>0?b:null}):null,E.length!==0||(j||[]).length!==0||(N||[]).length!==0||I?n.jsxRuntimeExports.jsxs("div",{style:{display:"flex",gap:"1rem",flexWrap:"wrap",alignItems:"flex-start",width:"100%"},children:[N?.map((e,d)=>n.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},children:[n.jsxRuntimeExports.jsx(h.f,{className:"mb-2",children:e.label||"Graph by"}),e.ui!=="radio"?n.jsxRuntimeExports.jsx(C.Za,{options:e.options.map(a=>({...a,value:a.label})),size:"sm",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=>{R(a?.graphSettings||{}),w(a?.dataConfiguration)}}):n.jsxRuntimeExports.jsx(h.fe,{defaultValue:e.defaultValue?.label||e.options[0].label,variant:g,onValueChange:a=>{const t=e.options[e.options.findIndex(u=>u.label===a)];R(t.graphSettings||{}),w(t.dataConfiguration)},children:e.options.map((a,t)=>n.jsxRuntimeExports.jsx(h.ve,{label:a.label,value:a.label},t))})]},d)),j?.map((e,d)=>n.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},children:[n.jsxRuntimeExports.jsx(h.f,{className:"mb-2",children:e.label||`Visualize ${e.chartConfigId} by`}),h.checkIfMultiple(e.chartConfigId,m||[])?e.ui!=="radio"?n.jsxRuntimeExports.jsx(C.Za,{options:e.allowedColumnIds,size:"sm",isMulti:!0,isSearchable:!0,variant:g,controlShouldRenderValue:!0,defaultValue:i?i[i.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]):void 0,filterOption:C.Hu(k),onChange:a=>{const t={columnId:(a||[]).map(c=>c.value),chartConfigId:e.chartConfigId},u=m?.map(c=>c.chartConfigId===t.chartConfigId?t:c);w(u)}}):n.jsxRuntimeExports.jsx(h.w,{variant:g,defaultValue:i?i[i.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]).map(a=>a.value):[],onValueChange:a=>{const t={columnId:a||[],chartConfigId:e.chartConfigId},u=m?.map(c=>c.chartConfigId===t.chartConfigId?t:c);w(u)},children:e.allowedColumnIds.map((a,t)=>n.jsxRuntimeExports.jsx(h.G,{label:a.label,value:a.label},t))}):e.ui!=="radio"?n.jsxRuntimeExports.jsx(C.Za,{options:e.allowedColumnIds,size:"sm",isClearable:!1,isSearchable:!0,variant:g,controlShouldRenderValue:!0,defaultValue:i?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===i[i.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)]:void 0,onChange:a=>{const t={columnId:a?.value,chartConfigId:e.chartConfigId},u=m?.map(c=>c.chartConfigId===t.chartConfigId?t:c);R(F(j,u)),w(u)}}):n.jsxRuntimeExports.jsx(h.fe,{variant:g,defaultValue:i?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===i[i.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)].label:"",onValueChange:a=>{const u={columnId:e.allowedColumnIds[e.allowedColumnIds.findIndex(T=>T.label===a)].value,chartConfigId:e.chartConfigId},c=m?.map(T=>T.chartConfigId===u.chartConfigId?u:T);R(F(j,c)),w(c)},children:e.allowedColumnIds.map((a,t)=>n.jsxRuntimeExports.jsx(h.ve,{label:a.label,value:a.label},t))})]},d)),E?.map((e,d)=>n.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[n.jsxRuntimeExports.jsx(h.f,{className:"mb-2",children:e.label}),e.singleSelect?n.jsxRuntimeExports.jsx(C.Za,{options:e.availableValues,variant:g,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Hu(k),onChange:a=>{M(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[e.ui!=="radio"?n.jsxRuntimeExports.jsx(C.Za,{options:e.availableValues,variant:g,size:"sm",isMulti:!0,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Hu(k),onChange:a=>{M(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):n.jsxRuntimeExports.jsx(h.w,{variant:g,defaultValue:e.defaultValue?e.defaultValue.map(a=>`${a.value}`):[],value:e.value?e.value.map(a=>`${a.value}`):void 0,onValueChange:a=>{M(e.filter,e.availableValues.filter(t=>a.indexOf(`${t.value}`)!==-1))},children:e.availableValues.map((a,t)=>n.jsxRuntimeExports.jsx(h.G,{label:`${a.label}`,value:`${a.value}`},t))}),e.allowSelectAll?n.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:()=>{M(e.filter,e.availableValues)},children:"Select all options"}):null]})]},d)),I?n.jsxRuntimeExports.jsxs("div",{style:{width:I.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[n.jsxRuntimeExports.jsx(h.f,{className:"mb-2",children:I.label||"Highlight data"}),n.jsxRuntimeExports.jsx(C.Za,{options:Y,variant:g,size:"sm",isMulti:!0,isClearable:!0,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Hu(k),onChange:e=>{X(e?.map(d=>d.value))},value:V?.map(e=>({label:e,value:e})),defaultValue:I.defaultValues?.map(e=>({label:e,value:e}))})]}):null]}):null,n.jsxRuntimeExports.jsx(re.GraphEl,{graph:f,graphData:ee,graphDataConfiguration:m,debugMode:D,readableHeader:J||[],updateFilters:B,settings:{...l||{},...x,graphTitle:void 0,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,padding:"0",theme:l?.theme,...V?{highlightedDataPoints:V,highlightedIds:V?.map(e=>`${e}`),highlightedLines:V?.map(e=>e)}:{}}})]}):n.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:n.jsxRuntimeExports.jsx(ne.y,{})})})})})}):n.jsxRuntimeExports.jsx(le.u,{size:"xs",className:"text-center text-accent-dark-red dark:text-accent-red p-2",children:"Please make sure either `dataSettings` props are present as they are required for data."})}exports.SingleGraphDashboard=ue;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index-CHPV5EwG-DDoeWRVt.cjs"),o=require("react"),ae=require("./index-Ds0uHjK9.cjs"),A=require("./index-B0rbzOoC.cjs"),te=require("./index-BXns0-ng.cjs"),C=require("./DropdownSelect-BmE5JaeE.cjs"),h=require("./checkIfMultiple-BXbHUCWM.cjs"),le=require("./Typography-k-kOjICQ.cjs"),ne=require("./Spinner-DA6Z5E4n.cjs"),re=require("./GraphEl-C0FNZlDn.cjs"),G=require("./fetchAndParseData-CQyVGCul.cjs"),U=require("./transformDataForAggregation-Du-Hei-W.cjs"),z=require("./getUniqValue-CHqgSss5.cjs"),ie=require("./GraphHeader.cjs"),W=require("./filterData-DN6py7y_.cjs"),oe=require("./getGraphList-gf02xgT2.cjs"),Z=require("./transformDataForSelect-YmStusCI.cjs"),se=s=>{if(s.findIndex(r=>r.chartConfigId==="yMin")!==-1&&s.findIndex(r=>r.chartConfigId==="yMax")!==-1)return s;const l=[...s];return s.findIndex(r=>r.chartConfigId==="yMin")===-1&&l.push({chartConfigId:"yMin",columnId:`${s[s.findIndex(r=>r.chartConfigId==="y")].columnId}Min`}),s.findIndex(r=>r.chartConfigId==="yMax")===-1&&l.push({chartConfigId:"yMax",columnId:`${s[s.findIndex(r=>r.chartConfigId==="y")].columnId}Max`}),l},F=(s,l)=>{const r=l?.map(y=>{const f=s?.findIndex(i=>i.chartConfigId===y.chartConfigId);if(f===-1)return{};const v=s[f]?.allowedColumnIds?.findIndex(i=>i.value===y.columnId);return v===-1?{}:s[f].allowedColumnIds[v].graphSettings||{}})||[];return Object.assign({},...r)};function ue(s){const{graphSettings:l,dataSettings:r,filters:y,graphType:f,dataTransform:v,graphDataConfiguration:i,dataFilters:q,debugMode:D,dataSelectionOptions:j,advancedDataSelectionOptions:N,readableHeader:J,noOfFiltersPerRow:p=4,updateFilters:B,uiMode:g="normal",highlightDataPointSettings:I}=s,[b,K]=o.useState(void 0),[S,Q]=o.useState(void 0),[m,w]=o.useState(i),[x,R]=o.useState({}),[V,X]=o.useState(void 0),[Y,_]=o.useState([]),P=o.useRef(null),H=o.useRef(i),[E,O]=o.useState([]),k=o.useMemo(()=>({ignoreCase:!0,ignoreAccents:!0,trim:!0}),[]),L=o.useCallback(async()=>{if(r)try{const d=await(r.dataURL?typeof r.dataURL=="string"?r.fileType==="json"?G.fetchAndParseJSON(r.dataURL,r.columnsToArray,r.dataTransformation,D):r.fileType==="api"?G.fetchAndTransformDataFromAPI(r.dataURL,r.apiHeaders,r.columnsToArray,r.dataTransformation,D):G.fetchAndParseCSV(r.dataURL,r.dataTransformation,r.columnsToArray,D,r.delimiter,!0):G.fetchAndParseMultipleDataSources(r.dataURL,r.idColumnTitle):G.transformColumnsToArray(r.data,r.columnsToArray));Q(d);const a=(y||[]).map(t=>({filter:t.column,label:t.label||`Filter by ${t.column}`,singleSelect:t.singleSelect,clearable:t.clearable,defaultValue:Z.transformDefaultValue(t.defaultValue),value:Z.transformDefaultValue(t.defaultValue),availableValues:z.getUniqValue(d,t.column).filter(u=>!t.excludeValues?.includes(`${u}`)).map(u=>({value:u,label:u})),allowSelectAll:t.allowSelectAll,width:t.width}));O(a)}catch(e){console.error("Data fetching error:",e)}},[r,y,D]);o.useEffect(()=>{L()},[L]);const $=o.useMemo(()=>!S||E.length===0?S:S.filter(d=>E.every(a=>a.value&&A.flattenDeep([a.value]).length>0?ae.intersection(A.flattenDeep([d[a.filter]]),A.flattenDeep([a.value]).map(t=>t.value)).length>0:!0)),[E,S]);o.useEffect(()=>{j&&R(F(j,i))},[j,i]),o.useEffect(()=>{S&&K($)},[$,f,S]),o.useEffect(()=>{I?.column&&$&&_(z.getUniqValue($,I.column).filter(e=>!I?.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})))},[$,I]),o.useEffect(()=>{te.isEqual(H.current,i)||(w(i),H.current=i)},[i]);const M=o.useCallback((e,d)=>{O(a=>a.map(t=>t.filter===e?{...t,value:d}:t))},[]),ee=o.useMemo(()=>{if(!b)return;const e=f==="lineChartWithConfidenceInterval"&&m?se(m):m;return U.transformDataForGraph(v?U.transformDataForAggregation(W.filterData(b,q||[]),v.keyColumn,v.aggregationColumnsSetting):W.filterData(b,q||[]),f,e)},[f,m,b,q,v]);return r?n.jsxRuntimeExports.jsx("div",{className:`${l?.theme||"light"} flex ${l?.width?"w-fit grow-0":"w-full grow"}${l?.height?"":" h-full"}`,dir:l?.language==="he"||l?.language==="ar"?"rtl":void 0,children:n.jsxRuntimeExports.jsx("div",{className:n.mo(`${l?.backgroundColor?l?.backgroundColor===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${l?.language||"en"}`,l?.classNames?.graphContainer),style:{...l?.styles?.graphContainer||{},...l?.backgroundColor&&l?.backgroundColor!==!0?{backgroundColor:l?.backgroundColor}:{}},id:l?.graphID,ref:P,children:n.jsxRuntimeExports.jsx("div",{style:{padding:l?.backgroundColor?l?.padding||"1rem":l?.padding||0,flexGrow:1,display:"flex"},children:n.jsxRuntimeExports.jsx("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:b||oe.graphList.filter(e=>e.geoHubMapPresentation).map(e=>e.graphID).indexOf(f)!==-1?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[x?.graphTitle||x?.graphDescription||l?.graphTitle||l?.graphDescription||l?.graphDownload||l?.dataDownload?n.jsxRuntimeExports.jsx(ie.GraphHeader,{styles:{title:x?.styles?.title||l?.styles?.title,description:x?.styles?.description||l?.styles?.description},classNames:{title:x?.classNames?.title||l?.classNames?.title,description:x?.classNames?.description||l?.classNames?.description},graphTitle:x?.graphTitle||l?.graphTitle,graphDescription:x?.graphDescription||l?.graphDescription,width:x?.width||l?.width,graphDownload:l?.graphDownload?P.current:void 0,dataDownload:l?.dataDownload&&b&&b.length>0?b:null}):null,E.length!==0||(j||[]).length!==0||(N||[]).length!==0||I?n.jsxRuntimeExports.jsxs("div",{style:{display:"flex",gap:"1rem",flexWrap:"wrap",alignItems:"flex-start",width:"100%"},children:[N?.map((e,d)=>n.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},children:[n.jsxRuntimeExports.jsx(h.f,{className:"mb-2",children:e.label||"Graph by"}),e.ui!=="radio"?n.jsxRuntimeExports.jsx(C.Za,{options:e.options.map(a=>({...a,value:a.label})),size:"sm",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=>{R(a?.graphSettings||{}),w(a?.dataConfiguration)}}):n.jsxRuntimeExports.jsx(h.fe,{defaultValue:e.defaultValue?.label||e.options[0].label,variant:g,onValueChange:a=>{const t=e.options[e.options.findIndex(u=>u.label===a)];R(t.graphSettings||{}),w(t.dataConfiguration)},children:e.options.map((a,t)=>n.jsxRuntimeExports.jsx(h.ve,{label:a.label,value:a.label},t))})]},d)),j?.map((e,d)=>n.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},children:[n.jsxRuntimeExports.jsx(h.f,{className:"mb-2",children:e.label||`Visualize ${e.chartConfigId} by`}),h.checkIfMultiple(e.chartConfigId,m||[])?e.ui!=="radio"?n.jsxRuntimeExports.jsx(C.Za,{options:e.allowedColumnIds,size:"sm",isMulti:!0,isSearchable:!0,variant:g,controlShouldRenderValue:!0,defaultValue:i?i[i.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]):void 0,filterOption:C.Hu(k),onChange:a=>{const t={columnId:(a||[]).map(c=>c.value),chartConfigId:e.chartConfigId},u=m?.map(c=>c.chartConfigId===t.chartConfigId?t:c);w(u)}}):n.jsxRuntimeExports.jsx(h.w,{variant:g,defaultValue:i?i[i.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]).map(a=>a.value):[],onValueChange:a=>{const t={columnId:a||[],chartConfigId:e.chartConfigId},u=m?.map(c=>c.chartConfigId===t.chartConfigId?t:c);w(u)},children:e.allowedColumnIds.map((a,t)=>n.jsxRuntimeExports.jsx(h.G,{label:a.label,value:a.label},t))}):e.ui!=="radio"?n.jsxRuntimeExports.jsx(C.Za,{options:e.allowedColumnIds,size:"sm",isClearable:!1,isSearchable:!0,variant:g,controlShouldRenderValue:!0,defaultValue:i?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===i[i.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)]:void 0,onChange:a=>{const t={columnId:a?.value,chartConfigId:e.chartConfigId},u=m?.map(c=>c.chartConfigId===t.chartConfigId?t:c);R(F(j,u)),w(u)}}):n.jsxRuntimeExports.jsx(h.fe,{variant:g,defaultValue:i?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===i[i.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)].label:"",onValueChange:a=>{const u={columnId:e.allowedColumnIds[e.allowedColumnIds.findIndex(T=>T.label===a)].value,chartConfigId:e.chartConfigId},c=m?.map(T=>T.chartConfigId===u.chartConfigId?u:T);R(F(j,c)),w(c)},children:e.allowedColumnIds.map((a,t)=>n.jsxRuntimeExports.jsx(h.ve,{label:a.label,value:a.label},t))})]},d)),E?.map((e,d)=>n.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[n.jsxRuntimeExports.jsx(h.f,{className:"mb-2",children:e.label}),e.singleSelect?n.jsxRuntimeExports.jsx(C.Za,{options:e.availableValues,variant:g,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Hu(k),onChange:a=>{M(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[e.ui!=="radio"?n.jsxRuntimeExports.jsx(C.Za,{options:e.availableValues,variant:g,size:"sm",isMulti:!0,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Hu(k),onChange:a=>{M(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):n.jsxRuntimeExports.jsx(h.w,{variant:g,defaultValue:e.defaultValue?e.defaultValue.map(a=>`${a.value}`):[],value:e.value?e.value.map(a=>`${a.value}`):void 0,onValueChange:a=>{M(e.filter,e.availableValues.filter(t=>a.indexOf(`${t.value}`)!==-1))},children:e.availableValues.map((a,t)=>n.jsxRuntimeExports.jsx(h.G,{label:`${a.label}`,value:`${a.value}`},t))}),e.allowSelectAll?n.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:()=>{M(e.filter,e.availableValues)},children:"Select all options"}):null]})]},d)),I?n.jsxRuntimeExports.jsxs("div",{style:{width:I.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[n.jsxRuntimeExports.jsx(h.f,{className:"mb-2",children:I.label||"Highlight data"}),n.jsxRuntimeExports.jsx(C.Za,{options:Y,variant:g,size:"sm",isMulti:!0,isClearable:!0,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Hu(k),onChange:e=>{X(e?.map(d=>d.value))},value:V?.map(e=>({label:e,value:e})),defaultValue:I.defaultValues?.map(e=>({label:e,value:e}))})]}):null]}):null,n.jsxRuntimeExports.jsx(re.GraphEl,{graph:f,graphData:ee,graphDataConfiguration:m,debugMode:D,readableHeader:J||[],updateFilters:B,settings:{...l||{},...x,graphTitle:void 0,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,padding:"0",theme:l?.theme,...V?{highlightedDataPoints:V,highlightedIds:V?.map(e=>`${e}`),highlightedLines:V?.map(e=>e)}:{}}})]}):n.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:n.jsxRuntimeExports.jsx(ne.y,{})})})})})}):n.jsxRuntimeExports.jsx(le.u,{size:"xs",className:"text-center text-accent-dark-red dark:text-accent-red p-2",children:"Please make sure either `dataSettings` props are present as they are required for data."})}exports.SingleGraphDashboard=ue;
2
2
  //# sourceMappingURL=SingleGraphDashboard.cjs.map
@@ -413,7 +413,7 @@ declare interface GraphSettingsDataType {
413
413
  labelsToBeHidden?: (string | number)[];
414
414
  autoRotate?: boolean;
415
415
  enableZoom?: boolean;
416
- globeMaterial?: MaterialDataType;
416
+ globeMaterial?: any;
417
417
  categorical?: boolean;
418
418
  atmosphereColor?: string;
419
419
  lineAxisTitle?: string;
@@ -421,6 +421,9 @@ declare interface GraphSettingsDataType {
421
421
  naLabel?: string;
422
422
  globeOffset?: [number, number];
423
423
  polygonAltitude?: number;
424
+ atmosphereAltitude?: number;
425
+ globeCurvatureResolution?: number;
426
+ lightColor?: string;
424
427
  }
425
428
 
426
429
  declare type GraphType = GraphTypeForGriddedGraph;
@@ -460,12 +463,6 @@ declare interface MapLegendDataType {
460
463
 
461
464
  declare type MapProjectionTypes = 'mercator' | 'equalEarth' | 'naturalEarth' | 'orthographic' | 'albersUSA';
462
465
 
463
- declare interface MaterialDataType {
464
- color: string;
465
- opacity: number;
466
- transparent: boolean;
467
- }
468
-
469
466
  declare interface Props {
470
467
  graphSettings?: GraphSettingsDataType;
471
468
  readableHeader?: {
@@ -7,7 +7,7 @@ import { Z as y, H as N } from "./DropdownSelect-CeHog_ih.js";
7
7
  import { f as F, a as J, v as B, c as ca, w as K, G as Q } from "./checkIfMultiple-ChTJk2Tk.js";
8
8
  import { u as ha } from "./Typography-Ctgfl1J5.js";
9
9
  import { y as fa } from "./Spinner-C85UF28E.js";
10
- import { G as ga } from "./GraphEl-BdIyscdt.js";
10
+ import { G as ga } from "./GraphEl-DfPT8ffl.js";
11
11
  import { f as pa, a as ma, b as Ca, c as xa, t as Ia } from "./fetchAndParseData-4gsYTy6_.js";
12
12
  import { a as va, t as ba } from "./transformDataForAggregation-CdcwlnNe.js";
13
13
  import { g as X } from "./getUniqValue-BtUENB2H.js";
@@ -436,7 +436,7 @@ declare interface GraphSettingsDataType {
436
436
  labelsToBeHidden?: (string | number)[];
437
437
  autoRotate?: boolean;
438
438
  enableZoom?: boolean;
439
- globeMaterial?: MaterialDataType;
439
+ globeMaterial?: any;
440
440
  categorical?: boolean;
441
441
  atmosphereColor?: string;
442
442
  lineAxisTitle?: string;
@@ -444,6 +444,9 @@ declare interface GraphSettingsDataType {
444
444
  naLabel?: string;
445
445
  globeOffset?: [number, number];
446
446
  polygonAltitude?: number;
447
+ atmosphereAltitude?: number;
448
+ globeCurvatureResolution?: number;
449
+ lightColor?: string;
447
450
  }
448
451
 
449
452
  declare type GraphType = GraphTypeForGriddedGraph;
@@ -483,12 +486,6 @@ declare interface MapLegendDataType {
483
486
 
484
487
  declare type MapProjectionTypes = 'mercator' | 'equalEarth' | 'naturalEarth' | 'orthographic' | 'albersUSA';
485
488
 
486
- declare interface MaterialDataType {
487
- color: string;
488
- opacity: number;
489
- transparent: boolean;
490
- }
491
-
492
489
  declare interface Props {
493
490
  config: string | ConfigObject;
494
491
  }
@@ -328,7 +328,7 @@ declare interface GraphSettingsDataType {
328
328
  labelsToBeHidden?: (string | number)[];
329
329
  autoRotate?: boolean;
330
330
  enableZoom?: boolean;
331
- globeMaterial?: MaterialDataType;
331
+ globeMaterial?: any;
332
332
  categorical?: boolean;
333
333
  atmosphereColor?: string;
334
334
  lineAxisTitle?: string;
@@ -336,6 +336,9 @@ declare interface GraphSettingsDataType {
336
336
  naLabel?: string;
337
337
  globeOffset?: [number, number];
338
338
  polygonAltitude?: number;
339
+ atmosphereAltitude?: number;
340
+ globeCurvatureResolution?: number;
341
+ lightColor?: string;
339
342
  }
340
343
 
341
344
  declare interface HighlightAreaSettingsDataType {
@@ -363,12 +366,6 @@ declare interface MapLegendDataType {
363
366
 
364
367
  declare type MapProjectionTypes = 'mercator' | 'equalEarth' | 'naturalEarth' | 'orthographic' | 'albersUSA';
365
368
 
366
- declare interface MaterialDataType {
367
- color: string;
368
- opacity: number;
369
- transparent: boolean;
370
- }
371
-
372
369
  declare interface Props {
373
370
  graphSettings?: GraphSettingsDataType;
374
371
  graphType: GeoHubGraphType;
@@ -335,7 +335,7 @@ declare interface GraphSettingsDataType {
335
335
  labelsToBeHidden?: (string | number)[];
336
336
  autoRotate?: boolean;
337
337
  enableZoom?: boolean;
338
- globeMaterial?: MaterialDataType;
338
+ globeMaterial?: any;
339
339
  categorical?: boolean;
340
340
  atmosphereColor?: string;
341
341
  lineAxisTitle?: string;
@@ -343,6 +343,9 @@ declare interface GraphSettingsDataType {
343
343
  naLabel?: string;
344
344
  globeOffset?: [number, number];
345
345
  polygonAltitude?: number;
346
+ atmosphereAltitude?: number;
347
+ globeCurvatureResolution?: number;
348
+ lightColor?: string;
346
349
  }
347
350
 
348
351
  declare interface HighlightAreaSettingsDataType {
@@ -370,12 +373,6 @@ declare interface MapLegendDataType {
370
373
 
371
374
  declare type MapProjectionTypes = 'mercator' | 'equalEarth' | 'naturalEarth' | 'orthographic' | 'albersUSA';
372
375
 
373
- declare interface MaterialDataType {
374
- color: string;
375
- opacity: number;
376
- transparent: boolean;
377
- }
378
-
379
376
  declare interface Props {
380
377
  config: string | ConfigObject;
381
378
  }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-CHPV5EwG-DDoeWRVt.cjs"),i=require("react"),te=require("./index-Ds0uHjK9.cjs"),A=require("./index-B0rbzOoC.cjs"),le=require("./index-BXns0-ng.cjs"),x=require("./DropdownSelect-BmE5JaeE.cjs"),d=require("./checkIfMultiple-BXbHUCWM.cjs"),M=require("./Typography-k-kOjICQ.cjs"),re=require("./Spinner-DA6Z5E4n.cjs"),ne=require("./ThreeDGlobe.cjs"),$=require("./fetchAndParseData-CQyVGCul.cjs"),W=require("./transformDataForAggregation-Du-Hei-W.cjs"),B=require("./getUniqValue-CHqgSss5.cjs"),oe=require("./GraphHeader.cjs"),J=require("./filterData-DN6py7y_.cjs"),ie=require("./getGraphList-gf02xgT2.cjs"),K=require("./transformDataForSelect-YmStusCI.cjs");function se(I){const{settings:a,graph:n,graphData:p,debugMode:g,graphDataConfiguration:C,readableHeader:o,updateFilters:R}=I;if(g&&(console.log(`Graph: ${n}`),console.log("Transformed data:",p),console.log("Settings:",a)),typeof p=="string")return r.jsxRuntimeExports.jsx("div",{className:`flex my-0 mx-auto grow flex-col justify-center ${a?.width?"w-fit":"w-full"}`,style:{height:"inherit"},children:r.jsxRuntimeExports.jsx(M.u,{size:"sm",marginBottom:"none",className:"p-2 text-center text-accent-dark-red dark:text-accent-red",children:p})});const D={threeDGlobe:ne.ThreeDGlobe},b=c=>{switch(c){case"threeDGlobe":return{globeOffset:a?.globeOffset,polygonAltitude:a?.polygonAltitude,highlightedIds:a?.highlightedIds,scale:a?.scale,theme:a?.theme,resetSelectionOnDoubleClick:a?.resetSelectionOnDoubleClick,graphTitle:a?.graphTitle,mapData:a?.mapData,graphDescription:a?.graphDescription,footNote:a?.footNote,width:a?.width,height:a?.height,sources:a?.sources,colorDomain:a?.colorDomain,colors:a?.colors,colorLegendTitle:Object.keys(a||{}).indexOf("colorLegendTitle")!==-1?a?.colorLegendTitle:d.getValues("x",C||[],o||[]),scaleType:a?.scaleType,data:p,centerPoint:a?.centerPoint,backgroundColor:a?.backgroundColor,mapNoDataColor:a?.mapNoDataColor,mapBorderColor:a?.mapBorderColor,relativeHeight:a?.relativeHeight,padding:a?.padding,tooltip:a?.tooltip,showColorScale:a?.showColorScale,graphID:a?.graphID,dataDownload:a?.dataDownload,mapProperty:a?.mapProperty,language:a?.language,minHeight:a?.minHeight,ariaLabel:a?.ariaLabel,onSeriesMouseClick:H=>{R?.(H.id)},detailsOnClick:a?.detailsOnClick,styles:a?.styles,classNames:a?.classNames,categorical:a?.categorical,autoRotate:a?.autoRotate,globeMaterial:a?.globeMaterial,atmosphereColor:a?.atmosphereColor,enableZoom:a?.enableZoom};default:return{}}},E=D[n],q=b(n);return r.jsxRuntimeExports.jsx("div",{className:`grow my-0 mx-auto flex flex-col h-inherit ${a?.width?"w-fit":"w-full"} justify-center ${a?.theme||"light"}`,style:{minHeight:"inherit"},children:E?r.jsxRuntimeExports.jsx(E,{...q}):r.jsxRuntimeExports.jsx(M.u,{size:"sm",marginBottom:"none",className:"p-2 text-center text-accent-dark-red dark:text-accent-red",children:`Invalid chart type: ${n}`})})}const F=(I,a)=>{const n=a?.map(p=>{const g=I?.findIndex(o=>o.chartConfigId===p.chartConfigId);if(g===-1)return{};const C=I[g]?.allowedColumnIds?.findIndex(o=>o.value===p.columnId);return C===-1?{}:I[g].allowedColumnIds[C].graphSettings||{}})||[];return Object.assign({},...n)};function ue(I){const{graphSettings:a,dataSettings:n,filters:p,graphType:g,dataTransform:C,graphDataConfiguration:o,dataFilters:R,debugMode:D,dataSelectionOptions:b,advancedDataSelectionOptions:E,readableHeader:q,noOfFiltersPerRow:c=4,updateFilters:H,uiMode:f="normal",highlightDataPointSettings:v}=I,[j,Q]=i.useState(void 0),[S,X]=i.useState(void 0),[w,y]=i.useState(o),[m,V]=i.useState({}),[k,Y]=i.useState(void 0),[_,ee]=i.useState([]),L=i.useRef(null),z=i.useRef(o),[T,U]=i.useState([]),N=i.useMemo(()=>({ignoreCase:!0,ignoreAccents:!0,trim:!0}),[]),Z=i.useCallback(async()=>{try{const u=await(n.dataURL?typeof n.dataURL=="string"?n.fileType==="json"?$.fetchAndParseJSON(n.dataURL,n.columnsToArray,n.dataTransformation,D):n.fileType==="api"?$.fetchAndTransformDataFromAPI(n.dataURL,n.apiHeaders,n.columnsToArray,n.dataTransformation,D):$.fetchAndParseCSV(n.dataURL,n.dataTransformation,n.columnsToArray,D,n.delimiter,!0):$.fetchAndParseMultipleDataSources(n.dataURL,n.idColumnTitle):$.transformColumnsToArray(n.data,n.columnsToArray));X(u);const t=(p||[]).map(l=>({filter:l.column,label:l.label||`Filter by ${l.column}`,singleSelect:l.singleSelect,clearable:l.clearable,defaultValue:K.transformDefaultValue(l.defaultValue),value:K.transformDefaultValue(l.defaultValue),availableValues:B.getUniqValue(u,l.column).filter(s=>!l.excludeValues?.includes(`${s}`)).map(s=>({value:s,label:s})),allowSelectAll:l.allowSelectAll,width:l.width}));U(t)}catch(e){console.error("Data fetching error:",e)}},[n,p,D]);i.useEffect(()=>{Z()},[Z]);const G=i.useMemo(()=>!S||T.length===0?S:S.filter(u=>T.every(t=>t.value&&A.flattenDeep([t.value]).length>0?te.intersection(A.flattenDeep([u[t.filter]]),A.flattenDeep([t.value]).map(l=>l.value)).length>0:!0)),[T,S]);i.useEffect(()=>{b&&V(F(b,o))},[b,o]),i.useEffect(()=>{S&&Q(G)},[G,S]),i.useEffect(()=>{v?.column&&G&&ee(B.getUniqValue(G,v.column).filter(e=>!v?.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})))},[G,v]),i.useEffect(()=>{le.isEqual(z.current,o)||(y(o),z.current=o)},[o]);const O=i.useCallback((e,u)=>{U(t=>t.map(l=>l.filter===e?{...l,value:u}:l))},[]),ae=i.useMemo(()=>{if(!j)return;const e=w;return W.transformDataForGraph(C?W.transformDataForAggregation(J.filterData(j,R||[]),C.keyColumn,C.aggregationColumnsSetting):J.filterData(j,R||[]),g,e)},[g,w,j,R,C]);return n?r.jsxRuntimeExports.jsx("div",{className:`${a?.theme||"light"} flex ${a?.width?"w-fit grow-0":"w-full grow"}${a?.height?"":" h-full"}`,dir:a?.language==="he"||a?.language==="ar"?"rtl":void 0,children:r.jsxRuntimeExports.jsx("div",{className:r.mo(`${a?.backgroundColor?a?.backgroundColor===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${a?.language||"en"}`,a?.classNames?.graphContainer),style:{...a?.styles?.graphContainer||{},...a?.backgroundColor&&a?.backgroundColor!==!0?{backgroundColor:a?.backgroundColor}:{}},id:a?.graphID,ref:L,children:r.jsxRuntimeExports.jsx("div",{style:{padding:a?.backgroundColor?a?.padding||"1rem":a?.padding||0,flexGrow:1,display:"flex"},children:r.jsxRuntimeExports.jsx("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:j||ie.graphList.filter(e=>e.geoHubMapPresentation).map(e=>e.graphID).indexOf(g)!==-1?r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[m?.graphTitle||m?.graphDescription||a?.graphTitle||a?.graphDescription||a?.graphDownload||a?.dataDownload?r.jsxRuntimeExports.jsx(oe.GraphHeader,{styles:{title:m?.styles?.title||a?.styles?.title,description:m?.styles?.description||a?.styles?.description},classNames:{title:m?.classNames?.title||a?.classNames?.title,description:m?.classNames?.description||a?.classNames?.description},graphTitle:m?.graphTitle||a?.graphTitle,graphDescription:m?.graphDescription||a?.graphDescription,width:m?.width||a?.width,graphDownload:a?.graphDownload?L.current:void 0,dataDownload:a?.dataDownload&&j&&j.length>0?j:null}):null,T.length!==0||(b||[]).length!==0||(E||[]).length!==0||v?r.jsxRuntimeExports.jsxs("div",{style:{display:"flex",gap:"1rem",flexWrap:"wrap",alignItems:"flex-start",width:"100%"},children:[E?.map((e,u)=>r.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/c}% - ${(c-1)/c}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},children:[r.jsxRuntimeExports.jsx(d.f,{className:"mb-2",children:e.label||"Graph by"}),e.ui!=="radio"?r.jsxRuntimeExports.jsx(x.Za,{options:e.options.map(t=>({...t,value:t.label})),size:"sm",isClearable:!1,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:e.defaultValue?{...e.defaultValue,value:e.defaultValue?.label}:{...e.options[0],value:e.options[0].label},onChange:t=>{V(t?.graphSettings||{}),y(t?.dataConfiguration)}}):r.jsxRuntimeExports.jsx(d.fe,{defaultValue:e.defaultValue?.label||e.options[0].label,variant:f,onValueChange:t=>{const l=e.options[e.options.findIndex(s=>s.label===t)];V(l.graphSettings||{}),y(l.dataConfiguration)},children:e.options.map((t,l)=>r.jsxRuntimeExports.jsx(d.ve,{label:t.label,value:t.label},l))})]},u)),b?.map((e,u)=>r.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/c}% - ${(c-1)/c}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},children:[r.jsxRuntimeExports.jsx(d.f,{className:"mb-2",children:e.label||`Visualize ${e.chartConfigId} by`}),d.checkIfMultiple(e.chartConfigId,w||[])?e.ui!=="radio"?r.jsxRuntimeExports.jsx(x.Za,{options:e.allowedColumnIds,size:"sm",isMulti:!0,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:o?o[o.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId.map(t=>e.allowedColumnIds[e.allowedColumnIds.findIndex(l=>l.value===t)]):void 0,filterOption:x.Hu(N),onChange:t=>{const l={columnId:(t||[]).map(h=>h.value),chartConfigId:e.chartConfigId},s=w?.map(h=>h.chartConfigId===l.chartConfigId?l:h);y(s)}}):r.jsxRuntimeExports.jsx(d.w,{variant:f,defaultValue:o?o[o.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId.map(t=>e.allowedColumnIds[e.allowedColumnIds.findIndex(l=>l.value===t)]).map(t=>t.value):[],onValueChange:t=>{const l={columnId:t||[],chartConfigId:e.chartConfigId},s=w?.map(h=>h.chartConfigId===l.chartConfigId?l:h);y(s)},children:e.allowedColumnIds.map((t,l)=>r.jsxRuntimeExports.jsx(d.G,{label:t.label,value:t.label},l))}):e.ui!=="radio"?r.jsxRuntimeExports.jsx(x.Za,{options:e.allowedColumnIds,size:"sm",isClearable:!1,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:o?e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===o[o.findIndex(l=>l.chartConfigId===e.chartConfigId)].columnId)]:void 0,onChange:t=>{const l={columnId:t?.value,chartConfigId:e.chartConfigId},s=w?.map(h=>h.chartConfigId===l.chartConfigId?l:h);V(F(b,s)),y(s)}}):r.jsxRuntimeExports.jsx(d.fe,{variant:f,defaultValue:o?e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===o[o.findIndex(l=>l.chartConfigId===e.chartConfigId)].columnId)].label:"",onValueChange:t=>{const s={columnId:e.allowedColumnIds[e.allowedColumnIds.findIndex(P=>P.label===t)].value,chartConfigId:e.chartConfigId},h=w?.map(P=>P.chartConfigId===s.chartConfigId?s:P);V(F(b,h)),y(h)},children:e.allowedColumnIds.map((t,l)=>r.jsxRuntimeExports.jsx(d.ve,{label:t.label,value:t.label},l))})]},u)),T?.map((e,u)=>r.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/c}% - ${(c-1)/c}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[r.jsxRuntimeExports.jsx(d.f,{className:"mb-2",children:e.label}),e.singleSelect?r.jsxRuntimeExports.jsx(x.Za,{options:e.availableValues,variant:f,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Hu(N),onChange:t=>{O(e.filter,t)},value:e.value,defaultValue:e.defaultValue}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[e.ui!=="radio"?r.jsxRuntimeExports.jsx(x.Za,{options:e.availableValues,variant:f,size:"sm",isMulti:!0,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Hu(N),onChange:t=>{O(e.filter,t)},value:e.value,defaultValue:e.defaultValue}):r.jsxRuntimeExports.jsx(d.w,{variant:f,defaultValue:e.defaultValue?e.defaultValue.map(t=>`${t.value}`):[],value:e.value?e.value.map(t=>`${t.value}`):void 0,onValueChange:t=>{O(e.filter,e.availableValues.filter(l=>t.indexOf(`${l.value}`)!==-1))},children:e.availableValues.map((t,l)=>r.jsxRuntimeExports.jsx(d.G,{label:`${t.label}`,value:`${t.value}`},l))}),e.allowSelectAll?r.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:()=>{O(e.filter,e.availableValues)},children:"Select all options"}):null]})]},u)),v?r.jsxRuntimeExports.jsxs("div",{style:{width:v.width||`calc(${100/c}% - ${(c-1)/c}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[r.jsxRuntimeExports.jsx(d.f,{className:"mb-2",children:v.label||"Highlight data"}),r.jsxRuntimeExports.jsx(x.Za,{options:_,variant:f,size:"sm",isMulti:!0,isClearable:!0,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Hu(N),onChange:e=>{Y(e?.map(u=>u.value))},value:k?.map(e=>({label:e,value:e})),defaultValue:v.defaultValues?.map(e=>({label:e,value:e}))})]}):null]}):null,r.jsxRuntimeExports.jsx(se,{graph:g,graphData:ae,graphDataConfiguration:w,debugMode:D,readableHeader:q||[],updateFilters:H,settings:{...a||{},...m,graphTitle:void 0,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,padding:"0",theme:a?.theme,...k?{highlightedDataPoints:k,highlightedIds:k?.map(e=>`${e}`),highlightedLines:k?.map(e=>e)}:{}}})]}):r.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:r.jsxRuntimeExports.jsx(re.y,{})})})})})}):r.jsxRuntimeExports.jsx(M.u,{size:"xs",className:"text-center text-accent-dark-red dark:text-accent-red p-2",children:"Please make sure either `dataSettings` props are present as they are required for data."})}exports.SingleGraphDashboardThreeDGraphs=ue;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-CHPV5EwG-DDoeWRVt.cjs"),i=require("react"),te=require("./index-Ds0uHjK9.cjs"),H=require("./index-B0rbzOoC.cjs"),le=require("./index-BXns0-ng.cjs"),x=require("./DropdownSelect-BmE5JaeE.cjs"),c=require("./checkIfMultiple-BXbHUCWM.cjs"),M=require("./Typography-k-kOjICQ.cjs"),re=require("./Spinner-DA6Z5E4n.cjs"),oe=require("./ThreeDGlobe.cjs"),$=require("./fetchAndParseData-CQyVGCul.cjs"),W=require("./transformDataForAggregation-Du-Hei-W.cjs"),B=require("./getUniqValue-CHqgSss5.cjs"),ne=require("./GraphHeader.cjs"),J=require("./filterData-DN6py7y_.cjs"),ie=require("./getGraphList-gf02xgT2.cjs"),K=require("./transformDataForSelect-YmStusCI.cjs");function se(I){const{settings:a,graph:o,graphData:p,debugMode:g,graphDataConfiguration:C,readableHeader:n,updateFilters:S}=I;if(g&&(console.log(`Graph: ${o}`),console.log("Transformed data:",p),console.log("Settings:",a)),typeof p=="string")return r.jsxRuntimeExports.jsx("div",{className:`flex my-0 mx-auto grow flex-col justify-center ${a?.width?"w-fit":"w-full"}`,style:{height:"inherit"},children:r.jsxRuntimeExports.jsx(M.u,{size:"sm",marginBottom:"none",className:"p-2 text-center text-accent-dark-red dark:text-accent-red",children:p})});const D={threeDGlobe:oe.ThreeDGlobe},b=d=>{switch(d){case"threeDGlobe":return{globeOffset:a?.globeOffset,polygonAltitude:a?.polygonAltitude,highlightedIds:a?.highlightedIds,scale:a?.scale,theme:a?.theme,resetSelectionOnDoubleClick:a?.resetSelectionOnDoubleClick,graphTitle:a?.graphTitle,mapData:a?.mapData,graphDescription:a?.graphDescription,footNote:a?.footNote,width:a?.width,height:a?.height,sources:a?.sources,colorDomain:a?.colorDomain,colors:a?.colors,colorLegendTitle:Object.keys(a||{}).indexOf("colorLegendTitle")!==-1?a?.colorLegendTitle:c.getValues("x",C||[],n||[]),scaleType:a?.scaleType,data:p,centerPoint:a?.centerPoint,backgroundColor:a?.backgroundColor,mapNoDataColor:a?.mapNoDataColor,mapBorderColor:a?.mapBorderColor,relativeHeight:a?.relativeHeight,padding:a?.padding,tooltip:a?.tooltip,showColorScale:a?.showColorScale,graphID:a?.graphID,dataDownload:a?.dataDownload,mapProperty:a?.mapProperty,language:a?.language,minHeight:a?.minHeight,ariaLabel:a?.ariaLabel,onSeriesMouseClick:A=>{S?.(A.id)},detailsOnClick:a?.detailsOnClick,styles:a?.styles,classNames:a?.classNames,categorical:a?.categorical,autoRotate:a?.autoRotate,globeMaterial:a?.globeMaterial,atmosphereColor:a?.atmosphereColor,enableZoom:a?.enableZoom,atmosphereAltitude:a?.atmosphereAltitude,globeCurvatureResolution:a?.globeCurvatureResolution,lightColor:a?.lightColor};default:return{}}},E=D[o],q=b(o);return r.jsxRuntimeExports.jsx("div",{className:`grow my-0 mx-auto flex flex-col h-inherit ${a?.width?"w-fit":"w-full"} justify-center ${a?.theme||"light"}`,style:{minHeight:"inherit"},children:E?r.jsxRuntimeExports.jsx(E,{...q}):r.jsxRuntimeExports.jsx(M.u,{size:"sm",marginBottom:"none",className:"p-2 text-center text-accent-dark-red dark:text-accent-red",children:`Invalid chart type: ${o}`})})}const F=(I,a)=>{const o=a?.map(p=>{const g=I?.findIndex(n=>n.chartConfigId===p.chartConfigId);if(g===-1)return{};const C=I[g]?.allowedColumnIds?.findIndex(n=>n.value===p.columnId);return C===-1?{}:I[g].allowedColumnIds[C].graphSettings||{}})||[];return Object.assign({},...o)};function ue(I){const{graphSettings:a,dataSettings:o,filters:p,graphType:g,dataTransform:C,graphDataConfiguration:n,dataFilters:S,debugMode:D,dataSelectionOptions:b,advancedDataSelectionOptions:E,readableHeader:q,noOfFiltersPerRow:d=4,updateFilters:A,uiMode:m="normal",highlightDataPointSettings:v}=I,[j,Q]=i.useState(void 0),[R,X]=i.useState(void 0),[w,y]=i.useState(n),[f,V]=i.useState({}),[k,Y]=i.useState(void 0),[_,ee]=i.useState([]),L=i.useRef(null),z=i.useRef(n),[T,U]=i.useState([]),N=i.useMemo(()=>({ignoreCase:!0,ignoreAccents:!0,trim:!0}),[]),Z=i.useCallback(async()=>{try{const u=await(o.dataURL?typeof o.dataURL=="string"?o.fileType==="json"?$.fetchAndParseJSON(o.dataURL,o.columnsToArray,o.dataTransformation,D):o.fileType==="api"?$.fetchAndTransformDataFromAPI(o.dataURL,o.apiHeaders,o.columnsToArray,o.dataTransformation,D):$.fetchAndParseCSV(o.dataURL,o.dataTransformation,o.columnsToArray,D,o.delimiter,!0):$.fetchAndParseMultipleDataSources(o.dataURL,o.idColumnTitle):$.transformColumnsToArray(o.data,o.columnsToArray));X(u);const t=(p||[]).map(l=>({filter:l.column,label:l.label||`Filter by ${l.column}`,singleSelect:l.singleSelect,clearable:l.clearable,defaultValue:K.transformDefaultValue(l.defaultValue),value:K.transformDefaultValue(l.defaultValue),availableValues:B.getUniqValue(u,l.column).filter(s=>!l.excludeValues?.includes(`${s}`)).map(s=>({value:s,label:s})),allowSelectAll:l.allowSelectAll,width:l.width}));U(t)}catch(e){console.error("Data fetching error:",e)}},[o,p,D]);i.useEffect(()=>{Z()},[Z]);const G=i.useMemo(()=>!R||T.length===0?R:R.filter(u=>T.every(t=>t.value&&H.flattenDeep([t.value]).length>0?te.intersection(H.flattenDeep([u[t.filter]]),H.flattenDeep([t.value]).map(l=>l.value)).length>0:!0)),[T,R]);i.useEffect(()=>{b&&V(F(b,n))},[b,n]),i.useEffect(()=>{R&&Q(G)},[G,R]),i.useEffect(()=>{v?.column&&G&&ee(B.getUniqValue(G,v.column).filter(e=>!v?.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})))},[G,v]),i.useEffect(()=>{le.isEqual(z.current,n)||(y(n),z.current=n)},[n]);const O=i.useCallback((e,u)=>{U(t=>t.map(l=>l.filter===e?{...l,value:u}:l))},[]),ae=i.useMemo(()=>{if(!j)return;const e=w;return W.transformDataForGraph(C?W.transformDataForAggregation(J.filterData(j,S||[]),C.keyColumn,C.aggregationColumnsSetting):J.filterData(j,S||[]),g,e)},[g,w,j,S,C]);return o?r.jsxRuntimeExports.jsx("div",{className:`${a?.theme||"light"} flex ${a?.width?"w-fit grow-0":"w-full grow"}${a?.height?"":" h-full"}`,dir:a?.language==="he"||a?.language==="ar"?"rtl":void 0,children:r.jsxRuntimeExports.jsx("div",{className:r.mo(`${a?.backgroundColor?a?.backgroundColor===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${a?.language||"en"}`,a?.classNames?.graphContainer),style:{...a?.styles?.graphContainer||{},...a?.backgroundColor&&a?.backgroundColor!==!0?{backgroundColor:a?.backgroundColor}:{}},id:a?.graphID,ref:L,children:r.jsxRuntimeExports.jsx("div",{style:{padding:a?.backgroundColor?a?.padding||"1rem":a?.padding||0,flexGrow:1,display:"flex"},children:r.jsxRuntimeExports.jsx("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:j||ie.graphList.filter(e=>e.geoHubMapPresentation).map(e=>e.graphID).indexOf(g)!==-1?r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[f?.graphTitle||f?.graphDescription||a?.graphTitle||a?.graphDescription||a?.graphDownload||a?.dataDownload?r.jsxRuntimeExports.jsx(ne.GraphHeader,{styles:{title:f?.styles?.title||a?.styles?.title,description:f?.styles?.description||a?.styles?.description},classNames:{title:f?.classNames?.title||a?.classNames?.title,description:f?.classNames?.description||a?.classNames?.description},graphTitle:f?.graphTitle||a?.graphTitle,graphDescription:f?.graphDescription||a?.graphDescription,width:f?.width||a?.width,graphDownload:a?.graphDownload?L.current:void 0,dataDownload:a?.dataDownload&&j&&j.length>0?j:null}):null,T.length!==0||(b||[]).length!==0||(E||[]).length!==0||v?r.jsxRuntimeExports.jsxs("div",{style:{display:"flex",gap:"1rem",flexWrap:"wrap",alignItems:"flex-start",width:"100%"},children:[E?.map((e,u)=>r.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/d}% - ${(d-1)/d}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},children:[r.jsxRuntimeExports.jsx(c.f,{className:"mb-2",children:e.label||"Graph by"}),e.ui!=="radio"?r.jsxRuntimeExports.jsx(x.Za,{options:e.options.map(t=>({...t,value:t.label})),size:"sm",isClearable:!1,isSearchable:!0,variant:m,controlShouldRenderValue:!0,defaultValue:e.defaultValue?{...e.defaultValue,value:e.defaultValue?.label}:{...e.options[0],value:e.options[0].label},onChange:t=>{V(t?.graphSettings||{}),y(t?.dataConfiguration)}}):r.jsxRuntimeExports.jsx(c.fe,{defaultValue:e.defaultValue?.label||e.options[0].label,variant:m,onValueChange:t=>{const l=e.options[e.options.findIndex(s=>s.label===t)];V(l.graphSettings||{}),y(l.dataConfiguration)},children:e.options.map((t,l)=>r.jsxRuntimeExports.jsx(c.ve,{label:t.label,value:t.label},l))})]},u)),b?.map((e,u)=>r.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/d}% - ${(d-1)/d}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},children:[r.jsxRuntimeExports.jsx(c.f,{className:"mb-2",children:e.label||`Visualize ${e.chartConfigId} by`}),c.checkIfMultiple(e.chartConfigId,w||[])?e.ui!=="radio"?r.jsxRuntimeExports.jsx(x.Za,{options:e.allowedColumnIds,size:"sm",isMulti:!0,isSearchable:!0,variant:m,controlShouldRenderValue:!0,defaultValue:n?n[n.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId.map(t=>e.allowedColumnIds[e.allowedColumnIds.findIndex(l=>l.value===t)]):void 0,filterOption:x.Hu(N),onChange:t=>{const l={columnId:(t||[]).map(h=>h.value),chartConfigId:e.chartConfigId},s=w?.map(h=>h.chartConfigId===l.chartConfigId?l:h);y(s)}}):r.jsxRuntimeExports.jsx(c.w,{variant:m,defaultValue:n?n[n.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId.map(t=>e.allowedColumnIds[e.allowedColumnIds.findIndex(l=>l.value===t)]).map(t=>t.value):[],onValueChange:t=>{const l={columnId:t||[],chartConfigId:e.chartConfigId},s=w?.map(h=>h.chartConfigId===l.chartConfigId?l:h);y(s)},children:e.allowedColumnIds.map((t,l)=>r.jsxRuntimeExports.jsx(c.G,{label:t.label,value:t.label},l))}):e.ui!=="radio"?r.jsxRuntimeExports.jsx(x.Za,{options:e.allowedColumnIds,size:"sm",isClearable:!1,isSearchable:!0,variant:m,controlShouldRenderValue:!0,defaultValue:n?e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===n[n.findIndex(l=>l.chartConfigId===e.chartConfigId)].columnId)]:void 0,onChange:t=>{const l={columnId:t?.value,chartConfigId:e.chartConfigId},s=w?.map(h=>h.chartConfigId===l.chartConfigId?l:h);V(F(b,s)),y(s)}}):r.jsxRuntimeExports.jsx(c.fe,{variant:m,defaultValue:n?e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===n[n.findIndex(l=>l.chartConfigId===e.chartConfigId)].columnId)].label:"",onValueChange:t=>{const s={columnId:e.allowedColumnIds[e.allowedColumnIds.findIndex(P=>P.label===t)].value,chartConfigId:e.chartConfigId},h=w?.map(P=>P.chartConfigId===s.chartConfigId?s:P);V(F(b,h)),y(h)},children:e.allowedColumnIds.map((t,l)=>r.jsxRuntimeExports.jsx(c.ve,{label:t.label,value:t.label},l))})]},u)),T?.map((e,u)=>r.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/d}% - ${(d-1)/d}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[r.jsxRuntimeExports.jsx(c.f,{className:"mb-2",children:e.label}),e.singleSelect?r.jsxRuntimeExports.jsx(x.Za,{options:e.availableValues,variant:m,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Hu(N),onChange:t=>{O(e.filter,t)},value:e.value,defaultValue:e.defaultValue}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[e.ui!=="radio"?r.jsxRuntimeExports.jsx(x.Za,{options:e.availableValues,variant:m,size:"sm",isMulti:!0,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Hu(N),onChange:t=>{O(e.filter,t)},value:e.value,defaultValue:e.defaultValue}):r.jsxRuntimeExports.jsx(c.w,{variant:m,defaultValue:e.defaultValue?e.defaultValue.map(t=>`${t.value}`):[],value:e.value?e.value.map(t=>`${t.value}`):void 0,onValueChange:t=>{O(e.filter,e.availableValues.filter(l=>t.indexOf(`${l.value}`)!==-1))},children:e.availableValues.map((t,l)=>r.jsxRuntimeExports.jsx(c.G,{label:`${t.label}`,value:`${t.value}`},l))}),e.allowSelectAll?r.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:()=>{O(e.filter,e.availableValues)},children:"Select all options"}):null]})]},u)),v?r.jsxRuntimeExports.jsxs("div",{style:{width:v.width||`calc(${100/d}% - ${(d-1)/d}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[r.jsxRuntimeExports.jsx(c.f,{className:"mb-2",children:v.label||"Highlight data"}),r.jsxRuntimeExports.jsx(x.Za,{options:_,variant:m,size:"sm",isMulti:!0,isClearable:!0,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Hu(N),onChange:e=>{Y(e?.map(u=>u.value))},value:k?.map(e=>({label:e,value:e})),defaultValue:v.defaultValues?.map(e=>({label:e,value:e}))})]}):null]}):null,r.jsxRuntimeExports.jsx(se,{graph:g,graphData:ae,graphDataConfiguration:w,debugMode:D,readableHeader:q||[],updateFilters:A,settings:{...a||{},...f,graphTitle:void 0,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,padding:"0",theme:a?.theme,...k?{highlightedDataPoints:k,highlightedIds:k?.map(e=>`${e}`),highlightedLines:k?.map(e=>e)}:{}}})]}):r.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:r.jsxRuntimeExports.jsx(re.y,{})})})})})}):r.jsxRuntimeExports.jsx(M.u,{size:"xs",className:"text-center text-accent-dark-red dark:text-accent-red p-2",children:"Please make sure either `dataSettings` props are present as they are required for data."})}exports.SingleGraphDashboardThreeDGraphs=ue;
2
2
  //# sourceMappingURL=SingleGraphDashboardThreeDGraphs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingleGraphDashboardThreeDGraphs.cjs","sources":["../src/Components/Dashboard/PerformanceIntensive/ThreeDGraphEl.tsx","../src/Components/Dashboard/PerformanceIntensive/SingleGraphDashboardThreeDGraphs.tsx"],"sourcesContent":["import { P } from '@undp/design-system-react/Typography';\r\n\r\nimport { ThreeDGlobe } from '../../Graphs/Maps/ThreeDGlobe';\r\n\r\nimport { getValues } from '@/Utils/getValues';\r\nimport { GraphConfigurationDataType, GraphSettingsDataType, ThreeDGraphType } from '@/Types';\r\n\r\ninterface Props {\r\n graph: ThreeDGraphType;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n graphData: any;\r\n settings?: GraphSettingsDataType;\r\n debugMode?: boolean;\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n readableHeader: {\r\n value: string;\r\n label: string;\r\n }[];\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nfunction ThreeDGraphEl(props: Props) {\r\n const {\r\n settings,\r\n graph,\r\n graphData,\r\n debugMode,\r\n graphDataConfiguration,\r\n readableHeader,\r\n updateFilters,\r\n } = props;\r\n if (debugMode) {\r\n // eslint-disable-next-line no-console\r\n console.log(`Graph: ${graph}`);\r\n // eslint-disable-next-line no-console\r\n console.log('Transformed data:', graphData);\r\n // eslint-disable-next-line no-console\r\n console.log('Settings:', settings);\r\n }\r\n if (typeof graphData === 'string')\r\n return (\r\n <div\r\n className={`flex my-0 mx-auto grow flex-col justify-center ${\r\n settings?.width ? 'w-fit' : 'w-full'\r\n }`}\r\n style={{ height: 'inherit' }}\r\n >\r\n <P\r\n size='sm'\r\n marginBottom='none'\r\n className='p-2 text-center text-accent-dark-red dark:text-accent-red'\r\n >\r\n {graphData}\r\n </P>\r\n </div>\r\n );\r\n const graphComponents: Record<ThreeDGraphType, React.ElementType | null> = {\r\n threeDGlobe: ThreeDGlobe,\r\n };\r\n const getGraphProps = (graphType: ThreeDGraphType) => {\r\n switch (graphType) {\r\n case 'threeDGlobe':\r\n return {\r\n globeOffset: settings?.globeOffset,\r\n polygonAltitude: settings?.polygonAltitude,\r\n highlightedIds: settings?.highlightedIds,\r\n scale: settings?.scale,\r\n theme: settings?.theme,\r\n resetSelectionOnDoubleClick: settings?.resetSelectionOnDoubleClick,\r\n graphTitle: settings?.graphTitle,\r\n mapData: settings?.mapData,\r\n graphDescription: settings?.graphDescription,\r\n footNote: settings?.footNote,\r\n width: settings?.width,\r\n height: settings?.height,\r\n sources: settings?.sources,\r\n colorDomain: settings?.colorDomain as string[] | number[],\r\n colors: settings?.colors as string[] | undefined,\r\n colorLegendTitle:\r\n Object.keys(settings || {}).indexOf('colorLegendTitle') !== -1\r\n ? settings?.colorLegendTitle\r\n : getValues('x', graphDataConfiguration || [], readableHeader || []),\r\n scaleType: settings?.scaleType,\r\n data: graphData,\r\n centerPoint: settings?.centerPoint,\r\n backgroundColor: settings?.backgroundColor,\r\n mapNoDataColor: settings?.mapNoDataColor,\r\n mapBorderColor: settings?.mapBorderColor,\r\n relativeHeight: settings?.relativeHeight,\r\n padding: settings?.padding,\r\n tooltip: settings?.tooltip,\r\n showColorScale: settings?.showColorScale,\r\n graphID: settings?.graphID,\r\n dataDownload: settings?.dataDownload,\r\n mapProperty: settings?.mapProperty,\r\n language: settings?.language,\r\n minHeight: settings?.minHeight,\r\n ariaLabel: settings?.ariaLabel,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick: (el: any) => {\r\n updateFilters?.(el.id);\r\n },\r\n detailsOnClick: settings?.detailsOnClick,\r\n styles: settings?.styles,\r\n classNames: settings?.classNames,\r\n categorical: settings?.categorical,\r\n autoRotate: settings?.autoRotate,\r\n globeMaterial: settings?.globeMaterial,\r\n atmosphereColor: settings?.atmosphereColor,\r\n enableZoom: settings?.enableZoom,\r\n };\r\n default:\r\n return {};\r\n }\r\n };\r\n const GraphComponent = graphComponents[graph];\r\n const graphProps = getGraphProps(graph);\r\n return (\r\n <div\r\n className={`grow my-0 mx-auto flex flex-col h-inherit ${settings?.width ? 'w-fit' : 'w-full'} justify-center ${settings?.theme || 'light'}`}\r\n style={{ minHeight: 'inherit' }}\r\n >\r\n {GraphComponent ? (\r\n <GraphComponent {...graphProps} />\r\n ) : (\r\n <P\r\n size='sm'\r\n marginBottom='none'\r\n className='p-2 text-center text-accent-dark-red dark:text-accent-red'\r\n >\r\n {`Invalid chart type: ${graph}`}\r\n </P>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ThreeDGraphEl;\r\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { P } from '@undp/design-system-react/Typography';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport ThreeDGraphEl from './ThreeDGraphEl';\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 HighlightDataPointSettingsDataType,\r\n ThreeDGraphType,\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 { 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 { filterData } from '@/Utils/transformData/filterData';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { graphList } from '@/Utils/getGraphList';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n graphSettings?: GraphSettingsDataType;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n highlightDataPointSettings?: HighlightDataPointSettingsDataType;\r\n noOfFiltersPerRow?: number;\r\n graphType: ThreeDGraphType;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n debugMode?: boolean;\r\n uiMode?: 'light' | 'normal';\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nconst getGraphSettings = (\r\n dataSelectionOptions: DataSelectionDataType[],\r\n updatedConfig?: GraphConfigurationDataType[],\r\n) => {\r\n const updatedSettings =\r\n updatedConfig?.map(c => {\r\n const indx = dataSelectionOptions?.findIndex(opt => opt.chartConfigId === c.chartConfigId);\r\n if (indx === -1) return {};\r\n const allowedValIndx = dataSelectionOptions[indx]?.allowedColumnIds?.findIndex(\r\n col => col.value === c.columnId,\r\n );\r\n if (allowedValIndx === -1) return {};\r\n return dataSelectionOptions[indx].allowedColumnIds[allowedValIndx].graphSettings || {};\r\n }) || [];\r\n return Object.assign({}, ...updatedSettings);\r\n};\r\n\r\nexport function SingleGraphDashboardThreeDGraphs(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 dataFilters,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n updateFilters,\r\n uiMode = 'normal',\r\n highlightDataPointSettings,\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 [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n const [highlightedDataPointList, setHighlightedDataPointList] = useState<\r\n (string | number)[] | undefined\r\n >(undefined);\r\n const [highlightedDataPointOptions, setHighlightedDataPointOption] = useState<\r\n { label: string | number; value: string | number }[]\r\n >([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n const prevGraphDataConfigRef = useRef<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\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 const fetchDataHandler = useCallback(async () => {\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 // 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 }, [dataSettings, filters, debugMode]);\r\n useEffect(() => {\r\n fetchDataHandler();\r\n }, [fetchDataHandler]);\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\r\n useEffect(() => {\r\n if (dataSelectionOptions)\r\n setAdvancedGraphSettings(getGraphSettings(dataSelectionOptions, graphDataConfiguration));\r\n }, [dataSelectionOptions, graphDataConfiguration]);\r\n\r\n useEffect(() => {\r\n if (dataFromFile) {\r\n setData(filteredData);\r\n }\r\n }, [filteredData, dataFromFile]);\r\n\r\n useEffect(() => {\r\n if (highlightDataPointSettings?.column && filteredData)\r\n setHighlightedDataPointOption(\r\n getUniqValue(filteredData, highlightDataPointSettings.column)\r\n .filter(v => !highlightDataPointSettings?.excludeValues?.includes(`${v}`))\r\n .map(d => ({ value: d, label: d })),\r\n );\r\n }, [filteredData, highlightDataPointSettings]);\r\n\r\n useEffect(() => {\r\n if (!isEqual(prevGraphDataConfigRef.current, graphDataConfiguration)) {\r\n setGraphConfig(graphDataConfiguration);\r\n prevGraphDataConfigRef.current = graphDataConfiguration;\r\n }\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\r\n const graphData = useMemo(() => {\r\n if (!data) return undefined;\r\n const config = graphConfig;\r\n const d = transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []),\r\n graphType,\r\n config,\r\n );\r\n return d;\r\n }, [graphType, graphConfig, data, dataFilters, dataTransform]);\r\n if (!dataSettings)\r\n return (\r\n <P size='xs' className='text-center text-accent-dark-red dark:text-accent-red p-2'>\r\n Please make sure either `dataSettings` props are present as they are required for data.\r\n </P>\r\n );\r\n return (\r\n <div\r\n className={`${graphSettings?.theme || 'light'} flex ${\r\n graphSettings?.width ? 'w-fit grow-0' : 'w-full grow'\r\n }${graphSettings?.height ? '' : ' h-full'}`}\r\n dir={graphSettings?.language === 'he' || graphSettings?.language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !graphSettings?.backgroundColor\r\n ? 'bg-transparent '\r\n : graphSettings?.backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${graphSettings?.language || 'en'}`,\r\n graphSettings?.classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(graphSettings?.styles?.graphContainer || {}),\r\n ...(graphSettings?.backgroundColor && graphSettings?.backgroundColor !== true\r\n ? { backgroundColor: graphSettings?.backgroundColor }\r\n : {}),\r\n }}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n >\r\n <div\r\n style={{\r\n padding: graphSettings?.backgroundColor\r\n ? graphSettings?.padding || '1rem'\r\n : graphSettings?.padding || 0,\r\n flexGrow: 1,\r\n display: 'flex',\r\n }}\r\n >\r\n <div className='flex flex-col w-full gap-4 grow justify-between'>\r\n {data ||\r\n graphList\r\n .filter(el => el.geoHubMapPresentation)\r\n .map(el => el.graphID)\r\n .indexOf(graphType) !== -1 ? (\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 ||\r\n graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title:\r\n advancedGraphSettings?.classNames?.title ||\r\n 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={\r\n graphSettings?.graphDownload ? graphParentDiv.current : undefined\r\n }\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ||\r\n highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n display: 'flex',\r\n gap: '1rem',\r\n flexWrap: 'wrap',\r\n alignItems: 'flex-start',\r\n width: '100%',\r\n }}\r\n >\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 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 size='sm'\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 key={i}\r\n >\r\n <Label className='mb-2'>\r\n {d.label || `Visualize ${d.chartConfigId} by`}\r\n </Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\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 // 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(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\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(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\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 size='sm'\r\n isMulti\r\n isSearchable\r\n variant={uiMode}\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 />\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 minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\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 <>\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 {highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n width:\r\n highlightDataPointSettings.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n >\r\n <Label className='mb-2'>\r\n {highlightDataPointSettings.label || 'Highlight data'}\r\n </Label>\r\n <DropdownSelect\r\n options={highlightedDataPointOptions}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setHighlightedDataPointList(el?.map((d: any) => d.value));\r\n }}\r\n value={highlightedDataPointList?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n defaultValue={highlightDataPointSettings.defaultValues?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n />\r\n </div>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n <ThreeDGraphEl\r\n graph={graphType}\r\n graphData={graphData}\r\n graphDataConfiguration={graphConfig}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n updateFilters={updateFilters}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n graphTitle: undefined,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n theme: graphSettings?.theme,\r\n ...(highlightedDataPointList\r\n ? {\r\n highlightedDataPoints: highlightedDataPointList,\r\n highlightedIds: highlightedDataPointList?.map(d => `${d}`),\r\n highlightedLines: highlightedDataPointList?.map(d => d),\r\n }\r\n : {}),\r\n }}\r\n />\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 </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["ThreeDGraphEl","props","settings","graph","graphData","debugMode","graphDataConfiguration","readableHeader","updateFilters","jsx","P","graphComponents","ThreeDGlobe","getGraphProps","graphType","getValues","el","GraphComponent","graphProps","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","c","indx","opt","allowedValIndx","col","SingleGraphDashboardThreeDGraphs","graphSettings","dataSettings","filters","dataTransform","dataFilters","advancedDataSelectionOptions","noOfFiltersPerRow","uiMode","highlightDataPointSettings","data","setData","useState","dataFromFile","setDataFromFile","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","useMemo","fetchDataHandler","useCallback","d","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformColumnsToArray","newFilterSettings","transformDefaultValue","getUniqValue","v","error","useEffect","filteredData","item","filter","flattenDeep","intersection","isEqual","handleFilterChange","values","prev","f","config","transformDataForGraph","transformDataForAggregation","filterData","cn","graphList","jsxs","Fragment","GraphHeader","i","Label","DropdownSelect","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"SingleGraphDashboardThreeDGraphs.cjs","sources":["../src/Components/Dashboard/PerformanceIntensive/ThreeDGraphEl.tsx","../src/Components/Dashboard/PerformanceIntensive/SingleGraphDashboardThreeDGraphs.tsx"],"sourcesContent":["import { P } from '@undp/design-system-react/Typography';\r\n\r\nimport { ThreeDGlobe } from '../../Graphs/Maps/ThreeDGlobe';\r\n\r\nimport { getValues } from '@/Utils/getValues';\r\nimport { GraphConfigurationDataType, GraphSettingsDataType, ThreeDGraphType } from '@/Types';\r\n\r\ninterface Props {\r\n graph: ThreeDGraphType;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n graphData: any;\r\n settings?: GraphSettingsDataType;\r\n debugMode?: boolean;\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n readableHeader: {\r\n value: string;\r\n label: string;\r\n }[];\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nfunction ThreeDGraphEl(props: Props) {\r\n const {\r\n settings,\r\n graph,\r\n graphData,\r\n debugMode,\r\n graphDataConfiguration,\r\n readableHeader,\r\n updateFilters,\r\n } = props;\r\n if (debugMode) {\r\n // eslint-disable-next-line no-console\r\n console.log(`Graph: ${graph}`);\r\n // eslint-disable-next-line no-console\r\n console.log('Transformed data:', graphData);\r\n // eslint-disable-next-line no-console\r\n console.log('Settings:', settings);\r\n }\r\n if (typeof graphData === 'string')\r\n return (\r\n <div\r\n className={`flex my-0 mx-auto grow flex-col justify-center ${\r\n settings?.width ? 'w-fit' : 'w-full'\r\n }`}\r\n style={{ height: 'inherit' }}\r\n >\r\n <P\r\n size='sm'\r\n marginBottom='none'\r\n className='p-2 text-center text-accent-dark-red dark:text-accent-red'\r\n >\r\n {graphData}\r\n </P>\r\n </div>\r\n );\r\n const graphComponents: Record<ThreeDGraphType, React.ElementType | null> = {\r\n threeDGlobe: ThreeDGlobe,\r\n };\r\n const getGraphProps = (graphType: ThreeDGraphType) => {\r\n switch (graphType) {\r\n case 'threeDGlobe':\r\n return {\r\n globeOffset: settings?.globeOffset,\r\n polygonAltitude: settings?.polygonAltitude,\r\n highlightedIds: settings?.highlightedIds,\r\n scale: settings?.scale,\r\n theme: settings?.theme,\r\n resetSelectionOnDoubleClick: settings?.resetSelectionOnDoubleClick,\r\n graphTitle: settings?.graphTitle,\r\n mapData: settings?.mapData,\r\n graphDescription: settings?.graphDescription,\r\n footNote: settings?.footNote,\r\n width: settings?.width,\r\n height: settings?.height,\r\n sources: settings?.sources,\r\n colorDomain: settings?.colorDomain as string[] | number[],\r\n colors: settings?.colors as string[] | undefined,\r\n colorLegendTitle:\r\n Object.keys(settings || {}).indexOf('colorLegendTitle') !== -1\r\n ? settings?.colorLegendTitle\r\n : getValues('x', graphDataConfiguration || [], readableHeader || []),\r\n scaleType: settings?.scaleType,\r\n data: graphData,\r\n centerPoint: settings?.centerPoint,\r\n backgroundColor: settings?.backgroundColor,\r\n mapNoDataColor: settings?.mapNoDataColor,\r\n mapBorderColor: settings?.mapBorderColor,\r\n relativeHeight: settings?.relativeHeight,\r\n padding: settings?.padding,\r\n tooltip: settings?.tooltip,\r\n showColorScale: settings?.showColorScale,\r\n graphID: settings?.graphID,\r\n dataDownload: settings?.dataDownload,\r\n mapProperty: settings?.mapProperty,\r\n language: settings?.language,\r\n minHeight: settings?.minHeight,\r\n ariaLabel: settings?.ariaLabel,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick: (el: any) => {\r\n updateFilters?.(el.id);\r\n },\r\n detailsOnClick: settings?.detailsOnClick,\r\n styles: settings?.styles,\r\n classNames: settings?.classNames,\r\n categorical: settings?.categorical,\r\n autoRotate: settings?.autoRotate,\r\n globeMaterial: settings?.globeMaterial,\r\n atmosphereColor: settings?.atmosphereColor,\r\n enableZoom: settings?.enableZoom,\r\n atmosphereAltitude: settings?.atmosphereAltitude,\r\n globeCurvatureResolution: settings?.globeCurvatureResolution,\r\n lightColor: settings?.lightColor,\r\n };\r\n default:\r\n return {};\r\n }\r\n };\r\n const GraphComponent = graphComponents[graph];\r\n const graphProps = getGraphProps(graph);\r\n return (\r\n <div\r\n className={`grow my-0 mx-auto flex flex-col h-inherit ${settings?.width ? 'w-fit' : 'w-full'} justify-center ${settings?.theme || 'light'}`}\r\n style={{ minHeight: 'inherit' }}\r\n >\r\n {GraphComponent ? (\r\n <GraphComponent {...graphProps} />\r\n ) : (\r\n <P\r\n size='sm'\r\n marginBottom='none'\r\n className='p-2 text-center text-accent-dark-red dark:text-accent-red'\r\n >\r\n {`Invalid chart type: ${graph}`}\r\n </P>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ThreeDGraphEl;\r\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { P } from '@undp/design-system-react/Typography';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport ThreeDGraphEl from './ThreeDGraphEl';\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 HighlightDataPointSettingsDataType,\r\n ThreeDGraphType,\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 { 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 { filterData } from '@/Utils/transformData/filterData';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { graphList } from '@/Utils/getGraphList';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n graphSettings?: GraphSettingsDataType;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n highlightDataPointSettings?: HighlightDataPointSettingsDataType;\r\n noOfFiltersPerRow?: number;\r\n graphType: ThreeDGraphType;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n debugMode?: boolean;\r\n uiMode?: 'light' | 'normal';\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nconst getGraphSettings = (\r\n dataSelectionOptions: DataSelectionDataType[],\r\n updatedConfig?: GraphConfigurationDataType[],\r\n) => {\r\n const updatedSettings =\r\n updatedConfig?.map(c => {\r\n const indx = dataSelectionOptions?.findIndex(opt => opt.chartConfigId === c.chartConfigId);\r\n if (indx === -1) return {};\r\n const allowedValIndx = dataSelectionOptions[indx]?.allowedColumnIds?.findIndex(\r\n col => col.value === c.columnId,\r\n );\r\n if (allowedValIndx === -1) return {};\r\n return dataSelectionOptions[indx].allowedColumnIds[allowedValIndx].graphSettings || {};\r\n }) || [];\r\n return Object.assign({}, ...updatedSettings);\r\n};\r\n\r\nexport function SingleGraphDashboardThreeDGraphs(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 dataFilters,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n updateFilters,\r\n uiMode = 'normal',\r\n highlightDataPointSettings,\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 [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n const [highlightedDataPointList, setHighlightedDataPointList] = useState<\r\n (string | number)[] | undefined\r\n >(undefined);\r\n const [highlightedDataPointOptions, setHighlightedDataPointOption] = useState<\r\n { label: string | number; value: string | number }[]\r\n >([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n const prevGraphDataConfigRef = useRef<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\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 const fetchDataHandler = useCallback(async () => {\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 // 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 }, [dataSettings, filters, debugMode]);\r\n useEffect(() => {\r\n fetchDataHandler();\r\n }, [fetchDataHandler]);\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\r\n useEffect(() => {\r\n if (dataSelectionOptions)\r\n setAdvancedGraphSettings(getGraphSettings(dataSelectionOptions, graphDataConfiguration));\r\n }, [dataSelectionOptions, graphDataConfiguration]);\r\n\r\n useEffect(() => {\r\n if (dataFromFile) {\r\n setData(filteredData);\r\n }\r\n }, [filteredData, dataFromFile]);\r\n\r\n useEffect(() => {\r\n if (highlightDataPointSettings?.column && filteredData)\r\n setHighlightedDataPointOption(\r\n getUniqValue(filteredData, highlightDataPointSettings.column)\r\n .filter(v => !highlightDataPointSettings?.excludeValues?.includes(`${v}`))\r\n .map(d => ({ value: d, label: d })),\r\n );\r\n }, [filteredData, highlightDataPointSettings]);\r\n\r\n useEffect(() => {\r\n if (!isEqual(prevGraphDataConfigRef.current, graphDataConfiguration)) {\r\n setGraphConfig(graphDataConfiguration);\r\n prevGraphDataConfigRef.current = graphDataConfiguration;\r\n }\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\r\n const graphData = useMemo(() => {\r\n if (!data) return undefined;\r\n const config = graphConfig;\r\n const d = transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []),\r\n graphType,\r\n config,\r\n );\r\n return d;\r\n }, [graphType, graphConfig, data, dataFilters, dataTransform]);\r\n if (!dataSettings)\r\n return (\r\n <P size='xs' className='text-center text-accent-dark-red dark:text-accent-red p-2'>\r\n Please make sure either `dataSettings` props are present as they are required for data.\r\n </P>\r\n );\r\n return (\r\n <div\r\n className={`${graphSettings?.theme || 'light'} flex ${\r\n graphSettings?.width ? 'w-fit grow-0' : 'w-full grow'\r\n }${graphSettings?.height ? '' : ' h-full'}`}\r\n dir={graphSettings?.language === 'he' || graphSettings?.language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !graphSettings?.backgroundColor\r\n ? 'bg-transparent '\r\n : graphSettings?.backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${graphSettings?.language || 'en'}`,\r\n graphSettings?.classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(graphSettings?.styles?.graphContainer || {}),\r\n ...(graphSettings?.backgroundColor && graphSettings?.backgroundColor !== true\r\n ? { backgroundColor: graphSettings?.backgroundColor }\r\n : {}),\r\n }}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n >\r\n <div\r\n style={{\r\n padding: graphSettings?.backgroundColor\r\n ? graphSettings?.padding || '1rem'\r\n : graphSettings?.padding || 0,\r\n flexGrow: 1,\r\n display: 'flex',\r\n }}\r\n >\r\n <div className='flex flex-col w-full gap-4 grow justify-between'>\r\n {data ||\r\n graphList\r\n .filter(el => el.geoHubMapPresentation)\r\n .map(el => el.graphID)\r\n .indexOf(graphType) !== -1 ? (\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 ||\r\n graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title:\r\n advancedGraphSettings?.classNames?.title ||\r\n 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={\r\n graphSettings?.graphDownload ? graphParentDiv.current : undefined\r\n }\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ||\r\n highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n display: 'flex',\r\n gap: '1rem',\r\n flexWrap: 'wrap',\r\n alignItems: 'flex-start',\r\n width: '100%',\r\n }}\r\n >\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 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 size='sm'\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 key={i}\r\n >\r\n <Label className='mb-2'>\r\n {d.label || `Visualize ${d.chartConfigId} by`}\r\n </Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\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 // 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(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\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(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\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 size='sm'\r\n isMulti\r\n isSearchable\r\n variant={uiMode}\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 />\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 minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\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 <>\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 {highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n width:\r\n highlightDataPointSettings.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n >\r\n <Label className='mb-2'>\r\n {highlightDataPointSettings.label || 'Highlight data'}\r\n </Label>\r\n <DropdownSelect\r\n options={highlightedDataPointOptions}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setHighlightedDataPointList(el?.map((d: any) => d.value));\r\n }}\r\n value={highlightedDataPointList?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n defaultValue={highlightDataPointSettings.defaultValues?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n />\r\n </div>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n <ThreeDGraphEl\r\n graph={graphType}\r\n graphData={graphData}\r\n graphDataConfiguration={graphConfig}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n updateFilters={updateFilters}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n graphTitle: undefined,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n theme: graphSettings?.theme,\r\n ...(highlightedDataPointList\r\n ? {\r\n highlightedDataPoints: highlightedDataPointList,\r\n highlightedIds: highlightedDataPointList?.map(d => `${d}`),\r\n highlightedLines: highlightedDataPointList?.map(d => d),\r\n }\r\n : {}),\r\n }}\r\n />\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 </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["ThreeDGraphEl","props","settings","graph","graphData","debugMode","graphDataConfiguration","readableHeader","updateFilters","jsx","P","graphComponents","ThreeDGlobe","getGraphProps","graphType","getValues","el","GraphComponent","graphProps","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","c","indx","opt","allowedValIndx","col","SingleGraphDashboardThreeDGraphs","graphSettings","dataSettings","filters","dataTransform","dataFilters","advancedDataSelectionOptions","noOfFiltersPerRow","uiMode","highlightDataPointSettings","data","setData","useState","dataFromFile","setDataFromFile","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","useMemo","fetchDataHandler","useCallback","d","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformColumnsToArray","newFilterSettings","transformDefaultValue","getUniqValue","v","error","useEffect","filteredData","item","filter","flattenDeep","intersection","isEqual","handleFilterChange","values","prev","f","config","transformDataForGraph","transformDataForAggregation","filterData","cn","graphList","jsxs","Fragment","GraphHeader","i","Label","DropdownSelect","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","Spinner"],"mappings":"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"}
@@ -413,7 +413,7 @@ declare interface GraphSettingsDataType {
413
413
  labelsToBeHidden?: (string | number)[];
414
414
  autoRotate?: boolean;
415
415
  enableZoom?: boolean;
416
- globeMaterial?: MaterialDataType;
416
+ globeMaterial?: any;
417
417
  categorical?: boolean;
418
418
  atmosphereColor?: string;
419
419
  lineAxisTitle?: string;
@@ -421,6 +421,9 @@ declare interface GraphSettingsDataType {
421
421
  naLabel?: string;
422
422
  globeOffset?: [number, number];
423
423
  polygonAltitude?: number;
424
+ atmosphereAltitude?: number;
425
+ globeCurvatureResolution?: number;
426
+ lightColor?: string;
424
427
  }
425
428
 
426
429
  declare interface HighlightAreaSettingsDataType {
@@ -456,12 +459,6 @@ declare interface MapLegendDataType {
456
459
 
457
460
  declare type MapProjectionTypes = 'mercator' | 'equalEarth' | 'naturalEarth' | 'orthographic' | 'albersUSA';
458
461
 
459
- declare interface MaterialDataType {
460
- color: string;
461
- opacity: number;
462
- transparent: boolean;
463
- }
464
-
465
462
  declare interface Props {
466
463
  graphSettings?: GraphSettingsDataType;
467
464
  readableHeader?: {