import { loadLuckyBox } from "./quickmenu/lucky-box.js"; import { loadEvents } from "./quickmenu/events.js"; import { loadHeroBonus } from "./quickmenu/hero-bonus.js"; import { loadSealedLeague } from "./quickmenu/sealed-league.js"; import { loadSummoner } from "./quickmenu/summoner.js"; import { loadOnlinebonus } from "./quickmenu/onlinebonus.js"; import { loadActions } from "./quickmenu/actions.js"; import { loadBazaar } from "./quickmenu/bazaar.js"; import { loadBoosterAction } from "./quickmenu/booster-action.js"; import { loadBoosterHunt } from "./quickmenu/booster-hunt.js"; /* Popup-ID → Loader Funktion */ const popupLoaders = { "qm-popup-glucksbox": loadLuckyBox, "qm-popup-events": loadEvents, "qm-popup-heldenbonus": loadHeroBonus, "qm-popup-sealedliga": loadSealedLeague, "qm-popup-beschwoerer": loadSummoner, "qm-popup-onlinebonus": loadOnlinebonus, "qm-popup-aktionen": loadActions, "qm-popup-basar": loadBazaar, "qm-popup-boosteraktion": loadBoosterAction, "qm-popup-boosterjagd": loadBoosterHunt, }; /* ================================ 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(); });