@undp/data-viz 1.4.1 → 1.4.3
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.js +21 -21
- package/dist/BarGraph.cjs +1 -1
- package/dist/BarGraph.js +7 -7
- package/dist/BeeSwarmChart.cjs +1 -1
- package/dist/BeeSwarmChart.js +2 -2
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.js +5 -5
- package/dist/BulletChart.cjs +1 -1
- package/dist/BulletChart.js +14 -14
- package/dist/ButterflyChart.cjs +1 -1
- package/dist/ButterflyChart.js +9 -9
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.js +9 -9
- package/dist/CirclePackingGraph.cjs +1 -1
- package/dist/CirclePackingGraph.js +1 -1
- package/dist/CopyTextButton.cjs +7 -7
- package/dist/CopyTextButton.cjs.map +1 -1
- package/dist/CopyTextButton.js +4 -4
- package/dist/CopyTextButton.js.map +1 -1
- package/dist/DataCards.cjs +9 -9
- package/dist/DataCards.cjs.map +1 -1
- package/dist/DataCards.js +93 -93
- package/dist/DataCards.js.map +1 -1
- package/dist/DifferenceLineChart.cjs +1 -1
- package/dist/DifferenceLineChart.js +18 -18
- package/dist/DonutChart.cjs +1 -1
- package/dist/DonutChart.js +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.js +8 -8
- package/dist/{DropdownSelect-0I2QxaVy.cjs → DropdownSelect-BmE5JaeE.cjs} +6 -6
- package/dist/{DropdownSelect-0I2QxaVy.cjs.map → DropdownSelect-BmE5JaeE.cjs.map} +1 -1
- package/dist/{DropdownSelect-CDC9lEqU.js → DropdownSelect-CeHog_ih.js} +4 -4
- package/dist/{DropdownSelect-CDC9lEqU.js.map → DropdownSelect-CeHog_ih.js.map} +1 -1
- package/dist/DualAxisLineChart.cjs +1 -1
- package/dist/DualAxisLineChart.js +15 -15
- package/dist/DumbbellChart.cjs +1 -1
- package/dist/DumbbellChart.js +13 -13
- package/dist/GeoHubMap.cjs +1 -1
- package/dist/GeoHubMap.js +2 -2
- package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
- package/dist/GeoHubMapWithLayerSelection.js +2 -2
- package/dist/{GraphEl-B6SoGRFW.cjs → GraphEl-B5gAX1IQ.cjs} +2 -2
- package/dist/{GraphEl-B6SoGRFW.cjs.map → GraphEl-B5gAX1IQ.cjs.map} +1 -1
- package/dist/{GraphEl-Cw2tDUb3.js → GraphEl-BdIyscdt.js} +3 -3
- package/dist/{GraphEl-Cw2tDUb3.js.map → GraphEl-BdIyscdt.js.map} +1 -1
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.d.ts +4 -7
- package/dist/GriddedGraphs.js +4 -4
- package/dist/GriddedGraphsFromConfig.cjs +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +4 -7
- package/dist/GriddedGraphsFromConfig.js +1 -1
- package/dist/HeatMap.cjs +1 -1
- package/dist/HeatMap.js +10 -10
- package/dist/Histogram.cjs +1 -1
- package/dist/Histogram.js +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs +1 -1
- package/dist/LineChartWithConfidenceInterval.js +21 -21
- package/dist/{Modal-CUU6ZK3U.js → Modal-DVVwpKhP.js} +2 -2
- package/dist/{Modal-CUU6ZK3U.js.map → Modal-DVVwpKhP.js.map} +1 -1
- package/dist/{Modal-C_dl0EtQ.cjs → Modal-tXZlLE5s.cjs} +4 -4
- package/dist/{Modal-C_dl0EtQ.cjs.map → Modal-tXZlLE5s.cjs.map} +1 -1
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.d.ts +4 -7
- package/dist/MultiGraphDashboard.js +3 -3
- package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
- package/dist/MultiGraphDashboardFromConfig.d.ts +4 -7
- package/dist/MultiGraphDashboardFromConfig.js +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.js +3 -3
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +1 -1
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.js +21 -21
- package/dist/MultiLineChart.cjs +1 -1
- package/dist/MultiLineChart.js +19 -19
- package/dist/ParetoChart.cjs +1 -1
- package/dist/ParetoChart.js +12 -12
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +4 -7
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +3 -3
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +4 -7
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +1 -1
- package/dist/PerformanceIntensiveScrollStory.cjs +1 -1
- package/dist/PerformanceIntensiveScrollStory.d.ts +4 -7
- package/dist/PerformanceIntensiveScrollStory.js +2 -2
- package/dist/RadarChart.cjs +1 -1
- package/dist/RadarChart.js +8 -8
- package/dist/{ReferenceLine-CuFMk0cI.cjs → ReferenceLine-CFVBBN__.cjs} +2 -2
- package/dist/{ReferenceLine-CuFMk0cI.cjs.map → ReferenceLine-CFVBBN__.cjs.map} +1 -1
- package/dist/{ReferenceLine-C1GpoG9d.js → ReferenceLine-CfAW3vKJ.js} +2 -2
- package/dist/{ReferenceLine-C1GpoG9d.js.map → ReferenceLine-CfAW3vKJ.js.map} +1 -1
- package/dist/{RegressionLine-BFwDCTUU.js → RegressionLine-mH7UKOPi.js} +3 -3
- package/dist/{RegressionLine-BFwDCTUU.js.map → RegressionLine-mH7UKOPi.js.map} +1 -1
- package/dist/{RegressionLine-7_rKTHN_.cjs → RegressionLine-xKdiJ8sw.cjs} +2 -2
- package/dist/{RegressionLine-7_rKTHN_.cjs.map → RegressionLine-xKdiJ8sw.cjs.map} +1 -1
- package/dist/SankeyChart.cjs +1 -1
- package/dist/SankeyChart.js +4 -4
- package/dist/ScatterPlot.cjs +1 -1
- package/dist/ScatterPlot.js +13 -13
- package/dist/ScrollStory.cjs +1 -1
- package/dist/ScrollStory.d.ts +4 -7
- package/dist/ScrollStory.js +2 -2
- package/dist/SimpleLineChart.cjs +1 -1
- package/dist/SimpleLineChart.js +20 -20
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.d.ts +4 -7
- package/dist/SingleGraphDashboard.js +4 -4
- package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +4 -7
- package/dist/SingleGraphDashboardFromConfig.js +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +4 -7
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +4 -7
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +4 -7
- package/dist/SingleGraphDashboardThreeDGraphs.js +30 -27
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +4 -7
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +1 -1
- package/dist/SlopeChart.cjs +1 -1
- package/dist/SlopeChart.js +7 -7
- package/dist/StripChart.cjs +1 -1
- package/dist/StripChart.js +9 -9
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.d.ts +11 -2
- package/dist/ThreeDGlobe.js +278 -253
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/TreeMapGraph.cjs +1 -1
- package/dist/TreeMapGraph.js +4 -4
- package/dist/Types.d.ts +4 -7
- package/dist/UnitChart.cjs +1 -1
- package/dist/UnitChart.js +3 -3
- package/dist/{XAxesLabels-DQFo_z2R.js → XAxesLabels-CaV2q-6H.js} +2 -2
- package/dist/{XAxesLabels-DQFo_z2R.js.map → XAxesLabels-CaV2q-6H.js.map} +1 -1
- package/dist/{XAxesLabels-CJMQbfVy.cjs → XAxesLabels-OjBNl_lS.cjs} +2 -2
- package/dist/{XAxesLabels-CJMQbfVy.cjs.map → XAxesLabels-OjBNl_lS.cjs.map} +1 -1
- package/dist/{YAxesLabels-H5-002X5.js → YAxesLabels-CPGZjmZJ.js} +2 -2
- package/dist/{YAxesLabels-H5-002X5.js.map → YAxesLabels-CPGZjmZJ.js.map} +1 -1
- package/dist/{YAxesLabels-BXLTX7AI.cjs → YAxesLabels-D8IydyZj.cjs} +2 -2
- package/dist/{YAxesLabels-BXLTX7AI.cjs.map → YAxesLabels-D8IydyZj.cjs.map} +1 -1
- package/dist/{checkIfMultiple-Do4kADNr.cjs → checkIfMultiple-BXbHUCWM.cjs} +6 -6
- package/dist/{checkIfMultiple-Do4kADNr.cjs.map → checkIfMultiple-BXbHUCWM.cjs.map} +1 -1
- package/dist/{checkIfMultiple-CYp3vADF.js → checkIfMultiple-ChTJk2Tk.js} +5 -5
- package/dist/{checkIfMultiple-CYp3vADF.js.map → checkIfMultiple-ChTJk2Tk.js.map} +1 -1
- package/dist/{customArea-CaxScFmW.js → customArea-B-dWU0zZ.js} +2 -2
- package/dist/{customArea-CaxScFmW.js.map → customArea-B-dWU0zZ.js.map} +1 -1
- package/dist/{customArea-BYNyxAkm.cjs → customArea-CK768gCn.cjs} +2 -2
- package/dist/{customArea-BYNyxAkm.cjs.map → customArea-CK768gCn.cjs.map} +1 -1
- package/dist/{fetchAndParseData-Bcmr659B.js → fetchAndParseData-4gsYTy6_.js} +3 -3
- package/dist/fetchAndParseData-4gsYTy6_.js.map +1 -0
- package/dist/{fetchAndParseData-DmgQtB9n.cjs → fetchAndParseData-CQyVGCul.cjs} +6 -6
- package/dist/fetchAndParseData-CQyVGCul.cjs.map +1 -0
- package/dist/fetchAndParseData.cjs +1 -1
- package/dist/fetchAndParseData.js +1 -1
- package/dist/index-BW8iNx7E.cjs +10 -0
- package/dist/index-BW8iNx7E.cjs.map +1 -0
- package/dist/index-CNvov0eg.js +122 -0
- package/dist/index-CNvov0eg.js.map +1 -0
- package/dist/{index-D_n8aamX.cjs → index-CZLvTu6p.cjs} +2 -2
- package/dist/{index-D_n8aamX.cjs.map → index-CZLvTu6p.cjs.map} +1 -1
- package/dist/{index-n_RI8T0n.js → index-Cdcfp4nk.js} +2 -2
- package/dist/{index-n_RI8T0n.js.map → index-Cdcfp4nk.js.map} +1 -1
- package/dist/{index-BVnYktl4.js → index-DGAaLNu9.js} +2 -2
- package/dist/{index-BVnYktl4.js.map → index-DGAaLNu9.js.map} +1 -1
- package/dist/{index-CylX-pWB.cjs → index-DNj994Pv.cjs} +2 -2
- package/dist/{index-CylX-pWB.cjs.map → index-DNj994Pv.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +15 -9
- package/dist/index.js +3 -3
- package/dist/proxy-BHRoeZgd.cjs +2 -0
- package/dist/proxy-BHRoeZgd.cjs.map +1 -0
- package/dist/{proxy-DJxJg1kD.js → proxy-CkpFesk1.js} +4123 -4075
- package/dist/proxy-CkpFesk1.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/transformData.cjs +1 -1
- package/dist/transformData.js +2 -2
- package/dist/{transformDataForGraphFromFile-D9G3ToQf.cjs → transformDataForGraphFromFile-B1A0AS-Z.cjs} +2 -2
- package/dist/{transformDataForGraphFromFile-D9G3ToQf.cjs.map → transformDataForGraphFromFile-B1A0AS-Z.cjs.map} +1 -1
- package/dist/{transformDataForGraphFromFile-CA0rw80A.js → transformDataForGraphFromFile-BCjsizvb.js} +2 -2
- package/dist/{transformDataForGraphFromFile-CA0rw80A.js.map → transformDataForGraphFromFile-BCjsizvb.js.map} +1 -1
- package/dist/{use-in-view-BCmzDU2O.cjs → use-in-view-sQJZ_xDO.cjs} +2 -2
- package/dist/use-in-view-sQJZ_xDO.cjs.map +1 -0
- package/dist/{use-in-view-BAHrBy6b.js → use-in-view-yS6jzJAp.js} +2 -2
- package/dist/use-in-view-yS6jzJAp.js.map +1 -0
- package/dist/x-BBpi7a_7-Dz2vKSfu.cjs +27 -0
- package/dist/x-BBpi7a_7-Dz2vKSfu.cjs.map +1 -0
- package/dist/x-BBpi7a_7-WVdj1j6r.js +106 -0
- package/dist/x-BBpi7a_7-WVdj1j6r.js.map +1 -0
- package/package.json +50 -51
- package/dist/fetchAndParseData-Bcmr659B.js.map +0 -1
- package/dist/fetchAndParseData-DmgQtB9n.cjs.map +0 -1
- package/dist/index-BxAUvrua.js +0 -120
- package/dist/index-BxAUvrua.js.map +0 -1
- package/dist/index-DVOJ7vxH.cjs +0 -10
- package/dist/index-DVOJ7vxH.cjs.map +0 -1
- package/dist/proxy-DJxJg1kD.js.map +0 -1
- package/dist/proxy-PQd2AItT.cjs +0 -2
- package/dist/proxy-PQd2AItT.cjs.map +0 -1
- package/dist/use-in-view-BAHrBy6b.js.map +0 -1
- package/dist/use-in-view-BCmzDU2O.cjs.map +0 -1
- package/dist/x-CnsEH4Ox-CGGXQl4M.cjs +0 -27
- package/dist/x-CnsEH4Ox-CGGXQl4M.cjs.map +0 -1
- package/dist/x-CnsEH4Ox-DDvAJndW.js +0 -101
- package/dist/x-CnsEH4Ox-DDvAJndW.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleGraphDashboardThreeDGraphs.js","sources":["../src/Components/Dashboard/PerformanceIntensive/ThreeDGraphEl.tsx","../src/Components/Dashboard/PerformanceIntensive/SingleGraphDashboardThreeDGraphs.tsx"],"sourcesContent":["import { P } from '@undp/design-system-react/Typography';\r\n\r\nimport { ThreeDGlobe } from '../../Graphs/Maps/ThreeDGlobe';\r\n\r\nimport { getValues } from '@/Utils/getValues';\r\nimport { GraphConfigurationDataType, GraphSettingsDataType, ThreeDGraphType } from '@/Types';\r\n\r\ninterface Props {\r\n graph: ThreeDGraphType;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n graphData: any;\r\n settings?: GraphSettingsDataType;\r\n debugMode?: boolean;\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n readableHeader: {\r\n value: string;\r\n label: string;\r\n }[];\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nfunction ThreeDGraphEl(props: Props) {\r\n const {\r\n settings,\r\n graph,\r\n graphData,\r\n debugMode,\r\n graphDataConfiguration,\r\n readableHeader,\r\n updateFilters,\r\n } = props;\r\n if (debugMode) {\r\n // eslint-disable-next-line no-console\r\n console.log(`Graph: ${graph}`);\r\n // eslint-disable-next-line no-console\r\n console.log('Transformed data:', graphData);\r\n // eslint-disable-next-line no-console\r\n console.log('Settings:', settings);\r\n }\r\n if (typeof graphData === 'string')\r\n return (\r\n <div\r\n className={`flex my-0 mx-auto grow flex-col justify-center ${\r\n settings?.width ? 'w-fit' : 'w-full'\r\n }`}\r\n style={{ height: 'inherit' }}\r\n >\r\n <P\r\n size='sm'\r\n marginBottom='none'\r\n className='p-2 text-center text-accent-dark-red dark:text-accent-red'\r\n >\r\n {graphData}\r\n </P>\r\n </div>\r\n );\r\n const graphComponents: Record<ThreeDGraphType, React.ElementType | null> = {\r\n threeDGlobe: ThreeDGlobe,\r\n };\r\n const getGraphProps = (graphType: ThreeDGraphType) => {\r\n switch (graphType) {\r\n case 'threeDGlobe':\r\n return {\r\n globeOffset: settings?.globeOffset,\r\n polygonAltitude: settings?.polygonAltitude,\r\n highlightedIds: settings?.highlightedIds,\r\n scale: settings?.scale,\r\n theme: settings?.theme,\r\n resetSelectionOnDoubleClick: settings?.resetSelectionOnDoubleClick,\r\n graphTitle: settings?.graphTitle,\r\n mapData: settings?.mapData,\r\n graphDescription: settings?.graphDescription,\r\n footNote: settings?.footNote,\r\n width: settings?.width,\r\n height: settings?.height,\r\n sources: settings?.sources,\r\n colorDomain: settings?.colorDomain as string[] | number[],\r\n colors: settings?.colors as string[] | undefined,\r\n colorLegendTitle:\r\n Object.keys(settings || {}).indexOf('colorLegendTitle') !== -1\r\n ? settings?.colorLegendTitle\r\n : getValues('x', graphDataConfiguration || [], readableHeader || []),\r\n scaleType: settings?.scaleType,\r\n data: graphData,\r\n centerPoint: settings?.centerPoint,\r\n backgroundColor: settings?.backgroundColor,\r\n mapNoDataColor: settings?.mapNoDataColor,\r\n mapBorderColor: settings?.mapBorderColor,\r\n relativeHeight: settings?.relativeHeight,\r\n padding: settings?.padding,\r\n tooltip: settings?.tooltip,\r\n showColorScale: settings?.showColorScale,\r\n graphID: settings?.graphID,\r\n dataDownload: settings?.dataDownload,\r\n mapProperty: settings?.mapProperty,\r\n language: settings?.language,\r\n minHeight: settings?.minHeight,\r\n ariaLabel: settings?.ariaLabel,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick: (el: any) => {\r\n updateFilters?.(el.id);\r\n },\r\n detailsOnClick: settings?.detailsOnClick,\r\n styles: settings?.styles,\r\n classNames: settings?.classNames,\r\n categorical: settings?.categorical,\r\n autoRotate: settings?.autoRotate,\r\n globeMaterial: settings?.globeMaterial,\r\n atmosphereColor: settings?.atmosphereColor,\r\n enableZoom: settings?.enableZoom,\r\n };\r\n default:\r\n return {};\r\n }\r\n };\r\n const GraphComponent = graphComponents[graph];\r\n const graphProps = getGraphProps(graph);\r\n return (\r\n <div\r\n className={`grow my-0 mx-auto flex flex-col h-inherit ${settings?.width ? 'w-fit' : 'w-full'} justify-center ${settings?.theme || 'light'}`}\r\n style={{ minHeight: 'inherit' }}\r\n >\r\n {GraphComponent ? (\r\n <GraphComponent {...graphProps} />\r\n ) : (\r\n <P\r\n size='sm'\r\n marginBottom='none'\r\n className='p-2 text-center text-accent-dark-red dark:text-accent-red'\r\n >\r\n {`Invalid chart type: ${graph}`}\r\n </P>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ThreeDGraphEl;\r\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { P } from '@undp/design-system-react/Typography';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport ThreeDGraphEl from './ThreeDGraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n HighlightDataPointSettingsDataType,\r\n ThreeDGraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { graphList } from '@/Utils/getGraphList';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n graphSettings?: GraphSettingsDataType;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n highlightDataPointSettings?: HighlightDataPointSettingsDataType;\r\n noOfFiltersPerRow?: number;\r\n graphType: ThreeDGraphType;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n debugMode?: boolean;\r\n uiMode?: 'light' | 'normal';\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nconst getGraphSettings = (\r\n dataSelectionOptions: DataSelectionDataType[],\r\n updatedConfig?: GraphConfigurationDataType[],\r\n) => {\r\n const updatedSettings =\r\n updatedConfig?.map(c => {\r\n const indx = dataSelectionOptions?.findIndex(opt => opt.chartConfigId === c.chartConfigId);\r\n if (indx === -1) return {};\r\n const allowedValIndx = dataSelectionOptions[indx]?.allowedColumnIds?.findIndex(\r\n col => col.value === c.columnId,\r\n );\r\n if (allowedValIndx === -1) return {};\r\n return dataSelectionOptions[indx].allowedColumnIds[allowedValIndx].graphSettings || {};\r\n }) || [];\r\n return Object.assign({}, ...updatedSettings);\r\n};\r\n\r\nexport function SingleGraphDashboardThreeDGraphs(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n dataFilters,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n updateFilters,\r\n uiMode = 'normal',\r\n highlightDataPointSettings,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [dataFromFile, setDataFromFile] = useState<any>(undefined);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n const [highlightedDataPointList, setHighlightedDataPointList] = useState<\r\n (string | number)[] | undefined\r\n >(undefined);\r\n const [highlightedDataPointOptions, setHighlightedDataPointOption] = useState<\r\n { label: string | number; value: string | number }[]\r\n >([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n const prevGraphDataConfigRef = useRef<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n const fetchDataHandler = useCallback(async () => {\r\n try {\r\n const fetchData = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : fetchAndParseMultipleDataSources(dataSettings.dataURL, dataSettings.idColumnTitle)\r\n : transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n\r\n const d = await fetchData;\r\n setDataFromFile(d);\r\n\r\n // Optimize filter settings generation\r\n const newFilterSettings = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(d, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n\r\n setFilterSettings(newFilterSettings);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n }, [dataSettings, filters, debugMode]);\r\n useEffect(() => {\r\n fetchDataHandler();\r\n }, [fetchDataHandler]);\r\n\r\n const filteredData = useMemo(() => {\r\n if (!dataFromFile || filterSettings.length === 0) return dataFromFile;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = dataFromFile.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n return result;\r\n }, [filterSettings, dataFromFile]);\r\n\r\n useEffect(() => {\r\n if (dataSelectionOptions)\r\n setAdvancedGraphSettings(getGraphSettings(dataSelectionOptions, graphDataConfiguration));\r\n }, [dataSelectionOptions, graphDataConfiguration]);\r\n\r\n useEffect(() => {\r\n if (dataFromFile) {\r\n setData(filteredData);\r\n }\r\n }, [filteredData, dataFromFile]);\r\n\r\n useEffect(() => {\r\n if (highlightDataPointSettings?.column && filteredData)\r\n setHighlightedDataPointOption(\r\n getUniqValue(filteredData, highlightDataPointSettings.column)\r\n .filter(v => !highlightDataPointSettings?.excludeValues?.includes(`${v}`))\r\n .map(d => ({ value: d, label: d })),\r\n );\r\n }, [filteredData, highlightDataPointSettings]);\r\n\r\n useEffect(() => {\r\n if (!isEqual(prevGraphDataConfigRef.current, graphDataConfiguration)) {\r\n setGraphConfig(graphDataConfiguration);\r\n prevGraphDataConfigRef.current = graphDataConfiguration;\r\n }\r\n }, [graphDataConfiguration]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = useCallback((filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n }, []);\r\n\r\n const graphData = useMemo(() => {\r\n if (!data) return undefined;\r\n const config = graphConfig;\r\n const d = transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []),\r\n graphType,\r\n config,\r\n );\r\n return d;\r\n }, [graphType, graphConfig, data, dataFilters, dataTransform]);\r\n if (!dataSettings)\r\n return (\r\n <P size='xs' className='text-center text-accent-dark-red dark:text-accent-red p-2'>\r\n Please make sure either `dataSettings` props are present as they are required for data.\r\n </P>\r\n );\r\n return (\r\n <div\r\n className={`${graphSettings?.theme || 'light'} flex ${\r\n graphSettings?.width ? 'w-fit grow-0' : 'w-full grow'\r\n }${graphSettings?.height ? '' : ' h-full'}`}\r\n dir={graphSettings?.language === 'he' || graphSettings?.language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !graphSettings?.backgroundColor\r\n ? 'bg-transparent '\r\n : graphSettings?.backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${graphSettings?.language || 'en'}`,\r\n graphSettings?.classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(graphSettings?.styles?.graphContainer || {}),\r\n ...(graphSettings?.backgroundColor && graphSettings?.backgroundColor !== true\r\n ? { backgroundColor: graphSettings?.backgroundColor }\r\n : {}),\r\n }}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n >\r\n <div\r\n style={{\r\n padding: graphSettings?.backgroundColor\r\n ? graphSettings?.padding || '1rem'\r\n : graphSettings?.padding || 0,\r\n flexGrow: 1,\r\n display: 'flex',\r\n }}\r\n >\r\n <div className='flex flex-col w-full gap-4 grow justify-between'>\r\n {data ||\r\n graphList\r\n .filter(el => el.geoHubMapPresentation)\r\n .map(el => el.graphID)\r\n .indexOf(graphType) !== -1 ? (\r\n <>\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description ||\r\n graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title:\r\n advancedGraphSettings?.classNames?.title ||\r\n graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={\r\n graphSettings?.graphDownload ? graphParentDiv.current : undefined\r\n }\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ||\r\n highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n display: 'flex',\r\n gap: '1rem',\r\n flexWrap: 'wrap',\r\n alignItems: 'flex-start',\r\n width: '100%',\r\n }}\r\n >\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>\r\n {d.label || `Visualize ${d.chartConfigId} by`}\r\n </Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isMulti\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: (el || []).map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n {highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n width:\r\n highlightDataPointSettings.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n >\r\n <Label className='mb-2'>\r\n {highlightDataPointSettings.label || 'Highlight data'}\r\n </Label>\r\n <DropdownSelect\r\n options={highlightedDataPointOptions}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setHighlightedDataPointList(el?.map((d: any) => d.value));\r\n }}\r\n value={highlightedDataPointList?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n defaultValue={highlightDataPointSettings.defaultValues?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n />\r\n </div>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n <ThreeDGraphEl\r\n graph={graphType}\r\n graphData={graphData}\r\n graphDataConfiguration={graphConfig}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n updateFilters={updateFilters}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n graphTitle: undefined,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n theme: graphSettings?.theme,\r\n ...(highlightedDataPointList\r\n ? {\r\n highlightedDataPoints: highlightedDataPointList,\r\n highlightedIds: highlightedDataPointList?.map(d => `${d}`),\r\n highlightedLines: highlightedDataPointList?.map(d => d),\r\n }\r\n : {}),\r\n }}\r\n />\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["ThreeDGraphEl","props","settings","graph","graphData","debugMode","graphDataConfiguration","readableHeader","updateFilters","jsx","P","graphComponents","ThreeDGlobe","getGraphProps","graphType","getValues","el","GraphComponent","graphProps","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","indx","opt","allowedValIndx","col","SingleGraphDashboardThreeDGraphs","graphSettings","dataSettings","filters","dataTransform","dataFilters","advancedDataSelectionOptions","noOfFiltersPerRow","uiMode","highlightDataPointSettings","data","setData","useState","dataFromFile","setDataFromFile","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","useMemo","fetchDataHandler","useCallback","d","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformColumnsToArray","newFilterSettings","transformDefaultValue","getUniqValue","v","error","useEffect","filteredData","item","filter","flattenDeep","intersection","isEqual","handleFilterChange","values","prev","f","config","transformDataForGraph","transformDataForAggregation","filterData","cn","graphList","jsxs","Fragment","GraphHeader","i","Label","DropdownSelect","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","Spinner"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SingleGraphDashboardThreeDGraphs.js","sources":["../src/Components/Dashboard/PerformanceIntensive/ThreeDGraphEl.tsx","../src/Components/Dashboard/PerformanceIntensive/SingleGraphDashboardThreeDGraphs.tsx"],"sourcesContent":["import { P } from '@undp/design-system-react/Typography';\r\n\r\nimport { ThreeDGlobe } from '../../Graphs/Maps/ThreeDGlobe';\r\n\r\nimport { getValues } from '@/Utils/getValues';\r\nimport { GraphConfigurationDataType, GraphSettingsDataType, ThreeDGraphType } from '@/Types';\r\n\r\ninterface Props {\r\n graph: ThreeDGraphType;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n graphData: any;\r\n settings?: GraphSettingsDataType;\r\n debugMode?: boolean;\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n readableHeader: {\r\n value: string;\r\n label: string;\r\n }[];\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nfunction ThreeDGraphEl(props: Props) {\r\n const {\r\n settings,\r\n graph,\r\n graphData,\r\n debugMode,\r\n graphDataConfiguration,\r\n readableHeader,\r\n updateFilters,\r\n } = props;\r\n if (debugMode) {\r\n // eslint-disable-next-line no-console\r\n console.log(`Graph: ${graph}`);\r\n // eslint-disable-next-line no-console\r\n console.log('Transformed data:', graphData);\r\n // eslint-disable-next-line no-console\r\n console.log('Settings:', settings);\r\n }\r\n if (typeof graphData === 'string')\r\n return (\r\n <div\r\n className={`flex my-0 mx-auto grow flex-col justify-center ${\r\n settings?.width ? 'w-fit' : 'w-full'\r\n }`}\r\n style={{ height: 'inherit' }}\r\n >\r\n <P\r\n size='sm'\r\n marginBottom='none'\r\n className='p-2 text-center text-accent-dark-red dark:text-accent-red'\r\n >\r\n {graphData}\r\n </P>\r\n </div>\r\n );\r\n const graphComponents: Record<ThreeDGraphType, React.ElementType | null> = {\r\n threeDGlobe: ThreeDGlobe,\r\n };\r\n const getGraphProps = (graphType: ThreeDGraphType) => {\r\n switch (graphType) {\r\n case 'threeDGlobe':\r\n return {\r\n globeOffset: settings?.globeOffset,\r\n polygonAltitude: settings?.polygonAltitude,\r\n highlightedIds: settings?.highlightedIds,\r\n scale: settings?.scale,\r\n theme: settings?.theme,\r\n resetSelectionOnDoubleClick: settings?.resetSelectionOnDoubleClick,\r\n graphTitle: settings?.graphTitle,\r\n mapData: settings?.mapData,\r\n graphDescription: settings?.graphDescription,\r\n footNote: settings?.footNote,\r\n width: settings?.width,\r\n height: settings?.height,\r\n sources: settings?.sources,\r\n colorDomain: settings?.colorDomain as string[] | number[],\r\n colors: settings?.colors as string[] | undefined,\r\n colorLegendTitle:\r\n Object.keys(settings || {}).indexOf('colorLegendTitle') !== -1\r\n ? settings?.colorLegendTitle\r\n : getValues('x', graphDataConfiguration || [], readableHeader || []),\r\n scaleType: settings?.scaleType,\r\n data: graphData,\r\n centerPoint: settings?.centerPoint,\r\n backgroundColor: settings?.backgroundColor,\r\n mapNoDataColor: settings?.mapNoDataColor,\r\n mapBorderColor: settings?.mapBorderColor,\r\n relativeHeight: settings?.relativeHeight,\r\n padding: settings?.padding,\r\n tooltip: settings?.tooltip,\r\n showColorScale: settings?.showColorScale,\r\n graphID: settings?.graphID,\r\n dataDownload: settings?.dataDownload,\r\n mapProperty: settings?.mapProperty,\r\n language: settings?.language,\r\n minHeight: settings?.minHeight,\r\n ariaLabel: settings?.ariaLabel,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick: (el: any) => {\r\n updateFilters?.(el.id);\r\n },\r\n detailsOnClick: settings?.detailsOnClick,\r\n styles: settings?.styles,\r\n classNames: settings?.classNames,\r\n categorical: settings?.categorical,\r\n autoRotate: settings?.autoRotate,\r\n globeMaterial: settings?.globeMaterial,\r\n atmosphereColor: settings?.atmosphereColor,\r\n enableZoom: settings?.enableZoom,\r\n atmosphereAltitude: settings?.atmosphereAltitude,\r\n globeCurvatureResolution: settings?.globeCurvatureResolution,\r\n lightColor: settings?.lightColor,\r\n };\r\n default:\r\n return {};\r\n }\r\n };\r\n const GraphComponent = graphComponents[graph];\r\n const graphProps = getGraphProps(graph);\r\n return (\r\n <div\r\n className={`grow my-0 mx-auto flex flex-col h-inherit ${settings?.width ? 'w-fit' : 'w-full'} justify-center ${settings?.theme || 'light'}`}\r\n style={{ minHeight: 'inherit' }}\r\n >\r\n {GraphComponent ? (\r\n <GraphComponent {...graphProps} />\r\n ) : (\r\n <P\r\n size='sm'\r\n marginBottom='none'\r\n className='p-2 text-center text-accent-dark-red dark:text-accent-red'\r\n >\r\n {`Invalid chart type: ${graph}`}\r\n </P>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ThreeDGraphEl;\r\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { P } from '@undp/design-system-react/Typography';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport ThreeDGraphEl from './ThreeDGraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n HighlightDataPointSettingsDataType,\r\n ThreeDGraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { graphList } from '@/Utils/getGraphList';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n graphSettings?: GraphSettingsDataType;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n highlightDataPointSettings?: HighlightDataPointSettingsDataType;\r\n noOfFiltersPerRow?: number;\r\n graphType: ThreeDGraphType;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n debugMode?: boolean;\r\n uiMode?: 'light' | 'normal';\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nconst getGraphSettings = (\r\n dataSelectionOptions: DataSelectionDataType[],\r\n updatedConfig?: GraphConfigurationDataType[],\r\n) => {\r\n const updatedSettings =\r\n updatedConfig?.map(c => {\r\n const indx = dataSelectionOptions?.findIndex(opt => opt.chartConfigId === c.chartConfigId);\r\n if (indx === -1) return {};\r\n const allowedValIndx = dataSelectionOptions[indx]?.allowedColumnIds?.findIndex(\r\n col => col.value === c.columnId,\r\n );\r\n if (allowedValIndx === -1) return {};\r\n return dataSelectionOptions[indx].allowedColumnIds[allowedValIndx].graphSettings || {};\r\n }) || [];\r\n return Object.assign({}, ...updatedSettings);\r\n};\r\n\r\nexport function SingleGraphDashboardThreeDGraphs(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n dataFilters,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n updateFilters,\r\n uiMode = 'normal',\r\n highlightDataPointSettings,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [dataFromFile, setDataFromFile] = useState<any>(undefined);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n const [highlightedDataPointList, setHighlightedDataPointList] = useState<\r\n (string | number)[] | undefined\r\n >(undefined);\r\n const [highlightedDataPointOptions, setHighlightedDataPointOption] = useState<\r\n { label: string | number; value: string | number }[]\r\n >([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n const prevGraphDataConfigRef = useRef<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n const fetchDataHandler = useCallback(async () => {\r\n try {\r\n const fetchData = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : fetchAndParseMultipleDataSources(dataSettings.dataURL, dataSettings.idColumnTitle)\r\n : transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n\r\n const d = await fetchData;\r\n setDataFromFile(d);\r\n\r\n // Optimize filter settings generation\r\n const newFilterSettings = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(d, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n\r\n setFilterSettings(newFilterSettings);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n }, [dataSettings, filters, debugMode]);\r\n useEffect(() => {\r\n fetchDataHandler();\r\n }, [fetchDataHandler]);\r\n\r\n const filteredData = useMemo(() => {\r\n if (!dataFromFile || filterSettings.length === 0) return dataFromFile;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = dataFromFile.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n return result;\r\n }, [filterSettings, dataFromFile]);\r\n\r\n useEffect(() => {\r\n if (dataSelectionOptions)\r\n setAdvancedGraphSettings(getGraphSettings(dataSelectionOptions, graphDataConfiguration));\r\n }, [dataSelectionOptions, graphDataConfiguration]);\r\n\r\n useEffect(() => {\r\n if (dataFromFile) {\r\n setData(filteredData);\r\n }\r\n }, [filteredData, dataFromFile]);\r\n\r\n useEffect(() => {\r\n if (highlightDataPointSettings?.column && filteredData)\r\n setHighlightedDataPointOption(\r\n getUniqValue(filteredData, highlightDataPointSettings.column)\r\n .filter(v => !highlightDataPointSettings?.excludeValues?.includes(`${v}`))\r\n .map(d => ({ value: d, label: d })),\r\n );\r\n }, [filteredData, highlightDataPointSettings]);\r\n\r\n useEffect(() => {\r\n if (!isEqual(prevGraphDataConfigRef.current, graphDataConfiguration)) {\r\n setGraphConfig(graphDataConfiguration);\r\n prevGraphDataConfigRef.current = graphDataConfiguration;\r\n }\r\n }, [graphDataConfiguration]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = useCallback((filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n }, []);\r\n\r\n const graphData = useMemo(() => {\r\n if (!data) return undefined;\r\n const config = graphConfig;\r\n const d = transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []),\r\n graphType,\r\n config,\r\n );\r\n return d;\r\n }, [graphType, graphConfig, data, dataFilters, dataTransform]);\r\n if (!dataSettings)\r\n return (\r\n <P size='xs' className='text-center text-accent-dark-red dark:text-accent-red p-2'>\r\n Please make sure either `dataSettings` props are present as they are required for data.\r\n </P>\r\n );\r\n return (\r\n <div\r\n className={`${graphSettings?.theme || 'light'} flex ${\r\n graphSettings?.width ? 'w-fit grow-0' : 'w-full grow'\r\n }${graphSettings?.height ? '' : ' h-full'}`}\r\n dir={graphSettings?.language === 'he' || graphSettings?.language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !graphSettings?.backgroundColor\r\n ? 'bg-transparent '\r\n : graphSettings?.backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${graphSettings?.language || 'en'}`,\r\n graphSettings?.classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(graphSettings?.styles?.graphContainer || {}),\r\n ...(graphSettings?.backgroundColor && graphSettings?.backgroundColor !== true\r\n ? { backgroundColor: graphSettings?.backgroundColor }\r\n : {}),\r\n }}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n >\r\n <div\r\n style={{\r\n padding: graphSettings?.backgroundColor\r\n ? graphSettings?.padding || '1rem'\r\n : graphSettings?.padding || 0,\r\n flexGrow: 1,\r\n display: 'flex',\r\n }}\r\n >\r\n <div className='flex flex-col w-full gap-4 grow justify-between'>\r\n {data ||\r\n graphList\r\n .filter(el => el.geoHubMapPresentation)\r\n .map(el => el.graphID)\r\n .indexOf(graphType) !== -1 ? (\r\n <>\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description ||\r\n graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title:\r\n advancedGraphSettings?.classNames?.title ||\r\n graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={\r\n graphSettings?.graphDownload ? graphParentDiv.current : undefined\r\n }\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ||\r\n highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n display: 'flex',\r\n gap: '1rem',\r\n flexWrap: 'wrap',\r\n alignItems: 'flex-start',\r\n width: '100%',\r\n }}\r\n >\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>\r\n {d.label || `Visualize ${d.chartConfigId} by`}\r\n </Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isMulti\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: (el || []).map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n {highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n width:\r\n highlightDataPointSettings.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n >\r\n <Label className='mb-2'>\r\n {highlightDataPointSettings.label || 'Highlight data'}\r\n </Label>\r\n <DropdownSelect\r\n options={highlightedDataPointOptions}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setHighlightedDataPointList(el?.map((d: any) => d.value));\r\n }}\r\n value={highlightedDataPointList?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n defaultValue={highlightDataPointSettings.defaultValues?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n />\r\n </div>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n <ThreeDGraphEl\r\n graph={graphType}\r\n graphData={graphData}\r\n graphDataConfiguration={graphConfig}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n updateFilters={updateFilters}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n graphTitle: undefined,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n theme: graphSettings?.theme,\r\n ...(highlightedDataPointList\r\n ? {\r\n highlightedDataPoints: highlightedDataPointList,\r\n highlightedIds: highlightedDataPointList?.map(d => `${d}`),\r\n highlightedLines: highlightedDataPointList?.map(d => d),\r\n }\r\n : {}),\r\n }}\r\n />\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["ThreeDGraphEl","props","settings","graph","graphData","debugMode","graphDataConfiguration","readableHeader","updateFilters","jsx","P","graphComponents","ThreeDGlobe","getGraphProps","graphType","getValues","el","GraphComponent","graphProps","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","indx","opt","allowedValIndx","col","SingleGraphDashboardThreeDGraphs","graphSettings","dataSettings","filters","dataTransform","dataFilters","advancedDataSelectionOptions","noOfFiltersPerRow","uiMode","highlightDataPointSettings","data","setData","useState","dataFromFile","setDataFromFile","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","useMemo","fetchDataHandler","useCallback","d","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformColumnsToArray","newFilterSettings","transformDefaultValue","getUniqValue","v","error","useEffect","filteredData","item","filter","flattenDeep","intersection","isEqual","handleFilterChange","values","prev","f","config","transformDataForGraph","transformDataForAggregation","filterData","cn","graphList","jsxs","Fragment","GraphHeader","i","Label","DropdownSelect","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","Spinner"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index-CHPV5EwG-DDoeWRVt.cjs"),i=require("react"),o=require("./Spinner-DA6Z5E4n.cjs"),d=require("./SingleGraphDashboardThreeDGraphs.cjs"),g=require("./fetchAndParseData-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index-CHPV5EwG-DDoeWRVt.cjs"),i=require("react"),o=require("./Spinner-DA6Z5E4n.cjs"),d=require("./SingleGraphDashboardThreeDGraphs.cjs"),g=require("./fetchAndParseData-CQyVGCul.cjs");function h(n){const{config:t}=n,[e,r]=i.useState(void 0);return i.useEffect(()=>{typeof t=="string"?g.fetchAndParseJSON(t).then(s=>{r(s)}):r(t)},[t]),e?a.jsxRuntimeExports.jsx(d.SingleGraphDashboardThreeDGraphs,{graphSettings:e.graphSettings,dataSettings:e.dataSettings,filters:e.filters,graphType:e.graphType,dataTransform:e.dataTransform,graphDataConfiguration:e.graphDataConfiguration,dataFilters:e.dataFilters,debugMode:e.debugMode,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,readableHeader:e.readableHeader,noOfFiltersPerRow:e.noOfFiltersPerRow,uiMode:e.uiMode,highlightDataPointSettings:e.highlightDataPointSettings}):a.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:a.jsxRuntimeExports.jsx(o.y,{})})}exports.SingleGraphDashboardThreeDGraphsFromConfig=h;
|
|
2
2
|
//# sourceMappingURL=SingleGraphDashboardThreeDGraphsFromConfig.cjs.map
|
|
@@ -436,7 +436,7 @@ declare interface GraphSettingsDataType {
|
|
|
436
436
|
labelsToBeHidden?: (string | number)[];
|
|
437
437
|
autoRotate?: boolean;
|
|
438
438
|
enableZoom?: boolean;
|
|
439
|
-
globeMaterial?:
|
|
439
|
+
globeMaterial?: any;
|
|
440
440
|
categorical?: boolean;
|
|
441
441
|
atmosphereColor?: string;
|
|
442
442
|
lineAxisTitle?: string;
|
|
@@ -444,6 +444,9 @@ declare interface GraphSettingsDataType {
|
|
|
444
444
|
naLabel?: string;
|
|
445
445
|
globeOffset?: [number, number];
|
|
446
446
|
polygonAltitude?: number;
|
|
447
|
+
atmosphereAltitude?: number;
|
|
448
|
+
globeCurvatureResolution?: number;
|
|
449
|
+
lightColor?: string;
|
|
447
450
|
}
|
|
448
451
|
|
|
449
452
|
declare interface HighlightAreaSettingsDataType {
|
|
@@ -479,12 +482,6 @@ declare interface MapLegendDataType {
|
|
|
479
482
|
|
|
480
483
|
declare type MapProjectionTypes = 'mercator' | 'equalEarth' | 'naturalEarth' | 'orthographic' | 'albersUSA';
|
|
481
484
|
|
|
482
|
-
declare interface MaterialDataType {
|
|
483
|
-
color: string;
|
|
484
|
-
opacity: number;
|
|
485
|
-
transparent: boolean;
|
|
486
|
-
}
|
|
487
|
-
|
|
488
485
|
declare interface Props {
|
|
489
486
|
config: string | ConfigObject;
|
|
490
487
|
}
|
|
@@ -2,7 +2,7 @@ import { j as a } from "./index-CHPV5EwG-BPSP-7Jg.js";
|
|
|
2
2
|
import { useState as n, useEffect as s } from "react";
|
|
3
3
|
import { y as f } from "./Spinner-C85UF28E.js";
|
|
4
4
|
import { SingleGraphDashboardThreeDGraphs as g } from "./SingleGraphDashboardThreeDGraphs.js";
|
|
5
|
-
import { f as d } from "./fetchAndParseData-
|
|
5
|
+
import { f as d } from "./fetchAndParseData-4gsYTy6_.js";
|
|
6
6
|
function u(r) {
|
|
7
7
|
const { config: e } = r, [t, i] = n(void 0);
|
|
8
8
|
return s(() => {
|
package/dist/SlopeChart.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-CHPV5EwG-DDoeWRVt.cjs"),oi=require("./index-CZbIGs8q.cjs"),f=require("react"),si=require("./index-BXns0-ng.cjs"),ci=require("./Modal-C_dl0EtQ.cjs"),xi=require("./Tooltip-n8z5bfav.cjs"),_=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),a=require("./Colors.cjs"),ui=require("./string2HTML-D2Avudmb.cjs"),ri=require("./Axis-DE7dSn1_.cjs"),li=require("./AxisTitle-CK9YeovX.cjs"),mi=require("./use-in-view-BCmzDU2O.cjs"),yi=require("./linear-BVckp9RD.cjs"),b=require("./proxy-PQd2AItT.cjs"),hi=require("./index-DVOJ7vxH.cjs"),gi=require("./GraphFooter.cjs"),fi=require("./GraphHeader.cjs"),pi=require("./ColorLegendWithMouseOver.cjs"),di=require("./EmptyState-d8_8SxeW.cjs");function ji(J){const{data:r,width:O,height:E,showLabels:V,colors:o,colorDomain:n,radius:c,leftMargin:m,rightMargin:P,topMargin:W,bottomMargin:K,tooltip:G,onSeriesMouseOver:Y,axisTitles:q,highlightedDataPoints:u,selectedColor:A,minValue:U,maxValue:X,onSeriesMouseClick:D,resetSelectionOnDoubleClick:Q,detailsOnClick:g,styles:p,classNames:y,animate:s,dimmedOpacity:d,customLayers:F}=J,B=f.useRef(null),j=mi.useInView(B,{once:s.once,amount:s.amount}),[w,I]=f.useState(void 0),[k,M]=f.useState(void 0),[z,R]=f.useState(void 0),[S,T]=f.useState(void 0),$={top:W,bottom:K,left:m,right:P},v=O-$.left-$.right,h=E-$.top-$.bottom,C=Math.min(Math.min(...r.map(i=>i.y1)),Math.min(...r.map(i=>i.y2))),H=Math.max(Math.max(...r.map(i=>i.y1)),Math.max(...r.map(i=>i.y2))),x=yi.linear().domain([_.checkIfNullOrUndefined(U)?C>0?0:C:U,_.checkIfNullOrUndefined(X)?H>0?H:0:X]).range([h,0]).nice();return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(b.motion.svg,{width:`${O}px`,height:`${E}px`,viewBox:`0 0 ${O} ${E}`,className:"mx-auto",direction:"ltr",ref:B,children:e.jsxRuntimeExports.jsxs("g",{transform:`translate(${$.left},${$.top})`,children:[e.jsxRuntimeExports.jsxs("g",{children:[e.jsxRuntimeExports.jsx(ri.Axis,{y1:0,y2:h,x1:c,x2:c,classNames:{axis:e.mo("stroke-1 stroke-primary-gray-500 dark:stroke-primary-gray-550",y?.yAxis?.axis)}}),e.jsxRuntimeExports.jsx(li.AxisTitle,{x:c,y:h+15,style:p?.yAxis?.title,className:e.mo("fill-primary-gray-700 dark:fill-primary-gray-300 text-xs",y?.yAxis?.title),text:q[0]})]}),e.jsxRuntimeExports.jsxs("g",{children:[e.jsxRuntimeExports.jsx(ri.Axis,{y1:0,y2:h,x1:v-c,x2:v-c,classNames:{axis:e.mo("stroke-1 stroke-primary-gray-500 dark:stroke-primary-gray-550",y?.yAxis?.axis)}}),e.jsxRuntimeExports.jsx(li.AxisTitle,{x:v-c,y:h+15,style:p?.yAxis?.title,className:e.mo("fill-primary-gray-700 dark:fill-primary-gray-300 text-xs",y?.yAxis?.title),text:q[1]})]}),F.filter(i=>i.position==="before").map(i=>i.layer),e.jsxRuntimeExports.jsx(hi.AnimatePresence,{children:r.map((i,N)=>e.jsxRuntimeExports.jsxs(b.motion.g,{variants:{initial:{opacity:A?i.color&&o[n.indexOf(`${i.color}`)]===A?1:d:w?w.label===i.label?1:d:u.length!==0?u.indexOf(i.label)!==-1?1:d:1},whileInView:{opacity:A?i.color&&o[n.indexOf(`${i.color}`)]===A?1:d:w?w.label===i.label?1:d:u.length!==0?u.indexOf(i.label)!==-1?1:d:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},onMouseEnter:t=>{I(i),T(t.clientY),R(t.clientX),Y?.(i)},onMouseMove:t=>{I(i),T(t.clientY),R(t.clientX)},onMouseLeave:()=>{I(void 0),R(void 0),T(void 0),Y?.(void 0)},onClick:()=>{(D||g)&&(si.isEqual(k,i)&&Q?(M(void 0),D?.(void 0)):(M(i),D?.(i)))},children:[e.jsxRuntimeExports.jsx(b.motion.circle,{cx:c,variants:{initial:{cy:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{cy:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},r:c,style:{fillOpacity:.6}}),V?e.jsxRuntimeExports.jsx(b.motion.text,{variants:{initial:{y:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{y:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},style:{textAnchor:"end",...p?.yAxis?.labels||{}},className:e.mo("text-xs",y?.yAxis?.labels),x:5,dy:"0.33em",textAnchor:"end",dx:0-c-3,children:i.label}):u.length!==0&&u.indexOf(i.label)!==-1?e.jsxRuntimeExports.jsx(b.motion.text,{variants:{initial:{y:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{y:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},style:{textAnchor:"end",...p?.yAxis?.labels||{}},className:e.mo("text-xs",y?.yAxis?.labels),x:5,dy:"0.33em",dx:-3,children:i.label}):null,e.jsxRuntimeExports.jsx(b.motion.circle,{cx:v-c,variants:{initial:{cy:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{cy:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},r:c,style:{fillOpacity:.6}}),V?e.jsxRuntimeExports.jsx(b.motion.text,{variants:{initial:{y:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{y:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},style:{textAnchor:"start",...p?.yAxis?.labels||{}},className:e.mo("text-xs",y?.yAxis?.labels),x:v-5,dy:"0.33em",dx:c+3,children:i.label}):u.length!==0&&u.indexOf(i.label)!==-1?e.jsxRuntimeExports.jsx(b.motion.text,{variants:{initial:{y:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{y:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},style:{textAnchor:"start",...p?.yAxis?.labels||{}},className:e.mo("text-xs",y?.yAxis?.labels),x:v-5,dy:"0.33em",dx:3,children:i.label}):null,e.jsxRuntimeExports.jsx(b.motion.line,{x1:c,x2:v-c,variants:{initial:{y1:x(i.y1),y2:x(i.y1),stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray},whileInView:{y1:x(i.y1),y2:x(i.y2),stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},className:y?.dataConnectors,style:{fill:"none",strokeWidth:1,...p?.dataConnectors}})]},N))}),F.filter(i=>i.position==="after").map(i=>i.layer)]})}),w&&G&&z&&S?e.jsxRuntimeExports.jsx(xi.Tooltip,{data:w,body:G,xPos:z,yPos:S,backgroundStyle:p?.tooltip,className:y?.tooltip}):null,g&&k!==void 0?e.jsxRuntimeExports.jsx(ci.X,{open:k!==void 0,onClose:()=>{M(void 0)},children:e.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof g=="string"?{__html:ui.string2HTML(g,k)}:void 0,children:typeof g=="function"?g(k):null})}):null]})}function wi(J){const{data:r,graphTitle:O,colors:E,sources:V,graphDescription:o,showLabels:n=!1,height:c,width:m,footNote:P,colorDomain:W,colorLegendTitle:K,radius:G=5,axisTitles:Y=["",""],padding:q,backgroundColor:u=!1,leftMargin:A=50,rightMargin:U=50,topMargin:X=20,bottomMargin:D=20,tooltip:Q,relativeHeight:g,onSeriesMouseOver:p,showColorScale:y=!0,highlightedDataPoints:s=[],graphID:d,minValue:F,maxValue:B,onSeriesMouseClick:j,graphDownload:w=!1,dataDownload:I=!1,fillContainer:k=!0,language:M="en",showNAColor:z=!0,minHeight:R=0,theme:S="light",ariaLabel:T,resetSelectionOnDoubleClick:$=!0,detailsOnClick:v,styles:h,classNames:C,animate:H=!1,dimmedOpacity:x=.3,customLayers:i=[]}=J,[N,t]=f.useState(0),[Z,ii]=f.useState(0),[ni,ai]=f.useState(void 0),L=f.useRef(null),ti=f.useRef(null);return f.useEffect(()=>{const l=new ResizeObserver(ei=>{t(m||ei[0].target.clientWidth||620),ii(c||ei[0].target.clientHeight||480)});return L.current&&(ii(L.current.clientHeight||480),t(L.current.clientWidth||620),m||l.observe(L.current)),()=>l.disconnect()},[m,c]),e.jsxRuntimeExports.jsx("div",{className:`${S||"light"} flex ${m?"grow-0":"grow"} ${k?"w-full":"w-fit"} `,dir:M==="he"||M==="ar"?"rtl":void 0,children:e.jsxRuntimeExports.jsx("div",{className:e.mo(`${u?u===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${M||"en"}`,C?.graphContainer),style:{...h?.graphContainer||{},...u&&u!==!0?{backgroundColor:u}:{}},id:d,ref:ti,"aria-label":T||`${O?`The graph shows ${O}. `:""}This is a slope chart showing changes in data between two category or starting and ending time. Each line represents a different row in data, with lines sloping up or down to show increase or decrease over two categories or time.${o?` ${o}`:""}`,children:e.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:u?q||"1rem":q||0},children:e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:[O||o||w||I?e.jsxRuntimeExports.jsx(fi.GraphHeader,{styles:{title:h?.title,description:h?.description},classNames:{title:C?.title,description:C?.description},graphTitle:O,graphDescription:o,width:m,graphDownload:w?ti.current:void 0,dataDownload:I?r.map(l=>l.data).filter(l=>l!==void 0).length>0?r.map(l=>l.data).filter(l=>l!==void 0):r.filter(l=>l!==void 0):null}):null,e.jsxRuntimeExports.jsx("div",{className:"grow flex flex-col justify-center gap-3 w-full",children:r.length===0?e.jsxRuntimeExports.jsx(di.EmptyState,{}):e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[y&&r.filter(l=>l.color).length!==0?e.jsxRuntimeExports.jsx(pi.ColorLegendWithMouseOver,{width:m,colorLegendTitle:K,colors:E||a.Colors[S].categoricalColors.colors,colorDomain:W||oi.uniqBy(r.filter(l=>l.color),"color").map(l=>l.color),setSelectedColor:ai,showNAColor:z}):null,e.jsxRuntimeExports.jsx("div",{className:"flex flex-col grow justify-center w-full leading-0",ref:L,"aria-label":"Graph area",children:(m||N)&&(c||Z)?e.jsxRuntimeExports.jsx(ji,{data:r.filter(l=>!_.checkIfNullOrUndefined(l.y1)&&!_.checkIfNullOrUndefined(l.y2)),width:m||N,height:Math.max(R,c||(g?R?(m||N)*g>R?(m||N)*g:R:(m||N)*g:Z)),colorDomain:r.filter(l=>l.color).length===0?[]:W||oi.uniqBy(r.filter(l=>l.color),"color").map(l=>l.color),colors:r.filter(l=>l.color).length===0?E?[E]:[a.Colors.primaryColors["blue-600"]]:E||a.Colors[S].categoricalColors.colors,selectedColor:ni,axisTitles:Y,showLabels:n,radius:G,leftMargin:A,rightMargin:U,topMargin:X,bottomMargin:D,tooltip:Q,onSeriesMouseOver:p,highlightedDataPoints:s,minValue:F,maxValue:B,onSeriesMouseClick:j,resetSelectionOnDoubleClick:$,detailsOnClick:v,styles:h,classNames:C,animate:H===!0?{duration:.5,once:!0,amount:.5}:H||{duration:0,once:!0,amount:0},dimmedOpacity:x,customLayers:i}):null})]})}),V||P?e.jsxRuntimeExports.jsx(gi.GraphFooter,{styles:{footnote:h?.footnote,source:h?.source},classNames:{footnote:C?.footnote,source:C?.source},sources:V,footNote:P,width:m}):null]})})})})}exports.SlopeChart=wi;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-CHPV5EwG-DDoeWRVt.cjs"),oi=require("./index-CZbIGs8q.cjs"),f=require("react"),si=require("./index-BXns0-ng.cjs"),ci=require("./Modal-tXZlLE5s.cjs"),xi=require("./Tooltip-n8z5bfav.cjs"),_=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),a=require("./Colors.cjs"),ui=require("./string2HTML-D2Avudmb.cjs"),ri=require("./Axis-DE7dSn1_.cjs"),li=require("./AxisTitle-CK9YeovX.cjs"),mi=require("./linear-BVckp9RD.cjs"),yi=require("./use-in-view-sQJZ_xDO.cjs"),b=require("./proxy-BHRoeZgd.cjs"),hi=require("./index-BW8iNx7E.cjs"),gi=require("./GraphFooter.cjs"),fi=require("./GraphHeader.cjs"),pi=require("./ColorLegendWithMouseOver.cjs"),di=require("./EmptyState-d8_8SxeW.cjs");function ji(J){const{data:r,width:O,height:E,showLabels:V,colors:o,colorDomain:n,radius:c,leftMargin:m,rightMargin:P,topMargin:W,bottomMargin:K,tooltip:G,onSeriesMouseOver:Y,axisTitles:q,highlightedDataPoints:u,selectedColor:A,minValue:U,maxValue:X,onSeriesMouseClick:D,resetSelectionOnDoubleClick:Q,detailsOnClick:g,styles:p,classNames:y,animate:s,dimmedOpacity:d,customLayers:F}=J,B=f.useRef(null),j=yi.useInView(B,{once:s.once,amount:s.amount}),[w,I]=f.useState(void 0),[k,M]=f.useState(void 0),[z,R]=f.useState(void 0),[S,T]=f.useState(void 0),$={top:W,bottom:K,left:m,right:P},v=O-$.left-$.right,h=E-$.top-$.bottom,C=Math.min(Math.min(...r.map(i=>i.y1)),Math.min(...r.map(i=>i.y2))),H=Math.max(Math.max(...r.map(i=>i.y1)),Math.max(...r.map(i=>i.y2))),x=mi.linear().domain([_.checkIfNullOrUndefined(U)?C>0?0:C:U,_.checkIfNullOrUndefined(X)?H>0?H:0:X]).range([h,0]).nice();return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(b.motion.svg,{width:`${O}px`,height:`${E}px`,viewBox:`0 0 ${O} ${E}`,className:"mx-auto",direction:"ltr",ref:B,children:e.jsxRuntimeExports.jsxs("g",{transform:`translate(${$.left},${$.top})`,children:[e.jsxRuntimeExports.jsxs("g",{children:[e.jsxRuntimeExports.jsx(ri.Axis,{y1:0,y2:h,x1:c,x2:c,classNames:{axis:e.mo("stroke-1 stroke-primary-gray-500 dark:stroke-primary-gray-550",y?.yAxis?.axis)}}),e.jsxRuntimeExports.jsx(li.AxisTitle,{x:c,y:h+15,style:p?.yAxis?.title,className:e.mo("fill-primary-gray-700 dark:fill-primary-gray-300 text-xs",y?.yAxis?.title),text:q[0]})]}),e.jsxRuntimeExports.jsxs("g",{children:[e.jsxRuntimeExports.jsx(ri.Axis,{y1:0,y2:h,x1:v-c,x2:v-c,classNames:{axis:e.mo("stroke-1 stroke-primary-gray-500 dark:stroke-primary-gray-550",y?.yAxis?.axis)}}),e.jsxRuntimeExports.jsx(li.AxisTitle,{x:v-c,y:h+15,style:p?.yAxis?.title,className:e.mo("fill-primary-gray-700 dark:fill-primary-gray-300 text-xs",y?.yAxis?.title),text:q[1]})]}),F.filter(i=>i.position==="before").map(i=>i.layer),e.jsxRuntimeExports.jsx(hi.AnimatePresence,{children:r.map((i,N)=>e.jsxRuntimeExports.jsxs(b.motion.g,{variants:{initial:{opacity:A?i.color&&o[n.indexOf(`${i.color}`)]===A?1:d:w?w.label===i.label?1:d:u.length!==0?u.indexOf(i.label)!==-1?1:d:1},whileInView:{opacity:A?i.color&&o[n.indexOf(`${i.color}`)]===A?1:d:w?w.label===i.label?1:d:u.length!==0?u.indexOf(i.label)!==-1?1:d:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},onMouseEnter:t=>{I(i),T(t.clientY),R(t.clientX),Y?.(i)},onMouseMove:t=>{I(i),T(t.clientY),R(t.clientX)},onMouseLeave:()=>{I(void 0),R(void 0),T(void 0),Y?.(void 0)},onClick:()=>{(D||g)&&(si.isEqual(k,i)&&Q?(M(void 0),D?.(void 0)):(M(i),D?.(i)))},children:[e.jsxRuntimeExports.jsx(b.motion.circle,{cx:c,variants:{initial:{cy:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{cy:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},r:c,style:{fillOpacity:.6}}),V?e.jsxRuntimeExports.jsx(b.motion.text,{variants:{initial:{y:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{y:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},style:{textAnchor:"end",...p?.yAxis?.labels||{}},className:e.mo("text-xs",y?.yAxis?.labels),x:5,dy:"0.33em",textAnchor:"end",dx:0-c-3,children:i.label}):u.length!==0&&u.indexOf(i.label)!==-1?e.jsxRuntimeExports.jsx(b.motion.text,{variants:{initial:{y:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{y:x(i.y1),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},style:{textAnchor:"end",...p?.yAxis?.labels||{}},className:e.mo("text-xs",y?.yAxis?.labels),x:5,dy:"0.33em",dx:-3,children:i.label}):null,e.jsxRuntimeExports.jsx(b.motion.circle,{cx:v-c,variants:{initial:{cy:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{cy:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},r:c,style:{fillOpacity:.6}}),V?e.jsxRuntimeExports.jsx(b.motion.text,{variants:{initial:{y:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{y:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},style:{textAnchor:"start",...p?.yAxis?.labels||{}},className:e.mo("text-xs",y?.yAxis?.labels),x:v-5,dy:"0.33em",dx:c+3,children:i.label}):u.length!==0&&u.indexOf(i.label)!==-1?e.jsxRuntimeExports.jsx(b.motion.text,{variants:{initial:{y:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:0},whileInView:{y:x(i.y2),fill:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,opacity:1,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},style:{textAnchor:"start",...p?.yAxis?.labels||{}},className:e.mo("text-xs",y?.yAxis?.labels),x:v-5,dy:"0.33em",dx:3,children:i.label}):null,e.jsxRuntimeExports.jsx(b.motion.line,{x1:c,x2:v-c,variants:{initial:{y1:x(i.y1),y2:x(i.y1),stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray},whileInView:{y1:x(i.y1),y2:x(i.y2),stroke:r.filter(t=>t.color).length===0?o[0]:i.color?o[n.indexOf(`${i.color}`)]:a.Colors.gray,transition:{duration:s.duration}}},initial:"initial",animate:j?"whileInView":"initial",exit:{opacity:0,transition:{duration:s.duration}},className:y?.dataConnectors,style:{fill:"none",strokeWidth:1,...p?.dataConnectors}})]},N))}),F.filter(i=>i.position==="after").map(i=>i.layer)]})}),w&&G&&z&&S?e.jsxRuntimeExports.jsx(xi.Tooltip,{data:w,body:G,xPos:z,yPos:S,backgroundStyle:p?.tooltip,className:y?.tooltip}):null,g&&k!==void 0?e.jsxRuntimeExports.jsx(ci.X,{open:k!==void 0,onClose:()=>{M(void 0)},children:e.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof g=="string"?{__html:ui.string2HTML(g,k)}:void 0,children:typeof g=="function"?g(k):null})}):null]})}function wi(J){const{data:r,graphTitle:O,colors:E,sources:V,graphDescription:o,showLabels:n=!1,height:c,width:m,footNote:P,colorDomain:W,colorLegendTitle:K,radius:G=5,axisTitles:Y=["",""],padding:q,backgroundColor:u=!1,leftMargin:A=50,rightMargin:U=50,topMargin:X=20,bottomMargin:D=20,tooltip:Q,relativeHeight:g,onSeriesMouseOver:p,showColorScale:y=!0,highlightedDataPoints:s=[],graphID:d,minValue:F,maxValue:B,onSeriesMouseClick:j,graphDownload:w=!1,dataDownload:I=!1,fillContainer:k=!0,language:M="en",showNAColor:z=!0,minHeight:R=0,theme:S="light",ariaLabel:T,resetSelectionOnDoubleClick:$=!0,detailsOnClick:v,styles:h,classNames:C,animate:H=!1,dimmedOpacity:x=.3,customLayers:i=[]}=J,[N,t]=f.useState(0),[Z,ii]=f.useState(0),[ni,ai]=f.useState(void 0),L=f.useRef(null),ti=f.useRef(null);return f.useEffect(()=>{const l=new ResizeObserver(ei=>{t(m||ei[0].target.clientWidth||620),ii(c||ei[0].target.clientHeight||480)});return L.current&&(ii(L.current.clientHeight||480),t(L.current.clientWidth||620),m||l.observe(L.current)),()=>l.disconnect()},[m,c]),e.jsxRuntimeExports.jsx("div",{className:`${S||"light"} flex ${m?"grow-0":"grow"} ${k?"w-full":"w-fit"} `,dir:M==="he"||M==="ar"?"rtl":void 0,children:e.jsxRuntimeExports.jsx("div",{className:e.mo(`${u?u===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${M||"en"}`,C?.graphContainer),style:{...h?.graphContainer||{},...u&&u!==!0?{backgroundColor:u}:{}},id:d,ref:ti,"aria-label":T||`${O?`The graph shows ${O}. `:""}This is a slope chart showing changes in data between two category or starting and ending time. Each line represents a different row in data, with lines sloping up or down to show increase or decrease over two categories or time.${o?` ${o}`:""}`,children:e.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:u?q||"1rem":q||0},children:e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:[O||o||w||I?e.jsxRuntimeExports.jsx(fi.GraphHeader,{styles:{title:h?.title,description:h?.description},classNames:{title:C?.title,description:C?.description},graphTitle:O,graphDescription:o,width:m,graphDownload:w?ti.current:void 0,dataDownload:I?r.map(l=>l.data).filter(l=>l!==void 0).length>0?r.map(l=>l.data).filter(l=>l!==void 0):r.filter(l=>l!==void 0):null}):null,e.jsxRuntimeExports.jsx("div",{className:"grow flex flex-col justify-center gap-3 w-full",children:r.length===0?e.jsxRuntimeExports.jsx(di.EmptyState,{}):e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[y&&r.filter(l=>l.color).length!==0?e.jsxRuntimeExports.jsx(pi.ColorLegendWithMouseOver,{width:m,colorLegendTitle:K,colors:E||a.Colors[S].categoricalColors.colors,colorDomain:W||oi.uniqBy(r.filter(l=>l.color),"color").map(l=>l.color),setSelectedColor:ai,showNAColor:z}):null,e.jsxRuntimeExports.jsx("div",{className:"flex flex-col grow justify-center w-full leading-0",ref:L,"aria-label":"Graph area",children:(m||N)&&(c||Z)?e.jsxRuntimeExports.jsx(ji,{data:r.filter(l=>!_.checkIfNullOrUndefined(l.y1)&&!_.checkIfNullOrUndefined(l.y2)),width:m||N,height:Math.max(R,c||(g?R?(m||N)*g>R?(m||N)*g:R:(m||N)*g:Z)),colorDomain:r.filter(l=>l.color).length===0?[]:W||oi.uniqBy(r.filter(l=>l.color),"color").map(l=>l.color),colors:r.filter(l=>l.color).length===0?E?[E]:[a.Colors.primaryColors["blue-600"]]:E||a.Colors[S].categoricalColors.colors,selectedColor:ni,axisTitles:Y,showLabels:n,radius:G,leftMargin:A,rightMargin:U,topMargin:X,bottomMargin:D,tooltip:Q,onSeriesMouseOver:p,highlightedDataPoints:s,minValue:F,maxValue:B,onSeriesMouseClick:j,resetSelectionOnDoubleClick:$,detailsOnClick:v,styles:h,classNames:C,animate:H===!0?{duration:.5,once:!0,amount:.5}:H||{duration:0,once:!0,amount:0},dimmedOpacity:x,customLayers:i}):null})]})}),V||P?e.jsxRuntimeExports.jsx(gi.GraphFooter,{styles:{footnote:h?.footnote,source:h?.source},classNames:{footnote:C?.footnote,source:C?.source},sources:V,footNote:P,width:m}):null]})})})})}exports.SlopeChart=wi;
|
|
2
2
|
//# sourceMappingURL=SlopeChart.cjs.map
|
package/dist/SlopeChart.js
CHANGED
|
@@ -2,17 +2,17 @@ import { j as o, m as j } from "./index-CHPV5EwG-BPSP-7Jg.js";
|
|
|
2
2
|
import { u as ri } from "./index-CaAIPGZo.js";
|
|
3
3
|
import { useRef as ii, useState as I, useEffect as yi } from "react";
|
|
4
4
|
import { i as mi } from "./index-27yTRcko.js";
|
|
5
|
-
import { X as xi } from "./Modal-
|
|
5
|
+
import { X as xi } from "./Modal-DVVwpKhP.js";
|
|
6
6
|
import { T as hi } from "./Tooltip-DyM5snqx.js";
|
|
7
7
|
import { c as J } from "./checkIfNullOrUndefined-DmfiKkNw.js";
|
|
8
8
|
import { Colors as n } from "./Colors.js";
|
|
9
9
|
import { s as fi } from "./string2HTML-CWHGfz_d.js";
|
|
10
10
|
import { A as ai } from "./Axis-Ddg-seDi.js";
|
|
11
11
|
import { A as ni } from "./AxisTitle-BmHLMRJZ.js";
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { m as O } from "./proxy-
|
|
15
|
-
import { A as pi } from "./index-
|
|
12
|
+
import { a as gi } from "./linear-DUdu7l2G.js";
|
|
13
|
+
import { u as ui } from "./use-in-view-yS6jzJAp.js";
|
|
14
|
+
import { m as O } from "./proxy-CkpFesk1.js";
|
|
15
|
+
import { A as pi } from "./index-CNvov0eg.js";
|
|
16
16
|
import { GraphFooter as di } from "./GraphFooter.js";
|
|
17
17
|
import { GraphHeader as wi } from "./GraphHeader.js";
|
|
18
18
|
import { ColorLegendWithMouseOver as vi } from "./ColorLegendWithMouseOver.js";
|
|
@@ -45,7 +45,7 @@ function Oi(K) {
|
|
|
45
45
|
animate: s,
|
|
46
46
|
dimmedOpacity: p,
|
|
47
47
|
customLayers: B
|
|
48
|
-
} = K, _ = ii(null), d =
|
|
48
|
+
} = K, _ = ii(null), d = ui(_, {
|
|
49
49
|
once: s.once,
|
|
50
50
|
amount: s.amount
|
|
51
51
|
}), [w, S] = I(void 0), [A, N] = I(void 0), [U, M] = I(void 0), [T, W] = I(void 0), C = {
|
|
@@ -53,7 +53,7 @@ function Oi(K) {
|
|
|
53
53
|
bottom: Q,
|
|
54
54
|
left: x,
|
|
55
55
|
right: X
|
|
56
|
-
}, v = $ - C.left - C.right, f = k - C.top - C.bottom, b = Math.min(Math.min(...l.map((i) => i.y1)), Math.min(...l.map((i) => i.y2))), P = Math.max(Math.max(...l.map((i) => i.y1)), Math.max(...l.map((i) => i.y2))), y =
|
|
56
|
+
}, v = $ - C.left - C.right, f = k - C.top - C.bottom, b = Math.min(Math.min(...l.map((i) => i.y1)), Math.min(...l.map((i) => i.y2))), P = Math.max(Math.max(...l.map((i) => i.y1)), Math.max(...l.map((i) => i.y2))), y = gi().domain([
|
|
57
57
|
J(q) ? b > 0 ? 0 : b : q,
|
|
58
58
|
J(z) ? P > 0 ? P : 0 : z
|
|
59
59
|
]).range([f, 0]).nice();
|
package/dist/StripChart.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index-CHPV5EwG-DDoeWRVt.cjs"),ce=require("./index-CZbIGs8q.cjs"),p=require("react"),xe=require("./index-BXns0-ng.cjs"),de=require("./index-BzeLQvXk.cjs"),ge=require("./Modal-C_dl0EtQ.cjs"),pe=require("./Tooltip-n8z5bfav.cjs"),J=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),ue=require("./numberFormattingFunction-02t-wJta.cjs"),c=require("./Colors.cjs"),fe=require("./string2HTML-D2Avudmb.cjs"),me=require("./use-in-view-BCmzDU2O.cjs"),ye=require("./linear-BVckp9RD.cjs"),le=require("./proxy-PQd2AItT.cjs"),ve=require("./index-DVOJ7vxH.cjs"),je=require("./GraphFooter.cjs"),we=require("./GraphHeader.cjs"),Oe=require("./ColorLegendWithMouseOver.cjs"),Ce=require("./EmptyState-d8_8SxeW.cjs");function be(L,o){if(L<2)return[];const x=o/(L-1);return Array.from({length:L},(f,r)=>r*x)}function Ee(L){const{data:o,width:x,height:f,colors:r,colorDomain:a,radius:u,leftMargin:s,rightMargin:P,topMargin:W,bottomMargin:ee,tooltip:U,onSeriesMouseOver:k,highlightedDataPoints:l,selectedColor:z,minValue:G,maxValue:X,onSeriesMouseClick:D,prefix:K,suffix:C,stripType:Q,highlightColor:v,dotOpacity:j,resetSelectionOnDoubleClick:te,detailsOnClick:N,styles:E,classNames:I,valueColor:V,animate:m,noOfTicks:w,dimmedOpacity:$,precision:B,customLayers:M}=L,Y=p.useRef(null),R=me.useInView(Y,{once:m.once,amount:m.amount}),[T,y]=p.useState(void 0),[d,H]=p.useState(void 0),[_,q]=p.useState(void 0),[g,h]=p.useState(void 0),O={top:W,bottom:ee,left:s,right:P},S=x-O.left-O.right,A=f-O.top-O.bottom,ie=o.map((e,t)=>({...e,id:`${t}`})),oe=de.sortBy(ie,e=>{const t=(l||[]).indexOf(e.label);return t===-1?1/0:t}).reverse(),re=J.checkIfNullOrUndefined(X)?Math.max(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position))<0?0:Math.max(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position)):X,b=J.checkIfNullOrUndefined(G)?Math.min(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position))>=0?0:Math.min(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position)):G,F=ye.linear().domain([b,re]).range([0,S]).nice(),ne=be(w,S);return i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[i.jsxRuntimeExports.jsx(le.motion.svg,{width:`${x}px`,height:`${f}px`,viewBox:`0 0 ${x} ${f}`,direction:"ltr",ref:Y,children:i.jsxRuntimeExports.jsxs("g",{transform:`translate(${O.left},${O.top})`,children:[M.filter(e=>e.position==="before").map(e=>e.layer),i.jsxRuntimeExports.jsxs(ve.AnimatePresence,{children:[oe.map(e=>i.jsxRuntimeExports.jsxs(le.motion.g,{className:"undp-viz-g-with-hover",variants:{initial:{opacity:0,x:F(0),y:A/2},whileInView:{x:F(e.position),y:A/2,opacity:z?e.color&&r[a.indexOf(e.color)]===z?.95:$:l.length!==0?l.indexOf(e.label)!==-1?.95:$:j,transition:{duration:m.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:m.duration}},onMouseEnter:t=>{y(e),h(t.clientY),q(t.clientX),k?.(e)},onClick:()=>{(D||N)&&(xe.isEqual(d,e)&&te?(H(void 0),D?.(void 0)):(H(e),D?.(e)))},onMouseMove:t=>{y(e),h(t.clientY),q(t.clientX)},onMouseLeave:()=>{y(void 0),q(void 0),h(void 0),k?.(void 0)},children:[Q==="dot"?i.jsxRuntimeExports.jsx(le.motion.circle,{cy:0,cx:0,variants:{initial:{fill:v&&l?l.indexOf(e.label)!==-1?v:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray},whileInView:{fill:v&&l?l.indexOf(e.label)!==-1?v:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray,transition:{duration:m.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:m.duration}},r:u}):i.jsxRuntimeExports.jsx(le.motion.rect,{y:0-u,x:-1,height:u*2,width:2,variants:{initial:{fill:v&&l?l.indexOf(e.label)!==-1?v:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray},whileInView:{fill:v&&l?l.indexOf(e.label)!==-1?v:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray,transition:{duration:m.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:m.duration}}}),l.length!==0&&l.indexOf(e.label)!==-1?i.jsxRuntimeExports.jsx(le.motion.text,{x:0,y:0-u-5,variants:{initial:{opacity:0},whileInView:{opacity:1,transition:{duration:m.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:m.duration}},style:{fill:V||(v&&l?l.indexOf(e.label)!==-1?v:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray),textAnchor:"middle",...E?.graphObjectValues||{}},className:i.mo("graph-value text-sm font-bold",I?.graphObjectValues),children:ue.numberFormattingFunction(e.position,"NA",B,K,C)}):null]},e.label)),ne.map((e,t)=>i.jsxRuntimeExports.jsx("text",{x:e,y:A/2+u,style:{textAnchor:t===0?"start":t===ne.length-1?"end":"middle",...E?.xAxis?.labels||{}},className:i.mo("fill-primary-gray-550 dark:fill-primary-gray-500 text-xs",I?.xAxis?.labels),dy:"1em",children:ue.numberFormattingFunction(F.invert(e),"NA",B,K,C)},t))]}),M.filter(e=>e.position==="after").map(e=>e.layer)]})}),T&&U&&_&&g?i.jsxRuntimeExports.jsx(pe.Tooltip,{data:T,body:U,xPos:_,yPos:g,backgroundStyle:E?.tooltip,className:I?.tooltip}):null,N&&d!==void 0?i.jsxRuntimeExports.jsx(ge.X,{open:d!==void 0,onClose:()=>{H(void 0)},children:i.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof N=="string"?{__html:fe.string2HTML(N,d)}:void 0,children:typeof N=="function"?N(d):null})}):null]})}function Me(L){const{data:o,graphTitle:x,colors:f,sources:r,graphDescription:a,height:u,width:s,footNote:P,colorDomain:W,colorLegendTitle:ee,radius:U=5,padding:k,backgroundColor:l=!1,leftMargin:z=5,rightMargin:G=5,topMargin:X=10,bottomMargin:D=10,tooltip:K,relativeHeight:C,onSeriesMouseOver:Q,showColorScale:v=!0,highlightedDataPoints:j=[],graphID:te,minValue:N,maxValue:E,onSeriesMouseClick:I,graphDownload:V=!1,dataDownload:m=!1,prefix:w="",suffix:$="",stripType:B="dot",language:M="en",highlightColor:Y,dotOpacity:R=.3,showNAColor:T=!0,minHeight:y=0,theme:d="light",ariaLabel:H,resetSelectionOnDoubleClick:_=!0,detailsOnClick:q,styles:g,classNames:h,valueColor:O,animate:S=!1,noOfTicks:A=2,dimmedOpacity:ie=.3,precision:oe=2,customLayers:re=[]}=L,[b,F]=p.useState(0),[ne,e]=p.useState(0),[t,he]=p.useState(void 0),Z=p.useRef(null),ae=p.useRef(null);return p.useEffect(()=>{const n=new ResizeObserver(se=>{F(s||se[0].target.clientWidth||620),e(u||se[0].target.clientHeight||480)});return Z.current&&(e(Z.current.clientHeight||480),F(Z.current.clientWidth||620),s||n.observe(Z.current)),()=>n.disconnect()},[s,u]),i.jsxRuntimeExports.jsx("div",{className:`${d||"light"} flex ${s?"w-fit grow-0":"w-full grow"}`,dir:M==="he"||M==="ar"?"rtl":void 0,children:i.jsxRuntimeExports.jsx("div",{className:i.mo(`${l?l===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${M||"en"}`,h?.graphContainer),style:{...g?.graphContainer||{},...l&&l!==!0?{backgroundColor:l}:{}},id:te,ref:ae,"aria-label":H||`${x?`The graph shows ${x}. `:""}This is a strip chart showing distribution of data along the horizontal axis. Each dot represents an individual data point, helping to visualize the spread and clustering of values.${a?` ${a}`:""}`,children:i.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:l?k||"1rem":k||0},children:i.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:[x||a||V||m?i.jsxRuntimeExports.jsx(we.GraphHeader,{styles:{title:g?.title,description:g?.description},classNames:{title:h?.title,description:h?.description},graphTitle:x,graphDescription:a,width:s,graphDownload:V?ae.current:void 0,dataDownload:m?o.map(n=>n.data).filter(n=>n!==void 0).length>0?o.map(n=>n.data).filter(n=>n!==void 0):o.filter(n=>n!==void 0):null}):null,i.jsxRuntimeExports.jsx("div",{className:"grow flex flex-col justify-center gap-3 w-full",children:o.length===0?i.jsxRuntimeExports.jsx(Ce.EmptyState,{}):i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[v!==!1&&o.filter(n=>n.color).length!==0?i.jsxRuntimeExports.jsx(Oe.ColorLegendWithMouseOver,{width:s,colorLegendTitle:ee,colors:f||c.Colors[d].categoricalColors.colors,colorDomain:W||ce.uniqBy(o.filter(n=>n.color),"color").map(n=>n.color),setSelectedColor:he,showNAColor:T??!0}):null,i.jsxRuntimeExports.jsx("div",{className:"flex flex-col grow justify-center w-full leading-0",ref:Z,"aria-label":"Graph area",children:(s||b)&&(u||ne)?i.jsxRuntimeExports.jsx(Ee,{data:o,width:s||b,height:Math.max(y,u||(C?y?(s||b)*C>y?(s||b)*C:y:(s||b)*C:ne)),colorDomain:o.filter(n=>n.color).length===0?[]:W||ce.uniqBy(o.filter(n=>n.color),"color").map(n=>n.color),colors:o.filter(n=>n.color).length===0?f?[f]:[c.Colors.primaryColors["blue-600"]]:f||c.Colors[d].categoricalColors.colors,selectedColor:t,radius:U,leftMargin:z,rightMargin:G,topMargin:X,bottomMargin:D,tooltip:K,onSeriesMouseOver:Q,highlightedDataPoints:j,minValue:N,maxValue:E,onSeriesMouseClick:I,prefix:w,suffix:$,stripType:B,highlightColor:Y,dotOpacity:R,resetSelectionOnDoubleClick:_,detailsOnClick:q,styles:g,classNames:h,valueColor:O,animate:S===!0?{duration:.5,once:!0,amount:.5}:S||{duration:0,once:!0,amount:0},noOfTicks:A,dimmedOpacity:ie,precision:oe,customLayers:re}):null})]})}),r||P?i.jsxRuntimeExports.jsx(je.GraphFooter,{styles:{footnote:g?.footnote,source:g?.source},classNames:{footnote:h?.footnote,source:h?.source},sources:r,footNote:P,width:s}):null]})})})})}function Re(L){const{data:o,width:x,height:f,colors:r,colorDomain:a,radius:u,leftMargin:s,rightMargin:P,topMargin:W,bottomMargin:ee,tooltip:U,onSeriesMouseOver:k,highlightedDataPoints:l,selectedColor:z,minValue:G,maxValue:X,onSeriesMouseClick:D,noOfTicks:K,prefix:C,suffix:Q,stripType:v,highlightColor:j,dotOpacity:te,resetSelectionOnDoubleClick:N,detailsOnClick:E,styles:I,classNames:V,valueColor:m,animate:w,dimmedOpacity:$,precision:B,customLayers:M}=L,Y=p.useRef(null),R=me.useInView(Y,{once:w.once,amount:w.amount}),[T,y]=p.useState(void 0),[d,H]=p.useState(void 0),[_,q]=p.useState(void 0),[g,h]=p.useState(void 0),O={top:W,bottom:ee,left:s,right:P},S=x-O.left-O.right,A=f-O.top-O.bottom,ie=o.map((e,t)=>({...e,id:`${t}`})),oe=de.sortBy(ie,e=>{const t=(l||[]).indexOf(e.label);return t===-1?1/0:t}).reverse(),re=J.checkIfNullOrUndefined(X)?Math.max(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position))<0?0:Math.max(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position)):X,b=J.checkIfNullOrUndefined(G)?Math.min(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position))>=0?0:Math.min(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position)):G,F=ye.linear().domain([b,re]).range([A,0]).nice(),ne=be(K,A);return i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[i.jsxRuntimeExports.jsx(le.motion.svg,{width:`${x}px`,height:`${f}px`,viewBox:`0 0 ${x} ${f}`,direction:"ltr",ref:Y,children:i.jsxRuntimeExports.jsxs("g",{transform:`translate(${O.left},${O.top})`,children:[M.filter(e=>e.position==="before").map(e=>e.layer),i.jsxRuntimeExports.jsxs(ve.AnimatePresence,{children:[oe.map(e=>i.jsxRuntimeExports.jsxs(le.motion.g,{className:"undp-viz-g-with-hover",variants:{initial:{opacity:0,x:S/2,y:F(0)},whileInView:{x:S/2,y:F(e.position),opacity:z?e.color&&r[a.indexOf(e.color)]===z?.95:$:l.length!==0?l.indexOf(e.label)!==-1?.95:$:te,transition:{duration:w.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:w.duration}},onMouseEnter:t=>{y(e),h(t.clientY),q(t.clientX),k?.(e)},onClick:()=>{(D||E)&&(xe.isEqual(d,e)&&N?(H(void 0),D?.(void 0)):(H(e),D?.(e)))},onMouseMove:t=>{y(e),h(t.clientY),q(t.clientX)},onMouseLeave:()=>{y(void 0),q(void 0),h(void 0),k?.(void 0)},children:[v==="dot"?i.jsxRuntimeExports.jsx(le.motion.circle,{cy:0,cx:0,variants:{initial:{fill:j&&l?l.indexOf(e.label)!==-1?j:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray},whileInView:{fill:j&&l?l.indexOf(e.label)!==-1?j:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray,transition:{duration:w.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:w.duration}},r:u}):i.jsxRuntimeExports.jsx(le.motion.rect,{x:0-u,y:-1,width:u*2,height:2,variants:{initial:{fill:j&&l?l.indexOf(e.label)!==-1?j:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray},whileInView:{fill:j&&l?l.indexOf(e.label)!==-1?j:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray,transition:{duration:w.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:w.duration}}}),l.length!==0&&l.indexOf(e.label)!==-1?i.jsxRuntimeExports.jsx(le.motion.text,{y:0,dy:"0.33em",x:0+u+3,variants:{initial:{opacity:0},whileInView:{opacity:1,transition:{duration:w.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:w.duration}},style:{fill:m||(j&&l?l.indexOf(e.label)!==-1?j:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray),textAnchor:"start",...I?.graphObjectValues||{}},className:i.mo("graph-value text-sm font-bold",V?.graphObjectValues),children:ue.numberFormattingFunction(e.position,"NA",B,C,Q)}):null]},e.label)),ne.map((e,t)=>i.jsxRuntimeExports.jsx("text",{y:e,x:S/2+u+5,style:{textAnchor:"start",...I?.yAxis?.labels||{}},className:i.mo("fill-primary-gray-550 dark:fill-primary-gray-500 text-xs",V?.yAxis?.labels),children:ue.numberFormattingFunction(F.invert(e),"NA",B,C,Q)},t))]}),M.filter(e=>e.position==="after").map(e=>e.layer)]})}),T&&U&&_&&g?i.jsxRuntimeExports.jsx(pe.Tooltip,{data:T,body:U,xPos:_,yPos:g,backgroundStyle:I?.tooltip,className:V?.tooltip}):null,E&&d!==void 0?i.jsxRuntimeExports.jsx(ge.X,{open:d!==void 0,onClose:()=>{H(void 0)},children:i.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof E=="string"?{__html:fe.string2HTML(E,d)}:void 0,children:typeof E=="function"?E(d):null})}):null]})}function Ne(L){const{data:o,graphTitle:x,colors:f,sources:r,graphDescription:a,height:u,width:s,footNote:P,colorDomain:W,colorLegendTitle:ee,radius:U=5,padding:k,backgroundColor:l=!1,leftMargin:z=20,rightMargin:G=20,topMargin:X=10,bottomMargin:D=10,tooltip:K,relativeHeight:C,onSeriesMouseOver:Q,showColorScale:v=!0,highlightedDataPoints:j=[],graphID:te,minValue:N,maxValue:E,onSeriesMouseClick:I,graphDownload:V=!1,dataDownload:m=!1,prefix:w="",suffix:$="",stripType:B="dot",language:M="en",highlightColor:Y,dotOpacity:R=.3,showNAColor:T=!0,minHeight:y=0,theme:d="light",ariaLabel:H,resetSelectionOnDoubleClick:_=!0,detailsOnClick:q,styles:g,classNames:h,valueColor:O,animate:S=!1,noOfTicks:A=2,dimmedOpacity:ie=.3,precision:oe=2,customLayers:re=[]}=L,[b,F]=p.useState(0),[ne,e]=p.useState(0),[t,he]=p.useState(void 0),Z=p.useRef(null),ae=p.useRef(null);return p.useEffect(()=>{const n=new ResizeObserver(se=>{F(s||se[0].target.clientWidth||620),e(u||se[0].target.clientHeight||480)});return Z.current&&(e(Z.current.clientHeight||480),F(Z.current.clientWidth||620),s||n.observe(Z.current)),()=>n.disconnect()},[s,u]),i.jsxRuntimeExports.jsx("div",{className:`${d||"light"} flex ${s?"w-fit grow-0":"w-full grow"}`,dir:M==="he"||M==="ar"?"rtl":void 0,children:i.jsxRuntimeExports.jsx("div",{className:i.mo(`${l?l===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${M||"en"}`,h?.graphContainer),style:{...g?.graphContainer||{},...l&&l!==!0?{backgroundColor:l}:{}},id:te,ref:ae,"aria-label":H||`${x?`The graph shows ${x}. `:""}This is a strip chart showing distribution of data along the vertical axis. Each dot represents an individual data point, helping to visualize the spread and clustering of values.${a?` ${a}`:""}`,children:i.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:l?k||"1rem":k||0},children:i.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:[x||a||V||m?i.jsxRuntimeExports.jsx(we.GraphHeader,{styles:{title:g?.title,description:g?.description},classNames:{title:h?.title,description:h?.description},graphTitle:x,graphDescription:a,width:s,graphDownload:V?ae.current:void 0,dataDownload:m?o.map(n=>n.data).filter(n=>n!==void 0).length>0?o.map(n=>n.data).filter(n=>n!==void 0):o.filter(n=>n!==void 0):null}):null,i.jsxRuntimeExports.jsx("div",{className:"grow flex flex-col justify-center gap-3 w-full",children:o.length===0?i.jsxRuntimeExports.jsx(Ce.EmptyState,{}):i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[v!==!1&&o.filter(n=>n.color).length!==0?i.jsxRuntimeExports.jsx(Oe.ColorLegendWithMouseOver,{width:s,colorLegendTitle:ee,colors:f||c.Colors[d].categoricalColors.colors,colorDomain:W||ce.uniqBy(o.filter(n=>n.color),"color").map(n=>n.color),setSelectedColor:he,showNAColor:T}):null,i.jsxRuntimeExports.jsx("div",{className:"flex flex-col grow justify-center w-full leading-0",ref:Z,children:(s||b)&&(u||ne)?i.jsxRuntimeExports.jsx(Re,{data:o,width:s||b,height:Math.max(y,u||(C?y?(s||b)*C>y?(s||b)*C:y:(s||b)*C:ne)),colorDomain:o.filter(n=>n.color).length===0?[]:W||ce.uniqBy(o.filter(n=>n.color),"color").map(n=>n.color),colors:o.filter(n=>n.color).length===0?f?[f]:[c.Colors.primaryColors["blue-600"]]:f||c.Colors[d].categoricalColors.colors,selectedColor:t,radius:U,leftMargin:z,rightMargin:G,topMargin:X,bottomMargin:D,tooltip:K,onSeriesMouseOver:Q,highlightedDataPoints:j,minValue:N,maxValue:E,onSeriesMouseClick:I,prefix:w,suffix:$,stripType:B,highlightColor:Y,dotOpacity:R,resetSelectionOnDoubleClick:_,detailsOnClick:q,styles:g,classNames:h,valueColor:O,animate:S===!0?{duration:.5,once:!0,amount:.5}:S||{duration:0,once:!0,amount:0},noOfTicks:A,dimmedOpacity:ie,precision:oe,customLayers:re}):null})]})}),r||P?i.jsxRuntimeExports.jsx(je.GraphFooter,{styles:{footnote:g?.footnote,source:g?.source},classNames:{footnote:h?.footnote,source:h?.source},sources:r,footNote:P,width:s}):null]})})})})}function Se(L){const{data:o,graphTitle:x,colors:f,sources:r,graphDescription:a,height:u,width:s,footNote:P,colorDomain:W,colorLegendTitle:ee,radius:U,padding:k,backgroundColor:l,leftMargin:z,rightMargin:G,topMargin:X,bottomMargin:D,tooltip:K,relativeHeight:C,onSeriesMouseOver:Q,showColorScale:v,highlightedDataPoints:j,graphID:te,minValue:N,maxValue:E,onSeriesMouseClick:I,noOfTicks:V,graphDownload:m,dataDownload:w,prefix:$,suffix:B,stripType:M,language:Y,highlightColor:R,dotOpacity:T,showNAColor:y,minHeight:d,theme:H,ariaLabel:_,valueColor:q,resetSelectionOnDoubleClick:g,detailsOnClick:h,orientation:O="vertical",styles:S,classNames:A,animate:ie,dimmedOpacity:oe=.3,precision:re,customLayers:b}=L;return O==="vertical"?i.jsxRuntimeExports.jsx(Ne,{data:o,graphTitle:x,colors:f,sources:r,graphDescription:a,height:u,width:s,footNote:P,colorDomain:W,colorLegendTitle:ee,radius:U,padding:k,backgroundColor:l,leftMargin:z,rightMargin:G,topMargin:X,bottomMargin:D,tooltip:K,relativeHeight:C,onSeriesMouseOver:Q,showColorScale:v,highlightedDataPoints:j,graphID:te,minValue:N,maxValue:E,onSeriesMouseClick:I,noOfTicks:V,graphDownload:m,dataDownload:w,prefix:$,suffix:B,stripType:M,language:Y,highlightColor:R,dotOpacity:T,showNAColor:y,minHeight:d,theme:H,ariaLabel:_,resetSelectionOnDoubleClick:g,styles:S,valueColor:q,detailsOnClick:h,classNames:A,animate:ie,dimmedOpacity:oe,precision:re,customLayers:b}):i.jsxRuntimeExports.jsx(Me,{data:o,graphTitle:x,colors:f,sources:r,graphDescription:a,height:u,width:s,footNote:P,colorDomain:W,colorLegendTitle:ee,radius:U,padding:k,backgroundColor:l,leftMargin:z,rightMargin:G,topMargin:X,bottomMargin:D,tooltip:K,relativeHeight:C,onSeriesMouseOver:Q,showColorScale:v,highlightedDataPoints:j,graphID:te,minValue:N,maxValue:E,onSeriesMouseClick:I,noOfTicks:V,graphDownload:m,dataDownload:w,prefix:$,suffix:B,stripType:M,language:Y,highlightColor:R,dotOpacity:T,showNAColor:y,minHeight:d,theme:H,ariaLabel:_,resetSelectionOnDoubleClick:g,styles:S,valueColor:q,detailsOnClick:h,classNames:A,animate:ie,dimmedOpacity:oe,precision:re,customLayers:b})}exports.StripChart=Se;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index-CHPV5EwG-DDoeWRVt.cjs"),ce=require("./index-CZbIGs8q.cjs"),p=require("react"),xe=require("./index-BXns0-ng.cjs"),de=require("./index-BzeLQvXk.cjs"),ge=require("./Modal-tXZlLE5s.cjs"),pe=require("./Tooltip-n8z5bfav.cjs"),J=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),ue=require("./numberFormattingFunction-02t-wJta.cjs"),c=require("./Colors.cjs"),fe=require("./string2HTML-D2Avudmb.cjs"),me=require("./linear-BVckp9RD.cjs"),ye=require("./use-in-view-sQJZ_xDO.cjs"),le=require("./proxy-BHRoeZgd.cjs"),ve=require("./index-BW8iNx7E.cjs"),je=require("./GraphFooter.cjs"),we=require("./GraphHeader.cjs"),Oe=require("./ColorLegendWithMouseOver.cjs"),Ce=require("./EmptyState-d8_8SxeW.cjs");function be(L,o){if(L<2)return[];const x=o/(L-1);return Array.from({length:L},(f,r)=>r*x)}function Ee(L){const{data:o,width:x,height:f,colors:r,colorDomain:a,radius:u,leftMargin:s,rightMargin:P,topMargin:W,bottomMargin:ee,tooltip:U,onSeriesMouseOver:k,highlightedDataPoints:l,selectedColor:z,minValue:G,maxValue:X,onSeriesMouseClick:D,prefix:K,suffix:C,stripType:Q,highlightColor:v,dotOpacity:j,resetSelectionOnDoubleClick:te,detailsOnClick:N,styles:E,classNames:I,valueColor:V,animate:m,noOfTicks:w,dimmedOpacity:$,precision:B,customLayers:M}=L,Y=p.useRef(null),R=ye.useInView(Y,{once:m.once,amount:m.amount}),[T,y]=p.useState(void 0),[d,H]=p.useState(void 0),[_,q]=p.useState(void 0),[g,h]=p.useState(void 0),O={top:W,bottom:ee,left:s,right:P},S=x-O.left-O.right,A=f-O.top-O.bottom,ie=o.map((e,t)=>({...e,id:`${t}`})),oe=de.sortBy(ie,e=>{const t=(l||[]).indexOf(e.label);return t===-1?1/0:t}).reverse(),re=J.checkIfNullOrUndefined(X)?Math.max(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position))<0?0:Math.max(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position)):X,b=J.checkIfNullOrUndefined(G)?Math.min(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position))>=0?0:Math.min(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position)):G,F=me.linear().domain([b,re]).range([0,S]).nice(),ne=be(w,S);return i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[i.jsxRuntimeExports.jsx(le.motion.svg,{width:`${x}px`,height:`${f}px`,viewBox:`0 0 ${x} ${f}`,direction:"ltr",ref:Y,children:i.jsxRuntimeExports.jsxs("g",{transform:`translate(${O.left},${O.top})`,children:[M.filter(e=>e.position==="before").map(e=>e.layer),i.jsxRuntimeExports.jsxs(ve.AnimatePresence,{children:[oe.map(e=>i.jsxRuntimeExports.jsxs(le.motion.g,{className:"undp-viz-g-with-hover",variants:{initial:{opacity:0,x:F(0),y:A/2},whileInView:{x:F(e.position),y:A/2,opacity:z?e.color&&r[a.indexOf(e.color)]===z?.95:$:l.length!==0?l.indexOf(e.label)!==-1?.95:$:j,transition:{duration:m.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:m.duration}},onMouseEnter:t=>{y(e),h(t.clientY),q(t.clientX),k?.(e)},onClick:()=>{(D||N)&&(xe.isEqual(d,e)&&te?(H(void 0),D?.(void 0)):(H(e),D?.(e)))},onMouseMove:t=>{y(e),h(t.clientY),q(t.clientX)},onMouseLeave:()=>{y(void 0),q(void 0),h(void 0),k?.(void 0)},children:[Q==="dot"?i.jsxRuntimeExports.jsx(le.motion.circle,{cy:0,cx:0,variants:{initial:{fill:v&&l?l.indexOf(e.label)!==-1?v:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray},whileInView:{fill:v&&l?l.indexOf(e.label)!==-1?v:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray,transition:{duration:m.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:m.duration}},r:u}):i.jsxRuntimeExports.jsx(le.motion.rect,{y:0-u,x:-1,height:u*2,width:2,variants:{initial:{fill:v&&l?l.indexOf(e.label)!==-1?v:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray},whileInView:{fill:v&&l?l.indexOf(e.label)!==-1?v:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray,transition:{duration:m.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:m.duration}}}),l.length!==0&&l.indexOf(e.label)!==-1?i.jsxRuntimeExports.jsx(le.motion.text,{x:0,y:0-u-5,variants:{initial:{opacity:0},whileInView:{opacity:1,transition:{duration:m.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:m.duration}},style:{fill:V||(v&&l?l.indexOf(e.label)!==-1?v:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray),textAnchor:"middle",...E?.graphObjectValues||{}},className:i.mo("graph-value text-sm font-bold",I?.graphObjectValues),children:ue.numberFormattingFunction(e.position,"NA",B,K,C)}):null]},e.label)),ne.map((e,t)=>i.jsxRuntimeExports.jsx("text",{x:e,y:A/2+u,style:{textAnchor:t===0?"start":t===ne.length-1?"end":"middle",...E?.xAxis?.labels||{}},className:i.mo("fill-primary-gray-550 dark:fill-primary-gray-500 text-xs",I?.xAxis?.labels),dy:"1em",children:ue.numberFormattingFunction(F.invert(e),"NA",B,K,C)},t))]}),M.filter(e=>e.position==="after").map(e=>e.layer)]})}),T&&U&&_&&g?i.jsxRuntimeExports.jsx(pe.Tooltip,{data:T,body:U,xPos:_,yPos:g,backgroundStyle:E?.tooltip,className:I?.tooltip}):null,N&&d!==void 0?i.jsxRuntimeExports.jsx(ge.X,{open:d!==void 0,onClose:()=>{H(void 0)},children:i.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof N=="string"?{__html:fe.string2HTML(N,d)}:void 0,children:typeof N=="function"?N(d):null})}):null]})}function Me(L){const{data:o,graphTitle:x,colors:f,sources:r,graphDescription:a,height:u,width:s,footNote:P,colorDomain:W,colorLegendTitle:ee,radius:U=5,padding:k,backgroundColor:l=!1,leftMargin:z=5,rightMargin:G=5,topMargin:X=10,bottomMargin:D=10,tooltip:K,relativeHeight:C,onSeriesMouseOver:Q,showColorScale:v=!0,highlightedDataPoints:j=[],graphID:te,minValue:N,maxValue:E,onSeriesMouseClick:I,graphDownload:V=!1,dataDownload:m=!1,prefix:w="",suffix:$="",stripType:B="dot",language:M="en",highlightColor:Y,dotOpacity:R=.3,showNAColor:T=!0,minHeight:y=0,theme:d="light",ariaLabel:H,resetSelectionOnDoubleClick:_=!0,detailsOnClick:q,styles:g,classNames:h,valueColor:O,animate:S=!1,noOfTicks:A=2,dimmedOpacity:ie=.3,precision:oe=2,customLayers:re=[]}=L,[b,F]=p.useState(0),[ne,e]=p.useState(0),[t,he]=p.useState(void 0),Z=p.useRef(null),ae=p.useRef(null);return p.useEffect(()=>{const n=new ResizeObserver(se=>{F(s||se[0].target.clientWidth||620),e(u||se[0].target.clientHeight||480)});return Z.current&&(e(Z.current.clientHeight||480),F(Z.current.clientWidth||620),s||n.observe(Z.current)),()=>n.disconnect()},[s,u]),i.jsxRuntimeExports.jsx("div",{className:`${d||"light"} flex ${s?"w-fit grow-0":"w-full grow"}`,dir:M==="he"||M==="ar"?"rtl":void 0,children:i.jsxRuntimeExports.jsx("div",{className:i.mo(`${l?l===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${M||"en"}`,h?.graphContainer),style:{...g?.graphContainer||{},...l&&l!==!0?{backgroundColor:l}:{}},id:te,ref:ae,"aria-label":H||`${x?`The graph shows ${x}. `:""}This is a strip chart showing distribution of data along the horizontal axis. Each dot represents an individual data point, helping to visualize the spread and clustering of values.${a?` ${a}`:""}`,children:i.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:l?k||"1rem":k||0},children:i.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:[x||a||V||m?i.jsxRuntimeExports.jsx(we.GraphHeader,{styles:{title:g?.title,description:g?.description},classNames:{title:h?.title,description:h?.description},graphTitle:x,graphDescription:a,width:s,graphDownload:V?ae.current:void 0,dataDownload:m?o.map(n=>n.data).filter(n=>n!==void 0).length>0?o.map(n=>n.data).filter(n=>n!==void 0):o.filter(n=>n!==void 0):null}):null,i.jsxRuntimeExports.jsx("div",{className:"grow flex flex-col justify-center gap-3 w-full",children:o.length===0?i.jsxRuntimeExports.jsx(Ce.EmptyState,{}):i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[v!==!1&&o.filter(n=>n.color).length!==0?i.jsxRuntimeExports.jsx(Oe.ColorLegendWithMouseOver,{width:s,colorLegendTitle:ee,colors:f||c.Colors[d].categoricalColors.colors,colorDomain:W||ce.uniqBy(o.filter(n=>n.color),"color").map(n=>n.color),setSelectedColor:he,showNAColor:T??!0}):null,i.jsxRuntimeExports.jsx("div",{className:"flex flex-col grow justify-center w-full leading-0",ref:Z,"aria-label":"Graph area",children:(s||b)&&(u||ne)?i.jsxRuntimeExports.jsx(Ee,{data:o,width:s||b,height:Math.max(y,u||(C?y?(s||b)*C>y?(s||b)*C:y:(s||b)*C:ne)),colorDomain:o.filter(n=>n.color).length===0?[]:W||ce.uniqBy(o.filter(n=>n.color),"color").map(n=>n.color),colors:o.filter(n=>n.color).length===0?f?[f]:[c.Colors.primaryColors["blue-600"]]:f||c.Colors[d].categoricalColors.colors,selectedColor:t,radius:U,leftMargin:z,rightMargin:G,topMargin:X,bottomMargin:D,tooltip:K,onSeriesMouseOver:Q,highlightedDataPoints:j,minValue:N,maxValue:E,onSeriesMouseClick:I,prefix:w,suffix:$,stripType:B,highlightColor:Y,dotOpacity:R,resetSelectionOnDoubleClick:_,detailsOnClick:q,styles:g,classNames:h,valueColor:O,animate:S===!0?{duration:.5,once:!0,amount:.5}:S||{duration:0,once:!0,amount:0},noOfTicks:A,dimmedOpacity:ie,precision:oe,customLayers:re}):null})]})}),r||P?i.jsxRuntimeExports.jsx(je.GraphFooter,{styles:{footnote:g?.footnote,source:g?.source},classNames:{footnote:h?.footnote,source:h?.source},sources:r,footNote:P,width:s}):null]})})})})}function Re(L){const{data:o,width:x,height:f,colors:r,colorDomain:a,radius:u,leftMargin:s,rightMargin:P,topMargin:W,bottomMargin:ee,tooltip:U,onSeriesMouseOver:k,highlightedDataPoints:l,selectedColor:z,minValue:G,maxValue:X,onSeriesMouseClick:D,noOfTicks:K,prefix:C,suffix:Q,stripType:v,highlightColor:j,dotOpacity:te,resetSelectionOnDoubleClick:N,detailsOnClick:E,styles:I,classNames:V,valueColor:m,animate:w,dimmedOpacity:$,precision:B,customLayers:M}=L,Y=p.useRef(null),R=ye.useInView(Y,{once:w.once,amount:w.amount}),[T,y]=p.useState(void 0),[d,H]=p.useState(void 0),[_,q]=p.useState(void 0),[g,h]=p.useState(void 0),O={top:W,bottom:ee,left:s,right:P},S=x-O.left-O.right,A=f-O.top-O.bottom,ie=o.map((e,t)=>({...e,id:`${t}`})),oe=de.sortBy(ie,e=>{const t=(l||[]).indexOf(e.label);return t===-1?1/0:t}).reverse(),re=J.checkIfNullOrUndefined(X)?Math.max(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position))<0?0:Math.max(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position)):X,b=J.checkIfNullOrUndefined(G)?Math.min(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position))>=0?0:Math.min(...o.filter(e=>!J.checkIfNullOrUndefined(e.position)).map(e=>e.position)):G,F=me.linear().domain([b,re]).range([A,0]).nice(),ne=be(K,A);return i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[i.jsxRuntimeExports.jsx(le.motion.svg,{width:`${x}px`,height:`${f}px`,viewBox:`0 0 ${x} ${f}`,direction:"ltr",ref:Y,children:i.jsxRuntimeExports.jsxs("g",{transform:`translate(${O.left},${O.top})`,children:[M.filter(e=>e.position==="before").map(e=>e.layer),i.jsxRuntimeExports.jsxs(ve.AnimatePresence,{children:[oe.map(e=>i.jsxRuntimeExports.jsxs(le.motion.g,{className:"undp-viz-g-with-hover",variants:{initial:{opacity:0,x:S/2,y:F(0)},whileInView:{x:S/2,y:F(e.position),opacity:z?e.color&&r[a.indexOf(e.color)]===z?.95:$:l.length!==0?l.indexOf(e.label)!==-1?.95:$:te,transition:{duration:w.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:w.duration}},onMouseEnter:t=>{y(e),h(t.clientY),q(t.clientX),k?.(e)},onClick:()=>{(D||E)&&(xe.isEqual(d,e)&&N?(H(void 0),D?.(void 0)):(H(e),D?.(e)))},onMouseMove:t=>{y(e),h(t.clientY),q(t.clientX)},onMouseLeave:()=>{y(void 0),q(void 0),h(void 0),k?.(void 0)},children:[v==="dot"?i.jsxRuntimeExports.jsx(le.motion.circle,{cy:0,cx:0,variants:{initial:{fill:j&&l?l.indexOf(e.label)!==-1?j:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray},whileInView:{fill:j&&l?l.indexOf(e.label)!==-1?j:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray,transition:{duration:w.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:w.duration}},r:u}):i.jsxRuntimeExports.jsx(le.motion.rect,{x:0-u,y:-1,width:u*2,height:2,variants:{initial:{fill:j&&l?l.indexOf(e.label)!==-1?j:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray},whileInView:{fill:j&&l?l.indexOf(e.label)!==-1?j:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray,transition:{duration:w.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:w.duration}}}),l.length!==0&&l.indexOf(e.label)!==-1?i.jsxRuntimeExports.jsx(le.motion.text,{y:0,dy:"0.33em",x:0+u+3,variants:{initial:{opacity:0},whileInView:{opacity:1,transition:{duration:w.duration}}},initial:"initial",animate:R?"whileInView":"initial",exit:{opacity:0,transition:{duration:w.duration}},style:{fill:m||(j&&l?l.indexOf(e.label)!==-1?j:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray:o.filter(t=>t.color).length===0?r[0]:e.color?r[a.indexOf(e.color)]:c.Colors.gray),textAnchor:"start",...I?.graphObjectValues||{}},className:i.mo("graph-value text-sm font-bold",V?.graphObjectValues),children:ue.numberFormattingFunction(e.position,"NA",B,C,Q)}):null]},e.label)),ne.map((e,t)=>i.jsxRuntimeExports.jsx("text",{y:e,x:S/2+u+5,style:{textAnchor:"start",...I?.yAxis?.labels||{}},className:i.mo("fill-primary-gray-550 dark:fill-primary-gray-500 text-xs",V?.yAxis?.labels),children:ue.numberFormattingFunction(F.invert(e),"NA",B,C,Q)},t))]}),M.filter(e=>e.position==="after").map(e=>e.layer)]})}),T&&U&&_&&g?i.jsxRuntimeExports.jsx(pe.Tooltip,{data:T,body:U,xPos:_,yPos:g,backgroundStyle:I?.tooltip,className:V?.tooltip}):null,E&&d!==void 0?i.jsxRuntimeExports.jsx(ge.X,{open:d!==void 0,onClose:()=>{H(void 0)},children:i.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof E=="string"?{__html:fe.string2HTML(E,d)}:void 0,children:typeof E=="function"?E(d):null})}):null]})}function Ne(L){const{data:o,graphTitle:x,colors:f,sources:r,graphDescription:a,height:u,width:s,footNote:P,colorDomain:W,colorLegendTitle:ee,radius:U=5,padding:k,backgroundColor:l=!1,leftMargin:z=20,rightMargin:G=20,topMargin:X=10,bottomMargin:D=10,tooltip:K,relativeHeight:C,onSeriesMouseOver:Q,showColorScale:v=!0,highlightedDataPoints:j=[],graphID:te,minValue:N,maxValue:E,onSeriesMouseClick:I,graphDownload:V=!1,dataDownload:m=!1,prefix:w="",suffix:$="",stripType:B="dot",language:M="en",highlightColor:Y,dotOpacity:R=.3,showNAColor:T=!0,minHeight:y=0,theme:d="light",ariaLabel:H,resetSelectionOnDoubleClick:_=!0,detailsOnClick:q,styles:g,classNames:h,valueColor:O,animate:S=!1,noOfTicks:A=2,dimmedOpacity:ie=.3,precision:oe=2,customLayers:re=[]}=L,[b,F]=p.useState(0),[ne,e]=p.useState(0),[t,he]=p.useState(void 0),Z=p.useRef(null),ae=p.useRef(null);return p.useEffect(()=>{const n=new ResizeObserver(se=>{F(s||se[0].target.clientWidth||620),e(u||se[0].target.clientHeight||480)});return Z.current&&(e(Z.current.clientHeight||480),F(Z.current.clientWidth||620),s||n.observe(Z.current)),()=>n.disconnect()},[s,u]),i.jsxRuntimeExports.jsx("div",{className:`${d||"light"} flex ${s?"w-fit grow-0":"w-full grow"}`,dir:M==="he"||M==="ar"?"rtl":void 0,children:i.jsxRuntimeExports.jsx("div",{className:i.mo(`${l?l===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${M||"en"}`,h?.graphContainer),style:{...g?.graphContainer||{},...l&&l!==!0?{backgroundColor:l}:{}},id:te,ref:ae,"aria-label":H||`${x?`The graph shows ${x}. `:""}This is a strip chart showing distribution of data along the vertical axis. Each dot represents an individual data point, helping to visualize the spread and clustering of values.${a?` ${a}`:""}`,children:i.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:l?k||"1rem":k||0},children:i.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:[x||a||V||m?i.jsxRuntimeExports.jsx(we.GraphHeader,{styles:{title:g?.title,description:g?.description},classNames:{title:h?.title,description:h?.description},graphTitle:x,graphDescription:a,width:s,graphDownload:V?ae.current:void 0,dataDownload:m?o.map(n=>n.data).filter(n=>n!==void 0).length>0?o.map(n=>n.data).filter(n=>n!==void 0):o.filter(n=>n!==void 0):null}):null,i.jsxRuntimeExports.jsx("div",{className:"grow flex flex-col justify-center gap-3 w-full",children:o.length===0?i.jsxRuntimeExports.jsx(Ce.EmptyState,{}):i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[v!==!1&&o.filter(n=>n.color).length!==0?i.jsxRuntimeExports.jsx(Oe.ColorLegendWithMouseOver,{width:s,colorLegendTitle:ee,colors:f||c.Colors[d].categoricalColors.colors,colorDomain:W||ce.uniqBy(o.filter(n=>n.color),"color").map(n=>n.color),setSelectedColor:he,showNAColor:T}):null,i.jsxRuntimeExports.jsx("div",{className:"flex flex-col grow justify-center w-full leading-0",ref:Z,children:(s||b)&&(u||ne)?i.jsxRuntimeExports.jsx(Re,{data:o,width:s||b,height:Math.max(y,u||(C?y?(s||b)*C>y?(s||b)*C:y:(s||b)*C:ne)),colorDomain:o.filter(n=>n.color).length===0?[]:W||ce.uniqBy(o.filter(n=>n.color),"color").map(n=>n.color),colors:o.filter(n=>n.color).length===0?f?[f]:[c.Colors.primaryColors["blue-600"]]:f||c.Colors[d].categoricalColors.colors,selectedColor:t,radius:U,leftMargin:z,rightMargin:G,topMargin:X,bottomMargin:D,tooltip:K,onSeriesMouseOver:Q,highlightedDataPoints:j,minValue:N,maxValue:E,onSeriesMouseClick:I,prefix:w,suffix:$,stripType:B,highlightColor:Y,dotOpacity:R,resetSelectionOnDoubleClick:_,detailsOnClick:q,styles:g,classNames:h,valueColor:O,animate:S===!0?{duration:.5,once:!0,amount:.5}:S||{duration:0,once:!0,amount:0},noOfTicks:A,dimmedOpacity:ie,precision:oe,customLayers:re}):null})]})}),r||P?i.jsxRuntimeExports.jsx(je.GraphFooter,{styles:{footnote:g?.footnote,source:g?.source},classNames:{footnote:h?.footnote,source:h?.source},sources:r,footNote:P,width:s}):null]})})})})}function Se(L){const{data:o,graphTitle:x,colors:f,sources:r,graphDescription:a,height:u,width:s,footNote:P,colorDomain:W,colorLegendTitle:ee,radius:U,padding:k,backgroundColor:l,leftMargin:z,rightMargin:G,topMargin:X,bottomMargin:D,tooltip:K,relativeHeight:C,onSeriesMouseOver:Q,showColorScale:v,highlightedDataPoints:j,graphID:te,minValue:N,maxValue:E,onSeriesMouseClick:I,noOfTicks:V,graphDownload:m,dataDownload:w,prefix:$,suffix:B,stripType:M,language:Y,highlightColor:R,dotOpacity:T,showNAColor:y,minHeight:d,theme:H,ariaLabel:_,valueColor:q,resetSelectionOnDoubleClick:g,detailsOnClick:h,orientation:O="vertical",styles:S,classNames:A,animate:ie,dimmedOpacity:oe=.3,precision:re,customLayers:b}=L;return O==="vertical"?i.jsxRuntimeExports.jsx(Ne,{data:o,graphTitle:x,colors:f,sources:r,graphDescription:a,height:u,width:s,footNote:P,colorDomain:W,colorLegendTitle:ee,radius:U,padding:k,backgroundColor:l,leftMargin:z,rightMargin:G,topMargin:X,bottomMargin:D,tooltip:K,relativeHeight:C,onSeriesMouseOver:Q,showColorScale:v,highlightedDataPoints:j,graphID:te,minValue:N,maxValue:E,onSeriesMouseClick:I,noOfTicks:V,graphDownload:m,dataDownload:w,prefix:$,suffix:B,stripType:M,language:Y,highlightColor:R,dotOpacity:T,showNAColor:y,minHeight:d,theme:H,ariaLabel:_,resetSelectionOnDoubleClick:g,styles:S,valueColor:q,detailsOnClick:h,classNames:A,animate:ie,dimmedOpacity:oe,precision:re,customLayers:b}):i.jsxRuntimeExports.jsx(Me,{data:o,graphTitle:x,colors:f,sources:r,graphDescription:a,height:u,width:s,footNote:P,colorDomain:W,colorLegendTitle:ee,radius:U,padding:k,backgroundColor:l,leftMargin:z,rightMargin:G,topMargin:X,bottomMargin:D,tooltip:K,relativeHeight:C,onSeriesMouseOver:Q,showColorScale:v,highlightedDataPoints:j,graphID:te,minValue:N,maxValue:E,onSeriesMouseClick:I,noOfTicks:V,graphDownload:m,dataDownload:w,prefix:$,suffix:B,stripType:M,language:Y,highlightColor:R,dotOpacity:T,showNAColor:y,minHeight:d,theme:H,ariaLabel:_,resetSelectionOnDoubleClick:g,styles:S,valueColor:q,detailsOnClick:h,classNames:A,animate:ie,dimmedOpacity:oe,precision:re,customLayers:b})}exports.StripChart=Se;
|
|
2
2
|
//# sourceMappingURL=StripChart.cjs.map
|