{"version":3,"sources":["embla.js"],"names":["isNumber","subject","isString","isObject","Object","prototype","toString","call","isRecord","Array","isArray","mathAbs","n","Math","abs","mathSign","deltaAbs","valueB","valueA","arrayKeys","array","objectKeys","map","Number","arrayLast","arrayLastIndex","max","length","object","keys","end","predefined","start","center","viewSize","measure","align","width","axis","direction","height","rect","scroll","self","cross","startEdge","endEdge","measureSize","getEndEdge","Limit","min","reachedAny","reachedMin","removeOffset","constrain","reachedMax","ceil","Counter","loop","_a","get","counter","loopEnd","withinLimit","set","add","clone","sign","Direction","EventStore","apply","node","listeners","type","handler","options","removeAll","addEventListener","push","removeEventListener","vector","filter","remove","Vector1D","value","divide","readNumber","DragHandler","focusNodes","passive","normalize","multiply","subtract","dragThreshold","rootNode","target","dragTracker","location","animation","scrollTo","scrollBody","scrollTarget","index","eventHandler","percentOfView","dragFree","skipSnaps","crossAxis","nonPassiveEvent","undefined","dragStartPoint","activationEvents","addInteractionEvents","interactionEvents","document","move","snapForceBoost","mouse","removeAllEvents","freeForceBoost","isFocusNode","touch","name","baseSpeed","baseMass","forceBoost","startScroll","startCross","isMouse","pointerIsDown","preventScroll","preventClick","allowedForce","evt","isTouchEvent","button","currentLocation","targetChanged","indexOf","stopPropagation","isMoving","pointerDown","clickAllowed","useSpeed","diffScroll","lastScroll","diffCross","diff","pointerMove","readPoint","emit","DragTracker","lastCross","startEvent","logInterval","up","TouchEvent","readTime","preventDefault","timeStamp","coord","rawForce","pointerUp","touches","forceFactor","factorAbs","force","isVigorous","mass","next","byDistance","distance","baseForce","useMass","lastEvent","isBelowThreshold","speed","diffTime","expired","isFlick","addActivationEvents","clearPreventClick","useBaseMass","down","cancelable","click","roundToTwoDecimals","velocity","acceleration","attractionDirection","update","evtAxis","concat","property","useBaseSpeed","magnitude","attraction","applyForce","hasSettled","diffDrag","PercentOfView","decimalPoints","pow","round","ScrollBounds","pullBackThreshold","snapsBounded","snapsContained","findDuplicates","endSnap","seek","shouldConstrain","oStart","edge","iStart","diffToTarget","friction","limit","settle","toggleActive","maxFriction","disabled","ScrollContain","contentSize","scrollSnaps","jointSafety","startSnap","diffToEdge","edgeOffsetTolerance","measureLimit","active","snapsAligned","containScroll","scrollBounds","ScrollProgress","lastIndexOf","scrollLength","slice","ScrollLooper","vectors","isLast","isFirst","alignments","loopDistance","forEach","v","ScrollTarget","findTargetSnap","ascDiffsToSnaps","scrollSnap","diffToSnap","targetVector","distanceDiff","indexDiff","indexPrevious","distances","indexCurrent","a","b","shortcut","targets","minDistance","containerStyle","t","translate","findLoopPoints","snap","SlideLooper","x","i","sort","Translate","d2","ascItems","slideSizesWithGaps","descItems","reverse","loopPoints","reachedBound","removeSlideSizes","indexes","remainingGap","gap","targetSnapDistance","byIndex","clear","getAttribute","transform","container","to","slideBounds","ScrollTo","startPoints","otherIndexes","endPoints","targetIndex","canLoop","loopPoint","shift","removeAttribute","slideSizes","snaps","inViewThreshold","contentDirection","startIndex","cachedOffsets","slide","getBoundingClientRect","groupSlides","slideOffsets","offsets","threshold","slidesToScroll","slideSize","roundingSafety","slideThreshold","scrollAxis","offset","containerRect","alignment","Alignment","slideThresholds","containSnaps","readEdgeGap","engine","bounds","slideBound","ScrollLimit","slideIndexes","limitedLocation","slides","list","findSlideBounds","scrollLooper","groupByNumber","slideLooper","slidesInView","groupSize","reduce","groupSizes","EventHandler","s","getListeners","Engine","root","endGap","containedEndSnap","callback","animationFrame","off","on","defaultOptions","breakpoints","Axis","draggable","slideRects","withEdgeGap","Animation","startLocation","slideRect","dragHandler","rects","startGap","SlidesToScroll","_b","matchingTargets","snapDistance","g","groupedSnaps","optionsAtMedia","mediaOption","merge","areEqual","atMedia","measureSizes","measureUnaligned","PluginsHandler","activePlugins","pluginsChanged","settled","haveChanged","some","hasChanged","stop","plugins","proceed","ifAnimating","cb","window","requestAnimationFrame","init","ScrollBody","assign","destroy","EmblaCarousel","reActivate","storeElements","rootSize","pluginList","pluginApis","optionsHandler","destroyed","eventStore","deActivate","withPlugins","optionsBase","activate","withOptions","pluginsHandler","every","chunk","byNumber","measureEndGap","measureWithGaps","resizeHandlers","from","slidesInGap","check","cachedBounds","isStartEdge","inList","initial","altered","point","SlideSizes","newRootSize","rootSizeChanged","optionsChanged","e","slidesNotInView","canScrollPrev","scrollSnapList","selectedScrollSnap","OptionsHandler","optionsA","optionsB","objectsMergeDeep","objectA","objectB","mergedObjects","currentObject","key","areObjects","containerNode","internalEngine","JSON","stringify","objectBKeys","objectAKeys","objectsAreEqual","media","matches","slideNodes","canScrollNext","scrollNext","scrollPrev","scrollProgress","userOptions","plugin","resize","setTimeout","embla","globalOptions","module","prevBtn","setAttribute","userPlugins","dotNode","nextBtn","dotsArray","dotsFrag","appendChild","userSlides","dots","customContainer","userContainer","querySelector","createDocumentFragment","querySelectorAll","customSlides","children","selectDot","previous","previousScrollSnap","selected","dataset","showAllSlides","showSlide","showSlidesInView","tagSlidesGoingOutOfView","hideSlidesNotInView","offsetParent","setSelectedSlide","status","disableFocusableElements","enableFocusableElements","focusableElements","element","disablePrevNextButtons","jump","onInit","onReInit","onSelect","onSettle","reInit","initPrevNextButtons","initDots","generateDots","newOptions","viewport","exports","app","parentElement","overflow","classList","createElement","initialized"],"mappings":"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","file":"../embla.min.js","sourcesContent":["/*\r\n Embla Carousel v7.1.0\r\n https://github.com/davidjerleke/embla-carousel\r\n*/\r\n\r\n(function () {\r\n 'use strict';\r\n\r\n function map(value, iStart, iStop, oStart, oStop) {\r\n return oStart + (oStop - oStart) * ((value - iStart) / (iStop - iStart));\r\n }\r\n function isNumber(subject) {\r\n return typeof subject === 'number';\r\n }\r\n function isString(subject) {\r\n return typeof subject === 'string';\r\n }\r\n function isObject(subject) {\r\n return Object.prototype.toString.call(subject) === '[object Object]';\r\n }\r\n function isArray(subject) {\r\n return Array.isArray(subject);\r\n }\r\n function isRecord(subject) {\r\n return isObject(subject) || isArray(subject);\r\n }\r\n function mathAbs(n) {\r\n return Math.abs(n);\r\n }\r\n function mathSign(n) {\r\n return !n ? 0 : n / mathAbs(n);\r\n }\r\n function deltaAbs(valueB, valueA) {\r\n return mathAbs(valueB - valueA);\r\n }\r\n function factorAbs(valueB, valueA) {\r\n if (valueB === 0 || valueA === 0) return 0;\r\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\r\n var diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\r\n return mathAbs(diff / valueB);\r\n }\r\n function roundToDecimals(decimalPoints) {\r\n var pow = Math.pow(10, decimalPoints);\r\n return function (n) {\r\n return Math.round(n * pow) / pow;\r\n };\r\n }\r\n function arrayKeys(array) {\r\n return objectKeys(array).map(Number);\r\n }\r\n function arrayLast(array) {\r\n return array[arrayLastIndex(array)];\r\n }\r\n function arrayLastIndex(array) {\r\n return Math.max(0, array.length - 1);\r\n }\r\n function objectKeys(object) {\r\n return Object.keys(object);\r\n }\r\n function objectsMergeDeep(objectA, objectB) {\r\n return [objectA, objectB].reduce(function (mergedObjects, currentObject) {\r\n objectKeys(currentObject).forEach(function (key) {\r\n var valueA = mergedObjects[key];\r\n var valueB = currentObject[key];\r\n var areObjects = isObject(valueA) && isObject(valueB);\r\n mergedObjects[key] = areObjects\r\n ? objectsMergeDeep(valueA, valueB)\r\n : valueB;\r\n });\r\n return mergedObjects;\r\n }, {});\r\n }\r\n function objectsAreEqual(objectA, objectB) {\r\n var objectAKeys = objectKeys(objectA);\r\n var objectBKeys = objectKeys(objectB);\r\n if (objectAKeys.length !== objectBKeys.length) return false;\r\n return objectAKeys.every(function (key) {\r\n var valueA = objectA[key];\r\n var valueB = objectB[key];\r\n if (typeof valueA === 'function')\r\n return ''.concat(valueA) === ''.concat(valueB);\r\n if (!isRecord(valueA) || !isRecord(valueB)) return valueA === valueB;\r\n return objectsAreEqual(valueA, valueB);\r\n });\r\n }\r\n\r\n function Alignment(align, viewSize) {\r\n var predefined = {\r\n start: start,\r\n center: center,\r\n end: end,\r\n };\r\n function start() {\r\n return 0;\r\n }\r\n function center(n) {\r\n return end(n) / 2;\r\n }\r\n function end(n) {\r\n return viewSize - n;\r\n }\r\n function percent() {\r\n return viewSize * Number(align);\r\n }\r\n function measure(n) {\r\n if (isNumber(align)) return percent();\r\n return predefined[align](n);\r\n }\r\n var self = {\r\n measure: measure,\r\n };\r\n return self;\r\n }\r\n\r\n function Animation(callback) {\r\n var animationFrame = 0;\r\n function ifAnimating(active, cb) {\r\n return function () {\r\n if (active === !!animationFrame) cb();\r\n };\r\n }\r\n function start() {\r\n animationFrame = window.requestAnimationFrame(callback);\r\n }\r\n function stop() {\r\n window.cancelAnimationFrame(animationFrame);\r\n animationFrame = 0;\r\n }\r\n var self = {\r\n proceed: ifAnimating(true, start),\r\n start: ifAnimating(false, start),\r\n stop: ifAnimating(true, stop),\r\n };\r\n return self;\r\n }\r\n\r\n function Axis(axis, direction) {\r\n var scroll = axis === 'y' ? 'y' : 'x';\r\n var cross = axis === 'y' ? 'x' : 'y';\r\n var startEdge = getStartEdge();\r\n var endEdge = getEndEdge();\r\n function measureSize(rect) {\r\n var width = rect.width,\r\n height = rect.height;\r\n return scroll === 'x' ? width : height;\r\n }\r\n function getStartEdge() {\r\n if (scroll === 'y') return 'top';\r\n return direction === 'rtl' ? 'right' : 'left';\r\n }\r\n function getEndEdge() {\r\n if (scroll === 'y') return 'bottom';\r\n return direction === 'rtl' ? 'left' : 'right';\r\n }\r\n var self = {\r\n scroll: scroll,\r\n cross: cross,\r\n startEdge: startEdge,\r\n endEdge: endEdge,\r\n measureSize: measureSize,\r\n };\r\n return self;\r\n }\r\n\r\n function Limit(min, max) {\r\n var length = mathAbs(min - max);\r\n function reachedMin(n) {\r\n return n < min;\r\n }\r\n function reachedMax(n) {\r\n return n > max;\r\n }\r\n function reachedAny(n) {\r\n return reachedMin(n) || reachedMax(n);\r\n }\r\n function constrain(n) {\r\n if (!reachedAny(n)) return n;\r\n return reachedMin(n) ? min : max;\r\n }\r\n function removeOffset(n) {\r\n if (!length) return n;\r\n return n - length * Math.ceil((n - max) / length);\r\n }\r\n var self = {\r\n length: length,\r\n max: max,\r\n min: min,\r\n constrain: constrain,\r\n reachedAny: reachedAny,\r\n reachedMax: reachedMax,\r\n reachedMin: reachedMin,\r\n removeOffset: removeOffset,\r\n };\r\n return self;\r\n }\r\n\r\n function Counter(max, start, loop) {\r\n var _a = Limit(0, max),\r\n min = _a.min,\r\n constrain = _a.constrain;\r\n var loopEnd = max + 1;\r\n var counter = withinLimit(start);\r\n function withinLimit(n) {\r\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\r\n }\r\n function get() {\r\n return counter;\r\n }\r\n function set(n) {\r\n counter = withinLimit(n);\r\n return self;\r\n }\r\n function add(n) {\r\n return set(get() + n);\r\n }\r\n function clone() {\r\n return Counter(max, get(), loop);\r\n }\r\n var self = {\r\n add: add,\r\n clone: clone,\r\n get: get,\r\n set: set,\r\n min: min,\r\n max: max,\r\n };\r\n return self;\r\n }\r\n\r\n function Direction(direction) {\r\n var sign = direction === 'rtl' ? -1 : 1;\r\n function apply(n) {\r\n return n * sign;\r\n }\r\n var self = {\r\n apply: apply,\r\n };\r\n return self;\r\n }\r\n\r\n function EventStore() {\r\n var listeners = [];\r\n function add(node, type, handler, options) {\r\n if (options === void 0) {\r\n options = {\r\n passive: true,\r\n };\r\n }\r\n node.addEventListener(type, handler, options);\r\n listeners.push(function () {\r\n return node.removeEventListener(type, handler, options);\r\n });\r\n return self;\r\n }\r\n function removeAll() {\r\n listeners = listeners.filter(function (remove) {\r\n return remove();\r\n });\r\n return self;\r\n }\r\n var self = {\r\n add: add,\r\n removeAll: removeAll,\r\n };\r\n return self;\r\n }\r\n\r\n function Vector1D(value) {\r\n var vector = value;\r\n function get() {\r\n return vector;\r\n }\r\n function set(n) {\r\n vector = readNumber(n);\r\n return self;\r\n }\r\n function add(n) {\r\n vector += readNumber(n);\r\n return self;\r\n }\r\n function subtract(n) {\r\n vector -= readNumber(n);\r\n return self;\r\n }\r\n function multiply(n) {\r\n vector *= n;\r\n return self;\r\n }\r\n function divide(n) {\r\n vector /= n;\r\n return self;\r\n }\r\n function normalize() {\r\n if (vector !== 0) divide(vector);\r\n return self;\r\n }\r\n function readNumber(n) {\r\n return isNumber(n) ? n : n.get();\r\n }\r\n var self = {\r\n add: add,\r\n divide: divide,\r\n get: get,\r\n multiply: multiply,\r\n normalize: normalize,\r\n set: set,\r\n subtract: subtract,\r\n };\r\n return self;\r\n }\r\n\r\n function DragHandler(\r\n axis,\r\n direction,\r\n rootNode,\r\n target,\r\n dragTracker,\r\n location,\r\n animation,\r\n scrollTo,\r\n scrollBody,\r\n scrollTarget,\r\n index,\r\n eventHandler,\r\n percentOfView,\r\n loop,\r\n dragFree,\r\n skipSnaps\r\n ) {\r\n var crossAxis = axis.cross;\r\n var focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\r\n var nonPassiveEvent = {\r\n passive: false,\r\n };\r\n var dragStartPoint = Vector1D(0);\r\n var activationEvents = EventStore();\r\n var interactionEvents = EventStore();\r\n var dragThreshold = percentOfView.measure(20);\r\n var snapForceBoost = {\r\n mouse: 300,\r\n touch: 400,\r\n };\r\n var freeForceBoost = {\r\n mouse: 500,\r\n touch: 600,\r\n };\r\n var baseSpeed = dragFree ? 5 : 16;\r\n var baseMass = 1;\r\n var startScroll = 0;\r\n var startCross = 0;\r\n var pointerIsDown = false;\r\n var preventScroll = false;\r\n var preventClick = false;\r\n var isMouse = false;\r\n function addActivationEvents() {\r\n var node = rootNode;\r\n activationEvents\r\n .add(\r\n node,\r\n 'dragstart',\r\n function (evt) {\r\n return evt.preventDefault();\r\n },\r\n nonPassiveEvent\r\n )\r\n .add(\r\n node,\r\n 'touchmove',\r\n function () {\r\n return undefined;\r\n },\r\n nonPassiveEvent\r\n )\r\n .add(node, 'touchend', function () {\r\n return undefined;\r\n })\r\n .add(node, 'touchstart', down)\r\n .add(node, 'mousedown', down)\r\n .add(node, 'touchcancel', up)\r\n .add(node, 'contextmenu', up)\r\n .add(node, 'click', click, true);\r\n }\r\n function addInteractionEvents() {\r\n var node = isMouse ? document : rootNode;\r\n interactionEvents\r\n .add(node, 'touchmove', move, nonPassiveEvent)\r\n .add(node, 'touchend', up)\r\n .add(node, 'mousemove', move, nonPassiveEvent)\r\n .add(node, 'mouseup', up);\r\n }\r\n function removeAllEvents() {\r\n activationEvents.removeAll();\r\n interactionEvents.removeAll();\r\n }\r\n function isFocusNode(node) {\r\n var name = node.nodeName || '';\r\n return focusNodes.indexOf(name) > -1;\r\n }\r\n function forceBoost() {\r\n var boost = dragFree ? freeForceBoost : snapForceBoost;\r\n var type = isMouse ? 'mouse' : 'touch';\r\n return boost[type];\r\n }\r\n function allowedForce(force, targetChanged) {\r\n var next = index.clone().add(mathSign(force) * -1);\r\n var isEdge = next.get() === index.min || next.get() === index.max;\r\n var baseForce = scrollTarget.byDistance(force, !dragFree).distance;\r\n if (dragFree || mathAbs(force) < dragThreshold) return baseForce;\r\n if (!loop && isEdge) return baseForce * 0.4;\r\n if (skipSnaps && targetChanged) return baseForce * 0.5;\r\n return scrollTarget.byIndex(next.get(), 0).distance;\r\n }\r\n function down(evt) {\r\n isMouse = !dragTracker.isTouchEvent(evt);\r\n if (isMouse && evt.button !== 0) return;\r\n if (isFocusNode(evt.target)) return;\r\n var isMoving = deltaAbs(target.get(), location.get()) >= 2;\r\n var clearPreventClick = isMouse || !isMoving;\r\n pointerIsDown = true;\r\n dragTracker.pointerDown(evt);\r\n dragStartPoint.set(target);\r\n target.set(location);\r\n scrollBody.useBaseMass().useSpeed(80);\r\n addInteractionEvents();\r\n startScroll = dragTracker.readPoint(evt);\r\n startCross = dragTracker.readPoint(evt, crossAxis);\r\n eventHandler.emit('pointerDown');\r\n if (clearPreventClick) preventClick = false;\r\n }\r\n function move(evt) {\r\n if (!preventScroll && !isMouse) {\r\n if (!evt.cancelable) return up(evt);\r\n var lastScroll = dragTracker.readPoint(evt);\r\n var lastCross = dragTracker.readPoint(evt, crossAxis);\r\n var diffScroll = deltaAbs(lastScroll, startScroll);\r\n var diffCross = deltaAbs(lastCross, startCross);\r\n preventScroll = diffScroll > diffCross;\r\n if (!preventScroll && !preventClick) return up(evt);\r\n }\r\n var diff = dragTracker.pointerMove(evt);\r\n if (!preventClick && diff) preventClick = true;\r\n animation.start();\r\n target.add(direction.apply(diff));\r\n evt.preventDefault();\r\n }\r\n function up(evt) {\r\n var currentLocation = scrollTarget.byDistance(0, false);\r\n var targetChanged = currentLocation.index !== index.get();\r\n var rawForce = dragTracker.pointerUp(evt) * forceBoost();\r\n var force = allowedForce(direction.apply(rawForce), targetChanged);\r\n var forceFactor = factorAbs(rawForce, force);\r\n var isMoving = deltaAbs(target.get(), dragStartPoint.get()) >= 0.5;\r\n var isVigorous = targetChanged && forceFactor > 0.75;\r\n var isBelowThreshold = mathAbs(rawForce) < dragThreshold;\r\n var speed = isVigorous ? 10 : baseSpeed;\r\n var mass = isVigorous ? baseMass + 2.5 * forceFactor : baseMass;\r\n if (isMoving && !isMouse) preventClick = true;\r\n preventScroll = false;\r\n pointerIsDown = false;\r\n interactionEvents.removeAll();\r\n scrollBody.useSpeed(isBelowThreshold ? 9 : speed).useMass(mass);\r\n scrollTo.distance(force, !dragFree);\r\n isMouse = false;\r\n eventHandler.emit('pointerUp');\r\n }\r\n function click(evt) {\r\n if (preventClick) {\r\n evt.stopPropagation();\r\n evt.preventDefault();\r\n }\r\n }\r\n // DEPRECATED - Remove in v8 because handled automatically\r\n function clickAllowed() {\r\n return !preventClick;\r\n }\r\n function pointerDown() {\r\n return pointerIsDown;\r\n }\r\n var self = {\r\n addActivationEvents: addActivationEvents,\r\n clickAllowed: clickAllowed,\r\n pointerDown: pointerDown,\r\n removeAllEvents: removeAllEvents,\r\n };\r\n return self;\r\n }\r\n\r\n function DragTracker(axis) {\r\n var logInterval = 170;\r\n var startEvent;\r\n var lastEvent;\r\n function isTouchEvent(evt) {\r\n return typeof TouchEvent !== 'undefined' && evt instanceof TouchEvent;\r\n }\r\n function readTime(evt) {\r\n return evt.timeStamp;\r\n }\r\n function readPoint(evt, evtAxis) {\r\n var property = evtAxis || axis.scroll;\r\n var coord = 'client'.concat(property === 'x' ? 'X' : 'Y');\r\n return (isTouchEvent(evt) ? evt.touches[0] : evt)[coord];\r\n }\r\n function pointerDown(evt) {\r\n startEvent = evt;\r\n lastEvent = evt;\r\n return readPoint(evt);\r\n }\r\n function pointerMove(evt) {\r\n var diff = readPoint(evt) - readPoint(lastEvent);\r\n var expired = readTime(evt) - readTime(startEvent) > logInterval;\r\n lastEvent = evt;\r\n if (expired) startEvent = evt;\r\n return diff;\r\n }\r\n function pointerUp(evt) {\r\n if (!startEvent || !lastEvent) return 0;\r\n var diffDrag = readPoint(lastEvent) - readPoint(startEvent);\r\n var diffTime = readTime(evt) - readTime(startEvent);\r\n var expired = readTime(evt) - readTime(lastEvent) > logInterval;\r\n var force = diffDrag / diffTime;\r\n var isFlick = diffTime && !expired && mathAbs(force) > 0.1;\r\n return isFlick ? force : 0;\r\n }\r\n var self = {\r\n isTouchEvent: isTouchEvent,\r\n pointerDown: pointerDown,\r\n pointerMove: pointerMove,\r\n pointerUp: pointerUp,\r\n readPoint: readPoint,\r\n };\r\n return self;\r\n }\r\n\r\n function PercentOfView(viewSize) {\r\n function measure(n) {\r\n return viewSize * (n / 100);\r\n }\r\n var self = {\r\n measure: measure,\r\n };\r\n return self;\r\n }\r\n\r\n function ScrollBody(location, baseSpeed, baseMass) {\r\n var roundToTwoDecimals = roundToDecimals(2);\r\n var velocity = Vector1D(0);\r\n var acceleration = Vector1D(0);\r\n var attraction = Vector1D(0);\r\n var attractionDirection = 0;\r\n var speed = baseSpeed;\r\n var mass = baseMass;\r\n function update() {\r\n velocity.add(acceleration);\r\n location.add(velocity);\r\n acceleration.multiply(0);\r\n }\r\n function applyForce(force) {\r\n force.divide(mass);\r\n acceleration.add(force);\r\n }\r\n function seek(target) {\r\n attraction.set(target).subtract(location);\r\n var magnitude = map(attraction.get(), 0, 100, 0, speed);\r\n attractionDirection = mathSign(attraction.get());\r\n attraction.normalize().multiply(magnitude).subtract(velocity);\r\n applyForce(attraction);\r\n return self;\r\n }\r\n function settle(target) {\r\n var diff = target.get() - location.get();\r\n var hasSettled = !roundToTwoDecimals(diff);\r\n if (hasSettled) location.set(target);\r\n return hasSettled;\r\n }\r\n function direction() {\r\n return attractionDirection;\r\n }\r\n function useBaseSpeed() {\r\n return useSpeed(baseSpeed);\r\n }\r\n function useBaseMass() {\r\n return useMass(baseMass);\r\n }\r\n function useSpeed(n) {\r\n speed = n;\r\n return self;\r\n }\r\n function useMass(n) {\r\n mass = n;\r\n return self;\r\n }\r\n var self = {\r\n direction: direction,\r\n seek: seek,\r\n settle: settle,\r\n update: update,\r\n useBaseMass: useBaseMass,\r\n useBaseSpeed: useBaseSpeed,\r\n useMass: useMass,\r\n useSpeed: useSpeed,\r\n };\r\n return self;\r\n }\r\n\r\n function ScrollBounds(limit, location, target, scrollBody, percentOfView) {\r\n var pullBackThreshold = percentOfView.measure(10);\r\n var edgeOffsetTolerance = percentOfView.measure(50);\r\n var maxFriction = 0.85;\r\n var disabled = false;\r\n function shouldConstrain() {\r\n if (disabled) return false;\r\n if (!limit.reachedAny(target.get())) return false;\r\n if (!limit.reachedAny(location.get())) return false;\r\n return true;\r\n }\r\n function constrain(pointerDown) {\r\n if (!shouldConstrain()) return;\r\n var edge = limit.reachedMin(location.get()) ? 'min' : 'max';\r\n var diffToEdge = mathAbs(limit[edge] - location.get());\r\n var diffToTarget = target.get() - location.get();\r\n var friction = Math.min(diffToEdge / edgeOffsetTolerance, maxFriction);\r\n target.subtract(diffToTarget * friction);\r\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\r\n target.set(limit.constrain(target.get()));\r\n scrollBody.useSpeed(10).useMass(3);\r\n }\r\n }\r\n function toggleActive(active) {\r\n disabled = !active;\r\n }\r\n var self = {\r\n constrain: constrain,\r\n toggleActive: toggleActive,\r\n };\r\n return self;\r\n }\r\n\r\n function ScrollContain(viewSize, contentSize, snapsAligned, containScroll) {\r\n var scrollBounds = Limit(-contentSize + viewSize, snapsAligned[0]);\r\n var snapsBounded = snapsAligned.map(scrollBounds.constrain);\r\n var snapsContained = measureContained();\r\n function findDuplicates() {\r\n var startSnap = snapsBounded[0];\r\n var endSnap = arrayLast(snapsBounded);\r\n var min = snapsBounded.lastIndexOf(startSnap);\r\n var max = snapsBounded.indexOf(endSnap) + 1;\r\n return Limit(min, max);\r\n }\r\n function measureContained() {\r\n if (contentSize <= viewSize) return [scrollBounds.max];\r\n if (containScroll === 'keepSnaps') return snapsBounded;\r\n var _a = findDuplicates(),\r\n min = _a.min,\r\n max = _a.max;\r\n return snapsBounded.slice(min, max);\r\n }\r\n var self = {\r\n snapsContained: snapsContained,\r\n };\r\n return self;\r\n }\r\n\r\n function ScrollLimit(contentSize, scrollSnaps, loop) {\r\n var limit = measureLimit();\r\n function measureLimit() {\r\n var startSnap = scrollSnaps[0];\r\n var endSnap = arrayLast(scrollSnaps);\r\n var min = loop ? startSnap - contentSize : endSnap;\r\n var max = startSnap;\r\n return Limit(min, max);\r\n }\r\n var self = {\r\n limit: limit,\r\n };\r\n return self;\r\n }\r\n\r\n function ScrollLooper(contentSize, limit, location, vectors) {\r\n var jointSafety = 0.1;\r\n var min = limit.min + jointSafety;\r\n var max = limit.max + jointSafety;\r\n var _a = Limit(min, max),\r\n reachedMin = _a.reachedMin,\r\n reachedMax = _a.reachedMax;\r\n function shouldLoop(direction) {\r\n if (direction === 1) return reachedMax(location.get());\r\n if (direction === -1) return reachedMin(location.get());\r\n return false;\r\n }\r\n function loop(direction) {\r\n if (!shouldLoop(direction)) return;\r\n var loopDistance = contentSize * (direction * -1);\r\n vectors.forEach(function (v) {\r\n return v.add(loopDistance);\r\n });\r\n }\r\n var self = {\r\n loop: loop,\r\n };\r\n return self;\r\n }\r\n\r\n function ScrollProgress(limit) {\r\n var max = limit.max,\r\n scrollLength = limit.length;\r\n function get(n) {\r\n var currentLocation = n - max;\r\n return currentLocation / -scrollLength;\r\n }\r\n var self = {\r\n get: get,\r\n };\r\n return self;\r\n }\r\n\r\n function ScrollSnaps(\r\n axis,\r\n alignment,\r\n containerRect,\r\n slideRects,\r\n slideSizesWithGaps,\r\n slidesToScroll,\r\n containScroll\r\n ) {\r\n var startEdge = axis.startEdge,\r\n endEdge = axis.endEdge;\r\n var groupSlides = slidesToScroll.groupSlides;\r\n var alignments = measureSizes().map(alignment.measure);\r\n var snaps = measureUnaligned();\r\n var snapsAligned = measureAligned();\r\n function measureSizes() {\r\n return groupSlides(slideRects)\r\n .map(function (rects) {\r\n return arrayLast(rects)[endEdge] - rects[0][startEdge];\r\n })\r\n .map(mathAbs);\r\n }\r\n function measureUnaligned() {\r\n return slideRects\r\n .map(function (rect) {\r\n return containerRect[startEdge] - rect[startEdge];\r\n })\r\n .map(function (snap) {\r\n return -mathAbs(snap);\r\n });\r\n }\r\n function measureAligned() {\r\n var containedStartSnap = 0;\r\n var containedEndSnap = arrayLast(snaps) - arrayLast(slideSizesWithGaps);\r\n return groupSlides(snaps)\r\n .map(function (g) {\r\n return g[0];\r\n })\r\n .map(function (snap, index, groupedSnaps) {\r\n var isFirst = !index;\r\n var isLast = index === arrayLastIndex(groupedSnaps);\r\n if (containScroll && isFirst) return containedStartSnap;\r\n if (containScroll && isLast) return containedEndSnap;\r\n return snap + alignments[index];\r\n });\r\n }\r\n var self = {\r\n snaps: snaps,\r\n snapsAligned: snapsAligned,\r\n };\r\n return self;\r\n }\r\n\r\n function ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\r\n var reachedAny = limit.reachedAny,\r\n removeOffset = limit.removeOffset,\r\n constrain = limit.constrain;\r\n function minDistance(distances) {\r\n return distances.concat().sort(function (a, b) {\r\n return mathAbs(a) - mathAbs(b);\r\n })[0];\r\n }\r\n function findTargetSnap(target) {\r\n var distance = loop ? removeOffset(target) : constrain(target);\r\n var ascDiffsToSnaps = scrollSnaps\r\n .map(function (scrollSnap) {\r\n return scrollSnap - distance;\r\n })\r\n .map(function (diffToSnap) {\r\n return shortcut(diffToSnap, 0);\r\n })\r\n .map(function (diff, i) {\r\n return {\r\n diff: diff,\r\n index: i,\r\n };\r\n })\r\n .sort(function (d1, d2) {\r\n return mathAbs(d1.diff) - mathAbs(d2.diff);\r\n });\r\n var index = ascDiffsToSnaps[0].index;\r\n return {\r\n index: index,\r\n distance: distance,\r\n };\r\n }\r\n function shortcut(target, direction) {\r\n var targets = [target, target + contentSize, target - contentSize];\r\n if (!loop) return targets[0];\r\n if (!direction) return minDistance(targets);\r\n var matchingTargets = targets.filter(function (t) {\r\n return mathSign(t) === direction;\r\n });\r\n return minDistance(matchingTargets);\r\n }\r\n function byIndex(index, direction) {\r\n var diffToSnap = scrollSnaps[index] - targetVector.get();\r\n var distance = shortcut(diffToSnap, direction);\r\n return {\r\n index: index,\r\n distance: distance,\r\n };\r\n }\r\n function byDistance(distance, snap) {\r\n var target = targetVector.get() + distance;\r\n var _a = findTargetSnap(target),\r\n index = _a.index,\r\n targetSnapDistance = _a.distance;\r\n var reachedBound = !loop && reachedAny(target);\r\n if (!snap || reachedBound)\r\n return {\r\n index: index,\r\n distance: distance,\r\n };\r\n var diffToSnap = scrollSnaps[index] - targetSnapDistance;\r\n var snapDistance = distance + shortcut(diffToSnap, 0);\r\n return {\r\n index: index,\r\n distance: snapDistance,\r\n };\r\n }\r\n var self = {\r\n byDistance: byDistance,\r\n byIndex: byIndex,\r\n shortcut: shortcut,\r\n };\r\n return self;\r\n }\r\n\r\n function ScrollTo(\r\n animation,\r\n indexCurrent,\r\n indexPrevious,\r\n scrollTarget,\r\n targetVector,\r\n eventHandler\r\n ) {\r\n function scrollTo(target) {\r\n var distanceDiff = target.distance;\r\n var indexDiff = target.index !== indexCurrent.get();\r\n if (distanceDiff) {\r\n animation.start();\r\n targetVector.add(distanceDiff);\r\n }\r\n if (indexDiff) {\r\n indexPrevious.set(indexCurrent.get());\r\n indexCurrent.set(target.index);\r\n eventHandler.emit('select');\r\n }\r\n }\r\n function distance(n, snap) {\r\n var target = scrollTarget.byDistance(n, snap);\r\n scrollTo(target);\r\n }\r\n function index(n, direction) {\r\n var targetIndex = indexCurrent.clone().set(n);\r\n var target = scrollTarget.byIndex(targetIndex.get(), direction);\r\n scrollTo(target);\r\n }\r\n var self = {\r\n distance: distance,\r\n index: index,\r\n };\r\n return self;\r\n }\r\n\r\n function Translate(axis, direction, container) {\r\n var translate = axis.scroll === 'x' ? x : y;\r\n var containerStyle = container.style;\r\n var disabled = false;\r\n function x(n) {\r\n return 'translate3d('.concat(n, 'px,0px,0px)');\r\n }\r\n function y(n) {\r\n return 'translate3d(0px,'.concat(n, 'px,0px)');\r\n }\r\n function to(target) {\r\n if (disabled) return;\r\n containerStyle.transform = translate(direction.apply(target.get()));\r\n }\r\n function toggleActive(active) {\r\n disabled = !active;\r\n }\r\n function clear() {\r\n if (disabled) return;\r\n containerStyle.transform = '';\r\n if (!container.getAttribute('style')) container.removeAttribute('style');\r\n }\r\n var self = {\r\n clear: clear,\r\n to: to,\r\n toggleActive: toggleActive,\r\n };\r\n return self;\r\n }\r\n\r\n function SlideLooper(\r\n axis,\r\n direction,\r\n viewSize,\r\n contentSize,\r\n slideSizesWithGaps,\r\n scrollSnaps,\r\n slidesInView,\r\n scroll,\r\n slides\r\n ) {\r\n var ascItems = arrayKeys(slideSizesWithGaps);\r\n var descItems = arrayKeys(slideSizesWithGaps).reverse();\r\n var loopPoints = startPoints().concat(endPoints());\r\n function removeSlideSizes(indexes, from) {\r\n return indexes.reduce(function (a, i) {\r\n return a - slideSizesWithGaps[i];\r\n }, from);\r\n }\r\n function slidesInGap(indexes, gap) {\r\n return indexes.reduce(function (a, i) {\r\n var remainingGap = removeSlideSizes(a, gap);\r\n return remainingGap > 0 ? a.concat([i]) : a;\r\n }, []);\r\n }\r\n function findLoopPoints(indexes, edge) {\r\n var isStartEdge = edge === 'start';\r\n var offset = isStartEdge ? -contentSize : contentSize;\r\n var slideBounds = slidesInView.findSlideBounds([offset]);\r\n return indexes.map(function (index) {\r\n var initial = isStartEdge ? 0 : -contentSize;\r\n var altered = isStartEdge ? contentSize : 0;\r\n var bounds = slideBounds.filter(function (b) {\r\n return b.index === index;\r\n })[0];\r\n var point = bounds[isStartEdge ? 'end' : 'start'];\r\n var shift = Vector1D(-1);\r\n var location = Vector1D(-1);\r\n var translate = Translate(axis, direction, slides[index]);\r\n var target = function () {\r\n return shift.set(scroll.get() > point ? initial : altered);\r\n };\r\n return {\r\n index: index,\r\n location: location,\r\n translate: translate,\r\n target: target,\r\n };\r\n });\r\n }\r\n function startPoints() {\r\n var gap = scrollSnaps[0] - 1;\r\n var indexes = slidesInGap(descItems, gap);\r\n return findLoopPoints(indexes, 'end');\r\n }\r\n function endPoints() {\r\n var gap = viewSize - scrollSnaps[0] - 1;\r\n var indexes = slidesInGap(ascItems, gap);\r\n return findLoopPoints(indexes, 'start');\r\n }\r\n function canLoop() {\r\n return loopPoints.every(function (_a) {\r\n var index = _a.index;\r\n var otherIndexes = ascItems.filter(function (i) {\r\n return i !== index;\r\n });\r\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\r\n });\r\n }\r\n function loop() {\r\n loopPoints.forEach(function (loopPoint) {\r\n var target = loopPoint.target,\r\n translate = loopPoint.translate,\r\n location = loopPoint.location;\r\n var shift = target();\r\n if (shift.get() === location.get()) return;\r\n if (shift.get() === 0) translate.clear();\r\n else translate.to(shift);\r\n location.set(shift);\r\n });\r\n }\r\n function clear() {\r\n loopPoints.forEach(function (loopPoint) {\r\n return loopPoint.translate.clear();\r\n });\r\n }\r\n var self = {\r\n canLoop: canLoop,\r\n clear: clear,\r\n loop: loop,\r\n loopPoints: loopPoints,\r\n };\r\n return self;\r\n }\r\n\r\n function SlidesInView(\r\n viewSize,\r\n contentSize,\r\n slideSizes,\r\n snaps,\r\n limit,\r\n loop,\r\n inViewThreshold\r\n ) {\r\n var removeOffset = limit.removeOffset,\r\n constrain = limit.constrain;\r\n var roundingSafety = 0.5;\r\n var cachedOffsets = loop ? [0, contentSize, -contentSize] : [0];\r\n var cachedBounds = findSlideBounds(cachedOffsets, inViewThreshold);\r\n function findSlideThresholds(threshold) {\r\n var slideThreshold = threshold || 0;\r\n return slideSizes.map(function (slideSize) {\r\n var thresholdLimit = Limit(roundingSafety, slideSize - roundingSafety);\r\n return thresholdLimit.constrain(slideSize * slideThreshold);\r\n });\r\n }\r\n function findSlideBounds(offsets, threshold) {\r\n var slideOffsets = offsets || cachedOffsets;\r\n var slideThresholds = findSlideThresholds(threshold);\r\n return slideOffsets.reduce(function (list, offset) {\r\n var bounds = snaps.map(function (snap, index) {\r\n return {\r\n start: snap - slideSizes[index] + slideThresholds[index] + offset,\r\n end: snap + viewSize - slideThresholds[index] + offset,\r\n index: index,\r\n };\r\n });\r\n return list.concat(bounds);\r\n }, []);\r\n }\r\n function check(location, bounds) {\r\n var limitedLocation = loop ? removeOffset(location) : constrain(location);\r\n var slideBounds = bounds || cachedBounds;\r\n return slideBounds.reduce(function (list, slideBound) {\r\n var index = slideBound.index,\r\n start = slideBound.start,\r\n end = slideBound.end;\r\n var inList = list.indexOf(index) !== -1;\r\n var inView = start < limitedLocation && end > limitedLocation;\r\n return !inList && inView ? list.concat([index]) : list;\r\n }, []);\r\n }\r\n var self = {\r\n check: check,\r\n findSlideBounds: findSlideBounds,\r\n };\r\n return self;\r\n }\r\n\r\n function SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap) {\r\n var measureSize = axis.measureSize,\r\n startEdge = axis.startEdge,\r\n endEdge = axis.endEdge;\r\n var withEdgeGap = slideRects[0] && readEdgeGap;\r\n var startGap = measureStartGap();\r\n var endGap = measureEndGap();\r\n var slideSizes = slideRects.map(measureSize);\r\n var slideSizesWithGaps = measureWithGaps();\r\n function measureStartGap() {\r\n if (!withEdgeGap) return 0;\r\n var slideRect = slideRects[0];\r\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\r\n }\r\n function measureEndGap() {\r\n if (!withEdgeGap) return 0;\r\n var style = window.getComputedStyle(arrayLast(slides));\r\n return parseFloat(style.getPropertyValue('margin-'.concat(endEdge)));\r\n }\r\n function measureWithGaps() {\r\n return slideRects\r\n .map(function (rect, index, rects) {\r\n var isFirst = !index;\r\n var isLast = index === arrayLastIndex(rects);\r\n if (isFirst) return slideSizes[index] + startGap;\r\n if (isLast) return slideSizes[index] + endGap;\r\n return rects[index + 1][startEdge] - rect[startEdge];\r\n })\r\n .map(mathAbs);\r\n }\r\n var self = {\r\n slideSizes: slideSizes,\r\n slideSizesWithGaps: slideSizesWithGaps,\r\n };\r\n return self;\r\n }\r\n\r\n function SlidesToScroll(viewSize, slideSizesWithGaps, slidesToScroll) {\r\n var groupByNumber = isNumber(slidesToScroll);\r\n function byNumber(array, groupSize) {\r\n return arrayKeys(array)\r\n .filter(function (i) {\r\n return i % groupSize === 0;\r\n })\r\n .map(function (i) {\r\n return array.slice(i, i + groupSize);\r\n });\r\n }\r\n function bySize(array) {\r\n return arrayKeys(array)\r\n .reduce(function (groupSizes, i) {\r\n var chunk = slideSizesWithGaps.slice(arrayLast(groupSizes), i + 1);\r\n var chunkSize = chunk.reduce(function (a, s) {\r\n return a + s;\r\n }, 0);\r\n return !i || chunkSize > viewSize ? groupSizes.concat(i) : groupSizes;\r\n }, [])\r\n .map(function (start, i, groupSizes) {\r\n return array.slice(start, groupSizes[i + 1]);\r\n });\r\n }\r\n function groupSlides(array) {\r\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\r\n }\r\n var self = {\r\n groupSlides: groupSlides,\r\n };\r\n return self;\r\n }\r\n\r\n function Engine(root, container, slides, options, eventHandler) {\r\n // Options\r\n var align = options.align,\r\n scrollAxis = options.axis,\r\n contentDirection = options.direction,\r\n startIndex = options.startIndex,\r\n inViewThreshold = options.inViewThreshold,\r\n loop = options.loop,\r\n speed = options.speed,\r\n dragFree = options.dragFree,\r\n groupSlides = options.slidesToScroll,\r\n skipSnaps = options.skipSnaps,\r\n containScroll = options.containScroll;\r\n // Measurements\r\n var containerRect = container.getBoundingClientRect();\r\n var slideRects = slides.map(function (slide) {\r\n return slide.getBoundingClientRect();\r\n });\r\n var direction = Direction(contentDirection);\r\n var axis = Axis(scrollAxis, contentDirection);\r\n var viewSize = axis.measureSize(containerRect);\r\n var percentOfView = PercentOfView(viewSize);\r\n var alignment = Alignment(align, viewSize);\r\n var containSnaps = !loop && containScroll !== '';\r\n var readEdgeGap = loop || containScroll !== '';\r\n var _a = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap),\r\n slideSizes = _a.slideSizes,\r\n slideSizesWithGaps = _a.slideSizesWithGaps;\r\n var slidesToScroll = SlidesToScroll(\r\n viewSize,\r\n slideSizesWithGaps,\r\n groupSlides\r\n );\r\n var _b = ScrollSnaps(\r\n axis,\r\n alignment,\r\n containerRect,\r\n slideRects,\r\n slideSizesWithGaps,\r\n slidesToScroll,\r\n containSnaps\r\n ),\r\n snaps = _b.snaps,\r\n snapsAligned = _b.snapsAligned;\r\n var contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\r\n var snapsContained = ScrollContain(\r\n viewSize,\r\n contentSize,\r\n snapsAligned,\r\n containScroll\r\n ).snapsContained;\r\n var scrollSnaps = containSnaps ? snapsContained : snapsAligned;\r\n var limit = ScrollLimit(contentSize, scrollSnaps, loop).limit;\r\n // Indexes\r\n var index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\r\n var indexPrevious = index.clone();\r\n var slideIndexes = arrayKeys(slides);\r\n // Draw\r\n var update = function () {\r\n if (!loop)\r\n engine.scrollBounds.constrain(engine.dragHandler.pointerDown());\r\n engine.scrollBody.seek(target).update();\r\n var settled = engine.scrollBody.settle(target);\r\n if (settled && !engine.dragHandler.pointerDown()) {\r\n engine.animation.stop();\r\n eventHandler.emit('settle');\r\n }\r\n if (!settled) {\r\n eventHandler.emit('scroll');\r\n }\r\n if (loop) {\r\n engine.scrollLooper.loop(engine.scrollBody.direction());\r\n engine.slideLooper.loop();\r\n }\r\n engine.translate.to(location);\r\n engine.animation.proceed();\r\n };\r\n // Shared\r\n var animation = Animation(update);\r\n var startLocation = scrollSnaps[index.get()];\r\n var location = Vector1D(startLocation);\r\n var target = Vector1D(startLocation);\r\n var scrollBody = ScrollBody(location, speed, 1);\r\n var scrollTarget = ScrollTarget(\r\n loop,\r\n scrollSnaps,\r\n contentSize,\r\n limit,\r\n target\r\n );\r\n var scrollTo = ScrollTo(\r\n animation,\r\n index,\r\n indexPrevious,\r\n scrollTarget,\r\n target,\r\n eventHandler\r\n );\r\n var slidesInView = SlidesInView(\r\n viewSize,\r\n contentSize,\r\n slideSizes,\r\n snaps,\r\n limit,\r\n loop,\r\n inViewThreshold\r\n );\r\n // DragHandler\r\n var dragHandler = DragHandler(\r\n axis,\r\n direction,\r\n root,\r\n target,\r\n DragTracker(axis),\r\n location,\r\n animation,\r\n scrollTo,\r\n scrollBody,\r\n scrollTarget,\r\n index,\r\n eventHandler,\r\n percentOfView,\r\n loop,\r\n dragFree,\r\n skipSnaps\r\n );\r\n // Engine\r\n var engine = {\r\n containerRect: containerRect,\r\n slideRects: slideRects,\r\n animation: animation,\r\n axis: axis,\r\n direction: direction,\r\n dragHandler: dragHandler,\r\n eventStore: EventStore(),\r\n percentOfView: percentOfView,\r\n index: index,\r\n indexPrevious: indexPrevious,\r\n limit: limit,\r\n location: location,\r\n options: options,\r\n scrollBody: scrollBody,\r\n scrollBounds: ScrollBounds(\r\n limit,\r\n location,\r\n target,\r\n scrollBody,\r\n percentOfView\r\n ),\r\n scrollLooper: ScrollLooper(contentSize, limit, location, [\r\n location,\r\n target,\r\n ]),\r\n scrollProgress: ScrollProgress(limit),\r\n scrollSnaps: scrollSnaps,\r\n scrollTarget: scrollTarget,\r\n scrollTo: scrollTo,\r\n slideLooper: SlideLooper(\r\n axis,\r\n direction,\r\n viewSize,\r\n contentSize,\r\n slideSizesWithGaps,\r\n scrollSnaps,\r\n slidesInView,\r\n location,\r\n slides\r\n ),\r\n slidesToScroll: slidesToScroll,\r\n slidesInView: slidesInView,\r\n slideIndexes: slideIndexes,\r\n target: target,\r\n translate: Translate(axis, direction, container),\r\n };\r\n return engine;\r\n }\r\n\r\n function EventHandler() {\r\n var listeners = {};\r\n function getListeners(evt) {\r\n return listeners[evt] || [];\r\n }\r\n function emit(evt) {\r\n getListeners(evt).forEach(function (e) {\r\n return e(evt);\r\n });\r\n return self;\r\n }\r\n function on(evt, cb) {\r\n listeners[evt] = getListeners(evt).concat([cb]);\r\n return self;\r\n }\r\n function off(evt, cb) {\r\n listeners[evt] = getListeners(evt).filter(function (e) {\r\n return e !== cb;\r\n });\r\n return self;\r\n }\r\n var self = {\r\n emit: emit,\r\n off: off,\r\n on: on,\r\n };\r\n return self;\r\n }\r\n\r\n var defaultOptions = {\r\n align: 'center',\r\n axis: 'x',\r\n container: null,\r\n slides: null,\r\n containScroll: '',\r\n direction: 'ltr',\r\n slidesToScroll: 1,\r\n breakpoints: {},\r\n dragFree: false,\r\n draggable: true,\r\n inViewThreshold: 0,\r\n loop: false,\r\n skipSnaps: false,\r\n speed: 10,\r\n startIndex: 0,\r\n active: true,\r\n };\r\n\r\n function OptionsHandler() {\r\n function merge(optionsA, optionsB) {\r\n return objectsMergeDeep(optionsA, optionsB || {});\r\n }\r\n function areEqual(optionsA, optionsB) {\r\n var breakpointsA = JSON.stringify(objectKeys(optionsA.breakpoints || {}));\r\n var breakpointsB = JSON.stringify(objectKeys(optionsB.breakpoints || {}));\r\n if (breakpointsA !== breakpointsB) return false;\r\n return objectsAreEqual(optionsA, optionsB);\r\n }\r\n function atMedia(options) {\r\n var optionsAtMedia = options.breakpoints || {};\r\n var matchedMediaOptions = objectKeys(optionsAtMedia)\r\n .filter(function (media) {\r\n return window.matchMedia(media).matches;\r\n })\r\n .map(function (media) {\r\n return optionsAtMedia[media];\r\n })\r\n .reduce(function (a, mediaOption) {\r\n return merge(a, mediaOption);\r\n }, {});\r\n return merge(options, matchedMediaOptions);\r\n }\r\n var self = {\r\n merge: merge,\r\n areEqual: areEqual,\r\n atMedia: atMedia,\r\n };\r\n return self;\r\n }\r\n\r\n function PluginsHandler() {\r\n var _a = OptionsHandler(),\r\n atMedia = _a.atMedia,\r\n areEqual = _a.areEqual;\r\n var activePlugins = [];\r\n var pluginsChanged = [];\r\n function haveChanged() {\r\n return pluginsChanged.some(function (hasChanged) {\r\n return hasChanged();\r\n });\r\n }\r\n function hasChanged(plugin) {\r\n var options = atMedia(plugin.options);\r\n return function () {\r\n return !areEqual(options, atMedia(plugin.options));\r\n };\r\n }\r\n function init(plugins, embla) {\r\n pluginsChanged = plugins.map(hasChanged);\r\n activePlugins = plugins.filter(function (plugin) {\r\n return atMedia(plugin.options).active;\r\n });\r\n activePlugins.forEach(function (plugin) {\r\n return plugin.init(embla);\r\n });\r\n return plugins.reduce(function (map, plugin) {\r\n var _a;\r\n return Object.assign(map, ((_a = {}), (_a[plugin.name] = plugin), _a));\r\n }, {});\r\n }\r\n function destroy() {\r\n activePlugins = activePlugins.filter(function (plugin) {\r\n return plugin.destroy();\r\n });\r\n }\r\n var self = {\r\n init: init,\r\n destroy: destroy,\r\n haveChanged: haveChanged,\r\n };\r\n return self;\r\n }\r\n\r\n function EmblaCarousel(root, userOptions, userPlugins) {\r\n var resizeHandlers = EventStore();\r\n var optionsHandler = OptionsHandler();\r\n var pluginsHandler = PluginsHandler();\r\n var eventHandler = EventHandler();\r\n var on = eventHandler.on,\r\n off = eventHandler.off;\r\n var reInit = reActivate;\r\n var destroyed = false;\r\n var engine;\r\n var optionsBase = optionsHandler.merge(\r\n defaultOptions,\r\n EmblaCarousel.globalOptions\r\n );\r\n var options = optionsHandler.merge(optionsBase);\r\n var pluginList = [];\r\n var pluginApis;\r\n var rootSize = 0;\r\n var container;\r\n var slides;\r\n function storeElements() {\r\n var userContainer = options.container,\r\n userSlides = options.slides;\r\n var customContainer = isString(userContainer)\r\n ? root.querySelector(userContainer)\r\n : userContainer;\r\n container = customContainer || root.children[0];\r\n var customSlides = isString(userSlides)\r\n ? container.querySelectorAll(userSlides)\r\n : userSlides;\r\n slides = [].slice.call(customSlides || container.children);\r\n }\r\n function activate(withOptions, withPlugins) {\r\n if (destroyed) return;\r\n optionsBase = optionsHandler.merge(optionsBase, withOptions);\r\n options = optionsHandler.atMedia(optionsBase);\r\n storeElements();\r\n engine = Engine(root, container, slides, options, eventHandler);\r\n rootSize = engine.axis.measureSize(root.getBoundingClientRect());\r\n if (!options.active) return deActivate();\r\n engine.translate.to(engine.location);\r\n pluginList = withPlugins || pluginList;\r\n pluginApis = pluginsHandler.init(pluginList, self);\r\n if (options.loop) {\r\n if (!engine.slideLooper.canLoop()) {\r\n deActivate();\r\n activate(\r\n {\r\n loop: false,\r\n },\r\n withPlugins\r\n );\r\n optionsBase = optionsHandler.merge(optionsBase, {\r\n loop: true,\r\n });\r\n return;\r\n }\r\n engine.slideLooper.loop();\r\n }\r\n if (options.draggable && container.offsetParent && slides.length) {\r\n engine.dragHandler.addActivationEvents();\r\n }\r\n }\r\n function reActivate(withOptions, withPlugins) {\r\n var startIndex = selectedScrollSnap();\r\n deActivate();\r\n activate(\r\n optionsHandler.merge(\r\n {\r\n startIndex: startIndex,\r\n },\r\n withOptions\r\n ),\r\n withPlugins\r\n );\r\n eventHandler.emit('reInit');\r\n }\r\n function deActivate() {\r\n engine.dragHandler.removeAllEvents();\r\n engine.animation.stop();\r\n engine.eventStore.removeAll();\r\n engine.translate.clear();\r\n engine.slideLooper.clear();\r\n pluginsHandler.destroy();\r\n }\r\n function destroy() {\r\n if (destroyed) return;\r\n destroyed = true;\r\n resizeHandlers.removeAll();\r\n deActivate();\r\n eventHandler.emit('destroy');\r\n }\r\n function resize() {\r\n var newOptions = optionsHandler.atMedia(optionsBase);\r\n var optionsChanged = !optionsHandler.areEqual(newOptions, options);\r\n var newRootSize = engine.axis.measureSize(root.getBoundingClientRect());\r\n var rootSizeChanged = rootSize !== newRootSize;\r\n var pluginsChanged = pluginsHandler.haveChanged();\r\n if (rootSizeChanged || optionsChanged || pluginsChanged) reActivate();\r\n eventHandler.emit('resize');\r\n }\r\n function slidesInView(target) {\r\n var location = engine[target ? 'target' : 'location'].get();\r\n var type = options.loop ? 'removeOffset' : 'constrain';\r\n return engine.slidesInView.check(engine.limit[type](location));\r\n }\r\n function slidesNotInView(target) {\r\n var inView = slidesInView(target);\r\n return engine.slideIndexes.filter(function (index) {\r\n return inView.indexOf(index) === -1;\r\n });\r\n }\r\n function scrollTo(index, jump, direction) {\r\n if (!options.active || destroyed) return;\r\n engine.scrollBody.useBaseMass().useSpeed(jump ? 100 : options.speed);\r\n engine.scrollTo.index(index, direction || 0);\r\n }\r\n function scrollNext(jump) {\r\n var next = engine.index.clone().add(1);\r\n scrollTo(next.get(), jump === true, -1);\r\n }\r\n function scrollPrev(jump) {\r\n var prev = engine.index.clone().add(-1);\r\n scrollTo(prev.get(), jump === true, 1);\r\n }\r\n function canScrollNext() {\r\n var next = engine.index.clone().add(1);\r\n return next.get() !== selectedScrollSnap();\r\n }\r\n function canScrollPrev() {\r\n var prev = engine.index.clone().add(-1);\r\n return prev.get() !== selectedScrollSnap();\r\n }\r\n function scrollSnapList() {\r\n return engine.scrollSnaps.map(engine.scrollProgress.get);\r\n }\r\n function scrollProgress() {\r\n return engine.scrollProgress.get(engine.location.get());\r\n }\r\n function selectedScrollSnap() {\r\n return engine.index.get();\r\n }\r\n function previousScrollSnap() {\r\n return engine.indexPrevious.get();\r\n }\r\n function clickAllowed() {\r\n return engine.dragHandler.clickAllowed();\r\n }\r\n function plugins() {\r\n return pluginApis;\r\n }\r\n function internalEngine() {\r\n return engine;\r\n }\r\n function rootNode() {\r\n return root;\r\n }\r\n function containerNode() {\r\n return container;\r\n }\r\n function slideNodes() {\r\n return slides;\r\n }\r\n var self = {\r\n canScrollNext: canScrollNext,\r\n canScrollPrev: canScrollPrev,\r\n clickAllowed: clickAllowed,\r\n containerNode: containerNode,\r\n internalEngine: internalEngine,\r\n destroy: destroy,\r\n off: off,\r\n on: on,\r\n plugins: plugins,\r\n previousScrollSnap: previousScrollSnap,\r\n reInit: reInit,\r\n rootNode: rootNode,\r\n scrollNext: scrollNext,\r\n scrollPrev: scrollPrev,\r\n scrollProgress: scrollProgress,\r\n scrollSnapList: scrollSnapList,\r\n scrollTo: scrollTo,\r\n selectedScrollSnap: selectedScrollSnap,\r\n slideNodes: slideNodes,\r\n slidesInView: slidesInView,\r\n slidesNotInView: slidesNotInView,\r\n };\r\n activate(userOptions, userPlugins);\r\n resizeHandlers.add(window, 'resize', resize);\r\n setTimeout(function () {\r\n return eventHandler.emit('init');\r\n }, 0);\r\n return self;\r\n }\r\n\r\n EmblaCarousel.globalOptions = undefined;\r\n EmblaCarousel.optionsHandler = OptionsHandler;\r\n\r\n if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = EmblaCarousel;\r\n } else {\r\n window.EmblaCarousel = EmblaCarousel;\r\n }\r\n})();\r\n\r\n/* ========================================================================\r\n Helpers\r\n ========================================================================== */\r\n\r\napp.embla = (function () {\r\n 'use strict';\r\n\r\n function initPrevNextButtons(prevBtn, nextBtn, embla) {\r\n if (prevBtn) prevBtn.addEventListener('click', embla.scrollPrev, false);\r\n if (nextBtn) nextBtn.addEventListener('click', embla.scrollNext, false);\r\n }\r\n\r\n function disablePrevNextButtons(prevBtn, nextBtn, embla) {\r\n if (prevBtn) {\r\n if (embla.canScrollPrev()) {\r\n prevBtn.removeAttribute('disabled');\r\n } else {\r\n prevBtn.setAttribute('disabled', 'disabled');\r\n }\r\n }\r\n\r\n if (nextBtn) {\r\n if (embla.canScrollNext()) {\r\n nextBtn.removeAttribute('disabled');\r\n } else {\r\n nextBtn.setAttribute('disabled', 'disabled');\r\n }\r\n }\r\n\r\n if (embla.canScrollPrev() || embla.canScrollNext()) {\r\n embla.rootNode().parentElement.dataset.overflow = true;\r\n } else {\r\n embla.rootNode().parentElement.dataset.overflow = false;\r\n }\r\n }\r\n\r\n function initDots(dotsArray, embla) {\r\n dotsArray.forEach((dotNode, i) => {\r\n dotNode.classList.add('embla__dot');\r\n dotNode.classList.add('is-reset-button');\r\n dotNode.addEventListener(\r\n 'click',\r\n () => {\r\n embla.scrollTo(i);\r\n },\r\n false\r\n );\r\n });\r\n }\r\n\r\n function generateDots(dots, embla) {\r\n const scrollSnaps = embla.scrollSnapList();\r\n const dotsFrag = document.createDocumentFragment();\r\n const dotsArray = scrollSnaps.map(() => {\r\n return document.createElement('button');\r\n });\r\n\r\n dotsArray.forEach((dotNode) => {\r\n dotsFrag.appendChild(dotNode);\r\n });\r\n\r\n dots.appendChild(dotsFrag);\r\n return dotsArray;\r\n }\r\n\r\n function selectDot(dotsArray, embla) {\r\n const previous = embla.previousScrollSnap();\r\n const selected = embla.selectedScrollSnap();\r\n\r\n dotsArray[previous].dataset.selected = false;\r\n dotsArray[selected].dataset.selected = true;\r\n }\r\n\r\n function showAllSlides(embla) {\r\n embla.slideNodes().forEach((slide) => {\r\n showSlide(slide);\r\n });\r\n }\r\n\r\n function showSlidesInView(embla) {\r\n embla.slidesInView(true).forEach((index) => {\r\n showSlide(embla.slideNodes()[index]);\r\n });\r\n }\r\n\r\n function tagSlidesGoingOutOfView(embla) {\r\n embla.slidesNotInView(true).forEach((index) => {\r\n embla.slideNodes()[index].dataset.status = 'hiding';\r\n disableFocusableElements(embla.slideNodes()[index]);\r\n });\r\n }\r\n\r\n function hideSlidesNotInView(embla) {\r\n embla.slidesNotInView(true).forEach((index) => {\r\n hideSlide(embla.slideNodes()[index]);\r\n });\r\n }\r\n\r\n function setSelectedSlide(embla) {\r\n embla.slideNodes().forEach((slide) => {\r\n slide.dataset.selected = false;\r\n });\r\n embla.slideNodes()[embla.selectedScrollSnap()].dataset.selected = true;\r\n }\r\n\r\n function hideSlide(slide) {\r\n slide.dataset.status = 'hidden';\r\n slide.setAttribute('aria-hidden', true);\r\n disableFocusableElements(slide);\r\n }\r\n\r\n function showSlide(slide) {\r\n slide.dataset.status = 'visible';\r\n slide.setAttribute('aria-hidden', false);\r\n enableFocusableElements(slide);\r\n }\r\n\r\n function disableFocusableElements(slide) {\r\n const focusableElements = slide.querySelectorAll(\r\n 'a[href], button, textarea, input, select'\r\n );\r\n\r\n focusableElements.forEach((element) => {\r\n element.setAttribute('tabindex', '-1');\r\n });\r\n }\r\n\r\n function enableFocusableElements(slide) {\r\n const focusableElements = slide.querySelectorAll('[tabindex=\"-1\"]');\r\n\r\n focusableElements.forEach((element) => {\r\n element.removeAttribute('tabindex');\r\n });\r\n }\r\n\r\n function onInit(prevBtn, nextBtn, viewport, embla) {\r\n initPrevNextButtons(prevBtn, nextBtn, embla);\r\n disablePrevNextButtons(prevBtn, nextBtn, embla);\r\n showSlidesInView(embla);\r\n hideSlidesNotInView(embla);\r\n setSelectedSlide(embla);\r\n\r\n viewport.parentElement.dataset.initialized = true;\r\n }\r\n\r\n function onReInit(prevBtn, nextBtn, embla) {\r\n disablePrevNextButtons(prevBtn, nextBtn, embla);\r\n showSlidesInView(embla);\r\n hideSlidesNotInView(embla);\r\n }\r\n\r\n function onSelect(prevBtn, nextBtn, embla) {\r\n disablePrevNextButtons(prevBtn, nextBtn, embla);\r\n showSlidesInView(embla);\r\n tagSlidesGoingOutOfView(embla);\r\n setSelectedSlide(embla);\r\n }\r\n\r\n function onSettle(embla) {\r\n hideSlidesNotInView(embla);\r\n }\r\n\r\n // Expose public functions and variables\r\n return {\r\n initPrevNextButtons: initPrevNextButtons,\r\n disablePrevNextButtons: disablePrevNextButtons,\r\n initDots: initDots,\r\n generateDots: generateDots,\r\n selectDot: selectDot,\r\n showAllSlides: showAllSlides,\r\n showSlidesInView: showSlidesInView,\r\n setSelectedSlide: setSelectedSlide,\r\n tagSlidesGoingOutOfView: tagSlidesGoingOutOfView,\r\n hideSlidesNotInView: hideSlidesNotInView,\r\n onInit: onInit,\r\n onReInit: onReInit,\r\n onSelect: onSelect,\r\n onSettle: onSettle,\r\n };\r\n})();\r\n"]}