HEX
Server: Apache
System: Linux www 5.10.0-10-amd64 #1 SMP Debian 5.10.84-1 (2021-12-08) x86_64
User: root (0)
PHP: 8.2.1
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals
Upload Files
File: /mnt/drbd/www/edenhouse/wp-content/plugins/essential-blocks/blocks/slider/src/frontend.js
import { render, createRef } from "@wordpress/element";
/**
 * External dependencies
 */
import Slider from "react-slick";

window.addEventListener("DOMContentLoaded", (event) => {
    const wrappers = document.getElementsByClassName(`eb-slider-wrapper`);

    for (let wrapper of wrappers) {
        let settings = JSON.parse(wrapper.getAttribute("data-settings"));
        let images = JSON.parse(wrapper.getAttribute("data-images"));
        let sliderContentType = wrapper.getAttribute("data-sliderContentType");
        let sliderType = wrapper.getAttribute("data-sliderType");
        let textAlign = wrapper.getAttribute("data-textAlign");
        let arrowNextIcon = wrapper.getAttribute("data-arrowNextIcon");
        let arrowPrevIcon = wrapper.getAttribute("data-arrowPrevIcon");
        let TitleTag = wrapper.getAttribute("data-titleTag") || 'h2';
        let ContentTag = wrapper.getAttribute("data-contentTag") || 'p';

        const slider = createRef();

        function SampleNextArrow(props) {
            const { className, style, onClick, arrowNextIcon } = props;
            return (
                <div
                    className={className}
                    style={{ ...style, display: "block" }}
                    onClick={onClick}
                >
                    <i aria-hidden="true" className={arrowNextIcon}></i>
                </div>
            );
        }

        function SamplePrevArrow(props) {
            const { className, style, onClick, arrowPrevIcon } = props;
            return (
                <div
                    className={className}
                    style={{ ...style, display: "block" }}
                    onClick={onClick}
                >
                    <i aria-hidden="true" className={arrowPrevIcon}></i>
                </div>
            );
        }

        settings.nextArrow = <SampleNextArrow arrowNextIcon={arrowNextIcon} />;
        settings.prevArrow = <SamplePrevArrow arrowPrevIcon={arrowPrevIcon} />;

        const sliderTypeClass = sliderType === 'content' ? 'eb-slider-type-content' : 'eb-slider-type-image';

        render(
            <Slider
                ref={slider}
                {...settings}
                key={`${settings.autoplay}-${settings.adaptiveHeight}`}
                className={sliderTypeClass}
            >
                {images.map((image) => (
                    <div className={`eb-slider-item ${sliderContentType}`}>
                        {sliderType === "image" &&
                            image.buttonUrl &&
                            image.isValidUrl && (
                                <>
                                    <a
                                        href={
                                            image.buttonUrl && image.isValidUrl
                                                ? image.buttonUrl
                                                : "#"
                                        }
                                        target={
                                            image.openNewTab
                                                ? "_blank"
                                                : "_self"
                                        }
                                        rel="noopener"
                                    >
                                        <img
                                            className="eb-slider-image"
                                            src={image.url}
                                            alt={
                                                image.alt
                                                    ? image.alt
                                                    : image.title
                                            }
                                        />
                                    </a>
                                </>
                            )}
                        {sliderType === "image" &&
                            !image.buttonUrl &&
                            !image.isValidUrlf && (
                                <img
                                    className="eb-slider-image"
                                    src={image.url}
                                    alt={image.alt ? image.alt : image.title}
                                />
                            )}
                        {sliderType === "content" && (
                            <>
                                <img
                                    className="eb-slider-image"
                                    src={image.url}
                                    alt={image.alt ? image.alt : image.title}
                                />
                                <div
                                    className={`eb-slider-content align-${textAlign}`}
                                >
                                    {image.title && image.title.length > 0 && (
                                        <>
                                            <TitleTag
                                                className="eb-slider-title"
                                                dangerouslySetInnerHTML={{
                                                    __html: image.title,
                                                }}
                                            ></TitleTag>
                                        </>

                                    )}
                                    {image.subtitle &&
                                        image.subtitle.length > 0 && (
                                            <ContentTag
                                                className="eb-slider-subtitle"
                                                dangerouslySetInnerHTML={{
                                                    __html: image.subtitle,
                                                }}
                                            ></ContentTag>
                                        )}
                                    <div className="eb-slider-button-wrapper">
                                        {image.showButton &&
                                            image.buttonText &&
                                            image.buttonText.length > 0 && (
                                                <a
                                                    href={
                                                        image.buttonUrl &&
                                                            image.isValidUrl
                                                            ? image.buttonUrl
                                                            : "#"
                                                    }
                                                    className="eb-slider-button"
                                                    target={
                                                        image.openNewTab
                                                            ? "_blank"
                                                            : "_self"
                                                    }
                                                    rel="noopener"
                                                    dangerouslySetInnerHTML={{
                                                        __html:
                                                            image.buttonText,
                                                    }}
                                                ></a>
                                            )}

                                        {image.showSecondButton &&
                                            image.secondButtonText &&
                                            image.secondButtonText.length >
                                            0 && (
                                                <a
                                                    href={
                                                        image.secondButtonUrl &&
                                                            image.isValidUrl
                                                            ? image.secondButtonUrl
                                                            : "#"
                                                    }
                                                    className="eb-slider-second-button"
                                                    target={
                                                        image.secondButtonOpenNewTab
                                                            ? "_blank"
                                                            : "_self"
                                                    }
                                                    rel="noopener"
                                                    dangerouslySetInnerHTML={{
                                                        __html:
                                                            image.secondButtonText,
                                                    }}
                                                ></a>
                                            )}
                                    </div>
                                </div>
                            </>
                        )}
                    </div>
                ))}
            </Slider>,
            wrapper
        );
    }
});