UNPKG

tdesign-vue-next

Version:
1 lines 9.21 kB
{"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 '@tdesign/shared-hooks';\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 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 (\n (wrapWidth * ((translateIndex - props.currentIndex) * (1 - itemWidth * props.cardScale) - itemWidth + 1)) / 2\n );\n }\n if (translateIndex < props.currentIndex) {\n return (-itemWidth * (1 + props.cardScale) * wrapWidth) / 2;\n }\n return ((2 + itemWidth * (props.cardScale - 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 : 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","getWrapAttribute","Function","swiperItemLength","itemWidth","defineComponent","name","props","_objectSpread","setup","slots","_ref","prefix","usePrefixClass","active","computed","disposeIndex","translateX","wrapWidth","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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"}