const sidebarDivId = 'sidebar-div'; const sidebar2DivId = 'sidebar2-div'; const sidebarHeaderId = 'sidebar-header'; const sidebarCaptionId = 'sidebar-caption'; const sidebarContentDivId = 'sidebar-content-div'; const sidebarFooterButtonLeftId = 'sidebar-footer-button-left'; const sidebarButtonCloseIds = ['sidebar-button-close-touch', 'sidebar-button-close-desktop']; const sidebar2ButtonCloseIds = ['sidebar2-button-close-touch', 'sidebar2-button-close-desktop']; const formPhoneFieldId = 'form-phone'; const formLocationFieldId = 'form-location'; const formLocationEnFieldId = 'form-location-en'; const formIndoorFieldId = 'form-indoor'; const formEmergencyPhoneFieldId = 'form-emergency-phone'; let sidebarHeader = document.getElementById(sidebarHeaderId); let sidebarCaption = document.getElementById(sidebarCaptionId); let sidebarContent = document.getElementById(sidebarContentDivId); let sidebarLink = document.getElementById(sidebarFooterButtonLeftId); const accessToColourMapping = { 'yes': 'has-background-green', 'no': 'has-background-grey', 'private': 'has-background-grey', 'permissive': 'has-background-link-dark', 'default': 'has-background-grey', }; const accessToDescriptionMapping = { 'yes': 'ogólnodostępny', 'no': 'prywatny', 'private': 'prywatny', 'permissive': 'o ograniczonym dostępie', 'default': '', }; const indoorMapping = { 'yes': 'tak', 'no': 'nie', 'default': '', }; const locationMapping = { 'indoor': 'tak', 'outdoor': 'nie', 'default': '', }; // -------------------------------------------------------------------------------------- function defineColor(access) { return accessToColourMapping[access] || accessToColourMapping['default']; } function defineAccessDescription(access) { return accessToDescriptionMapping[access] || accessToDescriptionMapping['default']; } function defineIndoor(indoor) { return indoorMapping[indoor] || indoorMapping['default']; } function defineLocationIndoor(location) { return locationMapping[location] || locationMapping['default']; } function getOsmEditLink(id) { return `https://www.openstreetmap.org/edit?editor=id&node=${id}`; } function getOsmPreviewLink(id) { return `https://www.openstreetmap.org/node/${id}`; } function parseOpeningHours(openingHours) { if (openingHours) { if (openingHours.includes('24/7')) { return 'całodobowo'; } else { let hoursPrettified; try { let hours = openingHours.toString(); let oh = new opening_hours(hours, undefined, 2); isOpen = oh.getState(); hoursPrettified = oh.prettifyValue({ conf: { locale: 'pl' }, }); } catch (error) { console.log('Error when parsing opening hours'); return undefined; } return hoursPrettified; } } else { return undefined; } } function isCurrentlyOpen(openingHours) { if (openingHours) { if (openingHours.includes('24/7')) { return true; } else { let hours = openingHours.toString(); let oh = new opening_hours(hours, undefined, 2); isOpen = oh.getState(); return isOpen; } } } function renderCurrentlyOpenStatus(openingHours) { if (isCurrentlyOpen(openingHours)) { return 'Dostępny'; } else { return 'Niedostępny'; } } function renderIfIndoor(indoor, location) { let beginning = '
Wewnątrz budynku?: '; let middle = defineLocationIndoor(location) || defineIndoor(indoor) || 'brak informacji'; let end = '
'; return beginning + middle + end; } function renderLocation(properties) { let beginning = 'Dokładna lokalizacja: '; let middle = properties['defibrillator:location:pl'] || properties['defibrillator:location'] || 'brak informacji'; let end = '
'; return beginning + middle + end; } function renderDescription(properties) { let beginning = 'Opis: '; let middle = properties['description:pl'] || properties.description || 'brak informacji'; let end = '
'; return beginning + middle + end; } function renderContactNumber(phone) { let beginning = 'Numer kontaktowy: '; let middle = phone || 'brak informacji'; let end = '
'; return beginning + middle + end; } function renderAccessibleTime(openingHours) { if (openingHours) { let beginning = 'Dostępny w godzinach: '; let middle = parseOpeningHours(openingHours) || 'brak informacji '; let end = (renderCurrentlyOpenStatus(openingHours) || '') + '
'; return beginning + middle + end; } else { return ''; } } function renderNotes(properties) { if (properties.note || properties['note:pl']) { let beginning = 'Uwagi: '; let middle = properties['note:pl'] || properties.note || 'brak uwag'; let end = '
'; return beginning + middle + end; } else { return ''; } } function renderOperator(operator) { let beginning = 'Zarządzający urządzeniem: '; let middle = operator || 'brak informacji'; let end = '
'; return beginning + middle + end; } function renderSidebarContent(properties) { let content = ''; content += renderIfIndoor(properties.indoor, properties.location); content += renderLocation(properties); content += renderAccessibleTime(properties.opening_hours); content += renderDescription(properties); content += renderContactNumber(properties.phone); content += renderOperator(properties.operator); content += renderNotes(properties); return content; } function renderSidebarForm() { let content = `