@undp/data-viz 2.0.7 → 2.0.9
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/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.js +1 -1
- package/dist/DataCards.cjs +1 -1
- package/dist/DataCards.js +1 -1
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.cjs.map +1 -1
- package/dist/GriddedGraphs.d.ts +1 -0
- package/dist/GriddedGraphs.js +152 -140
- package/dist/GriddedGraphs.js.map +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +1 -0
- package/dist/HybridMap.cjs +1 -1
- package/dist/HybridMap.js +1 -1
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.cjs.map +1 -1
- package/dist/MultiGraphDashboard.d.ts +1 -0
- package/dist/MultiGraphDashboard.js +88 -83
- package/dist/MultiGraphDashboard.js.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +74 -70
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.cjs.map +1 -1
- package/dist/SingleGraphDashboard.d.ts +1 -0
- package/dist/SingleGraphDashboard.js +122 -119
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js +126 -122
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -0
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.js +1 -1
- package/dist/Types.d.ts +1 -0
- package/dist/{getGraphList-gf02xgT2.cjs → getGraphList-CA17dvFB.cjs} +2 -2
- package/dist/getGraphList-CA17dvFB.cjs.map +1 -0
- package/dist/{getGraphList-BpEWn1Tk.js → getGraphList-Dxwo9TDb.js} +7 -1
- package/dist/{getGraphList-BpEWn1Tk.js.map → getGraphList-Dxwo9TDb.js.map} +1 -1
- package/dist/getSchema.cjs +1 -1
- package/dist/getSchema.js +1 -1
- package/dist/getUniqValue-DsqSii6M.js +11 -0
- package/dist/getUniqValue-DsqSii6M.js.map +1 -0
- package/dist/getUniqValue-NX8DgwND.cjs +2 -0
- package/dist/getUniqValue-NX8DgwND.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -4
- package/dist/transformData.cjs +1 -1
- package/dist/transformData.js +2 -2
- package/dist/{transformDataForAggregation-CjwEAUOR.js → transformDataForAggregation-DEU__LUl.js} +2 -2
- package/dist/{transformDataForAggregation-CjwEAUOR.js.map → transformDataForAggregation-DEU__LUl.js.map} +1 -1
- package/dist/{transformDataForAggregation-DAGK2BZy.cjs → transformDataForAggregation-XNg0OGYE.cjs} +2 -2
- package/dist/{transformDataForAggregation-DAGK2BZy.cjs.map → transformDataForAggregation-XNg0OGYE.cjs.map} +1 -1
- package/dist/{transformDataForGraphFromFile-D5TMQYYd.js → transformDataForGraphFromFile-CSG24iF6.js} +2 -2
- package/dist/{transformDataForGraphFromFile-D5TMQYYd.js.map → transformDataForGraphFromFile-CSG24iF6.js.map} +1 -1
- package/dist/{transformDataForGraphFromFile-B1zJSPRP.cjs → transformDataForGraphFromFile-CzepNVGZ.cjs} +2 -2
- package/dist/{transformDataForGraphFromFile-B1zJSPRP.cjs.map → transformDataForGraphFromFile-CzepNVGZ.cjs.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +2 -2
- package/dist/validateSchema.cjs +1 -1
- package/dist/validateSchema.js +1 -1
- package/package.json +1 -1
- package/dist/getGraphList-gf02xgT2.cjs.map +0 -1
- package/dist/getUniqValue-BKHCm3zE.js +0 -11
- package/dist/getUniqValue-BKHCm3zE.js.map +0 -1
- package/dist/getUniqValue-RViz8tTw.cjs +0 -2
- package/dist/getUniqValue-RViz8tTw.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GriddedGraphs.js","sources":["../src/Components/Dashboard/GriddedGraphs.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n noOfColumns?: number;\r\n columnGridBy: string;\r\n graphSettings?: GraphSettingsDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n graphType: Exclude<GraphType, 'geoHubMap' | 'geoHubCompareMap' | 'geoHubMapWithLayerSelection'>;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n showCommonColorScale?: boolean;\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n minGraphHeight?: number;\r\n minGraphWidth?: number;\r\n debugMode?: boolean;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n theme?: 'dark' | 'light';\r\n}\r\n\r\nexport function GriddedGraphs(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n noOfColumns,\r\n columnGridBy,\r\n dataFilters,\r\n showCommonColorScale,\r\n minGraphHeight,\r\n minGraphWidth,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n uiMode = 'normal',\r\n theme = 'light',\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [dataFromFile, setDataFromFile] = useState<any>(undefined);\r\n const [gridOption, setGridOption] = useState<(string | number)[]>([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n\r\n const filteredData = useMemo(() => {\r\n if (!dataFromFile || filterSettings.length === 0) return dataFromFile;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = dataFromFile.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n return result;\r\n }, [filterSettings, dataFromFile]);\r\n useEffect(() => {\r\n setData(filteredData);\r\n }, [filteredData]);\r\n\r\n const fetchDataHandler = useCallback(async () => {\r\n if (dataSettings) {\r\n try {\r\n const fetchData = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : fetchAndParseMultipleDataSources(dataSettings.dataURL, dataSettings.idColumnTitle)\r\n : transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n\r\n const d = await fetchData;\r\n setDataFromFile(d);\r\n\r\n const gridValue = getUniqValue(d, columnGridBy) as (string | number)[];\r\n setGridOption(gridValue);\r\n // Optimize filter settings generation\r\n const newFilterSettings = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(d, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n\r\n setFilterSettings(newFilterSettings);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n }\r\n }, [dataSettings, debugMode, columnGridBy, filters]);\r\n useEffect(() => {\r\n fetchDataHandler();\r\n }, [fetchDataHandler]);\r\n useEffect(() => {\r\n setGraphConfig(graphDataConfiguration);\r\n }, [graphDataConfiguration]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = useCallback((filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n }, []);\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel || 'This is a gridded graph'}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n >\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {data && gridOption.length > 0 ? (\r\n <>\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n controlShouldRenderValue\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isMulti\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el.map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n flexWrap: 'wrap',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n <DropdownSelect\r\n variant={uiMode}\r\n options={d.availableValues}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <>\r\n <DropdownSelect\r\n variant={uiMode}\r\n options={d.availableValues}\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n />\r\n {d.allowSelectAll ? (\r\n <button\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n type='button'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ) : null}\r\n {showCommonColorScale !== false && graphSettings?.showColorScale !== false ? (\r\n <ColorLegend\r\n width={graphSettings?.width}\r\n colorLegendTitle={graphSettings?.colorLegendTitle}\r\n colors={\r\n (graphSettings?.colors as string[] | undefined) ||\r\n (graphSettings?.lineColors as string[] | undefined) ||\r\n Colors[(graphSettings?.theme as 'light' | 'dark' | undefined) || 'light']\r\n .categoricalColors.colors\r\n }\r\n colorDomain={graphSettings?.colorDomain || graphSettings?.labels || []}\r\n showNAColor={\r\n graphSettings?.showNAColor === undefined || graphSettings?.showNAColor === null\r\n ? true\r\n : graphSettings?.showNAColor\r\n }\r\n />\r\n ) : null}\r\n <div\r\n className={`flex flex-wrap gap-4 justify-center ${graphSettings?.language === 'ar' || graphSettings?.language === 'he' ? 'flex-row-reverse' : 'flex-row'}`}\r\n >\r\n {gridOption.map((el, i) => (\r\n <div\r\n key={i}\r\n style={{\r\n width: `calc(${\r\n 100 / (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }% - ${\r\n ((noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number)) - 1) /\r\n (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }rem)`,\r\n minWidth: checkIfNullOrUndefined(minGraphWidth) ? '280px' : `${minGraphWidth}px`,\r\n }}\r\n >\r\n <GraphEl\r\n graph={graphType}\r\n graphDataConfiguration={graphConfig}\r\n graphData={\r\n transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n graphType,\r\n graphConfig,\r\n ) || []\r\n }\r\n debugMode={debugMode}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n theme: graphSettings?.theme || theme,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: graphSettings?.relativeHeight || 0.67,\r\n minHeight: minGraphHeight,\r\n graphTitle: `${el}`,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n footNote: undefined,\r\n sources: undefined,\r\n showColorScale:\r\n graphSettings?.showColorScale === false\r\n ? false\r\n : showCommonColorScale === false,\r\n }}\r\n readableHeader={readableHeader || []}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n {graphSettings?.sources || graphSettings?.footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: graphSettings?.styles?.footnote,\r\n source: graphSettings?.styles?.source,\r\n }}\r\n classNames={{\r\n footnote: graphSettings?.classNames?.footnote,\r\n source: graphSettings?.classNames?.source,\r\n }}\r\n sources={graphSettings?.sources}\r\n footNote={graphSettings?.footNote}\r\n width={graphSettings?.width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["GriddedGraphs","props","graphSettings","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","noOfColumns","columnGridBy","dataFilters","showCommonColorScale","minGraphHeight","minGraphWidth","debugMode","dataSelectionOptions","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","uiMode","theme","data","setData","useState","undefined","dataFromFile","setDataFromFile","gridOption","setGridOption","graphParentDiv","useRef","graphConfig","setGraphConfig","filterSettings","setFilterSettings","advancedGraphSettings","setAdvancedGraphSettings","filterConfig","useMemo","ignoreCase","ignoreAccents","trim","filteredData","length","filter","item","every","value","flattenDeep","intersection","map","el","useEffect","fetchDataHandler","useCallback","d","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","gridValue","getUniqValue","newFilterSettings","column","label","singleSelect","clearable","defaultValue","transformDefaultValue","availableValues","v","excludeValues","includes","allowSelectAll","width","error","console","handleFilterChange","values","prev","f","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","language","height","padding","graphTitle","graphDescription","graphDownload","dataDownload","jsx","GraphHeader","title","description","jsxs","Fragment","i","flexGrow","flexShrink","ui","minWidth","Label","DropdownSelect","options","opt","dataConfiguration","RadioGroup","selectedOption","findIndex","j","RadioGroupItem","chartConfigId","checkIfMultiple","allowedColumnIds","columnId","createFilter","newGraphConfig","updatedConfig","CheckboxGroup","CheckboxGroupItem","flexWrap","showColorScale","ColorLegend","colorLegendTitle","colors","lineColors","Colors","categoricalColors","colorDomain","labels","showNAColor","Math","min","checkIfNullOrUndefined","GraphEl","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","relativeHeight","minHeight","footNote","sources","Spinner","GraphFooter","footnote","source"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GriddedGraphs.js","sources":["../src/Components/Dashboard/GriddedGraphs.tsx"],"sourcesContent":["import { useCallback, useEffect, useEffectEvent, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n noOfColumns?: number;\r\n columnGridBy: string;\r\n graphSettings?: GraphSettingsDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n graphType: Exclude<GraphType, 'geoHubMap' | 'geoHubCompareMap' | 'geoHubMapWithLayerSelection'>;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n showCommonColorScale?: boolean;\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n minGraphHeight?: number;\r\n minGraphWidth?: number;\r\n debugMode?: boolean;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n theme?: 'dark' | 'light';\r\n}\r\n\r\nexport function GriddedGraphs(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n noOfColumns,\r\n columnGridBy,\r\n dataFilters,\r\n showCommonColorScale,\r\n minGraphHeight,\r\n minGraphWidth,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n uiMode = 'normal',\r\n theme = 'light',\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [dataFromFile, setDataFromFile] = useState<any>(undefined);\r\n const [gridOption, setGridOption] = useState<(string | number)[]>([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n\r\n const filteredData = useMemo(() => {\r\n if (!dataFromFile || filterSettings.length === 0) return dataFromFile;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = dataFromFile.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n return result;\r\n }, [filterSettings, dataFromFile]);\r\n useEffect(() => {\r\n setData(filteredData);\r\n }, [filteredData]);\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n ui: el.ui,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(dataFromFile, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const fetchDataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setDataFromFile(fetchDataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters, dataFromFile]);\r\n\r\n const updateGridOptionEvent = useEffectEvent(() => {\r\n const gridValue = getUniqValue(dataFromFile, columnGridBy) as (string | number)[];\r\n setGridOption(gridValue);\r\n });\r\n useEffect(() => {\r\n updateGridOptionEvent();\r\n }, [columnGridBy, dataFromFile]);\r\n useEffect(() => {\r\n setGraphConfig(graphDataConfiguration);\r\n }, [graphDataConfiguration]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = useCallback((filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n }, []);\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel || 'This is a gridded graph'}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n >\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {data && gridOption.length > 0 ? (\r\n <>\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n controlShouldRenderValue\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isMulti\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el.map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n isRtl={graphSettings?.language === 'ar' || graphSettings?.language === 'he'}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n flexWrap: 'wrap',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={(d.defaultValue as { value: string; label: string }).value}\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => v.value === el),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <RadioGroupItem label={`${el.label}`} value={`${el.value}`} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ) : null}\r\n {showCommonColorScale !== false && graphSettings?.showColorScale !== false ? (\r\n <ColorLegend\r\n width={graphSettings?.width}\r\n colorLegendTitle={graphSettings?.colorLegendTitle}\r\n colors={\r\n (graphSettings?.colors as string[] | undefined) ||\r\n (graphSettings?.lineColors as string[] | undefined) ||\r\n Colors[(graphSettings?.theme as 'light' | 'dark' | undefined) || 'light']\r\n .categoricalColors.colors\r\n }\r\n colorDomain={graphSettings?.colorDomain || graphSettings?.labels || []}\r\n showNAColor={\r\n graphSettings?.showNAColor === undefined || graphSettings?.showNAColor === null\r\n ? true\r\n : graphSettings?.showNAColor\r\n }\r\n />\r\n ) : null}\r\n <div\r\n className={`flex flex-wrap gap-4 justify-center ${graphSettings?.language === 'ar' || graphSettings?.language === 'he' ? 'flex-row-reverse' : 'flex-row'}`}\r\n >\r\n {gridOption.map((el, i) => (\r\n <div\r\n key={i}\r\n style={{\r\n width: `calc(${\r\n 100 / (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }% - ${\r\n ((noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number)) - 1) /\r\n (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }rem)`,\r\n minWidth: checkIfNullOrUndefined(minGraphWidth) ? '280px' : `${minGraphWidth}px`,\r\n }}\r\n >\r\n <GraphEl\r\n graph={graphType}\r\n graphDataConfiguration={graphConfig}\r\n graphData={\r\n transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n graphType,\r\n graphConfig,\r\n ) || []\r\n }\r\n debugMode={debugMode}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n theme: graphSettings?.theme || theme,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: graphSettings?.relativeHeight || 0.67,\r\n minHeight: minGraphHeight,\r\n graphTitle: `${el}`,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n footNote: undefined,\r\n sources: undefined,\r\n showColorScale:\r\n graphSettings?.showColorScale === false\r\n ? false\r\n : showCommonColorScale === false,\r\n }}\r\n readableHeader={readableHeader || []}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n {graphSettings?.sources || graphSettings?.footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: graphSettings?.styles?.footnote,\r\n source: graphSettings?.styles?.source,\r\n }}\r\n classNames={{\r\n footnote: graphSettings?.classNames?.footnote,\r\n source: graphSettings?.classNames?.source,\r\n }}\r\n sources={graphSettings?.sources}\r\n footNote={graphSettings?.footNote}\r\n width={graphSettings?.width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["GriddedGraphs","props","graphSettings","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","noOfColumns","columnGridBy","dataFilters","showCommonColorScale","minGraphHeight","minGraphWidth","debugMode","dataSelectionOptions","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","uiMode","theme","data","setData","useState","undefined","dataFromFile","setDataFromFile","gridOption","setGridOption","graphParentDiv","useRef","graphConfig","setGraphConfig","filterSettings","setFilterSettings","advancedGraphSettings","setAdvancedGraphSettings","filterConfig","useMemo","ignoreCase","ignoreAccents","trim","filteredData","length","filter","item","every","value","flattenDeep","intersection","map","el","useEffect","updateFiltersEvent","useEffectEvent","filterSettingsTemp","column","label","singleSelect","clearable","ui","defaultValue","transformDefaultValue","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","fetchData","fetchDataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","updateGridOptionEvent","gridValue","handleFilterChange","useCallback","values","prev","f","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","language","height","padding","graphTitle","graphDescription","graphDownload","dataDownload","jsx","GraphHeader","title","description","jsxs","Fragment","d","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","options","opt","dataConfiguration","RadioGroup","selectedOption","findIndex","j","RadioGroupItem","chartConfigId","checkIfMultiple","allowedColumnIds","columnId","createFilter","newGraphConfig","updatedConfig","CheckboxGroup","CheckboxGroupItem","flexWrap","indexOf","showColorScale","ColorLegend","colorLegendTitle","colors","lineColors","Colors","categoricalColors","colorDomain","labels","showNAColor","Math","min","checkIfNullOrUndefined","GraphEl","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","relativeHeight","minHeight","footNote","sources","Spinner","GraphFooter","footnote","source"],"mappings":"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"}
|
package/dist/HybridMap.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-CHPV5EwG-CTPQjnHt.cjs"),u=require("react"),bt=require("./parse-hMnG_lRV.cjs"),Et=require("./getSliderMarks-BmADcPQt.cjs"),Ot=require("./Spinner-DRMBUsX7.cjs"),wt=require("./index-DQA8q5sC.cjs"),pe=require("./zoom-DPw8bba-.cjs"),It=require("./Modal-JW_IExO3.cjs"),ft=require("./Typography-DX7PlgQU.cjs"),Pt=require("./index-DxXnJ8Ti.cjs"),kt=require("./Source-DYMJRrsq.cjs"),Lt=require("./index-Dzc_aaI9-BmkfPMyc.cjs"),zt=require("./Tooltip-4dJo4_AF.cjs"),_t=require("./string2HTML-CPGr_I5E.cjs"),vt=require("./index-DRXx7m-C.cjs"),Vt=require("./pow-DgrUorRi.cjs"),Tt=require("./ordinal-CrsysVE-.cjs"),Bt=require("./threshold-DNsSUf8Q.cjs"),yt=require("./select-Bnfk0lJx.cjs"),it=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),Wt=require("./numberFormattingFunction-02t-wJta.cjs"),Ft=require("./use-in-view-QcfiW0w3.cjs"),xe=require("./proxy-BxvUI_9l.cjs"),At=require("./index-DG2bgAva.cjs"),Ht=require("./GraphFooter.cjs"),Ut=require("./GraphHeader.cjs"),De=require("./Colors.cjs"),Gt=require("./fetchAndParseData-l5HGMAEs.cjs"),Xt=require("./uniqBy-O05lp2S5.cjs"),Rt=require("./GraphContainer-d8A46BK2.cjs"),Yt=require("./sort-O96oMZLb.cjs"),Jt=require("./getUniqValue-RViz8tTw.cjs"),Kt=require("./getJenks-GYmdwBqm.cjs"),Zt=require("./init-DU0ybBc_.cjs");function Qt(i){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const t in i)if(t!=="default"){const c=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(e,t,c.get?c:{enumerable:!0,get:()=>i[t]})}}return e.default=i,Object.freeze(e)}const eo=Qt(u);var to="Separator",Ct="horizontal",oo=["horizontal","vertical"],St=eo.forwardRef((i,e)=>{const{decorative:t,orientation:c=Ct,...j}=i,a=ro(c)?c:Ct,b=t?{role:"none"}:{"aria-orientation":a==="vertical"?a:void 0,role:"separator"};return r.ae.jsx(Lt.w.div,{"data-orientation":a,...b,...j,ref:e})});St.displayName=to;function ro(i){return oo.includes(i)}var Nt=St;const Dt=u.forwardRef((i,e)=>{const t=r._.c(14);let c,j,a,b;t[0]!==i?({className:c,variant:a,orientation:b,...j}=i,t[0]=i,t[1]=c,t[2]=j,t[3]=a,t[4]=b):(c=t[1],j=t[2],a=t[3],b=t[4]);const E=a===void 0?"dark":a,d=b===void 0?"horizontal":b,x=d==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",D=E==="dark"?"bg-primary-gray-600 dark:bg-primary-gray-200":"bg-primary-gray-400 dark:bg-primary-gray-550";let C;t[5]!==c||t[6]!==x||t[7]!==D?(C=r.mo(x,D,c),t[5]=c,t[6]=x,t[7]=D,t[8]=C):C=t[8];let I;return t[9]!==d||t[10]!==j||t[11]!==e||t[12]!==C?(I=r.ae.jsx(Nt,{...j,ref:e,orientation:d,className:C}),t[9]=d,t[10]=j,t[11]=e,t[12]=C,t[13]=I):I=t[13],I});Dt.displayName=Nt.displayName;function io(i){const{data:e,colors:t,mapData:c,mapColorLegendTitle:j,colorDomain:a,radius:b,height:E,width:d,scale:x,centerPoint:D,tooltip:C,showLabels:I,mapBorderWidth:ee,mapBorderColor:te,mapNoDataColor:he,onSeriesMouseOver:J,showColorScale:qe,zoomScaleExtend:Fe,zoomTranslateExtend:Ae,highlightedDataPoints:Me,onSeriesMouseClick:B,resetSelectionOnDoubleClick:$e,detailsOnClick:M,styles:$,classNames:ge,mapProjection:oe,zoomInteraction:K,animate:g,dimmedOpacity:W,customLayers:fe,maxRadiusValue:ye,categorical:re,dotColor:Z,collapseColorScaleByDefault:Oe,highlightedIds:ie,mapProperty:ve,dotLegendTitle:je,dotBorderColor:Ie,labelColor:Pe}=i,[P,L]=u.useState(void 0),[y,f]=u.useState(Oe===void 0?!(d<680):!Oe),ne=u.useRef(null),[F,Q]=u.useState(void 0),[Le,O]=u.useState(void 0),[ae,A]=u.useState(void 0),[be,H]=u.useState(void 0),z=u.useRef(null),U=Ft.useInView(z,{once:g.once,amount:g.amount}),Ee=u.useRef(null),_=e.filter(o=>o.radius===void 0||o.radius===null).length!==e.length?Vt.sqrt().domain([0,ye]).range([.25,b]).nice():void 0,He=re?Tt.ordinal().domain(a).range(t):Bt.threshold().domain(a).range(t);u.useEffect(()=>{const o=yt.select(Ee.current),n=yt.select(z.current),q=m=>{if(K==="noZoom")return!1;if(K==="button")return!m.type.includes("wheel");const l=m.type==="wheel",w=m.type.startsWith("touch"),p=m.type==="mousedown"||m.type==="mousemove";return w?!0:l?K==="scroll"?!0:m.ctrlKey:p&&!m.button&&!m.ctrlKey},s=pe.zoom().scaleExtent(Fe).translateExtent(Ae||[[-20,-20],[d+20,E+20]]).filter(q).on("zoom",({transform:m})=>{o.attr("transform",m)});n.call(s),ne.current=s},[E,d,K]);const S=pe.turf_bbox_default(c),V=Pt.turf_center_of_mass_default(c),G=S[2]-S[0],ze=S[3]-S[1],_e=d*190/960*360/G,Ve=E*190/678*180/ze,X=x*Math.min(_e,Ve),T=oe==="mercator"?pe.geoMercator().rotate([0,0]).center(D||V.geometry.coordinates).translate([d/2,E/2]).scale(X):oe==="equalEarth"?pe.geoEqualEarth().rotate([0,0]).center(D||V.geometry.coordinates).translate([d/2,E/2]).scale(X):oe==="naturalEarth"?pe.geoNaturalEarth1().rotate([0,0]).center(D||V.geometry.coordinates).translate([d/2,E/2]).scale(X):oe==="orthographic"?pe.geoOrthographic().rotate([0,0]).center(D||V.geometry.coordinates).translate([d/2,E/2]).scale(X):pe.geoAlbersUsa().rotate([0,0]).center(D||V.geometry.coordinates).translate([d/2,E/2]).scale(X),we=o=>{if(!z.current||!ne.current)return;yt.select(z.current).call(ne.current.scaleBy,o==="in"?1.2:1/1.2)};return r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsxs("div",{className:"relative",children:[r.jsxRuntimeExports.jsx(xe.motion.svg,{width:`${d}px`,height:`${E}px`,viewBox:`0 0 ${d} ${E}`,ref:z,direction:"ltr",children:r.jsxRuntimeExports.jsxs("g",{ref:Ee,children:[fe.filter(o=>o.position==="before").map(o=>o.layer),c.features.map((o,n)=>e.findIndex(s=>s.id===o.properties[ve])!==-1?null:r.jsxRuntimeExports.jsx("g",{opacity:P?W:ie.length!==0?ie.indexOf(o.properties[ve])!==-1?1:W:1,children:o.geometry.type==="MultiPolygon"?o.geometry.coordinates.map((s,m)=>{let l="";return s.forEach(w=>{let p=" M";w.forEach((h,se)=>{const N=T([h[0],h[1]]);se!==w.length-1?p=`${p}${N[0]} ${N[1]}L`:p=`${p}${N[0]} ${N[1]}`}),l+=p}),r.jsxRuntimeExports.jsx("path",{d:l,style:{stroke:te,strokeWidth:ee,fill:he}},m)}):o.geometry.coordinates.map((s,m)=>{let l="M";return s.forEach((w,p)=>{const h=T([w[0],w[1]]);p!==s.length-1?l=`${l}${h[0]} ${h[1]}L`:l=`${l}${h[0]} ${h[1]}`}),r.jsxRuntimeExports.jsx("path",{d:l,style:{stroke:te,strokeWidth:ee,fill:he}},m)})},n)),r.jsxRuntimeExports.jsxs(At.AnimatePresence,{children:[e.filter(o=>o.id).map(o=>{const n=c.features.findIndex(s=>o.id===s.properties[ve]),q=it.checkIfNullOrUndefined(o.x)?he:He(o.x);return r.jsxRuntimeExports.jsx(xe.motion.g,{variants:{initial:{opacity:0},whileInView:{opacity:P?P===q?1:W:ie.length!==0?ie.indexOf(o.id)!==-1?1:W:1,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{opacity:0,transition:{duration:g.duration}},onMouseEnter:s=>{O(o),H(s.clientY),A(s.clientX),J?.(o)},onMouseMove:s=>{O(o),H(s.clientY),A(s.clientX)},onMouseLeave:()=>{O(void 0),A(void 0),H(void 0),J?.(void 0)},onClick:()=>{(B||M)&&(wt.isEqual(F,o)&&$e?(Q(void 0),B?.(void 0)):(Q(o),B?.(o)))},children:n===-1?null:c.features[n].geometry.type==="MultiPolygon"?c.features[n].geometry.coordinates.map((s,m)=>{let l="";return s.forEach(w=>{let p=" M";w.forEach((h,se)=>{const N=T([h[0],h[1]]);se!==w.length-1?p=`${p}${N[0]} ${N[1]}L`:p=`${p}${N[0]} ${N[1]}`}),l+=p}),r.jsxRuntimeExports.jsx(xe.motion.path,{d:l,variants:{initial:{fill:q,opacity:0},whileInView:{fill:q,opacity:1,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{opacity:0,transition:{duration:g.duration}},style:{stroke:te,strokeWidth:ee}},`${o.id}-${m}`)}):c.features[n].geometry.coordinates.map((s,m)=>{let l="M";return s.forEach((w,p)=>{const h=T([w[0],w[1]]);p!==s.length-1?l=`${l}${h[0]} ${h[1]}L`:l=`${l}${h[0]} ${h[1]}`}),r.jsxRuntimeExports.jsx(xe.motion.path,{d:l,variants:{initial:{fill:q,opacity:0},whileInView:{fill:q,opacity:1,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{opacity:0,transition:{duration:g.duration}},style:{stroke:te,strokeWidth:ee}},`${o.id}-${m}`)})},o.id)}),e.filter(o=>!it.checkIfNullOrUndefined(o.lat)&&!it.checkIfNullOrUndefined(o.long)).map(o=>r.jsxRuntimeExports.jsxs(xe.motion.g,{variants:{initial:{opacity:0},whileInView:{opacity:Me.length!==0?Me.indexOf(o.label||"")!==-1?1:W:1,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{opacity:0,transition:{duration:g.duration}},onMouseEnter:n=>{O(o),H(n.clientY),A(n.clientX),J?.(o)},onMouseMove:n=>{O(o),H(n.clientY),A(n.clientX)},onMouseLeave:()=>{O(void 0),A(void 0),H(void 0),J?.(void 0)},onClick:()=>{(B||M)&&(wt.isEqual(F,o)&&$e?(Q(void 0),B?.(void 0)):(Q(o),B?.(o)))},transform:`translate(${T([o.long,o.lat])[0]},${T([o.long,o.lat])[1]})`,children:[r.jsxRuntimeExports.jsx(xe.motion.circle,{cx:0,cy:0,variants:{initial:{r:0,fill:Z,stroke:Ie||Z},whileInView:{r:_?_(o.radius||0):b,fill:Z,stroke:Ie||Z,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{r:0,transition:{duration:g.duration}},style:{fillOpacity:.8}}),I&&o.label?r.jsxRuntimeExports.jsx(xe.motion.text,{variants:{initial:{opacity:0,x:_?_(o.radius||0):b},whileInView:{opacity:1,x:_?_(o.radius||0):b,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{opacity:0,transition:{duration:g.duration}},y:0,className:"text-sm",style:{textAnchor:"start",fill:Pe||"#000"},dx:4,dy:5,children:o.label}):null]},o.label||`${o.lat}-${o.long}`))]}),fe.filter(o=>o.position==="after").map(o=>o.layer)]})}),qe===!1?null:r.jsxRuntimeExports.jsx("div",{className:r.mo("absolute left-4 bottom-4 map-color-legend",ge?.colorLegend),children:y?r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsx("div",{className:"color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]",onClick:()=>{f(!1)},children:r.jsxRuntimeExports.jsx(vt.X,{})}),r.jsxRuntimeExports.jsxs("div",{className:"color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]",style:{width:re?void 0:"340px"},children:[je&&je!==""?r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxRuntimeExports.jsx("div",{className:"w-3 h-3 rounded-full",style:{backgroundColor:Z}}),r.jsxRuntimeExports.jsx(ft.j,{size:"xs",marginBottom:"none",className:"p-0 leading-normal overflow-hidden text-primary-gray-700 dark:text-primary-gray-300",style:{display:"-webkit-box",WebkitLineClamp:"1",WebkitBoxOrient:"vertical"},children:je})]}),r.jsxRuntimeExports.jsx(kt.n,{size:"xl"}),r.jsxRuntimeExports.jsx(Dt,{}),r.jsxRuntimeExports.jsx(kt.n,{size:"xl"})]}):null,j&&j!==""?r.jsxRuntimeExports.jsx(ft.j,{size:"xs",marginBottom:"xs",className:"p-0 leading-normal overflow-hidden text-primary-gray-700 dark:text-primary-gray-300",style:{display:"-webkit-box",WebkitLineClamp:"1",WebkitBoxOrient:"vertical"},children:j}):null,re?r.jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-3",children:a.map((o,n)=>r.jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",onMouseOver:()=>{L(t[n%t.length])},onMouseLeave:()=>{L(void 0)},children:[r.jsxRuntimeExports.jsx("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:t[n%t.length]}}),r.jsxRuntimeExports.jsx(ft.j,{size:"sm",marginBottom:"none",leading:"none",children:o})]},n))}):r.jsxRuntimeExports.jsx("svg",{width:"100%",viewBox:"0 0 320 30",direction:"ltr",children:r.jsxRuntimeExports.jsxs("g",{children:[a.map((o,n)=>r.jsxRuntimeExports.jsxs("g",{onMouseOver:()=>{L(t[n])},onMouseLeave:()=>{L(void 0)},className:"cursor-pointer",children:[r.jsxRuntimeExports.jsx("rect",{x:n*320/t.length+1,y:1,width:320/t.length-2,height:8,className:P===t[n]?"stroke-primary-gray-700 dark:stroke-primary-gray-300":"",style:{fill:t[n],...P===t[n]?{}:{stroke:t[n]}}}),r.jsxRuntimeExports.jsx("text",{x:(n+1)*320/t.length,y:25,className:"fill-primary-gray-700 dark:fill-primary-gray-300 text-xs",style:{textAnchor:"middle"},children:Wt.numberFormattingFunction(o,"NA")})]},n)),r.jsxRuntimeExports.jsx("g",{children:r.jsxRuntimeExports.jsx("rect",{onMouseOver:()=>{L(t[a.length])},onMouseLeave:()=>{L(void 0)},x:a.length*320/t.length+1,y:1,width:320/t.length-2,height:8,className:`cursor-pointer ${P===t[a.length]?"stroke-1 stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,style:{fill:t[a.length],...P===t[a.length]?{}:{stroke:t[a.length]}}})})]})})]})]}):r.jsxRuntimeExports.jsx("button",{type:"button",className:"mb-0 border-0 bg-transparent p-0 self-start map-legend-button",onClick:()=>{f(!0)},children:r.jsxRuntimeExports.jsx("div",{className:"show-color-legend-button items-start text-sm font-medium cursor-pointer p-2 mb-0 flex text-primary-black dark:text-primary-gray-300 bg-primary-gray-300 dark:bg-primary-gray-600 border-primary-gray-400 dark:border-primary-gray-500",children:"Show Legend"})})}),K==="button"&&r.jsxRuntimeExports.jsxs("div",{className:"absolute left-4 top-4 flex flex-col zoom-buttons",children:[r.jsxRuntimeExports.jsx("button",{onClick:()=>we("in"),className:"leading-0 px-2 py-3.5 text-primary-gray-700 border border-primary-gray-400 bg-primary-gray-200 dark:border-primary-gray-550 dark:bg-primary-gray-600 dark:text-primary-gray-100",children:"+"}),r.jsxRuntimeExports.jsx("button",{onClick:()=>we("out"),className:"leading-0 px-2 py-3.5 text-primary-gray-700 border border-t-0 border-primary-gray-400 bg-primary-gray-200 dark:border-primary-gray-550 dark:bg-primary-gray-600 dark:text-primary-gray-100",children:"–"})]})]}),M&&F!==void 0?r.jsxRuntimeExports.jsx(It.le,{open:F!==void 0,onClose:()=>{Q(void 0)},children:r.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof M=="string"?{__html:_t.string2HTML(M,F)}:void 0,children:typeof M=="function"?M(F):null})}):null,Le&&C&&ae&&be?r.jsxRuntimeExports.jsx(zt.Tooltip,{data:Le,body:C,xPos:ae,yPos:be,backgroundStyle:$?.tooltip,className:ge?.tooltip}):null]})}function no(i){const e=r.compilerRuntimeExports.c(116),{data:t,mapData:c,graphTitle:j,colors:a,sources:b,graphDescription:E,height:d,width:x,footNote:D,mapColorLegendTitle:C,colorDomain:I,choroplethScaleType:ee,radius:te,scale:he,centerPoint:J,padding:qe,mapBorderWidth:Fe,mapNoDataColor:Ae,backgroundColor:Me,showLabels:B,mapBorderColor:$e,tooltip:M,relativeHeight:$,onSeriesMouseOver:ge,isWorldMap:oe,showColorScale:K,zoomScaleExtend:g,zoomTranslateExtend:W,graphID:fe,highlightedDataPoints:ye,onSeriesMouseClick:re,graphDownload:Z,dataDownload:Oe,showAntarctica:ie,language:ve,minHeight:je,theme:Ie,ariaLabel:Pe,resetSelectionOnDoubleClick:P,detailsOnClick:L,styles:y,classNames:f,mapProjection:ne,zoomInteraction:F,animate:Q,dimmedOpacity:Le,customLayers:O,maxRadiusValue:ae,timeline:A,collapseColorScaleByDefault:be,dotColor:H,highlightedIds:z,mapProperty:U,dotLegendTitle:Ee,dotBorderColor:_,labelColor:He}=i,S=c===void 0?"https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap.json":c,V=D===void 0?"The designations employed and the presentation of material on this map do not imply the expression of any opinion whatsoever on the part of the Secretariat of the United Nations or UNDP concerning the legal status of any country, territory, city or area or its authorities, or concerning the delimitation of its frontiers or boundaries.":D,G=ee===void 0?"threshold":ee,ze=te===void 0?5:te,_e=he===void 0?.95:he,Ve=Fe===void 0?.5:Fe,X=Ae===void 0?De.Colors.light.graphNoData:Ae,T=Me===void 0?!1:Me,we=B===void 0?!1:B,o=$e===void 0?De.Colors.light.grays["gray-500"]:$e,n=oe===void 0?!0:oe,q=K===void 0?!0:K;let s;e[0]!==g?(s=g===void 0?[.8,6]:g,e[0]=g,e[1]=s):s=e[1];const m=s;let l;e[2]!==ye?(l=ye===void 0?[]:ye,e[2]=ye,e[3]=l):l=e[3];const w=l,p=Z===void 0?!1:Z,h=Oe===void 0?!1:Oe,se=ie===void 0?!1:ie,N=ve===void 0?"en":ve,Y=je===void 0?0:je,le=Ie===void 0?"light":Ie,nt=P===void 0?!0:P,at=F===void 0?"button":F,Ue=Q===void 0?!1:Q,st=Le===void 0?.3:Le;let Ge;e[4]!==O?(Ge=O===void 0?[]:O,e[4]=O,e[5]=Ge):Ge=e[5];const lt=Ge,R=A===void 0?{enabled:!1,autoplay:!1,showOnlyActiveDate:!0}:A,ct=H===void 0?De.Colors.primaryColors["blue-600"]:H;let Xe;e[6]!==z?(Xe=z===void 0?[]:z,e[6]=z,e[7]=Xe):Xe=e[7];const dt=Xe,ut=U===void 0?"ISO3":U,mt=He===void 0?De.Colors.primaryColors["blue-600"]:He,[ce,qt]=u.useState(0),[Te,Mt]=u.useState(0),[de,pt]=u.useState(R.autoplay),v=Yt.sort(Xt.uniqBy(t,"date",!0).map(k=>bt.parse(`${k}`,R.dateFormat||"yyyy",new Date).getTime()),go),[ue,Be]=u.useState(R.autoplay?0:v.length-1),[ke,$t]=u.useState(void 0),xt=u.useRef(null),jt=u.useRef(null);let Ye;e[8]!==G||e[9]!==I||e[10]!==a?.length||e[11]!==t?(Ye=I||(G==="categorical"?Jt.getUniqValue(t,"x"):Kt.getJenks(t.map(ho),a?.length||4)),e[8]=G,e[9]=I,e[10]=a?.length,e[11]=t,e[12]=Ye):Ye=e[12];const We=Ye;let Je,Ke;e[13]===Symbol.for("react.memo_cache_sentinel")?(Je=()=>{const k=new ResizeObserver(me=>{qt(me[0].target.clientWidth||620),Mt(me[0].target.clientHeight||480)});return xt.current&&k.observe(xt.current),()=>k.disconnect()},Ke=[],e[13]=Je,e[14]=Ke):(Je=e[13],Ke=e[14]),u.useEffect(Je,Ke);let Ze;e[15]===Symbol.for("react.memo_cache_sentinel")?(Ze=k=>{$t(k)},e[15]=Ze):Ze=e[15];const Qe=u.useEffectEvent(Ze);let et;e[16]!==S||e[17]!==Qe?(et=()=>{typeof S=="string"?Gt.fetchAndParseJSON(S).then(me=>{Qe(me)}):Qe(S)},e[16]=S,e[17]=Qe,e[18]=et):et=e[18];let tt;e[19]!==S?(tt=[S],e[19]=S,e[20]=tt):tt=e[20],u.useEffect(et,tt),u.useEffect(()=>{const k=setInterval(()=>{Be(me=>me<v.length-1?me+1:0)},(R.speed||2)*1e3);return de||clearInterval(k),()=>clearInterval(k)},[v,de,R.speed]);const ot=Et.getSliderMarks(v,ue,R.showOnlyActiveDate,R.dateFormat||"yyyy"),ht=f?.graphContainer,gt=y?.graphContainer;let Re;e[21]!==f?.description||e[22]!==f?.title||e[23]!==t||e[24]!==h||e[25]!==E||e[26]!==p||e[27]!==j||e[28]!==y?.description||e[29]!==y?.title||e[30]!==x?(Re=j||E||p||h?r.jsxRuntimeExports.jsx(Ut.GraphHeader,{styles:{title:y?.title,description:y?.description},classNames:{title:f?.title,description:f?.description},graphTitle:j,graphDescription:E,width:x,graphDownload:p?jt:void 0,dataDownload:h?t.map(xo).filter(po).length>0?t.map(mo).filter(uo):t.filter(co):null}):null,e[21]=f?.description,e[22]=f?.title,e[23]=t,e[24]=h,e[25]=E,e[26]=p,e[27]=j,e[28]=y?.description,e[29]=y?.title,e[30]=x,e[31]=Re):Re=e[31];let Ce;e[32]!==ue||e[33]!==ot||e[34]!==de||e[35]!==Be||e[36]!==pt||e[37]!==R.enabled||e[38]!==v?(Ce=R.enabled&&v.length>0&&ot?r.jsxRuntimeExports.jsxs("div",{className:"flex gap-6 items-center",dir:"ltr",children:[r.jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>{pt(!de)},className:"p-0 border-0 cursor-pointer bg-transparent","aria-label":de?"Click to pause animation":"Click to play animation",children:de?r.jsxRuntimeExports.jsx(vt.Pause,{}):r.jsxRuntimeExports.jsx(vt.Play,{})}),r.jsxRuntimeExports.jsx(Et.Nr,{min:v[0],max:v[v.length-1],marks:ot,step:null,defaultValue:v[v.length-1],value:v[ue],onChangeComplete:k=>{Be(v.indexOf(k))},onChange:k=>{Be(v.indexOf(k))},"aria-label":"Time slider. Use arrow keys to adjust selected time period."})]}):null,e[32]=ue,e[33]=ot,e[34]=de,e[35]=Be,e[36]=pt,e[37]=R.enabled,e[38]=v,e[39]=Ce):Ce=e[39];let Se;e[40]!==Ue||e[41]!==J||e[42]!==G||e[43]!==f||e[44]!==be||e[45]!==a||e[46]!==lt||e[47]!==t||e[48]!==L||e[49]!==st||e[50]!==We||e[51]!==_||e[52]!==ct||e[53]!==Ee||e[54]!==d||e[55]!==w||e[56]!==dt||e[57]!==ue||e[58]!==n||e[59]!==mt||e[60]!==o||e[61]!==Ve||e[62]!==C||e[63]!==X||e[64]!==ne||e[65]!==ut||e[66]!==ke||e[67]!==ae||e[68]!==Y||e[69]!==re||e[70]!==ge||e[71]!==ze||e[72]!==$||e[73]!==nt||e[74]!==_e||e[75]!==se||e[76]!==q||e[77]!==we||e[78]!==y||e[79]!==Te||e[80]!==ce||e[81]!==le||e[82]!==R.dateFormat||e[83]!==R.enabled||e[84]!==M||e[85]!==v||e[86]!==x||e[87]!==at||e[88]!==m||e[89]!==W?(Se=r.jsxRuntimeExports.jsx(Rt.GraphArea,{ref:xt,children:ce&&Te&&ke?r.jsxRuntimeExports.jsx(io,{dotColor:ct,data:t.filter(k=>R.enabled?k.date===bt.format(new Date(v[ue]),R.dateFormat||"yyyy"):k),mapData:se?ke:{...ke,features:ke.features.filter(lo)},colorDomain:We,width:ce,height:Te,scale:_e,centerPoint:J,colors:a||(G==="categorical"?De.Colors[le].sequentialColors[`neutralColorsx0${We.length}`]:De.Colors[le].sequentialColors[`neutralColorsx0${We.length+1}`]),mapColorLegendTitle:C,radius:ze,categorical:G==="categorical",mapBorderWidth:Ve,mapNoDataColor:X,mapBorderColor:o,tooltip:M,onSeriesMouseOver:ge,showLabels:we,isWorldMap:n,showColorScale:q,zoomScaleExtend:m,zoomTranslateExtend:W,onSeriesMouseClick:re,highlightedDataPoints:w,resetSelectionOnDoubleClick:nt,styles:y,classNames:f,zoomInteraction:at,detailsOnClick:L,mapProjection:ne||(n?"naturalEarth":"mercator"),animate:Ue===!0?{duration:.5,once:!0,amount:.5}:Ue||{duration:0,once:!0,amount:0},dimmedOpacity:st,customLayers:lt,maxRadiusValue:it.checkIfNullOrUndefined(ae)?Math.max(...t.map(so).filter(ao)):ae,collapseColorScaleByDefault:be,highlightedIds:dt,mapProperty:ut,dotLegendTitle:Ee,dotBorderColor:_,labelColor:mt}):r.jsxRuntimeExports.jsx("div",{style:{height:`${Math.max(Y,d||($?Y?(x||ce)*$>Y?(x||ce)*$:Y:(x||ce)*$:Te))}px`},className:"flex items-center justify-center",children:r.jsxRuntimeExports.jsx(Ot.w,{"aria-label":"Loading graph"})})}),e[40]=Ue,e[41]=J,e[42]=G,e[43]=f,e[44]=be,e[45]=a,e[46]=lt,e[47]=t,e[48]=L,e[49]=st,e[50]=We,e[51]=_,e[52]=ct,e[53]=Ee,e[54]=d,e[55]=w,e[56]=dt,e[57]=ue,e[58]=n,e[59]=mt,e[60]=o,e[61]=Ve,e[62]=C,e[63]=X,e[64]=ne,e[65]=ut,e[66]=ke,e[67]=ae,e[68]=Y,e[69]=re,e[70]=ge,e[71]=ze,e[72]=$,e[73]=nt,e[74]=_e,e[75]=se,e[76]=q,e[77]=we,e[78]=y,e[79]=Te,e[80]=ce,e[81]=le,e[82]=R.dateFormat,e[83]=R.enabled,e[84]=M,e[85]=v,e[86]=x,e[87]=at,e[88]=m,e[89]=W,e[90]=Se):Se=e[90];let Ne;e[91]!==f?.footnote||e[92]!==f?.source||e[93]!==V||e[94]!==b||e[95]!==y?.footnote||e[96]!==y?.source||e[97]!==x?(Ne=b||V?r.jsxRuntimeExports.jsx(Ht.GraphFooter,{styles:{footnote:y?.footnote,source:y?.source},classNames:{footnote:f?.footnote,source:f?.source},sources:b,footNote:V,width:x}):null,e[91]=f?.footnote,e[92]=f?.source,e[93]=V,e[94]=b,e[95]=y?.footnote,e[96]=y?.source,e[97]=x,e[98]=Ne):Ne=e[98];let rt;return e[99]!==Pe||e[100]!==T||e[101]!==fe||e[102]!==d||e[103]!==N||e[104]!==Y||e[105]!==qe||e[106]!==$||e[107]!==ht||e[108]!==gt||e[109]!==Re||e[110]!==Ce||e[111]!==Se||e[112]!==Ne||e[113]!==le||e[114]!==x?(rt=r.jsxRuntimeExports.jsxs(Rt.GraphContainer,{className:ht,style:gt,id:fe,ref:jt,"aria-label":Pe,backgroundColor:T,theme:le,language:N,minHeight:Y,width:x,height:d,relativeHeight:$,padding:qe,children:[Re,Ce,Se,Ne]}),e[99]=Pe,e[100]=T,e[101]=fe,e[102]=d,e[103]=N,e[104]=Y,e[105]=qe,e[106]=$,e[107]=ht,e[108]=gt,e[109]=Re,e[110]=Ce,e[111]=Se,e[112]=Ne,e[113]=le,e[114]=x,e[115]=rt):rt=e[115],rt}function ao(i){return i!=null}function so(i){return i.radius}function lo(i){return i.properties.NAME!=="Antarctica"}function co(i){return i!==void 0}function uo(i){return i!==void 0}function mo(i){return i.data}function po(i){return i!==void 0}function xo(i){return i.data}function ho(i){return i.x}function go(i,e){return Zt.ascending(i,e)}exports.HybridMap=no;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-CHPV5EwG-CTPQjnHt.cjs"),u=require("react"),bt=require("./parse-hMnG_lRV.cjs"),Et=require("./getSliderMarks-BmADcPQt.cjs"),Ot=require("./Spinner-DRMBUsX7.cjs"),wt=require("./index-DQA8q5sC.cjs"),pe=require("./zoom-DPw8bba-.cjs"),It=require("./Modal-JW_IExO3.cjs"),ft=require("./Typography-DX7PlgQU.cjs"),Pt=require("./index-DxXnJ8Ti.cjs"),kt=require("./Source-DYMJRrsq.cjs"),Lt=require("./index-Dzc_aaI9-BmkfPMyc.cjs"),zt=require("./Tooltip-4dJo4_AF.cjs"),_t=require("./string2HTML-CPGr_I5E.cjs"),vt=require("./index-DRXx7m-C.cjs"),Vt=require("./pow-DgrUorRi.cjs"),Tt=require("./ordinal-CrsysVE-.cjs"),Bt=require("./threshold-DNsSUf8Q.cjs"),yt=require("./select-Bnfk0lJx.cjs"),it=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),Wt=require("./numberFormattingFunction-02t-wJta.cjs"),Ft=require("./use-in-view-QcfiW0w3.cjs"),xe=require("./proxy-BxvUI_9l.cjs"),At=require("./index-DG2bgAva.cjs"),Ht=require("./GraphFooter.cjs"),Ut=require("./GraphHeader.cjs"),De=require("./Colors.cjs"),Gt=require("./fetchAndParseData-l5HGMAEs.cjs"),Xt=require("./uniqBy-O05lp2S5.cjs"),Rt=require("./GraphContainer-d8A46BK2.cjs"),Yt=require("./sort-O96oMZLb.cjs"),Jt=require("./getUniqValue-NX8DgwND.cjs"),Kt=require("./getJenks-GYmdwBqm.cjs"),Zt=require("./init-DU0ybBc_.cjs");function Qt(i){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const t in i)if(t!=="default"){const c=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(e,t,c.get?c:{enumerable:!0,get:()=>i[t]})}}return e.default=i,Object.freeze(e)}const eo=Qt(u);var to="Separator",Ct="horizontal",oo=["horizontal","vertical"],St=eo.forwardRef((i,e)=>{const{decorative:t,orientation:c=Ct,...j}=i,a=ro(c)?c:Ct,b=t?{role:"none"}:{"aria-orientation":a==="vertical"?a:void 0,role:"separator"};return r.ae.jsx(Lt.w.div,{"data-orientation":a,...b,...j,ref:e})});St.displayName=to;function ro(i){return oo.includes(i)}var Nt=St;const Dt=u.forwardRef((i,e)=>{const t=r._.c(14);let c,j,a,b;t[0]!==i?({className:c,variant:a,orientation:b,...j}=i,t[0]=i,t[1]=c,t[2]=j,t[3]=a,t[4]=b):(c=t[1],j=t[2],a=t[3],b=t[4]);const E=a===void 0?"dark":a,d=b===void 0?"horizontal":b,x=d==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",D=E==="dark"?"bg-primary-gray-600 dark:bg-primary-gray-200":"bg-primary-gray-400 dark:bg-primary-gray-550";let C;t[5]!==c||t[6]!==x||t[7]!==D?(C=r.mo(x,D,c),t[5]=c,t[6]=x,t[7]=D,t[8]=C):C=t[8];let I;return t[9]!==d||t[10]!==j||t[11]!==e||t[12]!==C?(I=r.ae.jsx(Nt,{...j,ref:e,orientation:d,className:C}),t[9]=d,t[10]=j,t[11]=e,t[12]=C,t[13]=I):I=t[13],I});Dt.displayName=Nt.displayName;function io(i){const{data:e,colors:t,mapData:c,mapColorLegendTitle:j,colorDomain:a,radius:b,height:E,width:d,scale:x,centerPoint:D,tooltip:C,showLabels:I,mapBorderWidth:ee,mapBorderColor:te,mapNoDataColor:he,onSeriesMouseOver:J,showColorScale:qe,zoomScaleExtend:Fe,zoomTranslateExtend:Ae,highlightedDataPoints:Me,onSeriesMouseClick:B,resetSelectionOnDoubleClick:$e,detailsOnClick:M,styles:$,classNames:ge,mapProjection:oe,zoomInteraction:K,animate:g,dimmedOpacity:W,customLayers:fe,maxRadiusValue:ye,categorical:re,dotColor:Z,collapseColorScaleByDefault:Oe,highlightedIds:ie,mapProperty:ve,dotLegendTitle:je,dotBorderColor:Ie,labelColor:Pe}=i,[P,L]=u.useState(void 0),[y,f]=u.useState(Oe===void 0?!(d<680):!Oe),ne=u.useRef(null),[F,Q]=u.useState(void 0),[Le,O]=u.useState(void 0),[ae,A]=u.useState(void 0),[be,H]=u.useState(void 0),z=u.useRef(null),U=Ft.useInView(z,{once:g.once,amount:g.amount}),Ee=u.useRef(null),_=e.filter(o=>o.radius===void 0||o.radius===null).length!==e.length?Vt.sqrt().domain([0,ye]).range([.25,b]).nice():void 0,He=re?Tt.ordinal().domain(a).range(t):Bt.threshold().domain(a).range(t);u.useEffect(()=>{const o=yt.select(Ee.current),n=yt.select(z.current),q=m=>{if(K==="noZoom")return!1;if(K==="button")return!m.type.includes("wheel");const l=m.type==="wheel",w=m.type.startsWith("touch"),p=m.type==="mousedown"||m.type==="mousemove";return w?!0:l?K==="scroll"?!0:m.ctrlKey:p&&!m.button&&!m.ctrlKey},s=pe.zoom().scaleExtent(Fe).translateExtent(Ae||[[-20,-20],[d+20,E+20]]).filter(q).on("zoom",({transform:m})=>{o.attr("transform",m)});n.call(s),ne.current=s},[E,d,K]);const S=pe.turf_bbox_default(c),V=Pt.turf_center_of_mass_default(c),G=S[2]-S[0],ze=S[3]-S[1],_e=d*190/960*360/G,Ve=E*190/678*180/ze,X=x*Math.min(_e,Ve),T=oe==="mercator"?pe.geoMercator().rotate([0,0]).center(D||V.geometry.coordinates).translate([d/2,E/2]).scale(X):oe==="equalEarth"?pe.geoEqualEarth().rotate([0,0]).center(D||V.geometry.coordinates).translate([d/2,E/2]).scale(X):oe==="naturalEarth"?pe.geoNaturalEarth1().rotate([0,0]).center(D||V.geometry.coordinates).translate([d/2,E/2]).scale(X):oe==="orthographic"?pe.geoOrthographic().rotate([0,0]).center(D||V.geometry.coordinates).translate([d/2,E/2]).scale(X):pe.geoAlbersUsa().rotate([0,0]).center(D||V.geometry.coordinates).translate([d/2,E/2]).scale(X),we=o=>{if(!z.current||!ne.current)return;yt.select(z.current).call(ne.current.scaleBy,o==="in"?1.2:1/1.2)};return r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsxs("div",{className:"relative",children:[r.jsxRuntimeExports.jsx(xe.motion.svg,{width:`${d}px`,height:`${E}px`,viewBox:`0 0 ${d} ${E}`,ref:z,direction:"ltr",children:r.jsxRuntimeExports.jsxs("g",{ref:Ee,children:[fe.filter(o=>o.position==="before").map(o=>o.layer),c.features.map((o,n)=>e.findIndex(s=>s.id===o.properties[ve])!==-1?null:r.jsxRuntimeExports.jsx("g",{opacity:P?W:ie.length!==0?ie.indexOf(o.properties[ve])!==-1?1:W:1,children:o.geometry.type==="MultiPolygon"?o.geometry.coordinates.map((s,m)=>{let l="";return s.forEach(w=>{let p=" M";w.forEach((h,se)=>{const N=T([h[0],h[1]]);se!==w.length-1?p=`${p}${N[0]} ${N[1]}L`:p=`${p}${N[0]} ${N[1]}`}),l+=p}),r.jsxRuntimeExports.jsx("path",{d:l,style:{stroke:te,strokeWidth:ee,fill:he}},m)}):o.geometry.coordinates.map((s,m)=>{let l="M";return s.forEach((w,p)=>{const h=T([w[0],w[1]]);p!==s.length-1?l=`${l}${h[0]} ${h[1]}L`:l=`${l}${h[0]} ${h[1]}`}),r.jsxRuntimeExports.jsx("path",{d:l,style:{stroke:te,strokeWidth:ee,fill:he}},m)})},n)),r.jsxRuntimeExports.jsxs(At.AnimatePresence,{children:[e.filter(o=>o.id).map(o=>{const n=c.features.findIndex(s=>o.id===s.properties[ve]),q=it.checkIfNullOrUndefined(o.x)?he:He(o.x);return r.jsxRuntimeExports.jsx(xe.motion.g,{variants:{initial:{opacity:0},whileInView:{opacity:P?P===q?1:W:ie.length!==0?ie.indexOf(o.id)!==-1?1:W:1,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{opacity:0,transition:{duration:g.duration}},onMouseEnter:s=>{O(o),H(s.clientY),A(s.clientX),J?.(o)},onMouseMove:s=>{O(o),H(s.clientY),A(s.clientX)},onMouseLeave:()=>{O(void 0),A(void 0),H(void 0),J?.(void 0)},onClick:()=>{(B||M)&&(wt.isEqual(F,o)&&$e?(Q(void 0),B?.(void 0)):(Q(o),B?.(o)))},children:n===-1?null:c.features[n].geometry.type==="MultiPolygon"?c.features[n].geometry.coordinates.map((s,m)=>{let l="";return s.forEach(w=>{let p=" M";w.forEach((h,se)=>{const N=T([h[0],h[1]]);se!==w.length-1?p=`${p}${N[0]} ${N[1]}L`:p=`${p}${N[0]} ${N[1]}`}),l+=p}),r.jsxRuntimeExports.jsx(xe.motion.path,{d:l,variants:{initial:{fill:q,opacity:0},whileInView:{fill:q,opacity:1,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{opacity:0,transition:{duration:g.duration}},style:{stroke:te,strokeWidth:ee}},`${o.id}-${m}`)}):c.features[n].geometry.coordinates.map((s,m)=>{let l="M";return s.forEach((w,p)=>{const h=T([w[0],w[1]]);p!==s.length-1?l=`${l}${h[0]} ${h[1]}L`:l=`${l}${h[0]} ${h[1]}`}),r.jsxRuntimeExports.jsx(xe.motion.path,{d:l,variants:{initial:{fill:q,opacity:0},whileInView:{fill:q,opacity:1,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{opacity:0,transition:{duration:g.duration}},style:{stroke:te,strokeWidth:ee}},`${o.id}-${m}`)})},o.id)}),e.filter(o=>!it.checkIfNullOrUndefined(o.lat)&&!it.checkIfNullOrUndefined(o.long)).map(o=>r.jsxRuntimeExports.jsxs(xe.motion.g,{variants:{initial:{opacity:0},whileInView:{opacity:Me.length!==0?Me.indexOf(o.label||"")!==-1?1:W:1,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{opacity:0,transition:{duration:g.duration}},onMouseEnter:n=>{O(o),H(n.clientY),A(n.clientX),J?.(o)},onMouseMove:n=>{O(o),H(n.clientY),A(n.clientX)},onMouseLeave:()=>{O(void 0),A(void 0),H(void 0),J?.(void 0)},onClick:()=>{(B||M)&&(wt.isEqual(F,o)&&$e?(Q(void 0),B?.(void 0)):(Q(o),B?.(o)))},transform:`translate(${T([o.long,o.lat])[0]},${T([o.long,o.lat])[1]})`,children:[r.jsxRuntimeExports.jsx(xe.motion.circle,{cx:0,cy:0,variants:{initial:{r:0,fill:Z,stroke:Ie||Z},whileInView:{r:_?_(o.radius||0):b,fill:Z,stroke:Ie||Z,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{r:0,transition:{duration:g.duration}},style:{fillOpacity:.8}}),I&&o.label?r.jsxRuntimeExports.jsx(xe.motion.text,{variants:{initial:{opacity:0,x:_?_(o.radius||0):b},whileInView:{opacity:1,x:_?_(o.radius||0):b,transition:{duration:g.duration}}},initial:"initial",animate:U?"whileInView":"initial",exit:{opacity:0,transition:{duration:g.duration}},y:0,className:"text-sm",style:{textAnchor:"start",fill:Pe||"#000"},dx:4,dy:5,children:o.label}):null]},o.label||`${o.lat}-${o.long}`))]}),fe.filter(o=>o.position==="after").map(o=>o.layer)]})}),qe===!1?null:r.jsxRuntimeExports.jsx("div",{className:r.mo("absolute left-4 bottom-4 map-color-legend",ge?.colorLegend),children:y?r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsx("div",{className:"color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]",onClick:()=>{f(!1)},children:r.jsxRuntimeExports.jsx(vt.X,{})}),r.jsxRuntimeExports.jsxs("div",{className:"color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]",style:{width:re?void 0:"340px"},children:[je&&je!==""?r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxRuntimeExports.jsx("div",{className:"w-3 h-3 rounded-full",style:{backgroundColor:Z}}),r.jsxRuntimeExports.jsx(ft.j,{size:"xs",marginBottom:"none",className:"p-0 leading-normal overflow-hidden text-primary-gray-700 dark:text-primary-gray-300",style:{display:"-webkit-box",WebkitLineClamp:"1",WebkitBoxOrient:"vertical"},children:je})]}),r.jsxRuntimeExports.jsx(kt.n,{size:"xl"}),r.jsxRuntimeExports.jsx(Dt,{}),r.jsxRuntimeExports.jsx(kt.n,{size:"xl"})]}):null,j&&j!==""?r.jsxRuntimeExports.jsx(ft.j,{size:"xs",marginBottom:"xs",className:"p-0 leading-normal overflow-hidden text-primary-gray-700 dark:text-primary-gray-300",style:{display:"-webkit-box",WebkitLineClamp:"1",WebkitBoxOrient:"vertical"},children:j}):null,re?r.jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-3",children:a.map((o,n)=>r.jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",onMouseOver:()=>{L(t[n%t.length])},onMouseLeave:()=>{L(void 0)},children:[r.jsxRuntimeExports.jsx("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:t[n%t.length]}}),r.jsxRuntimeExports.jsx(ft.j,{size:"sm",marginBottom:"none",leading:"none",children:o})]},n))}):r.jsxRuntimeExports.jsx("svg",{width:"100%",viewBox:"0 0 320 30",direction:"ltr",children:r.jsxRuntimeExports.jsxs("g",{children:[a.map((o,n)=>r.jsxRuntimeExports.jsxs("g",{onMouseOver:()=>{L(t[n])},onMouseLeave:()=>{L(void 0)},className:"cursor-pointer",children:[r.jsxRuntimeExports.jsx("rect",{x:n*320/t.length+1,y:1,width:320/t.length-2,height:8,className:P===t[n]?"stroke-primary-gray-700 dark:stroke-primary-gray-300":"",style:{fill:t[n],...P===t[n]?{}:{stroke:t[n]}}}),r.jsxRuntimeExports.jsx("text",{x:(n+1)*320/t.length,y:25,className:"fill-primary-gray-700 dark:fill-primary-gray-300 text-xs",style:{textAnchor:"middle"},children:Wt.numberFormattingFunction(o,"NA")})]},n)),r.jsxRuntimeExports.jsx("g",{children:r.jsxRuntimeExports.jsx("rect",{onMouseOver:()=>{L(t[a.length])},onMouseLeave:()=>{L(void 0)},x:a.length*320/t.length+1,y:1,width:320/t.length-2,height:8,className:`cursor-pointer ${P===t[a.length]?"stroke-1 stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,style:{fill:t[a.length],...P===t[a.length]?{}:{stroke:t[a.length]}}})})]})})]})]}):r.jsxRuntimeExports.jsx("button",{type:"button",className:"mb-0 border-0 bg-transparent p-0 self-start map-legend-button",onClick:()=>{f(!0)},children:r.jsxRuntimeExports.jsx("div",{className:"show-color-legend-button items-start text-sm font-medium cursor-pointer p-2 mb-0 flex text-primary-black dark:text-primary-gray-300 bg-primary-gray-300 dark:bg-primary-gray-600 border-primary-gray-400 dark:border-primary-gray-500",children:"Show Legend"})})}),K==="button"&&r.jsxRuntimeExports.jsxs("div",{className:"absolute left-4 top-4 flex flex-col zoom-buttons",children:[r.jsxRuntimeExports.jsx("button",{onClick:()=>we("in"),className:"leading-0 px-2 py-3.5 text-primary-gray-700 border border-primary-gray-400 bg-primary-gray-200 dark:border-primary-gray-550 dark:bg-primary-gray-600 dark:text-primary-gray-100",children:"+"}),r.jsxRuntimeExports.jsx("button",{onClick:()=>we("out"),className:"leading-0 px-2 py-3.5 text-primary-gray-700 border border-t-0 border-primary-gray-400 bg-primary-gray-200 dark:border-primary-gray-550 dark:bg-primary-gray-600 dark:text-primary-gray-100",children:"–"})]})]}),M&&F!==void 0?r.jsxRuntimeExports.jsx(It.le,{open:F!==void 0,onClose:()=>{Q(void 0)},children:r.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof M=="string"?{__html:_t.string2HTML(M,F)}:void 0,children:typeof M=="function"?M(F):null})}):null,Le&&C&&ae&&be?r.jsxRuntimeExports.jsx(zt.Tooltip,{data:Le,body:C,xPos:ae,yPos:be,backgroundStyle:$?.tooltip,className:ge?.tooltip}):null]})}function no(i){const e=r.compilerRuntimeExports.c(116),{data:t,mapData:c,graphTitle:j,colors:a,sources:b,graphDescription:E,height:d,width:x,footNote:D,mapColorLegendTitle:C,colorDomain:I,choroplethScaleType:ee,radius:te,scale:he,centerPoint:J,padding:qe,mapBorderWidth:Fe,mapNoDataColor:Ae,backgroundColor:Me,showLabels:B,mapBorderColor:$e,tooltip:M,relativeHeight:$,onSeriesMouseOver:ge,isWorldMap:oe,showColorScale:K,zoomScaleExtend:g,zoomTranslateExtend:W,graphID:fe,highlightedDataPoints:ye,onSeriesMouseClick:re,graphDownload:Z,dataDownload:Oe,showAntarctica:ie,language:ve,minHeight:je,theme:Ie,ariaLabel:Pe,resetSelectionOnDoubleClick:P,detailsOnClick:L,styles:y,classNames:f,mapProjection:ne,zoomInteraction:F,animate:Q,dimmedOpacity:Le,customLayers:O,maxRadiusValue:ae,timeline:A,collapseColorScaleByDefault:be,dotColor:H,highlightedIds:z,mapProperty:U,dotLegendTitle:Ee,dotBorderColor:_,labelColor:He}=i,S=c===void 0?"https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap.json":c,V=D===void 0?"The designations employed and the presentation of material on this map do not imply the expression of any opinion whatsoever on the part of the Secretariat of the United Nations or UNDP concerning the legal status of any country, territory, city or area or its authorities, or concerning the delimitation of its frontiers or boundaries.":D,G=ee===void 0?"threshold":ee,ze=te===void 0?5:te,_e=he===void 0?.95:he,Ve=Fe===void 0?.5:Fe,X=Ae===void 0?De.Colors.light.graphNoData:Ae,T=Me===void 0?!1:Me,we=B===void 0?!1:B,o=$e===void 0?De.Colors.light.grays["gray-500"]:$e,n=oe===void 0?!0:oe,q=K===void 0?!0:K;let s;e[0]!==g?(s=g===void 0?[.8,6]:g,e[0]=g,e[1]=s):s=e[1];const m=s;let l;e[2]!==ye?(l=ye===void 0?[]:ye,e[2]=ye,e[3]=l):l=e[3];const w=l,p=Z===void 0?!1:Z,h=Oe===void 0?!1:Oe,se=ie===void 0?!1:ie,N=ve===void 0?"en":ve,Y=je===void 0?0:je,le=Ie===void 0?"light":Ie,nt=P===void 0?!0:P,at=F===void 0?"button":F,Ue=Q===void 0?!1:Q,st=Le===void 0?.3:Le;let Ge;e[4]!==O?(Ge=O===void 0?[]:O,e[4]=O,e[5]=Ge):Ge=e[5];const lt=Ge,R=A===void 0?{enabled:!1,autoplay:!1,showOnlyActiveDate:!0}:A,ct=H===void 0?De.Colors.primaryColors["blue-600"]:H;let Xe;e[6]!==z?(Xe=z===void 0?[]:z,e[6]=z,e[7]=Xe):Xe=e[7];const dt=Xe,ut=U===void 0?"ISO3":U,mt=He===void 0?De.Colors.primaryColors["blue-600"]:He,[ce,qt]=u.useState(0),[Te,Mt]=u.useState(0),[de,pt]=u.useState(R.autoplay),v=Yt.sort(Xt.uniqBy(t,"date",!0).map(k=>bt.parse(`${k}`,R.dateFormat||"yyyy",new Date).getTime()),go),[ue,Be]=u.useState(R.autoplay?0:v.length-1),[ke,$t]=u.useState(void 0),xt=u.useRef(null),jt=u.useRef(null);let Ye;e[8]!==G||e[9]!==I||e[10]!==a?.length||e[11]!==t?(Ye=I||(G==="categorical"?Jt.getUniqValue(t,"x"):Kt.getJenks(t.map(ho),a?.length||4)),e[8]=G,e[9]=I,e[10]=a?.length,e[11]=t,e[12]=Ye):Ye=e[12];const We=Ye;let Je,Ke;e[13]===Symbol.for("react.memo_cache_sentinel")?(Je=()=>{const k=new ResizeObserver(me=>{qt(me[0].target.clientWidth||620),Mt(me[0].target.clientHeight||480)});return xt.current&&k.observe(xt.current),()=>k.disconnect()},Ke=[],e[13]=Je,e[14]=Ke):(Je=e[13],Ke=e[14]),u.useEffect(Je,Ke);let Ze;e[15]===Symbol.for("react.memo_cache_sentinel")?(Ze=k=>{$t(k)},e[15]=Ze):Ze=e[15];const Qe=u.useEffectEvent(Ze);let et;e[16]!==S||e[17]!==Qe?(et=()=>{typeof S=="string"?Gt.fetchAndParseJSON(S).then(me=>{Qe(me)}):Qe(S)},e[16]=S,e[17]=Qe,e[18]=et):et=e[18];let tt;e[19]!==S?(tt=[S],e[19]=S,e[20]=tt):tt=e[20],u.useEffect(et,tt),u.useEffect(()=>{const k=setInterval(()=>{Be(me=>me<v.length-1?me+1:0)},(R.speed||2)*1e3);return de||clearInterval(k),()=>clearInterval(k)},[v,de,R.speed]);const ot=Et.getSliderMarks(v,ue,R.showOnlyActiveDate,R.dateFormat||"yyyy"),ht=f?.graphContainer,gt=y?.graphContainer;let Re;e[21]!==f?.description||e[22]!==f?.title||e[23]!==t||e[24]!==h||e[25]!==E||e[26]!==p||e[27]!==j||e[28]!==y?.description||e[29]!==y?.title||e[30]!==x?(Re=j||E||p||h?r.jsxRuntimeExports.jsx(Ut.GraphHeader,{styles:{title:y?.title,description:y?.description},classNames:{title:f?.title,description:f?.description},graphTitle:j,graphDescription:E,width:x,graphDownload:p?jt:void 0,dataDownload:h?t.map(xo).filter(po).length>0?t.map(mo).filter(uo):t.filter(co):null}):null,e[21]=f?.description,e[22]=f?.title,e[23]=t,e[24]=h,e[25]=E,e[26]=p,e[27]=j,e[28]=y?.description,e[29]=y?.title,e[30]=x,e[31]=Re):Re=e[31];let Ce;e[32]!==ue||e[33]!==ot||e[34]!==de||e[35]!==Be||e[36]!==pt||e[37]!==R.enabled||e[38]!==v?(Ce=R.enabled&&v.length>0&&ot?r.jsxRuntimeExports.jsxs("div",{className:"flex gap-6 items-center",dir:"ltr",children:[r.jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>{pt(!de)},className:"p-0 border-0 cursor-pointer bg-transparent","aria-label":de?"Click to pause animation":"Click to play animation",children:de?r.jsxRuntimeExports.jsx(vt.Pause,{}):r.jsxRuntimeExports.jsx(vt.Play,{})}),r.jsxRuntimeExports.jsx(Et.Nr,{min:v[0],max:v[v.length-1],marks:ot,step:null,defaultValue:v[v.length-1],value:v[ue],onChangeComplete:k=>{Be(v.indexOf(k))},onChange:k=>{Be(v.indexOf(k))},"aria-label":"Time slider. Use arrow keys to adjust selected time period."})]}):null,e[32]=ue,e[33]=ot,e[34]=de,e[35]=Be,e[36]=pt,e[37]=R.enabled,e[38]=v,e[39]=Ce):Ce=e[39];let Se;e[40]!==Ue||e[41]!==J||e[42]!==G||e[43]!==f||e[44]!==be||e[45]!==a||e[46]!==lt||e[47]!==t||e[48]!==L||e[49]!==st||e[50]!==We||e[51]!==_||e[52]!==ct||e[53]!==Ee||e[54]!==d||e[55]!==w||e[56]!==dt||e[57]!==ue||e[58]!==n||e[59]!==mt||e[60]!==o||e[61]!==Ve||e[62]!==C||e[63]!==X||e[64]!==ne||e[65]!==ut||e[66]!==ke||e[67]!==ae||e[68]!==Y||e[69]!==re||e[70]!==ge||e[71]!==ze||e[72]!==$||e[73]!==nt||e[74]!==_e||e[75]!==se||e[76]!==q||e[77]!==we||e[78]!==y||e[79]!==Te||e[80]!==ce||e[81]!==le||e[82]!==R.dateFormat||e[83]!==R.enabled||e[84]!==M||e[85]!==v||e[86]!==x||e[87]!==at||e[88]!==m||e[89]!==W?(Se=r.jsxRuntimeExports.jsx(Rt.GraphArea,{ref:xt,children:ce&&Te&&ke?r.jsxRuntimeExports.jsx(io,{dotColor:ct,data:t.filter(k=>R.enabled?k.date===bt.format(new Date(v[ue]),R.dateFormat||"yyyy"):k),mapData:se?ke:{...ke,features:ke.features.filter(lo)},colorDomain:We,width:ce,height:Te,scale:_e,centerPoint:J,colors:a||(G==="categorical"?De.Colors[le].sequentialColors[`neutralColorsx0${We.length}`]:De.Colors[le].sequentialColors[`neutralColorsx0${We.length+1}`]),mapColorLegendTitle:C,radius:ze,categorical:G==="categorical",mapBorderWidth:Ve,mapNoDataColor:X,mapBorderColor:o,tooltip:M,onSeriesMouseOver:ge,showLabels:we,isWorldMap:n,showColorScale:q,zoomScaleExtend:m,zoomTranslateExtend:W,onSeriesMouseClick:re,highlightedDataPoints:w,resetSelectionOnDoubleClick:nt,styles:y,classNames:f,zoomInteraction:at,detailsOnClick:L,mapProjection:ne||(n?"naturalEarth":"mercator"),animate:Ue===!0?{duration:.5,once:!0,amount:.5}:Ue||{duration:0,once:!0,amount:0},dimmedOpacity:st,customLayers:lt,maxRadiusValue:it.checkIfNullOrUndefined(ae)?Math.max(...t.map(so).filter(ao)):ae,collapseColorScaleByDefault:be,highlightedIds:dt,mapProperty:ut,dotLegendTitle:Ee,dotBorderColor:_,labelColor:mt}):r.jsxRuntimeExports.jsx("div",{style:{height:`${Math.max(Y,d||($?Y?(x||ce)*$>Y?(x||ce)*$:Y:(x||ce)*$:Te))}px`},className:"flex items-center justify-center",children:r.jsxRuntimeExports.jsx(Ot.w,{"aria-label":"Loading graph"})})}),e[40]=Ue,e[41]=J,e[42]=G,e[43]=f,e[44]=be,e[45]=a,e[46]=lt,e[47]=t,e[48]=L,e[49]=st,e[50]=We,e[51]=_,e[52]=ct,e[53]=Ee,e[54]=d,e[55]=w,e[56]=dt,e[57]=ue,e[58]=n,e[59]=mt,e[60]=o,e[61]=Ve,e[62]=C,e[63]=X,e[64]=ne,e[65]=ut,e[66]=ke,e[67]=ae,e[68]=Y,e[69]=re,e[70]=ge,e[71]=ze,e[72]=$,e[73]=nt,e[74]=_e,e[75]=se,e[76]=q,e[77]=we,e[78]=y,e[79]=Te,e[80]=ce,e[81]=le,e[82]=R.dateFormat,e[83]=R.enabled,e[84]=M,e[85]=v,e[86]=x,e[87]=at,e[88]=m,e[89]=W,e[90]=Se):Se=e[90];let Ne;e[91]!==f?.footnote||e[92]!==f?.source||e[93]!==V||e[94]!==b||e[95]!==y?.footnote||e[96]!==y?.source||e[97]!==x?(Ne=b||V?r.jsxRuntimeExports.jsx(Ht.GraphFooter,{styles:{footnote:y?.footnote,source:y?.source},classNames:{footnote:f?.footnote,source:f?.source},sources:b,footNote:V,width:x}):null,e[91]=f?.footnote,e[92]=f?.source,e[93]=V,e[94]=b,e[95]=y?.footnote,e[96]=y?.source,e[97]=x,e[98]=Ne):Ne=e[98];let rt;return e[99]!==Pe||e[100]!==T||e[101]!==fe||e[102]!==d||e[103]!==N||e[104]!==Y||e[105]!==qe||e[106]!==$||e[107]!==ht||e[108]!==gt||e[109]!==Re||e[110]!==Ce||e[111]!==Se||e[112]!==Ne||e[113]!==le||e[114]!==x?(rt=r.jsxRuntimeExports.jsxs(Rt.GraphContainer,{className:ht,style:gt,id:fe,ref:jt,"aria-label":Pe,backgroundColor:T,theme:le,language:N,minHeight:Y,width:x,height:d,relativeHeight:$,padding:qe,children:[Re,Ce,Se,Ne]}),e[99]=Pe,e[100]=T,e[101]=fe,e[102]=d,e[103]=N,e[104]=Y,e[105]=qe,e[106]=$,e[107]=ht,e[108]=gt,e[109]=Re,e[110]=Ce,e[111]=Se,e[112]=Ne,e[113]=le,e[114]=x,e[115]=rt):rt=e[115],rt}function ao(i){return i!=null}function so(i){return i.radius}function lo(i){return i.properties.NAME!=="Antarctica"}function co(i){return i!==void 0}function uo(i){return i!==void 0}function mo(i){return i.data}function po(i){return i!==void 0}function xo(i){return i.data}function ho(i){return i.x}function go(i,e){return Zt.ascending(i,e)}exports.HybridMap=no;
|
|
2
2
|
//# sourceMappingURL=HybridMap.cjs.map
|
package/dist/HybridMap.js
CHANGED
|
@@ -30,7 +30,7 @@ import { f as po } from "./fetchAndParseData-BpqkBPQL.js";
|
|
|
30
30
|
import { u as uo } from "./uniqBy-BHy4I8PK.js";
|
|
31
31
|
import { a as ho, G as go } from "./GraphContainer-CRqzdKu2.js";
|
|
32
32
|
import { s as fo } from "./sort-BIvMlUH1.js";
|
|
33
|
-
import { g as yo } from "./getUniqValue-
|
|
33
|
+
import { g as yo } from "./getUniqValue-DsqSii6M.js";
|
|
34
34
|
import { g as xo } from "./getJenks-BbngDoBQ.js";
|
|
35
35
|
import { a as vo } from "./init-BJFW6EwE.js";
|
|
36
36
|
var bo = "Separator", je = "horizontal", wo = ["horizontal", "vertical"], De = ze.forwardRef((i, t) => {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-CHPV5EwG-CTPQjnHt.cjs"),o=require("react"),k=require("./index-CyZ1lmi_.cjs"),j=require("./index-BS2TADPj.cjs"),g=require("./DropdownSelect-Doz3mCrM.cjs"),m=require("./checkIfMultiple-wg6hJLXy.cjs"),U=require("./GraphContainer-d8A46BK2.cjs"),W=require("./SingleGraphDashboard.cjs"),f=require("./fetchAndParseData-l5HGMAEs.cjs"),L=require("./getUniqValue-NX8DgwND.cjs"),I=require("./GraphHeader.cjs"),z=require("./filterData-T5DQBE9b.cjs"),F=require("./transformDataForSelect-YmStusCI.cjs"),S=v=>v.map(t=>t.columnWidth||1).reduce((t,x)=>t+x,0),J=["barChart","choroplethMap","biVariateChoroplethMap","circlePacking","treeMap"];function B(v){const{dashboardID:D,dashboardLayout:s,dataSettings:t,filters:x,debugMode:h,theme:y="light",readableHeader:A,dataFilters:$,noOfFiltersPerRow:b=4,filterPosition:w,uiMode:p="normal",graphStyles:q,graphClassNames:O}=v,[V,E]=o.useState(void 0),[c,N]=o.useState(void 0),[n,R]=o.useState([]),T={ignoreCase:!0,ignoreAccents:!0,trim:!0},C=o.useEffectEvent(()=>{const a=(x||[]).map(l=>({filter:l.column,label:l.label||`Filter by ${l.column}`,singleSelect:l.singleSelect,clearable:l.clearable,ui:l.ui,defaultValue:F.transformDefaultValue(l.defaultValue),value:F.transformDefaultValue(l.defaultValue),availableValues:L.getUniqValue(c,l.column).filter(e=>!l.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})),allowSelectAll:l.allowSelectAll,width:l.width}));R(a)}),G=o.useEffectEvent(()=>{if(!c||n.length===0)E(c);else{const a=c.filter(l=>n.every(e=>e.value&&j.flattenDeep([e.value]).length>0?k.intersection(j.flattenDeep([l[e.filter]]),j.flattenDeep([e.value]).map(i=>i.value)).length>0:!0));E(a)}});o.useEffect(()=>{G()},[n,c]),o.useEffect(()=>{(async()=>{try{const l=t.dataURL?typeof t.dataURL=="string"?t.fileType==="json"?await f.fetchAndParseJSON(t.dataURL,t.columnsToArray,t.dataTransformation,h):t.fileType==="api"?await f.fetchAndTransformDataFromAPI(t.dataURL,t.apiHeaders,t.columnsToArray,t.dataTransformation,h):await f.fetchAndParseCSV(t.dataURL,t.dataTransformation,t.columnsToArray,h,t.delimiter,!0):await f.fetchAndParseMultipleDataSources(t.dataURL,t.idColumnTitle):await f.transformColumnsToArray(t.data,t.columnsToArray);N(l)}catch(l){console.error("Data fetching error:",l)}})(),C()},[t,h]),o.useEffect(()=>{C()},[x,c]);const d=(a,l)=>{R(e=>e.map(i=>i.filter===a?{...i,value:l}:i))};return r.jsxRuntimeExports.jsxs(U.GraphContainer,{id:D,"aria-label":"This is a dashboard",backgroundColor:s.backgroundColor??!1,theme:y||"light",language:s.language||"en",padding:s.padding,children:[s.title||s.description?r.jsxRuntimeExports.jsx(I.GraphHeader,{graphTitle:s.title,graphDescription:s.description,isDashboard:!0}):null,r.jsxRuntimeExports.jsxs("div",{className:"flex gap-4 flex-wrap",children:[n.length!==0?r.jsxRuntimeExports.jsx("div",{className:"flex-grow flex-shrink-0",style:{width:w==="side"?"280px":"100%"},children:r.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap items-start gap-4 w-full sticky top-4",children:n?.map((a,l)=>r.jsxRuntimeExports.jsxs("div",{style:{width:a.width||`calc(${100/b}% - ${(b-1)/b}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[r.jsxRuntimeExports.jsx(m.b,{className:"mb-2",children:a.label}),a.singleSelect?a.ui!=="radio"?r.jsxRuntimeExports.jsx(g.ja,{options:a.availableValues,variant:p,isClearable:a.clearable===void 0?!0:a.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:g.Du(T),onChange:e=>{d(a.filter,e)},value:a.value,defaultValue:a.defaultValue}):r.jsxRuntimeExports.jsx(m.ye,{variant:p,defaultValue:a.defaultValue.value,onValueChange:e=>{d(a.filter,a.availableValues.filter(i=>i.value===e))},children:a.availableValues.map((e,i)=>r.jsxRuntimeExports.jsx(m.he,{label:`${e.label}`,value:`${e.value}`},i))}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[a.ui!=="radio"?r.jsxRuntimeExports.jsx(g.ja,{options:a.availableValues,variant:p,size:"sm",isMulti:!0,isClearable:a.clearable===void 0?!0:a.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:g.Du(T),onChange:e=>{d(a.filter,e)},value:a.value,defaultValue:a.defaultValue}):r.jsxRuntimeExports.jsx(m.$,{variant:p,defaultValue:a.defaultValue?a.defaultValue.map(e=>`${e.value}`):[],value:a.value?a.value.map(e=>`${e.value}`):void 0,onValueChange:e=>{d(a.filter,a.availableValues.filter(i=>e.indexOf(`${i.value}`)!==-1))},children:a.availableValues.map((e,i)=>r.jsxRuntimeExports.jsx(m.P,{label:`${e.label}`,value:`${e.value}`},i))}),a.allowSelectAll?r.jsxRuntimeExports.jsx("button",{type:"button",className:"bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400",onClick:()=>{d(a.filter,a.availableValues)},children:"Select all options"}):null]})]},l))})}):null,r.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]",style:{width:w==="side"?"calc(100% - 280px - 1rem)":"100%"},children:s.rows.map((a,l)=>r.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap items-stretch gap-4 w-full h-auto",style:{minHeight:`${a.height||0}px`},children:a.columns.map((e,i)=>r.jsxRuntimeExports.jsx("div",{className:"flex bg-transparent grow min-w-60",style:{width:`calc(${100*(e.columnWidth||1)/S(a.columns)}% - ${(S(a.columns)-(e.columnWidth||1))/S(a.columns)}rem)`,minHeight:"inherit"},children:r.jsxRuntimeExports.jsx(W.SingleGraphDashboard,{graphType:e.graphType,dataFilters:e.dataFilters,uiMode:p,graphSettings:{...e.settings||{},width:void 0,height:void 0,minHeight:void 0,relativeHeight:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||q,classNames:e.settings?.classNames||O,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||s.language,theme:e.settings?.theme||y},dataSettings:{data:V?z.filterData(V,$||[]):void 0},updateFilters:e.attachedFilter&&J.indexOf(e.graphType)!==-1&&n.findIndex(u=>u.filter===e.attachedFilter)!==-1?u=>{const M=n.findIndex(H=>H.filter===e.attachedFilter),P=u?n[M].singleSelect?{value:u,label:u}:[{value:u,label:u}]:void 0;d(e.attachedFilter,P)}:void 0,dataTransform:e.dataTransform,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,graphDataConfiguration:e.graphDataConfiguration,debugMode:h,readableHeader:A||[]})},i))},l))})]})]})}exports.MultiGraphDashboard=B;
|
|
2
2
|
//# sourceMappingURL=MultiGraphDashboard.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiGraphDashboard.cjs","sources":["../src/Components/Dashboard/MultiGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport { SingleGraphDashboard } from './SingleGraphDashboard';\r\n\r\nimport {\r\n ClassNameObject,\r\n DashboardColumnDataType,\r\n DashboardLayoutDataType,\r\n DataFilterDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphType,\r\n StyleObject,\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 { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n dashboardID?: string;\r\n dashboardLayout: DashboardLayoutDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n dataFilters?: DataFilterDataType[];\r\n debugMode?: boolean;\r\n theme?: 'dark' | 'light';\r\n filterPosition?: 'top' | 'side';\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n graphStyles?: StyleObject;\r\n graphClassNames?: ClassNameObject;\r\n}\r\n\r\nconst TotalWidth = (columns: DashboardColumnDataType[]) => {\r\n const columnWidth = columns.map(d => d.columnWidth || 1);\r\n const sum = columnWidth.reduce((acc, cur) => acc + cur, 0);\r\n return sum;\r\n};\r\n\r\nconst GraphWithAttachedFilter: GraphType[] = [\r\n 'barChart',\r\n 'choroplethMap',\r\n 'biVariateChoroplethMap',\r\n 'circlePacking',\r\n 'treeMap',\r\n];\r\n\r\nexport function MultiGraphDashboard(props: Props) {\r\n const {\r\n dashboardID,\r\n dashboardLayout,\r\n dataSettings,\r\n filters,\r\n debugMode,\r\n theme = 'light',\r\n readableHeader,\r\n dataFilters,\r\n noOfFiltersPerRow = 4,\r\n filterPosition,\r\n uiMode = 'normal',\r\n graphStyles,\r\n graphClassNames,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const filterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n };\r\n return (\r\n <GraphContainer\r\n id={dashboardID}\r\n aria-label='This is a dashboard'\r\n backgroundColor={dashboardLayout.backgroundColor ?? false}\r\n theme={theme || 'light'}\r\n language={dashboardLayout.language || 'en'}\r\n padding={dashboardLayout.padding}\r\n >\r\n {dashboardLayout.title || dashboardLayout.description ? (\r\n <GraphHeader\r\n graphTitle={dashboardLayout.title}\r\n graphDescription={dashboardLayout.description}\r\n isDashboard\r\n />\r\n ) : null}\r\n <div className='flex gap-4 flex-wrap'>\r\n {filterSettings.length !== 0 ? (\r\n <div\r\n className='flex-grow flex-shrink-0'\r\n style={{\r\n width: filterPosition === 'side' ? '280px' : '100%',\r\n }}\r\n >\r\n <div className='flex flex-wrap items-start gap-4 w-full sticky top-4'>\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 isClearable={d.clearable === undefined ? true : d.clearable}\r\n size='sm'\r\n variant={uiMode}\r\n isMulti={false}\r\n isSearchable\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n value={d.value}\r\n />\r\n ) : (\r\n <>\r\n <DropdownSelect\r\n options={d.availableValues}\r\n isMulti\r\n size='sm'\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n closeMenuOnSelect={false}\r\n hideSelectedOptions={false}\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 {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <div\r\n className='flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]'\r\n style={{\r\n width: filterPosition === 'side' ? 'calc(100% - 280px - 1rem)' : '100%',\r\n }}\r\n >\r\n {dashboardLayout.rows.map((d, i) => (\r\n <div\r\n key={i}\r\n className='flex flex-wrap items-stretch gap-4 w-full h-auto'\r\n style={{\r\n minHeight: `${d.height || 0}px`,\r\n }}\r\n >\r\n {d.columns.map((el, j) => (\r\n <div\r\n key={j}\r\n className='flex bg-transparent grow min-w-60'\r\n style={{\r\n width: `calc(${(100 * (el.columnWidth || 1)) / TotalWidth(d.columns)}% - ${\r\n (TotalWidth(d.columns) - (el.columnWidth || 1)) / TotalWidth(d.columns)\r\n }rem)`,\r\n minHeight: 'inherit',\r\n }}\r\n >\r\n <SingleGraphDashboard\r\n graphType={el.graphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n minHeight: undefined,\r\n relativeHeight: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData ? filterData(filteredData, dataFilters || []) : undefined,\r\n }}\r\n updateFilters={\r\n el.attachedFilter &&\r\n GraphWithAttachedFilter.indexOf(el.graphType) !== -1 &&\r\n filterSettings.findIndex(f => f.filter === el.attachedFilter) !== -1\r\n ? dClicked => {\r\n const indx = filterSettings.findIndex(\r\n f => f.filter === el.attachedFilter,\r\n );\r\n const value = dClicked\r\n ? filterSettings[indx].singleSelect\r\n ? { value: dClicked, label: dClicked }\r\n : [{ value: dClicked, label: dClicked }]\r\n : undefined;\r\n handleFilterChange(el.attachedFilter as string, value);\r\n }\r\n : undefined\r\n }\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["TotalWidth","columns","map","d","columnWidth","reduce","acc","cur","GraphWithAttachedFilter","MultiGraphDashboard","props","dashboardID","dashboardLayout","dataSettings","filters","debugMode","theme","readableHeader","dataFilters","noOfFiltersPerRow","filterPosition","uiMode","graphStyles","graphClassNames","filteredData","setFilteredData","useState","undefined","data","setData","filterSettings","setFilterSettings","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","defaultValue","transformDefaultValue","value","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","filteredDataEvent","length","result","item","every","flattenDeep","intersection","useEffect","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","handleFilterChange","values","prev","f","GraphContainer","backgroundColor","language","padding","title","description","jsx","GraphHeader","jsxs","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","createFilter","Fragment","rows","minHeight","height","j","SingleGraphDashboard","graphType","settings","relativeHeight","resetSelectionOnDoubleClick","attachedFilter","styles","classNames","radius","size","filterData","indexOf","findIndex","dClicked","indx","dataTransform","dataSelectionOptions","advancedDataSelectionOptions","graphDataConfiguration"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultiGraphDashboard.cjs","sources":["../src/Components/Dashboard/MultiGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport { SingleGraphDashboard } from './SingleGraphDashboard';\r\n\r\nimport {\r\n ClassNameObject,\r\n DashboardColumnDataType,\r\n DashboardLayoutDataType,\r\n DataFilterDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphType,\r\n StyleObject,\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 { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n dashboardID?: string;\r\n dashboardLayout: DashboardLayoutDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n dataFilters?: DataFilterDataType[];\r\n debugMode?: boolean;\r\n theme?: 'dark' | 'light';\r\n filterPosition?: 'top' | 'side';\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n graphStyles?: StyleObject;\r\n graphClassNames?: ClassNameObject;\r\n}\r\n\r\nconst TotalWidth = (columns: DashboardColumnDataType[]) => {\r\n const columnWidth = columns.map(d => d.columnWidth || 1);\r\n const sum = columnWidth.reduce((acc, cur) => acc + cur, 0);\r\n return sum;\r\n};\r\n\r\nconst GraphWithAttachedFilter: GraphType[] = [\r\n 'barChart',\r\n 'choroplethMap',\r\n 'biVariateChoroplethMap',\r\n 'circlePacking',\r\n 'treeMap',\r\n];\r\n\r\nexport function MultiGraphDashboard(props: Props) {\r\n const {\r\n dashboardID,\r\n dashboardLayout,\r\n dataSettings,\r\n filters,\r\n debugMode,\r\n theme = 'light',\r\n readableHeader,\r\n dataFilters,\r\n noOfFiltersPerRow = 4,\r\n filterPosition,\r\n uiMode = 'normal',\r\n graphStyles,\r\n graphClassNames,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const filterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n ui: el.ui,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters, data]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n };\r\n return (\r\n <GraphContainer\r\n id={dashboardID}\r\n aria-label='This is a dashboard'\r\n backgroundColor={dashboardLayout.backgroundColor ?? false}\r\n theme={theme || 'light'}\r\n language={dashboardLayout.language || 'en'}\r\n padding={dashboardLayout.padding}\r\n >\r\n {dashboardLayout.title || dashboardLayout.description ? (\r\n <GraphHeader\r\n graphTitle={dashboardLayout.title}\r\n graphDescription={dashboardLayout.description}\r\n isDashboard\r\n />\r\n ) : null}\r\n <div className='flex gap-4 flex-wrap'>\r\n {filterSettings.length !== 0 ? (\r\n <div\r\n className='flex-grow flex-shrink-0'\r\n style={{\r\n width: filterPosition === 'side' ? '280px' : '100%',\r\n }}\r\n >\r\n <div className='flex flex-wrap items-start gap-4 w-full sticky top-4'>\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 d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={(d.defaultValue as { value: string; label: string }).value}\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => v.value === el),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <RadioGroupItem label={`${el.label}`} value={`${el.value}`} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <div\r\n className='flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]'\r\n style={{\r\n width: filterPosition === 'side' ? 'calc(100% - 280px - 1rem)' : '100%',\r\n }}\r\n >\r\n {dashboardLayout.rows.map((d, i) => (\r\n <div\r\n key={i}\r\n className='flex flex-wrap items-stretch gap-4 w-full h-auto'\r\n style={{\r\n minHeight: `${d.height || 0}px`,\r\n }}\r\n >\r\n {d.columns.map((el, j) => (\r\n <div\r\n key={j}\r\n className='flex bg-transparent grow min-w-60'\r\n style={{\r\n width: `calc(${(100 * (el.columnWidth || 1)) / TotalWidth(d.columns)}% - ${\r\n (TotalWidth(d.columns) - (el.columnWidth || 1)) / TotalWidth(d.columns)\r\n }rem)`,\r\n minHeight: 'inherit',\r\n }}\r\n >\r\n <SingleGraphDashboard\r\n graphType={el.graphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n minHeight: undefined,\r\n relativeHeight: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData ? filterData(filteredData, dataFilters || []) : undefined,\r\n }}\r\n updateFilters={\r\n el.attachedFilter &&\r\n GraphWithAttachedFilter.indexOf(el.graphType) !== -1 &&\r\n filterSettings.findIndex(f => f.filter === el.attachedFilter) !== -1\r\n ? dClicked => {\r\n const indx = filterSettings.findIndex(\r\n f => f.filter === el.attachedFilter,\r\n );\r\n const value = dClicked\r\n ? filterSettings[indx].singleSelect\r\n ? { value: dClicked, label: dClicked }\r\n : [{ value: dClicked, label: dClicked }]\r\n : undefined;\r\n handleFilterChange(el.attachedFilter as string, value);\r\n }\r\n : undefined\r\n }\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["TotalWidth","columns","map","d","columnWidth","reduce","acc","cur","GraphWithAttachedFilter","MultiGraphDashboard","props","dashboardID","dashboardLayout","dataSettings","filters","debugMode","theme","readableHeader","dataFilters","noOfFiltersPerRow","filterPosition","uiMode","graphStyles","graphClassNames","filteredData","setFilteredData","useState","undefined","data","setData","filterSettings","setFilterSettings","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","ui","defaultValue","transformDefaultValue","value","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","filteredDataEvent","length","result","item","every","flattenDeep","intersection","useEffect","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","handleFilterChange","values","prev","f","GraphContainer","backgroundColor","language","padding","title","description","jsx","GraphHeader","jsxs","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","createFilter","RadioGroup","j","RadioGroupItem","Fragment","CheckboxGroup","indexOf","CheckboxGroupItem","rows","minHeight","height","SingleGraphDashboard","graphType","settings","relativeHeight","resetSelectionOnDoubleClick","attachedFilter","styles","classNames","radius","size","filterData","findIndex","dClicked","indx","dataTransform","dataSelectionOptions","advancedDataSelectionOptions","graphDataConfiguration"],"mappings":"klBAsDMA,EAAcC,GACEA,EAAQC,IAAIC,GAAKA,EAAEC,aAAe,CAAC,EAC/BC,OAAO,CAACC,EAAKC,IAAQD,EAAMC,EAAK,CAAC,EAIrDC,EAAuC,CAC3C,WACA,gBACA,yBACA,gBACA,SAAS,EAGJ,SAASC,EAAoBC,EAAc,CAChD,KAAM,CACJC,YAAAA,EACAC,gBAAAA,EACAC,aAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,MAAAA,EAAQ,QACRC,eAAAA,EACAC,YAAAA,EACAC,kBAAAA,EAAoB,EACpBC,eAAAA,EACAC,OAAAA,EAAS,SACTC,YAAAA,EACAC,gBAAAA,CAAAA,EACEb,EAEE,CAACc,EAAcC,CAAe,EAAIC,EAAAA,SAAcC,MAAS,EAEzD,CAACC,EAAMC,CAAO,EAAIH,EAAAA,SAAcC,MAAS,EACzC,CAACG,EAAgBC,CAAiB,EAAIL,EAAAA,SAAmC,CAAA,CAAE,EAE3EM,EAAe,CACnBC,WAAY,GACZC,cAAe,GACfC,KAAM,EAAA,EAGFC,EAAqBC,EAAAA,eAAe,IAAM,CAC9C,MAAMC,GAAsBxB,GAAW,CAAA,GAAIZ,IAAIqC,IAAO,CACpDC,OAAQD,EAAGE,OACXC,MAAOH,EAAGG,OAAS,aAAaH,EAAGE,MAAM,GACzCE,aAAcJ,EAAGI,aACjBC,UAAWL,EAAGK,UACdC,GAAIN,EAAGM,GACPC,aAAcC,EAAAA,sBAAsBR,EAAGO,YAAY,EACnDE,MAAOD,EAAAA,sBAAsBR,EAAGO,YAAY,EAC5CG,gBAAiBC,EAAAA,aAAatB,EAAMW,EAAGE,MAAM,EAC1CD,OAAOW,GAAK,CAACZ,EAAGa,eAAeC,SAAS,GAAGF,CAAC,EAAE,CAAC,EAC/CjD,IAAIiD,IAAM,CAAEH,MAAOG,EAAGT,MAAOS,CAAAA,EAAI,EACpCG,eAAgBf,EAAGe,eACnBC,MAAOhB,EAAGgB,KAAAA,EACV,EACFxB,EAAkBO,CAAkB,CACtC,CAAC,EAEKkB,EAAoBnB,EAAAA,eAAe,IAAM,CAC7C,GAAI,CAACT,GAAQE,EAAe2B,SAAW,IAAmB7B,CAAI,MACzD,CAEH,MAAM8B,EAAS9B,EAAKY,OAAQmB,GAC1B7B,EAAe8B,MAAMpB,GACnBA,EAAOQ,OAASa,EAAAA,YAAY,CAACrB,EAAOQ,KAAK,CAAC,EAAES,OAAS,EACjDK,eACED,EAAAA,YAAY,CAACF,EAAKnB,EAAOA,MAAM,CAAC,CAAC,EACjCqB,cAAY,CAACrB,EAAOQ,KAAK,CAAC,EAAE9C,IAAIqC,GAAMA,EAAGS,KAAK,CAChD,EAAES,OAAS,EACX,EACN,CACF,EACAhC,EAAgBiC,CAAM,CACxB,CACF,CAAC,EACDK,EAAAA,UAAU,IAAM,CACdP,EAAAA,CACF,EAAG,CAAC1B,EAAgBF,CAAI,CAAC,EAEzBmC,EAAAA,UAAU,IAAM,EACI,SAAY,CAC5B,GAAI,CACF,MAAMC,EAAenD,EAAaoD,QAC9B,OAAOpD,EAAaoD,SAAY,SAC9BpD,EAAaqD,WAAa,OACxB,MAAMC,EAAAA,kBACJtD,EAAaoD,QACbpD,EAAauD,eACbvD,EAAawD,mBACbtD,CACF,EACAF,EAAaqD,WAAa,MACxB,MAAMI,EAAAA,6BACJzD,EAAaoD,QACbpD,EAAa0D,WACb1D,EAAauD,eACbvD,EAAawD,mBACbtD,CACF,EACA,MAAMyD,EAAAA,iBACJ3D,EAAaoD,QACbpD,EAAawD,mBACbxD,EAAauD,eACbrD,EACAF,EAAa4D,UACb,EACF,EACJ,MAAMC,EAAAA,iCACJ7D,EAAaoD,QACbpD,EAAa8D,aACf,EACF,MAAMC,EAAAA,wBAAwB/D,EAAae,KAAMf,EAAauD,cAAc,EAChFvC,EAAQmC,CAAY,CACtB,OAASa,EAAO,CACdC,QAAQD,MAAM,uBAAwBA,CAAK,CAC7C,CACF,GACAE,EACA3C,EAAAA,CACF,EAAG,CAACvB,EAAcE,CAAS,CAAC,EAE5BgD,EAAAA,UAAU,IAAM,CACd3B,EAAAA,CACF,EAAG,CAACtB,EAASc,CAAI,CAAC,EAElB,MAAMoD,EAAqBA,CAACxC,EAAgByC,IAAgB,CAC1DlD,KAA0BmD,EAAKhF,IAAIiF,GAAMA,EAAE3C,SAAWA,EAAS,CAAE,GAAG2C,EAAGnC,MAAOiC,CAAAA,EAAWE,CAAE,CAAC,CAC9F,EACA,gCACGC,iBAAA,CACC,GAAIzE,EACJ,aAAW,sBACX,gBAAiBC,EAAgByE,iBAAmB,GACpD,MAAOrE,GAAS,QAChB,SAAUJ,EAAgB0E,UAAY,KACtC,QAAS1E,EAAgB2E,QAExB3E,SAAAA,CAAAA,EAAgB4E,OAAS5E,EAAgB6E,YACxCC,EAAAA,kBAAAA,IAACC,EAAAA,YAAA,CACC,WAAY/E,EAAgB4E,MAC5B,iBAAkB5E,EAAgB6E,YAClC,YAAW,GAAA,EAEX,KACJG,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,uBACZ9D,SAAAA,CAAAA,EAAe2B,SAAW,EACzBiC,EAAAA,kBAAAA,IAAC,MAAA,CACC,UAAU,0BACV,MAAO,CACLnC,MAAOnC,IAAmB,OAAS,QAAU,MAAA,EAG/C,SAAAsE,EAAAA,kBAAAA,IAAC,MAAA,CAAI,UAAU,uDACZ5D,SAAAA,GAAgB5B,IAAI,CAACC,EAAG0F,IACvBD,EAAAA,kBAAAA,KAAC,MAAA,CACC,MAAO,CACLrC,MACEpD,EAAEoD,OACF,QAAQ,IAAMpC,CAAiB,QAC5BA,EAAoB,GAAKA,CAAiB,OAE/C2E,SAAU,EACVC,WAAY,EACZC,SAAU,OAAA,EAIZ,SAAA,CAAAN,EAAAA,kBAAAA,IAACO,EAAAA,EAAA,CAAM,UAAU,OAAQ9F,SAAAA,EAAEuC,MAAM,EAChCvC,EAAEwC,aACDxC,EAAE0C,KAAO,QACP6C,EAAAA,kBAAAA,IAACQ,EAAAA,GAAA,CACC,QAAS/F,EAAE8C,gBACX,QAAS5B,EACT,YAAalB,EAAEyC,YAAcjB,OAAY,GAAOxB,EAAEyC,UAClD,aAAY,GACZ,yBAAwB,GACxB,aAAcuD,EAAAA,GAAanE,CAAY,EACvC,SAAUO,GAAM,CACdyC,EAAmB7E,EAAEqC,OAAQD,CAAE,CACjC,EACA,MAAOpC,EAAE6C,MACT,aAAc7C,EAAE2C,YAAAA,CAAa,EAG/B4C,EAAAA,kBAAAA,IAACU,EAAAA,GAAA,CACC,QAAS/E,EACT,aAAelB,EAAE2C,aAAkDE,MACnE,cAAeT,GAAM,CACnByC,EACE7E,EAAEqC,OACFrC,EAAE8C,gBAAgBT,OAAOW,GAAKA,EAAEH,QAAUT,CAAE,CAC9C,CACF,EAECpC,WAAE8C,gBAAgB/C,IAAI,CAACqC,EAAI8D,IAC1BX,EAAAA,kBAAAA,IAACY,EAAAA,GAAA,CAAe,MAAO,GAAG/D,EAAGG,KAAK,GAAI,MAAO,GAAGH,EAAGS,KAAK,IAASqD,CAAE,CACpE,CAAA,CACH,EAGFT,EAAAA,kBAAAA,KAAAW,EAAAA,kBAAAA,SAAA,CACGpG,SAAAA,CAAAA,EAAE0C,KAAO,QACR6C,EAAAA,kBAAAA,IAACQ,EAAAA,GAAA,CACC,QAAS/F,EAAE8C,gBACX,QAAS5B,EACT,KAAK,KACL,QAAO,GACP,YAAalB,EAAEyC,YAAcjB,OAAY,GAAOxB,EAAEyC,UAClD,aAAY,GACZ,yBAAwB,GACxB,aAAcuD,EAAAA,GAAanE,CAAY,EACvC,SAAUO,GAAM,CACdyC,EAAmB7E,EAAEqC,OAAQD,CAAE,CACjC,EACA,MAAOpC,EAAE6C,MACT,aAAc7C,EAAE2C,aAAa,EAG/B4C,wBAACc,EAAAA,EAAA,CACC,QAASnF,EACT,aACElB,EAAE2C,aAEI3C,EAAE2C,aAIF5C,IAAIqC,GAAM,GAAGA,EAAGS,KAAK,EAAE,EACzB,CAAA,EAEN,MACE7C,EAAE6C,MAEI7C,EAAE6C,MAIF9C,IAAIqC,GAAM,GAAGA,EAAGS,KAAK,EAAE,EACzBrB,OAEN,cAAeY,GAAM,CACnByC,EACE7E,EAAEqC,OACFrC,EAAE8C,gBAAgBT,OAAOW,GAAKZ,EAAGkE,QAAQ,GAAGtD,EAAEH,KAAK,EAAE,IAAM,EAAE,CAC/D,CACF,EAEC7C,WAAE8C,gBAAgB/C,IAAI,CAACqC,EAAI8D,4BACzBK,EAAAA,EAAA,CACC,MAAO,GAAGnE,EAAGG,KAAK,GAClB,MAAO,GAAGH,EAAGS,KAAK,EAAA,EACbqD,CAAE,CAEV,CAAA,CACH,EAEDlG,EAAEmD,eACDoC,EAAAA,kBAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAU,mGACV,QAAS,IAAM,CACbV,EAAmB7E,EAAEqC,OAAQrC,EAAE8C,eAAe,CAChD,EACD,8BAED,EACE,IAAA,CAAA,CACN,CAAA,CAAA,EAtGG4C,CAwGP,CACD,EACH,CAAA,CACF,EACE,KACJH,EAAAA,kBAAAA,IAAC,MAAA,CACC,UAAU,6DACV,MAAO,CACLnC,MAAOnC,IAAmB,OAAS,4BAA8B,MAAA,EAGlER,SAAAA,EAAgB+F,KAAKzG,IAAI,CAACC,EAAG0F,IAC5BH,EAAAA,kBAAAA,IAAC,MAAA,CAEC,UAAU,mDACV,MAAO,CACLkB,UAAW,GAAGzG,EAAE0G,QAAU,CAAC,IAAA,EAG5B1G,SAAAA,EAAEF,QAAQC,IAAI,CAACqC,EAAI8D,IAClBX,EAAAA,kBAAAA,IAAC,MAAA,CAEC,UAAU,oCACV,MAAO,CACLnC,MAAO,QAAS,KAAOhB,EAAGnC,aAAe,GAAMJ,EAAWG,EAAEF,OAAO,CAAC,QACjED,EAAWG,EAAEF,OAAO,GAAKsC,EAAGnC,aAAe,IAAMJ,EAAWG,EAAEF,OAAO,CAAC,OAEzE2G,UAAW,SAAA,EAGb,SAAAlB,EAAAA,kBAAAA,IAACoB,EAAAA,qBAAA,CACC,UAAWvE,EAAGwE,UACd,YAAaxE,EAAGrB,YAChB,OAAAG,EACA,cAAe,CACb,GAAIkB,EAAGyE,UAAY,CAAA,EACnBzD,MAAO5B,OACPkF,OAAQlF,OACRiF,UAAWjF,OACXsF,eAAgBtF,OAChBuF,4BAA6B3E,EAAG4E,eAC5B,GACA5E,EAAGyE,UAAUE,4BACjBE,OAAQ7E,EAAGyE,UAAUI,QAAU9F,EAC/B+F,WAAY9E,EAAGyE,UAAUK,YAAc9F,EACvC+F,OAAQ/E,EAAGwE,YAAc,aAAepF,OAAYY,EAAGyE,UAAUM,OACjEC,KAAMhF,EAAGwE,YAAc,YAAcxE,EAAGyE,UAAUO,KAAO5F,OACzD2D,SAAU/C,EAAGyE,UAAU1B,UAAY1E,EAAgB0E,SACnDtE,MAAOuB,EAAGyE,UAAUhG,OAASA,CAAAA,EAE/B,aAAc,CACZY,KAAMJ,EAAegG,EAAAA,WAAWhG,EAAcN,GAAe,CAAA,CAAE,EAAIS,MAAAA,EAErE,cACEY,EAAG4E,gBACH3G,EAAwBiG,QAAQlE,EAAGwE,SAAS,IAAM,IAClDjF,EAAe2F,aAAetC,EAAE3C,SAAWD,EAAG4E,cAAc,IAAM,GAC9DO,GAAY,CACV,MAAMC,EAAO7F,EAAe2F,aACrBtC,EAAE3C,SAAWD,EAAG4E,cACvB,EACMnE,EAAQ0E,EACV5F,EAAe6F,CAAI,EAAEhF,aACnB,CAAEK,MAAO0E,EAAUhF,MAAOgF,CAAAA,EAC1B,CAAC,CAAE1E,MAAO0E,EAAUhF,MAAOgF,CAAAA,CAAU,EACvC/F,OACJqD,EAAmBzC,EAAG4E,eAA0BnE,CAAK,CACvD,EACArB,OAEN,cAAeY,EAAGqF,cAClB,qBAAsBrF,EAAGsF,qBACzB,6BAA8BtF,EAAGuF,6BACjC,uBAAwBvF,EAAGwF,uBAC3B,UAAAhH,EACA,eAAgBE,GAAkB,CAAA,CAAA,CAAG,CAAA,EAtDlCoF,CAwDP,CACD,GAjEIR,CAkEP,CACD,CAAA,CACH,CAAA,CAAA,CACF,CAAA,EACF,CAEJ"}
|