├── .babelrc ├── .gitignore ├── .svnignore ├── README.md ├── address ├── address.css ├── address.js ├── address.jsx ├── address.map └── address.scss ├── assets ├── hours-input.png ├── hours-render.png └── phone-input.png ├── business-hours ├── business-hours.css ├── business-hours.js ├── business-hours.jsx ├── business-hours.map ├── business-hours.scss └── components │ ├── HoursList.jsx │ └── HoursRow.jsx ├── contact-phone ├── contact-phone.css ├── contact-phone.js ├── contact-phone.jsx ├── contact-phone.map └── contact-phone.scss ├── package-lock.json ├── package.json ├── random-blocks.php ├── readme.txt └── time ├── time-converter-script.js ├── time.js ├── time.jsx └── time.map /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@wordpress/default"] 3 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .cache 2 | node_modules 3 | -------------------------------------------------------------------------------- /.svnignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | package.json 3 | package-lock.json 4 | README.md 5 | assets 6 | .gitignore 7 | .babelrc 8 | .svnignore 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Random Blocks 2 | 3 | This plugin includes some shiny blocks to make Gutenberg a bit more functional. 4 | 5 | ## Business Hours 6 | 7 | The Business Hours block lets you specify your opening and closing hours each day, and then displays them on the front end. The current day is indicated, as well as giving an estimate of how long until the store opens or closes. 8 | 9 | ![Hours Input](./assets/hours-input.png?raw=true) 10 | ![Hours Rendered](./assets/hours-render.png?raw=true) 11 | 12 | ## Phone Number 13 | 14 | The Phone Number block lets you specify the country code and phone number to reach you at, and renders to a `tel:` link on the front-end. It is easily styleable to match your theme, and should make it easier for customers to click to contact you. 15 | 16 | ![Phone Input](./assets/phone-input.png?raw=true) 17 | -------------------------------------------------------------------------------- /address/address.css: -------------------------------------------------------------------------------- 1 | .random-blocks-address p{white-space:pre-line} -------------------------------------------------------------------------------- /address/address.js: -------------------------------------------------------------------------------- 1 | parcelRequire=function(e,r,n,t){var i="function"==typeof parcelRequire&&parcelRequire,o="function"==typeof require&&require;function u(n,t){if(!r[n]){if(!e[n]){var f="function"==typeof parcelRequire&&parcelRequire;if(!t&&f)return f(n,!0);if(i)return i(n,!0);if(o&&"string"==typeof n)return o(n);var c=new Error("Cannot find module '"+n+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[n][1][r]||r},p.cache={};var l=r[n]=new u.Module(n);e[n][0].call(l.exports,p,l,l.exports,this)}return r[n].exports;function p(e){return u(p.resolve(e))}}u.isParcelRequire=!0,u.Module=function(e){this.id=e,this.bundle=u,this.exports={}},u.modules=e,u.cache=r,u.parent=i,u.register=function(r,n){e[r]=[function(e,r){r.exports=n},{}]};for(var f=0;f ), 33 | category: 'widgets', 34 | supports: { 35 | html: true, 36 | }, 37 | 38 | attributes: { 39 | name: { 40 | type: 'string', 41 | default: '', 42 | source: 'text', 43 | selector: 'h3', 44 | }, 45 | address: { 46 | type: 'string', 47 | default: '', 48 | source: 'text', 49 | selector: 'p', 50 | } 51 | }, 52 | 53 | edit: function( props ) { 54 | return ( 55 |
56 | props.setAttributes( { name } ) } 60 | /> 61 | props.setAttributes( { address } ) } 65 | /> 66 |
67 | ); 68 | }, 69 | 70 | save: function( props ) { 71 | return ( 72 |
73 |

{ props.attributes.name }

74 |

{ props.attributes.address }

75 |
76 | ); 77 | } 78 | } ); 79 | -------------------------------------------------------------------------------- /address/address.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/es6.function.name.js","address.jsx"],"names":["registerBlockType","wp","blocks","components","TextControl","TextareaControl","__","i18n","title","icon","category","supports","html","attributes","name","type","default","source","selector","address","edit","props","setAttributes","save","encodeURIComponent"],"mappings":"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","file":"address.map","sourceRoot":"","sourcesContent":["module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","/** @format */\n\n/**\n * External dependencies\n */\n\nconst {\n\tregisterBlockType\n} = wp.blocks;\n\nconst {\n\tTextControl,\n\tTextareaControl\n} = wp.components;\n\nconst {\n\t__\n} = wp.i18n;\n\n/**\n * Internal dependencies\n */\n\nimport './address.scss'\n\n/**\n * Block Registrations:\n */\n\nregisterBlockType( 'random-blocks/address', {\n\ttitle: __( 'Address', 'random-blocks' ),\n\ticon: ( ),\n\tcategory: 'widgets',\n\tsupports: {\n\t\thtml: true,\n\t},\n\n\tattributes: {\n\t\tname: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t\tsource: 'text',\n\t\t\tselector: 'h3',\n\t\t},\n\t\taddress: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t\tsource: 'text',\n\t\t\tselector: 'p',\n\t\t}\n\t},\n\n\tedit: function( props ) {\n\t\treturn (\n\t\t\t
\n\t\t\t\t props.setAttributes( { name } ) }\n\t\t\t\t/>\n\t\t\t\t props.setAttributes( { address } ) }\n\t\t\t\t/>\n\t\t\t
\n\t\t);\n\t},\n\n\tsave: function( props ) {\n\t\treturn (\n\t\t\t
\n\t\t\t\t

{ props.attributes.name }

\n\t\t\t\t

{ props.attributes.address }

\n\t\t\t
\n\t\t);\n\t}\n} );\n"]} -------------------------------------------------------------------------------- /address/address.scss: -------------------------------------------------------------------------------- 1 | .random-blocks-address { 2 | p { 3 | white-space: pre-line; 4 | } 5 | } -------------------------------------------------------------------------------- /assets/hours-input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/georgestephanis/random-blocks/055d5f9c9b7fe54604c501a4e461140ec2c26b0c/assets/hours-input.png -------------------------------------------------------------------------------- /assets/hours-render.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/georgestephanis/random-blocks/055d5f9c9b7fe54604c501a4e461140ec2c26b0c/assets/hours-render.png -------------------------------------------------------------------------------- /assets/phone-input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/georgestephanis/random-blocks/055d5f9c9b7fe54604c501a4e461140ec2c26b0c/assets/phone-input.png -------------------------------------------------------------------------------- /business-hours/business-hours.css: -------------------------------------------------------------------------------- 1 | .business-hours{overflow:hidden}.business-hours dt{width:7em;float:left;clear:both}.business-hours dd{overflow:hidden;width:calc(100% - 8em);float:right;margin:0}.business-hours dd>.components-base-control{display:inline-block;max-width:45%}.business-hours dd>.components-base-control .components-base-control__label{display:inline-block;font-weight:700}.business-hours dd>.components-base-control .components-text-control__input{width:9em;margin-left:.5em} -------------------------------------------------------------------------------- /business-hours/business-hours.js: -------------------------------------------------------------------------------- 1 | parcelRequire=function(e,r,n,t){var i="function"==typeof parcelRequire&&parcelRequire,o="function"==typeof require&&require;function u(n,t){if(!r[n]){if(!e[n]){var f="function"==typeof parcelRequire&&parcelRequire;if(!t&&f)return f(n,!0);if(i)return i(n,!0);if(o&&"string"==typeof n)return o(n);var c=new Error("Cannot find module '"+n+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[n][1][r]||r},p.cache={};var l=r[n]=new u.Module(n);e[n][0].call(l.exports,p,l,l.exports,this)}return r[n].exports;function p(e){return u(p.resolve(e))}}u.isParcelRequire=!0,u.Module=function(e){this.id=e,this.bundle=u,this.exports={}},u.modules=e,u.cache=r,u.parent=i,u.register=function(r,n){e[r]=[function(e,r){r.exports=n},{}]};for(var f=0;f0?r:o)(t)}; 47 | },{}],"S7IM":[function(require,module,exports) { 48 | var e=require("./_to-integer"),r=Math.min;module.exports=function(t){return t>0?r(e(t),9007199254740991):0}; 49 | },{"./_to-integer":"MpYs"}],"Zwq5":[function(require,module,exports) { 50 | var e=require("./_to-integer"),r=Math.max,t=Math.min;module.exports=function(n,a){return(n=e(n))<0?r(n+a,0):t(n,a)}; 51 | },{"./_to-integer":"MpYs"}],"LNnS":[function(require,module,exports) { 52 | var e=require("./_to-iobject"),r=require("./_to-length"),t=require("./_to-absolute-index");module.exports=function(n){return function(i,o,u){var f,l=e(i),a=r(l.length),c=t(u,a);if(n&&o!=o){for(;a>c;)if((f=l[c++])!=f)return!0}else for(;a>c;c++)if((n||c in l)&&l[c]===o)return n||c||0;return!n&&-1}}; 53 | },{"./_to-iobject":"Wyka","./_to-length":"S7IM","./_to-absolute-index":"Zwq5"}],"1kq3":[function(require,module,exports) { 54 | module.exports=!0; 55 | },{}],"NB7d":[function(require,module,exports) { 56 | 57 | var r=require("./_core"),e=require("./_global"),o="__core-js_shared__",i=e[o]||(e[o]={});(module.exports=function(r,e){return i[r]||(i[r]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:require("./_library")?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"}); 58 | },{"./_core":"zKeE","./_global":"i1Q6","./_library":"1kq3"}],"X6va":[function(require,module,exports) { 59 | var o=0,t=Math.random();module.exports=function(n){return"Symbol(".concat(void 0===n?"":n,")_",(++o+t).toString(36))}; 60 | },{}],"/wuY":[function(require,module,exports) { 61 | var e=require("./_shared")("keys"),r=require("./_uid");module.exports=function(u){return e[u]||(e[u]=r(u))}; 62 | },{"./_shared":"NB7d","./_uid":"X6va"}],"B9Lq":[function(require,module,exports) { 63 | var r=require("./_has"),e=require("./_to-iobject"),u=require("./_array-includes")(!1),i=require("./_shared-key")("IE_PROTO");module.exports=function(o,a){var n,s=e(o),t=0,h=[];for(n in s)n!=i&&r(s,n)&&h.push(n);for(;a.length>t;)r(s,n=a[t++])&&(~u(h,n)||h.push(n));return h}; 64 | },{"./_has":"yS17","./_to-iobject":"Wyka","./_array-includes":"LNnS","./_shared-key":"/wuY"}],"KxjL":[function(require,module,exports) { 65 | module.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","); 66 | },{}],"knrM":[function(require,module,exports) { 67 | var e=require("./_object-keys-internal"),r=require("./_enum-bug-keys");module.exports=Object.keys||function(u){return e(u,r)}; 68 | },{"./_object-keys-internal":"B9Lq","./_enum-bug-keys":"KxjL"}],"Ocr3":[function(require,module,exports) { 69 | exports.f=Object.getOwnPropertySymbols; 70 | },{}],"z7R8":[function(require,module,exports) { 71 | exports.f={}.propertyIsEnumerable; 72 | },{}],"mbLO":[function(require,module,exports) { 73 | var e=require("./_defined");module.exports=function(r){return Object(e(r))}; 74 | },{"./_defined":"U72i"}],"uj5A":[function(require,module,exports) { 75 | "use strict";var e=require("./_object-keys"),r=require("./_object-gops"),t=require("./_object-pie"),o=require("./_to-object"),i=require("./_iobject"),c=Object.assign;module.exports=!c||require("./_fails")(function(){var e={},r={},t=Symbol(),o="abcdefghijklmnopqrst";return e[t]=7,o.split("").forEach(function(e){r[e]=e}),7!=c({},e)[t]||Object.keys(c({},r)).join("")!=o})?function(c,n){for(var u=o(c),s=arguments.length,a=1,f=r.f,b=t.f;s>a;)for(var j,l=i(arguments[a++]),q=f?e(l).concat(f(l)):e(l),_=q.length,g=0;_>g;)b.call(l,j=q[g++])&&(u[j]=l[j]);return u}:c; 76 | },{"./_object-keys":"knrM","./_object-gops":"Ocr3","./_object-pie":"z7R8","./_to-object":"mbLO","./_iobject":"E5Ce","./_fails":"wLcK"}],"YD0x":[function(require,module,exports) { 77 | var e=require("./_export");e(e.S+e.F,"Object",{assign:require("./_object-assign")}); 78 | },{"./_export":"vSO4","./_object-assign":"uj5A"}],"vcHl":[function(require,module,exports) { 79 | require("../../modules/es6.object.assign"),module.exports=require("../../modules/_core").Object.assign; 80 | },{"../../modules/es6.object.assign":"YD0x","../../modules/_core":"zKeE"}],"h2Mz":[function(require,module,exports) { 81 | module.exports=require("core-js/library/fn/object/assign"); 82 | },{"core-js/library/fn/object/assign":"vcHl"}],"5Il/":[function(require,module,exports) { 83 | var r=require("../core-js/object/assign");function e(){return module.exports=e=r||function(r){for(var e=1;el;)a.call(t,c=f[l++])&&u.push(c);return u}; 123 | },{"./_object-keys":"knrM","./_object-gops":"Ocr3","./_object-pie":"z7R8"}],"ayXv":[function(require,module,exports) { 124 | var r=require("./_cof");module.exports=Array.isArray||function(e){return"Array"==r(e)}; 125 | },{"./_cof":"ShN9"}],"gjjs":[function(require,module,exports) { 126 | var e=require("./_object-dp"),r=require("./_an-object"),t=require("./_object-keys");module.exports=require("./_descriptors")?Object.defineProperties:function(o,i){r(o);for(var u,c=t(i),n=c.length,s=0;n>s;)e.f(o,u=c[s++],i[u]);return o}; 127 | },{"./_object-dp":"Gfzd","./_an-object":"zotD","./_object-keys":"knrM","./_descriptors":"6MLN"}],"ebIA":[function(require,module,exports) { 128 | var e=require("./_global").document;module.exports=e&&e.documentElement; 129 | },{"./_global":"i1Q6"}],"TNJq":[function(require,module,exports) { 130 | var e=require("./_an-object"),r=require("./_object-dps"),t=require("./_enum-bug-keys"),n=require("./_shared-key")("IE_PROTO"),o=function(){},i="prototype",u=function(){var e,r=require("./_dom-create")("iframe"),n=t.length;for(r.style.display="none",require("./_html").appendChild(r),r.src="javascript:",(e=r.contentWindow.document).open(),e.write("