{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///lory.min.js","webpack:///webpack/bootstrap 85bdd04943e5c295f168","webpack:///./src/lory.js","webpack:///./src/utils/detect-prefixes.js","webpack:///./src/utils/detect-supportsPassive.js","webpack:///./src/utils/dispatch-event.js","webpack:///./node_modules/custom-event/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/defaults.js"],"names":["root","factory","exports","module","define","amd","a","i","self","this","modules","__webpack_require__","moduleId","installedModules","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","_interopRequireDefault","obj","default","lory","slider","opts","setActiveElement","slides","currentIndex","_options","options","classNameActiveSlide","forEach","element","index","classList","contains","remove","add","setupInfinite","slideArray","_options2","infinite","front","slice","back","length","cloned","cloneNode","slideContainer","appendChild","reverse","insertBefore","firstChild","addEventListener","prefixes","transitionEnd","onTransitionEnd","children","dispatchSliderEvent","phase","type","detail","_dispatchEvent2","translate","to","duration","ease","style","transition","transform","elementWidth","getBoundingClientRect","width","offsetWidth","slide","nextIndex","direction","_options3","slideSpeed","slidesToScroll","rewind","rewindPrev","rewindSpeed","_options3$classNameDi","classNameDisabledNextCtrl","undefined","_options3$classNameDi2","classNameDisabledPrevCtrl","nextSlide","maxOffset","Math","round","slidesWidth","frameWidth","prevCtrl","nextCtrl","min","max","abs","position","x","nextOffset","offsetLeft","transitionEndCallback","currentSlide","setup","_detectPrefixes2","_options4","classNameFrame","classNameSlideContainer","classNamePrevCtrl","classNameNextCtrl","_options4$classNameDi","_options4$classNameDi2","enableMouseEvents","initialIndex","frame","getElementsByClassName","y","offsetTop","reset","prev","next","onTouchstart","touchEventParams","onClick","window","onResize","_options5","rewindOnResize","reduce","previousValue","slideTo","returnIndex","destroy","removeEventListener","onTouchmove","onTouchend","Array","apply","removeChild","lastChild","event","_options6","touches","pageX","pageY","touchOffset","time","Date","now","isScrolling","delta","isValid","Number","isOutOfBounds","snapBackSpeed","preventDefault","_detectSupportsPassive2","passive","jQuery","value","_extends","assign","target","arguments","source","key","_detectPrefixes","_detectSupportsPassive","_dispatchEvent","_defaults","_defaults2","detectPrefixes","el","document","createElement","prop","body","detectSupportsPassive","supportsPassive","e","dispatchEvent","_customEvent2","bubbles","cancelable","_customEvent","global","NativeCustomEvent","CustomEvent","foo","createEvent","params","initCustomEvent","createEventObject","Boolean","g","Function","eval"],"mappings":"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","file":"lory.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* globals jQuery */\n\nexports.lory = lory;\n\nvar _detectPrefixes = __webpack_require__(1);\n\nvar _detectPrefixes2 = _interopRequireDefault(_detectPrefixes);\n\nvar _detectSupportsPassive = __webpack_require__(2);\n\nvar _detectSupportsPassive2 = _interopRequireDefault(_detectSupportsPassive);\n\nvar _dispatchEvent = __webpack_require__(3);\n\nvar _dispatchEvent2 = _interopRequireDefault(_dispatchEvent);\n\nvar _defaults = __webpack_require__(6);\n\nvar _defaults2 = _interopRequireDefault(_defaults);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar slice = Array.prototype.slice;\n\nfunction lory(slider, opts) {\n var position = void 0;\n var slidesWidth = void 0;\n var frameWidth = void 0;\n var slides = void 0;\n\n /**\n * slider DOM elements\n */\n var frame = void 0;\n var slideContainer = void 0;\n var prevCtrl = void 0;\n var nextCtrl = void 0;\n var prefixes = void 0;\n var transitionEndCallback = void 0;\n\n var index = 0;\n var options = {};\n var touchEventParams = (0, _detectSupportsPassive2.default)() ? { passive: true } : false;\n\n /**\n * if object is jQuery convert to native DOM element\n */\n if (typeof jQuery !== 'undefined' && slider instanceof jQuery) {\n slider = slider[0];\n }\n\n /**\n * private\n * set active class to element which is the current slide\n */\n function setActiveElement(slides, currentIndex) {\n var _options = options,\n classNameActiveSlide = _options.classNameActiveSlide;\n\n\n slides.forEach(function (element, index) {\n if (element.classList.contains(classNameActiveSlide)) {\n element.classList.remove(classNameActiveSlide);\n }\n });\n\n slides[currentIndex].classList.add(classNameActiveSlide);\n }\n\n /**\n * private\n * setupInfinite: function to setup if infinite is set\n *\n * @param {array} slideArray\n * @return {array} array of updated slideContainer elements\n */\n function setupInfinite(slideArray) {\n var _options2 = options,\n infinite = _options2.infinite;\n\n\n var front = slideArray.slice(0, infinite);\n var back = slideArray.slice(slideArray.length - infinite, slideArray.length);\n\n front.forEach(function (element) {\n var cloned = element.cloneNode(true);\n\n slideContainer.appendChild(cloned);\n });\n\n back.reverse().forEach(function (element) {\n var cloned = element.cloneNode(true);\n\n slideContainer.insertBefore(cloned, slideContainer.firstChild);\n });\n\n slideContainer.addEventListener(prefixes.transitionEnd, onTransitionEnd);\n\n return slice.call(slideContainer.children);\n }\n\n /**\n * [dispatchSliderEvent description]\n * @return {[type]} [description]\n */\n function dispatchSliderEvent(phase, type, detail) {\n (0, _dispatchEvent2.default)(slider, phase + '.lory.' + type, detail);\n }\n\n /**\n * translates to a given position in a given time in milliseconds\n *\n * @to {number} number in pixels where to translate to\n * @duration {number} time in milliseconds for the transistion\n * @ease {string} easing css property\n */\n function translate(to, duration, ease) {\n var style = slideContainer && slideContainer.style;\n\n if (style) {\n style[prefixes.transition + 'TimingFunction'] = ease;\n style[prefixes.transition + 'Duration'] = duration + 'ms';\n style[prefixes.transform] = 'translateX(' + to + 'px)';\n }\n }\n\n /**\n * returns an element's width\n */\n function elementWidth(element) {\n return element.getBoundingClientRect().width || element.offsetWidth;\n }\n\n /**\n * slidefunction called by prev, next & touchend\n *\n * determine nextIndex and slide to next postion\n * under restrictions of the defined options\n *\n * @direction {boolean}\n */\n function slide(nextIndex, direction) {\n var _options3 = options,\n slideSpeed = _options3.slideSpeed,\n slidesToScroll = _options3.slidesToScroll,\n infinite = _options3.infinite,\n rewind = _options3.rewind,\n rewindPrev = _options3.rewindPrev,\n rewindSpeed = _options3.rewindSpeed,\n ease = _options3.ease,\n classNameActiveSlide = _options3.classNameActiveSlide,\n _options3$classNameDi = _options3.classNameDisabledNextCtrl,\n classNameDisabledNextCtrl = _options3$classNameDi === undefined ? 'disabled' : _options3$classNameDi,\n _options3$classNameDi2 = _options3.classNameDisabledPrevCtrl,\n classNameDisabledPrevCtrl = _options3$classNameDi2 === undefined ? 'disabled' : _options3$classNameDi2;\n\n\n var duration = slideSpeed;\n\n var nextSlide = direction ? index + 1 : index - 1;\n var maxOffset = Math.round(slidesWidth - frameWidth);\n\n dispatchSliderEvent('before', 'slide', {\n index: index,\n nextSlide: nextSlide\n });\n\n /**\n * Reset control classes\n */\n if (prevCtrl) {\n prevCtrl.classList.remove(classNameDisabledPrevCtrl);\n }\n if (nextCtrl) {\n nextCtrl.classList.remove(classNameDisabledNextCtrl);\n }\n\n if (typeof nextIndex !== 'number') {\n if (direction) {\n if (infinite && index + infinite * 2 !== slides.length) {\n nextIndex = index + (infinite - index % infinite);\n } else {\n nextIndex = index + slidesToScroll;\n }\n } else {\n if (infinite && index % infinite !== 0) {\n nextIndex = index - index % infinite;\n } else {\n nextIndex = index - slidesToScroll;\n }\n }\n }\n\n nextIndex = Math.min(Math.max(nextIndex, 0), slides.length - 1);\n\n if (infinite && direction === undefined) {\n nextIndex += infinite;\n }\n\n if (rewindPrev && Math.abs(position.x) === 0 && direction === false) {\n nextIndex = slides.length - 1;\n duration = rewindSpeed;\n }\n\n var nextOffset = Math.min(Math.max(slides[nextIndex].offsetLeft * -1, maxOffset * -1), 0);\n\n if (rewind && Math.abs(position.x) === maxOffset && direction) {\n nextOffset = 0;\n nextIndex = 0;\n duration = rewindSpeed;\n }\n\n /**\n * translate to the nextOffset by a defined duration and ease function\n */\n translate(nextOffset, duration, ease);\n\n /**\n * update the position with the next position\n */\n position.x = nextOffset;\n\n /**\n * update the index with the nextIndex only if\n * the offset of the nextIndex is in the range of the maxOffset\n */\n if (slides[nextIndex].offsetLeft <= maxOffset) {\n index = nextIndex;\n }\n\n if (infinite && (nextIndex === slides.length - infinite || nextIndex === slides.length - slides.length % infinite || nextIndex === 0)) {\n if (direction) {\n index = infinite;\n }\n\n if (!direction) {\n index = slides.length - infinite * 2;\n }\n\n position.x = slides[index].offsetLeft * -1;\n\n transitionEndCallback = function transitionEndCallback() {\n translate(slides[index].offsetLeft * -1, 0, undefined);\n };\n }\n\n if (classNameActiveSlide) {\n setActiveElement(slice.call(slides), index);\n }\n\n /**\n * update classes for next and prev arrows\n * based on user settings\n */\n if (prevCtrl && !infinite && !rewindPrev && nextIndex === 0) {\n prevCtrl.classList.add(classNameDisabledPrevCtrl);\n }\n\n if (nextCtrl && !infinite && !rewind && nextIndex + 1 === slides.length) {\n nextCtrl.classList.add(classNameDisabledNextCtrl);\n }\n\n dispatchSliderEvent('after', 'slide', {\n currentSlide: index\n });\n }\n\n /**\n * public\n * setup function\n */\n function setup() {\n dispatchSliderEvent('before', 'init');\n\n prefixes = (0, _detectPrefixes2.default)();\n options = _extends({}, _defaults2.default, opts);\n\n var _options4 = options,\n classNameFrame = _options4.classNameFrame,\n classNameSlideContainer = _options4.classNameSlideContainer,\n classNamePrevCtrl = _options4.classNamePrevCtrl,\n classNameNextCtrl = _options4.classNameNextCtrl,\n _options4$classNameDi = _options4.classNameDisabledNextCtrl,\n classNameDisabledNextCtrl = _options4$classNameDi === undefined ? 'disabled' : _options4$classNameDi,\n _options4$classNameDi2 = _options4.classNameDisabledPrevCtrl,\n classNameDisabledPrevCtrl = _options4$classNameDi2 === undefined ? 'disabled' : _options4$classNameDi2,\n enableMouseEvents = _options4.enableMouseEvents,\n classNameActiveSlide = _options4.classNameActiveSlide,\n initialIndex = _options4.initialIndex;\n\n\n index = initialIndex;\n frame = slider.getElementsByClassName(classNameFrame)[0];\n slideContainer = frame.getElementsByClassName(classNameSlideContainer)[0];\n prevCtrl = slider.getElementsByClassName(classNamePrevCtrl)[0];\n nextCtrl = slider.getElementsByClassName(classNameNextCtrl)[0];\n\n position = {\n x: slideContainer.offsetLeft,\n y: slideContainer.offsetTop\n };\n\n if (options.infinite) {\n slides = setupInfinite(slice.call(slideContainer.children));\n } else {\n slides = slice.call(slideContainer.children);\n\n if (prevCtrl && !options.rewindPrev) {\n prevCtrl.classList.add(classNameDisabledPrevCtrl);\n }\n\n if (nextCtrl && slides.length === 1 && !options.rewind) {\n nextCtrl.classList.add(classNameDisabledNextCtrl);\n }\n }\n\n reset();\n\n if (classNameActiveSlide) {\n setActiveElement(slides, index);\n }\n\n if (prevCtrl && nextCtrl) {\n prevCtrl.addEventListener('click', prev);\n nextCtrl.addEventListener('click', next);\n }\n\n frame.addEventListener('touchstart', onTouchstart, touchEventParams);\n\n if (enableMouseEvents) {\n frame.addEventListener('mousedown', onTouchstart);\n frame.addEventListener('click', onClick);\n }\n\n options.window.addEventListener('resize', onResize);\n\n dispatchSliderEvent('after', 'init');\n }\n\n /**\n * public\n * reset function: called on resize\n */\n function reset() {\n var _options5 = options,\n infinite = _options5.infinite,\n ease = _options5.ease,\n rewindSpeed = _options5.rewindSpeed,\n rewindOnResize = _options5.rewindOnResize,\n classNameActiveSlide = _options5.classNameActiveSlide,\n initialIndex = _options5.initialIndex;\n\n\n slidesWidth = elementWidth(slideContainer);\n frameWidth = elementWidth(frame);\n\n if (frameWidth === slidesWidth) {\n slidesWidth = slides.reduce(function (previousValue, slide) {\n return previousValue + elementWidth(slide);\n }, 0);\n }\n\n if (rewindOnResize) {\n index = initialIndex;\n } else {\n ease = null;\n rewindSpeed = 0;\n }\n\n if (infinite) {\n translate(slides[index + infinite].offsetLeft * -1, 0, null);\n\n index = index + infinite;\n position.x = slides[index].offsetLeft * -1;\n } else {\n translate(slides[index].offsetLeft * -1, rewindSpeed, ease);\n position.x = slides[index].offsetLeft * -1;\n }\n\n if (classNameActiveSlide) {\n setActiveElement(slice.call(slides), index);\n }\n }\n\n /**\n * public\n * slideTo: called on clickhandler\n */\n function slideTo(index) {\n slide(index);\n }\n\n /**\n * public\n * returnIndex function: called on clickhandler\n */\n function returnIndex() {\n return index - options.infinite || 0;\n }\n\n /**\n * public\n * prev function: called on clickhandler\n */\n function prev() {\n slide(false, false);\n }\n\n /**\n * public\n * next function: called on clickhandler\n */\n function next() {\n slide(false, true);\n }\n\n /**\n * public\n * destroy function: called to gracefully destroy the lory instance\n */\n function destroy() {\n dispatchSliderEvent('before', 'destroy');\n\n // remove event listeners\n frame.removeEventListener(prefixes.transitionEnd, onTransitionEnd);\n frame.removeEventListener('touchstart', onTouchstart, touchEventParams);\n frame.removeEventListener('touchmove', onTouchmove, touchEventParams);\n frame.removeEventListener('touchend', onTouchend);\n frame.removeEventListener('mousemove', onTouchmove);\n frame.removeEventListener('mousedown', onTouchstart);\n frame.removeEventListener('mouseup', onTouchend);\n frame.removeEventListener('mouseleave', onTouchend);\n frame.removeEventListener('click', onClick);\n\n options.window.removeEventListener('resize', onResize);\n\n if (prevCtrl) {\n prevCtrl.removeEventListener('click', prev);\n }\n\n if (nextCtrl) {\n nextCtrl.removeEventListener('click', next);\n }\n\n // remove cloned slides if infinite is set\n if (options.infinite) {\n Array.apply(null, Array(options.infinite)).forEach(function () {\n slideContainer.removeChild(slideContainer.firstChild);\n slideContainer.removeChild(slideContainer.lastChild);\n });\n }\n\n dispatchSliderEvent('after', 'destroy');\n }\n\n // event handling\n\n var touchOffset = void 0;\n var delta = void 0;\n var isScrolling = void 0;\n\n function onTransitionEnd() {\n if (transitionEndCallback) {\n transitionEndCallback();\n\n transitionEndCallback = undefined;\n }\n }\n\n function onTouchstart(event) {\n var _options6 = options,\n enableMouseEvents = _options6.enableMouseEvents;\n\n var touches = event.touches ? event.touches[0] : event;\n\n if (enableMouseEvents) {\n frame.addEventListener('mousemove', onTouchmove);\n frame.addEventListener('mouseup', onTouchend);\n frame.addEventListener('mouseleave', onTouchend);\n }\n\n frame.addEventListener('touchmove', onTouchmove, touchEventParams);\n frame.addEventListener('touchend', onTouchend);\n\n var pageX = touches.pageX,\n pageY = touches.pageY;\n\n\n touchOffset = {\n x: pageX,\n y: pageY,\n time: Date.now()\n };\n\n isScrolling = undefined;\n\n delta = {};\n\n dispatchSliderEvent('on', 'touchstart', {\n event: event\n });\n }\n\n function onTouchmove(event) {\n var touches = event.touches ? event.touches[0] : event;\n var pageX = touches.pageX,\n pageY = touches.pageY;\n\n\n delta = {\n x: pageX - touchOffset.x,\n y: pageY - touchOffset.y\n };\n\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(isScrolling || Math.abs(delta.x) < Math.abs(delta.y));\n }\n\n if (!isScrolling && touchOffset) {\n translate(position.x + delta.x, 0, null);\n }\n\n // may be\n dispatchSliderEvent('on', 'touchmove', {\n event: event\n });\n }\n\n function onTouchend(event) {\n /**\n * time between touchstart and touchend in milliseconds\n * @duration {number}\n */\n var duration = touchOffset ? Date.now() - touchOffset.time : undefined;\n\n /**\n * is valid if:\n *\n * -> swipe attempt time is over 300 ms\n * and\n * -> swipe distance is greater than 25px\n * or\n * -> swipe distance is more then a third of the swipe area\n *\n * @isValidSlide {Boolean}\n */\n var isValid = Number(duration) < 300 && Math.abs(delta.x) > 25 || Math.abs(delta.x) > frameWidth / 3;\n\n /**\n * is out of bounds if:\n *\n * -> index is 0 and delta x is greater than 0\n * or\n * -> index is the last slide and delta is smaller than 0\n *\n * @isOutOfBounds {Boolean}\n */\n var isOutOfBounds = !index && delta.x > 0 || index === slides.length - 1 && delta.x < 0;\n\n var direction = delta.x < 0;\n\n if (!isScrolling) {\n if (isValid && !isOutOfBounds) {\n slide(false, direction);\n } else {\n translate(position.x, options.snapBackSpeed);\n }\n }\n\n touchOffset = undefined;\n\n /**\n * remove eventlisteners after swipe attempt\n */\n frame.removeEventListener('touchmove', onTouchmove);\n frame.removeEventListener('touchend', onTouchend);\n frame.removeEventListener('mousemove', onTouchmove);\n frame.removeEventListener('mouseup', onTouchend);\n frame.removeEventListener('mouseleave', onTouchend);\n\n dispatchSliderEvent('on', 'touchend', {\n event: event\n });\n }\n\n function onClick(event) {\n if (delta.x) {\n event.preventDefault();\n }\n }\n\n function onResize(event) {\n if (frameWidth !== elementWidth(frame)) {\n reset();\n\n dispatchSliderEvent('on', 'resize', {\n event: event\n });\n }\n }\n\n // trigger initial setup\n setup();\n\n // expose public api\n return {\n setup: setup,\n reset: reset,\n slideTo: slideTo,\n returnIndex: returnIndex,\n prev: prev,\n next: next,\n destroy: destroy\n };\n}\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = detectPrefixes;\n/**\n * Detecting prefixes for saving time and bytes\n */\nfunction detectPrefixes() {\n var transform = void 0;\n var transition = void 0;\n var transitionEnd = void 0;\n\n (function () {\n var el = document.createElement('_');\n var style = el.style;\n\n var prop = void 0;\n\n if (style[prop = 'webkitTransition'] === '') {\n transitionEnd = 'webkitTransitionEnd';\n transition = prop;\n }\n\n if (style[prop = 'transition'] === '') {\n transitionEnd = 'transitionend';\n transition = prop;\n }\n\n if (style[prop = 'webkitTransform'] === '') {\n transform = prop;\n }\n\n if (style[prop = 'msTransform'] === '') {\n transform = prop;\n }\n\n if (style[prop = 'transform'] === '') {\n transform = prop;\n }\n\n document.body.insertBefore(el, null);\n style[transform] = 'translateX(0)';\n document.body.removeChild(el);\n })();\n\n return {\n transform: transform,\n transition: transition,\n transitionEnd: transitionEnd\n };\n}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = detectSupportsPassive;\nfunction detectSupportsPassive() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n\n window.addEventListener('testPassive', null, opts);\n window.removeEventListener('testPassive', null, opts);\n } catch (e) {}\n\n return supportsPassive;\n}\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = dispatchEvent;\n\nvar _customEvent = __webpack_require__(4);\n\nvar _customEvent2 = _interopRequireDefault(_customEvent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * dispatch custom events\n *\n * @param {element} el slideshow element\n * @param {string} type custom event name\n * @param {object} detail custom detail information\n */\nfunction dispatchEvent(target, type, detail) {\n var event = new _customEvent2.default(type, {\n bubbles: true,\n cancelable: true,\n detail: detail\n });\n\n target.dispatchEvent(event);\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {\nvar NativeCustomEvent = global.CustomEvent;\n\nfunction useNative () {\n try {\n var p = new NativeCustomEvent('cat', { detail: { foo: 'bar' } });\n return 'cat' === p.type && 'bar' === p.detail.foo;\n } catch (e) {\n }\n return false;\n}\n\n/**\n * Cross-browser `CustomEvent` constructor.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.CustomEvent\n *\n * @public\n */\n\nmodule.exports = useNative() ? NativeCustomEvent :\n\n// IE >= 9\n'undefined' !== typeof document && 'function' === typeof document.createEvent ? function CustomEvent (type, params) {\n var e = document.createEvent('CustomEvent');\n if (params) {\n e.initCustomEvent(type, params.bubbles, params.cancelable, params.detail);\n } else {\n e.initCustomEvent(type, false, false, void 0);\n }\n return e;\n} :\n\n// IE <= 8\nfunction CustomEvent (type, params) {\n var e = document.createEventObject();\n e.type = type;\n if (params) {\n e.bubbles = Boolean(params.bubbles);\n e.cancelable = Boolean(params.cancelable);\n e.detail = params.detail;\n } else {\n e.bubbles = false;\n e.cancelable = false;\n e.detail = void 0;\n }\n return e;\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /**\n * slides scrolled at once\n * @slidesToScroll {Number}\n */\n slidesToScroll: 1,\n\n /**\n * time in milliseconds for the animation of a valid slide attempt\n * @slideSpeed {Number}\n */\n slideSpeed: 300,\n\n /**\n * time in milliseconds for the animation of the rewind after the last slide\n * @rewindSpeed {Number}\n */\n rewindSpeed: 600,\n\n /**\n * time for the snapBack of the slider if the slide attempt was not valid\n * @snapBackSpeed {Number}\n */\n snapBackSpeed: 200,\n\n /**\n * Basic easing functions: https://developer.mozilla.org/de/docs/Web/CSS/transition-timing-function\n * cubic bezier easing functions: http://easings.net/de\n * @ease {String}\n */\n ease: 'ease',\n\n /**\n * if slider reached the last slide, with next click the slider goes back to the startindex.\n * use infinite or rewind, not both\n * @rewind {Boolean}\n */\n rewind: false,\n\n /**\n * number of visible slides or false\n * use infinite or rewind, not both\n * @infinite {number}\n */\n infinite: false,\n\n /**\n * the slide index to show when the slider is initialized.\n * @initialIndex {number}\n */\n initialIndex: 0,\n\n /**\n * class name for slider frame\n * @classNameFrame {string}\n */\n classNameFrame: 'js_frame',\n\n /**\n * class name for slides container\n * @classNameSlideContainer {string}\n */\n classNameSlideContainer: 'js_slides',\n\n /**\n * class name for slider prev control\n * @classNamePrevCtrl {string}\n */\n classNamePrevCtrl: 'js_prev',\n\n /**\n * class name for slider next control\n * @classNameNextCtrl {string}\n */\n classNameNextCtrl: 'js_next',\n\n /**\n * class name for current active slide\n * if emptyString then no class is set\n * @classNameActiveSlide {string}\n */\n classNameActiveSlide: 'active',\n\n /**\n * enables mouse events for swiping on desktop devices\n * @enableMouseEvents {boolean}\n */\n enableMouseEvents: false,\n\n /**\n * window instance\n * @window {object}\n */\n window: typeof window !== 'undefined' ? window : null,\n\n /**\n * If false, slides lory to the first slide on window resize.\n * @rewindOnResize {boolean}\n */\n rewindOnResize: true\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(0);\n\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// lory.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 7);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 85bdd04943e5c295f168","/* globals jQuery */\n\nimport detectPrefixes from './utils/detect-prefixes.js';\nimport supportsPassive from './utils/detect-supportsPassive';\nimport dispatchEvent from './utils/dispatch-event.js';\nimport defaults from './defaults.js';\n\nconst slice = Array.prototype.slice;\n\nexport function lory (slider, opts) {\n let position;\n let slidesWidth;\n let frameWidth;\n let slides;\n\n /**\n * slider DOM elements\n */\n let frame;\n let slideContainer;\n let prevCtrl;\n let nextCtrl;\n let prefixes;\n let transitionEndCallback;\n\n let index = 0;\n let options = {};\n let touchEventParams = supportsPassive() ? { passive: true } : false;\n\n /**\n * if object is jQuery convert to native DOM element\n */\n if (typeof jQuery !== 'undefined' && slider instanceof jQuery) {\n slider = slider[0];\n }\n\n /**\n * private\n * set active class to element which is the current slide\n */\n function setActiveElement (slides, currentIndex) {\n const {classNameActiveSlide} = options;\n\n slides.forEach((element, index) => {\n if (element.classList.contains(classNameActiveSlide)) {\n element.classList.remove(classNameActiveSlide);\n }\n });\n\n slides[currentIndex].classList.add(classNameActiveSlide);\n }\n\n /**\n * private\n * setupInfinite: function to setup if infinite is set\n *\n * @param {array} slideArray\n * @return {array} array of updated slideContainer elements\n */\n function setupInfinite (slideArray) {\n const {infinite} = options;\n\n const front = slideArray.slice(0, infinite);\n const back = slideArray.slice(slideArray.length - infinite, slideArray.length);\n\n front.forEach(function (element) {\n const cloned = element.cloneNode(true);\n\n slideContainer.appendChild(cloned);\n });\n\n back.reverse()\n .forEach(function (element) {\n const cloned = element.cloneNode(true);\n\n slideContainer.insertBefore(cloned, slideContainer.firstChild);\n });\n\n slideContainer.addEventListener(prefixes.transitionEnd, onTransitionEnd);\n\n return slice.call(slideContainer.children);\n }\n\n /**\n * [dispatchSliderEvent description]\n * @return {[type]} [description]\n */\n function dispatchSliderEvent (phase, type, detail) {\n dispatchEvent(slider, `${phase}.lory.${type}`, detail);\n }\n\n /**\n * translates to a given position in a given time in milliseconds\n *\n * @to {number} number in pixels where to translate to\n * @duration {number} time in milliseconds for the transistion\n * @ease {string} easing css property\n */\n function translate (to, duration, ease) {\n const style = slideContainer && slideContainer.style;\n\n if (style) {\n style[prefixes.transition + 'TimingFunction'] = ease;\n style[prefixes.transition + 'Duration'] = duration + 'ms';\n style[prefixes.transform] = 'translateX(' + to + 'px)';\n }\n }\n\n /**\n * returns an element's width\n */\n function elementWidth (element) {\n return element.getBoundingClientRect().width || element.offsetWidth;\n }\n\n /**\n * slidefunction called by prev, next & touchend\n *\n * determine nextIndex and slide to next postion\n * under restrictions of the defined options\n *\n * @direction {boolean}\n */\n function slide (nextIndex, direction) {\n const {\n slideSpeed,\n slidesToScroll,\n infinite,\n rewind,\n rewindPrev,\n rewindSpeed,\n ease,\n classNameActiveSlide,\n classNameDisabledNextCtrl = 'disabled',\n classNameDisabledPrevCtrl = 'disabled'\n } = options;\n\n let duration = slideSpeed;\n\n const nextSlide = direction ? index + 1 : index - 1;\n const maxOffset = Math.round(slidesWidth - frameWidth);\n\n dispatchSliderEvent('before', 'slide', {\n index,\n nextSlide\n });\n\n /**\n * Reset control classes\n */\n if (prevCtrl) {\n prevCtrl.classList.remove(classNameDisabledPrevCtrl);\n }\n if (nextCtrl) {\n nextCtrl.classList.remove(classNameDisabledNextCtrl);\n }\n\n if (typeof nextIndex !== 'number') {\n if (direction) {\n if (infinite && index + (infinite * 2) !== slides.length) {\n nextIndex = index + (infinite - index % infinite);\n } else {\n nextIndex = index + slidesToScroll;\n }\n } else {\n if (infinite && index % infinite !== 0) {\n nextIndex = index - index % infinite;\n } else {\n nextIndex = index - slidesToScroll;\n }\n }\n }\n\n nextIndex = Math.min(Math.max(nextIndex, 0), slides.length - 1);\n\n if (infinite && direction === undefined) {\n nextIndex += infinite;\n }\n\n if (rewindPrev && Math.abs(position.x) === 0 && direction === false) {\n nextIndex = slides.length - 1;\n duration = rewindSpeed;\n }\n\n let nextOffset = Math.min(Math.max(slides[nextIndex].offsetLeft * -1, maxOffset * -1), 0);\n\n if (rewind && Math.abs(position.x) === maxOffset && direction) {\n nextOffset = 0;\n nextIndex = 0;\n duration = rewindSpeed;\n }\n\n /**\n * translate to the nextOffset by a defined duration and ease function\n */\n translate(nextOffset, duration, ease);\n\n /**\n * update the position with the next position\n */\n position.x = nextOffset;\n\n /**\n * update the index with the nextIndex only if\n * the offset of the nextIndex is in the range of the maxOffset\n */\n if (slides[nextIndex].offsetLeft <= maxOffset) {\n index = nextIndex;\n }\n\n if (infinite && (nextIndex === slides.length - infinite ||\n nextIndex === slides.length - slides.length % infinite || nextIndex === 0)) {\n if (direction) {\n index = infinite;\n }\n\n if (!direction) {\n index = slides.length - (infinite * 2);\n }\n\n position.x = slides[index].offsetLeft * -1;\n\n transitionEndCallback = function () {\n translate(slides[index].offsetLeft * -1, 0, undefined);\n };\n }\n\n if (classNameActiveSlide) {\n setActiveElement(slice.call(slides), index);\n }\n\n /**\n * update classes for next and prev arrows\n * based on user settings\n */\n if (prevCtrl && !infinite && !rewindPrev && nextIndex === 0) {\n prevCtrl.classList.add(classNameDisabledPrevCtrl);\n }\n\n if (nextCtrl && !infinite && !rewind && ((nextIndex + 1) === slides.length)) {\n nextCtrl.classList.add(classNameDisabledNextCtrl);\n }\n\n dispatchSliderEvent('after', 'slide', {\n currentSlide: index\n });\n }\n\n /**\n * public\n * setup function\n */\n function setup () {\n dispatchSliderEvent('before', 'init');\n\n prefixes = detectPrefixes();\n options = {...defaults, ...opts};\n\n const {\n classNameFrame,\n classNameSlideContainer,\n classNamePrevCtrl,\n classNameNextCtrl,\n classNameDisabledNextCtrl = 'disabled',\n classNameDisabledPrevCtrl = 'disabled',\n enableMouseEvents,\n classNameActiveSlide,\n initialIndex\n } = options;\n\n index = initialIndex;\n frame = slider.getElementsByClassName(classNameFrame)[0];\n slideContainer = frame.getElementsByClassName(classNameSlideContainer)[0];\n prevCtrl = slider.getElementsByClassName(classNamePrevCtrl)[0];\n nextCtrl = slider.getElementsByClassName(classNameNextCtrl)[0];\n\n position = {\n x: slideContainer.offsetLeft,\n y: slideContainer.offsetTop\n };\n\n if (options.infinite) {\n slides = setupInfinite(slice.call(slideContainer.children));\n } else {\n slides = slice.call(slideContainer.children);\n\n if (prevCtrl && !options.rewindPrev) {\n prevCtrl.classList.add(classNameDisabledPrevCtrl);\n }\n\n if (nextCtrl && (slides.length === 1) && !options.rewind) {\n nextCtrl.classList.add(classNameDisabledNextCtrl);\n }\n }\n\n reset();\n\n if (classNameActiveSlide) {\n setActiveElement(slides, index);\n }\n\n if (prevCtrl && nextCtrl) {\n prevCtrl.addEventListener('click', prev);\n nextCtrl.addEventListener('click', next);\n }\n\n frame.addEventListener('touchstart', onTouchstart, touchEventParams);\n\n if (enableMouseEvents) {\n frame.addEventListener('mousedown', onTouchstart);\n frame.addEventListener('click', onClick);\n }\n\n options.window.addEventListener('resize', onResize);\n\n dispatchSliderEvent('after', 'init');\n }\n\n /**\n * public\n * reset function: called on resize\n */\n function reset () {\n var {infinite, ease, rewindSpeed, rewindOnResize, classNameActiveSlide, initialIndex} = options;\n\n slidesWidth = elementWidth(slideContainer);\n frameWidth = elementWidth(frame);\n\n if (frameWidth === slidesWidth) {\n slidesWidth = slides.reduce(function (previousValue, slide) {\n return previousValue + elementWidth(slide);\n }, 0);\n }\n\n if (rewindOnResize) {\n index = initialIndex;\n } else {\n ease = null;\n rewindSpeed = 0;\n }\n\n if (infinite) {\n translate(slides[index + infinite].offsetLeft * -1, 0, null);\n\n index = index + infinite;\n position.x = slides[index].offsetLeft * -1;\n } else {\n translate(slides[index].offsetLeft * -1, rewindSpeed, ease);\n position.x = slides[index].offsetLeft * -1;\n }\n\n if (classNameActiveSlide) {\n setActiveElement(slice.call(slides), index);\n }\n }\n\n /**\n * public\n * slideTo: called on clickhandler\n */\n function slideTo (index) {\n slide(index);\n }\n\n /**\n * public\n * returnIndex function: called on clickhandler\n */\n function returnIndex () {\n return index - options.infinite || 0;\n }\n\n /**\n * public\n * prev function: called on clickhandler\n */\n function prev () {\n slide(false, false);\n }\n\n /**\n * public\n * next function: called on clickhandler\n */\n function next () {\n slide(false, true);\n }\n\n /**\n * public\n * destroy function: called to gracefully destroy the lory instance\n */\n function destroy () {\n dispatchSliderEvent('before', 'destroy');\n\n // remove event listeners\n frame.removeEventListener(prefixes.transitionEnd, onTransitionEnd);\n frame.removeEventListener('touchstart', onTouchstart, touchEventParams);\n frame.removeEventListener('touchmove', onTouchmove, touchEventParams);\n frame.removeEventListener('touchend', onTouchend);\n frame.removeEventListener('mousemove', onTouchmove);\n frame.removeEventListener('mousedown', onTouchstart);\n frame.removeEventListener('mouseup', onTouchend);\n frame.removeEventListener('mouseleave', onTouchend);\n frame.removeEventListener('click', onClick);\n\n options.window.removeEventListener('resize', onResize);\n\n if (prevCtrl) {\n prevCtrl.removeEventListener('click', prev);\n }\n\n if (nextCtrl) {\n nextCtrl.removeEventListener('click', next);\n }\n\n // remove cloned slides if infinite is set\n if (options.infinite) {\n Array.apply(null, Array(options.infinite)).forEach(function () {\n slideContainer.removeChild(slideContainer.firstChild);\n slideContainer.removeChild(slideContainer.lastChild);\n });\n }\n\n dispatchSliderEvent('after', 'destroy');\n }\n\n // event handling\n\n let touchOffset;\n let delta;\n let isScrolling;\n\n function onTransitionEnd () {\n if (transitionEndCallback) {\n transitionEndCallback();\n\n transitionEndCallback = undefined;\n }\n }\n\n function onTouchstart (event) {\n const {enableMouseEvents} = options;\n const touches = event.touches ? event.touches[0] : event;\n\n if (enableMouseEvents) {\n frame.addEventListener('mousemove', onTouchmove);\n frame.addEventListener('mouseup', onTouchend);\n frame.addEventListener('mouseleave', onTouchend);\n }\n\n frame.addEventListener('touchmove', onTouchmove, touchEventParams);\n frame.addEventListener('touchend', onTouchend);\n\n const {pageX, pageY} = touches;\n\n touchOffset = {\n x: pageX,\n y: pageY,\n time: Date.now()\n };\n\n isScrolling = undefined;\n\n delta = {};\n\n dispatchSliderEvent('on', 'touchstart', {\n event\n });\n }\n\n function onTouchmove (event) {\n const touches = event.touches ? event.touches[0] : event;\n const {pageX, pageY} = touches;\n\n delta = {\n x: pageX - touchOffset.x,\n y: pageY - touchOffset.y\n };\n\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(isScrolling || Math.abs(delta.x) < Math.abs(delta.y));\n }\n\n if (!isScrolling && touchOffset) {\n translate(position.x + delta.x, 0, null);\n }\n\n // may be\n dispatchSliderEvent('on', 'touchmove', {\n event\n });\n }\n\n function onTouchend (event) {\n /**\n * time between touchstart and touchend in milliseconds\n * @duration {number}\n */\n const duration = touchOffset ? Date.now() - touchOffset.time : undefined;\n\n /**\n * is valid if:\n *\n * -> swipe attempt time is over 300 ms\n * and\n * -> swipe distance is greater than 25px\n * or\n * -> swipe distance is more then a third of the swipe area\n *\n * @isValidSlide {Boolean}\n */\n const isValid = Number(duration) < 300 &&\n Math.abs(delta.x) > 25 ||\n Math.abs(delta.x) > frameWidth / 3;\n\n /**\n * is out of bounds if:\n *\n * -> index is 0 and delta x is greater than 0\n * or\n * -> index is the last slide and delta is smaller than 0\n *\n * @isOutOfBounds {Boolean}\n */\n const isOutOfBounds = !index && delta.x > 0 ||\n index === slides.length - 1 && delta.x < 0;\n\n const direction = delta.x < 0;\n\n if (!isScrolling) {\n if (isValid && !isOutOfBounds) {\n slide(false, direction);\n } else {\n translate(position.x, options.snapBackSpeed);\n }\n }\n\n touchOffset = undefined;\n\n /**\n * remove eventlisteners after swipe attempt\n */\n frame.removeEventListener('touchmove', onTouchmove);\n frame.removeEventListener('touchend', onTouchend);\n frame.removeEventListener('mousemove', onTouchmove);\n frame.removeEventListener('mouseup', onTouchend);\n frame.removeEventListener('mouseleave', onTouchend);\n\n dispatchSliderEvent('on', 'touchend', {\n event\n });\n }\n\n function onClick (event) {\n if (delta.x) {\n event.preventDefault();\n }\n }\n\n function onResize (event) {\n if (frameWidth !== elementWidth(frame)) {\n reset();\n\n dispatchSliderEvent('on', 'resize', {\n event\n });\n }\n }\n\n // trigger initial setup\n setup();\n\n // expose public api\n return {\n setup,\n reset,\n slideTo,\n returnIndex,\n prev,\n next,\n destroy\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lory.js","/**\n * Detecting prefixes for saving time and bytes\n */\nexport default function detectPrefixes () {\n let transform;\n let transition;\n let transitionEnd;\n\n (function () {\n let el = document.createElement('_');\n let style = el.style;\n\n let prop;\n\n if (style[prop = 'webkitTransition'] === '') {\n transitionEnd = 'webkitTransitionEnd';\n transition = prop;\n }\n\n if (style[prop = 'transition'] === '') {\n transitionEnd = 'transitionend';\n transition = prop;\n }\n\n if (style[prop = 'webkitTransform'] === '') {\n transform = prop;\n }\n\n if (style[prop = 'msTransform'] === '') {\n transform = prop;\n }\n\n if (style[prop = 'transform'] === '') {\n transform = prop;\n }\n\n document.body.insertBefore(el, null);\n style[transform] = 'translateX(0)';\n document.body.removeChild(el);\n }());\n\n return {\n transform,\n transition,\n transitionEnd\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/detect-prefixes.js","export default function detectSupportsPassive () {\n let supportsPassive = false;\n\n try {\n let opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true;\n }\n });\n\n window.addEventListener('testPassive', null, opts);\n window.removeEventListener('testPassive', null, opts);\n } catch (e) {}\n\n return supportsPassive;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/detect-supportsPassive.js","import CustomEvent from 'custom-event';\n\n/**\n * dispatch custom events\n *\n * @param {element} el slideshow element\n * @param {string} type custom event name\n * @param {object} detail custom detail information\n */\nexport default function dispatchEvent (target, type, detail) {\n let event = new CustomEvent(\n type,\n {\n bubbles: true,\n cancelable: true,\n detail: detail\n }\n );\n\n target.dispatchEvent(event);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/dispatch-event.js","\nvar NativeCustomEvent = global.CustomEvent;\n\nfunction useNative () {\n try {\n var p = new NativeCustomEvent('cat', { detail: { foo: 'bar' } });\n return 'cat' === p.type && 'bar' === p.detail.foo;\n } catch (e) {\n }\n return false;\n}\n\n/**\n * Cross-browser `CustomEvent` constructor.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.CustomEvent\n *\n * @public\n */\n\nmodule.exports = useNative() ? NativeCustomEvent :\n\n// IE >= 9\n'undefined' !== typeof document && 'function' === typeof document.createEvent ? function CustomEvent (type, params) {\n var e = document.createEvent('CustomEvent');\n if (params) {\n e.initCustomEvent(type, params.bubbles, params.cancelable, params.detail);\n } else {\n e.initCustomEvent(type, false, false, void 0);\n }\n return e;\n} :\n\n// IE <= 8\nfunction CustomEvent (type, params) {\n var e = document.createEventObject();\n e.type = type;\n if (params) {\n e.bubbles = Boolean(params.bubbles);\n e.cancelable = Boolean(params.cancelable);\n e.detail = params.detail;\n } else {\n e.bubbles = false;\n e.cancelable = false;\n e.detail = void 0;\n }\n return e;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/custom-event/index.js\n// module id = 4\n// module chunks = 0 1","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 5\n// module chunks = 0 1","export default {\n /**\n * slides scrolled at once\n * @slidesToScroll {Number}\n */\n slidesToScroll: 1,\n\n /**\n * time in milliseconds for the animation of a valid slide attempt\n * @slideSpeed {Number}\n */\n slideSpeed: 300,\n\n /**\n * time in milliseconds for the animation of the rewind after the last slide\n * @rewindSpeed {Number}\n */\n rewindSpeed: 600,\n\n /**\n * time for the snapBack of the slider if the slide attempt was not valid\n * @snapBackSpeed {Number}\n */\n snapBackSpeed: 200,\n\n /**\n * Basic easing functions: https://developer.mozilla.org/de/docs/Web/CSS/transition-timing-function\n * cubic bezier easing functions: http://easings.net/de\n * @ease {String}\n */\n ease: 'ease',\n\n /**\n * if slider reached the last slide, with next click the slider goes back to the startindex.\n * use infinite or rewind, not both\n * @rewind {Boolean}\n */\n rewind: false,\n\n /**\n * number of visible slides or false\n * use infinite or rewind, not both\n * @infinite {number}\n */\n infinite: false,\n\n /**\n * the slide index to show when the slider is initialized.\n * @initialIndex {number}\n */\n initialIndex: 0,\n\n /**\n * class name for slider frame\n * @classNameFrame {string}\n */\n classNameFrame: 'js_frame',\n\n /**\n * class name for slides container\n * @classNameSlideContainer {string}\n */\n classNameSlideContainer: 'js_slides',\n\n /**\n * class name for slider prev control\n * @classNamePrevCtrl {string}\n */\n classNamePrevCtrl: 'js_prev',\n\n /**\n * class name for slider next control\n * @classNameNextCtrl {string}\n */\n classNameNextCtrl: 'js_next',\n\n /**\n * class name for current active slide\n * if emptyString then no class is set\n * @classNameActiveSlide {string}\n */\n classNameActiveSlide: 'active',\n\n /**\n * enables mouse events for swiping on desktop devices\n * @enableMouseEvents {boolean}\n */\n enableMouseEvents: false,\n\n /**\n * window instance\n * @window {object}\n */\n window: typeof window !== 'undefined' ? window : null,\n\n /**\n * If false, slides lory to the first slide on window resize.\n * @rewindOnResize {boolean}\n */\n rewindOnResize: true\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/defaults.js"],"sourceRoot":""}