element-plus
Version:
A Component Library for Vue 3
1 lines • 23.1 kB
Source Map (JSON)
{"version":3,"file":"main.mjs","sources":["../../../../../../packages/components/carousel/src/main.vue"],"sourcesContent":["<template>\n <div\n ref=\"root\"\n :class=\"carouselClasses\"\n @mouseenter.stop=\"handleMouseEnter\"\n @mouseleave.stop=\"handleMouseLeave\"\n >\n <div :class=\"ns.e('container')\" :style=\"{ height: height }\">\n <transition v-if=\"arrowDisplay\" name=\"carousel-arrow-left\">\n <button\n v-show=\"\n (arrow === 'always' || data.hover) &&\n (props.loop || data.activeIndex > 0)\n \"\n type=\"button\"\n :class=\"[ns.e('arrow'), ns.em('arrow', 'left')]\"\n @mouseenter=\"handleButtonEnter('left')\"\n @mouseleave=\"handleButtonLeave\"\n @click.stop=\"throttledArrowClick(data.activeIndex - 1)\"\n >\n <el-icon>\n <arrow-left />\n </el-icon>\n </button>\n </transition>\n <transition v-if=\"arrowDisplay\" name=\"carousel-arrow-right\">\n <button\n v-show=\"\n (arrow === 'always' || data.hover) &&\n (props.loop || data.activeIndex < items.length - 1)\n \"\n type=\"button\"\n :class=\"[ns.e('arrow'), ns.em('arrow', 'right')]\"\n @mouseenter=\"handleButtonEnter('right')\"\n @mouseleave=\"handleButtonLeave\"\n @click.stop=\"throttledArrowClick(data.activeIndex + 1)\"\n >\n <el-icon>\n <arrow-right />\n </el-icon>\n </button>\n </transition>\n <slot />\n </div>\n <ul v-if=\"indicatorPosition !== 'none'\" :class=\"indicatorsClasses\">\n <li\n v-for=\"(item, index) in items\"\n :key=\"index\"\n :class=\"[\n ns.e('indicator'),\n ns.em('indicator', direction),\n ns.is('active', index === data.activeIndex),\n ]\"\n @mouseenter=\"throttledIndicatorHover(index)\"\n @click.stop=\"handleIndicatorClick(index)\"\n >\n <button :class=\"ns.e('button')\">\n <span v-if=\"hasLabel\">{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n reactive,\n computed,\n ref,\n provide,\n onMounted,\n onBeforeUnmount,\n watch,\n nextTick,\n} from 'vue'\nimport { throttle } from 'lodash-unified'\nimport {\n addResizeListener,\n removeResizeListener,\n debugWarn,\n} from '@element-plus/utils'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowLeft, ArrowRight } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport type {\n ICarouselProps,\n CarouselItem,\n InjectCarouselScope,\n} from './carousel'\n\nexport default defineComponent({\n name: 'ElCarousel',\n components: {\n ElIcon,\n ArrowLeft,\n ArrowRight,\n },\n props: {\n initialIndex: {\n type: Number,\n default: 0,\n },\n height: { type: String, default: '' },\n trigger: {\n type: String,\n default: 'hover',\n },\n autoplay: {\n type: Boolean,\n default: true,\n },\n interval: {\n type: Number,\n default: 3000,\n },\n indicatorPosition: { type: String, default: '' },\n indicator: {\n type: Boolean,\n default: true,\n },\n arrow: {\n type: String,\n default: 'hover',\n },\n type: { type: String, default: '' },\n loop: {\n type: Boolean,\n default: true,\n },\n direction: {\n type: String,\n default: 'horizontal',\n validator(val: string) {\n return ['horizontal', 'vertical'].includes(val)\n },\n },\n pauseOnHover: {\n type: Boolean,\n default: true,\n },\n },\n emits: ['change'],\n setup(props: ICarouselProps, { emit }) {\n const ns = useNamespace('carousel')\n // data\n const data = reactive<{\n activeIndex: number\n containerWidth: number\n timer: null | ReturnType<typeof setInterval>\n hover: boolean\n }>({\n activeIndex: -1,\n containerWidth: 0,\n timer: null,\n hover: false,\n })\n\n // refs\n const root = ref(null)\n const items = ref<CarouselItem[]>([])\n\n // computed\n const arrowDisplay = computed(\n () => props.arrow !== 'never' && props.direction !== 'vertical'\n )\n\n const hasLabel = computed(() => {\n return items.value.some((item) => item.label.toString().length > 0)\n })\n\n const carouselClasses = computed(() => {\n const classes = [ns.b(), ns.m(props.direction)]\n if (props.type === 'card') {\n classes.push(ns.m('card'))\n }\n return classes\n })\n\n const indicatorsClasses = computed(() => {\n const classes = [ns.e('indicators'), ns.em('indicators', props.direction)]\n if (hasLabel.value) {\n classes.push(ns.em('indicators', 'labels'))\n }\n if (props.indicatorPosition === 'outside' || props.type === 'card') {\n classes.push(ns.em('indicators', 'outside'))\n }\n return classes\n })\n\n // methods\n const throttledArrowClick = throttle(\n (index) => {\n setActiveItem(index)\n },\n 300,\n { trailing: true }\n )\n\n const throttledIndicatorHover = throttle((index) => {\n handleIndicatorHover(index)\n }, 300)\n\n function pauseTimer() {\n if (data.timer) {\n clearInterval(data.timer)\n data.timer = null\n }\n }\n\n function startTimer() {\n if (props.interval <= 0 || !props.autoplay || data.timer) return\n data.timer = setInterval(() => playSlides(), props.interval)\n }\n\n const playSlides = () => {\n if (data.activeIndex < items.value.length - 1) {\n data.activeIndex = data.activeIndex + 1\n } else if (props.loop) {\n data.activeIndex = 0\n }\n }\n\n function setActiveItem(index) {\n if (typeof index === 'string') {\n const filteredItems = items.value.filter((item) => item.name === index)\n if (filteredItems.length > 0) {\n index = items.value.indexOf(filteredItems[0])\n }\n }\n index = Number(index)\n if (Number.isNaN(index) || index !== Math.floor(index)) {\n debugWarn('Carousel', 'index must be an integer.')\n return\n }\n const length = items.value.length\n const oldIndex = data.activeIndex\n if (index < 0) {\n data.activeIndex = props.loop ? length - 1 : 0\n } else if (index >= length) {\n data.activeIndex = props.loop ? 0 : length - 1\n } else {\n data.activeIndex = index\n }\n if (oldIndex === data.activeIndex) {\n resetItemPosition(oldIndex)\n }\n }\n\n function resetItemPosition(oldIndex) {\n items.value.forEach((item, index) => {\n item.translateItem(index, data.activeIndex, oldIndex)\n })\n }\n\n function addItem(item) {\n items.value.push(item)\n }\n\n function removeItem(uid) {\n const index = items.value.findIndex((item) => item.uid === uid)\n if (index !== -1) {\n items.value.splice(index, 1)\n if (data.activeIndex === index) next()\n }\n }\n\n function itemInStage(item, index) {\n const length = items.value.length\n if (\n (index === length - 1 && item.inStage && items.value[0].active) ||\n (item.inStage &&\n items.value[index + 1] &&\n items.value[index + 1].active)\n ) {\n return 'left'\n } else if (\n (index === 0 && item.inStage && items.value[length - 1].active) ||\n (item.inStage &&\n items.value[index - 1] &&\n items.value[index - 1].active)\n ) {\n return 'right'\n }\n return false\n }\n\n function handleMouseEnter() {\n data.hover = true\n if (props.pauseOnHover) {\n pauseTimer()\n }\n }\n\n function handleMouseLeave() {\n data.hover = false\n startTimer()\n }\n\n function handleButtonEnter(arrow) {\n if (props.direction === 'vertical') return\n items.value.forEach((item, index) => {\n if (arrow === itemInStage(item, index)) {\n item.hover = true\n }\n })\n }\n\n function handleButtonLeave() {\n if (props.direction === 'vertical') return\n items.value.forEach((item) => {\n item.hover = false\n })\n }\n\n function handleIndicatorClick(index) {\n data.activeIndex = index\n }\n\n function handleIndicatorHover(index) {\n if (props.trigger === 'hover' && index !== data.activeIndex) {\n data.activeIndex = index\n }\n }\n\n function prev() {\n setActiveItem(data.activeIndex - 1)\n }\n\n function next() {\n setActiveItem(data.activeIndex + 1)\n }\n\n // watch\n watch(\n () => data.activeIndex,\n (current, prev) => {\n resetItemPosition(prev)\n if (prev > -1) {\n emit('change', current, prev)\n }\n }\n )\n watch(\n () => props.autoplay,\n (current) => {\n current ? startTimer() : pauseTimer()\n }\n )\n watch(\n () => props.loop,\n () => {\n setActiveItem(data.activeIndex)\n }\n )\n\n // lifecycle\n onMounted(() => {\n nextTick(() => {\n addResizeListener(root.value, resetItemPosition)\n if (\n props.initialIndex < items.value.length &&\n props.initialIndex >= 0\n ) {\n data.activeIndex = props.initialIndex\n }\n startTimer()\n })\n })\n\n onBeforeUnmount(() => {\n if (root.value) removeResizeListener(root.value, resetItemPosition)\n pauseTimer()\n })\n\n // provide\n provide<InjectCarouselScope>('injectCarouselScope', {\n root,\n direction: props.direction,\n type: props.type,\n items,\n loop: props.loop,\n addItem,\n removeItem,\n setActiveItem,\n })\n\n return {\n data,\n props,\n items,\n\n arrowDisplay,\n carouselClasses,\n indicatorsClasses,\n hasLabel,\n\n handleMouseEnter,\n handleMouseLeave,\n handleIndicatorClick,\n throttledArrowClick,\n throttledIndicatorHover,\n handleButtonEnter,\n handleButtonLeave,\n\n prev,\n next,\n setActiveItem,\n\n root,\n ns,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_normalizeStyle","_openBlock","_createBlock","_Transition","_withDirectives","_withModifiers","_createVNode","_withCtx","_renderSlot","_Fragment","_renderList","_toDisplayString","_createCommentVNode"],"mappings":"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"}