[ Index ] |
PHP Cross Reference of WordPress |
[Summary view] [Print] [Text view]
1 /******/ (function() { // webpackBootstrap 2 /******/ var __webpack_modules__ = ({ 3 4 /***/ 3827: 5 /***/ (function(module, exports) { 6 7 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 8 Copyright (c) 2018 Jed Watson. 9 Licensed under the MIT License (MIT), see 10 http://jedwatson.github.io/classnames 11 */ 12 /* global define */ 13 14 (function () { 15 'use strict'; 16 17 var classNames = (function () { 18 // don't inherit from Object so we can skip hasOwnProperty check later 19 // http://stackoverflow.com/questions/15518328/creating-js-object-with-object-createnull#answer-21079232 20 function StorageObject() {} 21 StorageObject.prototype = Object.create(null); 22 23 function _parseArray (resultSet, array) { 24 var length = array.length; 25 26 for (var i = 0; i < length; ++i) { 27 _parse(resultSet, array[i]); 28 } 29 } 30 31 var hasOwn = {}.hasOwnProperty; 32 33 function _parseNumber (resultSet, num) { 34 resultSet[num] = true; 35 } 36 37 function _parseObject (resultSet, object) { 38 if (object.toString === Object.prototype.toString) { 39 for (var k in object) { 40 if (hasOwn.call(object, k)) { 41 // set value to false instead of deleting it to avoid changing object structure 42 // https://www.smashingmagazine.com/2012/11/writing-fast-memory-efficient-javascript/#de-referencing-misconceptions 43 resultSet[k] = !!object[k]; 44 } 45 } 46 } else { 47 resultSet[object.toString()] = true; 48 } 49 } 50 51 var SPACE = /\s+/; 52 function _parseString (resultSet, str) { 53 var array = str.split(SPACE); 54 var length = array.length; 55 56 for (var i = 0; i < length; ++i) { 57 resultSet[array[i]] = true; 58 } 59 } 60 61 function _parse (resultSet, arg) { 62 if (!arg) return; 63 var argType = typeof arg; 64 65 // 'foo bar' 66 if (argType === 'string') { 67 _parseString(resultSet, arg); 68 69 // ['foo', 'bar', ...] 70 } else if (Array.isArray(arg)) { 71 _parseArray(resultSet, arg); 72 73 // { 'foo': true, ... } 74 } else if (argType === 'object') { 75 _parseObject(resultSet, arg); 76 77 // '130' 78 } else if (argType === 'number') { 79 _parseNumber(resultSet, arg); 80 } 81 } 82 83 function _classNames () { 84 // don't leak arguments 85 // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments 86 var len = arguments.length; 87 var args = Array(len); 88 for (var i = 0; i < len; i++) { 89 args[i] = arguments[i]; 90 } 91 92 var classSet = new StorageObject(); 93 _parseArray(classSet, args); 94 95 var list = []; 96 97 for (var k in classSet) { 98 if (classSet[k]) { 99 list.push(k) 100 } 101 } 102 103 return list.join(' '); 104 } 105 106 return _classNames; 107 })(); 108 109 if ( true && module.exports) { 110 classNames.default = classNames; 111 module.exports = classNames; 112 } else if (true) { 113 // register as 'classnames', consistent with npm package name 114 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { 115 return classNames; 116 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 117 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 118 } else {} 119 }()); 120 121 122 /***/ }), 123 124 /***/ 4403: 125 /***/ (function(module, exports) { 126 127 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 128 Copyright (c) 2018 Jed Watson. 129 Licensed under the MIT License (MIT), see 130 http://jedwatson.github.io/classnames 131 */ 132 /* global define */ 133 134 (function () { 135 'use strict'; 136 137 var hasOwn = {}.hasOwnProperty; 138 139 function classNames() { 140 var classes = []; 141 142 for (var i = 0; i < arguments.length; i++) { 143 var arg = arguments[i]; 144 if (!arg) continue; 145 146 var argType = typeof arg; 147 148 if (argType === 'string' || argType === 'number') { 149 classes.push(arg); 150 } else if (Array.isArray(arg)) { 151 if (arg.length) { 152 var inner = classNames.apply(null, arg); 153 if (inner) { 154 classes.push(inner); 155 } 156 } 157 } else if (argType === 'object') { 158 if (arg.toString === Object.prototype.toString) { 159 for (var key in arg) { 160 if (hasOwn.call(arg, key) && arg[key]) { 161 classes.push(key); 162 } 163 } 164 } else { 165 classes.push(arg.toString()); 166 } 167 } 168 } 169 170 return classes.join(' '); 171 } 172 173 if ( true && module.exports) { 174 classNames.default = classNames; 175 module.exports = classNames; 176 } else if (true) { 177 // register as 'classnames', consistent with npm package name 178 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { 179 return classNames; 180 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 181 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 182 } else {} 183 }()); 184 185 186 /***/ }), 187 188 /***/ 5027: 189 /***/ (function(module) { 190 191 /*! Fast Average Color | © 2019 Denis Seleznev | MIT License | https://github.com/hcodes/fast-average-color/ */ 192 (function (global, factory) { 193 true ? module.exports = factory() : 194 0; 195 }(this, (function () { 'use strict'; 196 197 function _classCallCheck(instance, Constructor) { 198 if (!(instance instanceof Constructor)) { 199 throw new TypeError("Cannot call a class as a function"); 200 } 201 } 202 203 function _defineProperties(target, props) { 204 for (var i = 0; i < props.length; i++) { 205 var descriptor = props[i]; 206 descriptor.enumerable = descriptor.enumerable || false; 207 descriptor.configurable = true; 208 if ("value" in descriptor) descriptor.writable = true; 209 Object.defineProperty(target, descriptor.key, descriptor); 210 } 211 } 212 213 function _createClass(Constructor, protoProps, staticProps) { 214 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 215 if (staticProps) _defineProperties(Constructor, staticProps); 216 return Constructor; 217 } 218 219 function _slicedToArray(arr, i) { 220 return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); 221 } 222 223 function _arrayWithHoles(arr) { 224 if (Array.isArray(arr)) return arr; 225 } 226 227 function _iterableToArrayLimit(arr, i) { 228 var _arr = []; 229 var _n = true; 230 var _d = false; 231 var _e = undefined; 232 233 try { 234 for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { 235 _arr.push(_s.value); 236 237 if (i && _arr.length === i) break; 238 } 239 } catch (err) { 240 _d = true; 241 _e = err; 242 } finally { 243 try { 244 if (!_n && _i["return"] != null) _i["return"](); 245 } finally { 246 if (_d) throw _e; 247 } 248 } 249 250 return _arr; 251 } 252 253 function _nonIterableRest() { 254 throw new TypeError("Invalid attempt to destructure non-iterable instance"); 255 } 256 257 var FastAverageColor = 258 /*#__PURE__*/ 259 function () { 260 function FastAverageColor() { 261 _classCallCheck(this, FastAverageColor); 262 } 263 264 _createClass(FastAverageColor, [{ 265 key: "getColorAsync", 266 267 /** 268 * Get asynchronously the average color from not loaded image. 269 * 270 * @param {HTMLImageElement} resource 271 * @param {Function} callback 272 * @param {Object|null} [options] 273 * @param {Array} [options.defaultColor=[255, 255, 255, 255]] 274 * @param {*} [options.data] 275 * @param {string} [options.mode="speed"] "precision" or "speed" 276 * @param {string} [options.algorithm="sqrt"] "simple", "sqrt" or "dominant" 277 * @param {number} [options.step=1] 278 * @param {number} [options.left=0] 279 * @param {number} [options.top=0] 280 * @param {number} [options.width=width of resource] 281 * @param {number} [options.height=height of resource] 282 */ 283 value: function getColorAsync(resource, callback, options) { 284 if (resource.complete) { 285 callback.call(resource, this.getColor(resource, options), options && options.data); 286 } else { 287 this._bindImageEvents(resource, callback, options); 288 } 289 } 290 /** 291 * Get the average color from images, videos and canvas. 292 * 293 * @param {HTMLImageElement|HTMLVideoElement|HTMLCanvasElement} resource 294 * @param {Object|null} [options] 295 * @param {Array} [options.defaultColor=[255, 255, 255, 255]] 296 * @param {*} [options.data] 297 * @param {string} [options.mode="speed"] "precision" or "speed" 298 * @param {string} [options.algorithm="sqrt"] "simple", "sqrt" or "dominant" 299 * @param {number} [options.step=1] 300 * @param {number} [options.left=0] 301 * @param {number} [options.top=0] 302 * @param {number} [options.width=width of resource] 303 * @param {number} [options.height=height of resource] 304 * 305 * @returns {Object} 306 */ 307 308 }, { 309 key: "getColor", 310 value: function getColor(resource, options) { 311 options = options || {}; 312 313 var defaultColor = this._getDefaultColor(options), 314 originalSize = this._getOriginalSize(resource), 315 size = this._prepareSizeAndPosition(originalSize, options); 316 317 var error = null, 318 value = defaultColor; 319 320 if (!size.srcWidth || !size.srcHeight || !size.destWidth || !size.destHeight) { 321 return this._prepareResult(defaultColor, new Error('FastAverageColor: Incorrect sizes.')); 322 } 323 324 if (!this._ctx) { 325 this._canvas = this._makeCanvas(); 326 this._ctx = this._canvas.getContext && this._canvas.getContext('2d'); 327 328 if (!this._ctx) { 329 return this._prepareResult(defaultColor, new Error('FastAverageColor: Canvas Context 2D is not supported in this browser.')); 330 } 331 } 332 333 this._canvas.width = size.destWidth; 334 this._canvas.height = size.destHeight; 335 336 try { 337 this._ctx.clearRect(0, 0, size.destWidth, size.destHeight); 338 339 this._ctx.drawImage(resource, size.srcLeft, size.srcTop, size.srcWidth, size.srcHeight, 0, 0, size.destWidth, size.destHeight); 340 341 var bitmapData = this._ctx.getImageData(0, 0, size.destWidth, size.destHeight).data; 342 343 value = this.getColorFromArray4(bitmapData, options); 344 } catch (e) { 345 // Security error, CORS 346 // https://developer.mozilla.org/en/docs/Web/HTML/CORS_enabled_image 347 error = e; 348 } 349 350 return this._prepareResult(value, error); 351 } 352 /** 353 * Get the average color from a array when 1 pixel is 4 bytes. 354 * 355 * @param {Array|Uint8Array} arr 356 * @param {Object} [options] 357 * @param {string} [options.algorithm="sqrt"] "simple", "sqrt" or "dominant" 358 * @param {Array} [options.defaultColor=[255, 255, 255, 255]] 359 * @param {number} [options.step=1] 360 * 361 * @returns {Array} [red (0-255), green (0-255), blue (0-255), alpha (0-255)] 362 */ 363 364 }, { 365 key: "getColorFromArray4", 366 value: function getColorFromArray4(arr, options) { 367 options = options || {}; 368 var bytesPerPixel = 4, 369 arrLength = arr.length; 370 371 if (arrLength < bytesPerPixel) { 372 return this._getDefaultColor(options); 373 } 374 375 var len = arrLength - arrLength % bytesPerPixel, 376 preparedStep = (options.step || 1) * bytesPerPixel, 377 algorithm = '_' + (options.algorithm || 'sqrt') + 'Algorithm'; 378 379 if (typeof this[algorithm] !== 'function') { 380 throw new Error("FastAverageColor: ".concat(options.algorithm, " is unknown algorithm.")); 381 } 382 383 return this[algorithm](arr, len, preparedStep); 384 } 385 /** 386 * Destroy the instance. 387 */ 388 389 }, { 390 key: "destroy", 391 value: function destroy() { 392 delete this._canvas; 393 delete this._ctx; 394 } 395 }, { 396 key: "_getDefaultColor", 397 value: function _getDefaultColor(options) { 398 return this._getOption(options, 'defaultColor', [255, 255, 255, 255]); 399 } 400 }, { 401 key: "_getOption", 402 value: function _getOption(options, name, defaultValue) { 403 return typeof options[name] === 'undefined' ? defaultValue : options[name]; 404 } 405 }, { 406 key: "_prepareSizeAndPosition", 407 value: function _prepareSizeAndPosition(originalSize, options) { 408 var srcLeft = this._getOption(options, 'left', 0), 409 srcTop = this._getOption(options, 'top', 0), 410 srcWidth = this._getOption(options, 'width', originalSize.width), 411 srcHeight = this._getOption(options, 'height', originalSize.height), 412 destWidth = srcWidth, 413 destHeight = srcHeight; 414 415 if (options.mode === 'precision') { 416 return { 417 srcLeft: srcLeft, 418 srcTop: srcTop, 419 srcWidth: srcWidth, 420 srcHeight: srcHeight, 421 destWidth: destWidth, 422 destHeight: destHeight 423 }; 424 } 425 426 var maxSize = 100, 427 minSize = 10; 428 var factor; 429 430 if (srcWidth > srcHeight) { 431 factor = srcWidth / srcHeight; 432 destWidth = maxSize; 433 destHeight = Math.round(destWidth / factor); 434 } else { 435 factor = srcHeight / srcWidth; 436 destHeight = maxSize; 437 destWidth = Math.round(destHeight / factor); 438 } 439 440 if (destWidth > srcWidth || destHeight > srcHeight || destWidth < minSize || destHeight < minSize) { 441 destWidth = srcWidth; 442 destHeight = srcHeight; 443 } 444 445 return { 446 srcLeft: srcLeft, 447 srcTop: srcTop, 448 srcWidth: srcWidth, 449 srcHeight: srcHeight, 450 destWidth: destWidth, 451 destHeight: destHeight 452 }; 453 } 454 }, { 455 key: "_simpleAlgorithm", 456 value: function _simpleAlgorithm(arr, len, preparedStep) { 457 var redTotal = 0, 458 greenTotal = 0, 459 blueTotal = 0, 460 alphaTotal = 0, 461 count = 0; 462 463 for (var i = 0; i < len; i += preparedStep) { 464 var alpha = arr[i + 3], 465 red = arr[i] * alpha, 466 green = arr[i + 1] * alpha, 467 blue = arr[i + 2] * alpha; 468 redTotal += red; 469 greenTotal += green; 470 blueTotal += blue; 471 alphaTotal += alpha; 472 count++; 473 } 474 475 return alphaTotal ? [Math.round(redTotal / alphaTotal), Math.round(greenTotal / alphaTotal), Math.round(blueTotal / alphaTotal), Math.round(alphaTotal / count)] : [0, 0, 0, 0]; 476 } 477 }, { 478 key: "_sqrtAlgorithm", 479 value: function _sqrtAlgorithm(arr, len, preparedStep) { 480 var redTotal = 0, 481 greenTotal = 0, 482 blueTotal = 0, 483 alphaTotal = 0, 484 count = 0; 485 486 for (var i = 0; i < len; i += preparedStep) { 487 var red = arr[i], 488 green = arr[i + 1], 489 blue = arr[i + 2], 490 alpha = arr[i + 3]; 491 redTotal += red * red * alpha; 492 greenTotal += green * green * alpha; 493 blueTotal += blue * blue * alpha; 494 alphaTotal += alpha; 495 count++; 496 } 497 498 return alphaTotal ? [Math.round(Math.sqrt(redTotal / alphaTotal)), Math.round(Math.sqrt(greenTotal / alphaTotal)), Math.round(Math.sqrt(blueTotal / alphaTotal)), Math.round(alphaTotal / count)] : [0, 0, 0, 0]; 499 } 500 }, { 501 key: "_dominantAlgorithm", 502 value: function _dominantAlgorithm(arr, len, preparedStep) { 503 var colorHash = {}, 504 divider = 24; 505 506 for (var i = 0; i < len; i += preparedStep) { 507 var red = arr[i], 508 green = arr[i + 1], 509 blue = arr[i + 2], 510 alpha = arr[i + 3], 511 key = Math.round(red / divider) + ',' + Math.round(green / divider) + ',' + Math.round(blue / divider); 512 513 if (colorHash[key]) { 514 colorHash[key] = [colorHash[key][0] + red * alpha, colorHash[key][1] + green * alpha, colorHash[key][2] + blue * alpha, colorHash[key][3] + alpha, colorHash[key][4] + 1]; 515 } else { 516 colorHash[key] = [red * alpha, green * alpha, blue * alpha, alpha, 1]; 517 } 518 } 519 520 var buffer = Object.keys(colorHash).map(function (key) { 521 return colorHash[key]; 522 }).sort(function (a, b) { 523 var countA = a[4], 524 countB = b[4]; 525 return countA > countB ? -1 : countA === countB ? 0 : 1; 526 }); 527 528 var _buffer$ = _slicedToArray(buffer[0], 5), 529 redTotal = _buffer$[0], 530 greenTotal = _buffer$[1], 531 blueTotal = _buffer$[2], 532 alphaTotal = _buffer$[3], 533 count = _buffer$[4]; 534 535 return alphaTotal ? [Math.round(redTotal / alphaTotal), Math.round(greenTotal / alphaTotal), Math.round(blueTotal / alphaTotal), Math.round(alphaTotal / count)] : [0, 0, 0, 0]; 536 } 537 }, { 538 key: "_bindImageEvents", 539 value: function _bindImageEvents(resource, callback, options) { 540 var _this = this; 541 542 options = options || {}; 543 544 var data = options && options.data, 545 defaultColor = this._getDefaultColor(options), 546 onload = function onload() { 547 unbindEvents(); 548 callback.call(resource, _this.getColor(resource, options), data); 549 }, 550 onerror = function onerror() { 551 unbindEvents(); 552 callback.call(resource, _this._prepareResult(defaultColor, new Error('Image error')), data); 553 }, 554 onabort = function onabort() { 555 unbindEvents(); 556 callback.call(resource, _this._prepareResult(defaultColor, new Error('Image abort')), data); 557 }, 558 unbindEvents = function unbindEvents() { 559 resource.removeEventListener('load', onload); 560 resource.removeEventListener('error', onerror); 561 resource.removeEventListener('abort', onabort); 562 }; 563 564 resource.addEventListener('load', onload); 565 resource.addEventListener('error', onerror); 566 resource.addEventListener('abort', onabort); 567 } 568 }, { 569 key: "_prepareResult", 570 value: function _prepareResult(value, error) { 571 var rgb = value.slice(0, 3), 572 rgba = [].concat(rgb, value[3] / 255), 573 isDark = this._isDark(value); 574 575 return { 576 error: error, 577 value: value, 578 rgb: 'rgb(' + rgb.join(',') + ')', 579 rgba: 'rgba(' + rgba.join(',') + ')', 580 hex: this._arrayToHex(rgb), 581 hexa: this._arrayToHex(value), 582 isDark: isDark, 583 isLight: !isDark 584 }; 585 } 586 }, { 587 key: "_getOriginalSize", 588 value: function _getOriginalSize(resource) { 589 if (resource instanceof HTMLImageElement) { 590 return { 591 width: resource.naturalWidth, 592 height: resource.naturalHeight 593 }; 594 } 595 596 if (resource instanceof HTMLVideoElement) { 597 return { 598 width: resource.videoWidth, 599 height: resource.videoHeight 600 }; 601 } 602 603 return { 604 width: resource.width, 605 height: resource.height 606 }; 607 } 608 }, { 609 key: "_toHex", 610 value: function _toHex(num) { 611 var str = num.toString(16); 612 return str.length === 1 ? '0' + str : str; 613 } 614 }, { 615 key: "_arrayToHex", 616 value: function _arrayToHex(arr) { 617 return '#' + arr.map(this._toHex).join(''); 618 } 619 }, { 620 key: "_isDark", 621 value: function _isDark(color) { 622 // http://www.w3.org/TR/AERT#color-contrast 623 var result = (color[0] * 299 + color[1] * 587 + color[2] * 114) / 1000; 624 return result < 128; 625 } 626 }, { 627 key: "_makeCanvas", 628 value: function _makeCanvas() { 629 return typeof window === 'undefined' ? new OffscreenCanvas(1, 1) : document.createElement('canvas'); 630 } 631 }]); 632 633 return FastAverageColor; 634 }(); 635 636 return FastAverageColor; 637 638 }))); 639 640 641 /***/ }), 642 643 /***/ 9756: 644 /***/ (function(module) { 645 646 /** 647 * Memize options object. 648 * 649 * @typedef MemizeOptions 650 * 651 * @property {number} [maxSize] Maximum size of the cache. 652 */ 653 654 /** 655 * Internal cache entry. 656 * 657 * @typedef MemizeCacheNode 658 * 659 * @property {?MemizeCacheNode|undefined} [prev] Previous node. 660 * @property {?MemizeCacheNode|undefined} [next] Next node. 661 * @property {Array<*>} args Function arguments for cache 662 * entry. 663 * @property {*} val Function result. 664 */ 665 666 /** 667 * Properties of the enhanced function for controlling cache. 668 * 669 * @typedef MemizeMemoizedFunction 670 * 671 * @property {()=>void} clear Clear the cache. 672 */ 673 674 /** 675 * Accepts a function to be memoized, and returns a new memoized function, with 676 * optional options. 677 * 678 * @template {Function} F 679 * 680 * @param {F} fn Function to memoize. 681 * @param {MemizeOptions} [options] Options object. 682 * 683 * @return {F & MemizeMemoizedFunction} Memoized function. 684 */ 685 function memize( fn, options ) { 686 var size = 0; 687 688 /** @type {?MemizeCacheNode|undefined} */ 689 var head; 690 691 /** @type {?MemizeCacheNode|undefined} */ 692 var tail; 693 694 options = options || {}; 695 696 function memoized( /* ...args */ ) { 697 var node = head, 698 len = arguments.length, 699 args, i; 700 701 searchCache: while ( node ) { 702 // Perform a shallow equality test to confirm that whether the node 703 // under test is a candidate for the arguments passed. Two arrays 704 // are shallowly equal if their length matches and each entry is 705 // strictly equal between the two sets. Avoid abstracting to a 706 // function which could incur an arguments leaking deoptimization. 707 708 // Check whether node arguments match arguments length 709 if ( node.args.length !== arguments.length ) { 710 node = node.next; 711 continue; 712 } 713 714 // Check whether node arguments match arguments values 715 for ( i = 0; i < len; i++ ) { 716 if ( node.args[ i ] !== arguments[ i ] ) { 717 node = node.next; 718 continue searchCache; 719 } 720 } 721 722 // At this point we can assume we've found a match 723 724 // Surface matched node to head if not already 725 if ( node !== head ) { 726 // As tail, shift to previous. Must only shift if not also 727 // head, since if both head and tail, there is no previous. 728 if ( node === tail ) { 729 tail = node.prev; 730 } 731 732 // Adjust siblings to point to each other. If node was tail, 733 // this also handles new tail's empty `next` assignment. 734 /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; 735 if ( node.next ) { 736 node.next.prev = node.prev; 737 } 738 739 node.next = head; 740 node.prev = null; 741 /** @type {MemizeCacheNode} */ ( head ).prev = node; 742 head = node; 743 } 744 745 // Return immediately 746 return node.val; 747 } 748 749 // No cached value found. Continue to insertion phase: 750 751 // Create a copy of arguments (avoid leaking deoptimization) 752 args = new Array( len ); 753 for ( i = 0; i < len; i++ ) { 754 args[ i ] = arguments[ i ]; 755 } 756 757 node = { 758 args: args, 759 760 // Generate the result from original function 761 val: fn.apply( null, args ), 762 }; 763 764 // Don't need to check whether node is already head, since it would 765 // have been returned above already if it was 766 767 // Shift existing head down list 768 if ( head ) { 769 head.prev = node; 770 node.next = head; 771 } else { 772 // If no head, follows that there's no tail (at initial or reset) 773 tail = node; 774 } 775 776 // Trim tail if we're reached max size and are pending cache insertion 777 if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { 778 tail = /** @type {MemizeCacheNode} */ ( tail ).prev; 779 /** @type {MemizeCacheNode} */ ( tail ).next = null; 780 } else { 781 size++; 782 } 783 784 head = node; 785 786 return node.val; 787 } 788 789 memoized.clear = function() { 790 head = null; 791 tail = null; 792 size = 0; 793 }; 794 795 if ( false ) {} 796 797 // Ignore reason: There's not a clear solution to create an intersection of 798 // the function with additional properties, where the goal is to retain the 799 // function signature of the incoming argument and add control properties 800 // on the return value. 801 802 // @ts-ignore 803 return memoized; 804 } 805 806 module.exports = memize; 807 808 809 /***/ }) 810 811 /******/ }); 812 /************************************************************************/ 813 /******/ // The module cache 814 /******/ var __webpack_module_cache__ = {}; 815 /******/ 816 /******/ // The require function 817 /******/ function __webpack_require__(moduleId) { 818 /******/ // Check if module is in cache 819 /******/ var cachedModule = __webpack_module_cache__[moduleId]; 820 /******/ if (cachedModule !== undefined) { 821 /******/ return cachedModule.exports; 822 /******/ } 823 /******/ // Create a new module (and put it into the cache) 824 /******/ var module = __webpack_module_cache__[moduleId] = { 825 /******/ // no module.id needed 826 /******/ // no module.loaded needed 827 /******/ exports: {} 828 /******/ }; 829 /******/ 830 /******/ // Execute the module function 831 /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); 832 /******/ 833 /******/ // Return the exports of the module 834 /******/ return module.exports; 835 /******/ } 836 /******/ 837 /************************************************************************/ 838 /******/ /* webpack/runtime/compat get default export */ 839 /******/ !function() { 840 /******/ // getDefaultExport function for compatibility with non-harmony modules 841 /******/ __webpack_require__.n = function(module) { 842 /******/ var getter = module && module.__esModule ? 843 /******/ function() { return module['default']; } : 844 /******/ function() { return module; }; 845 /******/ __webpack_require__.d(getter, { a: getter }); 846 /******/ return getter; 847 /******/ }; 848 /******/ }(); 849 /******/ 850 /******/ /* webpack/runtime/define property getters */ 851 /******/ !function() { 852 /******/ // define getter functions for harmony exports 853 /******/ __webpack_require__.d = function(exports, definition) { 854 /******/ for(var key in definition) { 855 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 856 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 857 /******/ } 858 /******/ } 859 /******/ }; 860 /******/ }(); 861 /******/ 862 /******/ /* webpack/runtime/hasOwnProperty shorthand */ 863 /******/ !function() { 864 /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } 865 /******/ }(); 866 /******/ 867 /******/ /* webpack/runtime/make namespace object */ 868 /******/ !function() { 869 /******/ // define __esModule on exports 870 /******/ __webpack_require__.r = function(exports) { 871 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 872 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 873 /******/ } 874 /******/ Object.defineProperty(exports, '__esModule', { value: true }); 875 /******/ }; 876 /******/ }(); 877 /******/ 878 /************************************************************************/ 879 var __webpack_exports__ = {}; 880 // This entry need to be wrapped in an IIFE because it need to be in strict mode. 881 !function() { 882 "use strict"; 883 // ESM COMPAT FLAG 884 __webpack_require__.r(__webpack_exports__); 885 886 // EXPORTS 887 __webpack_require__.d(__webpack_exports__, { 888 "__experimentalGetCoreBlocks": function() { return /* binding */ __experimentalGetCoreBlocks; }, 889 "__experimentalRegisterExperimentalCoreBlocks": function() { return /* binding */ __experimentalRegisterExperimentalCoreBlocks; }, 890 "registerCoreBlocks": function() { return /* binding */ registerCoreBlocks; } 891 }); 892 893 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/archives/index.js 894 var archives_namespaceObject = {}; 895 __webpack_require__.r(archives_namespaceObject); 896 __webpack_require__.d(archives_namespaceObject, { 897 "metadata": function() { return metadata; }, 898 "name": function() { return archives_name; }, 899 "settings": function() { return settings; } 900 }); 901 902 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/avatar/index.js 903 var avatar_namespaceObject = {}; 904 __webpack_require__.r(avatar_namespaceObject); 905 __webpack_require__.d(avatar_namespaceObject, { 906 "metadata": function() { return avatar_metadata; }, 907 "name": function() { return avatar_name; }, 908 "settings": function() { return avatar_settings; } 909 }); 910 911 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/audio/index.js 912 var build_module_audio_namespaceObject = {}; 913 __webpack_require__.r(build_module_audio_namespaceObject); 914 __webpack_require__.d(build_module_audio_namespaceObject, { 915 "metadata": function() { return audio_metadata; }, 916 "name": function() { return audio_name; }, 917 "settings": function() { return audio_settings; } 918 }); 919 920 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/button/index.js 921 var build_module_button_namespaceObject = {}; 922 __webpack_require__.r(build_module_button_namespaceObject); 923 __webpack_require__.d(build_module_button_namespaceObject, { 924 "metadata": function() { return button_metadata; }, 925 "name": function() { return button_name; }, 926 "settings": function() { return button_settings; } 927 }); 928 929 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/buttons/index.js 930 var build_module_buttons_namespaceObject = {}; 931 __webpack_require__.r(build_module_buttons_namespaceObject); 932 __webpack_require__.d(build_module_buttons_namespaceObject, { 933 "metadata": function() { return buttons_metadata; }, 934 "name": function() { return buttons_name; }, 935 "settings": function() { return buttons_settings; } 936 }); 937 938 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/calendar/index.js 939 var build_module_calendar_namespaceObject = {}; 940 __webpack_require__.r(build_module_calendar_namespaceObject); 941 __webpack_require__.d(build_module_calendar_namespaceObject, { 942 "metadata": function() { return calendar_metadata; }, 943 "name": function() { return calendar_name; }, 944 "settings": function() { return calendar_settings; } 945 }); 946 947 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/categories/index.js 948 var categories_namespaceObject = {}; 949 __webpack_require__.r(categories_namespaceObject); 950 __webpack_require__.d(categories_namespaceObject, { 951 "metadata": function() { return categories_metadata; }, 952 "name": function() { return categories_name; }, 953 "settings": function() { return categories_settings; } 954 }); 955 956 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/freeform/index.js 957 var freeform_namespaceObject = {}; 958 __webpack_require__.r(freeform_namespaceObject); 959 __webpack_require__.d(freeform_namespaceObject, { 960 "metadata": function() { return freeform_metadata; }, 961 "name": function() { return freeform_name; }, 962 "settings": function() { return freeform_settings; } 963 }); 964 965 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/code/index.js 966 var build_module_code_namespaceObject = {}; 967 __webpack_require__.r(build_module_code_namespaceObject); 968 __webpack_require__.d(build_module_code_namespaceObject, { 969 "metadata": function() { return code_metadata; }, 970 "name": function() { return code_name; }, 971 "settings": function() { return code_settings; } 972 }); 973 974 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/column/index.js 975 var build_module_column_namespaceObject = {}; 976 __webpack_require__.r(build_module_column_namespaceObject); 977 __webpack_require__.d(build_module_column_namespaceObject, { 978 "metadata": function() { return column_metadata; }, 979 "name": function() { return column_name; }, 980 "settings": function() { return column_settings; } 981 }); 982 983 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/columns/index.js 984 var build_module_columns_namespaceObject = {}; 985 __webpack_require__.r(build_module_columns_namespaceObject); 986 __webpack_require__.d(build_module_columns_namespaceObject, { 987 "metadata": function() { return columns_metadata; }, 988 "name": function() { return columns_name; }, 989 "settings": function() { return columns_settings; } 990 }); 991 992 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-author-name/index.js 993 var build_module_comment_author_name_namespaceObject = {}; 994 __webpack_require__.r(build_module_comment_author_name_namespaceObject); 995 __webpack_require__.d(build_module_comment_author_name_namespaceObject, { 996 "metadata": function() { return comment_author_name_metadata; }, 997 "name": function() { return comment_author_name_name; }, 998 "settings": function() { return comment_author_name_settings; } 999 }); 1000 1001 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-content/index.js 1002 var build_module_comment_content_namespaceObject = {}; 1003 __webpack_require__.r(build_module_comment_content_namespaceObject); 1004 __webpack_require__.d(build_module_comment_content_namespaceObject, { 1005 "metadata": function() { return comment_content_metadata; }, 1006 "name": function() { return comment_content_name; }, 1007 "settings": function() { return comment_content_settings; } 1008 }); 1009 1010 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-date/index.js 1011 var comment_date_namespaceObject = {}; 1012 __webpack_require__.r(comment_date_namespaceObject); 1013 __webpack_require__.d(comment_date_namespaceObject, { 1014 "metadata": function() { return comment_date_metadata; }, 1015 "name": function() { return comment_date_name; }, 1016 "settings": function() { return comment_date_settings; } 1017 }); 1018 1019 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/index.js 1020 var build_module_comment_edit_link_namespaceObject = {}; 1021 __webpack_require__.r(build_module_comment_edit_link_namespaceObject); 1022 __webpack_require__.d(build_module_comment_edit_link_namespaceObject, { 1023 "metadata": function() { return comment_edit_link_metadata; }, 1024 "name": function() { return comment_edit_link_name; }, 1025 "settings": function() { return comment_edit_link_settings; } 1026 }); 1027 1028 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/index.js 1029 var build_module_comment_reply_link_namespaceObject = {}; 1030 __webpack_require__.r(build_module_comment_reply_link_namespaceObject); 1031 __webpack_require__.d(build_module_comment_reply_link_namespaceObject, { 1032 "metadata": function() { return comment_reply_link_metadata; }, 1033 "name": function() { return comment_reply_link_name; }, 1034 "settings": function() { return comment_reply_link_settings; } 1035 }); 1036 1037 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comment-template/index.js 1038 var comment_template_namespaceObject = {}; 1039 __webpack_require__.r(comment_template_namespaceObject); 1040 __webpack_require__.d(comment_template_namespaceObject, { 1041 "metadata": function() { return comment_template_metadata; }, 1042 "name": function() { return comment_template_name; }, 1043 "settings": function() { return comment_template_settings; } 1044 }); 1045 1046 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/index.js 1047 var comments_pagination_previous_namespaceObject = {}; 1048 __webpack_require__.r(comments_pagination_previous_namespaceObject); 1049 __webpack_require__.d(comments_pagination_previous_namespaceObject, { 1050 "metadata": function() { return comments_pagination_previous_metadata; }, 1051 "name": function() { return comments_pagination_previous_name; }, 1052 "settings": function() { return comments_pagination_previous_settings; } 1053 }); 1054 1055 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/index.js 1056 var comments_query_loop_namespaceObject = {}; 1057 __webpack_require__.r(comments_query_loop_namespaceObject); 1058 __webpack_require__.d(comments_query_loop_namespaceObject, { 1059 "metadata": function() { return comments_query_loop_metadata; }, 1060 "name": function() { return comments_query_loop_name; }, 1061 "settings": function() { return comments_query_loop_settings; } 1062 }); 1063 1064 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination/index.js 1065 var comments_pagination_namespaceObject = {}; 1066 __webpack_require__.r(comments_pagination_namespaceObject); 1067 __webpack_require__.d(comments_pagination_namespaceObject, { 1068 "metadata": function() { return comments_pagination_metadata; }, 1069 "name": function() { return comments_pagination_name; }, 1070 "settings": function() { return comments_pagination_settings; } 1071 }); 1072 1073 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/index.js 1074 var comments_pagination_next_namespaceObject = {}; 1075 __webpack_require__.r(comments_pagination_next_namespaceObject); 1076 __webpack_require__.d(comments_pagination_next_namespaceObject, { 1077 "metadata": function() { return comments_pagination_next_metadata; }, 1078 "name": function() { return comments_pagination_next_name; }, 1079 "settings": function() { return comments_pagination_next_settings; } 1080 }); 1081 1082 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/index.js 1083 var comments_pagination_numbers_namespaceObject = {}; 1084 __webpack_require__.r(comments_pagination_numbers_namespaceObject); 1085 __webpack_require__.d(comments_pagination_numbers_namespaceObject, { 1086 "metadata": function() { return comments_pagination_numbers_metadata; }, 1087 "name": function() { return comments_pagination_numbers_name; }, 1088 "settings": function() { return comments_pagination_numbers_settings; } 1089 }); 1090 1091 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/comments-title/index.js 1092 var comments_title_namespaceObject = {}; 1093 __webpack_require__.r(comments_title_namespaceObject); 1094 __webpack_require__.d(comments_title_namespaceObject, { 1095 "metadata": function() { return comments_title_metadata; }, 1096 "name": function() { return comments_title_name; }, 1097 "settings": function() { return comments_title_settings; } 1098 }); 1099 1100 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/cover/index.js 1101 var build_module_cover_namespaceObject = {}; 1102 __webpack_require__.r(build_module_cover_namespaceObject); 1103 __webpack_require__.d(build_module_cover_namespaceObject, { 1104 "metadata": function() { return cover_metadata; }, 1105 "name": function() { return cover_name; }, 1106 "settings": function() { return cover_settings; } 1107 }); 1108 1109 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/embed/index.js 1110 var embed_namespaceObject = {}; 1111 __webpack_require__.r(embed_namespaceObject); 1112 __webpack_require__.d(embed_namespaceObject, { 1113 "metadata": function() { return embed_metadata; }, 1114 "name": function() { return embed_name; }, 1115 "settings": function() { return embed_settings; } 1116 }); 1117 1118 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/file/index.js 1119 var build_module_file_namespaceObject = {}; 1120 __webpack_require__.r(build_module_file_namespaceObject); 1121 __webpack_require__.d(build_module_file_namespaceObject, { 1122 "metadata": function() { return file_metadata; }, 1123 "name": function() { return file_name; }, 1124 "settings": function() { return file_settings; } 1125 }); 1126 1127 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/gallery/index.js 1128 var build_module_gallery_namespaceObject = {}; 1129 __webpack_require__.r(build_module_gallery_namespaceObject); 1130 __webpack_require__.d(build_module_gallery_namespaceObject, { 1131 "metadata": function() { return gallery_metadata; }, 1132 "name": function() { return gallery_name; }, 1133 "settings": function() { return gallery_settings; } 1134 }); 1135 1136 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/group/index.js 1137 var build_module_group_namespaceObject = {}; 1138 __webpack_require__.r(build_module_group_namespaceObject); 1139 __webpack_require__.d(build_module_group_namespaceObject, { 1140 "metadata": function() { return group_metadata; }, 1141 "name": function() { return group_name; }, 1142 "settings": function() { return group_settings; } 1143 }); 1144 1145 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/heading/index.js 1146 var build_module_heading_namespaceObject = {}; 1147 __webpack_require__.r(build_module_heading_namespaceObject); 1148 __webpack_require__.d(build_module_heading_namespaceObject, { 1149 "metadata": function() { return heading_metadata; }, 1150 "name": function() { return heading_name; }, 1151 "settings": function() { return heading_settings; } 1152 }); 1153 1154 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/home-link/index.js 1155 var home_link_namespaceObject = {}; 1156 __webpack_require__.r(home_link_namespaceObject); 1157 __webpack_require__.d(home_link_namespaceObject, { 1158 "metadata": function() { return home_link_metadata; }, 1159 "name": function() { return home_link_name; }, 1160 "settings": function() { return home_link_settings; } 1161 }); 1162 1163 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/html/index.js 1164 var build_module_html_namespaceObject = {}; 1165 __webpack_require__.r(build_module_html_namespaceObject); 1166 __webpack_require__.d(build_module_html_namespaceObject, { 1167 "metadata": function() { return html_metadata; }, 1168 "name": function() { return html_name; }, 1169 "settings": function() { return html_settings; } 1170 }); 1171 1172 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/image/index.js 1173 var build_module_image_namespaceObject = {}; 1174 __webpack_require__.r(build_module_image_namespaceObject); 1175 __webpack_require__.d(build_module_image_namespaceObject, { 1176 "metadata": function() { return image_metadata; }, 1177 "name": function() { return image_name; }, 1178 "settings": function() { return image_settings; } 1179 }); 1180 1181 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js 1182 var latest_comments_namespaceObject = {}; 1183 __webpack_require__.r(latest_comments_namespaceObject); 1184 __webpack_require__.d(latest_comments_namespaceObject, { 1185 "metadata": function() { return latest_comments_metadata; }, 1186 "name": function() { return latest_comments_name; }, 1187 "settings": function() { return latest_comments_settings; } 1188 }); 1189 1190 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js 1191 var latest_posts_namespaceObject = {}; 1192 __webpack_require__.r(latest_posts_namespaceObject); 1193 __webpack_require__.d(latest_posts_namespaceObject, { 1194 "metadata": function() { return latest_posts_metadata; }, 1195 "name": function() { return latest_posts_name; }, 1196 "settings": function() { return latest_posts_settings; } 1197 }); 1198 1199 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/list/index.js 1200 var build_module_list_namespaceObject = {}; 1201 __webpack_require__.r(build_module_list_namespaceObject); 1202 __webpack_require__.d(build_module_list_namespaceObject, { 1203 "metadata": function() { return list_metadata; }, 1204 "name": function() { return list_name; }, 1205 "settings": function() { return list_settings; } 1206 }); 1207 1208 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/loginout/index.js 1209 var loginout_namespaceObject = {}; 1210 __webpack_require__.r(loginout_namespaceObject); 1211 __webpack_require__.d(loginout_namespaceObject, { 1212 "metadata": function() { return loginout_metadata; }, 1213 "name": function() { return loginout_name; }, 1214 "settings": function() { return loginout_settings; } 1215 }); 1216 1217 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/media-text/index.js 1218 var media_text_namespaceObject = {}; 1219 __webpack_require__.r(media_text_namespaceObject); 1220 __webpack_require__.d(media_text_namespaceObject, { 1221 "metadata": function() { return media_text_metadata; }, 1222 "name": function() { return media_text_name; }, 1223 "settings": function() { return media_text_settings; } 1224 }); 1225 1226 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/missing/index.js 1227 var missing_namespaceObject = {}; 1228 __webpack_require__.r(missing_namespaceObject); 1229 __webpack_require__.d(missing_namespaceObject, { 1230 "metadata": function() { return missing_metadata; }, 1231 "name": function() { return missing_name; }, 1232 "settings": function() { return missing_settings; } 1233 }); 1234 1235 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/more/index.js 1236 var build_module_more_namespaceObject = {}; 1237 __webpack_require__.r(build_module_more_namespaceObject); 1238 __webpack_require__.d(build_module_more_namespaceObject, { 1239 "metadata": function() { return more_metadata; }, 1240 "name": function() { return more_name; }, 1241 "settings": function() { return more_settings; } 1242 }); 1243 1244 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation/index.js 1245 var build_module_navigation_namespaceObject = {}; 1246 __webpack_require__.r(build_module_navigation_namespaceObject); 1247 __webpack_require__.d(build_module_navigation_namespaceObject, { 1248 "metadata": function() { return navigation_metadata; }, 1249 "name": function() { return navigation_name; }, 1250 "settings": function() { return navigation_settings; } 1251 }); 1252 1253 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation-link/index.js 1254 var navigation_link_namespaceObject = {}; 1255 __webpack_require__.r(navigation_link_namespaceObject); 1256 __webpack_require__.d(navigation_link_namespaceObject, { 1257 "metadata": function() { return navigation_link_metadata; }, 1258 "name": function() { return navigation_link_name; }, 1259 "settings": function() { return navigation_link_settings; } 1260 }); 1261 1262 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/index.js 1263 var navigation_submenu_namespaceObject = {}; 1264 __webpack_require__.r(navigation_submenu_namespaceObject); 1265 __webpack_require__.d(navigation_submenu_namespaceObject, { 1266 "metadata": function() { return navigation_submenu_metadata; }, 1267 "name": function() { return navigation_submenu_name; }, 1268 "settings": function() { return navigation_submenu_settings; } 1269 }); 1270 1271 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/nextpage/index.js 1272 var nextpage_namespaceObject = {}; 1273 __webpack_require__.r(nextpage_namespaceObject); 1274 __webpack_require__.d(nextpage_namespaceObject, { 1275 "metadata": function() { return nextpage_metadata; }, 1276 "name": function() { return nextpage_name; }, 1277 "settings": function() { return nextpage_settings; } 1278 }); 1279 1280 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/pattern/index.js 1281 var pattern_namespaceObject = {}; 1282 __webpack_require__.r(pattern_namespaceObject); 1283 __webpack_require__.d(pattern_namespaceObject, { 1284 "metadata": function() { return pattern_metadata; }, 1285 "name": function() { return pattern_name; }, 1286 "settings": function() { return pattern_settings; } 1287 }); 1288 1289 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/page-list/index.js 1290 var page_list_namespaceObject = {}; 1291 __webpack_require__.r(page_list_namespaceObject); 1292 __webpack_require__.d(page_list_namespaceObject, { 1293 "metadata": function() { return page_list_metadata; }, 1294 "name": function() { return page_list_name; }, 1295 "settings": function() { return page_list_settings; } 1296 }); 1297 1298 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/paragraph/index.js 1299 var build_module_paragraph_namespaceObject = {}; 1300 __webpack_require__.r(build_module_paragraph_namespaceObject); 1301 __webpack_require__.d(build_module_paragraph_namespaceObject, { 1302 "metadata": function() { return paragraph_metadata; }, 1303 "name": function() { return paragraph_name; }, 1304 "settings": function() { return paragraph_settings; } 1305 }); 1306 1307 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-author/index.js 1308 var build_module_post_author_namespaceObject = {}; 1309 __webpack_require__.r(build_module_post_author_namespaceObject); 1310 __webpack_require__.d(build_module_post_author_namespaceObject, { 1311 "metadata": function() { return post_author_metadata; }, 1312 "name": function() { return post_author_name; }, 1313 "settings": function() { return post_author_settings; } 1314 }); 1315 1316 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-author-biography/index.js 1317 var post_author_biography_namespaceObject = {}; 1318 __webpack_require__.r(post_author_biography_namespaceObject); 1319 __webpack_require__.d(post_author_biography_namespaceObject, { 1320 "metadata": function() { return post_author_biography_metadata; }, 1321 "name": function() { return post_author_biography_name; }, 1322 "settings": function() { return post_author_biography_settings; } 1323 }); 1324 1325 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-comments/index.js 1326 var build_module_post_comments_namespaceObject = {}; 1327 __webpack_require__.r(build_module_post_comments_namespaceObject); 1328 __webpack_require__.d(build_module_post_comments_namespaceObject, { 1329 "metadata": function() { return post_comments_metadata; }, 1330 "name": function() { return post_comments_name; }, 1331 "settings": function() { return post_comments_settings; } 1332 }); 1333 1334 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-comments-form/index.js 1335 var build_module_post_comments_form_namespaceObject = {}; 1336 __webpack_require__.r(build_module_post_comments_form_namespaceObject); 1337 __webpack_require__.d(build_module_post_comments_form_namespaceObject, { 1338 "metadata": function() { return post_comments_form_metadata; }, 1339 "name": function() { return post_comments_form_name; }, 1340 "settings": function() { return post_comments_form_settings; } 1341 }); 1342 1343 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-content/index.js 1344 var build_module_post_content_namespaceObject = {}; 1345 __webpack_require__.r(build_module_post_content_namespaceObject); 1346 __webpack_require__.d(build_module_post_content_namespaceObject, { 1347 "metadata": function() { return post_content_metadata; }, 1348 "name": function() { return post_content_name; }, 1349 "settings": function() { return post_content_settings; } 1350 }); 1351 1352 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-date/index.js 1353 var build_module_post_date_namespaceObject = {}; 1354 __webpack_require__.r(build_module_post_date_namespaceObject); 1355 __webpack_require__.d(build_module_post_date_namespaceObject, { 1356 "metadata": function() { return post_date_metadata; }, 1357 "name": function() { return post_date_name; }, 1358 "settings": function() { return post_date_settings; } 1359 }); 1360 1361 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-excerpt/index.js 1362 var build_module_post_excerpt_namespaceObject = {}; 1363 __webpack_require__.r(build_module_post_excerpt_namespaceObject); 1364 __webpack_require__.d(build_module_post_excerpt_namespaceObject, { 1365 "metadata": function() { return post_excerpt_metadata; }, 1366 "name": function() { return post_excerpt_name; }, 1367 "settings": function() { return post_excerpt_settings; } 1368 }); 1369 1370 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-featured-image/index.js 1371 var build_module_post_featured_image_namespaceObject = {}; 1372 __webpack_require__.r(build_module_post_featured_image_namespaceObject); 1373 __webpack_require__.d(build_module_post_featured_image_namespaceObject, { 1374 "metadata": function() { return post_featured_image_metadata; }, 1375 "name": function() { return post_featured_image_name; }, 1376 "settings": function() { return post_featured_image_settings; } 1377 }); 1378 1379 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/index.js 1380 var post_navigation_link_namespaceObject = {}; 1381 __webpack_require__.r(post_navigation_link_namespaceObject); 1382 __webpack_require__.d(post_navigation_link_namespaceObject, { 1383 "metadata": function() { return post_navigation_link_metadata; }, 1384 "name": function() { return post_navigation_link_name; }, 1385 "settings": function() { return post_navigation_link_settings; } 1386 }); 1387 1388 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-template/index.js 1389 var post_template_namespaceObject = {}; 1390 __webpack_require__.r(post_template_namespaceObject); 1391 __webpack_require__.d(post_template_namespaceObject, { 1392 "metadata": function() { return post_template_metadata; }, 1393 "name": function() { return post_template_name; }, 1394 "settings": function() { return post_template_settings; } 1395 }); 1396 1397 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-terms/index.js 1398 var build_module_post_terms_namespaceObject = {}; 1399 __webpack_require__.r(build_module_post_terms_namespaceObject); 1400 __webpack_require__.d(build_module_post_terms_namespaceObject, { 1401 "metadata": function() { return post_terms_metadata; }, 1402 "name": function() { return post_terms_name; }, 1403 "settings": function() { return post_terms_settings; } 1404 }); 1405 1406 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/post-title/index.js 1407 var build_module_post_title_namespaceObject = {}; 1408 __webpack_require__.r(build_module_post_title_namespaceObject); 1409 __webpack_require__.d(build_module_post_title_namespaceObject, { 1410 "metadata": function() { return post_title_metadata; }, 1411 "name": function() { return post_title_name; }, 1412 "settings": function() { return post_title_settings; } 1413 }); 1414 1415 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/preformatted/index.js 1416 var build_module_preformatted_namespaceObject = {}; 1417 __webpack_require__.r(build_module_preformatted_namespaceObject); 1418 __webpack_require__.d(build_module_preformatted_namespaceObject, { 1419 "metadata": function() { return preformatted_metadata; }, 1420 "name": function() { return preformatted_name; }, 1421 "settings": function() { return preformatted_settings; } 1422 }); 1423 1424 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/pullquote/index.js 1425 var build_module_pullquote_namespaceObject = {}; 1426 __webpack_require__.r(build_module_pullquote_namespaceObject); 1427 __webpack_require__.d(build_module_pullquote_namespaceObject, { 1428 "metadata": function() { return pullquote_metadata; }, 1429 "name": function() { return pullquote_name; }, 1430 "settings": function() { return pullquote_settings; } 1431 }); 1432 1433 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query/index.js 1434 var query_namespaceObject = {}; 1435 __webpack_require__.r(query_namespaceObject); 1436 __webpack_require__.d(query_namespaceObject, { 1437 "metadata": function() { return query_metadata; }, 1438 "name": function() { return query_name; }, 1439 "settings": function() { return query_settings; } 1440 }); 1441 1442 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-no-results/index.js 1443 var query_no_results_namespaceObject = {}; 1444 __webpack_require__.r(query_no_results_namespaceObject); 1445 __webpack_require__.d(query_no_results_namespaceObject, { 1446 "metadata": function() { return query_no_results_metadata; }, 1447 "name": function() { return query_no_results_name; }, 1448 "settings": function() { return query_no_results_settings; } 1449 }); 1450 1451 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination/index.js 1452 var build_module_query_pagination_namespaceObject = {}; 1453 __webpack_require__.r(build_module_query_pagination_namespaceObject); 1454 __webpack_require__.d(build_module_query_pagination_namespaceObject, { 1455 "metadata": function() { return query_pagination_metadata; }, 1456 "name": function() { return query_pagination_name; }, 1457 "settings": function() { return query_pagination_settings; } 1458 }); 1459 1460 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/index.js 1461 var build_module_query_pagination_next_namespaceObject = {}; 1462 __webpack_require__.r(build_module_query_pagination_next_namespaceObject); 1463 __webpack_require__.d(build_module_query_pagination_next_namespaceObject, { 1464 "metadata": function() { return query_pagination_next_metadata; }, 1465 "name": function() { return query_pagination_next_name; }, 1466 "settings": function() { return query_pagination_next_settings; } 1467 }); 1468 1469 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/index.js 1470 var build_module_query_pagination_numbers_namespaceObject = {}; 1471 __webpack_require__.r(build_module_query_pagination_numbers_namespaceObject); 1472 __webpack_require__.d(build_module_query_pagination_numbers_namespaceObject, { 1473 "metadata": function() { return query_pagination_numbers_metadata; }, 1474 "name": function() { return query_pagination_numbers_name; }, 1475 "settings": function() { return query_pagination_numbers_settings; } 1476 }); 1477 1478 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/index.js 1479 var build_module_query_pagination_previous_namespaceObject = {}; 1480 __webpack_require__.r(build_module_query_pagination_previous_namespaceObject); 1481 __webpack_require__.d(build_module_query_pagination_previous_namespaceObject, { 1482 "metadata": function() { return query_pagination_previous_metadata; }, 1483 "name": function() { return query_pagination_previous_name; }, 1484 "settings": function() { return query_pagination_previous_settings; } 1485 }); 1486 1487 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/query-title/index.js 1488 var build_module_query_title_namespaceObject = {}; 1489 __webpack_require__.r(build_module_query_title_namespaceObject); 1490 __webpack_require__.d(build_module_query_title_namespaceObject, { 1491 "metadata": function() { return query_title_metadata; }, 1492 "name": function() { return query_title_name; }, 1493 "settings": function() { return query_title_settings; } 1494 }); 1495 1496 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/quote/index.js 1497 var build_module_quote_namespaceObject = {}; 1498 __webpack_require__.r(build_module_quote_namespaceObject); 1499 __webpack_require__.d(build_module_quote_namespaceObject, { 1500 "metadata": function() { return quote_metadata; }, 1501 "name": function() { return quote_name; }, 1502 "settings": function() { return quote_settings; }, 1503 "settingsV1": function() { return quote_settingsV1; } 1504 }); 1505 1506 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/block/index.js 1507 var block_namespaceObject = {}; 1508 __webpack_require__.r(block_namespaceObject); 1509 __webpack_require__.d(block_namespaceObject, { 1510 "metadata": function() { return block_metadata; }, 1511 "name": function() { return block_name; }, 1512 "settings": function() { return block_settings; } 1513 }); 1514 1515 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/read-more/index.js 1516 var read_more_namespaceObject = {}; 1517 __webpack_require__.r(read_more_namespaceObject); 1518 __webpack_require__.d(read_more_namespaceObject, { 1519 "metadata": function() { return read_more_metadata; }, 1520 "name": function() { return read_more_name; }, 1521 "settings": function() { return read_more_settings; } 1522 }); 1523 1524 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/rss/index.js 1525 var build_module_rss_namespaceObject = {}; 1526 __webpack_require__.r(build_module_rss_namespaceObject); 1527 __webpack_require__.d(build_module_rss_namespaceObject, { 1528 "metadata": function() { return rss_metadata; }, 1529 "name": function() { return rss_name; }, 1530 "settings": function() { return rss_settings; } 1531 }); 1532 1533 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/search/index.js 1534 var build_module_search_namespaceObject = {}; 1535 __webpack_require__.r(build_module_search_namespaceObject); 1536 __webpack_require__.d(build_module_search_namespaceObject, { 1537 "metadata": function() { return search_metadata; }, 1538 "name": function() { return search_name; }, 1539 "settings": function() { return search_settings; } 1540 }); 1541 1542 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/separator/index.js 1543 var build_module_separator_namespaceObject = {}; 1544 __webpack_require__.r(build_module_separator_namespaceObject); 1545 __webpack_require__.d(build_module_separator_namespaceObject, { 1546 "metadata": function() { return separator_metadata; }, 1547 "name": function() { return separator_name; }, 1548 "settings": function() { return separator_settings; } 1549 }); 1550 1551 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/shortcode/index.js 1552 var build_module_shortcode_namespaceObject = {}; 1553 __webpack_require__.r(build_module_shortcode_namespaceObject); 1554 __webpack_require__.d(build_module_shortcode_namespaceObject, { 1555 "metadata": function() { return shortcode_metadata; }, 1556 "name": function() { return shortcode_name; }, 1557 "settings": function() { return shortcode_settings; } 1558 }); 1559 1560 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-logo/index.js 1561 var build_module_site_logo_namespaceObject = {}; 1562 __webpack_require__.r(build_module_site_logo_namespaceObject); 1563 __webpack_require__.d(build_module_site_logo_namespaceObject, { 1564 "metadata": function() { return site_logo_metadata; }, 1565 "name": function() { return site_logo_name; }, 1566 "settings": function() { return site_logo_settings; } 1567 }); 1568 1569 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-tagline/index.js 1570 var site_tagline_namespaceObject = {}; 1571 __webpack_require__.r(site_tagline_namespaceObject); 1572 __webpack_require__.d(site_tagline_namespaceObject, { 1573 "metadata": function() { return site_tagline_metadata; }, 1574 "name": function() { return site_tagline_name; }, 1575 "settings": function() { return site_tagline_settings; } 1576 }); 1577 1578 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-title/index.js 1579 var site_title_namespaceObject = {}; 1580 __webpack_require__.r(site_title_namespaceObject); 1581 __webpack_require__.d(site_title_namespaceObject, { 1582 "metadata": function() { return site_title_metadata; }, 1583 "name": function() { return site_title_name; }, 1584 "settings": function() { return site_title_settings; } 1585 }); 1586 1587 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-link/index.js 1588 var social_link_namespaceObject = {}; 1589 __webpack_require__.r(social_link_namespaceObject); 1590 __webpack_require__.d(social_link_namespaceObject, { 1591 "metadata": function() { return social_link_metadata; }, 1592 "name": function() { return social_link_name; }, 1593 "settings": function() { return social_link_settings; } 1594 }); 1595 1596 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-links/index.js 1597 var social_links_namespaceObject = {}; 1598 __webpack_require__.r(social_links_namespaceObject); 1599 __webpack_require__.d(social_links_namespaceObject, { 1600 "metadata": function() { return social_links_metadata; }, 1601 "name": function() { return social_links_name; }, 1602 "settings": function() { return social_links_settings; } 1603 }); 1604 1605 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/spacer/index.js 1606 var spacer_namespaceObject = {}; 1607 __webpack_require__.r(spacer_namespaceObject); 1608 __webpack_require__.d(spacer_namespaceObject, { 1609 "metadata": function() { return spacer_metadata; }, 1610 "name": function() { return spacer_name; }, 1611 "settings": function() { return spacer_settings; } 1612 }); 1613 1614 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/table/index.js 1615 var build_module_table_namespaceObject = {}; 1616 __webpack_require__.r(build_module_table_namespaceObject); 1617 __webpack_require__.d(build_module_table_namespaceObject, { 1618 "metadata": function() { return table_metadata; }, 1619 "name": function() { return table_name; }, 1620 "settings": function() { return table_settings; } 1621 }); 1622 1623 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js 1624 var tag_cloud_namespaceObject = {}; 1625 __webpack_require__.r(tag_cloud_namespaceObject); 1626 __webpack_require__.d(tag_cloud_namespaceObject, { 1627 "metadata": function() { return tag_cloud_metadata; }, 1628 "name": function() { return tag_cloud_name; }, 1629 "settings": function() { return tag_cloud_settings; } 1630 }); 1631 1632 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/template-part/index.js 1633 var template_part_namespaceObject = {}; 1634 __webpack_require__.r(template_part_namespaceObject); 1635 __webpack_require__.d(template_part_namespaceObject, { 1636 "metadata": function() { return template_part_metadata; }, 1637 "name": function() { return template_part_name; }, 1638 "settings": function() { return template_part_settings; } 1639 }); 1640 1641 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/term-description/index.js 1642 var build_module_term_description_namespaceObject = {}; 1643 __webpack_require__.r(build_module_term_description_namespaceObject); 1644 __webpack_require__.d(build_module_term_description_namespaceObject, { 1645 "metadata": function() { return term_description_metadata; }, 1646 "name": function() { return term_description_name; }, 1647 "settings": function() { return term_description_settings; } 1648 }); 1649 1650 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/text-columns/index.js 1651 var text_columns_namespaceObject = {}; 1652 __webpack_require__.r(text_columns_namespaceObject); 1653 __webpack_require__.d(text_columns_namespaceObject, { 1654 "metadata": function() { return text_columns_metadata; }, 1655 "name": function() { return text_columns_name; }, 1656 "settings": function() { return text_columns_settings; } 1657 }); 1658 1659 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/verse/index.js 1660 var build_module_verse_namespaceObject = {}; 1661 __webpack_require__.r(build_module_verse_namespaceObject); 1662 __webpack_require__.d(build_module_verse_namespaceObject, { 1663 "metadata": function() { return verse_metadata; }, 1664 "name": function() { return verse_name; }, 1665 "settings": function() { return verse_settings; } 1666 }); 1667 1668 // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/video/index.js 1669 var build_module_video_namespaceObject = {}; 1670 __webpack_require__.r(build_module_video_namespaceObject); 1671 __webpack_require__.d(build_module_video_namespaceObject, { 1672 "metadata": function() { return video_metadata; }, 1673 "name": function() { return video_name; }, 1674 "settings": function() { return video_settings; } 1675 }); 1676 1677 ;// CONCATENATED MODULE: external ["wp","blocks"] 1678 var external_wp_blocks_namespaceObject = window["wp"]["blocks"]; 1679 ;// CONCATENATED MODULE: external ["wp","element"] 1680 var external_wp_element_namespaceObject = window["wp"]["element"]; 1681 ;// CONCATENATED MODULE: external ["wp","primitives"] 1682 var external_wp_primitives_namespaceObject = window["wp"]["primitives"]; 1683 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/archive.js 1684 1685 1686 /** 1687 * WordPress dependencies 1688 */ 1689 1690 const archive = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 1691 viewBox: "0 0 24 24", 1692 xmlns: "http://www.w3.org/2000/svg" 1693 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 1694 d: "M19 6.2h-5.9l-.6-1.1c-.3-.7-1-1.1-1.8-1.1H5c-1.1 0-2 .9-2 2v11.8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8.2c0-1.1-.9-2-2-2zm.5 11.6c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h5.8c.2 0 .4.1.4.3l1 2H19c.3 0 .5.2.5.5v9.5zM8 12.8h8v-1.5H8v1.5zm0 3h8v-1.5H8v1.5z" 1695 })); 1696 /* harmony default export */ var library_archive = (archive); 1697 1698 ;// CONCATENATED MODULE: external ["wp","components"] 1699 var external_wp_components_namespaceObject = window["wp"]["components"]; 1700 ;// CONCATENATED MODULE: external ["wp","i18n"] 1701 var external_wp_i18n_namespaceObject = window["wp"]["i18n"]; 1702 ;// CONCATENATED MODULE: external ["wp","blockEditor"] 1703 var external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"]; 1704 ;// CONCATENATED MODULE: external ["wp","serverSideRender"] 1705 var external_wp_serverSideRender_namespaceObject = window["wp"]["serverSideRender"]; 1706 var external_wp_serverSideRender_default = /*#__PURE__*/__webpack_require__.n(external_wp_serverSideRender_namespaceObject); 1707 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/archives/edit.js 1708 1709 1710 /** 1711 * WordPress dependencies 1712 */ 1713 1714 1715 1716 1717 function ArchivesEdit(_ref) { 1718 let { 1719 attributes, 1720 setAttributes 1721 } = _ref; 1722 const { 1723 showPostCounts, 1724 displayAsDropdown, 1725 type 1726 } = attributes; 1727 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 1728 title: (0,external_wp_i18n_namespaceObject.__)('Archives settings') 1729 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 1730 label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'), 1731 checked: displayAsDropdown, 1732 onChange: () => setAttributes({ 1733 displayAsDropdown: !displayAsDropdown 1734 }) 1735 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 1736 label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'), 1737 checked: showPostCounts, 1738 onChange: () => setAttributes({ 1739 showPostCounts: !showPostCounts 1740 }) 1741 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 1742 label: (0,external_wp_i18n_namespaceObject.__)('Group by:'), 1743 options: [{ 1744 label: (0,external_wp_i18n_namespaceObject.__)('Year'), 1745 value: 'yearly' 1746 }, { 1747 label: (0,external_wp_i18n_namespaceObject.__)('Month'), 1748 value: 'monthly' 1749 }, { 1750 label: (0,external_wp_i18n_namespaceObject.__)('Week'), 1751 value: 'weekly' 1752 }, { 1753 label: (0,external_wp_i18n_namespaceObject.__)('Day'), 1754 value: 'daily' 1755 }], 1756 value: type, 1757 onChange: value => setAttributes({ 1758 type: value 1759 }) 1760 }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, null, (0,external_wp_element_namespaceObject.createElement)((external_wp_serverSideRender_default()), { 1761 block: "core/archives", 1762 attributes: attributes 1763 })))); 1764 } 1765 1766 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/archives/index.js 1767 /** 1768 * WordPress dependencies 1769 */ 1770 1771 /** 1772 * Internal dependencies 1773 */ 1774 1775 const metadata = { 1776 $schema: "https://schemas.wp.org/trunk/block.json", 1777 apiVersion: 2, 1778 name: "core/archives", 1779 title: "Archives", 1780 category: "widgets", 1781 description: "Display a date archive of your posts.", 1782 textdomain: "default", 1783 attributes: { 1784 displayAsDropdown: { 1785 type: "boolean", 1786 "default": false 1787 }, 1788 showPostCounts: { 1789 type: "boolean", 1790 "default": false 1791 }, 1792 type: { 1793 type: "string", 1794 "default": "monthly" 1795 } 1796 }, 1797 supports: { 1798 align: true, 1799 html: false 1800 }, 1801 editorStyle: "wp-block-archives-editor" 1802 }; 1803 1804 const { 1805 name: archives_name 1806 } = metadata; 1807 1808 const settings = { 1809 icon: library_archive, 1810 example: {}, 1811 edit: ArchivesEdit 1812 }; 1813 1814 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js 1815 1816 1817 /** 1818 * WordPress dependencies 1819 */ 1820 1821 const commentAuthorAvatar = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 1822 xmlns: "http://www.w3.org/2000/svg", 1823 viewBox: "0 0 24 24" 1824 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 1825 fillRule: "evenodd", 1826 d: "M7.25 16.437a6.5 6.5 0 1 1 9.5 0V16A2.75 2.75 0 0 0 14 13.25h-4A2.75 2.75 0 0 0 7.25 16v.437Zm1.5 1.193a6.47 6.47 0 0 0 3.25.87 6.47 6.47 0 0 0 3.25-.87V16c0-.69-.56-1.25-1.25-1.25h-4c-.69 0-1.25.56-1.25 1.25v1.63ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm10-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z", 1827 clipRule: "evenodd" 1828 })); 1829 /* harmony default export */ var comment_author_avatar = (commentAuthorAvatar); 1830 1831 ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js 1832 function _extends() { 1833 _extends = Object.assign || function (target) { 1834 for (var i = 1; i < arguments.length; i++) { 1835 var source = arguments[i]; 1836 1837 for (var key in source) { 1838 if (Object.prototype.hasOwnProperty.call(source, key)) { 1839 target[key] = source[key]; 1840 } 1841 } 1842 } 1843 1844 return target; 1845 }; 1846 1847 return _extends.apply(this, arguments); 1848 } 1849 // EXTERNAL MODULE: ./node_modules/classnames/index.js 1850 var classnames = __webpack_require__(4403); 1851 var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); 1852 ;// CONCATENATED MODULE: external ["wp","url"] 1853 var external_wp_url_namespaceObject = window["wp"]["url"]; 1854 ;// CONCATENATED MODULE: external ["wp","coreData"] 1855 var external_wp_coreData_namespaceObject = window["wp"]["coreData"]; 1856 ;// CONCATENATED MODULE: external ["wp","data"] 1857 var external_wp_data_namespaceObject = window["wp"]["data"]; 1858 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/hooks.js 1859 /** 1860 * WordPress dependencies 1861 */ 1862 1863 1864 1865 1866 1867 function getAvatarSizes(sizes) { 1868 const minSize = sizes ? sizes[0] : 24; 1869 const maxSize = sizes ? sizes[sizes.length - 1] : 96; 1870 const maxSizeBuffer = Math.floor(maxSize * 2.5); 1871 return { 1872 minSize, 1873 maxSize: maxSizeBuffer 1874 }; 1875 } 1876 1877 function useDefaultAvatar() { 1878 const { 1879 avatarURL: defaultAvatarUrl 1880 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 1881 const { 1882 getSettings 1883 } = select(external_wp_blockEditor_namespaceObject.store); 1884 const { 1885 __experimentalDiscussionSettings 1886 } = getSettings(); 1887 return __experimentalDiscussionSettings; 1888 }); 1889 return defaultAvatarUrl; 1890 } 1891 1892 function useCommentAvatar(_ref) { 1893 let { 1894 commentId 1895 } = _ref; 1896 const [avatars] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_avatar_urls', commentId); 1897 const [authorName] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_name', commentId); 1898 const avatarUrls = avatars ? Object.values(avatars) : null; 1899 const sizes = avatars ? Object.keys(avatars) : null; 1900 const { 1901 minSize, 1902 maxSize 1903 } = getAvatarSizes(sizes); 1904 const defaultAvatar = useDefaultAvatar(); 1905 return { 1906 src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : defaultAvatar, 1907 minSize, 1908 maxSize, 1909 // translators: %s is the Author name. 1910 alt: authorName ? // translators: %s is the Author name. 1911 (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s Avatar'), authorName) : (0,external_wp_i18n_namespaceObject.__)('Default Avatar') 1912 }; 1913 } 1914 function useUserAvatar(_ref2) { 1915 let { 1916 userId, 1917 postId, 1918 postType 1919 } = _ref2; 1920 const { 1921 authorDetails 1922 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 1923 var _getEditedEntityRecor; 1924 1925 const { 1926 getEditedEntityRecord, 1927 getUser 1928 } = select(external_wp_coreData_namespaceObject.store); 1929 1930 if (userId) { 1931 return { 1932 authorDetails: getUser(userId) 1933 }; 1934 } 1935 1936 const _authorId = (_getEditedEntityRecor = getEditedEntityRecord('postType', postType, postId)) === null || _getEditedEntityRecor === void 0 ? void 0 : _getEditedEntityRecor.author; 1937 1938 return { 1939 authorDetails: _authorId ? getUser(_authorId) : null 1940 }; 1941 }, [postType, postId, userId]); 1942 const avatarUrls = authorDetails ? Object.values(authorDetails.avatar_urls) : null; 1943 const sizes = authorDetails ? Object.keys(authorDetails.avatar_urls) : null; 1944 const { 1945 minSize, 1946 maxSize 1947 } = getAvatarSizes(sizes); 1948 const defaultAvatar = useDefaultAvatar(); 1949 return { 1950 src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : defaultAvatar, 1951 minSize, 1952 maxSize, 1953 alt: authorDetails ? // translators: %s is the Author name. 1954 (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s Avatar'), authorDetails === null || authorDetails === void 0 ? void 0 : authorDetails.name) : (0,external_wp_i18n_namespaceObject.__)('Default Avatar') 1955 }; 1956 } 1957 1958 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/user-control.js 1959 1960 1961 /** 1962 * WordPress dependencies 1963 */ 1964 1965 1966 1967 1968 1969 const AUTHORS_QUERY = { 1970 who: 'authors', 1971 per_page: -1, 1972 _fields: 'id,name', 1973 context: 'view' 1974 }; 1975 1976 function UserControl(_ref) { 1977 let { 1978 value, 1979 onChange 1980 } = _ref; 1981 const [filteredAuthorsList, setFilteredAuthorsList] = (0,external_wp_element_namespaceObject.useState)(); 1982 const authorsList = (0,external_wp_data_namespaceObject.useSelect)(select => { 1983 const { 1984 getUsers 1985 } = select(external_wp_coreData_namespaceObject.store); 1986 return getUsers(AUTHORS_QUERY); 1987 }, []); 1988 1989 if (!authorsList) { 1990 return null; 1991 } 1992 1993 const options = authorsList.map(author => { 1994 return { 1995 label: author.name, 1996 value: author.id 1997 }; 1998 }); 1999 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ComboboxControl, { 2000 label: (0,external_wp_i18n_namespaceObject.__)('User'), 2001 help: (0,external_wp_i18n_namespaceObject.__)('Select the avatar user to display, if it is blank it will use the post/page author.'), 2002 value: value, 2003 onChange: onChange, 2004 options: filteredAuthorsList || options, 2005 onFilterValueChange: inputValue => setFilteredAuthorsList(options.filter(option => option.label.toLowerCase().startsWith(inputValue.toLowerCase()))) 2006 }); 2007 } 2008 2009 /* harmony default export */ var user_control = (UserControl); 2010 2011 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/edit.js 2012 2013 2014 2015 /** 2016 * External dependencies 2017 */ 2018 2019 /** 2020 * WordPress dependencies 2021 */ 2022 2023 2024 2025 2026 2027 /** 2028 * Internal dependencies 2029 */ 2030 2031 2032 2033 2034 const AvatarInspectorControls = _ref => { 2035 let { 2036 setAttributes, 2037 avatar, 2038 attributes, 2039 selectUser 2040 } = _ref; 2041 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 2042 title: (0,external_wp_i18n_namespaceObject.__)('Settings') 2043 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 2044 label: (0,external_wp_i18n_namespaceObject.__)('Image size'), 2045 onChange: newSize => setAttributes({ 2046 size: newSize 2047 }), 2048 min: avatar.minSize, 2049 max: avatar.maxSize, 2050 initialPosition: attributes === null || attributes === void 0 ? void 0 : attributes.size, 2051 value: attributes === null || attributes === void 0 ? void 0 : attributes.size 2052 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 2053 label: (0,external_wp_i18n_namespaceObject.__)('Link to user profile'), 2054 onChange: () => setAttributes({ 2055 isLink: !attributes.isLink 2056 }), 2057 checked: attributes.isLink 2058 }), attributes.isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 2059 label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'), 2060 onChange: value => setAttributes({ 2061 linkTarget: value ? '_blank' : '_self' 2062 }), 2063 checked: attributes.linkTarget === '_blank' 2064 }), selectUser && (0,external_wp_element_namespaceObject.createElement)(user_control, { 2065 value: attributes === null || attributes === void 0 ? void 0 : attributes.userId, 2066 onChange: value => { 2067 setAttributes({ 2068 userId: value 2069 }); 2070 } 2071 }))); 2072 }; 2073 2074 const ResizableAvatar = _ref2 => { 2075 let { 2076 setAttributes, 2077 attributes, 2078 avatar, 2079 blockProps, 2080 isSelected 2081 } = _ref2; 2082 const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes); 2083 const doubledSizedSrc = (0,external_wp_url_namespaceObject.addQueryArgs)((0,external_wp_url_namespaceObject.removeQueryArgs)(avatar === null || avatar === void 0 ? void 0 : avatar.src, ['s']), { 2084 s: (attributes === null || attributes === void 0 ? void 0 : attributes.size) * 2 2085 }); 2086 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, { 2087 size: { 2088 width: attributes.size, 2089 height: attributes.size 2090 }, 2091 showHandle: isSelected, 2092 onResizeStop: (event, direction, elt, delta) => { 2093 setAttributes({ 2094 size: parseInt(attributes.size + (delta.height || delta.width), 10) 2095 }); 2096 }, 2097 lockAspectRatio: true, 2098 enable: { 2099 top: false, 2100 right: !(0,external_wp_i18n_namespaceObject.isRTL)(), 2101 bottom: true, 2102 left: (0,external_wp_i18n_namespaceObject.isRTL)() 2103 }, 2104 minWidth: avatar.minSize, 2105 maxWidth: avatar.maxSize 2106 }, (0,external_wp_element_namespaceObject.createElement)("img", _extends({ 2107 src: doubledSizedSrc, 2108 alt: avatar.alt 2109 }, borderProps, { 2110 className: classnames_default()('avatar', 'avatar-' + attributes.size, 'photo', 'wp-block-avatar__image', borderProps.className), 2111 style: { ...borderProps.style // Border radius, width and style. 2112 2113 } 2114 })))); 2115 }; 2116 2117 const CommentEdit = _ref3 => { 2118 let { 2119 attributes, 2120 context, 2121 setAttributes, 2122 isSelected 2123 } = _ref3; 2124 const { 2125 commentId 2126 } = context; 2127 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 2128 const avatar = useCommentAvatar({ 2129 commentId 2130 }); 2131 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(AvatarInspectorControls, { 2132 avatar: avatar, 2133 setAttributes: setAttributes, 2134 attributes: attributes, 2135 selectUser: false 2136 }), attributes.isLink ? (0,external_wp_element_namespaceObject.createElement)("a", { 2137 href: "#avatar-pseudo-link", 2138 className: "wp-block-avatar__link", 2139 onClick: event => event.preventDefault() 2140 }, (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, { 2141 attributes: attributes, 2142 avatar: avatar, 2143 blockProps: blockProps, 2144 isSelected: isSelected, 2145 setAttributes: setAttributes 2146 })) : (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, { 2147 attributes: attributes, 2148 avatar: avatar, 2149 blockProps: blockProps, 2150 isSelected: isSelected, 2151 setAttributes: setAttributes 2152 })); 2153 }; 2154 2155 const UserEdit = _ref4 => { 2156 let { 2157 attributes, 2158 context, 2159 setAttributes, 2160 isSelected 2161 } = _ref4; 2162 const { 2163 postId, 2164 postType 2165 } = context; 2166 const avatar = useUserAvatar({ 2167 userId: attributes === null || attributes === void 0 ? void 0 : attributes.userId, 2168 postId, 2169 postType 2170 }); 2171 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 2172 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(AvatarInspectorControls, { 2173 selectUser: true, 2174 attributes: attributes, 2175 avatar: avatar, 2176 setAttributes: setAttributes 2177 }), (0,external_wp_element_namespaceObject.createElement)("div", null, attributes.isLink ? (0,external_wp_element_namespaceObject.createElement)("a", { 2178 href: "#avatar-pseudo-link", 2179 className: "wp-block-avatar__link", 2180 onClick: event => event.preventDefault() 2181 }, (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, { 2182 attributes: attributes, 2183 avatar: avatar, 2184 blockProps: blockProps, 2185 isSelected: isSelected, 2186 setAttributes: setAttributes 2187 })) : (0,external_wp_element_namespaceObject.createElement)(ResizableAvatar, { 2188 attributes: attributes, 2189 avatar: avatar, 2190 blockProps: blockProps, 2191 isSelected: isSelected, 2192 setAttributes: setAttributes 2193 }))); 2194 }; 2195 2196 function Edit(props) { 2197 var _props$context, _props$context2; 2198 2199 // Don't show the Comment Edit controls if we have a comment ID set, or if we're in the Site Editor (where it is `null`). 2200 if (props !== null && props !== void 0 && (_props$context = props.context) !== null && _props$context !== void 0 && _props$context.commentId || (props === null || props === void 0 ? void 0 : (_props$context2 = props.context) === null || _props$context2 === void 0 ? void 0 : _props$context2.commentId) === null) { 2201 return (0,external_wp_element_namespaceObject.createElement)(CommentEdit, props); 2202 } 2203 2204 return (0,external_wp_element_namespaceObject.createElement)(UserEdit, props); 2205 } 2206 2207 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/avatar/index.js 2208 /** 2209 * WordPress dependencies 2210 */ 2211 2212 /** 2213 * Internal dependencies 2214 */ 2215 2216 const avatar_metadata = { 2217 $schema: "https://schemas.wp.org/trunk/block.json", 2218 apiVersion: 2, 2219 name: "core/avatar", 2220 title: "Avatar", 2221 category: "theme", 2222 description: "Add a user's avatar.", 2223 textdomain: "default", 2224 attributes: { 2225 userId: { 2226 type: "number" 2227 }, 2228 size: { 2229 type: "number", 2230 "default": 96 2231 }, 2232 isLink: { 2233 type: "boolean", 2234 "default": false 2235 }, 2236 linkTarget: { 2237 type: "string", 2238 "default": "_self" 2239 } 2240 }, 2241 usesContext: ["postType", "postId", "commentId"], 2242 supports: { 2243 html: false, 2244 align: true, 2245 alignWide: false, 2246 spacing: { 2247 margin: true 2248 }, 2249 __experimentalBorder: { 2250 __experimentalSkipSerialization: true, 2251 radius: true, 2252 width: true, 2253 color: true, 2254 style: true, 2255 __experimentalDefaultControls: { 2256 radius: true 2257 } 2258 }, 2259 color: { 2260 text: false, 2261 background: false, 2262 __experimentalDuotone: "img" 2263 } 2264 }, 2265 editorStyle: "wp-block-avatar", 2266 style: "wp-block-avatar" 2267 }; 2268 2269 const { 2270 name: avatar_name 2271 } = avatar_metadata; 2272 2273 const avatar_settings = { 2274 icon: comment_author_avatar, 2275 edit: Edit 2276 }; 2277 2278 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/audio.js 2279 2280 2281 /** 2282 * WordPress dependencies 2283 */ 2284 2285 const audio = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 2286 viewBox: "0 0 24 24", 2287 xmlns: "http://www.w3.org/2000/svg" 2288 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 2289 d: "M17.7 4.3c-1.2 0-2.8 0-3.8 1-.6.6-.9 1.5-.9 2.6V14c-.6-.6-1.5-1-2.5-1C8.6 13 7 14.6 7 16.5S8.6 20 10.5 20c1.5 0 2.8-1 3.3-2.3.5-.8.7-1.8.7-2.5V7.9c0-.7.2-1.2.5-1.6.6-.6 1.8-.6 2.8-.6h.3V4.3h-.4z" 2290 })); 2291 /* harmony default export */ var library_audio = (audio); 2292 2293 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/deprecated.js 2294 2295 2296 /** 2297 * WordPress dependencies 2298 */ 2299 2300 /* harmony default export */ var deprecated = ([{ 2301 attributes: { 2302 src: { 2303 type: 'string', 2304 source: 'attribute', 2305 selector: 'audio', 2306 attribute: 'src' 2307 }, 2308 caption: { 2309 type: 'string', 2310 source: 'html', 2311 selector: 'figcaption' 2312 }, 2313 id: { 2314 type: 'number' 2315 }, 2316 autoplay: { 2317 type: 'boolean', 2318 source: 'attribute', 2319 selector: 'audio', 2320 attribute: 'autoplay' 2321 }, 2322 loop: { 2323 type: 'boolean', 2324 source: 'attribute', 2325 selector: 'audio', 2326 attribute: 'loop' 2327 }, 2328 preload: { 2329 type: 'string', 2330 source: 'attribute', 2331 selector: 'audio', 2332 attribute: 'preload' 2333 } 2334 }, 2335 supports: { 2336 align: true 2337 }, 2338 2339 save(_ref) { 2340 let { 2341 attributes 2342 } = _ref; 2343 const { 2344 autoplay, 2345 caption, 2346 loop, 2347 preload, 2348 src 2349 } = attributes; 2350 return (0,external_wp_element_namespaceObject.createElement)("figure", null, (0,external_wp_element_namespaceObject.createElement)("audio", { 2351 controls: "controls", 2352 src: src, 2353 autoPlay: autoplay, 2354 loop: loop, 2355 preload: preload 2356 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 2357 tagName: "figcaption", 2358 value: caption 2359 })); 2360 } 2361 2362 }]); 2363 2364 ;// CONCATENATED MODULE: external ["wp","blob"] 2365 var external_wp_blob_namespaceObject = window["wp"]["blob"]; 2366 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/constants.js 2367 const ASPECT_RATIOS = [// Common video resolutions. 2368 { 2369 ratio: '2.33', 2370 className: 'wp-embed-aspect-21-9' 2371 }, { 2372 ratio: '2.00', 2373 className: 'wp-embed-aspect-18-9' 2374 }, { 2375 ratio: '1.78', 2376 className: 'wp-embed-aspect-16-9' 2377 }, { 2378 ratio: '1.33', 2379 className: 'wp-embed-aspect-4-3' 2380 }, // Vertical video and instagram square video support. 2381 { 2382 ratio: '1.00', 2383 className: 'wp-embed-aspect-1-1' 2384 }, { 2385 ratio: '0.56', 2386 className: 'wp-embed-aspect-9-16' 2387 }, { 2388 ratio: '0.50', 2389 className: 'wp-embed-aspect-1-2' 2390 }]; 2391 const WP_EMBED_TYPE = 'wp-embed'; 2392 2393 ;// CONCATENATED MODULE: external "lodash" 2394 var external_lodash_namespaceObject = window["lodash"]; 2395 // EXTERNAL MODULE: ./node_modules/classnames/dedupe.js 2396 var dedupe = __webpack_require__(3827); 2397 var dedupe_default = /*#__PURE__*/__webpack_require__.n(dedupe); 2398 // EXTERNAL MODULE: ./node_modules/memize/index.js 2399 var memize = __webpack_require__(9756); 2400 var memize_default = /*#__PURE__*/__webpack_require__.n(memize); 2401 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/util.js 2402 2403 2404 /** 2405 * Internal dependencies 2406 */ 2407 2408 /** 2409 * External dependencies 2410 */ 2411 2412 2413 2414 2415 /** 2416 * WordPress dependencies 2417 */ 2418 2419 2420 2421 /** 2422 * Internal dependencies 2423 */ 2424 2425 const util_metadata = { 2426 $schema: "https://schemas.wp.org/trunk/block.json", 2427 apiVersion: 2, 2428 name: "core/embed", 2429 title: "Embed", 2430 category: "embed", 2431 description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.", 2432 textdomain: "default", 2433 attributes: { 2434 url: { 2435 type: "string" 2436 }, 2437 caption: { 2438 type: "string", 2439 source: "html", 2440 selector: "figcaption" 2441 }, 2442 type: { 2443 type: "string" 2444 }, 2445 providerNameSlug: { 2446 type: "string" 2447 }, 2448 allowResponsive: { 2449 type: "boolean", 2450 "default": true 2451 }, 2452 responsive: { 2453 type: "boolean", 2454 "default": false 2455 }, 2456 previewable: { 2457 type: "boolean", 2458 "default": true 2459 } 2460 }, 2461 supports: { 2462 align: true 2463 }, 2464 editorStyle: "wp-block-embed-editor", 2465 style: "wp-block-embed" 2466 }; 2467 const { 2468 name: DEFAULT_EMBED_BLOCK 2469 } = util_metadata; 2470 /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */ 2471 2472 /** 2473 * Returns the embed block's information by matching the provided service provider 2474 * 2475 * @param {string} provider The embed block's provider 2476 * @return {WPBlockVariation} The embed block's information 2477 */ 2478 2479 const getEmbedInfoByProvider = provider => { 2480 var _getBlockVariations; 2481 2482 return (_getBlockVariations = (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)) === null || _getBlockVariations === void 0 ? void 0 : _getBlockVariations.find(_ref => { 2483 let { 2484 name 2485 } = _ref; 2486 return name === provider; 2487 }); 2488 }; 2489 /** 2490 * Returns true if any of the regular expressions match the URL. 2491 * 2492 * @param {string} url The URL to test. 2493 * @param {Array} patterns The list of regular expressions to test agains. 2494 * @return {boolean} True if any of the regular expressions match the URL. 2495 */ 2496 2497 const matchesPatterns = function (url) { 2498 let patterns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; 2499 return patterns.some(pattern => url.match(pattern)); 2500 }; 2501 /** 2502 * Finds the block variation that should be used for the URL, 2503 * based on the provided URL and the variation's patterns. 2504 * 2505 * @param {string} url The URL to test. 2506 * @return {WPBlockVariation} The block variation that should be used for this URL 2507 */ 2508 2509 const findMoreSuitableBlock = url => { 2510 var _getBlockVariations2; 2511 2512 return (_getBlockVariations2 = (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)) === null || _getBlockVariations2 === void 0 ? void 0 : _getBlockVariations2.find(_ref2 => { 2513 let { 2514 patterns 2515 } = _ref2; 2516 return matchesPatterns(url, patterns); 2517 }); 2518 }; 2519 const isFromWordPress = html => html && html.includes('class="wp-embedded-content"'); 2520 const getPhotoHtml = photo => { 2521 // 100% width for the preview so it fits nicely into the document, some "thumbnails" are 2522 // actually the full size photo. If thumbnails not found, use full image. 2523 const imageUrl = photo.thumbnail_url || photo.url; 2524 const photoPreview = (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_element_namespaceObject.createElement)("img", { 2525 src: imageUrl, 2526 alt: photo.title, 2527 width: "100%" 2528 })); 2529 return (0,external_wp_element_namespaceObject.renderToString)(photoPreview); 2530 }; 2531 /** 2532 * Creates a more suitable embed block based on the passed in props 2533 * and attributes generated from an embed block's preview. 2534 * 2535 * We require `attributesFromPreview` to be generated from the latest attributes 2536 * and preview, and because of the way the react lifecycle operates, we can't 2537 * guarantee that the attributes contained in the block's props are the latest 2538 * versions, so we require that these are generated separately. 2539 * See `getAttributesFromPreview` in the generated embed edit component. 2540 * 2541 * @param {Object} props The block's props. 2542 * @param {Object} [attributesFromPreview] Attributes generated from the block's most up to date preview. 2543 * @return {Object|undefined} A more suitable embed block if one exists. 2544 */ 2545 2546 const createUpgradedEmbedBlock = function (props) { 2547 var _getBlockVariations3; 2548 2549 let attributesFromPreview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 2550 const { 2551 preview, 2552 attributes = {} 2553 } = props; 2554 const { 2555 url, 2556 providerNameSlug, 2557 type, 2558 ...restAttributes 2559 } = attributes; 2560 if (!url || !(0,external_wp_blocks_namespaceObject.getBlockType)(DEFAULT_EMBED_BLOCK)) return; 2561 const matchedBlock = findMoreSuitableBlock(url); // WordPress blocks can work on multiple sites, and so don't have patterns, 2562 // so if we're in a WordPress block, assume the user has chosen it for a WordPress URL. 2563 2564 const isCurrentBlockWP = providerNameSlug === 'wordpress' || type === WP_EMBED_TYPE; // If current block is not WordPress and a more suitable block found 2565 // that is different from the current one, create the new matched block. 2566 2567 const shouldCreateNewBlock = !isCurrentBlockWP && matchedBlock && (matchedBlock.attributes.providerNameSlug !== providerNameSlug || !providerNameSlug); 2568 2569 if (shouldCreateNewBlock) { 2570 return (0,external_wp_blocks_namespaceObject.createBlock)(DEFAULT_EMBED_BLOCK, { 2571 url, 2572 ...restAttributes, 2573 ...matchedBlock.attributes 2574 }); 2575 } 2576 2577 const wpVariation = (_getBlockVariations3 = (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)) === null || _getBlockVariations3 === void 0 ? void 0 : _getBlockVariations3.find(_ref3 => { 2578 let { 2579 name 2580 } = _ref3; 2581 return name === 'wordpress'; 2582 }); // We can't match the URL for WordPress embeds, we have to check the HTML instead. 2583 2584 if (!wpVariation || !preview || !isFromWordPress(preview.html) || isCurrentBlockWP) { 2585 return; 2586 } // This is not the WordPress embed block so transform it into one. 2587 2588 2589 return (0,external_wp_blocks_namespaceObject.createBlock)(DEFAULT_EMBED_BLOCK, { 2590 url, 2591 ...wpVariation.attributes, 2592 // By now we have the preview, but when the new block first renders, it 2593 // won't have had all the attributes set, and so won't get the correct 2594 // type and it won't render correctly. So, we pass through the current attributes 2595 // here so that the initial render works when we switch to the WordPress 2596 // block. This only affects the WordPress block because it can't be 2597 // rendered in the usual Sandbox (it has a sandbox of its own) and it 2598 // relies on the preview to set the correct render type. 2599 ...attributesFromPreview 2600 }); 2601 }; 2602 /** 2603 * Removes all previously set aspect ratio related classes and return the rest 2604 * existing class names. 2605 * 2606 * @param {string} existingClassNames Any existing class names. 2607 * @return {string} The class names without any aspect ratio related class. 2608 */ 2609 2610 const removeAspectRatioClasses = existingClassNames => { 2611 if (!existingClassNames) { 2612 // Avoids extraneous work and also, by returning the same value as 2613 // received, ensures the post is not dirtied by a change of the block 2614 // attribute from `undefined` to an emtpy string. 2615 return existingClassNames; 2616 } 2617 2618 const aspectRatioClassNames = ASPECT_RATIOS.reduce((accumulator, _ref4) => { 2619 let { 2620 className 2621 } = _ref4; 2622 accumulator[className] = false; 2623 return accumulator; 2624 }, { 2625 'wp-has-aspect-ratio': false 2626 }); 2627 return dedupe_default()(existingClassNames, aspectRatioClassNames); 2628 }; 2629 /** 2630 * Returns class names with any relevant responsive aspect ratio names. 2631 * 2632 * @param {string} html The preview HTML that possibly contains an iframe with width and height set. 2633 * @param {string} existingClassNames Any existing class names. 2634 * @param {boolean} allowResponsive If the responsive class names should be added, or removed. 2635 * @return {string} Deduped class names. 2636 */ 2637 2638 function getClassNames(html, existingClassNames) { 2639 let allowResponsive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; 2640 2641 if (!allowResponsive) { 2642 return removeAspectRatioClasses(existingClassNames); 2643 } 2644 2645 const previewDocument = document.implementation.createHTMLDocument(''); 2646 previewDocument.body.innerHTML = html; 2647 const iframe = previewDocument.body.querySelector('iframe'); // If we have a fixed aspect iframe, and it's a responsive embed block. 2648 2649 if (iframe && iframe.height && iframe.width) { 2650 const aspectRatio = (iframe.width / iframe.height).toFixed(2); // Given the actual aspect ratio, find the widest ratio to support it. 2651 2652 for (let ratioIndex = 0; ratioIndex < ASPECT_RATIOS.length; ratioIndex++) { 2653 const potentialRatio = ASPECT_RATIOS[ratioIndex]; 2654 2655 if (aspectRatio >= potentialRatio.ratio) { 2656 // Evaluate the difference between actual aspect ratio and closest match. 2657 // If the difference is too big, do not scale the embed according to aspect ratio. 2658 const ratioDiff = aspectRatio - potentialRatio.ratio; 2659 2660 if (ratioDiff > 0.1) { 2661 // No close aspect ratio match found. 2662 return removeAspectRatioClasses(existingClassNames); 2663 } // Close aspect ratio match found. 2664 2665 2666 return dedupe_default()(removeAspectRatioClasses(existingClassNames), potentialRatio.className, 'wp-has-aspect-ratio'); 2667 } 2668 } 2669 } 2670 2671 return existingClassNames; 2672 } 2673 /** 2674 * Fallback behaviour for unembeddable URLs. 2675 * Creates a paragraph block containing a link to the URL, and calls `onReplace`. 2676 * 2677 * @param {string} url The URL that could not be embedded. 2678 * @param {Function} onReplace Function to call with the created fallback block. 2679 */ 2680 2681 function fallback(url, onReplace) { 2682 const link = (0,external_wp_element_namespaceObject.createElement)("a", { 2683 href: url 2684 }, url); 2685 onReplace((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 2686 content: (0,external_wp_element_namespaceObject.renderToString)(link) 2687 })); 2688 } 2689 /*** 2690 * Gets block attributes based on the preview and responsive state. 2691 * 2692 * @param {Object} preview The preview data. 2693 * @param {string} title The block's title, e.g. Twitter. 2694 * @param {Object} currentClassNames The block's current class names. 2695 * @param {boolean} isResponsive Boolean indicating if the block supports responsive content. 2696 * @param {boolean} allowResponsive Apply responsive classes to fixed size content. 2697 * @return {Object} Attributes and values. 2698 */ 2699 2700 const getAttributesFromPreview = memize_default()(function (preview, title, currentClassNames, isResponsive) { 2701 let allowResponsive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; 2702 2703 if (!preview) { 2704 return {}; 2705 } 2706 2707 const attributes = {}; // Some plugins only return HTML with no type info, so default this to 'rich'. 2708 2709 let { 2710 type = 'rich' 2711 } = preview; // If we got a provider name from the API, use it for the slug, otherwise we use the title, 2712 // because not all embed code gives us a provider name. 2713 2714 const { 2715 html, 2716 provider_name: providerName 2717 } = preview; 2718 const providerNameSlug = (0,external_lodash_namespaceObject.kebabCase)((providerName || title).toLowerCase()); 2719 2720 if (isFromWordPress(html)) { 2721 type = WP_EMBED_TYPE; 2722 } 2723 2724 if (html || 'photo' === type) { 2725 attributes.type = type; 2726 attributes.providerNameSlug = providerNameSlug; 2727 } 2728 2729 attributes.className = getClassNames(html, currentClassNames, isResponsive && allowResponsive); 2730 return attributes; 2731 }); 2732 2733 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/edit.js 2734 2735 2736 /** 2737 * External dependencies 2738 */ 2739 2740 /** 2741 * WordPress dependencies 2742 */ 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 /** 2753 * Internal dependencies 2754 */ 2755 2756 2757 const ALLOWED_MEDIA_TYPES = ['audio']; 2758 2759 function AudioEdit(_ref) { 2760 let { 2761 attributes, 2762 className, 2763 noticeOperations, 2764 setAttributes, 2765 onReplace, 2766 isSelected, 2767 noticeUI, 2768 insertBlocksAfter 2769 } = _ref; 2770 const { 2771 id, 2772 autoplay, 2773 caption, 2774 loop, 2775 preload, 2776 src 2777 } = attributes; 2778 const isTemporaryAudio = !id && (0,external_wp_blob_namespaceObject.isBlobURL)(src); 2779 const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => { 2780 const { 2781 getSettings 2782 } = select(external_wp_blockEditor_namespaceObject.store); 2783 return getSettings().mediaUpload; 2784 }, []); 2785 (0,external_wp_element_namespaceObject.useEffect)(() => { 2786 if (!id && (0,external_wp_blob_namespaceObject.isBlobURL)(src)) { 2787 const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(src); 2788 2789 if (file) { 2790 mediaUpload({ 2791 filesList: [file], 2792 onFileChange: _ref2 => { 2793 let [{ 2794 id: mediaId, 2795 url 2796 }] = _ref2; 2797 setAttributes({ 2798 id: mediaId, 2799 src: url 2800 }); 2801 }, 2802 onError: e => { 2803 setAttributes({ 2804 src: undefined, 2805 id: undefined 2806 }); 2807 noticeOperations.createErrorNotice(e); 2808 }, 2809 allowedTypes: ALLOWED_MEDIA_TYPES 2810 }); 2811 } 2812 } 2813 }, []); 2814 2815 function toggleAttribute(attribute) { 2816 return newValue => { 2817 setAttributes({ 2818 [attribute]: newValue 2819 }); 2820 }; 2821 } 2822 2823 function onSelectURL(newSrc) { 2824 // Set the block's src from the edit component's state, and switch off 2825 // the editing UI. 2826 if (newSrc !== src) { 2827 // Check if there's an embed block that handles this URL. 2828 const embedBlock = createUpgradedEmbedBlock({ 2829 attributes: { 2830 url: newSrc 2831 } 2832 }); 2833 2834 if (undefined !== embedBlock && onReplace) { 2835 onReplace(embedBlock); 2836 return; 2837 } 2838 2839 setAttributes({ 2840 src: newSrc, 2841 id: undefined 2842 }); 2843 } 2844 } 2845 2846 function onUploadError(message) { 2847 noticeOperations.removeAllNotices(); 2848 noticeOperations.createErrorNotice(message); 2849 } 2850 2851 function getAutoplayHelp(checked) { 2852 return checked ? (0,external_wp_i18n_namespaceObject.__)('Autoplay may cause usability issues for some users.') : null; 2853 } 2854 2855 function onSelectAudio(media) { 2856 if (!media || !media.url) { 2857 // In this case there was an error and we should continue in the editing state 2858 // previous attributes should be removed because they may be temporary blob urls. 2859 setAttributes({ 2860 src: undefined, 2861 id: undefined 2862 }); 2863 return; 2864 } // Sets the block's attribute and updates the edit component from the 2865 // selected media, then switches off the editing UI. 2866 2867 2868 setAttributes({ 2869 src: media.url, 2870 id: media.id 2871 }); 2872 } 2873 2874 const classes = classnames_default()(className, { 2875 'is-transient': isTemporaryAudio 2876 }); 2877 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 2878 className: classes 2879 }); 2880 2881 if (!src) { 2882 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, { 2883 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { 2884 icon: library_audio 2885 }), 2886 onSelect: onSelectAudio, 2887 onSelectURL: onSelectURL, 2888 accept: "audio/*", 2889 allowedTypes: ALLOWED_MEDIA_TYPES, 2890 value: attributes, 2891 notices: noticeUI, 2892 onError: onUploadError 2893 })); 2894 } 2895 2896 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 2897 group: "other" 2898 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, { 2899 mediaId: id, 2900 mediaURL: src, 2901 allowedTypes: ALLOWED_MEDIA_TYPES, 2902 accept: "audio/*", 2903 onSelect: onSelectAudio, 2904 onSelectURL: onSelectURL, 2905 onError: onUploadError 2906 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 2907 title: (0,external_wp_i18n_namespaceObject.__)('Audio settings') 2908 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 2909 label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'), 2910 onChange: toggleAttribute('autoplay'), 2911 checked: autoplay, 2912 help: getAutoplayHelp 2913 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 2914 label: (0,external_wp_i18n_namespaceObject.__)('Loop'), 2915 onChange: toggleAttribute('loop'), 2916 checked: loop 2917 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 2918 label: (0,external_wp_i18n_namespaceObject._x)('Preload', 'noun; Audio block parameter'), 2919 value: preload || '' // `undefined` is required for the preload attribute to be unset. 2920 , 2921 onChange: value => setAttributes({ 2922 preload: value || undefined 2923 }), 2924 options: [{ 2925 value: '', 2926 label: (0,external_wp_i18n_namespaceObject.__)('Browser default') 2927 }, { 2928 value: 'auto', 2929 label: (0,external_wp_i18n_namespaceObject.__)('Auto') 2930 }, { 2931 value: 'metadata', 2932 label: (0,external_wp_i18n_namespaceObject.__)('Metadata') 2933 }, { 2934 value: 'none', 2935 label: (0,external_wp_i18n_namespaceObject._x)('None', 'Preload value') 2936 }] 2937 }))), (0,external_wp_element_namespaceObject.createElement)("figure", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, { 2938 isDisabled: !isSelected 2939 }, (0,external_wp_element_namespaceObject.createElement)("audio", { 2940 controls: "controls", 2941 src: src 2942 })), isTemporaryAudio && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 2943 tagName: "figcaption", 2944 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Audio caption text'), 2945 placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'), 2946 value: caption, 2947 onChange: value => setAttributes({ 2948 caption: value 2949 }), 2950 inlineToolbar: true, 2951 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')) 2952 }))); 2953 } 2954 2955 /* harmony default export */ var edit = ((0,external_wp_components_namespaceObject.withNotices)(AudioEdit)); 2956 2957 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/save.js 2958 2959 2960 /** 2961 * WordPress dependencies 2962 */ 2963 2964 function save(_ref) { 2965 let { 2966 attributes 2967 } = _ref; 2968 const { 2969 autoplay, 2970 caption, 2971 loop, 2972 preload, 2973 src 2974 } = attributes; 2975 return src && (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("audio", { 2976 controls: "controls", 2977 src: src, 2978 autoPlay: autoplay, 2979 loop: loop, 2980 preload: preload 2981 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 2982 tagName: "figcaption", 2983 value: caption 2984 })); 2985 } 2986 2987 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/transforms.js 2988 /** 2989 * WordPress dependencies 2990 */ 2991 2992 2993 const transforms = { 2994 from: [{ 2995 type: 'files', 2996 2997 isMatch(files) { 2998 return files.length === 1 && files[0].type.indexOf('audio/') === 0; 2999 }, 3000 3001 transform(files) { 3002 const file = files[0]; // We don't need to upload the media directly here 3003 // It's already done as part of the `componentDidMount` 3004 // in the audio block. 3005 3006 const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/audio', { 3007 src: (0,external_wp_blob_namespaceObject.createBlobURL)(file) 3008 }); 3009 return block; 3010 } 3011 3012 }, { 3013 type: 'shortcode', 3014 tag: 'audio', 3015 attributes: { 3016 src: { 3017 type: 'string', 3018 shortcode: _ref => { 3019 let { 3020 named: { 3021 src, 3022 mp3, 3023 m4a, 3024 ogg, 3025 wav, 3026 wma 3027 } 3028 } = _ref; 3029 return src || mp3 || m4a || ogg || wav || wma; 3030 } 3031 }, 3032 loop: { 3033 type: 'string', 3034 shortcode: _ref2 => { 3035 let { 3036 named: { 3037 loop 3038 } 3039 } = _ref2; 3040 return loop; 3041 } 3042 }, 3043 autoplay: { 3044 type: 'string', 3045 shortcode: _ref3 => { 3046 let { 3047 named: { 3048 autoplay 3049 } 3050 } = _ref3; 3051 return autoplay; 3052 } 3053 }, 3054 preload: { 3055 type: 'string', 3056 shortcode: _ref4 => { 3057 let { 3058 named: { 3059 preload 3060 } 3061 } = _ref4; 3062 return preload; 3063 } 3064 } 3065 } 3066 }] 3067 }; 3068 /* harmony default export */ var audio_transforms = (transforms); 3069 3070 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/index.js 3071 /** 3072 * WordPress dependencies 3073 */ 3074 3075 /** 3076 * Internal dependencies 3077 */ 3078 3079 3080 3081 const audio_metadata = { 3082 $schema: "https://schemas.wp.org/trunk/block.json", 3083 apiVersion: 2, 3084 name: "core/audio", 3085 title: "Audio", 3086 category: "media", 3087 description: "Embed a simple audio player.", 3088 keywords: ["music", "sound", "podcast", "recording"], 3089 textdomain: "default", 3090 attributes: { 3091 src: { 3092 type: "string", 3093 source: "attribute", 3094 selector: "audio", 3095 attribute: "src" 3096 }, 3097 caption: { 3098 type: "string", 3099 source: "html", 3100 selector: "figcaption" 3101 }, 3102 id: { 3103 type: "number" 3104 }, 3105 autoplay: { 3106 type: "boolean", 3107 source: "attribute", 3108 selector: "audio", 3109 attribute: "autoplay" 3110 }, 3111 loop: { 3112 type: "boolean", 3113 source: "attribute", 3114 selector: "audio", 3115 attribute: "loop" 3116 }, 3117 preload: { 3118 type: "string", 3119 source: "attribute", 3120 selector: "audio", 3121 attribute: "preload" 3122 } 3123 }, 3124 supports: { 3125 anchor: true, 3126 align: true 3127 }, 3128 editorStyle: "wp-block-audio-editor", 3129 style: "wp-block-audio" 3130 }; 3131 3132 3133 const { 3134 name: audio_name 3135 } = audio_metadata; 3136 3137 const audio_settings = { 3138 icon: library_audio, 3139 example: { 3140 attributes: { 3141 src: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg' 3142 } 3143 }, 3144 transforms: audio_transforms, 3145 deprecated: deprecated, 3146 edit: edit, 3147 save: save 3148 }; 3149 3150 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/button.js 3151 3152 3153 /** 3154 * WordPress dependencies 3155 */ 3156 3157 const button_button = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 3158 viewBox: "0 0 24 24", 3159 xmlns: "http://www.w3.org/2000/svg" 3160 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 3161 d: "M19 6.5H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v7zM8 12.8h8v-1.5H8v1.5z" 3162 })); 3163 /* harmony default export */ var library_button = (button_button); 3164 3165 ;// CONCATENATED MODULE: external ["wp","compose"] 3166 var external_wp_compose_namespaceObject = window["wp"]["compose"]; 3167 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/clean-empty-object.js 3168 /** 3169 * External dependencies 3170 */ 3171 3172 /** 3173 * Removed empty nodes from nested objects. 3174 * 3175 * @param {Object} object 3176 * @return {Object} Object cleaned from empty nodes. 3177 */ 3178 3179 const cleanEmptyObject = object => { 3180 if (!(0,external_lodash_namespaceObject.isObject)(object) || Array.isArray(object)) { 3181 return object; 3182 } 3183 3184 const cleanedNestedObjects = (0,external_lodash_namespaceObject.pickBy)((0,external_lodash_namespaceObject.mapValues)(object, cleanEmptyObject), external_lodash_namespaceObject.identity); 3185 return (0,external_lodash_namespaceObject.isEmpty)(cleanedNestedObjects) ? undefined : cleanedNestedObjects; 3186 }; 3187 3188 /* harmony default export */ var clean_empty_object = (cleanEmptyObject); 3189 3190 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/migrate-font-family.js 3191 /** 3192 * External dependencies 3193 */ 3194 3195 /** 3196 * Internal dependencies 3197 */ 3198 3199 3200 /** 3201 * Migrates the current style.typography.fontFamily attribute, 3202 * whose value was "var:preset|font-family|helvetica-arial", 3203 * to the style.fontFamily attribute, whose value will be "helvetica-arial". 3204 * 3205 * @param {Object} attributes The current attributes 3206 * @return {Object} The updated attributes. 3207 */ 3208 3209 /* harmony default export */ function migrate_font_family(attributes) { 3210 var _attributes$style, _attributes$style$typ; 3211 3212 if (!(attributes !== null && attributes !== void 0 && (_attributes$style = attributes.style) !== null && _attributes$style !== void 0 && (_attributes$style$typ = _attributes$style.typography) !== null && _attributes$style$typ !== void 0 && _attributes$style$typ.fontFamily)) { 3213 return attributes; 3214 } // Clone first so when we delete the fontFamily 3215 // below we're not modifying the original 3216 // attributes. Because the deprecation may be discarded 3217 // we don't want to alter the original attributes. 3218 3219 3220 const atts = (0,external_lodash_namespaceObject.cloneDeep)(attributes); 3221 const fontFamily = atts.style.typography.fontFamily.split('|').pop(); 3222 delete atts.style.typography.fontFamily; 3223 atts.style = clean_empty_object(atts.style); 3224 return { ...atts, 3225 fontFamily 3226 }; 3227 } 3228 3229 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/deprecated.js 3230 3231 3232 /** 3233 * External dependencies 3234 */ 3235 3236 3237 /** 3238 * WordPress dependencies 3239 */ 3240 3241 3242 3243 /** 3244 * Internal dependencies 3245 */ 3246 3247 3248 3249 const migrateBorderRadius = attributes => { 3250 var _newAttributes$style, _newAttributes$style$, _newAttributes$style2; 3251 3252 const { 3253 borderRadius, 3254 ...newAttributes 3255 } = attributes; // We have to check old property `borderRadius` and if 3256 // `styles.border.radius` is a `number` 3257 3258 const oldBorderRadius = [borderRadius, (_newAttributes$style = newAttributes.style) === null || _newAttributes$style === void 0 ? void 0 : (_newAttributes$style$ = _newAttributes$style.border) === null || _newAttributes$style$ === void 0 ? void 0 : _newAttributes$style$.radius].find(possibleBorderRadius => { 3259 return typeof possibleBorderRadius === 'number' && possibleBorderRadius !== 0; 3260 }); 3261 3262 if (!oldBorderRadius) { 3263 return newAttributes; 3264 } 3265 3266 return { ...newAttributes, 3267 style: { ...newAttributes.style, 3268 border: { ...((_newAttributes$style2 = newAttributes.style) === null || _newAttributes$style2 === void 0 ? void 0 : _newAttributes$style2.border), 3269 radius: `$oldBorderRadius}px` 3270 } 3271 } 3272 }; 3273 }; 3274 3275 const migrateCustomColorsAndGradients = attributes => { 3276 if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customGradient) { 3277 return attributes; 3278 } 3279 3280 const style = { 3281 color: {} 3282 }; 3283 3284 if (attributes.customTextColor) { 3285 style.color.text = attributes.customTextColor; 3286 } 3287 3288 if (attributes.customBackgroundColor) { 3289 style.color.background = attributes.customBackgroundColor; 3290 } 3291 3292 if (attributes.customGradient) { 3293 style.color.gradient = attributes.customGradient; 3294 } 3295 3296 return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor', 'customGradient']), 3297 style 3298 }; 3299 }; 3300 3301 const oldColorsMigration = attributes => { 3302 return migrateCustomColorsAndGradients((0,external_lodash_namespaceObject.omit)({ ...attributes, 3303 customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined, 3304 customBackgroundColor: attributes.color && '#' === attributes.color[0] ? attributes.color : undefined 3305 }, ['color', 'textColor'])); 3306 }; 3307 3308 const blockAttributes = { 3309 url: { 3310 type: 'string', 3311 source: 'attribute', 3312 selector: 'a', 3313 attribute: 'href' 3314 }, 3315 title: { 3316 type: 'string', 3317 source: 'attribute', 3318 selector: 'a', 3319 attribute: 'title' 3320 }, 3321 text: { 3322 type: 'string', 3323 source: 'html', 3324 selector: 'a' 3325 } 3326 }; 3327 const v10 = { 3328 attributes: { 3329 url: { 3330 type: 'string', 3331 source: 'attribute', 3332 selector: 'a', 3333 attribute: 'href' 3334 }, 3335 title: { 3336 type: 'string', 3337 source: 'attribute', 3338 selector: 'a', 3339 attribute: 'title' 3340 }, 3341 text: { 3342 type: 'string', 3343 source: 'html', 3344 selector: 'a' 3345 }, 3346 linkTarget: { 3347 type: 'string', 3348 source: 'attribute', 3349 selector: 'a', 3350 attribute: 'target' 3351 }, 3352 rel: { 3353 type: 'string', 3354 source: 'attribute', 3355 selector: 'a', 3356 attribute: 'rel' 3357 }, 3358 placeholder: { 3359 type: 'string' 3360 }, 3361 backgroundColor: { 3362 type: 'string' 3363 }, 3364 textColor: { 3365 type: 'string' 3366 }, 3367 gradient: { 3368 type: 'string' 3369 }, 3370 width: { 3371 type: 'number' 3372 } 3373 }, 3374 supports: { 3375 anchor: true, 3376 align: true, 3377 alignWide: false, 3378 color: { 3379 __experimentalSkipSerialization: true, 3380 gradients: true 3381 }, 3382 typography: { 3383 fontSize: true, 3384 __experimentalFontFamily: true 3385 }, 3386 reusable: false, 3387 spacing: { 3388 __experimentalSkipSerialization: true, 3389 padding: ['horizontal', 'vertical'], 3390 __experimentalDefaultControls: { 3391 padding: true 3392 } 3393 }, 3394 __experimentalBorder: { 3395 radius: true, 3396 __experimentalSkipSerialization: true 3397 }, 3398 __experimentalSelector: '.wp-block-button__link' 3399 }, 3400 3401 save(_ref) { 3402 var _style$border, _style$typography; 3403 3404 let { 3405 attributes, 3406 className 3407 } = _ref; 3408 const { 3409 fontSize, 3410 linkTarget, 3411 rel, 3412 style, 3413 text, 3414 title, 3415 url, 3416 width 3417 } = attributes; 3418 3419 if (!text) { 3420 return null; 3421 } 3422 3423 const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes); 3424 const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes); 3425 const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes); 3426 const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, borderProps.className, { 3427 // For backwards compatibility add style that isn't provided via 3428 // block support. 3429 'no-border-radius': (style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border.radius) === 0 3430 }); 3431 const buttonStyle = { ...borderProps.style, 3432 ...colorProps.style, 3433 ...spacingProps.style 3434 }; // The use of a `title` attribute here is soft-deprecated, but still applied 3435 // if it had already been assigned, for the sake of backward-compatibility. 3436 // A title will no longer be assigned for new or updated button block links. 3437 3438 const wrapperClasses = classnames_default()(className, { 3439 [`has-custom-width wp-block-button__width-$width}`]: width, 3440 [`has-custom-font-size`]: fontSize || (style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontSize) 3441 }); 3442 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 3443 className: wrapperClasses 3444 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 3445 tagName: "a", 3446 className: buttonClasses, 3447 href: url, 3448 title: title, 3449 style: buttonStyle, 3450 value: text, 3451 target: linkTarget, 3452 rel: rel 3453 })); 3454 }, 3455 3456 migrate: migrate_font_family, 3457 3458 isEligible(_ref2) { 3459 var _style$typography2; 3460 3461 let { 3462 style 3463 } = _ref2; 3464 return style === null || style === void 0 ? void 0 : (_style$typography2 = style.typography) === null || _style$typography2 === void 0 ? void 0 : _style$typography2.fontFamily; 3465 } 3466 3467 }; 3468 const deprecated_deprecated = [v10, { 3469 supports: { 3470 anchor: true, 3471 align: true, 3472 alignWide: false, 3473 color: { 3474 __experimentalSkipSerialization: true, 3475 gradients: true 3476 }, 3477 typography: { 3478 fontSize: true, 3479 __experimentalFontFamily: true 3480 }, 3481 reusable: false, 3482 __experimentalSelector: '.wp-block-button__link' 3483 }, 3484 attributes: { ...blockAttributes, 3485 linkTarget: { 3486 type: 'string', 3487 source: 'attribute', 3488 selector: 'a', 3489 attribute: 'target' 3490 }, 3491 rel: { 3492 type: 'string', 3493 source: 'attribute', 3494 selector: 'a', 3495 attribute: 'rel' 3496 }, 3497 placeholder: { 3498 type: 'string' 3499 }, 3500 backgroundColor: { 3501 type: 'string' 3502 }, 3503 textColor: { 3504 type: 'string' 3505 }, 3506 gradient: { 3507 type: 'string' 3508 }, 3509 width: { 3510 type: 'number' 3511 } 3512 }, 3513 3514 isEligible(_ref3) { 3515 var _style$border2; 3516 3517 let { 3518 style 3519 } = _ref3; 3520 return typeof (style === null || style === void 0 ? void 0 : (_style$border2 = style.border) === null || _style$border2 === void 0 ? void 0 : _style$border2.radius) === 'number'; 3521 }, 3522 3523 save(_ref4) { 3524 var _style$border3, _style$border4, _style$typography3; 3525 3526 let { 3527 attributes, 3528 className 3529 } = _ref4; 3530 const { 3531 fontSize, 3532 linkTarget, 3533 rel, 3534 style, 3535 text, 3536 title, 3537 url, 3538 width 3539 } = attributes; 3540 3541 if (!text) { 3542 return null; 3543 } 3544 3545 const borderRadius = style === null || style === void 0 ? void 0 : (_style$border3 = style.border) === null || _style$border3 === void 0 ? void 0 : _style$border3.radius; 3546 const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes); 3547 const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, { 3548 'no-border-radius': (style === null || style === void 0 ? void 0 : (_style$border4 = style.border) === null || _style$border4 === void 0 ? void 0 : _style$border4.radius) === 0 3549 }); 3550 const buttonStyle = { 3551 borderRadius: borderRadius ? borderRadius : undefined, 3552 ...colorProps.style 3553 }; // The use of a `title` attribute here is soft-deprecated, but still applied 3554 // if it had already been assigned, for the sake of backward-compatibility. 3555 // A title will no longer be assigned for new or updated button block links. 3556 3557 const wrapperClasses = classnames_default()(className, { 3558 [`has-custom-width wp-block-button__width-$width}`]: width, 3559 [`has-custom-font-size`]: fontSize || (style === null || style === void 0 ? void 0 : (_style$typography3 = style.typography) === null || _style$typography3 === void 0 ? void 0 : _style$typography3.fontSize) 3560 }); 3561 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 3562 className: wrapperClasses 3563 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 3564 tagName: "a", 3565 className: buttonClasses, 3566 href: url, 3567 title: title, 3568 style: buttonStyle, 3569 value: text, 3570 target: linkTarget, 3571 rel: rel 3572 })); 3573 }, 3574 3575 migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius) 3576 }, { 3577 supports: { 3578 anchor: true, 3579 align: true, 3580 alignWide: false, 3581 color: { 3582 __experimentalSkipSerialization: true 3583 }, 3584 reusable: false, 3585 __experimentalSelector: '.wp-block-button__link' 3586 }, 3587 attributes: { ...blockAttributes, 3588 linkTarget: { 3589 type: 'string', 3590 source: 'attribute', 3591 selector: 'a', 3592 attribute: 'target' 3593 }, 3594 rel: { 3595 type: 'string', 3596 source: 'attribute', 3597 selector: 'a', 3598 attribute: 'rel' 3599 }, 3600 placeholder: { 3601 type: 'string' 3602 }, 3603 borderRadius: { 3604 type: 'number' 3605 }, 3606 backgroundColor: { 3607 type: 'string' 3608 }, 3609 textColor: { 3610 type: 'string' 3611 }, 3612 gradient: { 3613 type: 'string' 3614 }, 3615 style: { 3616 type: 'object' 3617 }, 3618 width: { 3619 type: 'number' 3620 } 3621 }, 3622 3623 save(_ref5) { 3624 let { 3625 attributes, 3626 className 3627 } = _ref5; 3628 const { 3629 borderRadius, 3630 linkTarget, 3631 rel, 3632 text, 3633 title, 3634 url, 3635 width 3636 } = attributes; 3637 const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes); 3638 const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, { 3639 'no-border-radius': borderRadius === 0 3640 }); 3641 const buttonStyle = { 3642 borderRadius: borderRadius ? borderRadius + 'px' : undefined, 3643 ...colorProps.style 3644 }; // The use of a `title` attribute here is soft-deprecated, but still applied 3645 // if it had already been assigned, for the sake of backward-compatibility. 3646 // A title will no longer be assigned for new or updated button block links. 3647 3648 const wrapperClasses = classnames_default()(className, { 3649 [`has-custom-width wp-block-button__width-$width}`]: width 3650 }); 3651 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 3652 className: wrapperClasses 3653 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 3654 tagName: "a", 3655 className: buttonClasses, 3656 href: url, 3657 title: title, 3658 style: buttonStyle, 3659 value: text, 3660 target: linkTarget, 3661 rel: rel 3662 })); 3663 }, 3664 3665 migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius) 3666 }, { 3667 supports: { 3668 anchor: true, 3669 align: true, 3670 alignWide: false, 3671 color: { 3672 __experimentalSkipSerialization: true 3673 }, 3674 reusable: false, 3675 __experimentalSelector: '.wp-block-button__link' 3676 }, 3677 attributes: { ...blockAttributes, 3678 linkTarget: { 3679 type: 'string', 3680 source: 'attribute', 3681 selector: 'a', 3682 attribute: 'target' 3683 }, 3684 rel: { 3685 type: 'string', 3686 source: 'attribute', 3687 selector: 'a', 3688 attribute: 'rel' 3689 }, 3690 placeholder: { 3691 type: 'string' 3692 }, 3693 borderRadius: { 3694 type: 'number' 3695 }, 3696 backgroundColor: { 3697 type: 'string' 3698 }, 3699 textColor: { 3700 type: 'string' 3701 }, 3702 gradient: { 3703 type: 'string' 3704 }, 3705 style: { 3706 type: 'object' 3707 }, 3708 width: { 3709 type: 'number' 3710 } 3711 }, 3712 3713 save(_ref6) { 3714 let { 3715 attributes, 3716 className 3717 } = _ref6; 3718 const { 3719 borderRadius, 3720 linkTarget, 3721 rel, 3722 text, 3723 title, 3724 url, 3725 width 3726 } = attributes; 3727 const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes); 3728 const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, { 3729 'no-border-radius': borderRadius === 0 3730 }); 3731 const buttonStyle = { 3732 borderRadius: borderRadius ? borderRadius + 'px' : undefined, 3733 ...colorProps.style 3734 }; // The use of a `title` attribute here is soft-deprecated, but still applied 3735 // if it had already been assigned, for the sake of backward-compatibility. 3736 // A title will no longer be assigned for new or updated button block links. 3737 3738 const wrapperClasses = classnames_default()(className, { 3739 [`has-custom-width wp-block-button__width-$width}`]: width 3740 }); 3741 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 3742 className: wrapperClasses 3743 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 3744 tagName: "a", 3745 className: buttonClasses, 3746 href: url, 3747 title: title, 3748 style: buttonStyle, 3749 value: text, 3750 target: linkTarget, 3751 rel: rel 3752 })); 3753 }, 3754 3755 migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius) 3756 }, { 3757 supports: { 3758 align: true, 3759 alignWide: false, 3760 color: { 3761 gradients: true 3762 } 3763 }, 3764 attributes: { ...blockAttributes, 3765 linkTarget: { 3766 type: 'string', 3767 source: 'attribute', 3768 selector: 'a', 3769 attribute: 'target' 3770 }, 3771 rel: { 3772 type: 'string', 3773 source: 'attribute', 3774 selector: 'a', 3775 attribute: 'rel' 3776 }, 3777 placeholder: { 3778 type: 'string' 3779 }, 3780 borderRadius: { 3781 type: 'number' 3782 }, 3783 backgroundColor: { 3784 type: 'string' 3785 }, 3786 textColor: { 3787 type: 'string' 3788 }, 3789 gradient: { 3790 type: 'string' 3791 }, 3792 style: { 3793 type: 'object' 3794 } 3795 }, 3796 3797 save(_ref7) { 3798 let { 3799 attributes 3800 } = _ref7; 3801 const { 3802 borderRadius, 3803 linkTarget, 3804 rel, 3805 text, 3806 title, 3807 url 3808 } = attributes; 3809 const buttonClasses = classnames_default()('wp-block-button__link', { 3810 'no-border-radius': borderRadius === 0 3811 }); 3812 const buttonStyle = { 3813 borderRadius: borderRadius ? borderRadius + 'px' : undefined 3814 }; 3815 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 3816 tagName: "a", 3817 className: buttonClasses, 3818 href: url, 3819 title: title, 3820 style: buttonStyle, 3821 value: text, 3822 target: linkTarget, 3823 rel: rel 3824 }); 3825 }, 3826 3827 migrate: migrateBorderRadius 3828 }, { 3829 supports: { 3830 align: true, 3831 alignWide: false 3832 }, 3833 attributes: { ...blockAttributes, 3834 linkTarget: { 3835 type: 'string', 3836 source: 'attribute', 3837 selector: 'a', 3838 attribute: 'target' 3839 }, 3840 rel: { 3841 type: 'string', 3842 source: 'attribute', 3843 selector: 'a', 3844 attribute: 'rel' 3845 }, 3846 placeholder: { 3847 type: 'string' 3848 }, 3849 borderRadius: { 3850 type: 'number' 3851 }, 3852 backgroundColor: { 3853 type: 'string' 3854 }, 3855 textColor: { 3856 type: 'string' 3857 }, 3858 customBackgroundColor: { 3859 type: 'string' 3860 }, 3861 customTextColor: { 3862 type: 'string' 3863 }, 3864 customGradient: { 3865 type: 'string' 3866 }, 3867 gradient: { 3868 type: 'string' 3869 } 3870 }, 3871 isEligible: attributes => !!attributes.customTextColor || !!attributes.customBackgroundColor || !!attributes.customGradient, 3872 migrate: (0,external_wp_compose_namespaceObject.compose)(migrateBorderRadius, migrateCustomColorsAndGradients), 3873 3874 save(_ref8) { 3875 let { 3876 attributes 3877 } = _ref8; 3878 const { 3879 backgroundColor, 3880 borderRadius, 3881 customBackgroundColor, 3882 customTextColor, 3883 customGradient, 3884 linkTarget, 3885 gradient, 3886 rel, 3887 text, 3888 textColor, 3889 title, 3890 url 3891 } = attributes; 3892 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 3893 const backgroundClass = !customGradient && (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 3894 3895 const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient); 3896 3897 const buttonClasses = classnames_default()('wp-block-button__link', { 3898 'has-text-color': textColor || customTextColor, 3899 [textClass]: textClass, 3900 'has-background': backgroundColor || customBackgroundColor || customGradient || gradient, 3901 [backgroundClass]: backgroundClass, 3902 'no-border-radius': borderRadius === 0, 3903 [gradientClass]: gradientClass 3904 }); 3905 const buttonStyle = { 3906 background: customGradient ? customGradient : undefined, 3907 backgroundColor: backgroundClass || customGradient || gradient ? undefined : customBackgroundColor, 3908 color: textClass ? undefined : customTextColor, 3909 borderRadius: borderRadius ? borderRadius + 'px' : undefined 3910 }; // The use of a `title` attribute here is soft-deprecated, but still applied 3911 // if it had already been assigned, for the sake of backward-compatibility. 3912 // A title will no longer be assigned for new or updated button block links. 3913 3914 return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 3915 tagName: "a", 3916 className: buttonClasses, 3917 href: url, 3918 title: title, 3919 style: buttonStyle, 3920 value: text, 3921 target: linkTarget, 3922 rel: rel 3923 })); 3924 } 3925 3926 }, { 3927 attributes: { ...blockAttributes, 3928 align: { 3929 type: 'string', 3930 default: 'none' 3931 }, 3932 backgroundColor: { 3933 type: 'string' 3934 }, 3935 textColor: { 3936 type: 'string' 3937 }, 3938 customBackgroundColor: { 3939 type: 'string' 3940 }, 3941 customTextColor: { 3942 type: 'string' 3943 }, 3944 linkTarget: { 3945 type: 'string', 3946 source: 'attribute', 3947 selector: 'a', 3948 attribute: 'target' 3949 }, 3950 rel: { 3951 type: 'string', 3952 source: 'attribute', 3953 selector: 'a', 3954 attribute: 'rel' 3955 }, 3956 placeholder: { 3957 type: 'string' 3958 } 3959 }, 3960 3961 isEligible(attribute) { 3962 return attribute.className && attribute.className.includes('is-style-squared'); 3963 }, 3964 3965 migrate(attributes) { 3966 let newClassName = attributes.className; 3967 3968 if (newClassName) { 3969 newClassName = newClassName.replace(/is-style-squared[\s]?/, '').trim(); 3970 } 3971 3972 return migrateBorderRadius(migrateCustomColorsAndGradients({ ...attributes, 3973 className: newClassName ? newClassName : undefined, 3974 borderRadius: 0 3975 })); 3976 }, 3977 3978 save(_ref9) { 3979 let { 3980 attributes 3981 } = _ref9; 3982 const { 3983 backgroundColor, 3984 customBackgroundColor, 3985 customTextColor, 3986 linkTarget, 3987 rel, 3988 text, 3989 textColor, 3990 title, 3991 url 3992 } = attributes; 3993 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 3994 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 3995 const buttonClasses = classnames_default()('wp-block-button__link', { 3996 'has-text-color': textColor || customTextColor, 3997 [textClass]: textClass, 3998 'has-background': backgroundColor || customBackgroundColor, 3999 [backgroundClass]: backgroundClass 4000 }); 4001 const buttonStyle = { 4002 backgroundColor: backgroundClass ? undefined : customBackgroundColor, 4003 color: textClass ? undefined : customTextColor 4004 }; 4005 return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 4006 tagName: "a", 4007 className: buttonClasses, 4008 href: url, 4009 title: title, 4010 style: buttonStyle, 4011 value: text, 4012 target: linkTarget, 4013 rel: rel 4014 })); 4015 } 4016 4017 }, { 4018 attributes: { ...blockAttributes, 4019 align: { 4020 type: 'string', 4021 default: 'none' 4022 }, 4023 backgroundColor: { 4024 type: 'string' 4025 }, 4026 textColor: { 4027 type: 'string' 4028 }, 4029 customBackgroundColor: { 4030 type: 'string' 4031 }, 4032 customTextColor: { 4033 type: 'string' 4034 } 4035 }, 4036 migrate: oldColorsMigration, 4037 4038 save(_ref10) { 4039 let { 4040 attributes 4041 } = _ref10; 4042 const { 4043 url, 4044 text, 4045 title, 4046 backgroundColor, 4047 textColor, 4048 customBackgroundColor, 4049 customTextColor 4050 } = attributes; 4051 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 4052 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 4053 const buttonClasses = classnames_default()('wp-block-button__link', { 4054 'has-text-color': textColor || customTextColor, 4055 [textClass]: textClass, 4056 'has-background': backgroundColor || customBackgroundColor, 4057 [backgroundClass]: backgroundClass 4058 }); 4059 const buttonStyle = { 4060 backgroundColor: backgroundClass ? undefined : customBackgroundColor, 4061 color: textClass ? undefined : customTextColor 4062 }; 4063 return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 4064 tagName: "a", 4065 className: buttonClasses, 4066 href: url, 4067 title: title, 4068 style: buttonStyle, 4069 value: text 4070 })); 4071 } 4072 4073 }, { 4074 attributes: { ...blockAttributes, 4075 color: { 4076 type: 'string' 4077 }, 4078 textColor: { 4079 type: 'string' 4080 }, 4081 align: { 4082 type: 'string', 4083 default: 'none' 4084 } 4085 }, 4086 4087 save(_ref11) { 4088 let { 4089 attributes 4090 } = _ref11; 4091 const { 4092 url, 4093 text, 4094 title, 4095 align, 4096 color, 4097 textColor 4098 } = attributes; 4099 const buttonStyle = { 4100 backgroundColor: color, 4101 color: textColor 4102 }; 4103 const linkClass = 'wp-block-button__link'; 4104 return (0,external_wp_element_namespaceObject.createElement)("div", { 4105 className: `align$align}` 4106 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 4107 tagName: "a", 4108 className: linkClass, 4109 href: url, 4110 title: title, 4111 style: buttonStyle, 4112 value: text 4113 })); 4114 }, 4115 4116 migrate: oldColorsMigration 4117 }, { 4118 attributes: { ...blockAttributes, 4119 color: { 4120 type: 'string' 4121 }, 4122 textColor: { 4123 type: 'string' 4124 }, 4125 align: { 4126 type: 'string', 4127 default: 'none' 4128 } 4129 }, 4130 4131 save(_ref12) { 4132 let { 4133 attributes 4134 } = _ref12; 4135 const { 4136 url, 4137 text, 4138 title, 4139 align, 4140 color, 4141 textColor 4142 } = attributes; 4143 return (0,external_wp_element_namespaceObject.createElement)("div", { 4144 className: `align$align}`, 4145 style: { 4146 backgroundColor: color 4147 } 4148 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 4149 tagName: "a", 4150 href: url, 4151 title: title, 4152 style: { 4153 color: textColor 4154 }, 4155 value: text 4156 })); 4157 }, 4158 4159 migrate: oldColorsMigration 4160 }]; 4161 /* harmony default export */ var button_deprecated = (deprecated_deprecated); 4162 4163 ;// CONCATENATED MODULE: external ["wp","keycodes"] 4164 var external_wp_keycodes_namespaceObject = window["wp"]["keycodes"]; 4165 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js 4166 4167 4168 /** 4169 * WordPress dependencies 4170 */ 4171 4172 const link_link = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 4173 xmlns: "http://www.w3.org/2000/svg", 4174 viewBox: "0 0 24 24" 4175 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 4176 d: "M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z" 4177 })); 4178 /* harmony default export */ var library_link = (link_link); 4179 4180 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js 4181 4182 4183 /** 4184 * WordPress dependencies 4185 */ 4186 4187 const linkOff = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 4188 xmlns: "http://www.w3.org/2000/svg", 4189 viewBox: "0 0 24 24" 4190 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 4191 d: "M15.6 7.3h-.7l1.6-3.5-.9-.4-3.9 8.5H9v1.5h2l-1.3 2.8H8.4c-2 0-3.7-1.7-3.7-3.7s1.7-3.7 3.7-3.7H10V7.3H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H9l-1.4 3.2.9.4 5.7-12.5h1.4c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.9 0 5.2-2.3 5.2-5.2 0-2.9-2.4-5.2-5.2-5.2z" 4192 })); 4193 /* harmony default export */ var link_off = (linkOff); 4194 4195 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/edit.js 4196 4197 4198 4199 /** 4200 * External dependencies 4201 */ 4202 4203 /** 4204 * WordPress dependencies 4205 */ 4206 4207 4208 4209 4210 4211 4212 4213 4214 const NEW_TAB_REL = 'noreferrer noopener'; 4215 4216 function WidthPanel(_ref) { 4217 let { 4218 selectedWidth, 4219 setAttributes 4220 } = _ref; 4221 4222 function handleChange(newWidth) { 4223 // Check if we are toggling the width off 4224 const width = selectedWidth === newWidth ? undefined : newWidth; // Update attributes. 4225 4226 setAttributes({ 4227 width 4228 }); 4229 } 4230 4231 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 4232 title: (0,external_wp_i18n_namespaceObject.__)('Width settings') 4233 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, { 4234 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button width') 4235 }, [25, 50, 75, 100].map(widthValue => { 4236 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 4237 key: widthValue, 4238 isSmall: true, 4239 variant: widthValue === selectedWidth ? 'primary' : undefined, 4240 onClick: () => handleChange(widthValue) 4241 }, widthValue, "%"); 4242 }))); 4243 } 4244 4245 function ButtonEdit(props) { 4246 var _style$border; 4247 4248 const { 4249 attributes, 4250 setAttributes, 4251 className, 4252 isSelected, 4253 onReplace, 4254 mergeBlocks 4255 } = props; 4256 const { 4257 linkTarget, 4258 placeholder, 4259 rel, 4260 style, 4261 text, 4262 url, 4263 width 4264 } = attributes; 4265 const onSetLinkRel = (0,external_wp_element_namespaceObject.useCallback)(value => { 4266 setAttributes({ 4267 rel: value 4268 }); 4269 }, [setAttributes]); 4270 4271 function onToggleOpenInNewTab(value) { 4272 const newLinkTarget = value ? '_blank' : undefined; 4273 let updatedRel = rel; 4274 4275 if (newLinkTarget && !rel) { 4276 updatedRel = NEW_TAB_REL; 4277 } else if (!newLinkTarget && rel === NEW_TAB_REL) { 4278 updatedRel = undefined; 4279 } 4280 4281 setAttributes({ 4282 linkTarget: newLinkTarget, 4283 rel: updatedRel 4284 }); 4285 } 4286 4287 function setButtonText(newText) { 4288 // Remove anchor tags from button text content. 4289 setAttributes({ 4290 text: newText.replace(/<\/?a[^>]*>/g, '') 4291 }); 4292 } 4293 4294 function onKeyDown(event) { 4295 if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) { 4296 startEditing(event); 4297 } else if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primaryShift(event, 'k')) { 4298 var _richTextRef$current; 4299 4300 unlink(); 4301 (_richTextRef$current = richTextRef.current) === null || _richTextRef$current === void 0 ? void 0 : _richTextRef$current.focus(); 4302 } 4303 } 4304 4305 const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes); 4306 const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes); 4307 const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes); 4308 const ref = (0,external_wp_element_namespaceObject.useRef)(); 4309 const richTextRef = (0,external_wp_element_namespaceObject.useRef)(); 4310 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 4311 ref, 4312 onKeyDown 4313 }); 4314 const [isEditingURL, setIsEditingURL] = (0,external_wp_element_namespaceObject.useState)(false); 4315 const isURLSet = !!url; 4316 const opensInNewTab = linkTarget === '_blank'; 4317 4318 function startEditing(event) { 4319 event.preventDefault(); 4320 setIsEditingURL(true); 4321 } 4322 4323 function unlink() { 4324 setAttributes({ 4325 url: undefined, 4326 linkTarget: undefined, 4327 rel: undefined 4328 }); 4329 setIsEditingURL(false); 4330 } 4331 4332 (0,external_wp_element_namespaceObject.useEffect)(() => { 4333 if (!isSelected) { 4334 setIsEditingURL(false); 4335 } 4336 }, [isSelected]); 4337 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockProps, { 4338 className: classnames_default()(blockProps.className, { 4339 [`has-custom-width wp-block-button__width-$width}`]: width, 4340 [`has-custom-font-size`]: blockProps.style.fontSize 4341 }) 4342 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 4343 ref: richTextRef, 4344 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button text'), 4345 placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Add text…'), 4346 value: text, 4347 onChange: value => setButtonText(value), 4348 withoutInteractiveFormatting: true, 4349 className: classnames_default()(className, 'wp-block-button__link', colorProps.className, borderProps.className, { 4350 // For backwards compatibility add style that isn't 4351 // provided via block support. 4352 'no-border-radius': (style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border.radius) === 0 4353 }), 4354 style: { ...borderProps.style, 4355 ...colorProps.style, 4356 ...spacingProps.style 4357 }, 4358 onSplit: value => (0,external_wp_blocks_namespaceObject.createBlock)('core/button', { ...attributes, 4359 text: value 4360 }), 4361 onReplace: onReplace, 4362 onMerge: mergeBlocks, 4363 identifier: "text" 4364 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 4365 group: "block" 4366 }, !isURLSet && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 4367 name: "link", 4368 icon: library_link, 4369 title: (0,external_wp_i18n_namespaceObject.__)('Link'), 4370 shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'), 4371 onClick: startEditing 4372 }), isURLSet && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 4373 name: "link", 4374 icon: link_off, 4375 title: (0,external_wp_i18n_namespaceObject.__)('Unlink'), 4376 shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('k'), 4377 onClick: unlink, 4378 isActive: true 4379 })), isSelected && (isEditingURL || isURLSet) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { 4380 position: "bottom center", 4381 onClose: () => { 4382 var _richTextRef$current2; 4383 4384 setIsEditingURL(false); 4385 (_richTextRef$current2 = richTextRef.current) === null || _richTextRef$current2 === void 0 ? void 0 : _richTextRef$current2.focus(); 4386 }, 4387 anchorRef: ref === null || ref === void 0 ? void 0 : ref.current, 4388 focusOnMount: isEditingURL ? 'firstElement' : false, 4389 __unstableSlotName: '__unstable-block-tools-after' 4390 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, { 4391 className: "wp-block-navigation-link__inline-link-input", 4392 value: { 4393 url, 4394 opensInNewTab 4395 }, 4396 onChange: _ref2 => { 4397 let { 4398 url: newURL = '', 4399 opensInNewTab: newOpensInNewTab 4400 } = _ref2; 4401 setAttributes({ 4402 url: newURL 4403 }); 4404 4405 if (opensInNewTab !== newOpensInNewTab) { 4406 onToggleOpenInNewTab(newOpensInNewTab); 4407 } 4408 }, 4409 onRemove: () => { 4410 var _richTextRef$current3; 4411 4412 unlink(); 4413 (_richTextRef$current3 = richTextRef.current) === null || _richTextRef$current3 === void 0 ? void 0 : _richTextRef$current3.focus(); 4414 }, 4415 forceIsEditingLink: isEditingURL 4416 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(WidthPanel, { 4417 selectedWidth: width, 4418 setAttributes: setAttributes 4419 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, { 4420 __experimentalGroup: "advanced" 4421 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 4422 label: (0,external_wp_i18n_namespaceObject.__)('Link rel'), 4423 value: rel || '', 4424 onChange: onSetLinkRel 4425 }))); 4426 } 4427 4428 /* harmony default export */ var button_edit = (ButtonEdit); 4429 4430 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/save.js 4431 4432 4433 /** 4434 * External dependencies 4435 */ 4436 4437 /** 4438 * WordPress dependencies 4439 */ 4440 4441 4442 function save_save(_ref) { 4443 var _style$border, _style$typography; 4444 4445 let { 4446 attributes, 4447 className 4448 } = _ref; 4449 const { 4450 fontSize, 4451 linkTarget, 4452 rel, 4453 style, 4454 text, 4455 title, 4456 url, 4457 width 4458 } = attributes; 4459 4460 if (!text) { 4461 return null; 4462 } 4463 4464 const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes); 4465 const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes); 4466 const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes); 4467 const buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, borderProps.className, { 4468 // For backwards compatibility add style that isn't provided via 4469 // block support. 4470 'no-border-radius': (style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border.radius) === 0 4471 }); 4472 const buttonStyle = { ...borderProps.style, 4473 ...colorProps.style, 4474 ...spacingProps.style 4475 }; // The use of a `title` attribute here is soft-deprecated, but still applied 4476 // if it had already been assigned, for the sake of backward-compatibility. 4477 // A title will no longer be assigned for new or updated button block links. 4478 4479 const wrapperClasses = classnames_default()(className, { 4480 [`has-custom-width wp-block-button__width-$width}`]: width, 4481 [`has-custom-font-size`]: fontSize || (style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontSize) 4482 }); 4483 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 4484 className: wrapperClasses 4485 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 4486 tagName: "a", 4487 className: buttonClasses, 4488 href: url, 4489 title: title, 4490 style: buttonStyle, 4491 value: text, 4492 target: linkTarget, 4493 rel: rel 4494 })); 4495 } 4496 4497 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/index.js 4498 /** 4499 * WordPress dependencies 4500 */ 4501 4502 4503 /** 4504 * Internal dependencies 4505 */ 4506 4507 4508 4509 const button_metadata = { 4510 $schema: "https://schemas.wp.org/trunk/block.json", 4511 apiVersion: 2, 4512 name: "core/button", 4513 title: "Button", 4514 category: "design", 4515 parent: ["core/buttons"], 4516 description: "Prompt visitors to take action with a button-style link.", 4517 keywords: ["link"], 4518 textdomain: "default", 4519 attributes: { 4520 url: { 4521 type: "string", 4522 source: "attribute", 4523 selector: "a", 4524 attribute: "href" 4525 }, 4526 title: { 4527 type: "string", 4528 source: "attribute", 4529 selector: "a", 4530 attribute: "title" 4531 }, 4532 text: { 4533 type: "string", 4534 source: "html", 4535 selector: "a" 4536 }, 4537 linkTarget: { 4538 type: "string", 4539 source: "attribute", 4540 selector: "a", 4541 attribute: "target" 4542 }, 4543 rel: { 4544 type: "string", 4545 source: "attribute", 4546 selector: "a", 4547 attribute: "rel" 4548 }, 4549 placeholder: { 4550 type: "string" 4551 }, 4552 backgroundColor: { 4553 type: "string" 4554 }, 4555 textColor: { 4556 type: "string" 4557 }, 4558 gradient: { 4559 type: "string" 4560 }, 4561 width: { 4562 type: "number" 4563 } 4564 }, 4565 supports: { 4566 anchor: true, 4567 align: true, 4568 alignWide: false, 4569 color: { 4570 __experimentalSkipSerialization: true, 4571 gradients: true, 4572 __experimentalDefaultControls: { 4573 background: true, 4574 text: true 4575 } 4576 }, 4577 typography: { 4578 fontSize: true, 4579 __experimentalFontFamily: true, 4580 __experimentalDefaultControls: { 4581 fontSize: true 4582 } 4583 }, 4584 reusable: false, 4585 spacing: { 4586 __experimentalSkipSerialization: true, 4587 padding: ["horizontal", "vertical"], 4588 __experimentalDefaultControls: { 4589 padding: true 4590 } 4591 }, 4592 __experimentalBorder: { 4593 radius: true, 4594 __experimentalSkipSerialization: true, 4595 __experimentalDefaultControls: { 4596 radius: true 4597 } 4598 }, 4599 __experimentalSelector: ".wp-block-button__link" 4600 }, 4601 styles: [{ 4602 name: "fill", 4603 label: "Fill", 4604 isDefault: true 4605 }, { 4606 name: "outline", 4607 label: "Outline" 4608 }], 4609 editorStyle: "wp-block-button-editor", 4610 style: "wp-block-button" 4611 }; 4612 4613 const { 4614 name: button_name 4615 } = button_metadata; 4616 4617 const button_settings = { 4618 icon: library_button, 4619 example: { 4620 attributes: { 4621 className: 'is-style-fill', 4622 text: (0,external_wp_i18n_namespaceObject.__)('Call to Action') 4623 } 4624 }, 4625 edit: button_edit, 4626 save: save_save, 4627 deprecated: button_deprecated, 4628 merge: (a, _ref) => { 4629 let { 4630 text = '' 4631 } = _ref; 4632 return { ...a, 4633 text: (a.text || '') + text 4634 }; 4635 } 4636 }; 4637 4638 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/buttons.js 4639 4640 4641 /** 4642 * WordPress dependencies 4643 */ 4644 4645 const buttons = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 4646 viewBox: "0 0 24 24", 4647 xmlns: "http://www.w3.org/2000/svg" 4648 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 4649 d: "M17 3H7c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 6c0 .3-.2.5-.5.5H7c-.3 0-.5-.2-.5-.5V5c0-.3.2-.5.5-.5h10c.3 0 .5.2.5.5v4zm-8-1.2h5V6.2h-5v1.6zM17 13H7c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm.5 6c0 .3-.2.5-.5.5H7c-.3 0-.5-.2-.5-.5v-4c0-.3.2-.5.5-.5h10c.3 0 .5.2.5.5v4zm-8-1.2h5v-1.5h-5v1.5z" 4650 })); 4651 /* harmony default export */ var library_buttons = (buttons); 4652 4653 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/deprecated.js 4654 4655 4656 /** 4657 * External dependencies 4658 */ 4659 4660 /** 4661 * WordPress dependencies 4662 */ 4663 4664 4665 /** 4666 * @param {Object} attributes Block's attributes. 4667 */ 4668 4669 const migrateWithLayout = attributes => { 4670 if (!!attributes.layout) { 4671 return attributes; 4672 } 4673 4674 const { 4675 contentJustification, 4676 orientation, 4677 ...updatedAttributes 4678 } = attributes; 4679 4680 if (contentJustification || orientation) { 4681 Object.assign(updatedAttributes, { 4682 layout: { 4683 type: 'flex', 4684 ...(contentJustification && { 4685 justifyContent: contentJustification 4686 }), 4687 ...(orientation && { 4688 orientation 4689 }) 4690 } 4691 }); 4692 } 4693 4694 return updatedAttributes; 4695 }; 4696 4697 const buttons_deprecated_deprecated = [{ 4698 attributes: { 4699 contentJustification: { 4700 type: 'string' 4701 }, 4702 orientation: { 4703 type: 'string', 4704 default: 'horizontal' 4705 } 4706 }, 4707 supports: { 4708 anchor: true, 4709 align: ['wide', 'full'], 4710 __experimentalExposeControlsToChildren: true, 4711 spacing: { 4712 blockGap: true, 4713 margin: ['top', 'bottom'], 4714 __experimentalDefaultControls: { 4715 blockGap: true 4716 } 4717 } 4718 }, 4719 isEligible: _ref => { 4720 let { 4721 contentJustification, 4722 orientation 4723 } = _ref; 4724 return !!contentJustification || !!orientation; 4725 }, 4726 migrate: migrateWithLayout, 4727 4728 save(_ref2) { 4729 let { 4730 attributes: { 4731 contentJustification, 4732 orientation 4733 } 4734 } = _ref2; 4735 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 4736 className: classnames_default()({ 4737 [`is-content-justification-$contentJustification}`]: contentJustification, 4738 'is-vertical': orientation === 'vertical' 4739 }) 4740 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)); 4741 } 4742 4743 }, { 4744 supports: { 4745 align: ['center', 'left', 'right'], 4746 anchor: true 4747 }, 4748 4749 save() { 4750 return (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)); 4751 }, 4752 4753 isEligible(_ref3) { 4754 let { 4755 align 4756 } = _ref3; 4757 return align && ['center', 'left', 'right'].includes(align); 4758 }, 4759 4760 migrate(attributes) { 4761 return migrateWithLayout({ ...attributes, 4762 align: undefined, 4763 // Floating Buttons blocks shouldn't have been supported in the 4764 // first place. Most users using them probably expected them to 4765 // act like content justification controls, so these blocks are 4766 // migrated to use content justification. 4767 // As for center-aligned Buttons blocks, the content justification 4768 // equivalent will create an identical end result in most cases. 4769 contentJustification: attributes.align 4770 }); 4771 } 4772 4773 }]; 4774 /* harmony default export */ var buttons_deprecated = (buttons_deprecated_deprecated); 4775 4776 ;// CONCATENATED MODULE: external ["wp","richText"] 4777 var external_wp_richText_namespaceObject = window["wp"]["richText"]; 4778 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/transforms.js 4779 /** 4780 * WordPress dependencies 4781 */ 4782 4783 4784 /** 4785 * Internal dependencies 4786 */ 4787 4788 const { 4789 name: transforms_name 4790 } = { 4791 $schema: "https://schemas.wp.org/trunk/block.json", 4792 apiVersion: 2, 4793 name: "core/buttons", 4794 title: "Buttons", 4795 category: "design", 4796 description: "Prompt visitors to take action with a group of button-style links.", 4797 keywords: ["link"], 4798 textdomain: "default", 4799 supports: { 4800 anchor: true, 4801 align: ["wide", "full"], 4802 __experimentalExposeControlsToChildren: true, 4803 spacing: { 4804 blockGap: true, 4805 margin: ["top", "bottom"], 4806 __experimentalDefaultControls: { 4807 blockGap: true 4808 } 4809 }, 4810 __experimentalLayout: { 4811 allowSwitching: false, 4812 allowInheriting: false, 4813 "default": { 4814 type: "flex" 4815 } 4816 } 4817 }, 4818 editorStyle: "wp-block-buttons-editor", 4819 style: "wp-block-buttons" 4820 }; 4821 const transforms_transforms = { 4822 from: [{ 4823 type: 'block', 4824 isMultiBlock: true, 4825 blocks: ['core/button'], 4826 transform: buttons => // Creates the buttons block. 4827 (0,external_wp_blocks_namespaceObject.createBlock)(transforms_name, {}, // Loop the selected buttons. 4828 buttons.map(attributes => // Create singular button in the buttons block. 4829 (0,external_wp_blocks_namespaceObject.createBlock)('core/button', attributes))) 4830 }, { 4831 type: 'block', 4832 isMultiBlock: true, 4833 blocks: ['core/paragraph'], 4834 transform: buttons => // Creates the buttons block. 4835 (0,external_wp_blocks_namespaceObject.createBlock)(transforms_name, {}, // Loop the selected buttons. 4836 buttons.map(attributes => { 4837 const element = (0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, attributes.content); // Remove any HTML tags. 4838 4839 const text = element.innerText || ''; // Get first url. 4840 4841 const link = element.querySelector('a'); 4842 const url = link === null || link === void 0 ? void 0 : link.getAttribute('href'); // Create singular button in the buttons block. 4843 4844 return (0,external_wp_blocks_namespaceObject.createBlock)('core/button', { 4845 text, 4846 url 4847 }); 4848 })), 4849 isMatch: paragraphs => { 4850 return paragraphs.every(attributes => { 4851 const element = (0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, attributes.content); 4852 const text = element.innerText || ''; 4853 const links = element.querySelectorAll('a'); 4854 return text.length <= 30 && links.length <= 1; 4855 }); 4856 } 4857 }] 4858 }; 4859 /* harmony default export */ var buttons_transforms = (transforms_transforms); 4860 4861 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/edit.js 4862 4863 4864 /** 4865 * WordPress dependencies 4866 */ 4867 4868 4869 /** 4870 * Internal dependencies 4871 */ 4872 4873 4874 const ALLOWED_BLOCKS = [button_name]; 4875 const DEFAULT_BLOCK = { 4876 name: button_name, 4877 attributesToCopy: ['backgroundColor', 'border', 'className', 'fontFamily', 'fontSize', 'gradient', 'style', 'textColor', 'width'] 4878 }; 4879 4880 function ButtonsEdit(_ref) { 4881 let { 4882 attributes: { 4883 layout = {} 4884 } 4885 } = _ref; 4886 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 4887 const preferredStyle = (0,external_wp_data_namespaceObject.useSelect)(select => { 4888 var _preferredStyleVariat; 4889 4890 const preferredStyleVariations = select(external_wp_blockEditor_namespaceObject.store).getSettings().__experimentalPreferredStyleVariations; 4891 4892 return preferredStyleVariations === null || preferredStyleVariations === void 0 ? void 0 : (_preferredStyleVariat = preferredStyleVariations.value) === null || _preferredStyleVariat === void 0 ? void 0 : _preferredStyleVariat[button_name]; 4893 }, []); 4894 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, { 4895 allowedBlocks: ALLOWED_BLOCKS, 4896 __experimentalDefaultBlock: DEFAULT_BLOCK, 4897 __experimentalDirectInsert: true, 4898 template: [[button_name, { 4899 className: preferredStyle && `is-style-$preferredStyle}` 4900 }]], 4901 __experimentalLayout: layout, 4902 templateInsertUpdatesSelection: true 4903 }); 4904 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)); 4905 } 4906 4907 /* harmony default export */ var buttons_edit = (ButtonsEdit); 4908 4909 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/save.js 4910 4911 4912 /** 4913 * WordPress dependencies 4914 */ 4915 4916 function buttons_save_save() { 4917 const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save()); 4918 return (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps); 4919 } 4920 4921 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/index.js 4922 /** 4923 * WordPress dependencies 4924 */ 4925 4926 4927 /** 4928 * Internal dependencies 4929 */ 4930 4931 4932 4933 4934 const buttons_metadata = { 4935 $schema: "https://schemas.wp.org/trunk/block.json", 4936 apiVersion: 2, 4937 name: "core/buttons", 4938 title: "Buttons", 4939 category: "design", 4940 description: "Prompt visitors to take action with a group of button-style links.", 4941 keywords: ["link"], 4942 textdomain: "default", 4943 supports: { 4944 anchor: true, 4945 align: ["wide", "full"], 4946 __experimentalExposeControlsToChildren: true, 4947 spacing: { 4948 blockGap: true, 4949 margin: ["top", "bottom"], 4950 __experimentalDefaultControls: { 4951 blockGap: true 4952 } 4953 }, 4954 __experimentalLayout: { 4955 allowSwitching: false, 4956 allowInheriting: false, 4957 "default": { 4958 type: "flex" 4959 } 4960 } 4961 }, 4962 editorStyle: "wp-block-buttons-editor", 4963 style: "wp-block-buttons" 4964 }; 4965 4966 const { 4967 name: buttons_name 4968 } = buttons_metadata; 4969 4970 const buttons_settings = { 4971 icon: library_buttons, 4972 example: { 4973 innerBlocks: [{ 4974 name: 'core/button', 4975 attributes: { 4976 text: (0,external_wp_i18n_namespaceObject.__)('Find out more') 4977 } 4978 }, { 4979 name: 'core/button', 4980 attributes: { 4981 text: (0,external_wp_i18n_namespaceObject.__)('Contact us') 4982 } 4983 }] 4984 }, 4985 deprecated: buttons_deprecated, 4986 transforms: buttons_transforms, 4987 edit: buttons_edit, 4988 save: buttons_save_save 4989 }; 4990 4991 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/calendar.js 4992 4993 4994 /** 4995 * WordPress dependencies 4996 */ 4997 4998 const calendar = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 4999 viewBox: "0 0 24 24", 5000 xmlns: "http://www.w3.org/2000/svg" 5001 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 5002 d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V7h15v12zM9 10H7v2h2v-2zm0 4H7v2h2v-2zm4-4h-2v2h2v-2zm4 0h-2v2h2v-2zm-4 4h-2v2h2v-2zm4 0h-2v2h2v-2z" 5003 })); 5004 /* harmony default export */ var library_calendar = (calendar); 5005 5006 ;// CONCATENATED MODULE: external "moment" 5007 var external_moment_namespaceObject = window["moment"]; 5008 var external_moment_default = /*#__PURE__*/__webpack_require__.n(external_moment_namespaceObject); 5009 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/edit.js 5010 5011 5012 /** 5013 * External dependencies 5014 */ 5015 5016 5017 /** 5018 * WordPress dependencies 5019 */ 5020 5021 5022 5023 5024 5025 5026 5027 5028 const getYearMonth = memize_default()(date => { 5029 if (!date) { 5030 return {}; 5031 } 5032 5033 const momentDate = external_moment_default()(date); 5034 return { 5035 year: momentDate.year(), 5036 month: momentDate.month() + 1 5037 }; 5038 }); 5039 function CalendarEdit(_ref) { 5040 let { 5041 attributes 5042 } = _ref; 5043 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 5044 const { 5045 date, 5046 hasPosts, 5047 hasPostsResolved 5048 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 5049 const { 5050 getEntityRecords, 5051 hasFinishedResolution 5052 } = select(external_wp_coreData_namespaceObject.store); 5053 const singlePublishedPostQuery = { 5054 status: 'publish', 5055 per_page: 1 5056 }; 5057 const posts = getEntityRecords('postType', 'post', singlePublishedPostQuery); 5058 const postsResolved = hasFinishedResolution('getEntityRecords', ['postType', 'post', singlePublishedPostQuery]); 5059 5060 let _date; // FIXME: @wordpress/block-library should not depend on @wordpress/editor. 5061 // Blocks can be loaded into a *non-post* block editor. 5062 // eslint-disable-next-line @wordpress/data-no-store-string-literals 5063 5064 5065 const editorSelectors = select('core/editor'); 5066 5067 if (editorSelectors) { 5068 const postType = editorSelectors.getEditedPostAttribute('type'); // Dates are used to overwrite year and month used on the calendar. 5069 // This overwrite should only happen for 'post' post types. 5070 // For other post types the calendar always displays the current month. 5071 5072 if (postType === 'post') { 5073 _date = editorSelectors.getEditedPostAttribute('date'); 5074 } 5075 } 5076 5077 return { 5078 date: _date, 5079 hasPostsResolved: postsResolved, 5080 hasPosts: postsResolved && (posts === null || posts === void 0 ? void 0 : posts.length) === 1 5081 }; 5082 }, []); 5083 5084 if (!hasPosts) { 5085 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 5086 icon: library_calendar, 5087 label: (0,external_wp_i18n_namespaceObject.__)('Calendar') 5088 }, !hasPostsResolved ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null) : (0,external_wp_i18n_namespaceObject.__)('No published posts found.'))); 5089 } 5090 5091 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, null, (0,external_wp_element_namespaceObject.createElement)((external_wp_serverSideRender_default()), { 5092 block: "core/calendar", 5093 attributes: { ...attributes, 5094 ...getYearMonth(date) 5095 } 5096 }))); 5097 } 5098 5099 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/transforms.js 5100 /** 5101 * WordPress dependencies 5102 */ 5103 5104 const calendar_transforms_transforms = { 5105 from: [{ 5106 type: 'block', 5107 blocks: ['core/archives'], 5108 transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/calendar') 5109 }], 5110 to: [{ 5111 type: 'block', 5112 blocks: ['core/archives'], 5113 transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/archives') 5114 }] 5115 }; 5116 /* harmony default export */ var calendar_transforms = (calendar_transforms_transforms); 5117 5118 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/index.js 5119 /** 5120 * WordPress dependencies 5121 */ 5122 5123 /** 5124 * Internal dependencies 5125 */ 5126 5127 const calendar_metadata = { 5128 $schema: "https://schemas.wp.org/trunk/block.json", 5129 apiVersion: 2, 5130 name: "core/calendar", 5131 title: "Calendar", 5132 category: "widgets", 5133 description: "A calendar of your site\u2019s posts.", 5134 keywords: ["posts", "archive"], 5135 textdomain: "default", 5136 attributes: { 5137 month: { 5138 type: "integer" 5139 }, 5140 year: { 5141 type: "integer" 5142 } 5143 }, 5144 supports: { 5145 align: true 5146 }, 5147 style: "wp-block-calendar" 5148 }; 5149 5150 5151 const { 5152 name: calendar_name 5153 } = calendar_metadata; 5154 5155 const calendar_settings = { 5156 icon: library_calendar, 5157 example: {}, 5158 edit: CalendarEdit, 5159 transforms: calendar_transforms 5160 }; 5161 5162 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/category.js 5163 5164 5165 /** 5166 * WordPress dependencies 5167 */ 5168 5169 const category = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 5170 viewBox: "0 0 24 24", 5171 xmlns: "http://www.w3.org/2000/svg" 5172 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 5173 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", 5174 fillRule: "evenodd", 5175 clipRule: "evenodd" 5176 })); 5177 /* harmony default export */ var library_category = (category); 5178 5179 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pin.js 5180 5181 5182 /** 5183 * WordPress dependencies 5184 */ 5185 5186 const pin = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 5187 xmlns: "http://www.w3.org/2000/svg", 5188 viewBox: "0 0 24 24" 5189 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 5190 d: "m21.5 9.1-6.6-6.6-4.2 5.6c-1.2-.1-2.4.1-3.6.7-.1 0-.1.1-.2.1-.5.3-.9.6-1.2.9l3.7 3.7-5.7 5.7v1.1h1.1l5.7-5.7 3.7 3.7c.4-.4.7-.8.9-1.2.1-.1.1-.2.2-.3.6-1.1.8-2.4.6-3.6l5.6-4.1zm-7.3 3.5.1.9c.1.9 0 1.8-.4 2.6l-6-6c.8-.4 1.7-.5 2.6-.4l.9.1L15 4.9 19.1 9l-4.9 3.6z" 5191 })); 5192 /* harmony default export */ var library_pin = (pin); 5193 5194 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/categories/edit.js 5195 5196 5197 /** 5198 * External dependencies 5199 */ 5200 5201 /** 5202 * WordPress dependencies 5203 */ 5204 5205 5206 5207 5208 5209 5210 5211 function CategoriesEdit(_ref) { 5212 let { 5213 attributes: { 5214 displayAsDropdown, 5215 showHierarchy, 5216 showPostCounts, 5217 showOnlyTopLevel 5218 }, 5219 setAttributes 5220 } = _ref; 5221 const selectId = (0,external_wp_compose_namespaceObject.useInstanceId)(CategoriesEdit, 'blocks-category-select'); 5222 const query = { 5223 per_page: -1, 5224 hide_empty: true, 5225 context: 'view' 5226 }; 5227 5228 if (showOnlyTopLevel) { 5229 query.parent = 0; 5230 } 5231 5232 const { 5233 records: categories, 5234 isResolving 5235 } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('taxonomy', 'category', query); 5236 5237 const getCategoriesList = parentId => { 5238 if (!(categories !== null && categories !== void 0 && categories.length)) { 5239 return []; 5240 } 5241 5242 if (parentId === null) { 5243 return categories; 5244 } 5245 5246 return categories.filter(_ref2 => { 5247 let { 5248 parent 5249 } = _ref2; 5250 return parent === parentId; 5251 }); 5252 }; 5253 5254 const getCategoryListClassName = level => { 5255 return `wp-block-categories__list wp-block-categories__list-level-$level}`; 5256 }; 5257 5258 const toggleAttribute = attributeName => newValue => setAttributes({ 5259 [attributeName]: newValue 5260 }); 5261 5262 const renderCategoryName = name => !name ? (0,external_wp_i18n_namespaceObject.__)('(Untitled)') : (0,external_lodash_namespaceObject.unescape)(name).trim(); 5263 5264 const renderCategoryList = () => { 5265 const parentId = showHierarchy ? 0 : null; 5266 const categoriesList = getCategoriesList(parentId); 5267 return (0,external_wp_element_namespaceObject.createElement)("ul", { 5268 className: getCategoryListClassName(0) 5269 }, categoriesList.map(category => renderCategoryListItem(category, 0))); 5270 }; 5271 5272 const renderCategoryListItem = (category, level) => { 5273 const childCategories = getCategoriesList(category.id); 5274 const { 5275 id, 5276 link, 5277 count, 5278 name 5279 } = category; 5280 return (0,external_wp_element_namespaceObject.createElement)("li", { 5281 key: id 5282 }, (0,external_wp_element_namespaceObject.createElement)("a", { 5283 href: link, 5284 target: "_blank", 5285 rel: "noreferrer noopener" 5286 }, renderCategoryName(name)), showPostCounts && (0,external_wp_element_namespaceObject.createElement)("span", { 5287 className: "wp-block-categories__post-count" 5288 }, ` ($count})`), showHierarchy && !!childCategories.length && (0,external_wp_element_namespaceObject.createElement)("ul", { 5289 className: getCategoryListClassName(level + 1) 5290 }, childCategories.map(childCategory => renderCategoryListItem(childCategory, level + 1)))); 5291 }; 5292 5293 const renderCategoryDropdown = () => { 5294 const parentId = showHierarchy ? 0 : null; 5295 const categoriesList = getCategoriesList(parentId); 5296 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { 5297 as: "label", 5298 htmlFor: selectId 5299 }, (0,external_wp_i18n_namespaceObject.__)('Categories')), (0,external_wp_element_namespaceObject.createElement)("select", { 5300 id: selectId, 5301 className: "wp-block-categories__dropdown" 5302 }, categoriesList.map(category => renderCategoryDropdownItem(category, 0)))); 5303 }; 5304 5305 const renderCategoryDropdownItem = (category, level) => { 5306 const { 5307 id, 5308 count, 5309 name 5310 } = category; 5311 const childCategories = getCategoriesList(id); 5312 return [(0,external_wp_element_namespaceObject.createElement)("option", { 5313 key: id 5314 }, (0,external_lodash_namespaceObject.times)(level * 3, () => '\xa0'), renderCategoryName(name), showPostCounts && ` ($count})`), showHierarchy && !!childCategories.length && childCategories.map(childCategory => renderCategoryDropdownItem(childCategory, level + 1))]; 5315 }; 5316 5317 return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 5318 title: (0,external_wp_i18n_namespaceObject.__)('Categories settings') 5319 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 5320 label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'), 5321 checked: displayAsDropdown, 5322 onChange: toggleAttribute('displayAsDropdown') 5323 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 5324 label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'), 5325 checked: showPostCounts, 5326 onChange: toggleAttribute('showPostCounts') 5327 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 5328 label: (0,external_wp_i18n_namespaceObject.__)('Show only top level categories'), 5329 checked: showOnlyTopLevel, 5330 onChange: toggleAttribute('showOnlyTopLevel') 5331 }), !showOnlyTopLevel && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 5332 label: (0,external_wp_i18n_namespaceObject.__)('Show hierarchy'), 5333 checked: showHierarchy, 5334 onChange: toggleAttribute('showHierarchy') 5335 }))), isResolving && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 5336 icon: library_pin, 5337 label: (0,external_wp_i18n_namespaceObject.__)('Categories') 5338 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)), !isResolving && (categories === null || categories === void 0 ? void 0 : categories.length) === 0 && (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Your site does not have any posts, so there is nothing to display here at the moment.')), !isResolving && (categories === null || categories === void 0 ? void 0 : categories.length) > 0 && (displayAsDropdown ? renderCategoryDropdown() : renderCategoryList())); 5339 } 5340 5341 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/categories/index.js 5342 /** 5343 * WordPress dependencies 5344 */ 5345 5346 /** 5347 * Internal dependencies 5348 */ 5349 5350 const categories_metadata = { 5351 $schema: "https://schemas.wp.org/trunk/block.json", 5352 apiVersion: 2, 5353 name: "core/categories", 5354 title: "Categories", 5355 category: "widgets", 5356 description: "Display a list of all categories.", 5357 textdomain: "default", 5358 attributes: { 5359 displayAsDropdown: { 5360 type: "boolean", 5361 "default": false 5362 }, 5363 showHierarchy: { 5364 type: "boolean", 5365 "default": false 5366 }, 5367 showPostCounts: { 5368 type: "boolean", 5369 "default": false 5370 }, 5371 showOnlyTopLevel: { 5372 type: "boolean", 5373 "default": false 5374 } 5375 }, 5376 supports: { 5377 align: true, 5378 html: false 5379 }, 5380 editorStyle: "wp-block-categories-editor", 5381 style: "wp-block-categories" 5382 }; 5383 5384 const { 5385 name: categories_name 5386 } = categories_metadata; 5387 5388 const categories_settings = { 5389 icon: library_category, 5390 example: {}, 5391 edit: CategoriesEdit 5392 }; 5393 5394 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/classic.js 5395 5396 5397 /** 5398 * WordPress dependencies 5399 */ 5400 5401 const classic = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 5402 viewBox: "0 0 24 24", 5403 xmlns: "http://www.w3.org/2000/svg" 5404 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 5405 d: "M20 6H4c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H4c-.3 0-.5-.2-.5-.5V8c0-.3.2-.5.5-.5h16c.3 0 .5.2.5.5v9zM10 10H8v2h2v-2zm-5 2h2v-2H5v2zm8-2h-2v2h2v-2zm-5 6h8v-2H8v2zm6-4h2v-2h-2v2zm3 0h2v-2h-2v2zm0 4h2v-2h-2v2zM5 16h2v-2H5v2z" 5406 })); 5407 /* harmony default export */ var library_classic = (classic); 5408 5409 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/convert-to-blocks-button.js 5410 5411 5412 /** 5413 * WordPress dependencies 5414 */ 5415 5416 5417 5418 5419 5420 5421 const ConvertToBlocksButton = _ref => { 5422 let { 5423 clientId 5424 } = _ref; 5425 const { 5426 replaceBlocks 5427 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 5428 const block = (0,external_wp_data_namespaceObject.useSelect)(select => { 5429 return select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId); 5430 }, [clientId]); 5431 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 5432 onClick: () => replaceBlocks(block.clientId, (0,external_wp_blocks_namespaceObject.rawHandler)({ 5433 HTML: (0,external_wp_blocks_namespaceObject.serialize)(block) 5434 })) 5435 }, (0,external_wp_i18n_namespaceObject.__)('Convert to blocks')); 5436 }; 5437 5438 /* harmony default export */ var convert_to_blocks_button = (ConvertToBlocksButton); 5439 5440 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/edit.js 5441 5442 5443 /** 5444 * External dependencies 5445 */ 5446 5447 /** 5448 * WordPress dependencies 5449 */ 5450 5451 5452 5453 5454 5455 5456 5457 /** 5458 * Internal dependencies 5459 */ 5460 5461 5462 const { 5463 wp: edit_wp 5464 } = window; 5465 5466 function isTmceEmpty(editor) { 5467 // When tinyMce is empty the content seems to be: 5468 // <p><br data-mce-bogus="1"></p> 5469 // avoid expensive checks for large documents 5470 const body = editor.getBody(); 5471 5472 if (body.childNodes.length > 1) { 5473 return false; 5474 } else if (body.childNodes.length === 0) { 5475 return true; 5476 } 5477 5478 if (body.childNodes[0].childNodes.length > 1) { 5479 return false; 5480 } 5481 5482 return /^\n?$/.test(body.innerText || body.textContent); 5483 } 5484 5485 function ClassicEdit(_ref) { 5486 let { 5487 clientId, 5488 attributes: { 5489 content 5490 }, 5491 setAttributes, 5492 onReplace 5493 } = _ref; 5494 const { 5495 getMultiSelectedBlockClientIds 5496 } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store); 5497 const didMount = (0,external_wp_element_namespaceObject.useRef)(false); 5498 (0,external_wp_element_namespaceObject.useEffect)(() => { 5499 if (!didMount.current) { 5500 return; 5501 } 5502 5503 const editor = window.tinymce.get(`editor-$clientId}`); 5504 const currentContent = editor === null || editor === void 0 ? void 0 : editor.getContent(); 5505 5506 if (currentContent !== content) { 5507 editor.setContent(content || ''); 5508 } 5509 }, [content]); 5510 (0,external_wp_element_namespaceObject.useEffect)(() => { 5511 const { 5512 baseURL, 5513 suffix 5514 } = window.wpEditorL10n.tinymce; 5515 didMount.current = true; 5516 window.tinymce.EditorManager.overrideDefaults({ 5517 base_url: baseURL, 5518 suffix 5519 }); 5520 5521 function onSetup(editor) { 5522 let bookmark; 5523 5524 if (content) { 5525 editor.on('loadContent', () => editor.setContent(content)); 5526 } 5527 5528 editor.on('blur', () => { 5529 var _getMultiSelectedBloc; 5530 5531 bookmark = editor.selection.getBookmark(2, true); // There is an issue with Chrome and the editor.focus call in core at https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/lib/link.js#L451. 5532 // This causes a scroll to the top of editor content on return from some content updating dialogs so tracking 5533 // scroll position until this is fixed in core. 5534 5535 const scrollContainer = document.querySelector('.interface-interface-skeleton__content'); 5536 const scrollPosition = scrollContainer.scrollTop; // Only update attributes if we aren't multi-selecting blocks. 5537 // Updating during multi-selection can overwrite attributes of other blocks. 5538 5539 if (!((_getMultiSelectedBloc = getMultiSelectedBlockClientIds()) !== null && _getMultiSelectedBloc !== void 0 && _getMultiSelectedBloc.length)) { 5540 setAttributes({ 5541 content: editor.getContent() 5542 }); 5543 } 5544 5545 editor.once('focus', () => { 5546 if (bookmark) { 5547 editor.selection.moveToBookmark(bookmark); 5548 5549 if (scrollContainer.scrollTop !== scrollPosition) { 5550 scrollContainer.scrollTop = scrollPosition; 5551 } 5552 } 5553 }); 5554 return false; 5555 }); 5556 editor.on('mousedown touchstart', () => { 5557 bookmark = null; 5558 }); 5559 const debouncedOnChange = (0,external_lodash_namespaceObject.debounce)(() => { 5560 const value = editor.getContent(); 5561 5562 if (value !== editor._lastChange) { 5563 editor._lastChange = value; 5564 setAttributes({ 5565 content: value 5566 }); 5567 } 5568 }, 250); 5569 editor.on('Paste Change input Undo Redo', debouncedOnChange); // We need to cancel the debounce call because when we remove 5570 // the editor (onUnmount) this callback is executed in 5571 // another tick. This results in setting the content to empty. 5572 5573 editor.on('remove', debouncedOnChange.cancel); 5574 editor.on('keydown', event => { 5575 if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'z')) { 5576 // Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected. 5577 event.stopPropagation(); 5578 } 5579 5580 if ((event.keyCode === external_wp_keycodes_namespaceObject.BACKSPACE || event.keyCode === external_wp_keycodes_namespaceObject.DELETE) && isTmceEmpty(editor)) { 5581 // Delete the block. 5582 onReplace([]); 5583 event.preventDefault(); 5584 event.stopImmediatePropagation(); 5585 } 5586 5587 const { 5588 altKey 5589 } = event; 5590 /* 5591 * Prevent Mousetrap from kicking in: TinyMCE already uses its own 5592 * `alt+f10` shortcut to focus its toolbar. 5593 */ 5594 5595 if (altKey && event.keyCode === external_wp_keycodes_namespaceObject.F10) { 5596 event.stopPropagation(); 5597 } 5598 }); 5599 editor.on('init', () => { 5600 const rootNode = editor.getBody(); // Create the toolbar by refocussing the editor. 5601 5602 if (rootNode.ownerDocument.activeElement === rootNode) { 5603 rootNode.blur(); 5604 editor.focus(); 5605 } 5606 }); 5607 } 5608 5609 function initialize() { 5610 const { 5611 settings 5612 } = window.wpEditorL10n.tinymce; 5613 edit_wp.oldEditor.initialize(`editor-$clientId}`, { 5614 tinymce: { ...settings, 5615 inline: true, 5616 content_css: false, 5617 fixed_toolbar_container: `#toolbar-$clientId}`, 5618 setup: onSetup 5619 } 5620 }); 5621 } 5622 5623 function onReadyStateChange() { 5624 if (document.readyState === 'complete') { 5625 initialize(); 5626 } 5627 } 5628 5629 if (document.readyState === 'complete') { 5630 initialize(); 5631 } else { 5632 document.addEventListener('readystatechange', onReadyStateChange); 5633 } 5634 5635 return () => { 5636 document.removeEventListener('readystatechange', onReadyStateChange); 5637 edit_wp.oldEditor.remove(`editor-$clientId}`); 5638 }; 5639 }, []); 5640 5641 function focus() { 5642 const editor = window.tinymce.get(`editor-$clientId}`); 5643 5644 if (editor) { 5645 editor.focus(); 5646 } 5647 } 5648 5649 function onToolbarKeyDown(event) { 5650 // Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar. 5651 event.stopPropagation(); // Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar. 5652 5653 event.nativeEvent.stopImmediatePropagation(); 5654 } // Disable reasons: 5655 // 5656 // jsx-a11y/no-static-element-interactions 5657 // - the toolbar itself is non-interactive, but must capture events 5658 // from the KeyboardShortcuts component to stop their propagation. 5659 5660 /* eslint-disable jsx-a11y/no-static-element-interactions */ 5661 5662 5663 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(convert_to_blocks_button, { 5664 clientId: clientId 5665 }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)("div", { 5666 key: "toolbar", 5667 id: `toolbar-$clientId}`, 5668 className: "block-library-classic__toolbar", 5669 onClick: focus, 5670 "data-placeholder": (0,external_wp_i18n_namespaceObject.__)('Classic'), 5671 onKeyDown: onToolbarKeyDown 5672 }), (0,external_wp_element_namespaceObject.createElement)("div", { 5673 key: "editor", 5674 id: `editor-$clientId}`, 5675 className: "wp-block-freeform block-library-rich-text__tinymce" 5676 }))); 5677 /* eslint-enable jsx-a11y/no-static-element-interactions */ 5678 } 5679 5680 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/save.js 5681 5682 5683 /** 5684 * WordPress dependencies 5685 */ 5686 5687 function freeform_save_save(_ref) { 5688 let { 5689 attributes 5690 } = _ref; 5691 const { 5692 content 5693 } = attributes; 5694 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, content); 5695 } 5696 5697 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/freeform/index.js 5698 /** 5699 * WordPress dependencies 5700 */ 5701 5702 /** 5703 * Internal dependencies 5704 */ 5705 5706 5707 const freeform_metadata = { 5708 $schema: "https://schemas.wp.org/trunk/block.json", 5709 apiVersion: 2, 5710 name: "core/freeform", 5711 title: "Classic", 5712 category: "text", 5713 description: "Use the classic WordPress editor.", 5714 textdomain: "default", 5715 attributes: { 5716 content: { 5717 type: "string", 5718 source: "html" 5719 } 5720 }, 5721 supports: { 5722 className: false, 5723 customClassName: false, 5724 reusable: false 5725 }, 5726 editorStyle: "wp-block-freeform-editor" 5727 }; 5728 5729 const { 5730 name: freeform_name 5731 } = freeform_metadata; 5732 5733 const freeform_settings = { 5734 icon: library_classic, 5735 edit: ClassicEdit, 5736 save: freeform_save_save 5737 }; 5738 5739 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/code.js 5740 5741 5742 /** 5743 * WordPress dependencies 5744 */ 5745 5746 const code = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 5747 viewBox: "0 0 24 24", 5748 xmlns: "http://www.w3.org/2000/svg" 5749 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 5750 d: "M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z" 5751 })); 5752 /* harmony default export */ var library_code = (code); 5753 5754 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/edit.js 5755 5756 5757 /** 5758 * WordPress dependencies 5759 */ 5760 5761 5762 function CodeEdit(_ref) { 5763 let { 5764 attributes, 5765 setAttributes, 5766 onRemove 5767 } = _ref; 5768 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 5769 return (0,external_wp_element_namespaceObject.createElement)("pre", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 5770 tagName: "code", 5771 value: attributes.content, 5772 onChange: content => setAttributes({ 5773 content 5774 }), 5775 onRemove: onRemove, 5776 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write code…'), 5777 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Code'), 5778 preserveWhiteSpace: true, 5779 __unstablePastePlainText: true 5780 })); 5781 } 5782 5783 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/utils.js 5784 /** 5785 * External dependencies 5786 */ 5787 5788 /** 5789 * Escapes ampersands, shortcodes, and links. 5790 * 5791 * @param {string} content The content of a code block. 5792 * @return {string} The given content with some characters escaped. 5793 */ 5794 5795 function utils_escape(content) { 5796 return (0,external_lodash_namespaceObject.flow)(escapeOpeningSquareBrackets, escapeProtocolInIsolatedUrls)(content || ''); 5797 } 5798 /** 5799 * Returns the given content with all opening shortcode characters converted 5800 * into their HTML entity counterpart (i.e. [ => [). For instance, a 5801 * shortcode like [embed] becomes [embed] 5802 * 5803 * This function replicates the escaping of HTML tags, where a tag like 5804 * <strong> becomes <strong>. 5805 * 5806 * @param {string} content The content of a code block. 5807 * @return {string} The given content with its opening shortcode characters 5808 * converted into their HTML entity counterpart 5809 * (i.e. [ => [) 5810 */ 5811 5812 function escapeOpeningSquareBrackets(content) { 5813 return content.replace(/\[/g, '['); 5814 } 5815 /** 5816 * Converts the first two forward slashes of any isolated URL into their HTML 5817 * counterparts (i.e. // => //). For instance, https://youtube.com/watch?x 5818 * becomes https://youtube.com/watch?x. 5819 * 5820 * An isolated URL is a URL that sits in its own line, surrounded only by spacing 5821 * characters. 5822 * 5823 * See https://github.com/WordPress/wordpress-develop/blob/5.1.1/src/wp-includes/class-wp-embed.php#L403 5824 * 5825 * @param {string} content The content of a code block. 5826 * @return {string} The given content with its ampersands converted into 5827 * their HTML entity counterpart (i.e. & => &) 5828 */ 5829 5830 5831 function escapeProtocolInIsolatedUrls(content) { 5832 return content.replace(/^(\s*https?:)\/\/([^\s<>"]+\s*)$/m, '$1//$2'); 5833 } 5834 5835 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/save.js 5836 5837 5838 /** 5839 * WordPress dependencies 5840 */ 5841 5842 /** 5843 * Internal dependencies 5844 */ 5845 5846 5847 function code_save_save(_ref) { 5848 let { 5849 attributes 5850 } = _ref; 5851 return (0,external_wp_element_namespaceObject.createElement)("pre", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 5852 tagName: "code", 5853 value: utils_escape(attributes.content) 5854 })); 5855 } 5856 5857 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/transforms.js 5858 /** 5859 * WordPress dependencies 5860 */ 5861 5862 const code_transforms_transforms = { 5863 from: [{ 5864 type: 'enter', 5865 regExp: /^```$/, 5866 transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/code') 5867 }, { 5868 type: 'block', 5869 blocks: ['core/html', 'core/paragraph'], 5870 transform: _ref => { 5871 let { 5872 content 5873 } = _ref; 5874 return (0,external_wp_blocks_namespaceObject.createBlock)('core/code', { 5875 content 5876 }); 5877 } 5878 }, { 5879 type: 'raw', 5880 isMatch: node => node.nodeName === 'PRE' && node.children.length === 1 && node.firstChild.nodeName === 'CODE', 5881 schema: { 5882 pre: { 5883 children: { 5884 code: { 5885 children: { 5886 '#text': {} 5887 } 5888 } 5889 } 5890 } 5891 } 5892 }] 5893 }; 5894 /* harmony default export */ var code_transforms = (code_transforms_transforms); 5895 5896 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/index.js 5897 /** 5898 * WordPress dependencies 5899 */ 5900 5901 5902 /** 5903 * Internal dependencies 5904 */ 5905 5906 5907 const code_metadata = { 5908 $schema: "https://schemas.wp.org/trunk/block.json", 5909 apiVersion: 2, 5910 name: "core/code", 5911 title: "Code", 5912 category: "text", 5913 description: "Display code snippets that respect your spacing and tabs.", 5914 textdomain: "default", 5915 attributes: { 5916 content: { 5917 type: "string", 5918 source: "html", 5919 selector: "code" 5920 } 5921 }, 5922 supports: { 5923 anchor: true, 5924 typography: { 5925 fontSize: true, 5926 lineHeight: true, 5927 __experimentalFontStyle: true, 5928 __experimentalFontWeight: true, 5929 __experimentalLetterSpacing: true, 5930 __experimentalTextTransform: true, 5931 __experimentalDefaultControls: { 5932 fontSize: true 5933 } 5934 }, 5935 spacing: { 5936 margin: ["top", "bottom"], 5937 padding: true 5938 }, 5939 __experimentalBorder: { 5940 radius: true, 5941 color: true, 5942 width: true, 5943 style: true, 5944 __experimentalDefaultControls: { 5945 width: true, 5946 color: true 5947 } 5948 }, 5949 color: { 5950 text: true, 5951 background: true, 5952 gradients: true, 5953 __experimentalDefaultControls: { 5954 background: true, 5955 text: true 5956 } 5957 } 5958 }, 5959 style: "wp-block-code" 5960 }; 5961 5962 5963 const { 5964 name: code_name 5965 } = code_metadata; 5966 5967 const code_settings = { 5968 icon: library_code, 5969 example: { 5970 attributes: { 5971 /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */ 5972 // translators: Preserve \n markers for line breaks 5973 content: (0,external_wp_i18n_namespaceObject.__)('// A "block" is the abstract term used\n// to describe units of markup that\n// when composed together, form the\n// content or layout of a page.\nregisterBlockType( name, settings );') 5974 /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */ 5975 5976 } 5977 }, 5978 transforms: code_transforms, 5979 edit: CodeEdit, 5980 save: code_save_save 5981 }; 5982 5983 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/column.js 5984 5985 5986 /** 5987 * WordPress dependencies 5988 */ 5989 5990 const column = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 5991 xmlns: "http://www.w3.org/2000/svg", 5992 viewBox: "0 0 24 24" 5993 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 5994 d: "M19 6H6c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM6 17.5c-.3 0-.5-.2-.5-.5V8c0-.3.2-.5.5-.5h3v10H6zm13.5-.5c0 .3-.2.5-.5.5h-3v-10h3c.3 0 .5.2.5.5v9z" 5995 })); 5996 /* harmony default export */ var library_column = (column); 5997 5998 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/deprecated.js 5999 6000 6001 /** 6002 * External dependencies 6003 */ 6004 6005 /** 6006 * WordPress dependencies 6007 */ 6008 6009 6010 const column_deprecated_deprecated = [{ 6011 attributes: { 6012 verticalAlignment: { 6013 type: 'string' 6014 }, 6015 width: { 6016 type: 'number', 6017 min: 0, 6018 max: 100 6019 } 6020 }, 6021 6022 isEligible(_ref) { 6023 let { 6024 width 6025 } = _ref; 6026 return isFinite(width); 6027 }, 6028 6029 migrate(attributes) { 6030 return { ...attributes, 6031 width: `$attributes.width}%` 6032 }; 6033 }, 6034 6035 save(_ref2) { 6036 let { 6037 attributes 6038 } = _ref2; 6039 const { 6040 verticalAlignment, 6041 width 6042 } = attributes; 6043 const wrapperClasses = classnames_default()({ 6044 [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment 6045 }); 6046 const style = { 6047 flexBasis: width + '%' 6048 }; 6049 return (0,external_wp_element_namespaceObject.createElement)("div", { 6050 className: wrapperClasses, 6051 style: style 6052 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)); 6053 } 6054 6055 }]; 6056 /* harmony default export */ var column_deprecated = (column_deprecated_deprecated); 6057 6058 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/edit.js 6059 6060 6061 /** 6062 * External dependencies 6063 */ 6064 6065 /** 6066 * WordPress dependencies 6067 */ 6068 6069 6070 6071 6072 6073 6074 function ColumnEdit(_ref) { 6075 let { 6076 attributes: { 6077 verticalAlignment, 6078 width, 6079 templateLock = false, 6080 allowedBlocks 6081 }, 6082 setAttributes, 6083 clientId 6084 } = _ref; 6085 const classes = classnames_default()('block-core-columns', { 6086 [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment 6087 }); 6088 const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ 6089 availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || ['%', 'px', 'em', 'rem', 'vw'] 6090 }); 6091 const { 6092 columnsIds, 6093 hasChildBlocks, 6094 rootClientId 6095 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 6096 const { 6097 getBlockOrder, 6098 getBlockRootClientId 6099 } = select(external_wp_blockEditor_namespaceObject.store); 6100 const rootId = getBlockRootClientId(clientId); 6101 return { 6102 hasChildBlocks: getBlockOrder(clientId).length > 0, 6103 rootClientId: rootId, 6104 columnsIds: getBlockOrder(rootId) 6105 }; 6106 }, [clientId]); 6107 const { 6108 updateBlockAttributes 6109 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 6110 6111 const updateAlignment = value => { 6112 // Update own alignment. 6113 setAttributes({ 6114 verticalAlignment: value 6115 }); // Reset parent Columns block. 6116 6117 updateBlockAttributes(rootClientId, { 6118 verticalAlignment: null 6119 }); 6120 }; 6121 6122 const widthWithUnit = Number.isFinite(width) ? width + '%' : width; 6123 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 6124 className: classes, 6125 style: widthWithUnit ? { 6126 flexBasis: widthWithUnit 6127 } : undefined 6128 }); 6129 const columnsCount = columnsIds.length; 6130 const currentColumnPosition = columnsIds.indexOf(clientId) + 1; 6131 const label = (0,external_wp_i18n_namespaceObject.sprintf)( 6132 /* translators: 1: Block label (i.e. "Block: Column"), 2: Position of the selected block, 3: Total number of sibling blocks of the same type */ 6133 (0,external_wp_i18n_namespaceObject.__)('%1$s (%2$d of %3$d)'), blockProps['aria-label'], currentColumnPosition, columnsCount); 6134 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({ ...blockProps, 6135 'aria-label': label 6136 }, { 6137 templateLock, 6138 allowedBlocks, 6139 renderAppender: hasChildBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender 6140 }); 6141 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentToolbar, { 6142 onChange: updateAlignment, 6143 value: verticalAlignment 6144 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 6145 title: (0,external_wp_i18n_namespaceObject.__)('Column settings') 6146 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { 6147 label: (0,external_wp_i18n_namespaceObject.__)('Width'), 6148 labelPosition: "edge", 6149 __unstableInputWidth: "80px", 6150 value: width || '', 6151 onChange: nextWidth => { 6152 nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth; 6153 setAttributes({ 6154 width: nextWidth 6155 }); 6156 }, 6157 units: units 6158 }))), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)); 6159 } 6160 6161 /* harmony default export */ var column_edit = (ColumnEdit); 6162 6163 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/save.js 6164 6165 6166 /** 6167 * External dependencies 6168 */ 6169 6170 /** 6171 * WordPress dependencies 6172 */ 6173 6174 6175 function column_save_save(_ref) { 6176 let { 6177 attributes 6178 } = _ref; 6179 const { 6180 verticalAlignment, 6181 width 6182 } = attributes; 6183 const wrapperClasses = classnames_default()({ 6184 [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment 6185 }); 6186 let style; 6187 6188 if (width && /\d/.test(width)) { 6189 // Numbers are handled for backward compatibility as they can be still provided with templates. 6190 let flexBasis = Number.isFinite(width) ? width + '%' : width; // In some cases we need to round the width to a shorter float. 6191 6192 if (!Number.isFinite(width) && width !== null && width !== void 0 && width.endsWith('%')) { 6193 const multiplier = 1000000000000; // Shrink the number back to a reasonable float. 6194 6195 flexBasis = Math.round(Number.parseFloat(width) * multiplier) / multiplier + '%'; 6196 } 6197 6198 style = { 6199 flexBasis 6200 }; 6201 } 6202 6203 const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({ 6204 className: wrapperClasses, 6205 style 6206 }); 6207 const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps); 6208 return (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps); 6209 } 6210 6211 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/index.js 6212 /** 6213 * WordPress dependencies 6214 */ 6215 6216 /** 6217 * Internal dependencies 6218 */ 6219 6220 6221 6222 const column_metadata = { 6223 $schema: "https://schemas.wp.org/trunk/block.json", 6224 apiVersion: 2, 6225 name: "core/column", 6226 title: "Column", 6227 category: "text", 6228 parent: ["core/columns"], 6229 description: "A single column within a columns block.", 6230 textdomain: "default", 6231 attributes: { 6232 verticalAlignment: { 6233 type: "string" 6234 }, 6235 width: { 6236 type: "string" 6237 }, 6238 allowedBlocks: { 6239 type: "array" 6240 }, 6241 templateLock: { 6242 type: ["string", "boolean"], 6243 "enum": ["all", "insert", false] 6244 } 6245 }, 6246 supports: { 6247 anchor: true, 6248 reusable: false, 6249 html: false, 6250 color: { 6251 gradients: true, 6252 link: true, 6253 __experimentalDefaultControls: { 6254 background: true, 6255 text: true 6256 } 6257 }, 6258 spacing: { 6259 blockGap: true, 6260 padding: true, 6261 __experimentalDefaultControls: { 6262 padding: true 6263 } 6264 }, 6265 __experimentalLayout: true 6266 } 6267 }; 6268 6269 const { 6270 name: column_name 6271 } = column_metadata; 6272 6273 const column_settings = { 6274 icon: library_column, 6275 edit: column_edit, 6276 save: column_save_save, 6277 deprecated: column_deprecated 6278 }; 6279 6280 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/columns.js 6281 6282 6283 /** 6284 * WordPress dependencies 6285 */ 6286 6287 const columns = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 6288 viewBox: "0 0 24 24", 6289 xmlns: "http://www.w3.org/2000/svg" 6290 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 6291 d: "M19 6H6c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-4.1 1.5v10H10v-10h4.9zM5.5 17V8c0-.3.2-.5.5-.5h2.5v10H6c-.3 0-.5-.2-.5-.5zm14 0c0 .3-.2.5-.5.5h-2.6v-10H19c.3 0 .5.2.5.5v9z" 6292 })); 6293 /* harmony default export */ var library_columns = (columns); 6294 6295 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/deprecated.js 6296 6297 6298 /** 6299 * External dependencies 6300 */ 6301 6302 6303 /** 6304 * WordPress dependencies 6305 */ 6306 6307 6308 6309 /** 6310 * Given an HTML string for a deprecated columns inner block, returns the 6311 * column index to which the migrated inner block should be assigned. Returns 6312 * undefined if the inner block was not assigned to a column. 6313 * 6314 * @param {string} originalContent Deprecated Columns inner block HTML. 6315 * 6316 * @return {?number} Column to which inner block is to be assigned. 6317 */ 6318 6319 function getDeprecatedLayoutColumn(originalContent) { 6320 let { 6321 doc 6322 } = getDeprecatedLayoutColumn; 6323 6324 if (!doc) { 6325 doc = document.implementation.createHTMLDocument(''); 6326 getDeprecatedLayoutColumn.doc = doc; 6327 } 6328 6329 let columnMatch; 6330 doc.body.innerHTML = originalContent; 6331 6332 for (const classListItem of doc.body.firstChild.classList) { 6333 if (columnMatch = classListItem.match(/^layout-column-(\d+)$/)) { 6334 return Number(columnMatch[1]) - 1; 6335 } 6336 } 6337 } 6338 6339 const migrateCustomColors = attributes => { 6340 if (!attributes.customTextColor && !attributes.customBackgroundColor) { 6341 return attributes; 6342 } 6343 6344 const style = { 6345 color: {} 6346 }; 6347 6348 if (attributes.customTextColor) { 6349 style.color.text = attributes.customTextColor; 6350 } 6351 6352 if (attributes.customBackgroundColor) { 6353 style.color.background = attributes.customBackgroundColor; 6354 } 6355 6356 return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor']), 6357 style, 6358 isStackedOnMobile: true 6359 }; 6360 }; 6361 6362 /* harmony default export */ var columns_deprecated = ([{ 6363 attributes: { 6364 verticalAlignment: { 6365 type: 'string' 6366 }, 6367 backgroundColor: { 6368 type: 'string' 6369 }, 6370 customBackgroundColor: { 6371 type: 'string' 6372 }, 6373 customTextColor: { 6374 type: 'string' 6375 }, 6376 textColor: { 6377 type: 'string' 6378 } 6379 }, 6380 migrate: migrateCustomColors, 6381 6382 save(_ref) { 6383 let { 6384 attributes 6385 } = _ref; 6386 const { 6387 verticalAlignment, 6388 backgroundColor, 6389 customBackgroundColor, 6390 textColor, 6391 customTextColor 6392 } = attributes; 6393 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 6394 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 6395 const className = classnames_default()({ 6396 'has-background': backgroundColor || customBackgroundColor, 6397 'has-text-color': textColor || customTextColor, 6398 [backgroundClass]: backgroundClass, 6399 [textClass]: textClass, 6400 [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment 6401 }); 6402 const style = { 6403 backgroundColor: backgroundClass ? undefined : customBackgroundColor, 6404 color: textClass ? undefined : customTextColor 6405 }; 6406 return (0,external_wp_element_namespaceObject.createElement)("div", { 6407 className: className ? className : undefined, 6408 style: style 6409 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)); 6410 } 6411 6412 }, { 6413 attributes: { 6414 columns: { 6415 type: 'number', 6416 default: 2 6417 } 6418 }, 6419 6420 isEligible(attributes, innerBlocks) { 6421 // Since isEligible is called on every valid instance of the 6422 // Columns block and a deprecation is the unlikely case due to 6423 // its subsequent migration, optimize for the `false` condition 6424 // by performing a naive, inaccurate pass at inner blocks. 6425 const isFastPassEligible = innerBlocks.some(innerBlock => /layout-column-\d+/.test(innerBlock.originalContent)); 6426 6427 if (!isFastPassEligible) { 6428 return false; 6429 } // Only if the fast pass is considered eligible is the more 6430 // accurate, durable, slower condition performed. 6431 6432 6433 return innerBlocks.some(innerBlock => getDeprecatedLayoutColumn(innerBlock.originalContent) !== undefined); 6434 }, 6435 6436 migrate(attributes, innerBlocks) { 6437 const columns = innerBlocks.reduce((accumulator, innerBlock) => { 6438 const { 6439 originalContent 6440 } = innerBlock; 6441 let columnIndex = getDeprecatedLayoutColumn(originalContent); 6442 6443 if (columnIndex === undefined) { 6444 columnIndex = 0; 6445 } 6446 6447 if (!accumulator[columnIndex]) { 6448 accumulator[columnIndex] = []; 6449 } 6450 6451 accumulator[columnIndex].push(innerBlock); 6452 return accumulator; 6453 }, []); 6454 const migratedInnerBlocks = columns.map(columnBlocks => (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {}, columnBlocks)); 6455 return [{ ...(0,external_lodash_namespaceObject.omit)(attributes, ['columns']), 6456 isStackedOnMobile: true 6457 }, migratedInnerBlocks]; 6458 }, 6459 6460 save(_ref2) { 6461 let { 6462 attributes 6463 } = _ref2; 6464 const { 6465 columns 6466 } = attributes; 6467 return (0,external_wp_element_namespaceObject.createElement)("div", { 6468 className: `has-$columns}-columns` 6469 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)); 6470 } 6471 6472 }, { 6473 attributes: { 6474 columns: { 6475 type: 'number', 6476 default: 2 6477 } 6478 }, 6479 6480 migrate(attributes, innerBlocks) { 6481 attributes = { ...(0,external_lodash_namespaceObject.omit)(attributes, ['columns']), 6482 isStackedOnMobile: true 6483 }; 6484 return [attributes, innerBlocks]; 6485 }, 6486 6487 save(_ref3) { 6488 let { 6489 attributes 6490 } = _ref3; 6491 const { 6492 verticalAlignment, 6493 columns 6494 } = attributes; 6495 const wrapperClasses = classnames_default()(`has-$columns}-columns`, { 6496 [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment 6497 }); 6498 return (0,external_wp_element_namespaceObject.createElement)("div", { 6499 className: wrapperClasses 6500 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)); 6501 } 6502 6503 }]); 6504 6505 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/utils.js 6506 /** 6507 * External dependencies 6508 */ 6509 6510 /** 6511 * Returns a column width attribute value rounded to standard precision. 6512 * Returns `undefined` if the value is not a valid finite number. 6513 * 6514 * @param {?number} value Raw value. 6515 * 6516 * @return {number} Value rounded to standard precision. 6517 */ 6518 6519 const toWidthPrecision = value => { 6520 const unitlessValue = parseFloat(value); 6521 return Number.isFinite(unitlessValue) ? parseFloat(unitlessValue.toFixed(2)) : undefined; 6522 }; 6523 /** 6524 * Returns an effective width for a given block. An effective width is equal to 6525 * its attribute value if set, or a computed value assuming equal distribution. 6526 * 6527 * @param {WPBlock} block Block object. 6528 * @param {number} totalBlockCount Total number of blocks in Columns. 6529 * 6530 * @return {number} Effective column width. 6531 */ 6532 6533 function getEffectiveColumnWidth(block, totalBlockCount) { 6534 const { 6535 width = 100 / totalBlockCount 6536 } = block.attributes; 6537 return toWidthPrecision(width); 6538 } 6539 /** 6540 * Returns the total width occupied by the given set of column blocks. 6541 * 6542 * @param {WPBlock[]} blocks Block objects. 6543 * @param {?number} totalBlockCount Total number of blocks in Columns. 6544 * Defaults to number of blocks passed. 6545 * 6546 * @return {number} Total width occupied by blocks. 6547 */ 6548 6549 function getTotalColumnsWidth(blocks) { 6550 let totalBlockCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : blocks.length; 6551 return (0,external_lodash_namespaceObject.sumBy)(blocks, block => getEffectiveColumnWidth(block, totalBlockCount)); 6552 } 6553 /** 6554 * Returns an object of `clientId` → `width` of effective column widths. 6555 * 6556 * @param {WPBlock[]} blocks Block objects. 6557 * @param {?number} totalBlockCount Total number of blocks in Columns. 6558 * Defaults to number of blocks passed. 6559 * 6560 * @return {Object<string,number>} Column widths. 6561 */ 6562 6563 function getColumnWidths(blocks) { 6564 let totalBlockCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : blocks.length; 6565 return blocks.reduce((accumulator, block) => { 6566 const width = getEffectiveColumnWidth(block, totalBlockCount); 6567 return Object.assign(accumulator, { 6568 [block.clientId]: width 6569 }); 6570 }, {}); 6571 } 6572 /** 6573 * Returns an object of `clientId` → `width` of column widths as redistributed 6574 * proportional to their current widths, constrained or expanded to fit within 6575 * the given available width. 6576 * 6577 * @param {WPBlock[]} blocks Block objects. 6578 * @param {number} availableWidth Maximum width to fit within. 6579 * @param {?number} totalBlockCount Total number of blocks in Columns. 6580 * Defaults to number of blocks passed. 6581 * 6582 * @return {Object<string,number>} Redistributed column widths. 6583 */ 6584 6585 function getRedistributedColumnWidths(blocks, availableWidth) { 6586 let totalBlockCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : blocks.length; 6587 const totalWidth = getTotalColumnsWidth(blocks, totalBlockCount); 6588 return (0,external_lodash_namespaceObject.mapValues)(getColumnWidths(blocks, totalBlockCount), width => { 6589 const newWidth = availableWidth * width / totalWidth; 6590 return toWidthPrecision(newWidth); 6591 }); 6592 } 6593 /** 6594 * Returns true if column blocks within the provided set are assigned with 6595 * explicit widths, or false otherwise. 6596 * 6597 * @param {WPBlock[]} blocks Block objects. 6598 * 6599 * @return {boolean} Whether columns have explicit widths. 6600 */ 6601 6602 function hasExplicitPercentColumnWidths(blocks) { 6603 return blocks.every(block => { 6604 var _blockWidth$endsWith; 6605 6606 const blockWidth = block.attributes.width; 6607 return Number.isFinite(blockWidth !== null && blockWidth !== void 0 && (_blockWidth$endsWith = blockWidth.endsWith) !== null && _blockWidth$endsWith !== void 0 && _blockWidth$endsWith.call(blockWidth, '%') ? parseFloat(blockWidth) : blockWidth); 6608 }); 6609 } 6610 /** 6611 * Returns a copy of the given set of blocks with new widths assigned from the 6612 * provided object of redistributed column widths. 6613 * 6614 * @param {WPBlock[]} blocks Block objects. 6615 * @param {Object<string,number>} widths Redistributed column widths. 6616 * 6617 * @return {WPBlock[]} blocks Mapped block objects. 6618 */ 6619 6620 function getMappedColumnWidths(blocks, widths) { 6621 return blocks.map(block => (0,external_lodash_namespaceObject.merge)({}, block, { 6622 attributes: { 6623 width: `$widths[block.clientId]}%` 6624 } 6625 })); 6626 } 6627 /** 6628 * Returns an array with columns widths values, parsed or no depends on `withParsing` flag. 6629 * 6630 * @param {WPBlock[]} blocks Block objects. 6631 * @param {?boolean} withParsing Whether value has to be parsed. 6632 * 6633 * @return {Array<number,string>} Column widths. 6634 */ 6635 6636 function getWidths(blocks) { 6637 let withParsing = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 6638 return blocks.map(innerColumn => { 6639 const innerColumnWidth = innerColumn.attributes.width || 100 / blocks.length; 6640 return withParsing ? parseFloat(innerColumnWidth) : innerColumnWidth; 6641 }); 6642 } 6643 /** 6644 * Returns a column width with unit. 6645 * 6646 * @param {string} width Column width. 6647 * @param {string} unit Column width unit. 6648 * 6649 * @return {string} Column width with unit. 6650 */ 6651 6652 function getWidthWithUnit(width, unit) { 6653 width = 0 > parseFloat(width) ? '0' : width; 6654 6655 if (isPercentageUnit(unit)) { 6656 width = Math.min(width, 100); 6657 } 6658 6659 return `$width}$unit}`; 6660 } 6661 /** 6662 * Returns a boolean whether passed unit is percentage 6663 * 6664 * @param {string} unit Column width unit. 6665 * 6666 * @return {boolean} Whether unit is '%'. 6667 */ 6668 6669 function isPercentageUnit(unit) { 6670 return unit === '%'; 6671 } 6672 6673 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/edit.js 6674 6675 6676 /** 6677 * External dependencies 6678 */ 6679 6680 6681 /** 6682 * WordPress dependencies 6683 */ 6684 6685 6686 6687 6688 6689 6690 /** 6691 * Internal dependencies 6692 */ 6693 6694 6695 /** 6696 * Allowed blocks constant is passed to InnerBlocks precisely as specified here. 6697 * The contents of the array should never change. 6698 * The array should contain the name of each block that is allowed. 6699 * In columns block, the only block we allow is 'core/column'. 6700 * 6701 * @constant 6702 * @type {string[]} 6703 */ 6704 6705 const edit_ALLOWED_BLOCKS = ['core/column']; 6706 6707 function ColumnsEditContainer(_ref) { 6708 let { 6709 attributes, 6710 setAttributes, 6711 updateAlignment, 6712 updateColumns, 6713 clientId 6714 } = _ref; 6715 const { 6716 isStackedOnMobile, 6717 verticalAlignment 6718 } = attributes; 6719 const { 6720 count 6721 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 6722 return { 6723 count: select(external_wp_blockEditor_namespaceObject.store).getBlockCount(clientId) 6724 }; 6725 }, [clientId]); 6726 const classes = classnames_default()({ 6727 [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment, 6728 [`is-not-stacked-on-mobile`]: !isStackedOnMobile 6729 }); 6730 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 6731 className: classes 6732 }); 6733 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, { 6734 allowedBlocks: edit_ALLOWED_BLOCKS, 6735 orientation: 'horizontal', 6736 renderAppender: false 6737 }); 6738 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentToolbar, { 6739 onChange: updateAlignment, 6740 value: verticalAlignment 6741 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 6742 label: (0,external_wp_i18n_namespaceObject.__)('Columns'), 6743 value: count, 6744 onChange: value => updateColumns(count, value), 6745 min: 1, 6746 max: Math.max(6, count) 6747 }), count > 6 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, { 6748 status: "warning", 6749 isDismissible: false 6750 }, (0,external_wp_i18n_namespaceObject.__)('This column count exceeds the recommended amount and may cause visual breakage.')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 6751 label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'), 6752 checked: isStackedOnMobile, 6753 onChange: () => setAttributes({ 6754 isStackedOnMobile: !isStackedOnMobile 6755 }) 6756 }))), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)); 6757 } 6758 6759 const ColumnsEditContainerWrapper = (0,external_wp_data_namespaceObject.withDispatch)((dispatch, ownProps, registry) => ({ 6760 /** 6761 * Update all child Column blocks with a new vertical alignment setting 6762 * based on whatever alignment is passed in. This allows change to parent 6763 * to overide anything set on a individual column basis. 6764 * 6765 * @param {string} verticalAlignment the vertical alignment setting 6766 */ 6767 updateAlignment(verticalAlignment) { 6768 const { 6769 clientId, 6770 setAttributes 6771 } = ownProps; 6772 const { 6773 updateBlockAttributes 6774 } = dispatch(external_wp_blockEditor_namespaceObject.store); 6775 const { 6776 getBlockOrder 6777 } = registry.select(external_wp_blockEditor_namespaceObject.store); // Update own alignment. 6778 6779 setAttributes({ 6780 verticalAlignment 6781 }); // Update all child Column Blocks to match. 6782 6783 const innerBlockClientIds = getBlockOrder(clientId); 6784 innerBlockClientIds.forEach(innerBlockClientId => { 6785 updateBlockAttributes(innerBlockClientId, { 6786 verticalAlignment 6787 }); 6788 }); 6789 }, 6790 6791 /** 6792 * Updates the column count, including necessary revisions to child Column 6793 * blocks to grant required or redistribute available space. 6794 * 6795 * @param {number} previousColumns Previous column count. 6796 * @param {number} newColumns New column count. 6797 */ 6798 updateColumns(previousColumns, newColumns) { 6799 const { 6800 clientId 6801 } = ownProps; 6802 const { 6803 replaceInnerBlocks 6804 } = dispatch(external_wp_blockEditor_namespaceObject.store); 6805 const { 6806 getBlocks 6807 } = registry.select(external_wp_blockEditor_namespaceObject.store); 6808 let innerBlocks = getBlocks(clientId); 6809 const hasExplicitWidths = hasExplicitPercentColumnWidths(innerBlocks); // Redistribute available width for existing inner blocks. 6810 6811 const isAddingColumn = newColumns > previousColumns; 6812 6813 if (isAddingColumn && hasExplicitWidths) { 6814 // If adding a new column, assign width to the new column equal to 6815 // as if it were `1 / columns` of the total available space. 6816 const newColumnWidth = toWidthPrecision(100 / newColumns); // Redistribute in consideration of pending block insertion as 6817 // constraining the available working width. 6818 6819 const widths = getRedistributedColumnWidths(innerBlocks, 100 - newColumnWidth); 6820 innerBlocks = [...getMappedColumnWidths(innerBlocks, widths), ...(0,external_lodash_namespaceObject.times)(newColumns - previousColumns, () => { 6821 return (0,external_wp_blocks_namespaceObject.createBlock)('core/column', { 6822 width: `$newColumnWidth}%` 6823 }); 6824 })]; 6825 } else if (isAddingColumn) { 6826 innerBlocks = [...innerBlocks, ...(0,external_lodash_namespaceObject.times)(newColumns - previousColumns, () => { 6827 return (0,external_wp_blocks_namespaceObject.createBlock)('core/column'); 6828 })]; 6829 } else { 6830 // The removed column will be the last of the inner blocks. 6831 innerBlocks = (0,external_lodash_namespaceObject.dropRight)(innerBlocks, previousColumns - newColumns); 6832 6833 if (hasExplicitWidths) { 6834 // Redistribute as if block is already removed. 6835 const widths = getRedistributedColumnWidths(innerBlocks, 100); 6836 innerBlocks = getMappedColumnWidths(innerBlocks, widths); 6837 } 6838 } 6839 6840 replaceInnerBlocks(clientId, innerBlocks); 6841 } 6842 6843 }))(ColumnsEditContainer); 6844 6845 function Placeholder(_ref2) { 6846 let { 6847 clientId, 6848 name, 6849 setAttributes 6850 } = _ref2; 6851 const { 6852 blockType, 6853 defaultVariation, 6854 variations 6855 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 6856 const { 6857 getBlockVariations, 6858 getBlockType, 6859 getDefaultBlockVariation 6860 } = select(external_wp_blocks_namespaceObject.store); 6861 return { 6862 blockType: getBlockType(name), 6863 defaultVariation: getDefaultBlockVariation(name, 'block'), 6864 variations: getBlockVariations(name, 'block') 6865 }; 6866 }, [name]); 6867 const { 6868 replaceInnerBlocks 6869 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 6870 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 6871 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockVariationPicker, { 6872 icon: (0,external_lodash_namespaceObject.get)(blockType, ['icon', 'src']), 6873 label: (0,external_lodash_namespaceObject.get)(blockType, ['title']), 6874 variations: variations, 6875 onSelect: function () { 6876 let nextVariation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultVariation; 6877 6878 if (nextVariation.attributes) { 6879 setAttributes(nextVariation.attributes); 6880 } 6881 6882 if (nextVariation.innerBlocks) { 6883 replaceInnerBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(nextVariation.innerBlocks), true); 6884 } 6885 }, 6886 allowSkip: true 6887 })); 6888 } 6889 6890 const ColumnsEdit = props => { 6891 const { 6892 clientId 6893 } = props; 6894 const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlocks(clientId).length > 0, [clientId]); 6895 const Component = hasInnerBlocks ? ColumnsEditContainerWrapper : Placeholder; 6896 return (0,external_wp_element_namespaceObject.createElement)(Component, props); 6897 }; 6898 6899 /* harmony default export */ var columns_edit = (ColumnsEdit); 6900 6901 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/save.js 6902 6903 6904 /** 6905 * External dependencies 6906 */ 6907 6908 /** 6909 * WordPress dependencies 6910 */ 6911 6912 6913 function columns_save_save(_ref) { 6914 let { 6915 attributes 6916 } = _ref; 6917 const { 6918 isStackedOnMobile, 6919 verticalAlignment 6920 } = attributes; 6921 const className = classnames_default()({ 6922 [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment, 6923 [`is-not-stacked-on-mobile`]: !isStackedOnMobile 6924 }); 6925 const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({ 6926 className 6927 }); 6928 const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps); 6929 return (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps); 6930 } 6931 6932 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/variations.js 6933 6934 6935 /** 6936 * WordPress dependencies 6937 */ 6938 6939 6940 /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */ 6941 6942 /** 6943 * Template option choices for predefined columns layouts. 6944 * 6945 * @type {WPBlockVariation[]} 6946 */ 6947 6948 const variations = [{ 6949 name: 'one-column-full', 6950 title: (0,external_wp_i18n_namespaceObject.__)('100'), 6951 description: (0,external_wp_i18n_namespaceObject.__)('One column'), 6952 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 6953 width: "48", 6954 height: "48", 6955 viewBox: "0 0 48 48", 6956 xmlns: "http://www.w3.org/2000/svg" 6957 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 6958 fillRule: "evenodd", 6959 clipRule: "evenodd", 6960 d: "m39.0625 14h-30.0625v20.0938h30.0625zm-30.0625-2c-1.10457 0-2 .8954-2 2v20.0938c0 1.1045.89543 2 2 2h30.0625c1.1046 0 2-.8955 2-2v-20.0938c0-1.1046-.8954-2-2-2z" 6961 })), 6962 innerBlocks: [['core/column']], 6963 scope: ['block'] 6964 }, { 6965 name: 'two-columns-equal', 6966 title: (0,external_wp_i18n_namespaceObject.__)('50 / 50'), 6967 description: (0,external_wp_i18n_namespaceObject.__)('Two columns; equal split'), 6968 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 6969 width: "48", 6970 height: "48", 6971 viewBox: "0 0 48 48", 6972 xmlns: "http://www.w3.org/2000/svg" 6973 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 6974 fillRule: "evenodd", 6975 clipRule: "evenodd", 6976 d: "M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H25V34H39ZM23 34H9V14H23V34Z" 6977 })), 6978 isDefault: true, 6979 innerBlocks: [['core/column'], ['core/column']], 6980 scope: ['block'] 6981 }, { 6982 name: 'two-columns-one-third-two-thirds', 6983 title: (0,external_wp_i18n_namespaceObject.__)('30 / 70'), 6984 description: (0,external_wp_i18n_namespaceObject.__)('Two columns; one-third, two-thirds split'), 6985 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 6986 width: "48", 6987 height: "48", 6988 viewBox: "0 0 48 48", 6989 xmlns: "http://www.w3.org/2000/svg" 6990 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 6991 fillRule: "evenodd", 6992 clipRule: "evenodd", 6993 d: "M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H20V34H39ZM18 34H9V14H18V34Z" 6994 })), 6995 innerBlocks: [['core/column', { 6996 width: '33.33%' 6997 }], ['core/column', { 6998 width: '66.66%' 6999 }]], 7000 scope: ['block'] 7001 }, { 7002 name: 'two-columns-two-thirds-one-third', 7003 title: (0,external_wp_i18n_namespaceObject.__)('70 / 30'), 7004 description: (0,external_wp_i18n_namespaceObject.__)('Two columns; two-thirds, one-third split'), 7005 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 7006 width: "48", 7007 height: "48", 7008 viewBox: "0 0 48 48", 7009 xmlns: "http://www.w3.org/2000/svg" 7010 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 7011 fillRule: "evenodd", 7012 clipRule: "evenodd", 7013 d: "M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H30V34H39ZM28 34H9V14H28V34Z" 7014 })), 7015 innerBlocks: [['core/column', { 7016 width: '66.66%' 7017 }], ['core/column', { 7018 width: '33.33%' 7019 }]], 7020 scope: ['block'] 7021 }, { 7022 name: 'three-columns-equal', 7023 title: (0,external_wp_i18n_namespaceObject.__)('33 / 33 / 33'), 7024 description: (0,external_wp_i18n_namespaceObject.__)('Three columns; equal split'), 7025 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 7026 width: "48", 7027 height: "48", 7028 viewBox: "0 0 48 48", 7029 xmlns: "http://www.w3.org/2000/svg" 7030 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 7031 fillRule: "evenodd", 7032 d: "M41 14a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V14zM28.5 34h-9V14h9v20zm2 0V14H39v20h-8.5zm-13 0H9V14h8.5v20z" 7033 })), 7034 innerBlocks: [['core/column'], ['core/column'], ['core/column']], 7035 scope: ['block'] 7036 }, { 7037 name: 'three-columns-wider-center', 7038 title: (0,external_wp_i18n_namespaceObject.__)('25 / 50 / 25'), 7039 description: (0,external_wp_i18n_namespaceObject.__)('Three columns; wide center column'), 7040 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 7041 width: "48", 7042 height: "48", 7043 viewBox: "0 0 48 48", 7044 xmlns: "http://www.w3.org/2000/svg" 7045 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 7046 fillRule: "evenodd", 7047 d: "M41 14a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V14zM31 34H17V14h14v20zm2 0V14h6v20h-6zm-18 0H9V14h6v20z" 7048 })), 7049 innerBlocks: [['core/column', { 7050 width: '25%' 7051 }], ['core/column', { 7052 width: '50%' 7053 }], ['core/column', { 7054 width: '25%' 7055 }]], 7056 scope: ['block'] 7057 }]; 7058 /* harmony default export */ var columns_variations = (variations); 7059 7060 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/transforms.js 7061 /** 7062 * WordPress dependencies 7063 */ 7064 7065 const MAXIMUM_SELECTED_BLOCKS = 6; 7066 const columns_transforms_transforms = { 7067 from: [{ 7068 type: 'block', 7069 isMultiBlock: true, 7070 blocks: ['*'], 7071 __experimentalConvert: blocks => { 7072 const columnWidth = +(100 / blocks.length).toFixed(2); 7073 const innerBlocksTemplate = blocks.map(_ref => { 7074 let { 7075 name, 7076 attributes, 7077 innerBlocks 7078 } = _ref; 7079 return ['core/column', { 7080 width: `$columnWidth}%` 7081 }, [[name, { ...attributes 7082 }, innerBlocks]]]; 7083 }); 7084 return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {}, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate)); 7085 }, 7086 isMatch: _ref2 => { 7087 let { 7088 length: selectedBlocksLength 7089 } = _ref2; 7090 return selectedBlocksLength && selectedBlocksLength <= MAXIMUM_SELECTED_BLOCKS; 7091 } 7092 }, { 7093 type: 'block', 7094 blocks: ['core/media-text'], 7095 priority: 1, 7096 transform: (attributes, innerBlocks) => { 7097 const { 7098 align, 7099 backgroundColor, 7100 textColor, 7101 style, 7102 mediaAlt: alt, 7103 mediaId: id, 7104 mediaPosition, 7105 mediaSizeSlug: sizeSlug, 7106 mediaType, 7107 mediaUrl: url, 7108 mediaWidth, 7109 verticalAlignment 7110 } = attributes; 7111 let media; 7112 7113 if (mediaType === 'image' || !mediaType) { 7114 const imageAttrs = { 7115 id, 7116 alt, 7117 url, 7118 sizeSlug 7119 }; 7120 const linkAttrs = { 7121 href: attributes.href, 7122 linkClass: attributes.linkClass, 7123 linkDestination: attributes.linkDestination, 7124 linkTarget: attributes.linkTarget, 7125 rel: attributes.rel 7126 }; 7127 media = ['core/image', { ...imageAttrs, 7128 ...linkAttrs 7129 }]; 7130 } else { 7131 media = ['core/video', { 7132 id, 7133 src: url 7134 }]; 7135 } 7136 7137 const innerBlocksTemplate = [['core/column', { 7138 width: `$mediaWidth}%` 7139 }, [media]], ['core/column', { 7140 width: `$100 - mediaWidth}%` 7141 }, innerBlocks]]; 7142 7143 if (mediaPosition === 'right') { 7144 innerBlocksTemplate.reverse(); 7145 } 7146 7147 return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', { 7148 align, 7149 backgroundColor, 7150 textColor, 7151 style, 7152 verticalAlignment 7153 }, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate)); 7154 } 7155 }] 7156 }; 7157 /* harmony default export */ var columns_transforms = (columns_transforms_transforms); 7158 7159 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/index.js 7160 /** 7161 * WordPress dependencies 7162 */ 7163 7164 7165 /** 7166 * Internal dependencies 7167 */ 7168 7169 7170 7171 const columns_metadata = { 7172 $schema: "https://schemas.wp.org/trunk/block.json", 7173 apiVersion: 2, 7174 name: "core/columns", 7175 title: "Columns", 7176 category: "design", 7177 description: "Display content in multiple columns, with blocks added to each column.", 7178 textdomain: "default", 7179 attributes: { 7180 verticalAlignment: { 7181 type: "string" 7182 }, 7183 isStackedOnMobile: { 7184 type: "boolean", 7185 "default": true 7186 } 7187 }, 7188 supports: { 7189 anchor: true, 7190 align: ["wide", "full"], 7191 html: false, 7192 color: { 7193 gradients: true, 7194 link: true, 7195 __experimentalDefaultControls: { 7196 background: true, 7197 text: true 7198 } 7199 }, 7200 spacing: { 7201 blockGap: true, 7202 margin: ["top", "bottom"], 7203 padding: true, 7204 __experimentalDefaultControls: { 7205 padding: true 7206 } 7207 }, 7208 __experimentalLayout: { 7209 allowSwitching: false, 7210 allowInheriting: false, 7211 allowEditing: false, 7212 "default": { 7213 type: "flex", 7214 flexWrap: "nowrap" 7215 } 7216 }, 7217 __experimentalBorder: { 7218 color: true, 7219 radius: true, 7220 style: true, 7221 width: true, 7222 __experimentalDefaultControls: { 7223 color: true, 7224 radius: true, 7225 style: true, 7226 width: true 7227 } 7228 } 7229 }, 7230 editorStyle: "wp-block-columns-editor", 7231 style: "wp-block-columns" 7232 }; 7233 7234 7235 7236 const { 7237 name: columns_name 7238 } = columns_metadata; 7239 7240 const columns_settings = { 7241 icon: library_columns, 7242 variations: columns_variations, 7243 example: { 7244 viewportWidth: 600, 7245 // Columns collapse "@media (max-width: 599px)". 7246 innerBlocks: [{ 7247 name: 'core/column', 7248 innerBlocks: [{ 7249 name: 'core/paragraph', 7250 attributes: { 7251 /* translators: example text. */ 7252 content: (0,external_wp_i18n_namespaceObject.__)('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.') 7253 } 7254 }, { 7255 name: 'core/image', 7256 attributes: { 7257 url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg' 7258 } 7259 }, { 7260 name: 'core/paragraph', 7261 attributes: { 7262 /* translators: example text. */ 7263 content: (0,external_wp_i18n_namespaceObject.__)('Suspendisse commodo neque lacus, a dictum orci interdum et.') 7264 } 7265 }] 7266 }, { 7267 name: 'core/column', 7268 innerBlocks: [{ 7269 name: 'core/paragraph', 7270 attributes: { 7271 /* translators: example text. */ 7272 content: (0,external_wp_i18n_namespaceObject.__)('Etiam et egestas lorem. Vivamus sagittis sit amet dolor quis lobortis. Integer sed fermentum arcu, id vulputate lacus. Etiam fermentum sem eu quam hendrerit.') 7273 } 7274 }, { 7275 name: 'core/paragraph', 7276 attributes: { 7277 /* translators: example text. */ 7278 content: (0,external_wp_i18n_namespaceObject.__)('Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.') 7279 } 7280 }] 7281 }] 7282 }, 7283 deprecated: columns_deprecated, 7284 edit: columns_edit, 7285 save: columns_save_save, 7286 transforms: columns_transforms 7287 }; 7288 7289 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-author-name.js 7290 7291 7292 /** 7293 * WordPress dependencies 7294 */ 7295 7296 const commentAuthorName = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 7297 viewBox: "0 0 24 24", 7298 xmlns: "http://www.w3.org/2000/svg" 7299 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 7300 d: "M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z", 7301 fillRule: "evenodd", 7302 clipRule: "evenodd" 7303 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 7304 d: "M15 15V15C15 13.8954 14.1046 13 13 13L11 13C9.89543 13 9 13.8954 9 15V15", 7305 fillRule: "evenodd", 7306 clipRule: "evenodd" 7307 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Circle, { 7308 cx: "12", 7309 cy: "9", 7310 r: "2", 7311 fillRule: "evenodd", 7312 clipRule: "evenodd" 7313 })); 7314 /* harmony default export */ var comment_author_name = (commentAuthorName); 7315 7316 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/edit.js 7317 7318 7319 /** 7320 * External dependencies 7321 */ 7322 7323 /** 7324 * WordPress dependencies 7325 */ 7326 7327 7328 7329 7330 7331 7332 /** 7333 * Renders the `core/comment-author-name` block on the editor. 7334 * 7335 * @param {Object} props React props. 7336 * @param {Object} props.setAttributes Callback for updating block attributes. 7337 * @param {Object} props.attributes Block attributes. 7338 * @param {string} props.attributes.isLink Whether the author name should be linked. 7339 * @param {string} props.attributes.linkTarget Target of the link. 7340 * @param {string} props.attributes.textAlign Text alignment. 7341 * @param {Object} props.context Inherited context. 7342 * @param {string} props.context.commentId The comment ID. 7343 * 7344 * @return {JSX.Element} React element. 7345 */ 7346 7347 function edit_Edit(_ref) { 7348 let { 7349 attributes: { 7350 isLink, 7351 linkTarget, 7352 textAlign 7353 }, 7354 context: { 7355 commentId 7356 }, 7357 setAttributes 7358 } = _ref; 7359 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 7360 className: classnames_default()({ 7361 [`has-text-align-$textAlign}`]: textAlign 7362 }) 7363 }); 7364 const displayName = (0,external_wp_data_namespaceObject.useSelect)(select => { 7365 const { 7366 getEntityRecord 7367 } = select(external_wp_coreData_namespaceObject.store); 7368 const comment = getEntityRecord('root', 'comment', commentId); 7369 const authorName = comment === null || comment === void 0 ? void 0 : comment.author_name; // eslint-disable-line camelcase 7370 7371 if (comment && !authorName) { 7372 var _user$name; 7373 7374 const user = getEntityRecord('root', 'user', comment.author); 7375 return (_user$name = user === null || user === void 0 ? void 0 : user.name) !== null && _user$name !== void 0 ? _user$name : (0,external_wp_i18n_namespaceObject.__)('Anonymous'); 7376 } 7377 7378 return authorName !== null && authorName !== void 0 ? authorName : ''; 7379 }, [commentId]); 7380 const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 7381 group: "block" 7382 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 7383 value: textAlign, 7384 onChange: newAlign => setAttributes({ 7385 textAlign: newAlign 7386 }) 7387 })); 7388 const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 7389 title: (0,external_wp_i18n_namespaceObject.__)('Link settings') 7390 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 7391 label: (0,external_wp_i18n_namespaceObject.__)('Link to authors URL'), 7392 onChange: () => setAttributes({ 7393 isLink: !isLink 7394 }), 7395 checked: isLink 7396 }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 7397 label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'), 7398 onChange: value => setAttributes({ 7399 linkTarget: value ? '_blank' : '_self' 7400 }), 7401 checked: linkTarget === '_blank' 7402 }))); 7403 7404 if (!commentId || !displayName) { 7405 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, blockControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject._x)('Comment Author', 'block title')))); 7406 } 7407 7408 const displayAuthor = isLink ? (0,external_wp_element_namespaceObject.createElement)("a", { 7409 href: "#comment-author-pseudo-link", 7410 onClick: event => event.preventDefault() 7411 }, displayName) : (0,external_wp_element_namespaceObject.createElement)("p", null, displayName); 7412 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, blockControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, displayAuthor)); 7413 } 7414 7415 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/deprecated.js 7416 /** 7417 * Internal dependencies 7418 */ 7419 7420 const v1 = { 7421 attributes: { 7422 isLink: { 7423 type: 'boolean', 7424 default: false 7425 }, 7426 linkTarget: { 7427 type: 'string', 7428 default: '_self' 7429 } 7430 }, 7431 supports: { 7432 html: false, 7433 color: { 7434 gradients: true, 7435 link: true 7436 }, 7437 typography: { 7438 fontSize: true, 7439 lineHeight: true, 7440 __experimentalFontFamily: true, 7441 __experimentalFontWeight: true, 7442 __experimentalFontStyle: true, 7443 __experimentalTextTransform: true, 7444 __experimentalLetterSpacing: true 7445 } 7446 }, 7447 7448 save() { 7449 return null; 7450 }, 7451 7452 migrate: migrate_font_family, 7453 7454 isEligible(_ref) { 7455 var _style$typography; 7456 7457 let { 7458 style 7459 } = _ref; 7460 return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily; 7461 } 7462 7463 }; 7464 /** 7465 * New deprecations need to be placed first 7466 * for them to have higher priority. 7467 * 7468 * Old deprecations may need to be updated as well. 7469 * 7470 * See block-deprecation.md 7471 */ 7472 7473 /* harmony default export */ var comment_author_name_deprecated = ([v1]); 7474 7475 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-author-name/index.js 7476 /** 7477 * WordPress dependencies 7478 */ 7479 7480 /** 7481 * Internal dependencies 7482 */ 7483 7484 const comment_author_name_metadata = { 7485 $schema: "https://schemas.wp.org/trunk/block.json", 7486 apiVersion: 2, 7487 name: "core/comment-author-name", 7488 title: "Comment Author Name", 7489 category: "theme", 7490 ancestor: ["core/comment-template"], 7491 description: "Displays the name of the author of the comment.", 7492 textdomain: "default", 7493 attributes: { 7494 isLink: { 7495 type: "boolean", 7496 "default": true 7497 }, 7498 linkTarget: { 7499 type: "string", 7500 "default": "_self" 7501 }, 7502 textAlign: { 7503 type: "string" 7504 }, 7505 fontSize: { 7506 type: "string", 7507 "default": "small" 7508 } 7509 }, 7510 usesContext: ["commentId"], 7511 supports: { 7512 html: false, 7513 spacing: { 7514 margin: true, 7515 padding: true 7516 }, 7517 color: { 7518 gradients: true, 7519 link: true, 7520 __experimentalDefaultControls: { 7521 background: true, 7522 text: true, 7523 link: true 7524 } 7525 }, 7526 typography: { 7527 fontSize: true, 7528 lineHeight: true, 7529 __experimentalFontFamily: true, 7530 __experimentalFontWeight: true, 7531 __experimentalFontStyle: true, 7532 __experimentalTextTransform: true, 7533 __experimentalLetterSpacing: true 7534 } 7535 } 7536 }; 7537 7538 7539 const { 7540 name: comment_author_name_name 7541 } = comment_author_name_metadata; 7542 7543 const comment_author_name_settings = { 7544 icon: comment_author_name, 7545 edit: edit_Edit, 7546 deprecated: comment_author_name_deprecated 7547 }; 7548 7549 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-content.js 7550 7551 7552 /** 7553 * WordPress dependencies 7554 */ 7555 7556 const commentContent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 7557 viewBox: "0 0 24 24", 7558 xmlns: "http://www.w3.org/2000/svg" 7559 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 7560 fillRule: "evenodd", 7561 clipRule: "evenodd", 7562 d: "M6.68822 16.625L5.5 17.8145L5.5 5.5L18.5 5.5L18.5 16.625L6.68822 16.625ZM7.31 18.125L19 18.125C19.5523 18.125 20 17.6773 20 17.125L20 5C20 4.44772 19.5523 4 19 4H5C4.44772 4 4 4.44772 4 5V19.5247C4 19.8173 4.16123 20.086 4.41935 20.2237C4.72711 20.3878 5.10601 20.3313 5.35252 20.0845L7.31 18.125ZM16 9.99997H8V8.49997H16V9.99997ZM8 14H13V12.5H8V14Z" 7563 })); 7564 /* harmony default export */ var comment_content = (commentContent); 7565 7566 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-content/edit.js 7567 7568 7569 /** 7570 * External dependencies 7571 */ 7572 7573 /** 7574 * WordPress dependencies 7575 */ 7576 7577 7578 7579 7580 7581 7582 /** 7583 * Renders the `core/comment-content` block on the editor. 7584 * 7585 * @param {Object} props React props. 7586 * @param {Object} props.setAttributes Callback for updating block attributes. 7587 * @param {Object} props.attributes Block attributes. 7588 * @param {string} props.attributes.textAlign The `textAlign` attribute. 7589 * @param {Object} props.context Inherited context. 7590 * @param {string} props.context.commentId The comment ID. 7591 * 7592 * @return {JSX.Element} React element. 7593 */ 7594 7595 function comment_content_edit_Edit(_ref) { 7596 let { 7597 setAttributes, 7598 attributes: { 7599 textAlign 7600 }, 7601 context: { 7602 commentId 7603 } 7604 } = _ref; 7605 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 7606 className: classnames_default()({ 7607 [`has-text-align-$textAlign}`]: textAlign 7608 }) 7609 }); 7610 const [content] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'content', commentId); 7611 const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 7612 group: "block" 7613 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 7614 value: textAlign, 7615 onChange: newAlign => setAttributes({ 7616 textAlign: newAlign 7617 }) 7618 })); 7619 7620 if (!commentId || !content) { 7621 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject._x)('Comment Content', 'block title')))); 7622 } 7623 7624 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, { 7625 key: "html" 7626 }, content.rendered)))); 7627 } 7628 7629 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-content/index.js 7630 /** 7631 * WordPress dependencies 7632 */ 7633 7634 /** 7635 * Internal dependencies 7636 */ 7637 7638 const comment_content_metadata = { 7639 $schema: "https://schemas.wp.org/trunk/block.json", 7640 apiVersion: 2, 7641 name: "core/comment-content", 7642 title: "Comment Content", 7643 category: "theme", 7644 ancestor: ["core/comment-template"], 7645 description: "Displays the contents of a comment.", 7646 textdomain: "default", 7647 usesContext: ["commentId"], 7648 attributes: { 7649 textAlign: { 7650 type: "string" 7651 } 7652 }, 7653 supports: { 7654 color: { 7655 gradients: true, 7656 link: true, 7657 __experimentalDefaultControls: { 7658 background: true, 7659 text: true 7660 } 7661 }, 7662 typography: { 7663 fontSize: true, 7664 lineHeight: true, 7665 __experimentalFontFamily: true, 7666 __experimentalFontWeight: true, 7667 __experimentalFontStyle: true, 7668 __experimentalTextTransform: true, 7669 __experimentalLetterSpacing: true 7670 }, 7671 spacing: { 7672 padding: ["horizontal", "vertical"], 7673 __experimentalDefaultControls: { 7674 padding: true 7675 } 7676 }, 7677 html: false 7678 } 7679 }; 7680 7681 const { 7682 name: comment_content_name 7683 } = comment_content_metadata; 7684 7685 const comment_content_settings = { 7686 icon: comment_content, 7687 edit: comment_content_edit_Edit 7688 }; 7689 7690 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-date.js 7691 7692 7693 /** 7694 * WordPress dependencies 7695 */ 7696 7697 const postDate = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 7698 xmlns: "http://www.w3.org/2000/svg", 7699 viewBox: "0 0 24 24" 7700 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 7701 d: "M11.696 13.972c.356-.546.599-.958.728-1.235a1.79 1.79 0 00.203-.783c0-.264-.077-.47-.23-.618-.148-.153-.354-.23-.618-.23-.295 0-.569.07-.82.212a3.413 3.413 0 00-.738.571l-.147-1.188c.289-.234.59-.41.903-.526.313-.117.66-.175 1.041-.175.375 0 .695.08.959.24.264.153.46.362.59.626.135.265.203.556.203.876 0 .362-.08.734-.24 1.115-.154.381-.427.87-.82 1.466l-.756 1.152H14v1.106h-4l1.696-2.609z" 7702 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 7703 d: "M19.5 7h-15v12a.5.5 0 00.5.5h14a.5.5 0 00.5-.5V7zM3 7V5a2 2 0 012-2h14a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V7z" 7704 })); 7705 /* harmony default export */ var post_date = (postDate); 7706 7707 ;// CONCATENATED MODULE: external ["wp","date"] 7708 var external_wp_date_namespaceObject = window["wp"]["date"]; 7709 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/edit.js 7710 7711 7712 /** 7713 * WordPress dependencies 7714 */ 7715 7716 7717 7718 7719 7720 /** 7721 * Renders the `core/comment-date` block on the editor. 7722 * 7723 * @param {Object} props React props. 7724 * @param {Object} props.setAttributes Callback for updating block attributes. 7725 * @param {Object} props.attributes Block attributes. 7726 * @param {string} props.attributes.format Format of the date. 7727 * @param {string} props.attributes.isLink Whether the author name should be linked. 7728 * @param {Object} props.context Inherited context. 7729 * @param {string} props.context.commentId The comment ID. 7730 * 7731 * @return {JSX.Element} React element. 7732 */ 7733 7734 function comment_date_edit_Edit(_ref) { 7735 let { 7736 attributes: { 7737 format, 7738 isLink 7739 }, 7740 context: { 7741 commentId 7742 }, 7743 setAttributes 7744 } = _ref; 7745 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 7746 const [date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'date', commentId); 7747 const [siteFormat = (0,external_wp_date_namespaceObject.__experimentalGetSettings)().formats.date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'date_format'); 7748 const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 7749 title: (0,external_wp_i18n_namespaceObject.__)('Settings') 7750 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalDateFormatPicker, { 7751 format: format, 7752 defaultFormat: siteFormat, 7753 onChange: nextFormat => setAttributes({ 7754 format: nextFormat 7755 }) 7756 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 7757 label: (0,external_wp_i18n_namespaceObject.__)('Link to comment'), 7758 onChange: () => setAttributes({ 7759 isLink: !isLink 7760 }), 7761 checked: isLink 7762 }))); 7763 7764 if (!commentId || !date) { 7765 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject._x)('Comment Date', 'block title')))); 7766 } 7767 7768 let commentDate = (0,external_wp_element_namespaceObject.createElement)("time", { 7769 dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date) 7770 }, (0,external_wp_date_namespaceObject.dateI18n)(format || siteFormat, date)); 7771 7772 if (isLink) { 7773 commentDate = (0,external_wp_element_namespaceObject.createElement)("a", { 7774 href: "#comment-date-pseudo-link", 7775 onClick: event => event.preventDefault() 7776 }, commentDate); 7777 } 7778 7779 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, commentDate)); 7780 } 7781 7782 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/deprecated.js 7783 /** 7784 * Internal dependencies 7785 */ 7786 7787 const deprecated_v1 = { 7788 attributes: { 7789 format: { 7790 type: 'string' 7791 }, 7792 isLink: { 7793 type: 'boolean', 7794 default: false 7795 } 7796 }, 7797 supports: { 7798 html: false, 7799 color: { 7800 gradients: true, 7801 link: true 7802 }, 7803 typography: { 7804 fontSize: true, 7805 lineHeight: true, 7806 __experimentalFontFamily: true, 7807 __experimentalFontWeight: true, 7808 __experimentalFontStyle: true, 7809 __experimentalTextTransform: true, 7810 __experimentalLetterSpacing: true 7811 } 7812 }, 7813 7814 save() { 7815 return null; 7816 }, 7817 7818 migrate: migrate_font_family, 7819 7820 isEligible(_ref) { 7821 var _style$typography; 7822 7823 let { 7824 style 7825 } = _ref; 7826 return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily; 7827 } 7828 7829 }; 7830 /** 7831 * New deprecations need to be placed first 7832 * for them to have higher priority. 7833 * 7834 * Old deprecations may need to be updated as well. 7835 * 7836 * See block-deprecation.md 7837 */ 7838 7839 /* harmony default export */ var comment_date_deprecated = ([deprecated_v1]); 7840 7841 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-date/index.js 7842 /** 7843 * WordPress dependencies 7844 */ 7845 7846 /** 7847 * Internal dependencies 7848 */ 7849 7850 const comment_date_metadata = { 7851 $schema: "https://schemas.wp.org/trunk/block.json", 7852 apiVersion: 2, 7853 name: "core/comment-date", 7854 title: "Comment Date", 7855 category: "theme", 7856 ancestor: ["core/comment-template"], 7857 description: "Displays the date on which the comment was posted.", 7858 textdomain: "default", 7859 attributes: { 7860 format: { 7861 type: "string" 7862 }, 7863 isLink: { 7864 type: "boolean", 7865 "default": true 7866 }, 7867 fontSize: { 7868 type: "string", 7869 "default": "small" 7870 } 7871 }, 7872 usesContext: ["commentId"], 7873 supports: { 7874 html: false, 7875 color: { 7876 gradients: true, 7877 link: true, 7878 __experimentalDefaultControls: { 7879 background: true, 7880 text: true, 7881 link: true 7882 } 7883 }, 7884 typography: { 7885 fontSize: true, 7886 lineHeight: true, 7887 __experimentalFontFamily: true, 7888 __experimentalFontWeight: true, 7889 __experimentalFontStyle: true, 7890 __experimentalTextTransform: true, 7891 __experimentalLetterSpacing: true, 7892 __experimentalDefaultControls: { 7893 fontSize: true 7894 } 7895 } 7896 } 7897 }; 7898 7899 7900 const { 7901 name: comment_date_name 7902 } = comment_date_metadata; 7903 7904 const comment_date_settings = { 7905 icon: post_date, 7906 edit: comment_date_edit_Edit, 7907 deprecated: comment_date_deprecated 7908 }; 7909 7910 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-edit-link.js 7911 7912 7913 /** 7914 * WordPress dependencies 7915 */ 7916 7917 const commentEditLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 7918 width: "24", 7919 height: "24", 7920 viewBox: "0 0 24 24", 7921 xmlns: "http://www.w3.org/2000/svg" 7922 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 7923 d: "m6.249 11.065.44-.44h3.186l-1.5 1.5H7.31l-1.957 1.96A.792.792 0 0 1 4 13.524V5a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v1.5L12.5 8V5.5h-7v6.315l.749-.75ZM20 19.75H7v-1.5h13v1.5Zm0-12.653-8.967 9.064L8 17l.867-2.935L17.833 5 20 7.097Z" 7924 })); 7925 /* harmony default export */ var comment_edit_link = (commentEditLink); 7926 7927 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/edit.js 7928 7929 7930 /** 7931 * External dependencies 7932 */ 7933 7934 /** 7935 * WordPress dependencies 7936 */ 7937 7938 7939 7940 7941 function comment_edit_link_edit_Edit(_ref) { 7942 let { 7943 attributes: { 7944 linkTarget, 7945 textAlign 7946 }, 7947 setAttributes 7948 } = _ref; 7949 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 7950 className: classnames_default()({ 7951 [`has-text-align-$textAlign}`]: textAlign 7952 }) 7953 }); 7954 const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 7955 group: "block" 7956 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 7957 value: textAlign, 7958 onChange: newAlign => setAttributes({ 7959 textAlign: newAlign 7960 }) 7961 })); 7962 const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 7963 title: (0,external_wp_i18n_namespaceObject.__)('Link settings') 7964 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 7965 label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'), 7966 onChange: value => setAttributes({ 7967 linkTarget: value ? '_blank' : '_self' 7968 }), 7969 checked: linkTarget === '_blank' 7970 }))); 7971 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockControls, inspectorControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("a", { 7972 href: "#edit-comment-pseudo-link", 7973 onClick: event => event.preventDefault() 7974 }, (0,external_wp_i18n_namespaceObject.__)('Edit')))); 7975 } 7976 7977 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-edit-link/index.js 7978 /** 7979 * WordPress dependencies 7980 */ 7981 7982 /** 7983 * Internal dependencies 7984 */ 7985 7986 const comment_edit_link_metadata = { 7987 $schema: "https://schemas.wp.org/trunk/block.json", 7988 apiVersion: 2, 7989 name: "core/comment-edit-link", 7990 title: "Comment Edit Link", 7991 category: "theme", 7992 ancestor: ["core/comment-template"], 7993 description: "Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.", 7994 textdomain: "default", 7995 usesContext: ["commentId"], 7996 attributes: { 7997 linkTarget: { 7998 type: "string", 7999 "default": "_self" 8000 }, 8001 textAlign: { 8002 type: "string" 8003 }, 8004 fontSize: { 8005 type: "string", 8006 "default": "small" 8007 } 8008 }, 8009 supports: { 8010 html: false, 8011 color: { 8012 link: true, 8013 gradients: true, 8014 text: false, 8015 __experimentalDefaultControls: { 8016 background: true, 8017 link: true 8018 } 8019 }, 8020 typography: { 8021 fontSize: true, 8022 lineHeight: true, 8023 __experimentalFontFamily: true, 8024 __experimentalFontWeight: true, 8025 __experimentalFontStyle: true, 8026 __experimentalTextTransform: true, 8027 __experimentalLetterSpacing: true 8028 } 8029 } 8030 }; 8031 8032 const { 8033 name: comment_edit_link_name 8034 } = comment_edit_link_metadata; 8035 8036 const comment_edit_link_settings = { 8037 icon: comment_edit_link, 8038 edit: comment_edit_link_edit_Edit 8039 }; 8040 8041 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-reply-link.js 8042 8043 8044 /** 8045 * WordPress dependencies 8046 */ 8047 8048 const commentReplyLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 8049 width: "24", 8050 height: "24", 8051 viewBox: "0 0 24 24", 8052 xmlns: "http://www.w3.org/2000/svg" 8053 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 8054 d: "M6.68822 10.625L6.24878 11.0649L5.5 11.8145L5.5 5.5L12.5 5.5V8L14 6.5V5C14 4.44772 13.5523 4 13 4H5C4.44772 4 4 4.44771 4 5V13.5247C4 13.8173 4.16123 14.086 4.41935 14.2237C4.72711 14.3878 5.10601 14.3313 5.35252 14.0845L7.31 12.125H8.375L9.875 10.625H7.31H6.68822ZM14.5605 10.4983L11.6701 13.75H16.9975C17.9963 13.75 18.7796 14.1104 19.3553 14.7048C19.9095 15.2771 20.2299 16.0224 20.4224 16.7443C20.7645 18.0276 20.7543 19.4618 20.7487 20.2544C20.7481 20.345 20.7475 20.4272 20.7475 20.4999L19.2475 20.5001C19.2475 20.4191 19.248 20.3319 19.2484 20.2394V20.2394C19.2526 19.4274 19.259 18.2035 18.973 17.1307C18.8156 16.5401 18.586 16.0666 18.2778 15.7483C17.9909 15.4521 17.5991 15.25 16.9975 15.25H11.8106L14.5303 17.9697L13.4696 19.0303L8.96956 14.5303L13.4394 9.50171L14.5605 10.4983Z" 8055 })); 8056 /* harmony default export */ var comment_reply_link = (commentReplyLink); 8057 8058 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/edit.js 8059 8060 8061 /** 8062 * External dependencies 8063 */ 8064 8065 /** 8066 * WordPress dependencies 8067 */ 8068 8069 8070 8071 /** 8072 * Renders the `core/comment-reply-link` block on the editor. 8073 * 8074 * @param {Object} props React props. 8075 * @param {Object} props.setAttributes Callback for updating block attributes. 8076 * @param {Object} props.attributes Block attributes. 8077 * @param {string} props.attributes.textAlign The `textAlign` attribute. 8078 * 8079 * @return {JSX.Element} React element. 8080 */ 8081 8082 function comment_reply_link_edit_Edit(_ref) { 8083 let { 8084 setAttributes, 8085 attributes: { 8086 textAlign 8087 } 8088 } = _ref; 8089 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 8090 className: classnames_default()({ 8091 [`has-text-align-$textAlign}`]: textAlign 8092 }) 8093 }); 8094 const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 8095 group: "block" 8096 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 8097 value: textAlign, 8098 onChange: newAlign => setAttributes({ 8099 textAlign: newAlign 8100 }) 8101 })); 8102 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockControls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("a", { 8103 href: "#comment-reply-pseudo-link", 8104 onClick: event => event.preventDefault() 8105 }, (0,external_wp_i18n_namespaceObject.__)('Reply')))); 8106 } 8107 8108 /* harmony default export */ var comment_reply_link_edit = (comment_reply_link_edit_Edit); 8109 8110 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-reply-link/index.js 8111 /** 8112 * WordPress dependencies 8113 */ 8114 8115 /** 8116 * Internal dependencies 8117 */ 8118 8119 const comment_reply_link_metadata = { 8120 $schema: "https://schemas.wp.org/trunk/block.json", 8121 apiVersion: 2, 8122 name: "core/comment-reply-link", 8123 title: "Comment Reply Link", 8124 category: "theme", 8125 ancestor: ["core/comment-template"], 8126 description: "Displays a link to reply to a comment.", 8127 textdomain: "default", 8128 usesContext: ["commentId"], 8129 attributes: { 8130 textAlign: { 8131 type: "string" 8132 }, 8133 fontSize: { 8134 type: "string", 8135 "default": "small" 8136 } 8137 }, 8138 supports: { 8139 color: { 8140 gradients: true, 8141 link: true, 8142 text: false, 8143 __experimentalDefaultControls: { 8144 background: true, 8145 link: true 8146 } 8147 }, 8148 typography: { 8149 fontSize: true, 8150 lineHeight: true, 8151 __experimentalFontFamily: true, 8152 __experimentalFontWeight: true, 8153 __experimentalFontStyle: true, 8154 __experimentalTextTransform: true, 8155 __experimentalLetterSpacing: true 8156 }, 8157 html: false 8158 } 8159 }; 8160 8161 const { 8162 name: comment_reply_link_name 8163 } = comment_reply_link_metadata; 8164 8165 const comment_reply_link_settings = { 8166 edit: comment_reply_link_edit, 8167 icon: comment_reply_link 8168 }; 8169 8170 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/layout.js 8171 8172 8173 /** 8174 * WordPress dependencies 8175 */ 8176 8177 const layout = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 8178 xmlns: "http://www.w3.org/2000/svg", 8179 viewBox: "0 0 24 24" 8180 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 8181 d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" 8182 })); 8183 /* harmony default export */ var library_layout = (layout); 8184 8185 ;// CONCATENATED MODULE: external ["wp","apiFetch"] 8186 var external_wp_apiFetch_namespaceObject = window["wp"]["apiFetch"]; 8187 var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_namespaceObject); 8188 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/hooks.js 8189 /** 8190 * WordPress dependencies 8191 */ 8192 8193 8194 8195 8196 // This is limited by WP REST API 8197 8198 const MAX_COMMENTS_PER_PAGE = 100; 8199 /** 8200 * Return an object with the query args needed to fetch the default page of 8201 * comments. 8202 * 8203 * @param {Object} props Hook props. 8204 * @param {number} props.postId ID of the post that contains the comments. 8205 * discussion settings. 8206 * 8207 * @return {Object} Query args to retrieve the comments. 8208 */ 8209 8210 const useCommentQueryArgs = _ref => { 8211 let { 8212 postId 8213 } = _ref; 8214 // Initialize the query args that are not going to change. 8215 const queryArgs = { 8216 status: 'approve', 8217 order: 'asc', 8218 context: 'embed', 8219 parent: 0, 8220 _embed: 'children' 8221 }; // Get the Discussion settings that may be needed to query the comments. 8222 8223 const { 8224 pageComments, 8225 commentsPerPage, 8226 defaultCommentsPage: defaultPage 8227 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 8228 const { 8229 getSettings 8230 } = select(external_wp_blockEditor_namespaceObject.store); 8231 const { 8232 __experimentalDiscussionSettings 8233 } = getSettings(); 8234 return __experimentalDiscussionSettings; 8235 }); // WP REST API doesn't allow fetching more than max items limit set per single page of data. 8236 // As for the editor performance is more important than completeness of data and fetching only the 8237 // max allowed for single page should be enough for the purpose of design and laying out the page. 8238 // Fetching over the limit would return an error here but would work with backend query. 8239 8240 const perPage = pageComments ? Math.min(commentsPerPage, MAX_COMMENTS_PER_PAGE) : MAX_COMMENTS_PER_PAGE; // Get the number of the default page. 8241 8242 const page = useDefaultPageIndex({ 8243 defaultPage, 8244 postId, 8245 perPage, 8246 queryArgs 8247 }); // Merge, memoize and return all query arguments, unless the default page's 8248 // number is not known yet. 8249 8250 return (0,external_wp_element_namespaceObject.useMemo)(() => { 8251 return page ? { ...queryArgs, 8252 post: postId, 8253 per_page: perPage, 8254 page 8255 } : null; 8256 }, [postId, perPage, page]); 8257 }; 8258 /** 8259 * Return the index of the default page, depending on whether `defaultPage` is 8260 * `newest` or `oldest`. In the first case, the only way to know the page's 8261 * index is by using the `X-WP-TotalPages` header, which forces to make an 8262 * additional request. 8263 * 8264 * @param {Object} props Hook props. 8265 * @param {string} props.defaultPage Page shown by default (newest/oldest). 8266 * @param {number} props.postId ID of the post that contains the comments. 8267 * @param {number} props.perPage The number of comments included per page. 8268 * @param {Object} props.queryArgs Other query args. 8269 * 8270 * @return {number} Index of the default comments page. 8271 */ 8272 8273 const useDefaultPageIndex = _ref2 => { 8274 let { 8275 defaultPage, 8276 postId, 8277 perPage, 8278 queryArgs 8279 } = _ref2; 8280 // Store the default page indices. 8281 const [defaultPages, setDefaultPages] = (0,external_wp_element_namespaceObject.useState)({}); 8282 const key = `$postId}_$perPage}`; 8283 const page = defaultPages[key] || 0; 8284 (0,external_wp_element_namespaceObject.useEffect)(() => { 8285 // Do nothing if the page is already known or not the newest page. 8286 if (page || defaultPage !== 'newest') { 8287 return; 8288 } // We need to fetch comments to know the index. Use HEAD and limit 8289 // fields just to ID, to make this call as light as possible. 8290 8291 8292 external_wp_apiFetch_default()({ 8293 path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', { ...queryArgs, 8294 post: postId, 8295 per_page: perPage, 8296 _fields: 'id' 8297 }), 8298 method: 'HEAD', 8299 parse: false 8300 }).then(res => { 8301 const pages = parseInt(res.headers.get('X-WP-TotalPages')); 8302 setDefaultPages({ ...defaultPages, 8303 [key]: pages <= 1 ? 1 : pages // If there are 0 pages, it means that there are no comments, but there is no 0th page. 8304 8305 }); 8306 }); 8307 }, [defaultPage, postId, perPage, setDefaultPages]); // The oldest one is always the first one. 8308 8309 return defaultPage === 'newest' ? page : 1; 8310 }; 8311 /** 8312 * Generate a tree structure of comment IDs from a list of comment entities. The 8313 * children of each comment are obtained from `_embedded`. 8314 * 8315 * @typedef {{ commentId: number, children: CommentNode }} CommentNode 8316 * 8317 * @param {Object[]} topLevelComments List of comment entities. 8318 * @return {{ commentTree: CommentNode[]}} Tree of comment IDs. 8319 */ 8320 8321 8322 const useCommentTree = topLevelComments => { 8323 const commentTree = (0,external_wp_element_namespaceObject.useMemo)(() => topLevelComments === null || topLevelComments === void 0 ? void 0 : topLevelComments.map(_ref3 => { 8324 let { 8325 id, 8326 _embedded 8327 } = _ref3; 8328 const [children] = (_embedded === null || _embedded === void 0 ? void 0 : _embedded.children) || [[]]; 8329 return { 8330 commentId: id, 8331 children: children.map(child => ({ 8332 commentId: child.id 8333 })) 8334 }; 8335 }), [topLevelComments]); 8336 return commentTree; 8337 }; 8338 8339 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/edit.js 8340 8341 8342 8343 /** 8344 * WordPress dependencies 8345 */ 8346 8347 8348 8349 8350 8351 8352 /** 8353 * Internal dependencies 8354 */ 8355 8356 8357 const TEMPLATE = [['core/avatar'], ['core/comment-author-name'], ['core/comment-date'], ['core/comment-content'], ['core/comment-reply-link'], ['core/comment-edit-link']]; 8358 /** 8359 * Function that returns a comment structure that will be rendered with default placehoders. 8360 * 8361 * Each comment has a `commentId` property that is always a negative number in 8362 * case of the placeholders. This is to ensure that the comment does not 8363 * conflict with the actual (real) comments. 8364 * 8365 * @param {Object} settings Discussion Settings. 8366 * @param {number} [settings.perPage] - Comments per page setting or block attribute. 8367 * @param {boolean} [settings.threadComments] - Enable threaded (nested) comments setting. 8368 * @param {number} [settings.threadCommentsDepth] - Level deep of threaded comments. 8369 * 8370 * @typedef {{id: null, children: EmptyComment[]}} EmptyComment 8371 * @return {EmptyComment[]} Inner blocks of the Comment Template 8372 */ 8373 8374 const getCommentsPlaceholder = _ref => { 8375 let { 8376 perPage, 8377 threadComments, 8378 threadCommentsDepth 8379 } = _ref; 8380 // In case that `threadCommentsDepth` is falsy, we default to a somewhat 8381 // arbitrary value of 3. 8382 // In case that the value is set but larger than 3 we truncate it to 3. 8383 const commentsDepth = Math.min(threadCommentsDepth || 3, 3); // We set a limit in order not to overload the editor of empty comments. 8384 8385 const defaultCommentsToShow = perPage <= commentsDepth ? perPage : commentsDepth; 8386 8387 if (!threadComments || defaultCommentsToShow === 1) { 8388 // If displaying threaded comments is disabled, we only show one comment 8389 // A commentId is negative in order to avoid conflicts with the actual comments. 8390 return [{ 8391 commentId: -1, 8392 children: [] 8393 }]; 8394 } else if (defaultCommentsToShow === 2) { 8395 return [{ 8396 commentId: -1, 8397 children: [{ 8398 commentId: -2, 8399 children: [] 8400 }] 8401 }]; 8402 } // In case that the value is set but larger than 3 we truncate it to 3. 8403 8404 8405 return [{ 8406 commentId: -1, 8407 children: [{ 8408 commentId: -2, 8409 children: [{ 8410 commentId: -3, 8411 children: [] 8412 }] 8413 }] 8414 }]; 8415 }; 8416 /** 8417 * Component which renders the inner blocks of the Comment Template. 8418 * 8419 * @param {Object} props Component props. 8420 * @param {Array} [props.comment] - A comment object. 8421 * @param {Array} [props.activeCommentId] - The ID of the comment that is currently active. 8422 * @param {Array} [props.setActiveCommentId] - The setter for activeCommentId. 8423 * @param {Array} [props.firstCommentId] - ID of the first comment in the array. 8424 * @param {Array} [props.blocks] - Array of blocks returned from 8425 * getBlocks() in parent . 8426 * @return {WPElement} Inner blocks of the Comment Template 8427 */ 8428 8429 8430 function CommentTemplateInnerBlocks(_ref2) { 8431 var _comment$children; 8432 8433 let { 8434 comment, 8435 activeCommentId, 8436 setActiveCommentId, 8437 firstCommentId, 8438 blocks 8439 } = _ref2; 8440 const { 8441 children, 8442 ...innerBlocksProps 8443 } = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({}, { 8444 template: TEMPLATE 8445 }); 8446 return (0,external_wp_element_namespaceObject.createElement)("li", innerBlocksProps, comment.commentId === (activeCommentId || firstCommentId) ? children : null, (0,external_wp_element_namespaceObject.createElement)(MemoizedCommentTemplatePreview, { 8447 blocks: blocks, 8448 commentId: comment.commentId, 8449 setActiveCommentId: setActiveCommentId, 8450 isHidden: comment.commentId === (activeCommentId || firstCommentId) 8451 }), (comment === null || comment === void 0 ? void 0 : (_comment$children = comment.children) === null || _comment$children === void 0 ? void 0 : _comment$children.length) > 0 ? (0,external_wp_element_namespaceObject.createElement)(CommentsList, { 8452 comments: comment.children, 8453 activeCommentId: activeCommentId, 8454 setActiveCommentId: setActiveCommentId, 8455 blocks: blocks, 8456 firstCommentId: firstCommentId 8457 }) : null); 8458 } 8459 8460 const CommentTemplatePreview = _ref3 => { 8461 let { 8462 blocks, 8463 commentId, 8464 setActiveCommentId, 8465 isHidden 8466 } = _ref3; 8467 const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({ 8468 blocks 8469 }); 8470 8471 const handleOnClick = () => { 8472 setActiveCommentId(commentId); 8473 }; // We have to hide the preview block if the `comment` props points to 8474 // the curently active block! 8475 // Or, to put it differently, every preview block is visible unless it is the 8476 // currently active block - in this case we render its inner blocks. 8477 8478 8479 const style = { 8480 display: isHidden ? 'none' : undefined 8481 }; 8482 return (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockPreviewProps, { 8483 tabIndex: 0, 8484 role: "button", 8485 style: style // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role 8486 , 8487 onClick: handleOnClick, 8488 onKeyPress: handleOnClick 8489 })); 8490 }; 8491 8492 const MemoizedCommentTemplatePreview = (0,external_wp_element_namespaceObject.memo)(CommentTemplatePreview); 8493 /** 8494 * Component that renders a list of (nested) comments. It is called recursively. 8495 * 8496 * @param {Object} props Component props. 8497 * @param {Array} [props.comments] - Array of comment objects. 8498 * @param {Array} [props.blockProps] - Props from parent's `useBlockProps()`. 8499 * @param {Array} [props.activeCommentId] - The ID of the comment that is currently active. 8500 * @param {Array} [props.setActiveCommentId] - The setter for activeCommentId. 8501 * @param {Array} [props.blocks] - Array of blocks returned from getBlocks() in parent. 8502 * @param {Object} [props.firstCommentId] - The ID of the first comment in the array of 8503 * comment objects. 8504 * @return {WPElement} List of comments. 8505 */ 8506 8507 const CommentsList = _ref4 => { 8508 let { 8509 comments, 8510 blockProps, 8511 activeCommentId, 8512 setActiveCommentId, 8513 blocks, 8514 firstCommentId 8515 } = _ref4; 8516 return (0,external_wp_element_namespaceObject.createElement)("ol", blockProps, comments && comments.map((_ref5, index) => { 8517 let { 8518 commentId, 8519 ...comment 8520 } = _ref5; 8521 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockContextProvider, { 8522 key: comment.commentId || index, 8523 value: { 8524 // If the commentId is negative it means that this comment is a 8525 // "placeholder" and that the block is most likely being used in the 8526 // site editor. In this case, we have to set the commentId to `null` 8527 // because otherwise the (non-existent) comment with a negative ID 8528 // would be reqested from the REST API. 8529 commentId: commentId < 0 ? null : commentId 8530 } 8531 }, (0,external_wp_element_namespaceObject.createElement)(CommentTemplateInnerBlocks, { 8532 comment: { 8533 commentId, 8534 ...comment 8535 }, 8536 activeCommentId: activeCommentId, 8537 setActiveCommentId: setActiveCommentId, 8538 blocks: blocks, 8539 firstCommentId: firstCommentId 8540 })); 8541 })); 8542 }; 8543 8544 function CommentTemplateEdit(_ref6) { 8545 var _commentTree$; 8546 8547 let { 8548 clientId, 8549 context: { 8550 postId 8551 } 8552 } = _ref6; 8553 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 8554 const [activeCommentId, setActiveCommentId] = (0,external_wp_element_namespaceObject.useState)(); 8555 const { 8556 commentOrder, 8557 threadCommentsDepth, 8558 threadComments, 8559 commentsPerPage 8560 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 8561 const { 8562 getSettings 8563 } = select(external_wp_blockEditor_namespaceObject.store); 8564 return getSettings().__experimentalDiscussionSettings; 8565 }); 8566 const commentQuery = useCommentQueryArgs({ 8567 postId 8568 }); 8569 const { 8570 topLevelComments, 8571 blocks 8572 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 8573 const { 8574 getEntityRecords 8575 } = select(external_wp_coreData_namespaceObject.store); 8576 const { 8577 getBlocks 8578 } = select(external_wp_blockEditor_namespaceObject.store); 8579 return { 8580 // Request only top-level comments. Replies are embedded. 8581 topLevelComments: commentQuery ? getEntityRecords('root', 'comment', commentQuery) : null, 8582 blocks: getBlocks(clientId) 8583 }; 8584 }, [clientId, commentQuery]); // Generate a tree structure of comment IDs. 8585 8586 let commentTree = useCommentTree( // Reverse the order of top comments if needed. 8587 commentOrder === 'desc' && topLevelComments ? [...topLevelComments].reverse() : topLevelComments); 8588 8589 if (!topLevelComments) { 8590 return (0,external_wp_element_namespaceObject.createElement)("p", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)); 8591 } 8592 8593 if (!postId) { 8594 commentTree = getCommentsPlaceholder({ 8595 perPage: commentsPerPage, 8596 threadComments, 8597 threadCommentsDepth 8598 }); 8599 } 8600 8601 if (!commentTree.length) { 8602 return (0,external_wp_element_namespaceObject.createElement)("p", _extends({}, blockProps, { 8603 "data-testid": "noresults" 8604 }), (0,external_wp_i18n_namespaceObject.__)('No results found.')); 8605 } 8606 8607 return (0,external_wp_element_namespaceObject.createElement)(CommentsList, { 8608 comments: commentTree, 8609 blockProps: blockProps, 8610 blocks: blocks, 8611 activeCommentId: activeCommentId, 8612 setActiveCommentId: setActiveCommentId, 8613 firstCommentId: (_commentTree$ = commentTree[0]) === null || _commentTree$ === void 0 ? void 0 : _commentTree$.commentId 8614 }); 8615 } 8616 8617 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/save.js 8618 8619 8620 /** 8621 * WordPress dependencies 8622 */ 8623 8624 function CommentTemplateSave() { 8625 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 8626 } 8627 8628 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comment-template/index.js 8629 /** 8630 * WordPress dependencies 8631 */ 8632 8633 /** 8634 * Internal dependencies 8635 */ 8636 8637 const comment_template_metadata = { 8638 $schema: "https://schemas.wp.org/trunk/block.json", 8639 apiVersion: 2, 8640 name: "core/comment-template", 8641 title: "Comment Template", 8642 category: "design", 8643 parent: ["core/comments-query-loop"], 8644 description: "Contains the block elements used to display a comment, like the title, date, author, avatar and more.", 8645 textdomain: "default", 8646 usesContext: ["postId"], 8647 supports: { 8648 reusable: false, 8649 html: false, 8650 align: true 8651 }, 8652 style: "wp-block-comment-template" 8653 }; 8654 8655 8656 const { 8657 name: comment_template_name 8658 } = comment_template_metadata; 8659 8660 const comment_template_settings = { 8661 icon: library_layout, 8662 edit: CommentTemplateEdit, 8663 save: CommentTemplateSave 8664 }; 8665 8666 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-previous.js 8667 8668 8669 /** 8670 * WordPress dependencies 8671 */ 8672 8673 const queryPaginationPrevious = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 8674 xmlns: "http://www.w3.org/2000/svg", 8675 viewBox: "0 0 24 24" 8676 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 8677 d: "M16 10.5v3h3v-3h-3zm-5 3h3v-3h-3v3zM7 9l-3 3 3 3 1-1-2-2 2-2-1-1z" 8678 })); 8679 /* harmony default export */ var query_pagination_previous = (queryPaginationPrevious); 8680 8681 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/edit.js 8682 8683 8684 8685 /** 8686 * WordPress dependencies 8687 */ 8688 8689 8690 const arrowMap = { 8691 none: '', 8692 arrow: '←', 8693 chevron: '«' 8694 }; 8695 function CommentsPaginationPreviousEdit(_ref) { 8696 let { 8697 attributes: { 8698 label 8699 }, 8700 setAttributes, 8701 context: { 8702 'comments/paginationArrow': paginationArrow 8703 } 8704 } = _ref; 8705 const displayArrow = arrowMap[paginationArrow]; 8706 return (0,external_wp_element_namespaceObject.createElement)("a", _extends({ 8707 href: "#comments-pagination-previous-pseudo-link", 8708 onClick: event => event.preventDefault() 8709 }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", { 8710 className: `wp-block-comments-pagination-previous-arrow is-arrow-$paginationArrow}` 8711 }, displayArrow), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, { 8712 __experimentalVersion: 2, 8713 tagName: "span", 8714 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Older comments page link'), 8715 placeholder: (0,external_wp_i18n_namespaceObject.__)('Older Comments'), 8716 value: label, 8717 onChange: newLabel => setAttributes({ 8718 label: newLabel 8719 }) 8720 })); 8721 } 8722 8723 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/index.js 8724 /** 8725 * WordPress dependencies 8726 */ 8727 8728 /** 8729 * Internal dependencies 8730 */ 8731 8732 const comments_pagination_previous_metadata = { 8733 $schema: "https://schemas.wp.org/trunk/block.json", 8734 apiVersion: 2, 8735 name: "core/comments-pagination-previous", 8736 title: "Previous Page", 8737 category: "theme", 8738 parent: ["core/comments-pagination"], 8739 description: "Displays the previous comment's page link.", 8740 textdomain: "default", 8741 attributes: { 8742 label: { 8743 type: "string" 8744 } 8745 }, 8746 usesContext: ["postId", "comments/paginationArrow"], 8747 supports: { 8748 reusable: false, 8749 html: false, 8750 color: { 8751 gradients: true, 8752 text: false, 8753 __experimentalDefaultControls: { 8754 background: true 8755 } 8756 }, 8757 typography: { 8758 fontSize: true, 8759 lineHeight: true, 8760 __experimentalFontStyle: true, 8761 __experimentalFontWeight: true, 8762 __experimentalLetterSpacing: true, 8763 __experimentalTextTransform: true, 8764 __experimentalDefaultControls: { 8765 fontSize: true 8766 } 8767 } 8768 } 8769 }; 8770 8771 const { 8772 name: comments_pagination_previous_name 8773 } = comments_pagination_previous_metadata; 8774 8775 const comments_pagination_previous_settings = { 8776 icon: query_pagination_previous, 8777 edit: CommentsPaginationPreviousEdit 8778 }; 8779 8780 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-comments.js 8781 8782 8783 /** 8784 * WordPress dependencies 8785 */ 8786 8787 const postComments = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 8788 xmlns: "http://www.w3.org/2000/svg", 8789 viewBox: "0 0 24 24" 8790 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 8791 d: "M14 10.1V4c0-.6-.4-1-1-1H5c-.6 0-1 .4-1 1v8.3c0 .3.2.7.6.8.1.1.2.1.3.1.2 0 .5-.1.6-.3l1.8-1.8H13c.6 0 1-.4 1-1zm-1.5-.5H6.7l-1.2 1.2V4.5h7v5.1zM19 12h-8c-.6 0-1 .4-1 1v6.1c0 .6.4 1 1 1h5.7l1.8 1.8c.1.2.4.3.6.3.1 0 .2 0 .3-.1.4-.1.6-.5.6-.8V13c0-.6-.4-1-1-1zm-.5 7.8l-1.2-1.2h-5.8v-5.1h7v6.3z" 8792 })); 8793 /* harmony default export */ var post_comments = (postComments); 8794 8795 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/edit/comments-inspector-controls.js 8796 8797 8798 /** 8799 * WordPress dependencies 8800 */ 8801 8802 8803 8804 function CommentsInspectorControls(_ref) { 8805 let { 8806 attributes: { 8807 TagName 8808 }, 8809 setAttributes 8810 } = _ref; 8811 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, { 8812 __experimentalGroup: "advanced" 8813 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 8814 label: (0,external_wp_i18n_namespaceObject.__)('HTML element'), 8815 options: [{ 8816 label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'), 8817 value: 'div' 8818 }, { 8819 label: '<section>', 8820 value: 'section' 8821 }, { 8822 label: '<aside>', 8823 value: 'aside' 8824 }], 8825 value: TagName, 8826 onChange: value => setAttributes({ 8827 tagName: value 8828 }) 8829 }))); 8830 } 8831 8832 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/edit.js 8833 8834 8835 /** 8836 * WordPress dependencies 8837 */ 8838 8839 /** 8840 * Internal dependencies 8841 */ 8842 8843 8844 const edit_TEMPLATE = [['core/comments-title'], ['core/comment-template', {}, [['core/columns', {}, [['core/column', { 8845 width: '40px' 8846 }, [['core/avatar', { 8847 size: 40, 8848 style: { 8849 border: { 8850 radius: '20px' 8851 } 8852 } 8853 }]]], ['core/column', {}, [['core/comment-author-name'], ['core/group', { 8854 layout: { 8855 type: 'flex' 8856 }, 8857 style: { 8858 spacing: { 8859 margin: { 8860 top: '0px', 8861 bottom: '0px' 8862 } 8863 } 8864 } 8865 }, [['core/comment-date'], ['core/comment-edit-link']]], ['core/comment-content'], ['core/comment-reply-link']]]]]]], ['core/comments-pagination'], ['core/post-comments-form']]; 8866 function CommentsQueryLoopEdit(_ref) { 8867 let { 8868 attributes, 8869 setAttributes 8870 } = _ref; 8871 const { 8872 tagName: TagName 8873 } = attributes; 8874 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 8875 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, { 8876 template: edit_TEMPLATE 8877 }); 8878 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(CommentsInspectorControls, { 8879 attributes: attributes, 8880 setAttributes: setAttributes 8881 }), (0,external_wp_element_namespaceObject.createElement)(TagName, innerBlocksProps)); 8882 } 8883 8884 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/save.js 8885 8886 8887 /** 8888 * WordPress dependencies 8889 */ 8890 8891 function CommentsQueryLoopSave(_ref) { 8892 let { 8893 attributes: { 8894 tagName: Tag 8895 } 8896 } = _ref; 8897 return (0,external_wp_element_namespaceObject.createElement)(Tag, external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)); 8898 } 8899 8900 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-query-loop/index.js 8901 /** 8902 * WordPress dependencies 8903 */ 8904 8905 /** 8906 * Internal dependencies 8907 */ 8908 8909 const comments_query_loop_metadata = { 8910 $schema: "https://schemas.wp.org/trunk/block.json", 8911 apiVersion: 2, 8912 name: "core/comments-query-loop", 8913 title: "Comments Query Loop", 8914 category: "theme", 8915 description: "An advanced block that allows displaying post comments using different visual configurations.", 8916 textdomain: "default", 8917 attributes: { 8918 tagName: { 8919 type: "string", 8920 "default": "div" 8921 } 8922 }, 8923 supports: { 8924 align: ["wide", "full"], 8925 html: false, 8926 color: { 8927 gradients: true, 8928 link: true, 8929 __experimentalDefaultControls: { 8930 background: true, 8931 text: true, 8932 link: true 8933 } 8934 } 8935 }, 8936 editorStyle: "wp-block-comments-editor" 8937 }; 8938 8939 8940 const { 8941 name: comments_query_loop_name 8942 } = comments_query_loop_metadata; 8943 8944 const comments_query_loop_settings = { 8945 icon: post_comments, 8946 edit: CommentsQueryLoopEdit, 8947 save: CommentsQueryLoopSave 8948 }; 8949 8950 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination.js 8951 8952 8953 /** 8954 * WordPress dependencies 8955 */ 8956 8957 const queryPagination = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 8958 xmlns: "http://www.w3.org/2000/svg", 8959 viewBox: "0 0 24 24" 8960 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 8961 d: "M4 13.5h6v-3H4v3zm8 0h3v-3h-3v3zm5-3v3h3v-3h-3z" 8962 })); 8963 /* harmony default export */ var query_pagination = (queryPagination); 8964 8965 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/comments-pagination-arrow-controls.js 8966 8967 8968 /** 8969 * WordPress dependencies 8970 */ 8971 8972 8973 function CommentsPaginationArrowControls(_ref) { 8974 let { 8975 value, 8976 onChange 8977 } = _ref; 8978 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { 8979 label: (0,external_wp_i18n_namespaceObject.__)('Arrow'), 8980 value: value, 8981 onChange: onChange, 8982 help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow appended to the next and previous comments link.'), 8983 isBlock: true 8984 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 8985 value: "none", 8986 label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Comments Pagination Next/Previous blocks') 8987 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 8988 value: "arrow", 8989 label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Comments Pagination Next/Previous blocks') 8990 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 8991 value: "chevron", 8992 label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Comments Pagination Next/Previous blocks') 8993 })); 8994 } 8995 8996 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/edit.js 8997 8998 8999 /** 9000 * WordPress dependencies 9001 */ 9002 9003 9004 9005 9006 9007 /** 9008 * Internal dependencies 9009 */ 9010 9011 9012 const comments_pagination_edit_TEMPLATE = [['core/comments-pagination-previous'], ['core/comments-pagination-numbers'], ['core/comments-pagination-next']]; 9013 9014 const getDefaultBlockLayout = blockTypeOrName => { 9015 const layoutBlockSupportConfig = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockTypeOrName, '__experimentalLayout'); 9016 return layoutBlockSupportConfig === null || layoutBlockSupportConfig === void 0 ? void 0 : layoutBlockSupportConfig.default; 9017 }; 9018 9019 function QueryPaginationEdit(_ref) { 9020 let { 9021 attributes: { 9022 paginationArrow, 9023 layout 9024 }, 9025 setAttributes, 9026 clientId, 9027 name 9028 } = _ref; 9029 const usedLayout = layout || getDefaultBlockLayout(name); 9030 const hasNextPreviousBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => { 9031 const { 9032 getBlocks 9033 } = select(external_wp_blockEditor_namespaceObject.store); 9034 const innerBlocks = getBlocks(clientId); 9035 /** 9036 * Show the `paginationArrow` control only if a 9037 * Comments Pagination Next or Comments Pagination Previous 9038 * block exists. 9039 */ 9040 9041 return innerBlocks === null || innerBlocks === void 0 ? void 0 : innerBlocks.find(innerBlock => { 9042 return ['core/comments-pagination-previous', 'core/comments-pagination-next'].includes(innerBlock.name); 9043 }); 9044 }, []); 9045 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 9046 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, { 9047 template: comments_pagination_edit_TEMPLATE, 9048 allowedBlocks: ['core/comments-pagination-previous', 'core/comments-pagination-numbers', 'core/comments-pagination-next'], 9049 __experimentalLayout: usedLayout 9050 }); // Get the Discussion settings 9051 9052 const pageComments = (0,external_wp_data_namespaceObject.useSelect)(select => { 9053 const { 9054 getSettings 9055 } = select(external_wp_blockEditor_namespaceObject.store); 9056 const { 9057 __experimentalDiscussionSettings 9058 } = getSettings(); 9059 return __experimentalDiscussionSettings === null || __experimentalDiscussionSettings === void 0 ? void 0 : __experimentalDiscussionSettings.pageComments; 9060 }, []); // If paging comments is not enabled in the Discussion Settings then hide the pagination 9061 // controls. We don't want to remove them from the template so that when the user enables 9062 // paging comments, the controls will be visible. 9063 9064 if (!pageComments) { 9065 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Comments Pagination block: paging comments is disabled in the Discussion Settings')); 9066 } 9067 9068 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, hasNextPreviousBlocks && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 9069 title: (0,external_wp_i18n_namespaceObject.__)('Settings') 9070 }, (0,external_wp_element_namespaceObject.createElement)(CommentsPaginationArrowControls, { 9071 value: paginationArrow, 9072 onChange: value => { 9073 setAttributes({ 9074 paginationArrow: value 9075 }); 9076 } 9077 }))), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)); 9078 } 9079 9080 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/save.js 9081 9082 9083 /** 9084 * WordPress dependencies 9085 */ 9086 9087 function comments_pagination_save_save() { 9088 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 9089 } 9090 9091 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination/index.js 9092 /** 9093 * WordPress dependencies 9094 */ 9095 9096 /** 9097 * Internal dependencies 9098 */ 9099 9100 const comments_pagination_metadata = { 9101 $schema: "https://schemas.wp.org/trunk/block.json", 9102 apiVersion: 2, 9103 name: "core/comments-pagination", 9104 title: "Comments Pagination", 9105 category: "theme", 9106 parent: ["core/comments-query-loop"], 9107 description: "Displays a paginated navigation to next/previous set of comments, when applicable.", 9108 textdomain: "default", 9109 attributes: { 9110 paginationArrow: { 9111 type: "string", 9112 "default": "none" 9113 } 9114 }, 9115 providesContext: { 9116 "comments/paginationArrow": "paginationArrow" 9117 }, 9118 supports: { 9119 align: true, 9120 reusable: false, 9121 html: false, 9122 color: { 9123 gradients: true, 9124 link: true, 9125 __experimentalDefaultControls: { 9126 background: true, 9127 text: true, 9128 link: true 9129 } 9130 }, 9131 __experimentalLayout: { 9132 allowSwitching: false, 9133 allowInheriting: false, 9134 "default": { 9135 type: "flex" 9136 } 9137 } 9138 }, 9139 editorStyle: "wp-block-comments-pagination-editor", 9140 style: "wp-block-comments-pagination" 9141 }; 9142 9143 9144 const { 9145 name: comments_pagination_name 9146 } = comments_pagination_metadata; 9147 9148 const comments_pagination_settings = { 9149 icon: query_pagination, 9150 edit: QueryPaginationEdit, 9151 save: comments_pagination_save_save 9152 }; 9153 9154 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-next.js 9155 9156 9157 /** 9158 * WordPress dependencies 9159 */ 9160 9161 const queryPaginationNext = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 9162 xmlns: "http://www.w3.org/2000/svg", 9163 viewBox: "0 0 24 24" 9164 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 9165 d: "M5 13.5h3v-3H5v3zm5 0h3v-3h-3v3zM17 9l-1 1 2 2-2 2 1 1 3-3-3-3z" 9166 })); 9167 /* harmony default export */ var query_pagination_next = (queryPaginationNext); 9168 9169 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/edit.js 9170 9171 9172 9173 /** 9174 * WordPress dependencies 9175 */ 9176 9177 9178 const edit_arrowMap = { 9179 none: '', 9180 arrow: '→', 9181 chevron: '»' 9182 }; 9183 function CommentsPaginationNextEdit(_ref) { 9184 let { 9185 attributes: { 9186 label 9187 }, 9188 setAttributes, 9189 context: { 9190 'comments/paginationArrow': paginationArrow 9191 } 9192 } = _ref; 9193 const displayArrow = edit_arrowMap[paginationArrow]; 9194 return (0,external_wp_element_namespaceObject.createElement)("a", _extends({ 9195 href: "#comments-pagination-next-pseudo-link", 9196 onClick: event => event.preventDefault() 9197 }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, { 9198 __experimentalVersion: 2, 9199 tagName: "span", 9200 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Newer comments page link'), 9201 placeholder: (0,external_wp_i18n_namespaceObject.__)('Newer Comments'), 9202 value: label, 9203 onChange: newLabel => setAttributes({ 9204 label: newLabel 9205 }) 9206 }), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", { 9207 className: `wp-block-comments-pagination-next-arrow is-arrow-$paginationArrow}` 9208 }, displayArrow)); 9209 } 9210 9211 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/index.js 9212 /** 9213 * WordPress dependencies 9214 */ 9215 9216 /** 9217 * Internal dependencies 9218 */ 9219 9220 const comments_pagination_next_metadata = { 9221 $schema: "https://schemas.wp.org/trunk/block.json", 9222 apiVersion: 2, 9223 name: "core/comments-pagination-next", 9224 title: "Next Page", 9225 category: "theme", 9226 parent: ["core/comments-pagination"], 9227 description: "Displays the next comment's page link.", 9228 textdomain: "default", 9229 attributes: { 9230 label: { 9231 type: "string" 9232 } 9233 }, 9234 usesContext: ["postId", "comments/paginationArrow"], 9235 supports: { 9236 reusable: false, 9237 html: false, 9238 color: { 9239 gradients: true, 9240 text: false, 9241 __experimentalDefaultControls: { 9242 background: true 9243 } 9244 }, 9245 typography: { 9246 fontSize: true, 9247 lineHeight: true, 9248 __experimentalFontStyle: true, 9249 __experimentalFontWeight: true, 9250 __experimentalLetterSpacing: true, 9251 __experimentalTextTransform: true, 9252 __experimentalDefaultControls: { 9253 fontSize: true 9254 } 9255 } 9256 } 9257 }; 9258 9259 const { 9260 name: comments_pagination_next_name 9261 } = comments_pagination_next_metadata; 9262 9263 const comments_pagination_next_settings = { 9264 icon: query_pagination_next, 9265 edit: CommentsPaginationNextEdit 9266 }; 9267 9268 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-pagination-numbers.js 9269 9270 9271 /** 9272 * WordPress dependencies 9273 */ 9274 9275 const queryPaginationNumbers = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 9276 xmlns: "http://www.w3.org/2000/svg", 9277 viewBox: "0 0 24 24" 9278 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 9279 d: "M4 13.5h6v-3H4v3zm8.2-2.5.8-.3V14h1V9.3l-2.2.7.4 1zm7.1-1.2c-.5-.6-1.2-.5-1.7-.4-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5h2.7v-1h-.9c.3-.6.8-1.4.9-2.1 0-.3-.1-.8-.3-1.1z" 9280 })); 9281 /* harmony default export */ var query_pagination_numbers = (queryPaginationNumbers); 9282 9283 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/edit.js 9284 9285 9286 /** 9287 * WordPress dependencies 9288 */ 9289 9290 9291 const PaginationItem = _ref => { 9292 let { 9293 content, 9294 tag: Tag = 'a', 9295 extraClass = '' 9296 } = _ref; 9297 return (0,external_wp_element_namespaceObject.createElement)(Tag, { 9298 className: `page-numbers $extraClass}` 9299 }, content); 9300 }; 9301 9302 function CommentsPaginationNumbersEdit() { 9303 return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, { 9304 content: "1" 9305 }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, { 9306 content: "2" 9307 }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, { 9308 content: "3", 9309 tag: "span", 9310 extraClass: "current" 9311 }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, { 9312 content: "4" 9313 }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, { 9314 content: "5" 9315 }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, { 9316 content: "...", 9317 tag: "span", 9318 extraClass: "dots" 9319 }), (0,external_wp_element_namespaceObject.createElement)(PaginationItem, { 9320 content: "8" 9321 })); 9322 } 9323 9324 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/index.js 9325 /** 9326 * WordPress dependencies 9327 */ 9328 9329 /** 9330 * Internal dependencies 9331 */ 9332 9333 const comments_pagination_numbers_metadata = { 9334 $schema: "https://schemas.wp.org/trunk/block.json", 9335 apiVersion: 2, 9336 name: "core/comments-pagination-numbers", 9337 title: "Page Numbers", 9338 category: "theme", 9339 parent: ["core/comments-pagination"], 9340 description: "Displays a list of page numbers for comments pagination.", 9341 textdomain: "default", 9342 usesContext: ["postId"], 9343 supports: { 9344 reusable: false, 9345 html: false 9346 } 9347 }; 9348 9349 const { 9350 name: comments_pagination_numbers_name 9351 } = comments_pagination_numbers_metadata; 9352 9353 const comments_pagination_numbers_settings = { 9354 icon: query_pagination_numbers, 9355 edit: CommentsPaginationNumbersEdit 9356 }; 9357 9358 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment-title.js 9359 9360 9361 /** 9362 * WordPress dependencies 9363 */ 9364 9365 const commentTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 9366 xmlns: "http://www.w3.org/2000/svg", 9367 viewBox: "0 0 24 24" 9368 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 9369 d: "M6 11.9c.6.3 1.3.5 2.1.5.4 0 .8 0 1.2-.1.4-.1.7-.2 1-.3l-.1-1.3c-.3.1-.6.3-.9.3-.3.1-.7.1-1.1.1-.6 0-1.1-.1-1.5-.4-.4-.3-.7-.6-.9-1-.2-.5-.3-1-.3-1.5 0-.6.1-1.1.3-1.5.2-.4.5-.8.9-1 .4-.3.9-.4 1.5-.4.4 0 .7 0 1.1.1l.9.3.1-1.3c-.3-.1-.6-.2-1-.3C9 4 8.6 4 8.2 4c-.9 0-1.6.2-2.2.5-.6.4-1.1.8-1.5 1.5-.3.6-.5 1.3-.5 2.2s.2 1.6.5 2.2c.4.6.9 1.1 1.5 1.5zm-2 2.6V16h16v-1.5H4zM4 20h9v-1.5H4V20z" 9370 })); 9371 /* harmony default export */ var comment_title = (commentTitle); 9372 9373 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/heading-level-icon.js 9374 9375 9376 /** 9377 * WordPress dependencies 9378 */ 9379 9380 /** @typedef {import('@wordpress/element').WPComponent} WPComponent */ 9381 9382 /** 9383 * HeadingLevelIcon props. 9384 * 9385 * @typedef WPHeadingLevelIconProps 9386 * 9387 * @property {number} level The heading level to show an icon for. 9388 * @property {?boolean} isPressed Whether or not the icon should appear pressed; default: false. 9389 */ 9390 9391 /** 9392 * Heading level icon. 9393 * 9394 * @param {WPHeadingLevelIconProps} props Component props. 9395 * 9396 * @return {?WPComponent} The icon. 9397 */ 9398 9399 function HeadingLevelIcon(_ref) { 9400 let { 9401 level, 9402 isPressed = false 9403 } = _ref; 9404 const levelToPath = { 9405 1: 'M9 5h2v10H9v-4H5v4H3V5h2v4h4V5zm6.6 0c-.6.9-1.5 1.7-2.6 2v1h2v7h2V5h-1.4z', 9406 2: 'M7 5h2v10H7v-4H3v4H1V5h2v4h4V5zm8 8c.5-.4.6-.6 1.1-1.1.4-.4.8-.8 1.2-1.3.3-.4.6-.8.9-1.3.2-.4.3-.8.3-1.3 0-.4-.1-.9-.3-1.3-.2-.4-.4-.7-.8-1-.3-.3-.7-.5-1.2-.6-.5-.2-1-.2-1.5-.2-.4 0-.7 0-1.1.1-.3.1-.7.2-1 .3-.3.1-.6.3-.9.5-.3.2-.6.4-.8.7l1.2 1.2c.3-.3.6-.5 1-.7.4-.2.7-.3 1.2-.3s.9.1 1.3.4c.3.3.5.7.5 1.1 0 .4-.1.8-.4 1.1-.3.5-.6.9-1 1.2-.4.4-1 .9-1.6 1.4-.6.5-1.4 1.1-2.2 1.6V15h8v-2H15z', 9407 3: 'M12.1 12.2c.4.3.8.5 1.2.7.4.2.9.3 1.4.3.5 0 1-.1 1.4-.3.3-.1.5-.5.5-.8 0-.2 0-.4-.1-.6-.1-.2-.3-.3-.5-.4-.3-.1-.7-.2-1-.3-.5-.1-1-.1-1.5-.1V9.1c.7.1 1.5-.1 2.2-.4.4-.2.6-.5.6-.9 0-.3-.1-.6-.4-.8-.3-.2-.7-.3-1.1-.3-.4 0-.8.1-1.1.3-.4.2-.7.4-1.1.6l-1.2-1.4c.5-.4 1.1-.7 1.6-.9.5-.2 1.2-.3 1.8-.3.5 0 1 .1 1.6.2.4.1.8.3 1.2.5.3.2.6.5.8.8.2.3.3.7.3 1.1 0 .5-.2.9-.5 1.3-.4.4-.9.7-1.5.9v.1c.6.1 1.2.4 1.6.8.4.4.7.9.7 1.5 0 .4-.1.8-.3 1.2-.2.4-.5.7-.9.9-.4.3-.9.4-1.3.5-.5.1-1 .2-1.6.2-.8 0-1.6-.1-2.3-.4-.6-.2-1.1-.6-1.6-1l1.1-1.4zM7 9H3V5H1v10h2v-4h4v4h2V5H7v4z', 9408 4: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm10-2h-1v2h-2v-2h-5v-2l4-6h3v6h1v2zm-3-2V7l-2.8 4H16z', 9409 5: 'M12.1 12.2c.4.3.7.5 1.1.7.4.2.9.3 1.3.3.5 0 1-.1 1.4-.4.4-.3.6-.7.6-1.1 0-.4-.2-.9-.6-1.1-.4-.3-.9-.4-1.4-.4H14c-.1 0-.3 0-.4.1l-.4.1-.5.2-1-.6.3-5h6.4v1.9h-4.3L14 8.8c.2-.1.5-.1.7-.2.2 0 .5-.1.7-.1.5 0 .9.1 1.4.2.4.1.8.3 1.1.6.3.2.6.6.8.9.2.4.3.9.3 1.4 0 .5-.1 1-.3 1.4-.2.4-.5.8-.9 1.1-.4.3-.8.5-1.3.7-.5.2-1 .3-1.5.3-.8 0-1.6-.1-2.3-.4-.6-.2-1.1-.6-1.6-1-.1-.1 1-1.5 1-1.5zM9 15H7v-4H3v4H1V5h2v4h4V5h2v10z', 9410 6: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm8.6-7.5c-.2-.2-.5-.4-.8-.5-.6-.2-1.3-.2-1.9 0-.3.1-.6.3-.8.5l-.6.9c-.2.5-.2.9-.2 1.4.4-.3.8-.6 1.2-.8.4-.2.8-.3 1.3-.3.4 0 .8 0 1.2.2.4.1.7.3 1 .6.3.3.5.6.7.9.2.4.3.8.3 1.3s-.1.9-.3 1.4c-.2.4-.5.7-.8 1-.4.3-.8.5-1.2.6-1 .3-2 .3-3 0-.5-.2-1-.5-1.4-.9-.4-.4-.8-.9-1-1.5-.2-.6-.3-1.3-.3-2.1s.1-1.6.4-2.3c.2-.6.6-1.2 1-1.6.4-.4.9-.7 1.4-.9.6-.3 1.1-.4 1.7-.4.7 0 1.4.1 2 .3.5.2 1 .5 1.4.8 0 .1-1.3 1.4-1.3 1.4zm-2.4 5.8c.2 0 .4 0 .6-.1.2 0 .4-.1.5-.2.1-.1.3-.3.4-.5.1-.2.1-.5.1-.7 0-.4-.1-.8-.4-1.1-.3-.2-.7-.3-1.1-.3-.3 0-.7.1-1 .2-.4.2-.7.4-1 .7 0 .3.1.7.3 1 .1.2.3.4.4.6.2.1.3.3.5.3.2.1.5.2.7.1z' 9411 }; 9412 9413 if (!levelToPath.hasOwnProperty(level)) { 9414 return null; 9415 } 9416 9417 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 9418 width: "24", 9419 height: "24", 9420 viewBox: "0 0 20 20", 9421 xmlns: "http://www.w3.org/2000/svg", 9422 isPressed: isPressed 9423 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 9424 d: levelToPath[level] 9425 })); 9426 } 9427 9428 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/heading-level-dropdown.js 9429 9430 9431 /** 9432 * WordPress dependencies 9433 */ 9434 9435 9436 /** 9437 * Internal dependencies 9438 */ 9439 9440 9441 const HEADING_LEVELS = [1, 2, 3, 4, 5, 6]; 9442 const POPOVER_PROPS = { 9443 className: 'block-library-heading-level-dropdown' 9444 }; 9445 /** @typedef {import('@wordpress/element').WPComponent} WPComponent */ 9446 9447 /** 9448 * HeadingLevelDropdown props. 9449 * 9450 * @typedef WPHeadingLevelDropdownProps 9451 * 9452 * @property {number} selectedLevel The chosen heading level. 9453 * @property {(newValue:number)=>any} onChange Callback to run when 9454 * toolbar value is changed. 9455 */ 9456 9457 /** 9458 * Dropdown for selecting a heading level (1 through 6). 9459 * 9460 * @param {WPHeadingLevelDropdownProps} props Component props. 9461 * 9462 * @return {WPComponent} The toolbar. 9463 */ 9464 9465 function HeadingLevelDropdown(_ref) { 9466 let { 9467 selectedLevel, 9468 onChange 9469 } = _ref; 9470 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, { 9471 popoverProps: POPOVER_PROPS, 9472 icon: (0,external_wp_element_namespaceObject.createElement)(HeadingLevelIcon, { 9473 level: selectedLevel 9474 }), 9475 label: (0,external_wp_i18n_namespaceObject.__)('Change heading level'), 9476 controls: HEADING_LEVELS.map(targetLevel => { 9477 { 9478 const isActive = targetLevel === selectedLevel; 9479 return { 9480 icon: (0,external_wp_element_namespaceObject.createElement)(HeadingLevelIcon, { 9481 level: targetLevel, 9482 isPressed: isActive 9483 }), 9484 label: (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: heading level e.g: "1", "2", "3" 9485 (0,external_wp_i18n_namespaceObject.__)('Heading %d'), targetLevel), 9486 isActive, 9487 9488 onClick() { 9489 onChange(targetLevel); 9490 } 9491 9492 }; 9493 } 9494 }) 9495 }); 9496 } 9497 9498 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-title/edit.js 9499 9500 9501 /** 9502 * External dependencies 9503 */ 9504 9505 /** 9506 * WordPress dependencies 9507 */ 9508 9509 9510 9511 9512 9513 9514 9515 9516 /** 9517 * Internal dependencies 9518 */ 9519 9520 9521 function comments_title_edit_Edit(_ref) { 9522 let { 9523 attributes: { 9524 textAlign, 9525 singleCommentLabel, 9526 multipleCommentsLabel, 9527 showPostTitle, 9528 showCommentsCount, 9529 level 9530 }, 9531 setAttributes, 9532 context: { 9533 postType, 9534 postId 9535 } 9536 } = _ref; 9537 const TagName = 'h' + level; 9538 const [commentsCount, setCommentsCount] = (0,external_wp_element_namespaceObject.useState)(); 9539 const [editingMode, setEditingMode] = (0,external_wp_element_namespaceObject.useState)('plural'); 9540 const [rawTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId); 9541 const isSiteEditor = typeof postId === 'undefined'; 9542 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 9543 className: classnames_default()({ 9544 [`has-text-align-$textAlign}`]: textAlign 9545 }) 9546 }); 9547 (0,external_wp_element_namespaceObject.useEffect)(() => { 9548 if (isSiteEditor) { 9549 setCommentsCount(3); 9550 return; 9551 } 9552 9553 const currentPostId = postId; 9554 external_wp_apiFetch_default()({ 9555 path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', { 9556 post: postId, 9557 _fields: 'id' 9558 }), 9559 method: 'HEAD', 9560 parse: false 9561 }).then(res => { 9562 // Stale requests will have the `currentPostId` of an older closure. 9563 if (currentPostId === postId) { 9564 setCommentsCount(parseInt(res.headers.get('X-WP-Total'))); 9565 } 9566 }).catch(() => { 9567 setCommentsCount(0); 9568 }); 9569 }, [postId]); 9570 const blockControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 9571 group: "block" 9572 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 9573 value: textAlign, 9574 onChange: newAlign => setAttributes({ 9575 textAlign: newAlign 9576 }) 9577 }), (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, { 9578 selectedLevel: level, 9579 onChange: newLevel => setAttributes({ 9580 level: newLevel 9581 }) 9582 })); 9583 const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 9584 title: (0,external_wp_i18n_namespaceObject.__)('Settings') 9585 }, isSiteEditor && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { 9586 label: (0,external_wp_i18n_namespaceObject.__)('Editing mode'), 9587 onChange: setEditingMode, 9588 value: editingMode 9589 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 9590 label: (0,external_wp_i18n_namespaceObject.__)('Singular'), 9591 value: "singular" 9592 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 9593 label: (0,external_wp_i18n_namespaceObject.__)('Plural'), 9594 value: "plural" 9595 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 9596 label: (0,external_wp_i18n_namespaceObject.__)('Show post title'), 9597 checked: showPostTitle, 9598 onChange: value => setAttributes({ 9599 showPostTitle: value 9600 }) 9601 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 9602 label: (0,external_wp_i18n_namespaceObject.__)('Show comments count'), 9603 checked: showCommentsCount, 9604 onChange: value => setAttributes({ 9605 showCommentsCount: value 9606 }) 9607 }))); 9608 const postTitle = isSiteEditor ? (0,external_wp_i18n_namespaceObject.__)('"Post Title"') : `"$rawTitle}"`; 9609 const singlePlaceholder = showPostTitle ? (0,external_wp_i18n_namespaceObject.__)('One response to ') : (0,external_wp_i18n_namespaceObject.__)('One response'); 9610 const singlePlaceholderNoCount = showPostTitle ? (0,external_wp_i18n_namespaceObject.__)('Response to ') : (0,external_wp_i18n_namespaceObject.__)('Response'); 9611 const multiplePlaceholder = showPostTitle ? (0,external_wp_i18n_namespaceObject.__)('responses to ') : (0,external_wp_i18n_namespaceObject.__)('responses'); 9612 const multiplePlaceholderNoCount = showPostTitle ? (0,external_wp_i18n_namespaceObject.__)('Responses to ') : (0,external_wp_i18n_namespaceObject.__)('Responses'); 9613 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockControls, inspectorControls, (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, editingMode === 'singular' || commentsCount === 1 ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, { 9614 __experimentalVersion: 2, 9615 tagName: "span", 9616 "aria-label": showCommentsCount ? singlePlaceholder : singlePlaceholderNoCount, 9617 placeholder: showCommentsCount ? singlePlaceholder : singlePlaceholderNoCount, 9618 value: singleCommentLabel, 9619 onChange: newLabel => setAttributes({ 9620 singleCommentLabel: newLabel 9621 }) 9622 }), showPostTitle ? postTitle : null) : (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, showCommentsCount ? commentsCount : null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, { 9623 __experimentalVersion: 2, 9624 tagName: "span", 9625 "aria-label": showCommentsCount ? ` $multiplePlaceholder}` : multiplePlaceholderNoCount, 9626 placeholder: showCommentsCount ? ` $multiplePlaceholder}` : multiplePlaceholderNoCount, 9627 value: multipleCommentsLabel, 9628 onChange: newLabel => setAttributes({ 9629 multipleCommentsLabel: newLabel 9630 }) 9631 }), showPostTitle ? postTitle : null))); 9632 } 9633 9634 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/comments-title/index.js 9635 /** 9636 * WordPress dependencies 9637 */ 9638 9639 /** 9640 * Internal dependencies 9641 */ 9642 9643 const comments_title_metadata = { 9644 $schema: "https://schemas.wp.org/trunk/block.json", 9645 apiVersion: 2, 9646 name: "core/comments-title", 9647 title: "Comments Title", 9648 category: "theme", 9649 ancestor: ["core/comments-query-loop"], 9650 description: "Displays a title with the number of comments", 9651 textdomain: "default", 9652 usesContext: ["postId", "postType"], 9653 attributes: { 9654 textAlign: { 9655 type: "string" 9656 }, 9657 singleCommentLabel: { 9658 type: "string" 9659 }, 9660 multipleCommentsLabel: { 9661 type: "string" 9662 }, 9663 showPostTitle: { 9664 type: "boolean", 9665 "default": true 9666 }, 9667 showCommentsCount: { 9668 type: "boolean", 9669 "default": true 9670 }, 9671 level: { 9672 type: "number", 9673 "default": 2 9674 } 9675 }, 9676 supports: { 9677 anchor: false, 9678 align: true, 9679 html: false, 9680 __experimentalBorder: { 9681 radius: true, 9682 color: true, 9683 width: true, 9684 style: true 9685 }, 9686 color: { 9687 gradients: true, 9688 __experimentalDefaultControls: { 9689 background: true, 9690 text: true 9691 } 9692 }, 9693 spacing: { 9694 margin: true, 9695 padding: true 9696 }, 9697 typography: { 9698 fontSize: true, 9699 lineHeight: true, 9700 __experimentalFontStyle: true, 9701 __experimentalFontWeight: true, 9702 __experimentalFontFamily: true, 9703 __experimentalTextTransform: true, 9704 __experimentalDefaultControls: { 9705 fontSize: true, 9706 __experimentalFontFamily: true, 9707 __experimentalFontStyle: true, 9708 __experimentalFontWeight: true 9709 } 9710 } 9711 } 9712 }; 9713 9714 const { 9715 name: comments_title_name 9716 } = comments_title_metadata; 9717 9718 const comments_title_settings = { 9719 icon: comment_title, 9720 edit: comments_title_edit_Edit 9721 }; 9722 9723 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/cover.js 9724 9725 9726 /** 9727 * WordPress dependencies 9728 */ 9729 9730 const cover = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 9731 xmlns: "http://www.w3.org/2000/svg", 9732 viewBox: "0 0 24 24" 9733 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 9734 d: "M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h6.2v8.9l2.5-3.1 2.5 3.1V4.5h2.2c.4 0 .8.4.8.8v13.4z" 9735 })); 9736 /* harmony default export */ var library_cover = (cover); 9737 9738 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/shared.js 9739 /** 9740 * WordPress dependencies 9741 */ 9742 9743 const POSITION_CLASSNAMES = { 9744 'top left': 'is-position-top-left', 9745 'top center': 'is-position-top-center', 9746 'top right': 'is-position-top-right', 9747 'center left': 'is-position-center-left', 9748 'center center': 'is-position-center-center', 9749 center: 'is-position-center-center', 9750 'center right': 'is-position-center-right', 9751 'bottom left': 'is-position-bottom-left', 9752 'bottom center': 'is-position-bottom-center', 9753 'bottom right': 'is-position-bottom-right' 9754 }; 9755 const IMAGE_BACKGROUND_TYPE = 'image'; 9756 const VIDEO_BACKGROUND_TYPE = 'video'; 9757 const COVER_MIN_HEIGHT = 50; 9758 const COVER_MAX_HEIGHT = 1000; 9759 const COVER_DEFAULT_HEIGHT = 300; 9760 function backgroundImageStyles(url) { 9761 return url ? { 9762 backgroundImage: `url($url})` 9763 } : {}; 9764 } 9765 const shared_ALLOWED_MEDIA_TYPES = ['image', 'video']; 9766 function dimRatioToClass(ratio) { 9767 return ratio === 50 || !ratio === undefined ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10); 9768 } 9769 function attributesFromMedia(setAttributes, dimRatio) { 9770 return media => { 9771 if (!media || !media.url) { 9772 setAttributes({ 9773 url: undefined, 9774 id: undefined 9775 }); 9776 return; 9777 } 9778 9779 if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) { 9780 media.type = (0,external_wp_blob_namespaceObject.getBlobTypeByURL)(media.url); 9781 } 9782 9783 let mediaType; // For media selections originated from a file upload. 9784 9785 if (media.media_type) { 9786 if (media.media_type === IMAGE_BACKGROUND_TYPE) { 9787 mediaType = IMAGE_BACKGROUND_TYPE; 9788 } else { 9789 // only images and videos are accepted so if the media_type is not an image we can assume it is a video. 9790 // Videos contain the media type of 'file' in the object returned from the rest api. 9791 mediaType = VIDEO_BACKGROUND_TYPE; 9792 } 9793 } else { 9794 // For media selections originated from existing files in the media library. 9795 if (media.type !== IMAGE_BACKGROUND_TYPE && media.type !== VIDEO_BACKGROUND_TYPE) { 9796 return; 9797 } 9798 9799 mediaType = media.type; 9800 } 9801 9802 setAttributes({ 9803 dimRatio: dimRatio === 100 ? 50 : dimRatio, 9804 url: media.url, 9805 id: media.id, 9806 alt: media === null || media === void 0 ? void 0 : media.alt, 9807 backgroundType: mediaType, 9808 ...(mediaType === VIDEO_BACKGROUND_TYPE ? { 9809 focalPoint: undefined, 9810 hasParallax: undefined 9811 } : {}) 9812 }); 9813 }; 9814 } 9815 /** 9816 * Checks of the contentPosition is the center (default) position. 9817 * 9818 * @param {string} contentPosition The current content position. 9819 * @return {boolean} Whether the contentPosition is center. 9820 */ 9821 9822 function isContentPositionCenter(contentPosition) { 9823 return !contentPosition || contentPosition === 'center center' || contentPosition === 'center'; 9824 } 9825 /** 9826 * Retrieves the className for the current contentPosition. 9827 * The default position (center) will not have a className. 9828 * 9829 * @param {string} contentPosition The current content position. 9830 * @return {string} The className assigned to the contentPosition. 9831 */ 9832 9833 function getPositionClassName(contentPosition) { 9834 /* 9835 * Only render a className if the contentPosition is not center (the default). 9836 */ 9837 if (isContentPositionCenter(contentPosition)) return ''; 9838 return POSITION_CLASSNAMES[contentPosition]; 9839 } 9840 9841 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/deprecated.js 9842 9843 9844 /** 9845 * External dependencies 9846 */ 9847 9848 9849 /** 9850 * WordPress dependencies 9851 */ 9852 9853 9854 9855 9856 /** 9857 * Internal dependencies 9858 */ 9859 9860 9861 /** 9862 * Original function to determine the background opacity classname 9863 * 9864 * Used in deprecations: v1-7. 9865 * 9866 * @param {number} ratio ratio to use for opacity. 9867 * @return {string} background opacity class . 9868 */ 9869 9870 function dimRatioToClassV1(ratio) { 9871 return ratio === 0 || ratio === 50 || !ratio ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10); 9872 } 9873 9874 function migrateDimRatio(attributes) { 9875 return { ...attributes, 9876 dimRatio: !attributes.url ? 100 : attributes.dimRatio 9877 }; 9878 } 9879 9880 const deprecated_blockAttributes = { 9881 url: { 9882 type: 'string' 9883 }, 9884 id: { 9885 type: 'number' 9886 }, 9887 hasParallax: { 9888 type: 'boolean', 9889 default: false 9890 }, 9891 dimRatio: { 9892 type: 'number', 9893 default: 50 9894 }, 9895 overlayColor: { 9896 type: 'string' 9897 }, 9898 customOverlayColor: { 9899 type: 'string' 9900 }, 9901 backgroundType: { 9902 type: 'string', 9903 default: 'image' 9904 }, 9905 focalPoint: { 9906 type: 'object' 9907 } 9908 }; // Deprecation for blocks with `minHeightUnit` set but no `minHeight`. 9909 9910 const v9 = { 9911 attributes: { 9912 url: { 9913 type: 'string' 9914 }, 9915 id: { 9916 type: 'number' 9917 }, 9918 alt: { 9919 type: 'string', 9920 source: 'attribute', 9921 selector: 'img', 9922 attribute: 'alt', 9923 default: '' 9924 }, 9925 hasParallax: { 9926 type: 'boolean', 9927 default: false 9928 }, 9929 isRepeated: { 9930 type: 'boolean', 9931 default: false 9932 }, 9933 dimRatio: { 9934 type: 'number', 9935 default: 100 9936 }, 9937 overlayColor: { 9938 type: 'string' 9939 }, 9940 customOverlayColor: { 9941 type: 'string' 9942 }, 9943 backgroundType: { 9944 type: 'string', 9945 default: 'image' 9946 }, 9947 focalPoint: { 9948 type: 'object' 9949 }, 9950 minHeight: { 9951 type: 'number' 9952 }, 9953 minHeightUnit: { 9954 type: 'string' 9955 }, 9956 gradient: { 9957 type: 'string' 9958 }, 9959 customGradient: { 9960 type: 'string' 9961 }, 9962 contentPosition: { 9963 type: 'string' 9964 }, 9965 isDark: { 9966 type: 'boolean', 9967 default: true 9968 }, 9969 allowedBlocks: { 9970 type: 'array' 9971 }, 9972 templateLock: { 9973 type: ['string', 'boolean'], 9974 enum: ['all', 'insert', false] 9975 } 9976 }, 9977 supports: { 9978 anchor: true, 9979 align: true, 9980 html: false, 9981 spacing: { 9982 padding: true, 9983 __experimentalDefaultControls: { 9984 padding: true 9985 } 9986 }, 9987 color: { 9988 __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background', 9989 text: false, 9990 background: false 9991 } 9992 }, 9993 9994 save(_ref) { 9995 let { 9996 attributes 9997 } = _ref; 9998 const { 9999 backgroundType, 10000 gradient, 10001 contentPosition, 10002 customGradient, 10003 customOverlayColor, 10004 dimRatio, 10005 focalPoint, 10006 hasParallax, 10007 isDark, 10008 isRepeated, 10009 overlayColor, 10010 url, 10011 alt, 10012 id, 10013 minHeight: minHeightProp, 10014 minHeightUnit 10015 } = attributes; 10016 const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor); 10017 10018 const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient); 10019 10020 const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp; 10021 const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType; 10022 const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType; 10023 const isImgElement = !(hasParallax || isRepeated); 10024 const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}), 10025 minHeight: minHeight || undefined 10026 }; 10027 const bgStyle = { 10028 backgroundColor: !overlayColorClass ? customOverlayColor : undefined, 10029 background: customGradient ? customGradient : undefined 10030 }; 10031 const objectPosition = // prettier-ignore 10032 focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined; 10033 const classes = classnames_default()({ 10034 'is-light': !isDark, 10035 'has-parallax': hasParallax, 10036 'is-repeated': isRepeated, 10037 'has-custom-content-position': !isContentPositionCenter(contentPosition) 10038 }, getPositionClassName(contentPosition)); 10039 const gradientValue = gradient || customGradient; 10040 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 10041 className: classes, 10042 style 10043 }), (0,external_wp_element_namespaceObject.createElement)("span", { 10044 "aria-hidden": "true", 10045 className: classnames_default()('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), { 10046 'has-background-dim': dimRatio !== undefined, 10047 // For backwards compatibility. Former versions of the Cover Block applied 10048 // `.wp-block-cover__gradient-background` in the presence of 10049 // media, a gradient and a dim. 10050 'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0, 10051 'has-background-gradient': gradientValue, 10052 [gradientClass]: gradientClass 10053 }), 10054 style: bgStyle 10055 }), isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", { 10056 className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-$id}` : null), 10057 alt: alt, 10058 src: url, 10059 style: { 10060 objectPosition 10061 }, 10062 "data-object-fit": "cover", 10063 "data-object-position": objectPosition 10064 }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", { 10065 className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'), 10066 autoPlay: true, 10067 muted: true, 10068 loop: true, 10069 playsInline: true, 10070 src: url, 10071 style: { 10072 objectPosition 10073 }, 10074 "data-object-fit": "cover", 10075 "data-object-position": objectPosition 10076 }), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({ 10077 className: 'wp-block-cover__inner-container' 10078 }))); 10079 } 10080 10081 }; // v8: deprecated to remove duplicated gradient classes and swap `wp-block-cover__gradient-background` for `wp-block-cover__background`. 10082 10083 const v8 = { 10084 attributes: { 10085 url: { 10086 type: 'string' 10087 }, 10088 id: { 10089 type: 'number' 10090 }, 10091 alt: { 10092 type: 'string', 10093 source: 'attribute', 10094 selector: 'img', 10095 attribute: 'alt', 10096 default: '' 10097 }, 10098 hasParallax: { 10099 type: 'boolean', 10100 default: false 10101 }, 10102 isRepeated: { 10103 type: 'boolean', 10104 default: false 10105 }, 10106 dimRatio: { 10107 type: 'number', 10108 default: 100 10109 }, 10110 overlayColor: { 10111 type: 'string' 10112 }, 10113 customOverlayColor: { 10114 type: 'string' 10115 }, 10116 backgroundType: { 10117 type: 'string', 10118 default: 'image' 10119 }, 10120 focalPoint: { 10121 type: 'object' 10122 }, 10123 minHeight: { 10124 type: 'number' 10125 }, 10126 minHeightUnit: { 10127 type: 'string' 10128 }, 10129 gradient: { 10130 type: 'string' 10131 }, 10132 customGradient: { 10133 type: 'string' 10134 }, 10135 contentPosition: { 10136 type: 'string' 10137 }, 10138 isDark: { 10139 type: 'boolean', 10140 default: true 10141 }, 10142 allowedBlocks: { 10143 type: 'array' 10144 }, 10145 templateLock: { 10146 type: ['string', 'boolean'], 10147 enum: ['all', 'insert', false] 10148 } 10149 }, 10150 supports: { 10151 anchor: true, 10152 align: true, 10153 html: false, 10154 spacing: { 10155 padding: true, 10156 __experimentalDefaultControls: { 10157 padding: true 10158 } 10159 }, 10160 color: { 10161 __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background', 10162 text: false, 10163 background: false 10164 } 10165 }, 10166 10167 save(_ref2) { 10168 let { 10169 attributes 10170 } = _ref2; 10171 const { 10172 backgroundType, 10173 gradient, 10174 contentPosition, 10175 customGradient, 10176 customOverlayColor, 10177 dimRatio, 10178 focalPoint, 10179 hasParallax, 10180 isDark, 10181 isRepeated, 10182 overlayColor, 10183 url, 10184 alt, 10185 id, 10186 minHeight: minHeightProp, 10187 minHeightUnit 10188 } = attributes; 10189 const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor); 10190 10191 const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient); 10192 10193 const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp; 10194 const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType; 10195 const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType; 10196 const isImgElement = !(hasParallax || isRepeated); 10197 const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}), 10198 minHeight: minHeight || undefined 10199 }; 10200 const bgStyle = { 10201 backgroundColor: !overlayColorClass ? customOverlayColor : undefined, 10202 background: customGradient ? customGradient : undefined 10203 }; 10204 const objectPosition = // prettier-ignore 10205 focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined; 10206 const classes = classnames_default()({ 10207 'is-light': !isDark, 10208 'has-parallax': hasParallax, 10209 'is-repeated': isRepeated, 10210 'has-custom-content-position': !isContentPositionCenter(contentPosition) 10211 }, getPositionClassName(contentPosition)); 10212 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 10213 className: classes, 10214 style 10215 }), (0,external_wp_element_namespaceObject.createElement)("span", { 10216 "aria-hidden": "true", 10217 className: classnames_default()(overlayColorClass, dimRatioToClass(dimRatio), 'wp-block-cover__gradient-background', gradientClass, { 10218 'has-background-dim': dimRatio !== undefined, 10219 'has-background-gradient': gradient || customGradient, 10220 [gradientClass]: !url && gradientClass 10221 }), 10222 style: bgStyle 10223 }), isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", { 10224 className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-$id}` : null), 10225 alt: alt, 10226 src: url, 10227 style: { 10228 objectPosition 10229 }, 10230 "data-object-fit": "cover", 10231 "data-object-position": objectPosition 10232 }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", { 10233 className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'), 10234 autoPlay: true, 10235 muted: true, 10236 loop: true, 10237 playsInline: true, 10238 src: url, 10239 style: { 10240 objectPosition 10241 }, 10242 "data-object-fit": "cover", 10243 "data-object-position": objectPosition 10244 }), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({ 10245 className: 'wp-block-cover__inner-container' 10246 }))); 10247 } 10248 10249 }; 10250 const v7 = { 10251 attributes: { ...deprecated_blockAttributes, 10252 isRepeated: { 10253 type: 'boolean', 10254 default: false 10255 }, 10256 minHeight: { 10257 type: 'number' 10258 }, 10259 minHeightUnit: { 10260 type: 'string' 10261 }, 10262 gradient: { 10263 type: 'string' 10264 }, 10265 customGradient: { 10266 type: 'string' 10267 }, 10268 contentPosition: { 10269 type: 'string' 10270 }, 10271 alt: { 10272 type: 'string', 10273 source: 'attribute', 10274 selector: 'img', 10275 attribute: 'alt', 10276 default: '' 10277 } 10278 }, 10279 supports: { 10280 anchor: true, 10281 align: true, 10282 html: false, 10283 spacing: { 10284 padding: true, 10285 __experimentalDefaultControls: { 10286 padding: true 10287 } 10288 }, 10289 color: { 10290 __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background', 10291 text: false, 10292 background: false 10293 } 10294 }, 10295 10296 save(_ref3) { 10297 let { 10298 attributes 10299 } = _ref3; 10300 const { 10301 backgroundType, 10302 gradient, 10303 contentPosition, 10304 customGradient, 10305 customOverlayColor, 10306 dimRatio, 10307 focalPoint, 10308 hasParallax, 10309 isRepeated, 10310 overlayColor, 10311 url, 10312 alt, 10313 id, 10314 minHeight: minHeightProp, 10315 minHeightUnit 10316 } = attributes; 10317 const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor); 10318 10319 const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient); 10320 10321 const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp; 10322 const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType; 10323 const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType; 10324 const isImgElement = !(hasParallax || isRepeated); 10325 const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}), 10326 backgroundColor: !overlayColorClass ? customOverlayColor : undefined, 10327 background: customGradient && !url ? customGradient : undefined, 10328 minHeight: minHeight || undefined 10329 }; 10330 const objectPosition = // prettier-ignore 10331 focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined; 10332 const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, { 10333 'has-background-dim': dimRatio !== 0, 10334 'has-parallax': hasParallax, 10335 'is-repeated': isRepeated, 10336 'has-background-gradient': gradient || customGradient, 10337 [gradientClass]: !url && gradientClass, 10338 'has-custom-content-position': !isContentPositionCenter(contentPosition) 10339 }, getPositionClassName(contentPosition)); 10340 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 10341 className: classes, 10342 style 10343 }), url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", { 10344 "aria-hidden": "true", 10345 className: classnames_default()('wp-block-cover__gradient-background', gradientClass), 10346 style: customGradient ? { 10347 background: customGradient 10348 } : undefined 10349 }), isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", { 10350 className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-$id}` : null), 10351 alt: alt, 10352 src: url, 10353 style: { 10354 objectPosition 10355 }, 10356 "data-object-fit": "cover", 10357 "data-object-position": objectPosition 10358 }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", { 10359 className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'), 10360 autoPlay: true, 10361 muted: true, 10362 loop: true, 10363 playsInline: true, 10364 src: url, 10365 style: { 10366 objectPosition 10367 }, 10368 "data-object-fit": "cover", 10369 "data-object-position": objectPosition 10370 }), (0,external_wp_element_namespaceObject.createElement)("div", { 10371 className: "wp-block-cover__inner-container" 10372 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null))); 10373 }, 10374 10375 migrate: migrateDimRatio 10376 }; 10377 const v6 = { 10378 attributes: { ...deprecated_blockAttributes, 10379 isRepeated: { 10380 type: 'boolean', 10381 default: false 10382 }, 10383 minHeight: { 10384 type: 'number' 10385 }, 10386 minHeightUnit: { 10387 type: 'string' 10388 }, 10389 gradient: { 10390 type: 'string' 10391 }, 10392 customGradient: { 10393 type: 'string' 10394 }, 10395 contentPosition: { 10396 type: 'string' 10397 } 10398 }, 10399 supports: { 10400 align: true 10401 }, 10402 10403 save(_ref4) { 10404 let { 10405 attributes 10406 } = _ref4; 10407 const { 10408 backgroundType, 10409 gradient, 10410 contentPosition, 10411 customGradient, 10412 customOverlayColor, 10413 dimRatio, 10414 focalPoint, 10415 hasParallax, 10416 isRepeated, 10417 overlayColor, 10418 url, 10419 minHeight: minHeightProp, 10420 minHeightUnit 10421 } = attributes; 10422 const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor); 10423 10424 const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient); 10425 10426 const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp; 10427 const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType; 10428 const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType; 10429 const style = isImageBackground ? backgroundImageStyles(url) : {}; 10430 const videoStyle = {}; 10431 10432 if (!overlayColorClass) { 10433 style.backgroundColor = customOverlayColor; 10434 } 10435 10436 if (customGradient && !url) { 10437 style.background = customGradient; 10438 } 10439 10440 style.minHeight = minHeight || undefined; 10441 let positionValue; 10442 10443 if (focalPoint) { 10444 positionValue = `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%`; 10445 10446 if (isImageBackground && !hasParallax) { 10447 style.backgroundPosition = positionValue; 10448 } 10449 10450 if (isVideoBackground) { 10451 videoStyle.objectPosition = positionValue; 10452 } 10453 } 10454 10455 const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, { 10456 'has-background-dim': dimRatio !== 0, 10457 'has-parallax': hasParallax, 10458 'is-repeated': isRepeated, 10459 'has-background-gradient': gradient || customGradient, 10460 [gradientClass]: !url && gradientClass, 10461 'has-custom-content-position': !isContentPositionCenter(contentPosition) 10462 }, getPositionClassName(contentPosition)); 10463 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 10464 className: classes, 10465 style 10466 }), url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", { 10467 "aria-hidden": "true", 10468 className: classnames_default()('wp-block-cover__gradient-background', gradientClass), 10469 style: customGradient ? { 10470 background: customGradient 10471 } : undefined 10472 }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", { 10473 className: "wp-block-cover__video-background", 10474 autoPlay: true, 10475 muted: true, 10476 loop: true, 10477 playsInline: true, 10478 src: url, 10479 style: videoStyle 10480 }), (0,external_wp_element_namespaceObject.createElement)("div", { 10481 className: "wp-block-cover__inner-container" 10482 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null))); 10483 }, 10484 10485 migrate: migrateDimRatio 10486 }; 10487 const v5 = { 10488 attributes: { ...deprecated_blockAttributes, 10489 minHeight: { 10490 type: 'number' 10491 }, 10492 gradient: { 10493 type: 'string' 10494 }, 10495 customGradient: { 10496 type: 'string' 10497 } 10498 }, 10499 supports: { 10500 align: true 10501 }, 10502 10503 save(_ref5) { 10504 let { 10505 attributes 10506 } = _ref5; 10507 const { 10508 backgroundType, 10509 gradient, 10510 customGradient, 10511 customOverlayColor, 10512 dimRatio, 10513 focalPoint, 10514 hasParallax, 10515 overlayColor, 10516 url, 10517 minHeight 10518 } = attributes; 10519 const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor); 10520 10521 const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient); 10522 10523 const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {}; 10524 10525 if (!overlayColorClass) { 10526 style.backgroundColor = customOverlayColor; 10527 } 10528 10529 if (focalPoint && !hasParallax) { 10530 style.backgroundPosition = `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%`; 10531 } 10532 10533 if (customGradient && !url) { 10534 style.background = customGradient; 10535 } 10536 10537 style.minHeight = minHeight || undefined; 10538 const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, { 10539 'has-background-dim': dimRatio !== 0, 10540 'has-parallax': hasParallax, 10541 'has-background-gradient': customGradient, 10542 [gradientClass]: !url && gradientClass 10543 }); 10544 return (0,external_wp_element_namespaceObject.createElement)("div", { 10545 className: classes, 10546 style: style 10547 }, url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", { 10548 "aria-hidden": "true", 10549 className: classnames_default()('wp-block-cover__gradient-background', gradientClass), 10550 style: customGradient ? { 10551 background: customGradient 10552 } : undefined 10553 }), VIDEO_BACKGROUND_TYPE === backgroundType && url && (0,external_wp_element_namespaceObject.createElement)("video", { 10554 className: "wp-block-cover__video-background", 10555 autoPlay: true, 10556 muted: true, 10557 loop: true, 10558 src: url 10559 }), (0,external_wp_element_namespaceObject.createElement)("div", { 10560 className: "wp-block-cover__inner-container" 10561 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null))); 10562 }, 10563 10564 migrate: migrateDimRatio 10565 }; 10566 const v4 = { 10567 attributes: { ...deprecated_blockAttributes, 10568 minHeight: { 10569 type: 'number' 10570 }, 10571 gradient: { 10572 type: 'string' 10573 }, 10574 customGradient: { 10575 type: 'string' 10576 } 10577 }, 10578 supports: { 10579 align: true 10580 }, 10581 10582 save(_ref6) { 10583 let { 10584 attributes 10585 } = _ref6; 10586 const { 10587 backgroundType, 10588 gradient, 10589 customGradient, 10590 customOverlayColor, 10591 dimRatio, 10592 focalPoint, 10593 hasParallax, 10594 overlayColor, 10595 url, 10596 minHeight 10597 } = attributes; 10598 const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor); 10599 10600 const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient); 10601 10602 const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {}; 10603 10604 if (!overlayColorClass) { 10605 style.backgroundColor = customOverlayColor; 10606 } 10607 10608 if (focalPoint && !hasParallax) { 10609 style.backgroundPosition = `$focalPoint.x * 100}% $focalPoint.y * 100}%`; 10610 } 10611 10612 if (customGradient && !url) { 10613 style.background = customGradient; 10614 } 10615 10616 style.minHeight = minHeight || undefined; 10617 const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, { 10618 'has-background-dim': dimRatio !== 0, 10619 'has-parallax': hasParallax, 10620 'has-background-gradient': customGradient, 10621 [gradientClass]: !url && gradientClass 10622 }); 10623 return (0,external_wp_element_namespaceObject.createElement)("div", { 10624 className: classes, 10625 style: style 10626 }, url && (gradient || customGradient) && dimRatio !== 0 && (0,external_wp_element_namespaceObject.createElement)("span", { 10627 "aria-hidden": "true", 10628 className: classnames_default()('wp-block-cover__gradient-background', gradientClass), 10629 style: customGradient ? { 10630 background: customGradient 10631 } : undefined 10632 }), VIDEO_BACKGROUND_TYPE === backgroundType && url && (0,external_wp_element_namespaceObject.createElement)("video", { 10633 className: "wp-block-cover__video-background", 10634 autoPlay: true, 10635 muted: true, 10636 loop: true, 10637 src: url 10638 }), (0,external_wp_element_namespaceObject.createElement)("div", { 10639 className: "wp-block-cover__inner-container" 10640 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null))); 10641 }, 10642 10643 migrate: migrateDimRatio 10644 }; 10645 const v3 = { 10646 attributes: { ...deprecated_blockAttributes, 10647 title: { 10648 type: 'string', 10649 source: 'html', 10650 selector: 'p' 10651 }, 10652 contentAlign: { 10653 type: 'string', 10654 default: 'center' 10655 } 10656 }, 10657 supports: { 10658 align: true 10659 }, 10660 10661 save(_ref7) { 10662 let { 10663 attributes 10664 } = _ref7; 10665 const { 10666 backgroundType, 10667 contentAlign, 10668 customOverlayColor, 10669 dimRatio, 10670 focalPoint, 10671 hasParallax, 10672 overlayColor, 10673 title, 10674 url 10675 } = attributes; 10676 const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor); 10677 const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {}; 10678 10679 if (!overlayColorClass) { 10680 style.backgroundColor = customOverlayColor; 10681 } 10682 10683 if (focalPoint && !hasParallax) { 10684 style.backgroundPosition = `$focalPoint.x * 100}% $focalPoint.y * 100}%`; 10685 } 10686 10687 const classes = classnames_default()(dimRatioToClassV1(dimRatio), overlayColorClass, { 10688 'has-background-dim': dimRatio !== 0, 10689 'has-parallax': hasParallax, 10690 [`has-$contentAlign}-content`]: contentAlign !== 'center' 10691 }); 10692 return (0,external_wp_element_namespaceObject.createElement)("div", { 10693 className: classes, 10694 style: style 10695 }, VIDEO_BACKGROUND_TYPE === backgroundType && url && (0,external_wp_element_namespaceObject.createElement)("video", { 10696 className: "wp-block-cover__video-background", 10697 autoPlay: true, 10698 muted: true, 10699 loop: true, 10700 src: url 10701 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(title) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 10702 tagName: "p", 10703 className: "wp-block-cover-text", 10704 value: title 10705 })); 10706 }, 10707 10708 migrate(attributes) { 10709 const newAttribs = { ...attributes, 10710 dimRatio: !attributes.url ? 100 : attributes.dimRatio 10711 }; 10712 return [(0,external_lodash_namespaceObject.omit)(newAttribs, ['title', 'contentAlign']), [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 10713 content: attributes.title, 10714 align: attributes.contentAlign, 10715 fontSize: 'large', 10716 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…') 10717 })]]; 10718 } 10719 10720 }; 10721 const v2 = { 10722 attributes: { ...deprecated_blockAttributes, 10723 title: { 10724 type: 'string', 10725 source: 'html', 10726 selector: 'p' 10727 }, 10728 contentAlign: { 10729 type: 'string', 10730 default: 'center' 10731 }, 10732 align: { 10733 type: 'string' 10734 } 10735 }, 10736 supports: { 10737 className: false 10738 }, 10739 10740 save(_ref8) { 10741 let { 10742 attributes 10743 } = _ref8; 10744 const { 10745 url, 10746 title, 10747 hasParallax, 10748 dimRatio, 10749 align, 10750 contentAlign, 10751 overlayColor, 10752 customOverlayColor 10753 } = attributes; 10754 const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor); 10755 const style = backgroundImageStyles(url); 10756 10757 if (!overlayColorClass) { 10758 style.backgroundColor = customOverlayColor; 10759 } 10760 10761 const classes = classnames_default()('wp-block-cover-image', dimRatioToClassV1(dimRatio), overlayColorClass, { 10762 'has-background-dim': dimRatio !== 0, 10763 'has-parallax': hasParallax, 10764 [`has-$contentAlign}-content`]: contentAlign !== 'center' 10765 }, align ? `align$align}` : null); 10766 return (0,external_wp_element_namespaceObject.createElement)("div", { 10767 className: classes, 10768 style: style 10769 }, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(title) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 10770 tagName: "p", 10771 className: "wp-block-cover-image-text", 10772 value: title 10773 })); 10774 }, 10775 10776 migrate(attributes) { 10777 const newAttribs = { ...attributes, 10778 dimRatio: !attributes.url ? 100 : attributes.dimRatio 10779 }; 10780 return [(0,external_lodash_namespaceObject.omit)(newAttribs, ['title', 'contentAlign', 'align']), [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 10781 content: attributes.title, 10782 align: attributes.contentAlign, 10783 fontSize: 'large', 10784 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…') 10785 })]]; 10786 } 10787 10788 }; 10789 const cover_deprecated_v1 = { 10790 attributes: { ...deprecated_blockAttributes, 10791 title: { 10792 type: 'string', 10793 source: 'html', 10794 selector: 'h2' 10795 }, 10796 align: { 10797 type: 'string' 10798 }, 10799 contentAlign: { 10800 type: 'string', 10801 default: 'center' 10802 } 10803 }, 10804 supports: { 10805 className: false 10806 }, 10807 10808 save(_ref9) { 10809 let { 10810 attributes 10811 } = _ref9; 10812 const { 10813 url, 10814 title, 10815 hasParallax, 10816 dimRatio, 10817 align 10818 } = attributes; 10819 const style = backgroundImageStyles(url); 10820 const classes = classnames_default()('wp-block-cover-image', dimRatioToClassV1(dimRatio), { 10821 'has-background-dim': dimRatio !== 0, 10822 'has-parallax': hasParallax 10823 }, align ? `align$align}` : null); 10824 return (0,external_wp_element_namespaceObject.createElement)("section", { 10825 className: classes, 10826 style: style 10827 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 10828 tagName: "h2", 10829 value: title 10830 })); 10831 }, 10832 10833 migrate(attributes) { 10834 const newAttribs = { ...attributes, 10835 dimRatio: !attributes.url ? 100 : attributes.dimRatio 10836 }; 10837 return [(0,external_lodash_namespaceObject.omit)(newAttribs, ['title', 'contentAlign', 'align']), [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 10838 content: attributes.title, 10839 align: attributes.contentAlign, 10840 fontSize: 'large', 10841 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…') 10842 })]]; 10843 } 10844 10845 }; 10846 /* harmony default export */ var cover_deprecated = ([v9, v8, v7, v6, v5, v4, v3, v2, cover_deprecated_v1]); 10847 10848 // EXTERNAL MODULE: ./node_modules/fast-average-color/dist/index.js 10849 var dist = __webpack_require__(5027); 10850 var dist_default = /*#__PURE__*/__webpack_require__.n(dist); 10851 ;// CONCATENATED MODULE: ./node_modules/colord/index.mjs 10852 var r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return"string"==typeof r?r.length>0:"number"==typeof r},n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},e=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},u=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},a=function(r){return{r:e(r.r,0,255),g:e(r.g,0,255),b:e(r.b,0,255),a:e(r.a)}},o=function(r){return{r:n(r.r),g:n(r.g),b:n(r.b),a:n(r.a,3)}},i=/^#([0-9a-f]{3,8})$/i,s=function(r){var t=r.toString(16);return t.length<2?"0"+t:t},h=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,a=Math.max(t,n,e),o=a-Math.min(t,n,e),i=o?a===t?(n-e)/o:a===n?2+(e-t)/o:4+(t-n)/o:0;return{h:60*(i<0?i+6:i),s:a?o/a*100:0,v:a/255*100,a:u}},b=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var a=Math.floor(t),o=e*(1-n),i=e*(1-(t-a)*n),s=e*(1-(1-t+a)*n),h=a%6;return{r:255*[e,i,o,o,s,e][h],g:255*[s,e,e,i,o,o][h],b:255*[o,o,s,e,e,i][h],a:u}},g=function(r){return{h:u(r.h),s:e(r.s,0,100),l:e(r.l,0,100),a:e(r.a)}},d=function(r){return{h:n(r.h),s:n(r.s),l:n(r.l),a:n(r.a,3)}},f=function(r){return b((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},c=function(r){return{h:(t=h(r)).h,s:(u=(200-(n=t.s))*(e=t.v)/100)>0&&u<200?n*e/100/(u<=100?u:200-u)*100:0,l:u/2,a:t.a};var t,n,e,u},l=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,p=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,m=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,y={string:[[function(r){var t=i.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:4===r.length?n(parseInt(r[3]+r[3],16)/255,2):1}:6===r.length||8===r.length?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:8===r.length?n(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var t=v.exec(r)||m.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(t){var n=l.exec(t)||p.exec(t);if(!n)return null;var e,u,a=g({h:(e=n[1],u=n[2],void 0===u&&(u="deg"),Number(e)*(r[u]||1)),s:Number(n[3]),l:Number(n[4]),a:void 0===n[5]?1:Number(n[5])/(n[6]?100:1)});return f(a)},"hsl"]],object:[[function(r){var n=r.r,e=r.g,u=r.b,o=r.a,i=void 0===o?1:o;return t(n)&&t(e)&&t(u)?a({r:Number(n),g:Number(e),b:Number(u),a:Number(i)}):null},"rgb"],[function(r){var n=r.h,e=r.s,u=r.l,a=r.a,o=void 0===a?1:a;if(!t(n)||!t(e)||!t(u))return null;var i=g({h:Number(n),s:Number(e),l:Number(u),a:Number(o)});return f(i)},"hsl"],[function(r){var n=r.h,a=r.s,o=r.v,i=r.a,s=void 0===i?1:i;if(!t(n)||!t(a)||!t(o))return null;var h=function(r){return{h:u(r.h),s:e(r.s,0,100),v:e(r.v,0,100),a:e(r.a)}}({h:Number(n),s:Number(a),v:Number(o),a:Number(s)});return b(h)},"hsv"]]},N=function(r,t){for(var n=0;n<t.length;n++){var e=t[n][0](r);if(e)return[e,t[n][1]]}return[null,void 0]},x=function(r){return"string"==typeof r?N(r.trim(),y.string):"object"==typeof r&&null!==r?N(r,y.object):[null,void 0]},I=function(r){return x(r)[1]},M=function(r,t){var n=c(r);return{h:n.h,s:e(n.s+100*t,0,100),l:n.l,a:n.a}},H=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},$=function(r,t){var n=c(r);return{h:n.h,s:n.s,l:e(n.l+100*t,0,100),a:n.a}},j=function(){function r(r){this.parsed=x(r)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return null!==this.parsed},r.prototype.brightness=function(){return n(H(this.rgba),2)},r.prototype.isDark=function(){return H(this.rgba)<.5},r.prototype.isLight=function(){return H(this.rgba)>=.5},r.prototype.toHex=function(){return r=o(this.rgba),t=r.r,e=r.g,u=r.b,i=(a=r.a)<1?s(n(255*a)):"","#"+s(t)+s(e)+s(u)+i;var r,t,e,u,a,i},r.prototype.toRgb=function(){return o(this.rgba)},r.prototype.toRgbString=function(){return r=o(this.rgba),t=r.r,n=r.g,e=r.b,(u=r.a)<1?"rgba("+t+", "+n+", "+e+", "+u+")":"rgb("+t+", "+n+", "+e+")";var r,t,n,e,u},r.prototype.toHsl=function(){return d(c(this.rgba))},r.prototype.toHslString=function(){return r=d(c(this.rgba)),t=r.h,n=r.s,e=r.l,(u=r.a)<1?"hsla("+t+", "+n+"%, "+e+"%, "+u+")":"hsl("+t+", "+n+"%, "+e+"%)";var r,t,n,e,u},r.prototype.toHsv=function(){return r=h(this.rgba),{h:n(r.h),s:n(r.s),v:n(r.v),a:n(r.a,3)};var r},r.prototype.invert=function(){return w({r:255-(r=this.rgba).r,g:255-r.g,b:255-r.b,a:r.a});var r},r.prototype.saturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,r))},r.prototype.desaturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,-r))},r.prototype.grayscale=function(){return w(M(this.rgba,-1))},r.prototype.lighten=function(r){return void 0===r&&(r=.1),w($(this.rgba,r))},r.prototype.darken=function(r){return void 0===r&&(r=.1),w($(this.rgba,-r))},r.prototype.rotate=function(r){return void 0===r&&(r=15),this.hue(this.hue()+r)},r.prototype.alpha=function(r){return"number"==typeof r?w({r:(t=this.rgba).r,g:t.g,b:t.b,a:r}):n(this.rgba.a,3);var t},r.prototype.hue=function(r){var t=c(this.rgba);return"number"==typeof r?w({h:r,s:t.s,l:t.l,a:t.a}):n(t.h)},r.prototype.isEqual=function(r){return this.toHex()===w(r).toHex()},r}(),w=function(r){return r instanceof j?r:new j(r)},S=[],k=function(r){r.forEach(function(r){S.indexOf(r)<0&&(r(j,y),S.push(r))})},E=function(){return new j({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})}; 10853 10854 ;// CONCATENATED MODULE: ./node_modules/colord/plugins/names.mjs 10855 /* harmony default export */ function names(e,f){var a={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},r={};for(var d in a)r[a[d]]=d;var l={};e.prototype.toName=function(f){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var d,i,n=r[this.toHex()];if(n)return n;if(null==f?void 0:f.closest){var o=this.toRgb(),t=1/0,b="black";if(!l.length)for(var c in a)l[c]=new e(a[c]).toRgb();for(var g in a){var u=(d=o,i=l[g],Math.pow(d.r-i.r,2)+Math.pow(d.g-i.g,2)+Math.pow(d.b-i.b,2));u<t&&(t=u,b=g)}return b}};f.string.push([function(f){var r=f.toLowerCase(),d="transparent"===r?"#0000":a[r];return d?new e(d).toRgb():null},"name"])} 10856 10857 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-featured-image.js 10858 10859 10860 /** 10861 * WordPress dependencies 10862 */ 10863 10864 const postFeaturedImage = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 10865 xmlns: "http://www.w3.org/2000/svg", 10866 viewBox: "0 0 24 24" 10867 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 10868 d: "M19 3H5c-.6 0-1 .4-1 1v7c0 .5.4 1 1 1h14c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1zM5.5 10.5v-.4l1.8-1.3 1.3.8c.3.2.7.2.9-.1L11 8.1l2.4 2.4H5.5zm13 0h-2.9l-4-4c-.3-.3-.8-.3-1.1 0L8.9 8l-1.2-.8c-.3-.2-.6-.2-.9 0l-1.3 1V4.5h13v6zM4 20h9v-1.5H4V20zm0-4h16v-1.5H4V16z" 10869 })); 10870 /* harmony default export */ var post_featured_image = (postFeaturedImage); 10871 10872 ;// CONCATENATED MODULE: external ["wp","notices"] 10873 var external_wp_notices_namespaceObject = window["wp"]["notices"]; 10874 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/edit.js 10875 10876 10877 10878 /** 10879 * External dependencies 10880 */ 10881 10882 10883 10884 10885 /** 10886 * WordPress dependencies 10887 */ 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 /** 10900 * Internal dependencies 10901 */ 10902 10903 10904 k([names]); 10905 const { 10906 __Visualizer: BoxControlVisualizer 10907 } = external_wp_components_namespaceObject.__experimentalBoxControl; 10908 10909 function getInnerBlocksTemplate(attributes) { 10910 return [['core/paragraph', { 10911 align: 'center', 10912 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…'), 10913 ...attributes 10914 }]]; 10915 } 10916 10917 function retrieveFastAverageColor() { 10918 if (!retrieveFastAverageColor.fastAverageColor) { 10919 retrieveFastAverageColor.fastAverageColor = new (dist_default())(); 10920 } 10921 10922 return retrieveFastAverageColor.fastAverageColor; 10923 } 10924 10925 function CoverHeightInput(_ref) { 10926 let { 10927 onChange, 10928 onUnitChange, 10929 unit = 'px', 10930 value = '' 10931 } = _ref; 10932 const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl); 10933 const inputId = `block-cover-height-input-$instanceId}`; 10934 const isPx = unit === 'px'; 10935 const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ 10936 availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || ['px', 'em', 'rem', 'vw', 'vh'], 10937 defaultValues: { 10938 px: 430, 10939 '%': 20, 10940 em: 20, 10941 rem: 20, 10942 vw: 20, 10943 vh: 50 10944 } 10945 }); 10946 10947 const handleOnChange = unprocessedValue => { 10948 const inputValue = unprocessedValue !== '' ? parseFloat(unprocessedValue) : undefined; 10949 10950 if (isNaN(inputValue) && inputValue !== undefined) { 10951 return; 10952 } 10953 10954 onChange(inputValue); 10955 }; 10956 10957 const computedValue = (0,external_wp_element_namespaceObject.useMemo)(() => { 10958 const [parsedQuantity] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value); 10959 return [parsedQuantity, unit].join(''); 10960 }, [unit, value]); 10961 const min = isPx ? COVER_MIN_HEIGHT : 0; 10962 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, { 10963 label: (0,external_wp_i18n_namespaceObject.__)('Minimum height of cover'), 10964 id: inputId 10965 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { 10966 id: inputId, 10967 isResetValueOnUnitChange: true, 10968 min: min, 10969 onChange: handleOnChange, 10970 onUnitChange: onUnitChange, 10971 style: { 10972 maxWidth: 80 10973 }, 10974 units: units, 10975 value: computedValue 10976 })); 10977 } 10978 10979 const RESIZABLE_BOX_ENABLE_OPTION = { 10980 top: false, 10981 right: false, 10982 bottom: true, 10983 left: false, 10984 topRight: false, 10985 bottomRight: false, 10986 bottomLeft: false, 10987 topLeft: false 10988 }; 10989 10990 function ResizableCover(_ref2) { 10991 let { 10992 className, 10993 onResizeStart, 10994 onResize, 10995 onResizeStop, 10996 ...props 10997 } = _ref2; 10998 const [isResizing, setIsResizing] = (0,external_wp_element_namespaceObject.useState)(false); 10999 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, _extends({ 11000 className: classnames_default()(className, { 11001 'is-resizing': isResizing 11002 }), 11003 enable: RESIZABLE_BOX_ENABLE_OPTION, 11004 onResizeStart: (_event, _direction, elt) => { 11005 onResizeStart(elt.clientHeight); 11006 onResize(elt.clientHeight); 11007 }, 11008 onResize: (_event, _direction, elt) => { 11009 onResize(elt.clientHeight); 11010 11011 if (!isResizing) { 11012 setIsResizing(true); 11013 } 11014 }, 11015 onResizeStop: (_event, _direction, elt) => { 11016 onResizeStop(elt.clientHeight); 11017 setIsResizing(false); 11018 } 11019 }, props)); 11020 } 11021 /** 11022 * useCoverIsDark is a hook that returns a boolean variable specifying if the cover 11023 * background is dark or not. 11024 * 11025 * @param {?string} url Url of the media background. 11026 * @param {?number} dimRatio Transparency of the overlay color. If an image and 11027 * color are set, dimRatio is used to decide what is used 11028 * for background darkness checking purposes. 11029 * @param {?string} overlayColor String containing the overlay color value if one exists. 11030 * @param {?Object} elementRef If a media background is set, elementRef should contain a reference to a 11031 * dom element that renders that media. 11032 * 11033 * @return {boolean} True if the cover background is considered "dark" and false otherwise. 11034 */ 11035 11036 11037 function useCoverIsDark(url) { 11038 let dimRatio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 50; 11039 let overlayColor = arguments.length > 2 ? arguments[2] : undefined; 11040 let elementRef = arguments.length > 3 ? arguments[3] : undefined; 11041 const [isDark, setIsDark] = (0,external_wp_element_namespaceObject.useState)(false); 11042 (0,external_wp_element_namespaceObject.useEffect)(() => { 11043 // If opacity is lower than 50 the dominant color is the image or video color, 11044 // so use that color for the dark mode computation. 11045 if (url && dimRatio <= 50 && elementRef.current) { 11046 retrieveFastAverageColor().getColorAsync(elementRef.current, color => { 11047 setIsDark(color.isDark); 11048 }); 11049 } 11050 }, [url, url && dimRatio <= 50 && elementRef.current, setIsDark]); 11051 (0,external_wp_element_namespaceObject.useEffect)(() => { 11052 // If opacity is greater than 50 the dominant color is the overlay color, 11053 // so use that color for the dark mode computation. 11054 if (dimRatio > 50 || !url) { 11055 if (!overlayColor) { 11056 // If no overlay color exists the overlay color is black (isDark ) 11057 setIsDark(true); 11058 return; 11059 } 11060 11061 setIsDark(w(overlayColor).isDark()); 11062 } 11063 }, [overlayColor, dimRatio > 50 || !url, setIsDark]); 11064 (0,external_wp_element_namespaceObject.useEffect)(() => { 11065 if (!url && !overlayColor) { 11066 // Reset isDark. 11067 setIsDark(false); 11068 } 11069 }, [!url && !overlayColor, setIsDark]); 11070 return isDark; 11071 } 11072 11073 function mediaPosition(_ref3) { 11074 let { 11075 x, 11076 y 11077 } = _ref3; 11078 return `$Math.round(x * 100)}% $Math.round(y * 100)}%`; 11079 } 11080 /** 11081 * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while 11082 * the media (image or video) is being uploaded and will not have an id allocated yet. 11083 * 11084 * @param {number} id The id of the media. 11085 * @param {string} url The url of the media. 11086 * 11087 * @return {boolean} Is the URL a Blob URL. 11088 */ 11089 11090 11091 const isTemporaryMedia = (id, url) => !id && (0,external_wp_blob_namespaceObject.isBlobURL)(url); 11092 11093 function CoverPlaceholder(_ref4) { 11094 let { 11095 disableMediaButtons = false, 11096 children, 11097 onSelectMedia, 11098 onError, 11099 style 11100 } = _ref4; 11101 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, { 11102 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { 11103 icon: library_cover 11104 }), 11105 labels: { 11106 title: (0,external_wp_i18n_namespaceObject.__)('Cover'), 11107 instructions: (0,external_wp_i18n_namespaceObject.__)('Drag and drop onto this block, upload, or select existing media from your library.') 11108 }, 11109 onSelect: onSelectMedia, 11110 accept: "image/*,video/*", 11111 allowedTypes: shared_ALLOWED_MEDIA_TYPES, 11112 disableMediaButtons: disableMediaButtons, 11113 onError: onError, 11114 style: style 11115 }, children); 11116 } 11117 11118 function CoverEdit(_ref5) { 11119 var _useSetting, _styleAttribute$spaci, _styleAttribute$visua; 11120 11121 let { 11122 attributes, 11123 clientId, 11124 isSelected, 11125 overlayColor, 11126 setAttributes, 11127 setOverlayColor, 11128 toggleSelection, 11129 context: { 11130 postId, 11131 postType 11132 } 11133 } = _ref5; 11134 const { 11135 contentPosition, 11136 id, 11137 useFeaturedImage, 11138 dimRatio, 11139 focalPoint, 11140 hasParallax, 11141 isDark, 11142 isRepeated, 11143 minHeight, 11144 minHeightUnit, 11145 style: styleAttribute, 11146 alt, 11147 allowedBlocks, 11148 templateLock 11149 } = attributes; 11150 const [featuredImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'featured_media', postId); 11151 const media = (0,external_wp_data_namespaceObject.useSelect)(select => featuredImage && select(external_wp_coreData_namespaceObject.store).getMedia(featuredImage, { 11152 context: 'view' 11153 }), [featuredImage]); 11154 const mediaUrl = media === null || media === void 0 ? void 0 : media.source_url; // instead of destructuring the attributes 11155 // we define the url and background type 11156 // depending on the value of the useFeaturedImage flag 11157 // to preview in edit the dynamic featured image 11158 11159 const url = useFeaturedImage ? mediaUrl : attributes.url; 11160 const backgroundType = useFeaturedImage ? IMAGE_BACKGROUND_TYPE : attributes.backgroundType; 11161 const { 11162 __unstableMarkNextChangeAsNotPersistent 11163 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 11164 const { 11165 createErrorNotice 11166 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); 11167 11168 const { 11169 gradientClass, 11170 gradientValue, 11171 setGradient 11172 } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)(); 11173 11174 const onSelectMedia = attributesFromMedia(setAttributes, dimRatio); 11175 const isUploadingMedia = isTemporaryMedia(id, url); 11176 const [prevMinHeightValue, setPrevMinHeightValue] = (0,external_wp_element_namespaceObject.useState)(minHeight); 11177 const [prevMinHeightUnit, setPrevMinHeightUnit] = (0,external_wp_element_namespaceObject.useState)(minHeightUnit); 11178 const isMinFullHeight = minHeightUnit === 'vh' && minHeight === 100; 11179 11180 const toggleMinFullHeight = () => { 11181 if (isMinFullHeight) { 11182 // If there aren't previous values, take the default ones. 11183 if (prevMinHeightUnit === 'vh' && prevMinHeightValue === 100) { 11184 return setAttributes({ 11185 minHeight: undefined, 11186 minHeightUnit: undefined 11187 }); 11188 } // Set the previous values of height. 11189 11190 11191 return setAttributes({ 11192 minHeight: prevMinHeightValue, 11193 minHeightUnit: prevMinHeightUnit 11194 }); 11195 } 11196 11197 setPrevMinHeightValue(minHeight); 11198 setPrevMinHeightUnit(minHeightUnit); // Set full height. 11199 11200 return setAttributes({ 11201 minHeight: 100, 11202 minHeightUnit: 'vh' 11203 }); 11204 }; 11205 11206 const toggleParallax = () => { 11207 setAttributes({ 11208 hasParallax: !hasParallax, 11209 ...(!hasParallax ? { 11210 focalPoint: undefined 11211 } : {}) 11212 }); 11213 }; 11214 11215 const toggleIsRepeated = () => { 11216 setAttributes({ 11217 isRepeated: !isRepeated 11218 }); 11219 }; 11220 11221 const toggleUseFeaturedImage = () => { 11222 setAttributes({ 11223 useFeaturedImage: !useFeaturedImage, 11224 dimRatio: dimRatio === 100 ? 50 : dimRatio 11225 }); 11226 }; 11227 11228 const onUploadError = message => { 11229 createErrorNotice(Array.isArray(message) ? message[2] : message, { 11230 type: 'snackbar' 11231 }); 11232 }; 11233 11234 const isDarkElement = (0,external_wp_element_namespaceObject.useRef)(); 11235 const isCoverDark = useCoverIsDark(url, dimRatio, overlayColor.color, isDarkElement); 11236 (0,external_wp_element_namespaceObject.useEffect)(() => { 11237 // This side-effect should not create an undo level. 11238 __unstableMarkNextChangeAsNotPersistent(); 11239 11240 setAttributes({ 11241 isDark: isCoverDark 11242 }); 11243 }, [isCoverDark]); 11244 const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType; 11245 const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType; 11246 const minHeightWithUnit = minHeight && minHeightUnit ? `${minHeight}${minHeightUnit}` : minHeight; 11247 const isImgElement = !(hasParallax || isRepeated); 11248 const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : undefined), 11249 minHeight: minHeightWithUnit || undefined 11250 }; 11251 const bgStyle = { 11252 backgroundColor: overlayColor.color 11253 }; 11254 const mediaStyle = { 11255 objectPosition: focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined 11256 }; 11257 const hasBackground = !!(url || overlayColor.color || gradientValue); 11258 const showFocalPointPicker = isVideoBackground || isImageBackground && (!hasParallax || isRepeated); 11259 11260 const imperativeFocalPointPreview = value => { 11261 const [styleOfRef, property] = isDarkElement.current ? [isDarkElement.current.style, 'objectPosition'] : [ref.current.style, 'backgroundPosition']; 11262 styleOfRef[property] = mediaPosition(value); 11263 }; 11264 11265 const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId).innerBlocks.length > 0, [clientId]); 11266 const controls = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 11267 group: "block" 11268 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockAlignmentMatrixControl, { 11269 label: (0,external_wp_i18n_namespaceObject.__)('Change content position'), 11270 value: contentPosition, 11271 onChange: nextPosition => setAttributes({ 11272 contentPosition: nextPosition 11273 }), 11274 isDisabled: !hasInnerBlocks 11275 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockFullHeightAligmentControl, { 11276 isActive: isMinFullHeight, 11277 onToggle: toggleMinFullHeight, 11278 isDisabled: !hasInnerBlocks 11279 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 11280 group: "other" 11281 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 11282 icon: post_featured_image, 11283 label: (0,external_wp_i18n_namespaceObject.__)('Use featured image'), 11284 isPressed: useFeaturedImage, 11285 onClick: toggleUseFeaturedImage 11286 }), !useFeaturedImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, { 11287 mediaId: id, 11288 mediaURL: url, 11289 allowedTypes: shared_ALLOWED_MEDIA_TYPES, 11290 accept: "image/*,video/*", 11291 onSelect: onSelectMedia, 11292 name: !url ? (0,external_wp_i18n_namespaceObject.__)('Add Media') : (0,external_wp_i18n_namespaceObject.__)('Replace') 11293 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, !!url && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 11294 title: (0,external_wp_i18n_namespaceObject.__)('Media settings') 11295 }, isImageBackground && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 11296 label: (0,external_wp_i18n_namespaceObject.__)('Fixed background'), 11297 checked: hasParallax, 11298 onChange: toggleParallax 11299 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 11300 label: (0,external_wp_i18n_namespaceObject.__)('Repeated background'), 11301 checked: isRepeated, 11302 onChange: toggleIsRepeated 11303 })), showFocalPointPicker && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FocalPointPicker, { 11304 label: (0,external_wp_i18n_namespaceObject.__)('Focal point picker'), 11305 url: url, 11306 value: focalPoint, 11307 onDragStart: imperativeFocalPointPreview, 11308 onDrag: imperativeFocalPointPreview, 11309 onChange: newFocalPoint => setAttributes({ 11310 focalPoint: newFocalPoint 11311 }) 11312 }), !useFeaturedImage && url && isImageBackground && isImgElement && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, { 11313 label: (0,external_wp_i18n_namespaceObject.__)('Alt text (alternative text)'), 11314 value: alt, 11315 onChange: newAlt => setAttributes({ 11316 alt: newAlt 11317 }), 11318 help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { 11319 href: "https://www.w3.org/WAI/tutorials/images/decision-tree" 11320 }, (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image')), (0,external_wp_i18n_namespaceObject.__)('Leave empty if the image is purely decorative.')) 11321 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelRow, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 11322 variant: "secondary", 11323 isSmall: true, 11324 className: "block-library-cover__reset-button", 11325 onClick: () => setAttributes({ 11326 url: undefined, 11327 id: undefined, 11328 backgroundType: undefined, 11329 focalPoint: undefined, 11330 hasParallax: undefined, 11331 isRepeated: undefined, 11332 useFeaturedImage: false 11333 }) 11334 }, (0,external_wp_i18n_namespaceObject.__)('Clear Media')))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalPanelColorGradientSettings, { 11335 __experimentalHasMultipleOrigins: true, 11336 __experimentalIsRenderedInSidebar: true, 11337 title: (0,external_wp_i18n_namespaceObject.__)('Overlay'), 11338 initialOpen: true, 11339 settings: [{ 11340 colorValue: overlayColor.color, 11341 gradientValue, 11342 onColorChange: setOverlayColor, 11343 onGradientChange: setGradient, 11344 label: (0,external_wp_i18n_namespaceObject.__)('Color') 11345 }] 11346 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 11347 label: (0,external_wp_i18n_namespaceObject.__)('Opacity'), 11348 value: dimRatio, 11349 onChange: newDimRation => setAttributes({ 11350 dimRatio: newDimRation 11351 }), 11352 min: 0, 11353 max: 100, 11354 step: 10, 11355 required: true 11356 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, { 11357 __experimentalGroup: "dimensions" 11358 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { 11359 hasValue: () => !!minHeight, 11360 label: (0,external_wp_i18n_namespaceObject.__)('Minimum height'), 11361 onDeselect: () => setAttributes({ 11362 minHeight: undefined, 11363 minHeightUnit: undefined 11364 }), 11365 resetAllFilter: () => ({ 11366 minHeight: undefined, 11367 minHeightUnit: undefined 11368 }), 11369 isShownByDefault: true, 11370 panelId: clientId 11371 }, (0,external_wp_element_namespaceObject.createElement)(CoverHeightInput, { 11372 value: minHeight, 11373 unit: minHeightUnit, 11374 onChange: newMinHeight => setAttributes({ 11375 minHeight: newMinHeight 11376 }), 11377 onUnitChange: nextUnit => setAttributes({ 11378 minHeightUnit: nextUnit 11379 }) 11380 })))); 11381 const ref = (0,external_wp_element_namespaceObject.useRef)(); 11382 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 11383 ref 11384 }); // Check for fontSize support before we pass a fontSize attribute to the innerBlocks. 11385 11386 const hasFontSizes = !!((_useSetting = (0,external_wp_blockEditor_namespaceObject.useSetting)('typography.fontSizes')) !== null && _useSetting !== void 0 && _useSetting.length); 11387 const innerBlocksTemplate = getInnerBlocksTemplate({ 11388 fontSize: hasFontSizes ? 'large' : undefined 11389 }); 11390 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({ 11391 className: 'wp-block-cover__inner-container' 11392 }, { 11393 template: innerBlocksTemplate, 11394 templateInsertUpdatesSelection: true, 11395 allowedBlocks, 11396 templateLock 11397 }); 11398 11399 if (!hasInnerBlocks && !hasBackground) { 11400 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, controls, (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockProps, { 11401 className: classnames_default()('is-placeholder', blockProps.className) 11402 }), (0,external_wp_element_namespaceObject.createElement)(CoverPlaceholder, { 11403 onSelectMedia: onSelectMedia, 11404 onError: onUploadError, 11405 style: { 11406 minHeight: minHeightWithUnit || undefined 11407 } 11408 }, (0,external_wp_element_namespaceObject.createElement)("div", { 11409 className: "wp-block-cover__placeholder-background-options" 11410 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ColorPalette, { 11411 disableCustomColors: true, 11412 value: overlayColor.color, 11413 onChange: setOverlayColor, 11414 clearable: false 11415 }))), (0,external_wp_element_namespaceObject.createElement)(ResizableCover, { 11416 className: "block-library-cover__resize-container", 11417 onResizeStart: () => { 11418 setAttributes({ 11419 minHeightUnit: 'px' 11420 }); 11421 toggleSelection(false); 11422 }, 11423 onResize: value => { 11424 setAttributes({ 11425 minHeight: value 11426 }); 11427 }, 11428 onResizeStop: newMinHeight => { 11429 toggleSelection(true); 11430 setAttributes({ 11431 minHeight: newMinHeight 11432 }); 11433 }, 11434 showHandle: isSelected 11435 }))); 11436 } 11437 11438 const classes = classnames_default()({ 11439 'is-dark-theme': isDark, 11440 'is-light': !isDark, 11441 'is-transient': isUploadingMedia, 11442 'has-parallax': hasParallax, 11443 'is-repeated': isRepeated, 11444 'has-custom-content-position': !isContentPositionCenter(contentPosition) 11445 }, getPositionClassName(contentPosition)); 11446 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, controls, (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockProps, { 11447 className: classnames_default()(classes, blockProps.className), 11448 style: { ...style, 11449 ...blockProps.style 11450 }, 11451 "data-url": url 11452 }), (0,external_wp_element_namespaceObject.createElement)(BoxControlVisualizer, { 11453 values: styleAttribute === null || styleAttribute === void 0 ? void 0 : (_styleAttribute$spaci = styleAttribute.spacing) === null || _styleAttribute$spaci === void 0 ? void 0 : _styleAttribute$spaci.padding, 11454 showValues: styleAttribute === null || styleAttribute === void 0 ? void 0 : (_styleAttribute$visua = styleAttribute.visualizers) === null || _styleAttribute$visua === void 0 ? void 0 : _styleAttribute$visua.padding, 11455 className: "block-library-cover__padding-visualizer" 11456 }), (0,external_wp_element_namespaceObject.createElement)(ResizableCover, { 11457 className: "block-library-cover__resize-container", 11458 onResizeStart: () => { 11459 setAttributes({ 11460 minHeightUnit: 'px' 11461 }); 11462 toggleSelection(false); 11463 }, 11464 onResize: value => { 11465 setAttributes({ 11466 minHeight: value 11467 }); 11468 }, 11469 onResizeStop: newMinHeight => { 11470 toggleSelection(true); 11471 setAttributes({ 11472 minHeight: newMinHeight 11473 }); 11474 }, 11475 showHandle: isSelected 11476 }), (0,external_wp_element_namespaceObject.createElement)("span", { 11477 "aria-hidden": "true", 11478 className: classnames_default()('wp-block-cover__background', dimRatioToClass(dimRatio), { 11479 [overlayColor.class]: overlayColor.class, 11480 'has-background-dim': dimRatio !== undefined, 11481 // For backwards compatibility. Former versions of the Cover Block applied 11482 // `.wp-block-cover__gradient-background` in the presence of 11483 // media, a gradient and a dim. 11484 'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0, 11485 'has-background-gradient': gradientValue, 11486 [gradientClass]: gradientClass 11487 }), 11488 style: { 11489 backgroundImage: gradientValue, 11490 ...bgStyle 11491 } 11492 }), url && isImageBackground && isImgElement && (0,external_wp_element_namespaceObject.createElement)("img", { 11493 ref: isDarkElement, 11494 className: "wp-block-cover__image-background", 11495 alt: alt, 11496 src: url, 11497 style: mediaStyle 11498 }), url && isVideoBackground && (0,external_wp_element_namespaceObject.createElement)("video", { 11499 ref: isDarkElement, 11500 className: "wp-block-cover__video-background", 11501 autoPlay: true, 11502 muted: true, 11503 loop: true, 11504 src: url, 11505 style: mediaStyle 11506 }), isUploadingMedia && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (0,external_wp_element_namespaceObject.createElement)(CoverPlaceholder, { 11507 disableMediaButtons: true, 11508 onSelectMedia: onSelectMedia, 11509 onError: onUploadError 11510 }), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps))); 11511 } 11512 11513 /* harmony default export */ var cover_edit = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_blockEditor_namespaceObject.withColors)({ 11514 overlayColor: 'background-color' 11515 })])(CoverEdit)); 11516 11517 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/save.js 11518 11519 11520 /** 11521 * External dependencies 11522 */ 11523 11524 /** 11525 * WordPress dependencies 11526 */ 11527 11528 11529 /** 11530 * Internal dependencies 11531 */ 11532 11533 11534 function cover_save_save(_ref) { 11535 let { 11536 attributes 11537 } = _ref; 11538 const { 11539 backgroundType, 11540 gradient, 11541 contentPosition, 11542 customGradient, 11543 customOverlayColor, 11544 dimRatio, 11545 focalPoint, 11546 useFeaturedImage, 11547 hasParallax, 11548 isDark, 11549 isRepeated, 11550 overlayColor, 11551 url, 11552 alt, 11553 id, 11554 minHeight: minHeightProp, 11555 minHeightUnit 11556 } = attributes; 11557 const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor); 11558 11559 const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient); 11560 11561 const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp; 11562 const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType; 11563 const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType; 11564 const isImgElement = !(hasParallax || isRepeated); 11565 const style = { ...(isImageBackground && !isImgElement && !useFeaturedImage ? backgroundImageStyles(url) : {}), 11566 minHeight: minHeight || undefined 11567 }; 11568 const bgStyle = { 11569 backgroundColor: !overlayColorClass ? customOverlayColor : undefined, 11570 background: customGradient ? customGradient : undefined 11571 }; 11572 const objectPosition = // prettier-ignore 11573 focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined; 11574 const classes = classnames_default()({ 11575 'is-light': !isDark, 11576 'has-parallax': hasParallax, 11577 'is-repeated': isRepeated, 11578 'has-custom-content-position': !isContentPositionCenter(contentPosition) 11579 }, getPositionClassName(contentPosition)); 11580 const gradientValue = gradient || customGradient; 11581 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 11582 className: classes, 11583 style 11584 }), (0,external_wp_element_namespaceObject.createElement)("span", { 11585 "aria-hidden": "true", 11586 className: classnames_default()('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), { 11587 'has-background-dim': dimRatio !== undefined, 11588 // For backwards compatibility. Former versions of the Cover Block applied 11589 // `.wp-block-cover__gradient-background` in the presence of 11590 // media, a gradient and a dim. 11591 'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0, 11592 'has-background-gradient': gradientValue, 11593 [gradientClass]: gradientClass 11594 }), 11595 style: bgStyle 11596 }), !useFeaturedImage && isImageBackground && isImgElement && url && (0,external_wp_element_namespaceObject.createElement)("img", { 11597 className: classnames_default()('wp-block-cover__image-background', id ? `wp-image-$id}` : null), 11598 alt: alt, 11599 src: url, 11600 style: { 11601 objectPosition 11602 }, 11603 "data-object-fit": "cover", 11604 "data-object-position": objectPosition 11605 }), isVideoBackground && url && (0,external_wp_element_namespaceObject.createElement)("video", { 11606 className: classnames_default()('wp-block-cover__video-background', 'intrinsic-ignore'), 11607 autoPlay: true, 11608 muted: true, 11609 loop: true, 11610 playsInline: true, 11611 src: url, 11612 style: { 11613 objectPosition 11614 }, 11615 "data-object-fit": "cover", 11616 "data-object-position": objectPosition 11617 }), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({ 11618 className: 'wp-block-cover__inner-container' 11619 }))); 11620 } 11621 11622 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/transforms.js 11623 /** 11624 * WordPress dependencies 11625 */ 11626 11627 /** 11628 * Internal dependencies 11629 */ 11630 11631 11632 const cover_transforms_transforms = { 11633 from: [{ 11634 type: 'block', 11635 blocks: ['core/image'], 11636 transform: _ref => { 11637 var _style$color; 11638 11639 let { 11640 caption, 11641 url, 11642 alt, 11643 align, 11644 id, 11645 anchor, 11646 style 11647 } = _ref; 11648 return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', { 11649 dimRatio: 50, 11650 url, 11651 alt, 11652 align, 11653 id, 11654 anchor, 11655 style: { 11656 color: { 11657 duotone: style === null || style === void 0 ? void 0 : (_style$color = style.color) === null || _style$color === void 0 ? void 0 : _style$color.duotone 11658 } 11659 } 11660 }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 11661 content: caption, 11662 fontSize: 'large', 11663 align: 'center' 11664 })]); 11665 } 11666 }, { 11667 type: 'block', 11668 blocks: ['core/video'], 11669 transform: _ref2 => { 11670 let { 11671 caption, 11672 src, 11673 align, 11674 id, 11675 anchor 11676 } = _ref2; 11677 return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', { 11678 dimRatio: 50, 11679 url: src, 11680 align, 11681 id, 11682 backgroundType: VIDEO_BACKGROUND_TYPE, 11683 anchor 11684 }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 11685 content: caption, 11686 fontSize: 'large', 11687 align: 'center' 11688 })]); 11689 } 11690 }, { 11691 type: 'block', 11692 blocks: ['core/group'], 11693 transform: (attributes, innerBlocks) => { 11694 var _style$color2, _style$color3, _style$color4, _style$color5, _attributes$style; 11695 11696 const { 11697 align, 11698 anchor, 11699 backgroundColor, 11700 gradient, 11701 style 11702 } = attributes; // If no background or gradient color is provided, default to 50% opacity. 11703 // This matches the styling of a Cover block with a background image, 11704 // in the state where a background image has been removed. 11705 11706 const dimRatio = backgroundColor || gradient || style !== null && style !== void 0 && (_style$color2 = style.color) !== null && _style$color2 !== void 0 && _style$color2.background || style !== null && style !== void 0 && (_style$color3 = style.color) !== null && _style$color3 !== void 0 && _style$color3.gradient ? undefined : 50; // Move the background or gradient color to the parent Cover block. 11707 11708 const parentAttributes = { 11709 align, 11710 anchor, 11711 dimRatio, 11712 overlayColor: backgroundColor, 11713 customOverlayColor: style === null || style === void 0 ? void 0 : (_style$color4 = style.color) === null || _style$color4 === void 0 ? void 0 : _style$color4.background, 11714 gradient, 11715 customGradient: style === null || style === void 0 ? void 0 : (_style$color5 = style.color) === null || _style$color5 === void 0 ? void 0 : _style$color5.gradient 11716 }; 11717 const attributesWithoutBackgroundColors = { ...attributes, 11718 backgroundColor: undefined, 11719 gradient: undefined, 11720 style: { ...(attributes === null || attributes === void 0 ? void 0 : attributes.style), 11721 color: { ...(attributes === null || attributes === void 0 ? void 0 : (_attributes$style = attributes.style) === null || _attributes$style === void 0 ? void 0 : _attributes$style.color), 11722 background: undefined, 11723 gradient: undefined 11724 } 11725 } 11726 }; // Preserve the block by nesting it within the Cover block, 11727 // instead of converting the Group block directly to the Cover block. 11728 11729 return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', parentAttributes, [(0,external_wp_blocks_namespaceObject.createBlock)('core/group', attributesWithoutBackgroundColors, innerBlocks)]); 11730 } 11731 }], 11732 to: [{ 11733 type: 'block', 11734 blocks: ['core/image'], 11735 isMatch: _ref3 => { 11736 let { 11737 backgroundType, 11738 url, 11739 overlayColor, 11740 customOverlayColor, 11741 gradient, 11742 customGradient 11743 } = _ref3; 11744 11745 if (url) { 11746 // If a url exists the transform could happen if that URL represents an image background. 11747 return backgroundType === IMAGE_BACKGROUND_TYPE; 11748 } // If a url is not set the transform could happen if the cover has no background color or gradient; 11749 11750 11751 return !overlayColor && !customOverlayColor && !gradient && !customGradient; 11752 }, 11753 transform: _ref4 => { 11754 var _style$color6; 11755 11756 let { 11757 title, 11758 url, 11759 alt, 11760 align, 11761 id, 11762 anchor, 11763 style 11764 } = _ref4; 11765 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { 11766 caption: title, 11767 url, 11768 alt, 11769 align, 11770 id, 11771 anchor, 11772 style: { 11773 color: { 11774 duotone: style === null || style === void 0 ? void 0 : (_style$color6 = style.color) === null || _style$color6 === void 0 ? void 0 : _style$color6.duotone 11775 } 11776 } 11777 }); 11778 } 11779 }, { 11780 type: 'block', 11781 blocks: ['core/video'], 11782 isMatch: _ref5 => { 11783 let { 11784 backgroundType, 11785 url, 11786 overlayColor, 11787 customOverlayColor, 11788 gradient, 11789 customGradient 11790 } = _ref5; 11791 11792 if (url) { 11793 // If a url exists the transform could happen if that URL represents a video background. 11794 return backgroundType === VIDEO_BACKGROUND_TYPE; 11795 } // If a url is not set the transform could happen if the cover has no background color or gradient; 11796 11797 11798 return !overlayColor && !customOverlayColor && !gradient && !customGradient; 11799 }, 11800 transform: _ref6 => { 11801 let { 11802 title, 11803 url, 11804 align, 11805 id, 11806 anchor 11807 } = _ref6; 11808 return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', { 11809 caption: title, 11810 src: url, 11811 id, 11812 align, 11813 anchor 11814 }); 11815 } 11816 }] 11817 }; 11818 /* harmony default export */ var cover_transforms = (cover_transforms_transforms); 11819 11820 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/index.js 11821 /** 11822 * WordPress dependencies 11823 */ 11824 11825 11826 /** 11827 * Internal dependencies 11828 */ 11829 11830 11831 11832 const cover_metadata = { 11833 $schema: "https://schemas.wp.org/trunk/block.json", 11834 apiVersion: 2, 11835 name: "core/cover", 11836 title: "Cover", 11837 category: "media", 11838 description: "Add an image or video with a text overlay \u2014 great for headers.", 11839 textdomain: "default", 11840 attributes: { 11841 url: { 11842 type: "string" 11843 }, 11844 useFeaturedImage: { 11845 type: "boolean", 11846 "default": false 11847 }, 11848 id: { 11849 type: "number" 11850 }, 11851 alt: { 11852 type: "string", 11853 source: "attribute", 11854 selector: "img", 11855 attribute: "alt", 11856 "default": "" 11857 }, 11858 hasParallax: { 11859 type: "boolean", 11860 "default": false 11861 }, 11862 isRepeated: { 11863 type: "boolean", 11864 "default": false 11865 }, 11866 dimRatio: { 11867 type: "number", 11868 "default": 100 11869 }, 11870 overlayColor: { 11871 type: "string" 11872 }, 11873 customOverlayColor: { 11874 type: "string" 11875 }, 11876 backgroundType: { 11877 type: "string", 11878 "default": "image" 11879 }, 11880 focalPoint: { 11881 type: "object" 11882 }, 11883 minHeight: { 11884 type: "number" 11885 }, 11886 minHeightUnit: { 11887 type: "string" 11888 }, 11889 gradient: { 11890 type: "string" 11891 }, 11892 customGradient: { 11893 type: "string" 11894 }, 11895 contentPosition: { 11896 type: "string" 11897 }, 11898 isDark: { 11899 type: "boolean", 11900 "default": true 11901 }, 11902 allowedBlocks: { 11903 type: "array" 11904 }, 11905 templateLock: { 11906 type: ["string", "boolean"], 11907 "enum": ["all", "insert", false] 11908 } 11909 }, 11910 usesContext: ["postId", "postType"], 11911 supports: { 11912 anchor: true, 11913 align: true, 11914 html: false, 11915 spacing: { 11916 padding: true, 11917 __experimentalDefaultControls: { 11918 padding: true 11919 } 11920 }, 11921 color: { 11922 __experimentalDuotone: "> .wp-block-cover__image-background, > .wp-block-cover__video-background", 11923 text: false, 11924 background: false 11925 } 11926 }, 11927 editorStyle: "wp-block-cover-editor", 11928 style: "wp-block-cover" 11929 }; 11930 11931 11932 const { 11933 name: cover_name 11934 } = cover_metadata; 11935 11936 const cover_settings = { 11937 icon: library_cover, 11938 example: { 11939 attributes: { 11940 customOverlayColor: '#065174', 11941 dimRatio: 40, 11942 url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg' 11943 }, 11944 innerBlocks: [{ 11945 name: 'core/paragraph', 11946 attributes: { 11947 customFontSize: 48, 11948 content: (0,external_wp_i18n_namespaceObject.__)('<strong>Snow Patrol</strong>'), 11949 align: 'center' 11950 } 11951 }] 11952 }, 11953 transforms: cover_transforms, 11954 save: cover_save_save, 11955 edit: cover_edit, 11956 deprecated: cover_deprecated 11957 }; 11958 11959 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pencil.js 11960 11961 11962 /** 11963 * WordPress dependencies 11964 */ 11965 11966 const pencil = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 11967 xmlns: "http://www.w3.org/2000/svg", 11968 viewBox: "0 0 24 24" 11969 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 11970 d: "M20.1 5.1L16.9 2 6.2 12.7l-1.3 4.4 4.5-1.3L20.1 5.1zM4 20.8h8v-1.5H4v1.5z" 11971 })); 11972 /* harmony default export */ var library_pencil = (pencil); 11973 11974 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js 11975 /** 11976 * Internal dependencies 11977 */ 11978 11979 /* harmony default export */ var library_edit = (library_pencil); 11980 11981 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-controls.js 11982 11983 11984 /** 11985 * WordPress dependencies 11986 */ 11987 11988 11989 11990 11991 11992 function getResponsiveHelp(checked) { 11993 return checked ? (0,external_wp_i18n_namespaceObject.__)('This embed will preserve its aspect ratio when the browser is resized.') : (0,external_wp_i18n_namespaceObject.__)('This embed may not preserve its aspect ratio when the browser is resized.'); 11994 } 11995 11996 const EmbedControls = _ref => { 11997 let { 11998 blockSupportsResponsive, 11999 showEditButton, 12000 themeSupportsResponsive, 12001 allowResponsive, 12002 toggleResponsive, 12003 switchBackToURLInput 12004 } = _ref; 12005 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, showEditButton && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 12006 className: "components-toolbar__control", 12007 label: (0,external_wp_i18n_namespaceObject.__)('Edit URL'), 12008 icon: library_edit, 12009 onClick: switchBackToURLInput 12010 }))), themeSupportsResponsive && blockSupportsResponsive && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 12011 title: (0,external_wp_i18n_namespaceObject.__)('Media settings'), 12012 className: "blocks-responsive" 12013 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 12014 label: (0,external_wp_i18n_namespaceObject.__)('Resize for smaller devices'), 12015 checked: allowResponsive, 12016 help: getResponsiveHelp, 12017 onChange: toggleResponsive 12018 })))); 12019 }; 12020 12021 /* harmony default export */ var embed_controls = (EmbedControls); 12022 12023 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/icons.js 12024 12025 12026 /** 12027 * WordPress dependencies 12028 */ 12029 12030 const embedContentIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12031 viewBox: "0 0 24 24", 12032 xmlns: "http://www.w3.org/2000/svg" 12033 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12034 d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z" 12035 })); 12036 const embedAudioIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12037 viewBox: "0 0 24 24", 12038 xmlns: "http://www.w3.org/2000/svg" 12039 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12040 d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM13.2 7.7c-.4.4-.7 1.1-.7 1.9v3.7c-.4-.3-.8-.4-1.3-.4-1.2 0-2.2 1-2.2 2.2 0 1.2 1 2.2 2.2 2.2.5 0 1-.2 1.4-.5.9-.6 1.4-1.6 1.4-2.6V9.6c0-.4.1-.6.2-.8.3-.3 1-.3 1.6-.3h.2V7h-.2c-.7 0-1.8 0-2.6.7z" 12041 })); 12042 const embedPhotoIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12043 viewBox: "0 0 24 24", 12044 xmlns: "http://www.w3.org/2000/svg" 12045 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12046 d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.2 4.5H19c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V9.8l4.6-5.3zm9.8 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z" 12047 })); 12048 const embedVideoIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12049 viewBox: "0 0 24 24", 12050 xmlns: "http://www.w3.org/2000/svg" 12051 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12052 d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM10 15l5-3-5-3v6z" 12053 })); 12054 const embedTwitterIcon = { 12055 foreground: '#1da1f2', 12056 src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12057 xmlns: "http://www.w3.org/2000/svg", 12058 viewBox: "0 0 24 24" 12059 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12060 d: "M22.23 5.924c-.736.326-1.527.547-2.357.646.847-.508 1.498-1.312 1.804-2.27-.793.47-1.67.812-2.606.996C18.325 4.498 17.258 4 16.078 4c-2.266 0-4.103 1.837-4.103 4.103 0 .322.036.635.106.935-3.41-.17-6.433-1.804-8.457-4.287-.353.607-.556 1.312-.556 2.064 0 1.424.724 2.68 1.825 3.415-.673-.022-1.305-.207-1.86-.514v.052c0 1.988 1.415 3.647 3.293 4.023-.344.095-.707.145-1.08.145-.265 0-.522-.026-.773-.074.522 1.63 2.038 2.817 3.833 2.85-1.404 1.1-3.174 1.757-5.096 1.757-.332 0-.66-.02-.98-.057 1.816 1.164 3.973 1.843 6.29 1.843 7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.53.802-.578 1.497-1.3 2.047-2.124z" 12061 }))) 12062 }; 12063 const embedYouTubeIcon = { 12064 foreground: '#ff0000', 12065 src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12066 viewBox: "0 0 24 24" 12067 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12068 d: "M21.8 8s-.195-1.377-.795-1.984c-.76-.797-1.613-.8-2.004-.847-2.798-.203-6.996-.203-6.996-.203h-.01s-4.197 0-6.996.202c-.39.046-1.242.05-2.003.846C2.395 6.623 2.2 8 2.2 8S2 9.62 2 11.24v1.517c0 1.618.2 3.237.2 3.237s.195 1.378.795 1.985c.76.797 1.76.77 2.205.855 1.6.153 6.8.2 6.8.2s4.203-.005 7-.208c.392-.047 1.244-.05 2.005-.847.6-.607.795-1.985.795-1.985s.2-1.618.2-3.237v-1.517C22 9.62 21.8 8 21.8 8zM9.935 14.595v-5.62l5.403 2.82-5.403 2.8z" 12069 })) 12070 }; 12071 const embedFacebookIcon = { 12072 foreground: '#3b5998', 12073 src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12074 viewBox: "0 0 24 24" 12075 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12076 d: "M20 3H4c-.6 0-1 .4-1 1v16c0 .5.4 1 1 1h8.6v-7h-2.3v-2.7h2.3v-2c0-2.3 1.4-3.6 3.5-3.6 1 0 1.8.1 2.1.1v2.4h-1.4c-1.1 0-1.3.5-1.3 1.3v1.7h2.7l-.4 2.8h-2.3v7H20c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1z" 12077 })) 12078 }; 12079 const embedInstagramIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12080 viewBox: "0 0 24 24" 12081 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12082 d: "M12 4.622c2.403 0 2.688.01 3.637.052.877.04 1.354.187 1.67.31.42.163.72.358 1.036.673.315.315.51.615.673 1.035.123.317.27.794.31 1.67.043.95.052 1.235.052 3.638s-.01 2.688-.052 3.637c-.04.877-.187 1.354-.31 1.67-.163.42-.358.72-.673 1.036-.315.315-.615.51-1.035.673-.317.123-.794.27-1.67.31-.95.043-1.234.052-3.638.052s-2.688-.01-3.637-.052c-.877-.04-1.354-.187-1.67-.31-.42-.163-.72-.358-1.036-.673-.315-.315-.51-.615-.673-1.035-.123-.317-.27-.794-.31-1.67-.043-.95-.052-1.235-.052-3.638s.01-2.688.052-3.637c.04-.877.187-1.354.31-1.67.163-.42.358-.72.673-1.036.315-.315.615-.51 1.035-.673.317-.123.794-.27 1.67-.31.95-.043 1.235-.052 3.638-.052M12 3c-2.444 0-2.75.01-3.71.054s-1.613.196-2.185.418c-.592.23-1.094.538-1.594 1.04-.5.5-.807 1-1.037 1.593-.223.572-.375 1.226-.42 2.184C3.01 9.25 3 9.555 3 12s.01 2.75.054 3.71.196 1.613.418 2.186c.23.592.538 1.094 1.038 1.594s1.002.808 1.594 1.038c.572.222 1.227.375 2.185.418.96.044 1.266.054 3.71.054s2.75-.01 3.71-.054 1.613-.196 2.186-.418c.592-.23 1.094-.538 1.594-1.038s.808-1.002 1.038-1.594c.222-.572.375-1.227.418-2.185.044-.96.054-1.266.054-3.71s-.01-2.75-.054-3.71-.196-1.613-.418-2.186c-.23-.592-.538-1.094-1.038-1.594s-1.002-.808-1.594-1.038c-.572-.222-1.227-.375-2.185-.418C14.75 3.01 14.445 3 12 3zm0 4.378c-2.552 0-4.622 2.07-4.622 4.622s2.07 4.622 4.622 4.622 4.622-2.07 4.622-4.622S14.552 7.378 12 7.378zM12 15c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.804-8.884c-.596 0-1.08.484-1.08 1.08s.484 1.08 1.08 1.08c.596 0 1.08-.484 1.08-1.08s-.483-1.08-1.08-1.08z" 12083 }))); 12084 const embedWordPressIcon = { 12085 foreground: '#0073AA', 12086 src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12087 viewBox: "0 0 24 24" 12088 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12089 d: "M12.158 12.786l-2.698 7.84c.806.236 1.657.365 2.54.365 1.047 0 2.05-.18 2.986-.51-.024-.037-.046-.078-.065-.123l-2.762-7.57zM3.008 12c0 3.56 2.07 6.634 5.068 8.092L3.788 8.342c-.5 1.117-.78 2.354-.78 3.658zm15.06-.454c0-1.112-.398-1.88-.74-2.48-.456-.74-.883-1.368-.883-2.11 0-.825.627-1.595 1.51-1.595.04 0 .078.006.116.008-1.598-1.464-3.73-2.36-6.07-2.36-3.14 0-5.904 1.613-7.512 4.053.21.008.41.012.58.012.94 0 2.395-.114 2.395-.114.484-.028.54.684.057.74 0 0-.487.058-1.03.086l3.275 9.74 1.968-5.902-1.4-3.838c-.485-.028-.944-.085-.944-.085-.486-.03-.43-.77.056-.742 0 0 1.484.114 2.368.114.94 0 2.397-.114 2.397-.114.486-.028.543.684.058.74 0 0-.488.058-1.03.086l3.25 9.665.897-2.997c.456-1.17.684-2.137.684-2.907zm1.82-3.86c.04.286.06.593.06.924 0 .912-.17 1.938-.683 3.22l-2.746 7.94c2.672-1.558 4.47-4.454 4.47-7.77 0-1.564-.4-3.033-1.1-4.314zM12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10z" 12090 }))) 12091 }; 12092 const embedSpotifyIcon = { 12093 foreground: '#1db954', 12094 src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12095 viewBox: "0 0 24 24" 12096 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12097 d: "M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m4.586 14.424c-.18.295-.563.387-.857.207-2.35-1.434-5.305-1.76-8.786-.963-.335.077-.67-.133-.746-.47-.077-.334.132-.67.47-.745 3.808-.87 7.076-.496 9.712 1.115.293.18.386.563.206.857M17.81 13.7c-.226.367-.706.482-1.072.257-2.687-1.652-6.785-2.13-9.965-1.166-.413.127-.848-.106-.973-.517-.125-.413.108-.848.52-.973 3.632-1.102 8.147-.568 11.234 1.328.366.226.48.707.256 1.072m.105-2.835C14.692 8.95 9.375 8.775 6.297 9.71c-.493.15-1.016-.13-1.166-.624-.148-.495.13-1.017.625-1.167 3.532-1.073 9.404-.866 13.115 1.337.445.264.59.838.327 1.282-.264.443-.838.59-1.282.325" 12098 })) 12099 }; 12100 const embedFlickrIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12101 viewBox: "0 0 24 24" 12102 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12103 d: "m6.5 7c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5zm11 0c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5z" 12104 })); 12105 const embedVimeoIcon = { 12106 foreground: '#1ab7ea', 12107 src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12108 xmlns: "http://www.w3.org/2000/svg", 12109 viewBox: "0 0 24 24" 12110 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.G, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12111 d: "M22.396 7.164c-.093 2.026-1.507 4.8-4.245 8.32C15.323 19.16 12.93 21 10.97 21c-1.214 0-2.24-1.12-3.08-3.36-.56-2.052-1.118-4.105-1.68-6.158-.622-2.24-1.29-3.36-2.004-3.36-.156 0-.7.328-1.634.98l-.978-1.26c1.027-.903 2.04-1.806 3.037-2.71C6 3.95 7.03 3.328 7.716 3.265c1.62-.156 2.616.95 2.99 3.32.404 2.558.685 4.148.84 4.77.468 2.12.982 3.18 1.543 3.18.435 0 1.09-.687 1.963-2.064.872-1.376 1.34-2.422 1.402-3.142.125-1.187-.343-1.782-1.4-1.782-.5 0-1.013.115-1.542.34 1.023-3.35 2.977-4.976 5.862-4.883 2.14.063 3.148 1.45 3.024 4.16z" 12112 }))) 12113 }; 12114 const embedRedditIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12115 viewBox: "0 0 24 24" 12116 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12117 d: "M22 11.816c0-1.256-1.02-2.277-2.277-2.277-.593 0-1.122.24-1.526.613-1.48-.965-3.455-1.594-5.647-1.69l1.17-3.702 3.18.75c.01 1.027.847 1.86 1.877 1.86 1.035 0 1.877-.84 1.877-1.877 0-1.035-.842-1.877-1.877-1.877-.77 0-1.43.466-1.72 1.13L13.55 3.92c-.204-.047-.4.067-.46.26l-1.35 4.27c-2.317.037-4.412.67-5.97 1.67-.402-.355-.917-.58-1.493-.58C3.02 9.54 2 10.56 2 11.815c0 .814.433 1.523 1.078 1.925-.037.222-.06.445-.06.673 0 3.292 4.01 5.97 8.94 5.97s8.94-2.678 8.94-5.97c0-.214-.02-.424-.052-.632.687-.39 1.154-1.12 1.154-1.964zm-3.224-7.422c.606 0 1.1.493 1.1 1.1s-.493 1.1-1.1 1.1-1.1-.494-1.1-1.1.493-1.1 1.1-1.1zm-16 7.422c0-.827.673-1.5 1.5-1.5.313 0 .598.103.838.27-.85.675-1.477 1.478-1.812 2.36-.32-.274-.525-.676-.525-1.13zm9.183 7.79c-4.502 0-8.165-2.33-8.165-5.193S7.457 9.22 11.96 9.22s8.163 2.33 8.163 5.193-3.663 5.193-8.164 5.193zM20.635 13c-.326-.89-.948-1.7-1.797-2.383.247-.186.55-.3.882-.3.827 0 1.5.672 1.5 1.5 0 .482-.23.91-.586 1.184zm-11.64 1.704c-.76 0-1.397-.616-1.397-1.376 0-.76.636-1.397 1.396-1.397.76 0 1.376.638 1.376 1.398 0 .76-.616 1.376-1.376 1.376zm7.405-1.376c0 .76-.615 1.376-1.375 1.376s-1.4-.616-1.4-1.376c0-.76.64-1.397 1.4-1.397.76 0 1.376.638 1.376 1.398zm-1.17 3.38c.15.152.15.398 0 .55-.675.674-1.728 1.002-3.22 1.002l-.01-.002-.012.002c-1.492 0-2.544-.328-3.218-1.002-.152-.152-.152-.398 0-.55.152-.152.4-.15.55 0 .52.52 1.394.775 2.67.775l.01.002.01-.002c1.276 0 2.15-.253 2.67-.775.15-.152.398-.152.55 0z" 12118 })); 12119 const embedTumblrIcon = { 12120 foreground: '#35465c', 12121 src: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12122 viewBox: "0 0 24 24" 12123 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12124 d: "M19 3H5a2 2 0 00-2 2v14c0 1.1.9 2 2 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-5.69 14.66c-2.72 0-3.1-1.9-3.1-3.16v-3.56H8.49V8.99c1.7-.62 2.54-1.99 2.64-2.87 0-.06.06-.41.06-.58h1.9v3.1h2.17v2.3h-2.18v3.1c0 .47.13 1.3 1.2 1.26h1.1v2.36c-1.01.02-2.07 0-2.07 0z" 12125 })) 12126 }; 12127 const embedAmazonIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12128 viewBox: "0 0 24 24" 12129 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12130 d: "M18.42 14.58c-.51-.66-1.05-1.23-1.05-2.5V7.87c0-1.8.15-3.45-1.2-4.68-1.05-1.02-2.79-1.35-4.14-1.35-2.6 0-5.52.96-6.12 4.14-.06.36.18.54.4.57l2.66.3c.24-.03.42-.27.48-.5.24-1.12 1.17-1.63 2.2-1.63.56 0 1.22.21 1.55.7.4.56.33 1.31.33 1.97v.36c-1.59.18-3.66.27-5.16.93a4.63 4.63 0 0 0-2.93 4.44c0 2.82 1.8 4.23 4.1 4.23 1.95 0 3.03-.45 4.53-1.98.51.72.66 1.08 1.59 1.83.18.09.45.09.63-.1v.04l2.1-1.8c.24-.21.2-.48.03-.75zm-5.4-1.2c-.45.75-1.14 1.23-1.92 1.23-1.05 0-1.65-.81-1.65-1.98 0-2.31 2.1-2.73 4.08-2.73v.6c0 1.05.03 1.92-.5 2.88z" 12131 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12132 d: "M21.69 19.2a17.62 17.62 0 0 1-21.6-1.57c-.23-.2 0-.5.28-.33a23.88 23.88 0 0 0 20.93 1.3c.45-.19.84.3.39.6z" 12133 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12134 d: "M22.8 17.96c-.36-.45-2.22-.2-3.1-.12-.23.03-.3-.18-.05-.36 1.5-1.05 3.96-.75 4.26-.39.3.36-.1 2.82-1.5 4.02-.21.18-.42.1-.3-.15.3-.8 1.02-2.58.69-3z" 12135 })); 12136 const embedAnimotoIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12137 viewBox: "0 0 24 24" 12138 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12139 d: "m.0206909 21 19.8160091-13.07806 3.5831 6.20826z", 12140 fill: "#4bc7ee" 12141 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12142 d: "m23.7254 19.0205-10.1074-17.18468c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418h22.5655c1.279 0 1.8019-.8905 1.1599-1.9795z", 12143 fill: "#d4cdcb" 12144 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12145 d: "m.0206909 21 15.2439091-16.38571 4.3029 7.32271z", 12146 fill: "#c3d82e" 12147 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12148 d: "m13.618 1.83582c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418 15.2646-16.38573z", 12149 fill: "#e4ecb0" 12150 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12151 d: "m.0206909 21 19.5468091-9.063 1.6621 2.8344z", 12152 fill: "#209dbd" 12153 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12154 d: "m.0206909 21 17.9209091-11.82623 1.6259 2.76323z", 12155 fill: "#7cb3c9" 12156 })); 12157 const embedDailymotionIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12158 viewBox: "0 0 24 24" 12159 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12160 d: "m12.1479 18.5957c-2.4949 0-4.28131-1.7558-4.28131-4.0658 0-2.2176 1.78641-4.0965 4.09651-4.0965 2.2793 0 4.0349 1.7864 4.0349 4.1581 0 2.2794-1.7556 4.0042-3.8501 4.0042zm8.3521-18.5957-4.5329 1v7c-1.1088-1.41691-2.8028-1.8787-4.8049-1.8787-2.09443 0-3.97329.76993-5.5133 2.27917-1.72483 1.66323-2.6489 3.78863-2.6489 6.16033 0 2.5873.98562 4.8049 2.89526 6.499 1.44763 1.2936 3.17251 1.9402 5.17454 1.9402 1.9713 0 3.4498-.5236 4.8973-1.9402v1.9402h4.5329c0-7.6359 0-15.3641 0-23z", 12161 fill: "#333436" 12162 })); 12163 const embedPinterestIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12164 width: "24", 12165 height: "24", 12166 viewBox: "0 0 24 24", 12167 version: "1.1" 12168 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12169 d: "M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2" 12170 })); 12171 const embedWolframIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 12172 viewBox: "0 0 44 44" 12173 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 12174 d: "M32.59521,22.001l4.31885-4.84473-6.34131-1.38379.646-6.459-5.94336,2.61035L22,6.31934l-3.27344,5.60351L12.78418,9.3125l.645,6.458L7.08643,17.15234,11.40479,21.999,7.08594,26.84375l6.34131,1.38379-.64551,6.458,5.94287-2.60938L22,37.68066l3.27344-5.60351,5.94287,2.61035-.64551-6.458,6.34277-1.38183Zm.44385,2.75244L30.772,23.97827l-1.59558-2.07391,1.97888.735Zm-8.82147,6.1579L22.75,33.424V30.88977l1.52228-2.22168ZM18.56226,13.48816,19.819,15.09534l-2.49219-.88642L15.94037,12.337Zm6.87719.00116,2.62043-1.15027-1.38654,1.86981L24.183,15.0946Zm3.59357,2.6029-1.22546,1.7381.07525-2.73486,1.44507-1.94867ZM22,29.33008l-2.16406-3.15686L22,23.23688l2.16406,2.93634Zm-4.25458-9.582-.10528-3.836,3.60986,1.284v3.73242Zm5.00458-2.552,3.60986-1.284-.10528,3.836L22.75,20.92853Zm-7.78174-1.10559-.29352-2.94263,1.44245,1.94739.07519,2.73321Zm2.30982,5.08319,3.50817,1.18164-2.16247,2.9342-3.678-1.08447Zm2.4486,7.49285L21.25,30.88977v2.53485L19.78052,30.91Zm3.48707-6.31121,3.50817-1.18164,2.33228,3.03137-3.678,1.08447Zm10.87219-4.28113-2.714,3.04529L28.16418,19.928l1.92176-2.72565ZM24.06036,12.81769l-2.06012,2.6322-2.059-2.63318L22,9.292ZM9.91455,18.07227l4.00079-.87195,1.921,2.72735-3.20794,1.19019Zm2.93024,4.565,1.9801-.73462L13.228,23.97827l-2.26838.77429Zm-1.55591,3.58819L13.701,25.4021l2.64935.78058-2.14447.67853Zm3.64868,1.977L18.19,27.17334l.08313,3.46332L14.52979,32.2793Zm10.7876,2.43549.08447-3.464,3.25165,1.03052.407,4.07684Zm4.06824-3.77478-2.14545-.68,2.65063-.781,2.41266.825Z" 12175 })); 12176 12177 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-loading.js 12178 12179 12180 /** 12181 * WordPress dependencies 12182 */ 12183 12184 12185 const EmbedLoading = () => (0,external_wp_element_namespaceObject.createElement)("div", { 12186 className: "wp-block-embed is-loading" 12187 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)); 12188 12189 /* harmony default export */ var embed_loading = (EmbedLoading); 12190 12191 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-placeholder.js 12192 12193 12194 /** 12195 * WordPress dependencies 12196 */ 12197 12198 12199 12200 12201 const EmbedPlaceholder = _ref => { 12202 let { 12203 icon, 12204 label, 12205 value, 12206 onSubmit, 12207 onChange, 12208 cannotEmbed, 12209 fallback, 12210 tryAgain 12211 } = _ref; 12212 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 12213 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { 12214 icon: icon, 12215 showColors: true 12216 }), 12217 label: label, 12218 className: "wp-block-embed", 12219 instructions: (0,external_wp_i18n_namespaceObject.__)('Paste a link to the content you want to display on your site.') 12220 }, (0,external_wp_element_namespaceObject.createElement)("form", { 12221 onSubmit: onSubmit 12222 }, (0,external_wp_element_namespaceObject.createElement)("input", { 12223 type: "url", 12224 value: value || '', 12225 className: "components-placeholder__input", 12226 "aria-label": label, 12227 placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL to embed here…'), 12228 onChange: onChange 12229 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 12230 variant: "primary", 12231 type: "submit" 12232 }, (0,external_wp_i18n_namespaceObject._x)('Embed', 'button label'))), (0,external_wp_element_namespaceObject.createElement)("div", { 12233 className: "components-placeholder__learn-more" 12234 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { 12235 href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/support/article/embeds/') 12236 }, (0,external_wp_i18n_namespaceObject.__)('Learn more about embeds'))), cannotEmbed && (0,external_wp_element_namespaceObject.createElement)("div", { 12237 className: "components-placeholder__error" 12238 }, (0,external_wp_element_namespaceObject.createElement)("div", { 12239 className: "components-placeholder__instructions" 12240 }, (0,external_wp_i18n_namespaceObject.__)('Sorry, this content could not be embedded.')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 12241 variant: "secondary", 12242 onClick: tryAgain 12243 }, (0,external_wp_i18n_namespaceObject._x)('Try again', 'button label')), ' ', (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 12244 variant: "secondary", 12245 onClick: fallback 12246 }, (0,external_wp_i18n_namespaceObject._x)('Convert to link', 'button label')))); 12247 }; 12248 12249 /* harmony default export */ var embed_placeholder = (EmbedPlaceholder); 12250 12251 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/wp-embed-preview.js 12252 12253 12254 12255 /** 12256 * WordPress dependencies 12257 */ 12258 12259 12260 /** @typedef {import('@wordpress/element').WPSyntheticEvent} WPSyntheticEvent */ 12261 12262 const attributeMap = { 12263 class: 'className', 12264 frameborder: 'frameBorder', 12265 marginheight: 'marginHeight', 12266 marginwidth: 'marginWidth' 12267 }; 12268 function WpEmbedPreview(_ref) { 12269 let { 12270 html 12271 } = _ref; 12272 const ref = (0,external_wp_element_namespaceObject.useRef)(); 12273 const props = (0,external_wp_element_namespaceObject.useMemo)(() => { 12274 const doc = new window.DOMParser().parseFromString(html, 'text/html'); 12275 const iframe = doc.querySelector('iframe'); 12276 const iframeProps = {}; 12277 if (!iframe) return iframeProps; 12278 Array.from(iframe.attributes).forEach(_ref2 => { 12279 let { 12280 name, 12281 value 12282 } = _ref2; 12283 if (name === 'style') return; 12284 iframeProps[attributeMap[name] || name] = value; 12285 }); 12286 return iframeProps; 12287 }, [html]); 12288 (0,external_wp_element_namespaceObject.useEffect)(() => { 12289 const { 12290 ownerDocument 12291 } = ref.current; 12292 const { 12293 defaultView 12294 } = ownerDocument; 12295 /** 12296 * Checks for WordPress embed events signaling the height change when 12297 * iframe content loads or iframe's window is resized. The event is 12298 * sent from WordPress core via the window.postMessage API. 12299 * 12300 * References: 12301 * window.postMessage: 12302 * https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage 12303 * WordPress core embed-template on load: 12304 * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L143 12305 * WordPress core embed-template on resize: 12306 * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L187 12307 * 12308 * @param {MessageEvent} event Message event. 12309 */ 12310 12311 function resizeWPembeds(_ref3) { 12312 let { 12313 data: { 12314 secret, 12315 message, 12316 value 12317 } = {} 12318 } = _ref3; 12319 12320 if (message !== 'height' || secret !== props['data-secret']) { 12321 return; 12322 } 12323 12324 ref.current.height = value; 12325 } 12326 12327 defaultView.addEventListener('message', resizeWPembeds); 12328 return () => { 12329 defaultView.removeEventListener('message', resizeWPembeds); 12330 }; 12331 }, []); 12332 return (0,external_wp_element_namespaceObject.createElement)("div", { 12333 className: "wp-block-embed__wrapper" 12334 }, (0,external_wp_element_namespaceObject.createElement)("iframe", _extends({ 12335 ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, (0,external_wp_compose_namespaceObject.useFocusableIframe)()]), 12336 title: props.title 12337 }, props))); 12338 } 12339 12340 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-preview.js 12341 12342 12343 /** 12344 * Internal dependencies 12345 */ 12346 12347 /** 12348 * External dependencies 12349 */ 12350 12351 12352 /** 12353 * WordPress dependencies 12354 */ 12355 12356 12357 12358 12359 12360 12361 /** 12362 * Internal dependencies 12363 */ 12364 12365 12366 12367 class EmbedPreview extends external_wp_element_namespaceObject.Component { 12368 constructor() { 12369 super(...arguments); 12370 this.hideOverlay = this.hideOverlay.bind(this); 12371 this.state = { 12372 interactive: false 12373 }; 12374 } 12375 12376 static getDerivedStateFromProps(nextProps, state) { 12377 if (!nextProps.isSelected && state.interactive) { 12378 // We only want to change this when the block is not selected, because changing it when 12379 // the block becomes selected makes the overlap disappear too early. Hiding the overlay 12380 // happens on mouseup when the overlay is clicked. 12381 return { 12382 interactive: false 12383 }; 12384 } 12385 12386 return null; 12387 } 12388 12389 hideOverlay() { 12390 // This is called onMouseUp on the overlay. We can't respond to the `isSelected` prop 12391 // changing, because that happens on mouse down, and the overlay immediately disappears, 12392 // and the mouse event can end up in the preview content. We can't use onClick on 12393 // the overlay to hide it either, because then the editor misses the mouseup event, and 12394 // thinks we're multi-selecting blocks. 12395 this.setState({ 12396 interactive: true 12397 }); 12398 } 12399 12400 render() { 12401 const { 12402 preview, 12403 previewable, 12404 url, 12405 type, 12406 caption, 12407 onCaptionChange, 12408 isSelected, 12409 className, 12410 icon, 12411 label, 12412 insertBlocksAfter 12413 } = this.props; 12414 const { 12415 scripts 12416 } = preview; 12417 const { 12418 interactive 12419 } = this.state; 12420 const html = 'photo' === type ? getPhotoHtml(preview) : preview.html; 12421 const parsedHost = new URL(url).host.split('.'); 12422 const parsedHostBaseUrl = parsedHost.splice(parsedHost.length - 2, parsedHost.length - 1).join('.'); 12423 const iframeTitle = (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: host providing embed content e.g: www.youtube.com 12424 (0,external_wp_i18n_namespaceObject.__)('Embedded content from %s'), parsedHostBaseUrl); 12425 const sandboxClassnames = dedupe_default()(type, className, 'wp-block-embed__wrapper'); // Disabled because the overlay div doesn't actually have a role or functionality 12426 // as far as the user is concerned. We're just catching the first click so that 12427 // the block can be selected without interacting with the embed preview that the overlay covers. 12428 12429 /* eslint-disable jsx-a11y/no-static-element-interactions */ 12430 12431 const embedWrapper = 'wp-embed' === type ? (0,external_wp_element_namespaceObject.createElement)(WpEmbedPreview, { 12432 html: html 12433 }) : (0,external_wp_element_namespaceObject.createElement)("div", { 12434 className: "wp-block-embed__wrapper" 12435 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SandBox, { 12436 html: html, 12437 scripts: scripts, 12438 title: iframeTitle, 12439 type: sandboxClassnames, 12440 onFocus: this.hideOverlay 12441 }), !interactive && (0,external_wp_element_namespaceObject.createElement)("div", { 12442 className: "block-library-embed__interactive-overlay", 12443 onMouseUp: this.hideOverlay 12444 })); 12445 /* eslint-enable jsx-a11y/no-static-element-interactions */ 12446 12447 return (0,external_wp_element_namespaceObject.createElement)("figure", { 12448 className: dedupe_default()(className, 'wp-block-embed', { 12449 'is-type-video': 'video' === type 12450 }) 12451 }, previewable ? embedWrapper : (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 12452 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { 12453 icon: icon, 12454 showColors: true 12455 }), 12456 label: label 12457 }, (0,external_wp_element_namespaceObject.createElement)("p", { 12458 className: "components-placeholder__error" 12459 }, (0,external_wp_element_namespaceObject.createElement)("a", { 12460 href: url 12461 }, url)), (0,external_wp_element_namespaceObject.createElement)("p", { 12462 className: "components-placeholder__error" 12463 }, (0,external_wp_i18n_namespaceObject.sprintf)( 12464 /* translators: %s: host providing embed content e.g: www.youtube.com */ 12465 (0,external_wp_i18n_namespaceObject.__)("Embedded content from %s can't be previewed in the editor."), parsedHostBaseUrl))), (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 12466 tagName: "figcaption", 12467 placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'), 12468 value: caption, 12469 onChange: onCaptionChange, 12470 inlineToolbar: true, 12471 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')) 12472 })); 12473 } 12474 12475 } 12476 12477 /* harmony default export */ var embed_preview = (EmbedPreview); 12478 12479 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/edit.js 12480 12481 12482 /** 12483 * Internal dependencies 12484 */ 12485 12486 12487 12488 12489 12490 12491 /** 12492 * External dependencies 12493 */ 12494 12495 12496 /** 12497 * WordPress dependencies 12498 */ 12499 12500 12501 12502 12503 12504 12505 12506 12507 const EmbedEdit = props => { 12508 const { 12509 attributes: { 12510 providerNameSlug, 12511 previewable, 12512 responsive, 12513 url: attributesUrl 12514 }, 12515 attributes, 12516 isSelected, 12517 onReplace, 12518 setAttributes, 12519 insertBlocksAfter, 12520 onFocus 12521 } = props; 12522 const defaultEmbedInfo = { 12523 title: (0,external_wp_i18n_namespaceObject._x)('Embed', 'block title'), 12524 icon: embedContentIcon 12525 }; 12526 const { 12527 icon, 12528 title 12529 } = getEmbedInfoByProvider(providerNameSlug) || defaultEmbedInfo; 12530 const [url, setURL] = (0,external_wp_element_namespaceObject.useState)(attributesUrl); 12531 const [isEditingURL, setIsEditingURL] = (0,external_wp_element_namespaceObject.useState)(false); 12532 const { 12533 invalidateResolution 12534 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store); 12535 const { 12536 preview, 12537 fetching, 12538 themeSupportsResponsive, 12539 cannotEmbed 12540 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 12541 var _embedPreview$data; 12542 12543 const { 12544 getEmbedPreview, 12545 isPreviewEmbedFallback, 12546 isRequestingEmbedPreview, 12547 getThemeSupports 12548 } = select(external_wp_coreData_namespaceObject.store); 12549 12550 if (!attributesUrl) { 12551 return { 12552 fetching: false, 12553 cannotEmbed: false 12554 }; 12555 } 12556 12557 const embedPreview = getEmbedPreview(attributesUrl); 12558 const previewIsFallback = isPreviewEmbedFallback(attributesUrl); // The external oEmbed provider does not exist. We got no type info and no html. 12559 12560 const badEmbedProvider = (embedPreview === null || embedPreview === void 0 ? void 0 : embedPreview.html) === false && (embedPreview === null || embedPreview === void 0 ? void 0 : embedPreview.type) === undefined; // Some WordPress URLs that can't be embedded will cause the API to return 12561 // a valid JSON response with no HTML and `data.status` set to 404, rather 12562 // than generating a fallback response as other embeds do. 12563 12564 const wordpressCantEmbed = (embedPreview === null || embedPreview === void 0 ? void 0 : (_embedPreview$data = embedPreview.data) === null || _embedPreview$data === void 0 ? void 0 : _embedPreview$data.status) === 404; 12565 const validPreview = !!embedPreview && !badEmbedProvider && !wordpressCantEmbed; 12566 return { 12567 preview: validPreview ? embedPreview : undefined, 12568 fetching: isRequestingEmbedPreview(attributesUrl), 12569 themeSupportsResponsive: getThemeSupports()['responsive-embeds'], 12570 cannotEmbed: !validPreview || previewIsFallback 12571 }; 12572 }, [attributesUrl]); 12573 /** 12574 * @return {Object} Attributes derived from the preview, merged with the current attributes. 12575 */ 12576 12577 const getMergedAttributes = () => { 12578 const { 12579 allowResponsive, 12580 className 12581 } = attributes; 12582 return { ...attributes, 12583 ...getAttributesFromPreview(preview, title, className, responsive, allowResponsive) 12584 }; 12585 }; 12586 12587 const toggleResponsive = () => { 12588 const { 12589 allowResponsive, 12590 className 12591 } = attributes; 12592 const { 12593 html 12594 } = preview; 12595 const newAllowResponsive = !allowResponsive; 12596 setAttributes({ 12597 allowResponsive: newAllowResponsive, 12598 className: getClassNames(html, className, responsive && newAllowResponsive) 12599 }); 12600 }; 12601 12602 (0,external_wp_element_namespaceObject.useEffect)(() => { 12603 if (!(preview !== null && preview !== void 0 && preview.html) || !cannotEmbed || fetching) { 12604 return; 12605 } // At this stage, we're not fetching the preview and know it can't be embedded, 12606 // so try removing any trailing slash, and resubmit. 12607 12608 12609 const newURL = attributesUrl.replace(/\/$/, ''); 12610 setURL(newURL); 12611 setIsEditingURL(false); 12612 setAttributes({ 12613 url: newURL 12614 }); 12615 }, [preview === null || preview === void 0 ? void 0 : preview.html, attributesUrl]); // Handle incoming preview. 12616 12617 (0,external_wp_element_namespaceObject.useEffect)(() => { 12618 if (preview && !isEditingURL) { 12619 // Even though we set attributes that get derived from the preview, 12620 // we don't access them directly because for the initial render, 12621 // the `setAttributes` call will not have taken effect. If we're 12622 // rendering responsive content, setting the responsive classes 12623 // after the preview has been rendered can result in unwanted 12624 // clipping or scrollbars. The `getAttributesFromPreview` function 12625 // that `getMergedAttributes` uses is memoized so that we're not 12626 // calculating them on every render. 12627 setAttributes(getMergedAttributes()); 12628 12629 if (onReplace) { 12630 const upgradedBlock = createUpgradedEmbedBlock(props, getMergedAttributes()); 12631 12632 if (upgradedBlock) { 12633 onReplace(upgradedBlock); 12634 } 12635 } 12636 } 12637 }, [preview, isEditingURL]); 12638 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 12639 12640 if (fetching) { 12641 return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, (0,external_wp_element_namespaceObject.createElement)(embed_loading, null)); 12642 } // translators: %s: type of embed e.g: "YouTube", "Twitter", etc. "Embed" is used when no specific type exists 12643 12644 12645 const label = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s URL'), title); // No preview, or we can't embed the current URL, or we've clicked the edit button. 12646 12647 const showEmbedPlaceholder = !preview || cannotEmbed || isEditingURL; 12648 12649 if (showEmbedPlaceholder) { 12650 return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, (0,external_wp_element_namespaceObject.createElement)(embed_placeholder, { 12651 icon: icon, 12652 label: label, 12653 onFocus: onFocus, 12654 onSubmit: event => { 12655 if (event) { 12656 event.preventDefault(); 12657 } 12658 12659 setIsEditingURL(false); 12660 setAttributes({ 12661 url 12662 }); 12663 }, 12664 value: url, 12665 cannotEmbed: cannotEmbed, 12666 onChange: event => setURL(event.target.value), 12667 fallback: () => fallback(url, onReplace), 12668 tryAgain: () => { 12669 invalidateResolution('getEmbedPreview', [url]); 12670 } 12671 })); 12672 } // Even though we set attributes that get derived from the preview, 12673 // we don't access them directly because for the initial render, 12674 // the `setAttributes` call will not have taken effect. If we're 12675 // rendering responsive content, setting the responsive classes 12676 // after the preview has been rendered can result in unwanted 12677 // clipping or scrollbars. The `getAttributesFromPreview` function 12678 // that `getMergedAttributes` uses is memoized so that we're not 12679 // calculating them on every render. 12680 12681 12682 const { 12683 caption, 12684 type, 12685 allowResponsive, 12686 className: classFromPreview 12687 } = getMergedAttributes(); 12688 const className = classnames_default()(classFromPreview, props.className); 12689 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(embed_controls, { 12690 showEditButton: preview && !cannotEmbed, 12691 themeSupportsResponsive: themeSupportsResponsive, 12692 blockSupportsResponsive: responsive, 12693 allowResponsive: allowResponsive, 12694 toggleResponsive: toggleResponsive, 12695 switchBackToURLInput: () => setIsEditingURL(true) 12696 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, (0,external_wp_element_namespaceObject.createElement)(embed_preview, { 12697 preview: preview, 12698 previewable: previewable, 12699 className: className, 12700 url: url, 12701 type: type, 12702 caption: caption, 12703 onCaptionChange: value => setAttributes({ 12704 caption: value 12705 }), 12706 isSelected: isSelected, 12707 icon: icon, 12708 label: label, 12709 insertBlocksAfter: insertBlocksAfter 12710 }))); 12711 }; 12712 12713 /* harmony default export */ var embed_edit = (EmbedEdit); 12714 12715 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/save.js 12716 12717 12718 /** 12719 * External dependencies 12720 */ 12721 12722 /** 12723 * WordPress dependencies 12724 */ 12725 12726 12727 function embed_save_save(_ref) { 12728 let { 12729 attributes 12730 } = _ref; 12731 const { 12732 url, 12733 caption, 12734 type, 12735 providerNameSlug 12736 } = attributes; 12737 12738 if (!url) { 12739 return null; 12740 } 12741 12742 const className = dedupe_default()('wp-block-embed', { 12743 [`is-type-$type}`]: type, 12744 [`is-provider-$providerNameSlug}`]: providerNameSlug, 12745 [`wp-block-embed-$providerNameSlug}`]: providerNameSlug 12746 }); 12747 return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 12748 className 12749 }), (0,external_wp_element_namespaceObject.createElement)("div", { 12750 className: "wp-block-embed__wrapper" 12751 }, `\n$url}\n` 12752 /* URL needs to be on its own line. */ 12753 ), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 12754 tagName: "figcaption", 12755 value: caption 12756 })); 12757 } 12758 12759 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/transforms.js 12760 /** 12761 * WordPress dependencies 12762 */ 12763 12764 /** 12765 * Internal dependencies 12766 */ 12767 12768 const transforms_metadata = { 12769 $schema: "https://schemas.wp.org/trunk/block.json", 12770 apiVersion: 2, 12771 name: "core/embed", 12772 title: "Embed", 12773 category: "embed", 12774 description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.", 12775 textdomain: "default", 12776 attributes: { 12777 url: { 12778 type: "string" 12779 }, 12780 caption: { 12781 type: "string", 12782 source: "html", 12783 selector: "figcaption" 12784 }, 12785 type: { 12786 type: "string" 12787 }, 12788 providerNameSlug: { 12789 type: "string" 12790 }, 12791 allowResponsive: { 12792 type: "boolean", 12793 "default": true 12794 }, 12795 responsive: { 12796 type: "boolean", 12797 "default": false 12798 }, 12799 previewable: { 12800 type: "boolean", 12801 "default": true 12802 } 12803 }, 12804 supports: { 12805 align: true 12806 }, 12807 editorStyle: "wp-block-embed-editor", 12808 style: "wp-block-embed" 12809 }; 12810 const { 12811 name: EMBED_BLOCK 12812 } = transforms_metadata; 12813 /** 12814 * Default transforms for generic embeds. 12815 */ 12816 12817 const embed_transforms_transforms = { 12818 from: [{ 12819 type: 'raw', 12820 isMatch: node => { 12821 var _node$textContent, _node$textContent$mat; 12822 12823 return node.nodeName === 'P' && /^\s*(https?:\/\/\S+)\s*$/i.test(node.textContent) && ((_node$textContent = node.textContent) === null || _node$textContent === void 0 ? void 0 : (_node$textContent$mat = _node$textContent.match(/https/gi)) === null || _node$textContent$mat === void 0 ? void 0 : _node$textContent$mat.length) === 1; 12824 }, 12825 transform: node => { 12826 return (0,external_wp_blocks_namespaceObject.createBlock)(EMBED_BLOCK, { 12827 url: node.textContent.trim() 12828 }); 12829 } 12830 }], 12831 to: [{ 12832 type: 'block', 12833 blocks: ['core/paragraph'], 12834 isMatch: _ref => { 12835 let { 12836 url 12837 } = _ref; 12838 return !!url; 12839 }, 12840 transform: _ref2 => { 12841 let { 12842 url, 12843 caption 12844 } = _ref2; 12845 let value = `<a href="$url}">$url}</a>`; 12846 12847 if (caption !== null && caption !== void 0 && caption.trim()) { 12848 value += `<br />$caption}`; 12849 } 12850 12851 return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 12852 content: value 12853 }); 12854 } 12855 }] 12856 }; 12857 /* harmony default export */ var embed_transforms = (embed_transforms_transforms); 12858 12859 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/variations.js 12860 /** 12861 * WordPress dependencies 12862 */ 12863 12864 /** 12865 * Internal dependencies 12866 */ 12867 12868 12869 /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */ 12870 12871 /** 12872 * Template option choices for predefined columns layouts. 12873 * 12874 * @type {WPBlockVariation[]} 12875 */ 12876 12877 const variations_variations = [{ 12878 name: 'twitter', 12879 title: 'Twitter', 12880 icon: embedTwitterIcon, 12881 keywords: ['tweet', (0,external_wp_i18n_namespaceObject.__)('social')], 12882 description: (0,external_wp_i18n_namespaceObject.__)('Embed a tweet.'), 12883 patterns: [/^https?:\/\/(www\.)?twitter\.com\/.+/i], 12884 attributes: { 12885 providerNameSlug: 'twitter', 12886 responsive: true 12887 } 12888 }, { 12889 name: 'youtube', 12890 title: 'YouTube', 12891 icon: embedYouTubeIcon, 12892 keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('video')], 12893 description: (0,external_wp_i18n_namespaceObject.__)('Embed a YouTube video.'), 12894 patterns: [/^https?:\/\/((m|www)\.)?youtube\.com\/.+/i, /^https?:\/\/youtu\.be\/.+/i], 12895 attributes: { 12896 providerNameSlug: 'youtube', 12897 responsive: true 12898 } 12899 }, { 12900 // Deprecate Facebook Embed per FB policy 12901 // See: https://developers.facebook.com/docs/plugins/oembed-legacy 12902 name: 'facebook', 12903 title: 'Facebook', 12904 icon: embedFacebookIcon, 12905 keywords: [(0,external_wp_i18n_namespaceObject.__)('social')], 12906 description: (0,external_wp_i18n_namespaceObject.__)('Embed a Facebook post.'), 12907 scope: ['block'], 12908 patterns: [], 12909 attributes: { 12910 providerNameSlug: 'facebook', 12911 previewable: false, 12912 responsive: true 12913 } 12914 }, { 12915 // Deprecate Instagram per FB policy 12916 // See: https://developers.facebook.com/docs/instagram/oembed-legacy 12917 name: 'instagram', 12918 title: 'Instagram', 12919 icon: embedInstagramIcon, 12920 keywords: [(0,external_wp_i18n_namespaceObject.__)('image'), (0,external_wp_i18n_namespaceObject.__)('social')], 12921 description: (0,external_wp_i18n_namespaceObject.__)('Embed an Instagram post.'), 12922 scope: ['block'], 12923 patterns: [], 12924 attributes: { 12925 providerNameSlug: 'instagram', 12926 responsive: true 12927 } 12928 }, { 12929 name: 'wordpress', 12930 title: 'WordPress', 12931 icon: embedWordPressIcon, 12932 keywords: [(0,external_wp_i18n_namespaceObject.__)('post'), (0,external_wp_i18n_namespaceObject.__)('blog')], 12933 description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress post.'), 12934 attributes: { 12935 providerNameSlug: 'wordpress' 12936 } 12937 }, { 12938 name: 'soundcloud', 12939 title: 'SoundCloud', 12940 icon: embedAudioIcon, 12941 keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')], 12942 description: (0,external_wp_i18n_namespaceObject.__)('Embed SoundCloud content.'), 12943 patterns: [/^https?:\/\/(www\.)?soundcloud\.com\/.+/i], 12944 attributes: { 12945 providerNameSlug: 'soundcloud', 12946 responsive: true 12947 } 12948 }, { 12949 name: 'spotify', 12950 title: 'Spotify', 12951 icon: embedSpotifyIcon, 12952 keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')], 12953 description: (0,external_wp_i18n_namespaceObject.__)('Embed Spotify content.'), 12954 patterns: [/^https?:\/\/(open|play)\.spotify\.com\/.+/i], 12955 attributes: { 12956 providerNameSlug: 'spotify', 12957 responsive: true 12958 } 12959 }, { 12960 name: 'flickr', 12961 title: 'Flickr', 12962 icon: embedFlickrIcon, 12963 keywords: [(0,external_wp_i18n_namespaceObject.__)('image')], 12964 description: (0,external_wp_i18n_namespaceObject.__)('Embed Flickr content.'), 12965 patterns: [/^https?:\/\/(www\.)?flickr\.com\/.+/i, /^https?:\/\/flic\.kr\/.+/i], 12966 attributes: { 12967 providerNameSlug: 'flickr', 12968 responsive: true 12969 } 12970 }, { 12971 name: 'vimeo', 12972 title: 'Vimeo', 12973 icon: embedVimeoIcon, 12974 keywords: [(0,external_wp_i18n_namespaceObject.__)('video')], 12975 description: (0,external_wp_i18n_namespaceObject.__)('Embed a Vimeo video.'), 12976 patterns: [/^https?:\/\/(www\.)?vimeo\.com\/.+/i], 12977 attributes: { 12978 providerNameSlug: 'vimeo', 12979 responsive: true 12980 } 12981 }, { 12982 name: 'animoto', 12983 title: 'Animoto', 12984 icon: embedAnimotoIcon, 12985 description: (0,external_wp_i18n_namespaceObject.__)('Embed an Animoto video.'), 12986 patterns: [/^https?:\/\/(www\.)?(animoto|video214)\.com\/.+/i], 12987 attributes: { 12988 providerNameSlug: 'animoto', 12989 responsive: true 12990 } 12991 }, { 12992 name: 'cloudup', 12993 title: 'Cloudup', 12994 icon: embedContentIcon, 12995 description: (0,external_wp_i18n_namespaceObject.__)('Embed Cloudup content.'), 12996 patterns: [/^https?:\/\/cloudup\.com\/.+/i], 12997 attributes: { 12998 providerNameSlug: 'cloudup', 12999 responsive: true 13000 } 13001 }, { 13002 // Deprecated since CollegeHumor content is now powered by YouTube. 13003 name: 'collegehumor', 13004 title: 'CollegeHumor', 13005 icon: embedVideoIcon, 13006 description: (0,external_wp_i18n_namespaceObject.__)('Embed CollegeHumor content.'), 13007 scope: ['block'], 13008 patterns: [], 13009 attributes: { 13010 providerNameSlug: 'collegehumor', 13011 responsive: true 13012 } 13013 }, { 13014 name: 'crowdsignal', 13015 title: 'Crowdsignal', 13016 icon: embedContentIcon, 13017 keywords: ['polldaddy', (0,external_wp_i18n_namespaceObject.__)('survey')], 13018 description: (0,external_wp_i18n_namespaceObject.__)('Embed Crowdsignal (formerly Polldaddy) content.'), 13019 patterns: [/^https?:\/\/((.+\.)?polldaddy\.com|poll\.fm|.+\.survey\.fm)\/.+/i], 13020 attributes: { 13021 providerNameSlug: 'crowdsignal', 13022 responsive: true 13023 } 13024 }, { 13025 name: 'dailymotion', 13026 title: 'Dailymotion', 13027 icon: embedDailymotionIcon, 13028 keywords: [(0,external_wp_i18n_namespaceObject.__)('video')], 13029 description: (0,external_wp_i18n_namespaceObject.__)('Embed a Dailymotion video.'), 13030 patterns: [/^https?:\/\/(www\.)?dailymotion\.com\/.+/i], 13031 attributes: { 13032 providerNameSlug: 'dailymotion', 13033 responsive: true 13034 } 13035 }, { 13036 name: 'imgur', 13037 title: 'Imgur', 13038 icon: embedPhotoIcon, 13039 description: (0,external_wp_i18n_namespaceObject.__)('Embed Imgur content.'), 13040 patterns: [/^https?:\/\/(.+\.)?imgur\.com\/.+/i], 13041 attributes: { 13042 providerNameSlug: 'imgur', 13043 responsive: true 13044 } 13045 }, { 13046 name: 'issuu', 13047 title: 'Issuu', 13048 icon: embedContentIcon, 13049 description: (0,external_wp_i18n_namespaceObject.__)('Embed Issuu content.'), 13050 patterns: [/^https?:\/\/(www\.)?issuu\.com\/.+/i], 13051 attributes: { 13052 providerNameSlug: 'issuu', 13053 responsive: true 13054 } 13055 }, { 13056 name: 'kickstarter', 13057 title: 'Kickstarter', 13058 icon: embedContentIcon, 13059 description: (0,external_wp_i18n_namespaceObject.__)('Embed Kickstarter content.'), 13060 patterns: [/^https?:\/\/(www\.)?kickstarter\.com\/.+/i, /^https?:\/\/kck\.st\/.+/i], 13061 attributes: { 13062 providerNameSlug: 'kickstarter', 13063 responsive: true 13064 } 13065 }, { 13066 name: 'mixcloud', 13067 title: 'Mixcloud', 13068 icon: embedAudioIcon, 13069 keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')], 13070 description: (0,external_wp_i18n_namespaceObject.__)('Embed Mixcloud content.'), 13071 patterns: [/^https?:\/\/(www\.)?mixcloud\.com\/.+/i], 13072 attributes: { 13073 providerNameSlug: 'mixcloud', 13074 responsive: true 13075 } 13076 }, { 13077 name: 'reddit', 13078 title: 'Reddit', 13079 icon: embedRedditIcon, 13080 description: (0,external_wp_i18n_namespaceObject.__)('Embed a Reddit thread.'), 13081 patterns: [/^https?:\/\/(www\.)?reddit\.com\/.+/i], 13082 attributes: { 13083 providerNameSlug: 'reddit', 13084 responsive: true 13085 } 13086 }, { 13087 name: 'reverbnation', 13088 title: 'ReverbNation', 13089 icon: embedAudioIcon, 13090 description: (0,external_wp_i18n_namespaceObject.__)('Embed ReverbNation content.'), 13091 patterns: [/^https?:\/\/(www\.)?reverbnation\.com\/.+/i], 13092 attributes: { 13093 providerNameSlug: 'reverbnation', 13094 responsive: true 13095 } 13096 }, { 13097 name: 'screencast', 13098 title: 'Screencast', 13099 icon: embedVideoIcon, 13100 description: (0,external_wp_i18n_namespaceObject.__)('Embed Screencast content.'), 13101 patterns: [/^https?:\/\/(www\.)?screencast\.com\/.+/i], 13102 attributes: { 13103 providerNameSlug: 'screencast', 13104 responsive: true 13105 } 13106 }, { 13107 name: 'scribd', 13108 title: 'Scribd', 13109 icon: embedContentIcon, 13110 description: (0,external_wp_i18n_namespaceObject.__)('Embed Scribd content.'), 13111 patterns: [/^https?:\/\/(www\.)?scribd\.com\/.+/i], 13112 attributes: { 13113 providerNameSlug: 'scribd', 13114 responsive: true 13115 } 13116 }, { 13117 name: 'slideshare', 13118 title: 'Slideshare', 13119 icon: embedContentIcon, 13120 description: (0,external_wp_i18n_namespaceObject.__)('Embed Slideshare content.'), 13121 patterns: [/^https?:\/\/(.+?\.)?slideshare\.net\/.+/i], 13122 attributes: { 13123 providerNameSlug: 'slideshare', 13124 responsive: true 13125 } 13126 }, { 13127 name: 'smugmug', 13128 title: 'SmugMug', 13129 icon: embedPhotoIcon, 13130 description: (0,external_wp_i18n_namespaceObject.__)('Embed SmugMug content.'), 13131 patterns: [/^https?:\/\/(.+\.)?smugmug\.com\/.*/i], 13132 attributes: { 13133 providerNameSlug: 'smugmug', 13134 previewable: false, 13135 responsive: true 13136 } 13137 }, { 13138 name: 'speaker-deck', 13139 title: 'Speaker Deck', 13140 icon: embedContentIcon, 13141 description: (0,external_wp_i18n_namespaceObject.__)('Embed Speaker Deck content.'), 13142 patterns: [/^https?:\/\/(www\.)?speakerdeck\.com\/.+/i], 13143 attributes: { 13144 providerNameSlug: 'speaker-deck', 13145 responsive: true 13146 } 13147 }, { 13148 name: 'tiktok', 13149 title: 'TikTok', 13150 icon: embedVideoIcon, 13151 keywords: [(0,external_wp_i18n_namespaceObject.__)('video')], 13152 description: (0,external_wp_i18n_namespaceObject.__)('Embed a TikTok video.'), 13153 patterns: [/^https?:\/\/(www\.)?tiktok\.com\/.+/i], 13154 attributes: { 13155 providerNameSlug: 'tiktok', 13156 responsive: true 13157 } 13158 }, { 13159 name: 'ted', 13160 title: 'TED', 13161 icon: embedVideoIcon, 13162 description: (0,external_wp_i18n_namespaceObject.__)('Embed a TED video.'), 13163 patterns: [/^https?:\/\/(www\.|embed\.)?ted\.com\/.+/i], 13164 attributes: { 13165 providerNameSlug: 'ted', 13166 responsive: true 13167 } 13168 }, { 13169 name: 'tumblr', 13170 title: 'Tumblr', 13171 icon: embedTumblrIcon, 13172 keywords: [(0,external_wp_i18n_namespaceObject.__)('social')], 13173 description: (0,external_wp_i18n_namespaceObject.__)('Embed a Tumblr post.'), 13174 patterns: [/^https?:\/\/(www\.)?tumblr\.com\/.+/i], 13175 attributes: { 13176 providerNameSlug: 'tumblr', 13177 responsive: true 13178 } 13179 }, { 13180 name: 'videopress', 13181 title: 'VideoPress', 13182 icon: embedVideoIcon, 13183 keywords: [(0,external_wp_i18n_namespaceObject.__)('video')], 13184 description: (0,external_wp_i18n_namespaceObject.__)('Embed a VideoPress video.'), 13185 patterns: [/^https?:\/\/videopress\.com\/.+/i], 13186 attributes: { 13187 providerNameSlug: 'videopress', 13188 responsive: true 13189 } 13190 }, { 13191 name: 'wordpress-tv', 13192 title: 'WordPress.tv', 13193 icon: embedVideoIcon, 13194 description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress.tv video.'), 13195 patterns: [/^https?:\/\/wordpress\.tv\/.+/i], 13196 attributes: { 13197 providerNameSlug: 'wordpress-tv', 13198 responsive: true 13199 } 13200 }, { 13201 name: 'amazon-kindle', 13202 title: 'Amazon Kindle', 13203 icon: embedAmazonIcon, 13204 keywords: [(0,external_wp_i18n_namespaceObject.__)('ebook')], 13205 description: (0,external_wp_i18n_namespaceObject.__)('Embed Amazon Kindle content.'), 13206 patterns: [/^https?:\/\/([a-z0-9-]+\.)?(amazon|amzn)(\.[a-z]{2,4})+\/.+/i, /^https?:\/\/(www\.)?(a\.co|z\.cn)\/.+/i], 13207 attributes: { 13208 providerNameSlug: 'amazon-kindle' 13209 } 13210 }, { 13211 name: 'pinterest', 13212 title: 'Pinterest', 13213 icon: embedPinterestIcon, 13214 keywords: [(0,external_wp_i18n_namespaceObject.__)('social'), (0,external_wp_i18n_namespaceObject.__)('bookmark')], 13215 description: (0,external_wp_i18n_namespaceObject.__)('Embed Pinterest pins, boards, and profiles.'), 13216 patterns: [/^https?:\/\/([a-z]{2}|www)\.pinterest\.com(\.(au|mx))?\/.*/i], 13217 attributes: { 13218 providerNameSlug: 'pinterest' 13219 } 13220 }, { 13221 name: 'wolfram-cloud', 13222 title: 'Wolfram', 13223 icon: embedWolframIcon, 13224 description: (0,external_wp_i18n_namespaceObject.__)('Embed Wolfram notebook content.'), 13225 patterns: [/^https?:\/\/(www\.)?wolframcloud\.com\/obj\/.+/i], 13226 attributes: { 13227 providerNameSlug: 'wolfram-cloud', 13228 responsive: true 13229 } 13230 }]; 13231 /** 13232 * Add `isActive` function to all `embed` variations, if not defined. 13233 * `isActive` function is used to find a variation match from a created 13234 * Block by providing its attributes. 13235 */ 13236 13237 variations_variations.forEach(variation => { 13238 if (variation.isActive) return; 13239 13240 variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.providerNameSlug === variationAttributes.providerNameSlug; 13241 }); 13242 /* harmony default export */ var embed_variations = (variations_variations); 13243 13244 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/deprecated.js 13245 13246 13247 /** 13248 * External dependencies 13249 */ 13250 13251 /** 13252 * Internal dependencies 13253 */ 13254 13255 const deprecated_metadata = { 13256 $schema: "https://schemas.wp.org/trunk/block.json", 13257 apiVersion: 2, 13258 name: "core/embed", 13259 title: "Embed", 13260 category: "embed", 13261 description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.", 13262 textdomain: "default", 13263 attributes: { 13264 url: { 13265 type: "string" 13266 }, 13267 caption: { 13268 type: "string", 13269 source: "html", 13270 selector: "figcaption" 13271 }, 13272 type: { 13273 type: "string" 13274 }, 13275 providerNameSlug: { 13276 type: "string" 13277 }, 13278 allowResponsive: { 13279 type: "boolean", 13280 "default": true 13281 }, 13282 responsive: { 13283 type: "boolean", 13284 "default": false 13285 }, 13286 previewable: { 13287 type: "boolean", 13288 "default": true 13289 } 13290 }, 13291 supports: { 13292 align: true 13293 }, 13294 editorStyle: "wp-block-embed-editor", 13295 style: "wp-block-embed" 13296 }; 13297 /** 13298 * WordPress dependencies 13299 */ 13300 13301 13302 const { 13303 attributes: embed_deprecated_blockAttributes 13304 } = deprecated_metadata; 13305 const embed_deprecated_deprecated = [{ 13306 attributes: embed_deprecated_blockAttributes, 13307 13308 save(_ref) { 13309 let { 13310 attributes: { 13311 url, 13312 caption, 13313 type, 13314 providerNameSlug 13315 } 13316 } = _ref; 13317 13318 if (!url) { 13319 return null; 13320 } 13321 13322 const embedClassName = classnames_default()('wp-block-embed', { 13323 [`is-type-$type}`]: type, 13324 [`is-provider-$providerNameSlug}`]: providerNameSlug 13325 }); 13326 return (0,external_wp_element_namespaceObject.createElement)("figure", { 13327 className: embedClassName 13328 }, `\n$url}\n` 13329 /* URL needs to be on its own line. */ 13330 , !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 13331 tagName: "figcaption", 13332 value: caption 13333 })); 13334 } 13335 13336 }]; 13337 /* harmony default export */ var embed_deprecated = (embed_deprecated_deprecated); 13338 13339 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/index.js 13340 /** 13341 * Internal dependencies 13342 */ 13343 13344 13345 const embed_metadata = { 13346 $schema: "https://schemas.wp.org/trunk/block.json", 13347 apiVersion: 2, 13348 name: "core/embed", 13349 title: "Embed", 13350 category: "embed", 13351 description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.", 13352 textdomain: "default", 13353 attributes: { 13354 url: { 13355 type: "string" 13356 }, 13357 caption: { 13358 type: "string", 13359 source: "html", 13360 selector: "figcaption" 13361 }, 13362 type: { 13363 type: "string" 13364 }, 13365 providerNameSlug: { 13366 type: "string" 13367 }, 13368 allowResponsive: { 13369 type: "boolean", 13370 "default": true 13371 }, 13372 responsive: { 13373 type: "boolean", 13374 "default": false 13375 }, 13376 previewable: { 13377 type: "boolean", 13378 "default": true 13379 } 13380 }, 13381 supports: { 13382 align: true 13383 }, 13384 editorStyle: "wp-block-embed-editor", 13385 style: "wp-block-embed" 13386 }; 13387 13388 13389 13390 13391 const { 13392 name: embed_name 13393 } = embed_metadata; 13394 13395 const embed_settings = { 13396 icon: embedContentIcon, 13397 edit: embed_edit, 13398 save: embed_save_save, 13399 transforms: embed_transforms, 13400 variations: embed_variations, 13401 deprecated: embed_deprecated 13402 }; 13403 13404 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/file.js 13405 13406 13407 /** 13408 * WordPress dependencies 13409 */ 13410 13411 const file = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 13412 viewBox: "0 0 24 24", 13413 xmlns: "http://www.w3.org/2000/svg" 13414 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 13415 d: "M19 6.2h-5.9l-.6-1.1c-.3-.7-1-1.1-1.8-1.1H5c-1.1 0-2 .9-2 2v11.8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8.2c0-1.1-.9-2-2-2zm.5 11.6c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h5.8c.2 0 .4.1.4.3l1 2H19c.3 0 .5.2.5.5v9.5z" 13416 })); 13417 /* harmony default export */ var library_file = (file); 13418 13419 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/deprecated.js 13420 13421 13422 /** 13423 * WordPress dependencies 13424 */ 13425 13426 // Version of the file block without PR#28062 accessibility fix. 13427 13428 const file_deprecated_deprecated = [{ 13429 attributes: { 13430 id: { 13431 type: 'number' 13432 }, 13433 href: { 13434 type: 'string' 13435 }, 13436 fileName: { 13437 type: 'string', 13438 source: 'html', 13439 selector: 'a:not([download])' 13440 }, 13441 textLinkHref: { 13442 type: 'string', 13443 source: 'attribute', 13444 selector: 'a:not([download])', 13445 attribute: 'href' 13446 }, 13447 textLinkTarget: { 13448 type: 'string', 13449 source: 'attribute', 13450 selector: 'a:not([download])', 13451 attribute: 'target' 13452 }, 13453 showDownloadButton: { 13454 type: 'boolean', 13455 default: true 13456 }, 13457 downloadButtonText: { 13458 type: 'string', 13459 source: 'html', 13460 selector: 'a[download]' 13461 }, 13462 displayPreview: { 13463 type: 'boolean' 13464 }, 13465 previewHeight: { 13466 type: 'number', 13467 default: 600 13468 } 13469 }, 13470 supports: { 13471 anchor: true, 13472 align: true 13473 }, 13474 13475 save(_ref) { 13476 let { 13477 attributes 13478 } = _ref; 13479 const { 13480 href, 13481 fileName, 13482 textLinkHref, 13483 textLinkTarget, 13484 showDownloadButton, 13485 downloadButtonText, 13486 displayPreview, 13487 previewHeight 13488 } = attributes; 13489 const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? (0,external_wp_i18n_namespaceObject.__)('PDF embed') : (0,external_wp_i18n_namespaceObject.sprintf)( 13490 /* translators: %s: filename. */ 13491 (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName); 13492 return href && (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save(), displayPreview && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("object", { 13493 className: "wp-block-file__embed", 13494 data: href, 13495 type: "application/pdf", 13496 style: { 13497 width: '100%', 13498 height: `$previewHeight}px` 13499 }, 13500 "aria-label": pdfEmbedLabel 13501 })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) && (0,external_wp_element_namespaceObject.createElement)("a", { 13502 href: textLinkHref, 13503 target: textLinkTarget, 13504 rel: textLinkTarget ? 'noreferrer noopener' : undefined 13505 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 13506 value: fileName 13507 })), showDownloadButton && (0,external_wp_element_namespaceObject.createElement)("a", { 13508 href: href, 13509 className: "wp-block-file__button", 13510 download: true 13511 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 13512 value: downloadButtonText 13513 }))); 13514 } 13515 13516 }]; 13517 /* harmony default export */ var file_deprecated = (file_deprecated_deprecated); 13518 13519 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/inspector.js 13520 13521 13522 /** 13523 * WordPress dependencies 13524 */ 13525 13526 13527 13528 /** 13529 * Internal dependencies 13530 */ 13531 13532 13533 function FileBlockInspector(_ref) { 13534 let { 13535 hrefs, 13536 openInNewWindow, 13537 showDownloadButton, 13538 changeLinkDestinationOption, 13539 changeOpenInNewWindow, 13540 changeShowDownloadButton, 13541 displayPreview, 13542 changeDisplayPreview, 13543 previewHeight, 13544 changePreviewHeight 13545 } = _ref; 13546 const { 13547 href, 13548 textLinkHref, 13549 attachmentPage 13550 } = hrefs; 13551 let linkDestinationOptions = [{ 13552 value: href, 13553 label: (0,external_wp_i18n_namespaceObject.__)('URL') 13554 }]; 13555 13556 if (attachmentPage) { 13557 linkDestinationOptions = [{ 13558 value: href, 13559 label: (0,external_wp_i18n_namespaceObject.__)('Media file') 13560 }, { 13561 value: attachmentPage, 13562 label: (0,external_wp_i18n_namespaceObject.__)('Attachment page') 13563 }]; 13564 } 13565 13566 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, href.endsWith('.pdf') && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 13567 title: (0,external_wp_i18n_namespaceObject.__)('PDF settings') 13568 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 13569 label: (0,external_wp_i18n_namespaceObject.__)('Show inline embed'), 13570 help: displayPreview ? (0,external_wp_i18n_namespaceObject.__)("Note: Most phone and tablet browsers won't display embedded PDFs.") : null, 13571 checked: !!displayPreview, 13572 onChange: changeDisplayPreview 13573 }), displayPreview && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 13574 label: (0,external_wp_i18n_namespaceObject.__)('Height in pixels'), 13575 min: MIN_PREVIEW_HEIGHT, 13576 max: Math.max(MAX_PREVIEW_HEIGHT, previewHeight), 13577 value: previewHeight, 13578 onChange: changePreviewHeight 13579 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 13580 title: (0,external_wp_i18n_namespaceObject.__)('Text link settings') 13581 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 13582 label: (0,external_wp_i18n_namespaceObject.__)('Link to'), 13583 value: textLinkHref, 13584 options: linkDestinationOptions, 13585 onChange: changeLinkDestinationOption 13586 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 13587 label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'), 13588 checked: openInNewWindow, 13589 onChange: changeOpenInNewWindow 13590 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 13591 title: (0,external_wp_i18n_namespaceObject.__)('Download button settings') 13592 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 13593 label: (0,external_wp_i18n_namespaceObject.__)('Show download button'), 13594 checked: showDownloadButton, 13595 onChange: changeShowDownloadButton 13596 })))); 13597 } 13598 13599 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/utils.js 13600 /** 13601 * Uses a combination of user agent matching and feature detection to determine whether 13602 * the current browser supports rendering PDFs inline. 13603 * 13604 * @return {boolean} Whether or not the browser supports inline PDFs. 13605 */ 13606 const browserSupportsPdfs = () => { 13607 // Most mobile devices include "Mobi" in their UA. 13608 if (window.navigator.userAgent.indexOf('Mobi') > -1) { 13609 return false; 13610 } // Android tablets are the noteable exception. 13611 13612 13613 if (window.navigator.userAgent.indexOf('Android') > -1) { 13614 return false; 13615 } // iPad pretends to be a Mac. 13616 13617 13618 if (window.navigator.userAgent.indexOf('Macintosh') > -1 && window.navigator.maxTouchPoints && window.navigator.maxTouchPoints > 2) { 13619 return false; 13620 } // IE only supports PDFs when there's an ActiveX object available for it. 13621 13622 13623 if (!!(window.ActiveXObject || 'ActiveXObject' in window) && !(createActiveXObject('AcroPDF.PDF') || createActiveXObject('PDF.PdfCtrl'))) { 13624 return false; 13625 } 13626 13627 return true; 13628 }; 13629 /** 13630 * Helper function for creating ActiveX objects, catching any errors that are thrown 13631 * when it's generated. 13632 * 13633 * @param {string} type The name of the ActiveX object to create. 13634 * @return {window.ActiveXObject|undefined} The generated ActiveXObject, or null if it failed. 13635 */ 13636 13637 const createActiveXObject = type => { 13638 let ax; 13639 13640 try { 13641 ax = new window.ActiveXObject(type); 13642 } catch (e) { 13643 ax = undefined; 13644 } 13645 13646 return ax; 13647 }; 13648 /** 13649 * Hides all .wp-block-file__embed elements on the document. This function is only intended 13650 * to be run on the front-end, it may have weird side effects running in the block editor. 13651 */ 13652 13653 13654 const hidePdfEmbedsOnUnsupportedBrowsers = () => { 13655 if (!browserSupportsPdfs()) { 13656 const embeds = document.getElementsByClassName('wp-block-file__embed'); 13657 Array.from(embeds).forEach(embed => { 13658 embed.style.display = 'none'; 13659 }); 13660 } 13661 }; 13662 13663 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/edit.js 13664 13665 13666 /** 13667 * External dependencies 13668 */ 13669 13670 /** 13671 * WordPress dependencies 13672 */ 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 /** 13685 * Internal dependencies 13686 */ 13687 13688 13689 13690 const MIN_PREVIEW_HEIGHT = 200; 13691 const MAX_PREVIEW_HEIGHT = 2000; 13692 13693 function ClipboardToolbarButton(_ref) { 13694 let { 13695 text, 13696 disabled 13697 } = _ref; 13698 const { 13699 createNotice 13700 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); 13701 const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text, () => { 13702 createNotice('info', (0,external_wp_i18n_namespaceObject.__)('Copied URL to clipboard.'), { 13703 isDismissible: true, 13704 type: 'snackbar' 13705 }); 13706 }); 13707 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 13708 className: "components-clipboard-toolbar-button", 13709 ref: ref, 13710 disabled: disabled 13711 }, (0,external_wp_i18n_namespaceObject.__)('Copy URL')); 13712 } 13713 13714 function FileEdit(_ref2) { 13715 let { 13716 attributes, 13717 isSelected, 13718 setAttributes, 13719 noticeUI, 13720 noticeOperations, 13721 clientId 13722 } = _ref2; 13723 const { 13724 id, 13725 fileId, 13726 fileName, 13727 href, 13728 textLinkHref, 13729 textLinkTarget, 13730 showDownloadButton, 13731 downloadButtonText, 13732 displayPreview, 13733 previewHeight 13734 } = attributes; 13735 const { 13736 media, 13737 mediaUpload 13738 } = (0,external_wp_data_namespaceObject.useSelect)(select => ({ 13739 media: id === undefined ? undefined : select(external_wp_coreData_namespaceObject.store).getMedia(id), 13740 mediaUpload: select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload 13741 }), [id]); 13742 const { 13743 toggleSelection, 13744 __unstableMarkNextChangeAsNotPersistent 13745 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 13746 (0,external_wp_element_namespaceObject.useEffect)(() => { 13747 // Upload a file drag-and-dropped into the editor. 13748 if ((0,external_wp_blob_namespaceObject.isBlobURL)(href)) { 13749 const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(href); 13750 mediaUpload({ 13751 filesList: [file], 13752 onFileChange: _ref3 => { 13753 let [newMedia] = _ref3; 13754 return onSelectFile(newMedia); 13755 }, 13756 onError: onUploadError 13757 }); 13758 (0,external_wp_blob_namespaceObject.revokeBlobURL)(href); 13759 } 13760 13761 if (downloadButtonText === undefined) { 13762 changeDownloadButtonText((0,external_wp_i18n_namespaceObject._x)('Download', 'button label')); 13763 } 13764 }, []); 13765 (0,external_wp_element_namespaceObject.useEffect)(() => { 13766 if (!fileId && href) { 13767 // Add a unique fileId to each file block. 13768 __unstableMarkNextChangeAsNotPersistent(); 13769 13770 setAttributes({ 13771 fileId: `wp-block-file--media-$clientId}` 13772 }); 13773 } 13774 }, [href, fileId, clientId]); 13775 13776 function onSelectFile(newMedia) { 13777 if (newMedia && newMedia.url) { 13778 const isPdf = newMedia.url.endsWith('.pdf'); 13779 setAttributes({ 13780 href: newMedia.url, 13781 fileName: newMedia.title, 13782 textLinkHref: newMedia.url, 13783 id: newMedia.id, 13784 displayPreview: isPdf ? true : undefined, 13785 previewHeight: isPdf ? 600 : undefined 13786 }); 13787 } 13788 } 13789 13790 function onUploadError(message) { 13791 setAttributes({ 13792 href: undefined 13793 }); 13794 noticeOperations.removeAllNotices(); 13795 noticeOperations.createErrorNotice(message); 13796 } 13797 13798 function changeLinkDestinationOption(newHref) { 13799 // Choose Media File or Attachment Page (when file is in Media Library). 13800 setAttributes({ 13801 textLinkHref: newHref 13802 }); 13803 } 13804 13805 function changeOpenInNewWindow(newValue) { 13806 setAttributes({ 13807 textLinkTarget: newValue ? '_blank' : false 13808 }); 13809 } 13810 13811 function changeShowDownloadButton(newValue) { 13812 setAttributes({ 13813 showDownloadButton: newValue 13814 }); 13815 } 13816 13817 function changeDownloadButtonText(newValue) { 13818 // Remove anchor tags from button text content. 13819 setAttributes({ 13820 downloadButtonText: newValue.replace(/<\/?a[^>]*>/g, '') 13821 }); 13822 } 13823 13824 function changeDisplayPreview(newValue) { 13825 setAttributes({ 13826 displayPreview: newValue 13827 }); 13828 } 13829 13830 function handleOnResizeStop(event, direction, elt, delta) { 13831 toggleSelection(true); 13832 const newHeight = parseInt(previewHeight + delta.height, 10); 13833 setAttributes({ 13834 previewHeight: newHeight 13835 }); 13836 } 13837 13838 function changePreviewHeight(newValue) { 13839 const newHeight = Math.max(parseInt(newValue, 10), MIN_PREVIEW_HEIGHT); 13840 setAttributes({ 13841 previewHeight: newHeight 13842 }); 13843 } 13844 13845 const attachmentPage = media && media.link; 13846 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 13847 className: classnames_default()((0,external_wp_blob_namespaceObject.isBlobURL)(href) && (0,external_wp_components_namespaceObject.__unstableGetAnimateClassName)({ 13848 type: 'loading' 13849 }), { 13850 'is-transient': (0,external_wp_blob_namespaceObject.isBlobURL)(href) 13851 }) 13852 }); 13853 const displayPreviewInEditor = browserSupportsPdfs() && displayPreview; 13854 13855 if (!href) { 13856 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, { 13857 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { 13858 icon: library_file 13859 }), 13860 labels: { 13861 title: (0,external_wp_i18n_namespaceObject.__)('File'), 13862 instructions: (0,external_wp_i18n_namespaceObject.__)('Upload a file or pick one from your media library.') 13863 }, 13864 onSelect: onSelectFile, 13865 notices: noticeUI, 13866 onError: onUploadError, 13867 accept: "*" 13868 })); 13869 } 13870 13871 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(FileBlockInspector, { 13872 hrefs: { 13873 href, 13874 textLinkHref, 13875 attachmentPage 13876 }, 13877 openInNewWindow: !!textLinkTarget, 13878 showDownloadButton, 13879 changeLinkDestinationOption, 13880 changeOpenInNewWindow, 13881 changeShowDownloadButton, 13882 displayPreview, 13883 changeDisplayPreview, 13884 previewHeight, 13885 changePreviewHeight 13886 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 13887 group: "other" 13888 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, { 13889 mediaId: id, 13890 mediaURL: href, 13891 accept: "*", 13892 onSelect: onSelectFile, 13893 onError: onUploadError 13894 }), (0,external_wp_element_namespaceObject.createElement)(ClipboardToolbarButton, { 13895 text: href, 13896 disabled: (0,external_wp_blob_namespaceObject.isBlobURL)(href) 13897 })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, displayPreviewInEditor && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, { 13898 size: { 13899 height: previewHeight 13900 }, 13901 minHeight: MIN_PREVIEW_HEIGHT, 13902 maxHeight: MAX_PREVIEW_HEIGHT, 13903 minWidth: "100%", 13904 grid: [10, 10], 13905 enable: { 13906 top: false, 13907 right: false, 13908 bottom: true, 13909 left: false, 13910 topRight: false, 13911 bottomRight: false, 13912 bottomLeft: false, 13913 topLeft: false 13914 }, 13915 onResizeStart: () => toggleSelection(false), 13916 onResizeStop: handleOnResizeStop, 13917 showHandle: isSelected 13918 }, (0,external_wp_element_namespaceObject.createElement)("object", { 13919 className: "wp-block-file__preview", 13920 data: href, 13921 type: "application/pdf", 13922 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Embed of the selected PDF file.') 13923 }), !isSelected && (0,external_wp_element_namespaceObject.createElement)("div", { 13924 className: "wp-block-file__preview-overlay" 13925 })), (0,external_wp_element_namespaceObject.createElement)("div", { 13926 className: 'wp-block-file__content-wrapper' 13927 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 13928 tagName: "a", 13929 value: fileName, 13930 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write file name…'), 13931 withoutInteractiveFormatting: true, 13932 onChange: text => setAttributes({ 13933 fileName: text 13934 }), 13935 href: textLinkHref 13936 }), showDownloadButton && (0,external_wp_element_namespaceObject.createElement)("div", { 13937 className: 'wp-block-file__button-richtext-wrapper' 13938 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 13939 tagName: "div" // Must be block-level or else cursor disappears. 13940 , 13941 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Download button text'), 13942 className: 'wp-block-file__button', 13943 value: downloadButtonText, 13944 withoutInteractiveFormatting: true, 13945 placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text…'), 13946 onChange: text => changeDownloadButtonText(text) 13947 }))))); 13948 } 13949 13950 /* harmony default export */ var file_edit = ((0,external_wp_components_namespaceObject.withNotices)(FileEdit)); 13951 13952 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/save.js 13953 13954 13955 /** 13956 * WordPress dependencies 13957 */ 13958 13959 13960 function file_save_save(_ref) { 13961 let { 13962 attributes 13963 } = _ref; 13964 const { 13965 href, 13966 fileId, 13967 fileName, 13968 textLinkHref, 13969 textLinkTarget, 13970 showDownloadButton, 13971 downloadButtonText, 13972 displayPreview, 13973 previewHeight 13974 } = attributes; 13975 const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? (0,external_wp_i18n_namespaceObject.__)('PDF embed') : (0,external_wp_i18n_namespaceObject.sprintf)( 13976 /* translators: %s: filename. */ 13977 (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName); 13978 const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName); // Only output an `aria-describedby` when the element it's referring to is 13979 // actually rendered. 13980 13981 const describedById = hasFilename ? fileId : undefined; 13982 return href && (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save(), displayPreview && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("object", { 13983 className: "wp-block-file__embed", 13984 data: href, 13985 type: "application/pdf", 13986 style: { 13987 width: '100%', 13988 height: `$previewHeight}px` 13989 }, 13990 "aria-label": pdfEmbedLabel 13991 })), hasFilename && (0,external_wp_element_namespaceObject.createElement)("a", { 13992 id: describedById, 13993 href: textLinkHref, 13994 target: textLinkTarget, 13995 rel: textLinkTarget ? 'noreferrer noopener' : undefined 13996 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 13997 value: fileName 13998 })), showDownloadButton && (0,external_wp_element_namespaceObject.createElement)("a", { 13999 href: href, 14000 className: "wp-block-file__button", 14001 download: true, 14002 "aria-describedby": describedById 14003 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 14004 value: downloadButtonText 14005 }))); 14006 } 14007 14008 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/transforms.js 14009 /** 14010 * External dependencies 14011 */ 14012 14013 /** 14014 * WordPress dependencies 14015 */ 14016 14017 14018 14019 14020 14021 14022 const file_transforms_transforms = { 14023 from: [{ 14024 type: 'files', 14025 14026 isMatch(files) { 14027 return files.length > 0; 14028 }, 14029 14030 // We define a lower priorty (higher number) than the default of 10. This 14031 // ensures that the File block is only created as a fallback. 14032 priority: 15, 14033 transform: files => { 14034 const blocks = []; 14035 files.forEach(file => { 14036 const blobURL = (0,external_wp_blob_namespaceObject.createBlobURL)(file); // File will be uploaded in componentDidMount() 14037 14038 blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/file', { 14039 href: blobURL, 14040 fileName: file.name, 14041 textLinkHref: blobURL 14042 })); 14043 }); 14044 return blocks; 14045 } 14046 }, { 14047 type: 'block', 14048 blocks: ['core/audio'], 14049 transform: attributes => { 14050 return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', { 14051 href: attributes.src, 14052 fileName: attributes.caption, 14053 textLinkHref: attributes.src, 14054 id: attributes.id, 14055 anchor: attributes.anchor 14056 }); 14057 } 14058 }, { 14059 type: 'block', 14060 blocks: ['core/video'], 14061 transform: attributes => { 14062 return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', { 14063 href: attributes.src, 14064 fileName: attributes.caption, 14065 textLinkHref: attributes.src, 14066 id: attributes.id, 14067 anchor: attributes.anchor 14068 }); 14069 } 14070 }, { 14071 type: 'block', 14072 blocks: ['core/image'], 14073 transform: attributes => { 14074 return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', { 14075 href: attributes.url, 14076 fileName: attributes.caption || (0,external_wp_url_namespaceObject.getFilename)(attributes.url), 14077 textLinkHref: attributes.url, 14078 id: attributes.id, 14079 anchor: attributes.anchor 14080 }); 14081 } 14082 }], 14083 to: [{ 14084 type: 'block', 14085 blocks: ['core/audio'], 14086 isMatch: _ref => { 14087 let { 14088 id 14089 } = _ref; 14090 14091 if (!id) { 14092 return false; 14093 } 14094 14095 const { 14096 getMedia 14097 } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store); 14098 const media = getMedia(id); 14099 return !!media && (0,external_lodash_namespaceObject.includes)(media.mime_type, 'audio'); 14100 }, 14101 transform: attributes => { 14102 return (0,external_wp_blocks_namespaceObject.createBlock)('core/audio', { 14103 src: attributes.href, 14104 caption: attributes.fileName, 14105 id: attributes.id, 14106 anchor: attributes.anchor 14107 }); 14108 } 14109 }, { 14110 type: 'block', 14111 blocks: ['core/video'], 14112 isMatch: _ref2 => { 14113 let { 14114 id 14115 } = _ref2; 14116 14117 if (!id) { 14118 return false; 14119 } 14120 14121 const { 14122 getMedia 14123 } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store); 14124 const media = getMedia(id); 14125 return !!media && (0,external_lodash_namespaceObject.includes)(media.mime_type, 'video'); 14126 }, 14127 transform: attributes => { 14128 return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', { 14129 src: attributes.href, 14130 caption: attributes.fileName, 14131 id: attributes.id, 14132 anchor: attributes.anchor 14133 }); 14134 } 14135 }, { 14136 type: 'block', 14137 blocks: ['core/image'], 14138 isMatch: _ref3 => { 14139 let { 14140 id 14141 } = _ref3; 14142 14143 if (!id) { 14144 return false; 14145 } 14146 14147 const { 14148 getMedia 14149 } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store); 14150 const media = getMedia(id); 14151 return !!media && (0,external_lodash_namespaceObject.includes)(media.mime_type, 'image'); 14152 }, 14153 transform: attributes => { 14154 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { 14155 url: attributes.href, 14156 caption: attributes.fileName, 14157 id: attributes.id, 14158 anchor: attributes.anchor 14159 }); 14160 } 14161 }] 14162 }; 14163 /* harmony default export */ var file_transforms = (file_transforms_transforms); 14164 14165 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/index.js 14166 /** 14167 * WordPress dependencies 14168 */ 14169 14170 14171 /** 14172 * Internal dependencies 14173 */ 14174 14175 14176 14177 const file_metadata = { 14178 $schema: "https://schemas.wp.org/trunk/block.json", 14179 apiVersion: 2, 14180 name: "core/file", 14181 title: "File", 14182 category: "media", 14183 description: "Add a link to a downloadable file.", 14184 keywords: ["document", "pdf", "download"], 14185 textdomain: "default", 14186 attributes: { 14187 id: { 14188 type: "number" 14189 }, 14190 href: { 14191 type: "string" 14192 }, 14193 fileId: { 14194 type: "string", 14195 source: "attribute", 14196 selector: "a:not([download])", 14197 attribute: "id" 14198 }, 14199 fileName: { 14200 type: "string", 14201 source: "html", 14202 selector: "a:not([download])" 14203 }, 14204 textLinkHref: { 14205 type: "string", 14206 source: "attribute", 14207 selector: "a:not([download])", 14208 attribute: "href" 14209 }, 14210 textLinkTarget: { 14211 type: "string", 14212 source: "attribute", 14213 selector: "a:not([download])", 14214 attribute: "target" 14215 }, 14216 showDownloadButton: { 14217 type: "boolean", 14218 "default": true 14219 }, 14220 downloadButtonText: { 14221 type: "string", 14222 source: "html", 14223 selector: "a[download]" 14224 }, 14225 displayPreview: { 14226 type: "boolean" 14227 }, 14228 previewHeight: { 14229 type: "number", 14230 "default": 600 14231 } 14232 }, 14233 supports: { 14234 anchor: true, 14235 align: true 14236 }, 14237 viewScript: "file:./view.min.js", 14238 editorStyle: "wp-block-file-editor", 14239 style: "wp-block-file" 14240 }; 14241 14242 14243 const { 14244 name: file_name 14245 } = file_metadata; 14246 14247 const file_settings = { 14248 icon: library_file, 14249 example: { 14250 attributes: { 14251 href: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg', 14252 fileName: (0,external_wp_i18n_namespaceObject._x)('Armstrong_Small_Step', 'Name of the file') 14253 } 14254 }, 14255 transforms: file_transforms, 14256 deprecated: file_deprecated, 14257 edit: file_edit, 14258 save: file_save_save 14259 }; 14260 14261 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/gallery.js 14262 14263 14264 /** 14265 * WordPress dependencies 14266 */ 14267 14268 const gallery = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 14269 viewBox: "0 0 24 24", 14270 xmlns: "http://www.w3.org/2000/svg" 14271 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 14272 d: "M20.2 8v11c0 .7-.6 1.2-1.2 1.2H6v1.5h13c1.5 0 2.7-1.2 2.7-2.8V8h-1.5zM18 16.4V4.6c0-.9-.7-1.6-1.6-1.6H4.6C3.7 3 3 3.7 3 4.6v11.8c0 .9.7 1.6 1.6 1.6h11.8c.9 0 1.6-.7 1.6-1.6zM4.5 4.6c0-.1.1-.1.1-.1h11.8c.1 0 .1.1.1.1V12l-2.3-1.7c-.3-.2-.6-.2-.9 0l-2.9 2.1L8 11.3c-.2-.1-.5-.1-.7 0l-2.9 1.5V4.6zm0 11.8v-1.8l3.2-1.7 2.4 1.2c.2.1.5.1.8-.1l2.8-2 2.8 2v2.5c0 .1-.1.1-.1.1H4.6c0-.1-.1-.2-.1-.2z" 14273 })); 14274 /* harmony default export */ var library_gallery = (gallery); 14275 14276 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/constants.js 14277 const LINK_DESTINATION_NONE = 'none'; 14278 const LINK_DESTINATION_MEDIA = 'media'; 14279 const LINK_DESTINATION_ATTACHMENT = 'attachment'; 14280 const LINK_DESTINATION_MEDIA_WP_CORE = 'file'; 14281 const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post'; 14282 14283 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/shared.js 14284 /** 14285 * External dependencies 14286 */ 14287 14288 function defaultColumnsNumber(imageCount) { 14289 return imageCount ? Math.min(3, imageCount) : 3; 14290 } 14291 const pickRelevantMediaFiles = function (image) { 14292 let sizeSlug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'large'; 14293 const imageProps = (0,external_lodash_namespaceObject.pick)(image, ['alt', 'id', 'link', 'caption']); 14294 imageProps.url = (0,external_lodash_namespaceObject.get)(image, ['sizes', sizeSlug, 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', sizeSlug, 'source_url']) || image.url; 14295 const fullUrl = (0,external_lodash_namespaceObject.get)(image, ['sizes', 'full', 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', 'full', 'source_url']); 14296 14297 if (fullUrl) { 14298 imageProps.fullUrl = fullUrl; 14299 } 14300 14301 return imageProps; 14302 }; 14303 /** 14304 * The new gallery block format is not compatible with the use_BalanceTags option 14305 * in WP versions <= 5.8 https://core.trac.wordpress.org/ticket/54130. The 14306 * window.wp.galleryBlockV2Enabled flag is set in lib/compat.php. This method 14307 * can be removed when minimum supported WP version >=5.9. 14308 */ 14309 14310 function isGalleryV2Enabled() { 14311 // Only run the Gallery version compat check if the plugin is running, otherwise 14312 // assume we are in 5.9 core and enable by default. 14313 if (false) {} 14314 14315 return true; 14316 } 14317 14318 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/deprecated.js 14319 14320 14321 /** 14322 * External dependencies 14323 */ 14324 14325 14326 /** 14327 * WordPress dependencies 14328 */ 14329 14330 14331 14332 /** 14333 * Internal dependencies 14334 */ 14335 14336 14337 14338 const DEPRECATED_LINK_DESTINATION_MEDIA = 'file'; 14339 const DEPRECATED_LINK_DESTINATION_ATTACHMENT = 'post'; 14340 /** 14341 * Original function to determine default number of columns from a block's 14342 * attributes. 14343 * 14344 * Used in deprecations: v1-6, for versions of the gallery block that didn't use inner blocks. 14345 * 14346 * @param {Object} attributes Block attributes. 14347 * @return {number} Default number of columns for the gallery. 14348 */ 14349 14350 function defaultColumnsNumberV1(attributes) { 14351 var _attributes$images; 14352 14353 return Math.min(3, attributes === null || attributes === void 0 ? void 0 : (_attributes$images = attributes.images) === null || _attributes$images === void 0 ? void 0 : _attributes$images.length); 14354 } 14355 /** 14356 * Original function to determine new href and linkDestination values for an image block from the 14357 * supplied Gallery link destination. 14358 * 14359 * Used in deprecations: v1-6. 14360 * 14361 * @param {Object} image Gallery image. 14362 * @param {string} destination Gallery's selected link destination. 14363 * @return {Object} New attributes to assign to image block. 14364 */ 14365 14366 function getHrefAndDestination(image, destination) { 14367 // Need to determine the URL that the selected destination maps to. 14368 // Gutenberg and WordPress use different constants so the new link 14369 // destination also needs to be tweaked. 14370 switch (destination) { 14371 case DEPRECATED_LINK_DESTINATION_MEDIA: 14372 return { 14373 href: (image === null || image === void 0 ? void 0 : image.source_url) || (image === null || image === void 0 ? void 0 : image.url), 14374 // eslint-disable-line camelcase 14375 linkDestination: LINK_DESTINATION_MEDIA 14376 }; 14377 14378 case DEPRECATED_LINK_DESTINATION_ATTACHMENT: 14379 return { 14380 href: image === null || image === void 0 ? void 0 : image.link, 14381 linkDestination: LINK_DESTINATION_ATTACHMENT 14382 }; 14383 14384 case LINK_DESTINATION_MEDIA: 14385 return { 14386 href: (image === null || image === void 0 ? void 0 : image.source_url) || (image === null || image === void 0 ? void 0 : image.url), 14387 // eslint-disable-line camelcase 14388 linkDestination: LINK_DESTINATION_MEDIA 14389 }; 14390 14391 case LINK_DESTINATION_ATTACHMENT: 14392 return { 14393 href: image === null || image === void 0 ? void 0 : image.link, 14394 linkDestination: LINK_DESTINATION_ATTACHMENT 14395 }; 14396 14397 case LINK_DESTINATION_NONE: 14398 return { 14399 href: undefined, 14400 linkDestination: LINK_DESTINATION_NONE 14401 }; 14402 } 14403 14404 return {}; 14405 } 14406 14407 function runV2Migration(attributes) { 14408 let linkTo = attributes.linkTo ? attributes.linkTo : 'none'; 14409 14410 if (linkTo === 'post') { 14411 linkTo = 'attachment'; 14412 } else if (linkTo === 'file') { 14413 linkTo = 'media'; 14414 } 14415 14416 const imageBlocks = attributes.images.map(image => { 14417 return getImageBlock(image, attributes.sizeSlug, linkTo); 14418 }); 14419 return [{ ...(0,external_lodash_namespaceObject.omit)(attributes, ['images', 'ids']), 14420 linkTo, 14421 allowResize: false 14422 }, imageBlocks]; 14423 } 14424 /** 14425 * Gets an Image block from gallery image data 14426 * 14427 * Used to migrate Galleries to nested Image InnerBlocks. 14428 * 14429 * @param {Object} image Image properties. 14430 * @param {string} sizeSlug Gallery sizeSlug attribute. 14431 * @param {string} linkTo Gallery linkTo attribute. 14432 * @return {Object} Image block. 14433 */ 14434 14435 14436 function getImageBlock(image, sizeSlug, linkTo) { 14437 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { ...(image.id && { 14438 id: parseInt(image.id) 14439 }), 14440 url: image.url, 14441 alt: image.alt, 14442 caption: image.caption, 14443 sizeSlug, 14444 ...getHrefAndDestination(image, linkTo) 14445 }); 14446 } 14447 const deprecated_v6 = { 14448 attributes: { 14449 images: { 14450 type: 'array', 14451 default: [], 14452 source: 'query', 14453 selector: '.blocks-gallery-item', 14454 query: { 14455 url: { 14456 type: 'string', 14457 source: 'attribute', 14458 selector: 'img', 14459 attribute: 'src' 14460 }, 14461 fullUrl: { 14462 type: 'string', 14463 source: 'attribute', 14464 selector: 'img', 14465 attribute: 'data-full-url' 14466 }, 14467 link: { 14468 type: 'string', 14469 source: 'attribute', 14470 selector: 'img', 14471 attribute: 'data-link' 14472 }, 14473 alt: { 14474 type: 'string', 14475 source: 'attribute', 14476 selector: 'img', 14477 attribute: 'alt', 14478 default: '' 14479 }, 14480 id: { 14481 type: 'string', 14482 source: 'attribute', 14483 selector: 'img', 14484 attribute: 'data-id' 14485 }, 14486 caption: { 14487 type: 'string', 14488 source: 'html', 14489 selector: '.blocks-gallery-item__caption' 14490 } 14491 } 14492 }, 14493 ids: { 14494 type: 'array', 14495 items: { 14496 type: 'number' 14497 }, 14498 default: [] 14499 }, 14500 columns: { 14501 type: 'number', 14502 minimum: 1, 14503 maximum: 8 14504 }, 14505 caption: { 14506 type: 'string', 14507 source: 'html', 14508 selector: '.blocks-gallery-caption' 14509 }, 14510 imageCrop: { 14511 type: 'boolean', 14512 default: true 14513 }, 14514 fixedHeight: { 14515 type: 'boolean', 14516 default: true 14517 }, 14518 linkTo: { 14519 type: 'string' 14520 }, 14521 sizeSlug: { 14522 type: 'string', 14523 default: 'large' 14524 } 14525 }, 14526 supports: { 14527 anchor: true, 14528 align: true 14529 }, 14530 14531 save(_ref) { 14532 let { 14533 attributes 14534 } = _ref; 14535 const { 14536 images, 14537 columns = defaultColumnsNumberV1(attributes), 14538 imageCrop, 14539 caption, 14540 linkTo 14541 } = attributes; 14542 const className = `columns-$columns} $imageCrop ? 'is-cropped' : ''}`; 14543 return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 14544 className 14545 }), (0,external_wp_element_namespaceObject.createElement)("ul", { 14546 className: "blocks-gallery-grid" 14547 }, images.map(image => { 14548 let href; 14549 14550 switch (linkTo) { 14551 case DEPRECATED_LINK_DESTINATION_MEDIA: 14552 href = image.fullUrl || image.url; 14553 break; 14554 14555 case DEPRECATED_LINK_DESTINATION_ATTACHMENT: 14556 href = image.link; 14557 break; 14558 } 14559 14560 const img = (0,external_wp_element_namespaceObject.createElement)("img", { 14561 src: image.url, 14562 alt: image.alt, 14563 "data-id": image.id, 14564 "data-full-url": image.fullUrl, 14565 "data-link": image.link, 14566 className: image.id ? `wp-image-$image.id}` : null 14567 }); 14568 return (0,external_wp_element_namespaceObject.createElement)("li", { 14569 key: image.id || image.url, 14570 className: "blocks-gallery-item" 14571 }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 14572 href: href 14573 }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 14574 tagName: "figcaption", 14575 className: "blocks-gallery-item__caption", 14576 value: image.caption 14577 }))); 14578 })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 14579 tagName: "figcaption", 14580 className: "blocks-gallery-caption", 14581 value: caption 14582 })); 14583 }, 14584 14585 migrate(attributes) { 14586 if (isGalleryV2Enabled()) { 14587 return runV2Migration(attributes); 14588 } 14589 14590 return attributes; 14591 } 14592 14593 }; 14594 const deprecated_v5 = { 14595 attributes: { 14596 images: { 14597 type: 'array', 14598 default: [], 14599 source: 'query', 14600 selector: '.blocks-gallery-item', 14601 query: { 14602 url: { 14603 type: 'string', 14604 source: 'attribute', 14605 selector: 'img', 14606 attribute: 'src' 14607 }, 14608 fullUrl: { 14609 type: 'string', 14610 source: 'attribute', 14611 selector: 'img', 14612 attribute: 'data-full-url' 14613 }, 14614 link: { 14615 type: 'string', 14616 source: 'attribute', 14617 selector: 'img', 14618 attribute: 'data-link' 14619 }, 14620 alt: { 14621 type: 'string', 14622 source: 'attribute', 14623 selector: 'img', 14624 attribute: 'alt', 14625 default: '' 14626 }, 14627 id: { 14628 type: 'string', 14629 source: 'attribute', 14630 selector: 'img', 14631 attribute: 'data-id' 14632 }, 14633 caption: { 14634 type: 'string', 14635 source: 'html', 14636 selector: '.blocks-gallery-item__caption' 14637 } 14638 } 14639 }, 14640 ids: { 14641 type: 'array', 14642 items: { 14643 type: 'number' 14644 }, 14645 default: [] 14646 }, 14647 columns: { 14648 type: 'number', 14649 minimum: 1, 14650 maximum: 8 14651 }, 14652 caption: { 14653 type: 'string', 14654 source: 'html', 14655 selector: '.blocks-gallery-caption' 14656 }, 14657 imageCrop: { 14658 type: 'boolean', 14659 default: true 14660 }, 14661 linkTo: { 14662 type: 'string', 14663 default: 'none' 14664 }, 14665 sizeSlug: { 14666 type: 'string', 14667 default: 'large' 14668 } 14669 }, 14670 supports: { 14671 align: true 14672 }, 14673 14674 isEligible(_ref2) { 14675 let { 14676 linkTo 14677 } = _ref2; 14678 return !linkTo || linkTo === 'attachment' || linkTo === 'media'; 14679 }, 14680 14681 migrate(attributes) { 14682 if (isGalleryV2Enabled()) { 14683 return runV2Migration(attributes); 14684 } 14685 14686 let linkTo = attributes.linkTo; 14687 14688 if (!attributes.linkTo) { 14689 linkTo = 'none'; 14690 } else if (attributes.linkTo === 'attachment') { 14691 linkTo = 'post'; 14692 } else if (attributes.linkTo === 'media') { 14693 linkTo = 'file'; 14694 } 14695 14696 return { ...attributes, 14697 linkTo 14698 }; 14699 }, 14700 14701 save(_ref3) { 14702 let { 14703 attributes 14704 } = _ref3; 14705 const { 14706 images, 14707 columns = defaultColumnsNumberV1(attributes), 14708 imageCrop, 14709 caption, 14710 linkTo 14711 } = attributes; 14712 return (0,external_wp_element_namespaceObject.createElement)("figure", { 14713 className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}` 14714 }, (0,external_wp_element_namespaceObject.createElement)("ul", { 14715 className: "blocks-gallery-grid" 14716 }, images.map(image => { 14717 let href; 14718 14719 switch (linkTo) { 14720 case 'media': 14721 href = image.fullUrl || image.url; 14722 break; 14723 14724 case 'attachment': 14725 href = image.link; 14726 break; 14727 } 14728 14729 const img = (0,external_wp_element_namespaceObject.createElement)("img", { 14730 src: image.url, 14731 alt: image.alt, 14732 "data-id": image.id, 14733 "data-full-url": image.fullUrl, 14734 "data-link": image.link, 14735 className: image.id ? `wp-image-$image.id}` : null 14736 }); 14737 return (0,external_wp_element_namespaceObject.createElement)("li", { 14738 key: image.id || image.url, 14739 className: "blocks-gallery-item" 14740 }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 14741 href: href 14742 }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 14743 tagName: "figcaption", 14744 className: "blocks-gallery-item__caption", 14745 value: image.caption 14746 }))); 14747 })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 14748 tagName: "figcaption", 14749 className: "blocks-gallery-caption", 14750 value: caption 14751 })); 14752 } 14753 14754 }; 14755 const deprecated_v4 = { 14756 attributes: { 14757 images: { 14758 type: 'array', 14759 default: [], 14760 source: 'query', 14761 selector: '.blocks-gallery-item', 14762 query: { 14763 url: { 14764 source: 'attribute', 14765 selector: 'img', 14766 attribute: 'src' 14767 }, 14768 fullUrl: { 14769 source: 'attribute', 14770 selector: 'img', 14771 attribute: 'data-full-url' 14772 }, 14773 link: { 14774 source: 'attribute', 14775 selector: 'img', 14776 attribute: 'data-link' 14777 }, 14778 alt: { 14779 source: 'attribute', 14780 selector: 'img', 14781 attribute: 'alt', 14782 default: '' 14783 }, 14784 id: { 14785 source: 'attribute', 14786 selector: 'img', 14787 attribute: 'data-id' 14788 }, 14789 caption: { 14790 type: 'string', 14791 source: 'html', 14792 selector: '.blocks-gallery-item__caption' 14793 } 14794 } 14795 }, 14796 ids: { 14797 type: 'array', 14798 default: [] 14799 }, 14800 columns: { 14801 type: 'number' 14802 }, 14803 caption: { 14804 type: 'string', 14805 source: 'html', 14806 selector: '.blocks-gallery-caption' 14807 }, 14808 imageCrop: { 14809 type: 'boolean', 14810 default: true 14811 }, 14812 linkTo: { 14813 type: 'string', 14814 default: 'none' 14815 } 14816 }, 14817 supports: { 14818 align: true 14819 }, 14820 14821 isEligible(_ref4) { 14822 let { 14823 ids 14824 } = _ref4; 14825 return ids && ids.some(id => typeof id === 'string'); 14826 }, 14827 14828 migrate(attributes) { 14829 if (isGalleryV2Enabled()) { 14830 return runV2Migration(attributes); 14831 } 14832 14833 return { ...attributes, 14834 ids: (0,external_lodash_namespaceObject.map)(attributes.ids, id => { 14835 const parsedId = parseInt(id, 10); 14836 return Number.isInteger(parsedId) ? parsedId : null; 14837 }) 14838 }; 14839 }, 14840 14841 save(_ref5) { 14842 let { 14843 attributes 14844 } = _ref5; 14845 const { 14846 images, 14847 columns = defaultColumnsNumberV1(attributes), 14848 imageCrop, 14849 caption, 14850 linkTo 14851 } = attributes; 14852 return (0,external_wp_element_namespaceObject.createElement)("figure", { 14853 className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}` 14854 }, (0,external_wp_element_namespaceObject.createElement)("ul", { 14855 className: "blocks-gallery-grid" 14856 }, images.map(image => { 14857 let href; 14858 14859 switch (linkTo) { 14860 case 'media': 14861 href = image.fullUrl || image.url; 14862 break; 14863 14864 case 'attachment': 14865 href = image.link; 14866 break; 14867 } 14868 14869 const img = (0,external_wp_element_namespaceObject.createElement)("img", { 14870 src: image.url, 14871 alt: image.alt, 14872 "data-id": image.id, 14873 "data-full-url": image.fullUrl, 14874 "data-link": image.link, 14875 className: image.id ? `wp-image-$image.id}` : null 14876 }); 14877 return (0,external_wp_element_namespaceObject.createElement)("li", { 14878 key: image.id || image.url, 14879 className: "blocks-gallery-item" 14880 }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 14881 href: href 14882 }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 14883 tagName: "figcaption", 14884 className: "blocks-gallery-item__caption", 14885 value: image.caption 14886 }))); 14887 })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 14888 tagName: "figcaption", 14889 className: "blocks-gallery-caption", 14890 value: caption 14891 })); 14892 } 14893 14894 }; 14895 const deprecated_v3 = { 14896 attributes: { 14897 images: { 14898 type: 'array', 14899 default: [], 14900 source: 'query', 14901 selector: 'ul.wp-block-gallery .blocks-gallery-item', 14902 query: { 14903 url: { 14904 source: 'attribute', 14905 selector: 'img', 14906 attribute: 'src' 14907 }, 14908 fullUrl: { 14909 source: 'attribute', 14910 selector: 'img', 14911 attribute: 'data-full-url' 14912 }, 14913 alt: { 14914 source: 'attribute', 14915 selector: 'img', 14916 attribute: 'alt', 14917 default: '' 14918 }, 14919 id: { 14920 source: 'attribute', 14921 selector: 'img', 14922 attribute: 'data-id' 14923 }, 14924 link: { 14925 source: 'attribute', 14926 selector: 'img', 14927 attribute: 'data-link' 14928 }, 14929 caption: { 14930 type: 'array', 14931 source: 'children', 14932 selector: 'figcaption' 14933 } 14934 } 14935 }, 14936 ids: { 14937 type: 'array', 14938 default: [] 14939 }, 14940 columns: { 14941 type: 'number' 14942 }, 14943 imageCrop: { 14944 type: 'boolean', 14945 default: true 14946 }, 14947 linkTo: { 14948 type: 'string', 14949 default: 'none' 14950 } 14951 }, 14952 supports: { 14953 align: true 14954 }, 14955 14956 save(_ref6) { 14957 let { 14958 attributes 14959 } = _ref6; 14960 const { 14961 images, 14962 columns = defaultColumnsNumberV1(attributes), 14963 imageCrop, 14964 linkTo 14965 } = attributes; 14966 return (0,external_wp_element_namespaceObject.createElement)("ul", { 14967 className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}` 14968 }, images.map(image => { 14969 let href; 14970 14971 switch (linkTo) { 14972 case 'media': 14973 href = image.fullUrl || image.url; 14974 break; 14975 14976 case 'attachment': 14977 href = image.link; 14978 break; 14979 } 14980 14981 const img = (0,external_wp_element_namespaceObject.createElement)("img", { 14982 src: image.url, 14983 alt: image.alt, 14984 "data-id": image.id, 14985 "data-full-url": image.fullUrl, 14986 "data-link": image.link, 14987 className: image.id ? `wp-image-$image.id}` : null 14988 }); 14989 return (0,external_wp_element_namespaceObject.createElement)("li", { 14990 key: image.id || image.url, 14991 className: "blocks-gallery-item" 14992 }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 14993 href: href 14994 }, img) : img, image.caption && image.caption.length > 0 && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 14995 tagName: "figcaption", 14996 value: image.caption 14997 }))); 14998 })); 14999 }, 15000 15001 migrate(attributes) { 15002 if (isGalleryV2Enabled()) { 15003 return runV2Migration(attributes); 15004 } 15005 15006 return attributes; 15007 } 15008 15009 }; 15010 const deprecated_v2 = { 15011 attributes: { 15012 images: { 15013 type: 'array', 15014 default: [], 15015 source: 'query', 15016 selector: 'ul.wp-block-gallery .blocks-gallery-item', 15017 query: { 15018 url: { 15019 source: 'attribute', 15020 selector: 'img', 15021 attribute: 'src' 15022 }, 15023 alt: { 15024 source: 'attribute', 15025 selector: 'img', 15026 attribute: 'alt', 15027 default: '' 15028 }, 15029 id: { 15030 source: 'attribute', 15031 selector: 'img', 15032 attribute: 'data-id' 15033 }, 15034 link: { 15035 source: 'attribute', 15036 selector: 'img', 15037 attribute: 'data-link' 15038 }, 15039 caption: { 15040 type: 'array', 15041 source: 'children', 15042 selector: 'figcaption' 15043 } 15044 } 15045 }, 15046 columns: { 15047 type: 'number' 15048 }, 15049 imageCrop: { 15050 type: 'boolean', 15051 default: true 15052 }, 15053 linkTo: { 15054 type: 'string', 15055 default: 'none' 15056 } 15057 }, 15058 15059 isEligible(_ref7) { 15060 let { 15061 images, 15062 ids 15063 } = _ref7; 15064 return images && images.length > 0 && (!ids && images || ids && images && ids.length !== images.length || (0,external_lodash_namespaceObject.some)(images, (id, index) => { 15065 if (!id && ids[index] !== null) { 15066 return true; 15067 } 15068 15069 return parseInt(id, 10) !== ids[index]; 15070 })); 15071 }, 15072 15073 migrate(attributes) { 15074 if (isGalleryV2Enabled()) { 15075 return runV2Migration(attributes); 15076 } 15077 15078 return { ...attributes, 15079 ids: (0,external_lodash_namespaceObject.map)(attributes.images, _ref8 => { 15080 let { 15081 id 15082 } = _ref8; 15083 15084 if (!id) { 15085 return null; 15086 } 15087 15088 return parseInt(id, 10); 15089 }) 15090 }; 15091 }, 15092 15093 supports: { 15094 align: true 15095 }, 15096 15097 save(_ref9) { 15098 let { 15099 attributes 15100 } = _ref9; 15101 const { 15102 images, 15103 columns = defaultColumnsNumberV1(attributes), 15104 imageCrop, 15105 linkTo 15106 } = attributes; 15107 return (0,external_wp_element_namespaceObject.createElement)("ul", { 15108 className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}` 15109 }, images.map(image => { 15110 let href; 15111 15112 switch (linkTo) { 15113 case 'media': 15114 href = image.url; 15115 break; 15116 15117 case 'attachment': 15118 href = image.link; 15119 break; 15120 } 15121 15122 const img = (0,external_wp_element_namespaceObject.createElement)("img", { 15123 src: image.url, 15124 alt: image.alt, 15125 "data-id": image.id, 15126 "data-link": image.link, 15127 className: image.id ? `wp-image-$image.id}` : null 15128 }); 15129 return (0,external_wp_element_namespaceObject.createElement)("li", { 15130 key: image.id || image.url, 15131 className: "blocks-gallery-item" 15132 }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 15133 href: href 15134 }, img) : img, image.caption && image.caption.length > 0 && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 15135 tagName: "figcaption", 15136 value: image.caption 15137 }))); 15138 })); 15139 } 15140 15141 }; 15142 const gallery_deprecated_v1 = { 15143 attributes: { 15144 images: { 15145 type: 'array', 15146 default: [], 15147 source: 'query', 15148 selector: 'div.wp-block-gallery figure.blocks-gallery-image img', 15149 query: { 15150 url: { 15151 source: 'attribute', 15152 attribute: 'src' 15153 }, 15154 alt: { 15155 source: 'attribute', 15156 attribute: 'alt', 15157 default: '' 15158 }, 15159 id: { 15160 source: 'attribute', 15161 attribute: 'data-id' 15162 } 15163 } 15164 }, 15165 columns: { 15166 type: 'number' 15167 }, 15168 imageCrop: { 15169 type: 'boolean', 15170 default: true 15171 }, 15172 linkTo: { 15173 type: 'string', 15174 default: 'none' 15175 }, 15176 align: { 15177 type: 'string', 15178 default: 'none' 15179 } 15180 }, 15181 supports: { 15182 align: true 15183 }, 15184 15185 save(_ref10) { 15186 let { 15187 attributes 15188 } = _ref10; 15189 const { 15190 images, 15191 columns = defaultColumnsNumberV1(attributes), 15192 align, 15193 imageCrop, 15194 linkTo 15195 } = attributes; 15196 const className = classnames_default()(`columns-$columns}`, { 15197 alignnone: align === 'none', 15198 'is-cropped': imageCrop 15199 }); 15200 return (0,external_wp_element_namespaceObject.createElement)("div", { 15201 className: className 15202 }, images.map(image => { 15203 let href; 15204 15205 switch (linkTo) { 15206 case 'media': 15207 href = image.url; 15208 break; 15209 15210 case 'attachment': 15211 href = image.link; 15212 break; 15213 } 15214 15215 const img = (0,external_wp_element_namespaceObject.createElement)("img", { 15216 src: image.url, 15217 alt: image.alt, 15218 "data-id": image.id 15219 }); 15220 return (0,external_wp_element_namespaceObject.createElement)("figure", { 15221 key: image.id || image.url, 15222 className: "blocks-gallery-image" 15223 }, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 15224 href: href 15225 }, img) : img); 15226 })); 15227 }, 15228 15229 migrate(attributes) { 15230 if (isGalleryV2Enabled()) { 15231 return runV2Migration(attributes); 15232 } 15233 15234 return attributes; 15235 } 15236 15237 }; 15238 /* harmony default export */ var gallery_deprecated = ([deprecated_v6, deprecated_v5, deprecated_v4, deprecated_v3, deprecated_v2, gallery_deprecated_v1]); 15239 15240 ;// CONCATENATED MODULE: external ["wp","viewport"] 15241 var external_wp_viewport_namespaceObject = window["wp"]["viewport"]; 15242 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/shared-icon.js 15243 15244 15245 /** 15246 * WordPress dependencies 15247 */ 15248 15249 15250 const sharedIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { 15251 icon: library_gallery 15252 }); 15253 15254 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/constants.js 15255 const MIN_SIZE = 20; 15256 const constants_LINK_DESTINATION_NONE = 'none'; 15257 const constants_LINK_DESTINATION_MEDIA = 'media'; 15258 const constants_LINK_DESTINATION_ATTACHMENT = 'attachment'; 15259 const LINK_DESTINATION_CUSTOM = 'custom'; 15260 const constants_NEW_TAB_REL = ['noreferrer', 'noopener']; 15261 const constants_ALLOWED_MEDIA_TYPES = ['image']; 15262 const MEDIA_ID_NO_FEATURED_IMAGE_SET = 0; 15263 15264 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/utils.js 15265 /** 15266 * Internal dependencies 15267 */ 15268 15269 15270 /** 15271 * Determines new href and linkDestination values for an image block from the 15272 * supplied Gallery link destination. 15273 * 15274 * @param {Object} image Gallery image. 15275 * @param {string} destination Gallery's selected link destination. 15276 * @return {Object} New attributes to assign to image block. 15277 */ 15278 15279 function utils_getHrefAndDestination(image, destination) { 15280 // Gutenberg and WordPress use different constants so if image_default_link_type 15281 // option is set we need to map from the WP Core values. 15282 switch (destination) { 15283 case LINK_DESTINATION_MEDIA_WP_CORE: 15284 case LINK_DESTINATION_MEDIA: 15285 return { 15286 href: (image === null || image === void 0 ? void 0 : image.source_url) || (image === null || image === void 0 ? void 0 : image.url), 15287 // eslint-disable-line camelcase 15288 linkDestination: constants_LINK_DESTINATION_MEDIA 15289 }; 15290 15291 case LINK_DESTINATION_ATTACHMENT_WP_CORE: 15292 case LINK_DESTINATION_ATTACHMENT: 15293 return { 15294 href: image === null || image === void 0 ? void 0 : image.link, 15295 linkDestination: constants_LINK_DESTINATION_ATTACHMENT 15296 }; 15297 15298 case LINK_DESTINATION_NONE: 15299 return { 15300 href: undefined, 15301 linkDestination: constants_LINK_DESTINATION_NONE 15302 }; 15303 } 15304 15305 return {}; 15306 } 15307 15308 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/utils.js 15309 /** 15310 * External dependencies 15311 */ 15312 15313 /** 15314 * Internal dependencies 15315 */ 15316 15317 15318 function removeNewTabRel(currentRel) { 15319 let newRel = currentRel; 15320 15321 if (currentRel !== undefined && !(0,external_lodash_namespaceObject.isEmpty)(newRel)) { 15322 if (!(0,external_lodash_namespaceObject.isEmpty)(newRel)) { 15323 (0,external_lodash_namespaceObject.each)(constants_NEW_TAB_REL, relVal => { 15324 const regExp = new RegExp('\\b' + relVal + '\\b', 'gi'); 15325 newRel = newRel.replace(regExp, ''); 15326 }); // Only trim if NEW_TAB_REL values was replaced. 15327 15328 if (newRel !== currentRel) { 15329 newRel = newRel.trim(); 15330 } 15331 15332 if ((0,external_lodash_namespaceObject.isEmpty)(newRel)) { 15333 newRel = undefined; 15334 } 15335 } 15336 } 15337 15338 return newRel; 15339 } 15340 /** 15341 * Helper to get the link target settings to be stored. 15342 * 15343 * @param {boolean} value The new link target value. 15344 * @param {Object} attributes Block attributes. 15345 * @param {Object} attributes.rel Image block's rel attribute. 15346 * 15347 * @return {Object} Updated link target settings. 15348 */ 15349 15350 function getUpdatedLinkTargetSettings(value, _ref) { 15351 let { 15352 rel 15353 } = _ref; 15354 const linkTarget = value ? '_blank' : undefined; 15355 let updatedRel; 15356 15357 if (!linkTarget && !rel) { 15358 updatedRel = undefined; 15359 } else { 15360 updatedRel = removeNewTabRel(rel); 15361 } 15362 15363 return { 15364 linkTarget, 15365 rel: updatedRel 15366 }; 15367 } 15368 /** 15369 * Determines new Image block attributes size selection. 15370 * 15371 * @param {Object} image Media file object for gallery image. 15372 * @param {string} size Selected size slug to apply. 15373 */ 15374 15375 function getImageSizeAttributes(image, size) { 15376 const url = (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', size, 'source_url']); 15377 15378 if (url) { 15379 return { 15380 url, 15381 width: undefined, 15382 height: undefined, 15383 sizeSlug: size 15384 }; 15385 } 15386 15387 return {}; 15388 } 15389 15390 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/gallery.js 15391 15392 15393 15394 /** 15395 * External dependencies 15396 */ 15397 15398 /** 15399 * WordPress dependencies 15400 */ 15401 15402 15403 15404 15405 15406 15407 15408 const allowedBlocks = ['core/image']; 15409 const Gallery = props => { 15410 const { 15411 attributes, 15412 isSelected, 15413 setAttributes, 15414 mediaPlaceholder, 15415 insertBlocksAfter, 15416 blockProps 15417 } = props; 15418 const { 15419 align, 15420 columns, 15421 caption, 15422 imageCrop 15423 } = attributes; 15424 const { 15425 children, 15426 ...innerBlocksProps 15427 } = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, { 15428 allowedBlocks, 15429 orientation: 'horizontal', 15430 renderAppender: false, 15431 __experimentalLayout: { 15432 type: 'default', 15433 alignments: [] 15434 } 15435 }); 15436 const [captionFocused, setCaptionFocused] = (0,external_wp_element_namespaceObject.useState)(false); 15437 15438 function onFocusCaption() { 15439 if (!captionFocused) { 15440 setCaptionFocused(true); 15441 } 15442 } 15443 15444 function removeCaptionFocus() { 15445 if (captionFocused) { 15446 setCaptionFocused(false); 15447 } 15448 } 15449 15450 (0,external_wp_element_namespaceObject.useEffect)(() => { 15451 if (!isSelected) { 15452 setCaptionFocused(false); 15453 } 15454 }, [isSelected]); 15455 return (0,external_wp_element_namespaceObject.createElement)("figure", _extends({}, innerBlocksProps, { 15456 className: classnames_default()(blockProps.className, 'blocks-gallery-grid', { 15457 [`align$align}`]: align, 15458 [`columns-$columns}`]: columns !== undefined, 15459 [`columns-default`]: columns === undefined, 15460 'is-cropped': imageCrop 15461 }) 15462 }), children, isSelected && !children && (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, { 15463 className: "blocks-gallery-media-placeholder-wrapper", 15464 onClick: removeCaptionFocus 15465 }, mediaPlaceholder), (0,external_wp_element_namespaceObject.createElement)(RichTextVisibilityHelper, { 15466 isHidden: !isSelected && external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption), 15467 captionFocused: captionFocused, 15468 onFocusCaption: onFocusCaption, 15469 tagName: "figcaption", 15470 className: "blocks-gallery-caption", 15471 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Gallery caption text'), 15472 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write gallery caption…'), 15473 value: caption, 15474 onChange: value => setAttributes({ 15475 caption: value 15476 }), 15477 inlineToolbar: true, 15478 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')) 15479 })); 15480 }; 15481 15482 function RichTextVisibilityHelper(_ref) { 15483 let { 15484 isHidden, 15485 captionFocused, 15486 onFocusCaption, 15487 className, 15488 value, 15489 placeholder, 15490 tagName, 15491 captionRef, 15492 ...richTextProps 15493 } = _ref; 15494 15495 if (isHidden) { 15496 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, _extends({ 15497 as: external_wp_blockEditor_namespaceObject.RichText 15498 }, richTextProps)); 15499 } 15500 15501 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({ 15502 ref: captionRef, 15503 value: value, 15504 placeholder: placeholder, 15505 className: className, 15506 tagName: tagName, 15507 isSelected: captionFocused, 15508 onClick: onFocusCaption 15509 }, richTextProps)); 15510 } 15511 15512 /* harmony default export */ var gallery_gallery = (Gallery); 15513 15514 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-image-sizes.js 15515 /** 15516 * External dependencies 15517 */ 15518 15519 /** 15520 * WordPress dependencies 15521 */ 15522 15523 15524 /** 15525 * Calculates the image sizes that are avaible for the current gallery images in order to 15526 * populate the 'Image size' selector. 15527 * 15528 * @param {Array} images Basic image block data taken from current gallery innerBlock 15529 * @param {boolean} isSelected Is the block currently selected in the editor. 15530 * @param {Function} getSettings Block editor store selector. 15531 * 15532 * @return {Array} An array of image size options. 15533 */ 15534 15535 function useImageSizes(images, isSelected, getSettings) { 15536 return (0,external_wp_element_namespaceObject.useMemo)(() => getImageSizing(), [images, isSelected]); 15537 15538 function getImageSizing() { 15539 if (!images || images.length === 0) { 15540 return; 15541 } 15542 15543 const { 15544 imageSizes 15545 } = getSettings(); 15546 let resizedImages = {}; 15547 15548 if (isSelected) { 15549 resizedImages = images.reduce((currentResizedImages, img) => { 15550 if (!img.id) { 15551 return currentResizedImages; 15552 } 15553 15554 const sizes = imageSizes.reduce((currentSizes, size) => { 15555 const defaultUrl = (0,external_lodash_namespaceObject.get)(img, ['sizes', size.slug, 'url']); 15556 const mediaDetailsUrl = (0,external_lodash_namespaceObject.get)(img, ['media_details', 'sizes', size.slug, 'source_url']); 15557 return { ...currentSizes, 15558 [size.slug]: defaultUrl || mediaDetailsUrl 15559 }; 15560 }, {}); 15561 return { ...currentResizedImages, 15562 [parseInt(img.id, 10)]: sizes 15563 }; 15564 }, {}); 15565 } 15566 15567 return imageSizes.filter(_ref => { 15568 let { 15569 slug 15570 } = _ref; 15571 return (0,external_lodash_namespaceObject.some)(resizedImages, sizes => sizes[slug]); 15572 }).map(_ref2 => { 15573 let { 15574 name, 15575 slug 15576 } = _ref2; 15577 return { 15578 value: slug, 15579 label: name 15580 }; 15581 }); 15582 } 15583 } 15584 15585 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-short-code-transform.js 15586 /** 15587 * External dependencies 15588 */ 15589 15590 /** 15591 * WordPress dependencies 15592 */ 15593 15594 15595 15596 /** 15597 * Shortcode transforms don't currently have a tranform method and so can't use a selector to 15598 * retrieve the data for each image being transformer, so this selector handle this post transformation. 15599 * 15600 * @param {Array} shortCodeTransforms An array of image data passed from the shortcode transform. 15601 * 15602 * @return {Array} An array of extended image data objects for each of the shortcode transform images. 15603 */ 15604 15605 function useShortCodeTransform(shortCodeTransforms) { 15606 const newImageData = (0,external_wp_data_namespaceObject.useSelect)(select => { 15607 if (!shortCodeTransforms || shortCodeTransforms.length === 0) { 15608 return; 15609 } 15610 15611 const getMedia = select(external_wp_coreData_namespaceObject.store).getMedia; 15612 return shortCodeTransforms.map(image => { 15613 const imageData = getMedia(image.id); 15614 15615 if (imageData) { 15616 return { 15617 id: imageData.id, 15618 type: 'image', 15619 url: imageData.source_url, 15620 mime: imageData.mime_type, 15621 alt: imageData.alt_text, 15622 link: imageData.link 15623 }; 15624 } 15625 15626 return undefined; 15627 }); 15628 }, [shortCodeTransforms]); 15629 15630 if (!newImageData) { 15631 return; 15632 } 15633 15634 if ((0,external_lodash_namespaceObject.every)(newImageData, img => img && img.url)) { 15635 return newImageData; 15636 } 15637 } 15638 15639 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-get-new-images.js 15640 /** 15641 * WordPress dependencies 15642 */ 15643 15644 /** 15645 * Keeps track of images already in the gallery to allow new innerBlocks to be identified. This 15646 * is required so default gallery attributes can be applied without overwriting any custom 15647 * attributes applied to existing images. 15648 * 15649 * @param {Array} images Basic image block data taken from current gallery innerBlock 15650 * @param {Array} imageData The related image data for each of the current gallery images. 15651 * 15652 * @return {Array} An array of any new images that have been added to the gallery. 15653 */ 15654 15655 function useGetNewImages(images, imageData) { 15656 const [currentImages, setCurrentImages] = (0,external_wp_element_namespaceObject.useState)([]); 15657 return (0,external_wp_element_namespaceObject.useMemo)(() => getNewImages(), [images, imageData]); 15658 15659 function getNewImages() { 15660 let imagesUpdated = false; // First lets check if any images have been deleted. 15661 15662 const newCurrentImages = currentImages.filter(currentImg => images.find(img => { 15663 return currentImg.clientId === img.clientId; 15664 })); 15665 15666 if (newCurrentImages.length < currentImages.length) { 15667 imagesUpdated = true; 15668 } // Now lets see if we have any images hydrated from saved content and if so 15669 // add them to currentImages state. 15670 15671 15672 images.forEach(image => { 15673 if (image.fromSavedContent && !newCurrentImages.find(currentImage => currentImage.id === image.id)) { 15674 imagesUpdated = true; 15675 newCurrentImages.push(image); 15676 } 15677 }); // Now check for any new images that have been added to InnerBlocks and for which 15678 // we have the imageData we need for setting default block attributes. 15679 15680 const newImages = images.filter(image => !newCurrentImages.find(currentImage => image.clientId && currentImage.clientId === image.clientId) && (imageData === null || imageData === void 0 ? void 0 : imageData.find(img => img.id === image.id)) && !image.fromSavedConent); 15681 15682 if (imagesUpdated || (newImages === null || newImages === void 0 ? void 0 : newImages.length) > 0) { 15683 setCurrentImages([...newCurrentImages, ...newImages]); 15684 } 15685 15686 return newImages.length > 0 ? newImages : null; 15687 } 15688 } 15689 15690 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/use-get-media.js 15691 /** 15692 * WordPress dependencies 15693 */ 15694 15695 15696 15697 /** 15698 * Retrieves the extended media info for each gallery image from the store. This is used to 15699 * determine which image size options are available for the current gallery. 15700 * 15701 * @param {Array} innerBlockImages An array of the innerBlock images currently in the gallery. 15702 * 15703 * @return {Array} An array of media info options for each gallery image. 15704 */ 15705 15706 function useGetMedia(innerBlockImages) { 15707 const [currentImageMedia, setCurrentImageMedia] = (0,external_wp_element_namespaceObject.useState)([]); 15708 const imageMedia = (0,external_wp_data_namespaceObject.useSelect)(select => { 15709 if (!(innerBlockImages !== null && innerBlockImages !== void 0 && innerBlockImages.length)) { 15710 return currentImageMedia; 15711 } 15712 15713 const imageIds = innerBlockImages.map(imageBlock => imageBlock.attributes.id).filter(id => id !== undefined); 15714 15715 if (imageIds.length === 0) { 15716 return currentImageMedia; 15717 } 15718 15719 return select(external_wp_coreData_namespaceObject.store).getMediaItems({ 15720 include: imageIds.join(','), 15721 per_page: -1 15722 }); 15723 }, [innerBlockImages]); 15724 15725 if ((imageMedia === null || imageMedia === void 0 ? void 0 : imageMedia.length) !== (currentImageMedia === null || currentImageMedia === void 0 ? void 0 : currentImageMedia.length) || imageMedia !== null && imageMedia !== void 0 && imageMedia.some(newImage => !currentImageMedia.find(currentImage => currentImage.id === newImage.id))) { 15726 setCurrentImageMedia(imageMedia); 15727 return imageMedia; 15728 } 15729 15730 return currentImageMedia; 15731 } 15732 15733 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/gap-styles.js 15734 15735 15736 /** 15737 * WordPress dependencies 15738 */ 15739 15740 15741 function GapStyles(_ref) { 15742 let { 15743 blockGap, 15744 clientId 15745 } = _ref; 15746 const styleElement = (0,external_wp_element_namespaceObject.useContext)(external_wp_blockEditor_namespaceObject.BlockList.__unstableElementContext); // --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default 15747 // gap on the gallery. 15748 15749 const gapValue = blockGap ? blockGap : `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`; 15750 const gap = `#block-$clientId} { 15751 --wp--style--unstable-gallery-gap: $gapValue}; 15752 gap: $gapValue} 15753 }`; 15754 15755 const GapStyle = () => { 15756 return (0,external_wp_element_namespaceObject.createElement)("style", null, gap); 15757 }; 15758 15759 return gap && styleElement ? (0,external_wp_element_namespaceObject.createPortal)((0,external_wp_element_namespaceObject.createElement)(GapStyle, null), styleElement) : null; 15760 } 15761 15762 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/edit.js 15763 15764 15765 15766 /** 15767 * External dependencies 15768 */ 15769 15770 15771 /** 15772 * WordPress dependencies 15773 */ 15774 15775 15776 15777 15778 15779 15780 15781 15782 15783 15784 15785 15786 /** 15787 * Internal dependencies 15788 */ 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 15800 15801 const MAX_COLUMNS = 8; 15802 const linkOptions = [{ 15803 value: LINK_DESTINATION_ATTACHMENT, 15804 label: (0,external_wp_i18n_namespaceObject.__)('Attachment Page') 15805 }, { 15806 value: LINK_DESTINATION_MEDIA, 15807 label: (0,external_wp_i18n_namespaceObject.__)('Media File') 15808 }, { 15809 value: LINK_DESTINATION_NONE, 15810 label: (0,external_wp_i18n_namespaceObject._x)('None', 'Media item link option') 15811 }]; 15812 const edit_ALLOWED_MEDIA_TYPES = ['image']; 15813 const PLACEHOLDER_TEXT = external_wp_element_namespaceObject.Platform.isNative ? (0,external_wp_i18n_namespaceObject.__)('ADD MEDIA') : (0,external_wp_i18n_namespaceObject.__)('Drag images, upload new ones or select files from your library.'); 15814 const MOBILE_CONTROL_PROPS_RANGE_CONTROL = external_wp_element_namespaceObject.Platform.isNative ? { 15815 type: 'stepper' 15816 } : {}; 15817 15818 function GalleryEdit(props) { 15819 var _attributes$style, _attributes$style$spa; 15820 15821 const { 15822 setAttributes, 15823 attributes, 15824 className, 15825 clientId, 15826 noticeOperations, 15827 isSelected, 15828 noticeUI, 15829 insertBlocksAfter 15830 } = props; 15831 const { 15832 columns, 15833 imageCrop, 15834 linkTarget, 15835 linkTo, 15836 shortCodeTransforms, 15837 sizeSlug 15838 } = attributes; 15839 const { 15840 __unstableMarkNextChangeAsNotPersistent, 15841 replaceInnerBlocks, 15842 updateBlockAttributes, 15843 selectBlock, 15844 clearSelectedBlock 15845 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 15846 const { 15847 createSuccessNotice 15848 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); 15849 const { 15850 getBlock, 15851 getSettings, 15852 preferredStyle 15853 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 15854 var _preferredStyleVariat; 15855 15856 const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings(); 15857 const preferredStyleVariations = settings.__experimentalPreferredStyleVariations; 15858 return { 15859 getBlock: select(external_wp_blockEditor_namespaceObject.store).getBlock, 15860 getSettings: select(external_wp_blockEditor_namespaceObject.store).getSettings, 15861 preferredStyle: preferredStyleVariations === null || preferredStyleVariations === void 0 ? void 0 : (_preferredStyleVariat = preferredStyleVariations.value) === null || _preferredStyleVariat === void 0 ? void 0 : _preferredStyleVariat['core/image'] 15862 }; 15863 }, []); 15864 const innerBlockImages = (0,external_wp_data_namespaceObject.useSelect)(select => { 15865 var _select$getBlock; 15866 15867 return (_select$getBlock = select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId)) === null || _select$getBlock === void 0 ? void 0 : _select$getBlock.innerBlocks; 15868 }, [clientId]); 15869 const wasBlockJustInserted = (0,external_wp_data_namespaceObject.useSelect)(select => { 15870 return select(external_wp_blockEditor_namespaceObject.store).wasBlockJustInserted(clientId, 'inserter_menu'); 15871 }, [clientId]); 15872 const images = (0,external_wp_element_namespaceObject.useMemo)(() => innerBlockImages === null || innerBlockImages === void 0 ? void 0 : innerBlockImages.map(block => ({ 15873 clientId: block.clientId, 15874 id: block.attributes.id, 15875 url: block.attributes.url, 15876 attributes: block.attributes, 15877 fromSavedContent: Boolean(block.originalContent) 15878 })), [innerBlockImages]); 15879 const imageData = useGetMedia(innerBlockImages); 15880 const newImages = useGetNewImages(images, imageData); 15881 (0,external_wp_element_namespaceObject.useEffect)(() => { 15882 newImages === null || newImages === void 0 ? void 0 : newImages.forEach(newImage => { 15883 updateBlockAttributes(newImage.clientId, { ...buildImageAttributes(newImage.attributes), 15884 id: newImage.id, 15885 align: undefined 15886 }); 15887 }); 15888 15889 if ((newImages === null || newImages === void 0 ? void 0 : newImages.length) > 0) { 15890 clearSelectedBlock(); 15891 } 15892 }, [newImages]); 15893 const shortCodeImages = useShortCodeTransform(shortCodeTransforms); 15894 (0,external_wp_element_namespaceObject.useEffect)(() => { 15895 if (!shortCodeTransforms || !shortCodeImages) { 15896 return; 15897 } 15898 15899 updateImages(shortCodeImages); 15900 setAttributes({ 15901 shortCodeTransforms: undefined 15902 }); 15903 }, [shortCodeTransforms, shortCodeImages]); 15904 const imageSizeOptions = useImageSizes(imageData, isSelected, getSettings); 15905 /** 15906 * Determines the image attributes that should be applied to an image block 15907 * after the gallery updates. 15908 * 15909 * The gallery will receive the full collection of images when a new image 15910 * is added. As a result we need to reapply the image's original settings if 15911 * it already existed in the gallery. If the image is in fact new, we need 15912 * to apply the gallery's current settings to the image. 15913 * 15914 * @param {Object} imageAttributes Media object for the actual image. 15915 * @return {Object} Attributes to set on the new image block. 15916 */ 15917 15918 function buildImageAttributes(imageAttributes) { 15919 const image = imageAttributes.id ? (0,external_lodash_namespaceObject.find)(imageData, { 15920 id: imageAttributes.id 15921 }) : null; 15922 let newClassName; 15923 15924 if (imageAttributes.className && imageAttributes.className !== '') { 15925 newClassName = imageAttributes.className; 15926 } else { 15927 newClassName = preferredStyle ? `is-style-$preferredStyle}` : undefined; 15928 } 15929 15930 return { ...pickRelevantMediaFiles(imageAttributes, sizeSlug), 15931 ...utils_getHrefAndDestination(image, linkTo), 15932 ...getUpdatedLinkTargetSettings(linkTarget, attributes), 15933 className: newClassName, 15934 sizeSlug 15935 }; 15936 } 15937 15938 function isValidFileType(file) { 15939 var _file$url; 15940 15941 return edit_ALLOWED_MEDIA_TYPES.some(mediaType => { 15942 var _file$type; 15943 15944 return ((_file$type = file.type) === null || _file$type === void 0 ? void 0 : _file$type.indexOf(mediaType)) === 0; 15945 }) || ((_file$url = file.url) === null || _file$url === void 0 ? void 0 : _file$url.indexOf('blob:')) === 0; 15946 } 15947 15948 function updateImages(selectedImages) { 15949 const newFileUploads = Object.prototype.toString.call(selectedImages) === '[object FileList]'; 15950 const imageArray = newFileUploads ? Array.from(selectedImages).map(file => { 15951 if (!file.url) { 15952 return pickRelevantMediaFiles({ 15953 url: (0,external_wp_blob_namespaceObject.createBlobURL)(file) 15954 }); 15955 } 15956 15957 return file; 15958 }) : selectedImages; 15959 15960 if (!imageArray.every(isValidFileType)) { 15961 noticeOperations.removeAllNotices(); 15962 noticeOperations.createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), { 15963 id: 'gallery-upload-invalid-file' 15964 }); 15965 } 15966 15967 const processedImages = imageArray.filter(file => file.url || isValidFileType(file)).map(file => { 15968 if (!file.url) { 15969 return pickRelevantMediaFiles({ 15970 url: (0,external_wp_blob_namespaceObject.createBlobURL)(file) 15971 }); 15972 } 15973 15974 return file; 15975 }); // Because we are reusing existing innerImage blocks any reordering 15976 // done in the media library will be lost so we need to reapply that ordering 15977 // once the new image blocks are merged in with existing. 15978 15979 const newOrderMap = processedImages.reduce((result, image, index) => (result[image.id] = index, result), {}); 15980 const existingImageBlocks = !newFileUploads ? innerBlockImages.filter(block => processedImages.find(img => img.id === block.attributes.id)) : innerBlockImages; 15981 const newImageList = processedImages.filter(img => !existingImageBlocks.find(existingImg => img.id === existingImg.attributes.id)); 15982 const newBlocks = newImageList.map(image => { 15983 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { 15984 id: image.id, 15985 url: image.url, 15986 caption: image.caption, 15987 alt: image.alt 15988 }); 15989 }); 15990 15991 if ((newBlocks === null || newBlocks === void 0 ? void 0 : newBlocks.length) > 0) { 15992 selectBlock(newBlocks[0].clientId); 15993 } 15994 15995 replaceInnerBlocks(clientId, (0,external_lodash_namespaceObject.concat)(existingImageBlocks, newBlocks).sort((a, b) => newOrderMap[a.attributes.id] - newOrderMap[b.attributes.id])); 15996 } 15997 15998 function onUploadError(message) { 15999 noticeOperations.removeAllNotices(); 16000 noticeOperations.createErrorNotice(message); 16001 } 16002 16003 function setLinkTo(value) { 16004 setAttributes({ 16005 linkTo: value 16006 }); 16007 const changedAttributes = {}; 16008 const blocks = []; 16009 getBlock(clientId).innerBlocks.forEach(block => { 16010 blocks.push(block.clientId); 16011 const image = block.attributes.id ? (0,external_lodash_namespaceObject.find)(imageData, { 16012 id: block.attributes.id 16013 }) : null; 16014 changedAttributes[block.clientId] = utils_getHrefAndDestination(image, value); 16015 }); 16016 updateBlockAttributes(blocks, changedAttributes, true); 16017 const linkToText = [...linkOptions].find(linkType => linkType.value === value); 16018 createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( 16019 /* translators: %s: image size settings */ 16020 (0,external_wp_i18n_namespaceObject.__)('All gallery image links updated to: %s'), linkToText.label), { 16021 id: 'gallery-attributes-linkTo', 16022 type: 'snackbar' 16023 }); 16024 } 16025 16026 function setColumnsNumber(value) { 16027 setAttributes({ 16028 columns: value 16029 }); 16030 } 16031 16032 function toggleImageCrop() { 16033 setAttributes({ 16034 imageCrop: !imageCrop 16035 }); 16036 } 16037 16038 function getImageCropHelp(checked) { 16039 return checked ? (0,external_wp_i18n_namespaceObject.__)('Thumbnails are cropped to align.') : (0,external_wp_i18n_namespaceObject.__)('Thumbnails are not cropped.'); 16040 } 16041 16042 function toggleOpenInNewTab(openInNewTab) { 16043 const newLinkTarget = openInNewTab ? '_blank' : undefined; 16044 setAttributes({ 16045 linkTarget: newLinkTarget 16046 }); 16047 const changedAttributes = {}; 16048 const blocks = []; 16049 getBlock(clientId).innerBlocks.forEach(block => { 16050 blocks.push(block.clientId); 16051 changedAttributes[block.clientId] = getUpdatedLinkTargetSettings(newLinkTarget, block.attributes); 16052 }); 16053 updateBlockAttributes(blocks, changedAttributes, true); 16054 const noticeText = openInNewTab ? (0,external_wp_i18n_namespaceObject.__)('All gallery images updated to open in new tab') : (0,external_wp_i18n_namespaceObject.__)('All gallery images updated to not open in new tab'); 16055 createSuccessNotice(noticeText, { 16056 id: 'gallery-attributes-openInNewTab', 16057 type: 'snackbar' 16058 }); 16059 } 16060 16061 function updateImagesSize(newSizeSlug) { 16062 setAttributes({ 16063 sizeSlug: newSizeSlug 16064 }); 16065 const changedAttributes = {}; 16066 const blocks = []; 16067 getBlock(clientId).innerBlocks.forEach(block => { 16068 blocks.push(block.clientId); 16069 const image = block.attributes.id ? (0,external_lodash_namespaceObject.find)(imageData, { 16070 id: block.attributes.id 16071 }) : null; 16072 changedAttributes[block.clientId] = getImageSizeAttributes(image, newSizeSlug); 16073 }); 16074 updateBlockAttributes(blocks, changedAttributes, true); 16075 const imageSize = imageSizeOptions.find(size => size.value === newSizeSlug); 16076 createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( 16077 /* translators: %s: image size settings */ 16078 (0,external_wp_i18n_namespaceObject.__)('All gallery image sizes updated to: %s'), imageSize.label), { 16079 id: 'gallery-attributes-sizeSlug', 16080 type: 'snackbar' 16081 }); 16082 } 16083 16084 (0,external_wp_element_namespaceObject.useEffect)(() => { 16085 // linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php. 16086 if (!linkTo) { 16087 var _window, _window$wp, _window$wp$media, _window$wp$media$view, _window$wp$media$view2, _window$wp$media$view3; 16088 16089 __unstableMarkNextChangeAsNotPersistent(); 16090 16091 setAttributes({ 16092 linkTo: ((_window = window) === null || _window === void 0 ? void 0 : (_window$wp = _window.wp) === null || _window$wp === void 0 ? void 0 : (_window$wp$media = _window$wp.media) === null || _window$wp$media === void 0 ? void 0 : (_window$wp$media$view = _window$wp$media.view) === null || _window$wp$media$view === void 0 ? void 0 : (_window$wp$media$view2 = _window$wp$media$view.settings) === null || _window$wp$media$view2 === void 0 ? void 0 : (_window$wp$media$view3 = _window$wp$media$view2.defaultProps) === null || _window$wp$media$view3 === void 0 ? void 0 : _window$wp$media$view3.link) || LINK_DESTINATION_NONE 16093 }); 16094 } 16095 }, [linkTo]); 16096 const hasImages = !!images.length; 16097 const hasImageIds = hasImages && images.some(image => !!image.id); 16098 const imagesUploading = images.some(img => { 16099 var _img$url; 16100 16101 return !img.id && ((_img$url = img.url) === null || _img$url === void 0 ? void 0 : _img$url.indexOf('blob:')) === 0; 16102 }); // MediaPlaceholder props are different between web and native hence, we provide a platform-specific set. 16103 16104 const mediaPlaceholderProps = external_wp_element_namespaceObject.Platform.select({ 16105 web: { 16106 addToGallery: false, 16107 disableMediaButtons: imagesUploading, 16108 value: {} 16109 }, 16110 native: { 16111 addToGallery: hasImageIds, 16112 isAppender: hasImages, 16113 disableMediaButtons: hasImages && !isSelected || imagesUploading, 16114 value: hasImageIds ? images : {}, 16115 autoOpenMediaUpload: !hasImages && isSelected && wasBlockJustInserted 16116 } 16117 }); 16118 const mediaPlaceholder = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, _extends({ 16119 handleUpload: false, 16120 icon: sharedIcon, 16121 labels: { 16122 title: (0,external_wp_i18n_namespaceObject.__)('Gallery'), 16123 instructions: PLACEHOLDER_TEXT 16124 }, 16125 onSelect: updateImages, 16126 accept: "image/*", 16127 allowedTypes: edit_ALLOWED_MEDIA_TYPES, 16128 multiple: true, 16129 onError: onUploadError, 16130 notices: noticeUI 16131 }, mediaPlaceholderProps)); 16132 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 16133 className: classnames_default()(className, 'has-nested-images') 16134 }); 16135 16136 if (!hasImages) { 16137 return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, mediaPlaceholder); 16138 } 16139 16140 const hasLinkTo = linkTo && linkTo !== 'none'; 16141 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 16142 title: (0,external_wp_i18n_namespaceObject.__)('Gallery settings') 16143 }, images.length > 1 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, _extends({ 16144 label: (0,external_wp_i18n_namespaceObject.__)('Columns'), 16145 value: columns ? columns : defaultColumnsNumber(images.length), 16146 onChange: setColumnsNumber, 16147 min: 1, 16148 max: Math.min(MAX_COLUMNS, images.length) 16149 }, MOBILE_CONTROL_PROPS_RANGE_CONTROL, { 16150 required: true 16151 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 16152 label: (0,external_wp_i18n_namespaceObject.__)('Crop images'), 16153 checked: !!imageCrop, 16154 onChange: toggleImageCrop, 16155 help: getImageCropHelp 16156 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 16157 label: (0,external_wp_i18n_namespaceObject.__)('Link to'), 16158 value: linkTo, 16159 onChange: setLinkTo, 16160 options: linkOptions, 16161 hideCancelButton: true 16162 }), hasLinkTo && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 16163 label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'), 16164 checked: linkTarget === '_blank', 16165 onChange: toggleOpenInNewTab 16166 }), (imageSizeOptions === null || imageSizeOptions === void 0 ? void 0 : imageSizeOptions.length) > 0 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 16167 label: (0,external_wp_i18n_namespaceObject.__)('Image size'), 16168 value: sizeSlug, 16169 options: imageSizeOptions, 16170 onChange: updateImagesSize, 16171 hideCancelButton: true 16172 }), external_wp_element_namespaceObject.Platform.isWeb && !imageSizeOptions && hasImageIds && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, { 16173 className: 'gallery-image-sizes' 16174 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, null, (0,external_wp_i18n_namespaceObject.__)('Image size')), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, { 16175 className: 'gallery-image-sizes__loading' 16176 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (0,external_wp_i18n_namespaceObject.__)('Loading options…'))))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 16177 group: "other" 16178 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, { 16179 allowedTypes: edit_ALLOWED_MEDIA_TYPES, 16180 accept: "image/*", 16181 handleUpload: false, 16182 onSelect: updateImages, 16183 name: (0,external_wp_i18n_namespaceObject.__)('Add'), 16184 multiple: true, 16185 mediaIds: images.map(image => image.id), 16186 addToGallery: hasImageIds 16187 })), noticeUI, external_wp_element_namespaceObject.Platform.isWeb && (0,external_wp_element_namespaceObject.createElement)(GapStyles, { 16188 blockGap: (_attributes$style = attributes.style) === null || _attributes$style === void 0 ? void 0 : (_attributes$style$spa = _attributes$style.spacing) === null || _attributes$style$spa === void 0 ? void 0 : _attributes$style$spa.blockGap, 16189 clientId: clientId 16190 }), (0,external_wp_element_namespaceObject.createElement)(gallery_gallery, _extends({}, props, { 16191 images: images, 16192 mediaPlaceholder: !hasImages || external_wp_element_namespaceObject.Platform.isNative ? mediaPlaceholder : undefined, 16193 blockProps: blockProps, 16194 insertBlocksAfter: insertBlocksAfter 16195 }))); 16196 } 16197 16198 /* harmony default export */ var gallery_edit = ((0,external_wp_compose_namespaceObject.compose)([external_wp_components_namespaceObject.withNotices, (0,external_wp_viewport_namespaceObject.withViewportMatch)({ 16199 isNarrow: '< small' 16200 })])(GalleryEdit)); 16201 16202 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/shared.js 16203 /** 16204 * External dependencies 16205 */ 16206 16207 const shared_pickRelevantMediaFiles = function (image) { 16208 let sizeSlug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'large'; 16209 const imageProps = (0,external_lodash_namespaceObject.pick)(image, ['alt', 'id', 'link', 'caption']); 16210 imageProps.url = (0,external_lodash_namespaceObject.get)(image, ['sizes', sizeSlug, 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', sizeSlug, 'source_url']) || image.url; 16211 const fullUrl = (0,external_lodash_namespaceObject.get)(image, ['sizes', 'full', 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', 'full', 'source_url']); 16212 16213 if (fullUrl) { 16214 imageProps.fullUrl = fullUrl; 16215 } 16216 16217 return imageProps; 16218 }; 16219 16220 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/image.js 16221 16222 16223 /** 16224 * WordPress dependencies 16225 */ 16226 16227 const image_image = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 16228 viewBox: "0 0 24 24", 16229 xmlns: "http://www.w3.org/2000/svg" 16230 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 16231 d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z" 16232 })); 16233 /* harmony default export */ var library_image = (image_image); 16234 16235 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left.js 16236 16237 16238 /** 16239 * WordPress dependencies 16240 */ 16241 16242 const chevronLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 16243 xmlns: "http://www.w3.org/2000/svg", 16244 viewBox: "0 0 24 24" 16245 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 16246 d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z" 16247 })); 16248 /* harmony default export */ var chevron_left = (chevronLeft); 16249 16250 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right.js 16251 16252 16253 /** 16254 * WordPress dependencies 16255 */ 16256 16257 const chevronRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 16258 xmlns: "http://www.w3.org/2000/svg", 16259 viewBox: "0 0 24 24" 16260 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 16261 d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z" 16262 })); 16263 /* harmony default export */ var chevron_right = (chevronRight); 16264 16265 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js 16266 16267 16268 /** 16269 * WordPress dependencies 16270 */ 16271 16272 const closeSmall = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 16273 xmlns: "http://www.w3.org/2000/svg", 16274 viewBox: "0 0 24 24" 16275 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 16276 d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z" 16277 })); 16278 /* harmony default export */ var close_small = (closeSmall); 16279 16280 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/constants.js 16281 const v1_constants_LINK_DESTINATION_NONE = 'none'; 16282 const v1_constants_LINK_DESTINATION_MEDIA = 'file'; 16283 const v1_constants_LINK_DESTINATION_ATTACHMENT = 'post'; 16284 16285 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/gallery-image.js 16286 16287 16288 /** 16289 * External dependencies 16290 */ 16291 16292 16293 /** 16294 * WordPress dependencies 16295 */ 16296 16297 16298 16299 16300 16301 16302 16303 16304 16305 16306 16307 /** 16308 * Internal dependencies 16309 */ 16310 16311 16312 16313 16314 const isTemporaryImage = (id, url) => !id && (0,external_wp_blob_namespaceObject.isBlobURL)(url); 16315 16316 class GalleryImage extends external_wp_element_namespaceObject.Component { 16317 constructor() { 16318 super(...arguments); 16319 this.onSelectImage = this.onSelectImage.bind(this); 16320 this.onRemoveImage = this.onRemoveImage.bind(this); 16321 this.bindContainer = this.bindContainer.bind(this); 16322 this.onEdit = this.onEdit.bind(this); 16323 this.onSelectImageFromLibrary = this.onSelectImageFromLibrary.bind(this); 16324 this.onSelectCustomURL = this.onSelectCustomURL.bind(this); 16325 this.state = { 16326 isEditing: false 16327 }; 16328 } 16329 16330 bindContainer(ref) { 16331 this.container = ref; 16332 } 16333 16334 onSelectImage() { 16335 if (!this.props.isSelected) { 16336 this.props.onSelect(); 16337 } 16338 } 16339 16340 onRemoveImage(event) { 16341 if (this.container === this.container.ownerDocument.activeElement && this.props.isSelected && [external_wp_keycodes_namespaceObject.BACKSPACE, external_wp_keycodes_namespaceObject.DELETE].indexOf(event.keyCode) !== -1) { 16342 event.preventDefault(); 16343 this.props.onRemove(); 16344 } 16345 } 16346 16347 onEdit() { 16348 this.setState({ 16349 isEditing: true 16350 }); 16351 } 16352 16353 componentDidUpdate() { 16354 const { 16355 image, 16356 url, 16357 __unstableMarkNextChangeAsNotPersistent 16358 } = this.props; 16359 16360 if (image && !url) { 16361 __unstableMarkNextChangeAsNotPersistent(); 16362 16363 this.props.setAttributes({ 16364 url: image.source_url, 16365 alt: image.alt_text 16366 }); 16367 } 16368 } 16369 16370 deselectOnBlur() { 16371 this.props.onDeselect(); 16372 } 16373 16374 onSelectImageFromLibrary(media) { 16375 const { 16376 setAttributes, 16377 id, 16378 url, 16379 alt, 16380 caption, 16381 sizeSlug 16382 } = this.props; 16383 16384 if (!media || !media.url) { 16385 return; 16386 } 16387 16388 let mediaAttributes = shared_pickRelevantMediaFiles(media, sizeSlug); // If the current image is temporary but an alt text was meanwhile 16389 // written by the user, make sure the text is not overwritten. 16390 16391 if (isTemporaryImage(id, url)) { 16392 if (alt) { 16393 mediaAttributes = (0,external_lodash_namespaceObject.omit)(mediaAttributes, ['alt']); 16394 } 16395 } // If a caption text was meanwhile written by the user, 16396 // make sure the text is not overwritten by empty captions. 16397 16398 16399 if (caption && !(0,external_lodash_namespaceObject.get)(mediaAttributes, ['caption'])) { 16400 mediaAttributes = (0,external_lodash_namespaceObject.omit)(mediaAttributes, ['caption']); 16401 } 16402 16403 setAttributes(mediaAttributes); 16404 this.setState({ 16405 isEditing: false 16406 }); 16407 } 16408 16409 onSelectCustomURL(newURL) { 16410 const { 16411 setAttributes, 16412 url 16413 } = this.props; 16414 16415 if (newURL !== url) { 16416 setAttributes({ 16417 url: newURL, 16418 id: undefined 16419 }); 16420 this.setState({ 16421 isEditing: false 16422 }); 16423 } 16424 } 16425 16426 render() { 16427 const { 16428 url, 16429 alt, 16430 id, 16431 linkTo, 16432 link, 16433 isFirstItem, 16434 isLastItem, 16435 isSelected, 16436 caption, 16437 onRemove, 16438 onMoveForward, 16439 onMoveBackward, 16440 setAttributes, 16441 'aria-label': ariaLabel 16442 } = this.props; 16443 const { 16444 isEditing 16445 } = this.state; 16446 let href; 16447 16448 switch (linkTo) { 16449 case v1_constants_LINK_DESTINATION_MEDIA: 16450 href = url; 16451 break; 16452 16453 case v1_constants_LINK_DESTINATION_ATTACHMENT: 16454 href = link; 16455 break; 16456 } 16457 16458 const img = // Disable reason: Image itself is not meant to be interactive, but should 16459 // direct image selection and unfocus caption fields. 16460 16461 /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */ 16462 (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("img", { 16463 src: url, 16464 alt: alt, 16465 "data-id": id, 16466 onKeyDown: this.onRemoveImage, 16467 tabIndex: "0", 16468 "aria-label": ariaLabel, 16469 ref: this.bindContainer 16470 }), (0,external_wp_blob_namespaceObject.isBlobURL)(url) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)) 16471 /* eslint-enable jsx-a11y/no-noninteractive-element-interactions */ 16472 ; 16473 const className = classnames_default()({ 16474 'is-selected': isSelected, 16475 'is-transient': (0,external_wp_blob_namespaceObject.isBlobURL)(url) 16476 }); 16477 return (// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions 16478 (0,external_wp_element_namespaceObject.createElement)("figure", { 16479 className: className, 16480 onClick: this.onSelectImage, 16481 onFocus: this.onSelectImage 16482 }, !isEditing && (href ? (0,external_wp_element_namespaceObject.createElement)("a", { 16483 href: href 16484 }, img) : img), isEditing && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, { 16485 labels: { 16486 title: (0,external_wp_i18n_namespaceObject.__)('Edit gallery image') 16487 }, 16488 icon: library_image, 16489 onSelect: this.onSelectImageFromLibrary, 16490 onSelectURL: this.onSelectCustomURL, 16491 accept: "image/*", 16492 allowedTypes: ['image'], 16493 value: { 16494 id, 16495 src: url 16496 } 16497 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, { 16498 className: "block-library-gallery-item__inline-menu is-left" 16499 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 16500 icon: chevron_left, 16501 onClick: isFirstItem ? undefined : onMoveBackward, 16502 label: (0,external_wp_i18n_namespaceObject.__)('Move image backward'), 16503 "aria-disabled": isFirstItem, 16504 disabled: !isSelected 16505 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 16506 icon: chevron_right, 16507 onClick: isLastItem ? undefined : onMoveForward, 16508 label: (0,external_wp_i18n_namespaceObject.__)('Move image forward'), 16509 "aria-disabled": isLastItem, 16510 disabled: !isSelected 16511 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, { 16512 className: "block-library-gallery-item__inline-menu is-right" 16513 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 16514 icon: library_edit, 16515 onClick: this.onEdit, 16516 label: (0,external_wp_i18n_namespaceObject.__)('Replace image'), 16517 disabled: !isSelected 16518 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 16519 icon: close_small, 16520 onClick: onRemove, 16521 label: (0,external_wp_i18n_namespaceObject.__)('Remove image'), 16522 disabled: !isSelected 16523 })), !isEditing && (isSelected || caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 16524 tagName: "figcaption", 16525 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Image caption text'), 16526 placeholder: isSelected ? (0,external_wp_i18n_namespaceObject.__)('Add caption') : null, 16527 value: caption, 16528 onChange: newCaption => setAttributes({ 16529 caption: newCaption 16530 }), 16531 inlineToolbar: true 16532 })) 16533 ); 16534 } 16535 16536 } 16537 16538 /* harmony default export */ var gallery_image = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withSelect)((select, ownProps) => { 16539 const { 16540 getMedia 16541 } = select(external_wp_coreData_namespaceObject.store); 16542 const { 16543 id 16544 } = ownProps; 16545 return { 16546 image: id ? getMedia(parseInt(id, 10)) : null 16547 }; 16548 }), (0,external_wp_data_namespaceObject.withDispatch)(dispatch => { 16549 const { 16550 __unstableMarkNextChangeAsNotPersistent 16551 } = dispatch(external_wp_blockEditor_namespaceObject.store); 16552 return { 16553 __unstableMarkNextChangeAsNotPersistent 16554 }; 16555 })])(GalleryImage)); 16556 16557 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/gallery.js 16558 16559 16560 16561 /** 16562 * External dependencies 16563 */ 16564 16565 /** 16566 * WordPress dependencies 16567 */ 16568 16569 16570 16571 16572 16573 /** 16574 * Internal dependencies 16575 */ 16576 16577 16578 16579 const gallery_Gallery = props => { 16580 const { 16581 attributes, 16582 isSelected, 16583 setAttributes, 16584 selectedImage, 16585 mediaPlaceholder, 16586 onMoveBackward, 16587 onMoveForward, 16588 onRemoveImage, 16589 onSelectImage, 16590 onDeselectImage, 16591 onSetImageAttributes, 16592 insertBlocksAfter, 16593 blockProps 16594 } = props; 16595 const { 16596 align, 16597 columns = defaultColumnsNumberV1(attributes), 16598 caption, 16599 imageCrop, 16600 images 16601 } = attributes; 16602 return (0,external_wp_element_namespaceObject.createElement)("figure", _extends({}, blockProps, { 16603 className: classnames_default()(blockProps.className, { 16604 [`align$align}`]: align, 16605 [`columns-$columns}`]: columns, 16606 'is-cropped': imageCrop 16607 }) 16608 }), (0,external_wp_element_namespaceObject.createElement)("ul", { 16609 className: "blocks-gallery-grid" 16610 }, images.map((img, index) => { 16611 const ariaLabel = (0,external_wp_i18n_namespaceObject.sprintf)( 16612 /* translators: 1: the order number of the image. 2: the total number of images. */ 16613 (0,external_wp_i18n_namespaceObject.__)('image %1$d of %2$d in gallery'), index + 1, images.length); 16614 return (0,external_wp_element_namespaceObject.createElement)("li", { 16615 className: "blocks-gallery-item", 16616 key: img.id ? `$img.id}-$index}` : img.url 16617 }, (0,external_wp_element_namespaceObject.createElement)(gallery_image, { 16618 url: img.url, 16619 alt: img.alt, 16620 id: img.id, 16621 isFirstItem: index === 0, 16622 isLastItem: index + 1 === images.length, 16623 isSelected: isSelected && selectedImage === index, 16624 onMoveBackward: onMoveBackward(index), 16625 onMoveForward: onMoveForward(index), 16626 onRemove: onRemoveImage(index), 16627 onSelect: onSelectImage(index), 16628 onDeselect: onDeselectImage(index), 16629 setAttributes: attrs => onSetImageAttributes(index, attrs), 16630 caption: img.caption, 16631 "aria-label": ariaLabel, 16632 sizeSlug: attributes.sizeSlug 16633 })); 16634 })), mediaPlaceholder, (0,external_wp_element_namespaceObject.createElement)(gallery_RichTextVisibilityHelper, { 16635 isHidden: !isSelected && external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption), 16636 tagName: "figcaption", 16637 className: "blocks-gallery-caption", 16638 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Gallery caption text'), 16639 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write gallery caption…'), 16640 value: caption, 16641 onChange: value => setAttributes({ 16642 caption: value 16643 }), 16644 inlineToolbar: true, 16645 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')) 16646 })); 16647 }; 16648 16649 function gallery_RichTextVisibilityHelper(_ref) { 16650 let { 16651 isHidden, 16652 ...richTextProps 16653 } = _ref; 16654 return isHidden ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, _extends({ 16655 as: external_wp_blockEditor_namespaceObject.RichText 16656 }, richTextProps)) : (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, richTextProps); 16657 } 16658 16659 /* harmony default export */ var v1_gallery = (gallery_Gallery); 16660 16661 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/edit.js 16662 16663 16664 16665 /** 16666 * External dependencies 16667 */ 16668 16669 /** 16670 * WordPress dependencies 16671 */ 16672 16673 16674 16675 16676 16677 16678 16679 16680 16681 16682 16683 /** 16684 * Internal dependencies 16685 */ 16686 16687 16688 16689 16690 16691 16692 const edit_MAX_COLUMNS = 8; 16693 const edit_linkOptions = [{ 16694 value: v1_constants_LINK_DESTINATION_ATTACHMENT, 16695 label: (0,external_wp_i18n_namespaceObject.__)('Attachment Page') 16696 }, { 16697 value: v1_constants_LINK_DESTINATION_MEDIA, 16698 label: (0,external_wp_i18n_namespaceObject.__)('Media File') 16699 }, { 16700 value: v1_constants_LINK_DESTINATION_NONE, 16701 label: (0,external_wp_i18n_namespaceObject.__)('None') 16702 }]; 16703 const v1_edit_ALLOWED_MEDIA_TYPES = ['image']; 16704 const edit_PLACEHOLDER_TEXT = external_wp_element_namespaceObject.Platform.select({ 16705 web: (0,external_wp_i18n_namespaceObject.__)('Drag images, upload new ones or select files from your library.'), 16706 native: (0,external_wp_i18n_namespaceObject.__)('ADD MEDIA') 16707 }); 16708 const edit_MOBILE_CONTROL_PROPS_RANGE_CONTROL = external_wp_element_namespaceObject.Platform.select({ 16709 web: {}, 16710 native: { 16711 type: 'stepper' 16712 } 16713 }); 16714 16715 function edit_GalleryEdit(props) { 16716 const { 16717 attributes, 16718 clientId, 16719 isSelected, 16720 noticeUI, 16721 noticeOperations, 16722 onFocus 16723 } = props; 16724 const { 16725 columns = defaultColumnsNumberV1(attributes), 16726 imageCrop, 16727 images, 16728 linkTo, 16729 sizeSlug 16730 } = attributes; 16731 const [selectedImage, setSelectedImage] = (0,external_wp_element_namespaceObject.useState)(); 16732 const [attachmentCaptions, setAttachmentCaptions] = (0,external_wp_element_namespaceObject.useState)(); 16733 const { 16734 __unstableMarkNextChangeAsNotPersistent 16735 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 16736 const { 16737 imageSizes, 16738 mediaUpload, 16739 getMedia, 16740 wasBlockJustInserted 16741 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 16742 const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings(); 16743 return { 16744 imageSizes: settings.imageSizes, 16745 mediaUpload: settings.mediaUpload, 16746 getMedia: select(external_wp_coreData_namespaceObject.store).getMedia, 16747 wasBlockJustInserted: select(external_wp_blockEditor_namespaceObject.store).wasBlockJustInserted(clientId, 'inserter_menu') 16748 }; 16749 }); 16750 const resizedImages = (0,external_wp_element_namespaceObject.useMemo)(() => { 16751 if (isSelected) { 16752 return (0,external_lodash_namespaceObject.reduce)(attributes.ids, (currentResizedImages, id) => { 16753 if (!id) { 16754 return currentResizedImages; 16755 } 16756 16757 const image = getMedia(id); 16758 const sizes = (0,external_lodash_namespaceObject.reduce)(imageSizes, (currentSizes, size) => { 16759 const defaultUrl = (0,external_lodash_namespaceObject.get)(image, ['sizes', size.slug, 'url']); 16760 const mediaDetailsUrl = (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', size.slug, 'source_url']); 16761 return { ...currentSizes, 16762 [size.slug]: defaultUrl || mediaDetailsUrl 16763 }; 16764 }, {}); 16765 return { ...currentResizedImages, 16766 [parseInt(id, 10)]: sizes 16767 }; 16768 }, {}); 16769 } 16770 16771 return {}; 16772 }, [isSelected, attributes.ids, imageSizes]); 16773 16774 function onFocusGalleryCaption() { 16775 setSelectedImage(); 16776 } 16777 16778 function setAttributes(newAttrs) { 16779 if (newAttrs.ids) { 16780 throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes'); 16781 } 16782 16783 if (newAttrs.images) { 16784 newAttrs = { ...newAttrs, 16785 // Unlike images[ n ].id which is a string, always ensure the 16786 // ids array contains numbers as per its attribute type. 16787 ids: (0,external_lodash_namespaceObject.map)(newAttrs.images, _ref => { 16788 let { 16789 id 16790 } = _ref; 16791 return parseInt(id, 10); 16792 }) 16793 }; 16794 } 16795 16796 props.setAttributes(newAttrs); 16797 } 16798 16799 function onSelectImage(index) { 16800 return () => { 16801 setSelectedImage(index); 16802 }; 16803 } 16804 16805 function onDeselectImage() { 16806 return () => { 16807 setSelectedImage(); 16808 }; 16809 } 16810 16811 function onMove(oldIndex, newIndex) { 16812 const newImages = [...images]; 16813 newImages.splice(newIndex, 1, images[oldIndex]); 16814 newImages.splice(oldIndex, 1, images[newIndex]); 16815 setSelectedImage(newIndex); 16816 setAttributes({ 16817 images: newImages 16818 }); 16819 } 16820 16821 function onMoveForward(oldIndex) { 16822 return () => { 16823 if (oldIndex === images.length - 1) { 16824 return; 16825 } 16826 16827 onMove(oldIndex, oldIndex + 1); 16828 }; 16829 } 16830 16831 function onMoveBackward(oldIndex) { 16832 return () => { 16833 if (oldIndex === 0) { 16834 return; 16835 } 16836 16837 onMove(oldIndex, oldIndex - 1); 16838 }; 16839 } 16840 16841 function onRemoveImage(index) { 16842 return () => { 16843 const newImages = (0,external_lodash_namespaceObject.filter)(images, (img, i) => index !== i); 16844 setSelectedImage(); 16845 setAttributes({ 16846 images: newImages, 16847 columns: attributes.columns ? Math.min(newImages.length, attributes.columns) : attributes.columns 16848 }); 16849 }; 16850 } 16851 16852 function selectCaption(newImage) { 16853 // The image id in both the images and attachmentCaptions arrays is a 16854 // string, so ensure comparison works correctly by converting the 16855 // newImage.id to a string. 16856 const newImageId = (0,external_lodash_namespaceObject.toString)(newImage.id); 16857 const currentImage = (0,external_lodash_namespaceObject.find)(images, { 16858 id: newImageId 16859 }); 16860 const currentImageCaption = currentImage ? currentImage.caption : newImage.caption; 16861 16862 if (!attachmentCaptions) { 16863 return currentImageCaption; 16864 } 16865 16866 const attachment = (0,external_lodash_namespaceObject.find)(attachmentCaptions, { 16867 id: newImageId 16868 }); // If the attachment caption is updated. 16869 16870 if (attachment && attachment.caption !== newImage.caption) { 16871 return newImage.caption; 16872 } 16873 16874 return currentImageCaption; 16875 } 16876 16877 function onSelectImages(newImages) { 16878 setAttachmentCaptions(newImages.map(newImage => ({ 16879 // Store the attachmentCaption id as a string for consistency 16880 // with the type of the id in the images attribute. 16881 id: (0,external_lodash_namespaceObject.toString)(newImage.id), 16882 caption: newImage.caption 16883 }))); 16884 setAttributes({ 16885 images: newImages.map(newImage => ({ ...shared_pickRelevantMediaFiles(newImage, sizeSlug), 16886 caption: selectCaption(newImage, images, attachmentCaptions), 16887 // The id value is stored in a data attribute, so when the 16888 // block is parsed it's converted to a string. Converting 16889 // to a string here ensures it's type is consistent. 16890 id: (0,external_lodash_namespaceObject.toString)(newImage.id) 16891 })), 16892 columns: attributes.columns ? Math.min(newImages.length, attributes.columns) : attributes.columns 16893 }); 16894 } 16895 16896 function onUploadError(message) { 16897 noticeOperations.removeAllNotices(); 16898 noticeOperations.createErrorNotice(message); 16899 } 16900 16901 function setLinkTo(value) { 16902 setAttributes({ 16903 linkTo: value 16904 }); 16905 } 16906 16907 function setColumnsNumber(value) { 16908 setAttributes({ 16909 columns: value 16910 }); 16911 } 16912 16913 function toggleImageCrop() { 16914 setAttributes({ 16915 imageCrop: !imageCrop 16916 }); 16917 } 16918 16919 function getImageCropHelp(checked) { 16920 return checked ? (0,external_wp_i18n_namespaceObject.__)('Thumbnails are cropped to align.') : (0,external_wp_i18n_namespaceObject.__)('Thumbnails are not cropped.'); 16921 } 16922 16923 function setImageAttributes(index, newAttributes) { 16924 if (!images[index]) { 16925 return; 16926 } 16927 16928 setAttributes({ 16929 images: [...images.slice(0, index), { ...images[index], 16930 ...newAttributes 16931 }, ...images.slice(index + 1)] 16932 }); 16933 } 16934 16935 function getImagesSizeOptions() { 16936 return (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(imageSizes, _ref2 => { 16937 let { 16938 slug 16939 } = _ref2; 16940 return (0,external_lodash_namespaceObject.some)(resizedImages, sizes => sizes[slug]); 16941 }), _ref3 => { 16942 let { 16943 name, 16944 slug 16945 } = _ref3; 16946 return { 16947 value: slug, 16948 label: name 16949 }; 16950 }); 16951 } 16952 16953 function updateImagesSize(newSizeSlug) { 16954 const updatedImages = (0,external_lodash_namespaceObject.map)(images, image => { 16955 if (!image.id) { 16956 return image; 16957 } 16958 16959 const url = (0,external_lodash_namespaceObject.get)(resizedImages, [parseInt(image.id, 10), newSizeSlug]); 16960 return { ...image, 16961 ...(url && { 16962 url 16963 }) 16964 }; 16965 }); 16966 setAttributes({ 16967 images: updatedImages, 16968 sizeSlug: newSizeSlug 16969 }); 16970 } 16971 16972 (0,external_wp_element_namespaceObject.useEffect)(() => { 16973 if (external_wp_element_namespaceObject.Platform.OS === 'web' && images && images.length > 0 && (0,external_lodash_namespaceObject.every)(images, _ref4 => { 16974 let { 16975 url 16976 } = _ref4; 16977 return (0,external_wp_blob_namespaceObject.isBlobURL)(url); 16978 })) { 16979 const filesList = (0,external_lodash_namespaceObject.map)(images, _ref5 => { 16980 let { 16981 url 16982 } = _ref5; 16983 return (0,external_wp_blob_namespaceObject.getBlobByURL)(url); 16984 }); 16985 (0,external_lodash_namespaceObject.forEach)(images, _ref6 => { 16986 let { 16987 url 16988 } = _ref6; 16989 return (0,external_wp_blob_namespaceObject.revokeBlobURL)(url); 16990 }); 16991 mediaUpload({ 16992 filesList, 16993 onFileChange: onSelectImages, 16994 allowedTypes: ['image'] 16995 }); 16996 } 16997 }, []); 16998 (0,external_wp_element_namespaceObject.useEffect)(() => { 16999 // Deselect images when deselecting the block. 17000 if (!isSelected) { 17001 setSelectedImage(); 17002 } 17003 }, [isSelected]); 17004 (0,external_wp_element_namespaceObject.useEffect)(() => { 17005 // linkTo attribute must be saved so blocks don't break when changing 17006 // image_default_link_type in options.php. 17007 if (!linkTo) { 17008 var _window, _window$wp, _window$wp$media, _window$wp$media$view, _window$wp$media$view2, _window$wp$media$view3; 17009 17010 __unstableMarkNextChangeAsNotPersistent(); 17011 17012 setAttributes({ 17013 linkTo: ((_window = window) === null || _window === void 0 ? void 0 : (_window$wp = _window.wp) === null || _window$wp === void 0 ? void 0 : (_window$wp$media = _window$wp.media) === null || _window$wp$media === void 0 ? void 0 : (_window$wp$media$view = _window$wp$media.view) === null || _window$wp$media$view === void 0 ? void 0 : (_window$wp$media$view2 = _window$wp$media$view.settings) === null || _window$wp$media$view2 === void 0 ? void 0 : (_window$wp$media$view3 = _window$wp$media$view2.defaultProps) === null || _window$wp$media$view3 === void 0 ? void 0 : _window$wp$media$view3.link) || v1_constants_LINK_DESTINATION_NONE 17014 }); 17015 } 17016 }, [linkTo]); 17017 const hasImages = !!images.length; 17018 const hasImageIds = hasImages && images.some(image => !!image.id); 17019 const mediaPlaceholder = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, { 17020 addToGallery: hasImageIds, 17021 isAppender: hasImages, 17022 disableMediaButtons: hasImages && !isSelected, 17023 icon: !hasImages && sharedIcon, 17024 labels: { 17025 title: !hasImages && (0,external_wp_i18n_namespaceObject.__)('Gallery'), 17026 instructions: !hasImages && edit_PLACEHOLDER_TEXT 17027 }, 17028 onSelect: onSelectImages, 17029 accept: "image/*", 17030 allowedTypes: v1_edit_ALLOWED_MEDIA_TYPES, 17031 multiple: true, 17032 value: hasImageIds ? images : {}, 17033 onError: onUploadError, 17034 notices: hasImages ? undefined : noticeUI, 17035 onFocus: onFocus, 17036 autoOpenMediaUpload: !hasImages && isSelected && wasBlockJustInserted 17037 }); 17038 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 17039 17040 if (!hasImages) { 17041 return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, blockProps, mediaPlaceholder); 17042 } 17043 17044 const imageSizeOptions = getImagesSizeOptions(); 17045 const shouldShowSizeOptions = hasImages && !(0,external_lodash_namespaceObject.isEmpty)(imageSizeOptions); 17046 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 17047 title: (0,external_wp_i18n_namespaceObject.__)('Gallery settings') 17048 }, images.length > 1 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, _extends({ 17049 label: (0,external_wp_i18n_namespaceObject.__)('Columns'), 17050 value: columns, 17051 onChange: setColumnsNumber, 17052 min: 1, 17053 max: Math.min(edit_MAX_COLUMNS, images.length) 17054 }, edit_MOBILE_CONTROL_PROPS_RANGE_CONTROL, { 17055 required: true 17056 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 17057 label: (0,external_wp_i18n_namespaceObject.__)('Crop images'), 17058 checked: !!imageCrop, 17059 onChange: toggleImageCrop, 17060 help: getImageCropHelp 17061 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 17062 label: (0,external_wp_i18n_namespaceObject.__)('Link to'), 17063 value: linkTo, 17064 onChange: setLinkTo, 17065 options: edit_linkOptions, 17066 hideCancelButton: true 17067 }), shouldShowSizeOptions && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 17068 label: (0,external_wp_i18n_namespaceObject.__)('Image size'), 17069 value: sizeSlug, 17070 options: imageSizeOptions, 17071 onChange: updateImagesSize, 17072 hideCancelButton: true 17073 }))), noticeUI, (0,external_wp_element_namespaceObject.createElement)(v1_gallery, _extends({}, props, { 17074 selectedImage: selectedImage, 17075 mediaPlaceholder: mediaPlaceholder, 17076 onMoveBackward: onMoveBackward, 17077 onMoveForward: onMoveForward, 17078 onRemoveImage: onRemoveImage, 17079 onSelectImage: onSelectImage, 17080 onDeselectImage: onDeselectImage, 17081 onSetImageAttributes: setImageAttributes, 17082 blockProps: blockProps // This prop is used by gallery.native.js. 17083 , 17084 onFocusGalleryCaption: onFocusGalleryCaption 17085 }))); 17086 } 17087 17088 /* harmony default export */ var v1_edit = ((0,external_wp_compose_namespaceObject.compose)([external_wp_components_namespaceObject.withNotices, (0,external_wp_viewport_namespaceObject.withViewportMatch)({ 17089 isNarrow: '< small' 17090 })])(edit_GalleryEdit)); 17091 17092 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/edit-wrapper.js 17093 17094 17095 /** 17096 * WordPress dependencies 17097 */ 17098 17099 17100 /** 17101 * Internal dependencies 17102 */ 17103 17104 17105 17106 17107 /* 17108 * Using a wrapper around the logic to load the edit for v1 of Gallery block 17109 * or the refactored version with InnerBlocks. This is to prevent conditional 17110 * use of hooks lint errors if adding this logic to the top of the edit component. 17111 */ 17112 17113 function GalleryEditWrapper(props) { 17114 if (!isGalleryV2Enabled()) { 17115 return (0,external_wp_element_namespaceObject.createElement)(v1_edit, props); 17116 } 17117 17118 return (0,external_wp_element_namespaceObject.createElement)(gallery_edit, props); 17119 } 17120 17121 /* harmony default export */ var edit_wrapper = ((0,external_wp_compose_namespaceObject.compose)([external_wp_components_namespaceObject.withNotices])(GalleryEditWrapper)); 17122 17123 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/v1/save.js 17124 17125 17126 /** 17127 * WordPress dependencies 17128 */ 17129 17130 /** 17131 * Internal dependencies 17132 */ 17133 17134 17135 17136 function saveV1(_ref) { 17137 let { 17138 attributes 17139 } = _ref; 17140 const { 17141 images, 17142 columns = defaultColumnsNumberV1(attributes), 17143 imageCrop, 17144 caption, 17145 linkTo 17146 } = attributes; 17147 const className = `columns-$columns} $imageCrop ? 'is-cropped' : ''}`; 17148 return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 17149 className 17150 }), (0,external_wp_element_namespaceObject.createElement)("ul", { 17151 className: "blocks-gallery-grid" 17152 }, images.map(image => { 17153 let href; 17154 17155 switch (linkTo) { 17156 case v1_constants_LINK_DESTINATION_MEDIA: 17157 href = image.fullUrl || image.url; 17158 break; 17159 17160 case v1_constants_LINK_DESTINATION_ATTACHMENT: 17161 href = image.link; 17162 break; 17163 } 17164 17165 const img = (0,external_wp_element_namespaceObject.createElement)("img", { 17166 src: image.url, 17167 alt: image.alt, 17168 "data-id": image.id, 17169 "data-full-url": image.fullUrl, 17170 "data-link": image.link, 17171 className: image.id ? `wp-image-$image.id}` : null 17172 }); 17173 return (0,external_wp_element_namespaceObject.createElement)("li", { 17174 key: image.id || image.url, 17175 className: "blocks-gallery-item" 17176 }, (0,external_wp_element_namespaceObject.createElement)("figure", null, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 17177 href: href 17178 }, img) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 17179 tagName: "figcaption", 17180 className: "blocks-gallery-item__caption", 17181 value: image.caption 17182 }))); 17183 })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 17184 tagName: "figcaption", 17185 className: "blocks-gallery-caption", 17186 value: caption 17187 })); 17188 } 17189 17190 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/save.js 17191 17192 17193 /** 17194 * External dependencies 17195 */ 17196 17197 /** 17198 * WordPress dependencies 17199 */ 17200 17201 17202 /** 17203 * Internal dependencies 17204 */ 17205 17206 17207 17208 function saveWithInnerBlocks(_ref) { 17209 let { 17210 attributes 17211 } = _ref; 17212 17213 if (!isGalleryV2Enabled()) { 17214 return saveV1({ 17215 attributes 17216 }); 17217 } 17218 17219 const { 17220 caption, 17221 columns, 17222 imageCrop 17223 } = attributes; 17224 const className = classnames_default()('has-nested-images', { 17225 [`columns-$columns}`]: columns !== undefined, 17226 [`columns-default`]: columns === undefined, 17227 'is-cropped': imageCrop 17228 }); 17229 const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({ 17230 className 17231 }); 17232 const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps); 17233 return (0,external_wp_element_namespaceObject.createElement)("figure", innerBlocksProps, innerBlocksProps.children, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 17234 tagName: "figcaption", 17235 className: "blocks-gallery-caption", 17236 value: caption 17237 })); 17238 } 17239 17240 ;// CONCATENATED MODULE: external ["wp","hooks"] 17241 var external_wp_hooks_namespaceObject = window["wp"]["hooks"]; 17242 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/transforms.js 17243 /** 17244 * External dependencies 17245 */ 17246 17247 /** 17248 * WordPress dependencies 17249 */ 17250 17251 17252 17253 17254 /** 17255 * Internal dependencies 17256 */ 17257 17258 17259 17260 17261 17262 const parseShortcodeIds = ids => { 17263 if (!ids) { 17264 return []; 17265 } 17266 17267 return ids.split(',').map(id => parseInt(id, 10)); 17268 }; 17269 /** 17270 * Third party block plugins don't have an easy way to detect if the 17271 * innerBlocks version of the Gallery is running when they run a 17272 * 3rdPartyBlock -> GalleryBlock transform so this tranform filter 17273 * will handle this. Once the innerBlocks version is the default 17274 * in a core release, this could be deprecated and removed after 17275 * plugin authors have been given time to update transforms. 17276 * 17277 * @typedef {Object} Attributes 17278 * @typedef {Object} Block 17279 * @property {Attributes} attributes The attributes of the block. 17280 * @param {Block} block The transformed block. 17281 * @return {Block} The transformed block. 17282 */ 17283 17284 17285 function updateThirdPartyTransformToGallery(block) { 17286 var _block$attributes; 17287 17288 if (isGalleryV2Enabled() && block.name === 'core/gallery' && ((_block$attributes = block.attributes) === null || _block$attributes === void 0 ? void 0 : _block$attributes.images.length) > 0) { 17289 const innerBlocks = block.attributes.images.map(_ref => { 17290 let { 17291 url, 17292 id, 17293 alt 17294 } = _ref; 17295 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { 17296 url, 17297 id: id ? parseInt(id, 10) : null, 17298 alt, 17299 sizeSlug: block.attributes.sizeSlug, 17300 linkDestination: block.attributes.linkDestination 17301 }); 17302 }); 17303 delete block.attributes.ids; 17304 delete block.attributes.images; 17305 block.innerBlocks = innerBlocks; 17306 } 17307 17308 return block; 17309 } 17310 17311 (0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-to', updateThirdPartyTransformToGallery); 17312 /** 17313 * Third party block plugins don't have an easy way to detect if the 17314 * innerBlocks version of the Gallery is running when they run a 17315 * GalleryBlock -> 3rdPartyBlock transform so this transform filter 17316 * will handle this. Once the innerBlocks version is the default 17317 * in a core release, this could be deprecated and removed after 17318 * plugin authors have been given time to update transforms. 17319 * 17320 * @typedef {Object} Attributes 17321 * @typedef {Object} Block 17322 * @property {Attributes} attributes The attributes of the block. 17323 * @param {Block} toBlock The block to transform to. 17324 * @param {Block[]} fromBlocks The blocks to transform from. 17325 * @return {Block} The transformed block. 17326 */ 17327 17328 function updateThirdPartyTransformFromGallery(toBlock, fromBlocks) { 17329 const from = Array.isArray(fromBlocks) ? fromBlocks : [fromBlocks]; 17330 const galleryBlock = from.find(transformedBlock => { 17331 var _transformedBlock$att; 17332 17333 return transformedBlock.name === 'core/gallery' && transformedBlock.innerBlocks.length > 0 && !((_transformedBlock$att = transformedBlock.attributes.images) !== null && _transformedBlock$att !== void 0 && _transformedBlock$att.length) > 0 && !toBlock.name.includes('core/'); 17334 }); 17335 17336 if (galleryBlock) { 17337 const images = galleryBlock.innerBlocks.map(_ref2 => { 17338 let { 17339 attributes: { 17340 url, 17341 id, 17342 alt 17343 } 17344 } = _ref2; 17345 return { 17346 url, 17347 id: id ? parseInt(id, 10) : null, 17348 alt 17349 }; 17350 }); 17351 const ids = images.map(_ref3 => { 17352 let { 17353 id 17354 } = _ref3; 17355 return id; 17356 }); 17357 galleryBlock.attributes.images = images; 17358 galleryBlock.attributes.ids = ids; 17359 } 17360 17361 return toBlock; 17362 } 17363 17364 (0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-from', updateThirdPartyTransformFromGallery); 17365 const gallery_transforms_transforms = { 17366 from: [{ 17367 type: 'block', 17368 isMultiBlock: true, 17369 blocks: ['core/image'], 17370 transform: attributes => { 17371 // Init the align and size from the first item which may be either the placeholder or an image. 17372 let { 17373 align, 17374 sizeSlug 17375 } = attributes[0]; // Loop through all the images and check if they have the same align and size. 17376 17377 align = (0,external_lodash_namespaceObject.every)(attributes, ['align', align]) ? align : undefined; 17378 sizeSlug = (0,external_lodash_namespaceObject.every)(attributes, ['sizeSlug', sizeSlug]) ? sizeSlug : undefined; 17379 const validImages = (0,external_lodash_namespaceObject.filter)(attributes, _ref4 => { 17380 let { 17381 url 17382 } = _ref4; 17383 return url; 17384 }); 17385 17386 if (isGalleryV2Enabled()) { 17387 const innerBlocks = validImages.map(image => { 17388 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', image); 17389 }); 17390 return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', { 17391 align, 17392 sizeSlug 17393 }, innerBlocks); 17394 } 17395 17396 return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', { 17397 images: validImages.map(_ref5 => { 17398 let { 17399 id, 17400 url, 17401 alt, 17402 caption 17403 } = _ref5; 17404 return { 17405 id: (0,external_lodash_namespaceObject.toString)(id), 17406 url, 17407 alt, 17408 caption 17409 }; 17410 }), 17411 ids: validImages.map(_ref6 => { 17412 let { 17413 id 17414 } = _ref6; 17415 return parseInt(id, 10); 17416 }), 17417 align, 17418 sizeSlug 17419 }); 17420 } 17421 }, { 17422 type: 'shortcode', 17423 tag: 'gallery', 17424 attributes: { 17425 images: { 17426 type: 'array', 17427 shortcode: _ref7 => { 17428 let { 17429 named: { 17430 ids 17431 } 17432 } = _ref7; 17433 17434 if (!isGalleryV2Enabled()) { 17435 return parseShortcodeIds(ids).map(id => ({ 17436 id: (0,external_lodash_namespaceObject.toString)(id) 17437 })); 17438 } 17439 } 17440 }, 17441 ids: { 17442 type: 'array', 17443 shortcode: _ref8 => { 17444 let { 17445 named: { 17446 ids 17447 } 17448 } = _ref8; 17449 17450 if (!isGalleryV2Enabled()) { 17451 return parseShortcodeIds(ids); 17452 } 17453 } 17454 }, 17455 shortCodeTransforms: { 17456 type: 'array', 17457 shortcode: _ref9 => { 17458 let { 17459 named: { 17460 ids 17461 } 17462 } = _ref9; 17463 17464 if (isGalleryV2Enabled()) { 17465 return parseShortcodeIds(ids).map(id => ({ 17466 id: parseInt(id) 17467 })); 17468 } 17469 } 17470 }, 17471 columns: { 17472 type: 'number', 17473 shortcode: _ref10 => { 17474 let { 17475 named: { 17476 columns = '3' 17477 } 17478 } = _ref10; 17479 return parseInt(columns, 10); 17480 } 17481 }, 17482 linkTo: { 17483 type: 'string', 17484 shortcode: _ref11 => { 17485 let { 17486 named: { 17487 link 17488 } 17489 } = _ref11; 17490 17491 if (!isGalleryV2Enabled()) { 17492 switch (link) { 17493 case 'post': 17494 return v1_constants_LINK_DESTINATION_ATTACHMENT; 17495 17496 case 'file': 17497 return v1_constants_LINK_DESTINATION_MEDIA; 17498 17499 default: 17500 return v1_constants_LINK_DESTINATION_ATTACHMENT; 17501 } 17502 } 17503 17504 switch (link) { 17505 case 'post': 17506 return LINK_DESTINATION_ATTACHMENT; 17507 17508 case 'file': 17509 return LINK_DESTINATION_MEDIA; 17510 17511 default: 17512 return LINK_DESTINATION_NONE; 17513 } 17514 } 17515 } 17516 }, 17517 17518 isMatch(_ref12) { 17519 let { 17520 named 17521 } = _ref12; 17522 return undefined !== named.ids; 17523 } 17524 17525 }, { 17526 // When created by drag and dropping multiple files on an insertion point. Because multiple 17527 // files must not be transformed to a gallery when dropped within a gallery there is another transform 17528 // within the image block to handle that case. Therefore this transform has to have priority 1 17529 // set so that it overrrides the image block transformation when mulitple images are dropped outside 17530 // of a gallery block. 17531 type: 'files', 17532 priority: 1, 17533 17534 isMatch(files) { 17535 return files.length !== 1 && (0,external_lodash_namespaceObject.every)(files, file => file.type.indexOf('image/') === 0); 17536 }, 17537 17538 transform(files) { 17539 if (isGalleryV2Enabled()) { 17540 const innerBlocks = files.map(file => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { 17541 url: (0,external_wp_blob_namespaceObject.createBlobURL)(file) 17542 })); 17543 return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {}, innerBlocks); 17544 } 17545 17546 const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', { 17547 images: files.map(file => pickRelevantMediaFiles({ 17548 url: (0,external_wp_blob_namespaceObject.createBlobURL)(file) 17549 })) 17550 }); 17551 return block; 17552 } 17553 17554 }], 17555 to: [{ 17556 type: 'block', 17557 blocks: ['core/image'], 17558 transform: (_ref13, innerBlocks) => { 17559 let { 17560 align, 17561 images, 17562 ids, 17563 sizeSlug 17564 } = _ref13; 17565 17566 if (isGalleryV2Enabled()) { 17567 if (innerBlocks.length > 0) { 17568 return innerBlocks.map(_ref14 => { 17569 let { 17570 attributes: { 17571 id, 17572 url, 17573 alt, 17574 caption, 17575 sizeSlug: imageSizeSlug, 17576 linkDestination, 17577 href, 17578 linkTarget 17579 } 17580 } = _ref14; 17581 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { 17582 id, 17583 url, 17584 alt, 17585 caption, 17586 sizeSlug: imageSizeSlug, 17587 align, 17588 linkDestination, 17589 href, 17590 linkTarget 17591 }); 17592 }); 17593 } 17594 17595 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { 17596 align 17597 }); 17598 } 17599 17600 if (images.length > 0) { 17601 return images.map((_ref15, index) => { 17602 let { 17603 url, 17604 alt, 17605 caption 17606 } = _ref15; 17607 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { 17608 id: ids[index], 17609 url, 17610 alt, 17611 caption, 17612 align, 17613 sizeSlug 17614 }); 17615 }); 17616 } 17617 17618 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { 17619 align 17620 }); 17621 } 17622 }] 17623 }; 17624 /* harmony default export */ var gallery_transforms = (gallery_transforms_transforms); 17625 17626 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/index.js 17627 /** 17628 * WordPress dependencies 17629 */ 17630 17631 /** 17632 * Internal dependencies 17633 */ 17634 17635 17636 17637 const gallery_metadata = { 17638 $schema: "https://schemas.wp.org/trunk/block.json", 17639 apiVersion: 2, 17640 name: "core/gallery", 17641 title: "Gallery", 17642 category: "media", 17643 description: "Display multiple images in a rich gallery.", 17644 keywords: ["images", "photos"], 17645 textdomain: "default", 17646 attributes: { 17647 images: { 17648 type: "array", 17649 "default": [], 17650 source: "query", 17651 selector: ".blocks-gallery-item", 17652 query: { 17653 url: { 17654 type: "string", 17655 source: "attribute", 17656 selector: "img", 17657 attribute: "src" 17658 }, 17659 fullUrl: { 17660 type: "string", 17661 source: "attribute", 17662 selector: "img", 17663 attribute: "data-full-url" 17664 }, 17665 link: { 17666 type: "string", 17667 source: "attribute", 17668 selector: "img", 17669 attribute: "data-link" 17670 }, 17671 alt: { 17672 type: "string", 17673 source: "attribute", 17674 selector: "img", 17675 attribute: "alt", 17676 "default": "" 17677 }, 17678 id: { 17679 type: "string", 17680 source: "attribute", 17681 selector: "img", 17682 attribute: "data-id" 17683 }, 17684 caption: { 17685 type: "string", 17686 source: "html", 17687 selector: ".blocks-gallery-item__caption" 17688 } 17689 } 17690 }, 17691 ids: { 17692 type: "array", 17693 items: { 17694 type: "number" 17695 }, 17696 "default": [] 17697 }, 17698 shortCodeTransforms: { 17699 type: "array", 17700 "default": [], 17701 items: { 17702 type: "object" 17703 } 17704 }, 17705 columns: { 17706 type: "number", 17707 minimum: 1, 17708 maximum: 8 17709 }, 17710 caption: { 17711 type: "string", 17712 source: "html", 17713 selector: ".blocks-gallery-caption" 17714 }, 17715 imageCrop: { 17716 type: "boolean", 17717 "default": true 17718 }, 17719 fixedHeight: { 17720 type: "boolean", 17721 "default": true 17722 }, 17723 linkTarget: { 17724 type: "string" 17725 }, 17726 linkTo: { 17727 type: "string" 17728 }, 17729 sizeSlug: { 17730 type: "string", 17731 "default": "large" 17732 }, 17733 allowResize: { 17734 type: "boolean", 17735 "default": false 17736 } 17737 }, 17738 providesContext: { 17739 allowResize: "allowResize", 17740 imageCrop: "imageCrop", 17741 fixedHeight: "fixedHeight" 17742 }, 17743 supports: { 17744 anchor: true, 17745 align: true, 17746 html: false, 17747 units: ["px", "em", "rem", "vh", "vw"], 17748 spacing: { 17749 blockGap: true, 17750 __experimentalSkipSerialization: ["blockGap"], 17751 __experimentalDefaultControls: { 17752 blockGap: true 17753 } 17754 }, 17755 __experimentalLayout: { 17756 allowSwitching: false, 17757 allowInheriting: false, 17758 allowEditing: false, 17759 "default": { 17760 type: "flex" 17761 } 17762 } 17763 }, 17764 editorStyle: "wp-block-gallery-editor", 17765 style: "wp-block-gallery" 17766 }; 17767 17768 17769 const { 17770 name: gallery_name 17771 } = gallery_metadata; 17772 17773 const gallery_settings = { 17774 icon: library_gallery, 17775 example: { 17776 attributes: { 17777 columns: 2 17778 }, 17779 innerBlocks: [{ 17780 name: 'core/image', 17781 attributes: { 17782 url: 'https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg' 17783 } 17784 }, { 17785 name: 'core/image', 17786 attributes: { 17787 url: 'https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg' 17788 } 17789 }] 17790 }, 17791 transforms: gallery_transforms, 17792 edit: edit_wrapper, 17793 save: saveWithInnerBlocks, 17794 deprecated: gallery_deprecated 17795 }; 17796 17797 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/group.js 17798 17799 17800 /** 17801 * WordPress dependencies 17802 */ 17803 17804 const group = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 17805 viewBox: "0 0 24 24", 17806 xmlns: "http://www.w3.org/2000/svg" 17807 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 17808 d: "M18 4h-7c-1.1 0-2 .9-2 2v3H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-3h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h3V13c0 1.1.9 2 2 2h2.5v3zm0-4.5H11c-.3 0-.5-.2-.5-.5v-2.5H13c.3 0 .5.2.5.5v2.5zm5-.5c0 .3-.2.5-.5.5h-3V11c0-1.1-.9-2-2-2h-2.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7z" 17809 })); 17810 /* harmony default export */ var library_group = (group); 17811 17812 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/deprecated.js 17813 17814 17815 /** 17816 * External dependencies 17817 */ 17818 17819 17820 /** 17821 * WordPress dependencies 17822 */ 17823 17824 17825 17826 const migrateAttributes = attributes => { 17827 if (!attributes.tagName) { 17828 attributes = { ...attributes, 17829 tagName: 'div' 17830 }; 17831 } 17832 17833 if (!attributes.customTextColor && !attributes.customBackgroundColor) { 17834 return attributes; 17835 } 17836 17837 const style = { 17838 color: {} 17839 }; 17840 17841 if (attributes.customTextColor) { 17842 style.color.text = attributes.customTextColor; 17843 } 17844 17845 if (attributes.customBackgroundColor) { 17846 style.color.background = attributes.customBackgroundColor; 17847 } 17848 17849 return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor']), 17850 style 17851 }; 17852 }; 17853 17854 const group_deprecated_deprecated = [// Version of the block with the double div. 17855 { 17856 attributes: { 17857 tagName: { 17858 type: 'string', 17859 default: 'div' 17860 }, 17861 templateLock: { 17862 type: 'string' 17863 } 17864 }, 17865 supports: { 17866 align: ['wide', 'full'], 17867 anchor: true, 17868 color: { 17869 gradients: true, 17870 link: true 17871 }, 17872 spacing: { 17873 padding: true 17874 }, 17875 __experimentalBorder: { 17876 radius: true 17877 } 17878 }, 17879 17880 save(_ref) { 17881 let { 17882 attributes 17883 } = _ref; 17884 const { 17885 tagName: Tag 17886 } = attributes; 17887 return (0,external_wp_element_namespaceObject.createElement)(Tag, external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("div", { 17888 className: "wp-block-group__inner-container" 17889 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null))); 17890 } 17891 17892 }, // Version of the block without global styles support 17893 { 17894 attributes: { 17895 backgroundColor: { 17896 type: 'string' 17897 }, 17898 customBackgroundColor: { 17899 type: 'string' 17900 }, 17901 textColor: { 17902 type: 'string' 17903 }, 17904 customTextColor: { 17905 type: 'string' 17906 } 17907 }, 17908 supports: { 17909 align: ['wide', 'full'], 17910 anchor: true, 17911 html: false 17912 }, 17913 migrate: migrateAttributes, 17914 17915 save(_ref2) { 17916 let { 17917 attributes 17918 } = _ref2; 17919 const { 17920 backgroundColor, 17921 customBackgroundColor, 17922 textColor, 17923 customTextColor 17924 } = attributes; 17925 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 17926 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 17927 const className = classnames_default()(backgroundClass, textClass, { 17928 'has-text-color': textColor || customTextColor, 17929 'has-background': backgroundColor || customBackgroundColor 17930 }); 17931 const styles = { 17932 backgroundColor: backgroundClass ? undefined : customBackgroundColor, 17933 color: textClass ? undefined : customTextColor 17934 }; 17935 return (0,external_wp_element_namespaceObject.createElement)("div", { 17936 className: className, 17937 style: styles 17938 }, (0,external_wp_element_namespaceObject.createElement)("div", { 17939 className: "wp-block-group__inner-container" 17940 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null))); 17941 } 17942 17943 }, // Version of the group block with a bug that made text color class not applied. 17944 { 17945 attributes: { 17946 backgroundColor: { 17947 type: 'string' 17948 }, 17949 customBackgroundColor: { 17950 type: 'string' 17951 }, 17952 textColor: { 17953 type: 'string' 17954 }, 17955 customTextColor: { 17956 type: 'string' 17957 } 17958 }, 17959 migrate: migrateAttributes, 17960 supports: { 17961 align: ['wide', 'full'], 17962 anchor: true, 17963 html: false 17964 }, 17965 17966 save(_ref3) { 17967 let { 17968 attributes 17969 } = _ref3; 17970 const { 17971 backgroundColor, 17972 customBackgroundColor, 17973 textColor, 17974 customTextColor 17975 } = attributes; 17976 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 17977 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 17978 const className = classnames_default()(backgroundClass, { 17979 'has-text-color': textColor || customTextColor, 17980 'has-background': backgroundColor || customBackgroundColor 17981 }); 17982 const styles = { 17983 backgroundColor: backgroundClass ? undefined : customBackgroundColor, 17984 color: textClass ? undefined : customTextColor 17985 }; 17986 return (0,external_wp_element_namespaceObject.createElement)("div", { 17987 className: className, 17988 style: styles 17989 }, (0,external_wp_element_namespaceObject.createElement)("div", { 17990 className: "wp-block-group__inner-container" 17991 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null))); 17992 } 17993 17994 }, // v1 of group block. Deprecated to add an inner-container div around `InnerBlocks.Content`. 17995 { 17996 attributes: { 17997 backgroundColor: { 17998 type: 'string' 17999 }, 18000 customBackgroundColor: { 18001 type: 'string' 18002 } 18003 }, 18004 supports: { 18005 align: ['wide', 'full'], 18006 anchor: true, 18007 html: false 18008 }, 18009 migrate: migrateAttributes, 18010 18011 save(_ref4) { 18012 let { 18013 attributes 18014 } = _ref4; 18015 const { 18016 backgroundColor, 18017 customBackgroundColor 18018 } = attributes; 18019 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 18020 const className = classnames_default()(backgroundClass, { 18021 'has-background': backgroundColor || customBackgroundColor 18022 }); 18023 const styles = { 18024 backgroundColor: backgroundClass ? undefined : customBackgroundColor 18025 }; 18026 return (0,external_wp_element_namespaceObject.createElement)("div", { 18027 className: className, 18028 style: styles 18029 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)); 18030 } 18031 18032 }]; 18033 /* harmony default export */ var group_deprecated = (group_deprecated_deprecated); 18034 18035 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/edit.js 18036 18037 18038 /** 18039 * WordPress dependencies 18040 */ 18041 18042 18043 18044 18045 const htmlElementMessages = { 18046 header: (0,external_wp_i18n_namespaceObject.__)('The <header> element should represent introductory content, typically a group of introductory or navigational aids.'), 18047 main: (0,external_wp_i18n_namespaceObject.__)('The <main> element should be used for the primary content of your document only. '), 18048 section: (0,external_wp_i18n_namespaceObject.__)("The <section> element should represent a standalone portion of the document that can't be better represented by another element."), 18049 article: (0,external_wp_i18n_namespaceObject.__)('The <article> element should represent a self contained, syndicatable portion of the document.'), 18050 aside: (0,external_wp_i18n_namespaceObject.__)("The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content."), 18051 footer: (0,external_wp_i18n_namespaceObject.__)('The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).') 18052 }; 18053 18054 function GroupEdit(_ref) { 18055 let { 18056 attributes, 18057 setAttributes, 18058 clientId 18059 } = _ref; 18060 const { 18061 hasInnerBlocks, 18062 themeSupportsLayout 18063 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 18064 var _getSettings; 18065 18066 const { 18067 getBlock, 18068 getSettings 18069 } = select(external_wp_blockEditor_namespaceObject.store); 18070 const block = getBlock(clientId); 18071 return { 18072 hasInnerBlocks: !!(block && block.innerBlocks.length), 18073 themeSupportsLayout: (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout 18074 }; 18075 }, [clientId]); 18076 const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {}; 18077 const { 18078 tagName: TagName = 'div', 18079 templateLock, 18080 layout = {} 18081 } = attributes; 18082 const usedLayout = !!layout && layout.inherit ? defaultLayout : layout; 18083 const { 18084 type = 'default' 18085 } = usedLayout; 18086 const layoutSupportEnabled = themeSupportsLayout || type !== 'default'; 18087 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 18088 className: `is-layout-$type}` 18089 }); 18090 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(layoutSupportEnabled ? blockProps : { 18091 className: 'wp-block-group__inner-container' 18092 }, { 18093 templateLock, 18094 renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender, 18095 __experimentalLayout: layoutSupportEnabled ? usedLayout : undefined 18096 }); 18097 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, { 18098 __experimentalGroup: "advanced" 18099 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 18100 label: (0,external_wp_i18n_namespaceObject.__)('HTML element'), 18101 options: [{ 18102 label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'), 18103 value: 'div' 18104 }, { 18105 label: '<header>', 18106 value: 'header' 18107 }, { 18108 label: '<main>', 18109 value: 'main' 18110 }, { 18111 label: '<section>', 18112 value: 'section' 18113 }, { 18114 label: '<article>', 18115 value: 'article' 18116 }, { 18117 label: '<aside>', 18118 value: 'aside' 18119 }, { 18120 label: '<footer>', 18121 value: 'footer' 18122 }], 18123 value: TagName, 18124 onChange: value => setAttributes({ 18125 tagName: value 18126 }), 18127 help: htmlElementMessages[TagName] 18128 })), layoutSupportEnabled && (0,external_wp_element_namespaceObject.createElement)(TagName, innerBlocksProps), !layoutSupportEnabled && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps))); 18129 } 18130 18131 /* harmony default export */ var group_edit = (GroupEdit); 18132 18133 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/save.js 18134 18135 18136 /** 18137 * WordPress dependencies 18138 */ 18139 18140 function group_save_save(_ref) { 18141 let { 18142 attributes: { 18143 tagName: Tag 18144 } 18145 } = _ref; 18146 return (0,external_wp_element_namespaceObject.createElement)(Tag, external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save())); 18147 } 18148 18149 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/transforms.js 18150 /** 18151 * WordPress dependencies 18152 */ 18153 18154 const group_transforms_transforms = { 18155 from: [{ 18156 type: 'block', 18157 isMultiBlock: true, 18158 blocks: ['*'], 18159 18160 __experimentalConvert(blocks) { 18161 const alignments = ['wide', 'full']; // Determine the widest setting of all the blocks to be grouped 18162 18163 const widestAlignment = blocks.reduce((accumulator, block) => { 18164 const { 18165 align 18166 } = block.attributes; 18167 return alignments.indexOf(align) > alignments.indexOf(accumulator) ? align : accumulator; 18168 }, undefined); // Clone the Blocks to be Grouped 18169 // Failing to create new block references causes the original blocks 18170 // to be replaced in the switchToBlockType call thereby meaning they 18171 // are removed both from their original location and within the 18172 // new group block. 18173 18174 const groupInnerBlocks = blocks.map(block => { 18175 return (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, block.innerBlocks); 18176 }); 18177 return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', { 18178 align: widestAlignment 18179 }, groupInnerBlocks); 18180 } 18181 18182 }] 18183 }; 18184 /* harmony default export */ var group_transforms = (group_transforms_transforms); 18185 18186 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/row.js 18187 18188 18189 /** 18190 * WordPress dependencies 18191 */ 18192 18193 const row = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 18194 xmlns: "http://www.w3.org/2000/svg", 18195 viewBox: "0 0 24 24" 18196 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 18197 d: "M9.2 6.5H4V8h5.2c.3 0 .5.2.5.5v7c0 .3-.2.5-.5.5H4v1.5h5.2c1.1 0 2-.9 2-2v-7c0-1.1-.8-2-2-2zM14.8 8H20V6.5h-5.2c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2H20V16h-5.2c-.3 0-.5-.2-.5-.5v-7c-.1-.3.2-.5.5-.5z" 18198 })); 18199 /* harmony default export */ var library_row = (row); 18200 18201 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stack.js 18202 18203 18204 /** 18205 * WordPress dependencies 18206 */ 18207 18208 const stack = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 18209 xmlns: "http://www.w3.org/2000/svg", 18210 viewBox: "0 0 24 24" 18211 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 18212 d: "M16 4v5.2c0 .3-.2.5-.5.5h-7c-.3.1-.5-.2-.5-.5V4H6.5v5.2c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V4H16zm-.5 8.8h-7c-1.1 0-2 .9-2 2V20H8v-5.2c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5V20h1.5v-5.2c0-1.2-.9-2-2-2z" 18213 })); 18214 /* harmony default export */ var library_stack = (stack); 18215 18216 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/variations.js 18217 /** 18218 * WordPress dependencies 18219 */ 18220 18221 18222 const group_variations_variations = [{ 18223 name: 'group', 18224 title: (0,external_wp_i18n_namespaceObject.__)('Group'), 18225 description: (0,external_wp_i18n_namespaceObject.__)('Gather blocks in a layout container.'), 18226 attributes: { 18227 layout: { 18228 type: 'default' 18229 } 18230 }, 18231 scope: ['transform'], 18232 isActive: blockAttributes => { 18233 var _blockAttributes$layo, _blockAttributes$layo2; 18234 18235 return !blockAttributes.layout || !((_blockAttributes$layo = blockAttributes.layout) !== null && _blockAttributes$layo !== void 0 && _blockAttributes$layo.type) || ((_blockAttributes$layo2 = blockAttributes.layout) === null || _blockAttributes$layo2 === void 0 ? void 0 : _blockAttributes$layo2.type) === 'default'; 18236 }, 18237 icon: library_group 18238 }, { 18239 name: 'group-row', 18240 title: (0,external_wp_i18n_namespaceObject.__)('Row'), 18241 description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks horizontally.'), 18242 attributes: { 18243 layout: { 18244 type: 'flex', 18245 flexWrap: 'nowrap' 18246 } 18247 }, 18248 scope: ['inserter', 'transform'], 18249 isActive: blockAttributes => { 18250 var _blockAttributes$layo3, _blockAttributes$layo4, _blockAttributes$layo5; 18251 18252 return ((_blockAttributes$layo3 = blockAttributes.layout) === null || _blockAttributes$layo3 === void 0 ? void 0 : _blockAttributes$layo3.type) === 'flex' && (!((_blockAttributes$layo4 = blockAttributes.layout) !== null && _blockAttributes$layo4 !== void 0 && _blockAttributes$layo4.orientation) || ((_blockAttributes$layo5 = blockAttributes.layout) === null || _blockAttributes$layo5 === void 0 ? void 0 : _blockAttributes$layo5.orientation) === 'horizontal'); 18253 }, 18254 icon: library_row 18255 }, { 18256 name: 'group-stack', 18257 title: (0,external_wp_i18n_namespaceObject.__)('Stack'), 18258 description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks vertically.'), 18259 attributes: { 18260 layout: { 18261 type: 'flex', 18262 orientation: 'vertical' 18263 } 18264 }, 18265 scope: ['inserter', 'transform'], 18266 isActive: blockAttributes => { 18267 var _blockAttributes$layo6, _blockAttributes$layo7; 18268 18269 return ((_blockAttributes$layo6 = blockAttributes.layout) === null || _blockAttributes$layo6 === void 0 ? void 0 : _blockAttributes$layo6.type) === 'flex' && ((_blockAttributes$layo7 = blockAttributes.layout) === null || _blockAttributes$layo7 === void 0 ? void 0 : _blockAttributes$layo7.orientation) === 'vertical'; 18270 }, 18271 icon: library_stack 18272 }]; 18273 /* harmony default export */ var group_variations = (group_variations_variations); 18274 18275 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/index.js 18276 /** 18277 * WordPress dependencies 18278 */ 18279 18280 18281 /** 18282 * Internal dependencies 18283 */ 18284 18285 18286 18287 const group_metadata = { 18288 $schema: "https://schemas.wp.org/trunk/block.json", 18289 apiVersion: 2, 18290 name: "core/group", 18291 title: "Group", 18292 category: "design", 18293 description: "Gather blocks in a layout container.", 18294 keywords: ["container", "wrapper", "row", "section"], 18295 textdomain: "default", 18296 attributes: { 18297 tagName: { 18298 type: "string", 18299 "default": "div" 18300 }, 18301 templateLock: { 18302 type: ["string", "boolean"], 18303 "enum": ["all", "insert", false] 18304 } 18305 }, 18306 supports: { 18307 align: ["wide", "full"], 18308 anchor: true, 18309 html: false, 18310 color: { 18311 gradients: true, 18312 link: true, 18313 __experimentalDefaultControls: { 18314 background: true, 18315 text: true 18316 } 18317 }, 18318 spacing: { 18319 margin: ["top", "bottom"], 18320 padding: true, 18321 blockGap: true, 18322 __experimentalDefaultControls: { 18323 padding: true, 18324 blockGap: true 18325 } 18326 }, 18327 __experimentalBorder: { 18328 color: true, 18329 radius: true, 18330 style: true, 18331 width: true, 18332 __experimentalDefaultControls: { 18333 color: true, 18334 radius: true, 18335 style: true, 18336 width: true 18337 } 18338 }, 18339 typography: { 18340 fontSize: true, 18341 lineHeight: true, 18342 __experimentalFontStyle: true, 18343 __experimentalFontWeight: true, 18344 __experimentalLetterSpacing: true, 18345 __experimentalTextTransform: true, 18346 __experimentalDefaultControls: { 18347 fontSize: true 18348 } 18349 }, 18350 __experimentalLayout: true 18351 }, 18352 editorStyle: "wp-block-group-editor", 18353 style: "wp-block-group" 18354 }; 18355 18356 18357 18358 const { 18359 name: group_name 18360 } = group_metadata; 18361 18362 const group_settings = { 18363 icon: library_group, 18364 example: { 18365 attributes: { 18366 style: { 18367 color: { 18368 text: '#000000', 18369 background: '#ffffff' 18370 } 18371 } 18372 }, 18373 innerBlocks: [{ 18374 name: 'core/paragraph', 18375 attributes: { 18376 customTextColor: '#cf2e2e', 18377 fontSize: 'large', 18378 content: (0,external_wp_i18n_namespaceObject.__)('One.') 18379 } 18380 }, { 18381 name: 'core/paragraph', 18382 attributes: { 18383 customTextColor: '#ff6900', 18384 fontSize: 'large', 18385 content: (0,external_wp_i18n_namespaceObject.__)('Two.') 18386 } 18387 }, { 18388 name: 'core/paragraph', 18389 attributes: { 18390 customTextColor: '#fcb900', 18391 fontSize: 'large', 18392 content: (0,external_wp_i18n_namespaceObject.__)('Three.') 18393 } 18394 }, { 18395 name: 'core/paragraph', 18396 attributes: { 18397 customTextColor: '#00d084', 18398 fontSize: 'large', 18399 content: (0,external_wp_i18n_namespaceObject.__)('Four.') 18400 } 18401 }, { 18402 name: 'core/paragraph', 18403 attributes: { 18404 customTextColor: '#0693e3', 18405 fontSize: 'large', 18406 content: (0,external_wp_i18n_namespaceObject.__)('Five.') 18407 } 18408 }, { 18409 name: 'core/paragraph', 18410 attributes: { 18411 customTextColor: '#9b51e0', 18412 fontSize: 'large', 18413 content: (0,external_wp_i18n_namespaceObject.__)('Six.') 18414 } 18415 }] 18416 }, 18417 transforms: group_transforms, 18418 edit: group_edit, 18419 save: group_save_save, 18420 deprecated: group_deprecated, 18421 variations: group_variations 18422 }; 18423 18424 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading.js 18425 18426 18427 /** 18428 * WordPress dependencies 18429 */ 18430 18431 const heading = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 18432 xmlns: "http://www.w3.org/2000/svg", 18433 viewBox: "0 0 24 24" 18434 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 18435 d: "M6.2 5.2v13.4l5.8-4.8 5.8 4.8V5.2z" 18436 })); 18437 /* harmony default export */ var library_heading = (heading); 18438 18439 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/deprecated.js 18440 18441 18442 /** 18443 * External dependencies 18444 */ 18445 18446 18447 /** 18448 * WordPress dependencies 18449 */ 18450 18451 18452 const blockSupports = { 18453 className: false, 18454 anchor: true 18455 }; 18456 const heading_deprecated_blockAttributes = { 18457 align: { 18458 type: 'string' 18459 }, 18460 content: { 18461 type: 'string', 18462 source: 'html', 18463 selector: 'h1,h2,h3,h4,h5,h6', 18464 default: '' 18465 }, 18466 level: { 18467 type: 'number', 18468 default: 2 18469 }, 18470 placeholder: { 18471 type: 'string' 18472 } 18473 }; 18474 18475 const deprecated_migrateCustomColors = attributes => { 18476 if (!attributes.customTextColor) { 18477 return attributes; 18478 } 18479 18480 const style = { 18481 color: { 18482 text: attributes.customTextColor 18483 } 18484 }; 18485 return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor']), 18486 style 18487 }; 18488 }; 18489 18490 const TEXT_ALIGN_OPTIONS = ['left', 'right', 'center']; 18491 18492 const migrateTextAlign = attributes => { 18493 const { 18494 align, 18495 ...rest 18496 } = attributes; 18497 return TEXT_ALIGN_OPTIONS.includes(align) ? { ...rest, 18498 textAlign: align 18499 } : attributes; 18500 }; 18501 18502 const heading_deprecated_deprecated = [{ 18503 supports: { 18504 align: ['wide', 'full'], 18505 anchor: true, 18506 className: false, 18507 color: { 18508 link: true 18509 }, 18510 fontSize: true, 18511 lineHeight: true, 18512 __experimentalSelector: { 18513 'core/heading/h1': 'h1', 18514 'core/heading/h2': 'h2', 18515 'core/heading/h3': 'h3', 18516 'core/heading/h4': 'h4', 18517 'core/heading/h5': 'h5', 18518 'core/heading/h6': 'h6' 18519 }, 18520 __unstablePasteTextInline: true 18521 }, 18522 attributes: heading_deprecated_blockAttributes, 18523 isEligible: _ref => { 18524 let { 18525 align 18526 } = _ref; 18527 return TEXT_ALIGN_OPTIONS.includes(align); 18528 }, 18529 migrate: migrateTextAlign, 18530 18531 save(_ref2) { 18532 let { 18533 attributes 18534 } = _ref2; 18535 const { 18536 align, 18537 content, 18538 level 18539 } = attributes; 18540 const TagName = 'h' + level; 18541 const className = classnames_default()({ 18542 [`has-text-align-$align}`]: align 18543 }); 18544 return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({ 18545 className 18546 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 18547 value: content 18548 })); 18549 } 18550 18551 }, { 18552 supports: blockSupports, 18553 attributes: { ...heading_deprecated_blockAttributes, 18554 customTextColor: { 18555 type: 'string' 18556 }, 18557 textColor: { 18558 type: 'string' 18559 } 18560 }, 18561 migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)), 18562 18563 save(_ref3) { 18564 let { 18565 attributes 18566 } = _ref3; 18567 const { 18568 align, 18569 content, 18570 customTextColor, 18571 level, 18572 textColor 18573 } = attributes; 18574 const tagName = 'h' + level; 18575 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 18576 const className = classnames_default()({ 18577 [textClass]: textClass, 18578 'has-text-color': textColor || customTextColor, 18579 [`has-text-align-$align}`]: align 18580 }); 18581 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 18582 className: className ? className : undefined, 18583 tagName: tagName, 18584 style: { 18585 color: textClass ? undefined : customTextColor 18586 }, 18587 value: content 18588 }); 18589 } 18590 18591 }, { 18592 attributes: { ...heading_deprecated_blockAttributes, 18593 customTextColor: { 18594 type: 'string' 18595 }, 18596 textColor: { 18597 type: 'string' 18598 } 18599 }, 18600 migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)), 18601 18602 save(_ref4) { 18603 let { 18604 attributes 18605 } = _ref4; 18606 const { 18607 align, 18608 content, 18609 customTextColor, 18610 level, 18611 textColor 18612 } = attributes; 18613 const tagName = 'h' + level; 18614 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 18615 const className = classnames_default()({ 18616 [textClass]: textClass, 18617 [`has-text-align-$align}`]: align 18618 }); 18619 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 18620 className: className ? className : undefined, 18621 tagName: tagName, 18622 style: { 18623 color: textClass ? undefined : customTextColor 18624 }, 18625 value: content 18626 }); 18627 }, 18628 18629 supports: blockSupports 18630 }, { 18631 supports: blockSupports, 18632 attributes: { ...heading_deprecated_blockAttributes, 18633 customTextColor: { 18634 type: 'string' 18635 }, 18636 textColor: { 18637 type: 'string' 18638 } 18639 }, 18640 migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)), 18641 18642 save(_ref5) { 18643 let { 18644 attributes 18645 } = _ref5; 18646 const { 18647 align, 18648 level, 18649 content, 18650 textColor, 18651 customTextColor 18652 } = attributes; 18653 const tagName = 'h' + level; 18654 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 18655 const className = classnames_default()({ 18656 [textClass]: textClass 18657 }); 18658 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 18659 className: className ? className : undefined, 18660 tagName: tagName, 18661 style: { 18662 textAlign: align, 18663 color: textClass ? undefined : customTextColor 18664 }, 18665 value: content 18666 }); 18667 } 18668 18669 }]; 18670 /* harmony default export */ var heading_deprecated = (heading_deprecated_deprecated); 18671 18672 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/autogenerate-anchors.js 18673 /** 18674 * External dependencies 18675 */ 18676 18677 /** 18678 * Object map tracking anchors. 18679 * 18680 * @type {Record<string, string | null>} 18681 */ 18682 18683 const autogenerate_anchors_anchors = {}; 18684 /** 18685 * Returns the text without markup. 18686 * 18687 * @param {string} text The text. 18688 * 18689 * @return {string} The text without markup. 18690 */ 18691 18692 const getTextWithoutMarkup = text => { 18693 const dummyElement = document.createElement('div'); 18694 dummyElement.innerHTML = text; 18695 return dummyElement.innerText; 18696 }; 18697 /** 18698 * Get the slug from the content. 18699 * 18700 * @param {string} content The block content. 18701 * 18702 * @return {string} Returns the slug. 18703 */ 18704 18705 18706 const getSlug = content => { 18707 // Get the slug. 18708 return (0,external_lodash_namespaceObject.trim)((0,external_lodash_namespaceObject.deburr)(getTextWithoutMarkup(content)).replace(/[^\p{L}\p{N}]+/gu, '-').toLowerCase(), '-'); 18709 }; 18710 /** 18711 * Generate the anchor for a heading. 18712 * 18713 * @param {string} clientId The block ID. 18714 * @param {string} content The block content. 18715 * 18716 * @return {string|null} Return the heading anchor. 18717 */ 18718 18719 18720 const generateAnchor = (clientId, content) => { 18721 const slug = getSlug(content); // If slug is empty, then return null. 18722 // Returning null instead of an empty string allows us to check again when the content changes. 18723 18724 if ('' === slug) { 18725 return null; 18726 } 18727 18728 delete autogenerate_anchors_anchors[clientId]; 18729 let anchor = slug; 18730 let i = 0; // If the anchor already exists in another heading, append -i. 18731 18732 while (Object.values(autogenerate_anchors_anchors).includes(anchor)) { 18733 i += 1; 18734 anchor = slug + '-' + i; 18735 } 18736 18737 return anchor; 18738 }; 18739 /** 18740 * Set the anchor for a heading. 18741 * 18742 * @param {string} clientId The block ID. 18743 * @param {string|null} anchor The block anchor. 18744 */ 18745 18746 const setAnchor = (clientId, anchor) => { 18747 autogenerate_anchors_anchors[clientId] = anchor; 18748 }; 18749 18750 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/edit.js 18751 18752 18753 18754 /** 18755 * External dependencies 18756 */ 18757 18758 /** 18759 * WordPress dependencies 18760 */ 18761 18762 18763 18764 18765 18766 18767 /** 18768 * Internal dependencies 18769 */ 18770 18771 18772 18773 18774 function HeadingEdit(_ref) { 18775 let { 18776 attributes, 18777 setAttributes, 18778 mergeBlocks, 18779 onReplace, 18780 style, 18781 clientId 18782 } = _ref; 18783 const { 18784 textAlign, 18785 content, 18786 level, 18787 placeholder, 18788 anchor 18789 } = attributes; 18790 const tagName = 'h' + level; 18791 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 18792 className: classnames_default()({ 18793 [`has-text-align-$textAlign}`]: textAlign 18794 }), 18795 style 18796 }); 18797 const { 18798 canGenerateAnchors 18799 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 18800 const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings(); 18801 return { 18802 canGenerateAnchors: !!settings.generateAnchors 18803 }; 18804 }, []); 18805 const { 18806 __unstableMarkNextChangeAsNotPersistent 18807 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); // Initially set anchor for headings that have content but no anchor set. 18808 // This is used when transforming a block to heading, or for legacy anchors. 18809 18810 (0,external_wp_element_namespaceObject.useEffect)(() => { 18811 if (!canGenerateAnchors) { 18812 return; 18813 } 18814 18815 if (!anchor && content) { 18816 // This side-effect should not create an undo level. 18817 __unstableMarkNextChangeAsNotPersistent(); 18818 18819 setAttributes({ 18820 anchor: generateAnchor(clientId, content) 18821 }); 18822 } 18823 18824 setAnchor(clientId, anchor); // Remove anchor map when block unmounts. 18825 18826 return () => setAnchor(clientId, null); 18827 }, [anchor, content, clientId, canGenerateAnchors]); 18828 18829 const onContentChange = value => { 18830 const newAttrs = { 18831 content: value 18832 }; 18833 18834 if (canGenerateAnchors && (!anchor || !value || generateAnchor(clientId, content) === anchor)) { 18835 newAttrs.anchor = generateAnchor(clientId, value); 18836 } 18837 18838 setAttributes(newAttrs); 18839 }; 18840 18841 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 18842 group: "block" 18843 }, (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, { 18844 selectedLevel: level, 18845 onChange: newLevel => setAttributes({ 18846 level: newLevel 18847 }) 18848 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 18849 value: textAlign, 18850 onChange: nextAlign => { 18851 setAttributes({ 18852 textAlign: nextAlign 18853 }); 18854 } 18855 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({ 18856 identifier: "content", 18857 tagName: tagName, 18858 value: content, 18859 onChange: onContentChange, 18860 onMerge: mergeBlocks, 18861 onSplit: (value, isOriginal) => { 18862 let block; 18863 18864 if (isOriginal || value) { 18865 block = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', { ...attributes, 18866 content: value 18867 }); 18868 } else { 18869 var _getDefaultBlockName; 18870 18871 block = (0,external_wp_blocks_namespaceObject.createBlock)((_getDefaultBlockName = (0,external_wp_blocks_namespaceObject.getDefaultBlockName)()) !== null && _getDefaultBlockName !== void 0 ? _getDefaultBlockName : 'core/heading'); 18872 } 18873 18874 if (isOriginal) { 18875 block.clientId = clientId; 18876 } 18877 18878 return block; 18879 }, 18880 onReplace: onReplace, 18881 onRemove: () => onReplace([]), 18882 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Heading text'), 18883 placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Heading'), 18884 textAlign: textAlign 18885 }, external_wp_element_namespaceObject.Platform.isNative && { 18886 deleteEnter: true 18887 }, blockProps))); 18888 } 18889 18890 /* harmony default export */ var heading_edit = (HeadingEdit); 18891 18892 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/save.js 18893 18894 18895 /** 18896 * External dependencies 18897 */ 18898 18899 /** 18900 * WordPress dependencies 18901 */ 18902 18903 18904 function heading_save_save(_ref) { 18905 let { 18906 attributes 18907 } = _ref; 18908 const { 18909 textAlign, 18910 content, 18911 level 18912 } = attributes; 18913 const TagName = 'h' + level; 18914 const className = classnames_default()({ 18915 [`has-text-align-$textAlign}`]: textAlign 18916 }); 18917 return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({ 18918 className 18919 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 18920 value: content 18921 })); 18922 } 18923 18924 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/shared.js 18925 /** 18926 * Given a node name string for a heading node, returns its numeric level. 18927 * 18928 * @param {string} nodeName Heading node name. 18929 * 18930 * @return {number} Heading level. 18931 */ 18932 function getLevelFromHeadingNodeName(nodeName) { 18933 return Number(nodeName.substr(1)); 18934 } 18935 18936 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/transforms.js 18937 /** 18938 * WordPress dependencies 18939 */ 18940 18941 /** 18942 * Internal dependencies 18943 */ 18944 18945 18946 const { 18947 name: heading_transforms_name 18948 } = { 18949 $schema: "https://schemas.wp.org/trunk/block.json", 18950 apiVersion: 2, 18951 name: "core/heading", 18952 title: "Heading", 18953 category: "text", 18954 description: "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.", 18955 keywords: ["title", "subtitle"], 18956 textdomain: "default", 18957 attributes: { 18958 textAlign: { 18959 type: "string" 18960 }, 18961 content: { 18962 type: "string", 18963 source: "html", 18964 selector: "h1,h2,h3,h4,h5,h6", 18965 "default": "", 18966 __experimentalRole: "content" 18967 }, 18968 level: { 18969 type: "number", 18970 "default": 2 18971 }, 18972 placeholder: { 18973 type: "string" 18974 } 18975 }, 18976 supports: { 18977 align: ["wide", "full"], 18978 anchor: true, 18979 className: false, 18980 color: { 18981 link: true, 18982 __experimentalDefaultControls: { 18983 background: true, 18984 text: true 18985 } 18986 }, 18987 spacing: { 18988 margin: true 18989 }, 18990 typography: { 18991 fontSize: true, 18992 lineHeight: true, 18993 __experimentalFontStyle: true, 18994 __experimentalFontWeight: true, 18995 __experimentalLetterSpacing: true, 18996 __experimentalTextTransform: true, 18997 __experimentalDefaultControls: { 18998 fontSize: true, 18999 fontAppearance: true, 19000 textTransform: true 19001 } 19002 }, 19003 __experimentalSelector: "h1,h2,h3,h4,h5,h6", 19004 __unstablePasteTextInline: true, 19005 __experimentalSlashInserter: true 19006 }, 19007 editorStyle: "wp-block-heading-editor", 19008 style: "wp-block-heading" 19009 }; 19010 const heading_transforms_transforms = { 19011 from: [{ 19012 type: 'block', 19013 isMultiBlock: true, 19014 blocks: ['core/paragraph'], 19015 transform: attributes => attributes.map(_ref => { 19016 let { 19017 content, 19018 anchor 19019 } = _ref; 19020 return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, { 19021 content, 19022 anchor 19023 }); 19024 }) 19025 }, { 19026 type: 'raw', 19027 selector: 'h1,h2,h3,h4,h5,h6', 19028 schema: _ref2 => { 19029 let { 19030 phrasingContentSchema, 19031 isPaste 19032 } = _ref2; 19033 const schema = { 19034 children: phrasingContentSchema, 19035 attributes: isPaste ? [] : ['style', 'id'] 19036 }; 19037 return { 19038 h1: schema, 19039 h2: schema, 19040 h3: schema, 19041 h4: schema, 19042 h5: schema, 19043 h6: schema 19044 }; 19045 }, 19046 19047 transform(node) { 19048 const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)(heading_transforms_name, node.outerHTML); 19049 const { 19050 textAlign 19051 } = node.style || {}; 19052 attributes.level = getLevelFromHeadingNodeName(node.nodeName); 19053 19054 if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') { 19055 attributes.align = textAlign; 19056 } 19057 19058 return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, attributes); 19059 } 19060 19061 }, ...[1, 2, 3, 4, 5, 6].map(level => ({ 19062 type: 'prefix', 19063 prefix: Array(level + 1).join('#'), 19064 19065 transform(content) { 19066 return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, { 19067 level, 19068 content 19069 }); 19070 } 19071 19072 })), ...[1, 2, 3, 4, 5, 6].map(level => ({ 19073 type: 'enter', 19074 regExp: new RegExp(`^/(h|H)$level}$`), 19075 19076 transform(content) { 19077 return (0,external_wp_blocks_namespaceObject.createBlock)(heading_transforms_name, { 19078 level, 19079 content 19080 }); 19081 } 19082 19083 }))], 19084 to: [{ 19085 type: 'block', 19086 isMultiBlock: true, 19087 blocks: ['core/paragraph'], 19088 transform: attributes => attributes.map(_ref3 => { 19089 let { 19090 content 19091 } = _ref3; 19092 return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 19093 content 19094 }); 19095 }) 19096 }] 19097 }; 19098 /* harmony default export */ var heading_transforms = (heading_transforms_transforms); 19099 19100 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/index.js 19101 /** 19102 * External dependencies 19103 */ 19104 19105 /** 19106 * WordPress dependencies 19107 */ 19108 19109 19110 19111 /** 19112 * Internal dependencies 19113 */ 19114 19115 19116 19117 const heading_metadata = { 19118 $schema: "https://schemas.wp.org/trunk/block.json", 19119 apiVersion: 2, 19120 name: "core/heading", 19121 title: "Heading", 19122 category: "text", 19123 description: "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.", 19124 keywords: ["title", "subtitle"], 19125 textdomain: "default", 19126 attributes: { 19127 textAlign: { 19128 type: "string" 19129 }, 19130 content: { 19131 type: "string", 19132 source: "html", 19133 selector: "h1,h2,h3,h4,h5,h6", 19134 "default": "", 19135 __experimentalRole: "content" 19136 }, 19137 level: { 19138 type: "number", 19139 "default": 2 19140 }, 19141 placeholder: { 19142 type: "string" 19143 } 19144 }, 19145 supports: { 19146 align: ["wide", "full"], 19147 anchor: true, 19148 className: false, 19149 color: { 19150 link: true, 19151 __experimentalDefaultControls: { 19152 background: true, 19153 text: true 19154 } 19155 }, 19156 spacing: { 19157 margin: true 19158 }, 19159 typography: { 19160 fontSize: true, 19161 lineHeight: true, 19162 __experimentalFontStyle: true, 19163 __experimentalFontWeight: true, 19164 __experimentalLetterSpacing: true, 19165 __experimentalTextTransform: true, 19166 __experimentalDefaultControls: { 19167 fontSize: true, 19168 fontAppearance: true, 19169 textTransform: true 19170 } 19171 }, 19172 __experimentalSelector: "h1,h2,h3,h4,h5,h6", 19173 __unstablePasteTextInline: true, 19174 __experimentalSlashInserter: true 19175 }, 19176 editorStyle: "wp-block-heading-editor", 19177 style: "wp-block-heading" 19178 }; 19179 19180 19181 const { 19182 name: heading_name 19183 } = heading_metadata; 19184 19185 const heading_settings = { 19186 icon: library_heading, 19187 example: { 19188 attributes: { 19189 content: (0,external_wp_i18n_namespaceObject.__)('Code is Poetry'), 19190 level: 2 19191 } 19192 }, 19193 19194 __experimentalLabel(attributes, _ref) { 19195 let { 19196 context 19197 } = _ref; 19198 19199 if (context === 'accessibility') { 19200 const { 19201 content, 19202 level 19203 } = attributes; 19204 return (0,external_lodash_namespaceObject.isEmpty)(content) ? (0,external_wp_i18n_namespaceObject.sprintf)( 19205 /* translators: accessibility text. %s: heading level. */ 19206 (0,external_wp_i18n_namespaceObject.__)('Level %s. Empty.'), level) : (0,external_wp_i18n_namespaceObject.sprintf)( 19207 /* translators: accessibility text. 1: heading level. 2: heading content. */ 19208 (0,external_wp_i18n_namespaceObject.__)('Level %1$s. %2$s'), level, content); 19209 } 19210 }, 19211 19212 transforms: heading_transforms, 19213 deprecated: heading_deprecated, 19214 19215 merge(attributes, attributesToMerge) { 19216 return { 19217 content: (attributes.content || '') + (attributesToMerge.content || '') 19218 }; 19219 }, 19220 19221 edit: heading_edit, 19222 save: heading_save_save 19223 }; 19224 19225 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/home.js 19226 19227 19228 /** 19229 * WordPress dependencies 19230 */ 19231 19232 const home = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 19233 xmlns: "http://www.w3.org/2000/svg", 19234 viewBox: "0 0 24 24" 19235 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 19236 d: "M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z" 19237 })); 19238 /* harmony default export */ var library_home = (home); 19239 19240 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/edit.js 19241 19242 19243 /** 19244 * External dependencies 19245 */ 19246 19247 /** 19248 * WordPress dependencies 19249 */ 19250 19251 19252 19253 19254 19255 19256 19257 const preventDefault = event => event.preventDefault(); 19258 19259 function HomeEdit(_ref) { 19260 var _style$color, _style$color2, _style$color3, _style$color4; 19261 19262 let { 19263 attributes, 19264 setAttributes, 19265 context, 19266 clientId 19267 } = _ref; 19268 const { 19269 homeUrl 19270 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 19271 var _getUnstableBase; 19272 19273 const { 19274 getUnstableBase // Site index. 19275 19276 } = select(external_wp_coreData_namespaceObject.store); 19277 return { 19278 homeUrl: (_getUnstableBase = getUnstableBase()) === null || _getUnstableBase === void 0 ? void 0 : _getUnstableBase.home 19279 }; 19280 }, [clientId]); 19281 const { 19282 textColor, 19283 backgroundColor, 19284 style 19285 } = context; 19286 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 19287 className: classnames_default()('wp-block-navigation-item', { 19288 'has-text-color': !!textColor || !!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.text), 19289 [`has-$textColor}-color`]: !!textColor, 19290 'has-background': !!backgroundColor || !!(style !== null && style !== void 0 && (_style$color2 = style.color) !== null && _style$color2 !== void 0 && _style$color2.background), 19291 [`has-$backgroundColor}-background-color`]: !!backgroundColor 19292 }), 19293 style: { 19294 color: style === null || style === void 0 ? void 0 : (_style$color3 = style.color) === null || _style$color3 === void 0 ? void 0 : _style$color3.text, 19295 backgroundColor: style === null || style === void 0 ? void 0 : (_style$color4 = style.color) === null || _style$color4 === void 0 ? void 0 : _style$color4.background 19296 } 19297 }); 19298 const { 19299 label 19300 } = attributes; 19301 (0,external_wp_element_namespaceObject.useEffect)(() => { 19302 if (label === undefined) { 19303 setAttributes({ 19304 label: (0,external_wp_i18n_namespaceObject.__)('Home') 19305 }); 19306 } 19307 }, [clientId, label]); 19308 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("a", { 19309 className: "wp-block-home-link__content wp-block-navigation-item__content", 19310 href: homeUrl, 19311 onClick: preventDefault 19312 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 19313 identifier: "label", 19314 className: "wp-block-home-link__label", 19315 value: label, 19316 onChange: labelValue => { 19317 setAttributes({ 19318 label: labelValue 19319 }); 19320 }, 19321 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Home link text'), 19322 placeholder: (0,external_wp_i18n_namespaceObject.__)('Add home link'), 19323 withoutInteractiveFormatting: true, 19324 allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough'] 19325 })))); 19326 } 19327 19328 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/save.js 19329 19330 19331 /** 19332 * WordPress dependencies 19333 */ 19334 19335 function home_link_save_save() { 19336 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 19337 } 19338 19339 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/home-link/index.js 19340 /** 19341 * WordPress dependencies 19342 */ 19343 19344 19345 /** 19346 * Internal dependencies 19347 */ 19348 19349 const home_link_metadata = { 19350 $schema: "https://schemas.wp.org/trunk/block.json", 19351 apiVersion: 2, 19352 name: "core/home-link", 19353 category: "design", 19354 parent: ["core/navigation"], 19355 title: "Home Link", 19356 description: "Create a link that always points to the homepage of the site. Usually not necessary if there is already a site title link present in the header.", 19357 textdomain: "default", 19358 attributes: { 19359 label: { 19360 type: "string" 19361 } 19362 }, 19363 usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "fontSize", "customFontSize", "style"], 19364 supports: { 19365 reusable: false, 19366 html: false 19367 }, 19368 editorStyle: "wp-block-home-link-editor", 19369 style: "wp-block-home-link" 19370 }; 19371 19372 19373 const { 19374 name: home_link_name 19375 } = home_link_metadata; 19376 19377 const home_link_settings = { 19378 icon: library_home, 19379 edit: HomeEdit, 19380 save: home_link_save_save, 19381 example: { 19382 attributes: { 19383 label: (0,external_wp_i18n_namespaceObject._x)('Home Link', 'block example') 19384 } 19385 } 19386 }; 19387 19388 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/html.js 19389 19390 19391 /** 19392 * WordPress dependencies 19393 */ 19394 19395 const html = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 19396 viewBox: "0 0 24 24", 19397 xmlns: "http://www.w3.org/2000/svg" 19398 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 19399 d: "M4.8 11.4H2.1V9H1v6h1.1v-2.6h2.7V15h1.1V9H4.8v2.4zm1.9-1.3h1.7V15h1.1v-4.9h1.7V9H6.7v1.1zM16.2 9l-1.5 2.7L13.3 9h-.9l-.8 6h1.1l.5-4 1.5 2.8 1.5-2.8.5 4h1.1L17 9h-.8zm3.8 5V9h-1.1v6h3.6v-1H20z" 19400 })); 19401 /* harmony default export */ var library_html = (html); 19402 19403 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/edit.js 19404 19405 19406 /** 19407 * WordPress dependencies 19408 */ 19409 19410 19411 19412 19413 19414 function HTMLEdit(_ref) { 19415 let { 19416 attributes, 19417 setAttributes, 19418 isSelected 19419 } = _ref; 19420 const [isPreview, setIsPreview] = (0,external_wp_element_namespaceObject.useState)(); 19421 const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context); 19422 const styles = (0,external_wp_data_namespaceObject.useSelect)(select => { 19423 // Default styles used to unset some of the styles 19424 // that might be inherited from the editor style. 19425 const defaultStyles = ` 19426 html,body,:root { 19427 margin: 0 !important; 19428 padding: 0 !important; 19429 overflow: visible !important; 19430 min-height: auto !important; 19431 } 19432 `; 19433 return [defaultStyles, ...(0,external_wp_blockEditor_namespaceObject.transformStyles)(select(external_wp_blockEditor_namespaceObject.store).getSettings().styles)]; 19434 }, []); 19435 19436 function switchToPreview() { 19437 setIsPreview(true); 19438 } 19439 19440 function switchToHTML() { 19441 setIsPreview(false); 19442 } 19443 19444 return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 19445 className: 'block-library-html__edit' 19446 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 19447 className: "components-tab-button", 19448 isPressed: !isPreview, 19449 onClick: switchToHTML 19450 }, (0,external_wp_element_namespaceObject.createElement)("span", null, "HTML")), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 19451 className: "components-tab-button", 19452 isPressed: isPreview, 19453 onClick: switchToPreview 19454 }, (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('Preview'))))), isPreview || isDisabled ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SandBox, { 19455 html: attributes.content, 19456 styles: styles 19457 }), !isSelected && (0,external_wp_element_namespaceObject.createElement)("div", { 19458 className: "block-library-html__preview-overlay" 19459 })) : (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, { 19460 value: attributes.content, 19461 onChange: content => setAttributes({ 19462 content 19463 }), 19464 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write HTML…'), 19465 "aria-label": (0,external_wp_i18n_namespaceObject.__)('HTML') 19466 })); 19467 } 19468 19469 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/save.js 19470 19471 19472 /** 19473 * WordPress dependencies 19474 */ 19475 19476 function html_save_save(_ref) { 19477 let { 19478 attributes 19479 } = _ref; 19480 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.content); 19481 } 19482 19483 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/transforms.js 19484 /** 19485 * WordPress dependencies 19486 */ 19487 19488 const html_transforms_transforms = { 19489 from: [{ 19490 type: 'block', 19491 blocks: ['core/code'], 19492 transform: _ref => { 19493 let { 19494 content 19495 } = _ref; 19496 return (0,external_wp_blocks_namespaceObject.createBlock)('core/html', { 19497 content 19498 }); 19499 } 19500 }] 19501 }; 19502 /* harmony default export */ var html_transforms = (html_transforms_transforms); 19503 19504 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/index.js 19505 /** 19506 * WordPress dependencies 19507 */ 19508 19509 19510 /** 19511 * Internal dependencies 19512 */ 19513 19514 19515 const html_metadata = { 19516 $schema: "https://schemas.wp.org/trunk/block.json", 19517 apiVersion: 2, 19518 name: "core/html", 19519 title: "Custom HTML", 19520 category: "widgets", 19521 description: "Add custom HTML code and preview it as you edit.", 19522 keywords: ["embed"], 19523 textdomain: "default", 19524 attributes: { 19525 content: { 19526 type: "string", 19527 source: "html" 19528 } 19529 }, 19530 supports: { 19531 customClassName: false, 19532 className: false, 19533 html: false 19534 }, 19535 editorStyle: "wp-block-html-editor" 19536 }; 19537 19538 19539 const { 19540 name: html_name 19541 } = html_metadata; 19542 19543 const html_settings = { 19544 icon: library_html, 19545 example: { 19546 attributes: { 19547 content: '<marquee>' + (0,external_wp_i18n_namespaceObject.__)('Welcome to the wonderful world of blocks…') + '</marquee>' 19548 } 19549 }, 19550 edit: HTMLEdit, 19551 save: html_save_save, 19552 transforms: html_transforms 19553 }; 19554 19555 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/deprecated.js 19556 19557 19558 19559 /** 19560 * External dependencies 19561 */ 19562 19563 19564 /** 19565 * WordPress dependencies 19566 */ 19567 19568 19569 const image_deprecated_blockAttributes = { 19570 align: { 19571 type: 'string' 19572 }, 19573 url: { 19574 type: 'string', 19575 source: 'attribute', 19576 selector: 'img', 19577 attribute: 'src' 19578 }, 19579 alt: { 19580 type: 'string', 19581 source: 'attribute', 19582 selector: 'img', 19583 attribute: 'alt', 19584 default: '' 19585 }, 19586 caption: { 19587 type: 'string', 19588 source: 'html', 19589 selector: 'figcaption' 19590 }, 19591 href: { 19592 type: 'string', 19593 source: 'attribute', 19594 selector: 'figure > a', 19595 attribute: 'href' 19596 }, 19597 rel: { 19598 type: 'string', 19599 source: 'attribute', 19600 selector: 'figure > a', 19601 attribute: 'rel' 19602 }, 19603 linkClass: { 19604 type: 'string', 19605 source: 'attribute', 19606 selector: 'figure > a', 19607 attribute: 'class' 19608 }, 19609 id: { 19610 type: 'number' 19611 }, 19612 width: { 19613 type: 'number' 19614 }, 19615 height: { 19616 type: 'number' 19617 }, 19618 linkDestination: { 19619 type: 'string' 19620 }, 19621 linkTarget: { 19622 type: 'string', 19623 source: 'attribute', 19624 selector: 'figure > a', 19625 attribute: 'target' 19626 } 19627 }; 19628 const deprecated_blockSupports = { 19629 anchor: true, 19630 color: { 19631 __experimentalDuotone: 'img', 19632 text: false, 19633 background: false 19634 }, 19635 __experimentalBorder: { 19636 radius: true, 19637 __experimentalDefaultControls: { 19638 radius: true 19639 } 19640 } 19641 }; 19642 const image_deprecated_deprecated = [{ 19643 attributes: { ...image_deprecated_blockAttributes, 19644 title: { 19645 type: 'string', 19646 source: 'attribute', 19647 selector: 'img', 19648 attribute: 'title' 19649 }, 19650 sizeSlug: { 19651 type: 'string' 19652 } 19653 }, 19654 supports: deprecated_blockSupports, 19655 19656 save(_ref) { 19657 let { 19658 attributes 19659 } = _ref; 19660 const { 19661 url, 19662 alt, 19663 caption, 19664 align, 19665 href, 19666 rel, 19667 linkClass, 19668 width, 19669 height, 19670 id, 19671 linkTarget, 19672 sizeSlug, 19673 title 19674 } = attributes; 19675 const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel; 19676 const classes = classnames_default()({ 19677 [`align$align}`]: align, 19678 [`size-$sizeSlug}`]: sizeSlug, 19679 'is-resized': width || height 19680 }); 19681 const image = (0,external_wp_element_namespaceObject.createElement)("img", { 19682 src: url, 19683 alt: alt, 19684 className: id ? `wp-image-$id}` : null, 19685 width: width, 19686 height: height, 19687 title: title 19688 }); 19689 const figure = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 19690 className: linkClass, 19691 href: href, 19692 target: linkTarget, 19693 rel: newRel 19694 }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 19695 tagName: "figcaption", 19696 value: caption 19697 })); 19698 19699 if ('left' === align || 'right' === align || 'center' === align) { 19700 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("figure", { 19701 className: classes 19702 }, figure)); 19703 } 19704 19705 return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 19706 className: classes 19707 }), figure); 19708 } 19709 19710 }, { 19711 attributes: image_deprecated_blockAttributes, 19712 19713 save(_ref2) { 19714 let { 19715 attributes 19716 } = _ref2; 19717 const { 19718 url, 19719 alt, 19720 caption, 19721 align, 19722 href, 19723 width, 19724 height, 19725 id 19726 } = attributes; 19727 const classes = classnames_default()({ 19728 [`align$align}`]: align, 19729 'is-resized': width || height 19730 }); 19731 const image = (0,external_wp_element_namespaceObject.createElement)("img", { 19732 src: url, 19733 alt: alt, 19734 className: id ? `wp-image-$id}` : null, 19735 width: width, 19736 height: height 19737 }); 19738 return (0,external_wp_element_namespaceObject.createElement)("figure", { 19739 className: classes 19740 }, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 19741 href: href 19742 }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 19743 tagName: "figcaption", 19744 value: caption 19745 })); 19746 } 19747 19748 }, { 19749 attributes: image_deprecated_blockAttributes, 19750 19751 save(_ref3) { 19752 let { 19753 attributes 19754 } = _ref3; 19755 const { 19756 url, 19757 alt, 19758 caption, 19759 align, 19760 href, 19761 width, 19762 height, 19763 id 19764 } = attributes; 19765 const image = (0,external_wp_element_namespaceObject.createElement)("img", { 19766 src: url, 19767 alt: alt, 19768 className: id ? `wp-image-$id}` : null, 19769 width: width, 19770 height: height 19771 }); 19772 return (0,external_wp_element_namespaceObject.createElement)("figure", { 19773 className: align ? `align$align}` : null 19774 }, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 19775 href: href 19776 }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 19777 tagName: "figcaption", 19778 value: caption 19779 })); 19780 } 19781 19782 }, { 19783 attributes: image_deprecated_blockAttributes, 19784 19785 save(_ref4) { 19786 let { 19787 attributes 19788 } = _ref4; 19789 const { 19790 url, 19791 alt, 19792 caption, 19793 align, 19794 href, 19795 width, 19796 height 19797 } = attributes; 19798 const extraImageProps = width || height ? { 19799 width, 19800 height 19801 } : {}; 19802 const image = (0,external_wp_element_namespaceObject.createElement)("img", _extends({ 19803 src: url, 19804 alt: alt 19805 }, extraImageProps)); 19806 let figureStyle = {}; 19807 19808 if (width) { 19809 figureStyle = { 19810 width 19811 }; 19812 } else if (align === 'left' || align === 'right') { 19813 figureStyle = { 19814 maxWidth: '50%' 19815 }; 19816 } 19817 19818 return (0,external_wp_element_namespaceObject.createElement)("figure", { 19819 className: align ? `align$align}` : null, 19820 style: figureStyle 19821 }, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 19822 href: href 19823 }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 19824 tagName: "figcaption", 19825 value: caption 19826 })); 19827 } 19828 19829 }]; 19830 /* harmony default export */ var image_deprecated = (image_deprecated_deprecated); 19831 19832 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/crop.js 19833 19834 19835 /** 19836 * WordPress dependencies 19837 */ 19838 19839 const crop = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 19840 xmlns: "http://www.w3.org/2000/svg", 19841 viewBox: "0 0 24 24" 19842 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 19843 d: "M16.5 7.8v7H18v-7c0-1-.8-1.8-1.8-1.8h-7v1.5h7c.2 0 .3.1.3.3zm-8.7 8.7c-.1 0-.2-.1-.2-.2V2H6v4H2v1.5h4v8.8c0 1 .8 1.8 1.8 1.8h8.8v4H18v-4h4v-1.5H7.8z" 19844 })); 19845 /* harmony default export */ var library_crop = (crop); 19846 19847 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js 19848 19849 19850 /** 19851 * WordPress dependencies 19852 */ 19853 19854 const upload = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 19855 xmlns: "http://www.w3.org/2000/svg", 19856 viewBox: "0 0 24 24" 19857 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 19858 d: "M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z" 19859 })); 19860 /* harmony default export */ var library_upload = (upload); 19861 19862 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/overlay-text.js 19863 19864 19865 /** 19866 * WordPress dependencies 19867 */ 19868 19869 const overlayText = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 19870 xmlns: "http://www.w3.org/2000/svg", 19871 viewBox: "0 0 24 24" 19872 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 19873 d: "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12-9.8c.4 0 .8-.3.9-.7l1.1-3h3.6l.5 1.7h1.9L13 9h-2.2l-3.4 9.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12H20V6c0-1.1-.9-2-2-2zm-6 7l1.4 3.9h-2.7L12 11z" 19874 })); 19875 /* harmony default export */ var overlay_text = (overlayText); 19876 19877 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/use-client-width.js 19878 /** 19879 * WordPress dependencies 19880 */ 19881 19882 function useClientWidth(ref, dependencies) { 19883 const [clientWidth, setClientWidth] = (0,external_wp_element_namespaceObject.useState)(); 19884 19885 function calculateClientWidth() { 19886 setClientWidth(ref.current.clientWidth); 19887 } 19888 19889 (0,external_wp_element_namespaceObject.useEffect)(calculateClientWidth, dependencies); 19890 (0,external_wp_element_namespaceObject.useEffect)(() => { 19891 const { 19892 defaultView 19893 } = ref.current.ownerDocument; 19894 defaultView.addEventListener('resize', calculateClientWidth); 19895 return () => { 19896 defaultView.removeEventListener('resize', calculateClientWidth); 19897 }; 19898 }, []); 19899 return clientWidth; 19900 } 19901 19902 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/image.js 19903 19904 19905 /** 19906 * External dependencies 19907 */ 19908 19909 /** 19910 * WordPress dependencies 19911 */ 19912 19913 19914 19915 19916 19917 19918 19919 19920 19921 19922 19923 19924 19925 /** 19926 * Internal dependencies 19927 */ 19928 19929 19930 19931 19932 /** 19933 * Module constants 19934 */ 19935 19936 19937 function Image(_ref) { 19938 var _imageRef$current3; 19939 19940 let { 19941 temporaryURL, 19942 attributes: { 19943 url = '', 19944 alt, 19945 caption, 19946 align, 19947 id, 19948 href, 19949 rel, 19950 linkClass, 19951 linkDestination, 19952 title, 19953 width, 19954 height, 19955 linkTarget, 19956 sizeSlug 19957 }, 19958 setAttributes, 19959 isSelected, 19960 insertBlocksAfter, 19961 onReplace, 19962 onCloseModal, 19963 onSelectImage, 19964 onSelectURL, 19965 onUploadError, 19966 containerRef, 19967 context, 19968 clientId, 19969 onImageLoadError 19970 } = _ref; 19971 const imageRef = (0,external_wp_element_namespaceObject.useRef)(); 19972 const captionRef = (0,external_wp_element_namespaceObject.useRef)(); 19973 const prevUrl = (0,external_wp_compose_namespaceObject.usePrevious)(url); 19974 const { 19975 allowResize = true 19976 } = context; 19977 const { 19978 getBlock 19979 } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store); 19980 const { 19981 image, 19982 multiImageSelection 19983 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 19984 const { 19985 getMedia 19986 } = select(external_wp_coreData_namespaceObject.store); 19987 const { 19988 getMultiSelectedBlockClientIds, 19989 getBlockName 19990 } = select(external_wp_blockEditor_namespaceObject.store); 19991 const multiSelectedClientIds = getMultiSelectedBlockClientIds(); 19992 return { 19993 image: id && isSelected ? getMedia(id, { 19994 context: 'view' 19995 }) : null, 19996 multiImageSelection: multiSelectedClientIds.length && multiSelectedClientIds.every(_clientId => getBlockName(_clientId) === 'core/image') 19997 }; 19998 }, [id, isSelected]); 19999 const { 20000 canInsertCover, 20001 imageEditing, 20002 imageSizes, 20003 maxWidth, 20004 mediaUpload 20005 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 20006 const { 20007 getBlockRootClientId, 20008 getSettings, 20009 canInsertBlockType 20010 } = select(external_wp_blockEditor_namespaceObject.store); 20011 const rootClientId = getBlockRootClientId(clientId); 20012 const settings = (0,external_lodash_namespaceObject.pick)(getSettings(), ['imageEditing', 'imageSizes', 'maxWidth', 'mediaUpload']); 20013 return { ...settings, 20014 canInsertCover: canInsertBlockType('core/cover', rootClientId) 20015 }; 20016 }, [clientId]); 20017 const { 20018 replaceBlocks, 20019 toggleSelection 20020 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 20021 const { 20022 createErrorNotice, 20023 createSuccessNotice 20024 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); 20025 const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium'); 20026 const isWideAligned = (0,external_lodash_namespaceObject.includes)(['wide', 'full'], align); 20027 const [{ 20028 loadedNaturalWidth, 20029 loadedNaturalHeight 20030 }, setLoadedNaturalSize] = (0,external_wp_element_namespaceObject.useState)({}); 20031 const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false); 20032 const [externalBlob, setExternalBlob] = (0,external_wp_element_namespaceObject.useState)(); 20033 const clientWidth = useClientWidth(containerRef, [align]); 20034 const isResizable = allowResize && !(isWideAligned && isLargeViewport); 20035 const imageSizeOptions = (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(imageSizes, _ref2 => { 20036 let { 20037 slug 20038 } = _ref2; 20039 return (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', slug, 'source_url']); 20040 }), _ref3 => { 20041 let { 20042 name, 20043 slug 20044 } = _ref3; 20045 return { 20046 value: slug, 20047 label: name 20048 }; 20049 }); // If an image is externally hosted, try to fetch the image data. This may 20050 // fail if the image host doesn't allow CORS with the domain. If it works, 20051 // we can enable a button in the toolbar to upload the image. 20052 20053 (0,external_wp_element_namespaceObject.useEffect)(() => { 20054 if (!isExternalImage(id, url) || !isSelected || externalBlob) { 20055 return; 20056 } 20057 20058 window.fetch(url).then(response => response.blob()).then(blob => setExternalBlob(blob)) // Do nothing, cannot upload. 20059 .catch(() => {}); 20060 }, [id, url, isSelected, externalBlob]); // Focus the caption after inserting an image from the placeholder. This is 20061 // done to preserve the behaviour of focussing the first tabbable element 20062 // when a block is mounted. Previously, the image block would remount when 20063 // the placeholder is removed. Maybe this behaviour could be removed. 20064 20065 (0,external_wp_element_namespaceObject.useEffect)(() => { 20066 if (url && !prevUrl && isSelected) { 20067 captionRef.current.focus(); 20068 } 20069 }, [url, prevUrl]); // Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural 20070 // width and height. This resolves an issue in Safari where the loaded natural 20071 // witdth and height is otherwise lost when switching between alignments. 20072 // See: https://github.com/WordPress/gutenberg/pull/37210. 20073 20074 const { 20075 naturalWidth, 20076 naturalHeight 20077 } = (0,external_wp_element_namespaceObject.useMemo)(() => { 20078 var _imageRef$current, _imageRef$current2; 20079 20080 return { 20081 naturalWidth: ((_imageRef$current = imageRef.current) === null || _imageRef$current === void 0 ? void 0 : _imageRef$current.naturalWidth) || loadedNaturalWidth || undefined, 20082 naturalHeight: ((_imageRef$current2 = imageRef.current) === null || _imageRef$current2 === void 0 ? void 0 : _imageRef$current2.naturalHeight) || loadedNaturalHeight || undefined 20083 }; 20084 }, [loadedNaturalWidth, loadedNaturalHeight, (_imageRef$current3 = imageRef.current) === null || _imageRef$current3 === void 0 ? void 0 : _imageRef$current3.complete]); 20085 20086 function onResizeStart() { 20087 toggleSelection(false); 20088 } 20089 20090 function onResizeStop() { 20091 toggleSelection(true); 20092 } 20093 20094 function onImageError() { 20095 // Check if there's an embed block that handles this URL, e.g., instagram URL. 20096 // See: https://github.com/WordPress/gutenberg/pull/11472 20097 const embedBlock = createUpgradedEmbedBlock({ 20098 attributes: { 20099 url 20100 } 20101 }); 20102 const shouldReplace = undefined !== embedBlock; 20103 20104 if (shouldReplace) { 20105 onReplace(embedBlock); 20106 } 20107 20108 onImageLoadError(shouldReplace); 20109 } 20110 20111 function onSetHref(props) { 20112 setAttributes(props); 20113 } 20114 20115 function onSetTitle(value) { 20116 // This is the HTML title attribute, separate from the media object 20117 // title. 20118 setAttributes({ 20119 title: value 20120 }); 20121 } 20122 20123 function updateAlt(newAlt) { 20124 setAttributes({ 20125 alt: newAlt 20126 }); 20127 } 20128 20129 function updateImage(newSizeSlug) { 20130 const newUrl = (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', newSizeSlug, 'source_url']); 20131 20132 if (!newUrl) { 20133 return null; 20134 } 20135 20136 setAttributes({ 20137 url: newUrl, 20138 width: undefined, 20139 height: undefined, 20140 sizeSlug: newSizeSlug 20141 }); 20142 } 20143 20144 function uploadExternal() { 20145 mediaUpload({ 20146 filesList: [externalBlob], 20147 20148 onFileChange(_ref4) { 20149 let [img] = _ref4; 20150 onSelectImage(img); 20151 20152 if ((0,external_wp_blob_namespaceObject.isBlobURL)(img.url)) { 20153 return; 20154 } 20155 20156 setExternalBlob(); 20157 createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Image uploaded.'), { 20158 type: 'snackbar' 20159 }); 20160 }, 20161 20162 allowedTypes: constants_ALLOWED_MEDIA_TYPES, 20163 20164 onError(message) { 20165 createErrorNotice(message, { 20166 type: 'snackbar' 20167 }); 20168 } 20169 20170 }); 20171 } 20172 20173 function updateAlignment(nextAlign) { 20174 const extraUpdatedAttributes = ['wide', 'full'].includes(nextAlign) ? { 20175 width: undefined, 20176 height: undefined 20177 } : {}; 20178 setAttributes({ ...extraUpdatedAttributes, 20179 align: nextAlign 20180 }); 20181 } 20182 20183 (0,external_wp_element_namespaceObject.useEffect)(() => { 20184 if (!isSelected) { 20185 setIsEditingImage(false); 20186 } 20187 20188 if (isSelected && isMediaDestroyed(id)) { 20189 onImageLoadError(); 20190 } 20191 }, [isSelected]); 20192 const canEditImage = id && naturalWidth && naturalHeight && imageEditing; 20193 const allowCrop = !multiImageSelection && canEditImage && !isEditingImage; 20194 20195 function switchToCover() { 20196 replaceBlocks(clientId, (0,external_wp_blocks_namespaceObject.switchToBlockType)(getBlock(clientId), 'core/cover')); 20197 } 20198 20199 const controls = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 20200 group: "block" 20201 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockAlignmentControl, { 20202 value: align, 20203 onChange: updateAlignment 20204 }), !multiImageSelection && !isEditingImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, { 20205 url: href || '', 20206 onChangeUrl: onSetHref, 20207 linkDestination: linkDestination, 20208 mediaUrl: image && image.source_url || url, 20209 mediaLink: image && image.link, 20210 linkTarget: linkTarget, 20211 linkClass: linkClass, 20212 rel: rel 20213 }), allowCrop && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 20214 onClick: () => setIsEditingImage(true), 20215 icon: library_crop, 20216 label: (0,external_wp_i18n_namespaceObject.__)('Crop') 20217 }), externalBlob && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 20218 onClick: uploadExternal, 20219 icon: library_upload, 20220 label: (0,external_wp_i18n_namespaceObject.__)('Upload external image') 20221 }), !multiImageSelection && canInsertCover && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 20222 icon: overlay_text, 20223 label: (0,external_wp_i18n_namespaceObject.__)('Add text over image'), 20224 onClick: switchToCover 20225 })), !multiImageSelection && !isEditingImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 20226 group: "other" 20227 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, { 20228 mediaId: id, 20229 mediaURL: url, 20230 allowedTypes: constants_ALLOWED_MEDIA_TYPES, 20231 accept: "image/*", 20232 onSelect: onSelectImage, 20233 onSelectURL: onSelectURL, 20234 onError: onUploadError, 20235 onCloseModal: onCloseModal 20236 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 20237 title: (0,external_wp_i18n_namespaceObject.__)('Image settings') 20238 }, !multiImageSelection && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, { 20239 label: (0,external_wp_i18n_namespaceObject.__)('Alt text (alternative text)'), 20240 value: alt, 20241 onChange: updateAlt, 20242 help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { 20243 href: "https://www.w3.org/WAI/tutorials/images/decision-tree" 20244 }, (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image')), (0,external_wp_i18n_namespaceObject.__)('Leave empty if the image is purely decorative.')) 20245 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, { 20246 onChangeImage: updateImage, 20247 onChange: value => setAttributes(value), 20248 slug: sizeSlug, 20249 width: width, 20250 height: height, 20251 imageSizeOptions: imageSizeOptions, 20252 isResizable: isResizable, 20253 imageWidth: naturalWidth, 20254 imageHeight: naturalHeight 20255 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, { 20256 __experimentalGroup: "advanced" 20257 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 20258 label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'), 20259 value: title || '', 20260 onChange: onSetTitle, 20261 help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_i18n_namespaceObject.__)('Describe the role of this image on the page.'), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { 20262 href: "https://www.w3.org/TR/html52/dom.html#the-title-attribute" 20263 }, (0,external_wp_i18n_namespaceObject.__)('(Note: many devices and browsers do not display this text.)'))) 20264 }))); 20265 const filename = (0,external_wp_url_namespaceObject.getFilename)(url); 20266 let defaultedAlt; 20267 20268 if (alt) { 20269 defaultedAlt = alt; 20270 } else if (filename) { 20271 defaultedAlt = (0,external_wp_i18n_namespaceObject.sprintf)( 20272 /* translators: %s: file name */ 20273 (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute; its file name is %s'), filename); 20274 } else { 20275 defaultedAlt = (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute'); 20276 } 20277 20278 let img = // Disable reason: Image itself is not meant to be interactive, but 20279 // should direct focus to block. 20280 20281 /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */ 20282 (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("img", { 20283 src: temporaryURL || url, 20284 alt: defaultedAlt, 20285 onError: () => onImageError(), 20286 onLoad: event => { 20287 var _event$target, _event$target2; 20288 20289 setLoadedNaturalSize({ 20290 loadedNaturalWidth: (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.naturalWidth, 20291 loadedNaturalHeight: (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.naturalHeight 20292 }); 20293 }, 20294 ref: imageRef 20295 }), temporaryURL && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)) 20296 /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */ 20297 ; 20298 let imageWidthWithinContainer; 20299 let imageHeightWithinContainer; 20300 20301 if (clientWidth && naturalWidth && naturalHeight) { 20302 const exceedMaxWidth = naturalWidth > clientWidth; 20303 const ratio = naturalHeight / naturalWidth; 20304 imageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth; 20305 imageHeightWithinContainer = exceedMaxWidth ? clientWidth * ratio : naturalHeight; 20306 } 20307 20308 if (canEditImage && isEditingImage) { 20309 img = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, { 20310 url: url, 20311 width: width, 20312 height: height, 20313 clientWidth: clientWidth, 20314 naturalHeight: naturalHeight, 20315 naturalWidth: naturalWidth 20316 }); 20317 } else if (!isResizable || !imageWidthWithinContainer) { 20318 img = (0,external_wp_element_namespaceObject.createElement)("div", { 20319 style: { 20320 width, 20321 height 20322 } 20323 }, img); 20324 } else { 20325 const currentWidth = width || imageWidthWithinContainer; 20326 const currentHeight = height || imageHeightWithinContainer; 20327 const ratio = naturalWidth / naturalHeight; 20328 const minWidth = naturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio; 20329 const minHeight = naturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio; // With the current implementation of ResizableBox, an image needs an 20330 // explicit pixel value for the max-width. In absence of being able to 20331 // set the content-width, this max-width is currently dictated by the 20332 // vanilla editor style. The following variable adds a buffer to this 20333 // vanilla style, so 3rd party themes have some wiggleroom. This does, 20334 // in most cases, allow you to scale the image beyond the width of the 20335 // main column, though not infinitely. 20336 // @todo It would be good to revisit this once a content-width variable 20337 // becomes available. 20338 20339 const maxWidthBuffer = maxWidth * 2.5; 20340 let showRightHandle = false; 20341 let showLeftHandle = false; 20342 /* eslint-disable no-lonely-if */ 20343 // See https://github.com/WordPress/gutenberg/issues/7584. 20344 20345 if (align === 'center') { 20346 // When the image is centered, show both handles. 20347 showRightHandle = true; 20348 showLeftHandle = true; 20349 } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) { 20350 // In RTL mode the image is on the right by default. 20351 // Show the right handle and hide the left handle only when it is 20352 // aligned left. Otherwise always show the left handle. 20353 if (align === 'left') { 20354 showRightHandle = true; 20355 } else { 20356 showLeftHandle = true; 20357 } 20358 } else { 20359 // Show the left handle and hide the right handle only when the 20360 // image is aligned right. Otherwise always show the right handle. 20361 if (align === 'right') { 20362 showLeftHandle = true; 20363 } else { 20364 showRightHandle = true; 20365 } 20366 } 20367 /* eslint-enable no-lonely-if */ 20368 20369 20370 img = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, { 20371 size: { 20372 width: width !== null && width !== void 0 ? width : 'auto', 20373 height: height !== null && height !== void 0 ? height : 'auto' 20374 }, 20375 showHandle: isSelected, 20376 minWidth: minWidth, 20377 maxWidth: maxWidthBuffer, 20378 minHeight: minHeight, 20379 maxHeight: maxWidthBuffer / ratio, 20380 lockAspectRatio: true, 20381 enable: { 20382 top: false, 20383 right: showRightHandle, 20384 bottom: true, 20385 left: showLeftHandle 20386 }, 20387 onResizeStart: onResizeStart, 20388 onResizeStop: (event, direction, elt, delta) => { 20389 onResizeStop(); 20390 setAttributes({ 20391 width: parseInt(currentWidth + delta.width, 10), 20392 height: parseInt(currentHeight + delta.height, 10) 20393 }); 20394 } 20395 }, img); 20396 } 20397 20398 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditingProvider, { 20399 id: id, 20400 url: url, 20401 naturalWidth: naturalWidth, 20402 naturalHeight: naturalHeight, 20403 clientWidth: clientWidth, 20404 onSaveImage: imageAttributes => setAttributes(imageAttributes), 20405 isEditing: isEditingImage, 20406 onFinishEditing: () => setIsEditingImage(false) 20407 }, !temporaryURL && controls, img, (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 20408 ref: captionRef, 20409 tagName: "figcaption", 20410 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Image caption text'), 20411 placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'), 20412 value: caption, 20413 onChange: value => setAttributes({ 20414 caption: value 20415 }), 20416 inlineToolbar: true, 20417 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')) 20418 })); 20419 } 20420 20421 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/edit.js 20422 20423 20424 /** 20425 * External dependencies 20426 */ 20427 20428 20429 /** 20430 * WordPress dependencies 20431 */ 20432 20433 20434 20435 20436 20437 20438 20439 20440 /* global wp */ 20441 20442 /** 20443 * Internal dependencies 20444 */ 20445 20446 20447 /** 20448 * Module constants 20449 */ 20450 20451 20452 const edit_pickRelevantMediaFiles = (image, size) => { 20453 const imageProps = (0,external_lodash_namespaceObject.pick)(image, ['alt', 'id', 'link', 'caption']); 20454 imageProps.url = (0,external_lodash_namespaceObject.get)(image, ['sizes', size, 'url']) || (0,external_lodash_namespaceObject.get)(image, ['media_details', 'sizes', size, 'source_url']) || image.url; 20455 return imageProps; 20456 }; 20457 /** 20458 * Is the URL a temporary blob URL? A blob URL is one that is used temporarily 20459 * while the image is being uploaded and will not have an id yet allocated. 20460 * 20461 * @param {number=} id The id of the image. 20462 * @param {string=} url The url of the image. 20463 * 20464 * @return {boolean} Is the URL a Blob URL 20465 */ 20466 20467 const edit_isTemporaryImage = (id, url) => !id && (0,external_wp_blob_namespaceObject.isBlobURL)(url); 20468 /** 20469 * Is the url for the image hosted externally. An externally hosted image has no 20470 * id and is not a blob url. 20471 * 20472 * @param {number=} id The id of the image. 20473 * @param {string=} url The url of the image. 20474 * 20475 * @return {boolean} Is the url an externally hosted url? 20476 */ 20477 20478 20479 const isExternalImage = (id, url) => url && !id && !(0,external_wp_blob_namespaceObject.isBlobURL)(url); 20480 /** 20481 * Checks if WP generated default image size. Size generation is skipped 20482 * when the image is smaller than the said size. 20483 * 20484 * @param {Object} image 20485 * @param {string} defaultSize 20486 * 20487 * @return {boolean} Whether or not it has default image size. 20488 */ 20489 20490 function hasDefaultSize(image, defaultSize) { 20491 return (0,external_lodash_namespaceObject.has)(image, ['sizes', defaultSize, 'url']) || (0,external_lodash_namespaceObject.has)(image, ['media_details', 'sizes', defaultSize, 'source_url']); 20492 } 20493 /** 20494 * Checks if a media attachment object has been "destroyed", 20495 * that is, removed from the media library. The core Media Library 20496 * adds a `destroyed` property to a deleted attachment object in the media collection. 20497 * 20498 * @param {number} id The attachment id. 20499 * 20500 * @return {boolean} Whether the image has been destroyed. 20501 */ 20502 20503 20504 function isMediaDestroyed(id) { 20505 var _wp, _wp$media; 20506 20507 const attachment = ((_wp = wp) === null || _wp === void 0 ? void 0 : (_wp$media = _wp.media) === null || _wp$media === void 0 ? void 0 : _wp$media.attachment(id)) || {}; 20508 return attachment.destroyed; 20509 } 20510 function ImageEdit(_ref) { 20511 let { 20512 attributes, 20513 setAttributes, 20514 isSelected, 20515 className, 20516 noticeUI, 20517 insertBlocksAfter, 20518 noticeOperations, 20519 onReplace, 20520 context, 20521 clientId 20522 } = _ref; 20523 const { 20524 url = '', 20525 alt, 20526 caption, 20527 align, 20528 id, 20529 width, 20530 height, 20531 sizeSlug 20532 } = attributes; 20533 const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(); 20534 const altRef = (0,external_wp_element_namespaceObject.useRef)(); 20535 (0,external_wp_element_namespaceObject.useEffect)(() => { 20536 altRef.current = alt; 20537 }, [alt]); 20538 const captionRef = (0,external_wp_element_namespaceObject.useRef)(); 20539 (0,external_wp_element_namespaceObject.useEffect)(() => { 20540 captionRef.current = caption; 20541 }, [caption]); 20542 const ref = (0,external_wp_element_namespaceObject.useRef)(); 20543 const { 20544 imageDefaultSize, 20545 mediaUpload 20546 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 20547 const { 20548 getSettings 20549 } = select(external_wp_blockEditor_namespaceObject.store); 20550 return (0,external_lodash_namespaceObject.pick)(getSettings(), ['imageDefaultSize', 'mediaUpload']); 20551 }, []); // A callback passed to MediaUpload, 20552 // fired when the media modal closes. 20553 20554 function onCloseModal() { 20555 if (isMediaDestroyed(attributes === null || attributes === void 0 ? void 0 : attributes.id)) { 20556 setAttributes({ 20557 url: undefined, 20558 id: undefined 20559 }); 20560 } 20561 } 20562 /* 20563 Runs an error callback if the image does not load. 20564 If the error callback is triggered, we infer that that image 20565 has been deleted. 20566 */ 20567 20568 20569 function onImageError() { 20570 let isReplaced = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 20571 20572 // If the image block was not replaced with an embed, 20573 // clear the attributes and trigger the placeholder. 20574 if (!isReplaced) { 20575 setAttributes({ 20576 url: undefined, 20577 id: undefined 20578 }); 20579 } 20580 } 20581 20582 function onUploadError(message) { 20583 noticeOperations.removeAllNotices(); 20584 noticeOperations.createErrorNotice(message); 20585 setAttributes({ 20586 src: undefined, 20587 id: undefined, 20588 url: undefined 20589 }); 20590 setTemporaryURL(undefined); 20591 } 20592 20593 function onSelectImage(media) { 20594 var _wp2, _wp2$media, _wp2$media$view, _wp2$media$view$setti, _wp2$media$view$setti2; 20595 20596 if (!media || !media.url) { 20597 setAttributes({ 20598 url: undefined, 20599 alt: undefined, 20600 id: undefined, 20601 title: undefined, 20602 caption: undefined 20603 }); 20604 return; 20605 } 20606 20607 if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) { 20608 setTemporaryURL(media.url); 20609 return; 20610 } 20611 20612 setTemporaryURL(); 20613 let mediaAttributes = edit_pickRelevantMediaFiles(media, imageDefaultSize); // If a caption text was meanwhile written by the user, 20614 // make sure the text is not overwritten by empty captions. 20615 20616 if (captionRef.current && !(0,external_lodash_namespaceObject.get)(mediaAttributes, ['caption'])) { 20617 mediaAttributes = (0,external_lodash_namespaceObject.omit)(mediaAttributes, ['caption']); 20618 } 20619 20620 let additionalAttributes; // Reset the dimension attributes if changing to a different image. 20621 20622 if (!media.id || media.id !== id) { 20623 additionalAttributes = { 20624 width: undefined, 20625 height: undefined, 20626 // Fallback to size "full" if there's no default image size. 20627 // It means the image is smaller, and the block will use a full-size URL. 20628 sizeSlug: hasDefaultSize(media, imageDefaultSize) ? imageDefaultSize : 'full' 20629 }; 20630 } else { 20631 // Keep the same url when selecting the same file, so "Image Size" 20632 // option is not changed. 20633 additionalAttributes = { 20634 url 20635 }; 20636 } // Check if default link setting should be used. 20637 20638 20639 let linkDestination = attributes.linkDestination; 20640 20641 if (!linkDestination) { 20642 // Use the WordPress option to determine the proper default. 20643 // The constants used in Gutenberg do not match WP options so a little more complicated than ideal. 20644 // TODO: fix this in a follow up PR, requires updating media-text and ui component. 20645 switch (((_wp2 = wp) === null || _wp2 === void 0 ? void 0 : (_wp2$media = _wp2.media) === null || _wp2$media === void 0 ? void 0 : (_wp2$media$view = _wp2$media.view) === null || _wp2$media$view === void 0 ? void 0 : (_wp2$media$view$setti = _wp2$media$view.settings) === null || _wp2$media$view$setti === void 0 ? void 0 : (_wp2$media$view$setti2 = _wp2$media$view$setti.defaultProps) === null || _wp2$media$view$setti2 === void 0 ? void 0 : _wp2$media$view$setti2.link) || constants_LINK_DESTINATION_NONE) { 20646 case 'file': 20647 case constants_LINK_DESTINATION_MEDIA: 20648 linkDestination = constants_LINK_DESTINATION_MEDIA; 20649 break; 20650 20651 case 'post': 20652 case constants_LINK_DESTINATION_ATTACHMENT: 20653 linkDestination = constants_LINK_DESTINATION_ATTACHMENT; 20654 break; 20655 20656 case LINK_DESTINATION_CUSTOM: 20657 linkDestination = LINK_DESTINATION_CUSTOM; 20658 break; 20659 20660 case constants_LINK_DESTINATION_NONE: 20661 linkDestination = constants_LINK_DESTINATION_NONE; 20662 break; 20663 } 20664 } // Check if the image is linked to it's media. 20665 20666 20667 let href; 20668 20669 switch (linkDestination) { 20670 case constants_LINK_DESTINATION_MEDIA: 20671 href = media.url; 20672 break; 20673 20674 case constants_LINK_DESTINATION_ATTACHMENT: 20675 href = media.link; 20676 break; 20677 } 20678 20679 mediaAttributes.href = href; 20680 setAttributes({ ...mediaAttributes, 20681 ...additionalAttributes, 20682 linkDestination 20683 }); 20684 } 20685 20686 function onSelectURL(newURL) { 20687 if (newURL !== url) { 20688 setAttributes({ 20689 url: newURL, 20690 id: undefined, 20691 width: undefined, 20692 height: undefined, 20693 sizeSlug: imageDefaultSize 20694 }); 20695 } 20696 } 20697 20698 function updateAlignment(nextAlign) { 20699 const extraUpdatedAttributes = ['wide', 'full'].includes(nextAlign) ? { 20700 width: undefined, 20701 height: undefined 20702 } : {}; 20703 setAttributes({ ...extraUpdatedAttributes, 20704 align: nextAlign 20705 }); 20706 } 20707 20708 let isTemp = edit_isTemporaryImage(id, url); // Upload a temporary image on mount. 20709 20710 (0,external_wp_element_namespaceObject.useEffect)(() => { 20711 if (!isTemp) { 20712 return; 20713 } 20714 20715 const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(url); 20716 20717 if (file) { 20718 mediaUpload({ 20719 filesList: [file], 20720 onFileChange: _ref2 => { 20721 let [img] = _ref2; 20722 onSelectImage(img); 20723 }, 20724 allowedTypes: constants_ALLOWED_MEDIA_TYPES, 20725 onError: message => { 20726 isTemp = false; 20727 onUploadError(message); 20728 } 20729 }); 20730 } 20731 }, []); // If an image is temporary, revoke the Blob url when it is uploaded (and is 20732 // no longer temporary). 20733 20734 (0,external_wp_element_namespaceObject.useEffect)(() => { 20735 if (isTemp) { 20736 setTemporaryURL(url); 20737 return; 20738 } 20739 20740 (0,external_wp_blob_namespaceObject.revokeBlobURL)(temporaryURL); 20741 }, [isTemp, url]); 20742 const isExternal = isExternalImage(id, url); 20743 const src = isExternal ? url : undefined; 20744 const mediaPreview = !!url && (0,external_wp_element_namespaceObject.createElement)("img", { 20745 alt: (0,external_wp_i18n_namespaceObject.__)('Edit image'), 20746 title: (0,external_wp_i18n_namespaceObject.__)('Edit image'), 20747 className: 'edit-image-preview', 20748 src: url 20749 }); 20750 const classes = classnames_default()(className, { 20751 'is-transient': temporaryURL, 20752 'is-resized': !!width || !!height, 20753 [`size-$sizeSlug}`]: sizeSlug 20754 }); 20755 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 20756 ref, 20757 className: classes 20758 }); 20759 return (0,external_wp_element_namespaceObject.createElement)("figure", blockProps, (temporaryURL || url) && (0,external_wp_element_namespaceObject.createElement)(Image, { 20760 temporaryURL: temporaryURL, 20761 attributes: attributes, 20762 setAttributes: setAttributes, 20763 isSelected: isSelected, 20764 insertBlocksAfter: insertBlocksAfter, 20765 onReplace: onReplace, 20766 onSelectImage: onSelectImage, 20767 onSelectURL: onSelectURL, 20768 onUploadError: onUploadError, 20769 containerRef: ref, 20770 context: context, 20771 clientId: clientId, 20772 onCloseModal: onCloseModal, 20773 onImageLoadError: onImageError 20774 }), !url && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 20775 group: "block" 20776 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockAlignmentControl, { 20777 value: align, 20778 onChange: updateAlignment 20779 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, { 20780 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { 20781 icon: library_image 20782 }), 20783 onSelect: onSelectImage, 20784 onSelectURL: onSelectURL, 20785 notices: noticeUI, 20786 onError: onUploadError, 20787 onClose: onCloseModal, 20788 accept: "image/*", 20789 allowedTypes: constants_ALLOWED_MEDIA_TYPES, 20790 value: { 20791 id, 20792 src 20793 }, 20794 mediaPreview: mediaPreview, 20795 disableMediaButtons: temporaryURL || url 20796 })); 20797 } 20798 /* harmony default export */ var image_edit = ((0,external_wp_components_namespaceObject.withNotices)(ImageEdit)); 20799 20800 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/save.js 20801 20802 20803 /** 20804 * External dependencies 20805 */ 20806 20807 20808 /** 20809 * WordPress dependencies 20810 */ 20811 20812 20813 function image_save_save(_ref) { 20814 let { 20815 attributes 20816 } = _ref; 20817 const { 20818 url, 20819 alt, 20820 caption, 20821 align, 20822 href, 20823 rel, 20824 linkClass, 20825 width, 20826 height, 20827 id, 20828 linkTarget, 20829 sizeSlug, 20830 title 20831 } = attributes; 20832 const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel; 20833 const classes = classnames_default()({ 20834 [`align$align}`]: align, 20835 [`size-$sizeSlug}`]: sizeSlug, 20836 'is-resized': width || height 20837 }); 20838 const image = (0,external_wp_element_namespaceObject.createElement)("img", { 20839 src: url, 20840 alt: alt, 20841 className: id ? `wp-image-$id}` : null, 20842 width: width, 20843 height: height, 20844 title: title 20845 }); 20846 const figure = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, href ? (0,external_wp_element_namespaceObject.createElement)("a", { 20847 className: linkClass, 20848 href: href, 20849 target: linkTarget, 20850 rel: newRel 20851 }, image) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 20852 tagName: "figcaption", 20853 value: caption 20854 })); 20855 return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 20856 className: classes 20857 }), figure); 20858 } 20859 20860 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/transforms.js 20861 /** 20862 * External dependencies 20863 */ 20864 20865 /** 20866 * WordPress dependencies 20867 */ 20868 20869 20870 20871 20872 20873 20874 function stripFirstImage(attributes, _ref) { 20875 let { 20876 shortcode 20877 } = _ref; 20878 const { 20879 body 20880 } = document.implementation.createHTMLDocument(''); 20881 body.innerHTML = shortcode.content; 20882 let nodeToRemove = body.querySelector('img'); // If an image has parents, find the topmost node to remove. 20883 20884 while (nodeToRemove && nodeToRemove.parentNode && nodeToRemove.parentNode !== body) { 20885 nodeToRemove = nodeToRemove.parentNode; 20886 } 20887 20888 if (nodeToRemove) { 20889 nodeToRemove.parentNode.removeChild(nodeToRemove); 20890 } 20891 20892 return body.innerHTML.trim(); 20893 } 20894 20895 function getFirstAnchorAttributeFormHTML(html, attributeName) { 20896 const { 20897 body 20898 } = document.implementation.createHTMLDocument(''); 20899 body.innerHTML = html; 20900 const { 20901 firstElementChild 20902 } = body; 20903 20904 if (firstElementChild && firstElementChild.nodeName === 'A') { 20905 return firstElementChild.getAttribute(attributeName) || undefined; 20906 } 20907 } 20908 20909 const imageSchema = { 20910 img: { 20911 attributes: ['src', 'alt', 'title'], 20912 classes: ['alignleft', 'aligncenter', 'alignright', 'alignnone', /^wp-image-\d+$/] 20913 } 20914 }; 20915 20916 const schema = _ref2 => { 20917 let { 20918 phrasingContentSchema 20919 } = _ref2; 20920 return { 20921 figure: { 20922 require: ['img'], 20923 children: { ...imageSchema, 20924 a: { 20925 attributes: ['href', 'rel', 'target'], 20926 children: imageSchema 20927 }, 20928 figcaption: { 20929 children: phrasingContentSchema 20930 } 20931 } 20932 } 20933 }; 20934 }; 20935 20936 const image_transforms_transforms = { 20937 from: [{ 20938 type: 'raw', 20939 isMatch: node => node.nodeName === 'FIGURE' && !!node.querySelector('img'), 20940 schema, 20941 transform: node => { 20942 // Search both figure and image classes. Alignment could be 20943 // set on either. ID is set on the image. 20944 const className = node.className + ' ' + node.querySelector('img').className; 20945 const alignMatches = /(?:^|\s)align(left|center|right)(?:$|\s)/.exec(className); 20946 const anchor = node.id === '' ? undefined : node.id; 20947 const align = alignMatches ? alignMatches[1] : undefined; 20948 const idMatches = /(?:^|\s)wp-image-(\d+)(?:$|\s)/.exec(className); 20949 const id = idMatches ? Number(idMatches[1]) : undefined; 20950 const anchorElement = node.querySelector('a'); 20951 const linkDestination = anchorElement && anchorElement.href ? 'custom' : undefined; 20952 const href = anchorElement && anchorElement.href ? anchorElement.href : undefined; 20953 const rel = anchorElement && anchorElement.rel ? anchorElement.rel : undefined; 20954 const linkClass = anchorElement && anchorElement.className ? anchorElement.className : undefined; 20955 const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/image', node.outerHTML, { 20956 align, 20957 id, 20958 linkDestination, 20959 href, 20960 rel, 20961 linkClass, 20962 anchor 20963 }); 20964 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', attributes); 20965 } 20966 }, { 20967 // Note: when dragging and dropping multiple files onto a gallery this overrides the 20968 // gallery transform in order to add new images to the gallery instead of 20969 // creating a new gallery. 20970 type: 'files', 20971 20972 isMatch(files) { 20973 // The following check is intended to catch non-image files when dropped together with images. 20974 if (files.some(file => file.type.indexOf('image/') === 0) && files.some(file => file.type.indexOf('image/') !== 0)) { 20975 const { 20976 createErrorNotice 20977 } = (0,external_wp_data_namespaceObject.dispatch)(external_wp_notices_namespaceObject.store); 20978 createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), { 20979 id: 'gallery-transform-invalid-file' 20980 }); 20981 } 20982 20983 return (0,external_lodash_namespaceObject.every)(files, file => file.type.indexOf('image/') === 0); 20984 }, 20985 20986 transform(files) { 20987 const blocks = files.map(file => { 20988 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { 20989 url: (0,external_wp_blob_namespaceObject.createBlobURL)(file) 20990 }); 20991 }); 20992 return blocks; 20993 } 20994 20995 }, { 20996 type: 'shortcode', 20997 tag: 'caption', 20998 attributes: { 20999 url: { 21000 type: 'string', 21001 source: 'attribute', 21002 attribute: 'src', 21003 selector: 'img' 21004 }, 21005 alt: { 21006 type: 'string', 21007 source: 'attribute', 21008 attribute: 'alt', 21009 selector: 'img' 21010 }, 21011 caption: { 21012 shortcode: stripFirstImage 21013 }, 21014 href: { 21015 shortcode: (attributes, _ref3) => { 21016 let { 21017 shortcode 21018 } = _ref3; 21019 return getFirstAnchorAttributeFormHTML(shortcode.content, 'href'); 21020 } 21021 }, 21022 rel: { 21023 shortcode: (attributes, _ref4) => { 21024 let { 21025 shortcode 21026 } = _ref4; 21027 return getFirstAnchorAttributeFormHTML(shortcode.content, 'rel'); 21028 } 21029 }, 21030 linkClass: { 21031 shortcode: (attributes, _ref5) => { 21032 let { 21033 shortcode 21034 } = _ref5; 21035 return getFirstAnchorAttributeFormHTML(shortcode.content, 'class'); 21036 } 21037 }, 21038 id: { 21039 type: 'number', 21040 shortcode: _ref6 => { 21041 let { 21042 named: { 21043 id 21044 } 21045 } = _ref6; 21046 21047 if (!id) { 21048 return; 21049 } 21050 21051 return parseInt(id.replace('attachment_', ''), 10); 21052 } 21053 }, 21054 align: { 21055 type: 'string', 21056 shortcode: _ref7 => { 21057 let { 21058 named: { 21059 align = 'alignnone' 21060 } 21061 } = _ref7; 21062 return align.replace('align', ''); 21063 } 21064 } 21065 } 21066 }] 21067 }; 21068 /* harmony default export */ var image_transforms = (image_transforms_transforms); 21069 21070 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/index.js 21071 /** 21072 * WordPress dependencies 21073 */ 21074 21075 21076 /** 21077 * Internal dependencies 21078 */ 21079 21080 21081 21082 const image_metadata = { 21083 $schema: "https://schemas.wp.org/trunk/block.json", 21084 apiVersion: 2, 21085 name: "core/image", 21086 title: "Image", 21087 category: "media", 21088 usesContext: ["allowResize", "imageCrop", "fixedHeight"], 21089 description: "Insert an image to make a visual statement.", 21090 keywords: ["img", "photo", "picture"], 21091 textdomain: "default", 21092 attributes: { 21093 align: { 21094 type: "string" 21095 }, 21096 url: { 21097 type: "string", 21098 source: "attribute", 21099 selector: "img", 21100 attribute: "src" 21101 }, 21102 alt: { 21103 type: "string", 21104 source: "attribute", 21105 selector: "img", 21106 attribute: "alt", 21107 "default": "" 21108 }, 21109 caption: { 21110 type: "string", 21111 source: "html", 21112 selector: "figcaption" 21113 }, 21114 title: { 21115 type: "string", 21116 source: "attribute", 21117 selector: "img", 21118 attribute: "title" 21119 }, 21120 href: { 21121 type: "string", 21122 source: "attribute", 21123 selector: "figure > a", 21124 attribute: "href" 21125 }, 21126 rel: { 21127 type: "string", 21128 source: "attribute", 21129 selector: "figure > a", 21130 attribute: "rel" 21131 }, 21132 linkClass: { 21133 type: "string", 21134 source: "attribute", 21135 selector: "figure > a", 21136 attribute: "class" 21137 }, 21138 id: { 21139 type: "number" 21140 }, 21141 width: { 21142 type: "number" 21143 }, 21144 height: { 21145 type: "number" 21146 }, 21147 sizeSlug: { 21148 type: "string" 21149 }, 21150 linkDestination: { 21151 type: "string" 21152 }, 21153 linkTarget: { 21154 type: "string", 21155 source: "attribute", 21156 selector: "figure > a", 21157 attribute: "target" 21158 } 21159 }, 21160 supports: { 21161 anchor: true, 21162 color: { 21163 __experimentalDuotone: "img", 21164 text: false, 21165 background: false 21166 }, 21167 __experimentalBorder: { 21168 radius: true, 21169 __experimentalDefaultControls: { 21170 radius: true 21171 } 21172 } 21173 }, 21174 styles: [{ 21175 name: "default", 21176 label: "Default", 21177 isDefault: true 21178 }, { 21179 name: "rounded", 21180 label: "Rounded" 21181 }], 21182 editorStyle: "wp-block-image-editor", 21183 style: "wp-block-image" 21184 }; 21185 21186 21187 const { 21188 name: image_name 21189 } = image_metadata; 21190 21191 const image_settings = { 21192 icon: library_image, 21193 example: { 21194 attributes: { 21195 sizeSlug: 'large', 21196 url: 'https://s.w.org/images/core/5.3/MtBlanc1.jpg', 21197 // translators: Caption accompanying an image of the Mont Blanc, which serves as an example for the Image block. 21198 caption: (0,external_wp_i18n_namespaceObject.__)('Mont Blanc appears—still, snowy, and serene.') 21199 } 21200 }, 21201 21202 __experimentalLabel(attributes, _ref) { 21203 let { 21204 context 21205 } = _ref; 21206 21207 if (context === 'accessibility') { 21208 const { 21209 caption, 21210 alt, 21211 url 21212 } = attributes; 21213 21214 if (!url) { 21215 return (0,external_wp_i18n_namespaceObject.__)('Empty'); 21216 } 21217 21218 if (!alt) { 21219 return caption || ''; 21220 } // This is intended to be read by a screen reader. 21221 // A period simply means a pause, no need to translate it. 21222 21223 21224 return alt + (caption ? '. ' + caption : ''); 21225 } 21226 }, 21227 21228 getEditWrapperProps(attributes) { 21229 return { 21230 'data-align': attributes.align 21231 }; 21232 }, 21233 21234 transforms: image_transforms, 21235 edit: image_edit, 21236 save: image_save_save, 21237 deprecated: image_deprecated 21238 }; 21239 21240 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment.js 21241 21242 21243 /** 21244 * WordPress dependencies 21245 */ 21246 21247 const comment = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 21248 viewBox: "0 0 24 24", 21249 xmlns: "http://www.w3.org/2000/svg" 21250 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 21251 d: "M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z" 21252 })); 21253 /* harmony default export */ var library_comment = (comment); 21254 21255 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-comments/edit.js 21256 21257 21258 /** 21259 * WordPress dependencies 21260 */ 21261 21262 21263 21264 21265 /** 21266 * Minimum number of comments a user can show using this block. 21267 * 21268 * @type {number} 21269 */ 21270 21271 const MIN_COMMENTS = 1; 21272 /** 21273 * Maximum number of comments a user can show using this block. 21274 * 21275 * @type {number} 21276 */ 21277 21278 const MAX_COMMENTS = 100; 21279 function LatestComments(_ref) { 21280 let { 21281 attributes, 21282 setAttributes 21283 } = _ref; 21284 const { 21285 commentsToShow, 21286 displayAvatar, 21287 displayDate, 21288 displayExcerpt 21289 } = attributes; 21290 return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 21291 title: (0,external_wp_i18n_namespaceObject.__)('Latest comments settings') 21292 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 21293 label: (0,external_wp_i18n_namespaceObject.__)('Display avatar'), 21294 checked: displayAvatar, 21295 onChange: () => setAttributes({ 21296 displayAvatar: !displayAvatar 21297 }) 21298 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 21299 label: (0,external_wp_i18n_namespaceObject.__)('Display date'), 21300 checked: displayDate, 21301 onChange: () => setAttributes({ 21302 displayDate: !displayDate 21303 }) 21304 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 21305 label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'), 21306 checked: displayExcerpt, 21307 onChange: () => setAttributes({ 21308 displayExcerpt: !displayExcerpt 21309 }) 21310 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 21311 label: (0,external_wp_i18n_namespaceObject.__)('Number of comments'), 21312 value: commentsToShow, 21313 onChange: value => setAttributes({ 21314 commentsToShow: value 21315 }), 21316 min: MIN_COMMENTS, 21317 max: MAX_COMMENTS, 21318 required: true 21319 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, null, (0,external_wp_element_namespaceObject.createElement)((external_wp_serverSideRender_default()), { 21320 block: "core/latest-comments", 21321 attributes: attributes // The preview uses the site's locale to make it more true to how 21322 // the block appears on the frontend. Setting the locale 21323 // explicitly prevents any middleware from setting it to 'user'. 21324 , 21325 urlQueryArgs: { 21326 _locale: 'site' 21327 } 21328 }))); 21329 } 21330 21331 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js 21332 /** 21333 * WordPress dependencies 21334 */ 21335 21336 /** 21337 * Internal dependencies 21338 */ 21339 21340 const latest_comments_metadata = { 21341 $schema: "https://schemas.wp.org/trunk/block.json", 21342 apiVersion: 2, 21343 name: "core/latest-comments", 21344 title: "Latest Comments", 21345 category: "widgets", 21346 description: "Display a list of your most recent comments.", 21347 keywords: ["recent comments"], 21348 textdomain: "default", 21349 attributes: { 21350 commentsToShow: { 21351 type: "number", 21352 "default": 5, 21353 minimum: 1, 21354 maximum: 100 21355 }, 21356 displayAvatar: { 21357 type: "boolean", 21358 "default": true 21359 }, 21360 displayDate: { 21361 type: "boolean", 21362 "default": true 21363 }, 21364 displayExcerpt: { 21365 type: "boolean", 21366 "default": true 21367 } 21368 }, 21369 supports: { 21370 align: true, 21371 html: false 21372 }, 21373 editorStyle: "wp-block-latest-comments-editor", 21374 style: "wp-block-latest-comments" 21375 }; 21376 21377 const { 21378 name: latest_comments_name 21379 } = latest_comments_metadata; 21380 21381 const latest_comments_settings = { 21382 icon: library_comment, 21383 example: {}, 21384 edit: LatestComments 21385 }; 21386 21387 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-list.js 21388 21389 21390 /** 21391 * WordPress dependencies 21392 */ 21393 21394 const postList = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 21395 viewBox: "0 0 24 24", 21396 xmlns: "http://www.w3.org/2000/svg" 21397 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 21398 d: "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12zM7 11h2V9H7v2zm0 4h2v-2H7v2zm3-4h7V9h-7v2zm0 4h7v-2h-7v2z" 21399 })); 21400 /* harmony default export */ var post_list = (postList); 21401 21402 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/deprecated.js 21403 /** 21404 * Internal dependencies 21405 */ 21406 const latest_posts_deprecated_metadata = { 21407 $schema: "https://schemas.wp.org/trunk/block.json", 21408 apiVersion: 2, 21409 name: "core/latest-posts", 21410 title: "Latest Posts", 21411 category: "widgets", 21412 description: "Display a list of your most recent posts.", 21413 keywords: ["recent posts"], 21414 textdomain: "default", 21415 attributes: { 21416 categories: { 21417 type: "array", 21418 items: { 21419 type: "object" 21420 } 21421 }, 21422 selectedAuthor: { 21423 type: "number" 21424 }, 21425 postsToShow: { 21426 type: "number", 21427 "default": 5 21428 }, 21429 displayPostContent: { 21430 type: "boolean", 21431 "default": false 21432 }, 21433 displayPostContentRadio: { 21434 type: "string", 21435 "default": "excerpt" 21436 }, 21437 excerptLength: { 21438 type: "number", 21439 "default": 55 21440 }, 21441 displayAuthor: { 21442 type: "boolean", 21443 "default": false 21444 }, 21445 displayPostDate: { 21446 type: "boolean", 21447 "default": false 21448 }, 21449 postLayout: { 21450 type: "string", 21451 "default": "list" 21452 }, 21453 columns: { 21454 type: "number", 21455 "default": 3 21456 }, 21457 order: { 21458 type: "string", 21459 "default": "desc" 21460 }, 21461 orderBy: { 21462 type: "string", 21463 "default": "date" 21464 }, 21465 displayFeaturedImage: { 21466 type: "boolean", 21467 "default": false 21468 }, 21469 featuredImageAlign: { 21470 type: "string", 21471 "enum": ["left", "center", "right"] 21472 }, 21473 featuredImageSizeSlug: { 21474 type: "string", 21475 "default": "thumbnail" 21476 }, 21477 featuredImageSizeWidth: { 21478 type: "number", 21479 "default": null 21480 }, 21481 featuredImageSizeHeight: { 21482 type: "number", 21483 "default": null 21484 }, 21485 addLinkToFeaturedImage: { 21486 type: "boolean", 21487 "default": false 21488 } 21489 }, 21490 supports: { 21491 align: true, 21492 html: false 21493 }, 21494 editorStyle: "wp-block-latest-posts-editor", 21495 style: "wp-block-latest-posts" 21496 }; 21497 const { 21498 attributes 21499 } = latest_posts_deprecated_metadata; 21500 /* harmony default export */ var latest_posts_deprecated = ([{ 21501 attributes: { ...attributes, 21502 categories: { 21503 type: 'string' 21504 } 21505 }, 21506 supports: { 21507 align: true, 21508 html: false 21509 }, 21510 migrate: oldAttributes => { 21511 // This needs the full category object, not just the ID. 21512 return { ...oldAttributes, 21513 categories: [{ 21514 id: Number(oldAttributes.categories) 21515 }] 21516 }; 21517 }, 21518 isEligible: _ref => { 21519 let { 21520 categories 21521 } = _ref; 21522 return categories && 'string' === typeof categories; 21523 }, 21524 save: () => null 21525 }]); 21526 21527 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/list.js 21528 21529 21530 /** 21531 * WordPress dependencies 21532 */ 21533 21534 const list = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 21535 viewBox: "0 0 24 24", 21536 xmlns: "http://www.w3.org/2000/svg" 21537 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 21538 d: "M4 4v1.5h16V4H4zm8 8.5h8V11h-8v1.5zM4 20h16v-1.5H4V20zm4-8c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2z" 21539 })); 21540 /* harmony default export */ var library_list = (list); 21541 21542 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/grid.js 21543 21544 21545 /** 21546 * WordPress dependencies 21547 */ 21548 21549 const grid = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 21550 xmlns: "http://www.w3.org/2000/svg", 21551 viewBox: "0 0 24 24" 21552 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 21553 d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7.8 16.5H5c-.3 0-.5-.2-.5-.5v-6.2h6.8v6.7zm0-8.3H4.5V5c0-.3.2-.5.5-.5h6.2v6.7zm8.3 7.8c0 .3-.2.5-.5.5h-6.2v-6.8h6.8V19zm0-7.8h-6.8V4.5H19c.3 0 .5.2.5.5v6.2z", 21554 fillRule: "evenodd", 21555 clipRule: "evenodd" 21556 })); 21557 /* harmony default export */ var library_grid = (grid); 21558 21559 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/constants.js 21560 const MIN_EXCERPT_LENGTH = 10; 21561 const MAX_EXCERPT_LENGTH = 100; 21562 const MAX_POSTS_COLUMNS = 6; 21563 21564 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/edit.js 21565 21566 21567 /** 21568 * External dependencies 21569 */ 21570 21571 21572 /** 21573 * WordPress dependencies 21574 */ 21575 21576 21577 21578 21579 21580 21581 21582 21583 /** 21584 * Internal dependencies 21585 */ 21586 21587 21588 /** 21589 * Module Constants 21590 */ 21591 21592 const CATEGORIES_LIST_QUERY = { 21593 per_page: -1, 21594 context: 'view' 21595 }; 21596 const USERS_LIST_QUERY = { 21597 per_page: -1, 21598 has_published_posts: ['post'], 21599 context: 'view' 21600 }; 21601 21602 function getFeaturedImageDetails(post, size) { 21603 var _image$media_details$, _image$media_details, _image$media_details$2, _image$media_details$3; 21604 21605 const image = (0,external_lodash_namespaceObject.get)(post, ['_embedded', 'wp:featuredmedia', '0']); 21606 return { 21607 url: (_image$media_details$ = image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$2 = _image$media_details.sizes) === null || _image$media_details$2 === void 0 ? void 0 : (_image$media_details$3 = _image$media_details$2[size]) === null || _image$media_details$3 === void 0 ? void 0 : _image$media_details$3.source_url) !== null && _image$media_details$ !== void 0 ? _image$media_details$ : image === null || image === void 0 ? void 0 : image.source_url, 21608 alt: image === null || image === void 0 ? void 0 : image.alt_text 21609 }; 21610 } 21611 21612 function LatestPostsEdit(_ref) { 21613 var _categoriesList$reduc; 21614 21615 let { 21616 attributes, 21617 setAttributes 21618 } = _ref; 21619 const { 21620 postsToShow, 21621 order, 21622 orderBy, 21623 categories, 21624 selectedAuthor, 21625 displayFeaturedImage, 21626 displayPostContentRadio, 21627 displayPostContent, 21628 displayPostDate, 21629 displayAuthor, 21630 postLayout, 21631 columns, 21632 excerptLength, 21633 featuredImageAlign, 21634 featuredImageSizeSlug, 21635 featuredImageSizeWidth, 21636 featuredImageSizeHeight, 21637 addLinkToFeaturedImage 21638 } = attributes; 21639 const { 21640 imageSizes, 21641 latestPosts, 21642 defaultImageWidth, 21643 defaultImageHeight, 21644 categoriesList, 21645 authorList 21646 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 21647 const { 21648 getEntityRecords, 21649 getUsers 21650 } = select(external_wp_coreData_namespaceObject.store); 21651 const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings(); 21652 const catIds = categories && categories.length > 0 ? categories.map(cat => cat.id) : []; 21653 const latestPostsQuery = (0,external_lodash_namespaceObject.pickBy)({ 21654 categories: catIds, 21655 author: selectedAuthor, 21656 order, 21657 orderby: orderBy, 21658 per_page: postsToShow, 21659 _embed: 'wp:featuredmedia' 21660 }, value => !(0,external_lodash_namespaceObject.isUndefined)(value)); 21661 return { 21662 defaultImageWidth: (0,external_lodash_namespaceObject.get)(settings.imageDimensions, [featuredImageSizeSlug, 'width'], 0), 21663 defaultImageHeight: (0,external_lodash_namespaceObject.get)(settings.imageDimensions, [featuredImageSizeSlug, 'height'], 0), 21664 imageSizes: settings.imageSizes, 21665 latestPosts: getEntityRecords('postType', 'post', latestPostsQuery), 21666 categoriesList: getEntityRecords('taxonomy', 'category', CATEGORIES_LIST_QUERY), 21667 authorList: getUsers(USERS_LIST_QUERY) 21668 }; 21669 }, [featuredImageSizeSlug, postsToShow, order, orderBy, categories, selectedAuthor]); 21670 const imageSizeOptions = imageSizes.filter(_ref2 => { 21671 let { 21672 slug 21673 } = _ref2; 21674 return slug !== 'full'; 21675 }).map(_ref3 => { 21676 let { 21677 name, 21678 slug 21679 } = _ref3; 21680 return { 21681 value: slug, 21682 label: name 21683 }; 21684 }); 21685 const categorySuggestions = (_categoriesList$reduc = categoriesList === null || categoriesList === void 0 ? void 0 : categoriesList.reduce((accumulator, category) => ({ ...accumulator, 21686 [category.name]: category 21687 }), {})) !== null && _categoriesList$reduc !== void 0 ? _categoriesList$reduc : {}; 21688 21689 const selectCategories = tokens => { 21690 const hasNoSuggestion = tokens.some(token => typeof token === 'string' && !categorySuggestions[token]); 21691 21692 if (hasNoSuggestion) { 21693 return; 21694 } // Categories that are already will be objects, while new additions will be strings (the name). 21695 // allCategories nomalizes the array so that they are all objects. 21696 21697 21698 const allCategories = tokens.map(token => { 21699 return typeof token === 'string' ? categorySuggestions[token] : token; 21700 }); // We do nothing if the category is not selected 21701 // from suggestions. 21702 21703 if ((0,external_lodash_namespaceObject.includes)(allCategories, null)) { 21704 return false; 21705 } 21706 21707 setAttributes({ 21708 categories: allCategories 21709 }); 21710 }; 21711 21712 const hasPosts = !!(latestPosts !== null && latestPosts !== void 0 && latestPosts.length); 21713 const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 21714 title: (0,external_wp_i18n_namespaceObject.__)('Post content settings') 21715 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 21716 label: (0,external_wp_i18n_namespaceObject.__)('Post content'), 21717 checked: displayPostContent, 21718 onChange: value => setAttributes({ 21719 displayPostContent: value 21720 }) 21721 }), displayPostContent && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RadioControl, { 21722 label: (0,external_wp_i18n_namespaceObject.__)('Show:'), 21723 selected: displayPostContentRadio, 21724 options: [{ 21725 label: (0,external_wp_i18n_namespaceObject.__)('Excerpt'), 21726 value: 'excerpt' 21727 }, { 21728 label: (0,external_wp_i18n_namespaceObject.__)('Full post'), 21729 value: 'full_post' 21730 }], 21731 onChange: value => setAttributes({ 21732 displayPostContentRadio: value 21733 }) 21734 }), displayPostContent && displayPostContentRadio === 'excerpt' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 21735 label: (0,external_wp_i18n_namespaceObject.__)('Max number of words in excerpt'), 21736 value: excerptLength, 21737 onChange: value => setAttributes({ 21738 excerptLength: value 21739 }), 21740 min: MIN_EXCERPT_LENGTH, 21741 max: MAX_EXCERPT_LENGTH 21742 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 21743 title: (0,external_wp_i18n_namespaceObject.__)('Post meta settings') 21744 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 21745 label: (0,external_wp_i18n_namespaceObject.__)('Display author name'), 21746 checked: displayAuthor, 21747 onChange: value => setAttributes({ 21748 displayAuthor: value 21749 }) 21750 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 21751 label: (0,external_wp_i18n_namespaceObject.__)('Display post date'), 21752 checked: displayPostDate, 21753 onChange: value => setAttributes({ 21754 displayPostDate: value 21755 }) 21756 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 21757 title: (0,external_wp_i18n_namespaceObject.__)('Featured image settings') 21758 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 21759 label: (0,external_wp_i18n_namespaceObject.__)('Display featured image'), 21760 checked: displayFeaturedImage, 21761 onChange: value => setAttributes({ 21762 displayFeaturedImage: value 21763 }) 21764 }), displayFeaturedImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, { 21765 onChange: value => { 21766 const newAttrs = {}; 21767 21768 if (value.hasOwnProperty('width')) { 21769 newAttrs.featuredImageSizeWidth = value.width; 21770 } 21771 21772 if (value.hasOwnProperty('height')) { 21773 newAttrs.featuredImageSizeHeight = value.height; 21774 } 21775 21776 setAttributes(newAttrs); 21777 }, 21778 slug: featuredImageSizeSlug, 21779 width: featuredImageSizeWidth, 21780 height: featuredImageSizeHeight, 21781 imageWidth: defaultImageWidth, 21782 imageHeight: defaultImageHeight, 21783 imageSizeOptions: imageSizeOptions, 21784 onChangeImage: value => setAttributes({ 21785 featuredImageSizeSlug: value, 21786 featuredImageSizeWidth: undefined, 21787 featuredImageSizeHeight: undefined 21788 }) 21789 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, { 21790 className: "editor-latest-posts-image-alignment-control" 21791 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, null, (0,external_wp_i18n_namespaceObject.__)('Image alignment')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockAlignmentToolbar, { 21792 value: featuredImageAlign, 21793 onChange: value => setAttributes({ 21794 featuredImageAlign: value 21795 }), 21796 controls: ['left', 'center', 'right'], 21797 isCollapsed: false 21798 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 21799 label: (0,external_wp_i18n_namespaceObject.__)('Add link to featured image'), 21800 checked: addLinkToFeaturedImage, 21801 onChange: value => setAttributes({ 21802 addLinkToFeaturedImage: value 21803 }) 21804 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 21805 title: (0,external_wp_i18n_namespaceObject.__)('Sorting and filtering') 21806 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.QueryControls, { 21807 order, 21808 orderBy, 21809 numberOfItems: postsToShow, 21810 onOrderChange: value => setAttributes({ 21811 order: value 21812 }), 21813 onOrderByChange: value => setAttributes({ 21814 orderBy: value 21815 }), 21816 onNumberOfItemsChange: value => setAttributes({ 21817 postsToShow: value 21818 }), 21819 categorySuggestions: categorySuggestions, 21820 onCategoryChange: selectCategories, 21821 selectedCategories: categories, 21822 onAuthorChange: value => setAttributes({ 21823 selectedAuthor: '' !== value ? Number(value) : undefined 21824 }), 21825 authorList: authorList !== null && authorList !== void 0 ? authorList : [], 21826 selectedAuthorId: selectedAuthor 21827 }), postLayout === 'grid' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 21828 label: (0,external_wp_i18n_namespaceObject.__)('Columns'), 21829 value: columns, 21830 onChange: value => setAttributes({ 21831 columns: value 21832 }), 21833 min: 2, 21834 max: !hasPosts ? MAX_POSTS_COLUMNS : Math.min(MAX_POSTS_COLUMNS, latestPosts.length), 21835 required: true 21836 }))); 21837 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 21838 className: classnames_default()({ 21839 'wp-block-latest-posts__list': true, 21840 'is-grid': postLayout === 'grid', 21841 'has-dates': displayPostDate, 21842 'has-author': displayAuthor, 21843 [`columns-$columns}`]: postLayout === 'grid' 21844 }) 21845 }); 21846 21847 if (!hasPosts) { 21848 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, inspectorControls, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 21849 icon: library_pin, 21850 label: (0,external_wp_i18n_namespaceObject.__)('Latest Posts') 21851 }, !Array.isArray(latestPosts) ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null) : (0,external_wp_i18n_namespaceObject.__)('No posts found.'))); 21852 } // Removing posts from display should be instant. 21853 21854 21855 const displayPosts = latestPosts.length > postsToShow ? latestPosts.slice(0, postsToShow) : latestPosts; 21856 const layoutControls = [{ 21857 icon: library_list, 21858 title: (0,external_wp_i18n_namespaceObject.__)('List view'), 21859 onClick: () => setAttributes({ 21860 postLayout: 'list' 21861 }), 21862 isActive: postLayout === 'list' 21863 }, { 21864 icon: library_grid, 21865 title: (0,external_wp_i18n_namespaceObject.__)('Grid view'), 21866 onClick: () => setAttributes({ 21867 postLayout: 'grid' 21868 }), 21869 isActive: postLayout === 'grid' 21870 }]; 21871 21872 const dateFormat = (0,external_wp_date_namespaceObject.__experimentalGetSettings)().formats.date; 21873 21874 return (0,external_wp_element_namespaceObject.createElement)("div", null, inspectorControls, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { 21875 controls: layoutControls 21876 })), (0,external_wp_element_namespaceObject.createElement)("ul", blockProps, displayPosts.map((post, i) => { 21877 const titleTrimmed = (0,external_lodash_namespaceObject.invoke)(post, ['title', 'rendered', 'trim']); 21878 let excerpt = post.excerpt.rendered; 21879 const currentAuthor = authorList === null || authorList === void 0 ? void 0 : authorList.find(author => author.id === post.author); 21880 const excerptElement = document.createElement('div'); 21881 excerptElement.innerHTML = excerpt; 21882 excerpt = excerptElement.textContent || excerptElement.innerText || ''; 21883 const { 21884 url: imageSourceUrl, 21885 alt: featuredImageAlt 21886 } = getFeaturedImageDetails(post, featuredImageSizeSlug); 21887 const imageClasses = classnames_default()({ 21888 'wp-block-latest-posts__featured-image': true, 21889 [`align$featuredImageAlign}`]: !!featuredImageAlign 21890 }); 21891 const renderFeaturedImage = displayFeaturedImage && imageSourceUrl; 21892 const featuredImage = renderFeaturedImage && (0,external_wp_element_namespaceObject.createElement)("img", { 21893 src: imageSourceUrl, 21894 alt: featuredImageAlt, 21895 style: { 21896 maxWidth: featuredImageSizeWidth, 21897 maxHeight: featuredImageSizeHeight 21898 } 21899 }); 21900 const needsReadMore = excerptLength < excerpt.trim().split(' ').length && post.excerpt.raw === ''; 21901 const postExcerpt = needsReadMore ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, excerpt.trim().split(' ', excerptLength).join(' '), (0,external_wp_i18n_namespaceObject.__)(' … '), (0,external_wp_element_namespaceObject.createElement)("a", { 21902 href: post.link, 21903 rel: "noopener noreferrer" 21904 }, (0,external_wp_i18n_namespaceObject.__)('Read more'))) : excerpt; 21905 return (0,external_wp_element_namespaceObject.createElement)("li", { 21906 key: i 21907 }, renderFeaturedImage && (0,external_wp_element_namespaceObject.createElement)("div", { 21908 className: imageClasses 21909 }, addLinkToFeaturedImage ? (0,external_wp_element_namespaceObject.createElement)("a", { 21910 className: "wp-block-latest-posts__post-title", 21911 href: post.link, 21912 rel: "noreferrer noopener" 21913 }, featuredImage) : featuredImage), (0,external_wp_element_namespaceObject.createElement)("a", { 21914 href: post.link, 21915 rel: "noreferrer noopener", 21916 dangerouslySetInnerHTML: !!titleTrimmed ? { 21917 __html: titleTrimmed 21918 } : undefined 21919 }, !titleTrimmed ? (0,external_wp_i18n_namespaceObject.__)('(no title)') : null), displayAuthor && currentAuthor && (0,external_wp_element_namespaceObject.createElement)("div", { 21920 className: "wp-block-latest-posts__post-author" 21921 }, (0,external_wp_i18n_namespaceObject.sprintf)( 21922 /* translators: byline. %s: current author. */ 21923 (0,external_wp_i18n_namespaceObject.__)('by %s'), currentAuthor.name)), displayPostDate && post.date_gmt && (0,external_wp_element_namespaceObject.createElement)("time", { 21924 dateTime: (0,external_wp_date_namespaceObject.format)('c', post.date_gmt), 21925 className: "wp-block-latest-posts__post-date" 21926 }, (0,external_wp_date_namespaceObject.dateI18n)(dateFormat, post.date_gmt)), displayPostContent && displayPostContentRadio === 'excerpt' && (0,external_wp_element_namespaceObject.createElement)("div", { 21927 className: "wp-block-latest-posts__post-excerpt" 21928 }, postExcerpt), displayPostContent && displayPostContentRadio === 'full_post' && (0,external_wp_element_namespaceObject.createElement)("div", { 21929 className: "wp-block-latest-posts__post-full-content", 21930 dangerouslySetInnerHTML: { 21931 __html: post.content.raw.trim() 21932 } 21933 })); 21934 }))); 21935 } 21936 21937 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js 21938 /** 21939 * WordPress dependencies 21940 */ 21941 21942 /** 21943 * Internal dependencies 21944 */ 21945 21946 21947 21948 const latest_posts_metadata = { 21949 $schema: "https://schemas.wp.org/trunk/block.json", 21950 apiVersion: 2, 21951 name: "core/latest-posts", 21952 title: "Latest Posts", 21953 category: "widgets", 21954 description: "Display a list of your most recent posts.", 21955 keywords: ["recent posts"], 21956 textdomain: "default", 21957 attributes: { 21958 categories: { 21959 type: "array", 21960 items: { 21961 type: "object" 21962 } 21963 }, 21964 selectedAuthor: { 21965 type: "number" 21966 }, 21967 postsToShow: { 21968 type: "number", 21969 "default": 5 21970 }, 21971 displayPostContent: { 21972 type: "boolean", 21973 "default": false 21974 }, 21975 displayPostContentRadio: { 21976 type: "string", 21977 "default": "excerpt" 21978 }, 21979 excerptLength: { 21980 type: "number", 21981 "default": 55 21982 }, 21983 displayAuthor: { 21984 type: "boolean", 21985 "default": false 21986 }, 21987 displayPostDate: { 21988 type: "boolean", 21989 "default": false 21990 }, 21991 postLayout: { 21992 type: "string", 21993 "default": "list" 21994 }, 21995 columns: { 21996 type: "number", 21997 "default": 3 21998 }, 21999 order: { 22000 type: "string", 22001 "default": "desc" 22002 }, 22003 orderBy: { 22004 type: "string", 22005 "default": "date" 22006 }, 22007 displayFeaturedImage: { 22008 type: "boolean", 22009 "default": false 22010 }, 22011 featuredImageAlign: { 22012 type: "string", 22013 "enum": ["left", "center", "right"] 22014 }, 22015 featuredImageSizeSlug: { 22016 type: "string", 22017 "default": "thumbnail" 22018 }, 22019 featuredImageSizeWidth: { 22020 type: "number", 22021 "default": null 22022 }, 22023 featuredImageSizeHeight: { 22024 type: "number", 22025 "default": null 22026 }, 22027 addLinkToFeaturedImage: { 22028 type: "boolean", 22029 "default": false 22030 } 22031 }, 22032 supports: { 22033 align: true, 22034 html: false 22035 }, 22036 editorStyle: "wp-block-latest-posts-editor", 22037 style: "wp-block-latest-posts" 22038 }; 22039 const { 22040 name: latest_posts_name 22041 } = latest_posts_metadata; 22042 22043 const latest_posts_settings = { 22044 icon: post_list, 22045 example: {}, 22046 edit: LatestPostsEdit, 22047 deprecated: latest_posts_deprecated 22048 }; 22049 22050 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/deprecated.js 22051 22052 22053 /** 22054 * WordPress dependencies 22055 */ 22056 22057 /** 22058 * Internal dependencies 22059 */ 22060 22061 22062 const v0 = { 22063 attributes: { 22064 ordered: { 22065 type: 'boolean', 22066 default: false, 22067 __experimentalRole: 'content' 22068 }, 22069 values: { 22070 type: 'string', 22071 source: 'html', 22072 selector: 'ol,ul', 22073 multiline: 'li', 22074 __unstableMultilineWrapperTags: ['ol', 'ul'], 22075 default: '', 22076 __experimentalRole: 'content' 22077 }, 22078 type: { 22079 type: 'string' 22080 }, 22081 start: { 22082 type: 'number' 22083 }, 22084 reversed: { 22085 type: 'boolean' 22086 }, 22087 placeholder: { 22088 type: 'string' 22089 } 22090 }, 22091 supports: { 22092 anchor: true, 22093 className: false, 22094 typography: { 22095 fontSize: true, 22096 __experimentalFontFamily: true 22097 }, 22098 color: { 22099 gradients: true, 22100 link: true 22101 }, 22102 __unstablePasteTextInline: true, 22103 __experimentalSelector: 'ol,ul', 22104 __experimentalSlashInserter: true 22105 }, 22106 22107 save(_ref) { 22108 let { 22109 attributes 22110 } = _ref; 22111 const { 22112 ordered, 22113 values, 22114 type, 22115 reversed, 22116 start 22117 } = attributes; 22118 const TagName = ordered ? 'ol' : 'ul'; 22119 return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({ 22120 type, 22121 reversed, 22122 start 22123 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 22124 value: values, 22125 multiline: "li" 22126 })); 22127 }, 22128 22129 migrate: migrate_font_family, 22130 22131 isEligible(_ref2) { 22132 var _style$typography; 22133 22134 let { 22135 style 22136 } = _ref2; 22137 return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily; 22138 } 22139 22140 }; 22141 /** 22142 * New deprecations need to be placed first 22143 * for them to have higher priority. 22144 * 22145 * Old deprecations may need to be updated as well. 22146 * 22147 * See block-deprecation.md 22148 */ 22149 22150 /* harmony default export */ var list_deprecated = ([v0]); 22151 22152 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-bullets-rtl.js 22153 22154 22155 /** 22156 * WordPress dependencies 22157 */ 22158 22159 const formatListBulletsRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 22160 xmlns: "http://www.w3.org/2000/svg", 22161 viewBox: "0 0 24 24" 22162 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 22163 d: "M4 8.8h8.9V7.2H4v1.6zm0 7h8.9v-1.5H4v1.5zM18 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z" 22164 })); 22165 /* harmony default export */ var format_list_bullets_rtl = (formatListBulletsRTL); 22166 22167 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-bullets.js 22168 22169 22170 /** 22171 * WordPress dependencies 22172 */ 22173 22174 const formatListBullets = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 22175 xmlns: "http://www.w3.org/2000/svg", 22176 viewBox: "0 0 24 24" 22177 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 22178 d: "M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM6 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z" 22179 })); 22180 /* harmony default export */ var format_list_bullets = (formatListBullets); 22181 22182 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-numbered-rtl.js 22183 22184 22185 /** 22186 * WordPress dependencies 22187 */ 22188 22189 const formatListNumberedRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 22190 xmlns: "http://www.w3.org/2000/svg", 22191 viewBox: "0 0 24 24" 22192 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 22193 d: "M3.8 15.8h8.9v-1.5H3.8v1.5zm0-7h8.9V7.2H3.8v1.6zm14.7-2.1V10h1V5.3l-2.2.7.3 1 .9-.3zm1.2 6.1c-.5-.6-1.2-.5-1.7-.4-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5H20v-1h-.9c.3-.6.8-1.4.9-2.1 0-.3 0-.8-.3-1.1z" 22194 })); 22195 /* harmony default export */ var format_list_numbered_rtl = (formatListNumberedRTL); 22196 22197 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-numbered.js 22198 22199 22200 /** 22201 * WordPress dependencies 22202 */ 22203 22204 const formatListNumbered = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 22205 xmlns: "http://www.w3.org/2000/svg", 22206 viewBox: "0 0 24 24" 22207 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 22208 d: "M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM5 6.7V10h1V5.3L3.8 6l.4 1 .8-.3zm-.4 5.7c-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5h2.7v-1h-1c.3-.6.8-1.4.9-2.1.1-.3 0-.8-.2-1.1-.5-.6-1.3-.5-1.7-.4z" 22209 })); 22210 /* harmony default export */ var format_list_numbered = (formatListNumbered); 22211 22212 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-outdent-rtl.js 22213 22214 22215 /** 22216 * WordPress dependencies 22217 */ 22218 22219 const formatOutdentRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 22220 xmlns: "http://www.w3.org/2000/svg", 22221 viewBox: "0 0 24 24" 22222 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 22223 d: "M20 5.5H4V4H20V5.5ZM12 12.5H4V11H12V12.5ZM20 20V18.5H4V20H20ZM15.4697 14.9697L18.4393 12L15.4697 9.03033L16.5303 7.96967L20.0303 11.4697L20.5607 12L20.0303 12.5303L16.5303 16.0303L15.4697 14.9697Z" 22224 })); 22225 /* harmony default export */ var format_outdent_rtl = (formatOutdentRTL); 22226 22227 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-outdent.js 22228 22229 22230 /** 22231 * WordPress dependencies 22232 */ 22233 22234 const formatOutdent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 22235 xmlns: "http://www.w3.org/2000/svg", 22236 viewBox: "0 0 24 24" 22237 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 22238 d: "M4 7.2v1.5h16V7.2H4zm8 8.6h8v-1.5h-8v1.5zm-4-4.6l-4 4 4 4 1-1-3-3 3-3-1-1z" 22239 })); 22240 /* harmony default export */ var format_outdent = (formatOutdent); 22241 22242 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-indent-rtl.js 22243 22244 22245 /** 22246 * WordPress dependencies 22247 */ 22248 22249 const formatIndentRTL = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 22250 xmlns: "http://www.w3.org/2000/svg", 22251 viewBox: "0 0 24 24" 22252 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 22253 d: "M20 5.5H4V4H20V5.5ZM12 12.5H4V11H12V12.5ZM20 20V18.5H4V20H20ZM20.0303 9.03033L17.0607 12L20.0303 14.9697L18.9697 16.0303L15.4697 12.5303L14.9393 12L15.4697 11.4697L18.9697 7.96967L20.0303 9.03033Z" 22254 })); 22255 /* harmony default export */ var format_indent_rtl = (formatIndentRTL); 22256 22257 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-indent.js 22258 22259 22260 /** 22261 * WordPress dependencies 22262 */ 22263 22264 const formatIndent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 22265 xmlns: "http://www.w3.org/2000/svg", 22266 viewBox: "0 0 24 24" 22267 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 22268 d: "M4 7.2v1.5h16V7.2H4zm8 8.6h8v-1.5h-8v1.5zm-8-3.5l3 3-3 3 1 1 4-4-4-4-1 1z" 22269 })); 22270 /* harmony default export */ var format_indent = (formatIndent); 22271 22272 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/ordered-list-settings.js 22273 22274 22275 /** 22276 * WordPress dependencies 22277 */ 22278 22279 22280 22281 22282 const OrderedListSettings = _ref => { 22283 let { 22284 setAttributes, 22285 reversed, 22286 start 22287 } = _ref; 22288 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 22289 title: (0,external_wp_i18n_namespaceObject.__)('Ordered list settings') 22290 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 22291 label: (0,external_wp_i18n_namespaceObject.__)('Start value'), 22292 type: "number", 22293 onChange: value => { 22294 const int = parseInt(value, 10); 22295 setAttributes({ 22296 // It should be possible to unset the value, 22297 // e.g. with an empty string. 22298 start: isNaN(int) ? undefined : int 22299 }); 22300 }, 22301 value: Number.isInteger(start) ? start.toString(10) : '', 22302 step: "1" 22303 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 22304 label: (0,external_wp_i18n_namespaceObject.__)('Reverse list numbering'), 22305 checked: reversed || false, 22306 onChange: value => { 22307 setAttributes({ 22308 // Unset the attribute if not reversed. 22309 reversed: value || undefined 22310 }); 22311 } 22312 }))); 22313 }; 22314 22315 /* harmony default export */ var ordered_list_settings = (OrderedListSettings); 22316 22317 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/edit.js 22318 22319 22320 22321 /** 22322 * WordPress dependencies 22323 */ 22324 22325 22326 22327 22328 22329 22330 /** 22331 * Internal dependencies 22332 */ 22333 22334 22335 22336 function ListEdit(_ref) { 22337 let { 22338 attributes, 22339 setAttributes, 22340 mergeBlocks, 22341 onReplace, 22342 style 22343 } = _ref; 22344 const { 22345 ordered, 22346 values, 22347 type, 22348 reversed, 22349 start, 22350 placeholder 22351 } = attributes; 22352 const tagName = ordered ? 'ol' : 'ul'; 22353 22354 const controls = _ref2 => { 22355 let { 22356 value, 22357 onChange, 22358 onFocus 22359 } = _ref2; 22360 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, { 22361 type: "primary", 22362 character: "[", 22363 onUse: () => { 22364 onChange((0,external_wp_richText_namespaceObject.__unstableOutdentListItems)(value)); 22365 } 22366 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, { 22367 type: "primary", 22368 character: "]", 22369 onUse: () => { 22370 onChange((0,external_wp_richText_namespaceObject.__unstableIndentListItems)(value, { 22371 type: tagName 22372 })); 22373 } 22374 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, { 22375 type: "primary", 22376 character: "m", 22377 onUse: () => { 22378 onChange((0,external_wp_richText_namespaceObject.__unstableIndentListItems)(value, { 22379 type: tagName 22380 })); 22381 } 22382 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, { 22383 type: "primaryShift", 22384 character: "m", 22385 onUse: () => { 22386 onChange((0,external_wp_richText_namespaceObject.__unstableOutdentListItems)(value)); 22387 } 22388 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 22389 group: "block" 22390 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 22391 icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_bullets_rtl : format_list_bullets, 22392 title: (0,external_wp_i18n_namespaceObject.__)('Unordered'), 22393 describedBy: (0,external_wp_i18n_namespaceObject.__)('Convert to unordered list'), 22394 isActive: (0,external_wp_richText_namespaceObject.__unstableIsActiveListType)(value, 'ul', tagName), 22395 onClick: () => { 22396 onChange((0,external_wp_richText_namespaceObject.__unstableChangeListType)(value, { 22397 type: 'ul' 22398 })); 22399 onFocus(); 22400 22401 if ((0,external_wp_richText_namespaceObject.__unstableIsListRootSelected)(value)) { 22402 setAttributes({ 22403 ordered: false 22404 }); 22405 } 22406 } 22407 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 22408 icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_numbered_rtl : format_list_numbered, 22409 title: (0,external_wp_i18n_namespaceObject.__)('Ordered'), 22410 describedBy: (0,external_wp_i18n_namespaceObject.__)('Convert to ordered list'), 22411 isActive: (0,external_wp_richText_namespaceObject.__unstableIsActiveListType)(value, 'ol', tagName), 22412 onClick: () => { 22413 onChange((0,external_wp_richText_namespaceObject.__unstableChangeListType)(value, { 22414 type: 'ol' 22415 })); 22416 onFocus(); 22417 22418 if ((0,external_wp_richText_namespaceObject.__unstableIsListRootSelected)(value)) { 22419 setAttributes({ 22420 ordered: true 22421 }); 22422 } 22423 } 22424 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 22425 icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_outdent_rtl : format_outdent, 22426 title: (0,external_wp_i18n_namespaceObject.__)('Outdent'), 22427 describedBy: (0,external_wp_i18n_namespaceObject.__)('Outdent list item'), 22428 shortcut: (0,external_wp_i18n_namespaceObject._x)('Backspace', 'keyboard key'), 22429 isDisabled: !(0,external_wp_richText_namespaceObject.__unstableCanOutdentListItems)(value), 22430 onClick: () => { 22431 onChange((0,external_wp_richText_namespaceObject.__unstableOutdentListItems)(value)); 22432 onFocus(); 22433 } 22434 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 22435 icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_indent_rtl : format_indent, 22436 title: (0,external_wp_i18n_namespaceObject.__)('Indent'), 22437 describedBy: (0,external_wp_i18n_namespaceObject.__)('Indent list item'), 22438 shortcut: (0,external_wp_i18n_namespaceObject._x)('Space', 'keyboard key'), 22439 isDisabled: !(0,external_wp_richText_namespaceObject.__unstableCanIndentListItems)(value), 22440 onClick: () => { 22441 onChange((0,external_wp_richText_namespaceObject.__unstableIndentListItems)(value, { 22442 type: tagName 22443 })); 22444 onFocus(); 22445 } 22446 }))); 22447 }; 22448 22449 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 22450 style 22451 }); 22452 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({ 22453 identifier: "values", 22454 multiline: "li", 22455 tagName: tagName, 22456 onChange: nextValues => setAttributes({ 22457 values: nextValues 22458 }), 22459 value: values, 22460 "aria-label": (0,external_wp_i18n_namespaceObject.__)('List text'), 22461 placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('List'), 22462 onMerge: mergeBlocks, 22463 onSplit: value => (0,external_wp_blocks_namespaceObject.createBlock)(list_name, { ...attributes, 22464 values: value 22465 }), 22466 __unstableOnSplitMiddle: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'), 22467 onReplace: onReplace, 22468 onRemove: () => onReplace([]), 22469 start: start, 22470 reversed: reversed, 22471 type: type 22472 }, blockProps), controls), ordered && (0,external_wp_element_namespaceObject.createElement)(ordered_list_settings, { 22473 setAttributes: setAttributes, 22474 ordered: ordered, 22475 reversed: reversed, 22476 start: start, 22477 placeholder: placeholder 22478 })); 22479 } 22480 22481 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/save.js 22482 22483 22484 /** 22485 * WordPress dependencies 22486 */ 22487 22488 function list_save_save(_ref) { 22489 let { 22490 attributes 22491 } = _ref; 22492 const { 22493 ordered, 22494 values, 22495 type, 22496 reversed, 22497 start 22498 } = attributes; 22499 const TagName = ordered ? 'ol' : 'ul'; 22500 return (0,external_wp_element_namespaceObject.createElement)(TagName, external_wp_blockEditor_namespaceObject.useBlockProps.save({ 22501 type, 22502 reversed, 22503 start 22504 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 22505 value: values, 22506 multiline: "li" 22507 })); 22508 } 22509 22510 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/transforms.js 22511 /** 22512 * WordPress dependencies 22513 */ 22514 22515 22516 22517 function getListContentSchema(_ref) { 22518 let { 22519 phrasingContentSchema 22520 } = _ref; 22521 const listContentSchema = { ...phrasingContentSchema, 22522 ul: {}, 22523 ol: { 22524 attributes: ['type', 'start', 'reversed'] 22525 } 22526 }; // Recursion is needed. 22527 // Possible: ul > li > ul. 22528 // Impossible: ul > ul. 22529 22530 ['ul', 'ol'].forEach(tag => { 22531 listContentSchema[tag].children = { 22532 li: { 22533 children: listContentSchema 22534 } 22535 }; 22536 }); 22537 return listContentSchema; 22538 } 22539 22540 const list_transforms_transforms = { 22541 from: [{ 22542 type: 'block', 22543 isMultiBlock: true, 22544 blocks: ['core/paragraph', 'core/heading'], 22545 transform: blockAttributes => { 22546 return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', { 22547 values: (0,external_wp_richText_namespaceObject.toHTMLString)({ 22548 value: (0,external_wp_richText_namespaceObject.join)(blockAttributes.map(_ref2 => { 22549 let { 22550 content 22551 } = _ref2; 22552 const value = (0,external_wp_richText_namespaceObject.create)({ 22553 html: content 22554 }); 22555 22556 if (blockAttributes.length > 1) { 22557 return value; 22558 } // When converting only one block, transform 22559 // every line to a list item. 22560 22561 22562 return (0,external_wp_richText_namespaceObject.replace)(value, /\n/g, external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR); 22563 }), external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR), 22564 multilineTag: 'li' 22565 }), 22566 anchor: blockAttributes.anchor 22567 }); 22568 } 22569 }, { 22570 type: 'block', 22571 blocks: ['core/quote', 'core/pullquote'], 22572 transform: _ref3 => { 22573 let { 22574 value, 22575 anchor 22576 } = _ref3; 22577 return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', { 22578 values: (0,external_wp_richText_namespaceObject.toHTMLString)({ 22579 value: (0,external_wp_richText_namespaceObject.create)({ 22580 html: value, 22581 multilineTag: 'p' 22582 }), 22583 multilineTag: 'li' 22584 }), 22585 anchor 22586 }); 22587 } 22588 }, { 22589 type: 'raw', 22590 selector: 'ol,ul', 22591 schema: args => ({ 22592 ol: getListContentSchema(args).ol, 22593 ul: getListContentSchema(args).ul 22594 }), 22595 22596 transform(node) { 22597 const attributes = { 22598 ordered: node.nodeName === 'OL', 22599 anchor: node.id === '' ? undefined : node.id 22600 }; 22601 22602 if (attributes.ordered) { 22603 const type = node.getAttribute('type'); 22604 22605 if (type) { 22606 attributes.type = type; 22607 } 22608 22609 if (node.getAttribute('reversed') !== null) { 22610 attributes.reversed = true; 22611 } 22612 22613 const start = parseInt(node.getAttribute('start'), 10); 22614 22615 if (!isNaN(start) && ( // start=1 only makes sense if the list is reversed. 22616 start !== 1 || attributes.reversed)) { 22617 attributes.start = start; 22618 } 22619 } 22620 22621 return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', { ...(0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/list', node.outerHTML), 22622 ...attributes 22623 }); 22624 } 22625 22626 }, ...['*', '-'].map(prefix => ({ 22627 type: 'prefix', 22628 prefix, 22629 22630 transform(content) { 22631 return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', { 22632 values: `<li>$content}</li>` 22633 }); 22634 } 22635 22636 })), ...['1.', '1)'].map(prefix => ({ 22637 type: 'prefix', 22638 prefix, 22639 22640 transform(content) { 22641 return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', { 22642 ordered: true, 22643 values: `<li>$content}</li>` 22644 }); 22645 } 22646 22647 }))], 22648 to: [{ 22649 type: 'block', 22650 blocks: ['core/paragraph'], 22651 transform: _ref4 => { 22652 let { 22653 values 22654 } = _ref4; 22655 return (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({ 22656 html: values, 22657 multilineTag: 'li', 22658 multilineWrapperTags: ['ul', 'ol'] 22659 }), external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR).map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 22660 content: (0,external_wp_richText_namespaceObject.toHTMLString)({ 22661 value: piece 22662 }) 22663 })); 22664 } 22665 }, { 22666 type: 'block', 22667 blocks: ['core/heading'], 22668 transform: _ref5 => { 22669 let { 22670 values 22671 } = _ref5; 22672 return (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({ 22673 html: values, 22674 multilineTag: 'li', 22675 multilineWrapperTags: ['ul', 'ol'] 22676 }), external_wp_richText_namespaceObject.__UNSTABLE_LINE_SEPARATOR).map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', { 22677 content: (0,external_wp_richText_namespaceObject.toHTMLString)({ 22678 value: piece 22679 }) 22680 })); 22681 } 22682 }, { 22683 type: 'block', 22684 blocks: ['core/quote'], 22685 transform: _ref6 => { 22686 let { 22687 values, 22688 anchor 22689 } = _ref6; 22690 return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', { 22691 value: (0,external_wp_richText_namespaceObject.toHTMLString)({ 22692 value: (0,external_wp_richText_namespaceObject.create)({ 22693 html: values, 22694 multilineTag: 'li', 22695 multilineWrapperTags: ['ul', 'ol'] 22696 }), 22697 multilineTag: 'p' 22698 }), 22699 anchor 22700 }); 22701 } 22702 }, { 22703 type: 'block', 22704 blocks: ['core/pullquote'], 22705 transform: _ref7 => { 22706 let { 22707 values, 22708 anchor 22709 } = _ref7; 22710 return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', { 22711 value: (0,external_wp_richText_namespaceObject.toHTMLString)({ 22712 value: (0,external_wp_richText_namespaceObject.create)({ 22713 html: values, 22714 multilineTag: 'li', 22715 multilineWrapperTags: ['ul', 'ol'] 22716 }), 22717 multilineTag: 'p' 22718 }), 22719 anchor 22720 }); 22721 } 22722 }] 22723 }; 22724 /* harmony default export */ var list_transforms = (list_transforms_transforms); 22725 22726 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/index.js 22727 /** 22728 * WordPress dependencies 22729 */ 22730 22731 /** 22732 * Internal dependencies 22733 */ 22734 22735 22736 22737 const list_metadata = { 22738 $schema: "https://schemas.wp.org/trunk/block.json", 22739 apiVersion: 2, 22740 name: "core/list", 22741 title: "List", 22742 category: "text", 22743 description: "Create a bulleted or numbered list.", 22744 keywords: ["bullet list", "ordered list", "numbered list"], 22745 textdomain: "default", 22746 attributes: { 22747 ordered: { 22748 type: "boolean", 22749 "default": false, 22750 __experimentalRole: "content" 22751 }, 22752 values: { 22753 type: "string", 22754 source: "html", 22755 selector: "ol,ul", 22756 multiline: "li", 22757 __unstableMultilineWrapperTags: ["ol", "ul"], 22758 "default": "", 22759 __experimentalRole: "content" 22760 }, 22761 type: { 22762 type: "string" 22763 }, 22764 start: { 22765 type: "number" 22766 }, 22767 reversed: { 22768 type: "boolean" 22769 }, 22770 placeholder: { 22771 type: "string" 22772 } 22773 }, 22774 supports: { 22775 anchor: true, 22776 className: false, 22777 typography: { 22778 fontSize: true, 22779 __experimentalFontFamily: true, 22780 lineHeight: true, 22781 __experimentalFontStyle: true, 22782 __experimentalFontWeight: true, 22783 __experimentalLetterSpacing: true, 22784 __experimentalTextTransform: true, 22785 __experimentalDefaultControls: { 22786 fontSize: true 22787 } 22788 }, 22789 color: { 22790 gradients: true, 22791 link: true, 22792 __experimentalDefaultControls: { 22793 background: true, 22794 text: true 22795 } 22796 }, 22797 __unstablePasteTextInline: true, 22798 __experimentalSelector: "ol,ul", 22799 __experimentalSlashInserter: true 22800 }, 22801 editorStyle: "wp-block-list-editor", 22802 style: "wp-block-list" 22803 }; 22804 22805 22806 22807 const { 22808 name: list_name 22809 } = list_metadata; 22810 22811 const settingsV1 = { 22812 icon: library_list, 22813 example: { 22814 attributes: { 22815 values: '<li>Alice.</li><li>The White Rabbit.</li><li>The Cheshire Cat.</li><li>The Mad Hatter.</li><li>The Queen of Hearts.</li>' 22816 } 22817 }, 22818 transforms: list_transforms, 22819 22820 merge(attributes, attributesToMerge) { 22821 const { 22822 values 22823 } = attributesToMerge; 22824 22825 if (!values || values === '<li></li>') { 22826 return attributes; 22827 } 22828 22829 return { ...attributes, 22830 values: attributes.values + values 22831 }; 22832 }, 22833 22834 edit: ListEdit, 22835 save: list_save_save, 22836 deprecated: list_deprecated 22837 }; 22838 let list_settings = settingsV1; 22839 22840 if (false) { var _window; } 22841 22842 22843 22844 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/login.js 22845 22846 22847 /** 22848 * WordPress dependencies 22849 */ 22850 22851 const login = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 22852 xmlns: "http://www.w3.org/2000/svg", 22853 viewBox: "0 0 24 24" 22854 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 22855 d: "M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z" 22856 })); 22857 /* harmony default export */ var library_login = (login); 22858 22859 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/loginout/edit.js 22860 22861 22862 /** 22863 * WordPress dependencies 22864 */ 22865 22866 22867 22868 function LoginOutEdit(_ref) { 22869 let { 22870 attributes, 22871 setAttributes 22872 } = _ref; 22873 const { 22874 displayLoginAsForm, 22875 redirectToCurrent 22876 } = attributes; 22877 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 22878 title: (0,external_wp_i18n_namespaceObject.__)('Login/out settings') 22879 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 22880 label: (0,external_wp_i18n_namespaceObject.__)('Display login as form'), 22881 checked: displayLoginAsForm, 22882 onChange: () => setAttributes({ 22883 displayLoginAsForm: !displayLoginAsForm 22884 }) 22885 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 22886 label: (0,external_wp_i18n_namespaceObject.__)('Redirect to current URL'), 22887 checked: redirectToCurrent, 22888 onChange: () => setAttributes({ 22889 redirectToCurrent: !redirectToCurrent 22890 }) 22891 }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 22892 className: 'logged-in' 22893 }), (0,external_wp_element_namespaceObject.createElement)("a", { 22894 href: "#login-pseudo-link" 22895 }, (0,external_wp_i18n_namespaceObject.__)('Log out')))); 22896 } 22897 22898 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/loginout/index.js 22899 /** 22900 * WordPress dependencies 22901 */ 22902 22903 /** 22904 * Internal dependencies 22905 */ 22906 22907 22908 const loginout_metadata = { 22909 $schema: "https://schemas.wp.org/trunk/block.json", 22910 apiVersion: 2, 22911 name: "core/loginout", 22912 title: "Login/out", 22913 category: "theme", 22914 description: "Show login & logout links.", 22915 keywords: ["login", "logout", "form"], 22916 textdomain: "default", 22917 attributes: { 22918 displayLoginAsForm: { 22919 type: "boolean", 22920 "default": false 22921 }, 22922 redirectToCurrent: { 22923 type: "boolean", 22924 "default": true 22925 } 22926 }, 22927 supports: { 22928 className: true, 22929 typography: { 22930 fontSize: false 22931 } 22932 } 22933 }; 22934 const { 22935 name: loginout_name 22936 } = loginout_metadata; 22937 22938 const loginout_settings = { 22939 icon: library_login, 22940 edit: LoginOutEdit 22941 }; 22942 22943 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media-and-text.js 22944 22945 22946 /** 22947 * WordPress dependencies 22948 */ 22949 22950 const mediaAndText = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 22951 xmlns: "http://www.w3.org/2000/svg", 22952 viewBox: "0 0 24 24" 22953 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 22954 d: "M3 18h8V6H3v12zM14 7.5V9h7V7.5h-7zm0 5.3h7v-1.5h-7v1.5zm0 3.7h7V15h-7v1.5z" 22955 })); 22956 /* harmony default export */ var media_and_text = (mediaAndText); 22957 22958 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/media-container-icon.js 22959 22960 22961 /** 22962 * WordPress dependencies 22963 */ 22964 22965 /* harmony default export */ var media_container_icon = ((0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 22966 xmlns: "http://www.w3.org/2000/svg", 22967 viewBox: "0 0 24 24" 22968 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 22969 d: "M18 2l2 4h-2l-2-4h-3l2 4h-2l-2-4h-1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V2zm2 12H10V4.4L11.8 8H20z" 22970 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 22971 d: "M14 20H4V10h3V8H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3h-2z" 22972 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 22973 d: "M5 19h8l-1.59-2H9.24l-.84 1.1L7 16.3 5 19z" 22974 }))); 22975 22976 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/media-container.js 22977 22978 22979 22980 /** 22981 * External dependencies 22982 */ 22983 22984 22985 /** 22986 * WordPress dependencies 22987 */ 22988 22989 22990 22991 22992 22993 22994 22995 22996 /** 22997 * Internal dependencies 22998 */ 22999 23000 23001 /** 23002 * Constants 23003 */ 23004 23005 const media_container_ALLOWED_MEDIA_TYPES = ['image', 'video']; 23006 function imageFillStyles(url, focalPoint) { 23007 return url ? { 23008 backgroundImage: `url($url})`, 23009 backgroundPosition: focalPoint ? `$focalPoint.x * 100}% $focalPoint.y * 100}%` : `50% 50%` 23010 } : {}; 23011 } 23012 const ResizableBoxContainer = (0,external_wp_element_namespaceObject.forwardRef)((_ref, ref) => { 23013 let { 23014 isSelected, 23015 isStackedOnMobile, 23016 ...props 23017 } = _ref; 23018 const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('small', '<'); 23019 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, _extends({ 23020 ref: ref, 23021 showHandle: isSelected && (!isMobile || !isStackedOnMobile) 23022 }, props)); 23023 }); 23024 23025 function ToolbarEditButton(_ref2) { 23026 let { 23027 mediaId, 23028 mediaUrl, 23029 onSelectMedia 23030 } = _ref2; 23031 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 23032 group: "other" 23033 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, { 23034 mediaId: mediaId, 23035 mediaURL: mediaUrl, 23036 allowedTypes: media_container_ALLOWED_MEDIA_TYPES, 23037 accept: "image/*,video/*", 23038 onSelect: onSelectMedia 23039 })); 23040 } 23041 23042 function PlaceholderContainer(_ref3) { 23043 let { 23044 className, 23045 noticeOperations, 23046 noticeUI, 23047 mediaUrl, 23048 onSelectMedia 23049 } = _ref3; 23050 23051 const onUploadError = message => { 23052 noticeOperations.removeAllNotices(); 23053 noticeOperations.createErrorNotice(message); 23054 }; 23055 23056 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, { 23057 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { 23058 icon: media_container_icon 23059 }), 23060 labels: { 23061 title: (0,external_wp_i18n_namespaceObject.__)('Media area') 23062 }, 23063 className: className, 23064 onSelect: onSelectMedia, 23065 accept: "image/*,video/*", 23066 allowedTypes: media_container_ALLOWED_MEDIA_TYPES, 23067 notices: noticeUI, 23068 onError: onUploadError, 23069 disableMediaButtons: mediaUrl 23070 }); 23071 } 23072 23073 function MediaContainer(props, ref) { 23074 const { 23075 className, 23076 commitWidthChange, 23077 focalPoint, 23078 imageFill, 23079 isSelected, 23080 isStackedOnMobile, 23081 mediaAlt, 23082 mediaId, 23083 mediaPosition, 23084 mediaType, 23085 mediaUrl, 23086 mediaWidth, 23087 onSelectMedia, 23088 onWidthChange 23089 } = props; 23090 const isTemporaryMedia = !mediaId && (0,external_wp_blob_namespaceObject.isBlobURL)(mediaUrl); 23091 const { 23092 toggleSelection 23093 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 23094 23095 if (mediaUrl) { 23096 const onResizeStart = () => { 23097 toggleSelection(false); 23098 }; 23099 23100 const onResize = (event, direction, elt) => { 23101 onWidthChange(parseInt(elt.style.width)); 23102 }; 23103 23104 const onResizeStop = (event, direction, elt) => { 23105 toggleSelection(true); 23106 commitWidthChange(parseInt(elt.style.width)); 23107 }; 23108 23109 const enablePositions = { 23110 right: mediaPosition === 'left', 23111 left: mediaPosition === 'right' 23112 }; 23113 const backgroundStyles = mediaType === 'image' && imageFill ? imageFillStyles(mediaUrl, focalPoint) : {}; 23114 const mediaTypeRenderers = { 23115 image: () => (0,external_wp_element_namespaceObject.createElement)("img", { 23116 src: mediaUrl, 23117 alt: mediaAlt 23118 }), 23119 video: () => (0,external_wp_element_namespaceObject.createElement)("video", { 23120 controls: true, 23121 src: mediaUrl 23122 }) 23123 }; 23124 return (0,external_wp_element_namespaceObject.createElement)(ResizableBoxContainer, { 23125 as: "figure", 23126 className: classnames_default()(className, 'editor-media-container__resizer', { 23127 'is-transient': isTemporaryMedia 23128 }), 23129 style: backgroundStyles, 23130 size: { 23131 width: mediaWidth + '%' 23132 }, 23133 minWidth: "10%", 23134 maxWidth: "100%", 23135 enable: enablePositions, 23136 onResizeStart: onResizeStart, 23137 onResize: onResize, 23138 onResizeStop: onResizeStop, 23139 axis: "x", 23140 isSelected: isSelected, 23141 isStackedOnMobile: isStackedOnMobile, 23142 ref: ref 23143 }, (0,external_wp_element_namespaceObject.createElement)(ToolbarEditButton, { 23144 onSelectMedia: onSelectMedia, 23145 mediaUrl: mediaUrl, 23146 mediaId: mediaId 23147 }), (mediaTypeRenderers[mediaType] || external_lodash_namespaceObject.noop)(), isTemporaryMedia && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (0,external_wp_element_namespaceObject.createElement)(PlaceholderContainer, props)); 23148 } 23149 23150 return (0,external_wp_element_namespaceObject.createElement)(PlaceholderContainer, props); 23151 } 23152 23153 /* harmony default export */ var media_container = ((0,external_wp_components_namespaceObject.withNotices)((0,external_wp_element_namespaceObject.forwardRef)(MediaContainer))); 23154 23155 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/deprecated.js 23156 23157 23158 /** 23159 * External dependencies 23160 */ 23161 23162 23163 /** 23164 * WordPress dependencies 23165 */ 23166 23167 23168 /** 23169 * Internal dependencies 23170 */ 23171 23172 23173 const DEFAULT_MEDIA_WIDTH = 50; 23174 23175 const media_text_deprecated_migrateCustomColors = attributes => { 23176 if (!attributes.customBackgroundColor) { 23177 return attributes; 23178 } 23179 23180 const style = { 23181 color: { 23182 background: attributes.customBackgroundColor 23183 } 23184 }; 23185 return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customBackgroundColor']), 23186 style 23187 }; 23188 }; 23189 23190 const baseAttributes = { 23191 align: { 23192 type: 'string', 23193 default: 'wide' 23194 }, 23195 backgroundColor: { 23196 type: 'string' 23197 }, 23198 mediaAlt: { 23199 type: 'string', 23200 source: 'attribute', 23201 selector: 'figure img', 23202 attribute: 'alt', 23203 default: '' 23204 }, 23205 mediaPosition: { 23206 type: 'string', 23207 default: 'left' 23208 }, 23209 mediaId: { 23210 type: 'number' 23211 }, 23212 mediaType: { 23213 type: 'string' 23214 }, 23215 mediaWidth: { 23216 type: 'number', 23217 default: 50 23218 }, 23219 isStackedOnMobile: { 23220 type: 'boolean', 23221 default: true 23222 } 23223 }; 23224 /* harmony default export */ var media_text_deprecated = ([{ 23225 attributes: { ...baseAttributes, 23226 customBackgroundColor: { 23227 type: 'string' 23228 }, 23229 mediaLink: { 23230 type: 'string' 23231 }, 23232 linkDestination: { 23233 type: 'string' 23234 }, 23235 linkTarget: { 23236 type: 'string', 23237 source: 'attribute', 23238 selector: 'figure a', 23239 attribute: 'target' 23240 }, 23241 href: { 23242 type: 'string', 23243 source: 'attribute', 23244 selector: 'figure a', 23245 attribute: 'href' 23246 }, 23247 rel: { 23248 type: 'string', 23249 source: 'attribute', 23250 selector: 'figure a', 23251 attribute: 'rel' 23252 }, 23253 linkClass: { 23254 type: 'string', 23255 source: 'attribute', 23256 selector: 'figure a', 23257 attribute: 'class' 23258 }, 23259 verticalAlignment: { 23260 type: 'string' 23261 }, 23262 imageFill: { 23263 type: 'boolean' 23264 }, 23265 focalPoint: { 23266 type: 'object' 23267 } 23268 }, 23269 migrate: media_text_deprecated_migrateCustomColors, 23270 23271 save(_ref) { 23272 let { 23273 attributes 23274 } = _ref; 23275 const { 23276 backgroundColor, 23277 customBackgroundColor, 23278 isStackedOnMobile, 23279 mediaAlt, 23280 mediaPosition, 23281 mediaType, 23282 mediaUrl, 23283 mediaWidth, 23284 mediaId, 23285 verticalAlignment, 23286 imageFill, 23287 focalPoint, 23288 linkClass, 23289 href, 23290 linkTarget, 23291 rel 23292 } = attributes; 23293 const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel; 23294 let image = (0,external_wp_element_namespaceObject.createElement)("img", { 23295 src: mediaUrl, 23296 alt: mediaAlt, 23297 className: mediaId && mediaType === 'image' ? `wp-image-$mediaId}` : null 23298 }); 23299 23300 if (href) { 23301 image = (0,external_wp_element_namespaceObject.createElement)("a", { 23302 className: linkClass, 23303 href: href, 23304 target: linkTarget, 23305 rel: newRel 23306 }, image); 23307 } 23308 23309 const mediaTypeRenders = { 23310 image: () => image, 23311 video: () => (0,external_wp_element_namespaceObject.createElement)("video", { 23312 controls: true, 23313 src: mediaUrl 23314 }) 23315 }; 23316 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 23317 const className = classnames_default()({ 23318 'has-media-on-the-right': 'right' === mediaPosition, 23319 'has-background': backgroundClass || customBackgroundColor, 23320 [backgroundClass]: backgroundClass, 23321 'is-stacked-on-mobile': isStackedOnMobile, 23322 [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment, 23323 'is-image-fill': imageFill 23324 }); 23325 const backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {}; 23326 let gridTemplateColumns; 23327 23328 if (mediaWidth !== DEFAULT_MEDIA_WIDTH) { 23329 gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`; 23330 } 23331 23332 const style = { 23333 backgroundColor: backgroundClass ? undefined : customBackgroundColor, 23334 gridTemplateColumns 23335 }; 23336 return (0,external_wp_element_namespaceObject.createElement)("div", { 23337 className: className, 23338 style: style 23339 }, (0,external_wp_element_namespaceObject.createElement)("figure", { 23340 className: "wp-block-media-text__media", 23341 style: backgroundStyles 23342 }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", { 23343 className: "wp-block-media-text__content" 23344 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null))); 23345 } 23346 23347 }, { 23348 attributes: { ...baseAttributes, 23349 customBackgroundColor: { 23350 type: 'string' 23351 }, 23352 mediaUrl: { 23353 type: 'string', 23354 source: 'attribute', 23355 selector: 'figure video,figure img', 23356 attribute: 'src' 23357 }, 23358 verticalAlignment: { 23359 type: 'string' 23360 }, 23361 imageFill: { 23362 type: 'boolean' 23363 }, 23364 focalPoint: { 23365 type: 'object' 23366 } 23367 }, 23368 migrate: media_text_deprecated_migrateCustomColors, 23369 23370 save(_ref2) { 23371 let { 23372 attributes 23373 } = _ref2; 23374 const { 23375 backgroundColor, 23376 customBackgroundColor, 23377 isStackedOnMobile, 23378 mediaAlt, 23379 mediaPosition, 23380 mediaType, 23381 mediaUrl, 23382 mediaWidth, 23383 mediaId, 23384 verticalAlignment, 23385 imageFill, 23386 focalPoint 23387 } = attributes; 23388 const mediaTypeRenders = { 23389 image: () => (0,external_wp_element_namespaceObject.createElement)("img", { 23390 src: mediaUrl, 23391 alt: mediaAlt, 23392 className: mediaId && mediaType === 'image' ? `wp-image-$mediaId}` : null 23393 }), 23394 video: () => (0,external_wp_element_namespaceObject.createElement)("video", { 23395 controls: true, 23396 src: mediaUrl 23397 }) 23398 }; 23399 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 23400 const className = classnames_default()({ 23401 'has-media-on-the-right': 'right' === mediaPosition, 23402 [backgroundClass]: backgroundClass, 23403 'is-stacked-on-mobile': isStackedOnMobile, 23404 [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment, 23405 'is-image-fill': imageFill 23406 }); 23407 const backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {}; 23408 let gridTemplateColumns; 23409 23410 if (mediaWidth !== DEFAULT_MEDIA_WIDTH) { 23411 gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`; 23412 } 23413 23414 const style = { 23415 backgroundColor: backgroundClass ? undefined : customBackgroundColor, 23416 gridTemplateColumns 23417 }; 23418 return (0,external_wp_element_namespaceObject.createElement)("div", { 23419 className: className, 23420 style: style 23421 }, (0,external_wp_element_namespaceObject.createElement)("figure", { 23422 className: "wp-block-media-text__media", 23423 style: backgroundStyles 23424 }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", { 23425 className: "wp-block-media-text__content" 23426 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null))); 23427 } 23428 23429 }, { 23430 attributes: { ...baseAttributes, 23431 customBackgroundColor: { 23432 type: 'string' 23433 }, 23434 mediaUrl: { 23435 type: 'string', 23436 source: 'attribute', 23437 selector: 'figure video,figure img', 23438 attribute: 'src' 23439 } 23440 }, 23441 23442 save(_ref3) { 23443 let { 23444 attributes 23445 } = _ref3; 23446 const { 23447 backgroundColor, 23448 customBackgroundColor, 23449 isStackedOnMobile, 23450 mediaAlt, 23451 mediaPosition, 23452 mediaType, 23453 mediaUrl, 23454 mediaWidth 23455 } = attributes; 23456 const mediaTypeRenders = { 23457 image: () => (0,external_wp_element_namespaceObject.createElement)("img", { 23458 src: mediaUrl, 23459 alt: mediaAlt 23460 }), 23461 video: () => (0,external_wp_element_namespaceObject.createElement)("video", { 23462 controls: true, 23463 src: mediaUrl 23464 }) 23465 }; 23466 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 23467 const className = classnames_default()({ 23468 'has-media-on-the-right': 'right' === mediaPosition, 23469 [backgroundClass]: backgroundClass, 23470 'is-stacked-on-mobile': isStackedOnMobile 23471 }); 23472 let gridTemplateColumns; 23473 23474 if (mediaWidth !== DEFAULT_MEDIA_WIDTH) { 23475 gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`; 23476 } 23477 23478 const style = { 23479 backgroundColor: backgroundClass ? undefined : customBackgroundColor, 23480 gridTemplateColumns 23481 }; 23482 return (0,external_wp_element_namespaceObject.createElement)("div", { 23483 className: className, 23484 style: style 23485 }, (0,external_wp_element_namespaceObject.createElement)("figure", { 23486 className: "wp-block-media-text__media" 23487 }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", { 23488 className: "wp-block-media-text__content" 23489 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null))); 23490 } 23491 23492 }]); 23493 23494 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pull-left.js 23495 23496 23497 /** 23498 * WordPress dependencies 23499 */ 23500 23501 const pullLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 23502 xmlns: "http://www.w3.org/2000/svg", 23503 viewBox: "0 0 24 24" 23504 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 23505 d: "M4 18h6V6H4v12zm9-9.5V10h7V8.5h-7zm0 7h7V14h-7v1.5z" 23506 })); 23507 /* harmony default export */ var pull_left = (pullLeft); 23508 23509 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pull-right.js 23510 23511 23512 /** 23513 * WordPress dependencies 23514 */ 23515 23516 const pullRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 23517 xmlns: "http://www.w3.org/2000/svg", 23518 viewBox: "0 0 24 24" 23519 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 23520 d: "M14 6v12h6V6h-6zM4 10h7V8.5H4V10zm0 5.5h7V14H4v1.5z" 23521 })); 23522 /* harmony default export */ var pull_right = (pullRight); 23523 23524 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/constants.js 23525 const DEFAULT_MEDIA_SIZE_SLUG = 'full'; 23526 23527 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/edit.js 23528 23529 23530 /** 23531 * External dependencies 23532 */ 23533 23534 23535 /** 23536 * WordPress dependencies 23537 */ 23538 23539 23540 23541 23542 23543 23544 23545 23546 23547 /** 23548 * Internal dependencies 23549 */ 23550 23551 23552 23553 /** 23554 * Constants 23555 */ 23556 23557 const media_text_edit_TEMPLATE = [['core/paragraph', { 23558 fontSize: 'large', 23559 placeholder: (0,external_wp_i18n_namespaceObject._x)('Content…', 'content placeholder') 23560 }]]; // this limits the resize to a safe zone to avoid making broken layouts 23561 23562 const WIDTH_CONSTRAINT_PERCENTAGE = 15; 23563 23564 const applyWidthConstraints = width => Math.max(WIDTH_CONSTRAINT_PERCENTAGE, Math.min(width, 100 - WIDTH_CONSTRAINT_PERCENTAGE)); 23565 23566 const edit_LINK_DESTINATION_MEDIA = 'media'; 23567 const edit_LINK_DESTINATION_ATTACHMENT = 'attachment'; 23568 23569 function getImageSourceUrlBySizeSlug(image, slug) { 23570 var _image$media_details, _image$media_details$, _image$media_details$2; 23571 23572 // eslint-disable-next-line camelcase 23573 return image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$ = _image$media_details.sizes) === null || _image$media_details$ === void 0 ? void 0 : (_image$media_details$2 = _image$media_details$[slug]) === null || _image$media_details$2 === void 0 ? void 0 : _image$media_details$2.source_url; 23574 } 23575 23576 function edit_attributesFromMedia(_ref) { 23577 let { 23578 attributes: { 23579 linkDestination, 23580 href 23581 }, 23582 setAttributes 23583 } = _ref; 23584 return media => { 23585 if (!media || !media.url) { 23586 setAttributes({ 23587 mediaAlt: undefined, 23588 mediaId: undefined, 23589 mediaType: undefined, 23590 mediaUrl: undefined, 23591 mediaLink: undefined, 23592 href: undefined, 23593 focalPoint: undefined 23594 }); 23595 return; 23596 } 23597 23598 if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) { 23599 media.type = (0,external_wp_blob_namespaceObject.getBlobTypeByURL)(media.url); 23600 } 23601 23602 let mediaType; 23603 let src; // For media selections originated from a file upload. 23604 23605 if (media.media_type) { 23606 if (media.media_type === 'image') { 23607 mediaType = 'image'; 23608 } else { 23609 // only images and videos are accepted so if the media_type is not an image we can assume it is a video. 23610 // video contain the media type of 'file' in the object returned from the rest api. 23611 mediaType = 'video'; 23612 } 23613 } else { 23614 // For media selections originated from existing files in the media library. 23615 mediaType = media.type; 23616 } 23617 23618 if (mediaType === 'image') { 23619 var _media$sizes, _media$sizes$large, _media$media_details, _media$media_details$, _media$media_details$2; 23620 23621 // Try the "large" size URL, falling back to the "full" size URL below. 23622 src = ((_media$sizes = media.sizes) === null || _media$sizes === void 0 ? void 0 : (_media$sizes$large = _media$sizes.large) === null || _media$sizes$large === void 0 ? void 0 : _media$sizes$large.url) || ( // eslint-disable-next-line camelcase 23623 (_media$media_details = media.media_details) === null || _media$media_details === void 0 ? void 0 : (_media$media_details$ = _media$media_details.sizes) === null || _media$media_details$ === void 0 ? void 0 : (_media$media_details$2 = _media$media_details$.large) === null || _media$media_details$2 === void 0 ? void 0 : _media$media_details$2.source_url); 23624 } 23625 23626 let newHref = href; 23627 23628 if (linkDestination === edit_LINK_DESTINATION_MEDIA) { 23629 // Update the media link. 23630 newHref = media.url; 23631 } // Check if the image is linked to the attachment page. 23632 23633 23634 if (linkDestination === edit_LINK_DESTINATION_ATTACHMENT) { 23635 // Update the media link. 23636 newHref = media.link; 23637 } 23638 23639 setAttributes({ 23640 mediaAlt: media.alt, 23641 mediaId: media.id, 23642 mediaType, 23643 mediaUrl: src || media.url, 23644 mediaLink: media.link || undefined, 23645 href: newHref, 23646 focalPoint: undefined 23647 }); 23648 }; 23649 } 23650 23651 function MediaTextEdit(_ref2) { 23652 let { 23653 attributes, 23654 isSelected, 23655 setAttributes 23656 } = _ref2; 23657 const { 23658 focalPoint, 23659 href, 23660 imageFill, 23661 isStackedOnMobile, 23662 linkClass, 23663 linkDestination, 23664 linkTarget, 23665 mediaAlt, 23666 mediaId, 23667 mediaPosition, 23668 mediaType, 23669 mediaUrl, 23670 mediaWidth, 23671 rel, 23672 verticalAlignment 23673 } = attributes; 23674 const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG; 23675 const image = (0,external_wp_data_namespaceObject.useSelect)(select => mediaId && isSelected ? select(external_wp_coreData_namespaceObject.store).getMedia(mediaId, { 23676 context: 'view' 23677 }) : null, [isSelected, mediaId]); 23678 const refMediaContainer = (0,external_wp_element_namespaceObject.useRef)(); 23679 23680 const imperativeFocalPointPreview = value => { 23681 const { 23682 style 23683 } = refMediaContainer.current.resizable; 23684 const { 23685 x, 23686 y 23687 } = value; 23688 style.backgroundPosition = `$x * 100}% $y * 100}%`; 23689 }; 23690 23691 const [temporaryMediaWidth, setTemporaryMediaWidth] = (0,external_wp_element_namespaceObject.useState)(null); 23692 const onSelectMedia = edit_attributesFromMedia({ 23693 attributes, 23694 setAttributes 23695 }); 23696 23697 const onSetHref = props => { 23698 setAttributes(props); 23699 }; 23700 23701 const onWidthChange = width => { 23702 setTemporaryMediaWidth(applyWidthConstraints(width)); 23703 }; 23704 23705 const commitWidthChange = width => { 23706 setAttributes({ 23707 mediaWidth: applyWidthConstraints(width) 23708 }); 23709 setTemporaryMediaWidth(applyWidthConstraints(width)); 23710 }; 23711 23712 const classNames = classnames_default()({ 23713 'has-media-on-the-right': 'right' === mediaPosition, 23714 'is-selected': isSelected, 23715 'is-stacked-on-mobile': isStackedOnMobile, 23716 [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment, 23717 'is-image-fill': imageFill 23718 }); 23719 const widthString = `$temporaryMediaWidth || mediaWidth}%`; 23720 const gridTemplateColumns = 'right' === mediaPosition ? `1fr $widthString}` : `$widthString} 1fr`; 23721 const style = { 23722 gridTemplateColumns, 23723 msGridColumns: gridTemplateColumns 23724 }; 23725 23726 const onMediaAltChange = newMediaAlt => { 23727 setAttributes({ 23728 mediaAlt: newMediaAlt 23729 }); 23730 }; 23731 23732 const onVerticalAlignmentChange = alignment => { 23733 setAttributes({ 23734 verticalAlignment: alignment 23735 }); 23736 }; 23737 23738 const imageSizes = (0,external_wp_data_namespaceObject.useSelect)(select => { 23739 const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings(); 23740 return settings === null || settings === void 0 ? void 0 : settings.imageSizes; 23741 }, []); 23742 const imageSizeOptions = (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(imageSizes, _ref3 => { 23743 let { 23744 slug 23745 } = _ref3; 23746 return getImageSourceUrlBySizeSlug(image, slug); 23747 }), _ref4 => { 23748 let { 23749 name, 23750 slug 23751 } = _ref4; 23752 return { 23753 value: slug, 23754 label: name 23755 }; 23756 }); 23757 23758 const updateImage = newMediaSizeSlug => { 23759 const newUrl = getImageSourceUrlBySizeSlug(image, newMediaSizeSlug); 23760 23761 if (!newUrl) { 23762 return null; 23763 } 23764 23765 setAttributes({ 23766 mediaUrl: newUrl, 23767 mediaSizeSlug: newMediaSizeSlug 23768 }); 23769 }; 23770 23771 const mediaTextGeneralSettings = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 23772 title: (0,external_wp_i18n_namespaceObject.__)('Media & Text settings') 23773 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 23774 label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'), 23775 checked: isStackedOnMobile, 23776 onChange: () => setAttributes({ 23777 isStackedOnMobile: !isStackedOnMobile 23778 }) 23779 }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 23780 label: (0,external_wp_i18n_namespaceObject.__)('Crop image to fill entire column'), 23781 checked: imageFill, 23782 onChange: () => setAttributes({ 23783 imageFill: !imageFill 23784 }) 23785 }), imageFill && mediaUrl && mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FocalPointPicker, { 23786 label: (0,external_wp_i18n_namespaceObject.__)('Focal point picker'), 23787 url: mediaUrl, 23788 value: focalPoint, 23789 onChange: value => setAttributes({ 23790 focalPoint: value 23791 }), 23792 onDragStart: imperativeFocalPointPreview, 23793 onDrag: imperativeFocalPointPreview 23794 }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, { 23795 label: (0,external_wp_i18n_namespaceObject.__)('Alt text (alternative text)'), 23796 value: mediaAlt, 23797 onChange: onMediaAltChange, 23798 help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { 23799 href: "https://www.w3.org/WAI/tutorials/images/decision-tree" 23800 }, (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image')), (0,external_wp_i18n_namespaceObject.__)('Leave empty if the image is purely decorative.')) 23801 }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, { 23802 onChangeImage: updateImage, 23803 slug: mediaSizeSlug, 23804 imageSizeOptions: imageSizeOptions, 23805 isResizable: false 23806 }), mediaUrl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 23807 label: (0,external_wp_i18n_namespaceObject.__)('Media width'), 23808 value: temporaryMediaWidth || mediaWidth, 23809 onChange: commitWidthChange, 23810 min: WIDTH_CONSTRAINT_PERCENTAGE, 23811 max: 100 - WIDTH_CONSTRAINT_PERCENTAGE 23812 })); 23813 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 23814 className: classNames, 23815 style 23816 }); 23817 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({ 23818 className: 'wp-block-media-text__content' 23819 }, { 23820 template: media_text_edit_TEMPLATE 23821 }); 23822 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, mediaTextGeneralSettings), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 23823 group: "block" 23824 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentControl, { 23825 onChange: onVerticalAlignmentChange, 23826 value: verticalAlignment 23827 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 23828 icon: pull_left, 23829 title: (0,external_wp_i18n_namespaceObject.__)('Show media on left'), 23830 isActive: mediaPosition === 'left', 23831 onClick: () => setAttributes({ 23832 mediaPosition: 'left' 23833 }) 23834 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 23835 icon: pull_right, 23836 title: (0,external_wp_i18n_namespaceObject.__)('Show media on right'), 23837 isActive: mediaPosition === 'right', 23838 onClick: () => setAttributes({ 23839 mediaPosition: 'right' 23840 }) 23841 }), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, { 23842 url: href || '', 23843 onChangeUrl: onSetHref, 23844 linkDestination: linkDestination, 23845 mediaType: mediaType, 23846 mediaUrl: image && image.source_url, 23847 mediaLink: image && image.link, 23848 linkTarget: linkTarget, 23849 linkClass: linkClass, 23850 rel: rel 23851 })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(media_container, { 23852 className: "wp-block-media-text__media", 23853 onSelectMedia: onSelectMedia, 23854 onWidthChange: onWidthChange, 23855 commitWidthChange: commitWidthChange, 23856 ref: refMediaContainer, 23857 focalPoint, 23858 imageFill, 23859 isSelected, 23860 isStackedOnMobile, 23861 mediaAlt, 23862 mediaId, 23863 mediaPosition, 23864 mediaType, 23865 mediaUrl, 23866 mediaWidth 23867 }), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps))); 23868 } 23869 23870 /* harmony default export */ var media_text_edit = (MediaTextEdit); 23871 23872 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/save.js 23873 23874 23875 /** 23876 * External dependencies 23877 */ 23878 23879 23880 /** 23881 * WordPress dependencies 23882 */ 23883 23884 23885 /** 23886 * Internal dependencies 23887 */ 23888 23889 23890 23891 const save_DEFAULT_MEDIA_WIDTH = 50; 23892 function media_text_save_save(_ref) { 23893 let { 23894 attributes 23895 } = _ref; 23896 const { 23897 isStackedOnMobile, 23898 mediaAlt, 23899 mediaPosition, 23900 mediaType, 23901 mediaUrl, 23902 mediaWidth, 23903 mediaId, 23904 verticalAlignment, 23905 imageFill, 23906 focalPoint, 23907 linkClass, 23908 href, 23909 linkTarget, 23910 rel 23911 } = attributes; 23912 const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG; 23913 const newRel = (0,external_lodash_namespaceObject.isEmpty)(rel) ? undefined : rel; 23914 const imageClasses = classnames_default()({ 23915 [`wp-image-$mediaId}`]: mediaId && mediaType === 'image', 23916 [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image' 23917 }); 23918 let image = (0,external_wp_element_namespaceObject.createElement)("img", { 23919 src: mediaUrl, 23920 alt: mediaAlt, 23921 className: imageClasses || null 23922 }); 23923 23924 if (href) { 23925 image = (0,external_wp_element_namespaceObject.createElement)("a", { 23926 className: linkClass, 23927 href: href, 23928 target: linkTarget, 23929 rel: newRel 23930 }, image); 23931 } 23932 23933 const mediaTypeRenders = { 23934 image: () => image, 23935 video: () => (0,external_wp_element_namespaceObject.createElement)("video", { 23936 controls: true, 23937 src: mediaUrl 23938 }) 23939 }; 23940 const className = classnames_default()({ 23941 'has-media-on-the-right': 'right' === mediaPosition, 23942 'is-stacked-on-mobile': isStackedOnMobile, 23943 [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment, 23944 'is-image-fill': imageFill 23945 }); 23946 const backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {}; 23947 let gridTemplateColumns; 23948 23949 if (mediaWidth !== save_DEFAULT_MEDIA_WIDTH) { 23950 gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`; 23951 } 23952 23953 const style = { 23954 gridTemplateColumns 23955 }; 23956 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 23957 className, 23958 style 23959 }), (0,external_wp_element_namespaceObject.createElement)("figure", { 23960 className: "wp-block-media-text__media", 23961 style: backgroundStyles 23962 }, (mediaTypeRenders[mediaType] || external_lodash_namespaceObject.noop)()), (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({ 23963 className: 'wp-block-media-text__content' 23964 }))); 23965 } 23966 23967 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/transforms.js 23968 /** 23969 * WordPress dependencies 23970 */ 23971 23972 const media_text_transforms_transforms = { 23973 from: [{ 23974 type: 'block', 23975 blocks: ['core/image'], 23976 transform: _ref => { 23977 let { 23978 alt, 23979 url, 23980 id, 23981 anchor 23982 } = _ref; 23983 return (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', { 23984 mediaAlt: alt, 23985 mediaId: id, 23986 mediaUrl: url, 23987 mediaType: 'image', 23988 anchor 23989 }); 23990 } 23991 }, { 23992 type: 'block', 23993 blocks: ['core/video'], 23994 transform: _ref2 => { 23995 let { 23996 src, 23997 id, 23998 anchor 23999 } = _ref2; 24000 return (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', { 24001 mediaId: id, 24002 mediaUrl: src, 24003 mediaType: 'video', 24004 anchor 24005 }); 24006 } 24007 }], 24008 to: [{ 24009 type: 'block', 24010 blocks: ['core/image'], 24011 isMatch: _ref3 => { 24012 let { 24013 mediaType, 24014 mediaUrl 24015 } = _ref3; 24016 return !mediaUrl || mediaType === 'image'; 24017 }, 24018 transform: _ref4 => { 24019 let { 24020 mediaAlt, 24021 mediaId, 24022 mediaUrl, 24023 anchor 24024 } = _ref4; 24025 return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', { 24026 alt: mediaAlt, 24027 id: mediaId, 24028 url: mediaUrl, 24029 anchor 24030 }); 24031 } 24032 }, { 24033 type: 'block', 24034 blocks: ['core/video'], 24035 isMatch: _ref5 => { 24036 let { 24037 mediaType, 24038 mediaUrl 24039 } = _ref5; 24040 return !mediaUrl || mediaType === 'video'; 24041 }, 24042 transform: _ref6 => { 24043 let { 24044 mediaId, 24045 mediaUrl, 24046 anchor 24047 } = _ref6; 24048 return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', { 24049 id: mediaId, 24050 src: mediaUrl, 24051 anchor 24052 }); 24053 } 24054 }] 24055 }; 24056 /* harmony default export */ var media_text_transforms = (media_text_transforms_transforms); 24057 24058 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/index.js 24059 /** 24060 * WordPress dependencies 24061 */ 24062 24063 24064 /** 24065 * Internal dependencies 24066 */ 24067 24068 24069 24070 const media_text_metadata = { 24071 $schema: "https://schemas.wp.org/trunk/block.json", 24072 apiVersion: 2, 24073 name: "core/media-text", 24074 title: "Media & Text", 24075 category: "media", 24076 description: "Set media and words side-by-side for a richer layout.", 24077 keywords: ["image", "video"], 24078 textdomain: "default", 24079 attributes: { 24080 align: { 24081 type: "string", 24082 "default": "wide" 24083 }, 24084 mediaAlt: { 24085 type: "string", 24086 source: "attribute", 24087 selector: "figure img", 24088 attribute: "alt", 24089 "default": "" 24090 }, 24091 mediaPosition: { 24092 type: "string", 24093 "default": "left" 24094 }, 24095 mediaId: { 24096 type: "number" 24097 }, 24098 mediaUrl: { 24099 type: "string", 24100 source: "attribute", 24101 selector: "figure video,figure img", 24102 attribute: "src" 24103 }, 24104 mediaLink: { 24105 type: "string" 24106 }, 24107 linkDestination: { 24108 type: "string" 24109 }, 24110 linkTarget: { 24111 type: "string", 24112 source: "attribute", 24113 selector: "figure a", 24114 attribute: "target" 24115 }, 24116 href: { 24117 type: "string", 24118 source: "attribute", 24119 selector: "figure a", 24120 attribute: "href" 24121 }, 24122 rel: { 24123 type: "string", 24124 source: "attribute", 24125 selector: "figure a", 24126 attribute: "rel" 24127 }, 24128 linkClass: { 24129 type: "string", 24130 source: "attribute", 24131 selector: "figure a", 24132 attribute: "class" 24133 }, 24134 mediaType: { 24135 type: "string" 24136 }, 24137 mediaWidth: { 24138 type: "number", 24139 "default": 50 24140 }, 24141 mediaSizeSlug: { 24142 type: "string" 24143 }, 24144 isStackedOnMobile: { 24145 type: "boolean", 24146 "default": true 24147 }, 24148 verticalAlignment: { 24149 type: "string" 24150 }, 24151 imageFill: { 24152 type: "boolean" 24153 }, 24154 focalPoint: { 24155 type: "object" 24156 } 24157 }, 24158 supports: { 24159 anchor: true, 24160 align: ["wide", "full"], 24161 html: false, 24162 color: { 24163 gradients: true, 24164 link: true, 24165 __experimentalDefaultControls: { 24166 background: true, 24167 text: true 24168 } 24169 } 24170 }, 24171 editorStyle: "wp-block-media-text-editor", 24172 style: "wp-block-media-text" 24173 }; 24174 24175 24176 const { 24177 name: media_text_name 24178 } = media_text_metadata; 24179 24180 const media_text_settings = { 24181 icon: media_and_text, 24182 example: { 24183 viewportWidth: 601, 24184 // Columns collapse "@media (max-width: 600px)". 24185 attributes: { 24186 mediaType: 'image', 24187 mediaUrl: 'https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg' 24188 }, 24189 innerBlocks: [{ 24190 name: 'core/paragraph', 24191 attributes: { 24192 content: (0,external_wp_i18n_namespaceObject.__)('The wren<br>Earns his living<br>Noiselessly.') 24193 } 24194 }, { 24195 name: 'core/paragraph', 24196 attributes: { 24197 content: (0,external_wp_i18n_namespaceObject.__)('— Kobayashi Issa (一茶)') 24198 } 24199 }] 24200 }, 24201 transforms: media_text_transforms, 24202 edit: media_text_edit, 24203 save: media_text_save_save, 24204 deprecated: media_text_deprecated 24205 }; 24206 24207 ;// CONCATENATED MODULE: external ["wp","dom"] 24208 var external_wp_dom_namespaceObject = window["wp"]["dom"]; 24209 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/edit.js 24210 24211 24212 /** 24213 * WordPress dependencies 24214 */ 24215 24216 24217 24218 24219 24220 24221 24222 24223 function MissingBlockWarning(_ref) { 24224 let { 24225 attributes, 24226 convertToHTML 24227 } = _ref; 24228 const { 24229 originalName, 24230 originalUndelimitedContent 24231 } = attributes; 24232 const hasContent = !!originalUndelimitedContent; 24233 const hasHTMLBlock = (0,external_wp_blocks_namespaceObject.getBlockType)('core/html'); 24234 const actions = []; 24235 let messageHTML; 24236 24237 if (hasContent && hasHTMLBlock) { 24238 messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)( 24239 /* translators: %s: block name */ 24240 (0,external_wp_i18n_namespaceObject.__)('Your site doesn’t include support for the "%s" block. You can leave this block intact, convert its content to a Custom HTML block, or remove it entirely.'), originalName); 24241 actions.push((0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 24242 key: "convert", 24243 onClick: convertToHTML, 24244 variant: "primary" 24245 }, (0,external_wp_i18n_namespaceObject.__)('Keep as HTML'))); 24246 } else { 24247 messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)( 24248 /* translators: %s: block name */ 24249 (0,external_wp_i18n_namespaceObject.__)('Your site doesn’t include support for the "%s" block. You can leave this block intact or remove it entirely.'), originalName); 24250 } 24251 24252 return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 24253 className: 'has-warning' 24254 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, { 24255 actions: actions 24256 }, messageHTML), (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, (0,external_wp_dom_namespaceObject.safeHTML)(originalUndelimitedContent))); 24257 } 24258 24259 const MissingEdit = (0,external_wp_data_namespaceObject.withDispatch)((dispatch, _ref2) => { 24260 let { 24261 clientId, 24262 attributes 24263 } = _ref2; 24264 const { 24265 replaceBlock 24266 } = dispatch(external_wp_blockEditor_namespaceObject.store); 24267 return { 24268 convertToHTML() { 24269 replaceBlock(clientId, (0,external_wp_blocks_namespaceObject.createBlock)('core/html', { 24270 content: attributes.originalUndelimitedContent 24271 })); 24272 } 24273 24274 }; 24275 })(MissingBlockWarning); 24276 /* harmony default export */ var missing_edit = (MissingEdit); 24277 24278 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/save.js 24279 24280 24281 /** 24282 * WordPress dependencies 24283 */ 24284 24285 function missing_save_save(_ref) { 24286 let { 24287 attributes 24288 } = _ref; 24289 // Preserve the missing block's content. 24290 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.originalContent); 24291 } 24292 24293 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/index.js 24294 /** 24295 * WordPress dependencies 24296 */ 24297 24298 /** 24299 * Internal dependencies 24300 */ 24301 24302 24303 const missing_metadata = { 24304 $schema: "https://schemas.wp.org/trunk/block.json", 24305 apiVersion: 2, 24306 name: "core/missing", 24307 title: "Unsupported", 24308 category: "text", 24309 description: "Your site doesn\u2019t include support for this block.", 24310 textdomain: "default", 24311 attributes: { 24312 originalName: { 24313 type: "string" 24314 }, 24315 originalUndelimitedContent: { 24316 type: "string" 24317 }, 24318 originalContent: { 24319 type: "string", 24320 source: "html" 24321 } 24322 }, 24323 supports: { 24324 className: false, 24325 customClassName: false, 24326 inserter: false, 24327 html: false, 24328 reusable: false 24329 } 24330 }; 24331 24332 const { 24333 name: missing_name 24334 } = missing_metadata; 24335 24336 const missing_settings = { 24337 name: missing_name, 24338 24339 __experimentalLabel(attributes, _ref) { 24340 let { 24341 context 24342 } = _ref; 24343 24344 if (context === 'accessibility') { 24345 const { 24346 originalName 24347 } = attributes; 24348 const originalBlockType = originalName ? (0,external_wp_blocks_namespaceObject.getBlockType)(originalName) : undefined; 24349 24350 if (originalBlockType) { 24351 return originalBlockType.settings.title || originalName; 24352 } 24353 24354 return ''; 24355 } 24356 }, 24357 24358 edit: missing_edit, 24359 save: missing_save_save 24360 }; 24361 24362 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more.js 24363 24364 24365 /** 24366 * WordPress dependencies 24367 */ 24368 24369 const more = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 24370 viewBox: "0 0 24 24", 24371 xmlns: "http://www.w3.org/2000/svg" 24372 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 24373 d: "M4 9v1.5h16V9H4zm12 5.5h4V13h-4v1.5zm-6 0h4V13h-4v1.5zm-6 0h4V13H4v1.5z" 24374 })); 24375 /* harmony default export */ var library_more = (more); 24376 24377 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/edit.js 24378 24379 24380 /** 24381 * WordPress dependencies 24382 */ 24383 24384 24385 24386 24387 24388 24389 const DEFAULT_TEXT = (0,external_wp_i18n_namespaceObject.__)('Read more'); 24390 24391 function MoreEdit(_ref) { 24392 let { 24393 attributes: { 24394 customText, 24395 noTeaser 24396 }, 24397 insertBlocksAfter, 24398 setAttributes 24399 } = _ref; 24400 24401 const onChangeInput = event => { 24402 setAttributes({ 24403 customText: event.target.value !== '' ? event.target.value : undefined 24404 }); 24405 }; 24406 24407 const onKeyDown = _ref2 => { 24408 let { 24409 keyCode 24410 } = _ref2; 24411 24412 if (keyCode === external_wp_keycodes_namespaceObject.ENTER) { 24413 insertBlocksAfter([(0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())]); 24414 } 24415 }; 24416 24417 const getHideExcerptHelp = checked => checked ? (0,external_wp_i18n_namespaceObject.__)('The excerpt is hidden.') : (0,external_wp_i18n_namespaceObject.__)('The excerpt is visible.'); 24418 24419 const toggleHideExcerpt = () => setAttributes({ 24420 noTeaser: !noTeaser 24421 }); 24422 24423 const style = { 24424 width: `${(customText ? customText : DEFAULT_TEXT).length + 1.2}em` 24425 }; 24426 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 24427 label: (0,external_wp_i18n_namespaceObject.__)('Hide the excerpt on the full content page'), 24428 checked: !!noTeaser, 24429 onChange: toggleHideExcerpt, 24430 help: getHideExcerptHelp 24431 }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)("div", { 24432 className: "wp-block-more" 24433 }, (0,external_wp_element_namespaceObject.createElement)("input", { 24434 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Read more link text'), 24435 type: "text", 24436 value: customText, 24437 placeholder: DEFAULT_TEXT, 24438 onChange: onChangeInput, 24439 onKeyDown: onKeyDown, 24440 style: style 24441 })))); 24442 } 24443 24444 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/save.js 24445 24446 24447 /** 24448 * External dependencies 24449 */ 24450 24451 /** 24452 * WordPress dependencies 24453 */ 24454 24455 24456 function more_save_save(_ref) { 24457 let { 24458 attributes: { 24459 customText, 24460 noTeaser 24461 } 24462 } = _ref; 24463 const moreTag = customText ? `<!--more $customText}-->` : '<!--more-->'; 24464 const noTeaserTag = noTeaser ? '<!--noteaser-->' : ''; 24465 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, (0,external_lodash_namespaceObject.compact)([moreTag, noTeaserTag]).join('\n')); 24466 } 24467 24468 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/transforms.js 24469 /** 24470 * WordPress dependencies 24471 */ 24472 24473 const more_transforms_transforms = { 24474 from: [{ 24475 type: 'raw', 24476 schema: { 24477 'wp-block': { 24478 attributes: ['data-block'] 24479 } 24480 }, 24481 isMatch: node => node.dataset && node.dataset.block === 'core/more', 24482 24483 transform(node) { 24484 const { 24485 customText, 24486 noTeaser 24487 } = node.dataset; 24488 const attrs = {}; // Don't copy unless defined and not an empty string. 24489 24490 if (customText) { 24491 attrs.customText = customText; 24492 } // Special handling for boolean. 24493 24494 24495 if (noTeaser === '') { 24496 attrs.noTeaser = true; 24497 } 24498 24499 return (0,external_wp_blocks_namespaceObject.createBlock)('core/more', attrs); 24500 } 24501 24502 }] 24503 }; 24504 /* harmony default export */ var more_transforms = (more_transforms_transforms); 24505 24506 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/index.js 24507 /** 24508 * WordPress dependencies 24509 */ 24510 24511 /** 24512 * Internal dependencies 24513 */ 24514 24515 24516 const more_metadata = { 24517 $schema: "https://schemas.wp.org/trunk/block.json", 24518 apiVersion: 2, 24519 name: "core/more", 24520 title: "More", 24521 category: "design", 24522 description: "Content before this block will be shown in the excerpt on your archives page.", 24523 keywords: ["read more"], 24524 textdomain: "default", 24525 attributes: { 24526 customText: { 24527 type: "string" 24528 }, 24529 noTeaser: { 24530 type: "boolean", 24531 "default": false 24532 } 24533 }, 24534 supports: { 24535 customClassName: false, 24536 className: false, 24537 html: false, 24538 multiple: false 24539 }, 24540 editorStyle: "wp-block-more-editor" 24541 }; 24542 24543 24544 const { 24545 name: more_name 24546 } = more_metadata; 24547 24548 const more_settings = { 24549 icon: library_more, 24550 example: {}, 24551 24552 __experimentalLabel(attributes, _ref) { 24553 let { 24554 context 24555 } = _ref; 24556 24557 if (context === 'accessibility') { 24558 return attributes.customText; 24559 } 24560 }, 24561 24562 transforms: more_transforms, 24563 edit: MoreEdit, 24564 save: more_save_save 24565 }; 24566 24567 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/navigation.js 24568 24569 24570 /** 24571 * WordPress dependencies 24572 */ 24573 24574 const navigation = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 24575 viewBox: "0 0 24 24", 24576 xmlns: "http://www.w3.org/2000/svg" 24577 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 24578 d: "M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14.5c-3.6 0-6.5-2.9-6.5-6.5S8.4 5.5 12 5.5s6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5zM9 16l4.5-3L15 8.4l-4.5 3L9 16z" 24579 })); 24580 /* harmony default export */ var library_navigation = (navigation); 24581 24582 ;// CONCATENATED MODULE: external ["wp","a11y"] 24583 var external_wp_a11y_namespaceObject = window["wp"]["a11y"]; 24584 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-menu.js 24585 /** 24586 * WordPress dependencies 24587 */ 24588 24589 24590 function useNavigationMenu(ref) { 24591 return (0,external_wp_data_namespaceObject.useSelect)(select => { 24592 var _navigationMenu; 24593 24594 const { 24595 getEntityRecord, 24596 getEditedEntityRecord, 24597 getEntityRecords, 24598 hasFinishedResolution, 24599 isResolving, 24600 canUser 24601 } = select(external_wp_coreData_namespaceObject.store); 24602 const navigationMenuSingleArgs = ['postType', 'wp_navigation', ref]; 24603 const rawNavigationMenu = ref ? getEntityRecord(...navigationMenuSingleArgs) : null; 24604 let navigationMenu = ref ? getEditedEntityRecord(...navigationMenuSingleArgs) : null; // getEditedEntityRecord will return the post regardless of status. 24605 // Therefore if the found post is not published then we should ignore it. 24606 24607 if (((_navigationMenu = navigationMenu) === null || _navigationMenu === void 0 ? void 0 : _navigationMenu.status) !== 'publish') { 24608 navigationMenu = null; 24609 } 24610 24611 const hasResolvedNavigationMenu = ref ? hasFinishedResolution('getEditedEntityRecord', navigationMenuSingleArgs) : false; 24612 const navigationMenuMultipleArgs = ['postType', 'wp_navigation', { 24613 per_page: -1, 24614 status: 'publish' 24615 }]; 24616 const navigationMenus = getEntityRecords(...navigationMenuMultipleArgs); 24617 const canSwitchNavigationMenu = ref ? (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 1 : (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 0; 24618 return { 24619 isNavigationMenuResolved: hasResolvedNavigationMenu, 24620 isNavigationMenuMissing: !ref || hasResolvedNavigationMenu && !rawNavigationMenu, 24621 canSwitchNavigationMenu, 24622 isResolvingNavigationMenus: isResolving('getEntityRecords', navigationMenuMultipleArgs), 24623 hasResolvedNavigationMenus: hasFinishedResolution('getEntityRecords', navigationMenuMultipleArgs), 24624 navigationMenu, 24625 navigationMenus, 24626 canUserUpdateNavigationMenu: ref ? canUser('update', 'navigation', ref) : undefined, 24627 hasResolvedCanUserUpdateNavigationMenu: hasFinishedResolution('canUser', ['update', 'navigation', ref]), 24628 canUserDeleteNavigationMenu: ref ? canUser('delete', 'navigation', ref) : undefined, 24629 hasResolvedCanUserDeleteNavigationMenu: hasFinishedResolution('canUser', ['delete', 'navigation', ref]), 24630 canUserCreateNavigationMenu: canUser('create', 'navigation'), 24631 isResolvingCanUserCreateNavigationMenu: isResolving('canUser', ['create', 'navigation']), 24632 hasResolvedCanUserCreateNavigationMenu: hasFinishedResolution('canUser', ['create', 'navigation']) 24633 }; 24634 }, [ref]); 24635 } 24636 24637 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-entities.js 24638 /** 24639 * WordPress dependencies 24640 */ 24641 24642 /** 24643 * @typedef {Object} NavigationEntitiesData 24644 * @property {Array|undefined} pages - a collection of WP Post entity objects of post type "Page". 24645 * @property {boolean} isResolvingPages - indicates whether the request to fetch pages is currently resolving. 24646 * @property {boolean} hasResolvedPages - indicates whether the request to fetch pages has finished resolving. 24647 * @property {Array|undefined} menus - a collection of Menu entity objects. 24648 * @property {boolean} isResolvingMenus - indicates whether the request to fetch menus is currently resolving. 24649 * @property {boolean} hasResolvedMenus - indicates whether the request to fetch menus has finished resolving. 24650 * @property {Array|undefined} menusItems - a collection of Menu Item entity objects for the current menuId. 24651 * @property {boolean} hasResolvedMenuItems - indicates whether the request to fetch menuItems has finished resolving. 24652 * @property {boolean} hasPages - indicates whether there is currently any data for pages. 24653 * @property {boolean} hasMenus - indicates whether there is currently any data for menus. 24654 */ 24655 24656 /** 24657 * Manages fetching and resolution state for all entities required 24658 * for the Navigation block. 24659 * 24660 * @param {number} menuId the menu for which to retrieve menuItem data. 24661 * @return { NavigationEntitiesData } the entity data. 24662 */ 24663 24664 function useNavigationEntities(menuId) { 24665 const { 24666 records: menus, 24667 isResolving: isResolvingMenus, 24668 hasResolved: hasResolvedMenus 24669 } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('root', 'menu', { 24670 per_page: -1, 24671 context: 'view' 24672 }); 24673 const { 24674 records: pages, 24675 isResolving: isResolvingPages, 24676 hasResolved: hasResolvedPages 24677 } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('postType', 'page', { 24678 parent: 0, 24679 order: 'asc', 24680 orderby: 'id', 24681 per_page: -1, 24682 context: 'view' 24683 }); 24684 const { 24685 records: menuItems, 24686 hasResolved: hasResolvedMenuItems 24687 } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('root', 'menuItem', { 24688 menus: menuId, 24689 per_page: -1, 24690 context: 'view' 24691 }, { 24692 enabled: !!menuId 24693 }); 24694 return { 24695 pages, 24696 isResolvingPages, 24697 hasResolvedPages, 24698 hasPages: !!(hasResolvedPages && pages !== null && pages !== void 0 && pages.length), 24699 menus, 24700 isResolvingMenus, 24701 hasResolvedMenus, 24702 hasMenus: !!(hasResolvedMenus && menus !== null && menus !== void 0 && menus.length), 24703 menuItems, 24704 hasResolvedMenuItems 24705 }; 24706 } 24707 24708 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js 24709 /** 24710 * WordPress dependencies 24711 */ 24712 24713 /** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */ 24714 24715 /** 24716 * Return an SVG icon. 24717 * 24718 * @param {IconProps} props icon is the SVG component to render 24719 * size is a number specifiying the icon size in pixels 24720 * Other props will be passed to wrapped SVG component 24721 * 24722 * @return {JSX.Element} Icon component 24723 */ 24724 24725 function Icon(_ref) { 24726 let { 24727 icon, 24728 size = 24, 24729 ...props 24730 } = _ref; 24731 return (0,external_wp_element_namespaceObject.cloneElement)(icon, { 24732 width: size, 24733 height: size, 24734 ...props 24735 }); 24736 } 24737 24738 /* harmony default export */ var icon = (Icon); 24739 24740 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/placeholder-preview.js 24741 24742 24743 /** 24744 * WordPress dependencies 24745 */ 24746 24747 24748 24749 const PlaceholderPreview = _ref => { 24750 let { 24751 isVisible = true 24752 } = _ref; 24753 return (0,external_wp_element_namespaceObject.createElement)("div", { 24754 "aria-hidden": !isVisible ? true : undefined, 24755 className: "wp-block-navigation-placeholder__preview" 24756 }, (0,external_wp_element_namespaceObject.createElement)("div", { 24757 className: "wp-block-navigation-placeholder__actions__indicator" 24758 }, (0,external_wp_element_namespaceObject.createElement)(icon, { 24759 icon: library_navigation 24760 }), (0,external_wp_i18n_namespaceObject.__)('Navigation'))); 24761 }; 24762 24763 /* harmony default export */ var placeholder_preview = (PlaceholderPreview); 24764 24765 ;// CONCATENATED MODULE: external ["wp","htmlEntities"] 24766 var external_wp_htmlEntities_namespaceObject = window["wp"]["htmlEntities"]; 24767 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-selector.js 24768 24769 24770 /** 24771 * WordPress dependencies 24772 */ 24773 24774 24775 24776 24777 24778 /** 24779 * Internal dependencies 24780 */ 24781 24782 24783 24784 24785 function NavigationMenuSelector(_ref, forwardedRef) { 24786 let { 24787 currentMenuId, 24788 onSelect, 24789 onCreateNew, 24790 showManageActions = false, 24791 actionLabel, 24792 toggleProps = {} 24793 } = _ref; 24794 24795 /* translators: %s: The name of a menu. */ 24796 const createActionLabel = (0,external_wp_i18n_namespaceObject.__)("Create from '%s'"); 24797 24798 actionLabel = actionLabel || createActionLabel; 24799 const { 24800 menus: classicMenus 24801 } = useNavigationEntities(); 24802 const { 24803 navigationMenus, 24804 canUserCreateNavigationMenu, 24805 canUserUpdateNavigationMenu, 24806 canSwitchNavigationMenu 24807 } = useNavigationMenu(); 24808 const handleSelect = (0,external_wp_element_namespaceObject.useCallback)(_onClose => selectedId => { 24809 _onClose(); 24810 24811 onSelect(navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.find(post => post.id === selectedId)); 24812 }, [navigationMenus]); 24813 const handleSelectClassic = (0,external_wp_element_namespaceObject.useCallback)((_onClose, menu) => () => { 24814 _onClose(); 24815 24816 onSelect(menu); 24817 }, []); 24818 const menuChoices = (0,external_wp_element_namespaceObject.useMemo)(() => { 24819 return (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.map(_ref2 => { 24820 let { 24821 id, 24822 title 24823 } = _ref2; 24824 const label = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title.rendered); 24825 return { 24826 value: id, 24827 label, 24828 ariaLabel: (0,external_wp_i18n_namespaceObject.sprintf)(actionLabel, label) 24829 }; 24830 })) || []; 24831 }, [navigationMenus]); 24832 const hasNavigationMenus = !!(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length); 24833 const hasClassicMenus = !!(classicMenus !== null && classicMenus !== void 0 && classicMenus.length); 24834 const showNavigationMenus = !!canSwitchNavigationMenu; 24835 const showClassicMenus = !!canUserCreateNavigationMenu; 24836 const hasManagePermissions = canUserCreateNavigationMenu || canUserUpdateNavigationMenu; // Show the selector if: 24837 // - has switch or create permissions and there are block or classic menus. 24838 // - user has create or update permisisons and component should show the menu actions. 24839 24840 const showSelectMenus = (canSwitchNavigationMenu || canUserCreateNavigationMenu) && (hasNavigationMenus || hasClassicMenus) || hasManagePermissions && showManageActions; 24841 24842 if (!showSelectMenus) { 24843 return null; 24844 } 24845 24846 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, { 24847 ref: forwardedRef, 24848 label: (0,external_wp_i18n_namespaceObject.__)('Select Menu'), 24849 text: (0,external_wp_i18n_namespaceObject.__)('Select Menu'), 24850 icon: null, 24851 toggleProps: toggleProps 24852 }, _ref3 => { 24853 let { 24854 onClose 24855 } = _ref3; 24856 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, showNavigationMenus && hasNavigationMenus && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { 24857 label: (0,external_wp_i18n_namespaceObject.__)('Menus') 24858 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, { 24859 value: currentMenuId, 24860 onSelect: handleSelect(onClose), 24861 choices: menuChoices 24862 })), showClassicMenus && hasClassicMenus && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { 24863 label: (0,external_wp_i18n_namespaceObject.__)('Classic Menus') 24864 }, classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.map(menu => { 24865 const label = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(menu.name); 24866 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { 24867 onClick: handleSelectClassic(onClose, menu), 24868 key: menu.id, 24869 "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(createActionLabel, label) 24870 }, label); 24871 })), showManageActions && hasManagePermissions && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { 24872 label: (0,external_wp_i18n_namespaceObject.__)('Tools') 24873 }, canUserCreateNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { 24874 onClick: onCreateNew 24875 }, (0,external_wp_i18n_namespaceObject.__)('Create new menu')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { 24876 href: (0,external_wp_url_namespaceObject.addQueryArgs)('edit.php', { 24877 post_type: 'wp_navigation' 24878 }) 24879 }, (0,external_wp_i18n_namespaceObject.__)('Manage menus')))); 24880 }); 24881 } 24882 24883 /* harmony default export */ var navigation_menu_selector = ((0,external_wp_element_namespaceObject.forwardRef)(NavigationMenuSelector)); 24884 24885 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/index.js 24886 24887 24888 /** 24889 * WordPress dependencies 24890 */ 24891 24892 24893 24894 24895 24896 /** 24897 * Internal dependencies 24898 */ 24899 24900 24901 24902 24903 function NavigationPlaceholder(_ref) { 24904 let { 24905 isSelected, 24906 currentMenuId, 24907 clientId, 24908 canUserCreateNavigationMenu = false, 24909 isResolvingCanUserCreateNavigationMenu, 24910 onFinish, 24911 onCreateEmpty 24912 } = _ref; 24913 const { 24914 isResolvingMenus, 24915 hasResolvedMenus 24916 } = useNavigationEntities(); 24917 (0,external_wp_element_namespaceObject.useEffect)(() => { 24918 if (!isSelected) { 24919 return; 24920 } 24921 24922 if (isResolvingMenus) { 24923 (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Loading Navigation block setup options.')); 24924 } 24925 24926 if (hasResolvedMenus) { 24927 (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Navigation block setup options ready.')); 24928 } 24929 }, [isResolvingMenus, isSelected]); 24930 const isResolvingActions = isResolvingMenus && isResolvingCanUserCreateNavigationMenu; 24931 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 24932 className: "wp-block-navigation-placeholder" 24933 }, (0,external_wp_element_namespaceObject.createElement)(placeholder_preview, { 24934 isVisible: !isSelected 24935 }), (0,external_wp_element_namespaceObject.createElement)("div", { 24936 "aria-hidden": !isSelected ? true : undefined, 24937 className: "wp-block-navigation-placeholder__controls" 24938 }, (0,external_wp_element_namespaceObject.createElement)("div", { 24939 className: "wp-block-navigation-placeholder__actions" 24940 }, (0,external_wp_element_namespaceObject.createElement)("div", { 24941 className: "wp-block-navigation-placeholder__actions__indicator" 24942 }, (0,external_wp_element_namespaceObject.createElement)(icon, { 24943 icon: library_navigation 24944 }), " ", (0,external_wp_i18n_namespaceObject.__)('Navigation')), (0,external_wp_element_namespaceObject.createElement)("hr", null), isResolvingActions && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (0,external_wp_element_namespaceObject.createElement)(navigation_menu_selector, { 24945 currentMenuId: currentMenuId, 24946 clientId: clientId, 24947 onSelect: onFinish, 24948 toggleProps: { 24949 variant: 'tertiary', 24950 iconPosition: 'right', 24951 className: 'wp-block-navigation-placeholder__actions__dropdown' 24952 } 24953 }), (0,external_wp_element_namespaceObject.createElement)("hr", null), canUserCreateNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 24954 variant: "tertiary", 24955 onClick: onCreateEmpty 24956 }, (0,external_wp_i18n_namespaceObject.__)('Start empty')))))); 24957 } 24958 24959 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js 24960 24961 24962 /** 24963 * WordPress dependencies 24964 */ 24965 24966 const close_close = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 24967 xmlns: "http://www.w3.org/2000/svg", 24968 viewBox: "0 0 24 24" 24969 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 24970 d: "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z" 24971 })); 24972 /* harmony default export */ var library_close = (close_close); 24973 24974 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/overlay-menu-icon.js 24975 24976 24977 /** 24978 * WordPress dependencies 24979 */ 24980 24981 function OverlayMenuIcon() { 24982 return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 24983 xmlns: "http://www.w3.org/2000/svg", 24984 viewBox: "0 0 24 24", 24985 width: "24", 24986 height: "24", 24987 "aria-hidden": "true", 24988 focusable: "false" 24989 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Rect, { 24990 x: "4", 24991 y: "7.5", 24992 width: "16", 24993 height: "1.5" 24994 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Rect, { 24995 x: "4", 24996 y: "15", 24997 width: "16", 24998 height: "1.5" 24999 })); 25000 } 25001 25002 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/responsive-wrapper.js 25003 25004 25005 /** 25006 * External dependencies 25007 */ 25008 25009 /** 25010 * WordPress dependencies 25011 */ 25012 25013 25014 25015 25016 /** 25017 * Internal dependencies 25018 */ 25019 25020 25021 function ResponsiveWrapper(_ref) { 25022 let { 25023 children, 25024 id, 25025 isOpen, 25026 isResponsive, 25027 onToggle, 25028 isHiddenByDefault, 25029 classNames, 25030 styles, 25031 hasIcon 25032 } = _ref; 25033 25034 if (!isResponsive) { 25035 return children; 25036 } 25037 25038 const responsiveContainerClasses = classnames_default()('wp-block-navigation__responsive-container', classNames, { 25039 'is-menu-open': isOpen, 25040 'hidden-by-default': isHiddenByDefault 25041 }); 25042 const openButtonClasses = classnames_default()('wp-block-navigation__responsive-container-open', { 25043 'always-shown': isHiddenByDefault 25044 }); 25045 const modalId = `$id}-modal`; 25046 const dialogProps = { 25047 className: 'wp-block-navigation__responsive-dialog', 25048 ...(isOpen && { 25049 role: 'dialog', 25050 'aria-modal': true, 25051 'aria-label': (0,external_wp_i18n_namespaceObject.__)('Menu') 25052 }) 25053 }; 25054 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !isOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 25055 "aria-haspopup": "true", 25056 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Open menu'), 25057 className: openButtonClasses, 25058 onClick: () => onToggle(true) 25059 }, hasIcon && (0,external_wp_element_namespaceObject.createElement)(OverlayMenuIcon, null), !hasIcon && (0,external_wp_element_namespaceObject.createElement)("span", { 25060 className: "wp-block-navigation__toggle_button_label" 25061 }, (0,external_wp_i18n_namespaceObject.__)('Menu'))), (0,external_wp_element_namespaceObject.createElement)("div", { 25062 className: responsiveContainerClasses, 25063 style: styles, 25064 id: modalId 25065 }, (0,external_wp_element_namespaceObject.createElement)("div", { 25066 className: "wp-block-navigation__responsive-close", 25067 tabIndex: "-1" 25068 }, (0,external_wp_element_namespaceObject.createElement)("div", dialogProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 25069 className: "wp-block-navigation__responsive-container-close", 25070 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Close menu'), 25071 onClick: () => onToggle(false) 25072 }, (0,external_wp_element_namespaceObject.createElement)(icon, { 25073 icon: library_close 25074 })), (0,external_wp_element_namespaceObject.createElement)("div", { 25075 className: "wp-block-navigation__responsive-container-content", 25076 id: `$modalId}-content` 25077 }, children))))); 25078 } 25079 25080 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/inner-blocks.js 25081 25082 25083 /** 25084 * WordPress dependencies 25085 */ 25086 25087 25088 25089 25090 /** 25091 * Internal dependencies 25092 */ 25093 25094 25095 const inner_blocks_ALLOWED_BLOCKS = ['core/navigation-link', 'core/search', 'core/social-links', 'core/page-list', 'core/spacer', 'core/home-link', 'core/site-title', 'core/site-logo', 'core/navigation-submenu']; 25096 const inner_blocks_DEFAULT_BLOCK = { 25097 name: 'core/navigation-link' 25098 }; 25099 const LAYOUT = { 25100 type: 'default', 25101 alignments: [] 25102 }; 25103 function NavigationInnerBlocks(_ref) { 25104 let { 25105 clientId, 25106 hasCustomPlaceholder, 25107 orientation 25108 } = _ref; 25109 const { 25110 isImmediateParentOfSelectedBlock, 25111 selectedBlockHasChildren, 25112 isSelected 25113 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 25114 const { 25115 getBlockCount, 25116 hasSelectedInnerBlock, 25117 getSelectedBlockClientId 25118 } = select(external_wp_blockEditor_namespaceObject.store); 25119 const selectedBlockId = getSelectedBlockClientId(); 25120 return { 25121 isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false), 25122 selectedBlockHasChildren: !!getBlockCount(selectedBlockId), 25123 // This prop is already available but computing it here ensures it's 25124 // fresh compared to isImmediateParentOfSelectedBlock. 25125 isSelected: selectedBlockId === clientId 25126 }; 25127 }, [clientId]); 25128 const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_navigation'); 25129 const shouldDirectInsert = (0,external_wp_element_namespaceObject.useMemo)(() => blocks.every(_ref2 => { 25130 let { 25131 name 25132 } = _ref2; 25133 return name === 'core/navigation-link' || name === 'core/navigation-submenu' || name === 'core/page-list'; 25134 }), [blocks]); // When the block is selected itself or has a top level item selected that 25135 // doesn't itself have children, show the standard appender. Else show no 25136 // appender. 25137 25138 const parentOrChildHasSelection = isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren; 25139 const placeholder = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_wp_element_namespaceObject.createElement)(placeholder_preview, null), []); 25140 const hasMenuItems = !!(blocks !== null && blocks !== void 0 && blocks.length); // If there is a `ref` attribute pointing to a `wp_navigation` but 25141 // that menu has no **items** (i.e. empty) then show a placeholder. 25142 // The block must also be selected else the placeholder will display 25143 // alongside the appender. 25144 25145 const showPlaceholder = !hasCustomPlaceholder && !hasMenuItems && !isSelected; 25146 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({ 25147 className: 'wp-block-navigation__container' 25148 }, { 25149 value: blocks, 25150 onInput, 25151 onChange, 25152 allowedBlocks: inner_blocks_ALLOWED_BLOCKS, 25153 __experimentalDefaultBlock: inner_blocks_DEFAULT_BLOCK, 25154 __experimentalDirectInsert: shouldDirectInsert, 25155 orientation, 25156 // As an exception to other blocks which feature nesting, show 25157 // the block appender even when a child block is selected. 25158 // This should be a temporary fix, to be replaced by improvements to 25159 // the sibling inserter. 25160 // See https://github.com/WordPress/gutenberg/issues/37572. 25161 renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren || // Show the appender while dragging to allow inserting element between item and the appender. 25162 parentOrChildHasSelection ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false, 25163 // Template lock set to false here so that the Nav 25164 // Block on the experimental menus screen does not 25165 // inherit templateLock={ 'all' }. 25166 templateLock: false, 25167 __experimentalLayout: LAYOUT, 25168 placeholder: showPlaceholder ? placeholder : undefined 25169 }); 25170 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockContentOverlay, { 25171 clientId: clientId, 25172 tagName: 'div', 25173 wrapperProps: innerBlocksProps 25174 }); 25175 } 25176 25177 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-name-control.js 25178 25179 25180 /** 25181 * WordPress dependencies 25182 */ 25183 25184 25185 25186 function NavigationMenuNameControl() { 25187 const [title, updateTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title'); 25188 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 25189 label: (0,external_wp_i18n_namespaceObject.__)('Menu name'), 25190 value: title, 25191 onChange: updateTitle 25192 }); 25193 } 25194 25195 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/create-template-part-id.js 25196 /** 25197 * Generates a template part Id based on slug and theme inputs. 25198 * 25199 * @param {string} theme the template part's theme. 25200 * @param {string} slug the template part's slug 25201 * @return {string|null} the template part's Id. 25202 */ 25203 function createTemplatePartId(theme, slug) { 25204 return theme && slug ? theme + '//' + slug : null; 25205 } 25206 25207 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-template-part-area-label.js 25208 /** 25209 * WordPress dependencies 25210 */ 25211 25212 25213 25214 /** 25215 * Internal dependencies 25216 */ 25217 // TODO: this util should perhaps be refactored somewhere like core-data. 25218 25219 25220 function useTemplatePartAreaLabel(clientId) { 25221 return (0,external_wp_data_namespaceObject.useSelect)(select => { 25222 // Use the lack of a clientId as an opportunity to bypass the rest 25223 // of this hook. 25224 if (!clientId) { 25225 return; 25226 } 25227 25228 const { 25229 getBlock, 25230 getBlockParentsByBlockName 25231 } = select(external_wp_blockEditor_namespaceObject.store); 25232 const withAscendingResults = true; 25233 const parentTemplatePartClientIds = getBlockParentsByBlockName(clientId, 'core/template-part', withAscendingResults); 25234 25235 if (!(parentTemplatePartClientIds !== null && parentTemplatePartClientIds !== void 0 && parentTemplatePartClientIds.length)) { 25236 return; 25237 } // FIXME: @wordpress/block-library should not depend on @wordpress/editor. 25238 // Blocks can be loaded into a *non-post* block editor. 25239 // This code is lifted from this file: 25240 // packages/block-library/src/template-part/edit/advanced-controls.js 25241 // eslint-disable-next-line @wordpress/data-no-store-string-literals 25242 25243 25244 const definedAreas = select('core/editor').__experimentalGetDefaultTemplatePartAreas(); 25245 25246 const { 25247 getEditedEntityRecord 25248 } = select(external_wp_coreData_namespaceObject.store); 25249 25250 for (const templatePartClientId of parentTemplatePartClientIds) { 25251 const templatePartBlock = getBlock(templatePartClientId); // The 'area' usually isn't stored on the block, but instead 25252 // on the entity. 25253 25254 const { 25255 theme, 25256 slug 25257 } = templatePartBlock.attributes; 25258 const templatePartEntityId = createTemplatePartId(theme, slug); 25259 const templatePartEntity = getEditedEntityRecord('postType', 'wp_template_part', templatePartEntityId); // Look up the `label` for the area in the defined areas so 25260 // that an internationalized label can be used. 25261 25262 if (templatePartEntity !== null && templatePartEntity !== void 0 && templatePartEntity.area) { 25263 var _definedAreas$find; 25264 25265 return (_definedAreas$find = definedAreas.find(definedArea => definedArea.area !== 'uncategorized' && definedArea.area === templatePartEntity.area)) === null || _definedAreas$find === void 0 ? void 0 : _definedAreas$find.label; 25266 } 25267 } 25268 }, [clientId]); 25269 } 25270 25271 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-generate-default-navigation-title.js 25272 /** 25273 * WordPress dependencies 25274 */ 25275 25276 25277 25278 25279 25280 /** 25281 * Internal dependencies 25282 */ 25283 25284 25285 const DRAFT_MENU_PARAMS = ['postType', 'wp_navigation', { 25286 status: 'draft', 25287 per_page: -1 25288 }]; 25289 const PUBLISHED_MENU_PARAMS = ['postType', 'wp_navigation', { 25290 per_page: -1, 25291 status: 'publish' 25292 }]; 25293 function useGenerateDefaultNavigationTitle(clientId) { 25294 // The block will be disabled in a block preview, use this as a way of 25295 // avoiding the side-effects of this component for block previews. 25296 const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context); // Because we can't conditionally call hooks, pass an undefined client id 25297 // arg to bypass the expensive `useTemplateArea` code. The hook will return 25298 // early. 25299 25300 const area = useTemplatePartAreaLabel(isDisabled ? undefined : clientId); 25301 const registry = (0,external_wp_data_namespaceObject.useRegistry)(); 25302 return (0,external_wp_element_namespaceObject.useCallback)(async () => { 25303 // Ensure other navigation menus have loaded so an 25304 // accurate name can be created. 25305 if (isDisabled) { 25306 return ''; 25307 } 25308 25309 const { 25310 getEntityRecords 25311 } = registry.resolveSelect(external_wp_coreData_namespaceObject.store); 25312 const [draftNavigationMenus, navigationMenus] = await Promise.all([getEntityRecords(...DRAFT_MENU_PARAMS), getEntityRecords(...PUBLISHED_MENU_PARAMS)]); 25313 const title = area ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation). 25314 (0,external_wp_i18n_namespaceObject.__)('%s navigation'), area) : // translators: 'navigation' as in website navigation. 25315 (0,external_wp_i18n_namespaceObject.__)('Navigation'); // Determine how many menus start with the automatic title. 25316 25317 const matchingMenuTitleCount = [...draftNavigationMenus, ...navigationMenus].reduce((count, menu) => { 25318 var _menu$title, _menu$title$raw; 25319 25320 return menu !== null && menu !== void 0 && (_menu$title = menu.title) !== null && _menu$title !== void 0 && (_menu$title$raw = _menu$title.raw) !== null && _menu$title$raw !== void 0 && _menu$title$raw.startsWith(title) ? count + 1 : count; 25321 }, 0); // Append a number to the end of the title if a menu with 25322 // the same name exists. 25323 25324 const titleWithCount = matchingMenuTitleCount > 0 ? `$title} $matchingMenuTitleCount + 1}` : title; 25325 return titleWithCount || ''; 25326 }, [isDisabled, area]); 25327 } 25328 25329 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-create-navigation-menu.js 25330 /** 25331 * WordPress dependencies 25332 */ 25333 25334 25335 25336 25337 /** 25338 * Internal dependencies 25339 */ 25340 25341 25342 const CREATE_NAVIGATION_MENU_SUCCESS = 'success'; 25343 const CREATE_NAVIGATION_MENU_ERROR = 'error'; 25344 const CREATE_NAVIGATION_MENU_PENDING = 'pending'; 25345 const CREATE_NAVIGATION_MENU_IDLE = 'idle'; 25346 function useCreateNavigationMenu(clientId) { 25347 const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CREATE_NAVIGATION_MENU_IDLE); 25348 const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(null); 25349 const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null); 25350 const { 25351 saveEntityRecord 25352 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store); 25353 const generateDefaultTitle = useGenerateDefaultNavigationTitle(clientId); // This callback uses data from the two placeholder steps and only creates 25354 // a new navigation menu when the user completes the final step. 25355 25356 const create = (0,external_wp_element_namespaceObject.useCallback)(async function () { 25357 let title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; 25358 let blocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; 25359 25360 // Guard against creating Navigations without a title. 25361 // Note you can pass no title, but if one is passed it must be 25362 // a string otherwise the title may end up being empty. 25363 if (title && typeof title !== 'string') { 25364 setError('Invalid title supplied when creating Navigation Menu.'); 25365 setStatus(CREATE_NAVIGATION_MENU_ERROR); 25366 throw new Error(`Value of supplied title argument was not a string.`); 25367 } 25368 25369 setStatus(CREATE_NAVIGATION_MENU_PENDING); 25370 setValue(null); 25371 setError(null); 25372 25373 if (!title) { 25374 title = await generateDefaultTitle().catch(err => { 25375 setError(err === null || err === void 0 ? void 0 : err.message); 25376 setStatus(CREATE_NAVIGATION_MENU_ERROR); 25377 throw new Error('Failed to create title when saving new Navigation Menu.', { 25378 cause: err 25379 }); 25380 }); 25381 } 25382 25383 const record = { 25384 title, 25385 content: (0,external_wp_blocks_namespaceObject.serialize)(blocks), 25386 status: 'publish' 25387 }; // Return affords ability to await on this function directly 25388 25389 return saveEntityRecord('postType', 'wp_navigation', record).then(response => { 25390 setValue(response); 25391 setStatus(CREATE_NAVIGATION_MENU_SUCCESS); 25392 return response; 25393 }).catch(err => { 25394 setError(err === null || err === void 0 ? void 0 : err.message); 25395 setStatus(CREATE_NAVIGATION_MENU_ERROR); 25396 throw new Error('Unable to save new Navigation Menu', { 25397 cause: err 25398 }); 25399 }); 25400 }, [external_wp_blocks_namespaceObject.serialize, saveEntityRecord]); 25401 return { 25402 create, 25403 status, 25404 value, 25405 error 25406 }; 25407 } 25408 25409 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/unsaved-inner-blocks.js 25410 25411 25412 /** 25413 * External dependencies 25414 */ 25415 25416 /** 25417 * WordPress dependencies 25418 */ 25419 25420 25421 25422 25423 25424 25425 /** 25426 * Internal dependencies 25427 */ 25428 25429 25430 25431 const EMPTY_OBJECT = {}; 25432 const unsaved_inner_blocks_DRAFT_MENU_PARAMS = ['postType', 'wp_navigation', { 25433 status: 'draft', 25434 per_page: -1 25435 }]; 25436 const unsaved_inner_blocks_DEFAULT_BLOCK = { 25437 name: 'core/navigation-link' 25438 }; 25439 const unsaved_inner_blocks_ALLOWED_BLOCKS = ['core/navigation-link', 'core/search', 'core/social-links', 'core/page-list', 'core/spacer', 'core/home-link', 'core/site-title', 'core/site-logo', 'core/navigation-submenu']; 25440 function UnsavedInnerBlocks(_ref) { 25441 let { 25442 blockProps, 25443 blocks, 25444 clientId, 25445 hasSavedUnsavedInnerBlocks, 25446 onSave, 25447 hasSelection 25448 } = _ref; 25449 const originalBlocks = (0,external_wp_element_namespaceObject.useRef)(); 25450 (0,external_wp_element_namespaceObject.useEffect)(() => { 25451 // Initially store the uncontrolled inner blocks for 25452 // dirty state comparison. 25453 if (!(originalBlocks !== null && originalBlocks !== void 0 && originalBlocks.current)) { 25454 originalBlocks.current = blocks; 25455 } 25456 }, [blocks]); // If the current inner blocks object is different in any way 25457 // from the original inner blocks from the post content then the 25458 // user has made changes to the inner blocks. At this point the inner 25459 // blocks can be considered "dirty". 25460 25461 const innerBlocksAreDirty = blocks !== originalBlocks.current; 25462 const shouldDirectInsert = (0,external_wp_element_namespaceObject.useMemo)(() => blocks.every(_ref2 => { 25463 let { 25464 name 25465 } = _ref2; 25466 return name === 'core/navigation-link' || name === 'core/navigation-submenu' || name === 'core/page-list'; 25467 }), [blocks]); // The block will be disabled in a block preview, use this as a way of 25468 // avoiding the side-effects of this component for block previews. 25469 25470 const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context); 25471 const savingLock = (0,external_wp_element_namespaceObject.useRef)(false); 25472 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, { 25473 renderAppender: hasSelection ? undefined : false, 25474 allowedBlocks: unsaved_inner_blocks_ALLOWED_BLOCKS, 25475 __experimentalDefaultBlock: unsaved_inner_blocks_DEFAULT_BLOCK, 25476 __experimentalDirectInsert: shouldDirectInsert 25477 }); 25478 const { 25479 isSaving, 25480 draftNavigationMenus, 25481 hasResolvedDraftNavigationMenus 25482 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 25483 if (isDisabled) { 25484 return EMPTY_OBJECT; 25485 } 25486 25487 const { 25488 getEntityRecords, 25489 hasFinishedResolution, 25490 isSavingEntityRecord 25491 } = select(external_wp_coreData_namespaceObject.store); 25492 return { 25493 isSaving: isSavingEntityRecord('postType', 'wp_navigation'), 25494 draftNavigationMenus: getEntityRecords(...unsaved_inner_blocks_DRAFT_MENU_PARAMS), 25495 hasResolvedDraftNavigationMenus: hasFinishedResolution('getEntityRecords', unsaved_inner_blocks_DRAFT_MENU_PARAMS) 25496 }; 25497 }, [isDisabled]); 25498 const { 25499 hasResolvedNavigationMenus, 25500 navigationMenus 25501 } = useNavigationMenu(); 25502 const { 25503 create: createNavigationMenu 25504 } = useCreateNavigationMenu(clientId); // Automatically save the uncontrolled blocks. 25505 25506 (0,external_wp_element_namespaceObject.useEffect)(async () => { 25507 // The block will be disabled when used in a BlockPreview. 25508 // In this case avoid automatic creation of a wp_navigation post. 25509 // Otherwise the user will be spammed with lots of menus! 25510 // 25511 // Also ensure other navigation menus have loaded so an 25512 // accurate name can be created. 25513 // 25514 // Don't try saving when another save is already 25515 // in progress. 25516 // 25517 // And finally only create the menu when the block is selected, 25518 // which is an indication they want to start editing. 25519 if (isDisabled || hasSavedUnsavedInnerBlocks || isSaving || savingLock.current || !hasResolvedDraftNavigationMenus || !hasResolvedNavigationMenus || !hasSelection || !innerBlocksAreDirty) { 25520 return; 25521 } 25522 25523 savingLock.current = true; 25524 const menu = await createNavigationMenu(null, blocks); 25525 onSave(menu); 25526 savingLock.current = false; 25527 }, [isDisabled, isSaving, hasResolvedDraftNavigationMenus, hasResolvedNavigationMenus, draftNavigationMenus, navigationMenus, hasSelection, createNavigationMenu, blocks]); 25528 const Wrapper = isSaving ? external_wp_components_namespaceObject.Disabled : 'div'; 25529 return (0,external_wp_element_namespaceObject.createElement)(Wrapper, { 25530 className: "wp-block-navigation__unsaved-changes" 25531 }, (0,external_wp_element_namespaceObject.createElement)("div", { 25532 className: classnames_default()('wp-block-navigation__unsaved-changes-overlay', { 25533 'is-saving': isSaving 25534 }) 25535 }, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)), isSaving && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)); 25536 } 25537 25538 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-delete-control.js 25539 25540 25541 /** 25542 * WordPress dependencies 25543 */ 25544 25545 25546 25547 25548 25549 function NavigationMenuDeleteControl(_ref) { 25550 let { 25551 onDelete 25552 } = _ref; 25553 const [isConfirmModalVisible, setIsConfirmModalVisible] = (0,external_wp_element_namespaceObject.useState)(false); 25554 const id = (0,external_wp_coreData_namespaceObject.useEntityId)('postType', 'wp_navigation'); 25555 const [title] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title'); 25556 const { 25557 deleteEntityRecord 25558 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store); 25559 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 25560 className: "wp-block-navigation-delete-menu-button", 25561 variant: "secondary", 25562 isDestructive: true, 25563 onClick: () => { 25564 setIsConfirmModalVisible(true); 25565 } 25566 }, (0,external_wp_i18n_namespaceObject.__)('Delete menu')), isConfirmModalVisible && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { 25567 title: (0,external_wp_i18n_namespaceObject.sprintf)( 25568 /* translators: %s: the name of a menu to delete */ 25569 (0,external_wp_i18n_namespaceObject.__)('Delete %s'), title), 25570 closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'), 25571 onRequestClose: () => setIsConfirmModalVisible(false) 25572 }, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to delete this navigation menu?')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, { 25573 justify: "flex-end" 25574 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 25575 variant: "secondary", 25576 onClick: () => { 25577 setIsConfirmModalVisible(false); 25578 } 25579 }, (0,external_wp_i18n_namespaceObject.__)('Cancel'))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 25580 variant: "primary", 25581 onClick: () => { 25582 deleteEntityRecord('postType', 'wp_navigation', id, { 25583 force: true 25584 }); 25585 onDelete(title); 25586 } 25587 }, (0,external_wp_i18n_namespaceObject.__)('Confirm')))))); 25588 } 25589 25590 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-navigation-notice.js 25591 /** 25592 * WordPress dependencies 25593 */ 25594 25595 25596 25597 25598 function useNavigationNotice() { 25599 let { 25600 name, 25601 message = '' 25602 } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 25603 const noticeRef = (0,external_wp_element_namespaceObject.useRef)(); 25604 const { 25605 createWarningNotice, 25606 removeNotice 25607 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); 25608 25609 const showNotice = customMsg => { 25610 if (noticeRef.current) { 25611 return; 25612 } 25613 25614 noticeRef.current = name; 25615 createWarningNotice(customMsg || message, { 25616 id: noticeRef.current, 25617 type: 'snackbar' 25618 }); 25619 }; 25620 25621 const hideNotice = () => { 25622 if (!noticeRef.current) { 25623 return; 25624 } 25625 25626 removeNotice(noticeRef.current); 25627 noticeRef.current = null; 25628 }; 25629 25630 return [showNotice, hideNotice]; 25631 } 25632 25633 /* harmony default export */ var use_navigation_notice = (useNavigationNotice); 25634 25635 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/menu-items-to-blocks.js 25636 /** 25637 * External dependencies 25638 */ 25639 25640 /** 25641 * WordPress dependencies 25642 */ 25643 25644 25645 25646 /** 25647 * Convert a flat menu item structure to a nested blocks structure. 25648 * 25649 * @param {Object[]} menuItems An array of menu items. 25650 * 25651 * @return {WPBlock[]} An array of blocks. 25652 */ 25653 25654 function menuItemsToBlocks(menuItems) { 25655 if (!menuItems) { 25656 return null; 25657 } 25658 25659 const menuTree = createDataTree(menuItems); 25660 const blocks = mapMenuItemsToBlocks(menuTree); 25661 return (0,external_wp_hooks_namespaceObject.applyFilters)('blocks.navigation.__unstableMenuItemsToBlocks', blocks, menuItems); 25662 } 25663 /** 25664 * A recursive function that maps menu item nodes to blocks. 25665 * 25666 * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items. 25667 * @return {Object} Object containing innerBlocks and mapping. 25668 */ 25669 25670 function mapMenuItemsToBlocks(menuItems) { 25671 let mapping = {}; // The menuItem should be in menu_order sort order. 25672 25673 const sortedItems = (0,external_lodash_namespaceObject.sortBy)(menuItems, 'menu_order'); 25674 const innerBlocks = sortedItems.map(menuItem => { 25675 var _menuItem$children, _menuItem$children2; 25676 25677 if (menuItem.type === 'block') { 25678 const [block] = (0,external_wp_blocks_namespaceObject.parse)(menuItem.content.raw); 25679 25680 if (!block) { 25681 return (0,external_wp_blocks_namespaceObject.createBlock)('core/freeform', { 25682 content: menuItem.content 25683 }); 25684 } 25685 25686 return block; 25687 } 25688 25689 const attributes = menuItemToBlockAttributes(menuItem); // If there are children recurse to build those nested blocks. 25690 25691 const { 25692 innerBlocks: nestedBlocks = [], 25693 // alias to avoid shadowing 25694 mapping: nestedMapping = {} // alias to avoid shadowing 25695 25696 } = (_menuItem$children = menuItem.children) !== null && _menuItem$children !== void 0 && _menuItem$children.length ? mapMenuItemsToBlocks(menuItem.children) : {}; // Update parent mapping with nested mapping. 25697 25698 mapping = { ...mapping, 25699 ...nestedMapping 25700 }; 25701 const blockType = (_menuItem$children2 = menuItem.children) !== null && _menuItem$children2 !== void 0 && _menuItem$children2.length ? 'core/navigation-submenu' : 'core/navigation-link'; // Create block with nested "innerBlocks". 25702 25703 const block = (0,external_wp_blocks_namespaceObject.createBlock)(blockType, attributes, nestedBlocks); // Create mapping for menuItem -> block. 25704 25705 mapping[menuItem.id] = block.clientId; 25706 return block; 25707 }); 25708 return { 25709 innerBlocks, 25710 mapping 25711 }; 25712 } 25713 /** 25714 * A WP nav_menu_item object. 25715 * For more documentation on the individual fields present on a menu item please see: 25716 * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789 25717 * 25718 * Changes made here should also be mirrored in packages/edit-navigation/src/store/utils.js. 25719 * 25720 * @typedef WPNavMenuItem 25721 * 25722 * @property {Object} title stores the raw and rendered versions of the title/label for this menu item. 25723 * @property {Array} xfn the XFN relationships expressed in the link of this menu item. 25724 * @property {Array} classes the HTML class attributes for this menu item. 25725 * @property {string} attr_title the HTML title attribute for this menu item. 25726 * @property {string} object The type of object originally represented, such as 'category', 'post', or 'attachment'. 25727 * @property {string} object_id The DB ID of the original object this menu item represents, e.g. ID for posts and term_id for categories. 25728 * @property {string} description The description of this menu item. 25729 * @property {string} url The URL to which this menu item points. 25730 * @property {string} type The family of objects originally represented, such as 'post_type' or 'taxonomy'. 25731 * @property {string} target The target attribute of the link element for this menu item. 25732 */ 25733 25734 /** 25735 * Convert block attributes to menu item. 25736 * 25737 * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes. 25738 * @return {Object} the block attributes converted from the WPNavMenuItem item. 25739 */ 25740 25741 25742 function menuItemToBlockAttributes(_ref) { 25743 var _object; 25744 25745 let { 25746 title: menuItemTitleField, 25747 xfn, 25748 classes, 25749 // eslint-disable-next-line camelcase 25750 attr_title, 25751 object, 25752 // eslint-disable-next-line camelcase 25753 object_id, 25754 description, 25755 url, 25756 type: menuItemTypeField, 25757 target 25758 } = _ref; 25759 25760 // For historical reasons, the `core/navigation-link` variation type is `tag` 25761 // whereas WP Core expects `post_tag` as the `object` type. 25762 // To avoid writing a block migration we perform a conversion here. 25763 // See also inverse equivalent in `blockAttributesToMenuItem`. 25764 if (object && object === 'post_tag') { 25765 object = 'tag'; 25766 } 25767 25768 return { 25769 label: (menuItemTitleField === null || menuItemTitleField === void 0 ? void 0 : menuItemTitleField.rendered) || '', 25770 ...(((_object = object) === null || _object === void 0 ? void 0 : _object.length) && { 25771 type: object 25772 }), 25773 kind: (menuItemTypeField === null || menuItemTypeField === void 0 ? void 0 : menuItemTypeField.replace('_', '-')) || 'custom', 25774 url: url || '', 25775 ...((xfn === null || xfn === void 0 ? void 0 : xfn.length) && xfn.join(' ').trim() && { 25776 rel: xfn.join(' ').trim() 25777 }), 25778 ...((classes === null || classes === void 0 ? void 0 : classes.length) && classes.join(' ').trim() && { 25779 className: classes.join(' ').trim() 25780 }), 25781 25782 /* eslint-disable camelcase */ 25783 ...((attr_title === null || attr_title === void 0 ? void 0 : attr_title.length) && { 25784 title: attr_title 25785 }), 25786 ...(object_id && 'custom' !== object && { 25787 id: object_id 25788 }), 25789 25790 /* eslint-enable camelcase */ 25791 ...((description === null || description === void 0 ? void 0 : description.length) && { 25792 description 25793 }), 25794 ...(target === '_blank' && { 25795 opensInNewTab: true 25796 }) 25797 }; 25798 } 25799 /** 25800 * Creates a nested, hierarchical tree representation from unstructured data that 25801 * has an inherent relationship defined between individual items. 25802 * 25803 * For example, by default, each element in the dataset should have an `id` and 25804 * `parent` property where the `parent` property indicates a relationship between 25805 * the current item and another item with a matching `id` properties. 25806 * 25807 * This is useful for building linked lists of data from flat data structures. 25808 * 25809 * @param {Array} dataset linked data to be rearranged into a hierarchical tree based on relational fields. 25810 * @param {string} id the property which uniquely identifies each entry within the array. 25811 * @param {*} relation the property which identifies how the current item is related to other items in the data (if at all). 25812 * @return {Array} a nested array of parent/child relationships 25813 */ 25814 25815 25816 function createDataTree(dataset) { 25817 let id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id'; 25818 let relation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'parent'; 25819 const hashTable = Object.create(null); 25820 const dataTree = []; 25821 25822 for (const data of dataset) { 25823 hashTable[data[id]] = { ...data, 25824 children: [] 25825 }; 25826 25827 if (data[relation]) { 25828 hashTable[data[relation]] = hashTable[data[relation]] || {}; 25829 hashTable[data[relation]].children = hashTable[data[relation]].children || []; 25830 hashTable[data[relation]].children.push(hashTable[data[id]]); 25831 } else { 25832 dataTree.push(hashTable[data[id]]); 25833 } 25834 } 25835 25836 return dataTree; 25837 } 25838 25839 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js 25840 /** 25841 * WordPress dependencies 25842 */ 25843 25844 25845 25846 25847 /** 25848 * Internal dependencies 25849 */ 25850 25851 25852 25853 const CLASSIC_MENU_CONVERSION_SUCCESS = 'success'; 25854 const CLASSIC_MENU_CONVERSION_ERROR = 'error'; 25855 const CLASSIC_MENU_CONVERSION_PENDING = 'pending'; 25856 const CLASSIC_MENU_CONVERSION_IDLE = 'idle'; 25857 25858 function useConvertClassicToBlockMenu(clientId) { 25859 const { 25860 create: createNavigationMenu 25861 } = useCreateNavigationMenu(clientId); 25862 const registry = (0,external_wp_data_namespaceObject.useRegistry)(); 25863 const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CLASSIC_MENU_CONVERSION_IDLE); 25864 const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(null); 25865 const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null); 25866 25867 async function convertClassicMenuToBlockMenu(menuId, menuName) { 25868 let navigationMenu; 25869 let classicMenuItems; // 1. Fetch the classic Menu items. 25870 25871 try { 25872 classicMenuItems = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getMenuItems({ 25873 menus: menuId, 25874 per_page: -1, 25875 context: 'view' 25876 }); 25877 } catch (err) { 25878 throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation). 25879 (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName), { 25880 cause: err 25881 }); 25882 } // Handle offline response which resolves to `null`. 25883 25884 25885 if (classicMenuItems === null) { 25886 throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation). 25887 (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName)); 25888 } // 2. Convert the classic items into blocks. 25889 25890 25891 const { 25892 innerBlocks 25893 } = menuItemsToBlocks(classicMenuItems); // 3. Create the `wp_navigation` Post with the blocks. 25894 25895 try { 25896 navigationMenu = await createNavigationMenu(menuName, innerBlocks); 25897 } catch (err) { 25898 throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation). 25899 (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), { 25900 cause: err 25901 }); 25902 } 25903 25904 return navigationMenu; 25905 } 25906 25907 const convert = (0,external_wp_element_namespaceObject.useCallback)((menuId, menuName) => { 25908 if (!menuId || !menuName) { 25909 setError('Unable to convert menu. Missing menu details.'); 25910 setStatus(CLASSIC_MENU_CONVERSION_ERROR); 25911 return; 25912 } 25913 25914 setStatus(CLASSIC_MENU_CONVERSION_PENDING); 25915 setValue(null); 25916 setError(null); 25917 convertClassicMenuToBlockMenu(menuId, menuName).then(navMenu => { 25918 setValue(navMenu); 25919 setStatus(CLASSIC_MENU_CONVERSION_SUCCESS); 25920 }).catch(err => { 25921 setError(err === null || err === void 0 ? void 0 : err.message); 25922 setStatus(CLASSIC_MENU_CONVERSION_ERROR); // Rethrow error for debugging. 25923 25924 throw new Error((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation). 25925 (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), { 25926 cause: err 25927 }); 25928 }); 25929 }, [clientId]); 25930 return { 25931 convert, 25932 status, 25933 value, 25934 error 25935 }; 25936 } 25937 25938 /* harmony default export */ var use_convert_classic_menu_to_block_menu = (useConvertClassicToBlockMenu); 25939 25940 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/edit/index.js 25941 25942 25943 /** 25944 * External dependencies 25945 */ 25946 25947 /** 25948 * WordPress dependencies 25949 */ 25950 25951 25952 25953 25954 25955 25956 25957 25958 /** 25959 * Internal dependencies 25960 */ 25961 25962 25963 25964 25965 25966 25967 25968 25969 25970 25971 25972 25973 25974 25975 const EMPTY_ARRAY = []; 25976 25977 function getComputedStyle(node) { 25978 return node.ownerDocument.defaultView.getComputedStyle(node); 25979 } 25980 25981 function detectColors(colorsDetectionElement, setColor, setBackground) { 25982 if (!colorsDetectionElement) { 25983 return; 25984 } 25985 25986 setColor(getComputedStyle(colorsDetectionElement).color); 25987 let backgroundColorNode = colorsDetectionElement; 25988 let backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor; 25989 25990 while (backgroundColor === 'rgba(0, 0, 0, 0)' && backgroundColorNode.parentNode && backgroundColorNode.parentNode.nodeType === backgroundColorNode.parentNode.ELEMENT_NODE) { 25991 backgroundColorNode = backgroundColorNode.parentNode; 25992 backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor; 25993 } 25994 25995 setBackground(backgroundColor); 25996 } 25997 25998 function Navigation(_ref) { 25999 var _attributes$style, _attributes$style$typ; 26000 26001 let { 26002 attributes, 26003 setAttributes, 26004 clientId, 26005 isSelected, 26006 className, 26007 backgroundColor, 26008 setBackgroundColor, 26009 textColor, 26010 setTextColor, 26011 overlayBackgroundColor, 26012 setOverlayBackgroundColor, 26013 overlayTextColor, 26014 setOverlayTextColor, 26015 // These props are used by the navigation editor to override specific 26016 // navigation block settings. 26017 hasSubmenuIndicatorSetting = true, 26018 hasColorSettings = true, 26019 customPlaceholder: CustomPlaceholder = null 26020 } = _ref; 26021 const { 26022 openSubmenusOnClick, 26023 overlayMenu, 26024 showSubmenuIcon, 26025 layout: { 26026 justifyContent, 26027 orientation = 'horizontal', 26028 flexWrap = 'wrap' 26029 } = {}, 26030 hasIcon 26031 } = attributes; 26032 const ref = attributes.ref; 26033 const registry = (0,external_wp_data_namespaceObject.useRegistry)(); 26034 26035 const setRef = postId => { 26036 setAttributes({ 26037 ref: postId 26038 }); 26039 }; 26040 26041 const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(`navigationMenu/$ref}`); // Preload classic menus, so that they don't suddenly pop-in when viewing 26042 // the Select Menu dropdown. 26043 26044 useNavigationEntities(); 26045 const [showNavigationMenuDeleteNotice] = use_navigation_notice({ 26046 name: 'block-library/core/navigation/delete' 26047 }); 26048 const [showNavigationMenuCreateNotice, hideNavigationMenuCreateNotice] = use_navigation_notice({ 26049 name: 'block-library/core/navigation/create' 26050 }); 26051 const { 26052 create: createNavigationMenu, 26053 status: createNavigationMenuStatus, 26054 error: createNavigationMenuError, 26055 value: createNavigationMenuPost 26056 } = useCreateNavigationMenu(clientId); 26057 const isCreatingNavigationMenu = createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING; 26058 (0,external_wp_element_namespaceObject.useEffect)(() => { 26059 hideNavigationMenuCreateNotice(); 26060 26061 if (createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING) { 26062 (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)(`Creating Navigation Menu.`)); 26063 } 26064 26065 if (createNavigationMenuStatus === CREATE_NAVIGATION_MENU_SUCCESS) { 26066 setRef(createNavigationMenuPost.id); 26067 selectBlock(clientId); 26068 showNavigationMenuCreateNotice((0,external_wp_i18n_namespaceObject.__)(`Navigation Menu successfully created.`)); 26069 } 26070 26071 if (createNavigationMenuStatus === CREATE_NAVIGATION_MENU_ERROR) { 26072 showNavigationMenuCreateNotice((0,external_wp_i18n_namespaceObject.__)('Failed to create Navigation Menu.')); 26073 } 26074 }, [createNavigationMenu, createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost]); 26075 const { 26076 hasUncontrolledInnerBlocks, 26077 uncontrolledInnerBlocks, 26078 isInnerBlockSelected, 26079 hasSubmenus 26080 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 26081 const { 26082 getBlock, 26083 getBlocks, 26084 hasSelectedInnerBlock 26085 } = select(external_wp_blockEditor_namespaceObject.store); // This relies on the fact that `getBlock` won't return controlled 26086 // inner blocks, while `getBlocks` does. It might be more stable to 26087 // introduce a selector like `getUncontrolledInnerBlocks`, just in 26088 // case `getBlock` is fixed. 26089 26090 const _uncontrolledInnerBlocks = getBlock(clientId).innerBlocks; 26091 26092 const _hasUncontrolledInnerBlocks = !!(_uncontrolledInnerBlocks !== null && _uncontrolledInnerBlocks !== void 0 && _uncontrolledInnerBlocks.length); 26093 26094 const _controlledInnerBlocks = _hasUncontrolledInnerBlocks ? EMPTY_ARRAY : getBlocks(clientId); 26095 26096 const innerBlocks = _hasUncontrolledInnerBlocks ? _uncontrolledInnerBlocks : _controlledInnerBlocks; 26097 return { 26098 hasSubmenus: !!innerBlocks.find(block => block.name === 'core/navigation-submenu'), 26099 hasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks, 26100 uncontrolledInnerBlocks: _uncontrolledInnerBlocks, 26101 isInnerBlockSelected: hasSelectedInnerBlock(clientId, true) 26102 }; 26103 }, [clientId]); 26104 const { 26105 replaceInnerBlocks, 26106 selectBlock, 26107 __unstableMarkNextChangeAsNotPersistent 26108 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 26109 const [hasSavedUnsavedInnerBlocks, setHasSavedUnsavedInnerBlocks] = (0,external_wp_element_namespaceObject.useState)(false); 26110 const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = (0,external_wp_element_namespaceObject.useState)(false); 26111 const [overlayMenuPreview, setOverlayMenuPreview] = (0,external_wp_element_namespaceObject.useState)(false); 26112 const { 26113 hasResolvedNavigationMenus, 26114 isNavigationMenuResolved, 26115 isNavigationMenuMissing, 26116 navigationMenus, 26117 navigationMenu, 26118 canUserUpdateNavigationMenu, 26119 hasResolvedCanUserUpdateNavigationMenu, 26120 canUserDeleteNavigationMenu, 26121 hasResolvedCanUserDeleteNavigationMenu, 26122 canUserCreateNavigationMenu, 26123 isResolvingCanUserCreateNavigationMenu, 26124 hasResolvedCanUserCreateNavigationMenu 26125 } = useNavigationMenu(ref); // Attempt to retrieve and prioritize any existing navigation menu unless 26126 // a specific ref is allocated or the user is explicitly creating a new menu. The aim is 26127 // for the block to "just work" from a user perspective using existing data. 26128 26129 (0,external_wp_element_namespaceObject.useEffect)(() => { 26130 if (isCreatingNavigationMenu || ref || !(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length) || (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 1) { 26131 return; 26132 } 26133 26134 setRef(navigationMenus[0].id); 26135 }, [navigationMenus]); 26136 const navRef = (0,external_wp_element_namespaceObject.useRef)(); 26137 const isDraftNavigationMenu = (navigationMenu === null || navigationMenu === void 0 ? void 0 : navigationMenu.status) === 'draft'; 26138 const { 26139 convert, 26140 status: classicMenuConversionStatus, 26141 error: classicMenuConversionError, 26142 value: classicMenuConversionResult 26143 } = use_convert_classic_menu_to_block_menu(clientId); 26144 const isConvertingClassicMenu = classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING; // The standard HTML5 tag for the block wrapper. 26145 26146 const TagName = 'nav'; // "placeholder" shown if: 26147 // - there is no ref attribute pointing to a Navigation Post. 26148 // - there is no classic menu conversion process in progress. 26149 // - there is no menu creation process in progress. 26150 // - there are no uncontrolled blocks. 26151 26152 const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && !hasUncontrolledInnerBlocks; 26153 const isEntityAvailable = !isNavigationMenuMissing && isNavigationMenuResolved; // "loading" state: 26154 // - there is a menu creation process in progress. 26155 // - there is a classic menu conversion process in progress. 26156 // OR 26157 // - there is a ref attribute pointing to a Navigation Post 26158 // - the Navigation Post isn't available (hasn't resolved) yet. 26159 26160 const isLoading = !hasResolvedNavigationMenus || isCreatingNavigationMenu || isConvertingClassicMenu || !!(ref && !isEntityAvailable && !isConvertingClassicMenu); 26161 const textDecoration = (_attributes$style = attributes.style) === null || _attributes$style === void 0 ? void 0 : (_attributes$style$typ = _attributes$style.typography) === null || _attributes$style$typ === void 0 ? void 0 : _attributes$style$typ.textDecoration; 26162 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 26163 ref: navRef, 26164 className: classnames_default()(className, { 26165 'items-justified-right': justifyContent === 'right', 26166 'items-justified-space-between': justifyContent === 'space-between', 26167 'items-justified-left': justifyContent === 'left', 26168 'items-justified-center': justifyContent === 'center', 26169 'is-vertical': orientation === 'vertical', 26170 'no-wrap': flexWrap === 'nowrap', 26171 'is-responsive': 'never' !== overlayMenu, 26172 'has-text-color': !!textColor.color || !!(textColor !== null && textColor !== void 0 && textColor.class), 26173 [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor === null || textColor === void 0 ? void 0 : textColor.slug)]: !!(textColor !== null && textColor !== void 0 && textColor.slug), 26174 'has-background': !!backgroundColor.color || backgroundColor.class, 26175 [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.slug)]: !!(backgroundColor !== null && backgroundColor !== void 0 && backgroundColor.slug), 26176 [`has-text-decoration-$textDecoration}`]: textDecoration 26177 }), 26178 style: { 26179 color: !(textColor !== null && textColor !== void 0 && textColor.slug) && (textColor === null || textColor === void 0 ? void 0 : textColor.color), 26180 backgroundColor: !(backgroundColor !== null && backgroundColor !== void 0 && backgroundColor.slug) && (backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.color) 26181 } 26182 }); 26183 const overlayClassnames = classnames_default()({ 26184 'has-text-color': !!overlayTextColor.color || !!(overlayTextColor !== null && overlayTextColor !== void 0 && overlayTextColor.class), 26185 [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', overlayTextColor === null || overlayTextColor === void 0 ? void 0 : overlayTextColor.slug)]: !!(overlayTextColor !== null && overlayTextColor !== void 0 && overlayTextColor.slug), 26186 'has-background': !!overlayBackgroundColor.color || (overlayBackgroundColor === null || overlayBackgroundColor === void 0 ? void 0 : overlayBackgroundColor.class), 26187 [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayBackgroundColor === null || overlayBackgroundColor === void 0 ? void 0 : overlayBackgroundColor.slug)]: !!(overlayBackgroundColor !== null && overlayBackgroundColor !== void 0 && overlayBackgroundColor.slug) 26188 }); 26189 const overlayStyles = { 26190 color: !(overlayTextColor !== null && overlayTextColor !== void 0 && overlayTextColor.slug) && (overlayTextColor === null || overlayTextColor === void 0 ? void 0 : overlayTextColor.color), 26191 backgroundColor: !(overlayBackgroundColor !== null && overlayBackgroundColor !== void 0 && overlayBackgroundColor.slug) && (overlayBackgroundColor === null || overlayBackgroundColor === void 0 ? void 0 : overlayBackgroundColor.color) && overlayBackgroundColor.color 26192 }; // Turn on contrast checker for web only since it's not supported on mobile yet. 26193 26194 const enableContrastChecking = external_wp_element_namespaceObject.Platform.OS === 'web'; 26195 const [detectedBackgroundColor, setDetectedBackgroundColor] = (0,external_wp_element_namespaceObject.useState)(); 26196 const [detectedColor, setDetectedColor] = (0,external_wp_element_namespaceObject.useState)(); 26197 const [detectedOverlayBackgroundColor, setDetectedOverlayBackgroundColor] = (0,external_wp_element_namespaceObject.useState)(); 26198 const [detectedOverlayColor, setDetectedOverlayColor] = (0,external_wp_element_namespaceObject.useState)(); 26199 const [showClassicMenuConversionErrorNotice, hideClassicMenuConversionErrorNotice] = use_navigation_notice({ 26200 name: 'block-library/core/navigation/classic-menu-conversion/error' 26201 }); 26202 26203 function handleUpdateMenu(menuId) { 26204 setRef(menuId); 26205 selectBlock(clientId); 26206 } 26207 26208 (0,external_wp_element_namespaceObject.useEffect)(() => { 26209 if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING) { 26210 (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu importing.')); 26211 } 26212 26213 if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS && classicMenuConversionResult) { 26214 handleUpdateMenu(classicMenuConversionResult === null || classicMenuConversionResult === void 0 ? void 0 : classicMenuConversionResult.id); 26215 hideClassicMenuConversionErrorNotice(); 26216 (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu imported successfully.')); 26217 } 26218 26219 if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR) { 26220 showClassicMenuConversionErrorNotice(classicMenuConversionError); 26221 (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu import failed.')); 26222 } 26223 }, [classicMenuConversionStatus, classicMenuConversionResult, classicMenuConversionError]); // Spacer block needs orientation from context. This is a patch until 26224 // https://github.com/WordPress/gutenberg/issues/36197 is addressed. 26225 26226 (0,external_wp_element_namespaceObject.useEffect)(() => { 26227 if (orientation) { 26228 __unstableMarkNextChangeAsNotPersistent(); 26229 26230 setAttributes({ 26231 orientation 26232 }); 26233 } 26234 }, [orientation]); 26235 (0,external_wp_element_namespaceObject.useEffect)(() => { 26236 var _navRef$current; 26237 26238 if (!enableContrastChecking) { 26239 return; 26240 } 26241 26242 detectColors(navRef.current, setDetectedColor, setDetectedBackgroundColor); 26243 const subMenuElement = (_navRef$current = navRef.current) === null || _navRef$current === void 0 ? void 0 : _navRef$current.querySelector('[data-type="core/navigation-link"] [data-type="core/navigation-link"]'); 26244 26245 if (subMenuElement) { 26246 detectColors(subMenuElement, setDetectedOverlayColor, setDetectedOverlayBackgroundColor); 26247 } 26248 }); 26249 const [showCantEditNotice, hideCantEditNotice] = use_navigation_notice({ 26250 name: 'block-library/core/navigation/permissions/update', 26251 message: (0,external_wp_i18n_namespaceObject.__)('You do not have permission to edit this Menu. Any changes made will not be saved.') 26252 }); 26253 const [showCantCreateNotice, hideCantCreateNotice] = use_navigation_notice({ 26254 name: 'block-library/core/navigation/permissions/create', 26255 message: (0,external_wp_i18n_namespaceObject.__)('You do not have permission to create Navigation Menus.') 26256 }); 26257 (0,external_wp_element_namespaceObject.useEffect)(() => { 26258 if (!isSelected && !isInnerBlockSelected) { 26259 hideCantEditNotice(); 26260 hideCantCreateNotice(); 26261 } 26262 26263 if (isSelected || isInnerBlockSelected) { 26264 if (hasResolvedCanUserUpdateNavigationMenu && !canUserUpdateNavigationMenu) { 26265 showCantEditNotice(); 26266 } 26267 26268 if (!ref && hasResolvedCanUserCreateNavigationMenu && !canUserCreateNavigationMenu) { 26269 showCantCreateNotice(); 26270 } 26271 } 26272 }, [isSelected, isInnerBlockSelected, canUserUpdateNavigationMenu, hasResolvedCanUserUpdateNavigationMenu, canUserCreateNavigationMenu, hasResolvedCanUserCreateNavigationMenu, ref]); 26273 const navigationSelectorRef = (0,external_wp_element_namespaceObject.useRef)(); 26274 const [shouldFocusNavigationSelector, setShouldFocusNavigationSelector] = (0,external_wp_element_namespaceObject.useState)(false); 26275 const handleSelectNavigation = (0,external_wp_element_namespaceObject.useCallback)(navPostOrClassicMenu => { 26276 if (!navPostOrClassicMenu) { 26277 return; 26278 } 26279 26280 const isClassicMenu = navPostOrClassicMenu.hasOwnProperty('auto_add'); 26281 26282 if (isClassicMenu) { 26283 convert(navPostOrClassicMenu.id, navPostOrClassicMenu.name); 26284 } else { 26285 handleUpdateMenu(navPostOrClassicMenu.id); 26286 } 26287 26288 setShouldFocusNavigationSelector(true); 26289 }, [convert, handleUpdateMenu]); // Focus support after menu selection. 26290 26291 (0,external_wp_element_namespaceObject.useEffect)(() => { 26292 var _navigationSelectorRe; 26293 26294 if (isDraftNavigationMenu || !isEntityAvailable || !shouldFocusNavigationSelector) { 26295 return; 26296 } 26297 26298 navigationSelectorRef === null || navigationSelectorRef === void 0 ? void 0 : (_navigationSelectorRe = navigationSelectorRef.current) === null || _navigationSelectorRe === void 0 ? void 0 : _navigationSelectorRe.focus(); 26299 setShouldFocusNavigationSelector(false); 26300 }, [isDraftNavigationMenu, isEntityAvailable, shouldFocusNavigationSelector]); 26301 const resetToEmptyBlock = (0,external_wp_element_namespaceObject.useCallback)(() => { 26302 registry.batch(() => { 26303 setAttributes({ 26304 ref: undefined 26305 }); 26306 26307 if (!ref) { 26308 replaceInnerBlocks(clientId, []); 26309 } 26310 }); 26311 }, [clientId, ref]); // If the block has inner blocks, but no menu id, then these blocks are either: 26312 // - inserted via a pattern. 26313 // - inserted directly via Code View (or otherwise). 26314 // - from an older version of navigation block added before the block used a wp_navigation entity. 26315 // Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks, 26316 // that automatically saves the menu as an entity when changes are made to the inner blocks. 26317 26318 const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable; 26319 26320 if (hasUnsavedBlocks) { 26321 return (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(ResponsiveWrapper, { 26322 id: clientId, 26323 onToggle: setResponsiveMenuVisibility, 26324 isOpen: isResponsiveMenuOpen, 26325 isResponsive: 'never' !== overlayMenu, 26326 isHiddenByDefault: 'always' === overlayMenu, 26327 classNames: overlayClassnames, 26328 styles: overlayStyles 26329 }, (0,external_wp_element_namespaceObject.createElement)(UnsavedInnerBlocks, { 26330 blockProps: blockProps, 26331 blocks: uncontrolledInnerBlocks, 26332 clientId: clientId, 26333 navigationMenus: navigationMenus, 26334 hasSelection: isSelected || isInnerBlockSelected, 26335 hasSavedUnsavedInnerBlocks: hasSavedUnsavedInnerBlocks, 26336 onSave: post => { 26337 // Set some state used as a guard to prevent the creation of multiple posts. 26338 setHasSavedUnsavedInnerBlocks(true); // Switch to using the wp_navigation entity. 26339 26340 setRef(post.id); 26341 showNavigationMenuCreateNotice((0,external_wp_i18n_namespaceObject.__)(`New Navigation Menu created.`)); 26342 } 26343 }))); 26344 } // Show a warning if the selected menu is no longer available. 26345 // TODO - the user should be able to select a new one? 26346 26347 26348 if (ref && isNavigationMenuMissing) { 26349 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Navigation menu has been deleted or is unavailable. '), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 26350 onClick: resetToEmptyBlock, 26351 variant: "link" 26352 }, (0,external_wp_i18n_namespaceObject.__)('Create a new menu?')))); 26353 } 26354 26355 if (isEntityAvailable && hasAlreadyRendered) { 26356 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.'))); 26357 } 26358 26359 const PlaceholderComponent = CustomPlaceholder ? CustomPlaceholder : NavigationPlaceholder; 26360 const isResponsive = 'never' !== overlayMenu; 26361 const overlayMenuPreviewClasses = classnames_default()('wp-block-navigation__overlay-menu-preview', { 26362 open: overlayMenuPreview 26363 }); 26364 26365 if (isPlaceholder) { 26366 return (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(PlaceholderComponent, { 26367 isSelected: isSelected, 26368 currentMenuId: ref, 26369 clientId: clientId, 26370 canUserCreateNavigationMenu: canUserCreateNavigationMenu, 26371 isResolvingCanUserCreateNavigationMenu: isResolvingCanUserCreateNavigationMenu, 26372 onFinish: handleSelectNavigation, 26373 onCreateEmpty: () => createNavigationMenu('', []) 26374 })); 26375 } 26376 26377 return (0,external_wp_element_namespaceObject.createElement)(external_wp_coreData_namespaceObject.EntityProvider, { 26378 kind: "postType", 26379 type: "wp_navigation", 26380 id: ref 26381 }, (0,external_wp_element_namespaceObject.createElement)(RecursionProvider, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, !isDraftNavigationMenu && isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { 26382 className: "wp-block-navigation__toolbar-menu-selector" 26383 }, (0,external_wp_element_namespaceObject.createElement)(navigation_menu_selector, { 26384 ref: navigationSelectorRef, 26385 currentMenuId: ref, 26386 clientId: clientId, 26387 onSelect: handleSelectNavigation, 26388 onCreateNew: resetToEmptyBlock 26389 /* translators: %s: The name of a menu. */ 26390 , 26391 actionLabel: (0,external_wp_i18n_namespaceObject.__)("Switch to '%s'"), 26392 showManageActions: true 26393 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, hasSubmenuIndicatorSetting && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 26394 title: (0,external_wp_i18n_namespaceObject.__)('Display') 26395 }, isResponsive && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 26396 className: overlayMenuPreviewClasses, 26397 onClick: () => { 26398 setOverlayMenuPreview(!overlayMenuPreview); 26399 } 26400 }, hasIcon && (0,external_wp_element_namespaceObject.createElement)(OverlayMenuIcon, null), !hasIcon && (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('Menu'))), overlayMenuPreview && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 26401 label: (0,external_wp_i18n_namespaceObject.__)('Show icon button'), 26402 help: (0,external_wp_i18n_namespaceObject.__)('Configure the visual appearance of the button opening the overlay menu.'), 26403 onChange: value => setAttributes({ 26404 hasIcon: value 26405 }), 26406 checked: hasIcon 26407 }), (0,external_wp_element_namespaceObject.createElement)("h3", null, (0,external_wp_i18n_namespaceObject.__)('Overlay Menu')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { 26408 label: (0,external_wp_i18n_namespaceObject.__)('Configure overlay menu'), 26409 value: overlayMenu, 26410 help: (0,external_wp_i18n_namespaceObject.__)('Collapses the navigation options in a menu icon opening an overlay.'), 26411 onChange: value => setAttributes({ 26412 overlayMenu: value 26413 }), 26414 isBlock: true, 26415 hideLabelFromVision: true 26416 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 26417 value: "never", 26418 label: (0,external_wp_i18n_namespaceObject.__)('Off') 26419 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 26420 value: "mobile", 26421 label: (0,external_wp_i18n_namespaceObject.__)('Mobile') 26422 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 26423 value: "always", 26424 label: (0,external_wp_i18n_namespaceObject.__)('Always') 26425 })), hasSubmenus && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("h3", null, (0,external_wp_i18n_namespaceObject.__)('Submenus')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 26426 checked: openSubmenusOnClick, 26427 onChange: value => { 26428 setAttributes({ 26429 openSubmenusOnClick: value, 26430 ...(value && { 26431 showSubmenuIcon: true 26432 }) // Make sure arrows are shown when we toggle this on. 26433 26434 }); 26435 }, 26436 label: (0,external_wp_i18n_namespaceObject.__)('Open on click') 26437 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 26438 checked: showSubmenuIcon, 26439 onChange: value => { 26440 setAttributes({ 26441 showSubmenuIcon: value 26442 }); 26443 }, 26444 disabled: attributes.openSubmenusOnClick, 26445 label: (0,external_wp_i18n_namespaceObject.__)('Show arrow') 26446 }))), hasColorSettings && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PanelColorSettings, { 26447 __experimentalHasMultipleOrigins: true, 26448 __experimentalIsRenderedInSidebar: true, 26449 title: (0,external_wp_i18n_namespaceObject.__)('Color'), 26450 initialOpen: false, 26451 colorSettings: [{ 26452 value: textColor.color, 26453 onChange: setTextColor, 26454 label: (0,external_wp_i18n_namespaceObject.__)('Text') 26455 }, { 26456 value: backgroundColor.color, 26457 onChange: setBackgroundColor, 26458 label: (0,external_wp_i18n_namespaceObject.__)('Background') 26459 }, { 26460 value: overlayTextColor.color, 26461 onChange: setOverlayTextColor, 26462 label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay text') 26463 }, { 26464 value: overlayBackgroundColor.color, 26465 onChange: setOverlayBackgroundColor, 26466 label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay background') 26467 }] 26468 }, enableContrastChecking && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ContrastChecker, { 26469 backgroundColor: detectedBackgroundColor, 26470 textColor: detectedColor 26471 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ContrastChecker, { 26472 backgroundColor: detectedOverlayBackgroundColor, 26473 textColor: detectedOverlayColor 26474 })))), isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, { 26475 __experimentalGroup: "advanced" 26476 }, hasResolvedCanUserUpdateNavigationMenu && canUserUpdateNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(NavigationMenuNameControl, null), hasResolvedCanUserDeleteNavigationMenu && canUserDeleteNavigationMenu && (0,external_wp_element_namespaceObject.createElement)(NavigationMenuDeleteControl, { 26477 onDelete: function () { 26478 let deletedMenuTitle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; 26479 resetToEmptyBlock(); 26480 showNavigationMenuDeleteNotice((0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation). 26481 (0,external_wp_i18n_namespaceObject.__)('Navigation menu %s successfully deleted.'), deletedMenuTitle)); 26482 } 26483 })), isLoading && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, { 26484 className: "wp-block-navigation__loading-indicator" 26485 })), !isLoading && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(ResponsiveWrapper, { 26486 id: clientId, 26487 onToggle: setResponsiveMenuVisibility, 26488 label: (0,external_wp_i18n_namespaceObject.__)('Menu'), 26489 hasIcon: hasIcon, 26490 isOpen: isResponsiveMenuOpen, 26491 isResponsive: isResponsive, 26492 isHiddenByDefault: 'always' === overlayMenu, 26493 classNames: overlayClassnames, 26494 styles: overlayStyles 26495 }, isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(NavigationInnerBlocks, { 26496 clientId: clientId, 26497 hasCustomPlaceholder: !!CustomPlaceholder, 26498 orientation: orientation 26499 }))))); 26500 } 26501 26502 /* harmony default export */ var navigation_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)({ 26503 textColor: 'color' 26504 }, { 26505 backgroundColor: 'color' 26506 }, { 26507 overlayBackgroundColor: 'color' 26508 }, { 26509 overlayTextColor: 'color' 26510 })(Navigation)); 26511 26512 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/save.js 26513 26514 26515 /** 26516 * WordPress dependencies 26517 */ 26518 26519 function navigation_save_save(_ref) { 26520 let { 26521 attributes 26522 } = _ref; 26523 26524 if (attributes.ref) { 26525 // Avoid rendering inner blocks when a ref is defined. 26526 // When this id is defined the inner blocks are loaded from the 26527 // `wp_navigation` entity rather than the hard-coded block html. 26528 return; 26529 } 26530 26531 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 26532 } 26533 26534 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/deprecated.js 26535 26536 26537 /** 26538 * External dependencies 26539 */ 26540 26541 /** 26542 * WordPress dependencies 26543 */ 26544 26545 26546 26547 /** 26548 * Internal dependencies 26549 */ 26550 26551 26552 const TYPOGRAPHY_PRESET_DEPRECATION_MAP = { 26553 fontStyle: 'var:preset|font-style|', 26554 fontWeight: 'var:preset|font-weight|', 26555 textDecoration: 'var:preset|text-decoration|', 26556 textTransform: 'var:preset|text-transform|' 26557 }; 26558 26559 const migrateIdToRef = _ref => { 26560 let { 26561 navigationMenuId, 26562 ...attributes 26563 } = _ref; 26564 return { ...attributes, 26565 ref: navigationMenuId 26566 }; 26567 }; 26568 26569 const deprecated_migrateWithLayout = attributes => { 26570 if (!!attributes.layout) { 26571 return attributes; 26572 } 26573 26574 const { 26575 itemsJustification, 26576 orientation, 26577 ...updatedAttributes 26578 } = attributes; 26579 26580 if (itemsJustification || orientation) { 26581 Object.assign(updatedAttributes, { 26582 layout: { 26583 type: 'flex', 26584 ...(itemsJustification && { 26585 justifyContent: itemsJustification 26586 }), 26587 ...(orientation && { 26588 orientation 26589 }) 26590 } 26591 }); 26592 } 26593 26594 return updatedAttributes; 26595 }; 26596 26597 const navigation_deprecated_v6 = { 26598 attributes: { 26599 navigationMenuId: { 26600 type: 'number' 26601 }, 26602 textColor: { 26603 type: 'string' 26604 }, 26605 customTextColor: { 26606 type: 'string' 26607 }, 26608 rgbTextColor: { 26609 type: 'string' 26610 }, 26611 backgroundColor: { 26612 type: 'string' 26613 }, 26614 customBackgroundColor: { 26615 type: 'string' 26616 }, 26617 rgbBackgroundColor: { 26618 type: 'string' 26619 }, 26620 showSubmenuIcon: { 26621 type: 'boolean', 26622 default: true 26623 }, 26624 openSubmenusOnClick: { 26625 type: 'boolean', 26626 default: false 26627 }, 26628 overlayMenu: { 26629 type: 'string', 26630 default: 'mobile' 26631 }, 26632 __unstableLocation: { 26633 type: 'string' 26634 }, 26635 overlayBackgroundColor: { 26636 type: 'string' 26637 }, 26638 customOverlayBackgroundColor: { 26639 type: 'string' 26640 }, 26641 overlayTextColor: { 26642 type: 'string' 26643 }, 26644 customOverlayTextColor: { 26645 type: 'string' 26646 } 26647 }, 26648 supports: { 26649 align: ['wide', 'full'], 26650 anchor: true, 26651 html: false, 26652 inserter: true, 26653 typography: { 26654 fontSize: true, 26655 lineHeight: true, 26656 __experimentalFontStyle: true, 26657 __experimentalFontWeight: true, 26658 __experimentalTextTransform: true, 26659 __experimentalFontFamily: true, 26660 __experimentalTextDecoration: true, 26661 __experimentalDefaultControls: { 26662 fontSize: true 26663 } 26664 }, 26665 spacing: { 26666 blockGap: true, 26667 units: ['px', 'em', 'rem', 'vh', 'vw'], 26668 __experimentalDefaultControls: { 26669 blockGap: true 26670 } 26671 }, 26672 __experimentalLayout: { 26673 allowSwitching: false, 26674 allowInheriting: false, 26675 default: { 26676 type: 'flex' 26677 } 26678 } 26679 }, 26680 26681 save() { 26682 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 26683 }, 26684 26685 isEligible: _ref2 => { 26686 let { 26687 navigationMenuId 26688 } = _ref2; 26689 return !!navigationMenuId; 26690 }, 26691 migrate: migrateIdToRef 26692 }; 26693 const navigation_deprecated_v5 = { 26694 attributes: { 26695 navigationMenuId: { 26696 type: 'number' 26697 }, 26698 orientation: { 26699 type: 'string', 26700 default: 'horizontal' 26701 }, 26702 textColor: { 26703 type: 'string' 26704 }, 26705 customTextColor: { 26706 type: 'string' 26707 }, 26708 rgbTextColor: { 26709 type: 'string' 26710 }, 26711 backgroundColor: { 26712 type: 'string' 26713 }, 26714 customBackgroundColor: { 26715 type: 'string' 26716 }, 26717 rgbBackgroundColor: { 26718 type: 'string' 26719 }, 26720 itemsJustification: { 26721 type: 'string' 26722 }, 26723 showSubmenuIcon: { 26724 type: 'boolean', 26725 default: true 26726 }, 26727 openSubmenusOnClick: { 26728 type: 'boolean', 26729 default: false 26730 }, 26731 overlayMenu: { 26732 type: 'string', 26733 default: 'never' 26734 }, 26735 __unstableLocation: { 26736 type: 'string' 26737 }, 26738 overlayBackgroundColor: { 26739 type: 'string' 26740 }, 26741 customOverlayBackgroundColor: { 26742 type: 'string' 26743 }, 26744 overlayTextColor: { 26745 type: 'string' 26746 }, 26747 customOverlayTextColor: { 26748 type: 'string' 26749 } 26750 }, 26751 supports: { 26752 align: ['wide', 'full'], 26753 anchor: true, 26754 html: false, 26755 inserter: true, 26756 typography: { 26757 fontSize: true, 26758 lineHeight: true, 26759 __experimentalFontStyle: true, 26760 __experimentalFontWeight: true, 26761 __experimentalTextTransform: true, 26762 __experimentalFontFamily: true, 26763 __experimentalTextDecoration: true, 26764 __experimentalDefaultControls: { 26765 fontSize: true 26766 } 26767 }, 26768 spacing: { 26769 blockGap: true, 26770 units: ['px', 'em', 'rem', 'vh', 'vw'], 26771 __experimentalDefaultControls: { 26772 blockGap: true 26773 } 26774 } 26775 }, 26776 26777 save() { 26778 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 26779 }, 26780 26781 isEligible: _ref3 => { 26782 let { 26783 itemsJustification, 26784 orientation 26785 } = _ref3; 26786 return !!itemsJustification || !!orientation; 26787 }, 26788 migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout) 26789 }; 26790 const navigation_deprecated_v4 = { 26791 attributes: { 26792 orientation: { 26793 type: 'string', 26794 default: 'horizontal' 26795 }, 26796 textColor: { 26797 type: 'string' 26798 }, 26799 customTextColor: { 26800 type: 'string' 26801 }, 26802 rgbTextColor: { 26803 type: 'string' 26804 }, 26805 backgroundColor: { 26806 type: 'string' 26807 }, 26808 customBackgroundColor: { 26809 type: 'string' 26810 }, 26811 rgbBackgroundColor: { 26812 type: 'string' 26813 }, 26814 itemsJustification: { 26815 type: 'string' 26816 }, 26817 showSubmenuIcon: { 26818 type: 'boolean', 26819 default: true 26820 }, 26821 openSubmenusOnClick: { 26822 type: 'boolean', 26823 default: false 26824 }, 26825 overlayMenu: { 26826 type: 'string', 26827 default: 'never' 26828 }, 26829 __unstableLocation: { 26830 type: 'string' 26831 }, 26832 overlayBackgroundColor: { 26833 type: 'string' 26834 }, 26835 customOverlayBackgroundColor: { 26836 type: 'string' 26837 }, 26838 overlayTextColor: { 26839 type: 'string' 26840 }, 26841 customOverlayTextColor: { 26842 type: 'string' 26843 } 26844 }, 26845 supports: { 26846 align: ['wide', 'full'], 26847 anchor: true, 26848 html: false, 26849 inserter: true, 26850 typography: { 26851 fontSize: true, 26852 lineHeight: true, 26853 __experimentalFontStyle: true, 26854 __experimentalFontWeight: true, 26855 __experimentalTextTransform: true, 26856 __experimentalFontFamily: true, 26857 __experimentalTextDecoration: true 26858 }, 26859 spacing: { 26860 blockGap: true, 26861 units: ['px', 'em', 'rem', 'vh', 'vw'], 26862 __experimentalDefaultControls: { 26863 blockGap: true 26864 } 26865 } 26866 }, 26867 26868 save() { 26869 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 26870 }, 26871 26872 migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family), 26873 26874 isEligible(_ref4) { 26875 var _style$typography; 26876 26877 let { 26878 style 26879 } = _ref4; 26880 return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily; 26881 } 26882 26883 }; 26884 26885 const migrateIsResponsive = function (attributes) { 26886 delete attributes.isResponsive; 26887 return { ...attributes, 26888 overlayMenu: 'mobile' 26889 }; 26890 }; 26891 26892 const migrateTypographyPresets = function (attributes) { 26893 return { ...attributes, 26894 style: { ...attributes.style, 26895 typography: (0,external_lodash_namespaceObject.mapValues)(attributes.style.typography, (value, key) => { 26896 const prefix = TYPOGRAPHY_PRESET_DEPRECATION_MAP[key]; 26897 26898 if (prefix && value.startsWith(prefix)) { 26899 const newValue = value.slice(prefix.length); 26900 26901 if ('textDecoration' === key && 'strikethrough' === newValue) { 26902 return 'line-through'; 26903 } 26904 26905 return newValue; 26906 } 26907 26908 return value; 26909 }) 26910 } 26911 }; 26912 }; 26913 26914 const navigation_deprecated_deprecated = [navigation_deprecated_v6, navigation_deprecated_v5, navigation_deprecated_v4, // Remove `isResponsive` attribute. 26915 { 26916 attributes: { 26917 orientation: { 26918 type: 'string', 26919 default: 'horizontal' 26920 }, 26921 textColor: { 26922 type: 'string' 26923 }, 26924 customTextColor: { 26925 type: 'string' 26926 }, 26927 rgbTextColor: { 26928 type: 'string' 26929 }, 26930 backgroundColor: { 26931 type: 'string' 26932 }, 26933 customBackgroundColor: { 26934 type: 'string' 26935 }, 26936 rgbBackgroundColor: { 26937 type: 'string' 26938 }, 26939 itemsJustification: { 26940 type: 'string' 26941 }, 26942 showSubmenuIcon: { 26943 type: 'boolean', 26944 default: true 26945 }, 26946 openSubmenusOnClick: { 26947 type: 'boolean', 26948 default: false 26949 }, 26950 isResponsive: { 26951 type: 'boolean', 26952 default: 'false' 26953 }, 26954 __unstableLocation: { 26955 type: 'string' 26956 }, 26957 overlayBackgroundColor: { 26958 type: 'string' 26959 }, 26960 customOverlayBackgroundColor: { 26961 type: 'string' 26962 }, 26963 overlayTextColor: { 26964 type: 'string' 26965 }, 26966 customOverlayTextColor: { 26967 type: 'string' 26968 } 26969 }, 26970 supports: { 26971 align: ['wide', 'full'], 26972 anchor: true, 26973 html: false, 26974 inserter: true, 26975 typography: { 26976 fontSize: true, 26977 lineHeight: true, 26978 __experimentalFontStyle: true, 26979 __experimentalFontWeight: true, 26980 __experimentalTextTransform: true, 26981 __experimentalFontFamily: true, 26982 __experimentalTextDecoration: true 26983 } 26984 }, 26985 26986 isEligible(attributes) { 26987 return attributes.isResponsive; 26988 }, 26989 26990 migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateIsResponsive), 26991 26992 save() { 26993 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 26994 } 26995 26996 }, { 26997 attributes: { 26998 orientation: { 26999 type: 'string' 27000 }, 27001 textColor: { 27002 type: 'string' 27003 }, 27004 customTextColor: { 27005 type: 'string' 27006 }, 27007 rgbTextColor: { 27008 type: 'string' 27009 }, 27010 backgroundColor: { 27011 type: 'string' 27012 }, 27013 customBackgroundColor: { 27014 type: 'string' 27015 }, 27016 rgbBackgroundColor: { 27017 type: 'string' 27018 }, 27019 itemsJustification: { 27020 type: 'string' 27021 }, 27022 showSubmenuIcon: { 27023 type: 'boolean', 27024 default: true 27025 } 27026 }, 27027 supports: { 27028 align: ['wide', 'full'], 27029 anchor: true, 27030 html: false, 27031 inserter: true, 27032 fontSize: true, 27033 __experimentalFontStyle: true, 27034 __experimentalFontWeight: true, 27035 __experimentalTextTransform: true, 27036 color: true, 27037 __experimentalFontFamily: true, 27038 __experimentalTextDecoration: true 27039 }, 27040 27041 save() { 27042 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 27043 }, 27044 27045 isEligible(attributes) { 27046 if (!attributes.style || !attributes.style.typography) { 27047 return false; 27048 } 27049 27050 for (const styleAttribute in TYPOGRAPHY_PRESET_DEPRECATION_MAP) { 27051 const attributeValue = attributes.style.typography[styleAttribute]; 27052 27053 if (attributeValue && attributeValue.startsWith(TYPOGRAPHY_PRESET_DEPRECATION_MAP[styleAttribute])) { 27054 return true; 27055 } 27056 } 27057 27058 return false; 27059 }, 27060 27061 migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateTypographyPresets) 27062 }, { 27063 attributes: { 27064 className: { 27065 type: 'string' 27066 }, 27067 textColor: { 27068 type: 'string' 27069 }, 27070 rgbTextColor: { 27071 type: 'string' 27072 }, 27073 backgroundColor: { 27074 type: 'string' 27075 }, 27076 rgbBackgroundColor: { 27077 type: 'string' 27078 }, 27079 fontSize: { 27080 type: 'string' 27081 }, 27082 customFontSize: { 27083 type: 'number' 27084 }, 27085 itemsJustification: { 27086 type: 'string' 27087 }, 27088 showSubmenuIcon: { 27089 type: 'boolean' 27090 } 27091 }, 27092 27093 isEligible(attribute) { 27094 return attribute.rgbTextColor || attribute.rgbBackgroundColor; 27095 }, 27096 27097 supports: { 27098 align: ['wide', 'full'], 27099 anchor: true, 27100 html: false, 27101 inserter: true 27102 }, 27103 migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, attributes => { 27104 return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['rgbTextColor', 'rgbBackgroundColor']), 27105 customTextColor: attributes.textColor ? undefined : attributes.rgbTextColor, 27106 customBackgroundColor: attributes.backgroundColor ? undefined : attributes.rgbBackgroundColor 27107 }; 27108 }), 27109 27110 save() { 27111 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 27112 } 27113 27114 }]; 27115 /* harmony default export */ var navigation_deprecated = (navigation_deprecated_deprecated); 27116 27117 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/index.js 27118 /** 27119 * WordPress dependencies 27120 */ 27121 27122 27123 /** 27124 * Internal dependencies 27125 */ 27126 27127 const navigation_metadata = { 27128 $schema: "https://schemas.wp.org/trunk/block.json", 27129 apiVersion: 2, 27130 name: "core/navigation", 27131 title: "Navigation", 27132 category: "theme", 27133 description: "A collection of blocks that allow visitors to get around your site.", 27134 keywords: ["menu", "navigation", "links"], 27135 textdomain: "default", 27136 attributes: { 27137 ref: { 27138 type: "number" 27139 }, 27140 textColor: { 27141 type: "string" 27142 }, 27143 customTextColor: { 27144 type: "string" 27145 }, 27146 rgbTextColor: { 27147 type: "string" 27148 }, 27149 backgroundColor: { 27150 type: "string" 27151 }, 27152 customBackgroundColor: { 27153 type: "string" 27154 }, 27155 rgbBackgroundColor: { 27156 type: "string" 27157 }, 27158 showSubmenuIcon: { 27159 type: "boolean", 27160 "default": true 27161 }, 27162 openSubmenusOnClick: { 27163 type: "boolean", 27164 "default": false 27165 }, 27166 overlayMenu: { 27167 type: "string", 27168 "default": "mobile" 27169 }, 27170 hasIcon: { 27171 type: "boolean", 27172 "default": true 27173 }, 27174 __unstableLocation: { 27175 type: "string" 27176 }, 27177 overlayBackgroundColor: { 27178 type: "string" 27179 }, 27180 customOverlayBackgroundColor: { 27181 type: "string" 27182 }, 27183 overlayTextColor: { 27184 type: "string" 27185 }, 27186 customOverlayTextColor: { 27187 type: "string" 27188 }, 27189 maxNestingLevel: { 27190 type: "number", 27191 "default": 5 27192 } 27193 }, 27194 providesContext: { 27195 textColor: "textColor", 27196 customTextColor: "customTextColor", 27197 backgroundColor: "backgroundColor", 27198 customBackgroundColor: "customBackgroundColor", 27199 overlayTextColor: "overlayTextColor", 27200 customOverlayTextColor: "customOverlayTextColor", 27201 overlayBackgroundColor: "overlayBackgroundColor", 27202 customOverlayBackgroundColor: "customOverlayBackgroundColor", 27203 fontSize: "fontSize", 27204 customFontSize: "customFontSize", 27205 showSubmenuIcon: "showSubmenuIcon", 27206 openSubmenusOnClick: "openSubmenusOnClick", 27207 style: "style", 27208 orientation: "orientation", 27209 maxNestingLevel: "maxNestingLevel" 27210 }, 27211 supports: { 27212 align: ["wide", "full"], 27213 anchor: true, 27214 html: false, 27215 inserter: true, 27216 typography: { 27217 fontSize: true, 27218 lineHeight: true, 27219 __experimentalFontStyle: true, 27220 __experimentalFontWeight: true, 27221 __experimentalTextTransform: true, 27222 __experimentalFontFamily: true, 27223 __experimentalTextDecoration: true, 27224 __experimentalSkipSerialization: ["textDecoration"], 27225 __experimentalDefaultControls: { 27226 fontSize: true 27227 } 27228 }, 27229 spacing: { 27230 blockGap: true, 27231 units: ["px", "em", "rem", "vh", "vw"], 27232 __experimentalDefaultControls: { 27233 blockGap: true 27234 } 27235 }, 27236 __experimentalLayout: { 27237 allowSwitching: false, 27238 allowInheriting: false, 27239 allowVerticalAlignment: false, 27240 "default": { 27241 type: "flex" 27242 } 27243 } 27244 }, 27245 viewScript: "file:./view.min.js", 27246 editorStyle: "wp-block-navigation-editor", 27247 style: "wp-block-navigation" 27248 }; 27249 27250 27251 27252 const { 27253 name: navigation_name 27254 } = navigation_metadata; 27255 27256 const navigation_settings = { 27257 icon: library_navigation, 27258 example: { 27259 innerBlocks: [{ 27260 name: 'core/navigation-link', 27261 attributes: { 27262 // translators: 'Home' as in a website's home page. 27263 label: (0,external_wp_i18n_namespaceObject.__)('Home'), 27264 url: 'https://make.wordpress.org/' 27265 } 27266 }, { 27267 name: 'core/navigation-link', 27268 attributes: { 27269 // translators: 'About' as in a website's about page. 27270 label: (0,external_wp_i18n_namespaceObject.__)('About'), 27271 url: 'https://make.wordpress.org/' 27272 } 27273 }, { 27274 name: 'core/navigation-link', 27275 attributes: { 27276 // translators: 'Contact' as in a website's contact page. 27277 label: (0,external_wp_i18n_namespaceObject.__)('Contact'), 27278 url: 'https://make.wordpress.org/' 27279 } 27280 }] 27281 }, 27282 edit: navigation_edit, 27283 save: navigation_save_save, 27284 deprecated: navigation_deprecated 27285 }; 27286 27287 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/custom-link.js 27288 27289 27290 /** 27291 * WordPress dependencies 27292 */ 27293 27294 const customLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 27295 xmlns: "https://www.w3.org/2000/svg", 27296 viewBox: "0 0 24 24" 27297 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 27298 d: "M12.5 14.5h-1V16h1c2.2 0 4-1.8 4-4s-1.8-4-4-4h-1v1.5h1c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5zm-4 1.5v-1.5h-1C6.1 14.5 5 13.4 5 12s1.1-2.5 2.5-2.5h1V8h-1c-2.2 0-4 1.8-4 4s1.8 4 4 4h1zm-1-3.2h5v-1.5h-5v1.5zM18 4H9c-1.1 0-2 .9-2 2v.5h1.5V6c0-.3.2-.5.5-.5h9c.3 0 .5.2.5.5v12c0 .3-.2.5-.5.5H9c-.3 0-.5-.2-.5-.5v-.5H7v.5c0 1.1.9 2 2 2h9c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2z" 27299 })); 27300 /* harmony default export */ var custom_link = (customLink); 27301 27302 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/add-submenu.js 27303 27304 27305 /** 27306 * WordPress dependencies 27307 */ 27308 27309 const addSubmenu = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 27310 xmlns: "http://www.w3.org/2000/svg", 27311 viewBox: "0 0 24 24" 27312 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 27313 d: "M2 12c0 3.6 2.4 5.5 6 5.5h.5V19l3-2.5-3-2.5v2H8c-2.5 0-4.5-1.5-4.5-4s2-4.5 4.5-4.5h3.5V6H8c-3.6 0-6 2.4-6 6zm19.5-1h-8v1.5h8V11zm0 5h-8v1.5h8V16zm0-10h-8v1.5h8V6z" 27314 })); 27315 /* harmony default export */ var add_submenu = (addSubmenu); 27316 27317 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/edit.js 27318 27319 27320 /** 27321 * External dependencies 27322 */ 27323 27324 27325 /** 27326 * WordPress dependencies 27327 */ 27328 27329 27330 27331 27332 27333 27334 27335 27336 27337 27338 27339 27340 /** 27341 * Internal dependencies 27342 */ 27343 27344 const { 27345 name: edit_name 27346 } = { 27347 $schema: "https://schemas.wp.org/trunk/block.json", 27348 apiVersion: 2, 27349 name: "core/navigation-link", 27350 title: "Custom Link", 27351 category: "design", 27352 parent: ["core/navigation"], 27353 description: "Add a page, link, or another item to your navigation.", 27354 textdomain: "default", 27355 attributes: { 27356 label: { 27357 type: "string" 27358 }, 27359 type: { 27360 type: "string" 27361 }, 27362 description: { 27363 type: "string" 27364 }, 27365 rel: { 27366 type: "string" 27367 }, 27368 id: { 27369 type: "number" 27370 }, 27371 opensInNewTab: { 27372 type: "boolean", 27373 "default": false 27374 }, 27375 url: { 27376 type: "string" 27377 }, 27378 title: { 27379 type: "string" 27380 }, 27381 kind: { 27382 type: "string" 27383 }, 27384 isTopLevelLink: { 27385 type: "boolean" 27386 } 27387 }, 27388 usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "style"], 27389 supports: { 27390 reusable: false, 27391 html: false, 27392 __experimentalSlashInserter: true 27393 }, 27394 editorStyle: "wp-block-navigation-link-editor", 27395 style: "wp-block-navigation-link" 27396 }; 27397 /** 27398 * A React hook to determine if it's dragging within the target element. 27399 * 27400 * @typedef {import('@wordpress/element').RefObject} RefObject 27401 * 27402 * @param {RefObject<HTMLElement>} elementRef The target elementRef object. 27403 * 27404 * @return {boolean} Is dragging within the target element. 27405 */ 27406 27407 const useIsDraggingWithin = elementRef => { 27408 const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false); 27409 (0,external_wp_element_namespaceObject.useEffect)(() => { 27410 const { 27411 ownerDocument 27412 } = elementRef.current; 27413 27414 function handleDragStart(event) { 27415 // Check the first time when the dragging starts. 27416 handleDragEnter(event); 27417 } // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape. 27418 27419 27420 function handleDragEnd() { 27421 setIsDraggingWithin(false); 27422 } 27423 27424 function handleDragEnter(event) { 27425 // Check if the current target is inside the item element. 27426 if (elementRef.current.contains(event.target)) { 27427 setIsDraggingWithin(true); 27428 } else { 27429 setIsDraggingWithin(false); 27430 } 27431 } // Bind these events to the document to catch all drag events. 27432 // Ideally, we can also use `event.relatedTarget`, but sadly that 27433 // doesn't work in Safari. 27434 27435 27436 ownerDocument.addEventListener('dragstart', handleDragStart); 27437 ownerDocument.addEventListener('dragend', handleDragEnd); 27438 ownerDocument.addEventListener('dragenter', handleDragEnter); 27439 return () => { 27440 ownerDocument.removeEventListener('dragstart', handleDragStart); 27441 ownerDocument.removeEventListener('dragend', handleDragEnd); 27442 ownerDocument.removeEventListener('dragenter', handleDragEnter); 27443 }; 27444 }, []); 27445 return isDraggingWithin; 27446 }; 27447 /** 27448 * Given the Link block's type attribute, return the query params to give to 27449 * /wp/v2/search. 27450 * 27451 * @param {string} type Link block's type attribute. 27452 * @param {string} kind Link block's entity of kind (post-type|taxonomy) 27453 * @return {{ type?: string, subtype?: string }} Search query params. 27454 */ 27455 27456 27457 function getSuggestionsQuery(type, kind) { 27458 switch (type) { 27459 case 'post': 27460 case 'page': 27461 return { 27462 type: 'post', 27463 subtype: type 27464 }; 27465 27466 case 'category': 27467 return { 27468 type: 'term', 27469 subtype: 'category' 27470 }; 27471 27472 case 'tag': 27473 return { 27474 type: 'term', 27475 subtype: 'post_tag' 27476 }; 27477 27478 case 'post_format': 27479 return { 27480 type: 'post-format' 27481 }; 27482 27483 default: 27484 if (kind === 'taxonomy') { 27485 return { 27486 type: 'term', 27487 subtype: type 27488 }; 27489 } 27490 27491 if (kind === 'post-type') { 27492 return { 27493 type: 'post', 27494 subtype: type 27495 }; 27496 } 27497 27498 return {}; 27499 } 27500 } 27501 /** 27502 * Determine the colors for a menu. 27503 * 27504 * Order of priority is: 27505 * 1: Overlay custom colors (if submenu) 27506 * 2: Overlay theme colors (if submenu) 27507 * 3: Custom colors 27508 * 4: Theme colors 27509 * 5: Global styles 27510 * 27511 * @param {Object} context 27512 * @param {boolean} isSubMenu 27513 */ 27514 27515 27516 function getColors(context, isSubMenu) { 27517 var _style$color, _style$color2; 27518 27519 const { 27520 textColor, 27521 customTextColor, 27522 backgroundColor, 27523 customBackgroundColor, 27524 overlayTextColor, 27525 customOverlayTextColor, 27526 overlayBackgroundColor, 27527 customOverlayBackgroundColor, 27528 style 27529 } = context; 27530 const colors = {}; 27531 27532 if (isSubMenu && !!customOverlayTextColor) { 27533 colors.customTextColor = customOverlayTextColor; 27534 } else if (isSubMenu && !!overlayTextColor) { 27535 colors.textColor = overlayTextColor; 27536 } else if (!!customTextColor) { 27537 colors.customTextColor = customTextColor; 27538 } else if (!!textColor) { 27539 colors.textColor = textColor; 27540 } else if (!!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.text)) { 27541 colors.customTextColor = style.color.text; 27542 } 27543 27544 if (isSubMenu && !!customOverlayBackgroundColor) { 27545 colors.customBackgroundColor = customOverlayBackgroundColor; 27546 } else if (isSubMenu && !!overlayBackgroundColor) { 27547 colors.backgroundColor = overlayBackgroundColor; 27548 } else if (!!customBackgroundColor) { 27549 colors.customBackgroundColor = customBackgroundColor; 27550 } else if (!!backgroundColor) { 27551 colors.backgroundColor = backgroundColor; 27552 } else if (!!(style !== null && style !== void 0 && (_style$color2 = style.color) !== null && _style$color2 !== void 0 && _style$color2.background)) { 27553 colors.customTextColor = style.color.background; 27554 } 27555 27556 return colors; 27557 } 27558 /** 27559 * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind 27560 */ 27561 27562 /** 27563 * Navigation Link Block Attributes 27564 * 27565 * @typedef {Object} WPNavigationLinkBlockAttributes 27566 * 27567 * @property {string} [label] Link text. 27568 * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status. 27569 * @property {string} [type] The type such as post, page, tag, category and other custom types. 27570 * @property {string} [rel] The relationship of the linked URL. 27571 * @property {number} [id] A post or term id. 27572 * @property {boolean} [opensInNewTab] Sets link target to _blank when true. 27573 * @property {string} [url] Link href. 27574 * @property {string} [title] Link title attribute. 27575 */ 27576 27577 /** 27578 * Link Control onChange handler that updates block attributes when a setting is changed. 27579 * 27580 * @param {Object} updatedValue New block attributes to update. 27581 * @param {Function} setAttributes Block attribute update function. 27582 * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes. 27583 * 27584 */ 27585 27586 27587 const updateNavigationLinkBlockAttributes = function () { 27588 let updatedValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 27589 let setAttributes = arguments.length > 1 ? arguments[1] : undefined; 27590 let blockAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; 27591 const { 27592 label: originalLabel = '', 27593 kind: originalKind = '', 27594 type: originalType = '' 27595 } = blockAttributes; 27596 const { 27597 title = '', 27598 // the title of any provided Post. 27599 url = '', 27600 opensInNewTab, 27601 id, 27602 kind: newKind = originalKind, 27603 type: newType = originalType 27604 } = updatedValue; 27605 const normalizedTitle = title.replace(/http(s?):\/\//gi, ''); 27606 const normalizedURL = url.replace(/http(s?):\/\//gi, ''); 27607 const escapeTitle = title !== '' && normalizedTitle !== normalizedURL && originalLabel !== title; 27608 const label = escapeTitle ? (0,external_lodash_namespaceObject.escape)(title) : originalLabel || (0,external_lodash_namespaceObject.escape)(normalizedURL); // In https://github.com/WordPress/gutenberg/pull/24670 we decided to use "tag" in favor of "post_tag" 27609 27610 const type = newType === 'post_tag' ? 'tag' : newType.replace('-', '_'); 27611 const isBuiltInType = ['post', 'page', 'tag', 'category'].indexOf(type) > -1; 27612 const isCustomLink = !newKind && !isBuiltInType || newKind === 'custom'; 27613 const kind = isCustomLink ? 'custom' : newKind; 27614 setAttributes({ // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string. 27615 ...(url && { 27616 url: encodeURI((0,external_wp_url_namespaceObject.safeDecodeURI)(url)) 27617 }), 27618 ...(label && { 27619 label 27620 }), 27621 ...(undefined !== opensInNewTab && { 27622 opensInNewTab 27623 }), 27624 ...(id && Number.isInteger(id) && { 27625 id 27626 }), 27627 ...(kind && { 27628 kind 27629 }), 27630 ...(type && type !== 'URL' && { 27631 type 27632 }) 27633 }); 27634 }; 27635 27636 const useIsInvalidLink = (kind, type, id) => { 27637 const isPostType = kind === 'post-type' || type === 'post' || type === 'page'; 27638 const hasId = Number.isInteger(id); 27639 const postStatus = (0,external_wp_data_namespaceObject.useSelect)(select => { 27640 var _getEntityRecord; 27641 27642 if (!isPostType) { 27643 return null; 27644 } 27645 27646 const { 27647 getEntityRecord 27648 } = select(external_wp_coreData_namespaceObject.store); 27649 return (_getEntityRecord = getEntityRecord('postType', type, id)) === null || _getEntityRecord === void 0 ? void 0 : _getEntityRecord.status; 27650 }, [isPostType, type, id]); // Check Navigation Link validity if: 27651 // 1. Link is 'post-type'. 27652 // 2. It has an id. 27653 // 3. It's neither null, nor undefined, as valid items might be either of those while loading. 27654 // If those conditions are met, check if 27655 // 1. The post status is published. 27656 // 2. The Navigation Link item has no label. 27657 // If either of those is true, invalidate. 27658 27659 const isInvalid = isPostType && hasId && postStatus && 'trash' === postStatus; 27660 const isDraft = 'draft' === postStatus; 27661 return [isInvalid, isDraft]; 27662 }; 27663 27664 const useMissingText = type => { 27665 let missingText = ''; 27666 27667 switch (type) { 27668 case 'post': 27669 /* translators: label for missing post in navigation link block */ 27670 missingText = (0,external_wp_i18n_namespaceObject.__)('Select post'); 27671 break; 27672 27673 case 'page': 27674 /* translators: label for missing page in navigation link block */ 27675 missingText = (0,external_wp_i18n_namespaceObject.__)('Select page'); 27676 break; 27677 27678 case 'category': 27679 /* translators: label for missing category in navigation link block */ 27680 missingText = (0,external_wp_i18n_namespaceObject.__)('Select category'); 27681 break; 27682 27683 case 'tag': 27684 /* translators: label for missing tag in navigation link block */ 27685 missingText = (0,external_wp_i18n_namespaceObject.__)('Select tag'); 27686 break; 27687 27688 default: 27689 /* translators: label for missing values in navigation link block */ 27690 missingText = (0,external_wp_i18n_namespaceObject.__)('Add link'); 27691 } 27692 27693 return missingText; 27694 }; 27695 /** 27696 * Removes HTML from a given string. 27697 * Note the does not provide XSS protection or otherwise attempt 27698 * to filter strings with malicious intent. 27699 * 27700 * See also: https://github.com/WordPress/gutenberg/pull/35539 27701 * 27702 * @param {string} html the string from which HTML should be removed. 27703 * @return {string} the "cleaned" string. 27704 */ 27705 27706 27707 function navStripHTML(html) { 27708 const doc = document.implementation.createHTMLDocument(''); 27709 doc.body.innerHTML = html; 27710 return doc.body.textContent || ''; 27711 } 27712 /** 27713 * Add transforms to Link Control 27714 */ 27715 27716 27717 function LinkControlTransforms(_ref) { 27718 let { 27719 clientId, 27720 replace 27721 } = _ref; 27722 const { 27723 getBlock, 27724 blockTransforms 27725 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 27726 const { 27727 getBlock: _getBlock, 27728 getBlockRootClientId, 27729 getBlockTransformItems 27730 } = select(external_wp_blockEditor_namespaceObject.store); 27731 return { 27732 getBlock: _getBlock, 27733 blockTransforms: getBlockTransformItems([_getBlock(clientId)], getBlockRootClientId(clientId)) 27734 }; 27735 }, [clientId]); 27736 const featuredBlocks = ['core/site-logo', 'core/social-links', 'core/search']; 27737 const transforms = blockTransforms.filter(item => { 27738 return featuredBlocks.includes(item.name); 27739 }); 27740 27741 if (!(transforms !== null && transforms !== void 0 && transforms.length)) { 27742 return null; 27743 } 27744 27745 return (0,external_wp_element_namespaceObject.createElement)("div", { 27746 className: "link-control-transform" 27747 }, (0,external_wp_element_namespaceObject.createElement)("h3", { 27748 className: "link-control-transform__subheading" 27749 }, (0,external_wp_i18n_namespaceObject.__)('Transform')), (0,external_wp_element_namespaceObject.createElement)("div", { 27750 className: "link-control-transform__items" 27751 }, transforms.map((item, index) => { 27752 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 27753 key: `transform-$index}`, 27754 onClick: () => replace(clientId, (0,external_wp_blocks_namespaceObject.switchToBlockType)(getBlock(clientId), item.name)), 27755 className: "link-control-transform__item" 27756 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { 27757 icon: item.icon 27758 }), item.title); 27759 }))); 27760 } 27761 27762 function NavigationLinkEdit(_ref2) { 27763 let { 27764 attributes, 27765 isSelected, 27766 setAttributes, 27767 insertBlocksAfter, 27768 mergeBlocks, 27769 onReplace, 27770 context, 27771 clientId 27772 } = _ref2; 27773 const { 27774 id, 27775 label, 27776 type, 27777 opensInNewTab, 27778 url, 27779 description, 27780 rel, 27781 title, 27782 kind 27783 } = attributes; 27784 const [isInvalid, isDraft] = useIsInvalidLink(kind, type, id); 27785 const { 27786 maxNestingLevel 27787 } = context; 27788 const link = { 27789 url, 27790 opensInNewTab, 27791 title: label && navStripHTML(label) // don't allow HTML to display inside the <LinkControl> 27792 27793 }; 27794 const { 27795 saveEntityRecord 27796 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store); 27797 const { 27798 replaceBlock, 27799 __unstableMarkNextChangeAsNotPersistent 27800 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 27801 const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(false); 27802 const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null); 27803 const isDraggingWithin = useIsDraggingWithin(listItemRef); 27804 27805 const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add link…'); 27806 27807 const ref = (0,external_wp_element_namespaceObject.useRef)(); 27808 const { 27809 innerBlocks, 27810 isAtMaxNesting, 27811 isTopLevelLink, 27812 isParentOfSelectedBlock, 27813 hasChildren, 27814 userCanCreatePages, 27815 userCanCreatePosts 27816 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 27817 const { 27818 getBlocks, 27819 getBlockCount, 27820 getBlockName, 27821 getBlockRootClientId, 27822 hasSelectedInnerBlock, 27823 getBlockParentsByBlockName 27824 } = select(external_wp_blockEditor_namespaceObject.store); 27825 return { 27826 innerBlocks: getBlocks(clientId), 27827 isAtMaxNesting: getBlockParentsByBlockName(clientId, [edit_name, 'core/navigation-submenu']).length >= maxNestingLevel, 27828 isTopLevelLink: getBlockName(getBlockRootClientId(clientId)) === 'core/navigation', 27829 isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true), 27830 hasChildren: !!getBlockCount(clientId), 27831 userCanCreatePages: select(external_wp_coreData_namespaceObject.store).canUser('create', 'pages'), 27832 userCanCreatePosts: select(external_wp_coreData_namespaceObject.store).canUser('create', 'posts') 27833 }; 27834 }, [clientId]); 27835 (0,external_wp_element_namespaceObject.useEffect)(() => { 27836 // This side-effect should not create an undo level as those should 27837 // only be created via user interactions. Mark this change as 27838 // not persistent to avoid undo level creation. 27839 // See https://github.com/WordPress/gutenberg/issues/34564. 27840 __unstableMarkNextChangeAsNotPersistent(); 27841 27842 setAttributes({ 27843 isTopLevelLink 27844 }); 27845 }, [isTopLevelLink]); 27846 /** 27847 * Transform to submenu block. 27848 */ 27849 27850 function transformToSubmenu() { 27851 const newSubmenu = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks); 27852 replaceBlock(clientId, newSubmenu); 27853 } 27854 27855 (0,external_wp_element_namespaceObject.useEffect)(() => { 27856 // Show the LinkControl on mount if the URL is empty 27857 // ( When adding a new menu item) 27858 // This can't be done in the useState call because it conflicts 27859 // with the autofocus behavior of the BlockListBlock component. 27860 if (!url) { 27861 setIsLinkOpen(true); 27862 } // If block has inner blocks, transform to Submenu. 27863 27864 27865 if (hasChildren) { 27866 transformToSubmenu(); 27867 } 27868 }, []); 27869 /** 27870 * The hook shouldn't be necessary but due to a focus loss happening 27871 * when selecting a suggestion in the link popover, we force close on block unselection. 27872 */ 27873 27874 (0,external_wp_element_namespaceObject.useEffect)(() => { 27875 if (!isSelected) { 27876 setIsLinkOpen(false); 27877 } 27878 }, [isSelected]); // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text. 27879 27880 (0,external_wp_element_namespaceObject.useEffect)(() => { 27881 if (isLinkOpen && url) { 27882 // Does this look like a URL and have something TLD-ish? 27883 if ((0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) { 27884 // Focus and select the label text. 27885 selectLabelText(); 27886 } else { 27887 // Focus it (but do not select). 27888 (0,external_wp_dom_namespaceObject.placeCaretAtHorizontalEdge)(ref.current, true); 27889 } 27890 } 27891 }, [url]); 27892 /** 27893 * Focus the Link label text and select it. 27894 */ 27895 27896 function selectLabelText() { 27897 ref.current.focus(); 27898 const { 27899 ownerDocument 27900 } = ref.current; 27901 const { 27902 defaultView 27903 } = ownerDocument; 27904 const selection = defaultView.getSelection(); 27905 const range = ownerDocument.createRange(); // Get the range of the current ref contents so we can add this range to the selection. 27906 27907 range.selectNodeContents(ref.current); 27908 selection.removeAllRanges(); 27909 selection.addRange(range); 27910 } 27911 /** 27912 * Removes the current link if set. 27913 */ 27914 27915 27916 function removeLink() { 27917 // Reset all attributes that comprise the link. 27918 setAttributes({ 27919 url: '', 27920 label: '', 27921 id: '', 27922 kind: '', 27923 type: '' 27924 }); // Close the link editing UI. 27925 27926 setIsLinkOpen(false); 27927 } 27928 27929 let userCanCreate = false; 27930 27931 if (!type || type === 'page') { 27932 userCanCreate = userCanCreatePages; 27933 } else if (type === 'post') { 27934 userCanCreate = userCanCreatePosts; 27935 } 27936 27937 async function handleCreate(pageTitle) { 27938 const postType = type || 'page'; 27939 const page = await saveEntityRecord('postType', postType, { 27940 title: pageTitle, 27941 status: 'draft' 27942 }); 27943 return { 27944 id: page.id, 27945 type: postType, 27946 title: page.title.rendered, 27947 url: page.link, 27948 kind: 'post-type' 27949 }; 27950 } 27951 27952 const { 27953 textColor, 27954 customTextColor, 27955 backgroundColor, 27956 customBackgroundColor 27957 } = getColors(context, !isTopLevelLink); 27958 27959 function onKeyDown(event) { 27960 if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k') || !url && event.keyCode === external_wp_keycodes_namespaceObject.ENTER) { 27961 setIsLinkOpen(true); 27962 } 27963 } 27964 27965 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 27966 ref: listItemRef, 27967 className: classnames_default()('wp-block-navigation-item', { 27968 'is-editing': isSelected || isParentOfSelectedBlock, 27969 'is-dragging-within': isDraggingWithin, 27970 'has-link': !!url, 27971 'has-child': hasChildren, 27972 'has-text-color': !!textColor || !!customTextColor, 27973 [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor, 27974 'has-background': !!backgroundColor || customBackgroundColor, 27975 [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor 27976 }), 27977 style: { 27978 color: !textColor && customTextColor, 27979 backgroundColor: !backgroundColor && customBackgroundColor 27980 }, 27981 onKeyDown 27982 }); 27983 27984 if (!url || isInvalid || isDraft) { 27985 blockProps.onClick = () => setIsLinkOpen(true); 27986 } 27987 27988 const classes = classnames_default()('wp-block-navigation-item__content', { 27989 'wp-block-navigation-link__placeholder': !url || isInvalid || isDraft 27990 }); 27991 const missingText = useMissingText(type, isInvalid, isDraft); 27992 /* translators: Whether the navigation link is Invalid or a Draft. */ 27993 27994 const placeholderText = `($isInvalid ? (0,external_wp_i18n_namespaceObject.__)('Invalid') : (0,external_wp_i18n_namespaceObject.__)('Draft')})`; 27995 const tooltipText = isInvalid || isDraft ? (0,external_wp_i18n_namespaceObject.__)('This item has been deleted, or is a draft') : (0,external_wp_i18n_namespaceObject.__)('This item is missing a link'); 27996 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 27997 name: "link", 27998 icon: library_link, 27999 title: (0,external_wp_i18n_namespaceObject.__)('Link'), 28000 shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'), 28001 onClick: () => setIsLinkOpen(true) 28002 }), !isAtMaxNesting && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 28003 name: "submenu", 28004 icon: add_submenu, 28005 title: (0,external_wp_i18n_namespaceObject.__)('Add submenu'), 28006 onClick: transformToSubmenu 28007 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 28008 title: (0,external_wp_i18n_namespaceObject.__)('Link settings') 28009 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, { 28010 value: description || '', 28011 onChange: descriptionValue => { 28012 setAttributes({ 28013 description: descriptionValue 28014 }); 28015 }, 28016 label: (0,external_wp_i18n_namespaceObject.__)('Description'), 28017 help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.') 28018 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 28019 value: title || '', 28020 onChange: titleValue => { 28021 setAttributes({ 28022 title: titleValue 28023 }); 28024 }, 28025 label: (0,external_wp_i18n_namespaceObject.__)('Link title'), 28026 autoComplete: "off" 28027 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 28028 value: rel || '', 28029 onChange: relValue => { 28030 setAttributes({ 28031 rel: relValue 28032 }); 28033 }, 28034 label: (0,external_wp_i18n_namespaceObject.__)('Link rel'), 28035 autoComplete: "off" 28036 }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("a", { 28037 className: classes 28038 }, !url ? (0,external_wp_element_namespaceObject.createElement)("div", { 28039 className: "wp-block-navigation-link__placeholder-text" 28040 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, { 28041 position: "top center", 28042 text: tooltipText 28043 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("span", null, missingText), (0,external_wp_element_namespaceObject.createElement)("span", { 28044 className: "wp-block-navigation-link__missing_text-tooltip" 28045 }, tooltipText)))) : (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !isInvalid && !isDraft && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 28046 ref: ref, 28047 identifier: "label", 28048 className: "wp-block-navigation-item__label", 28049 value: label, 28050 onChange: labelValue => setAttributes({ 28051 label: labelValue 28052 }), 28053 onMerge: mergeBlocks, 28054 onReplace: onReplace, 28055 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link')), 28056 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'), 28057 placeholder: itemLabelPlaceholder, 28058 withoutInteractiveFormatting: true, 28059 allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough'], 28060 onClick: () => { 28061 if (!url) { 28062 setIsLinkOpen(true); 28063 } 28064 } 28065 }), description && (0,external_wp_element_namespaceObject.createElement)("span", { 28066 className: "wp-block-navigation-item__description" 28067 }, description)), (isInvalid || isDraft) && (0,external_wp_element_namespaceObject.createElement)("div", { 28068 className: "wp-block-navigation-link__placeholder-text wp-block-navigation-link__label" 28069 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.KeyboardShortcuts, { 28070 shortcuts: { 28071 enter: () => isSelected && setIsLinkOpen(true) 28072 } 28073 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, { 28074 position: "top center", 28075 text: tooltipText 28076 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("span", null, 28077 /* Trim to avoid trailing white space when the placeholder text is not present */ 28078 `$label} $placeholderText}`.trim()), (0,external_wp_element_namespaceObject.createElement)("span", { 28079 className: "wp-block-navigation-link__missing_text-tooltip" 28080 }, tooltipText))))), isLinkOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { 28081 position: "bottom center", 28082 onClose: () => setIsLinkOpen(false), 28083 anchorRef: listItemRef.current 28084 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, { 28085 hasTextControl: true, 28086 hasRichPreviews: true, 28087 className: "wp-block-navigation-link__inline-link-input", 28088 value: link, 28089 showInitialSuggestions: true, 28090 withCreateSuggestion: userCanCreate, 28091 createSuggestion: handleCreate, 28092 createSuggestionButtonText: searchTerm => { 28093 let format; 28094 28095 if (type === 'post') { 28096 /* translators: %s: search term. */ 28097 format = (0,external_wp_i18n_namespaceObject.__)('Create draft post: <mark>%s</mark>'); 28098 } else { 28099 /* translators: %s: search term. */ 28100 format = (0,external_wp_i18n_namespaceObject.__)('Create draft page: <mark>%s</mark>'); 28101 } 28102 28103 return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(format, searchTerm), { 28104 mark: (0,external_wp_element_namespaceObject.createElement)("mark", null) 28105 }); 28106 }, 28107 noDirectEntry: !!type, 28108 noURLSuggestion: !!type, 28109 suggestionsQuery: getSuggestionsQuery(type, kind), 28110 onChange: updatedValue => updateNavigationLinkBlockAttributes(updatedValue, setAttributes, attributes), 28111 onRemove: removeLink, 28112 renderControlBottom: !url ? () => (0,external_wp_element_namespaceObject.createElement)(LinkControlTransforms, { 28113 clientId: clientId, 28114 replace: replaceBlock 28115 }) : null 28116 }))))); 28117 } 28118 28119 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/save.js 28120 28121 28122 /** 28123 * WordPress dependencies 28124 */ 28125 28126 function navigation_link_save_save() { 28127 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 28128 } 28129 28130 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-title.js 28131 28132 28133 /** 28134 * WordPress dependencies 28135 */ 28136 28137 const postTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 28138 viewBox: "0 0 24 24", 28139 xmlns: "http://www.w3.org/2000/svg" 28140 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 28141 d: "M4 14.5h16V16H4zM4 18.5h9V20H4zM4 4h3c2 0 3 .86 3 2.583 0 .891-.253 1.554-.76 1.988-.505.435-1.24.652-2.204.652H5.542V12H4V4zm2.855 4c.53 0 .924-.114 1.18-.343.266-.228.398-.579.398-1.051 0-.473-.132-.82-.397-1.04-.265-.229-.67-.343-1.217-.343H5.542V8h1.313z" 28142 })); 28143 /* harmony default export */ var post_title = (postTitle); 28144 28145 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page.js 28146 28147 28148 /** 28149 * WordPress dependencies 28150 */ 28151 28152 const page = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 28153 xmlns: "http://www.w3.org/2000/svg", 28154 viewBox: "0 0 24 24" 28155 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 28156 d: "M7 5.5h10a.5.5 0 01.5.5v12a.5.5 0 01-.5.5H7a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM17 4H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V6a2 2 0 00-2-2zm-1 3.75H8v1.5h8v-1.5zM8 11h8v1.5H8V11zm6 3.25H8v1.5h6v-1.5z" 28157 })); 28158 /* harmony default export */ var library_page = (page); 28159 28160 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/tag.js 28161 28162 28163 /** 28164 * WordPress dependencies 28165 */ 28166 28167 const tag = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 28168 xmlns: "http://www.w3.org/2000/svg", 28169 viewBox: "0 0 24 24" 28170 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 28171 d: "M20.1 11.2l-6.7-6.7c-.1-.1-.3-.2-.5-.2H5c-.4-.1-.8.3-.8.7v7.8c0 .2.1.4.2.5l6.7 6.7c.2.2.5.4.7.5s.6.2.9.2c.3 0 .6-.1.9-.2.3-.1.5-.3.8-.5l5.6-5.6c.4-.4.7-1 .7-1.6.1-.6-.2-1.2-.6-1.6zM19 13.4L13.4 19c-.1.1-.2.1-.3.2-.2.1-.4.1-.6 0-.1 0-.2-.1-.3-.2l-6.5-6.5V5.8h6.8l6.5 6.5c.2.2.2.4.2.6 0 .1 0 .3-.2.5zM9 8c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1z" 28172 })); 28173 /* harmony default export */ var library_tag = (tag); 28174 28175 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/custom-post-type.js 28176 28177 28178 /** 28179 * WordPress dependencies 28180 */ 28181 28182 const customPostType = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 28183 xmlns: "http://www.w3.org/2000/svg", 28184 viewBox: "0 0 24 24" 28185 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 28186 d: "M4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4zm.8-4l.7.7 2-2V12h1V9.2l2 2 .7-.7-2-2H12v-1H9.2l2-2-.7-.7-2 2V4h-1v2.8l-2-2-.7.7 2 2H4v1h2.8l-2 2z" 28187 })); 28188 /* harmony default export */ var custom_post_type = (customPostType); 28189 28190 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/fallback-variations.js 28191 /** 28192 * WordPress dependencies 28193 */ 28194 28195 // FALLBACK: this is only used when the server does not understand the variations property in the 28196 // register_block_type call. see navigation-link/index.php. 28197 // Delete this file when supported WP ranges understand the `variations` property when passed to 28198 // register_block_type in index.php. 28199 28200 const fallbackVariations = [{ 28201 name: 'link', 28202 isDefault: true, 28203 title: (0,external_wp_i18n_namespaceObject.__)('Custom Link'), 28204 description: (0,external_wp_i18n_namespaceObject.__)('A link to a custom URL.'), 28205 attributes: {} 28206 }, { 28207 name: 'post', 28208 icon: post_title, 28209 title: (0,external_wp_i18n_namespaceObject.__)('Post Link'), 28210 description: (0,external_wp_i18n_namespaceObject.__)('A link to a post.'), 28211 attributes: { 28212 type: 'post', 28213 kind: 'post-type' 28214 } 28215 }, { 28216 name: 'page', 28217 icon: library_page, 28218 title: (0,external_wp_i18n_namespaceObject.__)('Page Link'), 28219 description: (0,external_wp_i18n_namespaceObject.__)('A link to a page.'), 28220 attributes: { 28221 type: 'page', 28222 kind: 'post-type' 28223 } 28224 }, { 28225 name: 'category', 28226 icon: library_category, 28227 title: (0,external_wp_i18n_namespaceObject.__)('Category Link'), 28228 description: (0,external_wp_i18n_namespaceObject.__)('A link to a category.'), 28229 attributes: { 28230 type: 'category', 28231 kind: 'taxonomy' 28232 } 28233 }, { 28234 name: 'tag', 28235 icon: library_tag, 28236 title: (0,external_wp_i18n_namespaceObject.__)('Tag Link'), 28237 description: (0,external_wp_i18n_namespaceObject.__)('A link to a tag.'), 28238 attributes: { 28239 type: 'tag', 28240 kind: 'taxonomy' 28241 } 28242 }]; 28243 /** 28244 * Add `isActive` function to all `navigation link` variations, if not defined. 28245 * `isActive` function is used to find a variation match from a created 28246 * Block by providing its attributes. 28247 */ 28248 28249 fallbackVariations.forEach(variation => { 28250 if (variation.isActive) return; 28251 28252 variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type; 28253 }); 28254 /* harmony default export */ var fallback_variations = (fallbackVariations); 28255 28256 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/hooks.js 28257 /** 28258 * WordPress dependencies 28259 */ 28260 28261 /** 28262 * Internal dependencies 28263 */ 28264 28265 28266 28267 function getIcon(variationName) { 28268 switch (variationName) { 28269 case 'post': 28270 return post_title; 28271 28272 case 'page': 28273 return library_page; 28274 28275 case 'tag': 28276 return library_tag; 28277 28278 case 'category': 28279 return library_category; 28280 28281 default: 28282 return custom_post_type; 28283 } 28284 } 28285 28286 function enhanceNavigationLinkVariations(settings, name) { 28287 if (name !== 'core/navigation-link') { 28288 return settings; 28289 } // Fallback handling may be deleted after supported WP ranges understand the `variations` 28290 // property when passed to register_block_type in index.php. 28291 28292 28293 if (!settings.variations) { 28294 return { ...settings, 28295 variations: fallback_variations 28296 }; 28297 } // Otherwise decorate server passed variations with an icon and isActive function. 28298 28299 28300 if (settings.variations) { 28301 const isActive = (blockAttributes, variationAttributes) => { 28302 return blockAttributes.type === variationAttributes.type; 28303 }; 28304 28305 const variations = settings.variations.map(variation => { 28306 return { ...variation, 28307 ...(!variation.icon && { 28308 icon: getIcon(variation.name) 28309 }), 28310 ...(!variation.isActive && { 28311 isActive 28312 }) 28313 }; 28314 }); 28315 return { ...settings, 28316 variations 28317 }; 28318 } 28319 28320 return settings; 28321 } 28322 28323 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/transforms.js 28324 /** 28325 * WordPress dependencies 28326 */ 28327 28328 const navigation_link_transforms_transforms = { 28329 from: [{ 28330 type: 'block', 28331 blocks: ['core/site-logo'], 28332 transform: () => { 28333 return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link'); 28334 } 28335 }, { 28336 type: 'block', 28337 blocks: ['core/spacer'], 28338 transform: () => { 28339 return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link'); 28340 } 28341 }, { 28342 type: 'block', 28343 blocks: ['core/home-link'], 28344 transform: () => { 28345 return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link'); 28346 } 28347 }, { 28348 type: 'block', 28349 blocks: ['core/social-links'], 28350 transform: () => { 28351 return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link'); 28352 } 28353 }, { 28354 type: 'block', 28355 blocks: ['core/search'], 28356 transform: () => { 28357 return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link'); 28358 } 28359 }], 28360 to: [{ 28361 type: 'block', 28362 blocks: ['core/navigation-submenu'], 28363 transform: (attributes, innerBlocks) => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks) 28364 }, { 28365 type: 'block', 28366 blocks: ['core/spacer'], 28367 transform: () => { 28368 return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer'); 28369 } 28370 }, { 28371 type: 'block', 28372 blocks: ['core/site-logo'], 28373 transform: () => { 28374 return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo'); 28375 } 28376 }, { 28377 type: 'block', 28378 blocks: ['core/home-link'], 28379 transform: () => { 28380 return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link'); 28381 } 28382 }, { 28383 type: 'block', 28384 blocks: ['core/social-links'], 28385 transform: () => { 28386 return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links'); 28387 } 28388 }, { 28389 type: 'block', 28390 blocks: ['core/search'], 28391 transform: () => { 28392 return (0,external_wp_blocks_namespaceObject.createBlock)('core/search', { 28393 showLabel: false, 28394 buttonUseIcon: true, 28395 buttonPosition: 'button-inside' 28396 }); 28397 } 28398 }] 28399 }; 28400 /* harmony default export */ var navigation_link_transforms = (navigation_link_transforms_transforms); 28401 28402 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/index.js 28403 28404 28405 /** 28406 * WordPress dependencies 28407 */ 28408 28409 28410 28411 28412 /** 28413 * Internal dependencies 28414 */ 28415 28416 const navigation_link_metadata = { 28417 $schema: "https://schemas.wp.org/trunk/block.json", 28418 apiVersion: 2, 28419 name: "core/navigation-link", 28420 title: "Custom Link", 28421 category: "design", 28422 parent: ["core/navigation"], 28423 description: "Add a page, link, or another item to your navigation.", 28424 textdomain: "default", 28425 attributes: { 28426 label: { 28427 type: "string" 28428 }, 28429 type: { 28430 type: "string" 28431 }, 28432 description: { 28433 type: "string" 28434 }, 28435 rel: { 28436 type: "string" 28437 }, 28438 id: { 28439 type: "number" 28440 }, 28441 opensInNewTab: { 28442 type: "boolean", 28443 "default": false 28444 }, 28445 url: { 28446 type: "string" 28447 }, 28448 title: { 28449 type: "string" 28450 }, 28451 kind: { 28452 type: "string" 28453 }, 28454 isTopLevelLink: { 28455 type: "boolean" 28456 } 28457 }, 28458 usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "style"], 28459 supports: { 28460 reusable: false, 28461 html: false, 28462 __experimentalSlashInserter: true 28463 }, 28464 editorStyle: "wp-block-navigation-link-editor", 28465 style: "wp-block-navigation-link" 28466 }; 28467 28468 28469 28470 28471 const { 28472 name: navigation_link_name 28473 } = navigation_link_metadata; 28474 28475 const navigation_link_settings = { 28476 icon: custom_link, 28477 __experimentalLabel: _ref => { 28478 let { 28479 label 28480 } = _ref; 28481 return label; 28482 }, 28483 28484 merge(leftAttributes, _ref2) { 28485 let { 28486 label: rightLabel = '' 28487 } = _ref2; 28488 return { ...leftAttributes, 28489 label: leftAttributes.label + rightLabel 28490 }; 28491 }, 28492 28493 edit: NavigationLinkEdit, 28494 save: navigation_link_save_save, 28495 example: { 28496 attributes: { 28497 label: (0,external_wp_i18n_namespaceObject._x)('Example Link', 'navigation link preview example'), 28498 url: 'https://example.com' 28499 } 28500 }, 28501 deprecated: [{ 28502 isEligible(attributes) { 28503 return attributes.nofollow; 28504 }, 28505 28506 attributes: { 28507 label: { 28508 type: 'string' 28509 }, 28510 type: { 28511 type: 'string' 28512 }, 28513 nofollow: { 28514 type: 'boolean' 28515 }, 28516 description: { 28517 type: 'string' 28518 }, 28519 id: { 28520 type: 'number' 28521 }, 28522 opensInNewTab: { 28523 type: 'boolean', 28524 default: false 28525 }, 28526 url: { 28527 type: 'string' 28528 } 28529 }, 28530 28531 migrate(_ref3) { 28532 let { 28533 nofollow, 28534 ...rest 28535 } = _ref3; 28536 return { 28537 rel: nofollow ? 'nofollow' : '', 28538 ...rest 28539 }; 28540 }, 28541 28542 save() { 28543 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 28544 } 28545 28546 }], 28547 transforms: navigation_link_transforms 28548 }; // importing this file includes side effects. This is whitelisted in block-library/package.json under sideEffects 28549 28550 (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/navigation-link', enhanceNavigationLinkVariations); 28551 28552 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/remove-submenu.js 28553 28554 28555 /** 28556 * WordPress dependencies 28557 */ 28558 28559 const removeSubmenu = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 28560 xmlns: "http://www.w3.org/2000/svg", 28561 viewBox: "0 0 24 24" 28562 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 28563 fillRule: "evenodd", 28564 clipRule: "evenodd", 28565 d: "m13.955 20.748 8-17.5-.91-.416L19.597 6H13.5v1.5h5.411l-1.6 3.5H13.5v1.5h3.126l-1.6 3.5H13.5l.028 1.5h.812l-1.295 2.832.91.416ZM17.675 16l-.686 1.5h4.539L21.5 16h-3.825Zm2.286-5-.686 1.5H21.5V11h-1.54ZM2 12c0 3.58 2.42 5.5 6 5.5h.5V19l3-2.5-3-2.5v2H8c-2.48 0-4.5-1.52-4.5-4S5.52 7.5 8 7.5h3.5V6H8c-3.58 0-6 2.42-6 6Z" 28566 })); 28567 /* harmony default export */ var remove_submenu = (removeSubmenu); 28568 28569 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/icons.js 28570 28571 28572 /** 28573 * WordPress dependencies 28574 */ 28575 28576 const ItemSubmenuIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 28577 xmlns: "http://www.w3.org/2000/svg", 28578 width: "12", 28579 height: "12", 28580 viewBox: "0 0 12 12", 28581 fill: "none" 28582 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 28583 d: "M1.50002 4L6.00002 8L10.5 4", 28584 strokeWidth: "1.5" 28585 })); 28586 28587 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/edit.js 28588 28589 28590 /** 28591 * External dependencies 28592 */ 28593 28594 28595 /** 28596 * WordPress dependencies 28597 */ 28598 28599 28600 28601 28602 28603 28604 28605 28606 28607 28608 28609 28610 28611 /** 28612 * Internal dependencies 28613 */ 28614 28615 28616 const { 28617 name: navigation_submenu_edit_name 28618 } = { 28619 $schema: "https://schemas.wp.org/trunk/block.json", 28620 apiVersion: 2, 28621 name: "core/navigation-submenu", 28622 title: "Submenu", 28623 category: "design", 28624 parent: ["core/navigation"], 28625 description: "Add a submenu to your navigation.", 28626 textdomain: "default", 28627 attributes: { 28628 label: { 28629 type: "string" 28630 }, 28631 type: { 28632 type: "string" 28633 }, 28634 description: { 28635 type: "string" 28636 }, 28637 rel: { 28638 type: "string" 28639 }, 28640 id: { 28641 type: "number" 28642 }, 28643 opensInNewTab: { 28644 type: "boolean", 28645 "default": false 28646 }, 28647 url: { 28648 type: "string" 28649 }, 28650 title: { 28651 type: "string" 28652 }, 28653 kind: { 28654 type: "string" 28655 }, 28656 isTopLevelItem: { 28657 type: "boolean" 28658 } 28659 }, 28660 usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "openSubmenusOnClick", "style"], 28661 supports: { 28662 reusable: false, 28663 html: false 28664 }, 28665 editorStyle: "wp-block-navigation-submenu-editor", 28666 style: "wp-block-navigation-submenu" 28667 }; 28668 const navigation_submenu_edit_ALLOWED_BLOCKS = ['core/navigation-link', 'core/navigation-submenu']; 28669 const edit_DEFAULT_BLOCK = { 28670 name: 'core/navigation-link' 28671 }; 28672 /** 28673 * A React hook to determine if it's dragging within the target element. 28674 * 28675 * @typedef {import('@wordpress/element').RefObject} RefObject 28676 * 28677 * @param {RefObject<HTMLElement>} elementRef The target elementRef object. 28678 * 28679 * @return {boolean} Is dragging within the target element. 28680 */ 28681 28682 const edit_useIsDraggingWithin = elementRef => { 28683 const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false); 28684 (0,external_wp_element_namespaceObject.useEffect)(() => { 28685 const { 28686 ownerDocument 28687 } = elementRef.current; 28688 28689 function handleDragStart(event) { 28690 // Check the first time when the dragging starts. 28691 handleDragEnter(event); 28692 } // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape. 28693 28694 28695 function handleDragEnd() { 28696 setIsDraggingWithin(false); 28697 } 28698 28699 function handleDragEnter(event) { 28700 // Check if the current target is inside the item element. 28701 if (elementRef.current.contains(event.target)) { 28702 setIsDraggingWithin(true); 28703 } else { 28704 setIsDraggingWithin(false); 28705 } 28706 } // Bind these events to the document to catch all drag events. 28707 // Ideally, we can also use `event.relatedTarget`, but sadly that 28708 // doesn't work in Safari. 28709 28710 28711 ownerDocument.addEventListener('dragstart', handleDragStart); 28712 ownerDocument.addEventListener('dragend', handleDragEnd); 28713 ownerDocument.addEventListener('dragenter', handleDragEnter); 28714 return () => { 28715 ownerDocument.removeEventListener('dragstart', handleDragStart); 28716 ownerDocument.removeEventListener('dragend', handleDragEnd); 28717 ownerDocument.removeEventListener('dragenter', handleDragEnter); 28718 }; 28719 }, []); 28720 return isDraggingWithin; 28721 }; 28722 /** 28723 * Given the Link block's type attribute, return the query params to give to 28724 * /wp/v2/search. 28725 * 28726 * @param {string} type Link block's type attribute. 28727 * @param {string} kind Link block's entity of kind (post-type|taxonomy) 28728 * @return {{ type?: string, subtype?: string }} Search query params. 28729 */ 28730 28731 28732 function edit_getSuggestionsQuery(type, kind) { 28733 switch (type) { 28734 case 'post': 28735 case 'page': 28736 return { 28737 type: 'post', 28738 subtype: type 28739 }; 28740 28741 case 'category': 28742 return { 28743 type: 'term', 28744 subtype: 'category' 28745 }; 28746 28747 case 'tag': 28748 return { 28749 type: 'term', 28750 subtype: 'post_tag' 28751 }; 28752 28753 case 'post_format': 28754 return { 28755 type: 'post-format' 28756 }; 28757 28758 default: 28759 if (kind === 'taxonomy') { 28760 return { 28761 type: 'term', 28762 subtype: type 28763 }; 28764 } 28765 28766 if (kind === 'post-type') { 28767 return { 28768 type: 'post', 28769 subtype: type 28770 }; 28771 } 28772 28773 return {}; 28774 } 28775 } 28776 /** 28777 * Determine the colors for a menu. 28778 * 28779 * Order of priority is: 28780 * 1: Overlay custom colors (if submenu) 28781 * 2: Overlay theme colors (if submenu) 28782 * 3: Custom colors 28783 * 4: Theme colors 28784 * 5: Global styles 28785 * 28786 * @param {Object} context 28787 * @param {boolean} isSubMenu 28788 */ 28789 28790 28791 function edit_getColors(context, isSubMenu) { 28792 var _style$color, _style$color2; 28793 28794 const { 28795 textColor, 28796 customTextColor, 28797 backgroundColor, 28798 customBackgroundColor, 28799 overlayTextColor, 28800 customOverlayTextColor, 28801 overlayBackgroundColor, 28802 customOverlayBackgroundColor, 28803 style 28804 } = context; 28805 const colors = {}; 28806 28807 if (isSubMenu && !!customOverlayTextColor) { 28808 colors.customTextColor = customOverlayTextColor; 28809 } else if (isSubMenu && !!overlayTextColor) { 28810 colors.textColor = overlayTextColor; 28811 } else if (!!customTextColor) { 28812 colors.customTextColor = customTextColor; 28813 } else if (!!textColor) { 28814 colors.textColor = textColor; 28815 } else if (!!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.text)) { 28816 colors.customTextColor = style.color.text; 28817 } 28818 28819 if (isSubMenu && !!customOverlayBackgroundColor) { 28820 colors.customBackgroundColor = customOverlayBackgroundColor; 28821 } else if (isSubMenu && !!overlayBackgroundColor) { 28822 colors.backgroundColor = overlayBackgroundColor; 28823 } else if (!!customBackgroundColor) { 28824 colors.customBackgroundColor = customBackgroundColor; 28825 } else if (!!backgroundColor) { 28826 colors.backgroundColor = backgroundColor; 28827 } else if (!!(style !== null && style !== void 0 && (_style$color2 = style.color) !== null && _style$color2 !== void 0 && _style$color2.background)) { 28828 colors.customTextColor = style.color.background; 28829 } 28830 28831 return colors; 28832 } 28833 /** 28834 * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind 28835 */ 28836 28837 /** 28838 * Navigation Link Block Attributes 28839 * 28840 * @typedef {Object} WPNavigationLinkBlockAttributes 28841 * 28842 * @property {string} [label] Link text. 28843 * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status. 28844 * @property {string} [type] The type such as post, page, tag, category and other custom types. 28845 * @property {string} [rel] The relationship of the linked URL. 28846 * @property {number} [id] A post or term id. 28847 * @property {boolean} [opensInNewTab] Sets link target to _blank when true. 28848 * @property {string} [url] Link href. 28849 * @property {string} [title] Link title attribute. 28850 */ 28851 28852 /** 28853 * Link Control onChange handler that updates block attributes when a setting is changed. 28854 * 28855 * @param {Object} updatedValue New block attributes to update. 28856 * @param {Function} setAttributes Block attribute update function. 28857 * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes. 28858 * 28859 */ 28860 28861 28862 const edit_updateNavigationLinkBlockAttributes = function () { 28863 let updatedValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 28864 let setAttributes = arguments.length > 1 ? arguments[1] : undefined; 28865 let blockAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; 28866 const { 28867 label: originalLabel = '', 28868 kind: originalKind = '', 28869 type: originalType = '' 28870 } = blockAttributes; 28871 const { 28872 title = '', 28873 url = '', 28874 opensInNewTab, 28875 id, 28876 kind: newKind = originalKind, 28877 type: newType = originalType 28878 } = updatedValue; 28879 const normalizedTitle = title.replace(/http(s?):\/\//gi, ''); 28880 const normalizedURL = url.replace(/http(s?):\/\//gi, ''); 28881 const escapeTitle = title !== '' && normalizedTitle !== normalizedURL && originalLabel !== title; 28882 const label = escapeTitle ? (0,external_lodash_namespaceObject.escape)(title) : originalLabel || (0,external_lodash_namespaceObject.escape)(normalizedURL); // In https://github.com/WordPress/gutenberg/pull/24670 we decided to use "tag" in favor of "post_tag" 28883 28884 const type = newType === 'post_tag' ? 'tag' : newType.replace('-', '_'); 28885 const isBuiltInType = ['post', 'page', 'tag', 'category'].indexOf(type) > -1; 28886 const isCustomLink = !newKind && !isBuiltInType || newKind === 'custom'; 28887 const kind = isCustomLink ? 'custom' : newKind; 28888 setAttributes({ // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string. 28889 ...(url && { 28890 url: encodeURI((0,external_wp_url_namespaceObject.safeDecodeURI)(url)) 28891 }), 28892 ...(label && { 28893 label 28894 }), 28895 ...(undefined !== opensInNewTab && { 28896 opensInNewTab 28897 }), 28898 ...(id && Number.isInteger(id) && { 28899 id 28900 }), 28901 ...(kind && { 28902 kind 28903 }), 28904 ...(type && type !== 'URL' && { 28905 type 28906 }) 28907 }); 28908 }; 28909 function NavigationSubmenuEdit(_ref) { 28910 let { 28911 attributes, 28912 isSelected, 28913 setAttributes, 28914 mergeBlocks, 28915 onReplace, 28916 context, 28917 clientId 28918 } = _ref; 28919 const { 28920 label, 28921 type, 28922 opensInNewTab, 28923 url, 28924 description, 28925 rel, 28926 title, 28927 kind 28928 } = attributes; 28929 const link = { 28930 url, 28931 opensInNewTab 28932 }; 28933 const { 28934 showSubmenuIcon, 28935 maxNestingLevel, 28936 openSubmenusOnClick 28937 } = context; 28938 const { 28939 saveEntityRecord 28940 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store); 28941 const { 28942 __unstableMarkNextChangeAsNotPersistent, 28943 replaceBlock 28944 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 28945 const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(false); 28946 const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null); 28947 const isDraggingWithin = edit_useIsDraggingWithin(listItemRef); 28948 28949 const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add text…'); 28950 28951 const ref = (0,external_wp_element_namespaceObject.useRef)(); 28952 const { 28953 isAtMaxNesting, 28954 isTopLevelItem, 28955 isParentOfSelectedBlock, 28956 isImmediateParentOfSelectedBlock, 28957 hasChildren, 28958 selectedBlockHasChildren, 28959 userCanCreatePages, 28960 userCanCreatePosts, 28961 onlyDescendantIsEmptyLink 28962 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 28963 const { 28964 hasSelectedInnerBlock, 28965 getSelectedBlockClientId, 28966 getBlockParentsByBlockName, 28967 getBlock, 28968 getBlockCount, 28969 getBlockOrder 28970 } = select(external_wp_blockEditor_namespaceObject.store); 28971 28972 let _onlyDescendantIsEmptyLink; 28973 28974 const selectedBlockId = getSelectedBlockClientId(); 28975 const selectedBlockChildren = getBlockOrder(selectedBlockId); // Check for a single descendant in the submenu. If that block 28976 // is a link block in a "placeholder" state with no label then 28977 // we can consider as an "empty" link. 28978 28979 if ((selectedBlockChildren === null || selectedBlockChildren === void 0 ? void 0 : selectedBlockChildren.length) === 1) { 28980 var _singleBlock$attribut; 28981 28982 const singleBlock = getBlock(selectedBlockChildren[0]); 28983 _onlyDescendantIsEmptyLink = (singleBlock === null || singleBlock === void 0 ? void 0 : singleBlock.name) === 'core/navigation-link' && !(singleBlock !== null && singleBlock !== void 0 && (_singleBlock$attribut = singleBlock.attributes) !== null && _singleBlock$attribut !== void 0 && _singleBlock$attribut.label); 28984 } 28985 28986 return { 28987 isAtMaxNesting: getBlockParentsByBlockName(clientId, navigation_submenu_edit_name).length >= maxNestingLevel, 28988 isTopLevelItem: getBlockParentsByBlockName(clientId, navigation_submenu_edit_name).length === 0, 28989 isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true), 28990 isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false), 28991 hasChildren: !!getBlockCount(clientId), 28992 selectedBlockHasChildren: !!(selectedBlockChildren !== null && selectedBlockChildren !== void 0 && selectedBlockChildren.length), 28993 userCanCreatePages: select(external_wp_coreData_namespaceObject.store).canUser('create', 'pages'), 28994 userCanCreatePosts: select(external_wp_coreData_namespaceObject.store).canUser('create', 'posts'), 28995 onlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink 28996 }; 28997 }, [clientId]); // Show the LinkControl on mount if the URL is empty 28998 // ( When adding a new menu item) 28999 // This can't be done in the useState call because it conflicts 29000 // with the autofocus behavior of the BlockListBlock component. 29001 29002 (0,external_wp_element_namespaceObject.useEffect)(() => { 29003 if (!openSubmenusOnClick && !url) { 29004 setIsLinkOpen(true); 29005 } 29006 }, []); // Store the colors from context as attributes for rendering. 29007 29008 (0,external_wp_element_namespaceObject.useEffect)(() => { 29009 // This side-effect should not create an undo level as those should 29010 // only be created via user interactions. Mark this change as 29011 // not persistent to avoid undo level creation. 29012 // See https://github.com/WordPress/gutenberg/issues/34564. 29013 __unstableMarkNextChangeAsNotPersistent(); 29014 29015 setAttributes({ 29016 isTopLevelItem 29017 }); 29018 }, [isTopLevelItem]); 29019 /** 29020 * The hook shouldn't be necessary but due to a focus loss happening 29021 * when selecting a suggestion in the link popover, we force close on block unselection. 29022 */ 29023 29024 (0,external_wp_element_namespaceObject.useEffect)(() => { 29025 if (!isSelected) { 29026 setIsLinkOpen(false); 29027 } 29028 }, [isSelected]); // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text. 29029 29030 (0,external_wp_element_namespaceObject.useEffect)(() => { 29031 if (isLinkOpen && url) { 29032 // Does this look like a URL and have something TLD-ish? 29033 if ((0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) { 29034 // Focus and select the label text. 29035 selectLabelText(); 29036 } else { 29037 // Focus it (but do not select). 29038 (0,external_wp_dom_namespaceObject.placeCaretAtHorizontalEdge)(ref.current, true); 29039 } 29040 } 29041 }, [url]); 29042 /** 29043 * Focus the Link label text and select it. 29044 */ 29045 29046 function selectLabelText() { 29047 ref.current.focus(); 29048 const { 29049 ownerDocument 29050 } = ref.current; 29051 const { 29052 defaultView 29053 } = ownerDocument; 29054 const selection = defaultView.getSelection(); 29055 const range = ownerDocument.createRange(); // Get the range of the current ref contents so we can add this range to the selection. 29056 29057 range.selectNodeContents(ref.current); 29058 selection.removeAllRanges(); 29059 selection.addRange(range); 29060 } 29061 29062 let userCanCreate = false; 29063 29064 if (!type || type === 'page') { 29065 userCanCreate = userCanCreatePages; 29066 } else if (type === 'post') { 29067 userCanCreate = userCanCreatePosts; 29068 } 29069 29070 async function handleCreate(pageTitle) { 29071 const postType = type || 'page'; 29072 const page = await saveEntityRecord('postType', postType, { 29073 title: pageTitle, 29074 status: 'draft' 29075 }); 29076 return { 29077 id: page.id, 29078 type: postType, 29079 title: page.title.rendered, 29080 url: page.link, 29081 kind: 'post-type' 29082 }; 29083 } 29084 29085 const { 29086 textColor, 29087 customTextColor, 29088 backgroundColor, 29089 customBackgroundColor 29090 } = edit_getColors(context, !isTopLevelItem); 29091 29092 function onKeyDown(event) { 29093 if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) { 29094 setIsLinkOpen(true); 29095 } 29096 } 29097 29098 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 29099 ref: listItemRef, 29100 className: classnames_default()('wp-block-navigation-item', { 29101 'is-editing': isSelected || isParentOfSelectedBlock, 29102 'is-dragging-within': isDraggingWithin, 29103 'has-link': !!url, 29104 'has-child': hasChildren, 29105 'has-text-color': !!textColor || !!customTextColor, 29106 [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor, 29107 'has-background': !!backgroundColor || customBackgroundColor, 29108 [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor, 29109 'open-on-click': openSubmenusOnClick 29110 }), 29111 style: { 29112 color: !textColor && customTextColor, 29113 backgroundColor: !backgroundColor && customBackgroundColor 29114 }, 29115 onKeyDown 29116 }); // Always use overlay colors for submenus. 29117 29118 const innerBlocksColors = edit_getColors(context, true); 29119 const allowedBlocks = isAtMaxNesting ? (0,external_lodash_namespaceObject.without)(navigation_submenu_edit_ALLOWED_BLOCKS, 'core/navigation-submenu') : navigation_submenu_edit_ALLOWED_BLOCKS; 29120 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({ 29121 className: classnames_default()('wp-block-navigation__submenu-container', { 29122 'is-parent-of-selected-block': isParentOfSelectedBlock, 29123 'has-text-color': !!(innerBlocksColors.textColor || innerBlocksColors.customTextColor), 29124 [`has-$innerBlocksColors.textColor}-color`]: !!innerBlocksColors.textColor, 29125 'has-background': !!(innerBlocksColors.backgroundColor || innerBlocksColors.customBackgroundColor), 29126 [`has-$innerBlocksColors.backgroundColor}-background-color`]: !!innerBlocksColors.backgroundColor 29127 }), 29128 style: { 29129 color: innerBlocksColors.customTextColor, 29130 backgroundColor: innerBlocksColors.customBackgroundColor 29131 } 29132 }, { 29133 allowedBlocks, 29134 __experimentalDefaultBlock: edit_DEFAULT_BLOCK, 29135 __experimentalDirectInsert: true, 29136 // Ensure block toolbar is not too far removed from item 29137 // being edited. 29138 // see: https://github.com/WordPress/gutenberg/pull/34615. 29139 __experimentalCaptureToolbars: true, 29140 renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren || // Show the appender while dragging to allow inserting element between item and the appender. 29141 hasChildren ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false 29142 }); 29143 const ParentElement = openSubmenusOnClick ? 'button' : 'a'; 29144 29145 function transformToLink() { 29146 const newLinkBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes); 29147 replaceBlock(clientId, newLinkBlock); 29148 } 29149 29150 const canConvertToLink = !selectedBlockHasChildren || onlyDescendantIsEmptyLink; 29151 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, !openSubmenusOnClick && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 29152 name: "link", 29153 icon: library_link, 29154 title: (0,external_wp_i18n_namespaceObject.__)('Link'), 29155 shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'), 29156 onClick: () => setIsLinkOpen(true) 29157 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 29158 name: "revert", 29159 icon: remove_submenu, 29160 title: (0,external_wp_i18n_namespaceObject.__)('Convert to Link'), 29161 onClick: transformToLink, 29162 className: "wp-block-navigation__submenu__revert", 29163 isDisabled: !canConvertToLink 29164 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 29165 title: (0,external_wp_i18n_namespaceObject.__)('Link settings') 29166 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, { 29167 value: description || '', 29168 onChange: descriptionValue => { 29169 setAttributes({ 29170 description: descriptionValue 29171 }); 29172 }, 29173 label: (0,external_wp_i18n_namespaceObject.__)('Description'), 29174 help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.') 29175 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 29176 value: title || '', 29177 onChange: titleValue => { 29178 setAttributes({ 29179 title: titleValue 29180 }); 29181 }, 29182 label: (0,external_wp_i18n_namespaceObject.__)('Link title'), 29183 autoComplete: "off" 29184 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 29185 value: rel || '', 29186 onChange: relValue => { 29187 setAttributes({ 29188 rel: relValue 29189 }); 29190 }, 29191 label: (0,external_wp_i18n_namespaceObject.__)('Link rel'), 29192 autoComplete: "off" 29193 }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(ParentElement, { 29194 className: "wp-block-navigation-item__content" 29195 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 29196 ref: ref, 29197 identifier: "label", 29198 className: "wp-block-navigation-item__label", 29199 value: label, 29200 onChange: labelValue => setAttributes({ 29201 label: labelValue 29202 }), 29203 onMerge: mergeBlocks, 29204 onReplace: onReplace, 29205 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'), 29206 placeholder: itemLabelPlaceholder, 29207 withoutInteractiveFormatting: true, 29208 allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough'], 29209 onClick: () => { 29210 if (!openSubmenusOnClick && !url) { 29211 setIsLinkOpen(true); 29212 } 29213 } 29214 }), !openSubmenusOnClick && isLinkOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { 29215 position: "bottom center", 29216 onClose: () => setIsLinkOpen(false), 29217 anchorRef: listItemRef.current 29218 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, { 29219 className: "wp-block-navigation-link__inline-link-input", 29220 value: link, 29221 showInitialSuggestions: true, 29222 withCreateSuggestion: userCanCreate, 29223 createSuggestion: handleCreate, 29224 createSuggestionButtonText: searchTerm => { 29225 let format; 29226 29227 if (type === 'post') { 29228 /* translators: %s: search term. */ 29229 format = (0,external_wp_i18n_namespaceObject.__)('Create draft post: <mark>%s</mark>'); 29230 } else { 29231 /* translators: %s: search term. */ 29232 format = (0,external_wp_i18n_namespaceObject.__)('Create draft page: <mark>%s</mark>'); 29233 } 29234 29235 return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(format, searchTerm), { 29236 mark: (0,external_wp_element_namespaceObject.createElement)("mark", null) 29237 }); 29238 }, 29239 noDirectEntry: !!type, 29240 noURLSuggestion: !!type, 29241 suggestionsQuery: edit_getSuggestionsQuery(type, kind), 29242 onChange: updatedValue => edit_updateNavigationLinkBlockAttributes(updatedValue, setAttributes, attributes), 29243 onRemove: () => { 29244 setAttributes({ 29245 url: '' 29246 }); 29247 (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Link removed.'), 'assertive'); 29248 } 29249 }))), (showSubmenuIcon || openSubmenusOnClick) && (0,external_wp_element_namespaceObject.createElement)("span", { 29250 className: "wp-block-navigation__submenu-icon" 29251 }, (0,external_wp_element_namespaceObject.createElement)(ItemSubmenuIcon, null)), (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps))); 29252 } 29253 29254 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/save.js 29255 29256 29257 /** 29258 * WordPress dependencies 29259 */ 29260 29261 function navigation_submenu_save_save() { 29262 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 29263 } 29264 29265 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/transforms.js 29266 /** 29267 * WordPress dependencies 29268 */ 29269 29270 const navigation_submenu_transforms_transforms = { 29271 to: [{ 29272 type: 'block', 29273 blocks: ['core/navigation-link'], 29274 isMatch: (attributes, block) => { 29275 var _block$innerBlocks; 29276 29277 return (block === null || block === void 0 ? void 0 : (_block$innerBlocks = block.innerBlocks) === null || _block$innerBlocks === void 0 ? void 0 : _block$innerBlocks.length) === 0; 29278 }, 29279 transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes) 29280 }, { 29281 type: 'block', 29282 blocks: ['core/spacer'], 29283 isMatch: (attributes, block) => { 29284 var _block$innerBlocks2; 29285 29286 return (block === null || block === void 0 ? void 0 : (_block$innerBlocks2 = block.innerBlocks) === null || _block$innerBlocks2 === void 0 ? void 0 : _block$innerBlocks2.length) === 0; 29287 }, 29288 transform: () => { 29289 return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer'); 29290 } 29291 }, { 29292 type: 'block', 29293 blocks: ['core/site-logo'], 29294 isMatch: (attributes, block) => { 29295 var _block$innerBlocks3; 29296 29297 return (block === null || block === void 0 ? void 0 : (_block$innerBlocks3 = block.innerBlocks) === null || _block$innerBlocks3 === void 0 ? void 0 : _block$innerBlocks3.length) === 0; 29298 }, 29299 transform: () => { 29300 return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo'); 29301 } 29302 }, { 29303 type: 'block', 29304 blocks: ['core/home-link'], 29305 isMatch: (attributes, block) => { 29306 var _block$innerBlocks4; 29307 29308 return (block === null || block === void 0 ? void 0 : (_block$innerBlocks4 = block.innerBlocks) === null || _block$innerBlocks4 === void 0 ? void 0 : _block$innerBlocks4.length) === 0; 29309 }, 29310 transform: () => { 29311 return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link'); 29312 } 29313 }, { 29314 type: 'block', 29315 blocks: ['core/social-links'], 29316 isMatch: (attributes, block) => { 29317 var _block$innerBlocks5; 29318 29319 return (block === null || block === void 0 ? void 0 : (_block$innerBlocks5 = block.innerBlocks) === null || _block$innerBlocks5 === void 0 ? void 0 : _block$innerBlocks5.length) === 0; 29320 }, 29321 transform: () => { 29322 return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links'); 29323 } 29324 }, { 29325 type: 'block', 29326 blocks: ['core/search'], 29327 isMatch: (attributes, block) => { 29328 var _block$innerBlocks6; 29329 29330 return (block === null || block === void 0 ? void 0 : (_block$innerBlocks6 = block.innerBlocks) === null || _block$innerBlocks6 === void 0 ? void 0 : _block$innerBlocks6.length) === 0; 29331 }, 29332 transform: () => { 29333 return (0,external_wp_blocks_namespaceObject.createBlock)('core/search'); 29334 } 29335 }] 29336 }; 29337 /* harmony default export */ var navigation_submenu_transforms = (navigation_submenu_transforms_transforms); 29338 29339 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-submenu/index.js 29340 /** 29341 * WordPress dependencies 29342 */ 29343 29344 /** 29345 * Internal dependencies 29346 */ 29347 29348 const navigation_submenu_metadata = { 29349 $schema: "https://schemas.wp.org/trunk/block.json", 29350 apiVersion: 2, 29351 name: "core/navigation-submenu", 29352 title: "Submenu", 29353 category: "design", 29354 parent: ["core/navigation"], 29355 description: "Add a submenu to your navigation.", 29356 textdomain: "default", 29357 attributes: { 29358 label: { 29359 type: "string" 29360 }, 29361 type: { 29362 type: "string" 29363 }, 29364 description: { 29365 type: "string" 29366 }, 29367 rel: { 29368 type: "string" 29369 }, 29370 id: { 29371 type: "number" 29372 }, 29373 opensInNewTab: { 29374 type: "boolean", 29375 "default": false 29376 }, 29377 url: { 29378 type: "string" 29379 }, 29380 title: { 29381 type: "string" 29382 }, 29383 kind: { 29384 type: "string" 29385 }, 29386 isTopLevelItem: { 29387 type: "boolean" 29388 } 29389 }, 29390 usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "openSubmenusOnClick", "style"], 29391 supports: { 29392 reusable: false, 29393 html: false 29394 }, 29395 editorStyle: "wp-block-navigation-submenu-editor", 29396 style: "wp-block-navigation-submenu" 29397 }; 29398 29399 29400 29401 const { 29402 name: navigation_submenu_name 29403 } = navigation_submenu_metadata; 29404 29405 const navigation_submenu_settings = { 29406 icon: add_submenu, 29407 __experimentalLabel: _ref => { 29408 let { 29409 label 29410 } = _ref; 29411 return label; 29412 }, 29413 edit: NavigationSubmenuEdit, 29414 save: navigation_submenu_save_save, 29415 transforms: navigation_submenu_transforms 29416 }; 29417 29418 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page-break.js 29419 29420 29421 /** 29422 * WordPress dependencies 29423 */ 29424 29425 const pageBreak = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 29426 xmlns: "http://www.w3.org/2000/svg", 29427 viewBox: "0 0 24 24" 29428 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 29429 d: "M7.8 6c0-.7.6-1.2 1.2-1.2h6c.7 0 1.2.6 1.2 1.2v3h1.5V6c0-1.5-1.2-2.8-2.8-2.8H9C7.5 3.2 6.2 4.5 6.2 6v3h1.5V6zm8.4 11c0 .7-.6 1.2-1.2 1.2H9c-.7 0-1.2-.6-1.2-1.2v-3H6.2v3c0 1.5 1.2 2.8 2.8 2.8h6c1.5 0 2.8-1.2 2.8-2.8v-3h-1.5v3zM4 11v1h16v-1H4z" 29430 })); 29431 /* harmony default export */ var page_break = (pageBreak); 29432 29433 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/edit.js 29434 29435 29436 /** 29437 * WordPress dependencies 29438 */ 29439 29440 29441 function NextPageEdit() { 29442 return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)("div", { 29443 className: "wp-block-nextpage" 29444 }, (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('Page break')))); 29445 } 29446 29447 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/save.js 29448 29449 29450 /** 29451 * WordPress dependencies 29452 */ 29453 29454 function nextpage_save_save() { 29455 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, '<!--nextpage-->'); 29456 } 29457 29458 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/transforms.js 29459 /** 29460 * WordPress dependencies 29461 */ 29462 29463 const nextpage_transforms_transforms = { 29464 from: [{ 29465 type: 'raw', 29466 schema: { 29467 'wp-block': { 29468 attributes: ['data-block'] 29469 } 29470 }, 29471 isMatch: node => node.dataset && node.dataset.block === 'core/nextpage', 29472 29473 transform() { 29474 return (0,external_wp_blocks_namespaceObject.createBlock)('core/nextpage', {}); 29475 } 29476 29477 }] 29478 }; 29479 /* harmony default export */ var nextpage_transforms = (nextpage_transforms_transforms); 29480 29481 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/index.js 29482 /** 29483 * WordPress dependencies 29484 */ 29485 29486 /** 29487 * Internal dependencies 29488 */ 29489 29490 29491 const nextpage_metadata = { 29492 $schema: "https://schemas.wp.org/trunk/block.json", 29493 apiVersion: 2, 29494 name: "core/nextpage", 29495 title: "Page Break", 29496 category: "design", 29497 description: "Separate your content into a multi-page experience.", 29498 keywords: ["next page", "pagination"], 29499 parent: ["core/post-content"], 29500 textdomain: "default", 29501 supports: { 29502 customClassName: false, 29503 className: false, 29504 html: false 29505 }, 29506 editorStyle: "wp-block-nextpage-editor" 29507 }; 29508 29509 29510 const { 29511 name: nextpage_name 29512 } = nextpage_metadata; 29513 29514 const nextpage_settings = { 29515 icon: page_break, 29516 example: {}, 29517 transforms: nextpage_transforms, 29518 edit: NextPageEdit, 29519 save: nextpage_save_save 29520 }; 29521 29522 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pattern/edit.js 29523 29524 29525 /** 29526 * WordPress dependencies 29527 */ 29528 29529 29530 29531 29532 const PatternEdit = _ref => { 29533 let { 29534 attributes, 29535 clientId 29536 } = _ref; 29537 const selectedPattern = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).__experimentalGetParsedPattern(attributes.slug), [attributes.slug]); 29538 const { 29539 replaceBlocks, 29540 __unstableMarkNextChangeAsNotPersistent 29541 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); // Run this effect when the component loads. 29542 // This adds the Pattern's contents to the post. 29543 // This change won't be saved. 29544 // It will continue to pull from the pattern file unless changes are made to its respective template part. 29545 29546 (0,external_wp_element_namespaceObject.useEffect)(() => { 29547 if (selectedPattern !== null && selectedPattern !== void 0 && selectedPattern.blocks) { 29548 __unstableMarkNextChangeAsNotPersistent(); 29549 29550 replaceBlocks(clientId, selectedPattern.blocks); 29551 } 29552 }, [selectedPattern === null || selectedPattern === void 0 ? void 0 : selectedPattern.blocks]); 29553 const props = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 29554 return (0,external_wp_element_namespaceObject.createElement)("div", props); 29555 }; 29556 29557 /* harmony default export */ var pattern_edit = (PatternEdit); 29558 29559 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pattern/index.js 29560 /** 29561 * Internal dependencies 29562 */ 29563 const pattern_metadata = { 29564 $schema: "https://schemas.wp.org/trunk/block.json", 29565 apiVersion: 2, 29566 name: "core/pattern", 29567 title: "Pattern", 29568 category: "theme", 29569 description: "Show a block pattern.", 29570 supports: { 29571 html: false, 29572 inserter: false 29573 }, 29574 textdomain: "default", 29575 attributes: { 29576 slug: { 29577 type: "string" 29578 } 29579 } 29580 }; 29581 29582 const { 29583 name: pattern_name 29584 } = pattern_metadata; 29585 29586 const pattern_settings = { 29587 edit: pattern_edit 29588 }; 29589 29590 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pages.js 29591 29592 29593 /** 29594 * WordPress dependencies 29595 */ 29596 29597 const pages = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 29598 xmlns: "http://www.w3.org/2000/svg", 29599 viewBox: "0 0 24 24" 29600 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 29601 d: "M7 13.8h6v-1.5H7v1.5zM18 16V4c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2zM5.5 16V4c0-.3.2-.5.5-.5h10c.3 0 .5.2.5.5v12c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5zM7 10.5h8V9H7v1.5zm0-3.3h8V5.8H7v1.4zM20.2 6v13c0 .7-.6 1.2-1.2 1.2H8v1.5h11c1.5 0 2.7-1.2 2.7-2.8V6h-1.5z" 29602 })); 29603 /* harmony default export */ var library_pages = (pages); 29604 29605 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/convert-to-links-modal.js 29606 29607 29608 /** 29609 * WordPress dependencies 29610 */ 29611 29612 29613 29614 29615 29616 29617 const PAGE_FIELDS = ['id', 'title', 'link', 'type', 'parent']; 29618 const MAX_PAGE_COUNT = 100; 29619 const convertSelectedBlockToNavigationLinks = _ref => { 29620 let { 29621 pages, 29622 clientId, 29623 replaceBlock, 29624 createBlock 29625 } = _ref; 29626 return () => { 29627 if (!pages) { 29628 return; 29629 } 29630 29631 const linkMap = {}; 29632 const navigationLinks = []; 29633 pages.forEach(_ref2 => { 29634 var _linkMap$id$innerBloc, _linkMap$id; 29635 29636 let { 29637 id, 29638 title, 29639 link: url, 29640 type, 29641 parent 29642 } = _ref2; 29643 // See if a placeholder exists. This is created if children appear before parents in list. 29644 const innerBlocks = (_linkMap$id$innerBloc = (_linkMap$id = linkMap[id]) === null || _linkMap$id === void 0 ? void 0 : _linkMap$id.innerBlocks) !== null && _linkMap$id$innerBloc !== void 0 ? _linkMap$id$innerBloc : []; 29645 linkMap[id] = createBlock('core/navigation-link', { 29646 id, 29647 label: title.rendered, 29648 url, 29649 type, 29650 kind: 'post-type' 29651 }, innerBlocks); 29652 29653 if (!parent) { 29654 navigationLinks.push(linkMap[id]); 29655 } else { 29656 if (!linkMap[parent]) { 29657 // Use a placeholder if the child appears before parent in list. 29658 linkMap[parent] = { 29659 innerBlocks: [] 29660 }; 29661 } 29662 29663 const parentLinkInnerBlocks = linkMap[parent].innerBlocks; 29664 parentLinkInnerBlocks.push(linkMap[id]); 29665 } 29666 }); // Transform all links with innerBlocks into Submenus. This can't be done 29667 // sooner because page objects have no information on their children. 29668 29669 const transformSubmenus = listOfLinks => { 29670 listOfLinks.forEach((block, index, listOfLinksArray) => { 29671 const { 29672 attributes, 29673 innerBlocks 29674 } = block; 29675 29676 if (innerBlocks.length !== 0) { 29677 transformSubmenus(innerBlocks); 29678 const transformedBlock = createBlock('core/navigation-submenu', attributes, innerBlocks); 29679 listOfLinksArray[index] = transformedBlock; 29680 } 29681 }); 29682 }; 29683 29684 transformSubmenus(navigationLinks); 29685 replaceBlock(clientId, navigationLinks); 29686 }; 29687 }; 29688 function ConvertToLinksModal(_ref3) { 29689 let { 29690 onClose, 29691 clientId 29692 } = _ref3; 29693 const { 29694 records: pages, 29695 hasResolved: pagesFinished 29696 } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('postType', 'page', { 29697 per_page: MAX_PAGE_COUNT, 29698 _fields: PAGE_FIELDS, 29699 // TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby 29700 // values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent 29701 // sort. 29702 orderby: 'menu_order', 29703 order: 'asc' 29704 }); 29705 const { 29706 replaceBlock 29707 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 29708 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { 29709 closeLabel: (0,external_wp_i18n_namespaceObject.__)('Close'), 29710 onRequestClose: onClose, 29711 title: (0,external_wp_i18n_namespaceObject.__)('Convert to links'), 29712 className: 'wp-block-page-list-modal', 29713 aria: { 29714 describedby: 'wp-block-page-list-modal__description' 29715 } 29716 }, (0,external_wp_element_namespaceObject.createElement)("p", { 29717 id: 'wp-block-page-list-modal__description' 29718 }, (0,external_wp_i18n_namespaceObject.__)('To edit this navigation menu, convert it to single page links. This allows you to add, re-order, remove items, or edit their labels.')), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)("Note: if you add new pages to your site, you'll need to add them to your navigation menu.")), (0,external_wp_element_namespaceObject.createElement)("div", { 29719 className: "wp-block-page-list-modal-buttons" 29720 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 29721 variant: "tertiary", 29722 onClick: onClose 29723 }, (0,external_wp_i18n_namespaceObject.__)('Cancel')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 29724 variant: "primary", 29725 disabled: !pagesFinished, 29726 onClick: convertSelectedBlockToNavigationLinks({ 29727 pages, 29728 replaceBlock, 29729 clientId, 29730 createBlock: external_wp_blocks_namespaceObject.createBlock 29731 }) 29732 }, (0,external_wp_i18n_namespaceObject.__)('Convert')))); 29733 } 29734 29735 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation-link/icons.js 29736 29737 29738 /** 29739 * WordPress dependencies 29740 */ 29741 29742 const icons_ItemSubmenuIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 29743 xmlns: "http://www.w3.org/2000/svg", 29744 width: "12", 29745 height: "12", 29746 viewBox: "0 0 12 12", 29747 fill: "none" 29748 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 29749 d: "M1.50002 4L6.00002 8L10.5 4", 29750 strokeWidth: "1.5" 29751 })); 29752 29753 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/edit.js 29754 29755 29756 /** 29757 * External dependencies 29758 */ 29759 29760 29761 /** 29762 * WordPress dependencies 29763 */ 29764 29765 29766 29767 29768 29769 29770 29771 /** 29772 * Internal dependencies 29773 */ 29774 29775 29776 // We only show the edit option when page count is <= MAX_PAGE_COUNT 29777 // Performance of Navigation Links is not good past this value. 29778 29779 const edit_MAX_PAGE_COUNT = 100; 29780 function PageListEdit(_ref) { 29781 var _context$style; 29782 29783 let { 29784 context, 29785 clientId 29786 } = _ref; 29787 const { 29788 pagesByParentId, 29789 totalPages, 29790 hasResolvedPages 29791 } = usePageData(); 29792 const isNavigationChild = ('showSubmenuIcon' in context); 29793 const allowConvertToLinks = isNavigationChild && totalPages <= edit_MAX_PAGE_COUNT; 29794 const [isOpen, setOpen] = (0,external_wp_element_namespaceObject.useState)(false); 29795 29796 const openModal = () => setOpen(true); 29797 29798 const closeModal = () => setOpen(false); 29799 29800 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 29801 className: classnames_default()('wp-block-page-list', { 29802 'has-text-color': !!context.textColor, 29803 [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', context.textColor)]: !!context.textColor, 29804 'has-background': !!context.backgroundColor, 29805 [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', context.backgroundColor)]: !!context.backgroundColor 29806 }), 29807 style: { ...((_context$style = context.style) === null || _context$style === void 0 ? void 0 : _context$style.color) 29808 } 29809 }); 29810 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, allowConvertToLinks && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 29811 group: "other" 29812 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 29813 title: (0,external_wp_i18n_namespaceObject.__)('Edit'), 29814 onClick: openModal 29815 }, (0,external_wp_i18n_namespaceObject.__)('Edit'))), allowConvertToLinks && isOpen && (0,external_wp_element_namespaceObject.createElement)(ConvertToLinksModal, { 29816 onClose: closeModal, 29817 clientId: clientId 29818 }), !hasResolvedPages && (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)), hasResolvedPages && totalPages === null && (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, { 29819 status: 'warning', 29820 isDismissible: false 29821 }, (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.')))), totalPages === 0 && (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, { 29822 status: 'info', 29823 isDismissible: false 29824 }, (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.'))), totalPages > 0 && (0,external_wp_element_namespaceObject.createElement)("ul", blockProps, (0,external_wp_element_namespaceObject.createElement)(PageItems, { 29825 context: context, 29826 pagesByParentId: pagesByParentId 29827 }))); 29828 } 29829 29830 function useFrontPageId() { 29831 return (0,external_wp_data_namespaceObject.useSelect)(select => { 29832 const site = select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', 'site'); 29833 return (site === null || site === void 0 ? void 0 : site.show_on_front) === 'page' && (site === null || site === void 0 ? void 0 : site.page_on_front); 29834 }, []); 29835 } 29836 29837 function usePageData() { 29838 const { 29839 records: pages, 29840 hasResolved: hasResolvedPages 29841 } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecords)('postType', 'page', { 29842 orderby: 'menu_order', 29843 order: 'asc', 29844 _fields: ['id', 'link', 'parent', 'title', 'menu_order'], 29845 per_page: -1 29846 }); 29847 return (0,external_wp_element_namespaceObject.useMemo)(() => { 29848 var _pages$length; 29849 29850 // TODO: Once the REST API supports passing multiple values to 29851 // 'orderby', this can be removed. 29852 // https://core.trac.wordpress.org/ticket/39037 29853 const sortedPages = (0,external_lodash_namespaceObject.sortBy)(pages, ['menu_order', 'title.rendered']); 29854 const pagesByParentId = sortedPages.reduce((accumulator, page) => { 29855 const { 29856 parent 29857 } = page; 29858 29859 if (accumulator.has(parent)) { 29860 accumulator.get(parent).push(page); 29861 } else { 29862 accumulator.set(parent, [page]); 29863 } 29864 29865 return accumulator; 29866 }, new Map()); 29867 return { 29868 pagesByParentId, 29869 hasResolvedPages, 29870 totalPages: (_pages$length = pages === null || pages === void 0 ? void 0 : pages.length) !== null && _pages$length !== void 0 ? _pages$length : null 29871 }; 29872 }, [pages, hasResolvedPages]); 29873 } 29874 29875 const PageItems = (0,external_wp_element_namespaceObject.memo)(function PageItems(_ref2) { 29876 let { 29877 context, 29878 pagesByParentId, 29879 parentId = 0, 29880 depth = 0 29881 } = _ref2; 29882 const pages = pagesByParentId.get(parentId); 29883 const frontPageId = useFrontPageId(); 29884 29885 if (!(pages !== null && pages !== void 0 && pages.length)) { 29886 return []; 29887 } 29888 29889 return pages.map(page => { 29890 var _page$title, _page$title2; 29891 29892 const hasChildren = pagesByParentId.has(page.id); 29893 const isNavigationChild = ('showSubmenuIcon' in context); 29894 return (0,external_wp_element_namespaceObject.createElement)("li", { 29895 key: page.id, 29896 className: classnames_default()('wp-block-pages-list__item', { 29897 'has-child': hasChildren, 29898 'wp-block-navigation-item': isNavigationChild, 29899 'open-on-click': context.openSubmenusOnClick, 29900 'open-on-hover-click': !context.openSubmenusOnClick && context.showSubmenuIcon, 29901 'menu-item-home': page.id === frontPageId 29902 }) 29903 }, hasChildren && context.openSubmenusOnClick ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("button", { 29904 className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle", 29905 "aria-expanded": "false" 29906 }, (_page$title = page.title) === null || _page$title === void 0 ? void 0 : _page$title.rendered), (0,external_wp_element_namespaceObject.createElement)("span", { 29907 className: "wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon" 29908 }, (0,external_wp_element_namespaceObject.createElement)(icons_ItemSubmenuIcon, null))) : (0,external_wp_element_namespaceObject.createElement)("a", { 29909 className: classnames_default()('wp-block-pages-list__item__link', { 29910 'wp-block-navigation-item__content': isNavigationChild 29911 }), 29912 href: page.link 29913 }, (_page$title2 = page.title) === null || _page$title2 === void 0 ? void 0 : _page$title2.rendered), hasChildren && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !context.openSubmenusOnClick && context.showSubmenuIcon && (0,external_wp_element_namespaceObject.createElement)("button", { 29914 className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon", 29915 "aria-expanded": "false" 29916 }, (0,external_wp_element_namespaceObject.createElement)(icons_ItemSubmenuIcon, null)), (0,external_wp_element_namespaceObject.createElement)("ul", { 29917 className: classnames_default()('submenu-container', { 29918 'wp-block-navigation__submenu-container': isNavigationChild 29919 }) 29920 }, (0,external_wp_element_namespaceObject.createElement)(PageItems, { 29921 context: context, 29922 pagesByParentId: pagesByParentId, 29923 parentId: page.id, 29924 depth: depth + 1 29925 })))); 29926 }); 29927 }); 29928 29929 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/page-list/index.js 29930 /** 29931 * WordPress dependencies 29932 */ 29933 29934 /** 29935 * Internal dependencies 29936 */ 29937 29938 const page_list_metadata = { 29939 $schema: "https://schemas.wp.org/trunk/block.json", 29940 apiVersion: 2, 29941 name: "core/page-list", 29942 title: "Page List", 29943 category: "widgets", 29944 description: "Display a list of all pages.", 29945 keywords: ["menu", "navigation"], 29946 textdomain: "default", 29947 attributes: { 29948 __unstableMaxPages: { 29949 type: "number" 29950 } 29951 }, 29952 usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick"], 29953 supports: { 29954 reusable: false, 29955 html: false 29956 }, 29957 editorStyle: "wp-block-page-list-editor", 29958 style: "wp-block-page-list" 29959 }; 29960 29961 const { 29962 name: page_list_name 29963 } = page_list_metadata; 29964 29965 const page_list_settings = { 29966 icon: library_pages, 29967 example: {}, 29968 edit: PageListEdit 29969 }; 29970 29971 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/paragraph.js 29972 29973 29974 /** 29975 * WordPress dependencies 29976 */ 29977 29978 const paragraph = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 29979 xmlns: "http://www.w3.org/2000/svg", 29980 viewBox: "0 0 24 24" 29981 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 29982 d: "M18.3 4H9.9v-.1l-.9.2c-2.3.4-4 2.4-4 4.8s1.7 4.4 4 4.8l.7.1V20h1.5V5.5h2.9V20h1.5V5.5h2.7V4z" 29983 })); 29984 /* harmony default export */ var library_paragraph = (paragraph); 29985 29986 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/deprecated.js 29987 29988 29989 /** 29990 * External dependencies 29991 */ 29992 29993 29994 /** 29995 * WordPress dependencies 29996 */ 29997 29998 29999 30000 const supports = { 30001 className: false 30002 }; 30003 const paragraph_deprecated_blockAttributes = { 30004 align: { 30005 type: 'string' 30006 }, 30007 content: { 30008 type: 'string', 30009 source: 'html', 30010 selector: 'p', 30011 default: '' 30012 }, 30013 dropCap: { 30014 type: 'boolean', 30015 default: false 30016 }, 30017 placeholder: { 30018 type: 'string' 30019 }, 30020 textColor: { 30021 type: 'string' 30022 }, 30023 backgroundColor: { 30024 type: 'string' 30025 }, 30026 fontSize: { 30027 type: 'string' 30028 }, 30029 direction: { 30030 type: 'string', 30031 enum: ['ltr', 'rtl'] 30032 }, 30033 style: { 30034 type: 'object' 30035 } 30036 }; 30037 30038 const migrateCustomColorsAndFontSizes = attributes => { 30039 if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customFontSize) { 30040 return attributes; 30041 } 30042 30043 const style = {}; 30044 30045 if (attributes.customTextColor || attributes.customBackgroundColor) { 30046 style.color = {}; 30047 } 30048 30049 if (attributes.customTextColor) { 30050 style.color.text = attributes.customTextColor; 30051 } 30052 30053 if (attributes.customBackgroundColor) { 30054 style.color.background = attributes.customBackgroundColor; 30055 } 30056 30057 if (attributes.customFontSize) { 30058 style.typography = { 30059 fontSize: attributes.customFontSize 30060 }; 30061 } 30062 30063 return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['customTextColor', 'customBackgroundColor', 'customFontSize']), 30064 style 30065 }; 30066 }; 30067 30068 const paragraph_deprecated_deprecated = [{ 30069 supports, 30070 attributes: { ...(0,external_lodash_namespaceObject.omit)(paragraph_deprecated_blockAttributes, ['style']), 30071 customTextColor: { 30072 type: 'string' 30073 }, 30074 customBackgroundColor: { 30075 type: 'string' 30076 }, 30077 customFontSize: { 30078 type: 'number' 30079 } 30080 }, 30081 migrate: migrateCustomColorsAndFontSizes, 30082 30083 save(_ref) { 30084 let { 30085 attributes 30086 } = _ref; 30087 const { 30088 align, 30089 content, 30090 dropCap, 30091 backgroundColor, 30092 textColor, 30093 customBackgroundColor, 30094 customTextColor, 30095 fontSize, 30096 customFontSize, 30097 direction 30098 } = attributes; 30099 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 30100 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 30101 const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize); 30102 const className = classnames_default()({ 30103 'has-text-color': textColor || customTextColor, 30104 'has-background': backgroundColor || customBackgroundColor, 30105 'has-drop-cap': dropCap, 30106 [`has-text-align-$align}`]: align, 30107 [fontSizeClass]: fontSizeClass, 30108 [textClass]: textClass, 30109 [backgroundClass]: backgroundClass 30110 }); 30111 const styles = { 30112 backgroundColor: backgroundClass ? undefined : customBackgroundColor, 30113 color: textClass ? undefined : customTextColor, 30114 fontSize: fontSizeClass ? undefined : customFontSize 30115 }; 30116 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 30117 tagName: "p", 30118 style: styles, 30119 className: className ? className : undefined, 30120 value: content, 30121 dir: direction 30122 }); 30123 } 30124 30125 }, { 30126 supports, 30127 attributes: { ...(0,external_lodash_namespaceObject.omit)(paragraph_deprecated_blockAttributes, ['style']), 30128 customTextColor: { 30129 type: 'string' 30130 }, 30131 customBackgroundColor: { 30132 type: 'string' 30133 }, 30134 customFontSize: { 30135 type: 'number' 30136 } 30137 }, 30138 migrate: migrateCustomColorsAndFontSizes, 30139 30140 save(_ref2) { 30141 let { 30142 attributes 30143 } = _ref2; 30144 const { 30145 align, 30146 content, 30147 dropCap, 30148 backgroundColor, 30149 textColor, 30150 customBackgroundColor, 30151 customTextColor, 30152 fontSize, 30153 customFontSize, 30154 direction 30155 } = attributes; 30156 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 30157 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 30158 const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize); 30159 const className = classnames_default()({ 30160 'has-text-color': textColor || customTextColor, 30161 'has-background': backgroundColor || customBackgroundColor, 30162 'has-drop-cap': dropCap, 30163 [fontSizeClass]: fontSizeClass, 30164 [textClass]: textClass, 30165 [backgroundClass]: backgroundClass 30166 }); 30167 const styles = { 30168 backgroundColor: backgroundClass ? undefined : customBackgroundColor, 30169 color: textClass ? undefined : customTextColor, 30170 fontSize: fontSizeClass ? undefined : customFontSize, 30171 textAlign: align 30172 }; 30173 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 30174 tagName: "p", 30175 style: styles, 30176 className: className ? className : undefined, 30177 value: content, 30178 dir: direction 30179 }); 30180 } 30181 30182 }, { 30183 supports, 30184 attributes: { ...(0,external_lodash_namespaceObject.omit)(paragraph_deprecated_blockAttributes, ['style']), 30185 customTextColor: { 30186 type: 'string' 30187 }, 30188 customBackgroundColor: { 30189 type: 'string' 30190 }, 30191 customFontSize: { 30192 type: 'number' 30193 }, 30194 width: { 30195 type: 'string' 30196 } 30197 }, 30198 migrate: migrateCustomColorsAndFontSizes, 30199 30200 save(_ref3) { 30201 let { 30202 attributes 30203 } = _ref3; 30204 const { 30205 width, 30206 align, 30207 content, 30208 dropCap, 30209 backgroundColor, 30210 textColor, 30211 customBackgroundColor, 30212 customTextColor, 30213 fontSize, 30214 customFontSize 30215 } = attributes; 30216 const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 30217 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 30218 const fontSizeClass = fontSize && `is-$fontSize}-text`; 30219 const className = classnames_default()({ 30220 [`align$width}`]: width, 30221 'has-background': backgroundColor || customBackgroundColor, 30222 'has-drop-cap': dropCap, 30223 [fontSizeClass]: fontSizeClass, 30224 [textClass]: textClass, 30225 [backgroundClass]: backgroundClass 30226 }); 30227 const styles = { 30228 backgroundColor: backgroundClass ? undefined : customBackgroundColor, 30229 color: textClass ? undefined : customTextColor, 30230 fontSize: fontSizeClass ? undefined : customFontSize, 30231 textAlign: align 30232 }; 30233 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 30234 tagName: "p", 30235 style: styles, 30236 className: className ? className : undefined, 30237 value: content 30238 }); 30239 } 30240 30241 }, { 30242 supports, 30243 attributes: (0,external_lodash_namespaceObject.omit)({ ...paragraph_deprecated_blockAttributes, 30244 fontSize: { 30245 type: 'number' 30246 } 30247 }, ['style']), 30248 30249 save(_ref4) { 30250 let { 30251 attributes 30252 } = _ref4; 30253 const { 30254 width, 30255 align, 30256 content, 30257 dropCap, 30258 backgroundColor, 30259 textColor, 30260 fontSize 30261 } = attributes; 30262 const className = classnames_default()({ 30263 [`align$width}`]: width, 30264 'has-background': backgroundColor, 30265 'has-drop-cap': dropCap 30266 }); 30267 const styles = { 30268 backgroundColor, 30269 color: textColor, 30270 fontSize, 30271 textAlign: align 30272 }; 30273 return (0,external_wp_element_namespaceObject.createElement)("p", { 30274 style: styles, 30275 className: className ? className : undefined 30276 }, content); 30277 }, 30278 30279 migrate(attributes) { 30280 return migrateCustomColorsAndFontSizes((0,external_lodash_namespaceObject.omit)({ ...attributes, 30281 customFontSize: (0,external_lodash_namespaceObject.isFinite)(attributes.fontSize) ? attributes.fontSize : undefined, 30282 customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined, 30283 customBackgroundColor: attributes.backgroundColor && '#' === attributes.backgroundColor[0] ? attributes.backgroundColor : undefined 30284 }), ['fontSize', 'textColor', 'backgroundColor', 'style']); 30285 } 30286 30287 }, { 30288 supports, 30289 attributes: { ...paragraph_deprecated_blockAttributes, 30290 content: { 30291 type: 'string', 30292 source: 'html', 30293 default: '' 30294 } 30295 }, 30296 30297 save(_ref5) { 30298 let { 30299 attributes 30300 } = _ref5; 30301 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.content); 30302 }, 30303 30304 migrate(attributes) { 30305 return attributes; 30306 } 30307 30308 }]; 30309 /* harmony default export */ var paragraph_deprecated = (paragraph_deprecated_deprecated); 30310 30311 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-ltr.js 30312 30313 30314 /** 30315 * WordPress dependencies 30316 */ 30317 30318 const formatLtr = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 30319 xmlns: "http://www.w3.org/2000/svg", 30320 viewBox: "-2 -2 24 24" 30321 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 30322 d: "M5.52 2h7.43c.55 0 1 .45 1 1s-.45 1-1 1h-1v13c0 .55-.45 1-1 1s-1-.45-1-1V5c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55-.45 1-1 1s-1-.45-1-1v-5.96h-.43C3.02 11.04 1 9.02 1 6.52S3.02 2 5.52 2zM14 14l5-4-5-4v8z" 30323 })); 30324 /* harmony default export */ var format_ltr = (formatLtr); 30325 30326 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/edit.js 30327 30328 30329 30330 /** 30331 * External dependencies 30332 */ 30333 30334 /** 30335 * WordPress dependencies 30336 */ 30337 30338 30339 30340 30341 30342 30343 const paragraph_edit_name = 'core/paragraph'; 30344 30345 function ParagraphRTLControl(_ref) { 30346 let { 30347 direction, 30348 setDirection 30349 } = _ref; 30350 return (0,external_wp_i18n_namespaceObject.isRTL)() && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, { 30351 controls: [{ 30352 icon: format_ltr, 30353 title: (0,external_wp_i18n_namespaceObject._x)('Left to right', 'editor button'), 30354 isActive: direction === 'ltr', 30355 30356 onClick() { 30357 setDirection(direction === 'ltr' ? undefined : 'ltr'); 30358 } 30359 30360 }] 30361 }); 30362 } 30363 30364 function ParagraphBlock(_ref2) { 30365 let { 30366 attributes, 30367 mergeBlocks, 30368 onReplace, 30369 onRemove, 30370 setAttributes, 30371 clientId 30372 } = _ref2; 30373 const { 30374 align, 30375 content, 30376 direction, 30377 dropCap, 30378 placeholder 30379 } = attributes; 30380 const isDropCapFeatureEnabled = (0,external_wp_blockEditor_namespaceObject.useSetting)('typography.dropCap'); 30381 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 30382 className: classnames_default()({ 30383 'has-drop-cap': dropCap, 30384 [`has-text-align-$align}`]: align 30385 }), 30386 style: { 30387 direction 30388 } 30389 }); 30390 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 30391 group: "block" 30392 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 30393 value: align, 30394 onChange: newAlign => setAttributes({ 30395 align: newAlign 30396 }) 30397 }), (0,external_wp_element_namespaceObject.createElement)(ParagraphRTLControl, { 30398 direction: direction, 30399 setDirection: newDirection => setAttributes({ 30400 direction: newDirection 30401 }) 30402 })), isDropCapFeatureEnabled && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, { 30403 __experimentalGroup: "typography" 30404 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { 30405 hasValue: () => !!dropCap, 30406 label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'), 30407 onDeselect: () => setAttributes({ 30408 dropCap: undefined 30409 }), 30410 resetAllFilter: () => ({ 30411 dropCap: undefined 30412 }), 30413 panelId: clientId 30414 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 30415 label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'), 30416 checked: !!dropCap, 30417 onChange: () => setAttributes({ 30418 dropCap: !dropCap 30419 }), 30420 help: dropCap ? (0,external_wp_i18n_namespaceObject.__)('Showing large initial letter.') : (0,external_wp_i18n_namespaceObject.__)('Toggle to show a large initial letter.') 30421 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({ 30422 identifier: "content", 30423 tagName: "p" 30424 }, blockProps, { 30425 value: content, 30426 onChange: newContent => setAttributes({ 30427 content: newContent 30428 }), 30429 onSplit: (value, isOriginal) => { 30430 let newAttributes; 30431 30432 if (isOriginal || value) { 30433 newAttributes = { ...attributes, 30434 content: value 30435 }; 30436 } 30437 30438 const block = (0,external_wp_blocks_namespaceObject.createBlock)(paragraph_edit_name, newAttributes); 30439 30440 if (isOriginal) { 30441 block.clientId = clientId; 30442 } 30443 30444 return block; 30445 }, 30446 onMerge: mergeBlocks, 30447 onReplace: onReplace, 30448 onRemove: onRemove, 30449 "aria-label": content ? (0,external_wp_i18n_namespaceObject.__)('Paragraph block') : (0,external_wp_i18n_namespaceObject.__)('Empty block; start writing or type forward slash to choose a block'), 30450 "data-empty": content ? false : true, 30451 placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Type / to choose a block'), 30452 __unstableEmbedURLOnPaste: true, 30453 __unstableAllowPrefixTransformations: true 30454 }))); 30455 } 30456 30457 /* harmony default export */ var paragraph_edit = (ParagraphBlock); 30458 30459 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/save.js 30460 30461 30462 /** 30463 * External dependencies 30464 */ 30465 30466 /** 30467 * WordPress dependencies 30468 */ 30469 30470 30471 function paragraph_save_save(_ref) { 30472 let { 30473 attributes 30474 } = _ref; 30475 const { 30476 align, 30477 content, 30478 dropCap, 30479 direction 30480 } = attributes; 30481 const className = classnames_default()({ 30482 'has-drop-cap': dropCap, 30483 [`has-text-align-$align}`]: align 30484 }); 30485 return (0,external_wp_element_namespaceObject.createElement)("p", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 30486 className, 30487 dir: direction 30488 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 30489 value: content 30490 })); 30491 } 30492 30493 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/transforms.js 30494 /** 30495 * WordPress dependencies 30496 */ 30497 30498 /** 30499 * Internal dependencies 30500 */ 30501 30502 const { 30503 name: paragraph_transforms_name 30504 } = { 30505 $schema: "https://schemas.wp.org/trunk/block.json", 30506 apiVersion: 2, 30507 name: "core/paragraph", 30508 title: "Paragraph", 30509 category: "text", 30510 description: "Start with the basic building block of all narrative.", 30511 keywords: ["text"], 30512 textdomain: "default", 30513 attributes: { 30514 align: { 30515 type: "string" 30516 }, 30517 content: { 30518 type: "string", 30519 source: "html", 30520 selector: "p", 30521 "default": "", 30522 __experimentalRole: "content" 30523 }, 30524 dropCap: { 30525 type: "boolean", 30526 "default": false 30527 }, 30528 placeholder: { 30529 type: "string" 30530 }, 30531 direction: { 30532 type: "string", 30533 "enum": ["ltr", "rtl"] 30534 } 30535 }, 30536 supports: { 30537 anchor: true, 30538 className: false, 30539 color: { 30540 link: true, 30541 __experimentalDefaultControls: { 30542 background: true, 30543 text: true 30544 } 30545 }, 30546 typography: { 30547 fontSize: true, 30548 lineHeight: true, 30549 __experimentalFontStyle: true, 30550 __experimentalFontWeight: true, 30551 __experimentalLetterSpacing: true, 30552 __experimentalTextTransform: true, 30553 __experimentalDefaultControls: { 30554 fontSize: true 30555 } 30556 }, 30557 __experimentalSelector: "p", 30558 __unstablePasteTextInline: true 30559 }, 30560 editorStyle: "wp-block-paragraph-editor", 30561 style: "wp-block-paragraph" 30562 }; 30563 const paragraph_transforms_transforms = { 30564 from: [{ 30565 type: 'raw', 30566 // Paragraph is a fallback and should be matched last. 30567 priority: 20, 30568 selector: 'p', 30569 schema: _ref => { 30570 let { 30571 phrasingContentSchema, 30572 isPaste 30573 } = _ref; 30574 return { 30575 p: { 30576 children: phrasingContentSchema, 30577 attributes: isPaste ? [] : ['style', 'id'] 30578 } 30579 }; 30580 }, 30581 30582 transform(node) { 30583 const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)(paragraph_transforms_name, node.outerHTML); 30584 const { 30585 textAlign 30586 } = node.style || {}; 30587 30588 if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') { 30589 attributes.align = textAlign; 30590 } 30591 30592 return (0,external_wp_blocks_namespaceObject.createBlock)(paragraph_transforms_name, attributes); 30593 } 30594 30595 }] 30596 }; 30597 /* harmony default export */ var paragraph_transforms = (paragraph_transforms_transforms); 30598 30599 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/index.js 30600 /** 30601 * External dependencies 30602 */ 30603 30604 /** 30605 * WordPress dependencies 30606 */ 30607 30608 30609 30610 /** 30611 * Internal dependencies 30612 */ 30613 30614 30615 30616 const paragraph_metadata = { 30617 $schema: "https://schemas.wp.org/trunk/block.json", 30618 apiVersion: 2, 30619 name: "core/paragraph", 30620 title: "Paragraph", 30621 category: "text", 30622 description: "Start with the basic building block of all narrative.", 30623 keywords: ["text"], 30624 textdomain: "default", 30625 attributes: { 30626 align: { 30627 type: "string" 30628 }, 30629 content: { 30630 type: "string", 30631 source: "html", 30632 selector: "p", 30633 "default": "", 30634 __experimentalRole: "content" 30635 }, 30636 dropCap: { 30637 type: "boolean", 30638 "default": false 30639 }, 30640 placeholder: { 30641 type: "string" 30642 }, 30643 direction: { 30644 type: "string", 30645 "enum": ["ltr", "rtl"] 30646 } 30647 }, 30648 supports: { 30649 anchor: true, 30650 className: false, 30651 color: { 30652 link: true, 30653 __experimentalDefaultControls: { 30654 background: true, 30655 text: true 30656 } 30657 }, 30658 typography: { 30659 fontSize: true, 30660 lineHeight: true, 30661 __experimentalFontStyle: true, 30662 __experimentalFontWeight: true, 30663 __experimentalLetterSpacing: true, 30664 __experimentalTextTransform: true, 30665 __experimentalDefaultControls: { 30666 fontSize: true 30667 } 30668 }, 30669 __experimentalSelector: "p", 30670 __unstablePasteTextInline: true 30671 }, 30672 editorStyle: "wp-block-paragraph-editor", 30673 style: "wp-block-paragraph" 30674 }; 30675 30676 30677 const { 30678 name: paragraph_name 30679 } = paragraph_metadata; 30680 30681 const paragraph_settings = { 30682 icon: library_paragraph, 30683 example: { 30684 attributes: { 30685 content: (0,external_wp_i18n_namespaceObject.__)('In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.'), 30686 style: { 30687 typography: { 30688 fontSize: 28 30689 } 30690 }, 30691 dropCap: true 30692 } 30693 }, 30694 30695 __experimentalLabel(attributes, _ref) { 30696 let { 30697 context 30698 } = _ref; 30699 30700 if (context === 'accessibility') { 30701 const { 30702 content 30703 } = attributes; 30704 return (0,external_lodash_namespaceObject.isEmpty)(content) ? (0,external_wp_i18n_namespaceObject.__)('Empty') : content; 30705 } 30706 }, 30707 30708 transforms: paragraph_transforms, 30709 deprecated: paragraph_deprecated, 30710 30711 merge(attributes, attributesToMerge) { 30712 return { 30713 content: (attributes.content || '') + (attributesToMerge.content || '') 30714 }; 30715 }, 30716 30717 edit: paragraph_edit, 30718 save: paragraph_save_save 30719 }; 30720 30721 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author/edit.js 30722 30723 30724 /** 30725 * External dependencies 30726 */ 30727 30728 30729 /** 30730 * WordPress dependencies 30731 */ 30732 30733 30734 30735 30736 30737 30738 30739 function PostAuthorEdit(_ref) { 30740 let { 30741 isSelected, 30742 context: { 30743 postType, 30744 postId, 30745 queryId 30746 }, 30747 attributes, 30748 setAttributes 30749 } = _ref; 30750 const isDescendentOfQueryLoop = Number.isFinite(queryId); 30751 const { 30752 authorId, 30753 authorDetails, 30754 authors 30755 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 30756 var _getEditedEntityRecor; 30757 30758 const { 30759 getEditedEntityRecord, 30760 getUser, 30761 getUsers 30762 } = select(external_wp_coreData_namespaceObject.store); 30763 30764 const _authorId = (_getEditedEntityRecor = getEditedEntityRecord('postType', postType, postId)) === null || _getEditedEntityRecor === void 0 ? void 0 : _getEditedEntityRecor.author; 30765 30766 return { 30767 authorId: _authorId, 30768 authorDetails: _authorId ? getUser(_authorId) : null, 30769 authors: getUsers({ 30770 who: 'authors' 30771 }) 30772 }; 30773 }, [postType, postId]); 30774 const { 30775 editEntityRecord 30776 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store); 30777 const { 30778 textAlign, 30779 showAvatar, 30780 showBio, 30781 byline 30782 } = attributes; 30783 const avatarSizes = []; 30784 30785 if (authorDetails) { 30786 (0,external_lodash_namespaceObject.forEach)(authorDetails.avatar_urls, (url, size) => { 30787 avatarSizes.push({ 30788 value: size, 30789 label: `$size} x $size}` 30790 }); 30791 }); 30792 } 30793 30794 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 30795 className: classnames_default()({ 30796 [`has-text-align-$textAlign}`]: textAlign 30797 }) 30798 }); 30799 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 30800 title: (0,external_wp_i18n_namespaceObject.__)('Author Settings') 30801 }, !isDescendentOfQueryLoop && !!(authors !== null && authors !== void 0 && authors.length) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 30802 label: (0,external_wp_i18n_namespaceObject.__)('Author'), 30803 value: authorId, 30804 options: authors.map(_ref2 => { 30805 let { 30806 id, 30807 name 30808 } = _ref2; 30809 return { 30810 value: id, 30811 label: name 30812 }; 30813 }), 30814 onChange: nextAuthorId => { 30815 editEntityRecord('postType', postType, postId, { 30816 author: nextAuthorId 30817 }); 30818 } 30819 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 30820 label: (0,external_wp_i18n_namespaceObject.__)('Show avatar'), 30821 checked: showAvatar, 30822 onChange: () => setAttributes({ 30823 showAvatar: !showAvatar 30824 }) 30825 }), showAvatar && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 30826 label: (0,external_wp_i18n_namespaceObject.__)('Avatar size'), 30827 value: attributes.avatarSize, 30828 options: avatarSizes, 30829 onChange: size => { 30830 setAttributes({ 30831 avatarSize: Number(size) 30832 }); 30833 } 30834 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 30835 label: (0,external_wp_i18n_namespaceObject.__)('Show bio'), 30836 checked: showBio, 30837 onChange: () => setAttributes({ 30838 showBio: !showBio 30839 }) 30840 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 30841 group: "block" 30842 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 30843 value: textAlign, 30844 onChange: nextAlign => { 30845 setAttributes({ 30846 textAlign: nextAlign 30847 }); 30848 } 30849 })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, showAvatar && authorDetails && (0,external_wp_element_namespaceObject.createElement)("div", { 30850 className: "wp-block-post-author__avatar" 30851 }, (0,external_wp_element_namespaceObject.createElement)("img", { 30852 width: attributes.avatarSize, 30853 src: authorDetails.avatar_urls[attributes.avatarSize], 30854 alt: authorDetails.name 30855 })), (0,external_wp_element_namespaceObject.createElement)("div", { 30856 className: "wp-block-post-author__content" 30857 }, (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(byline) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 30858 className: "wp-block-post-author__byline", 30859 multiline: false, 30860 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Post author byline text'), 30861 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write byline…'), 30862 value: byline, 30863 onChange: value => setAttributes({ 30864 byline: value 30865 }) 30866 }), (0,external_wp_element_namespaceObject.createElement)("p", { 30867 className: "wp-block-post-author__name" 30868 }, (authorDetails === null || authorDetails === void 0 ? void 0 : authorDetails.name) || (0,external_wp_i18n_namespaceObject.__)('Post Author')), showBio && (0,external_wp_element_namespaceObject.createElement)("p", { 30869 className: "wp-block-post-author__bio" 30870 }, authorDetails === null || authorDetails === void 0 ? void 0 : authorDetails.description)))); 30871 } 30872 30873 /* harmony default export */ var post_author_edit = (PostAuthorEdit); 30874 30875 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-author.js 30876 30877 30878 /** 30879 * WordPress dependencies 30880 */ 30881 30882 const postAuthor = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 30883 viewBox: "0 0 24 24", 30884 xmlns: "http://www.w3.org/2000/svg" 30885 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 30886 d: "M10 4.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm2.25 7.5v-1A2.75 2.75 0 0011 8.25H7A2.75 2.75 0 004.25 11v1h1.5v-1c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v1h1.5zM4 20h9v-1.5H4V20zm16-4H4v-1.5h16V16z", 30887 fillRule: "evenodd", 30888 clipRule: "evenodd" 30889 })); 30890 /* harmony default export */ var post_author = (postAuthor); 30891 30892 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author/index.js 30893 /** 30894 * Internal dependencies 30895 */ 30896 const post_author_metadata = { 30897 $schema: "https://schemas.wp.org/trunk/block.json", 30898 apiVersion: 2, 30899 name: "core/post-author", 30900 title: "Post Author", 30901 category: "theme", 30902 description: "Display post author details such as name, avatar, and bio.", 30903 textdomain: "default", 30904 attributes: { 30905 textAlign: { 30906 type: "string" 30907 }, 30908 avatarSize: { 30909 type: "number", 30910 "default": 48 30911 }, 30912 showAvatar: { 30913 type: "boolean", 30914 "default": true 30915 }, 30916 showBio: { 30917 type: "boolean" 30918 }, 30919 byline: { 30920 type: "string" 30921 } 30922 }, 30923 usesContext: ["postType", "postId", "queryId"], 30924 supports: { 30925 html: false, 30926 spacing: { 30927 margin: true, 30928 padding: true 30929 }, 30930 typography: { 30931 fontSize: true, 30932 lineHeight: true, 30933 __experimentalFontStyle: true, 30934 __experimentalFontWeight: true, 30935 __experimentalLetterSpacing: true, 30936 __experimentalTextTransform: true, 30937 __experimentalDefaultControls: { 30938 fontSize: true 30939 } 30940 }, 30941 color: { 30942 gradients: true, 30943 link: true, 30944 __experimentalDuotone: ".wp-block-post-author__avatar img", 30945 __experimentalDefaultControls: { 30946 background: true, 30947 text: true 30948 } 30949 } 30950 }, 30951 editorStyle: "wp-block-post-author-editor", 30952 style: "wp-block-post-author" 30953 }; 30954 30955 /** 30956 * WordPress dependencies 30957 */ 30958 30959 30960 const { 30961 name: post_author_name 30962 } = post_author_metadata; 30963 30964 const post_author_settings = { 30965 icon: post_author, 30966 edit: post_author_edit 30967 }; 30968 30969 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author-biography/edit.js 30970 30971 30972 /** 30973 * External dependencies 30974 */ 30975 30976 /** 30977 * WordPress dependencies 30978 */ 30979 30980 30981 30982 30983 30984 30985 function PostAuthorBiographyEdit(_ref) { 30986 let { 30987 context: { 30988 postType, 30989 postId 30990 }, 30991 attributes: { 30992 textAlign 30993 }, 30994 setAttributes 30995 } = _ref; 30996 const { 30997 authorDetails 30998 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 30999 var _getEditedEntityRecor; 31000 31001 const { 31002 getEditedEntityRecord, 31003 getUser 31004 } = select(external_wp_coreData_namespaceObject.store); 31005 31006 const _authorId = (_getEditedEntityRecor = getEditedEntityRecord('postType', postType, postId)) === null || _getEditedEntityRecor === void 0 ? void 0 : _getEditedEntityRecor.author; 31007 31008 return { 31009 authorDetails: _authorId ? getUser(_authorId) : null 31010 }; 31011 }, [postType, postId]); 31012 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 31013 className: classnames_default()({ 31014 [`has-text-align-$textAlign}`]: textAlign 31015 }) 31016 }); 31017 31018 const displayAuthorBiography = (authorDetails === null || authorDetails === void 0 ? void 0 : authorDetails.description) || (0,external_wp_i18n_namespaceObject.__)('Author Biography'); 31019 31020 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 31021 group: "block" 31022 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 31023 value: textAlign, 31024 onChange: nextAlign => { 31025 setAttributes({ 31026 textAlign: nextAlign 31027 }); 31028 } 31029 })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, " ", displayAuthorBiography, " ")); 31030 } 31031 31032 /* harmony default export */ var post_author_biography_edit = (PostAuthorBiographyEdit); 31033 31034 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-author-biography/index.js 31035 /** 31036 * Internal dependencies 31037 */ 31038 const post_author_biography_metadata = { 31039 $schema: "https://schemas.wp.org/trunk/block.json", 31040 apiVersion: 2, 31041 name: "core/post-author-biography", 31042 title: "Post Author Biography", 31043 category: "theme", 31044 description: "The author biography.", 31045 textdomain: "default", 31046 attributes: { 31047 textAlign: { 31048 type: "string" 31049 } 31050 }, 31051 usesContext: ["postType", "postId"], 31052 supports: { 31053 spacing: { 31054 margin: true, 31055 padding: true 31056 }, 31057 color: { 31058 gradients: true, 31059 link: true, 31060 __experimentalDefaultControls: { 31061 background: true, 31062 text: true 31063 } 31064 }, 31065 typography: { 31066 fontSize: true, 31067 lineHeight: true, 31068 __experimentalFontFamily: true, 31069 __experimentalFontWeight: true, 31070 __experimentalFontStyle: true, 31071 __experimentalTextTransform: true, 31072 __experimentalLetterSpacing: true, 31073 __experimentalDefaultControls: { 31074 fontSize: true 31075 } 31076 } 31077 } 31078 }; 31079 31080 /** 31081 * WordPress dependencies 31082 */ 31083 31084 31085 const { 31086 name: post_author_biography_name 31087 } = post_author_biography_metadata; 31088 31089 const post_author_biography_settings = { 31090 icon: post_author, 31091 edit: post_author_biography_edit 31092 }; 31093 31094 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments/edit.js 31095 31096 31097 /** 31098 * External dependencies 31099 */ 31100 31101 /** 31102 * WordPress dependencies 31103 */ 31104 31105 31106 31107 31108 31109 31110 function PostCommentsEdit(_ref) { 31111 let { 31112 attributes: { 31113 textAlign 31114 }, 31115 setAttributes, 31116 context: { 31117 postType, 31118 postId 31119 } 31120 } = _ref; 31121 let [postTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId); 31122 postTitle = postTitle || (0,external_wp_i18n_namespaceObject.__)('Post Title'); 31123 const [commentStatus] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'comment_status', postId); 31124 const { 31125 avatarURL, 31126 defaultCommentStatus 31127 } = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().__experimentalDiscussionSettings); 31128 const isSiteEditor = postType === undefined || postId === undefined; 31129 const postTypeSupportsComments = (0,external_wp_data_namespaceObject.useSelect)(select => { 31130 var _select$getPostType; 31131 31132 return postType ? !!((_select$getPostType = select(external_wp_coreData_namespaceObject.store).getPostType(postType)) !== null && _select$getPostType !== void 0 && _select$getPostType.supports.comments) : false; 31133 }); 31134 31135 let warning = (0,external_wp_i18n_namespaceObject.__)('Post Comments block: This is just a placeholder, not a real comment. The final styling may differ because it also depends on the current theme. For better compatibility with the Block Editor, please consider replacing this block with the "Comments Query Loop" block.'); 31136 31137 let showPlacholder = true; 31138 31139 if (!isSiteEditor && 'open' !== commentStatus) { 31140 if ('closed' === commentStatus) { 31141 warning = (0,external_wp_i18n_namespaceObject.sprintf)( 31142 /* translators: 1: Post type (i.e. "post", "page") */ 31143 (0,external_wp_i18n_namespaceObject.__)('Post Comments block: Comments to this %s are not allowed.'), postType); 31144 showPlacholder = false; 31145 } else if (!postTypeSupportsComments) { 31146 warning = (0,external_wp_i18n_namespaceObject.sprintf)( 31147 /* translators: 1: Post type (i.e. "post", "page") */ 31148 (0,external_wp_i18n_namespaceObject.__)('Post Comments block: Comments for this post type (%s) are not enabled.'), postType); 31149 showPlacholder = false; 31150 } else if ('open' !== defaultCommentStatus) { 31151 warning = (0,external_wp_i18n_namespaceObject.__)('Post Comments block: Comments are not enabled.'); 31152 showPlacholder = false; 31153 } 31154 } 31155 31156 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 31157 className: classnames_default()({ 31158 [`has-text-align-$textAlign}`]: textAlign 31159 }) 31160 }); 31161 const disabledRef = (0,external_wp_compose_namespaceObject.__experimentalUseDisabled)(); 31162 const textareaId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostCommentsEdit); 31163 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 31164 group: "block" 31165 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 31166 value: textAlign, 31167 onChange: nextAlign => { 31168 setAttributes({ 31169 textAlign: nextAlign 31170 }); 31171 } 31172 })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, warning), showPlacholder && (0,external_wp_element_namespaceObject.createElement)("div", { 31173 className: "wp-block-post-comments__placeholder", 31174 ref: disabledRef 31175 }, (0,external_wp_element_namespaceObject.createElement)("h3", null, (0,external_wp_i18n_namespaceObject.__)('One response to'), " \u201C", postTitle, "\u201D"), (0,external_wp_element_namespaceObject.createElement)("div", { 31176 className: "navigation" 31177 }, (0,external_wp_element_namespaceObject.createElement)("div", { 31178 className: "alignleft" 31179 }, (0,external_wp_element_namespaceObject.createElement)("a", { 31180 href: "#top" 31181 }, "\xAB ", (0,external_wp_i18n_namespaceObject.__)('Older Comments'))), (0,external_wp_element_namespaceObject.createElement)("div", { 31182 className: "alignright" 31183 }, (0,external_wp_element_namespaceObject.createElement)("a", { 31184 href: "#top" 31185 }, (0,external_wp_i18n_namespaceObject.__)('Newer Comments'), " \xBB"))), (0,external_wp_element_namespaceObject.createElement)("ol", { 31186 className: "commentlist" 31187 }, (0,external_wp_element_namespaceObject.createElement)("li", { 31188 className: "comment even thread-even depth-1" 31189 }, (0,external_wp_element_namespaceObject.createElement)("article", { 31190 className: "comment-body" 31191 }, (0,external_wp_element_namespaceObject.createElement)("footer", { 31192 className: "comment-meta" 31193 }, (0,external_wp_element_namespaceObject.createElement)("div", { 31194 className: "comment-author vcard" 31195 }, (0,external_wp_element_namespaceObject.createElement)("img", { 31196 alt: "Commenter Avatar", 31197 src: avatarURL, 31198 className: "avatar avatar-32 photo", 31199 height: "32", 31200 width: "32", 31201 loading: "lazy" 31202 }), (0,external_wp_element_namespaceObject.createElement)("b", { 31203 className: "fn" 31204 }, (0,external_wp_element_namespaceObject.createElement)("a", { 31205 href: "#top", 31206 className: "url" 31207 }, (0,external_wp_i18n_namespaceObject.__)('A WordPress Commenter'))), ' ', (0,external_wp_element_namespaceObject.createElement)("span", { 31208 className: "says" 31209 }, (0,external_wp_i18n_namespaceObject.__)('says'), ":")), (0,external_wp_element_namespaceObject.createElement)("div", { 31210 className: "comment-metadata" 31211 }, (0,external_wp_element_namespaceObject.createElement)("a", { 31212 href: "#top" 31213 }, (0,external_wp_element_namespaceObject.createElement)("time", { 31214 dateTime: "2000-01-01T00:00:00+00:00" 31215 }, (0,external_wp_i18n_namespaceObject.__)('January 1, 2000 at 00:00 am'))), ' ', (0,external_wp_element_namespaceObject.createElement)("span", { 31216 className: "edit-link" 31217 }, (0,external_wp_element_namespaceObject.createElement)("a", { 31218 className: "comment-edit-link", 31219 href: "#top" 31220 }, (0,external_wp_i18n_namespaceObject.__)('Edit'))))), (0,external_wp_element_namespaceObject.createElement)("div", { 31221 className: "comment-content" 31222 }, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Hi, this is a comment.'), (0,external_wp_element_namespaceObject.createElement)("br", null), (0,external_wp_i18n_namespaceObject.__)('To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.'), (0,external_wp_element_namespaceObject.createElement)("br", null), (0,external_wp_i18n_namespaceObject.__)('Commenter avatars come from'), ' ', (0,external_wp_element_namespaceObject.createElement)("a", { 31223 href: "https://gravatar.com/" 31224 }, "Gravatar"), ".")), (0,external_wp_element_namespaceObject.createElement)("div", { 31225 className: "reply" 31226 }, (0,external_wp_element_namespaceObject.createElement)("a", { 31227 className: "comment-reply-link", 31228 href: "#top", 31229 "aria-label": "Reply to A WordPress Commenter" 31230 }, (0,external_wp_i18n_namespaceObject.__)('Reply')))))), (0,external_wp_element_namespaceObject.createElement)("div", { 31231 className: "navigation" 31232 }, (0,external_wp_element_namespaceObject.createElement)("div", { 31233 className: "alignleft" 31234 }, (0,external_wp_element_namespaceObject.createElement)("a", { 31235 href: "#top" 31236 }, "\xAB ", (0,external_wp_i18n_namespaceObject.__)('Older Comments'))), (0,external_wp_element_namespaceObject.createElement)("div", { 31237 className: "alignright" 31238 }, (0,external_wp_element_namespaceObject.createElement)("a", { 31239 href: "#top" 31240 }, (0,external_wp_i18n_namespaceObject.__)('Newer Comments'), " \xBB"))), (0,external_wp_element_namespaceObject.createElement)("div", { 31241 className: "comment-respond" 31242 }, (0,external_wp_element_namespaceObject.createElement)("h3", { 31243 className: "comment-reply-title" 31244 }, (0,external_wp_i18n_namespaceObject.__)('Leave a Reply')), (0,external_wp_element_namespaceObject.createElement)("form", { 31245 className: "comment-form", 31246 noValidate: true 31247 }, (0,external_wp_element_namespaceObject.createElement)("p", { 31248 className: "comment-form-comment" 31249 }, (0,external_wp_element_namespaceObject.createElement)("label", { 31250 htmlFor: `comment-$textareaId}` 31251 }, (0,external_wp_i18n_namespaceObject.__)('Comment'), ' ', (0,external_wp_element_namespaceObject.createElement)("span", { 31252 className: "required" 31253 }, "*")), (0,external_wp_element_namespaceObject.createElement)("textarea", { 31254 id: `comment-$textareaId}`, 31255 name: "comment", 31256 cols: "45", 31257 rows: "8", 31258 required: true 31259 })), (0,external_wp_element_namespaceObject.createElement)("p", { 31260 className: "form-submit wp-block-button" 31261 }, (0,external_wp_element_namespaceObject.createElement)("input", { 31262 name: "submit", 31263 type: "submit", 31264 className: "submit wp-block-button__link", 31265 value: (0,external_wp_i18n_namespaceObject.__)('Post Comment') 31266 }))))))); 31267 } 31268 31269 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments/index.js 31270 /** 31271 * WordPress dependencies 31272 */ 31273 31274 /** 31275 * Internal dependencies 31276 */ 31277 31278 const post_comments_metadata = { 31279 $schema: "https://schemas.wp.org/trunk/block.json", 31280 apiVersion: 2, 31281 name: "core/post-comments", 31282 title: "Post Comments (deprecated)", 31283 category: "theme", 31284 description: "This block is deprecated. Please use the Comments Query Loop block instead.", 31285 textdomain: "default", 31286 attributes: { 31287 textAlign: { 31288 type: "string" 31289 } 31290 }, 31291 usesContext: ["postId", "postType"], 31292 supports: { 31293 html: false, 31294 align: ["wide", "full"], 31295 typography: { 31296 fontSize: true, 31297 lineHeight: true, 31298 __experimentalFontStyle: true, 31299 __experimentalFontWeight: true, 31300 __experimentalLetterSpacing: true, 31301 __experimentalTextTransform: true, 31302 __experimentalDefaultControls: { 31303 fontSize: true 31304 } 31305 }, 31306 color: { 31307 gradients: true, 31308 link: true, 31309 __experimentalDefaultControls: { 31310 background: true, 31311 text: true 31312 } 31313 }, 31314 inserter: false 31315 }, 31316 style: ["wp-block-post-comments", "wp-block-buttons", "wp-block-button"], 31317 editorStyle: "wp-block-post-comments-editor" 31318 }; 31319 31320 const { 31321 name: post_comments_name 31322 } = post_comments_metadata; 31323 31324 const post_comments_settings = { 31325 icon: post_comments, 31326 edit: PostCommentsEdit 31327 }; 31328 31329 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-comments-form.js 31330 31331 31332 /** 31333 * WordPress dependencies 31334 */ 31335 31336 const postCommentsForm = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 31337 xmlns: "http://www.w3.org/2000/svg", 31338 viewBox: "0 0 24 24" 31339 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 31340 d: "M13 8H4v1.5h9V8zM4 4v1.5h16V4H4zm9 8H5c-.6 0-1 .4-1 1v8.3c0 .3.2.7.6.8.1.1.2.1.3.1.2 0 .5-.1.6-.3l1.8-1.8H13c.6 0 1-.4 1-1V13c0-.6-.4-1-1-1zm-.5 6.6H6.7l-1.2 1.2v-6.3h7v5.1z" 31341 })); 31342 /* harmony default export */ var post_comments_form = (postCommentsForm); 31343 31344 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-form/edit.js 31345 31346 31347 /** 31348 * External dependencies 31349 */ 31350 31351 /** 31352 * WordPress dependencies 31353 */ 31354 31355 31356 31357 31358 31359 function PostCommentsFormEdit(_ref) { 31360 let { 31361 attributes, 31362 context, 31363 setAttributes 31364 } = _ref; 31365 const { 31366 textAlign 31367 } = attributes; 31368 const { 31369 postId, 31370 postType 31371 } = context; 31372 const [commentStatus] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'comment_status', postId); 31373 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 31374 className: classnames_default()({ 31375 [`has-text-align-$textAlign}`]: textAlign 31376 }) 31377 }); 31378 const isInSiteEditor = postType === undefined || postId === undefined; 31379 const disabledFormRef = (0,external_wp_compose_namespaceObject.__experimentalUseDisabled)(); 31380 const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostCommentsFormEdit); 31381 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 31382 group: "block" 31383 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 31384 value: textAlign, 31385 onChange: nextAlign => { 31386 setAttributes({ 31387 textAlign: nextAlign 31388 }); 31389 } 31390 })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, !commentStatus && !isInSiteEditor && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Post Comments Form block: comments are not enabled for this post type.')), 'open' !== commentStatus && !isInSiteEditor && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.sprintf)( 31391 /* translators: 1: Post type (i.e. "post", "page") */ 31392 (0,external_wp_i18n_namespaceObject.__)('Post Comments Form block: comments to this %s are not allowed.'), postType)), ('open' === commentStatus || isInSiteEditor) && (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)("h3", null, (0,external_wp_i18n_namespaceObject.__)('Leave a Reply')), (0,external_wp_element_namespaceObject.createElement)("form", { 31393 noValidate: true, 31394 className: "comment-form", 31395 ref: disabledFormRef 31396 }, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_element_namespaceObject.createElement)("label", { 31397 htmlFor: `comment-$instanceId}` 31398 }, (0,external_wp_i18n_namespaceObject.__)('Comment')), (0,external_wp_element_namespaceObject.createElement)("textarea", { 31399 id: `comment-$instanceId}`, 31400 name: "comment", 31401 cols: "45", 31402 rows: "8" 31403 })), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_element_namespaceObject.createElement)("input", { 31404 name: "submit", 31405 className: "submit wp-block-button__link", 31406 label: (0,external_wp_i18n_namespaceObject.__)('Post Comment'), 31407 value: (0,external_wp_i18n_namespaceObject.__)('Post Comment'), 31408 readOnly: true 31409 })))))); 31410 } 31411 31412 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-comments-form/index.js 31413 /** 31414 * WordPress dependencies 31415 */ 31416 31417 /** 31418 * Internal dependencies 31419 */ 31420 31421 const post_comments_form_metadata = { 31422 $schema: "https://schemas.wp.org/trunk/block.json", 31423 apiVersion: 2, 31424 name: "core/post-comments-form", 31425 title: "Post Comments Form", 31426 category: "theme", 31427 description: "Display a post's comments form.", 31428 textdomain: "default", 31429 attributes: { 31430 textAlign: { 31431 type: "string" 31432 } 31433 }, 31434 usesContext: ["postId", "postType"], 31435 supports: { 31436 html: false, 31437 color: { 31438 gradients: true, 31439 link: true, 31440 __experimentalDefaultControls: { 31441 background: true, 31442 text: true 31443 } 31444 }, 31445 typography: { 31446 fontSize: true, 31447 lineHeight: true, 31448 __experimentalFontStyle: true, 31449 __experimentalFontWeight: true, 31450 __experimentalLetterSpacing: true, 31451 __experimentalTextTransform: true, 31452 __experimentalDefaultControls: { 31453 fontSize: true 31454 } 31455 } 31456 }, 31457 editorStyle: "wp-block-post-comments-form-editor", 31458 style: ["wp-block-post-comments-form", "wp-block-buttons", "wp-block-button"] 31459 }; 31460 31461 const { 31462 name: post_comments_form_name 31463 } = post_comments_form_metadata; 31464 31465 const post_comments_form_settings = { 31466 icon: post_comments_form, 31467 edit: PostCommentsFormEdit 31468 }; 31469 31470 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-content.js 31471 31472 31473 /** 31474 * WordPress dependencies 31475 */ 31476 31477 const postContent = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 31478 xmlns: "https://www.w3.org/2000/svg", 31479 viewBox: "0 0 24 24" 31480 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 31481 d: "M4 20h16v-1.5H4V20zm0-4.8h16v-1.5H4v1.5zm0-6.4v1.5h16V8.8H4zM16 4H4v1.5h12V4z" 31482 })); 31483 /* harmony default export */ var post_content = (postContent); 31484 31485 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/utils/hooks.js 31486 /** 31487 * WordPress dependencies 31488 */ 31489 31490 31491 /** 31492 * Returns whether the current user can edit the given entity. 31493 * 31494 * @param {string} kind Entity kind. 31495 * @param {string} name Entity name. 31496 * @param {string} recordId Record's id. 31497 */ 31498 31499 function useCanEditEntity(kind, name, recordId) { 31500 return (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).canUserEditEntityRecord(kind, name, recordId), [kind, name, recordId]); 31501 } 31502 /* harmony default export */ var hooks = ({ 31503 useCanEditEntity 31504 }); 31505 31506 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-content/edit.js 31507 31508 31509 31510 /** 31511 * WordPress dependencies 31512 */ 31513 31514 31515 31516 31517 /** 31518 * Internal dependencies 31519 */ 31520 31521 31522 31523 function ReadOnlyContent(_ref) { 31524 let { 31525 userCanEdit, 31526 postType, 31527 postId 31528 } = _ref; 31529 const [,, content] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'content', postId); 31530 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 31531 return content !== null && content !== void 0 && content.protected && !userCanEdit ? (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('This content is password protected.'))) : (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, blockProps, { 31532 dangerouslySetInnerHTML: { 31533 __html: content === null || content === void 0 ? void 0 : content.rendered 31534 } 31535 })); 31536 } 31537 31538 function EditableContent(_ref2) { 31539 let { 31540 layout, 31541 context = {} 31542 } = _ref2; 31543 const { 31544 postType, 31545 postId 31546 } = context; 31547 const themeSupportsLayout = (0,external_wp_data_namespaceObject.useSelect)(select => { 31548 var _getSettings; 31549 31550 const { 31551 getSettings 31552 } = select(external_wp_blockEditor_namespaceObject.store); 31553 return (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout; 31554 }, []); 31555 const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {}; 31556 const usedLayout = !!layout && layout.inherit ? defaultLayout : layout; 31557 const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', postType, { 31558 id: postId 31559 }); 31560 const props = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)((0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 31561 className: 'entry-content' 31562 }), { 31563 value: blocks, 31564 onInput, 31565 onChange, 31566 __experimentalLayout: themeSupportsLayout ? usedLayout : undefined 31567 }); 31568 return (0,external_wp_element_namespaceObject.createElement)("div", props); 31569 } 31570 31571 function Content(props) { 31572 const { 31573 context: { 31574 queryId, 31575 postType, 31576 postId 31577 } = {} 31578 } = props; 31579 const isDescendentOfQueryLoop = Number.isFinite(queryId); 31580 const userCanEdit = useCanEditEntity('postType', postType, postId); 31581 const isEditable = userCanEdit && !isDescendentOfQueryLoop; 31582 return isEditable ? (0,external_wp_element_namespaceObject.createElement)(EditableContent, props) : (0,external_wp_element_namespaceObject.createElement)(ReadOnlyContent, { 31583 userCanEdit: userCanEdit, 31584 postType: postType, 31585 postId: postId 31586 }); 31587 } 31588 31589 function edit_Placeholder() { 31590 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 31591 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('This is the Post Content block, it will display all the blocks in any single post or page.')), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('That might be a simple arrangement like consecutive paragraphs in a blog post, or a more elaborate composition that includes image galleries, videos, tables, columns, and any other block types.')), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('If there are any Custom Post Types registered at your site, the Post Content block can display the contents of those entries as well.'))); 31592 } 31593 31594 function RecursionError() { 31595 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 31596 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.'))); 31597 } 31598 31599 function PostContentEdit(_ref3) { 31600 let { 31601 context, 31602 attributes 31603 } = _ref3; 31604 const { 31605 postId: contextPostId, 31606 postType: contextPostType 31607 } = context; 31608 const { 31609 layout = {} 31610 } = attributes; 31611 const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(contextPostId); 31612 31613 if (contextPostId && contextPostType && hasAlreadyRendered) { 31614 return (0,external_wp_element_namespaceObject.createElement)(RecursionError, null); 31615 } 31616 31617 return (0,external_wp_element_namespaceObject.createElement)(RecursionProvider, null, contextPostId && contextPostType ? (0,external_wp_element_namespaceObject.createElement)(Content, { 31618 context: context, 31619 layout: layout 31620 }) : (0,external_wp_element_namespaceObject.createElement)(edit_Placeholder, null)); 31621 } 31622 31623 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-content/index.js 31624 /** 31625 * WordPress dependencies 31626 */ 31627 31628 /** 31629 * Internal dependencies 31630 */ 31631 31632 const post_content_metadata = { 31633 $schema: "https://schemas.wp.org/trunk/block.json", 31634 apiVersion: 2, 31635 name: "core/post-content", 31636 title: "Post Content", 31637 category: "theme", 31638 description: "Displays the contents of a post or page.", 31639 textdomain: "default", 31640 usesContext: ["postId", "postType", "queryId"], 31641 supports: { 31642 align: ["wide", "full"], 31643 html: false, 31644 __experimentalLayout: true 31645 }, 31646 editorStyle: "wp-block-post-content-editor" 31647 }; 31648 31649 const { 31650 name: post_content_name 31651 } = post_content_metadata; 31652 31653 const post_content_settings = { 31654 icon: post_content, 31655 edit: PostContentEdit 31656 }; 31657 31658 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/edit.js 31659 31660 31661 /** 31662 * External dependencies 31663 */ 31664 31665 /** 31666 * WordPress dependencies 31667 */ 31668 31669 31670 31671 31672 31673 31674 31675 31676 31677 31678 function PostDateEdit(_ref) { 31679 let { 31680 attributes: { 31681 textAlign, 31682 format, 31683 isLink 31684 }, 31685 context: { 31686 postId, 31687 postType: postTypeSlug, 31688 queryId 31689 }, 31690 setAttributes 31691 } = _ref; 31692 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 31693 className: classnames_default()({ 31694 [`has-text-align-$textAlign}`]: textAlign 31695 }) 31696 }); 31697 const timeRef = (0,external_wp_element_namespaceObject.useRef)(); 31698 const isDescendentOfQueryLoop = Number.isFinite(queryId); 31699 const dateSettings = (0,external_wp_date_namespaceObject.__experimentalGetSettings)(); 31700 const [siteFormat = dateSettings.formats.date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'date_format'); 31701 const [siteTimeFormat = dateSettings.formats.time] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'time_format'); 31702 const [date, setDate] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'date', postId); 31703 const postType = (0,external_wp_data_namespaceObject.useSelect)(select => postTypeSlug ? select(external_wp_coreData_namespaceObject.store).getPostType(postTypeSlug) : null, [postTypeSlug]); 31704 let postDate = date ? (0,external_wp_element_namespaceObject.createElement)("time", { 31705 dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date), 31706 ref: timeRef 31707 }, (0,external_wp_date_namespaceObject.dateI18n)(format || siteFormat, date)) : (0,external_wp_i18n_namespaceObject.__)('Post Date'); 31708 31709 if (isLink && date) { 31710 postDate = (0,external_wp_element_namespaceObject.createElement)("a", { 31711 href: "#post-date-pseudo-link", 31712 onClick: event => event.preventDefault() 31713 }, postDate); 31714 } 31715 31716 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 31717 group: "block" 31718 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 31719 value: textAlign, 31720 onChange: nextAlign => { 31721 setAttributes({ 31722 textAlign: nextAlign 31723 }); 31724 } 31725 }), date && !isDescendentOfQueryLoop && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { 31726 popoverProps: { 31727 anchorRef: timeRef.current 31728 }, 31729 renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DateTimePicker, { 31730 currentDate: date, 31731 onChange: setDate, 31732 is12Hour: is12HourFormat(siteTimeFormat) 31733 }), 31734 renderToggle: _ref2 => { 31735 let { 31736 isOpen, 31737 onToggle 31738 } = _ref2; 31739 31740 const openOnArrowDown = event => { 31741 if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) { 31742 event.preventDefault(); 31743 onToggle(); 31744 } 31745 }; 31746 31747 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 31748 "aria-expanded": isOpen, 31749 icon: library_edit, 31750 title: (0,external_wp_i18n_namespaceObject.__)('Change Date'), 31751 onClick: onToggle, 31752 onKeyDown: openOnArrowDown 31753 }); 31754 } 31755 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 31756 title: (0,external_wp_i18n_namespaceObject.__)('Settings') 31757 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalDateFormatPicker, { 31758 format: format, 31759 defaultFormat: siteFormat, 31760 onChange: nextFormat => setAttributes({ 31761 format: nextFormat 31762 }) 31763 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 31764 label: postType !== null && postType !== void 0 && postType.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: Name of the post type e.g: "post". 31765 (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0,external_wp_i18n_namespaceObject.__)('Link to post'), 31766 onChange: () => setAttributes({ 31767 isLink: !isLink 31768 }), 31769 checked: isLink 31770 }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, postDate)); 31771 } 31772 function is12HourFormat(format) { 31773 // To know if the time format is a 12 hour time, look for any of the 12 hour 31774 // format characters: 'a', 'A', 'g', and 'h'. The character must be 31775 // unescaped, i.e. not preceded by a '\'. Coincidentally, 'aAgh' is how I 31776 // feel when working with regular expressions. 31777 // https://www.php.net/manual/en/datetime.format.php 31778 return /(?:^|[^\\])[aAgh]/.test(format); 31779 } 31780 31781 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/deprecated.js 31782 /** 31783 * Internal dependencies 31784 */ 31785 31786 const post_date_deprecated_v1 = { 31787 attributes: { 31788 textAlign: { 31789 type: 'string' 31790 }, 31791 format: { 31792 type: 'string' 31793 }, 31794 isLink: { 31795 type: 'boolean', 31796 default: false 31797 } 31798 }, 31799 supports: { 31800 html: false, 31801 color: { 31802 gradients: true, 31803 link: true 31804 }, 31805 typography: { 31806 fontSize: true, 31807 lineHeight: true, 31808 __experimentalFontFamily: true, 31809 __experimentalFontWeight: true, 31810 __experimentalFontStyle: true, 31811 __experimentalTextTransform: true, 31812 __experimentalLetterSpacing: true 31813 } 31814 }, 31815 31816 save() { 31817 return null; 31818 }, 31819 31820 migrate: migrate_font_family, 31821 31822 isEligible(_ref) { 31823 var _style$typography; 31824 31825 let { 31826 style 31827 } = _ref; 31828 return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily; 31829 } 31830 31831 }; 31832 /** 31833 * New deprecations need to be placed first 31834 * for them to have higher priority. 31835 * 31836 * Old deprecations may need to be updated as well. 31837 * 31838 * See block-deprecation.md 31839 */ 31840 31841 /* harmony default export */ var post_date_deprecated = ([post_date_deprecated_v1]); 31842 31843 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-date/index.js 31844 /** 31845 * WordPress dependencies 31846 */ 31847 31848 /** 31849 * Internal dependencies 31850 */ 31851 31852 const post_date_metadata = { 31853 $schema: "https://schemas.wp.org/trunk/block.json", 31854 apiVersion: 2, 31855 name: "core/post-date", 31856 title: "Post Date", 31857 category: "theme", 31858 description: "Add the date of this post.", 31859 textdomain: "default", 31860 attributes: { 31861 textAlign: { 31862 type: "string" 31863 }, 31864 format: { 31865 type: "string" 31866 }, 31867 isLink: { 31868 type: "boolean", 31869 "default": false 31870 } 31871 }, 31872 usesContext: ["postId", "postType", "queryId"], 31873 supports: { 31874 html: false, 31875 color: { 31876 gradients: true, 31877 link: true, 31878 __experimentalDefaultControls: { 31879 background: true, 31880 text: true, 31881 link: true 31882 } 31883 }, 31884 typography: { 31885 fontSize: true, 31886 lineHeight: true, 31887 __experimentalFontFamily: true, 31888 __experimentalFontWeight: true, 31889 __experimentalFontStyle: true, 31890 __experimentalTextTransform: true, 31891 __experimentalLetterSpacing: true, 31892 __experimentalDefaultControls: { 31893 fontSize: true 31894 } 31895 } 31896 } 31897 }; 31898 31899 31900 const { 31901 name: post_date_name 31902 } = post_date_metadata; 31903 31904 const post_date_settings = { 31905 icon: post_date, 31906 edit: PostDateEdit, 31907 deprecated: post_date_deprecated 31908 }; 31909 31910 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-excerpt.js 31911 31912 31913 /** 31914 * WordPress dependencies 31915 */ 31916 31917 const postExcerpt = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 31918 xmlns: "http://www.w3.org/2000/svg", 31919 viewBox: "0 0 24 24" 31920 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 31921 d: "M12.75 9.333c0 .521-.102.977-.327 1.354-.23.386-.555.628-.893.774-.545.234-1.183.227-1.544.222l-.12-.001v-1.5h.123c.414.001.715.002.948-.099a.395.395 0 00.199-.166c.05-.083.114-.253.114-.584V7.2H8.8V4h3.95v5.333zM7.95 9.333c0 .521-.102.977-.327 1.354-.23.386-.555.628-.893.774-.545.234-1.183.227-1.544.222l-.12-.001v-1.5h.123c.414.001.715.002.948-.099a.394.394 0 00.198-.166c.05-.083.115-.253.115-.584V7.2H4V4h3.95v5.333zM13 20H4v-1.5h9V20zM20 16H4v-1.5h16V16z" 31922 })); 31923 /* harmony default export */ var post_excerpt = (postExcerpt); 31924 31925 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/edit.js 31926 31927 31928 /** 31929 * External dependencies 31930 */ 31931 31932 /** 31933 * WordPress dependencies 31934 */ 31935 31936 31937 31938 31939 31940 31941 /** 31942 * Internal dependencies 31943 */ 31944 31945 31946 function PostExcerptEditor(_ref) { 31947 let { 31948 attributes: { 31949 textAlign, 31950 moreText, 31951 showMoreOnNewLine 31952 }, 31953 setAttributes, 31954 isSelected, 31955 context: { 31956 postId, 31957 postType, 31958 queryId 31959 } 31960 } = _ref; 31961 const isDescendentOfQueryLoop = Number.isFinite(queryId); 31962 const userCanEdit = useCanEditEntity('postType', postType, postId); 31963 const isEditable = userCanEdit && !isDescendentOfQueryLoop; 31964 const [rawExcerpt, setExcerpt, { 31965 rendered: renderedExcerpt, 31966 protected: isProtected 31967 } = {}] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'excerpt', postId); 31968 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 31969 className: classnames_default()({ 31970 [`has-text-align-$textAlign}`]: textAlign 31971 }) 31972 }); 31973 /** 31974 * When excerpt is editable, strip the html tags from 31975 * rendered excerpt. This will be used if the entity's 31976 * excerpt has been produced from the content. 31977 */ 31978 31979 const strippedRenderedExcerpt = (0,external_wp_element_namespaceObject.useMemo)(() => { 31980 if (!renderedExcerpt) return ''; 31981 const document = new window.DOMParser().parseFromString(renderedExcerpt, 'text/html'); 31982 return document.body.textContent || document.body.innerText || ''; 31983 }, [renderedExcerpt]); 31984 31985 if (!postType || !postId) { 31986 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('This is the Post Excerpt block, it will display the excerpt from single posts.')), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('If there are any Custom Post Types with support for excerpts, the Post Excerpt block can display the excerpts of those entries as well.'))); 31987 } 31988 31989 if (isProtected && !userCanEdit) { 31990 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('There is no excerpt because this is a protected post.'))); 31991 } 31992 31993 const readMoreLink = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 31994 className: "wp-block-post-excerpt__more-link", 31995 tagName: "a", 31996 "aria-label": (0,external_wp_i18n_namespaceObject.__)('"Read more" link text'), 31997 placeholder: (0,external_wp_i18n_namespaceObject.__)('Add "read more" link text'), 31998 value: moreText, 31999 onChange: newMoreText => setAttributes({ 32000 moreText: newMoreText 32001 }), 32002 withoutInteractiveFormatting: true 32003 }); 32004 const excerptClassName = classnames_default()('wp-block-post-excerpt__excerpt', { 32005 'is-inline': !showMoreOnNewLine 32006 }); 32007 const excerptContent = isEditable ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 32008 className: excerptClassName, 32009 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Post excerpt text'), 32010 value: rawExcerpt || strippedRenderedExcerpt || (isSelected ? '' : (0,external_wp_i18n_namespaceObject.__)('No post excerpt found')), 32011 onChange: setExcerpt, 32012 tagName: "p" 32013 }) : (0,external_wp_element_namespaceObject.createElement)("p", { 32014 className: excerptClassName 32015 }, strippedRenderedExcerpt || (0,external_wp_i18n_namespaceObject.__)('No post excerpt found')); 32016 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, { 32017 value: textAlign, 32018 onChange: newAlign => setAttributes({ 32019 textAlign: newAlign 32020 }) 32021 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 32022 title: (0,external_wp_i18n_namespaceObject.__)('Post Excerpt Settings') 32023 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 32024 label: (0,external_wp_i18n_namespaceObject.__)('Show link on new line'), 32025 checked: showMoreOnNewLine, 32026 onChange: newShowMoreOnNewLine => setAttributes({ 32027 showMoreOnNewLine: newShowMoreOnNewLine 32028 }) 32029 }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, excerptContent, !showMoreOnNewLine && ' ', showMoreOnNewLine ? (0,external_wp_element_namespaceObject.createElement)("p", { 32030 className: "wp-block-post-excerpt__more-text" 32031 }, readMoreLink) : readMoreLink)); 32032 } 32033 32034 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/transforms.js 32035 /** 32036 * WordPress dependencies 32037 */ 32038 32039 const post_excerpt_transforms_transforms = { 32040 from: [{ 32041 type: 'block', 32042 blocks: ['core/post-content'], 32043 transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-excerpt') 32044 }], 32045 to: [{ 32046 type: 'block', 32047 blocks: ['core/post-content'], 32048 transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-content') 32049 }] 32050 }; 32051 /* harmony default export */ var post_excerpt_transforms = (post_excerpt_transforms_transforms); 32052 32053 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-excerpt/index.js 32054 /** 32055 * WordPress dependencies 32056 */ 32057 32058 /** 32059 * Internal dependencies 32060 */ 32061 32062 const post_excerpt_metadata = { 32063 $schema: "https://schemas.wp.org/trunk/block.json", 32064 apiVersion: 2, 32065 name: "core/post-excerpt", 32066 title: "Post Excerpt", 32067 category: "theme", 32068 description: "Display a post's excerpt.", 32069 textdomain: "default", 32070 attributes: { 32071 textAlign: { 32072 type: "string" 32073 }, 32074 moreText: { 32075 type: "string" 32076 }, 32077 showMoreOnNewLine: { 32078 type: "boolean", 32079 "default": true 32080 } 32081 }, 32082 usesContext: ["postId", "postType", "queryId"], 32083 supports: { 32084 html: false, 32085 color: { 32086 gradients: true, 32087 link: true, 32088 __experimentalDefaultControls: { 32089 background: true, 32090 text: true, 32091 link: true 32092 } 32093 }, 32094 spacing: { 32095 margin: true, 32096 padding: true 32097 }, 32098 typography: { 32099 fontSize: true, 32100 lineHeight: true, 32101 __experimentalFontStyle: true, 32102 __experimentalFontWeight: true, 32103 __experimentalLetterSpacing: true, 32104 __experimentalTextTransform: true, 32105 __experimentalDefaultControls: { 32106 fontSize: true 32107 } 32108 } 32109 }, 32110 editorStyle: "wp-block-post-excerpt-editor", 32111 style: "wp-block-post-excerpt" 32112 }; 32113 32114 32115 const { 32116 name: post_excerpt_name 32117 } = post_excerpt_metadata; 32118 32119 const post_excerpt_settings = { 32120 icon: post_excerpt, 32121 transforms: post_excerpt_transforms, 32122 edit: PostExcerptEditor 32123 }; 32124 32125 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/dimension-controls.js 32126 32127 32128 /** 32129 * WordPress dependencies 32130 */ 32131 32132 32133 32134 const SCALE_OPTIONS = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 32135 value: "cover", 32136 label: (0,external_wp_i18n_namespaceObject._x)('Cover', 'Scale option for Image dimension control') 32137 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 32138 value: "contain", 32139 label: (0,external_wp_i18n_namespaceObject._x)('Contain', 'Scale option for Image dimension control') 32140 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 32141 value: "fill", 32142 label: (0,external_wp_i18n_namespaceObject._x)('Fill', 'Scale option for Image dimension control') 32143 })); 32144 const DEFAULT_SCALE = 'cover'; 32145 const DEFAULT_SIZE = 'full'; 32146 const scaleHelp = { 32147 cover: (0,external_wp_i18n_namespaceObject.__)('Image is scaled and cropped to fill the entire space without being distorted.'), 32148 contain: (0,external_wp_i18n_namespaceObject.__)('Image is scaled to fill the space without clipping nor distorting.'), 32149 fill: (0,external_wp_i18n_namespaceObject.__)('Image will be stretched and distorted to completely fill the space.') 32150 }; 32151 32152 const DimensionControls = _ref => { 32153 let { 32154 clientId, 32155 attributes: { 32156 width, 32157 height, 32158 scale, 32159 sizeSlug 32160 }, 32161 setAttributes, 32162 imageSizeOptions = [] 32163 } = _ref; 32164 const defaultUnits = ['px', '%', 'vw', 'em', 'rem']; 32165 const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ 32166 availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || defaultUnits 32167 }); 32168 32169 const onDimensionChange = (dimension, nextValue) => { 32170 const parsedValue = parseFloat(nextValue); 32171 /** 32172 * If we have no value set and we change the unit, 32173 * we don't want to set the attribute, as it would 32174 * end up having the unit as value without any number. 32175 */ 32176 32177 if (isNaN(parsedValue) && nextValue) return; 32178 setAttributes({ 32179 [dimension]: parsedValue < 0 ? '0' : nextValue 32180 }); 32181 }; 32182 32183 const scaleLabel = (0,external_wp_i18n_namespaceObject._x)('Scale', 'Image scaling options'); 32184 32185 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, { 32186 __experimentalGroup: "dimensions" 32187 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { 32188 className: "single-column", 32189 hasValue: () => !!height, 32190 label: (0,external_wp_i18n_namespaceObject.__)('Height'), 32191 onDeselect: () => setAttributes({ 32192 height: undefined 32193 }), 32194 resetAllFilter: () => ({ 32195 height: undefined 32196 }), 32197 isShownByDefault: true, 32198 panelId: clientId 32199 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { 32200 label: (0,external_wp_i18n_namespaceObject.__)('Height'), 32201 labelPosition: "top", 32202 value: height || '', 32203 min: 0, 32204 onChange: nextHeight => onDimensionChange('height', nextHeight), 32205 units: units 32206 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { 32207 className: "single-column", 32208 hasValue: () => !!width, 32209 label: (0,external_wp_i18n_namespaceObject.__)('Width'), 32210 onDeselect: () => setAttributes({ 32211 width: undefined 32212 }), 32213 resetAllFilter: () => ({ 32214 width: undefined 32215 }), 32216 isShownByDefault: true, 32217 panelId: clientId 32218 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { 32219 label: (0,external_wp_i18n_namespaceObject.__)('Width'), 32220 labelPosition: "top", 32221 value: width || '', 32222 min: 0, 32223 onChange: nextWidth => onDimensionChange('width', nextWidth), 32224 units: units 32225 })), !!height && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { 32226 hasValue: () => !!scale && scale !== DEFAULT_SCALE, 32227 label: scaleLabel, 32228 onDeselect: () => setAttributes({ 32229 scale: DEFAULT_SCALE 32230 }), 32231 resetAllFilter: () => ({ 32232 scale: DEFAULT_SCALE 32233 }), 32234 isShownByDefault: true, 32235 panelId: clientId 32236 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { 32237 label: scaleLabel, 32238 value: scale, 32239 help: scaleHelp[scale], 32240 onChange: value => setAttributes({ 32241 scale: value 32242 }), 32243 isBlock: true 32244 }, SCALE_OPTIONS)), !!imageSizeOptions.length && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { 32245 hasValue: () => !!sizeSlug, 32246 label: (0,external_wp_i18n_namespaceObject.__)('Image size'), 32247 onDeselect: () => setAttributes({ 32248 sizeSlug: undefined 32249 }), 32250 resetAllFilter: () => ({ 32251 sizeSlug: undefined 32252 }), 32253 isShownByDefault: false, 32254 panelId: clientId 32255 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 32256 label: (0,external_wp_i18n_namespaceObject.__)('Image size'), 32257 value: sizeSlug || DEFAULT_SIZE, 32258 options: imageSizeOptions, 32259 onChange: nextSizeSlug => setAttributes({ 32260 sizeSlug: nextSizeSlug 32261 }), 32262 help: (0,external_wp_i18n_namespaceObject.__)('Select the size of the source image.') 32263 }))); 32264 }; 32265 32266 /* harmony default export */ var dimension_controls = (DimensionControls); 32267 32268 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/edit.js 32269 32270 32271 /** 32272 * WordPress dependencies 32273 */ 32274 32275 32276 32277 32278 32279 32280 32281 32282 /** 32283 * Internal dependencies 32284 */ 32285 32286 32287 const placeholderIllustration = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 32288 className: "components-placeholder__illustration", 32289 fill: "none", 32290 xmlns: "http://www.w3.org/2000/svg", 32291 viewBox: "0 0 60 60", 32292 preserveAspectRatio: "none" 32293 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 32294 vectorEffect: "non-scaling-stroke", 32295 d: "M60 60 0 0" 32296 })); 32297 const post_featured_image_edit_ALLOWED_MEDIA_TYPES = ['image']; 32298 const placeholderChip = (0,external_wp_element_namespaceObject.createElement)("div", { 32299 className: "wp-block-post-featured-image__placeholder" 32300 }, placeholderIllustration); 32301 32302 function getMediaSourceUrlBySizeSlug(media, slug) { 32303 var _media$media_details, _media$media_details$, _media$media_details$2; 32304 32305 return (media === null || media === void 0 ? void 0 : (_media$media_details = media.media_details) === null || _media$media_details === void 0 ? void 0 : (_media$media_details$ = _media$media_details.sizes) === null || _media$media_details$ === void 0 ? void 0 : (_media$media_details$2 = _media$media_details$[slug]) === null || _media$media_details$2 === void 0 ? void 0 : _media$media_details$2.source_url) || (media === null || media === void 0 ? void 0 : media.source_url); 32306 } 32307 32308 function PostFeaturedImageDisplay(_ref) { 32309 let { 32310 clientId, 32311 attributes, 32312 setAttributes, 32313 context: { 32314 postId, 32315 postType: postTypeSlug, 32316 queryId 32317 } 32318 } = _ref; 32319 const isDescendentOfQueryLoop = Number.isFinite(queryId); 32320 const { 32321 isLink, 32322 height, 32323 width, 32324 scale, 32325 sizeSlug 32326 } = attributes; 32327 const [featuredImage, setFeaturedImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'featured_media', postId); 32328 const { 32329 media, 32330 postType 32331 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 32332 const { 32333 getMedia, 32334 getPostType 32335 } = select(external_wp_coreData_namespaceObject.store); 32336 return { 32337 media: featuredImage && getMedia(featuredImage, { 32338 context: 'view' 32339 }), 32340 postType: postTypeSlug && getPostType(postTypeSlug) 32341 }; 32342 }, [featuredImage, postTypeSlug]); 32343 const mediaUrl = getMediaSourceUrlBySizeSlug(media, sizeSlug); 32344 const imageSizes = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().imageSizes, []); 32345 const imageSizeOptions = imageSizes.filter(_ref2 => { 32346 var _media$media_details2, _media$media_details3, _media$media_details4; 32347 32348 let { 32349 slug 32350 } = _ref2; 32351 return media === null || media === void 0 ? void 0 : (_media$media_details2 = media.media_details) === null || _media$media_details2 === void 0 ? void 0 : (_media$media_details3 = _media$media_details2.sizes) === null || _media$media_details3 === void 0 ? void 0 : (_media$media_details4 = _media$media_details3[slug]) === null || _media$media_details4 === void 0 ? void 0 : _media$media_details4.source_url; 32352 }).map(_ref3 => { 32353 let { 32354 name, 32355 slug 32356 } = _ref3; 32357 return { 32358 value: slug, 32359 label: name 32360 }; 32361 }); 32362 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 32363 style: { 32364 width, 32365 height 32366 } 32367 }); 32368 32369 const placeholder = content => { 32370 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 32371 className: "block-editor-media-placeholder" 32372 }, placeholderIllustration, content); 32373 }; 32374 32375 const onSelectImage = value => { 32376 if (value !== null && value !== void 0 && value.id) { 32377 setFeaturedImage(value.id); 32378 } 32379 }; 32380 32381 const { 32382 createErrorNotice 32383 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); 32384 32385 const onUploadError = message => { 32386 createErrorNotice(message[2], { 32387 type: 'snackbar' 32388 }); 32389 }; 32390 32391 const controls = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(dimension_controls, { 32392 clientId: clientId, 32393 attributes: attributes, 32394 setAttributes: setAttributes, 32395 imageSizeOptions: imageSizeOptions 32396 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 32397 title: (0,external_wp_i18n_namespaceObject.__)('Link settings') 32398 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 32399 label: postType !== null && postType !== void 0 && postType.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: Name of the post type e.g: "post". 32400 (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0,external_wp_i18n_namespaceObject.__)('Link to post'), 32401 onChange: () => setAttributes({ 32402 isLink: !isLink 32403 }), 32404 checked: isLink 32405 })))); 32406 let image; 32407 32408 if (!featuredImage && isDescendentOfQueryLoop) { 32409 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, controls, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, placeholderChip)); 32410 } 32411 32412 const label = (0,external_wp_i18n_namespaceObject.__)('Add a featured image'); 32413 32414 if (!featuredImage) { 32415 image = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, { 32416 onSelect: onSelectImage, 32417 accept: "image/*", 32418 allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES, 32419 onError: onUploadError, 32420 placeholder: placeholder, 32421 mediaLibraryButton: _ref4 => { 32422 let { 32423 open 32424 } = _ref4; 32425 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 32426 icon: library_upload, 32427 variant: "primary", 32428 label: label, 32429 showTooltip: true, 32430 tooltipPosition: "top center", 32431 onClick: () => { 32432 open(); 32433 } 32434 }); 32435 } 32436 }); 32437 } else { 32438 // We have a Featured image so show a Placeholder if is loading. 32439 image = !media ? placeholderChip : (0,external_wp_element_namespaceObject.createElement)("img", { 32440 src: mediaUrl, 32441 alt: media.alt_text ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: The image's alt text. 32442 (0,external_wp_i18n_namespaceObject.__)('Featured image: %s'), media.alt_text) : (0,external_wp_i18n_namespaceObject.__)('Featured image'), 32443 style: { 32444 height, 32445 objectFit: height && scale 32446 } 32447 }); 32448 } 32449 32450 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, controls, !!media && !isDescendentOfQueryLoop && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 32451 group: "other" 32452 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, { 32453 mediaId: featuredImage, 32454 mediaURL: mediaUrl, 32455 allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES, 32456 accept: "image/*", 32457 onSelect: onSelectImage, 32458 onError: onUploadError 32459 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { 32460 onClick: () => setFeaturedImage(0) 32461 }, (0,external_wp_i18n_namespaceObject.__)('Reset')))), (0,external_wp_element_namespaceObject.createElement)("figure", blockProps, image)); 32462 } 32463 32464 function PostFeaturedImageEdit(props) { 32465 var _props$context; 32466 32467 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 32468 32469 if (!((_props$context = props.context) !== null && _props$context !== void 0 && _props$context.postId)) { 32470 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, placeholderChip); 32471 } 32472 32473 return (0,external_wp_element_namespaceObject.createElement)(PostFeaturedImageDisplay, props); 32474 } 32475 32476 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-featured-image/index.js 32477 /** 32478 * WordPress dependencies 32479 */ 32480 32481 /** 32482 * Internal dependencies 32483 */ 32484 32485 const post_featured_image_metadata = { 32486 $schema: "https://schemas.wp.org/trunk/block.json", 32487 apiVersion: 2, 32488 name: "core/post-featured-image", 32489 title: "Post Featured Image", 32490 category: "theme", 32491 description: "Display a post's featured image.", 32492 textdomain: "default", 32493 attributes: { 32494 isLink: { 32495 type: "boolean", 32496 "default": false 32497 }, 32498 width: { 32499 type: "string" 32500 }, 32501 height: { 32502 type: "string" 32503 }, 32504 scale: { 32505 type: "string", 32506 "default": "cover" 32507 }, 32508 sizeSlug: { 32509 type: "string" 32510 } 32511 }, 32512 usesContext: ["postId", "postType", "queryId"], 32513 supports: { 32514 align: ["left", "right", "center", "wide", "full"], 32515 color: { 32516 __experimentalDuotone: "img, .wp-block-post-featured-image__placeholder, .components-placeholder__illustration, .components-placeholder::before", 32517 text: false, 32518 background: false 32519 }, 32520 html: false, 32521 spacing: { 32522 margin: true, 32523 padding: true 32524 } 32525 }, 32526 editorStyle: "wp-block-post-featured-image-editor", 32527 style: "wp-block-post-featured-image" 32528 }; 32529 32530 const { 32531 name: post_featured_image_name 32532 } = post_featured_image_metadata; 32533 32534 const post_featured_image_settings = { 32535 icon: post_featured_image, 32536 edit: PostFeaturedImageEdit 32537 }; 32538 32539 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/edit.js 32540 32541 32542 /** 32543 * External dependencies 32544 */ 32545 32546 /** 32547 * WordPress dependencies 32548 */ 32549 32550 32551 32552 32553 function PostNavigationLinkEdit(_ref) { 32554 let { 32555 attributes: { 32556 type, 32557 label, 32558 showTitle, 32559 textAlign, 32560 linkLabel 32561 }, 32562 setAttributes 32563 } = _ref; 32564 const isNext = type === 'next'; 32565 let placeholder = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next') : (0,external_wp_i18n_namespaceObject.__)('Previous'); 32566 32567 if (showTitle) { 32568 /* translators: Label before for next and previous post. There is a space after the colon. */ 32569 placeholder = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next: ') : (0,external_wp_i18n_namespaceObject.__)('Previous: '); 32570 } 32571 32572 const ariaLabel = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next post') : (0,external_wp_i18n_namespaceObject.__)('Previous post'); 32573 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 32574 className: classnames_default()({ 32575 [`has-text-align-$textAlign}`]: textAlign 32576 }) 32577 }); 32578 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 32579 label: (0,external_wp_i18n_namespaceObject.__)('Display the title as a link'), 32580 help: (0,external_wp_i18n_namespaceObject.__)('If you have entered a custom label, it will be prepended before the title.'), 32581 checked: !!showTitle, 32582 onChange: () => setAttributes({ 32583 showTitle: !showTitle 32584 }) 32585 }), showTitle && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 32586 label: (0,external_wp_i18n_namespaceObject.__)('Include the label as part of the link'), 32587 checked: !!linkLabel, 32588 onChange: () => setAttributes({ 32589 linkLabel: !linkLabel 32590 }) 32591 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, { 32592 value: textAlign, 32593 onChange: nextAlign => { 32594 setAttributes({ 32595 textAlign: nextAlign 32596 }); 32597 } 32598 })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 32599 tagName: "a", 32600 "aria-label": ariaLabel, 32601 placeholder: placeholder, 32602 value: label, 32603 allowedFormats: ['core/bold', 'core/italic'], 32604 onChange: newLabel => setAttributes({ 32605 label: newLabel 32606 }) 32607 }), showTitle && (0,external_wp_element_namespaceObject.createElement)("a", { 32608 href: "#post-navigation-pseudo-link", 32609 onClick: event => event.preventDefault() 32610 }, (0,external_wp_i18n_namespaceObject.__)('An example title')))); 32611 } 32612 32613 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/next.js 32614 32615 32616 /** 32617 * WordPress dependencies 32618 */ 32619 32620 const next = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 32621 xmlns: "http://www.w3.org/2000/svg", 32622 viewBox: "0 0 24 24" 32623 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 32624 d: "M6.6 6L5.4 7l4.5 5-4.5 5 1.1 1 5.5-6-5.4-6zm6 0l-1.1 1 4.5 5-4.5 5 1.1 1 5.5-6-5.5-6z" 32625 })); 32626 /* harmony default export */ var library_next = (next); 32627 32628 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/previous.js 32629 32630 32631 /** 32632 * WordPress dependencies 32633 */ 32634 32635 const previous = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 32636 xmlns: "http://www.w3.org/2000/svg", 32637 viewBox: "0 0 24 24" 32638 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 32639 d: "M11.6 7l-1.1-1L5 12l5.5 6 1.1-1L7 12l4.6-5zm6 0l-1.1-1-5.5 6 5.5 6 1.1-1-4.6-5 4.6-5z" 32640 })); 32641 /* harmony default export */ var library_previous = (previous); 32642 32643 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/variations.js 32644 /** 32645 * WordPress dependencies 32646 */ 32647 32648 32649 const post_navigation_link_variations_variations = [{ 32650 isDefault: true, 32651 name: 'post-next', 32652 title: (0,external_wp_i18n_namespaceObject.__)('Next post'), 32653 description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that follows the current post.'), 32654 icon: library_next, 32655 attributes: { 32656 type: 'next' 32657 }, 32658 scope: ['inserter', 'transform'] 32659 }, { 32660 name: 'post-previous', 32661 title: (0,external_wp_i18n_namespaceObject.__)('Previous post'), 32662 description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that precedes the current post.'), 32663 icon: library_previous, 32664 attributes: { 32665 type: 'previous' 32666 }, 32667 scope: ['inserter', 'transform'] 32668 }]; 32669 /** 32670 * Add `isActive` function to all `post-navigation-link` variations, if not defined. 32671 * `isActive` function is used to find a variation match from a created 32672 * Block by providing its attributes. 32673 */ 32674 32675 post_navigation_link_variations_variations.forEach(variation => { 32676 if (variation.isActive) return; 32677 32678 variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type; 32679 }); 32680 /* harmony default export */ var post_navigation_link_variations = (post_navigation_link_variations_variations); 32681 32682 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-navigation-link/index.js 32683 /** 32684 * Internal dependencies 32685 */ 32686 const post_navigation_link_metadata = { 32687 $schema: "https://schemas.wp.org/trunk/block.json", 32688 apiVersion: 2, 32689 name: "core/post-navigation-link", 32690 title: "Post Navigation Link", 32691 category: "theme", 32692 description: "Displays the next or previous post link that is adjacent to the current post.", 32693 textdomain: "default", 32694 attributes: { 32695 textAlign: { 32696 type: "string" 32697 }, 32698 type: { 32699 type: "string", 32700 "default": "next" 32701 }, 32702 label: { 32703 type: "string" 32704 }, 32705 showTitle: { 32706 type: "boolean", 32707 "default": false 32708 }, 32709 linkLabel: { 32710 type: "boolean", 32711 "default": false 32712 } 32713 }, 32714 supports: { 32715 reusable: false, 32716 html: false, 32717 typography: { 32718 fontSize: true, 32719 lineHeight: true, 32720 __experimentalFontStyle: true, 32721 __experimentalFontWeight: true, 32722 __experimentalLetterSpacing: true, 32723 __experimentalTextTransform: true, 32724 __experimentalDefaultControls: { 32725 fontSize: true 32726 } 32727 } 32728 } 32729 }; 32730 32731 32732 const { 32733 name: post_navigation_link_name 32734 } = post_navigation_link_metadata; 32735 32736 const post_navigation_link_settings = { 32737 edit: PostNavigationLinkEdit, 32738 variations: post_navigation_link_variations 32739 }; 32740 32741 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/edit.js 32742 32743 32744 32745 /** 32746 * External dependencies 32747 */ 32748 32749 /** 32750 * WordPress dependencies 32751 */ 32752 32753 32754 32755 32756 32757 32758 32759 const post_template_edit_TEMPLATE = [['core/post-title'], ['core/post-date'], ['core/post-excerpt']]; 32760 32761 function PostTemplateInnerBlocks() { 32762 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({ 32763 className: 'wp-block-post' 32764 }, { 32765 template: post_template_edit_TEMPLATE 32766 }); 32767 return (0,external_wp_element_namespaceObject.createElement)("li", innerBlocksProps); 32768 } 32769 32770 function PostTemplateBlockPreview(_ref) { 32771 let { 32772 blocks, 32773 blockContextId, 32774 isHidden, 32775 setActiveBlockContextId 32776 } = _ref; 32777 const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({ 32778 blocks, 32779 props: { 32780 className: 'wp-block-post' 32781 } 32782 }); 32783 32784 const handleOnClick = () => { 32785 setActiveBlockContextId(blockContextId); 32786 }; 32787 32788 const style = { 32789 display: isHidden ? 'none' : undefined 32790 }; 32791 return (0,external_wp_element_namespaceObject.createElement)("li", _extends({}, blockPreviewProps, { 32792 tabIndex: 0 // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role 32793 , 32794 role: "button", 32795 onClick: handleOnClick, 32796 onKeyPress: handleOnClick, 32797 style: style 32798 })); 32799 } 32800 32801 const MemoizedPostTemplateBlockPreview = (0,external_wp_element_namespaceObject.memo)(PostTemplateBlockPreview); 32802 function PostTemplateEdit(_ref2) { 32803 let { 32804 clientId, 32805 context: { 32806 query: { 32807 perPage, 32808 offset, 32809 postType, 32810 order, 32811 orderBy, 32812 author, 32813 search, 32814 exclude, 32815 sticky, 32816 inherit, 32817 taxQuery 32818 } = {}, 32819 queryContext = [{ 32820 page: 1 32821 }], 32822 templateSlug, 32823 displayLayout: { 32824 type: layoutType = 'flex', 32825 columns = 1 32826 } = {} 32827 } 32828 } = _ref2; 32829 const [{ 32830 page 32831 }] = queryContext; 32832 const [activeBlockContextId, setActiveBlockContextId] = (0,external_wp_element_namespaceObject.useState)(); 32833 const { 32834 posts, 32835 blocks 32836 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 32837 const { 32838 getEntityRecords, 32839 getTaxonomies 32840 } = select(external_wp_coreData_namespaceObject.store); 32841 const { 32842 getBlocks 32843 } = select(external_wp_blockEditor_namespaceObject.store); 32844 const taxonomies = getTaxonomies({ 32845 type: postType, 32846 per_page: -1, 32847 context: 'view' 32848 }); 32849 const query = { 32850 offset: perPage ? perPage * (page - 1) + offset : 0, 32851 order, 32852 orderby: orderBy 32853 }; 32854 32855 if (taxQuery) { 32856 // We have to build the tax query for the REST API and use as 32857 // keys the taxonomies `rest_base` with the `term ids` as values. 32858 const builtTaxQuery = Object.entries(taxQuery).reduce((accumulator, _ref3) => { 32859 let [taxonomySlug, terms] = _ref3; 32860 const taxonomy = taxonomies === null || taxonomies === void 0 ? void 0 : taxonomies.find(_ref4 => { 32861 let { 32862 slug 32863 } = _ref4; 32864 return slug === taxonomySlug; 32865 }); 32866 32867 if (taxonomy !== null && taxonomy !== void 0 && taxonomy.rest_base) { 32868 accumulator[taxonomy === null || taxonomy === void 0 ? void 0 : taxonomy.rest_base] = terms; 32869 } 32870 32871 return accumulator; 32872 }, {}); 32873 32874 if (!!Object.keys(builtTaxQuery).length) { 32875 Object.assign(query, builtTaxQuery); 32876 } 32877 } 32878 32879 if (perPage) { 32880 query.per_page = perPage; 32881 } 32882 32883 if (author) { 32884 query.author = author; 32885 } 32886 32887 if (search) { 32888 query.search = search; 32889 } 32890 32891 if (exclude !== null && exclude !== void 0 && exclude.length) { 32892 query.exclude = exclude; 32893 } // If sticky is not set, it will return all posts in the results. 32894 // If sticky is set to `only`, it will limit the results to sticky posts only. 32895 // If it is anything else, it will exclude sticky posts from results. For the record the value stored is `exclude`. 32896 32897 32898 if (sticky) { 32899 query.sticky = sticky === 'only'; 32900 } // If `inherit` is truthy, adjust conditionally the query to create a better preview. 32901 32902 32903 if (inherit) { 32904 // Change the post-type if needed. 32905 if (templateSlug !== null && templateSlug !== void 0 && templateSlug.startsWith('archive-')) { 32906 query.postType = templateSlug.replace('archive-', ''); 32907 postType = query.postType; 32908 } 32909 } 32910 32911 return { 32912 posts: getEntityRecords('postType', postType, query), 32913 blocks: getBlocks(clientId) 32914 }; 32915 }, [perPage, page, offset, order, orderBy, clientId, author, search, postType, exclude, sticky, inherit, templateSlug, taxQuery]); 32916 const blockContexts = (0,external_wp_element_namespaceObject.useMemo)(() => posts === null || posts === void 0 ? void 0 : posts.map(post => ({ 32917 postType: post.type, 32918 postId: post.id 32919 })), [posts]); 32920 const hasLayoutFlex = layoutType === 'flex' && columns > 1; 32921 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 32922 className: classnames_default()({ 32923 'is-flex-container': hasLayoutFlex, 32924 [`columns-$columns}`]: hasLayoutFlex 32925 }) 32926 }); 32927 32928 if (!posts) { 32929 return (0,external_wp_element_namespaceObject.createElement)("p", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)); 32930 } 32931 32932 if (!posts.length) { 32933 return (0,external_wp_element_namespaceObject.createElement)("p", blockProps, " ", (0,external_wp_i18n_namespaceObject.__)('No results found.')); 32934 } // To avoid flicker when switching active block contexts, a preview is rendered 32935 // for each block context, but the preview for the active block context is hidden. 32936 // This ensures that when it is displayed again, the cached rendering of the 32937 // block preview is used, instead of having to re-render the preview from scratch. 32938 32939 32940 return (0,external_wp_element_namespaceObject.createElement)("ul", blockProps, blockContexts && blockContexts.map(blockContext => { 32941 var _blockContexts$, _blockContexts$2; 32942 32943 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockContextProvider, { 32944 key: blockContext.postId, 32945 value: blockContext 32946 }, blockContext.postId === (activeBlockContextId || ((_blockContexts$ = blockContexts[0]) === null || _blockContexts$ === void 0 ? void 0 : _blockContexts$.postId)) ? (0,external_wp_element_namespaceObject.createElement)(PostTemplateInnerBlocks, null) : null, (0,external_wp_element_namespaceObject.createElement)(MemoizedPostTemplateBlockPreview, { 32947 blocks: blocks, 32948 blockContextId: blockContext.postId, 32949 setActiveBlockContextId: setActiveBlockContextId, 32950 isHidden: blockContext.postId === (activeBlockContextId || ((_blockContexts$2 = blockContexts[0]) === null || _blockContexts$2 === void 0 ? void 0 : _blockContexts$2.postId)) 32951 })); 32952 })); 32953 } 32954 32955 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/save.js 32956 32957 32958 /** 32959 * WordPress dependencies 32960 */ 32961 32962 function PostTemplateSave() { 32963 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 32964 } 32965 32966 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-template/index.js 32967 /** 32968 * WordPress dependencies 32969 */ 32970 32971 /** 32972 * Internal dependencies 32973 */ 32974 32975 const post_template_metadata = { 32976 $schema: "https://schemas.wp.org/trunk/block.json", 32977 apiVersion: 2, 32978 name: "core/post-template", 32979 title: "Post Template", 32980 category: "theme", 32981 parent: ["core/query"], 32982 description: "Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.", 32983 textdomain: "default", 32984 usesContext: ["queryId", "query", "queryContext", "displayLayout", "templateSlug"], 32985 supports: { 32986 reusable: false, 32987 html: false, 32988 align: true, 32989 __experimentalLayout: { 32990 allowEditing: false 32991 } 32992 }, 32993 style: "wp-block-post-template", 32994 editorStyle: "wp-block-post-template-editor" 32995 }; 32996 32997 32998 const { 32999 name: post_template_name 33000 } = post_template_metadata; 33001 33002 const post_template_settings = { 33003 icon: library_layout, 33004 edit: PostTemplateEdit, 33005 save: PostTemplateSave 33006 }; 33007 33008 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/use-post-terms.js 33009 /** 33010 * WordPress dependencies 33011 */ 33012 33013 33014 function usePostTerms(_ref) { 33015 var _term$visibility2; 33016 33017 let { 33018 postId, 33019 postType, 33020 term 33021 } = _ref; 33022 const { 33023 rest_base: restBase, 33024 slug 33025 } = term; 33026 const [termIds] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, restBase, postId); 33027 return (0,external_wp_data_namespaceObject.useSelect)(select => { 33028 var _term$visibility; 33029 33030 const visible = term === null || term === void 0 ? void 0 : (_term$visibility = term.visibility) === null || _term$visibility === void 0 ? void 0 : _term$visibility.publicly_queryable; 33031 33032 if (!visible) { 33033 return { 33034 postTerms: [], 33035 _isLoading: false, 33036 hasPostTerms: false 33037 }; 33038 } 33039 33040 if (!termIds) { 33041 var _term$postTerms; 33042 33043 // Waiting for post terms to be fetched. 33044 return { 33045 isLoading: term === null || term === void 0 ? void 0 : (_term$postTerms = term.postTerms) === null || _term$postTerms === void 0 ? void 0 : _term$postTerms.includes(postType) 33046 }; 33047 } 33048 33049 if (!termIds.length) { 33050 return { 33051 isLoading: false 33052 }; 33053 } 33054 33055 const { 33056 getEntityRecords, 33057 isResolving 33058 } = select(external_wp_coreData_namespaceObject.store); 33059 const taxonomyArgs = ['taxonomy', slug, { 33060 include: termIds, 33061 context: 'view' 33062 }]; 33063 const terms = getEntityRecords(...taxonomyArgs); 33064 33065 const _isLoading = isResolving('getEntityRecords', taxonomyArgs); 33066 33067 return { 33068 postTerms: terms, 33069 isLoading: _isLoading, 33070 hasPostTerms: !!(terms !== null && terms !== void 0 && terms.length) 33071 }; 33072 }, [termIds, term === null || term === void 0 ? void 0 : (_term$visibility2 = term.visibility) === null || _term$visibility2 === void 0 ? void 0 : _term$visibility2.publicly_queryable]); 33073 } 33074 33075 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/edit.js 33076 33077 33078 /** 33079 * External dependencies 33080 */ 33081 33082 33083 /** 33084 * WordPress dependencies 33085 */ 33086 33087 33088 33089 33090 33091 33092 /** 33093 * Internal dependencies 33094 */ 33095 33096 33097 function PostTermsEdit(_ref) { 33098 var _selectedTerm$labels; 33099 33100 let { 33101 attributes, 33102 clientId, 33103 context, 33104 setAttributes 33105 } = _ref; 33106 const { 33107 term, 33108 textAlign, 33109 separator 33110 } = attributes; 33111 const { 33112 postId, 33113 postType 33114 } = context; 33115 const selectedTerm = (0,external_wp_data_namespaceObject.useSelect)(select => { 33116 var _taxonomy$visibility; 33117 33118 if (!term) return {}; 33119 const { 33120 getTaxonomy 33121 } = select(external_wp_coreData_namespaceObject.store); 33122 const taxonomy = getTaxonomy(term); 33123 return taxonomy !== null && taxonomy !== void 0 && (_taxonomy$visibility = taxonomy.visibility) !== null && _taxonomy$visibility !== void 0 && _taxonomy$visibility.publicly_queryable ? taxonomy : {}; 33124 }, [term]); 33125 const { 33126 postTerms, 33127 hasPostTerms, 33128 isLoading 33129 } = usePostTerms({ 33130 postId, 33131 postType, 33132 term: selectedTerm 33133 }); 33134 const hasPost = postId && postType; 33135 const blockInformation = (0,external_wp_blockEditor_namespaceObject.useBlockDisplayInformation)(clientId); 33136 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 33137 className: classnames_default()({ 33138 [`has-text-align-$textAlign}`]: textAlign, 33139 [`taxonomy-$term}`]: term 33140 }) 33141 }); 33142 33143 if (!hasPost || !term) { 33144 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, blockInformation.title); 33145 } 33146 33147 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, { 33148 value: textAlign, 33149 onChange: nextAlign => { 33150 setAttributes({ 33151 textAlign: nextAlign 33152 }); 33153 } 33154 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, { 33155 __experimentalGroup: "advanced" 33156 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 33157 autoComplete: "off", 33158 label: (0,external_wp_i18n_namespaceObject.__)('Separator'), 33159 value: separator || '', 33160 onChange: nextValue => { 33161 setAttributes({ 33162 separator: nextValue 33163 }); 33164 }, 33165 help: (0,external_wp_i18n_namespaceObject.__)('Enter character(s) used to separate terms.') 33166 })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, isLoading && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), !isLoading && hasPostTerms && postTerms.map(postTerm => (0,external_wp_element_namespaceObject.createElement)("a", { 33167 key: postTerm.id, 33168 href: postTerm.link, 33169 onClick: event => event.preventDefault() 33170 }, (0,external_lodash_namespaceObject.unescape)(postTerm.name))).reduce((prev, curr) => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, prev, (0,external_wp_element_namespaceObject.createElement)("span", { 33171 className: "wp-block-post-terms__separator" 33172 }, separator || ' '), curr)), !isLoading && !hasPostTerms && ((selectedTerm === null || selectedTerm === void 0 ? void 0 : (_selectedTerm$labels = selectedTerm.labels) === null || _selectedTerm$labels === void 0 ? void 0 : _selectedTerm$labels.no_terms) || (0,external_wp_i18n_namespaceObject.__)('Term items not found.')))); 33173 } 33174 33175 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-categories.js 33176 33177 33178 /** 33179 * WordPress dependencies 33180 */ 33181 33182 const postCategories = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 33183 viewBox: "0 0 24 24", 33184 xmlns: "http://www.w3.org/2000/svg" 33185 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 33186 d: "M20 4H4v1.5h16V4zm-2 9h-3c-1.1 0-2 .9-2 2v3c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2zm.5 5c0 .3-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3zM4 9.5h9V8H4v1.5zM9 13H6c-1.1 0-2 .9-2 2v3c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2zm.5 5c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3z", 33187 fillRule: "evenodd", 33188 clipRule: "evenodd" 33189 })); 33190 /* harmony default export */ var post_categories = (postCategories); 33191 33192 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-terms.js 33193 33194 33195 /** 33196 * WordPress dependencies 33197 */ 33198 33199 const postTerms = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 33200 viewBox: "0 0 24 24", 33201 xmlns: "http://www.w3.org/2000/svg" 33202 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 33203 d: "M8.1 12.3c.1.1.3.3.5.3.2.1.4.1.6.1.2 0 .4 0 .6-.1.2-.1.4-.2.5-.3l3-3c.3-.3.5-.7.5-1.1 0-.4-.2-.8-.5-1.1L9.7 3.5c-.1-.2-.3-.3-.5-.3H5c-.4 0-.8.4-.8.8v4.2c0 .2.1.4.2.5l3.7 3.6zM5.8 4.8h3.1l3.4 3.4v.1l-3 3 .5.5-.7-.5-3.3-3.4V4.8zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z" 33204 })); 33205 /* harmony default export */ var post_terms = (postTerms); 33206 33207 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/variations.js 33208 /** 33209 * WordPress dependencies 33210 */ 33211 33212 33213 const post_terms_variations_variations = [{ 33214 name: 'category', 33215 title: (0,external_wp_i18n_namespaceObject.__)('Post Categories'), 33216 description: (0,external_wp_i18n_namespaceObject.__)("Display a post's categories."), 33217 icon: post_categories, 33218 isDefault: true, 33219 attributes: { 33220 term: 'category' 33221 }, 33222 isActive: blockAttributes => blockAttributes.term === 'category' 33223 }, { 33224 name: 'post_tag', 33225 title: (0,external_wp_i18n_namespaceObject.__)('Post Tags'), 33226 description: (0,external_wp_i18n_namespaceObject.__)("Display a post's tags."), 33227 icon: post_terms, 33228 attributes: { 33229 term: 'post_tag' 33230 }, 33231 isActive: blockAttributes => blockAttributes.term === 'post_tag' 33232 }]; 33233 /* harmony default export */ var post_terms_variations = (post_terms_variations_variations); 33234 33235 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-terms/index.js 33236 /** 33237 * Internal dependencies 33238 */ 33239 const post_terms_metadata = { 33240 $schema: "https://schemas.wp.org/trunk/block.json", 33241 apiVersion: 2, 33242 name: "core/post-terms", 33243 title: "Post Terms", 33244 category: "theme", 33245 description: "Post terms.", 33246 textdomain: "default", 33247 attributes: { 33248 term: { 33249 type: "string" 33250 }, 33251 textAlign: { 33252 type: "string" 33253 }, 33254 separator: { 33255 type: "string", 33256 "default": ", " 33257 } 33258 }, 33259 usesContext: ["postId", "postType"], 33260 supports: { 33261 html: false, 33262 color: { 33263 gradients: true, 33264 link: true, 33265 __experimentalDefaultControls: { 33266 background: true, 33267 text: true, 33268 link: true 33269 } 33270 }, 33271 typography: { 33272 lineHeight: true, 33273 fontSize: true, 33274 __experimentalFontStyle: true, 33275 __experimentalFontWeight: true, 33276 __experimentalLetterSpacing: true, 33277 __experimentalTextTransform: true, 33278 __experimentalDefaultControls: { 33279 fontSize: true 33280 } 33281 } 33282 }, 33283 style: "wp-block-post-terms" 33284 }; 33285 33286 33287 /** 33288 * WordPress dependencies 33289 */ 33290 33291 33292 const { 33293 name: post_terms_name 33294 } = post_terms_metadata; 33295 33296 const post_terms_settings = { 33297 icon: post_terms, 33298 variations: post_terms_variations, 33299 edit: PostTermsEdit 33300 }; 33301 33302 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/edit.js 33303 33304 33305 33306 /** 33307 * External dependencies 33308 */ 33309 33310 /** 33311 * WordPress dependencies 33312 */ 33313 33314 33315 33316 33317 33318 /** 33319 * Internal dependencies 33320 */ 33321 33322 33323 33324 function PostTitleEdit(_ref) { 33325 let { 33326 attributes: { 33327 level, 33328 textAlign, 33329 isLink, 33330 rel, 33331 linkTarget 33332 }, 33333 setAttributes, 33334 context: { 33335 postType, 33336 postId, 33337 queryId 33338 } 33339 } = _ref; 33340 const TagName = 0 === level ? 'p' : 'h' + level; 33341 const isDescendentOfQueryLoop = Number.isFinite(queryId); 33342 const userCanEdit = useCanEditEntity('postType', postType, postId); 33343 const [rawTitle = '', setTitle, fullTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId); 33344 const [link] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'link', postId); 33345 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 33346 className: classnames_default()({ 33347 [`has-text-align-$textAlign}`]: textAlign 33348 }) 33349 }); 33350 let titleElement = (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_i18n_namespaceObject.__)('Post Title')); 33351 33352 if (postType && postId) { 33353 titleElement = userCanEdit && !isDescendentOfQueryLoop ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, _extends({ 33354 tagName: TagName, 33355 placeholder: (0,external_wp_i18n_namespaceObject.__)('No Title'), 33356 value: rawTitle, 33357 onChange: setTitle, 33358 __experimentalVersion: 2 33359 }, blockProps)) : (0,external_wp_element_namespaceObject.createElement)(TagName, _extends({}, blockProps, { 33360 dangerouslySetInnerHTML: { 33361 __html: fullTitle === null || fullTitle === void 0 ? void 0 : fullTitle.rendered 33362 } 33363 })); 33364 } 33365 33366 if (isLink && postType && postId) { 33367 titleElement = userCanEdit && !isDescendentOfQueryLoop ? (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, { 33368 tagName: "a", 33369 href: link, 33370 target: linkTarget, 33371 rel: rel, 33372 placeholder: !rawTitle.length ? (0,external_wp_i18n_namespaceObject.__)('No Title') : null, 33373 value: rawTitle, 33374 onChange: setTitle, 33375 __experimentalVersion: 2 33376 })) : (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)("a", { 33377 href: link, 33378 target: linkTarget, 33379 rel: rel, 33380 onClick: event => event.preventDefault(), 33381 dangerouslySetInnerHTML: { 33382 __html: fullTitle === null || fullTitle === void 0 ? void 0 : fullTitle.rendered 33383 } 33384 })); 33385 } 33386 33387 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 33388 group: "block" 33389 }, (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, { 33390 selectedLevel: level, 33391 onChange: newLevel => setAttributes({ 33392 level: newLevel 33393 }) 33394 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 33395 value: textAlign, 33396 onChange: nextAlign => { 33397 setAttributes({ 33398 textAlign: nextAlign 33399 }); 33400 } 33401 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 33402 title: (0,external_wp_i18n_namespaceObject.__)('Link settings') 33403 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 33404 label: (0,external_wp_i18n_namespaceObject.__)('Make title a link'), 33405 onChange: () => setAttributes({ 33406 isLink: !isLink 33407 }), 33408 checked: isLink 33409 }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 33410 label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'), 33411 onChange: value => setAttributes({ 33412 linkTarget: value ? '_blank' : '_self' 33413 }), 33414 checked: linkTarget === '_blank' 33415 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 33416 label: (0,external_wp_i18n_namespaceObject.__)('Link rel'), 33417 value: rel, 33418 onChange: newRel => setAttributes({ 33419 rel: newRel 33420 }) 33421 })))), titleElement); 33422 } 33423 33424 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/deprecated.js 33425 /** 33426 * Internal dependencies 33427 */ 33428 33429 const post_title_deprecated_v1 = { 33430 attributes: { 33431 textAlign: { 33432 type: 'string' 33433 }, 33434 level: { 33435 type: 'number', 33436 default: 2 33437 }, 33438 isLink: { 33439 type: 'boolean', 33440 default: false 33441 }, 33442 rel: { 33443 type: 'string', 33444 attribute: 'rel', 33445 default: '' 33446 }, 33447 linkTarget: { 33448 type: 'string', 33449 default: '_self' 33450 } 33451 }, 33452 supports: { 33453 align: ['wide', 'full'], 33454 html: false, 33455 color: { 33456 gradients: true, 33457 link: true 33458 }, 33459 spacing: { 33460 margin: true 33461 }, 33462 typography: { 33463 fontSize: true, 33464 lineHeight: true, 33465 __experimentalFontFamily: true, 33466 __experimentalFontWeight: true, 33467 __experimentalFontStyle: true, 33468 __experimentalTextTransform: true 33469 } 33470 }, 33471 33472 save() { 33473 return null; 33474 }, 33475 33476 migrate: migrate_font_family, 33477 33478 isEligible(_ref) { 33479 var _style$typography; 33480 33481 let { 33482 style 33483 } = _ref; 33484 return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily; 33485 } 33486 33487 }; 33488 /** 33489 * New deprecations need to be placed first 33490 * for them to have higher priority. 33491 * 33492 * Old deprecations may need to be updated as well. 33493 * 33494 * See block-deprecation.md 33495 */ 33496 33497 /* harmony default export */ var post_title_deprecated = ([post_title_deprecated_v1]); 33498 33499 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/post-title/index.js 33500 /** 33501 * WordPress dependencies 33502 */ 33503 33504 /** 33505 * Internal dependencies 33506 */ 33507 33508 const post_title_metadata = { 33509 $schema: "https://schemas.wp.org/trunk/block.json", 33510 apiVersion: 2, 33511 name: "core/post-title", 33512 title: "Post Title", 33513 category: "theme", 33514 description: "Displays the title of a post, page, or any other content-type.", 33515 textdomain: "default", 33516 usesContext: ["postId", "postType", "queryId"], 33517 attributes: { 33518 textAlign: { 33519 type: "string" 33520 }, 33521 level: { 33522 type: "number", 33523 "default": 2 33524 }, 33525 isLink: { 33526 type: "boolean", 33527 "default": false 33528 }, 33529 rel: { 33530 type: "string", 33531 attribute: "rel", 33532 "default": "" 33533 }, 33534 linkTarget: { 33535 type: "string", 33536 "default": "_self" 33537 } 33538 }, 33539 supports: { 33540 align: ["wide", "full"], 33541 html: false, 33542 color: { 33543 gradients: true, 33544 link: true, 33545 __experimentalDefaultControls: { 33546 background: true, 33547 text: true, 33548 link: true 33549 } 33550 }, 33551 spacing: { 33552 margin: true 33553 }, 33554 typography: { 33555 fontSize: true, 33556 lineHeight: true, 33557 __experimentalFontFamily: true, 33558 __experimentalFontWeight: true, 33559 __experimentalFontStyle: true, 33560 __experimentalTextTransform: true, 33561 __experimentalLetterSpacing: true, 33562 __experimentalDefaultControls: { 33563 fontSize: true, 33564 fontAppearance: true, 33565 textTransform: true 33566 } 33567 } 33568 }, 33569 style: "wp-block-post-title" 33570 }; 33571 33572 33573 const { 33574 name: post_title_name 33575 } = post_title_metadata; 33576 33577 const post_title_settings = { 33578 icon: post_title, 33579 edit: PostTitleEdit, 33580 deprecated: post_title_deprecated 33581 }; 33582 33583 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/preformatted.js 33584 33585 33586 /** 33587 * WordPress dependencies 33588 */ 33589 33590 const preformatted = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 33591 viewBox: "0 0 24 24", 33592 xmlns: "http://www.w3.org/2000/svg" 33593 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 33594 d: "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12zM7 16.5h6V15H7v1.5zm4-4h6V11h-6v1.5zM9 11H7v1.5h2V11zm6 5.5h2V15h-2v1.5z" 33595 })); 33596 /* harmony default export */ var library_preformatted = (preformatted); 33597 33598 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/edit.js 33599 33600 33601 33602 /** 33603 * WordPress dependencies 33604 */ 33605 33606 33607 function PreformattedEdit(_ref) { 33608 let { 33609 attributes, 33610 mergeBlocks, 33611 setAttributes, 33612 onRemove, 33613 style 33614 } = _ref; 33615 const { 33616 content 33617 } = attributes; 33618 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 33619 style 33620 }); 33621 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({ 33622 tagName: "pre", 33623 identifier: "content", 33624 preserveWhiteSpace: true, 33625 value: content, 33626 onChange: nextContent => { 33627 setAttributes({ 33628 content: nextContent 33629 }); 33630 }, 33631 onRemove: onRemove, 33632 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Preformatted text'), 33633 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write preformatted text…'), 33634 onMerge: mergeBlocks 33635 }, blockProps, { 33636 __unstablePastePlainText: true 33637 })); 33638 } 33639 33640 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/save.js 33641 33642 33643 /** 33644 * WordPress dependencies 33645 */ 33646 33647 function preformatted_save_save(_ref) { 33648 let { 33649 attributes 33650 } = _ref; 33651 const { 33652 content 33653 } = attributes; 33654 return (0,external_wp_element_namespaceObject.createElement)("pre", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 33655 value: content 33656 })); 33657 } 33658 33659 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/transforms.js 33660 /** 33661 * WordPress dependencies 33662 */ 33663 33664 const preformatted_transforms_transforms = { 33665 from: [{ 33666 type: 'block', 33667 blocks: ['core/code', 'core/paragraph'], 33668 transform: _ref => { 33669 let { 33670 content, 33671 anchor 33672 } = _ref; 33673 return (0,external_wp_blocks_namespaceObject.createBlock)('core/preformatted', { 33674 content, 33675 anchor 33676 }); 33677 } 33678 }, { 33679 type: 'raw', 33680 isMatch: node => node.nodeName === 'PRE' && !(node.children.length === 1 && node.firstChild.nodeName === 'CODE'), 33681 schema: _ref2 => { 33682 let { 33683 phrasingContentSchema 33684 } = _ref2; 33685 return { 33686 pre: { 33687 children: phrasingContentSchema 33688 } 33689 }; 33690 } 33691 }], 33692 to: [{ 33693 type: 'block', 33694 blocks: ['core/paragraph'], 33695 transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes) 33696 }, { 33697 type: 'block', 33698 blocks: ['core/code'], 33699 transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/code', attributes) 33700 }] 33701 }; 33702 /* harmony default export */ var preformatted_transforms = (preformatted_transforms_transforms); 33703 33704 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/index.js 33705 /** 33706 * WordPress dependencies 33707 */ 33708 33709 33710 /** 33711 * Internal dependencies 33712 */ 33713 33714 33715 const preformatted_metadata = { 33716 $schema: "https://schemas.wp.org/trunk/block.json", 33717 apiVersion: 2, 33718 name: "core/preformatted", 33719 title: "Preformatted", 33720 category: "text", 33721 description: "Add text that respects your spacing and tabs, and also allows styling.", 33722 textdomain: "default", 33723 attributes: { 33724 content: { 33725 type: "string", 33726 source: "html", 33727 selector: "pre", 33728 "default": "", 33729 __unstablePreserveWhiteSpace: true, 33730 __experimentalRole: "content" 33731 } 33732 }, 33733 supports: { 33734 anchor: true, 33735 color: { 33736 gradients: true, 33737 __experimentalDefaultControls: { 33738 background: true, 33739 text: true 33740 } 33741 }, 33742 typography: { 33743 fontSize: true, 33744 lineHeight: true, 33745 __experimentalFontStyle: true, 33746 __experimentalFontWeight: true, 33747 __experimentalLetterSpacing: true, 33748 __experimentalTextTransform: true, 33749 __experimentalDefaultControls: { 33750 fontSize: true 33751 } 33752 } 33753 }, 33754 style: "wp-block-preformatted" 33755 }; 33756 33757 33758 const { 33759 name: preformatted_name 33760 } = preformatted_metadata; 33761 33762 const preformatted_settings = { 33763 icon: library_preformatted, 33764 example: { 33765 attributes: { 33766 /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */ 33767 // translators: Sample content for the Preformatted block. Can be replaced with a more locale-adequate work. 33768 content: (0,external_wp_i18n_namespaceObject.__)('EXT. XANADU - FAINT DAWN - 1940 (MINIATURE)\nWindow, very small in the distance, illuminated.\nAll around this is an almost totally black screen. Now, as the camera moves slowly towards the window which is almost a postage stamp in the frame, other forms appear;') 33769 /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */ 33770 33771 } 33772 }, 33773 transforms: preformatted_transforms, 33774 edit: PreformattedEdit, 33775 save: preformatted_save_save, 33776 33777 merge(attributes, attributesToMerge) { 33778 return { 33779 content: attributes.content + attributesToMerge.content 33780 }; 33781 } 33782 33783 }; 33784 33785 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pullquote.js 33786 33787 33788 /** 33789 * WordPress dependencies 33790 */ 33791 33792 const pullquote = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 33793 viewBox: "0 0 24 24", 33794 xmlns: "http://www.w3.org/2000/svg" 33795 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 33796 d: "M18 8H6c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm.5 6c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-4c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v4zM4 4v1.5h16V4H4zm0 16h16v-1.5H4V20z" 33797 })); 33798 /* harmony default export */ var library_pullquote = (pullquote); 33799 33800 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/shared.js 33801 const SOLID_COLOR_CLASS = `is-style-solid-color`; 33802 33803 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/deprecated.js 33804 33805 33806 /** 33807 * External dependencies 33808 */ 33809 33810 33811 /** 33812 * WordPress dependencies 33813 */ 33814 33815 33816 33817 /** 33818 * Internal dependencies 33819 */ 33820 33821 33822 const pullquote_deprecated_blockAttributes = { 33823 value: { 33824 type: 'string', 33825 source: 'html', 33826 selector: 'blockquote', 33827 multiline: 'p' 33828 }, 33829 citation: { 33830 type: 'string', 33831 source: 'html', 33832 selector: 'cite', 33833 default: '' 33834 }, 33835 mainColor: { 33836 type: 'string' 33837 }, 33838 customMainColor: { 33839 type: 'string' 33840 }, 33841 textColor: { 33842 type: 'string' 33843 }, 33844 customTextColor: { 33845 type: 'string' 33846 } 33847 }; 33848 33849 function parseBorderColor(styleString) { 33850 if (!styleString) { 33851 return; 33852 } 33853 33854 const matches = styleString.match(/border-color:([^;]+)[;]?/); 33855 33856 if (matches && matches[1]) { 33857 return matches[1]; 33858 } 33859 } // TODO: this is ripe for a bit of a clean up according to the example in https://developer.wordpress.org/block-editor/reference-guides/block-api/block-deprecation/#example 33860 33861 33862 const pullquote_deprecated_deprecated = [{ 33863 attributes: { ...pullquote_deprecated_blockAttributes 33864 }, 33865 33866 save(_ref) { 33867 let { 33868 attributes 33869 } = _ref; 33870 const { 33871 mainColor, 33872 customMainColor, 33873 customTextColor, 33874 textColor, 33875 value, 33876 citation, 33877 className 33878 } = attributes; 33879 const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS); 33880 let figureClasses, figureStyles; // Is solid color style 33881 33882 if (isSolidColorStyle) { 33883 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor); 33884 figureClasses = classnames_default()({ 33885 'has-background': backgroundClass || customMainColor, 33886 [backgroundClass]: backgroundClass 33887 }); 33888 figureStyles = { 33889 backgroundColor: backgroundClass ? undefined : customMainColor 33890 }; // Is normal style and a custom color is being used ( we can set a style directly with its value) 33891 } else if (customMainColor) { 33892 figureStyles = { 33893 borderColor: customMainColor 33894 }; 33895 } 33896 33897 const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 33898 const blockquoteClasses = classnames_default()({ 33899 'has-text-color': textColor || customTextColor, 33900 [blockquoteTextColorClass]: blockquoteTextColorClass 33901 }); 33902 const blockquoteStyles = blockquoteTextColorClass ? undefined : { 33903 color: customTextColor 33904 }; 33905 return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 33906 className: figureClasses, 33907 style: figureStyles 33908 }), (0,external_wp_element_namespaceObject.createElement)("blockquote", { 33909 className: blockquoteClasses, 33910 style: blockquoteStyles 33911 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 33912 value: value, 33913 multiline: true 33914 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 33915 tagName: "cite", 33916 value: citation 33917 }))); 33918 }, 33919 33920 migrate(_ref2) { 33921 let { 33922 className, 33923 mainColor, 33924 customMainColor, 33925 customTextColor, 33926 ...attributes 33927 } = _ref2; 33928 const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS); 33929 let style; 33930 33931 if (customMainColor) { 33932 if (!isSolidColorStyle) { 33933 // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute. 33934 style = { 33935 border: { 33936 color: customMainColor 33937 } 33938 }; 33939 } else { 33940 // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute. 33941 style = { 33942 color: { 33943 background: customMainColor 33944 } 33945 }; 33946 } 33947 } // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute. 33948 33949 33950 if (customTextColor && style) { 33951 style.color = { ...style.color, 33952 text: customTextColor 33953 }; 33954 } 33955 33956 return { 33957 className, 33958 backgroundColor: isSolidColorStyle ? mainColor : undefined, 33959 borderColor: isSolidColorStyle ? undefined : mainColor, 33960 textAlign: isSolidColorStyle ? 'left' : undefined, 33961 style, 33962 ...attributes 33963 }; 33964 } 33965 33966 }, { 33967 attributes: { ...pullquote_deprecated_blockAttributes, 33968 // figureStyle is an attribute that never existed. 33969 // We are using it as a way to access the styles previously applied to the figure. 33970 figureStyle: { 33971 source: 'attribute', 33972 selector: 'figure', 33973 attribute: 'style' 33974 } 33975 }, 33976 33977 save(_ref3) { 33978 let { 33979 attributes 33980 } = _ref3; 33981 const { 33982 mainColor, 33983 customMainColor, 33984 textColor, 33985 customTextColor, 33986 value, 33987 citation, 33988 className, 33989 figureStyle 33990 } = attributes; 33991 const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS); 33992 let figureClasses, figureStyles; // Is solid color style 33993 33994 if (isSolidColorStyle) { 33995 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor); 33996 figureClasses = classnames_default()({ 33997 'has-background': backgroundClass || customMainColor, 33998 [backgroundClass]: backgroundClass 33999 }); 34000 figureStyles = { 34001 backgroundColor: backgroundClass ? undefined : customMainColor 34002 }; // Is normal style and a custom color is being used ( we can set a style directly with its value) 34003 } else if (customMainColor) { 34004 figureStyles = { 34005 borderColor: customMainColor 34006 }; // If normal style and a named color are being used, we need to retrieve the color value to set the style, 34007 // as there is no expectation that themes create classes that set border colors. 34008 } else if (mainColor) { 34009 // Previously here we queried the color settings to know the color value 34010 // of a named color. This made the save function impure and the block was refactored, 34011 // because meanwhile a change in the editor made it impossible to query color settings in the save function. 34012 // Here instead of querying the color settings to know the color value, we retrieve the value 34013 // directly from the style previously serialized. 34014 const borderColor = parseBorderColor(figureStyle); 34015 figureStyles = { 34016 borderColor 34017 }; 34018 } 34019 34020 const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 34021 const blockquoteClasses = (textColor || customTextColor) && classnames_default()('has-text-color', { 34022 [blockquoteTextColorClass]: blockquoteTextColorClass 34023 }); 34024 const blockquoteStyles = blockquoteTextColorClass ? undefined : { 34025 color: customTextColor 34026 }; 34027 return (0,external_wp_element_namespaceObject.createElement)("figure", { 34028 className: figureClasses, 34029 style: figureStyles 34030 }, (0,external_wp_element_namespaceObject.createElement)("blockquote", { 34031 className: blockquoteClasses, 34032 style: blockquoteStyles 34033 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 34034 value: value, 34035 multiline: true 34036 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 34037 tagName: "cite", 34038 value: citation 34039 }))); 34040 }, 34041 34042 migrate(_ref4) { 34043 let { 34044 className, 34045 figureStyle, 34046 mainColor, 34047 customMainColor, 34048 customTextColor, 34049 ...attributes 34050 } = _ref4; 34051 const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS); 34052 let style; 34053 34054 if (customMainColor) { 34055 if (!isSolidColorStyle) { 34056 // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute. 34057 style = { 34058 border: { 34059 color: customMainColor 34060 } 34061 }; 34062 } else { 34063 // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute. 34064 style = { 34065 color: { 34066 background: customMainColor 34067 } 34068 }; 34069 } 34070 } // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute. 34071 34072 34073 if (customTextColor && style) { 34074 style.color = { ...style.color, 34075 text: customTextColor 34076 }; 34077 } // If is the default style, and a main color is set, 34078 // migrate the main color value into a custom border color. 34079 // The custom border color value is retrieved by parsing the figure styles. 34080 34081 34082 if (!isSolidColorStyle && mainColor && figureStyle) { 34083 const borderColor = parseBorderColor(figureStyle); 34084 34085 if (borderColor) { 34086 return { ...attributes, 34087 className, 34088 // Block supports: Set style.border.color if a deprecated block has `mainColor`, inline border CSS and is not a solid color style. 34089 style: { 34090 border: { 34091 color: borderColor 34092 } 34093 } 34094 }; 34095 } 34096 } 34097 34098 return { 34099 className, 34100 backgroundColor: isSolidColorStyle ? mainColor : undefined, 34101 borderColor: isSolidColorStyle ? undefined : mainColor, 34102 textAlign: isSolidColorStyle ? 'left' : undefined, 34103 style, 34104 ...attributes 34105 }; 34106 } 34107 34108 }, { 34109 attributes: pullquote_deprecated_blockAttributes, 34110 34111 save(_ref5) { 34112 let { 34113 attributes 34114 } = _ref5; 34115 const { 34116 mainColor, 34117 customMainColor, 34118 textColor, 34119 customTextColor, 34120 value, 34121 citation, 34122 className 34123 } = attributes; 34124 const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS); 34125 let figureClass, figureStyles; // Is solid color style 34126 34127 if (isSolidColorStyle) { 34128 figureClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor); 34129 34130 if (!figureClass) { 34131 figureStyles = { 34132 backgroundColor: customMainColor 34133 }; 34134 } // Is normal style and a custom color is being used ( we can set a style directly with its value) 34135 34136 } else if (customMainColor) { 34137 figureStyles = { 34138 borderColor: customMainColor 34139 }; // Is normal style and a named color is being used, we need to retrieve the color value to set the style, 34140 // as there is no expectation that themes create classes that set border colors. 34141 } else if (mainColor) { 34142 const colors = (0,external_lodash_namespaceObject.get)((0,external_wp_data_namespaceObject.select)(external_wp_blockEditor_namespaceObject.store).getSettings(), ['colors'], []); 34143 const colorObject = (0,external_wp_blockEditor_namespaceObject.getColorObjectByAttributeValues)(colors, mainColor); 34144 figureStyles = { 34145 borderColor: colorObject.color 34146 }; 34147 } 34148 34149 const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor); 34150 const blockquoteClasses = textColor || customTextColor ? classnames_default()('has-text-color', { 34151 [blockquoteTextColorClass]: blockquoteTextColorClass 34152 }) : undefined; 34153 const blockquoteStyle = blockquoteTextColorClass ? undefined : { 34154 color: customTextColor 34155 }; 34156 return (0,external_wp_element_namespaceObject.createElement)("figure", { 34157 className: figureClass, 34158 style: figureStyles 34159 }, (0,external_wp_element_namespaceObject.createElement)("blockquote", { 34160 className: blockquoteClasses, 34161 style: blockquoteStyle 34162 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 34163 value: value, 34164 multiline: true 34165 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 34166 tagName: "cite", 34167 value: citation 34168 }))); 34169 }, 34170 34171 migrate(_ref6) { 34172 let { 34173 className, 34174 mainColor, 34175 customMainColor, 34176 customTextColor, 34177 ...attributes 34178 } = _ref6; 34179 const isSolidColorStyle = (0,external_lodash_namespaceObject.includes)(className, SOLID_COLOR_CLASS); 34180 let style = {}; 34181 34182 if (customMainColor) { 34183 if (!isSolidColorStyle) { 34184 // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute. 34185 style = { 34186 border: { 34187 color: customMainColor 34188 } 34189 }; 34190 } else { 34191 // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute. 34192 style = { 34193 color: { 34194 background: customMainColor 34195 } 34196 }; 34197 } 34198 } // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute. 34199 34200 34201 if (customTextColor && style) { 34202 style.color = { ...style.color, 34203 text: customTextColor 34204 }; 34205 } 34206 34207 return { 34208 className, 34209 backgroundColor: isSolidColorStyle ? mainColor : undefined, 34210 borderColor: isSolidColorStyle ? undefined : mainColor, 34211 textAlign: isSolidColorStyle ? 'left' : undefined, 34212 style, 34213 ...attributes 34214 }; 34215 } 34216 34217 }, { 34218 attributes: { ...pullquote_deprecated_blockAttributes 34219 }, 34220 34221 save(_ref7) { 34222 let { 34223 attributes 34224 } = _ref7; 34225 const { 34226 value, 34227 citation 34228 } = attributes; 34229 return (0,external_wp_element_namespaceObject.createElement)("blockquote", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 34230 value: value, 34231 multiline: true 34232 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 34233 tagName: "cite", 34234 value: citation 34235 })); 34236 } 34237 34238 }, { 34239 attributes: { ...pullquote_deprecated_blockAttributes, 34240 citation: { 34241 type: 'string', 34242 source: 'html', 34243 selector: 'footer' 34244 }, 34245 align: { 34246 type: 'string', 34247 default: 'none' 34248 } 34249 }, 34250 34251 save(_ref8) { 34252 let { 34253 attributes 34254 } = _ref8; 34255 const { 34256 value, 34257 citation, 34258 align 34259 } = attributes; 34260 return (0,external_wp_element_namespaceObject.createElement)("blockquote", { 34261 className: `align$align}` 34262 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 34263 value: value, 34264 multiline: true 34265 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 34266 tagName: "footer", 34267 value: citation 34268 })); 34269 } 34270 34271 }]; 34272 /* harmony default export */ var pullquote_deprecated = (pullquote_deprecated_deprecated); 34273 34274 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/figure.js 34275 const Figure = 'figure'; 34276 34277 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/blockquote.js 34278 const BlockQuote = 'blockquote'; 34279 34280 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/edit.js 34281 34282 34283 /** 34284 * External dependencies 34285 */ 34286 34287 /** 34288 * WordPress dependencies 34289 */ 34290 34291 34292 34293 34294 34295 /** 34296 * Internal dependencies 34297 */ 34298 34299 34300 34301 const isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web'; 34302 34303 function PullQuoteEdit(_ref) { 34304 let { 34305 attributes, 34306 setAttributes, 34307 isSelected, 34308 insertBlocksAfter 34309 } = _ref; 34310 const { 34311 textAlign, 34312 citation, 34313 value 34314 } = attributes; 34315 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 34316 className: classnames_default()({ 34317 [`has-text-align-$textAlign}`]: textAlign 34318 }) 34319 }); 34320 const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) || isSelected; 34321 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 34322 group: "block" 34323 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 34324 value: textAlign, 34325 onChange: nextAlign => { 34326 setAttributes({ 34327 textAlign: nextAlign 34328 }); 34329 } 34330 })), (0,external_wp_element_namespaceObject.createElement)(Figure, blockProps, (0,external_wp_element_namespaceObject.createElement)(BlockQuote, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 34331 identifier: "value", 34332 multiline: true, 34333 value: value, 34334 onChange: nextValue => setAttributes({ 34335 value: nextValue 34336 }), 34337 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote text'), 34338 placeholder: // translators: placeholder text used for the quote 34339 (0,external_wp_i18n_namespaceObject.__)('Add quote'), 34340 textAlign: "center" 34341 }), shouldShowCitation && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 34342 identifier: "citation", 34343 tagName: isWebPlatform ? 'cite' : undefined, 34344 style: { 34345 display: 'block' 34346 }, 34347 value: citation, 34348 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote citation text'), 34349 placeholder: // translators: placeholder text used for the citation 34350 (0,external_wp_i18n_namespaceObject.__)('Add citation'), 34351 onChange: nextCitation => setAttributes({ 34352 citation: nextCitation 34353 }), 34354 className: "wp-block-pullquote__citation", 34355 __unstableMobileNoFocusOnMount: true, 34356 textAlign: "center", 34357 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')) 34358 })))); 34359 } 34360 34361 /* harmony default export */ var pullquote_edit = (PullQuoteEdit); 34362 34363 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/save.js 34364 34365 34366 /** 34367 * External dependencies 34368 */ 34369 34370 /** 34371 * WordPress dependencies 34372 */ 34373 34374 34375 function pullquote_save_save(_ref) { 34376 let { 34377 attributes 34378 } = _ref; 34379 const { 34380 textAlign, 34381 citation, 34382 value 34383 } = attributes; 34384 const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation); 34385 return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 34386 className: classnames_default()({ 34387 [`has-text-align-$textAlign}`]: textAlign 34388 }) 34389 }), (0,external_wp_element_namespaceObject.createElement)("blockquote", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 34390 value: value, 34391 multiline: true 34392 }), shouldShowCitation && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 34393 tagName: "cite", 34394 value: citation 34395 }))); 34396 } 34397 34398 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/transforms.js 34399 /** 34400 * WordPress dependencies 34401 */ 34402 34403 34404 const pullquote_transforms_transforms = { 34405 from: [{ 34406 type: 'block', 34407 isMultiBlock: true, 34408 blocks: ['core/paragraph'], 34409 transform: attributes => { 34410 return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', { 34411 value: (0,external_wp_richText_namespaceObject.toHTMLString)({ 34412 value: (0,external_wp_richText_namespaceObject.join)(attributes.map(_ref => { 34413 let { 34414 content 34415 } = _ref; 34416 return (0,external_wp_richText_namespaceObject.create)({ 34417 html: content 34418 }); 34419 }), '\u2028'), 34420 multilineTag: 'p' 34421 }), 34422 anchor: attributes.anchor 34423 }); 34424 } 34425 }, { 34426 type: 'block', 34427 blocks: ['core/heading'], 34428 transform: _ref2 => { 34429 let { 34430 content, 34431 anchor 34432 } = _ref2; 34433 return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', { 34434 value: `<p>$content}</p>`, 34435 anchor 34436 }); 34437 } 34438 }], 34439 to: [{ 34440 type: 'block', 34441 blocks: ['core/paragraph'], 34442 transform: _ref3 => { 34443 let { 34444 value, 34445 citation 34446 } = _ref3; 34447 const paragraphs = []; 34448 34449 if (value && value !== '<p></p>') { 34450 paragraphs.push(...(0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({ 34451 html: value, 34452 multilineTag: 'p' 34453 }), '\u2028').map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 34454 content: (0,external_wp_richText_namespaceObject.toHTMLString)({ 34455 value: piece 34456 }) 34457 }))); 34458 } 34459 34460 if (citation && citation !== '<p></p>') { 34461 paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 34462 content: citation 34463 })); 34464 } 34465 34466 if (paragraphs.length === 0) { 34467 return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 34468 content: '' 34469 }); 34470 } 34471 34472 return paragraphs; 34473 } 34474 }, { 34475 type: 'block', 34476 blocks: ['core/heading'], 34477 transform: _ref4 => { 34478 let { 34479 value, 34480 citation, 34481 ...attrs 34482 } = _ref4; 34483 34484 // If there is no pullquote content, use the citation as the 34485 // content of the resulting heading. A nonexistent citation 34486 // will result in an empty heading. 34487 if (value === '<p></p>') { 34488 return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', { 34489 content: citation 34490 }); 34491 } 34492 34493 const pieces = (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({ 34494 html: value, 34495 multilineTag: 'p' 34496 }), '\u2028'); 34497 const headingBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', { 34498 content: (0,external_wp_richText_namespaceObject.toHTMLString)({ 34499 value: pieces[0] 34500 }) 34501 }); 34502 34503 if (!citation && pieces.length === 1) { 34504 return headingBlock; 34505 } 34506 34507 const quotePieces = pieces.slice(1); 34508 const pullquoteBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', { ...attrs, 34509 citation, 34510 value: (0,external_wp_richText_namespaceObject.toHTMLString)({ 34511 value: quotePieces.length ? (0,external_wp_richText_namespaceObject.join)(pieces.slice(1), '\u2028') : (0,external_wp_richText_namespaceObject.create)(), 34512 multilineTag: 'p' 34513 }) 34514 }); 34515 return [headingBlock, pullquoteBlock]; 34516 } 34517 }] 34518 }; 34519 /* harmony default export */ var pullquote_transforms = (pullquote_transforms_transforms); 34520 34521 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/index.js 34522 /** 34523 * WordPress dependencies 34524 */ 34525 34526 34527 /** 34528 * Internal dependencies 34529 */ 34530 34531 34532 34533 const pullquote_metadata = { 34534 $schema: "https://schemas.wp.org/trunk/block.json", 34535 apiVersion: 2, 34536 name: "core/pullquote", 34537 title: "Pullquote", 34538 category: "text", 34539 description: "Give special visual emphasis to a quote from your text.", 34540 textdomain: "default", 34541 attributes: { 34542 value: { 34543 type: "string", 34544 source: "html", 34545 selector: "blockquote", 34546 multiline: "p", 34547 __experimentalRole: "content" 34548 }, 34549 citation: { 34550 type: "string", 34551 source: "html", 34552 selector: "cite", 34553 "default": "", 34554 __experimentalRole: "content" 34555 }, 34556 textAlign: { 34557 type: "string" 34558 } 34559 }, 34560 supports: { 34561 anchor: true, 34562 align: ["left", "right", "wide", "full"], 34563 color: { 34564 gradients: true, 34565 background: true, 34566 link: true, 34567 __experimentalDefaultControls: { 34568 background: true, 34569 text: true 34570 } 34571 }, 34572 typography: { 34573 fontSize: true, 34574 lineHeight: true, 34575 __experimentalFontStyle: true, 34576 __experimentalFontWeight: true, 34577 __experimentalLetterSpacing: true, 34578 __experimentalTextTransform: true, 34579 __experimentalDefaultControls: { 34580 fontSize: true, 34581 fontAppearance: true 34582 } 34583 }, 34584 __experimentalBorder: { 34585 color: true, 34586 radius: true, 34587 style: true, 34588 width: true, 34589 __experimentalDefaultControls: { 34590 color: true, 34591 radius: true, 34592 style: true, 34593 width: true 34594 } 34595 } 34596 }, 34597 editorStyle: "wp-block-pullquote-editor", 34598 style: "wp-block-pullquote" 34599 }; 34600 34601 34602 const { 34603 name: pullquote_name 34604 } = pullquote_metadata; 34605 34606 const pullquote_settings = { 34607 icon: library_pullquote, 34608 example: { 34609 attributes: { 34610 value: '<p>' + // translators: Quote serving as example for the Pullquote block. Attributed to Matt Mullenweg. 34611 (0,external_wp_i18n_namespaceObject.__)('One of the hardest things to do in technology is disrupt yourself.') + '</p>', 34612 citation: (0,external_wp_i18n_namespaceObject.__)('Matt Mullenweg') 34613 } 34614 }, 34615 transforms: pullquote_transforms, 34616 edit: pullquote_edit, 34617 save: pullquote_save_save, 34618 deprecated: pullquote_deprecated 34619 }; 34620 34621 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/loop.js 34622 34623 34624 /** 34625 * WordPress dependencies 34626 */ 34627 34628 const loop = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 34629 viewBox: "0 0 24 24", 34630 xmlns: "http://www.w3.org/2000/svg" 34631 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 34632 d: "M18.1823 11.6392C18.1823 13.0804 17.0139 14.2487 15.5727 14.2487C14.3579 14.2487 13.335 13.4179 13.0453 12.2922L13.0377 12.2625L13.0278 12.2335L12.3985 10.377L12.3942 10.3785C11.8571 8.64997 10.246 7.39405 8.33961 7.39405C5.99509 7.39405 4.09448 9.29465 4.09448 11.6392C4.09448 13.9837 5.99509 15.8843 8.33961 15.8843C8.88499 15.8843 9.40822 15.781 9.88943 15.5923L9.29212 14.0697C8.99812 14.185 8.67729 14.2487 8.33961 14.2487C6.89838 14.2487 5.73003 13.0804 5.73003 11.6392C5.73003 10.1979 6.89838 9.02959 8.33961 9.02959C9.55444 9.02959 10.5773 9.86046 10.867 10.9862L10.8772 10.9836L11.4695 12.7311C11.9515 14.546 13.6048 15.8843 15.5727 15.8843C17.9172 15.8843 19.8178 13.9837 19.8178 11.6392C19.8178 9.29465 17.9172 7.39404 15.5727 7.39404C15.0287 7.39404 14.5066 7.4968 14.0264 7.6847L14.6223 9.20781C14.9158 9.093 15.2358 9.02959 15.5727 9.02959C17.0139 9.02959 18.1823 10.1979 18.1823 11.6392Z" 34633 })); 34634 /* harmony default export */ var library_loop = (loop); 34635 34636 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/settings.js 34637 34638 34639 /** 34640 * WordPress dependencies 34641 */ 34642 34643 const settings_settings = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 34644 xmlns: "http://www.w3.org/2000/svg", 34645 viewBox: "0 0 24 24" 34646 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 34647 d: "M14.5 13.8c-1.1 0-2.1.7-2.4 1.8H4V17h8.1c.3 1 1.3 1.8 2.4 1.8s2.1-.7 2.4-1.8H20v-1.5h-3.1c-.3-1-1.3-1.7-2.4-1.7zM11.9 7c-.3-1-1.3-1.8-2.4-1.8S7.4 6 7.1 7H4v1.5h3.1c.3 1 1.3 1.8 2.4 1.8s2.1-.7 2.4-1.8H20V7h-8.1z" 34648 })); 34649 /* harmony default export */ var library_settings = (settings_settings); 34650 34651 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/query-toolbar.js 34652 34653 34654 /** 34655 * WordPress dependencies 34656 */ 34657 34658 34659 34660 34661 function QueryToolbar(_ref) { 34662 let { 34663 attributes: { 34664 query, 34665 displayLayout 34666 }, 34667 setQuery, 34668 setDisplayLayout, 34669 openPatternSelectionModal 34670 } = _ref; 34671 const maxPageInputId = (0,external_wp_compose_namespaceObject.useInstanceId)(QueryToolbar, 'blocks-query-pagination-max-page-input'); 34672 const displayLayoutControls = [{ 34673 icon: library_list, 34674 title: (0,external_wp_i18n_namespaceObject.__)('List view'), 34675 onClick: () => setDisplayLayout({ 34676 type: 'list' 34677 }), 34678 isActive: (displayLayout === null || displayLayout === void 0 ? void 0 : displayLayout.type) === 'list' 34679 }, { 34680 icon: library_grid, 34681 title: (0,external_wp_i18n_namespaceObject.__)('Grid view'), 34682 onClick: () => setDisplayLayout({ 34683 type: 'flex', 34684 columns: (displayLayout === null || displayLayout === void 0 ? void 0 : displayLayout.columns) || 3 34685 }), 34686 isActive: (displayLayout === null || displayLayout === void 0 ? void 0 : displayLayout.type) === 'flex' 34687 }]; 34688 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !query.inherit && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { 34689 contentClassName: "block-library-query-toolbar__popover", 34690 renderToggle: _ref2 => { 34691 let { 34692 onToggle 34693 } = _ref2; 34694 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 34695 icon: library_settings, 34696 label: (0,external_wp_i18n_namespaceObject.__)('Display settings'), 34697 onClick: onToggle 34698 }); 34699 }, 34700 renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, { 34701 __unstableInputWidth: "60px", 34702 label: (0,external_wp_i18n_namespaceObject.__)('Items per Page'), 34703 labelPosition: "edge", 34704 min: 1, 34705 max: 100, 34706 onChange: value => { 34707 if (isNaN(value) || value < 1 || value > 100) { 34708 return; 34709 } 34710 34711 setQuery({ 34712 perPage: value 34713 }); 34714 }, 34715 step: "1", 34716 value: query.perPage, 34717 isDragEnabled: false 34718 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, { 34719 __unstableInputWidth: "60px", 34720 label: (0,external_wp_i18n_namespaceObject.__)('Offset'), 34721 labelPosition: "edge", 34722 min: 0, 34723 max: 100, 34724 onChange: value => { 34725 if (isNaN(value) || value < 0 || value > 100) { 34726 return; 34727 } 34728 34729 setQuery({ 34730 offset: value 34731 }); 34732 }, 34733 step: "1", 34734 value: query.offset, 34735 isDragEnabled: false 34736 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, { 34737 id: maxPageInputId, 34738 help: (0,external_wp_i18n_namespaceObject.__)('Limit the pages you want to show, even if the query has more results. To show all pages use 0 (zero).') 34739 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, { 34740 id: maxPageInputId, 34741 __unstableInputWidth: "60px", 34742 label: (0,external_wp_i18n_namespaceObject.__)('Max page to show'), 34743 labelPosition: "edge", 34744 min: 0, 34745 onChange: value => { 34746 if (isNaN(value) || value < 0) { 34747 return; 34748 } 34749 34750 setQuery({ 34751 pages: value 34752 }); 34753 }, 34754 step: "1", 34755 value: query.pages, 34756 isDragEnabled: false 34757 }))) 34758 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { 34759 className: "wp-block-template-part__block-control-group" 34760 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 34761 onClick: openPatternSelectionModal 34762 }, (0,external_wp_i18n_namespaceObject.__)('Replace'))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { 34763 controls: displayLayoutControls 34764 })); 34765 } 34766 34767 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/order-control.js 34768 34769 34770 /** 34771 * WordPress dependencies 34772 */ 34773 34774 34775 const orderOptions = [{ 34776 label: (0,external_wp_i18n_namespaceObject.__)('Newest to oldest'), 34777 value: 'date/desc' 34778 }, { 34779 label: (0,external_wp_i18n_namespaceObject.__)('Oldest to newest'), 34780 value: 'date/asc' 34781 }, { 34782 /* translators: label for ordering posts by title in ascending order */ 34783 label: (0,external_wp_i18n_namespaceObject.__)('A → Z'), 34784 value: 'title/asc' 34785 }, { 34786 /* translators: label for ordering posts by title in descending order */ 34787 label: (0,external_wp_i18n_namespaceObject.__)('Z → A'), 34788 value: 'title/desc' 34789 }]; 34790 34791 function OrderControl(_ref) { 34792 let { 34793 order, 34794 orderBy, 34795 onChange 34796 } = _ref; 34797 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 34798 label: (0,external_wp_i18n_namespaceObject.__)('Order by'), 34799 value: `$orderBy}/$order}`, 34800 options: orderOptions, 34801 onChange: value => { 34802 const [newOrderBy, newOrder] = value.split('/'); 34803 onChange({ 34804 order: newOrder, 34805 orderBy: newOrderBy 34806 }); 34807 } 34808 }); 34809 } 34810 34811 /* harmony default export */ var order_control = (OrderControl); 34812 34813 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/utils.js 34814 /** 34815 * WordPress dependencies 34816 */ 34817 34818 34819 34820 /** 34821 * @typedef IHasNameAndId 34822 * @property {string|number} id The entity's id. 34823 * @property {string} name The entity's name. 34824 */ 34825 34826 /** 34827 * The object used in Query block that contains info and helper mappings 34828 * from an array of IHasNameAndId objects. 34829 * 34830 * @typedef {Object} QueryEntitiesInfo 34831 * @property {IHasNameAndId[]} entities The array of entities. 34832 * @property {Object<string, IHasNameAndId>} mapById Object mapping with the id as key and the entity as value. 34833 * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value. 34834 * @property {string[]} names Array with the entities' names. 34835 */ 34836 34837 /** 34838 * Returns a helper object with mapping from Objects that implement 34839 * the `IHasNameAndId` interface. The returned object is used for 34840 * integration with `FormTokenField` component. 34841 * 34842 * @param {IHasNameAndId[]} entities The entities to extract of helper object. 34843 * @return {QueryEntitiesInfo} The object with the entities information. 34844 */ 34845 34846 const getEntitiesInfo = entities => { 34847 const mapping = entities === null || entities === void 0 ? void 0 : entities.reduce((accumulator, entity) => { 34848 const { 34849 mapById, 34850 mapByName, 34851 names 34852 } = accumulator; 34853 mapById[entity.id] = entity; 34854 mapByName[entity.name] = entity; 34855 names.push(entity.name); 34856 return accumulator; 34857 }, { 34858 mapById: {}, 34859 mapByName: {}, 34860 names: [] 34861 }); 34862 return { 34863 entities, 34864 ...mapping 34865 }; 34866 }; 34867 /** 34868 * Returns a helper object that contains: 34869 * 1. An `options` object from the available post types, to be passed to a `SelectControl`. 34870 * 2. A helper map with available taxonomies per post type. 34871 * 34872 * @return {Object} The helper object related to post types. 34873 */ 34874 34875 const usePostTypes = () => { 34876 const postTypes = (0,external_wp_data_namespaceObject.useSelect)(select => { 34877 var _getPostTypes; 34878 34879 const { 34880 getPostTypes 34881 } = select(external_wp_coreData_namespaceObject.store); 34882 const excludedPostTypes = ['attachment']; 34883 const filteredPostTypes = (_getPostTypes = getPostTypes({ 34884 per_page: -1 34885 })) === null || _getPostTypes === void 0 ? void 0 : _getPostTypes.filter(_ref => { 34886 let { 34887 viewable, 34888 slug 34889 } = _ref; 34890 return viewable && !excludedPostTypes.includes(slug); 34891 }); 34892 return filteredPostTypes; 34893 }, []); 34894 const postTypesTaxonomiesMap = (0,external_wp_element_namespaceObject.useMemo)(() => { 34895 if (!(postTypes !== null && postTypes !== void 0 && postTypes.length)) return; 34896 return postTypes.reduce((accumulator, type) => { 34897 accumulator[type.slug] = type.taxonomies; 34898 return accumulator; 34899 }, {}); 34900 }, [postTypes]); 34901 const postTypesSelectOptions = (0,external_wp_element_namespaceObject.useMemo)(() => (postTypes || []).map(_ref2 => { 34902 let { 34903 labels, 34904 slug 34905 } = _ref2; 34906 return { 34907 label: labels.singular_name, 34908 value: slug 34909 }; 34910 }), [postTypes]); 34911 return { 34912 postTypesTaxonomiesMap, 34913 postTypesSelectOptions 34914 }; 34915 }; 34916 /** 34917 * Hook that returns the taxonomies associated with a specific post type. 34918 * 34919 * @param {string} postType The post type from which to retrieve the associated taxonomies. 34920 * @return {Object[]} An array of the associated taxonomies. 34921 */ 34922 34923 const useTaxonomies = postType => { 34924 const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => { 34925 const { 34926 getTaxonomies 34927 } = select(external_wp_coreData_namespaceObject.store); 34928 const filteredTaxonomies = getTaxonomies({ 34929 type: postType, 34930 per_page: -1, 34931 context: 'view' 34932 }); 34933 return filteredTaxonomies; 34934 }, [postType]); 34935 return taxonomies; 34936 }; 34937 /** 34938 * Recurses over a list of blocks and returns the first found 34939 * Query Loop block's clientId. 34940 * 34941 * @param {WPBlock[]} blocks The list of blocks to look through. 34942 * @return {string=} The first found Query Loop's clientId. 34943 */ 34944 34945 const getFirstQueryClientIdFromBlocks = blocks => { 34946 const blocksQueue = [...blocks]; 34947 34948 while (blocksQueue.length > 0) { 34949 var _block$innerBlocks; 34950 34951 const block = blocksQueue.shift(); 34952 34953 if (block.name === 'core/query') { 34954 return block.clientId; 34955 } 34956 34957 (_block$innerBlocks = block.innerBlocks) === null || _block$innerBlocks === void 0 ? void 0 : _block$innerBlocks.forEach(innerBlock => { 34958 blocksQueue.push(innerBlock); 34959 }); 34960 } 34961 }; 34962 34963 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/author-control.js 34964 34965 34966 /** 34967 * WordPress dependencies 34968 */ 34969 34970 34971 34972 34973 /** 34974 * Internal dependencies 34975 */ 34976 34977 34978 const author_control_AUTHORS_QUERY = { 34979 who: 'authors', 34980 per_page: -1, 34981 _fields: 'id,name', 34982 context: 'view' 34983 }; 34984 34985 function AuthorControl(_ref) { 34986 let { 34987 value, 34988 onChange 34989 } = _ref; 34990 const authorsList = (0,external_wp_data_namespaceObject.useSelect)(select => { 34991 const { 34992 getUsers 34993 } = select(external_wp_coreData_namespaceObject.store); 34994 return getUsers(author_control_AUTHORS_QUERY); 34995 }, []); 34996 34997 if (!authorsList) { 34998 return null; 34999 } 35000 35001 const authorsInfo = getEntitiesInfo(authorsList); 35002 /** 35003 * We need to normalize the value because the block operates on a 35004 * comma(`,`) separated string value and `FormTokenFiels` needs an 35005 * array. 35006 */ 35007 35008 const normalizedValue = !value ? [] : value.toString().split(','); // Returns only the existing authors ids. This prevents the component 35009 // from crashing in the editor, when non existing ids are provided. 35010 35011 const sanitizedValue = normalizedValue.reduce((accumulator, authorId) => { 35012 const author = authorsInfo.mapById[authorId]; 35013 35014 if (author) { 35015 accumulator.push({ 35016 id: authorId, 35017 value: author.name 35018 }); 35019 } 35020 35021 return accumulator; 35022 }, []); 35023 35024 const getIdByValue = (entitiesMappedByName, authorValue) => { 35025 var _entitiesMappedByName; 35026 35027 const id = (authorValue === null || authorValue === void 0 ? void 0 : authorValue.id) || ((_entitiesMappedByName = entitiesMappedByName[authorValue]) === null || _entitiesMappedByName === void 0 ? void 0 : _entitiesMappedByName.id); 35028 if (id) return id; 35029 }; 35030 35031 const onAuthorChange = newValue => { 35032 const ids = Array.from(newValue.reduce((accumulator, author) => { 35033 // Verify that new values point to existing entities. 35034 const id = getIdByValue(authorsInfo.mapByName, author); 35035 if (id) accumulator.add(id); 35036 return accumulator; 35037 }, new Set())); 35038 onChange({ 35039 author: ids.join(',') 35040 }); 35041 }; 35042 35043 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormTokenField, { 35044 label: (0,external_wp_i18n_namespaceObject.__)('Authors'), 35045 value: sanitizedValue, 35046 suggestions: authorsInfo.names, 35047 onChange: onAuthorChange 35048 }); 35049 } 35050 35051 /* harmony default export */ var author_control = (AuthorControl); 35052 35053 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/constants.js 35054 const MAX_FETCHED_TERMS = 100; 35055 const DEFAULTS_POSTS_PER_PAGE = 3; 35056 /* harmony default export */ var constants = ({ 35057 MAX_FETCHED_TERMS, 35058 DEFAULTS_POSTS_PER_PAGE 35059 }); 35060 35061 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/taxonomy-controls.js 35062 35063 35064 /** 35065 * WordPress dependencies 35066 */ 35067 35068 35069 35070 /** 35071 * Internal dependencies 35072 */ 35073 35074 35075 // Helper function to get the term id based on user input in terms `FormTokenField`. 35076 35077 const getTermIdByTermValue = (termsMappedByName, termValue) => { 35078 var _termsMappedByName$te; 35079 35080 // First we check for exact match by `term.id` or case sensitive `term.name` match. 35081 const termId = (termValue === null || termValue === void 0 ? void 0 : termValue.id) || ((_termsMappedByName$te = termsMappedByName[termValue]) === null || _termsMappedByName$te === void 0 ? void 0 : _termsMappedByName$te.id); 35082 if (termId) return termId; 35083 /** 35084 * Here we make an extra check for entered terms in a non case sensitive way, 35085 * to match user expectations, due to `FormTokenField` behaviour that shows 35086 * suggestions which are case insensitive. 35087 * 35088 * Although WP tries to discourage users to add terms with the same name (case insensitive), 35089 * it's still possible if you manually change the name, as long as the terms have different slugs. 35090 * In this edge case we always apply the first match from the terms list. 35091 */ 35092 35093 const termValueLower = termValue.toLocaleLowerCase(); 35094 35095 for (const term in termsMappedByName) { 35096 if (term.toLocaleLowerCase() === termValueLower) { 35097 return termsMappedByName[term].id; 35098 } 35099 } 35100 }; 35101 35102 function TaxonomyControls(_ref) { 35103 let { 35104 onChange, 35105 query 35106 } = _ref; 35107 const taxonomies = useTaxonomies(query.postType); 35108 const taxonomiesInfo = (0,external_wp_data_namespaceObject.useSelect)(select => { 35109 const { 35110 getEntityRecords 35111 } = select(external_wp_coreData_namespaceObject.store); 35112 const termsQuery = { 35113 per_page: MAX_FETCHED_TERMS 35114 }; 35115 35116 const _taxonomiesInfo = taxonomies === null || taxonomies === void 0 ? void 0 : taxonomies.map(_ref2 => { 35117 let { 35118 slug, 35119 name 35120 } = _ref2; 35121 35122 const _terms = getEntityRecords('taxonomy', slug, termsQuery); 35123 35124 return { 35125 slug, 35126 name, 35127 terms: getEntitiesInfo(_terms) 35128 }; 35129 }); 35130 35131 return _taxonomiesInfo; 35132 }, [taxonomies]); 35133 35134 const onTermsChange = taxonomySlug => newTermValues => { 35135 const taxonomyInfo = taxonomiesInfo.find(_ref3 => { 35136 let { 35137 slug 35138 } = _ref3; 35139 return slug === taxonomySlug; 35140 }); 35141 if (!taxonomyInfo) return; 35142 const termIds = Array.from(newTermValues.reduce((accumulator, termValue) => { 35143 const termId = getTermIdByTermValue(taxonomyInfo.terms.mapByName, termValue); 35144 if (termId) accumulator.add(termId); 35145 return accumulator; 35146 }, new Set())); 35147 const newTaxQuery = { ...query.taxQuery, 35148 [taxonomySlug]: termIds 35149 }; 35150 onChange({ 35151 taxQuery: newTaxQuery 35152 }); 35153 }; // Returns only the existing term ids in proper format to be 35154 // used in `FormTokenField`. This prevents the component from 35155 // crashing in the editor, when non existing term ids were provided. 35156 35157 35158 const getExistingTaxQueryValue = taxonomySlug => { 35159 var _query$taxQuery; 35160 35161 const taxonomyInfo = taxonomiesInfo.find(_ref4 => { 35162 let { 35163 slug 35164 } = _ref4; 35165 return slug === taxonomySlug; 35166 }); 35167 if (!taxonomyInfo) return []; 35168 return (((_query$taxQuery = query.taxQuery) === null || _query$taxQuery === void 0 ? void 0 : _query$taxQuery[taxonomySlug]) || []).reduce((accumulator, termId) => { 35169 const term = taxonomyInfo.terms.mapById[termId]; 35170 35171 if (term) { 35172 accumulator.push({ 35173 id: termId, 35174 value: term.name 35175 }); 35176 } 35177 35178 return accumulator; 35179 }, []); 35180 }; 35181 35182 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !!(taxonomiesInfo !== null && taxonomiesInfo !== void 0 && taxonomiesInfo.length) && taxonomiesInfo.map(_ref5 => { 35183 var _terms$names; 35184 35185 let { 35186 slug, 35187 name, 35188 terms 35189 } = _ref5; 35190 35191 if (!(terms !== null && terms !== void 0 && (_terms$names = terms.names) !== null && _terms$names !== void 0 && _terms$names.length)) { 35192 return null; 35193 } 35194 35195 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormTokenField, { 35196 key: slug, 35197 label: name, 35198 value: getExistingTaxQueryValue(slug), 35199 suggestions: terms.names, 35200 onChange: onTermsChange(slug) 35201 }); 35202 })); 35203 } 35204 35205 /* harmony default export */ var taxonomy_controls = (TaxonomyControls); 35206 35207 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/index.js 35208 35209 35210 /** 35211 * External dependencies 35212 */ 35213 35214 /** 35215 * WordPress dependencies 35216 */ 35217 35218 35219 35220 35221 35222 /** 35223 * Internal dependencies 35224 */ 35225 35226 35227 35228 35229 35230 const stickyOptions = [{ 35231 label: (0,external_wp_i18n_namespaceObject.__)('Include'), 35232 value: '' 35233 }, { 35234 label: (0,external_wp_i18n_namespaceObject.__)('Exclude'), 35235 value: 'exclude' 35236 }, { 35237 label: (0,external_wp_i18n_namespaceObject.__)('Only'), 35238 value: 'only' 35239 }]; 35240 function QueryInspectorControls(_ref) { 35241 let { 35242 attributes: { 35243 query, 35244 displayLayout 35245 }, 35246 setQuery, 35247 setDisplayLayout 35248 } = _ref; 35249 const { 35250 order, 35251 orderBy, 35252 author: authorIds, 35253 postType, 35254 sticky, 35255 inherit, 35256 taxQuery 35257 } = query; 35258 const [showSticky, setShowSticky] = (0,external_wp_element_namespaceObject.useState)(postType === 'post'); 35259 const { 35260 postTypesTaxonomiesMap, 35261 postTypesSelectOptions 35262 } = usePostTypes(); 35263 (0,external_wp_element_namespaceObject.useEffect)(() => { 35264 setShowSticky(postType === 'post'); 35265 }, [postType]); 35266 35267 const onPostTypeChange = newValue => { 35268 const updateQuery = { 35269 postType: newValue 35270 }; // We need to dynamically update the `taxQuery` property, 35271 // by removing any not supported taxonomy from the query. 35272 35273 const supportedTaxonomies = postTypesTaxonomiesMap[newValue]; 35274 const updatedTaxQuery = Object.entries(taxQuery || {}).reduce((accumulator, _ref2) => { 35275 let [taxonomySlug, terms] = _ref2; 35276 35277 if (supportedTaxonomies.includes(taxonomySlug)) { 35278 accumulator[taxonomySlug] = terms; 35279 } 35280 35281 return accumulator; 35282 }, {}); 35283 updateQuery.taxQuery = !!Object.keys(updatedTaxQuery).length ? updatedTaxQuery : undefined; 35284 35285 if (newValue !== 'post') { 35286 updateQuery.sticky = ''; 35287 } 35288 35289 setQuery(updateQuery); 35290 }; 35291 35292 const [querySearch, setQuerySearch] = (0,external_wp_element_namespaceObject.useState)(query.search); 35293 const onChangeDebounced = (0,external_wp_element_namespaceObject.useCallback)((0,external_lodash_namespaceObject.debounce)(() => { 35294 if (query.search !== querySearch) { 35295 setQuery({ 35296 search: querySearch 35297 }); 35298 } 35299 }, 250), [querySearch, query.search]); 35300 (0,external_wp_element_namespaceObject.useEffect)(() => { 35301 onChangeDebounced(); 35302 return onChangeDebounced.cancel; 35303 }, [querySearch, onChangeDebounced]); 35304 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 35305 title: (0,external_wp_i18n_namespaceObject.__)('Settings') 35306 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 35307 label: (0,external_wp_i18n_namespaceObject.__)('Inherit query from template'), 35308 help: (0,external_wp_i18n_namespaceObject.__)('Toggle to use the global query context that is set with the current template, such as an archive or search. Disable to customize the settings independently.'), 35309 checked: !!inherit, 35310 onChange: value => setQuery({ 35311 inherit: !!value 35312 }) 35313 }), !inherit && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 35314 options: postTypesSelectOptions, 35315 value: postType, 35316 label: (0,external_wp_i18n_namespaceObject.__)('Post type'), 35317 onChange: onPostTypeChange, 35318 help: (0,external_wp_i18n_namespaceObject.__)('WordPress contains different types of content and they are divided into collections called "Post types". By default there are a few different ones such as blog posts and pages, but plugins could add more.') 35319 }), (displayLayout === null || displayLayout === void 0 ? void 0 : displayLayout.type) === 'flex' && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 35320 label: (0,external_wp_i18n_namespaceObject.__)('Columns'), 35321 value: displayLayout.columns, 35322 onChange: value => setDisplayLayout({ 35323 columns: value 35324 }), 35325 min: 2, 35326 max: Math.max(6, displayLayout.columns) 35327 }), displayLayout.columns > 6 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, { 35328 status: "warning", 35329 isDismissible: false 35330 }, (0,external_wp_i18n_namespaceObject.__)('This column count exceeds the recommended amount and may cause visual breakage.'))), !inherit && (0,external_wp_element_namespaceObject.createElement)(order_control, { 35331 order, 35332 orderBy, 35333 onChange: setQuery 35334 }), showSticky && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 35335 label: (0,external_wp_i18n_namespaceObject.__)('Sticky posts'), 35336 options: stickyOptions, 35337 value: sticky, 35338 onChange: value => setQuery({ 35339 sticky: value 35340 }), 35341 help: (0,external_wp_i18n_namespaceObject.__)('Blog posts can be "stickied", a feature that places them at the top of the front page of posts, keeping it there until new sticky posts are published.') 35342 })), !inherit && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 35343 title: (0,external_wp_i18n_namespaceObject.__)('Filters') 35344 }, (0,external_wp_element_namespaceObject.createElement)(taxonomy_controls, { 35345 onChange: setQuery, 35346 query: query 35347 }), (0,external_wp_element_namespaceObject.createElement)(author_control, { 35348 value: authorIds, 35349 onChange: setQuery 35350 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 35351 label: (0,external_wp_i18n_namespaceObject.__)('Keyword'), 35352 value: querySearch, 35353 onChange: setQuerySearch 35354 }))); 35355 } 35356 35357 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/query-placeholder.js 35358 35359 35360 /** 35361 * WordPress dependencies 35362 */ 35363 35364 35365 35366 35367 function QueryPlaceholder(_ref) { 35368 let { 35369 clientId, 35370 name, 35371 setAttributes, 35372 icon, 35373 label 35374 } = _ref; 35375 const { 35376 defaultVariation, 35377 scopeVariations 35378 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 35379 const { 35380 getBlockVariations, 35381 getBlockType, 35382 getDefaultBlockVariation 35383 } = select(external_wp_blocks_namespaceObject.store); 35384 return { 35385 blockType: getBlockType(name), 35386 defaultVariation: getDefaultBlockVariation(name, 'block'), 35387 scopeVariations: getBlockVariations(name, 'block') 35388 }; 35389 }, [name]); 35390 const { 35391 replaceInnerBlocks 35392 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 35393 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 35394 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockVariationPicker, { 35395 icon: icon, 35396 label: label, 35397 variations: scopeVariations, 35398 onSelect: function () { 35399 let nextVariation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultVariation; 35400 35401 if (nextVariation.attributes) { 35402 setAttributes(nextVariation.attributes); 35403 } 35404 35405 if (nextVariation.innerBlocks) { 35406 replaceInnerBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(nextVariation.innerBlocks), false); 35407 } 35408 } 35409 })); 35410 } 35411 35412 /* harmony default export */ var query_placeholder = (QueryPlaceholder); 35413 35414 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/edit/index.js 35415 35416 35417 35418 /** 35419 * WordPress dependencies 35420 */ 35421 35422 35423 35424 35425 35426 35427 35428 /** 35429 * Internal dependencies 35430 */ 35431 35432 35433 35434 35435 35436 35437 const query_edit_TEMPLATE = [['core/post-template']]; 35438 function QueryContent(_ref) { 35439 let { 35440 attributes, 35441 setAttributes, 35442 openPatternSelectionModal 35443 } = _ref; 35444 const { 35445 queryId, 35446 query, 35447 displayLayout, 35448 tagName: TagName = 'div', 35449 layout = {} 35450 } = attributes; 35451 const { 35452 __unstableMarkNextChangeAsNotPersistent 35453 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 35454 const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(QueryContent); 35455 const { 35456 themeSupportsLayout 35457 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 35458 var _getSettings; 35459 35460 const { 35461 getSettings 35462 } = select(external_wp_blockEditor_namespaceObject.store); 35463 return { 35464 themeSupportsLayout: (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout 35465 }; 35466 }, []); 35467 const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {}; 35468 const usedLayout = !!layout && layout.inherit ? defaultLayout : layout; 35469 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 35470 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, { 35471 template: query_edit_TEMPLATE, 35472 __experimentalLayout: themeSupportsLayout ? usedLayout : undefined 35473 }); 35474 const { 35475 postsPerPage 35476 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 35477 const { 35478 getSettings 35479 } = select(external_wp_blockEditor_namespaceObject.store); 35480 return { 35481 postsPerPage: +getSettings().postsPerPage || DEFAULTS_POSTS_PER_PAGE 35482 }; 35483 }, []); // There are some effects running where some initialization logic is 35484 // happening and setting some values to some attributes (ex. queryId). 35485 // These updates can cause an `undo trap` where undoing will result in 35486 // resetting again, so we need to mark these changes as not persistent 35487 // with `__unstableMarkNextChangeAsNotPersistent`. 35488 // Changes in query property (which is an object) need to be in the same callback, 35489 // because updates are batched after the render and changes in different query properties 35490 // would cause to override previous wanted changes. 35491 35492 (0,external_wp_element_namespaceObject.useEffect)(() => { 35493 const newQuery = {}; 35494 35495 if (!query.perPage && postsPerPage) { 35496 newQuery.perPage = postsPerPage; 35497 } 35498 35499 if (!!Object.keys(newQuery).length) { 35500 __unstableMarkNextChangeAsNotPersistent(); 35501 35502 updateQuery(newQuery); 35503 } 35504 }, [query.perPage]); // We need this for multi-query block pagination. 35505 // Query parameters for each block are scoped to their ID. 35506 35507 (0,external_wp_element_namespaceObject.useEffect)(() => { 35508 if (!Number.isFinite(queryId)) { 35509 __unstableMarkNextChangeAsNotPersistent(); 35510 35511 setAttributes({ 35512 queryId: instanceId 35513 }); 35514 } 35515 }, [queryId, instanceId]); 35516 35517 const updateQuery = newQuery => setAttributes({ 35518 query: { ...query, 35519 ...newQuery 35520 } 35521 }); 35522 35523 const updateDisplayLayout = newDisplayLayout => setAttributes({ 35524 displayLayout: { ...displayLayout, 35525 ...newDisplayLayout 35526 } 35527 }); 35528 35529 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(QueryInspectorControls, { 35530 attributes: attributes, 35531 setQuery: updateQuery, 35532 setDisplayLayout: updateDisplayLayout 35533 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(QueryToolbar, { 35534 attributes: attributes, 35535 setQuery: updateQuery, 35536 setDisplayLayout: updateDisplayLayout, 35537 openPatternSelectionModal: openPatternSelectionModal 35538 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, { 35539 __experimentalGroup: "advanced" 35540 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 35541 label: (0,external_wp_i18n_namespaceObject.__)('HTML element'), 35542 options: [{ 35543 label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'), 35544 value: 'div' 35545 }, { 35546 label: '<main>', 35547 value: 'main' 35548 }, { 35549 label: '<section>', 35550 value: 'section' 35551 }, { 35552 label: '<aside>', 35553 value: 'aside' 35554 }], 35555 value: TagName, 35556 onChange: value => setAttributes({ 35557 tagName: value 35558 }) 35559 })), (0,external_wp_element_namespaceObject.createElement)(TagName, innerBlocksProps)); 35560 } 35561 35562 function QueryPatternSetup(_ref2) { 35563 var _blockType$icon; 35564 35565 let { 35566 attributes, 35567 clientId, 35568 name, 35569 openPatternSelectionModal, 35570 setAttributes 35571 } = _ref2; 35572 const [isStartingBlank, setIsStartingBlank] = (0,external_wp_element_namespaceObject.useState)(false); 35573 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 35574 const { 35575 blockType, 35576 allVariations, 35577 hasPatterns 35578 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 35579 const { 35580 getBlockVariations, 35581 getBlockType 35582 } = select(external_wp_blocks_namespaceObject.store); 35583 const { 35584 getBlockRootClientId, 35585 __experimentalGetPatternsByBlockTypes 35586 } = select(external_wp_blockEditor_namespaceObject.store); 35587 const rootClientId = getBlockRootClientId(clientId); 35588 return { 35589 blockType: getBlockType(name), 35590 allVariations: getBlockVariations(name), 35591 hasPatterns: !!__experimentalGetPatternsByBlockTypes(name, rootClientId).length 35592 }; 35593 }, [name, clientId]); 35594 const matchingVariation = (0,external_wp_blockEditor_namespaceObject.__experimentalGetMatchingVariation)(attributes, allVariations); 35595 const icon = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.icon) || (blockType === null || blockType === void 0 ? void 0 : (_blockType$icon = blockType.icon) === null || _blockType$icon === void 0 ? void 0 : _blockType$icon.src); 35596 const label = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.title) || (blockType === null || blockType === void 0 ? void 0 : blockType.title); 35597 35598 if (isStartingBlank) { 35599 return (0,external_wp_element_namespaceObject.createElement)(query_placeholder, { 35600 clientId: clientId, 35601 name: name, 35602 setAttributes: setAttributes, 35603 icon: icon, 35604 label: label 35605 }); 35606 } 35607 35608 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 35609 icon: icon, 35610 label: label, 35611 instructions: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern for the query loop or start blank.') 35612 }, !!hasPatterns && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 35613 variant: "primary", 35614 onClick: openPatternSelectionModal 35615 }, (0,external_wp_i18n_namespaceObject.__)('Choose')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 35616 variant: "secondary", 35617 onClick: () => { 35618 setIsStartingBlank(true); 35619 } 35620 }, (0,external_wp_i18n_namespaceObject.__)('Start blank')))); 35621 } 35622 35623 const QueryEdit = props => { 35624 const { 35625 clientId, 35626 name 35627 } = props; 35628 const [isPatternSelectionModalOpen, setIsPatternSelectionModalOpen] = (0,external_wp_element_namespaceObject.useState)(false); 35629 const { 35630 replaceBlock, 35631 selectBlock 35632 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 35633 const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_blockEditor_namespaceObject.store).getBlocks(clientId).length, [clientId]); 35634 const Component = hasInnerBlocks ? QueryContent : QueryPatternSetup; 35635 35636 const onBlockPatternSelect = blocks => { 35637 const clonedBlocks = blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)); 35638 const firstQueryClientId = getFirstQueryClientIdFromBlocks(clonedBlocks); 35639 replaceBlock(clientId, clonedBlocks); 35640 35641 if (firstQueryClientId) { 35642 selectBlock(firstQueryClientId); 35643 } 35644 }; 35645 35646 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(Component, _extends({}, props, { 35647 openPatternSelectionModal: () => setIsPatternSelectionModalOpen(true) 35648 })), isPatternSelectionModalOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { 35649 className: "block-editor-query-pattern__selection-modal", 35650 title: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern'), 35651 closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'), 35652 onRequestClose: () => setIsPatternSelectionModalOpen(false) 35653 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternSetup, { 35654 blockName: name, 35655 clientId: clientId, 35656 onBlockPatternSelect: onBlockPatternSelect 35657 }))); 35658 }; 35659 35660 /* harmony default export */ var query_edit = (QueryEdit); 35661 35662 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/save.js 35663 35664 35665 /** 35666 * WordPress dependencies 35667 */ 35668 35669 function QuerySave(_ref) { 35670 let { 35671 attributes: { 35672 tagName: Tag = 'div' 35673 } 35674 } = _ref; 35675 const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save(); 35676 const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps); 35677 return (0,external_wp_element_namespaceObject.createElement)(Tag, innerBlocksProps); 35678 } 35679 35680 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/icons.js 35681 35682 35683 /** 35684 * WordPress dependencies 35685 */ 35686 35687 const titleDate = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 35688 xmlns: "http://www.w3.org/2000/svg", 35689 viewBox: "0 0 48 48" 35690 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 35691 d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zM7 26h12v1H7v-1zm34-5H7v3h34v-3zM7 38h12v1H7v-1zm34-5H7v3h34v-3z" 35692 })); 35693 const titleExcerpt = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 35694 xmlns: "http://www.w3.org/2000/svg", 35695 viewBox: "0 0 48 48" 35696 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 35697 d: "M41 9H7v3h34V9zm-4 5H7v1h30v-1zm4 3H7v1h34v-1zM7 20h30v1H7v-1zm0 12h30v1H7v-1zm34 3H7v1h34v-1zM7 38h30v1H7v-1zm34-11H7v3h34v-3z" 35698 })); 35699 const titleDateExcerpt = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 35700 xmlns: "http://www.w3.org/2000/svg", 35701 viewBox: "0 0 48 48" 35702 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 35703 d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zm22 3H7v1h34v-1zM7 20h34v1H7v-1zm0 12h12v1H7v-1zm34 3H7v1h34v-1zM7 38h34v1H7v-1zm34-11H7v3h34v-3z" 35704 })); 35705 const imageDateTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 35706 xmlns: "http://www.w3.org/2000/svg", 35707 viewBox: "0 0 48 48" 35708 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 35709 d: "M7 9h34v6H7V9zm12 8H7v1h12v-1zm18 3H7v1h30v-1zm0 18H7v1h30v-1zM7 35h12v1H7v-1zm34-8H7v6h34v-6z" 35710 })); 35711 35712 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/variations.js 35713 /** 35714 * WordPress dependencies 35715 */ 35716 35717 35718 /** 35719 * Internal dependencies 35720 */ 35721 35722 35723 const QUERY_DEFAULT_ATTRIBUTES = { 35724 query: { 35725 perPage: 3, 35726 pages: 0, 35727 offset: 0, 35728 postType: 'post', 35729 order: 'desc', 35730 orderBy: 'date', 35731 author: '', 35732 search: '', 35733 exclude: [], 35734 sticky: '', 35735 inherit: false 35736 } 35737 }; 35738 const query_variations_variations = [{ 35739 name: 'posts-list', 35740 title: (0,external_wp_i18n_namespaceObject.__)('Posts List'), 35741 description: (0,external_wp_i18n_namespaceObject.__)('Display a list of your most recent posts, excluding sticky posts.'), 35742 icon: post_list, 35743 attributes: { 35744 query: { 35745 perPage: 4, 35746 pages: 1, 35747 offset: 0, 35748 postType: 'post', 35749 order: 'desc', 35750 orderBy: 'date', 35751 author: '', 35752 search: '', 35753 sticky: 'exclude', 35754 inherit: false 35755 } 35756 }, 35757 scope: ['inserter'] 35758 }, { 35759 name: 'title-date', 35760 title: (0,external_wp_i18n_namespaceObject.__)('Title & Date'), 35761 icon: titleDate, 35762 attributes: { ...QUERY_DEFAULT_ATTRIBUTES 35763 }, 35764 innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date']]], ['core/query-pagination'], ['core/query-no-results']], 35765 scope: ['block'] 35766 }, { 35767 name: 'title-excerpt', 35768 title: (0,external_wp_i18n_namespaceObject.__)('Title & Excerpt'), 35769 icon: titleExcerpt, 35770 attributes: { ...QUERY_DEFAULT_ATTRIBUTES 35771 }, 35772 innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']], 35773 scope: ['block'] 35774 }, { 35775 name: 'title-date-excerpt', 35776 title: (0,external_wp_i18n_namespaceObject.__)('Title, Date, & Excerpt'), 35777 icon: titleDateExcerpt, 35778 attributes: { ...QUERY_DEFAULT_ATTRIBUTES 35779 }, 35780 innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']], 35781 scope: ['block'] 35782 }, { 35783 name: 'image-date-title', 35784 title: (0,external_wp_i18n_namespaceObject.__)('Image, Date, & Title'), 35785 icon: imageDateTitle, 35786 attributes: { ...QUERY_DEFAULT_ATTRIBUTES 35787 }, 35788 innerBlocks: [['core/post-template', {}, [['core/post-featured-image'], ['core/post-date'], ['core/post-title']]], ['core/query-pagination'], ['core/query-no-results']], 35789 scope: ['block'] 35790 }]; 35791 /* harmony default export */ var query_variations = (query_variations_variations); 35792 35793 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/deprecated.js 35794 35795 35796 /** 35797 * External dependencies 35798 */ 35799 35800 /** 35801 * WordPress dependencies 35802 */ 35803 35804 35805 35806 const migrateToTaxQuery = attributes => { 35807 var _query$categoryIds, _query$tagIds; 35808 35809 const { 35810 query 35811 } = attributes; 35812 const newQuery = { ...(0,external_lodash_namespaceObject.omit)(query, ['categoryIds', 'tagIds']) 35813 }; 35814 35815 if ((_query$categoryIds = query.categoryIds) !== null && _query$categoryIds !== void 0 && _query$categoryIds.length || (_query$tagIds = query.tagIds) !== null && _query$tagIds !== void 0 && _query$tagIds.length) { 35816 var _query$categoryIds2, _query$tagIds2; 35817 35818 newQuery.taxQuery = { 35819 category: !!((_query$categoryIds2 = query.categoryIds) !== null && _query$categoryIds2 !== void 0 && _query$categoryIds2.length) ? query.categoryIds : undefined, 35820 post_tag: !!((_query$tagIds2 = query.tagIds) !== null && _query$tagIds2 !== void 0 && _query$tagIds2.length) ? query.tagIds : undefined 35821 }; 35822 } 35823 35824 return { ...attributes, 35825 query: newQuery 35826 }; 35827 }; 35828 35829 const query_deprecated_deprecated = [// Version with `categoryIds and tagIds`. 35830 { 35831 attributes: { 35832 queryId: { 35833 type: 'number' 35834 }, 35835 query: { 35836 type: 'object', 35837 default: { 35838 perPage: null, 35839 pages: 0, 35840 offset: 0, 35841 postType: 'post', 35842 categoryIds: [], 35843 tagIds: [], 35844 order: 'desc', 35845 orderBy: 'date', 35846 author: '', 35847 search: '', 35848 exclude: [], 35849 sticky: '', 35850 inherit: true 35851 } 35852 }, 35853 tagName: { 35854 type: 'string', 35855 default: 'div' 35856 }, 35857 displayLayout: { 35858 type: 'object', 35859 default: { 35860 type: 'list' 35861 } 35862 } 35863 }, 35864 supports: { 35865 align: ['wide', 'full'], 35866 html: false, 35867 color: { 35868 gradients: true, 35869 link: true 35870 }, 35871 __experimentalLayout: true 35872 }, 35873 isEligible: _ref => { 35874 let { 35875 query: { 35876 categoryIds, 35877 tagIds 35878 } = {} 35879 } = _ref; 35880 return categoryIds || tagIds; 35881 }, 35882 migrate: migrateToTaxQuery, 35883 35884 save(_ref2) { 35885 let { 35886 attributes: { 35887 tagName: Tag = 'div' 35888 } 35889 } = _ref2; 35890 const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save(); 35891 const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps); 35892 return (0,external_wp_element_namespaceObject.createElement)(Tag, innerBlocksProps); 35893 } 35894 35895 }, // Version with NO wrapper `div` element. 35896 { 35897 attributes: { 35898 queryId: { 35899 type: 'number' 35900 }, 35901 query: { 35902 type: 'object', 35903 default: { 35904 perPage: null, 35905 pages: 0, 35906 offset: 0, 35907 postType: 'post', 35908 categoryIds: [], 35909 tagIds: [], 35910 order: 'desc', 35911 orderBy: 'date', 35912 author: '', 35913 search: '', 35914 exclude: [], 35915 sticky: '', 35916 inherit: true 35917 } 35918 }, 35919 layout: { 35920 type: 'object', 35921 default: { 35922 type: 'list' 35923 } 35924 } 35925 }, 35926 supports: { 35927 html: false 35928 }, 35929 35930 migrate(attributes) { 35931 const withTaxQuery = migrateToTaxQuery(attributes); 35932 return { ...(0,external_lodash_namespaceObject.omit)(withTaxQuery, ['layout']), 35933 displayLayout: withTaxQuery.layout 35934 }; 35935 }, 35936 35937 save() { 35938 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 35939 } 35940 35941 }]; 35942 /* harmony default export */ var query_deprecated = (query_deprecated_deprecated); 35943 35944 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/hooks.js 35945 35946 35947 35948 /** 35949 * WordPress dependencies 35950 */ 35951 35952 35953 35954 35955 35956 35957 const CreateNewPostLink = _ref => { 35958 let { 35959 attributes: { 35960 query: { 35961 postType 35962 } = {} 35963 } = {} 35964 } = _ref; 35965 if (!postType) return null; 35966 const newPostUrl = (0,external_wp_url_namespaceObject.addQueryArgs)('post-new.php', { 35967 post_type: postType 35968 }); 35969 return (0,external_wp_element_namespaceObject.createElement)("div", { 35970 className: "wp-block-query__create-new-link" 35971 }, (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('<a>Create a new post</a> for this feed.'), // eslint-disable-next-line jsx-a11y/anchor-has-content 35972 { 35973 a: (0,external_wp_element_namespaceObject.createElement)("a", { 35974 href: newPostUrl 35975 }) 35976 })); 35977 }; 35978 /** 35979 * Override the default edit UI to include layout controls 35980 * 35981 * @param {Function} BlockEdit Original component 35982 * @return {Function} Wrapped component 35983 */ 35984 35985 35986 const queryTopInspectorControls = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { 35987 const { 35988 name, 35989 isSelected 35990 } = props; 35991 35992 if (name !== 'core/query' || !isSelected) { 35993 return (0,external_wp_element_namespaceObject.createElement)(BlockEdit, _extends({ 35994 key: "edit" 35995 }, props)); 35996 } 35997 35998 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(CreateNewPostLink, props)), (0,external_wp_element_namespaceObject.createElement)(BlockEdit, _extends({ 35999 key: "edit" 36000 }, props))); 36001 }, 'withInspectorControls'); 36002 /* harmony default export */ var query_hooks = (queryTopInspectorControls); 36003 36004 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query/index.js 36005 /** 36006 * WordPress dependencies 36007 */ 36008 36009 36010 /** 36011 * Internal dependencies 36012 */ 36013 36014 const query_metadata = { 36015 $schema: "https://schemas.wp.org/trunk/block.json", 36016 apiVersion: 2, 36017 name: "core/query", 36018 title: "Query Loop", 36019 category: "theme", 36020 description: "An advanced block that allows displaying post types based on different query parameters and visual configurations.", 36021 textdomain: "default", 36022 attributes: { 36023 queryId: { 36024 type: "number" 36025 }, 36026 query: { 36027 type: "object", 36028 "default": { 36029 perPage: null, 36030 pages: 0, 36031 offset: 0, 36032 postType: "post", 36033 order: "desc", 36034 orderBy: "date", 36035 author: "", 36036 search: "", 36037 exclude: [], 36038 sticky: "", 36039 inherit: true, 36040 taxQuery: null 36041 } 36042 }, 36043 tagName: { 36044 type: "string", 36045 "default": "div" 36046 }, 36047 displayLayout: { 36048 type: "object", 36049 "default": { 36050 type: "list" 36051 } 36052 } 36053 }, 36054 providesContext: { 36055 queryId: "queryId", 36056 query: "query", 36057 displayLayout: "displayLayout" 36058 }, 36059 supports: { 36060 align: ["wide", "full"], 36061 html: false, 36062 color: { 36063 gradients: true, 36064 link: true, 36065 __experimentalDefaultControls: { 36066 background: true, 36067 text: true 36068 } 36069 }, 36070 __experimentalLayout: true 36071 }, 36072 editorStyle: "wp-block-query-editor" 36073 }; 36074 36075 36076 36077 36078 36079 const { 36080 name: query_name 36081 } = query_metadata; 36082 36083 const query_settings = { 36084 icon: library_loop, 36085 edit: query_edit, 36086 save: QuerySave, 36087 variations: query_variations, 36088 deprecated: query_deprecated 36089 }; // Importing this file includes side effects and is whitelisted 36090 // in block-library/package.json under `sideEffects`. 36091 36092 (0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/query', query_hooks); 36093 36094 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/edit.js 36095 36096 36097 /** 36098 * WordPress dependencies 36099 */ 36100 36101 36102 const query_no_results_edit_TEMPLATE = [['core/paragraph', { 36103 placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text or blocks that will display when the query returns no results.') 36104 }]]; 36105 function QueryNoResultsEdit() { 36106 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 36107 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, { 36108 template: query_no_results_edit_TEMPLATE 36109 }); 36110 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps)); 36111 } 36112 36113 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/save.js 36114 36115 36116 /** 36117 * WordPress dependencies 36118 */ 36119 36120 function QueryNoResultsSave() { 36121 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 36122 } 36123 36124 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-no-results/index.js 36125 /** 36126 * WordPress dependencies 36127 */ 36128 36129 /** 36130 * Internal dependencies 36131 */ 36132 36133 const query_no_results_metadata = { 36134 $schema: "https://schemas.wp.org/trunk/block.json", 36135 apiVersion: 2, 36136 name: "core/query-no-results", 36137 title: "No results", 36138 category: "theme", 36139 description: "Contains the block elements used to render content when no query results are found.", 36140 parent: ["core/query"], 36141 textdomain: "default", 36142 usesContext: ["queryId", "query"], 36143 supports: { 36144 align: true, 36145 reusable: false, 36146 html: false, 36147 color: { 36148 gradients: true, 36149 link: true 36150 } 36151 } 36152 }; 36153 36154 36155 const { 36156 name: query_no_results_name 36157 } = query_no_results_metadata; 36158 36159 const query_no_results_settings = { 36160 icon: library_loop, 36161 edit: QueryNoResultsEdit, 36162 save: QueryNoResultsSave 36163 }; 36164 36165 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/query-pagination-arrow-controls.js 36166 36167 36168 /** 36169 * WordPress dependencies 36170 */ 36171 36172 36173 function QueryPaginationArrowControls(_ref) { 36174 let { 36175 value, 36176 onChange 36177 } = _ref; 36178 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { 36179 label: (0,external_wp_i18n_namespaceObject.__)('Arrow'), 36180 value: value, 36181 onChange: onChange, 36182 help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow appended to the next and previous page link.'), 36183 isBlock: true 36184 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 36185 value: "none", 36186 label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Query Pagination Next/Previous blocks') 36187 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 36188 value: "arrow", 36189 label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Query Pagination Next/Previous blocks') 36190 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { 36191 value: "chevron", 36192 label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Query Pagination Next/Previous blocks') 36193 })); 36194 } 36195 36196 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/edit.js 36197 36198 36199 /** 36200 * WordPress dependencies 36201 */ 36202 36203 36204 36205 36206 36207 /** 36208 * Internal dependencies 36209 */ 36210 36211 36212 const query_pagination_edit_TEMPLATE = [['core/query-pagination-previous'], ['core/query-pagination-numbers'], ['core/query-pagination-next']]; 36213 36214 const edit_getDefaultBlockLayout = blockTypeOrName => { 36215 const layoutBlockSupportConfig = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockTypeOrName, '__experimentalLayout'); 36216 return layoutBlockSupportConfig === null || layoutBlockSupportConfig === void 0 ? void 0 : layoutBlockSupportConfig.default; 36217 }; 36218 36219 function edit_QueryPaginationEdit(_ref) { 36220 let { 36221 attributes: { 36222 paginationArrow, 36223 layout 36224 }, 36225 setAttributes, 36226 clientId, 36227 name 36228 } = _ref; 36229 const usedLayout = layout || edit_getDefaultBlockLayout(name); 36230 const hasNextPreviousBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => { 36231 const { 36232 getBlocks 36233 } = select(external_wp_blockEditor_namespaceObject.store); 36234 const innerBlocks = getBlocks(clientId); 36235 /** 36236 * Show the `paginationArrow` control only if a 36237 * `QueryPaginationNext/Previous` block exists. 36238 */ 36239 36240 return innerBlocks === null || innerBlocks === void 0 ? void 0 : innerBlocks.find(innerBlock => { 36241 return ['core/query-pagination-next', 'core/query-pagination-previous'].includes(innerBlock.name); 36242 }); 36243 }, []); 36244 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 36245 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, { 36246 template: query_pagination_edit_TEMPLATE, 36247 allowedBlocks: ['core/query-pagination-previous', 'core/query-pagination-numbers', 'core/query-pagination-next'], 36248 __experimentalLayout: usedLayout 36249 }); 36250 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, hasNextPreviousBlocks && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 36251 title: (0,external_wp_i18n_namespaceObject.__)('Settings') 36252 }, (0,external_wp_element_namespaceObject.createElement)(QueryPaginationArrowControls, { 36253 value: paginationArrow, 36254 onChange: value => { 36255 setAttributes({ 36256 paginationArrow: value 36257 }); 36258 } 36259 }))), (0,external_wp_element_namespaceObject.createElement)("nav", innerBlocksProps)); 36260 } 36261 36262 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/save.js 36263 36264 36265 /** 36266 * WordPress dependencies 36267 */ 36268 36269 function query_pagination_save_save() { 36270 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null); 36271 } 36272 36273 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/deprecated.js 36274 36275 36276 /** 36277 * WordPress dependencies 36278 */ 36279 36280 const query_pagination_deprecated_deprecated = [// Version with wrapper `div` element. 36281 { 36282 save() { 36283 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)); 36284 } 36285 36286 }]; 36287 /* harmony default export */ var query_pagination_deprecated = (query_pagination_deprecated_deprecated); 36288 36289 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination/index.js 36290 /** 36291 * WordPress dependencies 36292 */ 36293 36294 /** 36295 * Internal dependencies 36296 */ 36297 36298 const query_pagination_metadata = { 36299 $schema: "https://schemas.wp.org/trunk/block.json", 36300 apiVersion: 2, 36301 name: "core/query-pagination", 36302 title: "Pagination", 36303 category: "theme", 36304 parent: ["core/query"], 36305 description: "Displays a paginated navigation to next/previous set of posts, when applicable.", 36306 textdomain: "default", 36307 attributes: { 36308 paginationArrow: { 36309 type: "string", 36310 "default": "none" 36311 } 36312 }, 36313 usesContext: ["queryId", "query"], 36314 providesContext: { 36315 paginationArrow: "paginationArrow" 36316 }, 36317 supports: { 36318 align: true, 36319 reusable: false, 36320 html: false, 36321 color: { 36322 gradients: true, 36323 link: true, 36324 __experimentalDefaultControls: { 36325 background: true, 36326 text: true, 36327 link: true 36328 } 36329 }, 36330 __experimentalLayout: { 36331 allowSwitching: false, 36332 allowInheriting: false, 36333 "default": { 36334 type: "flex" 36335 } 36336 } 36337 }, 36338 editorStyle: "wp-block-query-pagination-editor", 36339 style: "wp-block-query-pagination" 36340 }; 36341 36342 36343 36344 const { 36345 name: query_pagination_name 36346 } = query_pagination_metadata; 36347 36348 const query_pagination_settings = { 36349 icon: query_pagination, 36350 edit: edit_QueryPaginationEdit, 36351 save: query_pagination_save_save, 36352 deprecated: query_pagination_deprecated 36353 }; 36354 36355 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/edit.js 36356 36357 36358 36359 /** 36360 * WordPress dependencies 36361 */ 36362 36363 36364 const query_pagination_next_edit_arrowMap = { 36365 none: '', 36366 arrow: '→', 36367 chevron: '»' 36368 }; 36369 function QueryPaginationNextEdit(_ref) { 36370 let { 36371 attributes: { 36372 label 36373 }, 36374 setAttributes, 36375 context: { 36376 paginationArrow 36377 } 36378 } = _ref; 36379 const displayArrow = query_pagination_next_edit_arrowMap[paginationArrow]; 36380 return (0,external_wp_element_namespaceObject.createElement)("a", _extends({ 36381 href: "#pagination-next-pseudo-link", 36382 onClick: event => event.preventDefault() 36383 }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, { 36384 __experimentalVersion: 2, 36385 tagName: "span", 36386 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Next page link'), 36387 placeholder: (0,external_wp_i18n_namespaceObject.__)('Next Page'), 36388 value: label, 36389 onChange: newLabel => setAttributes({ 36390 label: newLabel 36391 }) 36392 }), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", { 36393 className: `wp-block-query-pagination-next-arrow is-arrow-$paginationArrow}` 36394 }, displayArrow)); 36395 } 36396 36397 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-next/index.js 36398 /** 36399 * WordPress dependencies 36400 */ 36401 36402 /** 36403 * Internal dependencies 36404 */ 36405 36406 const query_pagination_next_metadata = { 36407 $schema: "https://schemas.wp.org/trunk/block.json", 36408 apiVersion: 2, 36409 name: "core/query-pagination-next", 36410 title: "Next Page", 36411 category: "theme", 36412 parent: ["core/query-pagination"], 36413 description: "Displays the next posts page link.", 36414 textdomain: "default", 36415 attributes: { 36416 label: { 36417 type: "string" 36418 } 36419 }, 36420 usesContext: ["queryId", "query", "paginationArrow"], 36421 supports: { 36422 reusable: false, 36423 html: false, 36424 color: { 36425 gradients: true, 36426 text: false, 36427 __experimentalDefaultControls: { 36428 background: true 36429 } 36430 }, 36431 typography: { 36432 fontSize: true, 36433 lineHeight: true, 36434 __experimentalFontStyle: true, 36435 __experimentalFontWeight: true, 36436 __experimentalLetterSpacing: true, 36437 __experimentalTextTransform: true, 36438 __experimentalDefaultControls: { 36439 fontSize: true 36440 } 36441 } 36442 } 36443 }; 36444 36445 const { 36446 name: query_pagination_next_name 36447 } = query_pagination_next_metadata; 36448 36449 const query_pagination_next_settings = { 36450 icon: query_pagination_next, 36451 edit: QueryPaginationNextEdit 36452 }; 36453 36454 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/edit.js 36455 36456 36457 /** 36458 * WordPress dependencies 36459 */ 36460 36461 36462 const createPaginationItem = function (content) { 36463 let Tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'a'; 36464 let extraClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; 36465 return (0,external_wp_element_namespaceObject.createElement)(Tag, { 36466 className: `page-numbers $extraClass}` 36467 }, content); 36468 }; 36469 36470 const previewPaginationNumbers = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, createPaginationItem(1), createPaginationItem(2), createPaginationItem(3, 'span', 'current'), createPaginationItem(4), createPaginationItem(5), createPaginationItem('...', 'span', 'dots'), createPaginationItem(8)); 36471 36472 function QueryPaginationNumbersEdit() { 36473 const paginationNumbers = previewPaginationNumbers(); 36474 return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), paginationNumbers); 36475 } 36476 36477 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/index.js 36478 /** 36479 * WordPress dependencies 36480 */ 36481 36482 /** 36483 * Internal dependencies 36484 */ 36485 36486 const query_pagination_numbers_metadata = { 36487 $schema: "https://schemas.wp.org/trunk/block.json", 36488 apiVersion: 2, 36489 name: "core/query-pagination-numbers", 36490 title: "Page Numbers", 36491 category: "theme", 36492 parent: ["core/query-pagination"], 36493 description: "Displays a list of page numbers for pagination", 36494 textdomain: "default", 36495 usesContext: ["queryId", "query"], 36496 supports: { 36497 reusable: false, 36498 html: false, 36499 color: { 36500 gradients: true, 36501 text: false, 36502 __experimentalDefaultControls: { 36503 background: true 36504 } 36505 }, 36506 typography: { 36507 fontSize: true, 36508 lineHeight: true, 36509 __experimentalFontStyle: true, 36510 __experimentalFontWeight: true, 36511 __experimentalLetterSpacing: true, 36512 __experimentalTextTransform: true, 36513 __experimentalDefaultControls: { 36514 fontSize: true 36515 } 36516 } 36517 }, 36518 editorStyle: "query-pagination-numbers-editor" 36519 }; 36520 36521 const { 36522 name: query_pagination_numbers_name 36523 } = query_pagination_numbers_metadata; 36524 36525 const query_pagination_numbers_settings = { 36526 icon: query_pagination_numbers, 36527 edit: QueryPaginationNumbersEdit 36528 }; 36529 36530 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/edit.js 36531 36532 36533 36534 /** 36535 * WordPress dependencies 36536 */ 36537 36538 36539 const query_pagination_previous_edit_arrowMap = { 36540 none: '', 36541 arrow: '←', 36542 chevron: '«' 36543 }; 36544 function QueryPaginationPreviousEdit(_ref) { 36545 let { 36546 attributes: { 36547 label 36548 }, 36549 setAttributes, 36550 context: { 36551 paginationArrow 36552 } 36553 } = _ref; 36554 const displayArrow = query_pagination_previous_edit_arrowMap[paginationArrow]; 36555 return (0,external_wp_element_namespaceObject.createElement)("a", _extends({ 36556 href: "#pagination-previous-pseudo-link", 36557 onClick: event => event.preventDefault() 36558 }, (0,external_wp_blockEditor_namespaceObject.useBlockProps)()), displayArrow && (0,external_wp_element_namespaceObject.createElement)("span", { 36559 className: `wp-block-query-pagination-previous-arrow is-arrow-$paginationArrow}` 36560 }, displayArrow), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, { 36561 __experimentalVersion: 2, 36562 tagName: "span", 36563 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Previous page link'), 36564 placeholder: (0,external_wp_i18n_namespaceObject.__)('Previous Page'), 36565 value: label, 36566 onChange: newLabel => setAttributes({ 36567 label: newLabel 36568 }) 36569 })); 36570 } 36571 36572 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/index.js 36573 /** 36574 * WordPress dependencies 36575 */ 36576 36577 /** 36578 * Internal dependencies 36579 */ 36580 36581 const query_pagination_previous_metadata = { 36582 $schema: "https://schemas.wp.org/trunk/block.json", 36583 apiVersion: 2, 36584 name: "core/query-pagination-previous", 36585 title: "Previous Page", 36586 category: "theme", 36587 parent: ["core/query-pagination"], 36588 description: "Displays the previous posts page link.", 36589 textdomain: "default", 36590 attributes: { 36591 label: { 36592 type: "string" 36593 } 36594 }, 36595 usesContext: ["queryId", "query", "paginationArrow"], 36596 supports: { 36597 reusable: false, 36598 html: false, 36599 color: { 36600 gradients: true, 36601 text: false, 36602 __experimentalDefaultControls: { 36603 background: true 36604 } 36605 }, 36606 typography: { 36607 fontSize: true, 36608 lineHeight: true, 36609 __experimentalFontStyle: true, 36610 __experimentalFontWeight: true, 36611 __experimentalLetterSpacing: true, 36612 __experimentalTextTransform: true, 36613 __experimentalDefaultControls: { 36614 fontSize: true 36615 } 36616 } 36617 } 36618 }; 36619 36620 const { 36621 name: query_pagination_previous_name 36622 } = query_pagination_previous_metadata; 36623 36624 const query_pagination_previous_settings = { 36625 icon: query_pagination_previous, 36626 edit: QueryPaginationPreviousEdit 36627 }; 36628 36629 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/edit.js 36630 36631 36632 /** 36633 * External dependencies 36634 */ 36635 36636 /** 36637 * WordPress dependencies 36638 */ 36639 36640 36641 36642 /** 36643 * Internal dependencies 36644 */ 36645 36646 36647 const SUPPORTED_TYPES = ['archive']; 36648 function QueryTitleEdit(_ref) { 36649 let { 36650 attributes: { 36651 type, 36652 level, 36653 textAlign 36654 }, 36655 setAttributes 36656 } = _ref; 36657 const TagName = `h$level}`; 36658 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 36659 className: classnames_default()({ 36660 [`has-text-align-$textAlign}`]: textAlign, 36661 'wp-block-query-title__placeholder': type === 'archive' 36662 }) 36663 }); // The plan is to augment this block with more 36664 // block variations like `Search Title`. 36665 36666 if (!SUPPORTED_TYPES.includes(type)) { 36667 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Provided type is not supported.'))); 36668 } 36669 36670 let titleElement; 36671 36672 if (type === 'archive') { 36673 titleElement = (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_i18n_namespaceObject.__)('Archive title')); 36674 } 36675 36676 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 36677 group: "block" 36678 }, (0,external_wp_element_namespaceObject.createElement)(HeadingLevelDropdown, { 36679 selectedLevel: level, 36680 onChange: newLevel => setAttributes({ 36681 level: newLevel 36682 }) 36683 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 36684 value: textAlign, 36685 onChange: nextAlign => { 36686 setAttributes({ 36687 textAlign: nextAlign 36688 }); 36689 } 36690 })), titleElement); 36691 } 36692 36693 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/archive-title.js 36694 36695 36696 /** 36697 * WordPress dependencies 36698 */ 36699 36700 const archiveTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 36701 viewBox: "0 0 24 24", 36702 xmlns: "http://www.w3.org/2000/svg" 36703 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 36704 d: "M6.08 10.103h2.914L9.657 12h1.417L8.23 4H6.846L4 12h1.417l.663-1.897Zm1.463-4.137.994 2.857h-2l1.006-2.857ZM20 16H4v-1.5h16V16Zm-7 4H4v-1.5h9V20Z" 36705 })); 36706 /* harmony default export */ var archive_title = (archiveTitle); 36707 36708 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/variations.js 36709 /** 36710 * WordPress dependencies 36711 */ 36712 36713 36714 const query_title_variations_variations = [{ 36715 isDefault: true, 36716 name: 'archive-title', 36717 title: (0,external_wp_i18n_namespaceObject.__)('Archive Title'), 36718 description: (0,external_wp_i18n_namespaceObject.__)('Display the archive title based on the queried object.'), 36719 icon: archive_title, 36720 attributes: { 36721 type: 'archive' 36722 }, 36723 scope: ['inserter'] 36724 }]; 36725 /** 36726 * Add `isActive` function to all `query-title` variations, if not defined. 36727 * `isActive` function is used to find a variation match from a created 36728 * Block by providing its attributes. 36729 */ 36730 36731 query_title_variations_variations.forEach(variation => { 36732 if (variation.isActive) return; 36733 36734 variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type; 36735 }); 36736 /* harmony default export */ var query_title_variations = (query_title_variations_variations); 36737 36738 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/deprecated.js 36739 /** 36740 * Internal dependencies 36741 */ 36742 36743 const query_title_deprecated_v1 = { 36744 attributes: { 36745 type: { 36746 type: 'string' 36747 }, 36748 textAlign: { 36749 type: 'string' 36750 }, 36751 level: { 36752 type: 'number', 36753 default: 1 36754 } 36755 }, 36756 supports: { 36757 align: ['wide', 'full'], 36758 html: false, 36759 color: { 36760 gradients: true 36761 }, 36762 spacing: { 36763 margin: true 36764 }, 36765 typography: { 36766 fontSize: true, 36767 lineHeight: true, 36768 __experimentalFontFamily: true 36769 } 36770 }, 36771 36772 save() { 36773 return null; 36774 }, 36775 36776 migrate: migrate_font_family, 36777 36778 isEligible(_ref) { 36779 var _style$typography; 36780 36781 let { 36782 style 36783 } = _ref; 36784 return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily; 36785 } 36786 36787 }; 36788 /** 36789 * New deprecations need to be placed first 36790 * for them to have higher priority. 36791 * 36792 * Old deprecations may need to be updated as well. 36793 * 36794 * See block-deprecation.md 36795 */ 36796 36797 /* harmony default export */ var query_title_deprecated = ([query_title_deprecated_v1]); 36798 36799 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/query-title.js 36800 36801 36802 /** 36803 * WordPress dependencies 36804 */ 36805 36806 const queryTitle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 36807 viewBox: "0 0 24 24", 36808 xmlns: "http://www.w3.org/2000/svg" 36809 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 36810 d: "M4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4zm1.3-2.9c.6.3 1.3.5 2 .5.8 0 1.4-.2 2-.5.1 0 .1-.1.2-.2l.8.7.9-1-.8-.7.3-.3a5.09 5.09 0 0 0 0-4.4c-.2-.6-.7-1-1.3-1.4-.6-.3-1.3-.5-2-.5-.8 0-1.4.2-2 .5-.7.4-1.1.8-1.5 1.5-.3.6-.5 1.3-.5 2.2 0 .8.2 1.6.5 2.2.4.6.8 1.1 1.4 1.4zm-.1-5c.2-.4.5-.7.8-1s.8-.4 1.3-.4 1 .1 1.3.4.6.6.8 1c.3.4.4.8.4 1.4 0 .5-.1 1-.3 1.4v.1l-1-.9-.9 1 .9.9c-.3.2-.7.3-1.2.3s-1-.1-1.3-.4c-.4-.2-.6-.6-.8-1C5 9 4.9 8.5 4.9 8c0-.6.1-1 .3-1.4z" 36811 })); 36812 /* harmony default export */ var query_title = (queryTitle); 36813 36814 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/query-title/index.js 36815 /** 36816 * Internal dependencies 36817 */ 36818 const query_title_metadata = { 36819 $schema: "https://schemas.wp.org/trunk/block.json", 36820 apiVersion: 2, 36821 name: "core/query-title", 36822 title: "Query Title", 36823 category: "theme", 36824 description: "Display the query title.", 36825 textdomain: "default", 36826 attributes: { 36827 type: { 36828 type: "string" 36829 }, 36830 textAlign: { 36831 type: "string" 36832 }, 36833 level: { 36834 type: "number", 36835 "default": 1 36836 } 36837 }, 36838 supports: { 36839 align: ["wide", "full"], 36840 html: false, 36841 color: { 36842 gradients: true, 36843 __experimentalDefaultControls: { 36844 background: true, 36845 text: true 36846 } 36847 }, 36848 spacing: { 36849 margin: true 36850 }, 36851 typography: { 36852 fontSize: true, 36853 lineHeight: true, 36854 __experimentalFontFamily: true, 36855 __experimentalFontStyle: true, 36856 __experimentalFontWeight: true, 36857 __experimentalLetterSpacing: true, 36858 __experimentalTextTransform: true, 36859 __experimentalDefaultControls: { 36860 fontSize: true, 36861 fontAppearance: true, 36862 textTransform: true 36863 } 36864 } 36865 }, 36866 editorStyle: "wp-block-query-title-editor" 36867 }; 36868 36869 36870 36871 /** 36872 * WordPress dependencies 36873 */ 36874 36875 36876 const { 36877 name: query_title_name 36878 } = query_title_metadata; 36879 36880 const query_title_settings = { 36881 icon: query_title, 36882 edit: QueryTitleEdit, 36883 variations: query_title_variations, 36884 deprecated: query_title_deprecated 36885 }; 36886 36887 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/quote.js 36888 36889 36890 /** 36891 * WordPress dependencies 36892 */ 36893 36894 const quote = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 36895 viewBox: "0 0 24 24", 36896 xmlns: "http://www.w3.org/2000/svg" 36897 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 36898 d: "M13 6v6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H13zm-9 6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H4v6z" 36899 })); 36900 /* harmony default export */ var library_quote = (quote); 36901 36902 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/deprecated.js 36903 36904 36905 /** 36906 * External dependencies 36907 */ 36908 36909 /** 36910 * WordPress dependencies 36911 */ 36912 36913 36914 const quote_deprecated_blockAttributes = { 36915 value: { 36916 type: 'string', 36917 source: 'html', 36918 selector: 'blockquote', 36919 multiline: 'p', 36920 default: '' 36921 }, 36922 citation: { 36923 type: 'string', 36924 source: 'html', 36925 selector: 'cite', 36926 default: '' 36927 }, 36928 align: { 36929 type: 'string' 36930 } 36931 }; 36932 const quote_deprecated_deprecated = [{ 36933 attributes: quote_deprecated_blockAttributes, 36934 36935 save(_ref) { 36936 let { 36937 attributes 36938 } = _ref; 36939 const { 36940 align, 36941 value, 36942 citation 36943 } = attributes; 36944 return (0,external_wp_element_namespaceObject.createElement)("blockquote", { 36945 style: { 36946 textAlign: align ? align : null 36947 } 36948 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 36949 multiline: true, 36950 value: value 36951 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 36952 tagName: "cite", 36953 value: citation 36954 })); 36955 } 36956 36957 }, { 36958 attributes: { ...quote_deprecated_blockAttributes, 36959 style: { 36960 type: 'number', 36961 default: 1 36962 } 36963 }, 36964 36965 migrate(attributes) { 36966 if (attributes.style === 2) { 36967 return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['style']), 36968 className: attributes.className ? attributes.className + ' is-style-large' : 'is-style-large' 36969 }; 36970 } 36971 36972 return attributes; 36973 }, 36974 36975 save(_ref2) { 36976 let { 36977 attributes 36978 } = _ref2; 36979 const { 36980 align, 36981 value, 36982 citation, 36983 style 36984 } = attributes; 36985 return (0,external_wp_element_namespaceObject.createElement)("blockquote", { 36986 className: style === 2 ? 'is-large' : '', 36987 style: { 36988 textAlign: align ? align : null 36989 } 36990 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 36991 multiline: true, 36992 value: value 36993 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 36994 tagName: "cite", 36995 value: citation 36996 })); 36997 } 36998 36999 }, { 37000 attributes: { ...quote_deprecated_blockAttributes, 37001 citation: { 37002 type: 'string', 37003 source: 'html', 37004 selector: 'footer', 37005 default: '' 37006 }, 37007 style: { 37008 type: 'number', 37009 default: 1 37010 } 37011 }, 37012 37013 migrate(attributes) { 37014 if (!isNaN(parseInt(attributes.style))) { 37015 return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['style']) 37016 }; 37017 } 37018 37019 return attributes; 37020 }, 37021 37022 save(_ref3) { 37023 let { 37024 attributes 37025 } = _ref3; 37026 const { 37027 align, 37028 value, 37029 citation, 37030 style 37031 } = attributes; 37032 return (0,external_wp_element_namespaceObject.createElement)("blockquote", { 37033 className: `blocks-quote-style-$style}`, 37034 style: { 37035 textAlign: align ? align : null 37036 } 37037 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 37038 multiline: true, 37039 value: value 37040 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 37041 tagName: "footer", 37042 value: citation 37043 })); 37044 } 37045 37046 }]; 37047 /* harmony default export */ var quote_deprecated = (quote_deprecated_deprecated); 37048 37049 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/edit.js 37050 37051 37052 /** 37053 * External dependencies 37054 */ 37055 37056 /** 37057 * WordPress dependencies 37058 */ 37059 37060 37061 37062 37063 37064 37065 const edit_isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web'; 37066 function QuoteEdit(_ref) { 37067 let { 37068 attributes, 37069 setAttributes, 37070 isSelected, 37071 mergeBlocks, 37072 onReplace, 37073 className, 37074 insertBlocksAfter, 37075 style 37076 } = _ref; 37077 const { 37078 align, 37079 value, 37080 citation 37081 } = attributes; 37082 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 37083 className: classnames_default()(className, { 37084 [`has-text-align-$align}`]: align 37085 }), 37086 style 37087 }); 37088 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 37089 group: "block" 37090 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 37091 value: align, 37092 onChange: nextAlign => { 37093 setAttributes({ 37094 align: nextAlign 37095 }); 37096 } 37097 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BlockQuotation, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 37098 identifier: "value", 37099 multiline: true, 37100 value: value, 37101 onChange: nextValue => setAttributes({ 37102 value: nextValue 37103 }), 37104 onMerge: mergeBlocks, 37105 onRemove: forward => { 37106 const hasEmptyCitation = !citation || citation.length === 0; 37107 37108 if (!forward && hasEmptyCitation) { 37109 onReplace([]); 37110 } 37111 }, 37112 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Quote text'), 37113 placeholder: // translators: placeholder text used for the quote 37114 (0,external_wp_i18n_namespaceObject.__)('Add quote'), 37115 onReplace: onReplace, 37116 onSplit: piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', { ...attributes, 37117 value: piece 37118 }), 37119 __unstableOnSplitMiddle: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph'), 37120 textAlign: align 37121 }), (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 37122 identifier: "citation", 37123 tagName: edit_isWebPlatform ? 'cite' : undefined, 37124 style: { 37125 display: 'block' 37126 }, 37127 value: citation, 37128 onChange: nextCitation => setAttributes({ 37129 citation: nextCitation 37130 }), 37131 __unstableMobileNoFocusOnMount: true, 37132 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Quote citation text'), 37133 placeholder: // translators: placeholder text used for the citation 37134 (0,external_wp_i18n_namespaceObject.__)('Add citation'), 37135 className: "wp-block-quote__citation", 37136 textAlign: align, 37137 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')) 37138 }))); 37139 } 37140 37141 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/save.js 37142 37143 37144 /** 37145 * External dependencies 37146 */ 37147 37148 /** 37149 * WordPress dependencies 37150 */ 37151 37152 37153 function quote_save_save(_ref) { 37154 let { 37155 attributes 37156 } = _ref; 37157 const { 37158 align, 37159 value, 37160 citation 37161 } = attributes; 37162 const className = classnames_default()({ 37163 [`has-text-align-$align}`]: align 37164 }); 37165 return (0,external_wp_element_namespaceObject.createElement)("blockquote", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 37166 className 37167 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 37168 multiline: true, 37169 value: value 37170 }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 37171 tagName: "cite", 37172 value: citation 37173 })); 37174 } 37175 37176 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/transforms.js 37177 /** 37178 * WordPress dependencies 37179 */ 37180 37181 37182 const quote_transforms_transforms = { 37183 from: [{ 37184 type: 'block', 37185 isMultiBlock: true, 37186 blocks: ['core/paragraph'], 37187 transform: attributes => { 37188 return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', { 37189 value: (0,external_wp_richText_namespaceObject.toHTMLString)({ 37190 value: (0,external_wp_richText_namespaceObject.join)(attributes.map(_ref => { 37191 let { 37192 content 37193 } = _ref; 37194 return (0,external_wp_richText_namespaceObject.create)({ 37195 html: content 37196 }); 37197 }), '\u2028'), 37198 multilineTag: 'p' 37199 }), 37200 anchor: attributes.anchor 37201 }); 37202 } 37203 }, { 37204 type: 'block', 37205 blocks: ['core/heading'], 37206 transform: _ref2 => { 37207 let { 37208 content, 37209 anchor 37210 } = _ref2; 37211 return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', { 37212 value: `<p>$content}</p>`, 37213 anchor 37214 }); 37215 } 37216 }, { 37217 type: 'block', 37218 blocks: ['core/pullquote'], 37219 transform: _ref3 => { 37220 let { 37221 value, 37222 citation, 37223 anchor 37224 } = _ref3; 37225 return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', { 37226 value, 37227 citation, 37228 anchor 37229 }); 37230 } 37231 }, { 37232 type: 'prefix', 37233 prefix: '>', 37234 transform: content => { 37235 return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', { 37236 value: `<p>$content}</p>` 37237 }); 37238 } 37239 }, { 37240 type: 'raw', 37241 isMatch: node => { 37242 const isParagraphOrSingleCite = (() => { 37243 let hasCitation = false; 37244 return child => { 37245 // Child is a paragraph. 37246 if (child.nodeName === 'P') { 37247 return true; 37248 } // Child is a cite and no other cite child exists before it. 37249 37250 37251 if (!hasCitation && child.nodeName === 'CITE') { 37252 hasCitation = true; 37253 return true; 37254 } 37255 }; 37256 })(); 37257 37258 return node.nodeName === 'BLOCKQUOTE' && // The quote block can only handle multiline paragraph 37259 // content with an optional cite child. 37260 Array.from(node.childNodes).every(isParagraphOrSingleCite); 37261 }, 37262 schema: _ref4 => { 37263 let { 37264 phrasingContentSchema 37265 } = _ref4; 37266 return { 37267 blockquote: { 37268 children: { 37269 p: { 37270 children: phrasingContentSchema 37271 }, 37272 cite: { 37273 children: phrasingContentSchema 37274 } 37275 } 37276 } 37277 }; 37278 } 37279 }], 37280 to: [{ 37281 type: 'block', 37282 blocks: ['core/paragraph'], 37283 transform: _ref5 => { 37284 let { 37285 value, 37286 citation 37287 } = _ref5; 37288 const paragraphs = []; 37289 37290 if (value && value !== '<p></p>') { 37291 paragraphs.push(...(0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({ 37292 html: value, 37293 multilineTag: 'p' 37294 }), '\u2028').map(piece => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 37295 content: (0,external_wp_richText_namespaceObject.toHTMLString)({ 37296 value: piece 37297 }) 37298 }))); 37299 } 37300 37301 if (citation && citation !== '<p></p>') { 37302 paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 37303 content: citation 37304 })); 37305 } 37306 37307 if (paragraphs.length === 0) { 37308 return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 37309 content: '' 37310 }); 37311 } 37312 37313 return paragraphs; 37314 } 37315 }, { 37316 type: 'block', 37317 blocks: ['core/heading'], 37318 transform: _ref6 => { 37319 let { 37320 value, 37321 citation, 37322 ...attrs 37323 } = _ref6; 37324 37325 // If there is no quote content, use the citation as the 37326 // content of the resulting heading. A nonexistent citation 37327 // will result in an empty heading. 37328 if (value === '<p></p>') { 37329 return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', { 37330 content: citation 37331 }); 37332 } 37333 37334 const pieces = (0,external_wp_richText_namespaceObject.split)((0,external_wp_richText_namespaceObject.create)({ 37335 html: value, 37336 multilineTag: 'p' 37337 }), '\u2028'); 37338 const headingBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', { 37339 content: (0,external_wp_richText_namespaceObject.toHTMLString)({ 37340 value: pieces[0] 37341 }) 37342 }); 37343 37344 if (!citation && pieces.length === 1) { 37345 return headingBlock; 37346 } 37347 37348 const quotePieces = pieces.slice(1); 37349 const quoteBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', { ...attrs, 37350 citation, 37351 value: (0,external_wp_richText_namespaceObject.toHTMLString)({ 37352 value: quotePieces.length ? (0,external_wp_richText_namespaceObject.join)(pieces.slice(1), '\u2028') : (0,external_wp_richText_namespaceObject.create)(), 37353 multilineTag: 'p' 37354 }) 37355 }); 37356 return [headingBlock, quoteBlock]; 37357 } 37358 }, { 37359 type: 'block', 37360 blocks: ['core/pullquote'], 37361 transform: _ref7 => { 37362 let { 37363 value, 37364 citation, 37365 anchor 37366 } = _ref7; 37367 return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', { 37368 value, 37369 citation, 37370 anchor 37371 }); 37372 } 37373 }] 37374 }; 37375 /* harmony default export */ var quote_transforms = (quote_transforms_transforms); 37376 37377 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/index.js 37378 /** 37379 * WordPress dependencies 37380 */ 37381 37382 37383 /** 37384 * Internal dependencies 37385 */ 37386 37387 37388 37389 const quote_metadata = { 37390 $schema: "https://schemas.wp.org/trunk/block.json", 37391 apiVersion: 2, 37392 name: "core/quote", 37393 title: "Quote", 37394 category: "text", 37395 description: "Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" \u2014 Julio Cort\xE1zar", 37396 keywords: ["blockquote", "cite"], 37397 textdomain: "default", 37398 attributes: { 37399 value: { 37400 type: "string", 37401 source: "html", 37402 selector: "blockquote", 37403 multiline: "p", 37404 "default": "", 37405 __experimentalRole: "content" 37406 }, 37407 citation: { 37408 type: "string", 37409 source: "html", 37410 selector: "cite", 37411 "default": "", 37412 __experimentalRole: "content" 37413 }, 37414 align: { 37415 type: "string" 37416 } 37417 }, 37418 supports: { 37419 anchor: true, 37420 __experimentalSlashInserter: true, 37421 typography: { 37422 fontSize: true, 37423 lineHeight: true, 37424 __experimentalFontStyle: true, 37425 __experimentalFontWeight: true, 37426 __experimentalLetterSpacing: true, 37427 __experimentalTextTransform: true, 37428 __experimentalDefaultControls: { 37429 fontSize: true, 37430 fontAppearance: true 37431 } 37432 }, 37433 color: { 37434 gradients: true, 37435 link: true, 37436 __experimentalDefaultControls: { 37437 background: true, 37438 text: true 37439 } 37440 } 37441 }, 37442 styles: [{ 37443 name: "default", 37444 label: "Default", 37445 isDefault: true 37446 }, { 37447 name: "plain", 37448 label: "Plain" 37449 }], 37450 editorStyle: "wp-block-quote-editor", 37451 style: "wp-block-quote" 37452 }; 37453 37454 37455 37456 const { 37457 name: quote_name 37458 } = quote_metadata; 37459 37460 const quote_settingsV1 = { 37461 icon: library_quote, 37462 example: { 37463 attributes: { 37464 value: '<p>' + (0,external_wp_i18n_namespaceObject.__)('In quoting others, we cite ourselves.') + '</p>', 37465 citation: 'Julio Cortázar' 37466 } 37467 }, 37468 transforms: quote_transforms, 37469 edit: QuoteEdit, 37470 save: quote_save_save, 37471 37472 merge(attributes, _ref) { 37473 let { 37474 value, 37475 citation 37476 } = _ref; 37477 37478 // Quote citations cannot be merged. Pick the second one unless it's 37479 // empty. 37480 if (!citation) { 37481 citation = attributes.citation; 37482 } 37483 37484 if (!value || value === '<p></p>') { 37485 return { ...attributes, 37486 citation 37487 }; 37488 } 37489 37490 return { ...attributes, 37491 value: attributes.value + value, 37492 citation 37493 }; 37494 }, 37495 37496 deprecated: quote_deprecated 37497 }; 37498 let quote_settings = quote_settingsV1; 37499 37500 if (false) { var quote_window; } 37501 37502 37503 37504 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol.js 37505 37506 37507 /** 37508 * WordPress dependencies 37509 */ 37510 37511 const symbol = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 37512 xmlns: "http://www.w3.org/2000/svg", 37513 viewBox: "0 0 24 24" 37514 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 37515 d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z" 37516 })); 37517 /* harmony default export */ var library_symbol = (symbol); 37518 37519 ;// CONCATENATED MODULE: external ["wp","reusableBlocks"] 37520 var external_wp_reusableBlocks_namespaceObject = window["wp"]["reusableBlocks"]; 37521 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/ungroup.js 37522 37523 37524 /** 37525 * WordPress dependencies 37526 */ 37527 37528 const ungroup = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 37529 xmlns: "http://www.w3.org/2000/svg", 37530 viewBox: "0 0 24 24" 37531 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 37532 d: "M18 4h-7c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7zm-5 5c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h1V9H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-1h-1.5v1z" 37533 })); 37534 /* harmony default export */ var library_ungroup = (ungroup); 37535 37536 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/edit.js 37537 37538 37539 /** 37540 * WordPress dependencies 37541 */ 37542 37543 37544 37545 37546 37547 37548 37549 function ReusableBlockEdit(_ref) { 37550 let { 37551 attributes: { 37552 ref 37553 }, 37554 clientId 37555 } = _ref; 37556 const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(ref); 37557 const { 37558 record, 37559 hasResolved 37560 } = (0,external_wp_coreData_namespaceObject.__experimentalUseEntityRecord)('postType', 'wp_block', ref); 37561 const isMissing = hasResolved && !record; 37562 const canRemove = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).canRemoveBlock(clientId), [clientId]); 37563 const { 37564 __experimentalConvertBlockToStatic: convertBlockToStatic 37565 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_reusableBlocks_namespaceObject.store); 37566 const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_block', { 37567 id: ref 37568 }); 37569 const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_block', 'title', ref); 37570 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 37571 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({}, { 37572 value: blocks, 37573 onInput, 37574 onChange, 37575 renderAppender: blocks !== null && blocks !== void 0 && blocks.length ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender 37576 }); 37577 37578 if (hasAlreadyRendered) { 37579 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.'))); 37580 } 37581 37582 if (isMissing) { 37583 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Block has been deleted or is unavailable.'))); 37584 } 37585 37586 if (!hasResolved) { 37587 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null))); 37588 } 37589 37590 return (0,external_wp_element_namespaceObject.createElement)(RecursionProvider, null, (0,external_wp_element_namespaceObject.createElement)("div", blockProps, canRemove && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 37591 onClick: () => convertBlockToStatic(clientId), 37592 label: (0,external_wp_i18n_namespaceObject.__)('Convert to regular blocks'), 37593 icon: library_ungroup, 37594 showTooltip: true 37595 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 37596 label: (0,external_wp_i18n_namespaceObject.__)('Name'), 37597 value: title, 37598 onChange: setTitle 37599 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockContentOverlay, { 37600 clientId: clientId, 37601 wrapperProps: innerBlocksProps, 37602 className: "block-library-block__reusable-block-container" 37603 }))); 37604 } 37605 37606 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/index.js 37607 /** 37608 * WordPress dependencies 37609 */ 37610 37611 /** 37612 * Internal dependencies 37613 */ 37614 37615 const block_metadata = { 37616 $schema: "https://schemas.wp.org/trunk/block.json", 37617 apiVersion: 2, 37618 name: "core/block", 37619 title: "Reusable block", 37620 category: "reusable", 37621 description: "Create and save content to reuse across your site. Update the block, and the changes apply everywhere it\u2019s used.", 37622 textdomain: "default", 37623 attributes: { 37624 ref: { 37625 type: "number" 37626 } 37627 }, 37628 supports: { 37629 customClassName: false, 37630 html: false, 37631 inserter: false 37632 }, 37633 editorStyle: "wp-block-editor" 37634 }; 37635 37636 const { 37637 name: block_name 37638 } = block_metadata; 37639 37640 const block_settings = { 37641 edit: ReusableBlockEdit, 37642 icon: library_symbol 37643 }; 37644 37645 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/read-more/edit.js 37646 37647 37648 37649 /** 37650 * WordPress dependencies 37651 */ 37652 37653 37654 37655 37656 function ReadMore(_ref) { 37657 let { 37658 attributes: { 37659 content, 37660 linkTarget 37661 }, 37662 setAttributes, 37663 insertBlocksAfter 37664 } = _ref; 37665 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 37666 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 37667 title: (0,external_wp_i18n_namespaceObject.__)('Link settings') 37668 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 37669 label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'), 37670 onChange: value => setAttributes({ 37671 linkTarget: value ? '_blank' : '_self' 37672 }), 37673 checked: linkTarget === '_blank' 37674 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({ 37675 tagName: "a", 37676 "aria-label": (0,external_wp_i18n_namespaceObject.__)('"Read more" link text'), 37677 placeholder: (0,external_wp_i18n_namespaceObject.__)('Read more'), 37678 value: content, 37679 onChange: newValue => setAttributes({ 37680 content: newValue 37681 }), 37682 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())), 37683 withoutInteractiveFormatting: true 37684 }, blockProps))); 37685 } 37686 37687 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/read-more/index.js 37688 /** 37689 * WordPress dependencies 37690 */ 37691 37692 /** 37693 * Internal dependencies 37694 */ 37695 37696 const read_more_metadata = { 37697 $schema: "https://schemas.wp.org/trunk/block.json", 37698 apiVersion: 2, 37699 name: "core/read-more", 37700 title: "Read More", 37701 category: "theme", 37702 description: "Displays the link of a post, page, or any other content-type.", 37703 textdomain: "default", 37704 attributes: { 37705 content: { 37706 type: "string" 37707 }, 37708 linkTarget: { 37709 type: "string", 37710 "default": "_self" 37711 } 37712 }, 37713 usesContext: ["postId"], 37714 supports: { 37715 html: false, 37716 color: { 37717 gradients: true, 37718 text: true 37719 }, 37720 typography: { 37721 fontSize: true, 37722 lineHeight: true, 37723 __experimentalFontFamily: true, 37724 __experimentalFontWeight: true, 37725 __experimentalFontStyle: true, 37726 __experimentalTextTransform: true, 37727 __experimentalLetterSpacing: true, 37728 __experimentalTextDecoration: true, 37729 __experimentalDefaultControls: { 37730 fontSize: true, 37731 textDecoration: true 37732 } 37733 }, 37734 spacing: { 37735 margin: ["top", "bottom"], 37736 padding: true, 37737 __experimentalDefaultControls: { 37738 padding: true 37739 } 37740 }, 37741 __experimentalBorder: { 37742 color: true, 37743 radius: true, 37744 width: true, 37745 __experimentalDefaultControls: { 37746 width: true 37747 } 37748 } 37749 }, 37750 style: "wp-block-read-more" 37751 }; 37752 37753 const { 37754 name: read_more_name 37755 } = read_more_metadata; 37756 37757 const read_more_settings = { 37758 icon: library_link, 37759 edit: ReadMore 37760 }; 37761 37762 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/rss.js 37763 37764 37765 /** 37766 * WordPress dependencies 37767 */ 37768 37769 const rss = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 37770 xmlns: "http://www.w3.org/2000/svg", 37771 viewBox: "0 0 24 24" 37772 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 37773 d: "M5 10.2h-.8v1.5H5c1.9 0 3.8.8 5.1 2.1 1.4 1.4 2.1 3.2 2.1 5.1v.8h1.5V19c0-2.3-.9-4.5-2.6-6.2-1.6-1.6-3.8-2.6-6.1-2.6zm10.4-1.6C12.6 5.8 8.9 4.2 5 4.2h-.8v1.5H5c3.5 0 6.9 1.4 9.4 3.9s3.9 5.8 3.9 9.4v.8h1.5V19c0-3.9-1.6-7.6-4.4-10.4zM4 20h3v-3H4v3z" 37774 })); 37775 /* harmony default export */ var library_rss = (rss); 37776 37777 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/rss/edit.js 37778 37779 37780 /** 37781 * WordPress dependencies 37782 */ 37783 37784 37785 37786 37787 37788 37789 37790 const DEFAULT_MIN_ITEMS = 1; 37791 const DEFAULT_MAX_ITEMS = 20; 37792 function RSSEdit(_ref) { 37793 let { 37794 attributes, 37795 setAttributes 37796 } = _ref; 37797 const [isEditing, setIsEditing] = (0,external_wp_element_namespaceObject.useState)(!attributes.feedURL); 37798 const { 37799 blockLayout, 37800 columns, 37801 displayAuthor, 37802 displayDate, 37803 displayExcerpt, 37804 excerptLength, 37805 feedURL, 37806 itemsToShow 37807 } = attributes; 37808 37809 function toggleAttribute(propName) { 37810 return () => { 37811 const value = attributes[propName]; 37812 setAttributes({ 37813 [propName]: !value 37814 }); 37815 }; 37816 } 37817 37818 function onSubmitURL(event) { 37819 event.preventDefault(); 37820 37821 if (feedURL) { 37822 setAttributes({ 37823 feedURL: (0,external_wp_url_namespaceObject.prependHTTP)(feedURL) 37824 }); 37825 setIsEditing(false); 37826 } 37827 } 37828 37829 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 37830 37831 if (isEditing) { 37832 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 37833 icon: library_rss, 37834 label: "RSS" 37835 }, (0,external_wp_element_namespaceObject.createElement)("form", { 37836 onSubmit: onSubmitURL, 37837 className: "wp-block-rss__placeholder-form" 37838 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 37839 placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL here…'), 37840 value: feedURL, 37841 onChange: value => setAttributes({ 37842 feedURL: value 37843 }), 37844 className: "wp-block-rss__placeholder-input" 37845 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 37846 variant: "primary", 37847 type: "submit" 37848 }, (0,external_wp_i18n_namespaceObject.__)('Use URL'))))); 37849 } 37850 37851 const toolbarControls = [{ 37852 icon: library_edit, 37853 title: (0,external_wp_i18n_namespaceObject.__)('Edit RSS URL'), 37854 onClick: () => setIsEditing(true) 37855 }, { 37856 icon: library_list, 37857 title: (0,external_wp_i18n_namespaceObject.__)('List view'), 37858 onClick: () => setAttributes({ 37859 blockLayout: 'list' 37860 }), 37861 isActive: blockLayout === 'list' 37862 }, { 37863 icon: library_grid, 37864 title: (0,external_wp_i18n_namespaceObject.__)('Grid view'), 37865 onClick: () => setAttributes({ 37866 blockLayout: 'grid' 37867 }), 37868 isActive: blockLayout === 'grid' 37869 }]; 37870 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { 37871 controls: toolbarControls 37872 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 37873 title: (0,external_wp_i18n_namespaceObject.__)('RSS settings') 37874 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 37875 label: (0,external_wp_i18n_namespaceObject.__)('Number of items'), 37876 value: itemsToShow, 37877 onChange: value => setAttributes({ 37878 itemsToShow: value 37879 }), 37880 min: DEFAULT_MIN_ITEMS, 37881 max: DEFAULT_MAX_ITEMS, 37882 required: true 37883 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 37884 label: (0,external_wp_i18n_namespaceObject.__)('Display author'), 37885 checked: displayAuthor, 37886 onChange: toggleAttribute('displayAuthor') 37887 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 37888 label: (0,external_wp_i18n_namespaceObject.__)('Display date'), 37889 checked: displayDate, 37890 onChange: toggleAttribute('displayDate') 37891 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 37892 label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'), 37893 checked: displayExcerpt, 37894 onChange: toggleAttribute('displayExcerpt') 37895 }), displayExcerpt && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 37896 label: (0,external_wp_i18n_namespaceObject.__)('Max number of words in excerpt'), 37897 value: excerptLength, 37898 onChange: value => setAttributes({ 37899 excerptLength: value 37900 }), 37901 min: 10, 37902 max: 100, 37903 required: true 37904 }), blockLayout === 'grid' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 37905 label: (0,external_wp_i18n_namespaceObject.__)('Columns'), 37906 value: columns, 37907 onChange: value => setAttributes({ 37908 columns: value 37909 }), 37910 min: 2, 37911 max: 6, 37912 required: true 37913 }))), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, null, (0,external_wp_element_namespaceObject.createElement)((external_wp_serverSideRender_default()), { 37914 block: "core/rss", 37915 attributes: attributes 37916 })))); 37917 } 37918 37919 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/rss/index.js 37920 /** 37921 * WordPress dependencies 37922 */ 37923 37924 /** 37925 * Internal dependencies 37926 */ 37927 37928 const rss_metadata = { 37929 $schema: "https://schemas.wp.org/trunk/block.json", 37930 apiVersion: 2, 37931 name: "core/rss", 37932 title: "RSS", 37933 category: "widgets", 37934 description: "Display entries from any RSS or Atom feed.", 37935 keywords: ["atom", "feed"], 37936 textdomain: "default", 37937 attributes: { 37938 columns: { 37939 type: "number", 37940 "default": 2 37941 }, 37942 blockLayout: { 37943 type: "string", 37944 "default": "list" 37945 }, 37946 feedURL: { 37947 type: "string", 37948 "default": "" 37949 }, 37950 itemsToShow: { 37951 type: "number", 37952 "default": 5 37953 }, 37954 displayExcerpt: { 37955 type: "boolean", 37956 "default": false 37957 }, 37958 displayAuthor: { 37959 type: "boolean", 37960 "default": false 37961 }, 37962 displayDate: { 37963 type: "boolean", 37964 "default": false 37965 }, 37966 excerptLength: { 37967 type: "number", 37968 "default": 55 37969 } 37970 }, 37971 supports: { 37972 align: true, 37973 html: false 37974 }, 37975 editorStyle: "wp-block-rss-editor", 37976 style: "wp-block-rss" 37977 }; 37978 37979 const { 37980 name: rss_name 37981 } = rss_metadata; 37982 37983 const rss_settings = { 37984 icon: library_rss, 37985 example: { 37986 attributes: { 37987 feedURL: 'https://wordpress.org' 37988 } 37989 }, 37990 edit: RSSEdit 37991 }; 37992 37993 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/search.js 37994 37995 37996 /** 37997 * WordPress dependencies 37998 */ 37999 38000 const search = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 38001 xmlns: "http://www.w3.org/2000/svg", 38002 viewBox: "0 0 24 24" 38003 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 38004 d: "M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" 38005 })); 38006 /* harmony default export */ var library_search = (search); 38007 38008 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/icons.js 38009 38010 38011 /** 38012 * WordPress dependencies 38013 */ 38014 38015 const buttonOnly = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 38016 xmlns: "http://www.w3.org/2000/svg", 38017 viewBox: "0 0 24 24" 38018 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, { 38019 x: "7", 38020 y: "10", 38021 width: "10", 38022 height: "4", 38023 rx: "1", 38024 fill: "currentColor" 38025 })); 38026 const buttonOutside = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 38027 xmlns: "http://www.w3.org/2000/svg", 38028 viewBox: "0 0 24 24" 38029 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, { 38030 x: "4.75", 38031 y: "15.25", 38032 width: "6.5", 38033 height: "9.5", 38034 transform: "rotate(-90 4.75 15.25)", 38035 stroke: "currentColor", 38036 strokeWidth: "1.5", 38037 fill: "none" 38038 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, { 38039 x: "16", 38040 y: "10", 38041 width: "4", 38042 height: "4", 38043 rx: "1", 38044 fill: "currentColor" 38045 })); 38046 const buttonInside = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 38047 xmlns: "http://www.w3.org/2000/svg", 38048 viewBox: "0 0 24 24" 38049 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, { 38050 x: "4.75", 38051 y: "15.25", 38052 width: "6.5", 38053 height: "14.5", 38054 transform: "rotate(-90 4.75 15.25)", 38055 stroke: "currentColor", 38056 strokeWidth: "1.5", 38057 fill: "none" 38058 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, { 38059 x: "14", 38060 y: "10", 38061 width: "4", 38062 height: "4", 38063 rx: "1", 38064 fill: "currentColor" 38065 })); 38066 const noButton = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 38067 xmlns: "http://www.w3.org/2000/svg", 38068 viewBox: "0 0 24 24" 38069 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, { 38070 x: "4.75", 38071 y: "15.25", 38072 width: "6.5", 38073 height: "14.5", 38074 transform: "rotate(-90 4.75 15.25)", 38075 stroke: "currentColor", 38076 fill: "none", 38077 strokeWidth: "1.5" 38078 })); 38079 const buttonWithIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 38080 xmlns: "http://www.w3.org/2000/svg", 38081 viewBox: "0 0 24 24" 38082 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, { 38083 x: "4.75", 38084 y: "7.75", 38085 width: "14.5", 38086 height: "8.5", 38087 rx: "1.25", 38088 stroke: "currentColor", 38089 fill: "none", 38090 strokeWidth: "1.5" 38091 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, { 38092 x: "8", 38093 y: "11", 38094 width: "8", 38095 height: "2", 38096 fill: "currentColor" 38097 })); 38098 const toggleLabel = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 38099 xmlns: "http://www.w3.org/2000/svg", 38100 viewBox: "0 0 24 24" 38101 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, { 38102 x: "4.75", 38103 y: "17.25", 38104 width: "5.5", 38105 height: "14.5", 38106 transform: "rotate(-90 4.75 17.25)", 38107 stroke: "currentColor", 38108 fill: "none", 38109 strokeWidth: "1.5" 38110 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, { 38111 x: "4", 38112 y: "7", 38113 width: "10", 38114 height: "2", 38115 fill: "currentColor" 38116 })); 38117 38118 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/utils.js 38119 /** 38120 * Constants 38121 */ 38122 const PC_WIDTH_DEFAULT = 50; 38123 const PX_WIDTH_DEFAULT = 350; 38124 const MIN_WIDTH = 220; 38125 const MIN_WIDTH_UNIT = 'px'; 38126 /** 38127 * Returns a boolean whether passed unit is percentage 38128 * 38129 * @param {string} unit Block width unit. 38130 * 38131 * @return {boolean} Whether unit is '%'. 38132 */ 38133 38134 function utils_isPercentageUnit(unit) { 38135 return unit === '%'; 38136 } 38137 38138 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/edit.js 38139 38140 38141 /** 38142 * External dependencies 38143 */ 38144 38145 /** 38146 * WordPress dependencies 38147 */ 38148 38149 38150 38151 38152 38153 38154 38155 38156 38157 /** 38158 * Internal dependencies 38159 */ 38160 38161 38162 // Used to calculate border radius adjustment to avoid "fat" corners when 38163 // button is placed inside wrapper. 38164 38165 const DEFAULT_INNER_PADDING = '4px'; 38166 function SearchEdit(_ref) { 38167 var _style$border, _style$border2, _style$border3; 38168 38169 let { 38170 className, 38171 attributes, 38172 setAttributes, 38173 toggleSelection, 38174 isSelected, 38175 clientId 38176 } = _ref; 38177 const { 38178 label, 38179 showLabel, 38180 placeholder, 38181 width, 38182 widthUnit, 38183 align, 38184 buttonText, 38185 buttonPosition, 38186 buttonUseIcon, 38187 style 38188 } = attributes; 38189 const insertedInNavigationBlock = (0,external_wp_data_namespaceObject.useSelect)(select => { 38190 var _getBlockParentsByBlo; 38191 38192 const { 38193 getBlockParentsByBlockName, 38194 wasBlockJustInserted 38195 } = select(external_wp_blockEditor_namespaceObject.store); 38196 return !!((_getBlockParentsByBlo = getBlockParentsByBlockName(clientId, 'core/navigation')) !== null && _getBlockParentsByBlo !== void 0 && _getBlockParentsByBlo.length) && wasBlockJustInserted(clientId); 38197 }, [clientId]); 38198 const { 38199 __unstableMarkNextChangeAsNotPersistent 38200 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 38201 (0,external_wp_element_namespaceObject.useEffect)(() => { 38202 if (!insertedInNavigationBlock) return; // This side-effect should not create an undo level. 38203 38204 __unstableMarkNextChangeAsNotPersistent(); 38205 38206 setAttributes({ 38207 showLabel: false, 38208 buttonUseIcon: true, 38209 buttonPosition: 'button-inside' 38210 }); 38211 }, [insertedInNavigationBlock]); 38212 const borderRadius = style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border.radius; 38213 const borderColor = style === null || style === void 0 ? void 0 : (_style$border2 = style.border) === null || _style$border2 === void 0 ? void 0 : _style$border2.color; 38214 const borderWidth = style === null || style === void 0 ? void 0 : (_style$border3 = style.border) === null || _style$border3 === void 0 ? void 0 : _style$border3.width; 38215 const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes); // Check for old deprecated numerical border radius. Done as a separate 38216 // check so that a borderRadius style won't overwrite the longhand 38217 // per-corner styles. 38218 38219 if (typeof borderRadius === 'number') { 38220 borderProps.style.borderRadius = `$borderRadius}px`; 38221 } 38222 38223 const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes); 38224 const unitControlInstanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl); 38225 const unitControlInputId = `wp-block-search__width-$unitControlInstanceId}`; 38226 const isButtonPositionInside = 'button-inside' === buttonPosition; 38227 const isButtonPositionOutside = 'button-outside' === buttonPosition; 38228 const hasNoButton = 'no-button' === buttonPosition; 38229 const hasOnlyButton = 'button-only' === buttonPosition; 38230 const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ 38231 availableUnits: ['%', 'px'], 38232 defaultValues: { 38233 '%': PC_WIDTH_DEFAULT, 38234 px: PX_WIDTH_DEFAULT 38235 } 38236 }); 38237 38238 const getBlockClassNames = () => { 38239 return classnames_default()(className, isButtonPositionInside ? 'wp-block-search__button-inside' : undefined, isButtonPositionOutside ? 'wp-block-search__button-outside' : undefined, hasNoButton ? 'wp-block-search__no-button' : undefined, hasOnlyButton ? 'wp-block-search__button-only' : undefined, !buttonUseIcon && !hasNoButton ? 'wp-block-search__text-button' : undefined, buttonUseIcon && !hasNoButton ? 'wp-block-search__icon-button' : undefined); 38240 }; 38241 38242 const buttonPositionControls = [{ 38243 role: 'menuitemradio', 38244 title: (0,external_wp_i18n_namespaceObject.__)('Button outside'), 38245 isActive: buttonPosition === 'button-outside', 38246 icon: buttonOutside, 38247 onClick: () => { 38248 setAttributes({ 38249 buttonPosition: 'button-outside' 38250 }); 38251 } 38252 }, { 38253 role: 'menuitemradio', 38254 title: (0,external_wp_i18n_namespaceObject.__)('Button inside'), 38255 isActive: buttonPosition === 'button-inside', 38256 icon: buttonInside, 38257 onClick: () => { 38258 setAttributes({ 38259 buttonPosition: 'button-inside' 38260 }); 38261 } 38262 }, { 38263 role: 'menuitemradio', 38264 title: (0,external_wp_i18n_namespaceObject.__)('No button'), 38265 isActive: buttonPosition === 'no-button', 38266 icon: noButton, 38267 onClick: () => { 38268 setAttributes({ 38269 buttonPosition: 'no-button' 38270 }); 38271 } 38272 }]; 38273 38274 const getButtonPositionIcon = () => { 38275 switch (buttonPosition) { 38276 case 'button-inside': 38277 return buttonInside; 38278 38279 case 'button-outside': 38280 return buttonOutside; 38281 38282 case 'no-button': 38283 return noButton; 38284 38285 case 'button-only': 38286 return buttonOnly; 38287 } 38288 }; 38289 38290 const getResizableSides = () => { 38291 if (hasOnlyButton) { 38292 return {}; 38293 } 38294 38295 return { 38296 right: align !== 'right', 38297 left: align === 'right' 38298 }; 38299 }; 38300 38301 const renderTextField = () => { 38302 // If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control. 38303 const textFieldClasses = classnames_default()('wp-block-search__input', isButtonPositionInside ? undefined : borderProps.className); 38304 const textFieldStyles = isButtonPositionInside ? { 38305 borderRadius 38306 } : borderProps.style; 38307 return (0,external_wp_element_namespaceObject.createElement)("input", { 38308 className: textFieldClasses, 38309 style: textFieldStyles, 38310 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Optional placeholder text') // We hide the placeholder field's placeholder when there is a value. This 38311 // stops screen readers from reading the placeholder field's placeholder 38312 // which is confusing. 38313 , 38314 placeholder: placeholder ? undefined : (0,external_wp_i18n_namespaceObject.__)('Optional placeholder…'), 38315 value: placeholder, 38316 onChange: event => setAttributes({ 38317 placeholder: event.target.value 38318 }) 38319 }); 38320 }; 38321 38322 const renderButton = () => { 38323 // If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button. 38324 const buttonClasses = classnames_default()('wp-block-search__button', colorProps.className, isButtonPositionInside ? undefined : borderProps.className, buttonUseIcon ? 'has-icon' : undefined); 38325 const buttonStyles = { ...colorProps.style, 38326 ...(isButtonPositionInside ? { 38327 borderRadius 38328 } : borderProps.style) 38329 }; 38330 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, buttonUseIcon && (0,external_wp_element_namespaceObject.createElement)("button", { 38331 type: "button", 38332 className: buttonClasses, 38333 style: buttonStyles, 38334 "aria-label": buttonText ? (0,external_wp_dom_namespaceObject.__unstableStripHTML)(buttonText) : (0,external_wp_i18n_namespaceObject.__)('Search') 38335 }, (0,external_wp_element_namespaceObject.createElement)(icon, { 38336 icon: library_search 38337 })), !buttonUseIcon && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 38338 className: buttonClasses, 38339 style: buttonStyles, 38340 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button text'), 38341 placeholder: (0,external_wp_i18n_namespaceObject.__)('Add button text…'), 38342 withoutInteractiveFormatting: true, 38343 value: buttonText, 38344 onChange: html => setAttributes({ 38345 buttonText: html 38346 }) 38347 })); 38348 }; 38349 38350 const controls = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 38351 title: (0,external_wp_i18n_namespaceObject.__)('Toggle search label'), 38352 icon: toggleLabel, 38353 onClick: () => { 38354 setAttributes({ 38355 showLabel: !showLabel 38356 }); 38357 }, 38358 className: showLabel ? 'is-pressed' : undefined 38359 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, { 38360 icon: getButtonPositionIcon(), 38361 label: (0,external_wp_i18n_namespaceObject.__)('Change button position'), 38362 controls: buttonPositionControls 38363 }), !hasNoButton && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 38364 title: (0,external_wp_i18n_namespaceObject.__)('Use button with icon'), 38365 icon: buttonWithIcon, 38366 onClick: () => { 38367 setAttributes({ 38368 buttonUseIcon: !buttonUseIcon 38369 }); 38370 }, 38371 className: buttonUseIcon ? 'is-pressed' : undefined 38372 }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 38373 title: (0,external_wp_i18n_namespaceObject.__)('Display Settings') 38374 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, { 38375 label: (0,external_wp_i18n_namespaceObject.__)('Width'), 38376 id: unitControlInputId 38377 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { 38378 id: unitControlInputId, 38379 min: `$MIN_WIDTH}$MIN_WIDTH_UNIT}`, 38380 onChange: newWidth => { 38381 const filteredWidth = widthUnit === '%' && parseInt(newWidth, 10) > 100 ? 100 : newWidth; 38382 setAttributes({ 38383 width: parseInt(filteredWidth, 10) 38384 }); 38385 }, 38386 onUnitChange: newUnit => { 38387 setAttributes({ 38388 width: '%' === newUnit ? PC_WIDTH_DEFAULT : PX_WIDTH_DEFAULT, 38389 widthUnit: newUnit 38390 }); 38391 }, 38392 style: { 38393 maxWidth: 80 38394 }, 38395 value: `$width}$widthUnit}`, 38396 units: units 38397 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, { 38398 className: "wp-block-search__components-button-group", 38399 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Percentage Width') 38400 }, [25, 50, 75, 100].map(widthValue => { 38401 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 38402 key: widthValue, 38403 isSmall: true, 38404 variant: `$widthValue}%` === `$width}$widthUnit}` ? 0 : undefined, 38405 onClick: () => setAttributes({ 38406 width: widthValue, 38407 widthUnit: '%' 38408 }) 38409 }, widthValue, "%"); 38410 })))))); 38411 38412 const padBorderRadius = radius => radius ? `calc($radius} + $DEFAULT_INNER_PADDING})` : undefined; 38413 38414 const getWrapperStyles = () => { 38415 const styles = { 38416 borderColor, 38417 borderWidth: isButtonPositionInside ? borderWidth : undefined 38418 }; 38419 const isNonZeroBorderRadius = borderRadius !== undefined && parseInt(borderRadius, 10) !== 0; 38420 38421 if (isButtonPositionInside && isNonZeroBorderRadius) { 38422 // We have button inside wrapper and a border radius value to apply. 38423 // Add default padding so we don't get "fat" corners. 38424 // 38425 // CSS calc() is used here to support non-pixel units. The inline 38426 // style using calc() will only apply if both values have units. 38427 if (typeof borderRadius === 'object') { 38428 // Individual corner border radii present. 38429 const { 38430 topLeft, 38431 topRight, 38432 bottomLeft, 38433 bottomRight 38434 } = borderRadius; 38435 return { 38436 borderTopLeftRadius: padBorderRadius(topLeft), 38437 borderTopRightRadius: padBorderRadius(topRight), 38438 borderBottomLeftRadius: padBorderRadius(bottomLeft), 38439 borderBottomRightRadius: padBorderRadius(bottomRight), 38440 ...styles 38441 }; 38442 } // The inline style using calc() will only apply if both values 38443 // supplied to calc() have units. Deprecated block's may have 38444 // unitless integer. 38445 38446 38447 const radius = Number.isInteger(borderRadius) ? `$borderRadius}px` : borderRadius; 38448 styles.borderRadius = `calc($radius} + $DEFAULT_INNER_PADDING})`; 38449 } 38450 38451 return styles; 38452 }; 38453 38454 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 38455 className: getBlockClassNames() 38456 }); 38457 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, controls, showLabel && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 38458 className: "wp-block-search__label", 38459 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Label text'), 38460 placeholder: (0,external_wp_i18n_namespaceObject.__)('Add label…'), 38461 withoutInteractiveFormatting: true, 38462 value: label, 38463 onChange: html => setAttributes({ 38464 label: html 38465 }) 38466 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, { 38467 size: { 38468 width: `$width}$widthUnit}` 38469 }, 38470 className: classnames_default()('wp-block-search__inside-wrapper', isButtonPositionInside ? borderProps.className : undefined), 38471 style: getWrapperStyles(), 38472 minWidth: MIN_WIDTH, 38473 enable: getResizableSides(), 38474 onResizeStart: (event, direction, elt) => { 38475 setAttributes({ 38476 width: parseInt(elt.offsetWidth, 10), 38477 widthUnit: 'px' 38478 }); 38479 toggleSelection(false); 38480 }, 38481 onResizeStop: (event, direction, elt, delta) => { 38482 setAttributes({ 38483 width: parseInt(width + delta.width, 10) 38484 }); 38485 toggleSelection(true); 38486 }, 38487 showHandle: isSelected 38488 }, (isButtonPositionInside || isButtonPositionOutside) && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, renderTextField(), renderButton()), hasOnlyButton && renderButton(), hasNoButton && renderTextField())); 38489 } 38490 38491 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/variations.js 38492 /** 38493 * WordPress dependencies 38494 */ 38495 38496 const search_variations_variations = [{ 38497 name: 'default', 38498 isDefault: true, 38499 attributes: { 38500 buttonText: (0,external_wp_i18n_namespaceObject.__)('Search'), 38501 label: (0,external_wp_i18n_namespaceObject.__)('Search') 38502 } 38503 }]; 38504 /* harmony default export */ var search_variations = (search_variations_variations); 38505 38506 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/index.js 38507 /** 38508 * WordPress dependencies 38509 */ 38510 38511 /** 38512 * Internal dependencies 38513 */ 38514 38515 const search_metadata = { 38516 $schema: "https://schemas.wp.org/trunk/block.json", 38517 apiVersion: 2, 38518 name: "core/search", 38519 title: "Search", 38520 category: "widgets", 38521 description: "Help visitors find your content.", 38522 keywords: ["find"], 38523 textdomain: "default", 38524 attributes: { 38525 label: { 38526 type: "string", 38527 __experimentalRole: "content" 38528 }, 38529 showLabel: { 38530 type: "boolean", 38531 "default": true 38532 }, 38533 placeholder: { 38534 type: "string", 38535 "default": "", 38536 __experimentalRole: "content" 38537 }, 38538 width: { 38539 type: "number" 38540 }, 38541 widthUnit: { 38542 type: "string" 38543 }, 38544 buttonText: { 38545 type: "string", 38546 __experimentalRole: "content" 38547 }, 38548 buttonPosition: { 38549 type: "string", 38550 "default": "button-outside" 38551 }, 38552 buttonUseIcon: { 38553 type: "boolean", 38554 "default": false 38555 } 38556 }, 38557 supports: { 38558 align: ["left", "center", "right"], 38559 color: { 38560 gradients: true, 38561 __experimentalSkipSerialization: true, 38562 __experimentalDefaultControls: { 38563 background: true, 38564 text: true 38565 } 38566 }, 38567 __experimentalBorder: { 38568 color: true, 38569 radius: true, 38570 width: true, 38571 __experimentalSkipSerialization: true, 38572 __experimentalDefaultControls: { 38573 color: true, 38574 radius: true, 38575 width: true 38576 } 38577 }, 38578 html: false 38579 }, 38580 editorStyle: "wp-block-search-editor", 38581 style: "wp-block-search" 38582 }; 38583 38584 38585 const { 38586 name: search_name 38587 } = search_metadata; 38588 38589 const search_settings = { 38590 icon: library_search, 38591 example: {}, 38592 variations: search_variations, 38593 edit: SearchEdit 38594 }; 38595 38596 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/separator.js 38597 38598 38599 /** 38600 * WordPress dependencies 38601 */ 38602 38603 const separator = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 38604 viewBox: "0 0 24 24", 38605 xmlns: "http://www.w3.org/2000/svg" 38606 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 38607 d: "M20.2 7v4H3.8V7H2.2v9h1.6v-3.5h16.4V16h1.6V7z" 38608 })); 38609 /* harmony default export */ var library_separator = (separator); 38610 38611 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/use-deprecated-opacity.js 38612 /** 38613 * WordPress dependencies 38614 */ 38615 38616 38617 function useDeprecatedOpacity(opacity, currentColor, setAttributes) { 38618 const [deprecatedOpacityWithNoColor, setDeprecatedOpacityWithNoColor] = (0,external_wp_element_namespaceObject.useState)(false); 38619 const previousColor = (0,external_wp_compose_namespaceObject.usePrevious)(currentColor); // A separator with no color set will always have previousColor set to undefined, 38620 // and we need to differentiate these from those with color set that will return 38621 // previousColor as undefined on the first render. 38622 38623 (0,external_wp_element_namespaceObject.useEffect)(() => { 38624 if (opacity === 'css' && !currentColor && !previousColor) { 38625 setDeprecatedOpacityWithNoColor(true); 38626 } 38627 }, [currentColor, previousColor, opacity]); // For deprecated blocks, that have a default 0.4 css opacity set, we 38628 // need to remove this if the current color is changed, or a color is added. 38629 // In these instances the opacity attribute is set back to the default of 38630 // alpha-channel which allows a new custom opacity to be set via the color picker. 38631 38632 (0,external_wp_element_namespaceObject.useEffect)(() => { 38633 if (opacity === 'css' && (deprecatedOpacityWithNoColor && currentColor || previousColor && currentColor !== previousColor)) { 38634 setAttributes({ 38635 opacity: 'alpha-channel' 38636 }); 38637 setDeprecatedOpacityWithNoColor(false); 38638 } 38639 }, [deprecatedOpacityWithNoColor, currentColor, previousColor]); 38640 } 38641 38642 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/edit.js 38643 38644 38645 /** 38646 * External dependencies 38647 */ 38648 38649 /** 38650 * WordPress dependencies 38651 */ 38652 38653 38654 38655 /** 38656 * Internal dependencies 38657 */ 38658 38659 38660 function SeparatorEdit(_ref) { 38661 var _colorProps$style, _style$color; 38662 38663 let { 38664 attributes, 38665 setAttributes 38666 } = _ref; 38667 const { 38668 backgroundColor, 38669 opacity, 38670 style 38671 } = attributes; 38672 const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes); 38673 const currentColor = colorProps === null || colorProps === void 0 ? void 0 : (_colorProps$style = colorProps.style) === null || _colorProps$style === void 0 ? void 0 : _colorProps$style.backgroundColor; 38674 const hasCustomColor = !!(style !== null && style !== void 0 && (_style$color = style.color) !== null && _style$color !== void 0 && _style$color.background); 38675 useDeprecatedOpacity(opacity, currentColor, setAttributes); // The dots styles uses text for the dots, to change those dots color is 38676 // using color, not backgroundColor. 38677 38678 const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor); 38679 const className = classnames_default()({ 38680 'has-text-color': backgroundColor || currentColor, 38681 [colorClass]: colorClass, 38682 'has-css-opacity': opacity === 'css', 38683 'has-alpha-channel-opacity': opacity === 'alpha-channel' 38684 }, colorProps.classname); 38685 const styles = { 38686 color: currentColor, 38687 backgroundColor: currentColor 38688 }; 38689 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.HorizontalRule, (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 38690 className, 38691 style: hasCustomColor ? styles : undefined 38692 }))); 38693 } 38694 38695 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/save.js 38696 38697 38698 /** 38699 * External dependencies 38700 */ 38701 38702 /** 38703 * WordPress dependencies 38704 */ 38705 38706 38707 function separatorSave(_ref) { 38708 var _style$color, _colorProps$style; 38709 38710 let { 38711 attributes 38712 } = _ref; 38713 const { 38714 backgroundColor, 38715 style, 38716 opacity 38717 } = attributes; 38718 const customColor = style === null || style === void 0 ? void 0 : (_style$color = style.color) === null || _style$color === void 0 ? void 0 : _style$color.background; 38719 const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes); // The hr support changing color using border-color, since border-color 38720 // is not yet supported in the color palette, we use background-color. 38721 // The dots styles uses text for the dots, to change those dots color is 38722 // using color, not backgroundColor. 38723 38724 const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor); 38725 const className = classnames_default()({ 38726 'has-text-color': backgroundColor || customColor, 38727 [colorClass]: colorClass, 38728 'has-css-opacity': opacity === 'css', 38729 'has-alpha-channel-opacity': opacity === 'alpha-channel' 38730 }, colorProps.className); 38731 const styles = { 38732 backgroundColor: colorProps === null || colorProps === void 0 ? void 0 : (_colorProps$style = colorProps.style) === null || _colorProps$style === void 0 ? void 0 : _colorProps$style.backgroundColor, 38733 color: colorClass ? undefined : customColor 38734 }; 38735 return (0,external_wp_element_namespaceObject.createElement)("hr", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 38736 className, 38737 style: styles 38738 })); 38739 } 38740 38741 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/transforms.js 38742 /** 38743 * WordPress dependencies 38744 */ 38745 38746 const separator_transforms_transforms = { 38747 from: [{ 38748 type: 'enter', 38749 regExp: /^-{3,}$/, 38750 transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/separator') 38751 }, { 38752 type: 'raw', 38753 selector: 'hr', 38754 schema: { 38755 hr: {} 38756 } 38757 }] 38758 }; 38759 /* harmony default export */ var separator_transforms = (separator_transforms_transforms); 38760 38761 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/deprecated.js 38762 38763 38764 /** 38765 * External dependencies 38766 */ 38767 38768 38769 /** 38770 * WordPress dependencies 38771 */ 38772 38773 38774 const separator_deprecated_v1 = { 38775 attributes: { 38776 color: { 38777 type: 'string' 38778 }, 38779 customColor: { 38780 type: 'string' 38781 } 38782 }, 38783 38784 save(_ref) { 38785 let { 38786 attributes 38787 } = _ref; 38788 const { 38789 color, 38790 customColor 38791 } = attributes; // the hr support changing color using border-color, since border-color 38792 // is not yet supported in the color palette, we use background-color 38793 38794 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', color); // the dots styles uses text for the dots, to change those dots color is 38795 // using color, not backgroundColor 38796 38797 const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', color); 38798 const className = classnames_default()({ 38799 'has-text-color has-background': color || customColor, 38800 [backgroundClass]: backgroundClass, 38801 [colorClass]: colorClass 38802 }); 38803 const style = { 38804 backgroundColor: backgroundClass ? undefined : customColor, 38805 color: colorClass ? undefined : customColor 38806 }; 38807 return (0,external_wp_element_namespaceObject.createElement)("hr", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 38808 className, 38809 style 38810 })); 38811 }, 38812 38813 migrate(attributes) { 38814 const { 38815 color, 38816 customColor 38817 } = attributes; 38818 return { ...(0,external_lodash_namespaceObject.omit)(attributes, ['color', 'customColor']), 38819 backgroundColor: color ? color : undefined, 38820 opacity: 'css', 38821 style: customColor ? { 38822 color: { 38823 background: customColor 38824 } 38825 } : undefined 38826 }; 38827 } 38828 38829 }; 38830 /* harmony default export */ var separator_deprecated = ([separator_deprecated_v1]); 38831 38832 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/index.js 38833 /** 38834 * WordPress dependencies 38835 */ 38836 38837 /** 38838 * Internal dependencies 38839 */ 38840 38841 38842 const separator_metadata = { 38843 $schema: "https://schemas.wp.org/trunk/block.json", 38844 apiVersion: 2, 38845 name: "core/separator", 38846 title: "Separator", 38847 category: "design", 38848 description: "Create a break between ideas or sections with a horizontal separator.", 38849 keywords: ["horizontal-line", "hr", "divider"], 38850 textdomain: "default", 38851 attributes: { 38852 opacity: { 38853 type: "string", 38854 "default": "alpha-channel" 38855 } 38856 }, 38857 supports: { 38858 anchor: true, 38859 align: ["center", "wide", "full"], 38860 color: { 38861 __experimentalSkipSerialization: true, 38862 gradients: true, 38863 background: true, 38864 text: false, 38865 __experimentalDefaultControls: { 38866 background: true 38867 } 38868 } 38869 }, 38870 styles: [{ 38871 name: "default", 38872 label: "Default", 38873 isDefault: true 38874 }, { 38875 name: "wide", 38876 label: "Wide Line" 38877 }, { 38878 name: "dots", 38879 label: "Dots" 38880 }], 38881 editorStyle: "wp-block-separator-editor", 38882 style: "wp-block-separator" 38883 }; 38884 38885 38886 38887 const { 38888 name: separator_name 38889 } = separator_metadata; 38890 38891 const separator_settings = { 38892 icon: library_separator, 38893 example: { 38894 attributes: { 38895 customColor: '#065174', 38896 className: 'is-style-wide' 38897 } 38898 }, 38899 transforms: separator_transforms, 38900 edit: SeparatorEdit, 38901 save: separatorSave, 38902 deprecated: separator_deprecated 38903 }; 38904 38905 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/shortcode.js 38906 38907 38908 /** 38909 * WordPress dependencies 38910 */ 38911 38912 const shortcode = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 38913 viewBox: "0 0 24 24", 38914 xmlns: "http://www.w3.org/2000/svg" 38915 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 38916 d: "M16 4.2v1.5h2.5v12.5H16v1.5h4V4.2h-4zM4.2 19.8h4v-1.5H5.8V5.8h2.5V4.2h-4l-.1 15.6zm5.1-3.1l1.4.6 4-10-1.4-.6-4 10z" 38917 })); 38918 /* harmony default export */ var library_shortcode = (shortcode); 38919 38920 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/edit.js 38921 38922 38923 /** 38924 * WordPress dependencies 38925 */ 38926 38927 38928 38929 38930 function ShortcodeEdit(_ref) { 38931 let { 38932 attributes, 38933 setAttributes 38934 } = _ref; 38935 const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ShortcodeEdit); 38936 const inputId = `blocks-shortcode-input-$instanceId}`; 38937 return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 38938 className: 'components-placeholder' 38939 }), (0,external_wp_element_namespaceObject.createElement)("label", { 38940 htmlFor: inputId, 38941 className: "components-placeholder__label" 38942 }, (0,external_wp_element_namespaceObject.createElement)(icon, { 38943 icon: library_shortcode 38944 }), (0,external_wp_i18n_namespaceObject.__)('Shortcode')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PlainText, { 38945 className: "blocks-shortcode__textarea", 38946 id: inputId, 38947 value: attributes.text, 38948 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Shortcode text'), 38949 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write shortcode here…'), 38950 onChange: text => setAttributes({ 38951 text 38952 }) 38953 })); 38954 } 38955 38956 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/save.js 38957 38958 38959 /** 38960 * WordPress dependencies 38961 */ 38962 38963 function shortcode_save_save(_ref) { 38964 let { 38965 attributes 38966 } = _ref; 38967 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, attributes.text); 38968 } 38969 38970 ;// CONCATENATED MODULE: external ["wp","autop"] 38971 var external_wp_autop_namespaceObject = window["wp"]["autop"]; 38972 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/transforms.js 38973 /** 38974 * WordPress dependencies 38975 */ 38976 38977 const shortcode_transforms_transforms = { 38978 from: [{ 38979 type: 'shortcode', 38980 // Per "Shortcode names should be all lowercase and use all 38981 // letters, but numbers and underscores should work fine too. 38982 // Be wary of using hyphens (dashes), you'll be better off not 38983 // using them." in https://codex.wordpress.org/Shortcode_API 38984 // Require that the first character be a letter. This notably 38985 // prevents footnote markings ([1]) from being caught as 38986 // shortcodes. 38987 tag: '[a-z][a-z0-9_-]*', 38988 attributes: { 38989 text: { 38990 type: 'string', 38991 shortcode: (attrs, _ref) => { 38992 let { 38993 content 38994 } = _ref; 38995 return (0,external_wp_autop_namespaceObject.removep)((0,external_wp_autop_namespaceObject.autop)(content)); 38996 } 38997 } 38998 }, 38999 priority: 20 39000 }] 39001 }; 39002 /* harmony default export */ var shortcode_transforms = (shortcode_transforms_transforms); 39003 39004 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/index.js 39005 /** 39006 * WordPress dependencies 39007 */ 39008 39009 /** 39010 * Internal dependencies 39011 */ 39012 39013 39014 39015 39016 const shortcode_metadata = { 39017 $schema: "https://schemas.wp.org/trunk/block.json", 39018 apiVersion: 2, 39019 name: "core/shortcode", 39020 title: "Shortcode", 39021 category: "widgets", 39022 description: "Insert additional custom elements with a WordPress shortcode.", 39023 textdomain: "default", 39024 attributes: { 39025 text: { 39026 type: "string", 39027 source: "html" 39028 } 39029 }, 39030 supports: { 39031 className: false, 39032 customClassName: false, 39033 html: false 39034 }, 39035 editorStyle: "wp-block-shortcode-editor" 39036 }; 39037 const { 39038 name: shortcode_name 39039 } = shortcode_metadata; 39040 39041 const shortcode_settings = { 39042 icon: library_shortcode, 39043 transforms: shortcode_transforms, 39044 edit: ShortcodeEdit, 39045 save: shortcode_save_save 39046 }; 39047 39048 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/site-logo.js 39049 39050 39051 /** 39052 * WordPress dependencies 39053 */ 39054 39055 const siteLogo = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 39056 xmlns: "http://www.w3.org/2000/svg", 39057 viewBox: "0 0 24 24" 39058 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 39059 d: "M12 3c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 1.5c4.1 0 7.5 3.4 7.5 7.5v.1c-1.4-.8-3.3-1.7-3.4-1.8-.2-.1-.5-.1-.8.1l-2.9 2.1L9 11.3c-.2-.1-.4 0-.6.1l-3.7 2.2c-.1-.5-.2-1-.2-1.5 0-4.2 3.4-7.6 7.5-7.6zm0 15c-3.1 0-5.7-1.9-6.9-4.5l3.7-2.2 3.5 1.2c.2.1.5 0 .7-.1l2.9-2.1c.8.4 2.5 1.2 3.5 1.9-.9 3.3-3.9 5.8-7.4 5.8z" 39060 })); 39061 /* harmony default export */ var site_logo = (siteLogo); 39062 39063 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/edit.js 39064 39065 39066 /** 39067 * External dependencies 39068 */ 39069 39070 39071 /** 39072 * WordPress dependencies 39073 */ 39074 39075 39076 39077 39078 39079 39080 39081 39082 39083 39084 39085 39086 /** 39087 * Internal dependencies 39088 */ 39089 39090 39091 /** 39092 * Module constants 39093 */ 39094 39095 39096 const site_logo_edit_ALLOWED_MEDIA_TYPES = ['image']; 39097 const ACCEPT_MEDIA_STRING = 'image/*'; 39098 39099 const SiteLogo = _ref => { 39100 let { 39101 alt, 39102 attributes: { 39103 align, 39104 width, 39105 height, 39106 isLink, 39107 linkTarget, 39108 shouldSyncIcon 39109 }, 39110 containerRef, 39111 isSelected, 39112 setAttributes, 39113 setLogo, 39114 logoUrl, 39115 siteUrl, 39116 logoId, 39117 iconId, 39118 setIcon, 39119 canUserEdit 39120 } = _ref; 39121 const clientWidth = useClientWidth(containerRef, [align]); 39122 const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium'); 39123 const isWideAligned = (0,external_lodash_namespaceObject.includes)(['wide', 'full'], align); 39124 const isResizable = !isWideAligned && isLargeViewport; 39125 const [{ 39126 naturalWidth, 39127 naturalHeight 39128 }, setNaturalSize] = (0,external_wp_element_namespaceObject.useState)({}); 39129 const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false); 39130 const { 39131 toggleSelection 39132 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 39133 const classes = classnames_default()('custom-logo-link', { 39134 'is-transient': (0,external_wp_blob_namespaceObject.isBlobURL)(logoUrl) 39135 }); 39136 const { 39137 imageEditing, 39138 maxWidth, 39139 title 39140 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 39141 const { 39142 getSettings 39143 } = select(external_wp_blockEditor_namespaceObject.store); 39144 const siteEntities = select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('root', 'site'); 39145 return { 39146 title: siteEntities.title, 39147 ...(0,external_lodash_namespaceObject.pick)(getSettings(), ['imageEditing', 'maxWidth']) 39148 }; 39149 }, []); 39150 (0,external_wp_element_namespaceObject.useEffect)(() => { 39151 // Turn the `Use as site icon` toggle off if it is on but the logo and icon have 39152 // fallen out of sync. This can happen if the toggle is saved in the `on` position, 39153 // but changes are later made to the site icon in the Customizer. 39154 if (shouldSyncIcon && logoId !== iconId) { 39155 setAttributes({ 39156 shouldSyncIcon: false 39157 }); 39158 } 39159 }, []); 39160 (0,external_wp_element_namespaceObject.useEffect)(() => { 39161 if (!isSelected) { 39162 setIsEditingImage(false); 39163 } 39164 }, [isSelected]); 39165 39166 function onResizeStart() { 39167 toggleSelection(false); 39168 } 39169 39170 function onResizeStop() { 39171 toggleSelection(true); 39172 } 39173 39174 const img = (0,external_wp_element_namespaceObject.createElement)("img", { 39175 className: "custom-logo", 39176 src: logoUrl, 39177 alt: alt, 39178 onLoad: event => { 39179 setNaturalSize((0,external_lodash_namespaceObject.pick)(event.target, ['naturalWidth', 'naturalHeight'])); 39180 } 39181 }); 39182 let imgWrapper = img; // Disable reason: Image itself is not meant to be interactive, but 39183 // should direct focus to block. 39184 39185 if (isLink) { 39186 imgWrapper = 39187 /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */ 39188 (0,external_wp_element_namespaceObject.createElement)("a", { 39189 href: siteUrl, 39190 className: classes, 39191 rel: "home", 39192 title: title, 39193 onClick: event => event.preventDefault() 39194 }, img) 39195 /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */ 39196 ; 39197 } 39198 39199 let imageWidthWithinContainer; 39200 39201 if (clientWidth && naturalWidth && naturalHeight) { 39202 const exceedMaxWidth = naturalWidth > clientWidth; 39203 imageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth; 39204 } 39205 39206 if (!isResizable || !imageWidthWithinContainer) { 39207 return (0,external_wp_element_namespaceObject.createElement)("div", { 39208 style: { 39209 width, 39210 height 39211 } 39212 }, imgWrapper); 39213 } // Set the default width to a responsible size. 39214 // Note that this width is also set in the attached frontend CSS file. 39215 39216 39217 const defaultWidth = 120; 39218 const currentWidth = width || defaultWidth; 39219 const ratio = naturalWidth / naturalHeight; 39220 const currentHeight = currentWidth / ratio; 39221 const minWidth = naturalWidth < naturalHeight ? MIN_SIZE : Math.ceil(MIN_SIZE * ratio); 39222 const minHeight = naturalHeight < naturalWidth ? MIN_SIZE : Math.ceil(MIN_SIZE / ratio); // With the current implementation of ResizableBox, an image needs an 39223 // explicit pixel value for the max-width. In absence of being able to 39224 // set the content-width, this max-width is currently dictated by the 39225 // vanilla editor style. The following variable adds a buffer to this 39226 // vanilla style, so 3rd party themes have some wiggleroom. This does, 39227 // in most cases, allow you to scale the image beyond the width of the 39228 // main column, though not infinitely. 39229 // @todo It would be good to revisit this once a content-width variable 39230 // becomes available. 39231 39232 const maxWidthBuffer = maxWidth * 2.5; 39233 let showRightHandle = false; 39234 let showLeftHandle = false; 39235 /* eslint-disable no-lonely-if */ 39236 // See https://github.com/WordPress/gutenberg/issues/7584. 39237 39238 if (align === 'center') { 39239 // When the image is centered, show both handles. 39240 showRightHandle = true; 39241 showLeftHandle = true; 39242 } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) { 39243 // In RTL mode the image is on the right by default. 39244 // Show the right handle and hide the left handle only when it is 39245 // aligned left. Otherwise always show the left handle. 39246 if (align === 'left') { 39247 showRightHandle = true; 39248 } else { 39249 showLeftHandle = true; 39250 } 39251 } else { 39252 // Show the left handle and hide the right handle only when the 39253 // image is aligned right. Otherwise always show the right handle. 39254 if (align === 'right') { 39255 showLeftHandle = true; 39256 } else { 39257 showRightHandle = true; 39258 } 39259 } 39260 /* eslint-enable no-lonely-if */ 39261 39262 39263 const canEditImage = logoId && naturalWidth && naturalHeight && imageEditing; 39264 const imgEdit = canEditImage && isEditingImage ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditingProvider, { 39265 id: logoId, 39266 url: logoUrl, 39267 naturalWidth: naturalWidth, 39268 naturalHeight: naturalHeight, 39269 clientWidth: clientWidth, 39270 onSaveImage: imageAttributes => { 39271 setLogo(imageAttributes.id); 39272 }, 39273 isEditing: isEditingImage, 39274 onFinishEditing: () => setIsEditingImage(false) 39275 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, { 39276 url: logoUrl, 39277 width: currentWidth, 39278 height: currentHeight, 39279 clientWidth: clientWidth, 39280 naturalHeight: naturalHeight, 39281 naturalWidth: naturalWidth 39282 })) : (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, { 39283 size: { 39284 width: currentWidth, 39285 height: currentHeight 39286 }, 39287 showHandle: isSelected, 39288 minWidth: minWidth, 39289 maxWidth: maxWidthBuffer, 39290 minHeight: minHeight, 39291 maxHeight: maxWidthBuffer / ratio, 39292 lockAspectRatio: true, 39293 enable: { 39294 top: false, 39295 right: showRightHandle, 39296 bottom: true, 39297 left: showLeftHandle 39298 }, 39299 onResizeStart: onResizeStart, 39300 onResizeStop: (event, direction, elt, delta) => { 39301 onResizeStop(); 39302 setAttributes({ 39303 width: parseInt(currentWidth + delta.width, 10), 39304 height: parseInt(currentHeight + delta.height, 10) 39305 }); 39306 } 39307 }, imgWrapper); 39308 const syncSiteIconHelpText = (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'), { 39309 a: // eslint-disable-next-line jsx-a11y/anchor-has-content 39310 (0,external_wp_element_namespaceObject.createElement)("a", { 39311 href: siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline', 39312 target: "_blank", 39313 rel: "noopener noreferrer" 39314 }) 39315 }); 39316 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 39317 title: (0,external_wp_i18n_namespaceObject.__)('Settings') 39318 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 39319 label: (0,external_wp_i18n_namespaceObject.__)('Image width'), 39320 onChange: newWidth => setAttributes({ 39321 width: newWidth 39322 }), 39323 min: minWidth, 39324 max: maxWidthBuffer, 39325 initialPosition: Math.min(defaultWidth, maxWidthBuffer), 39326 value: width || '', 39327 disabled: !isResizable 39328 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 39329 label: (0,external_wp_i18n_namespaceObject.__)('Link image to home'), 39330 onChange: () => setAttributes({ 39331 isLink: !isLink 39332 }), 39333 checked: isLink 39334 }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 39335 label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'), 39336 onChange: value => setAttributes({ 39337 linkTarget: value ? '_blank' : '_self' 39338 }), 39339 checked: linkTarget === '_blank' 39340 })), canUserEdit && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 39341 label: (0,external_wp_i18n_namespaceObject.__)('Use as site icon'), 39342 onChange: value => { 39343 setAttributes({ 39344 shouldSyncIcon: value 39345 }); 39346 setIcon(value ? logoId : undefined); 39347 }, 39348 checked: !!shouldSyncIcon, 39349 help: syncSiteIconHelpText 39350 })))), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 39351 group: "block" 39352 }, canEditImage && !isEditingImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 39353 onClick: () => setIsEditingImage(true), 39354 icon: library_crop, 39355 label: (0,external_wp_i18n_namespaceObject.__)('Crop') 39356 })), imgEdit); 39357 }; 39358 39359 function LogoEdit(_ref2) { 39360 let { 39361 attributes, 39362 className, 39363 setAttributes, 39364 isSelected 39365 } = _ref2; 39366 const { 39367 width, 39368 shouldSyncIcon 39369 } = attributes; 39370 const [logoUrl, setLogoUrl] = (0,external_wp_element_namespaceObject.useState)(); 39371 const ref = (0,external_wp_element_namespaceObject.useRef)(); 39372 const { 39373 siteLogoId, 39374 canUserEdit, 39375 url, 39376 siteIconId, 39377 mediaItemData, 39378 isRequestingMediaItem 39379 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 39380 const { 39381 canUser, 39382 getEntityRecord, 39383 getEditedEntityRecord 39384 } = select(external_wp_coreData_namespaceObject.store); 39385 const siteSettings = getEditedEntityRecord('root', 'site'); 39386 const siteData = getEntityRecord('root', '__unstableBase'); 39387 39388 const _siteLogo = siteSettings === null || siteSettings === void 0 ? void 0 : siteSettings.site_logo; 39389 39390 const _readOnlyLogo = siteData === null || siteData === void 0 ? void 0 : siteData.site_logo; 39391 39392 const _canUserEdit = canUser('update', 'settings'); 39393 39394 const _siteLogoId = _canUserEdit ? _siteLogo : _readOnlyLogo; 39395 39396 const _siteIconId = siteSettings === null || siteSettings === void 0 ? void 0 : siteSettings.site_icon; 39397 39398 const mediaItem = _siteLogoId && select(external_wp_coreData_namespaceObject.store).getMedia(_siteLogoId, { 39399 context: 'view' 39400 }); 39401 39402 const _isRequestingMediaItem = _siteLogoId && !select(external_wp_coreData_namespaceObject.store).hasFinishedResolution('getMedia', [_siteLogoId, { 39403 context: 'view' 39404 }]); 39405 39406 return { 39407 siteLogoId: _siteLogoId, 39408 canUserEdit: _canUserEdit, 39409 url: siteData === null || siteData === void 0 ? void 0 : siteData.url, 39410 mediaItemData: mediaItem, 39411 isRequestingMediaItem: _isRequestingMediaItem, 39412 siteIconId: _siteIconId 39413 }; 39414 }, []); 39415 const { 39416 editEntityRecord 39417 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store); 39418 39419 const setLogo = function (newValue) { 39420 let shouldForceSync = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 39421 39422 // `shouldForceSync` is used to force syncing when the attribute 39423 // may not have updated yet. 39424 if (shouldSyncIcon || shouldForceSync) { 39425 setIcon(newValue); 39426 } 39427 39428 editEntityRecord('root', 'site', undefined, { 39429 site_logo: newValue 39430 }); 39431 }; 39432 39433 const setIcon = newValue => // The new value needs to be `null` to reset the Site Icon. 39434 editEntityRecord('root', 'site', undefined, { 39435 site_icon: newValue !== null && newValue !== void 0 ? newValue : null 39436 }); 39437 39438 let alt = null; 39439 39440 if (mediaItemData) { 39441 alt = mediaItemData.alt_text; 39442 39443 if (logoUrl !== mediaItemData.source_url) { 39444 setLogoUrl(mediaItemData.source_url); 39445 } 39446 } 39447 39448 const onInitialSelectLogo = media => { 39449 // Initialize the syncSiteIcon toggle. If we currently have no Site logo and no 39450 // site icon, automatically sync the logo to the icon. 39451 if (shouldSyncIcon === undefined) { 39452 const shouldForceSync = !siteIconId; 39453 setAttributes({ 39454 shouldSyncIcon: shouldForceSync 39455 }); // Because we cannot rely on the `shouldSyncIcon` attribute to have updated by 39456 // the time `setLogo` is called, pass an argument to force the syncing. 39457 39458 onSelectLogo(media, shouldForceSync); 39459 return; 39460 } 39461 39462 onSelectLogo(media); 39463 }; 39464 39465 const onSelectLogo = function (media) { 39466 let shouldForceSync = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 39467 39468 if (!media) { 39469 return; 39470 } 39471 39472 if (!media.id && media.url) { 39473 // This is a temporary blob image. 39474 setLogo(undefined); 39475 setLogoUrl(media.url); 39476 return; 39477 } 39478 39479 setLogo(media.id, shouldForceSync); 39480 }; 39481 39482 const onRemoveLogo = () => { 39483 setLogo(null); 39484 setLogoUrl(undefined); 39485 setAttributes({ 39486 width: undefined 39487 }); 39488 }; 39489 39490 const { 39491 createErrorNotice 39492 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); 39493 39494 const onUploadError = message => { 39495 createErrorNotice(message[2], { 39496 type: 'snackbar' 39497 }); 39498 }; 39499 39500 const controls = canUserEdit && logoUrl && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 39501 group: "other" 39502 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, { 39503 mediaURL: logoUrl, 39504 allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES, 39505 accept: ACCEPT_MEDIA_STRING, 39506 onSelect: onSelectLogo, 39507 onError: onUploadError 39508 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { 39509 onClick: onRemoveLogo 39510 }, (0,external_wp_i18n_namespaceObject.__)('Reset')))); 39511 let logoImage; 39512 const isLoading = siteLogoId === undefined || isRequestingMediaItem; 39513 39514 if (isLoading) { 39515 logoImage = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null); 39516 } 39517 39518 if (!!logoUrl) { 39519 logoImage = (0,external_wp_element_namespaceObject.createElement)(SiteLogo, { 39520 alt: alt, 39521 attributes: attributes, 39522 className: className, 39523 containerRef: ref, 39524 isSelected: isSelected, 39525 setAttributes: setAttributes, 39526 logoUrl: logoUrl, 39527 setLogo: setLogo, 39528 logoId: (mediaItemData === null || mediaItemData === void 0 ? void 0 : mediaItemData.id) || siteLogoId, 39529 siteUrl: url, 39530 setIcon: setIcon, 39531 iconId: siteIconId, 39532 canUserEdit: canUserEdit 39533 }); 39534 } 39535 39536 const placeholder = content => { 39537 const placeholderClassName = classnames_default()('block-editor-media-placeholder', className); 39538 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 39539 className: placeholderClassName, 39540 preview: logoImage 39541 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 39542 className: "components-placeholder__illustration", 39543 fill: "none", 39544 xmlns: "http://www.w3.org/2000/svg", 39545 viewBox: "0 0 60 60" 39546 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 39547 vectorEffect: "non-scaling-stroke", 39548 d: "m61 32.622-13.555-9.137-15.888 9.859a5 5 0 0 1-5.386-.073l-9.095-5.989L1 37.5" 39549 })), content); 39550 }; 39551 39552 const classes = classnames_default()(className, { 39553 'is-default-size': !width 39554 }); 39555 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 39556 ref, 39557 className: classes 39558 }); 39559 39560 const label = (0,external_wp_i18n_namespaceObject.__)('Add a site logo'); 39561 39562 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, controls, !!logoUrl && logoImage, !logoUrl && !canUserEdit && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 39563 className: "site-logo_placeholder" 39564 }, isLoading && (0,external_wp_element_namespaceObject.createElement)("span", { 39565 className: "components-placeholder__preview" 39566 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null))), !logoUrl && canUserEdit && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, { 39567 onSelect: onInitialSelectLogo, 39568 accept: ACCEPT_MEDIA_STRING, 39569 allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES, 39570 onError: onUploadError, 39571 placeholder: placeholder, 39572 mediaLibraryButton: _ref3 => { 39573 let { 39574 open 39575 } = _ref3; 39576 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 39577 icon: library_upload, 39578 variant: "primary", 39579 label: label, 39580 showTooltip: true, 39581 tooltipPosition: "top center", 39582 onClick: () => { 39583 open(); 39584 } 39585 }); 39586 } 39587 })); 39588 } 39589 39590 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/transforms.js 39591 /** 39592 * WordPress dependencies 39593 */ 39594 39595 const site_logo_transforms_transforms = { 39596 to: [{ 39597 type: 'block', 39598 blocks: ['core/site-title'], 39599 transform: _ref => { 39600 let { 39601 isLink, 39602 linkTarget 39603 } = _ref; 39604 return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-title', { 39605 isLink, 39606 linkTarget 39607 }); 39608 } 39609 }] 39610 }; 39611 /* harmony default export */ var site_logo_transforms = (site_logo_transforms_transforms); 39612 39613 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-logo/index.js 39614 /** 39615 * WordPress dependencies 39616 */ 39617 39618 /** 39619 * Internal dependencies 39620 */ 39621 39622 const site_logo_metadata = { 39623 $schema: "https://schemas.wp.org/trunk/block.json", 39624 apiVersion: 2, 39625 name: "core/site-logo", 39626 title: "Site Logo", 39627 category: "theme", 39628 description: "Display a graphic to represent this site. Update the block, and the changes apply everywhere it\u2019s used. This is different than the site icon, which is the smaller image visible in your dashboard, browser tabs, etc used to help others recognize this site.", 39629 textdomain: "default", 39630 attributes: { 39631 width: { 39632 type: "number" 39633 }, 39634 isLink: { 39635 type: "boolean", 39636 "default": true 39637 }, 39638 linkTarget: { 39639 type: "string", 39640 "default": "_self" 39641 }, 39642 shouldSyncIcon: { 39643 type: "boolean" 39644 } 39645 }, 39646 example: { 39647 viewportWidth: 500, 39648 attributes: { 39649 width: 350, 39650 className: "block-editor-block-types-list__site-logo-example" 39651 } 39652 }, 39653 supports: { 39654 html: false, 39655 align: true, 39656 alignWide: false, 39657 color: { 39658 __experimentalDuotone: "img, .components-placeholder__illustration, .components-placeholder::before", 39659 text: false, 39660 background: false 39661 } 39662 }, 39663 styles: [{ 39664 name: "default", 39665 label: "Default", 39666 isDefault: true 39667 }, { 39668 name: "rounded", 39669 label: "Rounded" 39670 }], 39671 editorStyle: "wp-block-site-logo-editor", 39672 style: "wp-block-site-logo" 39673 }; 39674 39675 39676 const { 39677 name: site_logo_name 39678 } = site_logo_metadata; 39679 39680 const site_logo_settings = { 39681 icon: site_logo, 39682 edit: LogoEdit, 39683 transforms: site_logo_transforms 39684 }; 39685 39686 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/edit.js 39687 39688 39689 39690 /** 39691 * External dependencies 39692 */ 39693 39694 /** 39695 * WordPress dependencies 39696 */ 39697 39698 39699 39700 39701 39702 39703 function SiteTaglineEdit(_ref) { 39704 let { 39705 attributes, 39706 setAttributes, 39707 insertBlocksAfter 39708 } = _ref; 39709 const { 39710 textAlign 39711 } = attributes; 39712 const [siteTagline, setSiteTagline] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'description'); 39713 const { 39714 canUserEdit, 39715 readOnlySiteTagLine 39716 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 39717 const { 39718 canUser, 39719 getEntityRecord 39720 } = select(external_wp_coreData_namespaceObject.store); 39721 const siteData = getEntityRecord('root', '__unstableBase'); 39722 return { 39723 canUserEdit: canUser('update', 'settings'), 39724 readOnlySiteTagLine: siteData === null || siteData === void 0 ? void 0 : siteData.description 39725 }; 39726 }, []); 39727 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 39728 className: classnames_default()({ 39729 [`has-text-align-$textAlign}`]: textAlign, 39730 'wp-block-site-tagline__placeholder': !canUserEdit && !readOnlySiteTagLine 39731 }) 39732 }); 39733 const siteTaglineContent = canUserEdit ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({ 39734 allowedFormats: [], 39735 onChange: setSiteTagline, 39736 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site tagline text'), 39737 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site tagline…'), 39738 tagName: "p", 39739 value: siteTagline, 39740 disableLineBreaks: true, 39741 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())) 39742 }, blockProps)) : (0,external_wp_element_namespaceObject.createElement)("p", blockProps, readOnlySiteTagLine || (0,external_wp_i18n_namespaceObject.__)('Site Tagline placeholder')); 39743 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 39744 group: "block" 39745 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 39746 onChange: newAlign => setAttributes({ 39747 textAlign: newAlign 39748 }), 39749 value: textAlign 39750 })), siteTaglineContent); 39751 } 39752 39753 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/icon.js 39754 39755 39756 /** 39757 * WordPress dependencies 39758 */ 39759 39760 /* harmony default export */ var site_tagline_icon = ((0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 39761 xmlns: "http://www.w3.org/2000/svg", 39762 width: "24", 39763 height: "24" 39764 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 39765 fill: "none", 39766 d: "M0 0h24v24H0z" 39767 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 39768 d: "M4 9h16v2H4V9zm0 4h10v2H4v-2z" 39769 }))); 39770 39771 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/deprecated.js 39772 /** 39773 * Internal dependencies 39774 */ 39775 39776 const site_tagline_deprecated_v1 = { 39777 attributes: { 39778 textAlign: { 39779 type: 'string' 39780 } 39781 }, 39782 supports: { 39783 align: ['wide', 'full'], 39784 html: false, 39785 color: { 39786 gradients: true 39787 }, 39788 spacing: { 39789 margin: true, 39790 padding: true 39791 }, 39792 typography: { 39793 fontSize: true, 39794 lineHeight: true, 39795 __experimentalFontFamily: true, 39796 __experimentalTextTransform: true, 39797 __experimentalFontStyle: true, 39798 __experimentalFontWeight: true, 39799 __experimentalLetterSpacing: true 39800 } 39801 }, 39802 39803 save() { 39804 return null; 39805 }, 39806 39807 migrate: migrate_font_family, 39808 39809 isEligible(_ref) { 39810 var _style$typography; 39811 39812 let { 39813 style 39814 } = _ref; 39815 return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily; 39816 } 39817 39818 }; 39819 /** 39820 * New deprecations need to be placed first 39821 * for them to have higher priority. 39822 * 39823 * Old deprecations may need to be updated as well. 39824 * 39825 * See block-deprecation.md 39826 */ 39827 39828 /* harmony default export */ var site_tagline_deprecated = ([site_tagline_deprecated_v1]); 39829 39830 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-tagline/index.js 39831 /** 39832 * Internal dependencies 39833 */ 39834 const site_tagline_metadata = { 39835 $schema: "https://schemas.wp.org/trunk/block.json", 39836 apiVersion: 2, 39837 name: "core/site-tagline", 39838 title: "Site Tagline", 39839 category: "theme", 39840 description: "Describe in a few words what the site is about. The tagline can be used in search results or when sharing on social networks even if it's not displayed in the theme design.", 39841 keywords: ["description"], 39842 textdomain: "default", 39843 attributes: { 39844 textAlign: { 39845 type: "string" 39846 } 39847 }, 39848 supports: { 39849 align: ["wide", "full"], 39850 html: false, 39851 color: { 39852 gradients: true, 39853 __experimentalDefaultControls: { 39854 background: true, 39855 text: true 39856 } 39857 }, 39858 spacing: { 39859 margin: true, 39860 padding: true 39861 }, 39862 typography: { 39863 fontSize: true, 39864 lineHeight: true, 39865 __experimentalFontFamily: true, 39866 __experimentalTextTransform: true, 39867 __experimentalFontStyle: true, 39868 __experimentalFontWeight: true, 39869 __experimentalLetterSpacing: true, 39870 __experimentalDefaultControls: { 39871 fontSize: true 39872 } 39873 } 39874 }, 39875 editorStyle: "wp-block-site-tagline-editor" 39876 }; 39877 39878 39879 39880 const { 39881 name: site_tagline_name 39882 } = site_tagline_metadata; 39883 39884 const site_tagline_settings = { 39885 icon: site_tagline_icon, 39886 edit: SiteTaglineEdit, 39887 deprecated: site_tagline_deprecated 39888 }; 39889 39890 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/map-marker.js 39891 39892 39893 /** 39894 * WordPress dependencies 39895 */ 39896 39897 const mapMarker = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 39898 xmlns: "https://www.w3.org/2000/svg", 39899 viewBox: "0 0 24 24" 39900 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 39901 d: "M12 9c-.8 0-1.5.7-1.5 1.5S11.2 12 12 12s1.5-.7 1.5-1.5S12.8 9 12 9zm0-5c-3.6 0-6.5 2.8-6.5 6.2 0 .8.3 1.8.9 3.1.5 1.1 1.2 2.3 2 3.6.7 1 3 3.8 3.2 3.9l.4.5.4-.5c.2-.2 2.6-2.9 3.2-3.9.8-1.2 1.5-2.5 2-3.6.6-1.3.9-2.3.9-3.1C18.5 6.8 15.6 4 12 4zm4.3 8.7c-.5 1-1.1 2.2-1.9 3.4-.5.7-1.7 2.2-2.4 3-.7-.8-1.9-2.3-2.4-3-.8-1.2-1.4-2.3-1.9-3.3-.6-1.4-.7-2.2-.7-2.5 0-2.6 2.2-4.7 5-4.7s5 2.1 5 4.7c0 .2-.1 1-.7 2.4z" 39902 })); 39903 /* harmony default export */ var map_marker = (mapMarker); 39904 39905 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/edit/level-icon.js 39906 39907 39908 /** 39909 * WordPress dependencies 39910 */ 39911 39912 39913 function LevelIcon(_ref) { 39914 let { 39915 level, 39916 isPressed = false 39917 } = _ref; 39918 if (level === 0) return library_paragraph; 39919 const levelToPath = { 39920 1: 'M9 5h2v10H9v-4H5v4H3V5h2v4h4V5zm6.6 0c-.6.9-1.5 1.7-2.6 2v1h2v7h2V5h-1.4z', 39921 2: 'M7 5h2v10H7v-4H3v4H1V5h2v4h4V5zm8 8c.5-.4.6-.6 1.1-1.1.4-.4.8-.8 1.2-1.3.3-.4.6-.8.9-1.3.2-.4.3-.8.3-1.3 0-.4-.1-.9-.3-1.3-.2-.4-.4-.7-.8-1-.3-.3-.7-.5-1.2-.6-.5-.2-1-.2-1.5-.2-.4 0-.7 0-1.1.1-.3.1-.7.2-1 .3-.3.1-.6.3-.9.5-.3.2-.6.4-.8.7l1.2 1.2c.3-.3.6-.5 1-.7.4-.2.7-.3 1.2-.3s.9.1 1.3.4c.3.3.5.7.5 1.1 0 .4-.1.8-.4 1.1-.3.5-.6.9-1 1.2-.4.4-1 .9-1.6 1.4-.6.5-1.4 1.1-2.2 1.6V15h8v-2H15z', 39922 3: 'M12.1 12.2c.4.3.8.5 1.2.7.4.2.9.3 1.4.3.5 0 1-.1 1.4-.3.3-.1.5-.5.5-.8 0-.2 0-.4-.1-.6-.1-.2-.3-.3-.5-.4-.3-.1-.7-.2-1-.3-.5-.1-1-.1-1.5-.1V9.1c.7.1 1.5-.1 2.2-.4.4-.2.6-.5.6-.9 0-.3-.1-.6-.4-.8-.3-.2-.7-.3-1.1-.3-.4 0-.8.1-1.1.3-.4.2-.7.4-1.1.6l-1.2-1.4c.5-.4 1.1-.7 1.6-.9.5-.2 1.2-.3 1.8-.3.5 0 1 .1 1.6.2.4.1.8.3 1.2.5.3.2.6.5.8.8.2.3.3.7.3 1.1 0 .5-.2.9-.5 1.3-.4.4-.9.7-1.5.9v.1c.6.1 1.2.4 1.6.8.4.4.7.9.7 1.5 0 .4-.1.8-.3 1.2-.2.4-.5.7-.9.9-.4.3-.9.4-1.3.5-.5.1-1 .2-1.6.2-.8 0-1.6-.1-2.3-.4-.6-.2-1.1-.6-1.6-1l1.1-1.4zM7 9H3V5H1v10h2v-4h4v4h2V5H7v4z', 39923 4: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm10-2h-1v2h-2v-2h-5v-2l4-6h3v6h1v2zm-3-2V7l-2.8 4H16z', 39924 5: 'M12.1 12.2c.4.3.7.5 1.1.7.4.2.9.3 1.3.3.5 0 1-.1 1.4-.4.4-.3.6-.7.6-1.1 0-.4-.2-.9-.6-1.1-.4-.3-.9-.4-1.4-.4H14c-.1 0-.3 0-.4.1l-.4.1-.5.2-1-.6.3-5h6.4v1.9h-4.3L14 8.8c.2-.1.5-.1.7-.2.2 0 .5-.1.7-.1.5 0 .9.1 1.4.2.4.1.8.3 1.1.6.3.2.6.6.8.9.2.4.3.9.3 1.4 0 .5-.1 1-.3 1.4-.2.4-.5.8-.9 1.1-.4.3-.8.5-1.3.7-.5.2-1 .3-1.5.3-.8 0-1.6-.1-2.3-.4-.6-.2-1.1-.6-1.6-1-.1-.1 1-1.5 1-1.5zM9 15H7v-4H3v4H1V5h2v4h4V5h2v10z', 39925 6: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm8.6-7.5c-.2-.2-.5-.4-.8-.5-.6-.2-1.3-.2-1.9 0-.3.1-.6.3-.8.5l-.6.9c-.2.5-.2.9-.2 1.4.4-.3.8-.6 1.2-.8.4-.2.8-.3 1.3-.3.4 0 .8 0 1.2.2.4.1.7.3 1 .6.3.3.5.6.7.9.2.4.3.8.3 1.3s-.1.9-.3 1.4c-.2.4-.5.7-.8 1-.4.3-.8.5-1.2.6-1 .3-2 .3-3 0-.5-.2-1-.5-1.4-.9-.4-.4-.8-.9-1-1.5-.2-.6-.3-1.3-.3-2.1s.1-1.6.4-2.3c.2-.6.6-1.2 1-1.6.4-.4.9-.7 1.4-.9.6-.3 1.1-.4 1.7-.4.7 0 1.4.1 2 .3.5.2 1 .5 1.4.8 0 .1-1.3 1.4-1.3 1.4zm-2.4 5.8c.2 0 .4 0 .6-.1.2 0 .4-.1.5-.2.1-.1.3-.3.4-.5.1-.2.1-.5.1-.7 0-.4-.1-.8-.4-1.1-.3-.2-.7-.3-1.1-.3-.3 0-.7.1-1 .2-.4.2-.7.4-1 .7 0 .3.1.7.3 1 .1.2.3.4.4.6.2.1.3.3.5.3.2.1.5.2.7.1z' 39926 }; 39927 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 39928 width: "20", 39929 height: "20", 39930 viewBox: "0 0 20 20", 39931 xmlns: "http://www.w3.org/2000/svg", 39932 isPressed: isPressed 39933 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 39934 d: levelToPath[level] 39935 })); 39936 } 39937 39938 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/edit/level-toolbar.js 39939 39940 39941 /** 39942 * WordPress dependencies 39943 */ 39944 39945 39946 /** 39947 * Internal dependencies 39948 */ 39949 39950 39951 function LevelControl(_ref) { 39952 let { 39953 level, 39954 onChange 39955 } = _ref; 39956 const allControls = [1, 2, 3, 4, 5, 6, 0].map(currentLevel => { 39957 const isActive = currentLevel === level; 39958 return { 39959 icon: (0,external_wp_element_namespaceObject.createElement)(LevelIcon, { 39960 level: currentLevel, 39961 isPressed: isActive 39962 }), 39963 title: currentLevel === 0 ? (0,external_wp_i18n_namespaceObject.__)('Paragraph') : // translators: %s: heading level e.g: "1", "2", "3" 39964 (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Heading %d'), currentLevel), 39965 isActive, 39966 onClick: () => onChange(currentLevel) 39967 }; 39968 }); 39969 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, { 39970 label: (0,external_wp_i18n_namespaceObject.__)('Change heading level'), 39971 icon: (0,external_wp_element_namespaceObject.createElement)(LevelIcon, { 39972 level: level 39973 }), 39974 controls: allControls 39975 }); 39976 } 39977 39978 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/edit/index.js 39979 39980 39981 /** 39982 * External dependencies 39983 */ 39984 39985 /** 39986 * WordPress dependencies 39987 */ 39988 39989 39990 39991 39992 39993 39994 39995 39996 /** 39997 * Internal dependencies 39998 */ 39999 40000 40001 function SiteTitleEdit(_ref) { 40002 let { 40003 attributes, 40004 setAttributes, 40005 insertBlocksAfter 40006 } = _ref; 40007 const { 40008 level, 40009 textAlign, 40010 isLink, 40011 linkTarget 40012 } = attributes; 40013 const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'title'); 40014 const { 40015 canUserEdit, 40016 readOnlyTitle 40017 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 40018 const { 40019 canUser, 40020 getEntityRecord 40021 } = select(external_wp_coreData_namespaceObject.store); 40022 const siteData = getEntityRecord('root', '__unstableBase'); 40023 return { 40024 canUserEdit: canUser('update', 'settings'), 40025 readOnlyTitle: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(siteData === null || siteData === void 0 ? void 0 : siteData.name) 40026 }; 40027 }, []); 40028 const TagName = level === 0 ? 'p' : `h$level}`; 40029 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 40030 className: classnames_default()({ 40031 [`has-text-align-$textAlign}`]: textAlign, 40032 'wp-block-site-title__placeholder': !canUserEdit && !readOnlyTitle 40033 }) 40034 }); 40035 const siteTitleContent = canUserEdit ? (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 40036 tagName: isLink ? 'a' : 'span', 40037 href: isLink ? '#site-title-pseudo-link' : undefined, 40038 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site title text'), 40039 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site title…'), 40040 value: title, 40041 onChange: setTitle, 40042 allowedFormats: [], 40043 disableLineBreaks: true, 40044 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())) 40045 })) : (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, isLink ? (0,external_wp_element_namespaceObject.createElement)("a", { 40046 href: "#site-title-pseudo-link", 40047 onClick: event => event.preventDefault() 40048 }, readOnlyTitle || (0,external_wp_i18n_namespaceObject.__)('Site Title placeholder')) : (0,external_wp_element_namespaceObject.createElement)("span", null, title || readOnlyTitle)); 40049 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 40050 group: "block" 40051 }, (0,external_wp_element_namespaceObject.createElement)(LevelControl, { 40052 level: level, 40053 onChange: newLevel => setAttributes({ 40054 level: newLevel 40055 }) 40056 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 40057 value: textAlign, 40058 onChange: nextAlign => { 40059 setAttributes({ 40060 textAlign: nextAlign 40061 }); 40062 } 40063 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 40064 title: (0,external_wp_i18n_namespaceObject.__)('Link settings') 40065 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 40066 label: (0,external_wp_i18n_namespaceObject.__)('Make title link to home'), 40067 onChange: () => setAttributes({ 40068 isLink: !isLink 40069 }), 40070 checked: isLink 40071 }), isLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 40072 label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'), 40073 onChange: value => setAttributes({ 40074 linkTarget: value ? '_blank' : '_self' 40075 }), 40076 checked: linkTarget === '_blank' 40077 }))), siteTitleContent); 40078 } 40079 40080 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/deprecated.js 40081 /** 40082 * Internal dependencies 40083 */ 40084 40085 const site_title_deprecated_v1 = { 40086 attributes: { 40087 level: { 40088 type: 'number', 40089 default: 1 40090 }, 40091 textAlign: { 40092 type: 'string' 40093 }, 40094 isLink: { 40095 type: 'boolean', 40096 default: true 40097 }, 40098 linkTarget: { 40099 type: 'string', 40100 default: '_self' 40101 } 40102 }, 40103 supports: { 40104 align: ['wide', 'full'], 40105 html: false, 40106 color: { 40107 gradients: true, 40108 link: true 40109 }, 40110 spacing: { 40111 padding: true, 40112 margin: true 40113 }, 40114 typography: { 40115 fontSize: true, 40116 lineHeight: true, 40117 __experimentalFontFamily: true, 40118 __experimentalTextTransform: true, 40119 __experimentalFontStyle: true, 40120 __experimentalFontWeight: true, 40121 __experimentalLetterSpacing: true 40122 } 40123 }, 40124 40125 save() { 40126 return null; 40127 }, 40128 40129 migrate: migrate_font_family, 40130 40131 isEligible(_ref) { 40132 var _style$typography; 40133 40134 let { 40135 style 40136 } = _ref; 40137 return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily; 40138 } 40139 40140 }; 40141 /** 40142 * New deprecations need to be placed first 40143 * for them to have higher priority. 40144 * 40145 * Old deprecations may need to be updated as well. 40146 * 40147 * See block-deprecation.md 40148 */ 40149 40150 /* harmony default export */ var site_title_deprecated = ([site_title_deprecated_v1]); 40151 40152 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/transforms.js 40153 /** 40154 * WordPress dependencies 40155 */ 40156 40157 const site_title_transforms_transforms = { 40158 to: [{ 40159 type: 'block', 40160 blocks: ['core/site-logo'], 40161 transform: _ref => { 40162 let { 40163 isLink, 40164 linkTarget 40165 } = _ref; 40166 return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo', { 40167 isLink, 40168 linkTarget 40169 }); 40170 } 40171 }] 40172 }; 40173 /* harmony default export */ var site_title_transforms = (site_title_transforms_transforms); 40174 40175 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/site-title/index.js 40176 /** 40177 * WordPress dependencies 40178 */ 40179 40180 /** 40181 * Internal dependencies 40182 */ 40183 40184 const site_title_metadata = { 40185 $schema: "https://schemas.wp.org/trunk/block.json", 40186 apiVersion: 2, 40187 name: "core/site-title", 40188 title: "Site Title", 40189 category: "theme", 40190 description: "Displays the name of this site. Update the block, and the changes apply everywhere it\u2019s used. This will also appear in the browser title bar and in search results.", 40191 textdomain: "default", 40192 attributes: { 40193 level: { 40194 type: "number", 40195 "default": 1 40196 }, 40197 textAlign: { 40198 type: "string" 40199 }, 40200 isLink: { 40201 type: "boolean", 40202 "default": true 40203 }, 40204 linkTarget: { 40205 type: "string", 40206 "default": "_self" 40207 } 40208 }, 40209 example: { 40210 viewportWidth: 500 40211 }, 40212 supports: { 40213 align: ["wide", "full"], 40214 html: false, 40215 color: { 40216 gradients: true, 40217 link: true, 40218 __experimentalDefaultControls: { 40219 background: true, 40220 text: true, 40221 link: true 40222 } 40223 }, 40224 spacing: { 40225 padding: true, 40226 margin: true 40227 }, 40228 typography: { 40229 fontSize: true, 40230 lineHeight: true, 40231 __experimentalFontFamily: true, 40232 __experimentalTextTransform: true, 40233 __experimentalFontStyle: true, 40234 __experimentalFontWeight: true, 40235 __experimentalLetterSpacing: true, 40236 __experimentalDefaultControls: { 40237 fontSize: true, 40238 lineHeight: true, 40239 fontAppearance: true, 40240 letterSpacing: true, 40241 textTransform: true 40242 } 40243 } 40244 }, 40245 editorStyle: "wp-block-site-title-editor" 40246 }; 40247 40248 40249 40250 const { 40251 name: site_title_name 40252 } = site_title_metadata; 40253 40254 const site_title_settings = { 40255 icon: map_marker, 40256 edit: SiteTitleEdit, 40257 transforms: site_title_transforms, 40258 deprecated: site_title_deprecated 40259 }; 40260 40261 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/share.js 40262 40263 40264 /** 40265 * WordPress dependencies 40266 */ 40267 40268 const share = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40269 viewBox: "0 0 24 24", 40270 xmlns: "http://www.w3.org/2000/svg" 40271 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40272 d: "M9 11.8l6.1-4.5c.1.4.4.7.9.7h2c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1h-2c-.6 0-1 .4-1 1v.4l-6.4 4.8c-.2-.1-.4-.2-.6-.2H6c-.6 0-1 .4-1 1v2c0 .6.4 1 1 1h2c.2 0 .4-.1.6-.2l6.4 4.8v.4c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-2c0-.6-.4-1-1-1h-2c-.5 0-.8.3-.9.7L9 12.2v-.4z" 40273 })); 40274 /* harmony default export */ var library_share = (share); 40275 40276 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js 40277 40278 40279 /** 40280 * WordPress dependencies 40281 */ 40282 40283 const keyboardReturn = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40284 xmlns: "http://www.w3.org/2000/svg", 40285 viewBox: "-2 -2 24 24" 40286 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40287 d: "M6.734 16.106l2.176-2.38-1.093-1.028-3.846 4.158 3.846 4.157 1.093-1.027-2.176-2.38h2.811c1.125 0 2.25.03 3.374 0 1.428-.001 3.362-.25 4.963-1.277 1.66-1.065 2.868-2.906 2.868-5.859 0-2.479-1.327-4.896-3.65-5.93-1.82-.813-3.044-.8-4.806-.788l-.567.002v1.5c.184 0 .368 0 .553-.002 1.82-.007 2.704-.014 4.21.657 1.854.827 2.76 2.657 2.76 4.561 0 2.472-.973 3.824-2.178 4.596-1.258.807-2.864 1.04-4.163 1.04h-.02c-1.115.03-2.229 0-3.344 0H6.734z" 40288 })); 40289 /* harmony default export */ var keyboard_return = (keyboardReturn); 40290 40291 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/wordpress.js 40292 40293 40294 /** 40295 * WordPress dependencies 40296 */ 40297 40298 const WordPressIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40299 width: "24", 40300 height: "24", 40301 viewBox: "0 0 24 24", 40302 version: "1.1", 40303 xmlns: "http://www.w3.org/2000/svg" 40304 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40305 d: "M12.158,12.786L9.46,20.625c0.806,0.237,1.657,0.366,2.54,0.366c1.047,0,2.051-0.181,2.986-0.51 c-0.024-0.038-0.046-0.079-0.065-0.124L12.158,12.786z M3.009,12c0,3.559,2.068,6.634,5.067,8.092L3.788,8.341 C3.289,9.459,3.009,10.696,3.009,12z M18.069,11.546c0-1.112-0.399-1.881-0.741-2.48c-0.456-0.741-0.883-1.368-0.883-2.109 c0-0.826,0.627-1.596,1.51-1.596c0.04,0,0.078,0.005,0.116,0.007C16.472,3.904,14.34,3.009,12,3.009 c-3.141,0-5.904,1.612-7.512,4.052c0.211,0.007,0.41,0.011,0.579,0.011c0.94,0,2.396-0.114,2.396-0.114 C7.947,6.93,8.004,7.642,7.52,7.699c0,0-0.487,0.057-1.029,0.085l3.274,9.739l1.968-5.901l-1.401-3.838 C9.848,7.756,9.389,7.699,9.389,7.699C8.904,7.67,8.961,6.93,9.446,6.958c0,0,1.484,0.114,2.368,0.114 c0.94,0,2.397-0.114,2.397-0.114c0.485-0.028,0.542,0.684,0.057,0.741c0,0-0.488,0.057-1.029,0.085l3.249,9.665l0.897-2.996 C17.841,13.284,18.069,12.316,18.069,11.546z M19.889,7.686c0.039,0.286,0.06,0.593,0.06,0.924c0,0.912-0.171,1.938-0.684,3.22 l-2.746,7.94c2.673-1.558,4.47-4.454,4.47-7.771C20.991,10.436,20.591,8.967,19.889,7.686z M12,22C6.486,22,2,17.514,2,12 C2,6.486,6.486,2,12,2c5.514,0,10,4.486,10,10C22,17.514,17.514,22,12,22z" 40306 })); 40307 40308 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/fivehundredpx.js 40309 40310 40311 /** 40312 * WordPress dependencies 40313 */ 40314 40315 const FivehundredpxIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40316 width: "24", 40317 height: "24", 40318 viewBox: "0 0 24 24", 40319 version: "1.1" 40320 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40321 d: "M6.94026,15.1412c.00437.01213.108.29862.168.44064a6.55008,6.55008,0,1,0,6.03191-9.09557,6.68654,6.68654,0,0,0-2.58357.51467A8.53914,8.53914,0,0,0,8.21268,8.61344L8.209,8.61725V3.22948l9.0504-.00008c.32934-.0036.32934-.46353.32934-.61466s0-.61091-.33035-.61467L7.47248,2a.43.43,0,0,0-.43131.42692v7.58355c0,.24466.30476.42131.58793.4819.553.11812.68074-.05864.81617-.2457l.018-.02481A10.52673,10.52673,0,0,1,9.32258,9.258a5.35268,5.35268,0,1,1,7.58985,7.54976,5.417,5.417,0,0,1-3.80867,1.56365,5.17483,5.17483,0,0,1-2.69822-.74478l.00342-4.61111a2.79372,2.79372,0,0,1,.71372-1.78792,2.61611,2.61611,0,0,1,1.98282-.89477,2.75683,2.75683,0,0,1,1.95525.79477,2.66867,2.66867,0,0,1,.79656,1.909,2.724,2.724,0,0,1-2.75849,2.748,4.94651,4.94651,0,0,1-.86254-.13719c-.31234-.093-.44519.34058-.48892.48349-.16811.54966.08453.65862.13687.67489a3.75751,3.75751,0,0,0,1.25234.18375,3.94634,3.94634,0,1,0-2.82444-6.742,3.67478,3.67478,0,0,0-1.13028,2.584l-.00041.02323c-.0035.11667-.00579,2.881-.00644,3.78811l-.00407-.00451a6.18521,6.18521,0,0,1-1.0851-1.86092c-.10544-.27856-.34358-.22925-.66857-.12917-.14192.04372-.57386.17677-.47833.489Zm4.65165-1.08338a.51346.51346,0,0,0,.19513.31818l.02276.022a.52945.52945,0,0,0,.3517.18416.24242.24242,0,0,0,.16577-.0611c.05473-.05082.67382-.67812.73287-.738l.69041.68819a.28978.28978,0,0,0,.21437.11032.53239.53239,0,0,0,.35708-.19486c.29792-.30419.14885-.46821.07676-.54751l-.69954-.69975.72952-.73469c.16-.17311.01874-.35708-.12218-.498-.20461-.20461-.402-.25742-.52855-.14083l-.7254.72665-.73354-.73375a.20128.20128,0,0,0-.14179-.05695.54135.54135,0,0,0-.34379.19648c-.22561.22555-.274.38149-.15656.5059l.73374.7315-.72942.73072A.26589.26589,0,0,0,11.59191,14.05782Zm1.59866-9.915A8.86081,8.86081,0,0,0,9.854,4.776a.26169.26169,0,0,0-.16938.22759.92978.92978,0,0,0,.08619.42094c.05682.14524.20779.531.50006.41955a8.40969,8.40969,0,0,1,2.91968-.55484,7.87875,7.87875,0,0,1,3.086.62286,8.61817,8.61817,0,0,1,2.30562,1.49315.2781.2781,0,0,0,.18318.07586c.15529,0,.30425-.15253.43167-.29551.21268-.23861.35873-.4369.1492-.63538a8.50425,8.50425,0,0,0-2.62312-1.694A9.0177,9.0177,0,0,0,13.19058,4.14283ZM19.50945,18.6236h0a.93171.93171,0,0,0-.36642-.25406.26589.26589,0,0,0-.27613.06613l-.06943.06929A7.90606,7.90606,0,0,1,7.60639,18.505a7.57284,7.57284,0,0,1-1.696-2.51537,8.58715,8.58715,0,0,1-.5147-1.77754l-.00871-.04864c-.04939-.25873-.28755-.27684-.62981-.22448-.14234.02178-.5755.088-.53426.39969l.001.00712a9.08807,9.08807,0,0,0,15.406,4.99094c.00193-.00192.04753-.04718.0725-.07436C19.79425,19.16234,19.87422,18.98728,19.50945,18.6236Z" 40322 })); 40323 40324 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/amazon.js 40325 40326 40327 /** 40328 * WordPress dependencies 40329 */ 40330 40331 const AmazonIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40332 width: "24", 40333 height: "24", 40334 viewBox: "0 0 24 24", 40335 version: "1.1" 40336 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40337 d: "M13.582,8.182C11.934,8.367,9.78,8.49,8.238,9.166c-1.781,0.769-3.03,2.337-3.03,4.644 c0,2.953,1.86,4.429,4.253,4.429c2.02,0,3.125-0.477,4.685-2.065c0.516,0.747,0.685,1.109,1.629,1.894 c0.212,0.114,0.483,0.103,0.672-0.066l0.006,0.006c0.567-0.505,1.599-1.401,2.18-1.888c0.231-0.188,0.19-0.496,0.009-0.754 c-0.52-0.718-1.072-1.303-1.072-2.634V8.305c0-1.876,0.133-3.599-1.249-4.891C15.23,2.369,13.422,2,12.04,2 C9.336,2,6.318,3.01,5.686,6.351C5.618,6.706,5.877,6.893,6.109,6.945l2.754,0.298C9.121,7.23,9.308,6.977,9.357,6.72 c0.236-1.151,1.2-1.706,2.284-1.706c0.584,0,1.249,0.215,1.595,0.738c0.398,0.584,0.346,1.384,0.346,2.061V8.182z M13.049,14.088 c-0.451,0.8-1.169,1.291-1.967,1.291c-1.09,0-1.728-0.83-1.728-2.061c0-2.42,2.171-2.86,4.227-2.86v0.615 C13.582,12.181,13.608,13.104,13.049,14.088z M20.683,19.339C18.329,21.076,14.917,22,11.979,22c-4.118,0-7.826-1.522-10.632-4.057 c-0.22-0.199-0.024-0.471,0.241-0.317c3.027,1.762,6.771,2.823,10.639,2.823c2.608,0,5.476-0.541,8.115-1.66 C20.739,18.62,21.072,19.051,20.683,19.339z M21.336,21.043c-0.194,0.163-0.379,0.076-0.293-0.139 c0.284-0.71,0.92-2.298,0.619-2.684c-0.301-0.386-1.99-0.183-2.749-0.092c-0.23,0.027-0.266-0.173-0.059-0.319 c1.348-0.946,3.555-0.673,3.811-0.356C22.925,17.773,22.599,19.986,21.336,21.043z" 40338 })); 40339 40340 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/bandcamp.js 40341 40342 40343 /** 40344 * WordPress dependencies 40345 */ 40346 40347 const BandcampIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40348 width: "24", 40349 height: "24", 40350 viewBox: "0 0 24 24", 40351 version: "1.1" 40352 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40353 d: "M15.27 17.289 3 17.289 8.73 6.711 21 6.711 15.27 17.289" 40354 })); 40355 40356 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/behance.js 40357 40358 40359 /** 40360 * WordPress dependencies 40361 */ 40362 40363 const BehanceIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40364 width: "24", 40365 height: "24", 40366 viewBox: "0 0 24 24", 40367 version: "1.1" 40368 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40369 d: "M7.799,5.698c0.589,0,1.12,0.051,1.606,0.156c0.482,0.102,0.894,0.273,1.241,0.507c0.344,0.235,0.612,0.546,0.804,0.938 c0.188,0.387,0.281,0.871,0.281,1.443c0,0.619-0.141,1.137-0.421,1.551c-0.284,0.413-0.7,0.751-1.255,1.014 c0.756,0.218,1.317,0.601,1.689,1.146c0.374,0.549,0.557,1.205,0.557,1.975c0,0.623-0.12,1.161-0.359,1.612 c-0.241,0.457-0.569,0.828-0.973,1.114c-0.408,0.288-0.876,0.5-1.399,0.637C9.052,17.931,8.514,18,7.963,18H2V5.698H7.799 M7.449,10.668c0.481,0,0.878-0.114,1.192-0.345c0.311-0.228,0.463-0.603,0.463-1.119c0-0.286-0.051-0.523-0.152-0.707 C8.848,8.315,8.711,8.171,8.536,8.07C8.362,7.966,8.166,7.894,7.94,7.854c-0.224-0.044-0.457-0.06-0.697-0.06H4.709v2.874H7.449z M7.6,15.905c0.267,0,0.521-0.024,0.759-0.077c0.243-0.053,0.457-0.137,0.637-0.261c0.182-0.12,0.332-0.283,0.441-0.491 C9.547,14.87,9.6,14.602,9.6,14.278c0-0.633-0.18-1.084-0.533-1.357c-0.356-0.27-0.83-0.404-1.413-0.404H4.709v3.388L7.6,15.905z M16.162,15.864c0.367,0.358,0.897,0.538,1.583,0.538c0.493,0,0.92-0.125,1.277-0.374c0.354-0.248,0.571-0.514,0.654-0.79h2.155 c-0.347,1.072-0.872,1.838-1.589,2.299C19.534,18,18.67,18.23,17.662,18.23c-0.701,0-1.332-0.113-1.899-0.337 c-0.567-0.227-1.041-0.544-1.439-0.958c-0.389-0.415-0.689-0.907-0.904-1.484c-0.213-0.574-0.32-1.21-0.32-1.899 c0-0.666,0.11-1.288,0.329-1.863c0.222-0.577,0.529-1.075,0.933-1.492c0.406-0.42,0.885-0.751,1.444-0.994 c0.558-0.241,1.175-0.363,1.857-0.363c0.754,0,1.414,0.145,1.98,0.44c0.563,0.291,1.026,0.686,1.389,1.181 c0.363,0.493,0.622,1.057,0.783,1.69c0.16,0.632,0.217,1.292,0.171,1.983h-6.428C15.557,14.84,15.795,15.506,16.162,15.864 M18.973,11.184c-0.291-0.321-0.783-0.496-1.384-0.496c-0.39,0-0.714,0.066-0.973,0.2c-0.254,0.132-0.461,0.297-0.621,0.491 c-0.157,0.197-0.265,0.405-0.328,0.628c-0.063,0.217-0.101,0.413-0.111,0.587h3.98C19.478,11.969,19.265,11.509,18.973,11.184z M15.057,7.738h4.985V6.524h-4.985L15.057,7.738z" 40370 })); 40371 40372 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/chain.js 40373 40374 40375 /** 40376 * WordPress dependencies 40377 */ 40378 40379 const ChainIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40380 width: "24", 40381 height: "24", 40382 viewBox: "0 0 24 24", 40383 version: "1.1" 40384 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40385 d: "M19.647,16.706a1.134,1.134,0,0,0-.343-.833l-2.549-2.549a1.134,1.134,0,0,0-.833-.343,1.168,1.168,0,0,0-.883.392l.233.226q.2.189.264.264a2.922,2.922,0,0,1,.184.233.986.986,0,0,1,.159.312,1.242,1.242,0,0,1,.043.337,1.172,1.172,0,0,1-1.176,1.176,1.237,1.237,0,0,1-.337-.043,1,1,0,0,1-.312-.159,2.76,2.76,0,0,1-.233-.184q-.073-.068-.264-.264l-.226-.233a1.19,1.19,0,0,0-.4.895,1.134,1.134,0,0,0,.343.833L15.837,19.3a1.13,1.13,0,0,0,.833.331,1.18,1.18,0,0,0,.833-.318l1.8-1.789a1.12,1.12,0,0,0,.343-.821Zm-8.615-8.64a1.134,1.134,0,0,0-.343-.833L8.163,4.7a1.134,1.134,0,0,0-.833-.343,1.184,1.184,0,0,0-.833.331L4.7,6.473a1.12,1.12,0,0,0-.343.821,1.134,1.134,0,0,0,.343.833l2.549,2.549a1.13,1.13,0,0,0,.833.331,1.184,1.184,0,0,0,.883-.38L8.728,10.4q-.2-.189-.264-.264A2.922,2.922,0,0,1,8.28,9.9a.986.986,0,0,1-.159-.312,1.242,1.242,0,0,1-.043-.337A1.172,1.172,0,0,1,9.254,8.079a1.237,1.237,0,0,1,.337.043,1,1,0,0,1,.312.159,2.761,2.761,0,0,1,.233.184q.073.068.264.264l.226.233a1.19,1.19,0,0,0,.4-.895ZM22,16.706a3.343,3.343,0,0,1-1.042,2.488l-1.8,1.789a3.536,3.536,0,0,1-4.988-.025l-2.525-2.537a3.384,3.384,0,0,1-1.017-2.488,3.448,3.448,0,0,1,1.078-2.561l-1.078-1.078a3.434,3.434,0,0,1-2.549,1.078,3.4,3.4,0,0,1-2.5-1.029L3.029,9.794A3.4,3.4,0,0,1,2,7.294,3.343,3.343,0,0,1,3.042,4.806l1.8-1.789A3.384,3.384,0,0,1,7.331,2a3.357,3.357,0,0,1,2.5,1.042l2.525,2.537a3.384,3.384,0,0,1,1.017,2.488,3.448,3.448,0,0,1-1.078,2.561l1.078,1.078a3.551,3.551,0,0,1,5.049-.049l2.549,2.549A3.4,3.4,0,0,1,22,16.706Z" 40386 })); 40387 40388 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/codepen.js 40389 40390 40391 /** 40392 * WordPress dependencies 40393 */ 40394 40395 const CodepenIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40396 width: "24", 40397 height: "24", 40398 viewBox: "0 0 24 24", 40399 version: "1.1" 40400 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40401 d: "M22.016,8.84c-0.002-0.013-0.005-0.025-0.007-0.037c-0.005-0.025-0.008-0.048-0.015-0.072 c-0.003-0.015-0.01-0.028-0.013-0.042c-0.008-0.02-0.015-0.04-0.023-0.062c-0.007-0.015-0.013-0.028-0.02-0.042 c-0.008-0.02-0.018-0.037-0.03-0.057c-0.007-0.013-0.017-0.027-0.025-0.038c-0.012-0.018-0.023-0.035-0.035-0.052 c-0.01-0.013-0.02-0.025-0.03-0.037c-0.015-0.017-0.028-0.032-0.043-0.045c-0.01-0.012-0.022-0.023-0.035-0.035 c-0.015-0.015-0.032-0.028-0.048-0.04c-0.012-0.01-0.025-0.02-0.037-0.03c-0.005-0.003-0.01-0.008-0.015-0.012l-9.161-6.096 c-0.289-0.192-0.666-0.192-0.955,0L2.359,8.237C2.354,8.24,2.349,8.245,2.344,8.249L2.306,8.277 c-0.017,0.013-0.033,0.027-0.048,0.04C2.246,8.331,2.234,8.342,2.222,8.352c-0.015,0.015-0.028,0.03-0.042,0.047 c-0.012,0.013-0.022,0.023-0.03,0.037C2.139,8.453,2.125,8.471,2.115,8.488C2.107,8.501,2.099,8.514,2.09,8.526 C2.079,8.548,2.069,8.565,2.06,8.585C2.054,8.6,2.047,8.613,2.04,8.626C2.032,8.648,2.025,8.67,2.019,8.69 c-0.005,0.013-0.01,0.027-0.013,0.042C1.999,8.755,1.995,8.778,1.99,8.803C1.989,8.817,1.985,8.828,1.984,8.84 C1.978,8.879,1.975,8.915,1.975,8.954v6.093c0,0.037,0.003,0.075,0.008,0.112c0.002,0.012,0.005,0.025,0.007,0.038 c0.005,0.023,0.008,0.047,0.015,0.072c0.003,0.015,0.008,0.028,0.013,0.04c0.007,0.022,0.013,0.042,0.022,0.063 c0.007,0.015,0.013,0.028,0.02,0.04c0.008,0.02,0.018,0.038,0.03,0.058c0.007,0.013,0.015,0.027,0.025,0.038 c0.012,0.018,0.023,0.035,0.035,0.052c0.01,0.013,0.02,0.025,0.03,0.037c0.013,0.015,0.028,0.032,0.042,0.045 c0.012,0.012,0.023,0.023,0.035,0.035c0.015,0.013,0.032,0.028,0.048,0.04l0.038,0.03c0.005,0.003,0.01,0.007,0.013,0.01 l9.163,6.095C11.668,21.953,11.833,22,12,22c0.167,0,0.332-0.047,0.478-0.144l9.163-6.095l0.015-0.01 c0.013-0.01,0.027-0.02,0.037-0.03c0.018-0.013,0.035-0.028,0.048-0.04c0.013-0.012,0.025-0.023,0.035-0.035 c0.017-0.015,0.03-0.032,0.043-0.045c0.01-0.013,0.02-0.025,0.03-0.037c0.013-0.018,0.025-0.035,0.035-0.052 c0.008-0.013,0.018-0.027,0.025-0.038c0.012-0.02,0.022-0.038,0.03-0.058c0.007-0.013,0.013-0.027,0.02-0.04 c0.008-0.022,0.015-0.042,0.023-0.063c0.003-0.013,0.01-0.027,0.013-0.04c0.007-0.025,0.01-0.048,0.015-0.072 c0.002-0.013,0.005-0.027,0.007-0.037c0.003-0.042,0.007-0.079,0.007-0.117V8.954C22.025,8.915,22.022,8.879,22.016,8.84z M12.862,4.464l6.751,4.49l-3.016,2.013l-3.735-2.492V4.464z M11.138,4.464v4.009l-3.735,2.494L4.389,8.954L11.138,4.464z M3.699,10.562L5.853,12l-2.155,1.438V10.562z M11.138,19.536l-6.749-4.491l3.015-2.011l3.735,2.492V19.536z M12,14.035L8.953,12 L12,9.966L15.047,12L12,14.035z M12.862,19.536v-4.009l3.735-2.492l3.016,2.011L12.862,19.536z M20.303,13.438L18.147,12 l2.156-1.438L20.303,13.438z" 40402 })); 40403 40404 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/deviantart.js 40405 40406 40407 /** 40408 * WordPress dependencies 40409 */ 40410 40411 const DeviantArtIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40412 width: "24", 40413 height: "24", 40414 viewBox: "0 0 24 24", 40415 version: "1.1" 40416 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40417 d: "M 18.19 5.636 18.19 2 18.188 2 14.553 2 14.19 2.366 12.474 5.636 11.935 6 5.81 6 5.81 10.994 9.177 10.994 9.477 11.357 5.81 18.363 5.81 22 5.811 22 9.447 22 9.81 21.634 11.526 18.364 12.065 18 18.19 18 18.19 13.006 14.823 13.006 14.523 12.641 18.19 5.636z" 40418 })); 40419 40420 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/dribbble.js 40421 40422 40423 /** 40424 * WordPress dependencies 40425 */ 40426 40427 const DribbbleIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40428 width: "24", 40429 height: "24", 40430 viewBox: "0 0 24 24", 40431 version: "1.1" 40432 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40433 d: "M12,22C6.486,22,2,17.514,2,12S6.486,2,12,2c5.514,0,10,4.486,10,10S17.514,22,12,22z M20.434,13.369 c-0.292-0.092-2.644-0.794-5.32-0.365c1.117,3.07,1.572,5.57,1.659,6.09C18.689,17.798,20.053,15.745,20.434,13.369z M15.336,19.876c-0.127-0.749-0.623-3.361-1.822-6.477c-0.019,0.006-0.038,0.013-0.056,0.019c-4.818,1.679-6.547,5.02-6.701,5.334 c1.448,1.129,3.268,1.803,5.243,1.803C13.183,20.555,14.311,20.313,15.336,19.876z M5.654,17.724 c0.193-0.331,2.538-4.213,6.943-5.637c0.111-0.036,0.224-0.07,0.337-0.102c-0.214-0.485-0.448-0.971-0.692-1.45 c-4.266,1.277-8.405,1.223-8.778,1.216c-0.003,0.087-0.004,0.174-0.004,0.261C3.458,14.207,4.29,16.21,5.654,17.724z M3.639,10.264 c0.382,0.005,3.901,0.02,7.897-1.041c-1.415-2.516-2.942-4.631-3.167-4.94C5.979,5.41,4.193,7.613,3.639,10.264z M9.998,3.709 c0.236,0.316,1.787,2.429,3.187,5c3.037-1.138,4.323-2.867,4.477-3.085C16.154,4.286,14.17,3.471,12,3.471 C11.311,3.471,10.641,3.554,9.998,3.709z M18.612,6.612C18.432,6.855,17,8.69,13.842,9.979c0.199,0.407,0.389,0.821,0.567,1.237 c0.063,0.148,0.124,0.295,0.184,0.441c2.842-0.357,5.666,0.215,5.948,0.275C20.522,9.916,19.801,8.065,18.612,6.612z" 40434 })); 40435 40436 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/dropbox.js 40437 40438 40439 /** 40440 * WordPress dependencies 40441 */ 40442 40443 const DropboxIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40444 width: "24", 40445 height: "24", 40446 viewBox: "0 0 24 24", 40447 version: "1.1" 40448 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40449 d: "M12,6.134L6.069,9.797L2,6.54l5.883-3.843L12,6.134z M2,13.054l5.883,3.843L12,13.459L6.069,9.797L2,13.054z M12,13.459 l4.116,3.439L22,13.054l-4.069-3.257L12,13.459z M22,6.54l-5.884-3.843L12,6.134l5.931,3.663L22,6.54z M12.011,14.2l-4.129,3.426 l-1.767-1.153v1.291l5.896,3.539l5.897-3.539v-1.291l-1.769,1.153L12.011,14.2z" 40450 })); 40451 40452 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/etsy.js 40453 40454 40455 /** 40456 * WordPress dependencies 40457 */ 40458 40459 const EtsyIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40460 width: "24", 40461 height: "24", 40462 viewBox: "0 0 24 24", 40463 version: "1.1" 40464 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40465 d: "M9.16033,4.038c0-.27174.02717-.43478.48913-.43478h6.22283c1.087,0,1.68478.92391,2.11957,2.663l.35326,1.38587h1.05978C19.59511,3.712,19.75815,2,19.75815,2s-2.663.29891-4.23913.29891h-7.962L3.29076,2.163v1.1413L4.731,3.57609c1.00543.19022,1.25.40761,1.33152,1.33152,0,0,.08152,2.71739.08152,7.20109s-.08152,7.17391-.08152,7.17391c0,.81522-.32609,1.11413-1.33152,1.30435l-1.44022.27174V22l4.2663-.13587h7.11957c1.60326,0,5.32609.13587,5.32609.13587.08152-.97826.625-5.40761.70652-5.89674H19.7038L18.644,18.52174c-.84239,1.90217-2.06522,2.038-3.42391,2.038H11.1712c-1.3587,0-2.01087-.54348-2.01087-1.712V12.65217s3.0163,0,3.99457.08152c.76087.05435,1.22283.27174,1.46739,1.33152l.32609,1.413h1.16848l-.08152-3.55978.163-3.587H15.02989l-.38043,1.57609c-.24457,1.03261-.40761,1.22283-1.46739,1.33152-1.38587.13587-4.02174.1087-4.02174.1087Z" 40466 })); 40467 40468 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/facebook.js 40469 40470 40471 /** 40472 * WordPress dependencies 40473 */ 40474 40475 const FacebookIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40476 width: "24", 40477 height: "24", 40478 viewBox: "0 0 24 24", 40479 version: "1.1" 40480 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40481 d: "M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z" 40482 })); 40483 40484 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/feed.js 40485 40486 40487 /** 40488 * WordPress dependencies 40489 */ 40490 40491 const FeedIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40492 width: "24", 40493 height: "24", 40494 viewBox: "0 0 24 24", 40495 version: "1.1" 40496 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40497 d: "M2,8.667V12c5.515,0,10,4.485,10,10h3.333C15.333,14.637,9.363,8.667,2,8.667z M2,2v3.333 c9.19,0,16.667,7.477,16.667,16.667H22C22,10.955,13.045,2,2,2z M4.5,17C3.118,17,2,18.12,2,19.5S3.118,22,4.5,22S7,20.88,7,19.5 S5.882,17,4.5,17z" 40498 })); 40499 40500 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/flickr.js 40501 40502 40503 /** 40504 * WordPress dependencies 40505 */ 40506 40507 const FlickrIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40508 width: "24", 40509 height: "24", 40510 viewBox: "0 0 24 24", 40511 version: "1.1" 40512 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40513 d: "M6.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5S9.25,7,6.5,7z M17.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5 S20.25,7,17.5,7z" 40514 })); 40515 40516 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/foursquare.js 40517 40518 40519 /** 40520 * WordPress dependencies 40521 */ 40522 40523 const FoursquareIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40524 width: "24", 40525 height: "24", 40526 viewBox: "0 0 24 24", 40527 version: "1.1" 40528 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40529 d: "M17.573,2c0,0-9.197,0-10.668,0S5,3.107,5,3.805s0,16.948,0,16.948c0,0.785,0.422,1.077,0.66,1.172 c0.238,0.097,0.892,0.177,1.285-0.275c0,0,5.035-5.843,5.122-5.93c0.132-0.132,0.132-0.132,0.262-0.132h3.26 c1.368,0,1.588-0.977,1.732-1.552c0.078-0.318,0.692-3.428,1.225-6.122l0.675-3.368C19.56,2.893,19.14,2,17.573,2z M16.495,7.22 c-0.053,0.252-0.372,0.518-0.665,0.518c-0.293,0-4.157,0-4.157,0c-0.467,0-0.802,0.318-0.802,0.787v0.508 c0,0.467,0.337,0.798,0.805,0.798c0,0,3.197,0,3.528,0s0.655,0.362,0.583,0.715c-0.072,0.353-0.407,2.102-0.448,2.295 c-0.04,0.193-0.262,0.523-0.655,0.523c-0.33,0-2.88,0-2.88,0c-0.523,0-0.683,0.068-1.033,0.503 c-0.35,0.437-3.505,4.223-3.505,4.223c-0.032,0.035-0.063,0.027-0.063-0.015V4.852c0-0.298,0.26-0.648,0.648-0.648 c0,0,8.228,0,8.562,0c0.315,0,0.61,0.297,0.528,0.683L16.495,7.22z" 40530 })); 40531 40532 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/goodreads.js 40533 40534 40535 /** 40536 * WordPress dependencies 40537 */ 40538 40539 const GoodreadsIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40540 width: "24", 40541 height: "24", 40542 viewBox: "0 0 24 24", 40543 version: "1.1" 40544 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40545 d: "M17.3,17.5c-0.2,0.8-0.5,1.4-1,1.9c-0.4,0.5-1,0.9-1.7,1.2C13.9,20.9,13.1,21,12,21c-0.6,0-1.3-0.1-1.9-0.2 c-0.6-0.1-1.1-0.4-1.6-0.7c-0.5-0.3-0.9-0.7-1.2-1.2c-0.3-0.5-0.5-1.1-0.5-1.7h1.5c0.1,0.5,0.2,0.9,0.5,1.2 c0.2,0.3,0.5,0.6,0.9,0.8c0.3,0.2,0.7,0.3,1.1,0.4c0.4,0.1,0.8,0.1,1.2,0.1c1.4,0,2.5-0.4,3.1-1.2c0.6-0.8,1-2,1-3.5v-1.7h0 c-0.4,0.8-0.9,1.4-1.6,1.9c-0.7,0.5-1.5,0.7-2.4,0.7c-1,0-1.9-0.2-2.6-0.5C8.7,15,8.1,14.5,7.7,14c-0.5-0.6-0.8-1.3-1-2.1 c-0.2-0.8-0.3-1.6-0.3-2.5c0-0.9,0.1-1.7,0.4-2.5c0.3-0.8,0.6-1.5,1.1-2c0.5-0.6,1.1-1,1.8-1.4C10.3,3.2,11.1,3,12,3 c0.5,0,0.9,0.1,1.3,0.2c0.4,0.1,0.8,0.3,1.1,0.5c0.3,0.2,0.6,0.5,0.9,0.8c0.3,0.3,0.5,0.6,0.6,1h0V3.4h1.5V15 C17.6,15.9,17.5,16.7,17.3,17.5z M13.8,14.1c0.5-0.3,0.9-0.7,1.3-1.1c0.3-0.5,0.6-1,0.8-1.6c0.2-0.6,0.3-1.2,0.3-1.9 c0-0.6-0.1-1.2-0.2-1.9c-0.1-0.6-0.4-1.2-0.7-1.7c-0.3-0.5-0.7-0.9-1.3-1.2c-0.5-0.3-1.1-0.5-1.9-0.5s-1.4,0.2-1.9,0.5 c-0.5,0.3-1,0.7-1.3,1.2C8.5,6.4,8.3,7,8.1,7.6C8,8.2,7.9,8.9,7.9,9.5c0,0.6,0.1,1.3,0.2,1.9C8.3,12,8.6,12.5,8.9,13 c0.3,0.5,0.8,0.8,1.3,1.1c0.5,0.3,1.1,0.4,1.9,0.4C12.7,14.5,13.3,14.4,13.8,14.1z" 40546 })); 40547 40548 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/google.js 40549 40550 40551 /** 40552 * WordPress dependencies 40553 */ 40554 40555 const GoogleIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40556 width: "24", 40557 height: "24", 40558 viewBox: "0 0 24 24", 40559 version: "1.1" 40560 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40561 d: "M12.02,10.18v3.72v0.01h5.51c-0.26,1.57-1.67,4.22-5.5,4.22c-3.31,0-6.01-2.75-6.01-6.12s2.7-6.12,6.01-6.12 c1.87,0,3.13,0.8,3.85,1.48l2.84-2.76C16.99,2.99,14.73,2,12.03,2c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.77,0,9.6-4.06,9.6-9.77 c0-0.83-0.11-1.42-0.25-2.05H12.02z" 40562 })); 40563 40564 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/github.js 40565 40566 40567 /** 40568 * WordPress dependencies 40569 */ 40570 40571 const GitHubIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40572 width: "24", 40573 height: "24", 40574 viewBox: "0 0 24 24", 40575 version: "1.1" 40576 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40577 d: "M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z" 40578 })); 40579 40580 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/instagram.js 40581 40582 40583 /** 40584 * WordPress dependencies 40585 */ 40586 40587 const InstagramIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40588 width: "24", 40589 height: "24", 40590 viewBox: "0 0 24 24", 40591 version: "1.1" 40592 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40593 d: "M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z" 40594 })); 40595 40596 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/lastfm.js 40597 40598 40599 /** 40600 * WordPress dependencies 40601 */ 40602 40603 const LastfmIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40604 width: "24", 40605 height: "24", 40606 viewBox: "0 0 24 24", 40607 version: "1.1" 40608 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40609 d: "M 12.0002 1.5 C 6.2006 1.5 1.5 6.2011 1.5 11.9998 C 1.5 17.799 6.2006 22.5 12.0002 22.5 C 17.799 22.5 22.5 17.799 22.5 11.9998 C 22.5 6.2011 17.799 1.5 12.0002 1.5 Z M 16.1974 16.2204 C 14.8164 16.2152 13.9346 15.587 13.3345 14.1859 L 13.1816 13.8451 L 11.8541 10.8101 C 11.4271 9.7688 10.3526 9.0712 9.1801 9.0712 C 7.5695 9.0712 6.2593 10.3851 6.2593 12.001 C 6.2593 13.6165 7.5695 14.9303 9.1801 14.9303 C 10.272 14.9303 11.2651 14.3275 11.772 13.3567 C 11.7893 13.3235 11.8239 13.302 11.863 13.3038 C 11.9007 13.3054 11.9353 13.3288 11.9504 13.3632 L 12.4865 14.6046 C 12.5016 14.639 12.4956 14.6778 12.4723 14.7069 C 11.6605 15.6995 10.4602 16.2683 9.1801 16.2683 C 6.8331 16.2683 4.9234 14.3536 4.9234 12.001 C 4.9234 9.6468 6.833 7.732 9.1801 7.732 C 10.9572 7.732 12.3909 8.6907 13.1138 10.3636 C 13.1206 10.3802 13.8412 12.0708 14.4744 13.5191 C 14.8486 14.374 15.1462 14.896 16.1288 14.9292 C 17.0663 14.9613 17.7538 14.4122 17.7538 13.6485 C 17.7538 12.9691 17.3321 12.8004 16.3803 12.4822 C 14.7365 11.9398 13.845 11.3861 13.845 10.0182 C 13.845 8.6809 14.7667 7.8162 16.192 7.8162 C 17.1288 7.8162 17.8155 8.2287 18.2921 9.0768 C 18.305 9.1006 18.3079 9.1281 18.3004 9.1542 C 18.2929 9.1803 18.2748 9.2021 18.2507 9.2138 L 17.3614 9.669 C 17.3178 9.692 17.2643 9.6781 17.2356 9.6385 C 16.9329 9.2135 16.5956 9.0251 16.1423 9.0251 C 15.5512 9.0251 15.122 9.429 15.122 9.9865 C 15.122 10.6738 15.6529 10.8414 16.5339 11.1192 C 16.6491 11.1558 16.7696 11.194 16.8939 11.2343 C 18.2763 11.6865 19.0768 12.2311 19.0768 13.6836 C 19.0769 15.1297 17.8389 16.2204 16.1974 16.2204 Z" 40610 })); 40611 40612 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/linkedin.js 40613 40614 40615 /** 40616 * WordPress dependencies 40617 */ 40618 40619 const LinkedInIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40620 width: "24", 40621 height: "24", 40622 viewBox: "0 0 24 24", 40623 version: "1.1" 40624 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40625 d: "M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z" 40626 })); 40627 40628 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/mail.js 40629 40630 40631 /** 40632 * WordPress dependencies 40633 */ 40634 40635 const MailIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40636 width: "24", 40637 height: "24", 40638 viewBox: "0 0 24 24", 40639 version: "1.1" 40640 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40641 d: "M20,4H4C2.895,4,2,4.895,2,6v12c0,1.105,0.895,2,2,2h16c1.105,0,2-0.895,2-2V6C22,4.895,21.105,4,20,4z M20,8.236l-8,4.882 L4,8.236V6h16V8.236z" 40642 })); 40643 40644 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/mastodon.js 40645 40646 40647 /** 40648 * WordPress dependencies 40649 */ 40650 40651 const MastodonIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40652 width: "24", 40653 height: "24", 40654 viewBox: "0 0 24 24", 40655 version: "1.1" 40656 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40657 d: "M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z" 40658 })); 40659 40660 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/meetup.js 40661 40662 40663 /** 40664 * WordPress dependencies 40665 */ 40666 40667 const MeetupIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40668 width: "24", 40669 height: "24", 40670 viewBox: "0 0 24 24", 40671 version: "1.1" 40672 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40673 d: "M19.24775,14.722a3.57032,3.57032,0,0,1-2.94457,3.52073,3.61886,3.61886,0,0,1-.64652.05634c-.07314-.0008-.10187.02846-.12507.09547A2.38881,2.38881,0,0,1,13.49453,20.094a2.33092,2.33092,0,0,1-1.827-.50716.13635.13635,0,0,0-.19878-.00408,3.191,3.191,0,0,1-2.104.60248,3.26309,3.26309,0,0,1-3.00324-2.71993,2.19076,2.19076,0,0,1-.03512-.30865c-.00156-.08579-.03413-.1189-.11608-.13493a2.86421,2.86421,0,0,1-1.23189-.56111,2.945,2.945,0,0,1-1.166-2.05749,2.97484,2.97484,0,0,1,.87524-2.50774.112.112,0,0,0,.02091-.16107,2.7213,2.7213,0,0,1-.36648-1.48A2.81256,2.81256,0,0,1,6.57673,7.58838a.35764.35764,0,0,0,.28869-.22819,4.2208,4.2208,0,0,1,6.02892-1.90111.25161.25161,0,0,0,.22023.0243,3.65608,3.65608,0,0,1,3.76031.90678A3.57244,3.57244,0,0,1,17.95918,8.626a2.97339,2.97339,0,0,1,.01829.57356.10637.10637,0,0,0,.0853.12792,1.97669,1.97669,0,0,1,1.27939,1.33733,2.00266,2.00266,0,0,1-.57112,2.12652c-.05284.05166-.04168.08328-.01173.13489A3.51189,3.51189,0,0,1,19.24775,14.722Zm-6.35959-.27836a1.6984,1.6984,0,0,0,1.14556,1.61113,3.82039,3.82039,0,0,0,1.036.17935,1.46888,1.46888,0,0,0,.73509-.12255.44082.44082,0,0,0,.26057-.44274.45312.45312,0,0,0-.29211-.43375.97191.97191,0,0,0-.20678-.063c-.21326-.03806-.42754-.0701-.63973-.11215a.54787.54787,0,0,1-.50172-.60926,2.75864,2.75864,0,0,1,.1773-.901c.1763-.535.414-1.045.64183-1.55913A12.686,12.686,0,0,0,15.85,10.47863a1.58461,1.58461,0,0,0,.04861-.87208,1.04531,1.04531,0,0,0-.85432-.83981,1.60658,1.60658,0,0,0-1.23654.16594.27593.27593,0,0,1-.36286-.03413c-.085-.0747-.16594-.15379-.24918-.23055a.98682.98682,0,0,0-1.33577-.04933,6.1468,6.1468,0,0,1-.4989.41615.47762.47762,0,0,1-.51535.03566c-.17448-.09307-.35512-.175-.53531-.25665a1.74949,1.74949,0,0,0-.56476-.2016,1.69943,1.69943,0,0,0-1.61654.91787,8.05815,8.05815,0,0,0-.32952.80126c-.45471,1.2557-.82507,2.53825-1.20838,3.81639a1.24151,1.24151,0,0,0,.51532,1.44389,1.42659,1.42659,0,0,0,1.22008.17166,1.09728,1.09728,0,0,0,.66994-.69764c.44145-1.04111.839-2.09989,1.25981-3.14926.11581-.28876.22792-.57874.35078-.86438a.44548.44548,0,0,1,.69189-.19539.50521.50521,0,0,1,.15044.43836,1.75625,1.75625,0,0,1-.14731.50453c-.27379.69219-.55265,1.38236-.82766,2.074a2.0836,2.0836,0,0,0-.14038.42876.50719.50719,0,0,0,.27082.57722.87236.87236,0,0,0,.66145.02739.99137.99137,0,0,0,.53406-.532q.61571-1.20914,1.228-2.42031.28423-.55863.57585-1.1133a.87189.87189,0,0,1,.29055-.35253.34987.34987,0,0,1,.37634-.01265.30291.30291,0,0,1,.12434.31459.56716.56716,0,0,1-.04655.1915c-.05318.12739-.10286.25669-.16183.38156-.34118.71775-.68754,1.43273-1.02568,2.152A2.00213,2.00213,0,0,0,12.88816,14.44366Zm4.78568,5.28972a.88573.88573,0,0,0-1.77139.00465.8857.8857,0,0,0,1.77139-.00465Zm-14.83838-7.296a.84329.84329,0,1,0,.00827-1.68655.8433.8433,0,0,0-.00827,1.68655Zm10.366-9.43673a.83506.83506,0,1,0-.0091,1.67.83505.83505,0,0,0,.0091-1.67Zm6.85014,5.22a.71651.71651,0,0,0-1.433.0093.71656.71656,0,0,0,1.433-.0093ZM5.37528,6.17908A.63823.63823,0,1,0,6.015,5.54483.62292.62292,0,0,0,5.37528,6.17908Zm6.68214,14.80843a.54949.54949,0,1,0-.55052.541A.54556.54556,0,0,0,12.05742,20.98752Zm8.53235-8.49689a.54777.54777,0,0,0-.54027.54023.53327.53327,0,0,0,.532.52293.51548.51548,0,0,0,.53272-.5237A.53187.53187,0,0,0,20.58977,12.49063ZM7.82846,2.4715a.44927.44927,0,1,0,.44484.44766A.43821.43821,0,0,0,7.82846,2.4715Zm13.775,7.60492a.41186.41186,0,0,0-.40065.39623.40178.40178,0,0,0,.40168.40168A.38994.38994,0,0,0,22,10.48172.39946.39946,0,0,0,21.60349,10.07642ZM5.79193,17.96207a.40469.40469,0,0,0-.397-.39646.399.399,0,0,0-.396.405.39234.39234,0,0,0,.39939.389A.39857.39857,0,0,0,5.79193,17.96207Z" 40674 })); 40675 40676 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/medium.js 40677 40678 40679 /** 40680 * WordPress dependencies 40681 */ 40682 40683 const MediumIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40684 width: "24", 40685 height: "24", 40686 viewBox: "0 0 24 24", 40687 version: "1.1" 40688 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40689 d: "M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z" 40690 })); 40691 40692 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/patreon.js 40693 40694 40695 /** 40696 * WordPress dependencies 40697 */ 40698 40699 const PatreonIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40700 width: "24", 40701 height: "24", 40702 viewBox: "0 0 569 546", 40703 version: "1.1" 40704 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Circle, { 40705 cx: "363", 40706 cy: "205", 40707 r: "205" 40708 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Rect, { 40709 width: "100", 40710 height: "546", 40711 x: "0", 40712 y: "0" 40713 })); 40714 40715 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/pinterest.js 40716 40717 40718 /** 40719 * WordPress dependencies 40720 */ 40721 40722 const PinterestIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40723 width: "24", 40724 height: "24", 40725 viewBox: "0 0 24 24", 40726 version: "1.1" 40727 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40728 d: "M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2" 40729 })); 40730 40731 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/pocket.js 40732 40733 40734 /** 40735 * WordPress dependencies 40736 */ 40737 40738 const PocketIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40739 width: "24", 40740 height: "24", 40741 viewBox: "0 0 24 24", 40742 version: "1.1" 40743 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40744 d: "M21.927,4.194C21.667,3.48,20.982,3,20.222,3h-0.01h-1.721H3.839C3.092,3,2.411,3.47,2.145,4.17 C2.066,4.378,2.026,4.594,2.026,4.814v6.035l0.069,1.2c0.29,2.73,1.707,5.115,3.899,6.778c0.039,0.03,0.079,0.059,0.119,0.089 l0.025,0.018c1.175,0.859,2.491,1.441,3.91,1.727c0.655,0.132,1.325,0.2,1.991,0.2c0.615,0,1.232-0.057,1.839-0.17 c0.073-0.014,0.145-0.028,0.219-0.044c0.02-0.004,0.042-0.012,0.064-0.023c1.359-0.297,2.621-0.864,3.753-1.691l0.025-0.018 c0.04-0.029,0.08-0.058,0.119-0.089c2.192-1.664,3.609-4.049,3.898-6.778l0.069-1.2V4.814C22.026,4.605,22,4.398,21.927,4.194z M17.692,10.481l-4.704,4.512c-0.266,0.254-0.608,0.382-0.949,0.382c-0.342,0-0.684-0.128-0.949-0.382l-4.705-4.512 C5.838,9.957,5.82,9.089,6.344,8.542c0.524-0.547,1.392-0.565,1.939-0.04l3.756,3.601l3.755-3.601 c0.547-0.524,1.415-0.506,1.939,0.04C18.256,9.089,18.238,9.956,17.692,10.481z" 40745 })); 40746 40747 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/reddit.js 40748 40749 40750 /** 40751 * WordPress dependencies 40752 */ 40753 40754 const RedditIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40755 width: "24", 40756 height: "24", 40757 viewBox: "0 0 24 24", 40758 version: "1.1" 40759 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40760 d: "M22,11.816c0-1.256-1.021-2.277-2.277-2.277c-0.593,0-1.122,0.24-1.526,0.614c-1.481-0.965-3.455-1.594-5.647-1.69 l1.171-3.702l3.18,0.748c0.008,1.028,0.846,1.862,1.876,1.862c1.035,0,1.877-0.842,1.877-1.878c0-1.035-0.842-1.877-1.877-1.877 c-0.769,0-1.431,0.466-1.72,1.13l-3.508-0.826c-0.203-0.047-0.399,0.067-0.46,0.261l-1.35,4.268 c-2.316,0.038-4.411,0.67-5.97,1.671C5.368,9.765,4.853,9.539,4.277,9.539C3.021,9.539,2,10.56,2,11.816 c0,0.814,0.433,1.523,1.078,1.925c-0.037,0.221-0.061,0.444-0.061,0.672c0,3.292,4.011,5.97,8.941,5.97s8.941-2.678,8.941-5.97 c0-0.214-0.02-0.424-0.053-0.632C21.533,13.39,22,12.661,22,11.816z M18.776,4.394c0.606,0,1.1,0.493,1.1,1.1s-0.493,1.1-1.1,1.1 s-1.1-0.494-1.1-1.1S18.169,4.394,18.776,4.394z M2.777,11.816c0-0.827,0.672-1.5,1.499-1.5c0.313,0,0.598,0.103,0.838,0.269 c-0.851,0.676-1.477,1.479-1.812,2.36C2.983,12.672,2.777,12.27,2.777,11.816z M11.959,19.606c-4.501,0-8.164-2.329-8.164-5.193 S7.457,9.22,11.959,9.22s8.164,2.329,8.164,5.193S16.46,19.606,11.959,19.606z M20.636,13.001c-0.326-0.89-0.948-1.701-1.797-2.384 c0.248-0.186,0.55-0.301,0.883-0.301c0.827,0,1.5,0.673,1.5,1.5C21.223,12.299,20.992,12.727,20.636,13.001z M8.996,14.704 c-0.76,0-1.397-0.616-1.397-1.376c0-0.76,0.637-1.397,1.397-1.397c0.76,0,1.376,0.637,1.376,1.397 C10.372,14.088,9.756,14.704,8.996,14.704z M16.401,13.328c0,0.76-0.616,1.376-1.376,1.376c-0.76,0-1.399-0.616-1.399-1.376 c0-0.76,0.639-1.397,1.399-1.397C15.785,11.931,16.401,12.568,16.401,13.328z M15.229,16.708c0.152,0.152,0.152,0.398,0,0.55 c-0.674,0.674-1.727,1.002-3.219,1.002c-0.004,0-0.007-0.002-0.011-0.002c-0.004,0-0.007,0.002-0.011,0.002 c-1.492,0-2.544-0.328-3.218-1.002c-0.152-0.152-0.152-0.398,0-0.55c0.152-0.152,0.399-0.151,0.55,0 c0.521,0.521,1.394,0.775,2.669,0.775c0.004,0,0.007,0.002,0.011,0.002c0.004,0,0.007-0.002,0.011-0.002 c1.275,0,2.148-0.253,2.669-0.775C14.831,16.556,15.078,16.556,15.229,16.708z" 40761 })); 40762 40763 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/skype.js 40764 40765 40766 /** 40767 * WordPress dependencies 40768 */ 40769 40770 const SkypeIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40771 width: "24", 40772 height: "24", 40773 viewBox: "0 0 24 24", 40774 version: "1.1" 40775 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40776 d: "M10.113,2.699c0.033-0.006,0.067-0.013,0.1-0.02c0.033,0.017,0.066,0.033,0.098,0.051L10.113,2.699z M2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223z M21.275,13.771 c0.007-0.035,0.011-0.071,0.018-0.106c-0.018-0.031-0.033-0.064-0.052-0.095L21.275,13.771z M13.563,21.199 c0.032,0.019,0.065,0.035,0.096,0.053c0.036-0.006,0.071-0.011,0.105-0.017L13.563,21.199z M22,16.386 c0,1.494-0.581,2.898-1.637,3.953c-1.056,1.057-2.459,1.637-3.953,1.637c-0.967,0-1.914-0.251-2.75-0.725 c0.036-0.006,0.071-0.011,0.105-0.017l-0.202-0.035c0.032,0.019,0.065,0.035,0.096,0.053c-0.543,0.096-1.099,0.147-1.654,0.147 c-1.275,0-2.512-0.25-3.676-0.743c-1.125-0.474-2.135-1.156-3.002-2.023c-0.867-0.867-1.548-1.877-2.023-3.002 c-0.493-1.164-0.743-2.401-0.743-3.676c0-0.546,0.049-1.093,0.142-1.628c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103C2.244,9.5,2,8.566,2,7.615c0-1.493,0.582-2.898,1.637-3.953 c1.056-1.056,2.46-1.638,3.953-1.638c0.915,0,1.818,0.228,2.622,0.655c-0.033,0.007-0.067,0.013-0.1,0.02l0.199,0.031 c-0.032-0.018-0.066-0.034-0.098-0.051c0.002,0,0.003-0.001,0.004-0.001c0.586-0.112,1.187-0.169,1.788-0.169 c1.275,0,2.512,0.249,3.676,0.742c1.124,0.476,2.135,1.156,3.002,2.024c0.868,0.867,1.548,1.877,2.024,3.002 c0.493,1.164,0.743,2.401,0.743,3.676c0,0.575-0.054,1.15-0.157,1.712c-0.018-0.031-0.033-0.064-0.052-0.095l0.034,0.201 c0.007-0.035,0.011-0.071,0.018-0.106C21.754,14.494,22,15.432,22,16.386z M16.817,14.138c0-1.331-0.613-2.743-3.033-3.282 l-2.209-0.49c-0.84-0.192-1.807-0.444-1.807-1.237c0-0.794,0.679-1.348,1.903-1.348c2.468,0,2.243,1.696,3.468,1.696 c0.645,0,1.209-0.379,1.209-1.031c0-1.521-2.435-2.663-4.5-2.663c-2.242,0-4.63,0.952-4.63,3.488c0,1.221,0.436,2.521,2.839,3.123 l2.984,0.745c0.903,0.223,1.129,0.731,1.129,1.189c0,0.762-0.758,1.507-2.129,1.507c-2.679,0-2.307-2.062-3.743-2.062 c-0.645,0-1.113,0.444-1.113,1.078c0,1.236,1.501,2.886,4.856,2.886C15.236,17.737,16.817,16.199,16.817,14.138z" 40777 })); 40778 40779 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/snapchat.js 40780 40781 40782 /** 40783 * WordPress dependencies 40784 */ 40785 40786 const SnapchatIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40787 width: "24", 40788 height: "24", 40789 viewBox: "0 0 24 24", 40790 version: "1.1" 40791 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40792 d: "M12.065,2a5.526,5.526,0,0,1,3.132.892A5.854,5.854,0,0,1,17.326,5.4a5.821,5.821,0,0,1,.351,2.33q0,.612-.117,2.487a.809.809,0,0,0,.365.091,1.93,1.93,0,0,0,.664-.176,1.93,1.93,0,0,1,.664-.176,1.3,1.3,0,0,1,.729.234.7.7,0,0,1,.351.6.839.839,0,0,1-.41.7,2.732,2.732,0,0,1-.9.41,3.192,3.192,0,0,0-.9.378.728.728,0,0,0-.41.618,1.575,1.575,0,0,0,.156.56,6.9,6.9,0,0,0,1.334,1.953,5.6,5.6,0,0,0,1.881,1.315,5.875,5.875,0,0,0,1.042.3.42.42,0,0,1,.365.456q0,.911-2.852,1.341a1.379,1.379,0,0,0-.143.507,1.8,1.8,0,0,1-.182.605.451.451,0,0,1-.429.241,5.878,5.878,0,0,1-.807-.085,5.917,5.917,0,0,0-.833-.085,4.217,4.217,0,0,0-.807.065,2.42,2.42,0,0,0-.82.293,6.682,6.682,0,0,0-.755.5q-.351.267-.755.527a3.886,3.886,0,0,1-.989.436A4.471,4.471,0,0,1,11.831,22a4.307,4.307,0,0,1-1.256-.176,3.784,3.784,0,0,1-.976-.436q-.4-.26-.749-.527a6.682,6.682,0,0,0-.755-.5,2.422,2.422,0,0,0-.807-.293,4.432,4.432,0,0,0-.82-.065,5.089,5.089,0,0,0-.853.1,5,5,0,0,1-.762.1.474.474,0,0,1-.456-.241,1.819,1.819,0,0,1-.182-.618,1.411,1.411,0,0,0-.143-.521q-2.852-.429-2.852-1.341a.42.42,0,0,1,.365-.456,5.793,5.793,0,0,0,1.042-.3,5.524,5.524,0,0,0,1.881-1.315,6.789,6.789,0,0,0,1.334-1.953A1.575,1.575,0,0,0,6,12.9a.728.728,0,0,0-.41-.618,3.323,3.323,0,0,0-.9-.384,2.912,2.912,0,0,1-.9-.41.814.814,0,0,1-.41-.684.71.71,0,0,1,.338-.593,1.208,1.208,0,0,1,.716-.241,1.976,1.976,0,0,1,.625.169,2.008,2.008,0,0,0,.69.169.919.919,0,0,0,.416-.091q-.117-1.849-.117-2.474A5.861,5.861,0,0,1,6.385,5.4,5.516,5.516,0,0,1,8.625,2.819,7.075,7.075,0,0,1,12.062,2Z" 40793 })); 40794 40795 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/soundcloud.js 40796 40797 40798 /** 40799 * WordPress dependencies 40800 */ 40801 40802 const SoundCloudIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40803 width: "24", 40804 height: "24", 40805 viewBox: "0 0 24 24", 40806 version: "1.1" 40807 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40808 d: "M8.9,16.1L9,14L8.9,9.5c0-0.1,0-0.1-0.1-0.1c0,0-0.1-0.1-0.1-0.1c-0.1,0-0.1,0-0.1,0.1c0,0-0.1,0.1-0.1,0.1L8.3,14l0.1,2.1 c0,0.1,0,0.1,0.1,0.1c0,0,0.1,0.1,0.1,0.1C8.8,16.3,8.9,16.3,8.9,16.1z M11.4,15.9l0.1-1.8L11.4,9c0-0.1,0-0.2-0.1-0.2 c0,0-0.1,0-0.1,0s-0.1,0-0.1,0c-0.1,0-0.1,0.1-0.1,0.2l0,0.1l-0.1,5c0,0,0,0.7,0.1,2v0c0,0.1,0,0.1,0.1,0.1c0.1,0.1,0.1,0.1,0.2,0.1 c0.1,0,0.1,0,0.2-0.1c0.1,0,0.1-0.1,0.1-0.2L11.4,15.9z M2.4,12.9L2.5,14l-0.2,1.1c0,0.1,0,0.1-0.1,0.1c0,0-0.1,0-0.1-0.1L2.1,14 l0.1-1.1C2.2,12.9,2.3,12.9,2.4,12.9C2.3,12.9,2.4,12.9,2.4,12.9z M3.1,12.2L3.3,14l-0.2,1.8c0,0.1,0,0.1-0.1,0.1 c-0.1,0-0.1,0-0.1-0.1L2.8,14L3,12.2C3,12.2,3,12.2,3.1,12.2C3.1,12.2,3.1,12.2,3.1,12.2z M3.9,11.9L4.1,14l-0.2,2.1 c0,0.1,0,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L3.5,14l0.2-2.1c0-0.1,0-0.1,0.1-0.1C3.9,11.8,3.9,11.8,3.9,11.9z M4.7,11.9L4.9,14 l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L4.3,14l0.2-2.2c0-0.1,0-0.1,0.1-0.1C4.7,11.7,4.7,11.8,4.7,11.9z M5.6,12 l0.2,2l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c0,0-0.1,0-0.1,0c0,0,0-0.1,0-0.1L5.1,14l0.2-2c0,0,0-0.1,0-0.1s0.1,0,0.1,0 C5.5,11.9,5.5,11.9,5.6,12L5.6,12z M6.4,10.7L6.6,14l-0.2,2.1c0,0,0,0.1,0,0.1c0,0-0.1,0-0.1,0c-0.1,0-0.1-0.1-0.2-0.2L5.9,14 l0.2-3.3c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0C6.4,10.7,6.4,10.7,6.4,10.7z M7.2,10l0.2,4.1l-0.2,2.1c0,0,0,0.1,0,0.1 c0,0-0.1,0-0.1,0c-0.1,0-0.2-0.1-0.2-0.2l-0.1-2.1L6.8,10c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0S7.2,9.9,7.2,10z M8,9.6L8.2,14 L8,16.1c0,0.1-0.1,0.2-0.2,0.2c-0.1,0-0.2-0.1-0.2-0.2L7.5,14l0.1-4.4c0-0.1,0-0.1,0.1-0.1c0,0,0.1-0.1,0.1-0.1c0.1,0,0.1,0,0.1,0.1 C8,9.6,8,9.6,8,9.6z M11.4,16.1L11.4,16.1L11.4,16.1z M9.7,9.6L9.8,14l-0.1,2.1c0,0.1,0,0.1-0.1,0.2s-0.1,0.1-0.2,0.1 c-0.1,0-0.1,0-0.1-0.1s-0.1-0.1-0.1-0.2L9.2,14l0.1-4.4c0-0.1,0-0.1,0.1-0.2s0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S9.7,9.5,9.7,9.6 L9.7,9.6z M10.6,9.8l0.1,4.3l-0.1,2c0,0.1,0,0.1-0.1,0.2c0,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c0,0-0.1-0.1-0.1-0.2L10,14 l0.1-4.3c0-0.1,0-0.1,0.1-0.2c0,0,0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S10.6,9.7,10.6,9.8z M12.4,14l-0.1,2c0,0.1,0,0.1-0.1,0.2 c-0.1,0.1-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2l-0.1-1l-0.1-1l0.1-5.5v0c0-0.1,0-0.2,0.1-0.2 c0.1,0,0.1-0.1,0.2-0.1c0,0,0.1,0,0.1,0c0.1,0,0.1,0.1,0.1,0.2L12.4,14z M22.1,13.9c0,0.7-0.2,1.3-0.7,1.7c-0.5,0.5-1.1,0.7-1.7,0.7 h-6.8c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2V8.2c0-0.1,0.1-0.2,0.2-0.3c0.5-0.2,1-0.3,1.6-0.3c1.1,0,2.1,0.4,2.9,1.1 c0.8,0.8,1.3,1.7,1.4,2.8c0.3-0.1,0.6-0.2,1-0.2c0.7,0,1.3,0.2,1.7,0.7C21.8,12.6,22.1,13.2,22.1,13.9L22.1,13.9z" 40809 })); 40810 40811 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/spotify.js 40812 40813 40814 /** 40815 * WordPress dependencies 40816 */ 40817 40818 const SpotifyIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40819 width: "24", 40820 height: "24", 40821 viewBox: "0 0 24 24", 40822 version: "1.1" 40823 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40824 d: "M12,2C6.477,2,2,6.477,2,12c0,5.523,4.477,10,10,10c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2 M16.586,16.424 c-0.18,0.295-0.563,0.387-0.857,0.207c-2.348-1.435-5.304-1.76-8.785-0.964c-0.335,0.077-0.67-0.133-0.746-0.469 c-0.077-0.335,0.132-0.67,0.469-0.746c3.809-0.871,7.077-0.496,9.713,1.115C16.673,15.746,16.766,16.13,16.586,16.424 M17.81,13.7 c-0.226,0.367-0.706,0.482-1.072,0.257c-2.687-1.652-6.785-2.131-9.965-1.166C6.36,12.917,5.925,12.684,5.8,12.273 C5.675,11.86,5.908,11.425,6.32,11.3c3.632-1.102,8.147-0.568,11.234,1.328C17.92,12.854,18.035,13.335,17.81,13.7 M17.915,10.865 c-3.223-1.914-8.54-2.09-11.618-1.156C5.804,9.859,5.281,9.58,5.131,9.086C4.982,8.591,5.26,8.069,5.755,7.919 c3.532-1.072,9.404-0.865,13.115,1.338c0.445,0.264,0.59,0.838,0.327,1.282C18.933,10.983,18.359,11.129,17.915,10.865" 40825 })); 40826 40827 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/telegram.js 40828 40829 40830 /** 40831 * WordPress dependencies 40832 */ 40833 40834 const TelegramIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40835 width: "24", 40836 height: "24", 40837 viewBox: "0 0 128 128", 40838 version: "1.1" 40839 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40840 d: "M28.9700376,63.3244248 C47.6273373,55.1957357 60.0684594,49.8368063 66.2934036,47.2476366 C84.0668845,39.855031 87.7600616,38.5708563 90.1672227,38.528 C90.6966555,38.5191258 91.8804274,38.6503351 92.6472251,39.2725385 C93.294694,39.7979149 93.4728387,40.5076237 93.5580865,41.0057381 C93.6433345,41.5038525 93.7494885,42.63857 93.6651041,43.5252052 C92.7019529,53.6451182 88.5344133,78.2034783 86.4142057,89.5379542 C85.5170662,94.3339958 83.750571,95.9420841 82.0403991,96.0994568 C78.3237996,96.4414641 75.5015827,93.6432685 71.9018743,91.2836143 C66.2690414,87.5912212 63.0868492,85.2926952 57.6192095,81.6896017 C51.3004058,77.5256038 55.3966232,75.2369981 58.9976911,71.4967761 C59.9401076,70.5179421 76.3155302,55.6232293 76.6324771,54.2720454 C76.6721165,54.1030573 76.7089039,53.4731496 76.3346867,53.1405352 C75.9604695,52.8079208 75.4081573,52.921662 75.0095933,53.0121213 C74.444641,53.1403447 65.4461175,59.0880351 48.0140228,70.8551922 C45.4598218,72.6091037 43.1463059,73.4636682 41.0734751,73.4188859 C38.7883453,73.3695169 34.3926725,72.1268388 31.1249416,71.0646282 C27.1169366,69.7617838 23.931454,69.0729605 24.208838,66.8603276 C24.3533167,65.7078514 25.9403832,64.5292172 28.9700376,63.3244248 Z" 40841 })); 40842 40843 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/tiktok.js 40844 40845 40846 /** 40847 * WordPress dependencies 40848 */ 40849 40850 const TiktokIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40851 width: "24", 40852 height: "24", 40853 viewBox: "0 0 32 32", 40854 version: "1.1" 40855 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40856 d: "M16.708 0.027c1.745-0.027 3.48-0.011 5.213-0.027 0.105 2.041 0.839 4.12 2.333 5.563 1.491 1.479 3.6 2.156 5.652 2.385v5.369c-1.923-0.063-3.855-0.463-5.6-1.291-0.76-0.344-1.468-0.787-2.161-1.24-0.009 3.896 0.016 7.787-0.025 11.667-0.104 1.864-0.719 3.719-1.803 5.255-1.744 2.557-4.771 4.224-7.88 4.276-1.907 0.109-3.812-0.411-5.437-1.369-2.693-1.588-4.588-4.495-4.864-7.615-0.032-0.667-0.043-1.333-0.016-1.984 0.24-2.537 1.495-4.964 3.443-6.615 2.208-1.923 5.301-2.839 8.197-2.297 0.027 1.975-0.052 3.948-0.052 5.923-1.323-0.428-2.869-0.308-4.025 0.495-0.844 0.547-1.485 1.385-1.819 2.333-0.276 0.676-0.197 1.427-0.181 2.145 0.317 2.188 2.421 4.027 4.667 3.828 1.489-0.016 2.916-0.88 3.692-2.145 0.251-0.443 0.532-0.896 0.547-1.417 0.131-2.385 0.079-4.76 0.095-7.145 0.011-5.375-0.016-10.735 0.025-16.093z" 40857 })); 40858 40859 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/tumblr.js 40860 40861 40862 /** 40863 * WordPress dependencies 40864 */ 40865 40866 const TumblrIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40867 width: "24", 40868 height: "24", 40869 viewBox: "0 0 24 24", 40870 version: "1.1" 40871 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40872 d: "M17.04 21.28h-3.28c-2.84 0-4.94-1.37-4.94-5.02v-5.67H6.08V7.5c2.93-.73 4.11-3.3 4.3-5.48h3.01v4.93h3.47v3.65H13.4v4.93c0 1.47.73 2.01 1.92 2.01h1.73v3.75z" 40873 })); 40874 40875 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitch.js 40876 40877 40878 /** 40879 * WordPress dependencies 40880 */ 40881 40882 const TwitchIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40883 width: "24", 40884 height: "24", 40885 viewBox: "0 0 24 24", 40886 version: "1.1" 40887 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40888 d: "M16.499,8.089h-1.636v4.91h1.636V8.089z M12,8.089h-1.637v4.91H12V8.089z M4.228,3.178L3,6.451v13.092h4.499V22h2.456 l2.454-2.456h3.681L21,14.636V3.178H4.228z M19.364,13.816l-2.864,2.865H12l-2.453,2.453V16.68H5.863V4.814h13.501V13.816z" 40889 })); 40890 40891 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitter.js 40892 40893 40894 /** 40895 * WordPress dependencies 40896 */ 40897 40898 const TwitterIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40899 width: "24", 40900 height: "24", 40901 viewBox: "0 0 24 24", 40902 version: "1.1" 40903 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40904 d: "M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z" 40905 })); 40906 40907 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/vimeo.js 40908 40909 40910 /** 40911 * WordPress dependencies 40912 */ 40913 40914 const VimeoIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40915 width: "24", 40916 height: "24", 40917 viewBox: "0 0 24 24", 40918 version: "1.1" 40919 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40920 d: "M22.396,7.164c-0.093,2.026-1.507,4.799-4.245,8.32C15.322,19.161,12.928,21,10.97,21c-1.214,0-2.24-1.119-3.079-3.359 c-0.56-2.053-1.119-4.106-1.68-6.159C5.588,9.243,4.921,8.122,4.206,8.122c-0.156,0-0.701,0.328-1.634,0.98L1.594,7.841 c1.027-0.902,2.04-1.805,3.037-2.708C6.001,3.95,7.03,3.327,7.715,3.264c1.619-0.156,2.616,0.951,2.99,3.321 c0.404,2.557,0.685,4.147,0.841,4.769c0.467,2.121,0.981,3.181,1.542,3.181c0.435,0,1.09-0.688,1.963-2.065 c0.871-1.376,1.338-2.422,1.401-3.142c0.125-1.187-0.343-1.782-1.401-1.782c-0.498,0-1.012,0.115-1.541,0.341 c1.023-3.35,2.977-4.977,5.862-4.884C21.511,3.066,22.52,4.453,22.396,7.164z" 40921 })); 40922 40923 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/vk.js 40924 40925 40926 /** 40927 * WordPress dependencies 40928 */ 40929 40930 const VkIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40931 width: "24", 40932 height: "24", 40933 viewBox: "0 0 24 24", 40934 version: "1.1" 40935 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40936 d: "M22,7.1c0.2,0.4-0.4,1.5-1.6,3.1c-0.2,0.2-0.4,0.5-0.7,0.9c-0.5,0.7-0.9,1.1-0.9,1.4c-0.1,0.3-0.1,0.6,0.1,0.8 c0.1,0.1,0.4,0.4,0.8,0.9h0l0,0c1,0.9,1.6,1.7,2,2.3c0,0,0,0.1,0.1,0.1c0,0.1,0,0.1,0.1,0.3c0,0.1,0,0.2,0,0.4 c0,0.1-0.1,0.2-0.3,0.3c-0.1,0.1-0.4,0.1-0.6,0.1l-2.7,0c-0.2,0-0.4,0-0.6-0.1c-0.2-0.1-0.4-0.1-0.5-0.2l-0.2-0.1 c-0.2-0.1-0.5-0.4-0.7-0.7s-0.5-0.6-0.7-0.8c-0.2-0.2-0.4-0.4-0.6-0.6C14.8,15,14.6,15,14.4,15c0,0,0,0-0.1,0c0,0-0.1,0.1-0.2,0.2 c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.1-0.1,0.3-0.2,0.5c-0.1,0.2-0.1,0.5-0.1,0.8c0,0.1,0,0.2,0,0.3c0,0.1-0.1,0.2-0.1,0.2l0,0.1 c-0.1,0.1-0.3,0.2-0.6,0.2h-1.2c-0.5,0-1,0-1.5-0.2c-0.5-0.1-1-0.3-1.4-0.6s-0.7-0.5-1.1-0.7s-0.6-0.4-0.7-0.6l-0.3-0.3 c-0.1-0.1-0.2-0.2-0.3-0.3s-0.4-0.5-0.7-0.9s-0.7-1-1.1-1.6c-0.4-0.6-0.8-1.3-1.3-2.2C2.9,9.4,2.5,8.5,2.1,7.5C2,7.4,2,7.3,2,7.2 c0-0.1,0-0.1,0-0.2l0-0.1c0.1-0.1,0.3-0.2,0.6-0.2l2.9,0c0.1,0,0.2,0,0.2,0.1S5.9,6.9,5.9,7L6,7c0.1,0.1,0.2,0.2,0.3,0.3 C6.4,7.7,6.5,8,6.7,8.4C6.9,8.8,7,9,7.1,9.2l0.2,0.3c0.2,0.4,0.4,0.8,0.6,1.1c0.2,0.3,0.4,0.5,0.5,0.7s0.3,0.3,0.4,0.4 c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0,0.2,0,0.3-0.1c0,0,0,0,0.1-0.1c0,0,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.3,0.1-0.5c0-0.2,0.1-0.5,0.1-0.8 c0-0.4,0-0.8,0-1.3c0-0.3,0-0.5-0.1-0.8c0-0.2-0.1-0.4-0.1-0.5L9.6,7.6C9.4,7.3,9.1,7.2,8.7,7.1C8.6,7.1,8.6,7,8.7,6.9 C8.9,6.7,9,6.6,9.1,6.5c0.4-0.2,1.2-0.3,2.5-0.3c0.6,0,1,0.1,1.4,0.1c0.1,0,0.3,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.2,0.3 c0,0.1,0.1,0.2,0.1,0.3s0,0.3,0,0.5c0,0.2,0,0.4,0,0.6c0,0.2,0,0.4,0,0.7c0,0.3,0,0.6,0,0.9c0,0.1,0,0.2,0,0.4c0,0.2,0,0.4,0,0.5 c0,0.1,0,0.3,0,0.4s0.1,0.3,0.1,0.4c0.1,0.1,0.1,0.2,0.2,0.3c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.3-0.1c0.1-0.1,0.2-0.2,0.4-0.4 s0.3-0.4,0.5-0.7c0.2-0.3,0.5-0.7,0.7-1.1c0.4-0.7,0.8-1.5,1.1-2.3c0-0.1,0.1-0.1,0.1-0.2c0-0.1,0.1-0.1,0.1-0.1l0,0l0.1,0 c0,0,0,0,0.1,0s0.2,0,0.2,0l3,0c0.3,0,0.5,0,0.7,0S21.9,7,21.9,7L22,7.1z" 40937 })); 40938 40939 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/yelp.js 40940 40941 40942 /** 40943 * WordPress dependencies 40944 */ 40945 40946 const YelpIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40947 width: "24", 40948 height: "24", 40949 viewBox: "0 0 24 24", 40950 version: "1.1" 40951 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40952 d: "M12.271,16.718v1.417q-.011,3.257-.067,3.4a.707.707,0,0,1-.569.446,4.637,4.637,0,0,1-2.024-.424A4.609,4.609,0,0,1,7.8,20.565a.844.844,0,0,1-.19-.4.692.692,0,0,1,.044-.29,3.181,3.181,0,0,1,.379-.524q.335-.412,2.019-2.409.011,0,.669-.781a.757.757,0,0,1,.44-.274.965.965,0,0,1,.552.039.945.945,0,0,1,.418.324.732.732,0,0,1,.139.468Zm-1.662-2.8a.783.783,0,0,1-.58.781l-1.339.435q-3.067.981-3.257.981a.711.711,0,0,1-.6-.4,2.636,2.636,0,0,1-.19-.836,9.134,9.134,0,0,1,.011-1.857,3.559,3.559,0,0,1,.335-1.389.659.659,0,0,1,.625-.357,22.629,22.629,0,0,1,2.253.859q.781.324,1.283.524l.937.379a.771.771,0,0,1,.4.34A.982.982,0,0,1,10.609,13.917Zm9.213,3.313a4.467,4.467,0,0,1-1.021,1.8,4.559,4.559,0,0,1-1.512,1.417.671.671,0,0,1-.7-.078q-.156-.112-2.052-3.2l-.524-.859a.761.761,0,0,1-.128-.513.957.957,0,0,1,.217-.513.774.774,0,0,1,.926-.29q.011.011,1.327.446,2.264.736,2.7.887a2.082,2.082,0,0,1,.524.229.673.673,0,0,1,.245.68Zm-7.5-7.049q.056,1.137-.6,1.361-.647.19-1.272-.792L6.237,4.08a.7.7,0,0,1,.212-.691,5.788,5.788,0,0,1,2.314-1,5.928,5.928,0,0,1,2.5-.352.681.681,0,0,1,.547.5q.034.2.245,3.407T12.327,10.181Zm7.384,1.2a.679.679,0,0,1-.29.658q-.167.112-3.67.959-.747.167-1.015.257l.011-.022a.769.769,0,0,1-.513-.044.914.914,0,0,1-.413-.357.786.786,0,0,1,0-.971q.011-.011.836-1.137,1.394-1.908,1.673-2.275a2.423,2.423,0,0,1,.379-.435A.7.7,0,0,1,17.435,8a4.482,4.482,0,0,1,1.372,1.489,4.81,4.81,0,0,1,.9,1.868v.034Z" 40953 })); 40954 40955 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/youtube.js 40956 40957 40958 /** 40959 * WordPress dependencies 40960 */ 40961 40962 const YouTubeIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 40963 width: "24", 40964 height: "24", 40965 viewBox: "0 0 24 24", 40966 version: "1.1" 40967 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 40968 d: "M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z" 40969 })); 40970 40971 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/variations.js 40972 /** 40973 * Internal dependencies 40974 */ 40975 40976 const social_link_variations_variations = [{ 40977 isDefault: true, 40978 name: 'wordpress', 40979 attributes: { 40980 service: 'wordpress' 40981 }, 40982 title: 'WordPress', 40983 icon: WordPressIcon 40984 }, { 40985 name: 'fivehundredpx', 40986 attributes: { 40987 service: 'fivehundredpx' 40988 }, 40989 title: '500px', 40990 icon: FivehundredpxIcon 40991 }, { 40992 name: 'amazon', 40993 attributes: { 40994 service: 'amazon' 40995 }, 40996 title: 'Amazon', 40997 icon: AmazonIcon 40998 }, { 40999 name: 'bandcamp', 41000 attributes: { 41001 service: 'bandcamp' 41002 }, 41003 title: 'Bandcamp', 41004 icon: BandcampIcon 41005 }, { 41006 name: 'behance', 41007 attributes: { 41008 service: 'behance' 41009 }, 41010 title: 'Behance', 41011 icon: BehanceIcon 41012 }, { 41013 name: 'chain', 41014 attributes: { 41015 service: 'chain' 41016 }, 41017 title: 'Link', 41018 icon: ChainIcon 41019 }, { 41020 name: 'codepen', 41021 attributes: { 41022 service: 'codepen' 41023 }, 41024 title: 'CodePen', 41025 icon: CodepenIcon 41026 }, { 41027 name: 'deviantart', 41028 attributes: { 41029 service: 'deviantart' 41030 }, 41031 title: 'DeviantArt', 41032 icon: DeviantArtIcon 41033 }, { 41034 name: 'dribbble', 41035 attributes: { 41036 service: 'dribbble' 41037 }, 41038 title: 'Dribbble', 41039 icon: DribbbleIcon 41040 }, { 41041 name: 'dropbox', 41042 attributes: { 41043 service: 'dropbox' 41044 }, 41045 title: 'Dropbox', 41046 icon: DropboxIcon 41047 }, { 41048 name: 'etsy', 41049 attributes: { 41050 service: 'etsy' 41051 }, 41052 title: 'Etsy', 41053 icon: EtsyIcon 41054 }, { 41055 name: 'facebook', 41056 attributes: { 41057 service: 'facebook' 41058 }, 41059 title: 'Facebook', 41060 icon: FacebookIcon 41061 }, { 41062 name: 'feed', 41063 attributes: { 41064 service: 'feed' 41065 }, 41066 title: 'RSS Feed', 41067 icon: FeedIcon 41068 }, { 41069 name: 'flickr', 41070 attributes: { 41071 service: 'flickr' 41072 }, 41073 title: 'Flickr', 41074 icon: FlickrIcon 41075 }, { 41076 name: 'foursquare', 41077 attributes: { 41078 service: 'foursquare' 41079 }, 41080 title: 'Foursquare', 41081 icon: FoursquareIcon 41082 }, { 41083 name: 'goodreads', 41084 attributes: { 41085 service: 'goodreads' 41086 }, 41087 title: 'Goodreads', 41088 icon: GoodreadsIcon 41089 }, { 41090 name: 'google', 41091 attributes: { 41092 service: 'google' 41093 }, 41094 title: 'Google', 41095 icon: GoogleIcon 41096 }, { 41097 name: 'github', 41098 attributes: { 41099 service: 'github' 41100 }, 41101 title: 'GitHub', 41102 icon: GitHubIcon 41103 }, { 41104 name: 'instagram', 41105 attributes: { 41106 service: 'instagram' 41107 }, 41108 title: 'Instagram', 41109 icon: InstagramIcon 41110 }, { 41111 name: 'lastfm', 41112 attributes: { 41113 service: 'lastfm' 41114 }, 41115 title: 'Last.fm', 41116 icon: LastfmIcon 41117 }, { 41118 name: 'linkedin', 41119 attributes: { 41120 service: 'linkedin' 41121 }, 41122 title: 'LinkedIn', 41123 icon: LinkedInIcon 41124 }, { 41125 name: 'mail', 41126 attributes: { 41127 service: 'mail' 41128 }, 41129 title: 'Mail', 41130 keywords: ['email', 'e-mail'], 41131 icon: MailIcon 41132 }, { 41133 name: 'mastodon', 41134 attributes: { 41135 service: 'mastodon' 41136 }, 41137 title: 'Mastodon', 41138 icon: MastodonIcon 41139 }, { 41140 name: 'meetup', 41141 attributes: { 41142 service: 'meetup' 41143 }, 41144 title: 'Meetup', 41145 icon: MeetupIcon 41146 }, { 41147 name: 'medium', 41148 attributes: { 41149 service: 'medium' 41150 }, 41151 title: 'Medium', 41152 icon: MediumIcon 41153 }, { 41154 name: 'patreon', 41155 attributes: { 41156 service: 'patreon' 41157 }, 41158 title: 'Patreon', 41159 icon: PatreonIcon 41160 }, { 41161 name: 'pinterest', 41162 attributes: { 41163 service: 'pinterest' 41164 }, 41165 title: 'Pinterest', 41166 icon: PinterestIcon 41167 }, { 41168 name: 'pocket', 41169 attributes: { 41170 service: 'pocket' 41171 }, 41172 title: 'Pocket', 41173 icon: PocketIcon 41174 }, { 41175 name: 'reddit', 41176 attributes: { 41177 service: 'reddit' 41178 }, 41179 title: 'Reddit', 41180 icon: RedditIcon 41181 }, { 41182 name: 'skype', 41183 attributes: { 41184 service: 'skype' 41185 }, 41186 title: 'Skype', 41187 icon: SkypeIcon 41188 }, { 41189 name: 'snapchat', 41190 attributes: { 41191 service: 'snapchat' 41192 }, 41193 title: 'Snapchat', 41194 icon: SnapchatIcon 41195 }, { 41196 name: 'soundcloud', 41197 attributes: { 41198 service: 'soundcloud' 41199 }, 41200 title: 'SoundCloud', 41201 icon: SoundCloudIcon 41202 }, { 41203 name: 'spotify', 41204 attributes: { 41205 service: 'spotify' 41206 }, 41207 title: 'Spotify', 41208 icon: SpotifyIcon 41209 }, { 41210 name: 'telegram', 41211 attributes: { 41212 service: 'telegram' 41213 }, 41214 title: 'Telegram', 41215 icon: TelegramIcon 41216 }, { 41217 name: 'tiktok', 41218 attributes: { 41219 service: 'tiktok' 41220 }, 41221 title: 'TikTok', 41222 icon: TiktokIcon 41223 }, { 41224 name: 'tumblr', 41225 attributes: { 41226 service: 'tumblr' 41227 }, 41228 title: 'Tumblr', 41229 icon: TumblrIcon 41230 }, { 41231 name: 'twitch', 41232 attributes: { 41233 service: 'twitch' 41234 }, 41235 title: 'Twitch', 41236 icon: TwitchIcon 41237 }, { 41238 name: 'twitter', 41239 attributes: { 41240 service: 'twitter' 41241 }, 41242 title: 'Twitter', 41243 icon: TwitterIcon 41244 }, { 41245 name: 'vimeo', 41246 attributes: { 41247 service: 'vimeo' 41248 }, 41249 title: 'Vimeo', 41250 icon: VimeoIcon 41251 }, { 41252 name: 'vk', 41253 attributes: { 41254 service: 'vk' 41255 }, 41256 title: 'VK', 41257 icon: VkIcon 41258 }, { 41259 name: 'yelp', 41260 attributes: { 41261 service: 'yelp' 41262 }, 41263 title: 'Yelp', 41264 icon: YelpIcon 41265 }, { 41266 name: 'youtube', 41267 attributes: { 41268 service: 'youtube' 41269 }, 41270 title: 'YouTube', 41271 icon: YouTubeIcon 41272 }]; 41273 /** 41274 * Add `isActive` function to all `social link` variations, if not defined. 41275 * `isActive` function is used to find a variation match from a created 41276 * Block by providing its attributes. 41277 */ 41278 41279 social_link_variations_variations.forEach(variation => { 41280 if (variation.isActive) return; 41281 41282 variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.service === variationAttributes.service; 41283 }); 41284 /* harmony default export */ var social_link_variations = (social_link_variations_variations); 41285 41286 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/social-list.js 41287 /** 41288 * External dependencies 41289 */ 41290 41291 /** 41292 * WordPress dependencies 41293 */ 41294 41295 41296 /** 41297 * Internal dependencies 41298 */ 41299 41300 41301 41302 /** 41303 * Retrieves the social service's icon component. 41304 * 41305 * @param {string} name key for a social service (lowercase slug) 41306 * 41307 * @return {WPComponent} Icon component for social service. 41308 */ 41309 41310 const getIconBySite = name => { 41311 const variation = (0,external_lodash_namespaceObject.find)(social_link_variations, { 41312 name 41313 }); 41314 return variation ? variation.icon : ChainIcon; 41315 }; 41316 /** 41317 * Retrieves the display name for the social service. 41318 * 41319 * @param {string} name key for a social service (lowercase slug) 41320 * 41321 * @return {string} Display name for social service 41322 */ 41323 41324 const getNameBySite = name => { 41325 const variation = (0,external_lodash_namespaceObject.find)(social_link_variations, { 41326 name 41327 }); 41328 return variation ? variation.title : (0,external_wp_i18n_namespaceObject.__)('Social Icon'); 41329 }; 41330 41331 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/edit.js 41332 41333 41334 /** 41335 * External dependencies 41336 */ 41337 41338 /** 41339 * WordPress dependencies 41340 */ 41341 41342 41343 41344 41345 41346 41347 /** 41348 * Internal dependencies 41349 */ 41350 41351 41352 41353 const SocialLinkURLPopover = _ref => { 41354 let { 41355 url, 41356 setAttributes, 41357 setPopover, 41358 anchorRef 41359 } = _ref; 41360 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.URLPopover, { 41361 anchorRef: anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current, 41362 onClose: () => setPopover(false) 41363 }, (0,external_wp_element_namespaceObject.createElement)("form", { 41364 className: "block-editor-url-popover__link-editor", 41365 onSubmit: event => { 41366 event.preventDefault(); 41367 setPopover(false); 41368 } 41369 }, (0,external_wp_element_namespaceObject.createElement)("div", { 41370 className: "block-editor-url-input" 41371 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.URLInput, { 41372 value: url, 41373 onChange: nextURL => setAttributes({ 41374 url: nextURL 41375 }), 41376 placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter address'), 41377 disableSuggestions: true 41378 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 41379 icon: keyboard_return, 41380 label: (0,external_wp_i18n_namespaceObject.__)('Apply'), 41381 type: "submit" 41382 }))); 41383 }; 41384 41385 const SocialLinkEdit = _ref2 => { 41386 let { 41387 attributes, 41388 context, 41389 isSelected, 41390 setAttributes 41391 } = _ref2; 41392 const { 41393 url, 41394 service, 41395 label 41396 } = attributes; 41397 const { 41398 showLabels, 41399 iconColorValue, 41400 iconBackgroundColorValue 41401 } = context; 41402 const [showURLPopover, setPopover] = (0,external_wp_element_namespaceObject.useState)(false); 41403 const classes = classnames_default()('wp-social-link', 'wp-social-link-' + service, { 41404 'wp-social-link__is-incomplete': !url 41405 }); 41406 const ref = (0,external_wp_element_namespaceObject.useRef)(); 41407 const IconComponent = getIconBySite(service); 41408 const socialLinkName = getNameBySite(service); 41409 const socialLinkLabel = label !== null && label !== void 0 ? label : socialLinkName; 41410 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 41411 className: classes, 41412 style: { 41413 color: iconColorValue, 41414 backgroundColor: iconBackgroundColorValue 41415 } 41416 }); 41417 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 41418 title: (0,external_wp_i18n_namespaceObject.sprintf)( 41419 /* translators: %s: name of the social service. */ 41420 (0,external_wp_i18n_namespaceObject.__)('%s label'), socialLinkName), 41421 initialOpen: false 41422 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelRow, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 41423 label: (0,external_wp_i18n_namespaceObject.__)('Link label'), 41424 help: (0,external_wp_i18n_namespaceObject.__)('Briefly describe the link to help screen reader users.'), 41425 value: label, 41426 onChange: value => setAttributes({ 41427 label: value 41428 }) 41429 })))), (0,external_wp_element_namespaceObject.createElement)("li", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 41430 className: "wp-block-social-link-anchor", 41431 ref: ref, 41432 onClick: () => setPopover(true) 41433 }, (0,external_wp_element_namespaceObject.createElement)(IconComponent, null), (0,external_wp_element_namespaceObject.createElement)("span", { 41434 className: classnames_default()('wp-block-social-link-label', { 41435 'screen-reader-text': !showLabels 41436 }) 41437 }, socialLinkLabel), isSelected && showURLPopover && (0,external_wp_element_namespaceObject.createElement)(SocialLinkURLPopover, { 41438 url: url, 41439 setAttributes: setAttributes, 41440 setPopover: setPopover, 41441 anchorRef: ref 41442 })))); 41443 }; 41444 41445 /* harmony default export */ var social_link_edit = (SocialLinkEdit); 41446 41447 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/index.js 41448 /** 41449 * WordPress dependencies 41450 */ 41451 41452 /** 41453 * Internal dependencies 41454 */ 41455 41456 41457 const social_link_metadata = { 41458 $schema: "https://schemas.wp.org/trunk/block.json", 41459 apiVersion: 2, 41460 name: "core/social-link", 41461 title: "Social Icon", 41462 category: "widgets", 41463 parent: ["core/social-links"], 41464 description: "Display an icon linking to a social media profile or site.", 41465 textdomain: "default", 41466 attributes: { 41467 url: { 41468 type: "string" 41469 }, 41470 service: { 41471 type: "string" 41472 }, 41473 label: { 41474 type: "string" 41475 } 41476 }, 41477 usesContext: ["openInNewTab", "showLabels", "iconColorValue", "iconBackgroundColorValue"], 41478 supports: { 41479 reusable: false, 41480 html: false 41481 }, 41482 editorStyle: "wp-block-social-link-editor" 41483 }; 41484 41485 const { 41486 name: social_link_name 41487 } = social_link_metadata; 41488 41489 const social_link_settings = { 41490 icon: library_share, 41491 edit: social_link_edit, 41492 variations: social_link_variations 41493 }; 41494 41495 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/deprecated.js 41496 41497 41498 /** 41499 * External dependencies 41500 */ 41501 41502 /** 41503 * WordPress dependencies 41504 */ 41505 41506 41507 /** 41508 * The specific handling by `className` below is needed because `itemsJustification` 41509 * was introduced in https://github.com/WordPress/gutenberg/pull/28980/files and wasn't 41510 * declared in block.json. 41511 * 41512 * @param {Object} attributes Block's attributes. 41513 */ 41514 41515 const social_links_deprecated_migrateWithLayout = attributes => { 41516 var _className$match, _className$match$; 41517 41518 if (!!attributes.layout) { 41519 return attributes; 41520 } 41521 41522 const { 41523 className 41524 } = attributes; // Matches classes with `items-justified-` prefix. 41525 41526 const prefix = `items-justified-`; 41527 const justifiedItemsRegex = new RegExp(`\\b$prefix}[^ ]*[ ]?\\b`, 'g'); 41528 const newAttributes = { ...attributes, 41529 className: className === null || className === void 0 ? void 0 : className.replace(justifiedItemsRegex, '').trim() 41530 }; 41531 /** 41532 * Add `layout` prop only if `justifyContent` is defined, for backwards 41533 * compatibility. In other cases the block's default layout will be used. 41534 * Also noting that due to the missing attribute, it's possible for a block 41535 * to have more than one of `justified` classes. 41536 */ 41537 41538 const justifyContent = className === null || className === void 0 ? void 0 : (_className$match = className.match(justifiedItemsRegex)) === null || _className$match === void 0 ? void 0 : (_className$match$ = _className$match[0]) === null || _className$match$ === void 0 ? void 0 : _className$match$.trim(); 41539 41540 if (justifyContent) { 41541 Object.assign(newAttributes, { 41542 layout: { 41543 type: 'flex', 41544 justifyContent: justifyContent.slice(prefix.length) 41545 } 41546 }); 41547 } 41548 41549 return newAttributes; 41550 }; // Social Links block deprecations. 41551 41552 41553 const social_links_deprecated_deprecated = [// V1. Remove CSS variable use for colors. 41554 { 41555 attributes: { 41556 iconColor: { 41557 type: 'string' 41558 }, 41559 customIconColor: { 41560 type: 'string' 41561 }, 41562 iconColorValue: { 41563 type: 'string' 41564 }, 41565 iconBackgroundColor: { 41566 type: 'string' 41567 }, 41568 customIconBackgroundColor: { 41569 type: 'string' 41570 }, 41571 iconBackgroundColorValue: { 41572 type: 'string' 41573 }, 41574 openInNewTab: { 41575 type: 'boolean', 41576 default: false 41577 }, 41578 size: { 41579 type: 'string' 41580 } 41581 }, 41582 providesContext: { 41583 openInNewTab: 'openInNewTab' 41584 }, 41585 supports: { 41586 align: ['left', 'center', 'right'], 41587 anchor: true 41588 }, 41589 migrate: social_links_deprecated_migrateWithLayout, 41590 save: props => { 41591 const { 41592 attributes: { 41593 iconBackgroundColorValue, 41594 iconColorValue, 41595 itemsJustification, 41596 size 41597 } 41598 } = props; 41599 const className = classnames_default()(size, { 41600 'has-icon-color': iconColorValue, 41601 'has-icon-background-color': iconBackgroundColorValue, 41602 [`items-justified-$itemsJustification}`]: itemsJustification 41603 }); 41604 const style = { 41605 '--wp--social-links--icon-color': iconColorValue, 41606 '--wp--social-links--icon-background-color': iconBackgroundColorValue 41607 }; 41608 return (0,external_wp_element_namespaceObject.createElement)("ul", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 41609 className, 41610 style 41611 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, null)); 41612 } 41613 }]; 41614 /* harmony default export */ var social_links_deprecated = (social_links_deprecated_deprecated); 41615 41616 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js 41617 41618 41619 /** 41620 * WordPress dependencies 41621 */ 41622 41623 const check = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 41624 xmlns: "http://www.w3.org/2000/svg", 41625 viewBox: "0 0 24 24" 41626 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 41627 d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z" 41628 })); 41629 /* harmony default export */ var library_check = (check); 41630 41631 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/edit.js 41632 41633 41634 /** 41635 * External dependencies 41636 */ 41637 41638 /** 41639 * WordPress dependencies 41640 */ 41641 41642 41643 41644 41645 41646 41647 41648 const social_links_edit_ALLOWED_BLOCKS = ['core/social-link']; 41649 const sizeOptions = [{ 41650 name: (0,external_wp_i18n_namespaceObject.__)('Small'), 41651 value: 'has-small-icon-size' 41652 }, { 41653 name: (0,external_wp_i18n_namespaceObject.__)('Normal'), 41654 value: 'has-normal-icon-size' 41655 }, { 41656 name: (0,external_wp_i18n_namespaceObject.__)('Large'), 41657 value: 'has-large-icon-size' 41658 }, { 41659 name: (0,external_wp_i18n_namespaceObject.__)('Huge'), 41660 value: 'has-huge-icon-size' 41661 }]; 41662 41663 const social_links_edit_getDefaultBlockLayout = blockTypeOrName => { 41664 const layoutBlockSupportConfig = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockTypeOrName, '__experimentalLayout'); 41665 return layoutBlockSupportConfig === null || layoutBlockSupportConfig === void 0 ? void 0 : layoutBlockSupportConfig.default; 41666 }; 41667 41668 function SocialLinksEdit(props) { 41669 var _attributes$className; 41670 41671 const { 41672 name, 41673 attributes, 41674 iconBackgroundColor, 41675 iconColor, 41676 isSelected, 41677 setAttributes, 41678 setIconBackgroundColor, 41679 setIconColor 41680 } = props; 41681 const { 41682 iconBackgroundColorValue, 41683 customIconBackgroundColor, 41684 iconColorValue, 41685 openInNewTab, 41686 showLabels, 41687 size, 41688 layout 41689 } = attributes; 41690 const usedLayout = layout || social_links_edit_getDefaultBlockLayout(name); 41691 const logosOnly = (_attributes$className = attributes.className) === null || _attributes$className === void 0 ? void 0 : _attributes$className.includes('is-style-logos-only'); // Remove icon background color when logos only style is selected or 41692 // restore it when any other style is selected. 41693 41694 const backgroundBackup = (0,external_wp_element_namespaceObject.useRef)({}); 41695 (0,external_wp_element_namespaceObject.useEffect)(() => { 41696 if (logosOnly) { 41697 backgroundBackup.current = { 41698 iconBackgroundColor, 41699 iconBackgroundColorValue, 41700 customIconBackgroundColor 41701 }; 41702 setAttributes({ 41703 iconBackgroundColor: undefined, 41704 customIconBackgroundColor: undefined, 41705 iconBackgroundColorValue: undefined 41706 }); 41707 } else { 41708 setAttributes({ ...backgroundBackup.current 41709 }); 41710 } 41711 }, [logosOnly]); 41712 const SocialPlaceholder = (0,external_wp_element_namespaceObject.createElement)("li", { 41713 className: "wp-block-social-links__social-placeholder" 41714 }, (0,external_wp_element_namespaceObject.createElement)("div", { 41715 className: "wp-block-social-links__social-placeholder-icons" 41716 }, (0,external_wp_element_namespaceObject.createElement)("div", { 41717 className: "wp-social-link wp-social-link-twitter" 41718 }), (0,external_wp_element_namespaceObject.createElement)("div", { 41719 className: "wp-social-link wp-social-link-facebook" 41720 }), (0,external_wp_element_namespaceObject.createElement)("div", { 41721 className: "wp-social-link wp-social-link-instagram" 41722 }))); 41723 const SelectedSocialPlaceholder = (0,external_wp_element_namespaceObject.createElement)("li", { 41724 className: "wp-block-social-links__social-prompt" 41725 }, (0,external_wp_i18n_namespaceObject.__)('Click plus to add')); // Fallback color values are used maintain selections in case switching 41726 // themes and named colors in palette do not match. 41727 41728 const className = classnames_default()(size, { 41729 'has-icon-color': iconColor.color || iconColorValue, 41730 'has-icon-background-color': iconBackgroundColor.color || iconBackgroundColorValue 41731 }); 41732 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 41733 className 41734 }); 41735 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, { 41736 allowedBlocks: social_links_edit_ALLOWED_BLOCKS, 41737 placeholder: isSelected ? SelectedSocialPlaceholder : SocialPlaceholder, 41738 templateLock: false, 41739 __experimentalAppenderTagName: 'li', 41740 __experimentalLayout: usedLayout 41741 }); 41742 const POPOVER_PROPS = { 41743 position: 'bottom right' 41744 }; 41745 const colorSettings = [{ 41746 // Use custom attribute as fallback to prevent loss of named color selection when 41747 // switching themes to a new theme that does not have a matching named color. 41748 value: iconColor.color || iconColorValue, 41749 onChange: colorValue => { 41750 setIconColor(colorValue); 41751 setAttributes({ 41752 iconColorValue: colorValue 41753 }); 41754 }, 41755 label: (0,external_wp_i18n_namespaceObject.__)('Icon color') 41756 }]; 41757 41758 if (!logosOnly) { 41759 colorSettings.push({ 41760 // Use custom attribute as fallback to prevent loss of named color selection when 41761 // switching themes to a new theme that does not have a matching named color. 41762 value: iconBackgroundColor.color || iconBackgroundColorValue, 41763 onChange: colorValue => { 41764 setIconBackgroundColor(colorValue); 41765 setAttributes({ 41766 iconBackgroundColorValue: colorValue 41767 }); 41768 }, 41769 label: (0,external_wp_i18n_namespaceObject.__)('Icon background') 41770 }); 41771 } 41772 41773 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 41774 group: "other" 41775 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, { 41776 label: (0,external_wp_i18n_namespaceObject.__)('Size'), 41777 text: (0,external_wp_i18n_namespaceObject.__)('Size'), 41778 icon: null, 41779 popoverProps: POPOVER_PROPS 41780 }, _ref => { 41781 let { 41782 onClose 41783 } = _ref; 41784 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, sizeOptions.map(entry => { 41785 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { 41786 icon: (size === entry.value || !size && entry.value === 'has-normal-icon-size') && library_check, 41787 isSelected: size === entry.value, 41788 key: entry.value, 41789 onClick: () => { 41790 setAttributes({ 41791 size: entry.value 41792 }); 41793 }, 41794 onClose: onClose, 41795 role: "menuitemradio" 41796 }, entry.name); 41797 })); 41798 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 41799 title: (0,external_wp_i18n_namespaceObject.__)('Link settings') 41800 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 41801 label: (0,external_wp_i18n_namespaceObject.__)('Open links in new tab'), 41802 checked: openInNewTab, 41803 onChange: () => setAttributes({ 41804 openInNewTab: !openInNewTab 41805 }) 41806 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 41807 label: (0,external_wp_i18n_namespaceObject.__)('Show labels'), 41808 checked: showLabels, 41809 onChange: () => setAttributes({ 41810 showLabels: !showLabels 41811 }) 41812 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.PanelColorSettings, { 41813 __experimentalHasMultipleOrigins: true, 41814 __experimentalIsRenderedInSidebar: true, 41815 title: (0,external_wp_i18n_namespaceObject.__)('Color'), 41816 colorSettings: colorSettings 41817 }), !logosOnly && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ContrastChecker, { 41818 textColor: iconColorValue, 41819 backgroundColor: iconBackgroundColorValue, 41820 isLargeText: false 41821 })), (0,external_wp_element_namespaceObject.createElement)("ul", innerBlocksProps)); 41822 } 41823 const iconColorAttributes = { 41824 iconColor: 'icon-color', 41825 iconBackgroundColor: 'icon-background-color' 41826 }; 41827 /* harmony default export */ var social_links_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)(iconColorAttributes)(SocialLinksEdit)); 41828 41829 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/save.js 41830 41831 41832 /** 41833 * External dependencies 41834 */ 41835 41836 /** 41837 * WordPress dependencies 41838 */ 41839 41840 41841 function social_links_save_save(props) { 41842 const { 41843 attributes: { 41844 iconBackgroundColorValue, 41845 iconColorValue, 41846 showLabels, 41847 size 41848 } 41849 } = props; 41850 const className = classnames_default()(size, { 41851 'has-visible-labels': showLabels, 41852 'has-icon-color': iconColorValue, 41853 'has-icon-background-color': iconBackgroundColorValue 41854 }); 41855 const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({ 41856 className 41857 }); 41858 const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps); 41859 return (0,external_wp_element_namespaceObject.createElement)("ul", innerBlocksProps); 41860 } 41861 41862 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/index.js 41863 /** 41864 * WordPress dependencies 41865 */ 41866 41867 /** 41868 * Internal dependencies 41869 */ 41870 41871 41872 41873 const social_links_metadata = { 41874 $schema: "https://schemas.wp.org/trunk/block.json", 41875 apiVersion: 2, 41876 name: "core/social-links", 41877 title: "Social Icons", 41878 category: "widgets", 41879 description: "Display icons linking to your social media profiles or sites.", 41880 keywords: ["links"], 41881 textdomain: "default", 41882 attributes: { 41883 iconColor: { 41884 type: "string" 41885 }, 41886 customIconColor: { 41887 type: "string" 41888 }, 41889 iconColorValue: { 41890 type: "string" 41891 }, 41892 iconBackgroundColor: { 41893 type: "string" 41894 }, 41895 customIconBackgroundColor: { 41896 type: "string" 41897 }, 41898 iconBackgroundColorValue: { 41899 type: "string" 41900 }, 41901 openInNewTab: { 41902 type: "boolean", 41903 "default": false 41904 }, 41905 showLabels: { 41906 type: "boolean", 41907 "default": false 41908 }, 41909 size: { 41910 type: "string" 41911 } 41912 }, 41913 providesContext: { 41914 openInNewTab: "openInNewTab", 41915 showLabels: "showLabels", 41916 iconColorValue: "iconColorValue", 41917 iconBackgroundColorValue: "iconBackgroundColorValue" 41918 }, 41919 supports: { 41920 align: ["left", "center", "right"], 41921 anchor: true, 41922 __experimentalExposeControlsToChildren: true, 41923 __experimentalLayout: { 41924 allowSwitching: false, 41925 allowInheriting: false, 41926 allowVerticalAlignment: false, 41927 "default": { 41928 type: "flex" 41929 } 41930 }, 41931 spacing: { 41932 blockGap: ["horizontal", "vertical"], 41933 margin: ["top", "bottom"], 41934 units: ["px", "em", "rem", "vh", "vw"], 41935 __experimentalDefaultControls: { 41936 blockGap: true 41937 } 41938 } 41939 }, 41940 styles: [{ 41941 name: "default", 41942 label: "Default", 41943 isDefault: true 41944 }, { 41945 name: "logos-only", 41946 label: "Logos Only" 41947 }, { 41948 name: "pill-shape", 41949 label: "Pill Shape" 41950 }], 41951 editorStyle: "wp-block-social-links-editor", 41952 style: "wp-block-social-links" 41953 }; 41954 41955 const { 41956 name: social_links_name 41957 } = social_links_metadata; 41958 41959 const social_links_settings = { 41960 example: { 41961 innerBlocks: [{ 41962 name: 'core/social-link', 41963 attributes: { 41964 service: 'wordpress', 41965 url: 'https://wordpress.org' 41966 } 41967 }, { 41968 name: 'core/social-link', 41969 attributes: { 41970 service: 'facebook', 41971 url: 'https://www.facebook.com/WordPress/' 41972 } 41973 }, { 41974 name: 'core/social-link', 41975 attributes: { 41976 service: 'twitter', 41977 url: 'https://twitter.com/WordPress' 41978 } 41979 }] 41980 }, 41981 icon: library_share, 41982 edit: social_links_edit, 41983 save: social_links_save_save, 41984 deprecated: social_links_deprecated 41985 }; 41986 41987 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/resize-corner-n-e.js 41988 41989 41990 /** 41991 * WordPress dependencies 41992 */ 41993 41994 const resizeCornerNE = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 41995 viewBox: "0 0 24 24", 41996 xmlns: "http://www.w3.org/2000/svg" 41997 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 41998 d: "M12.5 4.2v1.6h4.7L5.8 17.2V12H4.2v7.8H12v-1.6H6.8L18.2 6.8v4.7h1.6V4.2z" 41999 })); 42000 /* harmony default export */ var resize_corner_n_e = (resizeCornerNE); 42001 42002 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/deprecated.js 42003 42004 42005 /** 42006 * WordPress dependencies 42007 */ 42008 42009 const spacer_deprecated_deprecated = [{ 42010 attributes: { 42011 height: { 42012 type: 'number', 42013 default: 100 42014 }, 42015 width: { 42016 type: 'number' 42017 } 42018 }, 42019 42020 migrate(attributes) { 42021 const { 42022 height, 42023 width 42024 } = attributes; 42025 return { ...attributes, 42026 width: width !== undefined ? `$width}px` : undefined, 42027 height: height !== undefined ? `$height}px` : undefined 42028 }; 42029 }, 42030 42031 save(_ref) { 42032 let { 42033 attributes 42034 } = _ref; 42035 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 42036 style: { 42037 height: attributes.height, 42038 width: attributes.width 42039 }, 42040 'aria-hidden': true 42041 })); 42042 } 42043 42044 }]; 42045 /* harmony default export */ var spacer_deprecated = (spacer_deprecated_deprecated); 42046 42047 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/controls.js 42048 42049 42050 /** 42051 * WordPress dependencies 42052 */ 42053 42054 42055 42056 42057 /** 42058 * Internal dependencies 42059 */ 42060 42061 42062 42063 function DimensionInput(_ref) { 42064 var _ref2; 42065 42066 let { 42067 label, 42068 onChange, 42069 isResizing, 42070 value = '' 42071 } = _ref; 42072 const inputId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl, 'block-spacer-height-input'); // In most contexts the spacer size cannot meaningfully be set to a 42073 // percentage, since this is relative to the parent container. This 42074 // unit is disabled from the UI. 42075 42076 const availableUnitSettings = (_ref2 = (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || undefined) === null || _ref2 === void 0 ? void 0 : _ref2.filter(availableUnit => availableUnit !== '%'); 42077 const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ 42078 availableUnits: availableUnitSettings || ['px', 'em', 'rem', 'vw', 'vh'], 42079 defaultValues: { 42080 px: 100, 42081 em: 10, 42082 rem: 10, 42083 vw: 10, 42084 vh: 25 42085 } 42086 }); 42087 42088 const handleOnChange = unprocessedValue => { 42089 onChange(unprocessedValue); 42090 }; // Force the unit to update to `px` when the Spacer is being resized. 42091 42092 42093 const [parsedQuantity, parsedUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value); 42094 const computedValue = [parsedQuantity, isResizing ? 'px' : parsedUnit].join(''); 42095 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, { 42096 label: label, 42097 id: inputId 42098 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { 42099 id: inputId, 42100 isResetValueOnUnitChange: true, 42101 min: MIN_SPACER_SIZE, 42102 onChange: handleOnChange, 42103 style: { 42104 maxWidth: 80 42105 }, 42106 value: computedValue, 42107 units: units 42108 })); 42109 } 42110 42111 function SpacerControls(_ref3) { 42112 let { 42113 setAttributes, 42114 orientation, 42115 height, 42116 width, 42117 isResizing 42118 } = _ref3; 42119 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 42120 title: (0,external_wp_i18n_namespaceObject.__)('Spacer settings') 42121 }, orientation === 'horizontal' && (0,external_wp_element_namespaceObject.createElement)(DimensionInput, { 42122 label: (0,external_wp_i18n_namespaceObject.__)('Width'), 42123 value: width, 42124 onChange: nextWidth => setAttributes({ 42125 width: nextWidth 42126 }), 42127 isResizing: isResizing 42128 }), orientation !== 'horizontal' && (0,external_wp_element_namespaceObject.createElement)(DimensionInput, { 42129 label: (0,external_wp_i18n_namespaceObject.__)('Height'), 42130 value: height, 42131 onChange: nextHeight => setAttributes({ 42132 height: nextHeight 42133 }), 42134 isResizing: isResizing 42135 }))); 42136 } 42137 42138 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/edit.js 42139 42140 42141 42142 /** 42143 * External dependencies 42144 */ 42145 42146 /** 42147 * WordPress dependencies 42148 */ 42149 42150 42151 42152 42153 42154 /** 42155 * Internal dependencies 42156 */ 42157 42158 42159 const MIN_SPACER_SIZE = 0; 42160 42161 const ResizableSpacer = _ref => { 42162 let { 42163 orientation, 42164 onResizeStart, 42165 onResize, 42166 onResizeStop, 42167 isSelected, 42168 isResizing, 42169 setIsResizing, 42170 ...props 42171 } = _ref; 42172 42173 const getCurrentSize = elt => { 42174 return orientation === 'horizontal' ? elt.clientWidth : elt.clientHeight; 42175 }; 42176 42177 const getNextVal = elt => { 42178 return `$getCurrentSize(elt)}px`; 42179 }; 42180 42181 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, _extends({ 42182 className: classnames_default()('block-library-spacer__resize-container', { 42183 'resize-horizontal': orientation === 'horizontal', 42184 'is-resizing': isResizing, 42185 'is-selected': isSelected 42186 }), 42187 onResizeStart: (_event, _direction, elt) => { 42188 const nextVal = getNextVal(elt); 42189 onResizeStart(nextVal); 42190 onResize(nextVal); 42191 }, 42192 onResize: (_event, _direction, elt) => { 42193 onResize(getNextVal(elt)); 42194 42195 if (!isResizing) { 42196 setIsResizing(true); 42197 } 42198 }, 42199 onResizeStop: (_event, _direction, elt) => { 42200 const nextVal = getCurrentSize(elt); 42201 onResizeStop(`$nextVal}px`); 42202 setIsResizing(false); 42203 }, 42204 __experimentalShowTooltip: true, 42205 __experimentalTooltipProps: { 42206 axis: orientation === 'horizontal' ? 'x' : 'y', 42207 position: 'corner', 42208 isVisible: isResizing 42209 }, 42210 showHandle: isSelected 42211 }, props)); 42212 }; 42213 42214 const SpacerEdit = _ref2 => { 42215 let { 42216 attributes, 42217 isSelected, 42218 setAttributes, 42219 toggleSelection, 42220 context 42221 } = _ref2; 42222 const { 42223 orientation 42224 } = context; 42225 const { 42226 height, 42227 width 42228 } = attributes; 42229 const [isResizing, setIsResizing] = (0,external_wp_element_namespaceObject.useState)(false); 42230 const [temporaryHeight, setTemporaryHeight] = (0,external_wp_element_namespaceObject.useState)(null); 42231 const [temporaryWidth, setTemporaryWidth] = (0,external_wp_element_namespaceObject.useState)(null); 42232 42233 const onResizeStart = () => toggleSelection(false); 42234 42235 const onResizeStop = () => toggleSelection(true); 42236 42237 const handleOnVerticalResizeStop = newHeight => { 42238 onResizeStop(); 42239 setAttributes({ 42240 height: newHeight 42241 }); 42242 setTemporaryHeight(null); 42243 }; 42244 42245 const handleOnHorizontalResizeStop = newWidth => { 42246 onResizeStop(); 42247 setAttributes({ 42248 width: newWidth 42249 }); 42250 setTemporaryWidth(null); 42251 }; 42252 42253 const style = { 42254 height: orientation === 'horizontal' ? 24 : temporaryHeight || height || undefined, 42255 width: orientation === 'horizontal' ? temporaryWidth || width || undefined : undefined 42256 }; 42257 42258 const resizableBoxWithOrientation = blockOrientation => { 42259 if (blockOrientation === 'horizontal') { 42260 return (0,external_wp_element_namespaceObject.createElement)(ResizableSpacer, { 42261 minWidth: MIN_SPACER_SIZE, 42262 enable: { 42263 top: false, 42264 right: true, 42265 bottom: false, 42266 left: false, 42267 topRight: false, 42268 bottomRight: false, 42269 bottomLeft: false, 42270 topLeft: false 42271 }, 42272 orientation: blockOrientation, 42273 onResizeStart: onResizeStart, 42274 onResize: setTemporaryWidth, 42275 onResizeStop: handleOnHorizontalResizeStop, 42276 isSelected: isSelected, 42277 isResizing: isResizing, 42278 setIsResizing: setIsResizing 42279 }); 42280 } 42281 42282 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(ResizableSpacer, { 42283 minHeight: MIN_SPACER_SIZE, 42284 enable: { 42285 top: false, 42286 right: false, 42287 bottom: true, 42288 left: false, 42289 topRight: false, 42290 bottomRight: false, 42291 bottomLeft: false, 42292 topLeft: false 42293 }, 42294 orientation: blockOrientation, 42295 onResizeStart: onResizeStart, 42296 onResize: setTemporaryHeight, 42297 onResizeStop: handleOnVerticalResizeStop, 42298 isSelected: isSelected, 42299 isResizing: isResizing, 42300 setIsResizing: setIsResizing 42301 })); 42302 }; 42303 42304 (0,external_wp_element_namespaceObject.useEffect)(() => { 42305 if (orientation === 'horizontal' && !width) { 42306 setAttributes({ 42307 height: '0px', 42308 width: '72px' 42309 }); 42310 } 42311 }, []); 42312 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.View, (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 42313 style 42314 }), resizableBoxWithOrientation(orientation)), (0,external_wp_element_namespaceObject.createElement)(SpacerControls, { 42315 setAttributes: setAttributes, 42316 height: temporaryHeight || height, 42317 width: temporaryWidth || width, 42318 orientation: orientation, 42319 isResizing: isResizing 42320 })); 42321 }; 42322 42323 /* harmony default export */ var spacer_edit = (SpacerEdit); 42324 42325 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/save.js 42326 42327 42328 /** 42329 * WordPress dependencies 42330 */ 42331 42332 function spacer_save_save(_ref) { 42333 let { 42334 attributes: { 42335 height, 42336 width 42337 } 42338 } = _ref; 42339 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 42340 style: { 42341 height, 42342 width 42343 }, 42344 'aria-hidden': true 42345 })); 42346 } 42347 42348 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/index.js 42349 /** 42350 * WordPress dependencies 42351 */ 42352 42353 /** 42354 * Internal dependencies 42355 */ 42356 42357 42358 42359 const spacer_metadata = { 42360 $schema: "https://schemas.wp.org/trunk/block.json", 42361 apiVersion: 2, 42362 name: "core/spacer", 42363 title: "Spacer", 42364 category: "design", 42365 description: "Add white space between blocks and customize its height.", 42366 textdomain: "default", 42367 attributes: { 42368 height: { 42369 type: "string", 42370 "default": "100px" 42371 }, 42372 width: { 42373 type: "string" 42374 } 42375 }, 42376 usesContext: ["orientation"], 42377 supports: { 42378 anchor: true 42379 }, 42380 editorStyle: "wp-block-spacer-editor", 42381 style: "wp-block-spacer" 42382 }; 42383 42384 const { 42385 name: spacer_name 42386 } = spacer_metadata; 42387 42388 const spacer_settings = { 42389 icon: resize_corner_n_e, 42390 edit: spacer_edit, 42391 save: spacer_save_save, 42392 deprecated: spacer_deprecated 42393 }; 42394 42395 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/block-table.js 42396 42397 42398 /** 42399 * WordPress dependencies 42400 */ 42401 42402 const blockTable = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 42403 viewBox: "0 0 24 24", 42404 xmlns: "http://www.w3.org/2000/svg" 42405 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 42406 d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v3.5h-15V5c0-.3.2-.5.5-.5zm8 5.5h6.5v3.5H13V10zm-1.5 3.5h-7V10h7v3.5zm-7 5.5v-4h7v4.5H5c-.3 0-.5-.2-.5-.5zm14.5.5h-6V15h6.5v4c0 .3-.2.5-.5.5z" 42407 })); 42408 /* harmony default export */ var block_table = (blockTable); 42409 42410 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/deprecated.js 42411 42412 42413 /** 42414 * External dependencies 42415 */ 42416 42417 /** 42418 * WordPress dependencies 42419 */ 42420 42421 42422 const deprecated_supports = { 42423 align: true 42424 }; // As the previous arbitrary colors won't match theme color palettes, the hex 42425 // value will be mapped to the style.color.background attribute as if it was 42426 // a custom color selection. 42427 42428 const oldColors = { 42429 'subtle-light-gray': '#f3f4f5', 42430 'subtle-pale-green': '#e9fbe5', 42431 'subtle-pale-blue': '#e7f5fe', 42432 'subtle-pale-pink': '#fcf0ef' 42433 }; 42434 const table_deprecated_deprecated = [// Deprecation migrating table block to use colors block support feature. 42435 { 42436 attributes: { 42437 hasFixedLayout: { 42438 type: 'boolean', 42439 default: false 42440 }, 42441 backgroundColor: { 42442 type: 'string' 42443 }, 42444 caption: { 42445 type: 'string', 42446 source: 'html', 42447 selector: 'figcaption', 42448 default: '' 42449 }, 42450 head: { 42451 type: 'array', 42452 default: [], 42453 source: 'query', 42454 selector: 'thead tr', 42455 query: { 42456 cells: { 42457 type: 'array', 42458 default: [], 42459 source: 'query', 42460 selector: 'td,th', 42461 query: { 42462 content: { 42463 type: 'string', 42464 source: 'html' 42465 }, 42466 tag: { 42467 type: 'string', 42468 default: 'td', 42469 source: 'tag' 42470 }, 42471 scope: { 42472 type: 'string', 42473 source: 'attribute', 42474 attribute: 'scope' 42475 }, 42476 align: { 42477 type: 'string', 42478 source: 'attribute', 42479 attribute: 'data-align' 42480 } 42481 } 42482 } 42483 } 42484 }, 42485 body: { 42486 type: 'array', 42487 default: [], 42488 source: 'query', 42489 selector: 'tbody tr', 42490 query: { 42491 cells: { 42492 type: 'array', 42493 default: [], 42494 source: 'query', 42495 selector: 'td,th', 42496 query: { 42497 content: { 42498 type: 'string', 42499 source: 'html' 42500 }, 42501 tag: { 42502 type: 'string', 42503 default: 'td', 42504 source: 'tag' 42505 }, 42506 scope: { 42507 type: 'string', 42508 source: 'attribute', 42509 attribute: 'scope' 42510 }, 42511 align: { 42512 type: 'string', 42513 source: 'attribute', 42514 attribute: 'data-align' 42515 } 42516 } 42517 } 42518 } 42519 }, 42520 foot: { 42521 type: 'array', 42522 default: [], 42523 source: 'query', 42524 selector: 'tfoot tr', 42525 query: { 42526 cells: { 42527 type: 'array', 42528 default: [], 42529 source: 'query', 42530 selector: 'td,th', 42531 query: { 42532 content: { 42533 type: 'string', 42534 source: 'html' 42535 }, 42536 tag: { 42537 type: 'string', 42538 default: 'td', 42539 source: 'tag' 42540 }, 42541 scope: { 42542 type: 'string', 42543 source: 'attribute', 42544 attribute: 'scope' 42545 }, 42546 align: { 42547 type: 'string', 42548 source: 'attribute', 42549 attribute: 'data-align' 42550 } 42551 } 42552 } 42553 } 42554 } 42555 }, 42556 supports: { 42557 anchor: true, 42558 align: true, 42559 __experimentalSelector: '.wp-block-table > table' 42560 }, 42561 save: _ref => { 42562 let { 42563 attributes 42564 } = _ref; 42565 const { 42566 hasFixedLayout, 42567 head, 42568 body, 42569 foot, 42570 backgroundColor, 42571 caption 42572 } = attributes; 42573 const isEmpty = !head.length && !body.length && !foot.length; 42574 42575 if (isEmpty) { 42576 return null; 42577 } 42578 42579 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 42580 const classes = classnames_default()(backgroundClass, { 42581 'has-fixed-layout': hasFixedLayout, 42582 'has-background': !!backgroundClass 42583 }); 42584 const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption); 42585 42586 const Section = _ref2 => { 42587 let { 42588 type, 42589 rows 42590 } = _ref2; 42591 42592 if (!rows.length) { 42593 return null; 42594 } 42595 42596 const Tag = `t$type}`; 42597 return (0,external_wp_element_namespaceObject.createElement)(Tag, null, rows.map((_ref3, rowIndex) => { 42598 let { 42599 cells 42600 } = _ref3; 42601 return (0,external_wp_element_namespaceObject.createElement)("tr", { 42602 key: rowIndex 42603 }, cells.map((_ref4, cellIndex) => { 42604 let { 42605 content, 42606 tag, 42607 scope, 42608 align 42609 } = _ref4; 42610 const cellClasses = classnames_default()({ 42611 [`has-text-align-$align}`]: align 42612 }); 42613 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 42614 className: cellClasses ? cellClasses : undefined, 42615 "data-align": align, 42616 tagName: tag, 42617 value: content, 42618 key: cellIndex, 42619 scope: tag === 'th' ? scope : undefined 42620 }); 42621 })); 42622 })); 42623 }; 42624 42625 return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("table", { 42626 className: classes === '' ? undefined : classes 42627 }, (0,external_wp_element_namespaceObject.createElement)(Section, { 42628 type: "head", 42629 rows: head 42630 }), (0,external_wp_element_namespaceObject.createElement)(Section, { 42631 type: "body", 42632 rows: body 42633 }), (0,external_wp_element_namespaceObject.createElement)(Section, { 42634 type: "foot", 42635 rows: foot 42636 })), hasCaption && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 42637 tagName: "figcaption", 42638 value: caption 42639 })); 42640 }, 42641 isEligible: attributes => { 42642 return attributes.backgroundColor && attributes.backgroundColor in oldColors && !attributes.style; 42643 }, 42644 // This version is the first to introduce the style attribute to the 42645 // table block. As a result, we'll explicitly override that. 42646 migrate: attributes => { 42647 return { ...attributes, 42648 backgroundColor: undefined, 42649 style: { 42650 color: { 42651 background: oldColors[attributes.backgroundColor] 42652 } 42653 } 42654 }; 42655 } 42656 }, { 42657 attributes: { 42658 hasFixedLayout: { 42659 type: 'boolean', 42660 default: false 42661 }, 42662 backgroundColor: { 42663 type: 'string' 42664 }, 42665 head: { 42666 type: 'array', 42667 default: [], 42668 source: 'query', 42669 selector: 'thead tr', 42670 query: { 42671 cells: { 42672 type: 'array', 42673 default: [], 42674 source: 'query', 42675 selector: 'td,th', 42676 query: { 42677 content: { 42678 type: 'string', 42679 source: 'html' 42680 }, 42681 tag: { 42682 type: 'string', 42683 default: 'td', 42684 source: 'tag' 42685 }, 42686 scope: { 42687 type: 'string', 42688 source: 'attribute', 42689 attribute: 'scope' 42690 } 42691 } 42692 } 42693 } 42694 }, 42695 body: { 42696 type: 'array', 42697 default: [], 42698 source: 'query', 42699 selector: 'tbody tr', 42700 query: { 42701 cells: { 42702 type: 'array', 42703 default: [], 42704 source: 'query', 42705 selector: 'td,th', 42706 query: { 42707 content: { 42708 type: 'string', 42709 source: 'html' 42710 }, 42711 tag: { 42712 type: 'string', 42713 default: 'td', 42714 source: 'tag' 42715 }, 42716 scope: { 42717 type: 'string', 42718 source: 'attribute', 42719 attribute: 'scope' 42720 } 42721 } 42722 } 42723 } 42724 }, 42725 foot: { 42726 type: 'array', 42727 default: [], 42728 source: 'query', 42729 selector: 'tfoot tr', 42730 query: { 42731 cells: { 42732 type: 'array', 42733 default: [], 42734 source: 'query', 42735 selector: 'td,th', 42736 query: { 42737 content: { 42738 type: 'string', 42739 source: 'html' 42740 }, 42741 tag: { 42742 type: 'string', 42743 default: 'td', 42744 source: 'tag' 42745 }, 42746 scope: { 42747 type: 'string', 42748 source: 'attribute', 42749 attribute: 'scope' 42750 } 42751 } 42752 } 42753 } 42754 } 42755 }, 42756 supports: deprecated_supports, 42757 42758 save(_ref5) { 42759 let { 42760 attributes 42761 } = _ref5; 42762 const { 42763 hasFixedLayout, 42764 head, 42765 body, 42766 foot, 42767 backgroundColor 42768 } = attributes; 42769 const isEmpty = !head.length && !body.length && !foot.length; 42770 42771 if (isEmpty) { 42772 return null; 42773 } 42774 42775 const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor); 42776 const classes = classnames_default()(backgroundClass, { 42777 'has-fixed-layout': hasFixedLayout, 42778 'has-background': !!backgroundClass 42779 }); 42780 42781 const Section = _ref6 => { 42782 let { 42783 type, 42784 rows 42785 } = _ref6; 42786 42787 if (!rows.length) { 42788 return null; 42789 } 42790 42791 const Tag = `t$type}`; 42792 return (0,external_wp_element_namespaceObject.createElement)(Tag, null, rows.map((_ref7, rowIndex) => { 42793 let { 42794 cells 42795 } = _ref7; 42796 return (0,external_wp_element_namespaceObject.createElement)("tr", { 42797 key: rowIndex 42798 }, cells.map((_ref8, cellIndex) => { 42799 let { 42800 content, 42801 tag, 42802 scope 42803 } = _ref8; 42804 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 42805 tagName: tag, 42806 value: content, 42807 key: cellIndex, 42808 scope: tag === 'th' ? scope : undefined 42809 }); 42810 })); 42811 })); 42812 }; 42813 42814 return (0,external_wp_element_namespaceObject.createElement)("table", { 42815 className: classes 42816 }, (0,external_wp_element_namespaceObject.createElement)(Section, { 42817 type: "head", 42818 rows: head 42819 }), (0,external_wp_element_namespaceObject.createElement)(Section, { 42820 type: "body", 42821 rows: body 42822 }), (0,external_wp_element_namespaceObject.createElement)(Section, { 42823 type: "foot", 42824 rows: foot 42825 })); 42826 } 42827 42828 }]; 42829 /* harmony default export */ var table_deprecated = (table_deprecated_deprecated); 42830 42831 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-left.js 42832 42833 42834 /** 42835 * WordPress dependencies 42836 */ 42837 42838 const alignLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 42839 xmlns: "http://www.w3.org/2000/svg", 42840 viewBox: "0 0 24 24" 42841 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 42842 d: "M4 19.8h8.9v-1.5H4v1.5zm8.9-15.6H4v1.5h8.9V4.2zm-8.9 7v1.5h16v-1.5H4z" 42843 })); 42844 /* harmony default export */ var align_left = (alignLeft); 42845 42846 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-center.js 42847 42848 42849 /** 42850 * WordPress dependencies 42851 */ 42852 42853 const alignCenter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 42854 xmlns: "http://www.w3.org/2000/svg", 42855 viewBox: "0 0 24 24" 42856 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 42857 d: "M16.4 4.2H7.6v1.5h8.9V4.2zM4 11.2v1.5h16v-1.5H4zm3.6 8.6h8.9v-1.5H7.6v1.5z" 42858 })); 42859 /* harmony default export */ var align_center = (alignCenter); 42860 42861 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-right.js 42862 42863 42864 /** 42865 * WordPress dependencies 42866 */ 42867 42868 const alignRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 42869 xmlns: "http://www.w3.org/2000/svg", 42870 viewBox: "0 0 24 24" 42871 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 42872 d: "M11.1 19.8H20v-1.5h-8.9v1.5zm0-15.6v1.5H20V4.2h-8.9zM4 12.8h16v-1.5H4v1.5z" 42873 })); 42874 /* harmony default export */ var align_right = (alignRight); 42875 42876 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-before.js 42877 42878 42879 /** 42880 * WordPress dependencies 42881 */ 42882 42883 const tableRowBefore = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 42884 xmlns: "http://www.w3.org/2000/svg", 42885 viewBox: "-2 -2 24 24" 42886 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 42887 d: "M6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84zM6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84z" 42888 })); 42889 /* harmony default export */ var table_row_before = (tableRowBefore); 42890 42891 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-after.js 42892 42893 42894 /** 42895 * WordPress dependencies 42896 */ 42897 42898 const tableRowAfter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 42899 xmlns: "http://www.w3.org/2000/svg", 42900 viewBox: "-2 -2 24 24" 42901 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 42902 d: "M13.824 10.176h-2.88v-2.88H9.536v2.88h-2.88v1.344h2.88v2.88h1.408v-2.88h2.88zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm6.4 0H7.68v3.84h5.12V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.056H1.28v9.024H19.2V6.336z" 42903 })); 42904 /* harmony default export */ var table_row_after = (tableRowAfter); 42905 42906 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-delete.js 42907 42908 42909 /** 42910 * WordPress dependencies 42911 */ 42912 42913 const tableRowDelete = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 42914 xmlns: "http://www.w3.org/2000/svg", 42915 viewBox: "-2 -2 24 24" 42916 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 42917 d: "M17.728 11.456L14.592 8.32l3.2-3.2-1.536-1.536-3.2 3.2L9.92 3.648 8.384 5.12l3.2 3.2-3.264 3.264 1.536 1.536 3.264-3.264 3.136 3.136 1.472-1.536zM0 17.92V0h20.48v17.92H0zm19.2-6.4h-.448l-1.28-1.28H19.2V6.4h-1.792l1.28-1.28h.512V1.28H1.28v3.84h6.208l1.28 1.28H1.28v3.84h7.424l-1.28 1.28H1.28v3.84H19.2v-3.84z" 42918 })); 42919 /* harmony default export */ var table_row_delete = (tableRowDelete); 42920 42921 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-before.js 42922 42923 42924 /** 42925 * WordPress dependencies 42926 */ 42927 42928 const tableColumnBefore = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 42929 xmlns: "http://www.w3.org/2000/svg", 42930 viewBox: "-2 -2 24 24" 42931 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 42932 d: "M6.4 3.776v3.648H2.752v1.792H6.4v3.648h1.728V9.216h3.712V7.424H8.128V3.776zM0 17.92V0h20.48v17.92H0zM12.8 1.28H1.28v14.08H12.8V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.12h-5.12v3.84h5.12V6.4zm0 5.12h-5.12v3.84h5.12v-3.84z" 42933 })); 42934 /* harmony default export */ var table_column_before = (tableColumnBefore); 42935 42936 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-after.js 42937 42938 42939 /** 42940 * WordPress dependencies 42941 */ 42942 42943 const tableColumnAfter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 42944 xmlns: "http://www.w3.org/2000/svg", 42945 viewBox: "-2 -2 24 24" 42946 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 42947 d: "M14.08 12.864V9.216h3.648V7.424H14.08V3.776h-1.728v3.648H8.64v1.792h3.712v3.648zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm0 5.12H1.28v3.84H6.4V6.4zm0 5.12H1.28v3.84H6.4v-3.84zM19.2 1.28H7.68v14.08H19.2V1.28z" 42948 })); 42949 /* harmony default export */ var table_column_after = (tableColumnAfter); 42950 42951 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-delete.js 42952 42953 42954 /** 42955 * WordPress dependencies 42956 */ 42957 42958 const tableColumnDelete = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 42959 xmlns: "http://www.w3.org/2000/svg", 42960 viewBox: "-2 -2 24 24" 42961 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 42962 d: "M6.4 9.98L7.68 8.7v-.256L6.4 7.164V9.98zm6.4-1.532l1.28-1.28V9.92L12.8 8.64v-.192zm7.68 9.472V0H0v17.92h20.48zm-1.28-2.56h-5.12v-1.024l-.256.256-1.024-1.024v1.792H7.68v-1.792l-1.024 1.024-.256-.256v1.024H1.28V1.28H6.4v2.368l.704-.704.576.576V1.216h5.12V3.52l.96-.96.32.32V1.216h5.12V15.36zm-5.76-2.112l-3.136-3.136-3.264 3.264-1.536-1.536 3.264-3.264L5.632 5.44l1.536-1.536 3.136 3.136 3.2-3.2 1.536 1.536-3.2 3.2 3.136 3.136-1.536 1.536z" 42963 })); 42964 /* harmony default export */ var table_column_delete = (tableColumnDelete); 42965 42966 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table.js 42967 42968 42969 /** 42970 * WordPress dependencies 42971 */ 42972 42973 const table = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 42974 xmlns: "http://www.w3.org/2000/svg", 42975 viewBox: "0 0 24 24" 42976 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 42977 d: "M4 6v11.5h16V6H4zm1.5 1.5h6V11h-6V7.5zm0 8.5v-3.5h6V16h-6zm13 0H13v-3.5h5.5V16zM13 11V7.5h5.5V11H13z" 42978 })); 42979 /* harmony default export */ var library_table = (table); 42980 42981 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/state.js 42982 /** 42983 * External dependencies 42984 */ 42985 42986 const INHERITED_COLUMN_ATTRIBUTES = ['align']; 42987 /** 42988 * Creates a table state. 42989 * 42990 * @param {Object} options 42991 * @param {number} options.rowCount Row count for the table to create. 42992 * @param {number} options.columnCount Column count for the table to create. 42993 * 42994 * @return {Object} New table state. 42995 */ 42996 42997 function createTable(_ref) { 42998 let { 42999 rowCount, 43000 columnCount 43001 } = _ref; 43002 return { 43003 body: (0,external_lodash_namespaceObject.times)(rowCount, () => ({ 43004 cells: (0,external_lodash_namespaceObject.times)(columnCount, () => ({ 43005 content: '', 43006 tag: 'td' 43007 })) 43008 })) 43009 }; 43010 } 43011 /** 43012 * Returns the first row in the table. 43013 * 43014 * @param {Object} state Current table state. 43015 * 43016 * @return {Object} The first table row. 43017 */ 43018 43019 function getFirstRow(state) { 43020 if (!isEmptyTableSection(state.head)) { 43021 return state.head[0]; 43022 } 43023 43024 if (!isEmptyTableSection(state.body)) { 43025 return state.body[0]; 43026 } 43027 43028 if (!isEmptyTableSection(state.foot)) { 43029 return state.foot[0]; 43030 } 43031 } 43032 /** 43033 * Gets an attribute for a cell. 43034 * 43035 * @param {Object} state Current table state. 43036 * @param {Object} cellLocation The location of the cell 43037 * @param {string} attributeName The name of the attribute to get the value of. 43038 * 43039 * @return {*} The attribute value. 43040 */ 43041 43042 function getCellAttribute(state, cellLocation, attributeName) { 43043 const { 43044 sectionName, 43045 rowIndex, 43046 columnIndex 43047 } = cellLocation; 43048 return (0,external_lodash_namespaceObject.get)(state, [sectionName, rowIndex, 'cells', columnIndex, attributeName]); 43049 } 43050 /** 43051 * Returns updated cell attributes after applying the `updateCell` function to the selection. 43052 * 43053 * @param {Object} state The block attributes. 43054 * @param {Object} selection The selection of cells to update. 43055 * @param {Function} updateCell A function to update the selected cell attributes. 43056 * 43057 * @return {Object} New table state including the updated cells. 43058 */ 43059 43060 function updateSelectedCell(state, selection, updateCell) { 43061 if (!selection) { 43062 return state; 43063 } 43064 43065 const tableSections = (0,external_lodash_namespaceObject.pick)(state, ['head', 'body', 'foot']); 43066 const { 43067 sectionName: selectionSectionName, 43068 rowIndex: selectionRowIndex 43069 } = selection; 43070 return (0,external_lodash_namespaceObject.mapValues)(tableSections, (section, sectionName) => { 43071 if (selectionSectionName && selectionSectionName !== sectionName) { 43072 return section; 43073 } 43074 43075 return section.map((row, rowIndex) => { 43076 if (selectionRowIndex && selectionRowIndex !== rowIndex) { 43077 return row; 43078 } 43079 43080 return { 43081 cells: row.cells.map((cellAttributes, columnIndex) => { 43082 const cellLocation = { 43083 sectionName, 43084 columnIndex, 43085 rowIndex 43086 }; 43087 43088 if (!isCellSelected(cellLocation, selection)) { 43089 return cellAttributes; 43090 } 43091 43092 return updateCell(cellAttributes); 43093 }) 43094 }; 43095 }); 43096 }); 43097 } 43098 /** 43099 * Returns whether the cell at `cellLocation` is included in the selection `selection`. 43100 * 43101 * @param {Object} cellLocation An object containing cell location properties. 43102 * @param {Object} selection An object containing selection properties. 43103 * 43104 * @return {boolean} True if the cell is selected, false otherwise. 43105 */ 43106 43107 function isCellSelected(cellLocation, selection) { 43108 if (!cellLocation || !selection) { 43109 return false; 43110 } 43111 43112 switch (selection.type) { 43113 case 'column': 43114 return selection.type === 'column' && cellLocation.columnIndex === selection.columnIndex; 43115 43116 case 'cell': 43117 return selection.type === 'cell' && cellLocation.sectionName === selection.sectionName && cellLocation.columnIndex === selection.columnIndex && cellLocation.rowIndex === selection.rowIndex; 43118 } 43119 } 43120 /** 43121 * Inserts a row in the table state. 43122 * 43123 * @param {Object} state Current table state. 43124 * @param {Object} options 43125 * @param {string} options.sectionName Section in which to insert the row. 43126 * @param {number} options.rowIndex Row index at which to insert the row. 43127 * @param {number} options.columnCount Column count for the table to create. 43128 * 43129 * @return {Object} New table state. 43130 */ 43131 43132 function insertRow(state, _ref2) { 43133 let { 43134 sectionName, 43135 rowIndex, 43136 columnCount 43137 } = _ref2; 43138 const firstRow = getFirstRow(state); 43139 const cellCount = columnCount === undefined ? (0,external_lodash_namespaceObject.get)(firstRow, ['cells', 'length']) : columnCount; // Bail early if the function cannot determine how many cells to add. 43140 43141 if (!cellCount) { 43142 return state; 43143 } 43144 43145 return { 43146 [sectionName]: [...state[sectionName].slice(0, rowIndex), { 43147 cells: (0,external_lodash_namespaceObject.times)(cellCount, index => { 43148 const firstCellInColumn = (0,external_lodash_namespaceObject.get)(firstRow, ['cells', index], {}); 43149 const inheritedAttributes = (0,external_lodash_namespaceObject.pick)(firstCellInColumn, INHERITED_COLUMN_ATTRIBUTES); 43150 return { ...inheritedAttributes, 43151 content: '', 43152 tag: sectionName === 'head' ? 'th' : 'td' 43153 }; 43154 }) 43155 }, ...state[sectionName].slice(rowIndex)] 43156 }; 43157 } 43158 /** 43159 * Deletes a row from the table state. 43160 * 43161 * @param {Object} state Current table state. 43162 * @param {Object} options 43163 * @param {string} options.sectionName Section in which to delete the row. 43164 * @param {number} options.rowIndex Row index to delete. 43165 * 43166 * @return {Object} New table state. 43167 */ 43168 43169 function deleteRow(state, _ref3) { 43170 let { 43171 sectionName, 43172 rowIndex 43173 } = _ref3; 43174 return { 43175 [sectionName]: state[sectionName].filter((row, index) => index !== rowIndex) 43176 }; 43177 } 43178 /** 43179 * Inserts a column in the table state. 43180 * 43181 * @param {Object} state Current table state. 43182 * @param {Object} options 43183 * @param {number} options.columnIndex Column index at which to insert the column. 43184 * 43185 * @return {Object} New table state. 43186 */ 43187 43188 function insertColumn(state, _ref4) { 43189 let { 43190 columnIndex 43191 } = _ref4; 43192 const tableSections = (0,external_lodash_namespaceObject.pick)(state, ['head', 'body', 'foot']); 43193 return (0,external_lodash_namespaceObject.mapValues)(tableSections, (section, sectionName) => { 43194 // Bail early if the table section is empty. 43195 if (isEmptyTableSection(section)) { 43196 return section; 43197 } 43198 43199 return section.map(row => { 43200 // Bail early if the row is empty or it's an attempt to insert past 43201 // the last possible index of the array. 43202 if (isEmptyRow(row) || row.cells.length < columnIndex) { 43203 return row; 43204 } 43205 43206 return { 43207 cells: [...row.cells.slice(0, columnIndex), { 43208 content: '', 43209 tag: sectionName === 'head' ? 'th' : 'td' 43210 }, ...row.cells.slice(columnIndex)] 43211 }; 43212 }); 43213 }); 43214 } 43215 /** 43216 * Deletes a column from the table state. 43217 * 43218 * @param {Object} state Current table state. 43219 * @param {Object} options 43220 * @param {number} options.columnIndex Column index to delete. 43221 * 43222 * @return {Object} New table state. 43223 */ 43224 43225 function deleteColumn(state, _ref5) { 43226 let { 43227 columnIndex 43228 } = _ref5; 43229 const tableSections = (0,external_lodash_namespaceObject.pick)(state, ['head', 'body', 'foot']); 43230 return (0,external_lodash_namespaceObject.mapValues)(tableSections, section => { 43231 // Bail early if the table section is empty. 43232 if (isEmptyTableSection(section)) { 43233 return section; 43234 } 43235 43236 return section.map(row => ({ 43237 cells: row.cells.length >= columnIndex ? row.cells.filter((cell, index) => index !== columnIndex) : row.cells 43238 })).filter(row => row.cells.length); 43239 }); 43240 } 43241 /** 43242 * Toggles the existance of a section. 43243 * 43244 * @param {Object} state Current table state. 43245 * @param {string} sectionName Name of the section to toggle. 43246 * 43247 * @return {Object} New table state. 43248 */ 43249 43250 function toggleSection(state, sectionName) { 43251 // Section exists, replace it with an empty row to remove it. 43252 if (!isEmptyTableSection(state[sectionName])) { 43253 return { 43254 [sectionName]: [] 43255 }; 43256 } // Get the length of the first row of the body to use when creating the header. 43257 43258 43259 const columnCount = (0,external_lodash_namespaceObject.get)(state, ['body', 0, 'cells', 'length'], 1); // Section doesn't exist, insert an empty row to create the section. 43260 43261 return insertRow(state, { 43262 sectionName, 43263 rowIndex: 0, 43264 columnCount 43265 }); 43266 } 43267 /** 43268 * Determines whether a table section is empty. 43269 * 43270 * @param {Object} section Table section state. 43271 * 43272 * @return {boolean} True if the table section is empty, false otherwise. 43273 */ 43274 43275 function isEmptyTableSection(section) { 43276 return !section || !section.length || (0,external_lodash_namespaceObject.every)(section, isEmptyRow); 43277 } 43278 /** 43279 * Determines whether a table row is empty. 43280 * 43281 * @param {Object} row Table row state. 43282 * 43283 * @return {boolean} True if the table section is empty, false otherwise. 43284 */ 43285 43286 function isEmptyRow(row) { 43287 return !(row.cells && row.cells.length); 43288 } 43289 43290 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/edit.js 43291 43292 43293 /** 43294 * External dependencies 43295 */ 43296 43297 /** 43298 * WordPress dependencies 43299 */ 43300 43301 43302 43303 43304 43305 43306 43307 /** 43308 * Internal dependencies 43309 */ 43310 43311 43312 const ALIGNMENT_CONTROLS = [{ 43313 icon: align_left, 43314 title: (0,external_wp_i18n_namespaceObject.__)('Align column left'), 43315 align: 'left' 43316 }, { 43317 icon: align_center, 43318 title: (0,external_wp_i18n_namespaceObject.__)('Align column center'), 43319 align: 'center' 43320 }, { 43321 icon: align_right, 43322 title: (0,external_wp_i18n_namespaceObject.__)('Align column right'), 43323 align: 'right' 43324 }]; 43325 const cellAriaLabel = { 43326 head: (0,external_wp_i18n_namespaceObject.__)('Header cell text'), 43327 body: (0,external_wp_i18n_namespaceObject.__)('Body cell text'), 43328 foot: (0,external_wp_i18n_namespaceObject.__)('Footer cell text') 43329 }; 43330 const placeholder = { 43331 head: (0,external_wp_i18n_namespaceObject.__)('Header label'), 43332 foot: (0,external_wp_i18n_namespaceObject.__)('Footer label') 43333 }; 43334 43335 function TSection(_ref) { 43336 let { 43337 name, 43338 ...props 43339 } = _ref; 43340 const TagName = `t$name}`; 43341 return (0,external_wp_element_namespaceObject.createElement)(TagName, props); 43342 } 43343 43344 function TableEdit(_ref2) { 43345 let { 43346 attributes, 43347 setAttributes, 43348 insertBlocksAfter, 43349 isSelected 43350 } = _ref2; 43351 const { 43352 hasFixedLayout, 43353 caption, 43354 head, 43355 foot 43356 } = attributes; 43357 const [initialRowCount, setInitialRowCount] = (0,external_wp_element_namespaceObject.useState)(2); 43358 const [initialColumnCount, setInitialColumnCount] = (0,external_wp_element_namespaceObject.useState)(2); 43359 const [selectedCell, setSelectedCell] = (0,external_wp_element_namespaceObject.useState)(); 43360 const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes); 43361 const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes); 43362 /** 43363 * Updates the initial column count used for table creation. 43364 * 43365 * @param {number} count New initial column count. 43366 */ 43367 43368 function onChangeInitialColumnCount(count) { 43369 setInitialColumnCount(count); 43370 } 43371 /** 43372 * Updates the initial row count used for table creation. 43373 * 43374 * @param {number} count New initial row count. 43375 */ 43376 43377 43378 function onChangeInitialRowCount(count) { 43379 setInitialRowCount(count); 43380 } 43381 /** 43382 * Creates a table based on dimensions in local state. 43383 * 43384 * @param {Object} event Form submit event. 43385 */ 43386 43387 43388 function onCreateTable(event) { 43389 event.preventDefault(); 43390 setAttributes(createTable({ 43391 rowCount: parseInt(initialRowCount, 10) || 2, 43392 columnCount: parseInt(initialColumnCount, 10) || 2 43393 })); 43394 } 43395 /** 43396 * Toggles whether the table has a fixed layout or not. 43397 */ 43398 43399 43400 function onChangeFixedLayout() { 43401 setAttributes({ 43402 hasFixedLayout: !hasFixedLayout 43403 }); 43404 } 43405 /** 43406 * Changes the content of the currently selected cell. 43407 * 43408 * @param {Array} content A RichText content value. 43409 */ 43410 43411 43412 function onChange(content) { 43413 if (!selectedCell) { 43414 return; 43415 } 43416 43417 setAttributes(updateSelectedCell(attributes, selectedCell, cellAttributes => ({ ...cellAttributes, 43418 content 43419 }))); 43420 } 43421 /** 43422 * Align text within the a column. 43423 * 43424 * @param {string} align The new alignment to apply to the column. 43425 */ 43426 43427 43428 function onChangeColumnAlignment(align) { 43429 if (!selectedCell) { 43430 return; 43431 } // Convert the cell selection to a column selection so that alignment 43432 // is applied to the entire column. 43433 43434 43435 const columnSelection = { 43436 type: 'column', 43437 columnIndex: selectedCell.columnIndex 43438 }; 43439 const newAttributes = updateSelectedCell(attributes, columnSelection, cellAttributes => ({ ...cellAttributes, 43440 align 43441 })); 43442 setAttributes(newAttributes); 43443 } 43444 /** 43445 * Get the alignment of the currently selected cell. 43446 * 43447 * @return {string} The new alignment to apply to the column. 43448 */ 43449 43450 43451 function getCellAlignment() { 43452 if (!selectedCell) { 43453 return; 43454 } 43455 43456 return getCellAttribute(attributes, selectedCell, 'align'); 43457 } 43458 /** 43459 * Add or remove a `head` table section. 43460 */ 43461 43462 43463 function onToggleHeaderSection() { 43464 setAttributes(toggleSection(attributes, 'head')); 43465 } 43466 /** 43467 * Add or remove a `foot` table section. 43468 */ 43469 43470 43471 function onToggleFooterSection() { 43472 setAttributes(toggleSection(attributes, 'foot')); 43473 } 43474 /** 43475 * Inserts a row at the currently selected row index, plus `delta`. 43476 * 43477 * @param {number} delta Offset for selected row index at which to insert. 43478 */ 43479 43480 43481 function onInsertRow(delta) { 43482 if (!selectedCell) { 43483 return; 43484 } 43485 43486 const { 43487 sectionName, 43488 rowIndex 43489 } = selectedCell; 43490 const newRowIndex = rowIndex + delta; 43491 setAttributes(insertRow(attributes, { 43492 sectionName, 43493 rowIndex: newRowIndex 43494 })); // Select the first cell of the new row. 43495 43496 setSelectedCell({ 43497 sectionName, 43498 rowIndex: newRowIndex, 43499 columnIndex: 0, 43500 type: 'cell' 43501 }); 43502 } 43503 /** 43504 * Inserts a row before the currently selected row. 43505 */ 43506 43507 43508 function onInsertRowBefore() { 43509 onInsertRow(0); 43510 } 43511 /** 43512 * Inserts a row after the currently selected row. 43513 */ 43514 43515 43516 function onInsertRowAfter() { 43517 onInsertRow(1); 43518 } 43519 /** 43520 * Deletes the currently selected row. 43521 */ 43522 43523 43524 function onDeleteRow() { 43525 if (!selectedCell) { 43526 return; 43527 } 43528 43529 const { 43530 sectionName, 43531 rowIndex 43532 } = selectedCell; 43533 setSelectedCell(); 43534 setAttributes(deleteRow(attributes, { 43535 sectionName, 43536 rowIndex 43537 })); 43538 } 43539 /** 43540 * Inserts a column at the currently selected column index, plus `delta`. 43541 * 43542 * @param {number} delta Offset for selected column index at which to insert. 43543 */ 43544 43545 43546 function onInsertColumn() { 43547 let delta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; 43548 43549 if (!selectedCell) { 43550 return; 43551 } 43552 43553 const { 43554 columnIndex 43555 } = selectedCell; 43556 const newColumnIndex = columnIndex + delta; 43557 setAttributes(insertColumn(attributes, { 43558 columnIndex: newColumnIndex 43559 })); // Select the first cell of the new column. 43560 43561 setSelectedCell({ 43562 rowIndex: 0, 43563 columnIndex: newColumnIndex, 43564 type: 'cell' 43565 }); 43566 } 43567 /** 43568 * Inserts a column before the currently selected column. 43569 */ 43570 43571 43572 function onInsertColumnBefore() { 43573 onInsertColumn(0); 43574 } 43575 /** 43576 * Inserts a column after the currently selected column. 43577 */ 43578 43579 43580 function onInsertColumnAfter() { 43581 onInsertColumn(1); 43582 } 43583 /** 43584 * Deletes the currently selected column. 43585 */ 43586 43587 43588 function onDeleteColumn() { 43589 if (!selectedCell) { 43590 return; 43591 } 43592 43593 const { 43594 sectionName, 43595 columnIndex 43596 } = selectedCell; 43597 setSelectedCell(); 43598 setAttributes(deleteColumn(attributes, { 43599 sectionName, 43600 columnIndex 43601 })); 43602 } 43603 43604 (0,external_wp_element_namespaceObject.useEffect)(() => { 43605 if (!isSelected) { 43606 setSelectedCell(); 43607 } 43608 }, [isSelected]); 43609 const sections = ['head', 'body', 'foot'].filter(name => !isEmptyTableSection(attributes[name])); 43610 const tableControls = [{ 43611 icon: table_row_before, 43612 title: (0,external_wp_i18n_namespaceObject.__)('Insert row before'), 43613 isDisabled: !selectedCell, 43614 onClick: onInsertRowBefore 43615 }, { 43616 icon: table_row_after, 43617 title: (0,external_wp_i18n_namespaceObject.__)('Insert row after'), 43618 isDisabled: !selectedCell, 43619 onClick: onInsertRowAfter 43620 }, { 43621 icon: table_row_delete, 43622 title: (0,external_wp_i18n_namespaceObject.__)('Delete row'), 43623 isDisabled: !selectedCell, 43624 onClick: onDeleteRow 43625 }, { 43626 icon: table_column_before, 43627 title: (0,external_wp_i18n_namespaceObject.__)('Insert column before'), 43628 isDisabled: !selectedCell, 43629 onClick: onInsertColumnBefore 43630 }, { 43631 icon: table_column_after, 43632 title: (0,external_wp_i18n_namespaceObject.__)('Insert column after'), 43633 isDisabled: !selectedCell, 43634 onClick: onInsertColumnAfter 43635 }, { 43636 icon: table_column_delete, 43637 title: (0,external_wp_i18n_namespaceObject.__)('Delete column'), 43638 isDisabled: !selectedCell, 43639 onClick: onDeleteColumn 43640 }]; 43641 const renderedSections = ['head', 'body', 'foot'].map(name => (0,external_wp_element_namespaceObject.createElement)(TSection, { 43642 name: name, 43643 key: name 43644 }, attributes[name].map((_ref3, rowIndex) => { 43645 let { 43646 cells 43647 } = _ref3; 43648 return (0,external_wp_element_namespaceObject.createElement)("tr", { 43649 key: rowIndex 43650 }, cells.map((_ref4, columnIndex) => { 43651 let { 43652 content, 43653 tag: CellTag, 43654 scope, 43655 align 43656 } = _ref4; 43657 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 43658 tagName: CellTag, 43659 key: columnIndex, 43660 className: classnames_default()({ 43661 [`has-text-align-$align}`]: align 43662 }, 'wp-block-table__cell-content'), 43663 scope: CellTag === 'th' ? scope : undefined, 43664 value: content, 43665 onChange: onChange, 43666 unstableOnFocus: () => { 43667 setSelectedCell({ 43668 sectionName: name, 43669 rowIndex, 43670 columnIndex, 43671 type: 'cell' 43672 }); 43673 }, 43674 "aria-label": cellAriaLabel[name], 43675 placeholder: placeholder[name] 43676 }); 43677 })); 43678 }))); 43679 const isEmpty = !sections.length; 43680 return (0,external_wp_element_namespaceObject.createElement)("figure", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), !isEmpty && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 43681 group: "block" 43682 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 43683 label: (0,external_wp_i18n_namespaceObject.__)('Change column alignment'), 43684 alignmentControls: ALIGNMENT_CONTROLS, 43685 value: getCellAlignment(), 43686 onChange: nextAlign => onChangeColumnAlignment(nextAlign) 43687 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 43688 group: "other" 43689 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, { 43690 hasArrowIndicator: true, 43691 icon: library_table, 43692 label: (0,external_wp_i18n_namespaceObject.__)('Edit table'), 43693 controls: tableControls 43694 }))), !isEmpty && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 43695 title: (0,external_wp_i18n_namespaceObject.__)('Table settings'), 43696 className: "blocks-table-settings" 43697 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 43698 label: (0,external_wp_i18n_namespaceObject.__)('Fixed width table cells'), 43699 checked: !!hasFixedLayout, 43700 onChange: onChangeFixedLayout 43701 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 43702 label: (0,external_wp_i18n_namespaceObject.__)('Header section'), 43703 checked: !!(head && head.length), 43704 onChange: onToggleHeaderSection 43705 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 43706 label: (0,external_wp_i18n_namespaceObject.__)('Footer section'), 43707 checked: !!(foot && foot.length), 43708 onChange: onToggleFooterSection 43709 }))), !isEmpty && (0,external_wp_element_namespaceObject.createElement)("table", { 43710 className: classnames_default()(colorProps.className, borderProps.className, { 43711 'has-fixed-layout': hasFixedLayout 43712 }), 43713 style: { ...colorProps.style, 43714 ...borderProps.style 43715 } 43716 }, renderedSections), !isEmpty && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 43717 tagName: "figcaption", 43718 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Table caption text'), 43719 placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'), 43720 value: caption, 43721 onChange: value => setAttributes({ 43722 caption: value 43723 }) // Deselect the selected table cell when the caption is focused. 43724 , 43725 unstableOnFocus: () => setSelectedCell(), 43726 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')) 43727 }), isEmpty && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 43728 label: (0,external_wp_i18n_namespaceObject.__)('Table'), 43729 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { 43730 icon: block_table, 43731 showColors: true 43732 }), 43733 instructions: (0,external_wp_i18n_namespaceObject.__)('Insert a table for sharing data.') 43734 }, (0,external_wp_element_namespaceObject.createElement)("form", { 43735 className: "blocks-table__placeholder-form", 43736 onSubmit: onCreateTable 43737 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 43738 type: "number", 43739 label: (0,external_wp_i18n_namespaceObject.__)('Column count'), 43740 value: initialColumnCount, 43741 onChange: onChangeInitialColumnCount, 43742 min: "1", 43743 className: "blocks-table__placeholder-input" 43744 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 43745 type: "number", 43746 label: (0,external_wp_i18n_namespaceObject.__)('Row count'), 43747 value: initialRowCount, 43748 onChange: onChangeInitialRowCount, 43749 min: "1", 43750 className: "blocks-table__placeholder-input" 43751 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 43752 className: "blocks-table__placeholder-button", 43753 variant: "primary", 43754 type: "submit" 43755 }, (0,external_wp_i18n_namespaceObject.__)('Create Table'))))); 43756 } 43757 43758 /* harmony default export */ var table_edit = (TableEdit); 43759 43760 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/save.js 43761 43762 43763 /** 43764 * External dependencies 43765 */ 43766 43767 /** 43768 * WordPress dependencies 43769 */ 43770 43771 43772 function table_save_save(_ref) { 43773 let { 43774 attributes 43775 } = _ref; 43776 const { 43777 hasFixedLayout, 43778 head, 43779 body, 43780 foot, 43781 caption 43782 } = attributes; 43783 const isEmpty = !head.length && !body.length && !foot.length; 43784 43785 if (isEmpty) { 43786 return null; 43787 } 43788 43789 const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes); 43790 const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes); 43791 const classes = classnames_default()(colorProps.className, borderProps.className, { 43792 'has-fixed-layout': hasFixedLayout 43793 }); 43794 const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption); 43795 43796 const Section = _ref2 => { 43797 let { 43798 type, 43799 rows 43800 } = _ref2; 43801 43802 if (!rows.length) { 43803 return null; 43804 } 43805 43806 const Tag = `t$type}`; 43807 return (0,external_wp_element_namespaceObject.createElement)(Tag, null, rows.map((_ref3, rowIndex) => { 43808 let { 43809 cells 43810 } = _ref3; 43811 return (0,external_wp_element_namespaceObject.createElement)("tr", { 43812 key: rowIndex 43813 }, cells.map((_ref4, cellIndex) => { 43814 let { 43815 content, 43816 tag, 43817 scope, 43818 align 43819 } = _ref4; 43820 const cellClasses = classnames_default()({ 43821 [`has-text-align-$align}`]: align 43822 }); 43823 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 43824 className: cellClasses ? cellClasses : undefined, 43825 "data-align": align, 43826 tagName: tag, 43827 value: content, 43828 key: cellIndex, 43829 scope: tag === 'th' ? scope : undefined 43830 }); 43831 })); 43832 })); 43833 }; 43834 43835 return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), (0,external_wp_element_namespaceObject.createElement)("table", { 43836 className: classes === '' ? undefined : classes, 43837 style: { ...colorProps.style, 43838 ...borderProps.style 43839 } 43840 }, (0,external_wp_element_namespaceObject.createElement)(Section, { 43841 type: "head", 43842 rows: head 43843 }), (0,external_wp_element_namespaceObject.createElement)(Section, { 43844 type: "body", 43845 rows: body 43846 }), (0,external_wp_element_namespaceObject.createElement)(Section, { 43847 type: "foot", 43848 rows: foot 43849 })), hasCaption && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 43850 tagName: "figcaption", 43851 value: caption 43852 })); 43853 } 43854 43855 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/transforms.js 43856 const tableContentPasteSchema = _ref => { 43857 let { 43858 phrasingContentSchema 43859 } = _ref; 43860 return { 43861 tr: { 43862 allowEmpty: true, 43863 children: { 43864 th: { 43865 allowEmpty: true, 43866 children: phrasingContentSchema, 43867 attributes: ['scope'] 43868 }, 43869 td: { 43870 allowEmpty: true, 43871 children: phrasingContentSchema 43872 } 43873 } 43874 } 43875 }; 43876 }; 43877 43878 const tablePasteSchema = args => ({ 43879 table: { 43880 children: { 43881 thead: { 43882 allowEmpty: true, 43883 children: tableContentPasteSchema(args) 43884 }, 43885 tfoot: { 43886 allowEmpty: true, 43887 children: tableContentPasteSchema(args) 43888 }, 43889 tbody: { 43890 allowEmpty: true, 43891 children: tableContentPasteSchema(args) 43892 } 43893 } 43894 } 43895 }); 43896 43897 const table_transforms_transforms = { 43898 from: [{ 43899 type: 'raw', 43900 selector: 'table', 43901 schema: tablePasteSchema 43902 }] 43903 }; 43904 /* harmony default export */ var table_transforms = (table_transforms_transforms); 43905 43906 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/index.js 43907 /** 43908 * WordPress dependencies 43909 */ 43910 43911 43912 /** 43913 * Internal dependencies 43914 */ 43915 43916 43917 43918 const table_metadata = { 43919 $schema: "https://schemas.wp.org/trunk/block.json", 43920 apiVersion: 2, 43921 name: "core/table", 43922 title: "Table", 43923 category: "text", 43924 description: "Create structured content in rows and columns to display information.", 43925 textdomain: "default", 43926 attributes: { 43927 hasFixedLayout: { 43928 type: "boolean", 43929 "default": false 43930 }, 43931 caption: { 43932 type: "string", 43933 source: "html", 43934 selector: "figcaption", 43935 "default": "" 43936 }, 43937 head: { 43938 type: "array", 43939 "default": [], 43940 source: "query", 43941 selector: "thead tr", 43942 query: { 43943 cells: { 43944 type: "array", 43945 "default": [], 43946 source: "query", 43947 selector: "td,th", 43948 query: { 43949 content: { 43950 type: "string", 43951 source: "html" 43952 }, 43953 tag: { 43954 type: "string", 43955 "default": "td", 43956 source: "tag" 43957 }, 43958 scope: { 43959 type: "string", 43960 source: "attribute", 43961 attribute: "scope" 43962 }, 43963 align: { 43964 type: "string", 43965 source: "attribute", 43966 attribute: "data-align" 43967 } 43968 } 43969 } 43970 } 43971 }, 43972 body: { 43973 type: "array", 43974 "default": [], 43975 source: "query", 43976 selector: "tbody tr", 43977 query: { 43978 cells: { 43979 type: "array", 43980 "default": [], 43981 source: "query", 43982 selector: "td,th", 43983 query: { 43984 content: { 43985 type: "string", 43986 source: "html" 43987 }, 43988 tag: { 43989 type: "string", 43990 "default": "td", 43991 source: "tag" 43992 }, 43993 scope: { 43994 type: "string", 43995 source: "attribute", 43996 attribute: "scope" 43997 }, 43998 align: { 43999 type: "string", 44000 source: "attribute", 44001 attribute: "data-align" 44002 } 44003 } 44004 } 44005 } 44006 }, 44007 foot: { 44008 type: "array", 44009 "default": [], 44010 source: "query", 44011 selector: "tfoot tr", 44012 query: { 44013 cells: { 44014 type: "array", 44015 "default": [], 44016 source: "query", 44017 selector: "td,th", 44018 query: { 44019 content: { 44020 type: "string", 44021 source: "html" 44022 }, 44023 tag: { 44024 type: "string", 44025 "default": "td", 44026 source: "tag" 44027 }, 44028 scope: { 44029 type: "string", 44030 source: "attribute", 44031 attribute: "scope" 44032 }, 44033 align: { 44034 type: "string", 44035 source: "attribute", 44036 attribute: "data-align" 44037 } 44038 } 44039 } 44040 } 44041 } 44042 }, 44043 supports: { 44044 anchor: true, 44045 align: true, 44046 color: { 44047 __experimentalSkipSerialization: true, 44048 gradients: true, 44049 __experimentalDefaultControls: { 44050 background: true, 44051 text: true 44052 } 44053 }, 44054 typography: { 44055 fontSize: true, 44056 lineHeight: true, 44057 __experimentalFontStyle: true, 44058 __experimentalFontWeight: true, 44059 __experimentalLetterSpacing: true, 44060 __experimentalTextTransform: true, 44061 __experimentalDefaultControls: { 44062 fontSize: true 44063 } 44064 }, 44065 __experimentalBorder: { 44066 __experimentalSkipSerialization: true, 44067 color: true, 44068 style: true, 44069 width: true, 44070 __experimentalDefaultControls: { 44071 color: true, 44072 style: true, 44073 width: true 44074 } 44075 }, 44076 __experimentalSelector: ".wp-block-table > table" 44077 }, 44078 styles: [{ 44079 name: "regular", 44080 label: "Default", 44081 isDefault: true 44082 }, { 44083 name: "stripes", 44084 label: "Stripes" 44085 }], 44086 editorStyle: "wp-block-table-editor", 44087 style: "wp-block-table" 44088 }; 44089 44090 44091 const { 44092 name: table_name 44093 } = table_metadata; 44094 44095 const table_settings = { 44096 icon: block_table, 44097 example: { 44098 attributes: { 44099 head: [{ 44100 cells: [{ 44101 content: (0,external_wp_i18n_namespaceObject.__)('Version'), 44102 tag: 'th' 44103 }, { 44104 content: (0,external_wp_i18n_namespaceObject.__)('Jazz Musician'), 44105 tag: 'th' 44106 }, { 44107 content: (0,external_wp_i18n_namespaceObject.__)('Release Date'), 44108 tag: 'th' 44109 }] 44110 }], 44111 body: [{ 44112 cells: [{ 44113 content: '5.2', 44114 tag: 'td' 44115 }, { 44116 content: 'Jaco Pastorius', 44117 tag: 'td' 44118 }, { 44119 content: (0,external_wp_i18n_namespaceObject.__)('May 7, 2019'), 44120 tag: 'td' 44121 }] 44122 }, { 44123 cells: [{ 44124 content: '5.1', 44125 tag: 'td' 44126 }, { 44127 content: 'Betty Carter', 44128 tag: 'td' 44129 }, { 44130 content: (0,external_wp_i18n_namespaceObject.__)('February 21, 2019'), 44131 tag: 'td' 44132 }] 44133 }, { 44134 cells: [{ 44135 content: '5.0', 44136 tag: 'td' 44137 }, { 44138 content: 'Bebo Valdés', 44139 tag: 'td' 44140 }, { 44141 content: (0,external_wp_i18n_namespaceObject.__)('December 6, 2018'), 44142 tag: 'td' 44143 }] 44144 }] 44145 } 44146 }, 44147 transforms: table_transforms, 44148 edit: table_edit, 44149 save: table_save_save, 44150 deprecated: table_deprecated 44151 }; 44152 44153 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/transforms.js 44154 /** 44155 * WordPress dependencies 44156 */ 44157 44158 const tag_cloud_transforms_transforms = { 44159 from: [{ 44160 type: 'block', 44161 blocks: ['core/categories'], 44162 transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/tag-cloud') 44163 }], 44164 to: [{ 44165 type: 'block', 44166 blocks: ['core/categories'], 44167 transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/categories') 44168 }] 44169 }; 44170 /* harmony default export */ var tag_cloud_transforms = (tag_cloud_transforms_transforms); 44171 44172 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/edit.js 44173 44174 44175 /** 44176 * External dependencies 44177 */ 44178 44179 /** 44180 * WordPress dependencies 44181 */ 44182 44183 44184 44185 44186 44187 44188 44189 /** 44190 * Minimum number of tags a user can show using this block. 44191 * 44192 * @type {number} 44193 */ 44194 44195 const MIN_TAGS = 1; 44196 /** 44197 * Maximum number of tags a user can show using this block. 44198 * 44199 * @type {number} 44200 */ 44201 44202 const MAX_TAGS = 100; 44203 const MIN_FONT_SIZE = 0.1; 44204 const MAX_FONT_SIZE = 100; 44205 44206 function TagCloudEdit(_ref) { 44207 let { 44208 attributes, 44209 setAttributes, 44210 taxonomies 44211 } = _ref; 44212 const { 44213 taxonomy, 44214 showTagCounts, 44215 numberOfTags, 44216 smallestFontSize, 44217 largestFontSize 44218 } = attributes; 44219 const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ 44220 availableUnits: (0,external_wp_blockEditor_namespaceObject.useSetting)('spacing.units') || ['%', 'px', 'em', 'rem'] 44221 }); 44222 44223 const getTaxonomyOptions = () => { 44224 const selectOption = { 44225 label: (0,external_wp_i18n_namespaceObject.__)('- Select -'), 44226 value: '', 44227 disabled: true 44228 }; 44229 const taxonomyOptions = (0,external_lodash_namespaceObject.map)((0,external_lodash_namespaceObject.filter)(taxonomies, 'show_cloud'), item => { 44230 return { 44231 value: item.slug, 44232 label: item.name 44233 }; 44234 }); 44235 return [selectOption, ...taxonomyOptions]; 44236 }; 44237 44238 const onFontSizeChange = (fontSizeLabel, newValue) => { 44239 // eslint-disable-next-line @wordpress/no-unused-vars-before-return 44240 const [quantity, newUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(newValue); 44241 44242 if (!Number.isFinite(quantity)) { 44243 return; 44244 } 44245 44246 const updateObj = { 44247 [fontSizeLabel]: newValue 44248 }; // We need to keep in sync the `unit` changes to both `smallestFontSize` 44249 // and `largestFontSize` attributes. 44250 44251 Object.entries({ 44252 smallestFontSize, 44253 largestFontSize 44254 }).forEach(_ref2 => { 44255 let [attribute, currentValue] = _ref2; 44256 const [currentQuantity, currentUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(currentValue); // Only add an update if the other font size attribute has a different unit. 44257 44258 if (attribute !== fontSizeLabel && currentUnit !== newUnit) { 44259 updateObj[attribute] = `$currentQuantity}$newUnit}`; 44260 } 44261 }); 44262 setAttributes(updateObj); 44263 }; 44264 44265 const inspectorControls = (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 44266 title: (0,external_wp_i18n_namespaceObject.__)('Tag Cloud settings') 44267 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 44268 label: (0,external_wp_i18n_namespaceObject.__)('Taxonomy'), 44269 options: getTaxonomyOptions(), 44270 value: taxonomy, 44271 onChange: selectedTaxonomy => setAttributes({ 44272 taxonomy: selectedTaxonomy 44273 }) 44274 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 44275 label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'), 44276 checked: showTagCounts, 44277 onChange: () => setAttributes({ 44278 showTagCounts: !showTagCounts 44279 }) 44280 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 44281 label: (0,external_wp_i18n_namespaceObject.__)('Number of tags'), 44282 value: numberOfTags, 44283 onChange: value => setAttributes({ 44284 numberOfTags: value 44285 }), 44286 min: MIN_TAGS, 44287 max: MAX_TAGS, 44288 required: true 44289 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, { 44290 isBlock: true 44291 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { 44292 label: (0,external_wp_i18n_namespaceObject.__)('Smallest size'), 44293 value: smallestFontSize, 44294 onChange: value => { 44295 onFontSizeChange('smallestFontSize', value); 44296 }, 44297 units: units, 44298 min: MIN_FONT_SIZE, 44299 max: MAX_FONT_SIZE 44300 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, { 44301 isBlock: true 44302 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { 44303 label: (0,external_wp_i18n_namespaceObject.__)('Largest size'), 44304 value: largestFontSize, 44305 onChange: value => { 44306 onFontSizeChange('largestFontSize', value); 44307 }, 44308 units: units, 44309 min: MIN_FONT_SIZE, 44310 max: MAX_FONT_SIZE 44311 }))))); 44312 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, inspectorControls, (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)(), (0,external_wp_element_namespaceObject.createElement)((external_wp_serverSideRender_default()), { 44313 key: "tag-cloud", 44314 block: "core/tag-cloud", 44315 attributes: attributes 44316 }))); 44317 } 44318 44319 /* harmony default export */ var tag_cloud_edit = ((0,external_wp_data_namespaceObject.withSelect)(select => { 44320 return { 44321 taxonomies: select(external_wp_coreData_namespaceObject.store).getTaxonomies({ 44322 per_page: -1 44323 }) 44324 }; 44325 })(TagCloudEdit)); 44326 44327 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js 44328 /** 44329 * WordPress dependencies 44330 */ 44331 44332 /** 44333 * Internal dependencies 44334 */ 44335 44336 44337 const tag_cloud_metadata = { 44338 $schema: "https://schemas.wp.org/trunk/block.json", 44339 apiVersion: 2, 44340 name: "core/tag-cloud", 44341 title: "Tag Cloud", 44342 category: "widgets", 44343 description: "A cloud of your most used tags.", 44344 textdomain: "default", 44345 attributes: { 44346 numberOfTags: { 44347 type: "number", 44348 "default": 45, 44349 minimum: 1, 44350 maximum: 100 44351 }, 44352 taxonomy: { 44353 type: "string", 44354 "default": "post_tag" 44355 }, 44356 showTagCounts: { 44357 type: "boolean", 44358 "default": false 44359 }, 44360 smallestFontSize: { 44361 type: "string", 44362 "default": "8pt" 44363 }, 44364 largestFontSize: { 44365 type: "string", 44366 "default": "22pt" 44367 } 44368 }, 44369 styles: [{ 44370 name: "default", 44371 label: "Default", 44372 isDefault: true 44373 }, { 44374 name: "outline", 44375 label: "Outline" 44376 }], 44377 supports: { 44378 html: false, 44379 align: true 44380 }, 44381 editorStyle: "wp-block-tag-cloud-editor" 44382 }; 44383 44384 const { 44385 name: tag_cloud_name 44386 } = tag_cloud_metadata; 44387 44388 const tag_cloud_settings = { 44389 icon: library_tag, 44390 example: {}, 44391 edit: tag_cloud_edit, 44392 transforms: tag_cloud_transforms 44393 }; 44394 44395 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol-filled.js 44396 44397 44398 /** 44399 * WordPress dependencies 44400 */ 44401 44402 const symbolFilled = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 44403 xmlns: "http://www.w3.org/2000/svg", 44404 viewBox: "0 0 24 24" 44405 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 44406 d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-17.6 1L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z" 44407 })); 44408 /* harmony default export */ var symbol_filled = (symbolFilled); 44409 44410 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/hooks.js 44411 /** 44412 * External dependencies 44413 */ 44414 44415 /** 44416 * WordPress dependencies 44417 */ 44418 44419 44420 44421 44422 44423 44424 44425 /** 44426 * Internal dependencies 44427 */ 44428 44429 44430 /** 44431 * Retrieves the available template parts for the given area. 44432 * 44433 * @param {string} area Template part area. 44434 * @param {string} excludedId Template part ID to exclude. 44435 * 44436 * @return {{ templateParts: Array, isResolving: boolean }} array of template parts. 44437 */ 44438 44439 function useAlternativeTemplateParts(area, excludedId) { 44440 const { 44441 templateParts, 44442 isResolving 44443 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 44444 const { 44445 getEntityRecords, 44446 isResolving: _isResolving 44447 } = select(external_wp_coreData_namespaceObject.store); 44448 const query = { 44449 per_page: -1 44450 }; 44451 return { 44452 templateParts: getEntityRecords('postType', 'wp_template_part', query), 44453 isLoading: _isResolving('getEntityRecords', ['postType', 'wp_template_part', query]) 44454 }; 44455 }, []); 44456 const filteredTemplateParts = (0,external_wp_element_namespaceObject.useMemo)(() => { 44457 if (!templateParts) { 44458 return []; 44459 } 44460 44461 return templateParts.filter(templatePart => createTemplatePartId(templatePart.theme, templatePart.slug) !== excludedId && (!area || 'uncategorized' === area || templatePart.area === area)) || []; 44462 }, [templateParts, area]); 44463 return { 44464 templateParts: filteredTemplateParts, 44465 isResolving 44466 }; 44467 } 44468 /** 44469 * Retrieves the available block patterns for the given area. 44470 * 44471 * @param {string} area Template part area. 44472 * @param {string} clientId Block Client ID. (The container of the block can impact allowed blocks). 44473 * 44474 * @return {Array} array of block patterns. 44475 */ 44476 44477 function useAlternativeBlockPatterns(area, clientId) { 44478 return (0,external_wp_data_namespaceObject.useSelect)(select => { 44479 const blockNameWithArea = area ? `core/template-part/$area}` : 'core/template-part'; 44480 const { 44481 getBlockRootClientId, 44482 __experimentalGetPatternsByBlockTypes 44483 } = select(external_wp_blockEditor_namespaceObject.store); 44484 const rootClientId = getBlockRootClientId(clientId); 44485 return __experimentalGetPatternsByBlockTypes(blockNameWithArea, rootClientId); 44486 }, [area, clientId]); 44487 } 44488 function useCreateTemplatePartFromBlocks(area, setAttributes) { 44489 const { 44490 saveEntityRecord 44491 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store); 44492 return async function () { 44493 let blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 44494 let title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0,external_wp_i18n_namespaceObject.__)('Untitled Template Part'); 44495 // Currently template parts only allow latin chars. 44496 // Fallback slug will receive suffix by default. 44497 const cleanSlug = (0,external_lodash_namespaceObject.kebabCase)(title).replace(/[^\w-]+/g, '') || 'wp-custom-part'; // If we have `area` set from block attributes, means an exposed 44498 // block variation was inserted. So add this prop to the template 44499 // part entity on creation. Afterwards remove `area` value from 44500 // block attributes. 44501 44502 const record = { 44503 title, 44504 slug: cleanSlug, 44505 content: (0,external_wp_blocks_namespaceObject.serialize)(blocks), 44506 // `area` is filterable on the server and defaults to `UNCATEGORIZED` 44507 // if provided value is not allowed. 44508 area 44509 }; 44510 const templatePart = await saveEntityRecord('postType', 'wp_template_part', record); 44511 setAttributes({ 44512 slug: templatePart.slug, 44513 theme: templatePart.theme, 44514 area: undefined 44515 }); 44516 }; 44517 } 44518 /** 44519 * Retrieves the template part area object. 44520 * 44521 * @param {string} area Template part area identifier. 44522 * 44523 * @return {{icon: Object, label: string, tagName: string}} Template Part area. 44524 */ 44525 44526 function useTemplatePartArea(area) { 44527 return (0,external_wp_data_namespaceObject.useSelect)(select => { 44528 var _selectedArea$area_ta; 44529 44530 // FIXME: @wordpress/block-library should not depend on @wordpress/editor. 44531 // Blocks can be loaded into a *non-post* block editor. 44532 // eslint-disable-next-line @wordpress/data-no-store-string-literals 44533 const definedAreas = select('core/editor').__experimentalGetDefaultTemplatePartAreas(); 44534 44535 const selectedArea = (0,external_lodash_namespaceObject.find)(definedAreas, { 44536 area 44537 }); 44538 const defaultArea = (0,external_lodash_namespaceObject.find)(definedAreas, { 44539 area: 'uncategorized' 44540 }); 44541 return { 44542 icon: (selectedArea === null || selectedArea === void 0 ? void 0 : selectedArea.icon) || (defaultArea === null || defaultArea === void 0 ? void 0 : defaultArea.icon), 44543 label: (selectedArea === null || selectedArea === void 0 ? void 0 : selectedArea.label) || (0,external_wp_i18n_namespaceObject.__)('Template Part'), 44544 tagName: (_selectedArea$area_ta = selectedArea === null || selectedArea === void 0 ? void 0 : selectedArea.area_tag) !== null && _selectedArea$area_ta !== void 0 ? _selectedArea$area_ta : 'div' 44545 }; 44546 }, [area]); 44547 } 44548 44549 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/title-modal.js 44550 44551 44552 /** 44553 * WordPress dependencies 44554 */ 44555 44556 44557 44558 function TitleModal(_ref) { 44559 let { 44560 areaLabel, 44561 onClose, 44562 onSubmit 44563 } = _ref; 44564 // Restructure onCreate to set the blocks on local state. 44565 // Add modal to confirm title and trigger onCreate. 44566 const [title, setTitle] = (0,external_wp_element_namespaceObject.useState)((0,external_wp_i18n_namespaceObject.__)('Untitled Template Part')); 44567 44568 const submitForCreation = event => { 44569 event.preventDefault(); 44570 onSubmit(title); 44571 }; 44572 44573 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { 44574 title: (0,external_wp_i18n_namespaceObject.sprintf)( // Translators: %s as template part area title ("Header", "Footer", etc.). 44575 (0,external_wp_i18n_namespaceObject.__)('Name and create your new %s'), areaLabel.toLowerCase()), 44576 closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'), 44577 overlayClassName: "wp-block-template-part__placeholder-create-new__title-form", 44578 onRequestClose: onClose 44579 }, (0,external_wp_element_namespaceObject.createElement)("form", { 44580 onSubmit: submitForCreation 44581 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 44582 label: (0,external_wp_i18n_namespaceObject.__)('Name'), 44583 value: title, 44584 onChange: setTitle 44585 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, { 44586 className: "wp-block-template-part__placeholder-create-new__title-form-actions", 44587 justify: "flex-end" 44588 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 44589 variant: "primary", 44590 type: "submit", 44591 disabled: !title.length, 44592 "aria-disabled": !title.length 44593 }, (0,external_wp_i18n_namespaceObject.__)('Create')))))); 44594 } 44595 44596 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/placeholder.js 44597 44598 44599 /** 44600 * WordPress dependencies 44601 */ 44602 44603 44604 44605 /** 44606 * Internal dependencies 44607 */ 44608 44609 44610 44611 function TemplatePartPlaceholder(_ref) { 44612 let { 44613 area, 44614 clientId, 44615 templatePartId, 44616 onOpenSelectionModal, 44617 setAttributes 44618 } = _ref; 44619 const { 44620 templateParts, 44621 isResolving 44622 } = useAlternativeTemplateParts(area, templatePartId); 44623 const blockPatterns = useAlternativeBlockPatterns(area, clientId); 44624 const [showTitleModal, setShowTitleModal] = (0,external_wp_element_namespaceObject.useState)(false); 44625 const areaObject = useTemplatePartArea(area); 44626 const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes); 44627 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { 44628 icon: areaObject.icon, 44629 label: areaObject.label, 44630 instructions: (0,external_wp_i18n_namespaceObject.sprintf)( // Translators: %s as template part area title ("Header", "Footer", etc.). 44631 (0,external_wp_i18n_namespaceObject.__)('Choose an existing %s or create a new one.'), areaObject.label.toLowerCase()) 44632 }, isResolving && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), !isResolving && !!(templateParts.length || blockPatterns.length) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 44633 variant: "primary", 44634 onClick: onOpenSelectionModal 44635 }, (0,external_wp_i18n_namespaceObject.__)('Choose')), !isResolving && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 44636 variant: "secondary", 44637 onClick: () => { 44638 setShowTitleModal(true); 44639 } 44640 }, (0,external_wp_i18n_namespaceObject.__)('Start blank')), showTitleModal && (0,external_wp_element_namespaceObject.createElement)(TitleModal, { 44641 areaLabel: areaObject.label, 44642 onClose: () => setShowTitleModal(false), 44643 onSubmit: title => { 44644 createFromBlocks([], title); 44645 } 44646 })); 44647 } 44648 44649 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/selection-modal.js 44650 44651 44652 /** 44653 * WordPress dependencies 44654 */ 44655 44656 44657 44658 44659 44660 44661 44662 /** 44663 * Internal dependencies 44664 */ 44665 44666 44667 44668 function TemplatePartSelectionModal(_ref) { 44669 let { 44670 setAttributes, 44671 onClose, 44672 templatePartId = null, 44673 area, 44674 clientId 44675 } = _ref; 44676 // When the templatePartId is undefined, 44677 // it means the user is creating a new one from the placeholder. 44678 const isReplacingTemplatePartContent = !!templatePartId; 44679 const { 44680 templateParts 44681 } = useAlternativeTemplateParts(area, templatePartId); // We can map template parts to block patters to reuse the BlockPatternsList UI 44682 44683 const templartPartsAsBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => { 44684 return templateParts.map(templatePart => ({ 44685 name: createTemplatePartId(templatePart.theme, templatePart.slug), 44686 title: templatePart.title.rendered, 44687 blocks: (0,external_wp_blocks_namespaceObject.parse)(templatePart.content.raw), 44688 templatePart 44689 })); 44690 }, [templateParts]); 44691 const shownTemplateParts = (0,external_wp_compose_namespaceObject.useAsyncList)(templartPartsAsBlockPatterns); 44692 const { 44693 createSuccessNotice 44694 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); 44695 const blockPatterns = useAlternativeBlockPatterns(area, clientId); 44696 const shownBlockPatterns = (0,external_wp_compose_namespaceObject.useAsyncList)(blockPatterns); 44697 const { 44698 replaceInnerBlocks 44699 } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); 44700 const onTemplatePartSelect = (0,external_wp_element_namespaceObject.useCallback)(templatePart => { 44701 var _templatePart$title; 44702 44703 setAttributes({ 44704 slug: templatePart.slug, 44705 theme: templatePart.theme, 44706 area: undefined 44707 }); 44708 createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( 44709 /* translators: %s: template part title. */ 44710 (0,external_wp_i18n_namespaceObject.__)('Template Part "%s" inserted.'), ((_templatePart$title = templatePart.title) === null || _templatePart$title === void 0 ? void 0 : _templatePart$title.rendered) || templatePart.slug), { 44711 type: 'snackbar' 44712 }); 44713 onClose(); 44714 }, []); 44715 const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes); 44716 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", { 44717 className: "block-library-template-part__selection-content" 44718 }, !!templartPartsAsBlockPatterns.length && (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)("h2", null, (0,external_wp_i18n_namespaceObject.__)('Existing template parts')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, { 44719 blockPatterns: templartPartsAsBlockPatterns, 44720 shownPatterns: shownTemplateParts, 44721 onClickPattern: pattern => { 44722 onTemplatePartSelect(pattern.templatePart); 44723 } 44724 })), !!blockPatterns.length && (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)("h2", null, (0,external_wp_i18n_namespaceObject.__)('Patterns')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, { 44725 blockPatterns: blockPatterns, 44726 shownPatterns: shownBlockPatterns, 44727 onClickPattern: (pattern, blocks) => { 44728 if (isReplacingTemplatePartContent) { 44729 replaceInnerBlocks(clientId, blocks); 44730 } else { 44731 createFromBlocks(blocks, pattern.title); 44732 } 44733 44734 onClose(); 44735 } 44736 })))); 44737 } 44738 44739 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/advanced-controls.js 44740 44741 44742 /** 44743 * WordPress dependencies 44744 */ 44745 44746 44747 44748 44749 44750 function TemplatePartAdvancedControls(_ref) { 44751 let { 44752 tagName, 44753 setAttributes, 44754 isEntityAvailable, 44755 templatePartId, 44756 defaultWrapper 44757 } = _ref; 44758 const [area, setArea] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'area', templatePartId); 44759 const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'title', templatePartId); 44760 const { 44761 areaOptions 44762 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 44763 // FIXME: @wordpress/block-library should not depend on @wordpress/editor. 44764 // Blocks can be loaded into a *non-post* block editor. 44765 // eslint-disable-next-line @wordpress/data-no-store-string-literals 44766 const definedAreas = select('core/editor').__experimentalGetDefaultTemplatePartAreas(); 44767 44768 return { 44769 areaOptions: definedAreas.map(_ref2 => { 44770 let { 44771 label, 44772 area: _area 44773 } = _ref2; 44774 return { 44775 label, 44776 value: _area 44777 }; 44778 }) 44779 }; 44780 }, []); 44781 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, { 44782 __experimentalGroup: "advanced" 44783 }, isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 44784 label: (0,external_wp_i18n_namespaceObject.__)('Title'), 44785 value: title, 44786 onChange: value => { 44787 setTitle(value); 44788 }, 44789 onFocus: event => event.target.select() 44790 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 44791 label: (0,external_wp_i18n_namespaceObject.__)('Area'), 44792 labelPosition: "top", 44793 options: areaOptions, 44794 value: area, 44795 onChange: setArea 44796 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 44797 label: (0,external_wp_i18n_namespaceObject.__)('HTML element'), 44798 options: [{ 44799 label: (0,external_wp_i18n_namespaceObject.sprintf)( 44800 /* translators: %s: HTML tag based on area. */ 44801 (0,external_wp_i18n_namespaceObject.__)('Default based on area (%s)'), `<$defaultWrapper}>`), 44802 value: '' 44803 }, { 44804 label: '<header>', 44805 value: 'header' 44806 }, { 44807 label: '<main>', 44808 value: 'main' 44809 }, { 44810 label: '<section>', 44811 value: 'section' 44812 }, { 44813 label: '<article>', 44814 value: 'article' 44815 }, { 44816 label: '<aside>', 44817 value: 'aside' 44818 }, { 44819 label: '<footer>', 44820 value: 'footer' 44821 }, { 44822 label: '<div>', 44823 value: 'div' 44824 }], 44825 value: tagName || '', 44826 onChange: value => setAttributes({ 44827 tagName: value 44828 }) 44829 })); 44830 } 44831 44832 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/inner-blocks.js 44833 44834 44835 /** 44836 * WordPress dependencies 44837 */ 44838 44839 44840 44841 function TemplatePartInnerBlocks(_ref) { 44842 let { 44843 postId: id, 44844 hasInnerBlocks, 44845 layout, 44846 tagName, 44847 blockProps, 44848 clientId 44849 } = _ref; 44850 const themeSupportsLayout = (0,external_wp_data_namespaceObject.useSelect)(select => { 44851 var _getSettings; 44852 44853 const { 44854 getSettings 44855 } = select(external_wp_blockEditor_namespaceObject.store); 44856 return (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout; 44857 }, []); 44858 const defaultLayout = (0,external_wp_blockEditor_namespaceObject.useSetting)('layout') || {}; 44859 const usedLayout = !!layout && layout.inherit ? defaultLayout : layout; 44860 const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_template_part', { 44861 id 44862 }); 44863 const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, { 44864 value: blocks, 44865 onInput, 44866 onChange, 44867 renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender, 44868 __experimentalLayout: themeSupportsLayout ? usedLayout : undefined 44869 }); 44870 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockContentOverlay, { 44871 clientId: clientId, 44872 tagName: tagName, 44873 wrapperProps: innerBlocksProps 44874 }); 44875 } 44876 44877 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/edit/index.js 44878 44879 44880 /** 44881 * External dependencies 44882 */ 44883 44884 /** 44885 * WordPress dependencies 44886 */ 44887 44888 44889 44890 44891 44892 44893 44894 /** 44895 * Internal dependencies 44896 */ 44897 44898 44899 44900 44901 44902 44903 44904 function TemplatePartEdit(_ref) { 44905 let { 44906 attributes, 44907 setAttributes, 44908 clientId 44909 } = _ref; 44910 const { 44911 slug, 44912 theme, 44913 tagName, 44914 layout = {} 44915 } = attributes; 44916 const templatePartId = createTemplatePartId(theme, slug); 44917 const [hasAlreadyRendered, RecursionProvider] = (0,external_wp_blockEditor_namespaceObject.__experimentalUseNoRecursiveRenders)(templatePartId); 44918 const [isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen] = (0,external_wp_element_namespaceObject.useState)(false); // Set the postId block attribute if it did not exist, 44919 // but wait until the inner blocks have loaded to allow 44920 // new edits to trigger this. 44921 44922 const { 44923 isResolved, 44924 innerBlocks, 44925 isMissing, 44926 area 44927 } = (0,external_wp_data_namespaceObject.useSelect)(select => { 44928 const { 44929 getEditedEntityRecord, 44930 hasFinishedResolution 44931 } = select(external_wp_coreData_namespaceObject.store); 44932 const { 44933 getBlocks 44934 } = select(external_wp_blockEditor_namespaceObject.store); 44935 const getEntityArgs = ['postType', 'wp_template_part', templatePartId]; 44936 const entityRecord = templatePartId ? getEditedEntityRecord(...getEntityArgs) : null; 44937 44938 const _area = (entityRecord === null || entityRecord === void 0 ? void 0 : entityRecord.area) || attributes.area; 44939 44940 const hasResolvedEntity = templatePartId ? hasFinishedResolution('getEditedEntityRecord', getEntityArgs) : false; 44941 return { 44942 innerBlocks: getBlocks(clientId), 44943 isResolved: hasResolvedEntity, 44944 isMissing: hasResolvedEntity && (0,external_lodash_namespaceObject.isEmpty)(entityRecord), 44945 area: _area 44946 }; 44947 }, [templatePartId, clientId]); 44948 const { 44949 templateParts 44950 } = useAlternativeTemplateParts(area, templatePartId); 44951 const blockPatterns = useAlternativeBlockPatterns(area, clientId); 44952 const hasReplacements = !!templateParts.length || !!blockPatterns.length; 44953 const areaObject = useTemplatePartArea(area); 44954 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(); 44955 const isPlaceholder = !slug; 44956 const isEntityAvailable = !isPlaceholder && !isMissing && isResolved; 44957 const TagName = tagName || areaObject.tagName; // We don't want to render a missing state if we have any inner blocks. 44958 // A new template part is automatically created if we have any inner blocks but no entity. 44959 44960 if (innerBlocks.length === 0 && (slug && !theme || slug && isMissing)) { 44961 return (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.sprintf)( 44962 /* translators: %s: Template part slug */ 44963 (0,external_wp_i18n_namespaceObject.__)('Template part has been deleted or is unavailable: %s'), slug))); 44964 } 44965 44966 if (isEntityAvailable && hasAlreadyRendered) { 44967 return (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.'))); 44968 } 44969 44970 return (0,external_wp_element_namespaceObject.createElement)(RecursionProvider, null, (0,external_wp_element_namespaceObject.createElement)(TemplatePartAdvancedControls, { 44971 tagName: tagName, 44972 setAttributes: setAttributes, 44973 isEntityAvailable: isEntityAvailable, 44974 templatePartId: templatePartId, 44975 defaultWrapper: areaObject.tagName 44976 }), isPlaceholder && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(TemplatePartPlaceholder, { 44977 area: attributes.area, 44978 templatePartId: templatePartId, 44979 clientId: clientId, 44980 setAttributes: setAttributes, 44981 onOpenSelectionModal: () => setIsTemplatePartSelectionOpen(true) 44982 })), isEntityAvailable && hasReplacements && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { 44983 className: "wp-block-template-part__block-control-group" 44984 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 44985 onClick: () => setIsTemplatePartSelectionOpen(true) 44986 }, (0,external_wp_i18n_namespaceObject.__)('Replace')))), isEntityAvailable && (0,external_wp_element_namespaceObject.createElement)(TemplatePartInnerBlocks, { 44987 clientId: clientId, 44988 tagName: TagName, 44989 blockProps: blockProps, 44990 postId: templatePartId, 44991 hasInnerBlocks: innerBlocks.length > 0, 44992 layout: layout 44993 }), !isPlaceholder && !isResolved && (0,external_wp_element_namespaceObject.createElement)(TagName, blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)), isTemplatePartSelectionOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { 44994 className: "block-editor-template-part__selection-modal", 44995 title: (0,external_wp_i18n_namespaceObject.sprintf)( // Translators: %s as template part area title ("Header", "Footer", etc.). 44996 (0,external_wp_i18n_namespaceObject.__)('Choose a %s'), areaObject.label.toLowerCase()), 44997 closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'), 44998 onRequestClose: () => setIsTemplatePartSelectionOpen(false) 44999 }, (0,external_wp_element_namespaceObject.createElement)(TemplatePartSelectionModal, { 45000 templatePartId: templatePartId, 45001 clientId: clientId, 45002 area: area, 45003 setAttributes: setAttributes, 45004 onClose: () => setIsTemplatePartSelectionOpen(false) 45005 }))); 45006 } 45007 45008 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/header.js 45009 45010 45011 /** 45012 * WordPress dependencies 45013 */ 45014 45015 const header = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 45016 xmlns: "http://www.w3.org/2000/svg", 45017 viewBox: "0 0 24 24" 45018 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 45019 d: "M18.5 10.5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" 45020 })); 45021 /* harmony default export */ var library_header = (header); 45022 45023 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/footer.js 45024 45025 45026 /** 45027 * WordPress dependencies 45028 */ 45029 45030 const footer = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 45031 xmlns: "http://www.w3.org/2000/svg", 45032 viewBox: "0 0 24 24" 45033 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 45034 fillRule: "evenodd", 45035 d: "M18 5.5h-8v8h8.5V6a.5.5 0 00-.5-.5zm-9.5 8h-3V6a.5.5 0 01.5-.5h2.5v8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" 45036 })); 45037 /* harmony default export */ var library_footer = (footer); 45038 45039 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sidebar.js 45040 45041 45042 /** 45043 * WordPress dependencies 45044 */ 45045 45046 const sidebar = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 45047 xmlns: "http://www.w3.org/2000/svg", 45048 viewBox: "0 0 24 24" 45049 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 45050 d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" 45051 })); 45052 /* harmony default export */ var library_sidebar = (sidebar); 45053 45054 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/fallback-variations.js 45055 /** 45056 * WordPress dependencies 45057 */ 45058 45059 45060 45061 45062 const fallback_variations_fallbackVariations = [{ 45063 name: 'header', 45064 icon: library_header, 45065 title: (0,external_wp_i18n_namespaceObject.__)('Header'), 45066 description: (0,external_wp_i18n_namespaceObject.__)('The Header template defines a page area that typically contains a title, logo, and main navigation.'), 45067 attributes: { 45068 area: 'header' 45069 }, 45070 scope: ['inserter'] 45071 }, { 45072 name: 'footer', 45073 icon: library_footer, 45074 title: (0,external_wp_i18n_namespaceObject.__)('Footer'), 45075 description: (0,external_wp_i18n_namespaceObject.__)('The Footer template defines a page area that typically contains site credits, social links, or any other combination of blocks.'), 45076 attributes: { 45077 area: 'footer' 45078 }, 45079 scope: ['inserter'] 45080 }]; 45081 fallback_variations_fallbackVariations.forEach(variation => { 45082 if (variation.isActive) return; 45083 45084 variation.isActive = (blockAttributes, variationAttributes) => { 45085 const { 45086 area, 45087 theme, 45088 slug 45089 } = blockAttributes; // We first check the `area` block attribute which is set during insertion. 45090 // This property is removed on the creation of a template part. 45091 45092 if (area) return area === variationAttributes.area; // Find a matching variation from the created template part 45093 // by checking the entity's `area` property. 45094 45095 if (!slug) return false; 45096 const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_template_part', `$theme}//${slug}`); 45097 return (entity === null || entity === void 0 ? void 0 : entity.area) === variationAttributes.area; 45098 }; 45099 }); 45100 /* harmony default export */ var template_part_fallback_variations = (fallback_variations_fallbackVariations); 45101 45102 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/variations.js 45103 /** 45104 * WordPress dependencies 45105 */ 45106 45107 45108 45109 /** 45110 * Internal dependencies 45111 */ 45112 45113 45114 45115 function getTemplatePartIcon(iconName) { 45116 if ('header' === iconName) { 45117 return library_header; 45118 } else if ('footer' === iconName) { 45119 return library_footer; 45120 } else if ('sidebar' === iconName) { 45121 return library_sidebar; 45122 } 45123 45124 return symbol_filled; 45125 } 45126 45127 function enhanceTemplatePartVariations(settings, name) { 45128 if (name !== 'core/template-part') { 45129 return settings; 45130 } // WordPress versions pre-5.8 do not support server side variation registration. 45131 // So we must register the fallback variations until those versions are no longer supported. 45132 45133 45134 if (!(settings.variations && settings.variations.length)) { 45135 return { ...settings, 45136 variations: template_part_fallback_variations 45137 }; 45138 } 45139 45140 if (settings.variations) { 45141 const isActive = (blockAttributes, variationAttributes) => { 45142 const { 45143 area, 45144 theme, 45145 slug 45146 } = blockAttributes; // We first check the `area` block attribute which is set during insertion. 45147 // This property is removed on the creation of a template part. 45148 45149 if (area) return area === variationAttributes.area; // Find a matching variation from the created template part 45150 // by checking the entity's `area` property. 45151 45152 if (!slug) return false; 45153 const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_template_part', `$theme}//${slug}`); 45154 return (entity === null || entity === void 0 ? void 0 : entity.area) === variationAttributes.area; 45155 }; 45156 45157 const variations = settings.variations.map(variation => { 45158 return { ...variation, 45159 ...(!variation.isActive && { 45160 isActive 45161 }), 45162 ...(typeof variation.icon === 'string' && { 45163 icon: getTemplatePartIcon(variation.icon) 45164 }) 45165 }; 45166 }); 45167 return { ...settings, 45168 variations 45169 }; 45170 } 45171 45172 return settings; 45173 } 45174 45175 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/template-part/index.js 45176 /** 45177 * External dependencies 45178 */ 45179 45180 /** 45181 * WordPress dependencies 45182 */ 45183 45184 45185 45186 45187 45188 45189 /** 45190 * Internal dependencies 45191 */ 45192 45193 const template_part_metadata = { 45194 $schema: "https://schemas.wp.org/trunk/block.json", 45195 apiVersion: 2, 45196 name: "core/template-part", 45197 title: "Template Part", 45198 category: "theme", 45199 description: "Edit the different global regions of your site, like the header, footer, sidebar, or create your own.", 45200 textdomain: "default", 45201 attributes: { 45202 slug: { 45203 type: "string" 45204 }, 45205 theme: { 45206 type: "string" 45207 }, 45208 tagName: { 45209 type: "string" 45210 }, 45211 area: { 45212 type: "string" 45213 } 45214 }, 45215 supports: { 45216 align: true, 45217 html: false, 45218 reusable: false 45219 }, 45220 editorStyle: "wp-block-template-part-editor" 45221 }; 45222 45223 45224 const { 45225 name: template_part_name 45226 } = template_part_metadata; 45227 45228 const template_part_settings = { 45229 icon: symbol_filled, 45230 __experimentalLabel: _ref => { 45231 var _entity$title; 45232 45233 let { 45234 slug, 45235 theme 45236 } = _ref; 45237 45238 // Attempt to find entity title if block is a template part. 45239 // Require slug to request, otherwise entity is uncreated and will throw 404. 45240 if (!slug) { 45241 return; 45242 } 45243 45244 const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_template_part', theme + '//' + slug); 45245 45246 if (!entity) { 45247 return; 45248 } 45249 45250 return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)((_entity$title = entity.title) === null || _entity$title === void 0 ? void 0 : _entity$title.rendered) || (0,external_lodash_namespaceObject.startCase)(entity.slug); 45251 }, 45252 edit: TemplatePartEdit 45253 }; // Importing this file includes side effects. This is whitelisted in block-library/package.json under sideEffects 45254 45255 (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/template-part', enhanceTemplatePartVariations); // Prevent adding template parts inside post templates. 45256 45257 const DISALLOWED_PARENTS = ['core/post-template', 'core/post-content']; 45258 (0,external_wp_hooks_namespaceObject.addFilter)('blockEditor.__unstableCanInsertBlockType', 'removeTemplatePartsFromPostTemplates', (can, blockType, rootClientId, _ref2) => { 45259 let { 45260 getBlock, 45261 getBlockParentsByBlockName 45262 } = _ref2; 45263 45264 if (blockType.name !== 'core/template-part') { 45265 return can; 45266 } 45267 45268 for (const disallowedParentType of DISALLOWED_PARENTS) { 45269 var _getBlock; 45270 45271 const hasDisallowedParent = ((_getBlock = getBlock(rootClientId)) === null || _getBlock === void 0 ? void 0 : _getBlock.name) === disallowedParentType || getBlockParentsByBlockName(rootClientId, disallowedParentType).length; 45272 45273 if (hasDisallowedParent) { 45274 return false; 45275 } 45276 } 45277 45278 return true; 45279 }); 45280 45281 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/term-description.js 45282 45283 45284 /** 45285 * WordPress dependencies 45286 */ 45287 45288 const term_description_tag = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 45289 xmlns: "http://www.w3.org/2000/svg", 45290 viewBox: "0 0 24 24" 45291 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 45292 d: "M6.08 10.103h2.914L9.657 12h1.417L8.23 4H6.846L4 12h1.417l.663-1.897Zm1.463-4.137.994 2.857h-2l1.006-2.857ZM11 16H4v-1.5h7V16Zm1 0h8v-1.5h-8V16Zm-4 4H4v-1.5h4V20Zm7-1.5V20H9v-1.5h6Z" 45293 })); 45294 /* harmony default export */ var term_description = (term_description_tag); 45295 45296 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/term-description/edit.js 45297 45298 45299 /** 45300 * External dependencies 45301 */ 45302 45303 /** 45304 * WordPress dependencies 45305 */ 45306 45307 45308 45309 function TermDescriptionEdit(_ref) { 45310 let { 45311 attributes, 45312 setAttributes, 45313 mergedStyle 45314 } = _ref; 45315 const { 45316 textAlign 45317 } = attributes; 45318 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 45319 className: classnames_default()({ 45320 [`has-text-align-$textAlign}`]: textAlign 45321 }), 45322 style: mergedStyle 45323 }); 45324 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 45325 group: "block" 45326 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentControl, { 45327 value: textAlign, 45328 onChange: nextAlign => { 45329 setAttributes({ 45330 textAlign: nextAlign 45331 }); 45332 } 45333 })), (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)("div", { 45334 className: "wp-block-term-description__placeholder" 45335 }, (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('Term Description'))))); 45336 } 45337 45338 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/term-description/index.js 45339 /** 45340 * WordPress dependencies 45341 */ 45342 45343 /** 45344 * Internal dependencies 45345 */ 45346 45347 const term_description_metadata = { 45348 $schema: "https://schemas.wp.org/trunk/block.json", 45349 apiVersion: 2, 45350 name: "core/term-description", 45351 title: "Term Description", 45352 category: "theme", 45353 description: "Display the description of categories, tags and custom taxonomies when viewing an archive.", 45354 textdomain: "default", 45355 attributes: { 45356 textAlign: { 45357 type: "string" 45358 } 45359 }, 45360 supports: { 45361 align: ["wide", "full"], 45362 html: false, 45363 color: { 45364 link: true, 45365 __experimentalDefaultControls: { 45366 background: true, 45367 text: true 45368 } 45369 }, 45370 typography: { 45371 fontSize: true, 45372 lineHeight: true, 45373 __experimentalDefaultControls: { 45374 fontSize: true 45375 } 45376 } 45377 }, 45378 editorStyle: "wp-block-term-description-editor" 45379 }; 45380 45381 const { 45382 name: term_description_name 45383 } = term_description_metadata; 45384 45385 const term_description_settings = { 45386 icon: term_description, 45387 edit: TermDescriptionEdit 45388 }; 45389 45390 ;// CONCATENATED MODULE: external ["wp","deprecated"] 45391 var external_wp_deprecated_namespaceObject = window["wp"]["deprecated"]; 45392 var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject); 45393 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/edit.js 45394 45395 45396 /** 45397 * External dependencies 45398 */ 45399 45400 /** 45401 * WordPress dependencies 45402 */ 45403 45404 45405 45406 45407 45408 function TextColumnsEdit(_ref) { 45409 let { 45410 attributes, 45411 setAttributes 45412 } = _ref; 45413 const { 45414 width, 45415 content, 45416 columns 45417 } = attributes; 45418 external_wp_deprecated_default()('The Text Columns block', { 45419 since: '5.3', 45420 alternative: 'the Columns block' 45421 }); 45422 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockAlignmentToolbar, { 45423 value: width, 45424 onChange: nextWidth => setAttributes({ 45425 width: nextWidth 45426 }), 45427 controls: ['center', 'wide', 'full'] 45428 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { 45429 label: (0,external_wp_i18n_namespaceObject.__)('Columns'), 45430 value: columns, 45431 onChange: value => setAttributes({ 45432 columns: value 45433 }), 45434 min: 2, 45435 max: 4, 45436 required: true 45437 }))), (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 45438 className: `align$width} columns-$columns}` 45439 }), (0,external_lodash_namespaceObject.times)(columns, index => { 45440 return (0,external_wp_element_namespaceObject.createElement)("div", { 45441 className: "wp-block-column", 45442 key: `column-$index}` 45443 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 45444 tagName: "p", 45445 value: (0,external_lodash_namespaceObject.get)(content, [index, 'children']), 45446 onChange: nextContent => { 45447 setAttributes({ 45448 content: [...content.slice(0, index), { 45449 children: nextContent 45450 }, ...content.slice(index + 1)] 45451 }); 45452 }, 45453 "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %d: column index (starting with 1) 45454 (0,external_wp_i18n_namespaceObject.__)('Column %d text'), index + 1), 45455 placeholder: (0,external_wp_i18n_namespaceObject.__)('New Column') 45456 })); 45457 }))); 45458 } 45459 45460 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/save.js 45461 45462 45463 /** 45464 * External dependencies 45465 */ 45466 45467 /** 45468 * WordPress dependencies 45469 */ 45470 45471 45472 function text_columns_save_save(_ref) { 45473 let { 45474 attributes 45475 } = _ref; 45476 const { 45477 width, 45478 content, 45479 columns 45480 } = attributes; 45481 return (0,external_wp_element_namespaceObject.createElement)("div", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 45482 className: `align$width} columns-$columns}` 45483 }), (0,external_lodash_namespaceObject.times)(columns, index => (0,external_wp_element_namespaceObject.createElement)("div", { 45484 className: "wp-block-column", 45485 key: `column-$index}` 45486 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 45487 tagName: "p", 45488 value: (0,external_lodash_namespaceObject.get)(content, [index, 'children']) 45489 })))); 45490 } 45491 45492 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/transforms.js 45493 /** 45494 * WordPress dependencies 45495 */ 45496 45497 const text_columns_transforms_transforms = { 45498 to: [{ 45499 type: 'block', 45500 blocks: ['core/columns'], 45501 transform: _ref => { 45502 let { 45503 className, 45504 columns, 45505 content, 45506 width 45507 } = _ref; 45508 return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', { 45509 align: 'wide' === width || 'full' === width ? width : undefined, 45510 className, 45511 columns 45512 }, content.map(_ref2 => { 45513 let { 45514 children 45515 } = _ref2; 45516 return (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', { 45517 content: children 45518 })]); 45519 })); 45520 } 45521 }] 45522 }; 45523 /* harmony default export */ var text_columns_transforms = (text_columns_transforms_transforms); 45524 45525 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/index.js 45526 /** 45527 * Internal dependencies 45528 */ 45529 45530 const text_columns_metadata = { 45531 $schema: "https://schemas.wp.org/trunk/block.json", 45532 apiVersion: 2, 45533 name: "core/text-columns", 45534 title: "Text Columns (deprecated)", 45535 icon: "columns", 45536 category: "design", 45537 description: "This block is deprecated. Please use the Columns block instead.", 45538 textdomain: "default", 45539 attributes: { 45540 content: { 45541 type: "array", 45542 source: "query", 45543 selector: "p", 45544 query: { 45545 children: { 45546 type: "string", 45547 source: "html" 45548 } 45549 }, 45550 "default": [{}, {}] 45551 }, 45552 columns: { 45553 type: "number", 45554 "default": 2 45555 }, 45556 width: { 45557 type: "string" 45558 } 45559 }, 45560 supports: { 45561 inserter: false 45562 }, 45563 editorStyle: "wp-block-text-columns-editor", 45564 style: "wp-block-text-columns" 45565 }; 45566 45567 45568 const { 45569 name: text_columns_name 45570 } = text_columns_metadata; 45571 45572 const text_columns_settings = { 45573 transforms: text_columns_transforms, 45574 45575 getEditWrapperProps(attributes) { 45576 const { 45577 width 45578 } = attributes; 45579 45580 if ('wide' === width || 'full' === width) { 45581 return { 45582 'data-align': width 45583 }; 45584 } 45585 }, 45586 45587 edit: TextColumnsEdit, 45588 save: text_columns_save_save 45589 }; 45590 45591 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/verse.js 45592 45593 45594 /** 45595 * WordPress dependencies 45596 */ 45597 45598 const verse = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 45599 viewBox: "0 0 24 24", 45600 xmlns: "http://www.w3.org/2000/svg" 45601 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 45602 d: "M17.8 2l-.9.3c-.1 0-3.6 1-5.2 2.1C10 5.5 9.3 6.5 8.9 7.1c-.6.9-1.7 4.7-1.7 6.3l-.9 2.3c-.2.4 0 .8.4 1 .1 0 .2.1.3.1.3 0 .6-.2.7-.5l.6-1.5c.3 0 .7-.1 1.2-.2.7-.1 1.4-.3 2.2-.5.8-.2 1.6-.5 2.4-.8.7-.3 1.4-.7 1.9-1.2s.8-1.2 1-1.9c.2-.7.3-1.6.4-2.4.1-.8.1-1.7.2-2.5 0-.8.1-1.5.2-2.1V2zm-1.9 5.6c-.1.8-.2 1.5-.3 2.1-.2.6-.4 1-.6 1.3-.3.3-.8.6-1.4.9-.7.3-1.4.5-2.2.8-.6.2-1.3.3-1.8.4L15 7.5c.3-.3.6-.7 1-1.1 0 .4 0 .8-.1 1.2zM6 20h8v-1.5H6V20z" 45603 })); 45604 /* harmony default export */ var library_verse = (verse); 45605 45606 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/deprecated.js 45607 45608 45609 /** 45610 * External dependencies 45611 */ 45612 45613 /** 45614 * WordPress dependencies 45615 */ 45616 45617 45618 /** 45619 * Internal dependencies 45620 */ 45621 45622 45623 const verse_deprecated_v1 = { 45624 attributes: { 45625 content: { 45626 type: 'string', 45627 source: 'html', 45628 selector: 'pre', 45629 default: '' 45630 }, 45631 textAlign: { 45632 type: 'string' 45633 } 45634 }, 45635 45636 save(_ref) { 45637 let { 45638 attributes 45639 } = _ref; 45640 const { 45641 textAlign, 45642 content 45643 } = attributes; 45644 return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 45645 tagName: "pre", 45646 style: { 45647 textAlign 45648 }, 45649 value: content 45650 }); 45651 } 45652 45653 }; 45654 const verse_deprecated_v2 = { 45655 attributes: { 45656 content: { 45657 type: 'string', 45658 source: 'html', 45659 selector: 'pre', 45660 default: '', 45661 __unstablePreserveWhiteSpace: true, 45662 __experimentalRole: 'content' 45663 }, 45664 textAlign: { 45665 type: 'string' 45666 } 45667 }, 45668 supports: { 45669 anchor: true, 45670 color: { 45671 gradients: true, 45672 link: true 45673 }, 45674 typography: { 45675 fontSize: true, 45676 __experimentalFontFamily: true 45677 }, 45678 spacing: { 45679 padding: true 45680 } 45681 }, 45682 45683 save(_ref2) { 45684 let { 45685 attributes 45686 } = _ref2; 45687 const { 45688 textAlign, 45689 content 45690 } = attributes; 45691 const className = classnames_default()({ 45692 [`has-text-align-$textAlign}`]: textAlign 45693 }); 45694 return (0,external_wp_element_namespaceObject.createElement)("pre", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 45695 className 45696 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 45697 value: content 45698 })); 45699 }, 45700 45701 migrate: migrate_font_family, 45702 45703 isEligible(_ref3) { 45704 var _style$typography; 45705 45706 let { 45707 style 45708 } = _ref3; 45709 return style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontFamily; 45710 } 45711 45712 }; 45713 /** 45714 * New deprecations need to be placed first 45715 * for them to have higher priority. 45716 * 45717 * Old deprecations may need to be updated as well. 45718 * 45719 * See block-deprecation.md 45720 */ 45721 45722 /* harmony default export */ var verse_deprecated = ([verse_deprecated_v2, verse_deprecated_v1]); 45723 45724 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/edit.js 45725 45726 45727 45728 /** 45729 * External dependencies 45730 */ 45731 45732 /** 45733 * WordPress dependencies 45734 */ 45735 45736 45737 45738 function VerseEdit(_ref) { 45739 let { 45740 attributes, 45741 setAttributes, 45742 mergeBlocks, 45743 onRemove, 45744 style 45745 } = _ref; 45746 const { 45747 textAlign, 45748 content 45749 } = attributes; 45750 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 45751 className: classnames_default()({ 45752 [`has-text-align-$textAlign}`]: textAlign 45753 }), 45754 style 45755 }); 45756 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, { 45757 value: textAlign, 45758 onChange: nextAlign => { 45759 setAttributes({ 45760 textAlign: nextAlign 45761 }); 45762 } 45763 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, _extends({ 45764 tagName: "pre", 45765 identifier: "content", 45766 preserveWhiteSpace: true, 45767 value: content, 45768 onChange: nextContent => { 45769 setAttributes({ 45770 content: nextContent 45771 }); 45772 }, 45773 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Verse text'), 45774 placeholder: (0,external_wp_i18n_namespaceObject.__)('Write verse…'), 45775 onRemove: onRemove, 45776 onMerge: mergeBlocks, 45777 textAlign: textAlign 45778 }, blockProps, { 45779 __unstablePastePlainText: true 45780 }))); 45781 } 45782 45783 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/save.js 45784 45785 45786 /** 45787 * External dependencies 45788 */ 45789 45790 /** 45791 * WordPress dependencies 45792 */ 45793 45794 45795 function verse_save_save(_ref) { 45796 let { 45797 attributes 45798 } = _ref; 45799 const { 45800 textAlign, 45801 content 45802 } = attributes; 45803 const className = classnames_default()({ 45804 [`has-text-align-$textAlign}`]: textAlign 45805 }); 45806 return (0,external_wp_element_namespaceObject.createElement)("pre", external_wp_blockEditor_namespaceObject.useBlockProps.save({ 45807 className 45808 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 45809 value: content 45810 })); 45811 } 45812 45813 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/transforms.js 45814 /** 45815 * WordPress dependencies 45816 */ 45817 45818 const verse_transforms_transforms = { 45819 from: [{ 45820 type: 'block', 45821 blocks: ['core/paragraph'], 45822 transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/verse', attributes) 45823 }], 45824 to: [{ 45825 type: 'block', 45826 blocks: ['core/paragraph'], 45827 transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes) 45828 }] 45829 }; 45830 /* harmony default export */ var verse_transforms = (verse_transforms_transforms); 45831 45832 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/index.js 45833 /** 45834 * WordPress dependencies 45835 */ 45836 45837 45838 /** 45839 * Internal dependencies 45840 */ 45841 45842 45843 45844 const verse_metadata = { 45845 $schema: "https://schemas.wp.org/trunk/block.json", 45846 apiVersion: 2, 45847 name: "core/verse", 45848 title: "Verse", 45849 category: "text", 45850 description: "Insert poetry. Use special spacing formats. Or quote song lyrics.", 45851 keywords: ["poetry", "poem"], 45852 textdomain: "default", 45853 attributes: { 45854 content: { 45855 type: "string", 45856 source: "html", 45857 selector: "pre", 45858 "default": "", 45859 __unstablePreserveWhiteSpace: true, 45860 __experimentalRole: "content" 45861 }, 45862 textAlign: { 45863 type: "string" 45864 } 45865 }, 45866 supports: { 45867 anchor: true, 45868 color: { 45869 gradients: true, 45870 link: true, 45871 __experimentalDefaultControls: { 45872 background: true, 45873 text: true 45874 } 45875 }, 45876 typography: { 45877 fontSize: true, 45878 __experimentalFontFamily: true, 45879 lineHeight: true, 45880 __experimentalFontStyle: true, 45881 __experimentalFontWeight: true, 45882 __experimentalLetterSpacing: true, 45883 __experimentalTextTransform: true, 45884 __experimentalDefaultControls: { 45885 fontSize: true, 45886 fontAppearance: true 45887 } 45888 }, 45889 spacing: { 45890 padding: true 45891 } 45892 }, 45893 style: "wp-block-verse", 45894 editorStyle: "wp-block-verse-editor" 45895 }; 45896 45897 45898 const { 45899 name: verse_name 45900 } = verse_metadata; 45901 45902 const verse_settings = { 45903 icon: library_verse, 45904 example: { 45905 attributes: { 45906 /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */ 45907 // translators: Sample content for the Verse block. Can be replaced with a more locale-adequate work. 45908 content: (0,external_wp_i18n_namespaceObject.__)('WHAT was he doing, the great god Pan,\n Down in the reeds by the river?\nSpreading ruin and scattering ban,\nSplashing and paddling with hoofs of a goat,\nAnd breaking the golden lilies afloat\n With the dragon-fly on the river.') 45909 /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */ 45910 45911 } 45912 }, 45913 transforms: verse_transforms, 45914 deprecated: verse_deprecated, 45915 45916 merge(attributes, attributesToMerge) { 45917 return { 45918 content: attributes.content + attributesToMerge.content 45919 }; 45920 }, 45921 45922 edit: VerseEdit, 45923 save: verse_save_save 45924 }; 45925 45926 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/video.js 45927 45928 45929 /** 45930 * WordPress dependencies 45931 */ 45932 45933 const video = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 45934 viewBox: "0 0 24 24", 45935 xmlns: "http://www.w3.org/2000/svg" 45936 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 45937 d: "M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z" 45938 })); 45939 /* harmony default export */ var library_video = (video); 45940 45941 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/edit-common-settings.js 45942 45943 45944 /** 45945 * WordPress dependencies 45946 */ 45947 45948 45949 45950 const options = [{ 45951 value: 'auto', 45952 label: (0,external_wp_i18n_namespaceObject.__)('Auto') 45953 }, { 45954 value: 'metadata', 45955 label: (0,external_wp_i18n_namespaceObject.__)('Metadata') 45956 }, { 45957 value: 'none', 45958 label: (0,external_wp_i18n_namespaceObject._x)('None', 'Preload value') 45959 }]; 45960 45961 const VideoSettings = _ref => { 45962 let { 45963 setAttributes, 45964 attributes 45965 } = _ref; 45966 const { 45967 autoplay, 45968 controls, 45969 loop, 45970 muted, 45971 playsInline, 45972 preload 45973 } = attributes; 45974 45975 const autoPlayHelpText = (0,external_wp_i18n_namespaceObject.__)('Autoplay may cause usability issues for some users.'); 45976 45977 const getAutoplayHelp = external_wp_element_namespaceObject.Platform.select({ 45978 web: (0,external_wp_element_namespaceObject.useCallback)(checked => { 45979 return checked ? autoPlayHelpText : null; 45980 }, []), 45981 native: autoPlayHelpText 45982 }); 45983 const toggleFactory = (0,external_wp_element_namespaceObject.useMemo)(() => { 45984 const toggleAttribute = attribute => { 45985 return newValue => { 45986 setAttributes({ 45987 [attribute]: newValue 45988 }); 45989 }; 45990 }; 45991 45992 return { 45993 autoplay: toggleAttribute('autoplay'), 45994 loop: toggleAttribute('loop'), 45995 muted: toggleAttribute('muted'), 45996 controls: toggleAttribute('controls'), 45997 playsInline: toggleAttribute('playsInline') 45998 }; 45999 }, []); 46000 const onChangePreload = (0,external_wp_element_namespaceObject.useCallback)(value => { 46001 setAttributes({ 46002 preload: value 46003 }); 46004 }, []); 46005 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 46006 label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'), 46007 onChange: toggleFactory.autoplay, 46008 checked: autoplay, 46009 help: getAutoplayHelp 46010 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 46011 label: (0,external_wp_i18n_namespaceObject.__)('Loop'), 46012 onChange: toggleFactory.loop, 46013 checked: loop 46014 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 46015 label: (0,external_wp_i18n_namespaceObject.__)('Muted'), 46016 onChange: toggleFactory.muted, 46017 checked: muted 46018 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 46019 label: (0,external_wp_i18n_namespaceObject.__)('Playback controls'), 46020 onChange: toggleFactory.controls, 46021 checked: controls 46022 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { 46023 label: (0,external_wp_i18n_namespaceObject.__)('Play inline'), 46024 onChange: toggleFactory.playsInline, 46025 checked: playsInline 46026 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 46027 label: (0,external_wp_i18n_namespaceObject.__)('Preload'), 46028 value: preload, 46029 onChange: onChangePreload, 46030 options: options, 46031 hideCancelButton: true 46032 })); 46033 }; 46034 46035 /* harmony default export */ var edit_common_settings = (VideoSettings); 46036 46037 ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media.js 46038 46039 46040 /** 46041 * WordPress dependencies 46042 */ 46043 46044 const media = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { 46045 xmlns: "http://www.w3.org/2000/svg", 46046 viewBox: "0 0 24 24" 46047 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { 46048 d: "M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z" 46049 })); 46050 /* harmony default export */ var library_media = (media); 46051 46052 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/tracks-editor.js 46053 46054 46055 /** 46056 * WordPress dependencies 46057 */ 46058 46059 46060 46061 46062 46063 46064 46065 const ALLOWED_TYPES = ['text/vtt']; 46066 const DEFAULT_KIND = 'subtitles'; 46067 const KIND_OPTIONS = [{ 46068 label: (0,external_wp_i18n_namespaceObject.__)('Subtitles'), 46069 value: 'subtitles' 46070 }, { 46071 label: (0,external_wp_i18n_namespaceObject.__)('Captions'), 46072 value: 'captions' 46073 }, { 46074 label: (0,external_wp_i18n_namespaceObject.__)('Descriptions'), 46075 value: 'descriptions' 46076 }, { 46077 label: (0,external_wp_i18n_namespaceObject.__)('Chapters'), 46078 value: 'chapters' 46079 }, { 46080 label: (0,external_wp_i18n_namespaceObject.__)('Metadata'), 46081 value: 'metadata' 46082 }]; 46083 const captionIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { 46084 width: "18", 46085 height: "14", 46086 viewBox: "0 0 18 14", 46087 role: "img", 46088 fill: "none" 46089 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Rect, { 46090 x: "0.75", 46091 y: "0.75", 46092 width: "16.5", 46093 height: "12.5", 46094 rx: "1.25", 46095 stroke: "black", 46096 strokeWidth: "1.5", 46097 fill: "none" 46098 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 46099 d: "M3 7H15", 46100 stroke: "black", 46101 strokeWidth: "1.5" 46102 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { 46103 d: "M3 10L15 10", 46104 stroke: "black", 46105 strokeWidth: "1.5" 46106 })); 46107 46108 function TrackList(_ref) { 46109 let { 46110 tracks, 46111 onEditPress 46112 } = _ref; 46113 let content; 46114 46115 if (tracks.length === 0) { 46116 content = (0,external_wp_element_namespaceObject.createElement)("p", { 46117 className: "block-library-video-tracks-editor__tracks-informative-message" 46118 }, (0,external_wp_i18n_namespaceObject.__)('Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.')); 46119 } else { 46120 content = tracks.map((track, index) => { 46121 return (0,external_wp_element_namespaceObject.createElement)("div", { 46122 key: index, 46123 className: "block-library-video-tracks-editor__track-list-track" 46124 }, (0,external_wp_element_namespaceObject.createElement)("span", null, track.label, " "), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 46125 variant: "tertiary", 46126 onClick: () => onEditPress(index), 46127 "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)( 46128 /* translators: %s: Label of the video text track e.g: "French subtitles" */ 46129 (0,external_wp_i18n_namespaceObject.__)('Edit %s'), track.label) 46130 }, (0,external_wp_i18n_namespaceObject.__)('Edit'))); 46131 }); 46132 } 46133 46134 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { 46135 label: (0,external_wp_i18n_namespaceObject.__)('Text tracks'), 46136 className: "block-library-video-tracks-editor__track-list" 46137 }, content); 46138 } 46139 46140 function SingleTrackEditor(_ref2) { 46141 let { 46142 track, 46143 onChange, 46144 onClose, 46145 onRemove 46146 } = _ref2; 46147 const { 46148 src = '', 46149 label = '', 46150 srcLang = '', 46151 kind = DEFAULT_KIND 46152 } = track; 46153 const fileName = src.startsWith('blob:') ? '' : (0,external_wp_url_namespaceObject.getFilename)(src) || ''; 46154 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.NavigableMenu, null, (0,external_wp_element_namespaceObject.createElement)("div", { 46155 className: "block-library-video-tracks-editor__single-track-editor" 46156 }, (0,external_wp_element_namespaceObject.createElement)("span", { 46157 className: "block-library-video-tracks-editor__single-track-editor-edit-track-label" 46158 }, (0,external_wp_i18n_namespaceObject.__)('Edit track')), (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('File'), ": ", (0,external_wp_element_namespaceObject.createElement)("b", null, fileName)), (0,external_wp_element_namespaceObject.createElement)("div", { 46159 className: "block-library-video-tracks-editor__single-track-editor-label-language" 46160 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl 46161 /* eslint-disable jsx-a11y/no-autofocus */ 46162 , { 46163 autoFocus: true 46164 /* eslint-enable jsx-a11y/no-autofocus */ 46165 , 46166 onChange: newLabel => onChange({ ...track, 46167 label: newLabel 46168 }), 46169 label: (0,external_wp_i18n_namespaceObject.__)('Label'), 46170 value: label, 46171 help: (0,external_wp_i18n_namespaceObject.__)('Title of track') 46172 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { 46173 onChange: newSrcLang => onChange({ ...track, 46174 srcLang: newSrcLang 46175 }), 46176 label: (0,external_wp_i18n_namespaceObject.__)('Source language'), 46177 value: srcLang, 46178 help: (0,external_wp_i18n_namespaceObject.__)('Language tag (en, fr, etc.)') 46179 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { 46180 className: "block-library-video-tracks-editor__single-track-editor-kind-select", 46181 options: KIND_OPTIONS, 46182 value: kind, 46183 label: (0,external_wp_i18n_namespaceObject.__)('Kind'), 46184 onChange: newKind => { 46185 onChange({ ...track, 46186 kind: newKind 46187 }); 46188 } 46189 }), (0,external_wp_element_namespaceObject.createElement)("div", { 46190 className: "block-library-video-tracks-editor__single-track-editor-buttons-container" 46191 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 46192 variant: "secondary", 46193 onClick: () => { 46194 const changes = {}; 46195 let hasChanges = false; 46196 46197 if (label === '') { 46198 changes.label = (0,external_wp_i18n_namespaceObject.__)('English'); 46199 hasChanges = true; 46200 } 46201 46202 if (srcLang === '') { 46203 changes.srcLang = 'en'; 46204 hasChanges = true; 46205 } 46206 46207 if (track.kind === undefined) { 46208 changes.kind = DEFAULT_KIND; 46209 hasChanges = true; 46210 } 46211 46212 if (hasChanges) { 46213 onChange({ ...track, 46214 ...changes 46215 }); 46216 } 46217 46218 onClose(); 46219 } 46220 }, (0,external_wp_i18n_namespaceObject.__)('Close')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 46221 isDestructive: true, 46222 variant: "link", 46223 onClick: onRemove 46224 }, (0,external_wp_i18n_namespaceObject.__)('Remove track'))))); 46225 } 46226 46227 function TracksEditor(_ref3) { 46228 let { 46229 tracks = [], 46230 onChange 46231 } = _ref3; 46232 const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => { 46233 return select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload; 46234 }, []); 46235 const [trackBeingEdited, setTrackBeingEdited] = (0,external_wp_element_namespaceObject.useState)(null); 46236 46237 if (!mediaUpload) { 46238 return null; 46239 } 46240 46241 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { 46242 contentClassName: "block-library-video-tracks-editor", 46243 renderToggle: _ref4 => { 46244 let { 46245 isOpen, 46246 onToggle 46247 } = _ref4; 46248 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { 46249 label: (0,external_wp_i18n_namespaceObject.__)('Text tracks'), 46250 showTooltip: true, 46251 "aria-expanded": isOpen, 46252 "aria-haspopup": "true", 46253 onClick: onToggle, 46254 icon: captionIcon 46255 }); 46256 }, 46257 renderContent: _ref5 => { 46258 let {} = _ref5; 46259 46260 if (trackBeingEdited !== null) { 46261 return (0,external_wp_element_namespaceObject.createElement)(SingleTrackEditor, { 46262 track: tracks[trackBeingEdited], 46263 onChange: newTrack => { 46264 const newTracks = [...tracks]; 46265 newTracks[trackBeingEdited] = newTrack; 46266 onChange(newTracks); 46267 }, 46268 onClose: () => setTrackBeingEdited(null), 46269 onRemove: () => { 46270 onChange(tracks.filter((_track, index) => index !== trackBeingEdited)); 46271 setTrackBeingEdited(null); 46272 } 46273 }); 46274 } 46275 46276 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.NavigableMenu, null, (0,external_wp_element_namespaceObject.createElement)(TrackList, { 46277 tracks: tracks, 46278 onEditPress: setTrackBeingEdited 46279 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { 46280 className: "block-library-video-tracks-editor__add-tracks-container", 46281 label: (0,external_wp_i18n_namespaceObject.__)('Add tracks') 46282 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUpload, { 46283 onSelect: _ref6 => { 46284 let { 46285 url 46286 } = _ref6; 46287 const trackIndex = tracks.length; 46288 onChange([...tracks, { 46289 src: url 46290 }]); 46291 setTrackBeingEdited(trackIndex); 46292 }, 46293 allowedTypes: ALLOWED_TYPES, 46294 render: _ref7 => { 46295 let { 46296 open 46297 } = _ref7; 46298 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { 46299 icon: library_media, 46300 onClick: open 46301 }, (0,external_wp_i18n_namespaceObject.__)('Open Media Library')); 46302 } 46303 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormFileUpload, { 46304 onChange: event => { 46305 const files = event.target.files; 46306 const trackIndex = tracks.length; 46307 mediaUpload({ 46308 allowedTypes: ALLOWED_TYPES, 46309 filesList: files, 46310 onFileChange: _ref8 => { 46311 let [{ 46312 url 46313 }] = _ref8; 46314 const newTracks = [...tracks]; 46315 46316 if (!newTracks[trackIndex]) { 46317 newTracks[trackIndex] = {}; 46318 } 46319 46320 newTracks[trackIndex] = { ...tracks[trackIndex], 46321 src: url 46322 }; 46323 onChange(newTracks); 46324 setTrackBeingEdited(trackIndex); 46325 } 46326 }); 46327 }, 46328 accept: ".vtt,text/vtt", 46329 render: _ref9 => { 46330 let { 46331 openFileDialog 46332 } = _ref9; 46333 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { 46334 icon: library_upload, 46335 onClick: () => { 46336 openFileDialog(); 46337 } 46338 }, (0,external_wp_i18n_namespaceObject.__)('Upload')); 46339 } 46340 }))))); 46341 } 46342 }); 46343 } 46344 46345 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/tracks.js 46346 46347 46348 function Tracks(_ref) { 46349 let { 46350 tracks = [] 46351 } = _ref; 46352 return tracks.map(track => { 46353 return (0,external_wp_element_namespaceObject.createElement)("track", _extends({ 46354 key: track.src 46355 }, track)); 46356 }); 46357 } 46358 46359 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/edit.js 46360 46361 46362 /** 46363 * External dependencies 46364 */ 46365 46366 /** 46367 * WordPress dependencies 46368 */ 46369 46370 46371 46372 46373 46374 46375 46376 46377 46378 46379 /** 46380 * Internal dependencies 46381 */ 46382 46383 46384 46385 46386 46387 const video_edit_ALLOWED_MEDIA_TYPES = ['video']; 46388 const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image']; 46389 46390 function VideoEdit(_ref) { 46391 let { 46392 isSelected, 46393 noticeUI, 46394 attributes, 46395 className, 46396 setAttributes, 46397 insertBlocksAfter, 46398 onReplace, 46399 noticeOperations 46400 } = _ref; 46401 const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(VideoEdit); 46402 const videoPlayer = (0,external_wp_element_namespaceObject.useRef)(); 46403 const posterImageButton = (0,external_wp_element_namespaceObject.useRef)(); 46404 const { 46405 id, 46406 caption, 46407 controls, 46408 poster, 46409 src, 46410 tracks 46411 } = attributes; 46412 const isTemporaryVideo = !id && (0,external_wp_blob_namespaceObject.isBlobURL)(src); 46413 const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload); 46414 (0,external_wp_element_namespaceObject.useEffect)(() => { 46415 if (!id && (0,external_wp_blob_namespaceObject.isBlobURL)(src)) { 46416 const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(src); 46417 46418 if (file) { 46419 mediaUpload({ 46420 filesList: [file], 46421 onFileChange: _ref2 => { 46422 let [{ 46423 url 46424 }] = _ref2; 46425 setAttributes({ 46426 src: url 46427 }); 46428 }, 46429 onError: message => { 46430 noticeOperations.createErrorNotice(message); 46431 }, 46432 allowedTypes: video_edit_ALLOWED_MEDIA_TYPES 46433 }); 46434 } 46435 } 46436 }, []); 46437 (0,external_wp_element_namespaceObject.useEffect)(() => { 46438 // Placeholder may be rendered. 46439 if (videoPlayer.current) { 46440 videoPlayer.current.load(); 46441 } 46442 }, [poster]); 46443 46444 function onSelectVideo(media) { 46445 var _media$image, _media$image2; 46446 46447 if (!media || !media.url) { 46448 // In this case there was an error 46449 // previous attributes should be removed 46450 // because they may be temporary blob urls. 46451 setAttributes({ 46452 src: undefined, 46453 id: undefined, 46454 poster: undefined 46455 }); 46456 return; 46457 } // Sets the block's attribute and updates the edit component from the 46458 // selected media. 46459 46460 46461 setAttributes({ 46462 src: media.url, 46463 id: media.id, 46464 poster: ((_media$image = media.image) === null || _media$image === void 0 ? void 0 : _media$image.src) !== media.icon ? (_media$image2 = media.image) === null || _media$image2 === void 0 ? void 0 : _media$image2.src : undefined 46465 }); 46466 } 46467 46468 function onSelectURL(newSrc) { 46469 if (newSrc !== src) { 46470 // Check if there's an embed block that handles this URL. 46471 const embedBlock = createUpgradedEmbedBlock({ 46472 attributes: { 46473 url: newSrc 46474 } 46475 }); 46476 46477 if (undefined !== embedBlock) { 46478 onReplace(embedBlock); 46479 return; 46480 } 46481 46482 setAttributes({ 46483 src: newSrc, 46484 id: undefined, 46485 poster: undefined 46486 }); 46487 } 46488 } 46489 46490 function onUploadError(message) { 46491 noticeOperations.removeAllNotices(); 46492 noticeOperations.createErrorNotice(message); 46493 } 46494 46495 const classes = classnames_default()(className, { 46496 'is-transient': isTemporaryVideo 46497 }); 46498 const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({ 46499 className: classes 46500 }); 46501 46502 if (!src) { 46503 return (0,external_wp_element_namespaceObject.createElement)("div", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, { 46504 icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { 46505 icon: library_video 46506 }), 46507 onSelect: onSelectVideo, 46508 onSelectURL: onSelectURL, 46509 accept: "video/*", 46510 allowedTypes: video_edit_ALLOWED_MEDIA_TYPES, 46511 value: attributes, 46512 notices: noticeUI, 46513 onError: onUploadError 46514 })); 46515 } 46516 46517 function onSelectPoster(image) { 46518 setAttributes({ 46519 poster: image.url 46520 }); 46521 } 46522 46523 function onRemovePoster() { 46524 setAttributes({ 46525 poster: undefined 46526 }); // Move focus back to the Media Upload button. 46527 46528 posterImageButton.current.focus(); 46529 } 46530 46531 const videoPosterDescription = `video-block__poster-image-description-${instanceId}`; 46532 return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 46533 group: "block" 46534 }, (0,external_wp_element_namespaceObject.createElement)(TracksEditor, { 46535 tracks: tracks, 46536 onChange: newTracks => { 46537 setAttributes({ 46538 tracks: newTracks 46539 }); 46540 } 46541 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, { 46542 group: "other" 46543 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, { 46544 mediaId: id, 46545 mediaURL: src, 46546 allowedTypes: video_edit_ALLOWED_MEDIA_TYPES, 46547 accept: "video/*", 46548 onSelect: onSelectVideo, 46549 onSelectURL: onSelectURL, 46550 onError: onUploadError 46551 })), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { 46552 title: (0,external_wp_i18n_namespaceObject.__)('Video settings') 46553 }, (0,external_wp_element_namespaceObject.createElement)(edit_common_settings, { 46554 setAttributes: setAttributes, 46555 attributes: attributes 46556 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, { 46557 className: "editor-video-poster-control" 46558 }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, null, (0,external_wp_i18n_namespaceObject.__)('Poster image')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUpload, { 46559 title: (0,external_wp_i18n_namespaceObject.__)('Select poster image'), 46560 onSelect: onSelectPoster, 46561 allowedTypes: VIDEO_POSTER_ALLOWED_MEDIA_TYPES, 46562 render: _ref3 => { 46563 let { 46564 open 46565 } = _ref3; 46566 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 46567 variant: "primary", 46568 onClick: open, 46569 ref: posterImageButton, 46570 "aria-describedby": videoPosterDescription 46571 }, !poster ? (0,external_wp_i18n_namespaceObject.__)('Select') : (0,external_wp_i18n_namespaceObject.__)('Replace')); 46572 } 46573 }), (0,external_wp_element_namespaceObject.createElement)("p", { 46574 id: videoPosterDescription, 46575 hidden: true 46576 }, poster ? (0,external_wp_i18n_namespaceObject.sprintf)( 46577 /* translators: %s: poster image URL. */ 46578 (0,external_wp_i18n_namespaceObject.__)('The current poster image url is %s'), poster) : (0,external_wp_i18n_namespaceObject.__)('There is no poster image currently selected')), !!poster && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { 46579 onClick: onRemovePoster, 46580 variant: "tertiary" 46581 }, (0,external_wp_i18n_namespaceObject.__)('Remove')))))), (0,external_wp_element_namespaceObject.createElement)("figure", blockProps, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, { 46582 isDisabled: !isSelected 46583 }, (0,external_wp_element_namespaceObject.createElement)("video", { 46584 controls: controls, 46585 poster: poster, 46586 src: src, 46587 ref: videoPlayer 46588 }, (0,external_wp_element_namespaceObject.createElement)(Tracks, { 46589 tracks: tracks 46590 }))), isTemporaryVideo && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), (!external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) || isSelected) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText, { 46591 tagName: "figcaption", 46592 "aria-label": (0,external_wp_i18n_namespaceObject.__)('Video caption text'), 46593 placeholder: (0,external_wp_i18n_namespaceObject.__)('Add caption'), 46594 value: caption, 46595 onChange: value => setAttributes({ 46596 caption: value 46597 }), 46598 inlineToolbar: true, 46599 __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')) 46600 }))); 46601 } 46602 46603 /* harmony default export */ var video_edit = ((0,external_wp_components_namespaceObject.withNotices)(VideoEdit)); 46604 46605 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/save.js 46606 46607 46608 /** 46609 * WordPress dependencies 46610 */ 46611 46612 /** 46613 * Internal dependencies 46614 */ 46615 46616 46617 function video_save_save(_ref) { 46618 let { 46619 attributes 46620 } = _ref; 46621 const { 46622 autoplay, 46623 caption, 46624 controls, 46625 loop, 46626 muted, 46627 poster, 46628 preload, 46629 src, 46630 playsInline, 46631 tracks 46632 } = attributes; 46633 return (0,external_wp_element_namespaceObject.createElement)("figure", external_wp_blockEditor_namespaceObject.useBlockProps.save(), src && (0,external_wp_element_namespaceObject.createElement)("video", { 46634 autoPlay: autoplay, 46635 controls: controls, 46636 loop: loop, 46637 muted: muted, 46638 poster: poster, 46639 preload: preload !== 'metadata' ? preload : undefined, 46640 src: src, 46641 playsInline: playsInline 46642 }, (0,external_wp_element_namespaceObject.createElement)(Tracks, { 46643 tracks: tracks 46644 })), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichText.Content, { 46645 tagName: "figcaption", 46646 value: caption 46647 })); 46648 } 46649 46650 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/transforms.js 46651 /** 46652 * WordPress dependencies 46653 */ 46654 46655 46656 const video_transforms_transforms = { 46657 from: [{ 46658 type: 'files', 46659 46660 isMatch(files) { 46661 return files.length === 1 && files[0].type.indexOf('video/') === 0; 46662 }, 46663 46664 transform(files) { 46665 const file = files[0]; // We don't need to upload the media directly here 46666 // It's already done as part of the `componentDidMount` 46667 // in the video block 46668 46669 const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/video', { 46670 src: (0,external_wp_blob_namespaceObject.createBlobURL)(file) 46671 }); 46672 return block; 46673 } 46674 46675 }, { 46676 type: 'shortcode', 46677 tag: 'video', 46678 attributes: { 46679 src: { 46680 type: 'string', 46681 shortcode: _ref => { 46682 let { 46683 named: { 46684 src, 46685 mp4, 46686 m4v, 46687 webm, 46688 ogv, 46689 flv 46690 } 46691 } = _ref; 46692 return src || mp4 || m4v || webm || ogv || flv; 46693 } 46694 }, 46695 poster: { 46696 type: 'string', 46697 shortcode: _ref2 => { 46698 let { 46699 named: { 46700 poster 46701 } 46702 } = _ref2; 46703 return poster; 46704 } 46705 }, 46706 loop: { 46707 type: 'string', 46708 shortcode: _ref3 => { 46709 let { 46710 named: { 46711 loop 46712 } 46713 } = _ref3; 46714 return loop; 46715 } 46716 }, 46717 autoplay: { 46718 type: 'string', 46719 shortcode: _ref4 => { 46720 let { 46721 named: { 46722 autoplay 46723 } 46724 } = _ref4; 46725 return autoplay; 46726 } 46727 }, 46728 preload: { 46729 type: 'string', 46730 shortcode: _ref5 => { 46731 let { 46732 named: { 46733 preload 46734 } 46735 } = _ref5; 46736 return preload; 46737 } 46738 } 46739 } 46740 }] 46741 }; 46742 /* harmony default export */ var video_transforms = (video_transforms_transforms); 46743 46744 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/index.js 46745 /** 46746 * WordPress dependencies 46747 */ 46748 46749 46750 /** 46751 * Internal dependencies 46752 */ 46753 46754 46755 const video_metadata = { 46756 $schema: "https://schemas.wp.org/trunk/block.json", 46757 apiVersion: 2, 46758 name: "core/video", 46759 title: "Video", 46760 category: "media", 46761 description: "Embed a video from your media library or upload a new one.", 46762 keywords: ["movie"], 46763 textdomain: "default", 46764 attributes: { 46765 autoplay: { 46766 type: "boolean", 46767 source: "attribute", 46768 selector: "video", 46769 attribute: "autoplay" 46770 }, 46771 caption: { 46772 type: "string", 46773 source: "html", 46774 selector: "figcaption" 46775 }, 46776 controls: { 46777 type: "boolean", 46778 source: "attribute", 46779 selector: "video", 46780 attribute: "controls", 46781 "default": true 46782 }, 46783 id: { 46784 type: "number" 46785 }, 46786 loop: { 46787 type: "boolean", 46788 source: "attribute", 46789 selector: "video", 46790 attribute: "loop" 46791 }, 46792 muted: { 46793 type: "boolean", 46794 source: "attribute", 46795 selector: "video", 46796 attribute: "muted" 46797 }, 46798 poster: { 46799 type: "string", 46800 source: "attribute", 46801 selector: "video", 46802 attribute: "poster" 46803 }, 46804 preload: { 46805 type: "string", 46806 source: "attribute", 46807 selector: "video", 46808 attribute: "preload", 46809 "default": "metadata" 46810 }, 46811 src: { 46812 type: "string", 46813 source: "attribute", 46814 selector: "video", 46815 attribute: "src" 46816 }, 46817 playsInline: { 46818 type: "boolean", 46819 source: "attribute", 46820 selector: "video", 46821 attribute: "playsinline" 46822 }, 46823 tracks: { 46824 type: "array", 46825 items: { 46826 type: "object" 46827 }, 46828 "default": [] 46829 } 46830 }, 46831 supports: { 46832 anchor: true, 46833 align: true 46834 }, 46835 editorStyle: "wp-block-video-editor", 46836 style: "wp-block-video" 46837 }; 46838 46839 46840 const { 46841 name: video_name 46842 } = video_metadata; 46843 46844 const video_settings = { 46845 icon: library_video, 46846 example: { 46847 attributes: { 46848 src: 'https://upload.wikimedia.org/wikipedia/commons/c/ca/Wood_thrush_in_Central_Park_switch_sides_%2816510%29.webm', 46849 // translators: Caption accompanying a video of the wood thrush singing, which serves as an example for the Video block. 46850 caption: (0,external_wp_i18n_namespaceObject.__)('Wood thrush singing in Central Park, NYC.') 46851 } 46852 }, 46853 transforms: video_transforms, 46854 edit: video_edit, 46855 save: video_save_save 46856 }; 46857 46858 ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/index.js 46859 /** 46860 * WordPress dependencies 46861 */ 46862 46863 /** 46864 * Internal dependencies 46865 */ 46866 46867 46868 46869 46870 46871 46872 46873 46874 46875 46876 46877 46878 46879 46880 46881 46882 46883 46884 46885 46886 46887 46888 46889 46890 46891 46892 46893 46894 46895 46896 46897 46898 46899 46900 46901 46902 46903 46904 46905 46906 46907 46908 46909 46910 46911 46912 46913 46914 46915 46916 46917 46918 46919 46920 46921 46922 46923 46924 46925 46926 46927 46928 46929 46930 46931 46932 46933 46934 46935 46936 46937 46938 46939 46940 46941 46942 46943 46944 46945 46946 46947 46948 46949 46950 46951 46952 46953 46954 46955 46956 46957 46958 46959 46960 /** 46961 * Function to register an individual block. 46962 * 46963 * @param {Object} block The block to be registered. 46964 * 46965 */ 46966 46967 const registerBlock = block => { 46968 if (!block) { 46969 return; 46970 } 46971 46972 const { 46973 metadata, 46974 settings, 46975 name 46976 } = block; 46977 (0,external_wp_blocks_namespaceObject.registerBlockType)({ 46978 name, 46979 ...metadata 46980 }, settings); 46981 }; 46982 /** 46983 * Function to get all the core blocks in an array. 46984 * 46985 * @example 46986 * ```js 46987 * import { __experimentalGetCoreBlocks } from '@wordpress/block-library'; 46988 * 46989 * const coreBlocks = __experimentalGetCoreBlocks(); 46990 * ``` 46991 */ 46992 46993 46994 const __experimentalGetCoreBlocks = () => [// Common blocks are grouped at the top to prioritize their display 46995 // in various contexts — like the inserter and auto-complete components. 46996 build_module_paragraph_namespaceObject, build_module_image_namespaceObject, build_module_heading_namespaceObject, build_module_gallery_namespaceObject, build_module_list_namespaceObject, build_module_quote_namespaceObject, // Register all remaining core blocks. 46997 archives_namespaceObject, build_module_audio_namespaceObject, build_module_button_namespaceObject, build_module_buttons_namespaceObject, build_module_calendar_namespaceObject, categories_namespaceObject, window.wp && window.wp.oldEditor ? freeform_namespaceObject : null, // Only add the classic block in WP Context. 46998 build_module_code_namespaceObject, build_module_column_namespaceObject, build_module_columns_namespaceObject, build_module_cover_namespaceObject, embed_namespaceObject, build_module_file_namespaceObject, build_module_group_namespaceObject, build_module_html_namespaceObject, latest_comments_namespaceObject, latest_posts_namespaceObject, media_text_namespaceObject, missing_namespaceObject, build_module_more_namespaceObject, nextpage_namespaceObject, page_list_namespaceObject, pattern_namespaceObject, build_module_preformatted_namespaceObject, build_module_pullquote_namespaceObject, block_namespaceObject, build_module_rss_namespaceObject, build_module_search_namespaceObject, build_module_separator_namespaceObject, build_module_shortcode_namespaceObject, social_link_namespaceObject, social_links_namespaceObject, spacer_namespaceObject, build_module_table_namespaceObject, // tableOfContents, 46999 tag_cloud_namespaceObject, text_columns_namespaceObject, build_module_verse_namespaceObject, build_module_video_namespaceObject, // theme blocks 47000 build_module_navigation_namespaceObject, navigation_link_namespaceObject, navigation_submenu_namespaceObject, build_module_site_logo_namespaceObject, site_title_namespaceObject, site_tagline_namespaceObject, query_namespaceObject, template_part_namespaceObject, avatar_namespaceObject, build_module_post_title_namespaceObject, build_module_post_excerpt_namespaceObject, build_module_post_featured_image_namespaceObject, build_module_post_content_namespaceObject, build_module_post_author_namespaceObject, build_module_post_date_namespaceObject, build_module_post_terms_namespaceObject, post_navigation_link_namespaceObject, post_template_namespaceObject, build_module_query_pagination_namespaceObject, build_module_query_pagination_next_namespaceObject, build_module_query_pagination_numbers_namespaceObject, build_module_query_pagination_previous_namespaceObject, query_no_results_namespaceObject, read_more_namespaceObject, build_module_comment_author_name_namespaceObject, build_module_comment_content_namespaceObject, comment_date_namespaceObject, build_module_comment_edit_link_namespaceObject, build_module_comment_reply_link_namespaceObject, comment_template_namespaceObject, comments_title_namespaceObject, comments_query_loop_namespaceObject, comments_pagination_namespaceObject, comments_pagination_next_namespaceObject, comments_pagination_numbers_namespaceObject, comments_pagination_previous_namespaceObject, build_module_post_comments_namespaceObject, build_module_post_comments_form_namespaceObject, home_link_namespaceObject, loginout_namespaceObject, build_module_term_description_namespaceObject, build_module_query_title_namespaceObject, post_author_biography_namespaceObject]; 47001 /** 47002 * Function to register core blocks provided by the block editor. 47003 * 47004 * @param {Array} blocks An optional array of the core blocks being registered. 47005 * 47006 * @example 47007 * ```js 47008 * import { registerCoreBlocks } from '@wordpress/block-library'; 47009 * 47010 * registerCoreBlocks(); 47011 * ``` 47012 */ 47013 47014 const registerCoreBlocks = function () { 47015 let blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : __experimentalGetCoreBlocks(); 47016 blocks.forEach(registerBlock); 47017 (0,external_wp_blocks_namespaceObject.setDefaultBlockName)(paragraph_name); 47018 47019 if (window.wp && window.wp.oldEditor) { 47020 (0,external_wp_blocks_namespaceObject.setFreeformContentHandlerName)(freeform_name); 47021 } 47022 47023 (0,external_wp_blocks_namespaceObject.setUnregisteredTypeHandlerName)(missing_name); 47024 (0,external_wp_blocks_namespaceObject.setGroupingBlockName)(group_name); 47025 }; 47026 /** 47027 * Function to register experimental core blocks depending on editor settings. 47028 * 47029 * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks. 47030 * @example 47031 * ```js 47032 * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library'; 47033 * 47034 * __experimentalRegisterExperimentalCoreBlocks( settings ); 47035 * ``` 47036 */ 47037 47038 const __experimentalRegisterExperimentalCoreBlocks = false ? 0 : undefined; 47039 47040 }(); 47041 (window.wp = window.wp || {}).blockLibrary = __webpack_exports__; 47042 /******/ })() 47043 ;
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Nov 21 01:00:03 2024 | Cross-referenced by PHPXref 0.7.1 |