UNPKG

vue-carousel-lite

Version:

Fast, Lightweight Vue Carousel With Touch, Mouse, Keyboard, Wheel & SSR support

60 lines (58 loc) 1.97 kB
import { CarouselProps } from '../types'; import { ComputedRef, Ref } from 'vue'; interface UseCarouselOptions { props: CarouselProps; slideWidth: Ref<number>; slideHeight: Ref<number>; itemsToShow: ComputedRef<number>; } export declare function useCarousel({ props, slideWidth, slideHeight, itemsToShow }: UseCarouselOptions): { carouselTrack: Ref<HTMLElement, HTMLElement>; carouselContainer: Ref<HTMLElement, HTMLElement>; state: { readonly currentIndex: number; readonly isTransitioning: boolean; readonly isDragging: boolean; readonly isHovered: boolean; readonly isWheeling: boolean; }; canGoNext: ComputedRef<boolean>; canGoPrev: ComputedRef<boolean>; progress: ComputedRef<number>; visibleSlideIndices: ComputedRef<number[]>; renderedSlideIndices: ComputedRef<number[]>; virtualOffset: ComputedRef<number>; goToSlide: (index: number, smooth?: boolean) => void; goNext: (smooth?: boolean) => void; goPrev: (smooth?: boolean) => void; goNextPage: (smooth?: boolean) => void; goPrevPage: (smooth?: boolean) => void; trackStyle: ComputedRef<{ transform: string; transition: string; }>; dragComposable: { isDragging: Readonly<Ref<boolean, boolean>>; deltaX: Readonly<Ref<number, number>>; deltaY: Readonly<Ref<number, number>>; }; wheelComposable: { isWheeling: Readonly<Ref<boolean, boolean>>; }; hoverComposable: { isHovered: Readonly<Ref<boolean, boolean>>; }; keyboardComposable: { focus: () => void; }; autoplayComposable: { isAutoplayActive: Readonly<Ref<boolean, boolean>>; isAutoplayPaused: Readonly<Ref<boolean, boolean>>; startAutoplay: () => void; stopAutoplay: () => void; pauseAutoplay: () => void; resumeAutoplay: () => void; restartAutoplay: () => void; }; }; export {};