Template:CCU Taiwan/Javascript/onepagescroll

/*!

* Cachu Slider v0.7.0
* Copyright (c) 2018 Mystro Ken <mystroken@gmail.com>
* MIT License
*/

Cachu = /******/ (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, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // 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 = 109); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math

 ? window : typeof self != 'undefined' && self.Math == Math ? self
 // eslint-disable-next-line no-new-func
 : Function('return this')();

if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) {

var store = __webpack_require__(50)('wks'); var uid = __webpack_require__(24); var Symbol = __webpack_require__(0).Symbol; var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {

 return store[name] || (store[name] =
   USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));

};

$exports.store = store;


/***/ }), /* 2 */ /***/ (function(module, exports) {

var core = module.exports = { version: '2.5.7' }; if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__(0); var core = __webpack_require__(2); var ctx = __webpack_require__(10); var hide = __webpack_require__(9); var has = __webpack_require__(15); var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {

 var IS_FORCED = type & $export.F;
 var IS_GLOBAL = type & $export.G;
 var IS_STATIC = type & $export.S;
 var IS_PROTO = type & $export.P;
 var IS_BIND = type & $export.B;
 var IS_WRAP = type & $export.W;
 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
 var expProto = exports[PROTOTYPE];
 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
 var key, own, out;
 if (IS_GLOBAL) source = name;
 for (key in source) {
   // contains in native
   own = !IS_FORCED && target && target[key] !== undefined;
   if (own && has(exports, key)) continue;
   // export native or passed
   out = own ? target[key] : source[key];
   // prevent global pollution for namespaces
   exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
   // bind timers to global for call from export context
   : IS_BIND && own ? ctx(out, global)
   // wrap global constructors for prevent change them in library
   : IS_WRAP && target[key] == out ? (function (C) {
     var F = function (a, b, c) {
       if (this instanceof C) {
         switch (arguments.length) {
           case 0: return new C();
           case 1: return new C(a);
           case 2: return new C(a, b);
         } return new C(a, b, c);
       } return C.apply(this, arguments);
     };
     F[PROTOTYPE] = C[PROTOTYPE];
     return F;
   // make static versions for prototype methods
   })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
   // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
   if (IS_PROTO) {
     (exports.virtual || (exports.virtual = {}))[key] = out;
     // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
     if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
   }
 }

}; // type bitmap $export.F = 1; // forced $export.G = 2; // global $export.S = 4; // static $export.P = 8; // proto $export.B = 16; // bind $export.W = 32; // wrap $export.U = 64; // safe $export.R = 128; // real proto method for `library` module.exports = $export;


/***/ }), /* 4 */ /***/ (function(module, exports) {

module.exports = function (it) {

 return typeof it === 'object' ? it !== null : typeof it === 'function';

};


/***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) {

// Thank's IE8 for his funny defineProperty module.exports = !__webpack_require__(16)(function () {

 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;

});


/***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__(8); var IE8_DOM_DEFINE = __webpack_require__(106); var toPrimitive = __webpack_require__(105); var dP = Object.defineProperty;

exports.f = __webpack_require__(5) ? Object.defineProperty : function defineProperty(O, P, Attributes) {

 anObject(O);
 P = toPrimitive(P, true);
 anObject(Attributes);
 if (IE8_DOM_DEFINE) try {
   return dP(O, P, Attributes);
 } catch (e) { /* empty */ }
 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
 if ('value' in Attributes) O[P] = Attributes.value;
 return O;

};


/***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(108), __esModule: true };

/***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__(4); module.exports = function (it) {

 if (!isObject(it)) throw TypeError(it + ' is not an object!');
 return it;

};


/***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) {

var dP = __webpack_require__(6); var createDesc = __webpack_require__(55); module.exports = __webpack_require__(5) ? function (object, key, value) {

 return dP.f(object, key, createDesc(1, value));

} : function (object, key, value) {

 object[key] = value;
 return object;

};


/***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) {

// optional / simple context binding var aFunction = __webpack_require__(17); module.exports = function (fn, that, length) {

 aFunction(fn);
 if (that === undefined) return fn;
 switch (length) {
   case 1: return function (a) {
     return fn.call(that, a);
   };
   case 2: return function (a, b) {
     return fn.call(that, a, b);
   };
   case 3: return function (a, b, c) {
     return fn.call(that, a, b, c);
   };
 }
 return function (/* ...args */) {
   return fn.apply(that, arguments);
 };

};


/***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {

 value: true

}); exports.whichTransitionEvent = whichTransitionEvent; exports.whichAnimationEvent = whichAnimationEvent; exports.getSectionsMaxHeight = getSectionsMaxHeight; exports.addClass = addClass; // Constants var CACHU_MODE_FULL_PAGE = exports.CACHU_MODE_FULL_PAGE = "fullpage"; var CACHU_MODE_CONTENT_FIT = exports.CACHU_MODE_CONTENT_FIT = "content-fit";

// Function from David Walsh: http://davidwalsh.name/css-animation-callback function whichTransitionEvent() {

 var t,
     el = document.createElement("fakeelement");
 var transitions = {
   "transition": "transitionend",
   "OTransition": "oTransitionEnd",
   "MozTransition": "transitionend",
   "WebkitTransition": "webkitTransitionEnd"
 };
 for (t in transitions) {
   if (el.style[t] !== undefined) {
     return transitions[t];
   }
 }

}

function whichAnimationEvent() {

 var t,
     el = document.createElement("fakeelement");
 var animations = {
   "animation": "animationend",
   "OAnimation": "oAnimationEnd",
   "MozAnimation": "animationend",
   "WebkitAnimation": "webkitAnimationEnd"
 };
 for (t in animations) {
   if (el.style[t] !== undefined) {
     return animations[t];
   }
 }

}

/**

*
* @param {NodeList} sections
*/

function getSectionsMaxHeight(sections) {

 var maxHeight = 0;
 for (var i = 0; i < sections.length; i++) {
   var section = sections[i];
   var height = getOuterHeight(section);
   if (height > maxHeight) maxHeight = height;
 }
 return maxHeight;

}

/**

* @param {NodeList} sections
* @param {int} height
*/

var setSectionsHeight = exports.setSectionsHeight = function setSectionsHeight(sections, height) {

 for (var i = 0; i < sections.length; i++) {
   var section = sections[i];
   section.style.height = height + "px";
 }

};

/**

* @param {NodeList} sections
* @param {int} width
*/

var setSectionsWidth = exports.setSectionsWidth = function setSectionsWidth(sections, width) {

 for (var i = 0; i < sections.length; i++) {
   var section = sections[i];
   section.style.width = width + "px";
 }

};

/**

* Adds a classname to an element.
*
* @param {HTMLElement} el
* @param {string} className
*/

function addClass(el, className) {

 if (el.classList) el.classList.add(className);else el.className += ' ' + className;
 return el;

}

/**

* Removes a classname from an element.
*
* @param {HTMLElement} el
* @param {string} className
*/

var removeClass = exports.removeClass = function removeClass(el, className) {

 //console.log(el);
 if (el.classList) el.classList.remove(className);else el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
 return el;

};

/**

* Checks if an elements has a specific classname.
*
* @param {HTMLElement} el
* @param {string} className
*/

var hasClass = exports.hasClass = function hasClass(el, className) {

 return el.classList ? el.classList.contains(className) : new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);

};

/**

* Returns the outer height of an element.
*
* @param {HTMLElement} el
*/

var getOuterHeight = exports.getOuterHeight = function getOuterHeight(el) {

 var height = el.offsetHeight;
 var style = getComputedStyle(el);
 height += parseInt(style.marginTop) + parseInt(style.marginBottom);
 return height;

};

/**

* @param {HTMLElement} el
*/

var getOuterWidth = exports.getOuterWidth = function getOuterWidth(el) {

 var width = el.offsetWidth;
 var style = getComputedStyle(el);
 width += parseInt(style.marginLeft) + parseInt(style.marginRight);
 return width;

};

/***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) {

var ctx = __webpack_require__(10); var call = __webpack_require__(92); var isArrayIter = __webpack_require__(91); var anObject = __webpack_require__(8); var toLength = __webpack_require__(26); var getIterFn = __webpack_require__(90); var BREAK = {}; var RETURN = {}; var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {

 var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
 var f = ctx(fn, that, entries ? 2 : 1);
 var index = 0;
 var length, step, iterator, result;
 if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
 // fast case for arrays with default iterator
 if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
   result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
   if (result === BREAK || result === RETURN) return result;
 } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
   result = call(iterator, f, step.value, entries);
   if (result === BREAK || result === RETURN) return result;
 }

}; exports.BREAK = BREAK; exports.RETURN = RETURN;


/***/ }), /* 13 */ /***/ (function(module, exports) {

var toString = {}.toString;

module.exports = function (it) {

 return toString.call(it).slice(8, -1);

};


/***/ }), /* 14 */ /***/ (function(module, exports) {

module.exports = {};


/***/ }), /* 15 */ /***/ (function(module, exports) {

var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) {

 return hasOwnProperty.call(it, key);

};


/***/ }), /* 16 */ /***/ (function(module, exports) {

module.exports = function (exec) {

 try {
   return !!exec();
 } catch (e) {
   return true;
 }

};


/***/ }), /* 17 */ /***/ (function(module, exports) {

module.exports = function (it) {

 if (typeof it != 'function') throw TypeError(it + ' is not a function!');
 return it;

};


/***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) {

var def = __webpack_require__(6).f; var has = __webpack_require__(15); var TAG = __webpack_require__(1)('toStringTag');

module.exports = function (it, tag, stat) {

 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });

};


/***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) {

var hide = __webpack_require__(9); module.exports = function (target, src, safe) {

 for (var key in src) {
   if (safe && target[key]) target[key] = src[key];
   else hide(target, key, src[key]);
 } return target;

};


/***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

// 25.4.1.5 NewPromiseCapability(C) var aFunction = __webpack_require__(17);

function PromiseCapability(C) {

 var resolve, reject;
 this.promise = new C(function ($$resolve, $$reject) {
   if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
   resolve = $$resolve;
   reject = $$reject;
 });
 this.resolve = aFunction(resolve);
 this.reject = aFunction(reject);

}

module.exports.f = function (C) {

 return new PromiseCapability(C);

};


/***/ }), /* 21 */ /***/ (function(module, exports) {

module.exports = function (it, Constructor, name, forbiddenField) {

 if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
   throw TypeError(name + ': incorrect invocation!');
 } return it;

};


/***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) {

// getting tag from 19.1.3.6 Object.prototype.toString() var cof = __webpack_require__(13); var TAG = __webpack_require__(1)('toStringTag'); // ES3 wrong here var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error var tryGet = function (it, key) {

 try {
   return it[key];
 } catch (e) { /* empty */ }

};

module.exports = function (it) {

 var O, T, B;
 return it === undefined ? 'Undefined' : it === null ? 'Null'
   // @@toStringTag case
   : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
   // builtinTag case
   : ARG ? cof(O)
   // ES3 arguments fallback
   : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;

};


