{"version":3,"file":"carousel.es-dQSpSRGx.js","sources":["../../../node_modules/vue3-carousel/dist/carousel.es.js"],"sourcesContent":["/**\n * Vue 3 Carousel 0.2.16\n * (c) 2023\n * @license MIT\n */\nimport { Fragment, defineComponent, inject, ref, h, reactive, provide, onMounted, nextTick, onUnmounted, computed, watch, cloneVNode } from 'vue';\n\nconst defaultConfigs = {\r\n itemsToShow: 1,\r\n itemsToScroll: 1,\r\n modelValue: 0,\r\n transition: 300,\r\n autoplay: 0,\r\n snapAlign: 'center',\r\n wrapAround: false,\r\n throttle: 16,\r\n pauseAutoplayOnHover: false,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n dir: 'ltr',\r\n breakpoints: undefined,\r\n};\n\nconst carouselProps = {\r\n // count of items to showed per view\r\n itemsToShow: {\r\n default: defaultConfigs.itemsToShow,\r\n type: Number,\r\n },\r\n // count of items to be scrolled\r\n itemsToScroll: {\r\n default: defaultConfigs.itemsToScroll,\r\n type: Number,\r\n },\r\n // control infinite scrolling mode\r\n wrapAround: {\r\n default: defaultConfigs.wrapAround,\r\n type: Boolean,\r\n },\r\n // control max drag\r\n throttle: {\r\n default: defaultConfigs.throttle,\r\n type: Number,\r\n },\r\n // control snap position alignment\r\n snapAlign: {\r\n default: defaultConfigs.snapAlign,\r\n validator(value) {\r\n // The value must match one of these strings\r\n return ['start', 'end', 'center', 'center-even', 'center-odd'].includes(value);\r\n },\r\n },\r\n // sliding transition time in ms\r\n transition: {\r\n default: defaultConfigs.transition,\r\n type: Number,\r\n },\r\n // an object to store breakpoints\r\n breakpoints: {\r\n default: defaultConfigs.breakpoints,\r\n type: Object,\r\n },\r\n // time to auto advance slides in ms\r\n autoplay: {\r\n default: defaultConfigs.autoplay,\r\n type: Number,\r\n },\r\n // pause autoplay when mouse hover over the carousel\r\n pauseAutoplayOnHover: {\r\n default: defaultConfigs.pauseAutoplayOnHover,\r\n type: Boolean,\r\n },\r\n // slide number number of initial slide\r\n modelValue: {\r\n default: undefined,\r\n type: Number,\r\n },\r\n // toggle mouse dragging.\r\n mouseDrag: {\r\n default: defaultConfigs.mouseDrag,\r\n type: Boolean,\r\n },\r\n // toggle mouse dragging.\r\n touchDrag: {\r\n default: defaultConfigs.touchDrag,\r\n type: Boolean,\r\n },\r\n // control snap position alignment\r\n dir: {\r\n default: defaultConfigs.dir,\r\n validator(value) {\r\n // The value must match one of these strings\r\n return ['rtl', 'ltr'].includes(value);\r\n },\r\n },\r\n // an object to pass all settings\r\n settings: {\r\n default() {\r\n return {};\r\n },\r\n type: Object,\r\n },\r\n};\n\nfunction getMaxSlideIndex({ config, slidesCount }) {\r\n const { snapAlign, wrapAround, itemsToShow = 1 } = config;\r\n if (wrapAround) {\r\n return Math.max(slidesCount - 1, 0);\r\n }\r\n let output;\r\n switch (snapAlign) {\r\n case 'start':\r\n output = slidesCount - itemsToShow;\r\n break;\r\n case 'end':\r\n output = slidesCount - 1;\r\n break;\r\n case 'center':\r\n case 'center-odd':\r\n output = slidesCount - Math.ceil((itemsToShow - 0.5) / 2);\r\n break;\r\n case 'center-even':\r\n output = slidesCount - Math.ceil(itemsToShow / 2);\r\n break;\r\n default:\r\n output = 0;\r\n break;\r\n }\r\n return Math.max(output, 0);\r\n}\n\nfunction getMinSlideIndex({ config, slidesCount }) {\r\n const { wrapAround, snapAlign, itemsToShow = 1 } = config;\r\n let output = 0;\r\n if (wrapAround || itemsToShow > slidesCount) {\r\n return output;\r\n }\r\n switch (snapAlign) {\r\n case 'start':\r\n output = 0;\r\n break;\r\n case 'end':\r\n output = itemsToShow - 1;\r\n break;\r\n case 'center':\r\n case 'center-odd':\r\n output = Math.floor((itemsToShow - 1) / 2);\r\n break;\r\n case 'center-even':\r\n output = Math.floor((itemsToShow - 2) / 2);\r\n break;\r\n default:\r\n output = 0;\r\n break;\r\n }\r\n return output;\r\n}\n\nfunction getNumberInRange({ val, max, min }) {\r\n if (max < min) {\r\n return val;\r\n }\r\n return Math.min(Math.max(val, min), max);\r\n}\n\nfunction getSlidesToScroll({ config, currentSlide, slidesCount }) {\r\n const { snapAlign, wrapAround, itemsToShow = 1 } = config;\r\n let output = currentSlide;\r\n switch (snapAlign) {\r\n case 'center':\r\n case 'center-odd':\r\n output -= (itemsToShow - 1) / 2;\r\n break;\r\n case 'center-even':\r\n output -= (itemsToShow - 2) / 2;\r\n break;\r\n case 'end':\r\n output -= itemsToShow - 1;\r\n break;\r\n }\r\n if (wrapAround) {\r\n return output;\r\n }\r\n return getNumberInRange({\r\n val: output,\r\n max: slidesCount - itemsToShow,\r\n min: 0,\r\n });\r\n}\n\nfunction getSlidesVNodes(vNode) {\r\n if (!vNode)\r\n return [];\r\n return vNode.reduce((acc, node) => {\r\n var _a;\r\n if (node.type === Fragment) {\r\n return [...acc, ...getSlidesVNodes(node.children)];\r\n }\r\n if (((_a = node.type) === null || _a === void 0 ? void 0 : _a.name) === 'CarouselSlide') {\r\n return [...acc, node];\r\n }\r\n return acc;\r\n }, []);\r\n}\n\nfunction mapNumberToRange({ val, max, min = 0 }) {\r\n if (val > max) {\r\n return mapNumberToRange({ val: val - (max + 1), max, min });\r\n }\r\n if (val < min) {\r\n return mapNumberToRange({ val: val + (max + 1), max, min });\r\n }\r\n return val;\r\n}\n\n/**\r\n * return a throttle version of the function\r\n * Throttling\r\n *\r\n */\r\n// eslint-disable-next-line no-unused-vars\r\nfunction throttle(fn, limit) {\r\n let inThrottle;\r\n if (!limit) {\r\n return fn;\r\n }\r\n return function (...args) {\r\n const self = this;\r\n if (!inThrottle) {\r\n fn.apply(self, args);\r\n inThrottle = true;\r\n setTimeout(() => (inThrottle = false), limit);\r\n }\r\n };\r\n}\n\n/**\r\n * return a debounced version of the function\r\n * @param fn\r\n * @param delay\r\n */\r\n// eslint-disable-next-line no-unused-vars\r\nfunction debounce(fn, delay) {\r\n let timerId;\r\n return function (...args) {\r\n if (timerId) {\r\n clearTimeout(timerId);\r\n }\r\n timerId = setTimeout(() => {\r\n fn(...args);\r\n timerId = null;\r\n }, delay);\r\n };\r\n}\n\nvar ARIAComponent = defineComponent({\r\n name: 'ARIA',\r\n setup() {\r\n const currentSlide = inject('currentSlide', ref(0));\r\n const slidesCount = inject('slidesCount', ref(0));\r\n return () => h('div', {\r\n class: ['carousel__liveregion', 'carousel__sr-only'],\r\n 'aria-live': 'polite',\r\n 'aria-atomic': 'true',\r\n }, `Item ${currentSlide.value + 1} of ${slidesCount.value}`);\r\n },\r\n});\n\nvar Carousel = defineComponent({\r\n name: 'Carousel',\r\n props: carouselProps,\r\n setup(props, { slots, emit, expose }) {\r\n var _a;\r\n const root = ref(null);\r\n const slides = ref([]);\r\n const slideWidth = ref(0);\r\n const slidesCount = ref(0);\r\n let breakpoints = ref({});\r\n // generate carousel configs\r\n let __defaultConfig = Object.assign({}, defaultConfigs);\r\n // current config\r\n const config = reactive(Object.assign({}, __defaultConfig));\r\n // slides\r\n const currentSlideIndex = ref((_a = props.modelValue) !== null && _a !== void 0 ? _a : 0);\r\n const prevSlideIndex = ref(0);\r\n const middleSlideIndex = ref(0);\r\n const maxSlideIndex = ref(0);\r\n const minSlideIndex = ref(0);\r\n let autoplayTimer;\r\n let transitionTimer;\r\n provide('config', config);\r\n provide('slidesCount', slidesCount);\r\n provide('currentSlide', currentSlideIndex);\r\n provide('maxSlide', maxSlideIndex);\r\n provide('minSlide', minSlideIndex);\r\n provide('slideWidth', slideWidth);\r\n /**\r\n * Configs\r\n */\r\n function initDefaultConfigs() {\r\n // generate carousel configs\r\n const mergedConfigs = Object.assign(Object.assign({}, props), props.settings);\r\n // Set breakpoints\r\n breakpoints = ref(Object.assign({}, mergedConfigs.breakpoints));\r\n // remove extra values\r\n __defaultConfig = Object.assign(Object.assign({}, mergedConfigs), { settings: undefined, breakpoints: undefined });\r\n bindConfigs(__defaultConfig);\r\n }\r\n function updateBreakpointsConfigs() {\r\n if (!Object.keys(breakpoints.value).length)\r\n return;\r\n const breakpointsArray = Object.keys(breakpoints.value)\r\n .map((key) => Number(key))\r\n .sort((a, b) => +b - +a);\r\n let newConfig = Object.assign({}, __defaultConfig);\r\n breakpointsArray.some((breakpoint) => {\r\n const isMatched = window.matchMedia(`(min-width: ${breakpoint}px)`).matches;\r\n if (isMatched) {\r\n newConfig = Object.assign(Object.assign({}, newConfig), breakpoints.value[breakpoint]);\r\n return true;\r\n }\r\n return false;\r\n });\r\n bindConfigs(newConfig);\r\n }\r\n function bindConfigs(newConfig) {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n //@ts-ignore\r\n Object.entries(newConfig).forEach(([key, val]) => (config[key] = val));\r\n }\r\n const handleWindowResize = debounce(() => {\r\n updateBreakpointsConfigs();\r\n updateSlidesData();\r\n updateSlideWidth();\r\n }, 16);\r\n /**\r\n * Setup functions\r\n */\r\n function updateSlideWidth() {\r\n if (!root.value)\r\n return;\r\n const rect = root.value.getBoundingClientRect();\r\n slideWidth.value = rect.width / config.itemsToShow;\r\n }\r\n function updateSlidesData() {\r\n if (slidesCount.value <= 0)\r\n return;\r\n middleSlideIndex.value = Math.ceil((slidesCount.value - 1) / 2);\r\n maxSlideIndex.value = getMaxSlideIndex({ config, slidesCount: slidesCount.value });\r\n minSlideIndex.value = getMinSlideIndex({ config, slidesCount: slidesCount.value });\r\n if (!config.wrapAround) {\r\n currentSlideIndex.value = getNumberInRange({\r\n val: currentSlideIndex.value,\r\n max: maxSlideIndex.value,\r\n min: minSlideIndex.value,\r\n });\r\n }\r\n }\r\n onMounted(() => {\r\n nextTick(() => setTimeout(() => {\r\n updateBreakpointsConfigs();\r\n updateSlidesData();\r\n updateSlideWidth();\r\n emit('init');\r\n }, 16));\r\n initAutoplay();\r\n window.addEventListener('resize', handleWindowResize, { passive: true });\r\n });\r\n onUnmounted(() => {\r\n if (transitionTimer) {\r\n clearTimeout(transitionTimer);\r\n }\r\n if (autoplayTimer) {\r\n clearInterval(autoplayTimer);\r\n }\r\n window.removeEventListener('resize', handleWindowResize, {\r\n passive: true,\r\n });\r\n });\r\n /**\r\n * Carousel Event listeners\r\n */\r\n let isTouch = false;\r\n const startPosition = { x: 0, y: 0 };\r\n const endPosition = { x: 0, y: 0 };\r\n const dragged = reactive({ x: 0, y: 0 });\r\n const isHover = ref(false);\r\n const handleMouseEnter = () => {\r\n isHover.value = true;\r\n };\r\n const handleMouseLeave = () => {\r\n isHover.value = false;\r\n };\r\n function handleDragStart(event) {\r\n if (['INPUT', 'TEXTAREA', 'SELECT'].includes(event.target.tagName)) {\r\n return;\r\n }\r\n isTouch = event.type === 'touchstart';\r\n if (!isTouch) {\r\n event.preventDefault();\r\n }\r\n if ((!isTouch && event.button !== 0) || isSliding.value) {\r\n return;\r\n }\r\n startPosition.x = isTouch ? event.touches[0].clientX : event.clientX;\r\n startPosition.y = isTouch ? event.touches[0].clientY : event.clientY;\r\n document.addEventListener(isTouch ? 'touchmove' : 'mousemove', handleDragging, true);\r\n document.addEventListener(isTouch ? 'touchend' : 'mouseup', handleDragEnd, true);\r\n }\r\n const handleDragging = throttle((event) => {\r\n endPosition.x = isTouch ? event.touches[0].clientX : event.clientX;\r\n endPosition.y = isTouch ? event.touches[0].clientY : event.clientY;\r\n const deltaX = endPosition.x - startPosition.x;\r\n const deltaY = endPosition.y - startPosition.y;\r\n dragged.y = deltaY;\r\n dragged.x = deltaX;\r\n }, config.throttle);\r\n function handleDragEnd() {\r\n const direction = config.dir === 'rtl' ? -1 : 1;\r\n const tolerance = Math.sign(dragged.x) * 0.4;\r\n const draggedSlides = Math.round(dragged.x / slideWidth.value + tolerance) * direction;\r\n // Prevent clicking if there is clicked slides\r\n if (draggedSlides && !isTouch) {\r\n const captureClick = (e) => {\r\n e.stopPropagation();\r\n window.removeEventListener('click', captureClick, true);\r\n };\r\n window.addEventListener('click', captureClick, true);\r\n }\r\n slideTo(currentSlideIndex.value - draggedSlides);\r\n dragged.x = 0;\r\n dragged.y = 0;\r\n document.removeEventListener(isTouch ? 'touchmove' : 'mousemove', handleDragging, true);\r\n document.removeEventListener(isTouch ? 'touchend' : 'mouseup', handleDragEnd, true);\r\n }\r\n /**\r\n * Autoplay\r\n */\r\n function initAutoplay() {\r\n if (!config.autoplay || config.autoplay <= 0) {\r\n return;\r\n }\r\n autoplayTimer = setInterval(() => {\r\n if (config.pauseAutoplayOnHover && isHover.value) {\r\n return;\r\n }\r\n next();\r\n }, config.autoplay);\r\n }\r\n function resetAutoplay() {\r\n if (autoplayTimer) {\r\n clearInterval(autoplayTimer);\r\n autoplayTimer = null;\r\n }\r\n initAutoplay();\r\n }\r\n /**\r\n * Navigation function\r\n */\r\n const isSliding = ref(false);\r\n function slideTo(slideIndex) {\r\n const currentVal = config.wrapAround\r\n ? slideIndex\r\n : getNumberInRange({\r\n val: slideIndex,\r\n max: maxSlideIndex.value,\r\n min: minSlideIndex.value,\r\n });\r\n if (currentSlideIndex.value === currentVal || isSliding.value) {\r\n return;\r\n }\r\n emit('slide-start', {\r\n slidingToIndex: slideIndex,\r\n currentSlideIndex: currentSlideIndex.value,\r\n prevSlideIndex: prevSlideIndex.value,\r\n slidesCount: slidesCount.value,\r\n });\r\n isSliding.value = true;\r\n prevSlideIndex.value = currentSlideIndex.value;\r\n currentSlideIndex.value = currentVal;\r\n transitionTimer = setTimeout(() => {\r\n if (config.wrapAround) {\r\n const mappedNumber = mapNumberToRange({\r\n val: currentVal,\r\n max: maxSlideIndex.value,\r\n min: 0,\r\n });\r\n if (mappedNumber !== currentSlideIndex.value) {\r\n currentSlideIndex.value = mappedNumber;\r\n emit('loop', {\r\n currentSlideIndex: currentSlideIndex.value,\r\n slidingToIndex: slideIndex,\r\n });\r\n }\r\n }\r\n emit('update:modelValue', currentSlideIndex.value);\r\n emit('slide-end', {\r\n currentSlideIndex: currentSlideIndex.value,\r\n prevSlideIndex: prevSlideIndex.value,\r\n slidesCount: slidesCount.value,\r\n });\r\n isSliding.value = false;\r\n resetAutoplay();\r\n }, config.transition);\r\n }\r\n function next() {\r\n slideTo(currentSlideIndex.value + config.itemsToScroll);\r\n }\r\n function prev() {\r\n slideTo(currentSlideIndex.value - config.itemsToScroll);\r\n }\r\n const nav = { slideTo, next, prev };\r\n provide('nav', nav);\r\n provide('isSliding', isSliding);\r\n /**\r\n * Track style\r\n */\r\n const slidesToScroll = computed(() => getSlidesToScroll({\r\n config,\r\n currentSlide: currentSlideIndex.value,\r\n slidesCount: slidesCount.value,\r\n }));\r\n provide('slidesToScroll', slidesToScroll);\r\n const trackStyle = computed(() => {\r\n const direction = config.dir === 'rtl' ? -1 : 1;\r\n const xScroll = slidesToScroll.value * slideWidth.value * direction;\r\n return {\r\n transform: `translateX(${dragged.x - xScroll}px)`,\r\n transition: `${isSliding.value ? config.transition : 0}ms`,\r\n margin: config.wrapAround ? `0 -${slidesCount.value * slideWidth.value}px` : '',\r\n width: `100%`,\r\n };\r\n });\r\n function restartCarousel() {\r\n initDefaultConfigs();\r\n updateBreakpointsConfigs();\r\n updateSlidesData();\r\n updateSlideWidth();\r\n resetAutoplay();\r\n }\r\n // Update the carousel on props change\r\n Object.keys(carouselProps).forEach((prop) => {\r\n if (['modelValue'].includes(prop))\r\n return;\r\n watch(() => props[prop], restartCarousel);\r\n });\r\n // Handle changing v-model value\r\n watch(() => props['modelValue'], (val) => {\r\n if (val !== currentSlideIndex.value) {\r\n slideTo(Number(val));\r\n }\r\n });\r\n // Handel when slides added/removed\r\n watch(slidesCount, updateSlidesData);\r\n // Init carousel\r\n initDefaultConfigs();\r\n const data = {\r\n config,\r\n slidesCount,\r\n slideWidth,\r\n next,\r\n prev,\r\n slideTo,\r\n currentSlide: currentSlideIndex,\r\n maxSlide: maxSlideIndex,\r\n minSlide: minSlideIndex,\r\n middleSlide: middleSlideIndex,\r\n };\r\n expose({\r\n updateBreakpointsConfigs,\r\n updateSlidesData,\r\n updateSlideWidth,\r\n initDefaultConfigs,\r\n restartCarousel,\r\n slideTo,\r\n next,\r\n prev,\r\n nav,\r\n data,\r\n });\r\n const slotSlides = slots.default || slots.slides;\r\n const slotAddons = slots.addons;\r\n const slotsProps = reactive(data);\r\n return () => {\r\n const slidesElements = getSlidesVNodes(slotSlides === null || slotSlides === void 0 ? void 0 : slotSlides(slotsProps));\r\n const addonsElements = (slotAddons === null || slotAddons === void 0 ? void 0 : slotAddons(slotsProps)) || [];\r\n slidesElements.forEach((el, index) => (el.props.index = index));\r\n let output = slidesElements;\r\n if (config.wrapAround) {\r\n const slidesBefore = slidesElements.map((el, index) => cloneVNode(el, {\r\n index: -slidesElements.length + index,\r\n isClone: true,\r\n key: `clone-before-${index}`,\r\n }));\r\n const slidesAfter = slidesElements.map((el, index) => cloneVNode(el, {\r\n index: slidesElements.length + index,\r\n isClone: true,\r\n key: `clone-after-${index}`,\r\n }));\r\n output = [...slidesBefore, ...slidesElements, ...slidesAfter];\r\n }\r\n slides.value = slidesElements;\r\n slidesCount.value = Math.max(slidesElements.length, 1);\r\n const trackEl = h('ol', {\r\n class: 'carousel__track',\r\n style: trackStyle.value,\r\n onMousedownCapture: config.mouseDrag ? handleDragStart : null,\r\n onTouchstartPassiveCapture: config.touchDrag ? handleDragStart : null,\r\n }, output);\r\n const viewPortEl = h('div', { class: 'carousel__viewport' }, trackEl);\r\n return h('section', {\r\n ref: root,\r\n class: {\r\n carousel: true,\r\n 'carousel--rtl': config.dir === 'rtl',\r\n },\r\n dir: config.dir,\r\n 'aria-label': 'Gallery',\r\n tabindex: '0',\r\n onMouseenter: handleMouseEnter,\r\n onMouseleave: handleMouseLeave,\r\n }, [viewPortEl, addonsElements, h(ARIAComponent)]);\r\n };\r\n },\r\n});\n\nconst icons = {\r\n arrowUp: 'M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z',\r\n arrowDown: 'M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z',\r\n arrowRight: 'M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z',\r\n arrowLeft: 'M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z',\r\n};\n\nconst Icon = (props) => {\r\n const iconName = props.name;\r\n if (!iconName || typeof iconName !== 'string') {\r\n return;\r\n }\r\n const path = icons[iconName];\r\n const pathEl = h('path', { d: path });\r\n const iconTitle = (props.title || iconName);\r\n const titleEl = h('title', iconTitle);\r\n return h('svg', {\r\n class: 'carousel__icon',\r\n viewBox: '0 0 24 24',\r\n role: 'img',\r\n ariaLabel: iconTitle,\r\n }, [titleEl, pathEl]);\r\n};\r\nIcon.props = { name: String, title: String };\n\nconst Navigation = (props, { slots, attrs }) => {\r\n const { next: slotNext, prev: slotPrev } = slots || {};\r\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\r\n const maxSlide = inject('maxSlide', ref(1));\r\n const minSlide = inject('minSlide', ref(1));\r\n const currentSlide = inject('currentSlide', ref(1));\r\n const nav = inject('nav', {});\r\n const { dir, wrapAround } = config;\r\n const isRTL = dir === 'rtl';\r\n const prevButton = h('button', {\r\n type: 'button',\r\n class: [\r\n 'carousel__prev',\r\n !wrapAround && currentSlide.value <= minSlide.value && 'carousel__prev--disabled',\r\n attrs === null || attrs === void 0 ? void 0 : attrs.class,\r\n ],\r\n 'aria-label': `Navigate to previous slide`,\r\n onClick: nav.prev,\r\n }, (slotPrev === null || slotPrev === void 0 ? void 0 : slotPrev()) || h(Icon, { name: isRTL ? 'arrowRight' : 'arrowLeft' }));\r\n const nextButton = h('button', {\r\n type: 'button',\r\n class: [\r\n 'carousel__next',\r\n !wrapAround && currentSlide.value >= maxSlide.value && 'carousel__next--disabled',\r\n attrs === null || attrs === void 0 ? void 0 : attrs.class,\r\n ],\r\n 'aria-label': `Navigate to next slide`,\r\n onClick: nav.next,\r\n }, (slotNext === null || slotNext === void 0 ? void 0 : slotNext()) || h(Icon, { name: isRTL ? 'arrowLeft' : 'arrowRight' }));\r\n return [prevButton, nextButton];\r\n};\n\nconst Pagination = () => {\r\n const maxSlide = inject('maxSlide', ref(1));\r\n const minSlide = inject('minSlide', ref(1));\r\n const currentSlide = inject('currentSlide', ref(1));\r\n const nav = inject('nav', {});\r\n const isActive = (slide) => mapNumberToRange({\r\n val: currentSlide.value,\r\n max: maxSlide.value,\r\n min: 0,\r\n }) === slide;\r\n const children = [];\r\n for (let slide = minSlide.value; slide < maxSlide.value + 1; slide++) {\r\n const button = h('button', {\r\n type: 'button',\r\n class: {\r\n 'carousel__pagination-button': true,\r\n 'carousel__pagination-button--active': isActive(slide),\r\n },\r\n 'aria-label': `Navigate to slide ${slide + 1}`,\r\n onClick: () => nav.slideTo(slide),\r\n });\r\n const item = h('li', { class: 'carousel__pagination-item', key: slide }, button);\r\n children.push(item);\r\n }\r\n return h('ol', { class: 'carousel__pagination' }, children);\r\n};\n\nvar Slide = defineComponent({\r\n name: 'CarouselSlide',\r\n props: {\r\n index: {\r\n type: Number,\r\n default: 1,\r\n },\r\n isClone: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n setup(props, { slots }) {\r\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\r\n const currentSlide = inject('currentSlide', ref(0));\r\n const slidesToScroll = inject('slidesToScroll', ref(0));\r\n const slideWidth = inject('slideWidth', ref(0));\r\n const isSliding = inject('isSliding', ref(false));\r\n const slideStyle = computed(() => ({\r\n width: slideWidth.value ? `${slideWidth.value}px` : `100%`,\r\n }));\r\n const isActive = () => props.index === currentSlide.value;\r\n const isPrev = () => props.index === currentSlide.value - 1;\r\n const isNext = () => props.index === currentSlide.value + 1;\r\n const isVisible = () => {\r\n const min = Math.floor(slidesToScroll.value);\r\n const max = Math.ceil(slidesToScroll.value + config.itemsToShow - 1);\r\n return props.index >= min && props.index <= max;\r\n };\r\n return () => {\r\n var _a;\r\n return h('li', {\r\n style: slideStyle.value,\r\n class: {\r\n carousel__slide: true,\r\n 'carousel_slide--clone': props.isClone,\r\n 'carousel__slide--visible': isVisible(),\r\n 'carousel__slide--active': isActive(),\r\n 'carousel__slide--prev': isPrev(),\r\n 'carousel__slide--next': isNext(),\r\n 'carousel__slide--sliding': isSliding.value,\r\n },\r\n 'aria-hidden': !isVisible(),\r\n }, (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots));\r\n };\r\n },\r\n});\n\nexport { Carousel, Icon, Navigation, Pagination, Slide };\n"],"names":["defaultConfigs","carouselProps","value","getMaxSlideIndex","config","slidesCount","snapAlign","wrapAround","itemsToShow","output","getMinSlideIndex","getNumberInRange","val","max","min","getSlidesToScroll","currentSlide","getSlidesVNodes","vNode","acc","node","_a","Fragment","mapNumberToRange","throttle","fn","limit","inThrottle","args","self","debounce","delay","timerId","ARIAComponent","defineComponent","inject","ref","h","Carousel","props","slots","emit","expose","root","slides","slideWidth","breakpoints","__defaultConfig","reactive","currentSlideIndex","prevSlideIndex","middleSlideIndex","maxSlideIndex","minSlideIndex","autoplayTimer","transitionTimer","provide","initDefaultConfigs","mergedConfigs","bindConfigs","updateBreakpointsConfigs","breakpointsArray","key","a","b","newConfig","breakpoint","handleWindowResize","updateSlidesData","updateSlideWidth","rect","onMounted","nextTick","initAutoplay","onUnmounted","isTouch","startPosition","endPosition","dragged","isHover","handleMouseEnter","handleMouseLeave","handleDragStart","event","isSliding","handleDragging","handleDragEnd","deltaX","deltaY","direction","tolerance","draggedSlides","captureClick","e","slideTo","next","resetAutoplay","slideIndex","currentVal","mappedNumber","prev","nav","slidesToScroll","computed","trackStyle","xScroll","restartCarousel","prop","watch","data","slotSlides","slotAddons","slotsProps","slidesElements","addonsElements","el","index","slidesBefore","cloneVNode","slidesAfter","trackEl","viewPortEl","icons","Icon","iconName","path","pathEl","iconTitle","titleEl","Navigation","attrs","slotNext","slotPrev","maxSlide","minSlide","dir","isRTL","prevButton","nextButton","Pagination","isActive","slide","children","button","item","Slide","slideStyle","isPrev","isNext","isVisible"],"mappings":"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","x_google_ignoreList":[0]}