import './bootstrap.js'; // Stimulus

import './vendor/bootstrap/dist/css/bootstrap.min.css'; // Bootstrap
import './vendor/leaflet.markercluster/dist/MarkerCluster.min.css'; // Leaflet clusters
import './vendor/leaflet/dist/leaflet.min.css'; // Leaflet
import './styles/app.css'; // Nos personnalisations

import { Tooltip } from './vendor/bootstrap/bootstrap.index.js';
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new Tooltip(tooltipTriggerEl))

// Implémente une sécurité basique pour confirmer le clic sur tous les boutons
// qui emènent sur une adresse web susceptible de supprimer quelque-chose…
document.addEventListener('click', function (event) {
    if (event.target.matches('a[href*="remove"]')) {
        if (!confirm(event.target.innerText + ' ?')) {
            event.preventDefault();
            return false;
        }
    }
});

// /!\ https://wiki.openstreetmap.org/wiki/Google#Google_Maps_terms_of_use
document.addEventListener('keydown', function (event) {
    if (event.ctrlKey) {
        document.body.classList.add('yolo-balek');
    }
}, false);
document.addEventListener('keyup', function (event) {
    if (event.key === 'Control') {
        document.body.classList.remove('yolo-balek');
    }
}, false);

// Affiche les accesskeys quand on appuie sur Alt
document.addEventListener('keydown', function (event) {
    if (event.key === 'Alt') {
        document.querySelectorAll('main [accesskey]').forEach(function (element) {
            const tooltip = Tooltip.getOrCreateInstance(element, {
                'title': element.getAttribute('accesskey'),
                'trigger': 'manual',
            });
            tooltip.show();
        });
    }
}, false);
document.addEventListener('keyup', function (event) {
    if (event.key === 'Alt') {
        document.querySelectorAll('main [accesskey]').forEach(function (element) {
            const tooltip = Tooltip.getInstance(element);
            tooltip.hide();
        });
    }
}, false);

