@undp/data-viz 2.0.8 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AreaChart.cjs +1 -1
- package/dist/AreaChart.d.ts +2 -0
- package/dist/AreaChart.js +1 -1
- package/dist/BarGraph.cjs +1 -1
- package/dist/BarGraph.cjs.map +1 -1
- package/dist/BarGraph.d.ts +2 -0
- package/dist/BarGraph.js +1188 -1213
- package/dist/BarGraph.js.map +1 -1
- package/dist/BasicStatCard.d.ts +2 -0
- package/dist/BeeSwarmChart.cjs +1 -1
- package/dist/BeeSwarmChart.cjs.map +1 -1
- package/dist/BeeSwarmChart.d.ts +2 -0
- package/dist/BeeSwarmChart.js +258 -267
- package/dist/BeeSwarmChart.js.map +1 -1
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.cjs.map +1 -1
- package/dist/BiVariateChoroplethMap.d.ts +2 -0
- package/dist/BiVariateChoroplethMap.js +126 -131
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/BulletChart.cjs +1 -1
- package/dist/BulletChart.cjs.map +1 -1
- package/dist/BulletChart.d.ts +2 -0
- package/dist/BulletChart.js +404 -413
- package/dist/BulletChart.js.map +1 -1
- package/dist/ButterflyChart.cjs +1 -1
- package/dist/ButterflyChart.cjs.map +1 -1
- package/dist/ButterflyChart.d.ts +2 -0
- package/dist/ButterflyChart.js +179 -184
- package/dist/ButterflyChart.js.map +1 -1
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.d.ts +2 -0
- package/dist/ChoroplethMap.js +268 -273
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/CirclePackingGraph.cjs +1 -1
- package/dist/CirclePackingGraph.d.ts +2 -0
- package/dist/CirclePackingGraph.js +1 -1
- package/dist/DataCards.cjs +1 -1
- package/dist/DataCards.d.ts +2 -0
- package/dist/DataCards.js +2 -2
- package/dist/DataTable.d.ts +2 -0
- package/dist/DetailsModal-0Ry5nXiC.js +32 -0
- package/dist/DetailsModal-0Ry5nXiC.js.map +1 -0
- package/dist/DetailsModal-BN0HDFlV.cjs +2 -0
- package/dist/DetailsModal-BN0HDFlV.cjs.map +1 -0
- package/dist/DifferenceLineChart.cjs +1 -1
- package/dist/DifferenceLineChart.d.ts +2 -0
- package/dist/DifferenceLineChart.js +1 -1
- package/dist/DonutChart.cjs +1 -1
- package/dist/DonutChart.cjs.map +1 -1
- package/dist/DonutChart.d.ts +2 -0
- package/dist/DonutChart.js +185 -190
- package/dist/DonutChart.js.map +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.cjs.map +1 -1
- package/dist/DotDensityMap.d.ts +2 -0
- package/dist/DotDensityMap.js +198 -203
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/DualAxisLineChart.cjs +1 -1
- package/dist/DualAxisLineChart.d.ts +2 -0
- package/dist/DualAxisLineChart.js +1 -1
- package/dist/DumbbellChart.cjs +1 -1
- package/dist/DumbbellChart.cjs.map +1 -1
- package/dist/DumbbellChart.d.ts +2 -0
- package/dist/DumbbellChart.js +364 -373
- package/dist/DumbbellChart.js.map +1 -1
- package/dist/GeoHubCompareMaps.d.ts +2 -0
- package/dist/GeoHubMap.d.ts +2 -0
- package/dist/GeoHubMapWithLayerSelection.d.ts +2 -0
- package/dist/{GraphEl-BcKU0bG1.cjs → GraphEl-B16EYkko.cjs} +2 -2
- package/dist/{GraphEl-BcKU0bG1.cjs.map → GraphEl-B16EYkko.cjs.map} +1 -1
- package/dist/{GraphEl-CGq1EWRn.js → GraphEl-ebgfxefq.js} +3 -3
- package/dist/{GraphEl-CGq1EWRn.js.map → GraphEl-ebgfxefq.js.map} +1 -1
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.cjs.map +1 -1
- package/dist/GriddedGraphs.d.ts +3 -0
- package/dist/GriddedGraphs.js +158 -146
- package/dist/GriddedGraphs.js.map +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +3 -0
- package/dist/HeatMap.cjs +1 -1
- package/dist/HeatMap.cjs.map +1 -1
- package/dist/HeatMap.d.ts +2 -0
- package/dist/HeatMap.js +111 -116
- package/dist/HeatMap.js.map +1 -1
- package/dist/Histogram.cjs +1 -1
- package/dist/Histogram.d.ts +2 -0
- package/dist/Histogram.js +1 -1
- package/dist/HybridMap.cjs +1 -1
- package/dist/HybridMap.cjs.map +1 -1
- package/dist/HybridMap.d.ts +2 -0
- package/dist/HybridMap.js +202 -207
- package/dist/HybridMap.js.map +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs +1 -1
- package/dist/LineChartWithConfidenceInterval.d.ts +2 -0
- package/dist/LineChartWithConfidenceInterval.js +1 -1
- package/dist/{Modal-DGcuAHyK.js → Modal-bMQA6bL_.js} +5 -5
- package/dist/{Modal-DGcuAHyK.js.map → Modal-bMQA6bL_.js.map} +1 -1
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.cjs.map +1 -1
- package/dist/MultiGraphDashboard.d.ts +3 -0
- package/dist/MultiGraphDashboard.js +90 -85
- package/dist/MultiGraphDashboard.js.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.d.ts +3 -0
- package/dist/MultiGraphDashboardWideToLongFormat.d.ts +2 -0
- package/dist/MultiGraphDashboardWideToLongFormat.js +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +2 -0
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.d.ts +2 -0
- package/dist/MultiLineAltChart.js +1 -1
- package/dist/MultiLineChart.cjs +1 -1
- package/dist/MultiLineChart.d.ts +2 -0
- package/dist/MultiLineChart.js +1 -1
- package/dist/ParetoChart.cjs +1 -1
- package/dist/ParetoChart.cjs.map +1 -1
- package/dist/ParetoChart.d.ts +2 -0
- package/dist/ParetoChart.js +187 -192
- package/dist/ParetoChart.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +3 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +76 -72
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +3 -0
- package/dist/PerformanceIntensiveScrollStory.d.ts +2 -0
- package/dist/RadarChart.cjs +1 -1
- package/dist/RadarChart.cjs.map +1 -1
- package/dist/RadarChart.d.ts +2 -0
- package/dist/RadarChart.js +158 -163
- package/dist/RadarChart.js.map +1 -1
- package/dist/SankeyChart.cjs +1 -1
- package/dist/SankeyChart.cjs.map +1 -1
- package/dist/SankeyChart.d.ts +2 -0
- package/dist/SankeyChart.js +172 -177
- package/dist/SankeyChart.js.map +1 -1
- package/dist/ScatterPlot.cjs +1 -1
- package/dist/ScatterPlot.cjs.map +1 -1
- package/dist/ScatterPlot.d.ts +2 -0
- package/dist/ScatterPlot.js +222 -227
- package/dist/ScatterPlot.js.map +1 -1
- package/dist/ScrollStory.d.ts +2 -0
- package/dist/SimpleLineChart.cjs +1 -1
- package/dist/SimpleLineChart.d.ts +2 -0
- package/dist/SimpleLineChart.js +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.cjs.map +1 -1
- package/dist/SingleGraphDashboard.d.ts +3 -0
- package/dist/SingleGraphDashboard.js +131 -128
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +3 -0
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +2 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +2 -0
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +3 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js +145 -141
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +3 -0
- package/dist/SlopeChart.cjs +1 -1
- package/dist/SlopeChart.cjs.map +1 -1
- package/dist/SlopeChart.d.ts +2 -0
- package/dist/SlopeChart.js +182 -187
- package/dist/SlopeChart.js.map +1 -1
- package/dist/SparkLine.cjs +1 -1
- package/dist/SparkLine.d.ts +2 -0
- package/dist/SparkLine.js +1 -1
- package/dist/StatCardFromData.d.ts +2 -0
- package/dist/StripChart.cjs +1 -1
- package/dist/StripChart.cjs.map +1 -1
- package/dist/StripChart.d.ts +2 -0
- package/dist/StripChart.js +249 -258
- package/dist/StripChart.js.map +1 -1
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.d.ts +2 -0
- package/dist/ThreeDGlobe.js +142 -147
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/Tooltip-Dj5eVppQ.js +45 -0
- package/dist/Tooltip-Dj5eVppQ.js.map +1 -0
- package/dist/Tooltip-uUdw6wJL.cjs +2 -0
- package/dist/Tooltip-uUdw6wJL.cjs.map +1 -0
- package/dist/TreeMapGraph.cjs +1 -1
- package/dist/TreeMapGraph.cjs.map +1 -1
- package/dist/TreeMapGraph.d.ts +2 -0
- package/dist/TreeMapGraph.js +159 -164
- package/dist/TreeMapGraph.js.map +1 -1
- package/dist/Types.d.ts +3 -0
- package/dist/UnitChart.d.ts +2 -0
- package/dist/{checkIfMultiple-Y9iKaV_u.js → checkIfMultiple-CIRtG0KE.js} +2 -2
- package/dist/{checkIfMultiple-Y9iKaV_u.js.map → checkIfMultiple-CIRtG0KE.js.map} +1 -1
- package/dist/getUniqValue-DsqSii6M.js +11 -0
- package/dist/getUniqValue-DsqSii6M.js.map +1 -0
- package/dist/getUniqValue-NX8DgwND.cjs +2 -0
- package/dist/getUniqValue-NX8DgwND.cjs.map +1 -0
- package/dist/index-BBV4tAeA.js +330 -0
- package/dist/index-BBV4tAeA.js.map +1 -0
- package/dist/index-CF5hnGvG.cjs +2 -0
- package/dist/index-CF5hnGvG.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2 -2
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/dist/Tooltip-4dJo4_AF.cjs +0 -2
- package/dist/Tooltip-4dJo4_AF.cjs.map +0 -1
- package/dist/Tooltip-CwWUegPB.js +0 -43
- package/dist/Tooltip-CwWUegPB.js.map +0 -1
- package/dist/getUniqValue-BKHCm3zE.js +0 -11
- package/dist/getUniqValue-BKHCm3zE.js.map +0 -1
- package/dist/getUniqValue-RViz8tTw.cjs +0 -2
- package/dist/getUniqValue-RViz8tTw.cjs.map +0 -1
- package/dist/index-B2LQV7Tk.js +0 -335
- package/dist/index-B2LQV7Tk.js.map +0 -1
- package/dist/index-xRHRLDIp.cjs +0 -2
- package/dist/index-xRHRLDIp.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GriddedGraphs.js","sources":["../src/Components/Dashboard/GriddedGraphs.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n noOfColumns?: number;\r\n columnGridBy: string;\r\n graphSettings?: GraphSettingsDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n graphType: Exclude<GraphType, 'geoHubMap' | 'geoHubCompareMap' | 'geoHubMapWithLayerSelection'>;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n showCommonColorScale?: boolean;\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n minGraphHeight?: number;\r\n minGraphWidth?: number;\r\n debugMode?: boolean;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n theme?: 'dark' | 'light';\r\n}\r\n\r\nexport function GriddedGraphs(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n noOfColumns,\r\n columnGridBy,\r\n dataFilters,\r\n showCommonColorScale,\r\n minGraphHeight,\r\n minGraphWidth,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n uiMode = 'normal',\r\n theme = 'light',\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [dataFromFile, setDataFromFile] = useState<any>(undefined);\r\n const [gridOption, setGridOption] = useState<(string | number)[]>([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n\r\n const filteredData = useMemo(() => {\r\n if (!dataFromFile || filterSettings.length === 0) return dataFromFile;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = dataFromFile.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n return result;\r\n }, [filterSettings, dataFromFile]);\r\n useEffect(() => {\r\n setData(filteredData);\r\n }, [filteredData]);\r\n\r\n const fetchDataHandler = useCallback(async () => {\r\n if (dataSettings) {\r\n try {\r\n const fetchData = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : fetchAndParseMultipleDataSources(dataSettings.dataURL, dataSettings.idColumnTitle)\r\n : transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n\r\n const d = await fetchData;\r\n setDataFromFile(d);\r\n\r\n const gridValue = getUniqValue(d, columnGridBy) as (string | number)[];\r\n setGridOption(gridValue);\r\n // Optimize filter settings generation\r\n const newFilterSettings = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(d, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n\r\n setFilterSettings(newFilterSettings);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n }\r\n }, [dataSettings, debugMode, columnGridBy, filters]);\r\n useEffect(() => {\r\n fetchDataHandler();\r\n }, [fetchDataHandler]);\r\n useEffect(() => {\r\n setGraphConfig(graphDataConfiguration);\r\n }, [graphDataConfiguration]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = useCallback((filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n }, []);\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel || 'This is a gridded graph'}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n >\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {data && gridOption.length > 0 ? (\r\n <>\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n controlShouldRenderValue\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isMulti\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el.map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n flexWrap: 'wrap',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n <DropdownSelect\r\n variant={uiMode}\r\n options={d.availableValues}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <>\r\n <DropdownSelect\r\n variant={uiMode}\r\n options={d.availableValues}\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n />\r\n {d.allowSelectAll ? (\r\n <button\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n type='button'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ) : null}\r\n {showCommonColorScale !== false && graphSettings?.showColorScale !== false ? (\r\n <ColorLegend\r\n width={graphSettings?.width}\r\n colorLegendTitle={graphSettings?.colorLegendTitle}\r\n colors={\r\n (graphSettings?.colors as string[] | undefined) ||\r\n (graphSettings?.lineColors as string[] | undefined) ||\r\n Colors[(graphSettings?.theme as 'light' | 'dark' | undefined) || 'light']\r\n .categoricalColors.colors\r\n }\r\n colorDomain={graphSettings?.colorDomain || graphSettings?.labels || []}\r\n showNAColor={\r\n graphSettings?.showNAColor === undefined || graphSettings?.showNAColor === null\r\n ? true\r\n : graphSettings?.showNAColor\r\n }\r\n />\r\n ) : null}\r\n <div\r\n className={`flex flex-wrap gap-4 justify-center ${graphSettings?.language === 'ar' || graphSettings?.language === 'he' ? 'flex-row-reverse' : 'flex-row'}`}\r\n >\r\n {gridOption.map((el, i) => (\r\n <div\r\n key={i}\r\n style={{\r\n width: `calc(${\r\n 100 / (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }% - ${\r\n ((noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number)) - 1) /\r\n (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }rem)`,\r\n minWidth: checkIfNullOrUndefined(minGraphWidth) ? '280px' : `${minGraphWidth}px`,\r\n }}\r\n >\r\n <GraphEl\r\n graph={graphType}\r\n graphDataConfiguration={graphConfig}\r\n graphData={\r\n transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n graphType,\r\n graphConfig,\r\n ) || []\r\n }\r\n debugMode={debugMode}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n theme: graphSettings?.theme || theme,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: graphSettings?.relativeHeight || 0.67,\r\n minHeight: minGraphHeight,\r\n graphTitle: `${el}`,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n footNote: undefined,\r\n sources: undefined,\r\n showColorScale:\r\n graphSettings?.showColorScale === false\r\n ? false\r\n : showCommonColorScale === false,\r\n }}\r\n readableHeader={readableHeader || []}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n {graphSettings?.sources || graphSettings?.footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: graphSettings?.styles?.footnote,\r\n source: graphSettings?.styles?.source,\r\n }}\r\n classNames={{\r\n footnote: graphSettings?.classNames?.footnote,\r\n source: graphSettings?.classNames?.source,\r\n }}\r\n sources={graphSettings?.sources}\r\n footNote={graphSettings?.footNote}\r\n width={graphSettings?.width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["GriddedGraphs","props","graphSettings","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","noOfColumns","columnGridBy","dataFilters","showCommonColorScale","minGraphHeight","minGraphWidth","debugMode","dataSelectionOptions","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","uiMode","theme","data","setData","useState","undefined","dataFromFile","setDataFromFile","gridOption","setGridOption","graphParentDiv","useRef","graphConfig","setGraphConfig","filterSettings","setFilterSettings","advancedGraphSettings","setAdvancedGraphSettings","filterConfig","useMemo","ignoreCase","ignoreAccents","trim","filteredData","length","filter","item","every","value","flattenDeep","intersection","map","el","useEffect","fetchDataHandler","useCallback","d","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","gridValue","getUniqValue","newFilterSettings","column","label","singleSelect","clearable","defaultValue","transformDefaultValue","availableValues","v","excludeValues","includes","allowSelectAll","width","error","console","handleFilterChange","values","prev","f","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","language","height","padding","graphTitle","graphDescription","graphDownload","dataDownload","jsx","GraphHeader","title","description","jsxs","Fragment","i","flexGrow","flexShrink","ui","minWidth","Label","DropdownSelect","options","opt","dataConfiguration","RadioGroup","selectedOption","findIndex","j","RadioGroupItem","chartConfigId","checkIfMultiple","allowedColumnIds","columnId","createFilter","newGraphConfig","updatedConfig","CheckboxGroup","CheckboxGroupItem","flexWrap","showColorScale","ColorLegend","colorLegendTitle","colors","lineColors","Colors","categoricalColors","colorDomain","labels","showNAColor","Math","min","checkIfNullOrUndefined","GraphEl","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","relativeHeight","minHeight","footNote","sources","Spinner","GraphFooter","footnote","source"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GriddedGraphs.js","sources":["../src/Components/Dashboard/GriddedGraphs.tsx"],"sourcesContent":["import { useCallback, useEffect, useEffectEvent, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n noOfColumns?: number;\r\n columnGridBy: string;\r\n graphSettings?: GraphSettingsDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n graphType: Exclude<GraphType, 'geoHubMap' | 'geoHubCompareMap' | 'geoHubMapWithLayerSelection'>;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n showCommonColorScale?: boolean;\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n minGraphHeight?: number;\r\n minGraphWidth?: number;\r\n debugMode?: boolean;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n theme?: 'dark' | 'light';\r\n}\r\n\r\nexport function GriddedGraphs(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n noOfColumns,\r\n columnGridBy,\r\n dataFilters,\r\n showCommonColorScale,\r\n minGraphHeight,\r\n minGraphWidth,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n uiMode = 'normal',\r\n theme = 'light',\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [dataFromFile, setDataFromFile] = useState<any>(undefined);\r\n const [gridOption, setGridOption] = useState<(string | number)[]>([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n\r\n const filteredData = useMemo(() => {\r\n if (!dataFromFile || filterSettings.length === 0) return dataFromFile;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = dataFromFile.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n return result;\r\n }, [filterSettings, dataFromFile]);\r\n useEffect(() => {\r\n setData(filteredData);\r\n }, [filteredData]);\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n ui: el.ui,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(dataFromFile, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const fetchDataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setDataFromFile(fetchDataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters, dataFromFile]);\r\n\r\n const updateGridOptionEvent = useEffectEvent(() => {\r\n const gridValue = getUniqValue(dataFromFile, columnGridBy) as (string | number)[];\r\n setGridOption(gridValue);\r\n });\r\n useEffect(() => {\r\n updateGridOptionEvent();\r\n }, [columnGridBy, dataFromFile]);\r\n useEffect(() => {\r\n setGraphConfig(graphDataConfiguration);\r\n }, [graphDataConfiguration]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = useCallback((filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n }, []);\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel || 'This is a gridded graph'}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n >\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {data && gridOption.length > 0 ? (\r\n <>\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: d.ui !== 'radio' || d.width ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: d.ui !== 'radio' || d.width ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n controlShouldRenderValue\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isMulti\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el.map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: d.ui !== 'radio' || d.width ? 0 : 1,\r\n flexWrap: 'wrap',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={(d.defaultValue as { value: string; label: string }).value}\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => v.value === el),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <RadioGroupItem label={`${el.label}`} value={`${el.value}`} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ) : null}\r\n {showCommonColorScale !== false && graphSettings?.showColorScale !== false ? (\r\n <ColorLegend\r\n width={graphSettings?.width}\r\n colorLegendTitle={graphSettings?.colorLegendTitle}\r\n colors={\r\n (graphSettings?.colors as string[] | undefined) ||\r\n (graphSettings?.lineColors as string[] | undefined) ||\r\n Colors[(graphSettings?.theme as 'light' | 'dark' | undefined) || 'light']\r\n .categoricalColors.colors\r\n }\r\n colorDomain={graphSettings?.colorDomain || graphSettings?.labels || []}\r\n showNAColor={\r\n graphSettings?.showNAColor === undefined || graphSettings?.showNAColor === null\r\n ? true\r\n : graphSettings?.showNAColor\r\n }\r\n />\r\n ) : null}\r\n <div\r\n className={`flex flex-wrap gap-4 justify-center ${graphSettings?.language === 'ar' || graphSettings?.language === 'he' ? 'flex-row-reverse' : 'flex-row'}`}\r\n >\r\n {gridOption.map((el, i) => (\r\n <div\r\n key={i}\r\n style={{\r\n width: `calc(${\r\n 100 / (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }% - ${\r\n ((noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number)) - 1) /\r\n (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }rem)`,\r\n minWidth: checkIfNullOrUndefined(minGraphWidth) ? '280px' : `${minGraphWidth}px`,\r\n }}\r\n >\r\n <GraphEl\r\n graph={graphType}\r\n graphDataConfiguration={graphConfig}\r\n graphData={\r\n transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n graphType,\r\n graphConfig,\r\n ) || []\r\n }\r\n debugMode={debugMode}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n theme: graphSettings?.theme || theme,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: graphSettings?.relativeHeight || 0.67,\r\n minHeight: minGraphHeight,\r\n graphTitle: `${el}`,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n footNote: undefined,\r\n sources: undefined,\r\n showColorScale:\r\n graphSettings?.showColorScale === false\r\n ? false\r\n : showCommonColorScale === false,\r\n }}\r\n readableHeader={readableHeader || []}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n {graphSettings?.sources || graphSettings?.footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: graphSettings?.styles?.footnote,\r\n source: graphSettings?.styles?.source,\r\n }}\r\n classNames={{\r\n footnote: graphSettings?.classNames?.footnote,\r\n source: graphSettings?.classNames?.source,\r\n }}\r\n sources={graphSettings?.sources}\r\n footNote={graphSettings?.footNote}\r\n width={graphSettings?.width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["GriddedGraphs","props","graphSettings","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","noOfColumns","columnGridBy","dataFilters","showCommonColorScale","minGraphHeight","minGraphWidth","debugMode","dataSelectionOptions","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","uiMode","theme","data","setData","useState","undefined","dataFromFile","setDataFromFile","gridOption","setGridOption","graphParentDiv","useRef","graphConfig","setGraphConfig","filterSettings","setFilterSettings","advancedGraphSettings","setAdvancedGraphSettings","filterConfig","useMemo","ignoreCase","ignoreAccents","trim","filteredData","length","filter","item","every","value","flattenDeep","intersection","map","el","useEffect","updateFiltersEvent","useEffectEvent","filterSettingsTemp","column","label","singleSelect","clearable","ui","defaultValue","transformDefaultValue","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","fetchData","fetchDataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","updateGridOptionEvent","gridValue","handleFilterChange","useCallback","values","prev","f","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","language","height","padding","graphTitle","graphDescription","graphDownload","dataDownload","jsx","GraphHeader","title","description","jsxs","Fragment","d","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","options","opt","dataConfiguration","RadioGroup","selectedOption","findIndex","j","RadioGroupItem","chartConfigId","checkIfMultiple","allowedColumnIds","columnId","createFilter","newGraphConfig","updatedConfig","CheckboxGroup","CheckboxGroupItem","flexWrap","indexOf","showColorScale","ColorLegend","colorLegendTitle","colors","lineColors","Colors","categoricalColors","colorDomain","labels","showNAColor","Math","min","checkIfNullOrUndefined","GraphEl","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","relativeHeight","minHeight","footNote","sources","Spinner","GraphFooter","footnote","source"],"mappings":"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"}
|
|
@@ -95,6 +95,7 @@ declare interface ClassNameObject {
|
|
|
95
95
|
regLine?: string;
|
|
96
96
|
dataCards?: string;
|
|
97
97
|
colorLegend?: string;
|
|
98
|
+
modal?: string;
|
|
98
99
|
}
|
|
99
100
|
|
|
100
101
|
declare interface ColumnConfigurationDataType {
|
|
@@ -219,6 +220,7 @@ declare type FilterUiSettingsDataType = {
|
|
|
219
220
|
excludeValues?: string[];
|
|
220
221
|
allowSelectAll?: boolean;
|
|
221
222
|
width?: string;
|
|
223
|
+
ui?: 'select' | 'radio';
|
|
222
224
|
};
|
|
223
225
|
|
|
224
226
|
declare interface FogDataType {
|
|
@@ -595,6 +597,7 @@ declare interface StyleObject {
|
|
|
595
597
|
mouseOverLine?: React.CSSProperties;
|
|
596
598
|
regLine?: React.CSSProperties;
|
|
597
599
|
dataCards?: React.CSSProperties;
|
|
600
|
+
modal?: React.CSSProperties;
|
|
598
601
|
}
|
|
599
602
|
|
|
600
603
|
declare interface TimelineDataType {
|
package/dist/HeatMap.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-CHPV5EwG-CTPQjnHt.cjs"),q=require("react"),Gt=require("./index-DQA8q5sC.cjs"),Ft=require("./Modal-JW_IExO3.cjs"),Xt=require("./numberFormattingFunction-02t-wJta.cjs"),Yt=require("./Tooltip-4dJo4_AF.cjs"),Pt=require("./getTextColorBasedOnBgColor-nqY-bsM_.cjs"),Dt=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),Ut=require("./string2HTML-CPGr_I5E.cjs"),zt=require("./XAxesLabels-Bt5NZBmX.cjs"),Jt=require("./YAxesLabels-DesLesUP.cjs"),It=require("./uniqBy-O05lp2S5.cjs"),Bt=require("./band-VYfcZeJ2.cjs"),Kt=require("./ordinal-CrsysVE-.cjs"),Qt=require("./threshold-DNsSUf8Q.cjs"),Zt=require("./linear-BwPAspcq.cjs"),_t=require("./use-in-view-QcfiW0w3.cjs"),Nt=require("./proxy-BxvUI_9l.cjs"),te=require("./GraphHeader.cjs"),ee=require("./GraphFooter.cjs"),oe=require("./ColorLegendWithMouseOver.cjs"),se=require("./LinearColorLegend.cjs"),re=require("./ThresholdColorLegendWithMouseOver.cjs"),m=require("./Colors.cjs"),ie=require("./EmptyState-sAEZ_5rU.cjs"),Wt=require("./GraphContainer-d8A46BK2.cjs");function ne(a){const t=e.compilerRuntimeExports.c(85),{data:h,showColumnLabels:z,leftMargin:E,rightMargin:J,truncateBy:j,width:K,height:Q,topMargin:mt,bottomMargin:pt,tooltip:Z,onSeriesMouseOver:n,suffix:wt,prefix:i,showValues:_,colorDomain:b,colors:B,noDataColor:rt,scaleType:it,showRowLabels:gt,selectedColor:tt,onSeriesMouseClick:W,resetSelectionOnDoubleClick:ft,detailsOnClick:g,styles:x,classNames:u,animate:d,precision:nt}=a,Rt=q.useRef(null);let lt;t[0]!==d.amount||t[1]!==d.once?(lt={once:d.once,amount:d.amount},t[0]=d.amount,t[1]=d.once,t[2]=lt):lt=t[2];const M=_t.useInView(Rt,lt);let at;t[3]!==pt||t[4]!==E||t[5]!==J||t[6]!==mt?(at={top:mt,bottom:pt,left:E,right:J},t[3]=pt,t[4]=E,t[5]=J,t[6]=mt,t[7]=at):at=t[7];const c=at,[C,Ct]=q.useState(void 0),[v,vt]=q.useState(void 0),[ct,ut]=q.useState(void 0),[dt,ht]=q.useState(void 0),l=K-c.left-c.right,r=Q-c.top-c.bottom;let G,F,$,O,k,S,L,N,D,A,H,T,f;if(t[8]!==d.duration||t[9]!==u?.graphObjectValues||t[10]!==u?.xAxis?.labels||t[11]!==u?.yAxis?.labels||t[12]!==b||t[13]!==B||t[14]!==h||t[15]!==g||t[16]!==r||t[17]!==l||t[18]!==Q||t[19]!==M||t[20]!==c.left||t[21]!==c.top||t[22]!==C||t[23]!==v||t[24]!==rt||t[25]!==W||t[26]!==n||t[27]!==nt||t[28]!==i||t[29]!==ft||t[30]!==it||t[31]!==tt||t[32]!==z||t[33]!==gt||t[34]!==_||t[35]!==x?.graphObjectValues||t[36]!==x?.xAxis?.labels||t[37]!==x?.yAxis?.labels||t[38]!==wt||t[39]!==j||t[40]!==K){const ot=It.uniqBy(h,"column",!0),xt=It.uniqBy(h,"row",!0),s=Bt.band().domain(xt).range([0,r]),X=s.bandwidth(),I=Bt.band().domain(ot).range([0,l]),Y=I.bandwidth(),st=it==="categorical"?Kt.ordinal().domain(b).range(B):it==="threshold"?Qt.threshold().domain(b).range(B):Zt.linear().domain(b).range(B);G=Nt.motion.svg,A=`${K}px`,H=`${Q}px`,T=`0 0 ${K} ${Q}`,t[54]===Symbol.for("react.memo_cache_sentinel")?(f={marginLeft:"auto",marginRight:"auto"},t[54]=f):f=t[54],F="ltr",$=Rt,O=e.jsxRuntimeExports.jsx("g",{transform:`translate(${c.left},0)`,children:z?ot.map((o,y)=>e.jsxRuntimeExports.jsx(zt.XAxesLabels,{y:0,x:I(o),width:Y,height:c.top-5,value:`${o}`.length<j?`${o}`:`${`${o}`.substring(0,j)}...`,style:x?.xAxis?.labels,className:u?.xAxis?.labels,alignment:"bottom",animate:{duration:0,once:!0,amount:0},isInView:M},y)):null}),k=e.jsxRuntimeExports.jsx("g",{transform:`translate(0,${c.top})`,children:gt?xt.map((o,y)=>e.jsxRuntimeExports.jsx(Jt.YAxesLabels,{value:`${o}`.length<j?`${o}`:`${`${o}`.substring(0,j)}...`,y:s(o),x:0,width:c.left,height:X,alignment:"right",style:x?.yAxis?.labels,className:u?.yAxis?.labels,animate:{duration:0,once:!0,amount:0},isInView:M},y)):null}),S=`translate(${c.left},${c.top})`,L=xt.map((o,y)=>e.jsxRuntimeExports.jsx("g",{transform:`translate(0,${s(o)})`,children:ot.map(P=>e.jsxRuntimeExports.jsx("rect",{x:I(P),y:0,width:Y,height:X,style:{fill:rt},className:"stroke-1 stroke-primary-white dark:stroke-primary-gray-700"},`${o}-${P}`))},y)),N=h.filter(le).map((o,y)=>{const P=Dt.checkIfNullOrUndefined(o.value)?rt:st(o.value);return e.jsxRuntimeExports.jsxs("g",{transform:`translate(${I(o.column)},${s(o.row)})`,onMouseEnter:U=>{vt(o),ht(U.clientY),ut(U.clientX),n?.(o)},onClick:()=>{(W||g)&&(Gt.isEqual(C,o)&&ft?(Ct(void 0),W?.(void 0)):(Ct(o),W?.(o)))},onMouseMove:U=>{vt(o),ht(U.clientY),ut(U.clientX)},onMouseLeave:()=>{vt(void 0),ut(void 0),ht(void 0),n?.(void 0)},opacity:tt?tt===P?1:.3:1,children:[e.jsxRuntimeExports.jsx(Nt.motion.rect,{x:0,y:0,width:Y,height:X,className:"stroke-1 stroke-primary-white dark:stroke-primary-gray-700",exit:{opacity:0,transition:{duration:d.duration}},variants:{initial:{fill:P,opacity:0},whileInView:{fill:P,opacity:1,transition:{duration:d.duration}}},initial:"initial",animate:M?"whileInView":"initial"}),_&&!Dt.checkIfNullOrUndefined(o.value)?e.jsxRuntimeExports.jsx(Nt.motion.g,{variants:{initial:{opacity:0},whileInView:{opacity:1,transition:{duration:d.duration}}},initial:"initial",animate:M?"whileInView":"initial",exit:{opacity:0,transition:{duration:d.duration}},children:e.jsxRuntimeExports.jsx("foreignObject",{y:0,x:0,width:Y,height:X,children:e.jsxRuntimeExports.jsx("div",{className:"flex flex-col justify-center items-center h-inherit p-1",children:e.jsxRuntimeExports.jsx("p",{className:e.mo("text-xs text-center m-0 leading-[1.25] graph-value",u?.graphObjectValues),style:{color:Pt.getTextColorBasedOnBgColor(P),...x?.graphObjectValues||{}},children:Xt.numberFormattingFunction(o.value,"NA",nt,i,wt)})})},y)}):null]},`${o.column}-${o.row}`)}),D=v?e.jsxRuntimeExports.jsx("rect",{x:I(v.column),y:s(v.row),width:Y,height:X,style:{fill:"none",fillOpacity:0,strokeWidth:1.5},className:"stroke-primary-gray-700 dark:stroke-primary-gray-300"}):null,t[8]=d.duration,t[9]=u?.graphObjectValues,t[10]=u?.xAxis?.labels,t[11]=u?.yAxis?.labels,t[12]=b,t[13]=B,t[14]=h,t[15]=g,t[16]=r,t[17]=l,t[18]=Q,t[19]=M,t[20]=c.left,t[21]=c.top,t[22]=C,t[23]=v,t[24]=rt,t[25]=W,t[26]=n,t[27]=nt,t[28]=i,t[29]=ft,t[30]=it,t[31]=tt,t[32]=z,t[33]=gt,t[34]=_,t[35]=x?.graphObjectValues,t[36]=x?.xAxis?.labels,t[37]=x?.yAxis?.labels,t[38]=wt,t[39]=j,t[40]=K,t[41]=G,t[42]=F,t[43]=$,t[44]=O,t[45]=k,t[46]=S,t[47]=L,t[48]=N,t[49]=D,t[50]=A,t[51]=H,t[52]=T,t[53]=f}else G=t[41],F=t[42],$=t[43],O=t[44],k=t[45],S=t[46],L=t[47],N=t[48],D=t[49],A=t[50],H=t[51],T=t[52],f=t[53];let V;t[55]!==S||t[56]!==L||t[57]!==N||t[58]!==D?(V=e.jsxRuntimeExports.jsxs("g",{transform:S,children:[L,N,D]}),t[55]=S,t[56]=L,t[57]=N,t[58]=D,t[59]=V):V=t[59];let w;t[60]!==G||t[61]!==F||t[62]!==$||t[63]!==O||t[64]!==k||t[65]!==V||t[66]!==A||t[67]!==H||t[68]!==T||t[69]!==f?(w=e.jsxRuntimeExports.jsxs(G,{width:A,height:H,viewBox:T,style:f,direction:F,ref:$,children:[O,k,V]}),t[60]=G,t[61]=F,t[62]=$,t[63]=O,t[64]=k,t[65]=V,t[66]=A,t[67]=H,t[68]=T,t[69]=f,t[70]=w):w=t[70];let R;t[71]!==u?.tooltip||t[72]!==ct||t[73]!==dt||t[74]!==v||t[75]!==x?.tooltip||t[76]!==Z?(R=v&&Z&&ct&&dt?e.jsxRuntimeExports.jsx(Yt.Tooltip,{data:v,body:Z,xPos:ct,yPos:dt,backgroundStyle:x?.tooltip,className:u?.tooltip}):null,t[71]=u?.tooltip,t[72]=ct,t[73]=dt,t[74]=v,t[75]=x?.tooltip,t[76]=Z,t[77]=R):R=t[77];let p;t[78]!==g||t[79]!==C?(p=g&&C!==void 0?e.jsxRuntimeExports.jsx(Ft.le,{open:C!==void 0,onClose:()=>{Ct(void 0)},children:e.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof g=="string"?{__html:Ut.string2HTML(g,C)}:void 0,children:typeof g=="function"?g(C):null})}):null,t[78]=g,t[79]=C,t[80]=p):p=t[80];let et;return t[81]!==w||t[82]!==R||t[83]!==p?(et=e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[w,R,p]}),t[81]=w,t[82]=R,t[83]=p,t[84]=et):et=t[84],et}function le(a){return!Dt.checkIfNullOrUndefined(a.value)}function ae(a){const t=e.compilerRuntimeExports.c(71),{data:h,graphTitle:z,colors:E,sources:J,graphDescription:j,showColumnLabels:K,leftMargin:Q,rightMargin:mt,truncateBy:pt,height:Z,width:n,scaleType:wt,colorDomain:i,footNote:_,colorLegendTitle:b,padding:B,backgroundColor:rt,topMargin:it,bottomMargin:gt,tooltip:tt,onSeriesMouseOver:W,suffix:ft,prefix:g,showRowLabels:x,relativeHeight:u,showValues:d,graphID:nt,noDataColor:Rt,showColorScale:lt,onSeriesMouseClick:M,graphDownload:at,dataDownload:c,fillContainer:C,language:Ct,showNAColor:v,minHeight:vt,theme:ct,ariaLabel:ut,resetSelectionOnDoubleClick:dt,detailsOnClick:ht,styles:l,classNames:r,animate:G,precision:F}=a,$=K===void 0?!0:K,O=Q===void 0?100:Q,k=mt===void 0?10:mt,S=pt===void 0?999:pt,L=rt===void 0?!1:rt,N=it===void 0?30:it,D=gt===void 0?10:gt,A=ft===void 0?"":ft,H=g===void 0?"":g,T=x===void 0?!0:x,f=Rt===void 0?m.Colors.gray:Rt,V=lt===void 0?!0:lt,w=at===void 0?!1:at,R=c===void 0?!1:c,p=C===void 0?!0:C,et=Ct===void 0?"en":Ct,ot=v===void 0?!0:v,xt=vt===void 0?0:vt,s=ct===void 0?"light":ct,X=dt===void 0?!0:dt,I=G===void 0?!1:G,Y=F===void 0?2:F,[st,o]=q.useState(0),[y,P]=q.useState(0),[U,At]=q.useState(void 0),Ot=q.useRef(null),Ht=q.useRef(null);let Et,Mt;t[0]===Symbol.for("react.memo_cache_sentinel")?(Et=()=>{const Tt=new ResizeObserver(Vt=>{o(Vt[0].target.clientWidth||620),P(Vt[0].target.clientHeight||480)});return Ot.current&&Tt.observe(Ot.current),()=>Tt.disconnect()},Mt=[],t[0]=Et,t[1]=Mt):(Et=t[0],Mt=t[1]),q.useEffect(Et,Mt);const qt=wt||(typeof i[0]=="string"?"categorical":i.length===2?"linear":"threshold"),kt=r?.graphContainer,St=l?.graphContainer,Lt=p?void 0:n;let yt;t[2]!==r?.description||t[3]!==r?.title||t[4]!==h||t[5]!==R||t[6]!==j||t[7]!==w||t[8]!==z||t[9]!==l?.description||t[10]!==l?.title||t[11]!==n?(yt=z||j||w||R?e.jsxRuntimeExports.jsx(te.GraphHeader,{styles:{title:l?.title,description:l?.description},classNames:{title:r?.title,description:r?.description},graphTitle:z,graphDescription:j,width:n,graphDownload:w?Ht:void 0,dataDownload:R?h.map(me).filter(xe).length>0?h.map(he).filter(de):h.filter(ue):null}):null,t[2]=r?.description,t[3]=r?.title,t[4]=h,t[5]=R,t[6]=j,t[7]=w,t[8]=z,t[9]=l?.description,t[10]=l?.title,t[11]=n,t[12]=yt):yt=t[12];let jt;t[13]!==I||t[14]!==D||t[15]!==r||t[16]!==i||t[17]!==b||t[18]!==E||t[19]!==h||t[20]!==ht||t[21]!==p||t[22]!==O||t[23]!==f||t[24]!==M||t[25]!==W||t[26]!==Y||t[27]!==H||t[28]!==X||t[29]!==k||t[30]!==qt||t[31]!==U||t[32]!==V||t[33]!==$||t[34]!==ot||t[35]!==T||t[36]!==d||t[37]!==l||t[38]!==A||t[39]!==y||t[40]!==st||t[41]!==s||t[42]!==tt||t[43]!==N||t[44]!==S||t[45]!==n?(jt=h.length===0?e.jsxRuntimeExports.jsx(ie.EmptyState,{}):e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[V?qt==="categorical"?e.jsxRuntimeExports.jsx(oe.ColorLegendWithMouseOver,{width:p?void 0:n,colorLegendTitle:b,colors:E||(typeof i[0]=="string"?m.Colors[s].categoricalColors.colors:i.length===2?[m.Colors[s].sequentialColors.neutralColorsx09[0],m.Colors[s].sequentialColors.neutralColorsx09[8]]:m.Colors[s].sequentialColors[`neutralColorsx0${i.length+1}`]),colorDomain:i.map(ce),setSelectedColor:At,showNAColor:ot,className:r?.colorLegend}):qt==="threshold"?e.jsxRuntimeExports.jsx(re.ThresholdColorLegendWithMouseOver,{width:p?void 0:n,colorLegendTitle:b,colors:E||(typeof i[0]=="string"?m.Colors[s].categoricalColors.colors:i.length===2?[m.Colors[s].sequentialColors.neutralColorsx09[0],m.Colors[s].sequentialColors.neutralColorsx09[8]]:m.Colors[s].sequentialColors[`neutralColorsx0${i.length+1}`]),colorDomain:i,setSelectedColor:At,naColor:f,showNAColor:ot}):e.jsxRuntimeExports.jsx(se.LinearColorLegend,{width:p?void 0:n,colorLegendTitle:b,colors:E||[m.Colors[s].sequentialColors.neutralColorsx09[0],m.Colors[s].sequentialColors.neutralColorsx09[8]],colorDomain:i,className:r?.colorLegend}):null,e.jsxRuntimeExports.jsx(Wt.GraphArea,{ref:Ot,children:st&&y?e.jsxRuntimeExports.jsx(ne,{data:h,colorDomain:i,width:p||!n||st<n?st:n,height:y,colors:E||(typeof i[0]=="string"?m.Colors[s].categoricalColors.colors:i.length===2?[m.Colors[s].sequentialColors.neutralColorsx09[0],m.Colors[s].sequentialColors.neutralColorsx09[8]]:m.Colors[s].sequentialColors[`neutralColorsx0${i.length+1}`]),noDataColor:f,scaleType:qt,showColumnLabels:$,leftMargin:O,rightMargin:k,topMargin:N,bottomMargin:D,selectedColor:U,truncateBy:S,showRowLabels:T,tooltip:tt,onSeriesMouseOver:W,showValues:d,suffix:A,prefix:H,onSeriesMouseClick:M,resetSelectionOnDoubleClick:X,detailsOnClick:ht,styles:l,classNames:r,animate:I===!0?{duration:.5,once:!0,amount:.5}:I||{duration:0,once:!0,amount:0},precision:Y}):null})]}),t[13]=I,t[14]=D,t[15]=r,t[16]=i,t[17]=b,t[18]=E,t[19]=h,t[20]=ht,t[21]=p,t[22]=O,t[23]=f,t[24]=M,t[25]=W,t[26]=Y,t[27]=H,t[28]=X,t[29]=k,t[30]=qt,t[31]=U,t[32]=V,t[33]=$,t[34]=ot,t[35]=T,t[36]=d,t[37]=l,t[38]=A,t[39]=y,t[40]=st,t[41]=s,t[42]=tt,t[43]=N,t[44]=S,t[45]=n,t[46]=jt):jt=t[46];let bt;t[47]!==r?.footnote||t[48]!==r?.source||t[49]!==_||t[50]!==J||t[51]!==l?.footnote||t[52]!==l?.source||t[53]!==n?(bt=J||_?e.jsxRuntimeExports.jsx(ee.GraphFooter,{styles:{footnote:l?.footnote,source:l?.source},classNames:{footnote:r?.footnote,source:r?.source},sources:J,footNote:_,width:n}):null,t[47]=r?.footnote,t[48]=r?.source,t[49]=_,t[50]=J,t[51]=l?.footnote,t[52]=l?.source,t[53]=n,t[54]=bt):bt=t[54];let $t;return t[55]!==ut||t[56]!==L||t[57]!==nt||t[58]!==Z||t[59]!==et||t[60]!==xt||t[61]!==B||t[62]!==u||t[63]!==kt||t[64]!==St||t[65]!==Lt||t[66]!==yt||t[67]!==jt||t[68]!==bt||t[69]!==s?($t=e.jsxRuntimeExports.jsxs(Wt.GraphContainer,{className:kt,style:St,id:nt,ref:Ht,"aria-label":ut,backgroundColor:L,theme:s,language:et,minHeight:xt,width:Lt,height:Z,relativeHeight:u,padding:B,children:[yt,jt,bt]}),t[55]=ut,t[56]=L,t[57]=nt,t[58]=Z,t[59]=et,t[60]=xt,t[61]=B,t[62]=u,t[63]=kt,t[64]=St,t[65]=Lt,t[66]=yt,t[67]=jt,t[68]=bt,t[69]=s,t[70]=$t):$t=t[70],$t}function ce(a){return`${a}`}function ue(a){return a!==void 0}function de(a){return a!==void 0}function he(a){return a.data}function xe(a){return a!==void 0}function me(a){return a.data}exports.HeatMap=ae;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-CHPV5EwG-CTPQjnHt.cjs"),w=require("react"),Gt=require("./index-DQA8q5sC.cjs"),Ft=require("./numberFormattingFunction-02t-wJta.cjs"),Xt=require("./Tooltip-uUdw6wJL.cjs"),Yt=require("./getTextColorBasedOnBgColor-nqY-bsM_.cjs"),Nt=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),Pt=require("./XAxesLabels-Bt5NZBmX.cjs"),Ut=require("./YAxesLabels-DesLesUP.cjs"),It=require("./uniqBy-O05lp2S5.cjs"),zt=require("./DetailsModal-BN0HDFlV.cjs"),Bt=require("./band-VYfcZeJ2.cjs"),Jt=require("./ordinal-CrsysVE-.cjs"),Kt=require("./threshold-DNsSUf8Q.cjs"),Qt=require("./linear-BwPAspcq.cjs"),Zt=require("./use-in-view-QcfiW0w3.cjs"),Lt=require("./proxy-BxvUI_9l.cjs"),_t=require("./GraphHeader.cjs"),te=require("./GraphFooter.cjs"),ee=require("./ColorLegendWithMouseOver.cjs"),oe=require("./LinearColorLegend.cjs"),se=require("./ThresholdColorLegendWithMouseOver.cjs"),m=require("./Colors.cjs"),re=require("./EmptyState-sAEZ_5rU.cjs"),Wt=require("./GraphContainer-d8A46BK2.cjs");function ie(c){const t=e.compilerRuntimeExports.c(86),{data:h,showColumnLabels:z,leftMargin:R,rightMargin:J,truncateBy:v,width:K,height:Q,topMargin:mt,bottomMargin:pt,tooltip:Z,onSeriesMouseOver:n,suffix:wt,prefix:i,showValues:_,colorDomain:y,colors:B,noDataColor:rt,scaleType:it,showRowLabels:gt,selectedColor:tt,onSeriesMouseClick:W,resetSelectionOnDoubleClick:ft,detailsOnClick:q,styles:x,classNames:a,animate:d,precision:nt}=c,Rt=w.useRef(null);let lt;t[0]!==d.amount||t[1]!==d.once?(lt={once:d.once,amount:d.amount},t[0]=d.amount,t[1]=d.once,t[2]=lt):lt=t[2];const E=Zt.useInView(Rt,lt);let at;t[3]!==pt||t[4]!==R||t[5]!==J||t[6]!==mt?(at={top:mt,bottom:pt,left:R,right:J},t[3]=pt,t[4]=R,t[5]=J,t[6]=mt,t[7]=at):at=t[7];const u=at,[$,Ct]=w.useState(void 0),[f,vt]=w.useState(void 0),[ct,ut]=w.useState(void 0),[dt,ht]=w.useState(void 0),l=K-u.left-u.right,r=Q-u.top-u.bottom;let G,F,M,O,k,S,D,L,N,A,V,H,g;if(t[8]!==d.duration||t[9]!==a?.graphObjectValues||t[10]!==a?.xAxis?.labels||t[11]!==a?.yAxis?.labels||t[12]!==y||t[13]!==B||t[14]!==h||t[15]!==q||t[16]!==r||t[17]!==l||t[18]!==Q||t[19]!==E||t[20]!==u.left||t[21]!==u.top||t[22]!==$||t[23]!==f||t[24]!==rt||t[25]!==W||t[26]!==n||t[27]!==nt||t[28]!==i||t[29]!==ft||t[30]!==it||t[31]!==tt||t[32]!==z||t[33]!==gt||t[34]!==_||t[35]!==x?.graphObjectValues||t[36]!==x?.xAxis?.labels||t[37]!==x?.yAxis?.labels||t[38]!==wt||t[39]!==v||t[40]!==K){const ot=It.uniqBy(h,"column",!0),xt=It.uniqBy(h,"row",!0),s=Bt.band().domain(xt).range([0,r]),X=s.bandwidth(),I=Bt.band().domain(ot).range([0,l]),Y=I.bandwidth(),st=it==="categorical"?Jt.ordinal().domain(y).range(B):it==="threshold"?Kt.threshold().domain(y).range(B):Qt.linear().domain(y).range(B);G=Lt.motion.svg,A=`${K}px`,V=`${Q}px`,H=`0 0 ${K} ${Q}`,t[54]===Symbol.for("react.memo_cache_sentinel")?(g={marginLeft:"auto",marginRight:"auto"},t[54]=g):g=t[54],F="ltr",M=Rt,O=e.jsxRuntimeExports.jsx("g",{transform:`translate(${u.left},0)`,children:z?ot.map((o,C)=>e.jsxRuntimeExports.jsx(Pt.XAxesLabels,{y:0,x:I(o),width:Y,height:u.top-5,value:`${o}`.length<v?`${o}`:`${`${o}`.substring(0,v)}...`,style:x?.xAxis?.labels,className:a?.xAxis?.labels,alignment:"bottom",animate:{duration:0,once:!0,amount:0},isInView:E},C)):null}),k=e.jsxRuntimeExports.jsx("g",{transform:`translate(0,${u.top})`,children:gt?xt.map((o,C)=>e.jsxRuntimeExports.jsx(Ut.YAxesLabels,{value:`${o}`.length<v?`${o}`:`${`${o}`.substring(0,v)}...`,y:s(o),x:0,width:u.left,height:X,alignment:"right",style:x?.yAxis?.labels,className:a?.yAxis?.labels,animate:{duration:0,once:!0,amount:0},isInView:E},C)):null}),S=`translate(${u.left},${u.top})`,D=xt.map((o,C)=>e.jsxRuntimeExports.jsx("g",{transform:`translate(0,${s(o)})`,children:ot.map(P=>e.jsxRuntimeExports.jsx("rect",{x:I(P),y:0,width:Y,height:X,style:{fill:rt},className:"stroke-1 stroke-primary-white dark:stroke-primary-gray-700"},`${o}-${P}`))},C)),L=h.filter(ne).map((o,C)=>{const P=Nt.checkIfNullOrUndefined(o.value)?rt:st(o.value);return e.jsxRuntimeExports.jsxs("g",{transform:`translate(${I(o.column)},${s(o.row)})`,onMouseEnter:U=>{vt(o),ht(U.clientY),ut(U.clientX),n?.(o)},onClick:()=>{(W||q)&&(Gt.isEqual($,o)&&ft?(Ct(void 0),W?.(void 0)):(Ct(o),W?.(o)))},onMouseMove:U=>{vt(o),ht(U.clientY),ut(U.clientX)},onMouseLeave:()=>{vt(void 0),ut(void 0),ht(void 0),n?.(void 0)},opacity:tt?tt===P?1:.3:1,children:[e.jsxRuntimeExports.jsx(Lt.motion.rect,{x:0,y:0,width:Y,height:X,className:"stroke-1 stroke-primary-white dark:stroke-primary-gray-700",exit:{opacity:0,transition:{duration:d.duration}},variants:{initial:{fill:P,opacity:0},whileInView:{fill:P,opacity:1,transition:{duration:d.duration}}},initial:"initial",animate:E?"whileInView":"initial"}),_&&!Nt.checkIfNullOrUndefined(o.value)?e.jsxRuntimeExports.jsx(Lt.motion.g,{variants:{initial:{opacity:0},whileInView:{opacity:1,transition:{duration:d.duration}}},initial:"initial",animate:E?"whileInView":"initial",exit:{opacity:0,transition:{duration:d.duration}},children:e.jsxRuntimeExports.jsx("foreignObject",{y:0,x:0,width:Y,height:X,children:e.jsxRuntimeExports.jsx("div",{className:"flex flex-col justify-center items-center h-inherit p-1",children:e.jsxRuntimeExports.jsx("p",{className:e.mo("text-xs text-center m-0 leading-[1.25] graph-value",a?.graphObjectValues),style:{color:Yt.getTextColorBasedOnBgColor(P),...x?.graphObjectValues||{}},children:Ft.numberFormattingFunction(o.value,"NA",nt,i,wt)})})},C)}):null]},`${o.column}-${o.row}`)}),N=f?e.jsxRuntimeExports.jsx("rect",{x:I(f.column),y:s(f.row),width:Y,height:X,style:{fill:"none",fillOpacity:0,strokeWidth:1.5},className:"stroke-primary-gray-700 dark:stroke-primary-gray-300"}):null,t[8]=d.duration,t[9]=a?.graphObjectValues,t[10]=a?.xAxis?.labels,t[11]=a?.yAxis?.labels,t[12]=y,t[13]=B,t[14]=h,t[15]=q,t[16]=r,t[17]=l,t[18]=Q,t[19]=E,t[20]=u.left,t[21]=u.top,t[22]=$,t[23]=f,t[24]=rt,t[25]=W,t[26]=n,t[27]=nt,t[28]=i,t[29]=ft,t[30]=it,t[31]=tt,t[32]=z,t[33]=gt,t[34]=_,t[35]=x?.graphObjectValues,t[36]=x?.xAxis?.labels,t[37]=x?.yAxis?.labels,t[38]=wt,t[39]=v,t[40]=K,t[41]=G,t[42]=F,t[43]=M,t[44]=O,t[45]=k,t[46]=S,t[47]=D,t[48]=L,t[49]=N,t[50]=A,t[51]=V,t[52]=H,t[53]=g}else G=t[41],F=t[42],M=t[43],O=t[44],k=t[45],S=t[46],D=t[47],L=t[48],N=t[49],A=t[50],V=t[51],H=t[52],g=t[53];let T;t[55]!==S||t[56]!==D||t[57]!==L||t[58]!==N?(T=e.jsxRuntimeExports.jsxs("g",{transform:S,children:[D,L,N]}),t[55]=S,t[56]=D,t[57]=L,t[58]=N,t[59]=T):T=t[59];let j;t[60]!==G||t[61]!==F||t[62]!==M||t[63]!==O||t[64]!==k||t[65]!==T||t[66]!==A||t[67]!==V||t[68]!==H||t[69]!==g?(j=e.jsxRuntimeExports.jsxs(G,{width:A,height:V,viewBox:H,style:g,direction:F,ref:M,children:[O,k,T]}),t[60]=G,t[61]=F,t[62]=M,t[63]=O,t[64]=k,t[65]=T,t[66]=A,t[67]=V,t[68]=H,t[69]=g,t[70]=j):j=t[70];let b;t[71]!==a?.tooltip||t[72]!==ct||t[73]!==dt||t[74]!==f||t[75]!==x?.tooltip||t[76]!==Z?(b=f&&Z&&ct&&dt?e.jsxRuntimeExports.jsx(Xt.Tooltip,{data:f,body:Z,xPos:ct,yPos:dt,backgroundStyle:x?.tooltip,className:a?.tooltip}):null,t[71]=a?.tooltip,t[72]=ct,t[73]=dt,t[74]=f,t[75]=x?.tooltip,t[76]=Z,t[77]=b):b=t[77];let p;t[78]!==a?.modal||t[79]!==q||t[80]!==$?(p=q&&$!==void 0?e.jsxRuntimeExports.jsx(zt.DetailsModal,{body:q,data:$,setData:Ct,className:a?.modal}):null,t[78]=a?.modal,t[79]=q,t[80]=$,t[81]=p):p=t[81];let et;return t[82]!==j||t[83]!==b||t[84]!==p?(et=e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[j,b,p]}),t[82]=j,t[83]=b,t[84]=p,t[85]=et):et=t[85],et}function ne(c){return!Nt.checkIfNullOrUndefined(c.value)}function le(c){const t=e.compilerRuntimeExports.c(71),{data:h,graphTitle:z,colors:R,sources:J,graphDescription:v,showColumnLabels:K,leftMargin:Q,rightMargin:mt,truncateBy:pt,height:Z,width:n,scaleType:wt,colorDomain:i,footNote:_,colorLegendTitle:y,padding:B,backgroundColor:rt,topMargin:it,bottomMargin:gt,tooltip:tt,onSeriesMouseOver:W,suffix:ft,prefix:q,showRowLabels:x,relativeHeight:a,showValues:d,graphID:nt,noDataColor:Rt,showColorScale:lt,onSeriesMouseClick:E,graphDownload:at,dataDownload:u,fillContainer:$,language:Ct,showNAColor:f,minHeight:vt,theme:ct,ariaLabel:ut,resetSelectionOnDoubleClick:dt,detailsOnClick:ht,styles:l,classNames:r,animate:G,precision:F}=c,M=K===void 0?!0:K,O=Q===void 0?100:Q,k=mt===void 0?10:mt,S=pt===void 0?999:pt,D=rt===void 0?!1:rt,L=it===void 0?30:it,N=gt===void 0?10:gt,A=ft===void 0?"":ft,V=q===void 0?"":q,H=x===void 0?!0:x,g=Rt===void 0?m.Colors.gray:Rt,T=lt===void 0?!0:lt,j=at===void 0?!1:at,b=u===void 0?!1:u,p=$===void 0?!0:$,et=Ct===void 0?"en":Ct,ot=f===void 0?!0:f,xt=vt===void 0?0:vt,s=ct===void 0?"light":ct,X=dt===void 0?!0:dt,I=G===void 0?!1:G,Y=F===void 0?2:F,[st,o]=w.useState(0),[C,P]=w.useState(0),[U,At]=w.useState(void 0),Ot=w.useRef(null),Vt=w.useRef(null);let Et,$t;t[0]===Symbol.for("react.memo_cache_sentinel")?(Et=()=>{const Ht=new ResizeObserver(Tt=>{o(Tt[0].target.clientWidth||620),P(Tt[0].target.clientHeight||480)});return Ot.current&&Ht.observe(Ot.current),()=>Ht.disconnect()},$t=[],t[0]=Et,t[1]=$t):(Et=t[0],$t=t[1]),w.useEffect(Et,$t);const qt=wt||(typeof i[0]=="string"?"categorical":i.length===2?"linear":"threshold"),kt=r?.graphContainer,St=l?.graphContainer,Dt=p?void 0:n;let yt;t[2]!==r?.description||t[3]!==r?.title||t[4]!==h||t[5]!==b||t[6]!==v||t[7]!==j||t[8]!==z||t[9]!==l?.description||t[10]!==l?.title||t[11]!==n?(yt=z||v||j||b?e.jsxRuntimeExports.jsx(_t.GraphHeader,{styles:{title:l?.title,description:l?.description},classNames:{title:r?.title,description:r?.description},graphTitle:z,graphDescription:v,width:n,graphDownload:j?Vt:void 0,dataDownload:b?h.map(xe).filter(he).length>0?h.map(de).filter(ue):h.filter(ce):null}):null,t[2]=r?.description,t[3]=r?.title,t[4]=h,t[5]=b,t[6]=v,t[7]=j,t[8]=z,t[9]=l?.description,t[10]=l?.title,t[11]=n,t[12]=yt):yt=t[12];let jt;t[13]!==I||t[14]!==N||t[15]!==r||t[16]!==i||t[17]!==y||t[18]!==R||t[19]!==h||t[20]!==ht||t[21]!==p||t[22]!==O||t[23]!==g||t[24]!==E||t[25]!==W||t[26]!==Y||t[27]!==V||t[28]!==X||t[29]!==k||t[30]!==qt||t[31]!==U||t[32]!==T||t[33]!==M||t[34]!==ot||t[35]!==H||t[36]!==d||t[37]!==l||t[38]!==A||t[39]!==C||t[40]!==st||t[41]!==s||t[42]!==tt||t[43]!==L||t[44]!==S||t[45]!==n?(jt=h.length===0?e.jsxRuntimeExports.jsx(re.EmptyState,{}):e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[T?qt==="categorical"?e.jsxRuntimeExports.jsx(ee.ColorLegendWithMouseOver,{width:p?void 0:n,colorLegendTitle:y,colors:R||(typeof i[0]=="string"?m.Colors[s].categoricalColors.colors:i.length===2?[m.Colors[s].sequentialColors.neutralColorsx09[0],m.Colors[s].sequentialColors.neutralColorsx09[8]]:m.Colors[s].sequentialColors[`neutralColorsx0${i.length+1}`]),colorDomain:i.map(ae),setSelectedColor:At,showNAColor:ot,className:r?.colorLegend}):qt==="threshold"?e.jsxRuntimeExports.jsx(se.ThresholdColorLegendWithMouseOver,{width:p?void 0:n,colorLegendTitle:y,colors:R||(typeof i[0]=="string"?m.Colors[s].categoricalColors.colors:i.length===2?[m.Colors[s].sequentialColors.neutralColorsx09[0],m.Colors[s].sequentialColors.neutralColorsx09[8]]:m.Colors[s].sequentialColors[`neutralColorsx0${i.length+1}`]),colorDomain:i,setSelectedColor:At,naColor:g,showNAColor:ot}):e.jsxRuntimeExports.jsx(oe.LinearColorLegend,{width:p?void 0:n,colorLegendTitle:y,colors:R||[m.Colors[s].sequentialColors.neutralColorsx09[0],m.Colors[s].sequentialColors.neutralColorsx09[8]],colorDomain:i,className:r?.colorLegend}):null,e.jsxRuntimeExports.jsx(Wt.GraphArea,{ref:Ot,children:st&&C?e.jsxRuntimeExports.jsx(ie,{data:h,colorDomain:i,width:p||!n||st<n?st:n,height:C,colors:R||(typeof i[0]=="string"?m.Colors[s].categoricalColors.colors:i.length===2?[m.Colors[s].sequentialColors.neutralColorsx09[0],m.Colors[s].sequentialColors.neutralColorsx09[8]]:m.Colors[s].sequentialColors[`neutralColorsx0${i.length+1}`]),noDataColor:g,scaleType:qt,showColumnLabels:M,leftMargin:O,rightMargin:k,topMargin:L,bottomMargin:N,selectedColor:U,truncateBy:S,showRowLabels:H,tooltip:tt,onSeriesMouseOver:W,showValues:d,suffix:A,prefix:V,onSeriesMouseClick:E,resetSelectionOnDoubleClick:X,detailsOnClick:ht,styles:l,classNames:r,animate:I===!0?{duration:.5,once:!0,amount:.5}:I||{duration:0,once:!0,amount:0},precision:Y}):null})]}),t[13]=I,t[14]=N,t[15]=r,t[16]=i,t[17]=y,t[18]=R,t[19]=h,t[20]=ht,t[21]=p,t[22]=O,t[23]=g,t[24]=E,t[25]=W,t[26]=Y,t[27]=V,t[28]=X,t[29]=k,t[30]=qt,t[31]=U,t[32]=T,t[33]=M,t[34]=ot,t[35]=H,t[36]=d,t[37]=l,t[38]=A,t[39]=C,t[40]=st,t[41]=s,t[42]=tt,t[43]=L,t[44]=S,t[45]=n,t[46]=jt):jt=t[46];let bt;t[47]!==r?.footnote||t[48]!==r?.source||t[49]!==_||t[50]!==J||t[51]!==l?.footnote||t[52]!==l?.source||t[53]!==n?(bt=J||_?e.jsxRuntimeExports.jsx(te.GraphFooter,{styles:{footnote:l?.footnote,source:l?.source},classNames:{footnote:r?.footnote,source:r?.source},sources:J,footNote:_,width:n}):null,t[47]=r?.footnote,t[48]=r?.source,t[49]=_,t[50]=J,t[51]=l?.footnote,t[52]=l?.source,t[53]=n,t[54]=bt):bt=t[54];let Mt;return t[55]!==ut||t[56]!==D||t[57]!==nt||t[58]!==Z||t[59]!==et||t[60]!==xt||t[61]!==B||t[62]!==a||t[63]!==kt||t[64]!==St||t[65]!==Dt||t[66]!==yt||t[67]!==jt||t[68]!==bt||t[69]!==s?(Mt=e.jsxRuntimeExports.jsxs(Wt.GraphContainer,{className:kt,style:St,id:nt,ref:Vt,"aria-label":ut,backgroundColor:D,theme:s,language:et,minHeight:xt,width:Dt,height:Z,relativeHeight:a,padding:B,children:[yt,jt,bt]}),t[55]=ut,t[56]=D,t[57]=nt,t[58]=Z,t[59]=et,t[60]=xt,t[61]=B,t[62]=a,t[63]=kt,t[64]=St,t[65]=Dt,t[66]=yt,t[67]=jt,t[68]=bt,t[69]=s,t[70]=Mt):Mt=t[70],Mt}function ae(c){return`${c}`}function ce(c){return c!==void 0}function ue(c){return c!==void 0}function de(c){return c.data}function he(c){return c!==void 0}function xe(c){return c.data}exports.HeatMap=le;
|
|
2
2
|
//# sourceMappingURL=HeatMap.cjs.map
|
package/dist/HeatMap.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeatMap.cjs","sources":["../src/Components/Graphs/HeatMap/Graph.tsx","../src/Components/Graphs/HeatMap/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand, scaleOrdinal, scaleThreshold } from 'd3-scale';\r\nimport { useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n HeatMapDataType,\r\n ScaleDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\n\r\ninterface Props {\r\n data: HeatMapDataType[];\r\n colorDomain: string[] | number[];\r\n colors: string[];\r\n noDataColor: string;\r\n scaleType: ScaleDataType;\r\n showColumnLabels: boolean;\r\n leftMargin: number;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n rightMargin: number;\r\n topMargin: number;\r\n showRowLabels: boolean;\r\n bottomMargin: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n selectedColor?: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n precision: number;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n showColumnLabels,\r\n leftMargin,\r\n rightMargin,\r\n truncateBy,\r\n width,\r\n height,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix,\r\n prefix,\r\n showValues,\r\n colorDomain,\r\n colors,\r\n noDataColor,\r\n scaleType,\r\n showRowLabels,\r\n selectedColor,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate,\r\n precision,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [mouseOverData, setMouseOverData] = useState<HeatMapDataType | undefined>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n const columns = uniqBy(data, 'column', true) as string[];\r\n const rows = uniqBy(data, 'row', true) as string[];\r\n const y = scaleBand().domain(rows).range([0, graphHeight]);\r\n const barHeight = y.bandwidth();\r\n const x = scaleBand().domain(columns).range([0, graphWidth]);\r\n const barWidth = x.bandwidth();\r\n const colorScale =\r\n scaleType === 'categorical'\r\n ? scaleOrdinal<number | string, string>().domain(colorDomain).range(colors)\r\n : scaleType === 'threshold'\r\n ? scaleThreshold<number, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors)\r\n : scaleLinear<string, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n style={{ marginLeft: 'auto', marginRight: 'auto' }}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${0})`}>\r\n {showColumnLabels\r\n ? columns.map((d, i) => (\r\n <XAxesLabels\r\n key={i}\r\n y={0}\r\n x={x(d) as number}\r\n width={barWidth}\r\n height={margin.top - 5}\r\n value={\r\n `${d}`.length < truncateBy ? `${d}` : `${`${d}`.substring(0, truncateBy)}...`\r\n }\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='bottom'\r\n animate={{ duration: 0, once: true, amount: 0 }}\r\n isInView={isInView}\r\n />\r\n ))\r\n : null}\r\n </g>\r\n <g transform={`translate(${0},${margin.top})`}>\r\n {showRowLabels\r\n ? rows.map((d, i) => (\r\n <YAxesLabels\r\n value={\r\n `${d}`.length < truncateBy ? `${d}` : `${`${d}`.substring(0, truncateBy)}...`\r\n }\r\n key={i}\r\n y={y(d) as number}\r\n x={0}\r\n width={margin.left}\r\n height={barHeight}\r\n alignment='right'\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={{ duration: 0, once: true, amount: 0 }}\r\n isInView={isInView}\r\n />\r\n ))\r\n : null}\r\n </g>\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {rows.map((d, i) => (\r\n <g key={i} transform={`translate(0,${y(d)})`}>\r\n {columns.map(el => (\r\n <rect\r\n key={`${d}-${el}`}\r\n x={x(el)}\r\n y={0}\r\n width={barWidth}\r\n height={barHeight}\r\n style={{ fill: noDataColor }}\r\n className='stroke-1 stroke-primary-white dark:stroke-primary-gray-700'\r\n />\r\n ))}\r\n </g>\r\n ))}\r\n {data\r\n .filter(d => !checkIfNullOrUndefined(d.value))\r\n .map((d, i) => {\r\n const color = !checkIfNullOrUndefined(d.value)\r\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n colorScale(d.value as any)\r\n : noDataColor;\r\n return (\r\n <g\r\n key={`${d.column}-${d.row}`}\r\n transform={`translate(${x(d.column)},${y(d.row)})`}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n opacity={selectedColor ? (selectedColor === color ? 1 : 0.3) : 1}\r\n >\r\n <motion.rect\r\n x={0}\r\n y={0}\r\n width={barWidth}\r\n height={barHeight}\r\n className='stroke-1 stroke-primary-white dark:stroke-primary-gray-700'\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { fill: color, opacity: 0 },\r\n whileInView: {\r\n fill: color,\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {showValues && !checkIfNullOrUndefined(d.value) ? (\r\n <motion.g\r\n variants={{\r\n initial: { opacity: 0 },\r\n whileInView: { opacity: 1, transition: { duration: animate.duration } },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n <foreignObject key={i} y={0} x={0} width={barWidth} height={barHeight}>\r\n <div className='flex flex-col justify-center items-center h-inherit p-1'>\r\n <p\r\n className={cn(\r\n 'text-xs text-center m-0 leading-[1.25] graph-value',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n color: getTextColorBasedOnBgColor(color),\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d.value, 'NA', precision, prefix, suffix)}\r\n </p>\r\n </div>\r\n </foreignObject>\r\n </motion.g>\r\n ) : null}\r\n </g>\r\n );\r\n })}\r\n {mouseOverData ? (\r\n <rect\r\n x={x(mouseOverData.column)}\r\n y={y(mouseOverData.row)}\r\n width={barWidth}\r\n height={barHeight}\r\n style={{\r\n fill: 'none',\r\n fillOpacity: 0,\r\n strokeWidth: 1.5,\r\n }}\r\n className='stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n />\r\n ) : null}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <Modal\r\n open={mouseClickData !== undefined}\r\n onClose={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n >\r\n <div\r\n className='graph-modal-content m-0'\r\n dangerouslySetInnerHTML={\r\n typeof detailsOnClick === 'string'\r\n ? { __html: string2HTML(detailsOnClick, mouseClickData) }\r\n : undefined\r\n }\r\n >\r\n {typeof detailsOnClick === 'function' ? detailsOnClick(mouseClickData) : null}\r\n </div>\r\n </Modal>\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport {\r\n HeatMapDataType,\r\n Languages,\r\n ScaleDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { LinearColorLegend } from '@/Components/Elements/LinearColorLegend';\r\nimport { ThresholdColorLegendWithMouseOver } from '@/Components/Elements/ThresholdColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: HeatMapDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for cells */\r\n colors?: string[];\r\n /** Color where data is not available */\r\n noDataColor?: string;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Toggles the background to fill the container. This only works if the width of the graph is defined. */\r\n fillContainer?: boolean;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels in the column */\r\n showColumnLabels?: boolean;\r\n /** Toggle visibility of labels in the row */\r\n showRowLabels?: boolean;\r\n /** Scale for the colors in the cell */\r\n scaleType?: ScaleDataType;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Domain for the colors in the cell. */\r\n colorDomain: number[] | string[];\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function HeatMap(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n showColumnLabels = true,\r\n leftMargin = 100,\r\n rightMargin = 10,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n scaleType,\r\n colorDomain,\r\n footNote,\r\n colorLegendTitle,\r\n padding,\r\n backgroundColor = false,\r\n topMargin = 30,\r\n bottomMargin = 10,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix = '',\r\n prefix = '',\r\n showRowLabels = true,\r\n relativeHeight,\r\n showValues,\r\n graphID,\r\n noDataColor = Colors.gray,\r\n showColorScale = true,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n fillContainer = true,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n const scale =\r\n scaleType ||\r\n (typeof colorDomain[0] === 'string'\r\n ? 'categorical'\r\n : colorDomain.length === 2\r\n ? 'linear'\r\n : 'threshold');\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={fillContainer ? undefined : width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {showColorScale ? (\r\n scale === 'categorical' ? (\r\n <ColorLegendWithMouseOver\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n colorDomain={colorDomain.map(d => `${d}`)}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : scale === 'threshold' ? (\r\n <ThresholdColorLegendWithMouseOver\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n colorDomain={colorDomain as number[]}\r\n setSelectedColor={setSelectedColor}\r\n naColor={noDataColor}\r\n showNAColor={showNAColor}\r\n />\r\n ) : (\r\n <LinearColorLegend\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors || [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n }\r\n colorDomain={colorDomain as number[]}\r\n className={classNames?.colorLegend}\r\n />\r\n )\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight ? (\r\n <Graph\r\n data={data}\r\n colorDomain={colorDomain}\r\n width={fillContainer || !width ? svgWidth : svgWidth < width ? svgWidth : width}\r\n height={svgHeight}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n noDataColor={noDataColor}\r\n scaleType={scale}\r\n showColumnLabels={showColumnLabels}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n selectedColor={selectedColor}\r\n truncateBy={truncateBy}\r\n showRowLabels={showRowLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showValues={showValues}\r\n suffix={suffix}\r\n prefix={prefix}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n styles={styles}\r\n classNames={classNames}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </>\r\n )}\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["Graph","props","$","_c","data","showColumnLabels","leftMargin","rightMargin","truncateBy","width","height","topMargin","bottomMargin","tooltip","onSeriesMouseOver","suffix","prefix","showValues","colorDomain","colors","noDataColor","scaleType","showRowLabels","selectedColor","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","animate","precision","svgRef","useRef","t0","amount","once","isInView","useInView","t1","top","bottom","left","right","margin","mouseClickData","setMouseClickData","useState","undefined","mouseOverData","setMouseOverData","eventX","setEventX","eventY","setEventY","graphWidth","graphHeight","T0","t10","t11","t12","t13","t2","t3","t4","t5","t6","t7","t8","t9","duration","graphObjectValues","xAxis","labels","yAxis","columns","uniqBy","rows","y","scaleBand","domain","range","barHeight","bandwidth","x","barWidth","colorScale","scaleOrdinal","scaleThreshold","scaleLinear","motion","svg","Symbol","for","marginLeft","marginRight","jsx","map","d","i","XAxesLabels","length","substring","d_0","i_0","YAxesLabels","d_1","i_1","el","fill","filter","_temp","d_3","i_2","color","checkIfNullOrUndefined","value","jsxs","column","row","event","clientY","clientX","isEqual","event_0","opacity","transition","initial","whileInView","cn","getTextColorBasedOnBgColor","numberFormattingFunction","fillOpacity","strokeWidth","t14","t15","t16","Tooltip","t17","Modal","__html","string2HTML","t18","Fragment","d_2","HeatMap","graphTitle","sources","graphDescription","footNote","colorLegendTitle","padding","backgroundColor","relativeHeight","graphID","showColorScale","graphDownload","dataDownload","fillContainer","language","showNAColor","minHeight","theme","ariaLabel","t19","t20","t21","Colors","gray","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","t22","t23","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","scale","t24","graphContainer","t25","t26","t27","description","title","GraphHeader","_temp2","_temp3","_temp4","_temp5","t28","EmptyState","ColorLegendWithMouseOver","categoricalColors","sequentialColors","neutralColorsx09","_temp6","colorLegend","ThresholdColorLegendWithMouseOver","LinearColorLegend","GraphArea","t29","footnote","source","GraphFooter","t30","GraphContainer","d_4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HeatMap.cjs","sources":["../src/Components/Graphs/HeatMap/Graph.tsx","../src/Components/Graphs/HeatMap/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand, scaleOrdinal, scaleThreshold } from 'd3-scale';\r\nimport { useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n HeatMapDataType,\r\n ScaleDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: HeatMapDataType[];\r\n colorDomain: string[] | number[];\r\n colors: string[];\r\n noDataColor: string;\r\n scaleType: ScaleDataType;\r\n showColumnLabels: boolean;\r\n leftMargin: number;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n rightMargin: number;\r\n topMargin: number;\r\n showRowLabels: boolean;\r\n bottomMargin: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n selectedColor?: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n precision: number;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n showColumnLabels,\r\n leftMargin,\r\n rightMargin,\r\n truncateBy,\r\n width,\r\n height,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix,\r\n prefix,\r\n showValues,\r\n colorDomain,\r\n colors,\r\n noDataColor,\r\n scaleType,\r\n showRowLabels,\r\n selectedColor,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate,\r\n precision,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [mouseOverData, setMouseOverData] = useState<HeatMapDataType | undefined>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n const columns = uniqBy(data, 'column', true) as string[];\r\n const rows = uniqBy(data, 'row', true) as string[];\r\n const y = scaleBand().domain(rows).range([0, graphHeight]);\r\n const barHeight = y.bandwidth();\r\n const x = scaleBand().domain(columns).range([0, graphWidth]);\r\n const barWidth = x.bandwidth();\r\n const colorScale =\r\n scaleType === 'categorical'\r\n ? scaleOrdinal<number | string, string>().domain(colorDomain).range(colors)\r\n : scaleType === 'threshold'\r\n ? scaleThreshold<number, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors)\r\n : scaleLinear<string, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n style={{ marginLeft: 'auto', marginRight: 'auto' }}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${0})`}>\r\n {showColumnLabels\r\n ? columns.map((d, i) => (\r\n <XAxesLabels\r\n key={i}\r\n y={0}\r\n x={x(d) as number}\r\n width={barWidth}\r\n height={margin.top - 5}\r\n value={\r\n `${d}`.length < truncateBy ? `${d}` : `${`${d}`.substring(0, truncateBy)}...`\r\n }\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='bottom'\r\n animate={{ duration: 0, once: true, amount: 0 }}\r\n isInView={isInView}\r\n />\r\n ))\r\n : null}\r\n </g>\r\n <g transform={`translate(${0},${margin.top})`}>\r\n {showRowLabels\r\n ? rows.map((d, i) => (\r\n <YAxesLabels\r\n value={\r\n `${d}`.length < truncateBy ? `${d}` : `${`${d}`.substring(0, truncateBy)}...`\r\n }\r\n key={i}\r\n y={y(d) as number}\r\n x={0}\r\n width={margin.left}\r\n height={barHeight}\r\n alignment='right'\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={{ duration: 0, once: true, amount: 0 }}\r\n isInView={isInView}\r\n />\r\n ))\r\n : null}\r\n </g>\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {rows.map((d, i) => (\r\n <g key={i} transform={`translate(0,${y(d)})`}>\r\n {columns.map(el => (\r\n <rect\r\n key={`${d}-${el}`}\r\n x={x(el)}\r\n y={0}\r\n width={barWidth}\r\n height={barHeight}\r\n style={{ fill: noDataColor }}\r\n className='stroke-1 stroke-primary-white dark:stroke-primary-gray-700'\r\n />\r\n ))}\r\n </g>\r\n ))}\r\n {data\r\n .filter(d => !checkIfNullOrUndefined(d.value))\r\n .map((d, i) => {\r\n const color = !checkIfNullOrUndefined(d.value)\r\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n colorScale(d.value as any)\r\n : noDataColor;\r\n return (\r\n <g\r\n key={`${d.column}-${d.row}`}\r\n transform={`translate(${x(d.column)},${y(d.row)})`}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n opacity={selectedColor ? (selectedColor === color ? 1 : 0.3) : 1}\r\n >\r\n <motion.rect\r\n x={0}\r\n y={0}\r\n width={barWidth}\r\n height={barHeight}\r\n className='stroke-1 stroke-primary-white dark:stroke-primary-gray-700'\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { fill: color, opacity: 0 },\r\n whileInView: {\r\n fill: color,\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {showValues && !checkIfNullOrUndefined(d.value) ? (\r\n <motion.g\r\n variants={{\r\n initial: { opacity: 0 },\r\n whileInView: { opacity: 1, transition: { duration: animate.duration } },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n <foreignObject key={i} y={0} x={0} width={barWidth} height={barHeight}>\r\n <div className='flex flex-col justify-center items-center h-inherit p-1'>\r\n <p\r\n className={cn(\r\n 'text-xs text-center m-0 leading-[1.25] graph-value',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n color: getTextColorBasedOnBgColor(color),\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d.value, 'NA', precision, prefix, suffix)}\r\n </p>\r\n </div>\r\n </foreignObject>\r\n </motion.g>\r\n ) : null}\r\n </g>\r\n );\r\n })}\r\n {mouseOverData ? (\r\n <rect\r\n x={x(mouseOverData.column)}\r\n y={y(mouseOverData.row)}\r\n width={barWidth}\r\n height={barHeight}\r\n style={{\r\n fill: 'none',\r\n fillOpacity: 0,\r\n strokeWidth: 1.5,\r\n }}\r\n className='stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n />\r\n ) : null}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport {\r\n HeatMapDataType,\r\n Languages,\r\n ScaleDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { LinearColorLegend } from '@/Components/Elements/LinearColorLegend';\r\nimport { ThresholdColorLegendWithMouseOver } from '@/Components/Elements/ThresholdColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: HeatMapDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for cells */\r\n colors?: string[];\r\n /** Color where data is not available */\r\n noDataColor?: string;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Toggles the background to fill the container. This only works if the width of the graph is defined. */\r\n fillContainer?: boolean;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels in the column */\r\n showColumnLabels?: boolean;\r\n /** Toggle visibility of labels in the row */\r\n showRowLabels?: boolean;\r\n /** Scale for the colors in the cell */\r\n scaleType?: ScaleDataType;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Domain for the colors in the cell. */\r\n colorDomain: number[] | string[];\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function HeatMap(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n showColumnLabels = true,\r\n leftMargin = 100,\r\n rightMargin = 10,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n scaleType,\r\n colorDomain,\r\n footNote,\r\n colorLegendTitle,\r\n padding,\r\n backgroundColor = false,\r\n topMargin = 30,\r\n bottomMargin = 10,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix = '',\r\n prefix = '',\r\n showRowLabels = true,\r\n relativeHeight,\r\n showValues,\r\n graphID,\r\n noDataColor = Colors.gray,\r\n showColorScale = true,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n fillContainer = true,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n const scale =\r\n scaleType ||\r\n (typeof colorDomain[0] === 'string'\r\n ? 'categorical'\r\n : colorDomain.length === 2\r\n ? 'linear'\r\n : 'threshold');\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={fillContainer ? undefined : width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {showColorScale ? (\r\n scale === 'categorical' ? (\r\n <ColorLegendWithMouseOver\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n colorDomain={colorDomain.map(d => `${d}`)}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : scale === 'threshold' ? (\r\n <ThresholdColorLegendWithMouseOver\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n colorDomain={colorDomain as number[]}\r\n setSelectedColor={setSelectedColor}\r\n naColor={noDataColor}\r\n showNAColor={showNAColor}\r\n />\r\n ) : (\r\n <LinearColorLegend\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors || [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n }\r\n colorDomain={colorDomain as number[]}\r\n className={classNames?.colorLegend}\r\n />\r\n )\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight ? (\r\n <Graph\r\n data={data}\r\n colorDomain={colorDomain}\r\n width={fillContainer || !width ? svgWidth : svgWidth < width ? svgWidth : width}\r\n height={svgHeight}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n noDataColor={noDataColor}\r\n scaleType={scale}\r\n showColumnLabels={showColumnLabels}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n selectedColor={selectedColor}\r\n truncateBy={truncateBy}\r\n showRowLabels={showRowLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showValues={showValues}\r\n suffix={suffix}\r\n prefix={prefix}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n styles={styles}\r\n classNames={classNames}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </>\r\n )}\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["Graph","props","$","_c","data","showColumnLabels","leftMargin","rightMargin","truncateBy","width","height","topMargin","bottomMargin","tooltip","onSeriesMouseOver","suffix","prefix","showValues","colorDomain","colors","noDataColor","scaleType","showRowLabels","selectedColor","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","animate","precision","svgRef","useRef","t0","amount","once","isInView","useInView","t1","top","bottom","left","right","margin","mouseClickData","setMouseClickData","useState","undefined","mouseOverData","setMouseOverData","eventX","setEventX","eventY","setEventY","graphWidth","graphHeight","T0","t10","t11","t12","t13","t2","t3","t4","t5","t6","t7","t8","t9","duration","graphObjectValues","xAxis","labels","yAxis","columns","uniqBy","rows","y","scaleBand","domain","range","barHeight","bandwidth","x","barWidth","colorScale","scaleOrdinal","scaleThreshold","scaleLinear","motion","svg","Symbol","for","marginLeft","marginRight","jsx","map","d","i","XAxesLabels","length","substring","d_0","i_0","YAxesLabels","d_1","i_1","el","fill","filter","_temp","d_3","i_2","color","checkIfNullOrUndefined","value","jsxs","column","row","event","clientY","clientX","isEqual","event_0","opacity","transition","initial","whileInView","cn","getTextColorBasedOnBgColor","numberFormattingFunction","fillOpacity","strokeWidth","t14","t15","t16","Tooltip","t17","modal","DetailsModal","t18","Fragment","d_2","HeatMap","graphTitle","sources","graphDescription","footNote","colorLegendTitle","padding","backgroundColor","relativeHeight","graphID","showColorScale","graphDownload","dataDownload","fillContainer","language","showNAColor","minHeight","theme","ariaLabel","t19","t20","t21","Colors","gray","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","t22","t23","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","scale","t24","graphContainer","t25","t26","t27","description","title","GraphHeader","_temp2","_temp3","_temp4","_temp5","t28","EmptyState","ColorLegendWithMouseOver","categoricalColors","sequentialColors","neutralColorsx09","_temp6","colorLegend","ThresholdColorLegendWithMouseOver","LinearColorLegend","GraphArea","t29","footnote","source","GraphFooter","t30","GraphContainer","d_4"],"mappings":"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"}
|
package/dist/HeatMap.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ declare interface ClassNameObject {
|
|
|
36
36
|
regLine?: string;
|
|
37
37
|
dataCards?: string;
|
|
38
38
|
colorLegend?: string;
|
|
39
|
+
modal?: string;
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
export declare function HeatMap(props: Props): JSX.Element;
|
|
@@ -162,6 +163,7 @@ declare interface StyleObject {
|
|
|
162
163
|
mouseOverLine?: React.CSSProperties;
|
|
163
164
|
regLine?: React.CSSProperties;
|
|
164
165
|
dataCards?: React.CSSProperties;
|
|
166
|
+
modal?: React.CSSProperties;
|
|
165
167
|
}
|
|
166
168
|
|
|
167
169
|
export { }
|