/***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) {

// 7.1.13 ToObject(argument) var defined = __webpack_require__(31); module.exports = function (it) {

 return Object(defined(it));

};


/***/ }), /* 24 */ /***/ (function(module, exports) {

var id = 0; var px = Math.random(); module.exports = function (key) {

 return 'Symbol('.concat(key === undefined ?  : key, ')_', (++id + px).toString(36));

};


/***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) {

var shared = __webpack_require__(50)('keys'); var uid = __webpack_require__(24); module.exports = function (key) {

 return shared[key] || (shared[key] = uid(key));

};


/***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) {

// 7.1.15 ToLength var toInteger = __webpack_require__(32); var min = Math.min; module.exports = function (it) {

 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991

};


/***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) {

// fallback for non-array-like ES3 and non-enumerable old V8 strings var cof = __webpack_require__(13); // eslint-disable-next-line no-prototype-builtins module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {

 return cof(it) == 'String' ? it.split() : Object(it);

};


/***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) {

// to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = __webpack_require__(27); var defined = __webpack_require__(31); module.exports = function (it) {

 return IObject(defined(it));

};


/***/ }), /* 29 */ /***/ (function(module, exports) {

module.exports = true;


/***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

var LIBRARY = __webpack_require__(29); var $export = __webpack_require__(3); var redefine = __webpack_require__(102); var hide = __webpack_require__(9); var Iterators = __webpack_require__(14); var $iterCreate = __webpack_require__(101); var setToStringTag = __webpack_require__(18); var getPrototypeOf = __webpack_require__(96); var ITERATOR = __webpack_require__(1)('iterator'); var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` var FF_ITERATOR = '@@iterator'; var KEYS = 'keys'; var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {

 $iterCreate(Constructor, NAME, next);
 var getMethod = function (kind) {
   if (!BUGGY && kind in proto) return proto[kind];
   switch (kind) {
     case KEYS: return function keys() { return new Constructor(this, kind); };
     case VALUES: return function values() { return new Constructor(this, kind); };
   } return function entries() { return new Constructor(this, kind); };
 };
 var TAG = NAME + ' Iterator';
 var DEF_VALUES = DEFAULT == VALUES;
 var VALUES_BUG = false;
 var proto = Base.prototype;
 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
 var $default = $native || getMethod(DEFAULT);
 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
 var methods, key, IteratorPrototype;
 // Fix native
 if ($anyNative) {
   IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
   if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
     // Set @@toStringTag to native iterators
     setToStringTag(IteratorPrototype, TAG, true);
     // fix for some old engines
     if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
   }
 }
 // fix Array#{values, @@iterator}.name in V8 / FF
 if (DEF_VALUES && $native && $native.name !== VALUES) {
   VALUES_BUG = true;
   $default = function values() { return $native.call(this); };
 }
 // Define iterator
 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
   hide(proto, ITERATOR, $default);
 }
 // Plug for library
 Iterators[NAME] = $default;
 Iterators[TAG] = returnThis;
 if (DEFAULT) {
   methods = {
     values: DEF_VALUES ? $default : getMethod(VALUES),
     keys: IS_SET ? $default : getMethod(KEYS),
     entries: $entries
   };
   if (FORCED) for (key in methods) {
     if (!(key in proto)) redefine(proto, key, methods[key]);
   } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
 }
 return methods;

};


/***/ }), /* 31 */ /***/ (function(module, exports) {

// 7.2.1 RequireObjectCoercible(argument) module.exports = function (it) {

 if (it == undefined) throw TypeError("Can't call method on  " + it);
 return it;

};


/***/ }), /* 32 */ /***/ (function(module, exports) {

// 7.1.4 ToInteger var ceil = Math.ceil; var floor = Math.floor; module.exports = function (it) {

 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);

};


/***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(104), __esModule: true };

/***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__(4); var document = __webpack_require__(0).document; // typeof document.createElement is 'object' in old IE var is = isObject(document) && isObject(document.createElement); module.exports = function (it) {

 return is ? document.createElement(it) : {};

};


/***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", { value: true });

var _defineProperty = __webpack_require__(7);

var _defineProperty2 = _interopRequireDefault(_defineProperty);

var _createClass = function () { 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; (0, _defineProperty2.default)(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _helpers = __webpack_require__(11);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var CachuNavigationItem = function () { function CachuNavigationItem() { var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

_classCallCheck(this, CachuNavigationItem);

this.index = index;

/**

  * Setting up the state
  */

this.state = { isInitialize: false };

/**

  * Manipulated DOM Elements.
  */

this.elements = { container: document.createElement("li"), anchor: document.createElement("a"), span: document.createElement("span"), tooltip: document.createElement("span") };

// Init the stuff this.initialize(); }

_createClass(CachuNavigationItem, [{ key: "initialize", value: function initialize() { // Initializes the Tooltip. (0, _helpers.addClass)(this.elements.tooltip, "cachu__nav__tooltip");

// Initializes the span. // Nothing to do for the moment.

// Initializes the anchor. (0, _helpers.addClass)(this.elements.anchor, "cachu__nav__button"); //this.elements.anchor.appendChild(this.elements.span);

// Initalizes the list item element. (0, _helpers.addClass)(this.elements.container, "cachu__nav__item"); // Append tooltip if it exists. this.elements.container.appendChild(this.elements.tooltip); this.elements.container.appendChild(this.elements.anchor); }

/**

  * @returns {Node}
  */

}, { key: "getNodeElement", value: function getNodeElement() { return this.elements.container; }

/**

  * Adds a text to the tooltip.
  *
  * @param {string} text
  */

}, { key: "setTooltip", value: function setTooltip(text) { this.elements.tooltip.innerText = text; } }, { key: "activate", value: function activate() { (0, _helpers.addClass)(this.elements.container, "active"); } }, { key: "deactivate", value: function deactivate() { (0, _helpers.removeClass)(this.elements.container, "active"); } }]);

return CachuNavigationItem; }();

exports.default = CachuNavigationItem;

/***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__(4); module.exports = function (it, TYPE) {

 if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
 return it;

};


/***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) {

var META = __webpack_require__(24)('meta'); var isObject = __webpack_require__(4); var has = __webpack_require__(15); var setDesc = __webpack_require__(6).f; var id = 0; var isExtensible = Object.isExtensible || function () {

 return true;

}; var FREEZE = !__webpack_require__(16)(function () {

 return isExtensible(Object.preventExtensions({}));

}); var setMeta = function (it) {

 setDesc(it, META, { value: {
   i: 'O' + ++id, // object ID
   w: {}          // weak collections IDs
 } });

}; var fastKey = function (it, create) {

 // return primitive with prefix
 if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
 if (!has(it, META)) {
   // can't set metadata to uncaught frozen object
   if (!isExtensible(it)) return 'F';
   // not necessary to add metadata
   if (!create) return 'E';
   // add missing metadata
   setMeta(it);
 // return object ID
 } return it[META].i;

}; var getWeak = function (it, create) {

 if (!has(it, META)) {
   // can't set metadata to uncaught frozen object
   if (!isExtensible(it)) return true;
   // not necessary to add metadata
   if (!create) return false;
   // add missing metadata
   setMeta(it);
 // return hash weak collections IDs
 } return it[META].w;

}; // add metadata on freeze-family methods calling var onFreeze = function (it) {

 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
 return it;

}; var meta = module.exports = {

 KEY: META,
 NEED: false,
 fastKey: fastKey,
 getWeak: getWeak,
 onFreeze: onFreeze

};


/***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", { value: true });

var _defineProperty = __webpack_require__(7);

var _defineProperty2 = _interopRequireDefault(_defineProperty);

var _createClass = function () { 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; (0, _defineProperty2.default)(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var CachuSlideListItem = function () { /**

 *
 * @param {CachuSlide} slide
 */

function CachuSlideListItem(slide) { var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

_classCallCheck(this, CachuSlideListItem);

this.index = index; this.slide = slide; this.next = null; this.prev = null; }

_createClass(CachuSlideListItem, [{ key: "enter", value: function enter() { var _this = this;

this.slide.navigationItem.activate();

var promise = // Trigger the before enter event this.slide.events.before.enter.trigger("!!!Trigger before entering!!!") // Manage the entering .then(function () { return _this.slide._enter(); }) // Trigger the after enter event .then(function () { return _this.slide.events.after.enter.trigger("!!!Trigger after entering!!!"); });

return promise; } }, { key: "leave", value: function leave() { var _this2 = this;

this.slide.navigationItem.deactivate();

var promise = // Trigger the before enter event this.slide.events.before.leave.trigger("!!!Trigger before leaving!!!") // Manage the entering of the slide .then(function () { return _this2.slide._leave(); }) // Trigger the after enter event .then(function () { return _this2.slide.events.after.leave.trigger("!!!Trigger after leaving!!!"); });

return promise; } }, { key: "setIndex", value: function setIndex(index) { this.index = index; this.slide.index = index; this.slide.navigationItem.index = index; } }]);

return CachuSlideListItem; }();

exports.default = CachuSlideListItem;

/***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", { value: true });

var _defineProperty = __webpack_require__(7);

var _defineProperty2 = _interopRequireDefault(_defineProperty);

var _promise = __webpack_require__(33);

var _promise2 = _interopRequireDefault(_promise);

var _createClass = function () { 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; (0, _defineProperty2.default)(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var CachuEvent = function () { function CachuEvent() { _classCallCheck(this, CachuEvent);

this.handlers = []; // Observers }

/**

 * Adds an event handler.
 *
 * @param {function} fn
 */


_createClass(CachuEvent, [{ key: "addListener", value: function addListener(fn) { this.handlers.push(fn); return this; }

/**

  * Removes an event handler.
  *
  * @param {function} fn
  */

}, { key: "removeListener", value: function removeListener(fn) { this.handlers = this.handlers.filter(function (handler) { if (handler !== fn) { return handler; } });

return this; }

/**

  * Triggers the event and calls
  * all the handlers.
  *
  * @param {*} o
  * @param {*} thisObj
  * @returns {Promise}
  */

}, { key: "trigger", value: function trigger() { var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; var thisObj = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;

var promise = _promise2.default.all(this.handlers.map(function (promise) { return promise(); })); return promise; } }]);

return CachuEvent; }();

exports.default = CachuEvent;

/***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", { value: true });

var _defineProperty = __webpack_require__(7);

var _defineProperty2 = _interopRequireDefault(_defineProperty);

var _promise = __webpack_require__(33);

var _promise2 = _interopRequireDefault(_promise);

var _createClass = function () { 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; (0, _defineProperty2.default)(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _cachuEvent = __webpack_require__(39);

var _cachuEvent2 = _interopRequireDefault(_cachuEvent);

var _helpers = __webpack_require__(11);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var CachuSlide = function () { function CachuSlide(section, slider, navigationItem) { _classCallCheck(this, CachuSlide);

this.index = 0;

/**

  * Setting up the state of
  * the animator
  */

this.state = { isInitialized: false, isPlaying: false };

this._actions = { enter: new _cachuEvent2.default(), leave: new _cachuEvent2.default() };

this.events = { after: { enter: new _cachuEvent2.default(), leave: new _cachuEvent2.default() }, before: { enter: new _cachuEvent2.default(), leave: new _cachuEvent2.default() } };

/**

  * DOM Elements
  * manipulated by the animator.
  */

this.elements = { section: section };

/**

  * Get the current slider.
  */

this.slider = slider;

/**

  * The attached navigation item.
  * @property { CachuNavigationItem }
  */

this.navigationItem = navigationItem;

// Initiailze the slide this._initialize(); }

