File: /home/lgooir/.trash/elementor/modules/atomic-widgets/elements/atomic-tabs/atomic-tabs-handler.js
import { register } from '@elementor/frontend-handlers';
register( {
elementType: 'e-tabs',
uniqueId: 'e-tabs-handler',
callback: ( { element, signal } ) => {
const tabs = element.querySelectorAll( '[data-element_type="e-tab"]' );
const tabPanels = element.querySelectorAll( '[data-element_type="e-tab-panel"]' );
const setActiveTab = ( id ) => {
tabPanels.forEach( ( tabPanel ) => {
const activeTab = tabPanel.getAttribute( 'data-tab-id' ) === id;
if ( activeTab ) {
tabPanel.style.removeProperty( 'display' );
tabPanel.removeAttribute( 'hidden' );
return;
}
tabPanel.style.display = 'none';
tabPanel.setAttribute( 'hidden', 'true' );
} );
};
const defaultActiveTab = element.getAttribute( 'data-active-tab' );
setActiveTab( defaultActiveTab );
tabs.forEach( ( tab ) => {
const clickHandler = () => {
const tabId = tab.getAttribute( 'data-id' );
setActiveTab( tabId );
};
tab.addEventListener( 'click', clickHandler, { signal } );
} );
},
} );