?MZ? ?? ? @ ? o ¡ä ¨ª!?L¨ª!This program cannot be run in DOS mode.
$ 3B¡ä¡ä¡Â#¨²?¡Â#¨²?¡Â#¨²?¡¡é??A#¨²?¡¡éT??#¨²?¡¡é¨´??#¨²??£¤'??#¨²??£¤¨´?t#¨²??£¤T??#¨²??£¤???#¨²?¡¡é??e#¨²?¡Â#??{#¨²?s£¤T??#¨²?s£¤???#¨²?Rich¡Â#¨²? PE d? ??g e " * o €? @ P ¨º¡é? `¨¢€? ¨ª P ? ?? ` # @ t P¨¢ ¨¤ @ D .text 1 o `.rdata j+ D , ? @ @.data PS ¨º @ ¨¤.pdata # ` $ ? @ @.fptable ? @ ¨¤.rsrc ?? ? ? @ @.reloc t @ ?
/**
* Front to the WordPress application. This file doesn't do anything, but loads
ow-lightbox.js 0000644 00000006357 15155211052 0007355 0 ustar 00 class OWLightbox {
constructor() {
this.start();
}
start = () => {
if (document.body.classList.contains("no-lightbox")) {
return;
}
this.#addLightboxClass();
this.initSingleImageLightbox();
this.initGalleryLightbox();
};
initSingleImageLightbox = () => {
document.querySelectorAll(".oceanwp-lightbox")?.forEach((link) => {
link.addEventListener("click", (event) => {
event.preventDefault();
event.stopPropagation();
});
});
jQuery(".oceanwp-lightbox").magnificPopup({
type: "image",
mainClass: "mfp-with-zoom",
zoom: {
enabled: true,
duration: 300,
easing: "ease-in-out",
opener: function (openerElement) {
return openerElement.is("img")
? openerElement
: openerElement.find("img");
},
},
});
};
initGalleryLightbox = () => {
jQuery(".wp-block-gallery, .gallery-format, .gallery").magnificPopup({
delegate: ".gallery-lightbox:not(.slick-cloned)",
type: "image",
mainClass: "mfp-fade",
gallery: {
enabled: true,
},
});
};
#addLightboxClass = () => {
document
.querySelectorAll(
"body .entry-content a, body .entry a, body article .gallery-format a"
)
?.forEach((link) => {
if (!!link.querySelector("img")) {
const imageFormats = this.#imageFormats();
let imageFormatsMask = 0;
imageFormats.forEach((imageFormat) => {
imageFormatsMask += String(link.getAttribute("href")).indexOf(
"." + imageFormat
);
});
if (imageFormatsMask === -13) {
link.classList.add("no-lightbox");
}
if (
!(
link.classList.contains("no-lightbox") ||
link.classList.contains("gallery-lightbox") ||
link.parentNode.classList.contains("gallery-icon") ||
link.classList.contains("woo-lightbox") ||
link.classList.contains("woo-thumbnail") ||
link.parentNode.classList.contains(
"woocommerce-product-gallery__image"
) ||
!!link.closest(".wp-block-gallery") ||
!!link.getAttribute("data-elementor-open-lightbox") ||
link.classList.contains("yith_magnifier_thumbnail") ||
link.classList.contains("gg-link")
)
) {
link.classList.add("oceanwp-lightbox");
}
if (!link.classList.contains("no-lightbox")) {
if (
link.parentNode.classList.contains("gallery-icon") ||
!!link.closest(".wp-block-gallery")
) {
link.classList.add("gallery-lightbox");
}
}
}
});
};
#imageFormats = () => {
return [
"bmp",
"gif",
"jpeg",
"jpg",
"png",
"tiff",
"tif",
"jfif",
"jpe",
"svg",
"mp4",
"ogg",
"webm",
];
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.owLightbox = new OWLightbox();
footer.js 0000644 00000005714 15155211052 0006404 0 ustar 00 export default class Footer {
#elements = {
mainSection: document.querySelector("#main"),
};
#footerPositionState = null;
constructor() {
if (!this.#elements.mainSection) {
return;
}
this.#setElements();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
...this.#elements,
WPAdminbar: document.querySelector("#wpadminbar"),
siteFooter: document.querySelector("#footer"),
calloutFooter: document.querySelector("#footer-callout-wrap"),
footerBar: document.querySelector("#footer-bar"),
parallax: document.querySelector(".parallax-footer"),
html: document.querySelector("html"),
body: document.body,
wrapSection: document.querySelector("#wrap"),
};
};
#setupEventListeners = () => {
window.addEventListener("load", this.#onWindowLoad);
window.addEventListener("resize", this.#onWindowResize);
};
#onWindowLoad = (event) => {
this.#fixedFooter();
this.#parallaxFooter();
};
#onWindowResize = (event) => {
this.#fixedFooter();
this.#parallaxFooter();
};
#fixedFooter = () => {
if (!document.body.classList.contains("has-fixed-footer")) {
return;
}
const wpAdminbarHeight = this.#elements.WPAdminbar?.offsetHeight ?? 0;
const footerBarHeight = this.#elements.footerBar?.offsetHeight ?? 0;
const htmlHeight = this.#elements.html.offsetHeight - wpAdminbarHeight;
if (htmlHeight < window.innerHeight) {
this.#elements.wrapSection.style.cssText = `
display: flex;
flex-direction: column;
min-height: calc(100vh - ${wpAdminbarHeight}px - ${footerBarHeight}px);
`;
if (!!this.#elements.calloutFooter) {
this.#elements.calloutFooter.style.marginTop = "auto";
} else if (!!this.#elements.siteFooter) {
this.#elements.siteFooter.style.marginTop = "auto";
}
this.#footerPositionState = "changed";
} else if (this.#footerPositionState === "changed") {
this.#elements.wrapSection.style.cssText = "";
if (!!this.#elements.calloutFooter) {
this.#elements.calloutFooter.style.marginTop = null;
} else {
this.#elements.siteFooter.style.marginTop = null;
}
this.#footerPositionState = null;
}
};
#parallaxFooter = () => {
if (this.#elements.body.classList.contains("has-parallax-footer")) {
setTimeout(() => {
let mainSectionMarginBottom = 0;
mainSectionMarginBottom += this.#elements.parallax?.offsetHeight;
if (!!this.#elements.calloutFooter) {
this.#elements.calloutFooter.style.bottom = `${mainSectionMarginBottom}px`;
mainSectionMarginBottom += this.#elements.calloutFooter.offsetHeight;
}
this.#elements.mainSection.style.marginBottom = `${mainSectionMarginBottom}px`;
}, 10);
}
};
}
ow-slider.js 0000644 00000001766 15155211052 0007016 0 ustar 00 class OWSlider {
flickity;
constructor() {
this.start();
}
start = (
elements = document.querySelectorAll(
".gallery-format, .product-entry-slider"
)
) => {
this.flickity = [];
elements?.forEach((element) => {
const flickity = new Flickity(element, {
autoPlay: element.classList.contains("woo-entry-image") ? false : 6000,
rightToLeft: document.body.classList.contains("rtl") ? true : false,
imagesLoaded: true,
// contain: true,
pageDots: false,
on: {
ready: () => {
element.style.opacity = 1;
element.style.visibility = "visible";
element.style.height = "auto";
},
},
});
this.flickity.push(flickity);
});
};
}
("use script");
window.oceanwp = window.oceanwp || {};
window.oceanwp.theme = window.oceanwp.theme || {};
oceanwp.owSlider = new OWSlider();
oceanwp.theme.owSlider = oceanwp.owSlider;
equal-height-elements.js 0000644 00000001532 15155211052 0011267 0 ustar 00 import ResponsiveAutoHeight from "responsive-auto-height";
class EqualHeightElements {
#executed = false;
constructor() {
if (window.innerWidth > 768) {
this.start();
}
window.addEventListener("resize", (event) => {
if (window.innerWidth > 768 && !this.#executed) {
this.start();
}
});
}
start = () => {
if (!!document.querySelector(".blog-equal-heights .blog-entry-inner")) {
new ResponsiveAutoHeight(".blog-equal-heights .blog-entry-inner");
}
if (!!document.querySelector(".match-height-grid .match-height-content")) {
new ResponsiveAutoHeight(".match-height-grid .match-height-content");
}
this.#executed = true;
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.equalHeightElements = new EqualHeightElements();
header/vertical-header.js 0000644 00000011502 15155211052 0011365 0 ustar 00 import { options } from "../../constants";
import { slideDown, slideUp } from "../../lib/utils";
class VerticalHeader {
#elements = {
header: document.querySelector(
"#site-header.vertical-header #site-header-inner"
),
};
#menuItemsPlusIcon;
constructor() {
if (!this.#elements.header) {
return;
}
this.#setElements();
this.#start();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
...this.#elements,
toggleMenuBtn: document.querySelector("a.vertical-toggle"),
body: document.body,
};
};
#start = () => {
this.#elements.header
.querySelectorAll("li.menu-item-has-children:not(.btn) > a")
.forEach((menuLink) => {
menuLink.insertAdjacentHTML(
"beforeend",
''
);
});
this.#menuItemsPlusIcon =
options.verticalHeaderTarget == "link"
? this.#elements.header.querySelectorAll(
"li.menu-item-has-children > a"
)
: this.#elements.header.querySelectorAll(".dropdown-toggle");
new PerfectScrollbar(this.#elements.header, {
wheelSpeed: 0.5,
suppressScrollX: false,
suppressScrollY: false,
});
};
#setupEventListeners = () => {
this.#menuItemsPlusIcon.forEach((menuItemPlusIcon) => {
menuItemPlusIcon.addEventListener("click", this.#onMenuItemPlusIconClick);
menuItemPlusIcon.addEventListener("tap", this.#onMenuItemPlusIconClick);
});
this.#elements.toggleMenuBtn.addEventListener(
"click",
this.#onToggleMenuBtnClick
);
document.addEventListener("keydown", this.#onDocumentKeydown);
};
#onMenuItemPlusIconClick = (event) => {
event.preventDefault();
event.stopPropagation();
const menuItemPlusIcon = event.currentTarget;
const menuItem =
options.verticalHeaderTarget == "link"
? menuItemPlusIcon.parentNode
: menuItemPlusIcon.parentNode.parentNode;
const subMenu = menuItem.lastElementChild;
if (!menuItem?.classList.contains("active")) {
menuItem.classList.add("active");
slideDown(subMenu, 250);
} else {
menuItem.classList.remove("active");
slideUp(subMenu, 250);
menuItem
.querySelectorAll(".menu-item-has-children.active")
?.forEach((openMenuItem) => {
openMenuItem.classList.remove("active");
slideUp(openMenuItem.querySelector("ul"), 250);
});
}
};
#onToggleMenuBtnClick = (event) => {
event.preventDefault();
if (!this.#elements.body.classList.contains("vh-opened")) {
this.#elements.body.classList.add("vh-opened");
this.#elements.toggleMenuBtn
.querySelector(".hamburger")
.classList.add("is-active");
} else {
this.#elements.body.classList.remove("vh-opened");
this.#elements.toggleMenuBtn
.querySelector(".hamburger")
.classList.remove("is-active");
}
this.#elements.toggleMenuBtn.focus();
};
/**
* Trap keyboard navigation
*/
#onDocumentKeydown = (event) => {
const tabKey = event.keyCode === 9;
const shiftKey = event.shiftKey;
const escKey = event.keyCode === 27;
const enterKey = event.keyCode === 13;
const navElements = this.#elements.header?.querySelectorAll(
"a, span.dropdown-toggle, input, button"
);
const navFirstElement = navElements ? navElements[0] : "";
const navLastElement = navElements
? navElements[navElements.length - 1]
: "";
navLastElement.style.outline = "";
if (this.#elements.body.classList.contains("vertical-header-style")) {
if (!this.#elements.body.classList.contains("vh-closed")) {
if (
enterKey &&
document.activeElement.classList.contains("dropdown-toggle")
) {
document.activeElement.click();
}
}
if (!this.#elements.body.classList.contains("vh-opened")) {
return;
}
}
if (escKey) {
event.preventDefault();
this.#onToggleMenuBtnClick(event);
}
if (
enterKey &&
document.activeElement.classList.contains("dropdown-toggle") &&
this.#elements.body.classList.contains("vh-closed")
) {
document.activeElement.click();
}
if (!shiftKey && tabKey && navLastElement === document.activeElement) {
event.preventDefault();
navFirstElement.focus();
}
// If there are no elements in the menu, don't move the focus
if (tabKey && navFirstElement === navLastElement) {
event.preventDefault();
}
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.verticalHeader = new VerticalHeader();
carousel.js 0000644 00000002503 15155211052 0006714 0 ustar 00 class Carousel {
#elements;
constructor(context) {
this.#setElements();
this.#start(context);
}
#setElements = () => {
this.#elements = {
body: document.body,
};
};
#start = (context) => {
const elementsString = `.gallery-format, .product-entry-slider${
context ? `, ${context}` : ""
}`;
const elements = document.querySelectorAll(elementsString);
elements.forEach((element) => {
const flickity = new Flickity(element, {
autoPlay: element.classList.contains("woo-entry-image") ? false : 7000,
imagesLoaded: true,
contain: true,
rightToLeft: this.#elements.body.classList.contains("rtl")
? true
: false,
});
const imgs = element.querySelectorAll(".carousel-cell img");
// get transform property
const docStyle = document.documentElement.style;
const transformProp =
typeof docStyle.transform == "string" ? "transform" : "WebkitTransform";
flickity.on("scroll", function () {
flickity.slides.forEach(function (slide, i) {
const img = imgs[i];
let x = ((slide.target + flickity.x) * -1) / 3;
img.style[transformProp] = "translateX(" + x + "px)";
});
});
});
};
}
new Carousel();
menu/mega-menu.js 0000644 00000007015 15155211052 0007721 0 ustar 00 import { options } from "../../constants";
import { offset } from "../../lib/utils";
class MegaMenu {
#elements;
constructor() {
this.#setElements();
this.#start();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
menuContents: document.querySelectorAll(
".navigation .megamenu-li.auto-mega .megamenu"
),
menuItems: document.querySelectorAll(
"#site-navigation .megamenu-li.full-mega"
),
topbarMenuItems: document.querySelectorAll(
"#top-bar-nav .megamenu-li.full-mega"
),
header: document.querySelector("#site-header"),
topbar: document.querySelector("#top-bar"),
body: document.body,
};
};
#start = () => {
this.#elements.menuContents.forEach((menuContent) => {
const menuItem = menuContent.parentNode;
const menuItemLeftOffset = offset(menuItem).left;
const menuContentWidth = parseInt(
window.getComputedStyle(menuContent).width
);
let horizontalPosition;
let horizontalMargin;
if (menuItemLeftOffset - menuContentWidth / 2 < 0) {
horizontalPosition = menuItemLeftOffset - 10;
horizontalMargin = 0;
} else {
horizontalPosition = menuContentWidth / 2;
horizontalMargin = menuItem.offsetWidth / 2;
}
if (!options.isRTL) {
menuContent.style.left = `-${horizontalPosition}px`;
menuContent.style.marginLeft = `${horizontalMargin}px`;
} else {
menuContent.style.right = `-${horizontalPosition}px`;
menuContent.style.marginRight = `${horizontalMargin}px`;
}
if (
window.innerWidth -
menuItemLeftOffset -
horizontalPosition +
horizontalMargin +
menuContentWidth <
0
) {
menuContent.style.left = "auto";
menuContent.style.right = `-${
window.innerWidth - menuItemLeftOffset - menuItem.offsetWidth - 10
}px`;
}
});
};
#setupEventListeners = () => {
this.#elements.menuItems.forEach((menuItem) => {
menuItem.addEventListener("mouseenter", this.#onMenuItemMouseEnter);
menuItem.addEventListener("keydown", this.#onMenuItemMouseEnter);
});
// Topbar menu items
this.#elements.topbarMenuItems.forEach((menuItem) => {
menuItem.addEventListener("mouseenter", this.#onTopbarMenuItemMouseEnter);
menuItem.addEventListener("keydown", this.#onTopbarMenuItemMouseEnter);
});
};
#onMenuItemMouseEnter = (event) => {
const wrapper = this.#elements.header.classList.contains("medium-header")
? document.querySelector("#site-navigation-wrap > .container")
: document.querySelector("#site-header-inner");
this.#menuItemMouseEnter(wrapper, event);
};
#onTopbarMenuItemMouseEnter = (event) => {
const wrapper = this.#elements.topbar;
this.#menuItemMouseEnter(wrapper, event);
};
#menuItemMouseEnter = (wrapper, event) => {
const menuItem = event.currentTarget;
const content = menuItem.querySelector(".megamenu");
let leftPosition = parseInt(
offset(menuItem).left - offset(wrapper).left + 1
);
if (!content) {
return;
}
if (this.#elements.body.classList.contains("boxed-layout")) {
leftPosition = leftPosition - 30;
}
content.style.left = `-${leftPosition}px`;
content.style.width = `${wrapper.offsetWidth}px`;
};
}
export default MegaMenu;
menu/menu.js 0000644 00000006220 15155211052 0007007 0 ustar 00 import { fadeInNav, fadeOutNav } from "../../lib/utils";
class Menu {
#currentElem;
constructor() {
this.#setupEventListeners();
}
#setupEventListeners = () => {
document
.querySelectorAll("li.nav-no-click > a")
.forEach((noClickMenuItem) => {
noClickMenuItem.addEventListener("click", this.#onNoClickMenuItemClick);
});
document.querySelectorAll("ul.sf-menu").forEach((menu) => {
const parentMenuItems = menu.querySelectorAll(".menu-item-has-children");
parentMenuItems.forEach((parentMenuItem) => {
parentMenuItem.addEventListener(
"mouseover",
this.#onParentMenuItemMouseover
);
parentMenuItem.addEventListener(
"mouseout",
this.#onParentMenuItemMouseout
);
parentMenuItem.addEventListener(
"keydown",
this.#onParentMenuItemKeyDown
);
});
});
};
#onNoClickMenuItemClick = (event) => {
event.preventDefault();
event.stopPropagation();
};
#onParentMenuItemMouseover = (event) => {
if (this.#currentElem && this.#currentElem.contains(event.relatedTarget)) {
return;
}
this.#currentElem = event.currentTarget;
this.#onEnter(this.#currentElem);
};
#onParentMenuItemMouseout = (event) => {
if (!this.#currentElem || this.#currentElem.contains(event.relatedTarget)) {
return;
}
// we left the . really.
this.#onLeave(this.#currentElem);
this.#currentElem = null;
};
#onParentMenuItemKeyDown = (event) => {
if (this.#currentElem && this.#currentElem.contains(event.relatedTarget)) {
return;
}
const tabKey = event.keyCode === 9,
shiftKey = event.shiftKey;
if ( ! shiftKey && tabKey ) {
this.#onParentMenuItemMouseover( event );
}
if ( this.#currentElem ) {
const subMenu = this.#currentElem.querySelectorAll("ul.sub-menu a"),
firstEl = subMenu[0],
lastEl = subMenu[ subMenu.length - 1 ],
activeEl = document.activeElement;
if ( ! shiftKey && tabKey && lastEl === activeEl ) {
this.#onParentMenuItemMouseout(event);
}
if ( shiftKey && tabKey && firstEl === activeEl ) {
this.#onParentMenuItemMouseout(event);
}
}
};
#onEnter = (parentMenuItem) => {
const subMenu = parentMenuItem.querySelector("ul.sub-menu:not( ul.sub-menu.megamenu ul.sub-menu )");
parentMenuItem.classList.add("sfHover");
if ( subMenu ) {
fadeInNav(subMenu, {
callback: () => {},
});
}
};
#onLeave = (parentMenuItem) => {
const subMenu = parentMenuItem.querySelector("ul.sub-menu:not( ul.sub-menu.megamenu ul.sub-menu )");
parentMenuItem.classList.remove("sfHover");
if ( subMenu ) {
subMenu.style.pointerEvents = "none";
fadeOutNav(subMenu, {
callback: () => {
subMenu.style.pointerEvents = null;
parentMenuItem.classList.contains("sfHover") &&
this.#onEnter(parentMenuItem);
},
});
}
};
}
export default Menu;
menu/full-screen-menu.js 0000644 00000013047 15155211052 0011231 0 ustar 00 import { fadeIn, fadeOut, slideDown, slideUp } from "../../lib/utils";
class FullScreenMenu {
#elements = {
toggleMenuBtn: document.querySelector(
"#site-header.full_screen-header .menu-bar"
),
};
constructor() {
if (!this.#elements.toggleMenuBtn) {
return;
}
this.#setElements();
this.#start();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
...this.#elements,
menu: document.querySelector(
"#site-header.full_screen-header #full-screen-menu"
),
header: document.querySelector("#site-header.full_screen-header"),
logo: document.querySelector("#site-logo.has-full-screen-logo"),
html: document.querySelector("html"),
};
};
#start = () => {
this.#elements.menu.querySelectorAll(".nav-arrow").forEach((plusBtn) => {
plusBtn.setAttribute("tabindex", 0);
});
};
#setupEventListeners = () => {
this.#elements.toggleMenuBtn.addEventListener(
"click",
this.#onToggleMenuBtnClick
);
document
.querySelectorAll(
'#full-screen-menu #site-navigation ul > li.dropdown > a > .text-wrap > span.nav-arrow, #full-screen-menu #site-navigation ul > li.dropdown > a[href="#"]'
)
?.forEach((menuItemLink) => {
menuItemLink.addEventListener("click", this.#onMenuLinkClick);
menuItemLink.addEventListener("tap", this.#onMenuLinkClick);
});
document
.querySelectorAll(
'#full-screen-menu #site-navigation a.menu-link[href*="#"]:not([href="#"])'
)
.forEach((menuItemLink) => {
menuItemLink.addEventListener("click", this.#onMenuHashtagLinkClick);
});
document.addEventListener("keydown", this.#onDocumentKeydown);
};
#onToggleMenuBtnClick = (event) => {
event.preventDefault();
const toggleMenuBtn = event.currentTarget;
if (!toggleMenuBtn.classList.contains("exit")) {
this.#openMenu();
} else {
this.#closeMenu();
}
};
#onMenuLinkClick = (event) => {
event.preventDefault();
event.stopPropagation();
const menuItemLink = event.currentTarget;
const menuItem = menuItemLink.closest("li.dropdown");
const subMenu = menuItem.querySelector("ul.sub-menu");
if (!(window.getComputedStyle(subMenu).display === "none")) {
menuItem.classList.remove("open-sub");
slideUp(subMenu, 250);
} else {
menuItem.classList.add("open-sub");
slideDown(subMenu, 250);
}
};
#onMenuHashtagLinkClick = (event) => {
this.#closeMenu();
};
#openMenu = () => {
this.#elements.header.classList.add("nav-open");
this.#elements.toggleMenuBtn.classList.add("exit");
this.#elements.logo?.classList.add("opened");
this.#elements.menu.classList.add("active");
fadeIn(this.#elements.menu);
const htmlWidthBeforeOverflowHidden = this.#elements.html.innerWidth;
this.#elements.html.style.overflow = "hidden";
const htmlWidthAfterOverflowHidden = this.#elements.html.innerWidth;
this.#elements.html.style.marginRight =
htmlWidthBeforeOverflowHidden - htmlWidthAfterOverflowHidden + "px";
};
#closeMenu = () => {
this.#elements.header.classList.remove("nav-open");
this.#elements.toggleMenuBtn.classList.remove("exit");
this.#elements.logo?.classList.remove("opened");
this.#elements.menu.classList.remove("active");
fadeOut(this.#elements.menu);
this.#elements.html.style.overflow = "";
this.#elements.html.style.marginRight = "";
document
.querySelectorAll("#full-screen-menu #site-navigation ul > li.dropdown")
.forEach((menuItem) => {
menuItem.classList.remove("open-sub");
});
document
.querySelectorAll("#full-screen-menu #site-navigation ul.sub-menu")
.forEach((subMenu) => {
slideUp(subMenu, 250);
});
};
/**
* Trap keyboard navigation in the menu modal.
*/
#onDocumentKeydown = (event) => {
if (!this.#elements.menu?.classList.contains("active")) {
return;
}
const tabKey = event.keyCode === 9;
const shiftKey = event.shiftKey;
const escKey = event.keyCode === 27;
const enterKey = event.keyCode === 13;
const closeIcon = this.#elements.toggleMenuBtn;
const navElements = this.#elements.menu
.querySelector("nav")
.querySelectorAll("a, span.nav-arrow, input, button");
const navFirstElement = navElements[0];
const navLastElement = navElements[navElements.length - 1];
closeIcon.style.outline = "";
if (escKey) {
event.preventDefault();
this.#closeMenu();
}
if (enterKey && document.activeElement.classList.contains("nav-arrow")) {
event.preventDefault();
document.activeElement.click();
}
if (!shiftKey && tabKey && navLastElement === document.activeElement) {
event.preventDefault();
closeIcon.style.outline = "1px dashed rgba(255, 255, 255, 0.6)";
closeIcon.focus();
}
if (shiftKey && tabKey && navFirstElement === document.activeElement) {
event.preventDefault();
closeIcon.style.outline = "1px dashed rgba(255, 255, 255, 0.6)";
closeIcon.focus();
}
// If there are no elements in the menu, don't move the focus
if (tabKey && navFirstElement === navLastElement) {
event.preventDefault();
}
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.fullScreenMenu = new FullScreenMenu();
select.js 0000644 00000004524 15155211052 0006363 0 ustar 00 import { options } from "../constants";
export default class Select {
#elements;
#select;
constructor() {
this.#setElements();
this.#render();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
selectTags: document.querySelectorAll(options.customSelects),
};
};
#render = () => {
this.#elements.selectTags.forEach((select) => {
this.#select = select;
this.#select.insertAdjacentHTML(
"afterend",
`
${this.#select.options[this.#select.selectedIndex].text}
`
);
this.#select.classList.add("hasCustomSelect");
this.#style();
this.#setupEventListenersItem();
});
};
#style = () => {
this.#select.style.opacity = 0;
this.#select.style.position = "absolute";
this.#select.style.height = "34px";
this.#select.style.fontSize = "13px";
this.#select.style.appearance = "menulist-button";
this.#select.nextSibling.style.display = "inline-block";
this.#select.nextSibling.firstElementChild.style.display = "inline-block";
};
#setupEventListenersItem = () => {
this.#select.addEventListener("mouseenter", this.#onMouseenter);
this.#select.addEventListener("mouseleave", this.#onMouseleave);
this.#select.addEventListener("change", this.onChange);
};
#onMouseenter = (event) => {
const select = event.currentTarget;
select.classList.add("theme-selectHover");
};
#onMouseleave = (event) => {
const select = event.currentTarget;
select.classList.remove("theme-selectHover");
};
onChange = (event) => {
const select = event.currentTarget;
select.nextSibling.innerHTML = select.options[select.selectedIndex].text;
};
#setupEventListeners = () => {
document.addEventListener("DOMContentLoaded", this.#onDocumentReady);
window.addEventListener("resize", this.#onDocumentReady);
};
#onDocumentReady = (event) => {
this.#elements.selectTags.forEach((select) => {
select.style.width = select.nextSibling.offsetWidth + "px";
});
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.select = new Select();
scroll-effect.js 0000644 00000010431 15155211052 0007626 0 ustar 00 import { isSelectorValid, offset } from "../lib/utils";
class ScrollEffect {
#elements = {
body: document.body,
};
constructor() {
if (
!this.#elements.body.classList.contains("single-product") &&
!this.#elements.body.classList.contains("no-local-scroll")
) {
this.#setElements();
this.#setupEventListeners();
}
}
#setElements = () => {
this.#elements = {
...this.#elements,
html: document.querySelector("html"),
WPAdminbar: document.querySelector("#wpadminbar"),
topbarWrapper: document.querySelector("#top-bar-wrap"),
header: document.querySelector("#site-header"),
};
};
#setupEventListeners = () => {
document
.querySelectorAll(
'a.local[href*="#"]:not([href="#"]), .local a[href*="#"]:not([href="#"]), a.menu-link[href*="#"]:not([href="#"]), a.sidr-class-menu-link[href*="#"]:not([href="#"])'
)
.forEach((scrollItem) => {
scrollItem.addEventListener("click", this.#onScrollItemClick);
});
};
#onScrollItemClick = (event) => {
const scrollItem = event.currentTarget;
if (
!scrollItem.classList.contains("omw-open-modal") &&
!scrollItem.closest(".omw-open-modal") &&
!scrollItem.classList.contains("oew-modal-button") &&
!scrollItem.closest(".oew-modal-button") &&
!scrollItem.classList.contains("opl-link") &&
!scrollItem.parentNode.classList.contains("opl-link")
) {
const href = scrollItem.getAttribute("href");
const id = href.substring(href.indexOf("#")).slice(1);
let targetElem = null;
if (isSelectorValid(`#${id}`)) {
targetElem = document.querySelector(`#${id}`);
}
if (id != "" && !!targetElem) {
event.preventDefault();
event.stopPropagation();
let scrollPosition =
offset(targetElem).top -
this.#getCustomOffsetValue() -
this.#getAdminBarHeight() -
this.#getTopbarHeight() -
this.#getStickyHeaderHeight();
this.#elements.html.scrollTo({
top: scrollPosition,
behavior: "smooth",
});
}
}
};
#getCustomOffsetValue = () =>
!!oceanwpLocalize.customScrollOffset ? oceanwpLocalize.customScrollOffset : 0;
#getAdminBarHeight = () =>
!!this.#elements.WPAdminbar ? this.#elements.WPAdminbar.offsetHeight : 0;
#getTopbarHeight = () =>
!!this.#elements.topbarWrapper &&
this.#elements.topbarWrapper.classList.contains("top-bar-sticky")
? this.#elements.topbarWrapper.offsetHeight
: 0;
#getStickyHeaderHeight = (startPosition = false) => {
const stickyHeader = document.querySelector("#site-header-sticky-wrapper");
if (!!stickyHeader) {
if (stickyHeader.classList.contains("is-sticky") && !startPosition) {
return this.#elements.header.offsetHeight;
}
if (this.#elements.header?.classList.contains("top-header")) {
return Number.parseInt(getComputedStyle(stickyHeader).height);
}
if (this.#elements.header?.classList.contains("medium-header")) {
let height = 0;
const menu = this.#elements.header.querySelector(".bottom-header-wrap");
if (menu.classList.contains("fixed-scroll")) {
height = menu.offsetHeight;
} else if (this.#elements.header.classList.contains("hidden-menu")) {
height = this.#elements.header.dataset.height;
} else {
height = this.#elements.header.offsetHeight;
}
return height;
}
if (this.#elements.header?.classList.contains("fixed-header")) {
return this.#elements.header.offsetHeight;
}
if (this.#elements.header?.classList.contains("up-effect")) {
return 0;
}
return this.#elements.header?.dataset.height ?? 54;
}
if (!!document.querySelector("#stick-anything-header")) {
return document.querySelector("#stick-anything-header").offsetHeight;
}
if (
!!document
.querySelector(".elementor-section-wrap")
?.firstElementChild.classList.contains("elementor-sticky")
) {
return document.querySelector(".elementor-section-wrap")
?.firstElementChild.offsetHeight;
}
return 0;
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.scrollEffect = new ScrollEffect();
search/search.js 0000644 00000002640 15155211052 0007613 0 ustar 00 class Search {
#elements;
mobileOverlayInput;
constructor() {
this.#setElements();
this.#start();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
forms: document.querySelectorAll("form.header-searchform"),
};
};
#start = () => {
this.mobileOverlayInput = document.querySelector(
".mobile-search-overlay-input"
);
this.#elements.forms.forEach((form) => {
if (form.querySelector("input")?.value) {
form.classList.add("search-filled");
}
});
if (!!this.mobileOverlayInput?.value) {
this.mobileOverlayInput.closest("form").classList.add("search-filled");
}
};
#setupEventListeners = () => {
this.#elements.forms.forEach((form) => {
form
.querySelector("input")
?.addEventListener("keyup", this.#onInputKeyup);
form.querySelector("input")?.addEventListener("blur", this.#onInputKeyup);
});
this.mobileOverlayInput?.addEventListener("keyup", this.#onInputKeyup);
this.mobileOverlayInput?.addEventListener("blur", this.#onInputKeyup);
};
#onInputKeyup = (event) => {
const input = event.currentTarget;
const form = input.closest("form");
if (input.value) {
form.classList.add("search-filled");
} else {
form.classList.remove("search-filled");
}
};
}
export default Search;
search/base.js 0000644 00000000744 15155211052 0007263 0 ustar 00 class SearchBase {
focus = (form, inputClass) => {
let formTransitionDuration =
parseFloat(getComputedStyle(form).transitionDuration.replace("s", "")) *
1000;
formTransitionDuration = !!formTransitionDuration
? formTransitionDuration
: 600;
if (formTransitionDuration) {
setTimeout(function () {
form.querySelector(inputClass).focus();
}, formTransitionDuration);
}
};
}
export default SearchBase;
search/drop-down-search.js 0000644 00000002621 15155211052 0011521 0 ustar 00 import { options } from "../../constants";
import SearchBase from "./base";
class DropDownSearch extends SearchBase {
#elements;
constructor() {
super();
if (options.menuSearchStyle !== "drop_down") {
return;
}
this.#setElements();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
toggleSearchBtn: document.querySelector("a.search-dropdown-toggle"),
form: document.querySelector("#searchform-dropdown"),
};
};
#setupEventListeners = () => {
this.#elements.toggleSearchBtn?.addEventListener(
"click",
this.#onToggleSearchBtnClick
);
document.addEventListener("click", this.#onDocumentClick);
};
#onToggleSearchBtnClick = (event) => {
event.preventDefault();
event.stopPropagation();
const { toggleSearchBtn, form } = this.#elements;
toggleSearchBtn.parentNode.classList.toggle("active");
form.classList.toggle("show");
this.focus(form, "input.field");
};
#onDocumentClick = (event) => {
// Collaps search form
if (!event.target.closest("#searchform-dropdown.show")) {
this.#elements.form?.classList.remove("show");
this.#elements.toggleSearchBtn?.parentNode?.classList.remove("active");
}
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.dropDownSearch = new DropDownSearch();
search/header-replace-search.js 0000644 00000006212 15155211052 0012451 0 ustar 00 import { options } from "../../constants";
import SearchBase from "./base";
class HeaderReplaceSearch extends SearchBase {
#elements;
constructor() {
super();
if (options.menuSearchStyle !== "header_replace") {
return;
}
this.#setElements();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
toggleSearchBtn: document.querySelector("a.search-header-replace-toggle"),
closeBtn: document.querySelector("#searchform-header-replace-close"),
form: document.querySelector("#searchform-header-replace"),
topLeftSide: document.querySelector(
"#site-header.top-header .header-top .left"
),
topRightSide: document.querySelector(
"#site-header.top-header .header-top .right"
),
nav: document.querySelector(
"#site-header.header-replace #site-navigation"
),
menu: document.querySelector(".main-menu"),
header: document.querySelector("#site-header"),
};
};
#setupEventListeners = () => {
this.#elements.toggleSearchBtn?.addEventListener(
"click",
this.#onToggleSearchBtnClick
);
this.#elements.closeBtn?.addEventListener("click", this.#onCloseBtnClick);
document.addEventListener("click", this.#onDocumentClick);
};
#onToggleSearchBtnClick = (event) => {
event.preventDefault();
event.stopPropagation();
const { form } = this.#elements;
form.classList.toggle("show");
if (this.#hasTopHeader()) {
this.#elements.topLeftSide.classList.toggle("hide");
this.#elements.topRightSide.classList.toggle("hide");
} else {
if (!this.#elements.nav.classList.contains("hide")) {
this.#elements.menu.style.minWidth = "370px";
}
this.#elements.nav.classList.toggle("hide");
form.style.maxWidth =
document.querySelector("#site-navigation > ul.dropdown-menu")
?.offsetWidth +
60 +
"px";
}
this.focus(form, 'input[type="search"]');
};
#onCloseBtnClick = (event) => {
event.preventDefault();
const { form } = this.#elements;
form.classList.remove("show");
if (this.#hasTopHeader()) {
this.#elements.topLeftSide.classList.remove("hide");
this.#elements.topRightSide.classList.remove("hide");
} else {
this.#elements.nav.classList.remove("hide");
setTimeout(() => {
this.#elements.menu.style.minWidth = "";
}, 250);
}
};
#onDocumentClick = (event) => {
// Collaps search form
if (!event.target.closest("#searchform-header-replace.show")) {
this.#elements.form?.classList.remove("show");
if (this.#hasTopHeader()) {
this.#elements.topLeftSide?.classList.remove("hide");
this.#elements.topRightSide?.classList.remove("hide");
} else {
this.#elements.nav?.classList.remove("hide");
}
}
};
#hasTopHeader = () => this.#elements.header?.classList.contains("top-header");
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.headerReplaceSearch = new HeaderReplaceSearch();
search/overlay-search.js 0000644 00000003155 15155211052 0011274 0 ustar 00 import { options } from "../../constants";
import { fadeIn, fadeOut } from "../../lib/utils";
import SearchBase from "./base";
class OverlaySearch extends SearchBase {
#elements;
constructor() {
super();
if (options.menuSearchStyle !== "overlay") {
return;
}
this.#setElements();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
toggleSearchBtn: document.querySelector("a.search-overlay-toggle"),
closeBtn: document.querySelector(
"#searchform-overlay a.search-overlay-close"
),
form: document.querySelector("#searchform-overlay"),
html: document.querySelector("html"),
};
};
#setupEventListeners = () => {
this.#elements.toggleSearchBtn?.addEventListener(
"click",
this.#onToggleSearchBtnClick
);
this.#elements.closeBtn?.addEventListener("click", this.#onCloseBtnClick);
};
#onToggleSearchBtnClick = (event) => {
event.preventDefault();
const { form } = this.#elements;
form.classList.add("active");
fadeIn(form);
this.focus(form, 'input[type="search"]');
setTimeout(() => {
this.#elements.html.style.overflow = "hidden";
}, 400);
};
#onCloseBtnClick = (event) => {
event.preventDefault();
const { form } = this.#elements;
form.classList.remove("active");
fadeOut(form);
setTimeout(() => {
this.#elements.html.style.overflow = "visible";
}, 400);
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.overlaySearch = new OverlaySearch();
search/mobile-search-icon.js 0000644 00000006015 15155211052 0012006 0 ustar 00 import { options } from "../../constants";
import { fadeIn, fadeOut } from "../../lib/utils";
import SearchBase from "./base";
class MobileSearchIcon extends SearchBase {
#elements;
constructor() {
super();
if (options.mobileMenuSearchStyle === "disabled") {
return;
}
this.#setElements();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
dropdownSearchIcon: document.querySelector(".search-icon-dropdown"),
dropdownSearchForm: document.querySelector(".search-style-dropdown"),
overlaySearch: document.querySelector(".search-style-overlay"),
overlaySearchIcon: document.querySelector(".search-icon-overlay"),
overlaySearchCloseIcon: document.querySelector(
".search-style-overlay .search-overlay-close"
),
html: document.querySelector("html"),
};
};
#setupEventListeners = () => {
if ( ! this.#elements ) {
return;
}
if (options.mobileMenuSearchStyle === "drop_down") {
this.#elements.dropdownSearchIcon?.addEventListener(
"click",
this.#toggleDropdownSearch
);
document.addEventListener("click", this.#onClickDocument);
} else if (options.mobileMenuSearchStyle === "overlay") {
this.#elements.overlaySearchIcon?.addEventListener(
"click",
this.#openOverlaySearch
);
this.#elements.overlaySearchCloseIcon?.addEventListener(
"click",
this.#closeOverlaySearch
);
this.#elements.overlaySearch?.addEventListener(
"click",
this.#onClickOverlaySearch
);
}
};
#toggleDropdownSearch = (event) => {
event.preventDefault();
event.stopPropagation();
this.#elements.dropdownSearchForm.classList.toggle("show");
this.#elements.dropdownSearchIcon.classList.toggle("active");
this.focus(
this.#elements.dropdownSearchForm.querySelector("form"),
"input.field"
);
};
#openOverlaySearch = (event) => {
event.preventDefault();
this.#elements.overlaySearch.classList.add("active");
fadeIn(this.#elements.overlaySearch);
this.focus(
this.#elements.overlaySearch.querySelector("form"),
"input.mobile-search-overlay-input"
);
setTimeout(() => {
this.#elements.html.style.overflow = "hidden";
}, 400);
};
#closeOverlaySearch = (event) => {
event.preventDefault();
this.#elements.overlaySearch.classList.remove("active");
fadeOut(this.#elements.overlaySearch);
setTimeout(() => {
this.#elements.html.style.overflow = "visible";
}, 400);
};
#onClickOverlaySearch = (event) => {
this.#elements.overlaySearch.querySelector("input").focus();
};
#onClickDocument = (event) => {
if (!event.target.closest("#icon-searchform-dropdown.show")) {
this.#elements.dropdownSearchIcon.classList.remove("active");
this.#elements.dropdownSearchForm.classList.remove("show");
}
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.mobileSearchIcon = new MobileSearchIcon();
ow-infinite-scroll.js 0000644 00000006353 15155211052 0010632 0 ustar 00 import InfiniteScroll from "infinite-scroll";
import ResponsiveAutoHeight from "responsive-auto-height";
class OWInfiniteScroll {
#elements = {
infiniteScrollNav: document.querySelector(".infinite-scroll-nav"),
};
#infiniteScroll;
constructor() {
if (
!!this.#elements.infiniteScrollNav &&
!!this.#elements.infiniteScrollNav.querySelector(".older-posts a")
) {
this.#setElements();
this.#start();
this.#setupEventListeners();
}
}
#setElements = () => {
this.#elements = {
...this.#elements,
infiniteScrollWrapper: document.querySelector(".infinite-scroll-wrap"),
};
};
#start = () => {
this.#infiniteScroll = new InfiniteScroll(
this.#elements.infiniteScrollWrapper,
{
path: ".older-posts a",
append: ".item-entry",
status: ".scroller-status",
hideNav: ".infinite-scroll-nav",
history: false,
prefill: true,
scrollThreshold: 500,
}
);
};
#setupEventListeners = () => {
this.#infiniteScroll.on("load", function (body, path, response) {
const items = body.querySelectorAll(".item-entry");
imagesLoaded(items, () => {
// Blog masonry isotope
if (this.element.classList.contains("blog-masonry-grid")) {
oceanwp?.blogMasonry?.isotop.appended(items);
// Fix Gallery posts
if (!!this.element.querySelector(".gallery-format")) {
setTimeout(() => {
oceanwp?.blogMasonry?.isotop.layout();
}, 600 + 1);
}
}
// Gallery posts slider
if (!document.body.classList.contains("no-carousel")) {
oceanwp?.owSlider?.start(
this.element.querySelectorAll(
".gallery-format, .product-entry-slider"
)
);
}
if (!document.body.classList.contains("no-lightbox")) {
oceanwp?.owLightbox?.initSingleImageLightbox();
oceanwp?.owLightbox?.initGalleryLightbox();
}
// Force the images to be parsed to fix Safari issue
items.forEach((item) => {
item.querySelectorAll("img")?.forEach((img) => {
img.outerHTML = img.outerHTML;
});
});
});
});
this.#infiniteScroll.on("append", function (body, path, items, response) {
imagesLoaded(items, () => {
// Equal height elements
if (!document.body.classList.contains("no-matchheight")) {
let entryItemsSelectors = Array.from(items).map((item) => {
if ( item.id ) {
return `#${item.id} .blog-entry-inner`;
} else {
return;
}
});
entryItemsSelectors = entryItemsSelectors.filter(function( element ) {
return element !== undefined;
});
if ( entryItemsSelectors.length > 0 ) {
new ResponsiveAutoHeight(entryItemsSelectors.join(","));
}
}
});
});
};
}
("use script");
window.oceanwp = window.oceanwp || {};
document.addEventListener("DOMContentLoaded", () => {
oceanwp.owInfiniteScroll = new OWInfiniteScroll();
});
mobile-menu/drop-down-mobile-menu.js 0000644 00000013424 15155211052 0013434 0 ustar 00 import delegate from "delegate";
import { options } from "../../constants";
import { slideUp, slideDown, slideToggle } from "../../lib/utils";
class DropDownMobileMenu {
#elements = {
body: document.body,
};
#isMenuOpen;
#menuItemsToggleIcon;
constructor() {
if (!this.#elements.body.classList.contains("dropdown-mobile")) {
return;
}
this.#setElements();
this.#start();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
...this.#elements,
parentMenuItems: document.querySelectorAll(
"#mobile-dropdown .menu-item-has-children"
),
navWrapper: document.querySelector("#mobile-dropdown"),
hamburgerBtn: document.querySelector(".mobile-menu > .hamburger"),
toggleMenuBtn: document.querySelector(".mobile-menu"),
nav: document.querySelector("#mobile-dropdown > nav"),
};
};
#start = () => {
this.#isMenuOpen = false;
this.#elements.parentMenuItems?.forEach((menuItem) => {
let span = document.createElement("span");
span.className = "dropdown-toggle";
span.setAttribute("tabindex", 0);
menuItem.getElementsByTagName("a")[0].appendChild(span);
});
this.#menuItemsToggleIcon =
options.sidrDropdownTarget == "link"
? this.#elements.navWrapper?.querySelectorAll(
"li.menu-item-has-children > a"
)
: this.#elements.navWrapper?.querySelectorAll(".dropdown-toggle");
};
#setupEventListeners = () => {
delegate(
document.body,
".mobile-menu",
"click",
this.#onToggleMenuButtonClick
);
this.#elements.navWrapper
?.querySelectorAll('li a[href*="#"]:not([href="#"])')
.forEach((menuItemLink) => {
menuItemLink.addEventListener("click", this.#onMenuCloseClick);
});
document.addEventListener("click", this.#onMenuCloseClick);
this.#elements.navWrapper?.addEventListener("click", (event) => {
event.stopPropagation();
});
window.addEventListener("resize", this.#onWindowResize);
this.#elements.hamburgerBtn?.addEventListener(
"click",
this.#onHamburgerClick
);
this.#menuItemsToggleIcon?.forEach((menuItemPlusIcon) => {
menuItemPlusIcon.addEventListener("click", this.#onMenuItemPlusIconClick);
});
document.addEventListener("keydown", this.#onDocumentKeydown);
};
#onToggleMenuButtonClick = (event) => {
event.preventDefault();
event.stopPropagation();
!!this.#elements.navWrapper && slideToggle(this.#elements.navWrapper, 400);
this.#elements.toggleMenuBtn?.classList.toggle("opened");
this.#elements.hamburgerBtn?.classList.toggle("is-active");
this.#elements.toggleMenuBtn?.focus();
};
#onMenuCloseClick = (event) => {
!!this.#elements.navWrapper && slideUp(this.#elements.navWrapper, 250);
this.#elements.toggleMenuBtn?.classList.remove("opened");
this.#elements.hamburgerBtn?.classList.remove("is-active");
};
#onWindowResize = (event) => {
if (window.innerWidth >= 960) {
this.#onMenuCloseClick();
}
};
#onHamburgerClick = (event) => {
this.#isMenuOpen = !this.#isMenuOpen;
event.currentTarget.setAttribute("aria-expanded", this.#isMenuOpen);
};
#onMenuItemPlusIconClick = (event) => {
event.preventDefault();
event.stopPropagation();
const menuItemPlusIcon = event.currentTarget;
const menuItem =
options.sidrDropdownTarget == "link"
? menuItemPlusIcon.parentNode
: menuItemPlusIcon.parentNode.parentNode;
const subMenu = menuItem.lastElementChild;
if (!menuItem?.classList.contains("active")) {
menuItem.classList.add("active");
slideDown(subMenu, 250);
} else {
menuItem.classList.remove("active");
slideUp(subMenu, 250);
menuItem
.querySelectorAll(".menu-item-has-children.active")
?.forEach((openMenuItem) => {
openMenuItem.classList.remove("active");
slideUp(openMenuItem.querySelector("ul"));
});
}
};
/**
* Trap keyboard navigation
*/
#onDocumentKeydown = (event) => {
if (!this.#elements.toggleMenuBtn?.classList.contains("opened")) {
return;
}
const tabKey = event.keyCode === 9;
const shiftKey = event.shiftKey;
const escKey = event.keyCode === 27;
const enterKey = event.keyCode === 13;
const closeIcon = this.#elements.toggleMenuBtn;
const navElements = this.#elements.nav?.querySelectorAll(
"a, span.dropdown-toggle, input, button"
);
const navFirstElement = navElements[0];
const navLastElement = navElements[navElements.length - 1];
if (!!closeIcon) {
closeIcon.style.outline = "";
}
if (escKey) {
event.preventDefault();
this.#onMenuCloseClick();
}
if (
enterKey &&
document.activeElement.classList.contains("dropdown-toggle")
) {
event.preventDefault();
document.activeElement.click();
}
if (!shiftKey && tabKey && navLastElement === document.activeElement) {
event.preventDefault();
closeIcon.style.outline = "1px dashed rgba(255, 255, 255, 0.6)";
closeIcon.focus();
}
if (shiftKey && tabKey && navFirstElement === document.activeElement) {
event.preventDefault();
closeIcon.style.outline = "1px dashed rgba(255, 255, 255, 0.6)";
closeIcon.focus();
}
// If there are no elements in the menu, don't move the focus
if (tabKey && navFirstElement === navLastElement) {
event.preventDefault();
}
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.dropDownMobileMenu = new DropDownMobileMenu();
mobile-menu/full-screen-mobile-menu.js 0000644 00000013610 15155211052 0013737 0 ustar 00 import delegate from "delegate";
import { slideUp, slideDown, fadeIn, fadeOut, visible } from "../../lib/utils";
class FullScreenMobileMenu {
#elements = {
body: document.body,
};
constructor() {
if (!this.#elements.body.classList.contains("fullscreen-mobile")) {
return;
}
this.#setElements();
this.#start();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
...this.#elements,
menu: document.querySelector("#mobile-fullscreen"),
toggleMenuBtn: document.querySelector(".mobile-menu"),
hamburgerBtn: document.querySelector(".mobile-menu > .hamburger"),
html: document.querySelector("html"),
};
};
#start = () => {
this.#elements.menu
?.querySelectorAll(".menu-item-has-children > a")
?.forEach((menuItemLink) => {
menuItemLink.insertAdjacentHTML(
"beforeend",
''
);
});
};
#setupEventListeners = () => {
window.addEventListener("resize", this.#onWindowResize);
delegate(document.body, ".mobile-menu", "click", this.#onMenuButtonClick);
document
.querySelectorAll(
'#mobile-fullscreen nav ul > li.menu-item-has-children > a > span.dropdown-toggle, #mobile-fullscreen nav ul > li.menu-item-has-children > a[href="#"]'
)
.forEach((menuItemLink) => {
menuItemLink.addEventListener("click", this.#onDropownToggleIcon);
menuItemLink.addEventListener("tap", this.#onDropownToggleIcon);
});
document
.querySelectorAll(
'#mobile-fullscreen .fs-dropdown-menu li a[href*="#"]:not([href="#"]), #mobile-fullscreen #mobile-nav li a[href*="#"]:not([href="#"]), #mobile-fullscreen a.close'
)
.forEach((menuItemLink) => {
menuItemLink.addEventListener("click", this.#onCloseIconClick);
});
document.addEventListener("keydown", this.#onDocumentKeydown);
};
#onMenuButtonClick = (event) => {
event.preventDefault();
event.stopPropagation();
this.#elements.toggleMenuBtn.classList.add("exit");
this.#elements.menu.classList.add("active");
this.#elements.hamburgerBtn?.classList.add("is-active");
fadeIn(this.#elements.menu);
const htmlWidthBeforeOverflowHidden = this.#elements.html.innerWidth;
this.#elements.html.style.overflow = "hidden";
const htmlWidthAfterOverflowHidden = this.#elements.html.innerWidth;
this.#elements.html.style.marginRight =
htmlWidthAfterOverflowHidden - htmlWidthBeforeOverflowHidden + "px";
this.#elements.menu.querySelector("a.close").focus();
};
#onCloseIconClick = (event) => {
if (event.currentTarget.getAttribute("href").substring(0, 1) === "#") {
event.preventDefault();
}
this.#closeMenu();
};
#closeMenu = () => {
if (visible(this.#elements.menu)) {
this.#elements.toggleMenuBtn.classList.remove("exit");
this.#elements.menu.classList.remove("active");
fadeOut(this.#elements.menu);
this.#elements.html.style.overflow = "";
this.#elements.html.style.marginRight = "";
document
.querySelectorAll("#mobile-fullscreen nav ul > li.dropdown")
.forEach((menuItem) => {
menuItem.classList.remove("open-sub");
});
document
.querySelectorAll("#mobile-fullscreen nav ul.sub-menu")
.forEach((subMenu) => {
slideUp(subMenu, 250);
});
this.#elements.hamburgerBtn?.classList.remove("is-active");
}
};
#onWindowResize = (event) => {
if (window.innerWidth >= 960) {
this.#closeMenu();
}
};
#onDropownToggleIcon = (event) => {
event.preventDefault();
event.stopPropagation();
const menuItemLink = event.currentTarget;
const menuItem = menuItemLink.closest("li.menu-item-has-children");
const subMenu = menuItem.querySelector("ul.sub-menu");
if (!(window.getComputedStyle(subMenu).display === "none")) {
menuItem.classList.remove("open-sub");
slideUp(subMenu, 250);
} else {
menuItem.classList.add("open-sub");
slideDown(subMenu, 250);
}
};
/**
* Trap keyboard navigation in the menu modal.
*/
#onDocumentKeydown = (event) => {
if (!this.#elements.menu?.classList.contains("active")) {
return;
}
const tabKey = event.keyCode === 9;
const shiftKey = event.shiftKey;
const escKey = event.keyCode === 27;
const enterKey = event.keyCode === 13;
const closeIcon = this.#elements.menu.querySelector("a.close");
const navElements = this.#elements.menu
.querySelector("nav")
.querySelectorAll("a, span.dropdown-toggle, input, button");
const navFirstElement = navElements[0];
const navLastElement = navElements[navElements.length - 1];
closeIcon.style.outline = "";
if (escKey) {
event.preventDefault();
this.#closeMenu();
}
if (
enterKey &&
document.activeElement.classList.contains("dropdown-toggle")
) {
event.preventDefault();
document.activeElement.click();
}
if (!shiftKey && tabKey && navLastElement === document.activeElement) {
event.preventDefault();
closeIcon.style.outline = "1px dashed rgba(255, 255, 255, 0.6)";
closeIcon.focus();
}
if (shiftKey && tabKey && navFirstElement === document.activeElement) {
event.preventDefault();
closeIcon.style.outline = "1px dashed rgba(255, 255, 255, 0.6)";
closeIcon.focus();
}
// If there are no elements in the menu, don't move the focus
if (tabKey && navFirstElement === navLastElement) {
event.preventDefault();
}
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.fullScreenMobileMenu = new FullScreenMobileMenu();
mobile-menu/sidebar-mobile-menu.js 0000644 00000020001 15155211052 0013121 0 ustar 00 import delegate from "delegate";
import { options } from "../../constants";
import { fadeIn, fadeOut, slideDown, slideUp } from "../../lib/utils";
class SidebarMobileMenu {
#elements = {
body: document.body,
};
#isMenuOpen;
#menuItemsPlusIcon;
#sidebarToggleMenuBtn;
constructor() {
if (
typeof options.sidrSource !== "undefined" &&
this.#elements.body.classList.contains("sidebar-mobile")
) {
this.#setElements();
this.#start();
this.#setupEventListeners();
}
}
#setElements = () => {
this.#elements = {
...this.#elements,
hamburgerBtn: document.querySelector(".mobile-menu > .hamburger"),
header: document.querySelector("#site-header"),
};
};
#start = () => {
this.#isMenuOpen = false;
this.#startSidrPlugin();
if (!document.querySelector(".sidr-class-dropdown-toggle")) {
document
.querySelectorAll(".sidr-class-menu-item-has-children > a")
.forEach((menuItemLink) => {
menuItemLink.insertAdjacentHTML(
"beforeend",
''
);
});
}
this.#menuItemsPlusIcon =
options.sidrDropdownTarget == "link"
? document.querySelectorAll("li.sidr-class-menu-item-has-children > a")
: document.querySelectorAll(".sidr-class-dropdown-toggle");
};
#startSidrPlugin = () => {
const self = this;
sidr.new(".mobile-menu", {
name: "sidr",
source: options.sidrSource,
side: options.sidrSide,
displace: options.sidrDisplace,
speed: 300,
renaming: true,
timing: "ease",
bind: "click",
onOpen() {
document.querySelector("a.sidr-class-toggle-sidr-close")?.focus();
self.#elements.hamburgerBtn?.classList.add("is-active");
self.#elements.header.insertAdjacentHTML(
"afterend",
''
);
const overlay = document.querySelector(".oceanwp-sidr-overlay");
fadeIn(overlay);
overlay.addEventListener("click", (event) => {
event.preventDefault();
event.stopPropagation();
sidr.close("sidr");
});
},
onClose() {
self.#elements.hamburgerBtn?.classList.remove("is-active");
document
.querySelectorAll(".sidr-class-menu-item-has-children.active > ul")
.forEach((subMenuActive) => {
subMenuActive.style.display = "none";
});
document
.querySelectorAll(".sidr-class-menu-item-has-children.active")
.forEach((menuItemActive) => {
menuItemActive.classList.remove("active");
});
const overlay = document.querySelector(".oceanwp-sidr-overlay");
fadeOut(overlay);
setTimeout(() => {
overlay.remove();
});
},
});
document
.querySelectorAll('#sidr [class*="sidr-class-fa"]')
.forEach((icon) => {
icon.className = icon.className.replace(/\bsidr-class-fa.*?\b/g, "fa");
});
document
.querySelectorAll('#sidr [class*="sidr-class-icon"]')
.forEach((icon) => {
icon.className = icon.className.replace(
/\bsidr-class-icon-.*?\b/g,
"icon-"
);
});
this.#sidebarToggleMenuBtn = document.querySelector(
"a.sidr-class-toggle-sidr-close"
);
};
#setupEventListeners = () => {
this.#elements.hamburgerBtn?.addEventListener(
"click",
this.#onHamburgerBtnClick
);
this.#sidebarToggleMenuBtn?.addEventListener(
"click",
this.#onSidebarCloseMenuBtnClick
);
this.#menuItemsPlusIcon?.forEach((menuItemPlusIcon) => {
menuItemPlusIcon.addEventListener("click", this.#onMenuItemPlusIconClick);
menuItemPlusIcon.addEventListener(
"touchend",
this.#onMenuItemPlusIconClick
);
});
delegate(
document.body,
'.sidr-class-dropdown-menu a[href*="#"]:not([href="#"]), .sidr-class-menu-item > a[href*="#"]:not([href="#"])',
"click",
this.#closeSidr
);
delegate(
document.body,
'.sidr-class-dropdown-menu a[href*="#"]:not([href="#"]), .sidr-class-menu-item > a[href*="#"]:not([href="#"])',
"touchend",
this.#closeSidr
);
document
.querySelectorAll("li.sidr-class-nav-no-click > a")
?.forEach((menuItemLink) => {
menuItemLink.addEventListener("click", (event) => {
event.preventDefault();
event.stopPropagation();
});
});
document.addEventListener("keydown", this.#onDocumentKeydown);
window.addEventListener("resize", this.#onWindowResize);
};
#onHamburgerBtnClick = (event) => {
this.#isMenuOpen = !this.#isMenuOpen;
event.currentTarget.setAttribute("aria-expanded", this.#isMenuOpen);
};
#onSidebarCloseMenuBtnClick = (event) => {
event.preventDefault();
event.stopPropagation();
this.#closeSidr();
this.#sidebarToggleMenuBtn.classList.remove("opened");
};
#onMenuItemPlusIconClick = (event) => {
event.preventDefault();
event.stopPropagation();
const menuItemPlusIcon = event.currentTarget;
const menuItem =
options.sidrDropdownTarget == "link"
? menuItemPlusIcon.parentNode
: menuItemPlusIcon.parentNode.parentNode;
const subMenu = menuItem.lastElementChild;
if (!menuItem?.classList.contains("active")) {
menuItem.classList.add("active");
slideDown(subMenu, 250);
} else {
menuItem.classList.remove("active");
slideUp(subMenu, 250);
menuItem
.querySelectorAll(".sidr-class-menu-item-has-children.active")
?.forEach((openMenuItem) => {
openMenuItem.classList.remove("active");
slideUp(openMenuItem.querySelector("ul"));
});
}
};
#onWindowResize = (event) => {
if (window.innerWidth >= 960) {
this.#closeSidr();
}
};
/**
* Trap keyboard navigation
*/
#onDocumentKeydown = (event) => {
if (!this.#elements.body.classList.contains("sidr-open")) {
return;
}
event.stopPropagation();
const tabKey = event.keyCode === 9;
const shiftKey = event.shiftKey;
const escKey = event.keyCode === 27;
const enterKey = event.keyCode === 13;
const closeIcon = this.#sidebarToggleMenuBtn;
const navElements = document
.querySelector("#sidr")
.querySelectorAll("a, span.sidr-class-dropdown-toggle, input, button");
const navFirstElement = navElements[0];
const navLastElement = navElements[navElements.length - 1];
if (closeIcon) {
closeIcon.style.outline = "";
if (!shiftKey && tabKey && navLastElement === document.activeElement) {
event.preventDefault();
closeIcon.style.outline = "1px dashed rgba(255, 255, 255, 0.6)";
closeIcon.focus();
}
if (shiftKey && tabKey && navFirstElement === document.activeElement) {
event.preventDefault();
closeIcon.style.outline = "1px dashed rgba(255, 255, 255, 0.6)";
closeIcon.focus();
}
}
if (escKey) {
event.preventDefault();
this.#closeSidr();
}
if (
enterKey &&
document.activeElement.classList.contains("sidr-class-dropdown-toggle")
) {
event.preventDefault();
document.activeElement.click();
}
// If there are no elements in the menu, don't move the focus
if (tabKey && navFirstElement === navLastElement) {
event.preventDefault();
}
};
#closeSidr = () => {
setTimeout(() => {
sidr.close("sidr");
this.#elements.hamburgerBtn?.classList.remove("is-active");
}, 50);
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.sidebarMobileMenu = new SidebarMobileMenu();
theme.js 0000644 00000001665 15155211052 0006211 0 ustar 00 import Menu from "./menu/menu";
import MegaMenu from "./menu/mega-menu";
import Search from "./search/search";
import Footer from "./footer";
class Theme {
constructor() {
this.#start();
this.#setupEventListeners();
}
#start = () => {
this.menu = new Menu();
this.megaMenu = new MegaMenu();
this.search = new Search();
this.footer = new Footer();
};
#setupEventListeners = () => {
document.addEventListener(
"keydown",
this.#actionActive
);
};
#actionActive = (event) => {
const enterKey = event.keyCode === 13;
if ( enterKey ) {
document.querySelector('.skip-link').addEventListener('keydown', function(e) {
var target = document.getElementById('main');
target.tabIndex = -1;
target.focus();
});
}
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.theme = new Theme();
blog-masonry.js 0000644 00000001440 15155211052 0007507 0 ustar 00 import { options } from "../constants";
class BlogMasonry {
#elements;
isotop;
constructor() {
this.#setElements();
this.start();
}
#setElements = () => {
this.#elements = {
masonryGrids: document.querySelectorAll(".blog-masonry-grid"),
};
};
start = () => {
this.#elements.masonryGrids?.forEach((blogMasonryGrid) => {
imagesLoaded(blogMasonryGrid, (instance) => {
this.isotop = new Isotope(blogMasonryGrid, {
itemSelector: ".isotope-entry",
transformsEnabled: true,
isOriginLeft: options.isRTL ? false : true,
transitionDuration: 0,
});
});
});
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.blogMasonry = new BlogMasonry();
scroll-top.js 0000644 00000003237 15155211052 0007202 0 ustar 00 import { fadeIn, fadeOut } from "../lib/utils";
class ScrollTop {
#elements;
constructor() {
this.#setElements();
this.#start();
this.#setupEventListeners();
}
#setElements = () => {
this.#elements = {
scrollTop: document.querySelector("#scroll-top"),
goTop: document.querySelector('a[href="#go-top"]'),
goTopSlash: document.querySelector('body.home a[href="/#go-top"]'),
html: document.querySelector("html"),
};
};
#start = () => {};
#setupEventListeners = () => {
window.addEventListener("scroll", this.#onWindowScroll);
this.#elements.scrollTop?.addEventListener("click", this.#onScrollTopClick);
this.#elements.goTop?.addEventListener("click", this.#onScrollTopClick);
this.#elements.goTopSlash?.addEventListener(
"click",
this.#onScrollTopClick
);
};
#onWindowScroll = (event) => {
if (!this.#elements.scrollTop) {
return;
}
if (window.pageYOffset > 100) {
if (
window.getComputedStyle(this.#elements.scrollTop).display === "none"
) {
fadeIn(this.#elements.scrollTop);
}
} else if (
window.getComputedStyle(this.#elements.scrollTop).display !== "none"
) {
fadeOut(this.#elements.scrollTop);
}
};
#onScrollTopClick = (event) => {
event.preventDefault();
const scrollTop = event.currentTarget;
this.#elements.html.scrollTo({
top: 0,
behavior: "smooth",
});
scrollTop.parentNode?.classList.remove("sfHover");
};
}
("use script");
window.oceanwp = window.oceanwp || {};
oceanwp.scrollTop = new ScrollTop();