_createClass(CachuSlide, [{ key: "_enter", value: function _enter() { var _this = this;

return new _promise2.default(function (resolve, reject) {

// Attach the event listener for resolving after // scrolling transition, if it's necessary. if (_this.slider.options.scrollingSpeed > 0) { var transitionEvent = (0, _helpers.whichTransitionEvent)();

_this.slider.elements.container.addEventListener(transitionEvent, function (e) { e = window.event || e; e.cancelBubble = true; e.stopPropagation();

if (e.target === _this.slider.elements.container) { //addClass(this.elements.section, "active"); resolve(); } }, false); }

// Slide the container to the correct viewport. _this.slider.slideContainer(_this.index);

// If the scrolling speed is not // greater than zero, resolve immediatly. if (_this.slider.options.scrollingSpeed <= 0) { resolve(); } }); } }, { key: "_leave", value: function _leave() { var _this2 = this;

return new _promise2.default(function (resolve, reject) { _this2.deactivate(); resolve(); }); } }, { key: "deactivate", value: function deactivate() { //removeClass(this.elements.section, "active"); } }, { key: "_initialize", value: function _initialize() {} }]);

return CachuSlide; }();

exports.default = CachuSlide;

/***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

var global = __webpack_require__(0); var core = __webpack_require__(2); var dP = __webpack_require__(6); var DESCRIPTORS = __webpack_require__(5); var SPECIES = __webpack_require__(1)('species');

module.exports = function (KEY) {

 var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
 if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
   configurable: true,
   get: function () { return this; }
 });

};


/***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__(8); var isObject = __webpack_require__(4); var newPromiseCapability = __webpack_require__(20);

module.exports = function (C, x) {

 anObject(C);
 if (isObject(x) && x.constructor === C) return x;
 var promiseCapability = newPromiseCapability.f(C);
 var resolve = promiseCapability.resolve;
 resolve(x);
 return promiseCapability.promise;

};


/***/ }), /* 43 */ /***/ (function(module, exports) {

module.exports = function (exec) {

 try {
   return { e: false, v: exec() };
 } catch (e) {
   return { e: true, v: e };
 }

};


/***/ }), /* 44 */ /***/ (function(module, exports, __webpack_require__) {

var ctx = __webpack_require__(10); var invoke = __webpack_require__(89); var html = __webpack_require__(48); var cel = __webpack_require__(34); var global = __webpack_require__(0); var process = global.process; var setTask = global.setImmediate; var clearTask = global.clearImmediate; var MessageChannel = global.MessageChannel; var Dispatch = global.Dispatch; var counter = 0; var queue = {}; var ONREADYSTATECHANGE = 'onreadystatechange'; var defer, channel, port; var run = function () {

 var id = +this;
 // eslint-disable-next-line no-prototype-builtins
 if (queue.hasOwnProperty(id)) {
   var fn = queue[id];
   delete queue[id];
   fn();
 }

}; var listener = function (event) {

 run.call(event.data);

}; // Node.js 0.9+ & IE10+ has setImmediate, otherwise: if (!setTask || !clearTask) {

 setTask = function setImmediate(fn) {
   var args = [];
   var i = 1;
   while (arguments.length > i) args.push(arguments[i++]);
   queue[++counter] = function () {
     // eslint-disable-next-line no-new-func
     invoke(typeof fn == 'function' ? fn : Function(fn), args);
   };
   defer(counter);
   return counter;
 };
 clearTask = function clearImmediate(id) {
   delete queue[id];
 };
 // Node.js 0.8-
 if (__webpack_require__(13)(process) == 'process') {
   defer = function (id) {
     process.nextTick(ctx(run, id, 1));
   };
 // Sphere (JS game engine) Dispatch API
 } else if (Dispatch && Dispatch.now) {
   defer = function (id) {
     Dispatch.now(ctx(run, id, 1));
   };
 // Browsers with MessageChannel, includes WebWorkers
 } else if (MessageChannel) {
   channel = new MessageChannel();
   port = channel.port2;
   channel.port1.onmessage = listener;
   defer = ctx(port.postMessage, port, 1);
 // Browsers with postMessage, skip WebWorkers
 // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
 } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
   defer = function (id) {
     global.postMessage(id + , '*');
   };
   global.addEventListener('message', listener, false);
 // IE8-
 } else if (ONREADYSTATECHANGE in cel('script')) {
   defer = function (id) {
     html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
       html.removeChild(this);
       run.call(id);
     };
   };
 // Rest old browsers
 } else {
   defer = function (id) {
     setTimeout(ctx(run, id, 1), 0);
   };
 }

} module.exports = {

 set: setTask,
 clear: clearTask

};


/***/ }), /* 45 */ /***/ (function(module, exports, __webpack_require__) {

// 7.3.20 SpeciesConstructor(O, defaultConstructor) var anObject = __webpack_require__(8); var aFunction = __webpack_require__(17); var SPECIES = __webpack_require__(1)('species'); module.exports = function (O, D) {

 var C = anObject(O).constructor;
 var S;
 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);

};


/***/ }), /* 46 */ /***/ (function(module, exports) {

module.exports = function (done, value) {

 return { value: value, done: !!done };

};


/***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) {

__webpack_require__(95); var global = __webpack_require__(0); var hide = __webpack_require__(9); var Iterators = __webpack_require__(14); var TO_STRING_TAG = __webpack_require__(1)('toStringTag');

var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +

 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
 'TextTrackList,TouchList').split(',');

for (var i = 0; i < DOMIterables.length; i++) {

 var NAME = DOMIterables[i];
 var Collection = global[NAME];
 var proto = Collection && Collection.prototype;
 if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
 Iterators[NAME] = Iterators.Array;

}


/***/ }), /* 48 */ /***/ (function(module, exports, __webpack_require__) {

var document = __webpack_require__(0).document; module.exports = document && document.documentElement;


/***/ }), /* 49 */ /***/ (function(module, exports) {

// IE 8- don't enum bug keys module.exports = (

 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'

).split(',');


/***/ }), /* 50 */ /***/ (function(module, exports, __webpack_require__) {

var core = __webpack_require__(2); var global = __webpack_require__(0); var SHARED = '__core-js_shared__'; var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {

 return store[key] || (store[key] = value !== undefined ? value : {});

})('versions', []).push({

 version: core.version,
 mode: __webpack_require__(29) ? 'pure' : 'global',
 copyright: '© 2018 Denis Pushkarev (zloirock.ru)'

});


/***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) {

// 19.1.2.14 / 15.2.3.14 Object.keys(O) var $keys = __webpack_require__(99); var enumBugKeys = __webpack_require__(49);

module.exports = Object.keys || function keys(O) {

 return $keys(O, enumBugKeys);

};


/***/ }), /* 52 */ /***/ (function(module, exports, __webpack_require__) {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) var anObject = __webpack_require__(8); var dPs = __webpack_require__(100); var enumBugKeys = __webpack_require__(49); var IE_PROTO = __webpack_require__(25)('IE_PROTO'); var Empty = function () { /* empty */ }; var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype var createDict = function () {

 // Thrash, waste and sodomy: IE GC bug
 var iframe = __webpack_require__(34)('iframe');
 var i = enumBugKeys.length;
 var lt = '<';
 var gt = '>';
 var iframeDocument;
 iframe.style.display = 'none';
 __webpack_require__(48).appendChild(iframe);
 iframe.src = 'javascript:'; // eslint-disable-line no-script-url
 // createDict = iframe.contentWindow.Object;
 // html.removeChild(iframe);
 iframeDocument = iframe.contentWindow.document;
 iframeDocument.open();
 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
 iframeDocument.close();
 createDict = iframeDocument.F;
 while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
 return createDict();

};

module.exports = Object.create || function create(O, Properties) {

 var result;
 if (O !== null) {
   Empty[PROTOTYPE] = anObject(O);
   result = new Empty();
   Empty[PROTOTYPE] = null;
   // add "__proto__" for Object.getPrototypeOf polyfill
   result[IE_PROTO] = O;
 } else result = createDict();
 return Properties === undefined ? result : dPs(result, Properties);

};


/***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

var $at = __webpack_require__(103)(true);

// 21.1.3.27 String.prototype[@@iterator]() __webpack_require__(30)(String, 'String', function (iterated) {

 this._t = String(iterated); // target
 this._i = 0;                // next index

// 21.1.5.2.1 %StringIteratorPrototype%.next() }, function () {

 var O = this._t;
 var index = this._i;
 var point;
 if (index >= O.length) return { value: undefined, done: true };
 point = $at(O, index);
 this._i += point.length;
 return { value: point, done: false };

});


/***/ }), /* 54 */ /***/ (function(module, exports) {


/***/ }), /* 55 */ /***/ (function(module, exports) {

module.exports = function (bitmap, value) {

 return {
   enumerable: !(bitmap & 1),
   configurable: !(bitmap & 2),
   writable: !(bitmap & 4),
   value: value
 };

};


/***/ }), /* 56 */ /***/ (function(module, exports) {

var g;

// This works in non-strict mode g = (function() { return this; })();

try { // This works if eval is allowed (see CSP) g = g || Function("return this")() || (1, eval)("this"); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; }

// g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...}

module.exports = g;


/***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {/**

* lodash (Custom Build) <https://lodash.com/>
* Build: `lodash modularize exports="npm" -o ./`
* Copyright jQuery Foundation and other contributors <https://jquery.org/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/

/** Used as the `TypeError` message for "Functions" methods. */ var FUNC_ERROR_TEXT = 'Expected a function';

/** Used as references for various `Number` constants. */ var NAN = 0 / 0;

/** `Object#toString` result references. */ var symbolTag = '[object Symbol]';

/** Used to match leading and trailing whitespace. */ var reTrim = /^\s+|\s+$/g;

/** Used to detect bad signed hexadecimal string values. */ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;

/** Used to detect binary string values. */ var reIsBinary = /^0b[01]+$/i;

/** Used to detect octal string values. */ var reIsOctal = /^0o[0-7]+$/i;

/** Built-in method references without a dependency on `root`. */ var freeParseInt = parseInt;

/** Detect free variable `global` from Node.js. */ var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;

/** Detect free variable `self`. */ var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */ var root = freeGlobal || freeSelf || Function('return this')();

/** Used for built-in method references. */ var objectProto = Object.prototype;

/**

* Used to resolve the
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/

var objectToString = objectProto.toString;

/* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max,

   nativeMin = Math.min;

/**

* Gets the timestamp of the number of milliseconds that have elapsed since
* the Unix epoch (1 January 1970 00:00:00 UTC).
*
* @static
* @memberOf _
* @since 2.4.0
* @category Date
* @returns {number} Returns the timestamp.
* @example
*
* _.defer(function(stamp) {
*   console.log(_.now() - stamp);
* }, _.now());
* // => Logs the number of milliseconds it took for the deferred invocation.
*/

var now = function() {

 return root.Date.now();

};

/**

* Creates a debounced function that delays invoking `func` until after `wait`
* milliseconds have elapsed since the last time the debounced function was
* invoked. The debounced function comes with a `cancel` method to cancel
* delayed `func` invocations and a `flush` method to immediately invoke them.
* Provide `options` to indicate whether `func` should be invoked on the
* leading and/or trailing edge of the `wait` timeout. The `func` is invoked
* with the last arguments provided to the debounced function. Subsequent
* calls to the debounced function return the result of the last `func`
* invocation.
*
* **Note:** If `leading` and `trailing` options are `true`, `func` is
* invoked on the trailing edge of the timeout only if the debounced function
* is invoked more than once during the `wait` timeout.
*
* If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
* until to the next tick, similar to `setTimeout` with a timeout of `0`.
*
* See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
* for details over the differences between `_.debounce` and `_.throttle`.
*
* @static
* @memberOf _
* @since 0.1.0
* @category Function
* @param {Function} func The function to debounce.
* @param {number} [wait=0] The number of milliseconds to delay.
* @param {Object} [options={}] The options object.
* @param {boolean} [options.leading=false]
*  Specify invoking on the leading edge of the timeout.
* @param {number} [options.maxWait]
*  The maximum time `func` is allowed to be delayed before it's invoked.
* @param {boolean} [options.trailing=true]
*  Specify invoking on the trailing edge of the timeout.
* @returns {Function} Returns the new debounced function.
* @example
*
* // Avoid costly calculations while the window size is in flux.
* jQuery(window).on('resize', _.debounce(calculateLayout, 150));
*
* // Invoke `sendMail` when clicked, debouncing subsequent calls.
* jQuery(element).on('click', _.debounce(sendMail, 300, {
*   'leading': true,
*   'trailing': false
* }));
*
* // Ensure `batchLog` is invoked once after 1 second of debounced calls.
* var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
* var source = new EventSource('/stream');
* jQuery(source).on('message', debounced);
*
* // Cancel the trailing debounced invocation.
* jQuery(window).on('popstate', debounced.cancel);
*/

function debounce(func, wait, options) {

 var lastArgs,
     lastThis,
     maxWait,
     result,
     timerId,
     lastCallTime,
     lastInvokeTime = 0,
     leading = false,
     maxing = false,
     trailing = true;
 if (typeof func != 'function') {
   throw new TypeError(FUNC_ERROR_TEXT);
 }
 wait = toNumber(wait) || 0;
 if (isObject(options)) {
   leading = !!options.leading;
   maxing = 'maxWait' in options;
   maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
   trailing = 'trailing' in options ? !!options.trailing : trailing;
 }
 function invokeFunc(time) {
   var args = lastArgs,
       thisArg = lastThis;
   lastArgs = lastThis = undefined;
   lastInvokeTime = time;
   result = func.apply(thisArg, args);
   return result;
 }
 function leadingEdge(time) {
   // Reset any `maxWait` timer.
   lastInvokeTime = time;
   // Start the timer for the trailing edge.
   timerId = setTimeout(timerExpired, wait);
   // Invoke the leading edge.
   return leading ? invokeFunc(time) : result;
 }
 function remainingWait(time) {
   var timeSinceLastCall = time - lastCallTime,
       timeSinceLastInvoke = time - lastInvokeTime,
       result = wait - timeSinceLastCall;
   return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
 }
 function shouldInvoke(time) {
   var timeSinceLastCall = time - lastCallTime,
       timeSinceLastInvoke = time - lastInvokeTime;
   // Either this is the first call, activity has stopped and we're at the
   // trailing edge, the system time has gone backwards and we're treating
   // it as the trailing edge, or we've hit the `maxWait` limit.
   return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
     (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
 }
 function timerExpired() {
   var time = now();
   if (shouldInvoke(time)) {
     return trailingEdge(time);
   }
   // Restart the timer.
   timerId = setTimeout(timerExpired, remainingWait(time));
 }
 function trailingEdge(time) {
   timerId = undefined;
   // Only invoke if we have `lastArgs` which means `func` has been
   // debounced at least once.
   if (trailing && lastArgs) {
     return invokeFunc(time);
   }
   lastArgs = lastThis = undefined;
   return result;
 }
 function cancel() {
   if (timerId !== undefined) {
     clearTimeout(timerId);
   }
   lastInvokeTime = 0;
   lastArgs = lastCallTime = lastThis = timerId = undefined;
 }
 function flush() {
   return timerId === undefined ? result : trailingEdge(now());
 }
 function debounced() {
   var time = now(),
       isInvoking = shouldInvoke(time);
   lastArgs = arguments;
   lastThis = this;
   lastCallTime = time;
   if (isInvoking) {
     if (timerId === undefined) {
       return leadingEdge(lastCallTime);
     }
     if (maxing) {
       // Handle invocations in a tight loop.
       timerId = setTimeout(timerExpired, wait);
       return invokeFunc(lastCallTime);
     }
   }
   if (timerId === undefined) {
     timerId = setTimeout(timerExpired, wait);
   }
   return result;
 }
 debounced.cancel = cancel;
 debounced.flush = flush;
 return debounced;

}

/**

* Checks if `value` is the
* [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String()`)
*
* @static
* @memberOf _
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an object, else `false`.
* @example
*
* _.isObject({});
* // => true
*
* _.isObject([1, 2, 3]);
* // => true
*
* _.isObject(_.noop);
* // => true
*
* _.isObject(null);
* // => false
*/

function isObject(value) {

 var type = typeof value;
 return !!value && (type == 'object' || type == 'function');

}

/**

* Checks if `value` is object-like. A value is object-like if it's not `null`
* and has a `typeof` result of "object".
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is object-like, else `false`.
* @example
*
* _.isObjectLike({});
* // => true
*
* _.isObjectLike([1, 2, 3]);
* // => true
*
* _.isObjectLike(_.noop);
* // => false
*
* _.isObjectLike(null);
* // => false
*/

function isObjectLike(value) {

 return !!value && typeof value == 'object';

}

/**

* Checks if `value` is classified as a `Symbol` primitive or object.
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
* @example
*
* _.isSymbol(Symbol.iterator);
* // => true
*
* _.isSymbol('abc');
* // => false
*/

function isSymbol(value) {

 return typeof value == 'symbol' ||
   (isObjectLike(value) && objectToString.call(value) == symbolTag);

}

/**

* Converts `value` to a number.
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to process.
* @returns {number} Returns the number.
* @example
*
* _.toNumber(3.2);
* // => 3.2
*
* _.toNumber(Number.MIN_VALUE);
* // => 5e-324
*
* _.toNumber(Infinity);
* // => Infinity
*
* _.toNumber('3.2');
* // => 3.2
*/

function toNumber(value) {

 if (typeof value == 'number') {
   return value;
 }
 if (isSymbol(value)) {
   return NAN;
 }
 if (isObject(value)) {
   var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
   value = isObject(other) ? (other + ) : other;
 }
 if (typeof value != 'string') {
   return value === 0 ? value : +value;
 }
 value = value.replace(reTrim, );
 var isBinary = reIsBinary.test(value);
 return (isBinary || reIsOctal.test(value))
   ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
   : (reIsBadHex.test(value) ? NAN : +value);

}

module.exports = debounce;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(56)))

/***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

// https://tc39.github.io/proposal-setmap-offrom/ var $export = __webpack_require__(3); var aFunction = __webpack_require__(17); var ctx = __webpack_require__(10); var forOf = __webpack_require__(12);

module.exports = function (COLLECTION) {

 $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
   var mapFn = arguments[1];
   var mapping, A, n, cb;
   aFunction(this);
   mapping = mapFn !== undefined;
   if (mapping) aFunction(mapFn);
   if (source == undefined) return new this();
   A = [];
   if (mapping) {
     n = 0;
     cb = ctx(mapFn, arguments[2], 2);
     forOf(source, false, function (nextItem) {
       A.push(cb(nextItem, n++));
     });
   } else {
     forOf(source, false, A.push, A);
   }
   return new this(A);
 } });

};


/***/ }), /* 59 */ /***/ (function(module, exports, __webpack_require__) {

// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from __webpack_require__(58)('Set');


/***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

// https://tc39.github.io/proposal-setmap-offrom/ var $export = __webpack_require__(3);

module.exports = function (COLLECTION) {

 $export($export.S, COLLECTION, { of: function of() {
   var length = arguments.length;
   var A = new Array(length);
   while (length--) A[length] = arguments[length];
   return new this(A);
 } });

};


/***/ }), /* 61 */ /***/ (function(module, exports, __webpack_require__) {

// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of __webpack_require__(60)('Set');


/***/ }), /* 62 */ /***/ (function(module, exports, __webpack_require__) {

var forOf = __webpack_require__(12);

module.exports = function (iter, ITERATOR) {

 var result = [];
 forOf(iter, false, result.push, result, ITERATOR);
 return result;

};


/***/ }), /* 63 */ /***/ (function(module, exports, __webpack_require__) {

// https://github.com/DavidBruant/Map-Set.prototype.toJSON var classof = __webpack_require__(22); var from = __webpack_require__(62); module.exports = function (NAME) {

 return function toJSON() {
   if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
   return from(this);
 };

};


/***/ }), /* 64 */ /***/ (function(module, exports, __webpack_require__) {

// https://github.com/DavidBruant/Map-Set.prototype.toJSON var $export = __webpack_require__(3);

$export($export.P + $export.R, 'Set', { toJSON: __webpack_require__(63)('Set') });


/***/ }), /* 65 */ /***/ (function(module, exports, __webpack_require__) {

// 7.2.2 IsArray(argument) var cof = __webpack_require__(13); module.exports = Array.isArray || function isArray(arg) {

 return cof(arg) == 'Array';

};


/***/ }), /* 66 */ /***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__(4); var isArray = __webpack_require__(65); var SPECIES = __webpack_require__(1)('species');

module.exports = function (original) {

 var C;
 if (isArray(original)) {
   C = original.constructor;
   // cross-realm fallback
   if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
   if (isObject(C)) {
     C = C[SPECIES];
     if (C === null) C = undefined;
   }
 } return C === undefined ? Array : C;

};


/***/ }), /* 67 */ /***/ (function(module, exports, __webpack_require__) {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length) var speciesConstructor = __webpack_require__(66);

module.exports = function (original, length) {

 return new (speciesConstructor(original))(length);

};


/***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) {

// 0 -> Array#forEach // 1 -> Array#map // 2 -> Array#filter // 3 -> Array#some // 4 -> Array#every // 5 -> Array#find // 6 -> Array#findIndex var ctx = __webpack_require__(10); var IObject = __webpack_require__(27); var toObject = __webpack_require__(23); var toLength = __webpack_require__(26); var asc = __webpack_require__(67); module.exports = function (TYPE, $create) {

 var IS_MAP = TYPE == 1;
 var IS_FILTER = TYPE == 2;
 var IS_SOME = TYPE == 3;
 var IS_EVERY = TYPE == 4;
 var IS_FIND_INDEX = TYPE == 6;
 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
 var create = $create || asc;
 return function ($this, callbackfn, that) {
   var O = toObject($this);
   var self = IObject(O);
   var f = ctx(callbackfn, that, 3);
   var length = toLength(self.length);
   var index = 0;
   var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
   var val, res;
   for (;length > index; index++) if (NO_HOLES || index in self) {
     val = self[index];
     res = f(val, index, O);
     if (TYPE) {
       if (IS_MAP) result[index] = res;   // map
       else if (res) switch (TYPE) {
         case 3: return true;             // some
         case 5: return val;              // find
         case 6: return index;            // findIndex
         case 2: result.push(val);        // filter
       } else if (IS_EVERY) return false; // every
     }
   }
   return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
 };

};


/***/ }), /* 69 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

var global = __webpack_require__(0); var $export = __webpack_require__(3); var meta = __webpack_require__(37); var fails = __webpack_require__(16); var hide = __webpack_require__(9); var redefineAll = __webpack_require__(19); var forOf = __webpack_require__(12); var anInstance = __webpack_require__(21); var isObject = __webpack_require__(4); var setToStringTag = __webpack_require__(18); var dP = __webpack_require__(6).f; var each = __webpack_require__(68)(0); var DESCRIPTORS = __webpack_require__(5);

module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {

 var Base = global[NAME];
 var C = Base;
 var ADDER = IS_MAP ? 'set' : 'add';
 var proto = C && C.prototype;
 var O = {};
 if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
   new C().entries().next();
 }))) {
   // create collection constructor
   C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
   redefineAll(C.prototype, methods);
   meta.NEED = true;
 } else {
   C = wrapper(function (target, iterable) {
     anInstance(target, C, NAME, '_c');
     target._c = new Base();
     if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
   });
   each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
     var IS_ADDER = KEY == 'add' || KEY == 'set';
     if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
       anInstance(this, C, KEY);
       if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
       var result = this._c[KEY](a === 0 ? 0 : a, b);
       return IS_ADDER ? this : result;
     });
   });
   IS_WEAK || dP(C.prototype, 'size', {
     get: function () {
       return this._c.size;
     }
   });
 }
 setToStringTag(C, NAME);
 O[NAME] = C;
 $export($export.G + $export.W + $export.F, O);
 if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
 return C;

};


/***/ }), /* 70 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

var dP = __webpack_require__(6).f; var create = __webpack_require__(52); var redefineAll = __webpack_require__(19); var ctx = __webpack_require__(10); var anInstance = __webpack_require__(21); var forOf = __webpack_require__(12); var $iterDefine = __webpack_require__(30); var step = __webpack_require__(46); var setSpecies = __webpack_require__(41); var DESCRIPTORS = __webpack_require__(5); var fastKey = __webpack_require__(37).fastKey; var validate = __webpack_require__(36); var SIZE = DESCRIPTORS ? '_s' : 'size';

var getEntry = function (that, key) {

 // fast case
 var index = fastKey(key);
 var entry;
 if (index !== 'F') return that._i[index];
 // frozen object case
 for (entry = that._f; entry; entry = entry.n) {
   if (entry.k == key) return entry;
 }

};

module.exports = {

 getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
   var C = wrapper(function (that, iterable) {
     anInstance(that, C, NAME, '_i');
     that._t = NAME;         // collection type
     that._i = create(null); // index
     that._f = undefined;    // first entry
     that._l = undefined;    // last entry
     that[SIZE] = 0;         // size
     if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
   });
   redefineAll(C.prototype, {
     // 23.1.3.1 Map.prototype.clear()
     // 23.2.3.2 Set.prototype.clear()
     clear: function clear() {
       for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
         entry.r = true;
         if (entry.p) entry.p = entry.p.n = undefined;
         delete data[entry.i];
       }
       that._f = that._l = undefined;
       that[SIZE] = 0;
     },
     // 23.1.3.3 Map.prototype.delete(key)
     // 23.2.3.4 Set.prototype.delete(value)
     'delete': function (key) {
       var that = validate(this, NAME);
       var entry = getEntry(that, key);
       if (entry) {
         var next = entry.n;
         var prev = entry.p;
         delete that._i[entry.i];
         entry.r = true;
         if (prev) prev.n = next;
         if (next) next.p = prev;
         if (that._f == entry) that._f = next;
         if (that._l == entry) that._l = prev;
         that[SIZE]--;
       } return !!entry;
     },
     // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
     // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
     forEach: function forEach(callbackfn /* , that = undefined */) {
       validate(this, NAME);
       var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
       var entry;
       while (entry = entry ? entry.n : this._f) {
         f(entry.v, entry.k, this);
         // revert to the last existing entry
         while (entry && entry.r) entry = entry.p;
       }
     },
     // 23.1.3.7 Map.prototype.has(key)
     // 23.2.3.7 Set.prototype.has(value)
     has: function has(key) {
       return !!getEntry(validate(this, NAME), key);
     }
   });
   if (DESCRIPTORS) dP(C.prototype, 'size', {
     get: function () {
       return validate(this, NAME)[SIZE];
     }
   });
   return C;
 },
 def: function (that, key, value) {
   var entry = getEntry(that, key);
   var prev, index;
   // change existing entry
   if (entry) {
     entry.v = value;
   // create new entry
   } else {
     that._l = entry = {
       i: index = fastKey(key, true), // <- index
       k: key,                        // <- key
       v: value,                      // <- value
       p: prev = that._l,             // <- previous entry
       n: undefined,                  // <- next entry
       r: false                       // <- removed
     };
     if (!that._f) that._f = entry;
     if (prev) prev.n = entry;
     that[SIZE]++;
     // add to index
     if (index !== 'F') that._i[index] = entry;
   } return that;
 },
 getEntry: getEntry,
 setStrong: function (C, NAME, IS_MAP) {
   // add .keys, .values, .entries, [@@iterator]
   // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
   $iterDefine(C, NAME, function (iterated, kind) {
     this._t = validate(iterated, NAME); // target
     this._k = kind;                     // kind
     this._l = undefined;                // previous
   }, function () {
     var that = this;
     var kind = that._k;
     var entry = that._l;
     // revert to the last existing entry
     while (entry && entry.r) entry = entry.p;
     // get next entry
     if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
       // or finish the iteration
       that._t = undefined;
       return step(1);
     }
     // return step by kind
     if (kind == 'keys') return step(0, entry.k);
     if (kind == 'values') return step(0, entry.v);
     return step(0, [entry.k, entry.v]);
   }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
   // add [@@species], 23.1.2.2, 23.2.2.2
   setSpecies(NAME);
 }

};


