/**
* WordPress dependencies
*/
import { RichText, useBlockProps } from '@wordpress/block-editor';
import { Fragment, RawHTML } from '@wordpress/element';
import classnames from 'classnames';
const { DisplayIcon, DynamicTag } = window?.gutSliderModules;
/**
* Save function
*/
export default function save({ attributes }) {
const {
uniqueId,
//visible elements
showImage,
showSubTitle,
showTitle,
showDescription,
showButton,
sliderType,
slideItems,
sliderOptions,
titleTag,
subtitleTag,
descriptionTag,
titleAnimation,
subtitleAnimation,
descAnimation,
btnAnimation,
sbtnAnimation,
showPagination,
showNavigation,
navContainerPosition,
navPosition,
customNavIcon,
navIconSource,
navPrevIcon,
navNextIcon,
customPrevSVG,
customNextSVG,
// global link
enableGlobalLink,
// remote navigation
enableRemoteNav,
remotePrevSelector,
remoteNextSelector
} = attributes;
// Block Props
const blockProps = useBlockProps.save({
className: classnames(uniqueId, navContainerPosition, navPosition)
});
return (
{slideItems &&
slideItems.map((slide, index) => {
const bgStyles = {
backgroundColor: slide.bgColor ? slide.bgColor : '',
...(slide.bgType !== 'video' &&
!slide.enableResponsiveBg && {
backgroundImage: slide.bgType === 'classic' ? `url(${slide.image.url})` : slide.bgGradient
}),
...(slide.bgType !== 'video' &&
slide.enableResponsiveBg &&
slide.bgType === 'classic' && {
[`--gut-desktop-bg-image`]: `url(${slide.DesktopBg?.url})`,
[`--gut-tablet-bg-image`]: `url(${slide.TabletBg?.url})`,
[`--gut-mobile-bg-image`]: `url(${slide.MobileBg?.url})`
}),
...(slide.enableResponsiveBg &&
slide.bgType === 'classic' &&
slide?.DesktopBg?.url &&
slide?.DesktopFocalPoint && {
[`--gut-desktop-focal-point`]: `${slide?.DesktopFocalPoint?.x * 100}% ${slide?.DesktopFocalPoint?.y * 100}%`
}),
...(slide.enableResponsiveBg &&
slide.bgType === 'classic' &&
slide?.TabletBg?.url &&
slide?.TabletFocalPoint && {
[`--gut-tablet-focal-point`]: `${slide?.TabletFocalPoint?.x * 100}% ${slide?.TabletFocalPoint?.y * 100}%`
}),
...(slide.enableResponsiveBg &&
slide.bgType === 'classic' &&
slide?.MobileBg?.url &&
slide?.MobileFocalPoint && {
[`--gut-mobile-focal-point`]: `${slide?.MobileFocalPoint?.x * 100}% ${slide?.MobileFocalPoint?.y * 100}%`
}),
...(slide?.focusPoint &&
slide.bgType !== 'video' &&
!slide.enableResponsiveBg && {
backgroundPosition: `${slide?.focusPoint?.x * 100}% ${slide?.focusPoint?.y * 100}%`
})
};
const overlayStyles = {
background: slide.overlayType === 'classic' ? slide.overlayColor : slide.overlayGradient,
opacity: slide.overlayOpacity ? slide.overlayOpacity : ''
};
return (
{slide.bgType === 'video' && slide.bgVideo?.url && (
)}
{slide.enableOverlay && (slide.bgType === 'classic' || slide.bgType === 'video') && (
)}
{showImage ? (
{slide.photo && slide.photo.url ? (
) : null}
{showSubTitle && slide.subtitle && (
)}
{showTitle && slide.title && (
)}
{showDescription && slide.description && (
)}
{slide.btnLabel && slide.btnLinks && slide.btnLinks.url && (
{slide.btnLabel}
)}
{showButton && slide?.showSbtnLinks ? (
{slide.sbtnLabel && slide.sbtnLinks && slide.sbtnLinks.url && (
{slide.sbtnLabel}
)}
) : (
slide.btnLabel &&
slide.btnLinks &&
slide.btnLinks.url && (
{slide.btnLabel}
)
)}
) : (
{showSubTitle && slide.subtitle && (
)}
{showTitle && slide.title && (
)}
{showDescription && slide.description && (
)}
{showButton && slide?.showSbtnLinks ? (
{slide.btnLabel && slide.btnLinks && slide.btnLinks.url && (
{slide.btnLabel}
)}
{slide.sbtnLabel && slide.sbtnLinks && slide.sbtnLinks.url && (
{slide.sbtnLabel}
)}
) : (
showButton &&
slide.btnLabel &&
slide.btnLinks &&
slide.btnLinks.url && (
{slide.btnLabel}
)
)}
)}
);
})}
{showNavigation && navContainerPosition === 'nav_inside' && !enableRemoteNav && (
{customNavIcon ? (
{navIconSource === 'library' && }
{navIconSource === 'custom' && {customPrevSVG}}
{navIconSource === 'library' && }
{navIconSource === 'custom' && {customNextSVG}}
) : (
)}
)}
{showPagination &&
}
{showNavigation && navContainerPosition === 'nav_outside' && !enableRemoteNav && (
{customNavIcon ? (
{navIconSource === 'library' && }
{navIconSource === 'custom' && {customPrevSVG}}
{navIconSource === 'library' && }
{navIconSource === 'custom' && {customNextSVG}}
) : (
)}
)}
);
}