(function($){
'use strict';
var ServicesShowcase=function($scope, $){
var $container=$scope.find('.services-container');
if($container.length===0){
return;
}
var $navItems=$container.find('.nav-item');
var $tabContents=$container.find('.tab-content');
init();
function init(){
bindEvents();
setupIntersectionObserver();
setTimeout(function(){
updateContentAreaHeight();
}, 100);
}
function bindEvents(){
$navItems.on('click', function(e){
e.preventDefault();
var $this=$(this);
var tabId=$this.data('tab');
var bgColor=$this.data('bg-color');
switchTab(tabId, $this, bgColor);
});
$navItems.on('keydown', function(e){
if(e.key==='Enter'||e.key===' '){
e.preventDefault();
$(this).trigger('click');
}});
if('ontouchstart' in window){
$navItems.on('touchstart', function(){
$(this).addClass('touch-active');
});
$navItems.on('touchend', function(){
$(this).removeClass('touch-active');
});
}
var resizeTimer;
$(window).on('resize', function(){
clearTimeout(resizeTimer);
resizeTimer=setTimeout(function(){
updateContentAreaHeight();
}, 250);
});
}
function switchTab(tabId, $activeNav, bgColor){
if($container.hasClass('switching')){
return;
}
$container.addClass('switching');
$navItems.removeClass('active');
$tabContents.removeClass('active');
$activeNav.addClass('active');
var $newTab=$container.find('#' + tabId);
if($newTab.length===0){
$container.removeClass('switching');
return;
}
$newTab.addClass('active');
setTimeout(function(){
updateContentAreaHeight();
}, 200);
setTimeout(function(){
$container.removeClass('switching');
}, 400);
$container.trigger('services-showcase:tab-changed', [tabId, $activeNav]);
}
function setupIntersectionObserver(){
}
function startAutoCycle(interval){
if(interval&&interval > 0){
var currentIndex=0;
setInterval(function(){
currentIndex=(currentIndex + 1) % $navItems.length;
$navItems.eq(currentIndex).trigger('click');
}, interval);
}}
function updateContentAreaHeight(){
var $contentArea=$container.find('.content-area');
var $activeTab=$tabContents.filter('.active');
if($activeTab.length){
setTimeout(function(){
var originalPosition=$activeTab.css('position');
var originalTop=$activeTab.css('top');
var originalLeft=$activeTab.css('left');
var originalRight=$activeTab.css('right');
$activeTab.css({
'position': 'relative',
'top': 'auto',
'left': 'auto',
'right': 'auto'
});
$activeTab[0].offsetHeight;
var naturalHeight=$activeTab.outerHeight(true);
$activeTab.css({
'position': originalPosition,
'top': originalTop,
'left': originalLeft,
'right': originalRight
});
var newHeight=Math.max(naturalHeight + 20, 500);
$contentArea[0].style.setProperty('--content-height', newHeight + 'px');
}, 50);
}}
$container.data('services-showcase', {
switchTab: switchTab,
startAutoCycle: startAutoCycle
});
};
$(window).on('elementor/frontend/init', function(){
elementorFrontend.hooks.addAction('frontend/element_ready/listeo-taxonomy-tabs.default', ServicesShowcase);
});
$(document).ready(function(){
$('.services-container').each(function(){
ServicesShowcase($(this), $);
});
});
})(jQuery);