/***/ }), /* 71 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

var strong = __webpack_require__(70); var validate = __webpack_require__(36); var SET = 'Set';

// 23.2 Set Objects module.exports = __webpack_require__(69)(SET, function (get) {

 return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };

}, {

 // 23.2.3.1 Set.prototype.add(value)
 add: function add(value) {
   return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);
 }

}, strong);


/***/ }), /* 72 */ /***/ (function(module, exports, __webpack_require__) {

__webpack_require__(54); __webpack_require__(53); __webpack_require__(47); __webpack_require__(71); __webpack_require__(64); __webpack_require__(61); __webpack_require__(59); module.exports = __webpack_require__(2).Set;


/***/ }), /* 73 */ /***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(72), __esModule: true };

/***/ }), /* 74 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", { value: true });

var _defineProperty = __webpack_require__(7);

var _defineProperty2 = _interopRequireDefault(_defineProperty);

var _set = __webpack_require__(73);

var _set2 = _interopRequireDefault(_set);

var _createClass = function () { 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; (0, _defineProperty2.default)(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _cachuNavigationItem = __webpack_require__(35);

var _cachuNavigationItem2 = _interopRequireDefault(_cachuNavigationItem);

var _helpers = __webpack_require__(11);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var CachuNavigationList = function () { function CachuNavigationList() { _classCallCheck(this, CachuNavigationList);

/**

  * Setting up the state
  */

