Plugin Directory

Changeset 2045515


Ignore:
Timestamp:
03/06/2019 08:42:23 PM (7 years ago)
Author:
dwayneparton
Message:

Block simplification. Theme developers should be responsible for the appearance.

Location:
gecko-section/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • gecko-section/trunk/dist/editor-styles.css

    r2039731 r2045515  
    1 .gecko-section-editor {
    2   --background-color:transparent;
    3   --opacity: 0.7;
     1.gecko-section {
    42  position: relative;
    5   background-color: var(--background-color);
    6   background-size: cover;
    7   background-position: center;
    83  padding: 1rem;
    94  border: dashed 1px pink;
    105}
    11 .gecko-section-editor--image:before {
    12   content: "";
    13   background-color: inherit;
    14   opacity: var(--opacity);
    15   position: absolute;
    16   height: 100%;
    17   width: 100%;
    18   top: 0;
    19   left: 0;
    20 }
    21 .gecko-section-editor.is-style-lg .gecko-section-editor__content {
     6.gecko-section.is-size-lg .gecko-section__inner {
    227  max-width: 71.5rem;
    238}
    24 .gecko-section-editor.is-style-md .gecko-section-editor__content {
     9.gecko-section.is-size-md .gecko-section__inner {
    2510  max-width: 61.5rem;
    2611}
    27 .gecko-section-editor.is-style-sm .gecko-section-editor__content {
     12.gecko-section.is-size-sm .gecko-section__inner {
    2813  max-width: 51.5rem;
    2914}
    30 .gecko-section-editor__content {
     15.gecko-section__inner {
    3116  padding: 1rem;
    3217  border: dashed 1px pink;
     
    3520}
    3621
    37 .editor-block-preview__content .gecko-section-editor {
    38   border: none;
    39   background-color: #F0F0F0;
    40   padding: 1rem 5px;
    41 }
    42 .editor-block-preview__content .gecko-section-editor__content {
    43   border: none;
    44   background-color: #FFFFFF;
    45   max-width: 100%;
    46 }
    47 .editor-block-preview__content .gecko-section-editor.is-style-lg .gecko-section-editor__content {
    48   max-width: 90%;
    49 }
    50 .editor-block-preview__content .gecko-section-editor.is-style-md .gecko-section-editor__content {
    51   max-width: 80%;
    52 }
    53 .editor-block-preview__content .gecko-section-editor.is-style-sm .gecko-section-editor__content {
    54   max-width: 70%;
    55 }
     22/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZWRpdG9yLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCLEMiLCJmaWxlIjoiZWRpdG9yLXN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZ2Vja28tc2VjdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiBkYXNoZWQgMXB4IHBpbms7XG59XG4uZ2Vja28tc2VjdGlvbi5pcy1zaXplLWxnIC5nZWNrby1zZWN0aW9uX19pbm5lciB7XG4gIG1heC13aWR0aDogNzEuNXJlbTtcbn1cbi5nZWNrby1zZWN0aW9uLmlzLXNpemUtbWQgLmdlY2tvLXNlY3Rpb25fX2lubmVyIHtcbiAgbWF4LXdpZHRoOiA2MS41cmVtO1xufVxuLmdlY2tvLXNlY3Rpb24uaXMtc2l6ZS1zbSAuZ2Vja28tc2VjdGlvbl9faW5uZXIge1xuICBtYXgtd2lkdGg6IDUxLjVyZW07XG59XG4uZ2Vja28tc2VjdGlvbl9faW5uZXIge1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IGRhc2hlZCAxcHggcGluaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBweCBhdXRvO1xufSJdLCJzb3VyY2VSb290IjoiIn0=*/
  • gecko-section/trunk/dist/editor.bundle.js

    r2039731 r2045515  
    1 !function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/wp-content/plugins/gecko-section/dist/",n(n.s=7)}([function(e,t){e.exports=window.wp.components},function(e,t){e.exports=window.wp.i18n},function(e,t){e.exports=React},function(e,t){e.exports=window.wp.editor},function(e,t){e.exports=window.wp.blocks},,,function(e,t,n){"use strict";n.r(t);var a=n(4),o=n(2),c=n.n(o),l=n(1),r=function(e){var t=e.value,n=e.onSelect,a=[{slug:"solid",name:"Solid",icon:c.a.createElement("span",{class:"dashicons dashicons-admin-appearance"})},{slug:"image",name:"Image",icon:c.a.createElement("span",{class:"dashicons dashicons-format-image"})}];return c.a.createElement("div",{className:"wp-block-gecko-grid-layout-type-select"},c.a.createElement("p",null,"Choose a background type."),a.map(function(e){var a="";return e.slug===t&&(a="wp-block-gecko-grid-layout-type-select__item--selected"),c.a.createElement("div",{className:"wp-block-gecko-grid-layout-type-select__item ".concat(a),onClick:function(){return function(e){return n(e)}(e.slug)}},e.icon,e.name)}))},i=n(0),u=n(3),s={title:Object(l.__)("Section"),icon:React.createElement(i.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},React.createElement(i.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),React.createElement(i.G,null,React.createElement(i.Path,{d:"M4,18 L20,18 L20,7 L4,7 L4,16 L20,16 L20,18 L4,18 Z M2,5.125 C2,3.95139491 2.8954305,3 4,3 L20,3 C21.1045695,3 22,3.95139491 22,5.125 L22,17.875 C22,19.0486051 21.1045695,20 20,20 L4,20 C2.93492401,20 2.06429899,19.1154224 2.00340277,18 L2,5.125 Z"}))),category:"layout",description:Object(l.__)("Full width sections wrappers for themes that support them."),supports:{align:["wide","full"],html:!1},deprecated:[],attributes:{type:{type:"string",default:"solid"},bgMedia:{type:"object"},opacity:{type:"number",default:.7},bgColor:{type:"string"}},styles:[{name:"full",label:Object(l.__)("Full"),isDefault:!0},{name:"lg",label:Object(l.__)("Large")},{name:"md",label:Object(l.__)("Medium")},{name:"sm",label:Object(l.__)("Small")}],edit:function(e){var t,n=e.attributes,a=e.setAttributes,o=e.insertBlocksAfter,c=n.bgMedia,l=n.opacity,s=n.bgColor,m=n.type,d=n.className;c&&"image"===c.type&&(t='url("'.concat(c.url,'")'));var p={"--background-color":s,"--opacity":l};return"image"!==m&&"video"!==m||(p.backgroundImage=t),[React.createElement(u.InspectorControls,null,React.createElement(i.PanelBody,{title:"Background Settings"},React.createElement(r,{onSelect:function(e){a({type:e})},value:m}),React.createElement("hr",null),"image"===m&&React.createElement(u.MediaUpload,{onSelect:function(e){a({bgMedia:e})},type:["image"],value:c?c.id:null,render:function(e){var t=e.open;return[React.createElement("div",null,React.createElement(i.Button,{className:c?"image-button":"button button-large",onClick:t},"Choose Background"),c&&React.createElement(i.Button,{className:"button button-small",onClick:function(){a({bgMedia:null})}},"Remove Background"))]}}),"image"===m&&React.createElement(i.RangeControl,{label:"Overlay Opacity",value:l,onChange:function(e){a({opacity:e})},min:"0",max:"0.9",step:"0.1"}),React.createElement("p",null),React.createElement("div",null,React.createElement(u.ColorPalette,{label:"Background Color",value:s||void 0,onChange:function(e){a({bgColor:e})}})),React.createElement("p",null))),React.createElement("div",{className:"gecko-section-editor ".concat(d," gecko-section-editor--").concat(m),style:p},React.createElement("div",{className:"gecko-section-editor__content"},void 0!==o&&React.createElement(u.InnerBlocks,null)))]},save:function(){return React.createElement("div",null,React.createElement(u.InnerBlocks.Content,null))}};Object(a.registerBlockType)("gecko/section",s)}]);
     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 = "/wp-content/plugins/gecko-section/dist/";
     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/defineProperty.js":
     90/*!***************************************************************!*\
     91  !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***!
     92  \***************************************************************/
     93/*! no static exports found */
     94/***/ (function(module, exports) {
     95
     96function _defineProperty(obj, key, value) {
     97  if (key in obj) {
     98    Object.defineProperty(obj, key, {
     99      value: value,
     100      enumerable: true,
     101      configurable: true,
     102      writable: true
     103    });
     104  } else {
     105    obj[key] = value;
     106  }
     107
     108  return obj;
     109}
     110
     111module.exports = _defineProperty;
     112
     113/***/ }),
     114
     115/***/ "./src/index.js":
     116/*!**********************!*\
     117  !*** ./src/index.js ***!
     118  \**********************/
     119/*! no exports provided */
     120/***/ (function(module, __webpack_exports__, __webpack_require__) {
     121
     122"use strict";
     123__webpack_require__.r(__webpack_exports__);
     124/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks");
     125/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__);
     126/* harmony import */ var _section__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./section */ "./src/section.js");
     127/**
     128 * WordPress dependencies
     129 */
     130
     131/**
     132 * Internal dependencies
     133 */
     134
     135
     136Object(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__["registerBlockType"])(_section__WEBPACK_IMPORTED_MODULE_1__["name"], _section__WEBPACK_IMPORTED_MODULE_1__["settings"]);
     137
     138/***/ }),
     139
     140/***/ "./src/section.js":
     141/*!************************!*\
     142  !*** ./src/section.js ***!
     143  \************************/
     144/*! exports provided: name, settings */
     145/***/ (function(module, __webpack_exports__, __webpack_require__) {
     146
     147"use strict";
     148__webpack_require__.r(__webpack_exports__);
     149/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "name", function() { return name; });
     150/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; });
     151/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js");
     152/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
     153/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
     154/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
     155/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
     156/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__);
     157/* harmony import */ var _wordpress_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/editor */ "@wordpress/editor");
     158/* harmony import */ var _wordpress_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_editor__WEBPACK_IMPORTED_MODULE_3__);
     159
     160
     161var _settings;
     162
     163/**
     164 * WordPress dependencies
     165 */
     166
     167
     168
     169/**
     170 * Allowed blocks constant is passed to InnerBlocks precisely as specified here.
     171 * The contents of the array should never change.
     172 * The array should contain the name of each block that is allowed.
     173 * In columns block, the only block we allow is 'dmp/grid-item'.
     174 *
     175 * @constant
     176 * @type {string[]}
     177*/
     178
     179var name = 'gecko/section';
     180var settings = (_settings = {
     181  title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__["__"])('Section'),
     182  icon: React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["SVG"], {
     183    viewBox: "0 0 24 24",
     184    xmlns: "http://www.w3.org/2000/svg"
     185  }, React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["Path"], {
     186    fill: "none",
     187    d: "M0 0h24v24H0V0z"
     188  }), React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["G"], null, React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["Path"], {
     189    d: "M4,18 L20,18 L20,7 L4,7 L4,16 L20,16 L20,18 L4,18 Z M2,5.125 C2,3.95139491 2.8954305,3 4,3 L20,3 C21.1045695,3 22,3.95139491 22,5.125 L22,17.875 C22,19.0486051 21.1045695,20 20,20 L4,20 C2.93492401,20 2.06429899,19.1154224 2.00340277,18 L2,5.125 Z"
     190  }))),
     191  category: 'layout',
     192  description: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__["__"])('Full width sections wrappers for themes that support them.'),
     193  supports: {
     194    align: ['wide', 'full'],
     195    html: false
     196  },
     197  deprecated: [],
     198  attributes: {
     199    size: {
     200      type: 'string' //solid, image, ?video?
     201
     202    }
     203  },
     204  styles: [{
     205    name: 'default',
     206    label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__["__"])('Default'),
     207    isDefault: true
     208  }]
     209}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_settings, "deprecated", [{
     210  migrate: function migrate() {},
     211  save: function save() {
     212    return React.createElement(_wordpress_editor__WEBPACK_IMPORTED_MODULE_3__["InnerBlocks"].Content, null);
     213  }
     214}]), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_settings, "edit", function edit(_ref) {
     215  var attributes = _ref.attributes,
     216      setAttributes = _ref.setAttributes,
     217      insertBlocksAfter = _ref.insertBlocksAfter,
     218      className = _ref.className;
     219  var size = attributes.size;
     220  return [React.createElement(_wordpress_editor__WEBPACK_IMPORTED_MODULE_3__["InspectorControls"], null, React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["PanelBody"], {
     221    title: "Settings"
     222  }, React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["SelectControl"], {
     223    label: "Row Width",
     224    value: size,
     225    options: [{
     226      value: 'full',
     227      label: 'Full'
     228    }, {
     229      value: 'lg',
     230      label: 'Large'
     231    }, {
     232      value: 'md',
     233      label: 'Medium'
     234    }, {
     235      value: 'sm',
     236      label: 'Small'
     237    }],
     238    onChange: function onChange(size) {
     239      setAttributes({
     240        size: size
     241      });
     242    }
     243  }))), React.createElement("div", {
     244    className: "gecko-section ".concat(className, " is-size-").concat(size)
     245  }, React.createElement("div", {
     246    className: "gecko-section__inner"
     247  }, 'undefined' !== typeof insertBlocksAfter && React.createElement(_wordpress_editor__WEBPACK_IMPORTED_MODULE_3__["InnerBlocks"], null)))];
     248}), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_settings, "save", function save() {
     249  return React.createElement("div", null, React.createElement(_wordpress_editor__WEBPACK_IMPORTED_MODULE_3__["InnerBlocks"].Content, null));
     250}), _settings);
     251
     252/***/ }),
     253
     254/***/ "@wordpress/blocks":
     255/*!***********************************!*\
     256  !*** external "window.wp.blocks" ***!
     257  \***********************************/
     258/*! no static exports found */
     259/***/ (function(module, exports) {
     260
     261module.exports = window.wp.blocks;
     262
     263/***/ }),
     264
     265/***/ "@wordpress/components":
     266/*!***************************************!*\
     267  !*** external "window.wp.components" ***!
     268  \***************************************/
     269/*! no static exports found */
     270/***/ (function(module, exports) {
     271
     272module.exports = window.wp.components;
     273
     274/***/ }),
     275
     276/***/ "@wordpress/editor":
     277/*!***********************************!*\
     278  !*** external "window.wp.editor" ***!
     279  \***********************************/
     280/*! no static exports found */
     281/***/ (function(module, exports) {
     282
     283module.exports = window.wp.editor;
     284
     285/***/ }),
     286
     287/***/ "@wordpress/i18n":
     288/*!*********************************!*\
     289  !*** external "window.wp.i18n" ***!
     290  \*********************************/
     291/*! no static exports found */
     292/***/ (function(module, exports) {
     293
     294module.exports = window.wp.i18n;
     295
     296/***/ })
     297
     298/******/ });
     299//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9zZWN0aW9uLmpzIiwid2VicGFjazovLy9leHRlcm5hbCBcIndpbmRvdy53cC5ibG9ja3NcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJ3aW5kb3cud3AuY29tcG9uZW50c1wiIiwid2VicGFjazovLy9leHRlcm5hbCBcIndpbmRvdy53cC5lZGl0b3JcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJ3aW5kb3cud3AuaTE4blwiIl0sIm5hbWVzIjpbInJlZ2lzdGVyQmxvY2tUeXBlIiwic2VjdGlvbiIsIm5hbWUiLCJzZXR0aW5ncyIsInRpdGxlIiwiX18iLCJpY29uIiwiY2F0ZWdvcnkiLCJkZXNjcmlwdGlvbiIsInN1cHBvcnRzIiwiYWxpZ24iLCJodG1sIiwiZGVwcmVjYXRlZCIsImF0dHJpYnV0ZXMiLCJzaXplIiwidHlwZSIsInN0eWxlcyIsImxhYmVsIiwiaXNEZWZhdWx0IiwibWlncmF0ZSIsInNhdmUiLCJzZXRBdHRyaWJ1dGVzIiwiaW5zZXJ0QmxvY2tzQWZ0ZXIiLCJjbGFzc05hbWUiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0RBQTBDLGdDQUFnQztBQUMxRTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdFQUF3RCxrQkFBa0I7QUFDMUU7QUFDQSx5REFBaUQsY0FBYztBQUMvRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQXlDLGlDQUFpQztBQUMxRSx3SEFBZ0gsbUJBQW1CLEVBQUU7QUFDckk7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBMkIsMEJBQTBCLEVBQUU7QUFDdkQseUNBQWlDLGVBQWU7QUFDaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQXNELCtEQUErRDs7QUFFckg7QUFDQTs7O0FBR0E7QUFDQTs7Ozs7Ozs7Ozs7O0FDbEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsaUM7Ozs7Ozs7Ozs7OztBQ2ZBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQUdBO0FBRUE7Ozs7QUFHQTtBQUVBQSwyRUFBaUIsQ0FBQ0MsNkNBQUQsRUFBZUEsaURBQWYsQ0FBakIsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDVkE7OztBQUdBO0FBQ0E7QUFPQTtBQU1BOzs7Ozs7Ozs7O0FBU08sSUFBTUMsSUFBSSxHQUFHLGVBQWI7QUFFQSxJQUFNQyxRQUFRO0FBQ3BCQyxPQUFLLEVBQUVDLDBEQUFFLENBQUUsU0FBRixDQURXO0FBR3BCQyxNQUFJLEVBQUUsb0JBQUMseURBQUQ7QUFBSyxXQUFPLEVBQUMsV0FBYjtBQUF5QixTQUFLLEVBQUM7QUFBL0IsS0FBNEQsb0JBQUMsMERBQUQ7QUFBTSxRQUFJLEVBQUMsTUFBWDtBQUFrQixLQUFDLEVBQUM7QUFBcEIsSUFBNUQsRUFBb0csb0JBQUMsdURBQUQsUUFBRyxvQkFBQywwREFBRDtBQUFNLEtBQUMsRUFBQztBQUFSLElBQUgsQ0FBcEcsQ0FIYztBQUtwQkMsVUFBUSxFQUFFLFFBTFU7QUFPcEJDLGFBQVcsRUFBRUgsMERBQUUsQ0FBRSw0REFBRixDQVBLO0FBU3BCSSxVQUFRLEVBQUU7QUFDVEMsU0FBSyxFQUFFLENBQUUsTUFBRixFQUFVLE1BQVYsQ0FERTtBQUVUQyxRQUFJLEVBQUU7QUFGRyxHQVRVO0FBY3BCQyxZQUFVLEVBQUUsRUFkUTtBQWdCcEJDLFlBQVUsRUFBRTtBQUNYQyxRQUFJLEVBQUU7QUFDTEMsVUFBSSxFQUFFLFFBREQsQ0FDVzs7QUFEWDtBQURLLEdBaEJRO0FBc0JwQkMsUUFBTSxFQUFFLENBQ1A7QUFBRWQsUUFBSSxFQUFFLFNBQVI7QUFBbUJlLFNBQUssRUFBRVosMERBQUUsQ0FBRSxTQUFGLENBQTVCO0FBQTBDYSxhQUFTLEVBQUU7QUFBckQsR0FETztBQXRCWSx5R0EwQlIsQ0FDWDtBQUNDQyxTQURELHFCQUNVLENBQUUsQ0FEWjtBQUVDQyxNQUZELGtCQUVRO0FBQ04sV0FBTyxvQkFBQyw2REFBRCxDQUFhLE9BQWIsT0FBUDtBQUNBO0FBSkYsQ0FEVyxDQTFCUSxtR0FtQ2Qsb0JBQStEO0FBQUEsTUFBN0RQLFVBQTZELFFBQTdEQSxVQUE2RDtBQUFBLE1BQWpEUSxhQUFpRCxRQUFqREEsYUFBaUQ7QUFBQSxNQUFsQ0MsaUJBQWtDLFFBQWxDQSxpQkFBa0M7QUFBQSxNQUFmQyxTQUFlLFFBQWZBLFNBQWU7QUFBQSxNQUM3RFQsSUFENkQsR0FDckRELFVBRHFELENBQzdEQyxJQUQ2RDtBQUVwRSxTQUFRLENBQ1Asb0JBQUMsbUVBQUQsUUFDQyxvQkFBQywrREFBRDtBQUFXLFNBQUssRUFBQztBQUFqQixLQUNDLG9CQUFDLG1FQUFEO0FBQ0MsU0FBSyxFQUFDLFdBRFA7QUFFQyxTQUFLLEVBQUdBLElBRlQ7QUFHQyxXQUFPLEVBQUcsQ0FDVDtBQUFFVSxXQUFLLEVBQUUsTUFBVDtBQUFpQlAsV0FBSyxFQUFFO0FBQXhCLEtBRFMsRUFFVDtBQUFFTyxXQUFLLEVBQUUsSUFBVDtBQUFlUCxXQUFLLEVBQUU7QUFBdEIsS0FGUyxFQUdUO0FBQUVPLFdBQUssRUFBRSxJQUFUO0FBQWVQLFdBQUssRUFBRTtBQUF0QixLQUhTLEVBSVQ7QUFBRU8sV0FBSyxFQUFFLElBQVQ7QUFBZVAsV0FBSyxFQUFFO0FBQXRCLEtBSlMsQ0FIWDtBQVNDLFlBQVEsRUFDUCxrQkFBQ0gsSUFBRCxFQUFVO0FBQ1RPLG1CQUFhLENBQUM7QUFDYlAsWUFBSSxFQUFFQTtBQURPLE9BQUQsQ0FBYjtBQUdBO0FBZEgsSUFERCxDQURELENBRE8sRUFzQlA7QUFBSyxhQUFTLDBCQUFtQlMsU0FBbkIsc0JBQXdDVCxJQUF4QztBQUFkLEtBQ0M7QUFBSyxhQUFTLEVBQUM7QUFBZixLQUVHLGdCQUFnQixPQUFPUSxpQkFBeEIsSUFDQSxvQkFBQyw2REFBRCxPQUhGLENBREQsQ0F0Qk8sQ0FBUjtBQStCQSxDQXBFbUIsbUdBc0VkLGdCQUFNO0FBQ1gsU0FBTyxpQ0FBSyxvQkFBQyw2REFBRCxDQUFhLE9BQWIsT0FBTCxDQUFQO0FBQ0EsQ0F4RW1CLGFBQWQsQzs7Ozs7Ozs7Ozs7QUM1QlAsa0M7Ozs7Ozs7Ozs7O0FDQUEsc0M7Ozs7Ozs7Ozs7O0FDQUEsa0M7Ozs7Ozs7Ozs7O0FDQUEsZ0MiLCJmaWxlIjoiZWRpdG9yLmJ1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiL3dwLWNvbnRlbnQvcGx1Z2lucy9nZWNrby1zZWN0aW9uL2Rpc3QvXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSBcIi4vc3JjL2luZGV4LmpzXCIpO1xuIiwiZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2RlZmluZVByb3BlcnR5OyIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQge3JlZ2lzdGVyQmxvY2tUeXBlfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCAqIGFzIHNlY3Rpb24gZnJvbSAnLi9zZWN0aW9uJztcblxucmVnaXN0ZXJCbG9ja1R5cGUoc2VjdGlvbi5uYW1lLCBzZWN0aW9uLnNldHRpbmdzKTtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5pbXBvcnQge1xuXHRQYW5lbEJvZHksXG5cdEcsXG5cdFNWRyxcblx0UGF0aCxcblx0U2VsZWN0Q29udHJvbFxufSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcblx0SW5uZXJCbG9ja3MsXG5cdEluc3BlY3RvckNvbnRyb2xzLFxufSBmcm9tICdAd29yZHByZXNzL2VkaXRvcic7XG5cblxuLyoqXG4gKiBBbGxvd2VkIGJsb2NrcyBjb25zdGFudCBpcyBwYXNzZWQgdG8gSW5uZXJCbG9ja3MgcHJlY2lzZWx5IGFzIHNwZWNpZmllZCBoZXJlLlxuICogVGhlIGNvbnRlbnRzIG9mIHRoZSBhcnJheSBzaG91bGQgbmV2ZXIgY2hhbmdlLlxuICogVGhlIGFycmF5IHNob3VsZCBjb250YWluIHRoZSBuYW1lIG9mIGVhY2ggYmxvY2sgdGhhdCBpcyBhbGxvd2VkLlxuICogSW4gY29sdW1ucyBibG9jaywgdGhlIG9ubHkgYmxvY2sgd2UgYWxsb3cgaXMgJ2RtcC9ncmlkLWl0ZW0nLlxuICpcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ1tdfVxuKi9cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2dlY2tvL3NlY3Rpb24nO1xuXG5leHBvcnQgY29uc3Qgc2V0dGluZ3MgPSB7XG5cdHRpdGxlOiBfXyggJ1NlY3Rpb24nICksXG5cblx0aWNvbjogPFNWRyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxQYXRoIGZpbGw9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMFYwelwiIC8+PEc+PFBhdGggZD1cIk00LDE4IEwyMCwxOCBMMjAsNyBMNCw3IEw0LDE2IEwyMCwxNiBMMjAsMTggTDQsMTggWiBNMiw1LjEyNSBDMiwzLjk1MTM5NDkxIDIuODk1NDMwNSwzIDQsMyBMMjAsMyBDMjEuMTA0NTY5NSwzIDIyLDMuOTUxMzk0OTEgMjIsNS4xMjUgTDIyLDE3Ljg3NSBDMjIsMTkuMDQ4NjA1MSAyMS4xMDQ1Njk1LDIwIDIwLDIwIEw0LDIwIEMyLjkzNDkyNDAxLDIwIDIuMDY0Mjk4OTksMTkuMTE1NDIyNCAyLjAwMzQwMjc3LDE4IEwyLDUuMTI1IFpcIiAvPjwvRz48L1NWRz4sXG5cblx0Y2F0ZWdvcnk6ICdsYXlvdXQnLFxuXG5cdGRlc2NyaXB0aW9uOiBfXyggJ0Z1bGwgd2lkdGggc2VjdGlvbnMgd3JhcHBlcnMgZm9yIHRoZW1lcyB0aGF0IHN1cHBvcnQgdGhlbS4nICksXG5cblx0c3VwcG9ydHM6IHtcblx0XHRhbGlnbjogWyAnd2lkZScsICdmdWxsJyBdLFxuXHRcdGh0bWw6IGZhbHNlLFxuXHR9LFxuXG5cdGRlcHJlY2F0ZWQ6IFtdLFxuXG5cdGF0dHJpYnV0ZXM6IHtcblx0XHRzaXplOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJywgLy9zb2xpZCwgaW1hZ2UsID92aWRlbz9cblx0XHR9LFxuXHR9LFxuXG5cdHN0eWxlczogW1xuXHRcdHsgbmFtZTogJ2RlZmF1bHQnLCBsYWJlbDogX18oICdEZWZhdWx0JyksIGlzRGVmYXVsdDogdHJ1ZSB9LFxuXHRdLFxuXG5cdGRlcHJlY2F0ZWQ6IFtcblx0XHR7XG5cdFx0XHRtaWdyYXRlKCl7fSxcblx0XHRcdHNhdmUoKSB7XG5cdFx0XHRcdHJldHVybiA8SW5uZXJCbG9ja3MuQ29udGVudCAvPjtcblx0XHRcdH0sXG5cdFx0fVxuXHRdLFxuXG5cdGVkaXQ6ICh7YXR0cmlidXRlcywgc2V0QXR0cmlidXRlcywgaW5zZXJ0QmxvY2tzQWZ0ZXIsIGNsYXNzTmFtZX0pID0+IHtcblx0XHRjb25zdCB7c2l6ZX0gPSBhdHRyaWJ1dGVzO1xuXHRcdHJldHVybiAoW1xuXHRcdFx0PEluc3BlY3RvckNvbnRyb2xzPlxuXHRcdFx0XHQ8UGFuZWxCb2R5IHRpdGxlPVwiU2V0dGluZ3NcIj5cblx0XHRcdFx0XHQ8U2VsZWN0Q29udHJvbFxuXHRcdFx0XHRcdFx0bGFiZWw9XCJSb3cgV2lkdGhcIlxuXHRcdFx0XHRcdFx0dmFsdWU9eyBzaXplIH1cblx0XHRcdFx0XHRcdG9wdGlvbnM9eyBbXG5cdFx0XHRcdFx0XHRcdHsgdmFsdWU6ICdmdWxsJywgbGFiZWw6ICdGdWxsJyB9LFxuXHRcdFx0XHRcdFx0XHR7IHZhbHVlOiAnbGcnLCBsYWJlbDogJ0xhcmdlJyB9LFxuXHRcdFx0XHRcdFx0XHR7IHZhbHVlOiAnbWQnLCBsYWJlbDogJ01lZGl1bScgfSxcblx0XHRcdFx0XHRcdFx0eyB2YWx1ZTogJ3NtJywgbGFiZWw6ICdTbWFsbCcgfSxcblx0XHRcdFx0XHRcdF0gfVxuXHRcdFx0XHRcdFx0b25DaGFuZ2UgPSB7XG5cdFx0XHRcdFx0XHRcdChzaXplKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0c2V0QXR0cmlidXRlcyh7XG5cdFx0XHRcdFx0XHRcdFx0XHRzaXplOiBzaXplLFxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQ8L1BhbmVsQm9keT5cblx0XHRcdDwvSW5zcGVjdG9yQ29udHJvbHM+LFxuXHRcdFx0PGRpdiBjbGFzc05hbWU9e2BnZWNrby1zZWN0aW9uICR7Y2xhc3NOYW1lfSBpcy1zaXplLSR7c2l6ZX1gfSA+XG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiZ2Vja28tc2VjdGlvbl9faW5uZXJcIj5cblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQoJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiBpbnNlcnRCbG9ja3NBZnRlcikgJiZcblx0XHRcdFx0XHRcdDxJbm5lckJsb2NrcyAvPlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHRdKTtcblx0fSxcblxuXHRzYXZlOiAoKSA9PiB7XG5cdFx0cmV0dXJuKDxkaXY+PElubmVyQmxvY2tzLkNvbnRlbnQgLz48L2Rpdj4pO1xuXHR9XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB3aW5kb3cud3AuYmxvY2tzOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93LndwLmNvbXBvbmVudHM7IiwibW9kdWxlLmV4cG9ydHMgPSB3aW5kb3cud3AuZWRpdG9yOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93LndwLmkxOG47Il0sInNvdXJjZVJvb3QiOiIifQ==
  • gecko-section/trunk/dist/style.css

    r2039731 r2045515  
    11.gecko-section {
    2   --background-color: transparent;
    3   --opacity: 0.7;
    42  position: relative;
    5   background-color: var(--background-color);
    6   background-size: cover;
    7   background-position: center;
    8   padding: 1rem;
    93}
    10 .gecko-section .wp-block-gecko-section {
     4.gecko-section__inner {
    115  padding: 1rem;
    126  max-width: 100%;
    137  margin: 0px auto;
    148}
    15 .gecko-section--image:before {
    16   content: "";
    17   background-color: inherit;
    18   opacity: var(--opacity);
    19   position: absolute;
    20   height: 100%;
    21   width: 100%;
    22   top: 0;
    23   left: 0;
    24 }
    25 .gecko-section--is-style-lg .wp-block-gecko-section {
     9.gecko-section.is-size-lg .gecko-section__inner {
    2610  max-width: 71.5rem;
    2711}
    28 .gecko-section--is-style-md .wp-block-gecko-section {
     12.gecko-section.is-size-md .gecko-section__inner {
    2913  max-width: 61.5rem;
    3014}
    31 .gecko-section--is-style-sm .wp-block-gecko-section {
     15.gecko-section.is-size-sm .gecko-section__inner {
    3216  max-width: 51.5rem;
    3317}
     18
     19/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsYUFBYTtFQUNiLGVBQWU7RUFDZixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEIsQyIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZ2Vja28tc2VjdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5nZWNrby1zZWN0aW9uX19pbm5lciB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwcHggYXV0bztcbn1cbi5nZWNrby1zZWN0aW9uLmlzLXNpemUtbGcgLmdlY2tvLXNlY3Rpb25fX2lubmVyIHtcbiAgbWF4LXdpZHRoOiA3MS41cmVtO1xufVxuLmdlY2tvLXNlY3Rpb24uaXMtc2l6ZS1tZCAuZ2Vja28tc2VjdGlvbl9faW5uZXIge1xuICBtYXgtd2lkdGg6IDYxLjVyZW07XG59XG4uZ2Vja28tc2VjdGlvbi5pcy1zaXplLXNtIC5nZWNrby1zZWN0aW9uX19pbm5lciB7XG4gIG1heC13aWR0aDogNTEuNXJlbTtcbn0iXSwic291cmNlUm9vdCI6IiJ9*/
  • gecko-section/trunk/gecko-section.php

    r2039731 r2045515  
    44 * Plugin URI:  https://github.com/gecko-designs/gecko-section
    55 * Description: Section block for full row layouts in themes that support gutenberg full-width blocks.
    6  * Version: 1.0.0
     6 * Version: 1.0.1
    77 * Author: Gecko Designs
    88 * Author URI: https://geckodesigns.com
     
    4848            filemtime( plugin_dir_path(__FILE__) . "dist/style.css" )
    4949        );
     50        // If Post has block then enqueue script
     51        add_action( 'the_post', function($post){
     52            if(has_block( 'gecko/section', $post )){
     53                wp_enqueue_style('gecko-section');
     54            }
     55        } );
    5056        // Initialize custom blocks
    5157        // Dynamically import blocks in blocks folder
     
    5460            [
    5561                "render_callback" => [$this, "render_callback"],
    56                 "style" => "gecko-section",
     62                // "style" => "gecko-section",
    5763                "script" => "",
    5864                "editor_style" => "gecko-section-editor",
     
    6571     */
    6672    public function render_callback( $attributes, $content ) {
    67         // Sort of a hack at the moment.
    68         // $image = wp_get_attachment_image_url($attributes[bgMedia],'full');
    69         $bgMedia = (isset($attributes['bgMedia']['url'])) ? "background-image: url(".$attributes['bgMedia']['url'].");": "";
    70         $bgColor = (isset($attributes['bgColor'])) ? "--background-color: ".$attributes['bgColor'].";" : "";
    71         $opacity = (isset($attributes['opacity'])) ? "--opacity: ".$attributes['opacity'].";" : "";
    72         $type = isset($attributes['type'])? $attributes['type']: false;
    73         $styles = $bgColor;
    74         $styles .= ($type === 'image') ? $bgMedia : '';
    75         $styles .= ($type === 'image') ? $opacity : '';
    76         $class = 'gecko-section';
    77         $class .= (isset($attributes['className']))? ' gecko-section--'.$attributes['className'] : '';
    78         $class .= ($type)? ' gecko-section--'.$attributes['type'] : '';
    79         // $encoded = json_encode($attributes, JSON_HEX_APOS|JSON_HEX_QUOT);
    80         return sprintf('<div class="%s" style="%s">%s</div>',
    81         $class, $styles, $content);
     73        // Defaults and attributes
     74        // Setting to false unless needed because all styles do not need to be inlined
     75        $defaults = array(
     76            'size' => false,
     77            'className' => false,
     78        );
     79        // Add a filter to hook into the default args
     80        $defaults = apply_filters( 'gecko/section/defaults', $defaults, $attributes );
     81        $atts = wp_parse_args( $attributes, $defaults );
     82
     83        $classNames = array('gecko-section');
     84        if($atts['className']) $classNames[] = $atts['className'];
     85        if($atts['size']) $classNames[] = 'is-size-'.$atts['size'];
     86        // Add a filter to hook into classNames
     87        $classNames = apply_filters( 'gecko/section/class', $classNames, $attributes );
     88
     89        // $styles = array();
     90        // // Add a filter to hook into the inine styles $args = ($styles, $atts)
     91        // $styles = apply_filters( 'gecko/section/style', $styles, $attributes );
     92
     93        // $styleString = '';
     94        // foreach ($styles as $key => $value) {
     95        //  if($value) $styleString .= $key.':'.$value.';';
     96        // }
     97       
     98        return sprintf('<div class="%s"><div class="gecko-section__inner">%s</div></div>', implode(' ', $classNames), $content);
    8299    }
    83100
  • gecko-section/trunk/readme.txt

    r2039731 r2045515  
    55Requires at least: 5.0
    66Tested up to: 5.0.3
    7 Stable tag: 1.0
     7Stable tag: 1.0.1
    88Requires PHP: 5.6
    99License: GPLv2 or later
     
    2323
    2424== Changelog ==
    25 = 1.0 =
     25= 1.0.1 =
     26* Simplified overall block as it's designed for themes
     27= 1.0.0 =
    2628* Initial release
    2729
Note: See TracChangeset for help on using the changeset viewer.