{"version":3,"sources":["webpack:///./node_modules/splitting/dist/splitting.js","webpack:///./node_modules/@splidejs/splide-extension-auto-scroll/dist/js/splide-extension-auto-scroll.esm.js","webpack:///./node_modules/@splidejs/splide/dist/js/splide.esm.js"],"names":["module","exports","root","document","createText","createTextNode","bind","setProperty","el","varName","value","style","appendChild","child","createElement","parent","key","text","whitespace","className","setAttribute","textContent","getData","getAttribute","$","e","length","nodeName","slice","call","querySelectorAll","Array2D","len","a","each","items","fn","some","selectFrom","obj","plugins","createPlugin","by","depends","split","resolve","resolvePlugins","deps","index","indexOf","unshift","p","indexOfParent","splice","map","add","opts","splitText","splitOn","includePrevious","preserveWhitespace","normalize","elements","F","createDocumentFragment","push","previousSibling","allElements","childNodes","next","tagName","hasChildNodes","apply","wholeText","contents","trim","i","splitEl","innerHTML","wordPlugin","charPlugin","options","ctx","results","word","Splitting","target","force","opts2","dest","src","k","copy","plugin","pluginBy","key2","element","prefix","cssVar","Array","isArray","item","classList","detectGrid","side","matching","children","c","w","val","Math","round","Object","keys","Number","sort","byNumber","b","html","content","outerHTML","linePlugin","itemPlugin","rowPlugin","columnPlugin","gridPlugin","layoutPlugin","rows","columns","image","currentSrc","img","totalCells","container","cell","cellRowPlugin","rowCount","result","floor","cellColumnPlugin","columnCount","cellPlugin","opt","factory","slice$1","arrayLike","start","end","prototype","apply$1","func","concat","arguments","raf","requestAnimationFrame","typeOf$1","type","subject","isArray$1","toArray$1","forEach$1","values","iteratee","forEach","ownKeys$1","forOwn$1","object","right","reverse","min$1","min","EventInterface","Splide2","bus","event","binder","listeners","forEachEvent","targets","events","events2","eventNS","fragment","callback","namespace","isEventTarget","remover","removeEventListener","addEventListener","unbind","filter","listener","dispatch","detail","CustomEvent","bubbles","createEvent","initCustomEvent","dispatchEvent","destroy","data","EventBinder","on","source","assign$1","join","off","emit","typeOf","isObject","isNull","isUndefined","ownKeys","forOwn","assign","elms","attrs","value2","name","elm","attr","removeAttribute","String","max","ceil","abs","DEFAULTS","speed","autoStart","pauseOnHover","pauseOnFocus","I18N","startScroll","pauseScroll","AutoScroll","Components2","translate","getPosition","toIndex","getLimit","exceededLimit","Move","setIndex","getIndex","Controller","orient","Direction","toggle","Elements","Live","interval","stopped","hovered","focused","busy","currPosition","autoScrollOptions","mount","is","autoScroll","onInterval","onUpdate","limit","startTime","id","now","Date","rate","paused","count","update","pause","cancel","cancelAnimationFrame","resume","rewind","set","time","isPaused","RequestInterval","move","autoToggle","useToggleButton","play","listen","readyState","window","disable","updateButton","stop","position","destination","number","x","y","minimum","maximum","clamp","computeDestination","Slides","Pagination","updateIndex","go","classes","i18n","setup","_defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","STATES","CREATED","MOUNTED","IDLE","MOVING","SCROLLING","DRAGGING","DESTROYED","empty","array","nextTick","setTimeout","noop","isFunction","isString","isHTMLElement","HTMLElement","toArray","includes","toggleClass","addClass","append","before","nodes","ref","node","parentNode","insertBefore","matches","selector","children2","firstElementChild","merge","omit","create","tag","prop","getComputedStyle","display","display2","focus","preventScroll","hasClass","contains","rect","getBoundingClientRect","remove","removeChild","parseHtml","DOMParser","parseFromString","body","prevent","stopPropagation","preventDefault","stopImmediatePropagation","query","querySelector","queryAll","removeClass","timeOf","timeStamp","unit","assert","condition","message","Error","approximatelyEqual","epsilon","between","minOrMax","maxOrMin","exclusive","sign","camelToKebab","string","replace","toLowerCase","format","replacements","replacement","pad","ids","uniqueId","EVENT_MOUNTED","EVENT_READY","EVENT_MOVE","EVENT_MOVED","EVENT_SHIFTED","EVENT_CLICK","EVENT_ACTIVE","EVENT_INACTIVE","EVENT_VISIBLE","EVENT_HIDDEN","EVENT_SLIDE_KEYDOWN","EVENT_REFRESH","EVENT_UPDATED","EVENT_RESIZE","EVENT_RESIZED","EVENT_DRAG","EVENT_DRAGGING","EVENT_DRAGGED","EVENT_SCROLL","EVENT_SCROLLED","EVENT_DESTROY","EVENT_ARROWS_MOUNTED","EVENT_ARROWS_UPDATED","EVENT_PAGINATION_MOUNTED","EVENT_PAGINATION_UPDATED","EVENT_NAVIGATION_MOUNTED","EVENT_AUTOPLAY_PLAY","EVENT_AUTOPLAY_PLAYING","EVENT_AUTOPLAY_PAUSE","EVENT_LAZYLOAD_LOADED","State","initialState","state","states","Throttle","duration","LTR","RTL","TTB","ORIENTATION_MAP","width","left","X","Y","ArrowLeft","ARROW","ArrowRight","axisOnly","direction","match","offset","charAt","toUpperCase","ROLE","ALL_ATTRIBUTES","ARIA_PREFIX","CLASS_ROOT","CLASS_TRACK","PROJECT_CODE","CLASS_LIST","CLASS_SLIDE","CLASS_CLONE","CLASS_CONTAINER","CLASS_ARROWS","CLASS_ARROW","CLASS_ARROW_PREV","CLASS_ARROW_NEXT","CLASS_PAGINATION","CLASS_PAGINATION_PAGE","CLASS_PROGRESS","CLASS_PROGRESS_BAR","CLASS_TOGGLE","CLASS_TOGGLE_PLAY","CLASS_TOGGLE_PAUSE","CLASS_SPINNER","CLASS_SR","CLASS_INITIALIZED","CLASS_ACTIVE","CLASS_PREV","CLASS_NEXT","CLASS_VISIBLE","CLASS_LOADING","CLASS_FOCUS_IN","STATUS_CLASSES","CLASSES","slide","clone","arrows","arrow","prev","pagination","page","spinner","POINTER_UP_EVENTS","SLIDE","LOOP","FADE","Slide$1","slideIndex","destroyed","Components","isNavigation","updateOnMove","slideFocus","styles","label","isClone","initNavigation","controls","splides","Slide2","splide","getAt","slideX","onMove","curr","active","isActive","self","visible","trackRect","track","slideRect","isVisible","hidden","focusableNodes","activeElement","updateVisibility","cloneStatus","slideLabel","useContainer","isWithin","from","distance","diff","PATH","SCROLL_LISTENER_OPTIONS","passive","capture","NORMALIZATION_MAP","Spacebar","Right","Left","Up","Down","normalizeKey","TRIGGER_KEYS","ComponentConstructors","freeze","__proto__","Media","breakpoints","reducedMotion","queries","completely","register","options2","queryList","matchMedia","merged","reduce","merged2","entry","refresh","user","getPrototypeOf","isMin","mediaQuery","n","m","enable","list","isUsingKey","_EventInterface","slides","rootClasses","trackClasses","find","bar","role","carousel","init","getClasses","labelledby","closest","nodeType","parentElement","base","drag","POINTER_DOWN_EVENTS","_EventInterface2","_Components2$Elements","Slides2","get","excludeClones","matcher","Slide1","getIn","hasFocus","perPage","images","getLength","isEnough","Layout","vertical","rootRect","_EventInterface3","_Components2$Elements2","styleSlides","cssPadding","resize","newRect","height","cssHeight","cssTrackHeight","gap","autoWidth","fixedWidth","cssSlideSize","fixedHeight","autoHeight","padding","heightRatio","totalSize","withoutGap","Slide","getGap","parseFloat","listSize","slideSize","sliderSize","getPadding","Clones","cloneCount","_EventInterface4","clones","computeCloneCount","isHead","cloneNode","cloneDeep","generate","observe","clones2","fixedSize","Transition","_EventInterface5","_Components2$Layout","_Components2$Directio","_Components2$Elements3","reposition","isBusy","Scroll","jump","toPosition","preventLoop","exceededMax","getEnd","shift","loop","backwards","excess","size","minDistance","Infinity","trimming","trimSpace","shifted","exceededMin","slideCount","perMove","_Components2$Slides","isLoop","isSlide","getNext","getAdjacent","getPrev","currIndex","prevIndex","computeDestIndex","snapPage","computeMovableDestIndex","toPage","waitForTransition","control","allowSameIndex","_ref","indicator","parse","scroll","snap","toDest","Arrows","created","wrapperClasses","userArrows","wrapper","enabled","createArrow","remount","prev2","arrowPath","nextIndex","prevLabel","last","nextLabel","first","disabled","Autoplay","_EventInterface7","_Components2$Elements4","autoplay","resetProgress","DATA_ATTRIBUTE","Cover","cover","cover2","_EventInterface9","friction","onScrolled","noConstrain","clear","noDistance","onEnd","to","t","easingFunc","pow","Drag","basePosition","baseEvent","prevBaseEvent","isFree","dragging","clickPrevented","_EventInterface10","_Components2$Directio2","exceeded","onPointerDown","isTouch","isTouchEvent","target2","noDrag","button","onPointerMove","onPointerUp","save","cancelable","diffCoord","expired","diffTime","hasExceeded","isSliderDirection","thresholds","dragMinThreshold","isObj","mouse","touch","shouldStart","velocity","computeVelocity","flickPower","flickMaxPages","rewindByDrag","onClick","orthogonal","coordOf","getBaseEvent","changedTouches","TouchEvent","isDragging","Keyboard","_EventInterface11","keyboard","onKeydown","_disabled","LazyLoad","_EventInterface12","isSequential","lazyLoad","entries","srcset","SRC_DATA_ATTRIBUTE","loadNext","preloadPages","load","onLoad","paginationClasses","dir","getDirection","nextPage","paginationDirection","_button","select","li","class","pageX","paginationKeyboard","createPagination","Sync","isParent","sync","Wheel","lastTime","onWheel","deltaY","_min","wheelMinThreshold","sleep","wheelSleep","releaseWheel","shouldPrevent","wheel","live","sr","easing","rewindSpeed","Fade","done","endCallback","transition","getSpeed","useScroll","Splide","_Splide","this","_o","_E","defaults","JSON","Constructor","protoProps","staticProps","_proto","Extensions","_this","_C","_T","Component","component","_this$event","RENDERER_DEFAULT_CONFIG","listTag","slideTag","Style","_proto2","rule","breakpoint","selectors","build","_this2","css","default","buildSelectors","_this3","SplideRenderer","config","clean","_proto3","parseBreakpoints","initSlides","registerRootStyles","registerTrackStyles","registerSlideStyles","registerListStyles","_this4","buildStyles","generateClones","_this5","_ref2","_this6","Style2","_ref3","_this7","_ref4","buildTranslate","cssSlideHeight","cssAspectRatio","_this8","_ref5","cssSlideWidth","_this$Direction","cssOffsetClones","cssOffsetGaps","isCenter","buildCssValue","cssOffsetCenter","Boolean","_this$Direction2","getCloneCount","isFixedWidth","_this$parseCssValue","parseCssValue","unit2","_this$Direction3","_this$parseCssValue2","_this$parseCssValue3","_value","_unit","gapOffset","_this$parseCssValue4","gaps","isVertical","_this9","buildClasses","buildAttrs","renderSlides","_this10","_content$html","background","_ref6","renderArrows","renderArrow","_this$options","ariaLabel","_this$config","rootClass","beforeTrack","afterTrack","slider","beforeSlider","afterSlider"],"mappings":"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","file":"23.5709d3d3f432ae2c4d79.js","sourcesContent":["(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Splitting = factory());\n}(this, (function () { 'use strict';\n\nvar root = document;\nvar createText = root.createTextNode.bind(root);\n\n/**\n * # setProperty\n * Apply a CSS var\n * @param el{HTMLElement} \n * @param varName {string} \n * @param value {string|number} \n */\nfunction setProperty(el, varName, value) {\n el.style.setProperty(varName, value);\n} \n\n/**\n * \n * @param {Node} el \n * @param {Node} child \n */\nfunction appendChild(el, child) {\n return el.appendChild(child);\n}\n\nfunction createElement(parent, key, text, whitespace) {\n var el = root.createElement('span');\n key && (el.className = key); \n if (text) { \n !whitespace && el.setAttribute(\"data-\" + key, text);\n el.textContent = text; \n }\n return (parent && appendChild(parent, el)) || el;\n}\n\nfunction getData(el, key) {\n return el.getAttribute(\"data-\" + key)\n}\n\n/**\n * \n * @param e {import('../types').Target} \n * @param parent {HTMLElement}\n * @returns {HTMLElement[]}\n */\nfunction $(e, parent) {\n return !e || e.length == 0\n ? // null or empty string returns empty array\n []\n : e.nodeName\n ? // a single element is wrapped in an array\n [e]\n : // selector and NodeList are converted to Element[]\n [].slice.call(e[0].nodeName ? e : (parent || root).querySelectorAll(e));\n}\n\n/**\n * Creates and fills an array with the value provided\n * @template {T}\n * @param {number} len\n * @param {() => T} valueProvider\n * @return {T}\n */\nfunction Array2D(len) {\n var a = [];\n for (; len--; ) {\n a[len] = [];\n }\n return a;\n}\n\nfunction each(items, fn) {\n items && items.some(fn);\n}\n\nfunction selectFrom(obj) {\n return function (key) {\n return obj[key];\n }\n}\n\n/**\n * # Splitting.index\n * Index split elements and add them to a Splitting instance.\n *\n * @param element {HTMLElement}\n * @param key {string}\n * @param items {HTMLElement[] | HTMLElement[][]}\n */\nfunction index(element, key, items) {\n var prefix = '--' + key;\n var cssVar = prefix + \"-index\";\n\n each(items, function (items, i) {\n if (Array.isArray(items)) {\n each(items, function(item) {\n setProperty(item, cssVar, i);\n });\n } else {\n setProperty(items, cssVar, i);\n }\n });\n\n setProperty(element, prefix + \"-total\", items.length);\n}\n\n/**\n * @type {Record}\n */\nvar plugins = {};\n\n/**\n * @param by {string}\n * @param parent {string}\n * @param deps {string[]}\n * @return {string[]}\n */\nfunction resolvePlugins(by, parent, deps) {\n // skip if already visited this dependency\n var index = deps.indexOf(by);\n if (index == -1) {\n // if new to dependency array, add to the beginning\n deps.unshift(by);\n\n // recursively call this function for all dependencies\n each(plugins[by].depends, function(p) {\n resolvePlugins(p, by, deps);\n });\n } else {\n // if this dependency was added already move to the left of\n // the parent dependency so it gets loaded in order\n var indexOfParent = deps.indexOf(parent);\n deps.splice(index, 1);\n deps.splice(indexOfParent, 0, by);\n }\n return deps;\n}\n\n/**\n * Internal utility for creating plugins... essentially to reduce\n * the size of the library\n * @param {string} by \n * @param {string} key \n * @param {string[]} depends \n * @param {Function} split \n * @returns {import('./types').ISplittingPlugin}\n */\nfunction createPlugin(by, depends, key, split) {\n return {\n by: by,\n depends: depends,\n key: key,\n split: split\n }\n}\n\n/**\n *\n * @param by {string}\n * @returns {import('./types').ISplittingPlugin[]}\n */\nfunction resolve(by) {\n return resolvePlugins(by, 0, []).map(selectFrom(plugins));\n}\n\n/**\n * Adds a new plugin to splitting\n * @param opts {import('./types').ISplittingPlugin}\n */\nfunction add(opts) {\n plugins[opts.by] = opts;\n}\n\n/**\n * # Splitting.split\n * Split an element's textContent into individual elements\n * @param el {Node} Element to split\n * @param key {string}\n * @param splitOn {string}\n * @param includeSpace {boolean}\n * @returns {HTMLElement[]}\n */\nfunction splitText(el, key, splitOn, includePrevious, preserveWhitespace) {\n // Combine any strange text nodes or empty whitespace.\n el.normalize();\n\n // Use fragment to prevent unnecessary DOM thrashing.\n var elements = [];\n var F = document.createDocumentFragment();\n\n if (includePrevious) {\n elements.push(el.previousSibling);\n }\n\n var allElements = [];\n $(el.childNodes).some(function(next) {\n if (next.tagName && !next.hasChildNodes()) {\n // keep elements without child nodes (no text and no children)\n allElements.push(next);\n return;\n }\n // Recursively run through child nodes\n if (next.childNodes && next.childNodes.length) {\n allElements.push(next);\n elements.push.apply(elements, splitText(next, key, splitOn, includePrevious, preserveWhitespace));\n return;\n }\n\n // Get the text to split, trimming out the whitespace\n /** @type {string} */\n var wholeText = next.wholeText || '';\n var contents = wholeText.trim();\n\n // If there's no text left after trimming whitespace, continue the loop\n if (contents.length) {\n // insert leading space if there was one\n if (wholeText[0] === ' ') {\n allElements.push(createText(' '));\n }\n // Concatenate the split text children back into the full array\n each(contents.split(splitOn), function(splitText, i) {\n if (i && preserveWhitespace) {\n allElements.push(createElement(F, \"whitespace\", \" \", preserveWhitespace));\n }\n var splitEl = createElement(F, key, splitText);\n elements.push(splitEl);\n allElements.push(splitEl);\n }); \n // insert trailing space if there was one\n if (wholeText[wholeText.length - 1] === ' ') {\n allElements.push(createText(' '));\n }\n }\n });\n\n each(allElements, function(el) {\n appendChild(F, el);\n });\n\n // Clear out the existing element\n el.innerHTML = \"\";\n appendChild(el, F);\n return elements;\n}\n\n/** an empty value */\nvar _ = 0;\n\nfunction copy(dest, src) {\n for (var k in src) {\n dest[k] = src[k];\n }\n return dest;\n}\n\nvar WORDS = 'words';\n\nvar wordPlugin = createPlugin(\n /*by: */ WORDS,\n /*depends: */ _,\n /*key: */ 'word', \n /*split: */ function(el) {\n return splitText(el, 'word', /\\s+/, 0, 1)\n }\n);\n\nvar CHARS = \"chars\";\n\nvar charPlugin = createPlugin(\n /*by: */ CHARS,\n /*depends: */ [WORDS],\n /*key: */ \"char\", \n /*split: */ function(el, options, ctx) {\n var results = [];\n\n each(ctx[WORDS], function(word, i) {\n results.push.apply(results, splitText(word, \"char\", \"\", options.whitespace && i));\n });\n\n return results;\n }\n);\n\n/**\n * # Splitting\n * \n * @param opts {import('./types').ISplittingOptions} \n */\nfunction Splitting (opts) {\n opts = opts || {};\n var key = opts.key;\n\n return $(opts.target || '[data-splitting]').map(function(el) {\n var ctx = el['🍌']; \n if (!opts.force && ctx) {\n return ctx;\n }\n\n ctx = el['🍌'] = { el: el };\n var items = resolve(opts.by || getData(el, 'splitting') || CHARS);\n var opts2 = copy({}, opts);\n each(items, function(plugin) {\n if (plugin.split) {\n var pluginBy = plugin.by;\n var key2 = (key ? '-' + key : '') + plugin.key;\n var results = plugin.split(el, opts2, ctx);\n key2 && index(el, key2, results);\n ctx[pluginBy] = results;\n el.classList.add(pluginBy);\n } \n });\n\n el.classList.add('splitting');\n return ctx;\n })\n}\n\n/**\n * # Splitting.html\n * \n * @param opts {import('./types').ISplittingOptions}\n */\nfunction html(opts) {\n opts = opts || {};\n var parent = opts.target = createElement();\n parent.innerHTML = opts.content;\n Splitting(opts);\n return parent.outerHTML\n}\n\nSplitting.html = html;\nSplitting.add = add;\n\nfunction detectGrid(el, options, side) {\n var items = $(options.matching || el.children, el);\n var c = {};\n\n each(items, function(w) {\n var val = Math.round(w[side]);\n (c[val] || (c[val] = [])).push(w);\n });\n\n return Object.keys(c).map(Number).sort(byNumber).map(selectFrom(c));\n}\n\nfunction byNumber(a, b) {\n return a - b;\n}\n\nvar linePlugin = createPlugin(\n /*by: */ 'lines',\n /*depends: */ [WORDS],\n /*key: */ 'line',\n /*split: */ function(el, options, ctx) {\n return detectGrid(el, { matching: ctx[WORDS] }, 'offsetTop')\n }\n);\n\nvar itemPlugin = createPlugin(\n /*by: */ 'items',\n /*depends: */ _,\n /*key: */ 'item', \n /*split: */ function(el, options) {\n return $(options.matching || el.children, el)\n }\n);\n\nvar rowPlugin = createPlugin(\n /*by: */ 'rows',\n /*depends: */ _,\n /*key: */ 'row', \n /*split: */ function(el, options) {\n return detectGrid(el, options, \"offsetTop\");\n }\n);\n\nvar columnPlugin = createPlugin(\n /*by: */ 'cols',\n /*depends: */ _,\n /*key: */ \"col\", \n /*split: */ function(el, options) {\n return detectGrid(el, options, \"offsetLeft\");\n }\n);\n\nvar gridPlugin = createPlugin(\n /*by: */ 'grid',\n /*depends: */ ['rows', 'cols']\n);\n\nvar LAYOUT = \"layout\";\n\nvar layoutPlugin = createPlugin(\n /*by: */ LAYOUT,\n /*depends: */ _,\n /*key: */ _,\n /*split: */ function(el, opts) {\n // detect and set options\n var rows = opts.rows = +(opts.rows || getData(el, 'rows') || 1);\n var columns = opts.columns = +(opts.columns || getData(el, 'columns') || 1);\n\n // Seek out the first if the value is true \n opts.image = opts.image || getData(el, 'image') || el.currentSrc || el.src;\n if (opts.image) {\n var img = $(\"img\", el)[0];\n opts.image = img && (img.currentSrc || img.src);\n }\n\n // add optional image to background\n if (opts.image) {\n setProperty(el, \"background-image\", \"url(\" + opts.image + \")\");\n }\n\n var totalCells = rows * columns;\n var elements = [];\n\n var container = createElement(_, \"cell-grid\");\n while (totalCells--) {\n // Create a span\n var cell = createElement(container, \"cell\");\n createElement(cell, \"cell-inner\");\n elements.push(cell);\n }\n\n // Append elements back into the parent\n appendChild(el, container);\n\n return elements;\n }\n);\n\nvar cellRowPlugin = createPlugin(\n /*by: */ \"cellRows\",\n /*depends: */ [LAYOUT],\n /*key: */ \"row\",\n /*split: */ function(el, opts, ctx) {\n var rowCount = opts.rows;\n var result = Array2D(rowCount);\n\n each(ctx[LAYOUT], function(cell, i, src) {\n result[Math.floor(i / (src.length / rowCount))].push(cell);\n });\n\n return result;\n }\n);\n\nvar cellColumnPlugin = createPlugin(\n /*by: */ \"cellColumns\",\n /*depends: */ [LAYOUT],\n /*key: */ \"col\",\n /*split: */ function(el, opts, ctx) {\n var columnCount = opts.columns;\n var result = Array2D(columnCount);\n\n each(ctx[LAYOUT], function(cell, i) {\n result[i % columnCount].push(cell);\n });\n\n return result;\n }\n);\n\nvar cellPlugin = createPlugin(\n /*by: */ \"cells\",\n /*depends: */ ['cellRows', 'cellColumns'],\n /*key: */ \"cell\", \n /*split: */ function(el, opt, ctx) { \n // re-index the layout as the cells\n return ctx[LAYOUT];\n }\n);\n\n// install plugins\n// word/char plugins\nadd(wordPlugin);\nadd(charPlugin);\nadd(linePlugin);\n// grid plugins\nadd(itemPlugin);\nadd(rowPlugin);\nadd(columnPlugin);\nadd(gridPlugin);\n// cell-layout plugins\nadd(layoutPlugin);\nadd(cellRowPlugin);\nadd(cellColumnPlugin);\nadd(cellPlugin);\n\nreturn Splitting;\n\n})));\n","/*!\n * @splidejs/splide-extension-auto-scroll\n * Version : 0.5.0\n * License : MIT\n * Copyright: 2022 Naotoshi Fujita\n */\nfunction empty(array) {\n array.length = 0;\n}\n\nfunction slice$1(arrayLike, start, end) {\n return Array.prototype.slice.call(arrayLike, start, end);\n}\n\nfunction apply$1(func) {\n return func.bind.apply(func, [null].concat(slice$1(arguments, 1)));\n}\n\nfunction raf(func) {\n return requestAnimationFrame(func);\n}\n\nfunction typeOf$1(type, subject) {\n return typeof subject === type;\n}\n\nvar isArray$1 = Array.isArray;\napply$1(typeOf$1, \"function\");\napply$1(typeOf$1, \"string\");\napply$1(typeOf$1, \"undefined\");\n\nfunction toArray$1(value) {\n return isArray$1(value) ? value : [value];\n}\n\nfunction forEach$1(values, iteratee) {\n toArray$1(values).forEach(iteratee);\n}\n\nvar ownKeys$1 = Object.keys;\n\nfunction forOwn$1(object, iteratee, right) {\n if (object) {\n var keys = ownKeys$1(object);\n keys = right ? keys.reverse() : keys;\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== \"__proto__\") {\n if (iteratee(object[key], key) === false) {\n break;\n }\n }\n }\n }\n\n return object;\n}\n\nfunction assign$1(object) {\n slice$1(arguments, 1).forEach(function (source) {\n forOwn$1(source, function (value, key) {\n object[key] = source[key];\n });\n });\n return object;\n}\n\nvar min$1 = Math.min;\n\nfunction EventBinder() {\n var listeners = [];\n\n function bind(targets, events, callback, options) {\n forEachEvent(targets, events, function (target, event, namespace) {\n var isEventTarget = (\"addEventListener\" in target);\n var remover = isEventTarget ? target.removeEventListener.bind(target, event, callback, options) : target[\"removeListener\"].bind(target, callback);\n isEventTarget ? target.addEventListener(event, callback, options) : target[\"addListener\"](callback);\n listeners.push([target, event, namespace, callback, remover]);\n });\n }\n\n function unbind(targets, events, callback) {\n forEachEvent(targets, events, function (target, event, namespace) {\n listeners = listeners.filter(function (listener) {\n if (listener[0] === target && listener[1] === event && listener[2] === namespace && (!callback || listener[3] === callback)) {\n listener[4]();\n return false;\n }\n\n return true;\n });\n });\n }\n\n function dispatch(target, type, detail) {\n var e;\n var bubbles = true;\n\n if (typeof CustomEvent === \"function\") {\n e = new CustomEvent(type, {\n bubbles: bubbles,\n detail: detail\n });\n } else {\n e = document.createEvent(\"CustomEvent\");\n e.initCustomEvent(type, bubbles, false, detail);\n }\n\n target.dispatchEvent(e);\n return e;\n }\n\n function forEachEvent(targets, events, iteratee) {\n forEach$1(targets, function (target) {\n target && forEach$1(events, function (events2) {\n events2.split(\" \").forEach(function (eventNS) {\n var fragment = eventNS.split(\".\");\n iteratee(target, fragment[0], fragment[1]);\n });\n });\n });\n }\n\n function destroy() {\n listeners.forEach(function (data) {\n data[4]();\n });\n empty(listeners);\n }\n\n return {\n bind: bind,\n unbind: unbind,\n dispatch: dispatch,\n destroy: destroy\n };\n}\nvar EVENT_MOVE = \"move\";\nvar EVENT_MOVED = \"moved\";\nvar EVENT_UPDATED = \"updated\";\nvar EVENT_DRAG = \"drag\";\nvar EVENT_SCROLL = \"scroll\";\nvar EVENT_SCROLLED = \"scrolled\";\nvar EVENT_DESTROY = \"destroy\";\n\nfunction EventInterface(Splide2) {\n var bus = Splide2 ? Splide2.event.bus : document.createDocumentFragment();\n var binder = EventBinder();\n\n function on(events, callback) {\n binder.bind(bus, toArray$1(events).join(\" \"), function (e) {\n callback.apply(callback, isArray$1(e.detail) ? e.detail : []);\n });\n }\n\n function emit(event) {\n binder.dispatch(bus, event, slice$1(arguments, 1));\n }\n\n if (Splide2) {\n Splide2.event.on(EVENT_DESTROY, binder.destroy);\n }\n\n return assign$1(binder, {\n bus: bus,\n on: on,\n off: apply$1(binder.unbind, bus),\n emit: emit\n });\n}\n\nfunction RequestInterval(interval, onInterval, onUpdate, limit) {\n var now = Date.now;\n var startTime;\n var rate = 0;\n var id;\n var paused = true;\n var count = 0;\n\n function update() {\n if (!paused) {\n rate = interval ? min$1((now() - startTime) / interval, 1) : 1;\n onUpdate && onUpdate(rate);\n\n if (rate >= 1) {\n onInterval();\n startTime = now();\n\n if (limit && ++count >= limit) {\n return pause();\n }\n }\n\n raf(update);\n }\n }\n\n function start(resume) {\n !resume && cancel();\n startTime = now() - (resume ? rate * interval : 0);\n paused = false;\n raf(update);\n }\n\n function pause() {\n paused = true;\n }\n\n function rewind() {\n startTime = now();\n rate = 0;\n\n if (onUpdate) {\n onUpdate(rate);\n }\n }\n\n function cancel() {\n id && cancelAnimationFrame(id);\n rate = 0;\n id = 0;\n paused = true;\n }\n\n function set(time) {\n interval = time;\n }\n\n function isPaused() {\n return paused;\n }\n\n return {\n start: start,\n rewind: rewind,\n pause: pause,\n cancel: cancel,\n set: set,\n isPaused: isPaused\n };\n}\nvar CLASS_ACTIVE = \"is-active\";\n\nvar SLIDE = \"slide\";\nvar FADE = \"fade\";\n\nfunction slice(arrayLike, start, end) {\n return Array.prototype.slice.call(arrayLike, start, end);\n}\n\nfunction apply(func) {\n return func.bind(null, ...slice(arguments, 1));\n}\n\nfunction typeOf(type, subject) {\n return typeof subject === type;\n}\nfunction isObject(subject) {\n return !isNull(subject) && typeOf(\"object\", subject);\n}\nconst isArray = Array.isArray;\napply(typeOf, \"function\");\napply(typeOf, \"string\");\nconst isUndefined = apply(typeOf, \"undefined\");\nfunction isNull(subject) {\n return subject === null;\n}\n\nfunction toArray(value) {\n return isArray(value) ? value : [value];\n}\n\nfunction forEach(values, iteratee) {\n toArray(values).forEach(iteratee);\n}\n\nfunction toggleClass(elm, classes, add) {\n if (elm) {\n forEach(classes, (name) => {\n if (name) {\n elm.classList[add ? \"add\" : \"remove\"](name);\n }\n });\n }\n}\n\nconst ownKeys = Object.keys;\n\nfunction forOwn(object, iteratee, right) {\n if (object) {\n let keys = ownKeys(object);\n keys = right ? keys.reverse() : keys;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key !== \"__proto__\") {\n if (iteratee(object[key], key) === false) {\n break;\n }\n }\n }\n }\n return object;\n}\n\nfunction assign(object) {\n slice(arguments, 1).forEach((source) => {\n forOwn(source, (value, key) => {\n object[key] = source[key];\n });\n });\n return object;\n}\n\nfunction removeAttribute(elms, attrs) {\n forEach(elms, (elm) => {\n forEach(attrs, (attr) => {\n elm && elm.removeAttribute(attr);\n });\n });\n}\n\nfunction setAttribute(elms, attrs, value) {\n if (isObject(attrs)) {\n forOwn(attrs, (value2, name) => {\n setAttribute(elms, name, value2);\n });\n } else {\n forEach(elms, (elm) => {\n isNull(value) || value === \"\" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));\n });\n }\n}\n\nconst { min, max, floor, ceil, abs } = Math;\n\nfunction clamp(number, x, y) {\n const minimum = min(x, y);\n const maximum = max(x, y);\n return min(max(minimum, number), maximum);\n}\n\nconst DEFAULTS = {\n speed: 1,\n autoStart: true,\n pauseOnHover: true,\n pauseOnFocus: true\n};\n\nconst I18N = {\n startScroll: \"Start auto scroll\",\n pauseScroll: \"Pause auto scroll\"\n};\n\nfunction AutoScroll(Splide2, Components2, options) {\n const { on, off, bind, unbind } = EventInterface(Splide2);\n const { translate, getPosition, toIndex, getLimit, exceededLimit } = Components2.Move;\n const { setIndex, getIndex } = Components2.Controller;\n const { orient } = Components2.Direction;\n const { toggle } = Components2.Elements;\n const { Live } = Components2;\n const { root } = Splide2;\n let autoScrollOptions = {};\n let interval;\n let stopped;\n let hovered;\n let focused;\n let busy;\n let currPosition;\n function setup() {\n const { autoScroll } = options;\n autoScrollOptions = assign({}, DEFAULTS, isObject(autoScroll) ? autoScroll : {});\n }\n function mount() {\n if (!Splide2.is(FADE)) {\n if (!interval && options.autoScroll !== false) {\n interval = RequestInterval(0, move);\n listen();\n autoStart();\n }\n }\n }\n function destroy() {\n if (interval) {\n interval.cancel();\n interval = null;\n currPosition = void 0;\n off([EVENT_MOVE, EVENT_DRAG, EVENT_SCROLL, EVENT_MOVED, EVENT_SCROLLED]);\n unbind(root, \"mouseenter mouseleave focusin focusout\");\n unbind(toggle, \"click\");\n }\n }\n function listen() {\n if (autoScrollOptions.pauseOnHover) {\n bind(root, \"mouseenter mouseleave\", (e) => {\n hovered = e.type === \"mouseenter\";\n autoToggle();\n });\n }\n if (autoScrollOptions.pauseOnFocus) {\n bind(root, \"focusin focusout\", (e) => {\n focused = e.type === \"focusin\";\n autoToggle();\n });\n }\n if (autoScrollOptions.useToggleButton) {\n bind(toggle, \"click\", () => {\n stopped ? play() : pause();\n });\n }\n on(EVENT_UPDATED, update);\n on([EVENT_MOVE, EVENT_DRAG, EVENT_SCROLL], () => {\n busy = true;\n pause(false);\n });\n on([EVENT_MOVED, EVENT_SCROLLED], () => {\n busy = false;\n autoToggle();\n });\n }\n function update() {\n const { autoScroll } = options;\n if (autoScroll !== false) {\n autoScrollOptions = assign({}, autoScrollOptions, isObject(autoScroll) ? autoScroll : {});\n mount();\n } else {\n destroy();\n }\n if (interval && !isUndefined(currPosition)) {\n translate(currPosition);\n }\n }\n function autoStart() {\n if (autoScrollOptions.autoStart) {\n if (document.readyState === \"complete\") {\n play();\n } else {\n bind(window, \"load\", play);\n }\n }\n }\n function play() {\n if (isPaused()) {\n interval.start(true);\n Live.disable(true);\n focused = hovered = stopped = false;\n updateButton();\n }\n }\n function pause(stop = true) {\n if (!stopped) {\n stopped = stop;\n updateButton();\n if (!isPaused()) {\n interval.pause();\n Live.disable(false);\n }\n }\n }\n function autoToggle() {\n if (!stopped) {\n hovered || focused || busy ? pause(false) : play();\n }\n }\n function move() {\n const position = getPosition();\n const destination = computeDestination(position);\n if (position !== destination) {\n translate(destination);\n updateIndex(currPosition = getPosition());\n } else {\n pause(false);\n if (autoScrollOptions.rewind) {\n Splide2.go(0);\n }\n }\n }\n function computeDestination(position) {\n const speed = autoScrollOptions.speed || 1;\n position += orient(speed);\n if (Splide2.is(SLIDE)) {\n position = clamp(position, getLimit(false), getLimit(true));\n }\n return position;\n }\n function updateIndex(position) {\n const { length } = Splide2;\n const index = (toIndex(position) + length) % length;\n if (index !== getIndex()) {\n setIndex(index);\n Components2.Slides.update();\n Components2.Pagination.update();\n }\n }\n function updateButton() {\n if (toggle) {\n const key = stopped ? \"startScroll\" : \"pauseScroll\";\n toggleClass(toggle, CLASS_ACTIVE, !stopped);\n setAttribute(toggle, \"aria-label\", options.i18n[key] || I18N[key]);\n }\n }\n function isPaused() {\n return !interval || interval.isPaused();\n }\n return {\n setup,\n mount,\n destroy,\n play,\n pause,\n isPaused\n };\n}\n\nexport { AutoScroll };\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*!\n * Splide.js\n * Version : 4.0.8\n * License : MIT\n * Copyright: 2022 Naotoshi Fujita\n */\nvar MEDIA_PREFERS_REDUCED_MOTION = \"(prefers-reduced-motion: reduce)\";\nvar CREATED = 1;\nvar MOUNTED = 2;\nvar IDLE = 3;\nvar MOVING = 4;\nvar SCROLLING = 5;\nvar DRAGGING = 6;\nvar DESTROYED = 7;\nvar STATES = {\n CREATED: CREATED,\n MOUNTED: MOUNTED,\n IDLE: IDLE,\n MOVING: MOVING,\n SCROLLING: SCROLLING,\n DRAGGING: DRAGGING,\n DESTROYED: DESTROYED\n};\n\nfunction empty(array) {\n array.length = 0;\n}\n\nfunction slice(arrayLike, start, end) {\n return Array.prototype.slice.call(arrayLike, start, end);\n}\n\nfunction apply(func) {\n return func.bind.apply(func, [null].concat(slice(arguments, 1)));\n}\n\nvar nextTick = setTimeout;\n\nvar noop = function noop() {};\n\nfunction raf(func) {\n return requestAnimationFrame(func);\n}\n\nfunction typeOf(type, subject) {\n return typeof subject === type;\n}\n\nfunction isObject(subject) {\n return !isNull(subject) && typeOf(\"object\", subject);\n}\n\nvar isArray = Array.isArray;\nvar isFunction = apply(typeOf, \"function\");\nvar isString = apply(typeOf, \"string\");\nvar isUndefined = apply(typeOf, \"undefined\");\n\nfunction isNull(subject) {\n return subject === null;\n}\n\nfunction isHTMLElement(subject) {\n return subject instanceof HTMLElement;\n}\n\nfunction toArray(value) {\n return isArray(value) ? value : [value];\n}\n\nfunction forEach(values, iteratee) {\n toArray(values).forEach(iteratee);\n}\n\nfunction includes(array, value) {\n return array.indexOf(value) > -1;\n}\n\nfunction push(array, items) {\n array.push.apply(array, toArray(items));\n return array;\n}\n\nfunction toggleClass(elm, classes, add) {\n if (elm) {\n forEach(classes, function (name) {\n if (name) {\n elm.classList[add ? \"add\" : \"remove\"](name);\n }\n });\n }\n}\n\nfunction addClass(elm, classes) {\n toggleClass(elm, isString(classes) ? classes.split(\" \") : classes, true);\n}\n\nfunction append(parent, children) {\n forEach(children, parent.appendChild.bind(parent));\n}\n\nfunction before(nodes, ref) {\n forEach(nodes, function (node) {\n var parent = (ref || node).parentNode;\n\n if (parent) {\n parent.insertBefore(node, ref);\n }\n });\n}\n\nfunction matches(elm, selector) {\n return isHTMLElement(elm) && (elm[\"msMatchesSelector\"] || elm.matches).call(elm, selector);\n}\n\nfunction children(parent, selector) {\n var children2 = parent ? slice(parent.children) : [];\n return selector ? children2.filter(function (child) {\n return matches(child, selector);\n }) : children2;\n}\n\nfunction child(parent, selector) {\n return selector ? children(parent, selector)[0] : parent.firstElementChild;\n}\n\nvar ownKeys = Object.keys;\n\nfunction forOwn(object, iteratee, right) {\n if (object) {\n var keys = ownKeys(object);\n keys = right ? keys.reverse() : keys;\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== \"__proto__\") {\n if (iteratee(object[key], key) === false) {\n break;\n }\n }\n }\n }\n\n return object;\n}\n\nfunction assign(object) {\n slice(arguments, 1).forEach(function (source) {\n forOwn(source, function (value, key) {\n object[key] = source[key];\n });\n });\n return object;\n}\n\nfunction merge(object) {\n slice(arguments, 1).forEach(function (source) {\n forOwn(source, function (value, key) {\n if (isArray(value)) {\n object[key] = value.slice();\n } else if (isObject(value)) {\n object[key] = merge({}, isObject(object[key]) ? object[key] : {}, value);\n } else {\n object[key] = value;\n }\n });\n });\n return object;\n}\n\nfunction omit(object, keys) {\n toArray(keys || ownKeys(object)).forEach(function (key) {\n delete object[key];\n });\n}\n\nfunction removeAttribute(elms, attrs) {\n forEach(elms, function (elm) {\n forEach(attrs, function (attr) {\n elm && elm.removeAttribute(attr);\n });\n });\n}\n\nfunction setAttribute(elms, attrs, value) {\n if (isObject(attrs)) {\n forOwn(attrs, function (value2, name) {\n setAttribute(elms, name, value2);\n });\n } else {\n forEach(elms, function (elm) {\n isNull(value) || value === \"\" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));\n });\n }\n}\n\nfunction create(tag, attrs, parent) {\n var elm = document.createElement(tag);\n\n if (attrs) {\n isString(attrs) ? addClass(elm, attrs) : setAttribute(elm, attrs);\n }\n\n parent && append(parent, elm);\n return elm;\n}\n\nfunction style(elm, prop, value) {\n if (isUndefined(value)) {\n return getComputedStyle(elm)[prop];\n }\n\n if (!isNull(value)) {\n elm.style[prop] = \"\" + value;\n }\n}\n\nfunction display(elm, display2) {\n style(elm, \"display\", display2);\n}\n\nfunction focus(elm) {\n elm[\"setActive\"] && elm[\"setActive\"]() || elm.focus({\n preventScroll: true\n });\n}\n\nfunction getAttribute(elm, attr) {\n return elm.getAttribute(attr);\n}\n\nfunction hasClass(elm, className) {\n return elm && elm.classList.contains(className);\n}\n\nfunction rect(target) {\n return target.getBoundingClientRect();\n}\n\nfunction remove(nodes) {\n forEach(nodes, function (node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n });\n}\n\nfunction parseHtml(html) {\n return child(new DOMParser().parseFromString(html, \"text/html\").body);\n}\n\nfunction prevent(e, stopPropagation) {\n e.preventDefault();\n\n if (stopPropagation) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n}\n\nfunction query(parent, selector) {\n return parent && parent.querySelector(selector);\n}\n\nfunction queryAll(parent, selector) {\n return selector ? slice(parent.querySelectorAll(selector)) : [];\n}\n\nfunction removeClass(elm, classes) {\n toggleClass(elm, classes, false);\n}\n\nfunction timeOf(e) {\n return e.timeStamp;\n}\n\nfunction unit(value) {\n return isString(value) ? value : value ? value + \"px\" : \"\";\n}\n\nvar PROJECT_CODE = \"splide\";\nvar DATA_ATTRIBUTE = \"data-\" + PROJECT_CODE;\n\nfunction assert(condition, message) {\n if (!condition) {\n throw new Error(\"[\" + PROJECT_CODE + \"] \" + (message || \"\"));\n }\n}\n\nvar min = Math.min,\n max = Math.max,\n floor = Math.floor,\n ceil = Math.ceil,\n abs = Math.abs;\n\nfunction approximatelyEqual(x, y, epsilon) {\n return abs(x - y) < epsilon;\n}\n\nfunction between(number, minOrMax, maxOrMin, exclusive) {\n var minimum = min(minOrMax, maxOrMin);\n var maximum = max(minOrMax, maxOrMin);\n return exclusive ? minimum < number && number < maximum : minimum <= number && number <= maximum;\n}\n\nfunction clamp(number, x, y) {\n var minimum = min(x, y);\n var maximum = max(x, y);\n return min(max(minimum, number), maximum);\n}\n\nfunction sign(x) {\n return +(x > 0) - +(x < 0);\n}\n\nfunction camelToKebab(string) {\n return string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\nfunction format(string, replacements) {\n forEach(replacements, function (replacement) {\n string = string.replace(\"%s\", \"\" + replacement);\n });\n return string;\n}\n\nfunction pad(number) {\n return number < 10 ? \"0\" + number : \"\" + number;\n}\n\nvar ids = {};\n\nfunction uniqueId(prefix) {\n return \"\" + prefix + pad(ids[prefix] = (ids[prefix] || 0) + 1);\n}\n\nfunction EventBinder() {\n var listeners = [];\n\n function bind(targets, events, callback, options) {\n forEachEvent(targets, events, function (target, event, namespace) {\n var isEventTarget = (\"addEventListener\" in target);\n var remover = isEventTarget ? target.removeEventListener.bind(target, event, callback, options) : target[\"removeListener\"].bind(target, callback);\n isEventTarget ? target.addEventListener(event, callback, options) : target[\"addListener\"](callback);\n listeners.push([target, event, namespace, callback, remover]);\n });\n }\n\n function unbind(targets, events, callback) {\n forEachEvent(targets, events, function (target, event, namespace) {\n listeners = listeners.filter(function (listener) {\n if (listener[0] === target && listener[1] === event && listener[2] === namespace && (!callback || listener[3] === callback)) {\n listener[4]();\n return false;\n }\n\n return true;\n });\n });\n }\n\n function dispatch(target, type, detail) {\n var e;\n var bubbles = true;\n\n if (typeof CustomEvent === \"function\") {\n e = new CustomEvent(type, {\n bubbles: bubbles,\n detail: detail\n });\n } else {\n e = document.createEvent(\"CustomEvent\");\n e.initCustomEvent(type, bubbles, false, detail);\n }\n\n target.dispatchEvent(e);\n return e;\n }\n\n function forEachEvent(targets, events, iteratee) {\n forEach(targets, function (target) {\n target && forEach(events, function (events2) {\n events2.split(\" \").forEach(function (eventNS) {\n var fragment = eventNS.split(\".\");\n iteratee(target, fragment[0], fragment[1]);\n });\n });\n });\n }\n\n function destroy() {\n listeners.forEach(function (data) {\n data[4]();\n });\n empty(listeners);\n }\n\n return {\n bind: bind,\n unbind: unbind,\n dispatch: dispatch,\n destroy: destroy\n };\n}\n\nvar EVENT_MOUNTED = \"mounted\";\nvar EVENT_READY = \"ready\";\nvar EVENT_MOVE = \"move\";\nvar EVENT_MOVED = \"moved\";\nvar EVENT_SHIFTED = \"shifted\";\nvar EVENT_CLICK = \"click\";\nvar EVENT_ACTIVE = \"active\";\nvar EVENT_INACTIVE = \"inactive\";\nvar EVENT_VISIBLE = \"visible\";\nvar EVENT_HIDDEN = \"hidden\";\nvar EVENT_SLIDE_KEYDOWN = \"slide:keydown\";\nvar EVENT_REFRESH = \"refresh\";\nvar EVENT_UPDATED = \"updated\";\nvar EVENT_RESIZE = \"resize\";\nvar EVENT_RESIZED = \"resized\";\nvar EVENT_DRAG = \"drag\";\nvar EVENT_DRAGGING = \"dragging\";\nvar EVENT_DRAGGED = \"dragged\";\nvar EVENT_SCROLL = \"scroll\";\nvar EVENT_SCROLLED = \"scrolled\";\nvar EVENT_DESTROY = \"destroy\";\nvar EVENT_ARROWS_MOUNTED = \"arrows:mounted\";\nvar EVENT_ARROWS_UPDATED = \"arrows:updated\";\nvar EVENT_PAGINATION_MOUNTED = \"pagination:mounted\";\nvar EVENT_PAGINATION_UPDATED = \"pagination:updated\";\nvar EVENT_NAVIGATION_MOUNTED = \"navigation:mounted\";\nvar EVENT_AUTOPLAY_PLAY = \"autoplay:play\";\nvar EVENT_AUTOPLAY_PLAYING = \"autoplay:playing\";\nvar EVENT_AUTOPLAY_PAUSE = \"autoplay:pause\";\nvar EVENT_LAZYLOAD_LOADED = \"lazyload:loaded\";\n\nfunction EventInterface(Splide2) {\n var bus = Splide2 ? Splide2.event.bus : document.createDocumentFragment();\n var binder = EventBinder();\n\n function on(events, callback) {\n binder.bind(bus, toArray(events).join(\" \"), function (e) {\n callback.apply(callback, isArray(e.detail) ? e.detail : []);\n });\n }\n\n function emit(event) {\n binder.dispatch(bus, event, slice(arguments, 1));\n }\n\n if (Splide2) {\n Splide2.event.on(EVENT_DESTROY, binder.destroy);\n }\n\n return assign(binder, {\n bus: bus,\n on: on,\n off: apply(binder.unbind, bus),\n emit: emit\n });\n}\n\nfunction RequestInterval(interval, onInterval, onUpdate, limit) {\n var now = Date.now;\n var startTime;\n var rate = 0;\n var id;\n var paused = true;\n var count = 0;\n\n function update() {\n if (!paused) {\n rate = interval ? min((now() - startTime) / interval, 1) : 1;\n onUpdate && onUpdate(rate);\n\n if (rate >= 1) {\n onInterval();\n startTime = now();\n\n if (limit && ++count >= limit) {\n return pause();\n }\n }\n\n raf(update);\n }\n }\n\n function start(resume) {\n !resume && cancel();\n startTime = now() - (resume ? rate * interval : 0);\n paused = false;\n raf(update);\n }\n\n function pause() {\n paused = true;\n }\n\n function rewind() {\n startTime = now();\n rate = 0;\n\n if (onUpdate) {\n onUpdate(rate);\n }\n }\n\n function cancel() {\n id && cancelAnimationFrame(id);\n rate = 0;\n id = 0;\n paused = true;\n }\n\n function set(time) {\n interval = time;\n }\n\n function isPaused() {\n return paused;\n }\n\n return {\n start: start,\n rewind: rewind,\n pause: pause,\n cancel: cancel,\n set: set,\n isPaused: isPaused\n };\n}\n\nfunction State(initialState) {\n var state = initialState;\n\n function set(value) {\n state = value;\n }\n\n function is(states) {\n return includes(toArray(states), state);\n }\n\n return {\n set: set,\n is: is\n };\n}\n\nfunction Throttle(func, duration) {\n var interval;\n\n function throttled() {\n if (!interval) {\n interval = RequestInterval(duration || 0, function () {\n func();\n interval = null;\n }, null, 1);\n interval.start();\n }\n }\n\n return throttled;\n}\n\nfunction Media(Splide2, Components2, options) {\n var state = Splide2.state;\n var breakpoints = options.breakpoints || {};\n var reducedMotion = options.reducedMotion || {};\n var binder = EventBinder();\n var queries = [];\n\n function setup() {\n var isMin = options.mediaQuery === \"min\";\n ownKeys(breakpoints).sort(function (n, m) {\n return isMin ? +n - +m : +m - +n;\n }).forEach(function (key) {\n register(breakpoints[key], \"(\" + (isMin ? \"min\" : \"max\") + \"-width:\" + key + \"px)\");\n });\n register(reducedMotion, MEDIA_PREFERS_REDUCED_MOTION);\n update();\n }\n\n function destroy(completely) {\n if (completely) {\n binder.destroy();\n }\n }\n\n function register(options2, query) {\n var queryList = matchMedia(query);\n binder.bind(queryList, \"change\", update);\n queries.push([options2, queryList]);\n }\n\n function update() {\n var destroyed = state.is(DESTROYED);\n var direction = options.direction;\n var merged = queries.reduce(function (merged2, entry) {\n return merge(merged2, entry[1].matches ? entry[0] : {});\n }, {});\n omit(options);\n set(merged);\n\n if (options.destroy) {\n Splide2.destroy(options.destroy === \"completely\");\n } else if (destroyed) {\n destroy(true);\n Splide2.mount();\n } else {\n direction !== options.direction && Splide2.refresh();\n }\n }\n\n function reduce(enable) {\n if (matchMedia(MEDIA_PREFERS_REDUCED_MOTION).matches) {\n enable ? merge(options, reducedMotion) : omit(options, ownKeys(reducedMotion));\n }\n }\n\n function set(opts, user) {\n merge(options, opts);\n user && merge(Object.getPrototypeOf(options), opts);\n\n if (!state.is(CREATED)) {\n Splide2.emit(EVENT_UPDATED, options);\n }\n }\n\n return {\n setup: setup,\n destroy: destroy,\n reduce: reduce,\n set: set\n };\n}\n\nvar ARROW = \"Arrow\";\nvar ARROW_LEFT = ARROW + \"Left\";\nvar ARROW_RIGHT = ARROW + \"Right\";\nvar ARROW_UP = ARROW + \"Up\";\nvar ARROW_DOWN = ARROW + \"Down\";\nvar LTR = \"ltr\";\nvar RTL = \"rtl\";\nvar TTB = \"ttb\";\nvar ORIENTATION_MAP = {\n width: [\"height\"],\n left: [\"top\", \"right\"],\n right: [\"bottom\", \"left\"],\n x: [\"y\"],\n X: [\"Y\"],\n Y: [\"X\"],\n ArrowLeft: [ARROW_UP, ARROW_RIGHT],\n ArrowRight: [ARROW_DOWN, ARROW_LEFT]\n};\n\nfunction Direction(Splide2, Components2, options) {\n function resolve(prop, axisOnly, direction) {\n direction = direction || options.direction;\n var index = direction === RTL && !axisOnly ? 1 : direction === TTB ? 0 : -1;\n return ORIENTATION_MAP[prop] && ORIENTATION_MAP[prop][index] || prop.replace(/width|left|right/i, function (match, offset) {\n var replacement = ORIENTATION_MAP[match.toLowerCase()][index] || match;\n return offset > 0 ? replacement.charAt(0).toUpperCase() + replacement.slice(1) : replacement;\n });\n }\n\n function orient(value) {\n return value * (options.direction === RTL ? 1 : -1);\n }\n\n return {\n resolve: resolve,\n orient: orient\n };\n}\n\nvar ROLE = \"role\";\nvar TAB_INDEX = \"tabindex\";\nvar DISABLED = \"disabled\";\nvar ARIA_PREFIX = \"aria-\";\nvar ARIA_CONTROLS = ARIA_PREFIX + \"controls\";\nvar ARIA_CURRENT = ARIA_PREFIX + \"current\";\nvar ARIA_SELECTED = ARIA_PREFIX + \"selected\";\nvar ARIA_LABEL = ARIA_PREFIX + \"label\";\nvar ARIA_LABELLEDBY = ARIA_PREFIX + \"labelledby\";\nvar ARIA_HIDDEN = ARIA_PREFIX + \"hidden\";\nvar ARIA_ORIENTATION = ARIA_PREFIX + \"orientation\";\nvar ARIA_ROLEDESCRIPTION = ARIA_PREFIX + \"roledescription\";\nvar ARIA_LIVE = ARIA_PREFIX + \"live\";\nvar ARIA_BUSY = ARIA_PREFIX + \"busy\";\nvar ARIA_ATOMIC = ARIA_PREFIX + \"atomic\";\nvar ALL_ATTRIBUTES = [ROLE, TAB_INDEX, DISABLED, ARIA_CONTROLS, ARIA_CURRENT, ARIA_LABEL, ARIA_LABELLEDBY, ARIA_HIDDEN, ARIA_ORIENTATION, ARIA_ROLEDESCRIPTION];\nvar CLASS_ROOT = PROJECT_CODE;\nvar CLASS_TRACK = PROJECT_CODE + \"__track\";\nvar CLASS_LIST = PROJECT_CODE + \"__list\";\nvar CLASS_SLIDE = PROJECT_CODE + \"__slide\";\nvar CLASS_CLONE = CLASS_SLIDE + \"--clone\";\nvar CLASS_CONTAINER = CLASS_SLIDE + \"__container\";\nvar CLASS_ARROWS = PROJECT_CODE + \"__arrows\";\nvar CLASS_ARROW = PROJECT_CODE + \"__arrow\";\nvar CLASS_ARROW_PREV = CLASS_ARROW + \"--prev\";\nvar CLASS_ARROW_NEXT = CLASS_ARROW + \"--next\";\nvar CLASS_PAGINATION = PROJECT_CODE + \"__pagination\";\nvar CLASS_PAGINATION_PAGE = CLASS_PAGINATION + \"__page\";\nvar CLASS_PROGRESS = PROJECT_CODE + \"__progress\";\nvar CLASS_PROGRESS_BAR = CLASS_PROGRESS + \"__bar\";\nvar CLASS_TOGGLE = PROJECT_CODE + \"__toggle\";\nvar CLASS_TOGGLE_PLAY = CLASS_TOGGLE + \"__play\";\nvar CLASS_TOGGLE_PAUSE = CLASS_TOGGLE + \"__pause\";\nvar CLASS_SPINNER = PROJECT_CODE + \"__spinner\";\nvar CLASS_SR = PROJECT_CODE + \"__sr\";\nvar CLASS_INITIALIZED = \"is-initialized\";\nvar CLASS_ACTIVE = \"is-active\";\nvar CLASS_PREV = \"is-prev\";\nvar CLASS_NEXT = \"is-next\";\nvar CLASS_VISIBLE = \"is-visible\";\nvar CLASS_LOADING = \"is-loading\";\nvar CLASS_FOCUS_IN = \"is-focus-in\";\nvar STATUS_CLASSES = [CLASS_ACTIVE, CLASS_VISIBLE, CLASS_PREV, CLASS_NEXT, CLASS_LOADING, CLASS_FOCUS_IN];\nvar CLASSES = {\n slide: CLASS_SLIDE,\n clone: CLASS_CLONE,\n arrows: CLASS_ARROWS,\n arrow: CLASS_ARROW,\n prev: CLASS_ARROW_PREV,\n next: CLASS_ARROW_NEXT,\n pagination: CLASS_PAGINATION,\n page: CLASS_PAGINATION_PAGE,\n spinner: CLASS_SPINNER\n};\n\nfunction closest(from, selector) {\n if (isFunction(from.closest)) {\n return from.closest(selector);\n }\n\n var elm = from;\n\n while (elm && elm.nodeType === 1) {\n if (matches(elm, selector)) {\n break;\n }\n\n elm = elm.parentElement;\n }\n\n return elm;\n}\n\nvar FRICTION = 5;\nvar LOG_INTERVAL = 200;\nvar POINTER_DOWN_EVENTS = \"touchstart mousedown\";\nvar POINTER_MOVE_EVENTS = \"touchmove mousemove\";\nvar POINTER_UP_EVENTS = \"touchend touchcancel mouseup click\";\n\nfunction Elements(Splide2, Components2, options) {\n var _EventInterface = EventInterface(Splide2),\n on = _EventInterface.on,\n bind = _EventInterface.bind;\n\n var root = Splide2.root;\n var i18n = options.i18n;\n var elements = {};\n var slides = [];\n var rootClasses = [];\n var trackClasses = [];\n var track;\n var list;\n var isUsingKey;\n\n function setup() {\n collect();\n init();\n update();\n }\n\n function mount() {\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, setup);\n on(EVENT_UPDATED, update);\n bind(document, POINTER_DOWN_EVENTS + \" keydown\", function (e) {\n isUsingKey = e.type === \"keydown\";\n }, {\n capture: true\n });\n bind(root, \"focusin\", function () {\n toggleClass(root, CLASS_FOCUS_IN, !!isUsingKey);\n });\n }\n\n function destroy(completely) {\n var attrs = ALL_ATTRIBUTES.concat(\"style\");\n empty(slides);\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n removeAttribute([track, list], attrs);\n removeAttribute(root, completely ? attrs : [\"style\", ARIA_ROLEDESCRIPTION]);\n }\n\n function update() {\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n rootClasses = getClasses(CLASS_ROOT);\n trackClasses = getClasses(CLASS_TRACK);\n addClass(root, rootClasses);\n addClass(track, trackClasses);\n setAttribute(root, ARIA_LABEL, options.label);\n setAttribute(root, ARIA_LABELLEDBY, options.labelledby);\n }\n\n function collect() {\n track = find(\".\" + CLASS_TRACK);\n list = child(track, \".\" + CLASS_LIST);\n assert(track && list, \"A track/list element is missing.\");\n push(slides, children(list, \".\" + CLASS_SLIDE + \":not(.\" + CLASS_CLONE + \")\"));\n forOwn({\n arrows: CLASS_ARROWS,\n pagination: CLASS_PAGINATION,\n prev: CLASS_ARROW_PREV,\n next: CLASS_ARROW_NEXT,\n bar: CLASS_PROGRESS_BAR,\n toggle: CLASS_TOGGLE\n }, function (className, key) {\n elements[key] = find(\".\" + className);\n });\n assign(elements, {\n root: root,\n track: track,\n list: list,\n slides: slides\n });\n }\n\n function init() {\n var id = root.id || uniqueId(PROJECT_CODE);\n var role = options.role;\n root.id = id;\n track.id = track.id || id + \"-track\";\n list.id = list.id || id + \"-list\";\n\n if (!getAttribute(root, ROLE) && root.tagName !== \"SECTION\" && role) {\n setAttribute(root, ROLE, role);\n }\n\n setAttribute(root, ARIA_ROLEDESCRIPTION, i18n.carousel);\n setAttribute(list, ROLE, \"presentation\");\n }\n\n function find(selector) {\n var elm = query(root, selector);\n return elm && closest(elm, \".\" + CLASS_ROOT) === root ? elm : void 0;\n }\n\n function getClasses(base) {\n return [base + \"--\" + options.type, base + \"--\" + options.direction, options.drag && base + \"--draggable\", options.isNavigation && base + \"--nav\", base === CLASS_ROOT && CLASS_ACTIVE];\n }\n\n return assign(elements, {\n setup: setup,\n mount: mount,\n destroy: destroy\n });\n}\n\nvar SLIDE = \"slide\";\nvar LOOP = \"loop\";\nvar FADE = \"fade\";\n\nfunction Slide$1(Splide2, index, slideIndex, slide) {\n var event = EventInterface(Splide2);\n var on = event.on,\n emit = event.emit,\n bind = event.bind;\n var Components = Splide2.Components,\n root = Splide2.root,\n options = Splide2.options;\n var isNavigation = options.isNavigation,\n updateOnMove = options.updateOnMove,\n i18n = options.i18n,\n pagination = options.pagination,\n slideFocus = options.slideFocus;\n var resolve = Components.Direction.resolve;\n var styles = getAttribute(slide, \"style\");\n var label = getAttribute(slide, ARIA_LABEL);\n var isClone = slideIndex > -1;\n var container = child(slide, \".\" + CLASS_CONTAINER);\n var destroyed;\n\n function mount() {\n if (!isClone) {\n slide.id = root.id + \"-slide\" + pad(index + 1);\n setAttribute(slide, ROLE, pagination ? \"tabpanel\" : \"group\");\n setAttribute(slide, ARIA_ROLEDESCRIPTION, i18n.slide);\n setAttribute(slide, ARIA_LABEL, label || format(i18n.slideLabel, [index + 1, Splide2.length]));\n }\n\n listen();\n }\n\n function listen() {\n bind(slide, \"click\", apply(emit, EVENT_CLICK, self));\n bind(slide, \"keydown\", apply(emit, EVENT_SLIDE_KEYDOWN, self));\n on([EVENT_MOVED, EVENT_SHIFTED, EVENT_SCROLLED], update);\n on(EVENT_NAVIGATION_MOUNTED, initNavigation);\n\n if (updateOnMove) {\n on(EVENT_MOVE, onMove);\n }\n }\n\n function destroy() {\n destroyed = true;\n event.destroy();\n removeClass(slide, STATUS_CLASSES);\n removeAttribute(slide, ALL_ATTRIBUTES);\n setAttribute(slide, \"style\", styles);\n setAttribute(slide, ARIA_LABEL, label || \"\");\n }\n\n function initNavigation() {\n var controls = Splide2.splides.map(function (target) {\n var Slide2 = target.splide.Components.Slides.getAt(index);\n return Slide2 ? Slide2.slide.id : \"\";\n }).join(\" \");\n setAttribute(slide, ARIA_LABEL, format(i18n.slideX, (isClone ? slideIndex : index) + 1));\n setAttribute(slide, ARIA_CONTROLS, controls);\n setAttribute(slide, ROLE, slideFocus ? \"button\" : \"\");\n slideFocus && removeAttribute(slide, ARIA_ROLEDESCRIPTION);\n }\n\n function onMove() {\n if (!destroyed) {\n update();\n }\n }\n\n function update() {\n if (!destroyed) {\n var curr = Splide2.index;\n updateActivity();\n updateVisibility();\n toggleClass(slide, CLASS_PREV, index === curr - 1);\n toggleClass(slide, CLASS_NEXT, index === curr + 1);\n }\n }\n\n function updateActivity() {\n var active = isActive();\n\n if (active !== hasClass(slide, CLASS_ACTIVE)) {\n toggleClass(slide, CLASS_ACTIVE, active);\n setAttribute(slide, ARIA_CURRENT, isNavigation && active || \"\");\n emit(active ? EVENT_ACTIVE : EVENT_INACTIVE, self);\n }\n }\n\n function updateVisibility() {\n var visible = isVisible();\n var hidden = !visible && (!isActive() || isClone);\n\n if (!Splide2.state.is([MOVING, SCROLLING])) {\n setAttribute(slide, ARIA_HIDDEN, hidden || \"\");\n }\n\n setAttribute(queryAll(slide, options.focusableNodes || \"\"), TAB_INDEX, hidden ? -1 : \"\");\n\n if (slideFocus) {\n setAttribute(slide, TAB_INDEX, hidden ? -1 : 0);\n }\n\n if (visible !== hasClass(slide, CLASS_VISIBLE)) {\n toggleClass(slide, CLASS_VISIBLE, visible);\n emit(visible ? EVENT_VISIBLE : EVENT_HIDDEN, self);\n }\n\n if (!visible && document.activeElement === slide) {\n var Slide2 = Components.Slides.getAt(Splide2.index);\n Slide2 && focus(Slide2.slide);\n }\n }\n\n function style$1(prop, value, useContainer) {\n style(useContainer && container || slide, prop, value);\n }\n\n function isActive() {\n var curr = Splide2.index;\n return curr === index || options.cloneStatus && curr === slideIndex;\n }\n\n function isVisible() {\n if (Splide2.is(FADE)) {\n return isActive();\n }\n\n var trackRect = rect(Components.Elements.track);\n var slideRect = rect(slide);\n var left = resolve(\"left\", true);\n var right = resolve(\"right\", true);\n return floor(trackRect[left]) <= ceil(slideRect[left]) && floor(slideRect[right]) <= ceil(trackRect[right]);\n }\n\n function isWithin(from, distance) {\n var diff = abs(from - index);\n\n if (!isClone && (options.rewind || Splide2.is(LOOP))) {\n diff = min(diff, Splide2.length - diff);\n }\n\n return diff <= distance;\n }\n\n var self = {\n index: index,\n slideIndex: slideIndex,\n slide: slide,\n container: container,\n isClone: isClone,\n mount: mount,\n destroy: destroy,\n update: update,\n style: style$1,\n isWithin: isWithin\n };\n return self;\n}\n\nfunction Slides(Splide2, Components2, options) {\n var _EventInterface2 = EventInterface(Splide2),\n on = _EventInterface2.on,\n emit = _EventInterface2.emit,\n bind = _EventInterface2.bind;\n\n var _Components2$Elements = Components2.Elements,\n slides = _Components2$Elements.slides,\n list = _Components2$Elements.list;\n var Slides2 = [];\n\n function mount() {\n init();\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, init);\n on([EVENT_MOUNTED, EVENT_REFRESH], function () {\n Slides2.sort(function (Slide1, Slide2) {\n return Slide1.index - Slide2.index;\n });\n });\n }\n\n function init() {\n slides.forEach(function (slide, index) {\n register(slide, index, -1);\n });\n }\n\n function destroy() {\n forEach$1(function (Slide2) {\n Slide2.destroy();\n });\n empty(Slides2);\n }\n\n function update() {\n forEach$1(function (Slide2) {\n Slide2.update();\n });\n }\n\n function register(slide, index, slideIndex) {\n var object = Slide$1(Splide2, index, slideIndex, slide);\n object.mount();\n Slides2.push(object);\n }\n\n function get(excludeClones) {\n return excludeClones ? filter(function (Slide2) {\n return !Slide2.isClone;\n }) : Slides2;\n }\n\n function getIn(page) {\n var Controller = Components2.Controller;\n var index = Controller.toIndex(page);\n var max = Controller.hasFocus() ? 1 : options.perPage;\n return filter(function (Slide2) {\n return between(Slide2.index, index, index + max - 1);\n });\n }\n\n function getAt(index) {\n return filter(index)[0];\n }\n\n function add(items, index) {\n forEach(items, function (slide) {\n if (isString(slide)) {\n slide = parseHtml(slide);\n }\n\n if (isHTMLElement(slide)) {\n var ref = slides[index];\n ref ? before(slide, ref) : append(list, slide);\n addClass(slide, options.classes.slide);\n observeImages(slide, apply(emit, EVENT_RESIZE));\n }\n });\n emit(EVENT_REFRESH);\n }\n\n function remove$1(matcher) {\n remove(filter(matcher).map(function (Slide2) {\n return Slide2.slide;\n }));\n emit(EVENT_REFRESH);\n }\n\n function forEach$1(iteratee, excludeClones) {\n get(excludeClones).forEach(iteratee);\n }\n\n function filter(matcher) {\n return Slides2.filter(isFunction(matcher) ? matcher : function (Slide2) {\n return isString(matcher) ? matches(Slide2.slide, matcher) : includes(toArray(matcher), Slide2.index);\n });\n }\n\n function style(prop, value, useContainer) {\n forEach$1(function (Slide2) {\n Slide2.style(prop, value, useContainer);\n });\n }\n\n function observeImages(elm, callback) {\n var images = queryAll(elm, \"img\");\n var length = images.length;\n\n if (length) {\n images.forEach(function (img) {\n bind(img, \"load error\", function () {\n if (! --length) {\n callback();\n }\n });\n });\n } else {\n callback();\n }\n }\n\n function getLength(excludeClones) {\n return excludeClones ? slides.length : Slides2.length;\n }\n\n function isEnough() {\n return Slides2.length > options.perPage;\n }\n\n return {\n mount: mount,\n destroy: destroy,\n update: update,\n register: register,\n get: get,\n getIn: getIn,\n getAt: getAt,\n add: add,\n remove: remove$1,\n forEach: forEach$1,\n filter: filter,\n style: style,\n getLength: getLength,\n isEnough: isEnough\n };\n}\n\nfunction Layout(Splide2, Components2, options) {\n var _EventInterface3 = EventInterface(Splide2),\n on = _EventInterface3.on,\n bind = _EventInterface3.bind,\n emit = _EventInterface3.emit;\n\n var Slides = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var _Components2$Elements2 = Components2.Elements,\n root = _Components2$Elements2.root,\n track = _Components2$Elements2.track,\n list = _Components2$Elements2.list;\n var getAt = Slides.getAt,\n styleSlides = Slides.style;\n var vertical;\n var rootRect;\n\n function mount() {\n init();\n bind(window, \"resize load\", Throttle(apply(emit, EVENT_RESIZE)));\n on([EVENT_UPDATED, EVENT_REFRESH], init);\n on(EVENT_RESIZE, resize);\n }\n\n function init() {\n rootRect = null;\n vertical = options.direction === TTB;\n style(root, \"maxWidth\", unit(options.width));\n style(track, resolve(\"paddingLeft\"), cssPadding(false));\n style(track, resolve(\"paddingRight\"), cssPadding(true));\n resize();\n }\n\n function resize() {\n var newRect = rect(root);\n\n if (!rootRect || rootRect.width !== newRect.width || rootRect.height !== newRect.height) {\n style(track, \"height\", cssTrackHeight());\n styleSlides(resolve(\"marginRight\"), unit(options.gap));\n styleSlides(\"width\", cssSlideWidth());\n styleSlides(\"height\", cssSlideHeight(), true);\n rootRect = newRect;\n emit(EVENT_RESIZED);\n }\n }\n\n function cssPadding(right) {\n var padding = options.padding;\n var prop = resolve(right ? \"right\" : \"left\");\n return padding && unit(padding[prop] || (isObject(padding) ? 0 : padding)) || \"0px\";\n }\n\n function cssTrackHeight() {\n var height = \"\";\n\n if (vertical) {\n height = cssHeight();\n assert(height, \"height or heightRatio is missing.\");\n height = \"calc(\" + height + \" - \" + cssPadding(false) + \" - \" + cssPadding(true) + \")\";\n }\n\n return height;\n }\n\n function cssHeight() {\n return unit(options.height || rect(list).width * options.heightRatio);\n }\n\n function cssSlideWidth() {\n return options.autoWidth ? null : unit(options.fixedWidth) || (vertical ? \"\" : cssSlideSize());\n }\n\n function cssSlideHeight() {\n return unit(options.fixedHeight) || (vertical ? options.autoHeight ? null : cssSlideSize() : cssHeight());\n }\n\n function cssSlideSize() {\n var gap = unit(options.gap);\n return \"calc((100%\" + (gap && \" + \" + gap) + \")/\" + (options.perPage || 1) + (gap && \" - \" + gap) + \")\";\n }\n\n function listSize() {\n return rect(list)[resolve(\"width\")];\n }\n\n function slideSize(index, withoutGap) {\n var Slide = getAt(index || 0);\n return Slide ? rect(Slide.slide)[resolve(\"width\")] + (withoutGap ? 0 : getGap()) : 0;\n }\n\n function totalSize(index, withoutGap) {\n var Slide = getAt(index);\n\n if (Slide) {\n var right = rect(Slide.slide)[resolve(\"right\")];\n var left = rect(list)[resolve(\"left\")];\n return abs(right - left) + (withoutGap ? 0 : getGap());\n }\n\n return 0;\n }\n\n function sliderSize() {\n return totalSize(Splide2.length - 1, true) - totalSize(-1, true);\n }\n\n function getGap() {\n var Slide = getAt(0);\n return Slide && parseFloat(style(Slide.slide, resolve(\"marginRight\"))) || 0;\n }\n\n function getPadding(right) {\n return parseFloat(style(track, resolve(\"padding\" + (right ? \"Right\" : \"Left\")))) || 0;\n }\n\n return {\n mount: mount,\n listSize: listSize,\n slideSize: slideSize,\n sliderSize: sliderSize,\n totalSize: totalSize,\n getPadding: getPadding\n };\n}\n\nvar MULTIPLIER = 2;\n\nfunction Clones(Splide2, Components2, options) {\n var _EventInterface4 = EventInterface(Splide2),\n on = _EventInterface4.on,\n emit = _EventInterface4.emit;\n\n var Elements = Components2.Elements,\n Slides = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var clones = [];\n var cloneCount;\n\n function mount() {\n init();\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, init);\n on([EVENT_UPDATED, EVENT_RESIZE], observe);\n }\n\n function init() {\n if (cloneCount = computeCloneCount()) {\n generate(cloneCount);\n emit(EVENT_RESIZE);\n }\n }\n\n function destroy() {\n remove(clones);\n empty(clones);\n }\n\n function observe() {\n if (cloneCount < computeCloneCount()) {\n emit(EVENT_REFRESH);\n }\n }\n\n function generate(count) {\n var slides = Slides.get().slice();\n var length = slides.length;\n\n if (length) {\n while (slides.length < count) {\n push(slides, slides);\n }\n\n push(slides.slice(-count), slides.slice(0, count)).forEach(function (Slide, index) {\n var isHead = index < count;\n var clone = cloneDeep(Slide.slide, index);\n isHead ? before(clone, slides[0].slide) : append(Elements.list, clone);\n push(clones, clone);\n Slides.register(clone, index - count + (isHead ? 0 : length), Slide.index);\n });\n }\n }\n\n function cloneDeep(elm, index) {\n var clone = elm.cloneNode(true);\n addClass(clone, options.classes.clone);\n clone.id = Splide2.root.id + \"-clone\" + pad(index + 1);\n return clone;\n }\n\n function computeCloneCount() {\n var clones2 = options.clones;\n\n if (!Splide2.is(LOOP)) {\n clones2 = 0;\n } else if (!clones2) {\n var fixedSize = options[resolve(\"fixedWidth\")] && Components2.Layout.slideSize(0);\n var fixedCount = fixedSize && ceil(rect(Elements.track)[resolve(\"width\")] / fixedSize);\n clones2 = fixedCount || options[resolve(\"autoWidth\")] && Splide2.length || options.perPage * MULTIPLIER;\n }\n\n return clones2;\n }\n\n return {\n mount: mount,\n destroy: destroy\n };\n}\n\nfunction Move(Splide2, Components2, options) {\n var _EventInterface5 = EventInterface(Splide2),\n on = _EventInterface5.on,\n emit = _EventInterface5.emit;\n\n var set = Splide2.state.set;\n var _Components2$Layout = Components2.Layout,\n slideSize = _Components2$Layout.slideSize,\n getPadding = _Components2$Layout.getPadding,\n totalSize = _Components2$Layout.totalSize,\n listSize = _Components2$Layout.listSize,\n sliderSize = _Components2$Layout.sliderSize;\n var _Components2$Directio = Components2.Direction,\n resolve = _Components2$Directio.resolve,\n orient = _Components2$Directio.orient;\n var _Components2$Elements3 = Components2.Elements,\n list = _Components2$Elements3.list,\n track = _Components2$Elements3.track;\n var Transition;\n\n function mount() {\n Transition = Components2.Transition;\n on([EVENT_MOUNTED, EVENT_RESIZED, EVENT_UPDATED, EVENT_REFRESH], reposition);\n }\n\n function reposition() {\n if (!Components2.Controller.isBusy()) {\n Components2.Scroll.cancel();\n jump(Splide2.index);\n Components2.Slides.update();\n }\n }\n\n function move(dest, index, prev, callback) {\n if (dest !== index && canShift(dest > prev)) {\n cancel();\n translate(shift(getPosition(), dest > prev), true);\n }\n\n set(MOVING);\n emit(EVENT_MOVE, index, prev, dest);\n Transition.start(index, function () {\n set(IDLE);\n emit(EVENT_MOVED, index, prev, dest);\n callback && callback();\n });\n }\n\n function jump(index) {\n translate(toPosition(index, true));\n }\n\n function translate(position, preventLoop) {\n if (!Splide2.is(FADE)) {\n var destination = preventLoop ? position : loop(position);\n style(list, \"transform\", \"translate\" + resolve(\"X\") + \"(\" + destination + \"px)\");\n position !== destination && emit(EVENT_SHIFTED);\n }\n }\n\n function loop(position) {\n if (Splide2.is(LOOP)) {\n var index = toIndex(position);\n var exceededMax = index > Components2.Controller.getEnd();\n var exceededMin = index < 0;\n\n if (exceededMin || exceededMax) {\n position = shift(position, exceededMax);\n }\n }\n\n return position;\n }\n\n function shift(position, backwards) {\n var excess = position - getLimit(backwards);\n var size = sliderSize();\n position -= orient(size * (ceil(abs(excess) / size) || 1)) * (backwards ? 1 : -1);\n return position;\n }\n\n function cancel() {\n translate(getPosition());\n Transition.cancel();\n }\n\n function toIndex(position) {\n var Slides = Components2.Slides.get();\n var index = 0;\n var minDistance = Infinity;\n\n for (var i = 0; i < Slides.length; i++) {\n var slideIndex = Slides[i].index;\n var distance = abs(toPosition(slideIndex, true) - position);\n\n if (distance <= minDistance) {\n minDistance = distance;\n index = slideIndex;\n } else {\n break;\n }\n }\n\n return index;\n }\n\n function toPosition(index, trimming) {\n var position = orient(totalSize(index - 1) - offset(index));\n return trimming ? trim(position) : position;\n }\n\n function getPosition() {\n var left = resolve(\"left\");\n return rect(list)[left] - rect(track)[left] + orient(getPadding(false));\n }\n\n function trim(position) {\n if (options.trimSpace && Splide2.is(SLIDE)) {\n position = clamp(position, 0, orient(sliderSize() - listSize()));\n }\n\n return position;\n }\n\n function offset(index) {\n var focus = options.focus;\n return focus === \"center\" ? (listSize() - slideSize(index, true)) / 2 : +focus * slideSize(index) || 0;\n }\n\n function getLimit(max) {\n return toPosition(max ? Components2.Controller.getEnd() : 0, !!options.trimSpace);\n }\n\n function canShift(backwards) {\n var shifted = orient(shift(getPosition(), backwards));\n return backwards ? shifted >= 0 : shifted <= list[resolve(\"scrollWidth\")] - rect(track)[resolve(\"width\")];\n }\n\n function exceededLimit(max, position) {\n position = isUndefined(position) ? getPosition() : position;\n var exceededMin = max !== true && orient(position) < orient(getLimit(false));\n var exceededMax = max !== false && orient(position) > orient(getLimit(true));\n return exceededMin || exceededMax;\n }\n\n return {\n mount: mount,\n move: move,\n jump: jump,\n translate: translate,\n shift: shift,\n cancel: cancel,\n toIndex: toIndex,\n toPosition: toPosition,\n getPosition: getPosition,\n getLimit: getLimit,\n exceededLimit: exceededLimit,\n reposition: reposition\n };\n}\n\nfunction Controller(Splide2, Components2, options) {\n var _EventInterface6 = EventInterface(Splide2),\n on = _EventInterface6.on;\n\n var Move = Components2.Move;\n var getPosition = Move.getPosition,\n getLimit = Move.getLimit,\n toPosition = Move.toPosition;\n var _Components2$Slides = Components2.Slides,\n isEnough = _Components2$Slides.isEnough,\n getLength = _Components2$Slides.getLength;\n var isLoop = Splide2.is(LOOP);\n var isSlide = Splide2.is(SLIDE);\n var getNext = apply(getAdjacent, false);\n var getPrev = apply(getAdjacent, true);\n var currIndex = options.start || 0;\n var prevIndex = currIndex;\n var slideCount;\n var perMove;\n var perPage;\n\n function mount() {\n init();\n on([EVENT_UPDATED, EVENT_REFRESH], init);\n }\n\n function init() {\n slideCount = getLength(true);\n perMove = options.perMove;\n perPage = options.perPage;\n var index = clamp(currIndex, 0, slideCount - 1);\n\n if (index !== currIndex) {\n currIndex = index;\n Move.reposition();\n }\n }\n\n function go(control, allowSameIndex, callback) {\n if (!isBusy()) {\n var dest = parse(control);\n var index = loop(dest);\n\n if (index > -1 && (allowSameIndex || index !== currIndex)) {\n setIndex(index);\n Move.move(dest, index, prevIndex, callback);\n }\n }\n }\n\n function scroll(destination, duration, snap, callback) {\n Components2.Scroll.scroll(destination, duration, snap, function () {\n setIndex(loop(Move.toIndex(getPosition())));\n callback && callback();\n });\n }\n\n function parse(control) {\n var index = currIndex;\n\n if (isString(control)) {\n var _ref = control.match(/([+\\-<>])(\\d+)?/) || [],\n indicator = _ref[1],\n number = _ref[2];\n\n if (indicator === \"+\" || indicator === \"-\") {\n index = computeDestIndex(currIndex + +(\"\" + indicator + (+number || 1)), currIndex);\n } else if (indicator === \">\") {\n index = number ? toIndex(+number) : getNext(true);\n } else if (indicator === \"<\") {\n index = getPrev(true);\n }\n } else {\n index = isLoop ? control : clamp(control, 0, getEnd());\n }\n\n return index;\n }\n\n function getAdjacent(prev, destination) {\n var number = perMove || (hasFocus() ? 1 : perPage);\n var dest = computeDestIndex(currIndex + number * (prev ? -1 : 1), currIndex, !(perMove || hasFocus()));\n\n if (dest === -1 && isSlide) {\n if (!approximatelyEqual(getPosition(), getLimit(!prev), 1)) {\n return prev ? 0 : getEnd();\n }\n }\n\n return destination ? dest : loop(dest);\n }\n\n function computeDestIndex(dest, from, snapPage) {\n if (isEnough()) {\n var end = getEnd();\n var index = computeMovableDestIndex(dest);\n\n if (index !== dest) {\n from = dest;\n dest = index;\n snapPage = false;\n }\n\n if (dest < 0 || dest > end) {\n if (!perMove && (between(0, dest, from, true) || between(end, from, dest, true))) {\n dest = toIndex(toPage(dest));\n } else {\n if (isLoop) {\n dest = snapPage ? dest < 0 ? -(slideCount % perPage || perPage) : slideCount : dest;\n } else if (options.rewind) {\n dest = dest < 0 ? end : 0;\n } else {\n dest = -1;\n }\n }\n } else {\n if (snapPage && dest !== from) {\n dest = toIndex(toPage(from) + (dest < from ? -1 : 1));\n }\n }\n } else {\n dest = -1;\n }\n\n return dest;\n }\n\n function computeMovableDestIndex(dest) {\n if (isSlide && options.trimSpace === \"move\" && dest !== currIndex) {\n var position = getPosition();\n\n while (position === toPosition(dest, true) && between(dest, 0, Splide2.length - 1, !options.rewind)) {\n dest < currIndex ? --dest : ++dest;\n }\n }\n\n return dest;\n }\n\n function loop(index) {\n return isLoop ? (index + slideCount) % slideCount || 0 : index;\n }\n\n function getEnd() {\n return max(slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage), 0);\n }\n\n function toIndex(page) {\n return clamp(hasFocus() ? page : perPage * page, 0, getEnd());\n }\n\n function toPage(index) {\n return hasFocus() ? index : floor((index >= getEnd() ? slideCount - 1 : index) / perPage);\n }\n\n function toDest(destination) {\n var closest = Move.toIndex(destination);\n return isSlide ? clamp(closest, 0, getEnd()) : closest;\n }\n\n function setIndex(index) {\n if (index !== currIndex) {\n prevIndex = currIndex;\n currIndex = index;\n }\n }\n\n function getIndex(prev) {\n return prev ? prevIndex : currIndex;\n }\n\n function hasFocus() {\n return !isUndefined(options.focus) || options.isNavigation;\n }\n\n function isBusy() {\n return Splide2.state.is([MOVING, SCROLLING]) && !!options.waitForTransition;\n }\n\n return {\n mount: mount,\n go: go,\n scroll: scroll,\n getNext: getNext,\n getPrev: getPrev,\n getAdjacent: getAdjacent,\n getEnd: getEnd,\n setIndex: setIndex,\n getIndex: getIndex,\n toIndex: toIndex,\n toPage: toPage,\n toDest: toDest,\n hasFocus: hasFocus,\n isBusy: isBusy\n };\n}\n\nvar XML_NAME_SPACE = \"http://www.w3.org/2000/svg\";\nvar PATH = \"m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z\";\nvar SIZE = 40;\n\nfunction Arrows(Splide2, Components2, options) {\n var event = EventInterface(Splide2);\n var on = event.on,\n bind = event.bind,\n emit = event.emit;\n var classes = options.classes,\n i18n = options.i18n;\n var Elements = Components2.Elements,\n Controller = Components2.Controller;\n var userArrows = Elements.arrows,\n track = Elements.track;\n var wrapper = userArrows;\n var prev = Elements.prev;\n var next = Elements.next;\n var created;\n var wrapperClasses;\n var arrows = {};\n\n function mount() {\n init();\n on(EVENT_UPDATED, remount);\n }\n\n function remount() {\n destroy();\n mount();\n }\n\n function init() {\n var enabled = options.arrows;\n\n if (enabled && !(prev && next)) {\n createArrows();\n }\n\n if (prev && next) {\n assign(arrows, {\n prev: prev,\n next: next\n });\n display(wrapper, enabled ? \"\" : \"none\");\n addClass(wrapper, wrapperClasses = CLASS_ARROWS + \"--\" + options.direction);\n\n if (enabled) {\n listen();\n update();\n setAttribute([prev, next], ARIA_CONTROLS, track.id);\n emit(EVENT_ARROWS_MOUNTED, prev, next);\n }\n }\n }\n\n function destroy() {\n event.destroy();\n removeClass(wrapper, wrapperClasses);\n\n if (created) {\n remove(userArrows ? [prev, next] : wrapper);\n prev = next = null;\n } else {\n removeAttribute([prev, next], ALL_ATTRIBUTES);\n }\n }\n\n function listen() {\n on([EVENT_MOVED, EVENT_REFRESH, EVENT_SCROLLED], update);\n bind(next, \"click\", apply(go, \">\"));\n bind(prev, \"click\", apply(go, \"<\"));\n }\n\n function go(control) {\n Controller.go(control, true);\n }\n\n function createArrows() {\n wrapper = userArrows || create(\"div\", classes.arrows);\n prev = createArrow(true);\n next = createArrow(false);\n created = true;\n append(wrapper, [prev, next]);\n !userArrows && before(wrapper, track);\n }\n\n function createArrow(prev2) {\n var arrow = \"\";\n };\n\n _proto3.html = function html() {\n var _this$config = this.config,\n rootClass = _this$config.rootClass,\n listTag = _this$config.listTag,\n arrows = _this$config.arrows,\n beforeTrack = _this$config.beforeTrack,\n afterTrack = _this$config.afterTrack,\n slider = _this$config.slider,\n beforeSlider = _this$config.beforeSlider,\n afterSlider = _this$config.afterSlider;\n var html = \"\";\n html += \"
\";\n html += \"\";\n\n if (slider) {\n html += beforeSlider || \"\";\n html += \"
\";\n }\n\n html += beforeTrack || \"\";\n\n if (arrows) {\n html += this.renderArrows();\n }\n\n html += \"
\";\n html += \"<\" + listTag + \" class=\\\"splide__list\\\">\";\n html += this.renderSlides();\n html += \"\";\n html += \"
\";\n html += afterTrack || \"\";\n\n if (slider) {\n html += \"
\";\n html += afterSlider || \"\";\n }\n\n html += \"
\";\n return html;\n };\n\n return SplideRenderer;\n}();\n\nexport { CLASSES, CLASS_ACTIVE, CLASS_ARROW, CLASS_ARROWS, CLASS_ARROW_NEXT, CLASS_ARROW_PREV, CLASS_CLONE, CLASS_CONTAINER, CLASS_FOCUS_IN, CLASS_INITIALIZED, CLASS_LIST, CLASS_LOADING, CLASS_NEXT, CLASS_PAGINATION, CLASS_PAGINATION_PAGE, CLASS_PREV, CLASS_PROGRESS, CLASS_PROGRESS_BAR, CLASS_ROOT, CLASS_SLIDE, CLASS_SPINNER, CLASS_SR, CLASS_TOGGLE, CLASS_TOGGLE_PAUSE, CLASS_TOGGLE_PLAY, CLASS_TRACK, CLASS_VISIBLE, DEFAULTS, EVENT_ACTIVE, EVENT_ARROWS_MOUNTED, EVENT_ARROWS_UPDATED, EVENT_AUTOPLAY_PAUSE, EVENT_AUTOPLAY_PLAY, EVENT_AUTOPLAY_PLAYING, EVENT_CLICK, EVENT_DESTROY, EVENT_DRAG, EVENT_DRAGGED, EVENT_DRAGGING, EVENT_HIDDEN, EVENT_INACTIVE, EVENT_LAZYLOAD_LOADED, EVENT_MOUNTED, EVENT_MOVE, EVENT_MOVED, EVENT_NAVIGATION_MOUNTED, EVENT_PAGINATION_MOUNTED, EVENT_PAGINATION_UPDATED, EVENT_READY, EVENT_REFRESH, EVENT_RESIZE, EVENT_RESIZED, EVENT_SCROLL, EVENT_SCROLLED, EVENT_SHIFTED, EVENT_SLIDE_KEYDOWN, EVENT_UPDATED, EVENT_VISIBLE, EventBinder, EventInterface, FADE, LOOP, LTR, RTL, RequestInterval, SLIDE, STATUS_CLASSES, Splide, SplideRenderer, State, TTB, Throttle, Splide as default };\n"],"sourceRoot":""}