Jake Vanderwerf
2026-05-31 d7e7d248cbe41cd7a9ef9c2fb022b6c4831f99a3
build/gmbreviews/index.js
@@ -1 +1,408 @@
(()=>{"use strict";var e,o={819(e,o,n){const r=window.wp.blocks,t=window.wp.blockEditor,i=window.wp.components,l=window.wp.i18n,s=window.wp.serverSideRender;var a=n.n(s);const h=window.ReactJSXRuntime,v=JSON.parse('{"UU":"jvb/gmbreviews"}');(0,r.registerBlockType)(v.UU,{edit:function({attributes:e,setAttributes:o}){const n=(0,t.useBlockProps)(),{count:r,inheritUser:s,showStats:v,minStars:w,showViewAllLink:b,showRating:c,showDate:g,showReviewLink:d}=e;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(t.InspectorControls,{children:(0,h.jsxs)(i.PanelBody,{title:(0,l.__)("Review Settings","jvb"),children:[(0,h.jsx)(i.ToggleControl,{label:(0,l.__)("Inherit User","jvb"),checked:s,onChange:e=>o({inheritUser:e})}),(0,h.jsx)(i.RangeControl,{label:(0,l.__)("Number of Reviews","jvb"),value:r,onChange:e=>o({count:e}),min:1,max:20}),(0,h.jsx)(i.ToggleControl,{label:(0,l.__)("Show Rating","jvb"),checked:c,onChange:e=>o({showRating:e})}),(0,h.jsx)(i.ToggleControl,{label:(0,l.__)("Show Date","jvb"),checked:g,onChange:e=>o({showDate:e})}),(0,h.jsx)(i.ToggleControl,{label:(0,l.__)("Show Review Link","jvb"),checked:d,onChange:e=>o({showReviewLink:e})}),(0,h.jsx)(i.ToggleControl,{label:(0,l.__)("Show Stats","jvb"),checked:v,onChange:e=>o({showStats:e})}),(0,h.jsx)(i.ToggleControl,{label:(0,l.__)("Show All Reviews Link","jvb"),checked:b,onChange:e=>o({showViewAllLink:e})}),(0,h.jsx)(i.RangeControl,{label:(0,l.__)("Minimum Rating","jvb"),value:w,onChange:e=>o({minStars:e}),min:1,max:5})]})}),(0,h.jsx)("div",{...n,children:(0,h.jsx)(a(),{block:"jvb/gmbreviews",attributes:e})})]})},save:()=>null})}},n={};function r(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return o[e](i,i.exports,r),i.exports}r.m=o,e=[],r.O=(o,n,t,i)=>{if(!n){var l=1/0;for(v=0;v<e.length;v++){for(var[n,t,i]=e[v],s=!0,a=0;a<n.length;a++)(!1&i||l>=i)&&Object.keys(r.O).every(e=>r.O[e](n[a]))?n.splice(a--,1):(s=!1,i<l&&(l=i));if(s){e.splice(v--,1);var h=t();void 0!==h&&(o=h)}}return o}i=i||0;for(var v=e.length;v>0&&e[v-1][2]>i;v--)e[v]=e[v-1];e[v]=[n,t,i]},r.n=e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return r.d(o,{a:o}),o},r.d=(e,o)=>{for(var n in o)r.o(o,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:o[n]})},r.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),(()=>{var e={807:0,423:0};r.O.j=o=>0===e[o];var o=(o,n)=>{var t,i,[l,s,a]=n,h=0;if(l.some(o=>0!==e[o])){for(t in s)r.o(s,t)&&(r.m[t]=s[t]);if(a)var v=a(r)}for(o&&o(n);h<l.length;h++)i=l[h],r.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return r.O(v)},n=globalThis.webpackChunkjvb=globalThis.webpackChunkjvb||[];n.forEach(o.bind(null,0)),n.push=o.bind(null,n.push.bind(n))})();var t=r.O(void 0,[423],()=>r(819));t=r.O(t)})();
/******/ (() => { // webpackBootstrap
/******/    "use strict";
/******/    var __webpack_modules__ = ({
/***/ "./src/gmbreviews/edit.js"
/*!********************************!*\
  !*** ./src/gmbreviews/edit.js ***!
  \********************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Edit)
/* harmony export */ });
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor");
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render");
/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__);
// src/gmbreviews/edit.js
function Edit({
  attributes,
  setAttributes
}) {
  const blockProps = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__.useBlockProps)();
  const {
    count,
    inheritUser,
    showStats,
    minStars,
    showViewAllLink,
    showRating,
    showDate,
    showReviewLink
  } = attributes;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__.InspectorControls, {
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.PanelBody, {
        title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Review Settings', 'jvb'),
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Inherit User', 'jvb'),
          checked: inheritUser,
          onChange: value => setAttributes({
            inheritUser: value
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.RangeControl, {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Number of Reviews', 'jvb'),
          value: count,
          onChange: value => setAttributes({
            count: value
          }),
          min: 1,
          max: 20
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Show Rating', 'jvb'),
          checked: showRating,
          onChange: value => setAttributes({
            showRating: value
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Show Date', 'jvb'),
          checked: showDate,
          onChange: value => setAttributes({
            showDate: value
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Show Review Link', 'jvb'),
          checked: showReviewLink,
          onChange: value => setAttributes({
            showReviewLink: value
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Show Stats', 'jvb'),
          checked: showStats,
          onChange: value => setAttributes({
            showStats: value
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Show All Reviews Link', 'jvb'),
          checked: showViewAllLink,
          onChange: value => setAttributes({
            showViewAllLink: value
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.RangeControl, {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Minimum Rating', 'jvb'),
          value: minStars,
          onChange: value => setAttributes({
            minStars: value
          }),
          min: 1,
          max: 5
        })]
      })
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", {
      ...blockProps,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), {
        block: "jvb/gmbreviews",
        attributes: attributes
      })
    })]
  });
}
/***/ },
/***/ "./src/gmbreviews/index.js"
/*!*********************************!*\
  !*** ./src/gmbreviews/index.js ***!
  \*********************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks");
/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _edit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./edit */ "./src/gmbreviews/edit.js");
/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./style.scss */ "./src/gmbreviews/style.scss");
/* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./editor.scss */ "./src/gmbreviews/editor.scss");
/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./block.json */ "./src/gmbreviews/block.json");
(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_4__.name, {
  edit: _edit__WEBPACK_IMPORTED_MODULE_1__["default"],
  // No save function - dynamic block rendered on server
  save: () => null
});
/***/ },
/***/ "./src/gmbreviews/editor.scss"
/*!************************************!*\
  !*** ./src/gmbreviews/editor.scss ***!
  \************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
// extracted by mini-css-extract-plugin
/***/ },
/***/ "./src/gmbreviews/style.scss"
/*!***********************************!*\
  !*** ./src/gmbreviews/style.scss ***!
  \***********************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
// extracted by mini-css-extract-plugin
/***/ },
/***/ "react/jsx-runtime"
/*!**********************************!*\
  !*** external "ReactJSXRuntime" ***!
  \**********************************/
