tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 30.8 kB
Source Map (JSON)
{"version":3,"file":"swiper.mjs","sources":["../../src/swiper/swiper.tsx"],"sourcesContent":["import { onMounted, computed, ref, provide, watch, onUnmounted, toRefs, defineComponent } from 'vue';\nimport { isNumber, isObject } from 'lodash-es';\nimport { useSwipe } from '../swipe-cell/useSwipe';\nimport config from '../config';\nimport props from './props';\nimport { SwiperChangeSource, SwiperNavigation } from './type';\nimport useVModel from '../hooks/useVModel';\nimport { preventDefault } from '../shared/dom';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-swiper`,\n props,\n emits: ['change', 'update:current', 'update:modelValue', 'transitionenter', 'transitionleave'],\n setup(props, context) {\n const swiperClass = usePrefixClass('swiper');\n const swiperNavClass = usePrefixClass('swiper-nav');\n\n const readerTNodeJSX = useTNodeJSX();\n const setOffset = (offset: number, direction = 'X'): void => {\n translateContainer.value = `translate${direction}(${offset}px)`;\n };\n\n const root = ref();\n const items = ref<any>([]);\n const { current: value, modelValue } = toRefs(props);\n const [currentIndex, setCurrent] = useVModel(value, modelValue, props.defaultCurrent);\n const swiperContainer = ref<HTMLElement | null>(null);\n const previous = ref(currentIndex.value ?? 0);\n\n const animating = ref(false);\n const disabled = ref(false);\n const isSwiperDisabled = computed(() => props.disabled === true);\n const translateContainer = ref('');\n\n const isVertical = computed(() => props.direction === 'vertical');\n const containerHeight = ref('auto');\n\n const navigation = computed((): SwiperNavigation => props.navigation);\n\n const isBottomPagination = computed(() => {\n let isShowSwiperNav = false;\n if (typeof props.navigation === 'object') {\n isShowSwiperNav =\n (!navigation.value?.paginationPosition || navigation.value?.paginationPosition === 'bottom') &&\n (navigation.value?.type === 'dots' || navigation.value?.type === 'dots-bar') &&\n enableNavigation?.value;\n }\n return isShowSwiperNav;\n });\n\n const rootClass = computed(() => {\n return [\n `${swiperClass.value}`,\n `${swiperClass.value}--${props.type}`,\n `${\n isBottomPagination.value && navigation.value?.placement\n ? `${swiperClass.value}--${navigation.value?.placement}`\n : ''\n }`,\n ];\n });\n\n const enableNavigation = computed(() => {\n if (typeof props.navigation === 'object') {\n return navigation.value?.minShowNum ? items.value.length >= navigation.value?.minShowNum : true;\n }\n return false;\n });\n\n let autoplayTimer: any = null;\n\n const onItemClick = () => {\n props.onClick?.(currentIndex.value ?? 0);\n };\n\n const move = (step: number, source: SwiperChangeSource, isReset = false, targetValue?: number) => {\n const nextIndex = currentIndex.value + step;\n if (!props.loop && !(isReset || typeof targetValue === 'number')) {\n if (nextIndex < 0 || nextIndex >= items.value.length) return;\n }\n\n animating.value = true;\n const innerTargetValue = targetValue ?? (isReset ? step : nextIndex);\n processIndex(innerTargetValue, source);\n\n const moveDirection = !isVertical.value ? 'X' : 'Y';\n const distance = root.value?.[isVertical.value ? 'offsetHeight' : 'offsetWidth'] ?? 0;\n\n translateContainer.value = `translate${moveDirection}(${isReset ? 0 : -1 * distance * step}px)`;\n };\n\n const handleAnimationEnd = () => {\n disabled.value = false;\n animating.value = false;\n translateContainer.value = 'translateX(0)';\n\n updateItemPosition();\n };\n\n const stopAutoplay = () => {\n if (!autoplayTimer) return;\n clearInterval(autoplayTimer as number);\n autoplayTimer = null;\n };\n\n const startAutoplay = () => {\n if (!props?.autoplay || autoplayTimer !== null) return false; // stop repeat autoplay\n autoplayTimer = setInterval(() => {\n goNext('autoplay');\n }, props?.interval);\n };\n\n const goPrev = (source: SwiperChangeSource) => {\n disabled.value = true;\n move(-1, source);\n };\n const goNext = (source: SwiperChangeSource) => {\n disabled.value = true;\n move(1, source);\n };\n\n const innerSetCurrent = (val: number) => {\n setCurrent(val);\n previous.value = val;\n };\n\n const processIndex = (index: number, source: SwiperChangeSource) => {\n const max = items.value.length;\n let val = index;\n\n if (index < 0) {\n val = props.loop ? max - 1 : 0;\n }\n if (index >= max) {\n val = props.loop ? 0 : max - 1;\n }\n innerSetCurrent(val);\n context.emit('update:current', val);\n context.emit('change', val, { source });\n };\n\n const { lengthX, lengthY } = useSwipe(swiperContainer, {\n onSwipeStart() {\n if (disabled.value || isSwiperDisabled.value || !items.value.length) return;\n stopAutoplay();\n },\n onSwipe(e: TouchEvent) {\n if (disabled.value || isSwiperDisabled.value || !items.value.length) return;\n onTouchMove(e);\n },\n onSwipeEnd() {\n if (disabled.value || isSwiperDisabled.value || !items.value.length) return;\n onTouchEnd();\n },\n });\n\n const onTouchMove = (event: TouchEvent) => {\n preventDefault(event, false);\n const distanceX = lengthX.value;\n const distanceY = lengthY.value;\n\n animating.value = false;\n\n const curIndex = currentIndex.value;\n const maxIndex = items.value.length - 1;\n if (!isVertical.value) {\n // 非loop状态阻止首个向右滑动,最后个向左滑动的行为\n if (!props.loop && ((curIndex <= 0 && distanceX < 0) || (curIndex >= maxIndex && distanceX > 0))) return;\n setOffset(-distanceX);\n } else {\n if (!props.loop && ((curIndex <= 0 && distanceY < 0) || (curIndex >= maxIndex && distanceY > 0))) return;\n setOffset(-distanceY, 'Y');\n }\n };\n\n const onTouchEnd = () => {\n const distanceX = lengthX.value;\n const distanceY = lengthY.value;\n\n if ((!isVertical.value && distanceX < -100) || (isVertical.value && distanceY < -100)) {\n move(-1, 'touch');\n } else if ((!isVertical.value && distanceX > 100) || (isVertical.value && distanceY > 100)) {\n move(1, 'touch');\n } else {\n move(currentIndex.value as number, 'touch', true);\n }\n startAutoplay();\n };\n\n const onTransitionstart = (event: TransitionEvent) => {\n context.emit('transitionenter', event);\n };\n\n const onTransitionend = (event: TransitionEvent) => {\n context.emit('transitionleave', event);\n };\n\n const addChild = (item: any) => {\n items.value.push(item);\n };\n\n const removeChild = (uid: number) => {\n const index = items.value.findIndex((item: any) => item.uid === uid);\n items.value.splice(index, 1);\n\n if (currentIndex.value + 1 > items.value.length) {\n goNext('autoplay');\n }\n };\n\n const updateItemPosition = () => {\n items.value.forEach((item: any, index: number) => {\n item.calcTranslateStyle(index, currentIndex.value);\n });\n };\n\n const setContainerHeight = (height: number | string) =>\n (containerHeight.value = isNumber(height) ? `${height}px` : height);\n\n const updateContainerHeight = () => {\n const target = items.value[currentIndex.value ?? 0];\n const rect = target?.proxy?.$el.getBoundingClientRect();\n\n if (props.height) {\n setContainerHeight(props.height);\n } else if (rect) {\n setContainerHeight(rect.height);\n }\n };\n\n watch(currentIndex, updateContainerHeight);\n watch(\n () => props.current,\n (val, oldVal) => {\n // v-model动态更新时不触发move逻辑\n if (val === previous.value) return;\n stopAutoplay();\n move(val - oldVal, 'autoplay', false, val);\n startAutoplay();\n },\n );\n\n provide('parent', {\n loop: props.loop,\n root,\n items,\n isVertical,\n addChild,\n removeChild,\n setContainerHeight,\n });\n\n onMounted(() => {\n startAutoplay();\n updateItemPosition();\n updateContainerHeight();\n });\n\n onUnmounted(() => {\n stopAutoplay();\n });\n return () => {\n const swiperNav = () => {\n if (navigation.value && enableNavigation.value) {\n const controlsNav = () => {\n if (!isVertical.value && !!navigation.value?.showControls) {\n return (\n <span class={`${swiperNavClass.value}__btn`}>\n <span class={`${swiperNavClass.value}__btn--prev`} onClick={() => goPrev('nav')} />\n <span class={`${swiperNavClass.value}__btn--next`} onClick={() => goNext('nav')} />\n </span>\n );\n }\n };\n const typeNav = () => {\n if ('type' in navigation.value) {\n // dots\n const dots = () => {\n if (['dots', 'dots-bar'].includes(navigation.value?.type || '')) {\n return (\n <>\n {items.value.map((_: any, index: number) => (\n <span\n key={`page${index}`}\n class={[\n `${swiperNavClass.value}__${navigation.value?.type}-item`,\n index === currentIndex.value\n ? `${swiperNavClass.value}__${navigation.value?.type}-item--active`\n : '',\n `${swiperNavClass.value}__${navigation.value?.type}-item--${props.direction}`,\n ]}\n />\n ))}\n </>\n );\n }\n };\n // fraction\n const fraction = () => {\n if (navigation.value?.type === 'fraction') {\n return <span>{`${(currentIndex.value ?? 0) + 1}/${items.value.length}`}</span>;\n }\n };\n return (\n <span\n class={[\n `${swiperNavClass.value}--${props.direction}`,\n `${swiperNavClass.value}__${navigation.value?.type || ''}`,\n `${swiperNavClass.value}--${navigation.value?.paginationPosition || 'bottom'}`,\n `${\n isBottomPagination.value && navigation.value?.placement\n ? `${swiperNavClass.value}--${navigation.value?.placement}`\n : ''\n }`,\n ]}\n >\n {dots()}\n {fraction()}\n </span>\n );\n }\n };\n\n return (\n <>\n {controlsNav()}\n {typeNav()}\n </>\n );\n }\n return isObject(props.navigation) ? '' : readerTNodeJSX('navigation');\n };\n return (\n <div ref={root} class={rootClass.value}>\n <div\n ref={swiperContainer}\n class={`${swiperClass.value}__container`}\n style={{\n flexDirection: !isVertical.value ? 'row' : 'column',\n transition: animating.value ? `transform ${props.duration}ms` : 'none',\n transform: translateContainer.value,\n height: containerHeight.value,\n }}\n onTransitionstart={onTransitionstart}\n onTransitionend={(event: TransitionEvent) => {\n if (event.target === event.currentTarget) {\n onTransitionend(event);\n handleAnimationEnd();\n }\n }}\n onClick={onItemClick}\n >\n {readerTNodeJSX('default')}\n </div>\n {swiperNav()}\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","emits","setup","context","_currentIndex$value","swiperClass","usePrefixClass","swiperNavClass","readerTNodeJSX","useTNodeJSX","setOffset","offset","direction","arguments","length","undefined","translateContainer","value","concat","root","ref","items","_toRefs","toRefs","current","modelValue","_useVModel","useVModel","defaultCurrent","_useVModel2","_slicedToArray","currentIndex","setCurrent","swiperContainer","previous","animating","disabled","isSwiperDisabled","computed","isVertical","containerHeight","navigation","isBottomPagination","isShowSwiperNav","_typeof","_navigation$value","_navigation$value2","_navigation$value3","_navigation$value4","paginationPosition","type","enableNavigation","rootClass","_navigation$value5","_navigation$value6","placement","_navigation$value7","_navigation$value8","minShowNum","autoplayTimer","onItemClick","_props2$onClick","_currentIndex$value2","onClick","move","step","source","_root$value","_root$value2","isReset","targetValue","nextIndex","loop","innerTargetValue","processIndex","moveDirection","distance","handleAnimationEnd","updateItemPosition","stopAutoplay","clearInterval","startAutoplay","autoplay","setInterval","goNext","interval","goPrev","innerSetCurrent","val","index","max","emit","_useSwipe","useSwipe","onSwipeStart","onSwipe","e","onTouchMove","onSwipeEnd","onTouchEnd","lengthX","lengthY","event","preventDefault","distanceX","distanceY","curIndex","maxIndex","onTransitionstart","onTransitionend","addChild","item","push","removeChild","uid","findIndex","splice","forEach","calcTranslateStyle","setContainerHeight","height","isNumber","updateContainerHeight","_currentIndex$value3","_target$proxy","target","rect","proxy","$el","getBoundingClientRect","watch","oldVal","provide","onMounted","onUnmounted","swiperNav","controlsNav","_navigation$value9","showControls","_createVNode","typeNav","_navigation$value13","_navigation$value14","_navigation$value15","_navigation$value16","dots","_navigation$value0","includes","_Fragment","map","_","_navigation$value1","_navigation$value10","_navigation$value11","fraction","_navigation$value12","_currentIndex$value4","isObject","flexDirection","transition","duration","transform","currentTarget"],"mappings":"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"}