Plugin Directory

Changeset 2226020


Ignore:
Timestamp:
01/12/2020 09:32:59 AM (6 years ago)
Author:
gt81plugins
Message:

Added version 1.0.1 with a bug fix

Location:
block-extras
Files:
32 added
5 edited

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
     96function _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
     106module.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
     117function _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
     132module.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
     143function _iterableToArray(iter) {
     144  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
     145}
     146
     147module.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
     158function _nonIterableSpread() {
     159  throw new TypeError("Invalid attempt to spread non-iterable instance");
     160}
     161
     162module.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
     173var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles */ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
     174
     175var iterableToArray = __webpack_require__(/*! ./iterableToArray */ "./node_modules/@babel/runtime/helpers/iterableToArray.js");
     176
     177var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread */ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js");
     178
     179function _toConsumableArray(arr) {
     180  return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();
     181}
     182
     183module.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
     207var RangeControl = wp.components.RangeControl;
     208var __ = wp.i18n.__;
     209
     210function 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
     242function 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
     291var _blockExtras = blockExtras,
     292    elementConfig = _blockExtras.elementConfig,
     293    blockConfig = _blockExtras.blockConfig;
     294
     295var 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
     305function 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;
     321var allClasses = getClasses();
     322
     323var 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
     341var 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
     351var 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
     360var 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
     373var 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
     412var noSideMargins = []; //'full', 'wide'];
     413
     414var 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
     456var createHigherOrderComponent = wp.compose.createHigherOrderComponent;
     457var Fragment = wp.element.Fragment;
     458var InspectorControls = wp.blockEditor.InspectorControls;
     459var PanelBody = wp.components.PanelBody;
     460var addFilter = wp.hooks.addFilter;
     461var __ = wp.i18n.__;
     462var sides = ['Top', 'Right', 'Bottom', 'Left'];
     463var _blockExtras = blockExtras,
     464    elementConfig = _blockExtras.elementConfig,
     465    blockConfig = _blockExtras.blockConfig,
     466    help = _blockExtras.help;
     467
     468var 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
     484var 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
     562var 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
     572addFilter('blocks.registerBlockType', 'block-extras/attribute/extra', addExtraControlAttributes);
     573addFilter('editor.BlockEdit', 'block-extras/extra-controls', withExtraControls);
     574addFilter('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  
    122122            $htmlPanes .= '<div class="' . $this->prefix . '-group hidden" data-group="' . $block . '"><h3>' . $this->translate($this->getBlockTitle( $block )) . ' ' . $this->translate('block settings') . '</h3>';
    123123            $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>';
    124125            foreach ( $this->blockExtras->getGroupedTypes( $blockType['allowedTypes'] ) as $group => $types ) {
    125126                $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  
    11=== Block Extras ===
    22Contributors: gt81plugins
    3 Tags: gutenberg, blocks, gutenberg blocks, editor
     3Donate link: https://www.gutenbergextras.com/
     4Tags: gutenberg,  blocks, gutenberg blocks, editor, gutenberg, page builder, extra attributes, default blocks
    45Requires at least: 5.0
    56Tested up to: 5.3.2
    6 Stable tag: 1.0
     7Stable tag: 1.0.1
    78Requires PHP: 5.3
    89License: GPLv2 or later
    910License URI: https://www.gnu.org/licenses/gpl-2.0.html
    1011
    11 This plugin adds extra options to default Gutenberg blocks. These options include margin, padding, line height, letter spacing and rounded corners.
     12Block extras adds extra attributes to default Gutenberg blocks. Attributes include margin, padding, line height, letter spacing and rounded corners.
    1213
    1314== Description ==
    1415
    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.
     16Block 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
     18The plugin uses utility auto-generated CSS classes to add the relevant CSS attribute to your blocks, **no inline styles are used**.
    1619
    1720* Individual margins (including negative) and padding can be applied to many block types.
    1821* 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.
    2023
    2124= Blocks currently supported =
     
    4447= Can I customise the stylesheet? =
    4548
    46 No, stylesheet is automatically created when changing all block settings.
     49No, the stylesheet is automatically created when changing any block settings.
    4750
    4851= Can I change how much of an attribute is applied? =
    4952
    50 You can only apply the minimum and maximum settings to an attribute. Individual customisation is not currently possible.
     53You can only apply the minimum, maximum and default settings to an attribute. Individual customisation is not currently possible.
    5154
    5255== Screenshots ==
    5356
    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
     571. Group block with margins and rounded corners being applied
     582. Heading block with line height and letter spacing being applied
     593. Gutenberg side panel showing options for a group block - margin, padding and rounded corners
     604. Gutenberg side panel showing options for a paragraph block - margin, padding, line height and letter spacing
     615. Block extras options screen
    5762
    5863== Changelog ==
    5964
     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
    6068= 1.0 =
    6169* Initial release
Note: See TracChangeset for help on using the changeset viewer.