{"version":3,"file":"carousel2.mjs","sources":["../../../../../../packages/components/carousel/src/carousel.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' || hover) && (props.loop || 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(activeIndex - 1)\"\n        >\n          <ElIcon>\n            <ArrowLeft />\n          </ElIcon>\n        </button>\n      </transition>\n      <transition v-if=\"arrowDisplay\" name=\"carousel-arrow-right\">\n        <button\n          v-show=\"\n            (arrow === 'always' || hover) &&\n            (props.loop || 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(activeIndex + 1)\"\n        >\n          <ElIcon>\n            <ArrowRight />\n          </ElIcon>\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 === activeIndex),\n        ]\"\n        @mouseenter=\"throttledIndicatorHover(index)\"\n        @click.stop=\"handleIndicatorClick(index)\"\n      >\n        <button :class=\"ns.e('button')\">\n          <span v-if=\"hasLabel\">{{ item.props.label }}</span>\n        </button>\n      </li>\n    </ul>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n  computed,\n  getCurrentInstance,\n  onBeforeUnmount,\n  onMounted,\n  provide,\n  ref,\n  shallowRef,\n  unref,\n  watch,\n} from 'vue'\nimport { throttle } from 'lodash-unified'\nimport { useResizeObserver } from '@vueuse/core'\nimport { debugWarn, isString } from '@element-plus/utils'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowLeft, ArrowRight } from '@element-plus/icons-vue'\nimport { useNamespace, useOrderedChildren } from '@element-plus/hooks'\nimport { carouselContextKey } from '@element-plus/tokens'\nimport { carouselEmits, carouselProps } from './carousel'\nimport type { CarouselItemContext } from '@element-plus/tokens'\n\ndefineOptions({\n  name: 'ElCarousel',\n})\n\nconst props = defineProps(carouselProps)\nconst emit = defineEmits(carouselEmits)\nconst ns = useNamespace('carousel')\nconst COMPONENT_NAME = 'ElCarousel'\nconst THROTTLE_TIME = 300\n\nconst {\n  children: items,\n  addChild: addItem,\n  removeChild: removeItem,\n} = useOrderedChildren<CarouselItemContext>(\n  getCurrentInstance()!,\n  'ElCarouselItem'\n)\n\n// refs\nconst activeIndex = ref(-1)\nconst timer = ref<ReturnType<typeof setInterval> | null>(null)\nconst hover = ref(false)\nconst root = ref<HTMLDivElement>()\n\n// computed\nconst arrowDisplay = computed(\n  () => props.arrow !== 'never' && !unref(isVertical)\n)\n\nconst hasLabel = computed(() => {\n  return items.value.some((item) => item.props.label.toString().length > 0)\n})\n\nconst carouselClasses = computed(() => {\n  const classes = [ns.b(), ns.m(props.direction)]\n  if (unref(isCardType)) {\n    classes.push(ns.m('card'))\n  }\n  return classes\n})\n\nconst 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' || unref(isCardType)) {\n    classes.push(ns.em('indicators', 'outside'))\n  }\n  return classes\n})\n\nconst isCardType = computed(() => props.type === 'card')\nconst isVertical = computed(() => props.direction === 'vertical')\n\n// methods\nconst throttledArrowClick = throttle(\n  (index: number) => {\n    setActiveItem(index)\n  },\n  THROTTLE_TIME,\n  { trailing: true }\n)\n\nconst throttledIndicatorHover = throttle((index: number) => {\n  handleIndicatorHover(index)\n}, THROTTLE_TIME)\n\nfunction pauseTimer() {\n  if (timer.value) {\n    clearInterval(timer.value)\n    timer.value = null\n  }\n}\n\nfunction startTimer() {\n  if (props.interval <= 0 || !props.autoplay || timer.value) return\n  timer.value = setInterval(() => playSlides(), props.interval)\n}\n\nconst playSlides = () => {\n  if (activeIndex.value < items.value.length - 1) {\n    activeIndex.value = activeIndex.value + 1\n  } else if (props.loop) {\n    activeIndex.value = 0\n  }\n}\n\nfunction setActiveItem(index: number | string) {\n  if (isString(index)) {\n    const filteredItems = items.value.filter(\n      (item) => item.props.name === index\n    )\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(COMPONENT_NAME, 'index must be integer.')\n    return\n  }\n  const itemCount = items.value.length\n  const oldIndex = activeIndex.value\n  if (index < 0) {\n    activeIndex.value = props.loop ? itemCount - 1 : 0\n  } else if (index >= itemCount) {\n    activeIndex.value = props.loop ? 0 : itemCount - 1\n  } else {\n    activeIndex.value = index\n  }\n  if (oldIndex === activeIndex.value) {\n    resetItemPosition(oldIndex)\n  }\n  resetTimer()\n}\n\nfunction resetItemPosition(oldIndex?: number) {\n  items.value.forEach((item, index) => {\n    item.translateItem(index, activeIndex.value, oldIndex)\n  })\n}\n\nfunction itemInStage(item: CarouselItemContext, index: number) {\n  const _items = unref(items)\n  const itemCount = _items.length\n  if (itemCount === 0 || !item.states.inStage) return false\n  const nextItemIndex = index + 1\n  const prevItemIndex = index - 1\n  const lastItemIndex = itemCount - 1\n  const isLastItemActive = _items[lastItemIndex].states.active\n  const isFirstItemActive = _items[0].states.active\n  const isNextItemActive = _items[nextItemIndex]?.states?.active\n  const isPrevItemActive = _items[prevItemIndex]?.states?.active\n\n  if ((index === lastItemIndex && isFirstItemActive) || isNextItemActive) {\n    return 'left'\n  } else if ((index === 0 && isLastItemActive) || isPrevItemActive) {\n    return 'right'\n  }\n  return false\n}\n\nfunction handleMouseEnter() {\n  hover.value = true\n  if (props.pauseOnHover) {\n    pauseTimer()\n  }\n}\n\nfunction handleMouseLeave() {\n  hover.value = false\n  startTimer()\n}\n\nfunction handleButtonEnter(arrow: 'left' | 'right') {\n  if (unref(isVertical)) return\n  items.value.forEach((item, index) => {\n    if (arrow === itemInStage(item, index)) {\n      item.states.hover = true\n    }\n  })\n}\n\nfunction handleButtonLeave() {\n  if (unref(isVertical)) return\n  items.value.forEach((item) => {\n    item.states.hover = false\n  })\n}\n\nfunction handleIndicatorClick(index: number) {\n  activeIndex.value = index\n}\n\nfunction handleIndicatorHover(index: number) {\n  if (props.trigger === 'hover' && index !== activeIndex.value) {\n    activeIndex.value = index\n  }\n}\n\nfunction prev() {\n  setActiveItem(activeIndex.value - 1)\n}\n\nfunction next() {\n  setActiveItem(activeIndex.value + 1)\n}\n\nfunction resetTimer() {\n  pauseTimer()\n  startTimer()\n}\n\n// watch\nwatch(\n  () => activeIndex.value,\n  (current, prev) => {\n    resetItemPosition(prev)\n    if (prev > -1) {\n      emit('change', current, prev)\n    }\n  }\n)\nwatch(\n  () => props.autoplay,\n  (autoplay) => {\n    autoplay ? startTimer() : pauseTimer()\n  }\n)\nwatch(\n  () => props.loop,\n  () => {\n    setActiveItem(activeIndex.value)\n  }\n)\n\nwatch(\n  () => props.interval,\n  () => {\n    resetTimer()\n  }\n)\n\nwatch(\n  () => items.value,\n  () => {\n    if (items.value.length > 0) setActiveItem(props.initialIndex)\n  }\n)\n\nconst resizeObserver = shallowRef<ReturnType<typeof useResizeObserver>>()\n// lifecycle\nonMounted(() => {\n  resizeObserver.value = useResizeObserver(root.value, () => {\n    resetItemPosition()\n  })\n  startTimer()\n})\n\nonBeforeUnmount(() => {\n  pauseTimer()\n  if (root.value && resizeObserver.value) resizeObserver.value.stop()\n})\n\n// provide\nprovide(carouselContextKey, {\n  root,\n  isCardType,\n  isVertical,\n  items,\n  loop: props.loop,\n  addItem,\n  removeItem,\n  setActiveItem,\n})\n\ndefineExpose({\n  /** @description manually switch slide */\n  setActiveItem,\n  /** @description switch to the previous slide */\n  prev,\n  /** @description switch to the next slide */\n  next,\n})\n</script>\n"],"names":[],"mappings":"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"}