(module) {
module.exports = window["ReactJSXRuntime"];
/***/ },
/***/ "@wordpress/block-editor"
/*!*************************************!*\
  !*** external ["wp","blockEditor"] ***!
  \*************************************/
(module) {
module.exports = window["wp"]["blockEditor"];
/***/ },
/***/ "@wordpress/blocks"
/*!********************************!*\
  !*** external ["wp","blocks"] ***!
  \********************************/
(module) {
module.exports = window["wp"]["blocks"];
/***/ },
/***/ "@wordpress/components"
/*!************************************!*\
  !*** external ["wp","components"] ***!
  \************************************/
(module) {
module.exports = window["wp"]["components"];
/***/ },
/***/ "@wordpress/i18n"
/*!******************************!*\
  !*** external ["wp","i18n"] ***!
  \******************************/
(module) {
module.exports = window["wp"]["i18n"];
/***/ },
/***/ "@wordpress/server-side-render"
/*!******************************************!*\
  !*** external ["wp","serverSideRender"] ***!
  \******************************************/
(module) {
module.exports = window["wp"]["serverSideRender"];
/***/ },
/***/ "./src/gmbreviews/block.json"
/*!***********************************!*\
  !*** ./src/gmbreviews/block.json ***!
  \***********************************/
(module) {
module.exports = /*#__PURE__*/JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":3,"name":"jvb/gmbreviews","title":"GMB Reviews","category":"jvb","description":"Display top-rated Google My Business reviews with statistics and action buttons","keywords":["reviews","google","testimonials","gmb","ratings"],"textdomain":"jvb","attributes":{"inheritUser":{"type":"boolean","default":false},"count":{"type":"number","default":5},"showRating":{"type":"boolean","default":true},"showDate":{"type":"boolean","default":true},"showReviewLink":{"type":"boolean","default":true},"showViewAllLink":{"type":"boolean","default":true},"showStats":{"type":"boolean","default":true},"minStars":{"type":"number","default":4,"minimum":1,"maximum":5}},"supports":{"html":false,"align":true,"color":{"text":true,"background":true,"link":true},"spacing":{"margin":true,"padding":true},"typography":{"fontSize":true,"lineHeight":true}},"render":"file:./render.php","editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","viewScript":"file:./view.js"}');
/***/ }
/******/    });
/************************************************************************/
/******/    // The module cache
/******/    var __webpack_module_cache__ = {};
/******/
/******/    // The require function
/******/    function __webpack_require__(moduleId) {
/******/       // Check if module is in cache
/******/       var cachedModule = __webpack_module_cache__[moduleId];
/******/       if (cachedModule !== undefined) {
/******/          return cachedModule.exports;
/******/       }
/******/       // Create a new module (and put it into the cache)
/******/       var module = __webpack_module_cache__[moduleId] = {
/******/          // no module.id needed
/******/          // no module.loaded needed
/******/          exports: {}
/******/       };
/******/
/******/       // Execute the module function
/******/       if (!(moduleId in __webpack_modules__)) {
/******/          delete __webpack_module_cache__[moduleId];
/******/          var e = new Error("Cannot find module '" + moduleId + "'");
/******/          e.code = 'MODULE_NOT_FOUND';
/******/          throw e;
/******/       }
/******/       __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/       // Return the exports of the module
/******/       return module.exports;
/******/    }
/******/
/******/    // expose the modules object (__webpack_modules__)
/******/    __webpack_require__.m = __webpack_modules__;
/******/
/************************************************************************/
/******/    /* webpack/runtime/chunk loaded */
/******/    (() => {
/******/       var deferred = [];
/******/       __webpack_require__.O = (result, chunkIds, fn, priority) => {
/******/          if(chunkIds) {
/******/             priority = priority || 0;
/******/             for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
/******/             deferred[i] = [chunkIds, fn, priority];
/******/             return;
/******/          }
/******/          var notFulfilled = Infinity;
/******/          for (var i = 0; i < deferred.length; i++) {
/******/             var [chunkIds, fn, priority] = deferred[i];
/******/             var fulfilled = true;
/******/             for (var j = 0; j < chunkIds.length; j++) {
/******/                if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
/******/                   chunkIds.splice(j--, 1);
/******/                } else {
/******/                   fulfilled = false;
/******/                   if(priority < notFulfilled) notFulfilled = priority;
/******/                }
/******/             }
/******/             if(fulfilled) {
/******/                deferred.splice(i--, 1)
/******/                var r = fn();
/******/                if (r !== undefined) result = r;
/******/             }
/******/          }
/******/          return result;
/******/       };
/******/    })();
/******/
/******/    /* webpack/runtime/compat get default export */
/******/    (() => {
/******/       // getDefaultExport function for compatibility with non-harmony modules
/******/       __webpack_require__.n = (module) => {
/******/          var getter = module && module.__esModule ?
/******/             () => (module['default']) :
/******/             () => (module);
/******/          __webpack_require__.d(getter, { a: getter });
/******/          return getter;
/******/       };
/******/    })();
/******/
/******/    /* webpack/runtime/define property getters */
/******/    (() => {
/******/       // define getter functions for harmony exports
/******/       __webpack_require__.d = (exports, definition) => {
/******/          for(var key in definition) {
/******/             if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/                Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/             }
/******/          }
/******/       };
/******/    })();
/******/
/******/    /* webpack/runtime/hasOwnProperty shorthand */
/******/    (() => {
/******/       __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/    })();
/******/
/******/    /* webpack/runtime/make namespace object */
/******/    (() => {
/******/       // define __esModule on exports
/******/       __webpack_require__.r = (exports) => {
/******/          if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/             Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/          }
/******/          Object.defineProperty(exports, '__esModule', { value: true });
/******/       };
/******/    })();
/******/
/******/    /* webpack/runtime/jsonp chunk loading */
/******/    (() => {
/******/       // no baseURI
/******/
/******/       // object to store loaded and loading chunks
/******/       // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/       // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
/******/       var installedChunks = {
/******/          "gmbreviews/index": 0,
/******/          "gmbreviews/style-index": 0
/******/       };
/******/
/******/       // no chunk on demand loading
/******/
/******/       // no prefetching
/******/
/******/       // no preloaded
/******/
/******/       // no HMR
/******/
/******/       // no HMR manifest
/******/
/******/       __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
/******/
/******/       // install a JSONP callback for chunk loading
/******/       var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
/******/          var [chunkIds, moreModules, runtime] = data;
/******/          // add "moreModules" to the modules object,
/******/          // then flag all "chunkIds" as loaded and fire callback
/******/          var moduleId, chunkId, i = 0;
/******/          if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
/******/             for(moduleId in moreModules) {
/******/                if(__webpack_require__.o(moreModules, moduleId)) {
/******/                   __webpack_require__.m[moduleId] = moreModules[moduleId];
/******/                }
/******/             }
/******/             if(runtime) var result = runtime(__webpack_require__);
/******/          }
/******/          if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
/******/          for(;i < chunkIds.length; i++) {
/******/             chunkId = chunkIds[i];
/******/             if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/                installedChunks[chunkId][0]();
/******/             }
/******/             installedChunks[chunkId] = 0;
/******/          }
/******/          return __webpack_require__.O(result);
/******/       }
/******/
/******/       var chunkLoadingGlobal = globalThis["webpackChunkjvb"] = globalThis["webpackChunkjvb"] || [];
/******/       chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
/******/       chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
/******/    })();
/******/
/************************************************************************/
/******/
/******/    // startup
/******/    // Load entry module and return exports
/******/    // This entry module depends on other loaded chunks and execution need to be delayed
/******/    var __webpack_exports__ = __webpack_require__.O(undefined, ["gmbreviews/style-index"], () => (__webpack_require__("./src/gmbreviews/index.js")))
/******/    __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
/******/
/******/ })()
;
//# sourceMappingURL=index.js.map