this.state = { isInitialize: false };

/**

  * Manipulated DOM Elements.
  */

this.elements = { container: document.createElement("ul") };

/**

  * Set of CachuNavigationItems.
  */

this.items = new _set2.default(); }

_createClass(CachuNavigationList, [{ key: "has", value: function has(item) { return this.items.has(item); } }, { key: "add", value: function add(item) {

if (item instanceof _cachuNavigationItem2.default) { return this.items.add(item); }

return this; } }, { key: "delete", value: function _delete(item) { return this.items.delete(item); } }, { key: "forEach", value: function forEach(fn) { return this.items.forEach(fn); } }, { key: "generateNodeList", value: function generateNodeList() { var _this = this;

(0, _helpers.addClass)(this.elements.container, "cachu__nav__items");

this.items.forEach(function (item) {

_this.elements.container.appendChild(item.elements.container);

item.elements.container.addEventListener('mouseover', function (e) { _this.items.forEach(function (el) { return (0, _helpers.addClass)(el.elements.container, 'dismissed'); }); (0, _helpers.removeClass)(item.elements.container, 'dismissed'); (0, _helpers.addClass)(item.elements.container, 'mouseover'); });

item.elements.container.addEventListener('mouseout', function (e) { (0, _helpers.removeClass)(item.elements.container, 'mouseover'); _this.items.forEach(function (el) { return (0, _helpers.removeClass)(el.elements.container, 'dismissed'); }); }); });

return this.elements.container; } }]);

return CachuNavigationList; }();

exports.default = CachuNavigationList;

/***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", { value: true });

var _defineProperty = __webpack_require__(7);

var _defineProperty2 = _interopRequireDefault(_defineProperty);

var _createClass = function () { 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; (0, _defineProperty2.default)(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _cachuNavigationList = __webpack_require__(74);

var _cachuNavigationList2 = _interopRequireDefault(_cachuNavigationList);

var _helpers = __webpack_require__(11);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var CachuNavigation = function () { function CachuNavigation() { _classCallCheck(this, CachuNavigation);

this.navigationList = new _cachuNavigationList2.default();

/**

  * Manipulated DOM Elements.
  */

this.elements = { container: document.createElement("div") };

// Initializes the navigation. this.initialize(); }

/**

 * Initialize the navigation.
 */


_createClass(CachuNavigation, [{ key: "initialize", value: function initialize() {

// Set the container this.elements.container.setAttribute("id", "cachu-nav"); (0, _helpers.addClass)(this.elements.container, "cachu__nav"); }

/**

  * Insert navigation to the DOM.
  */

}, { key: "render", value: function render() { var parentNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'right';

// Retrieve the Navigation Items from the list. this.elements.container.appendChild(this.navigationList.generateNodeList());

// Set the position of the navigation (0, _helpers.addClass)(this.elements.container, 'cachu__nav--' + position);

// Insert to DOM. if (null === parentNode) document.body.appendChild(this.elements.container);else parentNode.appendChild(this.elements.container); } }]);

return CachuNavigation; }();

exports.default = CachuNavigation;

/***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", { value: true });

var _defineProperty = __webpack_require__(7);

var _defineProperty2 = _interopRequireDefault(_defineProperty);

var _createClass = function () { 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; (0, _defineProperty2.default)(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _slide = __webpack_require__(40);

var _slide2 = _interopRequireDefault(_slide);

var _slideListItem = __webpack_require__(38);

var _slideListItem2 = _interopRequireDefault(_slideListItem);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var CachuSlideList = function () { function CachuSlideList() { _classCallCheck(this, CachuSlideList);

this.head = null; this.tail = null; this.length = 0; }

/**

 *
 * @param { CachuSlide } slide
 */


_createClass(CachuSlideList, [{ key: "push", value: function push(slide) {

if (!slide) return this;

var newSlide = new _slideListItem2.default(slide); newSlide.prev = this.tail;

if (this.tail) this.tail.next = newSlide;else this.head = newSlide;

this.tail = newSlide; newSlide.setIndex(this.length + 1);

this.length++; return this; }

/**

  * @returns { CachuSlide|null }
  */

}, { key: "pop", value: function pop() { if (!this.tail) return null;

var slide = this.tail.slide; this.tail = this.tail.prev;

if (this.tail) this.tail.next = null;else this.head = null;

return slide; }

/**

  *
  * @param { CachuSlide | int} slide
  * @returns { CachuSlideListItem }
  */

}, { key: "find", value: function find(slide) { var thisListItem = this.head; var slideIntVal = parseInt(slide);

while (thisListItem) {

if (slideIntVal > 0) { if (thisListItem.index === slideIntVal) { return thisListItem; } } else { if (thisListItem.slide === slide) { return thisListItem; } }

thisListItem = thisListItem.next; }

return thisListItem; } }]);

return CachuSlideList; }();

exports.default = CachuSlideList;

/***/ }), /* 77 */ /***/ (function(module, exports, __webpack_require__) {

/*

* Hamster.js v1.1.2
* (c) 2013 Monospaced http://monospaced.com
* License: MIT
*/

(function(window, document){ 'use strict';

/**

* Hamster
* use this to create instances
* @returns {Hamster.Instance}
* @constructor
*/

var Hamster = function(element) {

 return new Hamster.Instance(element);

};

// default event name Hamster.SUPPORT = 'wheel';

// default DOM methods Hamster.ADD_EVENT = 'addEventListener'; Hamster.REMOVE_EVENT = 'removeEventListener'; Hamster.PREFIX = ;

// until browser inconsistencies have been fixed... Hamster.READY = false;

Hamster.Instance = function(element){

 if (!Hamster.READY) {
   // fix browser inconsistencies
   Hamster.normalise.browser();
   // Hamster is ready...!
   Hamster.READY = true;
 }
 this.element = element;
 // store attached event handlers
 this.handlers = [];
 // return instance
 return this;

};

/**

* create new hamster instance
* all methods should return the instance itself, so it is chainable.
* @param   {HTMLElement}       element
* @returns {Hamster.Instance}
* @constructor
*/

Hamster.Instance.prototype = {

 /**
  * bind events to the instance
  * @param   {Function}    handler
  * @param   {Boolean}     useCapture
  * @returns {Hamster.Instance}
  */
 wheel: function onEvent(handler, useCapture){
   Hamster.event.add(this, Hamster.SUPPORT, handler, useCapture);
   // handle MozMousePixelScroll in older Firefox
   if (Hamster.SUPPORT === 'DOMMouseScroll') {
     Hamster.event.add(this, 'MozMousePixelScroll', handler, useCapture);
   }
   return this;
 },
 /**
  * unbind events to the instance
  * @param   {Function}    handler
  * @param   {Boolean}     useCapture
  * @returns {Hamster.Instance}
  */
 unwheel: function offEvent(handler, useCapture){
   // if no handler argument,
   // unbind the last bound handler (if exists)
   if (handler === undefined && (handler = this.handlers.slice(-1)[0])) {
     handler = handler.original;
   }
   Hamster.event.remove(this, Hamster.SUPPORT, handler, useCapture);
   // handle MozMousePixelScroll in older Firefox
   if (Hamster.SUPPORT === 'DOMMouseScroll') {
     Hamster.event.remove(this, 'MozMousePixelScroll', handler, useCapture);
   }
   return this;
 }

};

Hamster.event = {

 /**
  * cross-browser 'addWheelListener'
  * @param   {Instance}    hamster
  * @param   {String}      eventName
  * @param   {Function}    handler
  * @param   {Boolean}     useCapture
  */
 add: function add(hamster, eventName, handler, useCapture){
   // store the original handler
   var originalHandler = handler;
   // redefine the handler
   handler = function(originalEvent){
     if (!originalEvent) {
       originalEvent = window.event;
     }
     // create a normalised event object,
     // and normalise "deltas" of the mouse wheel
     var event = Hamster.normalise.event(originalEvent),
         delta = Hamster.normalise.delta(originalEvent);
     // fire the original handler with normalised arguments
     return originalHandler(event, delta[0], delta[1], delta[2]);
   };
   // cross-browser addEventListener
   hamster.element[Hamster.ADD_EVENT](Hamster.PREFIX + eventName, handler, useCapture || false);
   // store original and normalised handlers on the instance
   hamster.handlers.push({
     original: originalHandler,
     normalised: handler
   });
 },
 /**
  * removeWheelListener
  * @param   {Instance}    hamster
  * @param   {String}      eventName
  * @param   {Function}    handler
  * @param   {Boolean}     useCapture
  */
 remove: function remove(hamster, eventName, handler, useCapture){
   // find the normalised handler on the instance
   var originalHandler = handler,
       lookup = {},
       handlers;
   for (var i = 0, len = hamster.handlers.length; i < len; ++i) {
     lookup[hamster.handlers[i].original] = hamster.handlers[i];
   }
   handlers = lookup[originalHandler];
   handler = handlers.normalised;
   // cross-browser removeEventListener
   hamster.element[Hamster.REMOVE_EVENT](Hamster.PREFIX + eventName, handler, useCapture || false);
   // remove original and normalised handlers from the instance
   for (var h in hamster.handlers) {
     if (hamster.handlers[h] == handlers) {
       hamster.handlers.splice(h, 1);
       break;
     }
   }
 }

};

/**

* these hold the lowest deltas,
* used to normalise the delta values
* @type {Number}
*/

var lowestDelta,

   lowestDeltaXY;

Hamster.normalise = {

 /**
  * fix browser inconsistencies
  */
 browser: function normaliseBrowser(){
   // detect deprecated wheel events
   if (!('onwheel' in document || document.documentMode >= 9)) {
     Hamster.SUPPORT = document.onmousewheel !== undefined ?
                       'mousewheel' : // webkit and IE < 9 support at least "mousewheel"
                       'DOMMouseScroll'; // assume remaining browsers are older Firefox
   }
   // detect deprecated event model
   if (!window.addEventListener) {
     // assume IE < 9
     Hamster.ADD_EVENT = 'attachEvent';
     Hamster.REMOVE_EVENT = 'detachEvent';
     Hamster.PREFIX = 'on';
   }
 },
 /**
  * create a normalised event object
  * @param   {Function}    originalEvent
  * @returns {Object}      event
  */
  event: function normaliseEvent(originalEvent){
   var event = {
         // keep a reference to the original event object
         originalEvent: originalEvent,
         target: originalEvent.target || originalEvent.srcElement,
         type: 'wheel',
         deltaMode: originalEvent.type === 'MozMousePixelScroll' ? 0 : 1,
         deltaX: 0,
         deltaZ: 0,
         preventDefault: function(){
           if (originalEvent.preventDefault) {
             originalEvent.preventDefault();
           } else {
             originalEvent.returnValue = false;
           }
         },
         stopPropagation: function(){
           if (originalEvent.stopPropagation) {
             originalEvent.stopPropagation();
           } else {
             originalEvent.cancelBubble = false;
           }
         }
       };
   // calculate deltaY (and deltaX) according to the event
   // 'mousewheel'
   if (originalEvent.wheelDelta) {
     event.deltaY = - 1/40 * originalEvent.wheelDelta;
   }
   // webkit
   if (originalEvent.wheelDeltaX) {
     event.deltaX = - 1/40 * originalEvent.wheelDeltaX;
   }
   // 'DomMouseScroll'
   if (originalEvent.detail) {
     event.deltaY = originalEvent.detail;
   }
   return event;
 },
 /**
  * normalise 'deltas' of the mouse wheel
  * @param   {Function}    originalEvent
  * @returns {Array}       deltas
  */
 delta: function normaliseDelta(originalEvent){
   var delta = 0,
     deltaX = 0,
     deltaY = 0,
     absDelta = 0,
     absDeltaXY = 0,
     fn;
   // normalise deltas according to the event
   // 'wheel' event
   if (originalEvent.deltaY) {
     deltaY = originalEvent.deltaY * -1;
     delta  = deltaY;
   }
   if (originalEvent.deltaX) {
     deltaX = originalEvent.deltaX;
     delta  = deltaX * -1;
   }
   // 'mousewheel' event
   if (originalEvent.wheelDelta) {
     delta = originalEvent.wheelDelta;
   }
   // webkit
   if (originalEvent.wheelDeltaY) {
     deltaY = originalEvent.wheelDeltaY;
   }
   if (originalEvent.wheelDeltaX) {
     deltaX = originalEvent.wheelDeltaX * -1;
   }
   // 'DomMouseScroll' event
   if (originalEvent.detail) {
     delta = originalEvent.detail * -1;
   }
   // Don't return NaN
   if (delta === 0) {
     return [0, 0, 0];
   }
   // look for lowest delta to normalize the delta values
   absDelta = Math.abs(delta);
   if (!lowestDelta || absDelta < lowestDelta) {
     lowestDelta = absDelta;
   }
   absDeltaXY = Math.max(Math.abs(deltaY), Math.abs(deltaX));
   if (!lowestDeltaXY || absDeltaXY < lowestDeltaXY) {
     lowestDeltaXY = absDeltaXY;
   }
   // convert deltas to whole numbers
   fn = delta > 0 ? 'floor' : 'ceil';
   delta  = Math[fn](delta / lowestDelta);
   deltaX = Math[fn](deltaX / lowestDeltaXY);
   deltaY = Math[fn](deltaY / lowestDeltaXY);
   return [delta, deltaX, deltaY];
 }

};

if (typeof window.define === 'function' && window.define.amd) {

 // AMD
 window.define('hamster', [], function(){
   return Hamster;
 });

} else if (true) {

 // CommonJS
 module.exports = Hamster;

} else {}

})(window, window.document);


/***/ }), /* 78 */ /***/ (function(module, exports) {

exports.f = {}.propertyIsEnumerable;


/***/ }), /* 79 */ /***/ (function(module, exports) {

exports.f = Object.getOwnPropertySymbols;


/***/ }), /* 80 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

// 19.1.2.1 Object.assign(target, source, ...) var getKeys = __webpack_require__(51); var gOPS = __webpack_require__(79); var pIE = __webpack_require__(78); var toObject = __webpack_require__(23); var IObject = __webpack_require__(27); var $assign = Object.assign;

// should work with symbols and should have deterministic property order (V8 bug) module.exports = !$assign || __webpack_require__(16)(function () {

 var A = {};
 var B = {};
 // eslint-disable-next-line no-undef
 var S = Symbol();
 var K = 'abcdefghijklmnopqrst';
 A[S] = 7;
 K.split().forEach(function (k) { B[k] = k; });
 return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join() != K;

}) ? function assign(target, source) { // eslint-disable-line no-unused-vars

 var T = toObject(target);
 var aLen = arguments.length;
 var index = 1;
 var getSymbols = gOPS.f;
 var isEnum = pIE.f;
 while (aLen > index) {
   var S = IObject(arguments[index++]);
   var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
   var length = keys.length;
   var j = 0;
   var key;
   while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];
 } return T;

} : $assign;


/***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) {

// 19.1.3.1 Object.assign(target, source) var $export = __webpack_require__(3);

$export($export.S + $export.F, 'Object', { assign: __webpack_require__(80) });


/***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) {

__webpack_require__(81); module.exports = __webpack_require__(2).Object.assign;


/***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(82), __esModule: true };

/***/ }), /* 84 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

// https://github.com/tc39/proposal-promise-try var $export = __webpack_require__(3); var newPromiseCapability = __webpack_require__(20); var perform = __webpack_require__(43);

$export($export.S, 'Promise', { 'try': function (callbackfn) {

 var promiseCapability = newPromiseCapability.f(this);
 var result = perform(callbackfn);
 (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
 return promiseCapability.promise;

} });


/***/ }), /* 85 */ /***/ (function(module, exports, __webpack_require__) {

"use strict"; // https://github.com/tc39/proposal-promise-finally

var $export = __webpack_require__(3); var core = __webpack_require__(2); var global = __webpack_require__(0); var speciesConstructor = __webpack_require__(45); var promiseResolve = __webpack_require__(42);

$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {

 var C = speciesConstructor(this, core.Promise || global.Promise);
 var isFunction = typeof onFinally == 'function';
 return this.then(
   isFunction ? function (x) {
     return promiseResolve(C, onFinally()).then(function () { return x; });
   } : onFinally,
   isFunction ? function (e) {
     return promiseResolve(C, onFinally()).then(function () { throw e; });
   } : onFinally
 );

} });


