(function ($){
"use strict";
var dnxte=dnxte||{};
dnxte={
init: function (){
dnxte.imageAccordion();
dnxte.tiltAnimation();
dnxte.magnifier();
dnxte.floatingElements();
dnxte.masonryGallery();
dnxte.contentToggle();
this.advancedTabInit();
dnxte.diviModuleLibrary();
},
imageAccordion: function (){
$.fn.dnxte_image_accordion=function (){
let $this=$(this);
let accordion_type=$this.data("accordion-type");
let expandLastItem=$this.data("expand-last-item");
let $accordion_children=$this.find(".dnxte_image_accordion_item");
let onloadOpen=$this.find("[data-active-on-load=1]");
let accordionExpand=$this.find("[data-accordion-expand=defaults]");
if(expandLastItem=="on"){
$this.find(".dnxte_image_accordion_item").removeClass("dnxte-active");
$this
.find(".dnxte_image_accordion_item")
.last()
.addClass("dnxte-active");
}else{
onloadOpen
.parents(".dnxte_image_accordion_item")
.addClass("dnxte-active");
}
if(accordion_type==="on_hover"){
$accordion_children.mouseenter(function (){
$accordion_children.removeClass("dnxte-active");
$(this).addClass("dnxte-active");
});
"off"===expandLastItem &&
$accordion_children.mouseleave(function (){
$accordion_children.removeClass("dnxte-active");
$(this).addClass("dnxte-active");
});
"off"===expandLastItem &&
$accordion_children.mouseleave(function (){
$accordion_children.removeClass("dnxte-active");
accordionExpand
.parents(".dnxte_image_accordion_item")
.addClass("dnxte-active");
});
}
if(accordion_type==="on_click"){
$this.addClass("dnxte_clickable");
$accordion_children.click(function (e){
if($(this).hasClass("dnxte-active")){
return;
}
$accordion_children.removeClass("dnxte-active");
$(this).addClass("dnxte-active");
});
}};
$(".dnxte_image_accordion").each(function (){
$(this).dnxte_image_accordion();
});
},
tiltAnimation: function (){
function tilt_animation(params, values, element){
switch (params){
case "init":
VanillaTilt.init(element, { ...values });
break;
case "destroy":
if(element){
try {
if(element.vanillaTilt){
element.vanillaTilt.destroy();
}} catch (err){
console.log("err", err);
}}
break;
default:
break;
}}
},
magnifier: function (){
$(".dnxte-magnifier img").each(function (){
const magnifyData=$(this).data();
$(this).magnify({
speed: +magnifyData.speed,
limitBounds: magnifyData.boundary==="on",
});
});
},
floatingElements: function (){
let floatingElementsImg=$(".responsive-image-wrapper");
if(floatingElementsImg.length > 0){
function updateMaxHeight(wrapperSelector){
$(wrapperSelector).each(function (){
let self=$(this);
let maxHeight=0;
self.find(".dnxte_floating_elements_item img").each(function (){
const imgHeight=$(this).height();
maxHeight=Math.max(maxHeight, imgHeight);
});
if(maxHeight > 0){
self.css("height", maxHeight + "px");
}});
}
$(window).on("load", function (){
updateMaxHeight(".responsive-image-wrapper");
});
$(window).on("resize", function (){
updateMaxHeight(".responsive-image-wrapper");
});
}},
masonryGallery: function (){
const $grid=$(".dnxte-msnary-grid");
if($grid.length > 0){
const firstMenuItemSelector=$(
".dnxte-msnary-filter-items li:first-child"
);
const firstMenuItemFilter=firstMenuItemSelector.attr("data-filter");
firstMenuItemSelector.addClass("active");
if($grid.length){
$grid.each(function (){
let gutter=0;
let gutter_value=$(this).data("options");
function updateGutter(){
if(gutter_value===undefined){
return;
}
if(window.innerWidth > 980){
gutter=gutter_value.desktop||0;
}else if(window.innerWidth > 767){
gutter=gutter_value.tablet||0;
}else{
gutter=gutter_value.phone||0;
}}
updateGutter();
let resizeTimer;
window.addEventListener("resize", function (){
clearTimeout(resizeTimer);
resizeTimer=setTimeout(updateGutter, 100);
});
$(this).isotope({
itemSelector: ".dnxte-msnary-item",
percentPosition: true,
stagger: 0,
filter: firstMenuItemFilter,
horizontalOrder: true,
masonry: {
columnWidth: ".grid-sizer",
gutter: parseInt(gutter, 10),
},
});
});
$grid.imagesLoaded().progress(function (){
$grid.isotope("layout");
});
$(window).scroll(()=> {
$grid.isotope("layout");
});
}
$(".dnxte-msnary-filter-items li:first-child").addClass("active");
$(".dnxte-msnary-filter-items li").on("click", function (item){
const that =
"." +
$(this)
.parent()
.parent()
.parent()
.parent()
.parent()
.attr("class")
.split(" ")
.join(".");
$(`${that} .dnxte-msnary-filter-items li`).removeClass("active");
$(this).addClass("active");
var selector=$(this).attr("data-filter");
$(`${that} .dnxte-msnary-grid`).isotope({
filter: selector,
});
});
const img=$(".image-popup");
const lighboxData=$grid.length&&$grid.data();
const lightboxMarkup =
lighboxData?.captionPosition==="on_image"
? '<div class="mfp-figure dnxte-msnary-mfp-config title_on_top">' +
'<div class="mfp-close"></div>' +
'<div class="mfp-top-bar">' +
'<div class="mfp-title"></div>' +
'<div class="mfp-counter"></div>' +
"</div>" +
'<div class="mfp-img"></div>' +
"</div>"
: '<div class="mfp-figure dnxte-msnary-mfp-config title_on_bottom">' +
'<div class="mfp-close"></div>' +
'<div class="mfp-img"></div>' +
'<div class="mfp-bottom-bar">' +
'<div class="mfp-title"></div>' +
'<div class="mfp-counter"></div>' +
"</div>" +
"</div>";
if(img.length&&"none"!==lighboxData.lightbox){
img.each(function (){
let orderClass=$(this).data("gallery-order");
const that =
"." +
$(this)
.parent()
.parent()
.parent()
.parent()
.parent()
.attr("class")
.split(" ")
.join(".");
const url=$(this)[0]?.attributes[1]?.value;
if(!isImageLink(url)) return;
$(`${that} .image-popup`).magnificPopup({
removalDelay: 500,
type: "image",
gallery: {
enabled: true,
navigateByImgClick: true,
tCounter: "%curr% of %total%",
},
callbacks: {
open: function (){
$(".mfp-bg").addClass(orderClass);
},
},
disableOn: function (){
return lighboxData.lightbox;
},
image: {
markup: lightboxMarkup,
titleSrc: function (item){
return (
item.el.attr("data-title") + item.el.attr("data-caption")
);
},
},
zoom: {
enabled: lighboxData.lightbox,
duration: 500,
opener: function (element){
return element.find("img");
},
},
});
});
function isImageLink(url){
const imagePattern=/\.(jpeg|jpg|gif|png|svg|webp)$/i;
return imagePattern.test(url);
}}
}},
diviModuleLibrary: function (){
if(window.divi &&
window.divi.moduleLibrary &&
typeof window.divi.moduleLibrary.registerFolder==='function'
){
window.divi.moduleLibrary.registerFolder({
name: "divi-essential",
path: "",
title: "Divi Essential",
icon: "dnxte/divi-essential",
category: "module",
});
}
if(window.vendor?.wp?.hooks){
window.vendor.wp.hooks?.addFilter("divi.moduleLibrary.moduleMapping",
"divi",
(modules)=> {
const path=["dnxte", "metadata"];
const { get, has }=window?.lodash;
const target=get(modules, path, {});
if(has(modules, path)){
target.folder="divi-essential";
}else{
console.warn(`Path ${path.join(".")} does not exist in modules.`);
}
return modules;
}
);
}},
contentToggle: function (){
jQuery(function (dnxte_contenttoggle){
dnxte_contenttoggle(".dnxte-toggle-btn .dnxte-input").each(function (){
var n=dnxte_contenttoggle(this)
.parents(".dnxte-toggle-container")
.find(".dnxte-content-toggle-back"),
e=dnxte_contenttoggle(this)
.parents(".dnxte-toggle-container")
.find(".dnxte-content-toggle-front");
this.checked ? (e.hide(), n.show()):(n.hide(), e.show()),
dnxte_contenttoggle(this).on("change", function (){
this.checked ? (e.hide(), n.show()):(n.hide(), e.show());
});
});
});
},
advancedTabInit: function (){
$(".tab-container").each(function (){
const { tabEffect }=$(this).find(".dnxte_tab_menu").data();
const dnxteTab=$(this).find(".dnxte_tab_a[data-activeOnLoad='on']");
const tabActiveEffect=`dnxt-hover-ad-${tabEffect}--active`;
if(dnxteTab.length > 0){
dnxteTab.first().addClass("dnxte_active_a");
dnxteTab.first().addClass(tabActiveEffect);
$(this)
.find(".dnxte_tab_content[data-id='" +
dnxteTab.first().attr("data-id") +
"']"
)
.addClass("dnxte_tab_content_active");
}else{
$(this)
.find(".dnxte_tab_a:first")
.addClass(`dnxte_active_a ${tabActiveEffect}`);
$(this)
.find(".dnxte_tab_content:first")
.addClass("dnxte_tab_content_active");
}
const that=$(this);
$(this)
.find(".dnxte_tab_a")
.click(function (e){
if($(this).hasClass("dnxte_tab_a_clickable")){
return;
}
e.preventDefault();
that
.find(".dnxte_tab_content")
.removeClass("dnxte_tab_content_active");
that
.find(".dnxte_tab_content[data-id='" + $(this).attr("data-id") + "']"
)
.addClass("dnxte_tab_content_active");
that
.find(".dnxte_tab_a")
.removeClass(`dnxte_active_a ${tabActiveEffect}`);
$(this).addClass(`dnxte_active_a ${tabActiveEffect}`);
});
});
},
};
$(document).ready(function (){
dnxte.init();
});
})(jQuery);
(function(){
const MEDIA_QUERIES={
phone: window.matchMedia("(max-width: 767px)"),
tablet: window.matchMedia("(max-width: 980px)")
};
let debounceTimer=null;
function setDeviceModeCookie(mode){
const secure=location.protocol==='https:' ? '; Secure':'';
document.cookie=`device_mode=${mode}; path=/${secure}; SameSite=Lax`;
}
function getDeviceMode(){
if(MEDIA_QUERIES.phone.matches) return "phone";
if(MEDIA_QUERIES.tablet.matches) return "tablet";
return "desktop";
}
function getCurrentCookieValue(){
const match=document.cookie.match(/(?:^|;)device_mode=([^;]*)/);
return match ? match[1]:null;
}
function updateDeviceMode(){
const mode=getDeviceMode();
const currentValue=getCurrentCookieValue();
if(currentValue!==mode){
setDeviceModeCookie(mode);
}}
function debouncedUpdate(){
clearTimeout(debounceTimer);
debounceTimer=setTimeout(updateDeviceMode, 100);
}
updateDeviceMode();
Object.values(MEDIA_QUERIES).forEach((mq)=> {
mq.addEventListener("change", debouncedUpdate);
});
})();