Files
medicalalert-web-reloaded/wp/plugins/divi-builder/includes/builder/scripts/frontend/background-layout.js
2024-01-09 22:14:20 -05:00

49 lines
1.5 KiB
JavaScript

// External dependencies
import $ from 'jquery';
/**
* Toggle background-layout classname of current module and/or its child modules.
*
* @since 4.6.0
*
* @param {object} $module
* @param {bool} status
*/
export const toggleAllBackgroundLayoutClassnameOnSticky = ($module, status) => {
// Toggle background-layout classname if it is on current $module
if ($module.is($('[data-background-layout-sticky]'))) {
toggleBackgroundLayoutClassnameOnSticky($module, status);
}
// Toggle background-layout classname if it is child module of current module
if ($module.find('[data-background-layout-sticky]').length > 0) {
$module.find('[data-background-layout-sticky]').each(function() {
toggleBackgroundLayoutClassnameOnSticky($(this), status);
});
}
};
/**
* Toggle background-layout classname of current module.
*
* @since 4.6.0
*
* @param {object} $module
* @param {bool} status
*/
export const toggleBackgroundLayoutClassnameOnSticky = ($module, status) => {
const attrPrefix = status ? '-sticky' : '';
const allClassnames = 'et_pb_bg_layout_dark et_pb_bg_layout_light';
const layoutColor = $module.attr(`data-background-layout${attrPrefix}`);
const layoutClassname = `et_pb_bg_layout_${layoutColor}`;
let $target = $module;
// Switch the target element for some modules.
if ($module.hasClass('et_pb_slide')) {
$target = $module.closest('.et_pb_slider');
}
$target.removeClass(allClassnames).addClass(layoutClassname);
};