{"version":3,"sources":["jsdelivr-header.js","/npm/@splidejs/react-splide@0.7.12/dist/js/react-splide.cjs.js"],"names":[],"mappings":"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","file":"/npm/@splidejs/react-splide@0.7.12/dist/js/react-splide.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@splidejs/react-splide@0.7.12/dist/js/react-splide.cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n  isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/js/index.ts\nvar js_exports = {};\n__export(js_exports, {\n  Splide: () => Splide2,\n  SplideSlide: () => SplideSlide,\n  SplideTrack: () => SplideTrack\n});\nmodule.exports = __toCommonJS(js_exports);\n\n// node_modules/@splidejs/splide/dist/js/splide.esm.js\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}\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(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, ref) {\n  forEach(nodes, function(node) {\n    var parent = (ref || node).parentNode;\n    if (parent) {\n      parent.insertBefore(node, ref);\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(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(source, function(value, key) {\n      object[key] = source[key];\n    });\n  });\n  return object;\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}\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(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}\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;\nvar max = Math.max;\nvar floor = Math.floor;\nvar ceil = Math.ceil;\nvar 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(Splide22) {\n  var bus = Splide22 ? Splide22.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 (Splide22) {\n    Splide22.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(Splide22, Components2, options) {\n  var state = Splide22.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(merged2, entry[1].matches ? entry[0] : {});\n    }, {});\n    omit(options);\n    set(merged);\n    if (options.destroy) {\n      Splide22.destroy(options.destroy === \"completely\");\n    } else if (destroyed) {\n      destroy(true);\n      Splide22.mount();\n    } else {\n      direction !== options.direction && Splide22.refresh();\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  function set(opts, base, notify) {\n    merge(options, opts);\n    base && merge(Object.getPrototypeOf(options), opts);\n    if (notify || !state.is(CREATED)) {\n      Splide22.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(Splide22, 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_TOGGLE_PLAY = CLASS_TOGGLE + \"__play\";\nvar CLASS_TOGGLE_PAUSE = CLASS_TOGGLE + \"__pause\";\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(Splide22, Components2, options) {\n  var _EventInterface = EventInterface(Splide22), on = _EventInterface.on, bind = _EventInterface.bind;\n  var root = Splide22.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({\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(Splide22, index, slideIndex, slide) {\n  var event = EventInterface(Splide22);\n  var on = event.on, emit = event.emit, bind = event.bind;\n  var Components = Splide22.Components, root = Splide22.root, options = Splide22.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, Splide22.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 = Splide22.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 = Splide22.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 (!Splide22.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(Splide22.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 = Splide22.index;\n    return curr === index || options.cloneStatus && curr === slideIndex;\n  }\n  function isVisible() {\n    if (Splide22.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 || Splide22.is(LOOP))) {\n      diff = min(diff, Splide22.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(Splide22, Components2, options) {\n  var _EventInterface2 = EventInterface(Splide22), 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(Splide22, 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 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  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(Splide22, Components2, options) {\n  var _EventInterface3 = EventInterface(Splide22), 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(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(Splide22.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 Splide22.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(Splide22, Components2, options) {\n  var event = EventInterface(Splide22);\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 = Splide22.root.id + \"-clone\" + pad(index + 1);\n    return clone;\n  }\n  function computeCloneCount() {\n    var clones2 = options.clones;\n    if (!Splide22.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\")] && Splide22.length || options.perPage * MULTIPLIER;\n    }\n    return clones2;\n  }\n  return {\n    mount,\n    destroy\n  };\n}\nfunction Move(Splide22, Components2, options) {\n  var _EventInterface4 = EventInterface(Splide22), on = _EventInterface4.on, emit = _EventInterface4.emit;\n  var set = Splide22.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(Splide22.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 (!Splide22.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 (Splide22.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 && Splide22.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(Splide22, Components2, options) {\n  var _EventInterface5 = EventInterface(Splide22), 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 = Splide22.is(LOOP);\n  var isSlide = Splide22.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, Splide22.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 Splide22.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(Splide22, Components2, options) {\n  var event = EventInterface(Splide22);\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 = '<button class=\"' + classes.arrow + \" \" + (prev2 ? classes.prev : classes.next) + '\" type=\"button\"><svg xmlns=\"' + XML_NAME_SPACE + '\" viewBox=\"0 0 ' + SIZE + \" \" + SIZE + '\" width=\"' + SIZE + '\" height=\"' + SIZE + '\" focusable=\"false\"><path d=\"' + (options.arrowPath || PATH) + '\" />';\n    return parseHtml(arrow);\n  }\n  function update() {\n    if (prev && next) {\n      var index = Splide22.index;\n      var prevIndex = Controller2.getPrev();\n      var nextIndex = Controller2.getNext();\n      var prevLabel = prevIndex > -1 && index < prevIndex ? i18n.last : i18n.prev;\n      var nextLabel = nextIndex > -1 && index > nextIndex ? i18n.first : i18n.next;\n      prev.disabled = prevIndex < 0;\n      next.disabled = nextIndex < 0;\n      setAttribute(prev, ARIA_LABEL, prevLabel);\n      setAttribute(next, ARIA_LABEL, nextLabel);\n      emit(EVENT_ARROWS_UPDATED, prev, next, prevIndex, nextIndex);\n    }\n  }\n  return {\n    arrows,\n    mount,\n    destroy,\n    update\n  };\n}\nvar INTERVAL_DATA_ATTRIBUTE = DATA_ATTRIBUTE + \"-interval\";\nfunction Autoplay(Splide22, Components2, options) {\n  var _EventInterface6 = EventInterface(Splide22), on = _EventInterface6.on, bind = _EventInterface6.bind, emit = _EventInterface6.emit;\n  var interval = RequestInterval(options.interval, Splide22.go.bind(Splide22, \">\"), onAnimationFrame);\n  var isPaused = interval.isPaused;\n  var Elements2 = Components2.Elements, _Components2$Elements4 = Components2.Elements, root = _Components2$Elements4.root, toggle = _Components2$Elements4.toggle;\n  var autoplay = options.autoplay;\n  var hovered;\n  var focused;\n  var stopped = autoplay === \"pause\";\n  function mount() {\n    if (autoplay) {\n      listen();\n      toggle && setAttribute(toggle, ARIA_CONTROLS, Elements2.track.id);\n      stopped || play();\n      update();\n    }\n  }\n  function listen() {\n    if (options.pauseOnHover) {\n      bind(root, \"mouseenter mouseleave\", function(e) {\n        hovered = e.type === \"mouseenter\";\n        autoToggle();\n      });\n    }\n    if (options.pauseOnFocus) {\n      bind(root, \"focusin focusout\", function(e) {\n        focused = e.type === \"focusin\";\n        autoToggle();\n      });\n    }\n    if (toggle) {\n      bind(toggle, \"click\", function() {\n        stopped ? play() : pause(true);\n      });\n    }\n    on([EVENT_MOVE, EVENT_SCROLL, EVENT_REFRESH], interval.rewind);\n    on(EVENT_MOVE, onMove);\n  }\n  function play() {\n    if (isPaused() && Components2.Slides.isEnough()) {\n      interval.start(!options.resetProgress);\n      focused = hovered = stopped = false;\n      update();\n      emit(EVENT_AUTOPLAY_PLAY);\n    }\n  }\n  function pause(stop) {\n    if (stop === void 0) {\n      stop = true;\n    }\n    stopped = !!stop;\n    update();\n    if (!isPaused()) {\n      interval.pause();\n      emit(EVENT_AUTOPLAY_PAUSE);\n    }\n  }\n  function autoToggle() {\n    if (!stopped) {\n      hovered || focused ? pause(false) : play();\n    }\n  }\n  function update() {\n    if (toggle) {\n      toggleClass(toggle, CLASS_ACTIVE, !stopped);\n      setAttribute(toggle, ARIA_LABEL, options.i18n[stopped ? \"play\" : \"pause\"]);\n    }\n  }\n  function onAnimationFrame(rate) {\n    var bar = Elements2.bar;\n    bar && style(bar, \"width\", rate * 100 + \"%\");\n    emit(EVENT_AUTOPLAY_PLAYING, rate);\n  }\n  function onMove(index) {\n    var Slide2 = Components2.Slides.getAt(index);\n    interval.set(Slide2 && +getAttribute(Slide2.slide, INTERVAL_DATA_ATTRIBUTE) || options.interval);\n  }\n  return {\n    mount,\n    destroy: interval.cancel,\n    play,\n    pause,\n    isPaused\n  };\n}\nfunction Cover(Splide22, Components2, options) {\n  var _EventInterface7 = EventInterface(Splide22), on = _EventInterface7.on;\n  function mount() {\n    if (options.cover) {\n      on(EVENT_LAZYLOAD_LOADED, apply(toggle, true));\n      on([EVENT_MOUNTED, EVENT_UPDATED, EVENT_REFRESH], apply(cover, true));\n    }\n  }\n  function cover(cover2) {\n    Components2.Slides.forEach(function(Slide2) {\n      var img = child(Slide2.container || Slide2.slide, \"img\");\n      if (img && img.src) {\n        toggle(cover2, img, Slide2);\n      }\n    });\n  }\n  function toggle(cover2, img, Slide2) {\n    Slide2.style(\"background\", cover2 ? 'center/cover no-repeat url(\"' + img.src + '\")' : \"\", true);\n    display(img, cover2 ? \"none\" : \"\");\n  }\n  return {\n    mount,\n    destroy: apply(cover, false)\n  };\n}\nvar BOUNCE_DIFF_THRESHOLD = 10;\nvar BOUNCE_DURATION = 600;\nvar FRICTION_FACTOR = 0.6;\nvar BASE_VELOCITY = 1.5;\nvar MIN_DURATION = 800;\nfunction Scroll(Splide22, Components2, options) {\n  var _EventInterface8 = EventInterface(Splide22), on = _EventInterface8.on, emit = _EventInterface8.emit;\n  var set = Splide22.state.set;\n  var Move2 = Components2.Move;\n  var getPosition = Move2.getPosition, getLimit = Move2.getLimit, exceededLimit = Move2.exceededLimit, translate = Move2.translate;\n  var isSlide = Splide22.is(SLIDE);\n  var interval;\n  var callback;\n  var friction = 1;\n  function mount() {\n    on(EVENT_MOVE, clear);\n    on([EVENT_UPDATED, EVENT_REFRESH], cancel);\n  }\n  function scroll(destination, duration, snap, onScrolled, noConstrain) {\n    var from = getPosition();\n    clear();\n    if (snap && (!isSlide || !exceededLimit())) {\n      var size = Components2.Layout.sliderSize();\n      var offset = sign(destination) * size * floor(abs(destination) / size) || 0;\n      destination = Move2.toPosition(Components2.Controller.toDest(destination % size)) + offset;\n    }\n    var noDistance = approximatelyEqual(from, destination, 1);\n    friction = 1;\n    duration = noDistance ? 0 : duration || max(abs(destination - from) / BASE_VELOCITY, MIN_DURATION);\n    callback = onScrolled;\n    interval = RequestInterval(duration, onEnd, apply(update, from, destination, noConstrain), 1);\n    set(SCROLLING);\n    emit(EVENT_SCROLL);\n    interval.start();\n  }\n  function onEnd() {\n    set(IDLE);\n    callback && callback();\n    emit(EVENT_SCROLLED);\n  }\n  function update(from, to, noConstrain, rate) {\n    var position = getPosition();\n    var target = from + (to - from) * easing(rate);\n    var diff = (target - position) * friction;\n    translate(position + diff);\n    if (isSlide && !noConstrain && exceededLimit()) {\n      friction *= FRICTION_FACTOR;\n      if (abs(diff) < BOUNCE_DIFF_THRESHOLD) {\n        scroll(getLimit(exceededLimit(true)), BOUNCE_DURATION, false, callback, true);\n      }\n    }\n  }\n  function clear() {\n    if (interval) {\n      interval.cancel();\n    }\n  }\n  function cancel() {\n    if (interval && !interval.isPaused()) {\n      clear();\n      onEnd();\n    }\n  }\n  function easing(t) {\n    var easingFunc = options.easingFunc;\n    return easingFunc ? easingFunc(t) : 1 - Math.pow(1 - t, 4);\n  }\n  return {\n    mount,\n    destroy: clear,\n    scroll,\n    cancel\n  };\n}\nvar SCROLL_LISTENER_OPTIONS = {\n  passive: false,\n  capture: true\n};\nfunction Drag(Splide22, Components2, options) {\n  var _EventInterface9 = EventInterface(Splide22), on = _EventInterface9.on, emit = _EventInterface9.emit, bind = _EventInterface9.bind, unbind = _EventInterface9.unbind;\n  var state = Splide22.state;\n  var Move2 = Components2.Move, Scroll2 = Components2.Scroll, Controller2 = Components2.Controller, track = Components2.Elements.track, reduce = Components2.Media.reduce;\n  var _Components2$Directio2 = Components2.Direction, resolve = _Components2$Directio2.resolve, orient = _Components2$Directio2.orient;\n  var getPosition = Move2.getPosition, exceededLimit = Move2.exceededLimit;\n  var basePosition;\n  var baseEvent;\n  var prevBaseEvent;\n  var isFree;\n  var dragging;\n  var exceeded = false;\n  var clickPrevented;\n  var disabled;\n  var target;\n  function mount() {\n    bind(track, POINTER_MOVE_EVENTS, noop, SCROLL_LISTENER_OPTIONS);\n    bind(track, POINTER_UP_EVENTS, noop, SCROLL_LISTENER_OPTIONS);\n    bind(track, POINTER_DOWN_EVENTS, onPointerDown, SCROLL_LISTENER_OPTIONS);\n    bind(track, \"click\", onClick, {\n      capture: true\n    });\n    bind(track, \"dragstart\", prevent);\n    on([EVENT_MOUNTED, EVENT_UPDATED], init);\n  }\n  function init() {\n    var drag = options.drag;\n    disable(!drag);\n    isFree = drag === \"free\";\n  }\n  function onPointerDown(e) {\n    clickPrevented = false;\n    if (!disabled) {\n      var isTouch = isTouchEvent(e);\n      if (isDraggable(e.target) && (isTouch || !e.button)) {\n        if (!Controller2.isBusy()) {\n          target = isTouch ? track : window;\n          dragging = state.is([MOVING, SCROLLING]);\n          prevBaseEvent = null;\n          bind(target, POINTER_MOVE_EVENTS, onPointerMove, SCROLL_LISTENER_OPTIONS);\n          bind(target, POINTER_UP_EVENTS, onPointerUp, SCROLL_LISTENER_OPTIONS);\n          Move2.cancel();\n          Scroll2.cancel();\n          save(e);\n        } else {\n          prevent(e, true);\n        }\n      }\n    }\n  }\n  function onPointerMove(e) {\n    if (!state.is(DRAGGING)) {\n      state.set(DRAGGING);\n      emit(EVENT_DRAG);\n    }\n    if (e.cancelable) {\n      if (dragging) {\n        Move2.translate(basePosition + constrain(diffCoord(e)));\n        var expired = diffTime(e) > LOG_INTERVAL;\n        var hasExceeded = exceeded !== (exceeded = exceededLimit());\n        if (expired || hasExceeded) {\n          save(e);\n        }\n        clickPrevented = true;\n        emit(EVENT_DRAGGING);\n        prevent(e);\n      } else if (isSliderDirection(e)) {\n        dragging = shouldStart(e);\n        prevent(e);\n      }\n    }\n  }\n  function onPointerUp(e) {\n    if (state.is(DRAGGING)) {\n      state.set(IDLE);\n      emit(EVENT_DRAGGED);\n    }\n    if (dragging) {\n      move(e);\n      prevent(e);\n    }\n    unbind(target, POINTER_MOVE_EVENTS, onPointerMove);\n    unbind(target, POINTER_UP_EVENTS, onPointerUp);\n    dragging = false;\n  }\n  function onClick(e) {\n    if (!disabled && clickPrevented) {\n      prevent(e, true);\n    }\n  }\n  function save(e) {\n    prevBaseEvent = baseEvent;\n    baseEvent = e;\n    basePosition = getPosition();\n  }\n  function move(e) {\n    var velocity = computeVelocity(e);\n    var destination = computeDestination(velocity);\n    var rewind = options.rewind && options.rewindByDrag;\n    reduce(false);\n    if (isFree) {\n      Controller2.scroll(destination, 0, options.snap);\n    } else if (Splide22.is(FADE)) {\n      Controller2.go(orient(sign(velocity)) < 0 ? rewind ? \"<\" : \"-\" : rewind ? \">\" : \"+\");\n    } else if (Splide22.is(SLIDE) && exceeded && rewind) {\n      Controller2.go(exceededLimit(true) ? \">\" : \"<\");\n    } else {\n      Controller2.go(Controller2.toDest(destination), true);\n    }\n    reduce(true);\n  }\n  function shouldStart(e) {\n    var thresholds = options.dragMinThreshold;\n    var isObj = isObject(thresholds);\n    var mouse = isObj && thresholds.mouse || 0;\n    var touch = (isObj ? thresholds.touch : +thresholds) || 10;\n    return abs(diffCoord(e)) > (isTouchEvent(e) ? touch : mouse);\n  }\n  function isSliderDirection(e) {\n    return abs(diffCoord(e)) > abs(diffCoord(e, true));\n  }\n  function computeVelocity(e) {\n    if (Splide22.is(LOOP) || !exceeded) {\n      var time = diffTime(e);\n      if (time && time < LOG_INTERVAL) {\n        return diffCoord(e) / time;\n      }\n    }\n    return 0;\n  }\n  function computeDestination(velocity) {\n    return getPosition() + sign(velocity) * min(abs(velocity) * (options.flickPower || 600), isFree ? Infinity : Components2.Layout.listSize() * (options.flickMaxPages || 1));\n  }\n  function diffCoord(e, orthogonal) {\n    return coordOf(e, orthogonal) - coordOf(getBaseEvent(e), orthogonal);\n  }\n  function diffTime(e) {\n    return timeOf(e) - timeOf(getBaseEvent(e));\n  }\n  function getBaseEvent(e) {\n    return baseEvent === e && prevBaseEvent || baseEvent;\n  }\n  function coordOf(e, orthogonal) {\n    return (isTouchEvent(e) ? e.changedTouches[0] : e)[\"page\" + resolve(orthogonal ? \"Y\" : \"X\")];\n  }\n  function constrain(diff) {\n    return diff / (exceeded && Splide22.is(SLIDE) ? FRICTION : 1);\n  }\n  function isDraggable(target2) {\n    var noDrag = options.noDrag;\n    return !matches(target2, \".\" + CLASS_PAGINATION_PAGE + \", .\" + CLASS_ARROW) && (!noDrag || !matches(target2, noDrag));\n  }\n  function isTouchEvent(e) {\n    return typeof TouchEvent !== \"undefined\" && e instanceof TouchEvent;\n  }\n  function isDragging() {\n    return dragging;\n  }\n  function disable(value) {\n    disabled = value;\n  }\n  return {\n    mount,\n    disable,\n    isDragging\n  };\n}\nvar NORMALIZATION_MAP = {\n  Spacebar: \" \",\n  Right: ARROW_RIGHT,\n  Left: ARROW_LEFT,\n  Up: ARROW_UP,\n  Down: ARROW_DOWN\n};\nfunction normalizeKey(key) {\n  key = isString(key) ? key : key.key;\n  return NORMALIZATION_MAP[key] || key;\n}\nvar KEYBOARD_EVENT = \"keydown\";\nfunction Keyboard(Splide22, Components2, options) {\n  var _EventInterface10 = EventInterface(Splide22), on = _EventInterface10.on, bind = _EventInterface10.bind, unbind = _EventInterface10.unbind;\n  var root = Splide22.root;\n  var resolve = Components2.Direction.resolve;\n  var target;\n  var disabled;\n  function mount() {\n    init();\n    on(EVENT_UPDATED, destroy);\n    on(EVENT_UPDATED, init);\n    on(EVENT_MOVE, onMove);\n  }\n  function init() {\n    var keyboard = options.keyboard;\n    if (keyboard) {\n      target = keyboard === \"global\" ? window : root;\n      bind(target, KEYBOARD_EVENT, onKeydown);\n    }\n  }\n  function destroy() {\n    unbind(target, KEYBOARD_EVENT);\n  }\n  function disable(value) {\n    disabled = value;\n  }\n  function onMove() {\n    var _disabled = disabled;\n    disabled = true;\n    nextTick(function() {\n      disabled = _disabled;\n    });\n  }\n  function onKeydown(e) {\n    if (!disabled) {\n      var key = normalizeKey(e);\n      if (key === resolve(ARROW_LEFT)) {\n        Splide22.go(\"<\");\n      } else if (key === resolve(ARROW_RIGHT)) {\n        Splide22.go(\">\");\n      }\n    }\n  }\n  return {\n    mount,\n    destroy,\n    disable\n  };\n}\nvar SRC_DATA_ATTRIBUTE = DATA_ATTRIBUTE + \"-lazy\";\nvar SRCSET_DATA_ATTRIBUTE = SRC_DATA_ATTRIBUTE + \"-srcset\";\nvar IMAGE_SELECTOR = \"[\" + SRC_DATA_ATTRIBUTE + \"], [\" + SRCSET_DATA_ATTRIBUTE + \"]\";\nfunction LazyLoad(Splide22, Components2, options) {\n  var _EventInterface11 = EventInterface(Splide22), on = _EventInterface11.on, off = _EventInterface11.off, bind = _EventInterface11.bind, emit = _EventInterface11.emit;\n  var isSequential = options.lazyLoad === \"sequential\";\n  var events = [EVENT_MOVED, EVENT_SCROLLED];\n  var entries = [];\n  function mount() {\n    if (options.lazyLoad) {\n      init();\n      on(EVENT_REFRESH, init);\n    }\n  }\n  function init() {\n    empty(entries);\n    register();\n    if (isSequential) {\n      loadNext();\n    } else {\n      off(events);\n      on(events, check);\n      check();\n    }\n  }\n  function register() {\n    Components2.Slides.forEach(function(Slide2) {\n      queryAll(Slide2.slide, IMAGE_SELECTOR).forEach(function(img) {\n        var src = getAttribute(img, SRC_DATA_ATTRIBUTE);\n        var srcset = getAttribute(img, SRCSET_DATA_ATTRIBUTE);\n        if (src !== img.src || srcset !== img.srcset) {\n          var className = options.classes.spinner;\n          var parent = img.parentElement;\n          var spinner = child(parent, \".\" + className) || create(\"span\", className, parent);\n          entries.push([img, Slide2, spinner]);\n          img.src || display(img, \"none\");\n        }\n      });\n    });\n  }\n  function check() {\n    entries = entries.filter(function(data) {\n      var distance = options.perPage * ((options.preloadPages || 1) + 1) - 1;\n      return data[1].isWithin(Splide22.index, distance) ? load(data) : true;\n    });\n    entries.length || off(events);\n  }\n  function load(data) {\n    var img = data[0];\n    addClass(data[1].slide, CLASS_LOADING);\n    bind(img, \"load error\", apply(onLoad, data));\n    setAttribute(img, \"src\", getAttribute(img, SRC_DATA_ATTRIBUTE));\n    setAttribute(img, \"srcset\", getAttribute(img, SRCSET_DATA_ATTRIBUTE));\n    removeAttribute(img, SRC_DATA_ATTRIBUTE);\n    removeAttribute(img, SRCSET_DATA_ATTRIBUTE);\n  }\n  function onLoad(data, e) {\n    var img = data[0], Slide2 = data[1];\n    removeClass(Slide2.slide, CLASS_LOADING);\n    if (e.type !== \"error\") {\n      remove(data[2]);\n      display(img, \"\");\n      emit(EVENT_LAZYLOAD_LOADED, img, Slide2);\n      emit(EVENT_RESIZE);\n    }\n    isSequential && loadNext();\n  }\n  function loadNext() {\n    entries.length && load(entries.shift());\n  }\n  return {\n    mount,\n    destroy: apply(empty, entries),\n    check\n  };\n}\nfunction Pagination(Splide22, Components2, options) {\n  var event = EventInterface(Splide22);\n  var on = event.on, emit = event.emit, bind = event.bind;\n  var Slides2 = Components2.Slides, Elements2 = Components2.Elements, Controller2 = Components2.Controller;\n  var hasFocus = Controller2.hasFocus, getIndex = Controller2.getIndex, go = Controller2.go;\n  var resolve = Components2.Direction.resolve;\n  var placeholder = Elements2.pagination;\n  var items = [];\n  var list;\n  var paginationClasses;\n  function mount() {\n    destroy();\n    on([EVENT_UPDATED, EVENT_REFRESH, EVENT_END_INDEX_CHANGED], mount);\n    var enabled = options.pagination;\n    placeholder && display(placeholder, enabled ? \"\" : \"none\");\n    if (enabled) {\n      on([EVENT_MOVE, EVENT_SCROLL, EVENT_SCROLLED], update);\n      createPagination();\n      update();\n      emit(EVENT_PAGINATION_MOUNTED, {\n        list,\n        items\n      }, getAt(Splide22.index));\n    }\n  }\n  function destroy() {\n    if (list) {\n      remove(placeholder ? slice(list.children) : list);\n      removeClass(list, paginationClasses);\n      empty(items);\n      list = null;\n    }\n    event.destroy();\n  }\n  function createPagination() {\n    var length = Splide22.length;\n    var classes = options.classes, i18n = options.i18n, perPage = options.perPage;\n    var max2 = hasFocus() ? Controller2.getEnd() + 1 : ceil(length / perPage);\n    list = placeholder || create(\"ul\", classes.pagination, Elements2.track.parentElement);\n    addClass(list, paginationClasses = CLASS_PAGINATION + \"--\" + getDirection());\n    setAttribute(list, ROLE, \"tablist\");\n    setAttribute(list, ARIA_LABEL, i18n.select);\n    setAttribute(list, ARIA_ORIENTATION, getDirection() === TTB ? \"vertical\" : \"\");\n    for (var i = 0; i < max2; i++) {\n      var li = create(\"li\", null, list);\n      var button = create(\"button\", {\n        class: classes.page,\n        type: \"button\"\n      }, li);\n      var controls = Slides2.getIn(i).map(function(Slide2) {\n        return Slide2.slide.id;\n      });\n      var text = !hasFocus() && perPage > 1 ? i18n.pageX : i18n.slideX;\n      bind(button, \"click\", apply(onClick, i));\n      if (options.paginationKeyboard) {\n        bind(button, \"keydown\", apply(onKeydown, i));\n      }\n      setAttribute(li, ROLE, \"presentation\");\n      setAttribute(button, ROLE, \"tab\");\n      setAttribute(button, ARIA_CONTROLS, controls.join(\" \"));\n      setAttribute(button, ARIA_LABEL, format(text, i + 1));\n      setAttribute(button, TAB_INDEX, -1);\n      items.push({\n        li,\n        button,\n        page: i\n      });\n    }\n  }\n  function onClick(page) {\n    go(\">\" + page, true);\n  }\n  function onKeydown(page, e) {\n    var length = items.length;\n    var key = normalizeKey(e);\n    var dir = getDirection();\n    var nextPage = -1;\n    if (key === resolve(ARROW_RIGHT, false, dir)) {\n      nextPage = ++page % length;\n    } else if (key === resolve(ARROW_LEFT, false, dir)) {\n      nextPage = (--page + length) % length;\n    } else if (key === \"Home\") {\n      nextPage = 0;\n    } else if (key === \"End\") {\n      nextPage = length - 1;\n    }\n    var item = items[nextPage];\n    if (item) {\n      focus(item.button);\n      go(\">\" + nextPage);\n      prevent(e, true);\n    }\n  }\n  function getDirection() {\n    return options.paginationDirection || options.direction;\n  }\n  function getAt(index) {\n    return items[Controller2.toPage(index)];\n  }\n  function update() {\n    var prev = getAt(getIndex(true));\n    var curr = getAt(getIndex());\n    if (prev) {\n      var button = prev.button;\n      removeClass(button, CLASS_ACTIVE);\n      removeAttribute(button, ARIA_SELECTED);\n      setAttribute(button, TAB_INDEX, -1);\n    }\n    if (curr) {\n      var _button = curr.button;\n      addClass(_button, CLASS_ACTIVE);\n      setAttribute(_button, ARIA_SELECTED, true);\n      setAttribute(_button, TAB_INDEX, \"\");\n    }\n    emit(EVENT_PAGINATION_UPDATED, {\n      list,\n      items\n    }, prev, curr);\n  }\n  return {\n    items,\n    mount,\n    destroy,\n    getAt,\n    update\n  };\n}\nvar TRIGGER_KEYS = [\" \", \"Enter\"];\nfunction Sync(Splide22, Components2, options) {\n  var isNavigation = options.isNavigation, slideFocus = options.slideFocus;\n  var events = [];\n  function mount() {\n    Splide22.splides.forEach(function(target) {\n      if (!target.isParent) {\n        sync(Splide22, target.splide);\n        sync(target.splide, Splide22);\n      }\n    });\n    if (isNavigation) {\n      navigate();\n    }\n  }\n  function destroy() {\n    events.forEach(function(event) {\n      event.destroy();\n    });\n    empty(events);\n  }\n  function remount() {\n    destroy();\n    mount();\n  }\n  function sync(splide, target) {\n    var event = EventInterface(splide);\n    event.on(EVENT_MOVE, function(index, prev, dest) {\n      target.go(target.is(LOOP) ? dest : index);\n    });\n    events.push(event);\n  }\n  function navigate() {\n    var event = EventInterface(Splide22);\n    var on = event.on;\n    on(EVENT_CLICK, onClick);\n    on(EVENT_SLIDE_KEYDOWN, onKeydown);\n    on([EVENT_MOUNTED, EVENT_UPDATED], update);\n    events.push(event);\n    event.emit(EVENT_NAVIGATION_MOUNTED, Splide22.splides);\n  }\n  function update() {\n    setAttribute(Components2.Elements.list, ARIA_ORIENTATION, options.direction === TTB ? \"vertical\" : \"\");\n  }\n  function onClick(Slide2) {\n    Splide22.go(Slide2.index);\n  }\n  function onKeydown(Slide2, e) {\n    if (includes(TRIGGER_KEYS, normalizeKey(e))) {\n      onClick(Slide2);\n      prevent(e);\n    }\n  }\n  return {\n    setup: apply(Components2.Media.set, {\n      slideFocus: isUndefined(slideFocus) ? isNavigation : slideFocus\n    }, true),\n    mount,\n    destroy,\n    remount\n  };\n}\nfunction Wheel(Splide22, Components2, options) {\n  var _EventInterface12 = EventInterface(Splide22), bind = _EventInterface12.bind;\n  var lastTime = 0;\n  function mount() {\n    if (options.wheel) {\n      bind(Components2.Elements.track, \"wheel\", onWheel, SCROLL_LISTENER_OPTIONS);\n    }\n  }\n  function onWheel(e) {\n    if (e.cancelable) {\n      var deltaY = e.deltaY;\n      var backwards = deltaY < 0;\n      var timeStamp = timeOf(e);\n      var _min = options.wheelMinThreshold || 0;\n      var sleep = options.wheelSleep || 0;\n      if (abs(deltaY) > _min && timeStamp - lastTime > sleep) {\n        Splide22.go(backwards ? \"<\" : \">\");\n        lastTime = timeStamp;\n      }\n      shouldPrevent(backwards) && prevent(e);\n    }\n  }\n  function shouldPrevent(backwards) {\n    return !options.releaseWheel || Splide22.state.is(MOVING) || Components2.Controller.getAdjacent(backwards) !== -1;\n  }\n  return {\n    mount\n  };\n}\nvar SR_REMOVAL_DELAY = 90;\nfunction Live(Splide22, Components2, options) {\n  var _EventInterface13 = EventInterface(Splide22), on = _EventInterface13.on;\n  var track = Components2.Elements.track;\n  var enabled = options.live && !options.isNavigation;\n  var sr = create(\"span\", CLASS_SR);\n  var interval = RequestInterval(SR_REMOVAL_DELAY, apply(toggle, false));\n  function mount() {\n    if (enabled) {\n      disable(!Components2.Autoplay.isPaused());\n      setAttribute(track, ARIA_ATOMIC, true);\n      sr.textContent = \"\\u2026\";\n      on(EVENT_AUTOPLAY_PLAY, apply(disable, true));\n      on(EVENT_AUTOPLAY_PAUSE, apply(disable, false));\n      on([EVENT_MOVED, EVENT_SCROLLED], apply(toggle, true));\n    }\n  }\n  function toggle(active) {\n    setAttribute(track, ARIA_BUSY, active);\n    if (active) {\n      append(track, sr);\n      interval.start();\n    } else {\n      remove(sr);\n      interval.cancel();\n    }\n  }\n  function destroy() {\n    removeAttribute(track, [ARIA_LIVE, ARIA_ATOMIC, ARIA_BUSY]);\n    remove(sr);\n  }\n  function disable(disabled) {\n    if (enabled) {\n      setAttribute(track, ARIA_LIVE, disabled ? \"off\" : \"polite\");\n    }\n  }\n  return {\n    mount,\n    disable,\n    destroy\n  };\n}\nvar ComponentConstructors = /* @__PURE__ */ Object.freeze({\n  __proto__: null,\n  Media,\n  Direction,\n  Elements,\n  Slides,\n  Layout,\n  Clones,\n  Move,\n  Controller,\n  Arrows,\n  Autoplay,\n  Cover,\n  Scroll,\n  Drag,\n  Keyboard,\n  LazyLoad,\n  Pagination,\n  Sync,\n  Wheel,\n  Live\n});\nvar I18N = {\n  prev: \"Previous slide\",\n  next: \"Next slide\",\n  first: \"Go to first slide\",\n  last: \"Go to last slide\",\n  slideX: \"Go to slide %s\",\n  pageX: \"Go to page %s\",\n  play: \"Start autoplay\",\n  pause: \"Pause autoplay\",\n  carousel: \"carousel\",\n  slide: \"slide\",\n  select: \"Select a slide to show\",\n  slideLabel: \"%s of %s\"\n};\nvar DEFAULTS = {\n  type: \"slide\",\n  role: \"region\",\n  speed: 400,\n  perPage: 1,\n  cloneStatus: true,\n  arrows: true,\n  pagination: true,\n  paginationKeyboard: true,\n  interval: 5e3,\n  pauseOnHover: true,\n  pauseOnFocus: true,\n  resetProgress: true,\n  easing: \"cubic-bezier(0.25, 1, 0.5, 1)\",\n  drag: true,\n  direction: \"ltr\",\n  trimSpace: true,\n  focusableNodes: \"a, button, textarea, input, select, iframe\",\n  live: true,\n  classes: CLASSES,\n  i18n: I18N,\n  reducedMotion: {\n    speed: 0,\n    rewindSpeed: 0,\n    autoplay: \"pause\"\n  }\n};\nfunction Fade(Splide22, Components2, options) {\n  var Slides2 = Components2.Slides;\n  function mount() {\n    EventInterface(Splide22).on([EVENT_MOUNTED, EVENT_REFRESH], init);\n  }\n  function init() {\n    Slides2.forEach(function(Slide2) {\n      Slide2.style(\"transform\", \"translateX(-\" + 100 * Slide2.index + \"%)\");\n    });\n  }\n  function start(index, done) {\n    Slides2.style(\"transition\", \"opacity \" + options.speed + \"ms \" + options.easing);\n    nextTick(done);\n  }\n  return {\n    mount,\n    start,\n    cancel: noop\n  };\n}\nfunction Slide(Splide22, Components2, options) {\n  var Move2 = Components2.Move, Controller2 = Components2.Controller, Scroll2 = Components2.Scroll;\n  var list = Components2.Elements.list;\n  var transition = apply(style, list, \"transition\");\n  var endCallback;\n  function mount() {\n    EventInterface(Splide22).bind(list, \"transitionend\", function(e) {\n      if (e.target === list && endCallback) {\n        cancel();\n        endCallback();\n      }\n    });\n  }\n  function start(index, done) {\n    var destination = Move2.toPosition(index, true);\n    var position = Move2.getPosition();\n    var speed = getSpeed(index);\n    if (abs(destination - position) >= 1 && speed >= 1) {\n      if (options.useScroll) {\n        Scroll2.scroll(destination, speed, false, done);\n      } else {\n        transition(\"transform \" + speed + \"ms \" + options.easing);\n        Move2.translate(destination, true);\n        endCallback = done;\n      }\n    } else {\n      Move2.jump(index);\n      done();\n    }\n  }\n  function cancel() {\n    transition(\"\");\n    Scroll2.cancel();\n  }\n  function getSpeed(index) {\n    var rewindSpeed = options.rewindSpeed;\n    if (Splide22.is(SLIDE) && rewindSpeed) {\n      var prev = Controller2.getIndex(true);\n      var end = Controller2.getEnd();\n      if (prev === 0 && index >= end || prev >= end && index === 0) {\n        return rewindSpeed;\n      }\n    }\n    return options.speed;\n  }\n  return {\n    mount,\n    start,\n    cancel\n  };\n}\nvar _Splide = /* @__PURE__ */ function() {\n  function _Splide2(target, options) {\n    this.event = EventInterface();\n    this.Components = {};\n    this.state = State(CREATED);\n    this.splides = [];\n    this._o = {};\n    this._E = {};\n    var root = isString(target) ? query(document, target) : target;\n    assert(root, root + \" is invalid.\");\n    this.root = root;\n    options = merge({\n      label: getAttribute(root, ARIA_LABEL) || \"\",\n      labelledby: getAttribute(root, ARIA_LABELLEDBY) || \"\"\n    }, DEFAULTS, _Splide2.defaults, options || {});\n    try {\n      merge(options, JSON.parse(getAttribute(root, DATA_ATTRIBUTE)));\n    } catch (e) {\n      assert(false, \"Invalid JSON\");\n    }\n    this._o = Object.create(merge({}, options));\n  }\n  var _proto = _Splide2.prototype;\n  _proto.mount = function mount(Extensions, Transition) {\n    var _this = this;\n    var state = this.state, Components2 = this.Components;\n    assert(state.is([CREATED, DESTROYED]), \"Already mounted!\");\n    state.set(CREATED);\n    this._C = Components2;\n    this._T = Transition || this._T || (this.is(FADE) ? Fade : Slide);\n    this._E = Extensions || this._E;\n    var Constructors = assign({}, ComponentConstructors, this._E, {\n      Transition: this._T\n    });\n    forOwn(Constructors, function(Component, key) {\n      var component = Component(_this, Components2, _this._o);\n      Components2[key] = component;\n      component.setup && component.setup();\n    });\n    forOwn(Components2, function(component) {\n      component.mount && component.mount();\n    });\n    this.emit(EVENT_MOUNTED);\n    addClass(this.root, CLASS_INITIALIZED);\n    state.set(IDLE);\n    this.emit(EVENT_READY);\n    return this;\n  };\n  _proto.sync = function sync(splide) {\n    this.splides.push({\n      splide\n    });\n    splide.splides.push({\n      splide: this,\n      isParent: true\n    });\n    if (this.state.is(IDLE)) {\n      this._C.Sync.remount();\n      splide.Components.Sync.remount();\n    }\n    return this;\n  };\n  _proto.go = function go(control) {\n    this._C.Controller.go(control);\n    return this;\n  };\n  _proto.on = function on(events, callback) {\n    this.event.on(events, callback);\n    return this;\n  };\n  _proto.off = function off(events) {\n    this.event.off(events);\n    return this;\n  };\n  _proto.emit = function emit(event) {\n    var _this$event;\n    (_this$event = this.event).emit.apply(_this$event, [event].concat(slice(arguments, 1)));\n    return this;\n  };\n  _proto.add = function add(slides, index) {\n    this._C.Slides.add(slides, index);\n    return this;\n  };\n  _proto.remove = function remove2(matcher) {\n    this._C.Slides.remove(matcher);\n    return this;\n  };\n  _proto.is = function is(type) {\n    return this._o.type === type;\n  };\n  _proto.refresh = function refresh() {\n    this.emit(EVENT_REFRESH);\n    return this;\n  };\n  _proto.destroy = function destroy(completely) {\n    if (completely === void 0) {\n      completely = true;\n    }\n    var event = this.event, state = this.state;\n    if (state.is(CREATED)) {\n      EventInterface(this).on(EVENT_READY, this.destroy.bind(this, completely));\n    } else {\n      forOwn(this._C, function(component) {\n        component.destroy && component.destroy(completely);\n      }, true);\n      event.emit(EVENT_DESTROY);\n      event.destroy();\n      completely && empty(this.splides);\n      state.set(DESTROYED);\n    }\n    return this;\n  };\n  _createClass(_Splide2, [{\n    key: \"options\",\n    get: function get() {\n      return this._o;\n    },\n    set: function set(options) {\n      this._C.Media.set(options, true, true);\n    }\n  }, {\n    key: \"length\",\n    get: function get() {\n      return this._C.Slides.getLength(true);\n    }\n  }, {\n    key: \"index\",\n    get: function get() {\n      return this._C.Controller.getIndex();\n    }\n  }]);\n  return _Splide2;\n}();\nvar Splide = _Splide;\nSplide.defaults = {};\nSplide.STATES = STATES;\n\n// src/js/components/Splide/Splide.tsx\nvar import_react2 = __toESM(require(\"react\"));\n\n// src/js/constants/events.ts\nvar EVENTS = [\n  [EVENT_MOUNTED, \"onMounted\"],\n  [EVENT_READY, \"onReady\"],\n  [EVENT_MOVE, \"onMove\"],\n  [EVENT_MOVED, \"onMoved\"],\n  [EVENT_CLICK, \"onClick\"],\n  [EVENT_ACTIVE, \"onActive\"],\n  [EVENT_INACTIVE, \"onInactive\"],\n  [EVENT_VISIBLE, \"onVisible\"],\n  [EVENT_HIDDEN, \"onHidden\"],\n  [EVENT_REFRESH, \"onRefresh\"],\n  [EVENT_UPDATED, \"onUpdated\"],\n  [EVENT_RESIZE, \"onResize\"],\n  [EVENT_RESIZED, \"onResized\"],\n  [EVENT_DRAG, \"onDrag\"],\n  [EVENT_DRAGGING, \"onDragging\"],\n  [EVENT_DRAGGED, \"onDragged\"],\n  [EVENT_SCROLL, \"onScroll\"],\n  [EVENT_SCROLLED, \"onScrolled\"],\n  [EVENT_DESTROY, \"onDestroy\"],\n  [EVENT_ARROWS_MOUNTED, \"onArrowsMounted\"],\n  [EVENT_ARROWS_UPDATED, \"onArrowsUpdated\"],\n  [EVENT_PAGINATION_MOUNTED, \"onPaginationMounted\"],\n  [EVENT_PAGINATION_UPDATED, \"onPaginationUpdated\"],\n  [EVENT_NAVIGATION_MOUNTED, \"onNavigationMounted\"],\n  [EVENT_AUTOPLAY_PLAY, \"onAutoplayPlay\"],\n  [EVENT_AUTOPLAY_PLAYING, \"onAutoplayPlaying\"],\n  [EVENT_AUTOPLAY_PAUSE, \"onAutoplayPause\"],\n  [EVENT_LAZYLOAD_LOADED, \"onLazyLoadLoaded\"]\n];\n\n// src/js/utils/classNames/classNames.ts\nfunction classNames(...classes) {\n  return classes.filter(Boolean).join(\" \");\n}\n\n// src/js/utils/isObject/isObject.ts\nfunction isObject2(subject) {\n  return subject !== null && typeof subject === \"object\";\n}\n\n// src/js/utils/isEqualDeep/isEqualDeep.ts\nfunction isEqualDeep(subject1, subject2) {\n  if (Array.isArray(subject1) && Array.isArray(subject2)) {\n    return subject1.length === subject2.length && !subject1.some((elm, index) => !isEqualDeep(elm, subject2[index]));\n  }\n  if (isObject2(subject1) && isObject2(subject2)) {\n    const keys1 = Object.keys(subject1);\n    const keys2 = Object.keys(subject2);\n    return keys1.length === keys2.length && !keys1.some((key) => {\n      return !Object.prototype.hasOwnProperty.call(subject2, key) || !isEqualDeep(subject1[key], subject2[key]);\n    });\n  }\n  return subject1 === subject2;\n}\n\n// src/js/utils/isEqualShallow/isEqualShallow.ts\nfunction isEqualShallow(array1, array2) {\n  return array1.length === array2.length && !array1.some((elm, index) => elm !== array2[index]);\n}\n\n// src/js/utils/forOwn/forOwn.ts\nfunction forOwn2(object, iteratee) {\n  if (object) {\n    const keys = Object.keys(object);\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\n// src/js/utils/merge/merge.ts\nfunction merge2(object, source) {\n  const merged = object;\n  forOwn2(source, (value, key) => {\n    if (Array.isArray(value)) {\n      merged[key] = value.slice();\n    } else if (isObject2(value)) {\n      merged[key] = merge2(isObject2(merged[key]) ? merged[key] : {}, value);\n    } else {\n      merged[key] = value;\n    }\n  });\n  return merged;\n}\n\n// src/js/components/SplideTrack/SplideTrack.tsx\nvar import_react = __toESM(require(\"react\"));\nvar SplideTrack = ({ children: children2, className, ...props }) => {\n  return /* @__PURE__ */ import_react.default.createElement(\"div\", {\n    className: classNames(\"splide__track\", className),\n    ...props\n  }, /* @__PURE__ */ import_react.default.createElement(\"ul\", {\n    className: \"splide__list\"\n  }, children2));\n};\n\n// src/js/components/Splide/Splide.tsx\nvar Splide2 = class extends import_react2.default.Component {\n  constructor() {\n    super(...arguments);\n    this.splideRef = import_react2.default.createRef();\n    this.slides = [];\n  }\n  componentDidMount() {\n    const { options, extensions, transition } = this.props;\n    const { current } = this.splideRef;\n    if (current) {\n      this.splide = new Splide(current, options);\n      this.bind(this.splide);\n      this.splide.mount(extensions, transition);\n      this.options = merge2({}, options || {});\n      this.slides = this.getSlides();\n    }\n  }\n  componentWillUnmount() {\n    if (this.splide) {\n      this.splide.destroy();\n      this.splide = void 0;\n    }\n    this.options = void 0;\n    this.slides.length = 0;\n  }\n  componentDidUpdate() {\n    if (!this.splide) {\n      return;\n    }\n    const { options } = this.props;\n    if (options && !isEqualDeep(this.options, options)) {\n      this.splide.options = options;\n      this.options = merge2({}, options);\n    }\n    const newSlides = this.getSlides();\n    if (!isEqualShallow(this.slides, newSlides)) {\n      this.splide.refresh();\n      this.slides = newSlides;\n    }\n  }\n  sync(splide) {\n    var _a;\n    (_a = this.splide) == null ? void 0 : _a.sync(splide);\n  }\n  go(control) {\n    var _a;\n    (_a = this.splide) == null ? void 0 : _a.go(control);\n  }\n  getSlides() {\n    var _a;\n    if (this.splide) {\n      const children2 = (_a = this.splide.Components.Elements) == null ? void 0 : _a.list.children;\n      return children2 && Array.prototype.slice.call(children2) || [];\n    }\n    return [];\n  }\n  bind(splide) {\n    EVENTS.forEach(([event, name]) => {\n      const handler = this.props[name];\n      if (typeof handler === \"function\") {\n        splide.on(event, (...args) => {\n          handler(splide, ...args);\n        });\n      }\n    });\n  }\n  omit(props, keys) {\n    keys.forEach((key) => {\n      if (Object.prototype.hasOwnProperty.call(props, key)) {\n        delete props[key];\n      }\n    });\n    return props;\n  }\n  render() {\n    const { className, tag: Root = \"div\", hasTrack = true, children: children2, ...props } = this.props;\n    return /* @__PURE__ */ import_react2.default.createElement(Root, {\n      className: classNames(\"splide\", className),\n      ref: this.splideRef,\n      ...this.omit(props, [\"options\", ...EVENTS.map((event) => event[1])])\n    }, hasTrack ? /* @__PURE__ */ import_react2.default.createElement(SplideTrack, null, children2) : children2);\n  }\n};\n\n// src/js/components/SplideSlide/SplideSlide.tsx\nvar import_react3 = __toESM(require(\"react\"));\nvar SplideSlide = ({ children: children2, className, ...props }) => {\n  return /* @__PURE__ */ import_react3.default.createElement(\"li\", {\n    className: classNames(\"splide__slide\", className),\n    ...props\n  }, children2);\n};\n/*!\n * Splide.js\n * Version  : 4.1.3\n * License  : MIT\n * Copyright: 2022 Naotoshi Fujita\n */\n"]}