window.masonry = function (e, index, curIndex, el) {
const masonryItem = el.querySelector("[data-bl-name='MasonryItems']");
if (!masonryItem) {
return;
}
function shuffle(a) {
for (let i = a.length; i; i--) {
const j = Math.floor(Math.random() * i);
[a[i - 1], a[j]] = [a[j], a[i - 1]];
}
return a;
}
function loadMasonry() {
const Masonry = window.Masonry;
const imagesLoaded = window.imagesLoaded;
imagesLoaded(masonryItem, function () {
let options = {
itemSelector: ".bl-grid-cell",
percentPosition: true,
};
if (masonryItem.dataset.random == "true") {
options.initLayout = false;
const msnry = new Masonry(masonryItem, options);
shuffle(msnry.items);
msnry.layout();
} else {
new Masonry(masonryItem, options);
}
});
}
if (window.Masonry && window.imagesLoaded) {
loadMasonry();
} else {
Promise.all([
bond.loadScript(
"https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js"
),
bond.loadScript(
"https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"
),
]).then(loadMasonry);
}
};