import { loadGlucksbox } from "./quickmenu/glucksbox.js"; import { loadEvents } from "./quickmenu/events.js"; import { loadHeldenbonus } from "./quickmenu/heldenbonus.js"; import { loadSealedliga } from "./quickmenu/sealedliga.js"; import { loadBeschwoerer } from "./quickmenu/beschwoerer.js"; import { loadOnlinebonus } from "./quickmenu/onlinebonus.js"; import { loadAktionen } from "./quickmenu/aktionen.js"; import { loadBasar } from "./quickmenu/basar.js"; import { loadBoosteraktion } from "./quickmenu/boosteraktion.js"; import { loadBoosterjagd } from "./quickmenu/boosterjagd.js"; /* Popup-ID → Loader Funktion */ const popupLoaders = { "qm-popup-glucksbox": loadGlucksbox, "qm-popup-events": loadEvents, "qm-popup-heldenbonus": loadHeldenbonus, "qm-popup-sealedliga": loadSealedliga, "qm-popup-beschwoerer": loadBeschwoerer, "qm-popup-onlinebonus": loadOnlinebonus, "qm-popup-aktionen": loadAktionen, "qm-popup-basar": loadBasar, "qm-popup-boosteraktion": loadBoosteraktion, "qm-popup-boosterjagd": loadBoosterjagd, }; /* ================================ Quick Menu – Toggle ================================ */ const toggleBtn = document.getElementById("quickmenu-toggle"); const panel = document.getElementById("quickmenu-panel"); const overlay = document.getElementById("qm-overlay"); let menuOpen = true; toggleBtn.addEventListener("click", () => { menuOpen = !menuOpen; panel.classList.toggle("hidden", !menuOpen); toggleBtn.textContent = menuOpen ? "\u25c4" : "\u25ba"; }); /* ================================ Quick Menu – Popups öffnen ================================ */ document.querySelectorAll(".qm-slot").forEach((slot) => { slot.addEventListener("click", () => { const id = slot.dataset.popup; if (!id) return; const popup = document.getElementById(id); if (!popup) return; // Popup zurück zur Mitte setzen popup.style.transform = "translate(-50%, -50%) scale(1)"; popup.style.left = "50%"; popup.style.top = "50%"; overlay.classList.add("active"); popup.classList.add("active"); // Zugehörigen Loader aufrufen const loader = popupLoaders[id]; if (loader) loader(); }); }); /* ================================ Quick Menu – Popups verschiebbar ================================ */ document.querySelectorAll(".qm-popup").forEach((popup) => { const header = popup.querySelector(".qm-popup-header"); if (!header) return; let isDragging = false; let startX, startY, startLeft, startTop; header.style.cursor = "grab"; header.addEventListener("mousedown", (e) => { if (e.target.classList.contains("qm-popup-close")) return; isDragging = true; header.style.cursor = "grabbing"; const rect = popup.getBoundingClientRect(); startX = e.clientX; startY = e.clientY; startLeft = rect.left; startTop = rect.top; // transform zurücksetzen auf konkrete px-Werte popup.style.transform = "none"; popup.style.left = startLeft + "px"; popup.style.top = startTop + "px"; e.preventDefault(); }); document.addEventListener("mousemove", (e) => { if (!isDragging) return; popup.style.left = (startLeft + (e.clientX - startX)) + "px"; popup.style.top = (startTop + (e.clientY - startY)) + "px"; }); document.addEventListener("mouseup", () => { if (!isDragging) return; isDragging = false; header.style.cursor = "grab"; }); }); /* ================================ Quick Menu – Popups schließen ================================ */ document.querySelectorAll(".qm-popup-close").forEach((btn) => { btn.addEventListener("click", closeAllPopups); }); overlay.addEventListener("click", closeAllPopups); function closeAllPopups() { document.querySelectorAll(".qm-popup").forEach((p) => { p.classList.remove("active"); }); overlay.classList.remove("active"); } document.addEventListener("keydown", (e) => { if (e.key === "Escape") closeAllPopups(); });