// assets/app.js
import 'bootstrap';
import * as bootstrap from 'bootstrap';

function getLang()
{
    if (window.location.href.indexOf("/de/") > -1) {
        return 'de'
    }

    if (window.location.href.indexOf("/en/") > -1) {
        return 'en'
    }

    if (window.location.href.indexOf("/es/") > -1) {
        return 'es'
    }
    if (window.location.href.indexOf("/ru/") > -1) {
        return 'ru'
    }
    return 'de';
}

const popoverContent = `
    <div class="popover-body">
        <p>{{ 'lang.text' | trans }}</p>
        <div class="display-flex-center">
            <a href="/${getLang()}/price">
                <button class="button button-gradient display-flex-center">{{ 'lang.updatePlan' | trans }}</button>
            </a>
        </div>
    </div>
`;


document.addEventListener('DOMContentLoaded', function () {
    const popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
    const popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
        return new bootstrap.Popover(popoverTriggerEl)
    })


    const popoverButtons = [
        'contactPopoverButton',
        'uploadPopoverButton',
        'roleUserPopoverButton',
        'importPopoverButton',
        'settingsPopoverButton',
        'validInputPopoverButton',
        'chooseUserInputPopoverButton'
    ];

    popoverButtons.forEach(buttonId => {
        const buttonElement = document.getElementById(buttonId);
        if (buttonElement) {
            // Initialize Bootstrap Popover
            const popover = new bootstrap.Popover(buttonElement, {
                html: true,
                // content: popoverContent,
                sanitize: false
            });

            document.addEventListener('click', function (e: MouseEvent) {
                const target = e.target as Node;
                if (!buttonElement.contains(target) && !document.querySelector('.popover')?.contains(target)) {
                    popover.hide();
                }
            });
        }
    });
});
