@undp/data-viz 1.3.1 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DataCards.cjs +21 -1
- package/dist/DataCards.cjs.map +1 -1
- package/dist/DataCards.js +622 -12
- package/dist/DataCards.js.map +1 -1
- package/dist/GraphEl-B6SoGRFW.cjs +2 -0
- package/dist/GraphEl-B6SoGRFW.cjs.map +1 -0
- package/dist/{checkIfMultiple-BB7PlCNh.js → GraphEl-Cw2tDUb3.js} +129 -1163
- package/dist/GraphEl-Cw2tDUb3.js.map +1 -0
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.cjs.map +1 -1
- package/dist/GriddedGraphs.d.ts +2 -4
- package/dist/GriddedGraphs.js +9 -8
- package/dist/GriddedGraphs.js.map +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +2 -4
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.cjs.map +1 -1
- package/dist/MultiGraphDashboard.d.ts +16 -12
- package/dist/MultiGraphDashboard.js +2 -2
- package/dist/MultiGraphDashboardFromConfig.d.ts +16 -12
- package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.js +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +2 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +566 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +353 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +2 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs.map +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +570 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +38 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js.map +1 -0
- package/dist/PerformanceIntensiveScrollStory.cjs +2 -0
- package/dist/PerformanceIntensiveScrollStory.cjs.map +1 -0
- package/dist/PerformanceIntensiveScrollStory.d.ts +493 -0
- package/dist/PerformanceIntensiveScrollStory.js +122 -0
- package/dist/PerformanceIntensiveScrollStory.js.map +1 -0
- package/dist/ScrollStory.cjs.map +1 -1
- package/dist/ScrollStory.d.ts +3 -5
- package/dist/ScrollStory.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.cjs.map +1 -1
- package/dist/SingleGraphDashboard.d.ts +2 -5
- package/dist/SingleGraphDashboard.js +194 -194
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +2 -4
- package/dist/SingleGraphDashboardGeoHubMaps.cjs +2 -0
- package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -0
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +428 -0
- package/dist/SingleGraphDashboardGeoHubMaps.js +185 -0
- package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +2 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs.map +1 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +432 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +25 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +2 -0
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +540 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js +610 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +2 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +543 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +35 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js.map +1 -0
- package/dist/Types.d.ts +38 -11
- package/dist/checkIfMultiple-CYp3vADF.js +912 -0
- package/dist/checkIfMultiple-CYp3vADF.js.map +1 -0
- package/dist/checkIfMultiple-Do4kADNr.cjs +12 -0
- package/dist/checkIfMultiple-Do4kADNr.cjs.map +1 -0
- package/dist/getSchema.cjs.map +1 -1
- package/dist/getSchema.d.ts +7 -5
- package/dist/getSchema.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +330 -163
- package/dist/index.js +150 -136
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/transformData.cjs +1 -1
- package/dist/transformData.d.ts +5 -5
- package/dist/transformData.js +2 -2
- package/dist/{transformDataForAggregation-DAQJWGNL.js → transformDataForAggregation-CdcwlnNe.js} +2 -2
- package/dist/transformDataForAggregation-CdcwlnNe.js.map +1 -0
- package/dist/{transformDataForAggregation-BUGJnson.cjs → transformDataForAggregation-Du-Hei-W.cjs} +2 -2
- package/dist/transformDataForAggregation-Du-Hei-W.cjs.map +1 -0
- package/dist/{transformDataForGraphFromFile-DdNiOWeC.js → transformDataForGraphFromFile-CA0rw80A.js} +2 -2
- package/dist/{transformDataForGraphFromFile-DdNiOWeC.js.map → transformDataForGraphFromFile-CA0rw80A.js.map} +1 -1
- package/dist/{transformDataForGraphFromFile-CrntpaMU.cjs → transformDataForGraphFromFile-D9G3ToQf.cjs} +2 -2
- package/dist/{transformDataForGraphFromFile-CrntpaMU.cjs.map → transformDataForGraphFromFile-D9G3ToQf.cjs.map} +1 -1
- package/dist/transformDataForSelect-D8AuvYdf.js +14 -0
- package/dist/transformDataForSelect-D8AuvYdf.js.map +1 -0
- package/dist/transformDataForSelect-YmStusCI.cjs +2 -0
- package/dist/transformDataForSelect-YmStusCI.cjs.map +1 -0
- package/dist/validateSchema.d.ts +2 -4
- package/package.json +37 -2
- package/dist/checkIfMultiple-BB7PlCNh.js.map +0 -1
- package/dist/checkIfMultiple-D5ysrI7G.cjs +0 -12
- package/dist/checkIfMultiple-D5ysrI7G.cjs.map +0 -1
- package/dist/index-D9h2WYDS.cjs +0 -22
- package/dist/index-D9h2WYDS.cjs.map +0 -1
- package/dist/index-OCoyy1wG.js +0 -635
- package/dist/index-OCoyy1wG.js.map +0 -1
- package/dist/transformDataForAggregation-BUGJnson.cjs.map +0 -1
- package/dist/transformDataForAggregation-DAQJWGNL.js.map +0 -1
package/dist/ScrollStory.d.ts
CHANGED
|
@@ -127,8 +127,6 @@ declare interface FileSettingsDataType {
|
|
|
127
127
|
dataTransformation?: string;
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
declare type GeoHubGraphType = 'geoHubCompareMap' | 'geoHubMap' | 'geoHubMapWithLayerSelection';
|
|
131
|
-
|
|
132
130
|
declare interface GraphConfigurationDataType {
|
|
133
131
|
columnId: string | string[];
|
|
134
132
|
chartConfigId: string;
|
|
@@ -377,9 +375,9 @@ declare interface GraphSettingsDataType {
|
|
|
377
375
|
polygonAltitude?: number;
|
|
378
376
|
}
|
|
379
377
|
|
|
380
|
-
declare type GraphType = GraphTypeForGriddedGraph
|
|
378
|
+
declare type GraphType = GraphTypeForGriddedGraph;
|
|
381
379
|
|
|
382
|
-
declare type GraphTypeForGriddedGraph = 'barChart' | 'stackedBarChart' | 'groupedBarChart' | 'lineChart' | 'dualAxisLineChart' | 'multiLineChart' | 'multiLineAltChart' | 'differenceLineChart' | 'stackedAreaChart' | 'choroplethMap' | 'biVariateChoroplethMap' | 'dotDensityMap' | 'donutChart' | 'slopeChart' | 'scatterPlot' | 'dumbbellChart' | 'treeMap' | 'circlePacking' | 'heatMap' | 'stripChart' | 'beeSwarmChart' | 'butterflyChart' | 'histogram' | 'sparkLine' | 'paretoChart' | 'dataTable' | 'statCard' | 'unitChart' | 'sankeyChart' | 'lineChartWithConfidenceInterval' | 'dataCards' | 'radarChart' | 'bulletChart'
|
|
380
|
+
declare type GraphTypeForGriddedGraph = 'barChart' | 'stackedBarChart' | 'groupedBarChart' | 'lineChart' | 'dualAxisLineChart' | 'multiLineChart' | 'multiLineAltChart' | 'differenceLineChart' | 'stackedAreaChart' | 'choroplethMap' | 'biVariateChoroplethMap' | 'dotDensityMap' | 'donutChart' | 'slopeChart' | 'scatterPlot' | 'dumbbellChart' | 'treeMap' | 'circlePacking' | 'heatMap' | 'stripChart' | 'beeSwarmChart' | 'butterflyChart' | 'histogram' | 'sparkLine' | 'paretoChart' | 'dataTable' | 'statCard' | 'unitChart' | 'sankeyChart' | 'lineChartWithConfidenceInterval' | 'dataCards' | 'radarChart' | 'bulletChart';
|
|
383
381
|
|
|
384
382
|
declare interface HighlightAreaSettingsDataType {
|
|
385
383
|
coordinates: [number | string | null, number | string | null];
|
|
@@ -448,7 +446,7 @@ declare interface ReferenceDataType {
|
|
|
448
446
|
|
|
449
447
|
declare type ScaleDataType = 'categorical' | 'linear' | 'threshold';
|
|
450
448
|
|
|
451
|
-
/** ScrollStory is a scrollytelling container component that reveals content step-by-step as the user scrolls through the page. */
|
|
449
|
+
/** ScrollStory is a scrollytelling container component that reveals content step-by-step as the user scrolls through the page. This does not include GeoHub maps and 3-D graph; for those please use `PerformanceIntensiveScrollStory`. */
|
|
452
450
|
export declare function ScrollStory(props: Props): JSX.Element;
|
|
453
451
|
|
|
454
452
|
declare interface SectionsDataType {
|
package/dist/ScrollStory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollStory.js","sources":["../src/Components/Dashboard/ScrollStory.tsx"],"sourcesContent":["// Scrollytelling.tsx\r\nimport { motion, useInView } from 'motion/react';\r\nimport { useRef, useState } from 'react';\r\n\r\nimport { SingleGraphDashboard } from './SingleGraphDashboard';\r\n\r\nimport {
|
|
1
|
+
{"version":3,"file":"ScrollStory.js","sources":["../src/Components/Dashboard/ScrollStory.tsx"],"sourcesContent":["// Scrollytelling.tsx\r\nimport { motion, useInView } from 'motion/react';\r\nimport { useRef, useState } from 'react';\r\n\r\nimport { SingleGraphDashboard } from './SingleGraphDashboard';\r\n\r\nimport {\r\n ChaptersDataType,\r\n GraphTypeForGriddedGraph,\r\n InfoBoxDataType,\r\n SectionsArrDataType,\r\n} from '@/Types';\r\n\r\ninterface Props {\r\n /** Defines if the information is shown as overlay or on the side */\r\n mode?: 'overlay' | 'side';\r\n /** Defines the width of the info section */\r\n infoWidth?: string;\r\n /** Defined the different chapters for the story and different sections within the story */\r\n chapters: ChaptersDataType[];\r\n /** Position of info on the page */\r\n infoPosition?: 'left' | 'right' | 'center';\r\n /** Sets how much of the element (from 0 to 1) must be visible before it's considered in view and it trigger the animation in the scrollytelling */\r\n visibilityThreshold?: number;\r\n /** Sets background color of the info box. */\r\n infoBackgroundColor?: string;\r\n}\r\n\r\n/** ScrollStory is a scrollytelling container component that reveals content step-by-step as the user scrolls through the page. This does not include GeoHub maps and 3-D graph; for those please use `PerformanceIntensiveScrollStory`. */\r\nexport function ScrollStory(props: Props) {\r\n const {\r\n chapters,\r\n visibilityThreshold = 0.5,\r\n mode = 'overlay',\r\n infoWidth = '320px',\r\n infoPosition = 'left',\r\n infoBackgroundColor = 'rgba(255,255,255,0.8)',\r\n } = props;\r\n const [activeIndex, setActiveIndex] = useState(0);\r\n const sectionsArr: SectionsArrDataType[] = [];\r\n chapters.forEach((d, i) => {\r\n d.sections.forEach((s, j) => {\r\n sectionsArr.push({\r\n chapter: i,\r\n dataSettings: d.dataSettings,\r\n section: j,\r\n graphType: d.graphType,\r\n infoBox: s.infoBox,\r\n graphSettings: { ...d.graphSettings, ...(s.graphSettings || {}), animate: true },\r\n graphDataConfiguration: s.graphDataConfiguration || d.graphDataConfiguration || [],\r\n });\r\n });\r\n });\r\n return (\r\n <div className='relative w-full h-full'>\r\n {/* Background Layer */}\r\n <motion.div\r\n key={sectionsArr[activeIndex].chapter}\r\n className='fixed top-0 h-full -z-10'\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n transition={{ duration: 0.5 }}\r\n style={{\r\n left: mode === 'overlay' ? 0 : infoPosition === 'right' ? 0 : infoWidth,\r\n width: mode === 'overlay' ? '100%' : `calc(100% - ${infoWidth})`,\r\n }}\r\n >\r\n <SingleGraphDashboard\r\n graphType={sectionsArr[activeIndex].graphType as GraphTypeForGriddedGraph}\r\n dataSettings={sectionsArr[activeIndex].dataSettings}\r\n graphSettings={sectionsArr[activeIndex].graphSettings}\r\n graphDataConfiguration={sectionsArr[activeIndex].graphDataConfiguration}\r\n />\r\n </motion.div>\r\n <div>\r\n {sectionsArr.map((section, idx) => (\r\n <ScrollySection\r\n width={infoWidth}\r\n key={`${section.chapter}-${section.section}`}\r\n index={idx}\r\n infoBox={section.infoBox}\r\n setActiveIndex={setActiveIndex}\r\n position={infoPosition}\r\n mode={mode}\r\n visibilityThreshold={visibilityThreshold}\r\n backgroundColor={infoBackgroundColor}\r\n />\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction ScrollySection({\r\n infoBox,\r\n index,\r\n setActiveIndex,\r\n position,\r\n mode,\r\n visibilityThreshold,\r\n backgroundColor,\r\n width,\r\n}: {\r\n infoBox: InfoBoxDataType;\r\n index: number;\r\n setActiveIndex: (idx: number) => void;\r\n position: 'left' | 'right' | 'center';\r\n mode: 'overlay' | 'side';\r\n visibilityThreshold: number;\r\n backgroundColor: string;\r\n width: string;\r\n}) {\r\n const ref = useRef(null);\r\n const isInView = useInView(ref, {\r\n once: false,\r\n amount: visibilityThreshold,\r\n });\r\n if (isInView) setActiveIndex(index);\r\n return (\r\n <section\r\n ref={ref}\r\n className={`min-h-screen flex ${position === 'center' ? 'justify-center' : position === 'right' ? 'justify-end' : 'justify-start'}`}\r\n >\r\n <div\r\n className={`p-8 ${mode === 'overlay' ? 'h-fit mx-10 ' : ''}`}\r\n style={{\r\n backgroundColor,\r\n width,\r\n }}\r\n >\r\n {infoBox.title}\r\n {infoBox.description}\r\n </div>\r\n </section>\r\n );\r\n}\r\n"],"names":["ScrollStory","props","chapters","visibilityThreshold","mode","infoWidth","infoPosition","infoBackgroundColor","activeIndex","setActiveIndex","useState","sectionsArr","d","i","s","j","jsxs","jsx","motion","SingleGraphDashboard","section","idx","ScrollySection","infoBox","index","position","backgroundColor","width","ref","useRef","useInView"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index-CHPV5EwG-DDoeWRVt.cjs"),s=require("react"),te=require("./index-Ds0uHjK9.cjs"),q=require("./index-B0rbzOoC.cjs"),le=require("./index-BXns0-ng.cjs"),C=require("./DropdownSelect-0I2QxaVy.cjs"),h=require("./checkIfMultiple-D5ysrI7G.cjs"),ne=require("./Typography-k-kOjICQ.cjs"),re=require("./Spinner-DA6Z5E4n.cjs"),H=require("./fetchAndParseData-DmgQtB9n.cjs"),U=require("./transformDataForAggregation-BUGJnson.cjs"),z=require("./getUniqValue-CHqgSss5.cjs"),ie=require("./GraphHeader.cjs"),Z=require("./filterData-DN6py7y_.cjs"),oe=require("./getGraphList-gf02xgT2.cjs"),J=require("./index-D9h2WYDS.cjs"),se=u=>{if(u.findIndex(r=>r.chartConfigId==="yMin")!==-1&&u.findIndex(r=>r.chartConfigId==="yMax")!==-1)return u;const l=[...u];return u.findIndex(r=>r.chartConfigId==="yMin")===-1&&l.push({chartConfigId:"yMin",columnId:`${u[u.findIndex(r=>r.chartConfigId==="y")].columnId}Min`}),u.findIndex(r=>r.chartConfigId==="yMax")===-1&&l.push({chartConfigId:"yMax",columnId:`${u[u.findIndex(r=>r.chartConfigId==="y")].columnId}Max`}),l},A=(u,l)=>{const r=l?.map(S=>{const o=u?.findIndex(i=>i.chartConfigId===S.chartConfigId);if(o===-1)return{};const v=u[o]?.allowedColumnIds?.findIndex(i=>i.value===S.columnId);return v===-1?{}:u[o].allowedColumnIds[v].graphSettings||{}})||[];return Object.assign({},...r)};function ue(u){const{graphSettings:l,dataSettings:r,filters:S,graphType:o,dataTransform:v,graphDataConfiguration:i,dataFilters:T,debugMode:D,dataSelectionOptions:j,advancedDataSelectionOptions:F,readableHeader:B,noOfFiltersPerRow:g=4,updateFilters:K,uiMode:f="normal",theme:N="light",highlightDataPointSettings:b}=u,[I,Q]=s.useState(void 0),[y,X]=s.useState(void 0),[m,w]=s.useState(i),[x,R]=s.useState({}),[V,Y]=s.useState(void 0),[_,ee]=s.useState([]),P=s.useRef(null),L=s.useRef(i),[E,O]=s.useState([]),$=s.useMemo(()=>({ignoreCase:!0,ignoreAccents:!0,trim:!0}),[]),W=s.useCallback(async()=>{if(o!=="geoHubMap"&&o!=="geoHubCompareMap"&&o!=="geoHubMapWithLayerSelection"&&r)try{const c=await(r.dataURL?typeof r.dataURL=="string"?r.fileType==="json"?H.fetchAndParseJSON(r.dataURL,r.columnsToArray,r.dataTransformation,D):r.fileType==="api"?H.fetchAndTransformDataFromAPI(r.dataURL,r.apiHeaders,r.columnsToArray,r.dataTransformation,D):H.fetchAndParseCSV(r.dataURL,r.dataTransformation,r.columnsToArray,D,r.delimiter,!0):H.fetchAndParseMultipleDataSources(r.dataURL,r.idColumnTitle):H.transformColumnsToArray(r.data,r.columnsToArray));X(c);const a=(S||[]).map(t=>({filter:t.column,label:t.label||`Filter by ${t.column}`,singleSelect:t.singleSelect,clearable:t.clearable,defaultValue:J.transformDefaultValue(t.defaultValue),value:J.transformDefaultValue(t.defaultValue),availableValues:z.getUniqValue(c,t.column).filter(d=>!t.excludeValues?.includes(`${d}`)).map(d=>({value:d,label:d})),allowSelectAll:t.allowSelectAll,width:t.width}));O(a)}catch(e){console.error("Data fetching error:",e)}},[r,o,S,D]);s.useEffect(()=>{W()},[W]);const M=s.useMemo(()=>!y||E.length===0?y:y.filter(c=>E.every(a=>a.value&&q.flattenDeep([a.value]).length>0?te.intersection(q.flattenDeep([c[a.filter]]),q.flattenDeep([a.value]).map(t=>t.value)).length>0:!0)),[E,y]);s.useEffect(()=>{j&&R(A(j,i))},[j,i]),s.useEffect(()=>{o!=="geoHubMap"&&o!=="geoHubCompareMap"&&o!=="geoHubMapWithLayerSelection"&&y&&Q(M)},[M,o,y]),s.useEffect(()=>{b?.column&&M&&ee(z.getUniqValue(M,b.column).filter(e=>!b?.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})))},[M,b]),s.useEffect(()=>{le.isEqual(L.current,i)||(w(i),L.current=i)},[i]);const G=s.useCallback((e,c)=>{O(a=>a.map(t=>t.filter===e?{...t,value:c}:t))},[]),ae=s.useMemo(()=>{if(!I)return;const e=o==="lineChartWithConfidenceInterval"&&m?se(m):m;return o!=="geoHubMap"&&o!=="geoHubCompareMap"&&o!=="geoHubMapWithLayerSelection"?U.transformDataForGraph(v?U.transformDataForAggregation(Z.filterData(I,T||[]),v.keyColumn,v.aggregationColumnsSetting):Z.filterData(I,T||[]),o,e):void 0},[o,m,I,T,v]);return!r&&o!=="geoHubMap"&&o!=="geoHubCompareMap"&&o!=="geoHubMapWithLayerSelection"?n.jsxRuntimeExports.jsx(ne.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."}):n.jsxRuntimeExports.jsx("div",{className:`${N||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:I||oe.graphList.filter(e=>e.geoHubMapPresentation).map(e=>e.graphID).indexOf(o)!==-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&&I&&I.length>0?I:null}):null,E.length!==0||(j||[]).length!==0||(F||[]).length!==0||b?n.jsxRuntimeExports.jsxs("div",{style:{display:"flex",gap:"1rem",flexWrap:"wrap",alignItems:"flex-start",width:"100%"},children:[F?.map((e,c)=>n.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/g}% - ${(g-1)/g}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:f,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:f,onValueChange:a=>{const t=e.options[e.options.findIndex(d=>d.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))})]},c)),j?.map((e,c)=>n.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/g}% - ${(g-1)/g}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:f,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($),onChange:a=>{const t={columnId:(a||[]).map(p=>p.value),chartConfigId:e.chartConfigId},d=m?.map(p=>p.chartConfigId===t.chartConfigId?t:p);w(d)}}):n.jsxRuntimeExports.jsx(h.w,{variant:f,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},d=m?.map(p=>p.chartConfigId===t.chartConfigId?t:p);w(d)},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:f,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},d=m?.map(p=>p.chartConfigId===t.chartConfigId?t:p);R(A(j,d)),w(d)}}):n.jsxRuntimeExports.jsx(h.fe,{variant:f,defaultValue:i?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===i[i.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)].label:"",onValueChange:a=>{const d={columnId:e.allowedColumnIds[e.allowedColumnIds.findIndex(k=>k.label===a)].value,chartConfigId:e.chartConfigId},p=m?.map(k=>k.chartConfigId===d.chartConfigId?d:k);R(A(j,p)),w(p)},children:e.allowedColumnIds.map((a,t)=>n.jsxRuntimeExports.jsx(h.ve,{label:a.label,value:a.label},t))})]},c)),E?.map((e,c)=>n.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/g}% - ${(g-1)/g}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:f,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Hu($),onChange:a=>{G(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:f,size:"sm",isMulti:!0,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Hu($),onChange:a=>{G(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):n.jsxRuntimeExports.jsx(h.w,{variant:f,defaultValue:e.defaultValue?e.defaultValue.map(a=>`${a.value}`):[],value:e.value?e.value.map(a=>`${a.value}`):void 0,onValueChange:a=>{G(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:()=>{G(e.filter,e.availableValues)},children:"Select all options"}):null]})]},c)),b?n.jsxRuntimeExports.jsxs("div",{style:{width:b.width||`calc(${100/g}% - ${(g-1)/g}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[n.jsxRuntimeExports.jsx(h.f,{className:"mb-2",children:b.label||"Highlight data"}),n.jsxRuntimeExports.jsx(C.Za,{options:_,variant:f,size:"sm",isMulti:!0,isClearable:!0,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Hu($),onChange:e=>{Y(e?.map(c=>c.value))},value:V?.map(e=>({label:e,value:e})),defaultValue:b.defaultValues?.map(e=>({label:e,value:e}))})]}):null]}):null,n.jsxRuntimeExports.jsx(h.GraphEl,{graph:o,graphData:ae,graphDataConfiguration:m,debugMode:D,readableHeader:B||[],updateFilters:K,settings:{...l||{},...x,graphTitle:void 0,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,padding:"0",theme:l?.theme||N,...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(re.y,{})})})})})})}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-0I2QxaVy.cjs"),h=require("./checkIfMultiple-Do4kADNr.cjs"),le=require("./Typography-k-kOjICQ.cjs"),ne=require("./Spinner-DA6Z5E4n.cjs"),re=require("./GraphEl-B6SoGRFW.cjs"),G=require("./fetchAndParseData-DmgQtB9n.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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleGraphDashboard.cjs","sources":["../src/Components/Dashboard/SingleGraphDashboard.tsx"],"sourcesContent":["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 GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n HighlightDataPointSettingsDataType,\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: GraphType;\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 theme?: 'dark' | 'light';\r\n}\r\n\r\nconst addMinAndMax = (config: GraphConfigurationDataType[]) => {\r\n if (\r\n config.findIndex(d => d.chartConfigId === 'yMin') !== -1 &&\r\n config.findIndex(d => d.chartConfigId === 'yMax') !== -1\r\n )\r\n return config;\r\n const configTemp = [...config];\r\n if (config.findIndex(d => d.chartConfigId === 'yMin') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMin',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Min`,\r\n });\r\n }\r\n if (config.findIndex(d => d.chartConfigId === 'yMax') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMax',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Max`,\r\n });\r\n }\r\n return configTemp;\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 SingleGraphDashboard(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 theme = 'light',\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 if (\r\n graphType !== 'geoHubMap' &&\r\n graphType !== 'geoHubCompareMap' &&\r\n graphType !== 'geoHubMapWithLayerSelection' &&\r\n dataSettings\r\n ) {\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 }\r\n }, [dataSettings, graphType, 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 (\r\n graphType !== 'geoHubMap' &&\r\n graphType !== 'geoHubCompareMap' &&\r\n graphType !== 'geoHubMapWithLayerSelection' &&\r\n dataFromFile\r\n ) {\r\n setData(filteredData);\r\n }\r\n }, [filteredData, graphType, 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 =\r\n graphType === 'lineChartWithConfidenceInterval' && graphConfig\r\n ? addMinAndMax(graphConfig)\r\n : graphConfig;\r\n const d =\r\n graphType !== 'geoHubMap' &&\r\n graphType !== 'geoHubCompareMap' &&\r\n graphType !== 'geoHubMapWithLayerSelection'\r\n ? 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 : undefined;\r\n return d;\r\n }, [graphType, graphConfig, data, dataFilters, dataTransform]);\r\n if (\r\n !dataSettings &&\r\n graphType !== 'geoHubMap' &&\r\n graphType !== 'geoHubCompareMap' &&\r\n graphType !== 'geoHubMapWithLayerSelection'\r\n )\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={`${theme || 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 <GraphEl\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 || 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":["addMinAndMax","config","d","configTemp","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","c","indx","opt","allowedValIndx","col","SingleGraphDashboard","props","graphSettings","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","dataFilters","debugMode","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","updateFilters","uiMode","theme","highlightDataPointSettings","data","setData","useState","dataFromFile","setDataFromFile","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","useMemo","fetchDataHandler","useCallback","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformColumnsToArray","newFilterSettings","el","transformDefaultValue","getUniqValue","v","error","useEffect","filteredData","item","filter","flattenDeep","intersection","isEqual","handleFilterChange","values","prev","f","graphData","transformDataForGraph","transformDataForAggregation","filterData","P","jsx","cn","graphList","jsxs","Fragment","GraphHeader","i","Label","DropdownSelect","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","GraphEl","Spinner"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SingleGraphDashboard.cjs","sources":["../src/Components/Dashboard/SingleGraphDashboard.tsx"],"sourcesContent":["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 GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n HighlightDataPointSettingsDataType,\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: GraphType;\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 addMinAndMax = (config: GraphConfigurationDataType[]) => {\r\n if (\r\n config.findIndex(d => d.chartConfigId === 'yMin') !== -1 &&\r\n config.findIndex(d => d.chartConfigId === 'yMax') !== -1\r\n )\r\n return config;\r\n const configTemp = [...config];\r\n if (config.findIndex(d => d.chartConfigId === 'yMin') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMin',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Min`,\r\n });\r\n }\r\n if (config.findIndex(d => d.chartConfigId === 'yMax') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMax',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Max`,\r\n });\r\n }\r\n return configTemp;\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 SingleGraphDashboard(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 if (dataSettings) {\r\n try {\r\n const fetchData = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : fetchAndParseMultipleDataSources(dataSettings.dataURL, dataSettings.idColumnTitle)\r\n : transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n\r\n const d = await fetchData;\r\n setDataFromFile(d);\r\n\r\n // Optimize filter settings generation\r\n const newFilterSettings = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(d, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n\r\n setFilterSettings(newFilterSettings);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n }\r\n }, [dataSettings, 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, graphType, 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 =\r\n graphType === 'lineChartWithConfidenceInterval' && graphConfig\r\n ? addMinAndMax(graphConfig)\r\n : 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 <GraphEl\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":["addMinAndMax","config","d","configTemp","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","c","indx","opt","allowedValIndx","col","SingleGraphDashboard","props","graphSettings","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","dataFilters","debugMode","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","updateFilters","uiMode","highlightDataPointSettings","data","setData","useState","dataFromFile","setDataFromFile","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","useMemo","fetchDataHandler","useCallback","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformColumnsToArray","newFilterSettings","el","transformDefaultValue","getUniqValue","v","error","useEffect","filteredData","item","filter","flattenDeep","intersection","isEqual","handleFilterChange","values","prev","f","graphData","transformDataForGraph","transformDataForAggregation","filterData","jsx","cn","graphList","jsxs","Fragment","GraphHeader","i","Label","DropdownSelect","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","GraphEl","Spinner","P"],"mappings":"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"}
|
|
@@ -175,8 +175,6 @@ declare type FilterUiSettingsDataType = {
|
|
|
175
175
|
width?: string;
|
|
176
176
|
};
|
|
177
177
|
|
|
178
|
-
declare type GeoHubGraphType = 'geoHubCompareMap' | 'geoHubMap' | 'geoHubMapWithLayerSelection';
|
|
179
|
-
|
|
180
178
|
declare interface GraphConfigurationDataType {
|
|
181
179
|
columnId: string | string[];
|
|
182
180
|
chartConfigId: string;
|
|
@@ -425,9 +423,9 @@ declare interface GraphSettingsDataType {
|
|
|
425
423
|
polygonAltitude?: number;
|
|
426
424
|
}
|
|
427
425
|
|
|
428
|
-
declare type GraphType = GraphTypeForGriddedGraph
|
|
426
|
+
declare type GraphType = GraphTypeForGriddedGraph;
|
|
429
427
|
|
|
430
|
-
declare type GraphTypeForGriddedGraph = 'barChart' | 'stackedBarChart' | 'groupedBarChart' | 'lineChart' | 'dualAxisLineChart' | 'multiLineChart' | 'multiLineAltChart' | 'differenceLineChart' | 'stackedAreaChart' | 'choroplethMap' | 'biVariateChoroplethMap' | 'dotDensityMap' | 'donutChart' | 'slopeChart' | 'scatterPlot' | 'dumbbellChart' | 'treeMap' | 'circlePacking' | 'heatMap' | 'stripChart' | 'beeSwarmChart' | 'butterflyChart' | 'histogram' | 'sparkLine' | 'paretoChart' | 'dataTable' | 'statCard' | 'unitChart' | 'sankeyChart' | 'lineChartWithConfidenceInterval' | 'dataCards' | 'radarChart' | 'bulletChart'
|
|
428
|
+
declare type GraphTypeForGriddedGraph = 'barChart' | 'stackedBarChart' | 'groupedBarChart' | 'lineChart' | 'dualAxisLineChart' | 'multiLineChart' | 'multiLineAltChart' | 'differenceLineChart' | 'stackedAreaChart' | 'choroplethMap' | 'biVariateChoroplethMap' | 'dotDensityMap' | 'donutChart' | 'slopeChart' | 'scatterPlot' | 'dumbbellChart' | 'treeMap' | 'circlePacking' | 'heatMap' | 'stripChart' | 'beeSwarmChart' | 'butterflyChart' | 'histogram' | 'sparkLine' | 'paretoChart' | 'dataTable' | 'statCard' | 'unitChart' | 'sankeyChart' | 'lineChartWithConfidenceInterval' | 'dataCards' | 'radarChart' | 'bulletChart';
|
|
431
429
|
|
|
432
430
|
declare interface HighlightAreaSettingsDataType {
|
|
433
431
|
coordinates: [number | string | null, number | string | null];
|
|
@@ -490,7 +488,6 @@ declare interface Props {
|
|
|
490
488
|
debugMode?: boolean;
|
|
491
489
|
uiMode?: 'light' | 'normal';
|
|
492
490
|
updateFilters?: (_d: string) => void;
|
|
493
|
-
theme?: 'dark' | 'light';
|
|
494
491
|
}
|
|
495
492
|
|
|
496
493
|
declare interface ReferenceDataType {
|