wp/wp-includes/js/dist/media-utils.js
changeset 16 a86126ab1dd4
child 18 be944660c56a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/wp-includes/js/dist/media-utils.js	Tue Dec 15 13:49:49 2020 +0100
@@ -0,0 +1,1327 @@
+this["wp"] = this["wp"] || {}; this["wp"]["mediaUtils"] =
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+/******/
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId]) {
+/******/ 			return installedModules[moduleId].exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			i: moduleId,
+/******/ 			l: false,
+/******/ 			exports: {}
+/******/ 		};
+/******/
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ 		// Flag the module as loaded
+/******/ 		module.l = true;
+/******/
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/
+/******/
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+/******/
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+/******/
+/******/ 	// define getter function for harmony exports
+/******/ 	__webpack_require__.d = function(exports, name, getter) {
+/******/ 		if(!__webpack_require__.o(exports, name)) {
+/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ 		}
+/******/ 	};
+/******/
+/******/ 	// define __esModule on exports
+/******/ 	__webpack_require__.r = function(exports) {
+/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 		}
+/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 	};
+/******/
+/******/ 	// create a fake namespace object
+/******/ 	// mode & 1: value is a module id, require it
+/******/ 	// mode & 2: merge all properties of value into the ns
+/******/ 	// mode & 4: return value when already ns object
+/******/ 	// mode & 8|1: behave like require
+/******/ 	__webpack_require__.t = function(value, mode) {
+/******/ 		if(mode & 1) value = __webpack_require__(value);
+/******/ 		if(mode & 8) return value;
+/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ 		var ns = Object.create(null);
+/******/ 		__webpack_require__.r(ns);
+/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ 		return ns;
+/******/ 	};
+/******/
+/******/ 	// getDefaultExport function for compatibility with non-harmony modules
+/******/ 	__webpack_require__.n = function(module) {
+/******/ 		var getter = module && module.__esModule ?
+/******/ 			function getDefault() { return module['default']; } :
+/******/ 			function getModuleExports() { return module; };
+/******/ 		__webpack_require__.d(getter, 'a', getter);
+/******/ 		return getter;
+/******/ 	};
+/******/
+/******/ 	// Object.prototype.hasOwnProperty.call
+/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+/******/
+/******/
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(__webpack_require__.s = 460);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 0:
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["element"]; }());
+
+/***/ }),
+
+/***/ 1:
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["i18n"]; }());
+
+/***/ }),
+
+/***/ 12:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assertThisInitialized; });
+function _assertThisInitialized(self) {
+  if (self === void 0) {
+    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+  }
+
+  return self;
+}
+
+/***/ }),
+
+/***/ 14:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _slicedToArray; });
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
+var arrayWithHoles = __webpack_require__(38);
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
+function _iterableToArrayLimit(arr, i) {
+  if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
+  var _arr = [];
+  var _n = true;
+  var _d = false;
+  var _e = undefined;
+
+  try {
+    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
+      _arr.push(_s.value);
+
+      if (i && _arr.length === i) break;
+    }
+  } catch (err) {
+    _d = true;
+    _e = err;
+  } finally {
+    try {
+      if (!_n && _i["return"] != null) _i["return"]();
+    } finally {
+      if (_d) throw _e;
+    }
+  }
+
+  return _arr;
+}
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
+var unsupportedIterableToArray = __webpack_require__(29);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
+var nonIterableRest = __webpack_require__(39);
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
+
+
+
+
+function _slicedToArray(arr, i) {
+  return Object(arrayWithHoles["a" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray["a" /* default */])(arr, i) || Object(nonIterableRest["a" /* default */])();
+}
+
+/***/ }),
+
+/***/ 16:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _getPrototypeOf; });
+function _getPrototypeOf(o) {
+  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
+    return o.__proto__ || Object.getPrototypeOf(o);
+  };
+  return _getPrototypeOf(o);
+}
+
+/***/ }),
+
+/***/ 18:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _toConsumableArray; });
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
+var arrayLikeToArray = __webpack_require__(26);
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
+
+function _arrayWithoutHoles(arr) {
+  if (Array.isArray(arr)) return Object(arrayLikeToArray["a" /* default */])(arr);
+}
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
+var iterableToArray = __webpack_require__(35);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
+var unsupportedIterableToArray = __webpack_require__(29);
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
+function _nonIterableSpread() {
+  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+}
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
+
+
+
+
+function _toConsumableArray(arr) {
+  return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || Object(unsupportedIterableToArray["a" /* default */])(arr) || _nonIterableSpread();
+}
+
+/***/ }),
+
+/***/ 19:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _createClass; });
+function _defineProperties(target, props) {
+  for (var i = 0; i < props.length; i++) {
+    var descriptor = props[i];
+    descriptor.enumerable = descriptor.enumerable || false;
+    descriptor.configurable = true;
+    if ("value" in descriptor) descriptor.writable = true;
+    Object.defineProperty(target, descriptor.key, descriptor);
+  }
+}
+
+function _createClass(Constructor, protoProps, staticProps) {
+  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+  if (staticProps) _defineProperties(Constructor, staticProps);
+  return Constructor;
+}
+
+/***/ }),
+
+/***/ 2:
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["lodash"]; }());
+
+/***/ }),
+
+/***/ 20:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _classCallCheck; });
+function _classCallCheck(instance, Constructor) {
+  if (!(instance instanceof Constructor)) {
+    throw new TypeError("Cannot call a class as a function");
+  }
+}
+
+/***/ }),
+
+/***/ 22:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _inherits; });
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
+function _setPrototypeOf(o, p) {
+  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+    o.__proto__ = p;
+    return o;
+  };
+
+  return _setPrototypeOf(o, p);
+}
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js
+
+function _inherits(subClass, superClass) {
+  if (typeof superClass !== "function" && superClass !== null) {
+    throw new TypeError("Super expression must either be null or a function");
+  }
+
+  subClass.prototype = Object.create(superClass && superClass.prototype, {
+    constructor: {
+      value: subClass,
+      writable: true,
+      configurable: true
+    }
+  });
+  if (superClass) _setPrototypeOf(subClass, superClass);
+}
+
+/***/ }),
+
+/***/ 23:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _possibleConstructorReturn; });
+/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
+/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
+
+
+function _possibleConstructorReturn(self, call) {
+  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(call) === "object" || typeof call === "function")) {
+    return call;
+  }
+
+  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(self);
+}
+
+/***/ }),
+
+/***/ 24:
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["regeneratorRuntime"]; }());
+
+/***/ }),
+
+/***/ 26:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayLikeToArray; });
+function _arrayLikeToArray(arr, len) {
+  if (len == null || len > arr.length) len = arr.length;
+
+  for (var i = 0, arr2 = new Array(len); i < len; i++) {
+    arr2[i] = arr[i];
+  }
+
+  return arr2;
+}
+
+/***/ }),
+
+/***/ 29:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _unsupportedIterableToArray; });
+/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);
+
+function _unsupportedIterableToArray(o, minLen) {
+  if (!o) return;
+  if (typeof o === "string") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(o, minLen);
+  var n = Object.prototype.toString.call(o).slice(8, -1);
+  if (n === "Object" && o.constructor) n = o.constructor.name;
+  if (n === "Map" || n === "Set") return Array.from(o);
+  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(o, minLen);
+}
+
+/***/ }),
+
+/***/ 35:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _iterableToArray; });
+function _iterableToArray(iter) {
+  if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
+}
+
+/***/ }),
+
+/***/ 38:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayWithHoles; });
+function _arrayWithHoles(arr) {
+  if (Array.isArray(arr)) return arr;
+}
+
+/***/ }),
+
+/***/ 39:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _nonIterableRest; });
+function _nonIterableRest() {
+  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+}
+
+/***/ }),
+
+/***/ 40:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _typeof; });
+function _typeof(obj) {
+  "@babel/helpers - typeof";
+
+  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+    _typeof = function _typeof(obj) {
+      return typeof obj;
+    };
+  } else {
+    _typeof = function _typeof(obj) {
+      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+    };
+  }
+
+  return _typeof(obj);
+}
+
+/***/ }),
+
+/***/ 44:
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["blob"]; }());
+
+/***/ }),
+
+/***/ 45:
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["apiFetch"]; }());
+
+/***/ }),
+
+/***/ 460:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "MediaUpload", function() { return /* reexport */ media_upload; });
+__webpack_require__.d(__webpack_exports__, "uploadMedia", function() { return /* reexport */ uploadMedia; });
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
+var classCallCheck = __webpack_require__(20);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
+var createClass = __webpack_require__(19);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
+var assertThisInitialized = __webpack_require__(12);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
+var possibleConstructorReturn = __webpack_require__(23);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
+var getPrototypeOf = __webpack_require__(16);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
+var inherits = __webpack_require__(22);
+
+// EXTERNAL MODULE: external {"this":"lodash"}
+var external_this_lodash_ = __webpack_require__(2);
+
+// EXTERNAL MODULE: external {"this":["wp","element"]}
+var external_this_wp_element_ = __webpack_require__(0);
+
+// EXTERNAL MODULE: external {"this":["wp","i18n"]}
+var external_this_wp_i18n_ = __webpack_require__(1);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/components/media-upload/index.js
+
+
+
+
+
+
+
+function _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+var _window = window,
+    wp = _window.wp;
+var DEFAULT_EMPTY_GALLERY = [];
+/**
+ * Prepares the Featured Image toolbars and frames.
+ *
+ * @return {wp.media.view.MediaFrame.Select} The default media workflow.
+ */
+
+var getFeaturedImageMediaFrame = function getFeaturedImageMediaFrame() {
+  return wp.media.view.MediaFrame.Select.extend({
+    /**
+     * Enables the Set Featured Image Button.
+     *
+     * @param {Object} toolbar toolbar for featured image state
+     * @return {void}
+     */
+    featuredImageToolbar: function featuredImageToolbar(toolbar) {
+      this.createSelectToolbar(toolbar, {
+        text: wp.media.view.l10n.setFeaturedImage,
+        state: this.options.state
+      });
+    },
+
+    /**
+     * Handle the edit state requirements of selected media item.
+     *
+     * @return {void}
+     */
+    editState: function editState() {
+      var selection = this.state('featured-image').get('selection');
+      var view = new wp.media.view.EditImage({
+        model: selection.single(),
+        controller: this
+      }).render(); // Set the view to the EditImage frame using the selected image.
+
+      this.content.set(view); // After bringing in the frame, load the actual editor via an ajax call.
+
+      view.loadEditor();
+    },
+
+    /**
+     * Create the default states.
+     *
+     * @return {void}
+     */
+    createStates: function createStates() {
+      this.on('toolbar:create:featured-image', this.featuredImageToolbar, this);
+      this.on('content:render:edit-image', this.editState, this);
+      this.states.add([new wp.media.controller.FeaturedImage(), new wp.media.controller.EditImage({
+        model: this.options.editImage
+      })]);
+    }
+  });
+};
+/**
+ * Prepares the Gallery toolbars and frames.
+ *
+ * @return {wp.media.view.MediaFrame.Post} The default media workflow.
+ */
+
+
+var media_upload_getGalleryDetailsMediaFrame = function getGalleryDetailsMediaFrame() {
+  /**
+   * Custom gallery details frame.
+   *
+   * @see https://github.com/xwp/wp-core-media-widgets/blob/905edbccfc2a623b73a93dac803c5335519d7837/wp-admin/js/widgets/media-gallery-widget.js
+   * @class GalleryDetailsMediaFrame
+   * @class
+   */
+  return wp.media.view.MediaFrame.Post.extend({
+    /**
+     * Set up gallery toolbar.
+     *
+     * @return {void}
+     */
+    galleryToolbar: function galleryToolbar() {
+      var editing = this.state().get('editing');
+      this.toolbar.set(new wp.media.view.Toolbar({
+        controller: this,
+        items: {
+          insert: {
+            style: 'primary',
+            text: editing ? wp.media.view.l10n.updateGallery : wp.media.view.l10n.insertGallery,
+            priority: 80,
+            requires: {
+              library: true
+            },
+
+            /**
+             * @fires wp.media.controller.State#update
+             */
+            click: function click() {
+              var controller = this.controller,
+                  state = controller.state();
+              controller.close();
+              state.trigger('update', state.get('library')); // Restore and reset the default state.
+
+              controller.setState(controller.options.state);
+              controller.reset();
+            }
+          }
+        }
+      }));
+    },
+
+    /**
+     * Handle the edit state requirements of selected media item.
+     *
+     * @return {void}
+     */
+    editState: function editState() {
+      var selection = this.state('gallery').get('selection');
+      var view = new wp.media.view.EditImage({
+        model: selection.single(),
+        controller: this
+      }).render(); // Set the view to the EditImage frame using the selected image.
+
+      this.content.set(view); // After bringing in the frame, load the actual editor via an ajax call.
+
+      view.loadEditor();
+    },
+
+    /**
+     * Create the default states.
+     *
+     * @return {void}
+     */
+    createStates: function createStates() {
+      this.on('toolbar:create:main-gallery', this.galleryToolbar, this);
+      this.on('content:render:edit-image', this.editState, this);
+      this.states.add([new wp.media.controller.Library({
+        id: 'gallery',
+        title: wp.media.view.l10n.createGalleryTitle,
+        priority: 40,
+        toolbar: 'main-gallery',
+        filterable: 'uploaded',
+        multiple: 'add',
+        editable: false,
+        library: wp.media.query(Object(external_this_lodash_["defaults"])({
+          type: 'image'
+        }, this.options.library))
+      }), new wp.media.controller.EditImage({
+        model: this.options.editImage
+      }), new wp.media.controller.GalleryEdit({
+        library: this.options.selection,
+        editing: this.options.editing,
+        menu: 'gallery',
+        displaySettings: false,
+        multiple: true
+      }), new wp.media.controller.GalleryAdd()]);
+    }
+  });
+}; // the media library image object contains numerous attributes
+// we only need this set to display the image in the library
+
+
+var media_upload_slimImageObject = function slimImageObject(img) {
+  var attrSet = ['sizes', 'mime', 'type', 'subtype', 'id', 'url', 'alt', 'link', 'caption'];
+  return Object(external_this_lodash_["pick"])(img, attrSet);
+};
+
+var getAttachmentsCollection = function getAttachmentsCollection(ids) {
+  return wp.media.query({
+    order: 'ASC',
+    orderby: 'post__in',
+    post__in: ids,
+    posts_per_page: -1,
+    query: true,
+    type: 'image'
+  });
+};
+
+var media_upload_MediaUpload = /*#__PURE__*/function (_Component) {
+  Object(inherits["a" /* default */])(MediaUpload, _Component);
+
+  var _super = _createSuper(MediaUpload);
+
+  function MediaUpload(_ref) {
+    var _this;
+
+    var allowedTypes = _ref.allowedTypes,
+        _ref$gallery = _ref.gallery,
+        gallery = _ref$gallery === void 0 ? false : _ref$gallery,
+        _ref$unstableFeatured = _ref.unstableFeaturedImageFlow,
+        unstableFeaturedImageFlow = _ref$unstableFeatured === void 0 ? false : _ref$unstableFeatured,
+        modalClass = _ref.modalClass,
+        _ref$multiple = _ref.multiple,
+        multiple = _ref$multiple === void 0 ? false : _ref$multiple,
+        _ref$title = _ref.title,
+        title = _ref$title === void 0 ? Object(external_this_wp_i18n_["__"])('Select or Upload Media') : _ref$title;
+
+    Object(classCallCheck["a" /* default */])(this, MediaUpload);
+
+    _this = _super.apply(this, arguments);
+    _this.openModal = _this.openModal.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onOpen = _this.onOpen.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onSelect = _this.onSelect.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onUpdate = _this.onUpdate.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onClose = _this.onClose.bind(Object(assertThisInitialized["a" /* default */])(_this));
+
+    if (gallery) {
+      _this.buildAndSetGalleryFrame();
+    } else {
+      var frameConfig = {
+        title: title,
+        multiple: multiple
+      };
+
+      if (!!allowedTypes) {
+        frameConfig.library = {
+          type: allowedTypes
+        };
+      }
+
+      _this.frame = wp.media(frameConfig);
+    }
+
+    if (modalClass) {
+      _this.frame.$el.addClass(modalClass);
+    }
+
+    if (unstableFeaturedImageFlow) {
+      _this.buildAndSetFeatureImageFrame();
+    }
+
+    _this.initializeListeners();
+
+    return _this;
+  }
+
+  Object(createClass["a" /* default */])(MediaUpload, [{
+    key: "initializeListeners",
+    value: function initializeListeners() {
+      // When an image is selected in the media frame...
+      this.frame.on('select', this.onSelect);
+      this.frame.on('update', this.onUpdate);
+      this.frame.on('open', this.onOpen);
+      this.frame.on('close', this.onClose);
+    }
+    /**
+     * Sets the Gallery frame and initializes listeners.
+     *
+     * @return {void}
+     */
+
+  }, {
+    key: "buildAndSetGalleryFrame",
+    value: function buildAndSetGalleryFrame() {
+      var _this$props = this.props,
+          _this$props$addToGall = _this$props.addToGallery,
+          addToGallery = _this$props$addToGall === void 0 ? false : _this$props$addToGall,
+          allowedTypes = _this$props.allowedTypes,
+          _this$props$multiple = _this$props.multiple,
+          multiple = _this$props$multiple === void 0 ? false : _this$props$multiple,
+          _this$props$value = _this$props.value,
+          value = _this$props$value === void 0 ? DEFAULT_EMPTY_GALLERY : _this$props$value; // If the value did not changed there is no need to rebuild the frame,
+      // we can continue to use the existing one.
+
+      if (value === this.lastGalleryValue) {
+        return;
+      }
+
+      this.lastGalleryValue = value; // If a frame already existed remove it.
+
+      if (this.frame) {
+        this.frame.remove();
+      }
+
+      var currentState;
+
+      if (addToGallery) {
+        currentState = 'gallery-library';
+      } else {
+        currentState = value && value.length ? 'gallery-edit' : 'gallery';
+      }
+
+      if (!this.GalleryDetailsMediaFrame) {
+        this.GalleryDetailsMediaFrame = media_upload_getGalleryDetailsMediaFrame();
+      }
+
+      var attachments = getAttachmentsCollection(value);
+      var selection = new wp.media.model.Selection(attachments.models, {
+        props: attachments.props.toJSON(),
+        multiple: multiple
+      });
+      this.frame = new this.GalleryDetailsMediaFrame({
+        mimeType: allowedTypes,
+        state: currentState,
+        multiple: multiple,
+        selection: selection,
+        editing: value && value.length ? true : false
+      });
+      wp.media.frame = this.frame;
+      this.initializeListeners();
+    }
+    /**
+     * Initializes the Media Library requirements for the featured image flow.
+     *
+     * @return {void}
+     */
+
+  }, {
+    key: "buildAndSetFeatureImageFrame",
+    value: function buildAndSetFeatureImageFrame() {
+      var featuredImageFrame = getFeaturedImageMediaFrame();
+      var attachments = getAttachmentsCollection(this.props.value);
+      var selection = new wp.media.model.Selection(attachments.models, {
+        props: attachments.props.toJSON()
+      });
+      this.frame = new featuredImageFrame({
+        mimeType: this.props.allowedTypes,
+        state: 'featured-image',
+        multiple: this.props.multiple,
+        selection: selection,
+        editing: this.props.value ? true : false
+      });
+      wp.media.frame = this.frame;
+    }
+  }, {
+    key: "componentWillUnmount",
+    value: function componentWillUnmount() {
+      this.frame.remove();
+    }
+  }, {
+    key: "onUpdate",
+    value: function onUpdate(selections) {
+      var _this$props2 = this.props,
+          onSelect = _this$props2.onSelect,
+          _this$props2$multiple = _this$props2.multiple,
+          multiple = _this$props2$multiple === void 0 ? false : _this$props2$multiple;
+      var state = this.frame.state();
+      var selectedImages = selections || state.get('selection');
+
+      if (!selectedImages || !selectedImages.models.length) {
+        return;
+      }
+
+      if (multiple) {
+        onSelect(selectedImages.models.map(function (model) {
+          return media_upload_slimImageObject(model.toJSON());
+        }));
+      } else {
+        onSelect(media_upload_slimImageObject(selectedImages.models[0].toJSON()));
+      }
+    }
+  }, {
+    key: "onSelect",
+    value: function onSelect() {
+      var _this$props3 = this.props,
+          onSelect = _this$props3.onSelect,
+          _this$props3$multiple = _this$props3.multiple,
+          multiple = _this$props3$multiple === void 0 ? false : _this$props3$multiple; // Get media attachment details from the frame state
+
+      var attachment = this.frame.state().get('selection').toJSON();
+      onSelect(multiple ? attachment : attachment[0]);
+    }
+  }, {
+    key: "onOpen",
+    value: function onOpen() {
+      this.updateCollection();
+
+      if (!this.props.value) {
+        return;
+      }
+
+      if (!this.props.gallery) {
+        var selection = this.frame.state().get('selection');
+        Object(external_this_lodash_["castArray"])(this.props.value).forEach(function (id) {
+          selection.add(wp.media.attachment(id));
+        });
+      } // load the images so they are available in the media modal.
+
+
+      getAttachmentsCollection(Object(external_this_lodash_["castArray"])(this.props.value)).more();
+    }
+  }, {
+    key: "onClose",
+    value: function onClose() {
+      var onClose = this.props.onClose;
+
+      if (onClose) {
+        onClose();
+      }
+    }
+  }, {
+    key: "updateCollection",
+    value: function updateCollection() {
+      var frameContent = this.frame.content.get();
+
+      if (frameContent && frameContent.collection) {
+        var collection = frameContent.collection; // clean all attachments we have in memory.
+
+        collection.toArray().forEach(function (model) {
+          return model.trigger('destroy', model);
+        }); // reset has more flag, if library had small amount of items all items may have been loaded before.
+
+        collection.mirroring._hasMore = true; // request items
+
+        collection.more();
+      }
+    }
+  }, {
+    key: "openModal",
+    value: function openModal() {
+      if (this.props.gallery) {
+        this.buildAndSetGalleryFrame();
+      }
+
+      this.frame.open();
+    }
+  }, {
+    key: "render",
+    value: function render() {
+      return this.props.render({
+        open: this.openModal
+      });
+    }
+  }]);
+
+  return MediaUpload;
+}(external_this_wp_element_["Component"]);
+
+/* harmony default export */ var media_upload = (media_upload_MediaUpload);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/components/index.js
+
+
+// EXTERNAL MODULE: external {"this":"regeneratorRuntime"}
+var external_this_regeneratorRuntime_ = __webpack_require__(24);
+var external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
+var defineProperty = __webpack_require__(5);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
+var asyncToGenerator = __webpack_require__(50);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
+var toConsumableArray = __webpack_require__(18);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
+var slicedToArray = __webpack_require__(14);
+
+// EXTERNAL MODULE: external {"this":["wp","apiFetch"]}
+var external_this_wp_apiFetch_ = __webpack_require__(45);
+var external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);
+
+// EXTERNAL MODULE: external {"this":["wp","blob"]}
+var external_this_wp_blob_ = __webpack_require__(44);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/utils/upload-media.js
+
+
+
+
+
+
+
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Browsers may use unexpected mime types, and they differ from browser to browser.
+ * This function computes a flexible array of mime types from the mime type structured provided by the server.
+ * Converts { jpg|jpeg|jpe: "image/jpeg" } into [ "image/jpeg", "image/jpg", "image/jpeg", "image/jpe" ]
+ * The computation of this array instead of directly using the object,
+ * solves the problem in chrome where mp3 files have audio/mp3 as mime type instead of audio/mpeg.
+ * https://bugs.chromium.org/p/chromium/issues/detail?id=227004
+ *
+ * @param {?Object} wpMimeTypesObject Mime type object received from the server.
+ *                                    Extensions are keys separated by '|' and values are mime types associated with an extension.
+ *
+ * @return {?Array} An array of mime types or the parameter passed if it was "falsy".
+ */
+
+function getMimeTypesArray(wpMimeTypesObject) {
+  if (!wpMimeTypesObject) {
+    return wpMimeTypesObject;
+  }
+
+  return Object(external_this_lodash_["flatMap"])(wpMimeTypesObject, function (mime, extensionsString) {
+    var _mime$split = mime.split('/'),
+        _mime$split2 = Object(slicedToArray["a" /* default */])(_mime$split, 1),
+        type = _mime$split2[0];
+
+    var extensions = extensionsString.split('|');
+    return [mime].concat(Object(toConsumableArray["a" /* default */])(Object(external_this_lodash_["map"])(extensions, function (extension) {
+      return "".concat(type, "/").concat(extension);
+    })));
+  });
+}
+/**
+ *	Media Upload is used by audio, image, gallery, video, and file blocks to
+ *	handle uploading a media file when a file upload button is activated.
+ *
+ *	TODO: future enhancement to add an upload indicator.
+ *
+ * @param   {Object}   $0                    Parameters object passed to the function.
+ * @param   {?Array}   $0.allowedTypes       Array with the types of media that can be uploaded, if unset all types are allowed.
+ * @param   {?Object}  $0.additionalData     Additional data to include in the request.
+ * @param   {Array}    $0.filesList          List of files.
+ * @param   {?number}  $0.maxUploadFileSize  Maximum upload size in bytes allowed for the site.
+ * @param   {Function} $0.onError            Function called when an error happens.
+ * @param   {Function} $0.onFileChange       Function called each time a file or a temporary representation of the file is available.
+ * @param   {?Object}  $0.wpAllowedMimeTypes List of allowed mime types and file extensions.
+ */
+
+function uploadMedia(_x) {
+  return _uploadMedia.apply(this, arguments);
+}
+/**
+ * @param {File}    file           Media File to Save.
+ * @param {?Object} additionalData Additional data to include in the request.
+ *
+ * @return {Promise} Media Object Promise.
+ */
+
+function _uploadMedia() {
+  _uploadMedia = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee(_ref) {
+    var allowedTypes, _ref$additionalData, additionalData, filesList, maxUploadFileSize, _ref$onError, onError, onFileChange, _ref$wpAllowedMimeTyp, wpAllowedMimeTypes, files, filesSet, setAndUpdateFiles, isAllowedType, allowedMimeTypesForUser, isAllowedMimeTypeForUser, triggerError, validFiles, _iterator, _step, _mediaFile, idx, mediaFile, savedMedia, mediaObject, message;
+
+    return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {
+      while (1) {
+        switch (_context.prev = _context.next) {
+          case 0:
+            allowedTypes = _ref.allowedTypes, _ref$additionalData = _ref.additionalData, additionalData = _ref$additionalData === void 0 ? {} : _ref$additionalData, filesList = _ref.filesList, maxUploadFileSize = _ref.maxUploadFileSize, _ref$onError = _ref.onError, onError = _ref$onError === void 0 ? external_this_lodash_["noop"] : _ref$onError, onFileChange = _ref.onFileChange, _ref$wpAllowedMimeTyp = _ref.wpAllowedMimeTypes, wpAllowedMimeTypes = _ref$wpAllowedMimeTyp === void 0 ? null : _ref$wpAllowedMimeTyp;
+            // Cast filesList to array
+            files = Object(toConsumableArray["a" /* default */])(filesList);
+            filesSet = [];
+
+            setAndUpdateFiles = function setAndUpdateFiles(idx, value) {
+              Object(external_this_wp_blob_["revokeBlobURL"])(Object(external_this_lodash_["get"])(filesSet, [idx, 'url']));
+              filesSet[idx] = value;
+              onFileChange(Object(external_this_lodash_["compact"])(filesSet));
+            }; // Allowed type specified by consumer
+
+
+            isAllowedType = function isAllowedType(fileType) {
+              if (!allowedTypes) {
+                return true;
+              }
+
+              return Object(external_this_lodash_["some"])(allowedTypes, function (allowedType) {
+                // If a complete mimetype is specified verify if it matches exactly the mime type of the file.
+                if (Object(external_this_lodash_["includes"])(allowedType, '/')) {
+                  return allowedType === fileType;
+                } // Otherwise a general mime type is used and we should verify if the file mimetype starts with it.
+
+
+                return Object(external_this_lodash_["startsWith"])(fileType, "".concat(allowedType, "/"));
+              });
+            }; // Allowed types for the current WP_User
+
+
+            allowedMimeTypesForUser = getMimeTypesArray(wpAllowedMimeTypes);
+
+            isAllowedMimeTypeForUser = function isAllowedMimeTypeForUser(fileType) {
+              return Object(external_this_lodash_["includes"])(allowedMimeTypesForUser, fileType);
+            }; // Build the error message including the filename
+
+
+            triggerError = function triggerError(error) {
+              error.message = [Object(external_this_wp_element_["createElement"])("strong", {
+                key: "filename"
+              }, error.file.name), ': ', error.message];
+              onError(error);
+            };
+
+            validFiles = [];
+            _iterator = _createForOfIteratorHelper(files);
+            _context.prev = 10;
+
+            _iterator.s();
+
+          case 12:
+            if ((_step = _iterator.n()).done) {
+              _context.next = 31;
+              break;
+            }
+
+            _mediaFile = _step.value;
+
+            if (!(allowedMimeTypesForUser && _mediaFile.type && !isAllowedMimeTypeForUser(_mediaFile.type))) {
+              _context.next = 17;
+              break;
+            }
+
+            triggerError({
+              code: 'MIME_TYPE_NOT_ALLOWED_FOR_USER',
+              message: Object(external_this_wp_i18n_["__"])('Sorry, this file type is not permitted for security reasons.'),
+              file: _mediaFile
+            });
+            return _context.abrupt("continue", 29);
+
+          case 17:
+            if (!(_mediaFile.type && !isAllowedType(_mediaFile.type))) {
+              _context.next = 20;
+              break;
+            }
+
+            triggerError({
+              code: 'MIME_TYPE_NOT_SUPPORTED',
+              message: Object(external_this_wp_i18n_["__"])('Sorry, this file type is not supported here.'),
+              file: _mediaFile
+            });
+            return _context.abrupt("continue", 29);
+
+          case 20:
+            if (!(maxUploadFileSize && _mediaFile.size > maxUploadFileSize)) {
+              _context.next = 23;
+              break;
+            }
+
+            triggerError({
+              code: 'SIZE_ABOVE_LIMIT',
+              message: Object(external_this_wp_i18n_["__"])('This file exceeds the maximum upload size for this site.'),
+              file: _mediaFile
+            });
+            return _context.abrupt("continue", 29);
+
+          case 23:
+            if (!(_mediaFile.size <= 0)) {
+              _context.next = 26;
+              break;
+            }
+
+            triggerError({
+              code: 'EMPTY_FILE',
+              message: Object(external_this_wp_i18n_["__"])('This file is empty.'),
+              file: _mediaFile
+            });
+            return _context.abrupt("continue", 29);
+
+          case 26:
+            validFiles.push(_mediaFile); // Set temporary URL to create placeholder media file, this is replaced
+            // with final file from media gallery when upload is `done` below
+
+            filesSet.push({
+              url: Object(external_this_wp_blob_["createBlobURL"])(_mediaFile)
+            });
+            onFileChange(filesSet);
+
+          case 29:
+            _context.next = 12;
+            break;
+
+          case 31:
+            _context.next = 36;
+            break;
+
+          case 33:
+            _context.prev = 33;
+            _context.t0 = _context["catch"](10);
+
+            _iterator.e(_context.t0);
+
+          case 36:
+            _context.prev = 36;
+
+            _iterator.f();
+
+            return _context.finish(36);
+
+          case 39:
+            idx = 0;
+
+          case 40:
+            if (!(idx < validFiles.length)) {
+              _context.next = 59;
+              break;
+            }
+
+            mediaFile = validFiles[idx];
+            _context.prev = 42;
+            _context.next = 45;
+            return createMediaFromFile(mediaFile, additionalData);
+
+          case 45:
+            savedMedia = _context.sent;
+            mediaObject = _objectSpread({}, Object(external_this_lodash_["omit"])(savedMedia, ['alt_text', 'source_url']), {
+              alt: savedMedia.alt_text,
+              caption: Object(external_this_lodash_["get"])(savedMedia, ['caption', 'raw'], ''),
+              title: savedMedia.title.raw,
+              url: savedMedia.source_url
+            });
+            setAndUpdateFiles(idx, mediaObject);
+            _context.next = 56;
+            break;
+
+          case 50:
+            _context.prev = 50;
+            _context.t1 = _context["catch"](42);
+            // Reset to empty on failure.
+            setAndUpdateFiles(idx, null);
+            message = void 0;
+
+            if (Object(external_this_lodash_["has"])(_context.t1, ['message'])) {
+              message = Object(external_this_lodash_["get"])(_context.t1, ['message']);
+            } else {
+              message = Object(external_this_wp_i18n_["sprintf"])( // translators: %s: file name
+              Object(external_this_wp_i18n_["__"])('Error while uploading file %s to the media library.'), mediaFile.name);
+            }
+
+            onError({
+              code: 'GENERAL',
+              message: message,
+              file: mediaFile
+            });
+
+          case 56:
+            ++idx;
+            _context.next = 40;
+            break;
+
+          case 59:
+          case "end":
+            return _context.stop();
+        }
+      }
+    }, _callee, null, [[10, 33, 36, 39], [42, 50]]);
+  }));
+  return _uploadMedia.apply(this, arguments);
+}
+
+function createMediaFromFile(file, additionalData) {
+  // Create upload payload
+  var data = new window.FormData();
+  data.append('file', file, file.name || file.type.replace('/', '.'));
+  Object(external_this_lodash_["forEach"])(additionalData, function (value, key) {
+    return data.append(key, value);
+  });
+  return external_this_wp_apiFetch_default()({
+    path: '/wp/v2/media',
+    body: data,
+    method: 'POST'
+  });
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/utils/index.js
+
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/index.js
+
+
+
+
+/***/ }),
+
+/***/ 5:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _defineProperty; });
+function _defineProperty(obj, key, value) {
+  if (key in obj) {
+    Object.defineProperty(obj, key, {
+      value: value,
+      enumerable: true,
+      configurable: true,
+      writable: true
+    });
+  } else {
+    obj[key] = value;
+  }
+
+  return obj;
+}
+
+/***/ }),
+
+/***/ 50:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _asyncToGenerator; });
+function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
+  try {
+    var info = gen[key](arg);
+    var value = info.value;
+  } catch (error) {
+    reject(error);
+    return;
+  }
+
+  if (info.done) {
+    resolve(value);
+  } else {
+    Promise.resolve(value).then(_next, _throw);
+  }
+}
+
+function _asyncToGenerator(fn) {
+  return function () {
+    var self = this,
+        args = arguments;
+    return new Promise(function (resolve, reject) {
+      var gen = fn.apply(self, args);
+
+      function _next(value) {
+        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
+      }
+
+      function _throw(err) {
+        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
+      }
+
+      _next(undefined);
+    });
+  };
+}
+
+/***/ })
+
+/******/ });
\ No newline at end of file