@undp/data-viz 2.0.0 → 2.0.2

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 (140) hide show
  1. package/dist/BarGraph.cjs +1 -1
  2. package/dist/BarGraph.cjs.map +1 -1
  3. package/dist/BarGraph.js +959 -959
  4. package/dist/BarGraph.js.map +1 -1
  5. package/dist/BasicStatCard.cjs +1 -1
  6. package/dist/BasicStatCard.cjs.map +1 -1
  7. package/dist/BasicStatCard.js +45 -47
  8. package/dist/BasicStatCard.js.map +1 -1
  9. package/dist/BeeSwarmChart.cjs +1 -1
  10. package/dist/BeeSwarmChart.cjs.map +1 -1
  11. package/dist/BeeSwarmChart.js +76 -56
  12. package/dist/BeeSwarmChart.js.map +1 -1
  13. package/dist/BiVariateChoroplethMap.cjs +1 -1
  14. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  15. package/dist/BiVariateChoroplethMap.js +157 -157
  16. package/dist/BiVariateChoroplethMap.js.map +1 -1
  17. package/dist/BulletChart.cjs +1 -1
  18. package/dist/BulletChart.js +2 -2
  19. package/dist/ButterflyChart.cjs +1 -1
  20. package/dist/ButterflyChart.js +1 -1
  21. package/dist/ChoroplethMap.cjs +1 -1
  22. package/dist/ChoroplethMap.cjs.map +1 -1
  23. package/dist/ChoroplethMap.js +185 -185
  24. package/dist/ChoroplethMap.js.map +1 -1
  25. package/dist/CirclePackingGraph.cjs +1 -1
  26. package/dist/CirclePackingGraph.js +2 -4
  27. package/dist/CirclePackingGraph.js.map +1 -1
  28. package/dist/Data/barChart.json +70 -0
  29. package/dist/Data/basic.csv +20 -0
  30. package/dist/DifferenceLineChart.cjs +1 -1
  31. package/dist/DifferenceLineChart.cjs.map +1 -1
  32. package/dist/DifferenceLineChart.js +224 -223
  33. package/dist/DifferenceLineChart.js.map +1 -1
  34. package/dist/DonutChart.cjs +1 -1
  35. package/dist/DonutChart.cjs.map +1 -1
  36. package/dist/DonutChart.js +32 -24
  37. package/dist/DonutChart.js.map +1 -1
  38. package/dist/DotDensityMap.cjs +1 -1
  39. package/dist/DotDensityMap.cjs.map +1 -1
  40. package/dist/DotDensityMap.js +156 -156
  41. package/dist/DotDensityMap.js.map +1 -1
  42. package/dist/DualAxisLineChart.cjs +1 -1
  43. package/dist/DualAxisLineChart.cjs.map +1 -1
  44. package/dist/DualAxisLineChart.js +326 -325
  45. package/dist/DualAxisLineChart.js.map +1 -1
  46. package/dist/DumbbellChart.cjs +1 -1
  47. package/dist/DumbbellChart.js +2 -2
  48. package/dist/GeoHubCompareMaps.cjs +1 -1
  49. package/dist/GeoHubCompareMaps.cjs.map +1 -1
  50. package/dist/GeoHubCompareMaps.js +183 -183
  51. package/dist/GeoHubCompareMaps.js.map +1 -1
  52. package/dist/{GraphEl-DzRon4cb.js → GraphEl-BZne2JIx.js} +3 -3
  53. package/dist/{GraphEl-DzRon4cb.js.map → GraphEl-BZne2JIx.js.map} +1 -1
  54. package/dist/{GraphEl-BkyLYXG5.cjs → GraphEl-D5MUfp45.cjs} +2 -2
  55. package/dist/{GraphEl-BkyLYXG5.cjs.map → GraphEl-D5MUfp45.cjs.map} +1 -1
  56. package/dist/GriddedGraphs.cjs +1 -1
  57. package/dist/GriddedGraphs.js +1 -1
  58. package/dist/HeatMap.cjs +1 -1
  59. package/dist/HeatMap.js +2 -2
  60. package/dist/Histogram.cjs +1 -1
  61. package/dist/Histogram.js +1 -1
  62. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  63. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
  64. package/dist/LineChartWithConfidenceInterval.js +133 -132
  65. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  66. package/dist/MultiGraphDashboard.cjs +1 -1
  67. package/dist/MultiGraphDashboard.cjs.map +1 -1
  68. package/dist/MultiGraphDashboard.js +52 -50
  69. package/dist/MultiGraphDashboard.js.map +1 -1
  70. package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
  71. package/dist/MultiGraphDashboardWideToLongFormat.cjs.map +1 -1
  72. package/dist/MultiGraphDashboardWideToLongFormat.js +11 -9
  73. package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -1
  74. package/dist/MultiLineAltChart.cjs +1 -1
  75. package/dist/MultiLineAltChart.cjs.map +1 -1
  76. package/dist/MultiLineAltChart.js +149 -148
  77. package/dist/MultiLineAltChart.js.map +1 -1
  78. package/dist/MultiLineChart.cjs +1 -1
  79. package/dist/MultiLineChart.cjs.map +1 -1
  80. package/dist/MultiLineChart.js +182 -181
  81. package/dist/MultiLineChart.js.map +1 -1
  82. package/dist/ParetoChart.cjs +1 -1
  83. package/dist/ParetoChart.js +1 -1
  84. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
  85. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
  86. package/dist/PerformanceIntensiveMultiGraphDashboard.js +14 -12
  87. package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
  88. package/dist/SimpleLineChart.cjs +1 -1
  89. package/dist/SimpleLineChart.cjs.map +1 -1
  90. package/dist/SimpleLineChart.js +123 -122
  91. package/dist/SimpleLineChart.js.map +1 -1
  92. package/dist/SingleGraphDashboard.cjs +1 -1
  93. package/dist/SingleGraphDashboard.cjs.map +1 -1
  94. package/dist/SingleGraphDashboard.js +83 -79
  95. package/dist/SingleGraphDashboard.js.map +1 -1
  96. package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
  97. package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -1
  98. package/dist/SingleGraphDashboardGeoHubMaps.js +49 -45
  99. package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -1
  100. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  101. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
  102. package/dist/SingleGraphDashboardThreeDGraphs.js +56 -52
  103. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
  104. package/dist/StatCardFromData.cjs +1 -1
  105. package/dist/StatCardFromData.cjs.map +1 -1
  106. package/dist/StatCardFromData.js +44 -46
  107. package/dist/StatCardFromData.js.map +1 -1
  108. package/dist/ThreeDGlobe.cjs +1 -1
  109. package/dist/ThreeDGlobe.cjs.map +1 -1
  110. package/dist/ThreeDGlobe.js +134 -134
  111. package/dist/ThreeDGlobe.js.map +1 -1
  112. package/dist/{XAxesLabels-D5X8jngD.cjs → XAxesLabels-C1XSXoWG.cjs} +2 -2
  113. package/dist/XAxesLabels-C1XSXoWG.cjs.map +1 -0
  114. package/dist/{XAxesLabels-DNO0KmjL.js → XAxesLabels-Dmbk50u4.js} +18 -16
  115. package/dist/XAxesLabels-Dmbk50u4.js.map +1 -0
  116. package/dist/YAxesLabels-1XTb-D0_.js +72 -0
  117. package/dist/YAxesLabels-1XTb-D0_.js.map +1 -0
  118. package/dist/YAxesLabels-pjdsVwIM.cjs +2 -0
  119. package/dist/YAxesLabels-pjdsVwIM.cjs.map +1 -0
  120. package/dist/getNoOfTicks-C_1CFXv_.cjs +2 -0
  121. package/dist/getNoOfTicks-C_1CFXv_.cjs.map +1 -0
  122. package/dist/getNoOfTicks-CpmRjcRF.js +7 -0
  123. package/dist/getNoOfTicks-CpmRjcRF.js.map +1 -0
  124. package/dist/index-C6LorfZ-.cjs +2 -0
  125. package/dist/index-C6LorfZ-.cjs.map +1 -0
  126. package/dist/index-Ceppbd8C.js +342 -0
  127. package/dist/index-Ceppbd8C.js.map +1 -0
  128. package/dist/index.cjs +1 -1
  129. package/dist/index.js +1 -1
  130. package/package.json +1 -1
  131. package/dist/XAxesLabels-D5X8jngD.cjs.map +0 -1
  132. package/dist/XAxesLabels-DNO0KmjL.js.map +0 -1
  133. package/dist/YAxesLabels-DcS85Beo.cjs +0 -2
  134. package/dist/YAxesLabels-DcS85Beo.cjs.map +0 -1
  135. package/dist/YAxesLabels-Dnnng49-.js +0 -70
  136. package/dist/YAxesLabels-Dnnng49-.js.map +0 -1
  137. package/dist/index-DoY3Ga3W.cjs +0 -2
  138. package/dist/index-DoY3Ga3W.cjs.map +0 -1
  139. package/dist/index-leTnKT2q.js +0 -329
  140. package/dist/index-leTnKT2q.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SingleGraphDashboard.cjs","sources":["../src/Components/Dashboard/SingleGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, 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 { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\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 { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n 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 [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = 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 = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters]);\r\n\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.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 setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n if (dataSelectionOptions)\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setAdvancedGraphSettings(getGraphSettings(dataSelectionOptions, graphDataConfiguration));\r\n }, [dataSelectionOptions, graphDataConfiguration]);\r\n\r\n const updateHighlightedDataPointOptions = useEffectEvent(() => {\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 });\r\n\r\n useEffect(() => {\r\n updateHighlightedDataPointOptions();\r\n }, [highlightDataPointSettings]);\r\n\r\n useEffect(() => {\r\n if (!isEqual(prevGraphDataConfigRef.current, graphDataConfiguration)) {\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setGraphConfig(graphDataConfiguration);\r\n prevGraphDataConfigRef.current = graphDataConfiguration;\r\n }\r\n }, [graphDataConfiguration]);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (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 = !data\r\n ? undefined\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 graphType === 'lineChartWithConfidenceInterval' && graphConfig\r\n ? addMinAndMax(graphConfig)\r\n : graphConfig,\r\n );\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n >\r\n {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 || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ||\r\n highlightDataPointSettings ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n 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 className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n 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 className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n <DropdownSelect\r\n 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 className='pb-4'\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 </GraphContainer>\r\n );\r\n}\r\n"],"names":["addMinAndMax","config","findIndex","d","chartConfigId","configTemp","push","columnId","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","map","c","indx","opt","allowedValIndx","allowedColumnIds","col","value","graphSettings","Object","assign","SingleGraphDashboard","props","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","dataFilters","debugMode","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","updateFilters","uiMode","highlightDataPointSettings","filteredData","setFilteredData","useState","undefined","data","setData","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","defaultValue","transformDefaultValue","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","useEffect","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","filteredDataEvent","length","result","item","every","flattenDeep","intersection","updateHighlightedDataPointOptions","isEqual","current","handleFilterChange","values","prev","f","graphData","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","jsx","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","theme","language","height","padding","graphList","geoHubMapPresentation","indexOf","jsxs","Fragment","graphTitle","graphDescription","graphDownload","dataDownload","GraphHeader","title","description","i","flexGrow","flexShrink","ui","minWidth","Label","DropdownSelect","options","dataConfiguration","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","defaultValues","GraphEl","highlightedDataPoints","highlightedIds","highlightedLines","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"SingleGraphDashboard.cjs","sources":["../src/Components/Dashboard/SingleGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, 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 { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\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 { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n 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 [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = 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 = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters]);\r\n\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.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 setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n if (dataSelectionOptions)\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setAdvancedGraphSettings(getGraphSettings(dataSelectionOptions, graphDataConfiguration));\r\n }, [dataSelectionOptions, graphDataConfiguration]);\r\n\r\n const updateHighlightedDataPointOptions = useEffectEvent(() => {\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 });\r\n\r\n useEffect(() => {\r\n updateHighlightedDataPointOptions();\r\n }, [highlightDataPointSettings]);\r\n\r\n useEffect(() => {\r\n if (!isEqual(prevGraphDataConfigRef.current, graphDataConfiguration)) {\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setGraphConfig(graphDataConfiguration);\r\n prevGraphDataConfigRef.current = graphDataConfiguration;\r\n }\r\n }, [graphDataConfiguration]);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (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 = !data\r\n ? undefined\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 graphType === 'lineChartWithConfidenceInterval' && graphConfig\r\n ? addMinAndMax(graphConfig)\r\n : graphConfig,\r\n );\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n minHeight={graphSettings?.minHeight}\r\n relativeHeight={graphSettings?.relativeHeight}\r\n >\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 || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ||\r\n highlightDataPointSettings ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n 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 className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n 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 className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n <DropdownSelect\r\n 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 className='pb-4'\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 width: undefined,\r\n height: undefined,\r\n relativeHeight: undefined,\r\n minHeight: 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 </GraphContainer>\r\n );\r\n}\r\n"],"names":["addMinAndMax","config","findIndex","d","chartConfigId","configTemp","push","columnId","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","map","c","indx","opt","allowedValIndx","allowedColumnIds","col","value","graphSettings","Object","assign","SingleGraphDashboard","props","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","dataFilters","debugMode","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","updateFilters","uiMode","highlightDataPointSettings","filteredData","setFilteredData","useState","undefined","data","setData","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","defaultValue","transformDefaultValue","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","useEffect","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","filteredDataEvent","length","result","item","every","flattenDeep","intersection","updateHighlightedDataPointOptions","isEqual","current","handleFilterChange","values","prev","f","graphData","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","jsx","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","theme","language","height","padding","minHeight","relativeHeight","graphList","geoHubMapPresentation","indexOf","jsxs","Fragment","graphTitle","graphDescription","graphDownload","dataDownload","GraphHeader","title","description","i","flexGrow","flexShrink","ui","minWidth","Label","DropdownSelect","options","dataConfiguration","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","defaultValues","GraphEl","highlightedDataPoints","highlightedIds","highlightedLines","Spinner"],"mappings":"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"}
