YouTube Video
Default YouTube Video
Set Custom Start and End Video Play Time
Vimeo Video
Default Vimeo Video
Video Title & Play Icon Styling
Hide Video Title
Hide Title and Logo
import JetEngineRepeater from "components/repeater-control.js";
import {
clone
} from '../../utils/utility';
const { __ } = wp.i18n;
const {
registerBlockType
} = wp.blocks;
const {
InspectorControls
} = wp.blockEditor;
const {
PanelColor,
IconButton,
TextControl,
TextareaControl,
SelectControl,
ToggleControl,
PanelBody,
RangeControl,
CheckboxControl,
ExternalLink,
Disabled,
G,
Path,
Circle,
Rect,
SVG,
ServerSideRender
} = wp.components;
if ( -1 !== window.JetEngineListingData.activeModules.indexOf( 'calendar' ) ) {
const GIcon = ;
const blockAttributes = window.JetEngineListingData.atts.listingCalendar;
registerBlockType( 'jet-engine/listing-calendar', {
title: __( 'Listing Calendar' ),
icon: GIcon,
category: 'layout',
attributes: blockAttributes,
className: 'jet-listing-calendar',
edit: class extends wp.element.Component {
constructor( props ) {
if ( ! props.attributes._block_id ) {
props.setAttributes( { _block_id: props.clientId } );
}
super( props );
}
render() {
const props = this.props;
const attributes = props.attributes;
const listingOptions = window.JetEngineListingData.listingOptions;
const hideOptions = window.JetEngineListingData.hideOptions;
const metaTypes = [
{
value: 'CHAR',
label: 'CHAR'
},
{
value: 'NUMERIC',
label: 'NUMERIC'
},
{
value: 'BINARY',
label: 'BINARY'
},
{
value: 'DATE',
label: 'DATE'
},
{
value: 'DATETIME',
label: 'DATETIME'
},
{
value: 'DECIMAL',
label: 'DECIMAL'
},
{
value: 'SIGNED',
label: 'SIGNED'
},
{
value: 'UNSIGNED',
label: 'UNSIGNED'
}
];
const updateItem = function( item, key, value, prop ) {
prop = prop || 'posts_query';
const query = clone( props.attributes[ prop ] );
const index = getItemIndex( item );
const currentItem = query[ getItemIndex( item, prop ) ];
if ( ! currentItem ) {
return;
}
if ( 'object' === typeof key ) {
for ( var _key in key ) {
currentItem[_key] = key[_key];
}
} else {
currentItem[ key ] = value;
}
query[ index ] = currentItem;
props.setAttributes( { [ prop ]: query } );
};
const getItemIndex = function( item, prop ) {
prop = prop || 'posts_query';
return props.attributes[ prop ].findIndex( queryItem => {
return queryItem == item;
} );
};
return [
props.isSelected && (
}
}
{ 'posts_params' === item.type &&
}
{ 'order_offset' === item.type &&
}
{ 'tax_query' === item.type &&
}
{ 'meta_clause' === item.order_by &&
}
{ 'meta_query' === item.type &&
}
}