diff --git a/air-pollutant-map/db/import_muni_data/import_muni_data.ps1 b/air-pollutant-map/db/import_muni_data/import_muni_data.ps1 deleted file mode 100644 index 31bf698..0000000 --- a/air-pollutant-map/db/import_muni_data/import_muni_data.ps1 +++ /dev/null @@ -1,46 +0,0 @@ - -# adjust psql path if needed -$psql = "C:\'Program Files\pgAdmin 4\v4\runtime\psql.exe'" - -# these need to be set -$dbHost = '' -$dbName = '' -$dbUser = '' - -# $csvFile = 'csv_data/kuntadata5.csv' -$csvFile = 'csv_data/PaastotKunnittain1990-2019.csv' - -Read-Host -Prompt "`nConnecting to db $dbName at $dbHost as $dbUser. Updating muni data from $csvFile. Press any key to continue" - - -Write-Output "`n1/4 Backups all muni data tables used by APIs" -iex "& $psql -h $dbHost -d $dbName -U $dbUser -f sql/backup_muni_data_tables.sql" - - -Write-Output "`n2/4 Creates an empty table muni_data_import_temp" -iex "& $psql -h $dbHost -d $dbName -U $dbUser -f sql/create_table_muni_data_import.sql" - - -Write-Output "`n3/4 Imports new muni data to muni_data_import_temp from csv." -$copyCsvSql = @' -"\copy public.muni_data_import_temp (vuosi,kuntanro,nimi,gnfr,s16,s15,s22,s13,s28,s29,s27,s43,s5,s18,s3,s12,s1,s7,s8,s14,s37,s25,s19,s17,s38,s40) FROM '$csvFile' with (format csv, header true, delimiter ';', encoding 'utf-8');" -'@ -iex "& $psql -h $dbHost -d $dbName -U $dbUser -c $copyCsvSql" -Read-Host -Prompt "`nPress CTRL+C if the import was not successful or any key to continue" - -Write-Output "`n4/4 Updates new muni data to tables for APIs (from muni_data_import_temp)." -iex "& $psql -h $dbHost -d $dbName -U $dbUser -f sql/create_tables_muni_data_apis.sql" - - -Write-Output "`nAll muni data tables updated." - - -# Option to revert the import by restoring muni data from backup tables -Read-Host -Prompt "`nExit here (CTRL+C) if you do not want to restore muni data from backup tables (or press any key)" -Read-Host -Prompt "`nIf you proceed, muni data will be restored from backup tables. Exit with CTRL+C or press any key to contnue" -Write-Output "`nRestoring muni data from backup tables..." -iex "& $psql -h $dbHost -d $dbName -U $dbUser -f sql/restore_muni_data_tables.sql" - - -Write-Output "`nAll done." - diff --git a/air-pollutant-map/db/import_muni_data/sql/backup_muni_data_tables.sql b/air-pollutant-map/db/import_muni_data/sql/backup_muni_data_tables.sql deleted file mode 100644 index cd7434a..0000000 --- a/air-pollutant-map/db/import_muni_data/sql/backup_muni_data_tables.sql +++ /dev/null @@ -1,9 +0,0 @@ - -DROP TABLE IF EXISTS muni_data_gnfr_dev_backup; -SELECT * INTO muni_data_gnfr_dev_backup FROM muni_data_gnfr_dev; - -DROP TABLE IF EXISTS muni_data_gnfr_prod_backup; -SELECT * INTO muni_data_gnfr_prod_backup FROM muni_data_gnfr_prod; - -DROP TABLE IF EXISTS muni_data_totals_backup; -SELECT * INTO muni_data_totals_backup FROM muni_data_totals; diff --git a/air-pollutant-map/db/import_muni_data/sql/create_table_muni_data_import.sql b/air-pollutant-map/db/import_muni_data/sql/create_table_muni_data_import.sql deleted file mode 100644 index b7d3514..0000000 --- a/air-pollutant-map/db/import_muni_data/sql/create_table_muni_data_import.sql +++ /dev/null @@ -1,32 +0,0 @@ -DROP TABLE IF EXISTS public.muni_data_import_temp; - -CREATE TABLE public.muni_data_import_temp -( - id SERIAL PRIMARY KEY, - vuosi integer, - kuntanro integer, - nimi varchar(30), - gnfr varchar(25), - s16 double precision, - s15 double precision, - s22 double precision, - s13 double precision, - s28 double precision, - s29 double precision, - s27 double precision, - s43 double precision, - s5 double precision, - s18 double precision, - s3 double precision, - s12 double precision, - s1 double precision, - s7 double precision, - s8 double precision, - s14 double precision, - s37 double precision, - s25 double precision, - s19 double precision, - s17 double precision, - s38 double precision, - s40 double precision -); diff --git a/air-pollutant-map/db/import_muni_data/sql/create_tables_muni_data_apis.sql b/air-pollutant-map/db/import_muni_data/sql/create_tables_muni_data_apis.sql deleted file mode 100644 index b2ccd4d..0000000 --- a/air-pollutant-map/db/import_muni_data/sql/create_tables_muni_data_apis.sql +++ /dev/null @@ -1,82 +0,0 @@ - --- muni_data_gnfr_dev - -DROP TABLE IF EXISTS public.muni_data_gnfr_dev; -CREATE TABLE public.muni_data_gnfr_dev AS ( - SELECT K100.kuntanimi as nimi, K100.kuntanimir as namn, MD.kuntanro, vuosi, gnfr, K45.geom, K100.shape_star as area, s16,s15,s22,s13,s28,s29,s27,s43,s5,s18,s3,s12,s1,s7,s8,s14,s37,s25,s19,s17,s38,s40 - FROM public.muni_data_import_temp AS MD - INNER JOIN public.hall100kunta2021 AS K100 ON K100.kuntanro = MD.kuntanro - INNER JOIN public.hall4_5miljkunta2021 AS K45 ON K45.kuntanro = MD.kuntanro -); - -GRANT SELECT ON public.muni_data_gnfr_dev TO hajapaastotkartalla; - - - --- muni_data_gnfr_prod - -CREATE TABLE public.gnfr_dev_prod_map ( - gnfr_dev VARCHAR(40) NOT NULL, - gnfr_prod VARCHAR(40) NOT NULL -); - -INSERT INTO - public.gnfr_dev_prod_map (gnfr_dev, gnfr_prod) -VALUES - ('A_PublicPower', 'GROUP_PowerIndustry'), - ('B_Industry', 'GROUP_PowerIndustry'), - ('D_Fugitive', 'GROUP_PowerIndustry'), - ('C_OtherStationaryComb', 'GROUP_OtherComb'), - ('I_Offroad', 'GROUP_Transport'), - ('H_Aviation', 'GROUP_Transport'), - ('F_RoadTransport', 'GROUP_Transport'), - ('G_Shipping', 'GROUP_Transport'), - ('E_Solvents', 'GROUP_Products'), - ('M_Other', 'GROUP_Products'), - ('J_Waste', 'GROUP_Products'), - ('K_AgriLivestock', 'GROUP_Agriculture'), - ('L_AgriOther', 'GROUP_Agriculture'); - --- group muni data (master) by prod gnfr names -> create a temporary table -CREATE TABLE public.muni_data_gnfr_prod_groups AS ( - SELECT vuosi, kuntanro, gnfr_prod, sum(s1) as s1,sum(s43) as s43,sum(s3) as s3,sum(s5) as s5,sum(s7) as s7,sum(s8) as s8,sum(s38) as s38,sum(s12) as s12,sum(s13) as s13,sum(s14) as s14,sum(s15) as s15,sum(s16) as s16,sum(s17) as s17,sum(s18) as s18,sum(s40) as s40,sum(s19) as s19,sum(s29) as s29,sum(s28) as s28,sum(s37) as s37,sum(s22) as s22,sum(s27) as s27,sum(s25) as s25 - FROM public.muni_data_import_temp AS MD - INNER JOIN public.gnfr_dev_prod_map AS GNFR_MAP ON GNFR_MAP.gnfr_dev = MD.gnfr - GROUP BY vuosi, kuntanro, gnfr_prod -); --- select vuosi, kuntanro, gnfr_prod, s16 from public.muni_data_gnfr_prod_groups ORDER BY kuntanro limit 30; - --- create final muni_data_gnfr_prod table by joining geometry to muni_data_gnfr_prod_groups table -DROP TABLE IF EXISTS public.muni_data_gnfr_prod; -CREATE TABLE public.muni_data_gnfr_prod AS ( - SELECT K100.kuntanimi as nimi, K100.kuntanimir as namn, MD_GROUPS.kuntanro, vuosi, gnfr_prod as gnfr, K45.geom, K100.shape_star as area, s1,s43,s3,s5,s7,s8,s38,s12,s13,s14,s15,s16,s17,s18,s40,s19,s29,s28,s37,s22,s27,s25 - FROM public.muni_data_gnfr_prod_groups AS MD_GROUPS - INNER JOIN public.hall100kunta2021 AS K100 ON K100.kuntanro = MD_GROUPS.kuntanro - INNER JOIN public.hall4_5miljkunta2021 AS K45 ON K45.kuntanro = MD_GROUPS.kuntanro -); - --- drop temporary tables -DROP TABLE IF EXISTS muni_data_gnfr_prod_groups; -DROP TABLE IF EXISTS gnfr_dev_prod_map; - -GRANT SELECT ON public.muni_data_gnfr_prod TO hajapaastotkartalla; - - - --- muni_data_totals - -DROP TABLE IF EXISTS muni_data_totals; - -CREATE TABLE muni_data_totals AS ( - SELECT K45.kuntanimi as nimi, K45.kuntanimir as namn, K45.geom, K100.shape_star as area, MD.* - FROM - ( - SELECT vuosi,kuntanro, sum(s1) as s1,sum(s43) as s43,sum(s3) as s3,sum(s5) as s5,sum(s7) as s7,sum(s8) as s8,sum(s38) as s38,sum(s12) as s12,sum(s13) as s13,sum(s14) as s14,sum(s15) as s15,sum(s16) as s16,sum(s17) as s17,sum(s18) as s18,sum(s40) as s40,sum(s19) as s19,sum(s29) as s29,sum(s28) as s28,sum(s37) as s37,sum(s22) as s22,sum(s27) as s27,sum(s25) as s25 - FROM muni_data_import_temp as MD - GROUP BY vuosi,kuntanro - ) AS MD - INNER JOIN hall4_5miljkunta2021 AS K45 ON K45.kuntanro = MD.kuntanro - INNER JOIN hall100kunta2021 AS K100 ON K100.kuntanro = MD.kuntanro -); - -GRANT SELECT ON muni_data_totals TO hajapaastotkartalla; diff --git a/air-pollutant-map/db/import_muni_data/sql/restore_muni_data_tables.sql b/air-pollutant-map/db/import_muni_data/sql/restore_muni_data_tables.sql deleted file mode 100644 index 6cae4d7..0000000 --- a/air-pollutant-map/db/import_muni_data/sql/restore_muni_data_tables.sql +++ /dev/null @@ -1,12 +0,0 @@ - -DROP TABLE IF EXISTS muni_data_totals; -SELECT * INTO muni_data_totals FROM muni_data_totals_backup; -GRANT SELECT ON muni_data_totals TO hajapaastotkartalla; - -DROP TABLE IF EXISTS muni_data_gnfr_dev; -SELECT * INTO muni_data_gnfr_dev FROM muni_data_gnfr_dev_backup; -GRANT SELECT ON muni_data_gnfr_dev TO hajapaastotkartalla; - -DROP TABLE IF EXISTS muni_data_gnfr_prod; -SELECT * INTO muni_data_gnfr_prod FROM muni_data_gnfr_prod_backup; -GRANT SELECT ON muni_data_gnfr_prod TO hajapaastotkartalla; diff --git a/air-pollutant-map/src/App.vue b/air-pollutant-map/src/App.vue index 92a5835..9c3778d 100644 --- a/air-pollutant-map/src/App.vue +++ b/air-pollutant-map/src/App.vue @@ -28,7 +28,6 @@ @update-total-emission-stats="(tes) => (this.totalEmissionStats = tes)" /> - @@ -40,7 +39,6 @@ import SelectorYear from "./components/SelectorYear.vue"; import SelectorPollutant from "./components/SelectorPollutant.vue"; import SelectorGnfr from "./components/SelectorGnfr.vue"; import GnfrDescription from "./components/GnfrDescription.vue"; -import MuniDataDownloadAll from "./components/MuniDataDownloadAll.vue"; import { Pollutant, MapDataType, Gnfr, TotalEmissionStats } from "./types"; import { Dispatch } from "./store"; import * as env from "./env"; @@ -51,8 +49,7 @@ export default Vue.extend({ SelectorYear, SelectorGnfr, SelectorPollutant, - GnfrDescription, - MuniDataDownloadAll + GnfrDescription }, data() { return { diff --git a/air-pollutant-map/src/components/MuniDataDownload.vue b/air-pollutant-map/src/components/MuniDataDownload.vue deleted file mode 100644 index a9afbd9..0000000 --- a/air-pollutant-map/src/components/MuniDataDownload.vue +++ /dev/null @@ -1,121 +0,0 @@ - - - - - diff --git a/air-pollutant-map/src/components/MuniDataDownloadAll.vue b/air-pollutant-map/src/components/MuniDataDownloadAll.vue deleted file mode 100644 index 7a50bb5..0000000 --- a/air-pollutant-map/src/components/MuniDataDownloadAll.vue +++ /dev/null @@ -1,124 +0,0 @@ - - - - - diff --git a/air-pollutant-map/src/components/MuniFeaturePopup.vue b/air-pollutant-map/src/components/MuniFeaturePopup.vue deleted file mode 100644 index 6213354..0000000 --- a/air-pollutant-map/src/components/MuniFeaturePopup.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - - - diff --git a/air-pollutant-map/src/components/OlMap.vue b/air-pollutant-map/src/components/OlMap.vue index 4e76b2e..0ba1edd 100644 --- a/air-pollutant-map/src/components/OlMap.vue +++ b/air-pollutant-map/src/components/OlMap.vue @@ -13,8 +13,8 @@ /> -
- @@ -46,10 +40,9 @@ import { Coordinate } from "ol/coordinate"; import { Extent } from "ol/extent"; import OlGridDataLayer from "./OlGridDataLayer.vue"; import GridFeaturePopup from "./GridFeaturePopup.vue"; -import MuniFeaturePopup from "./MuniFeaturePopup.vue"; import LoadingAnimation from "./LoadingAnimation.vue"; import Legend from "./Legend.vue"; -import { Pollutant, MapDataType, MuniFeatureProperties } from "@/types"; +import { Pollutant, MapDataType } from "@/types"; import { PollutantLegend } from "../types"; import Projection from "ol/proj/Projection"; import * as env from "../env"; @@ -64,9 +57,7 @@ const projection = new Projection({ export default Vue.extend({ components: { OlGridDataLayer, - // OlMuniBasemapLayer, GridFeaturePopup, - MuniFeaturePopup, LoadingAnimation, Legend }, @@ -84,9 +75,6 @@ export default Vue.extend({ overlay: null as Overlay | null, popupCoords: undefined as Coordinate | undefined, gridPopupValue: null as number | null, - muniPopupVisible: false as boolean, - muniPopupLoading: false as boolean, - muniPopupFeat: null as MuniFeatureProperties | null, legend: undefined as PollutantLegend | undefined }; }, @@ -105,10 +93,6 @@ export default Vue.extend({ handlePopupOnLayerChange() { if (this.mapDataType === MapDataType.GRID) { this.closePopup(); - } else { - // a popup update is triggered in muni data layer, thus set loading=true - this.muniPopupFeat = null; - this.muniPopupLoading = true; } }, updateLegend(legend: PollutantLegend) { @@ -138,29 +122,14 @@ export default Vue.extend({ } }, 0); }, - setMuniFeaturePopup( - coordinate: Coordinate | undefined, - value: MuniFeatureProperties | null - ) { - this.muniPopupFeat = value; - this.muniPopupVisible = value ? true : false; - setTimeout(() => { - if (this.overlay) { - this.overlay.setPosition(coordinate); - this.popupCoords = coordinate; - this.muniPopupLoading = false; - } - }, 0); - }, + closePopup() { // Set the position of the pop-up window to undefined, and clear the coordinate data if (this.overlay) { this.overlay.setPosition(undefined); } - this.muniPopupVisible = false; this.popupCoords = undefined; this.gridPopupValue = null; - this.muniPopupFeat = null; } }, mounted() { diff --git a/air-pollutant-map/src/components/OlMuniBasemapLayer.vue b/air-pollutant-map/src/components/OlMuniBasemapLayer.vue deleted file mode 100644 index 967a616..0000000 --- a/air-pollutant-map/src/components/OlMuniBasemapLayer.vue +++ /dev/null @@ -1,63 +0,0 @@ - - - diff --git a/air-pollutant-map/src/components/OlMuniDataLayer.vue b/air-pollutant-map/src/components/OlMuniDataLayer.vue deleted file mode 100644 index df4ef25..0000000 --- a/air-pollutant-map/src/components/OlMuniDataLayer.vue +++ /dev/null @@ -1,224 +0,0 @@ - - - diff --git a/air-pollutant-map/src/components/ToggleDataType.vue b/air-pollutant-map/src/components/ToggleDataType.vue deleted file mode 100644 index 97a14c8..0000000 --- a/air-pollutant-map/src/components/ToggleDataType.vue +++ /dev/null @@ -1,121 +0,0 @@ - - - - - diff --git a/air-pollutant-map/src/services/muniDataDownload.tsx b/air-pollutant-map/src/services/muniDataDownload.tsx deleted file mode 100644 index 4012370..0000000 --- a/air-pollutant-map/src/services/muniDataDownload.tsx +++ /dev/null @@ -1,188 +0,0 @@ -import { utfBom } from "@/constants"; -import { Lang } from "@/store"; -import { Gnfr, LangStringMap, Pollutant } from "@/types"; -import * as env from "./../env"; - -interface PollutantValues { - s16: number; - s15: number; - s22: number; - s13: number; - s28: number; - s29: number; - s27: number; - s43: number; - s5: number; - s18: number; - s3: number; - s12: number; - s1: number; - s7: number; - s8: number; - s14: number; - s37: number; - s25: number; - s19: number; - s17: number; - s38: number; - s40: number; -} - -interface MuniDataProperties extends PollutantValues { - kuntanro: number; - nimi: string; - namn: string; - vuosi: number; - gnfr: string; - area: number; -} - -interface LocalMuniDataProperties extends MuniDataProperties { - localGnfrName: string; -} - -interface MuniDataFeature { - properties: MuniDataProperties; -} - -const downloadCsvContent = async (csvContent: string, filenamePrefix: string) => { - const element = document.createElement("a"); - element.setAttribute( - "href", - "data:text/csv;charset=utf-8," + encodeURI(utfBom + csvContent) - ); - element.setAttribute("download", filenamePrefix + ".csv"); - element.style.display = "none"; - document.body.appendChild(element); - element.click(); - await new Promise((resolve) => - setTimeout(() => resolve(document.body.removeChild(element)), 700) - ); -}; - -const outputFormat = "&outputFormat=application/json"; -const muniDataGnfrTable = env.useAggregatedGnfrs - ? "p_muni_data_gnfr_prod" - : "p_muni_data_gnfr_dev"; - -const getWfsMuniDataGnfrUri = (pollutantIds: string[], muniId?: number): string => { - const pollutantIdNames = pollutantIds.join(","); - const muniFilter = muniId ? `&viewparams=kuntanro:${muniId}` : ""; - return `${env.gsUri}ows?service=WFS&version=1.0.0 - &request=GetFeature&typeName=hajapaastotkartalla:${muniDataGnfrTable} - &propertyName=kuntanro,nimi,namn,vuosi,gnfr,area,${pollutantIdNames}${outputFormat} - ${muniFilter}`.replace(/ /g, ""); -}; - -const fetchMuniDataProps = async ( - pollutantIds: string[], - muniId?: number -): Promise => { - const uri = getWfsMuniDataGnfrUri(pollutantIds, muniId); - try { - const response = await fetch(encodeURI(uri)); - const rawFc = await response.json(); - return rawFc.features.map((feat: MuniDataFeature) => feat.properties); - } catch (error) { - console.error(error); - } -}; - -const joinLocalGnfrNameToMuniDataProps = ( - muniDataProps: MuniDataProperties[], - gnfrNameById: Map, - lang: Lang -): LocalMuniDataProperties[] => { - return muniDataProps.map((props) => { - const localGnfrName = gnfrNameById.has(props.gnfr) - ? gnfrNameById.get(props.gnfr)![lang] - : props.gnfr; - return { ...props, localGnfrName }; - }); -}; - -const sortMuniData = (a: LocalMuniDataProperties, b: LocalMuniDataProperties) => { - if (a.nimi !== b.nimi) { - return a.nimi.localeCompare(b.nimi); - } - if (a.vuosi !== b.vuosi) { - return a.vuosi - b.vuosi; - } - return a.localGnfrName.localeCompare(b.localGnfrName); -}; - -const getMuniDataCsvContent = async ( - headerRowPrefix: string, - pollutantMetas: Pollutant[], - gnfrNameById: Map, - lang: Lang, - muniId?: number -): Promise => { - const pollutantIds = pollutantMetas.map((props) => props.id); - const muniData = await fetchMuniDataProps(pollutantIds, muniId); - if (!muniData) return; - - const pollutantColNames = pollutantMetas.map( - (p) => `${p.name.fi} - ${p.name.en} (${p.unit})` - ); - const sortedMuniData = joinLocalGnfrNameToMuniDataProps(muniData, gnfrNameById, lang).sort( - sortMuniData - ); - - const headerRow = headerRowPrefix + pollutantColNames.join(";"); - return sortedMuniData.reduce((csvContent, props, index) => { - if (index == 0) { - csvContent = headerRow + "\r\n"; - } - const row = [props.kuntanro, props.nimi, props.namn, props.vuosi, props.localGnfrName] - .concat(pollutantIds.map((id) => props[id])) - .join(";"); - csvContent += row + "\r\n"; - return csvContent; - }, ""); -}; - -const mapGnfrNameById = (gnfrMetas: Gnfr[]) => { - const gnfrNameById: Map = new Map(); - gnfrMetas.forEach((gnfr) => gnfrNameById.set(gnfr.id, gnfr.name)); - return gnfrNameById; -}; - -/** - * Fetches and downloads all pollutant data of the given municipality as a CSV file. - * Returns a boolean indicating the success (or failure) of the fetch & download. - */ -export const downloadMuniDataCsv = async ( - filenamePrefix: string, - filenameSuffix: string, - headerRowPrefix: string, - lang: Lang, - fetchGnfrMeta: () => Promise, - fetchPollutantMeta: () => Promise, - muniId?: number -): Promise => { - const gnfrMetas = await fetchGnfrMeta(); - const pollutantMetas = await fetchPollutantMeta(); - if (!pollutantMetas || !gnfrMetas) return false; - - const gnfrNameById = mapGnfrNameById(gnfrMetas); - const csvContent = await getMuniDataCsvContent( - headerRowPrefix, - pollutantMetas, - gnfrNameById, - lang, - muniId - ); - - if (csvContent) { - const filename = filenamePrefix + (filenameSuffix ? "_" + filenameSuffix : ""); - try { - await downloadCsvContent(csvContent, filename); - return true; - } catch (error) { - console.error(error); - return false; - } - } - return false; -}; diff --git a/air-pollutant-map/src/utils/translate/en.json b/air-pollutant-map/src/utils/translate/en.json index 53b2e9d..4f44794 100644 --- a/air-pollutant-map/src/utils/translate/en.json +++ b/air-pollutant-map/src/utils/translate/en.json @@ -3,7 +3,6 @@ "selector.gnfr.label": "Sector", "selector.pollutant.label": "Pollutant", "selector.map.datatype.grid": "Grid", - "selector.map.datatype.muni": "Municipalities", "map.legend.title.emissions.label": "Emissions", "map.legend.title.emission-density.label": "Emission density", @@ -15,21 +14,9 @@ "aria.gnfr.selector.describe": "Arrow down for options (emission sectors)", "aria.pollutant.selector.status.text": "options (pollutants) available", "aria.pollutant.selector.describe": "Arrow down for options (pollutants)", - "aria.mapdatatype.selector.label": "Select map data type from two options (grid & municipalities)", "aria.language.selector.label": "Select language language of the air pollutant map (FI -> Finnish, SV -> Swedish, EN -> English)", "gnfr.description.combined-emissions": "Total emissions:", "gnfr.description.gnfr-share-of-total": "Share of the selected class is", - "gnfr.description.share.of.reported_pre": " and of the visible emissions", - "gnfr.description.share.of.reported_after": "are reported by the facilities.", - "gnfr.description.no_reported_emissions": "This class does not contain any reported emissions.", - "gnfr.description.no_emissions": "No emissions found for the current year and class.", - - "csv-data-download.all.button.label": "Lataa koko päästödata kunnittain", - "csv-data-download.municipality.button.label": "Download emission data", - - "csv-data-download.filename-prefix": "emission_data", - "csv-data-download.header-row-prefix": "Municipality num.;Name FI;Name SV;Year;Sector;", - "csv-data-download.loading-label": "Downloading emission data", - "csv-data-download.failed-try-again.label": "Download failed, please try again later." + "gnfr.description.no_emissions": "No emissions found for the current year and class." } diff --git a/air-pollutant-map/src/utils/translate/fi.json b/air-pollutant-map/src/utils/translate/fi.json index b7be7ef..c0cfe8b 100644 --- a/air-pollutant-map/src/utils/translate/fi.json +++ b/air-pollutant-map/src/utils/translate/fi.json @@ -3,7 +3,6 @@ "selector.gnfr.label": "Luokka", "selector.pollutant.label": "Päästö", "selector.map.datatype.grid": "Ruudukko", - "selector.map.datatype.muni": "Kunnat", "map.legend.title.emissions.label": "Päästömäärä", "map.legend.title.emission-density.label": "Päästömäärä", @@ -15,21 +14,9 @@ "aria.gnfr.selector.describe": "Napsauta nuolinäppäintä alas nähdäksesi vaihtoehdot (päästöluokat)", "aria.pollutant.selector.status.text": "vaihtoehtoa (päästöä) valittavana", "aria.pollutant.selector.describe": "Napsauta nuolinäppäintä alas nähdäksesi vaihtoehdot (saastukkeet)", - "aria.mapdatatype.selector.label": "Valitse kartalla näytettävä data kahdesta vaihtoehdosta (ruudukko & kunnat)", "aria.language.selector.label": "Valitse päästökartan kieli (FI -> suomi, SV -> ruotsi, EN -> englanti)", "gnfr.description.combined-emissions": "Päästöt yhteensä:", "gnfr.description.gnfr-share-of-total": "Valitun luokan osuus kokonaishajapäästöistä on", - "gnfr.description.share.of.reported_pre": " ja esitettävistä päästöistä", - "gnfr.description.share.of.reported_after": "on toiminnanharjoittajien raportoimia.", - "gnfr.description.no_reported_emissions": "Luokkaan ei kuulu toiminnanharjoittajien raportoimia päästöjä.", - "gnfr.description.no_emissions": "Valitulle vuodelle ja luokalle ei löydy päästöjä.", - - "csv-data-download.all.button.label": "Lataa koko päästödata kunnittain", - "csv-data-download.municipality.button.label": "Lataa päästödata", - - "csv-data-download.filename-prefix": "paastodata", - "csv-data-download.header-row-prefix": "Kuntanumero;Nimi;Namn;Vuosi;Luokka;", - "csv-data-download.loading-label": "Ladataan päästödataa", - "csv-data-download.failed-try-again.label": "Lataus epäonnistui, yritä myöhemmin uudestaan." + "gnfr.description.no_emissions": "Valitulle vuodelle ja luokalle ei löydy päästöjä." } diff --git a/air-pollutant-map/src/utils/translate/sv.json b/air-pollutant-map/src/utils/translate/sv.json index eb880ae..c85e901 100644 --- a/air-pollutant-map/src/utils/translate/sv.json +++ b/air-pollutant-map/src/utils/translate/sv.json @@ -3,7 +3,6 @@ "selector.gnfr.label": "Kategori", "selector.pollutant.label": "Förorening", "selector.map.datatype.grid": "Rutnät", - "selector.map.datatype.muni": "Kommuner", "map.legend.title.emissions.label": "Utsläppsmängd", "map.legend.title.emission-density.label": "Utsläppsmängd", @@ -15,21 +14,10 @@ "aria.gnfr.selector.describe": "Tryck pil ned till alternativ (utsläppsklasser)", "aria.pollutant.selector.status.text": "tillgängliga alternativ (föroreningar)", "aria.pollutant.selector.describe": "Tryck pil ned till alternativ (föroreningar)", - "aria.mapdatatype.selector.label": "Välj data som visas på kartan från två alternativ (rutnät & kommuner)", "aria.language.selector.label": "Välj språket på luftföroreningskartan (FI -> Finnish, SV -> Swedish, EN -> English)", "gnfr.description.combined-emissions": "Sammanlagda utsläpp:", "gnfr.description.gnfr-share-of-total": "Andel av vald kategori är", - "gnfr.description.share.of.reported_pre": " och av utsläpp som visas", - "gnfr.description.share.of.reported_after": "är rapporterade av versamhetsutövare.", - "gnfr.description.no_reported_emissions": "Kategorin innehåller inte utsläpp rapporterade av verksamhetsutövare.", - "gnfr.description.no_emissions": "Inga utsläpp hittades för innevarande år och klass.", + "gnfr.description.no_emissions": "Inga utsläpp hittades för innevarande år och klass." - "csv-data-download.all.button.label": "Ladda ned full utsläppsdata", - "csv-data-download.municipality.button.label": "Ladda ned utsläppsdata", - - "csv-data-download.filename-prefix": "utsläpp_data", - "csv-data-download.header-row-prefix": "Kommunnummer;Namn FI;Namn SV;År;Kategori;", - "csv-data-download.loading-label": "Ladda ned utsläppsdata", - "csv-data-download.failed-try-again.label": "Download failed, please try again later." } diff --git a/ui/public/air-pollutant-map/js/app.js b/ui/public/air-pollutant-map/js/app.js index 61f9b5b..0cb2c3f 100644 --- a/ui/public/air-pollutant-map/js/app.js +++ b/ui/public/air-pollutant-map/js/app.js @@ -122,18 +122,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ }), -/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! - \*******************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js?"); - -/***/ }), - /***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js": /*!********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! @@ -158,18 +146,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ }), -/***/ "./node_modules/@babel/runtime/helpers/esm/objectSpread2.js": -/*!******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js ***! - \******************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _objectSpread2; });\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ \"./node_modules/core-js/modules/es.object.keys.js\");\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ \"./node_modules/core-js/modules/es.symbol.js\");\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ \"./node_modules/core-js/modules/es.array.filter.js\");\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptor.js */ \"./node_modules/core-js/modules/es.object.get-own-property-descriptor.js\");\n/* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptors.js */ \"./node_modules/core-js/modules/es.object.get-own-property-descriptors.js\");\n/* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _defineProperty_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./defineProperty.js */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n Object(_defineProperty_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js?"); - -/***/ }), - /***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! @@ -238,7 +214,7 @@ eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module fr /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var _components_OlMap_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/OlMap.vue */ \"./src/components/OlMap.vue\");\n/* harmony import */ var _components_SelectorYear_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/SelectorYear.vue */ \"./src/components/SelectorYear.vue\");\n/* harmony import */ var _components_SelectorPollutant_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/SelectorPollutant.vue */ \"./src/components/SelectorPollutant.vue\");\n/* harmony import */ var _components_SelectorGnfr_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/SelectorGnfr.vue */ \"./src/components/SelectorGnfr.vue\");\n/* harmony import */ var _components_GnfrDescription_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/GnfrDescription.vue */ \"./src/components/GnfrDescription.vue\");\n/* harmony import */ var _components_MuniDataDownloadAll_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/MuniDataDownloadAll.vue */ \"./src/components/MuniDataDownloadAll.vue\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./types */ \"./src/types.tsx\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./store */ \"./src/store.tsx\");\n/* harmony import */ var _env__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./env */ \"./src/env.tsx\");\n\n\n // import ToggleDataType from \"./components/ToggleDataType.vue\";\n\n\n // import ToggleLanguageButtons from \"./components/ToggleLanguageButtons.vue\";\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"].extend({\n components: {\n OlMap: _components_OlMap_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n SelectorYear: _components_SelectorYear_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n SelectorGnfr: _components_SelectorGnfr_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n SelectorPollutant: _components_SelectorPollutant_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n // ToggleDataType,\n // ToggleLanguageButtons,\n GnfrDescription: _components_GnfrDescription_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n MuniDataDownloadAll: _components_MuniDataDownloadAll_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n },\n data: function data() {\n return {\n year: _env__WEBPACK_IMPORTED_MODULE_9__[\"latestYear\"],\n gnfr: undefined,\n pollutant: undefined,\n mapDataType: _types__WEBPACK_IMPORTED_MODULE_7__[\"MapDataType\"].GRID,\n totalEmissionStats: undefined,\n downloadFullDataEnabled: _env__WEBPACK_IMPORTED_MODULE_9__[\"downloadFullDataEnabled\"]\n };\n },\n beforeCreate: function beforeCreate() {\n this.$store.dispatch(_store__WEBPACK_IMPORTED_MODULE_8__[\"Dispatch\"].loadSetInitialLang);\n }\n}));\n\n//# sourceURL=webpack:///./src/App.vue?./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var _components_OlMap_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/OlMap.vue */ \"./src/components/OlMap.vue\");\n/* harmony import */ var _components_SelectorYear_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/SelectorYear.vue */ \"./src/components/SelectorYear.vue\");\n/* harmony import */ var _components_SelectorPollutant_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/SelectorPollutant.vue */ \"./src/components/SelectorPollutant.vue\");\n/* harmony import */ var _components_SelectorGnfr_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/SelectorGnfr.vue */ \"./src/components/SelectorGnfr.vue\");\n/* harmony import */ var _components_GnfrDescription_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/GnfrDescription.vue */ \"./src/components/GnfrDescription.vue\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./types */ \"./src/types.tsx\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./store */ \"./src/store.tsx\");\n/* harmony import */ var _env__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./env */ \"./src/env.tsx\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"].extend({\n components: {\n OlMap: _components_OlMap_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n SelectorYear: _components_SelectorYear_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n SelectorGnfr: _components_SelectorGnfr_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n SelectorPollutant: _components_SelectorPollutant_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n GnfrDescription: _components_GnfrDescription_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n },\n data: function data() {\n return {\n year: _env__WEBPACK_IMPORTED_MODULE_8__[\"latestYear\"],\n gnfr: undefined,\n pollutant: undefined,\n mapDataType: _types__WEBPACK_IMPORTED_MODULE_6__[\"MapDataType\"].GRID,\n totalEmissionStats: undefined,\n downloadFullDataEnabled: _env__WEBPACK_IMPORTED_MODULE_8__[\"downloadFullDataEnabled\"]\n };\n },\n beforeCreate: function beforeCreate() {\n this.$store.dispatch(_store__WEBPACK_IMPORTED_MODULE_7__[\"Dispatch\"].loadSetInitialLang);\n }\n}));\n\n//# sourceURL=webpack:///./src/App.vue?./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -262,7 +238,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var E_PR /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! regenerator-runtime/runtime.js */ \"./node_modules/regenerator-runtime/runtime.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ \"./node_modules/core-js/modules/es.array.find.js\");\n/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _services_meta__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../services/meta */ \"./src/services/meta.tsx\");\n/* harmony import */ var _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./LoadingAnimation.vue */ \"./src/components/LoadingAnimation.vue\");\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"].extend({\n props: {\n year: Number,\n gnfr: {\n type: Object\n },\n pollutant: {\n type: Object\n },\n totalEmissionStats: {\n type: Object\n }\n },\n computed: Object(vuex__WEBPACK_IMPORTED_MODULE_5__[\"mapState\"])([\"lang\"]),\n components: {\n LoadingAnimation: _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n },\n data: function data() {\n return {\n gnfrPollutantMetas: undefined\n };\n },\n methods: {\n getCalcRepShareObject: function getCalcRepShareObject() {\n var _this = this;\n\n if (this.year && this.gnfr && this.pollutant && this.gnfrPollutantMetas) {\n return this.gnfrPollutantMetas.find(function (o) {\n return o.year === _this.year && o.gnfr === _this.gnfr.id && o.pollutant === _this.pollutant.id;\n });\n }\n\n return undefined;\n },\n getRepRatio: function getRepRatio() {\n var gnfrPollutantShare = this.getCalcRepShareObject();\n\n if (gnfrPollutantShare) {\n return Math.round(gnfrPollutantShare.repShare * 1000) / 10;\n }\n\n return \"?\";\n },\n getCalcRatio: function getCalcRatio() {\n var gnfrPollutantShare = this.getCalcRepShareObject();\n\n if (gnfrPollutantShare) {\n return Math.round(gnfrPollutantShare.calcShare * 1000) / 10;\n }\n\n return \"?\";\n },\n roundTotalEmissions: function roundTotalEmissions(n) {\n var rounded = parseFloat(n.toPrecision(3));\n\n if (rounded >= 1000) {\n return rounded.toLocaleString(\"fi-FI\", {\n useGrouping: true\n });\n }\n\n return rounded;\n },\n roundPercentage: function roundPercentage(n) {\n // round breakpoint values to at least two significant figures\n for (var i = 1; i < Math.pow(10, 10); i = i * 10) {\n var divider = 10 / i;\n\n if (n > divider) {\n return Math.round(n * i) / i;\n }\n }\n\n return n;\n },\n getShareOfGnfrEmissions: function getShareOfGnfrEmissions(tes) {\n return this.roundPercentage(tes.gnfrEmissions / tes.totalEmissions * 100);\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return Object(_services_meta__WEBPACK_IMPORTED_MODULE_6__[\"fetchGnfrPollutantMetas\"])();\n\n case 2:\n _this2.gnfrPollutantMetas = _context.sent;\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n }\n}));\n\n//# sourceURL=webpack:///./src/components/GnfrDescription.vue?./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! regenerator-runtime/runtime.js */ \"./node_modules/regenerator-runtime/runtime.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _services_meta__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../services/meta */ \"./src/services/meta.tsx\");\n/* harmony import */ var _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./LoadingAnimation.vue */ \"./src/components/LoadingAnimation.vue\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].extend({\n props: {\n year: Number,\n gnfr: {\n type: Object\n },\n pollutant: {\n type: Object\n },\n totalEmissionStats: {\n type: Object\n }\n },\n computed: Object(vuex__WEBPACK_IMPORTED_MODULE_4__[\"mapState\"])([\"lang\"]),\n components: {\n LoadingAnimation: _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n },\n data: function data() {\n return {\n gnfrPollutantMetas: undefined\n };\n },\n methods: {\n roundTotalEmissions: function roundTotalEmissions(n) {\n var rounded = parseFloat(n.toPrecision(3));\n\n if (rounded >= 1000) {\n return rounded.toLocaleString(\"fi-FI\", {\n useGrouping: true\n });\n }\n\n return rounded;\n },\n roundPercentage: function roundPercentage(n) {\n // round breakpoint values to at least two significant figures\n for (var i = 1; i < Math.pow(10, 10); i = i * 10) {\n var divider = 10 / i;\n\n if (n > divider) {\n return Math.round(n * i) / i;\n }\n }\n\n return n;\n },\n getShareOfGnfrEmissions: function getShareOfGnfrEmissions(tes) {\n return this.roundPercentage(tes.gnfrEmissions / tes.totalEmissions * 100);\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return Object(_services_meta__WEBPACK_IMPORTED_MODULE_5__[\"fetchGnfrPollutantMetas\"])();\n\n case 2:\n _this.gnfrPollutantMetas = _context.sent;\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n }\n}));\n\n//# sourceURL=webpack:///./src/components/GnfrDescription.vue?./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -302,42 +278,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/MuniDataDownload.vue?vue&type=script&lang=ts&": -/*!*************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MuniDataDownload.vue?vue&type=script&lang=ts& ***! - \*************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! regenerator-runtime/runtime.js */ \"./node_modules/regenerator-runtime/runtime.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _services_muniDataDownload__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/services/muniDataDownload */ \"./src/services/muniDataDownload.tsx\");\n/* harmony import */ var _services_meta__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/services/meta */ \"./src/services/meta.tsx\");\n/* harmony import */ var _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./LoadingAnimation.vue */ \"./src/components/LoadingAnimation.vue\");\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].extend({\n props: {\n featProps: {\n type: Object\n }\n },\n computed: Object(vuex__WEBPACK_IMPORTED_MODULE_4__[\"mapState\"])([\"lang\"]),\n components: {\n LoadingAnimation: _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n },\n data: function data() {\n return {\n loadingMuniData: false,\n lastAttemptFailed: false\n };\n },\n watch: {\n featProps: function featProps() {\n this.lastAttemptFailed = false;\n }\n },\n methods: {\n getDownnloadMuniDataButton: function getDownnloadMuniDataButton() {\n return this.$refs[\"download-muni-data-button\"];\n },\n translateOrDefault: function translateOrDefault(key, defaultString) {\n var translated = this.$options.filters ? this.$options.filters.translate(key) : defaultString;\n return translated !== key ? translated : defaultString;\n },\n downloadMuniData: function downloadMuniData() {\n var _this = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var filenamePrefix, headerRowPrefix, filenameSuffix, success;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _this.loadingMuniData = true;\n filenamePrefix = _this.translateOrDefault(\"csv-data-download.filename-prefix\", \"paastodata\");\n headerRowPrefix = _this.translateOrDefault(\"csv-data-download.header-row-prefix\", \"kuntanro;nimi;namn;vuosi;luokka;\");\n filenameSuffix = _this.featProps.name[_this.lang];\n _context.next = 6;\n return Object(_services_muniDataDownload__WEBPACK_IMPORTED_MODULE_5__[\"downloadMuniDataCsv\"])(filenamePrefix, filenameSuffix, headerRowPrefix, _this.lang, _services_meta__WEBPACK_IMPORTED_MODULE_6__[\"fetchGnfrMeta\"], _services_meta__WEBPACK_IMPORTED_MODULE_6__[\"fetchPollutantMeta\"], _this.featProps.id);\n\n case 6:\n success = _context.sent;\n _this.loadingMuniData = false;\n _this.lastAttemptFailed = !success;\n\n _this.getDownnloadMuniDataButton().blur();\n\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n }\n }\n}));\n\n//# sourceURL=webpack:///./src/components/MuniDataDownload.vue?./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); - -/***/ }), - -/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/MuniDataDownloadAll.vue?vue&type=script&lang=ts&": -/*!****************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MuniDataDownloadAll.vue?vue&type=script&lang=ts& ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! regenerator-runtime/runtime.js */ \"./node_modules/regenerator-runtime/runtime.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _services_muniDataDownload__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/services/muniDataDownload */ \"./src/services/muniDataDownload.tsx\");\n/* harmony import */ var _services_meta__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/services/meta */ \"./src/services/meta.tsx\");\n/* harmony import */ var _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./LoadingAnimation.vue */ \"./src/components/LoadingAnimation.vue\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend({\n props: {\n featProps: {\n type: Object\n }\n },\n computed: Object(vuex__WEBPACK_IMPORTED_MODULE_3__[\"mapState\"])([\"lang\"]),\n components: {\n LoadingAnimation: _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n },\n data: function data() {\n return {\n loadingMuniData: false,\n lastAttemptFailed: false\n };\n },\n watch: {\n featProps: function featProps() {\n this.lastAttemptFailed = false;\n }\n },\n methods: {\n getDownnloadMuniDataButton: function getDownnloadMuniDataButton() {\n return this.$refs[\"download-all-muni-data-button\"];\n },\n translateOrDefault: function translateOrDefault(key, defaultString) {\n var translated = this.$options.filters ? this.$options.filters.translate(key) : defaultString;\n return translated !== key ? translated : defaultString;\n },\n downloadMuniData: function downloadMuniData() {\n var _this = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var filenamePrefix, headerRowPrefix, filenameSuffix, success;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _this.loadingMuniData = true;\n filenamePrefix = _this.translateOrDefault(\"csv-data-download.filename-prefix\", \"paastodata\");\n headerRowPrefix = _this.translateOrDefault(\"csv-data-download.header-row-prefix\", \"kuntanro;nimi;namn;vuosi;luokka;\");\n filenameSuffix = \"\";\n _context.next = 6;\n return Object(_services_muniDataDownload__WEBPACK_IMPORTED_MODULE_4__[\"downloadMuniDataCsv\"])(filenamePrefix, filenameSuffix, headerRowPrefix, _this.lang, _services_meta__WEBPACK_IMPORTED_MODULE_5__[\"fetchGnfrMeta\"], _services_meta__WEBPACK_IMPORTED_MODULE_5__[\"fetchPollutantMeta\"]);\n\n case 6:\n success = _context.sent;\n _this.loadingMuniData = false;\n _this.lastAttemptFailed = !success;\n\n _this.getDownnloadMuniDataButton().blur();\n\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n }\n }\n}));\n\n//# sourceURL=webpack:///./src/components/MuniDataDownloadAll.vue?./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); - -/***/ }), - -/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/MuniFeaturePopup.vue?vue&type=script&lang=ts&": -/*!*************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MuniFeaturePopup.vue?vue&type=script&lang=ts& ***! - \*************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _MuniDataDownload_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MuniDataDownload.vue */ \"./src/components/MuniDataDownload.vue\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"].extend({\n props: {\n pollutant: {\n type: Object\n },\n featProps: {\n type: Object\n }\n },\n components: {\n MuniDataDownload: _MuniDataDownload_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n computed: Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])([\"lang\"]),\n methods: {\n closePopup: function closePopup() {\n this.$emit(\"close-popup\");\n },\n roundPollutantValue: function roundPollutantValue(n) {\n var rounded = parseFloat(n.toPrecision(2));\n\n if (rounded >= 1000) {\n return rounded.toLocaleString(\"fi-FI\", {\n useGrouping: true\n });\n }\n\n return rounded;\n }\n }\n}));\n\n//# sourceURL=webpack:///./src/components/MuniFeaturePopup.vue?./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); - -/***/ }), - /***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/OlGridDataLayer.vue?vue&type=script&lang=ts&": /*!************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/OlGridDataLayer.vue?vue&type=script&lang=ts& ***! @@ -346,7 +286,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! regenerator-runtime/runtime.js */ \"./node_modules/regenerator-runtime/runtime.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ \"./node_modules/core-js/modules/es.array.filter.js\");\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var ol_layer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ol/layer */ \"./node_modules/ol/layer.js\");\n/* harmony import */ var ol_source_Vector__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ol/source/Vector */ \"./node_modules/ol/source/Vector.js\");\n/* harmony import */ var ol_format_GeoJSON__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ol/format/GeoJSON */ \"./node_modules/ol/format/GeoJSON.js\");\n/* harmony import */ var ol_style__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ol/style */ \"./node_modules/ol/style.js\");\n/* harmony import */ var _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./../utils/pollutantStyles */ \"./src/utils/pollutantStyles.tsx\");\n/* harmony import */ var _services_emissions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./../services/emissions */ \"./src/services/emissions.tsx\");\n/* harmony import */ var _services_grid__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./../services/grid */ \"./src/services/grid.tsx\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../types */ \"./src/types.tsx\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/store */ \"./src/store.tsx\");\n/* harmony import */ var _env__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./../env */ \"./src/env.tsx\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar classCount = 7;\n/* harmony default export */ __webpack_exports__[\"default\"] = (vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"].extend({\n props: {\n map: {\n type: Object\n },\n year: Number,\n gnfrId: String,\n pollutant: {\n type: Object\n }\n },\n data: function data() {\n return {\n layerSource: new ol_source_Vector__WEBPACK_IMPORTED_MODULE_11__[\"default\"](),\n vectorLayer: new ol_layer__WEBPACK_IMPORTED_MODULE_10__[\"Vector\"](),\n colorFunction: undefined,\n legend: undefined,\n cache: {}\n };\n },\n watch: {\n year: function year(newVal) {\n console.log(\"Year changed to \".concat(newVal, \", refreshing grid data...\"));\n this.handleLayerUpdate();\n },\n gnfrId: function gnfrId(newVal) {\n console.log(\"Gnfr changed to \".concat(newVal, \", refreshing grid data...\"));\n this.handleLayerUpdate();\n },\n pollutant: function pollutant(newVal) {\n console.log(\"Pollutant changed to \".concat(newVal.name[\"fi\"], \", refreshing grid data...\")); // this.colorFunction = undefined;\n\n this.handleLayerUpdate();\n }\n },\n methods: {\n getOlStyle: function getOlStyle() {\n var _this = this;\n\n return function (feature) {\n return new ol_style__WEBPACK_IMPORTED_MODULE_13__[\"Style\"]({\n fill: new ol_style__WEBPACK_IMPORTED_MODULE_13__[\"Fill\"]({\n color: _this.colorFunction ? _this.colorFunction(feature) : \"rgba(255,255,255,0)\"\n })\n });\n };\n },\n getMaxEmissionValue: function getMaxEmissionValue() {\n return Math.ceil(Math.max.apply(Math, Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.layerSource.getFeatures().map(function (feat) {\n return feat.get(\"emission\");\n }).filter(function (p) {\n return p;\n }))));\n },\n handleLayerUpdate: function handleLayerUpdate() {\n var _this2 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _this2.$store.dispatch(_store__WEBPACK_IMPORTED_MODULE_18__[\"Dispatch\"].setLoading);\n\n _this2.$emit(\"update-total-emission-stats\", undefined);\n\n _context.next = 4;\n return _this2.loadSourceFeatures();\n\n case 4:\n if (!(_this2.layerSource.getFeatures() === undefined || _this2.layerSource.getFeatures().length == 0)) {\n _context.next = 7;\n break;\n }\n\n _this2.$store.dispatch(_store__WEBPACK_IMPORTED_MODULE_18__[\"Dispatch\"].setLoaded);\n\n return _context.abrupt(\"return\");\n\n case 7:\n _context.next = 9;\n return _this2.handleStyleUpdate();\n\n case 9:\n _context.next = 11;\n return _this2.updateTotalEmissionStats();\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n loadSourceFeatures: function loadSourceFeatures() {\n var _this3 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n var gridData;\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return _services_emissions__WEBPACK_IMPORTED_MODULE_15__[\"fetchGridData\"](_this3.year, _this3.gnfrId, _this3.pollutant.id, _this3.pollutant.coeffLegend);\n\n case 2:\n gridData = _context2.sent;\n\n if (gridData) {\n _context2.next = 5;\n break;\n }\n\n return _context2.abrupt(\"return\");\n\n case 5:\n _this3.layerSource.forEachFeature(function (feat) {\n var emission = gridData.get(feat.get(\"id\"));\n feat.setProperties({\n emission: emission\n });\n });\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n handleStyleUpdate: function handleStyleUpdate() {\n var _this4 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n var maxEmissionValue, breakPoints;\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n maxEmissionValue = _this4.getMaxEmissionValue();\n _context3.next = 3;\n return _this4.updateStyle(maxEmissionValue);\n\n case 3:\n breakPoints = _context3.sent;\n\n if (breakPoints) {\n _this4.updateLegend(breakPoints, maxEmissionValue);\n\n _this4.$store.dispatch(_store__WEBPACK_IMPORTED_MODULE_18__[\"Dispatch\"].setLoaded);\n } else {\n console.error(\"Could not update style for the current layer\");\n }\n\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n\n /**\r\n * Either loads or calculates breakpoints for the layer, creates style function by them and finally returns the breakpoints.\r\n * Returns undefined if breakpoints were not found in the end (this should not happen).\r\n *\r\n * This function is to be part of the loader function of the layer, which is called every time the layer source is refreshed (this.layerSource.refresh()).\r\n * The dynamic styling of the layer is based on the combined emission values of the selected pollutant (combined GNFR class of that pollutant). The style\r\n * function is based on breakpoints, that define minimum and maximum values for each color class. New breakpoints are calculated only if they were not\r\n * calculated before. If the breakponts are to be calculatd for the first time, they can be calculated from the current layer if it is the combined GNFR and\r\n * latest year, otherwise that layer is fetched for calculating the breakpoints. Finally, the style function of the layer is updated by the breakpoints.\r\n */\n updateStyle: function updateStyle(maxEmissionValue) {\n var _this5 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {\n var breakPoints, latestValues, _breakPoints, gd, _latestValues, _breakPoints2;\n\n return regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n if (!_utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"hasBreakPoints\"](_types__WEBPACK_IMPORTED_MODULE_17__[\"MapDataType\"].GRID, _this5.pollutant.id)) {\n _context4.next = 6;\n break;\n }\n\n breakPoints = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getBreakPoints\"](_types__WEBPACK_IMPORTED_MODULE_17__[\"MapDataType\"].GRID, _this5.pollutant.id);\n _this5.colorFunction = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getColorFunction\"](\"emission\", breakPoints, maxEmissionValue);\n return _context4.abrupt(\"return\", breakPoints);\n\n case 6:\n if (!(_this5.gnfrId === \"COMBINED\" && _this5.year === _env__WEBPACK_IMPORTED_MODULE_19__[\"latestYear\"])) {\n _context4.next = 13;\n break;\n }\n\n // current layer is combined emissions and latest year, thus breakpoints can be calculated by it\n latestValues = _this5.layerSource.getFeatures().map(function (feat) {\n return feat.get(\"emission\");\n });\n _breakPoints = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getPollutantBreakPoints\"](_types__WEBPACK_IMPORTED_MODULE_17__[\"MapDataType\"].GRID, _this5.pollutant.id, latestValues, classCount);\n _this5.colorFunction = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getColorFunction\"](\"emission\", _breakPoints, maxEmissionValue);\n return _context4.abrupt(\"return\", _breakPoints);\n\n case 13:\n // combined pollutants from latest year need to be fetched for calculating breakpoints\n console.log(\"Fetching features of \".concat(_env__WEBPACK_IMPORTED_MODULE_19__[\"latestYear\"], \" and calculating breakpoints\"));\n _context4.next = 16;\n return _services_emissions__WEBPACK_IMPORTED_MODULE_15__[\"fetchGridData\"](_env__WEBPACK_IMPORTED_MODULE_19__[\"latestYear\"], \"COMBINED\", _this5.pollutant.id, _this5.pollutant.coeffLegend);\n\n case 16:\n gd = _context4.sent;\n\n if (gd) {\n _context4.next = 19;\n break;\n }\n\n return _context4.abrupt(\"return\");\n\n case 19:\n _latestValues = Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(gd.values());\n _breakPoints2 = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getPollutantBreakPoints\"](_types__WEBPACK_IMPORTED_MODULE_17__[\"MapDataType\"].GRID, _this5.pollutant.id, _latestValues, classCount);\n _this5.colorFunction = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getColorFunction\"](\"emission\", _breakPoints2, maxEmissionValue); // for some reason this async style update needs to be triggered manually\n\n _this5.vectorLayer.setStyle(_this5.getOlStyle());\n\n return _context4.abrupt(\"return\", _breakPoints2);\n\n case 24:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n },\n updateLegend: function updateLegend(breakPoints, maxEmissionValue) {\n this.legend = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getPollutantLegend\"](this.pollutant, breakPoints, maxEmissionValue);\n this.$emit(\"update-legend\", this.legend);\n },\n updateTotalEmissionStats: function updateTotalEmissionStats() {\n var _this6 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {\n var totalEmissionStats;\n return regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return _services_emissions__WEBPACK_IMPORTED_MODULE_15__[\"getTotalEmissionStats\"](_this6.year, _this6.gnfrId, _this6.pollutant);\n\n case 2:\n totalEmissionStats = _context5.sent;\n\n _this6.$emit(\"update-total-emission-stats\", totalEmissionStats);\n\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n setFeaturePopup: function setFeaturePopup(event) {\n var _this7 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {\n var feats;\n return regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return _this7.layerSource.getFeaturesAtCoordinate(event.coordinate);\n\n case 2:\n feats = _context6.sent;\n\n if (feats.length > 0 && feats[0].getProperties()[\"emission\"]) {\n _this7.$emit(\"set-grid-feature-popup\", event.coordinate, feats[0].getProperties()[\"emission\"]);\n } else {\n console.log(\"no features found on click -> cannot set popup\");\n }\n\n case 4:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }))();\n },\n enableShowFeaturePopupOnClick: function enableShowFeaturePopupOnClick() {\n this.map.on(\"singleclick\", this.setFeaturePopup);\n },\n disableShowFeaturePopupOnClick: function disableShowFeaturePopupOnClick() {\n this.map.un(\"singleclick\", this.setFeaturePopup);\n this.$emit(\"set-grid-feature-popup\", undefined, null);\n }\n },\n mounted: function mounted() {\n var _this8 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() {\n var gridFc;\n return regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return _services_grid__WEBPACK_IMPORTED_MODULE_16__[\"fetchGridFeatures\"]();\n\n case 2:\n gridFc = _context7.sent;\n _this8.layerSource = new ol_source_Vector__WEBPACK_IMPORTED_MODULE_11__[\"default\"]({\n format: new ol_format_GeoJSON__WEBPACK_IMPORTED_MODULE_12__[\"default\"]()\n });\n\n _this8.layerSource.addFeatures( // @ts-ignore\n _this8.layerSource.getFormat().readFeatures(gridFc));\n\n _this8.handleLayerUpdate();\n\n _this8.vectorLayer = new ol_layer__WEBPACK_IMPORTED_MODULE_10__[\"Vector\"]({\n source: _this8.layerSource,\n style: _this8.getOlStyle(),\n zIndex: 12\n });\n\n _this8.map.addLayer(_this8.vectorLayer);\n\n _this8.enableShowFeaturePopupOnClick();\n\n case 9:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n },\n destroyed: function destroyed() {\n console.log(\"Removing grid data layer from the map\");\n this.$emit(\"update-legend\", undefined);\n this.disableShowFeaturePopupOnClick();\n this.map.removeLayer(this.vectorLayer);\n }\n}));\n\n//# sourceURL=webpack:///./src/components/OlGridDataLayer.vue?./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! regenerator-runtime/runtime.js */ \"./node_modules/regenerator-runtime/runtime.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ \"./node_modules/core-js/modules/es.array.filter.js\");\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var ol_layer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ol/layer */ \"./node_modules/ol/layer.js\");\n/* harmony import */ var ol_source_Vector__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ol/source/Vector */ \"./node_modules/ol/source/Vector.js\");\n/* harmony import */ var ol_format_GeoJSON__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ol/format/GeoJSON */ \"./node_modules/ol/format/GeoJSON.js\");\n/* harmony import */ var ol_style__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ol/style */ \"./node_modules/ol/style.js\");\n/* harmony import */ var _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./../utils/pollutantStyles */ \"./src/utils/pollutantStyles.tsx\");\n/* harmony import */ var _services_emissions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./../services/emissions */ \"./src/services/emissions.tsx\");\n/* harmony import */ var _services_grid__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./../services/grid */ \"./src/services/grid.tsx\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../types */ \"./src/types.tsx\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/store */ \"./src/store.tsx\");\n/* harmony import */ var _env__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./../env */ \"./src/env.tsx\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar classCount = 7;\n/* harmony default export */ __webpack_exports__[\"default\"] = (vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"].extend({\n props: {\n map: {\n type: Object\n },\n year: Number,\n gnfrId: String,\n pollutant: {\n type: Object\n }\n },\n data: function data() {\n return {\n layerSource: new ol_source_Vector__WEBPACK_IMPORTED_MODULE_11__[\"default\"](),\n vectorLayer: new ol_layer__WEBPACK_IMPORTED_MODULE_10__[\"Vector\"](),\n colorFunction: undefined,\n legend: undefined,\n cache: {}\n };\n },\n watch: {\n year: function year(newVal) {\n console.log(\"Year changed to \".concat(newVal, \", refreshing grid data...\"));\n this.handleLayerUpdate();\n },\n gnfrId: function gnfrId(newVal) {\n console.log(\"Gnfr changed to \".concat(newVal, \", refreshing grid data...\"));\n this.handleLayerUpdate();\n },\n pollutant: function pollutant(newVal) {\n console.log(\"Pollutant changed to \".concat(newVal.name[\"fi\"], \", refreshing grid data...\")); // this.colorFunction = undefined;\n\n this.handleLayerUpdate();\n }\n },\n methods: {\n getOlStyle: function getOlStyle() {\n var _this = this;\n\n return function (feature) {\n return new ol_style__WEBPACK_IMPORTED_MODULE_13__[\"Style\"]({\n fill: new ol_style__WEBPACK_IMPORTED_MODULE_13__[\"Fill\"]({\n color: _this.colorFunction ? _this.colorFunction(feature) : \"rgba(255,255,255,0)\"\n })\n });\n };\n },\n getMaxEmissionValue: function getMaxEmissionValue() {\n return Math.ceil(Math.max.apply(Math, Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.layerSource.getFeatures().map(function (feat) {\n return feat.get(\"emission\");\n }).filter(function (p) {\n return p;\n }))));\n },\n handleLayerUpdate: function handleLayerUpdate() {\n var _this2 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _this2.$store.dispatch(_store__WEBPACK_IMPORTED_MODULE_18__[\"Dispatch\"].setLoading);\n\n _this2.$emit(\"update-total-emission-stats\", undefined);\n\n _context.next = 4;\n return _this2.loadSourceFeatures();\n\n case 4:\n _context.next = 6;\n return _this2.handleStyleUpdate();\n\n case 6:\n _context.next = 8;\n return _this2.updateTotalEmissionStats();\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n loadSourceFeatures: function loadSourceFeatures() {\n var _this3 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n var gridData;\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return _services_emissions__WEBPACK_IMPORTED_MODULE_15__[\"fetchGridData\"](_this3.year, _this3.gnfrId, _this3.pollutant.id, _this3.pollutant.coeffLegend);\n\n case 2:\n gridData = _context2.sent;\n\n if (gridData) {\n _context2.next = 5;\n break;\n }\n\n return _context2.abrupt(\"return\");\n\n case 5:\n _this3.layerSource.forEachFeature(function (feat) {\n var emission = gridData.get(feat.get(\"id\"));\n feat.setProperties({\n emission: emission\n });\n });\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n handleStyleUpdate: function handleStyleUpdate() {\n var _this4 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n var maxEmissionValue, breakPoints;\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n maxEmissionValue = _this4.getMaxEmissionValue();\n _context3.next = 3;\n return _this4.updateStyle(maxEmissionValue);\n\n case 3:\n breakPoints = _context3.sent;\n\n if (breakPoints) {\n _this4.updateLegend(breakPoints, maxEmissionValue);\n\n _this4.$store.dispatch(_store__WEBPACK_IMPORTED_MODULE_18__[\"Dispatch\"].setLoaded);\n } else {\n console.error(\"Could not update style for the current layer\");\n }\n\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n\n /**\r\n * Either loads or calculates breakpoints for the layer, creates style function by them and finally returns the breakpoints.\r\n * Returns undefined if breakpoints were not found in the end (this should not happen).\r\n *\r\n * This function is to be part of the loader function of the layer, which is called every time the layer source is refreshed (this.layerSource.refresh()).\r\n * The dynamic styling of the layer is based on the combined emission values of the selected pollutant (combined GNFR class of that pollutant). The style\r\n * function is based on breakpoints, that define minimum and maximum values for each color class. New breakpoints are calculated only if they were not\r\n * calculated before. If the breakponts are to be calculatd for the first time, they can be calculated from the current layer if it is the combined GNFR and\r\n * latest year, otherwise that layer is fetched for calculating the breakpoints. Finally, the style function of the layer is updated by the breakpoints.\r\n */\n updateStyle: function updateStyle(maxEmissionValue) {\n var _this5 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {\n var breakPoints, latestValues, _breakPoints, gd, _latestValues, _breakPoints2;\n\n return regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n if (!_utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"hasBreakPoints\"](_types__WEBPACK_IMPORTED_MODULE_17__[\"MapDataType\"].GRID, _this5.pollutant.id)) {\n _context4.next = 6;\n break;\n }\n\n breakPoints = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getBreakPoints\"](_types__WEBPACK_IMPORTED_MODULE_17__[\"MapDataType\"].GRID, _this5.pollutant.id);\n _this5.colorFunction = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getColorFunction\"](\"emission\", breakPoints, maxEmissionValue);\n return _context4.abrupt(\"return\", breakPoints);\n\n case 6:\n if (!(_this5.gnfrId === \"COMBINED\" && _this5.year === _env__WEBPACK_IMPORTED_MODULE_19__[\"latestYear\"])) {\n _context4.next = 13;\n break;\n }\n\n // current layer is combined emissions and latest year, thus breakpoints can be calculated by it\n latestValues = _this5.layerSource.getFeatures().map(function (feat) {\n return feat.get(\"emission\");\n });\n _breakPoints = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getPollutantBreakPoints\"](_types__WEBPACK_IMPORTED_MODULE_17__[\"MapDataType\"].GRID, _this5.pollutant.id, latestValues, classCount);\n _this5.colorFunction = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getColorFunction\"](\"emission\", _breakPoints, maxEmissionValue);\n return _context4.abrupt(\"return\", _breakPoints);\n\n case 13:\n // combined pollutants from latest year need to be fetched for calculating breakpoints\n console.log(\"Fetching features of \".concat(_env__WEBPACK_IMPORTED_MODULE_19__[\"latestYear\"], \" and calculating breakpoints\"));\n _context4.next = 16;\n return _services_emissions__WEBPACK_IMPORTED_MODULE_15__[\"fetchGridData\"](_env__WEBPACK_IMPORTED_MODULE_19__[\"latestYear\"], \"COMBINED\", _this5.pollutant.id, _this5.pollutant.coeffLegend);\n\n case 16:\n gd = _context4.sent;\n\n if (gd) {\n _context4.next = 19;\n break;\n }\n\n return _context4.abrupt(\"return\");\n\n case 19:\n _latestValues = Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(gd.values());\n _breakPoints2 = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getPollutantBreakPoints\"](_types__WEBPACK_IMPORTED_MODULE_17__[\"MapDataType\"].GRID, _this5.pollutant.id, _latestValues, classCount);\n _this5.colorFunction = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getColorFunction\"](\"emission\", _breakPoints2, maxEmissionValue); // for some reason this async style update needs to be triggered manually\n\n _this5.vectorLayer.setStyle(_this5.getOlStyle());\n\n return _context4.abrupt(\"return\", _breakPoints2);\n\n case 24:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n },\n updateLegend: function updateLegend(breakPoints, maxEmissionValue) {\n this.legend = _utils_pollutantStyles__WEBPACK_IMPORTED_MODULE_14__[\"getPollutantLegend\"](this.pollutant, breakPoints, maxEmissionValue);\n\n if (!isFinite(maxEmissionValue)) {\n this.$emit(\"update-legend\", undefined);\n } else {\n this.$emit(\"update-legend\", this.legend);\n }\n },\n updateTotalEmissionStats: function updateTotalEmissionStats() {\n var _this6 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {\n var totalEmissionStats;\n return regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return _services_emissions__WEBPACK_IMPORTED_MODULE_15__[\"getTotalEmissionStats\"](_this6.year, _this6.gnfrId, _this6.pollutant);\n\n case 2:\n totalEmissionStats = _context5.sent;\n\n _this6.$emit(\"update-total-emission-stats\", totalEmissionStats);\n\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n setFeaturePopup: function setFeaturePopup(event) {\n var _this7 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {\n var feats;\n return regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return _this7.layerSource.getFeaturesAtCoordinate(event.coordinate);\n\n case 2:\n feats = _context6.sent;\n\n if (feats.length > 0 && feats[0].getProperties()[\"emission\"]) {\n _this7.$emit(\"set-grid-feature-popup\", event.coordinate, feats[0].getProperties()[\"emission\"]);\n } else {\n console.log(\"no features found on click -> cannot set popup\");\n }\n\n case 4:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }))();\n },\n enableShowFeaturePopupOnClick: function enableShowFeaturePopupOnClick() {\n this.map.on(\"singleclick\", this.setFeaturePopup);\n },\n disableShowFeaturePopupOnClick: function disableShowFeaturePopupOnClick() {\n this.map.un(\"singleclick\", this.setFeaturePopup);\n this.$emit(\"set-grid-feature-popup\", undefined, null);\n }\n },\n mounted: function mounted() {\n var _this8 = this;\n\n return Object(E_PRTR_air_pollutant_map_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() {\n var gridFc;\n return regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return _services_grid__WEBPACK_IMPORTED_MODULE_16__[\"fetchGridFeatures\"]();\n\n case 2:\n gridFc = _context7.sent;\n _this8.layerSource = new ol_source_Vector__WEBPACK_IMPORTED_MODULE_11__[\"default\"]({\n format: new ol_format_GeoJSON__WEBPACK_IMPORTED_MODULE_12__[\"default\"]()\n });\n\n _this8.layerSource.addFeatures( // @ts-ignore\n _this8.layerSource.getFormat().readFeatures(gridFc));\n\n _this8.handleLayerUpdate();\n\n _this8.vectorLayer = new ol_layer__WEBPACK_IMPORTED_MODULE_10__[\"Vector\"]({\n source: _this8.layerSource,\n style: _this8.getOlStyle(),\n zIndex: 12\n });\n\n _this8.map.addLayer(_this8.vectorLayer);\n\n _this8.enableShowFeaturePopupOnClick();\n\n case 9:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n },\n destroyed: function destroyed() {\n console.log(\"Removing grid data layer from the map\");\n this.$emit(\"update-legend\", undefined);\n this.disableShowFeaturePopupOnClick();\n this.map.removeLayer(this.vectorLayer);\n }\n}));\n\n//# sourceURL=webpack:///./src/components/OlGridDataLayer.vue?./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -358,7 +298,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var E_PR /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var ol_Map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ol/Map.js */ \"./node_modules/ol/Map.js\");\n/* harmony import */ var ol_View_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ol/View.js */ \"./node_modules/ol/View.js\");\n/* harmony import */ var ol_layer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ol/layer */ \"./node_modules/ol/layer.js\");\n/* harmony import */ var ol_source_TileWMS__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ol/source/TileWMS */ \"./node_modules/ol/source/TileWMS.js\");\n/* harmony import */ var ol_Overlay__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ol/Overlay */ \"./node_modules/ol/Overlay.js\");\n/* harmony import */ var _OlGridDataLayer_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./OlGridDataLayer.vue */ \"./src/components/OlGridDataLayer.vue\");\n/* harmony import */ var _GridFeaturePopup_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./GridFeaturePopup.vue */ \"./src/components/GridFeaturePopup.vue\");\n/* harmony import */ var _MuniFeaturePopup_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./MuniFeaturePopup.vue */ \"./src/components/MuniFeaturePopup.vue\");\n/* harmony import */ var _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./LoadingAnimation.vue */ \"./src/components/LoadingAnimation.vue\");\n/* harmony import */ var _Legend_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Legend.vue */ \"./src/components/Legend.vue\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/types */ \"./src/types.tsx\");\n/* harmony import */ var ol_proj_Projection__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ol/proj/Projection */ \"./node_modules/ol/proj/Projection.js\");\n/* harmony import */ var _env__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../env */ \"./src/env.tsx\");\n\n\n\n\n\n\n\n\n // import OlMuniBasemapLayer from \"./OlMuniBasemapLayer.vue\";\n\n\n\n\n\n\n\n\nvar projection = new ol_proj_Projection__WEBPACK_IMPORTED_MODULE_14__[\"default\"]({\n code: \"EPSG:3067\",\n extent: [50199.4814, 6582464.0358, 761274.6247, 7799839.8902],\n global: false,\n metersPerUnit: 1\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend({\n components: {\n OlGridDataLayer: _OlGridDataLayer_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n // OlMuniBasemapLayer,\n GridFeaturePopup: _GridFeaturePopup_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n MuniFeaturePopup: _MuniFeaturePopup_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n LoadingAnimation: _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n Legend: _Legend_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"]\n },\n props: {\n year: Number,\n gnfrId: String,\n pollutant: {\n type: Object\n },\n mapDataType: {\n type: String\n }\n },\n data: function data() {\n return {\n map: undefined,\n isReady: false,\n mapDataTypes: Object(_types__WEBPACK_IMPORTED_MODULE_13__[\"MapDataType\"]),\n overlay: null,\n popupCoords: undefined,\n gridPopupValue: null,\n muniPopupVisible: false,\n muniPopupLoading: false,\n muniPopupFeat: null,\n legend: undefined\n };\n },\n watch: {\n year: function year() {\n this.handlePopupOnLayerChange();\n },\n gnfrId: function gnfrId() {\n this.handlePopupOnLayerChange();\n },\n pollutant: function pollutant() {\n this.handlePopupOnLayerChange();\n }\n },\n methods: {\n handlePopupOnLayerChange: function handlePopupOnLayerChange() {\n if (this.mapDataType === _types__WEBPACK_IMPORTED_MODULE_13__[\"MapDataType\"].GRID) {\n this.closePopup();\n } else {\n // a popup update is triggered in muni data layer, thus set loading=true\n this.muniPopupFeat = null;\n this.muniPopupLoading = true;\n }\n },\n updateLegend: function updateLegend(legend) {\n this.legend = legend;\n },\n initializePopup: function initializePopup() {\n this.overlay = new ol_Overlay__WEBPACK_IMPORTED_MODULE_7__[\"default\"]({\n // @ts-ignore\n element: this.$refs.olpopup,\n autoPan: true,\n autoPanAnimation: {\n // Basemap moving animation\n duration: 250\n }\n });\n\n if (this.map) {\n this.map.addOverlay(this.overlay);\n }\n },\n setGridFeaturePopup: function setGridFeaturePopup(coordinate, value) {\n var _this = this;\n\n this.gridPopupValue = value;\n setTimeout(function () {\n // Set the timer here, otherwise the pop-up window will appear for the first time, and the base map will be off-track\n if (_this.overlay) {\n _this.overlay.setPosition(coordinate);\n\n _this.popupCoords = coordinate;\n }\n }, 0);\n },\n setMuniFeaturePopup: function setMuniFeaturePopup(coordinate, value) {\n var _this2 = this;\n\n this.muniPopupFeat = value;\n this.muniPopupVisible = value ? true : false;\n setTimeout(function () {\n if (_this2.overlay) {\n _this2.overlay.setPosition(coordinate);\n\n _this2.popupCoords = coordinate;\n _this2.muniPopupLoading = false;\n }\n }, 0);\n },\n closePopup: function closePopup() {\n // Set the position of the pop-up window to undefined, and clear the coordinate data\n if (this.overlay) {\n this.overlay.setPosition(undefined);\n }\n\n this.muniPopupVisible = false;\n this.popupCoords = undefined;\n this.gridPopupValue = null;\n this.muniPopupFeat = null;\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n var areaSize = 2097152; // width and height of the matrix set in ground (from capabilities)\n\n var tileSize = 256; // width and height of the tile in pixels (from capabilities)\n\n var matrixIds = new Array(18);\n var resolutions = new Array(18);\n var proxyUrl = \"https://paikkatieto.ymparisto.fi/proxy/proxy.ashx?\";\n\n for (var z = 0; z < 16; ++z) {\n matrixIds[z] = z;\n resolutions[z] = areaSize / tileSize / Math.pow(2, z);\n }\n\n var baseLayer = new ol_layer__WEBPACK_IMPORTED_MODULE_5__[\"Tile\"]({\n zIndex: 13,\n source: new ol_source_TileWMS__WEBPACK_IMPORTED_MODULE_6__[\"default\"]({\n url: _env__WEBPACK_IMPORTED_MODULE_15__[\"gsUri\"] + \"ows\",\n params: {\n LAYERS: \"shoreline\",\n TILED: true\n },\n serverType: \"geoserver\",\n attributions: \"© MML, 2011\"\n })\n });\n this.map = new ol_Map_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]({\n target: \"ol-map\",\n layers: [baseLayer],\n view: new ol_View_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]({\n projection: projection,\n center: [435385.0836878328, 7247696.528687431],\n extent: [-166488.7651729983, 6568916.617733785, 1037258.9325486642, 7903739.064762917],\n zoom: 1.5\n })\n });\n this.map.once(\"postrender\", function () {\n _this3.isReady = true;\n var extent = [-32010.40984326898, 6590316.535987211, 902780.5772189347, 7905076.52138765];\n\n _this3.map.getView().fit(extent, {\n padding: [15, 0, 0, 0]\n });\n });\n this.initializePopup();\n console.log(\"map\", this.map);\n }\n}));\n\n//# sourceURL=webpack:///./src/components/OlMap.vue?./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var ol_Map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ol/Map.js */ \"./node_modules/ol/Map.js\");\n/* harmony import */ var ol_View_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ol/View.js */ \"./node_modules/ol/View.js\");\n/* harmony import */ var ol_layer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ol/layer */ \"./node_modules/ol/layer.js\");\n/* harmony import */ var ol_source_TileWMS__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ol/source/TileWMS */ \"./node_modules/ol/source/TileWMS.js\");\n/* harmony import */ var ol_Overlay__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ol/Overlay */ \"./node_modules/ol/Overlay.js\");\n/* harmony import */ var _OlGridDataLayer_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./OlGridDataLayer.vue */ \"./src/components/OlGridDataLayer.vue\");\n/* harmony import */ var _GridFeaturePopup_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./GridFeaturePopup.vue */ \"./src/components/GridFeaturePopup.vue\");\n/* harmony import */ var _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./LoadingAnimation.vue */ \"./src/components/LoadingAnimation.vue\");\n/* harmony import */ var _Legend_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Legend.vue */ \"./src/components/Legend.vue\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/types */ \"./src/types.tsx\");\n/* harmony import */ var ol_proj_Projection__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ol/proj/Projection */ \"./node_modules/ol/proj/Projection.js\");\n/* harmony import */ var _env__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../env */ \"./src/env.tsx\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar projection = new ol_proj_Projection__WEBPACK_IMPORTED_MODULE_13__[\"default\"]({\n code: \"EPSG:3067\",\n extent: [50199.4814, 6582464.0358, 761274.6247, 7799839.8902],\n global: false,\n metersPerUnit: 1\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend({\n components: {\n OlGridDataLayer: _OlGridDataLayer_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n GridFeaturePopup: _GridFeaturePopup_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n LoadingAnimation: _LoadingAnimation_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n Legend: _Legend_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"]\n },\n props: {\n year: Number,\n gnfrId: String,\n pollutant: {\n type: Object\n },\n mapDataType: {\n type: String\n }\n },\n data: function data() {\n return {\n map: undefined,\n isReady: false,\n mapDataTypes: Object(_types__WEBPACK_IMPORTED_MODULE_12__[\"MapDataType\"]),\n overlay: null,\n popupCoords: undefined,\n gridPopupValue: null,\n legend: undefined\n };\n },\n watch: {\n year: function year() {\n this.handlePopupOnLayerChange();\n },\n gnfrId: function gnfrId() {\n this.handlePopupOnLayerChange();\n },\n pollutant: function pollutant() {\n this.handlePopupOnLayerChange();\n }\n },\n methods: {\n handlePopupOnLayerChange: function handlePopupOnLayerChange() {\n if (this.mapDataType === _types__WEBPACK_IMPORTED_MODULE_12__[\"MapDataType\"].GRID) {\n this.closePopup();\n }\n },\n updateLegend: function updateLegend(legend) {\n this.legend = legend;\n },\n initializePopup: function initializePopup() {\n this.overlay = new ol_Overlay__WEBPACK_IMPORTED_MODULE_7__[\"default\"]({\n // @ts-ignore\n element: this.$refs.olpopup,\n autoPan: true,\n autoPanAnimation: {\n // Basemap moving animation\n duration: 250\n }\n });\n\n if (this.map) {\n this.map.addOverlay(this.overlay);\n }\n },\n setGridFeaturePopup: function setGridFeaturePopup(coordinate, value) {\n var _this = this;\n\n this.gridPopupValue = value;\n setTimeout(function () {\n // Set the timer here, otherwise the pop-up window will appear for the first time, and the base map will be off-track\n if (_this.overlay) {\n _this.overlay.setPosition(coordinate);\n\n _this.popupCoords = coordinate;\n }\n }, 0);\n },\n closePopup: function closePopup() {\n // Set the position of the pop-up window to undefined, and clear the coordinate data\n if (this.overlay) {\n this.overlay.setPosition(undefined);\n }\n\n this.popupCoords = undefined;\n this.gridPopupValue = null;\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n var areaSize = 2097152; // width and height of the matrix set in ground (from capabilities)\n\n var tileSize = 256; // width and height of the tile in pixels (from capabilities)\n\n var matrixIds = new Array(18);\n var resolutions = new Array(18);\n var proxyUrl = \"https://paikkatieto.ymparisto.fi/proxy/proxy.ashx?\";\n\n for (var z = 0; z < 16; ++z) {\n matrixIds[z] = z;\n resolutions[z] = areaSize / tileSize / Math.pow(2, z);\n }\n\n var baseLayer = new ol_layer__WEBPACK_IMPORTED_MODULE_5__[\"Tile\"]({\n zIndex: 13,\n source: new ol_source_TileWMS__WEBPACK_IMPORTED_MODULE_6__[\"default\"]({\n url: _env__WEBPACK_IMPORTED_MODULE_14__[\"gsUri\"] + \"ows\",\n params: {\n LAYERS: \"shoreline\",\n TILED: true\n },\n serverType: \"geoserver\",\n attributions: \"© MML, 2011\"\n })\n });\n this.map = new ol_Map_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]({\n target: \"ol-map\",\n layers: [baseLayer],\n view: new ol_View_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]({\n projection: projection,\n center: [435385.0836878328, 7247696.528687431],\n extent: [-166488.7651729983, 6568916.617733785, 1037258.9325486642, 7903739.064762917],\n zoom: 1.5\n })\n });\n this.map.once(\"postrender\", function () {\n _this2.isReady = true;\n var extent = [-32010.40984326898, 6590316.535987211, 902780.5772189347, 7905076.52138765];\n\n _this2.map.getView().fit(extent, {\n padding: [15, 0, 0, 0]\n });\n });\n this.initializePopup();\n console.log(\"map\", this.map);\n }\n}));\n\n//# sourceURL=webpack:///./src/components/OlMap.vue?./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -398,171 +338,135 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7f18cb77-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true&": /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7f18cb77-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var this$1 = this\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { attrs: { id: \"app-wrapper\" } }, [\n _c(\n \"div\",\n { attrs: { id: \"app-container\" } },\n [\n _c(\"div\", { attrs: { id: \"info-panel\" } }, [\n _c(\n \"div\",\n { attrs: { id: \"selector-panel\" } },\n [\n _c(\"SelectorYear\", {\n on: {\n \"selected-year\": function(year) {\n return (this$1.year = year)\n }\n }\n }),\n _c(\"SelectorGnfr\", {\n attrs: { mapDataType: _vm.mapDataType },\n on: {\n \"selected-gnfr\": function(gnfr) {\n return (this$1.gnfr = gnfr)\n }\n }\n }),\n _c(\"SelectorPollutant\", {\n on: {\n \"selected-pollutant\": function(p) {\n return (this$1.pollutant = p)\n }\n }\n })\n ],\n 1\n ),\n _vm.gnfr\n ? _c(\n \"div\",\n { attrs: { id: \"gnfr-desc\" } },\n [\n _c(\"GnfrDescription\", {\n attrs: {\n year: _vm.year,\n gnfr: _vm.gnfr,\n pollutant: _vm.pollutant,\n totalEmissionStats: _vm.totalEmissionStats\n }\n })\n ],\n 1\n )\n : _vm._e()\n ]),\n _c(\n \"div\",\n { attrs: { id: \"map-container\" } },\n [\n _c(\"OlMap\", {\n attrs: {\n year: _vm.year,\n gnfrId: _vm.gnfr ? _vm.gnfr.id : undefined,\n pollutant: _vm.pollutant,\n mapDataType: _vm.mapDataType\n },\n on: {\n \"update-total-emission-stats\": function(tes) {\n return (this$1.totalEmissionStats = tes)\n }\n }\n })\n ],\n 1\n ),\n _vm.downloadFullDataEnabled ? _c(\"MuniDataDownloadAll\") : _vm._e()\n ],\n 1\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/App.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var this$1 = this\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { attrs: { id: \"app-wrapper\" } }, [\n _c(\"div\", { attrs: { id: \"app-container\" } }, [\n _c(\"div\", { attrs: { id: \"info-panel\" } }, [\n _c(\n \"div\",\n { attrs: { id: \"selector-panel\" } },\n [\n _c(\"SelectorYear\", {\n on: {\n \"selected-year\": function(year) {\n return (this$1.year = year)\n }\n }\n }),\n _c(\"SelectorGnfr\", {\n attrs: { mapDataType: _vm.mapDataType },\n on: {\n \"selected-gnfr\": function(gnfr) {\n return (this$1.gnfr = gnfr)\n }\n }\n }),\n _c(\"SelectorPollutant\", {\n on: {\n \"selected-pollutant\": function(p) {\n return (this$1.pollutant = p)\n }\n }\n })\n ],\n 1\n ),\n _vm.gnfr\n ? _c(\n \"div\",\n { attrs: { id: \"gnfr-desc\" } },\n [\n _c(\"GnfrDescription\", {\n attrs: {\n year: _vm.year,\n gnfr: _vm.gnfr,\n pollutant: _vm.pollutant,\n totalEmissionStats: _vm.totalEmissionStats\n }\n })\n ],\n 1\n )\n : _vm._e()\n ]),\n _c(\n \"div\",\n { attrs: { id: \"map-container\" } },\n [\n _c(\"OlMap\", {\n attrs: {\n year: _vm.year,\n gnfrId: _vm.gnfr ? _vm.gnfr.id : undefined,\n pollutant: _vm.pollutant,\n mapDataType: _vm.mapDataType\n },\n on: {\n \"update-total-emission-stats\": function(tes) {\n return (this$1.totalEmissionStats = tes)\n }\n }\n })\n ],\n 1\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/App.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227f18cb77-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/CustomDropdownSelector.vue?vue&type=template&id=ce07f35e&scoped=true&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7f18cb77-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/CustomDropdownSelector.vue?vue&type=template&id=ce07f35e&scoped=true&": /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/CustomDropdownSelector.vue?vue&type=template&id=ce07f35e&scoped=true& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7f18cb77-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/CustomDropdownSelector.vue?vue&type=template&id=ce07f35e&scoped=true& ***! \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"selector-div\",\n attrs: { id: _vm.uniqueSelectorId + \"-selector-div\" }\n },\n [\n _c(\"div\", { staticClass: \"label-div\" }, [\n _c(\n \"label\",\n { staticClass: \"selector-label\", attrs: { for: \"select-input\" } },\n [_vm._v(\" \" + _vm._s(_vm.selectorLabel) + \" \")]\n ),\n _c(\n \"div\",\n {\n staticClass: \"hidden-visually\",\n attrs: {\n id: \"select-status-\" + _vm.uniqueSelectorId,\n \"aria-live\": \"polite\"\n }\n },\n [\n _vm._v(\n \" \" +\n _vm._s(_vm.filteredOptions.length) +\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"aria.\" + _vm.uniqueSelectorId + \".selector.status.text\"\n )\n ) +\n \" \"\n )\n ]\n )\n ]),\n _c(\n \"div\",\n {\n staticClass: \"select-container\",\n attrs: {\n id: \"select-container-\" + _vm.uniqueSelectorId,\n role: \"combobox\",\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-owns\": \"select-list-\" + _vm.uniqueSelectorId,\n \"aria-expanded\": _vm.showOptions ? \"true\" : \"false\"\n },\n on: {\n click: _vm.handleSelectorClick,\n keydown: _vm.handleKeyDown,\n keyup: _vm.handleKeyUp\n }\n },\n [\n _c(\"div\", { staticClass: \"input-container\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.filterInputValue,\n expression: \"filterInputValue\"\n }\n ],\n ref: \"selectInput-\" + _vm.uniqueSelectorId,\n staticClass: \"base-input filter-input\",\n attrs: {\n type: \"text\",\n id: \"select-input-\" + _vm.uniqueSelectorId,\n \"aria-describedby\": \"select-info-\" + _vm.uniqueSelectorId,\n \"aria-controls\": \"select-list-\" + _vm.uniqueSelectorId\n },\n domProps: { value: _vm.filterInputValue },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.filterInputValue = $event.target.value\n }\n }\n }),\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.selectInputValue,\n expression: \"selectInputValue\"\n }\n ],\n class: [\n \"base-input\",\n \"selection-input\",\n _vm.filterInputValue.length > 0 ? \"hidden-text\" : \"\"\n ],\n attrs: {\n id: \"selection-input-\" + _vm.uniqueSelectorId,\n readonly: \"\",\n disabled: \"\"\n },\n domProps: { value: _vm.selectInputValue },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.selectInputValue = $event.target.value\n }\n }\n }),\n _c(\"input\", {\n staticClass: \"base-input pseudo-input\",\n staticStyle: { position: \"static\" },\n attrs: { readonly: \"\", disabled: \"\", value: \"\" }\n })\n ]),\n _c(\n \"span\",\n {\n staticClass: \"hidden-visually\",\n attrs: { id: \"select-info-\" + _vm.uniqueSelectorId }\n },\n [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"aria.\" + _vm.uniqueSelectorId + \".selector.describe\"\n )\n ) +\n \" \"\n )\n ]\n ),\n _c(\"div\", { staticClass: \"dropdown-icon-container\" }, [\n _c(\"span\", { staticClass: \"select-icon\" }, [\n _c(\n \"svg\",\n {\n class: [\n !_vm.showOptions ? \"\" : \"rotate\",\n !_vm.initialized ? \"hidden-all\" : \"\",\n \"icon\"\n ],\n attrs: {\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n focusable: \"false\",\n \"aria-hidden\": \"true\",\n id: \"icon-circle-down-\" + _vm.uniqueSelectorId,\n role: \"img\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M23.245 4l-11.245 14.374-11.219-14.374-.781.619 12 15.381 12-15.391-.755-.609z\"\n }\n })\n ]\n )\n ])\n ]),\n _c(\n \"ul\",\n {\n class: [\n _vm.showOptions && _vm.filteredOptions.length > 0\n ? \"\"\n : \"hidden-all\",\n \"select-options\"\n ],\n attrs: {\n id: \"select-list-\" + _vm.uniqueSelectorId,\n role: \"listbox\"\n }\n },\n _vm._l(_vm.filteredOptions, function(option) {\n return _c(\n \"li\",\n {\n key: option.id,\n ref: \"options-\" + _vm.uniqueSelectorId + option.id,\n refInFor: true,\n class: [\n option.id === _vm.selectedOption.id ? \"selected-option\" : \"\"\n ],\n attrs: { tabindex: \"-1\", role: \"option\" }\n },\n [\n _vm._v(\" \" + _vm._s(option.label[_vm.lang]) + \" \"),\n _c(\"span\", [_vm._v(\" \" + _vm._s(option.id))])\n ]\n )\n }),\n 0\n )\n ]\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/CustomDropdownSelector.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"selector-div\",\n attrs: { id: _vm.uniqueSelectorId + \"-selector-div\" }\n },\n [\n _c(\"div\", { staticClass: \"label-div\" }, [\n _c(\n \"label\",\n { staticClass: \"selector-label\", attrs: { for: \"select-input\" } },\n [_vm._v(\" \" + _vm._s(_vm.selectorLabel) + \" \")]\n ),\n _c(\n \"div\",\n {\n staticClass: \"hidden-visually\",\n attrs: {\n id: \"select-status-\" + _vm.uniqueSelectorId,\n \"aria-live\": \"polite\"\n }\n },\n [\n _vm._v(\n \" \" +\n _vm._s(_vm.filteredOptions.length) +\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"aria.\" + _vm.uniqueSelectorId + \".selector.status.text\"\n )\n ) +\n \" \"\n )\n ]\n )\n ]),\n _c(\n \"div\",\n {\n staticClass: \"select-container\",\n attrs: {\n id: \"select-container-\" + _vm.uniqueSelectorId,\n role: \"combobox\",\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-owns\": \"select-list-\" + _vm.uniqueSelectorId,\n \"aria-expanded\": _vm.showOptions ? \"true\" : \"false\"\n },\n on: {\n click: _vm.handleSelectorClick,\n keydown: _vm.handleKeyDown,\n keyup: _vm.handleKeyUp\n }\n },\n [\n _c(\"div\", { staticClass: \"input-container\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.filterInputValue,\n expression: \"filterInputValue\"\n }\n ],\n ref: \"selectInput-\" + _vm.uniqueSelectorId,\n staticClass: \"base-input filter-input\",\n attrs: {\n type: \"text\",\n id: \"select-input-\" + _vm.uniqueSelectorId,\n \"aria-describedby\": \"select-info-\" + _vm.uniqueSelectorId,\n \"aria-controls\": \"select-list-\" + _vm.uniqueSelectorId\n },\n domProps: { value: _vm.filterInputValue },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.filterInputValue = $event.target.value\n }\n }\n }),\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.selectInputValue,\n expression: \"selectInputValue\"\n }\n ],\n class: [\n \"base-input\",\n \"selection-input\",\n _vm.filterInputValue.length > 0 ? \"hidden-text\" : \"\"\n ],\n attrs: {\n id: \"selection-input-\" + _vm.uniqueSelectorId,\n readonly: \"\",\n disabled: \"\"\n },\n domProps: { value: _vm.selectInputValue },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.selectInputValue = $event.target.value\n }\n }\n }),\n _c(\"input\", {\n staticClass: \"base-input pseudo-input\",\n staticStyle: { position: \"static\" },\n attrs: { readonly: \"\", disabled: \"\", value: \"\" }\n })\n ]),\n _c(\n \"span\",\n {\n staticClass: \"hidden-visually\",\n attrs: { id: \"select-info-\" + _vm.uniqueSelectorId }\n },\n [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"aria.\" + _vm.uniqueSelectorId + \".selector.describe\"\n )\n ) +\n \" \"\n )\n ]\n ),\n _c(\"div\", { staticClass: \"dropdown-icon-container\" }, [\n _c(\"span\", { staticClass: \"select-icon\" }, [\n _c(\n \"svg\",\n {\n class: [\n !_vm.showOptions ? \"\" : \"rotate\",\n !_vm.initialized ? \"hidden-all\" : \"\",\n \"icon\"\n ],\n attrs: {\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n focusable: \"false\",\n \"aria-hidden\": \"true\",\n id: \"icon-circle-down-\" + _vm.uniqueSelectorId,\n role: \"img\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M23.245 4l-11.245 14.374-11.219-14.374-.781.619 12 15.381 12-15.391-.755-.609z\"\n }\n })\n ]\n )\n ])\n ]),\n _c(\n \"ul\",\n {\n class: [\n _vm.showOptions && _vm.filteredOptions.length > 0\n ? \"\"\n : \"hidden-all\",\n \"select-options\"\n ],\n attrs: {\n id: \"select-list-\" + _vm.uniqueSelectorId,\n role: \"listbox\"\n }\n },\n _vm._l(_vm.filteredOptions, function(option) {\n return _c(\n \"li\",\n {\n key: option.id,\n ref: \"options-\" + _vm.uniqueSelectorId + option.id,\n refInFor: true,\n class: [\n option.id === _vm.selectedOption.id ? \"selected-option\" : \"\"\n ],\n attrs: { tabindex: \"-1\", role: \"option\" }\n },\n [\n _vm._v(\" \" + _vm._s(option.label[_vm.lang]) + \" \"),\n _c(\"span\", [_vm._v(\" \" + _vm._s(option.id))])\n ]\n )\n }),\n 0\n )\n ]\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/CustomDropdownSelector.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227f18cb77-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/GnfrDescription.vue?vue&type=template&id=7a1e30ee&scoped=true&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7f18cb77-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/GnfrDescription.vue?vue&type=template&id=7a1e30ee&scoped=true&": /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/GnfrDescription.vue?vue&type=template&id=7a1e30ee&scoped=true& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7f18cb77-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/GnfrDescription.vue?vue&type=template&id=7a1e30ee&scoped=true& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"desc-box\" }, [\n _c(\"div\", { staticClass: \"desc\" }, [\n _c(\"span\", { staticClass: \"gnfr-name\" }, [\n _vm._v(_vm._s(_vm.gnfr && _vm.gnfr.name[_vm.lang]))\n ]),\n _vm._v(\" \" + _vm._s(_vm.gnfr && _vm.gnfr.desc[_vm.lang]) + \" \"),\n _vm.gnfrPollutantMetas && _vm.totalEmissionStats\n ? _c(\"div\", { staticClass: \"stats\" }, [\n _vm.totalEmissionStats\n ? _c(\"span\", [\n _vm.totalEmissionStats.gnfrId === \"COMBINED\" &&\n _vm.totalEmissionStats.totalEmissions\n ? _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"gnfr.description.combined-emissions\"\n )\n ) +\n \" \"\n ),\n _c(\"span\", { staticClass: \"formatted-number\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.roundTotalEmissions(\n _vm.totalEmissionStats.gnfrEmissions\n )\n ) +\n \" \" +\n _vm._s(_vm.totalEmissionStats.unit) +\n \" \"\n )\n ])\n ])\n : _vm.totalEmissionStats.gnfrId !== \"COMBINED\" &&\n _vm.totalEmissionStats.gnfrEmissions &&\n _vm.totalEmissionStats.totalEmissions\n ? _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"gnfr.description.gnfr-share-of-total\"\n )\n ) +\n \" \"\n ),\n _c(\"span\", { staticClass: \"formatted-number\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.getShareOfGnfrEmissions(\n _vm.totalEmissionStats\n )\n ) +\n \" % \"\n )\n ]),\n _vm._v(\" (\"),\n _c(\"span\", { staticClass: \"formatted-number\" }, [\n _vm._v(\n _vm._s(\n _vm.roundTotalEmissions(\n _vm.totalEmissionStats.gnfrEmissions\n )\n ) +\n \" \" +\n _vm._s(_vm.totalEmissionStats.unit)\n )\n ]),\n _vm._v(\")\")\n ])\n : !_vm.totalEmissionStats.gnfrEmissions\n ? _c(\"span\", { staticClass: \"no-emissions\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"gnfr.description.no_emissions\"\n )\n ) +\n \" \"\n )\n ])\n : _vm._e()\n ])\n : _vm._e(),\n _vm.gnfr &&\n _vm.gnfr.id !== \"COMBINED\" &&\n _vm.getCalcRepShareObject()\n ? _c(\"span\", [\n _vm.getRepRatio() > 0\n ? _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"gnfr.description.share.of.reported_pre\"\n )\n ) +\n \" \"\n ),\n _c(\"span\", { staticClass: \"formatted-number\" }, [\n _vm._v(\" \" + _vm._s(_vm.getRepRatio()) + \" %\")\n ]),\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"gnfr.description.share.of.reported_after\"\n )\n ) +\n \" \"\n )\n ])\n : _c(\"span\", [\n _c(\"span\", [_vm._v(\". \")]),\n _vm._v(\n _vm._s(\n _vm._f(\"translate\")(\n \"gnfr.description.no_reported_emissions\"\n )\n )\n )\n ])\n ])\n : _vm._e()\n ])\n : _vm._e()\n ]),\n !_vm.gnfrPollutantMetas || !_vm.totalEmissionStats\n ? _c(\n \"div\",\n { staticClass: \"load-animation-container\" },\n [_c(\"LoadingAnimation\", { attrs: { color: \"#007ac9\", size: 17 } })],\n 1\n )\n : _vm._e()\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/GnfrDescription.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"desc-box\" }, [\n _c(\"div\", { staticClass: \"desc\" }, [\n _c(\"span\", { staticClass: \"gnfr-name\" }, [\n _vm._v(_vm._s(_vm.gnfr && _vm.gnfr.name[_vm.lang]))\n ]),\n _vm._v(\" \" + _vm._s(_vm.gnfr && _vm.gnfr.desc[_vm.lang]) + \" \"),\n _vm.gnfrPollutantMetas && _vm.totalEmissionStats\n ? _c(\"div\", { staticClass: \"stats\" }, [\n _vm.totalEmissionStats\n ? _c(\"span\", [\n _vm.totalEmissionStats.gnfrId === \"COMBINED\" &&\n _vm.totalEmissionStats.totalEmissions\n ? _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"gnfr.description.combined-emissions\"\n )\n ) +\n \" \"\n ),\n _c(\"span\", { staticClass: \"formatted-number\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.roundTotalEmissions(\n _vm.totalEmissionStats.gnfrEmissions\n )\n ) +\n \" \" +\n _vm._s(_vm.totalEmissionStats.unit) +\n \" \"\n )\n ])\n ])\n : _vm.totalEmissionStats.gnfrId !== \"COMBINED\" &&\n _vm.totalEmissionStats.gnfrEmissions &&\n _vm.totalEmissionStats.totalEmissions\n ? _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"gnfr.description.gnfr-share-of-total\"\n )\n ) +\n \" \"\n ),\n _c(\"span\", { staticClass: \"formatted-number\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.getShareOfGnfrEmissions(\n _vm.totalEmissionStats\n )\n ) +\n \" % \"\n )\n ]),\n _vm._v(\" (\"),\n _c(\"span\", { staticClass: \"formatted-number\" }, [\n _vm._v(\n _vm._s(\n _vm.roundTotalEmissions(\n _vm.totalEmissionStats.gnfrEmissions\n )\n ) +\n \" \" +\n _vm._s(_vm.totalEmissionStats.unit)\n )\n ]),\n _vm._v(\")\")\n ])\n : !_vm.totalEmissionStats.gnfrEmissions\n ? _c(\"span\", { staticClass: \"no-emissions\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"gnfr.description.no_emissions\"\n )\n ) +\n \" \"\n )\n ])\n : _vm._e()\n ])\n : _vm._e()\n ])\n : _vm._e()\n ]),\n !_vm.gnfrPollutantMetas || !_vm.totalEmissionStats\n ? _c(\n \"div\",\n { staticClass: \"load-animation-container\" },\n [_c(\"LoadingAnimation\", { attrs: { color: \"#007ac9\", size: 17 } })],\n 1\n )\n : _vm._e()\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/GnfrDescription.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227f18cb77-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/GridFeaturePopup.vue?vue&type=template&id=1c785fec&scoped=true&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7f18cb77-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/GridFeaturePopup.vue?vue&type=template&id=1c785fec&scoped=true&": /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/GridFeaturePopup.vue?vue&type=template&id=1c785fec&scoped=true& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7f18cb77-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/GridFeaturePopup.vue?vue&type=template&id=1c785fec&scoped=true& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"olpopup-container\" }, [\n _c(\n \"div\",\n { staticClass: \"olpopup-closer\", on: { click: _vm.closePopup } },\n [_vm._v(\"✖\")]\n ),\n _c(\"div\", { staticClass: \"olpopup-content\" }, [\n _c(\"div\", { staticClass: \"olpopup-title\" }, [\n _vm._v(\n _vm._s(_vm.pollutant.name[_vm.lang]) +\n \" (\" +\n _vm._s(_vm.pollutant.unitLegend) +\n \"):\"\n )\n ]),\n _c(\"div\", { staticClass: \"olpopup-value\" }, [\n _c(\"span\", { staticClass: \"olpopup-value\" }, [\n _vm._v(\n _vm._s(_vm.popupValue ? _vm.roundPollutantValue(_vm.popupValue) : 0)\n )\n ])\n ])\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/GridFeaturePopup.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"olpopup-container\" }, [\n _c(\n \"div\",\n { staticClass: \"olpopup-closer\", on: { click: _vm.closePopup } },\n [_vm._v(\"✖\")]\n ),\n _c(\"div\", { staticClass: \"olpopup-content\" }, [\n _c(\"div\", { staticClass: \"olpopup-title\" }, [\n _vm._v(\n _vm._s(_vm.pollutant.name[_vm.lang]) +\n \" (\" +\n _vm._s(_vm.pollutant.unitLegend) +\n \"):\"\n )\n ]),\n _c(\"div\", { staticClass: \"olpopup-value\" }, [\n _c(\"span\", { staticClass: \"olpopup-value\" }, [\n _vm._v(\n _vm._s(_vm.popupValue ? _vm.roundPollutantValue(_vm.popupValue) : 0)\n )\n ])\n ])\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/GridFeaturePopup.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227f18cb77-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Legend.vue?vue&type=template&id=34724886&scoped=true&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7f18cb77-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Legend.vue?vue&type=template&id=34724886&scoped=true&": /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Legend.vue?vue&type=template&id=34724886&scoped=true& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7f18cb77-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Legend.vue?vue&type=template&id=34724886&scoped=true& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"legend-wrapper\" }, [\n !_vm.loading && _vm.legend\n ? _c(\n \"div\",\n { staticClass: \"legend-box legend-container\" },\n [\n _c(\"div\", { attrs: { id: \"legend-title\" } }, [\n _vm.mapDataType === _vm.mapDataTypes.GRID\n ? _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"map.legend.title.emissions.label\"\n )\n ) +\n \" \"\n ),\n _c(\"br\"),\n _vm._v(\n _vm._s(_vm._f(\"translate\")(\"map.legend.per-grid-cell\")) +\n \" \"\n ),\n _c(\"span\", [_vm._v(\" (\" + _vm._s(_vm.legend.unit) + \")\")])\n ])\n : _vm._e(),\n _vm.mapDataType === _vm.mapDataTypes.MUNICIPALITY\n ? _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"map.legend.title.emission-density.label\"\n )\n ) +\n \" \"\n ),\n _c(\"br\"),\n _vm._v(\"(\" + _vm._s(_vm.legend.unit) + \" / km\"),\n _c(\"sup\", [_vm._v(\"2\")]),\n _vm._v(\") \")\n ])\n : _vm._e()\n ]),\n _vm._l(_vm.legend.classNames, function(className) {\n return _c(\n \"div\",\n { key: className, staticClass: \"legend-class-row\" },\n [\n _c(\"div\", {\n staticClass: \"legend-color-box\",\n style: { backgroundColor: _vm.legend[className].color }\n }),\n className === 1\n ? _c(\"div\", [\n _vm._v(\n \"< \" +\n _vm._s(\n _vm.toLocaleNumber(_vm.legend[className].max)\n )\n )\n ])\n : _c(\"div\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.toLocaleNumber(_vm.legend[className].min)\n ) +\n \" - \" +\n _vm._s(\n _vm.toLocaleNumber(_vm.legend[className].max)\n ) +\n \" \"\n )\n ])\n ]\n )\n })\n ],\n 2\n )\n : _c(\n \"div\",\n { staticClass: \"legend-box loading-wrapper\" },\n [_c(\"LoadingAnimation\")],\n 1\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Legend.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"legend-wrapper\" }, [\n !_vm.loading\n ? _c(\"div\", { staticClass: \"legend-box legend-container\" }, [\n _vm.legend\n ? _c(\n \"div\",\n [\n _c(\"div\", { attrs: { id: \"legend-title\" } }, [\n _vm.mapDataType === _vm.mapDataTypes.GRID\n ? _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"map.legend.title.emissions.label\"\n )\n ) +\n \" \"\n ),\n _c(\"br\"),\n _vm._v(\n _vm._s(\n _vm._f(\"translate\")(\"map.legend.per-grid-cell\")\n ) + \" \"\n ),\n _c(\"span\", [\n _vm._v(\" (\" + _vm._s(_vm.legend.unit) + \")\")\n ])\n ])\n : _vm._e(),\n _vm.mapDataType === _vm.mapDataTypes.MUNICIPALITY\n ? _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"map.legend.title.emission-density.label\"\n )\n ) +\n \" \"\n ),\n _c(\"br\"),\n _vm._v(\"(\" + _vm._s(_vm.legend.unit) + \" / km\"),\n _c(\"sup\", [_vm._v(\"2\")]),\n _vm._v(\") \")\n ])\n : _vm._e()\n ]),\n _vm._l(_vm.legend.classNames, function(className) {\n return _c(\n \"div\",\n { key: className, staticClass: \"legend-class-row\" },\n [\n _c(\"div\", {\n staticClass: \"legend-color-box\",\n style: {\n backgroundColor: _vm.legend[className].color\n }\n }),\n className === 1\n ? _c(\"div\", [\n _vm._v(\n \"< \" +\n _vm._s(\n _vm.toLocaleNumber(\n _vm.legend[className].max\n )\n )\n )\n ])\n : _c(\"div\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.toLocaleNumber(\n _vm.legend[className].min\n )\n ) +\n \" - \" +\n _vm._s(\n _vm.toLocaleNumber(\n _vm.legend[className].max\n )\n ) +\n \" \"\n )\n ])\n ]\n )\n })\n ],\n 2\n )\n : _vm._e()\n ])\n : _c(\n \"div\",\n { staticClass: \"legend-box loading-wrapper\" },\n [_c(\"LoadingAnimation\")],\n 1\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Legend.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227f18cb77-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/LoadingAnimation.vue?vue&type=template&id=6f85f1d8&scoped=true&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7f18cb77-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/LoadingAnimation.vue?vue&type=template&id=6f85f1d8&scoped=true&": /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/LoadingAnimation.vue?vue&type=template&id=6f85f1d8&scoped=true& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7f18cb77-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/LoadingAnimation.vue?vue&type=template&id=6f85f1d8&scoped=true& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", [\n _c(\"div\", { staticClass: \"svg-spinner\" }, [\n _c(\n \"svg\",\n {\n staticClass: \"loading-icon\",\n style: _vm.size ? \"height:\" + _vm.size + \"px;\" : \"\",\n attrs: {\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 80 80\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n fill: _vm.color ? _vm.color : \"white\",\n d:\n \"M40,80C17.944,80,0,62.056,0,40C0,17.944,17.944,0,40,0c22.056,0,40,17.944,40,40c0,2.209-1.791,4-4,4s-4-1.791-4-4C72,22.355,57.645,8,40,8C22.355,8,8,22.355,8,40c0,17.645,14.355,32,32,32c2.209,0,4,1.791,4,4S42.209,80,40,80z\"\n }\n })\n ]\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/LoadingAnimation.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", [\n _c(\"div\", { staticClass: \"svg-spinner\" }, [\n _c(\n \"svg\",\n {\n staticClass: \"loading-icon\",\n style: _vm.size ? \"height:\" + _vm.size + \"px;\" : \"\",\n attrs: {\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 80 80\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n fill: _vm.color ? _vm.color : \"white\",\n d:\n \"M40,80C17.944,80,0,62.056,0,40C0,17.944,17.944,0,40,0c22.056,0,40,17.944,40,40c0,2.209-1.791,4-4,4s-4-1.791-4-4C72,22.355,57.645,8,40,8C22.355,8,8,22.355,8,40c0,17.645,14.355,32,32,32c2.209,0,4,1.791,4,4S42.209,80,40,80z\"\n }\n })\n ]\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/LoadingAnimation.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227f18cb77-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/MuniDataDownload.vue?vue&type=template&id=08c4d105&scoped=true&": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MuniDataDownload.vue?vue&type=template&id=08c4d105&scoped=true& ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! exports provided: render, staticRenderFns */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"muni-csv-download-container\" }, [\n _c(\n \"button\",\n {\n ref: \"download-muni-data-button\",\n staticClass: \"download-button\",\n on: { click: _vm.downloadMuniData }\n },\n [\n !_vm.loadingMuniData\n ? _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\n \"csv-data-download.municipality.button.label\"\n )\n ) +\n \" (.csv) \"\n )\n ])\n : _c(\"span\", { staticClass: \"loading-container\" }, [\n _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\"csv-data-download.loading-label\")\n )\n )\n ]),\n _c(\n \"span\",\n { staticClass: \"loading-wrapper\" },\n [\n _c(\"LoadingAnimation\", {\n attrs: { color: \"white\", size: 14 }\n })\n ],\n 1\n )\n ])\n ]\n ),\n _vm.lastAttemptFailed\n ? _c(\"div\", { staticClass: \"download-error-label\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\"csv-data-download.failed-try-again.label\")\n ) +\n \" \"\n )\n ])\n : _vm._e()\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/MuniDataDownload.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); - -/***/ }), - -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/MuniDataDownloadAll.vue?vue&type=template&id=4b2fba0c&scoped=true&": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MuniDataDownloadAll.vue?vue&type=template&id=4b2fba0c&scoped=true& ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! exports provided: render, staticRenderFns */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"muni-csv-download-all-container\" }, [\n _c(\n \"button\",\n {\n ref: \"download-all-muni-data-button\",\n staticClass: \"download-button\",\n on: { click: _vm.downloadMuniData }\n },\n [\n !_vm.loadingMuniData\n ? _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\"csv-data-download.all.button.label\")\n ) +\n \" (.csv) \"\n )\n ])\n : _c(\"span\", { staticClass: \"loading-container\" }, [\n _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\"csv-data-download.loading-label\")\n )\n )\n ]),\n _c(\n \"span\",\n { staticClass: \"loading-wrapper\" },\n [\n _c(\"LoadingAnimation\", {\n attrs: { color: \"white\", size: 14 }\n })\n ],\n 1\n )\n ])\n ]\n ),\n _vm.lastAttemptFailed\n ? _c(\"div\", { staticClass: \"download-error-label\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm._f(\"translate\")(\"csv-data-download.failed-try-again.label\")\n ) +\n \" \"\n )\n ])\n : _vm._e()\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/MuniDataDownloadAll.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); - -/***/ }), - -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/MuniFeaturePopup.vue?vue&type=template&id=5d6d4c09&scoped=true&": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MuniFeaturePopup.vue?vue&type=template&id=5d6d4c09&scoped=true& ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! exports provided: render, staticRenderFns */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"olpopup-container\" }, [\n _c(\n \"div\",\n { staticClass: \"olpopup-closer\", on: { click: _vm.closePopup } },\n [_vm._v(\"✖\")]\n ),\n _vm.featProps\n ? _c(\n \"div\",\n { staticClass: \"olpopup-content\" },\n [\n _c(\"div\", { staticClass: \"olpopup-title\" }, [\n _vm._v(\n _vm._s(_vm.featProps.name[_vm.lang]) +\n \" (\" +\n _vm._s(_vm.pollutant.name[_vm.lang]) +\n \"):\"\n )\n ]),\n _c(\"div\", { staticClass: \"olpopup-values\" }, [\n _c(\"div\", { staticClass: \"olpopup-value-row\" }, [\n _c(\"span\", { staticClass: \"olpopup-value\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.featProps[_vm.pollutant.id]\n ? _vm.roundPollutantValue(\n _vm.featProps[_vm.pollutant.id]\n )\n : 0\n ) +\n \" \"\n )\n ]),\n _c(\"span\", [_vm._v(_vm._s(_vm.pollutant.unitLegend) + \" \")])\n ]),\n _c(\"div\", { staticClass: \"olpopup-value-row\" }, [\n _c(\"span\", { staticClass: \"olpopup-value\" }, [\n _vm._v(\n _vm._s(\n _vm.featProps[_vm.pollutant.id + \"-density\"]\n ? _vm.roundPollutantValue(\n _vm.featProps[_vm.pollutant.id + \"-density\"]\n )\n : 0\n ) + \" \"\n )\n ]),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.pollutant.unitLegend) + \" / km\"),\n _c(\"sup\", [_vm._v(\"2\")])\n ])\n ])\n ]),\n _c(\"MuniDataDownload\", { attrs: { featProps: _vm.featProps } })\n ],\n 1\n )\n : _vm._e()\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/MuniFeaturePopup.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); - -/***/ }), - -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/OlGridDataLayer.vue?vue&type=template&id=59a8ec44&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7f18cb77-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/OlGridDataLayer.vue?vue&type=template&id=59a8ec44&": /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/OlGridDataLayer.vue?vue&type=template&id=59a8ec44& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7f18cb77-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/OlGridDataLayer.vue?vue&type=template&id=59a8ec44& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\")\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/OlGridDataLayer.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\")\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/OlGridDataLayer.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227f18cb77-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/OlMap.vue?vue&type=template&id=beedaa82&scoped=true&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7f18cb77-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/OlMap.vue?vue&type=template&id=beedaa82&scoped=true&": /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/OlMap.vue?vue&type=template&id=beedaa82&scoped=true& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7f18cb77-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/OlMap.vue?vue&type=template&id=beedaa82&scoped=true& ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"div\",\n { attrs: { id: \"ol-map\" } },\n [\n _vm.gnfrId &&\n _vm.pollutant &&\n _vm.isReady &&\n _vm.mapDataType === _vm.mapDataTypes.GRID\n ? _c(\"OlGridDataLayer\", {\n attrs: {\n year: _vm.year,\n gnfrId: _vm.gnfrId,\n pollutant: _vm.pollutant,\n map: _vm.map\n },\n on: {\n \"update-legend\": _vm.updateLegend,\n \"set-grid-feature-popup\": _vm.setGridFeaturePopup,\n \"update-total-emission-stats\": function(tps) {\n return _vm.$emit(\"update-total-emission-stats\", tps)\n }\n }\n })\n : _vm._e()\n ],\n 1\n ),\n _c(\"Legend\", {\n attrs: {\n id: \"map-legend-container\",\n legend: _vm.legend,\n mapDataType: _vm.mapDataType\n }\n }),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.gridPopupValue || _vm.muniPopupVisible,\n expression: \"gridPopupValue || muniPopupVisible\"\n }\n ],\n ref: \"olpopup\",\n staticClass: \"olpopup\"\n },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.muniPopupLoading,\n expression: \"muniPopupLoading\"\n }\n ],\n staticClass: \"popup-loading-wrapper\"\n },\n [_c(\"LoadingAnimation\", { attrs: { color: \"#007ac9\", size: 25 } })],\n 1\n ),\n _vm.gridPopupValue\n ? _c(\"GridFeaturePopup\", {\n attrs: {\n popupValue: _vm.gridPopupValue,\n pollutant: _vm.pollutant\n },\n on: { \"close-popup\": _vm.closePopup }\n })\n : _vm._e(),\n _vm.muniPopupFeat\n ? _c(\"MuniFeaturePopup\", {\n attrs: {\n featProps: _vm.muniPopupFeat,\n pollutant: _vm.pollutant\n },\n on: { \"close-popup\": _vm.closePopup }\n })\n : _vm._e()\n ],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/OlMap.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"div\",\n { attrs: { id: \"ol-map\" } },\n [\n _vm.gnfrId &&\n _vm.pollutant &&\n _vm.isReady &&\n _vm.mapDataType === _vm.mapDataTypes.GRID\n ? _c(\"OlGridDataLayer\", {\n attrs: {\n year: _vm.year,\n gnfrId: _vm.gnfrId,\n pollutant: _vm.pollutant,\n map: _vm.map\n },\n on: {\n \"update-legend\": _vm.updateLegend,\n \"set-grid-feature-popup\": _vm.setGridFeaturePopup,\n \"update-total-emission-stats\": function(tps) {\n return _vm.$emit(\"update-total-emission-stats\", tps)\n }\n }\n })\n : _vm._e()\n ],\n 1\n ),\n _c(\"Legend\", {\n attrs: {\n id: \"map-legend-container\",\n legend: _vm.legend,\n mapDataType: _vm.mapDataType\n }\n }),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.gridPopupValue,\n expression: \"gridPopupValue\"\n }\n ],\n ref: \"olpopup\",\n staticClass: \"olpopup\"\n },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.gridPopupValue,\n expression: \"gridPopupValue\"\n }\n ],\n staticClass: \"popup-loading-wrapper\"\n },\n [_c(\"LoadingAnimation\", { attrs: { color: \"#007ac9\", size: 25 } })],\n 1\n ),\n _vm.gridPopupValue\n ? _c(\"GridFeaturePopup\", {\n attrs: {\n popupValue: _vm.gridPopupValue,\n pollutant: _vm.pollutant\n },\n on: { \"close-popup\": _vm.closePopup }\n })\n : _vm._e()\n ],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/OlMap.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227f18cb77-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SelectorGnfr.vue?vue&type=template&id=258ce7a2&scoped=true&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7f18cb77-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SelectorGnfr.vue?vue&type=template&id=258ce7a2&scoped=true&": /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SelectorGnfr.vue?vue&type=template&id=258ce7a2&scoped=true& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7f18cb77-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SelectorGnfr.vue?vue&type=template&id=258ce7a2&scoped=true& ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"select-wrapper\" },\n [\n _vm.options && _vm.initialOption\n ? _c(\"CustomDropdownSelector\", {\n attrs: {\n uniqueSelectorId: \"gnfr\",\n selectorLabel: _vm._f(\"translate\")(\"selector.gnfr.label\"),\n options: _vm.options,\n initialOption: _vm.initialOption\n },\n on: {\n \"selected-option\": function(gnfr) {\n return _vm.$emit(\"selected-gnfr\", gnfr.value)\n }\n }\n })\n : _c(\n \"div\",\n { staticClass: \"loading-container\" },\n [_c(\"LoadingAnimation\", { attrs: { color: \"#007ac9\", size: 22 } })],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SelectorGnfr.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"select-wrapper\" },\n [\n _vm.options && _vm.initialOption\n ? _c(\"CustomDropdownSelector\", {\n attrs: {\n uniqueSelectorId: \"gnfr\",\n selectorLabel: _vm._f(\"translate\")(\"selector.gnfr.label\"),\n options: _vm.options,\n initialOption: _vm.initialOption\n },\n on: {\n \"selected-option\": function(gnfr) {\n return _vm.$emit(\"selected-gnfr\", gnfr.value)\n }\n }\n })\n : _c(\n \"div\",\n { staticClass: \"loading-container\" },\n [_c(\"LoadingAnimation\", { attrs: { color: \"#007ac9\", size: 22 } })],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SelectorGnfr.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227f18cb77-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SelectorPollutant.vue?vue&type=template&id=26ddbc6a&scoped=true&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7f18cb77-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SelectorPollutant.vue?vue&type=template&id=26ddbc6a&scoped=true&": /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SelectorPollutant.vue?vue&type=template&id=26ddbc6a&scoped=true& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7f18cb77-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SelectorPollutant.vue?vue&type=template&id=26ddbc6a&scoped=true& ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"select-wrapper\" },\n [\n _vm.options && _vm.initialOption\n ? _c(\"CustomDropdownSelector\", {\n attrs: {\n uniqueSelectorId: \"pollutant\",\n selectorLabel: _vm._f(\"translate\")(\"selector.pollutant.label\"),\n options: _vm.options,\n initialOption: _vm.initialOption\n },\n on: {\n \"selected-option\": function(option) {\n return _vm.$emit(\"selected-pollutant\", option.value)\n }\n }\n })\n : _c(\n \"div\",\n { staticClass: \"loading-container\" },\n [_c(\"LoadingAnimation\", { attrs: { color: \"#007ac9\", size: 22 } })],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SelectorPollutant.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"select-wrapper\" },\n [\n _vm.options && _vm.initialOption\n ? _c(\"CustomDropdownSelector\", {\n attrs: {\n uniqueSelectorId: \"pollutant\",\n selectorLabel: _vm._f(\"translate\")(\"selector.pollutant.label\"),\n options: _vm.options,\n initialOption: _vm.initialOption\n },\n on: {\n \"selected-option\": function(option) {\n return _vm.$emit(\"selected-pollutant\", option.value)\n }\n }\n })\n : _c(\n \"div\",\n { staticClass: \"loading-container\" },\n [_c(\"LoadingAnimation\", { attrs: { color: \"#007ac9\", size: 22 } })],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SelectorPollutant.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227f18cb77-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), -/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"666d1100-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SelectorYear.vue?vue&type=template&id=e27c8228&scoped=true&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7f18cb77-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SelectorYear.vue?vue&type=template&id=e27c8228&scoped=true&": /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"666d1100-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SelectorYear.vue?vue&type=template&id=e27c8228&scoped=true& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7f18cb77-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SelectorYear.vue?vue&type=template&id=e27c8228&scoped=true& ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"select-wrapper\" },\n [\n _vm.options && _vm.initialOption\n ? _c(\"CustomDropdownSelector\", {\n attrs: {\n uniqueSelectorId: \"year\",\n selectorLabel: _vm._f(\"translate\")(\"selector.vuosi.label\"),\n options: _vm.options,\n initialOption: _vm.initialOption\n },\n on: {\n \"selected-option\": function(year) {\n return _vm.$emit(\"selected-year\", year.value)\n }\n }\n })\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SelectorYear.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22666d1100-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"select-wrapper\" },\n [\n _vm.options && _vm.initialOption\n ? _c(\"CustomDropdownSelector\", {\n attrs: {\n uniqueSelectorId: \"year\",\n selectorLabel: _vm._f(\"translate\")(\"selector.vuosi.label\"),\n options: _vm.options,\n initialOption: _vm.initialOption\n },\n on: {\n \"selected-option\": function(year) {\n return _vm.$emit(\"selected-year\", year.value)\n }\n }\n })\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SelectorYear.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227f18cb77-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -2261,18 +2165,6 @@ eval("\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-ob /***/ }), -/***/ "./node_modules/core-js/modules/es.array.join.js": -/*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.join.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ \"./node_modules/core-js/internals/indexed-object.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ \"./node_modules/core-js/internals/array-method-is-strict.js\");\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.array.join.js?"); - -/***/ }), - /***/ "./node_modules/core-js/modules/es.array.map.js": /*!******************************************************!*\ !*** ./node_modules/core-js/modules/es.array.map.js ***! @@ -2367,28 +2259,6 @@ eval("var $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/co /***/ }), -/***/ "./node_modules/core-js/modules/es.object.get-own-property-descriptor.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.get-own-property-descriptor.js ***! - \*******************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("var $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar nativeGetOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\").f;\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js?"); - -/***/ }), - -/***/ "./node_modules/core-js/modules/es.object.get-own-property-descriptors.js": -/*!********************************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.get-own-property-descriptors.js ***! - \********************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("var $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar ownKeys = __webpack_require__(/*! ../internals/own-keys */ \"./node_modules/core-js/internals/own-keys.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\");\nvar createProperty = __webpack_require__(/*! ../internals/create-property */ \"./node_modules/core-js/internals/create-property.js\");\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js?"); - -/***/ }), - /***/ "./node_modules/core-js/modules/es.object.keys.js": /*!********************************************************!*\ !*** ./node_modules/core-js/modules/es.object.keys.js ***! @@ -2677,39 +2547,6 @@ eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../. /***/ }), -/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/MuniDataDownload.vue?vue&type=style&index=0&id=08c4d105&scoped=true&lang=css&": -/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MuniDataDownload.vue?vue&type=style&index=0&id=08c4d105&scoped=true&lang=css& ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.muni-csv-download-container[data-v-08c4d105] {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\r\\n margin: 5px 0px 0px 0px;\\n}\\n.download-button[data-v-08c4d105] {\\r\\n cursor: pointer;\\r\\n width: -webkit-max-content;\\r\\n width: -moz-max-content;\\r\\n width: max-content;\\r\\n background-color: #007ac9;\\r\\n color: white;\\r\\n border: none;\\r\\n border-radius: 24px;\\r\\n padding: 4px 12px;\\r\\n margin: 3px 2px;\\r\\n display: flex;\\r\\n transition-duration: 0.2s;\\r\\n -webkit-transition-duration: 0.2s; /* Safari */\\n}\\n.download-button[data-v-08c4d105]:focus,\\r\\n.download-button[data-v-08c4d105]:hover {\\r\\n outline: 0 !important;\\r\\n background-color: #2996df;\\n}\\n.download-error-label[data-v-08c4d105] {\\r\\n font-size: 12px;\\r\\n color: #e20000;\\r\\n margin: 0px 0px 4px 0px;\\n}\\n.loading-container[data-v-08c4d105] {\\r\\n display: flex;\\n}\\n.loading-wrapper[data-v-08c4d105] {\\r\\n margin: -1px 0px 0px 6px;\\r\\n display: flex;\\r\\n align-items: center;\\n}\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/MuniDataDownload.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/MuniDataDownloadAll.vue?vue&type=style&index=0&id=4b2fba0c&scoped=true&lang=css&": -/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MuniDataDownloadAll.vue?vue&type=style&index=0&id=4b2fba0c&scoped=true&lang=css& ***! - \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.muni-csv-download-all-container[data-v-4b2fba0c] {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\r\\n margin: 10px 0px 0px 0px;\\n}\\n.download-button[data-v-4b2fba0c] {\\r\\n cursor: pointer;\\r\\n width: -webkit-max-content;\\r\\n width: -moz-max-content;\\r\\n width: max-content;\\r\\n background-color: #007ac9;\\r\\n color: white;\\r\\n border: none;\\r\\n border-radius: 24px;\\r\\n padding: 4px 12px;\\r\\n margin: 3px 2px;\\r\\n display: flex;\\r\\n transition-duration: 0.2s;\\r\\n -webkit-transition-duration: 0.2s; /* Safari */\\n}\\n.download-button[data-v-4b2fba0c]:focus,\\r\\n.download-button[data-v-4b2fba0c]:hover {\\r\\n outline: 0 !important;\\r\\n background-color: #2996df;\\n}\\n.download-error-label[data-v-4b2fba0c] {\\r\\n font-size: 12px;\\r\\n color: #e20000;\\r\\n margin: 0px 0px 4px 0px;\\n}\\n.loading-container[data-v-4b2fba0c] {\\r\\n display: flex;\\n}\\n.loading-wrapper[data-v-4b2fba0c] {\\r\\n margin: -1px 0px 0px 6px;\\r\\n display: flex;\\r\\n align-items: center;\\n}\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/MuniDataDownloadAll.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/MuniFeaturePopup.vue?vue&type=style&index=0&id=5d6d4c09&scoped=true&lang=css&": -/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MuniFeaturePopup.vue?vue&type=style&index=0&id=5d6d4c09&scoped=true&lang=css& ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.olpopup-closer[data-v-5d6d4c09] {\\r\\n position: absolute;\\r\\n right: 11px;\\r\\n top: 5px;\\r\\n cursor: pointer;\\r\\n margin-bottom: 10px;\\n}\\n.olpopup-content[data-v-5d6d4c09] {\\r\\n padding: 3px 22px 2px 3px;\\r\\n color: black;\\r\\n font-weight: 500;\\n}\\n.olpopup-title[data-v-5d6d4c09] {\\r\\n font-weight: 550;\\r\\n margin-bottom: 6px;\\n}\\n.olpopup-values[data-v-5d6d4c09] {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: flex-start;\\n}\\n.olpopup-value-row[data-v-5d6d4c09] {\\r\\n margin: 1px 0 1px 0;\\n}\\n.olpopup-value[data-v-5d6d4c09] {\\r\\n color: #007ac9;\\n}\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/MuniFeaturePopup.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); - -/***/ }), - /***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/OlMap.vue?vue&type=style&index=0&id=beedaa82&scoped=true&lang=css&": /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/OlMap.vue?vue&type=style&index=0&id=beedaa82&scoped=true&lang=css& ***! @@ -5921,39 +5758,6 @@ eval("// style-loader: Adds some css to the DOM by adding a