Current File : /home/getxxhzo/xpertbee.com/wp-content/plugins/popup-builder/public/js/gutenbergBlock.js |
function SGPBGutenbergBlock()
{
}
SGPBGutenbergBlock.prototype.init = function()
{
var localizedParams = SGPB_GUTENBERG_PARAMS;
var __ = wp.i18n;
var createElement = wp.element.createElement;
var registerBlockType = wp.blocks.registerBlockType;
var InspectorControls = wp.editor.InspectorControls;
var _wp$components = wp.components,
SelectControl = _wp$components.SelectControl,
TextareaControl = _wp$components.TextareaControl,
ToggleControl = _wp$components.ToggleControl,
PanelBody = _wp$components.PanelBody,
ServerSideRender = _wp$components.ServerSideRender,
Placeholder = _wp$components.Placeholder;
registerBlockType('popupbuilder/popups', {
title: localizedParams.title,
description: localizedParams.description,
keywords: ['popup', 'popup-builder'],
category: 'widgets',
icon: 'welcome-widgets-menus',
attributes: {
popupId: {
type: 'number'
},
popupEvent: {
type: 'string'
}
},
edit(props) {
const {
attributes: {
popupId = '',
displayTitle = false,
displayDesc = false,
popupEvent = ''
},
setAttributes
} = props;
const formOptions = SGPB_GUTENBERG_PARAMS.allPopups.map(value => (
{
value: value.id,
label: value.title
}
)
);
const eventsOptions = SGPB_GUTENBERG_PARAMS.allEvents.map(value => (
{
value: value.value,
label: value.title
}
)
);
let jsx;
formOptions.unshift({
value: '',
label: SGPB_GUTENBERG_PARAMS.i18n.form_select
});
function selectPopup(value) {
setAttributes({
popupId: value
});
}
function selectEvent(value) {
setAttributes({
popupEvent: value
});
}
function setContent(value) {
setAttributes({
content: value
});
}
function toggleDisplayTitle(value) {
setAttributes({
displayTitle: value
});
}
function toggleDisplayDesc(value) {
setAttributes({
displayDesc: value
});
}
jsx = [
<InspectorControls key="popuopbuilder-gutenberg-form-selector-inspector-controls">
<PanelBody title={'popup builder title'}>
<SelectControl
label = {SGPB_GUTENBERG_PARAMS.i18n.form_selected}
value = {popupId}
options = {formOptions}
onChange = {selectPopup}
/>
<SelectControl
label = {SGPB_GUTENBERG_PARAMS.i18n.form_selected}
value = {popupId}
options = {eventsOptions}
onChange = {selectEvent}
/>
<ToggleControl
label = {SGPB_GUTENBERG_PARAMS.i18n.show_title}
checked = {displayTitle}
onChange = {toggleDisplayTitle}
/>
<ToggleControl
label = {SGPB_GUTENBERG_PARAMS.i18n.show_description}
checked = {displayDesc}
onChange = {toggleDisplayDesc}
/>
</PanelBody>
</InspectorControls>
];
if (popupId && popupEvent) {
var clickText = '';
if (popupEvent == 'click') {
clickText = 'click me';
}
return '[sg_popup id="'+popupId+'" event="'+popupEvent+'"]'+clickText+'[/sg_popup]';
}
else {
jsx.push(
<Placeholder
key="sgpb-gutenberg-form-selector-wrap"
className="sgpb-gutenberg-form-selector-wrapper">
<img class={SGPB_GUTENBERG_PARAMS.logo_classname} src={ SGPB_GUTENBERG_PARAMS.logo_url }/>
<SelectControl
key = "sgpb-gutenberg-form-selector-select-control"
value = {popupId}
options = {formOptions}
onChange = {selectPopup}
/>
<SelectControl
key = "sgpb-gutenberg-form-selector-select-control"
value = {popupEvent}
options = {eventsOptions}
onChange = {selectEvent}
/>
</Placeholder>
);
}
return jsx;
},
save(props) {
var clickText = '';
if (props.attributes.popupEvent == 'click') {
clickText = SGPB_GUTENBERG_PARAMS.clickText;
}
return '[sg_popup id="'+props.attributes.popupId+'" event="'+props.attributes.popupEvent+'"]'+clickText+'[/sg_popup]';
}
});
};
jQuery(document).ready(function () {
if (typeof wp != 'undefined' && typeof wp.element != 'undefined' && typeof wp.blocks != 'undefined' && typeof wp.editor != 'undefined' && typeof wp.components != 'undefined') {
var block = new SGPBGutenbergBlock();
block.init();
}
});