Changeset 2226020
- Timestamp:
- 01/12/2020 09:32:59 AM (6 years ago)
- Location:
- block-extras
- Files:
-
- 32 added
- 5 edited
-
assets/screenshot-1.gif (added)
-
assets/screenshot-2.gif (added)
-
assets/screenshot-3.png (modified) (previous)
-
assets/screenshot-4.png (added)
-
assets/screenshot-5.png (added)
-
tags/1.0 (added)
-
tags/1.0/assets (added)
-
tags/1.0/assets/banner-1544x500.png (added)
-
tags/1.0/assets/banner-772x250.png (added)
-
tags/1.0/assets/icon.svg (added)
-
tags/1.0/assets/screenshot-1.png (added)
-
tags/1.0/assets/screenshot-2.png (added)
-
tags/1.0/assets/screenshot-3.png (added)
-
tags/1.0/block-extras.php (added)
-
tags/1.0/build (added)
-
tags/1.0/build/block-extras-admin.css (added)
-
tags/1.0/build/block-extras-admin.js (added)
-
tags/1.0/build/block-extras.css (added)
-
tags/1.0/build/borderRadius.svg (added)
-
tags/1.0/build/boxShadow.svg (added)
-
tags/1.0/build/index.asset.php (added)
-
tags/1.0/build/index.js (added)
-
tags/1.0/build/letterSpacing.svg (added)
-
tags/1.0/build/lineHeight.svg (added)
-
tags/1.0/build/margin.svg (added)
-
tags/1.0/build/marginSide.svg (added)
-
tags/1.0/build/padding.svg (added)
-
tags/1.0/build/paddingSide.svg (added)
-
tags/1.0/inc (added)
-
tags/1.0/inc/blockExtras.php (added)
-
tags/1.0/inc/blockExtrasSettings.php (added)
-
tags/1.0/index.php (added)
-
tags/1.0/readme.txt (added)
-
trunk/build/index.asset.php (modified) (1 diff)
-
trunk/build/index.js (modified) (1 diff)
-
trunk/inc/blockExtrasSettings.php (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
block-extras/trunk/build/index.asset.php
r2225833 r2226020 1 <?php return array('dependencies' => array('react', 'wp-element', 'wp-polyfill'), 'version' => ' 3f4213d715797b0f1b35240feeaba1cc');1 <?php return array('dependencies' => array('react', 'wp-element', 'wp-polyfill'), 'version' => '275c7705de7eba178f1f0c3c76c61b77'); -
block-extras/trunk/build/index.js
r2225833 r2226020 1 (function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{enumerable:true,get:getter})}};__webpack_require__.r=function(exports){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(exports,"__esModule",{value:true})};__webpack_require__.t=function(value,mode){if(mode&1)value=__webpack_require__(value);if(mode&8)return value;if(mode&4&&typeof value==="object"&&value&&value.__esModule)return value;var ns=Object.create(null);__webpack_require__.r(ns);Object.defineProperty(ns,"default",{enumerable:true,value:value});if(mode&2&&typeof value!="string")for(var key in value)__webpack_require__.d(ns,key,function(key){return value[key]}.bind(null,key));return ns};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module["default"]}:function getModuleExports(){return module};__webpack_require__.d(getter,"a",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p="";return __webpack_require__(__webpack_require__.s="./src/index.js")})({"./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":function(module,exports){function _arrayWithoutHoles(arr){if(Array.isArray(arr)){for(var i=0,arr2=new Array(arr.length);i<arr.length;i++){arr2[i]=arr[i]}return arr2}}module.exports=_arrayWithoutHoles},"./node_modules/@babel/runtime/helpers/defineProperty.js":function(module,exports){function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}module.exports=_defineProperty},"./node_modules/@babel/runtime/helpers/iterableToArray.js":function(module,exports){function _iterableToArray(iter){if(Symbol.iterator in Object(iter)||Object.prototype.toString.call(iter)==="[object Arguments]")return Array.from(iter)}module.exports=_iterableToArray},"./node_modules/@babel/runtime/helpers/nonIterableSpread.js":function(module,exports){function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}module.exports=_nonIterableSpread},"./node_modules/@babel/runtime/helpers/toConsumableArray.js":function(module,exports,__webpack_require__){var arrayWithoutHoles=__webpack_require__("./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");var iterableToArray=__webpack_require__("./node_modules/@babel/runtime/helpers/iterableToArray.js");var nonIterableSpread=__webpack_require__("./node_modules/@babel/runtime/helpers/nonIterableSpread.js");function _toConsumableArray(arr){return arrayWithoutHoles(arr)||iterableToArray(arr)||nonIterableSpread()}module.exports=_toConsumableArray},"./src/components.js":function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"RangeSlider",function(){return RangeSlider});__webpack_require__.d(__webpack_exports__,"LockIcon",function(){return LockIcon});var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@babel/runtime/helpers/defineProperty.js");var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("@wordpress/element");var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);var react__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("react");var react__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);var RangeControl=wp.components.RangeControl;var __=wp.i18n.__;function RangeSlider(_ref){var attribute=_ref.attribute,title=_ref.title,_ref$value=_ref.value,value=_ref$value===void 0?0:_ref$value,setAttributes=_ref.setAttributes,blockConfig=_ref.blockConfig;var setValue=Object(react__WEBPACK_IMPORTED_MODULE_2__["useCallback"])(function(newValue){setAttributes(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()({},attribute,newValue))},[setAttributes]);var total=value*blockConfig.step;if(blockConfig.step.toString().indexOf(".")!=-1){total=(Math.round(total*100)/100).toFixed(2)}return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div",{className:"block-extras-control-wrapper"},Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span",{className:"block-extras-icon block-extras-icon-"+attribute,title:__(title)}),Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(RangeControl,{value:value,min:blockConfig.min,max:blockConfig.max,initialPosition:value,onChange:setValue}),Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span",{className:"block-extras-range-label"},value!=blockConfig.default?total+(blockConfig.stepUnit?"px":""):"default"))}function LockIcon(_ref2){var elementGroup=_ref2.elementGroup,locked=_ref2.locked;if(locked){return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span",null,Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16"},Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("path",{fill:"#000000",d:"M9.25 7h-0.25v-3c0-1.654-1.346-3-3-3h-2c-1.654 0-3 1.346-3 3v3h-0.25c-0.412 0-0.75 0.338-0.75 0.75v7.5c0 0.412 0.338 0.75 0.75 0.75h8.5c0.412 0 0.75-0.338 0.75-0.75v-7.5c0-0.412-0.338-0.75-0.75-0.75zM3 4c0-0.551 0.449-1 1-1h2c0.551 0 1 0.449 1 1v3h-4v-3z"})),"Change individual sides")}else{return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span",null,Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16"},Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("path",{fill:"#000000",d:"M12 1c1.654 0 3 1.346 3 3v3h-2v-3c0-0.551-0.449-1-1-1h-2c-0.551 0-1 0.449-1 1v3h0.25c0.412 0 0.75 0.338 0.75 0.75v7.5c0 0.412-0.338 0.75-0.75 0.75h-8.5c-0.412 0-0.75-0.338-0.75-0.75v-7.5c0-0.412 0.338-0.75 0.75-0.75h6.25v-3c0-1.654 1.346-3 3-3h2z"})),"Change all sides")}}},"./src/functions.js":function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"getClasses",function(){return getClasses});__webpack_require__.d(__webpack_exports__,"showElement",function(){return showElement});__webpack_require__.d(__webpack_exports__,"getAttributesFromClass",function(){return getAttributesFromClass});__webpack_require__.d(__webpack_exports__,"getElementValue",function(){return getElementValue});__webpack_require__.d(__webpack_exports__,"getClassFromAttributes",function(){return getClassFromAttributes});__webpack_require__.d(__webpack_exports__,"getValidAttributes",function(){return getValidAttributes});var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@babel/runtime/helpers/toConsumableArray.js");var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__);var _blockExtras=blockExtras,elementConfig=_blockExtras.elementConfig,blockConfig=_blockExtras.blockConfig;var getElementClass=function getElementClass(element,value){var className=elementConfig[element].className+"-";if(parseInt(value)<0){className+="n"}return className+Math.abs(value)};function getClasses(){var allClasses={},i;Object.keys(elementConfig).forEach(function(element){for(i=elementConfig[element].min;i<=elementConfig[element].max;i++){allClasses[getElementClass(element,i)]={value:i,type:element,default:elementConfig[element].default==i}}});return allClasses}var allClasses=getClasses();var showElement=function showElement(element,hasSideElements,lockStatus,attributes){var show=true;if(hasSideElements){if(["margin","padding"].includes(element)){show=lockStatus}else{if(["marginLeft","marginRight"].includes(element)&&attributes.align){show=false}else{show=!lockStatus}}}return show};var getClassArray=function getClassArray(className){var classArray=[];if(className&&className.length){classArray=_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(new Set(className.split(" ")))}return classArray};var getAttributesFromClass=function getAttributesFromClass(blockType,className,attributes){getClassArray(className).forEach(function(classPart,classKey){if(allClasses[classPart]){attributes[allClasses[classPart].type]=allClasses[classPart].value}});return attributes};var getElementValue=function getElementValue(blockType,elementType,variable){var value;Object.keys(blockConfig[blockType]).forEach(function(block){Object.keys(blockConfig[blockType][block]).forEach(function(type){if(type==elementType){value=blockConfig[blockType][block][type][variable];return false}})});return value};var getClassFromAttributes=function getClassFromAttributes(blockType,className,attributes){var originalClassArray=getClassArray(className),classArray=[];Object.keys(allClasses).forEach(function(classKey){if(originalClassArray.includes(classKey)){originalClassArray=originalClassArray.filter(function(item){return item!==classKey})}if(attributes[allClasses[classKey].type]==allClasses[classKey].value&&attributes[allClasses[classKey].type]!=getElementValue(blockType,allClasses[classKey].type,"default")){if(!classArray.includes(classKey)){classArray.push(classKey)}}});Object.keys(elementConfig).forEach(function(element){if(originalClassArray.includes(elementConfig[element].className+"-")){originalClassArray=originalClassArray.filter(function(item){return item!==elementConfig[element].className+"-"})}else if(originalClassArray.includes(elementConfig[element].className+"-n")){originalClassArray=originalClassArray.filter(function(item){return item!==elementConfig[element].className+"-n"})}});return[].concat(classArray,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(originalClassArray)).join(" ")};var noSideMargins=[];var getValidAttributes=function getValidAttributes(blockType,attributes){var min,max;Object.keys(elementConfig).forEach(function(element){if(attributes.align&&noSideMargins.includes(attributes.align)&&["marginLeft","marginRight"].includes(element)||!getElementValue(blockType,element,"enabled")){delete attributes[element]}else{min=getElementValue(blockType,element,"min");max=getElementValue(blockType,element,"max");if(attributes[element]<min){attributes[element]=min}else if(attributes[element]>max){attributes[element]=max}}});return attributes}},"./src/index.js":function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@babel/runtime/helpers/defineProperty.js");var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("@wordpress/element");var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);var _functions__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/functions.js");var _components__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/components.js");var createHigherOrderComponent=wp.compose.createHigherOrderComponent;var Fragment=wp.element.Fragment;var InspectorControls=wp.blockEditor.InspectorControls;var PanelBody=wp.components.PanelBody;var addFilter=wp.hooks.addFilter;var __=wp.i18n.__;var sides=["Top","Right","Bottom","Left"];var _blockExtras=blockExtras,elementConfig=_blockExtras.elementConfig,blockConfig=_blockExtras.blockConfig,help=_blockExtras.help;var addExtraControlAttributes=function addExtraControlAttributes(settings,name){if(!blockConfig[name]){return settings}Object.keys(blockConfig[name]).forEach(function(block){Object.keys(blockConfig[name][block]).forEach(function(type){settings.attributes[type]={type:"string",default:blockConfig[name][block][type].default}})});return settings};var withExtraControls=createHigherOrderComponent(function(BlockEdit){return function(props){if(!blockConfig[props.name]){return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(BlockEdit,props)}props.attributes=Object(_functions__WEBPACK_IMPORTED_MODULE_2__["getValidAttributes"])(props.name,props.attributes);props.attributes.className=Object(_functions__WEBPACK_IMPORTED_MODULE_2__["getClassFromAttributes"])(props.name,props.attributes.className,props.attributes);if(typeof props.attributes.lockStatus=="undefined"){props.attributes.lockStatus={}}return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(Fragment,null,Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(BlockEdit,props),Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(InspectorControls,null,Object.keys(blockConfig[props.name]).map(function(elementGroup){var hasElements=false;Object.keys(blockConfig[props.name][elementGroup]).forEach(function(element){if(blockConfig[props.name][elementGroup][element].enabled){hasElements=true;return false}});if(hasElements){var hasSideElements=false;if((blockConfig[props.name][elementGroup]["margin"]||blockConfig[props.name][elementGroup]["padding"])&&Object.keys(blockConfig[props.name][elementGroup]).length>1){hasSideElements=true;if(typeof props.attributes.lockStatus[elementGroup]=="undefined"){props.attributes.lockStatus[elementGroup]=true;Object.keys(blockConfig[props.name][elementGroup]).forEach(function(element){if(blockConfig[props.name][elementGroup][element].enabled&&!["margin","padding"].includes(element)&&props.attributes[element]!=blockConfig[props.name][elementGroup][element].default){props.attributes.lockStatus[elementGroup]=false;return false}})}}return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(PanelBody,{title:__(elementGroup),initialOpen:true},hasSideElements?Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("a",{className:"block-extras-control-lock"+(props.attributes.lockStatus[elementGroup]?" locked":""),onClick:function onClick(){if(props.attributes.lockStatus[elementGroup]){props.attributes[elementGroup.toLowerCase()]=blockConfig[props.name][elementGroup][elementGroup.toLowerCase()].default}else{sides.forEach(function(side){props.attributes[elementGroup.toLowerCase()+side]=blockConfig[props.name][elementGroup][elementGroup.toLowerCase()+side].default})}props.setAttributes({lockStatus:_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()({},elementGroup,!props.attributes.lockStatus[elementGroup])})}},Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_components__WEBPACK_IMPORTED_MODULE_3__["LockIcon"],{elementGroup:elementGroup,locked:props.attributes.lockStatus[elementGroup]})):"",Object.keys(blockConfig[props.name][elementGroup]).map(function(element){if(blockConfig[props.name][elementGroup][element].enabled&&Object(_functions__WEBPACK_IMPORTED_MODULE_2__["showElement"])(element,hasSideElements,props.attributes.lockStatus[elementGroup],props.attributes)){return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_components__WEBPACK_IMPORTED_MODULE_3__["RangeSlider"],{attribute:element,title:help[element][0],blockConfig:blockConfig[props.name][elementGroup][element],value:props.attributes[element],setAttributes:props.setAttributes})}}))}})))}},"withExtraControls");var addExtraProps=function addExtraProps(saveElementProps,blockType,attributes){if(!blockType||!blockConfig[blockType.name]){return saveElementProps}attributes=Object(_functions__WEBPACK_IMPORTED_MODULE_2__["getAttributesFromClass"])(blockType.name,saveElementProps.className,attributes);saveElementProps.className=Object(_functions__WEBPACK_IMPORTED_MODULE_2__["getClassFromAttributes"])(blockType.name,saveElementProps.className,attributes);return saveElementProps};addFilter("blocks.registerBlockType","block-extras/attribute/extra",addExtraControlAttributes);addFilter("editor.BlockEdit","block-extras/extra-controls",withExtraControls);addFilter("blocks.getSaveContent.extraProps","block-extras/get-save-content/extra-props",addExtraProps)},"@wordpress/element":function(module,exports){(function(){module.exports=this["wp"]["element"]})()},react:function(module,exports){(function(){module.exports=this["React"]})()}}); 1 /******/ (function(modules) { // webpackBootstrap 2 /******/ // The module cache 3 /******/ var installedModules = {}; 4 /******/ 5 /******/ // The require function 6 /******/ function __webpack_require__(moduleId) { 7 /******/ 8 /******/ // Check if module is in cache 9 /******/ if(installedModules[moduleId]) { 10 /******/ return installedModules[moduleId].exports; 11 /******/ } 12 /******/ // Create a new module (and put it into the cache) 13 /******/ var module = installedModules[moduleId] = { 14 /******/ i: moduleId, 15 /******/ l: false, 16 /******/ exports: {} 17 /******/ }; 18 /******/ 19 /******/ // Execute the module function 20 /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 21 /******/ 22 /******/ // Flag the module as loaded 23 /******/ module.l = true; 24 /******/ 25 /******/ // Return the exports of the module 26 /******/ return module.exports; 27 /******/ } 28 /******/ 29 /******/ 30 /******/ // expose the modules object (__webpack_modules__) 31 /******/ __webpack_require__.m = modules; 32 /******/ 33 /******/ // expose the module cache 34 /******/ __webpack_require__.c = installedModules; 35 /******/ 36 /******/ // define getter function for harmony exports 37 /******/ __webpack_require__.d = function(exports, name, getter) { 38 /******/ if(!__webpack_require__.o(exports, name)) { 39 /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 40 /******/ } 41 /******/ }; 42 /******/ 43 /******/ // define __esModule on exports 44 /******/ __webpack_require__.r = function(exports) { 45 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 46 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 47 /******/ } 48 /******/ Object.defineProperty(exports, '__esModule', { value: true }); 49 /******/ }; 50 /******/ 51 /******/ // create a fake namespace object 52 /******/ // mode & 1: value is a module id, require it 53 /******/ // mode & 2: merge all properties of value into the ns 54 /******/ // mode & 4: return value when already ns object 55 /******/ // mode & 8|1: behave like require 56 /******/ __webpack_require__.t = function(value, mode) { 57 /******/ if(mode & 1) value = __webpack_require__(value); 58 /******/ if(mode & 8) return value; 59 /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 60 /******/ var ns = Object.create(null); 61 /******/ __webpack_require__.r(ns); 62 /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 63 /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 64 /******/ return ns; 65 /******/ }; 66 /******/ 67 /******/ // getDefaultExport function for compatibility with non-harmony modules 68 /******/ __webpack_require__.n = function(module) { 69 /******/ var getter = module && module.__esModule ? 70 /******/ function getDefault() { return module['default']; } : 71 /******/ function getModuleExports() { return module; }; 72 /******/ __webpack_require__.d(getter, 'a', getter); 73 /******/ return getter; 74 /******/ }; 75 /******/ 76 /******/ // Object.prototype.hasOwnProperty.call 77 /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 78 /******/ 79 /******/ // __webpack_public_path__ 80 /******/ __webpack_require__.p = ""; 81 /******/ 82 /******/ 83 /******/ // Load entry module and return exports 84 /******/ return __webpack_require__(__webpack_require__.s = "./src/index.js"); 85 /******/ }) 86 /************************************************************************/ 87 /******/ ({ 88 89 /***/ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js": 90 /*!******************************************************************!*\ 91 !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***! 92 \******************************************************************/ 93 /*! no static exports found */ 94 /***/ (function(module, exports) { 95 96 function _arrayWithoutHoles(arr) { 97 if (Array.isArray(arr)) { 98 for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { 99 arr2[i] = arr[i]; 100 } 101 102 return arr2; 103 } 104 } 105 106 module.exports = _arrayWithoutHoles; 107 108 /***/ }), 109 110 /***/ "./node_modules/@babel/runtime/helpers/defineProperty.js": 111 /*!***************************************************************!*\ 112 !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! 113 \***************************************************************/ 114 /*! no static exports found */ 115 /***/ (function(module, exports) { 116 117 function _defineProperty(obj, key, value) { 118 if (key in obj) { 119 Object.defineProperty(obj, key, { 120 value: value, 121 enumerable: true, 122 configurable: true, 123 writable: true 124 }); 125 } else { 126 obj[key] = value; 127 } 128 129 return obj; 130 } 131 132 module.exports = _defineProperty; 133 134 /***/ }), 135 136 /***/ "./node_modules/@babel/runtime/helpers/iterableToArray.js": 137 /*!****************************************************************!*\ 138 !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***! 139 \****************************************************************/ 140 /*! no static exports found */ 141 /***/ (function(module, exports) { 142 143 function _iterableToArray(iter) { 144 if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); 145 } 146 147 module.exports = _iterableToArray; 148 149 /***/ }), 150 151 /***/ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js": 152 /*!******************************************************************!*\ 153 !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***! 154 \******************************************************************/ 155 /*! no static exports found */ 156 /***/ (function(module, exports) { 157 158 function _nonIterableSpread() { 159 throw new TypeError("Invalid attempt to spread non-iterable instance"); 160 } 161 162 module.exports = _nonIterableSpread; 163 164 /***/ }), 165 166 /***/ "./node_modules/@babel/runtime/helpers/toConsumableArray.js": 167 /*!******************************************************************!*\ 168 !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***! 169 \******************************************************************/ 170 /*! no static exports found */ 171 /***/ (function(module, exports, __webpack_require__) { 172 173 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles */ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js"); 174 175 var iterableToArray = __webpack_require__(/*! ./iterableToArray */ "./node_modules/@babel/runtime/helpers/iterableToArray.js"); 176 177 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread */ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js"); 178 179 function _toConsumableArray(arr) { 180 return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); 181 } 182 183 module.exports = _toConsumableArray; 184 185 /***/ }), 186 187 /***/ "./src/components.js": 188 /*!***************************!*\ 189 !*** ./src/components.js ***! 190 \***************************/ 191 /*! exports provided: RangeSlider, LockIcon */ 192 /***/ (function(module, __webpack_exports__, __webpack_require__) { 193 194 "use strict"; 195 __webpack_require__.r(__webpack_exports__); 196 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RangeSlider", function() { return RangeSlider; }); 197 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LockIcon", function() { return LockIcon; }); 198 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 199 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); 200 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 201 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 202 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react"); 203 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); 204 205 206 207 var RangeControl = wp.components.RangeControl; 208 var __ = wp.i18n.__; 209 210 function RangeSlider(_ref) { 211 var attribute = _ref.attribute, 212 title = _ref.title, 213 _ref$value = _ref.value, 214 value = _ref$value === void 0 ? 0 : _ref$value, 215 setAttributes = _ref.setAttributes, 216 blockConfig = _ref.blockConfig; 217 var setValue = Object(react__WEBPACK_IMPORTED_MODULE_2__["useCallback"])(function (newValue) { 218 setAttributes(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()({}, attribute, newValue)); 219 }, [setAttributes]); 220 var total = value * blockConfig.step; 221 222 if (blockConfig.step.toString().indexOf('.') != -1) { 223 total = (Math.round(total * 100) / 100).toFixed(2); 224 } 225 226 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 227 className: 'block-extras-control-wrapper' 228 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", { 229 className: 'block-extras-icon block-extras-icon-' + attribute, 230 title: __(title) 231 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(RangeControl, { 232 value: value, 233 min: blockConfig.min, 234 max: blockConfig.max, 235 initialPosition: value, 236 onChange: setValue 237 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", { 238 className: 'block-extras-range-label' 239 }, value != blockConfig.default ? total + (blockConfig.stepUnit ? 'px' : '') : 'default')); 240 } 241 242 function LockIcon(_ref2) { 243 var elementGroup = _ref2.elementGroup, 244 locked = _ref2.locked; 245 246 if (locked) { 247 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("svg", { 248 xmlns: "http://www.w3.org/2000/svg", 249 width: "16", 250 height: "16", 251 viewBox: "0 0 16 16" 252 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("path", { 253 fill: "#000000", 254 d: "M9.25 7h-0.25v-3c0-1.654-1.346-3-3-3h-2c-1.654 0-3 1.346-3 3v3h-0.25c-0.412 0-0.75 0.338-0.75 0.75v7.5c0 0.412 0.338 0.75 0.75 0.75h8.5c0.412 0 0.75-0.338 0.75-0.75v-7.5c0-0.412-0.338-0.75-0.75-0.75zM3 4c0-0.551 0.449-1 1-1h2c0.551 0 1 0.449 1 1v3h-4v-3z" 255 })), "Change individual sides"); 256 } else { 257 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("svg", { 258 xmlns: "http://www.w3.org/2000/svg", 259 width: "16", 260 height: "16", 261 viewBox: "0 0 16 16" 262 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("path", { 263 fill: "#000000", 264 d: "M12 1c1.654 0 3 1.346 3 3v3h-2v-3c0-0.551-0.449-1-1-1h-2c-0.551 0-1 0.449-1 1v3h0.25c0.412 0 0.75 0.338 0.75 0.75v7.5c0 0.412-0.338 0.75-0.75 0.75h-8.5c-0.412 0-0.75-0.338-0.75-0.75v-7.5c0-0.412 0.338-0.75 0.75-0.75h6.25v-3c0-1.654 1.346-3 3-3h2z" 265 })), "Change all sides"); 266 } 267 } 268 269 270 271 /***/ }), 272 273 /***/ "./src/functions.js": 274 /*!**************************!*\ 275 !*** ./src/functions.js ***! 276 \**************************/ 277 /*! exports provided: getClasses, showElement, getAttributesFromClass, getElementValue, getClassFromAttributes, getValidAttributes */ 278 /***/ (function(module, __webpack_exports__, __webpack_require__) { 279 280 "use strict"; 281 __webpack_require__.r(__webpack_exports__); 282 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; }); 283 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showElement", function() { return showElement; }); 284 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAttributesFromClass", function() { return getAttributesFromClass; }); 285 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElementValue", function() { return getElementValue; }); 286 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClassFromAttributes", function() { return getClassFromAttributes; }); 287 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getValidAttributes", function() { return getValidAttributes; }); 288 /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "./node_modules/@babel/runtime/helpers/toConsumableArray.js"); 289 /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__); 290 291 var _blockExtras = blockExtras, 292 elementConfig = _blockExtras.elementConfig, 293 blockConfig = _blockExtras.blockConfig; 294 295 var getElementClass = function getElementClass(element, value) { 296 var className = elementConfig[element].className + '-'; 297 298 if (parseInt(value) < 0) { 299 className += 'n'; 300 } 301 302 return className + Math.abs(value); 303 }; 304 305 function getClasses() { 306 var allClasses = {}, 307 i; 308 Object.keys(elementConfig).forEach(function (element) { 309 for (i = elementConfig[element].min; i <= elementConfig[element].max; i++) { 310 allClasses[getElementClass(element, i)] = { 311 value: i, 312 type: element, 313 default: elementConfig[element].default == i 314 }; 315 } 316 }); 317 return allClasses; 318 } 319 320 ; 321 var allClasses = getClasses(); 322 323 var showElement = function showElement(element, hasSideElements, lockStatus, attributes) { 324 var show = true; 325 326 if (hasSideElements) { 327 if (['margin', 'padding'].includes(element)) { 328 show = lockStatus; 329 } else { 330 if (['marginLeft', 'marginRight'].includes(element) && attributes.align) { 331 show = false; 332 } else { 333 show = !lockStatus; 334 } 335 } 336 } 337 338 return show; 339 }; 340 341 var getClassArray = function getClassArray(className) { 342 var classArray = []; 343 344 if (className && className.length) { 345 classArray = _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(new Set(className.split(' '))); 346 } 347 348 return classArray; 349 }; 350 351 var getAttributesFromClass = function getAttributesFromClass(blockType, className, attributes) { 352 getClassArray(className).forEach(function (classPart, classKey) { 353 if (allClasses[classPart]) { 354 attributes[allClasses[classPart].type] = allClasses[classPart].value; 355 } 356 }); 357 return attributes; 358 }; 359 360 var getElementValue = function getElementValue(blockType, elementType, variable) { 361 var value; 362 Object.keys(blockConfig[blockType]).forEach(function (block) { 363 Object.keys(blockConfig[blockType][block]).forEach(function (type) { 364 if (type == elementType) { 365 value = blockConfig[blockType][block][type][variable]; 366 return false; 367 } 368 }); 369 }); 370 return value; 371 }; 372 373 var getClassFromAttributes = function getClassFromAttributes(blockType, className, attributes) { 374 var originalClassArray = getClassArray(className), 375 classArray = [], 376 defaultOriginal = false; 377 Object.keys(allClasses).forEach(function (classKey) { 378 defaultOriginal = false; 379 380 if (originalClassArray.includes(classKey)) { 381 originalClassArray = originalClassArray.filter(function (item) { 382 return item !== classKey; 383 }); 384 385 if (attributes[allClasses[classKey].type] == getElementValue(blockType, allClasses[classKey].type, 'default')) { 386 defaultOriginal = true; 387 } 388 } 389 390 if (attributes[allClasses[classKey].type] == allClasses[classKey].value) { 391 if (attributes[allClasses[classKey].type] != getElementValue(blockType, allClasses[classKey].type, 'default') || defaultOriginal) { 392 if (!classArray.includes(classKey)) { 393 classArray.push(classKey); 394 } 395 } 396 } 397 }); 398 Object.keys(elementConfig).forEach(function (element) { 399 if (originalClassArray.includes(elementConfig[element].className + '-')) { 400 originalClassArray = originalClassArray.filter(function (item) { 401 return item !== elementConfig[element].className + '-'; 402 }); 403 } else if (originalClassArray.includes(elementConfig[element].className + '-n')) { 404 originalClassArray = originalClassArray.filter(function (item) { 405 return item !== elementConfig[element].className + '-n'; 406 }); 407 } 408 }); 409 return [].concat(classArray, _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(originalClassArray)).join(' '); 410 }; 411 412 var noSideMargins = []; //'full', 'wide']; 413 414 var getValidAttributes = function getValidAttributes(blockType, attributes) { 415 var min, max; 416 Object.keys(elementConfig).forEach(function (element) { 417 if (attributes.align && noSideMargins.includes(attributes.align) && ['marginLeft', 'marginRight'].includes(element) || !getElementValue(blockType, element, 'enabled')) { 418 delete attributes[element]; 419 } else { 420 min = getElementValue(blockType, element, 'min'); 421 max = getElementValue(blockType, element, 'max'); 422 423 if (attributes[element] < min) { 424 attributes[element] = min; 425 } else if (attributes[element] > max) { 426 attributes[element] = max; 427 } 428 } 429 }); 430 return attributes; 431 }; 432 433 434 435 /***/ }), 436 437 /***/ "./src/index.js": 438 /*!**********************!*\ 439 !*** ./src/index.js ***! 440 \**********************/ 441 /*! no exports provided */ 442 /***/ (function(module, __webpack_exports__, __webpack_require__) { 443 444 "use strict"; 445 __webpack_require__.r(__webpack_exports__); 446 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 447 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); 448 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 449 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 450 /* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./functions */ "./src/functions.js"); 451 /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components */ "./src/components.js"); 452 453 454 455 456 var createHigherOrderComponent = wp.compose.createHigherOrderComponent; 457 var Fragment = wp.element.Fragment; 458 var InspectorControls = wp.blockEditor.InspectorControls; 459 var PanelBody = wp.components.PanelBody; 460 var addFilter = wp.hooks.addFilter; 461 var __ = wp.i18n.__; 462 var sides = ['Top', 'Right', 'Bottom', 'Left']; 463 var _blockExtras = blockExtras, 464 elementConfig = _blockExtras.elementConfig, 465 blockConfig = _blockExtras.blockConfig, 466 help = _blockExtras.help; 467 468 var addExtraControlAttributes = function addExtraControlAttributes(settings, name) { 469 if (!blockConfig[name]) { 470 return settings; 471 } 472 473 Object.keys(blockConfig[name]).forEach(function (block) { 474 Object.keys(blockConfig[name][block]).forEach(function (type) { 475 settings.attributes[type] = { 476 type: 'string', 477 default: blockConfig[name][block][type].default 478 }; 479 }); 480 }); 481 return settings; 482 }; 483 484 var withExtraControls = createHigherOrderComponent(function (BlockEdit) { 485 return function (props) { 486 if (!blockConfig[props.name]) { 487 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(BlockEdit, props); 488 } 489 490 props.attributes = Object(_functions__WEBPACK_IMPORTED_MODULE_2__["getValidAttributes"])(props.name, props.attributes); 491 props.attributes.className = Object(_functions__WEBPACK_IMPORTED_MODULE_2__["getClassFromAttributes"])(props.name, props.attributes.className, props.attributes); 492 props.attributes.className = Object(_functions__WEBPACK_IMPORTED_MODULE_2__["getClassFromAttributes"])(props.name, props.attributes.className, props.attributes); 493 494 if (typeof props.attributes.lockStatus == 'undefined') { 495 props.attributes.lockStatus = {}; 496 } 497 498 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(Fragment, null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(BlockEdit, props), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(InspectorControls, null, Object.keys(blockConfig[props.name]).map(function (elementGroup) { 499 // Group panel 500 var hasElements = false; 501 Object.keys(blockConfig[props.name][elementGroup]).forEach(function (element) { 502 if (blockConfig[props.name][elementGroup][element].enabled) { 503 hasElements = true; 504 return false; 505 } 506 }); 507 508 if (hasElements) { 509 var hasSideElements = false; 510 511 if ((blockConfig[props.name][elementGroup]['margin'] || blockConfig[props.name][elementGroup]['padding']) && Object.keys(blockConfig[props.name][elementGroup]).length > 1) { 512 hasSideElements = true; 513 514 if (typeof props.attributes.lockStatus[elementGroup] == 'undefined') { 515 props.attributes.lockStatus[elementGroup] = true; 516 Object.keys(blockConfig[props.name][elementGroup]).forEach(function (element) { 517 if (blockConfig[props.name][elementGroup][element].enabled && !['margin', 'padding'].includes(element) && props.attributes[element] != blockConfig[props.name][elementGroup][element].default) { 518 props.attributes.lockStatus[elementGroup] = false; 519 return false; 520 } 521 }); 522 } 523 } 524 525 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(PanelBody, { 526 title: __(elementGroup), 527 initialOpen: true 528 }, hasSideElements ? Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("a", { 529 className: 'block-extras-control-lock' + (props.attributes.lockStatus[elementGroup] ? ' locked' : ''), 530 onClick: function onClick() { 531 if (props.attributes.lockStatus[elementGroup]) { 532 props.attributes[elementGroup.toLowerCase()] = blockConfig[props.name][elementGroup][elementGroup.toLowerCase()].default; 533 } else { 534 sides.forEach(function (side) { 535 props.attributes[elementGroup.toLowerCase() + side] = blockConfig[props.name][elementGroup][elementGroup.toLowerCase() + side].default; 536 }); 537 } 538 539 props.setAttributes({ 540 lockStatus: _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()({}, elementGroup, !props.attributes.lockStatus[elementGroup]) 541 }); 542 } 543 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_components__WEBPACK_IMPORTED_MODULE_3__["LockIcon"], { 544 elementGroup: elementGroup, 545 locked: props.attributes.lockStatus[elementGroup] 546 })) : '', Object.keys(blockConfig[props.name][elementGroup]).map(function (element) { 547 if (blockConfig[props.name][elementGroup][element].enabled && Object(_functions__WEBPACK_IMPORTED_MODULE_2__["showElement"])(element, hasSideElements, props.attributes.lockStatus[elementGroup], props.attributes)) { 548 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_components__WEBPACK_IMPORTED_MODULE_3__["RangeSlider"], { 549 attribute: element, 550 title: help[element][0], 551 blockConfig: blockConfig[props.name][elementGroup][element], 552 value: props.attributes[element], 553 setAttributes: props.setAttributes 554 }); 555 } 556 })); 557 } 558 }))); 559 }; 560 }, 'withExtraControls'); 561 562 var addExtraProps = function addExtraProps(saveElementProps, blockType, attributes) { 563 if (!blockType || !blockConfig[blockType.name]) { 564 return saveElementProps; 565 } 566 567 attributes = Object(_functions__WEBPACK_IMPORTED_MODULE_2__["getAttributesFromClass"])(blockType.name, saveElementProps.className, attributes); 568 saveElementProps.className = Object(_functions__WEBPACK_IMPORTED_MODULE_2__["getClassFromAttributes"])(blockType.name, saveElementProps.className, attributes); 569 return saveElementProps; 570 }; 571 572 addFilter('blocks.registerBlockType', 'block-extras/attribute/extra', addExtraControlAttributes); 573 addFilter('editor.BlockEdit', 'block-extras/extra-controls', withExtraControls); 574 addFilter('blocks.getSaveContent.extraProps', 'block-extras/get-save-content/extra-props', addExtraProps); 575 576 /***/ }), 577 578 /***/ "@wordpress/element": 579 /*!******************************************!*\ 580 !*** external {"this":["wp","element"]} ***! 581 \******************************************/ 582 /*! no static exports found */ 583 /***/ (function(module, exports) { 584 585 (function() { module.exports = this["wp"]["element"]; }()); 586 587 /***/ }), 588 589 /***/ "react": 590 /*!*********************************!*\ 591 !*** external {"this":"React"} ***! 592 \*********************************/ 593 /*! no static exports found */ 594 /***/ (function(module, exports) { 595 596 (function() { module.exports = this["React"]; }()); 597 598 /***/ }) 599 600 /******/ }); 601 //# sourceMappingURL=index.js.map -
block-extras/trunk/inc/blockExtrasSettings.php
r2225833 r2226020 122 122 $htmlPanes .= '<div class="' . $this->prefix . '-group hidden" data-group="' . $block . '"><h3>' . $this->translate($this->getBlockTitle( $block )) . ' ' . $this->translate('block settings') . '</h3>'; 123 123 $htmlPanes .= '<p>' . $this->translate('Tick attributes to enable use for this block. Minimum and maximums are defined under all blocks.') . '</p>'; 124 $htmlPanes .= '<p>' . $this->translate('Default settings should match your theme\'s CSS defaults for each attribute.') . '</p>'; 124 125 foreach ( $this->blockExtras->getGroupedTypes( $blockType['allowedTypes'] ) as $group => $types ) { 125 126 $htmlPanes .= '<h4><span>' . $group . '</span><label>' . $this->translate('Minimum') . $this->helpIcon( 'min' ) . '</label><label>' . $this->translate('Maximum') . $this->helpIcon( 'max' ) . '</label><label>Default' . $this->helpIcon( 'default' ) . '</label></h4>'; -
block-extras/trunk/readme.txt
r2225833 r2226020 1 1 === Block Extras === 2 2 Contributors: gt81plugins 3 Tags: gutenberg, blocks, gutenberg blocks, editor 3 Donate link: https://www.gutenbergextras.com/ 4 Tags: gutenberg, blocks, gutenberg blocks, editor, gutenberg, page builder, extra attributes, default blocks 4 5 Requires at least: 5.0 5 6 Tested up to: 5.3.2 6 Stable tag: 1.0 7 Stable tag: 1.0.1 7 8 Requires PHP: 5.3 8 9 License: GPLv2 or later 9 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html 10 11 11 This plugin adds extra options to default Gutenberg blocks. These options include margin, padding, line height, letter spacing and rounded corners.12 Block extras adds extra attributes to default Gutenberg blocks. Attributes include margin, padding, line height, letter spacing and rounded corners. 12 13 13 14 == Description == 14 15 15 Block extras adds new options to several of the default Gutenberg blocks listed below. A list of utility CSS classes is generated by the plugin and used to add the relevant CSS attribute to your blocks. 16 Block extras adds new attributes to many of the default Gutenberg blocks. This allows extra customisation on top of your theme's CSS, within the parameters you allow. 17 18 The plugin uses utility auto-generated CSS classes to add the relevant CSS attribute to your blocks, **no inline styles are used**. 16 19 17 20 * Individual margins (including negative) and padding can be applied to many block types. 18 21 * Typography blocks (paragraphs and headings) can have line height and letter spacing applied. 19 * Rounded corners can be applied to groups .22 * Rounded corners can be applied to groups blocks. 20 23 21 24 = Blocks currently supported = … … 44 47 = Can I customise the stylesheet? = 45 48 46 No, stylesheet is automatically created when changing allblock settings.49 No, the stylesheet is automatically created when changing any block settings. 47 50 48 51 = Can I change how much of an attribute is applied? = 49 52 50 You can only apply the minimum and maximumsettings to an attribute. Individual customisation is not currently possible.53 You can only apply the minimum, maximum and default settings to an attribute. Individual customisation is not currently possible. 51 54 52 55 == Screenshots == 53 56 54 1. Gutenberg side panel showing options for a group - margin, padding and rounded corners 55 2. Gutenberg side panel showing options for a paragraph - margin, padding, line height and letter spacing 56 3. Block extras options screen 57 1. Group block with margins and rounded corners being applied 58 2. Heading block with line height and letter spacing being applied 59 3. Gutenberg side panel showing options for a group block - margin, padding and rounded corners 60 4. Gutenberg side panel showing options for a paragraph block - margin, padding, line height and letter spacing 61 5. Block extras options screen 57 62 58 63 == Changelog == 59 64 65 = 1.01 = 66 * Fixed an issue when changing an attribute's default value where the any blocks with that new default showed a gutenberg unexpected block error 67 60 68 = 1.0 = 61 69 * Initial release
Note: See TracChangeset
for help on using the changeset viewer.