| @@ -1,1640 +1 @@ | ||
| 1 | -/******/ (() => { // webpackBootstrap | |
| 2 | -/******/ var __webpack_modules__ = ({ | |
| 3 | - | |
| 4 | -/***/ "./node_modules/@wordpress/icons/build-module/icon/index.js": | |
| 5 | -/*!******************************************************************!*\ | |
| 6 | - !*** ./node_modules/@wordpress/icons/build-module/icon/index.js ***! | |
| 7 | - \******************************************************************/ | |
| 8 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 9 | - | |
| 10 | -"use strict"; | |
| 11 | -__webpack_require__.r(__webpack_exports__); | |
| 12 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 13 | -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) | |
| 14 | -/* harmony export */ }); | |
| 15 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 16 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); | |
| 17 | -/** | |
| 18 | - * WordPress dependencies | |
| 19 | - */ | |
| 20 | - | |
| 21 | -/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */ | |
| 22 | - | |
| 23 | -/** | |
| 24 | - * Return an SVG icon. | |
| 25 | - * | |
| 26 | - * @param {IconProps} props icon is the SVG component to render | |
| 27 | - * size is a number specifiying the icon size in pixels | |
| 28 | - * Other props will be passed to wrapped SVG component | |
| 29 | - * | |
| 30 | - * @return {JSX.Element} Icon component | |
| 31 | - */ | |
| 32 | - | |
| 33 | -function Icon(_ref) { | |
| 34 | - let { | |
| 35 | - icon, | |
| 36 | - size = 24, | |
| 37 | - ...props | |
| 38 | - } = _ref; | |
| 39 | - return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(icon, { | |
| 40 | - width: size, | |
| 41 | - height: size, | |
| 42 | - ...props | |
| 43 | - }); | |
| 44 | -} | |
| 45 | - | |
| 46 | -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Icon); | |
| 47 | -//# sourceMappingURL=index.js.map | |
| 48 | - | |
| 49 | -/***/ }), | |
| 50 | - | |
| 51 | -/***/ "./node_modules/@wordpress/icons/build-module/library/block-default.js": | |
| 52 | -/*!*****************************************************************************!*\ | |
| 53 | - !*** ./node_modules/@wordpress/icons/build-module/library/block-default.js ***! | |
| 54 | - \*****************************************************************************/ | |
| 55 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 56 | - | |
| 57 | -"use strict"; | |
| 58 | -__webpack_require__.r(__webpack_exports__); | |
| 59 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 60 | -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) | |
| 61 | -/* harmony export */ }); | |
| 62 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 63 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); | |
| 64 | -/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives"); | |
| 65 | -/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__); | |
| 66 | - | |
| 67 | - | |
| 68 | -/** | |
| 69 | - * WordPress dependencies | |
| 70 | - */ | |
| 71 | - | |
| 72 | -const blockDefault = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, { | |
| 73 | - xmlns: "http://www.w3.org/2000/svg", | |
| 74 | - viewBox: "0 0 24 24" | |
| 75 | -}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, { | |
| 76 | - d: "M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z" | |
| 77 | -})); | |
| 78 | -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (blockDefault); | |
| 79 | -//# sourceMappingURL=block-default.js.map | |
| 80 | - | |
| 81 | -/***/ }), | |
| 82 | - | |
| 83 | -/***/ "./node_modules/@wordpress/icons/build-module/library/category.js": | |
| 84 | -/*!************************************************************************!*\ | |
| 85 | - !*** ./node_modules/@wordpress/icons/build-module/library/category.js ***! | |
| 86 | - \************************************************************************/ | |
| 87 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 88 | - | |
| 89 | -"use strict"; | |
| 90 | -__webpack_require__.r(__webpack_exports__); | |
| 91 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 92 | -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) | |
| 93 | -/* harmony export */ }); | |
| 94 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 95 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); | |
| 96 | -/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives"); | |
| 97 | -/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__); | |
| 98 | - | |
| 99 | - | |
| 100 | -/** | |
| 101 | - * WordPress dependencies | |
| 102 | - */ | |
| 103 | - | |
| 104 | -const category = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, { | |
| 105 | - viewBox: "0 0 24 24", | |
| 106 | - xmlns: "http://www.w3.org/2000/svg" | |
| 107 | -}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, { | |
| 108 | - d: "M6 5.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM4 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm11-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM13 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2V6zm5 8.5h-3a.5.5 0 00-.5.5v3a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-3a.5.5 0 00-.5-.5zM15 13a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2v-3a2 2 0 00-2-2h-3zm-9 1.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5zM4 15a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2v-3z", | |
| 109 | - fillRule: "evenodd", | |
| 110 | - clipRule: "evenodd" | |
| 111 | -})); | |
| 112 | -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (category); | |
| 113 | -//# sourceMappingURL=category.js.map | |
| 114 | - | |
| 115 | -/***/ }), | |
| 116 | - | |
| 117 | -/***/ "./node_modules/@wordpress/icons/build-module/library/check.js": | |
| 118 | -/*!*********************************************************************!*\ | |
| 119 | - !*** ./node_modules/@wordpress/icons/build-module/library/check.js ***! | |
| 120 | - \*********************************************************************/ | |
| 121 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 122 | - | |
| 123 | -"use strict"; | |
| 124 | -__webpack_require__.r(__webpack_exports__); | |
| 125 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 126 | -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) | |
| 127 | -/* harmony export */ }); | |
| 128 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 129 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); | |
| 130 | -/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives"); | |
| 131 | -/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__); | |
| 132 | - | |
| 133 | - | |
| 134 | -/** | |
| 135 | - * WordPress dependencies | |
| 136 | - */ | |
| 137 | - | |
| 138 | -const check = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, { | |
| 139 | - xmlns: "http://www.w3.org/2000/svg", | |
| 140 | - viewBox: "0 0 24 24" | |
| 141 | -}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, { | |
| 142 | - d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z" | |
| 143 | -})); | |
| 144 | -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (check); | |
| 145 | -//# sourceMappingURL=check.js.map | |
| 146 | - | |
| 147 | -/***/ }), | |
| 148 | - | |
| 149 | -/***/ "./node_modules/@wordpress/icons/build-module/library/stretch-full-width.js": | |
| 150 | -/*!**********************************************************************************!*\ | |
| 151 | - !*** ./node_modules/@wordpress/icons/build-module/library/stretch-full-width.js ***! | |
| 152 | - \**********************************************************************************/ | |
| 153 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 154 | - | |
| 155 | -"use strict"; | |
| 156 | -__webpack_require__.r(__webpack_exports__); | |
| 157 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 158 | -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) | |
| 159 | -/* harmony export */ }); | |
| 160 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 161 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); | |
| 162 | -/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives"); | |
| 163 | -/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__); | |
| 164 | - | |
| 165 | - | |
| 166 | -/** | |
| 167 | - * WordPress dependencies | |
| 168 | - */ | |
| 169 | - | |
| 170 | -const stretchFullWidth = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, { | |
| 171 | - xmlns: "http://www.w3.org/2000/svg", | |
| 172 | - viewBox: "0 0 24 24" | |
| 173 | -}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, { | |
| 174 | - d: "M5 4v11h14V4H5zm3 15.8h8v-1.5H8v1.5z" | |
| 175 | -})); | |
| 176 | -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stretchFullWidth); | |
| 177 | -//# sourceMappingURL=stretch-full-width.js.map | |
| 178 | - | |
| 179 | -/***/ }), | |
| 180 | - | |
| 181 | -/***/ "./src/core-components/inserter-listbox/context.js": | |
| 182 | -/*!*********************************************************!*\ | |
| 183 | - !*** ./src/core-components/inserter-listbox/context.js ***! | |
| 184 | - \*********************************************************/ | |
| 185 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 186 | - | |
| 187 | -"use strict"; | |
| 188 | -__webpack_require__.r(__webpack_exports__); | |
| 189 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 190 | -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) | |
| 191 | -/* harmony export */ }); | |
| 192 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 193 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); | |
| 194 | -/** | |
| 195 | - * WordPress dependencies | |
| 196 | - */ | |
| 197 | - | |
| 198 | -const InserterListboxContext = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createContext)(); | |
| 199 | -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InserterListboxContext); | |
| 200 | - | |
| 201 | -/***/ }), | |
| 202 | - | |
| 203 | -/***/ "./src/core-components/inserter-listbox/index.js": | |
| 204 | -/*!*******************************************************!*\ | |
| 205 | - !*** ./src/core-components/inserter-listbox/index.js ***! | |
| 206 | - \*******************************************************/ | |
| 207 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 208 | - | |
| 209 | -"use strict"; | |
| 210 | -__webpack_require__.r(__webpack_exports__); | |
| 211 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 212 | -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) | |
| 213 | -/* harmony export */ }); | |
| 214 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 215 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 216 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); | |
| 217 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); | |
| 218 | -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./context */ "./src/core-components/inserter-listbox/context.js"); | |
| 219 | - | |
| 220 | -/** | |
| 221 | - * WordPress dependencies | |
| 222 | - */ | |
| 223 | - // eslint-disable-line | |
| 224 | - | |
| 225 | -/** | |
| 226 | - * Internal dependencies | |
| 227 | - */ | |
| 228 | - | |
| 229 | -function InserterListbox({ | |
| 230 | - children | |
| 231 | -}) { | |
| 232 | - const compositeState = (0,_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.__unstableUseCompositeState)({ | |
| 233 | - shift: true, | |
| 234 | - wrap: 'horizontal' | |
| 235 | - }); | |
| 236 | - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_context__WEBPACK_IMPORTED_MODULE_2__["default"].Provider, { | |
| 237 | - value: compositeState | |
| 238 | - }, children); | |
| 239 | -} | |
| 240 | -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InserterListbox); | |
| 241 | - | |
| 242 | -/***/ }), | |
| 243 | - | |
| 244 | -/***/ "./src/core-components/no-results.js": | |
| 245 | -/*!*******************************************!*\ | |
| 246 | - !*** ./src/core-components/no-results.js ***! | |
| 247 | - \*******************************************/ | |
| 248 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 249 | - | |
| 250 | -"use strict"; | |
| 251 | -__webpack_require__.r(__webpack_exports__); | |
| 252 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 253 | -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) | |
| 254 | -/* harmony export */ }); | |
| 255 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 256 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 257 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); | |
| 258 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__); | |
| 259 | -/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/icon/index.js"); | |
| 260 | -/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/block-default.js"); | |
| 261 | - | |
| 262 | -/** | |
| 263 | - * WordPress dependencies | |
| 264 | - */ | |
| 265 | - | |
| 266 | - | |
| 267 | -function InserterNoResults({ | |
| 268 | - icon, | |
| 269 | - label | |
| 270 | -}) { | |
| 271 | - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 272 | - className: "patternswp-inserter__no-results" | |
| 273 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_2__["default"], { | |
| 274 | - className: "patternswp-inserter__no-results-icon", | |
| 275 | - icon: icon ? icon : _wordpress_icons__WEBPACK_IMPORTED_MODULE_3__["default"] | |
| 276 | - }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", null, label ? label : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('No results found.', 'patternswp')))); | |
| 277 | -} | |
| 278 | -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InserterNoResults); | |
| 279 | - | |
| 280 | -/***/ }), | |
| 281 | - | |
| 282 | -/***/ "./src/core-hooks/use-insertion-point.js": | |
| 283 | -/*!***********************************************!*\ | |
| 284 | - !*** ./src/core-hooks/use-insertion-point.js ***! | |
| 285 | - \***********************************************/ | |
| 286 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 287 | - | |
| 288 | -"use strict"; | |
| 289 | -__webpack_require__.r(__webpack_exports__); | |
| 290 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 291 | -/* harmony export */ "default": () => (/* binding */ useInsertionPoint) | |
| 292 | -/* harmony export */ }); | |
| 293 | -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); | |
| 294 | -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); | |
| 295 | -/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); | |
| 296 | -/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__); | |
| 297 | -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); | |
| 298 | -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); | |
| 299 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); | |
| 300 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); | |
| 301 | -/* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/a11y */ "@wordpress/a11y"); | |
| 302 | -/* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_4__); | |
| 303 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 304 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__); | |
| 305 | -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); | |
| 306 | -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__); | |
| 307 | -/** | |
| 308 | - * External dependencies | |
| 309 | - */ | |
| 310 | - | |
| 311 | - | |
| 312 | -/** | |
| 313 | - * WordPress dependencies | |
| 314 | - */ | |
| 315 | - | |
| 316 | - | |
| 317 | - | |
| 318 | - | |
| 319 | - | |
| 320 | - | |
| 321 | - | |
| 322 | -/** | |
| 323 | - * @typedef WPInserterConfig | |
| 324 | - * @property {string=} rootClientId If set, insertion will be into the block with this ID. | |
| 325 | - * @property {number=} insertionIndex If set, insertion will be into this explicit position. | |
| 326 | - * @property {string=} clientId If set, insertion will be after the block with this ID. | |
| 327 | - * @property {boolean=} isAppender Whether the inserter is an appender or not. | |
| 328 | - * @property {Function=} onSelect Called after insertion. | |
| 329 | - */ | |
| 330 | - | |
| 331 | -/** | |
| 332 | - * Returns the insertion point state given the inserter config. | |
| 333 | - * | |
| 334 | - * @param {WPInserterConfig} config Inserter Config. | |
| 335 | - * @return {Array} Insertion Point State (rootClientID, onInsertBlocks and onToggle). | |
| 336 | - */ | |
| 337 | -function useInsertionPoint({ | |
| 338 | - rootClientId = '', | |
| 339 | - insertionIndex, | |
| 340 | - clientId, | |
| 341 | - isAppender, | |
| 342 | - onSelect, | |
| 343 | - shouldFocusBlock = true | |
| 344 | -}) { | |
| 345 | - const { | |
| 346 | - getSelectedBlock | |
| 347 | - } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.store); | |
| 348 | - const { | |
| 349 | - destinationRootClientId, | |
| 350 | - destinationIndex | |
| 351 | - } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => { | |
| 352 | - const { | |
| 353 | - getSelectedBlockClientId, | |
| 354 | - getBlockRootClientId, | |
| 355 | - getBlockIndex, | |
| 356 | - getBlockOrder | |
| 357 | - } = select(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.store); | |
| 358 | - const selectedBlockClientId = getSelectedBlockClientId(); | |
| 359 | - let _destinationRootClientId = rootClientId; | |
| 360 | - let _destinationIndex; | |
| 361 | - if (insertionIndex !== undefined) { | |
| 362 | - // Insert into a specific index. | |
| 363 | - _destinationIndex = insertionIndex; | |
| 364 | - } else if (clientId) { | |
| 365 | - // Insert after a specific client ID. | |
| 366 | - _destinationIndex = getBlockIndex(clientId, _destinationRootClientId); | |
| 367 | - } else if (!isAppender && selectedBlockClientId) { | |
| 368 | - _destinationRootClientId = getBlockRootClientId(selectedBlockClientId); | |
| 369 | - _destinationIndex = getBlockIndex(selectedBlockClientId, _destinationRootClientId) + 1; | |
| 370 | - } else { | |
| 371 | - // Insert at the end of the list. | |
| 372 | - _destinationIndex = getBlockOrder(_destinationRootClientId).length; | |
| 373 | - } | |
| 374 | - return { | |
| 375 | - destinationRootClientId: _destinationRootClientId, | |
| 376 | - destinationIndex: _destinationIndex | |
| 377 | - }; | |
| 378 | - }, [rootClientId, insertionIndex, clientId, isAppender]); | |
| 379 | - const { | |
| 380 | - replaceBlocks, | |
| 381 | - insertBlocks, | |
| 382 | - showInsertionPoint, | |
| 383 | - hideInsertionPoint | |
| 384 | - } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.store); | |
| 385 | - const onInsertBlocks = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useCallback)((blocks, meta, shouldForceFocusBlock = false) => { | |
| 386 | - const selectedBlock = getSelectedBlock(); | |
| 387 | - if (!isAppender && selectedBlock && (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.isUnmodifiedDefaultBlock)(selectedBlock)) { | |
| 388 | - replaceBlocks(selectedBlock.clientId, blocks, null, shouldFocusBlock || shouldForceFocusBlock ? 0 : null, meta); | |
| 389 | - } else { | |
| 390 | - insertBlocks(blocks, destinationIndex, destinationRootClientId, true, shouldFocusBlock || shouldForceFocusBlock ? 0 : null, meta); | |
| 391 | - } | |
| 392 | - const message = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( | |
| 393 | - // translators: %d: the name of the block that has been added | |
| 394 | - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__._n)('%d block added.', '%d blocks added.', (0,lodash__WEBPACK_IMPORTED_MODULE_0__.castArray)(blocks).length), (0,lodash__WEBPACK_IMPORTED_MODULE_0__.castArray)(blocks).length); | |
| 395 | - (0,_wordpress_a11y__WEBPACK_IMPORTED_MODULE_4__.speak)(message); | |
| 396 | - if (onSelect) { | |
| 397 | - onSelect(); | |
| 398 | - } | |
| 399 | - }, [isAppender, getSelectedBlock, replaceBlocks, insertBlocks, destinationRootClientId, destinationIndex, onSelect, shouldFocusBlock]); | |
| 400 | - const onToggleInsertionPoint = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useCallback)(show => { | |
| 401 | - if (show) { | |
| 402 | - showInsertionPoint(destinationRootClientId, destinationIndex); | |
| 403 | - } else { | |
| 404 | - hideInsertionPoint(); | |
| 405 | - } | |
| 406 | - }, [showInsertionPoint, hideInsertionPoint, destinationRootClientId, destinationIndex]); | |
| 407 | - return [destinationRootClientId, onInsertBlocks, onToggleInsertionPoint]; | |
| 408 | -} | |
| 409 | - | |
| 410 | -/***/ }), | |
| 411 | - | |
| 412 | -/***/ "./src/core-hooks/use-patterns-state.js": | |
| 413 | -/*!**********************************************!*\ | |
| 414 | - !*** ./src/core-hooks/use-patterns-state.js ***! | |
| 415 | - \**********************************************/ | |
| 416 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 417 | - | |
| 418 | -"use strict"; | |
| 419 | -__webpack_require__.r(__webpack_exports__); | |
| 420 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 421 | -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) | |
| 422 | -/* harmony export */ }); | |
| 423 | -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); | |
| 424 | -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); | |
| 425 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 426 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); | |
| 427 | -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); | |
| 428 | -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); | |
| 429 | -/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); | |
| 430 | -/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_3__); | |
| 431 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); | |
| 432 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__); | |
| 433 | -/* harmony import */ var _wordpress_notices__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/notices */ "@wordpress/notices"); | |
| 434 | -/* harmony import */ var _wordpress_notices__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_notices__WEBPACK_IMPORTED_MODULE_5__); | |
| 435 | -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); | |
| 436 | -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__); | |
| 437 | -/** | |
| 438 | - * External dependencies | |
| 439 | - */ | |
| 440 | - | |
| 441 | - | |
| 442 | -/** | |
| 443 | - * WordPress dependencies | |
| 444 | - */ | |
| 445 | - | |
| 446 | - | |
| 447 | - | |
| 448 | - | |
| 449 | - | |
| 450 | - | |
| 451 | - | |
| 452 | -/** | |
| 453 | - * Retrieves the block patterns inserter state. | |
| 454 | - * | |
| 455 | - * @param {Function} onInsert function called when inserter a list of blocks. | |
| 456 | - * @param {string=} rootClientId Insertion's root client ID. | |
| 457 | - * | |
| 458 | - * @return {Array} Returns the patterns state. (patterns, categories, onSelect handler) | |
| 459 | - */ | |
| 460 | -const usePatternsState = (onInsert, rootClientId) => { | |
| 461 | - const { | |
| 462 | - patterns, | |
| 463 | - patternCategories, | |
| 464 | - patternCategoryTypes | |
| 465 | - } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => { | |
| 466 | - var _categoryTypes$patter; | |
| 467 | - const { | |
| 468 | - __experimentalGetAllowedPatterns, | |
| 469 | - getSettings | |
| 470 | - } = select(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.store); | |
| 471 | - | |
| 472 | - // Fetch any register pattern category types with the custom REST | |
| 473 | - // API endpoint. Eventually replace with core functionality. | |
| 474 | - const { | |
| 475 | - getEntityRecord | |
| 476 | - } = select('core'); | |
| 477 | - const categoryTypes = getEntityRecord('patternswp/v1', 'patternCategoryTypes'); | |
| 478 | - return { | |
| 479 | - patterns: __experimentalGetAllowedPatterns(rootClientId), | |
| 480 | - patternCategories: getSettings().__experimentalBlockPatternCategories, | |
| 481 | - patternCategoryTypes: (_categoryTypes$patter = categoryTypes?.patternCategoryTypes) !== null && _categoryTypes$patter !== void 0 ? _categoryTypes$patter : 'fetching' | |
| 482 | - // This is new functionality and will need to ultimately be added to the | |
| 483 | - // Gutenberg Patterns API. Category Types allow theme/plugin developers to | |
| 484 | - // group pattern categories together in the new Pattern Explorer. | |
| 485 | - // patternCategoryTypes: getSettings().__experimentalBlockPatternCategoryTypes, | |
| 486 | - }; | |
| 487 | - }, [rootClientId]); | |
| 488 | - const { | |
| 489 | - createSuccessNotice | |
| 490 | - } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)(_wordpress_notices__WEBPACK_IMPORTED_MODULE_5__.store); | |
| 491 | - const onClickPattern = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useCallback)((pattern, blocks) => { | |
| 492 | - onInsert((0,lodash__WEBPACK_IMPORTED_MODULE_0__.map)(blocks, block => (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.cloneBlock)(block)), pattern.name); | |
| 493 | - createSuccessNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.sprintf)( /* translators: %s: block pattern title. */ | |
| 494 | - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Block pattern "%s" inserted.', 'patternswp'), pattern.title), { | |
| 495 | - type: 'snackbar' | |
| 496 | - }); | |
| 497 | - }, []); | |
| 498 | - return [patterns, patternCategories, patternCategoryTypes, onClickPattern]; | |
| 499 | -}; | |
| 500 | -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (usePatternsState); | |
| 501 | - | |
| 502 | -/***/ }), | |
| 503 | - | |
| 504 | -/***/ "./src/pattern-explorer.js": | |
| 505 | -/*!*********************************!*\ | |
| 506 | - !*** ./src/pattern-explorer.js ***! | |
| 507 | - \*********************************/ | |
| 508 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 509 | - | |
| 510 | -"use strict"; | |
| 511 | -__webpack_require__.r(__webpack_exports__); | |
| 512 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 513 | -/* harmony export */ "default": () => (/* binding */ PatternExplorer) | |
| 514 | -/* harmony export */ }); | |
| 515 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 516 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 517 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 518 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); | |
| 519 | -/* harmony import */ var _sidebar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sidebar */ "./src/sidebar.js"); | |
| 520 | -/* harmony import */ var _preview__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./preview */ "./src/preview/index.js"); | |
| 521 | - | |
| 522 | -/** | |
| 523 | - * WordPress dependencies | |
| 524 | - */ | |
| 525 | - | |
| 526 | - | |
| 527 | -/** | |
| 528 | - * Internal dependencies | |
| 529 | - */ | |
| 530 | - | |
| 531 | - | |
| 532 | - | |
| 533 | -/** | |
| 534 | - * Render the block pattern inserter. | |
| 535 | - * | |
| 536 | - * @since 0.1.0 | |
| 537 | - * @param {Object} props All the props passed to this function | |
| 538 | - * @return {string} Return the rendered JSX | |
| 539 | - */ | |
| 540 | -function PatternExplorer(props) { | |
| 541 | - const { | |
| 542 | - allPatterns, | |
| 543 | - initialCategory, | |
| 544 | - patternCategories, | |
| 545 | - patternCategoryTypes | |
| 546 | - } = props; | |
| 547 | - const [selectedCategory, setSelectedCategory] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(initialCategory?.name); | |
| 548 | - const [searchValue, setSearchValue] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(''); | |
| 549 | - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 550 | - className: "patternswp" | |
| 551 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_sidebar__WEBPACK_IMPORTED_MODULE_2__["default"], { | |
| 552 | - patternCategories: patternCategories, | |
| 553 | - patternCategoryTypes: patternCategoryTypes, | |
| 554 | - selectedCategory: selectedCategory, | |
| 555 | - setSelectedCategory: setSelectedCategory, | |
| 556 | - searchValue: searchValue, | |
| 557 | - setSearchValue: setSearchValue | |
| 558 | - }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_preview__WEBPACK_IMPORTED_MODULE_3__["default"], { | |
| 559 | - allPatterns: allPatterns, | |
| 560 | - patternCategories: patternCategories, | |
| 561 | - selectedCategory: selectedCategory, | |
| 562 | - searchValue: searchValue, | |
| 563 | - onRequestClose: props.onRequestClose | |
| 564 | - })); | |
| 565 | -} | |
| 566 | - | |
| 567 | -/***/ }), | |
| 568 | - | |
| 569 | -/***/ "./src/preview/header.js": | |
| 570 | -/*!*******************************!*\ | |
| 571 | - !*** ./src/preview/header.js ***! | |
| 572 | - \*******************************/ | |
| 573 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 574 | - | |
| 575 | -"use strict"; | |
| 576 | -__webpack_require__.r(__webpack_exports__); | |
| 577 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 578 | -/* harmony export */ "default": () => (/* binding */ PreviewHeader) | |
| 579 | -/* harmony export */ }); | |
| 580 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 581 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 582 | -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js"); | |
| 583 | -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); | |
| 584 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); | |
| 585 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__); | |
| 586 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); | |
| 587 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__); | |
| 588 | -/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/check.js"); | |
| 589 | -/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/stretch-full-width.js"); | |
| 590 | -/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/category.js"); | |
| 591 | - | |
| 592 | -/** | |
| 593 | - * External dependencies | |
| 594 | - */ | |
| 595 | - | |
| 596 | - | |
| 597 | -/** | |
| 598 | - * WordPress dependencies | |
| 599 | - */ | |
| 600 | - | |
| 601 | - | |
| 602 | - | |
| 603 | - | |
| 604 | -/** | |
| 605 | - * Renders the block pattern preview header. | |
| 606 | - * | |
| 607 | - * @since 0.1.0 | |
| 608 | - * @param {Object} props All the props passed to this function | |
| 609 | - * @return {string} Return the rendered JSX | |
| 610 | - */ | |
| 611 | -function PreviewHeader(props) { | |
| 612 | - const { | |
| 613 | - viewportWidth, | |
| 614 | - setViewportWidth, | |
| 615 | - isGrid, | |
| 616 | - setIsGrid, | |
| 617 | - shownPatterns, | |
| 618 | - searchValue, | |
| 619 | - isLoading | |
| 620 | - } = props; | |
| 621 | - const widths = [{ | |
| 622 | - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Desktop', 'patternswp'), | |
| 623 | - slug: 'desktop', | |
| 624 | - value: 1300, | |
| 625 | - active: viewportWidth === 1300 | |
| 626 | - }, { | |
| 627 | - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Tablet', 'patternswp'), | |
| 628 | - slug: 'tablet', | |
| 629 | - value: 778, | |
| 630 | - active: viewportWidth === 778 | |
| 631 | - }, { | |
| 632 | - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Mobile', 'patternswp'), | |
| 633 | - slug: 'mobile', | |
| 634 | - value: 358, | |
| 635 | - active: viewportWidth === 358 | |
| 636 | - }]; | |
| 637 | - function toggleWidths(width) { | |
| 638 | - if (!width.active) { | |
| 639 | - setViewportWidth(width.value); | |
| 640 | - } | |
| 641 | - } | |
| 642 | - const baseClassName = 'patternswp__preview-header'; | |
| 643 | - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 644 | - className: baseClassName | |
| 645 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 646 | - className: `${baseClassName}__search-results` | |
| 647 | - }, isLoading && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.Spinner, null), searchValue && searchValue.length > 1 && (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)( | |
| 648 | - // translators: %1$d: Number of patterns. %2$s: The search input. | |
| 649 | - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__._n)('%1$d search result for "%2$s"', '%1$d search results for "%2$s"', shownPatterns.length, 'patternswp'), shownPatterns.length, searchValue)), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 650 | - className: `${baseClassName}__controls` | |
| 651 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.DropdownMenu, { | |
| 652 | - icon: '', | |
| 653 | - text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Preview', 'patternswp'), | |
| 654 | - className: "viewport-toggle", | |
| 655 | - toggleProps: { | |
| 656 | - isTertiary: true | |
| 657 | - }, | |
| 658 | - popoverProps: { | |
| 659 | - focusOnMount: 'container', | |
| 660 | - position: 'bottom left' | |
| 661 | - } | |
| 662 | - }, () => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.MenuGroup, null, widths.map(width => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.MenuItem, { | |
| 663 | - key: width.slug, | |
| 664 | - className: classnames__WEBPACK_IMPORTED_MODULE_1___default()({ | |
| 665 | - disabled: !width.active | |
| 666 | - }), | |
| 667 | - icon: width.active ? _wordpress_icons__WEBPACK_IMPORTED_MODULE_4__["default"] : '', | |
| 668 | - onClick: () => toggleWidths(width) | |
| 669 | - }, width.label)))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.Button, { | |
| 670 | - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Individual Pattern', 'patternswp'), | |
| 671 | - icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_5__["default"], | |
| 672 | - isPressed: !isGrid, | |
| 673 | - onClick: () => setIsGrid(!isGrid) | |
| 674 | - }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.Button, { | |
| 675 | - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Grid View', 'patternswp'), | |
| 676 | - icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_6__["default"], | |
| 677 | - isPressed: isGrid, | |
| 678 | - onClick: () => setIsGrid(!isGrid) | |
| 679 | - }))); | |
| 680 | -} | |
| 681 | - | |
| 682 | -/***/ }), | |
| 683 | - | |
| 684 | -/***/ "./src/preview/index.js": | |
| 685 | -/*!******************************!*\ | |
| 686 | - !*** ./src/preview/index.js ***! | |
| 687 | - \******************************/ | |
| 688 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 689 | - | |
| 690 | -"use strict"; | |
| 691 | -__webpack_require__.r(__webpack_exports__); | |
| 692 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 693 | -/* harmony export */ "default": () => (/* binding */ PatternExplorerPreview) | |
| 694 | -/* harmony export */ }); | |
| 695 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 696 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 697 | -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); | |
| 698 | -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); | |
| 699 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); | |
| 700 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__); | |
| 701 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 702 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__); | |
| 703 | -/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); | |
| 704 | -/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_4__); | |
| 705 | -/* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/a11y */ "@wordpress/a11y"); | |
| 706 | -/* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_5__); | |
| 707 | -/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./header */ "./src/preview/header.js"); | |
| 708 | -/* harmony import */ var _pattern_list__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pattern-list */ "./src/preview/pattern-list.js"); | |
| 709 | - | |
| 710 | -/** | |
| 711 | - * External dependencies | |
| 712 | - */ | |
| 713 | - | |
| 714 | - | |
| 715 | -/** | |
| 716 | - * WordPress dependencies | |
| 717 | - */ | |
| 718 | - | |
| 719 | - | |
| 720 | - | |
| 721 | - | |
| 722 | - | |
| 723 | -/** | |
| 724 | - * Internal dependencies | |
| 725 | - */ | |
| 726 | - | |
| 727 | - | |
| 728 | -const INITIAL_INSERTER_RESULTS = 3; | |
| 729 | - | |
| 730 | -/** | |
| 731 | - * Renders the grid of block pattern previews. | |
| 732 | - * | |
| 733 | - * @since 0.1.0 | |
| 734 | - * @param {Object} props All the props passed to this function | |
| 735 | - * @return {string} Return the rendered JSX | |
| 736 | - */ | |
| 737 | -function PatternExplorerPreview(props) { | |
| 738 | - const { | |
| 739 | - allPatterns, | |
| 740 | - patternCategories, | |
| 741 | - selectedCategory, | |
| 742 | - searchValue | |
| 743 | - } = props; | |
| 744 | - const [viewportWidth, setViewportWidth] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)(1300); | |
| 745 | - const [isGrid, setIsGrid] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)(true); | |
| 746 | - const debouncedSpeak = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_4__.useDebounce)(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_5__.speak, 500); | |
| 747 | - const registeredPatternCategories = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useMemo)(() => patternCategories.map(patternCategory => patternCategory.name), [patternCategories]); | |
| 748 | - const filteredPatterns = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useMemo)(() => { | |
| 749 | - let results = []; | |
| 750 | - | |
| 751 | - // Only start searching after the user has typed 2+ letters. | |
| 752 | - const isSearching = searchValue && searchValue.length > 1; | |
| 753 | - if (isSearching) { | |
| 754 | - results = allPatterns.filter(pattern => { | |
| 755 | - const input = searchValue.toLowerCase(); | |
| 756 | - const title = pattern.title.toLowerCase(); | |
| 757 | - | |
| 758 | - // First check if the title matches. | |
| 759 | - if (title.includes(input)) { | |
| 760 | - return true; | |
| 761 | - } | |
| 762 | - | |
| 763 | - // Then check if any keywords match. | |
| 764 | - if (pattern?.keywords && Array.isArray(pattern.keywords)) { | |
| 765 | - const keywordMatches = pattern.keywords.filter(keyword => typeof keyword === 'string' && keyword.includes(input)); | |
| 766 | - return !(0,lodash__WEBPACK_IMPORTED_MODULE_1__.isEmpty)(keywordMatches); | |
| 767 | - } | |
| 768 | - return false; | |
| 769 | - }).filter(pattern => { | |
| 770 | - // Only include patterns with categories starting with 'patternswp-' | |
| 771 | - return pattern.categories?.some(category => category.startsWith('patternswp-')); | |
| 772 | - }); | |
| 773 | - } else { | |
| 774 | - // Filter patterns based on the selected category. | |
| 775 | - if (selectedCategory === 'all') { | |
| 776 | - results = allPatterns.filter(pattern => { | |
| 777 | - return pattern.categories && pattern.categories.some(category => category.startsWith('patternswp-')); | |
| 778 | - }); | |
| 779 | - } else if (selectedCategory === 'uncategorized') { | |
| 780 | - results = allPatterns.filter(pattern => !pattern.categories || pattern.categories.length === 0); | |
| 781 | - } else { | |
| 782 | - results = allPatterns.filter(pattern => pattern.categories?.includes(selectedCategory)); | |
| 783 | - } | |
| 784 | - } | |
| 785 | - return results; | |
| 786 | - }, [searchValue, selectedCategory, allPatterns]); | |
| 787 | - const shownPatterns = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_4__.useAsyncList)(filteredPatterns, { | |
| 788 | - step: INITIAL_INSERTER_RESULTS | |
| 789 | - }); | |
| 790 | - | |
| 791 | - // Are patterns still being loaded? | |
| 792 | - const isLoading = shownPatterns.length < filteredPatterns.length; | |
| 793 | - | |
| 794 | - // Announce search results on change and only when loading is finished. | |
| 795 | - // TODO: This needs work, not updating when search field is cleared. | |
| 796 | - (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useEffect)(() => { | |
| 797 | - if (!searchValue || isLoading) { | |
| 798 | - return; | |
| 799 | - } | |
| 800 | - const count = filteredPatterns.length; | |
| 801 | - const resultsFoundMessage = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)( /* translators: %d: number of patterns found. */ | |
| 802 | - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__._n)('%d pattern found.', '%d patterns found.', count, 'patternswp'), count); | |
| 803 | - debouncedSpeak(resultsFoundMessage); | |
| 804 | - }, [searchValue, debouncedSpeak]); | |
| 805 | - const baseClassName = 'patternswp__preview'; | |
| 806 | - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 807 | - className: baseClassName | |
| 808 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_header__WEBPACK_IMPORTED_MODULE_6__["default"], { | |
| 809 | - viewportWidth: viewportWidth, | |
| 810 | - setViewportWidth: setViewportWidth, | |
| 811 | - isGrid: isGrid, | |
| 812 | - setIsGrid: setIsGrid, | |
| 813 | - shownPatterns: shownPatterns, | |
| 814 | - searchValue: searchValue, | |
| 815 | - isLoading: isLoading | |
| 816 | - }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_pattern_list__WEBPACK_IMPORTED_MODULE_7__["default"], { | |
| 817 | - viewportWidth: viewportWidth, | |
| 818 | - isGrid: isGrid, | |
| 819 | - shownPatterns: shownPatterns, | |
| 820 | - searchValue: searchValue, | |
| 821 | - isLoading: isLoading, | |
| 822 | - onRequestClose: props.onRequestClose | |
| 823 | - })); | |
| 824 | -} | |
| 825 | - | |
| 826 | -/***/ }), | |
| 827 | - | |
| 828 | -/***/ "./src/preview/pattern-list.js": | |
| 829 | -/*!*************************************!*\ | |
| 830 | - !*** ./src/preview/pattern-list.js ***! | |
| 831 | - \*************************************/ | |
| 832 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 833 | - | |
| 834 | -"use strict"; | |
| 835 | -__webpack_require__.r(__webpack_exports__); | |
| 836 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 837 | -/* harmony export */ "default": () => (/* binding */ PreviewPatternList) | |
| 838 | -/* harmony export */ }); | |
| 839 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 840 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 841 | -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js"); | |
| 842 | -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); | |
| 843 | -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); | |
| 844 | -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); | |
| 845 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); | |
| 846 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); | |
| 847 | -/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/category.js"); | |
| 848 | -/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/stretch-full-width.js"); | |
| 849 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); | |
| 850 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__); | |
| 851 | -/* harmony import */ var _core_components_no_results__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../core-components/no-results */ "./src/core-components/no-results.js"); | |
| 852 | -/* harmony import */ var _core_components_inserter_listbox__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./../core-components/inserter-listbox */ "./src/core-components/inserter-listbox/index.js"); | |
| 853 | -/* harmony import */ var _core_hooks_use_insertion_point__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./../core-hooks/use-insertion-point */ "./src/core-hooks/use-insertion-point.js"); | |
| 854 | -/* harmony import */ var _pattern__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pattern */ "./src/preview/pattern.js"); | |
| 855 | - | |
| 856 | -/** | |
| 857 | - * External dependencies | |
| 858 | - */ | |
| 859 | - | |
| 860 | - | |
| 861 | - | |
| 862 | -/** | |
| 863 | - * WordPress dependencies | |
| 864 | - */ | |
| 865 | - | |
| 866 | - | |
| 867 | - | |
| 868 | -/** | |
| 869 | - * Internal dependencies | |
| 870 | - */ | |
| 871 | - | |
| 872 | - | |
| 873 | - | |
| 874 | - | |
| 875 | - | |
| 876 | -/** | |
| 877 | - * Renders the grid of block pattern previews. | |
| 878 | - * | |
| 879 | - * @since 0.1.0 | |
| 880 | - * @param {Object} props All the props passed to this function | |
| 881 | - * @return {string} Return the rendered JSX | |
| 882 | - */ | |
| 883 | -function PreviewPatternList(props) { | |
| 884 | - const { | |
| 885 | - isGrid, | |
| 886 | - isLoading, | |
| 887 | - searchValue, | |
| 888 | - shownPatterns, | |
| 889 | - viewportWidth | |
| 890 | - } = props; | |
| 891 | - const [destinationRootClientId, onInsertBlocks] = (0,_core_hooks_use_insertion_point__WEBPACK_IMPORTED_MODULE_7__["default"])({ | |
| 892 | - // eslint-disable-line | |
| 893 | - shouldFocusBlock: true | |
| 894 | - }); | |
| 895 | - const isError = (0,lodash__WEBPACK_IMPORTED_MODULE_2__.isEmpty)(shownPatterns) && !searchValue && !isLoading; | |
| 896 | - const noSearchResults = (0,lodash__WEBPACK_IMPORTED_MODULE_2__.isEmpty)(shownPatterns) && searchValue; | |
| 897 | - const hasPatterns = !isError && !noSearchResults; | |
| 898 | - const noPatternsMessage = !hasPatterns && noSearchResults ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('No search results found.', 'patternswp') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('No patterns were found for this category.', 'patternswp'); | |
| 899 | - const composite = (0,_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.__unstableUseCompositeState)(); | |
| 900 | - const baseClassName = 'patternswp__preview-pattern-list'; | |
| 901 | - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_core_components_inserter_listbox__WEBPACK_IMPORTED_MODULE_6__["default"], null, !hasPatterns && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_core_components_no_results__WEBPACK_IMPORTED_MODULE_5__["default"], { | |
| 902 | - icon: isGrid ? _wordpress_icons__WEBPACK_IMPORTED_MODULE_9__["default"] : _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__["default"], | |
| 903 | - label: noPatternsMessage | |
| 904 | - }), hasPatterns && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.__unstableComposite, { | |
| 905 | - ...composite, | |
| 906 | - role: "listbox", | |
| 907 | - className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(baseClassName, { | |
| 908 | - 'is-grid': isGrid, | |
| 909 | - 'is-loading': isLoading, | |
| 910 | - // TODO this needs reworking. | |
| 911 | - 'preview-tablet': viewportWidth === 778, | |
| 912 | - 'preview-mobile': viewportWidth === 358 | |
| 913 | - }), | |
| 914 | - "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Patterns', 'patternswp') | |
| 915 | - }, shownPatterns.map(pattern => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_pattern__WEBPACK_IMPORTED_MODULE_8__["default"], { | |
| 916 | - key: pattern.name, | |
| 917 | - pattern: pattern, | |
| 918 | - onInsertPattern: onInsertBlocks, | |
| 919 | - viewportWidth: viewportWidth, | |
| 920 | - composite: composite, | |
| 921 | - onRequestClose: props.onRequestClose | |
| 922 | - })))); | |
| 923 | -} | |
| 924 | - | |
| 925 | -/***/ }), | |
| 926 | - | |
| 927 | -/***/ "./src/preview/pattern.js": | |
| 928 | -/*!********************************!*\ | |
| 929 | - !*** ./src/preview/pattern.js ***! | |
| 930 | - \********************************/ | |
| 931 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 932 | - | |
| 933 | -"use strict"; | |
| 934 | -__webpack_require__.r(__webpack_exports__); | |
| 935 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 936 | -/* harmony export */ "default": () => (/* binding */ Pattern) | |
| 937 | -/* harmony export */ }); | |
| 938 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 939 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 940 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); | |
| 941 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__); | |
| 942 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); | |
| 943 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__); | |
| 944 | -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); | |
| 945 | -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__); | |
| 946 | -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); | |
| 947 | -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_4__); | |
| 948 | -/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); | |
| 949 | -/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_5__); | |
| 950 | -/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); | |
| 951 | -/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_6__); | |
| 952 | - | |
| 953 | -/** | |
| 954 | - * WordPress dependencies | |
| 955 | - */ | |
| 956 | - | |
| 957 | - | |
| 958 | - | |
| 959 | - | |
| 960 | - | |
| 961 | - | |
| 962 | - | |
| 963 | -/** | |
| 964 | - * Renders the block pattern 'card'. | |
| 965 | - * | |
| 966 | - * @since 0.1.0 | |
| 967 | - * @param {Object} props All the props passed to this function | |
| 968 | - * @return {string} Return the rendered JSX | |
| 969 | - */ | |
| 970 | -function Pattern(props) { | |
| 971 | - const { | |
| 972 | - pattern, | |
| 973 | - onInsertPattern, | |
| 974 | - viewportWidth, | |
| 975 | - composite, | |
| 976 | - isBlock, | |
| 977 | - clientId | |
| 978 | - } = props; | |
| 979 | - const { | |
| 980 | - title, | |
| 981 | - categories = [], | |
| 982 | - blocks | |
| 983 | - } = pattern; // eslint-disable-line | |
| 984 | - const { | |
| 985 | - createSuccessNotice | |
| 986 | - } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_6__.useDispatch)('core/notices'); | |
| 987 | - const instanceId = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_5__.useInstanceId)(Pattern); | |
| 988 | - const descriptionId = `preview-pattern-card__info-description-${instanceId}`; | |
| 989 | - function insertPattern() { | |
| 990 | - onInsertPattern(blocks.map(block => (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_4__.cloneBlock)(block))); | |
| 991 | - | |
| 992 | - // If the inserter was rendered from a block, we need to remove that | |
| 993 | - // original block. | |
| 994 | - if (isBlock) { | |
| 995 | - (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_6__.dispatch)('core/block-editor').removeBlock(clientId); | |
| 996 | - } | |
| 997 | - createSuccessNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)( | |
| 998 | - // Translators: Name of the pattern being inserted. | |
| 999 | - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Block pattern "%s" inserted.', 'patternswp'), pattern.title), { | |
| 1000 | - type: 'snackbar' | |
| 1001 | - }); | |
| 1002 | - props.onRequestClose(); | |
| 1003 | - } | |
| 1004 | - const baseClassName = 'patternswp__preview-pattern-list__item'; | |
| 1005 | - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 1006 | - className: baseClassName, | |
| 1007 | - "aria-label": pattern.title, | |
| 1008 | - "aria-describedby": pattern?.description ? descriptionId : undefined | |
| 1009 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.__unstableCompositeItem, { | |
| 1010 | - role: "option", | |
| 1011 | - as: "div", | |
| 1012 | - ...composite, | |
| 1013 | - className: `${baseClassName}-preview`, | |
| 1014 | - onClick: insertPattern | |
| 1015 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.BlockPreview, { | |
| 1016 | - blocks: blocks, | |
| 1017 | - viewportWidth: viewportWidth | |
| 1018 | - })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 1019 | - className: `${baseClassName}-actions` | |
| 1020 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 1021 | - className: `${baseClassName}-title` | |
| 1022 | - }, title), !!pattern.description && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.VisuallyHidden, { | |
| 1023 | - id: descriptionId | |
| 1024 | - }, pattern.description), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Button, { | |
| 1025 | - isSecondary: true, | |
| 1026 | - onClick: insertPattern | |
| 1027 | - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Add Pattern', 'patternswp')))); | |
| 1028 | -} | |
| 1029 | - | |
| 1030 | -/***/ }), | |
| 1031 | - | |
| 1032 | -/***/ "./src/sidebar.js": | |
| 1033 | -/*!************************!*\ | |
| 1034 | - !*** ./src/sidebar.js ***! | |
| 1035 | - \************************/ | |
| 1036 | -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 1037 | - | |
| 1038 | -"use strict"; | |
| 1039 | -__webpack_require__.r(__webpack_exports__); | |
| 1040 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 1041 | -/* harmony export */ "default": () => (/* binding */ PatternExplorerSidebar) | |
| 1042 | -/* harmony export */ }); | |
| 1043 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 1044 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 1045 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); | |
| 1046 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__); | |
| 1047 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); | |
| 1048 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__); | |
| 1049 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 1050 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__); | |
| 1051 | - | |
| 1052 | -/** | |
| 1053 | - * WordPress dependencies | |
| 1054 | - */ | |
| 1055 | - | |
| 1056 | - | |
| 1057 | - | |
| 1058 | - | |
| 1059 | -/** | |
| 1060 | - * Renders the block pattern category sidebar control. | |
| 1061 | - * | |
| 1062 | - * @since 0.1.0 | |
| 1063 | - * @param {Object} props All the props passed to this function | |
| 1064 | - * @return {string} Return the rendered JSX | |
| 1065 | - */ | |
| 1066 | -function PatternExplorerSidebar(props) { | |
| 1067 | - const { | |
| 1068 | - patternCategories, | |
| 1069 | - patternCategoryTypes, | |
| 1070 | - selectedCategory, | |
| 1071 | - setSelectedCategory, | |
| 1072 | - searchValue, | |
| 1073 | - setSearchValue | |
| 1074 | - } = props; | |
| 1075 | - function onClickCategory(category) { | |
| 1076 | - setSelectedCategory(category); | |
| 1077 | - setSearchValue(''); | |
| 1078 | - } | |
| 1079 | - const registeredCategoryTypes = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useMemo)(() => patternCategoryTypes.map(patternCategoryType => patternCategoryType.name), [patternCategoryTypes]); | |
| 1080 | - const baseClassName = 'patternswp__sidebar'; | |
| 1081 | - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 1082 | - className: baseClassName | |
| 1083 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 1084 | - className: `${baseClassName}__search` | |
| 1085 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.SearchControl, { | |
| 1086 | - value: searchValue, | |
| 1087 | - onChange: setSearchValue, | |
| 1088 | - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Search patterns', 'patternswp') | |
| 1089 | - })), patternCategoryTypes.map(categoryType => { | |
| 1090 | - const categoriesOfType = patternCategories.filter(category => { | |
| 1091 | - // If the selected category is uncategorized, return all | |
| 1092 | - // pattern categories without assigned category types. | |
| 1093 | - if (categoryType.name === 'uncategorized') { | |
| 1094 | - return !category?.categoryTypes || category.categoryTypes.every(type => !registeredCategoryTypes.includes(type)); | |
| 1095 | - } | |
| 1096 | - return category.categoryTypes?.includes(categoryType.name); | |
| 1097 | - }); | |
| 1098 | - | |
| 1099 | - // If there are no categories in the current type, bail. | |
| 1100 | - if (!categoriesOfType.length) { | |
| 1101 | - return null; | |
| 1102 | - } | |
| 1103 | - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 1104 | - key: categoryType, | |
| 1105 | - className: `${baseClassName}__category-type` | |
| 1106 | - }, categoryType?.hideLabelFromVision ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.VisuallyHidden, { | |
| 1107 | - as: "h2" | |
| 1108 | - }, categoryType.label) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("h2", { | |
| 1109 | - className: `${baseClassName}__category-type__title` | |
| 1110 | - }, categoryType.label), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { | |
| 1111 | - className: `${baseClassName}__category-type__categories` | |
| 1112 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.MenuGroup, { | |
| 1113 | - className: `${baseClassName}__categories-list` | |
| 1114 | - }, categoriesOfType.map(category => { | |
| 1115 | - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.MenuItem, { | |
| 1116 | - key: category.name, | |
| 1117 | - label: category.label, | |
| 1118 | - className: `${baseClassName}__categories-list__item`, | |
| 1119 | - isPressed: !searchValue && category.name === selectedCategory, | |
| 1120 | - onClick: () => onClickCategory(category.name) | |
| 1121 | - }, category.label); | |
| 1122 | - })))); | |
| 1123 | - })); | |
| 1124 | -} | |
| 1125 | - | |
| 1126 | -/***/ }), | |
| 1127 | - | |
| 1128 | -/***/ "react": | |
| 1129 | -/*!************************!*\ | |
| 1130 | - !*** external "React" ***! | |
| 1131 | - \************************/ | |
| 1132 | -/***/ ((module) => { | |
| 1133 | - | |
| 1134 | -"use strict"; | |
| 1135 | -module.exports = window["React"]; | |
| 1136 | - | |
| 1137 | -/***/ }), | |
| 1138 | - | |
| 1139 | -/***/ "lodash": | |
| 1140 | -/*!*************************!*\ | |
| 1141 | - !*** external "lodash" ***! | |
| 1142 | - \*************************/ | |
| 1143 | -/***/ ((module) => { | |
| 1144 | - | |
| 1145 | -"use strict"; | |
| 1146 | -module.exports = window["lodash"]; | |
| 1147 | - | |
| 1148 | -/***/ }), | |
| 1149 | - | |
| 1150 | -/***/ "@wordpress/a11y": | |
| 1151 | -/*!******************************!*\ | |
| 1152 | - !*** external ["wp","a11y"] ***! | |
| 1153 | - \******************************/ | |
| 1154 | -/***/ ((module) => { | |
| 1155 | - | |
| 1156 | -"use strict"; | |
| 1157 | -module.exports = window["wp"]["a11y"]; | |
| 1158 | - | |
| 1159 | -/***/ }), | |
| 1160 | - | |
| 1161 | -/***/ "@wordpress/block-editor": | |
| 1162 | -/*!*************************************!*\ | |
| 1163 | - !*** external ["wp","blockEditor"] ***! | |
| 1164 | - \*************************************/ | |
| 1165 | -/***/ ((module) => { | |
| 1166 | - | |
| 1167 | -"use strict"; | |
| 1168 | -module.exports = window["wp"]["blockEditor"]; | |
| 1169 | - | |
| 1170 | -/***/ }), | |
| 1171 | - | |
| 1172 | -/***/ "@wordpress/blocks": | |
| 1173 | -/*!********************************!*\ | |
| 1174 | - !*** external ["wp","blocks"] ***! | |
| 1175 | - \********************************/ | |
| 1176 | -/***/ ((module) => { | |
| 1177 | - | |
| 1178 | -"use strict"; | |
| 1179 | -module.exports = window["wp"]["blocks"]; | |
| 1180 | - | |
| 1181 | -/***/ }), | |
| 1182 | - | |
| 1183 | -/***/ "@wordpress/components": | |
| 1184 | -/*!************************************!*\ | |
| 1185 | - !*** external ["wp","components"] ***! | |
| 1186 | - \************************************/ | |
| 1187 | -/***/ ((module) => { | |
| 1188 | - | |
| 1189 | -"use strict"; | |
| 1190 | -module.exports = window["wp"]["components"]; | |
| 1191 | - | |
| 1192 | -/***/ }), | |
| 1193 | - | |
| 1194 | -/***/ "@wordpress/compose": | |
| 1195 | -/*!*********************************!*\ | |
| 1196 | - !*** external ["wp","compose"] ***! | |
| 1197 | - \*********************************/ | |
| 1198 | -/***/ ((module) => { | |
| 1199 | - | |
| 1200 | -"use strict"; | |
| 1201 | -module.exports = window["wp"]["compose"]; | |
| 1202 | - | |
| 1203 | -/***/ }), | |
| 1204 | - | |
| 1205 | -/***/ "@wordpress/data": | |
| 1206 | -/*!******************************!*\ | |
| 1207 | - !*** external ["wp","data"] ***! | |
| 1208 | - \******************************/ | |
| 1209 | -/***/ ((module) => { | |
| 1210 | - | |
| 1211 | -"use strict"; | |
| 1212 | -module.exports = window["wp"]["data"]; | |
| 1213 | - | |
| 1214 | -/***/ }), | |
| 1215 | - | |
| 1216 | -/***/ "@wordpress/element": | |
| 1217 | -/*!*********************************!*\ | |
| 1218 | - !*** external ["wp","element"] ***! | |
| 1219 | - \*********************************/ | |
| 1220 | -/***/ ((module) => { | |
| 1221 | - | |
| 1222 | -"use strict"; | |
| 1223 | -module.exports = window["wp"]["element"]; | |
| 1224 | - | |
| 1225 | -/***/ }), | |
| 1226 | - | |
| 1227 | -/***/ "@wordpress/i18n": | |
| 1228 | -/*!******************************!*\ | |
| 1229 | - !*** external ["wp","i18n"] ***! | |
| 1230 | - \******************************/ | |
| 1231 | -/***/ ((module) => { | |
| 1232 | - | |
| 1233 | -"use strict"; | |
| 1234 | -module.exports = window["wp"]["i18n"]; | |
| 1235 | - | |
| 1236 | -/***/ }), | |
| 1237 | - | |
| 1238 | -/***/ "@wordpress/notices": | |
| 1239 | -/*!*********************************!*\ | |
| 1240 | - !*** external ["wp","notices"] ***! | |
| 1241 | - \*********************************/ | |
| 1242 | -/***/ ((module) => { | |
| 1243 | - | |
| 1244 | -"use strict"; | |
| 1245 | -module.exports = window["wp"]["notices"]; | |
| 1246 | - | |
| 1247 | -/***/ }), | |
| 1248 | - | |
| 1249 | -/***/ "@wordpress/primitives": | |
| 1250 | -/*!************************************!*\ | |
| 1251 | - !*** external ["wp","primitives"] ***! | |
| 1252 | - \************************************/ | |
| 1253 | -/***/ ((module) => { | |
| 1254 | - | |
| 1255 | -"use strict"; | |
| 1256 | -module.exports = window["wp"]["primitives"]; | |
| 1257 | - | |
| 1258 | -/***/ }), | |
| 1259 | - | |
| 1260 | -/***/ "./node_modules/classnames/index.js": | |
| 1261 | -/*!******************************************!*\ | |
| 1262 | - !*** ./node_modules/classnames/index.js ***! | |
| 1263 | - \******************************************/ | |
| 1264 | -/***/ ((module, exports) => { | |
| 1265 | - | |
| 1266 | -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! | |
| 1267 | - Copyright (c) 2018 Jed Watson. | |
| 1268 | - Licensed under the MIT License (MIT), see | |
| 1269 | - http://jedwatson.github.io/classnames | |
| 1270 | -*/ | |
| 1271 | -/* global define */ | |
| 1272 | - | |
| 1273 | -(function () { | |
| 1274 | - 'use strict'; | |
| 1275 | - | |
| 1276 | - var hasOwn = {}.hasOwnProperty; | |
| 1277 | - | |
| 1278 | - function classNames () { | |
| 1279 | - var classes = ''; | |
| 1280 | - | |
| 1281 | - for (var i = 0; i < arguments.length; i++) { | |
| 1282 | - var arg = arguments[i]; | |
| 1283 | - if (arg) { | |
| 1284 | - classes = appendClass(classes, parseValue(arg)); | |
| 1285 | - } | |
| 1286 | - } | |
| 1287 | - | |
| 1288 | - return classes; | |
| 1289 | - } | |
| 1290 | - | |
| 1291 | - function parseValue (arg) { | |
| 1292 | - if (typeof arg === 'string' || typeof arg === 'number') { | |
| 1293 | - return arg; | |
| 1294 | - } | |
| 1295 | - | |
| 1296 | - if (typeof arg !== 'object') { | |
| 1297 | - return ''; | |
| 1298 | - } | |
| 1299 | - | |
| 1300 | - if (Array.isArray(arg)) { | |
| 1301 | - return classNames.apply(null, arg); | |
| 1302 | - } | |
| 1303 | - | |
| 1304 | - if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) { | |
| 1305 | - return arg.toString(); | |
| 1306 | - } | |
| 1307 | - | |
| 1308 | - var classes = ''; | |
| 1309 | - | |
| 1310 | - for (var key in arg) { | |
| 1311 | - if (hasOwn.call(arg, key) && arg[key]) { | |
| 1312 | - classes = appendClass(classes, key); | |
| 1313 | - } | |
| 1314 | - } | |
| 1315 | - | |
| 1316 | - return classes; | |
| 1317 | - } | |
| 1318 | - | |
| 1319 | - function appendClass (value, newClass) { | |
| 1320 | - if (!newClass) { | |
| 1321 | - return value; | |
| 1322 | - } | |
| 1323 | - | |
| 1324 | - if (value) { | |
| 1325 | - return value + ' ' + newClass; | |
| 1326 | - } | |
| 1327 | - | |
| 1328 | - return value + newClass; | |
| 1329 | - } | |
| 1330 | - | |
| 1331 | - if ( true && module.exports) { | |
| 1332 | - classNames.default = classNames; | |
| 1333 | - module.exports = classNames; | |
| 1334 | - } else if (true) { | |
| 1335 | - // register as 'classnames', consistent with npm package name | |
| 1336 | - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { | |
| 1337 | - return classNames; | |
| 1338 | - }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), | |
| 1339 | - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); | |
| 1340 | - } else {} | |
| 1341 | -}()); | |
| 1342 | - | |
| 1343 | - | |
| 1344 | -/***/ }) | |
| 1345 | - | |
| 1346 | -/******/ }); | |
| 1347 | -/************************************************************************/ | |
| 1348 | -/******/ // The module cache | |
| 1349 | -/******/ var __webpack_module_cache__ = {}; | |
| 1350 | -/******/ | |
| 1351 | -/******/ // The require function | |
| 1352 | -/******/ function __webpack_require__(moduleId) { | |
| 1353 | -/******/ // Check if module is in cache | |
| 1354 | -/******/ var cachedModule = __webpack_module_cache__[moduleId]; | |
| 1355 | -/******/ if (cachedModule !== undefined) { | |
| 1356 | -/******/ return cachedModule.exports; | |
| 1357 | -/******/ } | |
| 1358 | -/******/ // Create a new module (and put it into the cache) | |
| 1359 | -/******/ var module = __webpack_module_cache__[moduleId] = { | |
| 1360 | -/******/ // no module.id needed | |
| 1361 | -/******/ // no module.loaded needed | |
| 1362 | -/******/ exports: {} | |
| 1363 | -/******/ }; | |
| 1364 | -/******/ | |
| 1365 | -/******/ // Execute the module function | |
| 1366 | -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); | |
| 1367 | -/******/ | |
| 1368 | -/******/ // Return the exports of the module | |
| 1369 | -/******/ return module.exports; | |
| 1370 | -/******/ } | |
| 1371 | -/******/ | |
| 1372 | -/************************************************************************/ | |
| 1373 | -/******/ /* webpack/runtime/compat get default export */ | |
| 1374 | -/******/ (() => { | |
| 1375 | -/******/ // getDefaultExport function for compatibility with non-harmony modules | |
| 1376 | -/******/ __webpack_require__.n = (module) => { | |
| 1377 | -/******/ var getter = module && module.__esModule ? | |
| 1378 | -/******/ () => (module['default']) : | |
| 1379 | -/******/ () => (module); | |
| 1380 | -/******/ __webpack_require__.d(getter, { a: getter }); | |
| 1381 | -/******/ return getter; | |
| 1382 | -/******/ }; | |
| 1383 | -/******/ })(); | |
| 1384 | -/******/ | |
| 1385 | -/******/ /* webpack/runtime/define property getters */ | |
| 1386 | -/******/ (() => { | |
| 1387 | -/******/ // define getter functions for harmony exports | |
| 1388 | -/******/ __webpack_require__.d = (exports, definition) => { | |
| 1389 | -/******/ for(var key in definition) { | |
| 1390 | -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { | |
| 1391 | -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); | |
| 1392 | -/******/ } | |
| 1393 | -/******/ } | |
| 1394 | -/******/ }; | |
| 1395 | -/******/ })(); | |
| 1396 | -/******/ | |
| 1397 | -/******/ /* webpack/runtime/hasOwnProperty shorthand */ | |
| 1398 | -/******/ (() => { | |
| 1399 | -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) | |
| 1400 | -/******/ })(); | |
| 1401 | -/******/ | |
| 1402 | -/******/ /* webpack/runtime/make namespace object */ | |
| 1403 | -/******/ (() => { | |
| 1404 | -/******/ // define __esModule on exports | |
| 1405 | -/******/ __webpack_require__.r = (exports) => { | |
| 1406 | -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | |
| 1407 | -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | |
| 1408 | -/******/ } | |
| 1409 | -/******/ Object.defineProperty(exports, '__esModule', { value: true }); | |
| 1410 | -/******/ }; | |
| 1411 | -/******/ })(); | |
| 1412 | -/******/ | |
| 1413 | -/************************************************************************/ | |
| 1414 | -var __webpack_exports__ = {}; | |
| 1415 | -// This entry need to be wrapped in an IIFE because it need to be in strict mode. | |
| 1416 | -(() => { | |
| 1417 | -"use strict"; | |
| 1418 | -/*!**********************!*\ | |
| 1419 | - !*** ./src/index.js ***! | |
| 1420 | - \**********************/ | |
| 1421 | -__webpack_require__.r(__webpack_exports__); | |
| 1422 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 1423 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 1424 | -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); | |
| 1425 | -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); | |
| 1426 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); | |
| 1427 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__); | |
| 1428 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); | |
| 1429 | -/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__); | |
| 1430 | -/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); | |
| 1431 | -/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_4__); | |
| 1432 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); | |
| 1433 | -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__); | |
| 1434 | -/* harmony import */ var _pattern_explorer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pattern-explorer */ "./src/pattern-explorer.js"); | |
| 1435 | -/* harmony import */ var _core_hooks_use_patterns_state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./core-hooks/use-patterns-state */ "./src/core-hooks/use-patterns-state.js"); | |
| 1436 | - | |
| 1437 | -/** | |
| 1438 | - * External dependencies. | |
| 1439 | - */ | |
| 1440 | - | |
| 1441 | - | |
| 1442 | -/** | |
| 1443 | - * WordPress dependencies. | |
| 1444 | - */ | |
| 1445 | - | |
| 1446 | - | |
| 1447 | - | |
| 1448 | - | |
| 1449 | - | |
| 1450 | -/** | |
| 1451 | - * Internal dependencies | |
| 1452 | - */ | |
| 1453 | - | |
| 1454 | - | |
| 1455 | - | |
| 1456 | -/** | |
| 1457 | - * Render the header toolbar button and the accompanying pattern explorer modal. | |
| 1458 | - * | |
| 1459 | - * @since 0.1.0 | |
| 1460 | - * @return {string} Return the rendered JSX for the Pattern Explorer Button | |
| 1461 | - */ | |
| 1462 | -function HeaderToolbarButton() { | |
| 1463 | - const [isModalOpen, setIsModalOpen] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)(false); | |
| 1464 | - const [allPatterns, allCategories, allCategoryTypes] = (0,_core_hooks_use_patterns_state__WEBPACK_IMPORTED_MODULE_7__["default"])(); | |
| 1465 | - const fetchedCategoryTypes = allCategoryTypes === 'fetching' ? [] : allCategoryTypes; | |
| 1466 | - | |
| 1467 | - // Check if a pattern category has an assigned pattern category type. | |
| 1468 | - const hasRegisteredCategoryType = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useCallback)(category => { | |
| 1469 | - if (!category.categoryTypes || !category.categoryTypes.length) { | |
| 1470 | - return false; | |
| 1471 | - } | |
| 1472 | - return category.categoryTypes.some(type => fetchedCategoryTypes.some(categoryType => categoryType.name === type)); | |
| 1473 | - }, [fetchedCategoryTypes]); | |
| 1474 | - const onCloseModal = () => { | |
| 1475 | - setIsModalOpen(false); | |
| 1476 | - }; | |
| 1477 | - | |
| 1478 | - // Remove any categories without patterns and not in selected categories. | |
| 1479 | - const populatedCategories = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useMemo)(() => { | |
| 1480 | - const filteredCategories = allCategories.filter(category => category.name.startsWith('patternswp-')); | |
| 1481 | - | |
| 1482 | - // Create labels dynamically for categories | |
| 1483 | - const categorizedLabels = filteredCategories.map(category => ({ | |
| 1484 | - ...category, | |
| 1485 | - label: category.name.replace('patternswp-', '').replace(/-/g, ' ').replace(/\b\w/g, char => char.toUpperCase()) | |
| 1486 | - })); | |
| 1487 | - | |
| 1488 | - // Add the "All" option | |
| 1489 | - const allOption = { | |
| 1490 | - name: 'all', | |
| 1491 | - label: 'All' | |
| 1492 | - }; | |
| 1493 | - return [allOption, ...categorizedLabels]; | |
| 1494 | - }, [allCategories]); | |
| 1495 | - | |
| 1496 | - // Remove any pattern category type without populated pattern categories. | |
| 1497 | - const populatedCategoryTypes = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useMemo)(() => { | |
| 1498 | - const categoryTypes = fetchedCategoryTypes.filter(type => populatedCategories.some(category => category.categoryTypes?.includes(type.name))); | |
| 1499 | - | |
| 1500 | - // If there are categories without types, create the Uncategorized type. | |
| 1501 | - if (populatedCategories.some(category => !hasRegisteredCategoryType(category)) && !categoryTypes.find(type => type.name === 'uncategorized')) { | |
| 1502 | - categoryTypes.unshift({ | |
| 1503 | - name: 'uncategorized', | |
| 1504 | - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Uncategorized', 'patternswp'), | |
| 1505 | - hideLabelFromVision: true | |
| 1506 | - }); | |
| 1507 | - } | |
| 1508 | - return categoryTypes; | |
| 1509 | - }, [populatedCategories, fetchedCategoryTypes]); | |
| 1510 | - | |
| 1511 | - // Could expand on this in the future, i.e. allow for a configurable | |
| 1512 | - // initial category. For now the initial category is the first category in | |
| 1513 | - // the first category type. | |
| 1514 | - const initialCategory = populatedCategories[0]; | |
| 1515 | - | |
| 1516 | - // If there are no patterns, do not display the pattern explorer button. | |
| 1517 | - if ((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isEmpty)(allPatterns)) { | |
| 1518 | - return null; | |
| 1519 | - } | |
| 1520 | - (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useEffect)(() => { | |
| 1521 | - const observerCallback = mutationsList => { | |
| 1522 | - for (const mutation of mutationsList) { | |
| 1523 | - if (mutation.type === 'childList' && mutation.addedNodes.length) { | |
| 1524 | - document.querySelectorAll('.components-dropdown.block-editor-inserter').forEach(dropdown => { | |
| 1525 | - addButton(dropdown); | |
| 1526 | - }); | |
| 1527 | - } | |
| 1528 | - } | |
| 1529 | - }; | |
| 1530 | - const observer = new MutationObserver(observerCallback); | |
| 1531 | - observer.observe(document.body, { | |
| 1532 | - subtree: true, | |
| 1533 | - childList: true | |
| 1534 | - }); | |
| 1535 | - const addButton = $dropdown => { | |
| 1536 | - if (!$dropdown.querySelector('.patternswp-appender-button')) { | |
| 1537 | - const $appenderButton = document.createElement('button'); | |
| 1538 | - $appenderButton.type = 'button'; | |
| 1539 | - $appenderButton.setAttribute('aria-haspopup', 'true'); | |
| 1540 | - $appenderButton.className = 'components-button block-editor-inserter__toggle has-icon patternswp-appender-button'; | |
| 1541 | - $appenderButton.innerHTML = `<svg width="20" height="20" viewBox="0 0 25 37" fill="#ffffff" xmlns="http://www.w3.org/2000/svg"> | |
| 1542 | - <mask id="mask0_671_1966" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="18" width="9" height="19" fill="#ffffff" ><path d="M0 18.3303H8.23816V36.3607H0V18.3303Z" fill="#ffffff"/></mask> | |
| 1543 | - <g mask="url(#mask0_671_1966)"><path fill-rule="evenodd" clip-rule="evenodd" d="M0.625738 32.0853L8.04102 36.3602V18.5413L-0.000976562 23.1771V31.7244L0.625738 32.0853Z" fill="#ffffff"/></g> | |
| 1544 | - <mask id="mask1_671_1966" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="10" y="9" width="15" height="18"><path d="M10.1934 9.198H24.1297V26.5898H10.1934V9.198Z" fill="#ffffff"/></mask> | |
| 1545 | - <g mask="url(#mask1_671_1966)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.2178 17.2857V26.5548L16.0824 23.1758L24.1278 18.54V9.26831L16.0824 13.9041L10.2178 17.2857Z" fill="#ffffff"/></g> | |
| 1546 | - <mask id="mask2_671_1966" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="16" y="4" width="9" height="10"><path d="M16.0645 4.63403H24.1311V13.9821H16.0645V4.63403Z" fill="#ffffff"/></mask> | |
| 1547 | - <g mask="url(#mask2_671_1966)"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.083 13.9058L24.1284 9.26999L16.083 4.63672V13.9058Z" fill="#ffffff"/></g> | |
| 1548 | - <mask id="mask3_671_1966" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="17" height="14"> | |
| 1549 | - <path d="M0 0H16.2819V13.9813H0V0Z" fill="#ffffff"/></mask><g mask="url(#mask3_671_1966)"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.04102 9.2691L16.083 4.63582L8.04102 0L-0.000976562 4.63582V13.9049L8.04102 9.2691Z" fill="#ffffff"/></g> | |
| 1550 | - </svg>`; | |
| 1551 | - $appenderButton.style.marginLeft = '8px'; | |
| 1552 | - $dropdown.appendChild($appenderButton); | |
| 1553 | - $dropdown.style.display = 'flex'; | |
| 1554 | - $dropdown.style.gap = '5px'; | |
| 1555 | - $appenderButton.addEventListener('click', () => { | |
| 1556 | - setIsModalOpen(true); | |
| 1557 | - }); | |
| 1558 | - } | |
| 1559 | - }; | |
| 1560 | - const checkButtonPresence = () => { | |
| 1561 | - const dropdowns = document.querySelectorAll('iframe[name="editor-canvas"]').forEach(iframe => { | |
| 1562 | - const $dropdown = iframe.contentDocument.querySelector('.components-dropdown.block-editor-inserter'); | |
| 1563 | - if ($dropdown) { | |
| 1564 | - addButton($dropdown); | |
| 1565 | - } | |
| 1566 | - }); | |
| 1567 | - setTimeout(checkButtonPresence, 200); | |
| 1568 | - }; | |
| 1569 | - checkButtonPresence(); | |
| 1570 | - return () => { | |
| 1571 | - observer.disconnect(); | |
| 1572 | - }; | |
| 1573 | - }, []); | |
| 1574 | - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { | |
| 1575 | - className: "components-button is-button is-primary patternswp-button" // Add custom classes for styling | |
| 1576 | - , | |
| 1577 | - onClick: () => setIsModalOpen(true) | |
| 1578 | - }, "PatternsWP Library"), isModalOpen && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Modal, { | |
| 1579 | - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('PatternsWP', 'patternswp'), | |
| 1580 | - closeLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Close', 'patternswp'), | |
| 1581 | - onRequestClose: onCloseModal, | |
| 1582 | - className: "patternswp__modal", | |
| 1583 | - isFullScreen: true | |
| 1584 | - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_pattern_explorer__WEBPACK_IMPORTED_MODULE_6__["default"], { | |
| 1585 | - allPatterns: allPatterns, | |
| 1586 | - initialCategory: initialCategory, | |
| 1587 | - patternCategories: populatedCategories, | |
| 1588 | - patternCategoryTypes: populatedCategoryTypes, | |
| 1589 | - categoryTypes: true, | |
| 1590 | - onRequestClose: onCloseModal | |
| 1591 | - }))); | |
| 1592 | -} | |
| 1593 | - | |
| 1594 | -/** | |
| 1595 | - * Add the header toolbar button to the block editor. | |
| 1596 | - */ | |
| 1597 | -(0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.subscribe)(() => { | |
| 1598 | - const inserter = document.querySelector('#patternswp'); | |
| 1599 | - | |
| 1600 | - // If the inserter already exists, bail. | |
| 1601 | - if (inserter) { | |
| 1602 | - return; | |
| 1603 | - } | |
| 1604 | - wp.domReady(() => { | |
| 1605 | - const toolbar = document.querySelector('.edit-post-header-toolbar'); | |
| 1606 | - | |
| 1607 | - // If no toolbar can be found at all, bail. | |
| 1608 | - if (!toolbar) { | |
| 1609 | - return; | |
| 1610 | - } | |
| 1611 | - const buttonContainer = document.createElement('div'); | |
| 1612 | - buttonContainer.id = 'patternswp'; | |
| 1613 | - toolbar.appendChild(buttonContainer); | |
| 1614 | - (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.render)((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(HeaderToolbarButton, null), document.getElementById('patternswp')); | |
| 1615 | - }); | |
| 1616 | -}); | |
| 1617 | - | |
| 1618 | -/** | |
| 1619 | - * (Experimental) Add support for the pattern category type setting. | |
| 1620 | - * | |
| 1621 | - * @param {Array} settings All editor settings | |
| 1622 | - * @since 0.2.0 | |
| 1623 | - */ | |
| 1624 | - | |
| 1625 | -/** | |
| 1626 | - * Add our custom entities for retrieving external data in the Block Editor. | |
| 1627 | - * | |
| 1628 | - * @since 0.2.0 | |
| 1629 | - */ | |
| 1630 | -(0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.dispatch)('core').addEntities([{ | |
| 1631 | - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Pattern Category Types', 'patternswp'), | |
| 1632 | - kind: 'patternswp/v1', | |
| 1633 | - name: 'patternCategoryTypes', | |
| 1634 | - baseURL: '/patternswp/v1/pattern-category-types' | |
| 1635 | -}]); | |
| 1636 | -})(); | |
| 1637 | - | |
| 1638 | -/******/ })() | |
| 1639 | -; | |
| 1640 | -//# sourceMappingURL=patternswp-editor.js.map | |
| 1 | +(()=>{var e={942(e,t){var a;!function(){"use strict";var r={}.hasOwnProperty;function n(){for(var e="",t=0;t<arguments.length;t++){var a=arguments[t];a&&(e=s(e,l(a)))}return e}function l(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return n.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var a in e)r.call(e,a)&&e[a]&&(t=s(t,a));return t}function s(e,t){return t?e?e+" "+t:e+t:e}e.exports?(n.default=n,e.exports=n):void 0===(a=(function(){return n}).apply(t,[]))||(e.exports=a)}()}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var l=t[r]={exports:{}};return e[r](l,l.exports,a),l.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e=window.React,t=window.lodash,r=window.wp.i18n,n=window.wp.element,l=window.wp.data,s=window.wp.components;function o(t){let{patternCategories:a,patternCategoryTypes:l,selectedCategory:o,setSelectedCategory:i,searchValue:c,setSearchValue:$,isLicenseActive:p}=t,d=(0,n.useMemo)(()=>l.map(e=>e.name),[l]),u="patternswp__sidebar";return(0,e.createElement)("div",{className:u},(0,e.createElement)("div",{className:`${u}__search`},(0,e.createElement)(s.SearchControl,{value:c,onChange:$,label:(0,r.__)("Search patterns","patternswp")})),l.map(t=>{let n=a.filter(e=>"uncategorized"===t.name?!e?.categoryTypes||e.categoryTypes.every(e=>!d.includes(e)):e.categoryTypes?.includes(t.name));return n.length?(0,e.createElement)("div",{key:t.name,className:`${u}__category-type`},t?.hideLabelFromVision?(0,e.createElement)(s.VisuallyHidden,{as:"h2"},t.label):(0,e.createElement)("h2",{className:`${u}__category-type__title`},t.label),(0,e.createElement)("div",{className:`${u}__category-type__categories`},(0,e.createElement)(s.MenuGroup,{className:`${u}__categories-list`},n.map(t=>(0,e.createElement)("div",{key:t.name,className:`${u}__category-item`},(0,e.createElement)(s.MenuItem,{label:t.label,className:`${u}__categories-list__item`,isPressed:!c&&t.name===o,onClick(){var e;i(e=t.name),$("")}},t.label)))),!p&&(0,e.createElement)("div",{className:`${u}__category-item__button-container`},(0,e.createElement)("a",{href:"https://thepatternswp.com/pricing?utm_source=free_plugin&utm_medium=patterns_library_modal&utm_campaign=sidebar_button",target:"_blank",rel:"noopener noreferrer",onClick:()=>console.log("Link clicked for",category.name),className:`${u}__category-item__a`},(0,e.createElement)(s.Button,{isSecondary:!0,className:`${u}__category-item__button`},(0,r.__)("Upgrade to Pro","patternswp")))))):null}))}let i=window.wp.compose,c=window.wp.a11y;var $=a(942),p=a.n($);let d=window.wp.primitives,u=(0,n.createElement)(d.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(d.Path,{d:"M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"})),m=(0,n.createElement)(d.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(d.Path,{d:"M5 4v11h14V4H5zm3 15.8h8v-1.5H8v1.5z"})),_=(0,n.createElement)(d.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,n.createElement)(d.Path,{d:"M6 5.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM4 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm11-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM13 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2V6zm5 8.5h-3a.5.5 0 00-.5.5v3a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-3a.5.5 0 00-.5-.5zM15 13a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2v-3a2 2 0 00-2-2h-3zm-9 1.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5zM4 15a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2v-3z",fillRule:"evenodd",clipRule:"evenodd"}));function f(t){let{viewportWidth:a,setViewportWidth:n,isGrid:l,setIsGrid:o,shownPatterns:i,searchValue:c,isLoading:$}=t,d=[{label:(0,r.__)("Desktop","patternswp"),slug:"desktop",value:1300,active:1300===a},{label:(0,r.__)("Tablet","patternswp"),slug:"tablet",value:778,active:778===a},{label:(0,r.__)("Mobile","patternswp"),slug:"mobile",value:358,active:358===a}],f="patternswp__preview-header";return(0,e.createElement)("div",{className:f},(0,e.createElement)("div",{className:`${f}__search-results`},$&&(0,e.createElement)(s.Spinner,null),c&&c.length>1&&(0,r.sprintf)((0,r._n)('%1$d search result for "%2$s"','%1$d search results for "%2$s"',i.length,"patternswp"),i.length,c)),(0,e.createElement)("div",{className:`${f}__controls`},(0,e.createElement)(s.DropdownMenu,{icon:"",text:(0,r.__)("Preview","patternswp"),className:"viewport-toggle",toggleProps:{isTertiary:!0},popoverProps:{focusOnMount:"container",position:"bottom left"}},()=>(0,e.createElement)(s.MenuGroup,null,d.map(t=>(0,e.createElement)(s.MenuItem,{key:t.slug,className:p()({disabled:!t.active}),icon:t.active?u:"",onClick(){var e;(e=t).active||n(e.value)}},t.label)))),(0,e.createElement)(s.Button,{label:(0,r.__)("Individual Pattern","patternswp"),icon:m,isPressed:!l,onClick:()=>o(!l)}),(0,e.createElement)(s.Button,{label:(0,r.__)("Grid View","patternswp"),icon:_,isPressed:l,onClick:()=>o(!l)})))}let h=function(e){let{icon:t,size:a=24,...r}=e;return(0,n.cloneElement)(t,{width:a,height:a,...r})},g=(0,n.createElement)(d.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(d.Path,{d:"M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z"})),v=function({icon:t,label:a}){return(0,e.createElement)("div",{className:"patternswp-inserter__no-results"},(0,e.createElement)("div",null,(0,e.createElement)(h,{className:"patternswp-inserter__no-results-icon",icon:t||g}),(0,e.createElement)("p",null,a||(0,r.__)("No results found.","patternswp"))))},w=(0,n.createContext)(),y=function({children:t}){let a=(0,s.__unstableUseCompositeState)({shift:!0,wrap:"horizontal"});return(0,e.createElement)(w.Provider,{value:a},t)},b=window.wp.blocks,k=window.wp.blockEditor;function E(t){let{pattern:a,onInsertPattern:n,viewportWidth:o,composite:c,isBlock:$,clientId:p}=t,d=decodeURIComponent(escape(atob(a.content))),u=(0,b.parse)(d),{createSuccessNotice:m}=(0,l.useDispatch)("core/notices"),_=`preview-pattern-card__info-description-${(0,i.useInstanceId)(E)}`;function f(){n(u.map(e=>(0,b.cloneBlock)(e))),$&&(0,l.dispatch)("core/block-editor").removeBlock(p),m((0,r.sprintf)((0,r.__)('Block pattern "%s" inserted.',"patternswp"),a.title),{type:"snackbar"}),t.onRequestClose()}let h="patternswp__preview-pattern-list__item";return(0,e.createElement)("div",{className:`${h}${"pro"===a.type?" patternswp_pro_hover":""}`,"aria-label":a.title,"aria-describedby":a?.description?_:void 0},(0,e.createElement)(s.__unstableCompositeItem,{role:"option",as:"div",...c,className:`${h}-preview`,onClick:"pro"===a.type?null:f,disabled:"pro"===a.type},(0,e.createElement)(k.BlockPreview,{blocks:u,viewportWidth:o})),(0,e.createElement)("div",{className:`${h}-actions`},(0,e.createElement)("div",{className:`${h}-title`},a.title),!!a.description&&(0,e.createElement)(s.VisuallyHidden,{id:_},a.description),(0,e.createElement)(s.Button,{isSecondary:!0,onClick:f,disabled:"pro"===a.type},"pro"===a.type?(0,e.createElement)("a",{href:"https://thepatternswp.com/pricing?utm_source=free_plugin&utm_medium=patterns_library_modal&utm_campaign=patterns_lock",target:"_blank",rel:"noopener noreferrer",className:"patternswp__pro-pattern-link"},(0,e.createElement)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,e.createElement)("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M5 9V7C5 5.67392 5.52678 4.40215 6.46447 3.46447C7.40215 2.52678 8.67392 2 10 2C11.3261 2 12.5979 2.52678 13.5355 3.46447C14.4732 4.40215 15 5.67392 15 7V9C15.5304 9 16.0391 9.21071 16.4142 9.58579C16.7893 9.96086 17 10.4696 17 11V16C17 16.5304 16.7893 17.0391 16.4142 17.4142C16.0391 17.7893 15.5304 18 15 18H5C4.46957 18 3.96086 17.7893 3.58579 17.4142C3.21071 17.0391 3 16.5304 3 16V11C3 10.4696 3.21071 9.96086 3.58579 9.58579C3.96086 9.21071 4.46957 9 5 9ZM13 7V9H7V7C7 6.20435 7.31607 5.44129 7.87868 4.87868C8.44129 4.31607 9.20435 4 10 4C10.7957 4 11.5587 4.31607 12.1213 4.87868C12.6839 5.44129 13 6.20435 13 7Z",fill:"#818181"}))):(0,r.__)("Add Pattern","patternswp"))))}function C(a){let{isGrid:o,isLoading:i,searchValue:$,shownPatterns:d,viewportWidth:u}=a,[f,h]=function({rootClientId:e="",insertionIndex:a,clientId:s,isAppender:o,onSelect:i,shouldFocusBlock:$=!0}){let{getSelectedBlock:p}=(0,l.useSelect)(k.store),{destinationRootClientId:d,destinationIndex:u}=(0,l.useSelect)(t=>{let{getSelectedBlockClientId:r,getBlockRootClientId:n,getBlockIndex:l,getBlockOrder:i}=t(k.store),c=r(),$,p=e;return void 0!==a?$=a:s?$=l(s,p):!o&&c?(p=n(c),$=l(c,p)+1):$=i(p).length,{destinationRootClientId:p,destinationIndex:$}},[e,a,s,o]),{replaceBlocks:m,insertBlocks:_,showInsertionPoint:f,hideInsertionPoint:h}=(0,l.useDispatch)(k.store),g=(0,n.useCallback)((e,a,n=!1)=>{let l=p();!o&&l&&(0,b.isUnmodifiedDefaultBlock)(l)?m(l.clientId,e,null,$||n?0:null,a):_(e,u,d,!0,$||n?0:null,a);let s=(0,r.sprintf)((0,r._n)("%d block added.","%d blocks added.",(0,t.castArray)(e).length),(0,t.castArray)(e).length);(0,c.speak)(s),i&&i()},[o,p,m,_,d,u,i,$]),v=(0,n.useCallback)(e=>{e?f(d,u):h()},[f,h,d,u]);return[d,g,v]}({shouldFocusBlock:!0}),g=(0,t.isEmpty)(d)&&!$&&!i,w=(0,t.isEmpty)(d)&&$,C=!g&&!w,S=!C&&w?(0,r.__)("No search results found.","patternswp"):(0,r.__)("No patterns were found for this category.","patternswp"),V=(0,s.__unstableUseCompositeState)();return(0,e.createElement)(y,null,!C&&(0,e.createElement)(v,{icon:o?_:m,label:S}),C&&(0,e.createElement)(s.__unstableComposite,{...V,role:"listbox",className:p()("patternswp__preview-pattern-list",{"is-grid":o,"is-loading":i,"preview-tablet":778===u,"preview-mobile":358===u}),"aria-label":(0,r.__)("Patterns","patternswp")},d.map(t=>(0,e.createElement)(E,{key:t.name,pattern:t,onInsertPattern:h,viewportWidth:u,composite:V,onRequestClose:a.onRequestClose}))))}let S=window.wp.notices,V=(e,t,a)=>{let[s,o]=(0,n.useState)([]),[i]=(0,n.useState)(0),c=window.patternsWpData.patternCategories||[],$=window.patternsWpData.patternCategoryTypes||[],p=window.patternsWpData.patternsNonce||[],[d,u]=(0,n.useState)(2),[]=(0,n.useState)(""),[m,_]=(0,n.useState)(!0),[f,h]=(0,n.useState)(!1),{createSuccessNotice:g,createErrorNotice:v}=(0,l.useDispatch)(S.store),w=(0,n.useRef)(null),y=(0,n.useCallback)(async()=>{if(null!=a&&((t||a)&&0==i&&(d=1,u(2)),console.log(d),""!==t&&(a=""),""!==a&&(t=""),!f||""!=t)){h(!0);try{let e="all"===a?"":a,n=await fetch(window.ajaxurl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({action:"fetch_patterns",page:d,patternsPerPage:15,search:t,category:e,nonce:p})}),l=n.headers.get("Content-Type");if(l&&l.includes("text/html"))return console.error("Received HTML response instead of JSON:",await n.text()),void v((0,r.__)("Failed to load patterns. Please try again later.","patternswp"),{type:"error"});let s=await n.json();s.success&&Array.isArray(s.data)?(o(e=>{if((t||a)&&0===i)return s.data;let r=new Set(e.map(e=>e.content)),n=s.data.filter(e=>!r.has(e.content));return[...e,...n]}),f||1!=i||u(e=>e+1),_(15===s.data.length)):console.error("Expected an array of patterns but got:",s)}catch(c){console.error("Error fetching patterns:",c),v((0,r.__)("Failed to load more patterns.","patternswp"),{type:"error"})}finally{h(!1)}}},[v,m,f,t,a]),k=(0,n.useCallback)((t,a)=>{e(a.map(e=>(0,b.cloneBlock)(e)),t.name),g((0,r.sprintf)((0,r.__)('Block pattern "%s" inserted.',"patternswp"),t.title),{type:"snackbar"})},[g,e]);return(0,n.useEffect)(()=>{y(i=0)},[t,a]),(0,n.useEffect)(()=>{let e=()=>{let e=document.querySelector(".components-modal__content");if(!e)return;let{clientHeight:t,scrollTop:a,scrollHeight:r}=e;t+a>=r-800&&m&&!f&&y(i=1)},t=document.querySelector(".components-modal__content");return t&&t.addEventListener("scroll",e),()=>{t&&t.removeEventListener("scroll",e)}},[y,m,f]),[s,c,$,k,w,m,f]};function N(t){let{selectedCategory:a,searchValue:l,onRequestClose:s}=t,[o,$]=(0,n.useState)(1300),[p,d]=(0,n.useState)(!0),u=(0,i.useDebounce)(c.speak,500),[m=[],,,_,h,,g]=V([],l,a),v=(0,n.useMemo)(()=>m,[m]);return(0,n.useEffect)(()=>{if(g)return;let e=v.length,t=(0,r.sprintf)((0,r._n)("%d pattern found.","%d patterns found.",e,"patternswp"),e);u(t)},[l,u,v.length,g]),(0,e.createElement)("div",{className:"patternswp__preview",ref:h},(0,e.createElement)(f,{viewportWidth:o,setViewportWidth:$,isGrid:p,setIsGrid:d,shownPatterns:v,searchValue:l,isLoading:g}),(0,e.createElement)(C,{viewportWidth:o,isGrid:p,shownPatterns:v,searchValue:l,isLoading:g,onRequestClose:s,onClickPattern:_}),g&&(0,e.createElement)("div",{className:"patternswp__loader"},"Loading..."))}function P({allPatterns:t,initialCategory:a,patternCategories:r,patternCategoryTypes:l,isLicenseActive:s,onRequestClose:i}){let[c,$]=(0,n.useState)(""),[p,d]=(0,n.useState)("all");return(0,e.createElement)("div",{className:"patternswp"},(0,e.createElement)(o,{patternCategories:r,patternCategoryTypes:l,selectedCategory:p,setSelectedCategory:d,searchValue:c,setSearchValue:$,isLicenseActive:s}),(0,e.createElement)(N,{allPatterns:t,patternCategories:r,selectedCategory:p,searchValue:c,onRequestClose:i}))}function x(){let[t,a]=(0,n.useState)(!1),[l,o,i]=V(),c="fetching"===i?[]:i,$=patternsWpData.isLicenseActive,p=(0,n.useCallback)(e=>!(!e.categoryTypes||!e.categoryTypes.length)&&e.categoryTypes.some(e=>c.some(t=>t.name===e)),[c]),d=()=>{a(!1)},u=(0,n.useMemo)(()=>[{name:"all",label:"All"},...o.filter(e=>e.name.startsWith("patternswp-")).map(e=>({...e,label:e.name.replace("patternswp-","").replace(/-/g," ").replace(/\b\w/g,e=>e.toUpperCase())}))],[o]),m=(0,n.useMemo)(()=>{let e=c.filter(e=>u.some(t=>t.categoryTypes?.includes(e.name)));return u.some(e=>!p(e))&&!e.find(e=>"uncategorized"===e.name)&&e.unshift({name:"uncategorized",label:(0,r.__)("Uncategorized","patternswp"),hideLabelFromVision:!0}),e},[u,c]),_=u[0];return(0,n.useEffect)(()=>{let e=new MutationObserver(e=>{for(let a of e)"childList"===a.type&&a.addedNodes.length&&document.querySelectorAll(".components-dropdown.block-editor-inserter").forEach(e=>{t(e)})});e.observe(document.body,{subtree:!0,childList:!0});let t=e=>{if(!e.querySelector(".patternswp-appender-button")){let t=document.createElement("button");t.type="button",t.setAttribute("aria-haspopup","true"),t.className="components-button block-editor-inserter__toggle has-icon patternswp-appender-button",t.innerHTML='<svg width="20" height="20" viewBox="0 0 25 37" fill="#ffffff" xmlns="http://www.w3.org/2000/svg">\n <mask id="mask0_671_1966" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="18" width="9" height="19" fill="#ffffff" ><path d="M0 18.3303H8.23816V36.3607H0V18.3303Z" fill="#ffffff"/></mask>\n <g mask="url(#mask0_671_1966)"><path fill-rule="evenodd" clip-rule="evenodd" d="M0.625738 32.0853L8.04102 36.3602V18.5413L-0.000976562 23.1771V31.7244L0.625738 32.0853Z" fill="#ffffff"/></g>\n <mask id="mask1_671_1966" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="10" y="9" width="15" height="18"><path d="M10.1934 9.198H24.1297V26.5898H10.1934V9.198Z" fill="#ffffff"/></mask>\n <g mask="url(#mask1_671_1966)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.2178 17.2857V26.5548L16.0824 23.1758L24.1278 18.54V9.26831L16.0824 13.9041L10.2178 17.2857Z" fill="#ffffff"/></g>\n <mask id="mask2_671_1966" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="16" y="4" width="9" height="10"><path d="M16.0645 4.63403H24.1311V13.9821H16.0645V4.63403Z" fill="#ffffff"/></mask>\n <g mask="url(#mask2_671_1966)"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.083 13.9058L24.1284 9.26999L16.083 4.63672V13.9058Z" fill="#ffffff"/></g>\n <mask id="mask3_671_1966" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="17" height="14">\n <path d="M0 0H16.2819V13.9813H0V0Z" fill="#ffffff"/></mask><g mask="url(#mask3_671_1966)"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.04102 9.2691L16.083 4.63582L8.04102 0L-0.000976562 4.63582V13.9049L8.04102 9.2691Z" fill="#ffffff"/></g>\n </svg>',t.style.marginLeft="8px",e.appendChild(t),e.style.display="flex",e.style.gap="5px",t.addEventListener("click",()=>{a(!0)})}},r=()=>{document.querySelectorAll('iframe[name="editor-canvas"]').forEach(e=>{let a=e.contentDocument.querySelector(".components-dropdown.block-editor-inserter");a&&t(a)}),setTimeout(r,200)};return r(),()=>{e.disconnect()}},[]),(0,e.createElement)(e.Fragment,null,(0,e.createElement)(s.Button,{className:"components-button is-button is-primary patternswp-button",onClick:()=>a(!0)},"PatternsWP Library"),t&&(0,e.createElement)(s.Modal,{id:"patternswp__modal",title:(0,r.__)("PatternsWP","patternswp"),closeLabel:(0,r.__)("Close","patternswp"),onRequestClose:d,className:"patternswp__modal",isFullScreen:!0},(0,e.createElement)(P,{allPatterns:l,initialCategory:_,patternCategories:u,patternCategoryTypes:m,onRequestClose:d,isLicenseActive:$})))}(0,l.subscribe)(()=>{document.querySelector("#patternswp")||wp.domReady(()=>{let t=document.querySelector(".edit-post-header-toolbar");if(!t)return;let a=document.createElement("div");a.id="patternswp",t.appendChild(a),(0,n.render)((0,e.createElement)(x,null),document.getElementById("patternswp"))})})})()})(); | |