@@ -5,53 +5,53 @@ import { f as F } from "./index-EArKRVKg.js";
5
5
  import { i as da } from "./index-Bwrro8-q.js";
6
6
  import { j as D, D as M } from "./DropdownSelect-BbdPQa2k.js";
7
7
  import { b as A, y as J, h as B, c as ua, $ as K, P as Q } from "./checkIfMultiple-Y9iKaV_u.js";
8
- import { w as ca } from "./Spinner-D7rnnwnA.js";
9
- import { G as ha } from "./GraphContainer-CRqzdKu2.js";
10
- import { G as fa } from "./GraphEl-DzRon4cb.js";
11
- import { f as pa, a as ga, b as ma, c as Ca, t as Ia } from "./fetchAndParseData-BpqkBPQL.js";
12
- import { a as va, t as ba } from "./transformDataForAggregation-CE3bAlHU.js";
8
+ import { w as ha } from "./Spinner-D7rnnwnA.js";
9
+ import { G as ca } from "./GraphContainer-CRqzdKu2.js";
10
+ import { G as fa } from "./GraphEl-BZne2JIx.js";
11
+ import { f as ga, a as pa, b as ma, c as Ca, t as va } from "./fetchAndParseData-BpqkBPQL.js";
12
+ import { a as Ia, t as ba } from "./transformDataForAggregation-CE3bAlHU.js";
13
13
  import { g as X } from "./getUniqValue-BKHCm3zE.js";
