/** * Declarative modal triggers. * * The only modal entry point is AksrtModalRuntime. Triggers carry an * explicit URL and never create a second modal implementation. * * @package AKSRT */ (function (window, document) { "use strict"; function openFromTrigger(element) { var runtime = window.AksrtModalRuntime; var url = element.getAttribute("data-aksrt-modal-url") || ""; if (!url || url === "#") return; var ttl = parseInt(element.getAttribute("data-aksrt-modal-cache-ttl") || "15000", 10); var tags = (element.getAttribute("data-aksrt-modal-cache-tags") || "").split(",").map(function (tag) { return tag.trim(); }).filter(Boolean); runtime.openRemote({ url: url, method: element.getAttribute("data-aksrt-modal-method") || "GET", className: element.getAttribute("data-aksrt-modal-class") || "modal-mini full-sm", height: parseInt(element.getAttribute("data-aksrt-modal-height") || "0", 10) || 0, mobileBottom: element.getAttribute("data-aksrt-modal-mobile-bottom") === "true", bottom: element.getAttribute("data-aksrt-modal-bottom") === "true", kind: element.getAttribute("data-aksrt-modal-kind") || "generic", cacheKey: element.getAttribute("data-aksrt-modal-cache-key") || "", cacheTtl: ttl > 0 ? ttl : 15000, cacheTags: tags, }); } document.addEventListener("click", function (event) { var trigger = event.target.closest('[data-aksrt-modal="remote"]'); if (!trigger) return; event.preventDefault(); openFromTrigger(trigger); }); })(window, document);