"use strict";dayjs.extend(window.dayjs_plugin_utc),window.uploadData=()=>({tempArr:[],tempCar:[],canBeUploaded:!1,upload:{overwrite:!1},modal1:{show:!1,overwrite:!1,error:{show:!1,msg:""}},modal2:{show:!1},map01:new L.map("map01"),fg_car:new L.FeatureGroup,fg_bike:new L.FeatureGroup,fg_walk:new L.FeatureGroup,fg_pt:new L.FeatureGroup,init(){refreshToken(),document.getElementById("confirmation-btn").disabled=!0,this.init_map(),document.getElementById("inp_file").addEventListener("change",(event=>{const files=Array.from(event.target.files);this.handleFiles(files)}))},handleTabEvent($event){"upload"==$event.detail.tab&&setTimeout((()=>{this.map01.invalidateSize()}),0)},toggleDisableUpload(){document.getElementById("btn-upload").disabled=!1},init_map(){const mapbox_token="pk.eyJ1IjoiaGFybWVuem9uIiwiYSI6ImNsZmt4Z3RsYTBmY2UzeW10Y3czcGJyMm8ifQ.Y3X24Vi31ZTQzCJzGdgklw",mbAttr="© Mapbox © OpenStreetMap",mapbox_gray=L.tileLayer("https://api.mapbox.com/styles/v1/mapbox/light-v10/tiles/{z}/{x}/{y}?access_token="+mapbox_token,{attribution:mbAttr,tileSize:512,zoomOffset:-1}),base_layers={"Kleur":L.tileLayer("https://api.mapbox.com/styles/v1/mapbox/streets-v11/tiles/{z}/{x}/{y}?access_token="+mapbox_token,{attribution:mbAttr,tileSize:512,zoomOffset:-1}),"Grijs":mapbox_gray},lcontrol=new L.control.layers(base_layers,!0,{collapsed:!0,sortLayers:!0,hideSingleBase:!0});this.map01.setView([52.37,4.91]),this.map01.setZoom(13),this.map01.addLayer(mapbox_gray),this.map01.addControl(lcontrol),lcontrol.addOverlay(this.fg_car,"Motorvoertuigen"),lcontrol.addOverlay(this.fg_bike,"Fietsers"),lcontrol.addOverlay(this.fg_walk,"Voetgangers"),lcontrol.addOverlay(this.fg_pt,"Openbaar Vervoer"),this.map01.addLayer(this.fg_car),this.map01.addLayer(this.fg_bike),this.map01.addLayer(this.fg_walk),this.map01.addLayer(this.fg_pt)},previewFile(){Papa.parse(document.getElementById("inp_file").files[0],{header:!0,delimeter:"",newline:"",skipEmptyLines:!0,complete:results=>{const filtered=results.data.filter((a=>{const key=`${a.longitude||a.Longitude}|${a.latitude||a.Latitude}|${a.modaliteit||a.Modaliteit}`;if(!this[key])return this[key]=!0,!0}),Object.create(null));this.tempArr=filtered;const geoArr=[];filtered.map((filterRow=>{if(filterRow.longitude&&""!=filterRow.longitude&&filterRow.latitude&&""!=filterRow.latitude&&filterRow.modaliteit&&""!=filterRow.modaliteit||filterRow.Longitude&&""!=filterRow.Longitude&&filterRow.Latitude&&""!=filterRow.Latitude&&filterRow.Modaliteit&&""!=filterRow.Modaliteit){const lonlat={longitude:filterRow.longitude||filterRow.Longitude,latitude:filterRow.latitude||filterRow.Latitude,modaliteit:filterRow.modaliteit||filterRow.Modaliteit};geoArr.push(lonlat),document.getElementById("confirmation-btn").disabled=!1}else this.modal2.show=!0})),geoArr.map((geoArrRow=>{const coordinates=[geoArrRow.latitude||geoArrRow.Latitude,geoArrRow.longitude||geoArrRow.Longitude],modaliteit=geoArrRow.modaliteit||geoArrRow.Modaliteit;"fiets"===modaliteit&&L.circleMarker(coordinates,{color:"gray",fillColor:"gray",fillOpacity:.5,radius:2}).bindPopup("Telpunt: "+modaliteit).addTo(this.fg_bike),"auto"===modaliteit&&L.circleMarker(coordinates,{color:"blue",fillColor:"blue",fillOpacity:.5,radius:2}).bindPopup("Telpunt: "+modaliteit).addTo(this.fg_car),"voetganger"===modaliteit&&L.circleMarker(coordinates,{color:"red",fillColor:"red",fillOpacity:.5,radius:2}).bindPopup("Telpunt: "+modaliteit).addTo(this.fg_walk);const group=new L.featureGroup([this.fg_car,this.fg_bike,this.fg_walk]);this.map01.fitBounds(group.getBounds())}))}})},handleFiles(files){const status=document.getElementById("inp_file_status");files.forEach((file=>{status.textContent="",file.type?file.type.match("text/csv")||file.type.match("application/vnd.ms-excel")?this.previewFile():status.textContent="Error: The selected file does not appear to be a csv file.":status.textContent="Error: The File.type property does not appear to be supported on this browser."}))},createFilename:(file,index)=>`${dayjs().utc().format("YYYYMMDD_HHmmss")}_data_${index}.${file.name.split(".").pop()}`,uploadFiles(){refreshToken();const s3=new AWS.S3({apiVersion:"2006-03-01",params:{Bucket:"mapinsight-uploads"}}),inp_file=document.getElementById("inp_file");Array.from(inp_file.files).forEach(((file,index)=>{const file_name=this.createFilename(file,index),key=`inframonitor/user-upload/amsterdam/${file_name}`;s3.upload({Key:key,Body:file,ACL:"public-read"},((err,data)=>{err&&(console.error("Oeps.. Er is iets fout gegaan."),reject("error"))})).on("httpUploadProgress",(progress=>{100===parseInt(100*progress.loaded/progress.total)&&this.notifyApi(file_name,"False").then((response=>{"error"in response&&this.handleMsgError(response.error),"message"in response&&this.handleMsgSuccess(response.message,file_name)}))}))}))},async notifyApi(file_name,save_data){const overwrite=this.upload.overwrite?"True":"False",url_full1=new URL(`/inframonitor-api/AmsBulk2S3?source=GUI&overwrite=${overwrite}&save.data=${save_data}&filename=${file_name}`,"https://bmams.maptm.nl");return fetch(url_full1).then((response=>response.json())).then((data=>{if(data)return data})).catch((error=>{console.error("Error:",error)}))},handleMsgSuccess(msg,file_name){"Data passed all checks."!==msg&&"Data passed all checks. Duplicated data is allowed."!==msg?"Data was added."!==msg&&"Data was added and possibly rewritten / overwritten."!==msg||this.handleModal1Cancel():this.notifyApi(file_name,"True").then((response=>{"message"in response&&this.handleMsgSuccess(response.message,file_name)}))},handleMsgError(error){console.error(error),this.modal1.error.msg=error,"One or more days failed saving to inframonitor counts data."===error&&(this.modal1.overwrite=!0),this.modal1.error.show=!0},handleModal1Cancel(){this.modal1.show=!1,this.modal1.overwrite=!1,this.upload.overwrite=!1,this.modal1.error.show=!1,this.modal1.error.msg=""}});