Current File : //home/quantums/bodyguardslosangeles.net/wp-content/plugins/portfolio-kit/assets/js/pk-block.jsx
(function (wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents, serverSideRender) {
    const { registerBlockType } = wp.blocks;
    const { InspectorControls, useBlockProps, MediaUpload, MediaUploadCheck } = wp.blockEditor;
    const { useState } = wp.element;
    const ServerSideRender = serverSideRender;
    const { PanelBody, PanelRow, Button, Spinner, ResponsiveWrapper, CheckboxControl, TextControl, IconButton, TextareaControl, SelectControl, RangeControl } = wp.components;
    const { __ } = wpI18n;

    registerBlockType('pk/portfoliokit', {
        title: 'Portfolio Kit',
        apiVersion: 2,
        category: 'pk_blocks',
        keywords: ['portfolio'],
        attributes: {
            template: {
                type: 'string',
                default: pk_global_settings.pk_settings_loop_template != '' ? pk_global_settings.pk_settings_loop_template : 'classic'
            },
            sort_panel_p: {
                type: 'boolean',
                default: true
            },
            order: {
                type: 'string',
                default: 'DESC'
            },
            posts_per_page: {
                type: 'number',
                default: pk_global_settings.pk_settings_loop_posts_per_page != '' ? parseInt(pk_global_settings.pk_settings_loop_posts_per_page) : 6
            },
            cols: {
                type: 'string',
                default: pk_global_settings.pk_settings_loop_cols != '' ? pk_global_settings.pk_settings_loop_cols : '2'
            },
            pagination: {
                type: 'string',
                default: pk_global_settings.pk_settings_loop_pagination != '' ? pk_global_settings.pk_settings_loop_pagination : 'numbers'
            },
        },
        edit: (props) => {
            const { attributes, setAttributes } = props;

            const blockProps = useBlockProps();
            return (
                <div>
                    <InspectorControls>
                        <PanelBody
                            title={__('Portfolio Kit', 'portfolio-kit')}
                            initialOpen={true}
                        >
                            <PanelRow>
                                <SelectControl
                                    label={__('Template', 'portfolio-kit')}
                                    value={attributes.template}
                                    options={[
                                        { label: __('Classic', 'portfolio-kit'), value: 'classic' },
                                        { label: __('Modern', 'portfolio-kit'), value: 'modern' },
                                        { label: __('Modern button', 'portfolio-kit'), value: 'modern-button' },
                                    ]}
                                    onChange={(newval) => setAttributes({ template: newval })}
                                />
                            </PanelRow>
                            <PanelRow>
                                <CheckboxControl
                                    label={__('Sort panel', 'portfolio-kit')}
                                    checked={attributes.sort_panel_p}
                                    onChange={(newval) => setAttributes({ sort_panel_p: newval })}
                                />
                            </PanelRow>
                            <PanelRow>
                                <SelectControl
                                    label={__('Order', 'portfolio-kit')}
                                    value={attributes.order}
                                    options={[
                                        { label: __('Descending', 'portfolio-kit'), value: 'DESC' },
                                        { label: __('Ascending', 'portfolio-kit'), value: 'ASC' },
                                    ]}
                                    onChange={(newval) => setAttributes({ order: newval })}
                                />
                            </PanelRow>
                            <PanelRow>
                                <RangeControl
                                    label={__('Items per page', 'portfolio-kit')}
                                    value={attributes.posts_per_page}
                                    onChange={(val) => setAttributes({ posts_per_page: val })}
                                    min={1}
                                    max={40}
                                />
                            </PanelRow>
                            <PanelRow>
                                <SelectControl
                                    label={__('Columns number', 'portfolio-kit')}
                                    value={attributes.cols}
                                    options={[
                                        { label: __('1', 'portfolio-kit'), value: '1' },
                                        { label: __('2', 'portfolio-kit'), value: '2' },
                                        { label: __('3', 'portfolio-kit'), value: '3' },
                                        { label: __('4', 'portfolio-kit'), value: '4' },
                                        { label: __('5', 'portfolio-kit'), value: '5' },
                                    ]}
                                    onChange={(newval) => setAttributes({ cols: newval })}
                                />
                            </PanelRow>
                            <PanelRow>
                                <SelectControl
                                    label={__('Type of pages pagination', 'portfolio-kit')}
                                    value={attributes.pagination}
                                    options={[
                                        { label: __('Numbers', 'portfolio-kit'), value: 'numbers' },
                                        { label: __('Load more ajax', 'portfolio-kit'), value: 'ajax' },
                                    ]}
                                    onChange={(newval) => setAttributes({ pagination: newval })}
                                />
                            </PanelRow>
                        </PanelBody>
                    </InspectorControls>
                    <div { ...blockProps }>
                        <ServerSideRender
                            block="pk/portfoliokit"
                            attributes={ attributes }
                        />
                    </div>
                </div>
            );
        },
        save: (props) => {
            return null
        }
    });

})(wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components, wp.serverSideRender);