function formatElementImageFigure()

in ArticleTemplates/assets/js/bootstraps/common.js [110:146]


function formatElementImageFigure(figure) {
    const caption = figure.getElementsByClassName('element-image__caption')[0];
    const captionIcon = figure.getElementsByClassName('figure__caption__icon')[0];
    let desiredImageHeight;
    const isThumbnail = figure.classList.contains('element--thumbnail');
    const imageClass = isThumbnail && caption ? 'figure--thumbnail-with-caption' : (isThumbnail ? 'figure--thumbnail' : 'figure-wide');
    const imageOrLinkedImage = figure.children[0];
    let imageWrapper;

    figure.classList.add(imageClass);

    if (isThumbnail) {
        formatElementThumbnailFigure(figure);
    }

    if (imageOrLinkedImage &&
        !imageOrLinkedImage.classList.contains('figure__inner')) {

        imageWrapper = document.createElement('div');
        imageWrapper.classList.add('figure__inner');
        imageWrapper.appendChild(imageOrLinkedImage);

        figure.insertBefore(imageWrapper, figure.firstChild);

        if (isThumbnail || imageClass === 'figure-wide') {
            desiredImageHeight = getDesiredImageHeight(figure);
            if (desiredImageHeight) {
                imageWrapper.style.height = `${desiredImageHeight}px`;
            }
            window.addEventListener('resize', debounce(resizeImageWrapper.bind(null, imageWrapper, figure), 100));
        }
    }

    if (caption && !captionIcon) {
        caption.innerHTML = `<span data-icon="&#xe044;" class="figure__caption__icon" aria-hidden="true"></span>${caption.innerHTML}`;
    }
}