/***/ }), /* 86 */ /***/ (function(module, exports, __webpack_require__) {

var ITERATOR = __webpack_require__(1)('iterator'); var SAFE_CLOSING = false;

try {

 var riter = [7][ITERATOR]();
 riter['return'] = function () { SAFE_CLOSING = true; };
 // eslint-disable-next-line no-throw-literal
 Array.from(riter, function () { throw 2; });

} catch (e) { /* empty */ }

module.exports = function (exec, skipClosing) {

 if (!skipClosing && !SAFE_CLOSING) return false;
 var safe = false;
 try {
   var arr = [7];
   var iter = arr[ITERATOR]();
   iter.next = function () { return { done: safe = true }; };
   arr[ITERATOR] = function () { return iter; };
   exec(arr);
 } catch (e) { /* empty */ }
 return safe;

};


/***/ }), /* 87 */ /***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__(0); var navigator = global.navigator;

module.exports = navigator && navigator.userAgent || ;


/***/ }), /* 88 */ /***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__(0); var macrotask = __webpack_require__(44).set; var Observer = global.MutationObserver || global.WebKitMutationObserver; var process = global.process; var Promise = global.Promise; var isNode = __webpack_require__(13)(process) == 'process';

module.exports = function () {

 var head, last, notify;
 var flush = function () {
   var parent, fn;
   if (isNode && (parent = process.domain)) parent.exit();
   while (head) {
     fn = head.fn;
     head = head.next;
     try {
       fn();
     } catch (e) {
       if (head) notify();
       else last = undefined;
       throw e;
     }
   } last = undefined;
   if (parent) parent.enter();
 };
 // Node.js
 if (isNode) {
   notify = function () {
     process.nextTick(flush);
   };
 // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
 } else if (Observer && !(global.navigator && global.navigator.standalone)) {
   var toggle = true;
   var node = document.createTextNode();
   new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
   notify = function () {
     node.data = toggle = !toggle;
   };
 // environments with maybe non-completely correct, but existent Promise
 } else if (Promise && Promise.resolve) {
   // Promise.resolve without an argument throws an error in LG WebOS 2
   var promise = Promise.resolve(undefined);
   notify = function () {
     promise.then(flush);
   };
 // for other environments - macrotask based on:
 // - setImmediate
 // - MessageChannel
 // - window.postMessag
 // - onreadystatechange
 // - setTimeout
 } else {
   notify = function () {
     // strange IE + webpack dev server bug - use .call(global)
     macrotask.call(global, flush);
   };
 }
 return function (fn) {
   var task = { fn: fn, next: undefined };
   if (last) last.next = task;
   if (!head) {
     head = task;
     notify();
   } last = task;
 };

};


/***/ }), /* 89 */ /***/ (function(module, exports) {

// fast apply, http://jsperf.lnkit.com/fast-apply/5 module.exports = function (fn, args, that) {

 var un = that === undefined;
 switch (args.length) {
   case 0: return un ? fn()
                     : fn.call(that);
   case 1: return un ? fn(args[0])
                     : fn.call(that, args[0]);
   case 2: return un ? fn(args[0], args[1])
                     : fn.call(that, args[0], args[1]);
   case 3: return un ? fn(args[0], args[1], args[2])
                     : fn.call(that, args[0], args[1], args[2]);
   case 4: return un ? fn(args[0], args[1], args[2], args[3])
                     : fn.call(that, args[0], args[1], args[2], args[3]);
 } return fn.apply(that, args);

};


/***/ }), /* 90 */ /***/ (function(module, exports, __webpack_require__) {

var classof = __webpack_require__(22); var ITERATOR = __webpack_require__(1)('iterator'); var Iterators = __webpack_require__(14); module.exports = __webpack_require__(2).getIteratorMethod = function (it) {

 if (it != undefined) return it[ITERATOR]
   || it['@@iterator']
   || Iterators[classof(it)];

};


/***/ }), /* 91 */ /***/ (function(module, exports, __webpack_require__) {

// check on default Array iterator var Iterators = __webpack_require__(14); var ITERATOR = __webpack_require__(1)('iterator'); var ArrayProto = Array.prototype;

module.exports = function (it) {

 return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);

};


/***/ }), /* 92 */ /***/ (function(module, exports, __webpack_require__) {

// call something on iterator step with safe closing on error var anObject = __webpack_require__(8); module.exports = function (iterator, fn, value, entries) {

 try {
   return entries ? fn(anObject(value)[0], value[1]) : fn(value);
 // 7.4.6 IteratorClose(iterator, completion)
 } catch (e) {
   var ret = iterator['return'];
   if (ret !== undefined) anObject(ret.call(iterator));
   throw e;
 }

};


/***/ }), /* 93 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

var LIBRARY = __webpack_require__(29); var global = __webpack_require__(0); var ctx = __webpack_require__(10); var classof = __webpack_require__(22); var $export = __webpack_require__(3); var isObject = __webpack_require__(4); var aFunction = __webpack_require__(17); var anInstance = __webpack_require__(21); var forOf = __webpack_require__(12); var speciesConstructor = __webpack_require__(45); var task = __webpack_require__(44).set; var microtask = __webpack_require__(88)(); var newPromiseCapabilityModule = __webpack_require__(20); var perform = __webpack_require__(43); var userAgent = __webpack_require__(87); var promiseResolve = __webpack_require__(42); var PROMISE = 'Promise'; var TypeError = global.TypeError; var process = global.process; var versions = process && process.versions; var v8 = versions && versions.v8 || ; var $Promise = global[PROMISE]; var isNode = classof(process) == 'process'; var empty = function () { /* empty */ }; var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;

