403Webshell
Server IP : 198.38.94.67  /  Your IP : 216.73.217.74
Web Server : LiteSpeed
System : Linux d6054.dxb1.stableserver.net 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64
User : azfilmst ( 1070)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/azfilmst/zeuszamani.com/wp-content/plugins/themerain-core/includes/blocks/slider/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/azfilmst/zeuszamani.com/wp-content/plugins/themerain-core/includes/blocks/slider/index.js
const { registerBlockType } = wp.blocks;
const { createElement, useEffect, useRef, useState } = wp.element;
const { useBlockProps, BlockControls, BlockVerticalAlignmentToolbar, InspectorControls, MediaPlaceholder, MediaReplaceFlow } = wp.blockEditor;
const { PanelBody, RangeControl, ToggleControl, SelectControl } = wp.components;

registerBlockType("themerain/slider", {
  edit: function(props) {
    const { attributes: { verticalAlign, images, columns, columnsTablet, columnsMobile, space, spaceTablet, spaceMobile, loop, autoplay, center, ratio }, setAttributes, isSelected } = props;
    const hasImages = !!images.length;
    const swiperContainerRef = useRef(null);
    const [swiperKey, setSwiperKey] = useState(0);
    const blockProps = useBlockProps({
      className: verticalAlign ? `is-vertically-aligned-${verticalAlign}` : ''
    });

    useEffect(() => {
      setSwiperKey(prevKey => prevKey + 1);
    }, [images, columns, columnsTablet, columnsMobile, space, spaceTablet, spaceMobile, loop, autoplay, center]);

    const imagesList = images.map(image =>
      createElement("swiper-slide", { key: image.id },
        createElement("img", { src: image.url, alt: image.alt })
      )
    );

    const onSelectImages = function(newImages) {
      setAttributes({
        images: newImages.map(newImage => ({
          id: newImage.id,
          url: newImage.url
        }))
      });
    };

    const mediaPlaceholder = createElement(MediaPlaceholder, {
      onSelect: onSelectImages,
      allowedTypes: ["image"],
      accept: "image/*",
      multiple: "add",
      labels: {
        title: "Slider",
        instructions: "Drag images, upload new ones or select files from your library."
      }
    });

    if (!hasImages) {
      return createElement(
        "div",
        blockProps,
        mediaPlaceholder
      );
    }

    return createElement(
      "div",
      blockProps,
      createElement(
        BlockControls,
        null,
        createElement(
          BlockVerticalAlignmentToolbar, {
            value: verticalAlign,
            onChange: (value) => {
              setAttributes({ verticalAlign: value })
            }
          }
        )
      ),
      createElement(
        BlockControls,
        { group: "other" },
        createElement(
          MediaReplaceFlow, {
            onSelect: onSelectImages,
            allowedTypes: ["image"],
            accept: "image/*",
            multiple: "add",
            name: "Edit",
            mediaIds: images.filter((image) => image.id).map((image) => image.id),
            addToGallery: hasImages
          }
        )
      ),
      createElement(
        InspectorControls,
        null,
        createElement(
          PanelBody,
          { title: "Slider Settings" },
          createElement(RangeControl, {
            label: "Columns",
            value: columns,
            min: 1,
            max: 7,
            step: 0.1,
            required: true,
            onChange: function(value) {
              setAttributes({ columns: value })
            }
          }),
          createElement(RangeControl, {
            label: "Space Between",
            value: space,
            min: 0,
            required: true,
            onChange: function(value) {
              setAttributes({ space: value })
            }
          }),
          createElement(ToggleControl, {
            label: "Loop",
            checked: loop,
            onChange: function() {
              setAttributes({ loop: !loop })
            }
          }),
          createElement(ToggleControl, {
            label: "Autoplay",
            checked: autoplay,
            onChange: function() {
              setAttributes({ autoplay: !autoplay })
            }
          }),
          createElement(ToggleControl, {
            label: "Centered slides",
            checked: center,
            onChange: function() {
              setAttributes({ center: !center })
            }
          }),
          createElement(SelectControl, {
            label: "Ratio",
            value: ratio,
            options: [
              { label: "Original", value: "original" },
              { label: "Square - 1:1", value: "1/1" },
              { label: "Standard - 4:3", value: "4/3" },
              { label: "Portrait - 3:4", value: "3/4" },
              { label: "Classic - 3:2", value: "3/2" },
              { label: "Classic Portrait - 2:3", value: "2/3" },
              { label: "Wide - 16:9", value: "16/9" },
              { label: "Tall - 9:16", value: "9/16" }
            ],
            onChange: function(value) {
              setAttributes({ ratio: value })
            }
          })
        ),
        createElement(
          PanelBody,
          { title: "Table Settings", initialOpen: false },
          createElement(RangeControl, {
            label: "Columns",
            value: columnsTablet,
            min: 1,
            max: 7,
            step: 0.1,
            required: true,
            onChange: function(value) {
              setAttributes({ columnsTablet: value })
            }
          }),
          createElement(RangeControl, {
            label: "Space Between",
            value: spaceTablet,
            min: 0,
            required: true,
            onChange: function(value) {
              setAttributes({ spaceTablet: value })
            }
          }),
        ),
        createElement(
          PanelBody,
          { title: "Mobile Settings", initialOpen: false },
          createElement(RangeControl, {
            label: "Columns",
            value: columnsMobile,
            min: 1,
            max: 7,
            step: 0.1,
            required: true,
            onChange: function(value) {
              setAttributes({ columnsMobile: value })
            }
          }),
          createElement(RangeControl, {
            label: "Space Between",
            value: spaceMobile,
            min: 0,
            required: true,
            onChange: function(value) {
              setAttributes({ spaceMobile: value })
            }
          }),
        )
      ),
      createElement(
        "swiper-container",
        {
          key: swiperKey,
          ref: swiperContainerRef,
          "slides-per-view": columnsMobile,
          "space-between": spaceMobile,
          "loop": loop,
          "centered-slides": center,
          "data-ratio": ratio,
          breakpoints: '{"600": {"slidesPerView": '+columnsTablet+', "spaceBetween": '+spaceTablet+'}, "1024": {"slidesPerView": '+columns+', "spaceBetween": '+space+'}}'
        },
        imagesList
      )
    );
  }
});

Youez - 2016 - github.com/yon3zu
LinuXploit