vuestic-ui
Version:
Vue 3 UI Framework
1 lines • 1.84 kB
Source Map (JSON)
{"version":3,"file":"useCarousel.mjs","sources":["../../../../../../src/components/va-carousel/hooks/useCarousel.ts"],"sourcesContent":["import { computed, Ref } from 'vue'\n\nexport const useCarousel = (props: {\n items: any[],\n infinite: boolean\n}, currentSlide: Ref<number>) => {\n const goTo = (index: number) => { currentSlide.value = index }\n const prev = () => {\n if (props.infinite) {\n if (currentSlide.value <= 0) {\n currentSlide.value = props.items.length - 1\n return\n }\n }\n\n currentSlide.value -= 1\n }\n const next = () => {\n if (props.infinite) {\n if (currentSlide.value >= props.items.length - 1) {\n currentSlide.value = 0\n return\n }\n }\n\n currentSlide.value += 1\n }\n\n const doShowDirectionButtons = computed(() => props.items.length > 1)\n const doShowPrevButton = computed(() => currentSlide.value > 0 || props.infinite)\n const doShowNextButton = computed(() => currentSlide.value < props.items.length - 1 || props.infinite)\n\n return {\n doShowPrevButton,\n doShowNextButton,\n doShowDirectionButtons,\n goTo,\n prev,\n next,\n }\n}\n"],"names":[],"mappings":";AAEa,MAAA,cAAc,CAAC,OAGzB,iBAA8B;AACzB,QAAA,OAAO,CAAC,UAAkB;AAAE,iBAAa,QAAQ;AAAA,EAAA;AACvD,QAAM,OAAO,MAAM;AACjB,QAAI,MAAM,UAAU;AACd,UAAA,aAAa,SAAS,GAAG;AACd,qBAAA,QAAQ,MAAM,MAAM,SAAS;AAC1C;AAAA,MACF;AAAA,IACF;AAEA,iBAAa,SAAS;AAAA,EAAA;AAExB,QAAM,OAAO,MAAM;AACjB,QAAI,MAAM,UAAU;AAClB,UAAI,aAAa,SAAS,MAAM,MAAM,SAAS,GAAG;AAChD,qBAAa,QAAQ;AACrB;AAAA,MACF;AAAA,IACF;AAEA,iBAAa,SAAS;AAAA,EAAA;AAGxB,QAAM,yBAAyB,SAAS,MAAM,MAAM,MAAM,SAAS,CAAC;AACpE,QAAM,mBAAmB,SAAS,MAAM,aAAa,QAAQ,KAAK,MAAM,QAAQ;AAC1E,QAAA,mBAAmB,SAAS,MAAM,aAAa,QAAQ,MAAM,MAAM,SAAS,KAAK,MAAM,QAAQ;AAE9F,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}