[ 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