wp/wp-includes/js/dist/widgets.js
changeset 18 be944660c56a
child 19 3d72ae0968f4
equal deleted inserted replaced
17:34716fd837a4 18:be944660c56a
       
     1 this["wp"] = this["wp"] || {}; this["wp"]["widgets"] =
       
     2 /******/ (function(modules) { // webpackBootstrap
       
     3 /******/ 	// The module cache
       
     4 /******/ 	var installedModules = {};
       
     5 /******/
       
     6 /******/ 	// The require function
       
     7 /******/ 	function __webpack_require__(moduleId) {
       
     8 /******/
       
     9 /******/ 		// Check if module is in cache
       
    10 /******/ 		if(installedModules[moduleId]) {
       
    11 /******/ 			return installedModules[moduleId].exports;
       
    12 /******/ 		}
       
    13 /******/ 		// Create a new module (and put it into the cache)
       
    14 /******/ 		var module = installedModules[moduleId] = {
       
    15 /******/ 			i: moduleId,
       
    16 /******/ 			l: false,
       
    17 /******/ 			exports: {}
       
    18 /******/ 		};
       
    19 /******/
       
    20 /******/ 		// Execute the module function
       
    21 /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
       
    22 /******/
       
    23 /******/ 		// Flag the module as loaded
       
    24 /******/ 		module.l = true;
       
    25 /******/
       
    26 /******/ 		// Return the exports of the module
       
    27 /******/ 		return module.exports;
       
    28 /******/ 	}
       
    29 /******/
       
    30 /******/
       
    31 /******/ 	// expose the modules object (__webpack_modules__)
       
    32 /******/ 	__webpack_require__.m = modules;
       
    33 /******/
       
    34 /******/ 	// expose the module cache
       
    35 /******/ 	__webpack_require__.c = installedModules;
       
    36 /******/
       
    37 /******/ 	// define getter function for harmony exports
       
    38 /******/ 	__webpack_require__.d = function(exports, name, getter) {
       
    39 /******/ 		if(!__webpack_require__.o(exports, name)) {
       
    40 /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
       
    41 /******/ 		}
       
    42 /******/ 	};
       
    43 /******/
       
    44 /******/ 	// define __esModule on exports
       
    45 /******/ 	__webpack_require__.r = function(exports) {
       
    46 /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
       
    47 /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
       
    48 /******/ 		}
       
    49 /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
       
    50 /******/ 	};
       
    51 /******/
       
    52 /******/ 	// create a fake namespace object
       
    53 /******/ 	// mode & 1: value is a module id, require it
       
    54 /******/ 	// mode & 2: merge all properties of value into the ns
       
    55 /******/ 	// mode & 4: return value when already ns object
       
    56 /******/ 	// mode & 8|1: behave like require
       
    57 /******/ 	__webpack_require__.t = function(value, mode) {
       
    58 /******/ 		if(mode & 1) value = __webpack_require__(value);
       
    59 /******/ 		if(mode & 8) return value;
       
    60 /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
       
    61 /******/ 		var ns = Object.create(null);
       
    62 /******/ 		__webpack_require__.r(ns);
       
    63 /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
       
    64 /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
       
    65 /******/ 		return ns;
       
    66 /******/ 	};
       
    67 /******/
       
    68 /******/ 	// getDefaultExport function for compatibility with non-harmony modules
       
    69 /******/ 	__webpack_require__.n = function(module) {
       
    70 /******/ 		var getter = module && module.__esModule ?
       
    71 /******/ 			function getDefault() { return module['default']; } :
       
    72 /******/ 			function getModuleExports() { return module; };
       
    73 /******/ 		__webpack_require__.d(getter, 'a', getter);
       
    74 /******/ 		return getter;
       
    75 /******/ 	};
       
    76 /******/
       
    77 /******/ 	// Object.prototype.hasOwnProperty.call
       
    78 /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
       
    79 /******/
       
    80 /******/ 	// __webpack_public_path__
       
    81 /******/ 	__webpack_require__.p = "";
       
    82 /******/
       
    83 /******/
       
    84 /******/ 	// Load entry module and return exports
       
    85 /******/ 	return __webpack_require__(__webpack_require__.s = "4g8P");
       
    86 /******/ })
       
    87 /************************************************************************/
       
    88 /******/ ({
       
    89 
       
    90 /***/ "1ZqX":
       
    91 /***/ (function(module, exports) {
       
    92 
       
    93 (function() { module.exports = window["wp"]["data"]; }());
       
    94 
       
    95 /***/ }),
       
    96 
       
    97 /***/ "4g8P":
       
    98 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
    99 
       
   100 "use strict";
       
   101 // ESM COMPAT FLAG
       
   102 __webpack_require__.r(__webpack_exports__);
       
   103 
       
   104 // EXPORTS
       
   105 __webpack_require__.d(__webpack_exports__, "MoveToWidgetArea", function() { return /* reexport */ MoveToWidgetArea; });
       
   106 __webpack_require__.d(__webpack_exports__, "getWidgetIdFromBlock", function() { return /* reexport */ getWidgetIdFromBlock; });
       
   107 __webpack_require__.d(__webpack_exports__, "addWidgetIdToBlock", function() { return /* reexport */ addWidgetIdToBlock; });
       
   108 __webpack_require__.d(__webpack_exports__, "registerLegacyWidgetBlock", function() { return /* binding */ registerLegacyWidgetBlock; });
       
   109 __webpack_require__.d(__webpack_exports__, "registerLegacyWidgetVariations", function() { return /* reexport */ registerLegacyWidgetVariations; });
       
   110 
       
   111 // NAMESPACE OBJECT: ./node_modules/@wordpress/widgets/build-module/blocks/legacy-widget/index.js
       
   112 var legacy_widget_namespaceObject = {};
       
   113 __webpack_require__.r(legacy_widget_namespaceObject);
       
   114 __webpack_require__.d(legacy_widget_namespaceObject, "metadata", function() { return legacy_widget_metadata; });
       
   115 __webpack_require__.d(legacy_widget_namespaceObject, "name", function() { return legacy_widget_name; });
       
   116 __webpack_require__.d(legacy_widget_namespaceObject, "settings", function() { return legacy_widget_settings; });
       
   117 
       
   118 // EXTERNAL MODULE: external ["wp","blocks"]
       
   119 var external_wp_blocks_ = __webpack_require__("HSyU");
       
   120 
       
   121 // EXTERNAL MODULE: external ["wp","element"]
       
   122 var external_wp_element_ = __webpack_require__("GRId");
       
   123 
       
   124 // EXTERNAL MODULE: external ["wp","primitives"]
       
   125 var external_wp_primitives_ = __webpack_require__("Tqx9");
       
   126 
       
   127 // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/widget.js
       
   128 
       
   129 
       
   130 /**
       
   131  * WordPress dependencies
       
   132  */
       
   133 
       
   134 const widget_widget = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
       
   135   xmlns: "http://www.w3.org/2000/svg",
       
   136   viewBox: "0 0 24 24"
       
   137 }, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
       
   138   d: "M6 3H8V5H16V3H18V5C19.1046 5 20 5.89543 20 7V19C20 20.1046 19.1046 21 18 21H6C4.89543 21 4 20.1046 4 19V7C4 5.89543 4.89543 5 6 5V3ZM18 6.5H6C5.72386 6.5 5.5 6.72386 5.5 7V8H18.5V7C18.5 6.72386 18.2761 6.5 18 6.5ZM18.5 9.5H5.5V19C5.5 19.2761 5.72386 19.5 6 19.5H18C18.2761 19.5 18.5 19.2761 18.5 19V9.5ZM11 11H13V13H11V11ZM7 11V13H9V11H7ZM15 13V11H17V13H15Z"
       
   139 }));
       
   140 /* harmony default export */ var library_widget = (widget_widget);
       
   141 
       
   142 // EXTERNAL MODULE: ./node_modules/classnames/index.js
       
   143 var classnames = __webpack_require__("TSYQ");
       
   144 var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
       
   145 
       
   146 // EXTERNAL MODULE: external ["wp","blockEditor"]
       
   147 var external_wp_blockEditor_ = __webpack_require__("axFQ");
       
   148 
       
   149 // EXTERNAL MODULE: external ["wp","components"]
       
   150 var external_wp_components_ = __webpack_require__("tI+e");
       
   151 
       
   152 // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/brush.js
       
   153 
       
   154 
       
   155 /**
       
   156  * WordPress dependencies
       
   157  */
       
   158 
       
   159 const brush = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
       
   160   xmlns: "http://www.w3.org/2000/svg",
       
   161   viewBox: "0 0 24 24"
       
   162 }, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
       
   163   d: "M4 20h8v-1.5H4V20zM18.9 3.5c-.6-.6-1.5-.6-2.1 0l-7.2 7.2c-.4-.1-.7 0-1.1.1-.5.2-1.5.7-1.9 2.2-.4 1.7-.8 2.2-1.1 2.7-.1.1-.2.3-.3.4l-.6 1.1H6c2 0 3.4-.4 4.7-1.4.8-.6 1.2-1.4 1.3-2.3 0-.3 0-.5-.1-.7L19 5.7c.5-.6.5-1.6-.1-2.2zM9.7 14.7c-.7.5-1.5.8-2.4 1 .2-.5.5-1.2.8-2.3.2-.6.4-1 .8-1.1.5-.1 1 .1 1.3.3.2.2.3.5.2.8 0 .3-.1.9-.7 1.3z"
       
   164 }));
       
   165 /* harmony default export */ var library_brush = (brush);
       
   166 
       
   167 // EXTERNAL MODULE: external ["wp","i18n"]
       
   168 var external_wp_i18n_ = __webpack_require__("l3Sj");
       
   169 
       
   170 // EXTERNAL MODULE: external ["wp","data"]
       
   171 var external_wp_data_ = __webpack_require__("1ZqX");
       
   172 
       
   173 // EXTERNAL MODULE: external ["wp","coreData"]
       
   174 var external_wp_coreData_ = __webpack_require__("jZUy");
       
   175 
       
   176 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/blocks/legacy-widget/edit/widget-type-selector.js
       
   177 
       
   178 
       
   179 /**
       
   180  * WordPress dependencies
       
   181  */
       
   182 
       
   183 
       
   184 
       
   185 
       
   186 
       
   187 function WidgetTypeSelector({
       
   188   selectedId,
       
   189   onSelect
       
   190 }) {
       
   191   const widgetTypes = Object(external_wp_data_["useSelect"])(select => {
       
   192     var _select$getSettings$w, _select$getSettings, _select$getWidgetType;
       
   193 
       
   194     const hiddenIds = (_select$getSettings$w = (_select$getSettings = select(external_wp_blockEditor_["store"]).getSettings()) === null || _select$getSettings === void 0 ? void 0 : _select$getSettings.widgetTypesToHideFromLegacyWidgetBlock) !== null && _select$getSettings$w !== void 0 ? _select$getSettings$w : [];
       
   195     return (_select$getWidgetType = select(external_wp_coreData_["store"]).getWidgetTypes({
       
   196       per_page: -1
       
   197     })) === null || _select$getWidgetType === void 0 ? void 0 : _select$getWidgetType.filter(widgetType => !hiddenIds.includes(widgetType.id));
       
   198   }, []);
       
   199 
       
   200   if (!widgetTypes) {
       
   201     return Object(external_wp_element_["createElement"])(external_wp_components_["Spinner"], null);
       
   202   }
       
   203 
       
   204   if (widgetTypes.length === 0) {
       
   205     return Object(external_wp_i18n_["__"])('There are no widgets available.');
       
   206   }
       
   207 
       
   208   return Object(external_wp_element_["createElement"])(external_wp_components_["SelectControl"], {
       
   209     label: Object(external_wp_i18n_["__"])('Select a legacy widget to display:'),
       
   210     value: selectedId !== null && selectedId !== void 0 ? selectedId : '',
       
   211     options: [{
       
   212       value: '',
       
   213       label: Object(external_wp_i18n_["__"])('Select widget')
       
   214     }, ...widgetTypes.map(widgetType => ({
       
   215       value: widgetType.id,
       
   216       label: widgetType.name
       
   217     }))],
       
   218     onChange: value => {
       
   219       if (value) {
       
   220         const selected = widgetTypes.find(widgetType => widgetType.id === value);
       
   221         onSelect({
       
   222           selectedId: selected.id,
       
   223           isMulti: selected.is_multi
       
   224         });
       
   225       } else {
       
   226         onSelect({
       
   227           selectedId: null
       
   228         });
       
   229       }
       
   230     }
       
   231   });
       
   232 }
       
   233 
       
   234 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/blocks/legacy-widget/edit/inspector-card.js
       
   235 
       
   236 function InspectorCard({
       
   237   name,
       
   238   description
       
   239 }) {
       
   240   return Object(external_wp_element_["createElement"])("div", {
       
   241     className: "wp-block-legacy-widget-inspector-card"
       
   242   }, Object(external_wp_element_["createElement"])("h3", {
       
   243     className: "wp-block-legacy-widget-inspector-card__name"
       
   244   }, name), Object(external_wp_element_["createElement"])("span", null, description));
       
   245 }
       
   246 
       
   247 // EXTERNAL MODULE: external ["wp","notices"]
       
   248 var external_wp_notices_ = __webpack_require__("onLe");
       
   249 
       
   250 // EXTERNAL MODULE: external ["wp","compose"]
       
   251 var external_wp_compose_ = __webpack_require__("K9lf");
       
   252 
       
   253 // EXTERNAL MODULE: external "lodash"
       
   254 var external_lodash_ = __webpack_require__("YLtl");
       
   255 
       
   256 // EXTERNAL MODULE: external ["wp","apiFetch"]
       
   257 var external_wp_apiFetch_ = __webpack_require__("ywyh");
       
   258 var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_);
       
   259 
       
   260 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/blocks/legacy-widget/edit/control.js
       
   261 /**
       
   262  * External dependencies
       
   263  */
       
   264 
       
   265 /**
       
   266  * WordPress dependencies
       
   267  */
       
   268 
       
   269 
       
   270 
       
   271 /**
       
   272  * An API for creating and loading a widget control (a <div class="widget">
       
   273  * element) that is compatible with most third party widget scripts. By not
       
   274  * using React for this, we ensure that we have complete contorl over the DOM
       
   275  * and do not accidentally remove any elements that a third party widget script
       
   276  * has attached an event listener to.
       
   277  *
       
   278  * @property {Element} element The control's DOM element.
       
   279  */
       
   280 
       
   281 class control_Control {
       
   282   /**
       
   283    * Creates and loads a new control.
       
   284    *
       
   285    * @access public
       
   286    * @param {Object} params
       
   287    * @param {string} params.id
       
   288    * @param {string} params.idBase
       
   289    * @param {Object} params.instance
       
   290    * @param {Function} params.onChangeInstance
       
   291    * @param {Function} params.onChangeHasPreview
       
   292    * @param {Function} params.onError
       
   293    */
       
   294   constructor({
       
   295     id,
       
   296     idBase,
       
   297     instance,
       
   298     onChangeInstance,
       
   299     onChangeHasPreview,
       
   300     onError
       
   301   }) {
       
   302     this.id = id;
       
   303     this.idBase = idBase;
       
   304     this._instance = instance;
       
   305     this._hasPreview = null;
       
   306     this.onChangeInstance = onChangeInstance;
       
   307     this.onChangeHasPreview = onChangeHasPreview;
       
   308     this.onError = onError; // We can't use the real widget number as this is calculated by the
       
   309     // server and we may not ever *actually* save this widget. Instead, use
       
   310     // a fake but unique number.
       
   311 
       
   312     this.number = ++lastNumber;
       
   313     this.handleFormChange = Object(external_lodash_["debounce"])(this.handleFormChange.bind(this), 200);
       
   314     this.handleFormSubmit = this.handleFormSubmit.bind(this);
       
   315     this.initDOM();
       
   316     this.bindEvents();
       
   317     this.loadContent();
       
   318   }
       
   319   /**
       
   320    * Clean up the control so that it can be garabge collected.
       
   321    *
       
   322    * @access public
       
   323    */
       
   324 
       
   325 
       
   326   destroy() {
       
   327     this.unbindEvents();
       
   328     this.element.remove(); // TODO: How do we make third party widget scripts remove their event
       
   329     // listeners?
       
   330   }
       
   331   /**
       
   332    * Creates the control's DOM structure.
       
   333    *
       
   334    * @access private
       
   335    */
       
   336 
       
   337 
       
   338   initDOM() {
       
   339     var _this$id, _this$idBase;
       
   340 
       
   341     this.element = el('div', {
       
   342       class: 'widget open'
       
   343     }, [el('div', {
       
   344       class: 'widget-inside'
       
   345     }, [this.form = el('form', {
       
   346       class: 'form',
       
   347       method: 'post'
       
   348     }, [// These hidden form inputs are what most widgets' scripts
       
   349     // use to access data about the widget.
       
   350     el('input', {
       
   351       class: 'widget-id',
       
   352       type: 'hidden',
       
   353       name: 'widget-id',
       
   354       value: (_this$id = this.id) !== null && _this$id !== void 0 ? _this$id : `${this.idBase}-${this.number}`
       
   355     }), el('input', {
       
   356       class: 'id_base',
       
   357       type: 'hidden',
       
   358       name: 'id_base',
       
   359       value: (_this$idBase = this.idBase) !== null && _this$idBase !== void 0 ? _this$idBase : this.id
       
   360     }), el('input', {
       
   361       class: 'widget-width',
       
   362       type: 'hidden',
       
   363       name: 'widget-width',
       
   364       value: '250'
       
   365     }), el('input', {
       
   366       class: 'widget-height',
       
   367       type: 'hidden',
       
   368       name: 'widget-height',
       
   369       value: '200'
       
   370     }), el('input', {
       
   371       class: 'widget_number',
       
   372       type: 'hidden',
       
   373       name: 'widget_number',
       
   374       value: this.idBase ? this.number.toString() : ''
       
   375     }), this.content = el('div', {
       
   376       class: 'widget-content'
       
   377     }), // Non-multi widgets can be saved via a Save button.
       
   378     this.id && el('button', {
       
   379       class: 'button is-primary',
       
   380       type: 'submit'
       
   381     }, Object(external_wp_i18n_["__"])('Save'))])])]);
       
   382   }
       
   383   /**
       
   384    * Adds the control's event listeners.
       
   385    *
       
   386    * @access private
       
   387    */
       
   388 
       
   389 
       
   390   bindEvents() {
       
   391     // Prefer jQuery 'change' event instead of the native 'change' event
       
   392     // because many widgets use jQuery's event bus to trigger an update.
       
   393     if (window.jQuery) {
       
   394       const {
       
   395         jQuery: $
       
   396       } = window;
       
   397       $(this.form).on('change', null, this.handleFormChange);
       
   398       $(this.form).on('input', null, this.handleFormChange);
       
   399       $(this.form).on('submit', this.handleFormSubmit);
       
   400     } else {
       
   401       this.form.addEventListener('change', this.handleFormChange);
       
   402       this.form.addEventListener('input', this.handleFormChange);
       
   403       this.form.addEventListener('submit', this.handleFormSubmit);
       
   404     }
       
   405   }
       
   406   /**
       
   407    * Removes the control's event listeners.
       
   408    *
       
   409    * @access private
       
   410    */
       
   411 
       
   412 
       
   413   unbindEvents() {
       
   414     if (window.jQuery) {
       
   415       const {
       
   416         jQuery: $
       
   417       } = window;
       
   418       $(this.form).off('change', null, this.handleFormChange);
       
   419       $(this.form).off('input', null, this.handleFormChange);
       
   420       $(this.form).off('submit', this.handleFormSubmit);
       
   421     } else {
       
   422       this.form.removeEventListener('change', this.handleFormChange);
       
   423       this.form.removeEventListener('input', this.handleFormChange);
       
   424       this.form.removeEventListener('submit', this.handleFormSubmit);
       
   425     }
       
   426   }
       
   427   /**
       
   428    * Fetches the widget's form HTML from the REST API and loads it into the
       
   429    * control's form.
       
   430    *
       
   431    * @access private
       
   432    */
       
   433 
       
   434 
       
   435   async loadContent() {
       
   436     try {
       
   437       if (this.id) {
       
   438         const {
       
   439           form
       
   440         } = await saveWidget(this.id);
       
   441         this.content.innerHTML = form;
       
   442       } else if (this.idBase) {
       
   443         const {
       
   444           form,
       
   445           preview
       
   446         } = await encodeWidget({
       
   447           idBase: this.idBase,
       
   448           instance: this.instance,
       
   449           number: this.number
       
   450         });
       
   451         this.content.innerHTML = form;
       
   452         this.hasPreview = !isEmptyHTML(preview); // If we don't have an instance, perform a save right away. This
       
   453         // happens when creating a new Legacy Widget block.
       
   454 
       
   455         if (!this.instance.hash) {
       
   456           const {
       
   457             instance
       
   458           } = await encodeWidget({
       
   459             idBase: this.idBase,
       
   460             instance: this.instance,
       
   461             number: this.number,
       
   462             formData: serializeForm(this.form)
       
   463           });
       
   464           this.instance = instance;
       
   465         }
       
   466       } // Trigger 'widget-added' when widget is ready. This event is what
       
   467       // widgets' scripts use to initialize, attach events, etc. The event
       
   468       // must be fired using jQuery's event bus as this is what widget
       
   469       // scripts expect. If jQuery is not loaded, do nothing - some
       
   470       // widgets will still work regardless.
       
   471 
       
   472 
       
   473       if (window.jQuery) {
       
   474         const {
       
   475           jQuery: $
       
   476         } = window;
       
   477         $(document).trigger('widget-added', [$(this.element)]);
       
   478       }
       
   479     } catch (error) {
       
   480       this.onError(error);
       
   481     }
       
   482   }
       
   483   /**
       
   484    * Perform a save when a multi widget's form is changed. Non-multi widgets
       
   485    * are saved manually.
       
   486    *
       
   487    * @access private
       
   488    */
       
   489 
       
   490 
       
   491   handleFormChange() {
       
   492     if (this.idBase) {
       
   493       this.saveForm();
       
   494     }
       
   495   }
       
   496   /**
       
   497    * Perform a save when the control's form is manually submitted.
       
   498    *
       
   499    * @access private
       
   500    * @param {Event} event
       
   501    */
       
   502 
       
   503 
       
   504   handleFormSubmit(event) {
       
   505     event.preventDefault();
       
   506     this.saveForm();
       
   507   }
       
   508   /**
       
   509    * Serialize the control's form, send it to the REST API, and update the
       
   510    * instance with the encoded instance that the REST API returns.
       
   511    *
       
   512    * @access private
       
   513    */
       
   514 
       
   515 
       
   516   async saveForm() {
       
   517     const formData = serializeForm(this.form);
       
   518 
       
   519     try {
       
   520       if (this.id) {
       
   521         const {
       
   522           form
       
   523         } = await saveWidget(this.id, formData);
       
   524         this.content.innerHTML = form;
       
   525 
       
   526         if (window.jQuery) {
       
   527           const {
       
   528             jQuery: $
       
   529           } = window;
       
   530           $(document).trigger('widget-updated', [$(this.element)]);
       
   531         }
       
   532       } else if (this.idBase) {
       
   533         const {
       
   534           instance,
       
   535           preview
       
   536         } = await encodeWidget({
       
   537           idBase: this.idBase,
       
   538           instance: this.instance,
       
   539           number: this.number,
       
   540           formData
       
   541         });
       
   542         this.instance = instance;
       
   543         this.hasPreview = !isEmptyHTML(preview);
       
   544       }
       
   545     } catch (error) {
       
   546       this.onError(error);
       
   547     }
       
   548   }
       
   549   /**
       
   550    * The widget's instance object.
       
   551    *
       
   552    * @access private
       
   553    */
       
   554 
       
   555 
       
   556   get instance() {
       
   557     return this._instance;
       
   558   }
       
   559   /**
       
   560    * The widget's instance object.
       
   561    *
       
   562    * @access private
       
   563    */
       
   564 
       
   565 
       
   566   set instance(instance) {
       
   567     if (this._instance !== instance) {
       
   568       this._instance = instance;
       
   569       this.onChangeInstance(instance);
       
   570     }
       
   571   }
       
   572   /**
       
   573    * Whether or not the widget can be previewed.
       
   574    *
       
   575    * @access public
       
   576    */
       
   577 
       
   578 
       
   579   get hasPreview() {
       
   580     return this._hasPreview;
       
   581   }
       
   582   /**
       
   583    * Whether or not the widget can be previewed.
       
   584    *
       
   585    * @access private
       
   586    */
       
   587 
       
   588 
       
   589   set hasPreview(hasPreview) {
       
   590     if (this._hasPreview !== hasPreview) {
       
   591       this._hasPreview = hasPreview;
       
   592       this.onChangeHasPreview(hasPreview);
       
   593     }
       
   594   }
       
   595 
       
   596 }
       
   597 let lastNumber = 0;
       
   598 
       
   599 function el(tagName, attributes = {}, content = null) {
       
   600   const element = document.createElement(tagName);
       
   601 
       
   602   for (const [attribute, value] of Object.entries(attributes)) {
       
   603     element.setAttribute(attribute, value);
       
   604   }
       
   605 
       
   606   if (Array.isArray(content)) {
       
   607     for (const child of content) {
       
   608       if (child) {
       
   609         element.appendChild(child);
       
   610       }
       
   611     }
       
   612   } else if (typeof content === 'string') {
       
   613     element.innerText = content;
       
   614   }
       
   615 
       
   616   return element;
       
   617 }
       
   618 
       
   619 async function saveWidget(id, formData = null) {
       
   620   let widget;
       
   621 
       
   622   if (formData) {
       
   623     widget = await external_wp_apiFetch_default()({
       
   624       path: `/wp/v2/widgets/${id}?context=edit`,
       
   625       method: 'PUT',
       
   626       data: {
       
   627         form_data: formData
       
   628       }
       
   629     });
       
   630   } else {
       
   631     widget = await external_wp_apiFetch_default()({
       
   632       path: `/wp/v2/widgets/${id}?context=edit`,
       
   633       method: 'GET'
       
   634     });
       
   635   }
       
   636 
       
   637   return {
       
   638     form: widget.rendered_form
       
   639   };
       
   640 }
       
   641 
       
   642 async function encodeWidget({
       
   643   idBase,
       
   644   instance,
       
   645   number,
       
   646   formData = null
       
   647 }) {
       
   648   const response = await external_wp_apiFetch_default()({
       
   649     path: `/wp/v2/widget-types/${idBase}/encode`,
       
   650     method: 'POST',
       
   651     data: {
       
   652       instance,
       
   653       number,
       
   654       form_data: formData
       
   655     }
       
   656   });
       
   657   return {
       
   658     instance: response.instance,
       
   659     form: response.form,
       
   660     preview: response.preview
       
   661   };
       
   662 }
       
   663 
       
   664 function isEmptyHTML(html) {
       
   665   const element = document.createElement('div');
       
   666   element.innerHTML = html;
       
   667   return isEmptyNode(element);
       
   668 }
       
   669 
       
   670 function isEmptyNode(node) {
       
   671   switch (node.nodeType) {
       
   672     case node.TEXT_NODE:
       
   673       // Text nodes are empty if it's entirely whitespace.
       
   674       return node.nodeValue.trim() === '';
       
   675 
       
   676     case node.ELEMENT_NODE:
       
   677       // Elements that are "embedded content" are not empty.
       
   678       // https://dev.w3.org/html5/spec-LC/content-models.html#embedded-content-0
       
   679       if (['AUDIO', 'CANVAS', 'EMBED', 'IFRAME', 'IMG', 'MATH', 'OBJECT', 'SVG', 'VIDEO'].includes(node.tagName)) {
       
   680         return false;
       
   681       } // Elements with no children are empty.
       
   682 
       
   683 
       
   684       if (!node.hasChildNodes()) {
       
   685         return true;
       
   686       } // Elements with children are empty if all their children are empty.
       
   687 
       
   688 
       
   689       return Array.from(node.childNodes).every(isEmptyNode);
       
   690 
       
   691     default:
       
   692       return true;
       
   693   }
       
   694 }
       
   695 
       
   696 function serializeForm(form) {
       
   697   return new window.URLSearchParams(Array.from(new window.FormData(form))).toString();
       
   698 }
       
   699 
       
   700 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/blocks/legacy-widget/edit/form.js
       
   701 
       
   702 
       
   703 /**
       
   704  * External dependencies
       
   705  */
       
   706 
       
   707 /**
       
   708  * WordPress dependencies
       
   709  */
       
   710 
       
   711 
       
   712 
       
   713 
       
   714 
       
   715 
       
   716 
       
   717 /**
       
   718  * Internal dependencies
       
   719  */
       
   720 
       
   721 
       
   722 function Form({
       
   723   title,
       
   724   isVisible,
       
   725   id,
       
   726   idBase,
       
   727   instance,
       
   728   isWide,
       
   729   onChangeInstance,
       
   730   onChangeHasPreview
       
   731 }) {
       
   732   const ref = Object(external_wp_element_["useRef"])();
       
   733   const isMediumLargeViewport = Object(external_wp_compose_["useViewportMatch"])('small'); // We only want to remount the control when the instance changes
       
   734   // *externally*. For example, if the user performs an undo. To do this, we
       
   735   // keep track of changes made to instance by the control itself and then
       
   736   // ignore those.
       
   737 
       
   738   const outgoingInstances = Object(external_wp_element_["useRef"])(new Set());
       
   739   const incomingInstances = Object(external_wp_element_["useRef"])(new Set());
       
   740   const {
       
   741     createNotice
       
   742   } = Object(external_wp_data_["useDispatch"])(external_wp_notices_["store"]);
       
   743   Object(external_wp_element_["useEffect"])(() => {
       
   744     if (incomingInstances.current.has(instance)) {
       
   745       incomingInstances.current.delete(instance);
       
   746       return;
       
   747     }
       
   748 
       
   749     const control = new control_Control({
       
   750       id,
       
   751       idBase,
       
   752       instance,
       
   753 
       
   754       onChangeInstance(nextInstance) {
       
   755         outgoingInstances.current.add(instance);
       
   756         incomingInstances.current.add(nextInstance);
       
   757         onChangeInstance(nextInstance);
       
   758       },
       
   759 
       
   760       onChangeHasPreview,
       
   761 
       
   762       onError(error) {
       
   763         window.console.error(error);
       
   764         createNotice('error', Object(external_wp_i18n_["sprintf"])(
       
   765         /* translators: %s: the name of the affected block. */
       
   766         Object(external_wp_i18n_["__"])('The "%s" block was affected by errors and may not function properly. Check the developer tools for more details.'), idBase || id));
       
   767       }
       
   768 
       
   769     });
       
   770     ref.current.appendChild(control.element);
       
   771     return () => {
       
   772       if (outgoingInstances.current.has(instance)) {
       
   773         outgoingInstances.current.delete(instance);
       
   774         return;
       
   775       }
       
   776 
       
   777       control.destroy();
       
   778     };
       
   779   }, [id, idBase, instance, onChangeInstance, onChangeHasPreview, isMediumLargeViewport]);
       
   780 
       
   781   if (isWide && isMediumLargeViewport) {
       
   782     return Object(external_wp_element_["createElement"])("div", {
       
   783       className: classnames_default()({
       
   784         'wp-block-legacy-widget__container': isVisible
       
   785       })
       
   786     }, isVisible && Object(external_wp_element_["createElement"])("h3", {
       
   787       className: "wp-block-legacy-widget__edit-form-title"
       
   788     }, title), Object(external_wp_element_["createElement"])(external_wp_components_["Popover"], {
       
   789       focusOnMount: false,
       
   790       position: "middle right",
       
   791       __unstableForceXAlignment: true
       
   792     }, Object(external_wp_element_["createElement"])("div", {
       
   793       ref: ref,
       
   794       className: "wp-block-legacy-widget__edit-form",
       
   795       hidden: !isVisible
       
   796     })));
       
   797   }
       
   798 
       
   799   return Object(external_wp_element_["createElement"])("div", {
       
   800     ref: ref,
       
   801     className: "wp-block-legacy-widget__edit-form",
       
   802     hidden: !isVisible
       
   803   }, Object(external_wp_element_["createElement"])("h3", {
       
   804     className: "wp-block-legacy-widget__edit-form-title"
       
   805   }, title));
       
   806 }
       
   807 
       
   808 // EXTERNAL MODULE: external ["wp","url"]
       
   809 var external_wp_url_ = __webpack_require__("Mmq9");
       
   810 
       
   811 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/blocks/legacy-widget/edit/preview.js
       
   812 
       
   813 
       
   814 /**
       
   815  * External dependencies
       
   816  */
       
   817 
       
   818 /**
       
   819  * WordPress dependencies
       
   820  */
       
   821 
       
   822 
       
   823 
       
   824 
       
   825 
       
   826 
       
   827 function Preview({
       
   828   idBase,
       
   829   instance,
       
   830   isVisible
       
   831 }) {
       
   832   const [isLoaded, setIsLoaded] = Object(external_wp_element_["useState"])(false); // Resize the iframe on either the load event, or when the iframe becomes visible.
       
   833 
       
   834   const ref = Object(external_wp_compose_["useRefEffect"])(iframe => {
       
   835     // Only set height if the iframe is loaded,
       
   836     // or it will grow to an unexpected large height in Safari if it's hidden initially.
       
   837     if (isLoaded) {
       
   838       // If the preview frame has another origin then this won't work.
       
   839       // One possible solution is to add custom script to call `postMessage` in the preview frame.
       
   840       // Or, better yet, we migrate away from iframe.
       
   841       function setHeight() {
       
   842         // Pick the maximum of these two values to account for margin collapsing.
       
   843         const height = Math.max(iframe.contentDocument.documentElement.offsetHeight, iframe.contentDocument.body.offsetHeight);
       
   844         iframe.style.height = `${height}px`;
       
   845       }
       
   846 
       
   847       const {
       
   848         IntersectionObserver
       
   849       } = iframe.ownerDocument.defaultView; // Observe for intersections that might cause a change in the height of
       
   850       // the iframe, e.g. a Widget Area becoming expanded.
       
   851 
       
   852       const intersectionObserver = new IntersectionObserver(([entry]) => {
       
   853         if (entry.isIntersecting) {
       
   854           setHeight();
       
   855         }
       
   856       }, {
       
   857         threshold: 1
       
   858       });
       
   859       intersectionObserver.observe(iframe);
       
   860       iframe.addEventListener('load', setHeight);
       
   861       return () => {
       
   862         intersectionObserver.disconnect();
       
   863         iframe.removeEventListener('load', setHeight);
       
   864       };
       
   865     }
       
   866   }, [isLoaded]);
       
   867   return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, isVisible && !isLoaded && Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], null, Object(external_wp_element_["createElement"])(external_wp_components_["Spinner"], null)), Object(external_wp_element_["createElement"])("div", {
       
   868     className: classnames_default()('wp-block-legacy-widget__edit-preview', {
       
   869       'is-offscreen': !isVisible || !isLoaded
       
   870     })
       
   871   }, Object(external_wp_element_["createElement"])(external_wp_components_["Disabled"], null, Object(external_wp_element_["createElement"])("iframe", {
       
   872     ref: ref,
       
   873     className: "wp-block-legacy-widget__edit-preview-iframe",
       
   874     title: Object(external_wp_i18n_["__"])('Legacy Widget Preview') // TODO: This chokes when the query param is too big.
       
   875     // Ideally, we'd render a <ServerSideRender>. Maybe by
       
   876     // rendering one in an iframe via a portal.
       
   877     ,
       
   878     src: Object(external_wp_url_["addQueryArgs"])('widgets.php', {
       
   879       'legacy-widget-preview': {
       
   880         idBase,
       
   881         instance
       
   882       }
       
   883     }),
       
   884     onLoad: event => {
       
   885       // To hide the scrollbars of the preview frame for some edge cases,
       
   886       // such as negative margins in the Gallery Legacy Widget.
       
   887       // It can't be scrolled anyway.
       
   888       // TODO: Ideally, this should be fixed in core.
       
   889       event.target.contentDocument.body.style.overflow = 'hidden';
       
   890       setIsLoaded(true);
       
   891     },
       
   892     height: 100
       
   893   }))));
       
   894 }
       
   895 
       
   896 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/blocks/legacy-widget/edit/no-preview.js
       
   897 
       
   898 
       
   899 /**
       
   900  * WordPress dependencies
       
   901  */
       
   902 
       
   903 function NoPreview({
       
   904   name
       
   905 }) {
       
   906   return Object(external_wp_element_["createElement"])("div", {
       
   907     className: "wp-block-legacy-widget__edit-no-preview"
       
   908   }, name && Object(external_wp_element_["createElement"])("h3", null, name), Object(external_wp_element_["createElement"])("p", null, Object(external_wp_i18n_["__"])('No preview available.')));
       
   909 }
       
   910 
       
   911 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/blocks/legacy-widget/edit/convert-to-blocks-button.js
       
   912 
       
   913 
       
   914 /**
       
   915  * WordPress dependencies
       
   916  */
       
   917 
       
   918 
       
   919 
       
   920 
       
   921 
       
   922 function ConvertToBlocksButton({
       
   923   clientId,
       
   924   rawInstance
       
   925 }) {
       
   926   const {
       
   927     replaceBlocks
       
   928   } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
       
   929   return Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarButton"], {
       
   930     onClick: () => {
       
   931       if (rawInstance.title) {
       
   932         replaceBlocks(clientId, [Object(external_wp_blocks_["createBlock"])('core/heading', {
       
   933           content: rawInstance.title
       
   934         }), ...Object(external_wp_blocks_["rawHandler"])({
       
   935           HTML: rawInstance.text
       
   936         })]);
       
   937       } else {
       
   938         replaceBlocks(clientId, Object(external_wp_blocks_["rawHandler"])({
       
   939           HTML: rawInstance.text
       
   940         }));
       
   941       }
       
   942     }
       
   943   }, Object(external_wp_i18n_["__"])('Convert to blocks'));
       
   944 }
       
   945 
       
   946 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/blocks/legacy-widget/edit/index.js
       
   947 
       
   948 
       
   949 /**
       
   950  * External dependencies
       
   951  */
       
   952 
       
   953 /**
       
   954  * WordPress dependencies
       
   955  */
       
   956 
       
   957 
       
   958 
       
   959 
       
   960 
       
   961 
       
   962 
       
   963 
       
   964 /**
       
   965  * Internal dependencies
       
   966  */
       
   967 
       
   968 
       
   969 
       
   970 
       
   971 
       
   972 
       
   973 
       
   974 function Edit(props) {
       
   975   const {
       
   976     id,
       
   977     idBase
       
   978   } = props.attributes;
       
   979   const {
       
   980     isWide = false
       
   981   } = props;
       
   982   const blockProps = Object(external_wp_blockEditor_["useBlockProps"])({
       
   983     className: classnames_default()({
       
   984       'is-wide-widget': isWide
       
   985     })
       
   986   });
       
   987   return Object(external_wp_element_["createElement"])("div", blockProps, !id && !idBase ? Object(external_wp_element_["createElement"])(Empty, props) : Object(external_wp_element_["createElement"])(NotEmpty, props));
       
   988 }
       
   989 
       
   990 function Empty({
       
   991   attributes: {
       
   992     id,
       
   993     idBase
       
   994   },
       
   995   setAttributes
       
   996 }) {
       
   997   return Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], {
       
   998     icon: Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockIcon"], {
       
   999       icon: library_brush
       
  1000     }),
       
  1001     label: Object(external_wp_i18n_["__"])('Legacy Widget')
       
  1002   }, Object(external_wp_element_["createElement"])(WidgetTypeSelector, {
       
  1003     selectedId: id !== null && id !== void 0 ? id : idBase,
       
  1004     onSelect: ({
       
  1005       selectedId,
       
  1006       isMulti
       
  1007     }) => {
       
  1008       if (!selectedId) {
       
  1009         setAttributes({
       
  1010           id: null,
       
  1011           idBase: null,
       
  1012           instance: null
       
  1013         });
       
  1014       } else if (isMulti) {
       
  1015         setAttributes({
       
  1016           id: null,
       
  1017           idBase: selectedId,
       
  1018           instance: {}
       
  1019         });
       
  1020       } else {
       
  1021         setAttributes({
       
  1022           id: selectedId,
       
  1023           idBase: null,
       
  1024           instance: null
       
  1025         });
       
  1026       }
       
  1027     }
       
  1028   }));
       
  1029 }
       
  1030 
       
  1031 function NotEmpty({
       
  1032   attributes: {
       
  1033     id,
       
  1034     idBase,
       
  1035     instance
       
  1036   },
       
  1037   setAttributes,
       
  1038   clientId,
       
  1039   isSelected,
       
  1040   isWide = false
       
  1041 }) {
       
  1042   const [hasPreview, setHasPreview] = Object(external_wp_element_["useState"])(null);
       
  1043   const {
       
  1044     widgetType,
       
  1045     hasResolvedWidgetType,
       
  1046     isNavigationMode
       
  1047   } = Object(external_wp_data_["useSelect"])(select => {
       
  1048     const widgetTypeId = id !== null && id !== void 0 ? id : idBase;
       
  1049     return {
       
  1050       widgetType: select(external_wp_coreData_["store"]).getWidgetType(widgetTypeId),
       
  1051       hasResolvedWidgetType: select(external_wp_coreData_["store"]).hasFinishedResolution('getWidgetType', [widgetTypeId]),
       
  1052       isNavigationMode: select(external_wp_blockEditor_["store"]).isNavigationMode()
       
  1053     };
       
  1054   }, [id, idBase]);
       
  1055   const setInstance = Object(external_wp_element_["useCallback"])(nextInstance => {
       
  1056     setAttributes({
       
  1057       instance: nextInstance
       
  1058     });
       
  1059   }, []);
       
  1060 
       
  1061   if (!widgetType && hasResolvedWidgetType) {
       
  1062     return Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], {
       
  1063       icon: Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockIcon"], {
       
  1064         icon: library_brush
       
  1065       }),
       
  1066       label: Object(external_wp_i18n_["__"])('Legacy Widget')
       
  1067     }, Object(external_wp_i18n_["__"])('Widget is missing.'));
       
  1068   }
       
  1069 
       
  1070   if (!hasResolvedWidgetType) {
       
  1071     return Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], null, Object(external_wp_element_["createElement"])(external_wp_components_["Spinner"], null));
       
  1072   }
       
  1073 
       
  1074   const mode = idBase && (isNavigationMode || !isSelected) ? 'preview' : 'edit';
       
  1075   return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, idBase === 'text' && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockControls"], {
       
  1076     group: "other"
       
  1077   }, Object(external_wp_element_["createElement"])(ConvertToBlocksButton, {
       
  1078     clientId: clientId,
       
  1079     rawInstance: instance.raw
       
  1080   })), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["InspectorControls"], null, Object(external_wp_element_["createElement"])(InspectorCard, {
       
  1081     name: widgetType.name,
       
  1082     description: widgetType.description
       
  1083   })), Object(external_wp_element_["createElement"])(Form, {
       
  1084     title: widgetType.name,
       
  1085     isVisible: mode === 'edit',
       
  1086     id: id,
       
  1087     idBase: idBase,
       
  1088     instance: instance,
       
  1089     isWide: isWide,
       
  1090     onChangeInstance: setInstance,
       
  1091     onChangeHasPreview: setHasPreview
       
  1092   }), idBase && Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, hasPreview === null && mode === 'preview' && Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], null, Object(external_wp_element_["createElement"])(external_wp_components_["Spinner"], null)), hasPreview === true && Object(external_wp_element_["createElement"])(Preview, {
       
  1093     idBase: idBase,
       
  1094     instance: instance,
       
  1095     isVisible: mode === 'preview'
       
  1096   }), hasPreview === false && mode === 'preview' && Object(external_wp_element_["createElement"])(NoPreview, {
       
  1097     name: widgetType.name
       
  1098   })));
       
  1099 }
       
  1100 
       
  1101 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/blocks/legacy-widget/transforms.js
       
  1102 /**
       
  1103  * WordPress dependencies
       
  1104  */
       
  1105 
       
  1106 const legacyWidgetTransforms = [{
       
  1107   block: 'core/calendar',
       
  1108   widget: 'calendar'
       
  1109 }, {
       
  1110   block: 'core/search',
       
  1111   widget: 'search'
       
  1112 }, {
       
  1113   block: 'core/html',
       
  1114   widget: 'custom_html',
       
  1115   transform: ({
       
  1116     content
       
  1117   }) => ({
       
  1118     content
       
  1119   })
       
  1120 }, {
       
  1121   block: 'core/archives',
       
  1122   widget: 'archives',
       
  1123   transform: ({
       
  1124     count,
       
  1125     dropdown
       
  1126   }) => {
       
  1127     return {
       
  1128       displayAsDropdown: !!dropdown,
       
  1129       showPostCounts: !!count
       
  1130     };
       
  1131   }
       
  1132 }, {
       
  1133   block: 'core/latest-posts',
       
  1134   widget: 'recent-posts',
       
  1135   transform: ({
       
  1136     show_date: displayPostDate,
       
  1137     number
       
  1138   }) => {
       
  1139     return {
       
  1140       displayPostDate: !!displayPostDate,
       
  1141       postsToShow: number
       
  1142     };
       
  1143   }
       
  1144 }, {
       
  1145   block: 'core/latest-comments',
       
  1146   widget: 'recent-comments',
       
  1147   transform: ({
       
  1148     number
       
  1149   }) => {
       
  1150     return {
       
  1151       commentsToShow: number
       
  1152     };
       
  1153   }
       
  1154 }, {
       
  1155   block: 'core/tag-cloud',
       
  1156   widget: 'tag_cloud',
       
  1157   transform: ({
       
  1158     taxonomy,
       
  1159     count
       
  1160   }) => {
       
  1161     return {
       
  1162       showTagCounts: !!count,
       
  1163       taxonomy
       
  1164     };
       
  1165   }
       
  1166 }, {
       
  1167   block: 'core/categories',
       
  1168   widget: 'categories',
       
  1169   transform: ({
       
  1170     count,
       
  1171     dropdown,
       
  1172     hierarchical
       
  1173   }) => {
       
  1174     return {
       
  1175       displayAsDropdown: !!dropdown,
       
  1176       showPostCounts: !!count,
       
  1177       showHierarchy: !!hierarchical
       
  1178     };
       
  1179   }
       
  1180 }, {
       
  1181   block: 'core/audio',
       
  1182   widget: 'media_audio',
       
  1183   transform: ({
       
  1184     url,
       
  1185     preload,
       
  1186     loop,
       
  1187     attachment_id: id
       
  1188   }) => {
       
  1189     return {
       
  1190       src: url,
       
  1191       id,
       
  1192       preload,
       
  1193       loop
       
  1194     };
       
  1195   }
       
  1196 }, {
       
  1197   block: 'core/video',
       
  1198   widget: 'media_video',
       
  1199   transform: ({
       
  1200     url,
       
  1201     preload,
       
  1202     loop,
       
  1203     attachment_id: id
       
  1204   }) => {
       
  1205     return {
       
  1206       src: url,
       
  1207       id,
       
  1208       preload,
       
  1209       loop
       
  1210     };
       
  1211   }
       
  1212 }, {
       
  1213   block: 'core/image',
       
  1214   widget: 'media_image',
       
  1215   transform: ({
       
  1216     alt,
       
  1217     attachment_id: id,
       
  1218     caption,
       
  1219     height,
       
  1220     link_classes: linkClass,
       
  1221     link_rel: rel,
       
  1222     link_target_blank: targetBlack,
       
  1223     link_type: linkDestination,
       
  1224     link_url: link,
       
  1225     size: sizeSlug,
       
  1226     url,
       
  1227     width
       
  1228   }) => {
       
  1229     return {
       
  1230       alt,
       
  1231       caption,
       
  1232       height,
       
  1233       id,
       
  1234       link,
       
  1235       linkClass,
       
  1236       linkDestination,
       
  1237       linkTarget: targetBlack ? '_blank' : undefined,
       
  1238       rel,
       
  1239       sizeSlug,
       
  1240       url,
       
  1241       width
       
  1242     };
       
  1243   }
       
  1244 }, {
       
  1245   block: 'core/gallery',
       
  1246   widget: 'media_gallery',
       
  1247   transform: ({
       
  1248     ids,
       
  1249     link_type: linkTo,
       
  1250     size,
       
  1251     number
       
  1252   }) => {
       
  1253     return {
       
  1254       ids,
       
  1255       columns: number,
       
  1256       linkTo,
       
  1257       sizeSlug: size,
       
  1258       images: ids.map(id => ({
       
  1259         id
       
  1260       }))
       
  1261     };
       
  1262   }
       
  1263 }, {
       
  1264   block: 'core/rss',
       
  1265   widget: 'rss',
       
  1266   transform: ({
       
  1267     url,
       
  1268     show_author: displayAuthor,
       
  1269     show_date: displayDate,
       
  1270     show_summary: displayExcerpt,
       
  1271     items
       
  1272   }) => {
       
  1273     return {
       
  1274       feedURL: url,
       
  1275       displayAuthor: !!displayAuthor,
       
  1276       displayDate: !!displayDate,
       
  1277       displayExcerpt: !!displayExcerpt,
       
  1278       itemsToShow: items
       
  1279     };
       
  1280   }
       
  1281 }].map(({
       
  1282   block,
       
  1283   widget,
       
  1284   transform
       
  1285 }) => {
       
  1286   return {
       
  1287     type: 'block',
       
  1288     blocks: [block],
       
  1289     isMatch: ({
       
  1290       idBase,
       
  1291       instance
       
  1292     }) => {
       
  1293       return idBase === widget && !!(instance !== null && instance !== void 0 && instance.raw);
       
  1294     },
       
  1295     transform: ({
       
  1296       instance
       
  1297     }) => {
       
  1298       var _instance$raw;
       
  1299 
       
  1300       const transformedBlock = Object(external_wp_blocks_["createBlock"])(block, transform ? transform(instance.raw) : undefined);
       
  1301 
       
  1302       if (!((_instance$raw = instance.raw) !== null && _instance$raw !== void 0 && _instance$raw.title)) {
       
  1303         return transformedBlock;
       
  1304       }
       
  1305 
       
  1306       return [Object(external_wp_blocks_["createBlock"])('core/heading', {
       
  1307         content: instance.raw.title
       
  1308       }), transformedBlock];
       
  1309     }
       
  1310   };
       
  1311 });
       
  1312 const transforms = {
       
  1313   to: legacyWidgetTransforms
       
  1314 };
       
  1315 /* harmony default export */ var legacy_widget_transforms = (transforms);
       
  1316 
       
  1317 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/blocks/legacy-widget/index.js
       
  1318 /**
       
  1319  * WordPress dependencies
       
  1320  */
       
  1321 
       
  1322 /**
       
  1323  * Internal dependencies
       
  1324  */
       
  1325 
       
  1326 const legacy_widget_metadata = {
       
  1327   apiVersion: 2,
       
  1328   name: "core/legacy-widget",
       
  1329   title: "Legacy Widget",
       
  1330   category: "widgets",
       
  1331   description: "Display a legacy widget.",
       
  1332   textdomain: "default",
       
  1333   attributes: {
       
  1334     id: {
       
  1335       type: "string",
       
  1336       "default": null
       
  1337     },
       
  1338     idBase: {
       
  1339       type: "string",
       
  1340       "default": null
       
  1341     },
       
  1342     instance: {
       
  1343       type: "object",
       
  1344       "default": null
       
  1345     }
       
  1346   },
       
  1347   supports: {
       
  1348     html: false,
       
  1349     customClassName: false,
       
  1350     reusable: false
       
  1351   },
       
  1352   editorStyle: "wp-block-legacy-widget-editor"
       
  1353 };
       
  1354 
       
  1355 
       
  1356 const {
       
  1357   name: legacy_widget_name
       
  1358 } = legacy_widget_metadata;
       
  1359 
       
  1360 const legacy_widget_settings = {
       
  1361   icon: library_widget,
       
  1362   edit: Edit,
       
  1363   transforms: legacy_widget_transforms
       
  1364 };
       
  1365 
       
  1366 // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/move-to.js
       
  1367 
       
  1368 
       
  1369 /**
       
  1370  * WordPress dependencies
       
  1371  */
       
  1372 
       
  1373 const moveTo = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
       
  1374   xmlns: "http://www.w3.org/2000/svg",
       
  1375   viewBox: "0 0 24 24"
       
  1376 }, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
       
  1377   d: "M19.75 9c0-1.257-.565-2.197-1.39-2.858-.797-.64-1.827-1.017-2.815-1.247-1.802-.42-3.703-.403-4.383-.396L11 4.5V6l.177-.001c.696-.006 2.416-.02 4.028.356.887.207 1.67.518 2.216.957.52.416.829.945.829 1.688 0 .592-.167.966-.407 1.23-.255.281-.656.508-1.236.674-1.19.34-2.82.346-4.607.346h-.077c-1.692 0-3.527 0-4.942.404-.732.209-1.424.545-1.935 1.108-.526.579-.796 1.33-.796 2.238 0 1.257.565 2.197 1.39 2.858.797.64 1.827 1.017 2.815 1.247 1.802.42 3.703.403 4.383.396L13 19.5h.714V22L18 18.5 13.714 15v3H13l-.177.001c-.696.006-2.416.02-4.028-.356-.887-.207-1.67-.518-2.216-.957-.52-.416-.829-.945-.829-1.688 0-.592.167-.966.407-1.23.255-.281.656-.508 1.237-.674 1.189-.34 2.819-.346 4.606-.346h.077c1.692 0 3.527 0 4.941-.404.732-.209 1.425-.545 1.936-1.108.526-.579.796-1.33.796-2.238z"
       
  1378 }));
       
  1379 /* harmony default export */ var move_to = (moveTo);
       
  1380 
       
  1381 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/components/move-to-widget-area/index.js
       
  1382 
       
  1383 
       
  1384 /**
       
  1385  * WordPress dependencies
       
  1386  */
       
  1387 
       
  1388 
       
  1389 
       
  1390 function MoveToWidgetArea({
       
  1391   currentWidgetAreaId,
       
  1392   widgetAreas,
       
  1393   onSelect
       
  1394 }) {
       
  1395   return Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarGroup"], null, Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarItem"], null, toggleProps => Object(external_wp_element_["createElement"])(external_wp_components_["DropdownMenu"], {
       
  1396     icon: move_to,
       
  1397     label: Object(external_wp_i18n_["__"])('Move to widget area'),
       
  1398     toggleProps: toggleProps
       
  1399   }, ({
       
  1400     onClose
       
  1401   }) => Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
       
  1402     label: Object(external_wp_i18n_["__"])('Move to')
       
  1403   }, Object(external_wp_element_["createElement"])(external_wp_components_["MenuItemsChoice"], {
       
  1404     choices: widgetAreas.map(widgetArea => ({
       
  1405       value: widgetArea.id,
       
  1406       label: widgetArea.name,
       
  1407       info: widgetArea.description
       
  1408     })),
       
  1409     value: currentWidgetAreaId,
       
  1410     onSelect: value => {
       
  1411       onSelect(value);
       
  1412       onClose();
       
  1413     }
       
  1414   })))));
       
  1415 }
       
  1416 
       
  1417 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/components/index.js
       
  1418 
       
  1419 
       
  1420 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/utils.js
       
  1421 // @ts-check
       
  1422 
       
  1423 /**
       
  1424  * Get the internal widget id from block.
       
  1425  *
       
  1426  * @typedef  {Object} Attributes
       
  1427  * @property {string} __internalWidgetId The internal widget id.
       
  1428  * @typedef  {Object} Block
       
  1429  * @property {Attributes} attributes The attributes of the block.
       
  1430  *
       
  1431  * @param {Block} block The block.
       
  1432  * @return {string} The internal widget id.
       
  1433  */
       
  1434 function getWidgetIdFromBlock(block) {
       
  1435   return block.attributes.__internalWidgetId;
       
  1436 }
       
  1437 /**
       
  1438  * Add internal widget id to block's attributes.
       
  1439  *
       
  1440  * @param {Block} block The block.
       
  1441  * @param {string} widgetId The widget id.
       
  1442  * @return {Block} The updated block.
       
  1443  */
       
  1444 
       
  1445 function addWidgetIdToBlock(block, widgetId) {
       
  1446   return { ...block,
       
  1447     attributes: { ...(block.attributes || {}),
       
  1448       __internalWidgetId: widgetId
       
  1449     }
       
  1450   };
       
  1451 }
       
  1452 
       
  1453 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/register-legacy-widget-variations.js
       
  1454 /**
       
  1455  * WordPress dependencies
       
  1456  */
       
  1457 
       
  1458 
       
  1459 
       
  1460 function registerLegacyWidgetVariations(settings) {
       
  1461   const unsubscribe = Object(external_wp_data_["subscribe"])(() => {
       
  1462     var _settings$widgetTypes, _select$getWidgetType;
       
  1463 
       
  1464     const hiddenIds = (_settings$widgetTypes = settings === null || settings === void 0 ? void 0 : settings.widgetTypesToHideFromLegacyWidgetBlock) !== null && _settings$widgetTypes !== void 0 ? _settings$widgetTypes : [];
       
  1465     const widgetTypes = (_select$getWidgetType = Object(external_wp_data_["select"])(external_wp_coreData_["store"]).getWidgetTypes({
       
  1466       per_page: -1
       
  1467     })) === null || _select$getWidgetType === void 0 ? void 0 : _select$getWidgetType.filter(widgetType => !hiddenIds.includes(widgetType.id));
       
  1468 
       
  1469     if (widgetTypes) {
       
  1470       unsubscribe();
       
  1471       Object(external_wp_data_["dispatch"])(external_wp_blocks_["store"]).addBlockVariations('core/legacy-widget', widgetTypes.map(widgetType => ({
       
  1472         name: widgetType.id,
       
  1473         title: widgetType.name,
       
  1474         description: widgetType.description,
       
  1475         attributes: widgetType.is_multi ? {
       
  1476           idBase: widgetType.id,
       
  1477           instance: {}
       
  1478         } : {
       
  1479           id: widgetType.id
       
  1480         }
       
  1481       })));
       
  1482     }
       
  1483   });
       
  1484 }
       
  1485 
       
  1486 // CONCATENATED MODULE: ./node_modules/@wordpress/widgets/build-module/index.js
       
  1487 /**
       
  1488  * WordPress dependencies
       
  1489  */
       
  1490 
       
  1491 /**
       
  1492  * Internal dependencies
       
  1493  */
       
  1494 
       
  1495 
       
  1496 
       
  1497 
       
  1498 /**
       
  1499  * Registers the Legacy Widget block.
       
  1500  *
       
  1501  * Note that for the block to be useful, any scripts required by a widget must
       
  1502  * be loaded into the page.
       
  1503  *
       
  1504  * @see https://developer.wordpress.org/block-editor/how-to-guides/widgets/legacy-widget-block/
       
  1505  */
       
  1506 
       
  1507 function registerLegacyWidgetBlock() {
       
  1508   const {
       
  1509     metadata,
       
  1510     settings,
       
  1511     name
       
  1512   } = legacy_widget_namespaceObject;
       
  1513   Object(external_wp_blocks_["registerBlockType"])({
       
  1514     name,
       
  1515     ...metadata
       
  1516   }, settings);
       
  1517 }
       
  1518 
       
  1519 
       
  1520 
       
  1521 /***/ }),
       
  1522 
       
  1523 /***/ "GRId":
       
  1524 /***/ (function(module, exports) {
       
  1525 
       
  1526 (function() { module.exports = window["wp"]["element"]; }());
       
  1527 
       
  1528 /***/ }),
       
  1529 
       
  1530 /***/ "HSyU":
       
  1531 /***/ (function(module, exports) {
       
  1532 
       
  1533 (function() { module.exports = window["wp"]["blocks"]; }());
       
  1534 
       
  1535 /***/ }),
       
  1536 
       
  1537 /***/ "K9lf":
       
  1538 /***/ (function(module, exports) {
       
  1539 
       
  1540 (function() { module.exports = window["wp"]["compose"]; }());
       
  1541 
       
  1542 /***/ }),
       
  1543 
       
  1544 /***/ "Mmq9":
       
  1545 /***/ (function(module, exports) {
       
  1546 
       
  1547 (function() { module.exports = window["wp"]["url"]; }());
       
  1548 
       
  1549 /***/ }),
       
  1550 
       
  1551 /***/ "TSYQ":
       
  1552 /***/ (function(module, exports, __webpack_require__) {
       
  1553 
       
  1554 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
       
  1555   Copyright (c) 2018 Jed Watson.
       
  1556   Licensed under the MIT License (MIT), see
       
  1557   http://jedwatson.github.io/classnames
       
  1558 */
       
  1559 /* global define */
       
  1560 
       
  1561 (function () {
       
  1562 	'use strict';
       
  1563 
       
  1564 	var hasOwn = {}.hasOwnProperty;
       
  1565 
       
  1566 	function classNames() {
       
  1567 		var classes = [];
       
  1568 
       
  1569 		for (var i = 0; i < arguments.length; i++) {
       
  1570 			var arg = arguments[i];
       
  1571 			if (!arg) continue;
       
  1572 
       
  1573 			var argType = typeof arg;
       
  1574 
       
  1575 			if (argType === 'string' || argType === 'number') {
       
  1576 				classes.push(arg);
       
  1577 			} else if (Array.isArray(arg)) {
       
  1578 				if (arg.length) {
       
  1579 					var inner = classNames.apply(null, arg);
       
  1580 					if (inner) {
       
  1581 						classes.push(inner);
       
  1582 					}
       
  1583 				}
       
  1584 			} else if (argType === 'object') {
       
  1585 				if (arg.toString === Object.prototype.toString) {
       
  1586 					for (var key in arg) {
       
  1587 						if (hasOwn.call(arg, key) && arg[key]) {
       
  1588 							classes.push(key);
       
  1589 						}
       
  1590 					}
       
  1591 				} else {
       
  1592 					classes.push(arg.toString());
       
  1593 				}
       
  1594 			}
       
  1595 		}
       
  1596 
       
  1597 		return classes.join(' ');
       
  1598 	}
       
  1599 
       
  1600 	if ( true && module.exports) {
       
  1601 		classNames.default = classNames;
       
  1602 		module.exports = classNames;
       
  1603 	} else if (true) {
       
  1604 		// register as 'classnames', consistent with npm package name
       
  1605 		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
       
  1606 			return classNames;
       
  1607 		}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
       
  1608 				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
       
  1609 	} else {}
       
  1610 }());
       
  1611 
       
  1612 
       
  1613 /***/ }),
       
  1614 
       
  1615 /***/ "Tqx9":
       
  1616 /***/ (function(module, exports) {
       
  1617 
       
  1618 (function() { module.exports = window["wp"]["primitives"]; }());
       
  1619 
       
  1620 /***/ }),
       
  1621 
       
  1622 /***/ "YLtl":
       
  1623 /***/ (function(module, exports) {
       
  1624 
       
  1625 (function() { module.exports = window["lodash"]; }());
       
  1626 
       
  1627 /***/ }),
       
  1628 
       
  1629 /***/ "axFQ":
       
  1630 /***/ (function(module, exports) {
       
  1631 
       
  1632 (function() { module.exports = window["wp"]["blockEditor"]; }());
       
  1633 
       
  1634 /***/ }),
       
  1635 
       
  1636 /***/ "jZUy":
       
  1637 /***/ (function(module, exports) {
       
  1638 
       
  1639 (function() { module.exports = window["wp"]["coreData"]; }());
       
  1640 
       
  1641 /***/ }),
       
  1642 
       
  1643 /***/ "l3Sj":
       
  1644 /***/ (function(module, exports) {
       
  1645 
       
  1646 (function() { module.exports = window["wp"]["i18n"]; }());
       
  1647 
       
  1648 /***/ }),
       
  1649 
       
  1650 /***/ "onLe":
       
  1651 /***/ (function(module, exports) {
       
  1652 
       
  1653 (function() { module.exports = window["wp"]["notices"]; }());
       
  1654 
       
  1655 /***/ }),
       
  1656 
       
  1657 /***/ "tI+e":
       
  1658 /***/ (function(module, exports) {
       
  1659 
       
  1660 (function() { module.exports = window["wp"]["components"]; }());
       
  1661 
       
  1662 /***/ }),
       
  1663 
       
  1664 /***/ "ywyh":
       
  1665 /***/ (function(module, exports) {
       
  1666 
       
  1667 (function() { module.exports = window["wp"]["apiFetch"]; }());
       
  1668 
       
  1669 /***/ })
       
  1670 
       
  1671 /******/ });