Current File : /home/pacjaorg/wpt.pacja.org/km/components/com_sppagebuilder/assets/js/addons/image.js |
(() => {
'use strict';
const processImageShapes = (currentDocument = document, isProcessOnLoad = false) => {
const wrapperElements = currentDocument?.querySelectorAll('.sppb-addon-image-shape');
wrapperElements.forEach((wrapperElement) => {
const path = wrapperElement.querySelector('svg path');
const image = wrapperElement.querySelector('img');
if (!image || !path) {
return;
}
const updateSVGStyle = (image) => {
const dataScale = image.getAttribute('data-scale') || 1;
const translateX = image.width / 2;
const translateY = image.height / 2;
path.setAttribute('transform', 'translate(' + translateX + ',' + translateY + ') scale(' + dataScale + ')');
image.style.visibility = null;
}
if (isProcessOnLoad) {
image.onload = () => {
updateSVGStyle(image);
}
return;
}
updateSVGStyle(image);
})
}
document.addEventListener('DOMContentLoaded', function () {
processImageShapes(document, false);
document.getElementById('sp-pagebuilder-view')?.addEventListener('load', () => {
const pageBuilderIframe = window.frames['sp-pagebuilder-view'];
if (!pageBuilderIframe) {
return;
}
const container = pageBuilderIframe?.window.document.getElementById('sp-pagebuilder-container');
if (container) {
processImageShapes(container, true);
const config = { attributes: true, childList: true, subtree: true };
const observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.type === 'childList' || mutation.type === 'subtree') {
if (mutation.target === container || container.contains(mutation.target)) {
processImageShapes(container, true);
}
}
});
});
observer.observe(container, config);
}
})
});
})();