{"version":3,"file":"swiper-item.mjs","sources":["../../../components/swiper/swiper-item.tsx"],"sourcesContent":["import { computed, defineComponent } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './props';\n\nconst swiperItemProps = {\n  index: {\n    type: Number,\n  },\n  currentIndex: {\n    type: Number,\n  },\n  isSwitching: {\n    type: Boolean,\n    default: false,\n  },\n  swiperWidth: {\n    type: Number,\n    default: 0,\n  },\n  swiperItemLength: {\n    type: Number,\n    default: 0,\n  },\n};\nconst itemWidth = 0.415; // 依据设计稿使用t-swiper__card控制每个swiper的宽度为41.5%\n\nexport default defineComponent({\n  name: 'TSwiperItem',\n  props: {\n    ...props,\n    ...swiperItemProps,\n  },\n  setup(props, { slots }) {\n    const prefix = usePrefixClass();\n    const active = computed(() => props.index === props.currentIndex);\n    const disposeIndex = computed(() => {\n      if (props.type !== 'card') return 0;\n      if (props.currentIndex === 0 && props.index === props.swiperItemLength - 1) {\n        return -1;\n      }\n      if (props.currentIndex === props.swiperItemLength - 1 && props.index === 0) {\n        return props.swiperItemLength;\n      }\n      if (props.index < props.currentIndex - 1 && props.currentIndex - props.index >= props.swiperItemLength / 2) {\n        return props.swiperItemLength + 1;\n      }\n      if (props.index > props.currentIndex + 1 && props.index - props.currentIndex >= props.swiperItemLength / 2) {\n        return -2;\n      }\n      return props.index;\n    });\n    const translateX = computed(() => {\n      if (props.type !== 'card') return 0;\n      const swiperWidth = props.swiperWidth;\n      const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n      const inStage = Math.abs(translateIndex - props.currentIndex) <= 1;\n      if (inStage) {\n        return (\n          (swiperWidth * ((translateIndex - props.currentIndex) * (1 - itemWidth * props.cardScale) - itemWidth + 1)) /\n          2\n        );\n      }\n      if (translateIndex < props.currentIndex) {\n        return (-itemWidth * (1 + props.cardScale) * swiperWidth) / 2;\n      }\n      return ((2 + itemWidth * (props.cardScale - 1)) * swiperWidth) / 2;\n    });\n    const zIndex = computed(() => {\n      if (props.type !== 'card') return 0;\n      const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n      const isActivity = translateIndex === props.currentIndex;\n      const inStage = Math.round(Math.abs(translateIndex - props.currentIndex)) <= 1;\n      if (isActivity) {\n        return 2;\n      }\n      if (inStage) {\n        return 1;\n      }\n      return 0;\n    });\n    const itemStyle = computed(() => {\n      if (props.animation === 'fade') {\n        return {\n          opacity: active.value ? 1 : 0,\n          transition: props.isSwitching ? `opacity ${props.duration / 1000}s` : '',\n          zIndex: active.value ? 1 : 0,\n        };\n      }\n      if (props.type === 'card') {\n        const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n        const isActivity = translateIndex === props.currentIndex;\n        return {\n          transform: `translateX(${translateX.value}px) scale(${isActivity ? 1 : props.cardScale})`,\n          transition: `transform ${props.duration / 1000}s ease`,\n          zIndex: zIndex.value,\n        };\n      }\n      return {};\n    });\n\n    return () => (\n      <div\n        class={[\n          `${prefix.value}-swiper__container__item`,\n          {\n            [`${prefix.value}-swiper__card`]: props.type === 'card',\n            [`${prefix.value}-is-active`]: props.type === 'card' && active.value,\n            [`${prefix.value}-swiper__fade`]: props.animation === 'fade',\n          },\n        ]}\n        style={itemStyle.value}\n      >\n        {slots.default?.({}) || []}\n      </div>\n    );\n  },\n});\n"],"names":["swiperItemProps","index","type","Number","currentIndex","isSwitching","Boolean","swiperWidth","swiperItemLength","itemWidth","defineComponent","name","props","_objectSpread","setup","slots","_ref","prefix","usePrefixClass","active","computed","disposeIndex","translateX","translateIndex","value","inStage","Math","abs","cardScale","zIndex","isActivity","round","itemStyle","animation","opacity","transition","concat","duration","transform","_slots$default","_createVNode","_defineProperty","call"],"mappings":"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"}