text: (function webpackUniversalModuleDefinition(root, factory) {
  	if(typeof exports === 'object' && typeof module === 'object')
  		module.exports = factory();
  	else if(typeof define === 'function' && define.amd)
  		define([], factory);
  	else if(typeof exports === 'object')
  		exports["Carousel"] = factory();
  	else
  		root["Carousel"] = factory();
  })(window, function() {
  return /******/ (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 = "./src/index.js");
  /******/ })
  /************************************************************************/
  /******/ ({
  
  /***/ "./node_modules/@babel/runtime/helpers/arrayWithHoles.js":
  /*!***************************************************************!*\
    !*** ./node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
    \***************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\n\n//# sourceURL=webpack://Carousel/./node_modules/@babel/runtime/helpers/arrayWithHoles.js?");
  
  /***/ }),
  
  /***/ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
  /*!******************************************************************!*\
    !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
    \******************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n\n    return arr2;\n  }\n}\n\nmodule.exports = _arrayWithoutHoles;\n\n//# sourceURL=webpack://Carousel/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js?");
  
  /***/ }),
  
  /***/ "./node_modules/@babel/runtime/helpers/classCallCheck.js":
  /*!***************************************************************!*\
    !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!
    \***************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nmodule.exports = _classCallCheck;\n\n//# sourceURL=webpack://Carousel/./node_modules/@babel/runtime/helpers/classCallCheck.js?");
  
  /***/ }),
  
  /***/ "./node_modules/@babel/runtime/helpers/createClass.js":
  /*!************************************************************!*\
    !*** ./node_modules/@babel/runtime/helpers/createClass.js ***!
    \************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nmodule.exports = _createClass;\n\n//# sourceURL=webpack://Carousel/./node_modules/@babel/runtime/helpers/createClass.js?");
  
  /***/ }),
  
  /***/ "./node_modules/@babel/runtime/helpers/iterableToArray.js":
  /*!****************************************************************!*\
    !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***!
    \****************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("function _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\n\n//# sourceURL=webpack://Carousel/./node_modules/@babel/runtime/helpers/iterableToArray.js?");
  
  /***/ }),
  
  /***/ "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
  /*!*********************************************************************!*\
    !*** ./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
    \*********************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("function _iterableToArrayLimit(arr, i) {\n  if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n    return;\n  }\n\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\n\n//# sourceURL=webpack://Carousel/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js?");
  
  /***/ }),
  
  /***/ "./node_modules/@babel/runtime/helpers/nonIterableRest.js":
  /*!****************************************************************!*\
    !*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
    \****************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;\n\n//# sourceURL=webpack://Carousel/./node_modules/@babel/runtime/helpers/nonIterableRest.js?");
  
  /***/ }),
  
  /***/ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js":
  /*!******************************************************************!*\
    !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
    \******************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;\n\n//# sourceURL=webpack://Carousel/./node_modules/@babel/runtime/helpers/nonIterableSpread.js?");
  
  /***/ }),
  
  /***/ "./node_modules/@babel/runtime/helpers/slicedToArray.js":
  /*!**************************************************************!*\
    !*** ./node_modules/@babel/runtime/helpers/slicedToArray.js ***!
    \**************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles */ \"./node_modules/@babel/runtime/helpers/arrayWithHoles.js\");\n\nvar iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit */ \"./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\");\n\nvar nonIterableRest = __webpack_require__(/*! ./nonIterableRest */ \"./node_modules/@babel/runtime/helpers/nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\n\n//# sourceURL=webpack://Carousel/./node_modules/@babel/runtime/helpers/slicedToArray.js?");
  
  /***/ }),
  
  /***/ "./node_modules/@babel/runtime/helpers/toConsumableArray.js":
  /*!******************************************************************!*\
    !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
    \******************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles */ \"./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js\");\n\nvar iterableToArray = __webpack_require__(/*! ./iterableToArray */ \"./node_modules/@babel/runtime/helpers/iterableToArray.js\");\n\nvar nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread */ \"./node_modules/@babel/runtime/helpers/nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\n\n//# sourceURL=webpack://Carousel/./node_modules/@babel/runtime/helpers/toConsumableArray.js?");
  
  /***/ }),
  
  /***/ "./node_modules/@codexteam/ajax/dist/main.js":
  /*!***************************************************!*\
    !*** ./node_modules/@codexteam/ajax/dist/main.js ***!
    \***************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("!function(e,t){ true?module.exports=t():undefined}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=3)}([function(e,t){var n;n=function(){return this}();try{n=n||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(n=window)}e.exports=n},function(e,t,n){\"use strict\";(function(e){var r=n(2),o=setTimeout;function i(){}function a(e){if(!(this instanceof a))throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],d(e,this)}function u(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,a._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var r;try{r=n(e._value)}catch(e){return void s(t.promise,e)}c(t.promise,r)}else(1===e._state?c:s)(t.promise,e._value)})):e._deferreds.push(t)}function c(e,t){try{if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");if(t&&(\"object\"==typeof t||\"function\"==typeof t)){var n=t.then;if(t instanceof a)return e._state=3,e._value=t,void f(e);if(\"function\"==typeof n)return void d((r=n,o=t,function(){r.apply(o,arguments)}),e)}e._state=1,e._value=t,f(e)}catch(t){s(e,t)}var r,o}function s(e,t){e._state=2,e._value=t,f(e)}function f(e){2===e._state&&0===e._deferreds.length&&a._immediateFn(function(){e._handled||a._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t<n;t++)u(e,e._deferreds[t]);e._deferreds=null}function l(e,t,n){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.promise=n}function d(e,t){var n=!1;try{e(function(e){n||(n=!0,c(t,e))},function(e){n||(n=!0,s(t,e))})}catch(e){if(n)return;n=!0,s(t,e)}}a.prototype.catch=function(e){return this.then(null,e)},a.prototype.then=function(e,t){var n=new this.constructor(i);return u(this,new l(e,t,n)),n},a.prototype.finally=r.a,a.all=function(e){return new a(function(t,n){if(!e||void 0===e.length)throw new TypeError(\"Promise.all accepts an array\");var r=Array.prototype.slice.call(e);if(0===r.length)return t([]);var o=r.length;function i(e,a){try{if(a&&(\"object\"==typeof a||\"function\"==typeof a)){var u=a.then;if(\"function\"==typeof u)return void u.call(a,function(t){i(e,t)},n)}r[e]=a,0==--o&&t(r)}catch(e){n(e)}}for(var a=0;a<r.length;a++)i(a,r[a])})},a.resolve=function(e){return e&&\"object\"==typeof e&&e.constructor===a?e:new a(function(t){t(e)})},a.reject=function(e){return new a(function(t,n){n(e)})},a.race=function(e){return new a(function(t,n){for(var r=0,o=e.length;r<o;r++)e[r].then(t,n)})},a._immediateFn=\"function\"==typeof e&&function(t){e(t)}||function(e){o(e,0)},a._unhandledRejectionFn=function(e){\"undefined\"!=typeof console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",e)},t.a=a}).call(this,n(5).setImmediate)},function(e,t,n){\"use strict\";t.a=function(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})}},function(e,t,n){\"use strict\";function r(e){return(r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}n(4);var o,i,a,u,c,s,f=n(8),l=(i=function(e){return new Promise(function(t,n){e=u(e),e=c(e);var r=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject(\"Microsoft.XMLHTTP\");r.open(e.method,e.url),r.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),Object.keys(e.headers).forEach(function(t){var n=e.headers[t];r.setRequestHeader(t,n)});var o=e.ratio;r.upload.addEventListener(\"progress\",function(t){var n=Math.round(t.loaded/t.total*100),r=Math.ceil(n*o/100);e.progress(r)},!1),r.addEventListener(\"progress\",function(t){var n=Math.round(t.loaded/t.total*100),r=Math.ceil(n*(100-o)/100)+o;e.progress(r)},!1),r.onreadystatechange=function(){if(4===r.readyState){var e=r.response;try{e=JSON.parse(e)}catch(e){}var o=f.parseHeaders(r.getAllResponseHeaders()),i={body:e,code:r.status,headers:o};200===r.status?t(i):n(i)}},r.send(e.data)})},a=function(e){return e.method=\"POST\",i(e)},u=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(e.url&&\"string\"!=typeof e.url)throw new Error(\"Url must be a string\");if(e.url=e.url||\"\",e.method&&\"string\"!=typeof e.method)throw new Error(\"`method` must be a string or null\");if(e.method=e.method?e.method.toUpperCase():\"GET\",e.headers&&\"object\"!==r(e.headers))throw new Error(\"`headers` must be an object or null\");if(e.headers=e.headers||{},e.type&&(\"string\"!=typeof e.type||!Object.values(o).includes(e.type)))throw new Error(\"`type` must be taken from module's «contentType» library\");if(e.progress&&\"function\"!=typeof e.progress)throw new Error(\"`progress` must be a function or null\");if(e.progress=e.progress||function(e){},e.beforeSend=e.beforeSend||function(e){},e.ratio&&\"number\"!=typeof e.ratio)throw new Error(\"`ratio` must be a number\");if(e.ratio<0||e.ratio>100)throw new Error(\"`ratio` must be in a 0-100 interval\");if(e.ratio=e.ratio||90,e.accept&&\"string\"!=typeof e.accept)throw new Error(\"`accept` must be a string with a list of allowed mime-types\");if(e.accept=e.accept||\"*/*\",e.multiple&&\"boolean\"!=typeof e.multiple)throw new Error(\"`multiple` must be a true or false\");if(e.multiple=e.multiple||!1,e.fieldName&&\"string\"!=typeof e.fieldName)throw new Error(\"`fieldName` must be a string\");return e.fieldName=e.fieldName||\"files\",e},c=function(e){switch(e.method){case\"GET\":var t=s(e.data,o.URLENCODED);delete e.data,e.url=/\\?/.test(e.url)?e.url+\"&\"+t:e.url+\"?\"+t;break;case\"POST\":case\"PUT\":case\"DELETE\":case\"UPDATE\":var n=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).type||o.JSON}(e);(f.isFormData(e.data)||f.isFormElement(e.data))&&(n=o.FORM),e.data=s(e.data,n),n!==l.contentType.FORM&&(e.headers[\"content-type\"]=n)}return e},s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};switch(arguments.length>1?arguments[1]:void 0){case o.URLENCODED:return f.urlEncode(e);case o.JSON:return f.jsonEncode(e);case o.FORM:return f.formEncode(e);default:return e}},{contentType:o={URLENCODED:\"application/x-www-form-urlencoded; charset=utf-8\",FORM:\"multipart/form-data\",JSON:\"application/json; charset=utf-8\"},request:i,get:function(e){return e.method=\"GET\",i(e)},post:a,transport:function(e){return e=u(e),f.selectFiles(e).then(function(t){for(var n=new FormData,r=0;r<t.length;r++)n.append(e.fieldName,t[r],t[r].name);return f.isObject(e.data)&&Object.keys(e.data).forEach(function(t){var r=e.data[t];n.append(t,r)}),e.beforeSend&&e.beforeSend(t),e.data=n,a(e)})},selectFiles:function(e){return delete(e=u(e)).beforeSend,f.selectFiles(e)}});e.exports=l},function(e,t,n){\"use strict\";n.r(t);var r=n(1);window.Promise=window.Promise||r.a},function(e,t,n){(function(e){var r=void 0!==e&&e||\"undefined\"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(6),t.setImmediate=\"undefined\"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate=\"undefined\"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(0))},function(e,t,n){(function(e,t){!function(e,n){\"use strict\";if(!e.setImmediate){var r,o,i,a,u,c=1,s={},f=!1,l=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,\"[object process]\"==={}.toString.call(e.process)?r=function(e){t.nextTick(function(){m(e)})}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage(\"\",\"*\"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){m(e.data)},r=function(e){i.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(o=l.documentElement,r=function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){m(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(m,0,e)}:(a=\"setImmediate$\"+Math.random()+\"$\",u=function(t){t.source===e&&\"string\"==typeof t.data&&0===t.data.indexOf(a)&&m(+t.data.slice(a.length))},e.addEventListener?e.addEventListener(\"message\",u,!1):e.attachEvent(\"onmessage\",u),r=function(t){e.postMessage(a+t,\"*\")}),d.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var o={callback:e,args:t};return s[c]=o,r(c),c++},d.clearImmediate=p}function p(e){delete s[e]}function m(e){if(f)setTimeout(m,0,e);else{var t=s[e];if(t){f=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{p(e),f=!1}}}}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(this,n(0),n(7))},function(e,t){var n,r,o=e.exports={};function i(){throw new Error(\"setTimeout has not been defined\")}function a(){throw new Error(\"clearTimeout has not been defined\")}function u(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n=\"function\"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r=\"function\"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,s=[],f=!1,l=-1;function d(){f&&c&&(f=!1,c.length?s=c.concat(s):l=-1,s.length&&p())}function p(){if(!f){var e=u(d);f=!0;for(var t=s.length;t;){for(c=s,s=[];++l<t;)c&&c[l].run();l=-1,t=s.length}c=null,f=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function h(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];s.push(new m(e,t)),1!==s.length||f||u(p)},m.prototype.run=function(){this.fun.apply(null,this.array)},o.title=\"browser\",o.browser=!0,o.env={},o.argv=[],o.version=\"\",o.versions={},o.on=h,o.addListener=h,o.once=h,o.off=h,o.removeListener=h,o.removeAllListeners=h,o.emit=h,o.prependListener=h,o.prependOnceListener=h,o.listeners=function(e){return[]},o.binding=function(e){throw new Error(\"process.binding is not supported\")},o.cwd=function(){return\"/\"},o.chdir=function(e){throw new Error(\"process.chdir is not supported\")},o.umask=function(){return 0}},function(e,t,n){function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var o=n(9);e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e)}var t,n,i;return t=e,i=[{key:\"urlEncode\",value:function(e){return o(e)}},{key:\"jsonEncode\",value:function(e){return JSON.stringify(e)}},{key:\"formEncode\",value:function(e){if(this.isFormData(e))return e;if(this.isFormElement(e))return new FormData(e);if(this.isObject(e)){var t=new FormData;return Object.keys(e).forEach(function(n){var r=e[n];t.append(n,r)}),t}throw new Error(\"`data` must be an instance of Object, FormData or <FORM> HTMLElement\")}},{key:\"isObject\",value:function(e){return\"[object Object]\"===Object.prototype.toString.call(e)}},{key:\"isFormData\",value:function(e){return e instanceof FormData}},{key:\"isFormElement\",value:function(e){return e instanceof HTMLFormElement}},{key:\"selectFiles\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(t,n){var r=document.createElement(\"INPUT\");r.type=\"file\",e.multiple&&r.setAttribute(\"multiple\",\"multiple\"),e.accept&&r.setAttribute(\"accept\",e.accept),r.style.display=\"none\",document.body.appendChild(r),r.addEventListener(\"change\",function(e){var n=e.target.files;t(n),document.body.removeChild(r)},!1),r.click()})}},{key:\"parseHeaders\",value:function(e){var t=e.trim().split(/[\\r\\n]+/),n={};return t.forEach(function(e){var t=e.split(\": \"),r=t.shift(),o=t.join(\": \");r&&(n[r]=o)}),n}}],(n=null)&&r(t.prototype,n),i&&r(t,i),e}()},function(e,t){var n=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,escape).replace(/%20/g,\"+\")},r=function(e,t,o,i){return t=t||null,o=o||\"&\",i=i||null,e?function(e){for(var t=new Array,n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}(Object.keys(e).map(function(a){var u,c,s=a;if(i&&(s=i+\"[\"+s+\"]\"),\"object\"==typeof e[a]&&null!==e[a])u=r(e[a],null,o,s);else{t&&(c=s,s=!isNaN(parseFloat(c))&&isFinite(c)?t+Number(s):s);var f=e[a];f=(f=0===(f=!1===(f=!0===f?\"1\":f)?\"0\":f)?\"0\":f)||\"\",u=n(s)+\"=\"+n(f)}return u})).join(o).replace(/[!'()*]/g,\"\"):\"\"};e.exports=r}])});\n\n//# sourceURL=webpack://Carousel/./node_modules/@codexteam/ajax/dist/main.js?");
  
  /***/ }),
  
  /***/ "./node_modules/css-loader/index.js!./node_modules/postcss-loader/src/index.js?!./src/index.css":
  /*!*********************************************************************************************!*\
    !*** ./node_modules/css-loader!./node_modules/postcss-loader/src??ref--5-2!./src/index.css ***!
    \*********************************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/lib/css-base.js */ \"./node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.i, \".cdxcarousel-addImage {\\n    height: 225px;\\n    display: flex;\\n    justify-content: center;\\n    align-items: center;\\n    padding: 5px;\\n    position: relative;\\n    flex-direction: row;\\n    margin-top: 5px;\\n}\\n\\n.cdxcarousel-item--empty .image-tool__image-preloader{\\n  display: none;\\n}\\n\\n.cdxcarousel-item img {\\n    margin-bottom: 15px;\\n    display: block;\\n    object-fit: cover;\\n    width: 100%;\\n    height: 180px;\\n    order: 1;\\n}\\n\\n.cdxcarousel-inputUrl {\\n    order: 0;\\n    display: none;\\n}\\n\\n.cdxcarousel-caption {\\n    order: 3;\\n}\\n\\n\\n.cdxcarousel-block {\\n    width: 50%;\\n}\\n\\n.cdxcarousel-list {\\n    display: flex;\\n    flex-wrap: wrap;\\n    flex-direction: row;\\n    justify-content: flex-start;\\n    align-items: flex-start;\\n}\\n\\n.cdxcarousel-wrapper {\\n    margin-top: 10px;\\n    margin-bottom: 15px;\\n}\\n\\n.cdxcarousel-item {\\n    height: 235px;\\n    padding: 5px;\\n    display: flex;\\n    position: relative;\\n    flex-direction: column;\\n}\\n\\n\\n.cdxcarousel-removeBtn {\\n    position: absolute;\\n    padding: 3px;\\n    right: 10px;\\n    top: 10px;\\n    display: inline-flex;\\n    width: 34px;\\n    height: 34px;\\n    line-height: 34px;\\n    justify-content: center;\\n    align-items: center;\\n    border-radius: 3px;\\n    cursor: pointer;\\n    border: 0;\\n    outline: none;\\n    background-color: white;\\n    color: #000;\\n    transition: background 200ms;\\n}\\n\\n.cdxcarousel-removeBtn:hover {\\n    background: #eff2f5;\\n}\\n\\n.cdxcarousel-leftBtn {\\n  position: absolute;\\n  padding: 3px;\\n  right: 88px;\\n  top: 10px;\\n  display: inline-flex;\\n  width: 34px;\\n  height: 34px;\\n  line-height: 34px;\\n  justify-content: center;\\n  align-items: center;\\n  border-radius: 3px;\\n  cursor: pointer;\\n  border: 0;\\n  outline: none;\\n  background-color: white;\\n  color: #000;\\n  transition: background 200ms;\\n}\\n\\n.cdxcarousel-rightBtn {\\n  position: absolute;\\n  padding: 3px;\\n  right: 49px;\\n  top: 10px;\\n  display: inline-flex;\\n  width: 34px;\\n  height: 34px;\\n  line-height: 34px;\\n  justify-content: center;\\n  align-items: center;\\n  border-radius: 3px;\\n  cursor: pointer;\\n  border: 0;\\n  outline: none;\\n  background-color: white;\\n  color: #000;\\n  transition: background 200ms;\\n}\\n\\n\\n.image-tool__image {\\n    border-radius: 3px;\\n    overflow: hidden;\\n    margin-bottom: 10px;\\n  }\\n\\n\\n.image-tool__image-picture {\\n      max-width: 100%;\\n      vertical-align: bottom;\\n      display: block;\\n    }\\n\\n\\n.image-tool__image-preloader {\\n      width: 50px;\\n      height: 50px;\\n      border-radius: 50%;\\n      background-size: cover;\\n      margin: auto;\\n      position: relative;\\n      background-color: #cdd1e0;\\n      background-position: center center;\\n    }\\n\\n\\n.image-tool__image-preloader::after {\\n        content: \\\"\\\";\\n        position: absolute;\\n        z-index: 3;\\n        width: 60px;\\n        height: 60px;\\n        border-radius: 50%;\\n        border: 2px solid #cdd1e0;\\n        border-top-color: #388ae5;\\n        left: 50%;\\n        top: 50%;\\n        margin-top: -30px;\\n        margin-left: -30px;\\n        animation: image-preloader-spin 2s infinite linear;\\n        box-sizing: border-box;\\n      }\\n\", \"\"]);\n\n// exports\n\n\n//# sourceURL=webpack://Carousel/./src/index.css?./node_modules/css-loader!./node_modules/postcss-loader/src??ref--5-2");
  
  /***/ }),
  
  /***/ "./node_modules/css-loader/lib/css-base.js":
  /*!*************************************************!*\
    !*** ./node_modules/css-loader/lib/css-base.js ***!
    \*************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t//  when a module is imported multiple times with different media queries.\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n//# sourceURL=webpack://Carousel/./node_modules/css-loader/lib/css-base.js?");
  
  /***/ }),
  
  /***/ "./node_modules/style-loader/lib/addStyles.js":
  /*!****************************************************!*\
    !*** ./node_modules/style-loader/lib/addStyles.js ***!
    \****************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n  return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n                // If passing function in options, then use it for resolve \"head\" element.\n                // Useful for Shadow Root style i.e\n                // {\n                //   insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n                // }\n                if (typeof target === 'function') {\n                        return target();\n                }\n                if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = __webpack_require__(/*! ./urls */ \"./node_modules/style-loader/lib/urls.js\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n        if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t    result = options.transform(obj.css);\n\n\t    if (result) {\n\t    \t// If transform returns a value, use that instead of the original css.\n\t    \t// This allows running runtime transformations on the css.\n\t    \tobj.css = result;\n\t    } else {\n\t    \t// If the transform function returns a falsy value, don't add this css.\n\t    \t// This allows conditional loading of css\n\t    \treturn function() {\n\t    \t\t// noop\n\t    \t};\n\t    }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default.  Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n//# sourceURL=webpack://Carousel/./node_modules/style-loader/lib/addStyles.js?");
  
  /***/ }),
  
  /***/ "./node_modules/style-loader/lib/urls.js":
  /*!***********************************************!*\
    !*** ./node_modules/style-loader/lib/urls.js ***!
    \***********************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n  // get current location\n  var location = typeof window !== \"undefined\" && window.location;\n\n  if (!location) {\n    throw new Error(\"fixUrls requires window.location\");\n  }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t  return css;\n  }\n\n  var baseUrl = location.protocol + \"//\" + location.host;\n  var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\(  = Match on the word \"url\" with any whitespace after it and then a parens\n\t   (  = Start a capturing group\n\t     (?:  = Start a non-capturing group\n\t         [^)(]  = Match anything that isn't a parentheses\n\t         |  = OR\n\t         \\(  = Match a start parentheses\n\t             (?:  = Start another non-capturing groups\n\t                 [^)(]+  = Match anything that isn't a parentheses\n\t                 |  = OR\n\t                 \\(  = Match a start parentheses\n\t                     [^)(]*  = Match anything that isn't a parentheses\n\t                 \\)  = Match a end parentheses\n\t             )  = End Group\n              *\\) = Match anything and then a close parens\n          )  = Close non-capturing group\n          *  = Match anything\n       )  = Close capturing group\n\t \\)  = Match a close parens\n\n\t /gi  = Get all matches, not the first.  Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t  return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t  \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n//# sourceURL=webpack://Carousel/./node_modules/style-loader/lib/urls.js?");
  
  /***/ }),
  
  /***/ "./src/index.css":
  /*!***********************!*\
    !*** ./src/index.css ***!
    \***********************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("\nvar content = __webpack_require__(/*! !../node_modules/css-loader!../node_modules/postcss-loader/src??ref--5-2!./index.css */ \"./node_modules/css-loader/index.js!./node_modules/postcss-loader/src/index.js?!./src/index.css\");\n\nif(typeof content === 'string') content = [[module.i, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! ../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://Carousel/./src/index.css?");
  
  /***/ }),
  
  /***/ "./src/index.js":
  /*!**********************!*\
    !*** ./src/index.js ***!
    \**********************/
  /*! exports provided: default, make */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return SimpleCarousel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"make\", function() { return make; });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _uploader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./uploader */ \"./src/uploader.js\");\n/* harmony import */ var _svg_button_icon_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./svg/button-icon.svg */ \"./src/svg/button-icon.svg\");\n/* harmony import */ var _svg_button_icon_svg__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_svg_button_icon_svg__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n// eslint-disable-next-line require-jsdoc\n\n\n\n__webpack_require__(/*! ./index.css */ \"./src/index.css\").toString(); // eslint-disable-next-line require-jsdoc\n\n\nvar SimpleCarousel =\n/*#__PURE__*/\nfunction () {\n  /**\n   * @param {CarousellData} data - previously saved data\n   * @param {CarouselConfig} config - user config for Tool\n   * @param {object} api - Editor.js API\n   */\n  function SimpleCarousel(_ref) {\n    var _this = this;\n\n    var data = _ref.data,\n        config = _ref.config,\n        api = _ref.api;\n\n    _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this, SimpleCarousel);\n\n    this.api = api;\n    this.data = data;\n    this.IconClose = '<svg class=\"icon icon--cross\" width=\"12px\" height=\"12px\"><use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#cross\"></use></svg>';\n    this.IconLeft = '<svg class=\"icon \" viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M351,9a15,15 0 01 19,0l29,29a15,15 0 01 0,19l-199,199l199,199a15,15 0 01 0,19l-29,29a15,15 0 01-19,0l-236-235a16,16 0 01 0-24z\" /></svg>';\n    this.IconRight = '<svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M312,256l-199-199a15,15 0 01 0-19l29-29a15,15 0 01 19,0l236,235a16,16 0 01 0,24l-236,235a15,15 0 01-19,0l-29-29a15,15 0 01 0-19z\" /></svg>';\n    this.config = {\n      endpoints: config.endpoints || '',\n      additionalRequestData: config.additionalRequestData || {},\n      additionalRequestHeaders: config.additionalRequestHeaders || {},\n      field: config.field || 'image',\n      types: config.types || 'image/*',\n      captionPlaceholder: this.api.i18n.t('Caption'),\n      buttonContent: config.buttonContent || '',\n      uploader: config.uploader || undefined\n    };\n    /**\n     * Module for file uploading\n     */\n\n    this.uploader = new _uploader__WEBPACK_IMPORTED_MODULE_3__[\"default\"]({\n      config: this.config,\n      onUpload: function onUpload(response) {\n        return _this.onUpload(response);\n      },\n      onError: function onError(error) {\n        return _this.uploadingFailed(error);\n      }\n    });\n  }\n  /**\n   * CSS classes\n   * @constructor\n   */\n\n\n  _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(SimpleCarousel, [{\n    key: \"render\",\n\n    /**\n     * Renders Block content\n     * @public\n     *\n     * @return {HTMLDivElement}\n     */\n    value: function render() {\n      /*\n       * Structure\n       * <wrapper>\n       *  <list>\n       *    <item/>\n       *    ...\n       *  </list>\n       *  <addButton>\n       * </wrapper>\n       */\n      // Создаем базу для начала\n      this.wrapper = make('div', [this.CSS.wrapper]);\n      this.list = make('div', [this.CSS.list]);\n      this.addButton = this.createAddButton();\n      this.list.appendChild(this.addButton);\n      this.wrapper.appendChild(this.list);\n\n      if (this.data.length > 0) {\n        console.log('load_item render', this.data);\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = this.data[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var load = _step.value;\n            var loadItem = this.creteNewItem(load.url, load.caption);\n            this.list.insertBefore(loadItem, this.addButton);\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n              _iterator[\"return\"]();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n      }\n\n      return this.wrapper;\n    } // eslint-disable-next-line require-jsdoc\n\n  }, {\n    key: \"save\",\n    value: function save(blockContent) {\n      var list = blockContent.getElementsByClassName(this.CSS.item);\n      var data = [];\n\n      if (list.length > 0) {\n        var _iteratorNormalCompletion2 = true;\n        var _didIteratorError2 = false;\n        var _iteratorError2 = undefined;\n\n        try {\n          for (var _iterator2 = list[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n            var item = _step2.value;\n\n            if (item.firstChild.value) {\n              data.push({\n                url: item.firstChild.value,\n                caption: item.lastChild.value\n              });\n            }\n          }\n        } catch (err) {\n          _didIteratorError2 = true;\n          _iteratorError2 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion2 && _iterator2[\"return\"] != null) {\n              _iterator2[\"return\"]();\n            }\n          } finally {\n            if (_didIteratorError2) {\n              throw _iteratorError2;\n            }\n          }\n        }\n      }\n\n      return data;\n    }\n    /**\n     * Create Image block\n     * @public\n     *\n     * @param {string} url - url of saved or upload image\n     * @param {string} caption - caption of image\n     *\n     * Structure\n     * <item>\n     *  <url/>\n     *  <removeButton/>\n     *  <img/>\n     *  <caption>\n     * </item>\n     *\n     * @return {HTMLDivElement}\n     */\n\n  }, {\n    key: \"creteNewItem\",\n    value: function creteNewItem(url, caption) {\n      // Create item, remove button and field for image url\n      var block = make('div', [this.CSS.block]);\n      var item = make('div', [this.CSS.item]);\n      var removeBtn = make('div', [this.CSS.removeBtn]);\n      var leftBtn = make('div', [this.CSS.leftBtn]);\n      var rightBtn = make('div', [this.CSS.rightBtn]);\n      var imageUrl = make('input', [this.CSS.inputUrl]);\n      var imagePreloader = make('div', [this.CSS.imagePreloader]);\n      imageUrl.value = url;\n      leftBtn.innerHTML = this.IconLeft;\n      leftBtn.style = 'padding: 8px;';\n      leftBtn.addEventListener('click', function () {\n        var index = Array.from(block.parentNode.children).indexOf(block);\n\n        if (index != 0) {\n          block.parentNode.insertBefore(block, block.parentNode.children[index - 1]);\n        }\n      });\n      rightBtn.innerHTML = this.IconRight;\n      rightBtn.style = 'padding: 8px;';\n      rightBtn.addEventListener('click', function () {\n        var index = Array.from(block.parentNode.children).indexOf(block);\n\n        if (index != block.parentNode.children.length - 2) {\n          block.parentNode.insertBefore(block, block.parentNode.children[index + 2]);\n        }\n      });\n      removeBtn.innerHTML = this.IconClose;\n      removeBtn.addEventListener('click', function () {\n        block.remove();\n      });\n      removeBtn.style.display = 'none';\n      item.appendChild(imageUrl);\n      item.appendChild(removeBtn);\n      item.appendChild(leftBtn);\n      item.appendChild(rightBtn);\n      block.appendChild(item);\n      /*\n       * If data already yet\n       * We create Image view\n       */\n\n      if (url) {\n        this._createImage(url, item, caption, removeBtn);\n      } else {\n        item.appendChild(imagePreloader);\n      }\n\n      return block;\n    }\n    /**\n     * Create Image View\n     * @public\n     *\n     * @param {string} url - url of saved or upload image\n     * @param {HTMLDivElement} item - block of created image\n     * @param {string} captionText - caption of image\n     * @param {HTMLDivElement} removeBtn - button for remove image block\n     *\n     * @return {HTMLDivElement}\n     */\n\n  }, {\n    key: \"_createImage\",\n    value: function _createImage(url, item, captionText, removeBtn) {\n      var image = document.createElement('img');\n      var caption = make('input', [this.CSS.caption, this.CSS.input]);\n      image.src = url;\n\n      if (captionText) {\n        caption.value = captionText;\n      }\n\n      caption.placeholder = this.config.captionPlaceholder;\n      removeBtn.style.display = 'flex';\n      item.appendChild(image);\n      item.appendChild(caption);\n    }\n    /**\n     * File uploading callback\n     * @private\n     *\n     * @param {Response} response\n     */\n\n  }, {\n    key: \"onUpload\",\n    value: function onUpload(response) {\n      if (response.success && response.file) {\n        // Берем последний созданный элемент и ставим изображение с сервера\n        console.log(this.list);\n        console.log(this.list.childNodes.length);\n        console.log(this.list.childNodes.length - 1);\n\n        this._createImage(response.file.url, this.list.childNodes[this.list.childNodes.length - 2].firstChild, '', this.list.childNodes[this.list.childNodes.length - 2].firstChild.childNodes[1]);\n\n        this.list.childNodes[this.list.childNodes.length - 2].firstChild.childNodes[2].style.backgroundImage = '';\n        this.list.childNodes[this.list.childNodes.length - 2].firstChild.firstChild.value = response.file.url;\n        this.list.childNodes[this.list.childNodes.length - 2].firstChild.classList.add('cdxcarousel-item--empty');\n      } else {\n        this.uploadingFailed('incorrect response: ' + JSON.stringify(response));\n      }\n    }\n    /**\n     * Handle uploader errors\n     * @private\n     *\n     * @param {string} errorText\n     */\n\n  }, {\n    key: \"uploadingFailed\",\n    value: function uploadingFailed(errorText) {\n      console.log('Gallery : uploading failed because of', errorText);\n      this.api.notifier.show({\n        message: this.api.i18n.t('Can not upload an image, try another'),\n        style: 'error'\n      });\n    }\n    /**\n     * Shows uploading preloader\n     * @param {string} src - preview source\n     */\n\n  }, {\n    key: \"showPreloader\",\n    value: function showPreloader(src) {\n      this.nodes.imagePreloader.style.backgroundImage = \"url(\".concat(src, \")\");\n    } // eslint-disable-next-line require-jsdoc\n\n  }, {\n    key: \"onSelectFile\",\n    value: function onSelectFile() {\n      var _this2 = this;\n\n      // Создаем элемент\n      this.uploader.uploadSelectedFile({\n        onPreview: function onPreview(src) {\n          var newItem = _this2.creteNewItem('', '');\n\n          newItem.firstChild.lastChild.style.backgroundImage = \"url(\".concat(src, \")\");\n          console.log('preload', newItem.firstChild.lastChild);\n\n          _this2.list.insertBefore(newItem, _this2.addButton);\n\n          console.log(src);\n        }\n      });\n    }\n    /**\n     * Create add button\n     * @private\n     */\n\n  }, {\n    key: \"createAddButton\",\n    value: function createAddButton() {\n      var _this3 = this;\n\n      var addButton = make('div', [this.CSS.button, this.CSS.addButton]);\n      var block = make('div', [this.CSS.block]);\n      addButton.innerHTML = \"\".concat(_svg_button_icon_svg__WEBPACK_IMPORTED_MODULE_4___default.a, \" Add Image\");\n      addButton.addEventListener('click', function () {\n        _this3.onSelectFile();\n      });\n      block.appendChild(addButton);\n      return block;\n    }\n  }, {\n    key: \"CSS\",\n    get: function get() {\n      return {\n        baseClass: this.api.styles.block,\n        loading: this.api.styles.loader,\n        input: this.api.styles.input,\n        button: this.api.styles.button,\n\n        /**\n         * Tool's classes\n         */\n        wrapper: 'cdxcarousel-wrapper',\n        addButton: 'cdxcarousel-addImage',\n        block: 'cdxcarousel-block',\n        item: 'cdxcarousel-item',\n        removeBtn: 'cdxcarousel-removeBtn',\n        leftBtn: 'cdxcarousel-leftBtn',\n        rightBtn: 'cdxcarousel-rightBtn',\n        inputUrl: 'cdxcarousel-inputUrl',\n        caption: 'cdxcarousel-caption',\n        list: 'cdxcarousel-list',\n        imagePreloader: 'image-tool__image-preloader'\n      };\n    }\n  }], [{\n    key: \"toolbox\",\n\n    /**\n     * Get Tool toolbox settings\n     * icon - Tool icon's SVG\n     * title - title to show in toolbox\n     *\n     * @return {{icon: string, title: string}}\n     */\n    get: function get() {\n      return {\n        title: 'Carousel',\n        icon: '<svg width=\"38\" height=\"18\" viewBox=\"0 0 38 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"10\" y=\"0\" width=\"18\" height=\"18\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M28 16V2C28 0.9 27.1 0 26 0H12C10.9 0 10 0.9 10 2V16C10 17.1 10.9 18 12 18H26C27.1 18 28 17.1 28 16V16ZM15.5 10.5L18 13.51L21.5 9L26 15H12L15.5 10.5V10.5Z\"  /></mask><g mask=\"url(#mask0)\"><rect x=\"10\" width=\"18\" height=\"18\"  /></g><mask id=\"mask1\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"3\" width=\"7\" height=\"12\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 13.59L2.67341 9L7 4.41L5.66802 3L0 9L5.66802 15L7 13.59Z\" fill=\"white\"/></mask><g mask=\"url(#mask1)\"><rect y=\"3\" width=\"7.55735\" height=\"12\"  /></g><mask id=\"mask2\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"31\" y=\"3\" width=\"7\" height=\"12\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M31 13.59L35.3266 9L31 4.41L32.332 3L38 9L32.332 15L31 13.59Z\" fill=\"white\"/></mask><g mask=\"url(#mask2)\"><rect x=\"30.4426\" y=\"2.25\" width=\"7.55735\" height=\"13\" /></g></svg>'\n      };\n    }\n  }]);\n\n  return SimpleCarousel;\n}();\n/**\n * Helper for making Elements with attributes\n *\n * @param  {string} tagName           - new Element tag name\n * @param  {array|string} classNames  - list or name of CSS class\n * @param  {Object} attributes        - any attributes\n * @return {Element}\n */\n\n\n\nvar make = function make(tagName) {\n  var classNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var el = document.createElement(tagName);\n\n  if (Array.isArray(classNames)) {\n    var _el$classList;\n\n    (_el$classList = el.classList).add.apply(_el$classList, _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(classNames));\n  } else if (classNames) {\n    el.classList.add(classNames);\n  }\n\n  for (var attrName in attributes) {\n    el[attrName] = attributes[attrName];\n  }\n\n  return el;\n};\n\n//# sourceURL=webpack://Carousel/./src/index.js?");
  
  /***/ }),
  
  /***/ "./src/svg/button-icon.svg":
  /*!*********************************!*\
    !*** ./src/svg/button-icon.svg ***!
    \*********************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("module.exports = \"<svg width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M3.15 13.628A7.749 7.749 0 0 0 10 17.75a7.74 7.74 0 0 0 6.305-3.242l-2.387-2.127-2.765 2.244-4.389-4.496-3.614 3.5zm-.787-2.303l4.446-4.371 4.52 4.63 2.534-2.057 3.533 2.797c.23-.734.354-1.514.354-2.324a7.75 7.75 0 1 0-15.387 1.325zM10 20C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10z\\\"></path></svg>\"\n\n//# sourceURL=webpack://Carousel/./src/svg/button-icon.svg?");
  
  /***/ }),
  
  /***/ "./src/uploader.js":
  /*!*************************!*\
    !*** ./src/uploader.js ***!
    \*************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Uploader; });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _codexteam_ajax__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @codexteam/ajax */ \"./node_modules/@codexteam/ajax/dist/main.js\");\n/* harmony import */ var _codexteam_ajax__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_codexteam_ajax__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n/**\n * Module for file uploading. Handle 3 scenarios:\n *  1. Select file from device and upload\n *  2. Upload by pasting URL\n *  3. Upload by pasting file from Clipboard or by Drag'n'Drop\n */\n\nvar Uploader =\n/*#__PURE__*/\nfunction () {\n  /**\n   * @param {object} params - uploader module params\n   * @param {ImageConfig} params.config - image tool config\n   * @param {Function} params.onUpload - one callback for all uploading (file, url, d-n-d, pasting)\n   * @param {Function} params.onError - callback for uploading errors\n   */\n  function Uploader(_ref) {\n    var config = _ref.config,\n        onUpload = _ref.onUpload,\n        onError = _ref.onError;\n\n    _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this, Uploader);\n\n    this.config = config;\n    this.onUpload = onUpload;\n    this.onError = onError;\n  }\n  /**\n   * Handle clicks on the upload file button\n   * Fires ajax.transport()\n   *\n   * @param {Function} onPreview - callback fired when preview is ready\n   */\n\n\n  _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(Uploader, [{\n    key: \"uploadSelectedFile\",\n    value: function uploadSelectedFile(_ref2) {\n      var _this = this;\n\n      var onPreview = _ref2.onPreview;\n\n      var preparePreview = function preparePreview(file) {\n        var reader = new window.FileReader();\n        reader.readAsDataURL(file);\n\n        reader.onload = function (e) {\n          onPreview(e.target.result);\n        };\n      };\n      /**\n       * Custom uploading\n       * or default uploading\n       */\n\n\n      var upload; // custom uploading\n\n      if (this.config.uploader && typeof this.config.uploader.uploadByFile === 'function') {\n        upload = _codexteam_ajax__WEBPACK_IMPORTED_MODULE_3___default.a.selectFiles({\n          accept: this.config.types\n        }).then(function (files) {\n          preparePreview(files[0]);\n\n          var customUpload = _this.config.uploader.uploadByFile(files[0]);\n\n          if (!isPromise(customUpload)) {\n            console.warn('Custom uploader method uploadByFile should return a Promise');\n          }\n\n          return customUpload;\n        }); // default uploading\n      } else {\n        upload = _codexteam_ajax__WEBPACK_IMPORTED_MODULE_3___default.a.transport({\n          url: this.config.endpoints.byFile,\n          data: this.config.additionalRequestData,\n          accept: this.config.types,\n          headers: this.config.additionalRequestHeaders,\n          beforeSend: function beforeSend(files) {\n            preparePreview(files[0]);\n          },\n          fieldName: this.config.field\n        }).then(function (response) {\n          return response.body;\n        });\n      }\n\n      upload.then(function (response) {\n        _this.onUpload(response);\n      })[\"catch\"](function (error) {\n        _this.onError(error);\n      });\n    }\n    /**\n     * Handle clicks on the upload file button\n     * Fires ajax.post()\n     *\n     * @param {string} url - image source url\n     */\n\n  }, {\n    key: \"uploadByUrl\",\n    value: function uploadByUrl(url) {\n      var _this2 = this;\n\n      var upload;\n      /**\n       * Custom uploading\n       */\n\n      if (this.config.uploader && typeof this.config.uploader.uploadByUrl === 'function') {\n        upload = this.config.uploader.uploadByUrl(url);\n\n        if (!isPromise(upload)) {\n          console.warn('Custom uploader method uploadByUrl should return a Promise');\n        }\n      } else {\n        /**\n         * Default uploading\n         */\n        upload = _codexteam_ajax__WEBPACK_IMPORTED_MODULE_3___default.a.post({\n          url: this.config.endpoints.byUrl,\n          data: Object.assign({\n            url: url\n          }, this.config.additionalRequestData),\n          type: _codexteam_ajax__WEBPACK_IMPORTED_MODULE_3___default.a.contentType.JSON,\n          headers: this.config.additionalRequestHeaders\n        }).then(function (response) {\n          return response.body;\n        });\n      }\n\n      upload.then(function (response) {\n        _this2.onUpload(response);\n      })[\"catch\"](function (error) {\n        _this2.onError(error);\n      });\n    }\n    /**\n     * Handle clicks on the upload file button\n     * Fires ajax.post()\n     *\n     * @param {File} file - file pasted by drag-n-drop\n     * @param {Function} onPreview - file pasted by drag-n-drop\n     */\n\n  }, {\n    key: \"uploadByFile\",\n    value: function uploadByFile(file, _ref3) {\n      var _this3 = this;\n\n      var onPreview = _ref3.onPreview;\n\n      /**\n       * Load file for preview\n       *\n       * @type {FileReader}\n       */\n      var reader = new window.FileReader();\n      reader.readAsDataURL(file);\n\n      reader.onload = function (e) {\n        onPreview(e.target.result);\n      };\n\n      var upload;\n      /**\n       * Custom uploading\n       */\n\n      if (this.config.uploader && typeof this.config.uploader.uploadByFile === 'function') {\n        upload = this.config.uploader.uploadByFile(file);\n\n        if (!isPromise(upload)) {\n          console.warn('Custom uploader method uploadByFile should return a Promise');\n        }\n      } else {\n        /**\n         * Default uploading\n         */\n        var formData = new window.FormData();\n        formData.append(this.config.field, file);\n\n        if (this.config.additionalRequestData && Object.keys(this.config.additionalRequestData).length) {\n          Object.entries(this.config.additionalRequestData).forEach(function (_ref4) {\n            var _ref5 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_ref4, 2),\n                name = _ref5[0],\n                value = _ref5[1];\n\n            formData.append(name, value);\n          });\n        }\n\n        upload = _codexteam_ajax__WEBPACK_IMPORTED_MODULE_3___default.a.post({\n          url: this.config.endpoints.byFile,\n          data: formData,\n          type: _codexteam_ajax__WEBPACK_IMPORTED_MODULE_3___default.a.contentType.JSON,\n          headers: this.config.additionalRequestHeaders\n        }).then(function (response) {\n          return response.body;\n        });\n      }\n\n      upload.then(function (response) {\n        _this3.onUpload(response);\n      })[\"catch\"](function (error) {\n        _this3.onError(error);\n      });\n    }\n  }]);\n\n  return Uploader;\n}();\n/**\n * Check if passed object is a Promise\n *\n * @param  {*}  object - object to check\n * @returns {boolean}\n */\n\n\n\n\nfunction isPromise(object) {\n  return window.Promise.resolve(object) === object;\n}\n\n//# sourceURL=webpack://Carousel/./src/uploader.js?");
  
  /***/ })
  
  /******/ })["default"];
  });