{"version":3,"file":"carousel.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    <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        :aria-label=\"t('el.carousel.leftArrow')\"\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        :aria-label=\"t('el.carousel.rightArrow')\"\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    <div\n      :class=\"ns.e('container')\"\n      :style=\"containerStyle\"\n      @transitionstart=\"handleTransitionStart\"\n      @transitionend=\"handleTransitionEnd\"\n    >\n      <PlaceholderItem />\n      <slot />\n    </div>\n    <items-sorter>\n      <ul v-if=\"indicatorPosition !== 'none'\" :class=\"indicatorsClasses\">\n        <li\n          v-for=\"(item, index) in items\"\n          v-show=\"isTwoLengthShow(index)\"\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\n            :class=\"ns.e('button')\"\n            :aria-label=\"t('el.carousel.indicator', { index: index + 1 })\"\n          >\n            <span v-if=\"hasLabel\">{{ item.props.label }}</span>\n          </button>\n        </li>\n      </ul>\n    </items-sorter>\n    <svg\n      v-if=\"props.motionBlur\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      version=\"1.1\"\n      style=\"display: none\"\n    >\n      <defs>\n        <filter id=\"elCarouselHorizontal\">\n          <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"12,0\" />\n        </filter>\n        <filter id=\"elCarouselVertical\">\n          <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"0,10\" />\n        </filter>\n      </defs>\n    </svg>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, unref } from 'vue'\nimport { ElIcon } from '@hd-front-end/components/icon'\nimport { ArrowLeft, ArrowRight } from '@element-plus/icons-vue'\nimport { useLocale, useNamespace } from '@hd-front-end/hooks'\nimport { carouselEmits, carouselProps } from './carousel'\nimport { useCarousel } from './use-carousel'\n\nconst COMPONENT_NAME = 'ElCarousel'\ndefineOptions({\n  name: COMPONENT_NAME,\n})\n\nconst props = defineProps(carouselProps)\nconst emit = defineEmits(carouselEmits)\nconst {\n  root,\n  activeIndex,\n  exposeActiveIndex,\n  arrowDisplay,\n  hasLabel,\n  hover,\n  isCardType,\n  items,\n  isVertical,\n  containerStyle,\n  handleButtonEnter,\n  handleButtonLeave,\n  handleIndicatorClick,\n  handleMouseEnter,\n  handleMouseLeave,\n  setActiveItem,\n  prev,\n  next,\n  PlaceholderItem,\n  isTwoLengthShow,\n  ItemsSorter,\n  throttledArrowClick,\n  throttledIndicatorHover,\n} = useCarousel(props, emit, COMPONENT_NAME)\nconst ns = useNamespace('carousel')\n\nconst { t } = useLocale()\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 (unref(hasLabel)) {\n    classes.push(ns.em('indicators', 'labels'))\n  }\n  if (props.indicatorPosition === 'outside') {\n    classes.push(ns.em('indicators', 'outside'))\n  }\n  if (unref(isVertical)) {\n    classes.push(ns.em('indicators', 'right'))\n  }\n  return classes\n})\n\nfunction handleTransitionStart(e: TransitionEvent) {\n  if (!props.motionBlur) return\n\n  const kls = unref(isVertical)\n    ? `${ns.namespace.value}-transitioning-vertical`\n    : `${ns.namespace.value}-transitioning`\n  ;(e.currentTarget as HTMLDivElement).classList.add(kls)\n}\n\nfunction handleTransitionEnd(e: TransitionEvent) {\n  if (!props.motionBlur) return\n\n  const kls = unref(isVertical)\n    ? `${ns.namespace.value}-transitioning-vertical`\n    : `${ns.namespace.value}-transitioning`\n  ;(e.currentTarget as HTMLDivElement).classList.remove(kls)\n}\n\ndefineExpose({\n  /** @description active slide index */\n  activeIndex: exposeActiveIndex,\n  /** @description manually switch slide, index of the slide to be switched to, starting from 0; or the `name` of corresponding `el-carousel-item` */\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":["_createElementBlock","_normalizeClass","_withModifiers","_unref","_openBlock","_createBlock","_Transition","_withDirectives","_createElementVNode","_createVNode","_withCtx","arrow","_normalizeStyle","_renderSlot","indicatorPosition","_Fragment","_renderList","direction","_toDisplayString","_createCommentVNode","_vShow"],"mappings":"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"}