{ "version": 3, "sources": ["external-global-plugin:three", "../../src/js/shaders/index.ts", "../../node_modules/@splidejs/splide/dist/js/splide.esm.js", "../../src/js/classes/Renderer.ts", "../../src/js/classes/Material.ts", "../../src/js/constants/defaults.ts", "../../src/js/utils/clamp/clamp.ts", "../../src/js/classes/ShaderCarousel.ts", "../../src/js/constants/events.ts", "../../src/js/components/BackgroundShaderCarousel.ts", "../../src/js/core/SplideShaderCarousel.ts", "../../src/js/build/browser.ts"], "sourcesContent": ["module.exports = THREE", "export { default as dissolveShader } from './fragment/dissolve.frag?raw';\r\nexport { default as maskShader } from './fragment/mask.frag?raw';\r\nexport { default as wipeShader } from './fragment/wipe.frag?raw';", "function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*!\n * Splide.js\n * Version : 4.1.4\n * License : MIT\n * Copyright: 2022 Naotoshi Fujita\n */\nvar MEDIA_PREFERS_REDUCED_MOTION = \"(prefers-reduced-motion: reduce)\";\nvar CREATED = 1;\nvar MOUNTED = 2;\nvar IDLE = 3;\nvar MOVING = 4;\nvar SCROLLING = 5;\nvar DRAGGING = 6;\nvar DESTROYED = 7;\nvar STATES = {\n CREATED: CREATED,\n MOUNTED: MOUNTED,\n IDLE: IDLE,\n MOVING: MOVING,\n SCROLLING: SCROLLING,\n DRAGGING: DRAGGING,\n DESTROYED: DESTROYED\n};\n\nfunction empty(array) {\n array.length = 0;\n}\n\nfunction slice(arrayLike, start, end) {\n return Array.prototype.slice.call(arrayLike, start, end);\n}\n\nfunction apply(func) {\n return func.bind.apply(func, [null].concat(slice(arguments, 1)));\n}\n\nvar nextTick = setTimeout;\n\nvar noop = function noop() {};\n\nfunction raf(func) {\n return requestAnimationFrame(func);\n}\n\nfunction typeOf(type, subject) {\n return typeof subject === type;\n}\n\nfunction isObject(subject) {\n return !isNull(subject) && typeOf(\"object\", subject);\n}\n\nvar isArray = Array.isArray;\nvar isFunction = apply(typeOf, \"function\");\nvar isString = apply(typeOf, \"string\");\nvar isUndefined = apply(typeOf, \"undefined\");\n\nfunction isNull(subject) {\n return subject === null;\n}\n\nfunction isHTMLElement(subject) {\n try {\n return subject instanceof (subject.ownerDocument.defaultView || window).HTMLElement;\n } catch (e) {\n return false;\n }\n}\n\nfunction toArray(value) {\n return isArray(value) ? value : [value];\n}\n\nfunction forEach(values, iteratee) {\n toArray(values).forEach(iteratee);\n}\n\nfunction includes(array, value) {\n return array.indexOf(value) > -1;\n}\n\nfunction push(array, items) {\n array.push.apply(array, toArray(items));\n return array;\n}\n\nfunction toggleClass(elm, classes, add) {\n if (elm) {\n forEach(classes, function (name) {\n if (name) {\n elm.classList[add ? \"add\" : \"remove\"](name);\n }\n });\n }\n}\n\nfunction addClass(elm, classes) {\n toggleClass(elm, isString(classes) ? classes.split(\" \") : classes, true);\n}\n\nfunction append(parent, children) {\n forEach(children, parent.appendChild.bind(parent));\n}\n\nfunction before(nodes, ref) {\n forEach(nodes, function (node) {\n var parent = (ref || node).parentNode;\n\n if (parent) {\n parent.insertBefore(node, ref);\n }\n });\n}\n\nfunction matches(elm, selector) {\n return isHTMLElement(elm) && (elm[\"msMatchesSelector\"] || elm.matches).call(elm, selector);\n}\n\nfunction children(parent, selector) {\n var children2 = parent ? slice(parent.children) : [];\n return selector ? children2.filter(function (child) {\n return matches(child, selector);\n }) : children2;\n}\n\nfunction child(parent, selector) {\n return selector ? children(parent, selector)[0] : parent.firstElementChild;\n}\n\nvar ownKeys = Object.keys;\n\nfunction forOwn(object, iteratee, right) {\n if (object) {\n (right ? ownKeys(object).reverse() : ownKeys(object)).forEach(function (key) {\n key !== \"__proto__\" && iteratee(object[key], key);\n });\n }\n\n return object;\n}\n\nfunction assign(object) {\n slice(arguments, 1).forEach(function (source) {\n forOwn(source, function (value, key) {\n object[key] = source[key];\n });\n });\n return object;\n}\n\nfunction merge(object) {\n slice(arguments, 1).forEach(function (source) {\n forOwn(source, function (value, key) {\n if (isArray(value)) {\n object[key] = value.slice();\n } else if (isObject(value)) {\n object[key] = merge({}, isObject(object[key]) ? object[key] : {}, value);\n } else {\n object[key] = value;\n }\n });\n });\n return object;\n}\n\nfunction omit(object, keys) {\n forEach(keys || ownKeys(object), function (key) {\n delete object[key];\n });\n}\n\nfunction removeAttribute(elms, attrs) {\n forEach(elms, function (elm) {\n forEach(attrs, function (attr) {\n elm && elm.removeAttribute(attr);\n });\n });\n}\n\nfunction setAttribute(elms, attrs, value) {\n if (isObject(attrs)) {\n forOwn(attrs, function (value2, name) {\n setAttribute(elms, name, value2);\n });\n } else {\n forEach(elms, function (elm) {\n isNull(value) || value === \"\" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));\n });\n }\n}\n\nfunction create(tag, attrs, parent) {\n var elm = document.createElement(tag);\n\n if (attrs) {\n isString(attrs) ? addClass(elm, attrs) : setAttribute(elm, attrs);\n }\n\n parent && append(parent, elm);\n return elm;\n}\n\nfunction style(elm, prop, value) {\n if (isUndefined(value)) {\n return getComputedStyle(elm)[prop];\n }\n\n if (!isNull(value)) {\n elm.style[prop] = \"\" + value;\n }\n}\n\nfunction display(elm, display2) {\n style(elm, \"display\", display2);\n}\n\nfunction focus(elm) {\n elm[\"setActive\"] && elm[\"setActive\"]() || elm.focus({\n preventScroll: true\n });\n}\n\nfunction getAttribute(elm, attr) {\n return elm.getAttribute(attr);\n}\n\nfunction hasClass(elm, className) {\n return elm && elm.classList.contains(className);\n}\n\nfunction rect(target) {\n return target.getBoundingClientRect();\n}\n\nfunction remove(nodes) {\n forEach(nodes, function (node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n });\n}\n\nfunction parseHtml(html) {\n return child(new DOMParser().parseFromString(html, \"text/html\").body);\n}\n\nfunction prevent(e, stopPropagation) {\n e.preventDefault();\n\n if (stopPropagation) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n}\n\nfunction query(parent, selector) {\n return parent && parent.querySelector(selector);\n}\n\nfunction queryAll(parent, selector) {\n return selector ? slice(parent.querySelectorAll(selector)) : [];\n}\n\nfunction removeClass(elm, classes) {\n toggleClass(elm, classes, false);\n}\n\nfunction timeOf(e) {\n return e.timeStamp;\n}\n\nfunction unit(value) {\n return isString(value) ? value : value ? value + \"px\" : \"\";\n}\n\nvar PROJECT_CODE = \"splide\";\nvar DATA_ATTRIBUTE = \"data-\" + PROJECT_CODE;\n\nfunction assert(condition, message) {\n if (!condition) {\n throw new Error(\"[\" + PROJECT_CODE + \"] \" + (message || \"\"));\n }\n}\n\nvar min = Math.min,\n max = Math.max,\n floor = Math.floor,\n ceil = Math.ceil,\n abs = Math.abs;\n\nfunction approximatelyEqual(x, y, epsilon) {\n return abs(x - y) < epsilon;\n}\n\nfunction between(number, 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}\n\nfunction clamp(number, x, y) {\n var minimum = min(x, y);\n var maximum = max(x, y);\n return min(max(minimum, number), maximum);\n}\n\nfunction sign(x) {\n return +(x > 0) - +(x < 0);\n}\n\nfunction camelToKebab(string) {\n return string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\nfunction format(string, replacements) {\n forEach(replacements, function (replacement) {\n string = string.replace(\"%s\", \"\" + replacement);\n });\n return string;\n}\n\nfunction pad(number) {\n return number < 10 ? \"0\" + number : \"\" + number;\n}\n\nvar ids = {};\n\nfunction uniqueId(prefix) {\n return \"\" + prefix + pad(ids[prefix] = (ids[prefix] || 0) + 1);\n}\n\nfunction EventBinder() {\n var listeners = [];\n\n function bind(targets, events, callback, options) {\n forEachEvent(targets, events, function (target, event, namespace) {\n var isEventTarget = (\"addEventListener\" in target);\n var remover = isEventTarget ? target.removeEventListener.bind(target, event, callback, options) : target[\"removeListener\"].bind(target, callback);\n isEventTarget ? target.addEventListener(event, callback, options) : target[\"addListener\"](callback);\n listeners.push([target, event, namespace, callback, remover]);\n });\n }\n\n function unbind(targets, events, callback) {\n forEachEvent(targets, events, function (target, event, namespace) {\n listeners = listeners.filter(function (listener) {\n if (listener[0] === target && listener[1] === event && listener[2] === namespace && (!callback || listener[3] === callback)) {\n listener[4]();\n return false;\n }\n\n return true;\n });\n });\n }\n\n function dispatch(target, type, detail) {\n var e;\n var bubbles = true;\n\n if (typeof CustomEvent === \"function\") {\n e = new CustomEvent(type, {\n bubbles: bubbles,\n detail: detail\n });\n } else {\n e = document.createEvent(\"CustomEvent\");\n e.initCustomEvent(type, bubbles, false, detail);\n }\n\n target.dispatchEvent(e);\n return e;\n }\n\n function forEachEvent(targets, events, iteratee) {\n forEach(targets, function (target) {\n target && forEach(events, function (events2) {\n events2.split(\" \").forEach(function (eventNS) {\n var fragment = eventNS.split(\".\");\n iteratee(target, fragment[0], fragment[1]);\n });\n });\n });\n }\n\n function destroy() {\n listeners.forEach(function (data) {\n data[4]();\n });\n empty(listeners);\n }\n\n return {\n bind: bind,\n unbind: unbind,\n dispatch: dispatch,\n destroy: destroy\n };\n}\n\nvar EVENT_MOUNTED = \"mounted\";\nvar EVENT_READY = \"ready\";\nvar EVENT_MOVE = \"move\";\nvar EVENT_MOVED = \"moved\";\nvar EVENT_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\";\n\nfunction EventInterface(Splide2) {\n var bus = Splide2 ? Splide2.event.bus : document.createDocumentFragment();\n var binder = EventBinder();\n\n function on(events, callback) {\n binder.bind(bus, toArray(events).join(\" \"), function (e) {\n callback.apply(callback, isArray(e.detail) ? e.detail : []);\n });\n }\n\n function emit(event) {\n binder.dispatch(bus, event, slice(arguments, 1));\n }\n\n if (Splide2) {\n Splide2.event.on(EVENT_DESTROY, binder.destroy);\n }\n\n return assign(binder, {\n bus: bus,\n on: on,\n off: apply(binder.unbind, bus),\n emit: emit\n });\n}\n\nfunction RequestInterval(interval, onInterval, onUpdate, limit) {\n var now = Date.now;\n var startTime;\n var rate = 0;\n var id;\n var paused = true;\n var count = 0;\n\n function update() {\n if (!paused) {\n rate = interval ? min((now() - startTime) / interval, 1) : 1;\n onUpdate && onUpdate(rate);\n\n if (rate >= 1) {\n onInterval();\n startTime = now();\n\n if (limit && ++count >= limit) {\n return pause();\n }\n }\n\n id = raf(update);\n }\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\n function pause() {\n paused = true;\n }\n\n function rewind() {\n startTime = now();\n rate = 0;\n\n if (onUpdate) {\n onUpdate(rate);\n }\n }\n\n function cancel() {\n id && cancelAnimationFrame(id);\n rate = 0;\n id = 0;\n paused = true;\n }\n\n function set(time) {\n interval = time;\n }\n\n function isPaused() {\n return paused;\n }\n\n return {\n start: start,\n rewind: rewind,\n pause: pause,\n cancel: cancel,\n set: set,\n isPaused: isPaused\n };\n}\n\nfunction State(initialState) {\n var state = initialState;\n\n function set(value) {\n state = value;\n }\n\n function is(states) {\n return includes(toArray(states), state);\n }\n\n return {\n set: set,\n is: is\n };\n}\n\nfunction Throttle(func, duration) {\n var interval = RequestInterval(duration || 0, func, null, 1);\n return function () {\n interval.isPaused() && interval.start();\n };\n}\n\nfunction Media(Splide2, Components2, options) {\n var state = Splide2.state;\n var breakpoints = options.breakpoints || {};\n var reducedMotion = options.reducedMotion || {};\n var binder = EventBinder();\n var queries = [];\n\n function setup() {\n var isMin = options.mediaQuery === \"min\";\n ownKeys(breakpoints).sort(function (n, m) {\n return isMin ? +n - +m : +m - +n;\n }).forEach(function (key) {\n register(breakpoints[key], \"(\" + (isMin ? \"min\" : \"max\") + \"-width:\" + key + \"px)\");\n });\n register(reducedMotion, MEDIA_PREFERS_REDUCED_MOTION);\n update();\n }\n\n function destroy(completely) {\n if (completely) {\n binder.destroy();\n }\n }\n\n function register(options2, query) {\n var queryList = matchMedia(query);\n binder.bind(queryList, \"change\", update);\n queries.push([options2, queryList]);\n }\n\n function update() {\n var destroyed = state.is(DESTROYED);\n var direction = options.direction;\n var merged = queries.reduce(function (merged2, entry) {\n return merge(merged2, entry[1].matches ? entry[0] : {});\n }, {});\n omit(options);\n set(merged);\n\n if (options.destroy) {\n Splide2.destroy(options.destroy === \"completely\");\n } else if (destroyed) {\n destroy(true);\n Splide2.mount();\n } else {\n direction !== options.direction && Splide2.refresh();\n }\n }\n\n function reduce(enable) {\n if (matchMedia(MEDIA_PREFERS_REDUCED_MOTION).matches) {\n enable ? merge(options, reducedMotion) : omit(options, ownKeys(reducedMotion));\n }\n }\n\n function set(opts, base, notify) {\n merge(options, opts);\n base && merge(Object.getPrototypeOf(options), opts);\n\n if (notify || !state.is(CREATED)) {\n Splide2.emit(EVENT_UPDATED, options);\n }\n }\n\n return {\n setup: setup,\n destroy: destroy,\n reduce: reduce,\n set: set\n };\n}\n\nvar ARROW = \"Arrow\";\nvar ARROW_LEFT = ARROW + \"Left\";\nvar ARROW_RIGHT = ARROW + \"Right\";\nvar ARROW_UP = ARROW + \"Up\";\nvar ARROW_DOWN = ARROW + \"Down\";\nvar LTR = \"ltr\";\nvar RTL = \"rtl\";\nvar TTB = \"ttb\";\nvar ORIENTATION_MAP = {\n width: [\"height\"],\n left: [\"top\", \"right\"],\n right: [\"bottom\", \"left\"],\n x: [\"y\"],\n X: [\"Y\"],\n Y: [\"X\"],\n ArrowLeft: [ARROW_UP, ARROW_RIGHT],\n ArrowRight: [ARROW_DOWN, ARROW_LEFT]\n};\n\nfunction Direction(Splide2, Components2, options) {\n function resolve(prop, axisOnly, direction) {\n direction = direction || options.direction;\n var index = direction === RTL && !axisOnly ? 1 : direction === TTB ? 0 : -1;\n return ORIENTATION_MAP[prop] && ORIENTATION_MAP[prop][index] || prop.replace(/width|left|right/i, function (match, offset) {\n var replacement = ORIENTATION_MAP[match.toLowerCase()][index] || match;\n return offset > 0 ? replacement.charAt(0).toUpperCase() + replacement.slice(1) : replacement;\n });\n }\n\n function orient(value) {\n return value * (options.direction === RTL ? 1 : -1);\n }\n\n return {\n resolve: resolve,\n orient: orient\n };\n}\n\nvar ROLE = \"role\";\nvar TAB_INDEX = \"tabindex\";\nvar DISABLED = \"disabled\";\nvar ARIA_PREFIX = \"aria-\";\nvar ARIA_CONTROLS = ARIA_PREFIX + \"controls\";\nvar ARIA_CURRENT = ARIA_PREFIX + \"current\";\nvar ARIA_SELECTED = ARIA_PREFIX + \"selected\";\nvar ARIA_LABEL = ARIA_PREFIX + \"label\";\nvar ARIA_LABELLEDBY = ARIA_PREFIX + \"labelledby\";\nvar ARIA_HIDDEN = ARIA_PREFIX + \"hidden\";\nvar ARIA_ORIENTATION = ARIA_PREFIX + \"orientation\";\nvar ARIA_ROLEDESCRIPTION = ARIA_PREFIX + \"roledescription\";\nvar ARIA_LIVE = ARIA_PREFIX + \"live\";\nvar ARIA_BUSY = ARIA_PREFIX + \"busy\";\nvar ARIA_ATOMIC = ARIA_PREFIX + \"atomic\";\nvar ALL_ATTRIBUTES = [ROLE, TAB_INDEX, DISABLED, ARIA_CONTROLS, ARIA_CURRENT, ARIA_LABEL, ARIA_LABELLEDBY, ARIA_HIDDEN, ARIA_ORIENTATION, ARIA_ROLEDESCRIPTION];\nvar CLASS_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};\n\nfunction closest(from, selector) {\n if (isFunction(from.closest)) {\n return from.closest(selector);\n }\n\n var elm = from;\n\n while (elm && elm.nodeType === 1) {\n if (matches(elm, selector)) {\n break;\n }\n\n elm = elm.parentElement;\n }\n\n return elm;\n}\n\nvar FRICTION = 5;\nvar LOG_INTERVAL = 200;\nvar POINTER_DOWN_EVENTS = \"touchstart mousedown\";\nvar POINTER_MOVE_EVENTS = \"touchmove mousemove\";\nvar POINTER_UP_EVENTS = \"touchend touchcancel mouseup click\";\n\nfunction Elements(Splide2, Components2, options) {\n var _EventInterface = EventInterface(Splide2),\n on = _EventInterface.on,\n bind = _EventInterface.bind;\n\n var root = Splide2.root;\n var i18n = options.i18n;\n var elements = {};\n var slides = [];\n var rootClasses = [];\n var trackClasses = [];\n var track;\n var list;\n var isUsingKey;\n\n function setup() {\n collect();\n init();\n update();\n }\n\n function mount() {\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, setup);\n on(EVENT_UPDATED, update);\n bind(document, POINTER_DOWN_EVENTS + \" keydown\", function (e) {\n isUsingKey = e.type === \"keydown\";\n }, {\n capture: true\n });\n bind(root, \"focusin\", function () {\n toggleClass(root, CLASS_FOCUS_IN, !!isUsingKey);\n });\n }\n\n function destroy(completely) {\n var attrs = ALL_ATTRIBUTES.concat(\"style\");\n empty(slides);\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n removeAttribute([track, list], attrs);\n removeAttribute(root, completely ? attrs : [\"style\", ARIA_ROLEDESCRIPTION]);\n }\n\n function update() {\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n rootClasses = getClasses(CLASS_ROOT);\n trackClasses = getClasses(CLASS_TRACK);\n addClass(root, rootClasses);\n addClass(track, trackClasses);\n setAttribute(root, ARIA_LABEL, options.label);\n setAttribute(root, ARIA_LABELLEDBY, options.labelledby);\n }\n\n function collect() {\n track = find(\".\" + CLASS_TRACK);\n list = child(track, \".\" + CLASS_LIST);\n assert(track && list, \"A track/list element is missing.\");\n push(slides, children(list, \".\" + CLASS_SLIDE + \":not(.\" + CLASS_CLONE + \")\"));\n forOwn({\n arrows: CLASS_ARROWS,\n pagination: CLASS_PAGINATION,\n prev: CLASS_ARROW_PREV,\n next: CLASS_ARROW_NEXT,\n bar: CLASS_PROGRESS_BAR,\n toggle: CLASS_TOGGLE\n }, function (className, key) {\n elements[key] = find(\".\" + className);\n });\n assign(elements, {\n root: root,\n track: track,\n list: list,\n slides: slides\n });\n }\n\n function init() {\n var id = root.id || uniqueId(PROJECT_CODE);\n var role = options.role;\n root.id = id;\n track.id = track.id || id + \"-track\";\n list.id = list.id || id + \"-list\";\n\n if (!getAttribute(root, ROLE) && root.tagName !== \"SECTION\" && role) {\n setAttribute(root, ROLE, role);\n }\n\n setAttribute(root, ARIA_ROLEDESCRIPTION, i18n.carousel);\n setAttribute(list, ROLE, \"presentation\");\n }\n\n function find(selector) {\n var elm = query(root, selector);\n return elm && closest(elm, \".\" + CLASS_ROOT) === root ? elm : void 0;\n }\n\n function getClasses(base) {\n return [base + \"--\" + options.type, base + \"--\" + options.direction, options.drag && base + \"--draggable\", options.isNavigation && base + \"--nav\", base === CLASS_ROOT && CLASS_ACTIVE];\n }\n\n return assign(elements, {\n setup: setup,\n mount: mount,\n destroy: destroy\n });\n}\n\nvar SLIDE = \"slide\";\nvar LOOP = \"loop\";\nvar FADE = \"fade\";\n\nfunction Slide$1(Splide2, index, slideIndex, slide) {\n var event = EventInterface(Splide2);\n var on = event.on,\n emit = event.emit,\n bind = event.bind;\n var Components = Splide2.Components,\n root = Splide2.root,\n options = Splide2.options;\n var isNavigation = options.isNavigation,\n updateOnMove = options.updateOnMove,\n i18n = options.i18n,\n pagination = options.pagination,\n slideFocus = options.slideFocus;\n var resolve = Components.Direction.resolve;\n var styles = getAttribute(slide, \"style\");\n var label = getAttribute(slide, ARIA_LABEL);\n var isClone = slideIndex > -1;\n var container = child(slide, \".\" + CLASS_CONTAINER);\n var destroyed;\n\n function mount() {\n if (!isClone) {\n slide.id = root.id + \"-slide\" + pad(index + 1);\n setAttribute(slide, ROLE, pagination ? \"tabpanel\" : \"group\");\n setAttribute(slide, ARIA_ROLEDESCRIPTION, i18n.slide);\n setAttribute(slide, ARIA_LABEL, label || format(i18n.slideLabel, [index + 1, Splide2.length]));\n }\n\n listen();\n }\n\n function listen() {\n bind(slide, \"click\", apply(emit, EVENT_CLICK, self));\n bind(slide, \"keydown\", apply(emit, EVENT_SLIDE_KEYDOWN, self));\n on([EVENT_MOVED, EVENT_SHIFTED, EVENT_SCROLLED], update);\n on(EVENT_NAVIGATION_MOUNTED, initNavigation);\n\n if (updateOnMove) {\n on(EVENT_MOVE, onMove);\n }\n }\n\n function destroy() {\n destroyed = true;\n event.destroy();\n removeClass(slide, STATUS_CLASSES);\n removeAttribute(slide, ALL_ATTRIBUTES);\n setAttribute(slide, \"style\", styles);\n setAttribute(slide, ARIA_LABEL, label || \"\");\n }\n\n function initNavigation() {\n var controls = Splide2.splides.map(function (target) {\n var Slide2 = target.splide.Components.Slides.getAt(index);\n return Slide2 ? Slide2.slide.id : \"\";\n }).join(\" \");\n setAttribute(slide, ARIA_LABEL, format(i18n.slideX, (isClone ? slideIndex : index) + 1));\n setAttribute(slide, ARIA_CONTROLS, controls);\n setAttribute(slide, ROLE, slideFocus ? \"button\" : \"\");\n slideFocus && removeAttribute(slide, ARIA_ROLEDESCRIPTION);\n }\n\n function onMove() {\n if (!destroyed) {\n update();\n }\n }\n\n function update() {\n if (!destroyed) {\n var curr = Splide2.index;\n updateActivity();\n updateVisibility();\n toggleClass(slide, CLASS_PREV, index === curr - 1);\n toggleClass(slide, CLASS_NEXT, index === curr + 1);\n }\n }\n\n function updateActivity() {\n var active = isActive();\n\n if (active !== hasClass(slide, CLASS_ACTIVE)) {\n toggleClass(slide, CLASS_ACTIVE, active);\n setAttribute(slide, ARIA_CURRENT, isNavigation && active || \"\");\n emit(active ? EVENT_ACTIVE : EVENT_INACTIVE, self);\n }\n }\n\n function updateVisibility() {\n var visible = isVisible();\n var hidden = !visible && (!isActive() || isClone);\n\n if (!Splide2.state.is([MOVING, SCROLLING])) {\n setAttribute(slide, ARIA_HIDDEN, hidden || \"\");\n }\n\n setAttribute(queryAll(slide, options.focusableNodes || \"\"), TAB_INDEX, hidden ? -1 : \"\");\n\n if (slideFocus) {\n setAttribute(slide, TAB_INDEX, hidden ? -1 : 0);\n }\n\n if (visible !== hasClass(slide, CLASS_VISIBLE)) {\n toggleClass(slide, CLASS_VISIBLE, visible);\n emit(visible ? EVENT_VISIBLE : EVENT_HIDDEN, self);\n }\n\n if (!visible && document.activeElement === slide) {\n var Slide2 = Components.Slides.getAt(Splide2.index);\n Slide2 && focus(Slide2.slide);\n }\n }\n\n function style$1(prop, value, useContainer) {\n style(useContainer && container || slide, prop, value);\n }\n\n function isActive() {\n var curr = Splide2.index;\n return curr === index || options.cloneStatus && curr === slideIndex;\n }\n\n function isVisible() {\n if (Splide2.is(FADE)) {\n return isActive();\n }\n\n var trackRect = rect(Components.Elements.track);\n var slideRect = rect(slide);\n var left = resolve(\"left\", true);\n var right = resolve(\"right\", true);\n return floor(trackRect[left]) <= ceil(slideRect[left]) && floor(slideRect[right]) <= ceil(trackRect[right]);\n }\n\n function isWithin(from, distance) {\n var diff = abs(from - index);\n\n if (!isClone && (options.rewind || Splide2.is(LOOP))) {\n diff = min(diff, Splide2.length - diff);\n }\n\n return diff <= distance;\n }\n\n var self = {\n index: index,\n slideIndex: slideIndex,\n slide: slide,\n container: container,\n isClone: isClone,\n mount: mount,\n destroy: destroy,\n update: update,\n style: style$1,\n isWithin: isWithin\n };\n return self;\n}\n\nfunction Slides(Splide2, Components2, options) {\n var _EventInterface2 = EventInterface(Splide2),\n on = _EventInterface2.on,\n emit = _EventInterface2.emit,\n bind = _EventInterface2.bind;\n\n var _Components2$Elements = Components2.Elements,\n slides = _Components2$Elements.slides,\n list = _Components2$Elements.list;\n var Slides2 = [];\n\n function mount() {\n init();\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, init);\n }\n\n function init() {\n slides.forEach(function (slide, index) {\n register(slide, index, -1);\n });\n }\n\n function destroy() {\n forEach$1(function (Slide2) {\n Slide2.destroy();\n });\n empty(Slides2);\n }\n\n function update() {\n forEach$1(function (Slide2) {\n Slide2.update();\n });\n }\n\n function register(slide, index, slideIndex) {\n var object = Slide$1(Splide2, index, slideIndex, slide);\n object.mount();\n Slides2.push(object);\n Slides2.sort(function (Slide1, Slide2) {\n return Slide1.index - Slide2.index;\n });\n }\n\n function get(excludeClones) {\n return excludeClones ? filter(function (Slide2) {\n return !Slide2.isClone;\n }) : Slides2;\n }\n\n function getIn(page) {\n var Controller = Components2.Controller;\n var index = Controller.toIndex(page);\n var max = Controller.hasFocus() ? 1 : options.perPage;\n return filter(function (Slide2) {\n return between(Slide2.index, index, index + max - 1);\n });\n }\n\n function getAt(index) {\n return filter(index)[0];\n }\n\n function add(items, index) {\n forEach(items, function (slide) {\n if (isString(slide)) {\n slide = parseHtml(slide);\n }\n\n if (isHTMLElement(slide)) {\n var ref = slides[index];\n ref ? before(slide, ref) : append(list, slide);\n addClass(slide, options.classes.slide);\n observeImages(slide, apply(emit, EVENT_RESIZE));\n }\n });\n emit(EVENT_REFRESH);\n }\n\n function remove$1(matcher) {\n remove(filter(matcher).map(function (Slide2) {\n return Slide2.slide;\n }));\n emit(EVENT_REFRESH);\n }\n\n function forEach$1(iteratee, excludeClones) {\n get(excludeClones).forEach(iteratee);\n }\n\n function filter(matcher) {\n return Slides2.filter(isFunction(matcher) ? matcher : function (Slide2) {\n return isString(matcher) ? matches(Slide2.slide, matcher) : includes(toArray(matcher), Slide2.index);\n });\n }\n\n function style(prop, value, useContainer) {\n forEach$1(function (Slide2) {\n Slide2.style(prop, value, useContainer);\n });\n }\n\n function observeImages(elm, callback) {\n var images = queryAll(elm, \"img\");\n var length = images.length;\n\n if (length) {\n images.forEach(function (img) {\n bind(img, \"load error\", function () {\n if (! --length) {\n callback();\n }\n });\n });\n } else {\n callback();\n }\n }\n\n function getLength(excludeClones) {\n return excludeClones ? slides.length : Slides2.length;\n }\n\n function isEnough() {\n return Slides2.length > options.perPage;\n }\n\n return {\n mount: mount,\n destroy: destroy,\n update: update,\n register: register,\n get: get,\n getIn: getIn,\n getAt: getAt,\n add: add,\n remove: remove$1,\n forEach: forEach$1,\n filter: filter,\n style: style,\n getLength: getLength,\n isEnough: isEnough\n };\n}\n\nfunction Layout(Splide2, Components2, options) {\n var _EventInterface3 = EventInterface(Splide2),\n on = _EventInterface3.on,\n bind = _EventInterface3.bind,\n emit = _EventInterface3.emit;\n\n var Slides = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var _Components2$Elements2 = Components2.Elements,\n root = _Components2$Elements2.root,\n track = _Components2$Elements2.track,\n list = _Components2$Elements2.list;\n var getAt = Slides.getAt,\n styleSlides = Slides.style;\n var vertical;\n var rootRect;\n var overflow;\n\n function mount() {\n init();\n bind(window, \"resize load\", Throttle(apply(emit, EVENT_RESIZE)));\n on([EVENT_UPDATED, EVENT_REFRESH], init);\n on(EVENT_RESIZE, resize);\n }\n\n function init() {\n 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\n function resize(force) {\n var newRect = rect(root);\n\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\n if (overflow !== (overflow = isOverflow())) {\n toggleClass(root, CLASS_OVERFLOW, overflow);\n emit(EVENT_OVERFLOW, overflow);\n }\n }\n }\n\n function cssPadding(right) {\n var padding = options.padding;\n var prop = resolve(right ? \"right\" : \"left\");\n return padding && unit(padding[prop] || (isObject(padding) ? 0 : padding)) || \"0px\";\n }\n\n function cssTrackHeight() {\n var height = \"\";\n\n if (vertical) {\n height = cssHeight();\n assert(height, \"height or heightRatio is missing.\");\n height = \"calc(\" + height + \" - \" + cssPadding(false) + \" - \" + cssPadding(true) + \")\";\n }\n\n return height;\n }\n\n function cssHeight() {\n return unit(options.height || rect(list).width * options.heightRatio);\n }\n\n function cssSlideWidth() {\n return options.autoWidth ? null : unit(options.fixedWidth) || (vertical ? \"\" : cssSlideSize());\n }\n\n function cssSlideHeight() {\n return unit(options.fixedHeight) || (vertical ? options.autoHeight ? null : cssSlideSize() : cssHeight());\n }\n\n function cssSlideSize() {\n var gap = unit(options.gap);\n return \"calc((100%\" + (gap && \" + \" + gap) + \")/\" + (options.perPage || 1) + (gap && \" - \" + gap) + \")\";\n }\n\n function listSize() {\n return rect(list)[resolve(\"width\")];\n }\n\n function slideSize(index, withoutGap) {\n var Slide = getAt(index || 0);\n return Slide ? rect(Slide.slide)[resolve(\"width\")] + (withoutGap ? 0 : getGap()) : 0;\n }\n\n function totalSize(index, withoutGap) {\n var Slide = getAt(index);\n\n if (Slide) {\n var right = rect(Slide.slide)[resolve(\"right\")];\n var left = rect(list)[resolve(\"left\")];\n return abs(right - left) + (withoutGap ? 0 : getGap());\n }\n\n return 0;\n }\n\n function sliderSize(withoutGap) {\n return totalSize(Splide2.length - 1) - totalSize(0) + slideSize(0, withoutGap);\n }\n\n function getGap() {\n var Slide = getAt(0);\n return Slide && parseFloat(style(Slide.slide, resolve(\"marginRight\"))) || 0;\n }\n\n function getPadding(right) {\n return parseFloat(style(track, resolve(\"padding\" + (right ? \"Right\" : \"Left\")))) || 0;\n }\n\n function isOverflow() {\n return Splide2.is(FADE) || sliderSize(true) > listSize();\n }\n\n return {\n mount: mount,\n resize: resize,\n listSize: listSize,\n slideSize: slideSize,\n sliderSize: sliderSize,\n totalSize: totalSize,\n getPadding: getPadding,\n isOverflow: isOverflow\n };\n}\n\nvar MULTIPLIER = 2;\n\nfunction Clones(Splide2, Components2, options) {\n var event = EventInterface(Splide2);\n var on = event.on;\n var Elements = Components2.Elements,\n Slides = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var clones = [];\n var cloneCount;\n\n function mount() {\n on(EVENT_REFRESH, remount);\n on([EVENT_UPDATED, EVENT_RESIZE], observe);\n\n if (cloneCount = computeCloneCount()) {\n generate(cloneCount);\n Components2.Layout.resize(true);\n }\n }\n\n function remount() {\n destroy();\n mount();\n }\n\n function destroy() {\n remove(clones);\n empty(clones);\n event.destroy();\n }\n\n function observe() {\n var count = computeCloneCount();\n\n if (cloneCount !== count) {\n if (cloneCount < count || !count) {\n event.emit(EVENT_REFRESH);\n }\n }\n }\n\n function generate(count) {\n var slides = Slides.get().slice();\n var length = slides.length;\n\n if (length) {\n while (slides.length < count) {\n push(slides, slides);\n }\n\n push(slides.slice(-count), slides.slice(0, count)).forEach(function (Slide, index) {\n var isHead = index < count;\n var clone = cloneDeep(Slide.slide, index);\n isHead ? before(clone, slides[0].slide) : append(Elements.list, clone);\n push(clones, clone);\n Slides.register(clone, index - count + (isHead ? 0 : length), Slide.index);\n });\n }\n }\n\n function cloneDeep(elm, index) {\n var clone = elm.cloneNode(true);\n addClass(clone, options.classes.clone);\n clone.id = Splide2.root.id + \"-clone\" + pad(index + 1);\n return clone;\n }\n\n function computeCloneCount() {\n var clones2 = options.clones;\n\n if (!Splide2.is(LOOP)) {\n clones2 = 0;\n } else if (isUndefined(clones2)) {\n var fixedSize = options[resolve(\"fixedWidth\")] && Components2.Layout.slideSize(0);\n var fixedCount = fixedSize && ceil(rect(Elements.track)[resolve(\"width\")] / fixedSize);\n clones2 = fixedCount || options[resolve(\"autoWidth\")] && Splide2.length || options.perPage * MULTIPLIER;\n }\n\n return clones2;\n }\n\n return {\n mount: mount,\n destroy: destroy\n };\n}\n\nfunction Move(Splide2, Components2, options) {\n var _EventInterface4 = EventInterface(Splide2),\n on = _EventInterface4.on,\n emit = _EventInterface4.emit;\n\n var set = Splide2.state.set;\n var _Components2$Layout = Components2.Layout,\n slideSize = _Components2$Layout.slideSize,\n getPadding = _Components2$Layout.getPadding,\n totalSize = _Components2$Layout.totalSize,\n listSize = _Components2$Layout.listSize,\n sliderSize = _Components2$Layout.sliderSize;\n var _Components2$Directio = Components2.Direction,\n resolve = _Components2$Directio.resolve,\n orient = _Components2$Directio.orient;\n var _Components2$Elements3 = Components2.Elements,\n list = _Components2$Elements3.list,\n track = _Components2$Elements3.track;\n var Transition;\n\n function mount() {\n Transition = Components2.Transition;\n on([EVENT_MOUNTED, EVENT_RESIZED, EVENT_UPDATED, EVENT_REFRESH], reposition);\n }\n\n function reposition() {\n if (!Components2.Controller.isBusy()) {\n Components2.Scroll.cancel();\n jump(Splide2.index);\n Components2.Slides.update();\n }\n }\n\n function move(dest, index, prev, callback) {\n if (dest !== index && canShift(dest > prev)) {\n cancel();\n translate(shift(getPosition(), dest > prev), true);\n }\n\n set(MOVING);\n emit(EVENT_MOVE, index, prev, dest);\n Transition.start(index, function () {\n set(IDLE);\n emit(EVENT_MOVED, index, prev, dest);\n callback && callback();\n });\n }\n\n function jump(index) {\n translate(toPosition(index, true));\n }\n\n function translate(position, preventLoop) {\n if (!Splide2.is(FADE)) {\n var destination = preventLoop ? position : loop(position);\n style(list, \"transform\", \"translate\" + resolve(\"X\") + \"(\" + destination + \"px)\");\n position !== destination && emit(EVENT_SHIFTED);\n }\n }\n\n function loop(position) {\n if (Splide2.is(LOOP)) {\n var index = toIndex(position);\n var exceededMax = index > Components2.Controller.getEnd();\n var exceededMin = index < 0;\n\n if (exceededMin || exceededMax) {\n position = shift(position, exceededMax);\n }\n }\n\n return position;\n }\n\n function shift(position, backwards) {\n var excess = position - getLimit(backwards);\n var size = sliderSize();\n position -= orient(size * (ceil(abs(excess) / size) || 1)) * (backwards ? 1 : -1);\n return position;\n }\n\n function cancel() {\n translate(getPosition(), true);\n Transition.cancel();\n }\n\n function toIndex(position) {\n var Slides = Components2.Slides.get();\n var index = 0;\n var minDistance = Infinity;\n\n for (var i = 0; i < Slides.length; i++) {\n var slideIndex = Slides[i].index;\n var distance = abs(toPosition(slideIndex, true) - position);\n\n if (distance <= minDistance) {\n minDistance = distance;\n index = slideIndex;\n } else {\n break;\n }\n }\n\n return index;\n }\n\n function toPosition(index, trimming) {\n var position = orient(totalSize(index - 1) - offset(index));\n return trimming ? trim(position) : position;\n }\n\n function getPosition() {\n var left = resolve(\"left\");\n return rect(list)[left] - rect(track)[left] + orient(getPadding(false));\n }\n\n function trim(position) {\n if (options.trimSpace && Splide2.is(SLIDE)) {\n position = clamp(position, 0, orient(sliderSize(true) - listSize()));\n }\n\n return position;\n }\n\n function offset(index) {\n var focus = options.focus;\n return focus === \"center\" ? (listSize() - slideSize(index, true)) / 2 : +focus * slideSize(index) || 0;\n }\n\n function getLimit(max) {\n return toPosition(max ? Components2.Controller.getEnd() : 0, !!options.trimSpace);\n }\n\n function canShift(backwards) {\n var shifted = orient(shift(getPosition(), backwards));\n return backwards ? shifted >= 0 : shifted <= list[resolve(\"scrollWidth\")] - rect(track)[resolve(\"width\")];\n }\n\n function exceededLimit(max, position) {\n position = isUndefined(position) ? getPosition() : position;\n var exceededMin = max !== true && orient(position) < orient(getLimit(false));\n var exceededMax = max !== false && orient(position) > orient(getLimit(true));\n return exceededMin || exceededMax;\n }\n\n return {\n mount: mount,\n move: move,\n jump: jump,\n translate: translate,\n shift: shift,\n cancel: cancel,\n toIndex: toIndex,\n toPosition: toPosition,\n getPosition: getPosition,\n getLimit: getLimit,\n exceededLimit: exceededLimit,\n reposition: reposition\n };\n}\n\nfunction Controller(Splide2, Components2, options) {\n var _EventInterface5 = EventInterface(Splide2),\n on = _EventInterface5.on,\n emit = _EventInterface5.emit;\n\n var Move = Components2.Move;\n var getPosition = Move.getPosition,\n getLimit = Move.getLimit,\n toPosition = Move.toPosition;\n var _Components2$Slides = Components2.Slides,\n isEnough = _Components2$Slides.isEnough,\n getLength = _Components2$Slides.getLength;\n var 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\n function mount() {\n init();\n on([EVENT_UPDATED, EVENT_REFRESH, EVENT_END_INDEX_CHANGED], init);\n on(EVENT_RESIZED, onResized);\n }\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\n if (index !== currIndex) {\n currIndex = index;\n Move.reposition();\n }\n }\n\n function onResized() {\n if (endIndex !== getEnd()) {\n emit(EVENT_END_INDEX_CHANGED);\n }\n }\n\n function go(control, allowSameIndex, callback) {\n if (!isBusy()) {\n var dest = parse(control);\n var index = loop(dest);\n\n if (index > -1 && (allowSameIndex || index !== currIndex)) {\n setIndex(index);\n Move.move(dest, index, prevIndex, callback);\n }\n }\n }\n\n function scroll(destination, duration, snap, callback) {\n Components2.Scroll.scroll(destination, duration, snap, function () {\n var index = loop(Move.toIndex(getPosition()));\n setIndex(omitEnd ? min(index, endIndex) : index);\n callback && callback();\n });\n }\n\n function parse(control) {\n var index = currIndex;\n\n if (isString(control)) {\n var _ref = control.match(/([+\\-<>])(\\d+)?/) || [],\n indicator = _ref[1],\n number = _ref[2];\n\n if (indicator === \"+\" || indicator === \"-\") {\n index = computeDestIndex(currIndex + +(\"\" + indicator + (+number || 1)), currIndex);\n } else if (indicator === \">\") {\n index = number ? toIndex(+number) : getNext(true);\n } else if (indicator === \"<\") {\n index = getPrev(true);\n }\n } else {\n index = isLoop ? control : clamp(control, 0, endIndex);\n }\n\n return index;\n }\n\n function getAdjacent(prev, destination) {\n var number = perMove || (hasFocus() ? 1 : perPage);\n var dest = computeDestIndex(currIndex + number * (prev ? -1 : 1), currIndex, !(perMove || hasFocus()));\n\n if (dest === -1 && isSlide) {\n if (!approximatelyEqual(getPosition(), getLimit(!prev), 1)) {\n return prev ? 0 : endIndex;\n }\n }\n\n return destination ? dest : loop(dest);\n }\n\n function computeDestIndex(dest, from, snapPage) {\n if (isEnough() || hasFocus()) {\n var index = computeMovableDestIndex(dest);\n\n if (index !== dest) {\n from = dest;\n dest = index;\n snapPage = false;\n }\n\n if (dest < 0 || dest > 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\n return dest;\n }\n\n function computeMovableDestIndex(dest) {\n if (isSlide && options.trimSpace === \"move\" && dest !== currIndex) {\n var position = getPosition();\n\n while (position === toPosition(dest, true) && between(dest, 0, Splide2.length - 1, !options.rewind)) {\n dest < currIndex ? --dest : ++dest;\n }\n }\n\n return dest;\n }\n\n function loop(index) {\n return isLoop ? (index + slideCount) % slideCount || 0 : index;\n }\n\n function getEnd() {\n var end = slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage);\n\n while (omitEnd && end-- > 0) {\n if (toPosition(slideCount - 1, true) !== toPosition(end, true)) {\n end++;\n break;\n }\n }\n\n return clamp(end, 0, slideCount - 1);\n }\n\n function toIndex(page) {\n return clamp(hasFocus() ? page : perPage * page, 0, endIndex);\n }\n\n function toPage(index) {\n return hasFocus() ? min(index, endIndex) : floor((index >= endIndex ? slideCount - 1 : index) / perPage);\n }\n\n function toDest(destination) {\n var closest = Move.toIndex(destination);\n return isSlide ? clamp(closest, 0, endIndex) : closest;\n }\n\n function setIndex(index) {\n if (index !== currIndex) {\n prevIndex = currIndex;\n currIndex = index;\n }\n }\n\n function getIndex(prev) {\n return prev ? prevIndex : currIndex;\n }\n\n function hasFocus() {\n return !isUndefined(options.focus) || options.isNavigation;\n }\n\n function isBusy() {\n return Splide2.state.is([MOVING, SCROLLING]) && !!options.waitForTransition;\n }\n\n return {\n mount: mount,\n go: go,\n scroll: scroll,\n getNext: getNext,\n getPrev: getPrev,\n getAdjacent: getAdjacent,\n getEnd: getEnd,\n setIndex: setIndex,\n getIndex: getIndex,\n toIndex: toIndex,\n toPage: toPage,\n toDest: toDest,\n hasFocus: hasFocus,\n isBusy: isBusy\n };\n}\n\nvar XML_NAME_SPACE = \"http://www.w3.org/2000/svg\";\nvar PATH = \"m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z\";\nvar SIZE = 40;\n\nfunction Arrows(Splide2, Components2, options) {\n var event = EventInterface(Splide2);\n var on = event.on,\n bind = event.bind,\n emit = event.emit;\n var classes = options.classes,\n i18n = options.i18n;\n var Elements = Components2.Elements,\n Controller = Components2.Controller;\n var placeholder = Elements.arrows,\n track = Elements.track;\n var wrapper = placeholder;\n var prev = Elements.prev;\n var next = Elements.next;\n var created;\n var wrapperClasses;\n var arrows = {};\n\n function mount() {\n init();\n on(EVENT_UPDATED, remount);\n }\n\n function remount() {\n destroy();\n mount();\n }\n\n function init() {\n var enabled = options.arrows;\n\n if (enabled && !(prev && next)) {\n createArrows();\n }\n\n if (prev && next) {\n assign(arrows, {\n prev: prev,\n next: next\n });\n display(wrapper, enabled ? \"\" : \"none\");\n addClass(wrapper, wrapperClasses = CLASS_ARROWS + \"--\" + options.direction);\n\n if (enabled) {\n listen();\n update();\n setAttribute([prev, next], ARIA_CONTROLS, track.id);\n emit(EVENT_ARROWS_MOUNTED, prev, next);\n }\n }\n }\n\n function destroy() {\n event.destroy();\n removeClass(wrapper, wrapperClasses);\n\n if (created) {\n remove(placeholder ? [prev, next] : wrapper);\n prev = next = null;\n } else {\n removeAttribute([prev, next], ALL_ATTRIBUTES);\n }\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\n function go(control) {\n Controller.go(control, true);\n }\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\n function createArrow(prev2) {\n var arrow = \"\";\n };\n\n _proto3.html = function html() {\n var _this$config = this.config,\n rootClass = _this$config.rootClass,\n listTag = _this$config.listTag,\n arrows = _this$config.arrows,\n beforeTrack = _this$config.beforeTrack,\n afterTrack = _this$config.afterTrack,\n slider = _this$config.slider,\n beforeSlider = _this$config.beforeSlider,\n afterSlider = _this$config.afterSlider;\n var html = \"\";\n html += \"
\";\n html += \"\";\n\n if (slider) {\n html += beforeSlider || \"\";\n html += \"
\";\n }\n\n html += beforeTrack || \"\";\n\n if (arrows) {\n html += this.renderArrows();\n }\n\n html += \"
\";\n html += \"<\" + listTag + \" class=\\\"splide__list\\\">\";\n html += this.renderSlides();\n html += \"\";\n html += \"
\";\n html += afterTrack || \"\";\n\n if (slider) {\n html += \"
\";\n html += afterSlider || \"\";\n }\n\n html += \"
\";\n return html;\n };\n\n return SplideRenderer;\n}();\n\nexport { CLASSES, CLASS_ACTIVE, CLASS_ARROW, CLASS_ARROWS, CLASS_ARROW_NEXT, CLASS_ARROW_PREV, CLASS_CLONE, CLASS_CONTAINER, CLASS_FOCUS_IN, CLASS_INITIALIZED, CLASS_LIST, CLASS_LOADING, CLASS_NEXT, CLASS_OVERFLOW, CLASS_PAGINATION, CLASS_PAGINATION_PAGE, CLASS_PREV, CLASS_PROGRESS, CLASS_PROGRESS_BAR, CLASS_ROOT, CLASS_SLIDE, CLASS_SPINNER, CLASS_SR, CLASS_TOGGLE, CLASS_TOGGLE_PAUSE, CLASS_TOGGLE_PLAY, CLASS_TRACK, CLASS_VISIBLE, DEFAULTS, EVENT_ACTIVE, EVENT_ARROWS_MOUNTED, EVENT_ARROWS_UPDATED, EVENT_AUTOPLAY_PAUSE, EVENT_AUTOPLAY_PLAY, EVENT_AUTOPLAY_PLAYING, EVENT_CLICK, EVENT_DESTROY, EVENT_DRAG, EVENT_DRAGGED, EVENT_DRAGGING, EVENT_END_INDEX_CHANGED, EVENT_HIDDEN, EVENT_INACTIVE, EVENT_LAZYLOAD_LOADED, EVENT_MOUNTED, EVENT_MOVE, EVENT_MOVED, EVENT_NAVIGATION_MOUNTED, EVENT_OVERFLOW, EVENT_PAGINATION_MOUNTED, EVENT_PAGINATION_UPDATED, EVENT_READY, EVENT_REFRESH, EVENT_RESIZE, EVENT_RESIZED, EVENT_SCROLL, EVENT_SCROLLED, EVENT_SHIFTED, EVENT_SLIDE_KEYDOWN, EVENT_UPDATED, EVENT_VISIBLE, EventBinder, EventInterface, FADE, LOOP, LTR, RTL, RequestInterval, SLIDE, STATUS_CLASSES, Splide, SplideRenderer, State, TTB, Throttle, Splide as default };\n", "import { Mesh, PerspectiveCamera, PlaneGeometry, Scene, WebGLRenderer } from 'three';\r\nimport { Material } from 'three/src/materials/Material';\r\nimport { Texture } from 'three/src/textures/Texture';\r\n\r\n\r\n/**\r\n * The class for creating WebGLRenderer with a plain mesh which is responsive.\r\n *\r\n * @since 0.0.1\r\n */\r\nexport class Renderer {\r\n /**\r\n * The canvas element to render the scene to.\r\n */\r\n protected readonly canvas: HTMLCanvasElement;\r\n\r\n /**\r\n * A WebGLRenderer instance.\r\n */\r\n protected readonly renderer: WebGLRenderer;\r\n\r\n /**\r\n * A Mesh instance.\r\n */\r\n protected readonly mesh: Mesh;\r\n\r\n /**\r\n * A PerspectiveCamera instance.\r\n */\r\n protected readonly camera: PerspectiveCamera;\r\n\r\n /**\r\n * A Scene instance.\r\n */\r\n protected readonly scene = new Scene();\r\n\r\n /**\r\n * A geometry.\r\n */\r\n protected readonly geometry = new PlaneGeometry( 1, 1 );\r\n\r\n /**\r\n * The ResponsiveMesh constructor.\r\n *\r\n * @param canvas - A canvas element.\r\n * @param material - A Material instance.\r\n */\r\n constructor( canvas: HTMLCanvasElement, material: Material | Material[] ) {\r\n this.renderer = this.createRenderer( canvas );\r\n this.canvas = canvas;\r\n this.camera = this.createCamera();\r\n this.mesh = new Mesh( this.geometry, material );\r\n\r\n this.scene.add( this.mesh );\r\n }\r\n\r\n /**\r\n * Decode textures beforehand.\r\n *\r\n * @param textures - Textures to initialize.\r\n */\r\n decode( textures: Texture[] ): void {\r\n textures.forEach( texture => {\r\n this.renderer.initTexture( texture );\r\n } );\r\n }\r\n\r\n /**\r\n * Renders the scene to the canvas.\r\n */\r\n render(): void {\r\n this.renderer.render( this.scene, this.camera );\r\n }\r\n\r\n /**\r\n * Sets the dimension.\r\n *\r\n * @param width - Width.\r\n * @param height - Height.\r\n */\r\n setSize( width: number, height: number ): void {\r\n const aspect = ( width / height ) || 1;\r\n const [ viewWidth, viewHeight ] = this.computeViewDimension( aspect );\r\n\r\n this.mesh.scale.set( viewWidth, viewHeight, 1 );\r\n this.renderer.setSize( width, height );\r\n this.camera.aspect = aspect;\r\n this.camera.updateProjectionMatrix();\r\n }\r\n\r\n /**\r\n * Creates and initializes the renderer.\r\n *\r\n * @param canvas - A canvas element to render the scene to.\r\n *\r\n * @return A created WebGLRenderer instance.\r\n */\r\n protected createRenderer( canvas: HTMLCanvasElement ): WebGLRenderer {\r\n const renderer = new WebGLRenderer( { canvas } );\r\n renderer.setPixelRatio( window.devicePixelRatio );\r\n return renderer;\r\n }\r\n\r\n /**\r\n * Creates a camera.\r\n *\r\n * @return A created PerspectiveCamera instance.\r\n */\r\n protected createCamera(): PerspectiveCamera {\r\n const camera = new PerspectiveCamera( 45, 1, 1, 10000 );\r\n camera.position.z = 50;\r\n return camera;\r\n }\r\n\r\n /**\r\n * Computes the view dimension so that the mesh fills up the camera.\r\n *\r\n * @param aspect - Aspect ratio.\r\n */\r\n protected computeViewDimension( aspect: number ): [ number, number ] {\r\n const { camera } = this;\r\n const fovRad = ( camera.fov * Math.PI ) / 180;\r\n const height = Math.abs( camera.position.z * Math.tan( fovRad / 2 ) * 2 );\r\n return [ height * aspect, height ];\r\n }\r\n}", "import { ShaderMaterial, TextureLoader, Vector2, VideoTexture } from 'three';\r\nimport { IUniform } from 'three/src/renderers/shaders/UniformsLib';\r\nimport { Texture } from 'three/src/textures/Texture';\r\nimport { MaterialParameters, TextureSource } from '../types';\r\n\r\n\r\n/**\r\n * The class for handling the shader and changing textures.\r\n *\r\n * @since 0.0.1\r\n */\r\nexport class Material {\r\n /**\r\n * The ShaderMaterial instance.\r\n */\r\n readonly material: ShaderMaterial;\r\n\r\n /**\r\n * Stores Texture instances.\r\n */\r\n readonly textures: Array<{ texture: Texture, ratio: Vector2 }> = [];\r\n\r\n /**\r\n * An object with uniforms for the shader.\r\n */\r\n protected readonly uniforms: { [ uniform: string ]: IUniform } = {\r\n tTexture : { value: null },\r\n tNextTexture: { value: null },\r\n tMask : { value: null },\r\n fIntensity : { value: 0.5 },\r\n fProgress : { value: 0 },\r\n vUVOffset : { value: new Vector2( 1, 1 ) },\r\n vRatio : { value: new Vector2( 1, 1 ) },\r\n vNextRatio : { value: new Vector2( 1, 1 ) },\r\n };\r\n\r\n /**\r\n * Stores provided sources.\r\n */\r\n protected sources: TextureSource[];\r\n\r\n /**\r\n * A mask URL.\r\n */\r\n protected mask: string | undefined;\r\n\r\n /**\r\n * The current texture index.\r\n */\r\n protected index = 0;\r\n\r\n /**\r\n * The next texture index.\r\n */\r\n protected nextIndex = 0;\r\n\r\n /**\r\n * The Material constructor.\r\n *\r\n * @param vertexShader - A vertex shader.\r\n * @param fragmentShader - A fragment shader.\r\n * @param sources - Optional. An array with image URLs.\r\n * @param mask - Optional. A mask URL.\r\n */\r\n constructor( vertexShader: string, fragmentShader: string, sources: TextureSource[] = [], mask?: string ) {\r\n this.material = new ShaderMaterial( {\r\n vertexShader,\r\n fragmentShader,\r\n uniforms: this.uniforms,\r\n } );\r\n\r\n this.sources = sources;\r\n this.mask = mask;\r\n }\r\n\r\n /**\r\n * Destroys the instance.\r\n */\r\n destroy(): void {\r\n this.sources.length = 0;\r\n }\r\n\r\n /**\r\n * Adds image URLs.\r\n * This muse be called before `load()`.\r\n *\r\n * @param sources - An array with texture sources.\r\n */\r\n add( sources: TextureSource[] ): void {\r\n this.sources.push( ...sources );\r\n }\r\n\r\n /**\r\n * Starts loading textures.\r\n *\r\n * @return A promise that is resolved with Texture instances when all images get ready.\r\n */\r\n load(): Promise {\r\n return this.loadMask().then( () => {\r\n return this.loadSources()\r\n .then( textures => {\r\n this.textures.push( ...textures.map( texture => ( { texture, ratio: new Vector2( 1, 1 ) } ) ) );\r\n this.uniforms.tTexture.value = textures[ 0 ] || null;\r\n return textures;\r\n } );\r\n } );\r\n }\r\n\r\n /**\r\n * Updates the dimension used in the shader.\r\n *\r\n * @param width - The carousel width.\r\n * @param height - The carousel height.\r\n */\r\n setSize( width: number, height: number ): void {\r\n this.textures.forEach( ( texture, index ) => {\r\n const aspect = ( width / height ) || 1;\r\n const [ imageWidth, imageHeight ] = this.getTextureDimension( texture.texture );\r\n\r\n texture.ratio = new Vector2(\r\n Math.min( aspect / ( imageWidth / imageHeight ), 1.0 ),\r\n Math.min( ( 1 / aspect ) / ( imageHeight / imageWidth ), 1.0 )\r\n );\r\n\r\n if ( index === this.index ) {\r\n this.uniforms.vRatio.value = texture.ratio;\r\n }\r\n\r\n if ( index === this.nextIndex ) {\r\n this.uniforms.vNextRatio.value = texture.ratio;\r\n }\r\n } );\r\n }\r\n\r\n /**\r\n * Sets a new index and updates textures in the shader.\r\n *\r\n * @param index - A new index.\r\n * @param reverse - Optional. Explicitly sets the transition direction.\r\n */\r\n setIndex( index: number, reverse?: boolean ): void {\r\n const { textures, index: curr } = this;\r\n\r\n if ( 0 <= index && index < textures.length && curr !== index ) {\r\n const auto = reverse === undefined;\r\n\r\n if ( ( auto && curr > index ) || reverse ) {\r\n this.setProgress( 1 );\r\n this.setTexture( index, curr );\r\n this.nextIndex = curr;\r\n } else {\r\n this.setProgress( 0 );\r\n this.setTexture( curr, index );\r\n this.nextIndex = index;\r\n }\r\n\r\n this.index = index;\r\n }\r\n }\r\n\r\n /**\r\n * Returns the current texture index.\r\n */\r\n getIndex(): number {\r\n return this.index;\r\n }\r\n\r\n /**\r\n * Applies current and next textures and aspect ratios.\r\n *\r\n * @param curr - A current index.\r\n * @param next - A next index.\r\n */\r\n setTexture( curr: number, next: number ): void {\r\n const currTexture = this.textures[ curr ];\r\n const nextTexture = this.textures[ next ];\r\n\r\n if ( currTexture && nextTexture ) {\r\n const { uniforms } = this;\r\n\r\n uniforms.tTexture.value = currTexture.texture;\r\n uniforms.vRatio.value = currTexture.ratio;\r\n uniforms.tNextTexture.value = nextTexture.texture;\r\n uniforms.vNextRatio.value = nextTexture.ratio;\r\n }\r\n }\r\n\r\n /**\r\n * Sets transition progress (0-1).\r\n *\r\n * @param progress - Progress rate.\r\n */\r\n setProgress( progress: number ): void {\r\n this.uniforms.fProgress.value = progress;\r\n }\r\n\r\n /**\r\n * Sets material parameters.\r\n *\r\n * @param params - Parameters to update.\r\n */\r\n setParams( params: MaterialParameters ): void {\r\n const { intensity = 0.5, uvOffset = [ 1, 1 ] } = params;\r\n this.uniforms.fIntensity.value = intensity;\r\n this.uniforms.vUVOffset.value = uvOffset;\r\n }\r\n\r\n /**\r\n * Returns the number of textures.\r\n */\r\n getLength(): number {\r\n return this.textures.length;\r\n }\r\n\r\n /**\r\n * Load sources and create textures.\r\n *\r\n * @return A promise resolved when sources are loaded.\r\n */\r\n protected loadSources(): Promise {\r\n return Promise.all( this.sources.map( source => {\r\n if ( source instanceof HTMLVideoElement ) {\r\n return this.loadVideo( source );\r\n }\r\n\r\n return new TextureLoader()\r\n .loadAsync( source instanceof HTMLImageElement ? source.src : source )\r\n .then( texture => {\r\n texture.needsUpdate = true;\r\n return texture;\r\n } );\r\n } ) );\r\n }\r\n\r\n /**\r\n * Loads the video texture.\r\n * 2 means `HAVE_CURRENT_DATA`.\r\n *\r\n * @link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState\r\n *\r\n * @param video - A video element.\r\n *\r\n * @return A promise resolved when the texture is available.\r\n */\r\n protected loadVideo( video: HTMLVideoElement ): Promise {\r\n return new Promise( resolve => {\r\n const texture = new VideoTexture( video );\r\n texture.needsUpdate = true;\r\n\r\n if ( video.readyState >= 2 ) {\r\n resolve( texture );\r\n } else {\r\n video.addEventListener( 'canplay', function onCanplay() {\r\n resolve( texture );\r\n video.removeEventListener( 'canplay', onCanplay );\r\n } );\r\n }\r\n } );\r\n }\r\n\r\n /**\r\n * Loads the mask texture if available.\r\n *\r\n * @return A promise resolved when the texture is loaded.\r\n */\r\n protected loadMask(): Promise {\r\n if ( ! this.mask ) {\r\n return Promise.resolve();\r\n }\r\n\r\n return new TextureLoader().loadAsync( this.mask ).then( mask => {\r\n this.uniforms.tMask.value = mask;\r\n } );\r\n }\r\n\r\n /**\r\n * Returns the dimension of the provided texture.\r\n *\r\n * @param texture - A Texture instance.\r\n *\r\n * @return A tuple as `[ width, height ]`.\r\n */\r\n protected getTextureDimension( texture: Texture ): [ number, number ] {\r\n const { image } = texture;\r\n return image instanceof HTMLVideoElement\r\n ? [ image.videoWidth, image.videoHeight ]\r\n : [ image.width, image.height ];\r\n }\r\n}", "import { SplideShaderCarouselOptions } from '../types';\r\n\r\n/**\r\n * Default options.\r\n *\r\n * @since 0.0.1\r\n */\r\nexport const DEFAULTS: SplideShaderCarouselOptions = {\r\n awaitInit: true,\r\n};", "/**\r\n * Clamps the number.\r\n *\r\n * @param value - A value to clamp.\r\n * @param min - A min number.\r\n * @param max - A max number.\r\n *\r\n * @return A clamped number.\r\n */\r\nexport function clamp( value: number, min: number, max: number ): number {\r\n return Math.max( Math.min( value, max ), min );\r\n}", "import vertexShader from '../shaders/vertex/general.vert?raw';\r\nimport {\r\n EventInterface,\r\n EventInterfaceObject,\r\n RequestInterval,\r\n RequestIntervalInterface,\r\n Throttle,\r\n} from '@splidejs/splide';\r\nimport { Renderer } from './Renderer';\r\nimport { Material } from './Material';\r\nimport { ShaderCarouselOptions, TextureSource } from '../types';\r\nimport { DEFAULTS } from '../constants/defaults';\r\nimport { clamp } from '../utils';\r\n\r\n\r\n/**\r\n * The class for building a carousel with using the GLSL shader for transition.\r\n *\r\n * @since 0.0.1\r\n */\r\nexport class ShaderCarousel {\r\n /**\r\n * The canvas element to render the carousel to.\r\n */\r\n readonly canvas: HTMLCanvasElement;\r\n\r\n /**\r\n * A Renderer instance.\r\n */\r\n readonly renderer: Renderer;\r\n\r\n /**\r\n * A custom material instance.\r\n */\r\n readonly material: Material;\r\n\r\n /**\r\n * An EventInterfaceObject instance.\r\n */\r\n protected readonly event: EventInterfaceObject;\r\n\r\n /**\r\n * Holds options.\r\n */\r\n protected readonly options: ShaderCarouselOptions;\r\n\r\n /**\r\n * The active RequestInterval instance.\r\n */\r\n protected interval: RequestIntervalInterface | undefined;\r\n\r\n /**\r\n * The ShaderCarousel constructor.\r\n *\r\n * @param canvas - A canvas element to render the carousel.\r\n * @param fragmentShader - A fragment shader.\r\n * @param options - Optional. An object with options.\r\n */\r\n constructor( canvas: HTMLCanvasElement, fragmentShader: string, options: ShaderCarouselOptions = {} ) {\r\n this.canvas = canvas;\r\n this.options = Object.assign( {}, DEFAULTS, options );\r\n this.event = EventInterface();\r\n this.material = new Material( options.vertexShader || vertexShader, fragmentShader, options.sources, options.mask );\r\n this.renderer = new Renderer( canvas, this.material.material );\r\n }\r\n\r\n /**\r\n * Mounts the carousel.\r\n *\r\n * @param sources - Optional. An array with texture sources.\r\n * @param onReady - Optional. Called when all image are loaded.\r\n */\r\n mount( sources?: TextureSource[], onReady?: () => void ): void {\r\n sources && this.material.add( sources );\r\n\r\n const { preDecoding } = this.options;\r\n\r\n this.material.load()\r\n .then( () => {\r\n this.resize();\r\n preDecoding === 'load' && this.decode();\r\n preDecoding === 'nearby' && this.decodeAround();\r\n onReady && onReady();\r\n } )\r\n .catch( console.error );\r\n\r\n this.resize();\r\n this.listen();\r\n }\r\n\r\n\r\n /**\r\n * Asynchronously mounts the carousel.\r\n *\r\n * @param sources - Optional. An array with texture sources.\r\n *\r\n * @return A promise resolved when all images are loaded.\r\n */\r\n mountAsync( sources?: TextureSource[] ): Promise {\r\n return new Promise( resolve => {\r\n this.mount( sources, resolve );\r\n } );\r\n }\r\n\r\n /**\r\n * Destroys the instance.\r\n */\r\n destroy(): void {\r\n this.event.destroy();\r\n this.material.destroy();\r\n }\r\n\r\n /**\r\n * Goes to the specified index.\r\n *\r\n * @param index - An index to go.\r\n * @param reverse - Optional. Explicitly sets the transition direction.\r\n */\r\n go( index: number, reverse?: boolean ): void {\r\n const auto = reverse === undefined;\r\n const curr = this.material.getIndex();\r\n index = clamp( index, 0, this.getLength() - 1 );\r\n\r\n if ( index !== curr ) {\r\n this.material.setIndex( index, reverse );\r\n this.transition( ( auto && curr > index ) || !! reverse );\r\n }\r\n }\r\n\r\n /**\r\n * Resizes the slider to fit the content to the parent element.\r\n */\r\n resize(): void {\r\n const width = this.getWidth();\r\n const height = this.getHeight();\r\n\r\n if ( width && height ) {\r\n this.renderer.setSize( width, height );\r\n this.material.setSize( width, height );\r\n }\r\n\r\n this.render();\r\n }\r\n\r\n /**\r\n * Manually sets the progress.\r\n *\r\n * @internal\r\n *\r\n * @param progress - Progress rate to set from 0 to 1.\r\n */\r\n setProgress( progress: number ): void {\r\n this.material.setProgress( clamp( progress, 0, 1 ) );\r\n }\r\n\r\n /**\r\n * Returns the current width.\r\n *\r\n * @return The current width. If the parent of the canvas is not available, this always returns 0.\r\n */\r\n getWidth(): number {\r\n return this.canvas.parentElement?.clientWidth || 0;\r\n }\r\n\r\n /**\r\n * Returns the current height.\r\n *\r\n * @return The current height. If the parent of the canvas is not available, this always returns 0.\r\n */\r\n getHeight(): number {\r\n return this.canvas.parentElement?.clientHeight || 0;\r\n }\r\n\r\n /**\r\n * Returns the number of textures.\r\n */\r\n getLength(): number {\r\n return this.material.getLength();\r\n }\r\n\r\n /**\r\n * Manually decodes textures beforehand.\r\n */\r\n protected decode(): void {\r\n this.renderer.decode( this.material.textures.map( texture => texture.texture ) );\r\n }\r\n\r\n /**\r\n * Manually decodes textures around the current texture.\r\n */\r\n protected decodeAround(): void {\r\n const { material } = this;\r\n const length = material.getLength();\r\n\r\n if ( length ) {\r\n const { textures } = this.material;\r\n const index = material.getIndex();\r\n const next = ( index + 1 ) % length;\r\n const prev = ( index - 1 + length ) % length;\r\n\r\n this.renderer.decode( [ textures[ next ].texture, textures[ prev ].texture ] );\r\n }\r\n }\r\n\r\n /**\r\n * Renders the scene to the canvas.\r\n */\r\n protected render(): void {\r\n this.renderer.render();\r\n }\r\n\r\n /**\r\n * Listens to some events.\r\n * Needs to resize the canvas and the scene when the window is resized.\r\n */\r\n protected listen(): void {\r\n this.event.bind( window, 'resize', Throttle( () => {\r\n this.resize();\r\n this.render();\r\n } ) );\r\n }\r\n\r\n /**\r\n * Changes the carousel forwards or backwards.\r\n *\r\n * @param reverse - Determines whether to go to the prev slide or the next one.\r\n */\r\n protected transition( reverse: boolean ): void {\r\n if ( this.interval ) {\r\n this.interval.cancel();\r\n }\r\n\r\n const { speed = 1000 } = this.options;\r\n\r\n this.interval = RequestInterval(\r\n speed,\r\n this.onTransitionEnd.bind( this ),\r\n this.onProgress.bind( this, reverse ),\r\n 1\r\n );\r\n\r\n this.interval.start();\r\n }\r\n\r\n /**\r\n * Called every time when the progress rate changes.\r\n * Do not forget to call the render method to update the shader.\r\n *\r\n * @param reverse - `true` will be passed for backwards transition.\r\n * @param progress - Progress rate.\r\n */\r\n protected onProgress( reverse: boolean, progress: number ): void {\r\n const { easingFunc = t => 1 - Math.pow( 1 - t, 4 ) } = this.options;\r\n progress = easingFunc( progress );\r\n this.setProgress( reverse ? 1 - progress : progress );\r\n this.render();\r\n }\r\n\r\n /**\r\n * Called when transition ends.\r\n */\r\n protected onTransitionEnd(): void {\r\n this.interval = undefined;\r\n this.options.preDecoding === 'nearby' && this.decodeAround();\r\n }\r\n}", "export const EVENT_SHADER_CAROUSEL_INITIALIZED = 'shaderCarousel:initialized';\r\nexport const EVENT_SHADER_CAROUSEL_READY = 'shaderCarousel:ready';\r\nexport const EVENT_SHADER_CAROUSEL_ERROR = 'shaderCarousel:error';", "import {\r\n BaseComponent,\r\n CLASS_INITIALIZED,\r\n CLASS_LOADING,\r\n CLASS_SR,\r\n Components,\r\n EventInterface,\r\n LOOP,\r\n SlideComponent,\r\n} from '@splidejs/splide';\r\nimport { SplideShaderCarousel as Splide } from '../core/SplideShaderCarousel';\r\nimport { SplideShaderCarouselOptions as Options, TextureSource } from '../types';\r\nimport { ShaderCarousel } from '../classes/ShaderCarousel';\r\nimport { EVENT_SHADER_CAROUSEL_ERROR, EVENT_SHADER_CAROUSEL_READY } from '../constants/events';\r\nimport { DEFAULTS } from '../constants/defaults';\r\n\r\n\r\n/**\r\n * The component for displaying a shader carousel as a background of the foreground carousel.\r\n *\r\n * @constructor\r\n * @since 0.0.1\r\n *\r\n * @param Splide - A SplideShaderCarousel instance.\r\n * @param Components - A collection of components.\r\n * @param options - Options.\r\n *\r\n * @return A BackgroundShaderCarousel object.\r\n */\r\nexport function BackgroundShaderCarousel( Splide: Splide, Components: Components, options: Options ): BaseComponent {\r\n const { on, emit } = EventInterface( Splide );\r\n const { track } = Components.Elements;\r\n const canvas = document.createElement( 'canvas' );\r\n\r\n /**\r\n * The ShaderCarousel instance.\r\n */\r\n let shaderCarousel: ShaderCarousel | undefined;\r\n\r\n /**\r\n * Stores texture sources.\r\n */\r\n const sources: TextureSource[] = [];\r\n\r\n /**\r\n * Keeps image elements used for shader textures.\r\n */\r\n const images: HTMLImageElement[] = [];\r\n\r\n /**\r\n * Stores SR fields.\r\n */\r\n const srFields: HTMLSpanElement[] = [];\r\n\r\n /**\r\n * Called when the component is mounted.\r\n */\r\n function mount(): void {\r\n initCanvas();\r\n initCarousel();\r\n initSources();\r\n initMaterial();\r\n mountCarousel();\r\n }\r\n\r\n /**\r\n * Mounts the shader carousel.\r\n */\r\n function mountCarousel(): void {\r\n if ( sources.length > 1 ) {\r\n const { classList } = Splide.root;\r\n classList.add( CLASS_LOADING );\r\n\r\n shaderCarousel?.mountAsync( sources )\r\n .then( () => {\r\n canvas.style.visibility = 'visible';\r\n classList.add( CLASS_INITIALIZED );\r\n classList.remove( CLASS_LOADING );\r\n emit( EVENT_SHADER_CAROUSEL_READY );\r\n } )\r\n .catch( e => {\r\n emit( EVENT_SHADER_CAROUSEL_ERROR );\r\n throw new Error( e );\r\n } );\r\n\r\n listen();\r\n } else {\r\n console.error( 'Requires at least 2 images.' );\r\n emit( EVENT_SHADER_CAROUSEL_ERROR );\r\n }\r\n }\r\n\r\n /**\r\n * Listens to some events.\r\n */\r\n function listen(): void {\r\n on( 'move', ( index, prev ) => {\r\n const { length } = Splide;\r\n let reverse;\r\n\r\n if ( options.continuous || Splide.is( LOOP ) ) {\r\n if ( prev === length - 1 && index === 0 ) {\r\n reverse = false;\r\n } else if ( prev === 0 && index === length - 1 ) {\r\n reverse = true;\r\n }\r\n }\r\n\r\n shaderCarousel?.go( index, reverse );\r\n } );\r\n }\r\n\r\n /**\r\n * Destroys the component.\r\n */\r\n function destroy(): void {\r\n track.removeChild( canvas );\r\n\r\n srFields.forEach( field => {\r\n field.parentElement?.removeChild( field );\r\n } );\r\n\r\n images.forEach( img => {\r\n img.style.display = '';\r\n } );\r\n\r\n sources.length = 0;\r\n srFields.length = 0;\r\n images.length = 0;\r\n\r\n shaderCarousel?.destroy();\r\n shaderCarousel = undefined;\r\n }\r\n\r\n /**\r\n * Initializes the canvas element.\r\n */\r\n function initCanvas(): void {\r\n const { style } = canvas;\r\n\r\n style.position = 'absolute';\r\n style.zIndex = '-1';\r\n style.top = '0';\r\n style.left = '0';\r\n style.visibility = 'hidden';\r\n\r\n track.appendChild( canvas );\r\n }\r\n\r\n /**\r\n * Creates and initializes a shader carousel.\r\n */\r\n function initCarousel(): void {\r\n shaderCarousel = new ShaderCarousel( canvas, Splide.fragmentShader, {\r\n speed : options.speed,\r\n mask : options.mask,\r\n easingFunc : options.easingFunc || DEFAULTS.easingFunc,\r\n preDecoding : options.preDecoding,\r\n vertexShader: options.vertexShader,\r\n } );\r\n }\r\n\r\n /**\r\n * Initializes sources.\r\n * If sources are not provided by options, finds them in all slides.\r\n */\r\n function initSources(): void {\r\n const { sources: sourcesOption } = options;\r\n\r\n if ( sourcesOption && sourcesOption.length ) {\r\n sources.push( ...sourcesOption );\r\n } else {\r\n Components.Slides.forEach( initSlide );\r\n }\r\n }\r\n\r\n /**\r\n * Initializes each slide.\r\n *\r\n * @param Slide A Slide component.\r\n */\r\n function initSlide( Slide: SlideComponent ): void {\r\n const img = Slide.slide.querySelector( 'img' );\r\n\r\n if ( img ) {\r\n const { alt } = img;\r\n\r\n if ( alt && options.keepAlt ) {\r\n const span = document.createElement( 'span' );\r\n span.textContent = alt;\r\n span.classList.add( CLASS_SR );\r\n img.parentElement?.insertBefore( span, img );\r\n srFields.push( span );\r\n }\r\n\r\n if ( ! Slide.isClone ) {\r\n sources.push( img.src );\r\n images.push( img );\r\n }\r\n\r\n img.style.display = 'none';\r\n }\r\n }\r\n\r\n /**\r\n * Initializes material parameters.\r\n */\r\n function initMaterial(): void {\r\n const { material } = options;\r\n\r\n if ( material ) {\r\n shaderCarousel?.material.setParams( {\r\n intensity: material.intensity,\r\n uvOffset : material.uvOffset,\r\n } );\r\n }\r\n }\r\n\r\n return {\r\n mount,\r\n destroy,\r\n };\r\n}", "import Splide, { CLASS_INITIALIZED, ComponentConstructor, EventInterface } from '@splidejs/splide';\r\nimport { SplideShaderCarouselOptions as Options } from '../types';\r\nimport { BackgroundShaderCarousel } from '../components/BackgroundShaderCarousel';\r\nimport { EVENT_SHADER_CAROUSEL_ERROR, EVENT_SHADER_CAROUSEL_READY } from '../constants/events';\r\nimport { DEFAULTS } from '../constants/defaults';\r\n\r\n\r\n/**\r\n * The frontend class for a Splide carousel with shader transition.\r\n *\r\n * @since 0.0.1\r\n */\r\nexport class SplideShaderCarousel extends Splide {\r\n /**\r\n * Checks if WebGL is supported or not.\r\n *\r\n * @return `true` if webGL is available, or otherwise `false`.\r\n */\r\n static isAvailable(): boolean {\r\n try {\r\n const canvas = document.createElement( 'canvas' );\r\n const context = canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' );\r\n return !! ( WebGLRenderingContext && context );\r\n } catch ( e ) {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Keeps the fragment shader.\r\n */\r\n readonly fragmentShader: string;\r\n\r\n /**\r\n * The SplideShaderTransition constructor.\r\n *\r\n * @param target - The selector for the target element, or the element itself.\r\n * @param fragmentShader - The fragment shader.\r\n * @param options - Optional. An object with options.\r\n */\r\n constructor( target: string | HTMLElement, fragmentShader: string, options?: Options ) {\r\n super( target, Object.assign( {}, DEFAULTS, options ) );\r\n this.fragmentShader = fragmentShader;\r\n }\r\n\r\n /**\r\n * Initializes the instance.\r\n *\r\n * @param Extensions - Optional. An object with extensions.\r\n */\r\n mount( Extensions: Record = {} ): this {\r\n super.mount( Object.assign( Extensions, { BackgroundShaderCarousel } ) ); // @todo unsafe\r\n\r\n if ( this.options.awaitInit ) {\r\n this.root.classList.remove( CLASS_INITIALIZED );\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Asynchronously mounts the component.\r\n * The returned promise will be resolved when all textures are loaded and the shader gets ready to render the scene.\r\n *\r\n * @param Extensions - Optional. An object with extensions.\r\n *\r\n * @return A promise when the shader gets ready.\r\n */\r\n mountAsync( Extensions?: Record ): Promise {\r\n return new Promise( ( resolve, reject ) => {\r\n this.mount( Extensions );\r\n const { on } = EventInterface( this );\r\n on( EVENT_SHADER_CAROUSEL_READY, resolve );\r\n on( EVENT_SHADER_CAROUSEL_ERROR, reject );\r\n } );\r\n }\r\n}", "import * as shaders from '../shaders';\r\nimport { SplideShaderCarousel as Core } from '../';\r\n\r\n\r\n/**\r\n * Lets the compiler know the global variable.\r\n */\r\ndeclare global {\r\n interface Window {\r\n SplideShaderCarousel: typeof SplideShaderCarousel;\r\n }\r\n}\r\n\r\n/**\r\n * Provides some data as static variables\r\n *\r\n * @since 0.0.1\r\n */\r\nclass SplideShaderCarousel extends Core {\r\n /**\r\n * Stores all shaders.\r\n */\r\n static shaders = shaders;\r\n}\r\n\r\n/**\r\n * Exposes the class as the global object.\r\n */\r\nwindow.SplideShaderCarousel = SplideShaderCarousel;\r\n"], "mappings": "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", "names": ["require_three", "__commonJSMin", "exports", "module", "shaders_exports", "__export", "dissolve_default", "mask_default", "wipe_default", "_defineProperties", "target", "props", "i", "descriptor", "_createClass", "Constructor", "protoProps", "staticProps", "MEDIA_PREFERS_REDUCED_MOTION", "CREATED", "MOUNTED", "IDLE", "MOVING", "SCROLLING", "DRAGGING", "DESTROYED", "STATES", "empty", "array", "slice", "arrayLike", "start", "end", "apply", "func", "nextTick", "noop", "raf", "typeOf", "type", "subject", "isObject", "isNull", "isArray", "isFunction", "isString", "isUndefined", "isHTMLElement", "toArray", "value", "forEach", "values", "iteratee", "includes", "push", "items", "toggleClass", "elm", "classes", "add", "name", "addClass", "append", "parent", "children", "before", "nodes", "ref", "node", "matches", "selector", "children2", "child", "ownKeys", "forOwn", "object", "right", "key", "assign", "source", "merge", "omit", "keys", "removeAttribute", "elms", "attrs", "attr", "setAttribute", "value2", "create", "tag", "style", "prop", "display", "display2", "focus", "getAttribute", "hasClass", "className", "rect", "remove", "parseHtml", "html", "prevent", "e", "stopPropagation", "query", "queryAll", "removeClass", "timeOf", "unit", "PROJECT_CODE", "DATA_ATTRIBUTE", "assert", "condition", "message", "min", "max", "floor", "ceil", "abs", "approximatelyEqual", "x", "y", "epsilon", "between", "number", "exclusive", "minimum", "maximum", "clamp", "sign", "format", "string", "replacements", "forEach", "replacement", "pad", "number", "ids", "uniqueId", "prefix", "EventBinder", "listeners", "bind", "targets", "events", "callback", "options", "forEachEvent", "target", "event", "namespace", "isEventTarget", "remover", "unbind", "listener", "dispatch", "type", "detail", "e", "bubbles", "iteratee", "events2", "eventNS", "fragment", "destroy", "data", "empty", "EVENT_MOUNTED", "EVENT_READY", "EVENT_MOVE", "EVENT_MOVED", "EVENT_CLICK", "EVENT_ACTIVE", "EVENT_INACTIVE", "EVENT_VISIBLE", "EVENT_HIDDEN", "EVENT_REFRESH", "EVENT_UPDATED", "EVENT_RESIZE", "EVENT_RESIZED", "EVENT_DRAG", "EVENT_DRAGGING", "EVENT_DRAGGED", "EVENT_SCROLL", "EVENT_SCROLLED", "EVENT_OVERFLOW", "EVENT_DESTROY", "EVENT_ARROWS_MOUNTED", "EVENT_ARROWS_UPDATED", "EVENT_PAGINATION_MOUNTED", "EVENT_PAGINATION_UPDATED", "EVENT_NAVIGATION_MOUNTED", "EVENT_AUTOPLAY_PLAY", "EVENT_AUTOPLAY_PLAYING", "EVENT_AUTOPLAY_PAUSE", "EVENT_LAZYLOAD_LOADED", "EVENT_SLIDE_KEYDOWN", "EVENT_SHIFTED", "EVENT_END_INDEX_CHANGED", "EventInterface", "Splide2", "bus", "binder", "on", "toArray", "isArray", "emit", "slice", "assign", "apply", "RequestInterval", "interval", "onInterval", "onUpdate", "limit", "now", "startTime", "rate", "id", "paused", "count", "update", "min", "pause", "raf", "start", "resume", "cancel", "rewind", "set", "time", "isPaused", "State", "initialState", "state", "value", "is", "states", "includes", "Throttle", "func", "duration", "Media", "Components2", "breakpoints", "reducedMotion", "queries", "setup", "isMin", "ownKeys", "n", "m", "key", "register", "MEDIA_PREFERS_REDUCED_MOTION", "completely", "options2", "query", "queryList", "destroyed", "DESTROYED", "direction", "merged", "merged2", "entry", "merge", "omit", "reduce", "enable", "opts", "base", "notify", "CREATED", "ARROW", "ARROW_LEFT", "ARROW_RIGHT", "ARROW_UP", "ARROW_DOWN", "RTL", "TTB", "ORIENTATION_MAP", "ARROW_UP", "ARROW_RIGHT", "ARROW_DOWN", "ARROW_LEFT", "Direction", "Splide2", "Components2", "options", "resolve", "prop", "axisOnly", "direction", "index", "match", "offset", "replacement", "orient", "value", "ROLE", "TAB_INDEX", "DISABLED", "ARIA_PREFIX", "ARIA_CONTROLS", "ARIA_CURRENT", "ARIA_SELECTED", "ARIA_LABEL", "ARIA_LABELLEDBY", "ARIA_HIDDEN", "ARIA_ORIENTATION", "ARIA_ROLEDESCRIPTION", "ARIA_LIVE", "ARIA_BUSY", "ARIA_ATOMIC", "ALL_ATTRIBUTES", "CLASS_PREFIX", "PROJECT_CODE", "STATUS_CLASS_PREFIX", "CLASS_ROOT", "CLASS_TRACK", "CLASS_LIST", "CLASS_SLIDE", "CLASS_CLONE", "CLASS_CONTAINER", "CLASS_ARROWS", "CLASS_ARROW", "CLASS_ARROW_PREV", "CLASS_ARROW_NEXT", "CLASS_PAGINATION", "CLASS_PAGINATION_PAGE", "CLASS_PROGRESS", "CLASS_PROGRESS_BAR", "CLASS_TOGGLE", "CLASS_TOGGLE_PLAY", "CLASS_TOGGLE_PAUSE", "CLASS_SPINNER", "CLASS_SR", "CLASS_INITIALIZED", "CLASS_ACTIVE", "CLASS_PREV", "CLASS_NEXT", "CLASS_VISIBLE", "CLASS_LOADING", "CLASS_FOCUS_IN", "CLASS_OVERFLOW", "STATUS_CLASSES", "CLASSES", "closest", "from", "selector", "isFunction", "elm", "matches", "FRICTION", "LOG_INTERVAL", "POINTER_DOWN_EVENTS", "POINTER_MOVE_EVENTS", "POINTER_UP_EVENTS", "Elements", "_EventInterface", "EventInterface", "on", "bind", "root", "i18n", "elements", "slides", "rootClasses", "trackClasses", "track", "list", "isUsingKey", "setup", "collect", "init", "update", "mount", "EVENT_REFRESH", "destroy", "EVENT_UPDATED", "e", "toggleClass", "completely", "attrs", "empty", "removeClass", "removeAttribute", "getClasses", "addClass", "setAttribute", "find", "child", "assert", "push", "children", "forOwn", "className", "key", "assign", "id", "uniqueId", "role", "getAttribute", "query", "base", "SLIDE", "LOOP", "FADE", "Slide$1", "slideIndex", "slide", "event", "emit", "Components", "isNavigation", "updateOnMove", "pagination", "slideFocus", "styles", "label", "isClone", "container", "destroyed", "pad", "format", "listen", "apply", "EVENT_CLICK", "self", "EVENT_SLIDE_KEYDOWN", "EVENT_MOVED", "EVENT_SHIFTED", "EVENT_SCROLLED", "EVENT_NAVIGATION_MOUNTED", "initNavigation", "EVENT_MOVE", "onMove", "controls", "target", "Slide2", "curr", "updateActivity", "updateVisibility", "active", "isActive", "hasClass", "EVENT_ACTIVE", "EVENT_INACTIVE", "visible", "isVisible", "hidden", "MOVING", "SCROLLING", "queryAll", "EVENT_VISIBLE", "EVENT_HIDDEN", "focus", "style$1", "useContainer", "style", "trackRect", "rect", "slideRect", "left", "right", "floor", "ceil", "isWithin", "distance", "diff", "abs", "min", "Slides", "_EventInterface2", "_Components2$Elements", "Slides2", "register", "forEach$1", "object", "Slide1", "get", "excludeClones", "filter", "getIn", "page", "Controller", "max", "between", "getAt", "add", "items", "forEach", "isString", "parseHtml", "isHTMLElement", "ref", "before", "append", "observeImages", "EVENT_RESIZE", "remove$1", "matcher", "remove", "iteratee", "includes", "toArray", "callback", "images", "length", "img", "getLength", "isEnough", "Layout", "_EventInterface3", "_Components2$Elements2", "styleSlides", "vertical", "rootRect", "overflow", "Throttle", "resize", "unit", "cssPadding", "force", "newRect", "cssTrackHeight", "cssSlideWidth", "cssSlideHeight", "EVENT_RESIZED", "isOverflow", "EVENT_OVERFLOW", "padding", "isObject", "height", "cssHeight", "cssSlideSize", "gap", "listSize", "slideSize", "withoutGap", "Slide", "getGap", "totalSize", "sliderSize", "getPadding", "MULTIPLIER", "Clones", "clones", "cloneCount", "remount", "observe", "computeCloneCount", "generate", "count", "isHead", "clone", "cloneDeep", "clones2", "isUndefined", "fixedSize", "fixedCount", "Move", "_EventInterface4", "set", "_Components2$Layout", "_Components2$Directio", "_Components2$Elements3", "Transition", "EVENT_MOUNTED", "reposition", "jump", "move", "dest", "prev", "canShift", "cancel", "translate", "shift", "getPosition", "IDLE", "toPosition", "position", "preventLoop", "destination", "loop", "toIndex", "exceededMax", "exceededMin", "backwards", "excess", "getLimit", "size", "minDistance", "i", "trimming", "trim", "clamp", "shifted", "exceededLimit", "_EventInterface5", "_Components2$Slides", "omitEnd", "isLoop", "isSlide", "getNext", "getAdjacent", "getPrev", "currIndex", "endIndex", "prevIndex", "slideCount", "perMove", "perPage", "EVENT_END_INDEX_CHANGED", "onResized", "getEnd", "go", "control", "allowSameIndex", "isBusy", "parse", "setIndex", "scroll", "duration", "snap", "_ref", "indicator", "number", "computeDestIndex", "hasFocus", "approximatelyEqual", "snapPage", "computeMovableDestIndex", "toPage", "end", "toDest", "getIndex", "XML_NAME_SPACE", "PATH", "SIZE", "Arrows", "classes", "placeholder", "wrapper", "next", "created", "wrapperClasses", "arrows", "enabled", "createArrows", "display", "EVENT_ARROWS_MOUNTED", "create", "createArrow", "prev2", "arrow", "nextIndex", "prevLabel", "nextLabel", "EVENT_ARROWS_UPDATED", "INTERVAL_DATA_ATTRIBUTE", "DATA_ATTRIBUTE", "Autoplay", "_EventInterface6", "interval", "RequestInterval", "onAnimationFrame", "isPaused", "_Components2$Elements4", "toggle", "autoplay", "hovered", "focused", "stopped", "play", "autoToggle", "pause", "EVENT_SCROLL", "EVENT_AUTOPLAY_PLAY", "stop", "EVENT_AUTOPLAY_PAUSE", "rate", "bar", "EVENT_AUTOPLAY_PLAYING", "Cover", "_EventInterface7", "EVENT_LAZYLOAD_LOADED", "cover", "cover2", "BOUNCE_DIFF_THRESHOLD", "BOUNCE_DURATION", "FRICTION_FACTOR", "BASE_VELOCITY", "MIN_DURATION", "Scroll", "_EventInterface8", "friction", "clear", "onScrolled", "noConstrain", "sign", "noDistance", "onEnd", "to", "easing", "t", "easingFunc", "SCROLL_LISTENER_OPTIONS", "Drag", "_EventInterface9", "unbind", "state", "reduce", "_Components2$Directio2", "basePosition", "baseEvent", "prevBaseEvent", "isFree", "dragging", "exceeded", "clickPrevented", "disabled", "noop", "onPointerDown", "onClick", "prevent", "drag", "disable", "isTouch", "isTouchEvent", "isDraggable", "onPointerMove", "onPointerUp", "save", "DRAGGING", "EVENT_DRAG", "constrain", "diffCoord", "expired", "diffTime", "hasExceeded", "EVENT_DRAGGING", "isSliderDirection", "shouldStart", "EVENT_DRAGGED", "velocity", "computeVelocity", "computeDestination", "rewind", "thresholds", "isObj", "mouse", "touch", "time", "orthogonal", "coordOf", "getBaseEvent", "timeOf", "target2", "noDrag", "isDragging", "NORMALIZATION_MAP", "normalizeKey", "KEYBOARD_EVENT", "Keyboard", "_EventInterface10", "keyboard", "onKeydown", "_disabled", "nextTick", "SRC_DATA_ATTRIBUTE", "SRCSET_DATA_ATTRIBUTE", "IMAGE_SELECTOR", "LazyLoad", "_EventInterface11", "off", "isSequential", "events", "entries", "loadNext", "check", "src", "srcset", "parent", "spinner", "data", "load", "onLoad", "Pagination", "paginationClasses", "createPagination", "EVENT_PAGINATION_MOUNTED", "slice", "getDirection", "li", "button", "text", "dir", "nextPage", "item", "_button", "EVENT_PAGINATION_UPDATED", "TRIGGER_KEYS", "Sync", "sync", "navigate", "splide", "Wheel", "_EventInterface12", "lastTime", "onWheel", "deltaY", "timeStamp", "_min", "sleep", "shouldPrevent", "SR_REMOVAL_DELAY", "Live", "_EventInterface13", "sr", "ComponentConstructors", "Media", "I18N", "DEFAULTS", "Fade", "start", "done", "transition", "endCallback", "speed", "getSpeed", "rewindSpeed", "_Splide", "State", "CREATED", "merge", "_proto", "Extensions", "_this", "DESTROYED", "Constructors", "Component", "component", "EVENT_READY", "_this$event", "type", "EVENT_DESTROY", "_createClass", "Splide", "STATES", "import_three", "Renderer", "canvas", "material", "textures", "texture", "width", "height", "aspect", "viewWidth", "viewHeight", "renderer", "camera", "fovRad", "import_three", "Material", "vertexShader", "fragmentShader", "sources", "mask", "textures", "texture", "width", "height", "index", "aspect", "imageWidth", "imageHeight", "reverse", "curr", "next", "currTexture", "nextTexture", "uniforms", "progress", "params", "intensity", "uvOffset", "source", "video", "resolve", "onCanplay", "image", "DEFAULTS", "clamp", "value", "min", "max", "ShaderCarousel", "canvas", "fragmentShader", "options", "DEFAULTS", "EventInterface", "Material", "general_default", "Renderer", "sources", "onReady", "preDecoding", "resolve", "index", "reverse", "auto", "curr", "clamp", "width", "height", "progress", "texture", "material", "length", "textures", "next", "prev", "Throttle", "speed", "RequestInterval", "easingFunc", "t", "EVENT_SHADER_CAROUSEL_READY", "EVENT_SHADER_CAROUSEL_ERROR", "BackgroundShaderCarousel", "Splide", "Components", "options", "on", "emit", "EventInterface", "track", "canvas", "shaderCarousel", "sources", "images", "srFields", "mount", "initCanvas", "initCarousel", "initSources", "initMaterial", "mountCarousel", "classList", "CLASS_LOADING", "CLASS_INITIALIZED", "EVENT_SHADER_CAROUSEL_READY", "e", "EVENT_SHADER_CAROUSEL_ERROR", "listen", "index", "prev", "length", "reverse", "LOOP", "destroy", "field", "img", "style", "ShaderCarousel", "DEFAULTS", "sourcesOption", "initSlide", "Slide", "alt", "span", "CLASS_SR", "material", "SplideShaderCarousel", "Splide", "canvas", "context", "target", "fragmentShader", "options", "DEFAULTS", "Extensions", "BackgroundShaderCarousel", "CLASS_INITIALIZED", "resolve", "reject", "on", "EventInterface", "EVENT_SHADER_CAROUSEL_READY", "EVENT_SHADER_CAROUSEL_ERROR", "SplideShaderCarousel", "__publicField", "shaders_exports"] }