var el = wp.element.createElement; BlockControls = wp.editor.BlockControls, AlignmentToolbar = wp.editor.AlignmentToolbar, registerBlockType = wp.blocks.registerBlockType, blockStyle = { backgroundColor: '#ccc', color: '#000', padding: '20px' }; var keys_attr = ""; if (keys_arr) { keys_attr = keys_arr; } var fst_sections = fudu_sections; if ( fst_sections ) { jQuery( fst_sections ).each(function(key,value) { var key = key+1; var blockOptions = { title: value.sec_title, category: 'fudu-sections', attributes: keys_attr, edit: function( props ) { var className = props.className; var slug = value.slug; if(props) { props.setAttributes( { slug:slug } ); } return el( 'div', { className: className }, el( 'lable', { for: value.sec_title }, value.sec_title ) ); }, save: function(props) { return null; }, }; if (value.icon) { blockOptions.icon = value.icon; }; registerBlockType( 'fst-sections/section-'+key, blockOptions ); }); } var __ = wp.i18n.__; var el = wp.element.createElement; var withInspectorControls = wp.compose.createHigherOrderComponent( function( BlockEdit ) { return function( props ) { var className = props.className; var check_slug = props.attributes.slug ; handleChange = name => newValue => { if (newValue!=undefined) { if (newValue.url && props) { props.setAttributes({ [name]: newValue.url }); jQuery('.'+name).html(""); jQuery(".image-block-btn").addClass("img-settings"); } else if (props) { props.setAttributes({ [name]: newValue }); } } else { props.setAttributes({ [name]: newValue }); } }; RemoveblockMediaUploade = name => newValue => { props.setAttributes({ [name]: "" }); jQuery('.'+name).html(""); } var fst_section_settings = []; if (settings_arr) { jQuery( settings_arr ).each(function(setting_key,setting_val) { var setting_key = setting_val.key; var default_val = setting_val.default; if (props.attributes[setting_key] != "") { var value = props.attributes[setting_key] || default_val; } if (setting_val.slug == check_slug) { if ( setting_val.type == 'text' || setting_val.type == 'font_size' ) { fst_section_settings.push(el(wp.components.TextControl, { label: __(setting_val.label), value: value, onChange: handleChange(setting_key), }),); } else if (setting_val.type == 'number') { fst_section_settings.push(el(wp.components.TextControl, { label: __(setting_val.label), value: value, type: 'number', onChange: handleChange(setting_key), }),); } else if (setting_val.type == 'textarea') { fst_section_settings.push(el(wp.components.TextareaControl , { label: __(setting_val.label+" / HTML" ), value: value, tagName: 'textarea', rows:8, onChange: handleChange(setting_key), }),); } else if (setting_val.type == 'select' || setting_val.type == 'font_family') { var options_arr = []; var p = setting_val.option; for (var key in p) { options_arr.push( { value: key, label: p[key] },); } fst_section_settings.push(el( wp.components.SelectControl, { label: __(setting_val.label), value: value, options: options_arr , onChange: handleChange(setting_key), } ),); } else if (setting_val.type == 'color') { fst_section_settings.push( el( 'label', {}, __( setting_val.label ) )), fst_section_settings.push(el(wp.components.ColorPalette, { value: value, onChange: handleChange(setting_key), } ) ); } else if (setting_val.type == 'file') { fst_section_settings.push( el( 'label', {}, __( setting_val.label ) )), fst_section_settings.push(el(wp.editor.MediaUpload, { onSelect: handleChange(setting_key), type: 'image', value:value, render: function( obj ) { return el( wp.components.Button, { className: 'components-icon-button image-block-btn is-button is-default is-large block-img-tag '+setting_key, onClick: obj.open }, el( 'img', { src: value,className:'remove-block-'+setting_key } ), ); } }) ); fst_section_settings.push(el(wp.editor.MediaUpload, { type: 'button', value:value, render: function( obj ) { return el( 'button', { className: 'components-button is-link is-destructive', onClick: RemoveblockMediaUploade(setting_key), }, __( "Remove Image" ) ); } }) ); } else if (setting_val.type == 'font_icon') { var icons_arr = []; var p = setting_val.font_icons; for (var key in p) { icons_arr.push( { value: key, label: key },); } fst_section_settings.push(el( wp.components.SelectControl, { label: __(setting_val.label), value: value, options: icons_arr , onChange: handleChange(setting_key), } ),); } } }); } var fst_section_fields = []; if (fst_sections) { jQuery( fst_sections ).each(function(key,value) { if (value.slug == check_slug) { fst_section_fields.push(el( wp.editor.InspectorControls, {}, el( wp.components.PanelBody, { title: __(value.sec_title+" Setting"), className: "", initialOpen: true }, fst_section_settings ), ) ); } }); } if (check_slug) { return el( wp.element.Fragment, {}, el( BlockEdit, props ), fst_section_fields ); } else { return el( wp.element.Fragment, {}, el( BlockEdit, props ), ); } }; }, 'withInspectorControls' ); wp.hooks.addFilter( 'editor.BlockEdit', 'my-plugin/with-inspector-controls', withInspectorControls );