{"version":3,"file":"BP1zKpX4.js","sources":["../../../../../../@splidejs/vue-splide/dist/js/vue-splide.esm.js","../../../../../../../app/components/common/SliderSplide.vue"],"sourcesContent":["import { defineComponent, onUpdated, inject, openBlock, createElementBlock, createElementVNode, renderSlot, ref, onMounted, onBeforeUnmount, watch, provide, computed, resolveComponent, createBlock, resolveDynamicComponent, withCtx } from \"vue\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n}\n/*!\n * Splide.js\n * Version : 4.1.3\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,\n MOUNTED,\n IDLE,\n MOVING,\n SCROLLING,\n DRAGGING,\n DESTROYED\n};\nfunction empty(array) {\n array.length = 0;\n}\nfunction slice(arrayLike, start, end) {\n return Array.prototype.slice.call(arrayLike, start, end);\n}\nfunction apply(func) {\n return func.bind.apply(func, [null].concat(slice(arguments, 1)));\n}\nvar nextTick = setTimeout;\nvar noop = function noop2() {\n};\nfunction raf(func) {\n return requestAnimationFrame(func);\n}\nfunction typeOf(type, subject) {\n return typeof subject === type;\n}\nfunction isObject$1(subject) {\n return !isNull(subject) && typeOf(\"object\", subject);\n}\nvar isArray = Array.isArray;\nvar isFunction = apply(typeOf, \"function\");\nvar isString = apply(typeOf, \"string\");\nvar isUndefined = apply(typeOf, \"undefined\");\nfunction isNull(subject) {\n return subject === null;\n}\nfunction isHTMLElement(subject) {\n try {\n return subject instanceof (subject.ownerDocument.defaultView || window).HTMLElement;\n } catch (e) {\n return false;\n }\n}\nfunction toArray(value) {\n return isArray(value) ? value : [value];\n}\nfunction forEach(values, iteratee) {\n toArray(values).forEach(iteratee);\n}\nfunction includes(array, value) {\n return array.indexOf(value) > -1;\n}\nfunction push(array, items) {\n array.push.apply(array, toArray(items));\n return array;\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}\nfunction addClass(elm, classes) {\n toggleClass(elm, isString(classes) ? classes.split(\" \") : classes, true);\n}\nfunction append(parent, children2) {\n forEach(children2, parent.appendChild.bind(parent));\n}\nfunction before(nodes, ref2) {\n forEach(nodes, function(node) {\n var parent = (ref2 || node).parentNode;\n if (parent) {\n parent.insertBefore(node, ref2);\n }\n });\n}\nfunction matches(elm, selector) {\n return isHTMLElement(elm) && (elm[\"msMatchesSelector\"] || elm.matches).call(elm, selector);\n}\nfunction children(parent, selector) {\n var children2 = parent ? slice(parent.children) : [];\n return selector ? children2.filter(function(child2) {\n return matches(child2, selector);\n }) : children2;\n}\nfunction child(parent, selector) {\n return selector ? children(parent, selector)[0] : parent.firstElementChild;\n}\nvar ownKeys = Object.keys;\nfunction forOwn$1(object, iteratee, right) {\n if (object) {\n (right ? ownKeys(object).reverse() : ownKeys(object)).forEach(function(key) {\n key !== \"__proto__\" && iteratee(object[key], key);\n });\n }\n return object;\n}\nfunction assign(object) {\n slice(arguments, 1).forEach(function(source) {\n forOwn$1(source, function(value, key) {\n object[key] = source[key];\n });\n });\n return object;\n}\nfunction merge$1(object) {\n slice(arguments, 1).forEach(function(source) {\n forOwn$1(source, function(value, key) {\n if (isArray(value)) {\n object[key] = value.slice();\n } else if (isObject$1(value)) {\n object[key] = merge$1({}, isObject$1(object[key]) ? object[key] : {}, value);\n } else {\n object[key] = value;\n }\n });\n });\n return object;\n}\nfunction omit(object, keys) {\n forEach(keys || ownKeys(object), function(key) {\n delete object[key];\n });\n}\nfunction removeAttribute(elms, attrs) {\n forEach(elms, function(elm) {\n forEach(attrs, function(attr) {\n elm && elm.removeAttribute(attr);\n });\n });\n}\nfunction setAttribute(elms, attrs, value) {\n if (isObject$1(attrs)) {\n forOwn$1(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}\nfunction create(tag, attrs, parent) {\n var elm = document.createElement(tag);\n if (attrs) {\n isString(attrs) ? addClass(elm, attrs) : setAttribute(elm, attrs);\n }\n parent && append(parent, elm);\n return elm;\n}\nfunction style(elm, prop, value) {\n if (isUndefined(value)) {\n return getComputedStyle(elm)[prop];\n }\n if (!isNull(value)) {\n elm.style[prop] = \"\" + value;\n }\n}\nfunction display(elm, display2) {\n style(elm, \"display\", display2);\n}\nfunction focus(elm) {\n elm[\"setActive\"] && elm[\"setActive\"]() || elm.focus({\n preventScroll: true\n });\n}\nfunction getAttribute(elm, attr) {\n return elm.getAttribute(attr);\n}\nfunction hasClass(elm, className) {\n return elm && elm.classList.contains(className);\n}\nfunction rect(target) {\n return target.getBoundingClientRect();\n}\nfunction remove(nodes) {\n forEach(nodes, function(node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n });\n}\nfunction parseHtml(html) {\n return child(new DOMParser().parseFromString(html, \"text/html\").body);\n}\nfunction prevent(e, stopPropagation) {\n e.preventDefault();\n if (stopPropagation) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n}\nfunction query(parent, selector) {\n return parent && parent.querySelector(selector);\n}\nfunction queryAll(parent, selector) {\n return selector ? slice(parent.querySelectorAll(selector)) : [];\n}\nfunction removeClass(elm, classes) {\n toggleClass(elm, classes, false);\n}\nfunction timeOf(e) {\n return e.timeStamp;\n}\nfunction unit(value) {\n return isString(value) ? value : value ? value + \"px\" : \"\";\n}\nvar PROJECT_CODE = \"splide\";\nvar DATA_ATTRIBUTE = \"data-\" + PROJECT_CODE;\nfunction assert(condition, message) {\n if (!condition) {\n throw new Error(\"[\" + PROJECT_CODE + \"] \" + (message || \"\"));\n }\n}\nvar min = Math.min, max = Math.max, floor = Math.floor, ceil = Math.ceil, abs = Math.abs;\nfunction approximatelyEqual(x, y, epsilon) {\n return abs(x - y) < epsilon;\n}\nfunction between(number, x, y, exclusive) {\n var minimum = min(x, y);\n var maximum = max(x, y);\n return exclusive ? minimum < number && number < maximum : minimum <= number && number <= maximum;\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}\nfunction sign(x) {\n return +(x > 0) - +(x < 0);\n}\nfunction format(string, replacements) {\n forEach(replacements, function(replacement) {\n string = string.replace(\"%s\", \"\" + replacement);\n });\n return string;\n}\nfunction pad(number) {\n return number < 10 ? \"0\" + number : \"\" + number;\n}\nvar ids = {};\nfunction uniqueId(prefix) {\n return \"\" + prefix + pad(ids[prefix] = (ids[prefix] || 0) + 1);\n}\nfunction EventBinder() {\n var listeners = [];\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 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 return true;\n });\n });\n }\n function dispatch(target, type, detail) {\n var e;\n var bubbles = true;\n if (typeof CustomEvent === \"function\") {\n e = new CustomEvent(type, {\n bubbles,\n detail\n });\n } else {\n e = document.createEvent(\"CustomEvent\");\n e.initCustomEvent(type, bubbles, false, detail);\n }\n target.dispatchEvent(e);\n return e;\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 function destroy() {\n listeners.forEach(function(data) {\n data[4]();\n });\n empty(listeners);\n }\n return {\n bind,\n unbind,\n dispatch,\n destroy\n };\n}\nvar EVENT_MOUNTED = \"mounted\";\nvar EVENT_READY = \"ready\";\nvar EVENT_MOVE = \"move\";\nvar EVENT_MOVED = \"moved\";\nvar EVENT_CLICK = \"click\";\nvar EVENT_ACTIVE = \"active\";\nvar EVENT_INACTIVE = \"inactive\";\nvar EVENT_VISIBLE = \"visible\";\nvar EVENT_HIDDEN = \"hidden\";\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_OVERFLOW = \"overflow\";\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\";\nvar EVENT_SLIDE_KEYDOWN = \"sk\";\nvar EVENT_SHIFTED = \"sh\";\nvar EVENT_END_INDEX_CHANGED = \"ei\";\nfunction EventInterface(Splide2) {\n var bus = Splide2 ? Splide2.event.bus : document.createDocumentFragment();\n var binder = EventBinder();\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 function emit(event) {\n binder.dispatch(bus, event, slice(arguments, 1));\n }\n if (Splide2) {\n Splide2.event.on(EVENT_DESTROY, binder.destroy);\n }\n return assign(binder, {\n bus,\n on,\n off: apply(binder.unbind, bus),\n emit\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 function update() {\n if (!paused) {\n rate = interval ? min((now() - startTime) / interval, 1) : 1;\n onUpdate && onUpdate(rate);\n if (rate >= 1) {\n onInterval();\n startTime = now();\n if (limit && ++count >= limit) {\n return pause();\n }\n }\n id = raf(update);\n }\n }\n function start(resume) {\n resume || cancel();\n startTime = now() - (resume ? rate * interval : 0);\n paused = false;\n id = raf(update);\n }\n function pause() {\n paused = true;\n }\n function rewind() {\n startTime = now();\n rate = 0;\n if (onUpdate) {\n onUpdate(rate);\n }\n }\n function cancel() {\n id && cancelAnimationFrame(id);\n rate = 0;\n id = 0;\n paused = true;\n }\n function set(time) {\n interval = time;\n }\n function isPaused() {\n return paused;\n }\n return {\n start,\n rewind,\n pause,\n cancel,\n set,\n isPaused\n };\n}\nfunction State(initialState) {\n var state = initialState;\n function set(value) {\n state = value;\n }\n function is(states) {\n return includes(toArray(states), state);\n }\n return {\n set,\n is\n };\n}\nfunction Throttle(func, duration) {\n var interval = RequestInterval(duration || 0, func, null, 1);\n return function() {\n interval.isPaused() && interval.start();\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 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 function destroy(completely) {\n if (completely) {\n binder.destroy();\n }\n }\n function register(options2, query2) {\n var queryList = matchMedia(query2);\n binder.bind(queryList, \"change\", update);\n queries.push([options2, queryList]);\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$1(merged2, entry[1].matches ? entry[0] : {});\n }, {});\n omit(options);\n set(merged);\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 function reduce(enable) {\n if (matchMedia(MEDIA_PREFERS_REDUCED_MOTION).matches) {\n enable ? merge$1(options, reducedMotion) : omit(options, ownKeys(reducedMotion));\n }\n }\n function set(opts, base, notify) {\n merge$1(options, opts);\n base && merge$1(Object.getPrototypeOf(options), opts);\n if (notify || !state.is(CREATED)) {\n Splide2.emit(EVENT_UPDATED, options);\n }\n }\n return {\n setup,\n destroy,\n reduce,\n set\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 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};\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 function orient(value) {\n return value * (options.direction === RTL ? 1 : -1);\n }\n return {\n resolve,\n orient\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_PREFIX = PROJECT_CODE + \"__\";\nvar STATUS_CLASS_PREFIX = \"is-\";\nvar CLASS_ROOT = PROJECT_CODE;\nvar CLASS_TRACK = CLASS_PREFIX + \"track\";\nvar CLASS_LIST = CLASS_PREFIX + \"list\";\nvar CLASS_SLIDE = CLASS_PREFIX + \"slide\";\nvar CLASS_CLONE = CLASS_SLIDE + \"--clone\";\nvar CLASS_CONTAINER = CLASS_SLIDE + \"__container\";\nvar CLASS_ARROWS = CLASS_PREFIX + \"arrows\";\nvar CLASS_ARROW = CLASS_PREFIX + \"arrow\";\nvar CLASS_ARROW_PREV = CLASS_ARROW + \"--prev\";\nvar CLASS_ARROW_NEXT = CLASS_ARROW + \"--next\";\nvar CLASS_PAGINATION = CLASS_PREFIX + \"pagination\";\nvar CLASS_PAGINATION_PAGE = CLASS_PAGINATION + \"__page\";\nvar CLASS_PROGRESS = CLASS_PREFIX + \"progress\";\nvar CLASS_PROGRESS_BAR = CLASS_PROGRESS + \"__bar\";\nvar CLASS_TOGGLE = CLASS_PREFIX + \"toggle\";\nvar CLASS_SPINNER = CLASS_PREFIX + \"spinner\";\nvar CLASS_SR = CLASS_PREFIX + \"sr\";\nvar CLASS_INITIALIZED = STATUS_CLASS_PREFIX + \"initialized\";\nvar CLASS_ACTIVE = STATUS_CLASS_PREFIX + \"active\";\nvar CLASS_PREV = STATUS_CLASS_PREFIX + \"prev\";\nvar CLASS_NEXT = STATUS_CLASS_PREFIX + \"next\";\nvar CLASS_VISIBLE = STATUS_CLASS_PREFIX + \"visible\";\nvar CLASS_LOADING = STATUS_CLASS_PREFIX + \"loading\";\nvar CLASS_FOCUS_IN = STATUS_CLASS_PREFIX + \"focus-in\";\nvar CLASS_OVERFLOW = STATUS_CLASS_PREFIX + \"overflow\";\nvar STATUS_CLASSES = [CLASS_ACTIVE, CLASS_VISIBLE, CLASS_PREV, CLASS_NEXT, CLASS_LOADING, CLASS_FOCUS_IN, CLASS_OVERFLOW];\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};\nfunction closest(from, selector) {\n if (isFunction(from.closest)) {\n return from.closest(selector);\n }\n var elm = from;\n while (elm && elm.nodeType === 1) {\n if (matches(elm, selector)) {\n break;\n }\n elm = elm.parentElement;\n }\n return elm;\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\";\nfunction Elements(Splide2, Components2, options) {\n var _EventInterface = EventInterface(Splide2), on = _EventInterface.on, bind = _EventInterface.bind;\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 function setup() {\n collect();\n init();\n update();\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 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 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 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$1({\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,\n track,\n list,\n slides\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 if (!getAttribute(root, ROLE) && root.tagName !== \"SECTION\" && role) {\n setAttribute(root, ROLE, role);\n }\n setAttribute(root, ARIA_ROLEDESCRIPTION, i18n.carousel);\n setAttribute(list, ROLE, \"presentation\");\n }\n function find(selector) {\n var elm = query(root, selector);\n return elm && closest(elm, \".\" + CLASS_ROOT) === root ? elm : void 0;\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 return assign(elements, {\n setup,\n mount,\n destroy\n });\n}\nvar SLIDE = \"slide\";\nvar LOOP = \"loop\";\nvar FADE = \"fade\";\nfunction Slide$1(Splide2, index, slideIndex, slide) {\n var event = EventInterface(Splide2);\n var on = event.on, emit = event.emit, bind = event.bind;\n var Components = Splide2.Components, root = Splide2.root, options = Splide2.options;\n var isNavigation = options.isNavigation, updateOnMove = options.updateOnMove, i18n = options.i18n, pagination = options.pagination, 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 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 listen();\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 if (updateOnMove) {\n on(EVENT_MOVE, onMove);\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 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 function onMove() {\n if (!destroyed) {\n update();\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 function updateActivity() {\n var active = isActive();\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 function updateVisibility() {\n var visible = isVisible();\n var hidden = !visible && (!isActive() || isClone);\n if (!Splide2.state.is([MOVING, SCROLLING])) {\n setAttribute(slide, ARIA_HIDDEN, hidden || \"\");\n }\n setAttribute(queryAll(slide, options.focusableNodes || \"\"), TAB_INDEX, hidden ? -1 : \"\");\n if (slideFocus) {\n setAttribute(slide, TAB_INDEX, hidden ? -1 : 0);\n }\n if (visible !== hasClass(slide, CLASS_VISIBLE)) {\n toggleClass(slide, CLASS_VISIBLE, visible);\n emit(visible ? EVENT_VISIBLE : EVENT_HIDDEN, self);\n }\n if (!visible && document.activeElement === slide) {\n var Slide2 = Components.Slides.getAt(Splide2.index);\n Slide2 && focus(Slide2.slide);\n }\n }\n function style$1(prop, value, useContainer) {\n style(useContainer && container || slide, prop, value);\n }\n function isActive() {\n var curr = Splide2.index;\n return curr === index || options.cloneStatus && curr === slideIndex;\n }\n function isVisible() {\n if (Splide2.is(FADE)) {\n return isActive();\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 function isWithin(from, distance) {\n var diff = abs(from - index);\n if (!isClone && (options.rewind || Splide2.is(LOOP))) {\n diff = min(diff, Splide2.length - diff);\n }\n return diff <= distance;\n }\n var self = {\n index,\n slideIndex,\n slide,\n container,\n isClone,\n mount,\n destroy,\n update,\n style: style$1,\n isWithin\n };\n return self;\n}\nfunction Slides(Splide2, Components2, options) {\n var _EventInterface2 = EventInterface(Splide2), on = _EventInterface2.on, emit = _EventInterface2.emit, bind = _EventInterface2.bind;\n var _Components2$Elements = Components2.Elements, slides = _Components2$Elements.slides, list = _Components2$Elements.list;\n var Slides2 = [];\n function mount() {\n init();\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, init);\n }\n function init() {\n slides.forEach(function(slide, index) {\n register(slide, index, -1);\n });\n }\n function destroy() {\n forEach$1(function(Slide2) {\n Slide2.destroy();\n });\n empty(Slides2);\n }\n function update() {\n forEach$1(function(Slide2) {\n Slide2.update();\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 Slides2.sort(function(Slide1, Slide2) {\n return Slide1.index - Slide2.index;\n });\n }\n function get(excludeClones) {\n return excludeClones ? filter(function(Slide2) {\n return !Slide2.isClone;\n }) : Slides2;\n }\n function getIn(page) {\n var Controller2 = Components2.Controller;\n var index = Controller2.toIndex(page);\n var max2 = Controller2.hasFocus() ? 1 : options.perPage;\n return filter(function(Slide2) {\n return between(Slide2.index, index, index + max2 - 1);\n });\n }\n function getAt(index) {\n return filter(index)[0];\n }\n function add(items, index) {\n forEach(items, function(slide) {\n if (isString(slide)) {\n slide = parseHtml(slide);\n }\n if (isHTMLElement(slide)) {\n var ref2 = slides[index];\n ref2 ? before(slide, ref2) : append(list, slide);\n addClass(slide, options.classes.slide);\n observeImages(slide, apply(emit, EVENT_RESIZE));\n }\n });\n emit(EVENT_REFRESH);\n }\n function remove$1(matcher) {\n remove(filter(matcher).map(function(Slide2) {\n return Slide2.slide;\n }));\n emit(EVENT_REFRESH);\n }\n function forEach$1(iteratee, excludeClones) {\n get(excludeClones).forEach(iteratee);\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 function style2(prop, value, useContainer) {\n forEach$1(function(Slide2) {\n Slide2.style(prop, value, useContainer);\n });\n }\n function observeImages(elm, callback) {\n var images = queryAll(elm, \"img\");\n var length = images.length;\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 function getLength(excludeClones) {\n return excludeClones ? slides.length : Slides2.length;\n }\n function isEnough() {\n return Slides2.length > options.perPage;\n }\n return {\n mount,\n destroy,\n update,\n register,\n get,\n getIn,\n getAt,\n add,\n remove: remove$1,\n forEach: forEach$1,\n filter,\n style: style2,\n getLength,\n isEnough\n };\n}\nfunction Layout(Splide2, Components2, options) {\n var _EventInterface3 = EventInterface(Splide2), on = _EventInterface3.on, bind = _EventInterface3.bind, emit = _EventInterface3.emit;\n var Slides2 = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var _Components2$Elements2 = Components2.Elements, root = _Components2$Elements2.root, track = _Components2$Elements2.track, list = _Components2$Elements2.list;\n var getAt = Slides2.getAt, styleSlides = Slides2.style;\n var vertical;\n var rootRect;\n var overflow;\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 function init() {\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(true);\n }\n function resize(force) {\n var newRect = rect(root);\n if (force || 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 if (overflow !== (overflow = isOverflow())) {\n toggleClass(root, CLASS_OVERFLOW, overflow);\n emit(EVENT_OVERFLOW, overflow);\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$1(padding) ? 0 : padding)) || \"0px\";\n }\n function cssTrackHeight() {\n var height = \"\";\n if (vertical) {\n height = cssHeight();\n assert(height, \"height or heightRatio is missing.\");\n height = \"calc(\" + height + \" - \" + cssPadding(false) + \" - \" + cssPadding(true) + \")\";\n }\n return height;\n }\n function cssHeight() {\n return unit(options.height || rect(list).width * options.heightRatio);\n }\n function cssSlideWidth() {\n return options.autoWidth ? null : unit(options.fixedWidth) || (vertical ? \"\" : cssSlideSize());\n }\n function cssSlideHeight() {\n return unit(options.fixedHeight) || (vertical ? options.autoHeight ? null : cssSlideSize() : cssHeight());\n }\n function cssSlideSize() {\n var gap = unit(options.gap);\n return \"calc((100%\" + (gap && \" + \" + gap) + \")/\" + (options.perPage || 1) + (gap && \" - \" + gap) + \")\";\n }\n function listSize() {\n return rect(list)[resolve(\"width\")];\n }\n function slideSize(index, withoutGap) {\n var Slide2 = getAt(index || 0);\n return Slide2 ? rect(Slide2.slide)[resolve(\"width\")] + (withoutGap ? 0 : getGap()) : 0;\n }\n function totalSize(index, withoutGap) {\n var Slide2 = getAt(index);\n if (Slide2) {\n var right = rect(Slide2.slide)[resolve(\"right\")];\n var left = rect(list)[resolve(\"left\")];\n return abs(right - left) + (withoutGap ? 0 : getGap());\n }\n return 0;\n }\n function sliderSize(withoutGap) {\n return totalSize(Splide2.length - 1) - totalSize(0) + slideSize(0, withoutGap);\n }\n function getGap() {\n var Slide2 = getAt(0);\n return Slide2 && parseFloat(style(Slide2.slide, resolve(\"marginRight\"))) || 0;\n }\n function getPadding(right) {\n return parseFloat(style(track, resolve(\"padding\" + (right ? \"Right\" : \"Left\")))) || 0;\n }\n function isOverflow() {\n return Splide2.is(FADE) || sliderSize(true) > listSize();\n }\n return {\n mount,\n resize,\n listSize,\n slideSize,\n sliderSize,\n totalSize,\n getPadding,\n isOverflow\n };\n}\nvar MULTIPLIER = 2;\nfunction Clones(Splide2, Components2, options) {\n var event = EventInterface(Splide2);\n var on = event.on;\n var Elements2 = Components2.Elements, Slides2 = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var clones = [];\n var cloneCount;\n function mount() {\n on(EVENT_REFRESH, remount);\n on([EVENT_UPDATED, EVENT_RESIZE], observe);\n if (cloneCount = computeCloneCount()) {\n generate(cloneCount);\n Components2.Layout.resize(true);\n }\n }\n function remount() {\n destroy();\n mount();\n }\n function destroy() {\n remove(clones);\n empty(clones);\n event.destroy();\n }\n function observe() {\n var count = computeCloneCount();\n if (cloneCount !== count) {\n if (cloneCount < count || !count) {\n event.emit(EVENT_REFRESH);\n }\n }\n }\n function generate(count) {\n var slides = Slides2.get().slice();\n var length = slides.length;\n if (length) {\n while (slides.length < count) {\n push(slides, slides);\n }\n push(slides.slice(-count), slides.slice(0, count)).forEach(function(Slide2, index) {\n var isHead = index < count;\n var clone = cloneDeep(Slide2.slide, index);\n isHead ? before(clone, slides[0].slide) : append(Elements2.list, clone);\n push(clones, clone);\n Slides2.register(clone, index - count + (isHead ? 0 : length), Slide2.index);\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 function computeCloneCount() {\n var clones2 = options.clones;\n if (!Splide2.is(LOOP)) {\n clones2 = 0;\n } else if (isUndefined(clones2)) {\n var fixedSize = options[resolve(\"fixedWidth\")] && Components2.Layout.slideSize(0);\n var fixedCount = fixedSize && ceil(rect(Elements2.track)[resolve(\"width\")] / fixedSize);\n clones2 = fixedCount || options[resolve(\"autoWidth\")] && Splide2.length || options.perPage * MULTIPLIER;\n }\n return clones2;\n }\n return {\n mount,\n destroy\n };\n}\nfunction Move(Splide2, Components2, options) {\n var _EventInterface4 = EventInterface(Splide2), on = _EventInterface4.on, emit = _EventInterface4.emit;\n var set = Splide2.state.set;\n var _Components2$Layout = Components2.Layout, slideSize = _Components2$Layout.slideSize, getPadding = _Components2$Layout.getPadding, totalSize = _Components2$Layout.totalSize, listSize = _Components2$Layout.listSize, sliderSize = _Components2$Layout.sliderSize;\n var _Components2$Directio = Components2.Direction, resolve = _Components2$Directio.resolve, orient = _Components2$Directio.orient;\n var _Components2$Elements3 = Components2.Elements, list = _Components2$Elements3.list, track = _Components2$Elements3.track;\n var Transition;\n function mount() {\n Transition = Components2.Transition;\n on([EVENT_MOUNTED, EVENT_RESIZED, EVENT_UPDATED, EVENT_REFRESH], reposition);\n }\n function reposition() {\n if (!Components2.Controller.isBusy()) {\n Components2.Scroll.cancel();\n jump(Splide2.index);\n Components2.Slides.update();\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 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 function jump(index) {\n translate(toPosition(index, true));\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 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 if (exceededMin || exceededMax) {\n position = shift(position, exceededMax);\n }\n }\n return position;\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 function cancel() {\n translate(getPosition(), true);\n Transition.cancel();\n }\n function toIndex(position) {\n var Slides2 = Components2.Slides.get();\n var index = 0;\n var minDistance = Infinity;\n for (var i = 0; i < Slides2.length; i++) {\n var slideIndex = Slides2[i].index;\n var distance = abs(toPosition(slideIndex, true) - position);\n if (distance <= minDistance) {\n minDistance = distance;\n index = slideIndex;\n } else {\n break;\n }\n }\n return index;\n }\n function toPosition(index, trimming) {\n var position = orient(totalSize(index - 1) - offset(index));\n return trimming ? trim(position) : position;\n }\n function getPosition() {\n var left = resolve(\"left\");\n return rect(list)[left] - rect(track)[left] + orient(getPadding(false));\n }\n function trim(position) {\n if (options.trimSpace && Splide2.is(SLIDE)) {\n position = clamp(position, 0, orient(sliderSize(true) - listSize()));\n }\n return position;\n }\n function offset(index) {\n var focus2 = options.focus;\n return focus2 === \"center\" ? (listSize() - slideSize(index, true)) / 2 : +focus2 * slideSize(index) || 0;\n }\n function getLimit(max2) {\n return toPosition(max2 ? Components2.Controller.getEnd() : 0, !!options.trimSpace);\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 function exceededLimit(max2, position) {\n position = isUndefined(position) ? getPosition() : position;\n var exceededMin = max2 !== true && orient(position) < orient(getLimit(false));\n var exceededMax = max2 !== false && orient(position) > orient(getLimit(true));\n return exceededMin || exceededMax;\n }\n return {\n mount,\n move,\n jump,\n translate,\n shift,\n cancel,\n toIndex,\n toPosition,\n getPosition,\n getLimit,\n exceededLimit,\n reposition\n };\n}\nfunction Controller(Splide2, Components2, options) {\n var _EventInterface5 = EventInterface(Splide2), on = _EventInterface5.on, emit = _EventInterface5.emit;\n var Move2 = Components2.Move;\n var getPosition = Move2.getPosition, getLimit = Move2.getLimit, toPosition = Move2.toPosition;\n var _Components2$Slides = Components2.Slides, isEnough = _Components2$Slides.isEnough, getLength = _Components2$Slides.getLength;\n var omitEnd = options.omitEnd;\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 endIndex;\n var prevIndex = currIndex;\n var slideCount;\n var perMove;\n var perPage;\n function mount() {\n init();\n on([EVENT_UPDATED, EVENT_REFRESH, EVENT_END_INDEX_CHANGED], init);\n on(EVENT_RESIZED, onResized);\n }\n function init() {\n slideCount = getLength(true);\n perMove = options.perMove;\n perPage = options.perPage;\n endIndex = getEnd();\n var index = clamp(currIndex, 0, omitEnd ? endIndex : slideCount - 1);\n if (index !== currIndex) {\n currIndex = index;\n Move2.reposition();\n }\n }\n function onResized() {\n if (endIndex !== getEnd()) {\n emit(EVENT_END_INDEX_CHANGED);\n }\n }\n function go(control, allowSameIndex, callback) {\n if (!isBusy()) {\n var dest = parse(control);\n var index = loop(dest);\n if (index > -1 && (allowSameIndex || index !== currIndex)) {\n setIndex(index);\n Move2.move(dest, index, prevIndex, callback);\n }\n }\n }\n function scroll(destination, duration, snap, callback) {\n Components2.Scroll.scroll(destination, duration, snap, function() {\n var index = loop(Move2.toIndex(getPosition()));\n setIndex(omitEnd ? min(index, endIndex) : index);\n callback && callback();\n });\n }\n function parse(control) {\n var index = currIndex;\n if (isString(control)) {\n var _ref = control.match(/([+\\-<>])(\\d+)?/) || [], indicator = _ref[1], number = _ref[2];\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, endIndex);\n }\n return index;\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 if (dest === -1 && isSlide) {\n if (!approximatelyEqual(getPosition(), getLimit(!prev), 1)) {\n return prev ? 0 : endIndex;\n }\n }\n return destination ? dest : loop(dest);\n }\n function computeDestIndex(dest, from, snapPage) {\n if (isEnough() || hasFocus()) {\n var index = computeMovableDestIndex(dest);\n if (index !== dest) {\n from = dest;\n dest = index;\n snapPage = false;\n }\n if (dest < 0 || dest > endIndex) {\n if (!perMove && (between(0, dest, from, true) || between(endIndex, 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 ? endIndex : 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 return dest;\n }\n function computeMovableDestIndex(dest) {\n if (isSlide && options.trimSpace === \"move\" && dest !== currIndex) {\n var position = getPosition();\n while (position === toPosition(dest, true) && between(dest, 0, Splide2.length - 1, !options.rewind)) {\n dest < currIndex ? --dest : ++dest;\n }\n }\n return dest;\n }\n function loop(index) {\n return isLoop ? (index + slideCount) % slideCount || 0 : index;\n }\n function getEnd() {\n var end = slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage);\n while (omitEnd && end-- > 0) {\n if (toPosition(slideCount - 1, true) !== toPosition(end, true)) {\n end++;\n break;\n }\n }\n return clamp(end, 0, slideCount - 1);\n }\n function toIndex(page) {\n return clamp(hasFocus() ? page : perPage * page, 0, endIndex);\n }\n function toPage(index) {\n return hasFocus() ? min(index, endIndex) : floor((index >= endIndex ? slideCount - 1 : index) / perPage);\n }\n function toDest(destination) {\n var closest2 = Move2.toIndex(destination);\n return isSlide ? clamp(closest2, 0, endIndex) : closest2;\n }\n function setIndex(index) {\n if (index !== currIndex) {\n prevIndex = currIndex;\n currIndex = index;\n }\n }\n function getIndex(prev) {\n return prev ? prevIndex : currIndex;\n }\n function hasFocus() {\n return !isUndefined(options.focus) || options.isNavigation;\n }\n function isBusy() {\n return Splide2.state.is([MOVING, SCROLLING]) && !!options.waitForTransition;\n }\n return {\n mount,\n go,\n scroll,\n getNext,\n getPrev,\n getAdjacent,\n getEnd,\n setIndex,\n getIndex,\n toIndex,\n toPage,\n toDest,\n hasFocus,\n isBusy\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;\nfunction Arrows(Splide2, Components2, options) {\n var event = EventInterface(Splide2);\n var on = event.on, bind = event.bind, emit = event.emit;\n var classes = options.classes, i18n = options.i18n;\n var Elements2 = Components2.Elements, Controller2 = Components2.Controller;\n var placeholder = Elements2.arrows, track = Elements2.track;\n var wrapper = placeholder;\n var prev = Elements2.prev;\n var next = Elements2.next;\n var created;\n var wrapperClasses;\n var arrows = {};\n function mount() {\n init();\n on(EVENT_UPDATED, remount);\n }\n function remount() {\n destroy();\n mount();\n }\n function init() {\n var enabled = options.arrows;\n if (enabled && !(prev && next)) {\n createArrows();\n }\n if (prev && next) {\n assign(arrows, {\n prev,\n next\n });\n display(wrapper, enabled ? \"\" : \"none\");\n addClass(wrapper, wrapperClasses = CLASS_ARROWS + \"--\" + options.direction);\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 function destroy() {\n event.destroy();\n removeClass(wrapper, wrapperClasses);\n if (created) {\n remove(placeholder ? [prev, next] : wrapper);\n prev = next = null;\n } else {\n removeAttribute([prev, next], ALL_ATTRIBUTES);\n }\n }\n function listen() {\n on([EVENT_MOUNTED, EVENT_MOVED, EVENT_REFRESH, EVENT_SCROLLED, EVENT_END_INDEX_CHANGED], update);\n bind(next, \"click\", apply(go, \">\"));\n bind(prev, \"click\", apply(go, \"<\"));\n }\n function go(control) {\n Controller2.go(control, true);\n }\n function createArrows() {\n wrapper = placeholder || create(\"div\", classes.arrows);\n prev = createArrow(true);\n next = createArrow(false);\n created = true;\n append(wrapper, [prev, next]);\n !placeholder && before(wrapper, track);\n }\n function createArrow(prev2) {\n var arrow = '