import loadScript from 'discourse/lib/load-script'; import { escapeExpression } from 'discourse/lib/utilities'; export default function($elem) { if (!$elem) { return; } loadScript("/javascripts/jquery.magnific-popup.min.js").then(function() { const spoilers = $elem.find('.spoiler a.lightbox, .spoiled a.lightbox'); $elem.find('a.lightbox').not(spoilers).magnificPopup({ type: "image", closeOnContentClick: false, removalDelay: 300, mainClass: "mfp-zoom-in", gallery: { enabled: true }, callbacks: { open() { const wrap = this.wrap, img = this.currItem.img, maxHeight = img.css("max-height"); wrap.on("click.pinhandler", "img", function() { wrap.toggleClass("mfp-force-scrollbars"); img.css("max-height", wrap.hasClass("mfp-force-scrollbars") ? "none" : maxHeight); }); }, beforeClose() { this.wrap.off("click.pinhandler"); this.wrap.removeClass("mfp-force-scrollbars"); } }, image: { titleSrc(item) { const href = item.el.data("download-href") || item.src; let src = [escapeExpression(item.el.attr("title")), $("span.informations", item.el).text().replace('x', '×')]; if (!Discourse.SiteSettings.prevent_anons_from_downloading_files || Discourse.User.current()) { src.push('' + I18n.t("lightbox.download") + ''); } return src.join(' · '); } } }); }); }