1"use strict";!function a(o,l,i){function r(t,e){if(!l[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(s)return s(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}n=l[t]={exports:{}},o[t][0].call(n.exports,function(e){return r(o[t][1][e]||e)},n,n.exports,a,o,l,i)}return l[t].exports}for(var s="function"==typeof require&&require,e=0;e<i.length;e++)r(i[e]);return r}({1:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.createLegendObject=q,n.displayAHPEntry=p,n.loadAHPData=function(){const P=document.getElementById("AHPAccordion");_region.projectData&&P&&!_region.filesTask&&($("#AHPAccordion").accordion(),fetch("data_layer_config/",{credentials:"same-origin",headers:{"Content-Type":"application/json"}}).then(e=>{if(e.ok)return e.json();throw new Error("HTTP status: "+e.status)}).then(a=>{var l;const e=(0,A.addElem)(null,null,document.head,"STYLE");e.type="text/css";var t,i,r=e.sheet;{var o=a.years;let t=document.getElementById("yearslider_div"),e=document.querySelector("div.leaflet-bottom.leaflet-left");if(t&&e&&o){t=t.parentElement.removeChild(t),e.appendChild(t),t.style.margin="0 1rem 1rem 2rem";let a=(0,A.addElem)("yearslider",null,t,"INPUT");a.id="yearslider",a.type="range";var s=(0,A.addElem)("yearsliderticks unselectable",null,t,"DIV");for(let n=0;n<o.length&&null!=s;n++){let e=o[n],t=(11<o.length&&n%2!=0&&(e=""),(0,A.addElem)(null,e,s,"P"));t.addEventListener("click",e=>{a.value=o[n]})}a.min=o[0],a.max=o[o.length-1],a.value=(window.sessionStorage?window.sessionStorage.currentYear:void 0)||o[0],a.addEventListener("input",e=>{window.sessionStorage&&(window.sessionStorage.currentYear=a.value)}),L.DomEvent.on(sidebar,"opening",e=>{t.style.margin="0 1rem 1rem 480px"}),L.DomEvent.on(sidebar,"closing",e=>{t.style.margin="0 1rem 1rem 75px"})}L.DomEvent.disableClickPropagation(t),L.DomEvent.on(t,"contextmenu",function(e){L.DomEvent.stopPropagation(e)}),L.DomEvent.disableScrollPropagation(t)}let d=0;for([t,i]of Object.keys(a.categories).entries()){let n=a.categories[i],o=F(P,i,n.options||{});var c,u="layerCat"+t;for(c in o.id=u,delete n.options,_atlasCats[u]={name:i,layers:[]},n){let a=n[c],t=(a.title=c,a.options=a.options||{},N(a,c,!1,a.options));o.appendChild(t),j(a,d,r);var m,p,g="id_"+d;let e;a.options.legend&&(a.options.legend.classes?e=R(a.options.legend.classes):a.options.potential?(m=(0,A.colormapFromOptions)(a.options),e=q(m,400,40,a.options.legend.min,a.options.legend.max)):O.DEBUG&&console.log("strange kind of legend..."));{let e;null!=(m=a.options.filterable)&&m.containerId&&(e=U(a.options.filterable.containerId)),a.subcategories||(t.appendChild(z(a,g,u)),d++),e&&(e.activateFunc(!1),t.appendChild(e.elem),D[g]=e)}for(p in e&&(e.activateFunc(!1),t.appendChild(e.elem),_AHPLegends[g]=e),a.subcategories){let t=a.subcategories[p],n=(t.title=p,t.options=t.options||{},N(t,p,!0,t.options));o.appendChild(n);var f,h="id_"+d;let e;t.options.legend&&t.options.potential&&(f=(0,A.colormapFromOptions)(t.options),e=q(f,380,40,t.options.legend.min,t.options.legend.max)),t.options.legend&&(t.options.legend.classes?e=R(t.options.legend.classes):t.options.potential?(f=(0,A.colormapFromOptions)(t.options),e=q(f,380,40,t.options.legend.min,t.options.legend.max)):O.DEBUG&&console.log("strange kind of legend...")),n.appendChild(z(t,h,u)),j(t,d,r);{let e;(e=null!=(l=t.options.filterable)&&l.containerId?U(t.options.filterable.containerId):e)&&(e.activateFunc(!1),n.appendChild(e.elem),D[h]=e)}e&&(e.activateFunc(!1),n.appendChild(e.elem),_AHPLegends[h]=e),d++}}}var n=_permissions.canInvite;if(_region.allow_geo_upload&&(n||_region.userFeatures.length&&_permissions.dataAccess)){let e={};const k=F(P,gettext("Benutzerdefinierte Daten"));var _="layerCatUserdata";k.id=_,_atlasCats[_]={name:"Benutzerdefinierte Daten",layers:[]};for(const S of _region.userFeatures){var y=function(e){let t=e.options||{color:"#07689F"};t.titleIsHtml=!0,t.indented=t.indented||t.subcategory;var n=window.location.origin+"/LISMap/project/"+_region.id+"/upload_geom/?id="+e.id;return{GET:"custom_geom/?id="+e.id,field:"all",options:t,title:e.name+' <a href="'+n+'"><i class="icon ion-md-settings"></i></a>',info:e.info}}(S);const I=N(y,y.title,y.options.subcategory,y.options);var v="id_"+d,v=(I.appendChild(z(y,v,_)),y.options.subcategory);v?(e[v]||(y=N({options:{}},v,!0,{}),k.appendChild(y),e[v]=y),e[v].parentNode.insertBefore(I,e[v].nextSibling),e[v]=I):k.appendChild(I),d++}if(n){n=(0,A.addElem)("u-margin--s",null,k,"DIV");const C=(0,A.addElem)("button btn btn--color",gettext("Datei hochladen"),n,"A");C.href=window.location.origin+"/LISMap/project/"+_region.id+"/upload_geom/"}}const b=document.getElementById("tab-layers");b&&b.classList.remove("disabled-sidebar-tab");{const B=_region.hasH2Market?document.getElementById("tab-h2market"):b;let n=!1;for(let t=0;t<B.parentElement.children.length;t++){let e=B.parentElement.children[t];n=n||e.classList.contains("active")}
1!n&&768<=window.visualViewport.width&&B.firstElementChild.click()}const x=$("#AHPAccordion");x.on("accordionbeforeactivate",function(e,t){t.oldHeader[0]&&t.oldHeader[0].parentNode.classList.remove("is-active"),t.newHeader[0]&&t.newHeader[0].parentNode.classList.add("is-active")}),x.accordion({heightStyle:"content",collapsible:!0}),x.accordion("refresh"),x.accordion({active:!1});var E=document.getElementsByClassName("switch-default-show");for(let e=0;e<E.length;e++)E[e].click();var w=document.getElementsByClassName("accordion-item-default-open");for(let e=0;e<w.length;e++)w[e].click();if(a.bottom_image){const T=document.createElement("img");T.src=_AHPFolder+"resources/"+a.bottom_image.file,document.getElementById("layers").appendChild(T)}}).catch(e=>{console.log(e)}))},n.removeLayerFromMap=m,n.restoreLayersViewUrl=function(){let e=new URL(document.location+"");return e.searchParams.set("layers","restore"),e.searchParams.set("view","restore"),e},n.restoreMapView=function(){let e=new URL(window.location+""),t="restore"===e.searchParams.get("view");if(t){e.searchParams.delete("view"),window.history.replaceState(null,"",e+"");try{var n=JSON.parse(window.localStorage.getItem("mapView_"+_region.id));if(null!=n&&n.center&&null!=n&&n.zoom)return _map.setView(n.center,n.zoom),!0}catch(e){console.log(e)}}return!1},n.storeMapView=function(){try{var e={center:_map.getCenter(),zoom:_map.getZoom()};window.localStorage.setItem("mapView_"+_region.id,JSON.stringify(e))}catch(e){console.log(e);try{window.localStorage.clear()}catch(e){console.log(e)}}};var r,O=e("./map"),s=e("./layer"),P=e("./features"),M=e("./bubbles"),d=e("./chart"),A=e("./utils");let D={},c={};function F(e,t,n){var a=2<arguments.length&&void 0!==n?n:{};const o=(0,A.addElem)("accordion-item",null,e,"LI"),l=(o.setAttribute("data-accordion-item",""),t=gettext(t),(0,A.addElem)("accordion-title",t,o,"A")),i=(l.setAttribute("href","#"),(0,A.addElem)("accordion-title-logos",null,l,"img"),(0,A.addElem)("accordion-title-count",null,l,"SPAN"));if(i.hidden=!0,a.openOnStart&&l.classList.add("accordion-item-default-open"),a.customClasses)for(let e=0;e<a.customClasses.length;e++)o.classList.add(a.customClasses[e]);const r=(0,A.addElem)("accordion-content",null,o,"DIV");return r.setAttribute("data-tab-content",""),r}function N(t,n,e,a){var a=3<arguments.length&&void 0!==a?a:{},o=(0,A.addElem)("grid-x",null,null,"DIV");const l=(0,A.addElem)("cell small-10 switch__label",null,o,"DIV");e&&l.classList.add("switch__label--sub"),t.options.indented&&l.classList.add("indented-entry");e=function(n){{if(n.options.icon){let e=n.options.icon,t=(e.file instanceof Array&&(e.file=e.file[0]),e.file=_AHPFolder+"resources/"+e.file,document.createElement("IMG"));return t.src=e.file,t.style.width=(e.legendWidth||e.width||16)+"px",t.style.height=(e.legendHeight||e.height||16)+"px",t.style.display="inline-block",t.classList.add("switch__label__icon"),t}if(n.options.color){const t=document.createElement("DIV");return t.classList.add("switch__label__square"),t.style.backgroundColor=n.options.color||O.COLORS.border,t}if("project_region"==(null==(e=n.geoSource)?void 0:e.type)){const a=document.createElement("DIV");return a.classList.add("switch__label__square"),a.style.backgroundColor=n.options.color||O.COLORS.border,a}if(n.options.potential){const o=document.createElement("DIV");var e=(0,A.colormapFromOptions)(n.options);return o.classList.add("switch__label__square"),o.style.background=(0,A.colormapToCSSGradient)(e,"to top"),o}}return null}(t);if(e&&l.appendChild(e),n=gettext(n),null!=a&&a.titleIsHtml){let e=document.createElement("SPAN");e.innerHTML=n,l.appendChild(document.createTextNode(" ")),l.appendChild(e),l.appendChild(document.createTextNode(" "))}else l.appendChild(document.createTextNode(" "+n+" "));let i=l.appendChild(document.createElement("div"));if(i.className="info-container",l.appendChild(i),t.alert){const r=document.createElement("i");r.className="icon ion-md-alert unselectable",r.title=gettext(t.alert),i.appendChild(r)}if(t.info){const s=document.getElementById("yearslider"),d=document.createElement("I");d.className="icon ion-md-information-circle unselectable",d.title=(s?t.info[s.value]:null)||gettext(t.info),i.appendChild(d),s&&t.info instanceof Object&&s.addEventListener("input",e=>{d.title=(s?t.info[s.value]:null)||gettext(t.info)})}return o}function z(t,n,e){var a=(0,A.addElem)("cell small-2 switch__checkbox unselectable",null,null,"DIV"),o=(0,A.addElem)("switch tiny unselectable",null,a,"DIV");let l=(0,A.addElem)("switch-input unselectable",null,o,"INPUT"),i=(l.setAttribute("type","checkbox"),l.setAttribute("name",n),l.setAttribute("id",n),(0,A.addElem)("switch-paddle unselectable",null,o,"LABEL"));i.setAttribute("for",n),"none"===t.file&&(l.setAttribute("disabled",""),i.style.cursor="not-allowed",i.classList.add("switch-paddle-deactivated")),_atlasLayers[n]={title:t.title,cat_id:e},e&&_atlasCats[e].layers.push(n);var o=function(e,t){void 0===h&&(h=f()?function(){try{return JSON.parse(window.localStorage.getItem("atlasOpenLayers_"+_region.id))}catch(e){return console.log(e),null}}():(_(),null));if(!1===f())return r.Undef;
1return null===h?r.Undef:e in h?(0,A.simpleHash)(t)===h[e]?r.Stored:(_(),h=null,r.Undef):r.NotStored}(n,t.title);return(o==r.Stored||o==r.Undef&&(t.default||t.show))&&(null!=(e=null==t?void 0:t.options)&&e.fit&&delete t.options.fit,"bbox_query"==(null==(o=t.geoSource)?void 0:o.type)?setTimeout(e=>{u(t,l)},200):u(t,l),g(n,!0)),l.onchange=e=>{l.checked?(u(t,l),g(n,!0)):m(l)},a}function j(e,t,n){var a,o;e.options&&e.options.clusterColor&&(a="rgba("+chroma(e.options.clusterColor["background-color"]).alpha(.5).rgba().toString()+")",o="rgba("+chroma(e.options.clusterColor["background-color"]).alpha(.85).rgba().toString()+")",n.insertRule(".marker-cluster-"+t+" {color: "+e.options.clusterColor.color+"; background-color: "+a+";}"),n.insertRule(".marker-cluster-"+t+" div {background-color: "+o+";}"),e.options.clusterClass="marker-cluster-"+t)}function q(a,p,g,f,h){var e=5<arguments.length&&void 0!==arguments[5]?arguments[5]:null;let _=6<arguments.length&&void 0!==arguments[6]?arguments[6]:"#00355a";const y=p-20-8;let t=null,v=(t=null===e?(0,A.addElem)("canvas-colormap-legend",null,null,"CANVAS"):e).getContext("2d");t.width=p,t.height=g;return{activateFunc:function(e){if(v.clearRect(0,0,p,g),e){let t=v.createLinearGradient(10,0,10+y,0);for(let e=0;e<=11;e++){var n=e/11;t.addColorStop(n,"rgba("+a(n).rgba().toString()+")")}v.fillStyle=t}else v.fillStyle="rgba(0, 0, 0, 0.1)";v.fillRect(10,0,y,14);{var o=(h-f)/y,t=Math.log(20*o)/Math.log(10),l=Math.ceil(t),i=Math.pow(10,l);let n=.1*i,a=10;n*(1/o)<5&&(n=.5*i,a=2),e?(v.fillStyle=_,v.strokeStyle=_):(v.fillStyle="rgba(0, 0, 0, 0.5)",v.strokeStyle="rgba(0, 0, 0, 0.5)"),v.textBaseline="top";var r=Math.trunc(f/i)*i;{let e=0,t=0,n=-100;for(;e<10+y&&t<100;){var s,d,c=r+i*t;10<=(e=10+1/o*(c-f))&&e<=10+y&&(v.beginPath(),v.moveTo(e,14),v.lineTo(e,24),v.stroke(),c=""+(0<=l?Math.round(c):(0,A.roundToStr)(c,-l)),s=v.measureText(c),(d=Math.max(0,e-.5*s.width))>=n+4&&(v.fillText(c,d,26),n=d+s.width)),t++}}var u=r-i;{let e=0,t=0;for(;e<10+y&&t<300;){var m=u+n*t;e=10+1/o*(m-f),t%a!=0&&10<=e&&e<=10+y&&(v.beginPath(),v.moveTo(e,14),v.lineTo(e,18),v.stroke()),t++}}}},elem:t}}function R(n){let a=(0,A.addElem)("nominal-legend",null,null,"UL");a.style.display="none";for(let t=0;t<n.length;t++){var o=(0,A.addElem)(null,null,a,"LI");{let e=(0,A.addElem)(null,null,o,"DIV");e.style.display="inline-block",e.style.width="1rem",e.style.height="1rem",e.style.backgroundColor=n[t].color,n[t].borderStyle&&(e.style.border=n[t].borderStyle),n[t].className&&(e.className=n[t].className)}(0,A.addElem)(null,gettext(n[t].name),o,"SPAN")}return{activateFunc:function(e){a.style.display=e?"":"none"},elem:a}}function U(e){const t=(0,A.addElem)("cell small-12 layer-filter",null,null,"DIV");return t.id="layer-filter_"+e,t.style.display="none",{activateFunc:function(e){t.style.display=e?"":"none"},elem:t}}function u(C,B){B.disabled=!0;function a(){B.checked=!0,B.disabled=!1,_AHPLegends[B.id]&&_AHPLegends[B.id].activateFunc(!0),D[B.id]&&D[B.id].activateFunc(!0)}var l,t=C.exclusiveGroup;if(t&&(_AHPExclusiveGroups[t]&&(i=_AHPExclusiveGroups[t],m(document.getElementById(i))),_AHPExclusiveGroups[t]=B.id),"bbox_query"==(null==(i=C.geoSource)?void 0:i.type))"getLisInBbox"==C.geoSource.function&&(c[B.id]||(c[B.id]=s.removeFilterableLisLayerToMap),(0,s.addFilterableLisLayerToMap)(),a());else{const T=document.getElementById("yearslider");if(_AHPLayers[B.id]){var t=_AHPLayers[B.id];T&&t.isYearLayer&&T.parentElement.classList.remove("invisible"),_map.addLayer(t),a()}else if(C.tileLayer||C.tileLayerYears||"tiles"==(null==(i=C.geoSource)?void 0:i.type)||"wms"==(null==(t=C.geoSource)?void 0:t.type)){"tiles"!=(null==(i=C.geoSource)?void 0:i.type)&&"wms"!=(null==(t=C.geoSource)?void 0:t.type)||(C.tileLayer=C.geoSource.url,C.tileLayerYears=C.geoSource.years||"");var o=function(e){return e.startsWith("https://")||e.startsWith("http://")?e:_region.projectData.slice("LISMap".length)+"/"+e};let e;e=T&&C.tileLayerYears&&C.tileLayerYears[T.value]?o(C.tileLayerYears[T.value]):o(C.tileLayer);var i="tilepane_"+B.id;_map.createPane(i),_map.getPane(i).style.zIndex=450+((null==(t=C.options)?void 0:t.zIndexOffset)||0),_map.getPane(i).style.pointerEvents="none",_map.getPane(i).style["mix-blend-mode"]=(null==(t=C.options)?void 0:t.mixBlendMode)||"normal";let n=null;if((n=("wms"==(null==(t=C.geoSource)?void 0:t.type)?(C.geoSource.wmsParams.crs=L.CRS.EPSG3857,C.geoSource.wmsParams.pane=i,C.geoSource.wmsParams.transparent=!0,C.geoSource.wmsParams.maxZoom=Math.min(19,O.MAX_ZOOM),L.tileLayer.wms(C.geoSource.url,C.geoSource.wmsParams)):L.tileLayer(e,{attribution:"",maxZoom:Math.min(19,O.MAX_ZOOM),pane:i})).addTo(_map)).pointQuery=null==(t=C.geoSource)?void 0:t.pointQuery,n.pointQueryOptions=null==(i=C.geoSource)?void 0:i.pointQueryOptions,C.tileLayerYears){let e={};for(var r in C.tileLayerYears)e[r]=o(C.tileLayerYears[r]);n.tileLayerYears=e,n.isYearLayer=!0,T&&(T.parentElement.classList.remove("invisible"),T.addEventListener("input",e=>{var t=T.value;n.tileLayerYears[t]&&n._url!==n.tileLayerYears[t]&&(n._url=n.tileLayerYears[t],n.redraw())}))}_AHPLayers[B.id]=n,void a()}else if("project_region"==(null==(t=C.geoSource)?void 0:t.type))i=(0,P.showData)([{geometry:_region.geom,properties:{}}],C.options),_AHPLayers[B.id]=i,a();else{let I=function(e,t){if(t instanceof Array)for(var n of t)e=I(e,n);else if(t instanceof Object)for(var a of Object.values(t))e=I(e,a);else e.push(t);return e};l=C,new Promise((n,t)=>{var a;let o="";if("file"==(null==(a=l.geoSource)?void 0:a.type)){let e=new URL(window.location.pathname+"data_layer_file/",window.location.origin),t=new URLSearchParams({filename:l.geoSource.path,extension:null!=(a=l.geoSource.extension)&&a});e.search=t.toString(),o=e.toString()}if("get"==(null==(a=l.geoSource)?void 0:a.type)&&(o=l.geoSource.url,document.getElementById("map-spinner").style.visibility="visible"),l.file){let e=new URL(window.location.pathname+"data_layer_file/",window.location.origin),t=new URLSearchParams({filename:l.file});e.search=t.toString(),o=e.toString()}l.GET&&(o=l.GET,document.getElementById("map-spinner").style.visibility="visible"),o||(document.getElementById("map-spinner").style.visibility="hidden",t("no URL given to fetch")),fetch(o,{credentials:"same-origin",headers:{"Content-Type":"application/json"}}).then(e=>e.json()).then(e=>{e&&e.features&&p(e,l);let t=l.options||{};t.name="",n({data:e,options:t})}).catch(e=>{O.DEBUG&&console.log(l),O.DEBUG&&console.log(e),t(e)}).finally(function(){document.getElementById("map-spinner").style.visibility="hidden"})}).then(e=>{B.disabled=!1;let i=e.data,r=e.options,s=C.field||C.years;var t;if(r.bubbles)t=(0,M.bubbleLayer)(i,Object.assign({paneId:B.id},r.bubbles)),_map.addLayer(t),_AHPLayers[B.id]=t;else{let n=function(){let e=null;if(T.value in C.years)e=T.value;else for(const t of Object.keys(C.years))parseInt(t)<=parseInt(T.value)&&(e=t);return e};if(!r.heat&&r.potential){try{var d=I([],s);let e=0;if("number"==typeof C.min)e=C.min;else for(var c of i.features)for(var u of d)e=(0,A.safeMin)(e,c.properties[u]);let t=0;if("number"==typeof C.max)t=C.max;else for(var m of i.features)for(var p of d)t=(0,A.safeMax)(t,m.properties[p]);var g=1/(t-e);if(s instanceof Array&&r.potential2d)for(var f of i.features)f.properties.potential={},f.properties.potential[s[0]]=(f.properties[s[0]]-e)*g,f.properties.potential[s[1]]=(f.properties[s[1]]-e)*g;else if("string"==typeof s)for(var h of i.features)h.properties.potential={},h.properties.potential[s]=(h.properties[s]-e)*g;else if(s instanceof Object&&r.potential2d)for(var _ of i.features){_.properties.potential={};for(var[y,v]of Object.entries(s)){var b=_.properties[v[0]],x=_.properties[v[1]];_.properties.potential[y]=null!==b&&null!=x?[(b-e)*g,(x-e)*g]:[b||void 0,x||void 0]}}else if(s instanceof Object)for(var E of i.features){E.properties.potential={};for(var[w,L]of Object.entries(s)){var k=E.properties[L];E.properties.potential[w]=null!==k?(k-e)*g:void 0}}T&&s instanceof Object&&(s=n())}catch(e){O.DEBUG&&console.log(e)}let l=chroma.scale(["#4392d3","#5add46","#f8c621"]).nodata("rgba(255, 255, 255, 0.0)").mode("lab"),o=function(e,t){var n=(e||0)+(t||0);let a=0;a=e?e/n:t?1-t/n:null;e=l(a).hex(),t=Math.min(1/(1-Math.log10(n)),1);let o=chroma.scale(["rgba(255, 255, 255, 0.0)",e]).mode("lab");return o(t)};const S=(0,A.colormapFromOptions)(r);i.features.map(e=>{var t,n=e.properties.potential[s];r.potential2d?(t="rgba("+o(n[0],n[1]).rgba()+")",e.properties.color=t):(t="rgba("+S(n).alpha(.7).rgba()+")",e.properties.color=t)}),T&&T.addEventListener("input",e=>{let a=n(),t=_AHPLayers[B.id];t.eachLayer(e=>{var t,n;e&&e.properties&&e.properties.potential&&S&&a in e.properties.potential&&(t=e.properties.potential[a],r.potential2d?(n="rgba("+o(t[0],t[1]).rgba()+")",e.setStyle?(e.setStyle({color:chroma(n).darken(e.options.lineDarken),fillColor:n}
1),e.redraw()):e.getElement&&e.getElement()&&(e.getElement().firstChild.style.backgroundColor=n)):(n="rgba("+S(t).alpha(.7).rgba()+")",e.setStyle?(e.setStyle({color:chroma(n).darken(e.options.lineDarken),fillColor:n}),e.redraw()):e.getElement&&e.getElement()&&(e.getElement().firstChild.style.backgroundColor=n)))})})}r.heat&&!r.heatmax&&(r.heatmax=i.features.reduce((e,t)=>Math.max(e,t.properties[r.heat]),0));let a=(0,P.showData)(i.features,e.options);T&&C.years&&C.years instanceof Object&&(a.isYearLayer=!0,T.parentElement.classList.remove("invisible"),T.addEventListener("input",e=>{let t=n();a.eachLayer(e=>{e.properties&&e.properties.descByYear&&void 0!==e.properties.descByYear[t]&&(e.setTooltipContent(e.properties.descByYear[t]),e.setPopupContent(e.properties.descByYear[t]))})})),_AHPLayers[B.id]=a}a()}).catch(e=>{O.DEBUG&&console.log(e)})}}}function m(e){var t=_AHPLayers[e.id];t&&_map.removeLayer(t),c[e.id]&&c[e.id](),D[e.id]&&D[e.id].activateFunc(!1),e.checked=!1,g(e.id,!1);const n=document.getElementById("yearslider");if(n&&(Object.values(_AHPLayers).reduce((e,t)=>e||t&&t.isYearLayer&&_map.hasLayer(t),!1)?n.parentElement.classList.remove("invisible"):n.parentElement.classList.add("invisible")),_AHPLegends[e.id]){let a=_AHPLegends[e.id].elem;t=Object.entries(_AHPLegends).reduce(function(e,t){var n=t[1].elem,t=document.getElementById(t[0]);return e||n===a&&t.checked},!1);_AHPLegends[e.id].activateFunc(t)}}function p(e,s){return e.features.map(l=>{(0,P.reverseCoordinates)(l.geometry);let i=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;return null==e?gettext("k.A."):"string"==typeof t?pgettext("geojson_feature_property_value",e)+" "+t:""+pgettext("geojson_feature_property_value",e)};var e,n=s.chartFields||s.descFields||s.field;if(n){var a=(e,t)=>{var n,a=s.units&&s.units[e]?gettext(s.units[e]):"";return"<tr><td>"+(n="geojson_feature_property_name",e=e,(n=pgettext(n,e))===e?gettext(e):n)+'</td><td style="word-break: break-word;"><b>'+i(t,a)+"</b></td></tr>"};let t="";if("all"==n)for(var o in l.properties)t+=a(o,l.properties[o]);else if(n instanceof Array)for(let e=0;e<n.length;e++)t+=a(n[e],l.properties[n[e]]);else if(n instanceof Object)for(var r in n)t+=a(r,l.properties[n[r]]);else t+=a(n,l.properties[n]);t?l.properties.desc='<table style="width:100%;">'+t+"</table>":l.properties.desc=""}return s.chart&&(s.chartFields&&(l.properties._chartDesc=l.properties.desc),"line"==s.chart.type?l.properties.desc=(0,d.getLineChartDesc)(l.properties,s.chart):"utilization"==s.chart.type?l.properties.desc=(0,d.getUtilizationLineChart)(l.properties):"pie"==s.chart.type?l.properties.desc=(0,d.getPieChartDesc)(l.properties):"bar"==s.chart.type?l.properties.desc=(0,d.getBarPlotDesc)(l.properties,s.chart):console.log("unsupported chart type: "+s.chart.type)),s.years&&s.years instanceof Object&&(l.properties.descByYear={},Object.entries(s.years).map(function(e){var t,n,a=e[1],e=e[0];let o="";o=a instanceof Array?(n=s.units&&s.units[a[0]]?gettext(s.units[a[0]]):"",t=s.units&&s.units[a[1]]?gettext(s.units[a[1]]):"",'<table style="width:100%;"><tr><td></td><td>'+gettext("Prognose")+"</td></tr><tr><td><b>"+gettext(s.options.potential2d.descX)+" ("+e+")</b></td><td>"+i(l.properties[a[0]],n)+"</td></tr><tr><td><b>"+gettext(s.options.potential2d.descY)+" ("+e+")</b></td><td>"+i(l.properties[a[1]],t)+"</td></tr></table>"):(n=s.units&&s.units[a]?gettext(s.units[a]):"",'<table style="width:100%;"><tr><td><b>Jahr</b></td><td>'+gettext("Prognose")+"</td></tr><tr><td><b>"+e+"</b></td><td>"+i(l.properties[a],n)+"</td></tr></table>"),l.properties.desc?l.properties.descByYear[e]=l.properties.desc+o:l.properties.descByYear[e]=o}),(e=document.getElementById("yearslider"))&&(l.properties.desc=l.properties.descByYear[e.value]),l.properties.years=s.years),l})}function g(e,t){t?_atlasOpenLayers[e]=(0,A.simpleHash)(_atlasLayers[e].title):delete _atlasOpenLayers[e];{t=_atlasLayers[e].cat_id;const n=_atlasCats[t].layers.filter(e=>e in _atlasOpenLayers).length,a=document.getElementById(t).parentElement.querySelector(".accordion-title-count");a.innerText=String(n),a.hidden=0==n}try{window.localStorage.setItem("atlasOpenLayers_"+_region.id,JSON.stringify(_atlasOpenLayers))}catch(e){console.log(e);try{window.localStorage.clear()}catch(e){console.log(e)}}}(n=r=r||{})[n.Stored=0]="Stored",n[n.NotStored=1]="NotStored",n[n.Undef=2]="Undef";var a=null;function f(){var e=_region&&!0===_region.restore_open_layers;if(null===a){let e=new URL(window.location+"");a="restore"===e.searchParams.get("layers"),e.searchParams.delete("layers"),window.history.replaceState(null,"",e+"")}return e||a}var h=void 0;function _(){try{window.localStorage.removeItem("atlasOpenLayers_"+_region.id)}catch(e){console.log(e)}}},{"./bubbles":2,"./chart":3,"./features":8,"./layer":10,"./map":12,"./utils":19}],2:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.bubbleLayer=function(e,t){return o=o||(L.Layer||L.Class).extend({options:a,initialize:function(e,t){this._points=e||[];let n={};for(var a in t||{})void 0!==t[a]&&null!==t[a]&&(n[a]=t[a]);L.setOptions(this,n),this.options.pane="bubblePane_"+this.options.paneId},setPoints:function(e){return this._points=e,this.redraw()},setOptions:function(e){return L.setOptions(this,e),this._canvas&&(this._canvas.style.opacity=""+this.options.opacity),this.redraw()},redraw:function(){return this._canvas&&!this._frame&&this._map&&!this._map._animating&&(this._frame=L.Util.requestAnimFrame
1(this._redraw,this)),this},onAdd:function(e){let t=(this._map=e).getPane(this.options.pane);t||((t=e.createPane(this.options.pane)).style.zIndex=300,t.style.pointerEvents="none"),t.style.mixBlendMode="multiply",this._canvas||this._initCanvas(),t.appendChild(this._canvas),e.on("moveend",this._reset,this),e.options.zoomAnimation&&L.Browser.any3d&&e.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(e){this.getPane().removeChild(this._canvas),e.off("moveend",this._reset,this),e.options.zoomAnimation&&e.off("zoomanim",this._animateZoom,this)},addTo:function(e){return e.addLayer(this),this},_initCanvas:function(){let e=this._canvas=L.DomUtil.create("canvas","leaflet-bubble-layer leaflet-layer");var t=L.DomUtil.testProp(["transformOrigin","WebkitTransformOrigin","msTransformOrigin"]),t=(e.style[t]="50% 50%",e.style.opacity=""+this.options.opacity,this._map.getSize()),t=(e.width=t.x,e.height=t.y,this._map.options.zoomAnimation&&L.Browser.any3d);L.DomUtil.addClass(e,"leaflet-zoom-"+(t?"animated":"hide"))},_radius:function(e){var t=this.options;let n=0;return 0<e&&0<t.valueRef&&(n=Math.sqrt(Math.min(e/t.valueRef,1))),t.baseRadius+t.spreadRadius*n},_reset:function(){L.DomUtil.setPosition(this._canvas,this._map.containerPointToLayerPoint([0,0]));var e=this._map.getSize();this._canvas.width!==e.x&&(this._canvas.width=e.x),this._canvas.height!==e.y&&(this._canvas.height=e.y),this._redraw()},_redraw:function(){if(this._frame=null,this._map&&this._canvas){var n=this._map.getSize();let t=this._canvas.getContext("2d");t.clearRect(0,0,n.x,n.y),t.fillStyle=this.options.color,t.globalAlpha=1;for(let e=0;e<this._points.length;e++){var a=this._points[e],o=this._radius(Number(a.value)),a=this._map.latLngToContainerPoint([a.lat,a.lng]);a.x+o<0||a.y+o<0||a.x-o>n.x||a.y-o>n.y||(t.beginPath(),t.arc(a.x,a.y,o,0,2*Math.PI),t.fill())}}},_animateZoom:function(e){var t=this._map.getZoomScale(e.zoom),e=this._map._getCenterOffset(e.center)._multiplyBy(-t).subtract(this._map._getMapPanePos());L.DomUtil.setTransform?L.DomUtil.setTransform(this._canvas,e,t):this._canvas.style[L.DomUtil.TRANSFORM]=L.DomUtil.getTranslateString(e)+" scale("+t+")"}}),new o(e,t)};const a={baseRadius:4,spreadRadius:30,valueRef:1e3,opacity:.35,color:"#4392d3",paneId:"default"};let o=null},{}],3:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.getBarPlotDesc=function(a,o){let n=[],l=[];for(var[e,t]of Object.entries(a))"string"==typeof t&&isNaN(Number(t))||(t&&"object"==typeof t?l.push(Number(t[o.value||"value"])):"number"==typeof Number(t)&&l.push(Number(t)),n.push(e));function i(e){const t=a[n[e.dataIndex]];return t?o.tooltip.map(e=>t[e.value]+" "+(e.unit||"")):""}let r=o.barOpacity||"FF",s=o.color||"#07679F",d=o.color||"#07679F"+r;o.hasOwnProperty("color")&&"object"==typeof o.color&&(s=n.map(e=>{for(var[t,n]of Object.entries(o.color.highlights))if(1==a[e][t])return n;return o.color.default||d}),d=s.map(e=>e+r));function c(e){var t;return null!=(t=null==(t=o.axes)?void 0:t.y)&&t.tickCallback&&"twoDecimals"==o.axes.y.tickCallback?e.toFixed(2):e}return function(){const e=document.createElement("div");var t=document.createElement("canvas");return e.appendChild(t),new Chart(t,{type:"bar",data:{labels:n,datasets:[{data:l,fill:!0}]},options:{borderColor:s,backgroundColor:d,borderWidth:o.borderWidth||0,animation:o.animation||!1,scales:{x:{ticks:{display:!1}},y:{beginAtZero:!0,title:{display:!(null==(t=null==(t=o.axes)?void 0:t.y)||!t.label),text:(null==(t=null==(t=o.axes)?void 0:t.y)?void 0:t.label)||"â¬",align:"end"},ticks:{callback:c}}},plugins:{legend:{display:!1},tooltip:{padding:12,boxPadding:12,usePointStyle:!1,displayColors:!1,callbacks:{label:i,title:e=>e[0].label.split("__")}}}}}),e}},n.getLineChartDesc=function(a,o){let t=[];if(o.seriesKey)t=[...a[o.seriesKey]];else for(let e=0;e<o.seriesKeys.length;e++)t.push(a[o.seriesKeys[e]]);let l={series:[t],labels:o.labels||[]};if(o.convolution){var i=l.series[0],r=o.convolution;let e=[];for(let n=0;n<i.length;n++){let t=0;for(let e=0;e<r;e++){var s=n+e-Math.floor(r/2);s=Math.min(i.length-1,Math.max(0,s)),t+=i[s]}e.push(t/r)}l.series.push(e)}let d={line:"ct-line-green",area:"ct-area-green"};o.convolution&&(d={line:"ct-line-map",area:"ct-area-green"});let c=o.everyXLabel||1;return function(){let t=document.createElement("div"),e=document.createElement("div");if(e.style.width=(o.width||250)+"px",e.style.height=(o.height||250)+"px",a._chartDe
1sc&&(t.innerHTML=a._chartDesc),o.title){let e=document.createElement("h4");e.style.margin="1rem 0 0.5rem 2rem",e.innerText=o.title,t.appendChild(e)}t.appendChild(e);let n={showPoint:!1,chartPadding:{left:20},axisX:{showGrid:!0,labelInterpolationFnc:function(e,t){return t%c==0?e:null},axisTitle:o.axisXTitle||""},axisY:{showGrid:!0,low:o.axisYLow,high:o.axisYHigh||void 0},classNames:d,plugins:[Chartist.plugins.ctAxisTitle({axisX:{axisTitle:o.axisXTitle||"",offset:{x:0,y:30}},axisY:{axisTitle:o.axisYTitle||"",offset:{x:0,y:10},flipTitle:!0}})]};return o.options&&(n=Object.assign(n,o.options)),new Chartist.Line(e,l,n),t}},n.getPieChartDesc=function(n){let a={labels:[],series:[]},t=[];for(var o of Object.entries(n))if(isNaN(Number(o[1]))){let e={};e[o[0]]=o[1],t.push(e)}else a.labels.push(o[0]),a.series.push({meta:o[0]+":",value:Number(o[1])});let l=a.series.reduce((e,t)=>e+t,0);return function(){let e=document.createElement("div"),t=document.createElement("div");return t.style.width=(n.width||250)+"px",t.style.height=(n.height||250)+"px",n._chartDesc&&(e.innerHTML=n._chartDesc),e.appendChild(t),l&&new Chartist.Pie(t,a,{ignoreEmptyValues:!0,plugins:[Chartist.plugins.tooltip({anchorToPoint:!1,appendToBody:!0,class:"ct-tooltip"})],width:"250px",height:"250px"}),e}},n.getUtilizationLineChart=function(e){const t=document.createElement("div"),n=document.createElement("canvas"),a=(t.appendChild(n),["#07679F","#DC2F3C"]);return e={labels:e.labels,datasets:e.datasets.map((e,t)=>Object.assign(Object.assign({},e),{borderColor:a[t],yAxisID:"y"+t}))},new Chart(n,{type:"line",data:e,options:{responsive:!0,interaction:{mode:"index"},stacked:!1,elements:{point:{hitRadius:10}},plugins:{legend:{position:"top"},title:{display:!1},tooltip:{boxPadding:8,callbacks:{label:e=>new Intl.NumberFormat(_language_code).format(e.parsed.y)}}},scales:{y0:{type:"linear",position:"left",beginAtZero:!0,ticks:{color:a[0],callback:e=>new Intl.NumberFormat(_language_code).format(e)}},y1:{type:"linear",position:"right",beginAtZero:!0,grid:{drawOnChartArea:!1},ticks:{color:a[1],callback:e=>new Intl.NumberFormat(_language_code).format(e)}}}}}),t}},{}],4:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.handleChatRefresh=function(){let e=document.getElementById("chat_refresh_btn"),t=document.getElementById("chatform"),n=new FormData;e&&t&&(n.append("region",t.chat_region.value),n.append("csrfmiddlewaretoken",t.csrfmiddlewaretoken.value),n.append("message",""),e.disabled=!0,(0,C.fetchPost)("chat/",n,3e4).then(e=>e.json()).then(e=>{_chat_messages=e,o(),t.scrollIntoView()}).catch(e=>{a.DEBUG&&console.log(e)}).finally(()=>{e.disabled=!1}))},n.handleChatSubmit=function(){let e=document.getElementById("chat_submit_btn"),t=document.getElementById("chatarea");t&&e&&(e.disabled=!0,(0,C.fetchPost)("chat/","chatform",12e4).then(e=>e.json()).then(e=>{_chat_messages=e,o();let t=document.getElementById("chatform");t.scrollIntoView()}).catch(e=>{a.DEBUG&&console.log(e)}).finally(()=>{t.value="",e.disabled=!1}))},n.renderChat=l,n.renderSidebarChat=o;var a=e("./map"),I=e("./lis_modal"),C=e("./utils");function o(){_region.allow_sidebar_chat&&l(_chat_messages,"chatboxes",e=>!e.msgtype.startsWith("Comment"))}function B(e,t,l,i,n,a){var o=e.msgtype,t=t[e.user];const r=t?t.first_name+" "+t.last_name:gettext("Eine NutzerIn");var s=_region.name||!1;let d;const c=n[e.LIS];let u;var m=e.num_lis;let p;const g=a[e.fleet];let f;s&&((d=document.createElement("B")).textContent=s),c?((u=document.createElement("A")).textContent=c.name,u.classList.add("chat-message-link"),u.addEventListener("click",e=>((0,I.highlightCCP)(c.id),!1))):(u=document.createElement("SPAN")).textContent=gettext("einen Ladestandort"),m&&((p=document.createElement("span")).textContent=m,p.style.fontWeight="bold"),g?((f=document.createElement("A")).textContent=g.name,f.classList.add("chat-message-link"),f.addEventListener("click",e=>((0,I.highlightFleetLocation)(g.id),!1))):(f=document.createElement("SPAN")).textContent=gettext("einen Flottenstandort");function h(e,t,n){let a=(0,C.addElem)("chat-event","",l,"DIV"),o=(n&&a.classList.add("chat-event-"+n),(0,C.addElem)("chat-user",r,a,"SPAN"),e=(n=e.split("{elem}"))[0],"");2==n.length&&(o=n[1]),e&&(0,C.addElem)(""," "+e,a,"SPAN"),t&&a.appendChild(t),o&&(0,C.addElem)("",o,a,"SPAN"),(0,C.addElem)("chat-time"," - "+i,a,"SPAN"),a}
1switch(o){case"Comment_created":h(gettext("hat einen Kommentar erstellt"),null,o);break;case"Comment_removed":h(gettext("hat einen Kommentar entfernt"),null,o);break;case"Project_created":s?h(gettext("hat das Projekt {elem} erstellt"),d,o):h(gettext("hat dieses Projekt erstellt"),null,o);break;case"Evaluation_started":h(gettext("hat eine Bewertung gestartet"),null,o);break;case"LIS_created":h(gettext("hat {elem} erstellt"),u,o);break;case"LIS_checklist":h(gettext("hat die Checkliste für {elem} verändert"),u,o);break;case"LIS_desc":h(gettext("hat {elem} kommentiert"),u,o);break;case"LIS_description":h(gettext("hat die Beschreibung für {elem} bearbeitet"),u,o);break;case"LIS_address":h(gettext("hat die Adresse von {elem} bearbeitet"),u,o);break;case"LIS_address_rev_geocode":h(gettext("hat die Adresse von {elem} automatisch bestimmt"),u,o);break;case"LIS_file_added":h(gettext("hat eine Datei für {elem} hochgeladen"),u,o);break;case"LIS_file_removed":h(gettext("hat eine Datei von {elem} entfernt"),u,o);break;case"LIS_imported":1==m?h(gettext("hat einen Ladestandort importiert"),null,o):h(gettext("hat {elem} Ladestandorte importiert"),p,o);break;case"LIS_categorized":1==m?h(gettext("hat einen Standort automatisch kategorisiert"),null,o):h(gettext("hat {elem} Standorte automatisch kategorisiert"),p,o);break;case"LIS_message_created":h(gettext("hat eine Nachricht für {elem} erstellt"),u,o);break;case"LIS_moved":h(gettext("hat {elem} verschoben"),u,o);break;case"LIS_public_type":h(gettext("hat die Zugänglichkeit von {elem} bearbeitet"),u,o);break;case"LIS_abc":case"LIS_abc_manual":h(gettext("hat die Kategorie von {elem} geändert"),u,o);break;case"LIS_status":h(gettext("hat den Status von {elem} bearbeitet"),u,o);break;case"LIS_power_table":h(gettext("hat {elem} erweitert"),u,o);break;case"LIS_grid_connector_power":h(gettext("hat die Ladepunkte von {elem} bearbeitet"),u,o);break;case"LIS_landlord":h(gettext("hat den Vermieter von {elem} bearbeitet"),u,o);break;case"LIS_anchor_tenant":h(gettext("hat den Ankermieter von {elem} bearbeitet"),u,o);break;case"LIS_funding_comment":h(gettext("hat den Kommentar zur Förderung von {elem} bearbeitet"),u,o);break;case"LIS_cooperation_partner":h(gettext("hat den Kooperationspartner von {elem} bearbeitet"),u,o);break;case"LIS_rejection_reason":h(gettext("hat den Ablehnungsgrund von {elem} bearbeitet"),u,o);break;case"LIS_responsible_user":h(gettext("hat die verantwortliche Person von {elem} geändert"),u,o);break;case"LIS_removed":m<=1?h(gettext("hat {elem} entfernt"),u,o):h(gettext("hat {elem} Ladestandorte entfernt"),p,o);break;case"LIS_name":case"LIS_renamed":h(gettext("hat {elem} umbenannt"),u,o);break;case"LIS_search_created":h(gettext("hat einen Suchraum für {elem} bestimmt"),u,o);break;case"LIS_search_removed":h(gettext("hat einen Suchraum für {elem} entfernt"),u,o);break;case"User_invited":h(gettext("hat einen neuen User eingeladen"),null,o);break;case"User_removed":h(gettext("hat einen User ausgeladen"),null,o);break;case"fleet_created":h(gettext("hat {elem} erstellt"),f,o);break;case"fleet_removed":h(gettext("hat {elem} entfernt"),f,o);break;case"fleet_moved":h(gettext("hat {elem} verschoben"),f,o);break;case"fleet_vehicle_group":case"fleet_contact":h(gettext("hat {elem} editiert"),f,o);break;default:console.log("Unexpected message type",o)}}function l(r){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"chatboxes",t=2<arguments.length?arguments[2]:void 0;let a=3<arguments.length&&void 0!==arguments[3]?arguments[3]:"region",s=document.getElementById(e);if(s&&(s.innerHTML="",r)){var d=r.users;let l=r.messages;t&&(l=l.filter(t));const w={};for(let e=0;e<_markers.length;e++)w[_markers[e].properties.id]=_markers[e].properties;const L={};if(_fleetLayer)for(const n of _fleetLayer.getLayers())L[n.properties.id]=n.properties;var c=function(e){return e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};let e="",i=0;for(i=0;i<l.length;i++){let o=document.createElement("P"),n=new Date(1e3*l[i].timestamp);var u=n.toDateString();u!==e&&(e=u,(0,C.addElem)("chat-date",n.toLocaleDateString(_language_code),o,"DIV"));let t=document.createElement("SPAN");if(t.classList.add("chat-header"),l[i].user){var m=d[l[i].user];if(m){let e=(0,C.addElem)("chat-user",m.first_name+" "+m.last_name,t,"SPAN");m.is_self&&e.classList.add("chat-user-is-self"),t.appendChild(document.createTextNode(" (")),(0,C.addElem)("chat-user-company",m.company,t,"SPAN"),t.appendChild(document.createTextNode(") - "))}}(0,C.addElem)("chat-time",c(n),t,"SPAN");var p=l[i].user,g=l[i].LIS,f=l[i].fleet,h=e=>"region"===a&&e.message&&"LIS_message_created"!==e.msgtype||"lis"===a&&e.message;if(h(l[i]))if(o.appendChild(t),l[i].LIS){let t=l[i].LIS;m=(0,C.addElem)("chat-message","",o,"DIV");let e=(0,C.addElem)("chat-message-link",l[i].message,m,"A");e.addEventListener("click",e=>((0,I.highlightCCP)(t),!1))}else(0,C.addElem)("chat-message",l[i].message,o,"DIV");else{let t=0;for(let e=i;e<l.length&&(g||f);e++){var _=l[e].user,y=l[e].LIS,v=l[e].fleet,b=l[e].msgtype;if(n.toDateString()!=u)break;if(h(l[e])||"LIS_created"===b||"LIS_removed"===b||"fleet_created"===b||"fleet_removed"===b)break;
1if(_!=p||y!=g||v!=f)break;t++}if(t<=1)B(l[i],r.users,o,c(n),w,L);else{let a=document.createElement("div");a.classList.add("chat-event-block"),a.style.maxHeight="0";for(let e=i;e<i+t;e++){var x=new Date(1e3*l[e].timestamp);B(l[e],r.users,a,c(x),w,L)}{const k=w[g],S=L[f];let n;k?((n=document.createElement("A")).textContent=k.name,n.classList.add("chat-message-link"),n.addEventListener("click",e=>((0,I.highlightCCP)(k.id),!1))):S?((n=document.createElement("A")).textContent=S.name,n.classList.add("chat-message-link"),n.addEventListener("click",e=>((0,I.highlightFleetLocation)(S.id),!1))):(n=document.createElement("SPAN")).textContent=gettext("einen Standort");{let e=(0,C.addElem)("chat-event","",o,"DIV");e.classList.add("chat-event-block-header");var E=d[p];E&&(E=E.first_name+" "+E.last_name,(0,C.addElem)("chat-user",E,e,"SPAN"),(0,C.addElem)("",gettext(" hat "),e,"SPAN")),e.appendChild(n),(0,C.addElem)("",gettext(" editiert"),e,"SPAN"),(0,C.addElem)("chat-time"," - "+c(x),e,"SPAN");let t=document.createElement("SPAN");t.classList.add("chat-event-block-toggle","block-hidden"),t.appendChild(document.createElement("i")),e.appendChild(t),t.addEventListener("click",e=>{t.classList.contains("block-hidden")?(t.classList.remove("block-hidden"),a.style.maxHeight=a.scrollHeight+"px"):(t.classList.add("block-hidden"),a.style.maxHeight="0")})}}o.appendChild(a),1<t&&(i+=t-1)}}s.appendChild(o)}}}},{"./lis_modal":11,"./map":12,"./utils":19}],5:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.createComment=function(e){let t=document.getElementById("comment_form");t.comment_id.value="",t.comment_msg.value=(0,i.geoJSONdumps)(e.latlng),(0,i.fetchPost)("comment/","comment_form",1e4).then(e=>e.json()).then(e=>{var t;e.comment&&(_region.comment=e.comment,(0,o.showResult)(e),t=_commentLayer.getLayers().length,s(_commentLayer.getLayers()[t-1])),e.message&&alert(e.message),e.error&&alert(e.error)}).catch(e=>{a.DEBUG&&console.log(e)})},n.deleteComment=function(t){let e=document.getElementById("comment_form");e.comment_id.value=-t.properties.id,(0,i.fetchPost)("comment/","comment_form",1e4).then(e=>{t.remove()}).catch(e=>{a.DEBUG&&console.log(e)})},n.handleCommentRefresh=function(){let e=document.getElementById("comment_refresh_btn"),t=document.getElementById("comment_form");var n;e&&t&&(n=t.comment_msg.value,t.comment_msg.value="",e.disabled=!0,(0,i.fetchPost)("comment/","comment_form",5e3).then(e=>e.json()).then(e=>{e.comment&&(_region.comment=e.comment),e.messages&&(_chat_messages=e.messages),r(document.getElementById("comment_id").value)}).catch(e=>{a.DEBUG&&console.log(e)}).finally(()=>{e.disabled=!1}),t.comment_msg.value=n)},n.handleCommentSubmit=function(){(0,i.fetchPost)("comment/","comment_form",5e3).then(e=>e.json()).then(e=>{e.comment&&(_region.comment=e.comment),e.messages&&(_chat_messages=e.messages),r(document.getElementById("comment_id").value)}).catch(e=>{a.DEBUG&&console.log(e)}).finally(()=>{document.getElementById("comment_msg").value=""})},n.updateComment=s;var a=e("./map"),o=e("./features"),l=e("./chat"),i=e("./utils");function r(t){(0,l.renderChat)(_chat_messages,"comment_chat",e=>e.comment==t)}function s(t){if(t){let e=document.getElementById("comment_form");e.comment_id.value=t.properties.id,e.comment_msg.value="",r(t.properties.id),$("#comment_modal").foundation("open"),e.comment_msg.focus()}}},{"./chat":4,"./features":8,"./map":12,"./utils":19}],6:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.add_to_data_sidebar=function(e){const t=document.getElementById("data-sidebar"),n=null===t||void 0===t?void 0:t.querySelector(".content");if(!t||!n)return null;const a=document.createElement("div"),o=Math.random().toString(36).substring(2,6);a.classList.add("id-"+o),a.classList.add("content-elem-container"),a.appendChild(e),0<n.querySelectorAll(".content-elem-container").length&&a.classList.add("transparent");return function(e){if(!l){l=!0;const t=new MutationObserver(e=>{for(const n of e)for(const a of Array.from(n.removedNodes))if(a instanceof HTMLElement){const o=Array.from(a.classList).find(e=>e.startsWith("id-"));if(o){var t=o.substring(3);const l=i.get(t);l&&(i.delete(t),l())}}});t.observe(e,{childList:!0})}}(n),n.prepend(a),n.scrollTop=0,s(),requestAnimationFrame(()=>{a.classList.remove("transparent")}),o},n.close_data_sidebar=function(){const e=document.getElementById("data-sidebar");e&&(e.classList.remove("visible"),e.querySelectorAll(".content-elem-container").forEach(e
1=>{m(e)}));(0,c.removeLocationHighlight)()},n.create_data_sidebar_element=function(e,t){let n=document.createElement("div");const a=e.geometry.coordinates;"Point"==(null==(o=null==e?void 0:e.geometry)?void 0:o.type)&&(n.onpointerenter=()=>{(0,c.highlightLocation)(a,5e3)},n.onpointerleave=()=>{(0,c.removeLocationHighlight)(3e3)});{const s=(0,c.addElem)("header","",n,"div");var o=(0,c.addElem)("title-icon-container","",s,"div"),o=((0,c.addElem)("icon icon--medium ion-md-pin","",o,"i"),(0,c.addElem)("title-container","",o,"div"));(0,c.addElem)("title",e.properties.title||"",o,"div"),(0,c.addElem)("subtitle",e.properties.subtitle||"",o,"div");const d=(0,c.addElem)("close","",s,"div");(0,c.addElem)("icon icon--medium ion-md-close","",d,"i"),d.onclick=e=>{null!==n&&void 0!==n&&n.parentElement&&(m(n.parentElement),e.stopPropagation())},"Point"==(null==(o=null==e?void 0:e.geometry)?void 0:o.type)&&(s.onclick=()=>{_map.setView(L.latLng(a[1],a[0])),(0,c.highlightLocation)(a,3e3)})}for(var[l,i]of Object.entries(t.properties)){l=e.properties[l];if(l)if(Array.isArray(l))for(var r of l)n.appendChild(u(r,i));else n.appendChild(u(l,i))}return n},n.create_data_sidebar_element_section=u,n.hide_data_sidebar=a,n.on_remove_from_data_sidebar=function(e,t){i.set(e,t)},n.remove_from_data_sidebar=m,n.show_data_sidebar=s;var r=e("./AHP"),c=e("./utils");const i=new Map;let l=!1;function u(e,t){const n=(0,c.addElem)("subsection",null,null,"div"),a=(0,c.addElem)("header",null,n,"div");var o=(0,c.addElem)("title-icon-container","",a,"div");(0,c.addElem)("icon icon--small ion-"+t.icon,"",o,"i"),(0,c.addElem)("title",e.title,o,"div");let l=null;if(t.custom_renderer_id)l=function(t,n){if("utilization_scenario_aggregates"!=n)return null;{n=t;const a=document.createElement("div");a.appendChild(d(n,"session_count_avg_per_day_cp",{max:20})),a.appendChild(d(n,"utilization_avg_per_day_cp",{max:50}));let e=Math.max(...Object.values(n.scenarios).map(e=>Object.values(e.consumption_avg_per_year)).flat().map(Number));return e=1e5<e?1e5*(Math.ceil(e/1e5)+1):4e4<e?1e4*(Math.ceil(e/1e4)+1):5e4,a.appendChild(d(n,"consumption_avg_per_year",{max:e})),a}}(e,t.custom_renderer_id);else{o=(0,r.displayAHPEntry)({features:[{properties:e.data}]},t||{field:"all"});if("string"==typeof(l="function"==typeof(l=o[0].properties.desc)?l():l)&&l){const i=document.createElement("div");i.innerHTML=l,l=i}}return l.classList.add("body"),n.appendChild(l),t.collapsible&&(n.classList.add("collapsible"),(0,c.addElem)("icon icon--small ion-ios-arrow-up","",a,"i"),(0,c.addElem)("icon icon--small ion-ios-arrow-down","",a,"i"),a.addEventListener("click",()=>{n.classList.toggle("expanded")?l.style.height=l.scrollHeight+"px":l.style.height=null})),n}function s(){var e;const t=document.getElementById("data-sidebar");t&&!t.classList.contains("expanded")&&(null!==t&&void 0!==t&&t.classList.add("expanded"),_map&&setTimeout(e=>_map.invalidateSize({pan:!1}),500)),null!=(e=document.querySelector(".leaflet-control-data-sidebar"))&&e.classList.add("hidden")}function a(){var e;const t=document.getElementById("data-sidebar");t&&t.classList.contains("expanded")&&(null!==t&&void 0!==t&&t.classList.remove("expanded"),_map&&setTimeout(e=>_map.invalidateSize({pan:!1}),500)),0!=(null===t||void 0===t?void 0:t.querySelectorAll(".content-elem-container").length)&&null!=(e=document.querySelector(".leaflet-control-data-sidebar"))&&e.classList.remove("hidden"),(0,c.removeLocationHighlight)()}function m(e){e.remove();const t=document.getElementById("data-sidebar");t&&0==t.querySelectorAll(".content-elem-container").length&&a()}function d(a,o,e){let t=document.createElement("div");const n=(0,c.addElem)("chart-header","",t,"div");var l=a.meta[o].title+(a.meta[o].unit?" ["+a.meta[o].unit+"]":""),l=((0,c.addElem)("title",l,n,"span"),(0,c.create_custom_tooltip)(a.meta[o].info));l&&n.appendChild(l);let i=Object.keys(a.scenarios);var l=document.createElement("canvas"),r=(t.appendChild(l),1===i.length?5.5:2===i.length?4:3.5);return new Chart(l,{type:"bar",data:{labels:i,datasets:[{label:gettext("Standort"),data:i.map(e=>a.scenarios[e][o].location),yAxisID:"y2",backgroundColor:"#07679F",barPercentage:.4,datalabels:{display:!0,anchor:"end",align:"right",offset:6,formatter:e=>e<1e5?new Intl.NumberFormat(_language_code).format(e):Math.round(e/1e3)+"k",color:"#26383D",font:{weight:"bold"}}},{label:gettext("â Umgebung"),data:i.map(e=>a.scenarios[e][o].environment),backgroundColor:"#CBD6DC",barPercentage:1,datalabels:{display:!1}}]},options:{indexAxis:"y",barPercentage:1,categoryPercentage:.9,as
1pectRatio:r,interaction:{mode:"index",axis:"y",intersect:!1},scales:{x:{beginAtZero:!0,max:e.max||null,ticks:{callback:e=>1e4<=e?Math.round(e/1e3)+"k":e}},y:{grid:{display:!1},ticks:{padding:2,backdropPadding:1}},y2:{display:!1}},plugins:{tooltip:{displayColors:!0,boxPadding:8,callbacks:{label:e=>{var t=new Intl.NumberFormat(_language_code).format(e.parsed.x),n=a.meta[o].unit||"";return e.dataset.label+": "+t+String.fromCharCode(8239)+n}}},legend:{display:!1},datalabels:{display:!1}}},plugins:[ChartDataLabels]}),t}},{"./AHP":1,"./utils":19}],7:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.renderDebugInfo=function(){let e=document.getElementById("debug_info_textarea");e&&(e.value=JSON.stringify(_debug_info,null,4));const t=document.getElementById("toggle-location-fingerprint-visibility-btn");t&&((0,a.updateFingerprintUIVisibility)(),t.addEventListener("click",a.toggleFingerprintUIVisibility))};var a=e("./map")},{"./map":12}],8:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.createExistingLISIcon=M,n.exportLISasCSV=function(){let l=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"\t",t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"de-DE";if(_markers.length){let n=[];{let e=["name","latitude","longitude","power","access_car_rating","access_truck_rating","area_rating","competition_rating"];for(var[a,i]of Object.entries(_markers[0].properties.evaluation)){let t=[],n=[];for(let e=0;e<i.length;e++){var r=i[e];t.push(a+"kW_"+r.year+"_power"),n.push(a+"kW_"+r.year+"_count")}e=e.concat(t,n)}e.push("description"),n.push(e.join(l))}let o=function(e){return e.toLocaleString(t,{maximumSignificantDigits:10,useGrouping:!1})};_markers=_markers.sort(function(e,t){return e.properties.id-t.properties.id});for(let t=0;t<_markers.length;t++){let e=_markers[t],a=[(0,c.escapeCsvStringUgly)(e.properties.name),o(e.getLatLng().lat),o(e.getLatLng().lng),(0,c.escapeCsvStringUgly)(e.properties.power_table.map(e=>e.count+"x"+o(e.power)+"kW(x"+o(e.demand_factor)+")").join(" ")),o(e.properties.rating.access_car),o(e.properties.rating.access_truck),o(e.properties.rating.area),o(e.properties.rating.competition)];for(var s of Object.values(e.properties.evaluation)){let t=[],n=[];for(let e=0;e<s.length;e++){var d=s[e];t.push(o(d.power)),n.push(o(d.count))}a=a.concat(t,n)}a.push((0,c.escapeCsvStringUgly)(e.properties.description)),n.push(a.join(l))}let e=gettext("Ladestandorte_Export");_region&&_region.name&&(e+="_"+(0,c.stringToFileName)(_region.name)),e+=".csv",m(n,e,"text/csv")}else alert(gettext("Keine Ladestandorte vorhanden."))},n.exportLISasJSON=function(){let t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null;if(_markers.length){let n=[];_markers=_markers.sort(function(e,t){return e.properties.id-t.properties.id});const i=t?new Set(t.map(String)):null;var a=i?_markers.filter(e=>i.has(String(e.properties.id))):_markers;for(let t=0;t<a.length;t++){let e=a[t];var o={type:"Feature",properties:{id:e.properties.id,type:e.properties.public_type,name:e.properties.name,description:e.properties.description,files:e.properties.images.map(e=>new URL(e.url,window.location.href)),power_table:e.properties.power_table,checklist:e.properties.checklist,rating:e.properties.rating,search:e.properties.search,evaluation:e.properties.evaluation},geometry:{type:"Point",coordinates:[e.getLatLng().lng,e.getLatLng().lat]}};n.push(o)}var l={type:"FeatureCollection",name:_region.name,url:window.location.href,timestamp:Date.now(),crs:{type:"name",properties:{name:"urn:ogc:def:crs:OGC:1.3:CRS84"}},features:n},l=JSON.stringify(l,null,2);let e=gettext("Ladestandorte_Export");_region&&_region.name&&(e+="_"+(0,c.stringToFileName)(_region.name)),e+=".geojson",m([l],e,"text/json"),(0,c.request)({path:"../action/export-lis-json/"+_region.id,method:"PUT"})}else alert(gettext("Keine Ladestandorte vorhanden."))},n.exportPotential=function(){var e=(0,o.getOverlayLayer)("fast_finder_potential");if(!e||!e._latlngs)return alert(gettext("Kein Potential zum Exportieren vorhanden.\nStarte dafür vorher eine Berechnung!")),null;let t=e._latlngs,n={type:"FeatureCollection",features:[]};for(let e=0;e<t.length;e++){var a={type:"Feature",geometry:{type:"Point",coordinates:[t[e][1],t[e][0]]},properties:{potential:t[e][2]}};n.features.push(a)}e=JSON.stringify(n,null,2);m([e],"export_potential.geojson","text/json")},n.exportTextBlob=m,n.obj2FeatureArray=l,n.reverseCoordinates=a,n.showData=i,n.showResult=function(t){var e=t.params||t.settings||{};t.customLIS&&(_markerLayer=i(l(t.customLIS),{name:gettext("Meine Ladestandorte"),overlayId:"custom_charging_locations",fit:!1,color:w.COLORS.POI_custom,clustered:!0,clusterClass:"marker-cluster-poi-custom",clusterPolyColor:w.COLORS.POI_custom,disableClusteringAtZoom:e.disableClusteringAtZoom,customCP:!0,rejectDoubles:"id",divIconFunc:"custom_cp",markerGroup:_markerLayer,icon:{file:_mapIconPaths.CCP}}));t.fleetLocation&&(_fleetLayer=i(l(t.fleetLocation),{name:gettext("Meine Flottenstandorte"),overlayId:"fleet_locations",fit:!1,color:w.COLORS.POI_custom,clustered:!0,clusterClass:"marker-cluster-fleet",clusterPolyColor:w.COLORS.POI_custom,disableClusteringAtZoom:e.disableClusteringAtZoom,rejectDoubles:"id",divIconFunc:"fleet_location",markerGroup:_fleetLayer,icon:{file:_mapIconPaths.CCP}}));t.comment&&(_commentLayer=i(l(t.comment),{name:gettext("Meine Kommentare"),overlayId:"comments",fit:!1,clustered:!1,comment:!0,markerGroup:_commentLayer,rejectDoubles:"id",icon:{file:_mapIconPaths.dot,height:20,width:20}}));t.POI_demand&&0<t.POI_demand.length&&i(l(t.POI_demand),{name:gettext("Fast Finder Suchräume"),overlayId:"fast_finder_search_areas",fit:!1,color:w.COLORS.proposed,clustered:!1,clusterClass:"marker-cluster-poi-demand",clusterPolyColor:w.COLORS.proposed,customCP:!0,radius:e.radius,icon:{file:_mapIconPaths.search_area,height:24,width:24}});t.recommend&&0<t.recommend.length&&i(l(t.recommend),{name:gettext("Fast Finder Standortvorschläge"),overlayId:"fast_finder_recommended_locations",fit:!1,color:w.COLORS.proposed,clustered:!1,clusterClass:"marker-cluster-poi-demand",clusterPolyColor:w.COLORS.proposed,customCP:!0,icon:[_mapIconPaths.normal_proposed,_mapIconPaths.shadow]});t.potential&&i(l(t.potential),{name:gettext("Fast Finder Potenzial"),overlayId:"fast_finder_potential",heat:"int",radius:e.radius});t.LIS&&i(l(t.LIS),{name:gettext("Bestands-LIS"),overlayId:"existing_lis",fit:!1,color:w.COLORS.LIS,clustered:!0,clusterClass:"marker-cluster-lis",clusterPolyColor:w.COLORS.LIS,rejectDoubles:"id",rejectDoubleRadius:"id",icon:[_mapIconPaths.ex_LIS,_mapIconPaths.shadow]});t.params&&t.params.restricted&&0<t.params.restricted.length&&i(l(t.params.restricted),{name:gettext("Verbotene Zonen"),overlayId:"restricted_zones",fit:!1,color:chroma(w.COLORS.restricted).alpha(.8),fillColor:chroma(w.COLORS.restricted).alpha(.4)});if(t.customForbiddenZones&&0<t.customForbiddenZones.length){let e=i(l(t.customForbiddenZones),{name:gettext("Eigene verbotene Zonen"),overlayId:"custom_restricted_zones",fit:!1,color:chroma(w.COLORS.restricted).alpha(.8),fillColor:chroma(w.COLORS.restricted).alpha(.4)});e.eachLayer(e=>(0,w.addCustomRestrictPoly)(e))}t.evaluation&&!function(n){if(n.geometry&&n.properties){var a,o=(0,c.addElem)("eval_popup",null,document.body,"DIV"),l=(0,c.addElem)(null,null,o,"DIV"),i=(0,c.addElem)("eval_popup_table",null,l,"TABLE"),r=(0,c.addElem)("tbody",null,i,"TBODY"),i=(0,c.addElem)(null,null,r,"TR"),s=((0,c.addElem)("eval_popup_table_key","Potenzial",i,"TD"),(0,c.addElem)("eval_popup_table_val",n.properties.potential+"%",i,"TD"),{POI:gettext("POI"),residents:gettext("Einwohner"),LIS:gettext("Existierende Ladepunkte"),CLIS:gettext("Eigene Standorte")});for(a in s){var d=(0,c.addElem)(null,null,r,"TR");(0,c.addElem)("eval_popup_table_key",s[a]+gettext(" innerhalb ")+n.properties.distance+"m",d,"TD"),(0,c.addElem)("eval_popup_table_val",n.properties[a],d,"TD")}n.properties.street||(0,c.addElem)(null,gettext("Möglicherweise nicht in der Nähe einer StraÃe!"),l,"P"),66<n.properties.potential?(0,c.addElem)("eval_popup_good",gettext("Platzierung: ")+n.properties.place.join(" / ")+" ð",l,"P"):n.properties.potential<33?(0,c.addElem)("eval_popup_bad",gettext("Platzierung: ")+n.properties.place.join(" / ")+" ð",l,"P"):(0,c.addElem)("eval_popup_ugly",gettext("Platzierung: ")+n.properties.place.join(" / ")+" ð",l,"P");let t=(0,c.addElem)("eval_popup_center_div",null,o,"DIV");if(t.style="text-align:center;",2<=_permissions.lisAccess){let e=(0,c.addElem)("button btn--cta eval_popup_button",null,t,"INPUT");e.type="button",e.value=gettext("Platziere Ladestandort"),e.title=gettext("Hier einen Ladestandort setzen"),L.DomEvent.on(e,"click",e=>{(0,S.addCustomCPCallback)({latlng:{lat:n.geometry.coordinates[0],lng:n.geometry.coordinates[1]}}),_map.closePopup()})}let e=(0,c.addElem)("button btn--cta eval_popup_button",null,t,"INPUT");e.type="button",e.value=gettext("Alternative"),n.properties.better?(L.DomEvent.on(e,"click",e=>{_map.closePopup(),u(n.properties.better.coordinates),_map.openPopup(gettext("Besserer Standort"),n.properties.better.coordinates)}),e.title=gettext("Alternativen Standort in der Umgebung vorschlagen")):(e.disabled=!0,e.title=gettext("Kein besserer Standort in der Umgebung verfügbar")),_map.openPopup(o,n.geometry.coordinates,{closeOnClick:!1})}}(l(t.evaluation[0])[0])},n.updateLisMarkerIcon=F,n.updateLisMarkerMisc=z,n.updateMarkerDraggable=N;var w=e("./map"),k=e("./fleet"),o=e("./layer"),S=e("./lis_modal"),I=e("./comment_modal"),c=e("./utils");function u(e){var t;e.length<2||(t=e[0],e[0]=e[1],e[1]=t)}function a(e){if(e&&e.type&&e.coordinates)switch(e.type){default:console.log('Unknown geometry type detected: "'+e.type+'". Reverting to Point.'),console.log(e),u(e.coordinates);break;case"Point":u(e.coordinates);break;case"LineString":case"MultiPoint":e.coordinates.map(e=>{u(e)});break;case"Polygon":case"MultiLineString":e.coordinates.map(e=>{e.map(e=>{u(e)})});break;
1case"MultiPolygon":e.coordinates.map(e=>{e.map(e=>{e.map(e=>{u(e)})})})}return e}function l(e){return(e=0<=e.length?e:[e]).map(e=>{let t={type:"Feature",properties:{}};for(var n in e)e.hasOwnProperty(n)&&("geom"===n?t.geometry=e.geom:t.properties[n]=e[n]);return a(t.geometry),t})}function C(e,t){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2];let a=document.createElement("div"),o=document.createElement("img"),l=1==t.properties.vehicle_type?"CCP_truck":"CCP",i=(t.properties.locked&&(l+="_locked"),n&&(l+="_selected"),o.src=_mapIconPaths[l],o.width=40,o.height=33,document.createElement("img"));i.src=_mapIconPaths.shadow,a.appendChild(i),a.appendChild(o);{let e=document.createElement("div");e.classList.add("custom-cp-icon-stat"),e.classList.add("custom-cp-icon-stat-"+t.properties.status),a.appendChild(e)}return o.classList.add("custom-cp-icon-img"),i.classList.add("custom-cp-icon-shadow"),{html:a,className:"custom-cp-icon",iconSize:[40,33],iconAnchor:[20,33],popupAnchor:[0,-25]}}function B(e,t){let n=document.createElement("div"),a=document.createElement("img"),o=(a.src=_mapIconPaths.CCP_other,a.width=40,a.height=33,document.createElement("img"));o.src=_mapIconPaths.shadow,n.appendChild(o),n.appendChild(a);{let e=document.createElement("div");e.classList.add("custom-cp-icon-stat"),e.classList.add("custom-cp-icon-stat-"+t.properties.status),n.appendChild(e)}return a.classList.add("custom-cp-icon-img"),o.classList.add("custom-cp-icon-shadow"),{html:n,className:"custom-cp-icon",iconSize:[40,33],iconAnchor:[20,33],popupAnchor:[0,-25]}}function T(e,t){t=t.properties.count;let n=40,a=0;void 0!==e.minCps&&void 0!==e.maxCps&&e.maxCps>e.minCps&&(a=(t-e.minCps)/(e.maxCps-e.minCps),n=40+40*a);e=.8*n;const o=chroma.scale(chroma.brewer.RdPu);var l=o(a).hex();return{html:'<div style="width: '+e+"px; height: "+e+"px; background-color: "+l+';"><span style="color: '+(chroma(l).luminance()<.5?"#fff":"#00355A")+';">'+t+"</span></div>",className:"marker-cluster marker-cluster-lis",iconSize:[n,n]}}function P(e,t){let n=document.createElement("div"),a=document.createElement("img"),o=(a.src=_mapIconPaths.fleet,a.width=40,a.height=33,document.createElement("img"));return o.src=_mapIconPaths.shadow,n.appendChild(o),n.appendChild(a),a.classList.add("custom-cp-icon-img"),o.classList.add("custom-cp-icon-shadow"),{html:n,className:"fleet-icon",iconSize:[40,33],iconAnchor:[20,33],popupAnchor:[0,-25]}}function O(e,t){let n=document.createElement("div"),a=document.createElement("img"),o=(a.src=_mapIconPaths.fleet_other,a.width=40,a.height=33,document.createElement("img"));return o.src=_mapIconPaths.shadow,n.appendChild(o),n.appendChild(a),a.classList.add("custom-cp-icon-img"),o.classList.add("custom-cp-icon-shadow"),{html:n,className:"fleet-icon",iconSize:[40,33],iconAnchor:[20,33],popupAnchor:[0,-25]}}function M(e,t){let n=document.createElement("div"),a=document.createElement("img"),o=(t.properties.power<50?a.src=_AHPFolder+"resources/Icon_existing_low_power.svg":t.properties.power<150?a.src=_AHPFolder+"resources/Icon_existing_medium_power.svg":a.src=_AHPFolder+"resources/Icon_existing_high_power.svg",a.width=37,a.height=45,document.createElement("img")),l=(o.src=_mapIconPaths.shadow,document.createElement("div"));return l.textContent=t.properties.count||"ð²",n.appendChild(o),n.appendChild(a),n.appendChild(l),a.classList.add("existing-lis-icon-img"),o.classList.add("existing-lis-icon-shadow"),l.classList.add("existing-lis-icon-number"),{html:n,className:"existing-lis-icon",iconSize:[37,45],iconAnchor:[18.5,45],popupAnchor:[0,-45]}}function A(e,t){let n=document.createElement("div"),a=document.createElement("img"),o=(t.properties.truck_only?a.src=_AHPFolder+"resources/Icon_existing_truck_only.svg":a.src=_AHPFolder+"resources/Icon_existing_truck_enabled.svg",a.width=37,a.height=45,document.createElement("img")),l=(o.src=_mapIconPaths.shadow,document.createElement("div"));return l.textContent=t.properties.count||"ð²",n.appendChild(o),n.appendChild(a),n.appendChild(l),a.classList.add("existing-lis-icon-img"),o.classList.add("existing-lis-icon-s
1hadow"),l.classList.add("existing-lis-icon-number"),{html:n,className:"existing-lis-icon",iconSize:[37,45],iconAnchor:[18.5,45],popupAnchor:[0,-45]}}function D(e,t){let n=document.createElement("div");t=t.properties;n.id="h2order-icon-"+t.id;let a=document.createElement("img"),o=(a.src=_AHPFolder+"resources/icon_h2order_background.svg",document.createElement("img")),l=(o.src=_AHPFolder+"resources/icon_h2order_outline.svg",document.createElement("div")),i=document.createElement("img"),r=(i.src=t.icon.file,l.appendChild(i),document.createElement("img")),s=(r.src=_mapIconPaths.shadow,document.createElement("div"));return 1==t.order_type?s.classList.add("h2order-icon-typ-buy"):2==t.order_type&&s.classList.add("h2order-icon-typ-sell"),n.appendChild(r),n.appendChild(a),n.appendChild(o),n.appendChild(l),n.appendChild(s),r.classList.add("h2order-icon-shadow"),a.classList.add("h2order-icon-background"),o.classList.add("h2order-icon-outline"),l.classList.add("h2order-icon-img-wrapper"),i.classList.add("h2order-icon-img"),s.classList.add("h2order-icon-typ"),{html:n,className:"h2order-icon",iconSize:[37,45],iconAnchor:[18.5,45],popupAnchor:[0,-45]}}function i(e,E){var t,n,a;if(e&&0!=e.length){(E=E||[]).name||(E.name=""),E.radiusGroupName=E.name+" Radius",E.name&&E.icon&&(E.icon instanceof Array?E.name=' <img src="'+E.icon[0]+'" style="height: 1.6rem; width: 1.3rem;"> '+E.name:E.name=' <img src="'+E.icon.file+'" style="max-height: 1.6rem"> '+E.name),E.markerGroup=E.markerGroup||(0,o.getLayerFromName)(E.name),E.markerGroup&&!_map.hasLayer(E.markerGroup)&&_map.addLayer(E.markerGroup),E.radiusGroup=E.radiusGroup||(0,o.getLayerFromName)(E.radiusGroupName),E.radiusGroup&&!_map.hasLayer(E.radiusGroup)&&_map.addLayer(E.radiusGroup);let h=null,_=function(e){if(e.markerGroup)return e.markerGroup;if(e.heat){e.radius=e.radius||100,e.heatmax=e.heatmax||1,_map.createPane("heatPane").style.zIndex=300;var n=L.heatLayer([],{pane:"heatPane",radius:(0,c.metersInPixels)(e.radius),blur:(0,c.metersInPixels)(e.radius)/2,_maxZoom:_map.getMinZoom(),abs_radius:e.radius,max:e.heatmax,gradient:(0,c.colormapToGradient)(e.potential||"Blues",e.colormapInverse),blendMultiply:!0})}else if(e.clustered){let t=parseFloat(e.clustered)||80;n=L.markerClusterGroup({maxClusterRadius:e=>e>=w.MAX_ZOOM?25:t,disableClusteringAtZoom:e.disableClusteringAtZoom||null,polygonOptions:{color:e.clusterPolyColor||w.COLORS.defaultCluster},iconCreateFunction:r(e)})}else n=L.featureGroup();{var t;e.name&&(t=e.overlayId||"<unknown>",(0,o.addOverlayLayer)(n,e.name,t))}return _map.addLayer(n),n}(E);0<E.radius&&E.clustered&&(n=function(e){if(e.radiusGroup)return e.radiusGroup;var t=parseFloat(e.clustered)||80,t=L.markerClusterGroup({maxClusterRadius:t,clusterPane:"overlayPane",disableClusteringAtZoom:18,polygonOptions:{color:e.clusterPolyColor||"#0080ff"},iconCreateFunction:r(e)});{var n;e.name&&(n=e.overlayId||"<unknown>",(0,o.addOverlayLayer)(t,e.radiusGroupName,n))}return _map.addLayer(t),t}(E));let y=null;if(null!=E.deflate){"circleMarker"==E.deflate.markerType&&(E.deflate.markerType=L.circleMarker);let e=null==(t=E.deflate.markerOptions)?void 0:t.icon;null!==e&&void 0!==e&&e.iconUrl&&(e.iconUrl=_AHPFolder+"resources/"+e.iconUrl,E.deflate.markerOptions.icon=L.icon(e)),y=L.deflate(E.deflate)}let v=[],b=[],x=(E.rejectDoubles&&(a=[],_.eachLayer(e=>{e.properties&&e.properties[E.rejectDoubles]&&a.push(e.properties[E.rejectDoubles])})),null);if(e.forEach(l=>{var e,t;if(E.rejectDoubles&&l.properties[E.rejectDoubles]){if(a.includes(l.properties[E.rejectDoubles]))return;a.push(l.properties[E.rejectDoubles])}let i=void 0,r=(i=E.styleCategories?(t=E.styleCategories.field,t=l.properties[t],(i=null==(e=null==(e=E.styleCategories.classes)?void 0:e[t])?void 0:e.color)||E.styleCategories.defaultStyle.color||"rgba(192, 192, 192, 0.5)"):l.properties.color||E.color||"#"+("0"+(16777215*Math.random()&16777215).toString(16)).slice(-6),E.fillOpacity);switch(l.geometry.type){case"Point":case"MultiPoint":default:let e=0,n=0,a=("Point"===l.geometry.type?(e=Number(l.geometry.coordinates[0]),n=Number(l.geometry.coordinates[1])):"MultiPoint"===l.geometry.type&&(1<l.geometry.coordinates&&(console.log("Only first point of MultiPoint used!"),console.log(l.geojson)),e=Number(l.geometry.coordinates[0][0]),n=Number(l.geometry.coordinates[0][1])),null);if(isNaN(e)||isNaN(n))console.log(l);else if(E.heat)_.addLatLng([e,n,l.properties[E.heat]]);else{let t;if(E.divIconFunc){let e="existing_lis"==(s=E.divIconFunc)?M:"custom_cp"==s?C:"custom_cp_other"==s?B:"fleet_location"==s?P:"fleet_location_other"==s?O:"h2order"==s?D:"cluster_lis"==s?T:"existing_truck_lis"==s?A:(console.log("div icon func not found: "+s),null);t=L.divIcon(e(E,l))}else l.properties.icon?t=L.ImageIcon(l.properties.icon):E.icon?t=L.ImageIcon(E.icon):E.marker?"circle"==E.marker.type?t=L.circleIcon({color:i,radius:E.marker.radiu
1s,border:E.marker.border,outline:E.marker.outline}):"pin"==E.marker.type?t=L.colorIcon(i):console.error("unknown marker type: ",E.marker.type):t=L.colorIcon(i);if(r=void 0===E.fillOpacity?.4:E.fillOpacity,E.customCP&&l.properties.id)z(a=L.marker([e,n],{icon:t,interactive:!0,draggable:!0,riseOnHover:!0,zIndexOffset:100}),l.properties),a.on("add",e=>{N(e.target,e.target.properties)}),v.push(a),(0,S.addCustomCPToMap)({marker:a,properties:l.properties}),_selectedMarker&&_selectedMarker.properties.id==l.properties.id&&F(a,!0);else if("fleet_locations"==E.overlayId)a=L.marker([e,n],{icon:t,interactive:!0,draggable:!0,riseOnHover:!0,zIndexOffset:100,contextmenu:!0,contextmenuInheritItems:!1,contextmenuItems:_permissions.chatAccess<2?[]:[{text:gettext("Entferne Flottenstandort"),iconCls:"ion ion-md-trash",callback:e=>{(0,k.deleteFleet)(e.relatedTarget)}}]}),(0,k.addFleetMarkerEvents)(a,l.properties),v.push(a);else if(E.comment)a=L.marker([e,n],{icon:t,interactive:!0,draggable:!1,riseOnHover:!0,zIndexOffset:100,contextmenu:!0,contextmenuInheritItems:!1,contextmenuItems:_permissions.lisAccess<2?[]:[{text:gettext("Entferne Kommentar"),iconCls:"ion ion-md-trash",callback:e=>{(0,I.deleteComment)(e.relatedTarget)}}]}),v.push(a),a.properties=l.properties,a.properties.images||(a.properties.images=[]),a.on("click",e=>{(0,I.updateComment)(a)});else{if(a=E.radius<0?L.circle([e,n],-E.radius,{stroke:!E.customCP,color:i,fill:!0,fillColor:i,fillOpacity:r,interactive:void 0!==l.properties}):L.marker([e,n],{icon:t,interactive:void 0!==l.properties}),v.push(a),a.properties=l.properties,a&&E.customCP&&l.properties){let e="";l.properties.count&&(e+="<tr><td><b>"+gettext("Anzahl")+"</b></td><td>"+l.properties.count+"</td></tr>"),l.properties.order&&(e+="<tr><td><b>"+gettext("Platzierung")+"</b></td><td>"+l.properties.order+"</td></tr>"),e='<table style="width:100%;">'+e+"</table>",w.HAS_TOUCH?a.bindPopup(e):a.bindTooltip(e,{direction:"top",offset:[-1,1],sticky:!0})}else a&&l.properties.desc?a.bindPopup(l.properties.desc):a&&l.properties.tooltip&&a.bindTooltip(l.properties.tooltip.text,l.properties.tooltip.options);if(0<E.radius){if(E.rejectDoubleRadius){if(l.properties[E.rejectDoubleRadius]===x)return;x=l.properties[E.rejectDoubleRadius]}var s=L.circle([e,n],E.radius,{stroke:!1,fill:!0,fillColor:i,fillOpacity:r,interactive:!1});(E.clustered?b:v).push(s)}E.fit&&((h=null==h?[[e,n],[e,n]]:h)[0][0]=Math.min(h[0][0],e),h[0][1]=Math.min(h[0][1],n),h[1][0]=Math.max(h[1][0],e),h[1][1]=Math.max(h[1][1],n))}}break;case"LineString":case"MultiLineString":case"Polygon":case"MultiPolygon":var d=l.properties.desc,c=l.geometry.type.includes("Polygon"),u=E.fillColor||i,m=(r=void 0===E.fillOpacity?1:E.fillOpacity,null!=E.lineDarken?chroma(i).darken(E.lineDarken):i),p=null!=E.lineOpacity?E.lineOpacity:r,g=null!=E.lineWidth?E.lineWidth:2,f=E.smoothFactor||1,m={stroke:!0,color:m,opacity:p,weight:g,dashArray:E.radius,interactive:null!=d,fill:c,fillColor:u,fillOpacity:r,noClip:!0,smoothFactor:f};
1let t=c?L.polygon:L.polyline,o=t(l.geometry.coordinates,m);o.properties=l.properties,d&&(o.bindPopup(d,{autoClose:!1,closeOnClick:!1,pane:"tooltipPane"}),w.HAS_TOUCH||o.bindTooltip(d,{direction:"top",sticky:!0}),o.properties.desc=d),null!=E.deflate?o.addTo(y):v.push(o),E.fit&&(null==h?h=o.getBounds():h.extend(o.getBounds()))}}),null!=E.deflate&&v.push(y),_.addLayers)_.addLayers(v,{chunkedLoading:!0});else for(let e=0;e<v.length;e++)_.addLayer(v[e]);if(n)if(n.addLayers)n.addLayers(b);else for(let e=0;e<b.length;e++)n.addLayer(b[e]);return E.fit&&null!=h&&_map.fitBounds(h),n?[_,n]:_}}function r(r){return function(e){let t=document.createElement("div"),n=document.createElement("span");t.appendChild(n);let a;if(a=r.clusterValue?e.getAllChildMarkers().reduce((e,t)=>e+t.properties[r.clusterValue],0):e.getChildCount(),n.textContent=a,r.clusterDynamicColor){e=r.clusterDynamicColor.palette||"RdPu";const i=chroma.scale(chroma.brewer[e]);var e=Math.min(a,100)/100,e=i(e).hex(),o=chroma(e).luminance()<.5?"#fff":"#00355A";n.style.color=o,t.style.backgroundColor=e}let l="";return r.clusterClass&&(l=r.clusterClass+" "+r.clusterClass,a<10?l+="-small":a<100?l+="-medium":l+="-large"),new L.DivIcon({html:t.outerHTML,className:"marker-cluster "+l,iconSize:new L.Point(40,40)})}}function m(t){var n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"data.txt",a=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"text/plain",t=t.join(3<arguments.length&&void 0!==arguments[3]?arguments[3]:"\r\n");if(window.navigator.msSaveOrOpenBlob){var e=new Blob([encodeURIComponent(t)],{type:a});window.navigator.msSaveBlob(e,n)}else{let e=window.document.createElement("a");e.href="data:"+a+";charset=utf-8,"+encodeURIComponent(t),e.target="_blank",e.download=n,document.body.appendChild(e),e.click(),document.body.removeChild(e)}}function F(e,t){(t=null!=t?t:_selectedMarker&&_selectedMarker==e)&&(_selectedMarker=e),e.setIcon(L.divIcon(C({},e,t)))}function s(e){return 2<=_permissions.lisAccess&&!e.locked}function N(e,t){e.dragging&&(s(t)?e.dragging.enable():e.dragging.disable())}function z(e,t){let n=[{text:t.search?gettext("Entferne Suchraum"):gettext("Bestimme Suchraum"),iconCls:t.search?"ion ion-md-close":"ion ion-md-create",callback:t.search?S.removeSearchPoly:S.addSearchPoly},{text:gettext("Erreichbarkeit"),iconCls:"ion ion-md-car",callback:w.openIsoModalFromMarker},{text:gettext("Entferne Ladestandort"),iconCls:"ion ion-md-trash",callback:e=>{(0,S.removeCustomCPCallback)(e.relatedTarget)}}];2<=_permissions.evaluateCustomLis&&n.unshift({text:gettext("Standortbewertung"),iconCls:"ion ion-md-stats",callback:e=>(0,w.singleLisEvaluation)(t.id)}),_pro_packages.utilization&&n.unshift({text:gettext("Umgebungsanalyse"),iconCls:"ion ion-md-car",callback:e=>{(0,w.fetchUtilizationData)(e.relatedTarget.properties.id)}}),e.unbindContextMenu(),e.bindContextMenu({contextmenu:s(t),contextmenuInheritItems:!1,contextmenuItems:n}),e.searchPoly&&(_map.removeLayer(e.searchPoly),e.searchPoly=void 0),t.search&&!t.locked&&(e.searchPoly=L.geoJSON(t.search,{style:e=>({stroke:!0,color:w.COLORS.searchPolygon,opacity:1,weight:2,interactive:!1,fill:!0,fillColor:w.COLORS.searchPolygon,fillOpacity:.4,noClip:!0})})),N(e,t)}},{"./comment_modal":5,"./fleet":9,"./layer":10,"./lis_modal":11,"./map":12,"./utils":19}],9:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.addFleetCallback=function(e){let t=new FormData,n=document.getElementById("lisform").csrfmiddlewaretoken.value;t.append("csrfmiddlewaretoken",n),t.append("geom",(0,s.geoJSONdumps)(e.latlng)),(0,s.fetchPost)("fleet/create/",t,1e4).then(e=>e.json()).then(e=>{var t=e.fleetLocation;t&&((0,l.showResult)(e),_region.fleetLocation.push(t))}).catch(e=>{i.DEBUG&&console.log(e)})},n.addFleetMarkerEvents=function(a,o){a.properties=o,a.on("click",e=>{c(o.id)}),a.on("add",e=>{(0,l.updateMarkerDraggable)(a,o)}),a.on("movestart",e=>{a._origin=a.getLatLng()}),a.on("moveend",e=>{let t=new FormData;var n=document.getElementById("lisform").csrfmiddlewaretoken.value;t.append("csrfmiddlewaretoken",n),t.append("geom",(0,s.geoJSONdumps)(a.getLatLng())),(0,s.fetchPost)("fleet/"+o.id+"/update/",t,1e4).then(e=>e.json()).then(e=>{e.success||a.setLatLng(a._origin)}).catch(e=>{i.DEBUG&&console.log(e),a.setLatLng(a._origin)})})},n.addFleetVehicleGroupRow=function(){let e=document.getElementById("fleet-vehicle-row"),t=document.querySelector("#fleet-vehicle-table tbody"),n=e.content.cloneNode(!0);t.appendChild(n),m()},n.deleteFleet=function(t){if(confirm(gettext("Sind Sie sicher, dass dieser Flottenstandort gelöscht werden soll?"))){let e=new FormData;var n=document.getElementById("lisform").csrfmiddlewaretoken.value;e.append("csrfmiddlewaretoken",n);const a=t.properties.id;(0,s.fetchPost)("fleet/"+a+"/delete/",e,1e4).then(e=>e.json()).then(e=>{if(e.success){let e=r(a);_fleetLayer.removeLayer(e),e.remove()}}).catch(e=>{i.DEBUG&&console.log(e)})}},n.fleetDirty=o,n.getFleetLocationSiteManagerTableRows=function(t){let n=[];if(_fleetLayer){var a=_fleetLayer.getLayers();for(let e=0;e<a.length;e++){var o=a[e],l='<a href="#" class="table-lis-name" onclick="openFleetModal('+o.properties.id+')">'+(0,s.escapeHTML)(o.properties.name)+"</a>";l='<a href="#" onclick="highlightFleetLocation('+o.properties.id+');">
1<i class="icon icon--small ion-md-map"></i></a> '+l,n.push({index:e+t,lis_id:null,name:{plain_text:o.properties.name,display:l},abc:null,vehicle_type:{display:'<i class="icon ion-md-car"></i>',num:2}})}}return n},n.highlightFleet=g,n.openFleetAvailTimeModal=function(e){var t=document.getElementById("avail-time-grid");(_=new f(e,t)).draw(),$("#fleet-avail-time-modal").foundation("open")},n.openFleetModal=c,n.openStandingTimeModal=function(e){var t=document.getElementById("standing-time-grid");(h=new f(e,t)).draw(),$("#fleet-standing-time-modal").foundation("open")},n.saveFleetAvailTime=function(){_&&(_.save(),(0,a.markDirty)("fleet_avail_time"))},n.saveFleetLocation=p,n.saveStandingTime=function(){h&&(h.save(),o("vehicle_groups"))};var l=e("./features"),a=e("./lis_modal"),i=e("./map"),s=e("./utils"),d=function(e,i,r,s){return new(r=r||Promise)(function(n,t){function a(e){try{l(s.next(e))}catch(e){t(e)}}function o(e){try{l(s.throw(e))}catch(e){t(e)}}function l(e){var t;e.done?n(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t)})).then(a,o)}l((s=s.apply(e,i||[])).next())})};function o(e){document.getElementById("fleet-dirty").classList.add(e)}function r(t){return _fleetLayer.getLayers().find(e=>e.properties.id==t)}function c(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,n=r(e);n&&(u(e,n),$("#fleet-modal").foundation("open"),"string"==typeof t&&$("#fleet_modal_accordion").foundation("down",$(t)))}function u(a,e){let o=!1;document.getElementById("fleet-modal").dataset.fleetId!=e.properties.id&&(o=!0),document.getElementById("fleet-modal").dataset.fleetId=e.properties.id,document.getElementById("fleet-name-span").textContent=e.properties.name;var l=(0,s.roundToStr)(e._latlng.lat,5),i=(0,s.roundToStr)(e._latlng.lng,5);document.getElementById("fleet-coords").textContent=l+","+i,document.getElementById("show-map-fleet-link").onclick=e=>{$("#fleet-modal").foundation("close"),$(".sidebar-close").click(),g(a)};let t=document.getElementById("fleet_google_maps_link");t.href="http://maps.google.com/maps?t=k&q=loc:"+e._latlng.lat.toFixed(6)+"+"+e._latlng.lng.toFixed(6);{const n=document.getElementById("fleet-modal").querySelector('input[name="contact_email"]');n.value=e.properties.contact_email}{let t=document.getElementById("fleet-match-json-btn"),n=document.getElementById("fleet-match-radius");l=e=>d(this,void 0,void 0,function*(){t.disabled=!0,yield p(),(0,s.request)({path:"fleet/match",timeout:15e3,params:{fleet_location_id:a,radius:n.value}}).then(e=>{y(e.matches)}).finally(()=>{t.disabled=!1})}),i=(t.onclick=l,n.onchange=l,document.getElementById("acc-item-matches").parentElement.classList.contains("is-active"));o&&i&&t.click()}{let t=document.getElementById("fleet-match-btn");t.onclick=e=>d(this,void 0,void 0,function*(){t.disabled=!0,yield p();var e=document.getElementById("fleet-match-radius"),e=t.dataset.baseUrl+"?fleet_location_id="+a+"&radius="+e.value;window.location.href=e,t.disabled=!1})}{l=e;let t=document.getElementById("fleet-vehicle-row"),n=document.querySelector("#fleet-vehicle-table tbody");n.innerHTML="";for(var r of l.properties.vehicle_groups){let e=t.content.cloneNode(!0);e.querySelector('input[name="num_vehicles"]').value=r.num_vehicles,e.querySelector('select[name="max_charging_power_ac"]').value=r.max_charging_power_ac,e.querySelector('select[name="max_charging_power_dc"]').value=r.max_charging_power_dc,e.querySelector('input[name="has_plug_type2"]').checked=r.has_plug_type2,e.querySelector('input[name="has_plug_ccs"]').checked=r.has_plug_ccs,e.querySelector('input[name="has_plug_chademo"]').checked=r.has_plug_chademo,e.querySelector('select[name="vehicle_class"]').value=r.vehicle_class,e.querySelector('input[name="avg_daily_mileage"]').value=r.avg_daily_mileage,e.querySelector('input[name="standing_time"]').value=JSON.stringify(r.standing_time),n.appendChild(e)}m()}y([])}function m(){var e=document.querySelectorAll("#fleet-vehicle-table tbody tr");let t=document.getElementById("fleet-no-vehicles-info");0==e.length?t.style.display="":t.style.display="none"}function p(){const e=document.getElementById("fleet-dirty").classList;if(0==e.length)return null;let t=new FormData;var n=document.getElementById("lisform").csrfmiddlewaretoken.value;t.append("csrfmiddlewaretoken",n),e.contains("vehicle_groups")&&(n=function(){let e=[];var t=document.querySelectorAll("#fleet-vehicle-table tbody tr");for(const n of t)e.push({num_vehicles:Number(n.querySelector('input[name="num_vehicles"]').value),max_charging_power_ac:Number(n.querySelector('select[name="max_charging_power_ac"]').value),max_charging_power_dc:Number(n.querySelector('select[name="max_charging_power_dc"]').value),has_plug_type2:n.querySelector('input[name="has_plug_type2"]').checked,has_plug_ccs:n.querySelector('input[name="has_plug_ccs"]').checked,has_plug_chademo:n.querySelector('input[name="has_plug_chademo"]').checked,vehicle_class:Number(n.querySelector('select[name="vehicle_class"]').value),avg_daily_mileage:Number(n.querySelector('input[name="avg_daily_mileage"]').value),standing_time:JSON.parse(n.querySelector('input[name="standing_time"]').value)});return e}(),t.append("vehicle_groups",JSON.stringify(n))),e.contains("contact_email")&&(n=document.getElementById("fleet-modal").querySelector('input[name="contact_email"]'),t.append("contact_email",n.value)),document.getElementById("fleet-dirty").className="";const a=Number(document.getElementById("fleet-modal").dataset.fleetId);return(0,s.fetchPost)("fleet/"+a+"/update/",t,1e4).then(e=>e.json()).then(t=>{if(t.success){let e=r(a);e.properties=t.fleet,u(a,e)}else t.error&&(console.log(t.error),alert(gettext("Die Einträge enthalten Fehler.")))}).catch(e=>{i.DEBUG&&console.log(e)})}function g(e){let t=r(e);
1return _map.setView(t.getLatLng(),18),L.DomUtil.addClass(t._icon,"bounce"),setTimeout(e=>{L.DomUtil.removeClass(t._icon,"bounce")},3e3),!0}$("#fleet-modal").on("closed.zf.reveal",p);class f{constructor(e,t){if(this.input=e,this.canvas=t,this.grid=null,!e.value||(e=JSON.parse(e.value))&&e.grid&&(this.grid=e.grid),!this.grid){this.grid=[];for(let t=0;t<7;t++){this.grid.push(new Array);for(let e=0;e<24;e++)this.grid[t].push(!1)}}this.width=t.width-1,this.height=t.height-1,t.onpointermove=e=>{this.hover_cell=this.get_cell(e),this.selection&&(this.selection.end=this.hover_cell),this.draw()},t.onpointerleave=()=>{this.hover_cell=null,this.draw()},t.onpointerdown=e=>{e=this.get_cell(e);this.selection={start:e,end:e},this.draw()},t.onpointerup=e=>{this.selection.end=this.get_cell(e);for(let t=0;t<7;t++)for(let e=0;e<24;e++)this.in_selection(e,t)&&(this.grid[t][e]=!this.grid[t][e]);this.selection=null,this.draw()}}save(){this.input.value=JSON.stringify({grid:this.grid})}get_cell(e){var t=e.target.getBoundingClientRect(),n=e.clientX-t.left,e=e.clientY-t.top;return[Math.max(0,Math.min(23,Math.floor(n/(this.width/24)))),Math.max(0,Math.min(6,Math.floor(e/(this.height/7))))]}in_selection(e,t){var n=this.selection;return!!n&&(e=e>=n.start[0]&&e<=n.end[0]||e>=n.end[0]&&e<=n.start[0],t=t>=n.start[1]&&t<=n.end[1]||t>=n.end[1]&&t<=n.start[1],e&&t)}draw(){const a=this.canvas.getContext("2d");a.clearRect(0,0,this.width+1,this.height+1);var o=this.width/24,l=this.height/7;a.fillStyle="#F4FBFD",a.fillStyle="#E7F0F2",a.fillRect(0,5*l+.5,this.width,2*l),a.strokeStyle="#CDDBDF",a.fillStyle="#ffaaaa",a.lineWidth=1;for(let n=0;n<7;n++)for(let t=0;t<24;t++){a.strokeRect(t*o+.5,n*l+.5,o,l);var i=this.grid[n][t],r=this.in_selection(t,n);let e=!1;var s=5<=n;this.hover_cell&&this.hover_cell[0]==t&&this.hover_cell[1]==n&&(e=!0),i&&(a.fillStyle=s?"#138e68":"#19a579",a.fillRect(t*o+.5,n*l+.5,o,l)),r&&(a.fillStyle="rgba(64,192,255,0.4)",a.fillRect(t*o+.5,n*l+.5,o,l)),e&&(a.fillStyle="rgba(64,192,255,0.2)",a.fillRect(t*o+.5,n*l+.5,o,l))}}}let h=null;let _=null;function y(e){const t=document.getElementById("fleet-match-table-section"),n=document.getElementById("fleet-match-table-empty");0<e.length?(t.style.display="",n.style.display="none"):(t.style.display="none",n.style.display="");if($.fn.dataTable.isDataTable("#fleet-location-match-table")){const o=$("#fleet-location-match-table").DataTable();o.clear(),o.rows.add(e),o.draw()}else{var a=[{title:"",data:null,render:function(e,t,n){if("display"!==t)return n.name_charging_location;{let e=document.createElement("a");return e.title=gettext("Standort auf der Karte anzeigen"),e.innerHTML='<i class="icon icon--small ion-md-map"></i>',e.onclick=()=>{$(".sidebar-close").click(),$("#fleet-modal").foundation("close"),_map.setVie
1w({lat:n.lat_charging_location,lng:n.lng_charging_location},18)},e}},orderable:!1},{title:gettext("Name Ladestandort"),data:null,render:function(e,t,n){if("display"===t&&n.contact_email_charging_location){let e=document.createElement("a");return e.href="mailto:"+encodeURIComponent(n.contact_email_charging_location)+"?subject="+encodeURIComponent("Retail4Multi-Use"),e.innerText=n.name_charging_location,e.title=gettext("Kontakt per E-Mail"),e}return n.name_charging_location}},{title:gettext("Ladepunkte"),data:null,render:function(e,t,n){return n.cp_count+" à "+n.cp_max_power+" kW"}},{title:gettext("Distanz"),data:"distance_km",render:function(e,t,n){return"display"===t||"filter"===t?Number(e).toFixed(2)+" km":e}},{title:gettext("Score gesamt"),data:"score_total_fleet",name:"score_total",className:"score-total-column",render:function(e,t,n){return"display"===t||"filter"===t?Number(100*e).toFixed(2)+" %":e}},{title:gettext("Score Zeitfenster"),data:"score_time_fleet",render:function(e,t,n){return"display"===t||"filter"===t?Number(100*e).toFixed(2)+" %":e}},{title:gettext("Score Ladepunkte"),data:"score_charging_points",render:function(e,t,n){return"display"===t||"filter"===t?Number(100*e).toFixed(2)+" %":e}},{title:gettext("Score Distanz"),data:"score_distance",render:function(e,t,n){return"display"===t||"filter"===t?Number(100*e).toFixed(2)+" %":e}},{title:gettext("Deckung Zeitfenster"),data:"time_slots_overlap",render:function(e,t,n){return"display"===t||"filter"===t?null===e?"-":e+" "+gettext("h/Woche"):e}}];const l=$("#fleet-location-match-table").DataTable({data:e,order:[[4,"desc"],[1,"asc"]],columns:a,language:{search:gettext("Suche"),zeroRecords:gettext("Keine passenden Suchergebnisse gefunden"),emptyTable:gettext("Keine Matches vorhanden."),info:gettext("Zeilen _START_ - _END_ von _TOTAL_"),infoEmpty:"",infoFiltered:gettext("(aus _MAX_ Zeilen insgesamt)"),lengthMenu:gettext("Zeige _MENU_ Zeilen"),paginate:{first:gettext("Erste"),last:gettext("Letzte")}}});l.column(2).header().title=gettext("Distanz zwischen Ladestandort und Flottenstandort"),l.column(3).header().title=gettext("Der Gesamtscore setzt sich aus den Scores für Distanz, Zeitfenster und Ladepunkte zusammen."),l.column(4).header().title=gettext("Der Score beschreibt die Ãbereinstimmung der verfügbaren Zeitfenster zwischen der Fahrzeuggruppe des Flottenstandorts und dem Ladestandort. Wenn keine Zeitfenster angegeben sind, wird eine komplette Ãbereinstimmung angenommen (100 %)."),l.column(5).header().title=gettext("Dieser Score gibt an, welcher Prozentsatz der Fahrzeuge mit einem eigenen Ladepunkt versorgt werden kann."),l.column(6).header().title=gettext("Der Score nimmt mit zunehmender Entfernung zwischen Ladestandort und Flottenstandort ab."),l.column(7).header().title=gettext("Gibt an, wie viele Zeitfenster (je 1 h/Woche) der Fahrzeuggruppe des Flottenstandorts und des Ladestandorts übereinstimmen")}}},{"./features":8,"./lis_modal":11,"./map":12,"./utils":19}],10:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.addFilterableLisLayerToMap=function(){u.state&&_map.hasLayer(u.state.layer)||(_map.on("moveend",m),function(){const a=document.getElementById("layer-filter_existing_lis");if(a){var o=(a.innerHTML="",c.addElem)("layer-filter-element",null,a,"div");(0,c.addElem)("layer-filter-element-label",gettext("Betreiber"),o,"div");let e=(0,c.addElem)("",null,o,"select"),t=(e.id="layer-filter_existing_lis_cpo",e.addEventListener("change",()=>{m()}),(0,c.addElem)("",gettext("Alle"),e,"option")),n=(t.value="",c.addElem)("layer-filter-element",null,a,"div");n.id="layer-filter_existing_lis_power",(0,c.addElem)("layer-filter-element-label",gettext("Leistung"),n,"div");var l=(0,c.addElem)("checkbox-group",null,n,"div");for(const i of[{value:"0-50",label:"< 50 kW"},{value:"50-100",label:"50 - 149 kW"},{value:"150-350",label:"150 - 349 kW"},{value:"350-1000",label:"⥠350 kW"}]){let e=(0,c.addElem)("",null,l,"label"),t=(0,c.addElem)("",null,e,"input");t.type="checkbox",t.value=i.value,t.checked=!0,e.appendChild(document.createTextNode(i.label)),t.addEventListener("change",()=>{m()})}}}(),r())},n.addOverlayLayer=function(e,t,n){_ctrlLayer.addOverlay(e,t),_overlayLayers[n]=e},n.deleteFFLayers=function(){i("fast_finder_geotiff"),i("fast_finder_potential"),i("fast_finder_recommended_locations"),i("fast_finder_search_areas"),i("existing_lis"),i("restricted_zones"),i("custom_restricted_zones")},n.deleteOverlayLayer=i,n.getLayerFromName=o,n.getOverlayLayer=a,n.removeFilterableLisLayerToMap=function(){var e;u.state&&_map.hasLayer(u.state.layer)&&(_map.off("moveend",m),null!=(e=u.state.layer)&&e.remove(),u.state=null)},n.removeLayer=function(e){"string"==typeof e&&(e=o(e));var t;e&&(e.clearLayers&&e.clearLayers(),_ctrlLayer.removeLayer(e),_map.removeLayer(e),e===_markerLayer&&_map.removeLayer(_markerLayer),(t=a("fast_finder_potential"))&&e._leaflet_id===t._leaflet_id&&i("fast_finder_potential"))},n.removeLayers=function(e){var t=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];for(const a of Object.keys(_overlayLayers))t&&"custom_charging_locations"==a||i(a);for(const o of Object.keys(_atlasOpenLayers)){var n=document.getElementById(o);(0,l.removeLayerFromMap)(n)}},n.toggleLisLayer=function(){var e;_map&&(_map.hasLayer(u.state.layer)?(_map.off("moveend",m),null!=(e=u.state.layer)&&e.remove()):(_map.on("moveend",m),r()))};var l=e("./AHP"),d=e("./features"),c=e("./utils");function i(t){if(_overlayLayers[t]){let e=_overlayLayers[t];e.removeFrom(_map),_ctrlLayer.removeLayer(e),delete _overlayLayers[t]}}function a(e){return _overlayLayers[e]}function o(t){for(let e=0;e<_ctrlLayer._layers.length;e++){var n=_ctrlLayer._layers[e];if(n.overlay&&n.name===t)return n.layer}return null}let u={ZOOM_THRESHOLD:12,MAX_LOCATIONS_PER_REQUEST:3e3};
1function r(){let l=_map.getBounds(),i=_map.getZoom(),r=function(){var e=document.getElementById("layer-filter_existing_lis");if(!e)return{};const t={},n=document.getElementById("layer-filter_existing_lis_cpo");n&&""!==n.value&&(t.cpo=n.value);const a=document.getElementById("layer-filter_existing_lis_power"),o=a.querySelectorAll('input[type="checkbox"]'),l=[];o.forEach(e=>{e.checked&&l.push(e.value)}),0<o.length&&0<l.length&&l.length<o.length&&(t.power=l.join(","));return t}(),s=!1;var e;return u.state||(u.state={bounds:null,filter:null,zoom:null,layer:null},s=!0),u.state.bounds&&u.state.bounds.contains(l)&&u.state.complete&&u.state.zoom&&(i==u.state.zoom||i>u.ZOOM_THRESHOLD&&u.state.zoom>u.ZOOM_THRESHOLD)&&u.state.filter&&r&&Object.keys(u.state.filter).length===Object.keys(r).length&&Object.keys(u.state.filter).every(e=>u.state.filter[e]===r[e])?null:(e={bbox:(l=i>u.ZOOM_THRESHOLD?l.pad(1):l).toBBoxString(),zoom:i},Object.assign(e,r),(0,c.request)({path:"poi/lis/filter",params:e,timeout:1e4}).then(e=>{if(u.state.bounds=l,u.state.zoom=i,u.state.filter=r,u.state.complete=!0,u.state.layer&&(u.state.layer.remove(),u.state.layer=null),s){var t=e.cpos;const a=document.getElementById("layer-filter_existing_lis_cpo");if(a){let e=(a.innerHTML="",c.addElem)("",gettext("Alle"),a,"option");e.value="";for(const o of t)(e=(0,c.addElem)("",o.label,a,"option")).value=o.value}}let n=null;0<e.clusters.features.length?(e.clusters.features.forEach(e=>(0,d.reverseCoordinates)(e.geometry)),(n=(0,d.showData)(e.clusters.features,{divIconFunc:"cluster_lis",minCps:e.clusters.min_cps,maxCps:e.clusters.max_cps})).on("click",function(e){var t=_map.getZoom(),t=Math.min(t+2,_map.getMaxZoom());_map.setView(e.latlng,t)})):0<e.existing_lis.features.length&&(e.existing_lis.features.length>=u.MAX_LOCATIONS_PER_REQUEST&&(u.state.complete=!1),e.existing_lis.features.forEach(e=>(0,d.reverseCoordinates)(e.geometry)),n=(0,d.showData)(e.existing_lis.features,{divIconFunc:"existing_lis",icon:{file:["Icon_pin_charger_existing_v2.svg","shadow.svg"],width:25,height:25},clusterClass:"marker-cluster-lis",clusterPolyColor:"#3897d5",clusterValue:"count",clusterDynamicColor:{palette:"RdPu"}})),u.state.layer=n}).catch(e=>{console.error("error:",e)}))}let s;function m(){clearTimeout(s),s=setTimeout(r,300)}},{"./AHP":1,"./features":8,"./utils":19}],11:[function(e,n,t){Object.defineProperty(t,"__esModule",{value:!0}),t.addCustomCPCallback=o,t.addCustomCPToMap=function(a){{const e=a.marker;e.properties=a.properties,e.properties.images||(e.properties.images=[]),_markers.push(e)}a.marker.on("mouseover",e=>{a.marker.searchPoly&&_map.addLayer(a.marker.searchPoly)}),a.marker.on("mouseout",e=>{a.marker.searchPoly&&_map.removeLayer(a.marker.searchPoly)}),a.marker.on("movestart",e=>{a.marker._origin=a.marker.getLatLng()}),a.marker.on("moveend",e=>{(0,_.close_utilization_layer)(),D();var t=document.getElementById("lisform");if(t){let e=new FormData;e.append("csrfmiddlewaretoken",t.csrfmiddlewaretoken.value),e.append("geom",(0,Ae.geoJSONdumps)(a.marker.getLatLng())),(0,Ae.fetchPost)("lis/"+a.properties.id+"/update/",e,1e4).then(e=>e.json()).then(e=>{var n=e.nearby||[];for(let t=0;t<n.length;t++){let e=m(n[t]);e&&(e.properties.evaluation=null)}p(a.marker)}).catch(e=>{_.DEBUG&&console.log(e),a.marker.setLatLng(a.marker._origin)})}})},t.addLisPowerTableRow=ke,t.addNewLisChecklistItem=function(){let t=document.getElementById("lis-checklist");if(t){let e=Le({});t.appendChild(e),e.firstChild.children[2].click(),F(),x("list")}},t.addSearchPoly=function(e){_map.pm.enableDraw("Poly",{allowSelfIntersection:!1,snappable:!0,snapDistance:20,tooltips:!1,templineStyle:{color:_.COLORS.searchPolygon},hintlineStyle:{color:_.COLORS.searchPolygon,dashArray:[5,5]},pathOptions:{interactive:!1,color:_.COLORS.searchPolygon,fillColor:_.COLORS.searchPolygon,fillOpacity:.4},cursorMarker:!0}),_drawingMode={search:e.relatedTarget},_map.getContainer().focus()},t.addTruckCallback=function(e){o(e,1)},t.applyTierScope=function(){var e=document.querySelector('#tier-scope-modal input[name="tier_scope"][value="project"]');(e&&e.checked?function(){var n=document.getElementById("lisform");if(n){let t=I.replace("tier",""),e=new FormData;e.append("csrfmiddlewaretoken",n.csrfmiddlewaretoken.value),e.append("default_tier",t),(0,Ae.fetchPost)("project/tier/",e,1e4).then(e=>e.json()).then(e=>{e.error||(window._project_default_tier=parseInt(t),null!==C&&I!=="tier"+C&&(I="tier"+C,ce(),ue()),i(),B())}).catch(e=>{_.DEBUG&&console.log(e)})}}:function(){let n=document.getElementById("lisform"),a=document.getElementById("lis_id");if(n&&a){let t=I.replace("tier",""),e=new FormData;e.append("csrfmiddlewaretoken",n.csrfmiddlewaretoken.value),e.append("lis",JSON.stringify([parseInt(a.value)])),e.append("changed",JSON.stringify(["chosen_tier"])),e.append("chosen_tier",t),(0,Ae.fetchPost)("lis/update/",e,1e4).then(e=>e.json()).then(e=>{if(!e.error){let e=m(a.value);e&&(e.properties.chosen_tier=parseInt(t)),C=parseInt(t),B(),i()}}).catch(e=>{_.DEBUG&&console.log(e)})}})()}
1,t.copyLisUrlToClipboard=function(e){const t=e.currentTarget,n=t.querySelector("span"),a=t.querySelector("i");n&&a&&(e.preventDefault(),navigator.clipboard.writeText(t.href).then(()=>{const e=n.textContent;a.style.display="none",n.textContent="Kopiert!",t.style.pointerEvents="none",setTimeout(()=>{n.textContent=e,a.style.display="",t.style.pointerEvents=""},2e3)}).catch(()=>{console.error("Failed to copy URL to clipboard")}))},t.evalLisPowerTable=N,t.getMarker=m,t.handleDeleteLISFile=function(l){let i=document.getElementById("lisform"),r=document.getElementById("lis_id");if(i&&r){let e=new FormData,t=l?"img":"file",n=document.getElementById("lis-big-"+t),a=document.getElementById("lis-"+t+"-delete-btn"),o=n.dataset.imgid;e.append("csrfmiddlewaretoken",i.csrfmiddlewaretoken.value),a.disabled=!0,(0,Ae.fetchPost)("lis/deleteimg/"+o+"/",e,3e4).then(e=>e.json()).then(e=>{if(e.error)_.DEBUG&&console.log(e.error);else{document.getElementById("lis-"+t+"-close-button").click(),l?n.src="":n.href="";let e=m(r.value);e.properties.images&&(e.properties.images=e.properties.images.filter(e=>e.id!=o)),Ie(e.properties.images)}}).catch(e=>{_.DEBUG&&console.log(e)}).finally(()=>{a.disabled=!1})}},t.handleLisSurvey=function(){let e=document.getElementById("lis-survey-form"),n=document.getElementById("lis_id"),t=new FormData(e);var a=document.getElementsByClassName("lis-survey-input");let o={fields:{}};for(var l of a){var i=l.dataset.fieldKey;let e=l.value;""!==e&&("number"===l.type&&(e=parseFloat(e)),o.fields[i]=e)}t.append("survey",JSON.stringify(o));let r=document.getElementById("lis-survey-submit-button");r.disabled=!0,(0,Ae.fetchPost)("lis/"+n.value+"/update/",t,3e4).then(e=>e.json()).then(t=>{if(t.error)_.DEBUG&&console.log(t.error);else{let e=m(n.value);e.properties.survey=t.customLIS.survey,Se(_region.lis_survey,t.customLIS.survey)}}).catch(e=>{_.DEBUG&&console.log(e)}).finally(()=>{r.disabled=!1})},t.handleNewLisImg=function(){let n=document.getElementById("lis-img-proxy"),e=document.getElementById("lis-add-img-btn"),a=document.getElementById("lisform"),o=document.getElementById("lis_id");if(a&&o){let t=new FormData;for(let e=0;e<n.files.length;e++)t.append("image[]",n.files[e]);t.append("csrfmiddlewaretoken",a.csrfmiddlewaretoken.value),e.disabled=!0,(0,Ae.fetchPost)("lis/"+o.value+"/update/",t,3e4).then(e=>e.json()).then(t=>{if(t.customLIS.images){let e=m(t.customLIS.id);e.properties.images=t.customLIS.images,Ie(t.customLIS.images)}else t.message?_.DEBUG&&console.log(t.message):(console.log("Failed to update files from response:"),console.log(t))}).catch(e=>{_.DEBUG&&console.log(e)}).finally(()=>{e.disabled=!1})}},t.handleNewLisMessage=function(){let e=document.getElementById("lisform"),t=document.getElementById("lis_id"),n=document.getElementById("new-lis-message-submit-btn"),a=document.getElementById("new-lis-message-text");e&&t&&a&&n&&(n.disabled=!0,(0,Ae.fetchPost)("lis/"+t.value+"/message/new/","new-lis-message-form",3e4).then(e=>e.json()).then(e=>{_chat_messages=e,z(parseInt(t.value,10))}).catch(e=>{_.DEBUG&&console.log(e)}).finally(()=>{a.value="",n.disabled=!1}))},t.highlightCCP=function(e){var t=document.getElementById("lis_id");t&&(e=e||t.value);let n=m(e);return!!n&&(_map.setView(n.getLatLng(),18),_markerLayer.addLayer(n),L.DomUtil.addClass(n._icon,"bounce"),setTimeout(e=>{n._icon&&L.DomUtil.removeClass(n._icon,"bounce")},3e3),(0,Ae.toggleSidebarContracted)(!0),!0)},t.highlightFleetLocation=function(t){if(!_fleetLayer)return!1;let n=_fleetLayer.getLayers().find(e=>e.properties.id==t);return!!n&&(_map.setView(n.getLatLng(),18),L.DomUtil.addClass(n._icon,"bounce"),setTimeout(e=>{n._icon&&L.DomUtil.removeClass(n._icon,"bounce")},3e3),!0)},t.lisModalIsDirty=s,t.markDirty=x,t.openLayersTab=function(){const e=document.getElementById("tab-layers");e&&(e.classList.remove("disabled-sidebar-tab"),_map.sidebar.open("layers"))},t.openLisModal=u,t.openLocationDetailsTab=function(){if(_selectedMarker){const e=document.getElementById("tab-site-manager-detail");e&&(e.classList.remove("tab-hidden"),_map.sidebar.open("site-manager-detail"))}},t.openSiteManagerTab=function(){const e=document.getElementById("tab-site-manager");e&&(e.classList.remove("disabled-sidebar-tab"),_map.sidebar.open("site-manager"))}
1,t.openTierScopeModal=function(){var e=document.getElementById("eval-v2-tier-apply-btn");if(!e||!e.disabled){let e=document.getElementById("tier-scope-modal-title"),t=(e&&(e.textContent=interpolate(gettext("Tier %(tier)s übernehmen für â¦"),{tier:I.replace("tier","")},!0)),document.querySelector('#tier-scope-modal input[name="tier_scope"][value="location"]'));t&&(t.checked=!0),$("#tier-scope-modal").foundation("open")}},t.removeAllEvalContextLayers=D,t.removeCustomCPCallback=function(o){var t=document.getElementById("lisform");if(t&&confirm(gettext("Sind Sie sicher, dass dieser Ladestandort gelöscht werden soll?"))){let e=new FormData;e.append("csrfmiddlewaretoken",t.csrfmiddlewaretoken.value),(0,Ae.fetchPost)("lis/"+o.properties.id+"/delete/",e,1e4).then(e=>{e.json().then(e=>{H(o);{const a=document.getElementById("tab-site-manager-detail");a&&(a.classList.add("tab-hidden"),_map.sidebar.close(),document.dispatchEvent(new CustomEvent("lismap:locationClosed")),A(()=>xe()),_selectedMarker&&((0,y.updateLisMarkerIcon)(_selectedMarker,!1),_selectedMarker=null))}var t=null!==_region.lisLimit&&_markers.length>=_region.lisLimit,n=(_map.contextmenu.setDisabled((0,Ae.getCMItemByLabel)("Platziere Ladestandort"),t),e.nearby||[]);for(let t=0;t<n.length;t++){let e=m(n[t]);e&&(e.properties.evaluation=null)}})}).catch(e=>{alert(gettext("Ladestandort konnte nicht gelöscht werden.")),_.DEBUG&&console.log(e)})}},t.removeCustomCPFromMap=H,t.removeSearchPoly=function(n){var t=document.getElementById("lisform");if(t){let e=new FormData;e.append("csrfmiddlewaretoken",t.csrfmiddlewaretoken.value),e.append("search","removed"),(0,Ae.fetchPost)("lis/"+n.relatedTarget.properties.id+"/update/",e,1e4).then(e=>{e.json().then(e=>{let t=n.relatedTarget;(t.properties.search=null,y.updateLisMarkerMisc)(t,t.properties)})}).catch(e=>{alert(gettext("Suchraum konnte nicht gelöscht werden.")),_.DEBUG&&console.log(e)})}},t.renderAbcBadge=V,t.resetLocationTier=function(){let t=document.getElementById("lisform"),n=document.getElementById("lis_id");if(t&&n){let e=new FormData;e.append("csrfmiddlewaretoken",t.csrfmiddlewaretoken.value),e.append("lis",JSON.stringify([parseInt(n.value)])),e.append("changed",JSON.stringify(["chosen_tier"])),e.append("chosen_tier",""),(0,Ae.fetchPost)("lis/update/",e,1e4).then(e=>e.json()).then(e=>{if(e.error)console.error(e.error);else{let e=m(n.value),t=(e&&(e.properties.chosen_tier=null),C=null,window._project_default_tier);1!==t&&2!==t&&3!==t&&(t=2),I="tier"+t,ce(),ue(),B(),i()}}).catch(e=>{console.error(e)})}},t.reverse_geocode=function(){let a=document.getElementById("lisform"),o=document.getElementById("lis_id");if(a&&o){let e=document.getElementById("lis-address-geocode"),t=document.getElementById("lis-address"),n=(e.disabled=!0,t.disabled=!0,new FormData);n.append("csrfmiddlewaretoken",a.csrfmiddlewaretoken.value),n.append("lis",o.value),(0,Ae.fetchPost)("lis/geocoder/",n,1e4).then(e=>e.json()).then(t=>{if(t.address){let e=m(o.value);e.properties.address=t.address,e.properties.address_details=t.address_details,R(e),document.getElementById("dirty-address").checked=!1,document.getElementById("dirty-address_details").checked=!1}}).finally(()=>{e.disabled=!1,t.disabled=!1})}},t.saveLisChanges=E,t.updateAbcBadge=h,t.updateLisEvaluationTruck=we,t.updateLisModal=p,t.updateLisMultiModal=function(){let a=document.getElementById("lis-multi-form");if(a){const e=$("#site-manager-table"),t=e.DataTable().rows({selected:!0}),n=$.map(t.data(),e=>e.lis_id),d=_markers.filter(e=>n.includes(e.properties.id));var o=d.some(e=>null!==e.properties.evaluation),l=0<t.count();a.lis.value=JSON.stringify(d.map(e=>e.properties.id)),document.getElementById("lis-multi-count-spn").textContent=t.count()+"",document.getElementById("lis-multi-selected-text").style.display=l?"":"none",document.getElementById("lis-multi-no-selection-text").style.display=l?"none":"",document.getElementById("btn-multi-submit").disabled=!l,document.getElementById("btn-multi-discard").disabled=!l;const c=document.getElementById("dirty-multi");c.textContent="{}";for(let n of a.elements)if(n.name){"vehicle_type"===n.name?(n.parentElement.style.display="",_region.allow_truck_eval?o?(n.disabled=!0,n.title=gettext("Achtung: Der Fahrzeugtyp kann nicht für Standorte mit bereits existierender Bewertung geändert werden. Setzen Sie die Bewertung zuerst zurück, bevor Sie den Fahrzeugtyp ändern.")):(n.disabled=!l,n.title=""):n.parentElement.style.display="none"):n.disabled=!l;let e=void 0,t=!1;var i,r=0===_markers.length||void 0!==_markers[0].properties[n.name];for(i of d){var s=i.properties[n.name];if(void 0!==e&&e!==s){t=!0;break}e=s}r&&!t&&void 0!==e?function(e,t){"checkbox"===e.type?e.checked=t:e.value=null===t?"":t}(n,e):r&&function(e){"checkbox"===e.type?e.checked=!1:"select-one"===e.type?e.selectedIndex=-1:e.value=""}(n),n.onchange=e=>{let t=JSON.parse(c.textContent);t[n.name]=n.value,c.textContent=JSON.stringify(t)}}document.getElementById("btn-multi-submit").onclick=e=>{var t=JSON.parse(c.textContent);c.textContent="{}",Object.keys(t).length&&(a.changed.value=JSON.stringify(Object.keys(t)),(0,Ae.fetchPost)("lis/update/","lis-multi-form",3e4).then(e=>e.json()).then(e=>{if(e.error)console.log(e.error);else{for(var t of Object.entries(e.customLIS)){var n=m(t[0]);n&&(Object.assign(n.properties,t[1]),(0,y.updateLisMarkerIcon)(n))}
1(0,v.renderSiteManagerTable)()}})),e.preventDefault(),$("#lis-multi-modal").foundation("close")},document.getElementById("btn-multi-discard").onclick=e=>{e.preventDefault(),$("#lis-multi-modal").foundation("close")},$("#lis-multi-modal").foundation("open")}},t.updateModalStatusCircle=q;var _=e("./map"),y=e("./features"),a=e("./chat"),v=e("./table"),Ae=e("./utils"),b=function(e,i,r,s){return new(r=r||Promise)(function(n,t){function a(e){try{l(s.next(e))}catch(e){t(e)}}function o(e){try{l(s.throw(e))}catch(e){t(e)}}function l(e){var t;e.done?n(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t)})).then(a,o)}l((s=s.apply(e,i||[])).next())})};function m(t){return _markers.find(e=>e.properties.id==t)}function o(t){let n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0;var a=t.properties||{},o=document.getElementById("lisform");if(o){let e=new FormData;e.append("csrfmiddlewaretoken",o.csrfmiddlewaretoken.value),e.append("geom",(0,Ae.geoJSONdumps)(t.latlng)),e.append("vehicle_type",n.toString()),e.append("osm_id",a.osm_id||""),(0,Ae.fetchPost)("lis/create/",e,1e4).then(e=>e.json()).then(t=>{let n=t.customLIS;var a=t.nearby||[];if(n){(0,y.showResult)(t),_region.customLIS.push(n);let e=m(n.id);e&&e.on("click",e=>{u(n.id)}),document.dispatchEvent(new CustomEvent("lismap:locationOpened")),u(n.id);var o=null!==_region.lisLimit&&_markers.length>=_region.lisLimit;_map.contextmenu.setDisabled((0,Ae.getCMItemByLabel)("Platziere Ladestandort"),o)}for(let t=0;t<a.length;t++){let e=m(a[t]);e&&(e.properties.evaluation=null)}if((0,v.renderSiteManagerTable)(),n){const e=$("#site-manager-table").DataTable();0<e.rows({selected:!0}).count()&&e.rows("#"+n.id).select()}t.error&&alert(t.error)}).catch(e=>{_.DEBUG&&console.log(e)})}}function z(t){(0,a.renderChat)(_chat_messages,"lis-event-log-messages",e=>e.LIS==t,"lis")}function p(Me){var g;return b(this,void 0,void 0,function*(){var o,l=document.getElementById("lisform");let i=document.getElementById("lis_id");if(Me&&l&&i){A(()=>{var e=Me.properties.id;M&&M.lis==e||(xe(),M={lis:e,horizon:!1,legacy:!1},se=!1)});let e=!1;i.value!=Me.properties.id&&(e=!0,null!=(g=document.getElementById("lis-modal-save-changes"))&&g.classList.add("hidden"),D()),_region.allow_eval_context_rendering&&(0,Ae.request)({path:"lis/"+Me.properties.id+"/eval_context",timeout:2e3}).then(e=>{var N,t=Me,z=0===Object.keys(e).length;for(N of _lis_evaluation_constants.types){const s=document.getElementById("eval-context-"+N.name);if(s){s.querySelector(".content").innerHTML="";const re=document.getElementById("debug-info-lis-"+N.name).querySelector(".replaced-by-eval-cxt");re&&(z?(re.style.display="",s.querySelector(".eval-cxt-not-available-info").classList.remove("hidden")):(re.style.display="none",s.querySelector(".eval-cxt-not-available-info").classList.add("hidden")))}}if(e.existing_lis){var j=e.existing_lis,q=t;for(const d of j){var R=d.scenario;const se=document.getElementById("eval-context-"+R).querySelector(".content");if(se){const de=d.locations,c=de.filter(e=>!e.is_own);var R=d.radius,U=c.reduce((e,t)=>e+t.cps.reduce((e,t)=>e+t.count,0),0),H=document.getElementById("eval-context-card-template");let e=document.importNode(H.content,!0);e.querySelector(".value").textContent=String(U),e.querySelector(".info").textContent=interpolate(gettext("%(power_class)s Ladepunkte innerhalb von %(radius)s m"),{power_class:d.power_classes.join("+"),radius:R},!0);H=gettext("Schätzt Ihren Anteil am lokalen Rohpotential unter Berücksichtigung der Konkurrenzsituation im Umkreis. Niedrige Werte deuten auf viele oder nahegelegene Wettbewerber hin.");if(qe(e.querySelector(".classification"),d.lis_factor,e=>e<=33?{label:gettext("Hohe Konkurrenz"),cssClass:"bad"}:e<=80?{label:gettext("Mittlere Konkurrenz"),cssClass:"neutral"}:e<=99?{label:gettext("Niedrige Konkurrenz"),cssClass:"good"}:{label:gettext("Keine Konkurrenz"),cssClass:"good"},!0,H),0===de.length)e.querySelector(".add-to-map-toggle").classList.add("hidden");else{0===c.length?e.querySelector(".add-to-map-toggle").classList.add("hidden"):(Ne(e.querySelector(".card-header"),()=>
1{c.forEach(e=>{L.marker(e.geom.coordinates,{icon:Re(e.cps)}).addTo(De)})}),Fe(e.querySelector(".add-to-map-toggle"),q,n=>{c.forEach(e=>{var t="<b>"+(e.cpo||gettext("Unbekannt"))+"</b><br>"+[...e.cps].map(e=>e.count+"Ã"+e.power+" kW").join(", ");L.marker(e.geom.coordinates,{icon:Re(e.cps)}).bindPopup(t,{autoClose:!1}).on("mouseover",function(){this.openPopup()}).on("mouseout",function(){this.closePopup()}).addTo(n)})}));const ce=e.querySelector(".details-content");var $=document.getElementById("eval-context-existing-lis-location-template");for(const u of[...de].sort((e,t)=>e.distance-t.distance)){const m=document.importNode($.content,!0);var G=u.is_own?u.name||gettext("Eigener Standort"):u.cpo||gettext("Unbekannt");m.querySelector(".operator > .name").textContent=G,m.querySelector(".distance").textContent=Math.round(u.distance)+" m";const me=m.querySelector(".cps"),p=(me.textContent=u.cps.map(e=>e.count+" à "+e.power+" kW").join(" ⢠"),m.querySelector(".location"));if(u.is_own){p.classList.add("own");const pe=document.createElement("div");pe.className="pill own-pill",pe.textContent=gettext("Eigener Standort"),p.querySelector(".pills").insertBefore(pe,p.querySelector(".distance"))}Ne(p,()=>{De.clearLayers(),L.marker(u.geom.coordinates,{icon:Re(u.cps),opacity:u.is_own?0:1}).addTo(De)}),ze(p,q),ce.appendChild(m)}const ue=e.querySelector(".details-toggle");ue.classList.remove("inactive"),ue.addEventListener("click",e=>{e.stopPropagation(),ue.classList.toggle("on")?ce.classList.remove("collapsed"):ce.classList.add("collapsed")})}se.appendChild(e)}}}if(e.population){j=e.population;var V=t;for(const g of j){var n=g.scenario;const ge=document.getElementById("eval-context-"+n).querySelector(".content");if(ge){const f=g.radius,fe=g.total_population;n=document.getElementById("eval-context-card-template");let e=document.importNode(n.content,!0);if(0==f)e.querySelector(".info").textContent=gettext("Die Bevölkerung wird für diese Leistungsklasse nicht berücksichtigt."),e.querySelector(".actions").style.display="none",e.querySelector(".classification").style.display="none";else if(e.querySelector(".value").textContent=fe?fe.toLocaleString(_language_code):"0",e.querySelector(".info").textContent=interpolate(gettext("Einwohner innerhalb %(radius)s m"),{radius:f},!0),fe){qe(e.querySelector(".classification"),1-g.private_factor,e=>e<=33?{label:gettext("Geringer öffentlicher Anteil"),cssClass:"bad"}:e<=67?{label:gettext("Mittlerer öffentlicher Anteil"),cssClass:"neutral"}:{label:gettext("Hoher öffentlicher Anteil"),cssClass:"good"});const he=V.getLatLng(),_e={color:"#8B5CF6",weight:2,opacity:.6,fillColor:"#8B5CF6",fillOpacity:.1};Ne(e.querySelector(".card-header"),()=>{De.clearLayers(),L.circle(he,Object.assign({radius:f},_e)).addTo(De)});n=e.querySelector(".add-to-map-toggle");Fe(n,V,e=>{L.circle(he,Object.assign({radius:f},_e)).addTo(e)});const ye=g.bev_share;if(null!=ye){const ve=e.querySelector(".details-content");n=document.getElementById("eval-context-traffic-detail-template");const be=document.importNode(n.content,!0),xe=(be.querySelector(".type").textContent=gettext("BEV-Anteil"),be.querySelector(".pill").textContent=ye.toLocaleString(_language_code)+" %",ve.appendChild(be),e.querySelector(".details-toggle"));xe.classList.remove("inactive"),xe.addEventListener("click",e=>{xe.classList.toggle("on")?ve.classList.remove("collapsed"):ve.classList.add("collapsed")})}}else e.querySelector(".actions").style.display="none",e.querySelector(".classification").style.display="none";ge.appendChild(e)}}}if(e.poi){var W=e.poi,Z=t;for(const h of W){var K=h.scenario;const Ee=document.getElementById("eval-context-"+K).querySelector(".content");if(Ee){const _=h.pois;K=h.radius;const we=h.high_relevance_poi_cats;var J=_.length,Y=document.getElementById("eval-context-card-template");let t=document.importNode(Y.content,!0);t.querySelector(".value").textContent=String(J),t.querySelector(".info").textContent=gettext("POIs")+" "+interpolate(gettext("innerhalb %(radius)s m"),{radius:K},!0);const Le=t.querySelector(".add-to-map-toggle");if(0===_.length)Ee.appendChild(t),Le.classList.add("hidden");else{Ne(t.querySelector(".card-header"),()=>{De.clearLayers();for(const e of _)L.marker(e.latlng,{icon:je(e.osmkv)}).addTo(De)}),Fe(Le,Z,e=>{for(const t of _)L.marker(t.latlng,{icon:je(t.osmkv)}).bindPopup("<b>"+(t.name||gettext("Unbekannt"))+"</b><br>"+pgettext("OSM_POI",t.osmkv[0]+":"+t.osmkv[1])+"<br>"+interpolate(gettext("%(dist)s m entfernt"),{dist:t.dist},!0),{autoClose:!1}).on("mouseover",function(){this.openPopup()}).on("mouseout",function(){this.closePopup()}).addTo(e)});const y=t.querySelector(".details-content");var X=document.getElementById("eval-context-poi-category-template"),Q=document.getElementById("eval-context-individual-poi-template");const ke=new Map;for(const v of _){var a=v.osmkv[0]+":"+v.osmkv[1];const Ie=ke.get(a);Ie?(Ie.count++,Ie.pois.push(v)):ke.set(a,{name:pgettext("OSM_POI",a),count:1,pois:[v],high_relevance:!we||we.includes(a)})}Y=[...ke.values()].sort((e,t)=>
1e.name.localeCompare(t.name));let e=0;for(const b of Y){const x=document.importNode(X.content,!0),Ce=(x.querySelector(".name").textContent=b.name||"â",x.querySelector(".count").textContent="("+b.count+")",b.high_relevance||(x.querySelector(".poi-category").classList.add("low-relevance"),e+=b.pois.length),x.querySelector(".poi-list"));b.pois.sort((e,t)=>e.dist-t.dist);for(const w of b.pois){const k=document.importNode(Q.content,!0);w.name?k.querySelector(".name").textContent=w.name:(k.querySelector(".name").textContent=gettext("Unbekannt"),k.querySelector(".name").style.fontStyle="italic"),k.querySelector(".dist").textContent=w.dist+" m";var ee=k.querySelector(".individual-poi");Ne(ee,()=>{De.clearLayers(),L.marker(w.latlng,{icon:je(w.osmkv)}).addTo(De)}),ze(ee,Z),Ce.appendChild(k)}const E=x.querySelector(".poi-category");Ne(E,()=>{De.clearLayers();const t=je(b.pois[0].osmkv);b.pois.forEach(e=>{L.marker(e.latlng,{icon:t}).addTo(De)})}),Fe(E.querySelector(".add-to-map-toggle"),Z,e=>{for(const t of b.pois)L.marker(t.latlng,{icon:je(t.osmkv)}).bindPopup("<b>"+(t.name||gettext("Unbekannt"))+"</b><br>"+pgettext("OSM_POI",t.osmkv[0]+":"+t.osmkv[1])+"<br>"+interpolate(gettext("%(dist)s m entfernt"),{dist:t.dist},!0),{autoClose:!1}).on("mouseover",function(){this.openPopup()}).on("mouseout",function(){this.closePopup()}).addTo(e)}),E.querySelector(".poi-category-header").addEventListener("click",e=>{e.target.closest(".add-to-map-toggle")||(e=e.currentTarget.parentElement.classList.toggle("collapsed"),E.querySelector(".details-toggle").classList.toggle("on",!e))}),y.appendChild(x)}if(0<e){const S=(0,Ae.addElem)("subset-toggle",gettext("Alle anzeigen"),y,"DIV"),I=((0,Ae.addElem)("icon icon--small ion-md-arrow-dropdown",null,S,"I"),(0,Ae.addElem)("subset-toggle hidden",gettext("Weniger anzeigen"),y,"DIV")),Be=((0,Ae.addElem)("icon icon--small ion-md-arrow-dropup",null,I,"I"),y.querySelectorAll(".poi-category.low-relevance"));S.addEventListener("click",e=>{Be.forEach(e=>e.classList.add("show")),S.classList.add("hidden"),I.classList.remove("hidden")}),I.addEventListener("click",e=>{Be.forEach(e=>e.classList.remove("show")),I.classList.add("hidden"),S.classList.remove("hidden")})}const Se=t.querySelector(".details-toggle");Se.classList.remove("inactive"),Se.addEventListener("click",e=>{Se.classList.toggle("on")?y.classList.remove("collapsed"):y.classList.add("collapsed")}),Ee.appendChild(t)}}}}if(e.traffic){var W=e.traffic,o=t;for(const C of W){var l=C.scenario;const Te=document.getElementById("eval-context-"+l).querySelector(".content");if(Te){const B=C.relevant_traffic;l=document.getElementById("eval-context-card-template");let e=document.importNode(l.content,!0);if(B&&null!=B.average_daily_traffic){let n=B.road_name||gettext("StraÃenname unbekannt");e.querySelector(".value").textContent=B.average_daily_traffic.toLocaleString(_language_code),e.querySelector(".info").textContent=gettext("Fahrzeuge / Tag"),qe(e.querySelector(".classification"),function(e,t){t={AUT:7e4,CHE:78e3,DEU:97230,DNK:70812,FRA:83544,GBR:113412,GRC:63113,HUN:43826,ITA:72488,NLD:61432,NOR:48852,POL:52705,PRT:70630,SVN:54061,SWE:58881}[t||"DEU"];e=(Math.log(e+65e3)-Math.log(66e3))/(Math.log(t+65e3)-Math.log(66e3));return e=Math.min(1,Math.max(0,e))}(B.average_daily_traffic),e=>e<=33?{label:gettext("Geringe Verkehrsfrequenz"),cssClass:"bad"}:e<=67?{label:gettext("MäÃige Verkehrsfrequenz"),cssClass:"neutral"}:{label:gettext("Hohe Verkehrsfrequenz"),cssClass:"good"});Ne(e.querySelector(".card-header"),()=>{De.clearLayers(),ie(De)});var l=e.querySelector(".add-to-map-toggle"),i=(Fe(l,o,e=>{ie(e)}),C.nearest_highways),r=C.ten_t_distance;const T=C.junction_info;if(i&&0<Object.keys(i).length||r&&0<Object.keys(r).length||T){const P=e.querySelector(".details-content");P.classList.add("traffic-details","details-content");var te=document.getElementById("eval-context-traffic-detail-template");if(i){var ne,ae,l={motorway:gettext("Autobahn"),trunk:gettext("KraftfahrtstraÃe"),primary:gettext("BundesstraÃe"),secondary:gettext("Ãberregionale StraÃe")};for([ne,ae]of Object.entries(l))if("motorway"===ne&&T){const O=document.importNode(te.content,!0),Oe=T.ref?" ("+T.ref+")":"";O.querySelector(".type").textContent=gettext("Autobahn"),O.querySelector(".name").textContent=(T.name||"â")+Oe,O.querySelector(".pill").textContent=Math.round(T.route_length_m)+" m",(T.route||T.point)&&(Ne(O.querySelector(".traffic-detail"),()=>{De.clearLayers(),T.route&&(L.geoJSON(T.route,{style:{color:"white",weight:7,opacity:.7}}).addTo(De),L.geoJSON(T.route,{style:{color:"#004B80",weight:5,opacity:.7}}).addTo(De)),T.point&&L.marker(T.point,{icon:L.circleIcon({color:"#50B316"})}).bindTooltip((T.name||"")+Oe).addTo(De)}),ze(O.querySelector(".traffic-detail"),o)),P.appendChild(O)}else{const M=i[ne];
1if(M){const A=document.importNode(te.content,!0);A.querySelector(".type").textContent=ae,A.querySelector(".name").textContent=M.name||"â",A.querySelector(".pill").textContent=M.distance+" m",M.point&&(Ne(A.querySelector(".traffic-detail"),()=>{De.clearLayers(),L.marker(M.point,{icon:L.circleIcon({color:"#50B316"})}).bindTooltip(M.label+": "+(M.name||"â")).addTo(De)}),ze(A.querySelector(".traffic-detail"),o)),P.appendChild(A)}}}if(r){var oe,le,l={core:gettext("TEN-T Kernnetz"),comprehensive:gettext("TEN-T erweitertes Netz"),afif_2021_150kw:gettext("AFIF 2021 150 kW"),afif_2022_150kw:gettext("AFIF 2022 150 kW")};for([oe,le]of Object.entries(l)){const D=r[oe];if(D){const F=document.importNode(te.content,!0);F.querySelector(".type").textContent=le,F.querySelector(".name").textContent=D.name,F.querySelector(".pill").textContent=(Math.round(10*D.distance)/10).toLocaleString(_language_code)+" km",D.point&&(Ne(F.querySelector(".traffic-detail"),()=>{De.clearLayers(),L.marker(D.point,{icon:L.circleIcon({color:"#50B316"})}).bindTooltip(D.label+": "+D.distance+" km").addTo(De)}),ze(F.querySelector(".traffic-detail"),o)),P.appendChild(F)}}}const Pe=e.querySelector(".details-toggle");Pe.classList.remove("inactive"),Pe.addEventListener("click",e=>{Pe.classList.toggle("on")?P.classList.remove("collapsed"):P.classList.add("collapsed")})}function ie(e){B.isodist&&L.geoJSON(B.isodist).addTo(e);var t=B.average_daily_traffic.toLocaleString(_language_code),t=n+"<br><b>"+interpolate(gettext("%(dtv)s Fzg/Tag"),{dtv:t},!0)+"</b><br><br>"+gettext("Fahrdistanz zu ihrem Standort")+"<br><b>"+Math.round(B.distance)+" m</b>";B.route&&(L.geoJSON(B.route,{style:{color:"white",weight:7,opacity:.7}}).addTo(e),L.geoJSON(B.route,{style:{color:"#004B80",weight:5,opacity:.7}}).bindTooltip(t).addTo(e)),B.closest_point&&L.marker([B.closest_point[1],B.closest_point[0]],{icon:L.circleIcon({color:"#50B316"})}).bindTooltip(t).addTo(e)}}else e.querySelector(".info").textContent=gettext("Verkehr wird für diese Leistungsklasse nicht berücksichtigt."),e.querySelector(".actions").style.display="none",e.querySelector(".classification").style.display="none";Te.appendChild(e)}}}}).catch(e=>{_.DEBUG&&console.log(e)}),yield E(),i.value=Me.properties.id,_selectedMarker&&(0,y.updateLisMarkerIcon)(_selectedMarker,!1),(0,y.updateLisMarkerIcon)(Me,!0),1==(l=Me.properties.vehicle_type)?null!=(l=document.getElementById("lis-modal"))&&l.classList.add("truck"):null!=(l=document.getElementById("lis-modal"))&&l.classList.remove("truck");{var l=Me.properties.name;let t=document.getElementById("lis-name-header"),n=document.getElementById("lis-name"),e=document.getElementById("lis-name-edit");t&&n&&"hidden"!==n.type&&(n.type="hidden",t.style.display="");t&&(t.textContent=l);t&&e&&n&&(e.onclick=e=>{"hidden"===n.type?(t.style.display="none",n.type="",n.focus(),n.value=t.textContent,n.onchange=e=>{n.value!=t.textContent&&x("name"),t.textContent=n.value,t.style.display="",n.type="hidden"}):n.onchange(null)})}G(Me),W(Me.getLatLng(),Me.properties.locked),R(Me);{let e=document.getElementById("public_type_select");e.value=Me.properties.public_type}{let e=document.getElementById("status_select");e.value=Me.properties.status,q(Me.properties.status)}Se(_region.lis_survey,Me.properties.survey),Ie(Me.properties.images);var r=Me.properties.power_table||[];{let t=document.getElementById("lis-power-table");if(t){var s=t.rows.length;for(let e=0;e+2<s;e++)t.deleteRow(1);N()}}for(let e=0;e<r.length;e++)ke(r[e].id,r[e].count,r[e].power,r[e].demand_factor);{var d=Me.properties.checklist||[];let t=document.getElementById("lis-checklist");if(t){t.innerHTML="";for(let e=0;e<d.length;e++){var c=Le(d[e]);t.appendChild(c)}F()}}z(Me.properties.id);let t=document.getElementById("id_invite");if(t){let e=new URL(t.href);e.searchParams.set("lis",Me.properties.id),e.searchParams.set("next","map"),t.href=e.toString()}let n=document.getElementById("id_lis_url"),a=(n&&(n.href=Me.properties.url),document.getElementById("id_lis_profile"));if(a&&(l=new URL(window.location+""),a.href=l.origin+l.pathname+"lis_profile/"+Me.properties.id+"/"),_simplemde){let e=document.getElementById("lis-description");l=e.onchange;e.onchange=()=>{},_simplemde.value(Me.properties.description),e.value=Me.properties.description,e.onchange=l,_simplemde.codemirror.refresh()}for(o of["grid_connector_power","accessibility_24_7","sanitary_available","gastro_available","rejection_reason","cooperation_partner","landlord","anchor_tenant","funding_comment","responsible_user","fleet_avail_time","fleet_contact_email"]){let e=document.getElementById("lis-"+o);e?e.value=Me.properties[o]:console.log("Field "+o+" not found")}{let t=document.getElementById("lis-fleet-match-btn");t&&(t.onclick=e=>b(this,void 0,void 0,function*(){yield E();var e=document.getElementById("lis-fleet-match-radius"),e=t.dataset.baseUrl+"?charging_location_id="+Me.properties.id+"&radius="+e.value;window.location.href=e}))}!function(n,e){$.fn.dataTable.isDataTable("#lis-fleet-match-table")||Z([]);let a=document.getElementById("lis-fleet-match-json-btn");if(a){let t=document.getElementById("lis-fleet-match-radius");var o=e=>b(this,void 0,void 0,function*(){a.disabled=!0,yield E(),(0,Ae.request)({path:"fleet/match",timeout:15e3,params:{charging_location_id:n.properties.id,radius:t.value}}).then(e=>{Z(e.matches)}).finally(()=>{a.disabled=!1})}),o=(a.onclick=o,t.onchange=o,document.getElementById("acc-item-fleet").parentElement.classList.contains("is-active"));e&&o&&a.click()}}(Me,e),!function n(a){let e=document.getElementById("lis-lock");if(!e)return;
1let t=["ion-md-unlock","ion-md-lock"];e.classList.add(t[a.properties.locked+0]);e.classList.remove(t[1-a.properties.locked]);e.onclick=e=>{if(!a.properties.locked||!_region.lis_evaluation.running){let e=document.getElementById("lisform").csrfmiddlewaretoken.value,t=new FormData;t.append("lock",!a.properties.locked+""),t.append("csrfmiddlewaretoken",e),(0,Ae.fetchPost)("lis/"+a.properties.id+"/update/",t).then(e=>e.json()).then(e=>{a.properties=e.customLIS,W(a.getLatLng(),a.properties.locked),n(a),(0,v.renderSiteManagerTable)(),(0,y.updateLisMarkerIcon)(a),(0,y.updateLisMarkerMisc)(a,a.properties)}).catch(e=>{_.DEBUG&&console.log(e),alert(gettext("Aktion nicht möglich."))})}}}(Me);var u=Me.properties.rating;for(let a in u){var m=u[a];(0,Ae.showRating)(a,m);let n=document.getElementById(a+"-rating"),e=document.getElementById(a+"-rating-div");if(n&&e){n.value=m;for(let t=1;t<=5&&2<=_permissions.evaluateCustomLis;t++){let e=document.getElementById(a+"-rating-"+t);e&&(e.style.cursor="pointer",e.onclick=e=>{t==+n.value?(n.value="0",(0,Ae.showRating)(a,0)):(n.value=t+"",(0,Ae.showRating)(a,t)),x("rating")},e.onmouseover=e=>{(0,Ae.showRating)(a,t)})}e.onmouseleave=e=>{(0,Ae.showRating)(a,n.value)}}}{l=Me.properties;let n=document.getElementById("lis-evaluation-car"),a=document.getElementById("lis-evaluation-truck"),o=document.getElementById("lis-eval-missing-wrapper-div");if(n&&a&&o){var p=l.evaluation&&1!=l.vehicle_type;J(l),l.evaluation?1==l.vehicle_type?(n.style.display="none",o.style.display="none",a.style.display="",we(l.evaluation)):(a.style.display="none",o.style.display="none",n.style.display="",function(o){var l=["score_population","score_poi","score_traffic","power","count"],i=["pop","income","green","poi","traffic","lis","own_lis"],r=["motorway","trunk","primary","secondary"],s=["search_area_id","los_id","region_name_full","category_full"];!function(){if(!_e){var e=document.querySelectorAll(".lis-eval-info-details-toggle");if(e.length){for(let n of Array.from(e)){let t=n.nextElementSibling;t&&t.classList.contains("lis-eval-info-details")&&n.addEventListener("click",()=>{var e=t.classList.toggle("collapsed");n.classList.toggle("open",!e)})}_e=!0}}}();for(var d of Object.keys(o.evaluation||{}))if("info"!=d){var c=document.getElementById("lis-eval-table"+d);if(c)if(l.length+1!=c.rows[0].cells.length)console.log("width mismatch: "+(l.length+1)+" vs "+c.rows[0].cells.length);else{let e=c.tBodies[0];e.innerHTML="";var u,m,p,g,f,h=o.evaluation[d];for(u in h){var _=e.insertRow(-1);(0,Ae.addElem)("",u,_,"TH");for(let e=0;e<l.length;e++){var y=Math.round(h[u][l[e]]).toLocaleString(_language_code);(0,Ae.addElem)("",y,_,"TD")}}let t=document.getElementById("existing_lis_span_"+d);t&&(h&&Object.values(h).length?(c=Object.values(h)[0].score_existing_lis,t.innerText=(0,Ae.roundToStr)(100*c,0)+"%"):t.innerText="-");for(let a=0;a<i.length;a++){var v=i[a];let e={},t=document.getElementById("radius_"+v+"_span_"+d),n=document.getElementById("value_"+v+"_span_"+d);try{e=o.evaluation.info.scenarios[d][v]}catch(e){}e=e||{},t&&(t.innerText=e.radius||"-"),n&&(e.value&&"traffic"==v&&"en"==_language_code?n.innerText=e.value.replace("Fzg/Tag","vehicles/day"):n.innerText=e.value||"-")}for(let e=0;e<r.length;e++){var b=r[e];let t={},n=document.getElementById("value_nearest_highway_"+b+"_"+d);try{t=o.evaluation.info.highways[b]}catch(e){}if(n)if(t){var b=t.distance/1e3,x=Math.min(3,Math.max(0,5-Math.log10(t.distance)));let e=(0,Ae.roundToStrLocal)(b,x,_language_code)+" km";
1t.name&&(e=e+" ("+t.name+")"),n.innerText=e}else n.innerText="-"}{let e=document.getElementById("evaluation_ten_t_core_distance_"+d);o.evaluation.info.ten_t_core_distance?(c=o.evaluation.info.ten_t_core_distance,m=1<c?1:0,e.innerText=(0,Ae.roundToStrLocal)(c,m,_language_code)+" km"):e.innerText="-"}{let e=document.getElementById("evaluation_ten_t_comprehensive_distance_"+d);o.evaluation.info.ten_t_comprehensive_distance?(c=o.evaluation.info.ten_t_comprehensive_distance,m=1<c?1:0,e.innerText=(0,Ae.roundToStrLocal)(c,m,_language_code)+" km"):e.innerText="-"}for(p of["2021","2022"]){let e=document.getElementById("evaluation_afif_"+p+"_150kw_distance_"+d);o.evaluation.info["ten_t_afif_"+p+"_150kw_distance"]?(g=o.evaluation.info["ten_t_afif_"+p+"_150kw_distance"],f=1<g?1:0,e.innerText=(0,Ae.roundToStrLocal)(g,f,_language_code)+" km"):e.innerText="-"}var c=o.evaluation.info.parking_area_radius,E=o.evaluation.info.parking_area;let n=document.getElementById("radius_parking_span_"+d),a=document.getElementById("value_parking_span_"+d);n&&a&&(n.innerText=c||"-",c?(c=(e=>Math.floor(.079*Math.pow(e,.879)))(E=E||0).toLocaleString(_language_code),E=Math.round(E).toLocaleString(_language_code),a.innerText=c+" ("+E+" m²)"):a.innerText="-");for(let n=0;n<s.length;n++){var w=s[n];let e=null,t=document.getElementById("evaluation_"+w+"_"+d);try{e=o.evaluation.info.dnetz_search_area[w]}catch(e){}t&&(e?t.innerText=e:t.innerText="-")}{let e=document.getElementById("evaluation_extended_radius_"+d);o.evaluation.info.dnetz_search_area?(c=o.evaluation.info.dnetz_search_area.in_extended_radius,E=o.evaluation.info.dnetz_search_area.extended_distance,e.innerText=!0===c?"ja ("+E+" m)":!1===c?"nein":"-"):e.innerText="-"}{let e=document.getElementById("evaluation_grid_op_"+d);o.evaluation.info.grid_operator?e.innerText=o.evaluation.info.grid_operator:e.innerText="-"}}}}(l)):(n.style.display="none",a.style.display="none",o.style.display="",K(l));let e=document.getElementById("eval-version-toggle-wrapper"),t=document.getElementById("evaluation-car-v2");p?(e&&(e.style.display="flex"),function(n){let a=n.evaluation&&n.evaluation.eval_v2,o=document.getElementById("lis-eval-v2-content"),l=document.getElementById("lis-eval-v2-missing"),i=["ac","dc","hpc"].filter(e=>a&&a.demand[e]&&Object.keys(a.demand[e]).length),e=i.some(t=>ne.some(e=>a.demand[t][e.key]));if(se=e){o&&(o.style.display=""),l&&(l.style.display="none"),de={demand:a.demand,power_classes:i},!function(e){let t=document.getElementById("lis-eval-v2-site-config"),n=document.getElementById("lis-eval-v2-config-section");if(t&&(t.innerHTML="",n&&(n.style.display=e?"":"none"),e))for(var a of["ac","dc","hpc"]){var o=e[a];if(o&&o.length){var l,i=(0,Ae.addElem)("eval-v2-site-config-box",null,t,"div"),r=((0,Ae.addElem)("eval-v2-site-config-class",a.toUpperCase(),i,"div"),(0,Ae.addElem)("eval-v2-site-config-rows",null,i,"div"));for(l of o){var s=l[0],d=l[1];(0,Ae.addElem)("",d+" à "+s+" kW",r,"div")}}}}(n.evaluation&&n.evaluation.eval_v2.site_config);let e=C=1===n.chosen_tier||2===n.chosen_tier||3===n.chosen_tier?n.chosen_tier:null,t=(1!==(e=null===e?"undefined"!=typeof _project_default_tier?_project_default_tier:null:e)&&2!==e&&3!==e&&(e=2),I="tier"+e,B(),ce(),pe(a.demand,i),document.getElementById("lis-eval-v2-util-date"));var r;t&&(r=n.evaluation&&n.evaluation.info,t.textContent=r&&r.date?new Date(r.date).toLocaleDateString(_language_code):""),!function(t){let n=document.getElementById("lis-eval-v2-use-cases");if(n){n.innerHTML="";var a,o={residential:{icon:"ion-md-home",label:gettext("Wohngebiet")},retail:{icon:"ion-md-cart",label:gettext("Einzelhandel")},en_route:{icon:"ion-md-navigate",label:gettext("En-Route")},toll_motorway:{icon:"ion-md-card",label:gettext("Mautautobahn")},public:{icon:"ion-md-people",label:gettext("Ãffentlich")},leisure:{icon:"ion-md-bicycle",label:gettext("Freizeit/Tourismus")},opportunity_charging:{icon:"ion-md-flash",label:gettext("Gelegenheitsladen")}};for(a of t){var l,i=o[a];i&&(l=(0,Ae.addElem)("eval-v2-use-case-chip",null,n,"div"),(0,Ae.addElem)("icon icon--small "+i.icon,null,l,"i"),(0,Ae.addElem)("",i.label,l,"span"))}
1let e=document.getElementById("lis-eval-v2-use-cases-missing");e&&(e.style.display=n.children.length?"none":"")}}(n.evaluation.eval_v2.use_cases||[]),!function(){if(!oe){let e=document.getElementById("lis-eval-v2-compare-tiers");e&&(e.addEventListener("change",()=>{ae=e.checked,k&&O(k.eval_v2,k.power_classes)}),oe=!0)}}(),O(a.demand,i),!function(){if(!le){let t=document.getElementById("lis-eval-v2-details-toggle"),n=document.getElementById("lis-eval-v2-details");t&&n&&(t.addEventListener("click",()=>{var e=n.classList.toggle("collapsed");t.classList.toggle("open",!e)}),le=!0)}}(),ee(a.demand,i),Y(!0),X(i)}else o&&(o.style.display="none"),l&&(l.style.display=""),K(n,"lis-eval-v2-missing-start-btn"),Y(!1),X(null)}(l),function(){if(!ye){let n=document.getElementById("eval-version-switch");if(n){n.addEventListener("change",ve);for(let e of Array.from(document.querySelectorAll(".eval-version-card")))e.addEventListener("click",()=>{n.checked="v2"===e.dataset.evalVersion,ve()});$("#lis_modal_accordion").on("down.zf.accordion",(e,t)=>{"acc-item-evaluation"==t.attr("id")&&A(()=>be())});let e=document.getElementById("eval-version-toggle-info");var a;!e||e.querySelector(".custom_tooltip")||(a=(0,Ae.create_custom_tooltip)(gettext("Horizon ist unser neues Modell. Es arbeitet präziser und leistungsfähiger als der Vorgänger. Legacy ist das bisherige Modell: einfacher aufgebaut und weiterhin verfügbar.")))&&e.appendChild(a);let t=document.getElementById("lis-eval-v2-config-adjust");t&&t.addEventListener("click",()=>{var e=document.getElementById("acc-item-power");e&&$("#lis_modal_accordion").foundation("down",$(e))}),ye=!0}}}(),ve()):(e&&(e.style.display="none"),t&&(t.style.display="none"))}}if((0,_.update_environment_analysis)(Me.properties.id),"true"===localStorage.getItem("locationFingerprintUIVisible")){p=Me;const f=document.getElementById("location-fingerprint-data"),h=document.getElementById("no-fingerprint-message");f&&(f.style.display="none");h&&(h.style.display="none");p=null==(p=p.properties)?void 0:p.id;if(p){let e=new URL(window.location.href),t=e.pathname.split("/").filter(e=>e);l=t.indexOf("LISMap");-1!==l&&t[l+1]?(l=t.slice(0,l+2).join("/"),l=e.origin+"/"+l+"/get_customlis_fingerprint/?lis_id="+p,fetch(l).then(e=>{if(e.ok)return e.json();throw new Error("HTTP error! status: "+e.status)}).then(e=>{if(console.log("Fingerprint API response:",e),e.has_fingerprint&&e.fingerprint){var t=e.fingerprint;e=e.computed_at;const n=document.getElementById("location-fingerprint-data"),a=document.getElementById("no-fingerprint-message");if(n){n.style.display="block",a&&(a.style.display="none"),n.innerHTML="";const p={competition:"Alle Ladepunkte (CustomLIS + bestehende LIS) im Radius werden mit ihrer Routing-Entfernung gewichtet: Gewicht = (1 - (Entfernung/Radius)²)³. Stationen innerhalb von 15m werden ignoriert.",urbanity:"Alle Urbanitätspunkte innerhalb des Radius werden gesammelt. Jeder Punkt wird nach seiner Entfernung zum Standort mit einer GauÃ-Funktion gewichtet: Punkte näher am Standort erhalten ein höheres Gewicht, weiter entfernte ein niedrigeres (Ï = 0.5 à Radius). Der Faktor ist der gewichtete Mittelwert der Urbanitätsfaktoren.",bev_share:"Vergleicht den lokalen BEV-Anteil mit dem globalen Länder-Durchschnitt. Für jeden Radius (5km, 2km, 1km) wird der gewichtete Elektrofahrzeug-Anteil der Polygone im Umkreis berechnet (Gewicht = Flächenüberlappung mit dem Radius). Der Faktor ergibt sich aus einer Sigmoid-Funktion: Bei gleichem Wert wie der Durchschnitt â 0.5, bei niedrigerem lokalem Wert â gegen 0, bei höherem lokalem Wert â gegen 1.",private_parking_accessibility:"Verfügbarkeit öffentlicher Parkplätze (1 - Anteil privater Stellplätze). Basiert auf 100m-Rasterdaten.",residential:"Anteil der Wohnfläche im 250m Radius um den Standort.",retail:"Faktor basiert auf Anzahl Einzelhandels-POIs (shop + ausgewählte amenity-Kategorien) innerhalb von 250m Routing-Entfernung und der gröÃten Parkfläche innerhalb von 15m. Berechnung: Normalisiertes Produkt zweier Sigmoid-Funktionen f(POI-Anzahl, Parkfläche in m²). Richtwerte: f(10, 1000)â0.50, f(15, 1000)â0.73, f(50, 5000)â1.0.",public:"Für jeden der folgenden Faktoren wird eine Sigmoid-Straffunktion berechnet: Wohnfläche (Schwellwert 0.6), Einzelhandel (0.5), Freizeit (0.5), Autobahn (0.7). Sigmoid-Formel: 1 / (1 + exp(15 à (Faktorwert - Schwellwert))). Liegt ein Faktor unter seinem Schwellwert, ergibt die Sigmoid-Funktion einen Wert nahe 1. Liegt er darüber, sinkt der Wert gegen 0. Der Ãffentlichkeitsfaktor ist das Produkt aller vier Sigmoid-Werte.",leisure:"Anteil der Freizeit-POIs an allen POIs innerhalb von 250m Routing Entfernung.",motorway:"Routing-Abstand zur Autobahn von 0 km bis 3 km â Wert von 1 auf 0,75. Routing-Abstand zur Autobahn von 3 km bis 4 km â Wert von 0,75 auf 0. Beides linear berechnet.",dwell_time:"POIs gleicher OSM-Kategorie zählen nur einmal (näherer wird behalten). Summe konservativ: POIs nach Verweilzeit sortiert (längste zuerst), nur dreieckig indizierte Positionen summiert (1., 2., 4., 7., 11., 16., ...). Faktor: f = (0.5 à (1 - cos(Ï Ã min(Summe/300, 1))))^0.7.",tourism:"Saisonale Bevölkerungsschwankung als Tourismus-Indikator.",traffic:"Für jeden Radius wird aus allen StraÃenabschnitten der höchste entfernungsgewichtete Verkehrswert ermittelt: Gewicht = (Radius â Entfernung) / Radius, multipliziert mit dem DTV (durchschnittlicher täglicher Verkehr). Angegeben wird das Maximum je Radius.",landuse:"Binäre Merkmale der OSM-Flächennutzung am Standort: ob der Standort in einem Wohn-, Gewerbe-, Industrie- oder Einzelhandelsgebiet liegt (bzw. nahe an einem Wohngebiet, innerhalb von 10 m)."},g=function(e,t){var n,a,o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0,l=3<arguments.length&&void 0!==arguments[3]?arguments[3]:"";if(null!=e)for(const s of Object.keys(e)){var i,r=e[s];if("object"!=typeof r||null===r||Array.isArray(r)){const d=document.createElement("div"),c=(d.className="fingerprint-data-row"+(1<o?" indented":""),document.createElement("span")),u=(c.textContent=s+": ",d.appendChild(c),document.createElement("strong"));u.textContent=(n=r,i=l,a=s,null==n?"-":"number"==typeof n?"dwell_sum"===i||"dwell_sum_conservative"===i?n.toFixed(1)+" min":a.startsWith("is_")?n?"true":"false":Number.isInteger(n)?n.toString():n.toFixed(3):String(n)),d.appendChild(u),t.appendChild(d)}
1else{const m=document.createElement("div");m.className=0===o?"fingerprint-category-header":"fingerprint-subheader",m.textContent=s,0!==o||!p[s]||(i=(0,Ae.create_custom_tooltip)(p[s]))&&m.appendChild(i),t.appendChild(m),g(r,t,o+1,s)}}},o=(g(t,n),document.createElement("div")),l=(o.className="fingerprint-timestamp",document.createElement("span")),i=(l.textContent=gettext("Berechnet am")+": ",o.appendChild(l),document.createElement("strong"));if(e){const r=new Date(e);i.textContent=r.toLocaleDateString(_language_code,{day:"2-digit",month:"2-digit",year:"numeric"})+" "+r.toLocaleTimeString(_language_code,{hour:"2-digit",minute:"2-digit"})}else i.textContent="-";o.appendChild(i),n.appendChild(o)}}else f&&(f.style.display="none"),h&&(h.style.display="block")}).catch(e=>{console.error("Error fetching fingerprint:",e),h&&(h.style.display="block",h.textContent="Fehler beim Laden des Standortprofils")})):(console.error("Could not extract project ID from URL:",e.pathname),h&&(h.style.display="block"))}else console.error("No LIS ID found in marker"),h&&(h.style.display="block")}j()}})}function s(){for(const e of document.getElementsByClassName("chk-dirty"))if(e.checked)return!0;return!1}function d(e){return s()?(e.preventDefault(),!0):null}function x(e){var t;let n=document.getElementById("dirty-"+e);n&&(n.checked=!0),null!=(t=document.getElementById("lis-modal-save-changes"))&&t.classList.remove("saved","hidden"),"power"!==e&&"grid_connector_power"!==e||g("saving"),clearTimeout(U),U=setTimeout(E,c),window.addEventListener("beforeunload",d,{capture:!0})}function g(n){var a;let e=document.getElementById("chargepoint-save-indicator");switch(n){case"hidden":null!==e&&void 0!==e&&e.classList.add("hidden"),null!==e&&void 0!==e&&e.classList.remove("saved");break;case"saving":null!==e&&void 0!==e&&e.classList.remove("hidden","saved");break;case"saved":null!==e&&void 0!==e&&e.classList.remove("hidden"),null!==e&&void 0!==e&&e.classList.add("saved")}let t=document.getElementById("chargepoint-save-rerun-btn");t&&(t.onclick=e=>{var t=document.getElementById("acc-item-evaluation");t&&$("#lis_modal_accordion").foundation("down",$(t))}),null!=(o=document.getElementById("chargepoint-save-rerun"))&&o.classList.toggle("hidden","saving"===n||_permissions.evaluateCustomLis<2);{let e=document.getElementById("chargepoint-save-indicator"),t=document.getElementById("chargepoint-save-rerun");var o=!!e&&!e.classList.contains("hidden"),n=!!t&&!t.classList.contains("hidden");null!=(a=document.getElementById("chargepoint-status-row"))&&a.classList.toggle("hidden",!o&&!n)}}function j(){var e;for(e of document.getElementsByClassName("chk-dirty"))e.checked=!1;window.removeEventListener("beforeunload",d,{capture:!0})}function q(e){document.getElementById("lis-modal-status-circle").className="custom-cp-icon-stat-"+e}function R(e){var t;const n=document.getElementById("lis-address");if(n){e.properties.address?n.value=e.properties.address:n.value="";var a,e=null!=(e=e.properties.address_details)?e:{};document.getElementById("lis-addr-street").value=null!=(t=null==(t=e.address)?void 0:t.street)?t:"",document.getElementById("lis-addr-house-no").value=null!=(t=null==(t=e.address)?void 0:t.houseNumber)?t:"",document.getElementById("lis-addr-zip").value=null!=(t=null==(t=e.address)?void 0:t.postalCode)?t:"",document.getElementById("lis-addr-city").value=null!=(t=null==(t=e.address)?void 0:t.city)?t:"",document.getElementById("lis-addr-country").value=null!=(e=null==(t=e.address)?void 0:t.countryName)?e:"";for(a of document.querySelectorAll("#lis-addr-details input"))a.placeholder=""}}function E(){var e;if(f)return null;f=!0,clearTimeout(U);var t,n=document.getElementById("lisform");let o=document.getElementById("lis_id");if(!n||!o)return null;let a=new FormData,l=(a.append("csrfmiddlewaretoken",n.csrfmiddlewaretoken.value),!1);for(t of document.getElementsByClassName("chk-dirty")){var i=t.id.substring(6);if(t.checked)switch(l=!0,i){case"name":case"address":case"description":case"cooperation_partner":case"landlord":case"anchor_tenant":case"funding_comment":case"grid_connector_power":case"accessibility_24_7":case"sanitary_available":case"gastro_available":case"responsible_user":case"rejection_reason":case"fleet_avail_time":var r=document.getElementById("lis-"+i);r?a.append(i,r.value):console.log("No input for "+i+" ("+t.id+")");break;case"fleet_contact_email":a.append(i,null==(r=document.getElementById("lis-"+i))?void 0:r.value);break;case"status":a.append("status",document.getElementById("status_select").value);break;case"public_type":a.append("public_type",document.getElementById("public_type_select").value);break;case"position":var s=(0,Ae.getLatLngFromString)(n.position.value);a.append("geom",(0,Ae.geoJSONdumps)(s));break;case"list":s=function(){let n=[],a=document.getElementById("lis-checklist");for(let t=0;a&&t<a.childElementCount;t++){var o=a.children[t].firstChild,l=o.firstChild;let e=o.children[1];""!=e.textContent&&n.push({label:e.textContent,default:"true"===e.getAttribute("isdefault"),checked:l.checked})}return n}();a.append("checklist",JSON.stringify(s));break;case"power":a.append("power_table",JSON.stringify(N()));break;case"rating":let e={};for(var d of["access_car","access_truck","area","competition"]){var c=document.getElementById(d+"-rating");c&&(e[d]=c.value)}a.append("rating",JSON.stringify(e));break;case"address_details":var u={address:{street:document.getElementById("lis-addr-street").value,houseNumber:document.getElementById("lis-addr-house-no").value,postalCode:document.getElementById("lis-addr-zip").value,city:document.getElementById("lis-addr-city").value,countryName:document.getElementById("lis-addr-country").value}};a.append("address_details",JSON.stringify(u));break;default:console.log("unexpected field name: "+i)}}return l?(j(),(0,Ae.fetchPost)("lis/"+o.value+"/update/",a,3e4).then(e=>e.json()).then(e=>{null!=(t=document.getElementById("lis-modal-save-changes"))&&t.classList.add("saved"),null!=(t=document.getElementById("chargepoint-save-indicator"))&&t.classList.contains("hidden")||g("saved");let n=m(o.value);if(n){var t=e.customLIS,a=e.nearby||[],t=(0,y.obj2FeatureArray)(t)[0];
1n.setLatLng(t.geometry.coordinates),Object.assign(n.properties,t.properties),(0,y.updateLisMarkerIcon)(n),J(n.properties);for(let t=0;t<a.length;t++){let e=m(a[t]);e&&(e.properties.evaluation=null),e==n&&p(n)}(0,v.renderSiteManagerTable)()}else console.log("marker not found from response:"),console.log(e)}).catch(e=>{_.DEBUG&&console.log(e)}).finally(()=>{f=!1})):(f=!1,null!=(e=document.getElementById("lis-modal-save-changes"))&&e.classList.add("saved"),null)}let U,f=!1;const c=2e3;function u(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;let n=m(e);if(n){null!=(e=document.getElementById("chargepoint-save-rerun"))&&e.classList.add("hidden"),g("hidden"),p(n),"string"==typeof t&&$("#lis_modal_accordion").foundation("down",$(t));const a=document.getElementById("tab-site-manager-detail");a&&(a.classList.remove("tab-hidden"),_map.sidebar.open("site-manager-detail"),"string"==typeof t&&$("#lis_modal_accordion").foundation("down",$(t)),_simplemde&&setTimeout(e=>{n.properties.description?_simplemde.isPreviewActive()||(_simplemde.togglePreview(),_simplemde.codemirror.refresh()):_simplemde.isPreviewActive()&&(_simplemde.togglePreview(),_simplemde.codemirror.refresh())},100))}}function H(t){_markerLayer&&t&&_markerLayer.removeLayer(t),_markers=_markers.filter(e=>e._leaflet_id!=t._leaflet_id),t.remove(),(0,v.filter_markers)()}function G(e){const t=document.getElementById("lis-modal-abc-wrapper");t&&(t.innerHTML="",t.append(V(e.properties.id,e.properties.abc_manual,e.properties.abc_auto)))}function V(d,c,u){const e=document.getElementById("abc-badge-template"),m=e.content.firstElementChild.cloneNode(!0),t=m.querySelector(".abc-badge-select");return t.addEventListener("change",()=>{{var n=d,t=c,a=u,o=m;const r=o.querySelector(".abc-badge-select");var l=r.value;const s=r.disabled;h(o,l,a),r.disabled=!0;let e=new FormData;var i=document.getElementById("lisform").csrfmiddlewaretoken.value;
1e.append("csrfmiddlewaretoken",i),e.append("abc_manual",l),(0,Ae.fetchPost)("lis/"+n+"/update/",e,3e4).then(e=>e.json()).then(e=>{let t=_markers.find(e=>e.properties.id==n);t&&(t.properties.abc=e.customLIS.abc,t.properties.abc_manual=e.customLIS.abc_manual,t.properties.abc_auto=e.customLIS.abc_auto),document.getElementById("lis_id").value==n&&G(t),(0,v.renderSiteManagerTable)()}).catch(e=>{h(o,t,a),_.DEBUG&&console.error(e)}).finally(()=>{r.disabled=s})}}),h(m,c,u),m}function h(e,t,n){const a=e.querySelector(".abc-badge"),o=e.querySelector(".abc-badge-select");a.className="abc-badge abc-"+(t||n||"none"),o.value=t||"",e.classList.toggle("abc-badge-wrapper--manual",!!t),e.title=t&&e.dataset.manualTitle||""}function W(e,t){let n=document.getElementById("google_maps_link"),a=(n.href="http://maps.google.com/maps?t=k&q=loc:"+e.lat.toFixed(6)+"+"+e.lng.toFixed(6),document.getElementById("id_liscoords")),o=document.getElementById("id_liscoords_input"),l=document.getElementById("id_liscoords_edit");a&&o&&"hidden"!==o.type&&(o.type="hidden",a.style.display="");var i=e.lat.toFixed(_.PRECISION),e=e.lng.toFixed(_.PRECISION);a.textContent=i+","+e,a.style.color="unset",a&&l&&o&&(l.style.visibility=t?"hidden":"initial",l.onclick=e=>{"hidden"===o.type?(a.style.display="none",o.type="",o.focus(),o.value=a.textContent,o.onchange=e=>{try{(0,Ae.getLatLngFromString)(o.value),a.style.color="unset"}catch(e){o.value=a.textContent,a.style.color=_.COLORS.error}o.value!=a.textContent&&x("position"),(0,_.close_utilization_layer)(),D(),a.textContent=o.value,a.style.display="",o.type="hidden"}):o.onchange(null)})}function Z(e){const t=document.getElementById("lis-fleet-match-table-section"),n=document.getElementById("lis-fleet-match-table-empty");if(t&&n){0<e.length?(t.style.display="",n.style.display="none"):(t.style.display="none",n.style.display="");if(document.getElementById("lis-fleet-match-table"))if($.fn.dataTable.isDataTable("#lis-fleet-match-table")){const o=$("#lis-fleet-match-table").DataTable();o.clear(),o.rows.add(e),o.draw()}else{var a=[{title:"",data:null,render:function(e,t,n){if("display"!==t)return n.name_fleet_location;{let e=document.createElement("a");return e.title=gettext("Standort auf der Karte anzeigen"),e.innerHTML='<i class="icon icon--small ion-md-map"></i>',e.onclick=()=>{$(".sidebar-close").click(),$("#lis-modal").foundation("close"),_map.setVie
1w({lat:n.lat_fleet_location,lng:n.lng_fleet_location},18)},e}},orderable:!1},{title:gettext("Name Flottenstandort"),data:null,render:function(e,t,n){if("display"===t&&n.contact_email_fleet_location){let e=document.createElement("a");return e.href="mailto:"+encodeURIComponent(n.contact_email_fleet_location)+"?subject="+encodeURIComponent("Retail4Multi-Use"),e.innerText=n.name_fleet_location,e.title=gettext("Kontakt per E-Mail"),e}return n.name_fleet_location}},{title:gettext("Fahrzeuge"),data:null,render:function(e,t,n){return n.num_vehicles+" à "+n.vehicle_class_name}},{title:gettext("Distanz"),data:"distance_km",render:function(e,t,n){return"display"===t||"filter"===t?Number(e).toFixed(2)+" km":e}},{title:gettext("Score gesamt"),data:"score_total_charging_location",name:"score_total",className:"score-total-column",render:function(e,t,n){return"display"===t||"filter"===t?Number(100*e).toFixed(2)+" %":e}},{title:gettext("Score Zeitfenster"),data:"score_time_charging_location",render:function(e,t,n){return"display"===t||"filter"===t?Number(100*e).toFixed(2)+" %":e}},{title:gettext("Score Ladepunkte"),data:"score_charging_points",render:function(e,t,n){return"display"===t||"filter"===t?Number(100*e).toFixed(2)+" %":e}},{title:gettext("Score Distanz"),data:"score_distance",render:function(e,t,n){return"display"===t||"filter"===t?Number(100*e).toFixed(2)+" %":e}},{title:gettext("Deckung Zeitfenster"),data:"time_slots_overlap",render:function(e,t,n){return"display"===t||"filter"===t?null===e?"-":e+" "+gettext("h/Woche"):e}}];const l=$("#lis-fleet-match-table").DataTable({data:e,order:[[4,"desc"],[1,"asc"]],columns:a,language:{search:gettext("Suche"),zeroRecords:gettext("Keine passenden Suchergebnisse gefunden"),emptyTable:gettext("Keine Matches vorhanden."),info:gettext("Zeilen _START_ - _END_ von _TOTAL_"),infoEmpty:"",infoFiltered:gettext("(aus _MAX_ Zeilen insgesamt)"),lengthMenu:gettext("Zeige _MENU_ Zeilen"),paginate:{first:gettext("Erste"),last:gettext("Letzte")}}});l.column(1).header().title=gettext("Anzahl und Kategorie der Fahrzeuge in der Fahrzeuggruppe des Flottenstandorts"),l.column(2).header().title=gettext("Distanz zwischen Ladestandort und Flottenstandort"),l.column(3).header().title=gettext("Der Gesamtscore setzt sich aus den Scores für Distanz, Zeitfenster und Ladepunkte zusammen."),l.column(4).header().title=gettext("Der Score beschreibt die Ãbereinstimmung der verfügbaren Zeitfenster zwischen der Fahrzeuggruppe des Flottenstandorts und dem Ladestandort. Wenn keine Zeitfenster angegeben sind, wird eine komplette Ãbereinstimmung angenommen (100 %)."),l.column(5).header().title=gettext("Dieser Score gibt an, welcher Prozentsatz der Fahrzeuge mit einem eigenen Ladepunkt versorgt werden kann."),l.column(6).header().title=gettext("Der Score nimmt mit zunehmender Entfernung zwischen Ladestandort und Flottenstandort ab."),l.column(7).header().title=gettext("Gibt an, wie viele Zeitfenster (je 1 h/Woche) der Fahrzeuggruppe des Flottenstandorts und des Ladestandorts übereinstimmen")}}}function K(t,e){let n=document.getElementById(1<arguments.length&&void 0!==e?e:"lis-eval-missing-start-btn");n&&(_permissions.evaluateCustomLis<2?n.style.display="none":(n.style.display="",n.onclick=e=>{(0,_.handleEvaluationSubmit)(!1,t.id)}))}function J(t){let e=document.getElementById("lis-eval-outdated-hint");if(e){var n=1!=t.vehicle_type&&function(e){var t,n=e.evaluation&&e.evaluation.eval_v2;if(!n||!n.site_config)return!1;let a=e.power_table||[];if(!a.length)return!1;let o=(e,t,n)=>Number(e)+"|"+Number(t)+"|"+Number(null==n?1:n),l=[];for(t of Object.keys(n.site_config))for(var i of n.site_config[t]||[])l.push(o(i[0],i[1],i[2]));let r=a.map(e=>o(e.power,e.count,e.demand_factor));return l.sort(),r.sort(),l.length!=r.length||l.some((e,t)=>e!==r[t])}(t);if(e.style.display=n?"":"none",n){let e=document.getElementById("lis-eval-outdated-restart-btn");e&&(e.style.display=2<=_permissions.evaluateCustomLis?"":"none",e.onclick=e=>{(0,_.handleEvaluationSubmitResetAndReevaluate)(t.id)})}}}function Y(t){var n=document.getElementById("lis-eval-context-section");if(n){let e=document.getElementById(t?"lis-eval-v2-content":"lis-eval-context-v1-host");e&&n.parentElement!==e&&e.appendChild(n)}}function X(t){let n=document.getElementById("lis-eval-context-section");if(n&&_lis_evaluation_constants&&_lis_evaluation_constants.types){let e=t?_lis_evaluation_constants.types.filter(e=>-1!==t.indexOf((e.display||"").toLowerCase())):_lis_evaluation_constants.types;n.style.display=e.length?"":"none",e.some(e=>String(e.name)===String(l))||(l=e.length?String(e[0].name):null);{var a=e;let n=document.getElementById("lis-eval-context-classes");if(n){n.innerHTML="";for(var o of a){let e=(0,Ae.addElem)("eval-v2-chart-class-pill",o.display,n,"button");
1e.dataset.scenario=String(o.name),String(o.name)===String(l)&&e.classList.add("active")}re||(n.addEventListener("click",e=>{e=e.target.closest(".eval-v2-chart-class-pill");if(e){l=e.dataset.scenario;for(var t of Array.from(n.querySelectorAll(".eval-v2-chart-class-pill")))t.classList.toggle("active",t.dataset.scenario===l);Q()}}),re=!0)}}Q()}}function Q(){for(var t of _lis_evaluation_constants.types){let e=document.getElementById("eval-context-"+t.name);e&&(e.style.display=String(t.name)===String(l)?"":"none")}}function ee(t,n){let a=document.getElementById("lis-eval-table-v2");if(a){let e=a.tBodies[0];e.innerHTML="";for(var o of Array.from(a.querySelectorAll("th[data-eval-col]")))o.style.display=-1===n.indexOf(o.dataset.evalCol)?"none":"";var l;for(l of me(t,n,I)){var i,r=e.insertRow(-1);(0,Ae.addElem)("",l,r,"TH");for(i of n){var s=t[i]&&t[i][I],s=s&&s[l],d=s&&s.energy,d=(null==d?(0,Ae.addElem)("","--",r,"TD"):(0,Ae.addElem)("",Math.round(Number(d)).toLocaleString(_language_code),r,"TD"),s&&s.utilization);null==d?(0,Ae.addElem)("","-",r,"TD"):(s=(0,Ae.addElem)("",null,r,"TD"),(0,Ae.addElem)("eval-v2-util-pill",Number(d).toLocaleString(_language_code,{minimumFractionDigits:1,maximumFractionDigits:1})+" %",s,"span"))}}}}const te="#246082",ne=[{key:"tier1",shade:"light"},{key:"tier2",shade:"base"},{key:"tier3",shade:"dark"}];let ae=!1,oe=!1,w="total",k=null,S=null,le=!1,ie=!1,l=null,re=!1,se=!1,I="tier2",C=null,de=null;function i(){let e=document.getElementById("lis-eval-v2-tier-select");if(e){for(var t of Array.from(e.querySelectorAll(".eval-v2-tier-pills")))t.remove();let a={};var o,n=(e,t,n)=>{let a=document.createElement("span");return a.className=e,a.textContent=t,a.title=n,a},l=String(window._project_default_tier);a[l]||(a[l]=[]),a[l].push(n("eval-v2-tier-project-pill",gettext("Projekt"),gettext("Projekt-Standard: gilt für alle Standorte ohne eigenes Standort-Tier"))),null!==C&&(l=String(C),a[l]||(a[l]=[]),a[l].push(n("eval-v2-tier-location-pill",gettext("Standort"),gettext("Eigenes Standort-Tier: überschreibt den Projekt-Standard für diesen Standort"))));for(o of Object.keys(a)){let n=e.querySelector('[data-tier="'+o+'"]');if(n){let e=document.createElement("div");e.className="eval-v2-tier-pills";for(var i of a[o])e.appendChild(i);let t=n.querySelector(".eval-v2-tier-card-desc");t?t.after(e):n.appendChild(e)}}}}function ce(){let a=document.getElementById("lis-eval-v2-tier-select");if(a)if(a.children.length){for(var t of Array.from(a.querySelectorAll(".eval-v2-tier-card"))){let e=t;e.classList.toggle("selected","tier"+e.dataset.tier===I)}i()}else{var n;for(n of[{value:"1",key:"tier1",name:gettext("Tier 1"),desc:gettext("Führender Betreiber, hohe Auslastung erwartet")},{value:"2",key:"tier2",name:gettext("Tier 2"),desc:gettext("Etablierter Betreiber, solide bis höhere Auslastung erwartet")},{value:"3",key:"tier3",name:gettext("Tier 3"),desc:gettext("Wachstumsorientierter Betreiber, niedrige Auslastung erwartet")}]){let e="eval-v2-tier-card eval-v2-tier-card--"+n.key,t=("tier"+n.value===I&&(e+=" selected"),(0,Ae.addElem)(e,null,a,"div"));t.dataset.tier=n.value;var o=(0,Ae.addElem)("eval-v2-tier-card-head",null,t,"div"),l=(0,Ae.addElem)("eval-v2-tier-card-name",null,o,"div"),l=((0,Ae.addElem)("eval-v2-tier-card-dot",null,l,"span"),(0,Ae.addElem)("",n.name,l,"span"),(0,Ae.addElem)("eval-v2-tier-card-check",null,o,"span"));(0,Ae.addElem)("icon ion-md-checkmark",null,l,"i"),(0,Ae.addElem)("eval-v2-tier-card-desc",n.desc,t,"div")}i(),a.addEventListener("click",e=>{var t=e.target.closest(".eval-v2-tier-card");if(t){I="tier"+t.dataset.tier;for(var n of Array.from(a.querySelectorAll(".eval-v2-tier-card")))n.classList.toggle("selected",n===t);B(),ue()}})}}function B(){let e=window._project_default_tier;1!==e&&2!==e&&3!==e&&(e=2);var t=null!==C?C:e,n=parseInt(I.replace("tier",""));let a=document.getElementById("eval-v2-tier-status"),o=(a&&(a.textContent=null!==C?interpolate(gettext("Eigenes Standort-Tier: Tier %(tier)s"),{tier:C},!0):interpolate(gettext("Nutzt Projekt-Standard (Tier %(tier)s)"),{tier:e},!0)),document.getElementById("eval-v2-tier-reset-link")),l=(o&&(o.style.display=null!==C?"":"none"),document.getElementById("eval-v2-tier-apply-btn"));l&&(l.textContent=interpolate(gettext("Tier %(tier)s übernehmenâ¦"),{tier:n},!0),l.disabled=n===t)}function ue(){var e;de&&(pe((e=de).demand,e.power_classes),O(e.demand,e.power_classes),ee(e.demand,e.power_classes))}function me(e,t,n){let a={};for(var o of t){o=e&&e[o]&&e[o][n];if(o)for(var l of Object.keys(o))a[l]=!0}return Object.keys(a).sort()}function T(n,a,e,o,l){if("total"===e){let e=0,t=!1;for(var i of a){i=n[i]&&n[i][l],i=i&&i[o]&&i[o].energy;null!=i&&(e+=Number(i),t=!0)}return t?e:null}a=n[e]&&n[e][l],e=a&&a[o]&&a[o].energy;return null==e?null:Number(e)}function pe(e,t){let n=document.getElementById("lis-eval-v2-util-cards"),a=document.getElementById("lis-eval-v2-util-title");if(n){n.innerHTML="";var o=me(e,t,I);if(t.length&&o.length){var l,i=String(_lis_evaluation_constants.default_show_year);if(a){a.textContent=interpolate(gettext("Prognose für das Jahr %(year)s"),{year:i},!0);let e=a.parentElement;!e||e.querySelector(".custom_tooltip")||(o=(0,Ae.create_custom_tooltip)(gettext("Die Prognose gilt für etablierte Standorte, die die Hochlaufphase bereits hinter sich haben")))&&e.insertBefore(o,document.getElementById("lis-eval-v2-util-date"))}for(l of t){var r=e[l]&&e[l][I],r=r&&r[i],s=(0,Ae.addElem)("eval-v2-util-card",null,n,"div"),d=((0,Ae.addElem)("eval-v2-util-card-class",l.toUpperCase(),s,"div"),r&&r.utilization),d=null==d?"-":Number(d).toLocaleStr
1ing(_language_code,{minimumFractionDigits:1,maximumFractionDigits:1})+" %",d=((0,Ae.addElem)("eval-v2-util-card-value",d,s,"div"),r&&r.energy),r=null==d?"-":interpolate(gettext("%(energy)s kWh/a"),{energy:Math.round(Number(d)).toLocaleString(_language_code)},!0);(0,Ae.addElem)("eval-v2-util-card-info",r,s,"div")}}}}function ge(e,t){return"light"===t?chroma(e).brighten(1.2).hex():"dark"===t?chroma(e).darken(1.2).hex():e}function fe(e){return{tier1:gettext("Tier 1"),tier2:gettext("Tier 2"),tier3:gettext("Tier 3")}[e]}function he(e){var t=te;return"ac"===e?chroma(t).brighten(2).hex():"dc"===e?chroma(t).brighten(.9).hex():"hpc"===e?chroma(t).darken(1.4).hex():t}function P(e){return{total:gettext("Gesamt"),ac:gettext("AC"),dc:gettext("DC"),hpc:gettext("HPC")}[e]}function O(l,i){var r=document.getElementById("lis-eval-v2-chart-canvas");if(r){k={eval_v2:l,power_classes:i};{var s=i;let n=document.getElementById("lis-eval-v2-chart-classes");if(n){n.innerHTML="";let e=s.slice();e.unshift("total"),-1===e.indexOf(w)&&(w="total");for(var t of e){let e=(0,Ae.addElem)("eval-v2-chart-class-pill",P(t),n,"button");(e.dataset.powerClass=t)===w&&e.classList.add("active")}ie||(n.addEventListener("click",e=>{e=e.target.closest(".eval-v2-chart-class-pill");if(e&&k){w=e.dataset.powerClass;for(var t of Array.from(n.querySelectorAll(".eval-v2-chart-class-pill")))t.classList.toggle("active",t.dataset.powerClass===w);O(k.eval_v2,k.power_classes)}}),ie=!0)}}S&&(S.destroy(),S=null);let o=me(l,i,I);if(i.length&&o.length){let e=document.getElementById("lis-eval-v2-legend-classes"),t=document.getElementById("lis-eval-v2-legend-tiers"),n,a=te;if(ae)if("total"===w&&1<i.length){t&&(t.style.display="none"),e&&(e.style.display="");{s=i;let t=document.getElementById("lis-eval-v2-legend-classes");if(t){t.innerHTML="";let e=s.slice();e.unshift("total");for(var d of e){var c=(0,Ae.addElem)("legend-item",null,t,"span");let e=(0,Ae.addElem)("legend-dot",null,c,"span");e.style.backgroundColor=he(d),(0,Ae.addElem)("",P(d),c,"span")}}}(n=i.map(t=>{var e=he(t);return{label:P(t),data:o.map(e=>T(l,i,t,e,I)),borderColor:e,backgroundColor:e,fill:!1,spanGaps:!1}})).push({label:P("total"),tooltipRank:-1,data:o.map(e=>T(l,i,"total",e,I)),borderColor:a,backgroundColor:chroma(a).alpha(.08).css(),borderWidth:3,fill:!0,spanGaps:!1})}else{e&&(e.style.display="none"),t&&(t.style.display="none");s=o.map(e=>T(l,i,w,e,I));n=[{label:gettext("Energieprognose (kWh)"),data:s,borderColor:a,backgroundColor:chroma(a).alpha(.08).css(),fill:!0,spanGaps:!1}]}else{e&&(e.style.display="none"),t&&(t.style.display="");{let t=document.getElementById("lis-eval-v2-legend-tiers");if(t){t.innerHTML="";var u,m=te;for(u of ne){var p=(0,Ae.addElem)("legend-item",null,t,"span");let e=(0,Ae.addElem)("legend-dot",null,p,"span");e.style.backgroundColor=ge(m,u.shade),(0,Ae.addElem)("",fe(u.key),p,"span")}}}n=ne.map(t=>{var e=ge(a,t.shade);return{label:fe(t.key),data:o.map(e=>T(l,i,w,e,t.key)),borderColor:e,backgroundColor:e,borderDash:[2,4],fill:!1,spanGaps:!1}})}S=new Chart(r,{type:"line",data:{labels:o,datasets:n},options:{responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{usePointStyle:!0,boxWidth:8,boxHeight:8,boxPadding:4,itemSort:(e,t)=>(e.dataset.tooltipRank||0)-(t.dataset.tooltipRank||0),callbacks:{labelColor:e=>({borderColor:e.dataset.borderColor,backgroundColor:e.dataset.borderColor}),label:e=>{var t=new Intl.NumberFormat(_language_code,{maximumFractionDigits:0}).format(e.parsed.y);return 1<e.chart.data.datasets.length&&e.dataset.label?e.dataset.label+": "+t:t}}}},scales:{y:{beginAtZero:!0,ticks:{callback:e=>new Intl.NumberFormat(_language_code).format(e)}}}}})}}}let _e=!1;let ye=!1;function ve(){var e=document.getElementById("eval-version-switch");let t=document.getElementById("lis-evaluation-car"),n=document.getElementById("evaluation-car-v2");if(e&&n){e.checked?(t&&(t.style.display="none"),n.style.display=""):(t&&(t.style.display=""),n.style.display="none");var a,o=e.checked;for(a of Array.from(document.querySelectorAll(".eval-version-card"))){var l="v2"===a.dataset.evalVersion;a.classList.toggle("selected",l===o)}A(()=>be())}}let M=null;function A(e){try{e()}catch(e){_.DEBUG&&console.log(e)}}function be(){var e=document.getElementById("eval-version-switch"),t=document.getElementById("eval-version-toggle-wrapper");M&&e&&t&&"none"!==t.style.display&&(!function(){let e=document.getElementById("lis-acc-eval");return e&&e.classList.contains("is-active")}()||(e.checked?se&&(M.horizon=!0):M.legacy=!0))}function xe(t){var t=0<arguments.length&&void 0!==t&&t,n=M;if(M=null,n&&(n.horizon||n.legacy)){var a=document.querySelector("[name=csrfmiddlewaretoken]");let e=new FormData;e.append("csrfmiddlewaretoken",a?a.value:""),e.append("version",n.horizon&&n.legacy?"both":n.horizon?"horizon":"legacy"),t&&navigator.sendBeacon?(a=window.location.origin+window.location.pathname+"track/eval_version/",navigator.sendBeacon(a,e)):(0,Ae.fetchPost)("track/eval_version/",e).catch(e=>{_.DEBUG&&console.log(e)})}}window.addEventListener("pagehide",e=>A(()=>xe(!0)));let De=null,r=[];function qe(e,t,n,a,o){var a=3<arguments.length&&void 0!==a&&a,o=4<arguments.length&&void 0!==o?o:null,l=document.getElementById("linear-gauge-template");const i=document.importNode(l.content,!0),r=Math.round(100*t),s=i.querySelector(".value");s.style.setProperty("--value",r.toString());var{label:l,cssClass:t}=n(r);s.classList.add(t),i.querySelector(".label").textContent=l;const d=i.querySelector(".value-as-text");d.querySelector(".value").textContent=a?r+"%":"",o&&d.querySelector(".info").appendChild((0,Ae.create_custom_tooltip)(o)),e.appendChild(i)}function Re(e){var t=Math.max(...e.map(e=>e.power)),e=e.reduce((e,t)=>
1e+t.count,0);return L.divIcon((0,y.createExistingLISIcon)(null,{properties:{power:t,count:e}}))}function Fe(n,a,o){const l=L.featureGroup();n.addEventListener("click",e=>{if(n.classList.toggle("on")){(0,Ae.toggleSidebarContracted)(!0),o(l),l.addTo(_map),r.push(l);const t=l.getBounds();t.extend(a.getLatLng()),t.isValid()&&_map.fitBounds(t,{padding:[150,150]})}else l.removeFrom(_map),l.clearLayers(),r=r.filter(e=>e!=l)})}function Ne(e,t){e.addEventListener("mouseenter",e=>{De=De||L.featureGroup().addTo(_map),t()}),e.addEventListener("mouseleave",e=>{De&&De.clearLayers()})}function ze(e,t){e.addEventListener("click",()=>{if(De){const e=De.getBounds();e.extend(t.getLatLng()),e.isValid()&&_map.fitBounds(e,{padding:[150,150]})}})}const Ee={"shop:supermarket":"Supermarkt.png","shop:department_store":"Kaufhaus.png","shop:doityourself":"Baumarkt.png","shop:mall":"Kaufhaus.png","shop:wholesale":"Supermarkt.png","shop:furniture":"Moebelhaus.png","shop:electronics":"Kaufhaus.png","shop:car":"Autohaus.png","shop:tyres":"Autohaus.png","shop:beverages":"Supermarkt.png","shop:garden_centre":"Baumarkt.png","amenity:restaurant":"Restaurant.png","amenity:fast_food":"FastFood.png","amenity:hospital":"hospitals.svg","amenity:clinic":"clinic.svg","amenity:cinema":"icon-cinema.svg","tourism:hotel":"Hotel.png","leisure:fitness_centre":"FitnessCentre.png"};function je(e){e=Ee[e[0]+":"+e[1]];return e?L.ImageIcon({file:_AHPFolder+"resources/"+e,width:20,height:20}):L.circleIcon()}function D(){for(;0<r.length;)r.pop().removeFrom(_map);document.querySelectorAll(".add-to-map-toggle.on").forEach(e=>{e.classList.remove("on")})}function we(e){var a,t,n;function o(e,t){const n=document.getElementById(e);n&&(n.textContent=t)}{const y=document.getElementById("truck-eval-junctions");if(y.innerHTML="",e.info.truck_eval_info.motorway_junctions.junctions.length){let n={};for(var l of e.info.truck_eval_info.motorway_junctions.junctions){let e=l.motorway_ref,t;(e=null===e?"-":e)in n?t=n[e]:(i=(0,Ae.addElem)("label",null,y,"div"),(0,Ae.addElem)("badge-motorway",e,i,"div"),t=(0,Ae.addElem)("value off-ramps",null,y,"div"),n[e]=t);var i=(0,Ae.addElem)("off-ramp",null,t,"div");(0,Ae.addElem)("",(l.junction_ref?l.junction_ref+" ":"")+(null!=(a=l.name)?a:"-"),i,"span"),l.direction&&((0,Ae.addElem)("separator",null,i,"span"),(0,Ae.addElem)("",gettext("Richtung")+" "+l.direction,i,"span")),l.distance_air_m&&((0,Ae.addElem)("separator",null,i,"span"),(0,Ae.addElem)("",(l.distance_air_m/1e3).toFixed(1)+" km",i,"span"))}}else(0,Ae.addElem)("",gettext("Keine Abfahrten in der Umgebung gefunden."),y,"div")}{const v=document.getElementById("truck-eval-ten_t-core");v.innerHTML="","number"==typeof(null==(r=null==(r=null==(r=e.info.truck_eval_info.ten_t)?void 0:r.ten_t)?void 0:r.core)?void 0:r.distance_air_m)?(r=null==(r=null==(r=null==(r=e.info.truck_eval_info.ten_t)?void 0:r.ten_t)?void 0:r.core)?void 0:r.ref,s=null==(s=null==(s=null==(s=e.info.truck_eval_info.ten_t)?void 0:s.ten_t)?void 0:s.core)?void 0:s.distance_air_m,s=(0,Ae.roundToStrLocal)(s/1e3,2,_language_code)+" km",(0,Ae.addElem)("",gettext("Ja"),v,"span"),(0,Ae.addElem)("separator",null,v,"span"),r&&((0,Ae.addElem)("badge-motorway",r,v,"span"),(0,Ae.addElem)("separator",null,v,"span")),(0,Ae.addElem)("",s,v,"span")):(0,Ae.addElem)("",gettext("Nein"),v,"span")}{const b=document.getElementById("truck-eval-ten_t-comprehensive");b.innerHTML="","number"==typeof(null==(r=null==(s=null==(r=e.info.truck_eval_info.ten_t)?void 0:r.ten_t)?void 0:s.comprehensive)?void 0:r.distance_air_m)?(r=null==(s=null==(r=null==(s=e.info.truck_eval_info.ten_t)?void 0:s.ten_t)?void 0:r.comprehensive)?void 0:s.ref,s=null==(s=null==(s=null==(s=e.info.truck_eval_info.ten_t)?void 0:s.ten_t)?void 0:s.comprehensive)?void 0:s.distance_air_m,s=(0,Ae.roundToStrLocal)(s/1e3,2,_language_code)+" km",(0,Ae.addElem)("",gettext("Ja"),b,"span"),(0,Ae.addElem)("separator",null,b,"span"),r&&((0,Ae.addElem)("badge-motorway",r,b,"span"),(0,Ae.addElem)("separator",null,b,"span")),(0,Ae.addElem)("",s,b,"span")):(0,Ae.addElem)("",gettext("Nein"),b,"span")}{const x=null==(s=null==(r=null==(s=null==(r=e.info.truck_eval_info)?void 0:r.traffic)?void 0:s.traffic)?void 0:r.hgv)?void 0:s.dtv;var r=null==(s=null==(r=null==(s=null==(r=e.info.truck_eval_info)?void 0:r.traffic)?void 0:s.traffic)?void 0:r.hgv)?void 0:s.ref;
1o("truck-eval-dtv-truck",0<x?x.toLocaleString(_language_code):"-"),o("truck-eval-dtv-truck-ref",r?" ("+r+")":"")}{const E=null==(r=null==(s=null==(r=null==(s=e.info.truck_eval_info)?void 0:s.traffic)?void 0:r.traffic)?void 0:s.car)?void 0:r.dtv;var s=null==(r=null==(s=null==(r=null==(s=e.info.truck_eval_info)?void 0:s.traffic)?void 0:r.traffic)?void 0:s.car)?void 0:r.street;o("truck-eval-dtv-car",0<E?E.toLocaleString(_language_code):"-"),o("truck-eval-dtv-car-ref",s?" ("+s+")":"")}if(null!=(s=null==(r=e.info.truck_eval_info.traffic.traffic)?void 0:r.stats)&&s.path_hist){const w=document.getElementById("truck-eval-traffic-dist-travelled-container"),L=(w.innerHTML="",null==(s=null==(r=e.info.truck_eval_info.traffic.traffic)?void 0:r.stats)?void 0:s.path_hist),k=Object.values(L).reduce((e,t)=>e+t,0),S=Object.keys(L).sort((e,t)=>Number(e)-Number(t)).map(Number).filter(e=>e<=1200);var r=S.map(e=>L[e]/k*100),s=S.map(e=>e+" - "+(e+50)),d=(0,Ae.addElem)("",null,w,"canvas");new Chart(d,{type:"bar",data:{labels:s,datasets:[{data:r,fill:!0}]},options:{backgroundColor:"#07689F",barThickness:12,scales:{x:{title:{display:!0,text:gettext("Zurückgelegte Strecke (km)"),align:"center"},grid:{display:!1},ticks:{callback:function(e,t){return t%2==0?this.getLabelForValue(e):""}}},y:{title:{display:!0,text:gettext("Anteil der LKWs"),align:"center"},border:{dash:[10,10]},ticks:{stepSize:5,maxTicksLimit:5,callback:function(e){return e+" %"}},beginAtZero:!0}},plugins:{legend:{display:!1},tooltip:{padding:12,boxPadding:12,display:!1,callbacks:{title:function(e){return e[0].label+" km"},label:function(e){return(0,Ae.roundToStrLocal)(e.parsed.y,2,_language_code)+" %"}}}}}})}else{const I=document.getElementById("truck-eval-traffic-dist-travelled-container");I.innerHTML=""}{var d=null==(r=null==(s=null==(d=e.info)?void 0:d.truck_eval_info)?void 0:s.environ)?void 0:r.service_area,r=null==(s=null==(r=null==(s=e.info)?void 0:s.truck_eval_info)?void 0:r.environ)?void 0:s.germany_truck_tender_2024,s=(o("truck-eval-service-area-name",null!=(s=null==d?void 0:d.name)?s:"-"),o("truck-eval-service-area-parking-spaces",null!=(s=null==d?void 0:d.truck_capacity)?s:"-"),null==r?void 0:r.grid_connection_capacity_2035_kva);o("truck-eval-service-area-sa-power",s?s+" kVA":"-"),o("truck-eval-service-area-sa-go-lv",null!=(s=null==r?void 0:r.grid_operator_lv)?s:"-"),o("truck-eval-service-area-sa-go-hv",null!=(s=null==r?void 0:r.grid_operator_hv)?s:"-");const C=document.getElementById("truck-eval-area-category");null!=d&&d.category_name?C.className="area-cat-"+(null==d?void 0:d.category_name):C.className="";o("truck-eval-area-category-info",null!=(r={a:gettext("bewirtschaftete Raststätte / Autohof"),b:gettext("bewirtschaftete Raststätte / Autohof"),c:gettext("Rastplatz")}[null==d?void 0:d.category_name])?r:"-");var c=null==d?void 0:d.amenities,u={shower:pgettext("truck_amenity","Dusche"),toilet:pgettext("truck_amenity","Toilette"),truck_repair:pgettext("truck_amenity","LKW-Reparatur"),truck_wash:pgettext("truck_amenity","LKW-Waschanlage"),shop:pgettext("truck_amenity","Shop"),cafe:pgettext("truck_amenity","Café"),fast_food:pgettext("truck_amenity","Fast Food"),restaurant:pgettext("truck_amenity","Restaurant"),fuel:pgettext("truck_amenity","Tankstelle")};if(c){const B=document.getElementById("truck-eval-service-area-amenities");B.innerHTML="";for(const T of Object.keys(u))!0===c[T]&&(0,Ae.addElem)("pill",u[T],B,"div");for(const P of Object.keys(c))u[P]||console.error("amenity_key missing in dict: "+P)}else o("truck-eval-service-area-amenities","-")}{s=null==(d=null==(r=null==(s=e.info)?void 0:s.truck_eval_info)?void 0:r.charging_infrastructure)?void 0:d.charging_infrastructure;const O=document.getElementById("truck-eval-existing-lis");if(O.innerHTML="",s&&0!=s.length)for(var m of s){var p=(0,Ae.addElem)("","",O,"div");(0,Ae.addElem)("value",m.count,p,"span"),(0,Ae.addElem)("","x",p,"span"),(0,Ae.addElem)("value",m.power+" kW",p,"span"),(0,Ae.addElem)("operator","("+(null!=(t=m.operator)?t:gettext("Betreiber unbekannt"))+")",p,"span"),0<m.distance_air_m&&(0,Ae.addElem)("","("+m.distance_air_m+" m)",p,"span")}else(0,Ae.addElem)("",gettext("Keine Ladestandorte in der Umgebung"),O,"div")}{var g=null==(d=null==(r=e.info)?void 0:r.truck_eval_info)?void 0:d.evaluation,f=e=>null==e?"-":(0,Ae.roundToStr)(e,0);const M=document.getElementById("truck-eval-table-body");if(M.innerHTML="",g&&null!=(s=null==g?void 0:g.meta)&&s.years)for(var h of(null==(e=null==g?void 0:g.meta)?void 0:e.years)||[]){var _=(0,Ae.addElem)("",null,M,"tr");(0,Ae.addElem)("table-label",h,_,"th"),(0,Ae.addElem)("",f(null==(n=null==(n=null==(n=g.evaluation.ncs)?void 0:n.total)?void 0:n[h])?void 0:n.energy_mwh),_,"td"),(0,Ae.addElem)("",f(null==(n=null==(n=null==(n=g.evaluation.ncs)?void 0:n.total)?void 0:n[h])?void 0:n.cps),_,"td"),(0,Ae.addElem)("",f(null==(n=null==(n=null==(n=g.evaluation.mcs)?void 0:n.total)?void 0:n[h])?void 0:n.energy_mwh),_,"td"),(0,Ae.addElem)("",f(null==(n=null==(n=null==(n=g.evaluation.mcs)?void 0:n.total)?void 0:n[h])?void 0:n.cps),_,"td")}else{r=(0,Ae.addElem)("",null,M,"tr"),d=((0,Ae.addElem)("invisible-cell","",r,"td"),gettext("Keine Prognose möglich: Im Umkreis von 10 km wurde keine wichtige FernverkehrsstraÃe gefunden."));const A=(0,Ae.addElem)("",d,r,"td");A.colSpan=4}}}function Le(n){let o=document.getElementById("lis-checklist");if(!o)return null;let l=(0,Ae.addElem)("cell checklist__item",null,null,"DIV"),e=Boolean(n.default),i=(e?l.classList.add("checklist__item--default"):l.classList.add("checklist__item--custom"),(0,Ae.addElem)("checklist__checkbox",null,l,"DIV")),t=null;(t=(0,Ae.addElem)("lis-checkbox",null,i,"input")).type="checkbox",t.checked=Boolean(n.checked),t.id="checkbox_"+o.childElementCount,t.disabled=_permissions.checklistAccess<2,t.oncl
1ick=e=>{x("list"),F()};var a=n.label||"";let r=(0,Ae.addElem)(null,a,i,"label");r.htmlFor=t?t.id:null,r.setAttribute("isdefault",e.toString()),r.title=a;a=n.user,n=n.modified;if(a){let t=(0,Ae.addElem)("icon icon--small ion-md-information-circle",null,i,"i");if(t.title=pgettext("last changed string","Letzte Ãnderung von ")+a,n){let e=new Date(1e3*n);(new Date).toDateString()===e.toDateString()?t.title+=pgettext("last changed string"," um ")+e.toLocaleTimeString(_language_code,{timeStyle:"short"}):t.title+=pgettext("last changed string"," am ")+e.toLocaleDateString(_language_code,{dateStyle:"short"})}}if(!e&&2<=_permissions.checklistAccess){let t=(0,Ae.addElem)("","",null,"input"),e=(0,Ae.addElem)("icon icon--small ion-md-create",null,i,"i"),n=!1,a=(e.onclick=e=>{n?t.onchange(null):(i.replaceChild(t,r),t.value=r.textContent,t.focus(),n=!0,t.onchange=e=>{r.textContent!=t.value&&x("list"),r.textContent=t.value,i.replaceChild(r,t),n=!1,r.title=t.value})},(0,Ae.addElem)("checklist__delete",null,l,"DIV"));(0,Ae.addElem)("icon icon--medium ion-md-close",null,a,"i"),a.onclick=e=>{o.removeChild(l),x("list"),F()}}return l}function F(){let t=document.getElementById("checklist-progress-bar");if(t){var n,a=document.getElementsByClassName("lis-checkbox");let e=0;for(n of a)e+=n.checked?1:0;0==a.length?(t.style.display="none",document.getElementsByClassName("lis-checklist-noitems")[0].style.display=""):(t.style.display="",document.getElementsByClassName("lis-checklist-noitems")[0].style.display="none"),e=e?100*e/a.length:0,(0,Ae.setProgressbarValue)(t,Math.round(e))}}function ke(t,e,n,a){let o=document.getElementById("lis-power-table");if(!o)return null;let l=o.tBodies[0].insertRow(-1),i=(0,Ae.addElem)("","",l,"TD"),r=(i.hidden=!0,(0,Ae.addElem)("","",i,"DIV"));r.hidden=!0,r.textContent=String(t);t=(0,Ae.addElem)("","",l,"TD");let s=(0,Ae.addElem)("","",t,"INPUT");s.type="number",s.min="1",s.max="999",s.value=(e||1)+"",s.size=4,s.disabled=_permissions.lisAccess<2,s.onchange=e=>{s.value=Math.min(Math.max(s.value,s.min),s.max)+"",x("power"),N()};t=(0,Ae.addElem)("","",l,"TD");let d=(0,Ae.addElem)("","",t,"SELECT"),c=(n=n||11,d.name="power-value",d.style.width="80%",[3.7,7.4,11,22,25,40,43,44,50,60,75,100,120,150,160,175,200,250,300,320,350,400,450,600]);c.includes(n)||(-1==(e=c.findIndex(e=>n<e))?c.push(n):c.splice(e,0,n));for(let t=0;t<c.length;t++){let e=(0,Ae.addElem)("",c[t]+"",d,"OPTION");e.value=c[t]+"",c[t]==n&&(e.selected=!0)}d.disabled=_permissions.lisAccess<2,d.onchange=e=>{x("power"),N()};let u=(0,Ae.addElem)(""," kW",t,"SPAN");u.style.lineHeight="2.5rem";e=(0,Ae.addElem)("","",l,"TD");let m=(0,Ae.addElem)("","",e,"INPUT");m.type="number",m.min="0.1",m.max="1.0",m.step="0.01",m.size=4,m.value=(a||1)+"",m.disabled=_permissions.lisAccess<2,m.onchange=e=>{m.value=Math.min(Math.max(m.value,m.min),m.max)+"",x("power"),N()},(0,Ae.addElem)(""," - ",l,"TD");t=l.insertCell(-1);if(2<=_permissions.lisAccess){let e=(0,Ae.addElem)("delete-button","",t,"BUTTON");e.title=gettext("Zeile entfernen"),e.onclick=e=>{o.deleteRow(l.rowIndex),x("power"),N()},(0,Ae.addElem)("icon ion-md-remove-circle-outline","",e,"I")}return N(),l}function N(){let a=document.getElementById("lis-power-table"),o=[];if(a){let t=0,n=0;var l=a.rows.length;for(let e=1;e+1<l;e++){var i,r=Number(a.rows[e].cells[0].children[0].textContent),s=Number(a.rows[e].cells[1].children[0].value),d=Number(a.rows[e].cells[2].children[0].value),c=Number(a.rows[e].cells[3].children[0].value);Number.isNaN(s)||Number.isNaN(d)||Number.isNaN(c)?a.rows[e].cells[3].textContent="-":(i=s*d*c,t+=s,n+=i,a.rows[e].cells[4].textContent=(0,Ae.roundToStr)(i,2)+" kW",o.push({id:r,count:s,power:d,demand_factor:c}))}a.rows[l-1].cells[0].textContent=t+"",a.rows[l-1].cells[2].textContent=(0,Ae.roundToStr)(n,2)+" kW"}return o}function Se(e,n){n=n||{};let r=document.getElementById("lis-survey-div");if(r){let i={};{let a=(r.innerHTML="",Ae.addElem)("tabs","",r,"ul"),o=(a.dataset.tabs="",a.dataDeepLink=!1,a.id="lis-survey-tabs",(0,Ae.addElem)("tabs-content","",r,"div")),l=(o.dataset.tabsContent="lis-survey-tabs",!0);for(const d of e.tabs||[]){let e=(0,Ae.addElem)("tabs-title","",a,"li"),t=(0,Ae.addElem)("",d.label,e,"a"),n=(t.href="#lis-survey-tab-"+d.key,(0,Ae.addElem)("tabs-panel","",o,"div"));n.id="lis-survey-tab-"+d.key,i[d.key]=n,l&&(e.classList.add("is-active"),n.classList.add("is-active"),l=!1)}new Foundation.Tabs($("#lis-survey-tabs"))}let t={};for(const c of e.elems||[])if("caption"===c.type)(0,Ae.addElem)("lis-survey-caption",c.label,i[c.tab]||r,"div");else{var a,o,l=(0,Ae.addElem)("lis-survey-input-div","",i[c.tab]||r,"div"),s=(0,Ae.addElem)("",c.label,l,"label");let e=(0,Ae.addElem)("lis-survey-input","",s,"textarea"===c.type?"textarea":"input");
1e.dataset.fieldKey=c.key;for([a,o]of Object.entries(c.attr))e[a]=o;n.fields&&void 0!==n.fields[c.key]&&(e.value=n.fields[c.key]),c.no_line_break||(0,Ae.addElem)("","",l.parentElement,"br"),void 0!==t[c.key]&&console.error("lis survey key is not unique: "+c.key),t[c.key]=!0}}}function Ie(y){let v=document.getElementById("lis_files_container");if(y&&v){let s=document.getElementById("lis-img-modal"),d=document.getElementById("lis-big-img"),c=document.getElementById("lis-big-img-link"),u=document.getElementById("lis-img-download"),m=document.getElementById("lis-big-file"),p=document.getElementById("lis-big-filename"),g=document.getElementById("lis-big-img-prev"),f=document.getElementById("lis-big-img-next");v.innerHTML="",0==y.length&&(0,Ae.addElem)("",gettext("Keine Dateien vorhanden."),v,"SPAN");let h,_=null;for(let r=0;r<y.length;r++){let l=y[r].url;var b=y[r].thumb_small_url;let o=y[r].thumb_medium_url,i="";var e=new RegExp(/[^\/]+$/);if((i=l.match(e)[0]||"")&&(i=(0,Ae.filenameWithoutRand)(i),i=decodeURI(i)),b){let e=y[r].id,t=window.document.createElement("div"),n=(t.classList.add("lis-img-thumb"),window.document.createElement("div")),a=window.document.createElement("img");a.src=b,a.dataset.imgid=e,Object.assign(y[r],{name:i,prev:_,next:null}),null!==_&&(y[_].next=r),_=r,t.addEventListener("click",function(){h=r,c.href=l,u.href=l,u.download=i,d.src=o,d.dataset.imgid=e,g.style.visibility=null===y[r].prev?"hidden":"visible",f.style.visibility=null===y[r].next?"hidden":"visible",$(s).foundation("open"),s.onkeydown=e=>{"ArrowLeft"===e.key&&null!==y[h].prev&&g.click(),"ArrowRight"===e.key&&null!==y[h].next&&f.click(),"Escape"===e.key&&$(s).foundation("close")}}),n.appendChild(a),t.appendChild(n),v.appendChild(t)}else{let e=y[r].id,t=window.document.createElement("div"),n=(t.classList.add("lis-img-thumb"),window.document.createElement("div")),a=window.document.createElement("i"),o=(a.classList.add("icon"),a.classList.add("ion-md-document"),window.document.createElement("span"));o.classList.add("text-ellipsis"),o.appendChild(document.createTextNode(i)),t.addEventListener("click",function(){p.textContent=i,m.href=l,m.download=i,m.dataset.imgid=e,$("#lis-file-modal").foundation("open")}),t.appendChild(n),n.appendChild(a),n.appendChild(o),v.appendChild(t)}}g.onclick=e=>{var t=y[h].prev,n=y[t];h=t,c.href=n.url,u.href=n.url,u.download=n.name,d.src=n.thumb_medium_url,d.dataset.imgid=n.id,g.style.visibility=null===n.prev?"hidden":"visible",f.style.visibility="visible"},f.onclick=e=>{var t=y[h].next,n=y[t];h=t,c.href=n.url,u.href=n.url,u.download=n.name,d.src=n.thumb_medium_url,d.dataset.imgid=n.id,g.style.visibility="visible",f.style.visibility=null===n.next?"hidden":"visible"}}}$("#lis-eval-tab").on("change.zf.tabs",function(){D()}),$("#lis-multi-modal").on("closed.zf.reveal",e=>{e.handled||(e.handled=!0,e=document.getElementById("dirty-multi"),e=JSON.parse(e.textContent),Object.keys(e).length&&!confirm(gettext("Nicht gespeicherte Ãnderungen verwerfen?"))&&setTimeout(e=>$("#lis-multi-modal").foundation("open"),0))})},{"./chat":4,"./features":8,"./map":12,"./table":18,"./utils":19}],12:[function(e,i,t){Object.defineProperty(t,"__esModule",{value:!0}),t.PRECISION=t.MAX_ZOOM=t.HAS_TOUCH=t.DEBUG=t.COLORS=void 0,t.addCustomRestrictPoly=W,t.close_utilization_layer=x,t.createFFPointRadius=function(e){(0,P.deleteOverlayLayer)("fast_finder_circle");let t=JSON.parse(document.getElementById("computation_form").geom_point.value),n=Number(document.getElementById("ff_geom_point_radius").value),a=(0,B.showData)([{type:"Feature",geometry:{type:"Point",coordinates:[t.lat,t.lng]},properties:{desc:gettext("Fast Finder Umkreis")+" ("+n.toLocaleString(_language_code)+" m)"}}],{name:gettext("Fast Finder Umkreis"),overlayId:"fast_finder_circle",color:"#07679F",radius:-n,fillOpacity:.05});for(const o of a.getLayers())o.bindContextMenu({contextmenu:!0,contextmenuInheritItems:!1,contextmenuItems:[{text:gettext("Entferne Fast Finder Umkreis"),iconCls:"ion ion-md-close",callback:l}]});document.getElementById("tab-lis").classList.contains("active")||document.querySelector("#tab-lis .sidebar-anchor").
1click()},t.fetchLis=X,t.fetchLisUpdates=Q,t.fetchUtilizationData=b,t.fetchUtilizationDataButton=function(e){const t=document.getElementById("fetch-util-data-btn"),n=document.getElementById("utilization-spinner");t.disabled=!0,n.style.visibility="";var a=document.getElementById("lis_id").value;b(a).finally(()=>{t.disabled=!1,n.style.visibility="hidden"})},t.getLocationStatistics=function(e){let t=[],n=$("#site-manager-table").DataTable();n.rows({selected:!0}).every(function(){t.push(this.data().lis_id)}),0==t.length&&(t=_markers.map(e=>e.properties.id));(0,N.request)({abspath:window.location.origin+"/api/location_statistics",header:{token:e.getAttribute("token")},query:"?id="+JSON.stringify(t)}).then(e=>{var e=JSON.stringify(e,null,2),t=(new Date).toISOString().substring(0,10)+"_statistics.json";(0,B.exportTextBlob)([e],t,"application/json")}).catch(e=>{console.log(e)})},t.handleEvaluationSubmit=s,t.handleEvaluationSubmitResetAndReevaluate=r,t.handleExportLISExcel=function(e){let o=e.currentTarget;o.disabled=!0;let t,l;"lis-export-excel-button"==o.id?(t="exportLIS/excel/",l=gettext("Ladestandorte_Export")):"loc-stats-export-excel-button"==o.id&&(t="exportLocationStatistics/excel/",l=gettext("Location_Statistics"));_region&&_region.name&&(l+="_"+(0,N.stringToFileName)(_region.name));l+=".xlsx";let n=new FormData,a=document.getElementById("lisform").csrfmiddlewaretoken.value;if(n.append("csrfmiddlewaretoken",a),$.fn.dataTable.isDataTable("#site-manager-table")){let e=$("#site-manager-table").DataTable();var i=e.rows({selected:!0}).data();if(0<i.length){let t=[];for(let e=0;e<i.length;e++)t.push(i[e].lis_id);n.append("selected_lis",JSON.stringify(t))}}n.append("include_fingerprints","true"===localStorage.getItem("locationFingerprintUIVisible")?"true":"false"),(0,N.fetchPost)(t,n,12e5).then(e=>{if(e.ok)return e.blob();throw new Error("Network response was not ok")}).then(e=>{"application/json"===e.type&&e.text().then(e=>{e=JSON.parse(e).task_id;setTimeout(G,0,e,"progress-canvas-export",1e3,function(t){let n=atob(t),a=new Uint8Array(new ArrayBuffer(n.length));for(let e=0;e<n.length;e++)a[e]=n.charCodeAt(e);t=new Blob([a],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});{let e=window.document.createElement("a");e.href=window.URL.createObjectURL(t),e.target="_blank",e.download=l,document.body.appendChild(e),e.click(),document.body.removeChild(e)}o.disabled=!1},function(e){j&&console.log(e),o.disabled=!1},!0)})}).catch(e=>{j&&console.log(e),o.disabled=!1})},t.handleExportLISFingerprintsJson=function(){let n=document.getElementById("lis-export-excel-button"),a=(n.disabled=!0,gettext("Standortprofile_Export"));_region&&_region.name&&(a+="_"+(0,N.stringToFileName)(_region.name));a+=".json";let o=new FormData,e=document.getElementById("lisform").csrfmiddlewaretoken.value;if(o.append("csrfmiddlewaretoken",e),$.fn.dataTable.isDataTable("#site-manager-table")){let e=$("#site-manager-table").DataTable();var l=e.rows({selected:!0}).data();if(0<l.length){let t=[];for(let e=0;e<l.length;e++)t.push(l[e].lis_id);o.append("selected_lis",JSON.stringify(t))}}(0,N.fetchPost)("exportLIS/fingerprints/",o,6e5).then(e=>{if(e.ok)return e.blob();throw new Error("Network response was not ok")}).then(e=>{let t=window.document.createElement("a");t.href=window.URL.createObjectURL(e),t.target="_blank",t.download=a,document.body.appendChild(t),t.click(),document.body.removeChild(t),n.disabled=!1}).catch(e=>{j&&console.log(e),n.disabled=!1})},t.handleFFPoint=H,t.handleFingerprintCalculationSubmit=function(){let t=0<arguments.length&&void 0!==arguments[0]&&arguments[0],n;n=t?document.getElementById("lis-reset-fingerprint-button"):document.getElementById("calculate-lis-fingerprint-button");let o=[];if($.fn.dataTable.isDataTable("#site-manager-table")){let e=$("#site-manager-table").DataTable();var a=e.rows({selected:!0}).data();for(let e=0;e<a.length;e++)o.push(a[e].lis_id)}if(t){let e;if(e=o.length?interpolate(gettext("Standortprofile von %(n)s ausgewählten Standort(en) zurücksetzen?"),{n:o.length},!0):gettext("Keine Standorte ausgewählt. Alle Standortprofile des Projekts zurücksetzen?"),!confirm(e))return}var l=document.querySelector("[name=csrfmiddlewaretoken]");if(l){let e=new FormData;e.append("selected_lis",JSON.stringify(o)),e.append("csrfmiddlewaretoken",l.value),t&&e.append("reset","true"),n.disabled=!0,(0,N.fetchPost)("customlis_fingerprint/",e,3e5).then(e=>e.json()).then(n=>{if("error"in n)throw new Error(n.error);if("fingerprint_calculation_start"==n.action){localStorage.setItem("locationFingerprintTaskId",n.task_id);{var a=n.task_id;let e=document.getElementById("progress-canvas-calculate-location-fingerprints"),t=e.parentElement;t&&(t.style.display="block"),X().then(e=>{G(a,"progress-canvas-calculate-location-fingerprints",3e3,function(l){localStorage.removeItem("locationFingerprintTaskId"),t&&(t.style.display="none"),X().then(e=>{if(l.hasOwnProperty("n_fingerprinted")){const n=l.n_fingerprinted,a=l.n_failed||0;const o=(l.total||0)-n-a;document.getElementById("n-lis-fingerprinted").innerText=n.toString(),document.getElementById("n-lis-already-fingerprinted").innerText=o.toString(),document.getElementById("n-lis-failed-fingerprint").innerText=a.toString();let e=document.getElementById("fingerprint-complete-modal-failed"),t=(e&&(e.style.display=0<a?"":"none"),document.getElementById("location-fingerprint-complete-modal-info"));t&&(t.style.display=0===n&&0===a?"":"none")}"true"===localStorage.getItem("locationFingerprintUIVisible")&&$("#location-fingerprint-success-modal").foundation("open")})},function(e){localStorage.removeItem("locationFingerprintTaskId"),t&&(t.style.display="none"),void 0!==j&&j&&console.log(e),"true"===localStorage.getItem("locationFingerprintUIVisible")&&$("#location-fingerprint-failed-modal").foundation("open")})})}}else{if("fingerprint_reset"!=n.action)throw new Error("Unexpected response");{const e=n.n_reset||o.length||0;document.getElementById("n-lis-fingerprint-reset").innerText=e.toString(),X().then(e=>{"true"===localStorage.getItem("locationFingerprintUIVisible")&&$("#reset-location-fingerprint-modal").foundation("open")})}}}).catch(e=>{void 0!==j&&j&&console.log(e),"true"===localStorage.getItem("locationFingerprintUIVisible")&&$("#location-fingerprint-failed-modal").foundation("open")}).finally(()=>{n.disabled=!1})}else console.error("CSRF token not found"),alert(gettext("Fehler: CSRF-Token nicht gefunden"))},t.handleFormSubmit=function(e){let o=document.getElementById("compute-button"),t=document.getElementById("computation_form"),n=document.getElementById("error-message"),a=document.getElementById("map-spinner");o.disabled=!0,n.textContent="",n.style.display="none",a.style.visibility="",function(t){const n=window.document.getElementById("id_hidden");if(n){let e={evaluation:void 0};t&&(e.evaluation=t.latlng),n.value=JSON.stringify(e)}else j&&console.log("Hidden field not found! May not work correctly.")}(e);var l=t.getElementsByClassName("form-error");for(let e=0;e<l.length;e++)l[e].textContent="",l[e].classList.remove("is-visible");$("#fastfinder-modal").foundation("close"),(0,N.fetchPost)("computeLIS/","computation_form",12e4).then(e=>e.json()).then(n=>{if(n.action&&n.action.includes("clear_map")&&(0,P.deleteFFLayers)(),n.task_id&&setTimeout(G,0,n.task_id,"progress-canvas-computelis",2e3,function(e){if(!e.evaluation){let e=document.getElementById("potential-export-btn");e&&(e.style.display="inline")}var t;e.output_tiff_url&&(t=e.output_tiff_url,fetch(t).then(e=>e.arrayBuffer()).then(e=>parseGeoraster(e).then(e=>{let t=_map.getPane("georaster_tiff");t||((t=_map.createPane("georaster_tiff")).style.zIndex=460,t.style.pointerEvents="none",t.style["mix-blend-mode"]="multiply"),(0,P.deleteOverlayLayer)("fast_finder_geotiff");let n=chroma.scale(["#ffffff","#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e"]),a=new GeoRasterLayer({georaster:e,pixelValuesToColorFn:e=>n(e[0]/255).hex(),resolution:64,pane:"georaster_tiff",resampleMethod:"bilinear"});a.addTo(_map),(0,P.addOverlayLayer)(a,gettext("Flächenpotenzial"),"fast_finder_geotiff")})).catch(e=>{console.error(e)})),(0,B.showResult)(e),console.log({params:e.params,perf:e.perf}),o.disabled=!1},function(e){j&&console.log(e),o.disabled=!1,$("#fastfinder-modal").foundation("open")}),"object"==typeof n.message){for(var a in n.message){let e=document.getElementById("id_"+a),t=(e.invalid=!0,document.getElementById("id_"+a+"_error"));t&&(t.textContent=n.message[a].join(" "),t.classList.add("is-visible"))}throw gettext("Das Formular enthält Fehler (siehe oben).")}if(n.message)throw n.message}).catch(e=>{n.innerHTML=""+e,n.style.display="block",o.disabled=!1,$("#fastfinder-modal").foundation("open")}).finally(()=>{a.style.visibility="hidden"})},t.handleIsoSubmit=function(){let t=document.forms.iso_form;if(t.checkValidity()){$("#iso_modal").foundation("close");let e=new FormData(t);const s=Number(e.get("lat")),d=Number(e.get("lon")),c="yes"==e.get("show_origin_marker");var n=e.get("mode");const u={truck:pgettext("iso mode","LKW"),auto:pgettext("iso mode","Auto"),bicycle:pgettext("iso mode","Fahrrad"),pedestrian:pgettext("iso mode","FuÃweg")}[n];(0,N.fetchPost)("iso/",e,1e4).then(e=>{if(e.ok)return e.json();throw new Error("Network response was not ok")}).then(e=>{var t,n=e.features.length;for(t of e.features){(0,B.reverseCoordinates)(t.geometry);var a=t.properties.contour;t.properties={desc:gettext("Erreichbarkeit, ")+u+", "+a+" min",time:a}}(0,P.deleteOverlayLayer)("isochrone");let o=chroma.scale(["#fafa6e","#2A4858"]).mode("lch").padding([.2,.1]).colors(n);var l=Object.fromEntries(e.features.map((e,t)=>[e.properties.time,o[t]]));c&&(0,B.showData)([{geometry:{type:"Point",coordinates:[s,d]},properties:{}}],{name:gettext("Erreichbarkeit"),overlayId:"isochrone",color:chroma(o[0]).alph
1a(.5)});for(const r of e.features){var i=l[r.properties.time];(0,B.showData)([r],{name:gettext("Erreichbarkeit"),overlayId:"isochrone",color:chroma(i).alpha(.75),fillColor:chroma(i).alpha(.2),lineWidth:2})}}).catch(e=>{console.log(e)})}else t.reportValidity()},t.handleMultiLisDelete=function(){let n=o();if(0==n.length)alert(gettext("Keine Standorte ausgewählt."));else{let e=document.getElementById("delete-lis-text"),t=(e&&(e.textContent=interpolate(ngettext("Der ausgewählte Standort wird endgültig gelöscht.","Die %s ausgewählten Standorte werden endgültig gelöscht.",n.length),[n.length],!1)),document.getElementById("delete-lis-confirm-btn"));t.onclick=()=>{$("#delete-lis-modal").foundation("close");{var a=n;let e=new FormData,t=document.getElementById("lisform").csrfmiddlewaretoken.value;e.append("csrfmiddlewaretoken",t),e.append("selected_lis",JSON.stringify(a)),(0,N.fetchPost)("lis/multidelete/",e,3e4).then(e=>e.json()).then(e=>{if(e.error)console.log(e.error);else{for(let t of a){var n=_markers.find(e=>e.properties.id==t),n=((0,O.removeCustomCPFromMap)(n),null!==_region.lisLimit&&_markers.length>=_region.lisLimit);_map.contextmenu.setDisabled((0,N.getCMItemByLabel)(gettext("Platziere Ladestandort")),n)}for(let t of e.result.nearby){let e=_markers.find(e=>e.properties.id==t);e&&(e.properties.evaluation=null)}(0,A.renderSiteManagerTable)(),_markerLayer.clearLayers(),_markerLayer.addLayers(_markers);const t=document.getElementById("selection-counter-div");t&&(t.style.display="none")}})}},$("#delete-lis-modal").foundation("open")}},t.handleOpenFeedbackModal=se,t.initializeMap=function(){var a;let l=(0,N.request)({path:"lis"});_region&&_region.geom&&(0,B.reverseCoordinates)(_region.geom);var i=L;i.colorIcon=e=>{return i.divIcon({className:"",iconAnchor:[0,24],labelAnchor:[-6,0],popupAnchor:[0,-36],html:'<span style="background-color: '+(e=e||"#FFFFFF")+'; width: 2rem; height: 2rem; display: block; left: -1rem; top: -1rem; position: relative; border-radius: 2rem 2rem 0; transform: rotate(45deg); border: 1px solid #000000"/>'})},i.circleIcon=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=null!=(t=null==e?void 0:e.radius)?t:16,n=-t/2,a=null!=(a=null==e?void 0:e.color)?a:"#07679F",o=null!=(o=null==e?void 0:e.border)?o:"2px solid black",e=null!=(e=null==e?void 0:e.outlint)?e:"1px solid white";const l=RegExp('[=></"]');return l.test(a)||l.test(o)||l.test(e)?null:i.divIcon({className:"",iconAnchor:[0,0],html:'<div style="background-color: '+a+"; width: "+t+"px; height: "+t+"px; left: "+n+"px; top: "+n+"px; position: relative; border-radius: "+t+"px; border: "+o+"; outline: "+e+'"/>'})},i.ImageIcon=e=>{var t;return e instanceof Array?t=i.icon({className:"",iconUrl:e[0],iconSize:[40,33],iconAnchor:[20,33],labelAnchor:[0,-10],popupAnchor:[0,-25],shadowUrl:e[1],shadowSize:[41,41],shadowAnchor:[13,41]}):e instanceof Object&&(t=i.icon({className:"",iconUrl:e.file,iconSize:[e.width,e.height]})),t};let e=_permissions.lisAccess<2||null!==_region.lisLimit&&_region.customLIS.length>=_region.lisLimit||_region.lis_evaluation.running;const t=!_h2activated||0<_permissions.lisAccess,n=t&&!_region.allow_fleet_locations,o=n&&_region.allow_highway_detour_routing,r=[{group:"create",visible:_h2activated,text:gettext("Neues Hâ-Gebot"),iconCls:"ion ion-md-basket",callback:F.newH2OrderCallback},{group:"create",visible:t&&_region.allow_fleet_locations,text:gettext("Platziere Flottenstandort"),iconCls:"ion ion-md-pin",callback:T.addFleetCallback,disabled:e},{group:"create",visible:t,text:gettext("Platziere Ladestandort"),iconCls:"ion ion-md-pin",callback:O.addCustomCPCallback,disabled:e},{group:"create",visible:t&&_region.allow_truck_eval,text:gettext("Platziere LKW Standort"),iconCls:"ion ion-md-pin",callback:O.addTruckCallback,disabled:e},{group:"create",visible:!0,text:gettext("Hier einen Kommentar setzen"),iconCls:"ion ion-md-text",callback:ee.createComment,disabled:_permissions.chatAccess<2},{group:"create",visible:n,text:gettext("Zeichne verbotene Zone"),iconCls:"ion ion-md-create",callback:function(e){_map.pm.enableDraw("Poly",{allowSelfIntersection:!1,snappable:!0,tooltips:!1,templineStyle:{color:R.restricted},hintlineStyle:{color:R.restricted,dashArray:[5,5]},pathOptions:{color:R.restricted,fillColor:R.restricted,fillOpacity:.4},cursorMarker:!0}),_drawingMode={restricted:!0},_map.getContainer().focus()},disabled:_permissions.computation<2},{group:"analyse",visible:!0,text:gettext("Wo bin ich?"),iconCls:"ion ion-md-locate",callback:function(e){navigator.geolocation?navigator.geolocation.getCurrentPosition(ae,oe):console.log(gettext("Geolocation wird nicht vom Browser unterstützt."))}},{group:"analyse",visible:n,text:gettext("Was ist in der Nähe?"),iconCls:"ion ion-md-search",callback:function(i){let e=document.getElementById("map-spinner");e&&(e.style.visibility="");(0,N.request)({path:"nearby",query:"?x="+i.latlng.lng+"&y="+i.latlng.lat,timeout:1e4,method:"GET"}).then(a=>{var o;V();
1for(o of[["car","#2a80ff80",pgettext("nearby radius category","Auto")],["bike","#8080ff80",pgettext("nearby radius category","Fahrrad")],["foot","#0000FF80",pgettext("nearby radius category","FuÃweg")]]){let e=a[o[0]];var l="";l+="<tr><td>"+gettext("Einwohner")+"</td><td>"+e.population+"</td></tr>";let t=e.poi,n=(e.poi_cat.length&&(t='<span title="'+gettext("Häufigste Kategorien")+":\n"+e.poi_cat.map(e=>e.amenity+": "+e.count).join("\n")+'" style="border-bottom: 1px dotted black; cursor: default">'+t+"</span>"),l+="<tr><td>"+gettext("Points of Interest")+"</td><td>"+t+"</td></tr>",e.exlis);e.exlis_pwr.length&&(n='<span title="'+e.exlis_pwr.map(e=>e.power+" kW: "+e.count).join("\n")+'" style="border-bottom: 1px dotted black; cursor: default">'+n+"</span>"),l+="<tr><td>"+gettext("Bestehende Ladeinfrastruktur")+"</td><td>"+n+"</td></tr>",l='<table style="width:100%;"><caption>'+o[2]+' <span style="font-weight: normal;">(Radius = '+e.radius+" m)</span></caption>"+l+"</table>",(0,B.showData)([{type:"Feature",geometry:{type:"Point",coordinates:[i.latlng.lat,i.latlng.lng]},properties:{desc:l}}],{name:gettext("Was ist in der Nähe?"),overlayId:"nearby_circle",color:o[1],radius:-e.radius})}}).catch(e=>{j&&console.log(e)}).finally(()=>{e&&(e.style.visibility="hidden")})},disabled:!_permissions.siteManager},{group:"analyse",visible:n,text:gettext("Erreichbarkeit"),iconCls:"ion ion-md-car",callback:function(e){let t=document.forms.iso_form;t.lat.value=e.latlng.lat,t.lon.value=e.latlng.lng,t.show_origin_marker.value="yes",$("#iso_modal").foundation("open")},disabled:!_permissions.siteManager},{group:"analyse",visible:n&&_region.allow_adhoc_competition_analysis,text:gettext("Wettbewerbsanalyse"),iconCls:"ion ion-md-podium",callback:function(e){let t=document.getElementById("competition_analysis_form");t.elements.latitude.value=e.latlng.lat,t.elements.longitude.value=e.latlng.lng,de()},disabled:!_permissions.siteManager},{group:"analyse",visible:n&&2<=_permissions.computation,text:gettext("Fast Finder von hier"),iconCls:"ion ion-md-flash",callback:H},{group:"analyse",visible:o,text:gettext("Route von hier"),iconCls:"ion ion-md-navigate",callback:z.startRouting},{group:"analyse",visible:!0,text:gettext("Abstand von hier messen"),iconCls:"ion ion-md-analytics",callback:le},{group:"analyse",visible:o,text:gettext("Autobahnanbindung"),iconCls:"ion ion-md-git-branch",callback:z.calculateDetour},{group:"map",visible:!0,text:gettext("Generiere Link"),iconCls:"ion ion-md-link",callback:function(e){let t=window.location.origin+window.location.pathname;t.endsWith("/")||(t+="/");var n=_map.getCenter().lat,a=_map.getCenter().lng,a=(0,N.roundToStr)(a,3),n=(0,N.roundToStr)(n,3),o=_map.getZoom();if(t+="?x="+a+"&y="+n+"&z="+o,confirm(gettext("Kopiere in Zwischenablage:\n")+t))if(document.execCommand){let e=(0,N.addElem)("",t,document.body,"textarea");
1e.select(),document.execCommand("copy"),document.body.removeChild(e)}else alert(gettext("Kopieren wird nicht vom Browser unterstützt."))}},{group:"map",visible:!0,text:gettext("Leere Karte"),iconCls:"ion ion-md-trash",callback:P.removeLayers,disabled:0==_permissions.computation}].filter(e=>e.visible),s=[];r.forEach((e,t)=>{0<t&&e.group!==r[t-1].group&&s.push({separator:!0}),s.push(e)}),_map=L.map("mapframe",{zoomControl:!1,contextmenu:!0,contextmenuItems:s}),_region.allow_fleet_locations&&($("#fleet-standing-time-modal").on("closed.zf.reveal",e=>{(0,T.saveStandingTime)()}),$("#fleet-avail-time-modal").on("closed.zf.reveal",e=>{(0,T.saveFleetAvailTime)()}),$("#fleet_modal_accordion").on("down.zf.accordion",(e,t)=>{if("acc-item-matches"==t.attr("id")){let e=document.getElementById("fleet-match-json-btn");e&&e.click()}}),$("#lis_modal_accordion").on("down.zf.accordion",(e,t)=>{if("acc-item-fleet"==t.attr("id")){let e=document.getElementById("lis-fleet-match-json-btn");e&&e.click()}}));_pro_packages.utilization&&$("#lis_modal_accordion").on("down.zf.accordion",(e,t)=>{"acc-item-environment-analysis"==t.attr("id")&&re()});{let e=L.polygon(_region.geom.coordinates).getBounds();var d=window.location.origin+window.location.pathname+"geocode";let l="";const x=L.Control.geocoder({geocoder:L.Control.Geocoder.here({serviceUrl:d,apiKey:"_",geocodingQueryParams:{bbox:e.pad(.1).toBBoxString(),in:"_",limit:10}}),placeholder:gettext("Suche..."),errorMessage:gettext("Keine Ergebnisse in der Projektregion"),showResultIcons:!1,defaultMarkGeocode:!1}).addTo(_map);function c(){x.resultFeatureGroup&&(_map.removeLayer(x.resultFeatureGroup),x.resultFeatureGroup=null)}x.on("markgeocode",e=>{l="mark",c();e=e.geocode;const t=L.marker(e.center,{opacity:1,bubblingMouseEvents:!1,contextmenu:!0,contextmenuInheritItems:!1,contextmenuItems:[{text:gettext("Entfernen"),iconCls:"ion ion-md-close",callback:()=>{_map.removeLayer(t)}}]}).bindPopup(e.name).addTo(_map),n=(t.openPopup(),L.featureGroup([t]).addTo(_map));0<(x.resultFeatureGroup=n).getLayers().length&&_map.fitBounds(n.getBounds())}),x.on("finishgeocode",t=>{if(1!==t.results.length){l="finish",c();const a=[];for(let e=0;e<t.results.length;e++){var n=t.results[e];const o=L.marker(n.center,{opacity:.5,bubblingMouseEvents:!1,contextmenu:!0,contextmenuInheritItems:!1,contextmenuItems:[{text:gettext("Entfernen"),iconCls:"ion ion-md-close",callback:()=>{_map.removeLayer(o),x.resultFeatureGroup&&(x.resultFeatureGroup.removeLayer(o),0===x.resultFeatureGroup.getLayers().length&&c())}}]}).bindPopup(n.name).addTo(_map);o.geocoderResultIndex=e,a.push(o)}const e=L.featureGroup(a).addTo(_map);0<(x.resultFeatureGroup=e).getLayers().length&&_map.fitBounds(e.getBounds()),setTimeout(()=>{if(x._alts&&x.resultFeatureGroup)for(let e of x._alts.children)e.onmouseenter=()=>{const t=e.dataset.resultIndex;x.resultFeatureGroup.eachLayer(e=>{e.setOpacity(e.geocoderResultIndex==t?1:.5)})}},100)}}),x.on("collapse",()=>{"finish"===l&&c()})}L.control.scale({imperial:!1,position:"bottomright"}).addTo(_map),L.control.zoom({position:"topright"}).addTo(_map),function(){let n=document.getElementById("feedback-thankyou"),a=document.getElementById("feedback-modal-content"),o=document.getElementById("feedback-character-count"),e=document.getElementById("feedback_form");function l(){e.reset(),(0,N.showRating)("feedback",0),o.innerText="0/1000"}let t=document.getElementsByClassName("feedback-open");for(let e=0;e<t.length;e++)t[e].addEventListener("click",se);document.getElementById("feedback-submit").addEventListener("click",t=>(t.target.disabled=!0,t.preventDefault(),e&&(0,N.fetchPost)("userfeedback/",new FormData(e),3e4).then(e=>{l(),a.style.display="none",n.style.display="flex",t.target.removeAttribute("disabled")}).catch(e=>{console.log(e)}),!1)),document.getElementById("feedback-reset").addEventListener("click",e=>{l(),$("#feedback_modal").foundation("close")}),$("#feedback-rating-div input[name=rating]").on("change",e=>{var t=$("#feedback-rating-div input[name=rating]:checked").val();(0,N.showRating)("feedback",t)});let i=document.getElementById("feedback-comment");i.addEventListener("keyup",e=>{var t=i.value.length;o.innerText=t+"/1000"})}();{var d='<a href="https://openstreetmap.org">OpenStreetMap</a>',u=L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:"Tiles © "+d+" Contributors",maxZoom:Math.min(19,q)}),m=L.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",{attribution:"Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community",maxZoom:Math.min(19,q)});let e="",t="";2<=window.devicePixelRatio&&(e="_2x",t="@2x");var p=L.tileLayer("https://cartodb-basemaps-{s}.global.ssl.fastly.net/dark_all/{z}/{x}/{y}"+t+".png",{attribution:"Tiles © Carto, under CC BY 3.0. Data by "+d+", under ODbL.",maxZoom:q});let n="https://{s}.t.localiser.app/wmts/base_light"+e+"/webmercator"+e+"/{z}/{x}/{y}.png";"de"==_language_code?n="https://{s}.t.localiser.app/wmts/base_light_de"+e+"/webmercator"+e+"/{z}/{x}/{y}.png":"en"==_language_code?n="https://{s}.t.localiser.app/wmts/base_light_en"+e+"/webmercator"+e+"/{z}/{x}/{y}.png":"fr"==_language_code&&(n="https://{s}.t.localiser.app/wmts/base_light_fr"+e+"/webmercator"+e+"/{z}/{x}/{y}.png");var g=L.tileLayer(n,{attribution:"Tiles © Carto, under CC BY 3.0. Data by "+d+", under ODbL.",maxZoom:q}).addTo(_map),d=L.tileLayer("https://{s}.t.localiser.app/wmts/base_light_nolabel"+e+"/webmercator"+e+"/{z}/{x}/{y}.png",{attribution:"Tiles © Carto, under CC BY 3.0. Data by "+d+", under ODbL.",maxZoom:q});const E={};E[gettext("OpenStreetMap")]=u,E[gettext("GIS Satellite")]=m,E[gettext("Dark")]=p,E[gettext("Light (stumme Karte)")]=d,E[gettext("Light")]=g,(_ctrlLayer=L.control.layers(E,null)).addTo(_map)}{const w=L.control({position:"topright"});w.onAdd=()=>{const e=L.DomUtil.create("div","leaflet-control-data-sidebar leaflet-control-layers"),t=L.DomUtil.create("a","leaflet-control-data-sidebar-toggle",e);return L.DomUtil.create("i","icon icon--medium ion-md-analytics",t),t.addEventListener("click",D.show_data_sidebar),e.classList.add("hidden"),e},w.addTo(_map)}if((0,N.request)({path:"chat"}).then(e=>{_chat_messages=e}).catch(e=>{j&&console.log(e)}).finally(()=>{(0,M.renderSidebarChat)()}),_h2activated){(0,F.initH2MarketSection)();{let e=null==(u=document.getElementById("tab-conv"))?void 0:u.children[0];e&&(e.href=window.location.origin+"/LISMap/project/"+_region.id+"/conversation/")}}window.onload=e=>{U(),(0,ne.renderDebugInfo)();let t=new URLSearchParams(window.location.search);var n=Number(t.get("x")),a=Number(t.get("y")),o=Number(t.get("z"));
1if(n&&a&&o)_map.setView([a,n],o),(0,B.showResult)(_region);else if((0,C.restoreMapView)())(0,B.showResult)(_region);else if(function(e){for(var t of _region.customLIS){var n;if(t.id==e)return n=t.geom.coordinates[1],t=t.geom.coordinates[0],_map.setView([n,t],18),1}}(t.get("lis")))(0,B.showResult)(_region);else try{{let e=L.polygon(_region.geom.coordinates,{color:R.border,opacity:.5,interactive:!1,noClip:!0}).addTo(_map);setTimeout(function(){_map.removeLayer(e)},3e3),_map.fitBounds(e.getBounds())}(0,B.showResult)(_region)}catch(e){j&&console.log(e),_map.setView([52.43,13.53],12)}Q(l).then(()=>{let e=document.getElementById("tab-site-manager");e&&e.classList.remove("disabled-sidebar-tab");const t=new URLSearchParams(window.location.search);if(t.get("lis"))try{(0,O.openLisModal)(Number(t.get("lis")))}catch(e){console.log(e)}}),Z(),(0,te.initScenarios)();{let n=document.getElementById("lis-description");if(n){_simplemde=new EasyMDE({element:n,spellChecker:!1,autoDownloadFontAwesome:!1,forceSync:!0,renderingConfig:{sanitizerFunction:e=>DOMPurify.sanitize(e),markedOptions:{breaks:!0,pedantic:!1}}});{let t=null;_simplemde.codemirror.on("refresh",function(){var e=n.parentElement;0<e.scrollWidth&&e.scrollWidth!=t&&(t=e.scrollWidth,_simplemde.codemirror.refresh())}),_simplemde.codemirror.on("change",e=>n.onchange(null))}$("#lis_modal_accordion").on("down.zf.accordion",function(){_simplemde.codemirror.refresh()})}}},window.addEventListener("resize",()=>{U()}),_map.on("click",function(t){if(Y)Y(t.latlng);else if(_ruler)ie(t);else if(t.originalEvent.ctrlKey||t.originalEvent.metaKey)le(t);else{j&&console.log(t.latlng),V();let e=[];_map.eachLayer(o=>{o.pointQuery&&e.push(Promise.resolve((0,N.request)({path:"point_query",query:o.pointQuery,params:{lat:t.latlng.lat,lon:t.latlng.lng,z:_map.getZoom()},timeout:1e4}).then(e=>{var t=o.pointQueryOptions||{field:"all"},n=null==(n=o.pointQueryOptions)?void 0:n.display_target;if(!e||null==e.properties)return{desc:null,display_target:n};let a;return{desc:a="sidebar"==n?(0,D.create_data_sidebar_element)(e,t):(0,C.displayAHPEntry)({features:[e]},t)[0].properties.desc,display_target:n}})))}),0!=e.length&&Promise.allSettled(e).then(e=>{let a=document.createElement("DIV");e.forEach(t=>{if("fulfilled"==t.status){let e=t.value.desc;if("string"==typeof(e="function"==typeof e?e():e)&&e){const n=document.createElement("DIV");n.innerHTML=e,e=n}e&&("sidebar"==t.value.display_target?(0,D.add_to_data_sidebar)(e):a.appendChild(e))}else j&&console.log(t.reason)}),a.innerHTML&&_map.openPopup(a,t.latlng,{maxWidth:450})})}}),_map.on("mousemove",e=>{_ruler&&(_ruler.preview.setLatLngs([_ruler.points[0].getLatLng(),e.latlng]),_ruler.preview.redraw(),_ruler.mouse=e.latlng)}),document.onkeydown=e=>{if("Escape"===e.key){_map.pm.disableDraw("Poly"),_drawingMode=null,V(),J();let t=$(".leaflet-popup-close-button");for(let e=0;e<t.length;e++)t[e].click()}else if("Backspace"===e.key){if(_ruler&&1<_ruler.points.length&&_ruler&&!(_ruler.points.length<=1)){_ruler.points.shift().remove();const t=_ruler.line.getLatLngs();_ruler.line.setLatLngs(t.slice(0,t.length-1)),_ruler.innerline.setLatLngs(t.slice(0,t.length-1)),K()}}else" "===e.key&&_ruler&&(_ruler.finished?J():(_ruler.finished=!0,_ruler.preview.remove(),_ruler.preview.redraw()));if(6448128025120785===(a=38==e.keyCode&&38!=a?38:38*a+e.keyCode)){L.TileLayer.Konami=L.TileLayer.extend({getTileUrl:function(e){return"https://placekitten.com/256/256?image="+Math.ceil(16*Math.random())%16},getAttribution:function(){return"<a href='https://placekitten.com/attribution.html'>PlaceKitten</a>"}});const n=new L.TileLayer.Konami;_ctrlLayer.addBaseLayer(n,"???"),n.addTo(_map)}},_map.on("zoomend",e=>{var t=(0,P.getOverlayLayer)("fast_finder_potential");const n=Object.values(_AHPLayers).concat(t?[t]:[]);n.map(e=>{if("heatPane"==e.options.pane){var t=(0,N.metersInPixels)(e.options.abs_radius);try{e.setOptions({radius:t,blur:t/2,blendMultiply:!0})}catch(e){}}})});let f=_region?L.control.sidebar("sidebar").addTo(_map):null;{function h(e){const t=document.getElementById("sidebar-spacer");var n,a;t&&(e=void 0===e?o.offsetWidth:e)!=window.innerWidth&&e!=(n=t.offsetWidth)&&(n=e-n,a=_selectedMarker&&_map.getBounds().contains(_selectedMarker.getLatLng()),t.style.width=e+"px",_map.panBy([n,0],{animate:!1}),_map.invalidateSize({pan:!1}),document.getElementById("site-manager-detail").classList.contains("active")&&a&&!_map.getBounds().contains(_selectedMarker.getLatLng())&&_map.panTo(_selectedMarker.getLatLng()))}(_map.sidebar=f).addEventListener("content",e=>{var t;if("site-manager"==e.id?(null!=(t=document.getElementById("sidebar"))&&t.classList.add("full-width-tab"),(0,A.render
1SiteManagerTable)()):"debug-info"==e.id?null!=(t=document.getElementById("sidebar"))&&t.classList.add("full-width-tab"):"h2market"==e.id?(0,F.setH2View)(_h2filter.view||"map"):"site-manager-detail"==e.id?null!=(t=document.getElementById("sidebar"))&&t.classList.add("full-width-tab"):null!=(t=document.getElementById("sidebar"))&&t.classList.remove("full-width-tab"),(0,N.applySidebarContractedState)(),"fastFinder"==e.id?(t=(0,P.getOverlayLayer)("custom_restricted_zones"))&&!_map.hasLayer(t)&&_map.addLayer(t):Z(),"chat"==e.id){let e=document.getElementById("chatform");e.scrollIntoView()}}),f.addEventListener("closing",()=>{var e;null!=(e=document.getElementById("sidebar"))&&e.classList.remove("full-width-tab"),h(50)});let o=f._sidebar;o.addEventListener("transitionend",e=>{"width"==e.propertyName&&(h(),$("#lis-acc-environment-analysis").hasClass("is-active")&&re())})}_region.lis_evaluation.task&&setTimeout(G,0,_region.lis_evaluation.task,"progress-canvas-evaluation",3e3,function(){confirm(gettext("Bewertung abgeschlossen. Möchten Sie die Ergebnisse abrufen?"))&&X()},function(e){j&&console.log(e)});m=localStorage.getItem("locationFingerprintTaskId");"true"===localStorage.getItem("locationFingerprintUIVisible")&&m&&setTimeout(G,0,m,"progress-canvas-calculate-location-fingerprints",3e3,function(){localStorage.removeItem("locationFingerprintTaskId"),"true"===localStorage.getItem("locationFingerprintUIVisible")&&confirm(gettext("Berechnung der Standortprofile abgeschlossen."))&&X()},function(e){localStorage.removeItem("locationFingerprintTaskId"),j&&console.log(e)});_region.filesTask&&setTimeout(G,0,_region.filesTask,"progress-canvas-files",3e3,function(){(_region.filesTask=null,C.loadAHPData)()},function(e){j&&console.log(e)});_map.on("pm:create",t=>{let n=t.layer;if(_drawingMode.restricted){_drawingMode=null;let e=new FormData;var a=document.getElementById("lisform").csrfmiddlewaretoken.value;e.append("csrfmiddlewaretoken",a),e.append("geom",JSON.stringify(n.toGeoJSON().geometry.coordinates)),void(0,N.fetchPost)("forbidden/",e,3e4).then(e=>e.json()).then(e=>{e.id?(n.properties=e,W(n)):e.error&&n.remove()})}else if(_drawingMode.search){a=document.getElementById("lisform");if(a){let e=new FormData;e.append("csrfmiddlewaretoken",a.csrfmiddlewaretoken.value),e.append("search",JSON.stringify(t.layer.toGeoJSON().geometry)),(0,N.fetchPost)("lis/"+_drawingMode.search.properties.id+"/update/",e,1e4).then(e=>{_drawingMode.search.searchPoly=t.layer,_drawingMode.search.options.contextmenuItems[0]={text:gettext("Entferne Suchraum"),iconCls:"ion ion-md-close",callback:O.removeSearchPoly},_drawingMode=null,setTimeout(e=>{_map.removeLayer(t.layer)},3e3)}).catch(e=>{alert(gettext("Suchraum konnte nicht erstellt werden.")),_map.removeLayer(t.layer),j&&console.log(e)})}}});const _=document.getElementById("data-sidebar");if(_){const k=_.querySelector(".minimize"),S=_.querySelector(".close");null!==k&&void 0!==k&&k.addEventListener("click",e=>{(0,D.hide_data_sidebar)()}),null!==S&&void 0!==S&&S.addEventListener("click",e=>{(0,D.close_data_sidebar)()})}const y=null==(p=document.getElementById("mapframe"))?void 0:p.querySelector(".leaflet-control-container .leaflet-top.leaflet-right"),v=document.getElementById("h2-map-legend");y&&v&&y.appendChild(v);const b=document.querySelectorAll(".custom_tooltip_placeholder");b.forEach(e=>{var t=e.getAttribute("data-tooltip-text");e.replaceWith(null!=(e=(0,N.create_custom_tooltip)(t,!1))?e:"")});{const f=document.querySelector(".sidebar-content");d=document.querySelector("#lis_modal_accordion .accordion-title");const I=document.querySelector("#lis-modal");f&&d&&new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting?I.classList.remove("header-minified"):I.classList.add("header-minified")})},{root:f,rootMargin:"0px 300px 600px 0px",threshold:1}).observe(d)}},t.openIsoModalFromMarker=function(e){let t=document.forms.iso_form;t.lat.value=e.relatedTarget.getLatLng().lat,t.lon.value=e.relatedTarget.getLatLng().lng,t.show_origin_marker.value="no",$("#iso_modal").foundation("open")},t.openResetEvaluationModal=function(){var e=0<o().length;$("#reset-eval-text-selected").toggle(e),$("#reset-eval-text-all").toggle(!e),$("#reset-evaluation-modal").foundation("open")},t.removeFFCircle=l,t.setPointPick=function(e){Y=e,_map.getContainer().classList.toggle("map--picking",!!e)}
1,t.singleLisEvaluation=function(a){if($.fn.dataTable.isDataTable("#site-manager-table")){let e=$("#site-manager-table").DataTable(),t=e.rows({selected:!0}),n=e.row((e,t)=>t.lis_id==a);n.count()&&(t.deselect(),n.select(),s(!1,a),n.deselect(),t.select())}},t.startAdhocCompetitionAnalysis=de,t.toggleFingerprintUIVisibility=function(){var e;_permissions.debugInfoAccess&&(e="true"===localStorage.getItem("locationFingerprintUIVisible"),localStorage.setItem("locationFingerprintUIVisible",e?"false":"true"),g())},t.updateFFPointRadius=n,t.updateFingerprintUIVisibility=g,t.updateProgress=G,t.update_environment_analysis=c;var C=e("./AHP"),B=e("./features"),T=e("./fleet"),P=e("./layer"),ee=e("./comment_modal"),O=e("./lis_modal"),M=e("./chat"),te=e("./scenario"),A=e("./table"),ne=e("./debug_info"),D=e("./dataSidebar"),F=e("./marketplace"),N=e("./utils"),z=e("./routing");const j=!0,q=(t.DEBUG=j,19);t.MAX_ZOOM=q;t.PRECISION=5;e="ontouchstart"in window||!!navigator.msMaxTouchPoints;t.HAS_TOUCH=e;const R={border:"rgb(0, 135, 84)",potential:"#ff1a80",LIS:"#808080",proposed:"#39bfff",POI_custom:"skyblue",RLI_blue:"MidnightBlue",searchPolygon:"#07689F",h2Polygon:"#008ede",defaultCluster:"#0080ff",ruler:"yellow",restricted:"#ff4040",error:"#FF0000",progressBgd:"#104D88",progressFgd:"#ffffff",progressBgdInverse:"#ccdbdc",progressFgdInverse:"#104D88"};function U(){var e=.01*window.innerHeight;document.getElementById("mapframe").style.setProperty("--vh",e+"px"),_map&&_map.invalidateSize()}function H(e){document.getElementById("computation_form").geom_point.value=JSON.stringify(e.latlng),(0,P.deleteOverlayLayer)("fast_finder_circle"),n(),$("#fastfinder-radius-modal").foundation("open")}function n(){var e=document.getElementById("ff_geom_point_radius");document.getElementById("ff_geom_point_radius_label").textContent=e.value+" m",document.getElementById("id_geom_point_radius").value=e.value}function l(){(0,P.deleteOverlayLayer)("fast_finder_circle"),document.getElementById("id_geom_point").value=""}function G(l,i,r,s,d){let c=5<arguments.length&&void 0!==arguments[5]&&arguments[5],u=document.getElementById(i);(0,N.request)({path:"progress",query:l}).then(t=>{if(t.percent<0)d(t.info),u.parentElement.style.visibility="hidden";else if(0==t.percent)u.parentElement.style.visibility="visible",setTimeout(G,r,l,i,r,s,d,c);else if(t.percent<100){let e=u.getContext("2d");var n=u.width/2,a=u.height/2,o=.4*u.width;u.parentElement.style.visibility="visible",e.clearRect(0,0,u.width,u.height),e.beginPath(),e.arc(n,a,o-2,0,2*Math.PI),e.strokeStyle=c?R.progressBgdInverse:R.progressBgd,e.lineWidth=4,e.stroke(),e.beginPath(),e.arc(n,a,o-2,270*Math.PI/180,Math.PI*(270+360*t.percent/100)/180),e.strokeStyle=c?R.progressFgdInverse:R.progressFgd,e.lineWidth=4,e.stroke(),setTimeout(G,r,l,i,r,s,d,c)}else 100==t.percent&&(u.parentElement.style.visibility="hidden",s(t.info))}).catch(e=>{u.parentElement.style.visibility="hidden",d(e)})}function V(){(0,P.deleteOverlayLayer)("nearby_circle")}function W(a){a.bindContextMenu({contextmenu:!0,contextmenuInheritItems:!1,contextmenuItems:[{text:gettext("Entferne Zone"),iconCls:"ion ion-md-close",callback:function(e){var t=a;if(t.properties.id){let e=new FormData;var n=document.getElementById("lisform").csrfmiddlewaretoken.value;e.append("csrfmiddlewaretoken",n),e.append("id",t.properties.id),(0,N.fetchPost)("forbidden/",e,3e4).then(e=>{e.ok?t.remove():console.log("Error while removing forbidden zone")})}else console.log("Forbidden zone without ID")}}]});let e=(0,P.getOverlayLayer)("custom_restricted_zones");e||(e=L.featureGroup(),(0,P.addOverlayLayer)(e,gettext("Eigene verbotene Zonen"),"custom_restricted_zones"),_map.addLayer(e)),e.hasLayer(a)||e.addLayer(a)}function Z(){var e=(0,P.getOverlayLayer)("custom_restricted_zones");e&&_map.removeLayer(e)}
1function ae(e){console.log(e),_map.setView([e.coords.latitude,e.coords.longitude],Math.max(17,_map.getZoom()));var t=(0,B.showData)([{geometry:{coordinates:[e.coords.latitude,e.coords.longitude],type:"Point"},properties:{color:"rgba(7, 104, 159, 0.5)"}}],{radius:e.coords.accuracy});t.bindTooltip(gettext("Aktuelle Position")),setTimeout(function(){_map.removeLayer(t)},2e4)}function oe(e){switch(e.code){case e.PERMISSION_DENIED:alert(gettext("Keine Berechtigung für Geolocation."));break;case e.POSITION_UNAVAILABLE:alert(gettext("Standortdaten stehen nicht zur Verfügung."));break;case e.TIMEOUT:alert(gettext("Anfrage dauerte zu lange."));break;case e.UNKNOWN_ERROR:alert(gettext("Ein unbekannter Fehler ist aufgetreten."));break;default:console.error(e)}}function le(e){J();const t=(_ruler={finished:!1,points:[],line:L.polyline([e.latlng],{color:"black",weight:5}).addTo(_map),innerline:L.polyline([e.latlng],{color:"white",weight:2}).addTo(_map),preview:L.polyline([e.latlng,e.latlng],{color:"#07679F",dashArray:[5,3],interactive:!1,lineCap:"butt"}).addTo(_map),mouse:e.latlng,timeout:!1}).line.bindPopup("0 m",{autoClose:!1,closeOnClick:!1}).openPopup(e.latlng);t.on("popupclose",e=>J()),ie(e)}function ie(e){if(_ruler&&!_ruler.timeout&&!_ruler.finished){const n=L.marker(e.latlng,{icon:L.circleIcon({radius:12,color:"transparent",border:"2px solid black",outline:"1px solid white"}),draggable:!0}).addTo(_map),a=_ruler.points.length;n.on("drag",e=>{const t=_ruler.line.getLatLngs();t[a]=n.getLatLng(),_ruler.line.setLatLngs(t),_ruler.innerline.setLatLngs(t),_ruler.mouse=_ruler.points[0].getLatLng(),K()}),n.on("dragstart",e=>_ruler.timeout=!0),n.on("dragend",e=>{setTimeout(e=>_ruler.timeout=!1,500)}),_ruler.points.unshift(n),0<a&&(_ruler.line.addLatLng(e.latlng),_ruler.innerline.addLatLng(e.latlng)),K()}}function K(){if(_ruler){_ruler.line.redraw(),_ruler.innerline.redraw();let t=0;const n=_ruler.line.getLatLngs();for(let e=1;e<n.length;e++)t+=n[e].distanceTo(n[e-1]);let e=(0,N.roundToStrLocal)(t,0,_language_code)+" m";1e3<=t&&(e=(0,N.roundToStrLocal)(t/1e3,2,_language_code)+" km"),_ruler.line.setPopupContent(e).openPopup(_ruler.points[0].getLatLng()),_ruler.finished||(_ruler.preview.setLatLngs([_ruler.points[0].getLatLng(),_ruler.mouse]),_ruler.preview.redraw())}}function J(){if(_ruler){for(var e of _ruler.points)e.remove();const t=_ruler.line;_ruler.innerline.remove(),_ruler.preview.remove(),_ruler=null,t.remove()}}function o(){let t=[];if($.fn.dataTable.isDataTable("#site-manager-table")){var n=$("#site-manager-table").DataTable().rows({selected:!0}).data();for(let e=0;e<n.length;e++)t.push(n[e].lis_id)}return t}function u(e){let t=document.getElementById("already-eval-reset-btn");t.onclick=()=>{$("#already-evaluated-modal").foundation("close"),r(e)},$("#already-evaluated-modal").foundation("open")}function s(){let i=0<arguments.length&&void 0!==arguments[0]&&arguments[0],r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;var t=2<arguments.length&&void 0!==arguments[2]&&arguments[2];let n=document.getElementById("customlis_evaluation_form"),a=[document.getElementById("start-eval-btn"),document.getElementById("start-eval-btn-modal")].filter(e=>e);if(n.checkValidity()){let e=(r=null===r||Array.isArray(r)?r:[r])||o();if(n.elements.selected_lis.value=JSON.stringify(e),!i&&!t){let l=0<e.length?_markers.filter(t=>e.some(e=>e==t.properties.id)):_markers;if(l.some(e=>1!=e.properties.vehicle_type&&!function(e){var n=e&&e.properties?e.properties.power_table:null;if(n&&0!==n.length){let t=0;for(let e=0;e<n.length;e++)t+=n[e].count;return 0<t}}(e))){let e=1==l.length?l[0]:null,t=document.getElementById("eval-no-cp-text-multi"),n=document.getElementById("eval-no-cp-text-single"),a=(t&&(t.style.display=e?"none":""),n&&(n.style.display=e?"":"none"),document.getElementById("eval-no-cp-config-btn")),o=(a&&(a.style.display=e?"":"none",a.onclick=e?()=>{$("#eval-no-cp-warning-modal").foundation("close"),(0,O.openLisModal)(e.properties.id,"#acc-item-power")}:null),document.getElementById("eval-no-cp-proceed-btn"));return o.onclick=()=>{$("#eval-no-cp-warning-modal").foundation("close"),s(i,r,!0)},void $("#eval-no-cp-warning-modal").foundation("open")}}if(!i&&0<e.length&&_markers.some(t=>t.properties.evaluation&&e.some(e=>e==t.properties.id)))u(e);else{let e=new FormData(n);i&&e.append("reset","true"),a.map(e=>e.disabled=!0),(0,N.fetchPost)("eLIS/",e,3e5).then(e=>e.json()).then(a=>{if($("#evaluation-settings-modal").foundation("close"),"error"in a)throw new Error(a.error);if("evaluation_start"==a.action)return X().then(e=>new Promise(function(n,t){G(a.task_id,"progress-canvas-evaluation",3e3,function(i){X().then(e=>{if(i.hasOwnProperty("n_lis_evaluated")){let e=document.getElementById("n-lis-evaluated");var t=i.n_lis_evaluated;e.innerText=t;let a=document.getElementById("evaluation-complete-modal-failed");if(i.n_lis_failed?(a.style.display="",document.getElementById("n-lis-failed").innerText=i.n_lis_failed):a.style.display="none",(a=document.getElementById("evaluation-complete-modal-failed-content"))&&i.lis_failed){a.innerHTML="";for(let[t,n]of Object.entries(i.lis_failed)){var o=_markers.find(e=>e.properties.id==t),l=(0,N.addElem)(null,"",a,"DIV");let e=(0,N.addElem)(null,"",l,"A");
1(0,N.addElem)("icon icon--small ion-md-map","",e,"I"),e.href="#",e.onclick=e=>{$(".sidebar-close").click(),$("#evaluation-success-modal").foundation("close"),(0,O.highlightCCP)(t)};o=o.properties.name+": "+n.stage;(0,N.addElem)(null,o,l,"SPAN")}}if(r&&0===t&&!i.n_lis_failed)u(r);else{let e=document.getElementById("evaluation-complete-modal-reset-info");0!==t||i.n_lis_failed?e.style.display="none":e.style.display="",$("#evaluation-success-modal").foundation("open")}}n()}).catch(e=>{t(e)})},t)}));if("evaluation_reset"==a.action)return X();if("evaluation_denied"==a.action)return document.getElementById("evaluation-denied-specific-query").textContent=a.query,document.getElementById("evaluation-denied-specific-remain").textContent=""+(a.limit-a.count),document.getElementById("evaluation-denied-specific-limit").textContent=a.limit,$("#evaluation-denied-modal").foundation("open"),0;throw new Error("Unexpected response")}).catch(e=>{j&&console.log(e),$("#evaluation-failed-modal").foundation("open")}).finally(()=>{a.map(e=>e.disabled=!1),(0,O.updateLisModal)(_selectedMarker),(0,O.removeAllEvalContextLayers)()})}}else $("#evaluation-settings-modal").foundation("open"),n.reportValidity()}function r(t){var e=document.getElementById("customlis_evaluation_form");let n=e.elements.selected_lis,a=(n.value=JSON.stringify(Array.isArray(t)?t:[t]),new FormData(e));a.append("reset","true"),(0,N.fetchPost)("eLIS/",a,3e5).then(e=>e.json()).then(e=>{if("error"in e)throw new Error(e.error);if("evaluation_reset"==e.action)return X().then(e=>{s(!1,t,!0)});throw new Error("Unexpected response during reset")}).catch(e=>{j&&console.log(e),$("#evaluation-failed-modal").foundation("open")})}function g(){if(_permissions.debugInfoAccess){var e="true"===localStorage.getItem("locationFingerprintUIVisible");const n=document.getElementById("toggle-location-fingerprint-visibility-btn");if(n){null!=(t=n.querySelector("i"))&&t.classList.toggle("ion-md-eye-off",e),null!=(t=n.querySelector("i"))&&t.classList.toggle("ion-md-eye",!e);var t=e?gettext("Standortprofile verbergen"):gettext("Standortprofile anzeigen");const o=n.querySelector("span");o&&(o.textContent=t),n.title=t}null!=(t=document.getElementById("calculate-lis-fingerprint-button"))&&t.style.setProperty("display",e?"":"none"),null!=(t=document.getElementById("lis-reset-fingerprint-button"))&&t.style.setProperty("display",e?"":"none"),null!=(t=document.getElementById("fingerprint-progress-wrap"))&&t.style.setProperty("display",e?"":"none"),null!=(t=document.getElementById("location-fingerprint-accordion"))&&t.style.setProperty("display",e?"":"none");const a=document.getElementById("lis-export-type-selection");if(a){const l=a.querySelector('option[value="json (fingerprint)"]');e&&!l?a.add(new Option("JSON (Standortprofile)","json (fingerprint)")):!e&&l&&l.remove()}}}t.COLORS=R;const f=25;function h(e){let t=0;for(const d of Object.values(e.properties.cp_config))t+=d;let n=0,a=0,o=(a=t<4?(n=36,12):t<8?(n=42,14):(n=t<16?48:54,16),[]);for(var[l,i]of Object.entries(e.properties.cp_config))for(let e=0;e<i;e++)o.push(l);var r=document.getElementById("util-colorscale-select").value,e=Math.min(1,e.properties.description.data.avg_utilization/f),r=chroma.scale(chroma.brewer[r])(e).hex();let s=document.createElement("div");e=function(t){var n=t.segments,a=t.size/2,o=t.size/2,l=t.size/2-2,e=l-6,i=t.innerColor,r=chroma(i).luminance()<.5?"#fff":"#00355A";const s=document.createElementNS("http://www.w3.org/2000/svg","svg");if(s.setAttribute("width",""+t.size),s.setAttribute("height",""+t.size),1===n){const v=document.createElementNS("http://www.w3.org/2000/svg","circle");v.setAttribute("cx",""+a),v.setAttribute("cy",""+o),v.setAttribute("r",""+l),v.setAttribute("fill",t.powerToColor(t.powers[0])),s.appendChild(v)}else{var d=2*Math.PI/n;for(let e=0;e<n;e++){var c=(-e-1)*d-Math.PI/2,u=-e*d-Math.PI/2,m=a+l*Math.cos(c),p=o+l*Math.sin(c),g=a+l*Math.cos(u),f=o+l*Math.sin(u),m="M "+a+" "+o+" L "+m+" "+p+" A "+l+" "+l+" 0 "+(u-c>Math.PI?1:0)+" 1 "+g+" "+f+" Z";const b=document.createElementNS("http://www.w3.org/2000/svg","path");b.setAttribute("d",m),b.setAttribute("fill",t.powerToColor(t.powers[e])),b.setAttribute("stroke",t.powerToStrokeColor(t.powers[e])),b.setAttribute("stroke-width","1px"),s.appendChild(b)}}const h=document.createElementNS("http://www.w3.org/2000/svg","circle"),_=(h.setAttribute("cx",""+a),h.setAttribute("cy",""+o),h.setAttribute("r",""+l),h.setAttribute("fill","transparent"),h.setAttribute("stroke","#fff"),h.setAttribute("stroke-width","2px"),s.appendChild(h),document.createElementNS("http://www.w3.org/2000/svg","circle")),y=(_.setAttribute("cx",""+a),_.setAttribute("cy",""+o),_.setAttribute("r",""+e),_.setAttribute("fill",i),_.setAttribute("stroke","#fff"),_.setAttribute("stroke-width","1px"),s.appendChild(_),document.createElementNS("http://www.w3.org/2000/svg","text"));return y.setAttribute("x",""+a),y.setAttribute("y",""+(1+o)),y.setAttribute("text-anchor","middle"),y.setAttribute("dominant-baseline","middle"),y.setAttribute("font-family","Roboto"),y.setAttribute("font-weight","bold"),y.setAttribute("font-size",""+t.fontSize),y.setAttribute("fill",r),y.textContent=t.text,s.appendChild(y),s}({size:n,fontSize:a,segments:t,powers:o,powerToColor:e=>e<=30?"#b4c5cf":e<150?"#5d8197":"#213F54",powerToStrokeColor:e=>e<=30?"#fff":"#ddd",text:""+t,innerColor:r});return s.appendChild(e),{html:s,className:"utilization-marker-icon",iconSize:[n,n],iconAnchor:[n/2,n/2],popupAnchor:[0,-n/2+2],tooltipAnchor:[0,-n/2+2]}}function _(e){let t="<b>"+(0,N.escapeHTML)(""+e.properties.title)+"</b><br>";t+=gettext("â Auslastung: ")+"<b>"+(0,N.escapeHTML)(""+Intl.NumberFormat(_language_code).format(e.properties.description.data.avg_utilization))+" %</b><br><br>";var n=Object.keys(e.properties.cp_config).map(e=>parseInt(e)).sort((e,t)=>
1t-e);var a=(e,t)=>{return'<div class="'+((n=""+e)<30?"utilization-power-rect-ac":n<150?"utilization-power-rect-dc":"utilization-power-rect-hpc")+'"></div>'+(0,N.escapeHTML)(""+t)+" Ã "+(0,N.escapeHTML)(""+e)+" kW<br>";var n},o=e.properties.scenario_aggregates.scenarios;if("HPC"in o){t+='<b>HPC</b> <span class="separator"></span> â <b>'+(0,N.escapeHTML)(""+Intl.NumberFormat(_language_code).format(o.HPC.utilization_avg_per_day_cp.location))+" %</b><br>";for(const l of n)150<=l&&(t+=a(l,e.properties.cp_config[l]))}if("DC"in o){t+='<b>DC</b> <span class="separator"></span> â <b>'+(0,N.escapeHTML)(""+Intl.NumberFormat(_language_code).format(o.DC.utilization_avg_per_day_cp.location))+" %</b><br>";for(const i of n)30<=i&&i<150&&(t+=a(i,e.properties.cp_config[i]))}if("AC"in o){t+='<b>AC</b> <span class="separator"></span> â <b>'+(0,N.escapeHTML)(""+Intl.NumberFormat(_language_code).format(o.AC.utilization_avg_per_day_cp.location))+" %</b><br>";for(const r of n)r<30&&(t+=a(r,e.properties.cp_config[r]))}return t}let d=null,m=null;function y(){d&&(d.remove(),_ctrlLayer.removeLayer(d)),d=L.featureGroup(),_ctrlLayer.addOverlay(d,gettext("Auslastungsdaten"));for(var t of m.locations){(0,B.reverseCoordinates)(t.geometry);let e=L.marker(t.geometry.coordinates,{icon:L.divIcon(h(t))}).bindTooltip(_(t),{direction:"top"}).addTo(d);(0,B.reverseCoordinates)(t.geometry),e.properties=t}d.on("click",e=>{(0,D.add_to_data_sidebar)((0,D.create_data_sidebar_element)(e.layer.properties,m.options))}),d.addTo(_map)}function v(){chroma.brewer.magma=["#000004","#010005","#010106","#010108","#020109","#02020b","#02020d","#03030f","#030312","#040414","#050416","#060518","#06051a","#07061c","#08071e","#090720","#0a0822","#0b0924","#0c0926","#0d0a29","#0e0b2b","#100b2d","#110c2f","#120d31","#130d34","#140e36","#150e38","#160f3b","#180f3d","#19103f","#1a1042","#1c1044","#1d1147","#1e1149","#20114b","#21114e","#221150","#241253","#251255","#271258","#29115a","#2a115c","#2c115f","#2d1161","#2f1163","#311165","#331067","#341069","#36106b","#38106c","#390f6e","#3b0f70","#3d0f71","#3f0f72","#400f74","#420f75","#440f76","#451077","#471078","#491078","#4a1079","#4c117a","#4e117b","#4f127b","#51127c","#52137c","#54137d","#56147d","#57157e","#59157e","#5a167e","#5c167f","#5d177f","#5f187f","#601880","#621980","#641a80","#651a80","#671b80","#681c81","#6a1c81","#6b1d81","#6d1d81","#6e1e81","#701f81","#721f81","#732081","#752181","#762181","#782281","#792282","#7b2382","#7c2382","#7e2482","#802582","#812581","#832681","#842681","#862781","#882781","#892881","#8b2981","#8c2981","#8e2a81","#902a81","#912b81","#932b80","#942c80","#962c80","#982d80","#992d80","#9b2e7f","#9c2e7f","#9e2f7f","#a02f7f","#a1307e","#a3307e","#a5317e","#a6317d","#a8327d","#aa337d","#ab337c","#ad347c","#ae347b","#b0357b","#b2357b","#b3367a","#b5367a","#b73779","#b83779","#ba3878","#bc3978","#bd3977","#bf3a77","#c03a76","#c23b75","#c43c75","#c53c74","#c73d73","#c83e73","#ca3e72","#cc3f71","#cd4071","#cf4070","#d0416f","#d2426f","#d3436e","#d5446d","#d6456c","#d8456c","#d9466b","#db476a","#dc4869","#de4968","#df4a68","#e04c67","#e24d66","#e34e65","#e44f64","#e55064","#e75263","#e85362","#e95462","#ea5661","#eb5760","#ec5860","#ed5a5f","#ee5b5e","#ef5d5e","#f05f5e","#f1605d","#f2625d","#f2645c","#f3655c","#f4675c","#f4695c","#f56b5c","#f66c5c","#f66e5c","#f7705c","#f7725c","#f8745c","#f8765c","#f9785d","#f9795d","#f97b5d","#fa7d5e","#fa7f5e","#fa815f","#fb835f","#fb8560","#fb8761","#fc8961","#fc8a62","#fc8c63","#fc8e64","#fc9065","#fd9266","#fd9467","#fd9668","#fd9869","#fd9a6a","#fd9b6b","#fe9d6c","#fe9f6d","#fea16e","#fea36f","#fea571","#fea772","#fea973","#feaa74","#feac76","#feae77","#feb078","#feb27a","#feb47b","#feb67c","#feb77e","#feb97f","#febb81","#febd82","#febf84","#fec185","#fec287","#fec488","#fec68a","#fec88c","#feca8d","#fecc8f","#fecd90","#fecf92","#fed194","#fed395","#fed597","#fed799","#fed89a","#fdda9c","#fddc9e","#fddea0","#fde0a1","#fde2a3","#fde3a5","#fde5a7","#fde7a9","#fde9aa","#fdebac","#fcecae","#fceeb0","#fcf0b2","#fcf2b4","#fcf4b6","#fcf6b8","#fcf7b9","#fcf9bb","#fcfbbd","#fcfdbf"];const e=document.getElementById("util-colorscale-canvas");var t=e.getContext("2d"),n=document.getElementById("util-colorscale-select").value,
1n=chroma.scale(chroma.brewer[n]),a=t.canvas.clientWidth,t=t.canvas.clientHeight;(0,C.createLegendObject)(n,a,t,0,f,e,"#7797A0").activateFunc(!0)}function p(e){let{scenario:n,cpo:a,power:o}=0<arguments.length&&void 0!==e?e:{};d&&d.eachLayer(e=>{e.removeFrom(_map);let t=!0;n&&(t=t&&Object.keys(e.properties.properties.scenario_aggregates.scenarios).includes(n)),a&&(t=t&&e.properties.properties.title===a),(t=o?t&&e.properties.properties.description.data.max_power>=o.min&&e.properties.properties.description.data.max_power<=o.max:t)&&e.addTo(_map)})}function re(){if($.fn.dataTable.isDataTable("#util-total-table")){const t=$("#util-total-table").DataTable();t.columns.adjust()}for(const n of["AC","DC","HPC"]){var e="#util-cpo-table-"+n;if($.fn.dataTable.isDataTable(e)){const a=$(e).DataTable();a.columns.adjust()}}}function c(n){const e=document.getElementById("fetch-util-btn-wrapper"),t=document.getElementById("environment-analysis-content");if(null===m||n!=m.lis_id)e&&(e.style.display=""),t&&(t.style.display="none");else if(e&&(e.style.display="none"),t){t.style.display="";{var a=m.environment_analysis;{const r=document.getElementById("environment-analysis-content");r.querySelector("#util-num-locations").innerText=a.total.location_count.toLocaleString(_language_code),r.querySelector("#util-num-locations-2").innerText=a.total.location_count.toLocaleString(_language_code),r.querySelector("#util-num-cps").innerText=a.total.cp_count.toLocaleString(_language_code),r.querySelector("#util-avg-util").innerText=null===a.total.util_year?"-":a.total.util_year.toLocaleString(_language_code),r.querySelector("#util-num-cpos").innerText=a.cpo.length.toLocaleString(_language_code)}let e=[];for(const s of Object.keys(a.scenario.cp_count))e.push({scenario:s,power_sum:a.scenario.power_sum[s],cp_count:a.scenario.cp_count[s],util_year:a.scenario.util_year[s]});if(e.push({scenario:gettext("Gesamt"),power_sum:a.total.power_sum,cp_count:a.total.cp_count,util_year:a.total.util_year,DT_RowClass:"util-total-row"}),$.fn.dataTable.isDataTable("#util-total-table")){const d=$("#util-total-table").DataTable();d.clear(),d.rows.add(e),d.draw()}else{n=[{data:"scenario",orderable:!1},{data:"power_sum",render:function(e,t,n){return"display"===t||"filter"===t?e.toLocaleString(_language_code)+" kW":e},orderable:!1},{data:"cp_count",orderable:!1},{data:"util_year",render:function(e,t,n){return"display"===t||"filter"===t?null===e?"-":e.toLocaleString(_language_code)+" %":e},orderable:!1}];let t=$("#util-total-table").DataTable({data:e,order:[],searching:!1,lengthChange:!1,info:!1,paging:!1,columns:n,language:{zeroRecords:gettext("Keine passenden Suchergebnisse gefunden"),emptyTable:gettext("Keine Matches vorhanden."),info:gettext("Zeilen _START_ - _END_ von _TOTAL_"),infoEmpty:"",infoFiltered:gettext("(aus _MAX_ Zeilen insgesamt)"),lengthMenu:gettext("Zeige _MENU_ Zeilen"),paginate:{first:gettext("Erste"),last:gettext("Letzte")}}});t.on("mouseenter","tbody tr",function(){const e=t.row(this);e.index()<3&&(p({scenario:e.data().scenario}),this.classList.add("highlight"))}).on("mouseleave","tbody tr",function(){p(),this.classList.remove("highlight")})}for(const c of["AC","DC","HPC"]){var o="#util-cpo-table-"+c,l=a.cpo.filter(e=>0<e.power_sum[c]);if($.fn.dataTable.isDataTable(o)){const u=$(o).DataTable();u.clear(),u.rows.add(l),u.draw()}else{var i=[{data:"cpo_name"},{data:e=>e.power_sum[c],render:function(e,t,n){return"display"===t||"filter"===t?e.toLocaleString(_language_code)+" kW":e},orderSequence:["desc","asc"]},{data:e=>{return 0===(e=e.cp_count[c])?null:e},render:function(e,t,n){return"display"===t||"filter"===t?null===e?"-":e.toLocaleString(_language_code):e},orderSequence:["desc","asc"]},{data:e=>e.util_year[c],render:function(e,t,n){return"display"===t||"filter"===t?null===e?"-":e.toLocaleString(_language_code)+" %":e},orderSequence:["desc","asc"]}];let e=$(o).DataTable({data:l,order:[[1,"desc"]],columns:i,searching:!1,lengthChange:!1,language:{emptyTable:gettext("Keine Betreiber vorhanden."),info:gettext("Zeilen _START_ - _END_ von _TOTAL_"),paginate:{first:gettext("Erste"),last:gettext("Letzte")}}});e.on("mouseenter","tbody tr",function(){p({cpo:e.row(this).data().cpo_name,scenario:c}),this.classList.add("highlight")}).on("mouseleave","tbody tr",function(){p(),this.classList.remove("highlight")})}}}}}function b(r){return(0,N.request)({path:"utilization",params:{id:r},timeout:1e4}).then(t=>{if(t.success){m=t,y();let e=document.getElementById("layer-settings");if(e){e.innerHTML="",e.style.display="block";const a=document.getElementById("utilization-layer-settings-template");if(a){const o=a.cloneNode(!0);o.id="utilization-layer-settings",o.style.display="block",e.appendChild(o);{var n=o;const l=n.querySelector(".close");l&&l.addEventListener("click",e=>{x()});const i=n.querySelector(".slider");i&&(noUiSlider.create(i,{range:{min:0,"14.2%":11,"28.5%":22,"42.8%":50,"57.1%":100,"71.4%":150,"85.7%":300,max:1e3},start:[0,1e3],connect:!0,snap:!0,pips:{mode:"steps",density:12,format:{to:e
1=>1e3===e?"max":e,from:e=>"max"===e?1e3:Number(e)}}}),i.noUiSlider.on("update",(e,t,n)=>{p({power:{min:n[0],max:n[1]}})}))}}L.DomEvent.disableClickPropagation(e),L.DomEvent.disableScrollPropagation(e),document.getElementById("util-colorscale-select").onchange=()=>{y(),v();const e=document.querySelector("#utilization-layer-settings .slider").noUiSlider;var[t,n]=e.get();p({power:{min:Number.parseFloat(t),max:Number.parseFloat(n)}})}}v(),c(r),(0,N.request)({path:"lis/"+r,timeout:2e3}).then(e=>{var t=(0,O.getMarker)(r);t?(e=(0,B.obj2FeatureArray)(e)[0],Object.assign(t.properties,e.properties),(0,A.renderSiteManagerTable)()):j&&console.log("marker not found from response")}).catch(e=>{j&&console.log(e)}),1<t.locations.length&&_map.flyToBounds(d.getBounds())}else"quota_reached"==t.error?$("#utilization-quota-modal").foundation("open"):console.error("Utilization request failed",t)}).catch(e=>{j&&console.error(e)})}function x(){let e=document.getElementById("utilization-layer-settings");d&&(d.remove(),_ctrlLayer.removeLayer(d),d=null,(m=null,D.close_data_sidebar)(),c(null)),e&&(e.parentElement.style.display="none",e.parentElement.innerHTML="")}function se(){let e=document.getElementById("feedback-thankyou"),t=document.getElementById("feedback-modal-content");t&&(t.style.display=""),e&&(e.style.display="none"),$("#feedback_modal").foundation("open")}let Y=null;function X(){return Q((0,N.request)({path:"lis"}))}function Q(e){return e.then(e=>{_markers=[],_markerLayer&&_markerLayer.clearLayers(),(0,B.showResult)({customLIS:e.customLIS});for(var n of _markers){let t=n.properties.id;n.on("click",e=>{(0,O.openLisModal)(t)})}_region.lis_evaluation=e.lis_evaluation,_debug_info=e.debug_info,(0,M.renderSidebarChat)(),(0,A.renderSiteManagerTable)()}).catch(e=>{j&&console.log(e),alert(gettext("Aktualisieren der Ladestandorte fehlgeschlagen."))})}function de(){$("#competition_analysis_modal").foundation("open");var e=document.getElementById("competition_analysis_form"),e=new FormData(e);a(0,null),(0,N.fetchPost)("adhoc_competition_analysis/",e,1e4).then(e=>{if(e.ok)return e.json();throw new Error("Network response was not ok")}).then(e=>{e.success?a(2,e):a(1,null)}).catch(e=>{console.error(e),a(1,null)})}function a(e,t){let n=document.getElementById("competition_analysis_spinner"),a=document.getElementById("competition_analysis_results"),o=document.getElementById("competition_analysis_error");switch(e){case 0:n.style.display="",a.style.display="none",o.style.display="none";break;case 1:n.style.display="none",a.style.display="none",o.style.display="";break;case 2:E([]),n.style.display="none",a.style.display="",o.style.display="none",E(t);break;default:}}function E(e){document.getElementById("competition_analysis_coords").innerText=e.start_coords?e.start_coords.reverse().join(","):"-",e.start_coords;e=e.cpo_summary||[];function a(e){return 0===e?null:e}function o(e){var t=Math.log10(100*e);let n=0;return n=0<=t?1:Math.floor(-t)+1,(0,N.roundToStrLocal)(100*e,n,_language_code)+" %"}if($.fn.dataTable.isDataTable("#competition_analysis_table")){const n=$("#competition_analysis_table").DataTable();n.clear(),n.rows.add(e),n.draw()}else{var t=[{data:"cpo_name",render:function(e,t,n){return("display"===t||"filter"===t)&&null===e?"-":e}},{data:"total_power_sum",render:function(e,t,n){return"display"===t||"filter"===t?e.toLocaleString(_language_code)+" kW":e},orderSequence:["desc","asc"]},{data:e=>a(e.cp_count.AC),render:function(e,t,n){return"display"===t||"filter"===t?null===e?"-":e.toLocaleString(_language_code):e},orderSequence:["desc","asc"]},{data:e=>a(e.cp_count.DC),render:function(e,t,n){return"display"===t||"filter"===t?null===e?"-":e.toLocaleString(_language_code):e},orderSequence:["desc","asc"]},{data:e=>a(e.cp_count.HPC),render:function(e,t,n){return"display"===t||"filter"===t?null===e?"-":e.toLocaleString(_language_code):e},orderSequence:["desc","asc"]},{data:e=>e.market_share.AC,render:function(e,t,n){return"display"===t||"filter"===t?null===a(e)?"-":o(e):e},orderSequence:["desc","asc"]},{data:e=>e.market_share.DC,render:function(e,t,n){return"display"===t||"filter"===t?null===a(e)?"-":o(e):e},orderSequence:["desc","asc"]},{data:e=>e.market_share.HPC,render:function(e,t,n){return"display"===t||"filter"===t?null===a(e)?"-":o(e):e},orderSequence:["desc","asc"]}];$("#competition_analysis_table").DataTable({data:e,order:[[1,"desc"]],columns:t,lengthMenu:[[10,-1],[10,gettext("alle")]],language:{search:gettext("Suche"),zeroRecords:gettext("Keine passenden Suchergebnisse gefunden"),emptyTable:gettext("Keine Ladeinfrastruktur im Umfeld vorhanden."),info:gettext("Zeilen _START_ - _END_ von _TOTAL_"),infoEmpty:"",infoFiltered:gettext("(aus _MAX_ Zeilen insgesamt)"),lengthMenu:gettext("Zeige _MENU_ Zeilen"),paginate:{first:gettext("Erste"),last:gettext("Letzte")}}}),$(document).on("open.zf.reveal","#competition_analysis_modal",function(){$("#competition_analysis_table").DataTable().columns.adjust().draw()})}}},{"./AHP":1,"./chat":4,"./comment_modal":5,"./dataSidebar":6,"./debug_info":7,"./features":8,"./fleet":9,"./layer":10,"./lis_modal":11,"./marketplace":13,"./routing":15,"./scenario":16,"./table":18,"./ut
1ils":19}],13:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.filterMarketplaceTable=u,n.handleGetH2Orders=y,n.handleH2OrderDelete=function(e){let t=new FormData,n=document.getElementById("lisform").csrfmiddlewaretoken.value;t.append("csrfmiddlewaretoken",n),confirm(gettext("Möchten Sie dieses Angebot / diese Suche löschen?"))&&(0,f.fetchPost)("h2order/"+e+"/delete/",t,3e4).then(e=>e.json()).then(e=>{e.success&&($("#h2order-modal").foundation("close"),y())})},n.initH2MarketSection=function(){const e=document.getElementById("h2view_btn_map"),t=document.getElementById("h2view_btn_table");e&&e.addEventListener("click",()=>k("map"));t&&t.addEventListener("click",()=>k("table"));const n=document.getElementById("h2filter_order_sell"),a=document.getElementById("h2filter_order_buy");n&&n.addEventListener("click",()=>v(2));a&&a.addEventListener("click",()=>v(1));const o=document.getElementById("h2filter_is_own"),l=document.getElementById("h2filter_is_match");o&&o.addEventListener("change",e=>E(e.currentTarget.checked?"is_own":""));l&&l.addEventListener("change",e=>E(e.currentTarget.checked?"is_match":""));const i=document.getElementById("h2filter_pstype"),r=document.getElementById("h2filter_ptype"),s=document.getElementById("h2filter_product"),d=document.getElementById("h2filter_status");i&&i.addEventListener("change",()=>b(i.value));r&&r.addEventListener("change",()=>{var e=r.value;_h2filter.product_type=e,_h2filter.product="",B(),S()});s&&s.addEventListener("change",()=>{var e=s.value;_h2filter.product=e,S()});d&&d.addEventListener("change",()=>{var e=d.value;_h2filter.status=e,S()});const c=document.getElementById("h2filter_company");c&&c.addEventListener("input",e=>{x(e.currentTarget.value)});const u=document.getElementById("h2filter_reset");u&&u.addEventListener("click",w);const m=document.querySelector(".status-2 .custom_html_tooltip_info a");m&&m.addEventListener("click",function(e){var t;e.preventDefault(),t=this,fetch("updateH2orders").then(e=>e.json()).then(e=>{if(e.success){t.onclick=null,t.classList.add("inactive");let e=t.parentElement.querySelector(".icon");e&&(e.style.visibility="visible"),h(),y()}}).catch(()=>{})});h(),function(){const e=document.getElementById("h2filter_pstype");if(e)if(_h2info.h2market.hide_product_super_type){const n=document.getElementById("h2filter_pstype_label");e.style.display="none",n.style.display="none",C()}else{var t=Object.keys(_h2info.products);I(e,t)}}(),k("map");var p=document.getElementById("tab-h2market");if(p){const g=new MutationObserver(function(e){e.forEach(function(e){e.target.classList.contains("active")||document.getElementById("sidebar").classList.remove("h2_table_view","h2_map_view")})});g.observe(p,{attributeFilter:["class"]})}y().then(()=>{let e=new URL(window.location+"");if(e.searchParams.get("h2order")){var t=e.searchParams.get("h2order");if(_h2orders)for(const l of _h2orders)if(l.id+""===t){_map.setView([l.geom_point.lat,l.geom_point.lng],16),_(l);break}}const n=new URLSearchParams(window.location.search);for(var a of["is_own","is_match","client"]){var o="h2filter_"+a;if(n.has(o)){"client"==a?x(n.get(o),!0):"is_own"!=a&&"is_match"!=a||E(a),k("table"),_map.sidebar.open("h2market"),(0,f.updateURLQueryParams)({del:[o]});break}}})},n.newH2OrderCallback=function(e){window.location.href=window.location.origin+window.location.pathname+"h2order/?x="+e.latlng.lng+"&y="+e.latlng.lat},n.setFilterCompany=x,n.setFilterProjectRelatedOrders=E,n.setH2View=k,n.updateH2OrderModal=_,n.updateH2Orders=d,n.updateOwnOrdersStatus=h;var a=e("./map"),o=e("./features"),f=e("./utils"),l=function(e,i,r,s){return new(r=r||Promise)(function(n,t){function a(e){try{l(s.next(e))}catch(e){t(e)}}function o(e){try{l(s.throw(e))}catch(e){t(e)}}function l(e){var t;e.done?n(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t)})).then(a,o)}l((s=s.apply(e,i||[])).next())})};let i=null;function r(e){let t=!0;i&&(i.clearLayers(),t=!1),e=e.map(e=>{if(e.geom_point)return e.geom={type:"Point",coordinates:[e.geom_point.lng,e.geom_point.lat]},e.icon={file:_h2info.icon_base_path+_h2info.products[e.product_super_type][e.product_type][e.product].icon_s,width:23,height:23},e.geom_poly&&(e.polygon=L.polygon(e.geom_poly,{stroke:!0,color:a.COLORS.h2Polygon,opacity:1,weight:2,interactive:!1,fill:!0,fillColor:a.COLORS.h2Polygon,fillOpacity:.4,noClip:!0})),e.tooltip={text:"<b>"+e.company.name+"</b><br/>"+_h2info.trans.product[e.product_type]+" - "+_h2info.trans.product[e.product],options:{direction:"top",offset:[0,-47],className:"h2order-tooltip",opacity:1}},e}),e=(0,o.obj2FeatureArray)(e),(i=(0,o.showData)(e,{name:gettext("Hâ Angebote/Gesuche"),clustered:48,clusterClass:"h2order-markercluster",divIconFunc:"h2order"}))&&t&&(i.on("click",e=>{_(e.layer.properties)}),i.on("mouseover",e=>{e.sourceTarget.properties.polygon&&_map.addLayer(e.sourceTarget.properties.polygon)}),i.on("mouseout",e=>{e.sourceTarget.properties.polygon&&_map.removeLayer(e.sourceTarget.properties.polygon)}))}function h(){const l=document.getElementById("h2sidebar_profile_status");function i(t){for(let e=0;e<t.children.length;e++)t.children[e].querySelectorAll(".h2sidebar_profile_status_element").forEach(e
1=>{e.style.display=""})}l&&(0,f.request)({path:"getH2ProjectStatus"}).then(e=>{var t,n;for([t,n]of[["h2_own_orders_count",e.orders.count],["h2_matches_count",e.matches.count]]){let e=document.getElementById(t);e.style.display="inline",e&&(e.innerText=n+"")}i(l);const a=l.querySelector("#h2sidebar_profile_status_orders_uptodate"),o=(0==e.orders.count?a.querySelector(".status-1").style.display="flex":e.orders.has_outdated_orders?a.querySelector(".status-2").style.display="flex":a.querySelector(".status-0").style.display="flex",l.querySelector("#h2sidebar_profile_status_connection_count"));if(e.client.is_verified?o.querySelector(".status-0").style.display="flex":o.querySelector(".status-1").style.display="flex",e.conv.has_unread_messages){let e=document.getElementById("unread_messages_indicator");e&&(e.style.display="")}}).catch(e=>{i(l),console.log(e)})}function s(e){_h2orders=e;let t={1:pgettext("order type action","Gesuch"),2:pgettext("order type action","Angebot")};function n(e,t,n,a,o){let l=document.createElement("div"),i=(l.className=n||"",new Image),r=(i.src=_h2info.icon_base_path+e,i.width=20,o&&(i.title=o),document.createElement("span"));return r.innerText=t,a?(l.appendChild(r),l.appendChild(i)):(l.appendChild(i),l.appendChild(r)),l}function a(e){if(e.is_own){var t=gettext("Mein Eintrag");var n="h2order-own-order-badge";let e=document.createElement("span");return e.className=n||"",e.innerText=t,e}if(e.is_match){let e=document.createElement("div"),t=(e.classList.add("match-type-icon"),document.createElement("i"));return t.classList.add("icon","icon--small","ion-md-heart"),e.appendChild(t),e}return""}return _h2orders.map(e=>({id:e.id,is_own:e.is_own,is_match:{display:a(e),filter:e.is_match},updated_at:{plain_text:new Date(e.updated_at).toLocaleDateString(_language_code)||"-",iso_string:new Date(e.updated_at).toISOString()},order_type:{plain_text:t[e.order_type],filter:e.order_type},product_super_type:{plain_text:_h2info.trans.product_super_type[e.product_super_type]||"-",filter:e.product_super_type},product_type:{plain_text:_h2info.trans.product_type[e.product_type]||"-",filter:e.product_type},product:{plain_text:_h2info.trans.product[e.product],display:n(_h2info.products[e.product_super_type][e.product_type].icon_s||_h2info.products[e.product_super_type][e.product_type][e.product].icon_s,_h2info.trans.product[e.product]||"-","h2order_product_name"),filter:e.product},company:{display:function(e){return e.company.is_verified?n("i_verified_company.svg",e.company.name,"verified_company",!0,gettext("Dieses Unternehmen hat sich bereits mit Partnern vernetzt.")):e.company.name||"-"}(e),plain_text:e.company.name||"-"},status:{plain_text:_h2info.trans.status[e.status]||"-",filter:e.status},h2_mass:{plain_text:e.max_h2_mass||"-",value:e.max_h2_mass}}))}function d(n){var e=s(n);if($.fn.dataTable.isDataTable("#marketplace-table")){const a=$("#marketplace-table").DataTable();a.clear(),a.rows.add(e),a.draw()}else{var t=[{title:gettext("Match"),data:"is_match",name:"is_match",render:{_:"display",filter:"filter"}},{title:gettext("Datum"),data:{_:"updated_at.plain_text",sort:"updated_at.iso_string"},name:"updated_at"},{title:gettext("Typ"),data:"order_type",name:"order_type",render:{_:"plain_text",filter:"filter"}},{title:gettext("Oberkategorie"),name:"product_super_type",data:"product_super_type",render:{_:"plain_text",filter:"filter"}},{title:gettext("Kategorie"),data:"product_type",name:"product_type",render:{_:"plain_text",filter:"filter"}},{title:gettext("Produkt"),data:"product",name:"product",render:{_:"display",filter:"filter"}},{title:gettext("Unternehmen"),data:"company",name:"company",render:{_:"display",filter:"plain_text"}},{title:gettext("Status"),data:"status",name:"status",render:{_:"plain_text",filter:"filter"}},{title:gettext("Hâ Menge"),data:{_:"h2_mass.plain_text",sort:"h2_mass.value",type:"h2_mass.value"},name:"h2_mass"},{data:"is_own",name:"is_own",visible:!1}];const o=$("#marketplace-table").DataTable({columns:t,columnDefs:[{targets:"is_match:name",width:"100px"},{targets:["product:name","company:name"],width:"300px"},{targets:"h2_mass:name",width:"110px"}],data:e,rowCallback:function(e,t){t.is_own&&$(e).addClass("h2order_own_order_row")},layout:{topStart:null,topEnd:null,bottomStart:null,bottomEnd:null,bottom:["info","pageLength","paging"]}});document.querySelector("#marketplace-table tbody").addEventListener("click",e=>{const t=e.target.closest("tr");t&&_(n.find(e=>e.id==o.row(t).data().id))}),_h2info.h2market.hide_product_super_type&&o.column("product_super_type:name").visible(!1)}r(n),h()}function _(m){if("number"!=typeof m||(m=_h2orders.find(e=>e.id==m))){var c={1:pgettext("order type capitalized","GESUCH"),2:pgettext("order type capitalized","ANGEBOT")};{let e=document.getElementById("h2order-modal-order-type"),t=(e.innerText=c[m.order_type],document.getElementById("h2order-modal-order-circle")),n=(t.className={1:"h2order-typ-buy",2:"h2order-typ-sell"}[m.order_type],document.getElementById("h2order-modal-order-updated-at"));n.innerText=gettext("Zuletzt geändert am ")+new Date(m.updated_at).toLocaleDateString(_language_code),m.is_own?(document.getElementById("h2order-modal-own-order-badge").style.display="",null!=(c=document.getElementById("h2order-modal-header"))&&c.classList.add("h2order-own-order-modal-header")):(document.getElementById("h2order-modal-own-order-badge").style.display="none",null!=(c=document.getElementById("h2order-modal-header"))&&c.classList.remove("h2order-own-order-modal-header"))}
1let e=document.getElementById("h2order-modal-desc");e.innerText=m.description||"-";{let e=document.getElementById("h2order-modal-product-img");e.src=m.icon.file}{let e=document.getElementById("h2order-modal-product"),t=(e.innerText=_h2info.trans.product[m.product]||"-",document.getElementById("h2order-modal-category")),n=(_h2info.h2market.hide_product_super_type?t.innerText=" ("+(_h2info.trans.product_type[m.product_type]||"-")+")":m.product!=m.product_type?t.innerText=" ("+(_h2info.trans.product_type[m.product_type]||"-"):t.innerText="",document.getElementById("h2order-modal-supercategory"));_h2info.h2market.hide_product_super_type?n.innerText="":""==t.innerText?n.innerText=" ("+(_h2info.trans.product_super_type[m.product_super_type]||"-")+")":n.innerText=" < "+(_h2info.trans.product_super_type[m.product_super_type]||"-")+")"}{let e=document.getElementById("h2order-modal-coords");e.innerText=m.geom_point.lat.toFixed(3)+", "+m.geom_point.lng.toFixed(3)}{let e=document.getElementById("h2order-show-on-map");e.onclick=e=>{$("#h2order-modal").foundation("close"),$(".sidebar-close").click();var t=Math.max(_map.getZoom(),15);_map.setView([m.geom_point.lat,m.geom_point.lng],t)}}{let e=document.getElementById("h2order-copy-coords");e.onclick=e=>{var t=m.geom_point.lat.toFixed(3)+","+m.geom_point.lng.toFixed(3);navigator.clipboard.writeText(t)}}{let e=document.getElementById("h2order-modal-status"),t=_h2info.trans.status[m.status]||"-";m.status_date&&(t+=gettext(" bis ")+m.status_date),e.innerText=t}_h2info.optional_fields.forEach(e=>{let t=document.getElementById("h2order-modal-"+e);t&&m.optional_fields.hasOwnProperty(e)?(t.innerText=_h2info.trans.optional_fields[e].choices[m.optional_fields[e]]||"-",t.parentElement.style.display=""):t&&(t.parentElement.style.display="none")});{let e=document.getElementById("h2company-accordion"),t=document.getElementById("h2order-open-existing-conv"),n=document.getElementById("h2order-request-contact-container"),a=document.getElementById("h2order-request-contact-button"),o=(m.show_contact?(e.style.display="",n.style.display="none",a&&(a.href="#"),t&&(m.is_own?t.style.display="none":(t.style.display="",t.onclick=e=>{e.stopPropagation(),window.location.href="/LISMap/project/"+_region.id+"/open_h2_conversation/"+m.id+"/"}))):(e.style.display="none",n.style.display="",a&&(a.href="/LISMap/project/"+_region.id+"/open_h2_conversation/"+m.id+"/")),document.getElementById("h2order-modal-company")),l=document.getElementById("h2order-modal-company-2"),i=(o.innerText=m.company.name||"",l.innerText=m.company.name||"",document.getElementById("h2order-modal-contact_email"));c=m.contact_email;i.innerText=c||"-",i.href=c?"mailto:"+c:"#";let r=document.getElementById("h2order-modal-contact_telephone");c=m.contact_telephone;r.innerText=c||"-",r.href=c?"tel:"+c:"#";let s=document.getElementById("h2order-modal-contact_koop_bb_url");const u=m.contact_koop_bb_url;let d="";u&&(d=0===u.indexOf("https://")||0===u.indexOf("http://")||0===u.indexOf("//")?u:"https://"+u),s.innerText=u||"-",s.href=u?d:"#"}{let e=document.getElementById("h2order-modal-share-url");e.value=window.location.origin+"/h2link/"+_h2info.h2market.url_name+"/"+m.id+"/"}{let e=document.getElementById("h2order-modal-edit-link");m.is_own?(e.href=window.location.origin+"/LISMap/"+_region.id+"/h2order/"+m.id+"/",e.style.display=""):(e.href="#",e.style.display="none")}{let e=document.getElementById("h2order-delete-button");e.dataset.order_id=m.id,m.is_own?e.style.display="":e.style.display="none"}var n,a,t;for(n of _h2info.yearly_fields){let e=document.getElementById("h2order-modal-chart-"+n),t=(e.innerHTML="",!1);_h2info.products[m.product_super_type][m.product_type][m.product].yearly_fields.includes(n)&&([a,t]=((t,n)=>{let e=document.createElement("div");e.className="h2order-chart",e.style.maxHeight="200px";var a,o=document.createElement("canvas");e.appendChild(o);let l=Object.keys(m.yearly_fields),i=[],r=!1;for(a of l=l.filter(e=>Number(e)>=(new Date).getFullYear())){let e=m.yearly_fields[a+""][t];e?r=!0:r&&(e=i.slice(-1)[0].y),r&&i.push({x:a,y:e})}var s=i.map(e=>e.x),d=i.map(e=>e.y);let c="#07679F",u=(document.body.classList.contains("wl-ax")&&(c="#FF5D64"),new Chart(o,{type:"line",data:{labels:s,datasets:[{data:d,borderColor:c,backgroundColor:"rgba(7, 103, 159, 0.1)",pointBackgroun
1dColor:c,pointBorderColor:c,pointRadius:4,pointHoverRadius:6,fill:!1}]},options:{responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!1},tooltip:{enabled:!0,displayColors:!1,callbacks:{title:function(e){return e[0].label},label:function(e){return e.parsed.y+" "+n}}}},scales:{x:{grid:{display:!0},title:{display:!1}},y:{beginAtZero:!0,grid:{display:!0},title:{display:!0,text:n}}}}}));return new ResizeObserver(e=>{u.resize()}).observe(e),[e,r]})(n,_h2info.yearly_field_units[n]),e.appendChild(a)),t?e.parentElement.parentElement.style.display="block":e.parentElement.parentElement.style.display=""}{let e=document.querySelector(".h2match-accordion-item");(_region.h2matching_show_all||m.is_own)&&m.matches&&0!=m.matches.length?(e.style.display="",c=m,t=[{title:gettext("Möglicher Partner"),name:"client",data:"client"},{title:gettext("Typ"),name:"order_type",data:"order_type"},{title:gettext("Kategorie"),name:"product_type",data:"product_type"},{title:gettext("Produkt"),name:"product",data:"product"},{title:gettext("Entfernung"),name:"distance",data:{_:"distance.plain_text",type:"distance.number",sort:"distance.number"}},{title:gettext("Letztes Update"),name:"updated_at",data:{_:"updated_at.plain_text",sort:"updated_at.iso_string"}}],c=c.matches.map(e=>({client:function(e){let t=document.createElement("div"),n=(t.style.display="flex",document.createElement("a")),a=(n.innerText=e.b.client||"-",new URL(window.location+""));if(a.searchParams.set("h2order",e.b.id),n.href=a+"",n.target="_blank",t.appendChild(n),e.b.client_is_verified){let e=new Image;e.src=_h2info.icon_base_path+"i_verified_company.svg",e.classList.add("verified_company"),e.width=20,e.title=gettext("Dieses Unternehmen hat sich bereits mit Partnern vernetzt."),t.appendChild(e)}return t}(e),order_type:"sell"==e.b.order_type?gettext("Biete"):gettext("Suche"),product_type:_h2info.trans.product_type[e.b.product_type],product:function(e,t){let n=document.createElement("div"),a=new Image,o=(a.className="h2match_product_icon",a.src=document.location.origin+_h2info.icon_base_path+e,a.width=20,n.appendChild(a),document.createElement("span"));return o.className="h2match_product_name",o.innerText=t,n.appendChild(o),n}(_h2info.products[e.b.product_super_type][e.b.product_type].icon_s||_h2info.products[e.b.product_super_type][e.b.product_type][e.b.product].icon_s,_h2info.trans.product[e.b.product]||"-"),distance:{plain_text:Math.ceil(e.distance/1e3)+" km",number:e.distance},updated_at:{plain_text:new Date(e.b.updated_at_date).toLocaleDateString(_language_code),iso_string:new Date(e.b.updated_at_date).toISOString()}})),$.fn.dataTable.isDataTable("#h2order-modal-matches-table")&&$("#h2order-modal-matches-table").DataTable().clear().destroy(),$("#h2order-modal-matches-table").DataTable({data:c,columns:t,layout:{topStart:null,topEnd:null}})):e.style.display="none"}document.getElementById("feedback_form").querySelector('input[name="order_id"]').value=m.id,$("#h2order-modal").foundation("open"),(0,f.request)({path:"../action/open_h2order_modal/"+_region.id,params:{order_id:m.id},method:"PUT"})}}let c=null;function y(){return l(this,void 0,void 0,function*(){null!==c&&void 0!==c&&c.abort(),c=new AbortController;var e=new URL(window.location.origin+window.location.pathname+"h2orders/");try{const t=yield fetch(e.href,{signal:c.signal});d((yield t.json()).orders)}catch(e){if("AbortError"===e.name)return;throw e}S()})}function u(){const t=$("#marketplace-table").DataTable();["order_type","company","product","product_type","product_super_type","status","is_own","is_match"].forEach(e=>{_h2filter.hasOwnProperty(e)&&_h2filter[e]?t.column(e+":name").search(_h2filter[e]):t.column(e+":name").search("")}),t.draw();{var e;let t=$("#"+"marketplace-table").DataTable().rows({search:"applied"}).data().toArray().map(e=>e.id);r(_h2orders.filter(e=>t.includes(e.id)))}}function v(e){null===e||e==_h2filter.order_type?_h2filter.order_type=null:_h2filter.order_type=e;let t=document.getElementById("h2filter_order_sell"),n=document.getElementById("h2filter_order_buy");n.classList.remove("h2_activated"),t.classList.remove("h2_activated"),2==_h2filter.order_type&&t.classList.add("h2_activated"),1==_h2filter.order_type&&n.classList.add("h2_activated"),S()}function b(e){_h2filter.product_super_type=e,_h2filter.product_type="",_h2filter.product="",C(),B(),S()}function x(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1];const n=document.getElementById("h2filter_company");
1n&&(n.value=e,_h2filter.company=e,S(),t&&(n.style.background="#FFFFE0",setTimeout(function(){n.style.transition="background-color 1s ease-out",n.style.backgroundColor="transparent"},3e3)))}function E(t){var n;for(n of["is_own","is_match"]){var a="h2filter_"+n;let e=document.getElementById(a);n==t?e.checked=!0:e.checked=!1,_h2filter[n]=!!e.checked}S()}function w(){["order_type","status","company","is_own","is_match"].forEach(e=>{delete _h2filter[e];try{document.getElementById("h2filter_"+e).value=""}catch(e){}try{document.getElementById("h2filter_"+e).checked=!1}catch(e){}}),b(document.getElementById("h2filter_pstype").value=""),v(null)}function k(e){_h2filter.view=e,_h2filter.view&&"table"==_h2filter.view?(document.getElementById("sidebar").classList.remove("h2_map_view"),document.getElementById("sidebar").classList.add("h2_table_view")):(document.getElementById("sidebar").classList.remove("h2_table_view"),document.getElementById("sidebar").classList.add("h2_map_view"));let t=document.getElementById("h2view_btn_map"),n=document.getElementById("h2view_btn_table"),a=(t.classList.remove("h2_activated"),n.classList.remove("h2_activated"),{map:t,table:n});a[_h2filter.view||"map"].classList.add("h2_activated")}function S(){var e=["order_type","product_super_type","product_type","product","status","company","is_own","is_match"].find(e=>_h2filter.hasOwnProperty(e)&&_h2filter[e]);document.getElementById("h2filter_reset").style.display=e?"flex":"",u()}function I(n,e){let t=[{value:"",name:gettext("Alle")}];e.forEach(e=>{t.push({value:e,name:_h2info.trans.product_type[e]})}),t.forEach(e=>{let t=document.createElement("option");t.value=e.value,t.innerText=e.name,n.appendChild(t)})}function C(){let e=document.getElementById("h2filter_ptype");if(e){e.innerHTML="";let t=[];if(_h2info.h2market.hide_product_super_type)Object.keys(_h2info.products).forEach(e=>t.push(e));else{if(!_h2filter.product_super_type)return void(e.parentElement.style.display="none");t.push(_h2filter.product_super_type)}var n=t.flatMap(e=>_h2info.products.hasOwnProperty(e)?Object.keys(_h2info.products[e]):[]);I(e,n),e.parentElement.style.display="block"}}function B(){let t=document.getElementById("h2filter_product");if(t){t.innerHTML="";let a=[];if(_h2filter.product_type){a.push(_h2filter.product_type);let e=[],n=(_h2filter.product_super_type?e.push(_h2filter.product_super_type):e=Object.keys(_h2info.products),[]);e.forEach(t=>{a.forEach(e=>{_h2info.products.hasOwnProperty(t)&&_h2info.products[t].hasOwnProperty(e)&&(n=n.concat(Object.keys(_h2info.products[t][e])))})}),0===n.length?t.parentElement.style.display="none":(I(t,n),t.parentElement.style.display="block")}else t.parentElement.style.display="none"}}},{"./features":8,"./map":12,"./utils":19}],14:[function(e,t,n){e=e("./utils");window.togglePWVisibility=e.togglePWVisibility},{"./utils":19}],15:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.calculateDetour=function t(e){var n;let a=null;if("dragend"==e.type){a=e.target._latlng;let t=e.target;if(null!=(n=t.properties)&&n.sidebarContentId){let e=document.querySelector(".id-"+t.properties.sidebarContentId);e?(0,b.remove_from_data_sidebar)(e):x(t)}else x(t)}else a=e.latlng;const o=L.marker(a,{icon:L.circleIcon({color:"#9729df",radius:18}),draggable:!1}).on("dragend",e=>t(e)).addTo(_map);let l=document.createElement("div");l.className="highway-routing-popup";let i=(0,v.addElem)("highway-routing-loading-text","",l,"p");(0,v.addElem)("progress-spinner highway-routing-spinner","",i,"div");(0,v.addElem)("",gettext("Autobahnanbindungen werden berechnet..."),i,"span");const r=(0,v.addElem)("highway-routing-stop-button",gettext("Abbrechen"),l,"button");o.bindPopup(l,{minWidth:250,autoClose:!1,closeOnClick:!1}).openPopup();const s=new AbortController;r.addEventListener("click",()=>{s.abort(),o.remove()});let d={lat:o._latlng.lat,lng:o._latlng.lng};var c=new FormData;for(var[u,m]of Object.entries(d))c.append(u,m);let p=document.getElementById("lisform").csrfmiddlewaretoken.value;c.append("csrfmiddlewaretoken",p);(0,v.fetchPost)("highway_detours/",c,6e4,s.signal).then(e=>{if(e.ok)return e.json();throw new Error("Network response was not ok")}).then(e=>{let n=[];for(var a of e.detours){let e=[].concat(...a.route_detour.trip.legs.map(e=>(0,v.decode_polyline)(e.shape,6))),i=L.featureGroup(),t=(L.polyline((0,v.decode_polyline)(a.route_direct.trip.legs[0].shape,6),{
1color:"#374D54",weight:3,dashArray:[10,5],lineCap:"butt"}).addTo(i),L.polyline(e,{color:"white",weight:7,opacity:.7}).addTo(i),L.polyline(e,{color:"#004B80",weight:5,opacity:.7}).addTo(i),L.marker(a.start_geom,{icon:L.circleIcon({color:"#50B316",radius:1e3*a.route_direct.trip.summary.length<30?24:16})}).addTo(i),L.marker(a.dest_geom,{icon:L.circleIcon({color:"#CD263A",radius:16})}).addTo(i),a.competition.map(e=>{const t=(0,v.addElem)("highway-detour-competition-popup","",null,"div");(0,v.addElem)("operator",e.operator,t,"div");let n=(0,v.addElem)("grid","",t,"div"),a,o=(a=(0,v.addElem)("row","",n,"div"),(0,v.addElem)("label",gettext("Umweg"),a,"div"),(0,v.addElem)("value",Math.ceil(10*e.detour_length)/10+" km ("+Math.ceil(e.detour_time/60)+" min)",a,"div"),a=(0,v.addElem)("row","",n,"div"),(0,v.addElem)("label",gettext("Lokaler Marktanteil"),a,"div"),(0,v.addElem)("value",e.lis_factor+"%",a,"div"),a=(0,v.addElem)("row","",n,"div"),(0,v.addElem)("label",gettext("Ladepunkte"),a,"div"),e.cps.sort((e,t)=>e.power-t.power).map(e=>e.count+" x "+e.power+" kW").join("<br>")),l=(0,v.addElem)("value",null,a,"div");return l.innerHTML=o,{power:e.power,point:L.marker(e.geom,{icon:L.circleIcon({color:"#E87E14"})}).bindPopup(t).addTo(i)}}));n.push({layers:i,route_direct:{time:a.route_direct.trip.summary.time,distance:a.route_direct.trip.summary.length},route_detour:{time:a.route_detour.trip.summary.time,distance:a.route_detour.trip.summary.length},highway_name:a.highway_name,exit_name:a.exit_name,lis_factor:a.lis_factor,competition:t})}o.properties={detours:n},o.closePopup(),o.unbindPopup(),g(o),o.dragging.enable()}).catch(e=>{if(!s.signal.aborted){let e=document.createElement("div"),t=(e.className="highway-routing-popup",document.createElement("p")),n=(t.className="highway-routing-error-text",t.textContent=gettext("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut oder melden Sie sich bei uns unter [email protected]."),e.appendChild(t),document.createElement("button"));n.className="highway-routing-stop-button",n.textContent=gettext("SchlieÃen"),n.addEventListener("click",()=>o.remove()),e.appendChild(n),o.getPopup().setContent(e)}})},n.displayTrafficEvalRoutes=function(){u&&(u.remove(),_ctrlLayer.removeLayer(u));u=L.featureGroup(),_ctrlLayer.addOverlay(u,"Routing"),_markers.forEach(t=>{if(t.properties.evaluation){var n,l=t.properties.evaluation.info.scenarios[150].traffic;console.log(t.properties.id,t.properties.name,l);let a,o;for([a,o]of Object.entries(l.evaluated||{}))if(o.info){var i,[r,s]=JSON.parse(a),d=o.info.reduce((e,t)=>e||t.valid,!1)?"green":"red";let e=L.marker([s,r],{icon:L.colorIcon(d)}).addTo(u),t=L.layerGroup(),n=[];for(i of o.info){n.push("<b>"+i.name+"</b>: "+i.dtv+" Fzg/d"),n.push(" "+Math.round(i.distance)+"m"),i.valid&&n.push(" Score: "+Math.round(i.score));for(var c of i.points||[])L.marker([c[1],c[0]]).addTo(t)}e.bindPopup(n.join("<br>")),L.geoJSON(o.route,{color:d,weight:5,opacity:.8}).addTo(t),e.on("popupopen",e=>t.addTo(u)),e.on("popupclose",e=>t.removeFrom(u))}l.isodist&&L.geoJSON(l.isodist).addTo(u),l.nearby_traffic&&L.geoJSON(l.nearby_traffic,{color:"#0008"}).addTo(u);for(n of l.evaluated_traffic||[]){let e=L.geoJSON(n.geom,{color:"orange",weight:5}).addTo(u);e.bindTooltip("<b>"+n.name+"</b><br>"+n.dtv+" Fzg/d",{sticky:!0})}if(l.route){t=(0,v.decode_polyline)(l.route.geom,6);l.road_geom&&(L.geoJSON(l.road_geom,{color:"white",weight:10,opacity:.7}).addTo(u),L.geoJSON(l.road_geom,{color:"red",weight:7,opacity:.7}).addTo(u)),L.polyline(t,{color:"white",weight:8,opacity:.7}).addTo(u);let e=L.polyline(t,{color:"#004B80",weight:5,opacity:.7}).addTo(u);e.bindPopup("Distanz: "+l.route.length+" km"),e.on("mouseover",e=>{null!=(e=e.target)&&e.openPopup()}),e.on("mouseout",e=>{null!=(e=e.target)&&e.closePopup()})}}}),u.addTo(_map)},n.startRouting=function(e){i(),_map.contextmenu.hideAllItems(),_route={points:[L.marker(e.latlng,{icon:L.circleIcon({color:"#50B316"}),draggable:!0}).addTo(_map)],ctxMenuItems:[_map.contextmenu.addItem({text:gettext("Route hierher"),iconCls:"ion ion-md-navigate",callback:o}),_map.contextmenu.addItem({text:gettext("Abbrechen"),iconCls:"ion ion-md-close",callback:i})]}};var v=e("./utils"),b=e("./dataSidebar");function a(){_route&&_route.ctxMenuItems.map(e=>{_map.contextmenu.removeItem(e)}),_map.contextmenu.showAllItems()}function o(e){a();var t,e=L.marker(e.latlng,{icon:L.circleIcon({color:"#CD263A"}),draggable:!0}).addTo(_map);_route.points.push(e);for(t of _route.points)t.on("dragend",e=>{l()});l()}function l(){if(_route&&2==_route.points.length){var t=_route.points[0];let e=_route.points[1];_route.polyline&&(_route.polyline.map(e=>e.remove()),_route.polyline=[]);var n,a,t={start_lat:t._latlng.lat,start_lng:t._latlng.lng,end_lat:e._latlng.lat,end_lng:e._latlng.lng},o=new FormData;for([n,a]of Object.entries(t))o.append(n,a);t=document.getElementById("lisform").csrfmiddlewaretoken.value;o.append("csrfmiddlewaretoken",t),(0,v.fetchPost)("route/",o,1e4).then(e=>{if(e.ok)return e.json();throw new Error("Network response was not ok")}).then(n=>{var a=(0,v.decode_polyline)(n.route.trip.legs[0].shape,6);_route.polyline=[L.polyline(a,{color:"white",weight:7,opacity:.7}).addTo(_map),L.polyline(a,{color:"#004B80",weight:5,opacity:.7}).addTo(_map)];let o=document.createElement("div");var a=Math.max(1,Math.round(n.route.trip.summary.time/60)),n=n.route.trip.summary.length,l=Math.max(1,Math.min(3,2-Math.log10(n)));{let e=document.createElement("i"),t=(e.className="icon icon--small ion-md-car",o.appendChild(e),document.createElement("span"));t.innerHTML=interpolate("<b>%s km</b> (%s min)",[(0,v.roundToStrLocal)(n,l,_language_code),a],!1),t.style.padding="0.2rem",o.appendChild(t)}_route.popup?_route.popup.setLatLng(e._latlng).setContent(o):_route.popup=L.popup({autoClose:!1,closeOnClick:!1}).setLatLng(e._latlng).setContent(o).on("remove",e=>i()).addTo(_map)}).catch(e=>{console.log(e)})}}function i(){_route&&(a(),_route.polyline&&_route.polyline.map(e=>e.remove()),_route.points&&_route.points.map(e=>e.remove()),_route.popup&&_route.popup.remove(),_route=null)}function x(e){var t=e.properties.detours;if(t)for(var n of t)n.layers.remove();e.remove(),e.properties.detours=null}function g(l){l.closePopup(),l.unbindPopup();var i=l.properties.detours;if(0==i.length){let e=document.createElement("div"),t=(e.className="highway-routing-popup highway-routing-no-results",document.createElement("p")),n=(t.textContent=gettext("Keine relevanten Autobahnabfahrten gefunden."),e.appendChild(t),document.createElement("p")),a=(n.textContent=gettext("Als relevant werden alle Autobahnabfahrten betrachtet, für welche die Fahrdistanz zu ihrem Zielpunkt und zurück auf die Autobahn kleiner als 10 km ist."),e.appendChild(n),!1);l.on("mousedown",()=>a=!0),l.on("mouseup",()=>a=!1),void l.bindPopup(e,{minWidth:250,closeOnClick:!1}).on("popupclose",()=>{a||l.remove()}).openPopup(l._latlng)}else{let e=document.createElement("div"),t=document.createElement("table"),n=document.createElement("thead");var r=document.createElement("tr"),s=((0,v.addElem)("",gettext("Ausfahrt"),r,"th"),(0,v.addElem)("",gettext("Umweg"),r,"th"),(0,v.addElem)("","",r,"th"));let a=(0,v.addElem)("icon icon--small ion-md-pie","",s,"i");a.style.borderBottom="none",a.title=gettext("Lokaler Marktanteil: Beschreibt die Qualität des Standortes im Vergleich zu bestehenden HPC Ladern. Berücksichtigt werden dazu die Distanzen der Umwege zu den verschiedenen Standorten."),a.setAttribute("data-tooltip",""),a.setAttribute("data-position","left"),a.setAttribute("data-alignment","center"),$(a).foundation(),n.appendChild(r),t.appendChild(n),t.appendChild(document.createElement("tbody")),e.appendChild(t);s=[{type:"text",content:e=>e.exit_name},{type:"text",content:e=>{return Math.round(10*(e.route_detour.distance-e.route_direct.distance))/10+" km ("+Math.ceil((e.route_detour.time-e.route_direct.time)/60)+" min)"}},{type:"html",content:e=>{let t=document.createElement("span");return t.textContent=e.lis_factor+"%",t}}];{var d=i;var c=s;r=e;const p=r.querySelector("tbody");if(p){const g={}
1,f=[],h=(d.forEach(e=>{g[e.highway_name]||(g[e.highway_name]=[],f.push(e.highway_name)),g[e.highway_name].push(e)}),c.length);f.forEach(e=>{const t=document.createElement("tr"),n=(t.className="highway-section-header",document.createElement("td"));n.colSpan=h,n.textContent=e,t.appendChild(n),p.appendChild(t),g[e].forEach(n=>{const a=document.createElement("tr");a.className="highway-detour-row",c.forEach(e=>{const t=document.createElement("td");e.className&&(t.className=e.className),"html"==e.type?t.appendChild(e.content(n)):"text"==e.type&&(t.textContent=e.content(n)),a.appendChild(t)}),a.addEventListener("click",()=>{for(var e of d)e.layers.remove();n.layers.addTo(_map),_map.fitBounds(n.layers.getBounds().pad(.2))}),p.appendChild(a)})})}}let o=document.createElement("div");o.className="highway-routing-sidebar";const u=l._latlng,m=[u.lng,u.lat];o.onpointerenter=()=>{(0,v.highlightLocation)(m,5e3)},o.onpointerleave=()=>{(0,v.removeLocationHighlight)(3e3)};{const _=(0,v.addElem)("header","",o,"div");i=(0,v.addElem)("title-icon-container","",_,"div");let e=(0,v.addElem)("","",i,"img");e.src=STATIC_URLS.highway;s=(0,v.addElem)("title-container","",i,"div");(0,v.addElem)("title",gettext("Autobahnanbindung"),s,"div");const y=(0,v.addElem)("close","",_,"div");(0,v.addElem)("icon icon--medium ion-md-close","",y,"i"),y.onclick=e=>{var t=document.querySelector(".id-"+l.properties.sidebarContentId);t&&(0,b.remove_from_data_sidebar)(t),e.stopPropagation()},_.onclick=()=>{_map.setView(L.latLng(u.lat,u.lng))}}o.appendChild(e);r=(0,b.add_to_data_sidebar)(o);l.properties.sidebarContentId=r,(0,b.on_remove_from_data_sidebar)(r,()=>x(l))}}let u=null},{"./dataSidebar":6,"./utils":19}],16:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.initScenarios=function(){let o=document.getElementById("scenarios");if(o&&_region.scenarios){o.innerHTML="";let a=o.insertRow(-1),t=a.insertCell(0);t.textContent=gettext("Scenario");for(let e=0;e<_region.scenarios.years.length;e++)(t=a.insertCell(-1)).textContent=_region.scenarios.years[e];for(let n=0;n<_region.scenarios.names.length;n++){var l=(a=o.insertRow(-1)).insertCell(0);let t=(0,i.addElem)("","",l,"INPUT");t.type="text",t.placeholder=gettext("Name"),t.value=_region.scenarios.names[n],t.onchange=e=>{s(!0)};for(let e=1;e<o.rows[0].cells.length;e++)l=a.insertCell(-1),(t=(0,i.addElem)("","",l,"INPUT")).type="text",t.value=_region.scenarios.data[n][e-1],t.onchange=e=>{s(!0)}}r(),s(!1)}},n.updateScenarioDropdown=r;var l=e("./map"),i=e("./utils");function r(){let n=document.getElementById("id_scenario");n&&(n.innerHTML="");for(let t=0;n&&t<_region.scenarios.names.length;t++){let e=(0,i.addElem)(null,_region.scenarios.names[t],n,"OPTION");e.value=_region.scenarios.names[t]}}function s(a){var o=document.getElementById("scenario-chart");if(o){var l=d();let e={legend:l.names,labels:l.years,series:l.data};l=e.series.reduce((e,t)=>Math.max(e,t.reduce((e,t)=>Math.max(e,t),0)),0);let t=document.getElementById("legend");t.innerHTML="",new Chartist.Line(o,e,{chartPadding:{left:40,right:40},low:0,high:l,fullWidth:!0,axisX:{labelOffset:{x:-15,y:0}},axisY:{labelOffset:{x:0,y:5}},plugins:[Chartist.plugins.legend({legendNames:e.legend,position:t}),Chartist.plugins.ctAxisTitle({axisY:{axisTitle:"E-Fahrzeuge",axisClass:"ct-axis-title",offset:{x:0,y:25},flipTitle:!0}})]});{let o=document.getElementById("scenarios");if(o&&o.rows[o.rows.length-1].firstChild.firstChild.value){let t=o.tBodies[0].insertRow(-1),n=t.insertCell(0),a=document.createElement("INPUT");a.type="text",a.placeholder=gettext("Name"),a.onchange=e=>{s(!0)},n.appendChild(a);for(let e=1;e<o.rows[0].cells.length;e++)n=t.insertCell(-1),(a=document.createElement("INPUT")).type="text",a.onchange=e=>{s(!0)},n.appendChild(a)}}let n=document.getElementById("scenario-dirty");n&&(n.checked=n.checked||a)}}function d(){var t=document.getElementById("scenarios");let a={years:[],names:[],data:[]};if(t){let n=t.rows[0].cells;for(let e=1;e<n.length;e++)a.years.push(n[e].textContent);for(let e=1;e<t.rows.length;e++)if((n=t.rows[e].cells)[0].firstChild.value){a.data.push([]),a.names.push(n[0].firstChild.value);for(let t=1;t<n.length;t++){let e=n[t].firstChild.value;e=e.replace(",",".");var o=parseFloat(e),o=Math.max(o,0);a.data[a.data.length-1].push(o)}}}return a}$("#scenario-modal").on("open.zf.reveal",e=>{s(!1)}),$("#scenario-modal").on("closed.zf.reveal",function(){let n=document.getElementById("scenario-form"),e=document.getElementById("scenarios"),a=document.getElementById("scenario-dirty");if(n&&e&&a&&a.checked){let t=d();var o=t.names.length===new Set(t.names).size;if(o)if(t.data.reduce((e,t)=>
1e||t.reduce((e,t)=>e||Number.isNaN(t),!1),!1)&&!confirm(gettext("Mindestens ein Szenario enthält lückenhafte Daten. Trotzdem fortfahren?")))setTimeout(e=>{$("#scenario-modal").foundation("open")},100);else{a.checked=!1;let e=new FormData;e.append("scenarios",JSON.stringify(t)),e.append("csrfmiddlewaretoken",n.csrfmiddlewaretoken.value),(0,i.fetchPost)("scenario/",e,3e4).then(e=>e.json()).then(e=>{console.log(e),_region.scenarios=e,r()}).catch(e=>{l.DEBUG&&console.log(e),alert(gettext("Es gab einen Fehler beim Aktualisieren der Szenarien. bitte überprüfen Sie Ihre Eingaben.")),$("#scenario-modal").foundation("open")})}else alert(gettext("Szenarios brauchen einen eindeutigen Namen.")),setTimeout(e=>{$("#scenario-modal").foundation("open")},100)}})},{"./map":12,"./utils":19}],17:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.openSiteClassificationModal=function(){if(null===b){b={rules:[]};const e=document.getElementById("site-classification-add-rule"),t=(e&&e.addEventListener("click",k),document.getElementById("site-classification-confirm-save")),n=(t&&t.addEventListener("click",L),document.getElementById("site-classification-ruleset-select")),a=(n&&n.addEventListener("change",g),document.getElementById("site-classification-confirm-delete")),o=(a&&a.addEventListener("click",w),document.getElementById("site-classification-ruleset-menu-btn")),l=(o&&o.addEventListener("click",e=>{e.stopPropagation(),m()}),document.getElementById("site-classification-ruleset-menu")),i=(l&&l.addEventListener("click",()=>m(!0)),document.addEventListener("click",()=>m(!0)),document.getElementById("site-classification-menu-rename")),r=(i&&i.addEventListener("click",()=>{var e=v.find(e=>e.id===f);d="rename",E(e?e.name:h||x())}),document.getElementById("site-classification-confirm-rename")),s=(r&&r.addEventListener("click",p),document.getElementById("site-classification-menu-duplicate"));s&&s.addEventListener("click",()=>{var e;c()&&(e=v.find(e=>e.id===f),d="duplicate",E(e?interpolate(gettext("%(name)s (Kopie)"),{name:e.name},!0):""),$("#site-classification-rename-modal").foundation("open"))})}u().then(()=>{N(),$("#site-classification-modal").foundation("open")})};var l=e("./utils");let f=null,h=null,d="rename",_=null,y=!1,v=[],b=null,O=!1,M=null;function A(){O=!0,s()}function c(){return!O||confirm(gettext("Nicht gespeicherte Ãnderungen verwerfen?"))}function u(){return null!==M?Promise.resolve():(0,l.request)({path:"site_classification"}).then(e=>{M=e.catalog,b={rules:(e.config||{}).rules||[]},f=e.id||null,_=e.id||null,y=null===f,O=!1,i(e.rulesets||[])}).catch(e=>{console.error("Could not fetch site classification",e)})}function i(e){v=e;const t=document.getElementById("site-classification-ruleset-select");if(t){for(;2<t.options.length;)t.remove(2);for(const a of e){const o=document.createElement("option");o.value=String(a.id),o.text=(n=a).name+" ("+interpolate(ngettext("%(n)s Projekt","%(n)s Projekte",n.n_projects),{n:n.n_projects},!0)+")",t.appendChild(o)}var n;r(t)}}function r(e){null!==f?e.value=String(f):e.value=y?"none":""}function m(e){const t=document.getElementById("site-classification-ruleset-menu");t&&(t.hidden=e||!t.hidden)}function s(){const e=document.getElementById("site-classification-active-badge"),t=document.getElementById("site-classification-ruleset-select");e&&(e.hidden=y?null!==_:null===f||f!==_,t&&(t.style.paddingRight=e.hidden?"":"6.5rem"));for(const u of["site-classification-menu-duplicate","site-classification-ruleset-delete"]){const m=document.getElementById(u);m&&(m.disabled=null===f)}const n=document.getElementById("site-classification-save"),a=(n&&(y?(n.disabled=null===_,n.title=""):b.rules.length?!function(){for(const t of b.rules)for(const n of t.metrics){var e=M.parameters[n.parameter];if(!e)return;if("presence"!==e.value_type&&(null===n.value||""===n.value))return}return 1}()?(n.disabled=!0,n.title=gettext("Alle Kriterien brauchen einen Wert")):(n.disabled=!1,n.title=""):(n.disabled=!0,n.title=gettext("Mindestens eine Regel anlegen"))),document.getElementById("site-classification-confirm-title")),o=(a&&(a.textContent=y?gettext("Automatische Kategorisierung deaktivieren"):gettext("Regelset speichern und aktivieren")),document.getElementById("site-classification-confirm-save-text")),l=(o&&(o.hidden=y),document.getElementById("site-classification-confirm-none-text")),i=(l&&(l.hidden=!y),document.getElementById("site-classification-confirm-infobox")),r=(i&&(i.hidden=y),document.querySelector(".site-classification-modal__btns"));if(r){const p=r.querySelector(".sc-ruleset-meta__hint");p&&p.remove()}var s=y?null!==_:null===f||f!==_;const d=[];if(O&&d.push(gettext("Ungespeicherte Ãnderungen.")),s&&d.push(y?gettext("Speichern deaktiviert die automatische Kategorisierung in diesem Projekt."):gettext("Speichern aktiviert das Regelset in diesem Projekt.")),d.length&&r){const g=document.createElement("span");g.className="sc-ruleset-meta__hint",g.textContent=d.join(" "),r.appendChild(g)}const c=document.getElementById("site-classification-ruleset-meta");
1if(c){c.textContent="";s=v.find(e=>e.id===f);if(s){let e=interpolate(ngettext("in %(n)s Projekt verwendet","in %(n)s Projekten verwendet",s.n_projects),{n:s.n_projects},!0);s.updated_by?e+=" · "+interpolate(gettext("zuletzt geändert von %(user)s, %(date)s"),{user:s.updated_by,date:s.updated_at},!0):s.updated_at&&(e+=" · "+interpolate(gettext("zuletzt geändert am %(date)s"),{date:s.updated_at},!0)),c.appendChild(document.createTextNode(e))}else y?c.appendChild(document.createTextNode(null===_?gettext("Es wird kein Regelset angewendet, die Standorte werden nicht klassifiziert."):gettext("Kein Regelset ausgewählt."))):h?c.appendChild(document.createTextNode(interpolate(gettext("â%(name)sâ wird beim Speichern angelegt."),{name:h},!0))):c.appendChild(document.createTextNode(gettext("Neues Regelset, noch nicht gespeichert.")))}}function p(){const e=document.getElementById("site-classification-rename-input");if(e&&e.value.trim()){const n=e.value.trim();if("duplicate"===d){var t=n;if(null!==f){const a=new FormData;a.append("csrfmiddlewaretoken",document.getElementById("lisform").csrfmiddlewaretoken.value),a.append("id",String(f)),a.append("name",t),(0,l.fetchPost)("site_classification/ruleset/duplicate/",a).then(e=>e.json()).then(e=>{if("error"in e)throw new Error(e.error);v.push({id:e.id,name:e.name,n_projects:0,updated_by:"",updated_at:""}),f=e.id,i(v),$("#site-classification-rename-modal").foundation("close"),g()}).catch(e=>{console.error("Could not duplicate ruleset",e)})}}else if(null===f)h=n,s(),$("#site-classification-rename-modal").foundation("close");else{const o=new FormData;o.append("csrfmiddlewaretoken",document.getElementById("lisform").csrfmiddlewaretoken.value),o.append("id",String(f)),o.append("name",n),(0,l.fetchPost)("site_classification/ruleset/rename/",o).then(e=>e.json()).then(e=>{if("error"in e)throw new Error(e.error);const t=v.find(e=>e.id===f);t&&(t.name=n),i(v),s(),$("#site-classification-rename-modal").foundation("close")}).catch(e=>{console.error("Could not rename ruleset",e)})}}}function g(){const t=document.getElementById("site-classification-ruleset-select");if(t)if(c())if(t.value)"none"===t.value?(y=!0,f=null,h=null,b={rules:[]},O=!1,N()):(0,l.request)({path:"site_classification/ruleset",params:{id:t.value}}).then(e=>{f=Number(t.value),y=!1,h=null,b={rules:(e.config||{}).rules||[]},O=!1,N()}).catch(e=>{console.error("Could not fetch ruleset",e)});else{f=null,y=!1,h=null,b={rules:[]},O=!1;const e=document.getElementById("site-classification-ruleset-select");e&&(e.value=""),N(),d="rename",E(x()),$("#site-classification-rename-modal").foundation("open")}else r(t)}function x(){return interpolate(gettext("Regelset #%(num)s"),{num:v.length+1},!0)}function E(e){const t=document.getElementById("site-classification-rename-input"),n=(t&&(t.value=e),document.querySelector(".site-classification-rename-note"));n&&(n.hidden="rename"!==d||!n.textContent)}function w(){if($("#site-classification-delete-modal").foundation("close"),null!==f){const e=new FormData;e.append("csrfmiddlewaretoken",document.getElementById("lisform").csrfmiddlewaretoken.value),e.append("id",String(f)),(0,l.fetchPost)("site_classification/ruleset/delete/",e).then(e=>e.json()).then(e=>{if("error"in e)throw new Error(e.error);M=null,u().then(N)}).catch(e=>{console.error("Could not delete ruleset",e)})}}function L(){if(y){const e=new FormData;e.append("csrfmiddlewaretoken",document.getElementById("lisform").csrfmiddlewaretoken.value),(0,l.fetchPost)("site_classification/deactivate/",e).then(e=>e.json()).then(e=>{if("error"in e)throw new Error(e.error);_=null,$("#site-classification-confirm-modal").foundation("close"),M=null,u().then(N)}).catch(e=>{console.error("Could not deactivate site classification",e)})}else{const t=new FormData;t.append("csrfmiddlewaretoken",document.getElementById("lisform").csrfmiddlewaretoken.value),t.append("config",JSON.stringify(b)),null!==f&&t.append("id",String(f)),null===f&&h&&t.append("name",h),(0,l.fetchPost)("site_classification/save/",t).then(e=>e.json()).then(e=>{if("error"in e)throw new Error(e.error);e.id&&(f=e.id,_=e.id),h=null,$("#site-classification-confirm-modal").foundation("close"),M=null,u().then(N)}).catch(e=>{console.error("Could not save site classification",e)})}}function k(){var e={name:"",category:M.categories[0].key,metrics:[]};b.rules.push(e),I(e)}
1function S(e,t){t=e+t;t<0||t>=b.rules.length||(e=b.rules.splice(e,1)[0],b.rules.splice(t,0,e),O=!0,N())}function I(e){e.metrics.push({parameter:null,operator:null,value:null,radius_m:null}),O=!0,N()}function D(e,t){e.metrics.splice(t,1),O=!0,N()}function F(e,t){const n=M.parameters[t];if(n){const a=n.radii||[];e.parameter=t,n.operators.indexOf(e.operator)<0&&(e.operator=n.operators[0]),a.indexOf(e.radius_m)<0&&(e.radius_m=a.length?a[0]:null)}else e.parameter=null,e.operator=null,e.radius_m=null;e.value=null}function N(){const t=document.getElementById("site-classification-rules");var n=document.getElementById("site-classification-rule-template");if(t&&n){t.innerHTML="";const e=document.getElementById("site-classification-add-rule");if(e&&(e.disabled=null===M||y),null!==M)for(let e=0;e<b.rules.length;e++)t.appendChild(function(t,n,e){const a=document.importNode(e.content,!0),o=a.querySelector(".sc-rule__category"),l=a.querySelector(".sc-rule__category-badge");for(const m of M.categories){const p=document.createElement("option");p.value=m.key,p.text=m.label,o.appendChild(p)}o.value=t.category,C(l,t.category),o.addEventListener("change",()=>{t.category=o.value,C(l,t.category),A()});const i=a.querySelector(".sc-rule__name"),r=(i.value=t.name||"",i.addEventListener("input",()=>{t.name=i.value,A()}),a.querySelector(".sc-rule__move--up"));r&&(r.disabled=0===n,r.addEventListener("click",()=>{S(n,-1)}));const s=a.querySelector(".sc-rule__move--down");s&&(s.disabled=n===b.rules.length-1,s.addEventListener("click",()=>{S(n,1)}));a.querySelector(".sc-rule__delete").addEventListener("click",()=>{var e;e=n,b.rules.splice(e,1),O=!0,N()});const d=a.querySelector(".sc-rule__add-metric"),c=(d.addEventListener("click",()=>{I(t)}),a.querySelector(".sc-rule__metrics")),u=document.getElementById("site-classification-metric-template");for(let e=0;e<t.metrics.length;e++)c.appendChild(function(e,t,n){const a=document.importNode(n.content,!0),o=e.metrics[t],l=M.parameters[o.parameter],i=a.querySelector(".sc-metric__parameter"),r=document.createElement("option"),s=(r.value="",r.text=gettext("â Merkmal auswählen â"),i.appendChild(r),{}),d=Object.keys(M.parameters).sort((e,t)=>{const n=M.parameters[e];e=M.parameters[t];return n.group.localeCompare(e.group)||n.label.localeCompare(e.label)});for(const p of d){var c=M.parameters[p];let e=s[c.group];e||((e=document.createElement("optgroup")).label=c.group,i.appendChild(e),s[c.group]=e);const g=document.createElement("option");g.value=p,g.text=c.label,e.appendChild(g)}if(i.value=o.parameter||"",i.addEventListener("change",()=>{F(o,i.value);O=true;N()}),a.querySelector(".sc-metric__delete").addEventListener("click",()=>{D(e,t)}),l){var u="presence"===l.value_type||"choice"===l.value_type&&0<(l.radii||[]).length,m={eq:gettext("existiert"),neq:gettext("existiert nicht")};const f=a.querySelector(".sc-metric__operator");for(const v of l.operators){const b=document.createElement("option");b.value=v,b.text=u&&m[v]?m[v]:M.operators[v].symbol,f.appendChild(b)}f.value=o.operator,f.addEventListener("change",()=>{o.operator=f.value,A()});const h=a.querySelector(".sc-metric__value");let e=h,t=l.choices||[];if("use_case"===o.parameter){const x={residential:gettext("Wohngebiet"),retail:gettext("Einzelhandel"),en_route:gettext("En-Route"),toll_motorway:gettext("Mautautobahn"),public:gettext("Ãffentlich"),leisure:gettext("Freizeit/Tourismus")};t=t.map(e=>({key:e,label:x[e]||e}))}if(t.length&&"object"==typeof t[0]){const E=document.createElement("select");E.className=h.className,E.appendChild(document.createElement("option"));for(const w of t){const L=document.createElement("option");L.value=w.key,L.text=w.label,E.appendChild(L)}E.value=null===o.value?"":String(o.value),E.addEventListener("change",()=>{o.value=""===E.value?null:E.value,A()}),h.replaceWith(E),e=E}else"choice"===l.value_type?(h.type="text",h.value=null===o.value?"":String(o.value),h.setAttribute("list",function(e,t){if(e="sc-metric-choices-"+e,!document.getElementById(e)){const n=document.createElement("datalist");n.id=e;for(const a of t){const o=document.createElement("option");o.value=a,n.appendChild(o)}document.body.appendChild(n)}return e}(o.parameter,t)),h.addEventListener("input",()=>{o.value=""===h.value?null:h.value,A()})):"presence"===l.value_type?h.style.display="none":(h.type="number",h.min="0",h.step=String(l.step||1),h.value=null===o.value?"":String(o.value),h.addEventListener("input",()=>
1{""!==h.value&&Number(h.value)<0&&(h.value="0"),o.value=""===h.value?null:Number(h.value),A()}));u&&"choice"===l.value_type&&f&&e.after(f);const _=a.querySelector(".sc-metric__unit");_.textContent=l.unit||"",l.unit||(_.style.display="none");n=l.radii||[];const y=a.querySelector(".sc-metric__radius");if(n.length){const k=y.querySelector(".sc-metric__radius-select");for(const S of n){const I=document.createElement("option");I.value=String(S),I.text=String(S),k.appendChild(I)}k.value=String(o.radius_m),k.addEventListener("change",()=>{o.radius_m=Number(k.value),A()})}else y.style.display="none"}else{for(const B of[".sc-metric__operator",".sc-metric__radius-select"]){const T=a.querySelector(B),P=document.createElement("option");P.text="-",T.appendChild(P),T.disabled=!0}const C=a.querySelector(".sc-metric__value");C.value="",C.disabled=!0,a.querySelector(".sc-metric__unit").style.display="none"}return a}(t,e,u));return a}(b.rules[e],e,n));const a=document.getElementById("site-classification-empty");a&&(a.style.display=b.rules.length||y?"none":"");{let e=0;for(const i of v)i.id===f&&(e=i.n_projects);const o=1<e?interpolate(gettext("Es wird aktuell in %(n)s Projekten verwendet."),{n:e},!0):"",l=(document.querySelectorAll(".site-classification-shared-hint").forEach(e=>{e.textContent=o}),document.querySelector(".site-classification-rename-note"));l&&(l.textContent=1<e?interpolate(gettext("Wirkt sich auf %(n)s Projekte aus, die dieses Regelset verwenden."),{n:e},!0):"")}s()}}function C(e,t){e.className="sc-rule__category-badge abc-"+(t||"none")}},{"./utils":19}],18:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.filter_markers=I,n.renderSiteManagerTable=function t(n){var e;if(!_permissions.siteManager)return;const o=S();let l=k();let a=!1;let i=null;if($.fn.dataTable.isDataTable("#site-manager-table")){i=$("#site-manager-table").DataTable(),n=n||i.page(),i.clear();const p=(null==(e=i.state().select)?void 0:e.rows)||[],g=(i.rows.add(l.rows),i.rows((e,t,n)=>p.includes("#"+t.lis_id)).select(),[]);i.searchPanes.container().find(".dtsp-searchPane").each((e,t)=>{i.searchPanes.rebuildPane(e,!0);const n=t.querySelector(".dt-container");n&&!n.classList.contains("dtsp-hidden")&&g.push(t),a=!0}),g.forEach(e=>e.querySelector(".dtsp-collapseButton").click())}else{{let e=null===o||void 0===o?void 0:o.querySelector("#evalYear");e&&e.addEventListener("change",e=>{if(i){let e=i.page();t(e)}})}let a=[{data:e=>"",name:"checkbox"},{data:"index",render:$.fn.dataTable.render.number(""),name:"index"},{data:{_:"abc.plain_text",display:"abc.display",filter:"abc.plain_text",sort:"abc.sort"},name:"abc",className:"col-abc",searchPanes:{header:gettext("Kategorie"),orthogonal:"filter"}},{data:{_:"name.plain_text",display:"name.display",type:"name.plain_text",sort:"name.plain_text"},name:"name"},{data:{_:"status.plain_text",display:"status.display",filter:"status.plain_text",sort:"status.id",type:"status.id"},name:"status",defaultContent:"-"},{data:{_:"cp.plain_text",display:"cp.display"},name:"cp",defaultContent:"-"},{data:{_:"power.plain_text",display:"power.display",sort:"power.num",type:"power.num"},name:"power",defaultContent:"-"},{data:"files.display",sort:"files.count",name:"files",defaultContent:"-"}];if((_region.allow_truck_eval||_region.allow_fleet_locations)&&a.splice(2,0,{data:{_:"vehicle_type.display",sort:"vehicle_type.num"},name:"vehicle_type"}),0<_permissions.evaluateCustomLis){let e=[],t=null===_lis_evaluation_constants||void 0===_lis_evaluation_constants?void 0:_lis_evaluation_constants.types;if(t)for(var r of t)e.push({data:{_:"eval_"+r.name+".display",sort:"eval_"+r.name+".num",type:"eval_"+r.name+".num"},defaultContent:"-",name:r.name});if(a.push(...e),_region.allow_eval_2_0){for(var s of["ac","dc","hpc"])a.push({data:{_:"eval_v2_"+s+".display",sort:"eval_v2_"+s+".num",type:"eval_v2_"+s+".num"},defaultContent:"-",name:"eval_v2_"+s});for(var d of["ac","dc","hpc"])a.push({data:{_:"eval_v2_util_"+d+".display",sort:"eval_v2_util_"+d+".num",type:"eval_v2_util_"+d+".num"},defaultContent:"-",name:"eval_v2_util_"+d});a.push({data:{_:"eval_v2_tier.display",sort:"eval_v2_tier.num",type:"eval_v2_tier.num"},defaultContent:"-",name:"eval_v2_tier"})}}function c(n){return a.map((e,t)=>n.includes(e.name)?t:-1).filter(e=>-1!=e)}_region.allow_truck_eval&&(a.push({data:{_:"truck_eval_ncs_2035.display",type:"truck_eval_ncs_2035.num",sort:"truck_eval_ncs_2035.num"},name:"truck_eval_ncs_2035",defaultContent:"-"}),a.push({data:{_:"truck_eval_mcs_2035.display",type:"truck_eval_mcs_2035.num",sort:"truck_eval_mcs_2035.num"},name:"truck_eval_mcs_2035",defaultContent:"-"})),(0<_permissions.evaluateCustomLis||_region.allow_truck_eval)&&a.push({data:{_:"eval_date.display",sort:"eval_date.num",type:"eval_date.num"},defaultContent:"-",name:"eval_date"}),_pro_packages.utilization&&(a.push({data:{_:"utilization_ac.display",type:"utilization_ac.num",sort:"utilization_ac.num"},name:"utilization_ac",defaultContent:"-",orderSequence:["desc","asc"]}),a.push({data:{_:"utilization_dc.display",type:"utilization_dc.num",sort:"utilization_dc.num"},name:"utilization_dc",defaultContent:"-",orderSequence:["desc","asc"]}),a.push({data:{_:"utilization_hpc.display",type:"utilization_hpc.num",sort:"utilization_hpc.num"},name:"utilization_hpc",defaultContent:"-",orderSequence:["desc","asc"]})),a.push({data:"responsible_user.plain_text",defaultContent:"-",name:"responsible_user"},{data:"cooperation_partner.plain_text",defaultContent:"-",name:"cooperation_partner"},{data:"landlord.plain_text",defaultContent:"-",name:"landlord"},{data:"anchor_tenant.plain_text",defaultContent:"-",name:"anchor_tenant"});const f=c(["status","cp","responsible_user","cooperation_partner","landlord","anchor_tenant","abc"]);let e=c(["files","responsible_user","cooperation_partner","landlord","anchor_tenant","eval_date",..._region.allow_eval_2_0?["11","50","150"]:[]]);const h=c(["index","vehicle_type","abc","status","cp","power","files","responsible_user","11","50","150","truck_eval_ncs_2035","truck_eval_mcs_2035","eval_date","eval_v2_ac","eval_v2_dc","eval_v2_hpc","eval_v2_util_ac","eval_v2_util_dc","eval_v2_util_hpc","eval_v2_tier","cooperation_partner","landlord","anchor_tenant","utilization_ac","utilization_dc","utilization_hpc"]),_=2,y=((i=$("#site-manager-table").DataTable(Object.assign(Object.assign({data:l.rows,stateSave:!0===_region.restore_table_state,stateLoadParams:(e,t)=>{t.select={cells:[],columns:[],rows:[]}},stateLoadCallback:e=>{e=JSON.parse(localStorage.getItem("DataTables_"+e.sInstance+"_"+window.location.pathname));return e&&2==e.version?e:null},stateSaveParams:(e,t)=>{t.version=2},rowId:"lis_id",columnDefs:[{targets:"checkbox:name",orderable:!1,
1className:"select-checkbox"},{targets:"name:name",width:"40%"},{targets:["vehicle_type:name"],className:"dt-icon"},{targets:["vehicle_type:name","index:name","checkbox:name"],width:"0px"},{targets:e,visible:!1},{searchPanes:{show:!0},targets:f}],order:[[1,"asc"]],columns:a,select:{style:"multi+shift",selector:"td:first-child",className:"custom-selected",language:{}},lengthMenu:[[10,25,50,100,500,-1],[10,25,50,100,500,gettext("alle")]],language:{search:gettext("Suche"),zeroRecords:gettext("Keine passenden Suchergebnisse gefunden"),emptyTable:gettext('<b>Keine Ladestandorte vorhanden.</b><br><br>Erstellen Sie einen Ladestandort mit einem Rechtsklick auf der <a href="#" onclick="document.querySelector(\'#site-manager .sidebar-close\').click()">Karte</a> und wählen Sie im Menü <b>"Platziere Ladestandort"</b>:<br><br>')+STATIC_URLS.createLisHint,info:gettext("Zeilen _START_ - _END_ von _TOTAL_"),infoEmpty:"",infoFiltered:gettext("(aus _MAX_ Zeilen insgesamt)"),lengthMenu:gettext("Zeige _MENU_ Zeilen"),select:{cells:{_:"",0:"",1:""},rows:{_:"",0:"",1:""}},paginate:{first:gettext("Erste"),last:gettext("Letzte")},searchPanes:{clearMessage:gettext("Alle zurücksetzen"),collapseMessage:gettext("Alle einklappen"),showMessage:gettext("Alle ausklappen"),title:{_:gettext("Filter aktiv - %d"),0:gettext("Keine Filter aktiv")}}}},_region.allow_fleet_locations&&{createdRow:function(e,t){if(null===t.lis_id){const n=e.querySelector("td.select-checkbox");e.classList.add("fleet-location-row"),null!==n&&void 0!==n&&n.classList.add("hide-checkbox")}}}),{layout:{bottomStart:null,bottomEnd:null,top3Start:[{search:{placeholder:gettext("Textsuche über alle Spalten")}},{buttons:[{extend:"colvis",text:'<img src="'+STATIC_URLS.colvisIcon+'"><span>'+gettext("Spalten")+"</span>",columns:h,className:"sitemanager-colvis-button hide-on-contracted-sitemanager",columnText:function(e,t,n){e=$(e.column(t).header()),t=e.data("parent");return n=t?t+" - "+n:n}},{name:"searchPanesButton",text:'<i class="icon icon--small ion-ios-funnel"></i><span>Filter</span>',className:"site-manager-search-panes-toggle",action:function(e,t){t.searchPanes.container()[0].classList.toggle("expanded")&&t.searchPanes.resizePanes()}}]},o],top3End:{buttons:[{text:'<i class="icon ion-md-add-circle-outline"></i>'+gettext("Importieren"),className:"export-lis-button hide-on-contracted-sitemanager",action:function(){window.location.href="/"+_language_code+"/LISMap/project/"+_region.id+"/import_lis/"}}]},top2:{searchPanes:{orderable:!1,initCollapsed:!0,layout:"columns-3",columns:f}},topStart:[{buttons:{dom:{split:{dropdown:{className:"button eval-split-toggle",dropHtml:'<i class="icon icon--small ion-ios-arrow-down"></i>'}}},buttons:[..._permissions.debugInfoAccess?[{text:'<i class="icon icon--small ion-md-fingerprint-btn"></i><span class="lis-fingerprint-btn-text">'+gettext("Standortprofile berechnen")+"</span>",className:"button btn btn--color",action:function(){(0,x.handleFingerprintCalculationSubmit)(!1)},init:function(e,t){$(t).attr("id","calculate-lis-fingerprint-button"),"true"!==localStorage.getItem("locationFingerprintUIVisible")&&$(t).css("display","none")}}]:[],{text:'<i class="icon icon--small ion-md-stats"></i><span class="eval-btn-text">'+gettext("Bewertung starten")+'</span><span class="eval-btn-text-short">'+gettext("Bewerten")+"</span>",className:"btn btn--color",attr:{id:"start-eval-btn"},action:function(){(0,x.handleEvaluationSubmit)()},init:function(e,t){$(t).attr("id","eval-split-button"),_region.lis_evaluation.running&&$(t).find("#start-eval-btn").addClass("disabled").attr("title",gettext("Es wird bereits eine Bewertung durchgeführt."))},split:[..._region.allow_site_classification?[{text:B("icon--categorization",gettext("Standortkategorien")),className:"eval-menu-item",action:function(){(0,L.openSiteClassificationModal)(),(0,D.request)({path:"../action/open_site_classification/"+_region.id,method:"PUT"})},init:function(e,t){$(t).attr("id","site-classification-btn"),$(t).attr("title",gettext("Regeln für die automatische Kategorisierung der Standorte festlegen"))}}]:[],{text:B("ion-md-settings",gettext("Einstellungen der Bewertung")),className:"eval-menu
1-item",enabled:!_region.lis_evaluation.running,action:function(){$("#evaluation-settings-modal").foundation("open")},init:function(e,t){$(t).attr("id","eval-settings-btn")}},{extend:"spacer",style:"bar"},{name:"lis-reset-eval",text:B("ion-md-refresh",gettext("Bewertung zurücksetzen")),className:"eval-menu-item eval-menu-item--danger",action:function(){(0,x.openResetEvaluationModal)()},init:function(e,t){$(t).attr("id","lis-reset-eval-button")}}]}]}},function(){const e=(0,D.addElem)("site-manager-toolbar-divider hide-on-contracted-sitemanager hide-without-selection",null,null,"div");return e.id="lis-selection-divider",e},function(){const e=(0,D.addElem)("hide-on-contracted-sitemanager hide-without-selection",null,null,"div");return e.id="lis-selection-count",e},{buttons:[{name:"lis-multi-edit",text:'<i class="icon ion-md-create"></i>'+gettext("Bearbeiten"),className:"export-lis-button hide-on-contracted-sitemanager hide-without-selection",enabled:!1,action:function(){(0,F.updateLisMultiModal)()},init:function(e,t){$(t).attr("id","lis-multi-edit-button"),$(t).attr("title",gettext("Im Site Manager ausgewählte Standorte bearbeiten"))}},..._permissions.debugInfoAccess?[{text:gettext("Standortprofile zurücksetzen"),className:"export-lis-button hide-on-contracted-sitemanager",action:function(){(0,x.handleFingerprintCalculationSubmit)(!0)},init:function(e,t){$(t).attr("id","lis-reset-fingerprint-button"),$(t).attr("title",gettext("Standortprofile der im Site Manager ausgewählten Standorte zurücksetzen. Ohne Auswahl werden alle Standortprofile des Projekts zurückgesetzt.")),"true"!==localStorage.getItem("locationFingerprintUIVisible")&&$(t).css("display","none")}}]:[],{name:"lis-multi-delete",text:'<i class="icon ion-md-trash"></i>'+gettext("Löschen"),className:"export-lis-button hide-on-contracted-sitemanager hide-without-selection",enabled:!1,action:function(){(0,x.handleMultiLisDelete)()},init:function(e,t){$(t).attr("id","lis-multi-delete-button"),$(t).attr("title",gettext("Im Site Manager ausgewählte Standorte löschen"))}}]}],topEnd:[function(){let e=(0,D.addElem)("circle-progress-wrap",null,null,"div"),t=(e.title=gettext("Datei wird erzeugt..."),(0,D.addElem)(null,null,e,"canvas"));return t.id="progress-canvas-export",t.width=50,t.height=50,(0,D.addElem)("progress-spinner",null,e,"div"),e},{buttons:[{text:'<i class="icon icon--small ion-md-download"></i><span>'+gettext("Export")+"</span>",className:"button btn btn--color",action:function(e){var t;const n=null==(t=document.getElementById("lis-export-type-selection"))?void 0:t.value;if("excel"==n)(0,x.handleExportLISExcel)(e);else if("json"==n){const a=$("#site-manager-table").DataTable(),o=a.rows({selected:!0}).data(),l=0<o.length?$.map(o,e=>e.lis_id):null;(0,E.exportLISasJSON)(l)}else"json (fingerprint)"==n?(0,x.handleExportLISFingerprintsJson)():console.log("Unknown export type")},init:function(e,t){$(t).attr("id","lis-export-excel-button")}}]},function(){const e=document.createElement("select"),t=(e.id="lis-export-type-selection",new Option("Excel","excel",!0,!0)),n=new Option("JSON","json");if(e.add(t),e.add(n),_permissions.debugInfoAccess&&"true"===localStorage.getItem("locationFingerprintUIVisible")){const a=new Option("JSON (Standortprofile)","json (fingerprint)");e.add(a)}return e}],bottom:["info","pageLength","paging"]}}))).on("select",C),i.on("deselect",C),i.on("select",I),i.on("deselect",I),i.on("search.dt",e=>T(i)),i.header().get(0).querySelector("th.select-checkbox")),v=(y&&y.addEventListener("click",e=>{y.classList.toggle("custom-selected-all")?i.rows({page:"current"}).select():i.rows().deselect()}),document.getElementById("tab-site-manager"));v&&v.addEventListener("click",e=>{i.searchPanes.container()[0].classList.remove("expanded")}),document.getElementById("site-manager-table").style.width=""}_region.allow_fleet_locations&&(i.rows.add((0,w.getFleetLocationSiteManagerTableRows)(i.rows().count()+1)),i.draw(!1));let u=document.getElementById("eval-buttons-div");u&&(u.style.visibility=_markers.length?"visible":"hidden");let m=document.getElementById("lis-loc-stat-div");m&&(m.style.visibility=_markers.length?"visible":"hidden");C();if(n)if(a){const b=i.searchPanes.container().find(".selected").length;if(0<b){let e=0;i.on("draw.dtsp.pageRestore",()=>{++e>=b&&(i.off("draw.dtsp.pageRestore"),i.page(n).draw(!1))})}else i.page(n).draw(!1)}else i.page(n).draw(!1)};var D=e("./utils"),x=e("./map"),E=e("./features"),F=e("./lis_modal"),w=e("./fleet"),L=e("./site_classification");function k(){var r,s,d,e=document.getElementById("evalYear"),c=_markers.sort((e,t)=>
1e.properties.id-t.properties.id);let u=[];var m=e&&e.value?e.value:(new Date).getFullYear();const p=new Map(_abc_categories);let g=!1;for(let i=0;i<c.length;i++){let t=c[i].properties,n=null,a=null;if(t.power_table){n=0;for(let e=a=0;e<t.power_table.length;e++){var f=t.power_table[e];n+=f.power*f.count*f.demand_factor,a+=f.count}}let e='<a href="#" class="table-lis-name" onclick="openLisModal('+t.id+')">'+(0,D.escapeHTML)(t.name)+"</a>";e='<a href="#" onclick="highlightCCP('+t.id+');"><i class="icon icon--small ion-md-map"></i></a> '+e,t.locked&&(e+=' <i class="icon icon--small ion-md-lock" title="'+gettext("Dieser Standort kann nicht mehr verschoben werden.")+'"></i>');let o;o=_region.allow_fleet_locations?"flash":1==t.vehicle_type?"bus":"car";var h,_,y,v={0:pgettext("LIS status","Neu"),1:pgettext("LIS status","Analyse"),2:pgettext("LIS status","In Genehmigung"),3:pgettext("LIS status","Im Bau"),4:pgettext("LIS status","In Betrieb"),5:pgettext("LIS status","Intern freigegeben"),6:pgettext("LIS status","Abgelehnt"),7:pgettext("LIS status","Freigegeben"),100:pgettext("LIS status","Identifiziert"),102:pgettext("LIS status","Kontakt gefunden"),103:pgettext("LIS status","Erstkontakt hergestellt"),104:pgettext("LIS status","Rückmeldung erhalten / Gespräch vereinbart"),105:pgettext("LIS status","Qualifiziert"),106:pgettext("LIS status","Angebot gesendet"),107:pgettext("LIS status","Standort in Prüfung bei Eigentümer"),108:pgettext("LIS status","Verhandlungsphase"),109:pgettext("LIS status","Vertrag ist final"),110:pgettext("LIS status","Gewonnen"),111:pgettext("LIS status","Verloren"),112:pgettext("LIS status","In Bau - 0 Backlog"),113:pgettext("LIS status","In Bau - 00 Vorplanung"),114:pgettext("LIS status","In Bau - 1 Netzangebot angefragt"),115:pgettext("LIS status","In Bau - 2 Netzangebot erhalten"),116:pgettext("LIS status","In Bau - 3 Standortplanung"),117:pgettext("LIS status","In Bau - 4 Planung überprüfen"),118:pgettext("LIS status","In Bau - 5 Warten auf Freigabe"),119:pgettext("LIS status","In Bau - 6 Freigabe erhalten"),120:pgettext("LIS status","In Bau - 7 Beauftragung"),121:pgettext("LIS status","In Bau - 8 Aufgebaut - Warten auf IBN"),122:pgettext("LIS status","In Bau - Zurückgestellt")},b='<a href="#"><div class="lis-table-status-circle custom-cp-icon-stat-'+t.status+'"></div> '+v[t.status]+"</a>";let l={index:i+1,lis_id:t.id,name:{plain_text:t.name,display:e},abc:{plain_text:t.abc&&"none"!==t.abc?p.get(t.abc):"-",display:(0,F.renderAbcBadge)(t.id,t.abc_manual,t.abc_auto),sort:"none"===t.abc?"":t.abc},vehicle_type:{display:'<i class="icon ion-md-'+o+'"></i>',num:t.vehicle_type},status:{display:b,id:t.status,plain_text:v[t.status]},cp:{display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-power')\">"+(null!==a&&void 0!==a?a:"-")+"</a>",plain_text:null!==a&&void 0!==a?a:"-"},power:{plain_text:null===n?"-":(0,D.roundToStrLocal)(n,2,_language_code)+" kW",display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-power')\">"+(null===n?"-":(0,D.roundToStrLocal)(n,2,_language_code)+" kW</a>"),num:n},files:{display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-files')\">"+t.images.length+"</a>",count:t.images.length},landlord:{plain_text:t.landlord||null},anchor_tenant:{plain_text:t.anchor_tenant||null},cooperation_partner:{plain_text:t.cooperation_partner||null},responsible_user:{plain_text:t.responsible_user_name||null}};if(0<_permissions.evaluateCustomLis){if(null!==t.evaluation){const A=null==(b=t.evaluation.info)?void 0:b.date;for(_ in A&&([v,b,h]=A.split("-").map(Number),v=new Intl.DateTimeFormat(_language_code,{day:"2-digit",month:"2-digit",year:"numeric"}).format(new Date(v,b-1,h)),l.eval_date={display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-evaluation')\">"+v+"</a>",num:A}),t.evaluation){if("info"===_&&null!=(r=t.evaluation[_].truck_eval_info)&&r.evaluation)try{var x=null==(s=t.evaluation[_].truck_eval_info.evaluation.evaluation.mcs)?void 0:s.total[2035].energy_mwh,E=(0,D.roundToStrLocal)(x,1,_language_code)+" MWh/a",w=null==(d=t.evaluation[_].truck_eval_info.evaluation.evaluation.ncs)?void 0:d.total[2035].energy_mwh,L=(0,D.roundToStrLocal)(w,1,_language_code)+" MWh/a";l.truck_eval_mcs_2035={display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-evaluation')\">"+E+"</a>",num:x},l.truck_eval_ncs_2035={display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-evaluation')\">"+L+"</a>",num:w}}catch(e){}try{var k=t.evaluation[_][m].power/1e3,S=(0,D.roundToStrLocal)(k,1,_language_code);l["eval_"+_]={display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-evaluation')\">"+S+"</a>",num:k},g=!0}catch(e){}}}if(_region.allow_eval_2_0){var I,v=null!=(h=null!=(b=t.chosen_tier)?b:_project_default_tier)?h:2,C="tier"+v;for(I of["ac","dc","hpc"])try{var B=t.evaluation.eval_v2.demand[I][C][m],T=B.energy/1e3,P=(0,D.roundToStrLocal)(T,1,_language_code),O=(l["eval_v2_"+I]={display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-evaluation')\">"+P+"</a>",num:T},B.utilization),M=(0,D.roundToStrLocal)(O,1,_language_code);l["eval_v2_util_"+I]={display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-evaluation')\">"+M+"</a>",num:O}}catch(e){}l.eval_v2_tier={display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-evaluation')\">"+v+"</a>",num:v}}}_pro_packages.utilization&&t.utilization_summary&&(b=null===t.utilization_summary.util_year.AC?"-":t.utilization_summary.util_year.AC.toLocaleStr
1ing(_language_code)+" %",v=null===t.utilization_summary.util_year.DC?"-":t.utilization_summary.util_year.DC.toLocaleString(_language_code)+" %",y=null===t.utilization_summary.util_year.HPC?"-":t.utilization_summary.util_year.HPC.toLocaleString(_language_code)+" %",l.utilization_ac={display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-environment-analysis')\">"+b+"</a>",num:t.utilization_summary.util_year.AC},l.utilization_dc={display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-environment-analysis')\">"+v+"</a>",num:t.utilization_summary.util_year.DC},l.utilization_hpc={display:'<a href="#" onclick="openLisModal('+t.id+", '#acc-item-environment-analysis')\">"+y+"</a>",num:t.utilization_summary.util_year.HPC}),u.push(l)}return{rows:u,meta:{has_evaluation_results:g}}}function S(){if(!_permissions.evaluateCustomLis)return null;let e=document.getElementById("evalYearDiv");if(!e){(e=(0,D.addElem)("hide-on-contracted-sitemanager",null,null,"div")).id="evalYearDiv";const n=(0,D.addElem)(null,null,e,"label"),a=(e.appendChild(n),n.setAttribute("for","evalYear"),document.createElement("span")),o=(a.textContent=gettext("Prognose"),a.title=gettext("Wähle das Jahr, für das die Prognose angezeigt werden sollen."),n.appendChild(a),document.createElement("select"));o.id="evalYear",n.appendChild(o)}if(_region.lis_evaluation.hasOwnProperty("years")&&0<_region.lis_evaluation.years.length){let n=e.querySelector("#evalYear");const l=_region.lis_evaluation.years;var t=n.value||(_lis_evaluation_constants.default_show_year||(new Date).getFullYear()).toString();n.innerHTML="",l.map(e=>{let t=(0,D.addElem)("",e.toString(),n,"OPTION");t.value=e}),n.value=t,e.style.display=""}else e.style.display="none";return e}function I(){const e=$("#site-manager-table");if(e){const o=e.DataTable().rows({selected:!0}),l=$.map(o.data(),e=>e.lis_id);let t=0;for(const i of _markers)i.properties._selected=l.includes(i.properties.id),t+=i.properties._selected;var n=0==t;for(const r of _markers){var a=_markerLayer.hasLayer(r);!a||r.properties._selected||n?a||!r.properties._selected&&!n||_markerLayer.addLayer(r):_markerLayer.removeLayer(r)}{const s=document.getElementById("selection-counter-wrapper");if(s){document.querySelector(".leaflet-control-container").appendChild(s);let e=s.querySelector(".selection-counter-text");0<t?(e.style.display="block",e.textContent=interpolate(gettext("%(count)s von %(total)s Ladestandorten ausgewählt"),{count:t,total:_markers.length},!0)):e.style.display="none"}}}}function C(){const e=$("#site-manager-table").DataTable();var t=e.rows({selected:!0}).data().length;const n=0<t,a=(e.buttons(["lis-multi-edit:name","lis-multi-delete:name"]).enable(n),["lis-selection-divider","lis-selection-count","lis-multi-edit-button","lis-multi-delete-button"].forEach(e=>{null!=(e=document.getElementById(e))&&e.classList.toggle("hide-without-selection",!n)}),document.getElementById("lis-selection-count"));a&&n&&(a.textContent=interpolate(ngettext("%(count)s Standort ausgewählt","%(count)s Standorte ausgewählt",t),{count:t},!0))}function B(e,t){return'<i class="icon '+e+'"></i><span>'+t+"</span>"}function T(e){const t=e.table().container();0==Array.from(t.querySelectorAll(".dtsp-searchPane.col .dt-scroll-body table")).reduce((e,t)=>e+$("#"+t.id).DataTable().rows({selected:!0}).get(0).length,0)?null!=(e=t.querySelector(".site-manager-search-panes-toggle"))&&e.classList.remove("active"):null!=(e=t.querySelector(".site-manager-search-panes-toggle"))&&e.classList.add("active")}},{"./features":8,"./fleet":9,"./lis_modal":11,"./map":12,"./site_classification":17,"./utils":19}],19:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.addElem=l,n.applySidebarContractedState=o,n.colormapFromOptions=function(e){let t=chroma.brewer[e.potential];e.colormapInverse&&(t=[].concat(t).reverse());let n=chroma.scale(t);e.colormapPadding&&(n=n.padding(e.colormapPadding));return n},n.colormapToCSSGradient=function(t){let e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"to top",n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:11,a=[];for(let e=0;e<n;e++){var o=e/(n-1);a.push("rgba("+t(o).rgba().toString()+") "+100*o+"%")}return"linear-gradient("+e+","+a.join(",")+")"},n.colormapToGradient=function(e){let t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n={},a=chroma.brewer[e]||[];for(let e=0;e<a.length;e++){var o=Math.abs(Number(t)-e/(a.length-1));n[o]=a[e]}return n},n.create_custom_tooltip=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,n=!(2<arguments.length&&void 0!==arguments[2])||arguments[2];if(!e)return null;const a=document.createElement("span"),o=(a.classList.add("custom_tooltip"),document.createElement("span"));o.classList.add("icon","icon--small","ion-md-information-circle-outline"),o.title=e,o.setAttribute("data-tooltip",""),o.setAttribute("data-position",(null==t?void 0:t.position)||"bottom"),o.setAttribute("data-alignment","center"),n&&$(o).foundation();return a.appendChild(o),a},n.decode_polyline=function(e,t){var n,a=0,o=0,l=0,i=[],r=0,s=0,d=null,c=Math.pow(10,t||6);for(;a<e.length;
1){for(d=null,s=r=0;d=e.charCodeAt(a++)-63,s|=(31&d)<<r,r+=5,32<=d;);for(n=1&s?~(s>>1):s>>1,r=s=0;d=e.charCodeAt(a++)-63,s|=(31&d)<<r,r+=5,32<=d;);o+=n,l+=1&s?~(s>>1):s>>1,i.push([o/c,l/c])}return i},n.escapeCsvString=a,n.escapeCsvStringUgly=function(e){e=e.replace(/\r\n|\n\r|\n/gm,"<br>");return a(e)},n.escapeHTML=function(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},n.fetchPost=function(e,t){let n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0,a=3<arguments.length?arguments[3]:void 0,o;o="string"==typeof t?new FormData(window.document.getElementById(t)):t;0<e.length&&"/"!=e.slice(-1)&&(e+="/");let l=window.location.origin+window.location.pathname+e;s.DEBUG&&console.log(l);t=new Promise((t,n)=>{fetch(l,{method:"post",body:o,credentials:"include",signal:a}).then(e=>{e.ok?t(e):(s.DEBUG&&console.log(e),n(e.statusText))}).catch(e=>{s.DEBUG&&console.log("Request failed",e),n(e)})});if(n)return Promise.race([t,new Promise((e,t)=>setTimeout(()=>t(new Error("timeout "+n+" ms")),n))]);return t},n.filenameWithoutRand=function(e){const t=function(e){const t=e.split(".");{var n;return 1==t.length||2==t.length&&0==t[0].length?[e,""]:(e=t.slice(0,-1).join("."),n="."+t[t.length-1],[e,n])}}(e),n=new RegExp(/_[^_]+$/);return t[0].split(n)[0]+t[1]},n.geoJSONdumps=function(e){return JSON.stringify({type:"Point",coordinates:[e.lng,e.lat]})},n.getCMItemByLabel=function(e){for(var t of _map.contextmenu._items)if(t.el.innerText===e)return t.el;return null},n.getLatLngFromString=function(e){e=e.match(/^(-?\d+\.\d+),(-?\d+\.\d+)$/);if(!e)throw"invalid coordinates";var t=Number.parseFloat(e[1]),e=Number.parseFloat(e[2]);return{lat:t,lng:e}},n.highlightLocation=function(e,t){var n=L.icon({iconUrl:_AHPFolder+"resources/map_highlight.svg",iconSize:[64,64],iconAnchor:[32,32]});d(),i=L.marker(L.latLng(e[1],e[0]),{icon:n}).addTo(_map),t&&(r=setTimeout(()=>{i&&i.remove()},t));return i},n.metersInPixels=function(e){var t=40075016.686*Math.abs(Math.cos(_map.getCenter().lat*Math.PI/180))/Math.pow(2,_map.getZoom()+8);return e/t},n.removeLocationHighlight=d,n.request=function(o){if(!(o=o||[]).path&&!o.abspath)throw"Request path required.";o.query=o.query||"",o.method=o.method||"GET";let e=null;o.abspath?e=o.abspath:("/"!=(e=window.location.origin+window.location.pathname)[e.length-1]&&(e+="/"),e+=o.path);let l=e+"/"+o.query;"/"!=l[l.length-1]&&(l+="/");if(o.params){let e=new URL(l);for(var[t,n]of Object.entries(o.params))e.searchParams.append(t+"",n+"");l=e+""}let i=new Headers({Accept:"application/json","Content-Type":"text/plain"});for(var a of Object.entries(o.header||{}))i.set(String(a[0]),String(a[1]));var r=new Promise((n,a)=>{if(self.fetch)s.DEBUG&&console.log("fetching "+l+"..."),fetch(l,{method:o.method,mode:"cors",headers:i,credentials:"same-origin"}).then(e=>{e.ok?"application/json"==e.headers.get("content-type")?e.json().then(e=>{n(e)}):n(e):(s.DEBUG&&console.log(e),a(e.statusText))}).catch(e=>{s.DEBUG&&console.log("Request failed",e),a(e)});else{s.DEBUG&&console.log("No fetch support");let t=new XMLHttpRequest;t.open(o.method,l,!0);for(var e of Object.entries(i))t.setRequestHeader(e[0],e[1]);t.onreadystatechange=e=>{4===t.readyState&&(200===t.status?(s.DEBUG&&console.log("Done"),n(JSON.parse(t.responseText))):(s.DEBUG&&console.log("Request failed"),s.DEBUG&&console.log(t),a(t)))},t.send(),s.DEBUG&&console.log(t)}});return o.timeout?Promise.race([r,new Promise((e,t)=>setTimeout(()=>t(new Error("timeout")),o.timeout))]):r},n.roundToStr=function(e,t){return e.toFixed(t).replace(/[,.]0+$/,"")},n.roundToStrLocal=function(e,t,n){return e.toLocaleString(n,{maximumFractionDigits:t})},n.safeMax=function(e,t){void 0!==e&&!isNaN(e)||(e=null);void 0!==t&&!isNaN(t)||(t=null);return null===e?t:null===t?e:Math.max(e,t)},n.safeMin=function(e,t){void 0!==e&&!isNaN(e)||(e=null);void 0!==t&&!isNaN(t)||(t=null);return null===e?t:null===t?e:Math.min(e,t)},n.setFilterInactiveCPS=function(e){document.cookie="filter_inactive_cps="+e},n.setProgressbarValue=function(e,t){e.firstElementChild.style.width=t+"%",e.lastElementChild.textContent=t?t+"%":""},n.setupSlideshow=function(n,d){let a=2<arguments.length&&void 0!==arguments[2]&&arguments[2],c;c="string"==typeof n?document.getElementById(n):n;
1if(c){const e=c.querySelectorAll("img"),u=[];if(e.forEach(e=>{var t=e.getAttribute("src"),e=e.getAttribute("data-caption")||"";t&&u.push([t,e])}),0!==u.length){c.innerHTML="",c.classList.add("slideshow-container");let r=l("slideshow-img-container",null,c,"div"),s=(r.dataset.activeImageId=0,l("slideshow-img-caption",null,c,"div"));u.forEach((t,e)=>{let n=l("slideshow-img",null,r,"img");n.src=t[0],n.id="slideshow-"+d+"-img-"+e,0===e?(n.classList.add("active"),s.innerText=t[1]):n.classList.add("right-of-active"),s.setAttribute("dataset-caption-"+e,t[1]),a&&(n.style.cursor="pointer",n.addEventListener("click",function(){const e=document.getElementById("news-image-modal-img");e&&(e.src=t[0],e.alt=t[1],$("#news-image-modal").foundation("open"))}))});n=l("slideshow-controls",null,c,"div");let e=l("slideshow-controls__prev",null,n,"div"),t=(e.innerHTML='<i class="icon ion-ios-arrow-back"></i>',e.onclick=function(){o(-1)},e.classList.add("slideshow-controls-disabled--visibly"),l("slideshow-controls__state","1 - "+u.length,n,"div"),l("slideshow-controls__next",null,n,"div"));function o(t){var n=parseInt(r.dataset.activeImageId);const a=document.getElementById("slideshow-"+d+"-img-"+n);if(!(!a||0===n&&-1===t||n>=u.length-1&&1===t)){const o=n+t,l=document.getElementById("slideshow-"+d+"-img-"+o),i=document.getElementById("slideshow-"+d+"-img-"+n+2*t);1===t?(a.classList.add("left-of-active"),null!==l&&void 0!==l&&l.classList.remove("right-of-active"),i&&i.classList.add("right-of-active")):(a.classList.add("right-of-active"),null!==l&&void 0!==l&&l.classList.remove("left-of-active"),i&&i.classList.add("left-of-active")),a.classList.remove("active"),null!==l&&void 0!==l&&l.classList.add("active"),r.dataset.activeImageId=o.toString(),s.innerText=s.getAttribute("dataset-caption-"+o);let e=c.querySelector(".slideshow-controls__state");e&&(e.textContent=o+1+" - "+u.length),["slideshow-controls__prev","slideshow-controls__next"].forEach(e=>{let t=c.querySelector("."+e);t&&(t.classList.add("slideshow-controls-disabled"),e.includes("prev")&&0==o||e.includes("next")&&o==u.length-1?t.classList.add("slideshow-controls-disabled--visibly"):(t.classList.remove("slideshow-controls-disabled--visibly"),setTimeout(()=>{t&&t.classList.remove("slideshow-controls-disabled")},500)))})}}t.innerHTML='<i class="icon ion-ios-arrow-forward"></i>',t.onclick=function(){o(1)}}}},n.showRating=function(n,a){for(let t=1;t<=5;t++){let e=document.getElementById(n+"-rating-"+t);e&&(t<=a?(e.classList.remove("ion-md-star-outline"),e.classList.add("ion-md-star")):(e.classList.remove("ion-md-star"),e.classList.add("ion-md-star-outline")))}},n.simpleHash=function(t){let n=0;for(let e=0;e<t.length;e++){var a=t.charCodeAt(e);n=(n<<5)-n+a,n&=n}return new Uint32Array([n])[0].toString(36)},n.sliderChange=function(e,t){let n=e.target,a=JSON.parse(n.getAttribute("_values")),o=t.attr("aria-valuenow");$('label[for="'+n.id+'"]')[0].textContent=a[o][1],n.lastElementChild.value=a[o][0]},n.stringToFileName=function(e){return e.replace(/[^a-zA-Z0-9\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF_-]/g,"_").replace(/[_]+/g,"_").replace(/_$|^_/g,"")},n.toggleElemVisibility=function(e){let t=document.getElementById(e);""===t.style.display?t.style.display="none":t.style.display=""},n.togglePWVisibility=function(e,t){e=document.getElementById(e);e&&t&&("password"==e.type?(e.type="text",t.classList.remove("ion-md-eye-off"),t.classList.add("ion-md-eye")):(e.type="password",t.classList.remove("ion-md-eye"),t.classList.add("ion-md-eye-off")))},n.toggleSidebarContracted=function(e){var t=document.querySelector(".sidebar-pane.active");t&&(t=t.id,_sidebar_contracted_state.hasOwnProperty(t)&&(_sidebar_contracted_state[t]=void 0!==e?e:!_sidebar_contracted_state[t],o()))},n.updateURLQueryParams=function(e){let n=new URLSearchParams(window.location.search);e.hasOwnProperty("set")&&Object.entries(e.set).forEach(e=>{var[e,t]=e;n.set(e,t)});if(e.hasOwnProperty("del"))for(var t of e.del)n.delete(t);let a=window.location.origin+window.location.pathname;0<Object.keys(n).length&&(a+="?/"+n.toString());window.history.replaceState({path:a},"",a)};var s=e("./map");function l(e,t,n,a){let o=document.createElement(a);return null!=e&&(o.className=e),null!=t&&(o.innerText=t),null!=n&&n.appendChild(o),o}function a(e){return'"'+e.replace(/"/g,'""')+'"'}function o(){var a=document.querySelector(".sidebar-pane.active");if(a){a=a.id;if(_sidebar_contracted_state.hasOwnProperty(a)){let e=document.getElementById("sidebar"),t=document.querySelectorAll(".sidebar-contract-icon"),n=document.querySelectorAll(".sidebar-expand-icon");
1_sidebar_contracted_state[a]?(t.forEach(e=>e.style.display="none"),n.forEach(e=>e.style.display=""),e.classList.add("sidebar_contracted")):(t.forEach(e=>e.style.display=""),n.forEach(e=>e.style.display="none"),e.classList.remove("sidebar_contracted"))}}}let i=null,r=null;function d(e){r&&(clearTimeout(r),r=null),e?r=setTimeout(()=>{i&&i.remove()},e):i&&i.remove()}},{"./map":12}]},{},[14]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.