var USE_NATIVE = !!function () {

 try {
   // correct subclassing with @@species support
   var promise = $Promise.resolve(1);
   var FakePromise = (promise.constructor = {})[__webpack_require__(1)('species')] = function (exec) {
     exec(empty, empty);
   };
   // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
   return (isNode || typeof PromiseRejectionEvent == 'function')
     && promise.then(empty) instanceof FakePromise
     // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
     // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
     // we can't detect it synchronously, so just check versions
     && v8.indexOf('6.6') !== 0
     && userAgent.indexOf('Chrome/66') === -1;
 } catch (e) { /* empty */ }

}();

// helpers var isThenable = function (it) {

 var then;
 return isObject(it) && typeof (then = it.then) == 'function' ? then : false;

}; var notify = function (promise, isReject) {

 if (promise._n) return;
 promise._n = true;
 var chain = promise._c;
 microtask(function () {
   var value = promise._v;
   var ok = promise._s == 1;
   var i = 0;
   var run = function (reaction) {
     var handler = ok ? reaction.ok : reaction.fail;
     var resolve = reaction.resolve;
     var reject = reaction.reject;
     var domain = reaction.domain;
     var result, then, exited;
     try {
       if (handler) {
         if (!ok) {
           if (promise._h == 2) onHandleUnhandled(promise);
           promise._h = 1;
         }
         if (handler === true) result = value;
         else {
           if (domain) domain.enter();
           result = handler(value); // may throw
           if (domain) {
             domain.exit();
             exited = true;
           }
         }
         if (result === reaction.promise) {
           reject(TypeError('Promise-chain cycle'));
         } else if (then = isThenable(result)) {
           then.call(result, resolve, reject);
         } else resolve(result);
       } else reject(value);
     } catch (e) {
       if (domain && !exited) domain.exit();
       reject(e);
     }
   };
   while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
   promise._c = [];
   promise._n = false;
   if (isReject && !promise._h) onUnhandled(promise);
 });

}; var onUnhandled = function (promise) {

 task.call(global, function () {
   var value = promise._v;
   var unhandled = isUnhandled(promise);
   var result, handler, console;
   if (unhandled) {
     result = perform(function () {
       if (isNode) {
         process.emit('unhandledRejection', value, promise);
       } else if (handler = global.onunhandledrejection) {
         handler({ promise: promise, reason: value });
       } else if ((console = global.console) && console.error) {
         console.error('Unhandled promise rejection', value);
       }
     });
     // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
     promise._h = isNode || isUnhandled(promise) ? 2 : 1;
   } promise._a = undefined;
   if (unhandled && result.e) throw result.v;
 });

}; var isUnhandled = function (promise) {

 return promise._h !== 1 && (promise._a || promise._c).length === 0;

}; var onHandleUnhandled = function (promise) {

 task.call(global, function () {
   var handler;
   if (isNode) {
     process.emit('rejectionHandled', promise);
   } else if (handler = global.onrejectionhandled) {
     handler({ promise: promise, reason: promise._v });
   }
 });

}; var $reject = function (value) {

 var promise = this;
 if (promise._d) return;
 promise._d = true;
 promise = promise._w || promise; // unwrap
 promise._v = value;
 promise._s = 2;
 if (!promise._a) promise._a = promise._c.slice();
 notify(promise, true);

}; var $resolve = function (value) {

 var promise = this;
 var then;
 if (promise._d) return;
 promise._d = true;
 promise = promise._w || promise; // unwrap
 try {
   if (promise === value) throw TypeError("Promise can't be resolved itself");
   if (then = isThenable(value)) {
     microtask(function () {
       var wrapper = { _w: promise, _d: false }; // wrap
       try {
         then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
       } catch (e) {
         $reject.call(wrapper, e);
       }
     });
   } else {
     promise._v = value;
     promise._s = 1;
     notify(promise, false);
   }
 } catch (e) {
   $reject.call({ _w: promise, _d: false }, e); // wrap
 }

};

// constructor polyfill if (!USE_NATIVE) {

 // 25.4.3.1 Promise(executor)
 $Promise = function Promise(executor) {
   anInstance(this, $Promise, PROMISE, '_h');
   aFunction(executor);
   Internal.call(this);
   try {
     executor(ctx($resolve, this, 1), ctx($reject, this, 1));
   } catch (err) {
     $reject.call(this, err);
   }
 };
 // eslint-disable-next-line no-unused-vars
 Internal = function Promise(executor) {
   this._c = [];             // <- awaiting reactions
   this._a = undefined;      // <- checked in isUnhandled reactions
   this._s = 0;              // <- state
   this._d = false;          // <- done
   this._v = undefined;      // <- value
   this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
   this._n = false;          // <- notify
 };
 Internal.prototype = __webpack_require__(19)($Promise.prototype, {
   // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
   then: function then(onFulfilled, onRejected) {
     var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
     reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
     reaction.fail = typeof onRejected == 'function' && onRejected;
     reaction.domain = isNode ? process.domain : undefined;
     this._c.push(reaction);
     if (this._a) this._a.push(reaction);
     if (this._s) notify(this, false);
     return reaction.promise;
   },
   // 25.4.5.1 Promise.prototype.catch(onRejected)
   'catch': function (onRejected) {
     return this.then(undefined, onRejected);
   }
 });
 OwnPromiseCapability = function () {
   var promise = new Internal();
   this.promise = promise;
   this.resolve = ctx($resolve, promise, 1);
   this.reject = ctx($reject, promise, 1);
 };
 newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
   return C === $Promise || C === Wrapper
     ? new OwnPromiseCapability(C)
     : newGenericPromiseCapability(C);
 };

}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); __webpack_require__(18)($Promise, PROMISE); __webpack_require__(41)(PROMISE); Wrapper = __webpack_require__(2)[PROMISE];

// statics $export($export.S + $export.F * !USE_NATIVE, PROMISE, {

 // 25.4.4.5 Promise.reject(r)
 reject: function reject(r) {
   var capability = newPromiseCapability(this);
   var $$reject = capability.reject;
   $$reject(r);
   return capability.promise;
 }

}); $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {

 // 25.4.4.6 Promise.resolve(x)
 resolve: function resolve(x) {
   return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
 }

}); $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(86)(function (iter) {

 $Promise.all(iter)['catch'](empty);

})), PROMISE, {

 // 25.4.4.1 Promise.all(iterable)
 all: function all(iterable) {
   var C = this;
   var capability = newPromiseCapability(C);
   var resolve = capability.resolve;
   var reject = capability.reject;
   var result = perform(function () {
     var values = [];
     var index = 0;
     var remaining = 1;
     forOf(iterable, false, function (promise) {
       var $index = index++;
       var alreadyCalled = false;
       values.push(undefined);
       remaining++;
       C.resolve(promise).then(function (value) {
         if (alreadyCalled) return;
         alreadyCalled = true;
         values[$index] = value;
         --remaining || resolve(values);
       }, reject);
     });
     --remaining || resolve(values);
   });
   if (result.e) reject(result.v);
   return capability.promise;
 },
 // 25.4.4.4 Promise.race(iterable)
 race: function race(iterable) {
   var C = this;
   var capability = newPromiseCapability(C);
   var reject = capability.reject;
   var result = perform(function () {
     forOf(iterable, false, function (promise) {
       C.resolve(promise).then(capability.resolve, reject);
     });
   });
   if (result.e) reject(result.v);
   return capability.promise;
 }

});


/***/ }), /* 94 */ /***/ (function(module, exports) {

module.exports = function () { /* empty */ };


/***/ }), /* 95 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

var addToUnscopables = __webpack_require__(94); var step = __webpack_require__(46); var Iterators = __webpack_require__(14); var toIObject = __webpack_require__(28);

// 22.1.3.4 Array.prototype.entries() // 22.1.3.13 Array.prototype.keys() // 22.1.3.29 Array.prototype.values() // 22.1.3.30 Array.prototype[@@iterator]() module.exports = __webpack_require__(30)(Array, 'Array', function (iterated, kind) {

 this._t = toIObject(iterated); // target
 this._i = 0;                   // next index
 this._k = kind;                // kind

// 22.1.5.2.1 %ArrayIteratorPrototype%.next() }, function () {

 var O = this._t;
 var kind = this._k;
 var index = this._i++;
 if (!O || index >= O.length) {
   this._t = undefined;
   return step(1);
 }
 if (kind == 'keys') return step(0, index);
 if (kind == 'values') return step(0, O[index]);
 return step(0, [index, O[index]]);

}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) Iterators.Arguments = Iterators.Array;

addToUnscopables('keys'); addToUnscopables('values'); addToUnscopables('entries');


/***/ }), /* 96 */ /***/ (function(module, exports, __webpack_require__) {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) var has = __webpack_require__(15); var toObject = __webpack_require__(23); var IE_PROTO = __webpack_require__(25)('IE_PROTO'); var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {

 O = toObject(O);
 if (has(O, IE_PROTO)) return O[IE_PROTO];
 if (typeof O.constructor == 'function' && O instanceof O.constructor) {
   return O.constructor.prototype;
 } return O instanceof Object ? ObjectProto : null;

};


/***/ }), /* 97 */ /***/ (function(module, exports, __webpack_require__) {

var toInteger = __webpack_require__(32); var max = Math.max; var min = Math.min; module.exports = function (index, length) {

 index = toInteger(index);
 return index < 0 ? max(index + length, 0) : min(index, length);

};


/***/ }), /* 98 */ /***/ (function(module, exports, __webpack_require__) {

// false -> Array#indexOf // true -> Array#includes var toIObject = __webpack_require__(28); var toLength = __webpack_require__(26); var toAbsoluteIndex = __webpack_require__(97); module.exports = function (IS_INCLUDES) {

 return function ($this, el, fromIndex) {
   var O = toIObject($this);
   var length = toLength(O.length);
   var index = toAbsoluteIndex(fromIndex, length);
   var value;
   // Array#includes uses SameValueZero equality algorithm
   // eslint-disable-next-line no-self-compare
   if (IS_INCLUDES && el != el) while (length > index) {
     value = O[index++];
     // eslint-disable-next-line no-self-compare
     if (value != value) return true;
   // Array#indexOf ignores holes, Array#includes - not
   } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
     if (O[index] === el) return IS_INCLUDES || index || 0;
   } return !IS_INCLUDES && -1;
 };

};


