function formatElementImageFigure()

in harness/app-assets/templates/assets/js/bootstraps/common.js [121:158]


    function formatElementImageFigure(figure) {
        var caption = figure.getElementsByClassName('element-image__caption')[0],
            captionIcon = figure.getElementsByClassName('figure__caption__icon')[0],
            desiredImageHeight,
            isThumbnail = figure.classList.contains('element--thumbnail'),
            imageClass = isThumbnail && caption ? 'figure--thumbnail-with-caption' : (isThumbnail ? 'figure--thumbnail' : 'figure-wide'),
            imageOrLinkedImage = figure.children[0],
            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);

            // only set imageWrapper height to desired height of thumbnails/wide images on non-minute layouts
            if (!GU.opts.isMinute && (isThumbnail || imageClass === 'figure-wide')) {
                desiredImageHeight = getDesiredImageHeight(figure);
                if (desiredImageHeight) {
                    imageWrapper.style.height = desiredImageHeight + 'px';
                }
                window.addEventListener('resize', GU.util.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;
        }
    }