window.GMapTemplates={
searchItem: (data, type)=> {
if(type==='grid'){
return `
<div class="location-item item-${data.id} uk-card uk-card-default uk-card-body mb-4">
<h3 class="uk-card-title">${data.name}</h3>
<p>${data.address||''}</p>
<div class="uk-text-meta">${data.distanceText||''}</div>
<button class="uk-button uk-button-default mt-2 show-on-map">Auf Karte zeigen</button>
</div>
`;
}
return window.GMapTemplates.locationItem(data);
},
/*generateDetailsHtml: (data)=> {
const d=data.details;
let infoHtml='';
if(d.address&&d.address.length > 0){
infoHtml +='<div class="loc-address">' + d.address.filter(l=> l!==data.name).map(l=> `<div>${l}</div>`).join('') + '</div>';
}
if(d.contact) infoHtml +=`<div class="loc-row"><strong>Kontakt:</strong> <br>${d.contact}</div>`;
if(d.phone) infoHtml +=`<div class="loc-row"><strong>Telefon:</strong> <br><a href="tel:${d.phone.replace(/[^0-9+]/g, '')}">${d.phone}</a></div>`;
if(d.email||d.web){
infoHtml +='<div class="loc-row"><strong>E-Mail und Internet:</strong> <br>';
if(d.email) infoHtml +=`<div><a href="mailto:${d.email}">${d.email}</a></div>`;
if(d.web) infoHtml +=`<div><a href="${d.web.startsWith('http') ? d.web:'https://' + d.web}" target="_blank">${d.web}</a></div>`;
infoHtml +='</div>';
}
return infoHtml;
},
locationItem: (data)=> {
const infoHtml=window.GMapTemplates.generateDetailsHtml(data);
const distStr=data.distance ? `<span class="dist" style="float:right; color:#888;">(${data.distance.toFixed(1)} km)</span>`:'';
return `
<div class="map-item location-item" tabindex="0" role="button" aria-label="Standort ${data.name} anzeigen">
<div class="loc-name"><strong>${data.name}</strong> ${distStr}</div>
<div class="meta">${infoHtml}</div>
</div>
`;
},*/
generateDetailsHtml: (data)=> {
const d=data.details;
let infoHtml='';
const distStr=data.distance ? `<span class="dist" style="float:right; color:#888; font-size: 0.85rem; font-weight: normal;">(${data.distance.toFixed(1)} km)</span>`:'';
infoHtml +=`
<div class="loc-transformation uk-margin-bottom">
<div>${distStr}Aus ${d.name_old} wird:</div>
<div style="font-weight: 700; margin-top: 5px;">${d.name_new}</div>
</div>
`;
if(d.address&&d.address.length > 0){
const formattedAddress=d.address[0].replace(/\n/g, '<br>');
infoHtml +=`<div class="loc-address uk-margin-top">${formattedAddress}</div>`;
}
infoHtml +=`<div class="loc-contact uk-margin-top">`;
if(d.email){
infoHtml +=`<div><strong>E-Mail:</strong> <a href="mailto:${d.email}" style="color: #000; text-decoration: none;">${d.email}</a></div>`;
}
if(d.phone){
const telLink=d.phone.split(/[\n,]/)[0].replace(/[^0-9+]/g, '');
infoHtml +=`<div><strong>Tel.:</strong> <a href="tel:${telLink}" style="color: #000; text-decoration: none;">${d.phone.split('\n')[0]}</a></div>`;
}
infoHtml +=`</div>`;
infoHtml +=`
<div class="uk-grid-small uk-flex uk-margin-top">
<div>
<a href="${d.url_select}" target="_blank" class="uk-button uk-button-secondary" style="white-space: nowrap">EINRICHTUNG ZEIGEN</a> &nbsp;
</div>
<div>
<a href="${d.url_request}" target="_blank" class="uk-button uk-button-primary" style="white-space: nowrap">PLATZANFRAGE</a>
</div>
</div>
`;
return infoHtml;
},
locationItem: (data)=> {
const infoHtml=window.GMapTemplates.generateDetailsHtml(data);
return `
<div class="map-item location-item" tabindex="0" role="button">
<div class="meta">${infoHtml}</div>
</div>
`;
},
locationPopup: (data)=> {
const infoHtml=window.GMapTemplates.generateDetailsHtml(data);
return `<div class="map-popup-content"><strong>${data.name}</strong><br><br>${infoHtml}</div>`;
},
territoryResult: (data)=> {
const content='';
const popupClass=data.isInside ? 'territory-success':'territory-outside';
return {
html:content,
className: popupClass
};},
onTerritorySearch: (isInside)=> {
let $insideContainer=$('.inside-area');
let $insideNegativContainer=$('.inside-area-negativ');
if($insideContainer.length){
$insideContainer.toggle(isInside);
if($insideNegativContainer.length){
$insideNegativContainer.toggle(!isInside);
}}
}};