@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.
Files changed (104) hide show
  1. package/dist/DataCards.cjs +21 -1
  2. package/dist/DataCards.cjs.map +1 -1
  3. package/dist/DataCards.js +622 -12
  4. package/dist/DataCards.js.map +1 -1
  5. package/dist/GraphEl-B6SoGRFW.cjs +2 -0
  6. package/dist/GraphEl-B6SoGRFW.cjs.map +1 -0
  7. package/dist/{checkIfMultiple-BB7PlCNh.js → GraphEl-Cw2tDUb3.js} +129 -1163
  8. package/dist/GraphEl-Cw2tDUb3.js.map +1 -0
  9. package/dist/GriddedGraphs.cjs +1 -1
  10. package/dist/GriddedGraphs.cjs.map +1 -1
  11. package/dist/GriddedGraphs.d.ts +2 -4
  12. package/dist/GriddedGraphs.js +9 -8
  13. package/dist/GriddedGraphs.js.map +1 -1
  14. package/dist/GriddedGraphsFromConfig.d.ts +2 -4
  15. package/dist/MultiGraphDashboard.cjs +1 -1
  16. package/dist/MultiGraphDashboard.cjs.map +1 -1
  17. package/dist/MultiGraphDashboard.d.ts +16 -12
  18. package/dist/MultiGraphDashboard.js +2 -2
  19. package/dist/MultiGraphDashboardFromConfig.d.ts +16 -12
  20. package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
  21. package/dist/MultiGraphDashboardWideToLongFormat.js +1 -1
  22. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +2 -0
  23. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -0
  24. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +566 -0
  25. package/dist/PerformanceIntensiveMultiGraphDashboard.js +353 -0
  26. package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -0
  27. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +2 -0
  28. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs.map +1 -0
  29. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +570 -0
  30. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +38 -0
  31. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js.map +1 -0
  32. package/dist/PerformanceIntensiveScrollStory.cjs +2 -0
  33. package/dist/PerformanceIntensiveScrollStory.cjs.map +1 -0
  34. package/dist/PerformanceIntensiveScrollStory.d.ts +493 -0
  35. package/dist/PerformanceIntensiveScrollStory.js +122 -0
  36. package/dist/PerformanceIntensiveScrollStory.js.map +1 -0
  37. package/dist/ScrollStory.cjs.map +1 -1
  38. package/dist/ScrollStory.d.ts +3 -5
  39. package/dist/ScrollStory.js.map +1 -1
  40. package/dist/SingleGraphDashboard.cjs +1 -1
  41. package/dist/SingleGraphDashboard.cjs.map +1 -1
  42. package/dist/SingleGraphDashboard.d.ts +2 -5
  43. package/dist/SingleGraphDashboard.js +194 -194
  44. package/dist/SingleGraphDashboard.js.map +1 -1
  45. package/dist/SingleGraphDashboardFromConfig.d.ts +2 -4
  46. package/dist/SingleGraphDashboardGeoHubMaps.cjs +2 -0
  47. package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -0
  48. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +428 -0
  49. package/dist/SingleGraphDashboardGeoHubMaps.js +185 -0
  50. package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -0
  51. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +2 -0
  52. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs.map +1 -0
  53. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +432 -0
  54. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +25 -0
  55. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js.map +1 -0
  56. package/dist/SingleGraphDashboardThreeDGraphs.cjs +2 -0
  57. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -0
  58. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +540 -0
  59. package/dist/SingleGraphDashboardThreeDGraphs.js +610 -0
  60. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -0
  61. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +2 -0
  62. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs.map +1 -0
  63. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +543 -0
  64. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +35 -0
  65. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js.map +1 -0
  66. package/dist/Types.d.ts +38 -11
  67. package/dist/checkIfMultiple-CYp3vADF.js +912 -0
  68. package/dist/checkIfMultiple-CYp3vADF.js.map +1 -0
  69. package/dist/checkIfMultiple-Do4kADNr.cjs +12 -0
  70. package/dist/checkIfMultiple-Do4kADNr.cjs.map +1 -0
  71. package/dist/getSchema.cjs.map +1 -1
  72. package/dist/getSchema.d.ts +7 -5
  73. package/dist/getSchema.js.map +1 -1
  74. package/dist/index.cjs +1 -1
  75. package/dist/index.d.ts +330 -163
  76. package/dist/index.js +150 -136
  77. package/dist/index.js.map +1 -1
  78. package/dist/style.css +1 -1
  79. package/dist/transformData.cjs +1 -1
  80. package/dist/transformData.d.ts +5 -5
  81. package/dist/transformData.js +2 -2
  82. package/dist/{transformDataForAggregation-DAQJWGNL.js → transformDataForAggregation-CdcwlnNe.js} +2 -2
  83. package/dist/transformDataForAggregation-CdcwlnNe.js.map +1 -0
  84. package/dist/{transformDataForAggregation-BUGJnson.cjs → transformDataForAggregation-Du-Hei-W.cjs} +2 -2
  85. package/dist/transformDataForAggregation-Du-Hei-W.cjs.map +1 -0
  86. package/dist/{transformDataForGraphFromFile-DdNiOWeC.js → transformDataForGraphFromFile-CA0rw80A.js} +2 -2
  87. package/dist/{transformDataForGraphFromFile-DdNiOWeC.js.map → transformDataForGraphFromFile-CA0rw80A.js.map} +1 -1
  88. package/dist/{transformDataForGraphFromFile-CrntpaMU.cjs → transformDataForGraphFromFile-D9G3ToQf.cjs} +2 -2
  89. package/dist/{transformDataForGraphFromFile-CrntpaMU.cjs.map → transformDataForGraphFromFile-D9G3ToQf.cjs.map} +1 -1
  90. package/dist/transformDataForSelect-D8AuvYdf.js +14 -0
  91. package/dist/transformDataForSelect-D8AuvYdf.js.map +1 -0
  92. package/dist/transformDataForSelect-YmStusCI.cjs +2 -0
  93. package/dist/transformDataForSelect-YmStusCI.cjs.map +1 -0
  94. package/dist/validateSchema.d.ts +2 -4
  95. package/package.json +37 -2
  96. package/dist/checkIfMultiple-BB7PlCNh.js.map +0 -1
  97. package/dist/checkIfMultiple-D5ysrI7G.cjs +0 -12
  98. package/dist/checkIfMultiple-D5ysrI7G.cjs.map +0 -1
  99. package/dist/index-D9h2WYDS.cjs +0 -22
  100. package/dist/index-D9h2WYDS.cjs.map +0 -1
  101. package/dist/index-OCoyy1wG.js +0 -635
  102. package/dist/index-OCoyy1wG.js.map +0 -1
  103. package/dist/transformDataForAggregation-BUGJnson.cjs.map +0 -1
  104. package/dist/transformDataForAggregation-DAQJWGNL.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SingleGraphDashboard.js","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.js","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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"}
