mirror of
https://forge.chapril.org/tykayn/libre-charge-map
synced 2025-10-04 17:04:53 +02:00
up styles
This commit is contained in:
parent
217416234a
commit
7c80ac4576
9 changed files with 283 additions and 224 deletions
27
index.html
27
index.html
|
@ -46,15 +46,14 @@
|
||||||
<main>
|
<main>
|
||||||
|
|
||||||
|
|
||||||
<button id="toggleSidePanel">
|
<!-- <button id="toggleSidePanel">
|
||||||
☰
|
☰
|
||||||
</button>
|
</button> -->
|
||||||
<div id="zoomMessage">
|
<div id="zoomMessage">
|
||||||
Zoomez pour voir les stations de recharge
|
Zoomez pour voir les stations de recharge
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id='count_features_fond'>
|
|
||||||
</div>
|
|
||||||
<div id='map'>
|
<div id='map'>
|
||||||
|
|
||||||
<div class='leaflet-control-container'>
|
<div class='leaflet-control-container'>
|
||||||
|
@ -102,7 +101,7 @@
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Cartes des stations de recharge pour véhicules électriques basée sur les données collaborative <a
|
<p>Cartes des stations de recharge pour véhicules électriques basée sur les données collaboratives <a
|
||||||
href="https://openstreetmap.org">OpenStreetMap</a></p>
|
href="https://openstreetmap.org">OpenStreetMap</a></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -131,8 +130,6 @@
|
||||||
<div class="filter-sockets">
|
<div class="filter-sockets">
|
||||||
|
|
||||||
<h3>Types de prises</h3>
|
<h3>Types de prises</h3>
|
||||||
<img class="icon-img" src="img/type2_connector_outline.svg" alt="type2">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -144,7 +141,7 @@
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" id="filterCCS">
|
<input type="checkbox" id="filterCCS">
|
||||||
<span class="checkbox-custom"></span>
|
<span class="checkbox-custom"></span>
|
||||||
<span>Prise CCS</span>
|
<!-- <span>Prise CCS</span> -->
|
||||||
<img class="icon-img" src="img/type2_combo.svg" alt="prise">
|
<img class="icon-img" src="img/type2_combo.svg" alt="prise">
|
||||||
|
|
||||||
</label>
|
</label>
|
||||||
|
@ -152,19 +149,19 @@
|
||||||
<input type="checkbox" id="filterType2">
|
<input type="checkbox" id="filterType2">
|
||||||
<span class="checkbox-custom"></span>
|
<span class="checkbox-custom"></span>
|
||||||
<img class="icon-img" src="img/Type2_socket.svg" alt="prise">
|
<img class="icon-img" src="img/Type2_socket.svg" alt="prise">
|
||||||
<span>Prise Type 2</span>
|
<!-- <span>Prise Type 2</span> -->
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" id="filterDomestic">
|
<input type="checkbox" id="filterDomestic">
|
||||||
<span class="checkbox-custom"></span>
|
<span class="checkbox-custom"></span>
|
||||||
<img class="icon-img" src="img/socket_typee.svg" alt="prise">
|
<img class="icon-img" src="img/socket_typee.svg" alt="prise">
|
||||||
<span>Prise domestique</span>
|
<!-- <span>Prise domestique</span> -->
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" id="filterChademo">
|
<input type="checkbox" id="filterChademo">
|
||||||
<span class="checkbox-custom"></span>
|
<span class="checkbox-custom"></span>
|
||||||
<img class="icon-img" src="img/chademo.svg" alt="prise">
|
<img class="icon-img" src="img/chademo.svg" alt="prise">
|
||||||
<span>Prise CHAdeMO</span>
|
<!-- <span>Prise CHAdeMO</span> -->
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" id="filterType1">
|
<input type="checkbox" id="filterType1">
|
||||||
|
@ -179,11 +176,6 @@
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<h3>Qualité des données</h3>
|
<h3>Qualité des données</h3>
|
||||||
<!-- <label>
|
|
||||||
<input type="checkbox" id="filterQuality">
|
|
||||||
<span class="checkbox-custom"></span>
|
|
||||||
<span>Contrôle qualité</span>
|
|
||||||
</label> -->
|
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" id="filterUnkown">
|
<input type="checkbox" id="filterUnkown">
|
||||||
<span class="checkbox-custom"></span>
|
<span class="checkbox-custom"></span>
|
||||||
|
@ -239,7 +231,8 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id='count_features_fond'>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
|
338
js/lcm_main.js
338
js/lcm_main.js
|
@ -89,19 +89,19 @@ function moveToLocation(place) {
|
||||||
// Ajouter le marqueur à la carte
|
// Ajouter le marqueur à la carte
|
||||||
searchLocationMarker.addTo(map);
|
searchLocationMarker.addTo(map);
|
||||||
|
|
||||||
|
// Désactiver temporairement l'événement moveend
|
||||||
|
map.off('moveend', onMapMoveEnd);
|
||||||
|
|
||||||
// Centrer la carte sur le lieu
|
// Centrer la carte sur le lieu
|
||||||
map.setView([lat, lon], map.getZoom());
|
map.setView([lat, lon], map.getZoom());
|
||||||
|
|
||||||
|
// Réactiver l'événement moveend après un court délai
|
||||||
|
setTimeout(() => {
|
||||||
|
map.on('moveend', onMapMoveEnd);
|
||||||
|
}, 500);
|
||||||
|
|
||||||
// Ouvrir le popup automatiquement
|
// Ouvrir le popup automatiquement
|
||||||
searchLocationMarker.openPopup();
|
searchLocationMarker.openPopup();
|
||||||
|
|
||||||
// Faire disparaître le marqueur après 10 secondes
|
|
||||||
// setTimeout(() => {
|
|
||||||
// if (searchLocationMarker) {
|
|
||||||
// map.removeLayer(searchLocationMarker);
|
|
||||||
// searchLocationMarker = null;
|
|
||||||
// }
|
|
||||||
// }, 10000);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Déplacer searchLocationWithAddok avant searchLocation
|
// Déplacer searchLocationWithAddok avant searchLocation
|
||||||
|
@ -170,18 +170,20 @@ function searchLocation() {
|
||||||
|
|
||||||
// Si il y a plus d'un résultat, les afficher quand même dans la liste
|
// Si il y a plus d'un résultat, les afficher quand même dans la liste
|
||||||
if (data.length > 1) {
|
if (data.length > 1) {
|
||||||
// Ajouter le bouton de fermeture avant la liste des résultats
|
// Vérifier si le bouton de fermeture existe déjà
|
||||||
const closeButton = $('<button>')
|
if ($('.close-results-button').length === 0) {
|
||||||
.addClass('close-results-button')
|
const closeButton = $('<button>')
|
||||||
.html('❌')
|
.addClass('close-results-button')
|
||||||
.attr('title', 'Fermer les résultats de recherche')
|
.html('❌')
|
||||||
.on('click', function () {
|
.attr('title', 'Fermer les résultats de recherche')
|
||||||
$('#searchResults').hide();
|
.on('click', function () {
|
||||||
$(this).hide();
|
$('#searchResults').hide();
|
||||||
$('#searchLocation').val('').focus();
|
$(this).hide();
|
||||||
});
|
$('#searchLocation').val('').focus();
|
||||||
|
});
|
||||||
|
|
||||||
resultsDropdown.before(closeButton);
|
resultsDropdown.before(closeButton);
|
||||||
|
}
|
||||||
|
|
||||||
data.forEach((place, index) => {
|
data.forEach((place, index) => {
|
||||||
let displayText = place.display_name;
|
let displayText = place.display_name;
|
||||||
|
@ -196,7 +198,7 @@ function searchLocation() {
|
||||||
resultsDropdown.append(option);
|
resultsDropdown.append(option);
|
||||||
});
|
});
|
||||||
resultsDropdown.show();
|
resultsDropdown.show();
|
||||||
closeButton.show();
|
$('.close-results-button').show();
|
||||||
|
|
||||||
// Sélectionner visuellement le premier résultat dans la liste
|
// Sélectionner visuellement le premier résultat dans la liste
|
||||||
resultsDropdown.val(0);
|
resultsDropdown.val(0);
|
||||||
|
@ -243,7 +245,7 @@ function updateURLWithMapCoordinatesAndZoom() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let all_stations_markers = L.layerGroup() // layer group pour tous les marqueurs
|
let all_stations_markers = L.layerGroup().addTo(map) // layer group pour tous les marqueurs
|
||||||
// let stations_much_speed_wow = L.layerGroup().addTo(map) // layer group des stations rapides
|
// let stations_much_speed_wow = L.layerGroup().addTo(map) // layer group des stations rapides
|
||||||
|
|
||||||
var osm = L.tileLayer(lcm_config.tileServers.osm, {
|
var osm = L.tileLayer(lcm_config.tileServers.osm, {
|
||||||
|
@ -279,17 +281,12 @@ let bdortho = L.tileLayer('https://wxs.ign.fr/ortho/geoportail/wmts?' +
|
||||||
// Modifier la définition de baseLayers pour inclure la BD ORTHO
|
// Modifier la définition de baseLayers pour inclure la BD ORTHO
|
||||||
var baseLayers = {
|
var baseLayers = {
|
||||||
'Grey': tileGrey,
|
'Grey': tileGrey,
|
||||||
'Stamen': stamen,
|
// 'Stamen': stamen,
|
||||||
'OpenStreetMap': osm,
|
'OpenStreetMap': osm,
|
||||||
'BD ORTHO IGN': bdortho,
|
// 'BD ORTHO IGN': bdortho,
|
||||||
// 'OpenCycleMap': cycle,
|
// 'OpenCycleMap': cycle,
|
||||||
'Transport': transport
|
'Transport': transport
|
||||||
}
|
}
|
||||||
// let overlays = {
|
|
||||||
// stations: all_stations_markers
|
|
||||||
// }
|
|
||||||
|
|
||||||
// const layerControl = L.control.layers(baseLayers, overlays, { collapsed: true }).addTo(map)
|
|
||||||
tileGrey.addTo(map)
|
tileGrey.addTo(map)
|
||||||
|
|
||||||
|
|
||||||
|
@ -429,7 +426,7 @@ function displayStatsFromGeoJson(resultAsGeojson, stats) {
|
||||||
</div>`;
|
</div>`;
|
||||||
|
|
||||||
let stats_content = `<div class="stats-table">
|
let stats_content = `<div class="stats-table">
|
||||||
<table>
|
<table style="width: 100%;">
|
||||||
<tr>
|
<tr>
|
||||||
<th>Type</th>
|
<th>Type</th>
|
||||||
<th>Nombre</th>
|
<th>Nombre</th>
|
||||||
|
@ -1207,7 +1204,7 @@ function searchOsmoseIssues(map) {
|
||||||
|
|
||||||
// Mettre à jour le contenu de la popup et s'assurer qu'elle est ouverte
|
// Mettre à jour le contenu de la popup et s'assurer qu'elle est ouverte
|
||||||
clickedMarker.setPopupContent(popupContent);
|
clickedMarker.setPopupContent(popupContent);
|
||||||
clickedMarker.openPopup(); // Rouvrir pour ajuster la taille si nécessaire
|
// clickedMarker.openPopup(); // Rouvrir pour ajuster la taille si nécessaire
|
||||||
|
|
||||||
// Lier l'événement au bouton JOSM DANS la popup
|
// Lier l'événement au bouton JOSM DANS la popup
|
||||||
bindEventsOnJosmRemote(clickedMarker.getPopup().getElement());
|
bindEventsOnJosmRemote(clickedMarker.getPopup().getElement());
|
||||||
|
@ -1216,7 +1213,7 @@ function searchOsmoseIssues(map) {
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.error("Erreur lors de la récupération des détails de l'issue Osmose:", error);
|
console.error("Erreur lors de la récupération des détails de l'issue Osmose:", error);
|
||||||
clickedMarker.setPopupContent(`Erreur lors du chargement des détails.<br><a href="https://osmose.openstreetmap.fr/fr/issue/${storedIssueId}" target="_blank">Voir sur Osmose</a>`);
|
clickedMarker.setPopupContent(`Erreur lors du chargement des détails.<br><a href="https://osmose.openstreetmap.fr/fr/issue/${storedIssueId}" target="_blank">Voir sur Osmose</a>`);
|
||||||
clickedMarker.openPopup();
|
// clickedMarker.openPopup();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1234,157 +1231,158 @@ function searchOsmoseIssues(map) {
|
||||||
|
|
||||||
// Modifier la gestion du clic sur les marqueurs Osmose
|
// Modifier la gestion du clic sur les marqueurs Osmose
|
||||||
function handleMarkerClick(marker, map) {
|
function handleMarkerClick(marker, map) {
|
||||||
const popup = marker.getPopup();
|
// const popup = marker.getPopup();
|
||||||
const markerLatLng = marker.getLatLng();
|
// const markerLatLng = marker.getLatLng();
|
||||||
|
|
||||||
// Calculer la position relative du marqueur dans la vue
|
// Calculer la position relative du marqueur dans la vue
|
||||||
const markerPoint = map.latLngToContainerPoint(markerLatLng);
|
// const markerPoint = map.latLngToContainerPoint(markerLatLng);
|
||||||
const mapHeight = map.getContainer().clientHeight;
|
// const mapHeight = map.getContainer().clientHeight;
|
||||||
|
|
||||||
// Si le marqueur est dans la moitié supérieure de l'écran
|
// Si le marqueur est dans la moitié supérieure de l'écran
|
||||||
if (markerPoint.y < mapHeight / 2) {
|
// if (markerPoint.y < mapHeight / 2) {
|
||||||
// Calculer le décalage nécessaire pour centrer la popup
|
// Calculer le décalage nécessaire pour centrer la popup
|
||||||
const targetLatLng = map.containerPointToLatLng([
|
// const targetLatLng = map.containerPointToLatLng([
|
||||||
markerPoint.x,
|
// markerPoint.x,
|
||||||
mapHeight / 2
|
// mapHeight / 2
|
||||||
]);
|
// ]);
|
||||||
|
|
||||||
// Déplacer la carte avec une animation
|
// Déplacer la carte avec une animation
|
||||||
map.once('moveend', () => {
|
// map.once('moveend', () => {
|
||||||
marker.openPopup();
|
// marker.openPopup();
|
||||||
});
|
// });
|
||||||
|
|
||||||
map.panTo(targetLatLng, {
|
// map.panTo(targetLatLng, {
|
||||||
animate: true,
|
// animate: true,
|
||||||
duration: 0.5
|
// duration: 0.25
|
||||||
});
|
// });
|
||||||
} else {
|
// } else {
|
||||||
marker.openPopup();
|
// // marker.openPopup();
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ajouter un écouteur d'événements pour le changement de visibilité des calques
|
// Ajouter un écouteur d'événements pour le changement de visibilité des calques
|
||||||
function init() {
|
function init() {
|
||||||
$(document).ready(function () {
|
bindEventsOnJosmRemote();
|
||||||
bindEventsOnJosmRemote();
|
onMapMoveEnd();
|
||||||
onMapMoveEnd();
|
map.on('moveend', onMapMoveEnd);
|
||||||
map.on('moveend', onMapMoveEnd);
|
$('#spinning_icon').hide();
|
||||||
$('#spinning_icon').hide();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* boutons de changement de filtres et de rechargement des bornes à l'affichage
|
* boutons de changement de filtres et de rechargement des bornes à l'affichage
|
||||||
*/
|
*/
|
||||||
$('#removeMarkers').on('click', function () {
|
$('#removeMarkers').on('click', function () {
|
||||||
supprimerMarqueurs();
|
supprimerMarqueurs();
|
||||||
});
|
|
||||||
$('#load').on('click', function () {
|
|
||||||
loadOverpassQuery();
|
|
||||||
});
|
|
||||||
$('#toggleSidePanel').on('click', function () {
|
|
||||||
$('body').toggleClass('side-panel-open');
|
|
||||||
});
|
|
||||||
$('#chercherButton').on('click', function () {
|
|
||||||
supprimerMarqueurs();
|
|
||||||
loadOverpassQuery();
|
|
||||||
});
|
|
||||||
$('#setRandomView').on('click', function () {
|
|
||||||
setRandomView();
|
|
||||||
loadOverpassQuery();
|
|
||||||
});
|
|
||||||
$('#filterUnkown').on('click', function () {
|
|
||||||
display_unknown_max_power_station = cycleVariableState(display_unknown_max_power_station, '#filterUnkown');
|
|
||||||
showActiveFilter(display_unknown_max_power_station, '#filterUnkown');
|
|
||||||
refreshDisplay();
|
|
||||||
});
|
|
||||||
/**
|
|
||||||
* toggle des alertes de tags décrivant la présence de cable
|
|
||||||
*/
|
|
||||||
$('#cableMissing').on('click', function () {
|
|
||||||
display_alert_cable_missing = !display_alert_cable_missing;
|
|
||||||
showActiveFilter(display_alert_cable_missing, '#cableMissing');
|
|
||||||
refreshDisplay();
|
|
||||||
});
|
|
||||||
showActiveFilter(display_unknown_max_power_station, '#filterUnkown');
|
|
||||||
|
|
||||||
$('#shareUrl').on('click', copyCurrentUrl);
|
|
||||||
|
|
||||||
// Initialisation des états des checkboxes des filtres selon les valeurs de configuration
|
|
||||||
Object.keys(lcm_config.filterConfigs).forEach(filterId => {
|
|
||||||
console.log("checbox ", $(`#${filterId}`), lcm_config.filterConfigs[filterId], lcm_config)
|
|
||||||
$(`#${filterId}`).prop('checked', lcm_config.filterConfigs[filterId]);
|
|
||||||
});
|
|
||||||
// Écouteurs pour les filtres
|
|
||||||
Object.keys(lcm_config.filterConfigs).forEach(filterId => {
|
|
||||||
$(`#${filterId}`).on('change', function () {
|
|
||||||
lcm_config[lcm_config.filterConfigs[filterId]] = this.checked;
|
|
||||||
refreshDisplay();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// food_places_markers.addTo(map);
|
|
||||||
|
|
||||||
// Mettre à jour le contrôle des calques
|
|
||||||
const overlayMaps = {
|
|
||||||
// ...baseLayers,
|
|
||||||
"Stations de recharge": all_stations_markers,
|
|
||||||
"Restaurants et cafés": food_places_markers,
|
|
||||||
"Bornes potentielles (Osmose)": osmose_markers
|
|
||||||
};
|
|
||||||
|
|
||||||
const overlayControl = L.control.layers(baseLayers, overlayMaps, {
|
|
||||||
// collapsed: false,
|
|
||||||
className: 'leaflet-control-layers overlay-layers',
|
|
||||||
id: 'overlay-layers-control'
|
|
||||||
})
|
|
||||||
.addTo(map);
|
|
||||||
|
|
||||||
$('#sendToJOSM').on('click', () => {
|
|
||||||
sendToJOSM(map, geojsondata)
|
|
||||||
.then(() => {
|
|
||||||
console.log('Données envoyées à JOSM avec succès !');
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
alert('Erreur : JOSM doit être ouvert avec l\'option "Contrôle à distance" activée');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
$('#josmLink').on('click', () => {
|
|
||||||
sendToJOSM(map, geojsondata)
|
|
||||||
.then(() => {
|
|
||||||
console.log('Données envoyées à JOSM avec succès !');
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
alert('Erreur : JOSM doit être ouvert avec l\'option de télécommande "Contrôle à distance" activée dans ses paramètres (accédez-y avec F12)');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#searchButton').on('click', searchLocation);
|
|
||||||
$('#shareUrl').on('click', copyCurrentUrl);
|
|
||||||
$('#filter_max_output').on('input', function () {
|
|
||||||
const value = $(this).val();
|
|
||||||
console.log('filter_max_output', value, $(this));
|
|
||||||
$('#filter_max_output_display').text(value + ' kW');
|
|
||||||
refreshDisplay();
|
|
||||||
});
|
|
||||||
$('#filter_max_output_slider').on('input', function () {
|
|
||||||
const value = $(this).val();
|
|
||||||
|
|
||||||
lcm_config.filter_max_output_default_value = value;
|
|
||||||
$('#filter_max_output_display').text(value + ' kW');
|
|
||||||
refreshDisplay();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$('#searchResults').on('change', function () {
|
|
||||||
const selectedIndex = $(this).eq(0).val();
|
|
||||||
if (selectedIndex !== null) {
|
|
||||||
const selectedPlace = $(this).find('option:selected').data('place');
|
|
||||||
moveToLocation(selectedPlace);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
osmose_markers.addTo(map);
|
|
||||||
});
|
});
|
||||||
|
$('#load').on('click', function () {
|
||||||
|
loadOverpassQuery();
|
||||||
|
});
|
||||||
|
$('#toggleSidePanel').on('click', function () {
|
||||||
|
console.log('toggleSidePanel', $(this))
|
||||||
|
$('body').toggleClass('side-panel-open');
|
||||||
|
});
|
||||||
|
$('#chercherButton').on('click', function () {
|
||||||
|
supprimerMarqueurs();
|
||||||
|
loadOverpassQuery();
|
||||||
|
});
|
||||||
|
$('#setRandomView').on('click', function () {
|
||||||
|
setRandomView();
|
||||||
|
loadOverpassQuery();
|
||||||
|
});
|
||||||
|
$('#filterUnkown').on('click', function () {
|
||||||
|
display_unknown_max_power_station = cycleVariableState(display_unknown_max_power_station, '#filterUnkown');
|
||||||
|
showActiveFilter(display_unknown_max_power_station, '#filterUnkown');
|
||||||
|
refreshDisplay();
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
* toggle des alertes de tags décrivant la présence de cable
|
||||||
|
*/
|
||||||
|
$('#cableMissing').on('click', function () {
|
||||||
|
display_alert_cable_missing = !display_alert_cable_missing;
|
||||||
|
showActiveFilter(display_alert_cable_missing, '#cableMissing');
|
||||||
|
refreshDisplay();
|
||||||
|
});
|
||||||
|
showActiveFilter(display_unknown_max_power_station, '#filterUnkown');
|
||||||
|
|
||||||
|
$('#shareUrl').on('click', copyCurrentUrl);
|
||||||
|
|
||||||
|
// Initialisation des états des checkboxes des filtres selon les valeurs de configuration
|
||||||
|
Object.keys(lcm_config.filterConfigs).forEach(filterId => {
|
||||||
|
console.log("checbox ", $(`#${filterId}`), lcm_config.filterConfigs[filterId], lcm_config)
|
||||||
|
$(`#${filterId}`).prop('checked', lcm_config.filterConfigs[filterId]);
|
||||||
|
});
|
||||||
|
// Écouteurs pour les filtres
|
||||||
|
Object.keys(lcm_config.filterConfigs).forEach(filterId => {
|
||||||
|
$(`#${filterId}`).on('change', function () {
|
||||||
|
lcm_config[lcm_config.filterConfigs[filterId]] = this.checked;
|
||||||
|
refreshDisplay();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// food_places_markers.addTo(map);
|
||||||
|
|
||||||
|
// Mettre à jour le contrôle des calques
|
||||||
|
const overlayMaps = {
|
||||||
|
// ...baseLayers,
|
||||||
|
// "🗺️ Fond de carte": baseLayers,
|
||||||
|
"⚡ Stations de recharge": all_stations_markers,
|
||||||
|
"☕ Restaurants et cafés": food_places_markers,
|
||||||
|
"💡 Bornes potentielles (Osmose)": osmose_markers
|
||||||
|
};
|
||||||
|
|
||||||
|
const overlayControl = L.control.layers(baseLayers, overlayMaps, {
|
||||||
|
// collapsed: false,
|
||||||
|
className: 'leaflet-control-layers overlay-layers',
|
||||||
|
id: 'overlay-layers-control'
|
||||||
|
})
|
||||||
|
.addTo(map);
|
||||||
|
|
||||||
|
$('#sendToJOSM').on('click', () => {
|
||||||
|
sendToJOSM(map, geojsondata)
|
||||||
|
.then(() => {
|
||||||
|
console.log('Données envoyées à JOSM avec succès !');
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
alert('Erreur : JOSM doit être ouvert avec l\'option "Contrôle à distance" activée');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$('#josmLink').on('click', () => {
|
||||||
|
sendToJOSM(map, geojsondata)
|
||||||
|
.then(() => {
|
||||||
|
console.log('Données envoyées à JOSM avec succès !');
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
alert('Erreur : JOSM doit être ouvert avec l\'option de télécommande "Contrôle à distance" activée dans ses paramètres (accédez-y avec F12)');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#searchButton').on('click', searchLocation);
|
||||||
|
$('#shareUrl').on('click', copyCurrentUrl);
|
||||||
|
$('#filter_max_output').on('input', function () {
|
||||||
|
const value = $(this).val();
|
||||||
|
console.log('filter_max_output', value, $(this));
|
||||||
|
$('#filter_max_output_display').text(value + ' kW');
|
||||||
|
refreshDisplay();
|
||||||
|
});
|
||||||
|
$('#filter_max_output_slider').on('input', function () {
|
||||||
|
const value = $(this).val();
|
||||||
|
|
||||||
|
lcm_config.filter_max_output_default_value = value;
|
||||||
|
$('#filter_max_output_display').text(value + ' kW');
|
||||||
|
refreshDisplay();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$('#searchResults').on('change', function () {
|
||||||
|
const selectedIndex = $(this).eq(0).val();
|
||||||
|
if (selectedIndex !== null) {
|
||||||
|
const selectedPlace = $(this).find('option:selected').data('place');
|
||||||
|
moveToLocation(selectedPlace);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
osmose_markers.addTo(map);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,20 @@
|
||||||
margin-top: 0rem;
|
margin-top: 0rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#searchResults {
|
||||||
|
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
margin-top: -0.9rem;
|
||||||
|
margin-left: -1.6rem;
|
||||||
|
width: 90.4%;
|
||||||
|
height: 67%;
|
||||||
|
left: -28px;
|
||||||
|
border-top: 1px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#bars_power {
|
#bars_power {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
@ -68,13 +82,17 @@
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
background: var(--button-border);
|
background: var(--button-border);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
position: relative;
|
|
||||||
top: -4.9rem;
|
|
||||||
right: 1.4rem;
|
|
||||||
height: 2.6rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#count_features_fond {
|
position: relative;
|
||||||
border: solid 1px grey;
|
top: -26.8vh;
|
||||||
|
left: -1rem;
|
||||||
|
height: 2.9rem;
|
||||||
|
z-index: 10;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#count_features_fond {
|
||||||
|
|
||||||
|
position: static;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -33,6 +33,7 @@
|
||||||
td:first-child {
|
td:first-child {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #666;
|
color: #666;
|
||||||
|
width: 45%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,9 +2,6 @@
|
||||||
overrides leaflet
|
overrides leaflet
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.leaflet-left .leaflet-control {
|
|
||||||
margin-left: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaflet-interactive {
|
.leaflet-interactive {
|
||||||
border: solid 3px white;
|
border: solid 3px white;
|
||||||
|
@ -14,6 +11,26 @@ overrides leaflet
|
||||||
&.leaflet-control-layers-toggle {
|
&.leaflet-control-layers-toggle {
|
||||||
background: url('img/burger.png');
|
background: url('img/burger.png');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
+.leaflet-control-layers {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.leaflet-control-layers-list {
|
||||||
|
label {
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: var(--button-border);
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.leaflet-control-attribution {
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 0.7rem !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Styles pour les contrôles de couches */
|
/* Styles pour les contrôles de couches */
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#searchLocation {
|
#searchLocation {
|
||||||
width: 88%;
|
width: 93%;
|
||||||
|
padding: 0.8rem 3rem;
|
||||||
padding: 10px;
|
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
border: 1px solid var(--button-border);
|
border: 1px solid var(--button-border);
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
|
@ -13,26 +12,40 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#searchResults {
|
#searchResults {
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: -0.9rem;
|
||||||
|
margin-left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-color: var(--button-border);
|
height: 67%;
|
||||||
|
border-top: 1px;
|
||||||
|
|
||||||
|
option {
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 0.55rem;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: var(--button-border);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#searchButton {
|
#searchButton {
|
||||||
margin-left: -1rem;
|
margin-left: -1rem;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
position: absolute;
|
position: relative;
|
||||||
background: var(--link-color);
|
background: var(--link-color);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
height: 2.9rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
#count_features_fond {
|
#count_features_fond {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 1rem;
|
bottom: 4.5rem;
|
||||||
right: 1rem;
|
right: 10px;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
background: white;
|
background: white;
|
||||||
padding: 1rem;
|
padding: 0.85rem 1rem;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,4 +72,9 @@
|
||||||
.close-results-button {
|
.close-results-button {
|
||||||
border: 0;
|
border: 0;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
position: absolute;
|
||||||
|
left: -5px;
|
||||||
|
background: #ccc;
|
||||||
|
height: 2.8rem;
|
||||||
|
margin-top: -3.6rem;
|
||||||
}
|
}
|
|
@ -60,17 +60,22 @@ p {
|
||||||
border: solid 2px;
|
border: solid 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.stats-table {
|
||||||
|
|
||||||
table {
|
table {
|
||||||
tr {
|
width: 100% !important;
|
||||||
td {
|
|
||||||
border-bottom: #ccc 1px solid;
|
|
||||||
|
|
||||||
|
tr {
|
||||||
|
td {
|
||||||
|
padding-left: 1rem !important;
|
||||||
|
border-bottom: #ccc 1px solid;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
tr:nth-of-type(odd) {
|
tr:nth-of-type(odd) {
|
||||||
background: #dedede;
|
background: #dedede;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,7 +164,7 @@ img.leaflet-marker-icon.tag-socket\:type2_yes {
|
||||||
}
|
}
|
||||||
|
|
||||||
.side-panel button {
|
.side-panel button {
|
||||||
min-width: 2em;
|
min-width: 3em;
|
||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,7 +174,7 @@ img.leaflet-marker-icon.tag-socket\:type2_yes {
|
||||||
float: none;
|
float: none;
|
||||||
position: relative;
|
position: relative;
|
||||||
top: 5em;
|
top: 5em;
|
||||||
right: -7.9rem;
|
right: 0;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border: black;
|
border: black;
|
||||||
|
@ -177,6 +182,10 @@ img.leaflet-marker-icon.tag-socket\:type2_yes {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#fullDetails {
|
||||||
|
margin-top: -2rem;
|
||||||
|
}
|
||||||
|
|
||||||
button:hover {
|
button:hover {
|
||||||
background: var(--button-hover-background);
|
background: var(--button-hover-background);
|
||||||
border: solid 1px #08285c;
|
border: solid 1px #08285c;
|
||||||
|
@ -432,17 +441,18 @@ button+button {
|
||||||
|
|
||||||
#toggleSidePanel {
|
#toggleSidePanel {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 1rem;
|
top: 0.7rem;
|
||||||
right: 2rem;
|
right: 1rem;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
background: white;
|
background: #444;
|
||||||
padding: 1rem 2rem;
|
padding: 0.5rem 1rem;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
||||||
|
border-color: #555;
|
||||||
}
|
}
|
||||||
|
|
||||||
header {
|
header {
|
||||||
padding-left: 2rem;
|
padding-left: 1rem;
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -459,7 +469,7 @@ header {
|
||||||
top: 4.5rem;
|
top: 4.5rem;
|
||||||
width: 71.2vw;
|
width: 71.2vw;
|
||||||
border: 0;
|
border: 0;
|
||||||
height: 92.9vh;
|
height: 89.9vh;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -618,10 +628,14 @@ header {
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#count_features_fond {
|
||||||
|
border: solid 1px grey;
|
||||||
|
}
|
||||||
|
|
||||||
@include meta.load-css('_osmose.scss');
|
@include meta.load-css('_osmose.scss');
|
||||||
@include meta.load-css('_recherche.scss');
|
@include meta.load-css('_recherche.scss');
|
||||||
@include meta.load-css('_filters.scss');
|
@include meta.load-css('_filters.scss');
|
||||||
@include meta.load-css('_mobile.scss');
|
@include meta.load-css('_mobile.scss');
|
||||||
@include meta.load-css('_overrides.scss');
|
@include meta.load-css('_overrides.scss');
|
||||||
@include meta.load-css('_responsive.scss');
|
@include meta.load-css('_responsive.scss');
|
||||||
@include meta.load-css('_animations.scss');
|
@include meta.load-css('_animations.scss');
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
{"version":3,"sourceRoot":"","sources":["main.scss","_osmose.scss","_recherche.scss","_filters.scss","_mobile.scss","_overrides.scss","_animations.scss"],"names":[],"mappings":"CAIA,MACE,yBACA,mBACA,yBACA,8BACA,6BACA,mCACA,2BACA,mBACA,0BACA,oDACA,+BACA,uCACA,6BACA,iCACA,0BAGF,EACE,sBAGF,KACE,YACA,WACA,mCACA,UACA,SAGF,KACE,aACA,cACA,WACA,mCACA,UACA,SACA,UACA,SAGF,KACE,+CACA,eAGF,EACE,+CACA,iBAGF,KACE,YACA,WACA,SACA,iBAME,YACE,6BAKJ,0BACE,mBAKJ,QACE,aAGF,SACE,gBACA,wBACA,cACA,YACA,WACA,iBAGF,MACE,wBACA,yBACA,qBACA,kBACA,kCACA,mBACA,eACA,mBACA,WACA,gCAGF,OACE,iBACA,mBAGF,GACE,mBACA,kBAGF,uBACE,eACA,YACA,SACA,aACA,+BACA,SACA,WAEA,yBACE,eAIJ,8BACE,6BAGF,8CACE,4BACA,qBACA,iBAGF,8DAIE,oCACA,iBACA,kBACA,sBACA,sCACA,YAGF,gBACE,SACA,kBACA,WAEA,oBACE,WACA,YAIJ,mBACE,cACA,mBAGF,iBACE,gBACA,oBACA,WACA,kBACA,QACA,cAEA,uBACE,YACA,mBAIJ,aACE,0CACA,yBACA,eAGF,aAOE,gBANA,mBACE,0CACA,yBACA,eAMJ,WACE,WAGF,gBACE,GACE,uBAGF,KACE,0BAIJ,EACE,wBAGF,wBACE,aACA,mCAGF,eACE,eACA,MACA,OACA,WACA,gBACA,eAEA,mBACE,eACA,WACA,YACA,gBACA,mBACA,WACA,YACA,kCACA,WAIJ,QACE,eACA,cAGF,uBACE,gBACA,qBACA,qBAGF,eACE,WACA,cACA,cACA,gBACA,gBACA,gBACA,iBAGF,WACE,UACA,qBAGF,aACE,UACA,iBACA,qBACA,mBAGF,gBACE,oBAGF,MACE,WAGF,kBACE,aACA,mBACA,cACA,kBACA,UACA,WACA,2BACA,YACA,eACA,eACA,YAIF,SACE,4CACA,iBACA,gBAEA,WACE,gCAQJ,aACE,kBAGF,wBACE,mBACA,qBACA,WACA,YACA,gBAGF,eACE,8CAGF,gCACE,mBAGF,4DAEE,mBAGF,6DAEE,mBAGF,6DAEE,mBAGF,6DAEE,mBAGF,6DAEE,mBAGF,yBACE,gBAGF,OACE,eACA,cACA,gBAGF,KACE,WACA,iBACA,oCACA,WAGF,YACE,gBACA,cACA,WACA,cAGF,UACE,WACA,YACA,UAGF,cACE,kBAGF,gBACE,mBACA,gBACA,qBACA,mBACA,eAIF,aACE,eAGF,cACE,iBAGF,+BACE,wBAGF,oBACE,gBACA,gBAGF,YACE,eACA,eACA,OACA,MACA,WACA,YACA,gBACA,qCACA,gBACA,kBACA,qBACA,aACA,kBACA,WACA,WAGF,iBACE,eACA,SACA,WACA,WACA,gBACA,kBACA,kBACA,oCAGF,OACE,kBACA,WAIA,6BACE,mBACA,WACA,4BACA,YAGF,sBACE,mBACA,WACA,aACA,SACA,cAIJ,aACE,WAGF,aACE,eACA,YACA,SACA,2BACA,0CACA,kBACA,kBACA,oCACA,kBACA,WACA,iDACA,4CAGF,OACE,gBACA,eACA,WAEA,UACE,WACA,iBACA,gBAGF,WACE,WACA,kBAIJ,KACE,UACA,YAGF,iBACE,iBAGF,gBACE,oBACA,mBACA,uBACA,eACA,eACA,gCAEA,sBACE,yBAIJ,aACE,eACA,aACA,WACA,YAEA,6BACE,mBACA,oBAOF,SACE,mBACA,mBACA,YACA,UACA,gBACA,qBACA,kBAGF,eACE,UAIA,qBACE,UACA,mCAKN,uBACE,gBACA,cAGF,eACE,eACA,kBACA,iBACA,oCACA,kBACA,yBAGF,oBACE,kBACA,aAGF,qBACE,kBACA,WACA,YACA,yBACA,4BACA,yBACA,aACA,mBACA,uBACA,kCACA,sBAMA,8BACE,YACA,wBACA,WACA,eACA,uCACA,iBAIJ,YACE,eACA,WACA,YACA,cACA,SACA,aACA,gBAGF,OACE,gBCzmBF,+CACE,mCACA,yBAGF,gBACE,iBACA,WAGF,yBACE,iBACA,gBACA,cACA,YACA,yBACA,kBAGF,eACE,WACA,yBAEA,kCACE,sBAGF,kBACE,gBACA,eAGF,8BACE,iBACA,WAKJ,gBACE,gBACA,aACA,sBACA,QAEA,kBACE,iBACA,qBACA,kBACA,kBAEA,wBACE,WAIJ,kCACE,yBACA,WC1DJ,gBACE,UAEA,aACA,mBACA,sCACA,kBAGF,eACE,kBACA,iBAGF,eACE,WACA,kCAGF,cACE,kBACA,aACA,UACA,kBACA,6BACA,kBAGF,qBACE,eACA,YACA,WACA,WACA,gBACA,aACA,kBAGF,uBACE,aACA,eAEA,6BACE,aACA,mBACA,QAGF,4CACE,SASJ,sBACE,SACA,kBCjDA,sBACE,UACA,WACA,kBAIJ,0BACE,WACA,YACA,gBACA,kBAGF,cACE,gBACA,WAcF,cACE,cACA,aACA,mBACA,kBACA,oCAEA,iBACE,mBACA,MA7CS,QA8CT,eAGF,oBAtBA,aACA,mBAuBE,cACA,eApBF,wBAsBE,kBACA,aAEA,0BACE,WAxDK,QA4DT,mCACE,kBACA,UACA,eACA,SACA,QAGF,+BACE,kBACA,qBACA,WACA,YACA,gBACA,yBACA,kBACA,kBA9CF,wBAiDE,2CACE,4DAIJ,4DACE,WAxFY,QAyFZ,aAzFY,QA0FZ,+BAEA,mEACE,WACA,kBACA,SACA,QACA,UACA,YACA,kBACA,yBACA,wBAIJ,iBACE,cACA,SACA,WACA,mBAGF,mBACE,eACA,MAjHS,QAgCX,0BAqFA,+BACE,kCAIA,6DACE,WAzHK,QA0HL,aAzHW,QA0HX,mBAGF,kEACE,MA9HW,QA+HX,mBAMN,uBACE,GACE,mBAGF,IACE,qBAGF,KACE,oBCtJJ,yBACE,UACE,YACA,iBAGF,cACE,gBAGF,YACE,kBACA,MACA,WAGF,iBACE,eACA,UACA,YACA,WACA,mBACA,mBACA,kBACA,oCACA,SACA,eAOF,6BACE,gBACA,eACA,qCACA,SACA,YAGF,mBACE,eAGF,2BAEE,SACA,OACA,MACA,YACA,YACA,YAIF,OACE,gBAGF,aACE,gBAGF,sBACE,SACA,kBACA,gCACA,SACA,kBACA,YACA,aACA,eAIJ,qBACE,sBC1EF,+BACE,iBAGF,qBACE,sBAIA,sDACE,iCAMF,oCACE,wOACA,qBACA,+BACA,4BACA,6BAEA,mEACE,sBACA,WACA,mBAGF,2CACE,gBACA,gBACA,eAIJ,uCACE,yOACA,qBACA,+BACA,4BACA,6BAEA,sEACE,sBACA,WACA,mBAGF,8CACE,kBACA,gBACA,eAMN,wBAyBE,gBACA,YACA,kBACA,oCA1BE,mEACE,qDACA,qCACA,sCACA,uCACA,sBACA,uBAKF,sEACE,oDACA,qCACA,sCACA,uCACA,oCACA,sBACA,uBClFN,0BACE,GACE,sBAGF,IACE,0BAGF,IACE,uBAGF,IACE,uBAGF,IACE,uBAGF,IACE,0BAGF,KACE,uBAIJ,kBAEE,QAEE,uCAGF,IACE","file":"style.css"}
|
{"version":3,"sourceRoot":"","sources":["main.scss","_osmose.scss","_recherche.scss","_filters.scss","_mobile.scss","_overrides.scss","_animations.scss"],"names":[],"mappings":"CAIA,MACE,yBACA,mBACA,yBACA,8BACA,6BACA,mCACA,2BACA,mBACA,0BACA,oDACA,+BACA,uCACA,6BACA,iCACA,0BAGF,EACE,sBAGF,KACE,YACA,WACA,mCACA,UACA,SAGF,KACE,aACA,cACA,WACA,mCACA,UACA,SACA,UACA,SAGF,KACE,+CACA,eAGF,EACE,+CACA,iBAGF,KACE,YACA,WACA,SACA,iBAKA,mBACE,sBAGE,yBACE,6BACA,6BAKJ,uCACE,mBAMN,QACE,aAGF,SACE,gBACA,wBACA,cACA,YACA,WACA,iBAGF,MACE,wBACA,yBACA,qBACA,kBACA,kCACA,mBACA,eACA,mBACA,WACA,gCAGF,OACE,iBACA,mBAGF,GACE,mBACA,kBAGF,uBACE,eACA,YACA,SACA,aACA,+BACA,SACA,WAEA,yBACE,eAIJ,8BACE,6BAGF,8CACE,4BACA,qBACA,iBAGF,8DAIE,oCACA,iBACA,kBACA,sBACA,sCACA,YAGF,gBACE,SACA,kBACA,WAEA,oBACE,WACA,YAIJ,mBACE,cACA,mBAGF,iBACE,gBACA,oBACA,WACA,kBACA,QACA,QAEA,uBACE,YACA,mBAIJ,aACE,iBAGF,aACE,0CACA,yBACA,eAGF,aAOE,gBANA,mBACE,0CACA,yBACA,eAMJ,WACE,WAGF,gBACE,GACE,uBAGF,KACE,0BAIJ,EACE,wBAGF,wBACE,aACA,mCAGF,eACE,eACA,MACA,OACA,WACA,gBACA,eAEA,mBACE,eACA,WACA,YACA,gBACA,mBACA,WACA,YACA,kCACA,WAIJ,QACE,eACA,cAGF,uBACE,gBACA,qBACA,qBAGF,eACE,WACA,cACA,cACA,gBACA,gBACA,gBACA,iBAGF,WACE,UACA,qBAGF,aACE,UACA,iBACA,qBACA,mBAGF,gBACE,oBAGF,MACE,WAGF,kBACE,aACA,mBACA,cACA,kBACA,UACA,WACA,2BACA,YACA,eACA,eACA,YAIF,SACE,4CACA,iBACA,gBAEA,WACE,gCAQJ,aACE,kBAGF,wBACE,mBACA,qBACA,WACA,YACA,gBAGF,eACE,8CAGF,gCACE,mBAGF,4DAEE,mBAGF,6DAEE,mBAGF,6DAEE,mBAGF,6DAEE,mBAGF,6DAEE,mBAGF,yBACE,gBAGF,OACE,eACA,cACA,gBAGF,KACE,WACA,iBACA,oCACA,WAGF,YACE,gBACA,cACA,WACA,cAGF,UACE,WACA,YACA,UAGF,cACE,kBAGF,gBACE,mBACA,gBACA,qBACA,mBACA,eAIF,aACE,eAGF,cACE,iBAGF,+BACE,wBAGF,oBACE,gBACA,gBAGF,YACE,eACA,eACA,OACA,MACA,WACA,YACA,gBACA,qCACA,gBACA,kBACA,qBACA,aACA,kBACA,WACA,WAGF,iBACE,eACA,UACA,WACA,WACA,gBACA,mBACA,kBACA,oCACA,kBAGF,OACE,kBACA,WAIA,6BACE,mBACA,WACA,4BACA,YAGF,sBACE,mBACA,WACA,aACA,SACA,cAIJ,aACE,WAGF,aACE,eACA,YACA,SACA,2BACA,0CACA,kBACA,kBACA,oCACA,kBACA,WACA,iDACA,4CAGF,OACE,gBACA,eACA,WAEA,UACE,WACA,iBACA,gBAGF,WACE,WACA,kBAIJ,KACE,UACA,YAGF,iBACE,iBAGF,gBACE,oBACA,mBACA,uBACA,eACA,eACA,gCAEA,sBACE,yBAIJ,aACE,eACA,aACA,WACA,YAEA,6BACE,mBACA,oBAOF,SACE,mBACA,mBACA,YACA,UACA,gBACA,qBACA,kBAGF,eACE,UAIA,qBACE,UACA,mCAKN,uBACE,gBACA,cAGF,eACE,eACA,kBACA,iBACA,oCACA,kBACA,yBAGF,oBACE,kBACA,aAGF,qBACE,kBACA,WACA,YACA,yBACA,4BACA,yBACA,aACA,mBACA,uBACA,kCACA,sBAMA,8BACE,YACA,wBACA,WACA,eACA,uCACA,iBAIJ,YACE,eACA,WACA,YACA,cACA,SACA,aACA,gBAGF,OACE,gBAGF,qBACE,sBCvnBF,+CACE,mCACA,yBAGF,gBACE,iBACA,WAGF,yBACE,iBACA,gBACA,cACA,YACA,yBACA,kBAGF,eACE,WACA,yBAEA,kCACE,sBAGF,kBACE,gBACA,eAGF,8BACE,iBACA,WACA,UAKJ,gBACE,gBACA,aACA,sBACA,QAEA,kBACE,iBACA,qBACA,kBACA,kBAEA,wBACE,WAIJ,kCACE,yBACA,WC3DJ,gBACE,UACA,mBACA,mBACA,sCACA,kBAGF,eACE,kBACA,iBAGF,eACE,qBACA,mBACA,cACA,WACA,WACA,eAEA,sBACE,eACA,eAEA,4BACE,sCAKN,cACE,kBACA,aACA,UACA,kBACA,6BACA,kBACA,cAGF,qBACE,eACA,cACA,WACA,WACA,gBACA,oBACA,kBAGF,uBACE,aACA,eAEA,6BACE,aACA,mBACA,QAGF,4CACE,SASJ,sBACE,SACA,kBACA,kBACA,UACA,gBACA,cACA,mBCnEA,sBACE,UACA,WACA,kBAIJ,0BACE,WACA,YACA,gBACA,kBAGF,cACE,gBACA,WAcF,cACE,cACA,aACA,mBACA,kBACA,oCAEA,iBACE,mBACA,MA7CS,QA8CT,eAGF,oBAtBA,aACA,mBAuBE,cACA,eApBF,wBAsBE,kBACA,aAEA,0BACE,WAxDK,QA4DT,mCACE,kBACA,UACA,eACA,SACA,QAGF,+BACE,kBACA,qBACA,WACA,YACA,gBACA,yBACA,kBACA,kBA9CF,wBAiDE,2CACE,4DAIJ,4DACE,WAxFY,QAyFZ,aAzFY,QA0FZ,+BAEA,mEACE,WACA,kBACA,SACA,QACA,UACA,YACA,kBACA,yBACA,wBAIJ,iBACE,cACA,SACA,WACA,mBAGF,mBACE,eACA,MAjHS,QAgCX,0BAqFA,+BACE,kCAIA,6DACE,WAzHK,QA0HL,aAzHW,QA0HX,mBAGF,kEACE,MA9HW,QA+HX,mBAMN,uBACE,GACE,mBAGF,IACE,qBAGF,KACE,oBCtJJ,yBACE,UACE,YACA,iBAGF,cACE,gBAGF,eAEE,qBACA,kBAEA,mBACA,oBACA,YACA,WACA,WACA,eAIF,YACE,kBACA,MACA,WAGF,iBACE,eACA,UACA,YACA,WACA,mBACA,mBACA,kBACA,oCACA,SACA,eAOF,6BACE,gBACA,eACA,qCACA,SACA,YAGF,mBACE,eAGF,2BAEE,SACA,OACA,MACA,YACA,YACA,YAIF,OACE,gBAGF,aACE,gBAGF,sBACE,SACA,kBACA,gCACA,SAEA,kBACA,YACA,WACA,cACA,WAIF,qBAEE,iBC1FJ,qBACE,sBAIA,sDACE,iCAGF,gDACE,aAKF,mCACE,eAEA,yCACE,sCACA,WAKN,6BACE,aACA,2BAKA,oCACE,wOACA,qBACA,+BACA,4BACA,6BAEA,mEACE,sBACA,WACA,mBAGF,2CACE,gBACA,gBACA,eAIJ,uCACE,yOACA,qBACA,+BACA,4BACA,6BAEA,sEACE,sBACA,WACA,mBAGF,8CACE,kBACA,gBACA,eAMN,wBAyBE,gBACA,YACA,kBACA,oCA1BE,mEACE,qDACA,qCACA,sCACA,uCACA,sBACA,uBAKF,sEACE,oDACA,qCACA,sCACA,uCACA,oCACA,sBACA,uBCnGN,0BACE,GACE,sBAGF,IACE,0BAGF,IACE,uBAGF,IACE,uBAGF,IACE,uBAGF,IACE,0BAGF,KACE,uBAIJ,kBAEE,QAEE,uCAGF,IACE","file":"style.css"}
|
Loading…
Add table
Add a link
Reference in a new issue