{"version":3,"file":"RoundedCardLoadingSpinner-CCZVBU1o.js","sources":["../../src/Components/NUTS Map/NUTSMapLegend.jsx","../../src/Components/NUTS Map/topojson.jsx","../../src/Components/NUTS Map/NUTSMap.jsx","../../src/Components/NUTS Map/NUTSMapWithLoader.jsx","../../src/Components/RoundedCardLoadingSpinner.jsx"],"sourcesContent":["import React from \"react\";\nimport Control from \"react-leaflet-custom-control\";\nimport { colourBrackets } from \"./colourBrackets\";\nimport devDebug from \"../../Helpers/debug\";\nimport { useTranslation } from \"react-i18next\";\n//import cloneDeep from \"lodash/cloneDeep\";\nimport { useTabStore } from \"../../Stores/tabStore\";\nimport { useMapsStore } from \"../../Stores/mapsStore\";\nimport { useAuthStore } from \"../../Stores/authStore\";\nexport default function MapLegend({ currency, lang, section }) {\n devDebug(`--- Rendering --- Map Legend, section -> ${section}`);\n const { t } = useTranslation();\n\n const [id] = useTabStore((state) => [state.currentTab[section]]);\n\n const [mapData, displayOption, level, setLevel] = useMapsStore((state) => [\n state.mapData[section][id],\n state.mapState[section][id].displayOption,\n state.mapState[section][id].level,\n state.setLevel,\n ]);\n\n devDebug(`--- Map Legend, displayOption -> ${JSON.stringify(displayOption)}`);\n\n function returnMapLegend(bar) {\n let precedingPart = \"Number of\";\n switch (displayOption) {\n case \"total_price\":\n precedingPart = \"Total value of\";\n break;\n case \"avg_price\":\n precedingPart = \"Average value of\";\n break;\n default:\n if (displayOption !== \"tender_count\") {\n devDebug(`This display option does not exist ${displayOption}`);\n }\n }\n if (bar === \"selected_regions\") {\n let str = `${precedingPart} tenders`;\n return t(str);\n } else {\n let str = `${precedingPart} tenders`;\n return t(str);\n }\n }\n\n return (\n \n \n
\n
\n {useAuthStore.getState()?.user?.email ? (\n \n
\n
{t(\"Partially selected region\")}
\n
\n ) : null}\n
\n {section === \"tender_strategy\" || section === \"dashboard_logged_in\" || section === \"dashboard_anonymous\" ? (\n
\n
{returnMapLegend(\"other_regions\")}
\n
\n {colourBrackets.map((col) => (\n {\n for (let elem of document.getElementsByClassName(\"leaflet-interactive\")) {\n if (elem.getAttribute(\"fill\") === col) {\n elem.classList.add(\"strokeWidthAnim\");\n //elem.setAttribute(\"stroke-width\", 3);\n }\n }\n }}\n onMouseLeave={() => {\n for (let elem of document.getElementsByClassName(\"leaflet-interactive\")) {\n elem.classList.remove(\"strokeWidthAnim\");\n //elem.setAttribute(\"stroke-width\", 1);\n }\n }}\n >
\n ))}\n
\n\n
0
\n
\n {displayOption === \"total_price\" || displayOption === \"avg_price\" ? (\n {`${currency}: ${mapData.maxValues[displayOption][level].toLocaleString(lang)}`}\n ) : (\n {`${mapData.maxValues[displayOption][level]}`}\n )}\n
\n
\n ) : null}\n \n
\n \n
\n
{t(\"NUTS Level\")}
\n
\n {\n setLevel(0, section);\n }}\n >\n 0\n
\n {\n setLevel(1, section);\n }}\n >\n 1\n
\n {\n setLevel(2, section);\n }}\n >\n 2\n \n {\n setLevel(3, section);\n }}\n >\n 3\n \n \n \n
\n
\n );\n}\n","import React from \"react\";\nimport { GeoJSON } from \"react-leaflet\";\nimport level0 from \"../../Assets/Mapdata/NUTS_RG_10M_2021_4326_LEVL_0.json\";\nimport level1 from \"../../Assets/Mapdata/NUTS_RG_10M_2021_4326_LEVL_1.json\";\nimport level2 from \"../../Assets/Mapdata/NUTS_RG_10M_2021_4326_LEVL_2.json\";\nimport level3 from \"../../Assets/Mapdata/NUTS_RG_10M_2021_4326_LEVL_3.json\";\nimport * as topojson from \"@dra2020/topojson-client\";\nimport { colourBrackets } from \"./colourBrackets\";\nimport { useTranslation } from \"react-i18next\";\nimport useStableCallback from \"./stableCallBack\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useMapsStore } from \"../../Stores/mapsStore\";\nimport { useTabStore } from \"../../Stores/tabStore\";\nimport { useDefaultStrategyStore } from \"../../Stores/defaultStrategyStore\";\nimport { useComponentsStore } from \"../../Stores/componentsStore\";\nimport { useTenderStrategyStore } from \"../../Stores/tenderStrategyStore\";\nimport { useAuthStore } from \"../../Stores/authStore\";\n\nexport default function TopoJSON(props) {\n const { isDashboardMap, currency, setFadeInLoader, addNUTElem, section, ...otherProps } = props;\n\n const navigate = useNavigate();\n const [defaultStrategies] = useDefaultStrategyStore((state) => [state.defaultStrategies]);\n const [editableStrategies, setNUTS, existingStrategies] = useTenderStrategyStore((state) => [\n state.editableStrategies[section],\n state.setNUTS,\n state.existingStrategies,\n ]);\n\n const strategies = section === \"edit_user\" || section === \"tender_strategy\" ? editableStrategies : existingStrategies;\n\n const allStrategies = {\n ...strategies,\n ...defaultStrategies[section],\n };\n\n const [id] = useTabStore((state) => [state.currentTab[section]]);\n\n const nuts = allStrategies[id].nuts;\n\n const layerRef = React.useRef(null);\n\n const { i18n } = useTranslation();\n const [showUpgradePopup, setShowUpgradePopup, setNutsSearchFromDashboardClick] = useComponentsStore((state) => [\n state.showUpgradePopup,\n state.setShowUpgradePopup,\n state.setNutsSearchFromDashboardClick,\n ]);\n\n const [isDark, refreshLayer, mapData, displayOption, level] = useMapsStore((state) => [\n state.isDark,\n state.refreshLayer,\n state.mapData[section][id],\n state.mapState[section][id].displayOption, //todo: make sure this works for different sections\n state.mapState[section][id].level, //todo: make sure this works for different sections\n ]);\n\n const levelRef = React.useRef(level);\n\n const MouseOver = (nutsID, name, e) => {\n const popupContent = `${name} - ${nutsID} - ${\n displayOption === \"total_price\" || displayOption === \"avg_price\" ? currency + \": \" : \"\"\n } ${mapData[nutsID]?.[displayOption]?.toLocaleString(i18n.language.slice(0, 2)) || \"0\"}`;\n e.target\n .bindPopup(popupContent, {\n autoPan: false,\n })\n .openPopup()\n .setStyle({\n weight: 2,\n fillColor: \"#cccccc\",\n fillOpacity: 0.7,\n });\n var popup = e.target.getPopup();\n popup.setLatLng(e.latlng);\n };\n const MouseMove = (e) => {\n var popup = e.target.getPopup();\n popup.setLatLng(e.latlng);\n };\n const MouseOut = (nutsID, e) => {\n e.target.setStyle({\n weight: 1,\n fillColor: getColour(nutsID),\n fillOpacity: 1,\n });\n e.target.closePopup();\n };\n\n const stableMouseOver = useStableCallback(MouseOver);\n const stableMouseMove = useStableCallback(MouseMove);\n const stableMouseOut = useStableCallback(MouseOut);\n\n function clickNUT(feature) {\n if (!isDashboardMap) {\n if (\n !feature.properties.NUTS_ID.includes(\"IT\") &&\n useAuthStore.getState()?.user?.subscription?.product_type === \"only_italy\"\n ) {\n setShowUpgradePopup(!showUpgradePopup);\n return;\n } else {\n let nutsID = feature.properties.NUTS_ID;\n let stratID = useTabStore.getState().currentTab[section];\n\n let prevNUTS = [...allStrategies[stratID].nuts];\n\n let alreadyAdded = false;\n if (prevNUTS.includes(nutsID)) {\n alreadyAdded = true;\n }\n if (!alreadyAdded) {\n for (let id of Object.keys(mapData))\n if (id.includes(nutsID) || id === nutsID) {\n prevNUTS.push(id);\n }\n setNUTS(prevNUTS, section, id);\n } else {\n let toDelete = [];\n for (let id of Object.keys(mapData)) {\n if (id.includes(nutsID) || id === nutsID) {\n toDelete.push(id);\n }\n }\n prevNUTS = prevNUTS.filter((nut) => {\n return !toDelete.includes(nut);\n });\n setNUTS(prevNUTS, section, id);\n }\n }\n } else {\n setNutsSearchFromDashboardClick(feature.properties.NUTS_ID);\n navigate(`/${i18n.language.slice(0, 2)}/search`);\n }\n }\n\n //function to show popup when hover\n const onEachFeature = (feature, layer) => {\n const nutsID = feature.properties.NUTS_ID;\n const name = feature.properties.NUTS_NAME;\n layer.on({\n mouseover: (e) => stableMouseOver(nutsID, name, e),\n mousemove: (e) => stableMouseMove(e),\n mouseout: (e) => stableMouseOut(nutsID, e),\n click: () => clickNUT(feature),\n });\n };\n\n function getBorderColour(nutsID) {\n let borderAttribs = { partial: false, colour: \"\" };\n for (let code of nuts) {\n if (code.includes(nutsID) && !nuts.includes(nutsID)) {\n borderAttribs.partial = true;\n borderAttribs.colour = \"#546de5\";\n return borderAttribs;\n }\n }\n borderAttribs.colour = isDark ? \"#cccccc\" : \"#ffffff\";\n return borderAttribs;\n }\n\n const getColour = (nutsID) => {\n if (!nutsID.includes(\"IT\") && useAuthStore.getState()?.user?.subscription?.product_type === \"only_italy\") {\n return \"#62666a\";\n } else {\n if (mapData?.[nutsID]) {\n if (nuts.includes(nutsID) || !useAuthStore.getState()?.user?.email) {\n if (mapData[nutsID][displayOption] === 0) {\n return colourBrackets[0];\n } else {\n for (let i = colourBrackets.length; i > 0; i--) {\n if (mapData[nutsID][displayOption] > mapData.brackets[displayOption][levelRef.current][i]) {\n return colourBrackets[i];\n }\n }\n return colourBrackets[0];\n }\n } else {\n return isDark ? \"#212635\" : \"#d7d4d4\";\n }\n } else {\n return isDark ? \"#212635\" : \"#d7d4d4\";\n }\n }\n };\n\n function getStyle(feature) {\n let opacity = feature.properties.locked ? (isDark ? 0.2 : 0.5) : 1;\n let borderAttribs = getBorderColour(feature.properties.NUTS_ID);\n return {\n color: borderAttribs.colour,\n weight: 1,\n opacity: 1,\n fillColor: borderAttribs.partial ? \"#bab9e1\" : getColour(feature.properties.NUTS_ID),\n fillOpacity: opacity,\n };\n }\n\n function addData(layer, jsonData) {\n if (layer) {\n if (jsonData.type === \"Topology\") {\n layer.clearLayers();\n for (let key in jsonData.objects) {\n let geojson = topojson.feature(jsonData, jsonData.objects[key]);\n layer.addData(geojson);\n }\n } else {\n layer.clearLayers().addData(jsonData);\n }\n }\n }\n\n React.useEffect(() => {\n const layer = layerRef.current;\n levelRef.current = level;\n layer.clearLayers();\n addData(layer, level === 0 ? level0 : level === 1 ? level1 : level === 2 ? level2 : level3);\n // setRefreshLayer(true);\n // setTimeout(() => setRefreshLayer(false), 1000);\n }, [level, nuts, isDark]);\n\n return refreshLayer ? null : (\n \n );\n}\n","import React from \"react\";\nimport { MapContainer } from \"react-leaflet\";\n// eslint-disable-next-line no-unused-vars\n// import devDebug from \"../../Helpers/debug\";\n// eslint-disable-next-line no-unused-vars\nimport { GestureHandling } from \"leaflet-gesture-handling\";\nimport NUTSMapLegend from \"./NUTSMapLegend\";\nimport TopoJSON from \"./topojson\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function NUTSMap({ currency, setFadeInLoader, section }) {\n const { t, i18n } = useTranslation();\n const touch = t(\"Use two fingers to move the map\");\n const scroll = t(\"Use ctrl + scroll to zoom the map\");\n const scrollMac = t(\"Use \\u2318 + scroll to zoom the map\");\n var mapOptions = {\n center: [48.24, 9.348],\n zoom: 5,\n style: { height: \"600px\" },\n gestureHandling: true,\n gestureHandlingOptions: {\n duration: 10000,\n text: {\n touch: touch,\n scroll: scroll,\n scrollMac: scrollMac,\n },\n },\n };\n\n return (\n \n \n \n \n );\n}\n","import React from \"react\";\nimport { Spinner } from \"reactstrap\";\nimport NUTSMap from \"./NUTSMap\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTenderStrategyStore } from \"../../Stores/tenderStrategyStore\";\nimport { useTabStore } from \"../../Stores/tabStore\";\n\nexport default function NUTSMapWithLoader({ section }) {\n const { t } = useTranslation();\n const [id] = useTabStore((state) => [state.currentTab[section]]);\n const [fadeInLoader, setFadeInLoader] = React.useState(false);\n const [errType] = useTenderStrategyStore((state) => [state.errType[id]]);\n\n return (\n \n \n\n \n
\n
\n
\n {t(\"Loading Map Data...\")}\n
\n \n
\n \n \n );\n}\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function RoundedCardLoadingSpinner({ status }) {\n const { t } = useTranslation();\n\n return (\n \n
\n
{t(\"Updating...\")}
\n \n );\n}\n"],"names":["MapLegend","currency","lang","section","t","useTranslation","id","useTabStore","state","currentTab","mapData","displayOption","level","setLevel","useMapsStore","mapState","devDebug","JSON","stringify","returnMapLegend","bar","precedingPart","str","_jsxs","React","Fragment","children","_jsx","Control","prepend","position","className","useAuthStore","getState","user","email","colourBrackets","map","col","onMouseEnter","elem","document","getElementsByClassName","getAttribute","classList","add","onMouseLeave","remove","maxValues","toLocaleString","onClick","TopoJSON","props","isDashboardMap","setFadeInLoader","addNUTElem","otherProps","navigate","useNavigate","defaultStrategies","useDefaultStrategyStore","editableStrategies","setNUTS","existingStrategies","useTenderStrategyStore","allStrategies","nuts","layerRef","useRef","i18n","showUpgradePopup","setShowUpgradePopup","setNutsSearchFromDashboardClick","useComponentsStore","isDark","refreshLayer","levelRef","MouseOver","nutsID","name","e","popupContent","language","slice","target","bindPopup","autoPan","openPopup","setStyle","weight","fillColor","fillOpacity","popup","getPopup","setLatLng","latlng","MouseMove","MouseOut","getColour","closePopup","stableMouseOver","useStableCallback","stableMouseMove","stableMouseOut","clickNUT","feature","properties","NUTS_ID","includes","subscription","product_type","stratID","prevNUTS","alreadyAdded","toDelete","Object","keys","push","filter","nut","onEachFeature","layer","NUTS_NAME","on","mouseover","mousemove","mouseout","click","getBorderColour","borderAttribs","partial","colour","code","i","length","brackets","current","getStyle","opacity","locked","color","addData","jsonData","type","clearLayers","key","objects","geojson","topojson","useEffect","level0","level1","level2","level3","GeoJSON","ref","style","NUTSMap","touch","scroll","scrollMac","mapOptions","center","zoom","height","gestureHandling","gestureHandlingOptions","duration","text","MapContainer","NUTSMapLegend","NUTSMapWithLoader","fadeInLoader","useState","errType","Spinner","RoundedCardLoadingSpinner","status"],"mappings":"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"}