/***/ }), /* 99 */ /***/ (function(module, exports, __webpack_require__) {

var has = __webpack_require__(15); var toIObject = __webpack_require__(28); var arrayIndexOf = __webpack_require__(98)(false); var IE_PROTO = __webpack_require__(25)('IE_PROTO');

module.exports = function (object, names) {

 var O = toIObject(object);
 var i = 0;
 var result = [];
 var key;
 for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
 // Don't enum bug & hidden keys
 while (names.length > i) if (has(O, key = names[i++])) {
   ~arrayIndexOf(result, key) || result.push(key);
 }
 return result;

};


/***/ }), /* 100 */ /***/ (function(module, exports, __webpack_require__) {

var dP = __webpack_require__(6); var anObject = __webpack_require__(8); var getKeys = __webpack_require__(51);

module.exports = __webpack_require__(5) ? Object.defineProperties : function defineProperties(O, Properties) {

 anObject(O);
 var keys = getKeys(Properties);
 var length = keys.length;
 var i = 0;
 var P;
 while (length > i) dP.f(O, P = keys[i++], Properties[P]);
 return O;

};


/***/ }), /* 101 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";

var create = __webpack_require__(52); var descriptor = __webpack_require__(55); var setToStringTag = __webpack_require__(18); var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() __webpack_require__(9)(IteratorPrototype, __webpack_require__(1)('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {

 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
 setToStringTag(Constructor, NAME + ' Iterator');

};


/***/ }), /* 102 */ /***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__(9);


/***/ }), /* 103 */ /***/ (function(module, exports, __webpack_require__) {

var toInteger = __webpack_require__(32); var defined = __webpack_require__(31); // true -> String#at // false -> String#codePointAt module.exports = function (TO_STRING) {

 return function (that, pos) {
   var s = String(defined(that));
   var i = toInteger(pos);
   var l = s.length;
   var a, b;
   if (i < 0 || i >= l) return TO_STRING ?  : undefined;
   a = s.charCodeAt(i);
   return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
     ? TO_STRING ? s.charAt(i) : a
     : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
 };

};


/***/ }), /* 104 */ /***/ (function(module, exports, __webpack_require__) {

__webpack_require__(54); __webpack_require__(53); __webpack_require__(47); __webpack_require__(93); __webpack_require__(85); __webpack_require__(84); module.exports = __webpack_require__(2).Promise;


/***/ }), /* 105 */ /***/ (function(module, exports, __webpack_require__) {

// 7.1.1 ToPrimitive(input [, PreferredType]) var isObject = __webpack_require__(4); // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function (it, S) {

 if (!isObject(it)) return it;
 var fn, val;
 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
 throw TypeError("Can't convert object to primitive value");

};


/***/ }), /* 106 */ /***/ (function(module, exports, __webpack_require__) {

module.exports = !__webpack_require__(5) && !__webpack_require__(16)(function () {

 return Object.defineProperty(__webpack_require__(34)('div'), 'a', { get: function () { return 7; } }).a != 7;

});


/***/ }), /* 107 */ /***/ (function(module, exports, __webpack_require__) {

var $export = __webpack_require__(3); // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) $export($export.S + $export.F * !__webpack_require__(5), 'Object', { defineProperty: __webpack_require__(6).f });


/***/ }), /* 108 */ /***/ (function(module, exports, __webpack_require__) {

__webpack_require__(107); var $Object = __webpack_require__(2).Object; module.exports = function defineProperty(it, key, desc) {

 return $Object.defineProperty(it, key, desc);

};


/***/ }), /* 109 */ /***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", { value: true });

var _defineProperty = __webpack_require__(7);

var _defineProperty2 = _interopRequireDefault(_defineProperty);

var _promise = __webpack_require__(33);

var _promise2 = _interopRequireDefault(_promise);

var _assign = __webpack_require__(83);

var _assign2 = _interopRequireDefault(_assign);

var _createClass = function () { 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; (0, _defineProperty2.default)(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _hamsterjs = __webpack_require__(77);

var _hamsterjs2 = _interopRequireDefault(_hamsterjs);

var _slide = __webpack_require__(40);

var _slide2 = _interopRequireDefault(_slide);

var _slideList = __webpack_require__(76);

var _slideList2 = _interopRequireDefault(_slideList);

var _slideListItem = __webpack_require__(38);

var _slideListItem2 = _interopRequireDefault(_slideListItem);

var _cachuEvent = __webpack_require__(39);

var _cachuEvent2 = _interopRequireDefault(_cachuEvent);

var _cachuNavigation = __webpack_require__(75);

var _cachuNavigation2 = _interopRequireDefault(_cachuNavigation);

var _cachuNavigationItem = __webpack_require__(35);

var _cachuNavigationItem2 = _interopRequireDefault(_cachuNavigationItem);

var _helpers = __webpack_require__(11);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var debounce = __webpack_require__(57);


var defaultOptions = { disableMouseEvents: false, // Disable mousewheel event listening. scrollingSpeed: 1000, // The speed of the transition. scrollingLoop: true, // Loop after reaching the end. scrollingDirection: 'vertical', // Loop after reaching the end. navigationEnabled: true, // Enable navigation buttons navigationPosition: 'right' // The Navigation's position };

var Cachu = function () { function Cachu(wrapper) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

_classCallCheck(this, Cachu);

/**

  * Setting up the state of
  * the animator
  */

this.state = { mode: _helpers.CACHU_MODE_FULL_PAGE, // Default mode. isInitialized: false, isRendered: false, isPaused: true, isRunning: false, isScrolling: false, wrapperHeight: 0, wrapperWidth: 0 };

/**

  * Options
  */

this.options = (0, _assign2.default)(defaultOptions, options);

this.events = { after: { render: new _cachuEvent2.default() }, before: { render: new _cachuEvent2.default() } };

/**

  * @property {CachuSlideList}
  */

this.slideList = new _slideList2.default();

/**

  * DOM Elements
  * manipulated by the animator.
  */

this.elements = { wrapper: wrapper, container: wrapper.querySelector('.cachu__sections'), sections: wrapper.querySelectorAll('.cachu__section') };

/**

  * The current slider list item.
  * @property {CachuSlideListItem}
  */

this.currentSlideItem = null;

/**

  * Instantiate the slider navigation.
  */

this.navigation = new _cachuNavigation2.default(this);

/**

  * Initialize the system.
  */

this.initialize(); }

/**

 * Initializes stuffs for the system.
 * 		- Instantiating slide items.
 * 		- Setting the current slide item.
 */


_createClass(Cachu, [{ key: "initialize", value: function initialize() {

if (false === this.state.isInitialized) {

// Set mode this.state.mode = this._detectMode();

for (var i = 0; i < this.elements.sections.length; i++) { var element = this.elements.sections[i];

var navigationItem = new _cachuNavigationItem2.default(); this.navigation.navigationList.add(navigationItem); this.slideList.push(new _slide2.default(element, this, navigationItem)); }

this.currentSlideItem = this.slideList.head;

this.state.isInitialized = true; } }

/**

  * Renders the slider.
  *
  * @returns { Promise }
  */

}, { key: "render", value: function render() { var _this = this;

if (false === this.state.isRendered) { var promise = this.events.before.render.trigger().then(function () { return _this._render(); }).then(function () { return _this.events.after.render.trigger(); }); return promise; }

return _promise2.default.resolve(); }

/**

  * @returns { Promise }
  */

}, { key: "_render", value: function _render() { var _this2 = this;

return new _promise2.default(function (resolve, reject) {

// Hydrate the slider wrapper. _this2._hydrateSlider();

_this2.elements.container.style.webkitTransition = "-webkit-transform " + _this2.options.scrollingSpeed + "ms cubic-bezier(.56,.12,.12,.98)"; _this2.elements.container.style.msTransition = "-ms-transform " + _this2.options.scrollingSpeed + "ms cubic-bezier(.56,.12,.12,.98)"; _this2.elements.container.style.transition = "transform " + _this2.options.scrollingSpeed + "ms cubic-bezier(.56,.12,.12,.98)";

// Attach events. if (false === _this2.options.disableMouseEvents) { var hamster = (0, _hamsterjs2.default)(_this2.elements.container); var onMouseWheelDebounced = debounce(function (event, delta) { return _this2._onMouseWheel(delta); }, 0, { "maxWait": 1000 }); hamster.wheel(onMouseWheelDebounced); }

// Hook navigation actions. var cachuSlideListItem = _this2.slideList.head;

var _loop = function _loop() { var slideListItem = cachuSlideListItem; var slide = slideListItem.slide; var slideNavigationItem = slide.navigationItem; var slideNavigationItemAnchor = slideNavigationItem.elements.anchor;

slideNavigationItemAnchor.addEventListener('click', function (event) { event.preventDefault(); //slideNavigationItem.activate(); _this2._scrollTo(slideListItem); return false; });

cachuSlideListItem = cachuSlideListItem.next; };

while (cachuSlideListItem) { _loop(); }

// Render the navigation if (true === _this2.options.navigationEnabled) _this2.navigation.render(_this2.elements.wrapper, _this2.options.navigationPosition);

_this2.elements.container.style.visibility = "visible";

_this2.state.isRendered = true; resolve(_this2); }); } }, { key: "_onMouseWheel", value: function _onMouseWheel(delta) { if (false === this.state.isScrolling) { if (delta > 0) this.prev();else this.next(); } }

/**

  * Run the slider.
  *
  * @returns { Promise }
  */

}, { key: "run", value: function run() { var _this3 = this;

if (false === this.state.isRunning) { // Render first the slider. var promise = this.render().then(function () { return _this3._run(); }); return promise; } return _promise2.default.resolve(); }

/**

  * @returns { Promise }
  */

}, { key: "_run", value: function _run() { var _this4 = this;

return new _promise2.default(function (resolve, reject) {

// Run the slider. _this4.currentSlideItem.enter().then(function () { _this4.state.isRunning = true; resolve(); }); }); }

/**

  * @returns { Promise }
  */

}, { key: "prev", value: function prev() { var from = this.currentSlideItem; var to = this.currentSlideItem.prev;

// If scrolling loop enabled, // we've to scroll to the last slide // when the current one is the first. if (null === to && true === this.options.scrollingLoop && this.slideList.length > 1) { to = this.slideList.tail; }

return this._scroll(from, to); }

/**

  * @returns { Promise }
  */

}, { key: "next", value: function next() { var from = this.currentSlideItem; var to = this.currentSlideItem.next;

// If scrolling loop enabled, // we've to scroll to the first slide // when the current one is the last. if (null === to && true === this.options.scrollingLoop && this.slideList.length > 1) { to = this.slideList.head; }

return this._scroll(from, to); } }, { key: "_scrollTo", value: function _scrollTo(slideItem) {

if (slideItem instanceof _slideListItem2.default && this.currentSlideItem != slideItem) { var from = this.currentSlideItem; var to = slideItem; return this._scroll(from, to); }

return _promise2.default.resolve(); }

/**

  *
  * @param { CachuSlideListItem } from
  * @param { CachuSlideListItem } to
  * @returns { Promise }
  */

}, { key: "_scroll", value: function _scroll(from, to) { var _this5 = this;

if (false === this.state.isScrolling && from && to) {

this.state.isScrolling = true; //console.info(`Start leaving Slide ${from.index}...`);

var promise = from.leave().then(function () { //console.info(`Slide ${from.index} leaved!`); //console.info(`Start entering Slide ${to.index}...`); return to.enter(); }).then(function () { //console.info(`Slide ${to.index} entered!`); _this5.currentSlideItem = to; _this5.state.isScrolling = false; }); return promise; } return _promise2.default.resolve(); } }, { key: "_hydrateSlider", value: function _hydrateSlider() { var _this6 = this;

// First, we should find an apropriate // height for the wrapper. // Then we'll force each section to fit that height.

// Get the wrapper width. this.state.wrapperWidth = (0, _helpers.getOuterWidth)(this.elements.container);

// Get the apropriate height of the wrapper. this.state.wrapperHeight = _helpers.CACHU_MODE_CONTENT_FIT === this.state.mode ? (0, _helpers.getSectionsMaxHeight)(this.elements.sections) : (0, _helpers.getOuterHeight)(this.elements.wrapper);

// Fix the wrapper height and hide overflow. this.elements.wrapper.style.height = this.state.wrapperHeight + "px"; this.elements.wrapper.style.overflow = "hidden";

// Fix the height and the width of each section. (0, _helpers.setSectionsHeight)(this.elements.sections, this.state.wrapperHeight); (0, _helpers.setSectionsWidth)(this.elements.sections, this.state.wrapperWidth);

// Set the scrolling direction if (this.options.scrollingDirection === 'vertical') { (0, _helpers.removeClass)(this.elements.container, 'cachu__sections--horizontal'); } else if (this.options.scrollingDirection === 'horizontal') { (0, _helpers.addClass)(this.elements.container, 'cachu__sections--horizontal'); }

window.addEventListener('resize', function (e) { _this6._hydrateSlider(); }); } }, { key: "_dehydrateSlider", value: function _dehydrateSlider() { this.state.wrapperHeight = 0;

// Reset the wrapper attribute. this.elements.wrapper.style.height = "auto"; this.elements.wrapper.style.overflow = "auto"; } }, { key: "_detectMode", value: function _detectMode() { return true === (0, _helpers.hasClass)(this.elements.wrapper, "cachu__container--content-fit") ? _helpers.CACHU_MODE_CONTENT_FIT : _helpers.CACHU_MODE_FULL_PAGE; } }, { key: "slideContainer", value: function slideContainer() { var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;


var translateX = 0; var translateY = 0;

if (this.options.scrollingDirection === 'vertical') { translateY = -1 * this.state.wrapperHeight * (index - 1); } else if (this.options.scrollingDirection === 'horizontal') { translateX = -1 * this.state.wrapperWidth * (index - 1); }

this.elements.container.style.transform = "translate3d(" + translateX + "px," + translateY + "px,0px)"; } }, { key: "destroy", value: function destroy() { this._dehydrateSlider(); } }]);

return Cachu; }();

exports.default = Cachu;

/***/ }) /******/ ])["default"];