tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 9.21 kB
Source Map (JSON)
{"version":3,"file":"swiper-item.mjs","sources":["../../../components/swiper/swiper-item.tsx"],"sourcesContent":["import { defineComponent, computed } from 'vue';\nimport props from './props';\nimport { usePrefixClass } from '../hooks/useConfig';\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 getWrapAttribute: {\n type: Function,\n },\n swiperItemLength: {\n type: Number,\n default: 0,\n },\n};\nconst CARD_SCALE = 210 / 332; // 缩放比例\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 wrapWidth = props.getWrapAttribute('offsetWidth') || 0;\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 (wrapWidth * ((translateIndex - props.currentIndex) * (1 - itemWidth * CARD_SCALE) - itemWidth + 1)) / 2;\n }\n if (translateIndex < props.currentIndex) {\n return (-itemWidth * (1 + CARD_SCALE) * wrapWidth) / 2;\n }\n return ((2 + itemWidth * (CARD_SCALE - 1)) * wrapWidth) / 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 : CARD_SCALE})`,\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","getWrapAttribute","Function","swiperItemLength","CARD_SCALE","itemWidth","defineComponent","name","props","_objectSpread","setup","slots","_ref","prefix","usePrefixClass","active","computed","disposeIndex","translateX","wrapWidth","translateIndex","value","inStage","Math","abs","zIndex","isActivity","round","itemStyle","animation","opacity","transition","concat","duration","transform","_slots$default","_createVNode","_defineProperty","call"],"mappings":"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"}