HEX
Server: Apache/2.4.65 (Debian)
System: Linux localhost 6.9.12 #1 SMP Tue May 5 14:23:20 UTC 2026 x86_64
User: www-data (33)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/themes/enfold/config-rank-math/rank-math-mod.js
(function ($)
{
    var aviaBuilder = $('#avia_builder');

    if (aviaBuilder.is('.avia-hidden'))
    {
        return;
    }

    var aviaParsedContent = "";
    var aviaRankMathAttachmentsIDs = [];
    var aviaRankMathAttachmentsData = [];
    var aviaRankMathAllowedShortcodes = ["av_heading", "av_icon_box", "av_image", "av_image_hotspot", "av_slideshow", "av_fullscreen", "av_slideshow_full", "av_slideshow_accordion", "av_gallery", "av_horizontal_gallery", "av_masonry_gallery"];

    var aviaRankMath = window.rankMath;
    var aviaWordPress = window.wp;

    var aviaBuilderShortcodeField = aviaBuilder.find('#_aviaLayoutBuilderCleanData');

    if (aviaRankMath.currentEditor == 'classic' || aviaRankMath.currentEditor == 'gutenberg')
    {
        setTimeout(function ()
        {
            avia_tranform_builder_content();
        }, 100);

        $('body').on('avia_rank_math_content_parsed', function ()
        {
            aviaWordPress.hooks.addFilter('rank_math_content', 'rank-math', avia_rank_math_content, 11);
        });

        $('#aviaLayoutBuilder').on('avia-storage-update avia-history-update', function ()
        {
            avia_tranform_builder_content();

            setTimeout(function ()
            {
                window.rankMathEditor.refresh('content');
            }, 100);
        });
    }

    function avia_rank_math_content()
    {
        return aviaParsedContent;
    }


    function avia_get_builder_content()
    {
        var builderData = aviaBuilderShortcodeField.val();

        return builderData;
    }


    function avia_get_builder_shortcodes()
    {
        var builderContent = avia_get_builder_content();
        var builderShortcodes = builderContent.split('\n\n').slice(0, -1);

        return builderShortcodes;
    }


    function avia_tranform_builder_content()
    {
        aviaParsedContent = "";

        var builderShortcodes = avia_get_builder_shortcodes();

        builderShortcodes.map(function (shortcode, i)
        {
            aviaParsedContent += avia_transform_shortcode(shortcode);
        });

        if (aviaRankMathAttachmentsIDs.length === 0)
        {
            $('body').trigger('avia_rank_math_content_parsed');
        } else
        {
            return avia_fetch_attachments(aviaRankMathAttachmentsIDs).then(function (attachments)
            {
                aviaParsedContent = avia_replace_attachments(attachments, aviaParsedContent);

                $('body').trigger('avia_rank_math_content_parsed');
            });
        }
    }


    function avia_transform_shortcode(shortcode)
    {
        if (aviaWordPress.shortcode == undefined)
        {
            return "";
        }

        var element = aviaWordPress.shortcode.attrs(shortcode);
        var shortcodeTag = avia_clean_shortcode_name(element.numeric[0]);
        var shortcodeContent = "";

        if (aviaRankMathAllowedShortcodes.includes(shortcodeTag))
        {
            var context = element;

            switch (shortcodeTag)
            {
                case "av_horizontal_gallery":
                case "av_masonry_gallery":
                    shortcodeTag = "gallery";
                    break;
                case "av_image_hotspot":
                    shortcodeTag = "image";
                    break;
                case "av_slideshow":
                case "av_slideshow_full":
                case "av_fullscreen":
                case "av_slideshow_accordion":
                    shortcodeTag = "slideshow";
                    context = shortcode;
                    break;
                default:
                    break;
            }

            var transform = eval("avia_transform_" + shortcodeTag.replace("av_", ""));

            shortcodeContent = transform(context);
        } else
        {
            shortcodeContent = shortcode + "\n\n";
        }

        return shortcodeContent;
    }


    function avia_transform_image(element)
    {
        var imageAtts = element.named;
        var imageTag = avia_clean_shortcode_name(element.numeric[0]);

        avia_push_attachment_ids(aviaRankMathAttachmentsIDs, imageAtts.attachment);

        return "<img class='" + imageTag + "' src='" + imageAtts.src + "' alt='IMAGE_ALT_PLACEHOLDER_" + imageAtts.attachment + "' />\n\n";
    }


    function avia_transform_heading(element)
    {
        return "<" + element.named.tag + ">" + element.named.heading + "</" + element.named.tag + ">\n\n";
    }


    function avia_transform_icon_box(element)
    {
        var iconBoxAtts = element.named;
        var iconBoxTag = avia_clean_shortcode_name(element.numeric[0]);
        var iconBoxheadingTag = iconBoxAtts.heading_tag ? iconBoxAtts.heading_tag : "h3";
        var iconBoxTitle = iconBoxAtts.title ? iconBoxAtts.title : "";
        var iconBoxHeading = "\t<" + iconBoxheadingTag + ">" + iconBoxTitle + "</" + iconBoxheadingTag + ">\n";
        var iconBoxContent = "\t<p>" + avia_extract_shortcode_content(element.numeric) + "<p>\n";

        return "<div class='" + iconBoxTag + "'>\n" + iconBoxHeading + iconBoxContent + "</div>\n\n";
    }


    function avia_transform_gallery(element)
    {
        var galleryTag = avia_clean_shortcode_name(element.numeric[0]);
        var galleryAtts = element.named;
        var galleryItems = galleryAtts.ids.split(',');
        var galleryContent = "";

        if (galleryTag == "av_masonry_gallery")
        {
            if (galleryAtts.size !== "flex")
            {
                return "<div class='" + galleryTag + "'></div>\n\n";
            }
        }

        for (let i = 0; i < galleryItems.length; i++)
        {
            var galleryItemID = galleryItems[i];

            avia_push_attachment_ids(aviaRankMathAttachmentsIDs, galleryItemID);

            galleryContent += "\t<img src='IMAGE_URL_PLACEHOLDER_" + galleryItemID + "' alt='IMAGE_ALT_PLACEHOLDER_" + galleryItemID + "' />\n";
        }

        return "<div class='" + galleryTag + "'>\n" + galleryContent + "</div>\n\n";
    }


    function avia_transform_slideshow(shortcode)
    {
        var slider = aviaWordPress.shortcode.attrs(shortcode);
        var sliderTag = avia_clean_shortcode_name(slider.numeric[0]);
        var slideElTag = avia_get_slideshow_item_tag(sliderTag);
        var slideRegExp = aviaWordPress.shortcode.regexp(slideElTag);
        var sliderItems = shortcode.match(slideRegExp);
        var sliderContent = "";

        if (sliderItems == null)
        {
            return "<div class='" + sliderTag + "'>\n</div>\n\n";;
        }

        for (let i = 0; i < sliderItems.length; i++)
        {
            var slideEl = aviaWordPress.shortcode.attrs(sliderItems[i]);
            var slideAtts = slideEl.named;
            var slideID = slideAtts.id ? slideAtts.id : slideEl.numeric[1].match(/([^id='(\D)'$])\w+/g)[0];
            var slideHeadingTag = slideAtts.heading_tag == "" ? "h2" : slideAtts.heading_tag;
            var slideHeading = slideAtts.title == "" || slideAtts.title == undefined ? "" : "\t<" + slideHeadingTag + ">" + slideAtts.title + "</" + slideHeadingTag + ">\n";

            avia_push_attachment_ids(aviaRankMathAttachmentsIDs, slideID);

            sliderContent += "\t<div class='" + slideElTag + "'>\n\t" + slideHeading + "\t\t<img src='IMAGE_URL_PLACEHOLDER_" + slideID + "' alt='IMAGE_ALT_PLACEHOLDER_" + slideID + "' />\n\t</div>\n";
        }

        return "<div class='" + sliderTag + "'>\n" + sliderContent + "</div>\n\n";
    }

    function avia_get_slideshow_item_tag(slideshow)
    {
        var slideTag = "av_slide";

        switch (slideshow)
        {
            case "av_slideshow_full":
                slideTag = "av_slide_full"
                break;
            case "av_fullscreen":
                slideTag = "av_fullscreen_slide";
                break;
            case "av_slideshow_accordion":
                slideTag = "av_slide_accordion";
                break;
            default:
                break;
        }

        return slideTag;
    }


    function avia_push_attachment_ids(attachments, attachment_id)
    {
        // prevents attachment duplicates
        if (!attachments.includes(attachment_id))
        {
            attachments.push(attachment_id);
        }
    }


    function avia_replace_attachments(attachments)
    {
        attachments.map(function (attachment, i)
        {
            aviaParsedContent = aviaParsedContent.replaceAll("IMAGE_URL_PLACEHOLDER_" + attachment.id, attachment.url);
            aviaParsedContent = aviaParsedContent.replaceAll("IMAGE_ALT_PLACEHOLDER_" + attachment.id, attachment.alt);
        });

        return aviaParsedContent;
    }


    function avia_fetch_attachments(attachmentIDs)
    {
        aviaRankMathAttachmentsIDs = [];

        return new Promise((resolve, reject) =>
        {
            if (wp.media)
            {
                wp.media.query({ post__in: attachmentIDs })
                    .more()
                    .then(function ()
                    {
                        aviaRankMathAttachmentsData = [];

                        for (let i = 0; i < attachmentIDs.length; i++)
                        {
                            aviaRankMathAttachmentsData.push(
                                avia_get_attachment(wp.media.attachment(attachmentIDs[i]))
                            );
                        }

                        resolve(aviaRankMathAttachmentsData);
                    });

            } else
            {
                resolve(aviaRankMathAttachmentsData);
            }
        });
    }


    function avia_get_attachment(attachment)
    {
        return {
            id:  attachment.get("id"),
            url: attachment.get("url"),
            alt: attachment.get("alt")
        }
    }


    function avia_create_dummy_alt_text(element)
    {
        var altText = "";
        var focusKeywords = aviaRankMath.variables.keywords.example.split(',');

        focusKeywords.map(function (keyWord, i)
        {
            var separator = i + 1 === focusKeywords.length ? "" : " ";

            if (element.numeric.includes(keyWord))
            {
                altText += keyWord + separator;
            }
        });

        return altText;
    }


    function avia_clean_shortcode_name(element_name)
    {
        return element_name.replace("[", "");
    }


    function avia_extract_shortcode_content(element_content)
    {
        var filtered_content = element_content.filter(function (value, index, arr)
        {
            return [0, 1, element_content.length - 1].includes(index) == false;
        });

        return filtered_content.join(" ");
    }
})(jQuery);