{"version":3,"file":"GriddedGraphsFromConfig.cjs","names":[],"sources":["../src/Components/Dashboard/GriddedGraphsFromConfig.tsx"],"sourcesContent":["import { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { useEffect, useState } from 'react';\r\nimport type {\r\n  AdvancedDataSelectionDataType,\r\n  AggregationSettingsDataType,\r\n  DataFilterDataType,\r\n  DataSelectionDataType,\r\n  DataSettingsDataType,\r\n  FilterUiSettingsDataType,\r\n  GraphConfigurationDataType,\r\n  GraphSettingsDataType,\r\n  GraphType,\r\n} from '@/Types';\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\nimport { GriddedGraphs } from './GriddedGraphs';\r\n\r\ninterface ConfigObject {\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  dataFilters?: DataFilterDataType[];\r\n  graphDataConfiguration?: GraphConfigurationDataType[];\r\n  showCommonColorScale?: boolean;\r\n  minGraphWidth?: number;\r\n  minGraphHeight?: number;\r\n  debugMode?: boolean;\r\n  dataSelectionOptions?: DataSelectionDataType[];\r\n  advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n  readableHeader?: {\r\n    value: string;\r\n    label: string;\r\n  }[];\r\n  theme?: 'dark' | 'light';\r\n}\r\n\r\ninterface Props {\r\n  config: string | ConfigObject;\r\n}\r\n\r\nexport function GriddedGraphsFromConfig(props: Props) {\r\n  const { config } = props;\r\n  const [configSettings, setConfigSettings] = useState<ConfigObject | undefined>(undefined);\r\n  useEffect(() => {\r\n    const fetchData = async () => {\r\n      if (typeof config === 'string') {\r\n        const data = await fetchAndParseJSON(config);\r\n        setConfigSettings(data);\r\n      } else {\r\n        setConfigSettings(config);\r\n      }\r\n    };\r\n    fetchData();\r\n  }, [config]);\r\n\r\n  if (!configSettings)\r\n    return (\r\n      <div className='w-full flex justify-center p-4'>\r\n        <Spinner />\r\n      </div>\r\n    );\r\n  return (\r\n    <GriddedGraphs\r\n      noOfColumns={configSettings.noOfColumns}\r\n      columnGridBy={configSettings.columnGridBy}\r\n      graphSettings={configSettings.graphSettings}\r\n      dataSettings={configSettings.dataSettings}\r\n      filters={configSettings.filters}\r\n      graphType={configSettings.graphType}\r\n      minGraphHeight={configSettings.minGraphHeight}\r\n      minGraphWidth={configSettings.minGraphWidth}\r\n      dataTransform={configSettings.dataTransform}\r\n      graphDataConfiguration={configSettings.graphDataConfiguration}\r\n      dataFilters={configSettings.dataFilters}\r\n      showCommonColorScale={configSettings.showCommonColorScale}\r\n      debugMode={configSettings.debugMode}\r\n      dataSelectionOptions={configSettings.dataSelectionOptions}\r\n      advancedDataSelectionOptions={configSettings.advancedDataSelectionOptions}\r\n      readableHeader={configSettings.readableHeader}\r\n      noOfFiltersPerRow={configSettings.noOfFiltersPerRow}\r\n      theme={configSettings.theme}\r\n    />\r\n  );\r\n}\r\n"],"mappings":"6RA+CA,SAAgB,EAAwB,EAAc,CACpD,GAAM,CAAE,UAAW,EACb,CAAC,EAAgB,IAAA,EAAA,EAAA,UAAwD,IAAA,EAAS,EAmBxF,OAlBA,EAAA,EAAA,eAAgB,EASd,SAR8B,CAG1B,EAFE,OAAO,GAAW,SAEF,MADC,EAAA,EAAkB,CAAM,EAGzB,CAAM,CAE5B,GACU,CACZ,EAAG,CAAC,CAAM,CAAC,EAEN,GAOH,EAAA,EAAA,KAAC,EAAA,cAAD,CACE,YAAa,EAAe,YAC5B,aAAc,EAAe,aAC7B,cAAe,EAAe,cAC9B,aAAc,EAAe,aAC7B,QAAS,EAAe,QACxB,UAAW,EAAe,UAC1B,eAAgB,EAAe,eAC/B,cAAe,EAAe,cAC9B,cAAe,EAAe,cAC9B,uBAAwB,EAAe,uBACvC,YAAa,EAAe,YAC5B,qBAAsB,EAAe,qBACrC,UAAW,EAAe,UAC1B,qBAAsB,EAAe,qBACrC,6BAA8B,EAAe,6BAC7C,eAAgB,EAAe,eAC/B,kBAAmB,EAAe,kBAClC,MAAO,EAAe,KACvB,CAAA,GAxBC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,2CACb,EAAA,EAAA,KAAC,EAAA,QAAD,CAAU,CAAA,CACP,CAAA,CAwBX"}