14
14
  import { GraphHeader as xa } from "./GraphHeader.js";
15
15
  import { f as Y } from "./filterData-DsAiFzKY.js";
16
16
  import { g as wa } from "./getGraphList-BpEWn1Tk.js";
17
17
  import { t as Z } from "./transformDataForSelect-D8AuvYdf.js";
18
18
  const Da = (s) => {
19
- if (s.findIndex((t) => t.chartConfigId === "yMin") !== -1 && s.findIndex((t) => t.chartConfigId === "yMax") !== -1) return s;
19
+ if (s.findIndex((l) => l.chartConfigId === "yMin") !== -1 && s.findIndex((l) => l.chartConfigId === "yMax") !== -1) return s;
20
20
  const i = [...s];
21
- return s.findIndex((t) => t.chartConfigId === "yMin") === -1 && i.push({
21
+ return s.findIndex((l) => l.chartConfigId === "yMin") === -1 && i.push({
22
22
  chartConfigId: "yMin",
23
- columnId: `${s[s.findIndex((t) => t.chartConfigId === "y")].columnId}Min`
24
- }), s.findIndex((t) => t.chartConfigId === "yMax") === -1 && i.push({
23
+ columnId: `${s[s.findIndex((l) => l.chartConfigId === "y")].columnId}Min`
24
+ }), s.findIndex((l) => l.chartConfigId === "yMax") === -1 && i.push({
25
25
  chartConfigId: "yMax",
26
- columnId: `${s[s.findIndex((t) => t.chartConfigId === "y")].columnId}Max`
26
+ columnId: `${s[s.findIndex((l) => l.chartConfigId === "y")].columnId}Max`
27
27
  }), i;
28
- }, O = (s, i) => {
29
- const t = i?.map((V) => {
28
+ }, H = (s, i) => {
29
+ const l = i?.map((V) => {
30
30
  const C = s?.findIndex((o) => o.chartConfigId === V.chartConfigId);
31
31
  if (C === -1) return {};
32
32
  const x = s[C]?.allowedColumnIds?.findIndex((o) => o.value === V.columnId);
33
33
  return x === -1 ? {} : s[C].allowedColumnIds[x].graphSettings || {};
34
34
  }) || [];
35
- return Object.assign({}, ...t);
35
+ return Object.assign({}, ...l);
36
36
  };
37
37
  function Ea(s) {
38
38
  const {
39
39
  graphSettings: i,
40
- dataSettings: t,
40
+ dataSettings: l,
41
41
  filters: V,
42
42
  graphType: C,
43
43
  dataTransform: x,
44
44
  graphDataConfiguration: o,
45
- dataFilters: P,
45
+ dataFilters: O,
46
46
  debugMode: y,
47
- dataSelectionOptions: I,
48
- advancedDataSelectionOptions: k,
47
+ dataSelectionOptions: v,
48
+ advancedDataSelectionOptions: P,
49
49
  readableHeader: _,
50
50
  noOfFiltersPerRow: u = 4,
51
51
  updateFilters: aa,
52
52
  uiMode: f = "normal",
53
- highlightDataPointSettings: g
54
- } = s, [L, H] = b(void 0), [c, ea] = b(void 0), [m, v] = b(o), [p, S] = b({}), [j, la] = b(void 0), [ta, na] = b([]), E = q(null), U = q(o), [T, z] = b([]), G = {
53
+ highlightDataPointSettings: p
54
+ } = s, [k, L] = b(void 0), [h, ea] = b(void 0), [m, I] = b(o), [g, S] = b({}), [j, ta] = b(void 0), [la, ia] = b([]), E = q(null), U = q(o), [T, z] = b([]), G = {
55
55
  ignoreCase: !0,
56
56
  ignoreAccents: !0,
57
57
  trim: !0
@@ -63,7 +63,7 @@ function Ea(s) {
63
63
  clearable: r.clearable,
64
64
  defaultValue: Z(r.defaultValue),
65
65
  value: Z(r.defaultValue),
66
- availableValues: X(c, r.column).filter((e) => !r.excludeValues?.includes(`${e}`)).map((e) => ({
66
+ availableValues: X(h, r.column).filter((e) => !r.excludeValues?.includes(`${e}`)).map((e) => ({
67
67
  value: e,
68
68
  label: e
69
69
  })),
@@ -75,54 +75,54 @@ function Ea(s) {
75
75
  w(() => {
76
76
  (async () => {
77
77
  try {
78
- const r = t.dataURL ? typeof t.dataURL == "string" ? t.fileType === "json" ? await pa(t.dataURL, t.columnsToArray, t.dataTransformation, y) : t.fileType === "api" ? await ga(t.dataURL, t.apiHeaders, t.columnsToArray, t.dataTransformation, y) : await ma(t.dataURL, t.dataTransformation, t.columnsToArray, y, t.delimiter, !0) : await Ca(t.dataURL, t.idColumnTitle) : await Ia(t.data, t.columnsToArray);
78
+ const r = l.dataURL ? typeof l.dataURL == "string" ? l.fileType === "json" ? await ga(l.dataURL, l.columnsToArray, l.dataTransformation, y) : l.fileType === "api" ? await pa(l.dataURL, l.apiHeaders, l.columnsToArray, l.dataTransformation, y) : await ma(l.dataURL, l.dataTransformation, l.columnsToArray, y, l.delimiter, !0) : await Ca(l.dataURL, l.idColumnTitle) : await va(l.data, l.columnsToArray);
79
79
  ea(r);
80
80
  } catch (r) {
81
81
  console.error("Data fetching error:", r);
82
82
  }
83
83
  })(), W();
84
- }, [t, y]), w(() => {
84
+ }, [l, y]), w(() => {
85
85
  W();
86
86
  }, [V]);
87
- const ia = R(() => {
88
- if (!c || T.length === 0) H(c);
87
+ const na = R(() => {
88
+ if (!h || T.length === 0) L(h);
89
89
  else {
90
- const a = c.filter((r) => T.every((e) => e.value && F([e.value]).length > 0 ? sa(F([r[e.filter]]), F([e.value]).map((l) => l.value)).length > 0 : !0));
91
- H(a);
90
+ const a = h.filter((r) => T.every((e) => e.value && F([e.value]).length > 0 ? sa(F([r[e.filter]]), F([e.value]).map((t) => t.value)).length > 0 : !0));
91
+ L(a);
92
92
  }
93
93
  });
94
94
  w(() => {
95
- ia();
96
- }, [T, c]), w(() => {
97
- I && S(O(I, o));
98
- }, [I, o]);
95
+ na();
96
+ }, [T, h]), w(() => {
97
+ v && S(H(v, o));
98
+ }, [v, o]);
99
99
  const ra = R(() => {
100
- g?.column && L && na(X(L, g.column).filter((a) => !g?.excludeValues?.includes(`${a}`)).map((a) => ({
100
+ p?.column && k && ia(X(k, p.column).filter((a) => !p?.excludeValues?.includes(`${a}`)).map((a) => ({
101
101
  value: a,
102
102
  label: a
103
103
  })));
104
104
  });
105
105
  w(() => {
106
106
  ra();
107
- }, [g]), w(() => {
108
- da(U.current, o) || (v(o), U.current = o);
107
+ }, [p]), w(() => {
108
+ da(U.current, o) || (I(o), U.current = o);
109
109
  }, [o]);
110
110
  const $ = (a, r) => {
111
- z((e) => e.map((l) => l.filter === a ? {
112
- ...l,
111
+ z((e) => e.map((t) => t.filter === a ? {
112
+ ...t,
113
113
  value: r
114
- } : l));
115
- }, oa = c ? va(x ? ba(Y(c, P || []), x.keyColumn, x.aggregationColumnsSetting) : Y(c, P || []), C, C === "lineChartWithConfidenceInterval" && m ? Da(m) : m) : void 0;
116
- return /* @__PURE__ */ n.jsx(ha, { className: i?.classNames?.graphContainer, style: i?.styles?.graphContainer, id: i?.graphID, ref: E, "aria-label": i?.ariaLabel, backgroundColor: i?.backgroundColor ?? !1, theme: i?.theme || "light", language: i?.language || "en", width: i?.width, height: i?.height, padding: i?.padding, children: c || wa.filter((a) => a.geoHubMapPresentation).map((a) => a.graphID).indexOf(C) !== -1 ? /* @__PURE__ */ n.jsxs(n.Fragment, { children: [
117
- p?.graphTitle || p?.graphDescription || i?.graphTitle || i?.graphDescription || i?.graphDownload || i?.dataDownload ? /* @__PURE__ */ n.jsx(xa, { styles: {
118
- title: p?.styles?.title || i?.styles?.title,
119
- description: p?.styles?.description || i?.styles?.description
114
+ } : t));
115
+ }, oa = h ? Ia(x ? ba(Y(h, O || []), x.keyColumn, x.aggregationColumnsSetting) : Y(h, O || []), C, C === "lineChartWithConfidenceInterval" && m ? Da(m) : m) : void 0;
116
+ return /* @__PURE__ */ n.jsx(ca, { className: i?.classNames?.graphContainer, style: i?.styles?.graphContainer, id: i?.graphID, ref: E, "aria-label": i?.ariaLabel, backgroundColor: i?.backgroundColor ?? !1, theme: i?.theme || "light", language: i?.language || "en", width: i?.width, height: i?.height, padding: i?.padding, minHeight: i?.minHeight, relativeHeight: i?.relativeHeight, children: h || wa.filter((a) => a.geoHubMapPresentation).map((a) => a.graphID).indexOf(C) !== -1 ? /* @__PURE__ */ n.jsxs(n.Fragment, { children: [
117
+ g?.graphTitle || g?.graphDescription || i?.graphTitle || i?.graphDescription || i?.graphDownload || i?.dataDownload ? /* @__PURE__ */ n.jsx(xa, { styles: {
118
+ title: g?.styles?.title || i?.styles?.title,
119
+ description: g?.styles?.description || i?.styles?.description
120
120
  }, classNames: {
121
- title: p?.classNames?.title || i?.classNames?.title,
122
- description: p?.classNames?.description || i?.classNames?.description
123
- }, graphTitle: p?.graphTitle || i?.graphTitle, graphDescription: p?.graphDescription || i?.graphDescription, width: p?.width || i?.width, graphDownload: i?.graphDownload ? E : void 0, dataDownload: i?.dataDownload && c && c.length > 0 ? c : null }) : null,
124
- T.length !== 0 || (I || []).length !== 0 || (k || []).length !== 0 || g ? /* @__PURE__ */ n.jsxs("div", { className: "flex flex-wrap items-start gap-x-4 gap-y-0 w-full", children: [
125
- k?.map((a, r) => /* @__PURE__ */ n.jsxs("div", { style: {
121
+ title: g?.classNames?.title || i?.classNames?.title,
122
+ description: g?.classNames?.description || i?.classNames?.description
123
+ }, graphTitle: g?.graphTitle || i?.graphTitle, graphDescription: g?.graphDescription || i?.graphDescription, width: g?.width || i?.width, graphDownload: i?.graphDownload ? E : void 0, dataDownload: i?.dataDownload && h && h.length > 0 ? h : null }) : null,
124
+ T.length !== 0 || (v || []).length !== 0 || (P || []).length !== 0 || p ? /* @__PURE__ */ n.jsxs("div", { className: "flex flex-wrap items-start gap-x-4 gap-y-0 w-full", children: [
125
+ P?.map((a, r) => /* @__PURE__ */ n.jsxs("div", { style: {
126
126
  width: a.width || `calc(${100 / u}% - ${(u - 1) / u}rem)`,
127
127
  flexGrow: 1,
128
128
  flexShrink: a.ui !== "radio" ? 0 : 1,
@@ -149,15 +149,15 @@ function Ea(s) {
149
149
  value: a.options[0].label
150
150
  },
151
151
  onChange: (e) => {
152
- S(e?.graphSettings || {}), v(e?.dataConfiguration);
152
+ S(e?.graphSettings || {}), I(e?.dataConfiguration);
153
153
  }
154
154
  }
155
155
  ) : /* @__PURE__ */ n.jsx(J, { defaultValue: a.defaultValue?.label || a.options[0].label, variant: f, onValueChange: (e) => {
156
- const l = a.options[a.options.findIndex((h) => h.label === e)];
157
- S(l.graphSettings || {}), v(l.dataConfiguration);
158
- }, children: a.options.map((e, l) => /* @__PURE__ */ n.jsx(B, { label: e.label, value: e.label }, l)) })
156
+ const t = a.options[a.options.findIndex((c) => c.label === e)];
157
+ S(t.graphSettings || {}), I(t.dataConfiguration);
158
+ }, children: a.options.map((e, t) => /* @__PURE__ */ n.jsx(B, { label: e.label, value: e.label }, t)) })
159
159
  ] }, r)),
160
- I?.map((a, r) => /* @__PURE__ */ n.jsxs("div", { style: {
160
+ v?.map((a, r) => /* @__PURE__ */ n.jsxs("div", { style: {
161
161
  width: a.width || `calc(${100 / u}% - ${(u - 1) / u}rem)`,
162
162
  flexGrow: 1,
163
163
  flexShrink: a.ui !== "radio" ? 0 : 1,
@@ -173,26 +173,26 @@ function Ea(s) {
173
173
  isSearchable: !0,
174
174
  variant: f,
175
175
  controlShouldRenderValue: !0,
176
- defaultValue: o ? o[o.findIndex((e) => e.chartConfigId === a.chartConfigId)].columnId.map((e) => a.allowedColumnIds[a.allowedColumnIds.findIndex((l) => l.value === e)]) : void 0,
176
+ defaultValue: o ? o[o.findIndex((e) => e.chartConfigId === a.chartConfigId)].columnId.map((e) => a.allowedColumnIds[a.allowedColumnIds.findIndex((t) => t.value === e)]) : void 0,
177
177
  filterOption: M(G),
178
178
  onChange: (e) => {
179
- const l = {
179
+ const t = {
180
180
  columnId: (e || []).map(
181
181
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
182
182
  (d) => d.value
183
183
  ),
184
184
  chartConfigId: a.chartConfigId
185
- }, h = m?.map((d) => d.chartConfigId === l.chartConfigId ? l : d);
186
- v(h);
185
+ }, c = m?.map((d) => d.chartConfigId === t.chartConfigId ? t : d);
186
+ I(c);
187
187
  }
188
188
  }
189
- ) : /* @__PURE__ */ n.jsx(K, { variant: f, defaultValue: o ? o[o.findIndex((e) => e.chartConfigId === a.chartConfigId)].columnId.map((e) => a.allowedColumnIds[a.allowedColumnIds.findIndex((l) => l.value === e)]).map((e) => e.value) : [], onValueChange: (e) => {
190
- const l = {
189
+ ) : /* @__PURE__ */ n.jsx(K, { variant: f, defaultValue: o ? o[o.findIndex((e) => e.chartConfigId === a.chartConfigId)].columnId.map((e) => a.allowedColumnIds[a.allowedColumnIds.findIndex((t) => t.value === e)]).map((e) => e.value) : [], onValueChange: (e) => {
190
+ const t = {
191
191
  columnId: e || [],
192
192
  chartConfigId: a.chartConfigId
193
- }, h = m?.map((d) => d.chartConfigId === l.chartConfigId ? l : d);
194
- v(h);
195
- }, children: a.allowedColumnIds.map((e, l) => /* @__PURE__ */ n.jsx(Q, { label: e.label, value: e.label }, l)) }) : a.ui !== "radio" ? /* @__PURE__ */ n.jsx(
193
+ }, c = m?.map((d) => d.chartConfigId === t.chartConfigId ? t : d);
194
+ I(c);
195
+ }, children: a.allowedColumnIds.map((e, t) => /* @__PURE__ */ n.jsx(Q, { label: e.label, value: e.label }, t)) }) : a.ui !== "radio" ? /* @__PURE__ */ n.jsx(
196
196
  D,
197
197
  {
198
198
  options: a.allowedColumnIds,
@@ -201,22 +201,22 @@ function Ea(s) {
201
201
  isSearchable: !0,
202
202
  variant: f,
203
203
  controlShouldRenderValue: !0,
204
- defaultValue: o ? a.allowedColumnIds[a.allowedColumnIds.findIndex((e) => e.value === o[o.findIndex((l) => l.chartConfigId === a.chartConfigId)].columnId)] : void 0,
204
+ defaultValue: o ? a.allowedColumnIds[a.allowedColumnIds.findIndex((e) => e.value === o[o.findIndex((t) => t.chartConfigId === a.chartConfigId)].columnId)] : void 0,
205
205
  onChange: (e) => {
206
- const l = {
206
+ const t = {
207
207
  columnId: e?.value,
208
208
  chartConfigId: a.chartConfigId
209
- }, h = m?.map((d) => d.chartConfigId === l.chartConfigId ? l : d);
210
- S(O(I, h)), v(h);
209
+ }, c = m?.map((d) => d.chartConfigId === t.chartConfigId ? t : d);
210
+ S(H(v, c)), I(c);
211
211
  }
212
212
  }
213
- ) : /* @__PURE__ */ n.jsx(J, { variant: f, defaultValue: o ? a.allowedColumnIds[a.allowedColumnIds.findIndex((e) => e.value === o[o.findIndex((l) => l.chartConfigId === a.chartConfigId)].columnId)].label : "", onValueChange: (e) => {
214
- const h = {
213
+ ) : /* @__PURE__ */ n.jsx(J, { variant: f, defaultValue: o ? a.allowedColumnIds[a.allowedColumnIds.findIndex((e) => e.value === o[o.findIndex((t) => t.chartConfigId === a.chartConfigId)].columnId)].label : "", onValueChange: (e) => {
214
+ const c = {
215
215
  columnId: a.allowedColumnIds[a.allowedColumnIds.findIndex((N) => N.label === e)].value,
216
216
  chartConfigId: a.chartConfigId
217
- }, d = m?.map((N) => N.chartConfigId === h.chartConfigId ? h : N);
218
- S(O(I, d)), v(d);
219
- }, children: a.allowedColumnIds.map((e, l) => /* @__PURE__ */ n.jsx(B, { label: e.label, value: e.label }, l)) })
217
+ }, d = m?.map((N) => N.chartConfigId === c.chartConfigId ? c : N);
218
+ S(H(v, d)), I(d);
219
+ }, children: a.allowedColumnIds.map((e, t) => /* @__PURE__ */ n.jsx(B, { label: e.label, value: e.label }, t)) })
220
220
  ] }, r)),
221
221
  T?.map((a, r) => /* @__PURE__ */ n.jsxs("div", { style: {
222
222
  width: a.width || `calc(${100 / u}% - ${(u - 1) / u}rem)`,
@@ -231,24 +231,24 @@ function Ea(s) {
231
231
  a.ui !== "radio" ? /* @__PURE__ */ n.jsx(D, { options: a.availableValues, variant: f, size: "sm", isMulti: !0, isClearable: a.clearable === void 0 ? !0 : a.clearable, isSearchable: !0, controlShouldRenderValue: !0, filterOption: M(G), onChange: (e) => {
232
232
  $(a.filter, e);
233
233
  }, value: a.value, defaultValue: a.defaultValue }) : /* @__PURE__ */ n.jsx(K, { variant: f, defaultValue: a.defaultValue ? a.defaultValue.map((e) => `${e.value}`) : [], value: a.value ? a.value.map((e) => `${e.value}`) : void 0, onValueChange: (e) => {
234
- $(a.filter, a.availableValues.filter((l) => e.indexOf(`${l.value}`) !== -1));
235
- }, children: a.availableValues.map((e, l) => /* @__PURE__ */ n.jsx(Q, { label: `${e.label}`, value: `${e.value}` }, l)) }),
234
+ $(a.filter, a.availableValues.filter((t) => e.indexOf(`${t.value}`) !== -1));
235
+ }, children: a.availableValues.map((e, t) => /* @__PURE__ */ n.jsx(Q, { label: `${e.label}`, value: `${e.value}` }, t)) }),
236
236
  a.allowSelectAll ? /* @__PURE__ */ n.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: () => {
237
237
  $(a.filter, a.availableValues);
238
238
  }, children: "Select all options" }) : null
239
239
  ] })
240
240
  ] }, r)),
241
- g ? /* @__PURE__ */ n.jsxs("div", { style: {
242
- width: g.width || `calc(${100 / u}% - ${(u - 1) / u}rem)`,
241
+ p ? /* @__PURE__ */ n.jsxs("div", { style: {
242
+ width: p.width || `calc(${100 / u}% - ${(u - 1) / u}rem)`,
243
243
  flexGrow: 1,
244
244
  flexShrink: 0,
245
245
  minWidth: "240px"
246
246
  }, className: "pb-4", children: [
247
- /* @__PURE__ */ n.jsx(A, { className: "mb-2", children: g.label || "Highlight data" }),
247
+ /* @__PURE__ */ n.jsx(A, { className: "mb-2", children: p.label || "Highlight data" }),
248
248
  /* @__PURE__ */ n.jsx(
249
249
  D,
250
250
  {
251
- options: ta,
251
+ options: la,
252
252
  variant: f,
253
253
  size: "sm",
254
254
  isMulti: !0,
@@ -257,13 +257,13 @@ function Ea(s) {
257
257
  controlShouldRenderValue: !0,
258
258
  filterOption: M(G),
259
259
  onChange: (a) => {
260
- la(a?.map((r) => r.value));
260
+ ta(a?.map((r) => r.value));
261
261
  },
262
262
  value: j?.map((a) => ({
263
263
  label: a,
264
264
  value: a
265
265
  })),
266
- defaultValue: g.defaultValues?.map((a) => ({
266
+ defaultValue: p.defaultValues?.map((a) => ({
267
267
  label: a,
268
268
  value: a
269
269
  }))
@@ -273,12 +273,16 @@ function Ea(s) {
273
273
  ] }) : null,
274
274
  /* @__PURE__ */ n.jsx(fa, { graph: C, graphData: oa, graphDataConfiguration: m, debugMode: y, readableHeader: _ || [], updateFilters: aa, settings: {
275
275
  ...i || {},
276
- ...p,
276
+ ...g,
277
277
  graphTitle: void 0,
278
278
  graphDescription: void 0,
279
279
  graphDownload: !1,
280
280
  dataDownload: !1,
281
281
  backgroundColor: void 0,
282
+ width: void 0,
283
+ height: void 0,
284
+ relativeHeight: void 0,
285
+ minHeight: void 0,
282
286
  padding: "0",
283
287
  theme: i?.theme,
284
288
  ...j ? {
@@ -287,7 +291,7 @@ function Ea(s) {
287
291
  highlightedLines: j?.map((a) => a)
288
292
  } : {}
289
293
  } })
290
- ] }) : /* @__PURE__ */ n.jsx("div", { className: "w-full flex justify-center p-4", children: /* @__PURE__ */ n.jsx(ca, {}) }) });
294
+ ] }) : /* @__PURE__ */ n.jsx("div", { className: "w-full flex justify-center p-4", children: /* @__PURE__ */ n.jsx(ha, {}) }) });
291
295
  }
292
296
  export {
293
297
  Ea as SingleGraphDashboard