(function () {
"use strict";
function setupRetyreSubmenus() {
var menu = document.querySelector(
"body.et_header_style_fullscreen #mobile_menu_slide"
);
if (!menu) return;
/* Find submenu parents by their actual child lists,
rather than relying only on WordPress menu classes. */
menu.querySelectorAll("li").forEach(function (item, index) {
var submenu = Array.from(item.children).find(function (child) {
return child.matches("ul.sub-menu, ul.children");
});
if (!submenu) return;
var link = Array.from(item.children).find(function (child) {
return child.tagName === "A";
});
if (!link) return;
if (!submenu.id) {
submenu.id = "rx-submenu-" + index;
}
var button = Array.from(item.children).find(function (child) {
return child.classList.contains("rx-submenu-toggle");
});
if (!button) {
button = document.createElement("button");
button.type = "button";
button.className = "rx-submenu-toggle";
button.setAttribute("aria-controls", submenu.id);
button.setAttribute("aria-label", "Toggle submenu");
button.setAttribute("aria-expanded", "false");
item.appendChild(button);
}
/* Do not allow initialization to reset an already-open submenu. */
var isOpen = item.classList.contains("rx-submenu-open");
button.setAttribute("aria-expanded", String(isOpen));
submenu.setAttribute("aria-hidden", String(!isOpen));
});
}
/* One delegated handler supports arrows added after page load too. */
document.addEventListener("click", function (event) {
var button = event.target.closest(".rx-submenu-toggle");
if (!button) return;
var menu = button.closest("#mobile_menu_slide");
if (!menu) return;
event.preventDefault();
event.stopPropagation();
var item = button.parentElement;
var submenu = Array.from(item.children).find(function (child) {
return child.matches("ul.sub-menu, ul.children");
});
if (!submenu) return;
var opening = !item.classList.contains("rx-submenu-open");
/* Close only this item's submenu. Other open branches remain open. */
item.classList.toggle("rx-submenu-open", opening);
button.setAttribute("aria-expanded", String(opening));
submenu.setAttribute("aria-hidden", String(!opening));
button.setAttribute(
"aria-label",
(opening ? "Hide" : "Show") + " submenu for " +
((Array.from(item.children).find(function (child) {
return child.tagName === "A";
}) || {}).textContent || "menu item").trim()
);
}, true);
function initialise() {
setupRetyreSubmenus();
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initialise);
} else {
initialise();
}
/* Divi may rebuild its fullscreen menu when it opens. */
var observer = new MutationObserver(function () {
setupRetyreSubmenus();
});
function observeMenu() {
if (document.body) {
observer.observe(document.body, {
childList: true,
subtree: true
});
setupRetyreSubmenus();
}
}
if (document.body) {
observeMenu();
} else {
document.addEventListener("DOMContentLoaded", observeMenu, {
once: true
});
}
})();