@@ -198,8 +198,6 @@ declare type FilterUiSettingsDataType = {
198
198
  width?: string;
199
199
  };
200
200
 
201
- declare type GeoHubGraphType = 'geoHubCompareMap' | 'geoHubMap' | 'geoHubMapWithLayerSelection';
202
-
203
201
  declare interface GraphConfigurationDataType {
204
202
  columnId: string | string[];
205
203
  chartConfigId: string;
@@ -448,9 +446,9 @@ declare interface GraphSettingsDataType {
448
446
  polygonAltitude?: number;
449
447
  }
450
448
 
451
- declare type GraphType = GraphTypeForGriddedGraph | GeoHubGraphType;
449
+ declare type GraphType = GraphTypeForGriddedGraph;
452
450
 
453
- 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' | 'threeDGlobe';
451
+ 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';
454
452
 
455
453
  declare interface HighlightAreaSettingsDataType {
456
454
  coordinates: [number | string | null, number | string | null];
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index-CHPV5EwG-DDoeWRVt.cjs"),p=require("react"),h=require("./Typography-k-kOjICQ.cjs"),c=require("./GeoHubCompareMaps.cjs"),d=require("./GeoHubMap.cjs"),u=require("./GeoHubMapWithLayerSelection.cjs"),m=require("./GraphHeader.cjs");function b(r){const{settings:e,graph:t,debugMode:o}=r;o&&(console.log(`Graph: ${t}`),console.log("Settings:",e));const i={geoHubCompareMap:c.GeoHubCompareMaps,geoHubMap:d.GeoHubMap,geoHubMapWithLayerSelection:u.GeoHubMapWithLayerSelection},s=g=>{switch(g){case"geoHubCompareMap":return{theme:e?.theme,graphTitle:e?.graphTitle,sources:e?.sources,graphDescription:e?.graphDescription,footNote:e?.footNote,backgroundColor:e?.backgroundColor,padding:e?.padding,width:e?.width,height:e?.height,relativeHeight:e?.relativeHeight,graphID:e?.graphID,mapStyles:e?.mapStyles,center:e?.center,zoomLevel:e?.zoomLevel,language:e?.language,minHeight:e?.minHeight,ariaLabel:e?.ariaLabel,styles:e?.styles,classNames:e?.classNames,mapLegend:e?.mapLegend};case"geoHubMap":return{theme:e?.theme,mapStyle:e?.mapStyle,center:e?.center,zoomLevel:e?.zoomLevel,graphTitle:e?.graphTitle,sources:e?.sources,graphDescription:e?.graphDescription,footNote:e?.footNote,backgroundColor:e?.backgroundColor,padding:e?.padding,width:e?.width,height:e?.height,relativeHeight:e?.relativeHeight,graphID:e?.graphID,language:e?.language,minHeight:e?.minHeight,includeLayers:e?.includeLayers,excludeLayers:e?.excludeLayers,ariaLabel:e?.ariaLabel,uiMode:e?.uiMode,styles:e?.styles,classNames:e?.classNames,mapLegend:e?.mapLegend};case"geoHubMapWithLayerSelection":return{theme:e?.theme,mapStyle:e?.mapStyle,center:e?.center,zoomLevel:e?.zoomLevel,graphTitle:e?.graphTitle,sources:e?.sources,graphDescription:e?.graphDescription,footNote:e?.footNote,backgroundColor:e?.backgroundColor,padding:e?.padding,width:e?.width,height:e?.height,relativeHeight:e?.relativeHeight,graphID:e?.graphID,language:e?.language,minHeight:e?.minHeight,layerSelection:e?.layerSelection,excludeLayers:e?.excludeLayers,ariaLabel:e?.ariaLabel,uiMode:e?.uiMode,mapLegend:e?.mapLegend};default:return{}}},n=i[t],l=s(t);return a.jsxRuntimeExports.jsx("div",{className:`grow my-0 mx-auto flex flex-col h-inherit ${e?.width?"w-fit":"w-full"} justify-center ${e?.theme||"light"}`,style:{minHeight:"inherit"},children:n?a.jsxRuntimeExports.jsx(n,{...l}):a.jsxRuntimeExports.jsx(h.u,{size:"sm",marginBottom:"none",className:"p-2 text-center text-accent-dark-red dark:text-accent-red",children:`Invalid chart type: ${t}`})})}function x(r){const{graphSettings:e,graphType:t,debugMode:o,uiMode:i="normal"}=r,s=p.useRef(null);return a.jsxRuntimeExports.jsx("div",{className:`${e?.theme||"light"} flex ${e?.width?"w-fit grow-0":"w-full grow"}${e?.height?"":" h-full"}`,dir:e?.language==="he"||e?.language==="ar"?"rtl":void 0,children:a.jsxRuntimeExports.jsx("div",{className:a.mo(`${e?.backgroundColor?e?.backgroundColor===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${e?.language||"en"}`,e?.classNames?.graphContainer),style:{...e?.styles?.graphContainer||{},...e?.backgroundColor&&e?.backgroundColor!==!0?{backgroundColor:e?.backgroundColor}:{}},id:e?.graphID,ref:s,children:a.jsxRuntimeExports.jsx("div",{style:{padding:e?.backgroundColor?e?.padding||"1rem":e?.padding||0,flexGrow:1,display:"flex"},children:a.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:[a.jsxRuntimeExports.jsx(m.GraphHeader,{styles:{title:e?.styles?.title,description:e?.styles?.description},classNames:{title:e?.classNames?.title,description:e?.classNames?.description},graphTitle:e?.graphTitle,graphDescription:e?.graphDescription,width:e?.width}),a.jsxRuntimeExports.jsx(b,{graph:t,debugMode:o,settings:{...e||{},graphTitle:void 0,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,padding:"0",uiMode:i,theme:e?.theme}})]})})})})}exports.SingleGraphDashboardGeoHubMaps=x;
2
+ //# sourceMappingURL=SingleGraphDashboardGeoHubMaps.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingleGraphDashboardGeoHubMaps.cjs","sources":["../src/Components/Dashboard/PerformanceIntensive/GeoHubMapsEl.tsx","../src/Components/Dashboard/PerformanceIntensive/SingleGraphDashboardGeoHubMaps.tsx"],"sourcesContent":["import { P } from '@undp/design-system-react/Typography';\r\n\r\nimport { GeoHubCompareMaps } from '../../Graphs/Maps/GeoHubMaps/CompareMaps';\r\nimport { GeoHubMap } from '../../Graphs/Maps/GeoHubMaps/SimpleMap';\r\nimport { GeoHubMapWithLayerSelection } from '../../Graphs/Maps/GeoHubMaps/MapWithLayerSelection';\r\n\r\nimport { GraphSettingsDataType, GeoHubGraphType } from '@/Types';\r\n\r\ninterface Props {\r\n graph: GeoHubGraphType;\r\n settings?: GraphSettingsDataType;\r\n debugMode?: boolean;\r\n}\r\n\r\nfunction GeoHubMapsEl(props: Props) {\r\n const { settings, graph, debugMode } = props;\r\n if (debugMode) {\r\n // eslint-disable-next-line no-console\r\n console.log(`Graph: ${graph}`);\r\n // eslint-disable-next-line no-console\r\n console.log('Settings:', settings);\r\n }\r\n const graphComponents: Record<GeoHubGraphType, React.ElementType | null> = {\r\n geoHubCompareMap: GeoHubCompareMaps,\r\n geoHubMap: GeoHubMap,\r\n geoHubMapWithLayerSelection: GeoHubMapWithLayerSelection,\r\n };\r\n const getGraphProps = (graphType: GeoHubGraphType) => {\r\n switch (graphType) {\r\n case 'geoHubCompareMap':\r\n return {\r\n theme: settings?.theme,\r\n graphTitle: settings?.graphTitle,\r\n sources: settings?.sources,\r\n graphDescription: settings?.graphDescription,\r\n footNote: settings?.footNote,\r\n backgroundColor: settings?.backgroundColor,\r\n padding: settings?.padding,\r\n width: settings?.width,\r\n height: settings?.height,\r\n relativeHeight: settings?.relativeHeight,\r\n graphID: settings?.graphID,\r\n mapStyles: settings?.mapStyles as [string, string],\r\n center: settings?.center,\r\n zoomLevel: settings?.zoomLevel,\r\n language: settings?.language,\r\n minHeight: settings?.minHeight,\r\n ariaLabel: settings?.ariaLabel,\r\n styles: settings?.styles,\r\n classNames: settings?.classNames,\r\n mapLegend: settings?.mapLegend,\r\n };\r\n case 'geoHubMap':\r\n return {\r\n theme: settings?.theme,\r\n mapStyle: settings?.mapStyle,\r\n center: settings?.center,\r\n zoomLevel: settings?.zoomLevel,\r\n graphTitle: settings?.graphTitle,\r\n sources: settings?.sources,\r\n graphDescription: settings?.graphDescription,\r\n footNote: settings?.footNote,\r\n backgroundColor: settings?.backgroundColor,\r\n padding: settings?.padding,\r\n width: settings?.width,\r\n height: settings?.height,\r\n relativeHeight: settings?.relativeHeight,\r\n graphID: settings?.graphID,\r\n language: settings?.language,\r\n minHeight: settings?.minHeight,\r\n includeLayers: settings?.includeLayers,\r\n excludeLayers: settings?.excludeLayers,\r\n ariaLabel: settings?.ariaLabel,\r\n uiMode: settings?.uiMode,\r\n styles: settings?.styles,\r\n classNames: settings?.classNames,\r\n mapLegend: settings?.mapLegend,\r\n };\r\n case 'geoHubMapWithLayerSelection':\r\n return {\r\n theme: settings?.theme,\r\n mapStyle: settings?.mapStyle,\r\n center: settings?.center,\r\n zoomLevel: settings?.zoomLevel,\r\n graphTitle: settings?.graphTitle,\r\n sources: settings?.sources,\r\n graphDescription: settings?.graphDescription,\r\n footNote: settings?.footNote,\r\n backgroundColor: settings?.backgroundColor,\r\n padding: settings?.padding,\r\n width: settings?.width,\r\n height: settings?.height,\r\n relativeHeight: settings?.relativeHeight,\r\n graphID: settings?.graphID,\r\n language: settings?.language,\r\n minHeight: settings?.minHeight,\r\n layerSelection: settings?.layerSelection,\r\n excludeLayers: settings?.excludeLayers,\r\n ariaLabel: settings?.ariaLabel,\r\n uiMode: settings?.uiMode,\r\n mapLegend: settings?.mapLegend,\r\n };\r\n default:\r\n return {};\r\n }\r\n };\r\n const GraphComponent = graphComponents[graph];\r\n const graphProps = getGraphProps(graph);\r\n return (\r\n <div\r\n className={`grow my-0 mx-auto flex flex-col h-inherit ${settings?.width ? 'w-fit' : 'w-full'} justify-center ${settings?.theme || 'light'}`}\r\n style={{ minHeight: 'inherit' }}\r\n >\r\n {GraphComponent ? (\r\n <GraphComponent {...graphProps} />\r\n ) : (\r\n <P\r\n size='sm'\r\n marginBottom='none'\r\n className='p-2 text-center text-accent-dark-red dark:text-accent-red'\r\n >\r\n {`Invalid chart type: ${graph}`}\r\n </P>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default GeoHubMapsEl;\r\n","import { useRef } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport GeoHubMapsEl from './GeoHubMapsEl';\r\n\r\nimport { GeoHubGraphType, GraphSettingsDataType } from '@/Types';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\n\r\ninterface Props {\r\n graphSettings?: GraphSettingsDataType;\r\n graphType: GeoHubGraphType;\r\n debugMode?: boolean;\r\n uiMode?: 'light' | 'normal';\r\n}\r\n\r\nexport function SingleGraphDashboardGeoHubMaps(props: Props) {\r\n const { graphSettings, graphType, debugMode, uiMode = 'normal' } = props;\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\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 <GraphHeader\r\n styles={{\r\n title: graphSettings?.styles?.title,\r\n description: graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: graphSettings?.classNames?.title,\r\n description: graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={graphSettings?.graphTitle}\r\n graphDescription={graphSettings?.graphDescription}\r\n width={graphSettings?.width}\r\n />\r\n <GeoHubMapsEl\r\n graph={graphType}\r\n debugMode={debugMode}\r\n settings={{\r\n ...(graphSettings || {}),\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 uiMode,\r\n theme: graphSettings?.theme,\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["GeoHubMapsEl","props","settings","graph","debugMode","graphComponents","GeoHubCompareMaps","GeoHubMap","GeoHubMapWithLayerSelection","getGraphProps","graphType","GraphComponent","graphProps","jsx","P","SingleGraphDashboardGeoHubMaps","graphSettings","uiMode","graphParentDiv","useRef","cn","jsxs","GraphHeader"],"mappings":"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"}